~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 29A99B6AA2BFEB0518598C13D60A25D7__1718126340 ✰
Заголовок документа оригинал.:
✰ Register file - Wikipedia ✰
Заголовок документа перевод.:
✰ Регистрационный файл — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Register_file ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/29/d7/29a99b6aa2bfeb0518598c13d60a25d7.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/29/d7/29a99b6aa2bfeb0518598c13d60a25d7__translat.html ✰
Дата и время сохранения документа:
✰ 20.06.2024 18:46:05 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 11 June 2024, at 20:19 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Регистрационный файл — Википедия Jump to content

Зарегистрировать файл

Из Википедии, бесплатной энциклопедии

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

Современные файлы регистров на основе интегральных схем обычно реализуются с помощью быстрых статических ОЗУ с несколькими портами. Такие ОЗУ отличаются наличием выделенных портов чтения и записи, тогда как обычные многопортовые SRAM обычно читают и записывают через одни и те же порты. Банкинг регистров — это метод использования одного имени для доступа к нескольким различным физическим регистрам в зависимости от режима работы.

Переключение банка регистров [ править ]

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

Процессоры ARM имеют как банковские, так и небанкованные регистры. Хотя во всех режимах всегда используются одни и те же физические регистры для первых восьми регистров общего назначения, от R0 до R7, физический регистр, на который указывают объединенные регистры, от R8 до R14, зависит от рабочего режима, в котором находится процессор. [2] Примечательно, что режим быстрого запроса прерывания (FIQ) имеет собственный банк регистров для R8–R12, при этом архитектура также предоставляет частный указатель стека (R13) для каждого режима прерывания.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В линейке процессоров x86 типичный ЦП до 486 не имел отдельного файла регистров, поскольку все регистры общего назначения работали непосредственно с декодером, а стек push-уведомлений x87 располагался внутри самого блока операций с плавающей запятой. Начиная с Pentium , типичный процессор x86, совместимый с Pentium, интегрируется с одной копией однопортового файла архитектурных регистров, содержащего 6 регистров общего назначения, 4 регистра управления, 8 регистров отладки (два зарезервированных), 1 регистр указателя стека, 1 базовый регистр стека, 1 указатель инструкций, 1 регистр флагов и 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 по-прежнему имеется один двухпортовый файл регистров с плавающей запятой (8 записей MM/XMM), используемый тремя декодерами, а файл регистров FP не имеет вместе с ним файла теневого регистра, поскольку его файл теневого регистра архитектура не включала функции с плавающей запятой. В процессорах после P6 файлы архитектурных регистров являются внешними и располагаются в серверной части процессора после удаленного файла, в отличие от внутреннего файла регистров, расположенного во внутреннем ядре для буфера переименования/переупорядочения регистров. Однако в Core 2 он теперь размещен в блоке, называемом «таблицей псевдонимов регистров» (RAT), расположенном вместе с распределителем команд, но имеющем тот же размер регистра, что и при выходе из строя. Core 2 увеличил внутреннюю кольцевую шину до 24 байтов (позволяет декодировать более 3 инструкций) и расширил свой файл регистров с двухпортового (одно чтение/одна запись) до четырехпортового (два чтения/две записи), регистрация по-прежнему остается 8 записей в 32 бита и 32 байта (не включая 6 сегментных регистров и один указатель инструкций, поскольку к ним невозможно получить доступ в файле с помощью любого кода/инструкции) в общем размере файла и расширено до 16 записей в x64, всего 128 байт размер каждого файла. От Pentium M, так как у него увеличился порт конвейера и декодер, но они расположены с помощью таблицы распределителей, а не буфера кода. Его файл регистров FP XMM также увеличен до четырехпортового (2 чтения/2 записи), в регистре по-прежнему остается 8 записей в 32-битном режиме и расширено до 16 записей в режиме x64, а число по-прежнему остается 1, поскольку его архитектура файла теневого регистра не включая функции с плавающей запятой/SSE.

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

В линейке Atom была современная упрощенная версия P5. Он включает в себя отдельные копии общего файлового ресурса с потоком и декодером. Регистровый файл имеет двухпортовую конструкцию: 8/16 записей GPRS, 8/16 записей отладочного регистра и 8/16 записей кода состояния интегрированы в один и тот же файл. Однако он имеет 64-битный теневой регистр с восемью записями и 64-битный безымянный регистр с восемью записями, которые теперь отделены от основных GPR в отличие от исходной конструкции P5 и расположены после исполнительного устройства, а файл этих регистров является однопортовым. и не подвергать воздействию таких инструкций, как масштабированный файл теневого регистра, найденный в Core/Core2 (файл теневого регистра состоит из архитектурных регистров, а у Bonnell его не было из-за отсутствия «архитектуры файла теневого регистра»), однако файл можно использовать для целей переименования из-за из-за отсутствия внеочередного выполнения, обнаруженного в архитектуре Bonnell. Он также имел одну копию файла регистра с плавающей запятой XMM для каждого потока. Отличие от Nehalem заключается в том, что у 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 (на основе микроархитектуры NetBurst ), с другой стороны, не имеет файла регистров для своего декодера, поскольку в его структуре не существовало GPR x86 из-за введения физического унифицированного файла регистров переименования (аналогично к Sandy Bridge, но немного отличается из-за неспособности Pentium 4 использовать регистр перед присвоением имени) за попытку подменить файл архитектурного регистра и пропустить схему декодирования x86. Вместо этого он использует SSE для выполнения и хранения целых чисел до ALU и после результата, SSE2/SSE3/SSSE3 использует тот же механизм для своих целочисленных операций.

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

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

Переименование регистрации [ править ]

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

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

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

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

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

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

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

  1. ^ Wikibooks: Проектирование микропроцессора / Регистрационный файл # Банк реестров .
  2. ^ «Справочное руководство по архитектуре ARM» (PDF) . АРМ Лимитед. Июль 2005 года . Проверено 13 октября 2021 г.
  3. ^ Перейти обратно: а б Йохан Янссен. «Стратегии компилятора для архитектур, управляемых транспортом» . 2001. п. 169. п. 171-173.
  4. ^ «Энергоэффективные асимметрично перенесенные файлы регистров» Аниш Аггарвал и М. Франклин. 2003.

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

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 29A99B6AA2BFEB0518598C13D60A25D7__1718126340
URL1:https://en.wikipedia.org/wiki/Register_file
Заголовок, (Title) документа по адресу, URL1:
Register file - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)