КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
КонвейеризацияОсновная проблема быстродействия – вызов команд из памяти. Для решения этой проблемы разработаны методы опережающего вызова команд из памяти. Эти команды помещаются в специальный набор регистров, называемый буфером выборки с упреждением. Поэтому когда команда потребуется, она вызывается из буфера, а не из памяти. Поскольку выполнение команды делится на ряд этапов, каждый из которых выполняется отдельной частью аппаратных средств ЦП, то эти части могут работать параллельно.
Процесс выполнения короткой команды (логическая или ФЗ) - цикл процессора - м.б. разделён на микрокоманды (такты процессора). Их пять. Все такты выполняются для команды только один раз и в одном и том же порядке. Т.о. если первая микрокоманда выполнилась для очередной команды и передала результат второй, то она может начать выполнять следующую команду. Конвейеризация осуществляет многопоточную параллельную обработку команд, т.ч. в любой момент одна команда считывается, другая декодируется и т.д. и всего обрабатывается пять команд. На выходе конвейера на каждом такте процессора выдаётся результат выполнения одной команды.
Рассмотрим конвейер из 5 блоков – стадий. Блок С1 вызывает команду из памяти и помещает её в буфер, где она хранится до тех пор, пока не будет нужна. Стадия С2 декодирует эту команду, определяя её тип, тип её операндов. Блок С3 определяет местонахождение операндов и вызывает их из регистра или из памяти. Блок С4 выполняет команду. Блок С5 записывает результат обратно в нужный регистр.
Здесь показано 9 тактов действия конвейера во времени. Во время такта 1 Блок С1 вызывает команду 1 из памяти. Во время такта 2 Блок С2 декодирует команду 2, в то время как Блок С1 вызывает команду 2. Во время такта 3 Блок С3 работает с операндами команды 1, Блок С2 декодирует команду 2, Блок С1 вызывает команду 3. Во время такта 4 Блок С4 выполняет команду1, Блок С3 работает с операндами команды 2, Блок С2 декодирует команду 3, Блок С1 вызывает команду 4. Во время такта 5 Блок С5 возвращает результат работы команды 1, Блок С4 выполняет команду 2, Блок С3 работает с операндами команды 3, Блок С2 декодирует команду 4, Блок С1 вызывает команду 5. Для лучшего понимания принципа работы конвейера МП можно рассмотреть работу любого конвейера, например, кондитерского. В отделе отправки установлен длинный конвейер, у которого стоят 5 рабочих. Каждые 10 секунд (время такта) рабочий 1 ставит пустую коробку для торта на ленту конвейера, рабочий 2 кладёт в неё торт, рабочий 3 закрывает коробку, рабочий 4 маркирует её, рабочий 5 кладёт её в контейнер для отправки. Пусть время такта нашего конвейера 2 нс. Тогда цикл выполнения команды 10 нс. Казалось бы, такой процессор может выполнить в секунду 100 млн. команд, но в действительности скорость работы ЦП выше. Во время каждого такта завершается выполнение одной команды, поэтому ЦП выполняет не 100 млн., а 500 млн. операций в секунду. Т.о. конвейер обеспечивает компромисс между временем ожидания (время выполнения одной команды) и пропускной способностью ЦП (число млн команд, выполняемых в секунду) При времени такта Т нс и числе стадий конвейера К время ожидания составит КТ нс, а пропускная способность 1000/Т млн. операций в секунду.
|