Лекции.ИНФО


ОБЩАЯ ХАРАКТЕРИСТИКА БАЗОВОЙ ЭВМ.



ОБЩАЯ ХАРАКТЕРИСТИКА БАЗОВОЙ ЭВМ.

Назначение базовой ЭВМ.

Базовая ЭВМ - это простая гипотетическая машина, обладающая типичными чертами многих конкретных микро-ЭВМ. Знание принципов построения и функционирования этой ЭВМ будет хорошей базой для освоения микропроцессорных систем любых типов и моделей. Прото­типом базовой ЭВМ была выбрана простая модель, так как начинать изучение ЭВМ лучше всего с простых моделей. Базовая ЭВМ модели­руется с помощью программы "basepc", разработанной в ЛИТМО на кафедре "Вычислительной техники".

Структура базовой ЭВМ.

На рис.1.1. приведена укрупненная структура базовой ЭВМ. Это одноадресная ЭВМ, работающая с 16-ти разрядными словами. В ней реализованы два вида адресации: прямая и косвенная.

Сначала рассмотрим составные части базовой ЭВМ и их харак­теристики.

Оперативная память состоит из 2048 ячеек (16-ти битовых) с шестнадцатиричными адресами: 000, 001, 002, ..., 7FF. Восемь ячеек памяти с адресами: 008, 009, 00А, ..., 00F - несколько от­личаются от остальных. Эти ячейки лучше использовать в цикличес­ких программах. Если произвести косвенное адресование к какой-либо из этих ячеек, то сначала ее содержимое будет использо­вано в качестве адреса операнда, а затем оно автоматически уве­личится на единицу. При прямом адресовании индексные ячейки работают как обычные ячейки.

Процессор состоит из ряда регистров, арифметико-логического устройства и устройства управления.

Счетчик команд (СК) служит для организации обращений к ячейкам памяти, в которых хранятся команды программы. После ис­полнения любой команды СК указывает адрес ячейки памяти, содер­жащий следующую команду программы. СК имеет 11 двоичных разря­дов.

Регистр адреса (РА) содержит адрес ячейки памяти, к которой в данный момент обращается ЭВМ за командой или данными. РА также имеет 11 двоичных разрядов.

Регистр команд (РК) имеет 16 двоичных разрядов и использу­ется для хранения кода команды, непосредственно исполняемой машиной.

Регистр данных (РД) используется для временного хранения 16-ти разрядных слов при обмене информацией между памятью и про­цессором.

Аккумулятор (А) используется для хранения одного из операн­дов и результата операции при выполнении арифметических и логических опе­раций. Он имеет 16 двоичных разрядов и является одним из главных элементов процессора.

Регистр переноса (С) - это одноразрядный регистр, выступаю­щий в качестве продолжения аккумулятора, и заполняющийся при пе­реполнении А. Этот регистр используется при выполнении сдвигов.

Арифметико-логическое устройство (АЛУ) может выполнять та­кие арифметические операции, как сложение и сложение с учетом переноса, полученного в результате выполнения предыдущей опера­ции. Кроме того, оно способно выполнять операции логического ум­ножения, инвертирования, циклического сдвига.

Клавишный регистр (КР) – это шестнадцатиразрядный регистр для набора кодов адресов и данных.

 

 

Система команд базовой ЭВМ

ЭВМ способна понимать и выполнять точно определенный набор команд. При составлении программы пользователь ограничен этими командами. Команды можно разделить на три группы:

· обращения к памяти (адресные команды);

· обращения к регистрам (регистровые или безадресные команды);

· команды ввода-вывода.

Команды обращения к памяти предписывают машине производить действия с содержимым ячейки памяти, адрес которой указан в ад­ресной части команды.

Безадресные команды выполняют различные действия без ссылок на ячейку памяти. В качестве примера можно привести команды: CLA (очистить аккумулятор), HLT (остановить выполнение програм­мы) и др.

Команды ввода-вывода осуществляют обмен данными между про­цессором и внешними устройствами ЭВМ.

 

 
 

 

 


В табл. 1.1. приведен полный перечень команд базовой ЭВМ.

 

