Регистровый файл

Регистровый файл

Регистровый файл (register file) — модуль микропроцессора (CPU), содержащий в себе реализацию регистров процессора. Современные регистровый файлы, используемые в СБИС обычно реализованы как многопортовый массив быстрой статической памяти SRAM. Такие массивы SRAM отличаются явным разделением портов чтения и записи, тогда как классическая многопортовая SRAM обычно позволяет как читать так и записывать через любой порт.

Система команд микропроцессора (архитектура) практически всегда определяет набор регистров, которые будут хранить данные для обработки функциональными устройствами чипа. В простейших процессорах такие архитектурные регистры отображаются один-в-один в физический регистровый файл. В более сложных ЦПУ используется переименование регистров (register renaming), которое позволяет динамически изменять соответствие между аппаратными и архитектурными регистрами во время исполнения.

Содержание

Реализация

Regfile array.png

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

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

Например, регистровый файл в целочисленном АЛУ микропроцессора MIPS R8000, имеющий 9 портов чтения, 4 порта записи, содержащий 32 64-битных регистра и реализованный на техпроцессе 0,7 мкм, имеет такие размеры, что хорошо различим невооруженным глазом даже на расстоянии порядка 30 см.

Декодер

  • Декодер обычно разделён на предекодер и decoder proper.
  • Декодер является последовательностью элементов И (AND-gate), которые выставляют линии слов.
  • Для каждого порта чтения или записи требуется один декодер. К примеру, если файл имеет 4 порта чтения и 2 порта, в нем будет 6 линий слов в каждой ячейке памяти в массиве и 6 элементов И (AND-gate) на каждый ряд в декодере.

Массив

Типичный регистровый файл с 3 портами, в котором возможно одновременное чтение из 2 регистров и запись в 1 регистр, состоит из ячеек похожих на изображенную.

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

  • Состояние хранится в паре инверторов.
  • Чтение происходит через транзистор NMOS на битовую линию (транзистор открывается линией слов данного порта)
  • Данные записываются замыканием одной или другой стороны на землю через два NMOS транзистора.

Итак, каждый порт чтения требует один дополнительный транзистор на каждую ячейку, порт записи требует 4 транзистора.


Микроархитектура

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

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

Примечания

Ссылки

См. также


Wikimedia Foundation. 2010.

Смотреть что такое "Регистровый файл" в других словарях:

  • Файл — У этого термина существуют и другие значения, см. Файл (значения). Файл (англ. file)  блок информации на внешнем запоминающем устройстве компьютера, имеющий определённое логическое представление (начиная от простой последовательности… …   Википедия

  • Регистровое окно — Регистровый файл с четырьмя регистровыми окнами Регистровое окно  один из методов организации работы с регистрами процессора, целью которого является снижение накладных расходов н …   Википедия

  • NetBurst — (рабочее название P68) суперскалярная гиперконвейерная микроархитектура, разработанная компанией Intel и лежавшая в основе микропроцессоров Pentium 4, Pentium D, Celeron и Xeon. Содержание 1 История 2 …   Википедия

  • UltraSPARC — Процессор UltraSPARC UltraSPARC 64 битный микропроцессор, разработанный корпорацией Sun Microsystems и произведённый Texas Instruments, который использует …   Википедия

  • Внеочередное исполнение — (англ. Out of order execution)  парадигма, применяемая при разработке вычислительных устройств, с целью повышения производительности. Её особенность в том, что инструкции поступают в исполнительные модули не в порядке их следования, как …   Википедия

  • EPIC (архитектура микропроцессора) — У этого термина существуют и другие значения, см. EPIC. EPIC (англ. explicitly parallel instruction computing)  микропроцессорная архитектура с явным параллелизмом команд. Термин введён в 1997 году альянсом HP и Intel[1] для… …   Википедия

  • Кэш процессора — Кэш микропроцессора  кэш (сверхоперативная память), используемый микропроцессором компьютера для уменьшения среднего времени доступа к компьютерной памяти. Является одним из верхних уровней иерархии памяти[1] …   Википедия

  • Pentium 4 — <<   Pentium 4   >> Центральный процессор Производство …   Википедия

  • Willamette — <<   Pentium 4   >> Центральный процессор Производство: с 2000 по 2008 год Производитель: ЦП: 1300 3800 МГц Частота FSB …   Википедия

  • Иерархия памяти — Пирамида иерархии памяти. По левой грани обозначены размер и емкость, по центру  требование постоянного электропитания и длительность хранения, справа  пример памяти данного уровня, скорос …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»