Смекни!
smekni.com

Сравнение архитектуры POWER с другими RISC архитектурами. (стр. 4 из 5)

2.7 Встроенные кэши команд и данных.


В 750 реализованы отдельные 32 Кб кэши для команд и данных (Гарвардская архитектура). Оба кэша восьмиканальные частично ассоциативные. По архитектуре PowerPC кэши адресуются физически, реальный адрес хранится в директории кэша. Оба кэша организованы в блоки по 32 байта. Блок кэша - блок памяти, для которого описано состояние когерентности. Для каждого банка данных кэша используется алгоритм PLRU (pseudo least-recently-used) замены данных (алгоритм изложен в документации). Когерентность данных глобальной памяти и данных в кэше производится по протоколу MEI процедурой слежения (snooping) по шине когерентности. Состояниякогерентностидлякэшаданных: Modified (Exclusive) (M), Exclusive (Unmodified) (E), Invalid (I). Для кэша команд: Invalid (INV), Valid (VAL). Каждый кэш можно сделать недействительным (invalidate) установкой соответствующих битов в специальных регистрах (HID0).
При непопадании в кэш, блоки заполняются за 4 прохода по 64 бита. Двойные слова одновременно записываются в кэш и в запрашивающее устройство, минимизируя задержки.
Оба кэша тесно связаны с устройством шины интерфейса (bus interface unit, BUI). BUI получает запросы от кэшей и выполняет эти операции в соответствии с протоколом 60х. BUI предоставляет очереди адресов, логику приоритетов и логику контроля шины.
Кэш данных предоставляет буферы для сохранения и загрузки операций шины. Все данные из соответствующих адресных очередей помещены в кэш данных. В кэше данных также производится сохранение тэгов, требуемых для когерентности с памятью и замещение блоков кэша функциями PLRU.
Кэш данных организован в 128 банков по 8 блоков. Каждый блок содержит 32 байта, 2 бита состояния и адресный тэг. Каждый блок кэша содержит 8 последовательных слов из памяти которые загружаются с границы в 8 слов (т.е. биты ЕА[27-31] равны 0): таким образом блок кэша никогда не пересекает границу страницы. Не выровненные обращения через границу страницы могут повлечь уменьшение производительности. Во время загрузки данных кэш не блокируется для внешних доступов до полной загрузки.

В течение такта кэш данных предоставляет для считывания в LSU двойное слово. Как и кэш команд, кэш данных может быть сделан недействительным (invalidated) весь или поблочно. Данные кэша делаются недоступными и недействительными сбросом HID0[DCE] и установкой HID0[DCFI], кэш данных может быть заблокирован установкой HID0[DLOCK]. Тэги кэша имеют один порт, поэтому одновременная загрузка/сохранение и обращения для когерентности кэша вызывают конфликт, при этом LSU внутренне блокируется на один такт для записи блока данных в 8 слов в буфер обратной записи.
Кэш команд также состоит из 128 банков по 8 блоков. Каждый блок состоит из 32 байтов, 1 бита состояния и адресного тэга. За один цикл кэш команд предоставляет до 4 команд в очередь команд. В кэше команд поддерживаются только состояния верно/неверно (valid/invalid) для данных. Кэш команд не отслеживается, поэтому если изменяется память, данные которой содержатся в кэше, программа должна сообщать об этом устройству выборки команд. Кэш команд может быть сделан недействительным весь или поблочно. Доступ к кэшу запрещается и кэш делается недействительным сбросом HID0[ICE] и установкой HID0[ICFI], кэш блокируется установкой HID0[ILOCK].
В 750 реализован также кэш команд переходов (branch target instruction cache, BTIC). В BTIC хранятся встретившиеся в программе команды переходов/циклов. Если команда находится в BTIC она поступает в очередь команд на такт быстрее, чем из кэша команд.

3. Системный интерфейс. Схема выводов процессора.


3.1 Шины адреса и данных функционируют раздельно. Используются два вида доступов к памяти и пересылки данных:

· Однотактовая (single-beat) пересылка - пересылка 8, 16, 24, 32 или 64 битов за такт шины. Используется при некэшируемых доступах в память.
· Четырехтактовая пакетная (four-beat burst) пересылка данных - используется для чтения блоков кэша. Так как кэши первого уровня с обратной записью, то пакетные доступы к памяти используются наиболее часто.
Доступ к системной шине дается через механизм внутреннего арбитража.
Обычно доступы к памяти слабо упорядочены - последовательности команд загрузки/записи не обязательно выполнять в порядке их следования - то есть можно максимизировать эффективность использования шины без потери когерентности. 750 позволяет выполнять операции загрузки/записи не в порядке расположения в очереди команд (если нет зависимостей между ними и нет случаев некэшируемых доступов).

