1.1. Однопроцессорные архитектуры ЭВМ

К оглавлению1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 
34 35 36 37 38 39 40 41 42 43 44 45 

Исторически первыми появились однопроцессорные архитектуры. Клас­сическим примером однопроцессорной архитектуры является архитектура фон Неймана со строго последовательным выполнением команд: процессор по очереди выбирает команды программы и также по очереди обрабатывает данные. По мере развития вычислительной техники архитектура фон Нейма­на обогатилась сначала конвейером команд, а затем многофункциональной обработкой и по классификации М.Флина получила обобщенное название SISD (Single Instruction Single Data — один поток команд, один поток дан­ных). Основная масса современных ЭВМ функционирует в соответствии с принципом фон Неймана и имеет архитектуру класса SISD.

Данная архитектура породила CISC, MSC и архитектуру с суперскаляр­ной обработкой (рис. 1.1).

Компьютеры с CISC (Complex Instruction Set Computer) архитектурой имеют комплексную (полную) систему команд, под управлением которой выполняются всевозможные операции типа «память-память», «память-регистр», «регистр — память», «регистр — регистр».

Рис. 1.1. Классификация архитектуры SISD

Данная архитектура характеризуется:

- большим числом команд (более 200);

- переменной длиной команд (от 1 до 11 байт);

- значительным числом способов адресации и форматов команд;

- сложностью команд и многотактностыо их выполнения;

- наличием микропрограммного управления, что снижает быстродей­ствие и усложняет процессор.

Обмен с памятью в процессе выполнения команды делает практически невозможной глубокую конвейеризацию арифметики, т.е. ограничивается тактовая частота процессора, а значит, и его производительность.

Большинство современных компьютеров типа IBM PC относятся к CISC архитектуре, например, компьютеры с микропроцессорами (МП) 8080, 80486, 80586 (товарная марка Pentium).

Компьютеры с RISC (Reduced Instruction Set Computer) архитектурой со­держат набор простых, часто употребляемых в программах команд. Основ­ными являются операции типа «регистр — регистр».

Данная архитектура характеризуется:

- сокращенным числом команд;

- тем, что большинство команд выполняется за один машинный такт;

- постоянной длиной команд;

- небольшим количеством способов адресации и форматов команд;

- тем, что для простых команд нет необходимости в использовании микропрограммного управления;

большим числом регистров внутренней памяти процессора.

Компьютеры с RISC-архитектурой «обязаны» иметь преимущество в производительности по сравнению с CISC компьютерами, за которое прихо­дится расплачиваться наличием в программах дополнительных команд обме­на регистров процессора с оперативной памятью.

В настоящее время практически все ведущие производители компьюте­ров прилагают большие усилия для производства RISC-процессоров (см. табл. 1.1).

Таблица 1.1

Название фирм и разработанных ими RISC-процессоров

Фирма

 

RISC-процессор

 

Sun Microsystems

 

Ultra SPARC II

 

Ultra SPARC III

 

DEC

 

Alpha 21164

 

HP

 

PA-7150, PA-8000

 

SGI

 

MIPS R-10000

 

IBM

 

PPC-601, PPC-604

 

Motorola

 

88000

 

 

Еще одной разновидностью однопотоковой архитектуры является су­перскалярная обработка.

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

В табл. 1.2 для различных типов процессоров приведено максимальное и среднее число команд, выполняемых в одном машинном цикле.

Этот метод хорош тем, что он «прозрачен» для программиста, составле­ние программ для подобных процессоров не требует никаких специальных усилий, ответственность за параллельное выполнение операций возлагается в основном на аппаратные средства.

Таблица 1.2

Максимальное и среднее число команд, выполняемых в одном машинном цикле

Процессор

 

Тактовая частота, Мгц

 

Число тран­зисторов, млн.

 

Максимальное число команд на цикл

 

Среднее число команд на цикл

 

Digital Alpha

 

500

 

9,3

 

4

 

1,0

 

Power PC 620

 

200

 

6,9

 

4

 

