Конвейерная обработка информации
MISD – множественный поток команд и одиночный поток данных.
MIМD – множественный поток команд, множественный поток данных
SIMD – одиночный поток команд и множественный поток данных
SISD – один поток команд, один поток данных. Сюда относят ЭВМ, построенные по принципам фон Неймана.
Классификации параллельных архитектур по Флинну
SISD – это однопроцессорная вычислительная система с одним потоком команд и данных. Здесь один процессор последовательно выполняет команды над последовательно поступающими от устройств ввода или извлекаемыми из памяти данными.
SIMD – разновидность многопроцессорной архитектуры, в которой все процессоры выполняют одну и ту же команду, но каждый над своими данными из своей локальной памяти. Такую архитектуру часто называют векторной.
MIМD – разновидность многопроцессорной архитектуры. Каждый процессор здесь функционирует под управлением собственного потока команд, то есть MIMD компьютер может параллельно выполнять совершенно разные программы. Современные суперкомпьютеры, как правило, строятся по данной архитектуре.
|
|
MISD – разновидность многопроцессорной архитектуры. Часто такую архитектуру сопоставляют с конвейером, где каждый процессор одновременно с другими может выполнять свою операцию над выходными данными предыдущего.
Выполнение каждой команды складывается из ряда последовательных этапов (шагов, стадий), суть которых не меняется от команды к команде. С целью увеличения быстродействия процессора и максимального использования всех его возможностей в современных микропроцессорах используется конвейерный принцип обработки информации. Этот принцип подразумевает, что в каждый момент времени процессор работает над различными стадиями выполнения нескольких команд, причем на выполнение каждой стадии выделяются отдельные аппаратные ресурсы. По очередному тактовому импульсу каждая команда в конвейере продвигается на следующую стадию обработки, выполненная команда покидает конвейер, а новая поступает в него.
В различных процессорах количество и суть этапов различаются. Рассмотрим принципы конвейерной обработки информации на примере пятиступенчатого конвейера, в котором выполнение команды складывается из следующих этапов:
- IF (Instruction Fetch) - считывание команды в процессор;
- ID (Instruction Decoding) - декодирование команды;
- OR (Operand Reading) - считывание операндов;
- EX (Executing) - выполнение команды;
- WB (Write Back) - запись результата.
Выполнение команд в таком конвейере представлено в таблице 1.
Так как в каждом такте могут выполняться различные стадии обработки команд, то длительность такта выбирается исходя из максимального времени выполнения всех стадий. Кроме того, следует учитывать, что для передачи команды с одной стадии на другую требуется определенное дополнительное время (Δt), связанное с записью промежуточных результатов обработки в буферные регистры.
|
|
Таблица 1. | |||||||||
Команда | Такт | ||||||||
i | IF | ID | OR | EX | WB | ||||
i+1 | IF | ID | OR | EX | WB | ||||
i+2 | IF | ID | OR | EX | WB | ||||
i+3 | IF | ID | OR | EX | WB | ||||
i+4 | IF | ID | OR | EX | WB |
Пусть для выполнения отдельных стадий обработки требуются следующие затраты времени (в некоторых условных единицах):
TIF = 20, TID = 15, TOR = 20, TEX = 25, TWB = 20.
Тогда, предполагая, что дополнительные расходы времени составляют Δt = 5 единиц, получим время такта:
T = max {TIF, TID, TOR, TEX, TWB} + Δt = 30.