Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Регистры, не определенные в системе команд, но использующиеся узлом управления для пересылки битов при выполнении команды называются регистрами реализации



Таблица 8.1. Регистры фон-неймановской системы команд

Название Функция
Архитектурные регистры
Аккумулятор АС, 40 бит и регистр множимого/ частногоMQ (multiplier quotient), 40 бит Используются для временного хранения операндов и результатов в АЛУ. Например, в результате умножения двух 40-битовых сомножителей формируется 80-битовое произведение. Старшие 40 разрядов произведения или частного от деления хранятся в АС, а младшие 40 битов – в MQ

 

 

Регистры реализации
Программный счетчик или счетчик команд РС (program counter), 12 бит Хранит адрес следующего слова команды, которое должно быть извлечено из памяти после завершения выполнения пары команд из текущего слова.
Буферный регистр команд IBR (instruction buffer register), 40 бит Служит для временного хранения правой команды, извлеченной при чтении очередного слова команды из памяти.
Регистр команд IR (instruction register), 20 бит Хранит код операции текущей команды длиной в 8 бит в процессе ее выполнения
Регистр адреса памяти MAR (memory address register), 12 бит Хранит адрес ячейки памяти, к которой производится обращение для считывания слова или записи
Регистр данных памяти MBR (memory buffer register), 40 бит Хранит слово, которое должно быть записано в память или которое только что извлечено из памяти.

Программный счетчик отличается от остальных регистров. Он может быть загружен значением при выполнении команды перехода, что делает его архитектурным регистром, но не может быть прочитан или записан, что делает его регистром реализации.

На рисунке 8.3. представлена укрупненная блок-схема фон-неймановской архитектуры.

Операции

В ФНСК предусмотрены операции трех типов:

пересылки между аккумулятором, регистром множителя-частного и памятью;

операции АЛУ, например сложение, вычитание, деление и умножение;

команды безусловных и условных переходов, приводящие к изменению программного потока.

Фон-неймановская архитектура содержит 21 команду. Этого вполне достаточно для программирования любого алгоритма. Современные СК требуют существенно меньшего числа команд.

В соответствии с таким делением ФНСК представлена в таблице 8.2. (соответствует рис. 8.2.а и б)

 

 

Таблица 8.2. Фон-неймановская система команд

Команды пересылки
AC MQ Пересылка числа из MQ в аккумулятор
M(x) AC Пересылка числа из аккумулятора в ячейку X памяти. Адрес памяти X извлекается из младших бит команды
3* M(x,28:39) AC(28:39) Замена левых 12 бит левой команды, расположенной по адресу X в памяти, левыми 12 бит аккумулятора#
M(x,8:19) AC(28:39) Замена левых 12 бит правой команды, расположенной по адресу X в памяти, левыми 12 бит аккумулятора#
Команды АЛУ
ACc M(x) Очистка аккумулятора и прибавление числа из ячейки с адресом х в памяти
AC ACc – M(x) Очистка аккумулятора и вычитание числа из ячейки с адресом х в памяти
AC ACc + |M(x)| Очистка аккумулятора и прибавление абсолютного значения числа из ячейки с адресом х в памяти
AC ACc - |M(x)| Очистка аккумулятора и вычитание абсолютного значения числа из ячейки с адресом х в памяти
AC AC + M(x) Прибавление числа из ячейки с адресом х в памяти к числу в аккумуляторе
AC AC - M(x) Вычитание числа из ячейки с адресом х в памяти из числа в аккумуляторе
AC AC + |M(x)| Прибавление абсолютного значения числа из ячейки с адресом х в памяти к числу в аккумуляторе
AC AC – |M(x)| Вычитание абсолютного значения числа из ячейки с адресом х в памяти из числа в аккумуляторе
MQc M(x) Очистка регистра MQ и прибавление к нему числа из ячейки с адресом х в памяти
ACc, MQ M(x) ´ MQ Очистка аккумулятора и умножение числа из ячейки с адресом х в памяти на число в MQ; помещение старших 39 бит результата в аккумулятор и младших 39 бит результата в MQ

 



MQc, AC AC + M(x) Очистка аккумулятора и деление числа в аккумуляторе на число из ячейки с адресом х в памяти; оставление остатка в аккумуляторе и помещение частного в MQ
AC AC ´ 2 Умножение числа в аккумуляторе на 2
AC AC ¸ 2 Деление числа в аккумуляторе на 2
Команды управления
Переход на M(x,20:39) Передача управления на левую команду пары команд в M(x)
Переход на M(x,0:19) Передача управления на правую команду пары команд в M(x)
Если AC ³ , то РС M(x,0:19) Если число в аккумуляторе ³ 0, то управление передается на правую команду в М(х)
Если AC i 0, то РС M(x,20:39) Если число в аккумуляторе ³ 0, то управление передается на левую команду в М(х)

 



  • Эти команды пересылают адресную часть команды между памятью и аккумулятором; они необходимы для поддержки модификации адреса.
  • # Запись М(х,0:19) – обозначает правые 20 бит ячейки М(х); М(Х,20:39) – обозначает левые 20 бит и т.д.

