Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Регистровый файл представляет собой массив регистров процессора в центральный процессор (ЦП). Современные регистровые файлы на основе интегральных схем обычно реализуются в виде быстрых статических ОЗУ с несколькими портами. Такие RAM отличаются наличием выделенных портов для чтения и записи, тогда как обычные многопортовые SRAM обычно читают и записывают через одни и те же порты.

Архитектура набора команд ЦП почти всегда определяет набор регистров, которые используются для передачи данных между памятью и функциональными блоками на кристалле. В более простых ЦП эти архитектурные регистры однозначно соответствуют записям в файле физических регистров (PRF) в ЦП. Более сложные процессоры используют переименование регистров , так что отображение того, какая физическая запись хранит конкретный архитектурный регистр, динамически изменяется во время выполнения. Регистровый файл является частью архитектуры и виден программисту, в отличие от концепции прозрачного кэша .

Смена банка регистров [ править ]

Файлы регистров могут быть объединены в банки регистров. [1] Некоторые процессоры имеют несколько банков регистров.

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

MODCOMP и позже 8051-совместимые процессоры используют биты в слове состояния программы для выбора текущего активного банка регистров.

Реализация [ править ]

Regfile array.png

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

Файлы регистров имеют одну строку слов на запись на порт, одну строку битов на бит ширины на порт чтения и две строки на бит ширины на порт записи. Каждая битовая ячейка также имеет Vdd и Vss. Следовательно, площадь шага проводов увеличивается пропорционально квадрату количества портов, а площадь транзистора увеличивается линейно. [2] В какой-то момент может быть меньше и / или быстрее иметь несколько избыточных файлов регистров с меньшим количеством портов чтения, чем один файл регистров со всеми портами чтения. MIPS R8000 «с целым числом единица, например, имела 9 чтения 4 порта записи 32 входа 64-битный файл регистры , реализованный в процессе 0,7 мкм, который может быть виден при взгляде на чипе от длины руки.

Два популярных подхода к разделению регистров на несколько файлов регистров - это конфигурация файла распределенных регистров и конфигурация файла секционированных регистров. [2]

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

Разрядность регистрового файла в битах обычно равна количеству бит в размере слова процессора . Иногда он немного шире, чтобы добавить к каждому регистру «лишние» биты, такие как бит яда. Если ширина слова данных отличается от ширины адреса - или в некоторых случаях, например, 68000 , даже если они имеют одинаковую ширину - регистры адреса находятся в отдельном файле регистров, чем регистры данных.

Декодер [ править ]

  • Декодер часто разбивается на предварительный декодер и собственно декодер.
  • Декодер представляет собой серию логических элементов И, управляющих строками слов.
  • На каждый порт чтения или записи приходится один декодер. Если массив имеет четыре порта чтения и два порта записи, например, он имеет 6 строк слов на битовую ячейку в массиве и шесть логических элементов И на строку в декодере. Обратите внимание, что декодер должен быть согласован по высоте с массивом, что заставляет эти логические элементы И быть широкими и короткими.

Массив [ править ]

Типичный регистровый файл - «трехпортовый», способный читать из 2 регистров и записывать в 1 регистр одновременно - состоит из битовых ячеек, подобных этой.

Базовая схема для битовой ячейки:

  • Состояние хранится в паре инверторов.
  • Данные считываются транзистором nmos в разрядную линию.
  • Данные записываются путем замыкания одной или другой стороны на землю через стек из двух НМО.
  • Итак: порты чтения занимают один транзистор на битовую ячейку, порты записи - четыре.

Возможны многие оптимизации:

  • Совместное использование линий между ячейками, например, Vdd и Vss.
  • Битовые линии чтения часто предварительно заряжаются до уровня между Vdd и Vss.
  • Считанные битовые линии часто колеблются лишь на небольшую часть пути до Vdd или Vss. Усилитель считывания преобразует этот сигнал с небольшим размахом в полный логический уровень. Небольшие колебательные сигналы быстрее, потому что разрядная линия имеет небольшой привод, но большую паразитную емкость.
  • Битовые линии записи могут быть скручены так, чтобы они одинаково соединялись с соседними битовыми линиями чтения. Поскольку битовые линии записи идут полным ходом, они могут вызывать значительные нарушения в битовых линиях чтения.
  • Если Vdd является горизонтальной линией, он может быть выключен еще одним декодером, если какой-либо из портов записи записывает эту строку в течение этого цикла. Эта оптимизация увеличивает скорость записи.
  • Методы, которые уменьшают энергию, используемую файлами регистров, полезны в маломощной электронике [3]