СИСТЕМА КОМАНД БАЗОВОЙ ЭВМ

Таблица 1.1.

Наименование Мнемон. обозн. Код Описание
Адресные команды
Логическое умножение AND M 1XXX (M) & (A) ®A
Пересылка MOV M 3XXX (A) ® M
Сложение ADD M 4XXX (M)+(A) ®A
Сложение с переносом ADC M 5XXX (M)+(A) +(С)®A

 

Продолжение таблицы 1.1

Вычитание SUB M 6XXX (A)-(M) ®A
Переход, если перенос BCS M 8XXX Если (С)=1, то М®СК
Переход, если плюс BPL M 9XXX Если (А)³0, то М®СК
Переход, если минус BMI M AXXX Если (A)<0, то M®СК
Переход, если ноль BEQ M BXXX Если (A)=0, то M®СК
Безусловный переход BR M CXXX M®СК
Обращение к п/программе JSR M 2XXX (CK) ®M, M+1®CK
Приращение и пропуск ISZ M 0XXX (M)+1® M; если (M)³0, то (CK)+1® CK
Безадресные команды
Очистка аккумулятора CLA F200 0®A
Очистка регистра переноса CLC F300 0®С
Инверсия аккумулятора CMA F400 NE(A) ® A
Инверсия регистра переноса CMC F500 NE(C) ® C
Циклический сдвиг влево на 1 разряд ROL F600 Содержимое A и C сдвига­ется влево, A(15) ® C, (C) ®A(0)
Циклический сдвиг вправо на 1 разряд ROR F700 Содержимое A и C сдвига­ется вправо, A(0) ® C, (C) ®A(15)
Инкремент аккумулятора INC F800 (A)+1®А
Декремент аккумулятора DEC F900 (A)-1®А
Останов HLT F000  
Нет операции NOP F100  
Разрешение прерывания EI FA00  
Запрещение прерывания DI FB00  
Команды ввода-вывода
Очистка флага CLF B E0XX 0 ® флаг устройства В
Опрос флага TSF B E1XX Если (флаг устр. B)=1, то (CK)+1 ® CK
Ввод IN E2XX (B) ® А
Вывод OUT E3XX (A) ® В
Примечание: (M), (A), (CK), (C), (B) – содержимое: ячейки с адресом M, аккумулятора, счетчика команд, регистра переноса и регистра данных устройства ввода-вывода с адресом B соответственно. XXX - адрес ячейки памяти. XX - адрес устройства ввода-вывода. Описание команд приводится для случая прямой адресации.

Арифметические операции.

В базовой ЭВМ можно выполнять по командам сложение и вычи­тание положительных целых чисел и целых чисел со знаком. Умноже­ние и деление можно осуществить программным путем.

Целые неотрицательные числа (положительные числа и нуль) в базовой ЭВМ могут лежать в диапазоне от 0 до (216-1)=65535.

Для представления целых чисел со знаком используется 15 двоичных разрядов, а старший разряд (16-тый) служит для кодиро­вания знака. Таким образом, в базовой ЭВМ можно представлять це­лые числа со знаком в диапазоне от -32768 до +32767 (см. табл.1.2.). Отрицательные числа представляются в дополнительном коде, так как это упрощает выполнение арифметических операций. Допол­нительный код отрицательного целого числа получается по правилу:

1) инвертируется код числа;

2) к инверсии добавляется единица.

Например, прямой двоичный код единицы 0000000000000001. Чтобы получить дополнительный код нужно к инверсии этого кода добавить единицу:

1111111111111110 - инверсия 1

+ 0000000000000001

1111111111111111 - дополнительный код 1

Десятичные эквиваленты 16-ти битовых двоичных чисел.Табл. 1.2.

 

Двоичное число Десятичное число Двоичное число Десятичное число
0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0010 0000 0000 0000 0011 .................………………… 0111 1111 1111 1110 0111 1111 1111 1111 +1 +2 +3 ………............ +32766 +32767 1111 1111 1111 1111 1111 1111 1111 1110 1111 1111 1111 1101 1111 1111 1111 1100 .................……………….. 1000 0000 0000 0001 1000 0000 0000 0000 -1 -2 -3 -4 ........……….. -32767 -32768

