Меню
Главная
Авторизация/Регистрация
 
Главная arrow Товароведение arrow Электроника

Подсистема памяти

Подсистема памяти осуществляет взаимодействие с оперативной памятью. К ней относятся следующие узлы.

Кэш данных первого уровня. Это память объемом 8 Кбайт (в ранних процессорах, таких как Willamette) или 16 Кбайт (в более поздних) с малым временем доступа. В ранних процессорах оно составляло 2 такта, в более поздних с большим объемом кэш (ядро Prescott) время ожидания составляло 5 тактов основной частоты.

Кэш-память второго уровня. Это память большего, чем у кэш первого уровня, объема, но с большим временем доступа. Ее объем у процессоров на ядрах Willamette составляет 128 Кбайт (затем он был увеличен до 256 Кбайт), на ядрах Prescott – был доведен до 2048 Кбайт. Время доступа составляет 7 тактов для процессоров на ядрах Willamette и 18 тактов – на ядрах Prescott. Кэшпамять второго уровня соединяется с кэшем данных первого уровня шиной шириной 256 бит.

Некоторые процессоры архитектуры NetBurst содержали также кэш-память третьего уровня объемом 2, 4 или 8 Мбайт.

Основная задача блоков кэш-памяти – обеспечить работой исполнительные узлы процессора. Поскольку передача данных из кэш осуществляется большими блоками, то для обеспечения высокой производительности используются широкие шины, что наряду с частотой работы, соответствующей номинальной тактовой частоте процессора, дает высокую скорость передачи. Так, при номинальной тактовой частоте 3 ГГц пропускная способность шины, связывающей кэш данных первого уровня с регистрами, составляет 48 Гбайт/с, а шины, связывающей кэши первого и второго уровня еще выше, – 96 Гбайт/с.

Блок шинного интерфейса. Этот узел управляет системной шиной. Новая шина, называемая Quad-Pumped Bus, что можно перевести, как шина с учетверенной скоростью передачи, способна передавать четыре 64-разрядных блока данных за такт. При этом изменения коснулись не только данных – она способна передавать два адреса за такт. Это существенно позволило поднять скорость передачи данных между процессором и оперативной памятью.

Описание конвейера

Как уже отмечалось, одной из инноваций архитектуры NetBurst стало хранение в кэш последовательностей МО целых кусков декодированных команд в виде трасс. Это позволило исключить из конвейера по выполнению команд программы этапы выборки команд и их дешифрации. Конвейер насчитывает 20 стадий в ранних процессорах (Willamette), в последних реализациях этой архитектуры (Prescott) число стадий было увеличено до 31. Рассмотрим 20-стадийный конвейер процессоров архитектуры NetBurst.

  • 1–2. На первых двух стадиях происходит поиск в кэш последовательностей МО микрооперации, на которую указывает последняя выполненная. Напомним, что МО уже скомплектованы в трассы.
  • 3–4. В течение следующих двух стадий осуществляется выборка и добавление в очередь МО до шести микроопераций. Если попадается сложная команда, то в очередь заносятся коды микропрограммы исполнения этой команды из ROM микрокодов. При этом кэш последовательностей МО работает на частоте вдвое меньше номинальной.
  • 5. Пятая стадия служит для передачи МО по конвейеру, при этом никаких преобразований с ними не происходит.
  • 6–8. Эти три стадии обеспечивают подготовку МО к исполнению. Диспетчер ресурсов выбирает из очереди МО по три микрооперации. Для них резервируются все необходимые ресурсы процессора: место в очередях – очереди МО с памятью и очереди вычислительных МО, элементы регистрового файла и буфера переупорядочивания инструкций. Подготовленные операции передаются в соответствующие очереди. Логические регистры, указанные в командах х86, переименовываются в физические, общее число которых больше, чем у процессоров Р6–128.
  • 9. Девятая стадия служит для формирования очередей МО – с памятью и вычислительных. При этом порядок следования МО соответствует их положению в исходной программе. После чего они отправляются соответствующим планировщикам.
  • 10–12. Эти три стадии выполняют планировщики. Тип микрооперации однозначно определяет, какому планировщику она достанется. Пять планировщиков выбирают МО из очередей независимо друг от друга, причем отбор осуществляется по принципу FIFO. В планировщиках формируются очереди МО, которые поступают в соответствующие порты, называемые портами запуска. Именно на этих стадиях реализуется стратегия внеочередного исполнения команд. МО выстраиваются в очереди только исходя из принципа готовности операндов к вычислениям.
  • 13–14. На этих двух стадиях МО для исполнения снабжаются соответствующими операндами. Далее они через порты запуска пойдут на соответствующие исполнительные устройства. Порядок их исполнения уже не соответствует расположению в исходной программе, а определяется лишь готовностью.
  • 15-16. Эти две стадии обеспечивают чтение операндов из регистровых файлов. Регистровые файлы работают на удвоенной частоте, т.е. на частоте работы быстрых блоков ALU.
  • 17. Это стадия исполнения. Именно на ней происходит преобразование данных. МО вместе с операндами отправляется в соответствующий вычислительный блок, в котором и происходит обработка. Очень важную роль для ускорения процесса исполнения МО играет логика, имеющаяся в регистровых файлах. Благодаря ей результат только что исполненной МО может немедленно участвовать в следующей МО уже как операнд, т.е. устраняются задержки, которые могли бы быть вызваны отправкой результата в указанный регистр, а затем – чтением его оттуда.
  • 18. На этой стадии вычисляются и устанавливаются признаки результата – флажки, которые необходимы для исполнения следующих МО программы. В частности, они являются входными данными для следующей стадии, на которой будет происходить проверка правильности предсказанных переходов.
  • 19. Эта стадия зарезервирована для работы модуля предсказания переходов. Здесь происходит сравнение предсказанного для только что выполненной команды адреса перехода с тем, который предсказывался ранее. Если предсказание оказалось ошибочным, алгоритм предсказания будет скорректирован. Таким образом модуль предсказания переходов набирает статистику точности, которая используется для корректировки модели предсказания.
  • 20. Результат проверки, полученный на предыдущей стадии, направляется в дешифратор. После прохождения МО всех стадий конвейера она должна быть удалена, а результаты сформированы и записаны в память в соответствии с исходной программой. Только после удаления МО все ресурсы, зарезервированные за ней, освобождаются. Этот процесс называется отставкой МО. Эта операция осуществляется блоком завершения, аналогичным соответствующему устройству в архитектуре Р6 (на рис. 5.3 ои не показан). Отставка осуществляется группами по три МО – так же, как они были сгруппированы на стадиях 6–8.
 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 

Популярные страницы