Проектирование процессора ЭВМ с архитектурой IA-32

Автор работы: Пользователь скрыл имя, 08 Марта 2011 в 17:34, курсовая работа

Описание работы

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

Содержание работы

Введение
Задание на курсовой проект………………………………………………... 5
Общие аспекты проектирования процессора……………………. 5
Исходные данные………………………………………………….. 6
Архитектура процессора….………..……...…………..………………….. 7
Форматы команд…………………….……………………………… 7
Форматы данных…………….………………………………..……... 14
Расчет и выбор разрядности основных узлов процессора……… 16
Регистровая модель………….……………………………………... 17
Виды адресации………………………………………………………. 22
Структурная организация процессора……………..………………… 25
Общая структура процессора………………………………………... 25
Выбор и обоснование элементной базы……………..…………….. 25
Блоки обработки данных……………………………………….…… 26
Управляющий автомат………………………………..…………….. 30
3.4.1 УА с жесткой логикой……………….…………………….. 30
3.4.2 УА с микропрограммным управлением………………….. 33
Регистровая память (РП)………………….……………………….. 36
Оперативная память (ОП)…………………….…………………… 38
Блок интерфейсов (БИНТ)………………………..………………… 38
Содержательные схемы алгоритмов работы процессора….……………. 39
Общий алгоритм цикла работы процессора………………………... 39
Выборка команд………………………………..……………………. 41
Формирование исполнительного адреса и выборка
операндов……………….…………………………..……………………. 47
Обработка прерываний………………………………………………. 54
Выполнение четырех операций из индивидуального задания……. 55
Микропрограммное управление………….………..…………………. 64
Формат микрокоманды………………………………………………. 64
5.1.1 Зона БФТ…………..…………….………………………. 65
5.1.2 Зона БПТ……………..………...……………………………. 68
5.1.3 Зона БМУ……………………….…………………………… 6
5.1.4 Зона БИНТ…………………….…………………………….. 70
5.1.5 Зона ОП……………………..….……………………………... 7
5.1.6 Зона CONST…………………………………………………… 74
Микропрограмма операции обработки чисел в формате с
плавающей точкой…………………………………..…………………... 74
Заключение…………………………………………………………………... 80
Литература……………………………………………………………………. 81

Файлы: 1 файл

ПЗ.docx