Микроархитектура [ править ]

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

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

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

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

Альфа 21264 (EV6), например, был первый большой микро-архитектуры для реализации «Shadow регистровый файл Архитектура». Он имел две копии файла целочисленных регистров и две копии регистра с плавающей запятой, которые располагались во внешнем интерфейсе (будущий и масштабированный файл, каждый из которых содержит 2 порта чтения и 2 порта записи), и потребовался дополнительный цикл для передачи данных между ними во время переключатель контекста. Логика задачи попыталась уменьшить количество операций, пересылающих данные между ними, и значительно улучшила целочисленную производительность и помогла уменьшить влияние ограниченного количества GPR на суперскалярное и спекулятивное выполнение. Позднее дизайн был адаптирован SPARC , MIPS и некоторыми более поздними реализациями x86.

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

SPARC использует «Shadow Регистрация файла Архитектура» , а также для ее высокой конечной линии. Он имел до 4 копий файлов целочисленных регистров (будущие, устаревшие, масштабированные, поцарапанные, каждый из которых содержал 7 портов чтения и 4 записи) и 2 копии файла регистров с плавающей запятой. Однако, в отличие от Alpha и x86, они расположены в бэкэнде в качестве удаляемого модуля сразу после его Out of Order Unit и переименовывают файлы регистров и не загружают инструкции на этапе выборки и декодирования инструкций, а переключение контекста в этой конструкции не требуется.

IBM использует тот же механизм, что и многие основные микропроцессоры, глубоко объединяя регистровый файл с декодером, но его регистровый файл работает независимо со стороны декодера и не требует переключения контекста, что отличается от Alpha и x86. большая часть его регистрового файла служит не только для специального декодера, но и до уровня потока. Например, POWER8 имеет до 8 декодеров инструкций, но до 32 файлов регистров по 32 регистра общего назначения в каждом (4 порта чтения и 4 порта записи), чтобы облегчить одновременную многопоточность , при этом его инструкции не могут использоваться в других файлах регистров (отсутствие переключения контекста.).

В линейке процессоров x86 типичный ЦП до 486 не имел отдельного файла регистров, так как все регистры общего назначения напрямую работали с его декодером, а стек push x87 располагался внутри самого модуля с плавающей запятой. Начиная с Pentium , типичный Pentium-совместимый процессор x86 интегрирован с одной копией однопортового архитектурного регистрового файла, содержащего 8 архитектурных регистров, 8 управляющих регистров, 8 отладочных регистров, 8 регистров кода состояния, 8 безымянных регистров, [ необходимы пояснения ] один указатель инструкции, один регистр флага и 6 сегментных регистров в одном файле.

По умолчанию одна копия сдвигаемого стека 8 x87 FP, регистр MMX виртуально моделировался из стека x87 и требовал регистр x86 для предоставления инструкций MMX и псевдонимов для существования стека. На P6 команда может независимо храниться и выполняться параллельно на ранних этапах конвейера перед декодированием в микрооперации и переименованием при выполнении вне очереди . Начиная с P6, всем файлам регистров не требуется дополнительный цикл для распространения данных, файлы регистров, такие как архитектурные файлы и файлы с плавающей запятой, расположены между буфером кода и декодерами, называемыми «буфером вывода из эксплуатации», буфером переупорядочения и OoOE, и подключены к кольцевой шине (16 байтов). Сам регистровый файл по-прежнему остается одним регистровым файлом x86 и одним стеком x87, и оба служат для хранения данных на пенсии. Его регистровый файл x86 увеличен до двухпортового, чтобы увеличить пропускную способность для хранения результатов. Такие регистры, как отладка / код условия / управление / безымянный / флаг, были удалены из основного файла регистров и помещены в отдельные файлы между ПЗУ микрооператора и секвенсором команд. Только недоступные регистры, такие как сегментный регистр, теперь отделены от файла регистров общего назначения (кроме указателя команд);теперь они расположены между планировщиком и распределителем инструкций, чтобы облегчить переименование регистров и выполнение вне очереди. Стек x87 был позже объединен с файлом регистров с плавающей запятой после того, как 128-битный регистр XMM дебютировал в Pentium III, но регистровый файл XMM по-прежнему расположен отдельно от файлов целочисленных регистров x86.

