CPU PIPELINE

From PSXDEV
Jump to: navigation, search

4-stage pipeline

Генерализованный конвеер операций, для разделния по тактам очередности действий (4-stage). Может образовывать более длинные цепочки.

400px

Ячейка состоит из 4 этапов (stage) конвеера, каждый этап имеет два входа (1,2) и один выход (3). Управляется схема контрольными сигналами C1/C2 и D1/D2 (соединяются они между собой или нет - неизвестно).

Также схема имеет "стартовый" вход - in (для запуска конвеера) и "финиш" (сигнализирующий о том, что конвеер остановился) - out.

Исходники схемы и топологии : File:Pipeline circuit.tif

Flow

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

400px 400px

Контрольные сигналы C1/C2 управляют входами 1 и 2. Контрольные сигналы D1/D2 выбирают что подавать на выход 3.

Когда C1 = 1, то на вход текущего этапа подается значение с контакта 1. Когда C2 = 1, то на вход текущего этапа подается значение с контакта 2.

Когда D1 = 1, то на выход 3 идёт выбранный вход с контактов 1/2 текущего этапа. Когда D2 = 1, то на выход 3 идёт выход с предыдущего этапа.

По идее C1/C2 и D1/D2 должны работать согласованно и представлять собой один и тот же тактовый сигнал (CLK). Но пока это не подтверждено. Точно известно что C1 != C2 и D1 != D2 (они не могут быть одновременно 0 0 или 1 1).

В общем и целом логика всей "колбасы" будет выглядеть следующим образом : Pipeline logic.jpg

24px PS. Логика выхода 3 с каждого этапа инвертирована по отношению к входам 1/2 или значению с предыдущего этапа.

Заметки по топологии

  • Выходной сигнал out (stop) дополнительно подтягивается небольшим буфером