Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11- 2(к печати).doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

4.5. Устройства управления процессоров

4.5.1 Назначение и классификация устройств управления

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

Устройства управления классифицируются в зависимости от типа процессора, или - типа управления исполнением команд, который в нем применяется:

  • устройства управления процессора общего назначения или спецпроцессора;

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

  • устройство управления с упорядоченным исполнением команд, неупорядоченным исполнением, выдачей, или завершением команд (с поддержкой динамической оптимизации).

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

Мы рассмотрим организацию устройства управления (а вернее - пары устройство управления - операционное устройство) для очень простого учебного RISC - процессора, а затем - рассмотрим способы ускорения работы процессора, основанные на конвейеризации и распараллеливании команд.

4.5.2 Архитектура простого RISC - процессора

Рассмотрим архитектуру простого RISС-процессора на примере некоторого процессора ARC («A RISC Computer») с системой команд, являющейся подмножеством системы команд процессора SPARC. / 16 /

Процессор является 32-разрядным (то есть обрабатывает 32-битовые слова в своем АЛУ), разрядность его команд - также 32 бита. Адресуемая память - 232 байт или 230 команд. Большинство команд процессора – трехадресные. Все команды можно разделить на следующие группы:

1. Команды работы с памятью : ld (load - загрузка) и st (store - сохранение).

2. Логические команды : and, or, nor, srl (сдвиг),

sethi rd, imm22 (установка старших 22 бит регистра в заданные значения).

3. Арифметическая команда : add (сложение).

4. Команды управления: ветвления be, bneg, bcs, bvs, ba (безусловный переход), все ветвления в формате be imm22 (относительное смещение), команда call imm30 -вызов подпрограммы, jmpl (ret) - возврат из подпрограммы. Регистры процессора: 32 РОН, IR (instruction register -регистр команды), PC (program counter - программный счетчик), PSR (Program Status Register - слово состояния программы - 4 флага). Все регистры - 32- разрядные.

В процессоре поддерживаются следующие режимы с адресации:

  • непосредственная регистровая;

  • косвенная регистровая;

  • косвенная регистровая по базе (индексная).

Адресная арифметика в процессоре реализуется на том же АЛУ, что и основные операции. АЛУ построено на таблицах истинности, а также включает программируемый нетактируемый сдвигатель на базе мультиплексора. АЛУ выполняет до 16 арифметических или логических операций. Форматы команд приведены на рис. 4.7

.

Рис. 4.7

Микроархитектура процессора представлена на рис. 4.8. На рисунке использованы следующие обозначения:

  • Data Section - операционное устройство (ОУ);

  • Control Section - устройство управления (УУ);

  • Main Memory - основная память (ОП);

  • Scratchpad-сверхоперативное ОЗУ;

  • C BUS MUX - шинный мультиплексор C для выбора источника данных для регистра-приемника из памяти или с выхода АЛУ;

  • MIR - регистр микрокоманды (РМК);

мультиплексоры A, B, C - выбирают адрес соответствующего регистра либо из ir, либо - из соответствующего поля РМК в зависимости от флагов MUXA, MUXB, MUXC;

  • Control Store (CS) - память микропрограмм (ПМП);

  • CSAI - счетчик адреса микропрограммы;

  • CS Address MUX - мультиплексор адреса микропрограммы (3 канала –Next следующий адрес из CSAI, Jump -переход по адресу, указанному в РМК, Decode - переход к микро-подпрограмме реализации команды);

  • CBL - логика управления ветвлением; %psr - регистр состояния программы, хранит 4 флага результата последней операции: n-netgative (отрицательное число), z-zero (ноль), v-overflow (переполнение), с-carry (перенос);

  • АСК - подтверждение о готовности памяти для инкремента адреса микрокоманды; в РМК также отметим поля: RD/WR - чтение/запись памяти, ALU - код операции АЛУ, JUMP ADDR - адрес перехода в микропрограмме.

Операционная часть ARC соответствует операционной части М-процесора.. Работу процессора коротко можно прокомментировать следующим образом.

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

1. Извлечение команды из памяти (IF - Instruction Fetch).

2. Декодирование команды (Instruction Decoding - ID).

3. Извлечение операндов из памяти или из регистров (MEM).

4. Выполнение (Execute - EX).

5. Запись результатов в память или регистр (Write Back - WB).

Для данного процессора обращение к памяти (MEM) и (WB) происходят только в 2 командах - ld и st. В остальных случаях все действия происходят с регистрами РОН. Поскольку у процессора ARC нет отдельного адресного операционного устройства, а режимы адресации предусматривают в том числе и косвенную адресацию, то этап выполнения EX в нем предшествует этапу обращения к памяти (MEM или WB) - на этом этапе необходимо вычислить окончательный адрес памяти, по которому будет обращение. В результате среднее число тактов на команду (clocks per instruction - CPI) -около 3-4 на команду, и, кроме того, 1 загрузка команды из памяти. Производительность этого процессора можно оценить следующим образом. Среднее время выполнения (в тактах) : Tк = 3t+ 1,5tmem,

где t - длительность одного такта процессора, = tmem - длительность обращения к памяти. При тактовой частоте 100Мгц t=10нс. Пусть время обращения к памяти составляет даже 20нс. Получаем Тк = 3*10нс + 1,5*20нс = 60нс. Производительность = 1/Тк = 1/60нс = менее 20 МIPS.

.

Рис. 4.8.

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

Tк = 3t+ 1,5tmem,

где t - длительность одного такта процессора, = tmem - длительность обращения к памяти. При тактовой частоте 100Мгц t=10нс. Пусть время обращения к памяти составляет даже 20нс. Получаем Тк = 3*10нс + 1,5*20нс = 60нс. Производительность = 1/Тк = 1/60нс = менее 20 МIPS. Показатели производительности многих современных процессоров (и RISC и CISC) даже на той же частоте намного выше. (Например, Celeron 400 Мгц имеет производительность около 1000 MIPS - на частоте 100 МГц он бы имел производительность 250MIPS, то есть в 10 раз больше, чем у рассмотренного процессора). Как достигается повышение производительности ? Во-первых, можно несколько улучшить показатель CPI, если перейти к жесткой логике управления, то есть вместо микроподпрограммы выполнения команды реализовать аппаратную схему, выполняющую алгоритм заданной команды.

С другой стороны, можно использовать КЭШ-память для ускорения доступа к основной памяти. Однако, этих мер недостаточно для повышения производительности в 10 и более раз.

В современных процессорах для повышения производительности применяют, в том числе, 2 основных подхода: конвейеризацию команд и суперскалярное выполнение команд (многопотоковые конвейеры команд).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]