кой. В рассмотренных выше примерах предполагалось, что одноименные фазы различных команд имеют одина ковую длительность. На самом деле, это далеко не так. Во-первых, различные операции, например сложение и деление, требуют различного времени для своего испол нения. Во-вторых, некоторые команды вообще не требу ют выборки из памяти операнда. К ним относятся, в ча стности, все операции над содержимым аккумулятора (сдвиг, взятие обратного кода и т. п.). В-третьих, часть команд может быть выполнена без обращения к арифме тическому устройству (загрузка из памяти аккумулято ра, индексных регистров и др.). Наконец, при использова нии косвенной адресации требуется более чем один цикл памяти для чтения операнда.
Для организации совмещения операций при макси мальном снижении простоев оборудования, вызванных различием в длительности фаз операций, в некоторых больших вычислительных системах вводят в состав про цессора специальное опережающее устройство, представ ляющее собой, по существу, быстродействующую специа лизированную память с несколькими уровнями запоми нания. Каждый уровень опережения содержит набор регистров, способных хранить код операции, операнд данной операции, ранее прочитанный из памяти, а также некоторые другие указатели особенностей операции и состояния данного уровня опережения. Кроме этой аппа ратуры, опережающее устройство имеет также несколько счетчиков, указывающих:
1) какой уровень опережения свободен в данный мо мент и может принять команду, подлежащую выполне нию в будущем, и ее операнд;
2)какой уровень опережения готов к выдаче своего содержимого в арифметическое устройство для выполне ния операции;
3)какой уровень опережения содержит результат опе рации, который должен быть послан в память для запо минания, и др.
Оставляя в стороне некоторые важные для системы опережения вопросы, особенно связанные с нарушения ми последовательного обращения к командам (переходы, прерывания), можно представить себе процесс работы опережающего устройства следующим образом.
Устройство управления процессора непрерывно вы бирает из памяти команды, производит индексацию ад