Главная страница
Навигация по странице:

  • SIMD (Single Instruction - Multiple Data

  • Архитектура 16-разрядного микропроцессора

  • 1. Распределение адресного пространства

  • 2. Способы адресации методы формирования исполнительного адреса

  • 1) Команды передачи данных

  • 2) Арифметические команды

  • 3) Логические команды и сдвиги

  • 4) Команды передачи управления

  • 5) Команды обработки цепочек данных

  • Структура 32-разрядного универсального микропроцессора

  • Процессор обработки чисел с фиксированной точкой

  • Рис. 1.3.

  • Блок интерфейса внешней шины

  • 16 и 32 разрядный МП. Микропроцессор и его архитектура


    Скачать 93.94 Kb.
    НазваниеМикропроцессор и его архитектура
    Дата29.03.2021
    Размер93.94 Kb.
    Формат файлаdocx
    Имя файла16 и 32 разрядный МП.docx
    ТипДокументы
    #189230

    Микропроцессор и его архитектура

    К основным нововведениям микропроцессора i486, выпущенного в 1989 году, относятся два, которые связаны с расширившимися технологическими возможностями. Это размещение непосредственно на кристалле БИС двух важных блоков, которые раньше выполнялись в виде отдельных микросхем: кэш-памяти и блока процессора обработки чисел с плавающей точкой ( floating point unit - FPU ). Кэш-память имела объем 8 Кбайт и предназначалась для хранения программ и данных. FPU имел внутренний файл из восьми 80-разрядных регистров, свой регистр состояния и управления.

    Главной отличительной чертой нового продукта в линейке 32-разрядных микропроцессоров - МП Pentium - явилась возможность конвейерной обработки информации. Хотя некоторые авторы считают, что конвейер появился уже в i486, это не является общепринятым мнением.

    Высокая скорость выполнения команд в МП Pentium достигалась благодаря двум 5-ступенчатым конвейерам, позволявшим одновременно исполнять несколько инструкций. Обмен информацией с памятью через кэш данных осуществлялся независимо от процессорного ядра, а буфер инструкций был связан с ним через высокоскоростную 256-разрядную внутреннюю шину. Несмотря на то что новый кристалл был спроектирован как 32-разрядный, для связи с остальными компонентами системы использовалась внешняя 64-разрядная шина данных. Появление конвейера обусловило необходимость введения еще одного блока - схемы предсказания переходов. Эффективная работа данной схемы чрезвычайно важна для повышения производительности микропроцессора. Все последующие модификации микропроцессоров непременно связаны с улучшением ее работы.

    Основным нововведением разработанного в 1997 году микропроцессора Pentium MMX стал блок, обеспечивавший новую схему обработки целочисленной информации - SIMD (Single Instruction - Multiple Data: одна команда - множество данных). До этого обработка велась по классической схеме SISD: каждая команда выполняла действия над своей парой операндов. Введение SIMD-операций позволило обрабатывать одновременно несколько операндов с использованием одной команды, что дало возможность существенно поднять производительность микропроцессора на тех задачах, где над большими массивами однородной информации выполнялись одинаковые операции, например, в мультимедийных приложениях. Появление таких возможностей потребовало введения в систему команд 57 новых инструкций, но регистровая структура микропроцессора не изменилась.

    Микропроцессор Pentium III, появившийся в 1999 году, позволил обрабатывать по схеме SIMD не только целочисленные операнды, но и числа с плавающей точкой. Для этого система команд была расширена на 70 инструкций, а в структуре микропроцессора появился специальный блок SSE, содержащий, в частности, отдельный регистровый файл из восьми 128-разрядных регистров. Еще одной новинкой, использованной в Pentium III, было размещение на кристалле кэш-памяти второго уровня (начиная с ядра Coppermine), работающей на частоте ядра. Но это носило скорее количественный характер и не внесло существенных изменений в архитектуру.

    Микропроцессор Pentium 4 завершает линейку 32-разрядных микропроцессоров. Основным вкладом этого микропроцессора в развитие архитектуры IA-32 стало еще большее увеличение глубины конвейера - до 31 стадии, что позволило сильно нарастить частоту процессора. Количество конвейеров возросло до 9. Кроме поддержки ставших традиционными инструкций MMX и SSE, в Pentium 4 добавили еще 144 команды SSE2, затем и SSE3, ориентированные в первую очередь на работу с потоковыми данными.

    В 2001 году фирмой Intel был выпущен микропроцессор Itanium, положивший начало новой 64-разрядной архитектуре - IA-64, которая сменила архитектуру 32-разрядных микропроцессоров IA-32, господствовавшую на протяжении более 15 лет.

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

    Архитектура 16-разрядного микропроцессора 


     

    ПЛАН

    1. Распределение адресного пространства

    2. Способы адресации методы формирования исполнительного адреса

    3. Система команд i8086

     

    Переход к 16-разрядным микропроцессорам - i8086 и другие аналогичной вычислительной мощности - ознаменовался качественным скачком всех основных характеристик МП: не просто увеличение разрядности, но значительное изменение архитектуры, системы команд, принципов организации структуры. В машину пользователя i8086 включатся память объемом 1М байт и две области портов ввода и вывода по 64К каждая.

    Рассмотрим "машину пользователя" на базе i8086 (К1810ВМ86):



    Рис. 1. МП i8086 - машина пользователя

     

    Разработчики i8086 старались сохранить возможность преемственности программного обеспечения i8080, поэтому в составе i8086 можно выделить подмножество регистров i8080 (соответствующие подмножество сохранено и в системе команд). Помимо операций с 16-разрядными регистрами общего назначения (РОН) AX..DX, допускается обращение к каждому байту этих регистров - AL..DL, AH..DH. В некоторых командах РОНы выполняют определенные по умолчанию функции счетчиков, индексных регистров и т.п. (см. Рис. 2.4).

    16-разрядные регистры BP, SI, DI используются для образования исполнительных адресов памяти (см. ниже), SP - указатель стека, IP - программный счетчик (СчК), F - регистр флагов. Младший байт F полностью повторяет формат регистра признаков i8080, а старший имеет след. формат:

     

     



     

    где DF –определяет направление модификации адресов массивов в командах цепочек (увеличение или уменьшение адреса);

    IF – маскирует внешнее прерывание по входу INT (при IF = 1 прерывание разрешено);

    TF – управляет пошаговым режимом работы микропроцессора. При TF = 1 после выполнения каждой команды автоматически формируется прерывание с вектором 4.

     

    1. Распределение адресного пространства

    Адресное пространство МП определяется в i8086 разрядностью шины адреса/данных + адреса и составляет 220 = 1М байт. В этом адресном пространстве МП одновременно доступны четыре сегмента, два из которых (DS и ES) предназначены для размещения данных, CS - сегмент кода (для размещения программы) и SS - сегмент стека.

    Размеры сегментов определяются разрядностью логических адресов команд, данных и стека. Логические адреса команд и стека (верхушки) хранятся в 16-разрядных регистрах IP и SS соответственно, а логический адрес данных вычисляется в команде (см. ниже) и так же составляет 16 бит. Таким образом, размер каждого сегмента в i8086 составляет 64К байт. Положение сегмента в адресном пространстве (его начальный адрес) определяется содержимым одноименного сегментного регистра. Формирование физического адреса иллюстрируется схемой.

    Граница сегмента в адресном пространстве может быть установлена не произвольно, а таким образом, чтобы начальный адрес сегмента был кратен 16.

     

    15                                 0

    Сегментный регистр

    .0 0 0 0

                   15                               0

     

    Логический адрес

     

    19                                              0

    Физический адрес










    Рис. 2. Формирование физического адреса

     

    По умолчанию сегментные регистры выбираются для образования физического адреса след. образом: при считывании команды по адресу IP используется CS, при обращении к данным - DS или ES, при обращению к стеку - SS. С помощью специальных приставок к команде (префикса) можно назначить для использования произвольный сегментный регистр (кроме пары CS:IP, которая не подлежит модификации). Границы сегментов могут быть выбраны т.о., что сегменты будут изолированы друг от друга, пересекаться или даже полностью совпадать. Например, если загрузить CS=SS=DS=ES=0, то все сегменты будут совпадать друг с другом и начинаться с нулевого адреса - вариант организации адресного пространства i8080.

     

    2. Способы адресации методы формирования исполнительного адреса

     

    Длина команды i8086 может составлять от 1 до 6 байт. Формат команды представлен ниже.

    1 байт

    2 байт

    3..6 байты

     

    КОП

    D

    W

    MOD

    REG

    R/M

    [Смещение. данные]

     

    7        2    1      0

    7   6    5         3    2           0

     


































    Рис. 3. Формат команды МП i8086

     

    Большинство команд i8086 являются двухадресными, причем один адрес определяет регистр процессора, а другой - память или регистр. Поля команды имеют следующие назначения:

    D - определяет направление передачи информации: при D = 1 REG является приемником, иначе - источником;

    W - определяет длину операндов в команде: при W = 1 длина операндов составляет 16 бит (слово - word), иначе - 8 бит(байт);

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

     

    Таблица. 1

    REG

    (R/M)

    Регистр

    W = 0

    W = 1

    000

    AL

    AX

    001

    CL

    CX

    010

    DL

    DX

    011

    BL

    BX

    100

    AH

    SP

    101

    CH

    BP

    110

    DH

    SI

    111

    BH

    DI

     

    Поля R/M и MOD определяют способ формирования адреса второго операнда, который располагается чаще всего в памяти. Далее приведены способы формирования адресов памяти для двух значений поля MOD.

    Таблица 2

    R/M

    MOD = 00

    MOD = 01

    Логический

    адрес

    Сегмент

    Логический

    адрес

    Сегмент

    000

    BX+SI

    DS

    BX+SI+d8

    DS

    001

    BX+DI

    DS

    BX+DI+d8

    DS

    010

    BP+SI

    SS

    BP+SI+d8

    SS

    011

    BP+DI

    SS

    BP+DI+d8

    SS

    100

    SI

    DS

    SI+d8

    DS

    101

    DI

    DS

    DI+d8

    DS

    110

     d16

    DS

    BP+d8

    DS

    111

    BX

    DS

    BX+d8

    DS

    ПРИМЕЧАНИЕ:

    d8 и d16 означают соответственно 8- и 16-разрядное смещение (3 и 3+4 байты команды).

     

    При операциях с d8 осуществляется его "знаковое расширение" до 16 бит - биты 15..8 принимают значение бита 7 (знака).

    При значении MOD = 10 используются те же регистры, что при MOD = 01 (см. Табл. 2.4), но вместо d8 используется d16.

    При MOD = 11 вторым операндом команды является регистр.

    Таким образом, операнд в памяти может адресоваться прямо (MOD = 00, R/M = 110) или косвенно посредством содержимого базовых (BP, BX) или индексных (SI, DI) регистров, а так же их суммы. Режимы адресации спроектированы с учетом эффективной реализации языков высокого уровня. Например, к простой переменной можно обратиться в режиме прямой адресации, а к элементу массива - в режиме косвенной адресации посредством BX, SI. Режим адресации через BP предназначен для доступа к данным из сегмента стека, что удобно при реализации рекурсивных процедур и компиляторов языков высокого уровня.
     
    3. Система команд i8086

    Система команд насчитывает 113 базовых команд, объединенных в следующие группы.

     

    1) Команды передачи данных:

    а) между регистрами и памятью (включая стек), обмен содержимым источника и приемника;

    б) ввода, вывода, табличного преобразования;

    в) загрузка исполнительного адреса в РОНы, загрузка 4-байтового адресного объекта в регистры-указатели (начальный адрес сегмента и смещение в сегменте);

    г) передача содержимого регистра F флагов в память, в стек и из стека.

    2) Арифметические команды:

    + - × / двоичных чисел со знаком и без знаков (произведение и делимое представляются числами двойной длины),

    коррекция десятичная + - упакованных двоично-десятичных чисел,

    коррекция десятичная + - × / распакованных двоично-десятичных чисел.

    3) Логические команды и сдвиги:

    инверсия, конъюнкция, дизъюнкция, неравнозначность;

    TEST - поразрядная конъюнкция операндов с установкой флагов но без занесения результатов;

    сдвиги на 1 или заданное число разрядов (константа сдвига располагается в CL).

    4) Команды передачи управления:

    переходы, вызовы, возвраты - имеют две разновидности - внутрисегментные ("близкие") и межсегментные ("дальние").

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

    В 16 командах условных переходов проверяются отношения знаковых и беззнаковых чисел. Имеются 4 команды управления циклами, которые рассчитаны на передачу числа повторений цикла в регистре CX.

    5) Команды обработки цепочек данных

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

    Структура 32-разрядного универсального микропроцессора

    Рассмотрение архитектуры IA-32 начнем с микропроцессора i486. В нем впервые появились те блоки, которых не было на кристалле первого 32-разрядного микропроцессора i386, - кэш-память и процессор обработки чисел с плавающей точкой. Именно его архитектуру можно рассматривать как базовую для IA-32. Структура микропроцессора i486 представлена на рис. 1.3.

    Рассмотрим состав и назначение основных блоков этого микропроцессора.

    Процессор обработки чисел с фиксированной точкой содержит 32-разрядное АЛУ и блок регистров общего назначенияАЛУ предназначено для обработки двоичных чисел длиной 1, 2 или 4 байта без знака или со знаком, а также двоично-десятичных чисел, не превышающих 99. Двоичные числа со знаком представляются в дополнительном коде. Блок регистров общего назначения содержит восемь 32-разрядных регистров, часть из которых допускает 16- и 8-разрядное обращение.




    Рис. 1.3. Структура универсального микропроцессора

    Процессор обработки чисел с плавающей точкой состоит из 80-разрядного АЛУ, блока из восьми 80-разрядных регистров общего назначения, а также управляющих регистров. Главным образом он предназначен для обработки чисел с плавающей точкой, но также используется для обработки целых чисел со знаком длиной 8 байт и двоично-десятичных чисел величиной от 100 до 99…9 (18 цифр). На первых этапах развития SIMD-обработки регистры FPU использовались для хранения операндов, представленных в новых форматах.

    Блок управления памятью (Memory Management Unit - MMU) состоит из двух основных блоков в соответствии с организацией памяти.

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

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

    В состав блока управления входят:

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

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

    • блок управления предвыборкой команд: реализует опережающее заполнение буфера команд, представляющего собой некоторую буферную память. Буфер команд имеет емкость 32 байта и заполняется командами из следующих ячеек памяти команд по мере своего освобождения. Этим обеспечивается ускорение обработки микропроцессором следующей команды. Данный блок подвергался, пожалуй, наиболее существенным переработкам по мере развития архитектуры IA-32 - причина в широком последующем использовании конвейерной организации работы МП и связанной с этим необходимости постоянного совершенствования блока предсказания адреса следующей команды.

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

    • шина данных имеет ширину 32 разряда;

    • 32-разрядный адрес передается по 34-разрядной шине А31...А2+(B3,B2,B1,B0). Чтобы с минимальными потерями согласовывать 32-разрядную шину данных с передачей данных меньшей разрядности, младшие разряды адреса (А1 и А0) передаются в дешифрированном виде (B3, B2, B1, B0). Они показывают, какие байты из 32-разрядной шины данных в данный момент реально востребованы: 1 байт, 2 младших байта, 2 старших байта либо все 32 разряда данных;

    • шина управления - 32-разрядная. По ней передаются сигналы записи и чтения содержимого оперативной памяти и внешних устройств, сигналы запросов прерываний, прямого доступа к памяти и т. д.

    Особый интерес представляют три режима работы микропроцессора: реальный, защищенный и режим виртуального МП i8086. В реальном режиме обеспечивается совместимость на уровне объектных кодов с микропроцессором i8086 и микропроцессором i286, работающем в реальном режиме. В этом режиме архитектура 32-разрядного микропроцессора почти полностью идентична архитектуре 16-разрядного МП. Для программиста же он вообще представляется как МП i8086, выполняющий написанные программы с большей скоростью и обладающий расширенной системой команд и регистрами. Благодаря этим качествам фирма Intel сохранила прежних клиентов, которые хотели модернизировать свои системы, не отказываясь от имевшегося задела в области программного обеспечения, и привлекла тех, кому изначально требовалась высокая скорость обработки информации.

    Одно из основных ограничений реального режима было связано с предельной емкостью адресуемой памяти, равной 1 Мбайт. От него свободен защищенный режим, позволяющий воспользоваться всеми преимуществами архитектуры нового МП. Размер адресного пространства в этом случае увеличивается до 4 Гбайт, а общий объем поддерживаемого адресного пространства - до 64 терабайт (1 Тбайт = 240 байт). МП, работающие в защищенном режиме, обладают более высоким быстродействием и возможностями организации истинной многозадачности.

    Наконец, режим виртуального МП открывает возможность одновременного исполнения программ, написанных для МП i8086, i286 и i386.

    Поскольку емкость памяти, адресуемой микропроцессором, не ограничена значением 1 Мбайт, этот режим позволяет формировать несколько виртуальных сред i8086.

    Краткие итоги. В лекции даны определения микропроцессора и микропроцессорной системы, архитектуры микропроцессора. Приведена классификация микропроцессоров по их архитектуре, представлены параметры, которые характеризуют микропроцессоры каждого класса как вычислительное устройство и как электронное изделие. Рассмотрены этапы развития архитектуры универсальных микропроцессоров на примере МП БИС фирмы Intel, занимающей доминирующее положение в этом секторе рынка. Описаны структура и основные блоки микропроцессора i486, являющегося базовым микропроцессором для этой архитектуры.


    написать администратору сайта