Более поздние реализации P6 (Pentium M, Yonah) представили «Архитектуру файла теневого регистра», которая расширена до 2 копий двухпортового целочисленного архитектурного регистрового файла и состоит с переключением контекста (между будущим и удаленным файлом и масштабированным файлом с использованием того же трюка, который использовался между целыми и плавающими точка). Это было сделано для того, чтобы решить узкое место в регистрах, которое существует в архитектуре x86 после введения микроопераций, но у него все еще есть 8 записей 32-битных архитектурных регистров, общая емкость которых составляет 32 байта на файл (регистр сегмента и указатель команд остаются в файле. , хотя они недоступны для программы) как спекулятивный файл. Второй файл служит файлом масштабированного теневого регистра, который без переключения контекста масштабированный файл не может хранить некоторые инструкции независимо.Некоторые инструкции из SSE2 / SSE3 / SSSE3 требуют этой функции для целочисленных операций, например, такие инструкции, как PSHUFB, PMADDUBSW, PHSUBW, PHSUBD, PHSUBSW, PHADDW, PHADDD, PHADDSW, потребуют загрузки EAX / EBX / ECX / EDX из обоих регистровых файлов, хотя процессор x86 редко использовал другой регистровый файл с той же инструкцией; большую часть времени второй файл обслуживается как файл с уменьшенным масштабом. Архитектура Pentium M по-прежнему остается одним двухпортовым регистровым файлом FP ​​(8 записей MM / XMM), совместно используемым с тремя декодерами, а регистр FP не имеет файла теневого регистра с ним, поскольку его архитектура файла теневого регистра не включала функцию с плавающей запятой. Процессор после P6, файл архитектурного регистра являются внешними и находятся в бэкэнде процессора после вывода из эксплуатации,напротив внутреннего регистрового файла, который находится во внутреннем ядре для буфера переименования / переупорядочения регистров. Однако в Core 2 он теперь находится в блоке, называемом RAT «таблица псевдонимов регистров», расположенном с распределителем инструкций, но имеет тот же размер регистра, что и при выводе из эксплуатации.Ядро 2увеличил внутреннюю кольцевую шину до 24 байтов (позволяет декодировать более 3 инструкций) и расширил свой регистровый файл с двухпортового (одно чтение / одна запись) до четырехпортового (два чтения / две записи), регистр по-прежнему остается 8 записей в 32 бита и 32 байта (не включая 6-сегментный регистр и один указатель инструкций, поскольку к ним нельзя получить доступ в файле с помощью какого-либо кода / инструкции) в общем размере файла и расширен до 16 записей в x64, что дает общий размер 128 байтов на файл. От Pentium M, поскольку его конвейерный порт и декодер увеличились, но они расположены с таблицей распределения вместо буфера кода. Его регистровый файл FP XMM также увеличен до четырехпортового (2 чтения / 2 записи),register по-прежнему сохраняет 8 записей в 32-битном режиме и расширяется до 16 записей в режиме x64, а число по-прежнему остается 1, поскольку его архитектура файла теневого регистра не включает функции с плавающей запятой / SSE.

В более поздних реализациях x86, таких как Nehalem и более поздние процессоры, регистры как целых чисел, так и регистры с плавающей запятой теперь включены в унифицированный восьмипортированный (шесть для чтения и две записи) файл регистров общего назначения (8 + 8 в 32-битных и 16 + 16 в x64 на файл), в то время как регистровый файл расширен до 2 за счет улучшенной «Архитектуры файлов теневого регистра», наиболее предпочтительной для выполнения гиперпоточности, и каждый поток использует независимые файлы регистров для своего декодера. Позже Sandy Bridge и последующие заменили таблицу теневых регистров и архитектурные регистры гораздо большим и еще более продвинутым файлом физических регистров перед декодированием в буфер переупорядочения. Пробежал по тому Сэнди-Бридж и дальше, больше не имеют архитектурного реестра.

На атомеline была современной упрощенной версией P5. Он включает отдельные копии общего файлового ресурса регистров с потоком и декодером. Регистровый файл имеет двухпортовый дизайн, 8/16 записей GPRS, 8/16 записей отладочного регистра и 8/16 записей кода состояния интегрированы в один и тот же файл. Однако он имеет 64-битный теневой регистр с восемью записями и 64-битный безымянный регистр с восемью записями, которые теперь отделены от основных GPR, в отличие от оригинальной конструкции P5, и расположены после исполнительного блока, а файл этих регистров является однопортовым и не подвергать воздействию инструкций, таких как масштабированный файл теневого регистра, найденный на Core / Core2 (файл теневого регистра состоит из архитектурных регистров, а у Боннелла не было из-за отсутствия «Архитектуры файла теневого регистра»),однако файл можно использовать для переименования из-за отсутствия неупорядоченного выполнения, обнаруженного в архитектуре Bonnell. У него также была одна копия файла регистров с плавающей запятой XMM для каждого потока. Отличие отNehalem - это Bonnell, у них нет единого регистрового файла и нет специального регистрового файла для его гиперпоточности. Вместо этого Bonnell использует отдельный регистр переименования для своего потока, несмотря на то, что он исправен. Подобно Bonnell, Larrabee и Xeon Phi также имеют только по одному целочисленному регистровому файлу общего назначения, но Larrabee имеет до 16 файлов регистров XMM (8 записей на файл), а Xeon Phi имеет до 128 файлов регистров AVX-512. , каждый из которых содержит 32 512-битных регистра ZMM для хранения векторных инструкций, размер которых может достигать размера кэша L2.

