<<
>>

Конвейерная конструкция — микроархитектура Мгс-З

Очевидно, что М1с-2 — это усовершенствованная микроархитектура М1с-1. Она работает быстрее и требует меньше управляющей памяти, хотя стоимость блока выборки команд несомненно превышает сумму, выигранную за счет сокращения объема управляющей памяти.
Таким образом, машина Мш-2 работает значительно быстрее при некотором увеличении стоимости. Давайте посмотрим, можно ли еще больше повысить скорость.

А что, если попробовать уменьшить время цикла? В значительной степени время цикла определяется базовой технологией. Чем меньше транзисторы и физическое расстояние между ними, тем быстрее может работать задающий генератор. В технологии, которую мы рассматриваем, время, затрачиваемое на прохождение через тракт данных, фиксировано (по крайней мере, с нашей точки зрения). Тем не менее у нас есть некоторая свобода действий и далее мы используем ее в полной мере.

Еще один вариант усовершенствования — увеличить степень параллелизма. На данный момент микроархитектура Мю-2 выполняет большинство операций последовательно.

Она помещает значения регистров на шины, ждет, пока АЛУ и схема сдвига их обработают, а затем записывает результаты обратно в регистры. Если не учитывать работу блока выборки команд, никакого параллелизма здесь нет. Внедрение дополнительных механизмов параллельной обработки сулит значительные преимущества.

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

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

2. Время, которое требуется на работу АЛУ и схемы сдвига.

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

На рис.

4.21 показана новая 3-шинная архитектура с блоком выборки команд и тремя дополнительными защелками (регистрами), каждая из которых расположена в середине каждой шины. Эти регистры записываются в каждом цикле. Они делят тракт данных на отдельные части, которые могут функционировать независимо друг от друга. Мы будем называть такую архитектуру конвейерной моделью, или М1с-3.

Рис. 4.21. Тракт данных с тремя шинами в микроархитектуре Мю~3

Зачем нужны целых три дополнительных регистра? Ведь теперь для прохождения сигнала через тракт данных требуется 3 цикла: один для загрузки регистров А и В, второй для запуска АЛУ и схемы сдвига, а также загрузки регистра С, третий для сохранения значения регистра-защелки С обратно в нужных регистрах. Мы что, ненормальные? (Подсказка: нет.) Существует целых две причины введения дополнительных регистров:

1. Мы можем повысить тактовую частоту, поскольку максимальная задержка теперь стала меньше.

2. Во время каждого цикла мы можем использовать все части тракта данных.

После разбиения тракта данных на три части максимальная задержка прохождения сигнала уменьшается, в результате тактовая частота может повышаться. Будем считать, что, если разбить цикл тракта данных на три примерно равных интервала, тактовая частота увеличится втрое. (На самом деле это не так, поскольку мы добавили в тракт данных еще два регистра, но в первом приближении это допустимо.)

Поскольку мы предполагаем, что все операции чтения из памяти и записи в память выполняются с использованием кэш-памяти первого уровня и эта кэш-память построена из того же материала, что и регистры, мы можем сделать вывод, что операция с памятью занимает один цикл. На практике, однако, этого не так легко достичь.

Второй пункт связан с общей производительностью, а не со скоростью выполнения отдельной команды. В микроархитектуре Mic-2 во время первой и третьей частей каждого цикла АЛУ простаивает.

Если разделить тракт данных на три части, то появляется возможность использовать АЛУ в каждом цикле, вследствие чего производительность машины увеличивается втрое.

А теперь посмотрим, как работает тракт данных Mic-З. Однако сначала нужно как-то назвать защелки. Проще всего назвать защелки А, В и С и считать их регистрами, подразумевая ограничения тракта данных. В табл. 4.9 приведен фрагмент программы для микроархитектуры Mic-2 (реализация команды SWAP).

Таблица 4.9. Программа Mic-2 для команды SWAP

Микрокоманда Операции Комментарий

swapi MAR = SP - 1 ; rd Чтение второго слова из стека; установка MAR на SP
swap2 MAR = SP Подготовка к записи нового второго слова
swap3 H = MDR; wr Сохранение нового значения TOS; запись второго слова в стек
swap4 MDR = TOS Копирование старого значения TOS в регистр MDR
swap5 MAR = SP - 1; wr Запись старого значения TOS на второе место в стеке
swap6 TOS = H; goto (MBR1 ) Обновление TOS

