Введение в архитектуру компьютеров

Архитектура MIPS компании MIPS Technology


Архитектура MIPS была одной из первых RISC-архитектур, получившей признание со стороны промышленности. Она была анонсирована в 1986 г. Первоначально это была полностью 32-битовая архитектура, которая включала 32 регистра общего назначения длиною в 32 бита, 16 регистров плавающей точки и специальную пару регистров для хранения результатов выполнения операций целочисленного умножения и деления. В компьютерной промышленности широкую популярность приобрели 32-битовые процессоры R2000 и R3000, которые в течение достаточно длительного времени служили основой для построения рабочих станций и серверов компаний Silicon Graphics, Digital, Siemens Nixdorf и др.

На смену микропроцессорам семейства R3000 пришли новые 64-битовые микропроцессоры R4000 и R4400 (MIPS была первой в компьютерной промышленности компанией, выпустившей процессоры с 64-битовой архитектурой). Набор команд этих процессоров (спецификация MIPS II) был расширен командами загрузки и записи 64-разрядных чисел с плавающей точкой, командами вычисления квадратного корня с одинарной и двойной точностью, командами условных прерываний, а также атомарными операциями, необходимыми для поддержки мультипроцессорных конфигураций. В процессорах R4000 и R4400 реализованы 64-битовые шины данных и 64-битовые регистры. В процессорах реализован метод удвоения внутренней тактовой частоты.

Процессоры R2000 и R3000 имели стандартные пятиступенчатые конвейеры команд. В процессорах R4000 и R4400 применяются более длинные конвейеры (иногда их называют суперконвейерами). Количество ступеней в процессорах R4000 и R4400 увеличилось до восьми, что объясняется прежде всего увеличением тактовой частоты и необходимостью распределения логики для обеспечения заданной пропускной способности конвейера. Процессор R4000 может работать с тактовой частотой 50/100 МГц и обеспечивает уровень производительности в 58 SPECint92 и 61 SPECfp92. Процессор R4400 может работать на частоте 50/100 МГц, или 75/150 МГц, показывая уровень производительности 94 SPECint92 и 105 SPECfp92.


Процессоры R4000 имели внутреннюю кэш- память емкостью 16 Кб, разделенную на 8Кб кэш команд и 8Кб кэш данных. С точки зрения реализации кэш-памяти процессор R4400 имеет более развитые возможности. Он выпускается в трех модификациях: PC (Primary Cash) – имеет внутренние кэши команд и данных емкостью по 16 Кб. Процессор в такой конфигурации предназначен главным образом для дешевых моделей рабочих станций. SC (Secondary Cash) содержит логику управления кэш-памятью второго уровня. MC (Multiprocessor Cash) использует специальные алгоритмы обеспечения когерентности и согласованного состояния памяти для многопроцессорных конфигураций.

Компания MIPS объявила о создании своего нового суперскалярного процессора R10000, который в ближайшем будущем должен появиться на рынке. По заявлениям представителей MIPS Technology, R10000 обеспечивает пиковую производительность в 800 MIPS при работе с внутренней тактовой частотой 200 МГц за счет обеспечения выдачи для выполнения четырех команд в одном такте синхронизации. При этом он обеспечивает обмен данными с кэш-памятью второго уровня со скоростью 3,2 Гб/с.

Чтобы обеспечить столь высокий уровень производительности в процессоре R10000 реализованы многие последние достижения в области технологии и архитектуры процессоров. На рис. 4.7 показана блок-схема этого микропроцессора.

Кэш-память данных первого уровня процессора R10000 имеет емкость 32 Кб и организована в виде двух одинаковых банков размером по 16 Кб, что обеспечивает двухкратное расслоение при выполнении обращений к этой

кэш-памяти. Каждый банк представляет собой двухканальную множественно-ассоциативную кэш-память с размером строки (блока) в 32 байта. Кэш данных индексируется с помощью виртуального адреса и хранит теги физических адресов памяти. Такой метод индексации позволяет выбрать подмножество кэш-памяти в том же такте, в котором формируется виртуальный адрес. Однако для того, чтобы поддерживать когерентность с кэш-памятью второго уровня, в кэше первого уровня хранятся теги физических адресов памяти.



Интерфейс кэш- памяти второго уровня процессора R10000 поддерживает 128-битовую магистраль данных, которая может работать с тактовой частотой 200 МГц, обеспечивая скорость обмена 3.2 Гб/с. Все стандартные

синхронные сигналы управления статической памятью вырабатываются внутри процессора. Минимальный объем кэш-памяти второго уровня составляет 512 Кб, максимальный размер – 16 Мб. Размер строки этой кэш-памяти программируется и может составлять 64 или 128 байт.

