Что такое бит-бэндинг?

16

Я читаю ARM Cortex M3 справочное руководство и появляются понятия «битовая полоса», «область битовой полосы» и «псевдоним битовой полосы».

Что такое бит-бэндинг?

Randomblue
источник
Я посвятил страницу github, чтобы объяснить, что такое бит-полоса, как она работает и как ее использовать. Я считаю, что это отвечает на большинство вопросов о бит-бэндинге, не стесняйтесь (пере) просматривать его
Это удобно введение о разрядной-полосатости функции в ARM Cortex M3 atadiat.com/en/articles/...
Яхья Tawil

Ответы:

8

ARM информационный центр относится к битовым кольцевания в их Cortex-M3 и -m4 документации, составитель документации, а также несколько других мест, таких как дома> Программисты Модель> Bit-обвязки . Из дома> Разработка программного обеспечения для Cortex-M3> Бит-полоса :

Битовая полоса отображает полное слово памяти на один бит в области битовой полосы. Например, запись в одно из слов-псевдонимов установит или очистит соответствующий бит в области битовой полосы.

Похоже, это способ получить одноразрядную атомарную операцию.

При записи в области псевдонимов бит 0 32-битного слова используется для установки значения в области битовой полосы. Чтение с адреса псевдонима вернет значение из области битовой полосы в бит 0, а остальные биты будут очищены.

tyblu
источник
Есть ли у вас какие-либо идеи о том, как операции с битовыми полосами выполняются внутри и каковы реальные гарантии в отношении атомарности? Если бы я проектировал микросхему, чтобы упростить операции атомарного набора битов или очистки битов, я бы использовал два из верхних битов адреса для выбора между «нормальным доступом» (00), «записью единиц» (01) и «записью нулей» (1x). Кроме того, процессор должен инвертировать вывод данных, когда эти биты адреса были 0x11. Таким образом, биты могут быть установлены или очищены за один цикл, без необходимости чтения-изменения-записи. Даже если биты будут установлены аппаратно одновременно с записью, ...
суперкат
1
Просто перейдите по ссылкам, я задницы.
Tyblu
1
@AlKepp, немного писать о многих системах, которые я использовал, действительно атомарно с одной инструкцией для выполнения действия, которое не может быть прервано.
Кортук
1
@AlKepp, я не пытался сказать, что существуют системы, которые не могут сделать это с помощью атомарной инструкции. Вы сказали: «Написание немного не может быть действительно атомным». Я был не согласен с этим утверждением. Я использовал много систем, где это атомно, и они существуют.
Кортук
3
@AlKepp, Cortex M3 - пример большего количества микроконтроллера. Для меня важно, что вы не можете сказать, что атомарные инструкции не существуют, если они часто существуют. Многие люди здесь делают встраиваемые системы с достаточно низким ресурсом, чтобы память была внутренней, это фактически единственная система, на которой мне нравится программировать. Кроме того, если говорить кому-то, что он не существует, когда он существует и обычно используется, это может ввести в заблуждение.
Кортук