Э. Таненбаум - Архитектура компьютера (1127755), страница 89
Текст из файла (страница 89)
Если затребованное слово не удается обнаружить в каше первого уровня, отправляется запрос в кэш второго уровня; последний в такой ситуации может ответить либо сразу, либо после выборки соответствуюгцей строки из памяти. В любой момент в состоянии исполнения могут находиться до четырех запросов, направленных из кэша первого уровня в кэш второго уровня. Так как микрооперации выполняются вне исходной последовательности, сохранение в кэше первого уровня возможно только после пересортировки результатов всех команд, предшествующих команде сохранения. Такую пересортировку результатов с их трассировкой (отслеживанием того, где они находятся) выполняет блок пересортировки.
В случае прерывания прекращается обработка всех команд, еще не прошедших пересортировку результатов; таким образом, обеспечивается соблюдение требования, согласно которому при прерывании должны быть завершены все команды до определенной точки в программе. Если команда сохранения прошла пересортировку результатов, но предшествующие команды еще обрабатываются, из-за невозможности обновления каша первого уровня результаты их выполнения передаются в буфер незавершенных команд. В этом буфере можно единовременно разместить до 24 команд сохранения.
Если одна из последующих команд загрузки попытается считать сохраненные данные, она из буфера незавершенных команд будет перенаправлена непосредственно к команде, которая в этот момент еще не помещена в кэш данных первого уровня. Этот пропесс называется перенаправлением для аагрузки (згогего-1оай 1огп агйпя). Итак, достаточно очевидно, что Репйпш 4 обладает сложной микроархитектурой, проектное решение которой определено необходимостью поддержки унаследованного набора команд Репйпгп на современном К1ЯС-ядре с высоким уровнем конвейеризации. Эта цель достигается путем деления команд Репйпш на микро- операции, их кэширования и передачи (по три микрооперации за раз) конвейеру, где они выполняются с помогцью нескольких АЛУ, которые в оптимальных условиях обрабатывают до шести микроопераций за цикл. Микрооперации выполняются с отклонением от исходной последовательности, но возвращаются и сохраняются в кэш-памяти первого и второго уровней в заданном порядке.
Более подробные сведения о микроархитектуре ХегВпгзг представлены в работе [941 Микроархитектура процессора 0йгаЗРАВС П! Си Серия процессоров ШггаЯРАКС, произведенная компанией Япп, — это реализация версии 9 архитектуры БРАКС. На первый взгляд все модели очень похожи и различаются главным образом по производительности и цене. В то же время, на уровне микроархитектуры они существенно различаются. В этом разделе мы 358 Глава 4. Уровень микроархитектуры обсудим процессор ИтгаЯРАКС 1П Сп. Аббревиатура «Сп» в названии модели говорит о том, что проводники микросхемы сделаны из меди — в отличие от алюминиевых проводников, применявшихся в предыдущих моделях.
Сопротивление меди ниже сопротивления алюминия, за счет этого провода становятся тоньше, а быстродействие — выше. Игга8РАВС П1 Сп — это 64-разрядная машина с 64-разрядными регистрами и 64-разрядным трактом данных, но в целях совместимости с машинами версии 8 (которые являются 32-разрядными) она может работать с 32-разрядными операндами, а программное обеспечение, написанное для 32-разрядных версий 8РАКС, изменять не нужно. Хотя во внутренней архитектуре машины используются 64 разряда, ширина шивы памяти составляет 128 бит, аналогично процессору Репсшп П с 32-разрядной архитектурой и 64-разрядной шиной памяти.
В обоих случаях в одну систему устанавливаются шина и процессор разных поколений. В отличие от Репг1пш 4, процессор ИсгаЯРАВС изначально проектировался как полноценная К18С-система. Следовательно, необходимости в сложном механизме преобразования старых С1ЯС-команд в микрооперации в данном случае не было. Команды ядра представляют собой готовые микрооперации.
Ситуация несколько осложняется появлением в последние годы новых команд обработки графических и мультимедийных данных, для выполнения которых требуются специальные устройства. Общий обзор системы 01тгаЗРАВС 1П Си Структурная схема Игга8РАВС П1 Сп представлена на рис. 4.33. В целом, она значительно проще микроархитектуры 1х1етВпгзц применяемой в системах Репг1п1п 4, что объясняется менее изощренной архитектурой системы команд Игга8РАВС. Тем не менее по некоторым базовым компонентам сходство с Реп11шп 4 прослеживается. В первую очередь, это обусловлено технологическими и экономическими факторами.
К примеру, в период проектирования этих микросхем объем кэшей данных первого составлял от 8 до 16 Кбайт. Этому стандарту соответствовали обе рассматриваемые микросхемы. Когда производство кэш-памяти первого уровня емкостью 64 Мбайт станет обоснованным с технологической и зкономической точек зрения, все процессоры будут оснащаться уже новыми кашами.
Различия между Репгшш 4 и Игга8РАВС П1 Сп связаны по большей части с тем, что в первом случае разработчикам пришлось обеспечить поддержку унаследованного набора С18С-команд, а во втором такой задачи не ставилось. В левой верхней части рис. 4.33 изображен 4-входовый ассоциативный кэш команд емкостью 32 Кбайт с 32-байтными строками. Поскольку большинство команд П!гга8РАКС занимают 4 байта, в этом каше можно одновременно разместить около 8000 команд.
По этому признаку Игга8РАКС 1П Сп несколько уступает кашу трасс МегВпгзк Блок вызова команд подготавливает для выполнения до четырех команд за цикл. В случае неудачного обращения в кэш-память первого уровня количество вызываемых команд уменьшается. При обнаружении условного перехода происходит обращение к таблице переходов емкостью 16 000 записей; на основе ее содержания принимается решение о вызове следующей команды или команды, расположенной по целевому адресу. Повышать надежность прогнозирования Примеры уровня микроархитектуры 359 ветвлений помогают дополнительные биты, связываемые с каждым словом в ка- ше команд. Подготовленные команды поступают в 16-командный буфер, кото- рый сглаживает направленный в конвейеры поток команд.
В память Системный интерфейс Контроллер кеша второго уровня Контроллер памяти ггйбрйцвт Блок вызова т пейвхеда команд -Кэщс,-:.!:,:::.'. Мщу ' й4~С -- бл -ки Кэа:записи Блок Блок исполения операций с плавающе точкой исполнения целочисленных операций Блок загрузки/сохранения Рис. 4.33.
Структурная схема процессора штгаЯРАНС Ш Сц Как показано на рис. 4.33, нз буфера команд команды попадают в блок исполнения целочисленных операций, блок исполнения операций с плавающей точкой н блок загрузки/сохранения. Блок исполнения целочисленных операций состоит из двух АЛУ н короткого конвейера для обработки команд перехода. Кроме того, здесь есть регистры 13А н временные регистры.
Блок исполнения операций с плавающей точкой состоит из 32 регистров и трех независимых АЛУ, предназначенных для выполнения операций сложенияггвычнтания, умножения и деления, соответственно. Этот же блок выполняет графические операции. Блок загрузки/сохранения, как явствует нз его названия, ответственен за обработку разнообразных команд загрузки и сохранения. Содержащиеся в нем тракты данных обеспечивают соединение с тремя кашами.
Кэш данных представляет собой традиционную предназначенную для обработки данных 4-входовую ассоциативную кзш-память первого уровня емкостью 64 Кбайт с длиной строки 32 байт. Кэш предвыборки емкостью 2 Кбайт нужен по той причине, что на уровне архитектуры команд ПтгаЯРАКС предусмотрены команды упреждающей выборки, которые позволяют компилятору вызывать слова еще до того, как в ннх возникнет необходимость. Если компилятор полагает, что через некоторое время ему потребуется то нли иное слово, он запускает команду предвыборки.
Б результате соответствующая строка с упреждением загружается в кзш предвыборки, и через 360 Глава 4. Уровень микроархитектуры несколько команд обращение к этой строке происходит существенно быстрее, чем если бы она не была загружена. В некоторых ситуациях проводится и аппаратная предвыборка, позволяющая повысить скорость работы устаревших программ, не поддерживающих программную предвыборку.
Кэш записи представляет собой небольшой по объему (2 Кбайт) блок кэш-памяти, предназначенный для объединения результатов записи, а следовательно, оптимизации потребления ресурсов широкой (256-разрядной) шины, ведущей к кашу второго уровня. Единственное назначение кэша записи состоит в повышении производительности. В микросхеме П)гга5РАКС П1 Сц также предусмотрена логика управления доступом к памяти. Она состоит из трех компонентов: системного интерфейса, контроллера каша второго уровня и контроллера памяти. Системный интерфейс обеспечивает взаимодействие с памятью по 128-разрядной шине. Через этот интерфейс проходят все запросы вовне, за исключением запросов к кашу второго уровня.
Теоретически при использовании 43-разрядных адресов физической памяти объем основной памяти может доходить до 8 Тбайт, однако размер печатной платы, на которой устанавливается процессор, ограничивает этот показатель значением 16 Гбайт. Проектное решение интерфейса позволяет подключать к одному модулю памяти сразу несколько процессоров ШггаЯРАКС, за счет чего формируется мультипроцессор.
О мультипроцессорах речь пойдет в главе 8. Контроллер каша второго уровня сопряжен с объединенным кэшем второго уровня, который расположен вне микросхемы процессора. При внешнем размещении каша второго уровня его объем может составлять 1, 4 или даже 8 Мбайт. Длина строки зависит от объема кэша (от 64 байт в каше объемом 1 Мбайт до 512 байт в каше объемом 8 Мбайт). Напомним, что кэш второго уровня Репггд1п 4 расположен на микросхеме, и из-за нехватки на ней свободного места его объем ограничен значением 1 Мбайт. Таким образом, в ЛсгаЯРАКС обеспечивается значительно более высокий коэффициент кэш-попаданий, чем в Репг1ц1п (что объясняется большим объемом кэша), однако скорость доступа здесь ниже (потому что кэш расположен вне микросхемы). Контроллер памяти преобразует 64-разрядные виртуальные адреса в 43-разрядные физические адреса.
Пгга5РАКС поддерживает виртуальную память (см. главу 6) с размерами страницы 8, 64 и 512 Кбайт, а также 4 Мбайт. Для ускорения процесса преобразования предусмотрены специальные таблицы, называемые буферами быстрого преобразования (Тгапз1ааоп Еооказк)е Вп((егз, ТЕВ). Они сравнивают текущий виртуальный адрес с адресами, по которым производились обращения в недавнем прошлом. Три такие таблицы обеспечивают гибкое управление размерами страниц данных, а еще две обрабатывают команды преобразования.