Подходящий пример использования РIРО - регистра приведен наРис. 3.17. На этой схеме к входу 4-битного регистра подключен выход АЛУ. Выходы регистра, в свою очередь, подключены к одному из входов АЛУ. Этот регистр служит для накопления результата последовательных операций и обычно называется аккумулятором, или рабочим регистром (W_reg). Чтобы разобраться в работе этой схемы, рассмотрим процесс сложения двух слов—А и В. Если предположить, что АЛУ представляет собой микросхему 741LS81, то последовательность операций может быть следующей:
1. Шаг программы
• Режим =00 0000 (сброс).
• По импульсу на входе W_гeg «Исполнение» значение
с выхода АЛУ (0000) подается на вход W регистра (вход В АЛУ).
• Выходные данные — ноль (F=0000).
2. Шаг программы
• Значение слова А=0100 подается на вход АЛУ.
• Режим =01 1001 (сложить).
• По импульсу на входе W_гeg «Исполнение» значение
с выхода АЛУ (0100 +0000 ) подается на вход W регистра (вход В АЛУ).
• Выходные данные — слово А (F=B=0100).
3. Шаг программы
• Значение слова A=0111 подается на вход АЛУ.
• Режим = 01 1001 (сложение).
• По импульсу на входе W_гeg «Исполнение» значение
с выхода АЛУ (слово A + слово B) подается на вход W регистра.
• Выходные данные — сумма слов A и B (0111+0100=1011).
Рис. 4.6 .4-x битный блок обработки (АЛУ/рабочий регистр)
Последовательность кодов операций (00 0000—01 1001—01 1001) и составляет программу (или обычно в Нех формате 00 19 19). На практике каждая команда будет также содержать (при необходимости) адрес обрабатываемых данных; в данном случае — местонахождение слов А и В.
Результат любой операции характеризуется некоторым набором свойств. К примеру, результат может быть равен нулю или же при его вычислении может произойти переполнение. Эти свойства могут потребоваться при дальнейшем выполнении программы.
В рассматриваемой схеме такая информация формируется на выходах Z и С регистра состояний STATUS. В данном контексте состояния этих выходов называются флагами. Таким образом, у нас имеются флаг нуля Z (Zero) и флаг переноса из 7-го бита С (Cary), образующие регистр состояния (SТАТUS).
Рис. 4.7. 4-x битный блок обработки АЛУ/рабочий регистр на системном уровне
Как мы увидим далее, связка АЛУ/Wreg является «сердцем» любого цифрового вычислительного устройства. Причем при использовании сложных систем, таких как компьютер или микроконтроллер, нам совершенно не нужно досконально знать их внутреннее устройство, а процессы, протекающие в системе, скрыты от пользователя.
К примеру, наРис. 3.18 изображен тот же самый блок, но на более высоком уровне абстракции. В частности, группы линий данных (шины) изображены в виде толстых линий, действительная их реализация не имеет никакого значения. Количество линий в шине не показано, но при необходимости оно указывается рядом с коротким штрихом, пересекающим изображение шины по диагонали.
Центральным элементом нашей системы является АЛУ, изображение которого имеет сложную форму. Значения на его входах данных (операнды) обрабатываются согласно сигналам на входах режима. Первый операнд поступает извне, тогда как 2-й операнд считывается из рабочего регистра. В компьютерах коды, подаваемые на вход режима, обычно считываются из памяти программ, а 1-й операнд — из памяти данных.
Значение с выхода АЛУ может быть загружено обратно в рабочий регистр W по сигналу «Исполнение» либо передано вовне по шине данных. Такая структурa показана на Рис. 4.4.