Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AOM / Мельник А. Архітектура комп'ютера.doc
Скачиваний:
1832
Добавлен:
17.05.2015
Размер:
6.19 Mб
Скачать

5.3.3. Зниження втрат на виконання команд умовного переходу

Число тактів, що втрачаються під час призупинення конвеєра через наявність умов­них переходів, може бути зменшено наступними способами:

■ Введенням буфера попередньої вибірки для виявлення, здійснимим чи нездійс­ нимим є умовний перехід та підготовки до переходу на початкових ярусах конвеєра.

  • Дублюванням початкових ярусів конвеєра для підготовки до переходу, аж до ви­явлення, здійснимим чи нездійснимим є умовний перехід.

  • Затримкою переходу, тобто виконанням наступних за командою переходу команд незалежно від напряму переходу.

■ Статичним та динамічним передбаченнями переходу, тобто попереднім обчис­ ленням значення лічильника команд (цільової адреси) для здійснимого переходу.

5.3.3.7. Введення буфера попередньої вибірки

Буфер попередньої вибірки встановлюється після ярусу вибірки команди. Він скла­дається з двох блоків пам'яті типу FIFOта блоку обчислення цільової адреси переходу, і включений в конвеєр команд, як це показано на рис. 5.15.

182

За значенням програмного лічильника ПЛ команди з пам'яті команд зчитуються в один з буферів FIFO.Блок обчислення цільової адреси аналізує кожну зчитану команду. При виявленні команди умовного переходу він обчислює адресу переходу та керує бло­ками FIFOі програмним лічильником з тим, щоб забезпечити паралельне зчитування обох можливих послідовностей команд з адреси переходу в блоки FIFO.Після обчис­лення адреси переходу блок обчислення цільової адреси підключає до входу конвеєра команд через мультиплексор МП відповідний буфер, а вміст іншого буфера стирається.

За рахунок попередньої вибірки для виявлення того, здійсненним чи нездійсненним є умовний перехід, таким підходом вдається зменшити втрати на виконання команд умовного переходу. При цьому буфер попередньої вибірки можна розглядати як декіль­ка додаткових ярусів конвеєра, які збільшують його початкову затримку та не впливають на продуктивність. З рис. 5.12 видно, що такий підхід ускладнює роботу конвеєра. Крім того, при наявності в програмі декількох команд умовного переходу підряд це вимагає включення додаткових блоків FIFO та іще більше ускладнює роботу комп'ютера.

5.3.3.2. Дублювання початкових ярусів конвеєра

Подібним до описаного вище способом зниження втрат на виконання команд умов­ного переходу є дублювання початкових ярусів конвеєра, тобто створення двох пара­лельних гілок початкових ярусів конвеєра команд, як це показано на рис. 5.16.

В одній із паралельних гілок початкових ярусів конвеєра команд послідовність ко­манд відповідає випадку, коли умова переходу виконується, а в іншій - коли не викону­ється. Кількість ярусів у цих вітках визначається кількістю тактів, потрібних для обчис­лення адреси переходу блоком обчислення цільової адреси переходу. Після отримання адреси переходу блок обчислення цільової адреси переходу через мультиплексор МП

183

підключає до решти ярусів конвеєра команд відповідну вітку початкових ярусів.

Тут також з'являються проблеми, коли до прийняття рішення щодо поточної коман­ди переходу в конвеєр надходить нова команда. Тоді знову вимагаються додаткові пара­лельні вітки початкових ярусів конвеєра команд.

Описаний метод, як і попередній, знайшов застосування в кількох версіях сім'ї комп'ютерів IBM360/370.

Соседние файлы в папке AOM