3.2 Процессор 750 имеют следующие группы выводов:
· Арбитраж шины адресов
1. BR (Bus Request) Output - запрос операций на шине адреса
2. BG (Bus Grant) Input - разрешение операций на шине адреса
3. ABB (Address Bus Busy) Output - указывает, что 750 является мастером шины. Input - указывает на занятость шины.
· Старт передачи адреса - показывает, что мастер шины (bus master) начал транзакцию на шине адреса.
1. TS (Transfer Start) Output - указывает, что 750 начал транзакцию и шина адреса и атрибуты верны. Input - другой мастер шины начал транзакцию и шина адреса и ат-рибуты доступны для слежения.
· Передачи адреса - включает в себя шину адреса и сигналы четности адреса для про-верки.
1. A[0-31] (Address Bus) Output - физический адрес данных для пересылки. Input - фи-зический адрес для операции слежения (snooping) .
2. AP[0-3] (Address Bus Parity) Output - четность для каждых 4 байт адреса. Input - чет-ность для каждых 4 байт адреса для операции слежения .
· Атрибуты пересылки - показывают размер пересылки, является ли пакетной, прямой записью или бескэшевой.
1. TT[0-4] (Transfer Type) Output - текущий тип пересылки
2. TSIZ[0-2] (Transfer Size) Output - размер текущей пересылки данных.
3. TBST (Transfer Burst) Output - указывает на текущую пакетную пересылку.
4. CI (Cache Inhibit) Output - указывает, что однотактовые пересылки не кэшируются.
5. WT (Write Through) Output - указывает, что однотактовая транзакция записывается write-through. Сигнал чтении показывает выборку команды или загрузку данных.
6. GBL (Global) Output - указывает, что транзакция глобальная. Input - указывает, что транзакция должна быть отслежена.
· Завершения передачи адреса - подтверждают конец адресной фазы транзакции.
1. AACK (Address Acknowledge) Input - указывает на завершение адресной фазы тран-закции.
2. ARTRY (Address Retry) Output - указывает, что 750 обнаружил условия при которых фаза передачи адреса должна быть повторена.
· Арбитраж шины данных.
1. DBG (Data Bus Grant) Input - доступ к операциям на шине данных
2. DBWO (Data Bus Write Only) Input - указывает на возможность записи по внеоче-редному адресу, даже если адрес чтения стоит перед адресом записи.
3. DBB (Data Bus Busy) Output - указывает, что 750 является мастером шины. Input - другое устройство мастер шины.
· Пересылка данных - содержит сигналы шины данных и четности.
1. DH[0-31], DL[0-31] (Data Bus) - шина данных раздела на две половины - верхняя шина (DH) и нижнюю шину (DL). Output - состояние данных при записи. Input - данные при чтении.
2. DP[0-7] (Data Bus Parity) Output - четность для каждых 8 бит при транзакции запи-си/чтения.
3. DBDIS (Data Bus Disable) - указывает, что 750 должен освободить шину данных и четности в течение текущего цикла.
· Завершения пересылки данных - сигналы завершения требуются после каждого цикла пересылки данных. В одноцикловых (single-beat) транзакциях сигналы завершения указывают на окончания владения шиной, при пакетных доступах сигналы завершения поступают после каждого цикла и отдельно сигнал окончания владения шиной.
1. TA (Transfer Acknowledge) - указывает на удачное завершение цикла пересылки данных.
2. DRTRY (Data Retry) - указывает на недействительность данных предыдущей пере-сылки
3. TEA (Transfer Error Acknowledge) - ошибка на шине.
· Адрес/данные кэша L2 - 750 имеет отдельные шины адреса и данных для доступа к кэшу L2.
· Тактовые/контрольные сигналы кэша L2.
· Сигналы прерываний/сброса - сигналы внешних прерываний, ошибочных остановок, программных и аппаратных сбросов.
1. INT (Interrupt) - 750 вызывает прерывание если MSR[EE] установлен, иначе преры-вание игнорируется.
2. SMI (System Management Interrupt) - прерывание системного управления, если
MSR [EE] установлен.
3. MCP (Machine Check Interrupt)
4. CKSTP_IN (Checkstop Interrupt) - 750 должен прервать операцию и сбросить все выходы
5. CKSTP_OUT - указывает на наступление условия остановки.
6. HRESET (Hard Reset) - полное аппаратное прерывание.
7. SRESET (Soft Reset) - начинает процесс исключительной ситуации сброса.
· Статус процессора и контроль - устанавливают бит когерентности станций резерва-ции, временную базу и другие функции.
· Контроля тактовой частоты.
· Тестовый интерфейс.