Давайте перепишем эту последовательность для М1с-3. Следует помнить, что теперь тракт данных работает три цикла: один служит для загрузки регистров А и В, второй — для выполнения операции и загрузки регистра С, третий — для записи результатов в регистры. Каждый из этих циклов мы назовем микрошагом.

Реализация команды SWAP для Mic-3 показана в табл. 4.10. В цикле 1 мы начинаем микрокоманду swapl, копируя значение SP в регистр В.

Не имеет никакого значения, что происходит в регистре А, поскольку, чтобы отнять 1 из В, ENA (сигнал разрешения А) блокируется (см. табл. 4.1). Для простоты мы не показываем присваивания, которые не используются. В цикле 2 мы производим операцию вычитания. В цикле 3 результат сохраняется в регистре MAR, и после этого, в конце третьего цикла, начинается процесс чтения. Поскольку чтение из памяти занимает один цикл, закончится он только в конце четвертого цикла. Это показано присваиванием значения регистру MDR в цикле 4. Значение из MDR можно считывать не раньше пятого цикла.
Таблица 4.10. Реализация команды SWAP в архитектуре Mic-3
Swapl Swap2 Swap3 Swap4 Swap5 Swap6
Цикл MAR = SP - 1; rd MAR = SP H = MDR; wr MDR = TOS MAR = SP - 1 ; wr TOS = H; goto (MBR1)
1 В = SP
2 0

и

го

1

В = SP
3 MAR = C; rd C = В
4 MDR = Mem MAR = C
5 В = MDR
6 C = В B = TOS
7 H = C; wr C = B В = SP
8 Mem = MDR MDR = C 0

ll

ro

1

В = H
9 MAR = C; wr C=B
10 Mem = MDR TOS = C
11 goto (MBR1)

А теперь вернемся к циклу 2. Мы можем разбить микрокоманду swap2 на микрошаги и начать их выполнение.

В цикле 2 мы копируем значение SP в регистр В, затем пропускаем значение через АЛУ в цикле 3 и, наконец, сохраняем его в регистре MAR в цикле 4. Пока все хорошо. Должно быть ясно, что, если мы сможем начинать новую микрокоманду в каждом цикле, скорость работы машины увеличится в три раза. Такое повышение скорости происходит за счет того, что машина Mic-3 производит в три раза больше циклов в секунду, чем Mic-2. Фактически мы построили конвейерный процессор.

К сожалению, мы наткнулись на преграду в цикле 3. Прекрасно было бы начать микрокоманду swap3, но эта микрокоманда сначала пропускает значение MDR через АЛУ, а значение MDR не может быть получено из памяти до начала цикла 5. Ситуация, когда следующий микрошаг не может начаться, потому что перед этим нужно получить результат выполнения предыдущего микрошага, называется реальной взаимозависимостью, или RAW-взаимозависимостью (Read After Write — чтение после записи). Взаимозависимости иногда называют рисками.

В такой ситуации требуется считать значение регистра, которое еще не записано. Единственное разумное решение в данном случае — отложить начало микрокоманды swap3 до того момента, когда значение MDR станет доступным, то есть до пятого цикла. Ожидание нужного значения называется простоем. После этого мы можем начинать выполнение микрокоманд в каждом цикле, поскольку таких ситуаций больше не возникает, хотя имеется пограничная ситуация: микрокоманда swapô считывает значение регистра Н в цикле, который следует сразу после записи этого регистра в микрокоманде swap3. Если бы значение этого регистра считывалось в микрокоманде swap5, машине пришлось бы простаивать один цикл.

Хотя программа Mic-3 требует больше циклов, чем программа Mic-2, она работает гораздо быстрее. Если время цикла микроархитектуры Mic-3 составляет АТ нс, то для выполнения команды SWAP машине Mic-3 требуется 11 АТ нс, а машине Mic-2 — 6 циклов по ЗАТ нс каждый, то есть всего 18АТ нс. Конвейеризация увеличивает быстродействие компьютера даже несмотря на то, что один раз приходится простаивать из-за явления реальной взаимозависимости.

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

