Що таке біт-бандінг?


16

Я читаю посібник з ARM Cortex M3 і з'являються поняття "бітовий діапазон", "область біт-діапазону" та "псевдонім біт-діапазону".

Що таке біт-бандінг?


Я присвятив сторінку github, щоб пояснити, що таке біт-діапазон, як він працює і як ним користуватися. Я вважаю, що він відповідає на більшість запитань щодо біт-діапазону, не соромтесь (пере) його переглядати.

Це зручне вступ про функцію бітової
стрічки

Відповіді:


8

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

Біт-діапазон відображає повне слово пам'яті на один біт в області біт-діапазону. Наприклад, запис в одне з псевдонімових слів встановить або очистить відповідний біт в області бітової смуги.

Схоже, це спосіб отримати однобітну атомну операцію.

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


Чи маєте ви уявлення про те, як виконуються бітові операції всередині країни та які реальні гарантії щодо атомності? Якби я розробляв чіп для полегшення атомних бітових операцій або операцій з очищенням біт, я б використав два біти верхньої адреси для вибору між "нормальним доступом" (00), "записувати" (01) та "записати нулі" (1x). Крім того, я мав би, щоб процесор інвертував свої дані, коли ці бітові адреси були 0x11. Таким чином, біти можна було встановити або очистити за один цикл, без необхідності читання-модифікації-запису. Навіть якщо біти будуть встановлені апаратними засобами одночасно із
записом

1
Просто переходьте за посиланнями, бам.
tyblu

1
@AlKepp, написання трохи на багатьох системах, які я використовував, справді є атомними, з єдиною інструкцією виконувати дію, яке неможливо перервати.
Кортук

1
@AlKepp, я не намагався зрозуміти, що існують системи, які не можуть зробити це за допомогою атомної інструкції. Ви сказали: "Написання трохи не може бути справді атомним". Я не погодився з цим твердженням. Я використовував багато систем, де це атомна, і вони існують.
Кортук

3
@AlKepp, Cortex M3 - приклад більшої частини мікроконтролера. Для мене важливо те, що ви не можете сказати, що атомні інструкції не існують, якщо вони часто є. Багато людей роблять вбудовані системи з недостатньо низьким ресурсом, щоб пам'ять була внутрішньою, це насправді єдина система, в якій мені подобається кодувати. Це вбік, якщо говорити комусь, що його немає, коли це робиться і зазвичай використовується, може ввести в оману.
Кортук
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.