Сложение целых двоичных чисел со знаком и без знака выпол­няется в базовой ЭВМ с помощью команды ADD.

По команде INC к содержимому аккумулятора прибавляется еди­ница, а по команде DEC - единица вычитается. Если при этом воз­никает перенос из старшего разряда А, то в регистр переноса (С) заносится 1, в противном случае в него заносится 0.

По команде SUB выполняется операция вычитания. Уменьшаемое находится в аккумуляторе, а вычитаемое - в ячейке с указанным адресом.

Подпрограммы.

Достаточно часто встречаются ситуации, когда отдельные час­ти программы должны выполнять одни и те же действия по обработке данных (например вычисление тригонометрической функции). В по­добных случаях повторяющиеся части программы выделяют в подпрог­рамму, а в соответствующие места программы заносят лишь команды обращения к этой подпрограмме. В базовой ЭВМ для этой цели ис­пользуется команда JSR (Обращение к подпрограмме). Ниже показана часть основной программы, содержащая две команды JSR 500, с по­мощью которых осуществляется переход к выполнению команд подп­рограммы.

По команде JSR 500, расположенной в ячейке 55, выполняется запись числа 55+1=56 (текущего значения счетчика команд) в ячей­ку с адресом 500 и запись числа 500+1=501 в счетчик команд (ад­рес первой команды подпрограммы). Таким образом осуществляется переход к выполнению команд подпрограммы. Далее начинается про­цесс выполнения команд подпрограммы, который завершается командой BR (500), расположенной в ячейке 526. Это команда безуслов­ного перехода с косвенной адресацией предписывает ЭВМ выполнить переход к команде, расположенной по адресу, хранящемуся в 500 ячейке (пересылает содержимое 500 ячейки в СК). Так как в эту ячейку ранее было записано число 56, то будет выполняться команда, находящаяся в ячейке 56, т.е. следую­щая за обращением к подпрограмме. Аналогично выполняется команда JSR 500, расположенная в ячейке 82 (после выполнения команд подпрограммы будет выполнен переход к ячейке 83).

 

 
 

 

 


Таким образом, при оформлении подпрограммы перед ее первой командой следует разместить ячейку, в которую будет пересылаться адрес возврата из подпрограммы. В команде обращения к подпрог­рамме указывается адрес именно этой ячейки (например адрес М в команде JSR M). Последней командой подпрограммы должна быть ко­манда выхода (команда BR (M) для подпрограммы, размещенной начи­ная с ячейки М). По ней осуществляется переход к команде, адрес которой сохраняется в начальной ячейке тела подпрограммы.

Выполнение машинных команд.

В процессе выполнения команд устройство управления ЭВМ про­изводит анализ и пересылку команды, отдельных ее частей (кода операции, признака адресации и адреса) или операнда из одного регистра ЭВМ в другой ее регистр, АЛУ, память или устройства ввода-вывода. Эти действия (микрооперации) протекают в опреде­ленной временной последовательности и скоординированы между со­бой. Для обеспечения такой последовательности в ЭВМ используется генератор тактовых импульсов.

Цикл команды. Для реализации одной команды требуется выпол­нить определенное количество микрокоманд, каждая из которых ини­циируется одним тактовым импульсом. Общее число тактовых импуль­сов, требуемых для выполнения команды, определяет время ее вы­полнения, называемое циклом команды. Цикл команды обычно включа­ет один или несколько машинных циклов. Устройство управления ба­зовой ЭВМ может находиться в четырех возможных состояниях: вы­борки команды, выборки адреса, исполнения и прерывания. Длитель­ность каждого из этих четырех состояний определяет время выполнения соответствующего машинного цикла. Основные действия, вы­полняемые ЭВМ во время каждого из машинных циклов описаны ниже.

Выборка команды. В данном машинном цикле выполняется чтение команды из памяти и ее частичное декодирование.

1. Содержимое ячейки памяти, на которую указывает регистр адреса, куда заносится содержимое счетчика команд, читается из памяти в регистр данных.

2. Содержимое счетчика команд увеличивается на 1.

