Когда инициатор выставляет на шину PCI сигнал FRAME происходит запись адреса и команды во входные регистры – защелки адреса RG(SA) и команды RG(SC), а с приходом сигнала IRDY происходит стробирование адреса и команды. Для обработки этих сигналов предназначена КС обработки управляющих сигналов шины PCI. Эта КС имеет следующую таблицу истинности:
Таблица 3.1 Таблица истинности КС обработки управляющих сигналов шины PCI
FRAME# |
IRDY# |
Выход |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
— |
После стробирования команда декодируется при помощи дешифратора. Кэш – контроллер использует только следующие команды:
Таблица 3.2 Декодирование команд шины PCI
C/BE[0:3] |
Тип команды |
0110 |
Чтение памяти |
0111 |
Запись в память |
1011 |
Конфигурационная запись |
После декодирования сигнала, определяющие команды чтения памяти и записи в память поступают на КС управления чтением/записью. Эта КС при команде чтения памяти выдает сигнал чтения памяти данных, если кэш – попадание и сигнал записи в память данных и память тегов и чтение ОЗУ, при кэш – промахе. При команде записи в память КС выдает сигнал записи в память данных. КС управления чтением/записью имеет следующую таблицу истинности:
Таблица 3.3 Таблица истинности КС управления чтением/записью
ВХОДЫ |
ВЫХОДЫ |
|||||
RE |
DCS |
RD |
WR |
CE1 |
CWE# |
OE# |
0 |
0 |
0 |
0 |
— |
— |
— |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
— |
— |
— |
0 |
1 |
0 |
0 |
— |
— |
— |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
— |
— |
— |
1 |
0 |
0 |
0 |
— |
— |
— |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
— |
— |
— |
1 |
1 |
0 |
0 |
— |
— |
— |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
— |
— |
— |
После стробирования адреса 8 старших разрядов поступают на компаратор, средние 14 разрядов поступают на память тегов, откуда по ним извлекается тег, который соответствует этой строке. В результате сравнения вырабатывается сигнал DCS, который показывает кэш – промах у нас или кэш – попадание.
СТ(CE0 ,R) предназначен для выдачи сигнала STOP на шину, при возникновении переноса(достижение конца строки). Таким образом кэш – контроллер останавливает транзакцию, сообщая тем о прекращении обмена.
Блок управления замещением строк кэш – памяти состоит из RG(TAG), в который записывается старшая часть разрядов адреса. Он управляется сигналом CWE# и зависит от сигнала DCS.
Триггер T(RS) предназначен для запоминания сигнала CWE# в момент, когда кэш – контроллер работает (чтение/запись памяти при кэш – попадание или кэш — промахе) и сброс этого сигнала, когда кэш – контроллер закончил работать(то есть выставлен сигнал STOP).
Мультиплексоры MS(MS0) и MS(MS1) предназначены для выбора старшей части адреса при кэш – промахе в зависимости происходит ли чтение ОЗУ или запись.
Демультиплексор DMS(AL) предназначен для коммутации сигнала TRDY на одну из линий задержки, в зависимости от того происходит ли обращение к ОЗУ или нет.
СТ(СЕ1) управляет сигналами RAS, CAS и DWE(сигналы управления SDRAM).
КС сигнала RAS, КС сигнала CAS и КС сигнала DWE в зависимости от команды конфигурации(КС сигнала DWE в зависимости от сигнала DCS ) выдают сигналы RAS, CAS и DWE соответственно. Таблицы истинности перечисленных КС приведены в таблицах 3.4, 3.5, 3.6 соответственно.
Таблица 3.3 Таблица истинности КС сигнала RAS
CKO |
CRD |
RAS |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
Таблица 3.4 Таблица истинности КС сигнала CAS
CKO |
CRD |
CAS |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
Таблица 3.6 Таблица истинности КС сигнала DWE
CK1 |
DCS |
DWE |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |