Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / 4 / ЛЕКЦИИ1.DOC
Скачиваний:
44
Добавлен:
16.04.2013
Размер:
1.48 Mб
Скачать

Программный подход распределения регистрового файла

Суть задачи состоит в том, чтобы для каждого участка программы решить какие переменные должны быть распределены между RG, при этом количество RG определяется структурой микропроцессора, а количество переменных – оператором языка высокого уровня. Эта программа основывается на топологическом методе “раскрашивания” графа.

Архитектура систем с сокращённым набором команд (СНК)

Стояло 2 задачи при построении этих систем:

  1. Необходимость упрощения компиляторов.

  2. Повышение быстродействия.

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

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

Характерные особенности архитектуры с снк.

  1. Машинная команда выполняется за один машинный цикл (МЦ). МЦ – это интервал, затрачиваемый на выборку двух операндов, выполнение операции в АЛУ и запоминание результата оператором.

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

  3. В машинах с СНК используются только простые способы адресации (как правило регистровое, регистр-адрес со смещением и менее 1% - косвенные).

  4. Использование только простых форматов команд. Команда имеет фиксированную длину. Расположение элементов команд – фиксировано.

Достоинства:

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

  • использование упрощённого формата команды позволяет упростить (в некоторых случаях свети к минимуму) устройство управления. УУ в СНК процессорах занимает не более 7-8% от площади кристалла, в то время как в CISC процессоре УУ занимает 70-80% площади кристалла.

Всё вышеперечисленное позволяет:

1) Повысить быстродействие по следующим причинам:

    1. Большинство команд, которые формируются компилятором очень просты (в RISC процессоре, как правило, отсутствует микропрограммное управления микропрограмм).

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

    3. Эти компьютеры имеют минимальное время реакции на прерывание, т.к. все команды очень короткие.

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

Конвейерная обработка информации в вычислителях с снк

Конвейер, как правило, включает в себя 2 стадии:

  • выборка команды;

  • её выполнение.

Можно совместить эти 2 стадии во времени, т.е.

  • выполнение текущей команды;

  • выборка следующей команды.

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

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

Выполнение команды разделяется на следующие этапы:

    1. Выборка команды и формирование адреса следующей команды и считывание её в буфер.

    2. Дешифрация команды.

    3. Вычисление адресов операндов.

    4. Выборка операндов.

    5. Использование необходимых операндов и размещение результата.

Из памяти

1-я команда

ВК

ДК

ВАО

ВО

М

ИК

М

2-я команда

ВК

ДК

ВАО

ВО

М

ИК

М

3-я команда

ВО

М

ИК

*

4-я команда

ВК

ДК

ВАО

ВО

ИК

Это пятиступенчатый конвейер, т.е. сразу 5 команд.

В этом случае вместо 20 тактов используется 13. разрывы в процессе выполнения команд обусловлены тем, что в локальный момент времени обращение к памяти может быть только одной команды. Задержки на 5 тактов. Начало выполнения 4-ой команды обусловлено тем, что в эти такты идёт обращение к памяти (М) трёх предыдущих команд.

Ситуация, обозначенная * подразумевает 2 варианта:

    1. команда считывается из буфера (ВК), а результат операции 3-ей команды помещается в память.

    2. Команда считывается из памяти (ВК), а результат выполнения 3-ей команды помещается в РОН.

Дальнейшее повышение быстродействия сдерживается:

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

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

    3. Из-за наличия прерывания.

Выравнивание длительности этапов конвейера возможно:

    1. дальнейшим разбиением команды на подкоманды (достижение уровня микрокоманды). Однако этот метод требует дополнительных аппаратных затрат.

    2. Снижением количество пересылок из памяти и обратно, а также перераспределение информации между RG (в RISC процессоре для этого используются файловые окна и большое количество РОН, благодаря чему значительно сокращается количество обращений к памяти и исключаются дополнительные пересылки данных, т.к. результаты предыдущей операции хранятся в РОН и читать их обратно из памяти не требуется).

Ветвления:

  1. Исполнение нескольких потоков.

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

  1. Предварительная выборка операций ветвления.

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

  1. Прогнозирование ветвления.

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

  1. Отложенное ветвление.

В этом случае происходит автоматическое перераспределение команд по программе таким образом, чтобы ветвление происходило позже, чем указано в первоначальном варианте.

1,2,3 – аппаратно, а 4 – программным способом.

Конвейерная обработка в вычислителях

В RISC процессорах большинство команд представляет собой RGRC и их машинный цикл состоит из двух фаз: I – фазы выборки; Е – фазы выполнения.

В этом случае конвейер получается двухфазным и операции не равны по своей длине. Поэтому фазу исполнения подразделяют как бы на 2 фазы: именно фаза исполнения (Е) и фаза обращения к памяти (D). D – подразумевает чтение информации или размещение информации в памяти, т.е. конвейер приобретает в этом случае следующий вид.

МА

Загрузка

I

E

D

МВ

Загрузка