3. Содержимое регистра данных пересылается в регистр ко­манд, код операции команды частично декодируется для выявления типа команды (адресная, безадресная или ввода-вывода), анализи­руется бит признака адресации и происходит подготовка цепей, не­обходимых для выполнения команды.

Безадресные команды и команды ввода-вывода окончательно ис­полняются в этом же цикле, т.е. это одноцикловые команды.

4. Выполняются действия по завершению одноцикловой команды.

Выборка адреса. Этот машинный цикл следует за циклом выбор­ки команды для адресных команд с косвенной адресацией (бит вида адресации равен 1). Цикл используется для чтения из памяти адре­са операнда, результата или перехода и состоит из следующих ша­гов.

1. Адресная часть команды пересылается из регистра данных, где пока еще сохраняется копия команды, в регистр адреса.

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

Если косвенно адресуется одна из индексных ячеек (адреса 8, 9,...,F), то цикл выборки адреса операнда (результата) продолжает­ся.

3. Содержимое регистра данных увеличивается на единицу.

4. Измененное содержимое регистра данных пересылается в ячейку памяти по адресу, указываемому регистром адреса.

5. Содержимое регистра данных уменьшается на единицу.

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

Исполнение. Последовательность действий, выполняемых в этом цикле, определяется типом выполняемой адресной команды.

1. Для команд, при выполнении которых требуется выборка операнда из памяти ЭВМ (AND, ADD, ADC, SUB, ISZ), состояние ис­полнения используется для чтения операнда в регистр данных и вы­полнения операции, указываемой кодом операции команды.

2. По команде пересылки (MOV) в этом машинном цикле произ­водится запись содержимого аккумулятора в ячейку памяти с адре­сом, расположенным в регистре данных. Для этого содержимое ре­гистра данных пересылается в регистр адреса, а содержимое акку­мулятора - в регистр данных и далее в ячейку памяти, указываемую регистром адреса.

3. При исполнении команд переходов (BCS, BPL, BMI, BEQ) производится проверка соответствующего условия и пересылка адре­са из регистра данных в счетчик команд при выполнении этого ус­ловия. Иначе будет выбрана команда, расположенная вслед за ко­мандой перехода. При исполнении команды безусловного перехода (BR) пересылка адреса перехода в счетчик команд выполняется без какой-либо проверки.

4. Для команды обращения к подпрограмме (JSR) во время это­го машинного цикла осуществляется пересылка содержимого счетчика команд в ячейку памяти, адрес которой содержится в регистре дан­ных (код команды из регистра данных заносится в регистр адреса, и при этом код операции теряется, а остается адрес), и занесение в счетчик команд увеличенного на единицу содер­жимого регистра данных (код операции теряется, а остается адрес, увеличенный на единицу).

Содержание отчета по работе

1. Титульный лист.

2. Цель работы.

Текст исходной программы по следующей форме:

"Адрес" "Код команды" "Мнемоника" "Комментарии"

21 4015 ADD 15 (A)+(15)--> A

3. Таблица с результатами выполнения программы.

4. Описание программы: назначение программы и реализуемые ею функции; область представления исходных данных и результатов; расположение в памяти ЭВМ программы, исходных данных и результа­тов; адреса первой и последней выполняемой команд программы.

4. Собственный вариант аналогичной программы с меньшим чис­лом команд (если это возможно).

ВАРИАНТЫ ПРОГРАММ

(первая команда программы помечена знаком "+")

Адрес В а р и а н т ы п р о г р а м м
01A 01B 01C 01D 01E 01F 01AA +F200 401A 301B F200 101B 301B F000 +F200 F200 F000 01AA +F200 F200 F000 01AA +F200 301A F200 101A 301A F000 03CF 01AA +F200 F200 F000 +F200 F200 F000 01AA

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Структура базовой ЭВМ и функции ее компонентов (ОП, РА, РД, А, С, РК, КР, АЛУ, УУ, СК).

2. Форматы команд базовой ЭВМ.

3. Форматы данных базовой ЭВМ.

4. Порядок выполнения работы.

5. Объяснение работы программы.

ЛАБОРАТОРНАЯ РАБОТА № 2