Устройство переходов процессора может декодировать и выполнять одну команду перехода в каждом такте. Так как за каждой командой перехода следует слот задержки, максимально могут быть выбраны одновременно две команды перехода, но только одна более ранняя команда перехода может декодироваться в данный момент времени. Бит признака перехода добавляется к каждой команде во время декодирования команд. Эти биты используются для пометки команд перехода в конвейере выборки команд. Направление условного перехода прогнозируется с помощью специальной памяти, которая хранит историю выполнения переходов в прошлом. Двухбитовый код в этой памяти обновляется каждый раз, когда принято окончательное решение о направлении перехода. Все команды, выбранные вслед за командой условного перехода, считаются условными (спекулятивными). Это означает, что в момент их выборки заранее не известно, будет ли завершено их выполнение. Процессор допускает предварительное прогнозирование направления четырех команд условного перехода, которые могут разрешаться в произвольном порядке. Специальный стек переходов содержит строку на каждую выполняемую спекулятивно команду условного перехода. Каждая строка этого стека содержит информацию, необходимую для восстановления состояния процессора, если спекулятивные команды перехода были предсказаны неверно. Стек переходов позволяет быстро и эффективно восстановить конвейер, если прогноз направления перехода оказался неверным.



Процессор R10000 содержит три очереди (буфера) команд (очередь целочисленных команд, очередь команд плавающей точки и очередь адресных команд).


Эти три очереди осуществляют выдачу команд в динамике в соответствующие исполнительные устройства. С каждой командой в очереди хранится тег команды, который перемещается вместе с командой по ступеням конвейера. Каждая очередь осуществляет динамическое планирование потока команд и может определить моменты времени, когда становятся доступными операнды, необходимые для каждой команды. Кроме того, очередь определяет порядок выполнения команд на основе анализа состояния соответствующих исполнительных устройств. Как только ресурс оказывается свободным, очередь выдает команду в соответствующее исполнительное устройство.

Зависимости между командами могут привести к деградации производительности процессора. Чтобы этого избежать, применяется специальная методика, которая называется методикой переименования регистров. Ее основная задача – определение зависимостей между командами и обеспечение точного адреса прерывания программы. В процессе переименования регистров каждый логический регистр, указанный в команде, заменяется физическим регистром на основе таблицы распределения регистров. Такое переименование происходит для каждого регистра результата команды. Поэтому, когда команда записывает в логический регистр новое значение, этот логический регистр переименовывается и будет использовать имя нового физического регистра. Однако его предыдущее значение оказывается сохраненным в старом физическом регистре. Сохранение значений старого регистра позволяет обрабатывать точные прерывания. В то время, как все команды переименовываются, логические номера их регистров сравниваются для определения зависимостей между четырьмя командами, декодированными в одном и том же такте.

В процессоре R10000 имеются шесть полностью независимых исполнительных устройств: два целочисленных АЛУ, два основных устройства плавающей точки и два вторичных устройства плавающей точки, которые работают с длинными операциями, такими как деление и вычисление квадратного корня.

Устройство загрузки-записи содержит очередь адресов, устройство вычисления адреса, устройство преобразования виртуальных адресов в физические (TLB), стек адресов, буфер записи и кэш-память данных первого уровня.


Устройство загрузки- записи выполняет команды загрузки, записи, предварительной выборки, а также команды работы с кэш-памятью.

Внешняя кэш-память второго уровня управляется с помощью внутреннего контроллера, который имеет специальный порт для подсоединения кэш-памяти. Специальная магистраль данных шириной в 128 бит осуществляет пересылки данных на тактовой частоте процессора 200 МГц. В процессоре имеется также 64-битовая шина данных системного интерфейса. Кэш-память второго уровня имеет двухканальную множественно-ассоциативную организацию. Максимальный размер – 16 Мб. Минимальный размер 512 Кб. Пересылки осуществляются 128-битовыми порциями (четыре 32-битовых слова).

Системный интерфейс процессора R10000 работает в качестве шлюза между самим процессором и связанным с ним кэшем второго уровня и остальной системой. Системный интерфейс работает с тактовой частотой внешней синхронизации. Возможно программирование работы системного интерфейса на тактовой частоте 200, 133, 100, 80, 67, 57 и 50 МГц.

Процессор поддерживает протокол расщепления транзакций, позволяющий осуществлять выдачу очередных запросов процессором или внешним абонентом шины, не дожидаясь ответа на предыдущий запрос. Максимально поддерживается до четырех одновременных транзакций на шине.

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

Второй способ предназначен для достижения максимальной производительности при минимальных затратах. Он подразумевает использование от двух до четырех процессоров, объединенных шиной Claster Bus. В этом случае необходим только один внешний интерфейс для взаимодействия с другими ресурсами системы.


Содержание раздела