— 1.90 Мб (Скачать файл)

    5)Исключения.

      #GP – операнд в не перезаписываемом сегменте.

    Эффективный адрес операнда вне пределов сегментных регистров CS, DS, ES, FS, или GS.

    Регистр  DS, ES, FS, или GS содержит нулевой сегментный селектор.

    #SS – эффективный адрес операнда  вне предела сегментного регистра SS.

    #PF(fault-code) – ошибка страничного режима.

    #AC - флаг контроля за выравниванием. Если AC=1 и AM=1, то исключение #17 из-за нарушения выравнивания в 3м кольце защиты разрешено.

    б) OR AL, im8

    Код операции OСh

    1) Команды кодируется с использованием 2х полей – Opcode ( 1байт)  и Immediate(1 байт)Соответственно команда имеет размер 2 байта.

    2) Команда работает с любым типом  данных. В операции принимает  участие непосредственный операнд  ( 1 байт) и младший байт регистра  EAX- AL( 1 байт) . Операндом – приёмником является AL.

    3) Формат команды : регистр - непосредственный операнд

    Способ  адресации: непосредственная.

    Кодирование.

    Opcode     Immediate
    00001100      

  15              8

    7                  0

    4)Выполняется  побитовая операция – логическое ИЛИ. Каждый бит результата команды OR устанавливается в 0, если оба соответствующие биты первого и второго операнда равны 0, в противном случае устанавливается 1

    Флаги результата:

    OF и CF остаются пустыми(0);

      SF, ZF, PF устанавливаются в зависимости от результата

    5)Исключения:

    #GP - если адрес операнда в памяти  вне пределов сегментных регистров  CS, DS, ES, FS, или GS .

    #SS -  если адрес операнда в  памяти вне предела сегментного  регистра SS.

    в) XCHG  Mem32,Reg32

    Код операции 87h.

    1) Команды кодируется с использованием 3х полей – Opcode( 1 байт), ModR/M( 1 байт), Disp( 1 или 2 байта). Соответственно команда имеет размер 3 или 4 байта.

    2) Команда работает с 2 байтовыми   типами данных. В операции принимает  участие операнд, хранящийся в  памяти и любой регистр общего  назначения. Операндом – приёмником  является операнд в памяти.

    3) Формат команды : регистр – память

    Способ  адресации: базовая с 16 разрядным исполнительным адресом. Исполнительный адрес получается путём сложения базового регистра ( BP-поле R/M=110 или BX- поле R/M=111) и смещения (поле Disp – 8 (Mod=01) или 16 (Mod=10) разрядов)

    Кодирование.

    Disp = 8 бит

   Opcode     ModR/M   Disp
  Mod Reg/Opcode R/M
 10000111   01 reg 11x    

 23        16

  15       14 13            11 10   8 7                 0

    Disp = 16 бит

  Opcode     ModR/M            Disp
   Mod   Reg/Opcode   R/M
  10000111    10   reg   11x      

  31        24

   23       22   21            19   18 16   15                                    0

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

    Флагов  для данной операции нет.

    5)Исключения:

    #GP – операнд в не перезаписываемом  сегменте.

    Эффективный адрес операнда вне пределов сегментных регистров CS, DS,

    ES, FS, или GS.

    Регистр  DS, ES, FS, или GS содержит нулевой сегментный селектор.

    #SS – эффективный адрес операнда  вне предела сегментного регистра SS.

    #PF(fault-code) – ошибка страничного режима.

    #AC - флаг контроля за выравниванием. Если AC=1 и AM=1, то исключение #17 из-за нарушения выравнивания в 3м кольце защиты разрешено.

    г) FIADD  m16int

    Код операции DB/0h,

    1) Команды кодируется с использованием 3х полей – Opcode( 1 байт), ModR/M( 1 байт), Disp( 1 или 2 байта). Соответственно команда имеет размер 3 или 4 байта. Для всех команд с ПТ Opcode начинается с 11011, затем выбирается формат памяти MF(11, так как операция выполняется с целочисленным данными), OPA – вторая часть кода операции, Mod, OPB – третья часть кода операции, R/M и Disp( 1 или 2 байта).

    2)Команда  складывает содержимое памяти (2 байтовое целое число) с содержимым  регистра ST(0)( 80 бит). FPU выполняет все вычисления в 80-битном расширенном формате. Операндом – приёмником всегда является регистр FPU.

    3) Формат команды : регистр – память

    Способ  адресации: базовая с 16 разрядным исполнительным адресом. Исполнительный адрес получается путём сложения базового регистра ( BP-поле R/M=110 или BX- поле R/M=111) и смещения (поле Disp – 8 (Mod=01) или 16 (Mod=10) разрядов)

    Кодирование. 
 
 
 
 

    Disp = 8 бит

         Opcode           ModR/M   Disp
     MF     OPA   Mod   OPB   R/M
 11011   11     0   01   000   11x    
 23  19   18 17     16   15       14   13     11   10     8   7         0

    Disp = 16 бит

    Opcode     ModR/M     Disp
      MF     OPA   Mod   OPB   R/M
  11011   11     0   10   000   11x      
  31  27   26 25     24   23       22   21     19   18   16   15                              0

    4) Производится сложение операнда  из памяти и регистра с сохранением  в регистре результата. Команда  FIADD преобразует целочисленный операнд к формату с ПТ с двойной точностью перед выполнением сложения. Если сумма двух операндов с противоположными знаками равна 0, результат принимает значение +0. Исключение при округлении в режиме -∞, в этом случае результат -0. Когда операндом является целое число равное 0, то оно трактуется как +0.

    Таблица2.1 - Результаты команды FIADD.

     
         
        DEST
        -∞     −F     −0     +0     +F     +∞     NaN
    S

    R

    C

        −I     -∞     −F     SRC     SRC   ±F or ±0     +∞     NaN
        +0     -∞     DEST     ±0     +0    DEST     +∞     NaN
        +I     -∞     ±F or ±0     SRC     SRC     +F     +∞     NaN

    Кроме обычных чисел формат IEEE предусматривает  несколько специальных случаев, которые могут получаться в результате математических операций и над которыми также можно выполнять некоторые  операции:

  • положительный ноль: все биты числа сброшены в ноль;
  • отрицательный ноль: знаковый бит — 1, все остальные биты — нули;
  • положительная бесконечность: знаковый бит — 0, все биты мантиссы — 0, все биты экспоненты — 1;
  • отрицательная бесконечность: знаковый бит — 1, все биты мантиссы — 0, все биты экспоненты — 1;
  • денормализованные числа: все биты экспоненты — 0 (используются для работы с очень маленькими числами — до 10-16445 для расширенной точности);
  • неопределенность: знаковый бит — 1, первый бит мантиссы (первые два для 80-битных чисел) — 1, а остальные — 0, все биты экспоненты — 1;
  • не-число типа SNAN (сигнальное): все биты экспоненты — 1, первый бит мантиссы — 0 (для 80-битных чисел первые два бита мантиссы — 10), а среди остальных бит есть единицы;
  • не-число типа QNAN (тихое): все биты экспоненты — 1, первый бит мантиссы (первые два для 80-битных чисел) — 1, среди остальных бит есть единицы. Неопределенность — один из вариантов QNAN;
  • неподдерживаемое число: все остальные ситуации.

    Флаги результата:

    РЕ — флаг неточного результата — результат не может быть представлен точно

    UE — флаг антипереполнения — результат слишком маленький.

    ОЕ — флаг переполнения — результат слишком большой.

    DE — флаг денормализованного операнда — выполнена операция над денормализованным числом.

    IE — флаг недопустимой операции — произошла ошибка стека (SF = 1) или выполнена недопустимая операция.

    C1 устанавливается в 0, если стек  оказался пуст; устанавливается,  если результат был округлён; во всех остальных случаях  пуст.

    C0, C2, C3 не определены.

    5)Исключения:

    #IS стек пуст.

    #IA операнд является signalling Not a Number (порядок 111...111, мантисса 1,0ххх...ххх (ненулевая)) или его формат не поддерживается. Операнды являются бесконечностями с разными знаками.

Информация о работе Проектирование процессора ЭВМ с архитектурой IA-32