ВАРИАНТЫ ПРОГРАММ

(первая команда программы помечена знаком "+")

Адрес В а р и а н т ы п р о г р а м м
01A 01B 01C 01D 01E 01F 0FA7 +F200 F200 F100 F000 C01F +C01A FFD0 002F F200 A020 F200 F100 F000 CCCC 0F0A F0F6 F000 +F200 B020 F200 F000 C01F +C01B F000 F200 401A F200 301A F000 +F200 F200 F100 F000 C01F FFD1 002F +C01B 001B FFD0 002F F200 401A A021 F200 F100 F000 CCCC

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

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

2. Порядок выполнения работы.

3. Объяснение работы программы.

ЛАБОРАТОРНАЯ РАБОТА №3

ВАРИАНТЫ ПРОГРАММ

(первая команда программы помечена знаком "+")

Адрес В а р и а н т ы п р о г р а м м
00A 00B 00C 00D 00E 00F 01A 01B 01C 01D 01E 01F 001B FFFD +F200 480E B018 C013 F000 F0EB 001B FFFD +F200 480F A018 C013 F000 7F01 DECA 30AE 001A +F200 480C 401D 301D C011 F000 FFFD 71BC ABBA 63CD FFFD +F200 480A A01D F200 F800 C016 F000 001D FFFD +F200 480B F200 F800 401C 301C C012 F000 B0BA 5B1B CF01 FFFD +F200 480D B01A C01D F800 C016 F000

Содержание отчета по работе.

Титульный лист, цель работы, текст программы с комментариями, таблица с результатами выполне­ния программы и описание программы.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Как организуются программные циклы в базовой ЭВМ?

2. Порядок выполнения работы.

3. Объяснение работы программы.

ЛАБОРАТОРНАЯ РАБОТА № 4

Асинхронный обмен.

Программа такого обмена строится следующим образом: сначала проверяется готовность ВУ к обмену и, если оно готово, дается команда на обмен. ВУ сообщает о готовности установкой флага.

Пример 2.1. С помощью ВУ-2 записать в ячейку 006 коды сим­волов слова "ДА".

Для обозначения символов будем использовать следующие коды:

 

Символ А Б Д Е И Й К М Н О П Р Т Ч Ш Ь Ы Я
Код E1 E2 E4 E5 E9 EA EC ED EE EF F0 F2 F4 FE FB F8 F9 F1

 

Программа для выполнения этого задания имеет вид:

Адрес Содержимое Комментарий
Код Мнемоника
..   2A 2B 2C FFF8   E102   C020 E202   E002 F600 0005 C024 E102 C027   E202   E002 3006 F000     TSF 2   BR 20 IN 2   CLF 2 ROL ISZ 5 BR 24 TSF 2 BR 27   IN 2   CLF 2 MOV 6 HLT Константа -8, используемая для сдвига Ячейка для записи слова "ДА".   Опрос флага контроллера ВУ-2 и повторение этой операции, если ВУ-2 не готово к обмену (флаг=0). Эта команда выполняется, если флаг=1 (команда BR 20 в этом случае пропускается). Содержимое РД ВУ-2 пересылается в 8 младших разрядов ак-кумулятора. Сброс готовности ВУ-2 (очистка флага ВУ-2) Код первого символа сдвигается на 8 разрядов влево и освобождает место для ввода следующе- го символа. Опрос флага контроллера ВУ-2 и повторение этой операции, если ВУ-2 не готово к обмену (флаг=0). Ввод кода символа содержащегося в РД ВУ-2. Эта команда выполняется, если флаг=1. Сброс готовности ВУ-2. Пересылка кода слова "ДА" в ячейку 006. Останов ЭВМ.

 

