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

Поделись знанием:
Перейти к: навигация, поиск

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

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





Реализация

Традиционно регистровый файл реализуется как массив запоминающих ячеек, считываемый вертикально. Слова расположены в горизонтальных строках (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) на каждый ряд в декодере.

Массив

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

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

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


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

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

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

Напишите отзыв о статье "Регистровый файл"

Примечания

Ссылки

  • [citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.586 Register file design considerations in dynamically scheduled processors] — Farkas, Jouppi, Chow — 1995

См. также

Отрывок, характеризующий Регистровый файл

Он чувствовал, что от одного слова этого человека зависело то, чтобы вся громада эта (и он, связанный с ней, – ничтожная песчинка) пошла бы в огонь и в воду, на преступление, на смерть или на величайшее геройство, и потому то он не мог не трепетать и не замирать при виде этого приближающегося слова.
– Урра! Урра! Урра! – гремело со всех сторон, и один полк за другим принимал государя звуками генерал марша; потом Урра!… генерал марш и опять Урра! и Урра!! которые, всё усиливаясь и прибывая, сливались в оглушительный гул.
Пока не подъезжал еще государь, каждый полк в своей безмолвности и неподвижности казался безжизненным телом; только сравнивался с ним государь, полк оживлялся и гремел, присоединяясь к реву всей той линии, которую уже проехал государь. При страшном, оглушительном звуке этих голосов, посреди масс войска, неподвижных, как бы окаменевших в своих четвероугольниках, небрежно, но симметрично и, главное, свободно двигались сотни всадников свиты и впереди их два человека – императоры. На них то безраздельно было сосредоточено сдержанно страстное внимание всей этой массы людей.
Красивый, молодой император Александр, в конно гвардейском мундире, в треугольной шляпе, надетой с поля, своим приятным лицом и звучным, негромким голосом привлекал всю силу внимания.
Ростов стоял недалеко от трубачей и издалека своими зоркими глазами узнал государя и следил за его приближением. Когда государь приблизился на расстояние 20 ти шагов и Николай ясно, до всех подробностей, рассмотрел прекрасное, молодое и счастливое лицо императора, он испытал чувство нежности и восторга, подобного которому он еще не испытывал. Всё – всякая черта, всякое движение – казалось ему прелестно в государе.
Остановившись против Павлоградского полка, государь сказал что то по французски австрийскому императору и улыбнулся.
Увидав эту улыбку, Ростов сам невольно начал улыбаться и почувствовал еще сильнейший прилив любви к своему государю. Ему хотелось выказать чем нибудь свою любовь к государю. Он знал, что это невозможно, и ему хотелось плакать.
Государь вызвал полкового командира и сказал ему несколько слов.
«Боже мой! что бы со мной было, ежели бы ко мне обратился государь! – думал Ростов: – я бы умер от счастия».
Государь обратился и к офицерам:
– Всех, господа (каждое слово слышалось Ростову, как звук с неба), благодарю от всей души.
Как бы счастлив был Ростов, ежели бы мог теперь умереть за своего царя!
– Вы заслужили георгиевские знамена и будете их достойны.
«Только умереть, умереть за него!» думал Ростов.
Государь еще сказал что то, чего не расслышал Ростов, и солдаты, надсаживая свои груди, закричали: Урра! Ростов закричал тоже, пригнувшись к седлу, что было его сил, желая повредить себе этим криком, только чтобы выразить вполне свой восторг к государю.
Государь постоял несколько секунд против гусар, как будто он был в нерешимости.
«Как мог быть в нерешимости государь?» подумал Ростов, а потом даже и эта нерешительность показалась Ростову величественной и обворожительной, как и всё, что делал государь.
Нерешительность государя продолжалась одно мгновение. Нога государя, с узким, острым носком сапога, как носили в то время, дотронулась до паха энглизированной гнедой кобылы, на которой он ехал; рука государя в белой перчатке подобрала поводья, он тронулся, сопутствуемый беспорядочно заколыхавшимся морем адъютантов. Дальше и дальше отъезжал он, останавливаясь у других полков, и, наконец, только белый плюмаж его виднелся Ростову из за свиты, окружавшей императоров.
В числе господ свиты Ростов заметил и Болконского, лениво и распущенно сидящего на лошади. Ростову вспомнилась его вчерашняя ссора с ним и представился вопрос, следует – или не следует вызывать его. «Разумеется, не следует, – подумал теперь Ростов… – И стоит ли думать и говорить про это в такую минуту, как теперь? В минуту такого чувства любви, восторга и самоотвержения, что значат все наши ссоры и обиды!? Я всех люблю, всем прощаю теперь», думал Ростов.
Когда государь объехал почти все полки, войска стали проходить мимо его церемониальным маршем, и Ростов на вновь купленном у Денисова Бедуине проехал в замке своего эскадрона, т. е. один и совершенно на виду перед государем.
Не доезжая государя, Ростов, отличный ездок, два раза всадил шпоры своему Бедуину и довел его счастливо до того бешеного аллюра рыси, которою хаживал разгоряченный Бедуин. Подогнув пенящуюся морду к груди, отделив хвост и как будто летя на воздухе и не касаясь до земли, грациозно и высоко вскидывая и переменяя ноги, Бедуин, тоже чувствовавший на себе взгляд государя, прошел превосходно.
Сам Ростов, завалив назад ноги и подобрав живот и чувствуя себя одним куском с лошадью, с нахмуренным, но блаженным лицом, чортом , как говорил Денисов, проехал мимо государя.
– Молодцы павлоградцы! – проговорил государь.
«Боже мой! Как бы я счастлив был, если бы он велел мне сейчас броситься в огонь», подумал Ростов.
Когда смотр кончился, офицеры, вновь пришедшие и Кутузовские, стали сходиться группами и начали разговоры о наградах, об австрийцах и их мундирах, об их фронте, о Бонапарте и о том, как ему плохо придется теперь, особенно когда подойдет еще корпус Эссена, и Пруссия примет нашу сторону.
Но более всего во всех кружках говорили о государе Александре, передавали каждое его слово, движение и восторгались им.
Все только одного желали: под предводительством государя скорее итти против неприятеля. Под командою самого государя нельзя было не победить кого бы то ни было, так думали после смотра Ростов и большинство офицеров.
Все после смотра были уверены в победе больше, чем бы могли быть после двух выигранных сражений.


