- •Учебное пособие
- •Глава 2 Характеристики и классификация эвм и систем
- •2.1 Основные технические характеристики эвм . . . . . . . . . . 17
- •Глава 3. Организация систем памяти
- •Глава 4. Организация процессоров
- •Глава 5 Организация систем ввода-вывода.
- •Глава 6 Параллельные вычислительные системы
- •1 Принципы организации эвм.
- •1.1 Факторы, определяющие принципы организации эвм
- •1.2 Области применения вт и основные типы эвм
- •1.2.1 Эвм общего назначения
- •1.2.2 Малые эвм
- •1.2.3. Микропроцессоры и микро-эвм
- •1.3. Понятие об архитектуре и структуре эвм
- •1.4. Принцип действия эвм
- •1.5. Аппаратные и программные средства реализации алгоритмов
- •2.1 Основные технические характеристики эвм
- •2.2 Общая классификация вычислительных машин
- •1. По способу представления информации :
- •2. По назначению (степени специализации):
- •4. По количеству вычислительных устройств и степени распределенности:
- •2.3 Основные пути повышения производительности эвм
- •3.2. Организация адресной памяти
- •3.3. Безадресная стековая память
- •3.4. Ассоциативная память
- •3.5. Системы памяти с расслоением
- •3.6. Понятие о виртуальной памяти
- •4.1. Назначение и классификация процессоров
- •4.2. Логическая организация процессора общего назначения
- •4.3. Операционные устройства процессоров
- •4.3.1. Операционные устройства процедурного типа и с жесткой структурой. Понятие об I-процессорах и m-процессорах
- •4.3.2. Блочные операционные устройства
- •4.3.3. Конвейерные операционные устройства
- •4.4 Архитектура системы команд. Risc и cisc процессоры
- •4.5. Устройства управления процессоров
- •4.5.1 Назначение и классификация устройств управления
- •4.5.3 Конвейер команд
- •1. Структурные или ресурсные.
- •3. Выделяют несколько вариантов конфликтов по данным:
- •4.5.4 Суперскалярные архитектуры
- •4.5.5 Процессоры с длинным командным словом (vliw).
- •4.6 Обзор архитектур процессоров Intel
- •5.1 Назначение и состав системы ввода-вывода.
- •5.2. Структуры систем ввода-вывода.
- •5.3 Основные режимы ввода-вывода.
- •5.4 Основные принципы организации передачи информации в вычислительных системах.
- •6.1. Классификация параллельных вс
- •1. По взаимодействию потоков команд (инструкций) и потоков данных.
- •2. По управляющему потоку
- •3. По использованию памяти :
- •4. По способу обмена между процессорами:
- •5. По используемому типу параллелизма :
- •6.3 Понятие о систолических структурах и алгоритмах
- •6.4 Масштабируемые параллельные системы мкмд.
- •6.5 Потоковые вычислительные системы
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 основных подхода: конвейеризацию команд и суперскалярное выполнение команд (многопотоковые конвейеры команд).