Две первые команды этой программы "заставляют" ЭВМ ожидать го­товности ВУ-2 к выдаче данных. Поэтому до первого нажатия клави­ши F2 необходимо занести в РД ВУ-2 код символа "Д" (для ввода данных в РД ВУ-2 необходимо нажать клавиши Shift+F2 и осущест­вить ввод с клавиатуры, после чего нажать клавишу "Enter"). За­тем нажать клавишу F2 и (после сброса флага ВУ-2) приступить к набору символа "A". В процессе набора этого кода ЭВМ занята сдвигом кода символа "Д" в старшие разряды аккумулятора, чтобы подготовиться к приему символа "А", и ожиданием поступления нового сигнала готовности ВУ-2 к выдаче информации. После набора ко­да символа "А" (набирается аналогично символу "Д") можно сразу нажимать клавишу F2. Теперь в аккумулятор перепишется все слово "ДА", а затем оно перепишется в ячейку 006 и выполнение программы прекратится.

Легко заметить, что при асинхронном обмене ЭВМ должна тратить время на ожидание момента готовности, а так как готовность проверяется программным путем (команда TSF), то в это время ЭВМ не может выполнить никакой другой работы по преобразованию дан­ных.

Управляющая микрокоманда

1 Х Х А РК РД РС                                        

 

 

                   
 
Код операции
 
Адрес перехода
 
Поле выбора проверяемого бита
   
Поле выбора проверяемого регистра А, РК, РД, РС
 
 
     
Однобитовое поле сравнения
 

 

 


Микропрограмма хранится в постоянном запоминающем устройс­тве - памяти микрокоманд. В каждом такте работы ЭВМ из этой па­мяти в регистр микрокоманд (РМК) пересылается очередная микроко­манда, т. е. микрокоманда, на которую указывает счетчик микроко­манд (СчМК), одновременно выполняющий функции регистра адреса микрокоманд. Затем содержимое СчМК наращивается на единицу.

Если из памяти микрокоманд выбрана операционная микрокоман­да, то в 31-й бит РМК записывается 0. Этот сигнал через инвертор открывает вентильную схему ВРО и обеспечивает передачу на В0-В28 состояний соответствующих битов РМК (управляющих сигналов У0-У28). Разряды РМК, содержащие 1, создают открывающий управля­ющий сигнал, а содержащие 0 - закрывающий. Подобная структура микрокоманды, где каждый бит используется для создания отдельно­го управляющего сигнала, называется горизонтальной.

Вентильные схемы В1, В2, В3 предназначены, соответственно, для передачи содержимого РД, РК, СК на правый вход АЛУ. Если все эти схемы закрыты (У1=У2=У3=0), то сигнал на правом входе АЛУ со­ответствует коду числа 0. Аналогично используются вентильные схемы В4, В5 и В6, позволяющие передать на левый вход АЛУ содер­жимое А, РС, клавишного регистра (КР) или кода числа 0.

Управляющие сигналы У7-У10 перестраивают АЛУ на выполнение различных микроопераций. При У7=...=У10=0 в 17 разрядный буфер­ный регистр АЛУ (БР) записывается сумма входных сигналов АЛУ; при У7=У8=У9=0 и У10=1 к такой сумме добавляется 1; при У7=У8=У10=0 и У9=1 в БР записывается результат логического умножения входных сигналов АЛУ; при У7=1 и (или) У8=1 можно получить аналогичные результаты, но для инверсных значений одного или двух входных сигналов.

Рассмотрим несколько примеров операционных микрокоманд.

1. Для вычитания содержимого РД из содержимого А и записи результата в буферный регистр следует выполнить микрокоманду

(0000 0000 0000 0000 0000 0101 0001 0010)2=(0000 0512)16, т.е. одновременно подать единичные управляющие сигналы на В1, В4, В8 и В10. Тогда к уменьшаемому прибавится обратный код вычи­таемого и к этой сумме добавится единица, что эквивалентно сум­мированию уменьшаемого с дополнительным кодом вычитаемого.

2. Для вычитания 1 из содержимого аккумулятора надо выпол­нить микрокоманду (0000 0110)16, т.е. подать единичные управляю­щие сигналы на В4 и В8 и сложить содержимое А с обратным кодом числа 0 или (что то же самое) с дополнительным кодом числа -1.

3. Для увеличения на 1 содержимого СК надо выполнить микро­команду (0000 0408)16, т.е. открыть В3 и В10.

Вентильные схемы В11 и В12 позволяют записать в БР сдвину­тое на один разряд вправо или влево содержимое аккумулятора. При этом "лишний" разряд БР заполняется содержимым регистра переноса С.

