12.1 Предвыборка команд и конвейерная обработка.
Для того чтобы заранее получать команды или данные перед их фактическим использованием, существует функция опережающего просмотра программы, которую в МП Intel386 выполняет блок предвыборки команд. Когда блок интерфейса с магистралью не занимает цикла магистрали для исполнения команды, блок предвыборки команд использует его для последовательной выборки из памяти байтов команд. Эти команды хранятся в 16-байтовой очереди команд в ожидании обработки блоком декодирования команд. Конвейеризация позволяет нескольким внутренним блокам МП работать одновременно, совмещая дешифрование команды, операции АЛУ, вычисление эффективного адреса и циклы шины нескольких команд. Конвейерная обработка – это способ повышения быстродействия. Например 5-ступенчатый конвейер: 1. выборка команды. 2. дешифрация 3. выборка операндов 4. выполнение 5. запомнить результат. Если конвейер синхронный то длительность всех команд одинакова. Асинхронный конвейер – после каждого этапа используется буфер в который записываются промежуточные результаты. В intel конвейер разбит на 34 фазы. Принцип суперскалярности. Используется несколько конвейеров, тогда одновременно можно обрабатывать: количество команд который загружает 1 конвеер*кол-во конвейеров. Недостатки: т.к. операции могут иметь разную длительность, то результаты могут нарушать естественный порядок, решение – нумерация и буферизация. Так же недостаток – является то что если встречается операция перехода, то конвеер нужно выгружать и загружать по новому.
|