На другой день после смотра Борис, одевшись в лучший мундир и напутствуемый пожеланиями успеха от своего товарища Берга, поехал в Ольмюц к Болконскому, желая воспользоваться его лаской и устроить себе наилучшее положение, в особенности положение адъютанта при важном лице, казавшееся ему особенно заманчивым в армии. «Хорошо Ростову, которому отец присылает по 10 ти тысяч, рассуждать о том, как он никому не хочет кланяться и ни к кому не пойдет в лакеи; но мне, ничего не имеющему, кроме своей головы, надо сделать свою карьеру и не упускать случаев, а пользоваться ими».
В Ольмюце он не застал в этот день князя Андрея. Но вид Ольмюца, где стояла главная квартира, дипломатический корпус и жили оба императора с своими свитами – придворных, приближенных, только больше усилил его желание принадлежать к этому верховному миру.
Он никого не знал, и, несмотря на его щегольской гвардейский мундир, все эти высшие люди, сновавшие по улицам, в щегольских экипажах, плюмажах, лентах и орденах, придворные и военные, казалось, стояли так неизмеримо выше его, гвардейского офицерика, что не только не хотели, но и не могли признать его существование. В помещении главнокомандующего Кутузова, где он спросил Болконского, все эти адъютанты и даже денщики смотрели на него так, как будто желали внушить ему, что таких, как он, офицеров очень много сюда шляется и что они все уже очень надоели. Несмотря на это, или скорее вследствие этого, на другой день, 15 числа, он после обеда опять поехал в Ольмюц и, войдя в дом, занимаемый Кутузовым, спросил Болконского. Князь Андрей был дома, и Бориса провели в большую залу, в которой, вероятно, прежде танцовали, а теперь стояли пять кроватей, разнородная мебель: стол, стулья и клавикорды. Один адъютант, ближе к двери, в персидском халате, сидел за столом и писал. Другой, красный, толстый Несвицкий, лежал на постели, подложив руки под голову, и смеялся с присевшим к нему офицером. Третий играл на клавикордах венский вальс, четвертый лежал на этих клавикордах и подпевал ему. Болконского не было. Никто из этих господ, заметив Бориса, не изменил своего положения. Тот, который писал, и к которому обратился Борис, досадливо обернулся и сказал ему, что Болконский дежурный, и чтобы он шел налево в дверь, в приемную, коли ему нужно видеть его. Борис поблагодарил и пошел в приемную. В приемной было человек десять офицеров и генералов.