Теория и проектирование ЦВМ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ  И НАУКИ

КЫРГЫЗСКОЙ РЕСПУБЛИКИ

 

КЫРГЫЗСКИЙ ГОСУДАРСТВЕННЫЙ  ТЕХНИЧЕСКИЙ

УНИВЕРСИТЕТ им. И.РАЗЗАКОВА

 

 

 

 

 

Факультет: Информационные технологии.

           

Кафедра: ИВТ. 

 

 

 

Курсовой  Проект


Тема: Теория и проектирование ЦВМ

 

 

 

 

 

 

                           

 

 

 

 

 

 

Выполнил: Абдыманапов К.А.

                                        Проверил: Шабданов М.А.

 

 

 

 

 

 

Бишкек 2011.

 

Содержание

Введение  3

Техническое задание проектирование  4

Описание алгоритмов  5

 Деление  

 Сложение с нормализацией  

 Загрузка  

 Переход по счетчику  

Описание форматов данных и команд 9

Описание структуры PSW  12

Описание операционного автомата  13

Таблица управляющих воздействий 14

Таблица логических условий  16

Карта прошивки ПЗУ  17

Двоичная прошивка ПЗУ  20

Расчет быстродействия 21

Выбор серии микросхем и их описание  21

Заключение  23

Список использованной литературы  24

 

Приложения

-Микропрограмма

-Операционный автомат

 

 

 

 

 

 

 

 

 

 

Введение 

 

     Развитие микропроцессорной  техники явилось следствием развития  и совершенствования технологии  производства интегральных схем. Повышение степени интеграции  микросхем привело к закономерному  этапу в развитии вычислительной  техники – реализации структуры  ЭВМ на одной интегральной  схеме.

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

     Таким образом, микропроцессор  – это программно-управляемое  устройство, осуществляющее процесс  обработки информации, управления  им, построенное на одной или  нескольких больших интегральных  схемах.  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Техническое задание

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

     В состав разрабатываемой ЭВМ входит процессор, основная память и средства  ввода/вывода  информации. Детальной разработке подлежит процессор.

     Разработка процессора включает в себя: синтез структуры ОА, составление микропрограммы, объединяющей алгоритмы выполнения заданного набора команд.

 

Код

Название команды

   Формат

   Операнды

1D

   Деление

   RR

   R1,R2    

 

6A

   Сложение с нормализацией

   RX

   AD R1,D2(X2,B2)

 

28

   Загрузка

   RR

   LDR  R1,R2    

 

46

 Переход по счетчику

RX

 BCT R1,D2(X2,B2)   




 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Описание алгоритмов

 

ДЕЛЕНИЕ

DR  R1,R2     [RR]

+--------------------+

¦  1D  ¦ R1  ¦ R2  ¦

+--------------------+

0    7 8   11 12  15

 

     Делимое (первый операнд) делится на делитель (второй операнд), и частное с остатком помещается на место делимого.

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

     Знак частного определяется по правилам алгебры. Остаток имеет тот же знак, что и делимое, однако нулевой остаток и нулевое частное всегда положительны. Если соотношение между величинами делимого и делителя таково, что для выражения частного со знаком не хватает 32 разрядов, отмечается особый случай деления с фиксированной точкой (происходит программное прерывание, деление не выполняется и делимое в общих регистрах остается без изменения).

Признак результата не изменяется.

Программные прерывания:

доступ (выборка второго операнда в команде D);

спецификация;

деление с фиксированной точкой.

СЛОЖЕНИЕ С НОРМАЛИЗАЦИЕЙ

AD  R1,D2(X2,B2)    [RX, ??????? ????????]

+--------------------------------------+

¦  6A  ¦ R1  ¦ X2  ¦ B2  ¦    D2    ¦

+--------------------------------------+

