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

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая A5b (обсуждение | вклад) в 20:48, 8 июня 2010. Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

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

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

Реализация

Массив

Типичный регистровый файл с 3 портами. Одновременно возможно чтение из 2 регистров и запись в 1 регистр. is made of bit cells like this one.

Базовая схема битовой ячейки: Состояние хранится в паре инверторов Чтение происходит через транзистор NMOS на битовую линию Данные записываются замыканием одной или другой стороны на землю через 2 nmos транзистора Итак: порт чтения требует один транзистор на каждую ячейку, порт записи требует 4 транзистора

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

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


Примечания

Ссылки

См. также