Конвейер команд
Идея конвейера команд была предложена в 1956 году академиком С. А. Лебедевым. Как известно, цикл команды представляет собой последовательность этапов. Возложив реализацию каждого этапа на самостоятельное устройство, и последовательно соединив устройства, мы получим классическую схему конвейера команд. Для иллюстрации рассмотрим конвейер с шестью ступенями, на котором выполняются девять команд. Выделим в цикле команды шесть этапов:
1. Выборка команды (ВК). Чтение очередной команды из памяти и занесение ее в регистр команды. 2. Декодирование команды (ДК). Определение кода операции и способов адресации операндов. 3. Вычисление адресов операндов (ВА). Вычисление исполнительных адресов каждого из операндов в соответствии с указанным в команде способом их адресации. 4. Выборка операндов (ВО). Извлечение операндов из памяти. Эта операция не нужна для операндов, находящихся в регистрах. 5. Исполнение команды (ИК). Исполнение указанной операции. 6. Запись результата (ЗР). Занесение результата в память. ________________________________Время Рисунок 1.3 - Логика работы конвейера команд
На рис. 1.3 показан конвейер с шестью ступенями, соответствующими шести этапам цикла команды. В диаграмме предполагается, что каждая команда обязательно проходит все шесть ступеней, хотя этот случай не совсем типичен. Так, команда загрузки регистра не требует этапа ЗР. Кроме того, здесь принято, что все этапы могут выполняться одновременно. Без конвейеризации выполнение девяти команд заняло бы 9 х 6 = 54 единицы времени. Использование конвейера позволяет сократить время обработки до 14 единиц.
Страницы 21–22
|