Современные микропроцессоры
Категория реферата: Рефераты по информатике, программированию
Теги реферата: банки курсовая работа, доклад на тему язык
Добавил(а) на сайт: Kas'janenko.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 | Следующая страница реферата
Кэш-память данных первого уровня
Кэш-память данных первого уровня процессора R10000 имеет емкость 32
Кбайт и организована в виде двух одинаковых банков емкостью по 16 Кбайт, что обеспечивает двухкратное расслоение при выполнении обращений к этой кэш-
памяти. Каждый банк представляет собой двухканальную множественно-
ассоциативную кэш-память с размером строки (блока) в 32 байта. Кэш данных
индексируется с помощью виртуального адреса и хранит теги физических
адресов памяти. Такой метод индексации позволяет выбрать подмножество кэш-
памяти в том же такте, в котором формируется виртуальный адрес. Однако для
того, чтобы поддерживать когерентность с кэш-памятью второго уровня, в кэше
первого уровня хранятся теги физических адресов памяти.
Массивы данных и тегов в каждом банке являются независимыми. Эти четыре массива работают под общим управлением очереди формирования адресов памяти и схем внешнего интерфейса кристалла. В очереди адресов могут одновременно находиться до 16 команд загрузки и записи, которые обрабатываются в четырех отдельных конвейерах. Команды из этой очереди динамически выдаются для выполнения в специальный конвейер, который обеспечивает вычисление исполнительного виртуального адреса и преобразование этого адреса в физический. Три других параллельно работающих конвейера могут одновременно выполнять проверку тегов, осуществлять пересылку данных для команд загрузки и завершать выполнение команд записи в память. Хотя команды выполняются в строгом порядке их расположения в памяти, вычисление адресов и пересылка данных для команд загрузки могут происходить неупорядоченно. Схемы внешнего интерфейса кристалла могут выполнять заполнение или обратное копирование строк кэш-памяти, либо операции просмотра тегов. Такая параллельная работа большинства устройств процессора позволяет R10000 эффективно выполнять реальные многопроцессорные приложения.
Работа конвейеров кэш-памяти данных тесно координирована. Например, команды загрузки могут выполнять проверку тегов и чтение данных в том же
такте, что и преобразование адреса. Команды записи сразу же начинают
проверку тегов, чтобы в случае необходимости как можно раньше инициировать
заполнение требуемой строки из кэш-памяти второго уровня, но
непосредственная запись данных в кэш задерживается до тех пор, пока сама
команда записи не станет самой старой командой в общей очереди выполняемых
команд и ей будет позволено зафиксировать свой результат ("выпустится").
Промах при обращении к кэш-памяти данных первого уровня инициирует процесс
заполнения строки из кэш-памяти второго уровня. При выполнении команд
загрузки одновременно с заполнением строки кэш-памяти данные могут
поступать по цепям обхода в регистровый файл.
При обнаружении промаха при обращении к кэш-памяти данных ее работа
не блокируется, т.е. она может продолжать обслуживание следующих запросов.
Это особенно полезно для уменьшения такого важного показателя качества
реализованной архитектуры как среднее число тактов на команду (CPI - clock
cycles per instruction). На рисунке 5.14 представлены результаты
моделирования работы R10000 на нескольких программах тестового пакета SPEC.
Для каждого теста даны два результата: с блокировкой кэш-памяти данных при
обнаружении промаха (вверху) и действительное значение CPI R10000 (внизу).
Выделенная более темным цветом правая область соответствует времени, потерянному из-за промахов кэш-памяти. Верхний результат отражает полную
задержку в случае, если бы все операции по перезагрузке кэш-памяти
выполнялись строго последовательно. Таким образом, стрелка представляет
потери времени, которые возникают в блокируемом кэше. Эффект применения
неблокируемой кэш-памяти сильно зависит характеристик самих программ. Для
небольших тестов, рабочие наборы которых полностью помещаются в кэш-памяти
первого уровня, этот эффект не велик. Однако для более реальных программ, подобных тесту tomcatv или тяжелому для кэш-памяти тесту compress, выигрыш
оказывается существенным.
Кэш-память второго уровня
Интерфейс кэш-памяти второго уровня процессора R10000 поддерживает
128-битовую магистраль данных, которая может работать с тактовой частотой
до 200 МГц, обеспечивая скорость обмена до 3.2 Гбайт/с (для снижения
требований к быстродействию микросхем памяти предусмотрена также
возможность деления частоты с коэффициентами 1.5, 2, 2.5 и 3). Все
стандартные синхронные сигналы управления статической памятью
вырабатываются внутри процессора. Не требуется никаких внешних интерфейсных
схем. Минимальный объем кэш-памяти второго уровня составляет 512 Кбайт, максимальный размер - 16 Мбайт. Размер строки этой кэш-памяти
программируется и может составлять 64 или 128 байт.
Одним из методов улучшения временных показателей работы кэш-памяти
является построение псевдо-множествнно-ассоциативной кэш-памяти. В такой
кэш-памяти частота промахов находится на уровне частоты промахов
множественно-ассоциативной памяти, а время выборки при попадании
соответствует кэш-памяти с прямым отображением. Кэш-память R10000
организована именно таким способом, причем для ее реализации используются
стандартные синхронные микросхемы памяти (SRAM). В одном наборе микросхем
памяти находятся оба канала кэша. Информация о частоте использования этих
каналов хранится в схемах управления кэшем на процессорном кристалле.
Поэтому после обнаружения промаха в первичном кэше из наиболее часто
используемого канала вторичного кэша считываются две четырехсловные строки.
Их теги считываются вместе с первой четырехсловной строкой, а теги
альтернативного канала читаются одновременно со второй четырехсловной
строкой (это осуществляется простым инвертированием старшего разряда
адреса).
При этом возможны три случая. Если происходит попадание по первому каналу, то данные доступны немедленно. Если происходит попадание по альтернативному каналу, происходит повторное чтение вторичного кэша. Если отсутствует попадание по обоим каналам, вторичный кэш должен перезаполняться из основной памяти.
Для обеспечения целостности данных в кэш-памяти большой емкости обычной практикой является использование кодов исправляющих одиночные ошибки (ECC-кодов). В R10000 с каждой четырехсловной строкой хранится 9- битовый ECC-код и бит четности. Дополнительный бит четности позволяет сократить задержку, поскольку проверка на четность может быть выполнена очень быстро, чтобы предотвратить использование некорректных данных. При этом, если обнаруживается корректируемая ошибка, то чтение повторяется через специальный двухтактный конвейер коррекции ошибок.
Кэш-память команд
Объем внутренней двухканальной множественно-ассоциативной кэш-памяти команд составляет 32 Кбайт. В процессе ее загрузки команды частично декодируются. При этом к каждой команде добавляются 4 дополнительных бит, которые указывают исполнительное устройство, в котором она будет выполняться. Таким образом, в кэш-памяти команды хранятся в 36-битовом формате. Размер строки кэш-памяти команд составляет 64 байта.
Обработка команд перехода
При реализации конвейерной обработки возникают ситуации, которые
препятствуют выполнению очередной команды из потока команд в
предназначенном для нее такте. Такие ситуации называются конфликтами.
Конфликты снижают реальную производительность конвейера, которая могла бы
быть достигнута в идеальном случае. Одним из типов конфликтов, с которыми
приходится иметь дело разработчикам высокопроизводительных процессоров, являются конфликты по управлению, которые возникают при конвейеризации
команд перехода и других команд, изменяющих значение счетчика команд.
Конфликты по управлению могут вызывать даже большие потери
производительности суперскалярного процессора, чем конфликты по данным. По
статистике среди команд управления, меняющих значение счетчика команд, преобладают команды условного перехода. Таким образом, снижение потерь от
условных переходов становится критически важным вопросом. Имеется несколько
методов сокращения приостановок конвейера, возникающих из-за задержек
выполнения условных переходов. В процессоре R10000 используются два
наиболее мощных метода динамической оптимизации выполнения условных
переходов: аппаратное прогнозирование направления условных переходов и
"выполнение по предположению" (speculation).
Устройство переходов процессора R10000 может декодировать и выполнять
только по одной команде перехода в каждом такте. Поскольку за каждой
командой перехода следует слот задержки, максимально могут быть
одновременно выбраны две команды перехода, но только одна более ранняя
команда перехода может декодироваться в данный момент времени. Во время
декодирования команд к каждой команде добавляется бит признака перехода.
Эти биты используются для пометки команд перехода в конвейере выборки
команд.
Направление условного перехода прогнозируется с помощью специальной памяти (branch history table) емкостью 512 строк, которая хранит историю выполнения переходов в прошлом. Обращение к этой таблице осуществляется с помощью адреса команды во время ее выборки. Двухбитовый код прогноза в этой памяти обновляется каждый раз, когда принято окончательное решение о направлении перехода. Моделирование показало, что точность двухбитовой схемы прогнозирования для тестового пакета программ SPEC составляет 87%.
Все команды, выбранные вслед за командой условного перехода, считаются выполняемыми по предположению (условно). Это означает, что в
момент их выборки заранее не известно, будет ли завершено их выполнение.
Процессор допускает предварительную обработку и прогнозирование направления
четырех команд условного перехода, которые могут разрешаться в произвольном
порядке. При этом для каждой выполняемой по предположению команды условного
перехода в специальный стек переходов записывается информация, необходимая
для восстановления состояния процессора в случае, если направление перехода
было предсказано неверно. Стек переходов имеет глубину в 4 элемента и
позволяет в случае необходимости быстро и эффективно (за один такт)
восстановить конвейер.
Структура очередей команд
Процессор R10000 содержит три очереди (буфера) команд (очередь
целочисленных команд, очередь команд плавающей точки и адресную очередь).
Эти три очереди осуществляют динамическую выдачу команд в соответствующие
исполнительные устройства. С каждой командой в очереди хранится тег
команды, который перемещается вместе с командой по ступеням конвейера.
Каждая очередь осуществляет динамическое планирование потока команд и может
определить моменты времени, когда становятся доступными операнды, необходимые для выполнения каждой команды. Кроме того, очередь определяет
порядок выполнения команд на основе анализа состояния соответствующих
исполнительных устройств. Как только ресурс оказывается свободным очередь
выдает команду в соответствующее исполнительное устройство.
Очередь целочисленных команд
Очередь целочисленных команд содержит 16 строк и выдает команды в два арифметико-логических устройства. Целочисленные команды поступают в свободные строки этой очереди, причем в каждом такте в нее могут записываться до 4 команд. Целочисленные команды остаются в очереди до тех пор, пока они не будут выданы в одно из АЛУ.
Очередь команд плавающей точки
Очередь команд плавающей точки также содержит 16 строк и выдает команды в исполнительные устройства сложения и умножения с плавающей точкой. Команды плавающей точки поступают в свободные строки очереди, причем в каждом такте в нее могут записываться до 4 команд. Команды остаются в очереди до тех пор, пока они не будут выданы в одно из исполнительных устройств. Очередь команд плавающей точки содержит также логику управления команд типа "умножить-сложить". Эта команда сначала направляется в устройство умножения, а затем прямо в устройство сложения.
Адресная очередь
Рекомендуем скачать другие рефераты по теме: республика реферат, решебники за 8 класс.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 | Следующая страница реферата