Процессоры нового поколения и перспективы их развития — страница 10

  • Просмотров 3515
  • Скачиваний 318
  • Размер файла 44
    Кб

команд. Если же допущена ошибка (переход был предсказан, но не прои- зошел, или было предсказано отсутствие перехода, а в действитель- ности он состоялся), то устройство выполнения переходов изменяет статус всех микрокоманд, засланных в пул команд после команды пе- рехода, чтобы убрать их из пула команд. Правильный адрес перехода направляется в буфер переходов, который перезапускает весь конве- йер с нового адреса.  2Устройство

отката Структура устройства отката изображена на рисунке 5. Устройство отката также проверяет статус микрокоманд в пуле команд: оно ищет микрокоманды, которые уже выполнены и могут быть удалены из пула. Именно при удалении микрокоманды результаты ее выполнения, хранящиеся в пуле команд, реально изменяют состояние вычислительной системы, например, происходит запись в регистры. Устройство отката должно не только обнаруживать

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

считывает пул команд и отыскивает готовые к откату микро- команды; затем оно определяет, какие из этих микрокоманд могут быть удалены из пула в соответствии с исходным порядком команд в программе. Во втором такте результаты отката записываются в пул команд и в регистровый файл отката. Устройство отката может обра- ботать три микрокоманды за такт.  2Интерфейс шины Структура интерфейса шины изображена на рисунке 6. Есть два типа

обращений к памяти: чтение из памяти в регистр и запись из регистра в память. При чтении из памяти должны быть заданы адрес памяти, размер блока считываемых данных и регистр-назначение. Команда чтения ко- дируется одной микрокомандой. При записи надо задать адрес памяти, размер блока записывае- мых данных и сами данные. Поэтому команда записи кодируется двумя микрокомандами: первая генерирует адрес, вторая готовит данные. Эти

микрокоманды планируются независимо и могут выполняться па- раллельно; они могут переупорядочиваться в буфере записи. Запись в память никогда не выполняется опережающим образом, так как нет эффективного способа организации отката в случае не- верного предсказания. Разные команды записи никогда не переупоря- дочиваются друг относительно друга. Буфер записи инициирует за- пись, только когда сформированы и адрес, и данные, и нет