- •Раздел 2 принципы построения и функционирования эвм и вычислительных систем (вс)
- •2.1. Структура эвм
- •2.2. Системы счисления
- •2.3. Формы представления чисел
- •2.3.1. Форма представления чисел с фиксированной точкой
- •2.3.2. Форма представления чисел с плавающей точкой
- •2.3.3. Форматы двоично-десятичных чисел
- •2.3. Машинные коды
- •2.3.1. Прямой код
- •2.3.2. Обратный код
- •2.3.3. Дополнительный код
- •2.4. Перевод чисел из одной системы представления в другую
- •2.4.1. Перевод между основаниями, составляющими степень двойки
- •2.4.2. Перевод целого числа из десятичного счисления в другое
- •2.4.3. Перевод дробного числа из десятичного счисления в другое
- •2.4.4. Перевод чисел в десятичную систему счисления
- •2.5. Арифметические действия над двоичными числами
- •2.5.1. Сложение
- •2.5.2. Вычитание
- •2.5.3. Умножение
- •2.5.4. Деление
- •2.6. Понятие алгебры логики
- •2.7. Простейшие логические функции
- •2.7.1. Логическая операция конъюнкция (логическое умножение)
- •2.7.2. Логическая операция дизъюнкция (логическое сложение)
- •2.7.3. Логическая операция инверсия (отрицание)
- •2.7.4. Логическая операция сложение по модулю 2
- •2.7.5. Логическая операция эквивалентность (функция тождества)
- •2.7.6. Логическая операция импликация (логическое следование)
- •2.7.7. Функция Шеффера
- •2.7.8. Стрелка Пирса ав, или функция Вебба a b
- •2.8. Основные правила преобразования формул
- •2.9. Кодирование текстовой информации
- •2.10. Составные части компьютера
- •2.11. Логические элементы
- •2.12. Триггеры
- •2.12.1. Общие сведения о триггерах
- •2.12.2. Асинхронный rs-триггер
- •2.12.3. Синхронный rs-триггер
- •2.12.3. Двухтактный rs-триггер
- •2.12.4. Асинхронный и синхронный d-триггеры
- •2.12.5. T-триггер
- •2.12.6. Jk-триггер
- •2.13. Типовые узлы комбинационного типа
- •2.13.1. Дешифраторы
- •2.13.2. Одноразрядный сумматор
- •2.13.3. Полусумматор
- •2.13.4. Многоразрядные сумматоры
- •2.13.5. Двоично-десятичные сумматоры
- •2.13.6. Мультиплексоры
- •2.13.7. Демультиплексоры
- •2.14. Типовые узлы накапливающего типа
- •2.14.1. Регистры
- •2.14.2. Счетчики
- •2.14.3. Двоично-десятичные счетчики
- •2.15. Классификация архитектур системы команд
- •2.15.1. Классификация по составу и сложности команд
- •2.15.2. Классификация по месту хранения операндов
- •2.15.3. Стековая архитектура
- •2.15.4. Аккумуляторная архитектура
- •2.15.5. Регистровая архитектура
- •2.15.6. Архитектура с выделенным доступом к памяти
- •2.16. Типы команд
- •2.16.1. Команды пересылки данных
- •2.16.2. Команды арифметической и логической обработки
- •2.16.3. Операции с целыми числами
- •2.16.4. Операции с числами в форме с плавающей запятой
- •2.16.5. Логические операции
- •2.16.6. Операции сдвигов
- •2.16.7. Операции с десятичными числами
- •2.16.8. Simd-команды
- •2.16.9. Команды для работы со строками
- •2.16.10. Команды преобразования
- •2.16.11. Команды ввода/вывода
- •2.16.12. Команды управления системой
- •2.16.13. Команды управления потоком команд
- •2.17. Формат команд
- •2.17.1. Длина команды
- •2.17.2. Разрядность полей команды
- •2.17.3. Выбор адресности команд
- •2.18. Способы адресации операндов
- •2.18.1. Непосредственная адресация
- •2.18.2. Прямая адресация
- •2.18.3. Косвенная адресация
- •2.18.4. Регистровая адресация
- •2.18.5. Косвенная регистровая адресация
- •2.18.6. Адресация со смещением
- •2.18.7. Относительная адресация
- •2.18.8. Базовая регистровая адресация
- •2.18.9. Индексная адресация
- •2.18.10. Страничная адресация
- •2.18.11. Блочная адресация
- •2.18.12. Распространенность различных видов адресации
- •2.19. Способы адресации в командах управления потоком команд
- •2.20. Функциональная организация фон-неймановской вычислительной машины
- •2.20.1. Устройство управления
- •2.20.2. Арифметико-логическое устройство
- •2.20.3. Основная память
- •2.20.4. Модуль ввода/вывода
- •2.21. Цикл команды
- •2.21.1. Стандартный цикл команды
- •2.21.2. Описание стандартных циклов команды для гипотетической машины
- •2.21.3. Машинный цикл с косвенной адресацией
2.21.2. Описание стандартных циклов команды для гипотетической машины
Микропрограммы для отдельных этапов исполнения команд гипотетической вычислительной машины (рис. 2.72.) приведены в таблице 2.17.
Таблица 2.17. Микропрограммы отдельных этапов циклов команд (гипотетическая вычислительная машина)
Этап |
Команда |
Номер такта |
Микропрограмма |
|||
|
КОп |
АЧ |
|
|
||
ВК |
|
|
T0 |
РАП_СК: РАП:= СК, ЧтЗУ: РДП := ОП[(РАП)] |
||
ВК+ДК |
|
|
T1 |
РК РДП: РК := РДП, МПА := УнитК := DECOD(РК(КОП)) |
||
ВО |
LDA |
ADR |
T2 |
РАП_РА: РАП:= РК(РА); ЧтЗУ: РДП := ОП[(РАП)| |
||
ИО |
|
|
T3 |
Акк_РДП: Акк:= РДП |
||
ИО |
STA |
ADR |
T2 |
РАП_РА: РАП := РК(РА); РДП_Акк: РДП := Акк |
||
ИО |
|
|
T3 |
ЗпЗУ: ОП[(РАП)]:= РДП |
||
ВО |
ADD |
ADR |
T2 |
РАП_РА: РАП := РК(РА), ЧтЗУ: РДП := ОП[(РАП)] |
||
ИО |
|
|
T3 |
РХ_РДП: РХ:= РДП, PY_Aкк: PY:= Акк, ОпБ:= PY+PX Рпрз := Признаки |
||
ИО |
|
|
T4 |
Акк__ОпБ: Акк := ОпБ |
||
ВО |
SUB |
ADR |
T2 |
РАП_РА: РАП:= РК(РА), ЧтЗУ: РДП := ОП[(РАП)] |
||
ИО |
|
|
T3 |
РХ_РДП: РХ:= РДП, РУ_Акк: PY := Акк, ОпБ := PY – РХ Рпрз: = Признаки |
||
ИО |
|
|
T4 |
Акк_ОпБ: Акк := ОпБ |
||
ИО |
INP |
IPRT |
T2 |
ДВВ_РА: ДВВ := РК(РА) |
||
ИО |
|
|
T3 |
Вв: Акк := Порт ввода IPRT |
||
ИО |
OUT |
OPRT |
T2 |
ДВВ_РА: ДВВ := РК(РА) |
||
ИО |
|
|
T3 |
Выв: Порт вывода OPRT:= Акк |
||
ИО |
JMP |
ADR |
T2 |
БПУП: СК:=РА |
||
ИО |
BRZ |
ADR |
T2 |
If Z=1 then БПУП: СК := РА else +1СК:СК:= СК+1 |
||
ИО |
HLT |
|
T2 |
ОСТ: |
||
ФАСК |
|
|
T4 T5 |
+1СК: СК := СК+1 ; <Для команд LDA, STA, INP, OUT> +1СК: СК := СК+1; <Для команд ADD, SUB> |
Этап выборки любой команды ВМ. На этом этапе происходит извлечение двоичного кода команды из ячейки основной памяти и его занесение в регистр команды. Этап реализуется в двух начальных тактах цикла команды (Т0 и Т1):
Такт Т0 – вырабатывается сигнал управления РАП_СК, инициирующий пересылку содержимого счетчика команд (СК) в регистр адреса памяти (РАП), после чего по сигналу ЧтЗУ содержимое ячейки, выбранной дешифратором адреса памяти (код команды), переписывается в регистр данных памяти (РДП).
• Такт Т1 – формируется сигнал РК_РДП, по которому содержимое регистра данных памяти РДП передается в РК, при этом поле РКОП заполняется кодом операции, а поле РА – адресной частью команды.
Этап декодирования любой команды ВМ. Сразу же после размещения кода операции в РК производится его декодирование, в результате которого активным становится выход дешифратора кода операции (ДКОП), соответствующий коду операции:
• Такт Т1 – дешифратор кода операции ДКОП непосредственно подключен к соответствующему полю регистра команды, поэтому специальный сигнал управления не нужен, а декодирование происходит сразу же после заполнения РК, то есть параллельно второй фазе этапа выборки команды ВК.
Этап вычисления исполнительных адресов. В гипотетической вычислительной машине предусмотрена только прямая адресация, поэтому этап вычисления исполнительных адресов отсутствует.
Этап выборки операндов. В рассматриваемой системе команд этап выборки операндов имеется только в командах LDA (загрузка в аккумулятор содержимого ячейки ОП), ADD (сложение данных аккумулятора и ячейки ОП) и SUB (вычитание из содержимого аккумулятора содержимого ячейки ОП).
Этапы команды LDA ADR. Команда обеспечивает занесение в аккумулятор содержимого ячейки ОП с адресом ADR:
Такт Т2 (этап выборки операндов) – по сигналу РАП_РА содержимое регистра адреса РА (адресная часть команды) пересылается в РАП, после чего по сигналу ЧтЗУ содержимое ячейки с адресом ADR заносится в регистр данных памяти РДП.
Такт Т3 (этап исполнение операции ИО) – по сигналу Акк_РДП операнд из РДП пересылается в аккумулятор.
Этап исполнения операции для команды STA ADR. Команда обеспечивает сохранение содержимого аккумулятора в ячейке ОП с адресом ADR:
Такт Т2 – сигналом РАП_РА адресная часть команды (ADR) из РА пересылается в РАП, одновременно с этим содержимое аккумулятора по сигналу РДП_Акк заносится в РДП.
Такт Т3 – по сигналу ЗпЗУ происходит физическая запись содержимого РДП в ячейку ОП, на которую указывает адрес, находящийся в РАП.
Этапы команды ADD ADR. Команда обеспечивает суммирование текущего содержимого аккумулятора с содержимым ячейки основной памяти ОП, имеющей адрес ADR. Результат сложения остается в аккумуляторе. Одновременно с этим в АЛУ формируются признаки результата, которые запоминаются в регистре признаков:
Такт Т2 (этап выборка операндов) – вырабатывается сигнал РАП_РА, и содержимое регистра адреса РА поступает в регистр адреса памяти РАП. В том же такте по сигналу ЧтЗУ второе слагаемое из ячейки с адресом ADR (первое слагаемое берется из аккумулятора) заносится в регистр данных памяти РДП.
Такт Т3 (этап исполнение операции) – сигнал управления РХ_РДП вызывает пересылку второго операнда из регистра данных памяти РДП в регистр РХ арифметико-логического устройства. Одновременно с этим, сигналом РY_Акк первый операнд из аккумулятора переписывается в PY. Операционный блок выполняет над данными, расположенными в РХ и PY, операцию, заданную в коде операции команды (в нашем случае – сложение), а также формирует признаки, характеризующие этот результат. Признаки автоматически заносятся в регистр признаков Рпрз.
Такт Т4 (этап исполнение операции) – по сигналу Акк_ОпБ информация с выхода ОпБ сохраняется в аккумуляторе.
Этапы команды SUB ADR. Команда обеспечивает вычитание из текущего содержимого аккумулятора содержимого ячейки основной памяти ОП, имеющей адрес ADR. Результат вычитания остается в аккумуляторе. Как и при сложении, формируются и запоминаются признаки результата. Содержание подобно описанию для команды ADD ADR, за исключением действия, выполняемого в операционном блоке ОПБ в такте Т3 (вычитание вместо сложения).
Этап исполнения для команды IMP IPRT. Команда обеспечивает занесение в аккумулятор информации из периферийного устройства (ПУ), подключенного к порту ввода с номером IPRT:
Такт Т2 (этап исполнение операции) – вырабатывается управляющий сигнал ДВВ_РА, по которому адресная часть команды – номер порта ввода – из регистра адреса РА поступает на вход дешифратора номера порта ввода/вывода.
Такт Т3 (этап исполнение операции) – по сигналу Вв информация из периферийного устройства ПУ, подключенного к выбранному дешифратором порту ввода, заносится в аккумулятор.
Этап исполнения для команды OUT OPRT. Команда обеспечивает вывод содержимого аккумулятора на периферийное устройство ПУ, подключенное к порту вывода с номером OPRT:
Такт Т2 (этап исполнение операции) – по сигналу ДВВ_РА адресная часть команды – номер порта вывода – из регистра адреса РА подается на вход дешифратора номера порта ввода/вывода.
Такт Т3 (этап исполнение операции) – сигналом Выв содержимое аккумулятора через выбранный с помощью ДВВ порт вывода передается на подключенное периферийное устройство ПУ.
Этап исполнения операции для команды JMP ADR. Команда обеспечивает безусловный переход к команде, расположенной в ячейке основной памяти ОП с адресом ADR:
Такт Т2 – по сигналу БПУП адресная часть команды (ADR) заносится в счетчик команд, тем самым фактически реализуется этап формирования адреса следующей команды.
Этап исполнения операции для команды BRZ ADR. Команда анализирует хранящийся в регистре признаков Рпрз признак (флаг) нулевого результата, выработанный в АЛУ на предыдущем этапе вычислений, и формирует адрес следующей команды в зависимости от состояния этого признака:
Такт Т2 – при нулевом значении признака (условие перехода не выполнено) естественный порядок выполнения программы не нарушается, и адрес следующей команды формируется обычным образом, путем увеличения содержимого счетчика команд СК на единицу; при единичном значении признака (условие перехода выполнено) в счетчик команд СК заносится содержимое регистра адреса РА. В регистре адреса РА находится адресная часть извлеченной из основной памяти ОП команды перехода, то есть адрес точки перехода (ADR).
Этап исполнения для команды HLT. Команда приводит к завершению вычислений. При этом вырабатывается сигнал ОСТ, нужный для того, чтобы известить операционную систему о завершении текущей программы.
Этап формирования адреса следующей команды. Для формирования адреса следующей команды (если текущая команда не меняет естественной последовательности вычислений) достаточно увеличить содержимое счетчика команд на единицу.