0    7 8   11 12  15 16  19 20      31

 

     Второй операнд складывается с первым и нормализованная сумма помещается в ячейку первого операнда.

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

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

     При сложении коротких операндов мантисса промежуточной суммы состоит из 7 шестнадцатеричных цифр и, возможно, цифры переноса, при сложении длинных операндов – из 15 шестнадцатеричных цифр и, возможно, цифры переноса, при сложении расширенных операндов – из 29 шестнадцатеричных цифр и, возможно, цифры переноса. Если перенос имеет место, сумма сдвигается вправо на одну цифру, и характеристика увеличивается на единицу.

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

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

     Если перенос из старшей позиции мантиссы промежуточной суммы служит причиной того, что значение характеристики нормализованной суммы превышает число 127, то фиксируется особый случай переполнения порядка. Операция завершается путем формирования характеристики, которая на 128 меньше действительного значения, и происходит программное прерывание из-за переполнения порядка. При этом результат будет нормализованным, а знак и мантисса сохраняют правильные значения. В случае команды СЛОЖЕНИЕ для расширенных операндов (AXR) сохраняется также правильное значение характеристики младшей части.

     Если характеристика нормализованной суммы меньше нуля, а мантисса не равна нулю, имеет место особый случай исчезновения порядка. Если бит маски исчезновения порядка равен единице, операция завершается путем формирования характеристики, которая на 128 больше действительного значения. Результат нормализуется, а знак и мантисса сохраняют правильные значения. Затем происходит программное прерывание из-за исчезновения порядка. Если исчезновение порядка имеет место, а бит маски исчезновения порядка равен нулю, то программное прерывание не происходит; вместо этого операция завершается путем формирования результата, равного истинному нулю. В случае команды СЛОЖЕНИЕ для расширенных операндов исчезновение порядка не фиксируется, если характеристика младшей части меньше нуля, а характеристика старшей части больше или равна нулю.

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

     Поле R1 в командах AER, AE, ADR и AD и поле R2 в командах AER и ADR должны определять регистры 0, 2, 4 или 6. Поля R1 и R2 в команде AXR должны задавать номера регистров 0 или 4. В противном случае фиксируется особый случай спецификации.

     Признак результата:

0 – мантисса результата равна  нулю;

1 – результат меньше нуля;

2 – результат больше нуля;

3 – не бывает.

     Программные прерывания:

операция (если в данной установке  отсутствуют средства обработки  чисел с плавающей точкой или  в случае команды AXR отсутствуют средства обработки чисел с плавающей точкой повышенной точности);

доступ (выборка второго операнда в командах AE и AD);

спецификация;

переполнение порядка;

исчезновение порядка;

потеря значимости.

Замечания по программированию

Перестановка операндов при  сложении с плавающей точкой не влияет на значение суммы.

ЗАГРУЗКА

LDR  R1,R2     [RR, ??????? ????????]

+--------------------+

¦  28  ¦ R1  ¦ R2  ¦

+--------------------+

0    7 8   11 12  15

 

     Второй операнд без изменения помещается на место первого операнда.

     Поля R1 и R2 должны определять регистры 0, 2, 4 или 6; в противном случае фиксируется особый случай спецификации.

     Признак результата не изменяется.

     Программные прерывания:

операция (если в данной установке  отсутствуют средства обработки  чисел с плавающей точкой);

доступ (выборка второго операнда в командах LE и LD);

спецификация.

 

 

ПЕРЕХОД ПО СЧЕТЧИКУ

BCT  R1,D2(X2,B2)    [RX]

+--------------------------------------+

¦  46  ¦ R1  ¦ X2  ¦ B2  ¦    D2    ¦

+--------------------------------------+

0    7 8   11 12  15 16  19 20      31

 

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

     В качестве адреса перехода в формате RX используется адрес второго операнда, а в команде RR – содержимое битов 8–31 общего регистра, заданного полем R2. Однако, если в поле R2 содержатся нули, операция выполняется без перехода.

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

xt-align:justify">     Признак результата не изменяется.

     Программные прерывания отсутствуют.

     Замечания по программированию

Начальное значение счетчика, равное единице, дает после вычитания нуль, и переход отсутствует. Если начальное  значение счетчика равно нулю, то при  выполнении команды оно станет равным –1 (FFFFFFFF16), и переход произойдет.

Если поле R2 команды формата RR содержит нули, вычитание из счетчика производится, но переход отсутствует.

Описание форматов данных и команд

 

     Основой построения данных является восьмиразрядная единица  
информации, называемая байтом. Единицами обработки для машинных команд являются:

  • один байт;
  • полуслово, представляющее собой группу из двух последовательно  
    расположенных байт;
  • слово, являющееся группой из четырёх последовательно расположенных байт;
  • двойное слово, состоящее из двух последовательно расположенных слов;
  • два расположенных подряд двойных слова;
  • группа байт;

     В соответствии с форматами данных системе команд можно выделить группы команд, выполняющие следующие операции :

  • операции с фиксированной точкой;
  • операции с плавающей точкой;
  • операции под десятичными числами;
  • логические операции.

     Числа с фиксированной точкой в памяти машины, имеют формат  
фиксированной длинны: слово или полуслово.


 

0       1               15  


 

0       1                                       31 

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

    Числа с плавающей запятой изображаются в виде характеристики и  