Команды группировались следующим образом:

Команды пересылки данных. Команды этой группы выполняют пересылку данных из заданной ячейки памяти в один из двух адресуемых регистров АЛУ – аккумулятор АС или регистр множимого/частного MQ – или из этих регистров в заданную ячейку памяти.

Команды безусловного перехода. Естественный порядок выполнения команд соответствует их расположению в ячейках памяти. Этот естественный порядок может быть изменен командами перехода. Команды безусловного перехода изменяют порядок выполнения независимо от состояния аккумулятора, т.е. фактически от результата предыдущей операции. Использование команд перехода в программе позволяет организовать повторное выполнение отдельных участков программы.

Команды условного перехода. Команды этой группы также изменяют естественный порядок выполнения команд программы, но это изменение происходит только при определенном состоянии аккумулятора, т.е. зависит от результата предыдущей операции. С помощью команд условного перехода в программе реализуется принятие решения на основе результатов вычисления.

 

Арифметические команды. Команды этой группы задают выполнение четырех арифметических действий, причем некоторые арифметические операции имеют пару модификаций.

Команды модификации адресной части команды.Команды этой группы позволяют выполнять модификацию программы программным путем, заменяя первоначально установленные значения адресных полей в командах. Новые значения вычисляются в аккумуляторе

В соответствии с таким делением ФНСК представлена в таблице 8.3. (соответствует рис. 8.2.в и г).

Таблица 8.3. Фон-неймановская система команд

Тип команды Код операции Символическое представление Описание
Пересылка данных в память или из памяти 0000 1010 LOAD MQ Пересылка содержимого MQ в аккумулятор
0000 1001 LOAD MQ, M(X) Пересылка содержимого ячейки памяти по адресу Х в регистр MQ
0010 0001 STOR M(X) Пересылка содержимого аккумулятора АС в ячейку памяти по адресу Х
0000 0001 LOAD M(X) Пересылка содержимого ячейки памяти по адресу Х в аккумулятор АС
0000 0010 LOAD – M(X) Пересылка взятого с обратным знаком содержимого ячейки памяти по адресу Х в аккумулятор АС
0000 0011 LOAD |M(X)| Пересылка абсолютной величины cодержимого ячейки памяти по адресу Х в аккумулятор АС
0000 0100 LOAD - |M(X)| Пересылка взятой обратным знаком абсолютной величины cодержимого ячейки памяти по адресу Х в аккумулятор АС
Безусловный переход 0000 1101 JUMP M(X, 0:19) Выбирает следующую команду из левой части слова по адресу X

 

  0000 1110 JUMP M(X, 20:39) Выбирает следующую команду из правой части слова по адресу X
Условный переход 0000 1111 JUMP + M(X, 0:19) Если число в аккумуляторе АС неотрицательно, выбирает следующую команду из левой части слова по адресу Х
0001 0000 JUMP + M(X, 20:39) Если число в аккумуляторе АС неотрицательно, выбирает следующую команду из правой части слова по адресу Х
  Арифметика 0000 0101 ADD M(X) Суммирует содержимое ячейки памяти по адресу Х и содержимое аккумулятора; результат сохраняется в аккумуляторе
  0000 0111 ADD |M(X)| Суммирует абсолютную величину содержимого ячейки памяти по адресу Х и содержимое аккумулятора; результат сохраняется в аккумуляторе
  0000 0110 SUB M(X) Вычитает содержимое ячейки памяти по адресу Х из содержимого аккумулятора; разность сохраняется в аккумуляторе
  0001 0000 SUB |M(X)| Вычитает абсолютную величину содержимого ячейки памяти по адресу Х из содержимого аккумулятора; разность сохраняется в аккумуляторе
           

 

  0000 1011 MUL M(X) Умножает содержимое ячейки памяти по адресу Х на содержимое регистра MQ; старшие разряды произведения сохраняются в аккумуляторе, а младшие – регистре MQ
Арифметика 0000 1100 DIV M(X) Делит содержимое аккумулятора АС на содержимое ячейка памяти по адресу Х; частное сохраняется в регистре MQ, а остаток от деления – в аккумуляторе
0001 0100 LSH Умножает содержимое аккумулятора на 2 (т.е. сдвигает его содержимое на один разряд влево)
0001 0101 RSH Делит содержимое аккумулятора на 2 (т.е. сдвигает его содержимое на один разряд вправо)
Модификация адресной части команды 0001 0010 STOR M(X,8:19) Заменяет поле адреса в команде, размещенной в левой части ячейки по адресу Х, содержимым младших 12 разрядов аккумулятора АС
0001 0011 STOR M(X,28:99) Заменяет поле адреса в команде, размещенной в правой части ячейки по адресу Х, содержимым младших 12 разрядов аккумулятора АС

 

 


Эта страница нарушает авторские права

allrefrs.ru - 2019 год. Все права принадлежат их авторам!