1,8

 

Power PC 604с

 

225

 

5,1

 

4

 

1,5

 

Ultra SPARC

 

250

 

3,8

 

4

 

1,36

 

HP PA-8000

 

180

 

3,9

 

4

 

2,4

 

HPPA-7300LC

 

160

 

9,2

 

2

 

1,35

 

Mips R10000

 

200

 

5,9

 

4

 

1,78

 

Mips R 5000

 

180

 

3,6

 

2

 

0,89

 

i486

 

25

 

1,2

 

-

 

0,45

 

Pentium Pro

 

200

 

5,5

 

3

 

1,76

 

 

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

Например, если процессор содержит функционально независимые уст­ройства (сложения, умножения, сдвига и деления), то максимум, что компи­лятор может «уложить» в один пакет - это четыре разнотипные операции:

(сложение, умножение, сдвиг и деление). Сформированные пакеты операций преобразуются компилятором в командные слова, которые по сравнению с обычными инструкциями выглядят очень большими. Отсюда и название этих суперкоманд и соответствующей им архитектуры - VLIW (Very Large Instruction Word - очень широкое командное слово). По идее, затраты на формирование суперкоманд должны окупаться скоростью их выполнения и простотой аппаратуры процессора, с которого снята вся «интеллектуальная» работа по поиску параллелизма несвязанных операций. Однако практическое внедрение VLIW-архитектуры затрудняется значительными проблемами эф­фективной компиляции.

Архитектуры класса SISD охватывают те уровни программного парал­лелизма, которые связаны с одинарным потоком данных. Они реализуются многофункциональной обработкой и конвейером команд.

Параллелизм циклов и итераций тесно связан с понятием множественно­сти потоков данных и реализуется векторной обработкой. В классификации компьютерных архитектур М. Флина выделена специальная группа однопро­цессорных систем с параллельной обработкой потоков данных - SIMD (Single Instruction Multiple Date, один поток команд - множество потоков данных).

Возможны два способа построения компьютеров этого класса. Это мат­ричная структура и векторно-конвейерная обработка. Суть матричной струк­туры заключается в том, что имеется множество процессорных элементов, исполняющих одну и ту же команду над различными элементами вектора, объединенных коммутатором. Основная проблема заключается в программи­ровании обмена данными между процессорными элементами через коммута­тор.

В отличие от матричной, векторно-конвейерная структура компьютера содержит конвейер операций, на котором обрабатываются параллельно эле­менты векторов и полученные результаты последовательно записываются в единую память. При этом отпадает необходимость в коммутаторе процессор­ных элементов, служащем камнем преткновения в матричных компьютерах.

Примером векторных супер-ЭВМ с матричной структурой является зна­менитая в свое время система ILLIAC-IV.

Векторно-конвейерную структуру имеют однопроцессорные супер-ЭВМ серии VP фирмы Fujitsu; серии S компании Hitachi; C90, М90, Т90 фирмы Cray Research; Cray-3, Cray-4 фирмы Cray Computer и т.д. Общим для всех векторных суперкомпьютеров является наличие в системе команд векторных операций, допускающих работу с векторами определенной длины, допустим, 64 элемента по 8 байт. В таких компьютерах операции с векторами обычно выполняются над векторными регистрами.

Еще одним примером SIMD-архитектуры является технология ММХ, которая существенно улучшила архитектуру микропроцессоров фирмы Intel. Она разработана для ускорения выполнения мультимедийных и коммуника­ционных программ. В ММХ используются 4 новых типа данных и 57 новых инструкций. Команды ММХ выполняют одну и ту же функцию с различны­ми частями данных, например, 8 байт графических данных передаются в процессор как одно упакованное 64-х разрядное число и обрабатываются од­ной командой. ММХ - команды используют восемь 64-разрядных регистров, «физически» размещенных в мантиссах регистров с плавающей запятой, и используются в том же режиме процессора, что и команды с плавающей за­пятой.