I

E

D

А+В=С

Сложить

I

E

СМ

Запомнить

I

E

D

Х

Ветвление

I

E

NOP

I

E

I – выборка команды

E – исполнение команды

D – обращение к памяти

На этом рисунке совмещаются 2 операции – это исполнение и выборка. Вычисление результата в двух различных командах выполняется одновременно, однако размещение результата не может быть совмещено во времени в двух командах, т.к. обращение…

Снижение быстродействия вызвано следующим:

  • использование однопортовых ОЗУ;

  • использование команды NOP после ветвления для того, чтобы синхронизировать работу ВС.

В некоторых структурах используются двухпортовые ОЗУ, тогда

МА

Загрузка

I

E

D

МВ

Загрузка

I

E

D

А+В=С

Сложить

I

E

СМ

Запомнить

I

E

D

Х

Ветвление

I

E

NOP

I

E

Отсутствуют провалы (дыры) за счёт команды NOP

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

Конвейерный режим функционирует в системах оптимально только тогда, когда все фазы имеют одинаковую длину. Обычно фаза Е длиннее фазы I. Поэтому её разбивают на две Е1 и Е2. Е1 – это считывание информации из регистрового файла; Е2 – выполнение операции в АЛУ и запись результата в регистровый файл.

Эти две операции практически одинаковы по своей длине.

МА

Загрузка

I

E1

Е2

D

МВ

Загрузка

I

E1

Е2

D

А+В=С

Сложить

I

E1

Е2

СМ

Запомнить

I

E1

Е2

D

Х

Ветвление

I

E1

Е2

NOP

I

E1

Е2

Этот конвейер четырёхступенчатый, однако “длительность” каждой ступени минимальна, поэтому этот конвейер обладает большим быстродействием.

Оптимизация конвейерного режима в условиях ветвления.

Обычное ветвление

Отложенное ветвление

Оптимальное ветвление

100

LOAD X:A

LOAD X:A

LOAD X:A

101

ADD 1:A

ADD 1:A

JMP 105

102

JMP 105

JMP 106

ADD 1, A

103

ADD A, B

NOP

ADD A, B

104

SUB C,B

ADD A,B

SUB C,B

105

STORE A, Z

SUB C,B

STORE

106

Конвейер отсутствует

STORE A, Z

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

В настоящее время есть 2 направления в RISC процессор (RISC 1 и 2 университет Беркли) и процессор R-2000, R-3000.

В RISC 1и 2 обращение осуществляется только к операндом, хранящимся в регистрах АЛУ выполняются следующие команды:

    1. целочисленное сложение с переносом или нет.

    2. Целочисленные вычитатели с заёмом или нет.

    3. Логические операции И, ИЛИ, НЕ, ИЛИ-НЕ над битами.

    4. Логический сдвиг влево, вправо и арифметический сдвиг вправо.

Все команды могут формировать 4 кода условия:

1 – нулевой результат

2 – отрицательный результат

3 – переполнение

4 – перенос.

Процессоры представляются с 32-разрядным числом в дополнительном коде и имеется 2 способа адресации регистров и со смещением.

Регистровый файл содержит 138 регистров + 9 глобальных регистров. Регистровый файл (РФ) представляет собой кольцо. Для определённой процедуры доступно 22 регистра и 9 глобальных регистров. Конвейерный режим для RISC1 – двухступенчатый, а RISC2 – трёхступенчатый; команда исполнения разбита на 2 этапа.

R-2000. центральный регистр имеет 32 регистра по 32 разряда в каждом, быстродействующую КЭШ 128 Кбайт. Половина этого КЭШ – команды, а другая – данные. Компилятор осуществляет оптимизацию регистров для каждой процедуры. В этой системе команда условий не используется. Если необходимо использовать коды условий, то есть универсальный регистр. Все команды исполняются за один машинный такт. Имеется пятиступенчатый конвейер, который включает:

  • выборку команды;

  • выборку исходного операнда из регистрового файла;

  • выполнение операции в АЛУ;

  • обращение к памяти данных;

  • запись результата в регистровый файл.

Обзор микропроцессоров (МП)

1. 8-разрядная МП.

Intel 8080 (1974г.), Z-80 (1976г.), МС6800 (1974г.)

Стандартная архитектура:

Длина слова – 8 бит

Адресное пространство 64 кБ

Наличие операционного блока с аккумулятором

КОП

АДРЕС

Из двух операндов, поступающих в АЛУ, один операнд обязательно хранится в АС, в качестве второго операнда используется операнд, считываемый из основной памяти или РОН. Т.е. формат команды имеет вид:

В МС6800 РОН отсутствует.

Регистровые структуры:

I-8080/85

Все регистры 8-разрядные. Группы 16-разрядные для того чтобы формировать адреса. Формирование адреса следующей команды обеспечивается на том же вычислительном устройстве, что и обработка операндов.

МС6800

Эта структура снабжена двумя аккумуляторами А и В.

I

R

Z80