мантиссы: A=q+-M , где характеристика q=p+64 может принимать значения от О до 127 . В памяти машины такие числа могут представляться в трёх форматах:  
коротком (число длиной в слово), длинном (число длиной в двойное слово) и расширенном (число длиной в два двойных слова).


 

   0     1               7 8                  31


 

   0     1               7 8                           63

 

 

     При адресации данных необходимо учитывать следующее :

  • байты в памяти нумеруются последовательно, начиная с О;
  • каждый номер считается адресом соответствующего байта;
  • при адресации группы байт указывается адрес самого первого байта;
  • длинные могут размещаться в основной памяти, начиная с любого байта  
    или с целочисленной границы для данной группы байт. Граница  
    считается целочисленной для группы байт, если адрес этой группы  
    кратен количеству байт в группе;
  • необходимо учитывать, что в младших адресах находятся вектора  
    прерываний и стек для старых PSW. Вектора прерываний  
    устанавливаются при инициализации системы.

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

     Форматные коды указывают место расположения операндов:

  • RR-обозначает операцию типа регистр - регистр;
  • RX - операцию типа регистр -индексированная память.

     В зависимости от формата команды имеют разную длину: полуслово  
формат RR (2 байта), два полуслова - формат RX.

RR


     Регистр R1 определяет первый операнд команды, регистр R2-второй. Каждый из операндов занимает по 4 бит. После выполнения предписанной КОП операции результат помещается в R1 , а содержимое регистра R2 остаётся прежним.

RX  


0  7  8    11 12   15  16   19 20          31

    Здесь используются два операнда .Первый операнд помещается в R1, а второй  
- в оперативной памяти по адресу А2= [Х2]+ [B2]+D2.

    Результат операции, как правило, записывается по адресу первого операнда. При этом второй операнд остаётся неизменным. Регистр Х2,называемый индексным, служит для записи индексной части адреса второго операнда. Использование индексной адресации эффективно в тех случаях, когда обработка элементов массива или последовательностей данных осуществляется одним и тем же набором операций в программе. Чтобы не повторять многократно, в программе однотипные блоки команд, выполняется поочерёдная выборка для обработки элементов последовательности данным путём соответствующего изменения индексной части адреса операнда,  
хранящемся в индексном регистре Х2. Значение базового адреса и смещения адреса элемента последовательности данных для всех команд, входящих в соответствующую процедуру обработки, остаются неизменными. Модификация адреса, хранящегося в Х2 , производится при цикле обработки на заданный шаг изменения адресов обрабатываемых элементов. Таким образом, адрес второго операнда в машинной команде формата RX получается путём сложения трёх значений: содержимого базового регистра(В2),смещения(D2) и содержимого индексного регистра(Х2). Таким образом, в каждом формате первое полуслово команды состоит из двух частей. Первый байт содержит код операции ,второй байт может содержать следующую информацию:

  • четырёхразрядные номера регистров, в которых содержаться операнды;
  • четырёхразрядный номер регистра индекса (х2);
  • четырёхразрядную маску;
  • восьмиразрядный код, представляющий непосредственный операнд;

     Второе полуслово имеет один формат: четырёхразрядный номер регистра базы(В2) и 12-разрядное смещение(D2).

      В основной памяти каждая команда должна располагаться на целочисленной границе полуслова.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Описания структуры PSW

Общее назначение слова состояния программы (PSW) - управление последовательностью выборки команд. Также PSW содержит информацию о признаках результата, прерываниях программы информацию об адресе следующей команды.


 

 

0     1 2                7  8                      25     

 

Признак результата (CC).

Биты О и 1 содержат код признака результата.

  • 00 - нулевой результат
  • 01 - результат отрицательный
  • 10 - результат положительный
  • 11 – переполнение результата

Коды прерывания

  • Биты 0-1(СС)-установка признака результата
  • Бит 2(IF)- переполнение в операции с фиксированной запятой
  • Бит 3(А)- особый случай доступа
  • Бит 4(SP)-особый случай спецификации
  • Бит 5(U)- исчезновение  порядка
  • Бит 6(E)-переполнение порядка
  • Бит 7(LS)- потеря значимости

 

Счетчик адреса команд

  • Биты 8-25- задают адрес следующей команды

 

 

 

 

 

Описание  операционного автомата

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

  • блок суммирования
  • блок регистров общего назначения (РОН)
  • оперативная память (ОП)
  • слово состояния программы (PSW)
  • регистр команд
  • счетчик адреса команд

     Блок суммирования включает в себя: 32-разрядные реверсивные  
сдвиговые регистры А, В, 55-разрядный сумматор.

Блок регистров общего назначения (РОН) включает в себя регистр адреса разрядностью 4 бита, шестнадцать 32-разрядных  регистров, регистр данных разрядностью 32 бита.

     Оперативная память (ОП) включает в себя регистр адреса разрядностью 18 бит, ОЗУ емкостью 128 Кбайт, регистр данных разрядностью 32 бита, PSW (слово состояния программы) содержится код прерывания, признак результата и адрес следующей команды.

     Регистр команд (РК). В этом регистре содержится код операции, адреса первого и второго операндов.

 

 

 

 

 

 

 

Таблица управляющих воздействий

 

 Код

 Микрооперация

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

 

 

 

 

Таблица логических условий

Код

 Условие

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

 

 

 

 

 

Карта прошивки ПЗУ

 

A

Y

X

A0

A1