Все программное обеспечение, созданное для ранее выпущенных про­цессоров, без всяких изменений может выполняться на процессорах с техно­логией ММХ.

Исторически первыми появились однопроцессорные архитектуры. Клас­сическим примером однопроцессорной архитектуры является архитектура фон Неймана со строго последовательным выполнением команд: процессор по очереди выбирает команды программы и также по очереди обрабатывает данные. По мере развития вычислительной техники архитектура фон Нейма­на обогатилась сначала конвейером команд, а затем многофункциональной обработкой и по классификации М.Флина получила обобщенное название SISD (Single Instruction Single Data — один поток команд, один поток дан­ных). Основная масса современных ЭВМ функционирует в соответствии с принципом фон Неймана и имеет архитектуру класса SISD.

Данная архитектура породила CISC, MSC и архитектуру с суперскаляр­ной обработкой (рис. 1.1).

Компьютеры с CISC (Complex Instruction Set Computer) архитектурой имеют комплексную (полную) систему команд, под управлением которой выполняются всевозможные операции типа «память-память», «память-регистр», «регистр — память», «регистр — регистр».

Рис. 1.1. Классификация архитектуры SISD

Данная архитектура характеризуется:

- большим числом команд (более 200);

- переменной длиной команд (от 1 до 11 байт);

- значительным числом способов адресации и форматов команд;

- сложностью команд и многотактностыо их выполнения;

- наличием микропрограммного управления, что снижает быстродей­ствие и усложняет процессор.

Обмен с памятью в процессе выполнения команды делает практически невозможной глубокую конвейеризацию арифметики, т.е. ограничивается тактовая частота процессора, а значит, и его производительность.

Большинство современных компьютеров типа IBM PC относятся к CISC архитектуре, например, компьютеры с микропроцессорами (МП) 8080, 80486, 80586 (товарная марка Pentium).

Компьютеры с RISC (Reduced Instruction Set Computer) архитектурой со­держат набор простых, часто употребляемых в программах команд. Основ­ными являются операции типа «регистр — регистр».

Данная архитектура характеризуется:

- сокращенным числом команд;

- тем, что большинство команд выполняется за один машинный такт;

- постоянной длиной команд;

- небольшим количеством способов адресации и форматов команд;

- тем, что для простых команд нет необходимости в использовании микропрограммного управления;

большим числом регистров внутренней памяти процессора.

Компьютеры с RISC-архитектурой «обязаны» иметь преимущество в производительности по сравнению с CISC компьютерами, за которое прихо­дится расплачиваться наличием в программах дополнительных команд обме­на регистров процессора с оперативной памятью.

В настоящее время практически все ведущие производители компьюте­ров прилагают большие усилия для производства RISC-процессоров (см. табл. 1.1).

Таблица 1.1

Название фирм и разработанных ими RISC-процессоров

Фирма

 

RISC-процессор

 

Sun Microsystems

 

Ultra SPARC II

 

Ultra SPARC III

 

DEC

 

Alpha 21164

 

HP

 

PA-7150, PA-8000

 

SGI

 

MIPS R-10000

 

IBM

 

PPC-601, PPC-604

 

Motorola

 

88000

 

 

Еще одной разновидностью однопотоковой архитектуры является су­перскалярная обработка.

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

В табл. 1.2 для различных типов процессоров приведено максимальное и среднее число команд, выполняемых в одном машинном цикле.

Этот метод хорош тем, что он «прозрачен» для программиста, составле­ние программ для подобных процессоров не требует никаких специальных усилий, ответственность за параллельное выполнение операций возлагается в основном на аппаратные средства.

Таблица 1.2

Максимальное и среднее число команд, выполняемых в одном машинном цикле

Процессор

 

Тактовая частота, Мгц

 

Число тран­зисторов, млн.

 

Максимальное число команд на цикл

 

Среднее число команд на цикл

 

Digital Alpha

 

500

 

9,3

 

4

 

1,0

 

Power PC 620

 

200

 

6,9

 

4

 

1,8

 

Power PC 604с

 

225

 

5,1

 