Вентильные схемы В13-В15 используются для передачи в одно­битные регистры C, N, Z признаков результата операции, выполнен­ной в АЛУ: двух старших разрядов 17-ти битового БР (перенос и знак), а также выходного сигнала специальной схемы, который ра­вен 1 лишь в том случае, когда содержимое БР равно 0. Управляю­щие сигналы У16 и У17 позволяют установить регистр С в 0 или 1 независимо от результата выполнения операции, сохраняемого на БР.

Вентильные схемы В18-В22 позволяют переписать содержимое 16 или 11 младших разрядов БР в РА, РД, РК, СК и А соответственно.

Вентильные схемы В23-В28 используются для организации обме­на информацией между регистрами процессора и другими подсистема­ми ЭВМ (памятью и устройствами ввода-вывода). И, наконец, вен­тильная схема В0 используется для передачи сигнала прекращения выполнения программы (команда HLT).

Если из памяти микрокоманд выбрана управляющая микрокоман­да, то в 31-й бит РМК записывается единица (код операции УМК). Этот сигнал открывает вентильную схему ВР1 и тем самым создает условия для выполнения УМК. Теперь по сигналу, создаваемому каким-либо битом поля выбора проверяемого регистра (У1, У2, У4 или У5) открывается одна из вентильных схем В1, В2, В4 или В5 и на вентили ВВ0-ВВ15 поступает через АЛУ содержимое соответствующего регистра (РД, РК, А или РС). Одновременно на эти же вентили пос­тупает с РМК содержимое поля выбора проверяемого бита. Так как в этом поле записана только одна 1 (на месте, соответствующем про­веряемому биту), то открывается лишь один из вентилей ВВ0-ВВ15, через который на схему сравнения поступает содержимое проверяе­мого бита из проверяемого регистра. На другой вход этой схемы поступает содержимое однобитового поля сравнения (24 бит УМК), в которое при кодировании УМК записали 0 или 1.

Если проверяемый бит и бит из поля сравнения идентичны, то схема сравнения формирует единичный сигнал, который открывает вентильную схему ВА и на СчМК пересылается адрес перехода (16-23 биты УМК). В противном случае на СчМК сохраняется адрес микроко­манды, расположенной вслед за исполняемой, так как после выборки текущей микрокоманды содержимое СчМК увеличивается на единицу.

При организации разветвлений в микропрограмме используется содержимое регистра состояний, являющегося объединением одноби­товых регистров признаков и состояний ЭВМ (табл. 3.1). Такое объединение сделано с целью формального уменьшения числа регист­ров, с которыми работает МПУ, что позволяет сократить разряд­ность УМК. На структурной схеме (рис. 3.2) РС изображен (для удобства описания ) в виде самостоятельного регистра, хотя его разряды лишь дублируют состояние регистров C, N, Z и.т.д.

 

Табл. 3.1

Раз- ряд Содержимое Раз- ряд Содержимое Раз- ряд Содержимое
Перенос (С) Нуль (Z) Знак (N) 0 - используется для организации безусловных пе­реходов в МПУ Разрешение пре­рывания Прерывание Состояние ВУ (Ф) Состояние РАБОТА/ОСТАНОВ (1 - РАБОТА) Программа Выборка ко­манды   Выборка адре­са   Исполнение Ввод-вывод

 

 

Рассмотрим две управляющие команды:

1. После увеличения на 1 содержимого РД в команде ISZ надо проверить знаковый разряд РД (разряд с номером 15). Если этот разряд равен 1 (содержимое < 0), то выполнение команды ISZ за­вершается. В противном случае необходимо прибавить 1 к содержи­мому СК, т.е. организовать пропуск команды, следующей за ISZ. Это разветвление (переход по адресу 8F) осуществляется с помощью микрокоманды (858F 8000)16, имеющей следующую структуру:

 

 

1 1 1 1

           
 
Код операции  
   
 
   
Адрес, который пересылается в СЧМК при положительном результате сравнения  

 


