В цифровой электронике , особенно в вычислительной технике , аппаратные регистры представляют собой схемы, обычно состоящие из триггеров , часто имеющих многие характеристики, схожие с характеристиками памяти , например: [ необходима ссылка ]
Однако их отличительной чертой является то, что они также имеют специальные аппаратные функции, выходящие за рамки обычной памяти. Таким образом, в зависимости от точки зрения, аппаратные регистры подобны памяти с дополнительными аппаратными функциями; или схемы памяти подобны аппаратным регистрам, которые просто хранят данные. [ необходима цитата ]
Аппаратные регистры используются в интерфейсе между программным обеспечением и периферийными устройствами . Программное обеспечение записывает их для отправки информации на устройство и считывает их для получения информации с устройства. Некоторые аппаратные устройства также включают регистры, которые не видны программному обеспечению, для их внутреннего использования.
В зависимости от сложности современные аппаратные устройства могут иметь много регистров. Стандартные интегральные схемы обычно документируют свои внешне открытые регистры как часть своего электронного компонента datasheet .
Типичные области применения аппаратных регистров включают:
Чтение аппаратного регистра в «периферийных устройствах» — компьютерном оборудовании вне ЦП — включает доступ к его адресу ввода-вывода, отображенному в памяти , или адресу ввода-вывода, отображенному в порте, с помощью инструкции «загрузить» или «сохранить», выданной процессором. Аппаратные регистры адресуются словами, но иногда используют только несколько бит слова, считанных или записанных в регистр.
Коммерческие инструменты проектирования упрощают и автоматизируют спецификацию регистров, отображенных в памяти, и генерацию кода для оборудования , прошивки , проверки оборудования , тестирования и документирования.
Регистры могут быть доступными для чтения/записи, только для чтения или только для записи.
Регистры только для записи обычно избегают. Они подходят для регистров, которые вызывают переходное действие при записи, но не хранят постоянные данные для чтения, такие как регистр «сброс периферийного устройства». Они могут быть единственным вариантом в конструкциях, которые не могут позволить себе вентили для относительно большой логической схемы и маршрутизации сигналов, необходимых для обратного считывания данных регистра, таких как чип TIA игровой консоли Atari 2600. Однако регистры только для записи затрудняют отладку [2] и приводят к проблеме чтения-изменения-записи, поэтому предпочтительны регистры чтения/записи. На ПК регистры только для записи затрудняют для Advanced Configuration and Power Interface (ACPI) определение состояния устройства при переходе в спящий режим для восстановления этого состояния при выходе из спящего режима. [3]
Аппаратные регистры внутри центрального процессора (ЦП) называются регистрами процессора .
Регистры стробирования имеют тот же интерфейс, что и обычные аппаратные регистры, но вместо хранения данных они запускают действие каждый раз, когда в них записывается (или, в редких случаях, считывается). Они являются средством сигнализации .
Регистры обычно измеряются по количеству бит, которые они могут хранить, например, « 8-битный регистр» или « 32-битный регистр».
Проектировщики могут реализовывать регистры различными способами, в том числе:
Помимо «видимых программисту» регистров, которые можно считывать и записывать с помощью программного обеспечения, многие микросхемы имеют внутренние регистры , которые используются для конечных автоматов и конвейеризации ; например, регистровая память .
SPIRIT IP-XACT и DITA SIDSC XML определяют стандартные форматы XML для регистров, отображенных в памяти. [4] [5] [6]
После правильной инициализации INS 8250 следует правильно использовать регистр состояния модема (MSR), регистр состояния линии (LSR) и регистр идентификации прерываний (IIR) для управления устройством во время фактической работы.