МИНИСТЕРСТВО оБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Московский Государственный институт электроники и математики
(Технический университет)
Кафедра вычислительных систем и сетей
Отчет о лабораторной работе №1
«Моделирование работы многоконвейерного процессора»
по дисциплине «Организация ЭВМ, комплексов и систем»
Выполнил:
студент группы С-31
Преподаватель:
канд. техн. наук, доцент
Иванова Елена Михайловна
20 октября 2004 года
Вариант №23
Вариант кода 7
Количество конвейеров 3
Фрагмент кода на Ассемблере:
MOV DX, [const1]
MOV CX, [const2]
TEST DX, CX
JME FUCK
XOR AX, AX
XOR AX, BX
JMP +6
FUCK: MOV AX, DX
ADC AX, CX
JZ -5
NEG BX
Таблица последовательности выполнения процессором микроопераций для одного конвейера:

Группа 1 простоев конвейера вызвана более долгим выполнением второй фазы (выборки операндов) нежели третьей (исполнения команд).

Группы простоев 2, 3, 4 вызваны командами безусловного перехода JME, J***, JMP, в результате выполнения которых уже выполненные фазы последующих команд оказываются невостребованными и отбрасываются, после чего необходимо начинать выполнение команды с первой фазы.


1 конвейер: простой модуля исполнения с 8 по 15 такты вызван ожиданием завершения выполнения команды TEST в третьем конвейере.
простой модуля выборки команды с 6 по 18 такты вызван ожиданием завершения выполнения команды безусловного перехода JME, которая, в свою очередь, ожидала завершения выполнения команды TEST в третьем конвейере.
простой всех модулей с 20-27 по 34 такты вызван ожиданием завершения выполнения команды безусловного перехода J*** в третьем конвейере.
2 конвейер: простой всех модулей с 6-10 по 18 такты вызван ожиданием завершения выполнения команды безусловного перехода JME.
простой всех модулей с 20-31 по 34 такты вызван ожиданием завершения выполнения команды безусловного перехода J*** в третьем конвейере.
3 конвейер: простой модуля исполнения с 3 по 10 такты вызван ожиданием завершения выполнения команд MOV над регистрами DX и CX.
простой модулей выборки команды, операндов и модуля исполнения со 2-12 по 18 такты вызван ожиданием завершения выполнения команды безусловного перехода JME
простой модуля исполнения с 20 по 30 такты вызвано ожиданием завершения выполнения команды ADC во втором конвейере.
Вывод:
Использование конвейеров при обработке команд процессором обосновано. По сравнению с последовательной обработкой команд конвейер дает значительное преимущество в скорости обработки команд: теоретически, в ходе работы каждый такт завершается выполнение команды. Однако недостатком конвейерной обработки являются простои конвейера в случае использования результатов предыдущих команд в качестве операндов последующих или при выполнении команд безусловного перехода. Для уменьшения влияния этих факторов используются несколько конвейеров.
В данном случае, на выполнение последовательности команд в одном конвейере потребовалось 54 такта конвейера. При этом основной причиной простоев были команды безусловного перехода. А при исполнении этой же последовательности команд в трех конвейерах, время выполнения сократилось до 45 тактов. Такой незначительный прирост в быстродействии обусловлен большим количеством простоев из-за ожидания окончания выполнения предыдущих команд.
