Difference between revisions of "CPU PIPELINE"

From PSXDEV
Jump to: navigation, search
(Flow)
 
Line 3: Line 3:
 
Генерализованный конвеер операций, для разделния по тактам очередности действий (4-stage). Может образовывать более длинные цепочки.
 
Генерализованный конвеер операций, для разделния по тактам очередности действий (4-stage). Может образовывать более длинные цепочки.
  
[[Файл:Pipeline.jpg|400px]]
+
[[File:Pipeline.jpg|400px]]
  
 
Ячейка состоит из 4 этапов (stage) конвеера, каждый этап имеет два входа (1,2) и один выход (3). Управляется схема контрольными сигналами C1/C2 и D1/D2 (соединяются они между собой или нет - неизвестно).
 
Ячейка состоит из 4 этапов (stage) конвеера, каждый этап имеет два входа (1,2) и один выход (3). Управляется схема контрольными сигналами C1/C2 и D1/D2 (соединяются они между собой или нет - неизвестно).
Line 9: Line 9:
 
Также схема имеет "стартовый" вход - in (для запуска конвеера) и "финиш" (сигнализирующий о том, что конвеер остановился) - out.
 
Также схема имеет "стартовый" вход - in (для запуска конвеера) и "финиш" (сигнализирующий о том, что конвеер остановился) - out.
  
Исходники схемы и топологии : [[Файл:Pipeline circuit.tif]]
+
Исходники схемы и топологии : [[File:Pipeline circuit.tif]]
  
 
= Flow =
 
= Flow =
Line 15: Line 15:
 
В основе работы каждого из этапов лежит 2 мультиплексора :
 
В основе работы каждого из этапов лежит 2 мультиплексора :
  
[[Файл:Pipeline C1 C2 flow.jpg|400px]] [[Файл:Pipeline D1 D2 flow.jpg|400px]]
+
[[File:Pipeline C1 C2 flow.jpg|400px]] [[File:Pipeline D1 D2 flow.jpg|400px]]
  
 
Контрольные сигналы C1/C2 управляют входами 1 и 2. Контрольные сигналы D1/D2 выбирают что подавать на выход 3.
 
Контрольные сигналы C1/C2 управляют входами 1 и 2. Контрольные сигналы D1/D2 выбирают что подавать на выход 3.
Line 28: Line 28:
  
 
В общем и целом логика всей "колбасы" будет выглядеть следующим образом :
 
В общем и целом логика всей "колбасы" будет выглядеть следующим образом :
[[Файл:Pipeline logic.jpg]]
+
[[File:Pipeline logic.jpg]]
  
 
{{warning}} PS. Логика выхода 3 с каждого этапа инвертирована по отношению к входам 1/2 или значению с предыдущего этапа.
 
{{warning}} PS. Логика выхода 3 с каждого этапа инвертирована по отношению к входам 1/2 или значению с предыдущего этапа.

Latest revision as of 10:47, 26 August 2014

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) дополнительно подтягивается небольшим буфером