Есть некоторые другие линейки Intel x86, которые не имеют регистрового файла во внутреннем дизайне, Geode GX и Vortex86 и многие встроенные процессоры, которые не совместимы с Pentium или не перепроектированы ранними процессорами 80x86. Поэтому у большинства из них нет регистрового файла для своих декодеров, но их георадары используются индивидуально. Pentium 4, с другой стороны, у него нет регистрового файла для своего декодера, поскольку его x86 GPR не существовали в его структуре из-за введения физического унифицированного файла регистров переименования (похожего на Sandy Bridge, но немного другого из-за невозможность Pentium 4 использовать регистр перед присвоением имени) для попытки заменить файл архитектурного регистра и пропустить схему декодирования x86. Вместо этого он использует SSE для целочисленного выполнения и хранения перед ALU и после результата, SSE2 / SSE3 / SSSE3 также используют тот же механизм для своей целочисленной операции.

Ранний дизайн AMD, такой как K6, не имеет регистрового файла, как Intel, и не поддерживает «архитектуру теневого регистрового файла», поскольку в нем отсутствуют переключение контекста и обходной инвертор, которые необходимы для правильной работы регистрового файла. Вместо этого они используют отдельные GPR, которые напрямую связываются с таблицей регистров переименования для своего ЦП OoOE с выделенным целочисленным декодером и плавающим декодером. Механизм аналогичен линейке процессоров Intel до Pentium. Например, K6процессор имеет четыре int (один временный файл регистров с восьмью записями + один будущий файл регистров с восемью записями + один выбранный файл регистров с восемью записями + безымянный файл регистров с восемью записями) и два файла регистров переименования FP (два файла с восемью записями x87). ST файл, один идет fadd, а другой идет fmov), которые напрямую связаны с его x86 EAX для целочисленного переименования и регистром XMM0 для переименования с плавающей запятой, но позже Athlon включил "теневой регистр" в свой интерфейс, он масштабируется до 40 записей унифицированный файл регистров поскольку для целочисленной операции перед декодированием регистровый файл содержит 8 записей рабочего регистра + 16 будущих регистров GPR + 16 безымянных регистровых файлов GPR. В более поздних разработках AMD отказалась от конструкции теневого регистра и отдавала предпочтение архитектуре K6 с индивидуальным дизайном прямой связи георадаров.НравитьсяPhenom , у него есть три файла регистров int и два файла регистров SSE, которые находятся в файле физического регистра, напрямую связанном с GPR. Однако на Bulldozer он масштабируется до одного целого числа + одной плавающей запятой.. Подобно ранним разработкам AMD, большинство производителей x86, таких как Cyrix, VIA, DM&P и SIS, также использовали тот же механизм, что приводило к отсутствию целочисленной производительности без переименования регистров для их упорядоченных процессоров. Таким компаниям, как Cyrix и AMD, пришлось увеличить размер кеш-памяти в надежде уменьшить узкое место. Целочисленная операция AMD SSE работает иначе, чем Core 2 и Pentium 4; он использует свой отдельный целочисленный регистр переименования для загрузки значения непосредственно перед этапом декодирования. Хотя теоретически для этого потребуется только более короткий конвейер, чем реализация SSE Intel, но, как правило, стоимость прогнозирования ветвлений намного выше, а частота пропущенных переходов выше, чем у Intel, и для выполнения инструкции SSE потребуется не менее двух циклов независимо от инструкция широкая,поскольку ранние реализации AMD не могли выполнять одновременно FP и Int в наборе инструкций SSE, как это делала реализация Intel.

