double arrow

Оценка производительности идеального конвейера

Конвейерная обработка информации

MISD – множественный поток команд и одиночный поток данных.

MIМD – множественный поток команд, множественный поток данных

SIMD – одиночный поток команд и множественный поток данных

SISD – один поток команд, один поток данных. Сюда относят ЭВМ, построенные по принципам фон Неймана.

Классификации параллельных архитектур по Флинну

SISD – это однопроцессорная вычислительная система с одним потоком команд и данных. Здесь один процессор последовательно выполняет команды над последовательно поступающими от устройств ввода или извлекаемыми из памяти данными.

SIMD – разновидность многопроцессорной архитектуры, в которой все процессоры выполняют одну и ту же команду, но каждый над своими данными из своей локальной памяти. Такую архитектуру часто называют векторной.

MIМD – разновидность многопроцессорной архитектуры. Каждый процессор здесь функционирует под управлением собственного потока команд, то есть MIMD компьютер может параллельно выполнять совершенно разные программы. Современные суперкомпьютеры, как правило, строятся по данной архитектуре.

MISD – разновидность многопроцессорной архитектуры. Часто такую архитектуру сопоставляют с конвейером, где каждый процессор одновременно с другими может выполнять свою операцию над выходными данными предыдущего.

Выполнение каждой команды складывается из ряда последовательных этапов (шагов, стадий), суть которых не меняется от команды к команде. С целью увеличения быстродействия процессора и максимального использования всех его возможностей в современных микропроцессорах используется конвейерный принцип обработки информации. Этот принцип подразумевает, что в каждый момент времени процессор работает над различными стадиями выполнения нескольких команд, причем на выполнение каждой стадии выделяются отдельные аппаратные ресурсы. По очередному тактовому импульсу каждая команда в конвейере продвигается на следующую стадию обработки, выполненная команда покидает конвейер, а новая поступает в него.

В различных процессорах количество и суть этапов различаются. Рассмотрим принципы конвейерной обработки информации на примере пятиступенчатого конвейера, в котором выполнение команды складывается из следующих этапов:

  1. IF (Instruction Fetch) - считывание команды в процессор;
  2. ID (Instruction Decoding) - декодирование команды;
  3. OR (Operand Reading) - считывание операндов;
  4. EX (Executing) - выполнение команды;
  5. 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.


Сейчас читают про: