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

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

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

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

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

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

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

 

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

 

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

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

 

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

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

 

 

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

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

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