2. Для организации безусловного перехода (например, по тому же адресу 8F) используется 3-й бит регистра состояний, содержа­щий константу 0. Сравнение этого разряда с нулем, записанным в 24-й разряд УМК, всегда дает положительный результат и позволяет переслать в СчМК нужный адрес перехода. Микрокоманда, реализую­щая эту операцию, имеет вид: (828F 0008)16.

Интерпретатор базовой ЭВМ

Полный текст микропрограммы (интерпретатора команд) приве­ден в табл. 3.2. В столбце "Верт." приведены варианты укорочен­ной кодировки микрокоманд - вертикальные микрокоманды. Эти мик­рокоманды состоят из полей, в которых закодированы требуемые на­боры управляющих сигналов (рис.3.3). Для декодирования таких команд используются дополнительные устройства – дешифраторы.

В модели базовой ЭВМ используется вариант интерпретатора с верти­кальными микрокомандами.

Первые микрокоманды интерпретатора служат для выборки ко­манды из основной памяти (ОП) базовой ЭВМ и определения ее типа : адресная, безадресная или ввода-вывода. Для этого содержимое СК (в котором хранится адрес исполняемой команды) пересылается через БР в РА(СК -> БР и БР -> РА). Затем из ячейки ОП, на кото­рую указывает РА, пересылается в РД команда, а содержимое СК увеличивается на единицу и пересылается в БР: ОП(РА) -> РД, СК + 1 -> БР. Далее содержимое БР, т.е. адрес следующей команды, пе­ресылается из БР в СК, а код команды из РД в РК, после чего начинается дешифрация команды.

Так как адресные команды (команды с кодами операций от 0 до D) обязательно содержат ноль в 15, 14 или 13-м бите, то проверкой этих битов РК можно выделить адресную команду и перейти к проверке ее 11 бита (бита вида адресации). Для разделения команд ввода-вывода (код операции Е) и безадресных команд (код операции F) достаточно проанализировать 12-й бит РК: если этот бит равен единице, то надо переходить к микрокомандам продолжения дешифрации безадресных команд, расположенных, начиная с адреса 5Е (метка БАД). В комментариях микрокоманда анализа 12-го бита за­писана в виде:

 

IF BIT(12,PK)=1 THEN БАД(5Е).

В памяти микрокоманд нет полных микропрограмм для адресных команд с кодами операций 7 и D, а также для безадресных команд FC00, FD00 и FF00. Когда при декодировании команды выясняется, что выбрана команда 7ххх, управление передается ячейке с адресом В0. Начиная с этой ячейки могут располагаться микрокоманды ка­кой-либо новой арифметической команды (например, умножения). Для микропрограмм реализации команды перехода и безадресных команд выделены участки памяти микрокоманд с начальными адресами D0 и Е0.

 

Операционная микрокоманда (ОМК0)

 

    X X                    

       
   
 
Память
Сдвиги
Операция
Обрат-ный код
Правый вход
Левый вход
Код операции

 

 


Операционная микрокоманда (ОМК1)

 

 









Читайте также:

  1. I. ОБЩАЯ ХАРАКТЕРИСТИКА КУРСА «ФИЛОСОФИЯ»
  2. II.1. Общая характеристика отклоняющегося поведения несовершеннолетних.
  3. IV.1. Общая дифференциация и типология детско-подростковой дезадаптации.
  4. Античное искусство. Общая характеристика. Этапы развития. Римская империя. Греция.
  5. Болтовые соединения. Общая хар-ка и область применения. Основы расчета болтовых соединений.
  6. Виды информации и способы представления её в ЭВМ.
  7. Виды эмоций и их общая характеристика
  8. Витамины. Роль витаминов в питании. Общая характеристика витаминов
  9. Вопрос 1. Общая психологическая характеристика судебной деятельности.
  10. Вопрос 1. Общая характеристика Солнечной системы.
  11. Вопрос 1. Понятие, предмет, метод и задачи российского уголовного права как отрасли права. Общая и Особенная части уголовного права: их соотношение.
  12. ВОПРОС 2. Структура предприятия: общая, производственная и организационная


Последнее изменение этой страницы: 2016-03-17; Просмотров: 245;


lektsia.info 2017 год. Все права принадлежат их авторам! Главная