Регистровый файл
Регистровый файл (register file) — модуль микропроцессора (CPU), содержащий в себе реализацию регистров процессора. Современные регистровый файлы, используемые в СБИС обычно реализованы как многопортовый массив быстрой статической памяти SRAM. Такие массивы SRAM отличаются явным разделением портов чтения и записи, тогда как классическая многопортовая SRAM обычно позволяет как читать так и записывать через любой порт.
Система команд микропроцессора (архитектура) практически всегда определяет набор регистров, которые будут хранить данные для обработки функциональными устройствами чипа. В простейших процессорах такие архитектурные регистры отображаются один-в-один в физический регистровый файл. В более сложных ЦПУ используется переименование регистров (register renaming), которое позволяет динамически изменять соответствие между аппаратными и архитектурными регистрами во время исполнения.
Реализация
Массив
Базовая схема битовой ячейки: Состояние хранится в паре инверторов Чтение происходит через транзистор NMOS на битовую линию Данные записываются замыканием одной или другой стороны на землю через 2 nmos транзистора Итак: порт чтения требует один транзистор на каждую ячейку, порт записи требует 4 транзистора
Микроархитектура
Во многих реализациях регистровых файлов нет специальной защиты от попыток записи в одну и те же ячейку сразу из нескольких портов записи. Вместо этого, аппаратура планирования инструкций должна гарантировать что на каждом такте не более одной инструкции будет производить запись в любую ячейку. Если же запланировано несколько инструкций, пишущих в одну ячейку, то только одна из них должна иметь включенной линию "write enable" (разрешение записи).
Примечания
Ссылки
- Register File Design Considerations in Dynamically Scheduled Processors — Farkas, Jouppi, Chow — 1995 (obsolete?)
- Register file design considerations in dynamically scheduled processors — Farkas, Jouppi, Chow — 1995