На рис. 4.22 графически проиллюстрирована конвейеризация тракта данных, изображенного на рис. 4.21. В первой колонке показано, что происходит во время цикла 1, вторая колонка представляет цикл 2 и т. д. (предполагается, что простоев нет). Закрашенная область на рисунке для цикла 1 и команды 1 означает, что блок выборки команд занят вызовом команды 1. В цикле 2 значения регистров, вызванных командой 1, загружаются в А и В, а в это время блок выборки команд занимается вызовом команды 2, что также показано закрашенными серыми прямоугольниками.

Во время цикла 3 команда 1 использует АЛУ и схему сдвига, регистры А и В загружаются для команды 2, вызывается команда 3. Наконец, во время цикла 4 работают все 4 команды одновременно. Сохраняются результаты выполнения команды 1, АЛУ выполняет вычисления для команды 2, регистры А и В загружаются для команды 3, вызывается команда 4.

Если бы мы показали цикл 5 и следующие, модель была бы точно такой же, как в цикле 4: все четыре части тракта данных работали бы независимо друг от друга. Данный конвейер содержит 4 ступени: для вызова команд, для доступа к операндам, для работы АЛУ и для записи результата обратно в регистры. Он похож на конвейер, изображенный на рис. 2.3, а, только у него отсутствует ступень декодирования (расшифровки). Здесь важно подчеркнуть, что, хотя выполнение одной команды занимает 4 цикла, в каждом цикле начинается новая команда и завершается предыдущая.

Можно рассматривать схему на рис. 4.22 не вертикально (по колонкам), а горизонтально (по рядам). При выполнении команды 1 в цикле 1 функционирует блок выборки команд. В цикле 2 значения регистров помещаются на шины А и В. В цикле 3 работают АЛУ и схема сдвига. Наконец, в цикле 4 полученные результаты сохраняются в регистрах. Отметим, что имеется 4 доступных устройства и во время каждого цикла определенная команда использует только одно из них, оставляя свободными другие устройства для других команд.

Проведем аналогию с конвейером на заводе, производящем автомобили. Чтобы изложить суть работы такого конвейера, представим, что ровно каждую минуту звучит гонг, и в этот момент все автомобили передвигаются по конвейеру на один шаг. На каждом шаге рабочие выполняют определенную операцию с автомобилем, который оказывается перед ними, например ставят колеса или тормоза. При каждом ударе гонга (это — 1 цикл) очередная заготовка поступает на конвейер и один собранный автомобиль сходит с конвейера. Таким образом, завод выпускает один автомобиль в минуту независимо от того, сколько времени занимает сборка одного автомобиля. В этом и состоит суть конвейера. Такой подход в равной степени применим и к процессорам, и к автомобилям.

<< | >>
Источник: Таненбаум Э.. Архитектура компьютера. 5-е изд. 2007

Еще по теме Конвейерная конструкция — микроархитектура Мгс-З:

  1. Общие принципы конструкции депривационной ванны.
  2. ЛЕКЦИЯ 6 1.3.2. Образ города – семантическая конструкция
  3. Понятие коммуникации как методологический принцип построения гносеологической конструкции социокультурного пространства города
  4. § 29 Передача и переход прав по обязательствам. – Римская конструкция права передачи. – Облегчение передачи новейшим законодательством. – Передаточная надпись. – Ограничения передачи. – Действие передачи. – Ответственность передатчика и права приобретателя. – Вступление в право кредитора или суброгация. – Русский закон передачи. – Передача заемных писем. – Переход требований к кредиторам.
  5. О Божьих испытаниях, которые человечество регулярно не выдерживало
  6. РЕЧЬ МИМИКО-ЖЕСТОВАЯ
  7. МЫШЛЕНИЕ БЕЗОБРАЗНОЕ
  8. РЕЧЬ ПИСЬМЕННАЯ
  9. 2. Понятие договора хранения
  10. ОЛЬФАКТОМЕТРИЯ
  11. МЫШЛЕНИЕ СЛОВЕСНО-ЛОГИЧЕСКОЕ
  12. 1.3. Город как феномен, как единство (взаимопереход) объектных и субъектных структур жизнедеятельности человека
  13. 3. Общество с дополнительной ответственностью
  14. 1.5.4.
  15. Телевизионный художник
  16. 4. Контроль и надзор за выполнением строительных работ
  17. Статья 879. Обеспечение строительства и оплата работ
  18. 16. Понимающая социология М. Вебера. Понятие «идеального типа»