В. О. Костенко Институт микропроцессорных вычислительных систем ран

Вид материалаДокументы

Содержание


Костенко В.О.
Подобный материал:
УДК 004.318

В.О. Костенко

Институт микропроцессорных вычислительных систем РАН

ПЕРЕИМЕНОВАНИЕ РЕГИСТРОВ В СУПЕРСКАЛЯРНОМ
МИКРОПРОЦЕССОРЕ АРХИТЕКТУРЫ SPARC


Для разработки отечественного суперскалярного микропроцессора архитектуры SPARC-V9 [1], действующего по принципу динамического планирования [2], а также обеспечивающего совместимость [3] с CPU Sun Ultra SPARC и Fujitsu SPARC64, необходимо произвести поиск пригодных к применению методов переименования регистров и выбрать из них метод, оптимальный для данной разработки. При этом необходимо учесть принятое решение о выполнении чтения готовых операндов команды из упорядочивающего буфера ROB и архитектурного регистрового файла ARF перед передачей этой команды в очередь ожидания неготовых операндов RS. Это решение (issue-bound operand fetch в CPU Эльбрус-2, AMD K8), по сравнению с альтернативным решением (dispatch-bound operand fetch в CPU Alpha 21264, Intel Core), хотя и приводит к увеличению площади CPU и уменьшению его тактовой частоты, но позволяет быстрее выполнять неправильно предсказанные переходы благодаря меньшему числу уровней конвейера и более простому алгоритму перезапуска выборки команд [4, 5].

Для распространенных суперскалярных CISC и RISC CPU известны два решения поставленной задачи, основанные, соответственно, на применении двух видов таблиц переименования RMT, действующих по принципу контекстно-адресуемой CAM или прямоадресуемой RAM памяти [4, 5]. Непосредственное применение любого из этих методов невозможно в связи с тем, что архитектура SPARC отличается от остальных RISC архитектур увеличенным (с 32 [2] до 128 [3]) количеством регистров общего назначения , организованных в виде 8 регистровых окон по 16 регистров в каждом.

Из всех современных CPU архитектуры SPARC, суперскалярным CPU, действующим по принципу динамического планирования, является только SPARC64 V фирмы Fujitsi [6]. К сожалению, использованный при разработке этого CPU метод переименования регистров не освещен в литературе.

В настоящей работе предложен метод переименования регистров, основанный на применении CAM-based RMT, дополненной указателем текущего окна CWP. Размер применяемой RMT равен количеству регистров в ROB и составляет в выполняемой разработке 32 регистра. Для быстрого восстановления состояния такой RMT в случае обнаружения неправильно предсказанного перехода можно использовать контрольные точки, размер каждой из которых равен 35 разрядам. Установлено, что в условиях проектирования RMT на основе библиотеки стандартных элементов, ассоциативный поиск незначительно медленнее прямого. Кроме того, результатом поиска в такой таблице переименования является позиционный адрес физического регистра ROB, непосредственно пригодный для немедленного чтения этого регистра, выполняемого в соответствии с выбранным методом issue-bound operand fetch.

В настоящей работе также выполнена оценка практической пригодности альтернативного решения, которое может быть основано на применении RAM-based RMT, дополненной CWP. Оказывается, что в предполагаемом альтернативном методе размер применяемой RMT должен быть не менее 3 регистровых окон или 64 регистров (что косвенно подтверждается решениями, принятыми в разработке [6], где применен двухуровневый ARF, и размер ARF первого уровня составляет 3 регистровых окна). Размер каждой из контрольных точек при этом составил бы 515 разрядов, что затрудняет применение соответствующего метода быстрого исполнения неправильно предсказанных переходов. Кроме того, результатом поиска в такой таблице переименования является двоичный адрес физического регистра в ROB, который сразу же после поиска необходимо декодировать для чтения этого регистра.

На основании проведенных исследований решено применить в отечественном суперскалярном микропроцессоре архитектуры SPARC-V9 предложенный в настоящей работе метод переименования регистров, основанный на контекстно-адресуемой таблице переименования, дополненной указателем текущего окна. Правильность принятого решения подтверждается предварительными оценками времени срабатывания различных уровней конвейера, а именно: уровня переименования, уровня чтения регистров операндов и уровня исполнения однотактовых арифметических команд. При анализе этих оценок оказалось, что выгоднее всего совместить первые два из указанных уровней конвейера, причем весь конвейер получается достаточно коротким и хорошо сбалансированным, что усиливает достоинства выбранного метода issue-bound operand fetch и увеличивает производительность разрабатываемого микропроцессора.

Литература

  1. The SPARC Architecture Manual Version 9 // Prentice-Hall, 1994
  2. Hennessy J., Patterson D. Computer Architecture: A Quantitative Approach, Third Edition // Morgan Kaufmann Publishers, 2003
  3. SPARC Joint Programming Specification (JPS1): Commonality // Sun Microsystems and Fujitsu Limited, 2002
  4. Sima D. The Design Space of Register Renaming Techniques // IEEE Micro, Vol. 20 No. 5, pp. 70-83, Sep/Oct 2000
  5. Wallace S., Bagherzadeh N. A Scalable Register File Architecture for Dynamically Scheduled Processors // Proceedings of International Conference on Parallel Architecture and Compilation Techniques, pp. 179-184, October 1996
  6. SPARC64 V Processor For UNIX Server // Fujitsu Limited, August 2004



РЕФЕРАТ

УДК 004.318

Костенко В.О. Переименование регистров в суперскалярном микропроцессоре архитектуры SPARC // Современные проблемы фундаментальных и прикладных наук – радиотехника и кибернетика: Сборник трудов 49-й научной конференции МФТИ, Т. Х / МФТИ – М.: 200Х. – С. Х−Х.

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

Библиография: 6 назв.