PIC-микроконтроллеры. Все, что вам необходимо знать | страница 36
В двух регистрах команд содержатся коды команд, считанные из памяти программ. В начало конвейера (в первый регистр команд, IR1) загружается код n-й команды и хранится там для обработки в следующем цикле. Это позволяет исполнять команду n - 1, находящуюся в конце конвейера (во втором регистре команд, IR2) одновременно с выборкой n-й команды и загрузкой ее в конвейер. Работа конвейера показана на Рис. 3.7.
Дешифратор команд ID является «мозгами» ЦПУ — он дешифрует код команды, находящийся в регистре IR2, и формирует в определенной последовательности сигналы для исполнительного блока, необходимые последнему для определения местоположения операнда (если таковой имеется) в памяти данных и для переключения АЛУ в заданный режим. На Рис. 3.4 показано выполнение команды movf h’25’,w (копирование содержимого регистра данных с адресом h’25’ в рабочий регистр).
* * *
Исполнительный блок осуществляет обращения к памяти данных и конфигурирование АЛУ. Работой исполнительного блока управляет дешифратор команд, функционирование которого, в свою очередь, зависит от значения кода команды n — 1, находящегося в регистре команд IR2.
Исполнительный блок обрабатывает все числа группами по восемь битов, данные во всех регистрах и в памяти данных также хранятся побайтно. Поэтому о таком компьютере обычно говорят как о 8-битном процессоре.
Когда ЦПУ собирается обратиться к ячейке (регистру) памяти данных, он помещает адрес этой ячейки в регистр адреса FAR. При этом производится непосредственная адресация памяти данных по ее шине адреса. Как показано на Рис. 3.4, из памяти данных считывается регистр с адресом h’25’, и его содержимое защелкивается во внутреннем регистре данных FDR процессора.
Этот «двунаправленный» регистр выполняет две функции:
• Хранит содержимое адресованного регистра данных, если ЦПУ осуществляет цикл чтения. Именно это происходит при выполнении 1-й команды (movf h’25’,w), которая пересылает (копирует) содержимое регистра с адресом h’25’ в рабочий регистр.
• Хранит данные, которые ЦПУ собирается записать в адресованный регистр данных. Такой цикл записи, в частности, имеет место при выполнении команды movwf h’26’, которая пересылает (копирует) содержимое рабочего регистра в регистр с адресом h’26’.
АЛУ выполняет арифметические и логические операции, определяемые значением кода режима (см. Рис. 2.10 на стр. 39), который извлекается из кода команды дешифратором команд.