В отличие от Alpha , Sparc и MIPS, которые позволяют загружать / извлекать только один файл регистров за один раз; для достижения супермасштабирования потребуется несколько файлов регистров. ARMпроцессор, с другой стороны, не интегрирует несколько файлов регистров для загрузки / выборки инструкций. ARM GPR не имеют специального назначения для набора команд (ARM ISA не требует накопителя, индекса и стека / базовых точек. Регистры не имеют накопителя, а базовая / стековая точка может использоваться только в режиме большого пальца). Любые GPR могут распространять и хранить несколько инструкций независимо в меньшем размере кода, который достаточно мал, чтобы уместиться в одном регистре, а его архитектурный регистр действует как таблица и используется для всех декодеров / инструкций с простым переключением банков между декодерами. Основное различие между ARM и другими проектами заключается в том, что ARM позволяет работать с одним и тем же регистром общего назначения с быстрым переключением банка без необходимости в дополнительном файле регистра в суперскалярном режиме.Несмотря на то, что x86 использует тот же механизм с ARM, что его GPR могут хранить любые данные по отдельности, x86 столкнется с зависимостью данных, если будет сохранено более трех несвязанных инструкций, поскольку его GPR на файл слишком малы (восемь в 32-битном режиме и 16 в 64-битный, по сравнению с ARM 13 в 32-битном и 31 в 64-битном) для данных, и невозможно иметь суперскаляр без нескольких файлов регистров для подачи в его декодер (код x86 большой и сложный по сравнению с ARM). Потому что большинство интерфейсов x86 стали намного больше и потребляют больше энергии, чем процессор ARM, чтобы быть конкурентоспособными (пример: Pentium M & Core 2 Duo, Bay Trail). Некоторые сторонние процессоры, эквивалентные x86, даже перестали конкурировать с ARM из-за отсутствия специальной архитектуры регистрового файла. В частности, для AMD,Cyrix и VIA, которые не могут обеспечить приемлемую производительность без переименования регистров и выполнения вне очереди, в результате чего только Intel Atom остается единственным исправным ядром процессора x86 в мобильной конкуренции. Так было до тех пор, пока процессор Nehalem x86 не объединил свои целочисленные регистры и регистры с плавающей запятой в один файл, а также не представил большую таблицу физических регистров и расширенную таблицу распределителя во внешнем интерфейсе перед переименованием во внутреннем ядре, вышедшем из строя. .и введение большой таблицы физических регистров и расширенной таблицы распределения во внешнем интерфейсе перед переименованием во внутреннем ядре с нарушением порядка.и введение большой таблицы физических регистров и расширенной таблицы распределения во внешнем интерфейсе перед переименованием во внутреннем ядре с нарушением порядка.

Зарегистрируйте переименование [ править ]

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

Зарегистрируйте окна [ править ]

В SPARC определяет ISA регистр окон , в которых 5-битных архитектурах имен регистров фактически точку в окно на гораздо большем регистровый файл, с сотнями записей. Реализация многопортовых файлов регистров с сотнями записей требует большой площади. При перемещении окно регистров сдвигается на 16 регистров, так что каждое имя архитектурного регистра может относиться только к небольшому количеству регистров в большем массиве, например, архитектурный регистр r20 может относиться только к физическим регистрам # 20, # 36, # 52, # 68, # 84, # 100, # 116, если в физическом файле всего семь окон.

Для экономии места в некоторых реализациях SPARC реализован регистровый файл с 32 записями, в котором каждая ячейка имеет семь «битов». Только один из них доступен для чтения и записи через внешние порты, но содержимое битов можно менять. Вращение выполняет за один цикл перемещение окна регистра. Поскольку большинство проводов, выполняющих перемещение состояний, являются локальными, огромная полоса пропускания возможна при небольшой мощности.

Этот же метод используется в файле отображения переименования регистров R10000 , в котором хранится 6-битный номер виртуального регистра для каждого из физических регистров. В файле переименования состояние переименования задается контрольной точкой всякий раз, когда выполняется переход, так что, когда обнаруживается, что ветвление неверно предсказано, старое состояние переименования может быть восстановлено за один цикл. (См. Переименование реестра .)

См. Также [ править ]

  • Сумма адресованного декодера

Ссылки [ править ]

  1. ^ Викиучебники: Проектирование микропроцессоров / Зарегистрировать файл # Регистрировать банк .
  2. ^ а б Йохан Янссен. «Стратегии компиляции для архитектур, запускаемых транспортом» . 2001. с. 169. стр. 171-173.
  3. ^ "Энергосберегающие файлы регистров с асимметричным переносом " Аниш Аггарвал и М. Франклин. 2003 г.

Внешние ссылки [ править ]

  • Зарегистрируйте особенности дизайна файлов в динамически планируемых процессорах - Farkas, Jouppi , Chow - 1995