Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
ОБЩАЯ ХАРАКТЕРИСТИКА БАЗОВОЙ ЭВМ.Стр 1 из 6Следующая ⇒
ОБЩАЯ ХАРАКТЕРИСТИКА БАЗОВОЙ ЭВМ. Назначение базовой ЭВМ. Базовая ЭВМ - это простая гипотетическая машина, обладающая типичными чертами многих конкретных микро-ЭВМ. Знание принципов построения и функционирования этой ЭВМ будет хорошей базой для освоения микропроцессорных систем любых типов и моделей. Прототипом базовой ЭВМ была выбрана простая модель, так как начинать изучение ЭВМ лучше всего с простых моделей. Базовая ЭВМ моделируется с помощью программы " 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.
Продолжение таблицы 1.1
Арифметические операции. В базовой ЭВМ можно выполнять по командам сложение и вычитание положительных целых чисел и целых чисел со знаком. Умножение и деление можно осуществить программным путем. Целые неотрицательные числа (положительные числа и нуль) в базовой ЭВМ могут лежать в диапазоне от 0 до (216-1)=65535. Для представления целых чисел со знаком используется 15 двоичных разрядов, а старший разряд (16-тый) служит для кодирования знака. Таким образом, в базовой ЭВМ можно представлять целые числа со знаком в диапазоне от -32768 до +32767 (см. табл.1.2.). Отрицательные числа представляются в дополнительном коде, так как это упрощает выполнение арифметических операций. Дополнительный код отрицательного целого числа получается по правилу: 1) инвертируется код числа; 2) к инверсии добавляется единица. Например, прямой двоичный код единицы 0000000000000001. Чтобы получить дополнительный код нужно к инверсии этого кода добавить единицу: 1111111111111110 - инверсия 1 + 0000000000000001 1111111111111111 - дополнительный код 1 Десятичные эквиваленты 16-ти битовых двоичных чисел. Табл. 1.2.
Сложение целых двоичных чисел со знаком и без знака выполняется в базовой ЭВМ с помощью команды 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. Собственный вариант аналогичной программы с меньшим числом команд (если это возможно). ВАРИАНТЫ ПРОГРАММ (первая команда программы помечена знаком " +" )
КОНТРОЛЬНЫЕ ВОПРОСЫ 1. Структура базовой ЭВМ и функции ее компонентов (ОП, РА, РД, А, С, РК, КР, АЛУ, УУ, СК). 2. Форматы команд базовой ЭВМ. 3. Форматы данных базовой ЭВМ. 4. Порядок выполнения работы. 5. Объяснение работы программы. ЛАБОРАТОРНАЯ РАБОТА № 2 ВАРИАНТЫ ПРОГРАММ (первая команда программы помечена знаком " +" )
КОНТРОЛЬНЫЕ ВОПРОСЫ 1. Перечислите команды, с помощью которых организуется разветвление программы и объясните как они работают. 2. Порядок выполнения работы. 3. Объяснение работы программы. ЛАБОРАТОРНАЯ РАБОТА №3 ВАРИАНТЫ ПРОГРАММ (первая команда программы помечена знаком " +" )
Содержание отчета по работе. Титульный лист, цель работы, текст программы с комментариями, таблица с результатами выполнения программы и описание программы. КОНТРОЛЬНЫЕ ВОПРОСЫ 1. Как организуются программные циклы в базовой ЭВМ? 2. Порядок выполнения работы. 3. Объяснение работы программы. ЛАБОРАТОРНАЯ РАБОТА № 4 Асинхронный обмен. Программа такого обмена строится следующим образом: сначала проверяется готовность ВУ к обмену и, если оно готово, дается команда на обмен. ВУ сообщает о готовности установкой флага. Пример 2.1. С помощью ВУ-2 записать в ячейку 006 коды символов слова " ДА". Для обозначения символов будем использовать следующие коды:
Программа для выполнения этого задания имеет вид:
Две первые команды этой программы " заставляют" ЭВМ ожидать готовности ВУ-2 к выдаче данных. Поэтому до первого нажатия клавиши F2 необходимо занести в РД ВУ-2 код символа " Д" (для ввода данных в РД ВУ-2 необходимо нажать клавиши Shift+F2 и осуществить ввод с клавиатуры, после чего нажать клавишу " Enter" ). Затем нажать клавишу F2 и (после сброса флага ВУ-2) приступить к набору символа " A". В процессе набора этого кода ЭВМ занята сдвигом кода символа " Д" в старшие разряды аккумулятора, чтобы подготовиться к приему символа " А", и ожиданием поступления нового сигнала готовности ВУ-2 к выдаче информации. После набора кода символа " А" (набирается аналогично символу " Д" ) можно сразу нажимать клавишу F2. Теперь в аккумулятор перепишется все слово " ДА", а затем оно перепишется в ячейку 006 и выполнение программы прекратится. Легко заметить, что при асинхронном обмене ЭВМ должна тратить время на ожидание момента готовности, а так как готовность проверяется программным путем (команда TSF), то в это время ЭВМ не может выполнить никакой другой работы по преобразованию данных. Управляющая микрокоманда
Микропрограмма хранится в постоянном запоминающем устройстве - памяти микрокоманд. В каждом такте работы ЭВМ из этой памяти в регистр микрокоманд (РМК) пересылается очередная микрокоманда, т. е. микрокоманда, на которую указывает счетчик микрокоманд (СчМК), одновременно выполняющий функции регистра адреса микрокоманд. Затем содержимое СчМК наращивается на единицу. Если из памяти микрокоманд выбрана операционная микрокоманда, то в 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
Рассмотрим две управляющие команды: 1. После увеличения на 1 содержимого РД в команде ISZ надо проверить знаковый разряд РД (разряд с номером 15). Если этот разряд равен 1 (содержимое < 0), то выполнение команды ISZ завершается. В противном случае необходимо прибавить 1 к содержимому СК, т.е. организовать пропуск команды, следующей за ISZ. Это разветвление (переход по адресу 8F) осуществляется с помощью микрокоманды (858F 8000)16, имеющей следующую структуру:
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)
Операционная микрокоманда (ОМК1)
Популярное:
|
Последнее изменение этой страницы: 2016-03-17; Просмотров: 3255; Нарушение авторского права страницы