4

 

1,5

 

Ultra SPARC

 

250

 

3,8

 

4

 

1,36

 

HP PA-8000

 

180

 

3,9

 

4

 

2,4

 

HPPA-7300LC

 

160

 

9,2

 

2

 

1,35

 

Mips R10000

 

200

 

5,9

 

4

 

1,78

 

Mips R 5000

 

180

 

3,6

 

2

 

0,89

 

i486

 

25

 

1,2

 

-

 

0,45

 

Pentium Pro

 

200

 

5,5

 

3

 

1,76

 

 

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

Например, если процессор содержит функционально независимые уст­ройства (сложения, умножения, сдвига и деления), то максимум, что компи­лятор может «уложить» в один пакет - это четыре разнотипные операции:

(сложение, умножение, сдвиг и деление). Сформированные пакеты операций преобразуются компилятором в командные слова, которые по сравнению с обычными инструкциями выглядят очень большими. Отсюда и название этих суперкоманд и соответствующей им архитектуры - VLIW (Very Large Instruction Word - очень широкое командное слово). По идее, затраты на формирование суперкоманд должны окупаться скоростью их выполнения и простотой аппаратуры процессора, с которого снята вся «интеллектуальная» работа по поиску параллелизма несвязанных операций. Однако практическое внедрение VLIW-архитектуры затрудняется значительными проблемами эф­фективной компиляции.

Архитектуры класса SISD охватывают те уровни программного парал­лелизма, которые связаны с одинарным потоком данных. Они реализуются многофункциональной обработкой и конвейером команд.

Параллелизм циклов и итераций тесно связан с понятием множественно­сти потоков данных и реализуется векторной обработкой. В классификации компьютерных архитектур М. Флина выделена специальная группа однопро­цессорных систем с параллельной обработкой потоков данных - SIMD (Single Instruction Multiple Date, один поток команд - множество потоков данных).

Возможны два способа построения компьютеров этого класса. Это мат­ричная структура и векторно-конвейерная обработка. Суть матричной струк­туры заключается в том, что имеется множество процессорных элементов, исполняющих одну и ту же команду над различными элементами вектора, объединенных коммутатором. Основная проблема заключается в программи­ровании обмена данными между процессорными элементами через коммута­тор.

В отличие от матричной, векторно-конвейерная структура компьютера содержит конвейер операций, на котором обрабатываются параллельно эле­менты векторов и полученные результаты последовательно записываются в единую память. При этом отпадает необходимость в коммутаторе процессор­ных элементов, служащем камнем преткновения в матричных компьютерах.

Примером векторных супер-ЭВМ с матричной структурой является зна­менитая в свое время система ILLIAC-IV.

Векторно-конвейерную структуру имеют однопроцессорные супер-ЭВМ серии VP фирмы Fujitsu; серии S компании Hitachi; C90, М90, Т90 фирмы Cray Research; Cray-3, Cray-4 фирмы Cray Computer и т.д. Общим для всех векторных суперкомпьютеров является наличие в системе команд векторных операций, допускающих работу с векторами определенной длины, допустим, 64 элемента по 8 байт. В таких компьютерах операции с векторами обычно выполняются над векторными регистрами.

Еще одним примером SIMD-архитектуры является технология ММХ, которая существенно улучшила архитектуру микропроцессоров фирмы Intel. Она разработана для ускорения выполнения мультимедийных и коммуника­ционных программ. В ММХ используются 4 новых типа данных и 57 новых инструкций. Команды ММХ выполняют одну и ту же функцию с различны­ми частями данных, например, 8 байт графических данных передаются в процессор как одно упакованное 64-х разрядное число и обрабатываются од­ной командой. ММХ - команды используют восемь 64-разрядных регистров, «физически» размещенных в мантиссах регистров с плавающей запятой, и используются в том же режиме процессора, что и команды с плавающей за­пятой.

Все программное обеспечение, созданное для ранее выпущенных про­цессоров, без всяких изменений может выполняться на процессорах с техно­логией ММХ.