/
Теги: компьютерные технологии программирование
ISBN: 5-94157-385-5
Текст
Виктор Корнеев
Андрей Киселев
□ □ВРЕГЛЕННЫЕ
МИКРОПРОЦЕССОРЫ
3-е издание
Санкт-Петербург
«БХВ-Петербург»
2003
УДК 681.3
ББК 32.973-04
К67
Корнеев В. В., Киселев А. В.
К67 Современные микропроцессоры. — 3-с изд., перераб. и доп. —
СПб.: БХВ-Петербург, 2003. — 448 с.: ил.
ISBN 5-94157-385-5
В книге описаны основные типы микропроцессоров, используемых при
построении персональных компьютеров, рабочих станций, вычислительных
и телекоммуникационных систем, суперЭВМ и средств автоматизации тех-
нологических процессов. Разобраны архитектурно-структурные приемы
достижения высокой производительности. Проанализированы основные
идеи построения супсрскалярных микропроцессоров, микропроцессоров с
длинным командным словом, а также перспективных мультитрсдовых мик-
ропроцессоров и однокристальных вычислительных систем. Приведены
описания универсальных микропроцессоров ведущих зарубежных компа-
ний. Представлено новое направление средств обработки сигналов — ме-
дийные микропроцессоры, а также нейросетевые алгоритмы и нейропро-
цессоры для их интерпретации. Рассмотрены основы транспьютерной
технологии и существующие семейства транспьютеров.
Для студентов, аспирантов и преподавателей профильных специальностей
УДК 681.3
ББК 32.973-04
Группа подготовки издания:
Главный редактор
Зав. редакцией
Редактор
Компьютерная верстка
Корректор
Дизайн обложки
Зав. производством
Екатерина Кондукова
Григорий Добин
Полина Столбова
Натальи Смирновой
Наталия Першакова
Игоря Цырульникова
Николай Тверских
Лицензия ИД Ne 02429 от 24.07.00. Подписано в печать 29.08.03.
Формат 70xl00’/i6. Печать офсетная. Уел. пвч. я. 36.12.
Тираж 3000 экэ. Заказ Ng 1086.
“БХВ-Петербург", 198005, Санкт-Петербург, Измайловский пр., 29.
Гигиеническое заключение на продукцию, товар Ng 77.99.02.953.Д.001537.03.02
от 13.03.2002 г. выдано Департаментом ГСЭН Минздрава России.
Отпечатано е готовых диапозитивов
в Академической типографии "Наука" РАН
199034. Санкт-Петербург, 9 линия. 12.
ISBN 5-94157-385-5
С Корнеев В. В., Киселев А. В , 2003
О Оформление, издательство “ЬХВ-НетербурГ", 2003
© ОМД Групп. 2003
Содержание
Введение..........................................................1
Глава 1. Архитектура современных микропроцессоров.................5
1.1. Процессор как цифровое устройство обработки информации.....5
1.1.1. Цифровая обработка информации..........................5
1.1.2. Аппаратная реализация вычислений......................13
1.1.3. Программная реализация вычислений.....................16
1.1.4. Структура и функциональная организация процессора.....19
1.1.5. Архитектура процессора................................25
1.1.6. Прерывание.26
1.1.7. Организация многоуровневой памяти компьютера..........29
1.1.8. Кэш-память............................................30
1.1.9. Страничная организация памяти.........................34
1.1.10. Расслоение памяти....................................37
1.1.11. Микропроцессоры......................................38
1.2. Перспективы микроэлектронного производства................40
1.2.1. Сверхбольшие интегральные схемы.......................40
1.2.2. Микропроцессоры и микроконтроллеры....................45
1.2.3. Микросхемы памяти.....................................46
1.2.4. Программируемые логические интегральные схемы.........53
1.2.5. Направление развития микроэлектронных компонентов
вычислительных систем........................................59
1.3. Архитектурные особенности современных микропроцессоров....60
1.3.1. Классификация архитектур микропроцессоров.............60
1.3.2. Архитектура процессоров с параллелизмом уровня команд.63
1.3.3. Организация многоуровневой памяти в микропроцессорах..83
1.3.4. Ускорение переключения контекста процессора...........89
1.3.5. Расширение функциональных возможностей микропроцессоров.90
1.3.6, Стандартизация архитектур микропроцессоров............92
1.4. Мультитредовые микропроцессоры............................95
1.4.1. Основы мультитредовой архитектуры.....................95
1.4.2. Выявление тредов......................................99
1.4.3. Мультитредовые процессоры с тредами, выявляемыми путем
анализа потоков управления программы...........................100
1.4.4. Мультитредовые процессоры с тредами, выявляемыми путем
анализа потоков данных программы...............................111
1.4.5. Специфика мультитредовых моделей распараллеливания...112
1.5. Развитие архитектур микропроцессоров.......................114
1.5.1. Влияние элементной базы на реализуемость архитектур...114
1.5.2. Однокристальные векторно-конвейерные процессоры........115
1.5.3. Причины перехода к построению однокристальных
мультипроцессорных систем....................................117
1.5.4. Подходы к построению однокристальных
мультипроцессорных систем....................................118
1.6. Способы оценки производительности процессоров.............119
1.6.1. Пиковая производительность компьютеров................119
1.6.2. Реальная производительность...........................121
1.6.3. Способы измерения реальной производительности.........123
1.6.4. Тесты для оценки пропускной способности памяти
и производительности процессора..............................124
1.6.5. Тест Unpack...........................................125
1.6.6. Пакеты тестовых программ SPEC CPU.....................127
Вопросы для самоконтроля к главе 1.............................135
Глава 2. Универсальные микропроцессоры...........................137
2.1. Структура рынка универсальных микропроцессоров............137
2.2. Микропроцессоры с архитектурой х86........................139
2.2.1. Микропроцессор Pentium (Р5)...........................139
2.2.2. Микропроцессор Pentium MMX.......................... 145
2.2.3. Микропроцессор Pentium Pro (Р6).......................150
2.2.4. Микропроцессор Pentium II.............................153
2.2.5. Микропроцессор Pentium III............................157
2.2.6. Микропроцессор Pentium 4..............................169
2.2.7. Микропроцессор Pentium М..............................174
2.2.8. Микропроцессоры с архитектурой 1А-64..................175
2.2.9. Микропроцессоры пятого поколения компании NexGen......183
2.2.10. Микропроцессоры компании AMD........................184
2.2.11. Микропроцессоры компании Cyrix......................197
2.2.12. Микропроцессоры компании Transmeta..................210
2.3. Микропроцессоры с архитектурой Alpha......................214
2.3.1. Микропроцессоры Alpha 2106х...........................214
2.3.2. Микропроцессор Alpha 21164............................215
2.3.3. Микропроцессор Alpha 21264 ...........................218
2.3.4. Микропроцессор Alpha 21364 ...........................221
2.4. Микропроцессоры с архитектурой SPARC......................223
2.4.1. Архитектура SPARC.....................................223
2.4.2. Процессор SPARC.......................................224
2.4.3. Реализация архитектуры SPARC..........................227
2.4.4. Архитектура UltraSPARC (V9)...........................229
2.5. Микропроцессоры с архитектурой MAJC.......................235
2.6. Микропроцессоры с архитектурой РА.........................237
2.7. Микропроцессоры с архитектурой Power и PowerPC............241
2.7.1. Микропроцессор PowerPC 620............................242
2.7.2. Технология AltiVec....................................245
2.7.3. Микропроцессор PowerPC 750/740 (G3)...................248
2.7.4. Микропроцессор PowerPC G4.............................249
2.7.5. Микропроцессор G5 компании IBM........................249
2.7.6. Микропроцессор Power 3................................250
2.7.7. Микропроцессор Power 4................................252
2.8. Микропроцессоры компании MIPS (Silicon Graphics)..........255
2.9. Микропроцессоры отечественного производства...............260
2.9.1. Микропроцессоры с архитектурой SPARC..................260
2.9.2. Микропроцессоры с архитектурой MIPS...................261
2.10. Состояние и перспективы развития универсальных
микропроцессоров...............................................266
2.10.1. Основные тенденции развития универсальных
микропроцессоров.............................................266
2.10.2. Программная совместимость............................266
2.10.3. Повышение тактовой частоты...........................268
2.10.4. Увеличение пропускной способности подсистемы памяти..269
2.10.5. Повышение степени внутреннего параллелизма...........269
Вопросы для самоконтроля к главе 2.............................270
Глава 3. Сигнальные, коммуникационные и медийные микропроцессоры.273
3.1. Обшие сведения о цифровой обработке сигналов..............273
3.2. Микропроцессоры обработки сигналов........................278
3.3. Сигнальные микропроцессоры компании Texas Instruments.....280
3.3.1. Микропроцессоры семейства TMS32OC1X...................281
3.3.2. Микропроцессоры семейства TMS320C2x...................283
3.3.3. Микропроцессоры семейства TMS320C5x...................285
3.3.4. Микропроцессоры семейства TMS320C2xx..................287
3.3.5. Микропроцессоры семейства TMS320C54X..................288
3.3.6. Микропроцессоры семейства TMS320C3x...................291
3.3.7. Микропроцессоры семейства TMS320C4x...................293
3.3.8. Микропроцессоры семейства TMS320C8x...................299
3.3.9. Микропроцессоры семейства TMS320C6x...................305
3.4. Сигнальные микропроцессоры компании Analog Devices........308
3.4.1. Микропроцессоры семейства ADSP21xx....................309
3.4.2. Микропроцессоры семейства ADSP 21 ххх.................315
3.4.3. Микропроцессоры с архитектурой SHARC
семейства ADSP-2106x.........................................317
3.4.4. Микропроцессоры с архитектурой SHARC
семейства ADSP-2116х.........................................324
3.4.5. Микропроцессор TigerSHARC — ADSP-TS001................326
3.4.6. Микропроцессор ADSP-21535 Blackfin....................330
3.5. Сигнальные микропроцессоры компании Motorola..............334
3.5.1. Микропроцессоры 24-разрядные с фиксированной точкой...334
3.5.2. Микропроцессоры семейства DSP560xx....................334
3.5.3. Микропроцессоры семейства DSP563xx....................341
3.5.4. Микропроцессоры 16-разрядные с фиксированной точкой...343
3.5.5. Микропроцессоры семейства DSP561XX....................343
3.5.6. Микропроцессоры семейства DSP566xx....................345
3.5.7. Микропроцессоры семейства DSP568xx....................347
3,5.8. Микропроцессоры с плавающей точкой семейства DSP9600x..350
3.6. Коммуникационные процессоры...............................352
3.6.1. Микропроцессор МРС8260................................352
3.6.2. Сетевые микропроцессоры компании Intel................356
3.7. Микропроцессоры Intel с архитектурой РСА..................361
3.8. Медийные микропроцессоры..................................365
3.8.1. Микропроцессор Mediaprocessor компании MicroUnity.....366
3.8.2. Микропроцессор TriMedia компании Philips..............366
3.8.3. Микропроцессор Mpact Media Engine компании
Chromatic Research...........................................368
3.8.4. Микропроцессор NV1 компании Nvidia....................370
3.8.5. Микропроцессор MediaGX компании Cyrix.................371
Вопросы для самоконтроля к главе 3.............................375
Глава 4. Транспьютеры — элементная база мультипроцессорных систем.379
4.1. Основные особенности транспьютеров........................379
4.2. Архитектура и структура транспьютеров фирмы Inmos.........381
4.2.1. Архитектура семейств Т-2, Т-4, Т-8....................381
4.2.2. Центральный процессор.................................383
4.2.3. Система команд транспьютера...........................385
4.2.4. Выполнение команд.....................................385
4.2.5. Использование сопроцессора............................386
4.2.6. Распределение памяти транспьютера.....................386
4.2.7. Диспетчеризация процессов.............................387
4.2.8. Ввод/вывод............................................388
4.2.9. Передача данных по линку..............................388
4.2.10. Ожидание сигнала от блока событий....................390
4.2.11. Ожидание сигнала от таймера..........................390
4.2.12. Инициализация системы после включения питания........391
4.2.13. Управление системой..................................392
4.2.14. Обработка ошибок.....................................392
4.3. Транспьютер Т-9000...................................... 393
4.3.1. Архитектурные и структурные особенности...............393
4.3.2. Виртуальные линки.....................................393
4.3.3. Группировщик команд...................................394
4.4. Транспьютероподобные микропроцессоры серии "Квант".... ...395
4.4.1. Основы архитектуры....................................395
4.4.2. Устройство управления.................................397
4.4.3. Адресное устройство...................................397
4.4.4. Арифметическое устройство,,......................... 397
4.4.5. Системное устройство..................................398
4.4.6. Конвейер процессора...................................398
4.4.7. Система команд........................................398
4.4.8. Производительность микропроцессора....................399
Вопросы для самоконтроля к главе 4.............................399
Глава 5. Нейропроцессоры.........................................401
5.1. Общие сведения о нейросетевых вычислениях.................401
5.1.1. Проблемная ориентация нейросетевых вычислений.........401
5.1.2. Основы организации нейросетевых вычислений............403
5.1.3. Основные понятия теории нейронных сетей...............405
5.1.4. Организация функционирования нейросети................408
5.1.5. Алгоритмы обучения многоуровневых персептронных сетей.410
5.2. Аппаратные средства, интерпретирующие алгоритмы,
заданные нейронной сетью.......................................411
5.2.1. Подходы к аппаратной реализации нейросетей............411
5.2.2. Нейрочипы.............................................413
5.2.3. Цифровые нейрочипы....................................413
5.2.4. Цифровые кристаллы для систолических систем и систем
с одним потоком команд.......................................414
5.2.5. Нейрочипы с радиусными базисными функциями............415
5.2.6. Аналоговые нейрочипы..................................416
5.2.7. Гибридные нейрочипы...................................416
5.2.8. Сигнальные микропроцессоры и микропроцессоры
с расширенным набором команд для мультимедийных приложений...416
5.3. Нейропроцессор NeuroMatrix NM6403.........................417
5.3.1. Основные характеристики архитектуры...................417
5.3.2. Система команд нейропроцессора NM6403.................418
5.3.3. Производительность нейропроцессора NM6403.............420
Вопросы для самоконтроля к главе 5.............................421
Список литературы 444i.4t.44.4i444444.444444444444444444.44.444.......423
Предметный указатель.............................................434
Введение
Создание фирмой Intel первого микропроцессора в 1971 году положило на-
чало эпохе всеобщей компьютеризации. "Благодаря микропроцессорам ком-
пьютеры стали массовым, общедоступным продуктом", — заявил Тед Хофф
(Ted Hoff), один из изобретателей первого микропроцессора. Его имя вместе
с именами его коллег Федерико Феджина (Federico Faggin) и Стена Мейзора
(Stan Mazor) внесено в список лауреатов Национального зала славы изобре-
тателей США, а само изобретение признано одним из величайших достиже-
ний XX века.
За чуть более чем четвертьвековую историю микропроцессоры прошли по-
истине гигантский путь. Первый чип Intel 4004 работал на частоте 750 КГц,
содержал 2300 транзисторов и стоил около $200. Производительность его
оценивалась в 60 тыс. операций в секунду. В предыдущем издании книги,
вышедшем в 2000 г., отмечалось, что рекордные показатели принадлежат
микропроцессорам Alpha 21264 фирмы DEC и составляют: 700 МГц,
15,2 млн транзисторов, 2 млрд операций в секунду и около $300 соответст-
венно стоимость. На сегодняшний день тактовая частота процессоров пре-
высила 2 ГГц, количество транзисторов более 50 млн, пиковая производи-
тельность более 7 млрд операций в секунду.
Сравнение приведенных значений подтверждает опенку успехов микропро-
цессорной индустрии, данную основателем и председателем совета директоров
фирмы Intel Гордоном Муром (Gordon Moore): "Если бы автомобилестрое-
ние эволюционировало со скоростью полупроводниковой промышленности,
то сегодня «Роллс-Ройс» стоил бы 3 доллара, мог бы проехать полмиллиона
миль на одном галлоне бензина, и было бы дешевле его выбросить, чем пла-
тить за парковку".
Такое интенсивное развитие технологий в обществе, где основным предме-
том труда становится информация, является следствием растущего спроса на
новые орудия труда — компьютеры. На сегодняшний день компьютеризация
является одним из главных направлений научно-технического прогресса и
концентрированным его выражением. Количество и качество производимых
в стране компьютеров, степень насыщенности вычислительной техникой
самых разных отраслей становятся одним из основных критериев экономи-
ческого и военного потенциала.
В формируемом ежегодно в США группой экспертов перечне "критических
технологий", охватывающем практически все направления производства,
исследований и разработок, оказывающих влияние на военный и экономи-
ческий статус страны, микроэлектронные технологии традиционно занима-
ют первое место.
В микропроцессорах — наиболее сложных микроэлектронных устройствах —
воплощены самые передовые достижения научной и инженерной мысли.
В условиях, свойственных данной отрасли производства, жесткой конкурен-
ции и огромных капиталовложений выпуск каждой новой модели микро-
процессора, так или иначе, связан с очередным научным, конструкторским,
технологическим прорывом, хотя, в силу большой внутренней сложности,
внутри одного семейства разработчики, по возможности, стараются исполь-
зовать унифицированные наработанные решения и сохранять программную
совместимость моделей.
Изучение такой интенсивно развивающейся и наукоемкой предметной об-
ласти, как микроэлектроника и микропроцессорная техника, в частности, —
задача весьма интересная и сложная, требующая постоянного совершенст-
вования и пополнения получаемых знаний и знакомства со смежными на-
учно-техническими областями. Для эффективного решения прикладных
задач любой современный специалист, профессионально связанный с вы-
числительной техникой, должен иметь адекватное представление о состоя-
нии и перспективах развития элементной базы.
Понимая всю сложность задачи отражения состояния динамично изменяю-
щейся предметной области, неизбежно приводящей к известному парадоксу
"Ахиллеса и черепахи", авторы, тем не менее, попытались максимально
полно изложить основные идеи, концепции и направления, определяющие
развитие современных микроэлектронных технологий. Однако основная
цель книги заключается в том, чтобы заинтересовать читателя данной про-
блематикой и стимулировать его к дальнейшему самообразованию.
Книга состоит из пяти глав. Глава 1 является концептуальной, а осталь-
ные — иллюстративно-справочными.
В главе 1 дано представление об основных направлениях развития архитек-
туры, структуры и организации функционирования микропроцессоров. Рас-
смотрены состояние и перспективы развития элементной базы современных
средств вычислительной техники: микросхем памяти, программируемых
логических интегральных схем, универсальных и сигнальных микропроцес-
соров. Проанализированы архитектурные и структурные способы повыше-
ния быстродействия электронных схем, применяемые на практике подходы
к оценке производительности микропроцессоров. Изложены основные идеи
построения суперскалярных микропроцессоров, микропроцессоров с длин-
ным командным словом, а также перспективных мультитредовых микро-
процессоров. Представлены подходы к оценке производительности микро-
процессоров.
Глава 1
Архитектура современных
микропроцессоров
1.1. Процессор как цифровое устройство
обработки информации
1.1.1. Цифровая обработка информации
В книге, посвященной рассмотрению микропроцессоров, логично ожидать
ответа на вопрос, что такое процессор, какие вообще бывают процессоры и
какое место среди них занимают микропроцессоры. Первая часть ответа со-
стоит в том, что процессор является цифровым устройством обработки ин-
формации. Цифровые или дискретные устройства обработки информации
предназначены для преобразования элементов данных, принимающих ко-
нечный дискретный набор значений. Каждый элемент данных характеризу-
ется, по крайней мере, двумя атрибутами: именем, выделяющим этот эле-
мент среди всех элементов, и значением. Например, элемент данных,
представляющий бит информации, может принимать только одно из двух
значений, а именно: 0 или 1.
Элементы данных хранятся в элементах памяти. Для хранения данных,
принимающих 2" различных значений, может быть использован упорядо-
ченный набор из п элементов памяти, ле {1,2, ...}, каждый из которых спо-
собен хранить 1 бит информации. Так, в случае л = 3 набор различных зна-
чений состоит из следующих восьми: ООО, 001, 010, 011, 100, 101, ПО, 111.
Например, при хранении значения 011 первый элемент памяти хранит зна-
чение 0, второй — 1 и, наконец, третий элемент также хранит значение 1.
Всякое цифровое устройство строится из логических элементов, называемых
вентилями, и элементов памяти. Вентили реализуют логические функции, в
числе которых прежде всего следует упомянуть функции двух переменных
И, ИЛИ, исключающее ИЛИ и функцию одной переменной НЕ. Условные
графические изображения вентилей и функции, реализуемые ими, приведе-
ны на рис. 1.1.
В главе 2 рассмотрены семейства микропроцессоров с CISC- и RISC-
архитектурой и дана обобщенная характеристика современных универсаль-
ных микропроцессоров. Представлены микропроцессоры ведущих зарубеж-
ных производителей и ряд микропроцессоров отечественной разработки.
В главе 3 представлены основные семейства сигнальных микропроцессоров
фирм Motorola, Analog Devices, Texas Instruments, а также новые средства
обработки сигналов — медийные и коммуникационные микропроцессоры.
Рассмотрены особенности алгоритмов цифровой обработки сигналов (ЦОС)
и средства аппаратной поддержки исполнения алгоритмов ЦОС в сигналь-
ных и медийных микропроцессорах. Проведен сравнительный анализ эф-
фективности архитектур сигнальных микропроцессоров для типовых задач
обработки сигналов.
Глава 4 содержит описание зарубежных и отечественных микропроцессоров
транспьютерного типа, ориентированных на использование в массово-
параллельных вычислительных системах. Подробно рассмотрены их архи-
тектурные и структурные особенности.
Глава 5 посвящена организации нейросетевых вычислений и реализации
нейропроцессоров.
Качественному усвоению материала, по мнению авторов, будет способство-
вать обращение читателей к вопросам для самоконтроля, помешенным в
конце каждой главы.
Материал настоящего, третьего, издания книги был существенно перерабо-
тан и дополнен авторами с учетом их представлений об излагаемой пред-
метной области, замечаний и пожеланий, поступивших после выпуска двух
предыдущих изданий. Вместе с тем, авторы решили не исключать материал
предыдущих изданий об уже снятых с производства микропроцессорах, по-
считав, что его присутствие вносит для читателей дополнительный познава-
тельный аспект.
Книга предназначена для студентов и аспирантов, изучающих информатику
и компьютерные науки, а также всех интересующихся современной вычис-
лительной техникой.
Вентиль И
Вентиль ИЛИ
Входы Выход
0 0 0
0 1 0
1 0 0
1 1 1
Входы Выход
0 0 0
0 1 1
1 0 1
1 1 1
Вентиль
исключающее ИЛИ
Вентиль НЕ
Входы Выход
0 0 Q
0 1 1
1 0 1
1 1 0
Рис. 1.1. Графические изображения вентилей
и таблицы истинности реализуемых ими логических функций
Входы и выходы вентилей принимают логические значения 0 и 1, представ-
ляемые, например, уровнями напряжения при электронной реализации вен-
тилей или уровнями давления при пневматической реализации. Какой уро-
вень напряжения считать 0, а какой 1 при электронной реализации
вентилей — служит предметом договоренности.
Из вентилей конструируются блоки цифровых устройств, например, тригге-
ры, представляющие собой один из типов элементов памяти, предназначен-
ных для запоминания 1 бита информации. Одна из возможных схем триг-
гера приведена на рис. 1.2, а.
Триггер характеризуется тем, что если на входы Вход 1 и Вход 0 были пода=
ны значения 1 и 0 соответственно, то на выходе Выход 1 триггера устано-
вится значение 1, которое будет задавать единичное состояние триггера. Это
состояние будет сохраняться вплоть до переключения триггера в нулевое
состояние путем подачи на его входы Вход I и Вход 0 значений 0 и 1 соот-
ветственно. В нулевом состоянии выход Выход 1 триггера имеет значение 0.
Свойство триггера сохранять свое состояние обеспечивается имеющимися в
нем обратными связями. Графическое изображение триггера см. на рис. 1.2, б
Выход 0 Выход 1
Вход 0 Вход 1
а б
Рис. 1.2. Триггер:
а — схема; б — графическое изображение
Для того чтобы изменения состояния триггеров происходили после того, как
устанавливаются значения сигналов на их входах, прибегают к введению
тактовых сигналов. Тактовый сигнал представляет собой периодическую по-
следовательность импульсов. Для простоты изложения примем, что импуль-
су соответствует логическое значение I, а промежуткам между импульсами
соответствует 0. Причем длительность сохранения значения тактового сиг-
нала составляет величину т/2, где т — длительность такта. Величина 1/т на-
зывается тактовой частотой.
На рис. 1.3 показан триггер, изменение состояния которого происходит
только при значении тактового сигнала I.
Интуитивно понятно, что чем выше тактовая частота, тем более быстродей-
ствующим будет цифровое устройство. Однако физические характеристики
элементной базы, используемой для построения'вентилей, определяют пре-
дельную тактовую частоту, на которой устройство остается работоспособ-
ным. При превышении этой тактовой частоты импульсы недопустимо иска-
жаются, и устойчивое различение уровней 0 и 1 становится невозможным.
сигнал
О
Рис. 1.3. Тактируемый триггер
Следующим за триггером важным логическим блоком служит регистр, пред-
ставляющий собой в простейшем случае упорядоченную совокупность
триггеров. Регистры используются для хранения элементов данных: так,
регистр, состоящий из 1-го триггера (вырожденный случай), хранит 1 бит,
регистр из 8 триггеров — байт (1 байт состоит из 8 битов), регистр из 16
триггеров — слово, соответственно регистр из 32 триггеров используется для
хранения двойного слова. Эти понятия бит, байт, слово, двойное слово ста-
ли общепринятыми в компьютерной отрасли.
Для хранения данных кроме триггеров применяются элементы памяти,
построенные на иных физических принципах: сохранения заряда конден-
сатора, сохранения ориентации магнитного домена и других физических
явлениях. Элементы памяти группируются в ячейки, каждая из которых
предназначена для хранения одного элемента данных, например, байта,
слова, двойного слова. Упорядоченная совокупность ячеек образует блок
памяти. Какой тип элементов данных, (бит, байт, слово и т. д.) хранится в
памяти, выбирается при построении памяти. Важно то, что каждая ячейка
имеет одно-однозначно сопоставленный ей адрес, который используется
при операциях с памятью для доступа к этой ячейке. Значение, запоми-
наемое в ячейке с адресом А, обозначается обычно [А]. Определены две
операции с памятью:
□ запись элемента данных в ячейку памяти с заданными в операции источ-
ником записываемых данных и адресом ячейки памяти, в которую дан-
ные должны быть записаны;
□ чтение элемента данных из ячейки памяти с заданными в операции адре-
сом ячейки памяти и регистром, в который помещаются считанные дан-
ные.
Важной характеристикой памяти служит ее объем, определяемый как макси-
мальное количество элементов данных, которое возможно хранить в ней.
Собственно для понимания того, как устроен процессор, необходимо еще
рассмотреть, как организуется передача данных между регистрами. На
рис. 1.4 изображен регистровый файл, состоящий из л + 1 регистра (каждый
регистр представлен одним триггерам), и мультиплексор. Мультиплексор пред-
ставляет собой блок, позволяющий передать значение, хранимое в триггере
одного (произвольно выбранного регистра), в соответствующий триггер
другого регистра или соответствующие триггеры нескольких регистров этого
файла.
Для того чтобы выполнить эту передачу данных, между регистрами необхо-
димо подать значение 1 на вход вентиля И, подсоединенного другим входом
к единичному выходу триггера регистра, состояние которого передается. На
соответствующие входы вентилей, подключенных к выходам триггеров дру-
гих регистров, должны быть при этом поданы значения 0. Вентиль ИЛИ, к
которому подсоединены все выходы упомянутых выше вентилей И, своим
выходом связан со входами вентилей И, подсоединенных к соответствую-
щим входам триггеров всех регистров файла. Если на другой вход вентиля
И, подсоединенного к входу триггера, будет подана 1, то этот триггер уста-
новится в то же состояние, что и триггер, состояние которого передается.
Таким образом, передача данных между регистрами выполняется при подаче
управляющих сигналов на управляющие входы мультиплексора для выделе-
ния регистра, содержимое которого передается, и подаче соответствующих
управляющих сигналов, обеспечивающих установку триггеров регистра, в
который данные передаются. Требуемую передачу данных из регистра Л/ в
регистр Rj можно записать как Rj <— Rj, i * J, i g {0, 1, ..., n},J g {0, 1, ..., n},
назвав это командой пересылки данных между регистрами.
Рис. 1.4. Схема мультиплексора,
предназначенного для передачи данных между регистрами
Следует отметить, что вместо вентиля ИЛИ в мультиплексоре может ис-
пользоваться так называемое "проводное ИЛИ". При этом выходы всех вен-
тилей И, подсоединенных к выходам триггеров, подсоединяются к шине
(проводнику). Соответственно к этой же шине подсоединяются входы вен-
тилей, через которые выполняется установка триггеров регистрового файла.
На рис. 1.5 показана схема для реализации межрегистровых передач с ис-
пользованием шины.
Приведенные примеры построения триггера, мультиплексора и организации
передачи данных между регистрами демонстрируют способ построения бло-
ков цифровых устройств обработки данных.
Используя некоторое исходное множество блоков, например, реализующих
вентили И, НЕ, ИЛИ, исключающее ИЛИ, можно строить более сложные
блоки, из которых, в свою очередь, еще более сложные. Подобным образом
может быть построено произвольное устройство цифровой обработки данных
|1|. Например, на рис. 1.6, а приведена схема суммирования с учетом перено-
са из i - 1 разряда двух /-х разрядов двоичных чисел, хранящихся в соответст-
вующих регистрах, с получением /-го разряда суммы и переноса в / + 1 разряд.
Схема суммирования двух двоичных чисел приведена на рис. 1.6, б.
а
Рис. 1.6. Схема формирования:
а — поразрядной суммы с выработкой переноса
5 + 23 = 28
Рис. 1.6. Схема формирования:
б — значений двух 5-разрядных pei nci puB
1.1.2. Аппаратная реализация вычислений
Прежде чем переходить к описанию процессоров как таковых, рассмотрим
построение цифрового устройства обработки данных, организацию вычис-
лений в этом устройстве, чтобы впоследствии понять, для чего нужны про-
цессоры, а также то, что цифровую обработку данных можно делать, не ис-
пользуя процессоры.
Для предметного представления проблемы рассмотрим реализацию кон-
кретного вычислительного процесса. Пусть требуется реализовать фильтр
4
у, = Wj х х,_у+|, который формирует по заданной входной бесконечной
последовательности х-з, х-2, х-ь *&> хь ••• последовательность .ио, Уь ••• На
рис. 1.7 представлена одна из возможных реализаций цифрового устройства,
выполняющего требуемое вычисление |2].
R1 R3
R4
- регистр для промежуточного хранения результата
Рис. 1.7. Схемная реализация алгоритма фильтра
При построении устройства использованы регистры, схемы передачи дан-
ных между регистрами, схемы передачи данных между регистрами и функ-
циональными устройствами (ФУ), ФУ: сумматоры и умножители. Детали
построения ФУ из вентилей можно найти в [1J. Для понимания того, как
устроены процессоры, важно представлять, что ФУ использует в качестве
операндов значения из регистров и помещает результат операции в регистр.
Устройство, приведенное на рис. 1.7, функционирует следующим образом.
В очередном такте на вход регистра R\ поступает и запоминается в нем зна-
чение X/. В следующем такте результат умножения X/ на и>| запоминается в
регистре а х,- передается из регистра R\ в регистр Rj. В этом же такте в
регистр /?] заносится х/+ t. Далее легко убедиться, что через 6 тактов после
поступления значения х{ для запоминания в регистре Я| на выходе устрой-
ства появится значение у(.
В представленном устройстве умножитель и сумматор получают данные из
регистров, заранее соединенных с ними в соответствии с реализуемым алго-
ритмом. Для реализации другого алгоритма будет необходим другой набор
ФУ, регистров и мультиплексоров между ними.
Так как в устройстве, приведенном на рис. 1.7, все передачи данных между
регистрами и функциональными устройствами выполняются по тактовым
сигналам, то при повышении тактовой частоты уменьшается время получе-
ния результатов.
Такая организация вычислений называется аппаратной, или схемной в отли-
чие от программной реализации вычислений. При схемной реализации вы-
числений все управляющие сигналы мультиплексоров (шин) фиксированы,
т. е. на соответствующие управляющие входы поданы либо заданные сово-
купности постоянных значений (0 или 1), либо выходы определенных бло-
ков схемы.
Возникает вопрос, приведенная схемная реализации вычислений является
единственно возможной? Ответ на этот вопрос: конечно нет. Можно создать
схемную реализацию требуемого алгоритма, например, с одним функцио-
нальным устройством умножения и одним устройством сложения. Множе-
ство возможных аппаратных реализаций одного и того же алгоритма порож-
дает проблему выбора среди них. При выборе схемной реализации
алгоритма необходимо иметь критерий выбора подходящей реализации.
В качестве такого критерия может выступать, например, минимизация вре-
мени реализации вычислений или объема оборудования. В этом смысле,
применительно к схемной реализации алгоритма, можно говорить о ней,
как об эффективной, если она обеспечивает экстремальное значение ис-
пользуемого критерия.
4
Схемная реализация алгоритма у,- = Wj ххн,\, приведенная на рис. 1.7,
7-1
демонстрирует два способа, применяемые для минимизации времени вы-
числений: параллельность и конвейерность обработки.
Параллельность заключается в одновременном выполнении преобразований
в нескольких функциональных устройствах.
Конвейерность служит частным случаем параллельности, при котором вы-
полнение преобразований, необходимых для получения каждого результата
из однородной совокупности результатов, в нашем примере у/, / = 0, 1, ...
..., N, разбивается на последовательность одинаковых по длительности алго-
ритмических шагов. Для выполнения каждого шага алгоритма используются
отдельные устройства, совокупность преобразований в которых составляет
весь алгоритм требуемого преобразования. Результат каждого устройства,
входящего в конвейер, фиксируется в регистре, и следующее устройство ис-
пользует этот предварительно сохраненный результат, что позволяет совмес-
тить во времени выполнение шага для вычисления у, с выполнением преды-
дущего шага для вычисления у/+[. В рассмотренном примере устройства
конвейера, выполняющие шаги алгоритма, реализуют операции умножения
на коэффициенты wj, wj, и»з, щ и операции суммирования. Каждый шаг
выполняется параллельно с другими шагами, и при полной загрузке конвей-
ера одновременно вычисляются 4 значения выходной последовательности yt,
I = 0, 1, N. Достоинством конвейерной реализации служит то, что после
того, как все устройства конвейера загружены работой, очередной результат
преобразования выдается на выходе через промежуток времени, равный
длительности одного шага. И это при том, что время получения этого ре-
зультата равно суммарной длительности всех шагов конвейера.
1.1.3. Программная реализация вычислений
Схемная реализация вычислений требует создания уникальной схемы объе-
динения регистров и функциональных устройств, соответствующей задан-
ному алгоритму. Поэтому переход от реализации одного алгоритма к реали-
зации другого фактически требует построения новой вычислительной
установки. При практических вычислениях это очень трудоемкий процесс.
Для обеспечения возможности выполнения разных алгоритмов при одной и
той же схеме объединения регистров и функциональных устройств приме-
няют программную реализацию вычислений.
При программной реализации вычислений изначально устанавливается на-
бор регистров, функциональных устройств и мультиплексоров, через кото-
рые возможны передачи данных между ними. Задается также набор команд
(преобразований), служащий для записи алгоритма требуемого вычисления.
Каждая команда, будучи исполняемой, вырабатывает совокупность управ-
ляющих сигналов, подаваемых на некоторые мультиплексоры, что ведет к
межрегистровым передачам данных с возможным преобразованием данных
в функциональных устройствах. Собственно воздействие команды определя-
ется тем, на какие мультиплексоры поступают управляющие сигналы и ка-
кие значения имеют эти сигналы.
Таким образом, при программной реализации вычислений за счет возмож-
ности исполнения различных последовательностей команд (разных команд,
исполняемых в разном порядке) возможно при одной и той же схеме соеди-
нения регистров, мультиплексоров и функциональных устройств реализо-
вать различные алгоритмы. Конечно, следует отметить, что исходная схема
объединения регистров и функциональных устройств, а также набор исполь-
зуемых команд могут больше подходить для выполнения одних алгоритмов
и препятствовать эффективной реализации других. Однако это служит пла-
той за то, что при реализации различных алгоритмов используется одно и то
же устройство.
Важно понимать, что команды в представленном цифровом устройстве об-
работки подаются на это устройство извне, из другого устройства, которое
специально должно быть создано для исполнения каждого алгоритма. Таким
образом, в целом устройство состоит из двух частей: неизменяемой при реа-
лизации любых алгоритмов, в которой собственно хранятся и обрабатыва-
ются данные, и изменяемой части, обеспечивающей последовательность вы-
дачи команд, необходимую для реализации вычисления. Не следует думать,
что подобная конструкция цифрового устройства обработки данных является
чисто гипотетической. Именно так было организовано английское цифровое
устройство Colossus, использовавшееся для расшифровки немецкой пере-
писки в годы Второй мировой войны. В создании этого устройства участво-
вал А. Тьюринг, который разработал "машину Тьюринга", имеющую ленту с
ячейками для хранения данных и обрабатывающую элемент, внешний по
отношению к ленте, но обеспечивающий подачу команд, модифицирующих
ячейки ленты.
Попробуем представить гипотетическое цифровое устройство обработки,
пригодное, в том числе, для реализации рассмотренного фильтра, состоящее
из регистрового файла, блока памяти и функционального устройства, спо-
собного выполнять некоторый набор операций, включая сложение и умно-
жение. Пусть это устройство включает мультиплексор, обеспечивающий пе-
редачи данных между регистрами, между регистрами и функциональным
устройством с сохранением результата в одном из регистров, а также пере-
дачи данных между памятью и регистром.
4
Набор команд, достаточный для выполнения вычислений у, - хх,..Л1,
4=1
состоит из следующих команд (после двойного слеша следует комментарий):
□ R\ <— Т?2 // содержимое регистра /?? пересылается в регистр R\~,
□ R\ <- /?2 op /?з // над содержимым регистров Ri и R$ выполняется опера-
ция ор и результат записывается в регистр R\ ;
□ /?1 <- |Т?2| // содержимое ячейки памяти, адрес которой хранится в реги-
стре /?2, пересылается в регистр Ro
□ [/?i] «- Т?2 // содержимое регистра /?2 переписывается в ячейку памяти,
адрес которой содержится в регистре /?|.
Для программной реализации вычислений должны быть явно определены
размещение обрабатываемых данных и результатов вычислений, а также на-
чальные значения используемых регистров и ячеек памяти, если из них чи-
таются данные.
Для выполнения требуемого нам вычисления будем полагать, что значения
X/, / = О, 1, .... N хранятся в ячейках памяти с адресами А|ШЧ (.г), А,|ач (х) + |, ...
..., АНач (.v) + л, а вычисленные значения у, записываются в ячейки памяти
Апач О'), Апач О') + I > •••> Анач О') + »• Кроме того, для того, чтобы получить зна-
чение уо, требуются значения х0, х_ь х-2, х-з. Если эти значения не заданы
(например, изначально определены как 0), то надо понимать, что первым
правильно вычисленным значением в последовательности у/, i = 0, 1, N,
будет уз.
Для программной реализации вычислений, предложенной в [2], требуется
разместить в памяти последовательность х,-, i= 0, 1, N и задать следую-
щие начальные значения регистров Ах, Ау, W\, И^, И'з, И^, £3, £2, Е\'-
:= Ана<| (X) ~ 1 >
Ау := Анач (у) ~ ' 5
H'i := и-о;
'= И'Г.
И'з := w2;
№4 := W3;
£3 :=х_3;
£2 :=х_2;
^^Х-ь
Собственно вычисления состоят в (л + 1)-кратном выполнении последова-
тельности команд, составляющем тело цикла вычислений. Таким образом,
должно быть сформировано управляющее воздействие для пересылки из
регистра £3 в регистр £4, затем — для пересылки из регистра £2 в регистр £3
и т. д. После команды [Ау] <- С( должна снова выполняться команда £4 <- £3.
Тело цикла имеет вид:
£4 <- £3 // засылка содержимого элемента х _ 3 или значения О
£3 <- £2 // засылка содержимого элемента х / - 2 или значения О
£2 <- £ // засылка содержимого элемента х, - । или значения О
Ах «— А х+1
£| <- [Ах] // засылка содержимого элемента х ,•
Cj <- И', х £|
C2<-FT2x£2
С] <— С| С2
С2 <- ^3 X £з
С| <— С| + с2
С2 <— И4 х £4
С1 <- С| + с2
А у <— А у 4" 1
[Ау] <— С|
Используется 12 регистров Е\, Ei, Еу, Е4, W\, И^, И^, Ид, С(, Ах, Ау, над
содержимым которых производятся операции. Следует отметить, что для
именования регистров при написании программ может использоваться мне-
моника, облегчающая понимание смысла программы.
1.1.4. Структура и функциональная
организация процессора
Программная реализация вычислений требует подачи определенной после-
довательности команд для выполнения необходимого вычисления. Конечно,
построить устройство, выдающее требуемую реализуемым алгоритмом по-
следовательность команд, проще, чем собрать вычислитель из отдельных
электронных компонентов целиком, включая регистры, память, функцио-
нальные устройства, но и это достаточно трудоемкий процесс.
Собственно, понятие "процессор" появилось как результат творческого оза-
рения [3] группы инженеров, работавших под техническим руководством
Дж. Мочли и Дж. Эккерта над созданием ENIAC (Electronic Numerical Inte-
grator and Computer — электронного цифрового интегратора и вычислителя),
при проектировании совместно с математиком Дж. фон Нейманом компью-
тера EDVAC. Пришедшая им в головы идея состояла в том, что команды,
исполнение совокупности которых необходимо для реализации вычисления,
можно так же как данные хранить в памяти, а для их выполнения создать
схемную реализацию алгоритма, обеспечивающего требуемый порядок ис-
полнения команд. Этот схемно реализованный алгоритм и был впоследст-
вии назван процессором.
Суть этого алгоритма сводится к циклическому исполнению следующих
шагов, показанных на рис. 1.8.
Рассмотрим более детально содержание шагов, составляющих алгоритм
функционирования процессора.
На первом шаге, называемом "выборка из памяти очередной команды", из
ячейки памяти, адрес которой содержится в специально введенном регистре
PC, который именуется счетчиком команд (Program Counter), извлекается
команда, помещаемая в регистр команд.
Так как содержимое регистра счетчика команд определяет, какая команда
будет исполняться следующей, то рассмотрим, как формируется значение
этого регистра.
Исходно предполагается, что команды программы размещаются в ячейках
памяти с последовательными адресами Аа, Ац+1, Ан+2, .... где Ан — началь-
ный адрес области памяти, в которой размещаются команды. Эта последо-
вательность размещения команд интуитивно понимается как порядок напи-
сания команд программистом при формулировании им алгоритма решаемой
задачи с помощью предоставленного набора команд процессора. Поэтому,
как правило, для'определения адреса следующей выполняемой команды не-
обходимо просто увеличить на единицу значение PC, что и определило его
название как счетчика команд.
Рис. 1.8. Алгоритм функционирования процессора
Для изменения порядка выполнения команд, когда следующей должна вы-
полняться не команда, адрес которой равен увеличенному на I адресу вы-
полняемой команды, а команда из ячейки памяти с адресом Апер, специаль-
но вводятся команды переходов. Команды переходов изменяют содержимое
регистра счетчика команд.
Таким образом, адрес следующей команды определяется либо приращением
на I значения счетчика команд, либо этот адрес формируется выполняемой
командой перехода.
На шаге, называемом "декодирование команды", команда, помещенная в
регистр команд, подвергается разбору на предмет выявления функцио-
нального преобразования, задаваемого этой командой, а также регистров и
ячеек памяти, используемых в качестве источников операндов и места со-
хранения результата. Собственно на шаге декодирования команды выпол-
няется подготовка к подаче управляющих сигналов на мультиплексоры для
передачи данных между регистрами, функциональными устройствами и
ячейками памяти.
Шаги "исполнение команды" и "запись результата” производят действия,
понятные из их названия.
В качестве примера рассмотрим некоторый модельный процессор DLX |4].
Набор команд процессора DLX состоит из команд трех типов:
□ чтения/записи;
□ преобразований в арифметико-логическом устройстве (АЛУ);
□ переходов.
Форматы этих типов команд представлены на рис. 1.9 а, б, в соответственно.
6 5 5 16
Код операции rsl rd Непосредственный операнд
О 31
а
6 5 5 5 11
Код операции rsl rs2 rd Функция
О
Код операции Смещение
О
31
Рис. 1.0. Форматы команд процессора DLX:
а — чтения/записи; б — АЛУ преобразований; в — перехода
Команды чтения/записи в зависимости от значения, содержащегося в 6-бит-
ном поле "код операции", выполняют следующие действия:
□ пересылают данные из регистра источника rsl в регистр результата rd;
□ пересылают 16-битную константу, содержащуюся в поле "непосредствен-
ный операнд", в регистр rd;
□ пересылают данные из регистра в память и из памяти в регистр.
Команды АЛУ преобразований, используя хранящиеся в регистрах rsl и rs2
операнды, выполняют над ними или над одним из них операцию, задаваемую
полями "код операции" и "функция", и помещают результат в регистр rd.
Команды перехода могут быть безусловными или условными, т. е. выпол-
няющими переход только при значении "истина" некоторого предиката, за-
даваемого кодом операции. В случае если переход выполняется, то к теку-
щему значению счетчика команд добавляется 26-битное содержимое поля
"смещение" команды перехода. Новое содержимое счетчика команд опреде-
ляет адрес команды, следующей за командой перехода. Константа в поле
команды "смещение" может увеличивать или уменьшать значение счетчика
команд в зависимости от того, представляет она собой положительное или
отрицательное число.
Исходя из количества битов в полях команд, используемых для задания ре-
гистров rsl и rs2 источников операндов и регистра результата rd, можно по-
нять, что система команд предусматривает использование 32 регистров, Ло,
Л|.,,, Л3,. Два из этих регистров — специализированы, остальные универ-
сальны и могут использоваться для записи и чтения данных. Регистр Rq
имеет постоянное значение 0. В регистр Л3| записывается старое значение
счетчика команд, если выполняется команда перехода, при которой в счет-
чик команд заносится новое значение (PC + смещение).
Специализация регистра R^\ позволяет ввести механизм работы с подпро-
граммами. В любом месте программы можно выполнить команду перехода
на некоторый фрагмент команд, составляющих подпрограмму. Эта подпро-
грамма реализует требуемое пользователю часто встречающееся преобразо-
вание, например, вычисление тригонометрической функции sin(x). Каждая
подпрограмма завершается командой перехода, в которой поле "смещение"
сформировано с использованием значения из Л3|, что позволяет автомати-
чески вернуться из подпрограммы по завершении к выполнению команды,
следующей за командой перехода, вызвавшей переход к подпрограмме.
Структура процессора DLX представлена на рис. 1.10.
Все регистры процессора являются 32-битными. Показанные на структур-
ной схеме пути передачи данных внутри процессора также являются 32-
битными. На структурной схеме представлены только магистрали передачи
данных, сигнальные линии управления не показаны. Рассмотрим функцио-
нирование блоков процессора, схемно реализующих алгоритм процессора,
приведенный на рис. 1.8.
Мультиплексор блока выборки команд служит для выдачи в память либо
адреса команды из счетчика команд PC, либо адреса данных, сформирован-
ного в АЛУ при выполнении команды пересылки, задающей обмен между
регистром и ячейкой памяти.
Память получает адрес по линии "выдача адреса" и возвращает команду или
данные, если к памяти идет обращение по чтению, или использует этот ад-
рес и данные с магистрали "выдача данных в память" для записи данных в
ячейку памяти с этим адресом.
Рис. 1.10. Структура процессора DLX
В случае если из памяти поступает команда, то демультиплексор блока вы-
борки команд направляет ее в блок декодирования. При поступлении из
памяти данных в ходе выполнения команды пересылки эти данные записы-
ваются через АЛУ в соответствующий регистр, заданный в этой команде.
Счетчик команд PC блока выборки команд может получать приращение +1
в специальном блоке, функционирующем параллельно с АЛУ, либо в PC
записывается сформированный в АЛУ адрес перехода в случае выполнения
команды перехода.
В блоке декодирования определяются указанные в команде регистры из ре-
гистрового файла. Содержимое регистров операндов rsl и rs2 фиксируется в
регистрах А и В соответственно. Если используется непосредственно задан-
ный операнд, то он также фиксируется в регистре В.
После выполнения операции в АЛУ результат также может запоминаться в
одном из регистров регистрового файла.
Кроме данных из регистрового файла, в регистры А и В при выполнении
команд перехода может записываться значение счетчика команд PC + 1.
После определения структуры и функциональной организации процессо-
ра рассмотрим, как будет задаваться для него программа вычислений (лис-
тинг 1.1), и в чем собственно будет состоять ее отличие от программы, при-
веденной в разд. 1.1.3.
М: Ах < А«тч(х) ~ 1;
Ау < Анач (у) ~ 1 г
W] Wo;
W2 <— Wj;
W3 <— W2;
W4 <— Wj;
Е3 <— х-з;
Ег <— Х-2;
Ei <- х 1;
i <— 0;// вводится регистр i, в котором будет храниться количество
произведенных повторений тела цикла;
Ml: Е4 е- Ез // засылка содержимого элемента х.-.< ;
Е3 <— Е? // засылка содержимого элемента х,-?
Е2 <— Ei // засылка содержимого элемента xi-i
Ах Ах + 1
Е] <— [Ах] / / засылка содержимого элемента Xj
Ci <- Wi * Ei
c2 w2 * e2
Ci <— Ci + С?
С2 <- W3 * Ез
С] <— С) + С?
С2 <- W4 * Е<
С1 Cl + С2
Ау 4— Ay + 1
[Ау] <•— Ci
i <- i + 1;
jump (i < n) Ml// переход при значении i, меньшем или равном п, на
команду с адресом Ml, а при значении i, большем п,
переход на следующую команду;
stop// команда завершения вычислений
Собственно отличий немного, но они носят принципиальный характер.
Введен регистр i, в котором хранится количество произведенных повторе-
ний тела цикла. После каждого выполнения тела цикла значение в регистре
(увеличивается на 1. Следующей командой условного перехода проверяется
выполнение условия / < л. Если условие выполнено, то происходит переход
на команду с адресом Ml. При не выполнении условия в случае /> п все
необходимые повторения вычислений тела цикла выполнены. Следующей
командой будет команда stop, завершающая вычисления.
Вычисления инициируются загрузкой в счетчик команд PC адреса М первой
команды программы.
1.1.5. Архитектура, процессора
Под архитектурой процессора понимается его представление с точки зрения
программиста. В первом приближении можно сказать, что архитектура про-
цессора это набор его команд [1]. В свою очередь, структура задаст набор
компонентов процессора и соединений между компонентами. Наконец, ор-
ганизация функционирования определяет то, как компоненты взаимодейст-
вуют друг с другом при выполнении вычислений.
Команды бывают разных типов: "регистр <- регистр, регистр", "регистр <-
регистр, память", "регистр <— память, память", "память <— память, память",
"память <— регистр, память", "регистр <- память", "память <— регистр" и др.
Тип команды определяется тем, откуда берутся операнды и куда помеща-
ется результат. Так, в команде типа "регистр «- регистр, регистр" источни-
ками операндов служат регистры, и регистр же используется для сохране-
ния результата.
Команды делятся на два класса: скалярные и векторные. Команда называ-
ется скалярной, если ее входные операнды и результат являются числами
(скалярами).
Команда называется векторной, если входные операнды и, возможно, ре-
зультат являются вектором (массивом) чисел, а для преобразования данных
массива (вектора) используется одна векторная команда. Примером вектор-
ной команды служит команда, при выполнении которой умножаются два
очередных элемента двух массивов, далее произведение суммируется с со-
держимым некоторого заданного регистра, после чего модифицируются ад-
реса памяти для доступа к двум очередным элементам массивов. Указанная
последовательность действий повторяется заданное число раз по счетчику,
определенному в теле команды.
Само появление векторных команд обусловлено стремлением ускорить об-
работку массивов данных за счет исключения затрат времени на выборку и
дешифрацию команд обработки, одинаковых для всех компонентов входных
массивов.
Однако использование векторных команд требует подготовки программи-
стом векторизованного кода программ, что, вообще говоря, эквивалентно
разработке параллельных программ.
Резонно возникает вопрос, а существует ли оптимальная архитектура процес-
сора и будет ли таковая когда-нибудь создана? Исторически архитектуры про-
цессоров возникали в результате осмысленного выбора, исходя из предпола-
гаемого набора задач, которые должны были исполняться на этих
процессорах, и преемственности разработанных программ. И, хотя будет рас-
смотрена проблема стандартизации архитектур, по-видимому, до появления
единой архитектуры процессора еще достаточно далеко. Имеющиеся в распо-
ряжении разработчиков процессоров аппаратные ресурсы позволяют собрать в
одном процессоре все известные архитектурные приемы повышения произво-
дительности, сообразуясь только с их взаимной совместимостью.
1.1.6. Прерывание
В разд. 1.1.4 были рассмотрены два компонента компьютера: процессор и
память. Третьим компонентом служат устройства ввода/вывода, называемые
также внешними устройствами, через которые в компьютер поступает ин-
формация: программы и данные. Разнообразие внешних устройств доста-
точно широко, и обсуждение их особенностей не входит в задачу настоящей
книги. Однако взаимодействие устройств с процессором и памятью носит
общий для них всех характер, обусловленный необходимостью синхрониза-
ции действий процессора и внешних устройств по отношению к памяти.
Следует отметить, что термин "компьютер" устойчиво заменил более длин-
ный "вычислительная машина". Использование составных терминов со ело-
вами "машина" и "система", не добавляя смысла, вносит излишнюю слож-
ность в языковые конструкции.
Вообще говоря, возможен программный ввод/вывод, при котором организа-
ция ввода/вывода не требует расширения ранее уже введенных концепту-
альных понятий. Для программного ввода и вывода выделяются соответст-
венно по два регистра, один из которых служит для хранения элемента
данных, а другой для хранения бита готовности. При этом процессор и
внешнее устройство исполняют следующий протокол.
Если внешнее устройство готово к передаче данных в память, в дальнейшем
будем использовать термин "хочет передавать данные", то оно анализирует
состояние бита готовности регистра ввода процессора. Будем полагать, что
если бит готовности равен 1, то процессор еще не считал предыдущий эле-
мент данных, внесенный внешним устройством, и устройство должно ждать,
пока процессор считает этот элемент данных и установит значение 0 бита
готовности регистра ввода. При обнаружении внешним устройством значе-
ния 0 бита готовности регистра ввода устройство может записывать в ре-
гистр ввода очередной элемент данных.
Аналогично, при выводе данных из процессора внешнее устройство анали-
зирует значение бита готовности регистра вывода. Если этот бит равен 1, то
внешнее устройство может забирать элемент данных из регистра вывода,
после чего оно должно установить бит готовности регистра вывода равным
0. Соответственно процессор должен проверять значение бита готовности
регистра вывода и заносить данные в регистр вывода только при значении
бита готовности, равном 0. При значении бита готовности, равном 1, про-
цессор должен ждать освобождения внешним устройством регистра вывода.
Программный ввод/вывод предполагает, что процессор исполняет програм-
му, в которой с предусмотренной периодичностью выполняются условные
команды перехода, анализирующие значения битов готовности регистров
ввода и вывода. Этот анализ, например, может осуществляться командой
условного перехода, которая при значении бита готовности регистра вывода,
равном 1, выполняет переход на саму себя. Эта команда будет выполняться
в таком "зацикленном" режиме до тех пор, пока внешнее устройство не за-
берет данные из регистра вывода и не установит бит готовности равным 0.
Обнаружив это при очередном исполнении, команда перехода передаст
управление следующей за ней команде, которая служит первой командой
участка программы, продолжающего вывод элементов данных.
Конечно, можно представить себе гармоничное взаимодействие процессора
и внешнего устройства, когда участки программы, выполняющие проверку
битов готовности и ввод/вывод данных, так размещены по телу программы,
что внешнее устройство успевает к очередной проверке записать или счи-
тать очередной элемент данных. Но такой учет соотношения быстродейст-
вия процессора и внешних устройств требует больших затрат и повторного
программирования при изменении характеристик внешних устройств и
процессоров. Однако более важным обстоятельством, препятствующим воз-
можности такой гармоничной организации, служит непредсказуемость вре-
мени выполнения участков программы, содержащих команды условных пе-
реходов, передающих управление в зависимости от обрабатываемых данных,
и непредсказуемость времени срабатывания внешних устройств.
Таким образом, организация программного ввода/вывода сопряжена с поте-
рями времени, обусловленными выполнением команд условного перехода,
служащими только для синхронизации процессора и устройств ввода/
вывода.
Для того чтобы избежать выполнения этих лишних команд условного пере-
хода. была введена концепция прерывания. Суть ее состоит в том, что про-
цессор па шаге алгоритма "выборка из памяти очередной команды" прежде,
чем выбирать очередную команду, анализирует значения битов готовности
регистров ввода/вывода. Если при этом обнаруживается, что необходимо
произвести ввод или вывод очередного элемента данных, то наступает пре-
рывание: текущее значение счетчика программ переписывается в некоторый
регистр, а затем в счетчик команд заносится адрес первой команды про-
граммы обработки прерывания, выполняющей ввод или вывод элемента
данных. Последняя выполняемая команда программы обработки прерыва-
ния пересылает сохраненное значение в счетчик команд, возвращая тем са-
мым процессор к исполнению прерванной программы.
Программа обработки прерываний и прерываемая программа используют
одно и то же множество регистров процессора, и поэтому при прерывании
должны также, наряду со счетчиком команд, сохраняться значения регист-
ров. Это может быть выполнено либо как составная часть алгоритма про-
цессора при соответствующих затратах оборудования, либо как часть про-
граммы обработки прерывания. В последнем случае эта программа должна
при инициации своей работы сохранить в памяти значения регистров, а по
завершении работы вернуть регистрам сохраненные значения.
Для временного хранения значений счетчика команд и других регистров ис-
пользуются ячейки памяти. Ясно, что программы не должны использовать
эту область памяти для хранения в ней своих данных, иначе они будут утра-
чены при обработке прерываний. Обычно эта область памяти организуется
как стек, для чего снабжается специальным регистром SP (Stack Pointer —
указатель стека), служащим указателем на первую свободную ячейку памяти
этой области. При записи в стек значение регистра SP увеличивается на
число, равное количеству записанных ячеек, при чтении, соответственно,
указатель стека уменьшается на количество прочитанных ячеек.
Исполнение процессором команд одной программы называется протекани-
ем вычислительного процесса. Сохраняемые значения счетчика команд и
других регистров образуют контекст процесса. Размещение контекстов про-
цессов в стеке позволяет организовать многоуровневое прерывание, при ко-
тором в программах обработки прерываний также допускаются прерывания.
1.1.7. Организация многоуровневой
памяти компьютера
Процессор в том виде, как он представлен, вполне работоспособен логиче-
ски, и даже представляет собой идеальный процессор, с которым хотел бы
иметь дело каждый программист. Однако в действительности процессоры
имеют более сложную архитектуру, что обусловлено особенностями исполь-
зуемой для их построения элементной базы. Увеличение производительно-
сти процессоров достигается за счет повышения тактовой частоты логиче-
ских элементов и элементов памяти, а также количества этих элементов,
позволяющих вводить параллелизм и конвейерность обработки данных в
процессоре. Для каждого уровня развития элементной базы существуют ог-
раничения по верхнему пределу тактовой частоты и количеству элементов,
обусловленные физическими особенностями распространения электриче-
ских импульсов, надежностью элементов и стоимостью процессора.
К числу ограничений относится также всегда существовавший разрыв между
быстродействием логических элементов и элементов памяти. Этот разрыв
имеет тенденцию к увеличению при возрастании степени интеграции
(количества элементов в единице объема) и быстродействия элементной ба-
зы. Поэтому в основе архитектуры всех типов процессоров должны лежать
идеи, позволяющие при принятых допущениях об организации вычислений
преодолеть отрицательное влияние на производительность медленной по
сравнению с процессором памяти.
Память может быть реализована на основе использования разных физиче-
ских принципов хранения информации: логических схем (триггеров), кон-
денсаторов и токовых ключей, магнитных доменов, соответственно в виде
регистров, микросхем статической памяти, микросхем динамической памя-
ти, ферритовой, дисковой памяти и других типов блоков памяти. Каждый
тип памяти имеет характерные для него быстродействие и объем, обуслов-
ленный физическими и стоимостными ограничениями. Кроме того, для лю-
бого типа памяти при увеличении объема памяти возрастает время доступа к
ней, а также более быстродействующий тип памяти имеет большую стои-
мость хранения единицы информации.
Идеальная память должна обеспечивать процессор командами и данными
так, чтобы не вызывать простоев процессора в ожидании запрошенных из
памяти данных. При этом память должна иметь большую емкость. В совре-
менных условиях уменьшение времени доступа достигается введением
многоуровневой иерархии памяти.
Время доступа зависит от объема и типа используемой памяти. В этих усло-
виях, построив двухуровневую память, в которой помимо большой основной
памяти имеется небольшая более быстрая буферная память, можно пересы-
лать данные для обработки в буферную память, там их обрабатывать, ис-
пользуя память с меньшим временем доступа по сравнению с основной па-
мятью, а после обработки — отправлять обратно в основную. Если удается
организовать вычисления так, что за время обработки одной порции данных
можно доставить из основной памяти в буферную другую порцию данных,
то обработка выполняется с использованием только быстрой памяти. Ясно,
что гак организовать вычисления удастся далеко нс всегда. Поэтому воз-
можны простои процессора в ожидании необходимых данных из основной
памяти. Однако для ряда задач совмещение обработки данных в буферной
памяти и пересылки данных между буферной и основной памятью дает эф-
фект сокращения времени доступа в память. Иными словами, память для
процессора представляется как память большого объема, равного объему
основной памяти, имеющая быстродействие такое, как у быстродействую-
щей памяти малого объема.
Этот эффект уменьшения времени доступа в память достигается при специ-
альном способе программирования, обеспечивающем локализуемое™ обра-
батываемых данных, когда процессор многократно использует одни и те же
данные для выработки результата.
Соответственно, реализуя основную память двухуровневой памяти как ие-
рархическую двухуровневую, можно построить трехуровневую иерархиче-
скую память, и, продолжая это построение дальше, — память с произволь-
ным числом уровней иерархии.
В процессорах применяются три механизма работы с памятью, основанные
на использовании локализуемое™ обрабатываемых данных: кэш-память,
страничная или сегментная память и расслоение памяти.
3 '
1.1.8. Кэш-память
В связи с тем, что локально обрабатываемые данные могут возникать в ди-
намике вычислений и не быть сконцентрированными в одной области при
ста1ическом размещении в основной памяти, буферную память организуют
как ассоциативную, в которой данные содержатся в совокупности с их адре-
сом в основной памяти. Ассоциативная память позволяет выбирать среди
хранящихся в ней элементов данных те, которые имеют совпадающие с
шаблоном выборки, называемых ключом, значения разрядов [1]. Например,
если ключ имеет значение 1 в третьем разряде и значение 0 в пятом, то при
выборке будут найдены все ячейки ассоциативной памяти, в которых третий
разряд равен 1, а пятый равен 0.
Обращение к такой памяти с использованием поля адреса как ключа позво-
ляет выбрать данные независимо от места их расположения в ассоциативной
памяти. Хранение адресов вместе с данными позволяет однозначна иденти-
фицировать данные их адресами при передаче между уровнями памяти и
легко находить данные на любом уровне памяти. Такая буферная память
получила название кэш-памяти. Кэш-память позволяет гибко согласовывать
структуры данных, требуемые в динамике вычислений, со статическими
структурами данных основной памяти.
Кэш-память имеет совокупность строк (cache-lines), каждая из которых со-
стоит из фиксированного количества адресуемых единиц памяти (байтов,
слов), хранящихся в основной памяти как ячейки с последовательными ад-
ресами. Типичный размер кэш-строки: 16, 64, 128, 256 байтов.
Так как в кэш-памяти находятся копии ячеек основной памяти, работа с
кэш-памятыо при доступе к памяти по чтению и записи различается. Чте-
ние данных из кэш-памяти не вызывает никаких проблем. Данные, если
они есть в кэш-памяти, передаются процессору. В этом случае говорят о
попадании (hit) процессора в кэш-память. Если копии данных с требуемым
адресом нет в кэш-памяти, то говорят о промахе (miss) процессора и выпол-
няют доставку копии требуемых данных в кэш-память.
Однако в случае доступа по записи должна быть обеспечена когерентность
(согласованность) кэш-памяти и основной памяти: соответствие между дан-
ными в оперативной памяти и кэш-памяти, обеспечиваемое внесением из-
менений в те области оперативной памяти, данные которых в кэш-памяти
подверглись модификации. Когерентность данных обеспечивается парал-
лельно с основными вычислениями. Существует несколько способов ее реа»
лизации и, соответственно, несколько режимов работы кэш-памяти.
't/один, самый простой в реализации, но не самый эффективный по быстро-
' действию, способ предполагает внесение изменений в основную память сра-
зу после изменения данных в кэш-памяти. При этом процессор простаивает
в ожидании завершения записи в основную память. В основной памяти
поддерживается правильная копия данных кэш-памяти, и при замене строк
не требуется никаких дополнительных действий. Кэш-память, работающая в
таком режиме, называется памятью со сквозной записью (write-through).
Х] Другой способ предполагает отображение изменений в основной памяти
' только в момент замены кэш-строки в кэш-памяти. Если данные по адресу
памяти, в который необходимо произвести запись, находятся в кэш-памяти,
то идет запись только в кэш-память. При отсутствии данных в кэш-памяти
производится запись сразу в основную память. Такой режим работы кэш-
памяти получил название "обратная запись" (write-back).
Существуют также промежуточные варианты (buffed write though), при ко-
торых запросы на изменение в основной памяти буферизуются и не за-
держивают процессор на время операции записи в память. Эта запись вы-
полняется по мере возможности доступа контроллера кэш-памяти к ос-
новной памяти.
Наиболее часто используются три способа организации кэш-памяти, отли-
чающиеся объемом аппаратуры, требуемой для их реализации. Это так на-
зываемые: кэш-память с прямым отображением (direct-mapped cache), мно-
жественно ассоциативная кэш-память (set-associative cache) и ассоциативная
кэш-память (fully associative cache).
При использовании кэш-памяти с прямым отображением адрес каждой
ячейки основной памяти представляется как набор трех полей, составляю-
щих группы старших, средних и младших разрядов адреса, соответственно
поля "тег", поля "номер кэш-строки", поля "смешение”. Например, при 16-
разрядном адресе старшие 5 разрядов могут представлять тег, следующие
7 разрядов — номер кэш-строки и последние 4 разряда — смещение в кэш-
строке. В этом случае кэш-строка содержит значения последовательности
16-ти ячеек основной памяти в порядке возрастания их адресов.
Кэш-память с прямым отображением представляет собой набор кэш-строк,
каждая из которых содержит компонент тег и элементы памяти кэш-строки,
адрес которых идентифицируется смешением относительно начала кэш-
строки. В случае приведенного примера общее количество кэш-строк в кэш-
памяти равно 27 или 128.
При этом устанавливается однозначное соответствие между адресом элемен-
та основной памяти и возможным расположением этого элемента в кэш-
памяти, а именно: элемент памяти всегда располагается в кэш-строке, зада-
ваемой полем "номер строки" адреса, и находится на позиции строки, зада-
ваемой полем "смещение" адреса.
При обращении процессора к памяти возможны только две ситуации: со-
держимое ячейки памяти с заданным в запросе адресом либо находится в
кэш-памяти, либо нс находится. В первом случае говорят о попадании (hit)
в кэш-память, во втором — о промахе (miss) в кэш-память.
Проверка того, что имеет место: попадание или промах в кэш-память опре-
деляется анализом значения тега кэш-строки, номер которой равен значе-
нию поля "номер строки" адреса. Если тег строки кэш-памяти равен полю
"тег" адреса, то элемент данных содержится в кэш-памяти. В этом случае
адресуемая ячейка памяти имеет копию значения в кэш=строкс в позиции,
определяемой полем "смещение" адреса.
В случае если тег соответствующей строки кэш-памяти не совпадает с полем
тега адреса, необходима подкачка в кэш-память строки с заданным в адресе
тегом. В случае кэш-памяти с обратной записью требуемая кэш-строка про-
сто подкачивается из основной памяти. При использовании кэш-памяти с
буферизированной и обратной записями прежде, чем подкачивать кэш-
строку, требуется передать в основную память все модифицированные пре=
дыдущими записями кэш-строки. Только после этого требуемая кэш-строка
может быть переслана в кэш-память. Иначе результаты предыдущих команд
записи будут потеряны.
Так как для определения наличия нужной строки данных в кэш-памяти тре-
буется только одно сравнение тегов заданной строки и адреса, а само заме-
щение строк выполняется по фиксированному местоположению кэш-строки
в кэш-памяти, то объем оборудования, необходимый для реализации этого
типа кэш-памяти, достаточно мал.
Недостатки этой организации очевидны. Если программа использует пооче-
редно ячейки памяти, адреса которых имеют одно и то же значение поля
"номер строки", но разные значения поля "тег", то это вызывает при каждом
обращении замену кэш-строки с обращением к данным основной памяти.
Ассоциативная кэш-память использует двухкомпонентное представление
адреса: группа старших разрядов трактуется как тег, а группа младших раз-
рядов — как смещение в кэш-строке.
Нахождение строки в кэш-памяти определяется совпадением тега-строки со
значением тега адреса. Количество строк в кэш-памяти может быть произ-
вольным (естественное ограничение — количество возможных значений
тегов). Поэтому при определении нахождения требуемой строки в кэш-
памяти необходимо сравнение тега адреса с тегами всех кэш-строк кэш-
памяти. Если выполнять это последовательно, строка за строкой, то время
выполнения сравнений будет непозволительно большим. Поэтому сравне-
ние выполняется параллельно во всех строках с использованием принципов
построения ассоциативной памяти, что и дало название этому способу орга-
низации кэш-памяти.
При отсутствии необходимой строки в кэш-памяти одна из его строк долж-
на быть заменена на требуемую. Используются разнообразные алгоритмы
определения заменяемой строки, например циклический, замена наиболее
редко используемой строки, замена строки, к которой дольше всего не было
обращений, и др.
Достоинства ассоциативной кэш-памяти очевидны. Недостаток — слож-
ность организации ассоциативного поиска, предполагающая использование
достаточно большого объема оборудования, что ограничивает объем кэш-
памяти.
Множественно-ассоциативная кэш-память комбинирует оба описанных
подхода: кэш-память состоит из набора ассоциативных блоков кэш-памяти.
Средний компонент адреса задает, в отличие от прямо адресуемой кэш-
памяти, не номер строки, а номер одного из ассоциативных блоков. При
поиске данных ассоциативное сравнение тегов выполняется только для на-
бора блоков (возможна организация кэш-памяти, когда таких наборов не-
сколько), номер которого совпадает со средним компонентом адреса. По
количеству п ассоциативных блоков кэш-память называется л-входовой.
Обычно л выбирается равным 4 и более, в разумных пределах.
Современная типовая иерархия памяти для однопроцессорных архитектур
выглядит следующим образом:
□ регистры 64—256 слов со временем доступа I такт процессора;
□ кэш первого уровня — 32 Кбайт с временем доступа 1—2 такта;
□ кэш второго уровня — 256 Кбайт с временем доступа 3—5 тактов;
□ основная память — до 4 Гбайт с временем доступа 12—55 тактов.
1.1.9. Страничная организация памяти
Еще одним, после использования кэш-памяти, способом достижения эф-
фекта сокращения времени доступа в основную память за счет локализации
обрабатываемых данных служат страничная или сегментная организация
памяти [5], предоставляющая программе виртуальную память много боль-
шего объема, чем объем используемой физической памяти. Отличие между
страничной и сегментной организацией заключается в том, что страницы
имеют фиксированный размер, а сегмент может быть произвольного разме-
ра, что требует при работе с сегментами учета их длины.
Если бы программа использовала физическую память с объемом, равным
объему виртуальной памяти, время доступа было бы много больше, чем к
реально используемой физической памяти (не говоря о самой возможности
реализации и цене такой большой физической памяти).
Память делится на страницы, размер которых обычно 2т байт, обычно
6< т< 12. При этом основная часть страниц или сегментов хранится во
внешней, чаще всего, дисковой памяти, а в физической основной памяти
размешаются страницы, содержащие обрабатываемые в текущий момент
данные. Именно локализация данных позволяет получить сокращение вре-
мени вычислений, несмотря на потери времени, вызванные пересылкой
страниц между основной памятью и внешней дисковой памятью.
Команды процессора используют виртуальные адреса, состоящие из двух
полей: поля "page №" номера виртуальной страницы и поля "offset” адреса
ячейки памяти в странице.
Каждому процессу, протекающему на процессоре, сопоставляется таблица
PT (page table) отображения страниц. Эта таблица имеет количество строк,
равное, максимальному числу страниц памяти, допустимому для использова-
ния программой.
Наряду с такими ранее введенными в контекст процесса регистрами, как
счетчик команд PC, указатель стека SP, специально для организации стра-
ничной виртуальной памяти вводится регистр — указатель на таблицу стра-
ниц процесса РТР (page table pointer). Контекст процесса и таблица отобра-
жения страниц создаются средствами операционной системы процессора
при запуске программы на исполнение.
Каждая строка таблицы отображения страниц соответствует одной вирту-
альной странице и может быть выбрана с использованием поля "page №"
виртуального адреса.
Строка таблицы состоит из следующих полей, показанных на рис. 1.11:
□ V — бит отображения;
□ С — бит модификации страницы;
□ RWX — права доступа к странице;
□ М — бит размещения страницы;
□ Р — биг разрешения кэширования страницы;
□ РА — физический адрес страницы.
Контекст процессора
Виртуальный адрес
Физический адрес
Рис. 1.11. Организация отображения виртуальных адресов в физические адреса
Бит отображения V определяет, задано или нет отображение виртуальной
страницы с номером "page №" виртуального адреса. Например, если отобра-
жение задано V = 0. Если V = I, то информация строки с номером "page №"
виртуального адреса произвольна и не задает отображения. При обращении
к памяти с таким виртуальным адресом активизируется механизм задания
отображения виртуальной памяти на физическую.
Бит модификации страницы С используется для повышения эффективности
работы со страницами. Так, при загрузке страницы с диска в основную па-
мять этому биту, например, присваивается значение 0. Если содержимое
страницы изменяется хотя бы одной командой записи, то бит С становится
равным 1. При выгрузке страницы из основной памяти на диск проверяется
значение этого бита. Если он равен 0, то пересылка страницы не нужна.
Права доступа к странице определяют, какие действия могут быть выполне-
ны по отношению к этой странице, например:
□ R = I — содержимое страницы доступно для использования командами
чтения, R = 0 — содержимое страницы не может быть прочитано;
□ W = 1 — содержимое страницы доступно для использования командами
записи, W = 0 — запись в ячейки страницы запрещена;
□ X = 1 — в страницу разрешены и запись, и чтение.
Доступ к виртуальной памяти признается корректным, если поле RWX кон-
текста процессора совпадает с полем RWX страницы.
Бит М размещения страницы указывав!, расположена страница в основной
памяти или на диске. Например, при М = 1 страница расположена в основ-
ной памяти и поле РА (physical address) в этом случае задает старшую часть
физического адреса основной памяти. В случае М = 0 страница находится
на диске, и поле РА задает место на диске, где находится страница. При об-
ращении к этой странице, она будет считана в основную память. После чего
соответствующий адрес ее размещения будет внесен в поле РА и установле-
но значение бита М, равное 1.
Наконец, бит Р разрешения кэширования страницы служит для повышения
эффективности работы с иерархической памятью. Например, пользователь,
зная свою программу, может запретить копирование кэш-строки в кэш-
память, т. к. ему требуется прочитать и записать только одну ячейку памяти
во всей кэш-строке. В этом случае пересылка кэш-строки будет заведомо
лишним действием.
Для того чтобы завершить рассмотрение страничной организации памяти,
отметим, что рассмотренный механизм при логической работоспособности
достаточно не эффективен, т. к. требует двух обращений в память для дос-
тупа с использованием виртуального адреса. Первый доступ необходим для
работы с таблицей, второй — собственно для доступа к данным.
Для того чтобы ускорить трансляцию виртуальных адресов в физические,
вводится специальный ассоциативный буфер истории трансляции TLB
(translation look-aside buffer). Этот буфер содержит N строк, каждая из кото-
рых состоит из виртуального номера страницы и номера соответствующей
физической страницы. В буфере размещаются отображения для N виртуаль-
ных страниц, номера которых использовались для последних по времени
обращений к памяти. Тем самым для локализованных обращений к памяти
создаются условия для быстрой трансляции виртуальных адресов в физиче-
ские, без затрат на время выборки из таблицы страниц. Понятно, что N не
Может быть достаточно большим в силу того, что буфер должен быть быст-
рым, и объем оборудования на его построение, как правило, ограничен.
Поэтому если обнаруживается, что в буфере истории трансляции TLB нет
требуемого виртуального адреса или для него нс задано отображение в фи-
зический адрес, то запускается описанный механизм определения отобра-
жения виртуального адреса в физический. Полученный физический адрес
вместе с соответствующим ему виртуальным адресом затем заносится в бу-
фер TLB. При этом если буфер был полон, то в нем ипределяе!ся исклю-
чаемое отображение одного из виртуальных адресов в соответствующий ему
физический. Выбор этого виртуального адреса может производиться по раз-
ным алгоритмам. Например, это может быть адрес, к которому реже всех
обращались, либо случайно выбранный адрес и т. д.
Следует отметить, что в процессорах широко используется рассмотренный
метод ускорения реализации различных отображений путем введения ассо-
циативного буфера для хранения таблиц отображения, требующего для сво-
его выполнения существенных затрат времени.
В идеале, локализацию данных программ, написанных на языках програм-
мирования, выполняет компилятор, учитывающий особенности аппаратных
механизмов пересылки данных между уровнями памяти и отображения
страниц. Однако не все пользователи удовлетворяются эффективностью,
обеспечиваемой компилятором, поэтому вводятся команды процессора и
операционной системы, обеспечивающие управление пересылкой данных
между уровнями памяти и размещением страниц в основной памяти.
1.1.10. Расслоение памяти
Расслоение памяти также использует одну из форм локальности обрабаты-
ваемых данных, а именно: последовательность обращений к памяти с фик-
сированным порядком используемых адресов, например, следующий адрес
вычисляется как сумма предыдущего и некоторого фиксированного смеще-
ния d, чаще всего равного I. При фиксированном порядке обращений па-
мять может быть построена как многоблочная, в которой блок к, к = 0, ...,
л-1, где п — число блоков памяти, называемое степенью расслоения, ис-
пользуется для хранения данных, требуемых при обращениях к + i х л, / = О,
1, ... Так как любые л последовательных обращений к памяти адресуются в
разные блоки, то они могут выполняться параллельно. Следовательно, соз-
дается эффект сокращения времени доступа в память большого объема.
В этом случае возможно п параллельных обращений в память по адресам,
принадлежащим различным блокам. Поэтому выборка команд программы,
за исключением команд, выбираемых как результат ветвления, может быть
ускорена применением расслоения памяти. Аналогично может быть ускоре-
на обработка массивов данных, последовательные элементы которых поме-
щаются в разные блоки памяти.
Многоуровневая иерархия и расслоение памяти могут использоваться со-
вместно.
1.1.11. Микропроцессоры
Собственно читатель уже осознал, что, начав с простого процессора как
схемной реализации алгоритма, управляющего порядком исполнения
команд, которые, в свою очередь, управляют передачами данных между ре-
гистрами, памятью и функциональными устройствами, он, читатель, доста-
точно быстро столкнулся с ростом сложности процессоров. Эта сложность
обусловлена архитектурно-структурными решениями, которые придуманы и
осуществлены создателями компьютеров для повышения производительно-
сти процессоров. Уникальность этих решений состоит в том, что они позво-
ляют преодолеть разрыв в быстродействии между памятью и логическими
элементами, использовать ограниченный объем оборудования, рационально
распределив это оборудование между блоками процессора для максимиза-
ции производительности.
До 90-х годов прошлого века для построения процессоров использовалась
дискретная элементная база (электронные лампы, транзисторы, резисторы и
конденсаторы, соединяемые проводниками для образования требуемой схе-
мы) или схемы малой и средней интеграции (элементы, содержащие объем
оборудования, эквивалентный требуемому для создания нескольких тригге-
ров). Трудоемкость изготовления процессора, состоящего из десятков тысяч
дискретных элементов, надежность этого образования, потребление элек-
трической энергии и отвод тепла ставили достаточно жесткий предел со-
вершенствованию процессоров.
Векторно-конвейерные процессоры, начало производства которых связано с
построением CRAY-1 [6], венчали развитие процессоров, строящихся из
дискретных компонентов. Основная идея архитектуры этих процессоров со-
стоит в том, что, если нельзя ускорить выполнение всех команд, выбирается
группа команд, которые допускают ускорение. Если удается возложить на
команды этой группы существенную долю вычислений, то достигается эф-
фект общего ускорения вычислений. В векторно-конвейерных процессорах
в качестве таковых были использованы векторные регистры и векторные
команды. Векторные регистры представляют собой быстродействующий бу-
фер, наполняемый перед запуском векторной команды или последователь-
ности сцепленных векторных команд. Содержимое векторных регистров
служит операндами векторных команд. Архитектура векторно-конвейерных
процессоров представляется оптимальной по критерию "производитель-
ность/объем оборудования" для дискретной элементной базы.
В 70-х годах прошлого века наряду с полнофункциональными процессора-
ми, строящимися на схемах малой и средней интеграции, как следствие раз-
вития больших интегральных схем появились микропроцессоры с малым
количеством регистров ограниченной длины (4, 8) разрядов.
Сначала эти микропроцессоры были "микро" и по объему памяти, и по про-
изводительности, но повышение степени интеграции элементной базы к
середине 90-х годов сделало возможным постепенно реализовать на одном
кристалле микропроцессор, воплощающий все способы повышения произ-
водительности процессоров, развитые в рамках традиционных однопро-
цессорных подходов. Однокристальные микропроцессоры существенно
превзошли по соотношению производительность/стоимость специально
разрабатываемые уникальные многокристальные процессоры. Особенности
проектирования и изготовления СБИС, в том числе и микропроцессоров,
делают экономически оправданным только их массовое производство (млн
штук), что практически исключило возможность создания специализиро-
ванных кристаллов (сотен или тыс. штук) для конкретных проектов много-
кристальных процессоров. Кроме того, сложилась ситуация, когда специ-
ально спроектированный многокристальпый процессор на момент начала
проектирования имеющий экстремальные оценки производительности, по-
сле своего изготовления, потребовавшего ряда лет, существенно уступал
коммерчески доступным в это время серийным универсальным микропро-
цессорам.
Массово выпускаемые высокопроизводительные микропроцессоры послу-
жили базой создания персональных компьютеров, рабочих станций и парал-
лельных суперкомпьютеров, произведших революцию в информатизации
общества. Эта ситуация произвела такое сильное впечатление на современ-
ников, что даже появился термин "микропроцессоры-убийцы" |7], который
как раз отражал тот факт, что микропроцессоры стали использоваться для
производства всех типов компьютеров и вычислительных систем.
Поэтому в настоящее время термины "микропроцессор" и "процессор" обо-
значают одну и ту же сущность, и с большой степенью правильности можно
считать, что никаких других процессоров, кроме микропроцессоров, не су-
ществует. Собственно в этом заключается вторая часть ответа на вопрос,
поставленный в начале главы.
1.2. Перспективы
микроэлектронного производства
1.2.1. Сверхбольшие интегральные схемы
Современная элементная база — сверхбольшие интегральные схемы (СБИС) —
характеризуется большим числом транзисторов на кристалле и относительно
малым числом выводов у корпуса. Поэтому БИС адекватны построению
логически законченных устройств,
В настоящее время в основном используются СБИС, создаваемые по
КМОП-технологии. В рамках этой технологии электронные схемы созда-
ются из компонентов, представляющих собой прямоугольные или много-
угольные области полупроводников с различными типами проводимости,
проводников (металла и поликремния), а также диэлектрика, изолирующего
области друг от друга. В качестве диэлектрика используется окисная пленка
диоксида кремния (SiOj). На рис. 1.12 показаны принципиальная электри-
ческая схема, поперечное сечение и топология инвертора [8|, реализующего
вентиль НЕ.
Рис. 1.12. Логическая схема вентиля НЕ
и ее реализация в интегральной схеме:
а — схема инвертора
Диффузионная область
истока/стока р-канального
МОП-транзистора
Выход
р-карман
Диффузионная область
истока/стока ^канального
МОП-транзистора
Рис. 1.12. Логическая схема вентиля НЕ
и ее реализация в интегральной схеме:
б — срез фрагмента кремниевой пластины;
в — топология инвертора
Схема инвертора, приведенная на рис. 1.12» а, состоит из двух МОП-тран-
зисторов с каналами р- и «-типов, стоки которых соединены с выходом.
Собственно в использовании двух типов МОП (Металл, Окисел, Полупро-
водник) транзисторов и заключается комплементарность КМОП-техноло-
гии. Если на вход схемы будет подан уровень "земля", нижний транзистор
окажется закрытым, а верхний — открытым, что обусловит появление на
выходе схемы уровня "питание". Соответственно, если на входе схемы будет
уровень "питание", то на выходе окажется уровень "земля", т. к. верхний
транзистор будет закрыт, а нижний — открыт. Таким образом, уровень на
выходе всегда инвертированный по отношению к входному в соответствии с
логикой работы вентиля НЕ.
На рис. 12, б показан схематично срез фрагмента кремниевой пластины, на
которой сформированы области полупроводника с р- и «-типами проводи-
мости и затворы транзисторов, выполненные из поликремния. Соответст-
вующая топология инвертора приведена на рис. 1.12, в.
Таким образом, транзисторы формируются как многослойная структура из
областей истока и стока, отделенных диэлектриком от области затвора. Для
соединения схем, реализующих вентили, между собой при формировании
блоков цифрового устройства и устройства в целом используются металли-
ческие проводники, разводимые в специально предназначенных для этого
слоях, разделенных диэлектриком.
В общих чертах формирование микросхемы выглядит так. Из расплава чис-
того кремния вытягивается монокристалл кремния цилиндрической формы.
Этот цилиндр режется на пластины толщиной около 0,6 мм и диаметром
200 мм (сейчас происходит переход к пластинам диаметром 300 мм). По-
верхность этой достаточно тонкой пластины полируется, а затем покрывается
защитной пленкой диоксида кремния S1O2 в кислородной среде при высо-
ких температуре и давлении.
Для образования областей полупроводников с р- и «-проводимостями при-
меняется следующая технология. Пластина покрывается слоем фоторезиста —
материала, исходно стойкого к воздействию реагента, используемого для
травления, но теряющего это свойство после обработки светом определен-
ной длины волны. При проектировании микросхемы изготавливаются фо-
тошаблоны, каждый из которых соответствует, фактически, слою микросхе-
мы и имеет отверстия в форме областей, обрабатываемых на этом слое. На
каждом этапе изготовления микросхемы используется определенный шаб-
лон. Шаблон накладывается на пластину, покрытую фоторезистом, после
чего на нее направляется световой поток. Те области пластины, где фоторе-
зист был закрыт шаблоном, остаются неизменными, а области, подвергшиеся
воздействию света, растворяются при воздействии реагента, используемого
при травлении. В современном технологическом процессе используется су-
хое травление, при котором пластина обрабатывается ионизированным га-
зом, образующим при химической реакции с диоксидом кремния летучие
соединения. Поэтому после сухого травления пластины пленка диоксида
кремния остается там, где был незасвеченный фоторезист, и удаляется в об-
ластях, подвергшихся засветке.
Далее с пластины удаляется оставшийся фоторезист, и пластина готова к сле-
дующей технологической операции по внесению в кремниевую подложку пу-
тем диффузии донорной или акцепторной примеси. В результате диффузии
атомы примеси равномерно внедряются в кристаллическую решетку кремния,
образуя область полупроводника с требуемым типом проводимости.
Соответственно, если требуется внутри области с одним типом проводимо-
сти создать область с другим типом проводимости, то повторяется описан-
ный процесс: покрытие окисной пленкой и пленкой фоторезиста, засветка
под соответствующим шаблоном, образование окон для доступа к областям,
в которые должна быть проведена диффузия заданной примеси.
После формирования полупроводниковых структур транзисторов необходи-
мо связать их проводниками для образования схемы. В связи с тем, что в
микросхеме может быть создан только планарный слой проводников без
пересечения разных соединений, то для формирования сложной схемы со-
единений используется несколько слоев проводников с межслойными пере-
ходами, соединяющими между собой участки одного соединения, реализо-
ванные в разных слоях. Для того чтобы иметь быстродействующую схему и
снизить энергопотребление, в современных микропроцессорах требуется
более шести слоев металлизации. Важность увеличения количества слоев
для формирования сложной схемы соединений на кристалле демонстрирует
следующий пример. В процессоре Pentium 4 с ядром Northwood использует-
ся 55 млн транзисторов, размешенных на площади 145 мм2 при шести сло-
ях металлических проводников, а в процессоре Athlon ХР при девяти слоях
металлизации 54,3 млн транзисторов занимают площадь только 101 мм2.
Для формирования слоя проводников применяется, по крайней мере, одна
из двух технологий. При первой технологии каждый слой проводников
формируется следующим образом. Пластина покрывается тонким слоем
окисла, затем там, где должен быть электрический контакт, слой окисла
удаляется травлением, после чего на пластину наносится слой металла, на-
пример алюминия. Далее этот слой металла покрывается фоторезистом, ко-
торый засвечивается под шаблоном, не допускающим засветки того, что в
последствии будет соединением. Металл, покрытый засвеченным фоторези-
стом, удаляется травлением, что приводит к формированию требуемого слоя
соединений. При этой технологии возникает следующая проблема, препят-
ствующая увеличению количества слоев металлических соединений. После
формирования очередного слоя металлических проводников поверхность
пластины перестает быть плоской, и на ней выделяются возвышенности,
соответствующие рельефу сформированных соединений. При нанесении
слоя окисла соответствующей толщины возможно путем последующего
шлифования добиться более или менее плоской поверхности, но этот про-
цесс достаточно трудоемок. Если же поверхность пластины недостаточно
искажается, что ведет к изменению параметров формируемых соединений,
вплоть до их разрыва.
Другой технологический процесс формирования соединений, разработан-
ный применительно к получению медных проводников, состоит в том, что
посредством засвечивания фоторезиста в слое окисла образуются канавки
там, где должны быть проложены медные проводники. Далее на поверх-
ность пластины методом электронного осаждения наносится слой меди. За-
тем путем шлифования пластины вплоть до достижения слоя окисла доби-
ваются того, что медь остается только в заранее сформированных канавках.
При этом технологическом процессе поверхность пластины вследствие
шлифования остается плоской после формирования каждого слоя провод-
ников, что позволяет иметь большее количество слоев металлических со-
единений, чем при ранее представленной технологии.
Конечно, технологический процесс производства микросхем существенно
сложнее, но суть его состоит именно в послойном массовом формировании
на каждом слое некоторых областей из материалов, являющихся проводни-
ками, полупроводниками и диэлектриками.
Когда видишь это рукотворное чудо: микросхему, нелишне вспомнить, что
электричество зародилось как побочный продукт производства металлов для
изготовления колюще-режущих изделий и "кастрюль". Именно "слоеный
пирог" из двух разных металлов произвел электрический ток. Поэтому то,
что микросхемы произвели информационную революцию, в каком-то смыс-
ле — виток спирали развития технологии.
При уменьшении геометрических размеров элементов транзисторов улуч-
шаются все параметры схем: возрастает быстродействие, уменьшается
удельное в пересчете на один транзистор потребление энергии, возрастает
надежность. Технологический предел линейных размеров транзисторов на
кристалле, обусловленный физическими ограничениями, составляет около
0,02 мкм. Современная 0,09 мкм технология, используемая при производст-
ве микропроцессоров, в 2005 году сменится на технологию 0,065 мкм, в 2007 го-
ду будет использоваться 0,045 мкм, а в 2009 году будет достигнут уровень
технологии 0,032 мкм [9].
При этом количество транзисторов на кристалле будет порядка 109—1О10.
По прогнозам компаний-производителей, представленным в докладе "Перс-
пективы развития полупроводниковых технологий, 2001 год" (Technology
Roadmap for Semiconductors, 2001 Edition), дальнейшее развитие технологии
производства микропроцессоров будет идти в направлении увеличения
плотности транзисторов на кристалле, использования новых типов трехмер-
ных транзисторов с тремя затворами, роста числа слоев металлизации и по-
вышения тактовой частоты наряду с уменьшением напряжения питания и
удельной (на один транзистор) потребляемой электрической и выделяемой
тепловой энергии.
На пути дальнейшей миниатюризации кроме физических ограничений
имеются и экономические. Для каждого следующего поколения микросхем
стоимость технологии удваивается. Возрастают сроки изготовления микро-
процессоров. Так, процессор Pentium производился за шесть месяцев, а сле-
дующий за ним Pentium Pro — за девять. Во многом уже сейчас уровень
технологии, используемой в массовом производстве, определяется экономи-
ческими соображениями. Увеличение числа слоев металлизации экспонен-
циально повышает процент брака при производстве, увеличение плошали
кристалла микропроцессора также приводит к снижению выхода годных
кристаллов.
Различные выполняемые функции и сферы применения обусловили спе-
циализацию СБИС. Достаточно условно их можно разделить на следующие
классы:
□ СБИС с аппаратной реализацией алгоритмов обработки данных: микропро-
цессоры универсальные и сигнальные, а также микроконтроллеры, включая
интерфейсные схемы для образования мультипроцессорных систем;
□ микросхемы памяти: статические и динамические;
□ программируемые логические интегральные схемы (ПЛИС).
1.2.2. Микропроцессоры и микроконтроллеры
Универсальные микропроцессоры предназначаются для применения во всех
типах вычислительных установок: персональных ЭВМ, рабочих станциях, а
в последнее время и в массово-параллельных суперЭВМ. Кроме того, уни-
версальные микропроцессоры используются в телекоммуникационном обо-
рудовании, системах автоматического управления и встроенной промыш-
ленной автоматике. Основной характеристикой этих микропроцессоров
является наличие развитых устройств для эффективной реализации опера-
ций с плавающей точкой над 32- и 64-разрядными и более длинными опе-
рандами. В последнее время в состав этих микропроцессоров включаются
функциональные блоки для обработки мультимедийной информации.
Цифровые сигнальные процессоры предназначены для обработки в реаль-
ном времени цифровых потоков, образованных путем оцифровывания ана-
логовых сигналов. Это обусловливает их сравнительно малую разрядность и
преимущественно целочисленную обработку. Однако современные сигналь-
ные процессоры способны проводить вычисления с плавающей точкой над
32—40-разрядными операндами. Кроме того, появился класс медийных про-
цессоров, представляющих собой законченные системы для обработки ау-
дио- и видеоинформации.
Наибольшей специализацией и разнообразием функций обладают микро-
контроллеры, используемые во встроенных системах управления, в том чис-
ле в бытовых приборах. Общее число типов кристаллов с различными сис-
темами команд превышает 500, и все они, в силу существования изделий с
их использованием, занимают свою устойчивую долю рынка.
Прежде, чем приступить к детальному обсуждению различных типов мик-
ропроцессоров, кратко коснемся вопросов организации микросхем памяти и
ПЛИС, знание которых необходимо для лучшего понимания специфики
микропроцессоров и построения компьютеров на их основе.
1.2.3. Микросхемы памяти
Основные виды памяти
Увеличение быстродействия микропроцессоров повышает требования к
пропускным способностям остальных подсистем компьютера и, прежде
всего, к быстродействию подсистемы памяти. Разработчики используют бо-
лее быстродействующую и, соответственно, более дорогую память в наибо-
лее "ответственных" узлах системы. Широко применяется многоуровневая
иерархическая архитектура памяти, где на верхнем уровне иерархии распо-
ложена более быстродействующая кэш-память, в которую в процессе вы-
числений помещаются интенсивно используемые фрагменты программного
кода и обрабатываемых данных. В реальных системах используется от од-
ного до четырех уровней кэш-памяти. Причем кэш-память первого уровня,
как правило, располагается на кристалле микропроцессора и работает с его
же тактовой частотой, а кэш-память второго и следующих уровней обычно
располагается вне кристалла микропроцессора и строится на базе быстро-
действующих микросхем памяти. Прослеживается тенденция размещения на
кристалле процессора двух уровней кэш-памяти.
В настоящее время наиболее распространенными являются энергозависи-
мые, теряющие хранимую информацию при снятии питания статические и
динамические микросхемы памяти. Статические микросхемы памяти за-
поминают биты данных в триггерах, что требует 4—6 транзисторов для
хранения бита. Динамическая память использует для запоминания бита
информации состояния конденсатора "заряжен — не заряжен". Так как
при этом необходим только электронный ключ для управления разрядом и
зарядом конденсатора, объем оборудования для храпения бита в четыре
раза меньше, чем в статической памяти. Однако динамическая память, в
отличие от статической, требует регенерации, предотвращающей потерю
информации из-за разряда конденсатора током утечки. Регенерация за-
ключается в считывании состояния заряда конденсатора и восстановлении
этого состояния посредством последующей записи. Регенерация требует
дополнительного времени в цикле обращения к памяти, что снижает ее
пропускную способность.
Динамическая память
В качестве основной на нижнем уровне иерархии памяти на сегодняшний
день во многих случаях используется относительно медленная динамическая
память DRAM (Dynamic Random Access Memory). Микросхемы памяти ор-
ганизованы как матрицы, ячейки памяти которых адресуются номером
строки и номером столбца. Для доступа к ячейке на адресные входы микро-
схемы должен быть подан адрес ячейки, а затем последовательно друг за
другом стробирующие импульсы RAS (Row Address Strobe) и CAS (Column
Address Strobe) соответственно стробирующие адрес строки и столбца.
Наряду с памятью с произвольным доступом RAM (Random Access Memory),
в прошлом широко была распространена более быстрая память со странич-
ной организацией FPM (Fast Page Mode) DRAM. Этот тип памяти обеспе-
чивает ускорение часто используемого в программах доступа к последова-
тельности элементов данных благодаря расположению этих элементов в
одной строке матрицы ячеек памяти.
Цикл обращения для чтения памяти DRAM начинается с активизации строки
в матрице путем выдачи адреса строки и строба RAS. Затем по выдаче адреса
столбца и строба CAS выполняется активизация адресуемой ячейки памяти,
содержащей нужные данные. После проверки правильности каждого элемента
данные передаются в процессор. Затем столбец деактивизируется и осуществ-
ляется подготовка к следующему циклу. Это приводит к ожиданию процессо-
ром завершения цикла памяти, поскольку во время деактивизации столбца
ничего не происходит. Выходной буфер данных блокируется или до начала
следующею цикла, инициируемого выдачей адреса очередного столбца строки
и строба CAS, или до запроса новой строки данных.
В случае быстрого страничного режима очередной столбец активизируется
путем подачи CAS в предположении, что следующий элемент запрашивае-
мых данных находится в соседней ячейке памяти. Такая активизация сле-
дующего столбца приводит к лучшим результатам только при последова-
тельном чтении ячеек памяти в конкретной строке.
Групповые операции обмена с памятью принято описывать формулой, со-
держащей количество тактов, требуемое для чтения блока данных из четы-
рех элементов данных. Для DRAM эта формула имеет вид 5-5-5-5, для FPM
DRAM — 5-3-3-3. Это означает, что для чтения каждого элемента данных в
случае DRAM требуется 5 тактов шйны данных. Для FPM DRAM чтение
первого элемента осуществляется также за 5 тактов, а каждый следующий
элемент читается за 3 такта, поскольку считается, что следующий элемент
находится в той же строке и нет необходимости передавать ее адрес.
В системах с большей тактовой частотой для надежного взаимодействия
процессора с памятью используется память EDO DRAM.
Работа EDO во многом напоминает работу FPM DRAM — активизируется
строка памяти, а затем активизируется ее столбец. Но после нахождения
элемента данных вместо деактивизации столбца и блокирования выходного
буфера (что происходит в FPM FRAM) память типа EDO сохраняет выда-
ваемые данные в дополнительных выходных регистрах до обращения к сле-
дующему столбцу или начала следующего цикла чтения, тем самым увели-
чивая интервал времени хранения выходных данных, в связи с чем память и
получила название Extended Data Output — память с расширенной выдачей
данных. Сохраняя выходной буфер включенным, память EDO устраняет со-
стояние ожидания, и пакетные передачи производятся быстрее. Для стра-
ничного режима данный тип памяти обеспечивает время доступа около
30 нс. Для памяти EDO групповые операции описываются количеством
циклов 5-2-2-2.
Для типа памяти BEDO (Burst EDO) пакетной памяти EDO операции обме-
на осуществляются пакетами данных. Доступ к данным конвейеризирован.
Цикл страничного доступа разделен на два этапа. При чтении из памяти на
первом этапе данные из матрицы памяти помешаются в выходной регистр, а
на втором этапе на шине данных формируются логические уровни, соответ-
ствующие содержимому этого регистра. Количество циклов ожидания бла-
годаря конвейеризации еще более снижается — до 5-1-1-1.
Основным недостатком EDO и BEDO является то, что эти типы микросхем
памяти предназначены для работы на частотах до 66 МГц, тогда как частота
работы системной шины на сегодняшний день значительно выше (75 МГц,
83 МГц, 100 МГц и более).
Рассмотренные типы динамической памяти являются асинхронными, пото-
му что моменты появления данных из памяти на системной шине компью-
тера не синхронизированы с фронтами тактовых импульсов. Данные, посту-
пившие на шину сразу после фронта тактового импульса, будут восприняты
только при следующем тактовом импульсе. Более быстродействующей памя-
тью является синхронная динамическая память SDRAM (Synchronous
DRAM), изготовляемая по БиКМОП (Bi-CMOS) технологии и имеющая
время доступа 7—10 нс.
Основной особенностью SDRAM является синхронизация всех ее операций
с тактовыми сигналами процессора. Это упрощает реализацию интерфейсов
управления и уменьшает время обращения к столбцу матрицы. SDRAM со-
держит внутренний пакетный счетчик, который может использоваться для
инкрементного увеличения адреса столбца в режиме пакетного обращения.
Это позволяет инициировать новое обращение к памяти SDRAM до завер-
шения предыдущего.
Внутри микросхемы память расслоена: реализуются как два блока с направ-
лением последовательных адресов в разные блоки. Групповой обмен для
такой памяти описывается формулой 5-1-1-1, так же, как и для BEDO, од-
нако в отличие от последней, SDRAM-модули памяти РС100 и РС133 могут
работать на частотах 100 МГци 133 МГц соответственно.
Память SDRAM имеет 8-байтную шину данных, поэтому пропускная
способность памяти PC 100 составляет 800 Мбайт/с, а для PC 133 она равна
1,06 Гбайт/с.
Дальнейшим развитием SDRAM явилась SDRAM-П, разработанная техно-
логическим лидером в производстве микросхем памяти — компанией Sam-
sung. Другое название этого типа памяти — DDR SDRAM (Double Data Rate
SDRAM) — память с удвоенной скоростью передачи данных. Операции чте-
ния и записи для такой памяти выполняются дважды за один такт — по пе-
реднему и заднему фронтам тактового импульса. Пропускная способность
SDRAM-П составляет 1,6 Гбайт/с при тактовой частоте шины 100 МГц. Для
обозначения этой памяти используется также аббревиатура DDR200, отра-
жающая тот факт, что эффективная частота работы памяти составляет
200 МГц. Аналогично, для тактовых частот 133 МГц, 166 МГц и 200 МГц
применяются соответственно памяти DDR266, DDR333 и DDR400. Для того
чтобы показать пропускную способность в Мбайт/с приведенных ранее мо-
дулей памяти, их обозначают также PC 1600 (DDR200), PC2I00 (DDR266),
РС2700 (DDR333) и РС3200 (DDR400). Например, фирма Micron произво-
дит по технологическому процессу 0,11 мкм микросхему памяти DDR400
емкостью 512 Мбит, что позволяет создать на се основе стандартный модуль
памяти DIMM емкостью 512 Мбайт.
В дальнейшем планируется создание памяти DDR-II, которая должна про-
изводить в пакетном режиме 4 доступа за такт. В соответствии с этим дан-
ную память называют также QDR (Quadra Data Rate).
Перспективными на сегодняшний день считаются типы динамической па-
мяти, основанные на концепции канала данных: RDRAM (Rambus DRAM)
и SLDRAM (SyncLink DRAM).
Технология Rambus, разработанная одноименной компанией, основана на
высокоскоростном интерфейсе, который обеспечивает возможность переда-
чи данных со скоростью до 600 Мбайт/с через Rambus Channel — шину
данных разрядностью 1 байт. Эффективная пропускная способность дости-
гает величины 480 Мбайт/с, что в 10 раз превышает аналогичный показатель
для устройств EDO DRAM. Время доступа к ряду ячеек памяти составляет
менее 2 нс в расчете на байт, а время задержки (время доступа к первому
байту массива данных) — 23 нс.
Еще более быстродействующей является новый вариант RDRAM — Direct
RDRAM. Этот тип памяти обеспечивает скорость передачи данных
1,6 Гбайт/с на один канал и до 6,4 Гбайт/с при четырех каналах.
Подсистема памяти на основе RDRAM включает следующие компоненты:
контроллер, канал, модуль памяти DIMM с микросхемами памяти RDRAM,
терминатор. Контроллер реализован на специализированной микросхеме
Rambus ASIC Cell (RAC), которая генерирует управляющие Сигналы для
подсистемы памяти, работающей с тактовой частотой до 400 МГц. К одному
контроллеру RAC может подключаться до 4 независимо функционирующих
каналов. Канал обеспечивает электрическую связь между контроллером и
содержит блок управления подключенными к каналу микросхемами памяти
(до 32 микросхем RDRAM) и 30 высокоскоростных линий, передающих
данные на обоих фронтах синхронизирующих сигналов. Для подавления
отраженного сигнала на конце канала устанавливается терминатор. Линии
канала разделены на 16= или 18-разрядную шину данных, 5-разрядную шину
адреса строки и 3-разрядную шину адреса столбца. Использование раздель-
ных шин для передачи адреса строки и столбца увеличивает быстродействие
подсистемы памяти.
Данные и сигналы управления передаются по каналу 8-битными пакетами в
соответствии с протоколом Direct Rambus. В случае обмена большими мас-
сивами данных память Rambus является оптимальным вариантом в смысле
отношения производитсльность/стоимость. Себестоимость производства
этого типа памяти на 40% ниже, чем у микросхем SDRAM. Данный факт
объясняет широкое применение RDRAM в игровых приставках (Nintendo) и
графических рабочих станциях (Silicon Graphics).
Технология изготовления памяти RDRAM находится во владении компа-
ний Rambus и Intel и подлежит лицензированию другими производителями.
С целью создания открытого стандарта памяти, не уступающей по техниче-
ским характеристикам RDRAM, IBM, Apple, Motorola, Micron Technology
образовали консорциум, получивший название SyncLink Consortium.
Разработанная память SLDRAM похожа на RDRAM. Подсистема памяти
SLDRAM содержит контроллер, канал передачи команд, адресов и данных,
микросхемы или модули памяти (SL-модули) и терминатор. Команды, адре-
са и управляющие сигналы передаются по однонаправленной 10-разрядной
шине — CommandLink, данные считываются и записываются по двунаправ-
ленной 18-разрядной шине данных — DataLink. Данные и команды переда-
ются по шинам пакетами по 4 или 8 бит.
К контроллеру, управляющему подсистемой памяти, может быть подключе-
но до 8 запоминающих устройств: микросхем памяти SLDRAM или SL-
модулей, содержащих несколько микросхем. Каждой микросхеме памяти в
момент включения питания присваивается уникальный номер, что позволя-
ет учитывать ее быстродействие и местоположение в подсистеме памяти для
определения временных задержек при передаче сигналов. В управляющие
регистры микросхемы записывается значение времени задержки ее реакции
на прием и выдачу сигналов, благодаря чему удается добиться одновремен-
ного отклика всех микросхем. Учет быстродействия микросхем в подсистеме
памяти позволяет использовать их различные модификации, отличающиеся
по быстродействию и объему.
В зависимости от быстродействия запоминающих устройств канал может
работать на различных частотах. На сегодняшний день выпускается память
SLDRAM, работающая по обоим фронтам синхросигнала частоты 200 МГц.
В ближайшее время планируется выпуск памяти SLDRAM для частоты
400 МГц и выше.
Использовать быструю и дорогостоящую динамическую память в качестве
основной памяти компьютера не всегда экономически целесообразно. Чаще
используют более медленную основную память совместно с быстрой, но не-
большой по объему статической кэш-памятью.
Статическая память
Статическая память — SRAM (Static Random Access Memory) — имеет время
выборки данных 15—20 нс и используется, как правило, для построения
кэш-памяти.
В простейших организациях кэш-памяти применяется асинхронный режим
работы, при котором процессор посылает адрес в кэш-память, кэш произ-
водит поиск адреса и передает требуемые данные. В начале каждого обра-
щения, как правило, используется дополнительный цикл для просмотра те-
гов. Для асинхронной статической памяти групповая операция чтения
данных описывается формулой 3-2-2-2, для операции записи формула имеет
вид 4-3-3-3.
Синхронный кэш буферизует поступающие адреса. В течение первого такта
SRAM запоминает запрашиваемый адрес в регистре. Во время второго такта
извлекает и пересылает данные. Поскольку адрес данных хранится в регист-
ре, синхронная статическая память SRAM может получать следующий ад-
рес, пока процессор принимает данные предыдущего запроса. Последова-
тельные элементы данных синхронная SRAM может объединять в "пакеты",
не принимая и не дешифрируя дополнительные адреса от процессора. Вре-
мя доступа для такой памяти уменьшается на 15—20% по сравнению с асин-
хронной и составляет около 10 нс.
Для снижения времени выполнения групповых операций чтения-записи ис-
пользуется конвейерный режим обмена пакетами данных. Память, поддер-
живающая такой режим, получила название конвейеризированной пакетной
(Pipelined Burst SRAM). Конвейеризация заключается в добавлении выход-
ного буфера, в который помещаются прочитанные из ячеек памяти данные.
Последовательные обращения по чтению из памяти осуществляются быст-
рее, без задержек на обращение к матрице памяти для получения следую-
щего элемента данных. В случае Pipelined Burst SRAM формулы для опера-
ций чтения и записи имеют вид 3-1-I-1.
В некоторых случаях проблему повышения быстродействия основной памя-
ти разработчики пытаются решить, встраивая кэш-память в микросхемы
динамической памяти. Такой вариант памяти компании Mitsubishi Electronics
получил название CDRAM (Cashed DRAM). Для данной памяти каждая 4-
или 16-битная микросхема памяти содержит 16 Кбайт быстрой кэш-памяти.
Обмен между динамической и статической памятью осуществляется 128-
разрядными словами. Выпускаемый компанией Ramtron тип памяти —
EDRAM (Enhanced DRAM) содержит 8 Кбайт кэш-памяти для каждых
4 Мбит динамической памяти. Обмен осуществляется 2048-разрядными сло-
вами. Благодаря высокому быстродействию CDRAM и EDRAM обычно ис-
пользуются в системах без кэш-памяти второго уровня.
Микросхемы видеопамяти
В видеоподсистемах компьютеров наряду с обычными микросхемами динами-
ческой памяти (FPM DRAM, EDO DRAM, SDRAM) используются специали-
зированные типы памяти, ориентированные на поддержку операций с бито-
выми потоками, На сегодняшний день можно отметить следующие типы
специализированной памяти: SGRAM, MDRAM, VRAM, WRAM, 3D-RAM.
Память SGRAM (Synchronous Graphics RAM) — синхронная динамическая
память по принципу работы схожа с SDRAM. В то же время SGRAM под-
держивает ряд дополнительных функций, обусловленных особенностью
применения данного типа ОЗУ. С целью оптимизации операций пересылки
больших битовых блоков, характерных для работы видеоадаптера, в SGRAM
введены специальные режимы блочной записи — Block Write, Write-per-Bit.
Первый режим позволяет записать значение, находящееся в регистре Color
register памяти, одновременно в 8 ячеек памяти. Второй режим предназна-
чен для заполнения ячеек данными с возможностью маскирования отдель-
ных ячеек. По сравнению с DRAM данный тип памяти позволяет в 5 раз
ускорить выполнение видеоопераций.
Память MDRAM (Multibank DRAM) разработана компанией MoSys и ис-
пользуется, в основном, в графических платах компании Tseng Labs. Осо-
бенностью данного типа памяти является ее блочная организация. Память
состоит из большого количества независимо функционирующих 32-
разрядных банков размером 32 Кбайт, подключенных к быстрой многораз-
рядной внутренней шине микросхемы. Благодаря блочной организации до-
пускается изготовление микросхемы практически любого объема. Так, если
стандартные типы видеопамяти имеют объем 1, 2, 4, 8, ... Мбайт, то в случае
MDRAM объем видеопамяти может быть 2,5 Мбайта, 3,5 Мбайт и т. д. Дан-
ная особенность позволяет снижать стоимость видеокарт при обеспечении
требуемой цветопередачи и разрешающей способности. Например, для реа-
лизации видеорежима 1024 x 768 TrueColor требуется 2,25 Мбайт памяти,
тогда как при использовании обычной видеопамяти приходится устанавли-
вать 4 Мбайта.
Память VRAM (Video RAM) разработана для обеспечения пропускной спо-
собности 170 Мбайт/с, что необходимо для поддержки видеорежима 1024 х
х 768 х 16 М при частоте смены кадров 75 КГц. С этой целью память VRAM
снабжена дополнительным портом. Данные из VRAM по внутренней шине
передаются блоками по 4 Кбайт в специальную внутреннюю память с по-
следовательным доступом SAM (Serial Access Memory), преобразующую дан-
ные в последовательный поток биг, который далее передается на ЦАП для
формирования видеосигнала. Между моментами считывания информации
из ядра памяти в SAM память VRAM может без задержки обслуживать за-
просы процессора.
Память WRAM (Window RAM), разработанная компанией Samsung, является
более дешевой альтернативой VRAM. Память WRAM так же, как и VRAM,
содержит два порта, позволяющие одновременно вести обмен данными с
процессором и ЦАП. Упрощение внутренней архитектуры WRAM позволи-
ло снизить се стоимость по сравнению с VRAM на 20%, обеспечив при этом
50%-ное ускорение обменных операций. Память аппаратно поддерживает
функцию прокручивания экрана, заполнения области экрана двухцветным
узором, маскирования отдельных областей памяти. WRAM может работать
на частоте 50 МГц с пропускной способностью 960 Мбайт/с.
Память 3D-RAM разработана компанией Mitsubishi Electronics для примене-
ния в видеокартах совместно с акселератором трехмерной графики. В состав
данной микросхемы входит массив динамической памяти CDRAM и блок
АЛУ, позволяющий выполнять некоторые операции преобразования изо-
бражения.
1.2.4. Программируемые логические
интегральные схемы
Всегда существовала и существует сейчас потребность быстрого макетирова-
ния вновь создаваемых устройств с целью проверки их работоспособности и
устранения в случае обнаружения ошибок, допущенных при проектирова-
нии. Кроме того, в силу разных технико-экономических причин возникает
потребность в схемной реализации вычислений. Эта потребность может
быть продиктована, например, требованием получения производительности,
недостижимой при программной реализации вычислений из-за необходимо-
сти предварять собственно вычисления выборкой команды и отсутствия в
процессоре совокупности регистров, функциональных устройств и путей
передачи данных между ними, которые бы соответствовали эффективной
схемной реализации заданного алгоритма. Другим примером может служить
модификация схемной реализации алгоритма в зависимости от типа обраба-
тываемых данных, чтобы сократить объем вентилей по сравнению со схем-
ной реализацией, в которой для каждого типа обрабатываемых данных со-
здается отдельная схемная реализация алгоритма их обработки.
Для решения перечисленных задач были разработаны программируемые
логические интегральные схемы (ПЛИС). ПЛИС — это матричные большие
интегральные схемы, позволяющие программно скомпоновать в одном кор-
пусе электронную схему, эквивалентную схеме, включающей от нескольких
десятков до нескольких сотен интегральных схем (ИС) стандартной логики
[!0|. По сравнению с другими микроэлектронными технологиями, в том
числе базовыми матричными кристаллами (БМК) и специализированными
ИС (ASIC), технология ПЛИС обеспечивает рекордно короткий проектно-
технологический цикл (от нескольких часов до нескольких дней), мини-
мальные затраты на проектирование, максимальную гибкость при необхо-
димости модификации аппаратуры.
Логические блоки, блоки ввода/вывода и коммутационные поля конфигури-
руются при загрузке в ПЛИС битовой последовательности, полученной в
результате разработки схемы.
В зависимости от семейства ПЛИС, логические блоки, блоки ввода/вывода
и коммутационные блоки имеют разную степень сложности и обладают раз-
ными функциональными возможностями.
В настоящее время на мировом рынке можно отметить несколько основных
компаний — производителей ПЛИС — XILINX, ALTERA, LATTICE, AT&T,
INTEL, выпускающих микросхемы с архитектурой EPLD — многократно
программируемые и FPGA (Field Programmable Gate Array) — многократно
реконфигурируемые.
В качестве памяти для хранения конфигурации в ПЛИС EPLD используется
полупостоянное запоминающее устройство (ППЗУ) с ультрафиолетовым
стиранием, а у ПЛИС FPGA — статическое запоминающее устройство.
Микросхема FPGA представляет собой матрицу логических ячеек, соеди-
ненных между собой логическими ключами. Содержащаяся в микросхемах
FPGA статическая память, будучи заполненной определенной битовой по-
следовательностью, воздействует на логические ячейки и соединяющие их
ключи, позволяя получить требуемые электрические схемы (регистры, счет-
чики, логические схемы и т. д., соединенные друг с другом в требуемом по-
рядке). Каждая микросхема FPGA имеет также вход для записи битовой по-
следовательности, заполняющей статическую память, а также элементы
"вход/выход" для связи с другими микросхемами.
При создании систем на основе ПЛИС все этапы проектирования выпол-
няются разработчиком на одном рабочем месте с использованием систем
автоматизированного проектирования (САПР). Каждая компания — произ-
водитель ПЛИС разрабатывает и выпускает свою САПР, обеспечивающую
реализацию всех этапов проектирования для каждого типа программируе-
мой логики.
Так же, как и при создании программ для универсального процессора, для
программирования ПЛИС необходимы инструментальные средства (языки
программирования, трансляторы, оптимизаторы и т. д.), конечным результа-
том работы которых является битовая последовательность, заполняющая
статическую память микросхемы FPGA. Системы автоматизированного про-
ектирования позволяют разработчику, пользуясь стандартными элементами
библиотек, создавать на рабочих станциях логические схемы, реализующие
заданные алгоритмы, проводить моделирование с анализом функциональ-
ных и временных характеристик, осуществлять оптимизацию разработанных
схем по оборудованию и времени выполнения задачи и транслировать раз-
работанные схемы в битовые последовательности, определяющие логику
работы процессора. Например, компания XILINX поставляет полное мате-
матическое обеспечение для разработки и применения устройств на базе
FPGA и EPLD. Для разработки используются схемотехнические редакторы
и системы моделирования, входящие в состав наиболее популярных САПР:
VIEWLOGIC и MENTOR GRAPHICS, функционирующих на персональных
компьютерах и рабочих станциях SUN и HP соответственно. Эти системы
используют для программирования ПЛИС языки VHDL, Verilog, служащие
языками разработки аппаратных средств. Имеются также попытки исполь-
зования языков программирования для потоковых вычислений и традици-
онных языков программирования, например, С.
Существует крайняя точка зрения, что со временем ПЛИС вытеснят серий-
ные микропроцессоры, т. к. пользователь сможет реализовать требуемую ему
систему программными средствами, учитывая всю специфику своего при-
ложения. Однако более вероятно другое направление развития СБИС, со-
стоящее в интеграции ПЛИС и микропроцессоров. В ПЛИС встраиваются
готовые блоки, разработанные фирмой-производителем, или IP-блоки, яв-
ляющиеся блоками интеллектуальной собственности (Intellectual Property)
других фирм. IP-блоки могут быть программными (soft), в которых не фик-
сирована топология, и аппаратными (hard), в которых топология фиксиро-
вана, что позволяет достигать высокой эффективности схемной реализации
и большей степени защиты прав на интеллектуальную собственность.
Таким образом, на основе одной или нескольких микросхем FPGA можно
создать реконфигурируемый процессор обладающий преимуществами
спецпроцессора на "жесткой" логике, по способного путем изменения со-
держимого статической памяти решать любые задачи, подобно универсаль-
ному процессору. ”’ —
Отличительной особенностью ПЛИС архитектуры FPGA семейств XILINX
ХС2000, ХС3000, ХС3100, ХС4000 является наличие поля конфигурируемых
логических блоков (КЛБ) и блоков ввода/вывода, связанных между собой по-
средством коммутационных блоков.
Конфигурируемый логический блок — один из базовых элементов архитек-
туры ПЛИС FPGA — может выполнять любую логическую функцию, реали-
зуемую таблицей преобразования (LUT) в соответствии с заданной битовой
последовательностью (рис. 1.13). Изменять выполняемую функцию можно
неограниченное количество раз путем загрузки другой битовой последова-
тельности.
Конфигурируемые логические блоки всевозможных ПЛИС FPGA различа-
ются количеством таблиц преобразования, числом входов этих таблиц (от 2
до 4), позволяющих реализовать функции от соответствующего числа пере-
менных, а также количеством регистров в блоке.
Блок ввода/вывода (рис. 1.14.) так же, как и логический блок, может быть
настроен на выполнение любого электрического соединения реализованной
внутри ПЛИС схемы с внешним миром через соответствующий контакт
микросхемы.
В настоящее время компания XILINX производит микросхемы следующих
типов:
□ серии ХС7200 и ХС7300 — типа EPLD. Содержат от 18 до 144 многовхо-
довых макроячеек, представляющих собой программируемое 1-разрядное
АЛУ со встроенным триггером-защелкой. Ячейки объединяются матрич-
ным коммутатором. ИС могут быть использованы для нестандартных
АЛУ, дешифраторов, счетчиков и т. п.;
□ серии ХС2000, ХС3000 — типа FPGA. Содержат от 2000 до 9000 эквива-
лентных вентилей. Включают до 320 КЛБ;
□ серии ХС3000А, ХС3100А, ХС4000, ХС5000 — типа FPGA. Включают от
2000 до 25 000 вентилей. Содержат до 1024 КЛБ, выполняющих логиче-
скую функцию от 5, 9 или 20 переменных со временем выполнения до
2 нс. Имеется возможность реализации до 2560 триггеров и встроенного
ЗУ до 32 Кбит (серия ХС4000);
П серии ХС4000Е — типа FPGA. Разработана на основе серии ХС4000 по
улучшенной 0,5 мкм технологии с тремя слоями металлизации. Обеспе-
чивает в 1,5 раза более высокую частоту переключения триггеров, на 60%
более высокую эффективность выполнения арифметических операций.
Имеет более низкую относительную стоимость. Новая функция конфигу-
рации встроенного ОЗУ позволяет реализовать синхронный/асинхрон-
ный, одно/двухпортовый режимы обмена;
□ серии ХС6200 — типа FPGA. Создана специально для построения сопро-
цессоров. Имеет встроенный 8/16/32-разрядный программируемый
(FastMAP) интерфейс, предназначенный для организации непосредст-
венного обмена с шиной основного процессора. Повышенная скорость
конфигурации (в 1000 раз по сравнению с предыдущими сериями) до-
пускает частичную реконфигурацию FPGA в процессе выполнения теку-
щей задачи. Встроенное ОЗУ (36—256 Кбайт) доступно через FPGA-
логику, через FastMAP-интерфейс либо обоими способами;
Выходной сигнал
Рис. 1.13. Логический блок ПЛИС
ЗЗак I0R6
□ серии ХС8100 — однократно программируемые FPGA. Выполнена на ос-
нове MicroVia antifuse КМОП-технологии с тремя слоями металлизации.
Технология обеспечивает более высокую плотность упаковки логических
элементов и малое потребление;
П серии ХС9500 — типа CPLD. Многократно перепрограммируемые (до
10 000 раз) непосредственно на рабочем устройстве микросхемы. Содер-
жат от 800 до 6400 рабочих ячеек или от 36 до 288 макроячеек, аналогич-
ных серии ХС7300. Рабочая частота — до 150 МГц;
□ серии XC4000XLA и XC4000XV — типа FPGA. Выполнены соответствен-
но по КМОП-технологии 0,35 и 0,25 мкм с пятью слоями металлизации.
Максимальное количество вентилей 500 тыс.;
□ серии Virtex-E и Virtex-EM — типа FPGA. Выполнены по КМОП-
технологии 0,18 мкм с шестью слоями металлизации. Количество КЛБ
превышает 40 тыс. Блок ввода/вывода совместим с шиной PCI (32/64 би-
та, 33/66 МГц);
□ серии Virtex II — типа FPGA. Выполнены по КМОП-технологии
0,15/0,12 мкм с восьмью слоями металлизации. Количество вентилей до
10 млн. В состав КЛБ входят 8 таблиц для задания функций, 18-
разрядный быстрый умножитель. Предусмотрена возможность использо-
вания заказных блоков и IP-блоков.
Все серии компании XILINX имеют высочайшую степень зашиты от копи-
рования.
1.2.5. Направление развития микроэлектронных
компонентов вычислительных.систем
Для создания высокоэффективных вычислительных систем важно интегри-
ровать на кристалле как можно больше функций по обработке и хранению
данных, а также интерфейс с пользователем и другими вычислительными
системами.
Стремление к ингшрации совокупности функций обусловлено рядом фак-
торов. Во-первых, при однокристальной реализации пропускная способ-
ность интерфейсов между подсистемами обработки и хранения данных не
ограничивается количеством выводов корпуса кристалла и может достигать
требуемого значения. Во-вторых, упрощается системная плата, на которую
монтируется кристалл, уменьшается объем монтажных работ, повышаются
показатели надежности и производительности вычислительной системы и
уменьшается ее стоимость. В-третьих, снижаются требования к количеству
выводов корпуса кристалла, т. к. минимизируется интерфейс с другими
компонентами вычислительной системы, например с устройствами отобра-
жения информации. И, наконец, в-четвертых, реализуются возможности
миллионов транзисторов, которые могут быть размещены на кристалле. Эти
транзисторы можно использовать как для построения специализированной
системы, состоящей из совокупности проблемно-ориентированных блоков,
так и для создания параллельных систем из совокупности одинаковых про-
цессоров.
Наряду с созданием однокристальных систем, существует проблема органи-
зации быстрых интерфейсов между микросхемами в многокристальных сис-
темах, например между микросхемами процессора и памяти. В Pentium Pro
эта проблема решается путем размещения в одном корпусе двух кристаллов:
собственно микропроцессора и кэш-памяти второго уровня. Другое возмож-
ное решение этой проблемы заключается в создании многокристальных
микросборок, в которых бескорпусные СБИС монтируются на кремниевой
подложке с нанесенными, возможно, несколькими слоями межкристальных
соединений.
1.3. Архитектурные особенности
современных микропроцессоров
1.3.1. Классификация архитектур
микропроцессоров
При попытке изложить комплекс идей и технических решений, составляю-
щих фундамент архитектуры современных микропроцессоров, неизбежно
возникает проблема, связанная со стремительным и отнюдь не прямолиней-
ным развитием этой области знаний и технологий. На каждом этапе разви-
тия доминирует, в силу возможностей элементной базы и предпочтений
сравнительно небольшого числа фирм производителей микропроцессоров,
определенная взаимосвязанная совокупность архитектурных идей. В даль-
нейшем эти идеи могут быть скомбинированы с другими, и представлять
собой уже иную архитектуру. Поэтому при представлении архитектур неиз-
бежен некоторый исторический порядок изложения идей по мере их воз-
никновения и использования при построении микропроцессоров.
Поначалу процессоры имели системы команд, сформированные их разра-
ботчиками на основе анализа задач той проблемной ориентации, для реше-
ния которых создавался компьютер. Критерием оптимизации предлагаемой
системы команд была минимизация длины программ для решения требуе-
мых задач. При этом вводились команды, которые использовали в качестве
операндов регистры и ячейки памяти, сложные схемы формирования адре-
сов с использованием индексных регистров для выполнения в одной коман-
де как обработки операндов, так и модификации адресов для выполнения
следующей команды. Анализ кода программ, генерируемого компиляторами
языков высокого уровня, показал, что практически используется только ог-
раниченный набор простых команд форматов "регистр <- регистр, регистр",
"память <— регистр" и "регистр <- память". Компиляторы не в состоянии
эффективно использовать сложные команды. Это наблюдение способство-
вало формированию концепции процессоров с сокращенным набором команд,
так называемых RISC-процессоров |4|.
Другим обстоятельством, фактически приведшим к появлению RISC-
процессоров, было развитие архитектуры конвейерных процессоров типа
Cray |6]. В этих процессорах используются отдельные наборы команд для
работы с памятью и отдельные наборы команд для преобразования инфор-
мации в регистрах процессора. Каждая такая команда единообразно разби-
вается на небольшое количество этапов с одинаковым временем исполнения
(выборка команды, дешифрация команды, исполнение, запись результата),
что позволяет построить эффективный конвейер процессора, способный
каждый такт выдавать результат исполнения очередной команды.
Однако конвейерность исполнения команд породила проблемы, связанные
с зависимостями по данным и управлению между последовательно запус-
каемыми в конвейер командами. Например, если очередная команда ис-
пользует результат предыдущей, то се исполнение невозможно в течение
нескольких тактов, необходимых для получения этого результата. Похожие
проблемы возникают при исполнении команд перехода по условию, когда
данные, по которым производится переход, к моменту дешифрации коман-
ды условного перехода еще не готовы.
Эти проблемы решаются либо компилятором, устанавливающим очеред-
ность запуска команд в конвейере и вставляющим команды "нет операции"
при невозможности запуска очередной команды, либо специальной аппара-
турой процессора, отслеживающей зависимости между командами и устра-
няющей конфликты.
Процессоры могут быть разбиты на два класса: RISC-процессоры компью-
теров с сокращенным набором команд (Reduced Instruction Set Computer) и
CISC-процессоры co сложным набором команд (Complex Instruction Set
Computer).
Процессоры первого класса имеют команды обработки типа "регистр <- ре-
гистр, регистр" и команды сохранения (store) и за!рузки (load) типа "память <-
регистр" и "регистр <— память" соответственно. Функциональные преобразо-
вания могут выполняться только над содержимым регистров, а результат
помещается также в регистр.
Как правило, в CISC-процессорах команды имеют много разных форматов
и требуют для своего представления различного числа ячеек памяти. Это
обусловливает определение типа команды в ходе ее дешифрации при ис-
полнении, что усложняет устройство управления процессора и препятствует
повышению тактовой частоты до уровня, достижимого в RISC-процессорах
на той же элементной базе.
Очевидно, что RISC-процессоры эффективны в тех областях применения, в
которых можно продуктивно использовать структурные способы уменьше-
ния времени доступа к оперативной памяти. Если программа генерирует
произвольные последовательности адресов обращения к памяти и каждая
единица данных используется только для выполнения одной команды, то
фактически производительность процессора определяется временем обра-
щения к основной памяти. В этом случае использование сокращенного на-
бора команд только ухудшает эффективность, т. к. требует пересылки опе-
рандов между памятью и регистром вместо выполнения команд типа "па-
мять <г- память, память". Программист должен учитывать необходимость ло-
кального размещения обрабатываемых данных, чтобы при пересылках меж-
ду уровнями памяти по возможности все данные пересылаемых блоков дан-
ных принимали участие в обработке. Если программа будет написана так,
что данные будут размешены хаотично и из каждого пересылаемого блока
данных будет использоваться только небольшая их часть, то скорость обра-
ботки замедлится в несколько раз, до скорости работы основной памяти. В
качестве примера приведем в табл. 1.1 результаты замеров производительно-
сти микропроцессора Alpha 21066 233 МГц при реализации преобразования
Адамара при п — 8—20.
Таблица 1.1. Производительность микропроцессора Alpha 21066
при выполнении преобразования Адамара
п Производительность в условных алгоритмических операциях, млн оп/с
8 150
10 133
11 73
>12 20
Приведенный пример показывает, что, пока данные размещаются во внут-
рикристальной кэш-памяти, производительность высока. Как только объем
данных превышает размер кэш-памяти и обращения в память идут в "равно-
мерно" распределенные по объему адреса, производительность падает более
чем в 7 раз.
Развитие микропроцессоров происходит при постоянном стремлении сохра-
нения преемственности программного обеспечения (ПО) и повышения
производительности за счет совершенствования архитектуры и увеличения
тактовой частоты. Сохранение преемственности ПО и повышение произво-
дительности, вообще говоря, противоречат друг другу. Так, например, про-
цессоры с системой команд х86, относящиеся к классу CISC-процессоров
вплоть до Pentium Pro, имели более низкие тактовые частоты по сравнению
с микропроцессорами ведущих компаний — производителей RISC-про-
цессоров, изготавливаемых по одним и тем же технологическим нормам.
Для этих процессоров существовали приложения, на которых производи-
тельность х8б микропроцессоров была значительно ниже, чем у RISC-
процессоров, реализованных на той же элементной базе. Однако возмож-
1 ность использования совместимого ПО для различных поколений х86 про-
цессоров обеспечивала им устойчивое доминирующее положение на рынке.
Затем на основе "пионерских" разработок компаний NexGen и AMD, позд-
нее подхваченных компанией Intel, была реализована успешная попытка
| решения проблемы повышения производительности в рамках архитектуры
I х86. Эти компании, сохраняя преемственность по системе команд с CISC-
микропроцессорами семейства х86, создали новые устройства с использова-
нием элементов RISC-архитектуры. Первыми примерами такого подхода
могут служить микропроцессоры Nx586 (NexGen), К.5, Кб (AMD), исполь-
зующие концепцию RISC-ядра. В микропроцессор встраивается аппаратный
транслятор, превращающий команды х86 в команды внутреннего RISC-
процессора. При этом одна команда х86 может порождать до четырех ко-
манд RISC-процессора. Исполнение команд происходит, как в развитом
! суперскалярном процессоре. Компания Intel впервые использовала этот
подход в своем микропроцессоре Pentium Pro, что весьма укрепило ее пози-
ции на фоне достижений RISC-архитектур.
1.3.2. Архитектура процессоров
с параллелизмом уровня команд
Подходы к использованию ресурса транзисторов
в микропроцессорах
Повышение производительности микропроцессоров достигается за счет уве-
личения тактовой частоты, совершенствования параллельной и конвейерной
обработки данных, а также уменьшения времени доступа к памяти. В на-
стоящее время возможно проектирование микропроцессоров с несколькими
сотнями миллионов транзисторов на кристалле. Уверенно просматривается
перспектива увеличения количества транзисторов до миллиарда |9]. Воз-
росший объем транзисторов может быть использован для построения функ-
циональных устройств микропроцессора или для увеличения объема внутри
। кристальной кэш-памяти или для того и другого. Возможно также создание
новых классов кристаллов — однокристальных параллельных систем.
Прирост объема кэш-памяти дает эффект лишь до определенного объема,
пока удается локализовать блоки исполняемого кода и блоки данных. Если,
например, имеется большой объем данных, превышающий возможный раз-
мер кэш-памяти, и адреса обрабатываемых данных вырабатываются в ходе
вычислений, то кэш память будет только постоянно обновлять запрошен-
ные строки, что приведет к потере производительности.
Память представляет собой ресурс, не. производящий непосредственно вы-
числений, поэтому привлекательным выглядит использование~ресурса тран-
зисторов кристалла для построения совокупности функциональных уст-
ройств. Основное препятствие на пути повышения производительности за
счет увеличения количества функциональных устройств — это загрузка уст-
ройств полезной работой.
Суперскалярные процессоры и процессоры
с длинным командным словом
Современные микропроцессоры содержат десять и более обрабатывающих
устройств, каждое из которых представляет собой конвейер. В случае эффек-
тивной загрузки параллельно функционирующих устройств возможно получе-
ние в одном такте нескольких результатов операций, представленных скаля-
рами: целочисленными операндами или операндами с плавающей точкой.
Эффективная загрузка параллельно функционирующих конвейеров обеспе-
чивается либо аппаратурой процессора, либо компилятором, на вход кото-
рого поступают программы на традиционном последовательном языке про-
граммирования, либо совместно аппаратурой и компилятором.
В компиляторах используется изощренная техника извлечения параллелизма
из последовательных программ. Аппаратура микропроцессоров ориентиро-
вана на выделение более простых форм параллелизма, в том числе естест-
венного.
Есть два крайних подхода, при возможных промежуточных, к отображению
присущего микропроцессору внутреннего параллелизма обработки данных
на архитектурном уровне в системе команд. Первый подход более консерва-
тивен и состоит в том, что никакого указания на параллельную обработку
внутри процессора система команд не содержит. Такие процессоры относятся
к классу суперскалярных. Такое название, с одной стороны, отличает эти
процессоры от векторных процессоров, а с другой стороны, подчеркивает
присущий этим процессорам внутренний параллелизм, обеспечивающий
получение в одном такте нескольких скалярных результатов.
Второй подход, напротив, полностью открывает пользователю все возмож-
ности параллельной обработки. В специально отведенных полях команды
каждому из параллельно работающих обрабатывающих устройств предписы-
вается действие, которое устройство должно совершить. Такие процессоры
называются процессорами с длинным командным словом (VLIW). Предполага-
ется, что существуют компиляторы с языков высокого уровня, которые го-
товят программы для загрузки их в микропроцессоры.
Суперскалярные и VHW-процессоры принадлежат классу архитектур, кото-
рые используют параллелизм уровня"команд (ILP). '——————
Зависимости между командами,
препятствующие их параллельному исполнению
В соответствии с моделью последовательного программирования программы
пишутся в предположении, что команды будут выполнены в том же поряд-
ке, в каком они представлены в программе. Однако с целью достижения
большей эффективности современные процессоры пытаются выполнять не-
сколько команд одновременно и, в некоторых случаях, в порядке, отличном
от их исходной последовательности в программе. Это переупорядочение
может быть выполнено в трансляторе и (или) в аппаратных средствах во
время выполнения.
ILP-процессоры и компиляторы обычно преобразуют полностью упорядо-
ченное множество команд исходной программы в частично упорядоченное’
множество, структурированное зависимостями по данным и управлению.
Зависимости по управлению (которые проявляются как переходы по усло-
вию) представляют главное препятствие высокопараллельному выполнению
потому, что эти зависимости должны быть установлены прежде, чем будут
выполнены все последующие команды.
Текст последовательной программы, представленной на языке высокого
уровня, компилируется в машинный код, отражающий статическую струк-
туру программы, т. е. упорядоченное множество команд (инструкций) в па-
мяти компьютера. Процесс выполнения программы с конкретными набора-
ми входных данных может быть представлен динамической структурой
программы, т. е. множеством последовательностей команд в порядке их ис-
полнения.
Повысить степень параллелизма программы можно, изменяя соответствую-
щим образом ее статическую или динамическую структуру. Поскольку стати-
ческая структура программы однозначно соответствует ее исходному тексту (в
предположении неизменности компилятора), то изменение статической
структуры сводится к изменению исходного кода, что, в общем случае, не
всегда возможно. Динамическая же структура программы может быть измене-
на при неизменной статической структуре. И главной целью такого измене-
ния должно быть повышение степени параллельного исполнения команд.
Допустимые границы преобразования динамической структуры программы
задают существующие на множестве инструкций отношения: зависимость
по управлению и зависимость по данным. При описании архитектур супер-
скалярных процессоров используется модель окна исполнения. При испол-
нении программы микропроцессор как бы продвигает по статической струк-
туре программы окно исполнения, тем самым ограничивая совокупность
команд, которые рассматриваются на предмет наличия между ними зависи-
мостей по данным и управлению. Команды в окне могут исполняться па-
раллельно, если между ними нет зависимости.
Для устранения зависимостей, вызванных командами переходов, исполь-
зуется метод предсказания, позволяющий извлекать и условно исполнять
команды предсказанного перехода. Если позднее обнаруживается, что пред-
сказание было сделано верно, результаты условно исполненных команд
принимаются. Если предсказание было ошибочным, состояние процессора
восстанавливается на момент принятия решения о выполнении перехода.
Команды, помещенные в окно исполнения, могут быть зависимы по дан-
ным. Эти зависимости обусловлены использованием одних и тех же ресур-
сов памяти (регистров, ячеек памяти) в разных командах. Поэтому для пра-
вильного исполнения программы необходимо использование этих ресурсов
в предписываемом программой порядке.
Все виды зависимостей по данным могут быть классифицированы по типу
ассоциаций: RAR — "чтение после чтения", WAR — "запись после чтения" и
WAW — "запись после записи", RAW — "чтение после записи".
Пример различных зависимостей команд по данным показан на рис. 1.15.
Рис. 1.15. Зависимости команд по данным
Некоторые из зависимостей по данным могут быть устранены. RAR, по сути
дела, соответствует отсутствию зависимостей, поскольку в данном случае
порядок выполнения команд не имеет значения. Действительной зависимо-
стью является только "чтение после записи" (RAW), т. к. необходимо прочи-
тать предварительно записанные новые данные, а не старые.
Лишние зависимости по данным появляются в результате "записи после
чтения" (WAR) и "записи после записи" (WAW). Зависимость WAR состоит
в том, что команда должна записать новое значение в ячейку памяти или
регистр, из которых должно быть произведено чтение. Лишние зависимости
появляются по нескольким причинам: неоптимизированный программный
код, ограничение количества регистров, стремление к экономии памяти,
наличие программных циклов. Важно отметить, что запись может быть про-
изведена в любой свободный ресурс, а не только тот, который указан в
программе.
После удаления лишних зависимостей по управлению и данным команды
могут исполняться параллельно. Формирование расписания параллельного
выполнения команд возлагается на аппаратные средства микропроцессора.
Это расписание учитывает существующие зависимости между командами и
имеющиеся функциональные модули процессора.
В современных микропроцессорах широко используется принцип конвейер-
ного выполнения отдельных элементарных операций. Конвейеризация внут-
ренних процессов позволяет получать результат в каждом процессорном такте.
Структурный параллелизм микропроцессоров
с разнесенной архитектурой
Стремление использовать присущий большинству программ естественный
параллелизм вычисления целочисленных адресных выражений и собственно
обработки данных в формате с плавающей точкой привело к появлению
разнесенных архитектур (decoupled architecture) [11].
В первом приближении микропроцессор с разнесенной архитектурой, как
показано на рис. 1.16, состоит из двух связанных подпроцессоров, каждый
из которых управляется собственным потоком команд.
Адресный A-процессор Исполнительный Е-процессор
Рис. 1.16. Микропроцессор с разнесенной архитектурой
Условно эти подпроцсссоры называются адресным A-процессором и испол-
нительным Е-процессором. А- и Е-процессоры имеют собственные наборы
регистров АО, Al, ... и ХО, XI, ... соответственно и наборы команд. А-
процессор выполняет все адресные вычисления и формирует обращения к
памяти по чтению и записи, он является обыкновенным целочисленным
процессором, поэтому способен осуществлять произвольные целочисленные
преобразования, не связанные с вычислением адресов. Е-процессор реали-
зует вычисления с плавающей точкой.
Данные, извлекаемые из памяти, используются либо в A-процессоре, будучи
помещенными в FIFO-очередь АА, либо помещаются в FIFO-очередь, на-
зываемую АЕ-очередыо, для отсылки в Е-процессор. Когда Е-процессору
требуются данные из памяти, он берет их из очереди АЕ. Если очередь пус-
та, Е-процессор задерживается до поступления данных, что решает вопросы
синхронизации работы А- и Е-процессоров. Если Е-процессор выработал
данные, которые должны быть отправлены в память, то он помещает их в
FIFO-очередь ЕА.
При записи данных в память после вычисления адреса A-процессор сразу
отправляет адрес в FIFO-очередь AW адресов записи в память, не дожида-
ясь, пока данные поступят в очередь ЕА. A-процессор группирует пары, вы-
бирая первые элементы очередей ЕА и AW и отправляя эти пары в память.
Естественно, если одна из очередей или обе пусты, то отсылка в память
п р и оста н авл и ваетс я.
При чтении данных A-процессор отправляет адреса в память с указанием
очередей АА или АЕ, в которые должны быть считаны данные из памяти.
Разнесенная архитектура позволяет достигать при скалярной обработке про-
изводительности, характерной для векторных процессоров, за счет предвы-
борки данных из памяти и автоматической развертки нескольких последова-
тельных витков цикла в A-процессоре. Проблемы расщепления программы
на программы для А- и Е-процессоров решаются на уровне компилятора
или специальным блоком-расщепителем.
Предварительная выборка команд
и предсказание переходов
Основная идея, определяющая развитие суперскалярных микропроцессоров
112], состоит в построении микропроцессоров с как можно большим коли-
чеством функциональных устройств при сохранении традиционных после-
довательных программ. Это означает, что компиляторы и аппаратура мик-
ропроцессора сами, без вмешательства программиста, обеспечивают загрузку
параллельно работающих функциональных устройств микропроцессора.
Типовая архитектура суперскалярного микропроцессора представлена на
рис. 1.17.
Рис. 1.17. Архитектура руперскалярного микропроцессора
В число основных блоков суперскалярного микропроцессора входят: блок
выборки команд и предсказания переходов, блок декодирования команд,
анализа зависимостей между командами, переименования и диспетчериза-
ции, блоки регистров и обрабатывающих устройств с плавающей и фикси-
рованной точками, блок управления памятью, а также блок упорядочения
выполненных команд.
Поскольку при суперскалярной обработке необходимо извлекать из памяти
несколько команд за один такт для загрузки параллельно работающих
функциональных модулей, повышенные требования предъявляются к про-
пускной способности интерфейса микропроцессор—память. В современных
микропроцессорах применяются многоуровневые раздельные типы кэш-па-
мяти данных и команд.
Серьезную проблему для эффективной загрузки функциональных устройств
представляют команды ветвления. Если требуется осуществить смену значе-
ния счетчика команд, то необходим, по крайней мере, один такт для распо-
знавания команды ветвления, модификации счетчика команд и выборки
команды по заданному значению счетчика команд. Эти задержки вызывают
пустые такты в конвейерах процессора.
Для предотвращения появления пустых тактов возможно использование
"отложенных переходов", когда одна или несколько команд после команды
ветвления выполняются безусловно.
Более сложные решения используют:
О предсказание переходов;
□ выполнение с изменением порядка следования команд;
□ условное (предикативное) исполнение.
При предсказании переходов, не дожидаясь определения команды, на кото-
рую должен быть сделан переход, начинается выборка и исполнение команд
по предсказанному направлению перехода или условное исполнение команд.
В случае ошибки предсказания необходимо уничтожить все результаты ра-
боты неверно выбранных команд. Количество потерянных при этом тактов
процессора зависит от глубины конвейеров функциональных устройств и их
числа. В современных микропроцессорах число теряемых в результате не-
верного предсказания тактов может быть несколько сотен. Кроме того, объ-
ем аппаратных средств, используемых для устранения последствий непра-
вильных предсказаний, достаточно велик и может негативно влиять на
повышение тактовой частоты микропроцессора.
Изменение порядка следования команд имеет целью загрузить работой про-
стаивающие функциональные устройства при выхватывании из потока тех
команд, для которых имеются готовые операнды и свободные устройства
для их исполнения. Однако при этом должны исследоваться зависимости
между командами по регистровым и другим используемым ресурсам. Опре-
деление отсутствия зависимости должно делаться быстро, т. к. иначе теряет-
ся смысл изменения порядка выполнения команд.
Для оптимизации исполняемого программного кода может быть применена
кэш-память трасс [13]. Эта память отображает команды, выбираемые из
кэш-памяти команд микропроцессора, в физически непрерывную область
памяти команд. Поток команд, заполняющих кэш-память трасс, подвергается
оптимизации с целью повышения эффективности исполнения уже выпол-
ненной трассы команд при повторных ее выборках. Трасса оптимизируется
на фоне исполнения ее команд процессором.
Для уменьшения потерь процессорных тактов, связанных с промахами при
обращении к кэш-памяти в случае выполнения команд ветвления, в состав
системы кэширования вводятся средства предсказания переходов, основное
назначение которых — повысить вероятность наличия в кэш-памяти тре-
буемой команды.
Исполнение условных переходов состоит из следующих этапов:
□ распознавание команды условного перехода;
□ проверка выполнения условия перехода;
О вычисление адреса перехода;
□ передача управления в случае перехода.
На каждом этапе используются специальные приемы повышения произво-
дительности.
Этап 1. Для быстрого декодирования используются либо дополнительные
биты в поле команды, либо преддекодирование команд при выборе из кэш-
памяти команд.
Этап 2. Часто, когда команда уже выбрана из кэш-памяти, условие перехода
еще не вычислено. Чтобы не задерживать поток команд, в данном случае
используется предсказание перехода по одной из нескольких возможных
схем. Некоторые предсказатели используют статическую информацию из
двоичного кода программы или специально выработанную компилятором.
Например, определенные коды операций чаще вырабатывают ветвление,
чем другие коды, или ветвление более вероятно (при организации циклов),
или компилятор может устанавливать флаг, указывающий направления пе-
рехода. Может также использоваться статистическая информация, получен-
ная при трассировке программы.
Другие предсказатели используют динамически формируемую информацию
в процессе исполнения программы. Обычно это информация, касающаяся
истории выполнения данного ветвления, сохраняемая в таблице ветвлений
или в таблице предсказаний ветвлений. Таблица предсказания ветвлений
организуется по ассоциативному принципу, подобно кэш-памяти, ее эле-
менты доступны по адресу команды, ветвление которой предсказывается.
В некоторых реализациях элемент таблицы предсказания ветвления является
счетчиком, значение которого увеличивается при правильном предсказании
и уменьшается при неправильном. При этом значение счетчика определяет
преобладающее направление ветвлений.
В момент определения действительного значения условия ветвления вносится
изменение в историю ветвления. Если предсказание было неверным, то
должна инициироваться выборка правильных команд. Результаты команд,
которые были условно выполнены, должны быть аннулированы.
Этап 3. Для определения адреса ветвления обычно требуется выполнить
целочисленное сложение, прибавляющее к текущему значению счетчика
команд смешение, заданное в поле команды ветвления. И хотя это не требу-
ет дополнительных тактов для обращения к регистрам, ускорение вычисле-
ния адреса может быть достигнуто благодаря использованию буфера, содер-
жащего ранее использованные адреса переходов.
Условное выполнение команд в VLIW-процессорах
Альтернатива суперскалярной обработке — длинное командное слово
(VLIW-Very Long Instruction Word). Использование этого метода предполага-
ет задание в командном слове совокупности параллельно выполняемых команд.
Подготовкой таких программ занимается компилятор.
В рамках архитектуры IA-64 [15], разрабатываемой Intel и HP, организация
длинных команд базируется на связках (bundle) команд, формируемых из
трех команд и специального поля шаблона (template).
Возможные варианты связки из трех команд:
□ il || i2 || i3 — все команды il, i2, i3 исполняются параллельно;
□ il & i2 || i3 — сначала команда il, затем исполняются параллельно i2 и i3;
□ il || i2 & i3 — параллельно исполняются il и i2, после них команда i3;
□ il & i2 & i3 — последовательно исполняются команды il, i2, i3.
Поле шаблона используется для управления исполнением команд связки и
организации суперсвязок, формируемых из нескольких соседних связок.
Шаблон указывает, какие команды связки или соседних связок могут ис-
полняться параллельно на разных функциональных устройствах. Например,
на рис. 1.18 представлена суперсвязка из восьми целочисленных команд.
Связка команд #1 Связка команд #2 Связка команд #3
T Int 1 Int 2 Int 3
T Int 4 Int 5 Int 6
т Int 7 Int 8 Int 9
Суперсвязка из восьми команд целочисленной обработки, которые
могут параллельно исполняться на разных целочисленных АЛУ
/
Рис. 1.18. Суперсвязка команд
Шаблон связки создается при компиляции программы, и в него помешается
вся информация по управлению параллельным выполнением команд. При
этом в зависимости от числа требуемых функциональных устройств все во-
семь команд могут исполниться либо за один такт параллельно, либо за два
такта по четыре команды за такт, либо как-то иначе.
Формат команды IA-64 включает: код команды, три 7-разрядных поля опе-
рандов, I приемник и 2 источника (операндами могут быть только регист-
ры), особые поля для арифметических операций с плавающей и фиксиро-
ванной точками, а также специальное 6-разрядное предикатное поле.
Эффективность загрузки функциональных устройств в процессорах с длин-
ным или очень длинным командным словом (LIW/VLIW — long/very long
instruction word) достигается за счет механизма условного (предикативного)
исполнения команд и предвыборки команд.
Механизм условного исполнения команд базируется на введении в команды
специального предикатного поля. Условное выполнение команд исключает
необходимость использования команд условных переходов. Вместо команды
перехода и двух альтернативных ветвей, одна из которых выполняется в за-
висимости от значения предиката команды перехода, отдельной специаль-
ной командой вычисляется тот же предикат, что и в команде перехода, и его
значение сохраняется в специальном предикатном регистре. Команды одной
альтернативной ветви используют значение U вычисленного предиката, а
команды другой альтернативной ветви используют предикат со значением
"не U". Команды обеих ветвей запускаются на исполнение, но результатив-
ное исполнение будет только у команд со значением предиката "истина".
Подобные действия по замене команд перехода на команды условного вы-
полнения носят название "преобразование if [14] и выполняются компиля-
тором. В листинге 1.2. слева приведен фрагмент программы с использовани-
ем команд перехода, а справа соответствующий ему преобразованный
фрагмент программы с применением условных команд и команд вычисле-
ния предикатов.
if (а <-10)
с = с+1
else if (b > 20)
d = d+1
else e = e+1
pred_lt pl(-U), p2(U), a, 10
add с, с, 1 (p2)
pred_gt p3(-U), p4(U)f b, 20 (pl)
add d, d, 1 (p4)
add e, ef 1 (p3)
Соответствующая граф-схема фрагмента программы представлена на рис. 1.19.
Использование условных команд упрощает загрузку функциональных устройств
микропроцессора, перенося проблемы формирования условных команд на ста-
дию компиляции программ. Однако эффективная поддержка условного вы-
полнения команд требует обеспечения следующих механизмов:
□ введения специального поля команды для указания предикатного опе-
ранда;
□ введения предикатного регистрового файла;
□ исключения результатов команд со значением предикатного операнда
’’ложь";
□ выделения множества условных команд.
Рис. 1.19. Граф-ехема фрагмента иро1раммы,
приведенного в листинге 1.2
Одним из приемов борьбы с удлинением командного слова служит ограни-
чение типов команд, допускающих условное исполнение только теми ко-
мандами, форматы которых имеют поля для размещения предиката. Напри-
мер, допускается условное исполнение только команд пересылки MOV. Для
этого вводится специальный формат CMOV условной пересылки.
В разной степени условные команды используются в таких микропроцессо-
рах, как Alpha, Advanced RISC Machines ARM, Philips TriMedia, MIPS R
xOOO, Sun SPARC, TMS 320 Сбхх и в архитектуре x86. Intel ввела команду
CMOV в свои микропроцессоры Pentium Pro и Pentium II в 1995 году. Эти
команды появились в микропроцессорах Sun SPARC, DEC Alpha, R xOOO в
1991, 1992, 1995 годах соответственно |15].
Современные процессоры используют условные команды с различными ог-
раничениями. Так, одни ограничиваются только условными пересылками.
Другой подход реализован в микропроцессоре ARM: все команды условные
и могут использовать 16 предикатов, однако не допускается вложенных пре-
дикатов условных команд.
В качестве предикатных регистров могут использоваться как специально
выделенные для этого регистры, так и регистры общего назначения. В по- ч
следнем случае, вообще говоря, может возникнуть проблема недостатка ре-
гистров. Кроме того, значения предикатных регистров должны считываться
наряду с другими операндами программы, что ведет к увеличению числа
портов регистрового файла. Поэтому введение отдельного предикатного
файла вполне оправдано.
Конечно, предпочтительным использованием условных команд служит рас-
параллеливание коротких альтернативных ветвей.
При выполнении циклов, организованных с применением команды перехо-
да с заранее известной передачей управления на начальную команду, с за-
данным большим числом повторений (например, порядка тысячи) команд
тела цикла могут без потери эффективности использоваться традиционные
команды перехода. Кроме того, команды перехода необходимы для выпол-
нения редко используемых блоков программного кода, связанных, напри-
мер, с обработкой исключительных ситуаций.
Введение условных команд требует оборудования для задания предикатов и
работы с ними. Но в условиях относительного избытка обрабатывающих
устройств, которые все равно нет возможности загрузить непосредственно
вычислениями, использование этих устройств для вычисления предикатов
служит общему повышению производительности микропроцессора.
Использование условных команд вводит в микропроцессоры элементы ас-
социативной обработки данных, что, вообще говоря, при развитии логики
работы с предикатами может существенно повлиять на стиль разработки и
исполнения программ.
В рамках архитектуры NArch, разработанной в Московском центре "СПАРК-
технологий" [16—18], предлагается 118] использовать условные команды и
аппаратную поддержку их исполнения. Предусматриваются специальный
файл предикатных регистров и специальное функциональное устройство,
позволяющее в одном такте вычислять до трех предикатов. В совокупности
с предикатами, вычисляемыми в арифметических устройствах процессора,
общее число вычисляемых за один такт предикатов может достигать шести.
Предикаты бывают первичные и вторичные, вычисляемые с использованием
первичных предикатов. Примеры первичных предикатов |18] приведены в
листинге 1.3.
int а, Ь;
float с, d;
if (a==b)
if (c<=d)
0: cmp_eq %rl, fcr2, %pl
n: fcmp_le %r3, ?>r4, %p2
Переменные a, b, c, d размещены изначально в регистрах %ri, %г2, %гЗ, %г4
соответственно. Значения предикатов записываются в регистры %р1 и Ър2
предикатного файла.
Возможности вычисления сложных предикатов с получением за такт трех
значений предикатов демонстрируются в листинге 1.4.
inf a, b, ct d;
if (a==b && c<d | |
a !=b && c<=d)
0: cmp_eq %rl, %r2, %pl
cmp_l %r3, %r4, %p2
cmp_le %r3, %r4, %p3
1: land %pl, %p2, %p4
land !%pl, %p2, %p5
land !%p4, !%p5, %p6
В листинге 1.4. символ ’ обозначает логическое "не", а операция логическое
"или" реализуется как операция логического "и" (land) над инвертирован-
ными операндами в специальном функциональном устройстве. Таким обра-
зом, сложный предикат вычисляется за два такта.
Характер компилируемого в архитектуре NArch кода демонстрируется в лис-
тинге 1.5.
int а, Ь, с, d, х;
if (a==b && c==d) 0: cmp_eq %rl, %r2, %pl
х++1; cmp_eq %r3, %r4, %p2
1: land %pl, %p2, %p3
2: nop
3: add U5, 1, %r5 ? %p3
Символ ? предшествует предикату условно выполняемой команды.
В [18] утверждается, что за счет полной аппаратной поддержки условных
команд при реализации архитектуры NArch на шести тестах из SPEC-92,
характеризуемых множеством коротких линейных участков кода и команд
перехода с короткими альтернативными ветвями, удается достичь повыше-
ния производительности в среднем на 23%.
Декодирование команд,
переименование ресурсов и диспетчеризация
Независимо от того, выбраны команды на исполнение в суперскалярном
микропроцессоре или микропроцессоре с длинным командным словом, далее
происходит их декодирование и подготовка ресурсов для их исполнения. На
этой фазе определяются существенные зависимости (RAW) по данным между
командами и преодолеваются несущественные (WAW, WAR), производится
распределение команд по буферам команд функциональных устройств.
При декодировании команды создается одна или несколько упорядоченных
троек, каждая из которых включает:
□ исполняемую операцию;
□ указатели на операнды;
□ указатель на место помещения результата.
Для преодоления лишних WAR- и WAW-зависимостей, возникающих в ре-
зультате ограниченности логических ресурсов (ячеек памяти, регистров),
используется механизм динамического отображения определяемых текстом
программы логических ресурсов на физические ресурсы микропроцессора.
При данном подходе с одним логическим ресурсом может быть связано не-
сколько значений в различных физических ресурсах, каждое из которых со-
ответствует значению логической величины в один из моментов времени
последовательного выполнения программы.
Когда команда создает новое значение для логического регистра, физиче-
ский ресурс, в который помещается это значение, получает имя. Последую-
щие команды, использующие это значение, снабжаются именем физиче1
ского ресурса. Данная процедура называется "переименованием регистров".
Используются два основных способа переименования.
В первом физический файл регистров больше логического. При необходи-
мости переименования из списка свободных физических регистров берется
один, и ему сопоставляется соответствующее логическое имя. Если список
свободных регистров пуст, диспетчеризация команд приостанавливается до
момента появления свободных физических регистров.
Рассмотрим пример реализации данного способа переименования. Пусть
требуется выполнить команду sub гз, гЗ, 5 (из значения регистра гз вы-
честь константу 5 и поместить результат в регистр гз). Логические имена
регистров начинаются со строчной буквы, а физические — с прописной.
Пусть также в момент исполнения команды в таблице регистру гз соответ-
ствует R1. Первым регистром в списке свободных пусть является R2. Поэто-
му в поле результата команды sub гз, гз, 5 регистр гз заменяется на R2.
Исполнимая команда приобретает вид sub R2, Ri, 5. Любая следующая за
sub команда, использующая ее результат, должна использовать в качестве
операнда R2.
Остается вопрос о возвращении физических регистров в список свободных
после того, как из них считаны данные в последний раз. Один из способов
связывает счетчик с каждым физическим регистром. Счетчик увеличивается
при каждом переименовании операнда в командах, использующих этот фи-
зический регистр. Соответственно, при использовании операнда значение
счетчика уменьшается на 1. При достижении счетчиком нуля физический
ресурс должен быть переведен в список свободных.
Второй способ переименования использует одинаковое число логических и
физических регистров и поддерживает их однозначное соответствие. В до-
полнение имеется буфер с одним вхождением для каждой инициированной
на исполнение команды. Этот буфер называется "переупорядочивающим",
т. к. он используется также для установления порядка команд при прерыва-
ниях. Данный буфер можно рассматривать как FIFO-очередь, выполненную
в виде кольцевого буфера с указателями "начало" и "конец".
Команды помещаются в конец буфера. По завершении команды ее резуль-
тат заносится в заранее предписанный ей элемент очереди, независимо от
места в очереди, занимаемого этим элементом. К моменту достижения
командой начала буфера, если она была исполнена, ее результат помешается
в регистровый файл, а сама команда удаляется. Команда, находящаяся в бу-
фере и не исполненная в виду отсутствия значения операнда, остается в нем
вплоть до получения этого значения. Одновременно может выбираться из
очереди или помещаться в нее несколько команд, однако всегда соблюда-
ется дисциплина FIFO.
Значение логического регистра может быть размещено либо в физическом
регистре, либо в переупорядочивающем буфере. В момент декодирования
команды значению ее результата сопоставляется соответствующая результату
позиция упорядоченной тройки команды в элементе переупорядочивающего
буфера, в котором размещается рассматриваемая декодированная команда, и
делается отметка в таблице соответствия значений, которая указывает, что
значение результата может быть найдено в соответствующем элементе буфе-
ра. Поля источников и результата команды используются для доступа к по-
лям таблицы. Таблица показывает, что соответствующий регистр содержит
требуемую величину, либо она может быть найдена в переупорядочивающем
буфере. Когда переупорядочивающий буфер полон, диспетчеризация команд
приостанавливается.
Рассмотрим выполнение переименования на примере команды
sub гЗ, гЗ, 5. Пусть значение гЗ находится или будет находиться в пере-
упорядочивающем буфере в элементе 6. Регистр гЗ как источник заменяется
на соответствующее поле результата элемента 6 буфера. Команда sub поме-
щается в конец переупорядочивающего буфера, например в элемент 7. Этот
номер затем записывается в таблицу для использования командами — по-
требителями результата. Следует заметить, что переупорядочивающий буфер
фактически вводит потоковую модель вычислений по готовности операндов.
Независимо от способа переименования, в супсрскалярном процессоре уст-
раняются лишние зависимости по данным.
Проблемы конфликтов при доступе к разделяемому ресурсу — ячейкам па-
мяти, по сути, те же, что и при доступе к регистрам.
Для вычисления адреса памяти, как правило, требуется, по крайней мере,
одно сложение. После вычисления адреса может понадобиться его преобра-
зование в физический адрес, осуществляемое буфером истории трансляции
адресов (TLB).
Исполнение команд
После формирования для каждой команды упорядоченных троек, состоящих
из кода операции, физических операндов-источников и физического опе-
ранда-результата, а также размещения их в буферах, наступает фаза динами-
ческой проверки готовности значений операндов для исполнения команды.
В идеале команда готова к исполнению, как только готовы ее входные опе-
ранды. Однако есть ряд ограничений, связанных с доступностью физиче-
ских ресурсов, таких как исполнительные устройства, коммутаторы и порты
регистровых файлов (или переупорядочивающего буфера). Для организации
окна исполнения используются различные методы: одной очереди, многих
очередей или метод резервирующей станции.
Если имеется одна очередь, то переименование регистров не требуется, т. к.
доступность значений операндов может отмечаться битом резервирования,
сопоставленным каждому регистру. Регистр резервируется, когда модифи-
цирующая его команда назначается на исполнение. И регистр освобождается,
когда закапчивается исполнение команды. Если для команды ресурсы нс
были зарезервированы, то она приостанавливает свое исполнение.
В методе многих очередей каждая очередь организуется для команд одного
типа. Например, очередь команд с плавающей точкой или очередь команд
работы с памятью.
Третий метод предполагает использование резервирующей станции, состоя-
щей из совокупности элементов, каждый из которых содержит позиции для
размещения кода операции, наименования первого операнда, самого пер-
вого операнда, признака доступности первого операнда, наименования вто-
рого операнда, самого второго операнда, признака доступности второго опе-
ранда и наименования регистра результата. Когда команда завершает
исполнение и вырабатывает результат, то наименование результата сравни-
вается с наименованиями операндов в резервирующей станции.
Если в резервирующей станции обнаруживается команда, ждущая этого ре-
зультата, то данные записываются в соответствующую позицию и устанав-
ливается признак их доступности. Когда у команды доступны все операнды,
инициируется ее исполнение. Резервирующая станция следит за доступно-
стью операндов. Когда команда при диспетчеризации попадает в резерви-
рующую станцию, все готовые операнды из регистрового файла переписы-
ваются в поля этой команды. Когда все операнды готовы, команда
исполняется. Иногда резервирующая станция содержит не сами операнды, а
указатели на них в регистровом файле или в переупорядочивающем буфере.
Резервирующая станция представляет собой как бы процессор, управляемый
потоком данных.
Завершение выполнения команды
Завершающей фазой исполнения команды является фаза изменения состоя-
ния процессора в соответствии с выполненной командой. Назначение этой
фазы — сохранение последовательной модели исполнения программы при
реальном параллельном выполнении отдельных команд и условном выпол-
нении команд ветвления.
Устройства ♦
переименования
регистров
Рис. 1.20. Структура суперскалярного микропроцессора
Для изменения состояния процессора применяются два основных способа,
причем оба основаны на использовании двух состояний: состояния, изменен-
ного в результате операции, и состояния, требуемого для восстановления.
При первом способе сохраняется состояние процессора в наборе контроль-
ных точек или в буфере истории вычислений, которые в случае необходи-
мости используются для восстановления состояния.
Второй способ предполагает рассмотрение логического (архитектурного) и
физического состояния процессора. Физическое состояние изменяется немед-
ленно по завершении очередной команды. Архитектурное состояние изменя-
ется тогда, когда ясен результат условно выполненных команд. Для реализа-
ции этого способа используется переупорядочивающий буфер: результаты из
буфера отправляются в файл архитектурных регистров и в память.
В переупорядочивающем буфере для каждой команды содержится соответ-
ствующее ей значение счетчика команд и значения других регистров, кото-
рые необходимы для корректного обслуживания прерываний.
На рис. 1.20 показаны основные компоненты суперскалярного микропро-
цессора: функциональные модули: выполнения операций с плавающей
(FPU) и фиксированной (ALU) точкой, устройство загрузки/сохранения,
файлы регистров, раздельная кэш-память команд и данных, а также вспо-
могательные модули, обеспечивающие динамическое планирование вычис=
лительного процесса, устройство связи с кэш-памятью второго уровня, блок
переупорядочивания команд и блок предварительной дешифрации.
Направления развития архитектуры процессоров
с параллелизмом уровня команд
Как уже отмечалось, в суперскалярных процессорах предпринимается по-
пытка в рамках модели последовательных программ реализовать параллельное
исполнение команд этих программ. После извлечения последовательного
потока команд между командами устанавливаются только действительно
необходимые зависимости по данным. При этом сохраняется достаточно
информации о порядке следования команд в исходной программе, чтобы
сохранить их порядок при наступлении прерывания.
Типичный суперскалярный процессор выбирает команды и исследует их по
мере выполнения. Исследование проводится с целью выявления и обработ-
ки команд перехода, идентификации типа команды для ее дальнейшего на-
правления на соответствующий исполнительный блок или в буфер памяти.
Выполняются также некоторые действия для смягчения зависимостей по
данным, например, переименование регистров. VLIW-процессор возлагает
на компилятор статическую реализацию тех функций, которые в суперска-
лярном процессоре выполняются динамически.
По крайней мере, два обстоятельства ограничивают эффективность исполь-
зования суперскалярных архитектур. Во-первых, есть ограничения на сте-
пень параллелизма на уровне команд, даже если применяется самая совер-
шенная техника суперскалярных вычислений. Во-вторых, сложность
суперскалярного процессора возрастает, как количество параллельно испол-
няемых команд, и даже быстрее.
Природа этих ограничений состоит в том, что в программах существуют ус-
ловные переходы, при условном выполнении которых, в случае их вложенно-
сти, резко возрастают требования к ресурсам, что ограничивает количество
исполняемых команд. Кроме того, размер окна исполнения (число активных
команд, которые могут исполняться параллельно) ограничивает присущий
программе параллелизм, т. к. не рассматривается параллельное исполнение
команд, находящихся на расстоянии, превышающем размер окна.
Вероятнее всего, что пределом распараллеливания при суперскалярной об-
работке является запуск одновременно на исполнение в каждом такте 7—
8 команд.
Альтернатива суперскалярной___обработке — длинное___командное слово
(VLIW). Достоинства VLIW заключаются в следующем. Во-первых, компи-
лятор может более эффективно- исследовать зависимости между ко мандами
и выбирать параллельно исполняемые команды, чем это делает аппаратура
суперскалярного процессора, ограниченная размерст^кн^ТТсСюл'нения.
Во-вторых, VLIW-процессор имеет более простое устройство управления и
потенциально может иметь более высокую тактовую частоту.
Однако у VLIW-процессоров есть серьезный фактор, снижающий их произ-
водительность. Это команды ветвления, зависящие от данных, значения ко-
торых становятся известны только в динамике вычислений. Окно исполне-
ния VLIW-процессора не может быть очень большим ввиду отсутствия у
компилятора информации о зависимостях, формируемых динамически, в
процессе выполнения. Этот недостаток препятствует возможностй переупо-
рядочивания операций в VLIW-процессоре. Например, статически не может
быть гарантировано правильное выполнение операции загрузки в вызывае-
мой функции параллельно с операцией запоминания в вызывающей функ-
ции (особенно, если вызываемая функция определена динамически). Кроме
того, VLIW-реализация требует большого размера памяти имен, многовхо-
довых регистровых файлов, большого числа перекрестных связей. Возможен
такжё~останов, когда во время выполнения возникла ситуация, отличающаяся
от состояния в момент генерации плана выполнения (например, во время
выполнения произошло неудачное обращение в кэш).
Суперскалярные микропроцессоры и процессоры с длинным командным
словом являются современными продуктами микроэлектроники, и их про-
изводительность постоянно растет, но при использовании этих процессоров
необходимо тщательно исследовать архитектурные приемы получения высо-
кой производительности и проверять адекватность этих приемов проблем- '
ной области, для решения задач которой создается вычислительная система.
Дальнейшее повышение производительности микропроцессоров связывается
в настоящее время со статическим и динамическим анализом кода с целью
выявления параллелизма уровня программных сегментов, с использованием
информации, ^предоставляемой компилятором языка высокого уровня. Ис-
следования в данном направлении привели к разработке мультитредовой
архитектуры процессоров, которые являются дальнейшим развитием супер-
скалярной архитектуры.
В настоящее время работы в данном направлении находятся на стадии тео-
ретического исследования и имитационного моделирования. Однако уже
появился первый мультитредовый микропроцессор фирмы Intel. Процессо-
ры, в полной мере использующие все преимущества, предоставляемые муль-
титредовой архитектурой, разрабатываются фирмами IBM и SUN. Поэтому
основные моменты, связанные с данной архитектурой, будут рассмотрены
достаточно подробно в разд. 1.4.
Другим возможным подходом служит переход к ^мультипроцессорному ис-
'п6лненйю~на~однокристальных вычислительных системах?) В этом случае
речь идет о распараллеливающих компиляторах с языков высокого уровня.
1.3.3. Организация многоуровневой памяти
в микропроцессорах
Протоколы когерентности
памяти микропроцессоров
Одно из предназначений микропроцессоров состоит в их использовании как
элементов вычислительных систем. В зависимости от того, для построения
параллельных систем с какой архитектурой предназначается микропроцес-
сор, в нем реализуется тот или иной протокол когерентности многоуровне-
вой памяти. В следующих разделах рассмотрим два протокола: один для
систем с архитектурой SMP, использующих для объединения процессоров и
памяти системную шину, другой для систем с распределенной по процессо-
рам памятью.
Протокол когерентности MESI
В микропроцессорах, предусматривающих возможность их использования в
мультипроцессорных системах с архитектурой SMP, применяется протокол
MESI (Modified Exclusive Shared Invalid) организации кэш-памяти с обрат-
ной записью, который предотвращает лишние передачи данных между кэш-
памятью и основной памятью. Так, если данные в кэш-памяти не изменя-
лись, то незачем их пересылать. Кроме того, возможны еще усовершенство-
вания, которые применены в микропроцессоре Intel 80860ХР, связанные с
уменьшением количества сквозных записей 119].
Для представления алгоритма поддержки когерентности кэш-памяти MESI
зададим некоторые начальные условия и введем определения. Итак, каждый
микропроцессор имеет собственную локальную кэш-память, имеется также
обшая разделяемая основная память, все микропроцессоры подсоединены к
основной памяти посредством системной шины. К шине подключены также
внешние устройства.
Важно понимать, что все действия с использованием транзакций шины,
производимые микропроцессором и внешними устройствами, с копиями
строк, как в каждой кэш-памяти, так и в основной памяти, доступны для
отслеживания всем микропроцессорам. Это является следствием того, что в
каждый момент на шине передает только один, а воспринимают все, под-
ключенные к шине абоненты. Поэтому, если для объединения микропро-
цессоров используется не шина, а другой тип коммутационной среды, то
для работоспособности протокола MESI необходимо обеспечение вышеука-
занного порядка выполнения транзакций, чтобы они были доступны для
отслеживания всем микропроцессорам.
Каждая строка кэш-памяти микропроцессора может находиться в одном из
следующих состояний:
□ М — строка модифицирована (доступна по чтению и записи только в
этом микропроцессоре, потому что модифицирована командой записи по
сравнению со строкой основной памяти);
□ Е — строка монопольно копированная (доступна по чтению и записи в
этом микропроцессоре и в основной памяти);
□ S — строка множественно копированная или разделяемая (доступна по
чтению и записи в этом микропроцессоре, в основной памяти и в кэш-
памяти других микропроцессоров, в которых содержится ее копия);
□ I — строка, невозможная к использованию (строка не доступна ни по
чтению, ни по записи).
Состояние строки используется, во-первых, для определения микропроцес-
сором возможности локального, без выхода на шину, доступа к данным этой
кэш-строки в кэш-памяти, а, во-вторых, для управления механизмом коге-
рентности.
Для управления режимом работы механизма поддержки когерентности ис-
пользуется бит WT, состояние 1 которого задает режим сквозной (write-
through) записи, а состояние 0 — режим обратной (write-back) записи в кэш-
память.
При исполнении команд чтения и записи состояние строки кэш-памяти, к
которой выполняется доступ, определяется в табл. 1.2.
Таблица 1.2. Переходы между состояниями в протоколе MESI при выполнении команд чтения и записи
Исходное состояние строки Состояние после чтения Состояние после записи
I Если WT = 1 тогда Е, иначе S. Сквозная запись в основную
Обновление строки путем ее чтения из основной памяти памЯ1ь; I
S S Сквозная запись в основную память; если WT = 1 тогда Е, иначе S
Е Е М
М М М
Промах чтения в кэш-памяти заставляет вызвать строку из основной памяти
и сопоставить ей состояние Е или S. Кэш-память заполняется только при
промахах чтения. При промахе записи транзакция записи помещается в бу-
фер и посылается в основную память при предоставлении шины.
При несостоятельной строке в состоянии I команда чтения данного из этой
строки вызывает чтение строки из основной памяти, размещение ее в кэш-
памяти и изменение состояния этой строки в кэш-памяти на Е или S. Со-
стояние Е будет, если установлен режим сквозной записи, при котором за-
пись производится и в строку кэш-памяти, и в строку основной памяти. Со-
стояние S устанавливается при режиме обратной записи, что позволяет
модифицировать данные строки кэш-памяти без немедленной модификации
строки основной памяти, что, в свою очередь, увеличивает производитель-
ность. До тех пор, пока к данным строки не будет доступа других микро-
процессоров или внешних устройств, не будет обратной записи, и микро-
процессор не будет использовать шину.
При состоянии 1 строки команда записи в эту строку изменяет только со-
держимое строки основной памяти (сквозная запись), но не изменяет со=
держимое кэш-памяти и сохраняет состояние строки 1.
В состоянии S строки чтение данных из этой строки не меняет ее состоя-
ние. Если установлен режим сквозной записи, то после завершения записи
состояние строки меняется на Е, при режиме обратной записи выполняется
сквозная запись, но состояние строки остается прежним — S.
Если состояние строки Е, то при команде чтения это состояние сохраняется,
а выполнение команды "запись" переводит строку в состояние М.
Наконец, если состояние строки М, то как команды чтения, так и команды
записи не меняют состояния строки.
Для поддержки когерентности строк кэш-памяти при операциях ввода/
вывода и обращениях в основную память других процессоров на шине гене-
рируются специальные циклы опроса состояния типов кэш-памяти. Эти
циклы опрашивают типы кэш-памяти на предмет хранения в них строки,
которой принадлежит адрес, используемый в операции, инициировавшей
циклы опроса состояния. Возможен режим принудительного перевода стро-
ки в состояние I, который задается сигналом INV. При этом состояние
строк определяется в табл. 1.3.
Таблица 1.3. Переходы между состояниями в протоколе MESI
при операциях ввода/вывода
Исходное состояние INV = O INV = 1
I S I S I I
Е S I
М S; обратная запись строки I; обратная запись строки
Протокол DASH
Для мультипроцессорных систем, в которых память физически распределена
между процессорными модулями, и транзакции работы с памятью каждого
микропроцессора непосредственно не доступны для наблюдения другим
микропроцессорам, идентичность данных в типах кэш-памяти (когерент-
ность кэшей) различных процессорных модулей поддерживается с помощью
межмодульных пересылок. Существует несколько основных подходов.
Прямолинейный подход к поддержанию когерентности кэш-памяти в муль-
типроцессорной системе, основная память которой распределена по вычис-
лительным модулям (ВМ), заключается в том, что при каждом промахе в
кэш-память в любом процессоре инициируется запрос требуемой строки из
того блока памяти, в котором эта строка размещена. В дальнейшем этот
блок памяти будет по отношению к этой строке называться резидентным.
Запрос передается через коммутатор в модуль с резидентным для строки
блоком памяти, из которого затем необходимая строка через коммутатор
пересылается в модуль, в котором произошел промах. Таким образом, в ча-
стности, обеспечивается начальное заполнение кэш-памяти. При этом в ка-
ждом модуле для каждой резидентной строки ведется список модулей, в
кэш-памяти которых эта строка размещается, либо организуется распреде-
ленный по ВМ список этих строк. Строка, размешенная в кэш-памяти бо-
лее чем одного модуля, в дальнейшем будет называться разделяемой.
Собственно когерентность кэшей обеспечивается следующим. При обраще-
нии к кэш-памяти в ходе операции записи данных, после самой записи,
процессор приостанавливается до тех пор, пока не выполнится последова-
тельность действий: измененная строка кэш-памяти пересылается в рези-
дентную память модуля, затем, если строка была разделяемой, она пересы-
лается из резидентной памяти во все модули, указанные в списке
разделяющих эту строку. После получения подтверждений, что все копии
изменены, резидентный модуль пересылает в процессор, приостановленный
после записи, разрешение продолжать вычисления.
Изложенный алгоритм обеспечения когерентности хотя и является логиче-
ски работоспособным, однако практически редко применяется из-за боль-
ших простоев процессоров при операциях записи в кэш-строки. На практи-
ке применяют более сложные алгоритмы, обеспечивающие меньшие
простои процессоров, например, DASH |20|.
Каждый модуль памяти имеет для каждой строки, резидентной в модуле,
список модулей, в кэш-памяти которых размещены копии этой кэш-строки.
С каждой строкой в резидентном для нее модуле связаны три ее возможных
глобальных состояния:
□ "некэшированная", если копия строки не находится в кэш-памяти како-
го-либо другого модуля, кроме, возможно, резидентного для этой строки;
□ "удаленно-разделенная", если копии строки размещены в кэшах других
модулей;
□ "удаленно-измененная", если строка изменена операцией записи в ка-
ком-либо модуле.
Кроме этого, каждая кэш-строка находится в одном из трех локальных со-
стояний:
□ "невозможная к использованию";
□ "разделяемая", если есть неизмененная копия, которая, возможно, раз-
мещается также в других кэшах;
□ "измененная", если копия изменена операцией записи.
Каждый процессор может читать из своей кэш-памяти, если состояние чи-
таемой кэш-строки "разделяемая" или "измененная". Если кэш-строка отсут-
< ствует в кэш-памяти или находится в состоянии "невозможная к использо-
ванию", то посылается запрос "промах чтения", который направляется в
модуль, резидентный для требуемой кэш-строки.
( Если глобальное состояние кэш-строки в резидентном модуле "некэширо-
ванная" или "удаленно-разделенная", то копия кэш-строки посылается в за-
просивший модуль, и в список модулей, содержащих копии рассматривае-
мой кэш-строки, вносится модуль, запросивший копию.
Если состояние кэш-строки "удаленно-измененная", то запрос "промах чте-
ния" перенаправляется в модуль, содержащий измененную кэш-строку. Этот
модуль пересылает требуемую кэш-стрбку в запросивший модуль и в мо-
дуль, резидентный для этой кэш-строки, и устанавливает в резидентном мо-
дуле для этой кэш-строки состояние "удаленно-разделенная".
Если процессор выполняет операцию записи и состояние кэш-строки, в ко-
торую производится запись "измененная", то запись выполняется, и вычис-
ления продолжаются. Если состояние кэш-строки "невозможная к исполь-
зованию" или "разделяемая", то модуль посылает в резидентный для кэш-
строки модуль запрос на захват в исключительное использование этой кэш-
строки и приостанавливает выполнение записи до получения подтвержде-
ний, что все остальные модули, разделяющие с ним рассматриваемую кэш-
строку, перевели ее копии в состояние "невозможная к использованию".
Если глобальное состояние кэш-строки в резидентном модуле "некэширо-
ванная", то кэш-строка отсылается запросившему модулю, и этот модуль
продолжает приостановленные вычисления.
Если глобальное состояние кэш-строки "удаленно-разделенная", то рези-
дентный модуль рассылает по списку всем модулям, имеющим копию кэш-
строки, запрос на переход этих строк в состояние "невозможная к использо-
ванию". По получении этого запроса каждый из модулей изменяет состоя-
ние своей копии кэш-строки на "невозможная к использованию" и посыла-
ет подтверждение исполнения в модуль, инициировавший операцию записи.
При этом в приостановленном модуле кэш-строка после исполнения записи
переходит в состояние "удаленно-измененная".
Предпринимаются попытки повысить эффективность реализации алгоритма
когерентности, в частности, за счет учета специфики параллельных про-
грамм, в которых используются асинхронно одни и те же данные на каждом
временном интервале исключительно одним процессором с последующим
переходом обработки к другому процессору. Такого рода ситуации случаются,
например, при определении условий окончания итераций. В этом случае
возможна более эффективная схема передачи кэш-строки из кэш-памяти
одного процессора в кэш-память другого процессора.
Подход к выбору протоколов когерентности
Рассуждения о том, какой способ организации кэш-памяти более предпоч-
тителен, должны учитывать особенности генерации программ компилято-
ром, а также использование программистом при подготовке программы све-
дений о работе компилятора и контроллера кэш-памяти. То есть более
простой способ организации кэш памяти, поддерживаемый компилятором,
при исполнении программ, написанных в соответствии с некоторыми пра-
вилами, обусловленными особенностями компиляции и организации кэш-
памяти, может дать лучший результат, чем сложный способ организации
кэш-памяти.
Организация кэш-памяти микропроцессоров
Так как области памяти программ и данных различны и к ним происходит
одновременный доступ, то для повышения параллелизма при работе с памя-
тью делают отдельные типы кэш-памяти команд и данных.
1.3.4. Ускорение переключения
контекста процессора
Подходы к сокращению времени
переключения контекста процессора
Современные операционные системы и системы программирования широко
используют переключение контекста процессора (содержимого регистров и
отдельных управляющих триггеров) при отработке входа в прерывание и вы-
хода из него, входа и выхода из подпрограммы и в случае организации муль-
типрограммной работы. Время переключения контекста должно быть по
возможности минимальным, т. к. затраты на переключение — это плата за
организацию совместного протекания совокупности взаимодействующих
вычислительных процессов.
Уменьшение времени переключения контекста процессора может быть до-
стигнуто за счет, во-первых, сокращения количества регистров, содержимое
которых сохраняется в памяти, во-вторых, аппаратной поддержки сохране-
ния регистров и, в-третьих, введения специальных соглашений, регламенти-
рующих использование регистров в программах, что позволяет перейти от
полного сохранения контекста к частичному.
Уменьшение количества сохраняемых регистров
Уменьшение количества сохраняемых регистров ведет к снижению произво-
дительности и, вообще говоря, находится в противоречии со стремлением
увеличения производительности за счет использования быстрой регистровой
памяти и параллельного функционирования устройств процессора, каждое
из которых содержит собственные регистры. Однако этот прием применяется
в ряде архитектур, например в транспьютерах компании INMOS Ltd |2l ] и
Java-процессорах |22]. Это архитектуры, основанные на операциях со сте-
ком. К числу сохраняемых регистров относятся указатели на текущую пози-
цию стека, на используемую область памяти и т. д. Число таких указателей
ограничено, например в транспьютере их 8, что позволило переключать
контекст за 2 мкс при тактовой частоте 10 МГц.
Аппаратная поддержка сохранения регистров
Аппаратная поддержка может реализовываться по-разному. С одной сторо-
ны, это может быть ускоренный аппаратный перенос содержимого рсгист-
4 Зак. 1086
ров в память. С другой — возможно предоставление каждой вновь активи-
зируемой программе своего множества регистров.
Например, в архитектуре SPARC микропроцессоров компании SUN исполь-
зуется 8 групп (окон) по 32 регистра с общими для двух соседних окон во-
семью регистрами. Перекрытие регистровых окон выполнено так, что реги-
стры с номерами 24—31 предыдущего окна служат одновременно
регистрами с номерами 0—7 последующего окна. Это, по мнению разработ-
чиков, увеличивает эффективность передачи параметров подпрограммам.
Использование регистров обработки
быстрых прерываний
Ряд функций, связанных с обработкой прерываний, выполняются специали-
зированными программами, которые могут использовать ограниченное чис-
ло регистров. Поэтому в ряде процессоров вводятся специальные регистры,
используемые при обработке так называемых быстрых прерываний. Это,
например, прерывание по приему очередного символа сообщения, перено-
сящее символ в память. Действия по началу приема, требующие запуска ме-
ханизма распределения памяти, и завершению приема всего сообщения тре-
буют, как правило, обычного прерывания, сохраняющего все регистры
процессора. Но т. к, чаше происходит прием очередного символа, то быст-
рые прерывания дают существенное увеличение производительности.
1.3.5. Расширение функциональных
возможностей микропроцессоров
Направления расширения
функциональных возможностей
Наряду с увеличением количества арифметико-логических устройств, в
микропроцессоры вводятся дополнительные функциональные возможности:
□ интегрируются функции по управлению памятью и периферийными уст-
ройствами, для исполнения которых в традиционных микропроцессорах
используются так называемые "чипсеты";
□ вводятся блоки обработки мультимедийных данных, ранее использовав-
шиеся, например, в сигнальных микропроцессорах;
□ интегрируются интерфейсы сетевых и телекоммуникационных систем,
такие как Ethernet, ATM, FDDI, что позволяет соединять эти микропро-
цессоры друг с другом и телекоммуникационными и вычислительными
сетями без дополнительных адаптеров.
Следует отметить, что идея создания однокристального компьютера всегда
была популярной. В настоящее время проблема реализации на одном кри-
сталле встраиваемого блока памяти EDRAM (Embedded DRAM) достаточно
большого объема и микропроцессорного ядра близка к своему решению.
Фирма IBM объявила о создании компактной ячейки динамической памяти,
размер которой (0,62 мкм2) всего в 1,5 раза превышает размер ячейки в 64-
мегабитной микросхеме DRAM |25|. Блок EDRAM объемом 16 Мбит зани-
мает площадь 20,8 мм2. При этом пропускная способность EDRAM достига-
ет 50 Гбайт/с.
Фактически наступает время построения микросхем, в которых микропро-
цессор служит одним из составных элементов (ядер), однокристальных сис-
тем SOC (System On Chip). Фирма Motorola, например, предлагает два се-
мейства кристаллов, в которых в качестве ядра используется PowerPC бОЗе.
Это семейства на основе технологий AltiVec и PowerQUICC.
Интеграция управления памятью и периферией
Важность этой проблемы очевидна. Например, для того, чтобы построить ком-
пьютер с использованием микропроцессора Pentium, необходим набор микро-
схем (чипсет) Intel 440ХХ, для Pentium 111 требуется Intel® 440ВХ AGPsel.
Фирма SG1 создала набор микросхем Cobalt и Lithium для компьютеров
SG 320 и SG 540 на базе микропроцессоров Pentium II. Первая микросхема
имеет около 10 млн транзисторов и выполняет роль интегрированного кон-
троллера памяти и графического процессора. Микросхема Lithium реализует
процессор ввода/вывода, который управляет интерфейсами S-video, IEEE
1394, PCI, Ethernet.
Как правило, наборы микросхем разрабатываются самими фирмами, изго=
товляющими микропроцессоры. Внесение функций наборов микросхем
внутрь микропроцессора позволяет существенно упростить системные платы
компьютеров. Конечно, применение одного микропроцессора с разными
наборами микросхем позволяет строить компьютеры разных классов и це-
новых диапазонов, но это актуально только в условиях, когда необходимо
экономить аппаратные ресурсы.
Первым представителем этого направления служит микропроцессор
UltraSparc II i.
Мультимедийные расширения
Многие производители расширяют функциональные возможности выпус-
каемых ими микропроцессоров за счет введения специализированных бло-
ков для мультимедийных приложений. Следует отметить, что подобный
блок графического процессора имелся в микропроцессоре второго поколе-
ния Intel 80860 фирмы Intel, что на некоторых приложениях давало сущест-
венный прирост производительности.
Блоки для обработки мультимедийных данных имеют микропроцессоры
фирмы Intel (MMX-расширение системы команд Pentium и 70 новых SIMD-
команд Pentium III), фирмы AMD (3D NOW), фирмы SUN (VIS SPARC),
фирмы Compaq/DEC (Alpha MV1), фирмы HP (PA RISC MAX2), фирмы
SGI/MIPS (MDMX), фирмы Motorola (PowerPC AltiVec) |23J.
Возможны различные варианты встраивания команд мультимедийной об-
работки в систему команд микропроцессора: на уровне функционального
блока, использующего общий с другими блоками файл регистров (ММХ
Pentium) или на уровне отдельного процессора со своим регистровым фай-
лом, используя разнесеннную (decoupled) архитектуру. Последний вариант
применен в Pentium III и PowerPC AltiVec.
Команды мультимедийной обработки задают параллельную обработку в ре-
жиме SIMD-процессора нескольких единиц данных, представленных, как
правило, малоразрядными (8, 16, 32) числами в формате с фиксированной
точкой. Однако это не исчерпывает всех текущих потребностей, и в Pentium
III введена параллельная обработка в режиме S1 MD-процессора четырех 32-
разрядных операндов в формате с плавающей точкой.
Коммуникационные расширения
Интеграция коммуникационных интерфейсов в кристалл микропроцессора бы-
ла впервые сделана в транспьютерах. В современных микропроцессорах такие 1
интерфейсы также вводятся для построения параллельных систем. Яркими I
представителями служат Alpha 21364 и Power 4. Фирмы IBM, Toshiba и Sony ве- |
дут совместную разработку микропроцессора Cell, который должен представлять
собой "суперкомпьютер на кристалле" со связными интерфейсами.
Повсеместный переход от шин с временным разделением, таких как PCI,
VME, к каналам "точка-точка" PCI-Express, Rapid IO, HyperTransport, Infini-
Band окончательно закрепит в архитектуре микропроцессоров интерфейсы
для образования распределенных вычислительных систем.
Кроме специальных интерфейсов, предназначенных для построения парал-
лельных систем, в кристаллы вводятся телекоммуникационные интерфейсы.
В процессорах Motorola МРС8260 поддерживается множество телекоммуни-
кационных протоколов, включающих, например, 10/100 Мбит/с Ethernet,1
155 Мбит/с ATM. 256 каналов 64 Кбит/с HDLC,
1.3.6. Стандартизация архитектур
микропроцессоров
Проблемы стандартизации
На протяжении всей истории развития вычислительной техники предпри-
нимались попытки (прежде всего со стороны разработчиков программных
средств) стандартизировать архитектуру процессоров, что существенно рас-
ширило бы область применения создаваемого программного обеспечения.
Осознав безуспешность попыток добиться совместимости на уровне систе-
мы машинных команд, разработчики пытались стандартизировать язык ас-
семблера, языки высокого уровня, языки интерфейса прикладных программ
с операционными системами.
Стимулом к этому была и остается постоянно растущая сложность как самих
процессоров, так и создаваемых с их использованием программных систем.
Создание сложных новых систем требует помимо всего прочего наличия
двух обязательных этапов: адекватного описания системы и исчерпываю-
щего тестирования на соответствие этому описанию. Тестирование должно
быть доказательным. Не прибегая к примерам из области создания больших
прикладных систем, укажем на широко известные ошибки в микропроцес-
сорах известных компаний и на наличие недекларированных возможностей
микропроцессоров и операционных систем.
Отсутствие стандартизации не позволяет создавать новые системы путем кон-
струирования из существующих, прошедших апробацию в разнообразных ус-
ловиях применения большим количеством независимых пользователей.
Попытка комплексного решения проблемы стандартизации — формулиро-
вание концепции "открытых систем" |24|. Открытые системы представляют
совокупность интерфейсов, протоколов и форматов данных, базирующихся
на общедоступных, общепринятых стандартах, обеспечивающих переноси-
мость (мобильность) программного обеспечения, взаимодействие между
системами, масштабируемость.
Переносимость — свойство, выражающееся в возможности исполнения
программы в исходных кодах на различных аппаратных платформах в среде
различных операционных систем.
Взаимодействие систем — свойство, выражающееся в способности систем
обмениваться информацией с автоматическим восприятием форматов и се-
мантики данных.
Масштабируемость — свойство, выражающееся в возможности исполнения
программы на различных ресурсах (объем памяти, число и производитель-
ность процессоров) с пропорциональным изменению ресурсов значением
показателей эффективности. Важно понимать, что ресурсы могут не только
возрастать, но и уменьшаться. Например, программа может выполняться на
произвольно выделенном для ее исполнения участке памяти.
В рамках концепции "открытых систем" архитектура процессора должна
поддаваться достаточно простому формальному описанию со спецификаци-
ей типов данных, регистров и выполняемых преобразований без "побочных
эффектов".
Известны, по крайней мере, две попытки реализации этого подхода.
Архитектурно независимая спецификация программ
В настоящее время в рамках Международной организации по стандартиза-
ции ISO/IEC в Комитете по микропроцессорным системам ведется подго-
товка проекта стандарта ANDF (Architecture Neutral Distribution Format) на
архитектурно независимый формат спецификации программ. По мнению
разработчика компании X/Open Company Ltd., этот формат спецификаций
позволит решить проблему переносимости программ. Компиляция исход-
ного кода предполагается двухэтапной. На первом этапе исходный код
транслируется в обобщенные декларации интерфейсов прикладных про-
грамм (API) в совокупности с обобщенными описаниями типов данных.
Фактически полученная оттранслированная программа представляет собой
выражение абстрактной алгебры, определенной Architecture Neutral
Distribution Format. В результате текст программы может быть подвергнут
формальной проверке и преобразованию. На втором этапе генерируется
программа для конкретной архитектуры.
Java-технология
Эта технология была предложена компанией SUN. В основе данной техно-
логии лежит понятие виртуальной Java-машины, спецификации которой
включают следующие типы данных:
□ byte — байт;
□ short — двухбайтное целое;
□ integer — четырехбайтное целое;
О long — восьмибайтное вещественное;
□ float — четырехбайтное вещественное;
□ double — восьмибайтное вещественное;
□ char — двухбайтный символ;
□ object — четырехбайтная ссылка на объект;
□ returnAddress — четырехбайтный адрес возврата.
В виртуальной Java-машине предусмотрены следующие регистры:
□ рс — счетчик команд;
О vars — регистр для доступа к локальным переменным;
□ optop — указатель на стек операндов;
□ Frame — указатель на окружение времени выполнения.
Большинство команд Java-машины имеют длину один байт, что согласуется
со стековой архитектурой процессора, использующей небольшое число ре-
гистров и указателей на данные.
Использование байт-кода в Java-машине позволяет уменьшить длину про-
грамм. Средняя длина команды составляет 1,8 байта. В последнее время ко
всем ранее существовавшим доводам в пользу стандартизации архитектур
Добавилась практическая потребность работы в сетях типа Internet, что вы-
двигает требование короткого программного кода. Открытые системы, соз-
даваемые в Internet, позволят накапливать программные продукты и конст-
руировать системы из уже существующих.
Заметим, что архитектура виртуальной Java-машины достаточно похожа на
архитектуру транспьютеров компании 1MM0S. Отличие фактически состоит
в добавлении элементов объектно-ориентированной технологии. Одним из
препятствий на пути развития Java-технологии является низкая производи-
тельность исполнения Java-кода. Однако есть все предпосылки для преодо-
ления этого препятствия. Например, современные процессоры с архитекту-
рой компании Intel х8б содержат специальный блок, транслирующий
сложные команды в совокупность простых команд RISC-процессора. Далее
RISC-процессор исполняет эти команды, используя все преимущества RISC-
подхода для достижения высокой производительности. Вполне мыслимое
дело — разработать подобный транслятор для Java-кода, когда байт-код бу-
дет транслироваться в команды реального процессора.
Другой подход к повышению производительности ранее применен в транс-
пьютере Т-9000 [25]. В нем предпринята попытка при сохранении байтовой
системы команд транспьютеров семейств Т-2хх, Т-4хх, Т-8хх повысить ско-
рость исполнения за счет одновременной обработки большого числа команд
при исполнении их на параллельно функционирующих обрабатывающих
устройствах.
1.4. Мультитредовые микропроцессоры
1.4.1. Основы мультитредовой архитектуры
Суперскалярные микропроцессоры и микропроцессоры с длинным команд-
ным словом имеюч^один счетчик команд и, в силу этого, могут быть назва-
ны [однотрёдовыми] В этих микропроцессорах^команды, исследуемые на
предмет возможности их параллельного совместного исполнения, привяза-
ны к счетчику команд процессора либо окном исполнения как в суперска-
лярных микропроцессорах, либо длинной командой как в микропроцессо-
рах с длинным командным словом. Для того чтобы более агрессивно
выбирать для параллельного исполнения команды одной или нескодькйх
программ, в микропроцессор вводится /несколько счетчиков командой, воз-
можно, другого оборудования. Микропроцессоры с несколькими счетчика-,
ми команд получили название мультчтредовых [26—28].
Мультитредовая архитектура решает проблему борьбы с простоями функ-
циональных устройств процессора, возникающими из-за невозможности
выполнения следующей команды, путем переключения на другой регистро-
вый файл, тем самым процессор получает другой контекст для продолжения
вычислений, переходя к выполнению другого треда (процесса).
Переключение процессора на другой регистровый файл выполняется либо
по наступлению некоторого события, влекущего за собой простой процес-
сора (промах в кэш-память, обращение к оперативной памяти, наступление
прерывания), либо принудительно, например, в каждом такте, как в Тега
МТА 127].
В Тега МТА проблема разрыва между скоростью обработки в процессоре и
временем доступа в основную память решается посредством принудитель-
ного переключения в каждом такте процессора на работу с очередным мно-
жеством регистров. Структура мультитредового процессора представлена на
рис. 1.21. Каждый набор регистров обслуживает один вычислительный про-
цесс, называемый тредом.
Рис. 1.21. Мультитредовая архитектура
Всего в процессоре имеется п наборов регистров. Поэтому запрос, выдан-
ный в основную память процессом, может обслуживаться в течение п -1
тактов, вплоть до момента, когда процессор снова переключится на тот же
набор регистров. Тем самым по отношению к одному треду исполнение его
команд замедляется в п раз. Значение п выбирается исходя из того, чтобы
время доступа в память было меньше, чем время длительности п - 1 такта
процессора. Задача формирования п тредов целиком возлагается на компи-
лятор.
При всем различии подходов к созданию мультитредовых микропроцессо-
ров обшим в них является введение множества процессорных элементов,
содержащих устройство выборки команд, которое организует окно исполне-
ния для одного треда. В рамках одного треда м.ожет выполняться предсказа-
ние переходов, переименование регистров, динамическая подготовка команд
к исполнению. Тем самым, общее количество команд, находящихся в обра-
ботке, значительно превышает размер окна исполнения суперскалярного
процессора, с одной стороны, и тактовая частота не лимитируется размером
окна исполнения, с другой стороны.
Выявление тредов может выполняться компилятором при анализе исходного
кода на языке высокого уровня или исполняемого кода программы. Однако
компиляторы не всегда могут разрешить проблемы зависимостей при ис-
пользовании регистров и ячеек памяти между тредами, что требует разреше-
ния этих зависимостей уже в ходе исполнения тредов.
Для этого в микропроцессор вводится специальная аппаратура условного
исполнения тредов, предусматривающая возврат с отбрасыванием нарабо-
танных результатов в случае обнаружения нарушения зависимостей между
тредами. Нарушением зависимости, например, может служить запись по
вычисляемому адресу в одном треде в ту же ячейку памяти, из которой вы-
полняется чтение, которое должно следовать за этой записью, в другом тре-
де. В этом случае, если адреса записи и чтения не совпадают, нарушение
отсутствует. При совпадении адресов — фиксируется нарушение, которое
должно вернуть исполнение треда к команде чтения правильного значения.
Интерфейс между аппаратурой мультитредового процессора, поддерживаю-
щей протекание каждого отдельного треда, и аппаратурой, общей для испол-
нения всех тредов, может быть установлен как после устройств выборки
команд треда и принадлежащих треду функциональных устройств, так и на
уровне доступа к разделяемой памяти. В первом случае каждый тред исполь-
зует собственные функциональные устройства, например, целочисленное АЛУ
и ряд общих для всех тредов функциональных устройств, например, для вы-
полнения операций с плавающей точкой. Тесная связь по ресурсам позволяет
эффективно исполнять последовательные программы с сильной зависимостью
между тредами. В этом случае имеет место реализация мультискалярного
мультитредового процессора (SMT — simultaneous multithreading).
Во втором случае для исполнения каждого треда фактически выделяется
функционально законченный процессор. В целом, эта структура ориентиро-
вана на исполнение независимых и слабо связанных тредов, порождаемых
либо одной программой, либо их совокупностью. В этом случае скорее надо
говорить не о процессоре, а об однокристальной системе (CMP — chip mul-
tiprocessing).
Мультитредовый процессор может исполнять треды, принадлежащие одной
или нескольким программам. Если процессор исполняет одну программу, то
говорят о его производительности, если несколько программ — о пропуск-
ной способности.
По оценкам [29], при обработке транзакций мультитредовый процессор
Alpha 21464 будет в 10 раз производительнее, чем современный Alpha 21264.
При этом ускорение в 2 раза ожидается за счет именно мультитредовой ар-
хитектуры. Еще в 2 раза ускорение прогнозируется за счет увеличения ис-
пользования параллелизма уровня команд. Остальные 2,5 раза должны быть
достигнуты за счет усовершенствования технологии и повышения тактовой
частоты.
Мультитредовые микропроцессоры и однокристальные системы вбирают
накопленные в ходе эволюции приемы повышения производительности
микропроцессоров и используют симбиоз компиляторов и аппаратуры, со-
ответственно для статического и динамического выявления параллелизма из
исходных последовательных программ. Ориентация на исполнение совокуп-
ности тредов с определенной степенью межтредовых зависимостей обуслов-
ливает конкретные решения по совместному использованию тредами функ-
циональных устройств. Суть мультитредовой архитектуры — использование
совокупности регистровых файлов в процессоре. То есть транзисторы ис-
пользуются не для образования кэш-памяти, а для формирования совокуп-
ностей регистровых файлов, включающих счетчик команд, регистры состоя-
ния и рабочие регистры.
Хотя фирма Intel уже ввела двухтредовую архитектуру в своих процессорах
Xeon и Pentium 4, предстоят еще значительные исследования по мультитре-
довым архитектурам. Компания Тега [27] объявила о разработке проекта
мультитредового микропроцессора Torrent, реализующего процессор МТА.
Фирма Level One, образованная Intel, выпустила мультитредовый сетевой
микропроцессор IXP1200, содержащий в своем составе 6 четырехтредовых
процессоров [28]. IBM анонсировала проект компьютера Blue Gene [26] с
производительностью 1015 flops (Floating Point Operations per Second — опе-
раций с плавающей точкой двойной точности в секунду). Кристалл микро-
процессора Blue Gene включает 32 восьмитредовых процессора. В кристалл (
встроена DRAM, реализованная как 32 блока. Каждый блок соответствует
одному из 32 процессоров и имеет 256-разрядную шину доступа. Так как
DRAM имеет высокую пропускную способность и малую задержку, то при.,
восьмитредовой структуре процессора становится возможным отказаться от
кэш-памяти, вместо которой между процессором и памятью используется!
небольшая буферная память. Компании IBM, Sony, Toshiba ведут совмест-
ный проект по разработке мультитредового процессора Cell (биологическая'
клетка, ячейка), само название которого достаточно красноречиво свиде-;
тельствует о его предназначении (вторая попытка ввести название нового^
класса микропроцессоров после неудачи с термином "транспьютер"?). В |54|
утверждается, что этот процессор должен появиться в конце 2004 года. Его
производительность должна превышать более чем в 100 раз производитель-
ность Pentium 4 с тактовой частотой 2,5 ГГц.
1.4.2. Выявление тредов
Треды могут выявляться как на основе потоков управления (control driven),
так и на основе потоков данных (data driven) программ [30]. Треды бывают
условно или безусловно исполняемыми.
В безусловно исполняемых тредах доступ к разделяемым переменным в
регистрах и памяти обязан быть синхронизирован. Треды должны порож-
даться оператором fork только тогда, когда они действительно необходи-
мы, т. к. аппаратура процессора не отслеживает нарушений порядка дос-
тупа. Состояние разделяемых переменных должно быть таким же, как при
последовательном исполнении программы. Безусловно исполняемые тре-
ды имеют явно заданные операторы синхронизации и взаимодействия ме-
жду собой. Отличие безусловно исполняемых тредов на мультитредовом
процессоре от протекания тредов в процессорах параллельной системы
состоит в том, что во втором случае процессы взаимодействуют между со-
бой посредством пересылки данных и синхронизации без всяких ограни-
чений, т. к. они представляют собой параллельную программу. В первом
же случае передачи данных возможны только от ранее порожденных тре-
дов к тредам, порожденным позднее, т. к. в этом случае выполняется по-
следовательная программа.
В условно исполняемых тредах требуемый порядок доступа к разделяемым
переменным поддерживается аппаратными средствами, обнаруживающими
нарушение порядка доступа. Доступ к переменным выполняется в предпо-
ложении, что он допустим, а если оказалось, что произошло нарушение по-
рядка, то неверные результаты отбрасываются. Для этого могут быть исполь-
зованы буферы, которые хранят значения, не изменяя архитектурного
состояния треда до подтверждения правильности доступа.
При выявлении тредов на основе потоков управления анализируются управ-
ляющие структуры последовательной программы, такие как циклы, итера-
ции обращения к функциям и подпрограммам. Предпринимается попытка
выявления сегментов кода с минимальными взаимозависимостями.
На концептуальном уровне треды, выявляемые на основе потоков данных
программы, состоят из одной команды. Тред порождается, когда у команды
появляется один операнд. Возможным расширением концепции этих тредов
служит выполнение не одной команды по готовности всех операндов, а по-
следовательности команд, возглавляемой этой командой. Передачи данных
между тредами указываются явно.
Автоматическое преобразование программ на императивных языках в про-
граммы потоков данных находится в стадии исследования. Программы по-
токов данных пишутся на функциональных языках или специальных языках
потоков данных.
1.4.3. Мультитредовые процессоры с тредами,
выявляемыми путем анализа потоков
управления программы
Мультитредовая модель выполнения программы
Мультитредовые процессоры с условно исполняемыми тредами (31] исполь-
зуют агрессивную парадигму выполнения кода с целью извлечения условно
исполняемых тредов из последовательной программы. В соответствии с
данной парадигмой программа разбивается на совокупность единиц обра-
ботки, называемых далее сегментами, с помощью программных и аппарат-
ных средств. Сегмент — часть программы, выполнению которой соответствует
тред. Сегмент представляет собой непрерывную область последовательности
команд (например, часть базисного блока, базисный блок, множество ба-
зисных блоков, одиночную итерацию цикла, полный цикл, обращение к
функции и т. д.). Возможны различные методы формирования сегментов и
организации их исполнения. Далее будет представлен один из возможных
вариантов [31|, предметно иллюстрирующий суть мультитредового микро-
процессора с условно исполняемыми тредами.
Для выполнения на мультитредовом процессоре сегменты программы стати-
чески разграничиваются аннотациями. Зависимости между операторами
программы по управлению представляются как граф управляющих зависи-
мостей (ГУЗ), в котором вершинами являются сегменты, а дугами задается
порядок их выполнения. Динамика выполнения программы может рассмат-
риваться как обход ГУЗ программы. На каждом шаге обхода мультитредо-
вый процессор назначает один сегмент на один из процессорных элементов
(ПЭ), предназначенный для выполнения треда, без учета фактического со-
держания сегмента, и продолжает обход ГУЗ от рассматриваемой вершины
до следующей.
Сегмент назначается для выполнения некоторому процессорному элементу,
передачей ему начального значения программного счетчика. Множество
инициированных таким образом сегментов выполняется параллельно на
процессорных элементах, результатом чего является выполнение множества
команд за один процессорный такт.
Каждый из процессорных элементов выбирает и выполняет команды, при-
надлежащие выделенному ему сегменту. Значения разделяемых процессор-
ными элементами регистров копируются в каждый ПЭ. Результат модифи-
кации содержимого регистров динамически направляется множеству парал-
лельных ПЭ в соответствии с генерируемыми компилятором масками.
Доступ к памяти осуществляется спекулятивно (условно, по предположению),
без знания последовательности предшествующих команд загрузки или сохра-
нения. Обращение к данным осуществляется параллельно многим ПЭ, обра-
ботка приостанавливается только в случае истинной зависимости данных.
Пример архитектуры мультитредового процессора показан на рис. 1.2$.
Рис 1.22. Архитектура мультитредового процессора
Аналогично, следующие процессоры выполняют динамические команды
базисных блоков Л2, В?, В},С(2, Z)2 и Я3, В^,С^, В},С], Z)3 согласно второй
и третьей итерации соответственно. В этом примере потенциальным резуль-
татом мультискалярного подхода является выполнение трех полезных ко-
манд в такте. Например, в данном такте процессоры могли бы выполнять
команды из динамических базисных блоков В\,С\ и В] одновременно.
Важно заметить, что сегменты хотя и разделены на группы команд, но не
являются независимыми. Так как сегменты являются частями последова-
тельного потока команд, то отношения по данным и управлению между
индивидуальными командами должны поддерживаться в процессе выполне-
ния. Ключевым вопросом в мультитредовой реализации является обеспече-
ние связи по данным и управлению между параллельными процессорами.
То есть, как обеспечить выполнение последовательного обхода ГУЗ, если
фактически выполняется непоследовательный обход?
Последовательный обход поддерживается следующим образом. Во-первых,
для каждого процессора обеспечивается последовательная модель выполне-
ния назначенного ему сегмента. Во-вторых, предписывается последователь-
ный порядок выполнения для совокупности процессоров, который поддер-
живается с помощью организации циклической очереди ПЭ. Указатели
начала ,и конца очереди идентифицируют ПЭ, которые выполняют самый
ранний и самый поздний из назначенных сегментов соответственно. На-
пример, согласно рассматриваемому ГУЗ (рис. 1.23), ПЭ в начале списка,
выполняющий первую итерацию, предшествует ПЭ, выполняющему вторую
итерацию, который, в свою очередь, предшествует ПЭ в конце списка, вы-
полняющему третью итерацию.
По мере выполнения команд сегмента производятся и потребляются значе-
ния переменных программы. Эти значения связаны с местом хранения, а
именно с регистрами и с памятью. Так как при последовательном выполне-
нии область.хранения переменных рассматривается как единый набор реги-
стров и памяти, мультитредовое выполнение должно поддерживать такую же
модель. Кроме того, должно гарантироваться, что значения используются и
производятся так же, как и при последовательном выполнении. В рассмат-
риваемом примере значения, используемые командами в динамическом ба-
зисном блоке В}, должны быть результатами выполнения последовательно-
сти блоков А', В,,С,1, В\, В\,С], £>/, А*, В, , а также предшествующих
команд в В% Чтобы обеспечить это, необходимо синхронизировать обмен
между сегментами.
В случае использования регистровой памяти логика управления синхрони-
зирует создание значений регистров в сегментах-предшественниках с по-
треблением этих значений в сегментах-преемниках. Производимые сегмен-
том регистровые значения могут быть определены статически и отмечены в
маске создания сегмента. В момент выработки соответствующего регистро-
вого значения, если есть отметка в маске создания, это значение посылается
через однонаправленный кольцевой канал (см. рис. 1.22) последующим сег-
ментам, т. е. в ПЭ, которые являются логическими преемниками ПЭ, выра-
ботавшего значение. Загружаемые из кольцевого канала в регистры значе-
ния, предназначенные для сегментов-преемников, определяются в маске
накопления, которая является объединением масок создания активных сег-
ментов-предшественников. Как только значения получены из ПЭ предшест-
венников, очищаются признаки сохранения в ПЭ-преемниках. Если сегмент
использует одно из этих значений, потребляющая команда может быть ис-
полнена только в том случае, если значение было получено, иначе она ждет
получения требуемого значения.
В отличие от значений регистров, для значений, хранимых в памяти, в силу
динамического вычисления адресов нельзя заранее точно определить, какие
из них используются или производятся сегментом. Если известно, что сег-
мент потребляет значение из памяти (используя команду загрузки), которое
произведено (с помощью команды сохранения) в более раннем сегменте,
возможно синхронизировать потребление и производство этого значения.
То есть загрузка в сегменте-преемнике может быть отложена до тех пор, по-
ка в сегменте-предшественнике не будет выполнена команда сохранения
(похоже на ситуацию с регистрами, однако механизм синхронизации все же
другой ввиду несоизмеримости размеров пространства имен).
В общем случае, когда такое знание недоступно, может быть предпринят
консервативный или агрессивный подход. Консервативный подход подразу-
мевает необходимость ожидания до тех пор, пока не возникнет уверенность,
что команда загрузки прочтет правильное значение. Этот подход обычно
подразумевает задержку выполнения команд загрузки внутри сегмента до
тех пор, пока не завершили операции записи в память все сегменты-
предшественники, результат которых может быть использован последующей
командой. При агрессивном подходе загрузки из памяти в регистры ПЭ
должны выполняться спекулятивно, в предположении, что сегмент-пред-
шественник позже не будет сохранять значения в ту же самую ячейку памя-
ти. Чтобы 1арантировать, что никакой сегмент-предшественник не записы-
вает значение в ячейку памяти, предварительно считанную сегментом-
преемником, должна проводиться проверка в процессе выполнения вычис-
лений. Если эта проверка идентифицирует загрузку и сохранение, которые
находятся в противоречии (не происходят в соответствующем порядке), бо-
лее поздняя единица обработки должна быть прервана, и должна быть ини-
циализирована соответствующая процедура восстановления. В мультитредо-
вых процессорах используется агрессивный подход.
Из-за спекулятивного характера мультитредовое выполнение должно иметь
как средства подтверждения правильности выполнения, так и средства ис-
правления в случае неправильного выполнения. Выполнение команд внутри
сегмента может рассматриваться как спекулятивное с двух точек зрения:
□ спекулятивное по управлению;
□ спекулятивное по данным.
Если в результате спекулятивного управления предсказание следующего
сегмента оказалось неверным, то следующий сегмент (сегменты) должен
быть отменен и восстановлена правильная последовательность сегментов.
Аналогично сегмент, использующий неправильные данные, должен быть
отменен, и должно быть восстановлено правильное значение данных. В лю-
бом случае отмена сегмента приводит к отмене всех сегментов, выполняе-
мых после отмененного (иначе поддержание последовательной семантики
оказывается сложным).
Для упрощения сохранения последовательной семантики исполнения про-
граммы мультитредовый процессор удаляет сегменты из циклической очере-
ди в том же порядке, в каком их помещал в очередь. В процессе спекуля-
тивного выполнения сегмент производит значения, которые могут быть как
правильными, так и неправильными. Только, безусловно, правильные ре-
зультаты сегмента могут быть безопасно использованы другими сегментами.
Тем не менее, в мультитредовом процессоре значения оптимистично посы-
лаются для спекулятивного использования в ходе выполнения других сег-
ментов. Поскольку сегмент посылает значения предварительно другим сег-
ментам, как только их вырабатывает, большая часть, если не все значения,
будут посланы к моменту, когда сегмент становится головным в очереди,.
Таким образом, отмена сегмента для освобождения процессора и назначе-
ния нового сегмента может быть выполнена просто путем модифицирова-
ния указателя начала очереди.
Чтобы иллюстрировать мощность мультитрсдовой модели, рассмотрим при-
мер, приведенный в листинге 1.6. В ходе выполнения данной программы из
буфера неоднократно выбирается символ и проверяется на совпадение с
элементами связанного списка. Если совпадение произошло, вызывается
функция обработки символа. Если совпадения не произошло, символ вклю-
чается в список. По мере выполнения программы добавления элементов в
список станут нечастыми, поскольку большинство символов будет совпадать
с элементами, уже содержащимися в списке.
При выполнении программы на мультитредовом процессоре сегмент, назна-
ченный на процессор, выполняет один полный поиск по списку для соот-
ветствующего символа. Процессоры выполняют поиск по связанному спи-
ску параллельно, каждый для своего символа, в результате чего выполняется
множество команд за один такт.
for (indx = 0; indx t—BUFSlZE; indx ++) {
/* Получить символ для поиска */
symbol = SYMVAL (buffer [indx]);
/* Ппг-прдпватрпьнмй перебор .для символа в списке */
for (list = listhd; list; list = LNEXT (list)) {
/* если символ содержится в списке, обработать его */
if (symbol == LELE (list)) {
process (list);
break;
}
}
/*, если символ в списке не найден, добавить его к хвосту списка ★/
if (! list) (
Addlist (symbol);
}
}
Мультитредовые программы
Программа, предназначенная для исполнения на мультитредовом процессо-
ре, должна обеспечивать возможность быстрого обхода ее ГУЗ, в результате
которого производится распределение множества сегментов по множеству
процессоров.
Спецификация кода для каждого сегмента одинакова. Сегмент определяется
как фрагмент программы для последовательной машины. Хотя система
команд, в которой представляется код, оказывает влияние на конструкцию
каждого индивидуального процессора, это не оказывает влияния на осталь-
ную часть конструкции мультитредового процессора.
Для ускорения обхода ГУЗ планировщику мультитредового процессора тре-
буется информация о структуре потока управления программы. В частности,
требуется знать, какие сегменты являются возможными преемниками лю-
бого сегмента в ГУЗ. Планировщик мультитредового процессора использует
эту информацию для предсказания одного из возможных сегментов-
преемников и продолжения обхода ГУЗ, начиная с текущей отметки. Такая
информация может быть определена статически и помещена в описатель
сегмента. Описатели сегментов могут быть расположены внутри текста
программы (например, перед кодом сегмента) или помещены отдельно, ря-
дом с текстом программы (например, в копне).
Для согласованного выполнения различных сегментов необходимо характе-
ризовать каждый сегмент в соответствии с набором используемых и произ-
водимых сегментом значений.
Процедура обработки регистровых значений проста. В результате статиче-
ского анализа ГУЗ компилятором формируется маска создания. Потребляя
значения, сегмент ожидает их только в том случае, если они еще не были
произведены сегментом-предшественником. Иначе она находит требуемые
значения внутри локальной памяти, переданные по кольцу сегментом-
предшественниом.
Естественным является расположение маски создания внутри описателя
сегмента. Так как сегмент может содержать множество базисных блоков,
выполнение которых зависит от обрабатываемых данных, не представляется
возможным определить статически, какие регистровые значения будут соз-
даны в динамике вычислений из-за возможных условных переходов. Маска
создания должна быть консервативной и, вследствие этого, включать все
возможные регистровые значения, которые могут быть произведены.
По мере выполнения процессором команд сегмента производимые значения
регистров пересылаются последующим сегментам. Так как ПЭ не может оп-
ределять априорно, какие команды содержит назначенный ему сегмент, он
не может знать, какие из команд выполняют модификацию регистров, чье
значение должно быть послано другим сегментам, В соответствии с после-
довательной семантикой другим сегментам должен быть послан только ре-
зультат последней модификации регистра в сегменте. Стратегия, связанная с
ожиданием выполнения всех команд в сегменте (когда никакие дальнейшие
модификации регистров не возможны), нецелесообразна, т. к. это часто
приводит к ожиданию другими сегментами значения, которое уже является
доступным.
Не все созданные сегментом значения должны быть переданы сегментам-
преемникам. Достаточно передавать лишь те значения, которые будут ис-
пользованы вне создавшего их сегмента.
Компилятор имеет возможность определения последней команды в сегмен-
те, которая модифицирует соответствующий регистр. Он может отметить эту
команду как специальную (выполнить и переслать) команду, которая в до-
полнение к выполнению определенной операции направляет результат сле-
дующим ПЭ. Кроме того, поскольку ПЭ выполняет команды сегмента, он
может идентифицировать те регистры, для которых значения не будут про-
изведены.
По тем же самым причинам процессор не может определить, какие коман-
ды в действительности выполняет назначенный ему сегмент, так же, как не
может определить априорно, на какой команде сегмент завершится, т. е. в
какой точке управление передается вне сегмента. Во время разбиения ком-
пилятором ГУЗ на сегменты определяются границы сегмента и узлы переда-
чи управления. Команда в одном из этих узлов передачи управления может
быть отмечена специальными условиями остановки так, чтобы соответст-
вующие условия могли быть оценены к моменту выборки такой команды
процессором. Если связанные с командой условия останова выполнены, то
сегмент завершен.
Спецификация пересылки и останова может быть задана с помощью добав-
ления теговой битовой отметки (битов пересылки и стоповых битов) к каж-
дой команде сегмента. Возможно также другое введение битовых отметок.
Например, с каждой статической командой может быть ассоциирована таб-
лица теговых битов. Аппаратные средства выбирают команды из текста
программы и соответствующие битовые отметки из таблицы объединяют эту
пару в новую команду и помещают в кэш-память команд. Освобождение
регистра может быть задано добавлением специальной команды освобожде-
ния базовой системе команд.
Мультитредовая программа может быть сгенерирована из существующей
двоичной путем добавления описателей сегментов и битовых отметок. Эта
информация может быть размещена внутри кода программы, а также до или
после кода.
Разделение исполнительного кода и описателей позволяет упростить про-
цедуру перенесения программы на другие аппаратные средства.
Аппаратные средства,
необходимые для мультитредовой архитектуры
На аппаратные средства возлагаются функции обхода ГУЗ, назначения сег-
ментов на процессоры и выполнения этих сегментов при сохранении после-
довательной семантики программы. Работа по определению порядка назна-
чения сегментов на выполнение возлагается на программу-планировщик.
По адресу описателя сегментов программа-планировщик выбирает описа-
тель сегмента и назначает сегмент на процессор, выдает адрес первой
команды, устанавливает маски создания и накопления для сегмента. Плани-
ровщик, используя статическую или динамическую схему предсказания на
основе информации из описателя сегмента, предсказывает сегмент-
преемник. Каждый процессор независимо выбирает и выполняет команды
сегмента до тех пор, пока не сталкивается с командой останова, идентифи-
цирующей завершение сегмента.
Основной целью распределения сегментов по процессорам мультитредового
процессора является создание возможности выполнения нескольких команд
в одном такте. Потери производительности мультитредового процессора
возможны из-за наличия у процессоров тактов бесполезных вычислений,
тактов ожидания и свободных тактов.
Бесполезные такты вычисления представляют работу, которая в последую-
щем будет отменена ввиду использования неправильных значений данных
или неправильного предсказания. Такты ожидания связаны с ожиданием
получения значения, созданного командой в сегменте-предшественнике,
или значения, созданного командой в том же самом сегменте (например, в
случае операции с большим временем выполнения или ввиду неудачного
обращения в кэш), а также с ожиданием при выполнении действий по пе-
репланированию сегментов. Неактивные такты составляют время, в течение
которого процессор не имеет назначенного сегмента. Основной причиной
их возникновения является несбалансированность загрузки процессоров.
Для уменьшения потерь, связанных с бесполезными тактами, следует сни-
жать вероятность отмены результатов предыдущих вычислений, обеспечивая
синхронизацию процессоров по данным, а также устанавливать факт необ-
ходимости отмены (если он имеет место быть) как можно раньше.
Преимущества мультитредовой архитектуры
Мультитредовый процессор имеет некоторые свойства, выгодно отличаю-
щие его от традиционных суперскалярных микропроцессоров.
При суперскалярном подходе точность предсказания ветвлений ограничива-
ет степень параллелизма. Если средняя вероятность правильного предсказа-
ния перехода 0,9, то вероятность правильного предсказания на пять ветвле-
ний вперед только 0,6.
Мультитредовый процессор имеет большую глубину предсказания и обеспе-
чивает большую вероятность выбора правильного направления вычислений.
Это свойство обусловлено избирательностью предсказания ветвей. Мульти-
тредовый процессор разбивает последовательный поток команд на сегменты.
Хотя сегменты могут содержать внутренние ветви, планировщик должен
предсказывать только ветви, которые отделяют сегменты. Ветви, содержа-
щиеся внутри сегментов, не предсказываются (если они не предсказаны от-
дельно внутри процессора).
Для суперскалярных процессоров наличие широкого окна выполнения при-
водит к увеличению числа отложенных команд и усложняет контроль ре-
зультатов выполнения всех команд в этом окне.
В мультитредовой реализации окно может быть очень широким, однако в
любой момент времени только несколько команд должны быть рассмотрены
на предмет выдачи результатов (только одна для каждого процессора). Гра-
ницы окна отложенных команд могут быть идентифицированы первой и
последней командами в очереди на исполнение.
Для одновременной выдачи п результатов в процессоре должна использо-
ваться логика со сложностью л2, чтобы выполнить перекрестную проверку
зависимостей среди команд. В суперскалярном процессоре это ограничи-
вает пропускную способность логики выдачи. В мультитредовом процес-
соре каждый процессор выдает команды независимо, т. е. сложность логи-
ки порядка п.
Прежде чем переупорядочить доступ к памяти, необходимо идентифициро-
вать и вычислить все адреса загрузки и записи значений.
В суперскалярной реализации команды загрузки и записи упорядочиваются
(или сохраняются в первоначальной последовательности) и помешаются в
буфер вместе с адресом доступа к памяти. При выполнении команды за-
грузки и выборке значения из памяти проверяется буфер, чтобы гарантиро-
вать, что не отложена никакая более ранняя команда записи или загрузки
по тому же самому или по еще не определенному адресу. В мультитредорой
реализации команды загрузки и записи могут быть выполнены независимо,
без знания последовательности выполнения команд загрузки и записи в
сегменте-преемнике или предшественнике.
В суперскалярном процессоре в принципе возможна генерация достаточно
широкого окна выполнения с большой глубиной предсказания ветвлений.
Можно генерировать очень гибкий план выполнения команд. Например,
загрузка в вызываемой функции может выполняться параллельно с запоми-
нанием в вызывающей функции. Однако суперскалярный процессор не
имеет представления о ГУЗ программы. Поэтому и возникает необходимость
предсказания каждого перехода, что, в конечном счете, приводит к сниже-
нию точности предсказания и производительности.
Мультитредовый процессор во многом похож на многопроцессорную систе-
му с общей памятью и очень низким уровнем непроизводительных затрат на
планирование |31—33]. Главное их отличие заключается в том, то много-
процессорная система требует, чтобы компилятор делил программу на сег-
менты, где все соотношения зависимостей между сегментами известны
(предусмотрены программистом путем использования операторов синхрони-
зации и межпроцессорных коммуникаций), а мультитредовый процессор не
требует никакого априорного знания относительно связей команд по управ-
лению и данным.
Мультитредовая архитектура объединяет принципы низко- и высокоуровне-
вого распараллеливания, методы анализа статической и динамической
структур программы, благодаря чему позволяет добиться более высоких зна-
чений эффективности использования вычислительных ресурсов процессора,
чем другие типы архитектур. Фактически в мультитредовых процессорах
реализован симбиоз автоматически распараллеливающего компилятора,
дающего указания аппаратуре процессора в виде отметок команд и специ-
альных команд, и аппаратных средств, воспринимающих эти указания.
Конечно, изложенный подход не является единственно возможным при
реализации этой плодотворной идеи — привлечения компилятора к распре-
делению заданий по процессорам и балансировке загрузки процессоров в
многопроцессорных системах.
1.4.4. Мультитредовые процессоры с тредами,
выявляемыми путем анализа потоков
данных программы
Примером реализации мультитредового процессора с тредами, выявляемыми
путем анализа потоков данных программы, служит микропроцессор Kin
[34]. Этот микропроцессор строится как совокупность функциональных
блоков, связи между которыми выполняются через FIFO-очереди. Каждый
функциональный блок может быть внутри как синхронным (что вполне
возможно в силу ограниченного размера блока), так и асинхронным. По-
следнее достаточно актуально, т. к. в |35] приводится мнение о том, что
микропроцессоры на кристаллах с миллиардом транзисторов и тактовыми
частотами на уровне гигагерц не могут быть синхронными. На больших
кристаллах время распространения от одного края кристалла до противопо-
ложного края любых сигналов, включая тактовые, составляет порядка 3 нс,
что при тактовой частоте 2 ГГц занимает 5—7 тактов. Традиционное реше-
ние, основанное на введении сети распределения тактового сигнала, требует
много ресурсов и энергии. Например, в микропроцессоре Alpha 40% мош-
ности расходуется на распределение тактового сигнала без скоса (skew)
фронтов и неравномерностей (jitter) периодов.
Для понимания функционирования микропроцессора Kin важно то, что
блок выбирает из входной очереди элементы по мере их поступления, про-
изводит заданные действия и помещает результат в выходную очередь. При
такой организации поток команд распространяется между блоками как по-
ток пакетов, содержащих в себе теги и другую необходимую информацию
для управления функциональными блоками. Используемая в Kin модель ILP
организации вычислений служит развитием па современном этапе идей по-
токовых вычислений (data flow).
Основным архитектурным понятием микропроцессора Kin является базис-
ный блок: последовательность команд преобразования данных в регистрах и
памяти, завершающаяся командой перехода.
Устройство выборки команд извлекает и декодирует команды очередного
базисного блока и размещает этот блок как строку кэш-памяти декодиро-
ванных команд. Каждая команда получает при этом уникальный динамиче-
ский тег.
Далее в блоках переименования регистров устраняются лишние WAR- и
WAW-зависимости между командами, и команды поступают в блок органи-
зации внеочередного исполнения.
Из блока внеочередного исполнения команды передаются в резервирующие
станции, в которых они ожидают готовности операндов для начала своего
исполнения.
Команды с готовыми операндами посылаются резервирующими станциями
для исполнения в функциональные блоки: интерпретации команд перехода,
интерпретации арифметических, логических команд и команд сдвига, вы-
полнения команд обращения к памяти. Результаты работы функциональных
блоков передаются в резервирующие станции, в блок внеочередного испол-
нения команд и, в случае команд перехода, в блок предвыборки команд.
Описанная организация функционирования микропроцессора Kin обычна
для процессоров с внеочередным исполнением команд. Особенность Kin
состоит в применении механизма жадной (avid) выборки команд базисных
блоков и механизма удаления команд, которые были выбраны при ошибоч-
ном предсказании хода вычислений.
Блок предвыборки команд, реализующий предсказание переходов и жадную
предвыборку команд, извлекает команды из кэш-памяти декодированных
команд и приписывает им динамический тег, содержащий, среди прочего,
трассу, которой принадлежит команда. При этом одни и те же команды
могут извлекаться многократно. Например, в случае цикла, организуемого
командой условного перехода, команды тела никла многократно извлекаются.
При этом они рассматриваются как независимые друг от друга. Одновре-
менно могут извлекаться команды разных кэш-строк памяти декодирован-
ных команд. Это и составляет суть жадной предвыборки команд.
При жадной предвыборке команд выбираются команды как по направлению
перехода, так и по направлению отсутствия перехода. Поэтому при опреде-
лении значения предиката команды перехода необходимо устранить резуль-
таты неверно предвыбранных команд и сами эти команды. Для этого ис-
пользуются динамический тег, который формируется при выполнении
команд перехода. Если команда перехода имела в теге трассу т, то предвы-
бранные команды одного направления получают трассу тО, а другого на-
правления — трассу ml. Тем самым, появляется возможность при каждом
определении направления перехода установить все те команды, которые бы-
ли ошибочно выбраны. Блок удаления ошибочно выбранных команд рассы-
лает сообщения другим блокам о трассах команд, подлежащих удалению.
1.4.5. Специфика мультитредовых
моделей распараллеливания
При реализации мультитредовых архитектур важно установить, что выпол-
няется программистом, компилятором, операционной системой и процессо-
ром. Процессор должен исполнять треды, но есть еще управление тредами:
выборка тредов, порождение тредов, установление порядка их исполнения,
назначение ресурсов, коммуникации между тредами.
Самый сложный процесс, а именно: выборку тредов должен делать компи-
лятор или программист. При этом необходимо формировать вспомогатель-
ные указания для аппаратуры, позволяющие в дальнейшем упростить работу
процессора.
Программа, предназначенная для исполнения на мультитредовом процессо-
ре, должны состоять из совокупности тредов, каждый из которых представ-
ляет собой единицу обработки данных. Важной чертой мультитрсдовых про-
цессоров служит возможность эффективной реализации не только доступа в
память, но и доступа к устройствам ввода/вывода, а также контроллерам
сетевых адаптеров коммуникационных сред. В мультитрсдовой программе
возможно достижение предельного совмещения вычислений в мультитрсдо-
вых процессорах с межпроцессорными обменами. Тред, обратившийся к
сетевому адаптеру, будет ждать завершения обмена, в то время как другие
треды будут исполняться. Это свойство мультитрсдовых микропроцессоров
делает их проблемно-ориентированными на построение из них массово па-
раллельных систем.
Следует отметить, что к мультитредовым микропроцессорам можно отнести
транспьютеры с их аппаратно поддержанным исключительно малым, при
соответствующей тактовой частоте, временем переключения контекста про-
цессов и виртуализацией каналов (Т-9000) |21, 251.
Таким образом, мультитредовая архитектура служит следующим, после су-
перскалярной, шагом в направлении развития методов динамического рас-
параллеливания программ при полном использовании результатов статиче-
ского распараллеливания. Эта архитектура, если не снимает вообще, не
предъявляет требования локализуемое™ обрабатываемых данных.
Мультитредовая архитектура предлагает решение для следующих проблем,
препятствующих развитию суперскалярных микропроцессоров:
□ эффективной загрузки большого количества функциональных устройств;
□ преодоления разрыва в быстродействии выполнения регистровых команд
и команд доступа в память;
□ уменьшения времени обслуживания прерываний по сравнению с супер-
скалярными процессорами за счет возможности выделения отдельного
треда, исполняющего программы обработки прерывания, и возможность
работы в режиме жесткого реального времени;
□ эффективного совмещения вычислений в микропроцессорах с межпро-
цессорными обменами.
1.5. Развитие архитектур
микропроцессоров
1.5.1. Влияние элементной базы
на реализуемость архитектур
Дискретная элементная база и интегральные схемы малой и средней инте-
грации позволяли сконструировать и изготовить процессор с произвольной
архитектурой при одном ограничении на общий объем используемого обо-
рудования. Процессор изготовлялся из плат, на которых были припаяны
электронные компоненты. Платы, в свою очередь, посредством разъемных
соединений устанавливались в блоки, которые объединялись кабелями с
межблочными разъемами в стойки и конструктивы следующего уровня. Та-
ким образом, для производства процессора, после того как было закончено
его проектирование, требовалось большое количество монтажников и на-
ладчиков для изготовления и настройки плат, блоков, стоек и соединений
между ними.
Для получения высокой производительности было необходимо иметь соот-
ветствующее количество регистров и функциональных устройств, но тре-
буемый для их создания объем электронных компонентов, паяных и разъ-
емных соединений ограничивался надежностью создаваемого процессора,
стоимостью и энергопотреблением. В этих условиях конструкторы процес-
соров придумали значительное разнообразие архитектур процессоров, каж-
дый из которых при исполнении программ своей проблемной ориентации
достигал наивысшего значения показателя "производительность/стоимость".
К числу таких архитектур в первую очередь следует отнести векторно-
конвейерные процессоры и ассоциативные процессоры с SLMD-архитек-
турой (Single Instruction-Multiple Data), все обрабатывающие процессорные
элементы (ПЭ) которых выполняют команды одного потока, выдаваемого
одним общим устройством управления. В период использования полупро-
водниковых схем малой и средней интеграции было создано несколько
типов таких процессоров, например, STARAN |36|, DAP [37|, Connection
Machine (CM-1, СМ-2) |38], состоящих из большого числа однобитовых ПЭ
со встроенной в каждый ПЭ локальной памятью. На таких процессорах с
использованием коммуникационной сети между ПЭ эффективно решались
многие классы задач, включая решение систем уравнений, обработку сигна-
лов и изображений, ассоциативную обработку данных.
Рост степени интеграции СБИС, при почти постоянном числе выводов кор-
пусов привел к ситуации, когда, с одной стороны, в одной СБИС могло;'
разместиться довольно много ПЭ, а, с другой стороны этого количества ПЭ.
явно не хватало для создания полноценного SIMD-процессора. Объедине-;
нию совокупности таких СБИС в систему препятствовало малое число вы<
водов, не позволявшее подсоединить к ПЭ память и создать эффективную
сеть связи между ПЭ.
Подобная проблема из-за относительно малого количества выводов возни-
кала и при попытке построения векторно-конвейерных процессоров: те их
блоки, которые можно было реализовать на БИС, имели бы количество со-
единений с другими БИС, намного превышающее число их выводов.
Поэтому векторно-конвейерные процессоры и процессоры с архитектурой
SIMD уступили, как уже было отмечено ранее, место микропроцессорам,
получившим даже в одно время название "микропроцессоры-киллеры" [7|.
Однако с достижением уровня 108—109 транзисторов на кристалле стало
возможным изготовить полноценные однокристальные векторно-конвейер-
ные процессоры и SIMD процессоры.
Фактически микропроцессоры Pentium 4 и Xeon с MMX, SSE, SSE2 расшире-
ниями системы команд представляют собой SIMD-процессоры. Кроме воз-
можности выполнять за такт до 8 операций над малоразрядными операндами,
предусмотрена также одновременная обработка нескольких чисел в формате с
плавающей точкой двойной точности. Так, возможность выполнять 2 опера-
ции над 64-разрядпыми операндами за такт существенно подняла производи-
тельность этих микропроцессоров, например, на тесте Unpack.
1.5.2. Однокристальные
векторно-конвейерные процессоры
Когда количество транзисторов на кристалле стало достаточным для реали-
зации полноценного векторно-конвейерного процессора, появился* яркий
представитель этого класса — микропроцессор SX-6 |39| японской фирмы
NEC. Микропроцессор создан по 0,15-микронной КМОП-технологии с
медными проводниками. Микропроцессор содержит приблизительно 57 млн
транзисторов. Структура микропроцессора изображена на рис. 1.24.
Основными компонентами микропроцессора являются скалярный процес-
сор и 8 идентичных векторных устройств.
Скалярный процессор имеет суперскалярную архитектуру с 4 результатами
за такт и использует 128 64-разрядных регистров. При тактовой частоте
500 МГц пиковая производительность скалярного процессора составляет 109
flops (1 Gflops).
Каждое из 8 идентичных векторных устройств содержит 5 конвейеров обра-
ботки данных, выполняющих логические операции, маскирование, сложе-
ние/сдвиги, умножение и деление над операндами, размешенными в век-
торных регистрах, а также один конвейер обменов данными (загрузки/
выгрузки) между векторными регистрами и основной памятью. Суммарный
объем регистров в восьми векторных устройствах составляет 18 Кбайт
(эквивалентно 288 64-разрядным регистрам).
Рис. 1.24. Структура микропроцессора SX-6
В векторном устройстве операции умножения и сложения могут сцепляться,
за счет этого пиковая производительность одного устройства при тактовой:,
частоте 500 МГц может достигать 1 Gflops.
Пропускная способность интерфейса с памятью равна 32 Гбайт/с, что по-
зволяет каждому из 8 векторных устройств прочитать из памяти или запи-
сать в память один операнд в каждом такте.
Производительность кристалла SX-6 составляет 8 Gflops.
В дальнейшем можно ожидать кристаллов с несколькими векторное
конвейерными процессорами, образующими однокристальную систему
обшей памятью i
1.5.3. Причины перехода к построению
однокристальных мультипроцессорных систем
Среди тенденций, приводящих к появлению однокристальных мультипро-
цессорных систем, можно отметить описанные ниже.
□ Перенос на стадию компиляции проблем извлечения из последователь-
ных программ команд, допускающих параллельное исполнение, и. в це-
лом, ветвей параллельных программ. Если суперскалярный микропроцес-
сор сам выделяет параллельно выполняемые команды, то уже в
мультитредовом микропроцессоре на компилятор возлагаются дополни-
тельные функции по выделению параллельных ветвей, а микропроцессо-
ры с длинным командным словом возлагают на компилятор все пробле-
мы загрузки параллельно функционирующих устройств. В этих условиях
задача создания распараллеливающего компилятора для мультипроцес-
сорной системы не выглядит неразрешимой.
□ Объем оборудования, обеспечивающего загрузку функциональных уст-
ройств, микропроцессоров с суперскалярной архитектурой достаточно
велик и имеет квадратичный рост\в зависимости от количества находя -
щихся в обработке команд. При увеличении числа функциональных уст-
ройств должно увеличиваться и число выбираемых на исполнение
команд, что приведет к возрастанию объема оборудования, нс произво-
дящего непосредственно обработки данных. Суммарный объем схем
управления всмультипроцессорной системе) состоящей_из простых про-
цессоров, может быть существенно меньше, чем в микропроцессоре с су-
перскалярной архитектурой при одном и том же суммарном числе функ-
циональных „устройств или, иными словами, ~при олшТаковой
производительности в случае полной загрузки устройств. Следует также
отметить, что простые процессоры мультипроцессорной системы могут
иметь более высокую тактовую частоту.
□ Мультипроцессорная система, в силу присущей ей избыточности, может
функционировать при отказе части оборудования. Эти отказы могут быть
как изначально присутствующими, вследствие дефектов кремниевой пла-
стины или технологического процесса изготовления, так и появивши-
мися в ходе функционирования. Мультипроцессорные системы могут
создаваться либо как однокристальные, либо как многокристальные мик-
росборки. Реальность такова, что однокорпусная микросборка мульти-
процессорной системы из совокупности простых микропроцессоров мо-
жет значительно превышать по показателю "производитслыюсть/стои-
мость" однокристальную систему, размер кристалла которой равен сумме
площадей кристаллов микросборки |40, 411. Микросборки не являются
чем-то существенно отличным от СБИС. Выбор однокристальной реали-
зации или микросборки определяется достигаемыми технико-
экономическими показателями. Использование .микросборок памяти.
микропроцессоров Pentium Pro демонстрирует возможности технологии
микросборок. Наиболее интересным проектом, концентрирующим архи-
тектурные и технологические достижения, включая однокристальные сис-
темы и микросборки, служит микропроцессор Power 4 фирмы IBM |42J.
□ В традиционных компьютерах, состоящих из микропроцессора и микро-
схем памяти, использующих в совокупности порядка 108 транзисторов в
микропроцессоре и 109 транзисторов в памяти, в каждом такте использу-
ется по разным оценкам 104—105 транзисторов. То есть имеет место про-
стой значительной части оборудования, потенциально способного произ-
водить обработку данных. Конечно, простой оборудования имеет и
некоторое достоинство при КМОП-технологии: это оборудование по-
требляет и выделяет мало электрической и тепловой энергии. При суще-
ствующих на сегодня конструкциях корпусов микросхем проблема тепло-
отвода может стать решающей при выборе архитектуры кристалла.
Однако на сегодня представляется, что на кристалле достаточно эффек-
тивно может быть реализована мультипроцессорная система из большого
числа процессоров, каждый из которых имеет собственную небольшую
встроенную память. Подобные вычислительные структуры обычно назы-
вают памятью с обработкой, многофункциональной памятью, интеллек-
туальной памятью и рядом других терминов. ~~
1.5.4. Подходы к построению однокристальных
мультипроцессорных систем
На кристалле могут быть построены мультипроцессорные системы с архи-
тектурой MIMD (Multiple Instructions-Multiple Data), обрабатывающие одно- •
временно много потоков данных многими потоками команд. Эти системы
могут быть как симметричными мультипроцессорами (SMP), так и массивно
параллельными процессорами (МРР) |43|.
Наиболее близкой к микропроцессору с мультитредовой архитектурой будет
SMP, состоящий из некоторого числа (8—32) простых микропроцессоров,;
архитектурно близких к RISC-процессорам первого и второго поколений С.
простым устройством управления выборкой команд, но со встроенной кэш-,
памятью первого уровня. Все процессоры кристалла, кроме того, имеют раз-'
деляемую внутри кристальную кэш-память второго уровня. Фактически та-
кой мультипроцессор отличается от микропроцессора с мультитредовой ар*
хитектурой заменой одного сложного устройства управления на совокупность*
простых независимых устройств управления каждого процессора.
МРР, образуемые из узлов (подобных описанным простым процессорам)^
объединяемых друг с другом каналами "точка-точка", также являются воз-;
можным вариантом однокристальных мультипроцессоров. В таких мульти-,
процессорах до 30% оборудования узла используется для образования кана»
лов для обмена с другими узлами и периферийными устройствами.
Важной характеристикой рассмотренных МРР являются сложность узлового
процессора и число узлов на кристалле. Так, при уменьшении сложности
узла до 1-разрядного АЛУ и 1-разрядного регистра (одного триггера) обра-
зуются реконфигурируемые микропроцессоры, которые в зависимости от
подходов к реализации можно отнести либо к однородным вычислительным
средам [44], либо к ПЛИС.
Уникальной возможностью реконфигурируемых систем служит их про-
граммная настройка на схемную реализацию исполняемого алгоритма, что
позволяет на задачах с преобладанием логико-символьной обработки дос-
тичь существенного ускорения по сравнению с программной реализацией
того же алгоритма.
Фактически однокристальные системы с архитектурой SIMD, состоящие из
однобитовых ПЭ, весьма близки по своей организации к вычислительным
средам и устройствам с программируемой логикой (ПЛИС) |44, 451.
Основной тенденцией развития гипербольших СБИС служит построение
однокристальных систем из большого числа простых процессоров. Эти сис-
темы могут иметь мультитредовую или векторно-конвейерную архитектуру,
а также представлять собой MIMD-, SIMD-системы из простых процессо-
ров или реконфигурируемый массив простых (однобитных) процессорных
элементов. Наряду с логическими схемами процессоров эти кристаллы
должны содержать встроенную память.
Однокристальные системы, в свою очередь, будут объединяться в единую
систему с архитектурой MIMD, SIMD или другой, являющейся комбинаци-
ей упомянутых ранее.
1.6. Способы оценки
производительности процессоров
1.6.1. Пиковая
производительность компьютеров
Исторически первым способом оценки производительности было определе-
ние пиковой или технической производительности, представляющей собой
теоретический максимум быстродействия компьютера при идеальных усло-
вияХ. Данный максимум определяется как число операций, выполняемое в
единицу времени всеми имеющимися в компьютере обрабатывающими
арифметико-логическими устройствами. Значение пиковой производитель-
ности измеряется количеством операций в секунду IPS (instructions per sec-
ond), например, в современных компьютерах используется оценка в мил-
лионах операций MIPS (millions instructions per second) или миллионах
операций с плавающей точкой в секунду Mflops (millions floating point opera-
tions per second).
Пиковое быстродействие достигается при обработке бесконечной последо-
вательности не связанных между собой и не конфликтующих при доступе в
память команд (т. е. когда результат любой операции не зависит от дейст-
вий, выполненных другими командами). При этом в современных компью-
терах предполагается, что все операнды выбираются из внутрикристальной
кэш-памяти данных, а команды — из кэш-памяти команд. Разумеется, по-
добная ситуация чисто гипотетическая, и на практике ни один компьютер
не в состоянии работать сколько-нибудь длительное время с пиковой про-
изводительностью, хотя и может приближаться к этой величине.
Пиковая производительность является единственной по-настоящему объек-
тивной оценкой (для ее определения необходимо знать всего несколько па-
раметров компьютера) и совершенно не зависит от выполняемых программ.
Речь идет о тактовой частоте процессора, которая для подавляющего боль-
шинства современных компьютеров определяет темп формирования резуль-
татов на выходе арифметического конвейера, о числе арифметических кон-
вейеров процессора. Чтобы определить пиковую производительность
процессора, надо умножить тактовую частоту на количество параллельно
выполняемых операций. При этом надо учитывать архитектурные возмож-
ности по совмещению операций, выполняемых в одном такте.
Например, арифметическое устройство Pentium каждый такт может форми-
ровать один результат 64-битной операции с плавающей точкой или два 32-
разрядных результата целочисленных операций. Следовательно, для
Pentium/90 (с тактовой частотой 90 МГц) пиковая производительность равна
90 Mflops (I Мflops = IO6 flops) при выполнении вычислений с плавающей
точкой и 180 MIPS (Millions Instructions per Second — миллион команд в се-
кунду) при целочисленной 32-разрядной обработке.
Другим примером может служить определение пиковой производительности
процессоров Intel Itanium и IBM Power 4. Эти процессоры могут в двух уст-
ройствах для обработки с плавающей точкой в одном такте одновременно
выполнять команду накопления: a + Ь х с. Поэтому применительно к ним
говорят, что пиковая производительность с плавающей точкой равна учетве-
ренной тактовой частоте. Однако это верно только для случая, если надо
выполнять одинаковое количество умножений и сложений, что характерно
для многих алгоритмов научно-технических задач, например, при числен-
ном решении дифференциальных уравнений. В случае, если надо выполнять
только одни сложения или умножения, пиковую производительность "этих
процессоров следует считать равной удвоенной тактовой частоте.
Значения пиковой производительности, при всей простоте их получения,
могут оказаться чрезвычайно полезными при обсуждении достоинств ком-
пьютеров. Особенно удобно использовать показатели предельного быстро-,
действия для сравнения возможностей процессоров в первом приближении. 1
Американские специалисты по контролю за экспортом вооружений при
оценке уровня производительности компьютеров используют показатель
составной теоретической производительности (СТР), измеряемой в Mlops
(Millions theoretical operations per second — миллион теоретических операций
в секунду) [46]. СТР зависит только от аппаратных средств компьютера
(тактовой частоты, набора функциональных устройств, пропускной способ-
ности и набора внутренних шин, длины разрядной сетки и т. д.).
Однако сравнение производительности компьютеров с использованием пи-
ковых значений производительности не всегда приводит к адекватным ре-
зультатам. Пиковая производительность, выраженная в количестве команд,
выполняемых в единицу времени, не учитывает функционального наполне-
ния команд. Один и тот же результат, например, сложение элементов двух
массивов, размешенных в памяти, может быть получен с использованием
разного числа команд в RISC- и CISC-процессорах (например, в RISC-
процессорах формирование адресов элементов производится отдельными
командами, а в CISC — это составная часть сложной команды). Разные
форматы команд имеют разную длительность исполнения, и время испол-
нения последовательности команд зависит от конкретного места каждой
команды в последовательности. Не следует забывать также о влиянии раз-
рядности обрабатываемых чисел, чтобы избежать, например, некорректного
сравнения производительности при обработке 32- и 64-разрядных данных.
При появлении суперкомпьютеров типа CRAY-1 была введена единица из-
мерения производительности, выражаемая числом "результатов" с плаваю-
щей точкой в единицу времени. Введение этого показателя обосновывалось
тем, что есть собственно основные, необходимые операции с плавающей
точкой, которые формируют результат вычислений, и есть вспомогательные
операции по организации вычислений, которые не должны учитываться в
полезной производительности. Например, при умножении матриц важны
только операции с плавающей точкой получения значений элементов ре-
зультирующей матрицы, а операции с фиксированной точкой, формирую-
щие адреса элементов матриц, счетчики циклов и т. д. — это внутренняя
организация компьютера. Однако явная проблемная ориентация этого пока-
зателя производительности на научно-технические расчеты не сделала его
скол ько- н и будь расп ространенн ы м.
Современные процессоры, такие как Intel Itanium и IBM Power 4, совмеща-
ют выполнение операций с фиксированной и плавающей точкой, поэтому
для них производительность в операциях с плавающей точкой соответствует
производительности в результатах.
, 1.6.2. Реальная производительность
। При оценке производительности микропроцессоров, как правило, оценива-
; ются не сами микропроцессоры, а компьютеры, построенные на базе этих
5 Зак. 1086
микропроцессоров. Это обусловлено, в первую очередь, пользовательским
подходом к оценке, при котором пользователя интересуют не собственно
характеристики процессора, а производительность, которую можно полу-
чить при решении задач.
При выполнении реальных прикладных программ эффективная (реальная)
производительность компьютера может весьма существенно (до нескольких
раз) быть меньше пиковой. Это объясняется тем, что современные высоко-
производительные микропроцессоры имеют сложную архитектуру (кон-
вейерная и суперскалярная обработка, многоуровневая память и т. д.). Ха-
рактеристики их функционирования на уровне внутренних устройств суще-
ственно зависят от программы и обрабатываемых данных. Поэтому невоз-
можно с необходимой точностью оценить производительность только на
основании тактовой частоты их работы, числа затрачиваемых на выполне-
ние одной команды тактов процессора и числа устройств обработки. Кроме
того, производительность зависит от используемых операционной системы,
компиляторов, библиотек и другого программного обеспечения. Например,
для одной и той же программы при трансляции разными компиляторами
может быть получена существенно разная производительность.
Исторически первой попыткой измерения реальной производительности
было создание так называемых синтетических тестов, состоящих из смеси
команд с заданным процентным соотношением каждого типа команд. Од-
нако скоро стало ясно, что результаты измерений производительности, по-
лученные с использованием синтетических тестов, трудно применить для
оценки реальной производительности компьютера на конкретной задаче.
Поэтому для оценки производительности различных вычислительных
средств в мировой практике наибольшее распространение получило исполь-
зование фрагментов реальных задач, характерных для той или иной области
применения вычислительной техники. Время выполнения каждой из задач
набора составляет основу для расчета индекса производительности иссле-
дуемой вычислительной установки. Индекс производительности является от-
носительной оценкой, несущей информацию о том, во сколько раз быстрее
или медленнее исследуемая вычислительная установка выполняет подобные
задачи по сравнению с некоторой широко распространенной ЭВМ (послед-
нюю часто называют базовой или эталонной).
Если каким-либо образом определить абсолютную производительность эта-
лонной ЭВМ, выражаемую числом выполняемых в секунду вычислительных
операций, то не составит труда перейти от индексов производительности к
абсолютным значениям оценок производительности исследуемых вычисли-
тельных средств.
1.6.3. Способы измерения реальной
производительности
При оценке производительности на тестах приходится решать три пробле-
мы, связанные с анализом результатов контрольного тестирования произво-
дительности [47]:
□ отделение показателей, которым можно доверять безоговорочно, от тех,
которые должны восприниматься с известной долей настороженности
(проблема достоверности оценок);
□ выбор контрольно-оценочных тестов, наиболее точно характеризующих
производительность при обработке типовых задач пользователя
(проблема адекватности оценок);
□ правильное истолкование результатов тестирования производительности,
особенно если они выражены в довольно экзотических единицах типа
MWIPS (Mega Whetstone Instructions Per Second) |48], Dhrystones/s и т. д.
(проблема интерпретации).
Существующие тестовые наборы можно разбить на три группы. Первую
группу тестов измерения производительности составляют тесты производи-
телей, разрабатываемые компаниями — изготовителями компьютеров для
"внутреннего" применения — оценивания качества собственных продуктов.
Главная особенность данных тестов заключается в том, что они ориентиро-
ваны на сравнение ограниченного множества однотипных компьютеров,
часто относящихся к одному семейству. Эти тесты позволяют разработчикам
компьютеров оптимизировать структурно-технические решения. Например,
для оценки производительности микропроцессоров с архитектурой х86 ком-
пания Intel в 1992 году предложила индекс производительности iCOMP
(Intel Comparative Microprocessor Performance). В качестве эталонного про-
цессора принят 486 SX-25, значение индекса для которого равно 100. Ин-
декс iCOMP определяется при выполнении синтетического теста, форми-
рующего смесь операций, состоящую из 67% операций над 16-разрядными
целыми, 3% операций над 16-разрядными числами с плавающей точкой,
25% над 32-разрядными целыми и 5% над 32-разрядными числами с пла-
вающей точкой. К примеру, индексы iCOMP для микропроцессоров 486
SX2-50, Pentium-ЮО и Pentium-166 равны 180, 815 и 1308 соответственно.
Следует отметить, что индекс iCOMP оценивает производительность мик-
ропроцессора как такового, а не вычислительной установки, включающей
еще оперативную память и внешние устройства.
В IBM имеются специализированные тестовые пакеты для измерения
производительности компьютеров с архитектурой мэйнфреймов семейства
System/370 и System/390, а также тесты для компьютеров с архитектурой
AS/400.
Тесты производителей являются почти идеальным средством оценивания
быстродействия и технико-экономических показателей процессоров и вы-
числительных систем с одной и той же архитектурой, но разными средства-
ми ее реализации, однако они не могут быть в чистом виде использованы
для других компьютеров — сказывается слишком явная ориентация тестов
на конкретную "фирменную" архитектуру. Эти тесты используются создате-
лями систем оценки различных вариантов реализации.
Вторую группу составляют стандартные тесты. Стандартные тесты, разрабо-
танные для сравнения широкого спектра компьютеров, часто претендуют
на роль полностью универсальных средств измерения производительности.
В основе подобных амбиций лежит то, что разработчиками тестов этой ка-
тегории являются либо независимые аналитики, например, Джек Донгарра,
предложивший совместно с группой других исследователей тестовый пакет
Unpack |49|), либо группы, объединяющие крупнейших производителей
компьютеров SPEC (Standard Performance Evaluation Corporation) [50]. Кол-
лективный характер разработки практически исключает возможность ориен-
тации стандартного теста на конкретного поставщика компьютеров.
Третья группа тестов состоит из пользовательских тестов, учитывающих
специфику конкретного применения компьютера или вычислительной сис-
темы. Пользовательские тесты создаются крупными компаниями, специали-
зирующимися на внедрении компьютерных технологий, или совместными
усилиями группы пользователей, объединенных сходством решаемых задач.
Пользовательские тесты предназначены специально для выбора компьюте-
ров и программного обеспечения, наиболее подходящих под определенные
прикладные задачи. В принципе такой подход позволяет получить наиболее
точные оценки производительности для конкретного класса приложений,
хотя и сопряжен со значительными усилиями пользователей по созданию
тестовых программ и проведению испытаний компьютеров.
1.6.4. Тесты для оценки пропускной способности
памяти и производительности процессора
Существует ряд достаточно простых и небольших по объему тестов, позво-
ляющих оценить производительность процессора и характеристики его ра-
боты с памятью при выполнении арифметических операций с плавающей,
точкой. Приведем некоторые из них.
Stream [5l|— синтетический тест, измеряющий пропускную способность
оперативной памяти в Мбайт/с при циклическом многократном повторений
четырех арифметических операций с плавающей точкой. С помощью теста'
Stream можно получить оценки пропускной способности, а также максим
мальное, минимальное и среднее время обмена с оперативной памятью пр®
выполнении каждой из этих четырех операций.
Cpu-rate [52] — тест, созданный для оценки производительности процессора
и оперативной памяти на задачах с плавающей точкой. В отличие от Stream,
Cpu-rate распределяет обрабатываемые векторы динамически для получения
информации о влиянии скорости работы оперативной памяти при цикличе-
ски повторяющихся арифметических операциях. Измерения могут прово-
диться как для статически, так и для динамически распределяемой памяти,
что обеспечивает более объективную, чем в Stream, оценку быстродействия
процессора и памяти при операциях с плавающей точкой для чисел различ-
ных форматов. В качестве результата Cpu-rate выдает быстродействие про-
цессора/памяти, измеренное количеством операций с плавающей точкой в
секунду.
1.6.5. Тест Unpack
Тест Linpack широко используется для определения производительности ком-
пьютеров и систем с различной архитектурой. Результаты замеров производи-
тельности периодически публикуются в докладах "Performance of Various Com-
puters Using Standard Linear Equations Software" об оценке производительности
различных компьютеров при решении задач с использованием стандартного
программного обеспечения для решения линейных уравнений, составляемых
Джеком Донгаррой (Jack Dongarra) из университета Теннеси.
Содержательно тест Linpack представляет собой решение системы линейных
уравнений с п неизвестными с плотной матрицей коэффициентов над полем
действительных чисел. Для каждого п известно, сколько операций с пла-
вающей точкой нужно выполнить, чтобы решить систему линейных уравне-
ний методом исключения Гаусса. Это число операций с плавающей точкой
2
j оценивается — п2+2п2. В тесте Linpack, каким бы методом и какой бы
программой не решалась система линейных уравнений с п неизвестными,
количество операций принимается равным количеству результатов, а имсн-
2
но: — п2 + 2п2. Следует отметить, что эта оценка предполагает равную дли-
тельность операций сложения и умножения с плавающей точкой, что явля-
ется известным допущением, т. к. умножение может требовать больше
тактов, чем сложение. Более того, когда разница в длительности операций
сложения и умножения была существенна, в Linpack было запрещено ис-
пользовать алгоритм Шрассена, ускоряющий вычисления за счет замены
части операций умножения на операции сложения.
Оценка производительности в flops — количестве операций (результатов) с
плавающей точкой в секунду — получается путем деления числа операций
+ 2п2
на время выполнения теста в секундах.
Тестирование выполняется по трем методикам, определяющим время реше-
ния при различных значениях п и задаваемых ограничениях:
□ и = 100; 100 х 100 ("Unpack Benchmark") — оригинальный вариант теста
написан на языке Fortran с использованием библиотеки для решения задач
линейной алгебры с плотными матрицами Level 1 BLAS (у = у + а х х), где
у, а, х — скаляры; не допускаются никакие модификации программы теста
на языке Fortran; существуют переложения на С; в тесте выполняются 2
операции на каждые 3 обращения к памяти, т. к. для основных вычисле-
ний используется подпрограмма DAXPY из библиотеки Level I BLAS.
□ п = 1000; 1000 х 1000 ("ТРР", best effort) — без ограничений на преобразо-
вание программы и использование ассемблера с целью достижения наи-
высшей производительности; может использоваться блочная обработка,
например, с применением подпрограммы DGEMM из библиотеки Level 3
BLAS (С = С + А х В), где С, А, В — матрицы, что повышает локализуе-
мость обрабатываемых данных (количество вычислительных операций,
приходящихся на одно обращение в память;
□ и = Nm.M ("A Look at Parallel Processing") — без ограничений на преобра-
зование программы и использование ассемблера с целью достижения
наивысшей производительности за счет выбора размера АП1ах матрицы,
при котором достигается наивысшая производительность Ятах.
При "A Look at Parallel Processing" выбирается (путем подбора значения п,
при котором матрица размешается в оперативной памяти вычислительной
системы (ВС), т. к. обращения к диску существенно снижают производи- |
тельность) п = Nmax, при котором достигается наивысшая производитель-
ность АП1ах. Далее определяется N|/2, при котором достигается производи-
тельность вдвое меньшая, чем Rn1ax. Для 500 ВС, превосходящих другие по
значению Rniax, именно эти величины публикуются в списке ТОР 500, наря-
ду с теоретической пиковой производительностью Rpcak> количеством про- ,
цессоров и их тактовой частотой. Список ТОР 500 начинается сведениями о
ВС с самым большим значением Rmax и содержит сведения о пятистах ВС,
упорядоченных по убыванию их показателя Rmax.
Таким образом, набор тестов Linpack представляет собой совокупность ,
программ решения задач линейной алгебры. В качестве параметров исполь-
зуются: порядок матрицы (например, 100 х 100, 1000 х 1000), формат значе-
ний элементов матриц (одинарная или двойная точность представления
элементов матриц), способ компиляции (с оптимизацией или без оптимиза-
ции), а также возможность применения оптимизированной библиотеки
стандартных функций.
При измерении производительности современных микропроцессоров про-
грамма и данные теста Linpack 100 х 100 ("Linpack Benchmark") могут раз-
мещаться в кэш-памяти, что позволяет оценить практически пиковую про-
изводительность в результатах в секунду.
1.6.6. Пакеты тестовых
программ SPEC CPU
Обзор тестов
Корпорация SPEC развивает тестовые пакеты для оценки производительно-
сти компьютеров в различных режимах их использования. Корпорация ста-
вит целью объективное сопоставление параметров так, чтобы ни сами тесты,
ни режимы их компиляции не могли быть ориентированы на какого-либо
производителя. Исторически корпорация SPEC создала следующие тестовые
пакеты для оценки производительности процессоров: SPEC CPU 89, SPEC
CPU 92, SPEC CPU 95, SPEC CPU 2000. В настоящее время результаты тес-
тов SPEC CPU 95, SPEC CPU 2000 компьютеров разных производителей
доступны на http://www.specbench.org/osg/cpu2000/results. Смена тестовых
пакетов в основном обусловлена развитием микропроцессоров и прогрессом
в понимании методики тестирования. История развития тестовых пакетов
SPEC CPU будет способствовать пониманию сложности проблемы оценки
производительности.
Пакет SPEC CPU 89
Пакет SPEC CPU 89 включает два тестовых набора — Cint89, состоящий из
четырех программ целочисленной обработки, и Cfp89, объединяющий шесть
программ со значительным объемом операций над числами с плавающей
точкой двойной точности. Все десять программ представляют собой доста-
точно сложные коды на языках С и Fortran с широким спектром решаемых
задач — от оптимизации представлений функций булевой логики в про-
граммируемых логических схемах до моделирования замещения атомов в
квантовой химии.
Методика оценки производительности SPEC 89 предполагает формирование
десяти дифференциальных оценок SPECratio,, каждая из которых определя-
ется как отношение времени выполнения программы № i из наборов Cint89
и Cfp89 на тестируемом компьютере ко времени выполнения той же про-
, граммы на ЭВМ DEC VAX 11/780.
। Интегральной характеристикой производительности компьютера служит по-
казатель SPECinark, являющийся средним геометрическим всех десяти част-
I ных оценок SPECraiio. К параметру SPECinark добавлены еще две оценки —
SPECint89 и SPECfp89, раздельно характеризующие быстродействие компь-
ютера при обработке целочисленных данных и вещественных чисел. Прин-
цип расчета этих показателей не отличается от вычисления SPECmark:
' SPECint89 представляет собой среднее геометрическое частных оценок
' SPECratio для четырех программ из набора Cint89, a SPECfp89 — аналогич-
ную величину для шести программ из состава Cfp89.
Пакет тестовых программ SPEC CPU 92
Этот пакет расширяет совокупность классов задач, представленных в тесте,
по сравнению со SPEC 89. Методика расчета основных характеристик про-
изводительности в SPEC 92 нс претерпела никаких принципиальных изме-
нений. Показатели SPECint92 и SPECfp92 по-прежнему определяются сред-
ними геометрическими частных оценок SPECratio, полученных при
тестовом прогоне программ из наборов Cint92 и Cfp92 (конечно, с учетом
увеличения числа тестовых программ).
Пакет оценочных программ Cint92 предназначен для оценки производи-
тельности вычислительных систем при выполнении целочисленных опера-
ций преимущественно в коммерческой области применения. В его состав
входят 6 эталонных тестов, написанных на языке С и представляющих со-
бой задачу из теории сетей, интерпретатор языка Lisp, задачу логического
проектирования, UNIX-утилиту упаковки тестового файла размером
1 Мбайт, который 20 раз подвергается сжатию, операции со строками и
столбцами электронной таблицы и компилятор языка С.
Пакет оценочных программ СГр92 предназначен для оценки производитель-
ности ВС при выполнении операций с плавающей точкой (преимущест-
венно в технической и научной областях применения).
В его состав входят 14 реальных прикладных программ, две из которых на-
писаны на языке Си 12 на языке Fortran. В пакет входят программы схем-
ного проектирования, моделирования термодинамики ядерного реактора
методом Монте-Карло, задачи квантовой химии и физики, решение уравне-
ний Максвелла, преобразование координат, трассировка оптических лучей,
задачи робототехники и нейросетей, моделирования человеческого уха, ре-
шение уравнений Навье—Стокса для определения параметра межгалактиче-
ского газа, семь библиотечных функций обработки матриц (умножение, об-
ращение и т. д.) и ряд других.
Но одно качественное новшество в SPEC 92 все-таки введено. Речь идет о
характеристиках мультипрограммной обработки SPECrate, формируемых в
рамках метода однородной нагрузки. Суть последнего заключается в сле-
дующем: тестируемая ВС выполняет задание, состоящее из множества ко-
пий одной программы, а показателем производительности многопроцессор-
ной обработки служит количество копий, завершенных за определенный
интервал времени. Для получения оценки SPECrate используются те же
программы, что и для расчета показателей SPECint92 и SPECfp92. Разница
только в том, что тестовый модуль реализуется как несколько копий, обра-
зующих одно задание, а результатом измерений является нормированное
общее время выполнения всех копий задания. Подобной процедуре под*
вергается каждая из 20 тестовых программ, что позволяет получить шесть
частных оценок SPECratio, для программ целочисленной обработки и 14 для
программ обработки вещественных чисел.
Таким образом, SPECrateint92 и SPECratefp92 оценивают среднюю скорость
выполнения задач в многопроцессорном режиме работы системы. Кроме
того, эти показатели позволяют получить представление о возможностях
компилятора по организации параллельного мультизадачного кода, а также
операционной системы — по эффективному динамическому распределению
ресурсов системы (в частности, процессоров) между выполняемыми парал-
лельными программами. Это делает оценки SPECrateint92 и SPECratefp92
особенно представительными для SMP-систем коллективного пользования,
работающих в пакетном режиме.
Сводные сведения о программах, входящих в SPEC89 и SPEC92 приведены
в табл. 1.4.
Таблица 1.4. Перечень программ наборов SPEC 89, SPEC 92
Программа Тест, язык, тип данных
Моделирование ПЛМ (PLA) 89 и 92, С, ФТ*
Lisp-интерпретатор 89 и 92, С, ФТ
Формирование логических таблиц истинности 89 и 92, С. ФТ
UNIX-утйлйта упаковки тестового файла размером 1 Мбайт, который 20 раз подвергается сжатию 92, С, ФТ
Операция со строками и столбцами электронной таблицы 92, С, ФТ
Компилятор GNU, трансляция 19 программ на С в оптимизи- рованный код ассемблера 89 и 92, С, ФТ
Моделирование аналоговых цепей с высокой интенсивностью 89 и 92, Fortran,
обменов с памятью ПТ**. ДВ***
Моделирование термодинамики ядерного реактора методом 89 и 92, Fortran,
Монте-Карло; содержит большое число ветвлений и коротких циклов пт, ДВ
* Задача квантовой химии для системы из 500 атомов 92, Fortran, ПТ, ДВ
Версия теста Mdijdp2 для одинарной точности 92, Fortran, ПТ,
? Решение уравнений Максвелла 92, Fortran, ПТ, ДВ
Генерация сетки при моделировании процессов обтекания; 89 и 92, Fortran,
' программа ориентирована на тестирование параллельных I систем пт. ДВ
Моделирование управления движением робота с использова- нием видеосистемы 92. С, ПТ
Решение сеточной задачи shallow-water для сетки 256 х 256 92, Fortran, ПТ‘
Таблица 1.4 (окончание)
Программа Тест, язык, тип данных
Задача квантовой физики вычисления массы элементарных час- тиц с использованием метода Монте-Карло; хорошо вектори- зуется и ориентирована на тестирование параллельных систем Решение уравнений Навье—Стокса для определения парамет- ра межгалактического газа; программа хорошо векторизуется и ориентирована на тестирование параллельных систем Семь библиотечных функций обработки матриц (умножение, обращение и т. д.) * Моделирование процесса замещения атомов на сериях Гаус- са; программа плохо распараллеливается и содержит боль- шой объем ввода/вывода Синтетический тест, имитирующий различные алгоритмы ум- ножения матриц Моделирование уха человека 92, Fortran, ПТ, ДВ 92, Fortran, ПТ, ДВ 89 и 92, Fortran, пт, ДВ 89 и 92, Fortran, ПТ, ДВ 89, Fortran, ПТ, ДВ 92, С, ПТ, ДВ
* ФТ - фиксир9ванная точка.
* * ПТ - плавающая 1очка.
* ** ДВ - плавающая точка с двойной точностью.
* *** ОТ - плавающая точка с одинарной точностью.
Пакет тестовых программ SPEC CPU 95
Появление нового набора тестовых программ обусловлено развитием мик-
ропроцессоров (повышением производительности и увеличением объема
внутри кристальной памяти), совершенствованием компиляторов, стремле-
нием учесть требования стандартов открытых систем, а также скорректиро-
ванным после появления SPEC 92 представлением об актуальности различ-
ных областей приложений.
Современные микропроцессоры выполняют тесты SPEC CPU 92 в течение
интервалов времени от долей секунды до нескольких секунд, что вносит в
измерения достаточно большую погрешность. Объем кода программ и дан-
ных SPEC 92 таков, что программы и данные могут разместиться в кэш- i
памяти процессора. Это вообще не позволяет получить сколько-нибудь доо
товерные оценки производительности.
Индексы производительности в SPEC 95 даются по отношению к эталонной
машине SPARC-station Ю/40 в конфигурации с кэш-памятью второго уровня.
Используются два тестовых набора CINT 95 и CFP 95, состоящие из 8 и
10 программ соответственно.
При испытаниях компьютеров формируются:
□ индексы производительности SPEC int 95, SPEC fp 95 и SPEC int base 95,
SPEC fp base 95 для фиксированной и плавающей точки в режиме ком-
пиляции с агрессивной оптимизацией и с консервативной оптимизацией
соответственно;
□ индексы пропускной способности SPEC int rate 95, SPEC fp rate 95 и
SPEC int rate base 95, SPEC fp rate base 95 для оценки многозадачных ре-
жимов и SMP-архитектур в режиме компиляции с агрессивной оптими-
зацией и с консервативной оптимизацией соответственно.
Все интегральные индексы производительности формируются как среднее
геометрическое индексов по отдельным тестам.
Корпорация SPEC не дает никаких рекомендаций по установлению соответ-
ствия между значениями индексов SPEC 92 и SPEC 95. В табл. 1.5 и
табл. 1.6 представлены сведения о программах, составляющих тестовый на-
бор SPEC 95.
Таблица 1.5. Перечень программ набора CINT 95
Область приложения Спецификация задачи
Моделирование Моделирование кристалла Motorola 88100
Компиляция Компиляция программы на С и компиляция оптимизиро- ванного кода для процессоров SPARC
Искусственный интел- лект Игра Го — игра сама против себя
Компрессия Компрессия текстового файла размером 16 Мбайт
Интерпретация Lisp-интерпретатор
Обработка изображений Сжатие графических объектов (JPEG) с различными па- раметрами
Манипулирование тек- стовыми строками Shell-интерпретатор
Базы данных Построение таблиц и манипулирование с таблицами
Таблица 1.6. Перечень программ набора CFP 95
Область приложения Спецификация задачи
Гидродинамика, гео- Генерация двумерной координатной сетки в произволь-
метрический аспект ной области
Таблица 1.6 (окончание)
Область приложения Спецификация задачи
Предсказание погоды Моделирование водной поверхности методом конечных элементов (вещественная арифметика с одинарной точ- ностью)
Квантовая физика Вычисление масс элементарных частиц методом Монте- Карло
Астрофизика Расчет межгалактических газов по уравнениям Навье— Стокса
Электромагнетизм Г идродинамика Расчет трехмерного поля потенциалов Решение системы уравнений в частных производных
Моделирование Предсказание погоды Моделирование турбулентности в кубическом объеме Вычисление статистики температур, воздушных потоков и уровней загрязнения •
Квантовая химия Порождение потока электронов
Электромагнетизм Решение уравнения Максвелла
Пакет тестовых программ SPEC CPU 2000
Причины появления пакета тестов SPEC CPU 2000, в целом, те же, что и
предыдущего SPEC CPU 95 — прогрессивное увеличение показателей про-
изводительности и объема памяти компьютеров, а также развитие компиля-
торов и операционных систем. Показатели, определяемые при выполнении
тестов, и методика их подсчета остались теми же, что и в SPEC CPU 95.
Эталонной машиной взята 300-мегагерцевая рабочая станция Sun Ultra5_10,
индекс производительности которой принят за 100.
Пакет тестов CPU 2000 состоит из 25 программ и включает 19 программ,
ранее не входивших ни в один пакет тестов SPEC. Критерии включения и,
наоборот, критерии невключения кандидата в тесты CPU 2000 приведены
в |53|.
Тест рекомендуется включать в пакет, если он:
П имеет много пользователей;
П использует значительное количество аппаратных ресурсов;
□ решает интересную техническую задачу;
□ выдает результаты, опубликованные известными изданиями;
□ расширяет ассортимент задач, решаемых тестами комплекта.
Тест не рекомендуется включать в пакет, если он:
□ не переносится в разумные сроки с платформы на платформу;
□ выполняет слишком много операций ввода/вывода, и потому не может
быть отнесен к вычислительным задачам;
□ уже входил в состав комплекта SPEC CPU ранее, а его рабочая нагрузка
осталась без существенных изменений;
□ является скорее фрагментом кода, чем завершенным приложением;
□ повторяет задачи, решаемые другими тестами-кандидатами;
□ выполняет разную работу на различных платформах.
Результаты тестирования можно найти на сайте http://www.specbench.org/
osg/cpu2000/results.
В табл. 1.7 представлены программы, входящие в набор SPEC CPU 2000.
Таблица 1.7. Перечень программ тестового пакета SPEC CPU 2000
Тест Язык програм- мирования Описание
SPECint2000
164.gzip C Компрессия
175.vpr C Размещение элементов и расчет разводки FPGA- микросхем
176.gcc C Компилятор С
181.met C Комбинаторная оптимизация
186.crafty C Игра: шахматы
197. parser C Обработка текста
252.eon C++ Компьютерная визуализация
253.perlbmk c Интерпретатор Perl
254.gap c Интерпретатор теории групп
255. vortex c Объектно-ориентированная БД
256.bzip2 c Компрессия
SOO.twolf c Моделирование размещения элементов и разводки процессора
SPECfp2000
168.wupwise F77 Физика: квантовая хромодинамика
171.swim F77 Моделирование мелкой воды
Таблица 1.7 (окончание)
Тест Язык програм- мирования Описание
172.mgrid F77 Многосеточные методы: трехмерное потенциальное поле
173.applu F77 Дифференциальные уравнения в частных произ- водных
177.mesa С Библиотека трехмерной графики
178.galgel F90 179.art С Вычислительная гидродинамика Распознавание образов/нейросети
183. equake С Моделирование распространения сейсмических волн
187.facerec F90 Обработка изображений: распознавание лиц
188.ammp C 189Jucas F90 Вычислительная химия Теория чисел/поиск простых чисел
191.fma3d F90 Моделирование столкновений с применением ме- тода конечных элементов
200.sixtrack F77 Проектирование ускорителей элементарных частиц
3O1.apsi F77 Метеорология: распространение загрязняющих ве- ществ
Приведем оценки SPECint2000 (сентябрь 2002 года) из официально опубли-
кованных результатов тестирования для ряда процессоров:
□ Intel Xeon 2800 МГц □ Alpha 21264С 1250 МГц □ Intel McKinley 1000 МГц □ IBM POWER4 1300 МГц 921; 845; i 807; 804.
Соответственно оценки SPECfp2000:
□ Intel McKinley 1000 МГц □ IBM POWER4 1300 МГц □ Alpha 21264C 1250 МГц □ Intel Xeon 2800 МГц 1356; 1202; i 1016; 878. j
Вопросы для самоконтроля
к главе 1
1. Назовите основные типы сверхбольших интегральных схем и тенденции
их развития.
2. Укажите достоинства и недостатки статических и динамических микро-
схем памяти.
3. Укажите механизмы уменьшения времени обращения к памяти и усло-
вия, при которых это уменьшение достижимо.
4. Назовите характерные показатели времени обращения к различным ти-
пам памяти.
5. Что такое программируемые логические интегральные схемы (ПЛИС),
их основные типы, технология проектирования устройств с использова-
нием ПЛИС?
6. Приведите классификацию форматов и типов команд микропроцес-
соров. Укажите на отличие между микропроцессором с векторными
командами и суперскалярным микропроцессором.
7. Назовите основные особенности разнесенной архитектуры (decoupled
architecture).
8. Укажите условия эффективного применения кэш-памяти.
9. Назовите структурные методы уменьшения времени доступа к памяти.
10. Как устроена кэш-память с прямым отображением?
11. Как устроены ассоциативная кэш-память и множественно-ассоциатив-
ная кэш-память?
12. Что такое кэш-память со сквозной записью и обратной записью?
13. Укажите особенности организации работы кэш-памяти в мультипроцес-
сорных системах с многомодульной памятью.
14. Что такое расслоение памяти?
15. Укажите различие между RISC- и CISC-процессорами.
16. Зачем необходимо быстрое переключение контекста процессора? Назо-
вите основные механизмы реализации переключения контекста.
17. Укажите основные направления стандартизации архитектур процессоров.
18. Что такое пиковая производительность?
19. Назовите основные виды тестов измерения производительности.
20. Что такое тесты SPECxx?
21. Объясните различие между мультитредовой архитектурой и архитекту-
рой с длинным командным словом.
22. Какие процессоры используют параллелизм уровня команд?
23. Какие зависимости существуют между командами последовательной
программы? Перечислите зависимости, которые могут быть устранены
переименованием ресурсов.
24. Укажите приемы уменьшения потерь производительности, связанные с
разрешением зависимостей между командами по управлению.
25. Перечислите известные вам способы переименования ресурсов.
26. Приведите примеры различных реализаций механизмов предсказания
ветвлений.
27. Назовите известные вам способы диспетчеризации в микропроцессорах.
28. Укажите препятствия повышению эффективности суперскалярных мик-
ропроцессоров и процессоров с длинным командным словом.
29. Перечислите характерные особенности мультитредовой архитектуры.
30. Укажите на приемы, используемые при конструировании мультитредо-
вых программ и мультитредовых процессоров.
31. В чем отличие мультитредовой архитектуры от традиционных мульти-
процессорных систем?
32. Перечислите основные идеи использования при построении микропро-
цессоров ресурса транзисторов при достижении степени интеграции
миллиард транзисторов на кристалл.
33. Объясните механизм условного выполнения команд и его отличие от
команд условного перехода.
34. Чем вызвано использование условного выполнения команд в VLIW-
процессорах?
35. Что такое преобразование if?
36. Разъясните основные особенности архитектуры IA-64.
37. В чем заключается особенность вычисления предикатов команд услов-
ного выполнения в архитектуре Narch Московского центра "СПАРК-
технологий"?
38. Перечислите основные направления специализации функциональных
устройств микропроцессоров.
39. Перечислите основные архитектуры однокристальных мультипроцессор-
ных систем.
40. Сформулируйте основные идеи построения реконфигурируемых муль-
типроцессоров.
41. Разъясните основные достоинства и недостатки однокристальных SIMD-
систем.
Глава 2
*
Универсальные
микропроцессоры
2.1. Структура рынка универсальных
микропроцессоров
Доминирующее положение на рынке универсальных микропроцессоров за-
нимают микропроцессоры с системой команд х86, основными производите-
лями которых являются компании Intel, AMD и VIA. Ежегодный рост вы-
пуска таких микропроцессоров составляет 10—15%. Доля остальных
производителей универсальных микропроцессоров с RISC-архитектурой со-
ставляет около 20% рынка.
В настоящее время производятся и используются вычислительные системы
на базе микропроцессоров со следующими архитектурами (табл. 2.1).
Таблица 2.1. Наиболее распространенные микропроцессорные архитектуры
Микропроцессорная архитектура Компания-разработчик
х86 Intel, AMD, Cyrix, IDT, Transmeta
IA-64 Intel
Power PC Motorola, IBM, Apple
Power IBM
РА Hewlett-Packard
Alpha Hewlett-Packard (DEC)
SPARC SUN
MIPS MIPS
MAJC SUN
Исторически микропроцессоры с архитектурой х86 доминировали в персо-
нальных ЭВМ, а RISC-процессоры использовались в рабочих станциях, вы-
сокопроизводительных серверах и суперкомпьютерах. В настоящее время
процессоры с архитектурой х86 несколько потеснили RISC-процессоры в их
традиционных областях применения, в то же время, некоторые производи-
тели рабочих станций, например SUN, пытаются выйти со своими процес-
сорами на рынок персональных ЭВМ.
На сегодняшний день основные производители микропроцессоров обладают
примерно равными технологическими возможностями, поэтому в "борьбе за
скорость" на первое место выходит фактор архитектуры. Архитектура мик-
ропроцессоров на протяжении ряда лет развивается по двум магистральным
направлениям. В рамках каждого направления в той или иной степени ис-
пользуются ранее рассмотренные архитектурные приемы повышения произ-
водительности. но имеются и собственные приоритеты.
Первое направление получило условное название Speed Daemon. Оно харак-
теризуется стремлением к достижению высокой производительности глав-
ным образом за счет высокой тактовой частоты при упрощенной внутрен-
ней структурной организации микропроцессора.
Второе направление — Brainiac — связано с достижением высокой произво-
дительности за счет усложнения логики планирования вычислений и внут-
ренней структуры процессора. Каждое из направлений имеет собственных
противников и сторонников и, по-видимому, право на существование.
Компании — производители RISC-процессоров создали и активно развива-
ют свои микропроцессорные архитектуры, обеспечивая обратную программ-
ную совместимость между поколениями микропроцессоров одного семейст-
ва при уменьшении технологических норм производства и увеличении
производительности.
Общей особенностью большинства RISC-микропроцессоров является высоко-
скоростная обработка 64-разрядных операндов с фиксированной и плавающей !
точкой. Построение функциональных узлов таких микропроцессоров требует<
сложных схемотехнических решений, что обусловливает использование боль-i
шого числа транзисторов в логических схемах процессора и большого числа,|
слоев металлизации для осуществления межсоединений. |
В поисках способов достижения максимальной производительности разработ-J
чики микропроцессоров с RISC-архитектурой все чаще позволяют себе отхо-1
дить от ее канонических принципов. В то же время, в микропроцессорах!
CISC-архитектуры, яркими представителями которых является семейство х8б,|
внедряются решения, наработанные при создании RISC-процессоров. 1
В этой главе, на примерах микропроцессоров различных компаний-произ*>1
водителей, будут рассмотрены основные архитектурно-технические реше?1
ния, используемые в настоящее время при создании микропроцессоров, fl
2.2. Микропроцессоры с архитектурой х86
2.2.1. Микропроцессор Pentium (Р5)
Семейство микропроцессоров Pentium [55, 56] компании Intel включает в
себя процессоры, работающие на тактовых частотах от 60 до 200 МГц. Про-
цессор Pentium полностью программно совместим с предыдущими микро-
процессорами Intel 80386, Intel 80486 и позволяет применять ранее разрабо-
танное программное обеспечение для персональных компьютеров.
Первые представители семейства Pentium, работавшие на частотах 60 и
66 МГц, изготовлялись по технологии БиКМОП 0,8 мкм с напряжением 5 В
и содержали 3,1 млн транзисторов. При производстве процессоров Pentium с
частотами 90 и 100 МГц, включающих 3,3 млн транзисторов, использовалась
технология БиКМОП 0,6 мкм и напряжение питания 3,3 В. Начиная с
Pentium 120 МГц, производство осуществлялось по технологии КМОП
0,35 мкм, а напряжение питания было снижено до 2,8 В.
В отличие от предыдущих микропроцессоров с системой команд х86, про-
цессоры семейства Pentium обладали целым рядом технических новшеств, к
числу которых относятся:
□ близкая к суперскалярной архитектура;
□ раздельные типы кэш-памяти команд и данных;
□ предсказание переходов;
□ высокопроизводительные операции с плавающей точкой;
□ усовершенствованная 64-разрядная шина данных;
□ средства обеспечения целостности данных;
□ SL-технология со средствами управления энергопотреблением;
□ поддержка многопроцессорности;
□ мониторинг производительности;
□ поддержка различных размеров страницы памяти.
Структура микропроцессора Pentium изображена на рис. 2.1.
Суперскалярная архитектура
Суперскалярная реализация процессора Pentium — это естественное разви-
тие предыдущих поколений Intel 80386, Intel 80486 процессоров Intel с 32-
разрядной архитектурой (выполнять несколько команд за один такт мог уже
процессор Intel 486).
Два конвейера процессора Pentium могут выполнять две команды одновре-
менно. Как и в случае единственного конвейера процессора Intel486, двой-
ной конвейер процессора Pentium выполняет целочисленные команды в
5 этапов:
I. Предвыборка.
2. Декодирование I.
3. Декодирование 2.
4. Выполнение.
5. Запись результатов.
При этом несколько команд мотут находиться на разных этапах выполнения.
Рис. 2.1. Структура микропроцессора Pentium
Однако два конвейера не являются независимыми. При остановке одного
останавливается и другой, поскольку блок арифметики с плавающей точкой
использует блок арифметики с фиксированной точкой. Следовательно, эти
операции не могут выполняться параллельно. Это ограничивает суперска-
лярность процессора.
В процессоре Pentium многие часто используемые и простые команды, вы-
полняемые ранее с помощью микрокода, были заменены аппаратной реали-
зацией. Для сложных команд был усовершенствован микрокод процессора.
Раздельные типы кэш-памяти команд и данных
Каждая кэш-память процессора Pentium имеет размер 8 Кбайт. Типы кэш-
памяти являются множественно-ассоциативными. Поиск требуемой инфор-
мации выполняется в стандартных 32-байтовых строках.
Буфер трансляции адресов (TLB) преобразует адрес ячейки внешней памяти
в соответствующий адрес данных в кэш-памяти.
Кэш-память данных процессора Pentium использует метод "обратной запи-
си" (write-back) и протокол MESI (Midified Exclusive Shared Invalid). Метод
обратной записи позволяет модифицировать данные в кэше без обращения
к оперативной памяти (данные записываются в оперативную память только
при удалении из кэша). В предыдущих поколениях использовалась кэш-
память со сквозной записью (write-through). При каждой модификации кэш-
памяти данные передавались во внутреннюю память. Метод обратной запи-
си повышает производительность, уменьшая нагрузку на шину интерфейса с
памятью.
Поддержка в процессоре Pentium протокола MESI позволяет обеспечить
когерентность (согласованность) данных в кэшах процессоров и в основной
памяти при работе в мультипроцессорной системе.
Предсказание переходов
Процессор Pentium — первый х86-совместимый микропроцессор, исполь-
зующий данную технологию, которая ранее применялась только в больших
ЭВМ и RISC-процессорах.
Процессор Pentium выполняет упреждающую обработку переходов, исполь-
зуя буфер адресов переходов ВТВ (Branch Target Buffer) и два буфера пред-
варительной выборки. Один буфер применяется для предварительной вы-
борки команды в предположении, что перехода нет, другой выполняет
предвыборку инструкций в буфер, используя содержимое ВТВ (запомненное
при первом выполнении перехода).
Алгоритм упреждающей обработки переходов процессора Pentium не только
прогнозирует выбор простых ветвей, но поддерживает и более сложное
прогнозирование (например, во вложенных циклах). Это делается с помо-
щью хранения в буфере ВТВ нескольких адресов переходов. ВТВ хранит до
256 результатов переходов, что позволяет выполнять правильное предсказа-
ние с вероятностью не менее 0,8.
Высокопроизводительный блок операций
с плавающей точкой
Первым микропроцессором Intel, который объединял в одном кристалле
средства обработки чисел в форматах с фиксированной и плавающей точ-
кой, был процессор Intel 486 DX. В предыдущих поколениях процессоров
Intel для выполнения операций с плавающей точкой применялся отдельный
математический сопроцессор.
В процессоре Pentium применяется блок вычислений с плавающей точкой,
использующий сложные восьмиступенчатые конвейеры и внутренние функ-
ции. Большинство команд с плавающей точкой начинают выполняться в
одном из целочисленных конвейеров, а затем передаются на конвейеры с
плавающей точкой. Кроме того, обычные функции с плавающей точкой
(такие как сложение, умножение и деление) для более быстрого выполнения
реализованы как внутренние функции.
В результате таких нововведений процессор Pentium (8I5/1OO) выполняет
операции с плавающей точкой в 10 раз быстрее, чем процессор Intel 486 DX
33 МГц.
Усовершенствованная 64-разрядная шина данных
Благодаря 64-разрядной шине данных процессор Pentium может обмени-
ваться данными с памятью со скоростью 528 Мбайт/с. Это более чем в 5 раз
превышает максимальную скорость передачи в микропроцессоре Intel
486DX2 66 МГц (105 Мбайт/с). В результате общая производительность
процессора Pentium (815/100) в 2,5 раза превышает производительность
микропроцессора Intel 486DX2 66 МГц.
Помимо расширения шины данных, для увеличения ее пропускной способ-
ности процессор Pentium реализует конвейеризацию циклов шины, что по-
зволяет начать второй цикл шины еще до завершения первого. Это предос-
тавляет подсистеме памяти больше времени для декодирования адреса,
благодаря чему можно использовать более медленные и менее дорогие мик-
росхемы памяти.
Увеличению пропускной способности и надежности системы способствуют
реализованная в Pentium поддержка пакетного чтения и записи, проверка
четности адреса и данных.
Для повышения скорости выполнения последовательных операций записи в
память процессор Pentium использует два буфера записи (по одному на ка-
ждый конвейер), благодаря которым процессор может выполнять следую-
щие команды, в случае если результат одной из текущих команд еще не за-
писан в память из-за занятости шины.
Средства обеспечения целостности данных
С целью повышения надежности систем, создаваемых на основе микропро-
цессора Pentium, в нем предусмотрены два средства, ранее присущие только
большим ЭВМ, — внутреннее обнаружение ошибок и тестирование с по-
мощью функциональной избыточности.
Для внутреннего обнаружения ошибок используются биты четности внут-
ренних буферов процессора. Для приложений, особо критичных к достовер-
ности результата, может быть использовано средство функциональной избы-
точности FRC (Functional Redundancy Checking). FRC требует использова-
ния двух микропроцессоров Pentium — основного и проверяющего. В таком
тацдеме микропроцессоры выполняют одни и те же вычисления параллель-
но. Один микропроцессор сравнивает свои результаты с результатами вто-
рого микропроцессора. В случае их расхождения в системе генерируется
прерывание.
Управление энергопотреблением
В процессорах Pentium, начиная с Pentium 90 МГц, была применена новая
технология управления энергопотреблением. Средства энергосбережения
работают на двух уровнях: на уровне микропроцессора и на уровне системы.
Управление энергопотреблением предусматривает при выполнении задач, нс
требующих выполнения интенсивных вычислений (например, в процессе
редактирования текстов), перевод процессора в режим с пониженной такто-
вой частотой и пониженным потреблением питания. Возможна лаже полная
остановка процессора ("спящий" режим — SL). В энергосберегающем режи-
ме микропроцессор может замедлять, приостанавливать или полностью пре-
кращать работу отдельных системных компонентов, минимизируя потребле-
ние электроэнергии.
Поддержка мультипроцессорности
В процессор Pentium включены средства поддержки мультипроцессорной
обработки, что позволяет использовать его в симметричных мультипроцес-
сорных системах с SMP-архитектурой.
Как отмечалось ранее, для поддержки согласованности данных между раз-
личными процессорами кэш данных процессора Pentium использует прото-
кол MESI.
Процессоры Pentium содержат также два новых средства поддержки много-
процессорности: внутрикристальный контроллер многопроцессорных пре-
рываний, поддерживающий до 60 процессоров и двухвходовой контроллер
кэщ-памяти второго уровня, позволяющий двум процессорам совместно ис-
пользовать один кэш второго уровня.
Мониторинг производительности
Мониторинг производительности — это возможность, предоставляемая про-
цессором Pentium проектировщикам систем и разработчикам приложений
по выявлению и устранению в программном коде потенциально "узких
мест". Разработчики могут наблюдать и подсчитывать такты для внутрипро-
цессорных событий, оказывающих влияние на длительность операций чтения
и записи, успешные и неуспешные обращения к кэш-памяти, прерывания и
т. д. Это позволяет оценивать эффективность выполнения программного
кода на процессоре Pentium и выполнять тонкую настройку разрабаты-
ваемых приложений и систем для получения максимальной производитель-
ности.
Поддержка различных размеров страницы памяти
Процессор Pentium поддерживает как традиционный размер страницы памяти
(4 Кбайт), так и увеличенный размер (4 Мбайт). Этот прозрачный для про-
граммного обеспечения механизм работы со страницами памяти был введен
для уменьшения частоты переключения страниц в сложных графических при-
ложениях и ядре операционной системы. Увеличенный размер страницы по-
зволяет отображать большие объекты, что ранее было невозможно. Кроме
того, увеличенный размер страницы увеличивает частоту удачного обращения
к странице, что повышает производительность системы.
Характеристики производительности
В табл. 2.2 и 2.3 приведены значения показателей производительности неко-
торых микропроцессоров Pentium в сравнении с другими микропроцессора-
ми на тестах SPECint92 и SPECfp92 UNIX.
Тест производительности SPECint92 UNIX — это тест е интенсивным ис-
пользованием процессора, позволяющий оценить его производительность с
помощью репрезентативной смеси прикладных программ. Тест производи-
тельности SPECfp92 UNIX измеряет производительность процессора на
операциях с плавающей точкой.
Таблица 2.2. Тест производительности SPECint92 UNIX
Процессор Индекс Процессор Индекс
Intel Pentium (815/100) 100.0 HP PA 735/99 80.6
Intel Pentium (735/90) 90.1 SuperSPARC 10/51 65.2
Таблица 2.2 (окончание)
Процессор Индекс Процессор Индекс
MIPS R4400SC-150 85.9 IBM Power РС601-66 62.6
DEC Alpha-150 84.4
Таблица 2.3. Тест производительности SPECfp92 UNIX
Процессор Индекс Процессор Индекс
Intel Pentium (815/100) 80.6 HP PA 735/99 149.8
Intel Pentium (735/90) 72.7 SuperSPARC 10/51 83.0
MIPS R4400SC-150 93.6 IBM Power PC601-66 76.1
DEC Alpha-150 127.7
2.2.2. Микропроцессор Pentium MMX
В соответствии с концепцией NSP — естественной обработки сигналов,
объявленной в 1995 году компанией Intel, на микропроцессор возлагается
ряд задач, ранее выполняемых отдельными специализированными устройст-
вами. Такой подход позволяет упростить конструкцию компьютера и удеше-
вить его производство. К числу задач, которые представляется возможным
решать с помощью универсального процессора, относятся: синтез звука и
музыки, распознавание речи, обработка видео- и графической информации,
выполнение коммуникационных функций и многое другое. Однако количе-
ство разнообразных приложений, выполнение которых должно быть возло-
жено на процессор в соответствии с последовательным соблюдением прин-
ципов NSP, существенно превысило вычислительные возможности далекой
от совершенства архитектуры семейства х86 и потребовало внесения в нее
соответствующих изменений. Результатом воплощения концепции NSP в
"металле" явился выпущенный в январе 1997 года микропроцессор Pentium
MMX (кодовое обозначение Р55С). Система команд этого процессора рас-
ширена 57 дополнительными командами, ориентированными на эффектив-
ное выполнение типичных мультимедийных алгоритмов, к числу которых
относятся и многие алгоритмы, характерные для цифровой обработки сиг-
налов (операции над векторами, свертка, преобразование Фурье и т. п.). Это
первое существенное изменение в системе команд микропроцессоров се-
мейства х86, начиная с выхода в свет микропроцессора Intel 80386 в-1985 году,
имевшего 220 команд.
К основным отличиям Pentium MMX от его предшественника относятся |57|:
□ поддержка выполнения мультимедийного набора команд;
□ удвоенные объемы типов кэш-памяти данных и команд (по 16 Кбайт каж-
дый);
□ улучшенная логика предсказания переходов;
□ расширенная конвейеризация;
□ более глубокая буферизация записи.
Вместе с тем, процессор Pentium MMX лишился некоторых возможностей,
присущих Pentium:
□ функционального контроля по избыточности;
□ поддержки набора микросхем управления кэшированием (Intel
82498/82493 и 82497/82492);
□ разделяемой линии обращения к кэш-памяти команд.
Микропроцессор Pentium MMX содержит 4,5 млн транзисторов и произво-
дился по технологии КМОП 0,35 мкм и 0,25 мкм. Микропроцессор исполь-
зовал два напряжения питания 3,3 В и 2,8 В и потреблял мощность 15,7 Вт.
Структурная схема микропроцессора Pentium MMX приведена на рис. 2.2.
Процессор содержит два командных конвейера (LI pipeline, V pipeline). Кон-
вейер U может выполнять все целочисленные команды и команды с пла-
вающей точкой. Конвейер V — простые целочисленные команды и команду
с плавающей точкой FXCH.
На рис. 2.2 показаны раздельные типы кэш-памяти команд и данных про-
цессора. Каждый кэш имеет объем 16 Кбайт и содержит два порта, по одно-
му для каждого исполнительного конвейера. Кэш данных снабжен буфером
трансляции адресов (TLB). Разрешение или запрещение кэширования стра- I
ниц памяти может задаваться индивидуально, с помощью программных или i
аппаратных средств.
Кэш команд, буфер адресов переходов и буфер предварительной выборки
обеспечивают интенсивную подачу команд к исполнительным модулям
процессора. Программируемый внутренний контроллер прерываний функ-
ционально совместим с контроллером 8259А и обеспечивает обслуживание
как внутренних, так и внешних прерываний.
«
В Pentium MMX улучшена система предсказания переходов. В процессоре,
Pentium для предсказания переходов используются два буфера (по 32 байта):;
предварительной выборки: один для линейной выборки команд, а другой
для выборки в соответствии с содержанием буфера адресов перехода (ВТВ),,
Таким образом, команда, прежде чем она потребуется для исполнения, почти:
всегда оказывается предварительно выбранной. В Pentium MMX количеств^
буферов предварительной выборки команд увеличено до четырех (по 16 байт)^
что позволяет осуществлять предвыборку по четырем независимым направ-
лениям, а также повышена точность предсказания переходов.
Рис. 2.2. Структурная схема Pentium MMX
Увеличена до 6 стадий длина исполнительного конвейера за счет добавления
стадии выборки (F) между стадиями предвыборки (PF) и декодирования
команды (DI). На стадии выборки выполняется декодирование длины
команды, которое в предыдущих моделях Pentium выполняется на стадии DL
Процесс выполнения команд в Pentium и Pentium MMX показан на рис. 2.3.
Увеличение длины конвейера позволило сократить в среднем длительность
выполнения команд и увеличить производительность процессора.
CLKO CLC1 CLK2 CLK3 CLC4 CLK5 CLK6 CLK7 CLK8
Pentium MMX
pf
11
I2
I3~
I4
11
12
d1
d2
ex
wb
15
16
13
14
11
I2
I7
I8
I5
I6
I3
I4
11
I2
I7
I8
I5
I6
I3
I4
11
I2
I7
I8
I5
I6
I3
I4
11
I2
I7
I8
I5
I6
I3
I4
I7
J8
15
16
17
18
f
Рис. 2.3. Выполнение команд в Pentium и в Pentium MMX
На рис. 2.3 обозначены: II, 12, ... — последовательность выполняемых
команд; CLKO, CLK1, ... — последовательность процессорных тактов; pf, f,
dl, d2, ex, wb — стадии выполнения команд: предвыборка, выборка, декоди-
рование инструкции, генерация адреса, выполнение и запись результата
соответственно.
Наряду с перечисленными улучшениями, главным отличием нового микро-
процессора явилась поддержка дополнительного мультимедийного набора
команд, для выполнения которых используется MMX-устройство и блок
регистров с плавающей точкой. Технология ММХ внесла следующие изме-
нения в архитектуру микропроцессоров Intel:
□ добавлены 8 MMX-регистров (ММО—ММ7). Регистры ММХ физически
совмещены с 64-разрядными регистрами с плавающей точкой и могут
быть использованы только для выполнения действий над ММХ-.<
данными; '
□ добавлены 57 новых команд. Команды подразделяются на следующие;
группы: обмена данными, арифметические, сравнения, преобразования,
логические, сдвига и команду отмены режима ММХ;
□ добавлены 4 новых типа данных — упакованные байты (8 байт в 64-
битном пакете), упакованные слова (четыре 16-битных слова в 64-битном
пакете), упакованные двойные слова (два 32-битных двойных слова в 64-
битном пакете) и учетверенное слово (64 бита). Арифметические или
логические операции выполняются параллельно над каждым байтом сло-
ва или двойного слова, содержащегося в 64-разрядном ММХ-регистре
(SIMD-модель обработки).
SIM D-обработка существенно ускоряет выполнение мультимедийных алго-
ритмов, для которых характерно выполнение идентичных операций над
большими массивами однотипных данных (например, 16-битные отсчеты
оцифрованного звука, 8-битные коды цвета пиксела и т. п.). Выполнение
умножения с накоплением четырех 16-разрядных слов на другие 4 слова с
использованием трех MMX-команд показано на рис. 2.4. Аналогичные вы-
числения на процессоре Pentium потребуют 4-кратного выполнения после-
довательности команд: FILD, FMLJL, FADD (всего 12 команд).
Применение MMX-команд позволяет увеличить скорость выполнения муль-
тимедийных приложений на 60% по сравнению с обыкновенным процессо-
ром Pentium, при одинаковых тактовых частотах (данные мультимедийного
теста Intel Media Benchmark).
Загрузка
MMX-регистра
АЗ А2 А1 АО
64-разрядный
ММХ-регистр
Умножение и
сложение
содержимого
. MMX-регистра и
памяти
MOVQ MMX REG, memory (64-bit)
АЗ А2 А1 АО
ВЗ В2 В1 ВО
АЗ * ВЗ + А2 * В2 А1 * В1 + АО * ВО
PMADDWD MMX REG, memory (64-bit)
Сложить
результат с
содержимым
аккумулятора
ACC (High) ACC (Low)
PADDD ACC MMX REG
Рис. 2.4. Выполнение умножения с накоплением с использованием ММХ-команд
Физическое совмещение MMX-регистров и регистров с плавающей точкой
обеспечивает совместимость с предшествующей архитектурой и, следова-
тельно, позволяет использовать ранее разработанное программное обеспече-
ние. Однако для переключения из режима ММХ в режим вычислений с
плавающей точкой процессору требуется 50 тактов, что снижает его произ-
водительность при выполнении смеси MMX-команд и команд с плавающей
точкой. Выполнение MMX-команды в исполнительном конвейере (U или
V) может осуществляться одновременно с выполнением другой ММХ-
команды или команды с фиксированной точкой (но не команды с плаваю-
щей точкой). К 6-ти обычным стадиям выполнения для MMX-команды до-
бавляются еще 6 — в устройстве ММХ.
Расширенная конвейеризация существенно повышает производительность
процессора и на немультимедийных приложениях. Сравнительные данные
по результатам испытания на тестах SPECinl95 и SPECfp95 процессоров
Pentium и Pentium ММХ сведены в табл. 2.4.
Таблица 2.4. Показатели производительности процессоров Pentium
и Pentium ММХ на тестах SPECint95 и SPECfp95
Процессор SPECint95 SPECfp95
Pentium 200 МГц 5,47 3,68
Pentium ММХ 200 МГц 6,41 4,66
Pentium ММХ 166 МГц 5,59 4,30
2.2.3. Микропроцессор Pentium Pro (Р6)
Микропроцессор компании Intel шестого поколения — Р6 получил наиме-
нование Pentium Pro [58]. Он ориентирован на применение, главным обра-
зом, в старших моделях рабочих станций и мультипроцессорных системах.
Р6, как и предыдущие представители семейства, поддерживает систему
команд х86. Однако архитектурные особенности процессора обусловливают
его эффективность для 32-разрядных приложений, тогда как для 16-раз-
рядных программ скорость выполнения может оказаться существенно
меньшей, чем у Р5 с той же тактовой частотой.
При изготовлении процессора применена новая конструкция корпуса. Про-
цессор состоит из двух микросхем, помещенных в один керамический кор-
пус, и не согласуется по выводам с процессорами Pentium. Для его исполь-
зования необходим переход на новые системные платы. Объем логического
оборудования микропроцессора составляет 5,5 млн транзисторов, рассеи-
ваемая мощность — 14 Вт. Первые микропроцессоры Р6 с тактовой частотой
150 МГц были выполнены по технологии 0,6 мкм БиКМОП с четырехслой-
ной металлизацией. С переходом на технологию 0,35 мкм были выпущены
микропроцессоры с частотой до 200 МГц.
Достижение высокой производительности в Pentium Pro обеспечивается за
счет использования ряда архитектурных и технологических новшеств. К их
числу относятся разнесенная архитектура (Decoupled Architecture), динами-
ческое выполнение команд (Dynamic Execution), двойная независимая шина
(Dual Independent Bus — DIB).
В основе технологии динамического выполнения лежат такие повышающие
производительность методы, как исполнение команд с опережением (спеку-
лятивное выполнение), переупорядочение команд и предсказание переходов.
Новая архитектура кэш-памяти предусматривает использование разных шин
для соединения процессорного ядра с кэш-памятыо и основной оператив-
ной памятью. Первая шина работает на тактовой частоте процессора, тогда
как вторая — с частотой системы. Такое разделение шин позволило в 3 раза
ускорить обмен процессора с подсистемой памяти.
Благодаря этому отпадает необходимость в отдельной внешней кэш-памяти.
Микропроцессор содержит раздельные кэш-памяти первого уровня (L1) для
данных и команд, каждая объемом 8 Кбайт, и объединенный кэш второго
уровня (L2). Кэш-память данных первого уровня двухпортовая, неблоки-
рующая, поддерживает одну операцию чтения и одну операцию записи за
такт. Интерфейс кэш-памяти второго уровня работает с тактовой частотой
центрального процессора (CPU) и может передавать 64 бита за такт. Внеш-
няя шина микропроцессора работает с 1/2, 1/3, или 1/4 тактовой частоты
ядра. Объем кэш-памяти второго уровня составляет 256 Кбайт при техно-
логии 0,6 мкм и 512 или 1024 Кбайт при технологии 0,35 мкм.
Тот факт, что 16-разрядные программы работают на Pentium Pro не быстрее,
чем на Pentium с соответствующей частотой, объясняется потерями произво-
дительности при частой перезагрузке длинного 14-стадийного исполнитель-
ного конвейера процессора при работе с короткими 16-разрядными данными.
Структура микропроцессора Pentium Pro показана на рис. 2.5. На нем рас-
смотрены состав и назначение основных функциональных блоков процес-
сора.
512-элементный буфер адресов переходов (ВТВ — Branch Target BulTcr) по-
зволяет сократить число тактов при выборке строк из кэш-памяти устройст-
вом выборки команд (IFU — Instruction Fetch Unit). Процесс выборки кон-
вейеризирован. Новая строка выбирается каждый такт центрального
процессора (CPU). Три параллельных декодера (ID — Instruction Decoder)
каждый такт преобразуют несколько команд архитектуры х86 в наборы мик-
роопераций.
Таблица псевдоним.ов регистров (RAT — Register Alias Table) используется
для переименования регистров. Результат переименования посылается в
устройство резервирования (RS — Reservation Station) и в буфер переупоря-
дочивания (ROB — ReOrder Buffer).
Рис. 2.5. Структура микропроцессора Pentium Pro
Микрооперации с переименованными операндами в резервирующей стан-
ции ожидают значений операндов, поступающих независимо из нескольких
источников. Данными являются результаты выполненной микрооперации,
адреса из ВТВ, содержимое регистров.
Выбор микроопераций из очереди и динамическое исполнение осуществля-
ется с учетом их истинных зависимостей по данным, а также в зависимости
от доступности исполнительных устройств. Порядок, в котором выполняются
микрооперации, в общем случае отличается от их расположения в исходной
программе.
При планировании обращений к памяти используется устройство резервиро-
вания, устройство вычисления адреса (AGU — Address Generation Unit) и бу-
фер упорядочивания обращений к памяти (MOB — Memory Ordering Buffer).
Микрооперация становится кандидатом на выгрузку сразу, как только она
выполнена, определен адрес перехода и полученные результаты направлены
к нуждающейся в них микрооперации. Для восстановления первоначального
порядка микроопераций используются временные метки микроопераций в
буфере переупорядочи вания и файле регистров выгрузки (RRF — Retirement
Register File). Процесс выгрузки должен обеспечить не только восстановле-
ние первоначального порядка микроопераций, но и гарантировать правиль-
ную обработку прерываний и ошибок, а также отменять все или часть
результатов, полученных после неправильного предсказания ветвления.
В момент выгрузки микрооперации ее результат из буфера переупорядочи-
вания помещается в файл регистров выгрузки.
В табл. 2.5 и 2.6 приведены основные характеристики процессоров Pentium Pro.
Таблица 2.5. Технические характеристики микропроцессоров Pentium Pro
Тактовая частота (МГц) Скорость шины (МГц) Технологические нормы (мкм) Дата выпуска
150 60 0,6 ноябрь 1995 г.
166 66 0,35 I кв. 1996 г.
200 (кэш 512 Кбайт) 66 0,35 IV кв. 1996 г.
200 (кэш 1 Мбайт) 66 0,35 август 1997 г.
Таблица 2.6. Сравнение производительностей микропроцессоров
Микропроцессор SPEC95 int/fp
Pentium Pro (200 МГц), кэш 1 Мбайт 8,66/6,8
Pentium (200 МГц) 5,47/3,68
DEC Alpha (300 МГц) 7,3/11,6
SUN UltraSPARC 5,1/7,4
2.2.4. Микропроцессор Pentium II
Этот микропроцессор компании Intel, известный первоначально под назва-
нием Klamath, объединяет лучшие качества предыдущих моделей [59, 60].
Высокая производительность процессора достигается благодаря использова-
6 Зак. 1086
нию в нем трех передовых технологий: динамического исполнения кода,
ММХ и двойной независимой шины.
Архитектура процессора во многом сходна с Pentium Pro, однако в
Pentium II применен более дешевый подход к реализации кэш-памяти вто-
рого уровня. Дороговизна Pentium Pro объяснялась, прежде всего, большим
процентом брака при изготовлении и совместном размещении в корпусе
кэш-памяти и собственно процессора, поскольку контроль качества может
быть осуществлен только после полного цикла сборки микропроцессора.
В Pentium II применяется более дешевая кэш-память второго уровня
BSRAM (Burst Static RAM — статическое пакетное ОЗУ), расположенная
на одной плате с процессором. Кэш-память первого уровня увеличена до
32 Кбайт (16 Кбайт для кэш-памяти команд, 16 Кбайт — для кэш-памяти
данных).
Архитектура двойной независимой шины, впервые примененная в Pentium
Pro, в 3 раза улучшает возможности процессорного ядра по обмену с под-
системой памяти. Так же как и в Pentium Pro, одна шина соединяет процес-
сорное ядро с кэшем второго уровня, а вторая шина — с основной опера-
тивной памятью. Однако в ранних моделях Pentium II частота работы ядра с
кэшем L2 была равна только половине тактовой частоты процессора.
Так же как и Pentium ММХ, Pentium II содержит блок выполнения мульти-
медийных операций.
Плата процессора с кэш-памятью L2 помещена в картридж с контактным
выводом SEC (Single Edge Contact), который устанавливается в разъем платы
Slot 1 с 242 контактами (позже названный SC242).
По производительности первые модели Pentium II с частотой 233, 266 и 300
МГц превосходили Pentium ММХ, однако уступали Pentium Pro из-за более
медленной кэш-памяти второго уровня. В то же время цена их при выпуске
была почти в 2 раза ниже, чем у Pentium Pro.
Дальнейшее развитие линии Pentium II шло в трех направлениях:
1. Выпуск микропроцессоров Pentium 11 для высокопроизводительных пер-
сональных компьютеров (ПК) и рабочих станций с повышенной такто-
вой частотой ядра и системной шины.
2. Выпуск процессоров, ориентированных на использование в дешевых ПК
с невысокими требованиями к производительности. Снижение цены
микропроцессора удалось обеспечить за счет отказа от кэш-памяти вто-
рого уровня (процессор Celeron), при увеличении частоты работы ядра.
Процессоры Celeron выпускались в упрощенном картридже SEPP (Single
Edge Processor Package), а затем и в корпусе PPGA (Plastic Pin Grid Array).
Необходимо заметить, что полный отказ от кэш-памяти второго уровня
существенно снизил производительность микропроцессора и в последних
моделях Celeron, с переходом на технологию производства 0,25 мм, на
кристалле была размещена кэш-память второго уровня уменьшенного
объема (128 Кбайт).
3. Выпуск микропроцессоров с повышенной тактовой частотой, увеличен-
ным объемом кэш-памяти, работающей на частоте ядра микропроцессо-
ра, поддержкой мультипроцессорного режима (последние модели Pentium
П Xeon могут работать в 8-процессорной конфигурации). Данные микро-
процессоры предназначены для использования в мощных рабочих стан-
циях и серверах. Процессоры Pentium II Xeon также выпускаются в кар-
триджах SEC, но гораздо большего размера. Для этих процессоров
предназначен Slot 2 с числом контактов 330 (SC330).
Представители как первого, так и второго направления, были выпущены и в
мобильном варианте. Обозначенные направления были продолжены Intel и
в последующих микропроцессорных семействах.
Сведения о хронологии выпуска микропроцессоров Pentium 11 и их основ-
ные характеристики приведены в табл. 2.7.
Таблица 2.7. Общая характеристика микропроцессоров семейства Pentium II
Название, тактовая частота Дата вы- пуска Производи- тельность SPECInWS/ SPECfp95 Область применения Кэш-память второго уровня Число транзи- сторов, техно- логический процесс Частота систем- ной ши- ны, МГц
Pentium II (300, 266, 233 МГц) 7.5.97 12,7/8,82 Высокопро- изводитель- ные профес- сиональные ПК, рабочие станции и сер- веры 512 Кбайт 7,5 млн (0,35 мкм) 66
Pentium II (333 МГц) 26.1.98 12,8/9,14 Профес- сиональные и бытовые ПК, серверы и рабочие стан- ции 512 Кбайт 7,5 млн (0,25 мкм) 66
Мобильный Pentium II (233, 266 МГц) 2.4.98 12,3/- Мобильные ПК 512 Кбайт 7,5 млн (0,25 мкм) 66
Pentium II (350, 400 МГц) 15.4.98 16,9/12,0 Профессио- нальные и бытовые ПК, серверы и ра- бочие станции 512 Кбайт 7,5 млн (0,25 мкм) 100
* Таблица 2.7 (продолжение)
Название, тактовая частота Дата вы- пуска Производи^ тельность SPECint95/ SPECfp95 Область применения Кэш-память второго уровня Число транзи- сторов, техно- логический процесс Частота систем- ной ши- ны, МГц
Intel Celeron (266 МГц) 15.4.98 8,4/6.6 Дешевые ПК Нет 7,5 млн f (0,25 мкм) 66
Intel Celeron (300 МГц) 8.6.98 8.8/7.0 Дешевые ПК Нет 7,5 млн (0,25 мкм) 66
Pentium II Xeon (400 МГц) 29.6.98 16,3/13,2 Рабочие стан- ции и серверы 512 Кбайт или 1 Мбайт. Работает на частоте про- цессора 7,5 млн 100
Pentium II (450 МГц) 24.8.98 18,5/13,1 Профессио- нальные и бытовые ПК, серверы и ра- бочие станции 512 Кбайт 7,5 млн (0,25 мкм) 100
Intel Celeron (333 МГц) 24.8.98 12,9/10,4 Дешевые ПК 128 Кбайт на кристалле 19 млн (0,25 мкм) 66
Intel Celeron (300A МГц) 24.8.98 11,9/9,2 Дешевые ПК 128 Кбайт на кристалле 19 млн (0,25 мкм) 66
Мобильный Pentium II (300 МГц) 9.9.98 12,6/- Мобильные ПК 512 Кбайт 7,5 млн (0,25 мкм) 66
Pentium II Xeon (450 МГц) 6.10.98 19,7/15,0 Серверы и рабочие станции 512 Кбайт Работает на частоте про- цессора 7,5 млн 100
Intel Celeron (400, 366 МГц) 4.1.99 14,9/11,8 Дешевые ПК 128 Кбайт на кристалле 19 млн (0,25 мкм) 66
Pentium II Xeon (450 МГц) 5.1.99 21,2/15,3 Серверы и рабочие станции 1 Мбайт или 2 Мбайт. Работает на частоте про- цессора 7,5 млн 100
Мобильный Pentium II (266, 300, 333, 366 МГц) 25.1.99 13,2/- Мобильные ПК 256 Кбайт на кристалле 27,4 млн (0,25 мкм) 66
Таблица 2.7 (окончание)
Название, тактовая частота Дата вы- пуска Производи- тельность SPECInt95/ SPECfp95 Область применения Кэш-память второго уровня Число транзи- сторов, техно- логический процесс Частота систем- ной ши- ны, МГц
Мобильный Intel Celeron (266, 300 МГц) 25.1,99 12,3/- Дешевые мо- бильные ПК 128 Кбайт на кристалле 18,9 млн (0,25 мкм) 66
Intel Celeron (433 МГц) 22.3.99 15,8/12,1 ПК 128 Кбайт на кристалле 19 млн (0,25 мкм) 66
Мобильный Intel Celeron (333 МГц) 5.4.99 12,6/- Дешевые мо- бильные ПК 128 Кбайт на кристалле 18,9 млн (0,25 мкм) 66
Intel Celeron (466 МГц) 26.4.99 17,1/12,7 ПК 128 Кбайт на кристалле 19 млн (0,25 мкм) 66
Мобильный Intel Celeron (366 МГц) 17.5.99 12,8/ — Дешевые мо- бильные ПК 128 Кбайт на кристалле 18,9 млн (0,25 мкм) 66
Мобильный intel Celeron (400 МГц) 14.6.99 13,4/- Дешевые мо- бильные ПК 128 Кбайт на кристалле 18,9 млн (0,25 мкм) 66
Мобильный Pentium II (400 МГц) 14.6.99 17,1 /- Мобильные ПК 256 Кбайт на кристалле 27,4 млн (0,18 мкм) 66
2.2.5. Микропроцессор Pentium III
Основные технические характеристики Pentium III
Процессор Intel Pentium III (Katmai) |61], выпущенный в начале 1999 года,
унаследовал лучшие качества процессоров микроархитектуры Р6: динамиче-
ское исполнение команд, системную шину с множественными транзакция-
ми и технологию Intel ММХ для обработки данных мультимедиа. Кроме
того, в процессоре Pentium III реализованы новые потоковые SIMD-рас-
ширения — 70 новых команд, обеспечивающих улучшенные возможности
обработки изображений, трехмерной графики, потокового видео и аудио, а
также распознавания речи.
Основные технические характеристики микропроцессора:
□ тактовая частота от 450 МГц до 1 ГГц;
О при изготовлении используется 0,25 мкм технологический процесс;
□ в систему команд, наряду с командами MMX-расширения, включено
70 новых SIMD-инструкций, улучшающих работу с приложениями трех-
мерной графики, потокового аудио, видео и распознавания речи;
□ процессор Pentium III с тактовой частотой 500 МГц более чем на 90%
превышает быстродействие процессора Pentium II с тактовой частотой
450 МГц при работе с трехмерной графикой (по результатам эталонного
теста 3D WinBench 99-3D Lighting and Transformation), и на 42% при ра-
боте с приложениями мультимедиа (по результатам эталонного теста
MultimediaMark 99);
□ в процессоре применена архитектура двойной независимой шины (DIB);
□ в Pentium III реализована функция серийного номера процессора как
компонент системы обеспечения безопасности ПК, предлагаемой корпо-
рацией Intel;
□ микропроцессор содержит неблокируемую кэш-память первого уровня
емкостью 32 Кбайт (16 Кбайт данных, 16 Кбайт команд) и унифициро-
ванную неблокируемую кэш-память второго уровня емкостью 5I2 Кбайт;
□ Pentium III поддерживает кэширование памяти с объемом адресного про-
странства до 4 Гбайт;
□ на основе Pentium HI можно создавать масштабируемые двухпроцессор-
ные системы с объемом физической памяти до 64 Гбайт.
Расширение системы команд
Увеличение производительности с введением MMX-расширения системы
команд в процессоре Pentium MMX не оправдало ожиданий пользователей,
работающих с графическими приложениями. Прирост производительности,
составивший около 10%, во многом обязан увеличению внутренней кэпь
памяти микропроцессора, а не векторным командам. В офисных приложе-
ниях SIMD-команды MMX-расширения практически не находят примене-
ния, а при выполнении геометрических преобразований, типичных для гра-
фических приложений, гораздо важнее иметь высокопроизводительную
обработку данных в формате с плавающей точкой, что также не удается эф-
фективно реализовать в рамках введенных SIMD-команд обработки данных
с фиксированной точкой.
Частично решить задачу повышения производительности на графических
задачах компания Intel попыталась, выпустив графический процессор 1740,
ориентированный на работу в системах на базе Pentium II с AGP-шиной.
Этот процессор обеспечил ускорение обработки трехмерных графических
изображений, в том числе и благодаря примененной в нем технологии па-
раллельного выполнения команд с плавающей точкой.
Стараясь устранить недостатки, свойственные MMX-технологии (отсутствие
векторных команд для работы с плавающей точкой, блокирование модуля
выполнения операций с плавающей точкой при выполнении ММХ-команд),
Intel решила внести необходимые дополнения в архитектуру микропроцес-
соров 6-го поколения.
В процессор Pentium 111 были добавлены новые SIMD-команды и блок об-
работки мультимедийных данных в формате с плавающей точкой — SSE
(Streaming SIMD Extensions, поточная SIMD обработка), что позволило уве-
личить производительность прикладных программ в следующих областях:
□ трехмерная графика;
□ обработка сигналов и моделирование процессов с широким диапазоном
изменения параметров;
□ алгоритмы блочного кодирования и декодирования видеосигнала;
□ численные алгоритмы фильтрации потоков данных.
Новые команды процессора Pentium III делятся на 4 категории:
□ SIMD-команды обработки данных в формате с плавающей точкой оди-
нарной точности (Single Precision, Floating Point, SPFP-команды);
□ дополнительные SIMD-команды для обработки целочисленных данных;
□ команды управления кэшированием;
О команды сохранения и восстановления состояния процессора.
SPFP-команды
Одна SIMD-команда с плавающей точкой может обрабатывать одновремен-
но четыре 32-разрядных числа одинарной точности (называемых SPFP-
элементами данных). SPFP-команды используют новый тип данных — 128-
разрядное значение, содержащее четыре последовательно расположенных
(упакованных) 32-разрядных числа с плавающей точкой.
SIMD-команды обработки SPFP-данных используют восемь новых 128-
разрядных регистров — ХММ-регистры: ХММО, ..., ХММ7. Для адресации
памяти используются целочисленные регистры. В отличие от ММХ регист-
ров, которые физически реализованы на стандартных для архитектуры Intel
80-разрядных регистрах данных с плавающей точкой, 128-разрядные ХММ-
регистры являются новыми компонентами процессора.
В Pentium III, как и процессорах Intel предыдущих поколений, для внутрен-
него представления данных в формате с плавающей точкой используется 80-
разрядный формат расширенной точности, однако для упакованных чисел с
плавающей точкой в Pentium III используется представление в 32-разрядном
формате с одинарной точностью. Поэтому из-за округления данных резуль-
тэты вычислений с плавающей точкой команд архитектуры х87 и новых
SPFP-команд могут не совпадать.
Формат представления SPFP-данных приведен на рис. 2.6. Каждое 32-раз-
рядное число с плавающей точкой, в соответствии со стандартом IEEE-754,
имеет 1 знаковый разряд, 8 бит порядка и 23 бита мантиссы.
Большинство SPFP-команд имеют два операнда. Данные, содержащиеся в
первом операнде, после ее выполнения, как правило, замещаются результа-
тами, а данные, содержащиеся во втором операнде, остаются неизменными.
Упакованные SPFP-данные
Рис. 2.6. Формат представления SPFP-данных
SlMD-команды поддерживают два типа операций над упакованными дан-
ными с плавающей точкой: параллельные и скалярные.
Параллельные операции выполняются одновременно над всеми четырьмя
32-разрядными элементами данных каждого из 128-разрядных операндов.
В именах команд, выполняющих параллельные операции, присутствует
суффикс ps. Например, команда addps складывает 4 пары элементов дан-
ных и записывает полученные 4 суммы в соответствующие элементы пер-
вого операнда.
Скалярные операции выполняются над младшими (разряды 0—31) элемен-
тами данных двух операндов. Остальные три элемента данных не изменяются
(исключение составляет команда скалярного копирования movss).
В имени команд, выполняющих скалярные операции, присутствует суффикс
ss (например, команда addss).
В табл. 2.8 приведены примеры некоторых команд с плавающей точкой.
Таблица 2.8. Примеры SIMD команд с плавающей точкой
Выполня- емая опе- рация Мнемоника параллельной команды Мнемоника скалярной команды Примечание
Арифметические команды
Сложение addps xmm2 xmml, addss xmml, xmm2 Первый операнд команды находится в ХММ-регистре, а второй операнд - либо в ХММ-регистре, либо в памяти.
Результат - в первом регистре
Вычитание subps xmm2 xmml, subss xnunl, xmm2
Умножение mulps xmm2 xmml, •mulss xmml, xmm2
Деление divps xmm2 xmml, divss xmml, xmm2
Команды извлечения квадратного корня
Извлечение квадратного корня sqrtps xmm2 > xmml, sqrtss xmml, xmm2 Аргумент - во втором операнде, результат - в первом
Приближенное вычисление обратных величин
Обратное значение аргумента repps xmm2 xmml, repss xmml, xmm2 Значения вычисляются приближен- но, с использованием внутренних справочных таблиц. Относительная погрешность результата удовлетво- ряет неравенству |а - Ь\ / |Ь| < 1,5 х х 2~12, где а — точный результат, Ь- приближенный.
Аргумент находится в ХММ-ре- гистре или в памяти, результат - в ХММ-регистре. Арифметические ис- ключения не генерируются
Обратное значение квадратного корня аргу- мента rsqrtps xmml, xmm2 rsqrtss xmml, xmm2
Таблица 2.8 (окончание)
Выполня- Мнемоника Мнемоника Примечание
емая опе- параллельной скалярной
рация команды колЛанды
Команды нахождения максимума и минимума
Нахождение maxps xmml, maxss xmml, В результате попарного сравнения
максимума xmm2 xmm2 элементов операндов максималь- ное (минимальное) из значений элементов записывается в первый операнд. Второй операнд может располагаться либо в ХММ-ре- гистре, либо в памяти. Первый опе- ранд — в ХММ-регистре
Нахождение минимума minps xmml, xmm2 minss xmml, xmm2
Команды перестановки элементов
Перестанов shufps xmml, не поддержи- Два выбранных элемента первого
ка элемен- тов операн- дов xmm2, 9ch вается операнда копируются в младшие элементы результата, а два вы- бранных элемента второго операн- да - в старшие элементы выходно- го результата. Выбор элементов осуществляется в соответствии с маской, задаваемой непосредст- венным операндом: два младших 2- битовых разряда указывают выби- раемые элементы первого операн- да, два старших - элементы второ- го операнда. Регистры операндов могут совпадать
В набор новых команд процессора Pentium III включены дополнительные
SIMD-команды для работы с целочисленными данными. Эти новые команды
расширяют возможности существующего набора команд технологии ММХ.
Новые SIMD-команды обработки целочисленных данных выполняют
SIMD-операции над несколькими целочисленными элементами данных,
упакованными в 64-разрядные группы (рис. 2.7), загружают и хранят упако-
ванные данные в 64-разрядных ММХ-регистрах.
Мнемоника имен новых целочисленных SIMD-команд включает префикс и
суффиксы, указывающие на характер выполняемой операции и тип исполь-
зуемых данных:
□ префикс р указывает на то, что команда выполняет параллельные опера-
ции над несколькими элементами данных;
□ суффиксы ь, w, d и q указывают на используемый тип данных (упа-
кованные байты, слова, двойные слова и учетверенное слово соответст-
венно);
□ суффиксы и или s указывают на использование данных со знаком или
без знака, соответственно.
63 47 31 15 ° Упакованные Упакованные слова И >•; . д— . ' Упакованные Jf?- - U двойные слова 2 > , 64-разрядное слово Рис. 2.7. Форматы данных в целочисленных SIMD-командах
Так, например, команда умножения pmuihuw работает с данными типа
"упакованные 16-разрядные слова без знака".
В табл. 2.9 приведены примеры добавленных в Pentium 111 SIMD-команд с
фиксированной точкой.
Таблица 2.9. SIMD-команды с фиксированной точкой
Мнемо- ника Действие Пример Примечание
pextrw Извлечь слово Перезапись слова pextrw еах, Команда pextrw копирует одно из из MMX-регистра в mml, lh 16-разрядных слов, упакованных в целочисленный MMX-регистре, в младшее слово регистр 32-разрядного целочисленного ре- гистра. 16 старших разрядов реги- стра результата обнуляются. Какое именно из четырех слов MMX-регистра будет извлечено, определяется значением двух младших битов 8-разрядного непо- средственного операнда
Таблица 2.9 (продолжение)
Мнемо- ника Действие Пример Примечание
Вставить слово
pinsrw Вставить слово в ММХ-регистр pinsrw mml, eax, 2h Команда копирует младшее 16- разрядное слово из 32-разрядного целочисленного регистра (или 16 разрядов данных из памяти) в одно из слов ММХ-регистра.
В какое именно из четырех слов ММХ-регистра будет произведена вставка, определяется значением двух младших разрядов 8-разрядного непосредственного операнда
Поиск максимума (минимума)
pmaxsw Найти максимум в четырех словах pmaxsw mml, mm2 Команды сравнивают упакованные целочисленные элементы данных входного и выходного операндов и возвращают в регистре результата наибольшие или наименьшие значе- ния для каждой пары Команды при- менимы только для сравнения байтов без знака или слов со знаком.
Второй операнд для этих команд мо- жет располагаться либо в ММХ- регистре, либо в памяти. Первый операнд должен обязательно нахо- диться в ММХ-регистре
pminsw Найти минимум в четырех словах piuinSw mml, mm2
pmaxub Найти максимум в восьми байтах pmaxub mml, mm2
pminub Найти минимум в восьми байтах pminub mml, mm2
Создание знаковой маски байтов
pmovmskb Создает байтовую маску из знаковых разрядов байтов ММХ-регистра pmovmskb eax, mml Команда копирует старшие (знако- вые) биты всех восьми упакованных байтов второго операнда - ММХ- регистра и формирует 8-разрядную маску в младших разрядах 32-раз- рядного целочисленного регистра. Все старшие 24 разряда выходного целочисленного регистра обнуляются
Таблица 2.9 (окончание)
Мнемо- ника Действие Пример Примечание
Умножение слов без знака
pmulhuw Попарное беззна- ковое умножение четырех слов pmulhuw mml, mm2 Команда попарно перемножает че- тыре 16-разрядных беззнаковых сло- ва входного и выходного операндов. Старшие 16 разрядов 32-разрядных произведений записываются в 16- разрядные слова первого операнда, а младшие 16 разрядов произведе- ний теряются.
Второй операнд для команды pmulhuw может располагаться либо в MMX-регистре, либо в памяти. Пер- вый операнд должен обязательно находиться в ММХ-регистре
Перестановка целочисленных элементов
pshufw Перестановка 16- разрядных слов pshufw mml, mm2) 9ch Целочисленная команда выбирает четыре 16-разрядных слова (необя- зательно различных) из входного операнда и записывает их в опреде- ленном порядке в выходной операнд. Порядок записи слов задается 2- битными полями 8-разрядного непо- средственного операнда.
Второй операнд может располагаться либо в ММХ-регистре, либо в памяти. Первый операнд должен находиться в ММХ-регистре
Команды управления кэшированием
В Pentium III введены команды нового типа, обеспечивающие:
□ управление кэшированием данных с целью повышения эффективности
использования кэш-памяти и сокращения числа обращений к основной
памяти;
□ упреждающее кэширование данных с целью организации параллельной
работы вычислительного конвейера и обмена с памятью.
В табл. 2.10 приведены примеры команд управления кэшированием.
Таблица 2.10. Команды управления кэшированием
Мнемо-ника Действие Пример Примечание
Некэширующие команды записи в память
movntps Запись данных из ХММ-регистра в память, минуя кэш- память movntps [есх], xmml Команда копирует четыре FP-эле- мента данных из ХММ-регистра в память
movntq Запись данных из MMX-регистра в память, минуя кэш- память movntq Команда копирует 64 разряда дан- ных из MMX-регистра в память
Запись маскированных байтов в память
masктоvq Запись данных из ХММ-регистра в память, минуя кэш- память maskmovq mml, mm2 Команда выборочно записывает байты из MMX-регистра непосред- ственно в память, минуя кэш- память. Байты выбираются в соот- ветствии с 8-разрядной маской, состоящей из старших битов в бай- тах второго операнда — ММХ- регистра. Единица в некотором разряде маски означает запись соответствующего байта в память, ноль — отсутствие записи. Адрес памяти, по которому производится запись, указывается в регистре edi
Упреждающее кэширование
prefetchtO Запись данных из памяти в кэш- память первого и второго уровней prefetchtO [esi] Команды упреждающего кэширо- вания позволяют загружать в кэш- память нужные данные заранее, обеспечивая возможность записи данных в кэш-память различных уровней, что уменьшает задержки, связанные с доступом к основной памяти. Имена команд кэширова- ния содержат суффиксы (0, 1, 2, а), указывающие нужный уровень кэш- памяти
prefetchtl, prefetcht2 Запись данных из памяти в кэш- память второго уровня prefetchtl [esi]
Таблица 2.10 (окончание)
Мнемо-ника Действие Пример Примечание
Упреждающее кэширование
prefetchta Запись данных из prefetchta памяти в кэш- [esi] память первого уровня, минуя кэш второго уровня
Принудительная запись
sfence Упорядочение по- sfence следовательности обращений в память и синхронизация ее с содержимым кэш- памяти Команда предписывает копировать в основную память все данные предшествующих команд записи, хранящиеся в буфере записи и кэш-памяти
Команды сохранения и восстановления состояния
Микропроцессор Pentium III содержит новые ХММ-регистры и регистр со-
стояния и управления MXCSR. Для работы с этими регистрами требуется
поддержка, как со стороны процессора, так и со стороны операционной
системы. Чтобы прикладные программы и операционная система могли со-
хранять и восстанавливать состояния новых компонентов процессора, вве-
дено несколько управляющих команд.
Новый регистр состояния и управления MXCSR служит для:
□ установки флагов обнаружения арифметических исключений;
□ установки флагов маскирования арифметических исключений;
□ установки режима округления;
□ установки режима flush-to-zero.
Структура регистра MXCSR приведена на рис. 2.8.
Регистр MXCSR
31......16 15 10
Рис. 2.8. Структура регистра MXCSR
Разряды 0—5 (поле обнаружения исключений) содержат 6 флагов, которые
служат признаками детектирования арифметических исключений. Если флаг
установлен в 1, то это значит, что в ходе работы обнаружено соответствую-
щее исключение, в противном случае исключения нет.
Разряд 6 не используется.
Разряды 7—12 (поле маскирования исключений) определяют, как обрабаты-
ваются обнаруженные исключения. Если флаг установлен, то соответствую-
щее исключение маскировано и обрабатывается процессором, если флаг
сброшен, то вызывается программный обработчик для этого исключения.
Разряды 13—14 (RC-поле) устанавливают режим округления данных.
Разряд 15 (FZ-поле) устанавливает режим flush-to-zero.
Разряды 16—31 не используются.
Примеры команд сохранения/восстановления приведены в табл. 2.11.
Таблица 2.11. Команды сохранения/восстановления
Мнемо- Действие Пример Примечание
ника
Сохранение и загрузка регистра MXCSR
stmxcsr Сохранение со- держимого реги- стра MXCSR в памяти stmxcsr Команда записывает в 32-разрядное слово памяти содержимое регистра MXCSR
Idmxcsr Загрузка содер- жимого MXCSR из памяти Idmxcsr Команда загружает из памяти 32- разрядное слово состояния и управ- ления в регистр MXCSR
Команды сохранения и восстановления состояния
fxsave Команда сохра- няет в памяти состояние про- цессора при пе- реключении кон- текста fxsave [есх] Сохраняет в области памяти длиной 512 байт состояние регистров данных с плавающей точкой, ММХ-регист- ров, а также новых регистров про- цессора Pentium III
Idmxcsr Восстанавли- вает ранее со- храненное со- стояние процес- сора Pentium III из памяти Idmxcsr [есх] Область памяти, в которой сохранено состояние процессора, должна быть выровнена на границу слова
Серийный номер микропроцессора
Серийный номер является уникальным идентификатором процессора [62],
он может быть использован и для идентификации компьютера (пользо-
вателя) в сети или со стороны прикладных программ. Серийный номер про-
цессора будет использоваться в следующих типах приложений, для которых
надежная идентификация пользователя или системы является особенно не-
обходимой:
□ приложения с повышенным уровнем зашиты — управляемый доступ к
службам Internet, обмен электронными документами;
□ управляющие приложения — управление ресурсами, удаленная загрузка и
конфигурирование систем;
□ управление информационными ресурсами — службы технической под-
держки, защита резервируемых данных.
Встроенные средства самотестирования
и контроля производительности процессора
Процессор Pentium III содержит аппаратные средства самотестирования и
контроля производительности.
□ Встроенный механизм самотестирования (Buit-in Self Test — BIST) обес-
печивает постоянные контроль зависаний и сбоев в микрокоде и боль-
ших логических матрицах, а также тестирование кэш-команд и кэш-дан-
ных, буферов TLB и сегментов памяти ROM.
□ Механизм стандартного порта доступа к тестированию и периферийному
сканированию IEEE 1149.1 дает возможность осуществлять проверку ка-
налов связи между процессором Pentium III и системой через стандарт-
ный интерфейс.
□ Встроенные счетные устройства следят за показателями производитель-
ности и ведут подсчет событий.
□ Встроенный в кристалл диод может следить за температурой кристалла.
Датчик температур, расположенный на системной плате, контролирует
температуру кристалла процессора Pentium III, знание которой необхо-
димо для управления температурным режимом.
2.2.6. Микропроцессор Pentium 4
Микропроцессор Pentium 4 [63], выпущенный Intel в июне 2000 года, с од-
ной стороны, являет собой продолжение линии микропроцессоров с архи-
тектурой х86, с другой стороны, он, несомненно, стал новым словом в этой
архитектуре. Как и в случае с Pentium II, III, фирма Intel выпустила целое
семейство новых микропроцессоров: для персональных компьютеров, для
серверов, рабочих станций и мобильных компьютеров.
К числу наиболее значимых достижений архитектуры Pentium 4, получив-
шей название NetBurst (пакетно-сетевая), следует отнести значительное по-
вышение тактовой частоты процессорного ядра и системной шины, а также
появившуюся в старших представителях семейства мультитредовость (мно-
гопоточность), в терминологии Intel — Hyper-Threading (гиперпоточность).
Микроархитектура процессора Pentium 4 ориентирована на эффективную
работу с Internet-приложениями.
Как и в других микропроцессорах шестого поколения, в Pentium 4 реализо-
ваны:
□ гарвардская архитектура внутренней памяти с разделением потоков
команд и данных;
□ суперскалярная архитектура, обеспечивающая одновременное выполне-
ние нескольких команд в параллельно работающих исполнительных уст-
ройствах;
□ динамическое изменение последовательности команд;
□ конвейерное исполнение команд;
□ предсказание переходов.
Структура микропроцессора показана на рис. 2.9.
К основным нововведениями архитектуры Pentium 4 можно отнести:
□ работу с системной шиной, имеющей эффективную частоту 400 МГц;
□ удвоение частоты работы блоков АЛУ микропроцессора;
□ значительное увеличение длины исполнительного конвейера;
□ добавлены 144 новые команды поточной SIMD-обработки SSE2;
□ использование кэша трассы команд в качестве кэш-памяти команд пер-
вого уровня;
□ размещение кэш-памяти второго уровня на кристалле.
Раздельные потоки команд и данных поступают от системной шины через
блок внешнего интерфейса и размещенную на кристалле процессора 8-
входовую множественно-ассоциативную общую кэш-память второго уровня
с обратной записью. Кэш имеет объем 256 Кбайт и работает на частоте про-
цессорного ядра. Пропускная способность кэш-иамяти увеличена в 2 раза
по сравнению с процессорами предыдущего поколения.
Блок внешнего интерфейса реализует обмен процессора с системной ши-
ной, включающей 64-разрядную двунаправленную шину данных и 41-
разрядную шину адреса (33 адресных линии А35-3 и 8 линий выбора байтов
ВЕ7-0#). Процессор может адресовать до 64 Гбайт внешней памяти.
Системная шина (3,2 Гбайт/с)
Рис. 2.9. Структура микропроцессора Pentium 4
Четырехкратная передача данных по шине за такт при частоте тактирования
100 МГц обеспечивает эффективную частоту работы шины 400 МГц и ско-
рость передачи данных 3,2 Гбайт/с.
Дешифратор команд, совместно с памятью микропрограмм, осуществляет
преобразование х8б-команды в последовательность микрокоманд, помещав-
мых в кэш-память микрокоманд. Порядок размещения команд в этой памя-
ти емкостью 12 000 микрокоманд соответствует последовательности их вы-
полнения, с учетом предсказанных переходов.
Блок распределения регистров выполняет назначение каждому из логиче-
ских регистров микрокоманд одного из 128 физических регистров, входящих
в состав блоков регистров замещения (БРЗ), устраняя тем самым зависимо-
сти по данным между отдельными командами. Сформированная последова-
тельность микрокоманд размещается в очереди, допускающей хранение
микрокоманд для 126 команд х86 (в 3 раза больше, чем для Pentium III).
Блок распределения микрокоманд осуществляет выбор микрокоманд из
очереди не в порядке их поступления, а по мере готовности соответствую-
щих операндов и исполнительных устройств. При этом реализуется одно-
временное неупорядоченное выполнение до 6 микрокоманд в параллельно
работающих исполнительных устройствах. Порядок выдачи результатов
микрокоманд во внешнюю память, соответствующий следованию команд в
программе, обеспечивается в Pentium 4 с помощью буфера переупорядочи-
вания, так же как и в других микропроцессорах шестого поколения.
Блоки трансляции адресов команд и данных обеспечивают формирование
физических адресов памяти, применяя для хранения базовых адресов наи-
более часто используемых страниц памяти внутреннюю буферную память.
Адреса выбираемых из памяти операндов вычисляются блоком формирова-
ния адреса данных (БФА), который реализует интерфейс с кэш-памятью
данных первого уровня (с прямой записью, емкостью 8 Кбайт).
БФА формирует 48 адресов для загрузки операндов из памяти в регистр БРЗ
и 24 адреса для записи из регистра в память для команд, еще не выбранных
на выполнение. При обращении к памяти БФА выдает сразу два адреса:
один для загрузки операнда в заданный регистр БРЗ, второй — для пере-
сылки результата из БРЗ в память.
Кэш-память имеет отдельные порты для чтения и записи. Время доступа к
кэшу по сравнению с Pentium III сокращено в 1,5 раза.
Суперскалярное ядро микропроцессора содержит конвейеризированные ис-
полнительные блоки: ALU, FPU, ММХ. Причем целочисленные АЛУ рабо-
тают на удвоенной частоте ядра процессора.
В Pentium 4 используется гиперконвейерная технология выполнения команд —
число ступеней конвейера достигает 20. Благодаря разбиению цикла выпол-
нения каждой команды на более мелкие этапы, каждый из которых может
выполняться быстрее, удается увеличить частоту работы процессора.
В то же время, удлинение конвейера увеличивает потери, связанные с его пе-
резагрузкой в случае выполнения команд ветвлений, когда требуется произве-
сти очистку всех ступеней конвейера и выбрать команду из другой ветви
программы. Сократить эти потери позволяет предсказание направлений пере-
ходов, осуществляемое блоком предсказания ветвлений. Входящая в состав
блока предсказания ветвлений ассоциативная память — буфер адресов ветвле-
ний (ВТВ) содержит 4092 адреса ранее выполненных переходов с предыстори-
ей их выполнения. Блок предсказания ветвления, используемый в Pentium 4,
обеспечивает вероятность правильного предсказания перехода 0,9.
В состав процессора Pentium 4 включен блок SSE2, который значительно
расширяет возможности SIMD-обработки по сравнению с блоком SSE в мо-
дели Pentium III. Блок SSE реализует 144 новые команды, обеспечивающих
одновременное выполнение операций над несколькими операндами, кото-
рые располагаются в памяти и в 128-разрядных регистрах ХМ МО—ХМ М7.
В регистрах могут храниться и одновременно обрабатываться 2 числа в фор-
мате с плавающей точкой двойной точности (64 разряда) или 4 числа в
формате одинарной точности (32 разряда). Этот блок может также одновре-
менно обрабатывать целочисленные операнды; 16 8-разрядных, восемь 16-
разрядных, четыре 32-разрядных или два 64-разрядных. В результате произ-
водительность процессора Pentium 4 при выполнении таких операций ока-
зывается вдвое выше, чем у Pentium 111. Блок SSE2 обратно совместим с
блоком SSE процессора Pentium III.
Микропроцессор содержит 42 млн транзисторов и производится по техно-
логии КМОП 0,18 мкм (ядро Willamette) для тактовых частот от 1,4 до 1,7 ГГц
и 0,13 мкм (ядро Northwood) с 6-слойной металлизацией для тактовых час-
тот от 2 до 3,06 ГГц.
Семейство серверных процессоров Intel — в архитектуре Pentium 4 пред-
ставлено микропроцессорами Foster (на ядре Willamette), выпускается
с 2001 года и Prestonia (на ядре Northwood), выпуск которого был начат в
2002 года. Данные микропроцессоры продолжают линию Xeon предыдущих
поколений (Pentium II, Pentium III) и обеспечивают возможность работы в
мультипроцессорных конфигурациях. Кроме того, Prestonia поддерживает
технологию Hyper-Threading (гиперпоточность).
Суть технологии Hyper-Threading заключается в том, что в кристалл процес-
сора добавлено несколько блоков, позволяющих одному физическому про-
цессору (с одним конвейером и общей кэш-памятью второго уровня) распо-
знаваться и работать в системе как два логических процессора, каждый из
которых может быть загружен своей задачей. Основная часть блоков про-
цессора используется совместно, но некоторые продублированы и могут вы-
полнять разные задачи.
Технология Hyper-Threading помогает сократить периоды простоя процессо-
ра путем задействования ресурсов, не занятых одной задачей, исполнением
инструкций другой задачи, например, в случае:
□ задержек при доступе к памяти;
□ выполнения последовательности взаимозависимых инструкций;
□ ошибок предсказания ветвлений;
□ одновременных вычислений в целочисленном и экспоненциальном фор-
матах.
В результате пропускная способность основных ресурсов процессора возрас-
тает, а суммарное время выполнения двух задач сокращается.
Эффективность совместного использования ресурсов процессора двумя па-
раллельными задачами в технологии Hyper-Threading существенно зависит
от характера программного обеспечения: чем хуже приложения оптимизиро-
ваны для данной микроархитектуры, тем больше может быть выигрыш от
использования Hyper-Threading.
Производительность Pentium 4 с частотой 1,5 ГГц составляет на тестах
SPECint2000 и SPECfp2000 — 536 и 561 соответственно.
2.2.7. Микропроцессор Pentium М
Одним из последних достижений компании Intel, призванным предоставить
пользователям новые возможности мобильной работы, стала разработка тех-
нологи Centrino. Данная технология предусматривает использование в компь-
ютере новых микропроцессоров Pentium М (на стадии разработки микропро-
цессор имел кодовое название Banias), нового чипсета Intel 855 и средств
доступа к беспроводным сетям передачи данных семейства стандартов 802.11.
Основными чертами систем, построенных по технологии Centrino, являются:
низкое энергопотребление, обеспечиваемое "интеллектуальной" системой
управления частотой микропроцессорного ядра и напряжением питания —
Enhanced SpeedStep, малые массогабаритные характеристики за счет реали-
зации большинства системных функций в высокопроизводительном чипсе-
те, а также расширенные коммуникационные возможности благодаря нали-
чию встроенного контроллера радио-Ethernet.
Микропроцессор Pentium М, являющийся основным элементом технологии
Centrino, содержит ряд новых решений, отличающих его от мобильных вер-
сий микропроцессоров Pentium Ill и Pentium 4. К их числу относятся:
□ усовершенствованное прогнозирование ветвлений. В микропроцессоре
Pentium М одновременно используются три различных алгоритма пред-
сказания ветвлений, выполняющие анализ условных и безусловных пере-
ходов, циклов, а также предыстории выполнения программы. При при-
нятии решения выбираются результаты наиболее точного прогноза;
□ объединение микроопераций. Микропроцессор объединяет для одновремен-
ного выполнения в различных функциональных блоках несколько мик-
роопераций, являющихся продуктом декодирования CISC-команды.
Параллельное выполнение нескольких микроопераций существенно по-
вышает соотношение производительность/энергопотребление;
□ усовершенствованное управление стеком. Управление стеком реализовано
на уровне микроопераций, что позволило сделать этот процесс менее
энергозатратным;
□ улучшенная технология управления энергопотреблением Enhanced SpeedStep.
В отличие от предыдущей версии этой технологии, поддерживающей два
соотношения частота/напряжение питания, в Pentium М предусмотрено
большее число соотношений, позволяющих обеспечивать требуемую для
выполняемого приложения производительность при минимальном энер-
гопотреблении. Следует отметить также экономию энергии при работе с
системной шиной (усилители считывания данных процессора включаются
по команде чипсета только на период приема данных) и кэш-памятыо
(активизируется только тот фрагмент кэша, к которому в данный момент
осуществляется обращение).
Микропроцессор содержит блок векторных операций SSE2, раздельную
кэш-память команд и данных первого уровня размером 32 Кбайт каждая,
общую кэш-память второго уровня размером I Мбайт. Эффективная частота
процессорной шины составляет 400 МГц, а частота работы процессорного
ядра — от 0,9 до 1,6 ГГц. Мощность, потребляемая микропроцессором для
тактовой частоты 1,6 ГГц, составляет 24,5 Вт.
Процессор производится по технологии 0,13 мкм и содержит на кристалле
77 млн транзисторов.
По производительности Pentium М с тактовой частотой 1,7 ГГц сравним с
Pentium 4 — 2,5 ГГц. Средняя потребляемая мощность микропроцессора
составляет от 1 до 7 Вт, а максимальная — не превышает 25 Вт.
2.2.8. Микропроцессоры с архитектурой IA-64
Микропроцессор Itanium
Микропроцессор Itanium [64) является первым представителем 64-разрядных
микропроцессоров Intel. Выпуск этого процессора был начат в 2001 г. Пер-
воначально микропроцессор выпускался по технологии 0,18 мкм для такто-
вых частот 660, 733 и 800 МГц. Производительность микропроцессора на
тактовой частоте 800 МГц составляет 45 SPECint95 и 70 SPECfp95.
Архитектура микропроцессора Itanium (IA-64) реализует концепцию EPIC
(Explicitly Parallel Instruction Computing — явное параллельное выполнение
команд) и существенно отличается от архитектуры предыдущих, 32-разряд-
ных микропроцессоров компании Intel.
Основными особенностями EPIC являются:
□ большое количество регистров;
□ масштабируемость по количеству функциональных устройств (возмож-
ность увеличения числа функциональных устройств в последующих мо-
делях микропроцессора);
□ явное задание параллелизма в машинном коде;
□ предикатное исполнение инструкций;
□ упреждающая загрузка данных по предположению.
В табл. 2.12 приведены основные отличия архитектуры процессора IA-64 от
архитектуры процессора х86.
Таблица 2.12. Отличия архитектур процессоров х86 и IA-64
Процессор х86 Процессор IA-64
Использование сложных инструкций переменной длины, обрабатываемых по одной Переупорядочивание и оптимизация инструкций во время выполнения Попытки предсказания переходов Использование простых инструкций, сгруп- пированных по три, одинаковой длины Переупорядочивание и оптимизация инст- рукций во время компиляции Исполнение нескольких последователь- ностей команд одновременно без пред- сказания переходов
Загрузка данных из памяти по мере необходимости Загрузка данных до того, как они потре- буются
Архитектура IA-64 объединяет в себе лучшие качества суперскалярных мик-
ропроцессоров и микропроцессоров с длинным командным словом (VLIW —
Very Long Instruction Words). В микропроцессоре Itanium, как и в других
микропроцессорах VLIW-архитектуры, последовательность команд и план
загрузки исполнительных устройств формируются на этапе компиляции.
В ходе выполнения программы последовательность команд не изменяется.
В микропроцессоре используется динамическое предсказание переходов,
спекулятивное (по предположению) исполнение команд, аппаратная под-
держка конвейерного выполнения циклов, отложенные операции обраще-
ния к памяти, предварительная загрузка данных в кэш.
Структура микропроцессора Itanium показана на рис. 2.10.
Она содержит:
□ четыре целочисленных устройства;
□ четыре устройства обработки мультимедийных данных;
□ по два устройства вычислений в формате с плавающей точкой одинарной
и расширенной точности;
□ два устройства загрузки/сохранения;
□ три устройства выполнения переходов.
Все функциональные устройства микропроцессора конвейеризированы.
Команда выполняется за 10 тактов, причем одновременно в микропроцессо-
ре может выполняться до шести команд. Для повышения эффективности
функционирования исполнительных блоков микропроцессора результаты
выполнения команды передаются непосредственно на вход другой команды,
минуя запись в регистры. Для этой цели используется память временного
хранения результатов.
Высокоэффективный блок выполнения операций с плавающей точкой
обеспечивает производительность до 6 Gflops на операциях с одинарной
точностью и до 3 Gflops — на операциях с повышенной точностью.
Рис. 2.10. Структура микропроцессора Itanium
Высокоскоростной интерфейс процессор-память с пропускной способно-
стью 2,1 Гбайт/с обеспечивает интенсивную подкачку данных и команд в
микропроцессор.
Процессор может напрямую адресовать до 18 Гбайт оперативной памяти.
Itanium использует трехуровневую кэш-память:
□ первый уровень — внутренняя раздельная кэш-память команд и данных,
по 16 Кбайт каждая;
□ второй уровень — внутренняя общая кэш-память команд и данных,
96 Кбайт;
□ третий уровень — внешняя (в картридже) общая кэш-память команд и
данных до 4 Мбайт.
Команды микропроцессора группируются компилятором в "связку" длиной
128 бит. Связка содержит 3 команды и шаблон, указывающий, какие коман-
ды в текущей и следующей связке могут выполняться одновременно.
Команды в связках могут размещаться в порядке, отличном от исходного,
заданного в тексте программы, и могут быть как зависимые (по управлению
и данным), так и независимые.
Формат связки команд:
Т | Instruction 1 | Instruction 2 | Instruction 3 |,
где Instruction 1, 2, 3 — команда микропроцессора, Т — 8-битная маска, ука-
зывающая возможность параллельного выполнения команд.
Приведем варианты связок команд.
il II 12 II 13 — все команды исполняются параллельно
11 & i2 11 13 — сначала 11, затем исполняются параллельно i2 и 13
il 11 12 & i3 — параллельно исполняются il и 12, после них — 13
il & i2 & i3 — последовательно ИСПОЛНЯЮТСЯ il, 12, 13
При распределении команд по функциональным устройствам микропро-
цессор Itanium анализирует одновременно две последовательные связки
команд. В соответствии с шаблоном выбираются взаимно независимые
команды и назначаются на функциональные устройства. В случае выполне-
ния всех команд связок осуществляется переход к анализу следующих двух
связок. Если некоторые из команд текущей связки оказались невыполнен-
ными, их назначение на функциональные устройства осуществляется совме-
стно с командами следующей связки.
Команды микропроцессора имеют фиксированную длину 40 бит.
Формат команды:
Opcode field | PR field | GPR field | GPR field | GPR field |,
где Opcode field — 13-битнос поле кода операции, PR field — 6-битное поле
предиката, GPR field — 7-битное поле — идентификатор регистра общего
назначения.
Команда языка Ассемблер для микропроцессора архитектуры 1А-64 имеет вид
[ (qp) ) mnemonic [.compl] [.comp2] dest= src
где:
□ (qp) — предикатный регистр. Если значение этого регистра 1, то коман-
да выполняется;
□ mnemonic — мнемоническое имя инструкции;
□ (.compl), (.comp2) — завершители (модификаторы команды). Некото-
рые инструкции могут содержать один или два завершителя;
□ dest, src — поле приемника и источника. Большинство команд 1А-64
имеют два или больше операнда-источника и один операнд-приемник.
Примеры некоторых команд микропроцессора:
Простая команда add ri = г2, гз.
Предикативная команда (р4) add ri = г2, гз.
Команда с укороченным словом add ri = г2, гз, 1.
Инструкция с завершителем cmp.eq рз = г2, г4.
IA-64 поддерживает следующие типы данных:
□ целые: 1, 2, 4 и 8 байт;
О с плавающей точкой: одинарный, двойной и расширенный двойной
форматы;
П указатели: 8 байт.
Микропроцессор Itanium имеет на сегодняшний день рекордное число реги-
стров. Их состав и назначение приведены в табл. 2.13.
Эффективность загрузки функциональных устройств микропроцессора су-
щественно зависит от сформированной компилятором последовательности
связок команд. Поэтому компилятор для 1А-64 в большей степени учитыва-
ет особенность архитектуры микропроцессора, чем существующие компиля-
торы для CISC- и RISC-микропроцессоров.
Таблица 2.13. Состав и назначение регистров Itanium
Название Число Разряд- Примечания ность
GRO- GR127- целочисленные регистры общего назначения 128 64+1 Один регистр GR0 - предназначен только для чтения и всегда равен 0; 32 регистра GR1-GR32 - для глобальных данных; 96 стековых регистров GR33-GR127.
Таблица 2.13 (окончание)
Название Число Разряд- ность Примечания
Каждый регистр содержит 64 бита для представления данных и бит NaT, указы- вающий на достоверность значения регист- ра. Если данные регистра определены как невостребованные (например, если в реги- стре содержится результат спекулятивной команды), то NaT устанавливается в 0, и содержимое регистра не используется
FRO—FR127 — регистры с пла- вающей точкой 128 82 Блок вычислений с плавающей точкой со- держит: П два регистра доступных только для чте- ния: FRO и FR1, всегда равных соответ- ственно +0.0 и +1.0;
П 32 глобальных и 96 вращаемых регистра.
Каждый регистр состоит из 64 бит мантис- сы, 17 бит экспоненты и одного знакового бита
PR0-PR63 - предикатные ре- гистры 64 1 Управление условным выполнением команд и ветвей. Все 64 однобитных регистра делятся на 16 ста- тичных и 48 вращаемых.
Предикатные регистры служат для принятия решения об исполнении команды. Инструк- ция выполняется только если соответст- вующий ей предикатный регистр равен 1.
Инструкциям, для которых явно не задан предикатный регистр, назначается регистр PRO, значение которого всегда 1
BRO—BR7 - ре- гистры ветвлений 8 64 Определение назначенных адресов ветвей команд
AR0-AR127 — прикладные ре- гистры 128 64 Используются для реализации вспомога- тельных функций
IP — указатель команд 1 64 Содержит адрес следующей команды
Компилятор для IA-64 использует технологию отмеченных ветвлений, сущ-
ность которой заключается в следующем. Команды, принадлежащие раз-
личным ветвям алгоритма, помечаются различными значениями в поле пре-
диката команды. Формирование связок команд осуществляется в независи-
мости от значения предиката. Тем самым обеспечивается возможность од-
новременного выполнения команд, принадлежащих различным ветвям
алгоритма.
В процессе выполнения программы, после определения истинного направ-
ления ветвления вычислительного процесса, сохраняются только результаты
команд со значением предиката, соответствующим данной ветви.
Технология "отмеченных команд" существенно снижает негативное влияние
ветвлений на машинном уровне. Следует отметить, что не все ветвления отме-
чаются компилятором для параллельного выполнения. Как правило, это осу-
ществляется для коротких альтернативных ветвей. В случае, если ветвление не
"отмечается", оно предсказывается микропроцессором в ходе выполнения.
Другой особенностью IA-64 является предварительная загрузка данных в
кэш-память. Сущность ее заключается в разнесении по времени команд за-
грузки данных из памяти и команд, их использующих.
Компилятор, анализируя исходный текст программы, заранее добавляет в
формируемый исполняемый код команды загрузки необходимых данных и,
непосредственно, перед командой, их использующей, — команду проверки
их доступности. Таким образом, удается в значительной степени сократить
задержки, связанные с необходимостью ожидания загрузки требуемых дан-
ных. Приведем пример использования команд предварительной загрузки.
Для обеспечения совместимости с ранее разработанными 32-разрядными
приложениями в микропроцессоре Itanium поддерживаются два режима де-
кодирования команд: VLIW и CISC. Переключение между режимами осуще-
ствляется программно. С этой целью в систему команд х86 добавлены до-
полнительные команды.
В Itanium предусмотрена аппаратная поддержка выполнения циклов. Цикл
разделяется на три фазы выполнения: пролог, ядро и эпилог. Соответст-
вующая аппаратная поддержка обеспечивается на всех этих фазах. В частно-
сти, используется механизм "вращения регистров", специальные инструкции
и специальные прикладные регистры — счетчик циклов (LC) и счетчик
эпилогов (ЕС).
В микропроцессоре не используется динамическое переименование регист-
ров. С целью обеспечения возможности конвейерного выполнения различ-
ных витков цикла в микропроцессоре применяется схема циклической за-
мены используемых регистров ("вращение регистров"): набор используемых
в цикле регистров рассматривается как фрейм, отображаемый на регистро-
вый файл, начиная с некоторой позиции — базы фрейма. При переходе на
следующую итерацию цикла — изменяется база фрейма на величину, рав-
ную количеству регистров во фрейме.
Микропроцессор Itanium 2
Микропроцессор Itanium 2 [65], имеющий кодовое название McKinley, яв-
ляется вторым микропроцессором в семействе 64-разрядцых микропроцес-
соров компании Intel. Itanium 2 рассчитан на применение в высокопроизво-
дительных серверах и рабочих станциях.
Микропроцессор выпускается по 0,18 мкм технологии для тактовых частот 1 и
0,9 ГГц. Частота работы системной шины составляет 400 МГц, что при 128-
разрядной шине обеспечивает пропускную способность интерфейса 6,4 Гбайт/с.
Itanium 2 содержит кэш-память большой емкости: кэш третьего уровня емко-
стью 1,5 или 3 Мбайт, кэш второго уровня емкостью 256 Кбайт и кэш первого
уровня емкостью 32 Кбайт. При размере кристалла 464 мм2, Itanium 2 является
одной из самых крупных микросхем и содержит 221 млн транзисторов.
В Intel ведется работа над следующими версиями серверного процессора.
В 2003 году начнется массовый выпуск обновленной версии Itanium 2 с
ядром Madison. Этот микропроцессор производится по технологии 0,13 мкм,
содержит кэш-память третьего уровня объемом 6 Мбайт и работает на так-
товой частоте 1,5 ГГц. В этом же году планируется выпуск версии микро-
процессора по технологии 0,09 мкм с ядром Deerfield, предназначенного для
использования в системах с низким энергопотреблением.
Производительность процессора Itanium 2 на сегодняшний день является
рекордной. В табл. 2.14 приведены результаты тестирования наиболее быст-
рых современных микропроцессоров.
Таблица 2.14. Производительность микропроцессоров
Процессор Частота Кэш SPECint2000 SPECfp2000
Intel Itanium 2 1 ГГц трехуровневая 3 Мбайт 760 1350
Intel Itanium 800 МГц трехуровневая 4 Мбайт 400 701
Compaq Alpha 21264C 1 ГГц трехуровневая 8 Мбайт 679 960
AMD Athlon XP2100 1,677 ГГц двухуровневая 256 Кбайт 759 642
IBM RD64 IV 750 МГц двухуровневая 8 Мбайт 458 410
IMB Power 4 1,3 ГГЦ двухуровневая 16 Мбайт 839 1266
Sun UltraSPARC III 1,05 ГГц двухуровневая 8 Мбайт 610 827
2.2.9. Микропроцессоры
пятого поколения компании NexGen
Переходя к рассмотрению микропроцессоров, производимых конкурентами
компании Intel, соблюдая хронологию, в первую очередь следует упомянуть о
разработках компании NexGen, ныне поглощенной компанией AMD |66, 67].
Оригинальные архитектурные решения, впервые примененные в процессорах
этой компании, впоследствии были использованы многими другими разра-
ботчиками. NexGen удалось опередить компании AMD и Cyrix в создании
микропроцессора пятого поколения, который был выпущен в 1995 году.
В микропроцессоре Nx586 впервые была реализована новая архитектура,
обладающая, с одной стороны, всеми преимуществами RISC-архитектуры, а
с другой стороны, обеспечивающая совместимость по системе команд с
микропроцессорами семейства х86. Данная архитектура получила в NexGen
название RISC86. Аналогичные решения позже использовали в своих разра-
ботках Intel в Pentium Pro и AMD в К5.
Основная идея состояла в том, чтобы преобразовывать сложные CISC-
команды х86 в RISC-подобные операции, выполняемые RISC-подобным
ядром процессора. Такой подход оказался весьма перспективным для про-
цессоров, продолжающих линию х86.
Микропроцессор Nx586 имел три исполнительных модуля, трехпоточное
суперскалярное ядро, однако мог декодировать только одну команду х86 за
такт. Еще одной отличительной особенностью микропроцессоров Nx586 яв-
лялось отсутствие встроенного сопроцессора вычислений в формате с пла-
вающей точкой. Разработчики предполагали, что данный процессор будет
использоваться в персональных компьютерах, для которых операции с пла-
вающей точкой достаточно редки, и скорость их выполнения не является
критичной.
Процессоры компании NexGen имели названия Nx586-P100, Nx586-P90,
Nx586-P80 и Nx586-P75. Управляя внутренней частотой с помощью схемы
PLL (Phase Locked Loop, фазовой автоподстройки частоты), микропроцессо-
ры Nx586 могли работать практически с любой тактовой частотой (ес-
тественно, с присущими их архитектуре ограничениями). Так, Nx586-P100
работал с тактовой частотой 93 МГц, Nx586-P90 — 84 МГц, Nx586-P80 —
75 МГц, a Nx586-P75 — 70 МГц. Шина системного интерфейса работала на
половине тактовой частоты микропроцессора.
Основные идеи, заложенные в Nx586, NexGen планировала развить в новом
микропроцессоре шестого поколения Nx686. Однако в результате постигших
ее финансовых трудностей (невысокий объем продаж микропроцессора был
вызван, прежде всего, необходимостью использования с Nx586 нестандарт-
ных системных плат), NexGen вынуждена была пойти на слияние с компа-
нией AMD. Дальнейшая работа над проектом Nx686, получившим название
Кб, велась уже в составе AMD.
2.2.10. Микропроцессоры компании AMD
Успешную конкуренцию микропроцессорам Intel составляет продукция
компании AMD. По ряду показателей микропроцессоры этой компании за-
нимают лидирующее положение. Отдельные интересные архитектурно-
технические решения, впервые примененные в микропроцессорах AMD,
впоследствии получили распространение в изделиях других производителей,
в том числе и в микропроцессорах компании Intel.
Микропроцессор К5
В течение ряда лет AMD, отставая от Intel по крайней мере на одно поколе-
ние микропроцессоров, полагалась в основном на лицензированную техно-
логию и вносила незначительные конструктивные изменения в выпускае-
мые микропроцессоры. Появление микропроцессора Pentium создало для
AMD прямую угрозу вытеснения с рынка, что стимулировало компанию к
интенсификации работ по созданию нового семейства х86-совместимых
микропроцессоров. Была поставлена цель создать такой микропроцессор,
который опередил бы Pentium компании Intel, и изменить создавшееся для
AMD положение следования за лидером. Работы над К5 были начаты, когда
еще не были известны подробности о процессоре Pentium. Инженерам AMD
пришлось разрабатывать собственную микроархитектуру, обеспечивая при
этом совместимость с существующим программным обеспечением для про-
цессоров х86.
Первоначально AMD планировала начать поставки своего микропроцессора
с тактовой частотой 100—120 МГц в 1995 году, однако было выпущено лишь
несколько тысяч таких процессоров, а их тактовая частота составила всего
75 МГц. Основные поставки К5 начались в первом квартале 1996 года, по-
сле того как компания перешла на 0,35 мкм технологию, разработанную со-
вместно с Hewlett-Packard. Это позволило довести число транзисторов до
4,2 млн на кристалле площадью 167 мм2.
К5 [68] — это первый микропроцессор AMD, при создании которого не ис-
пользовалась никакая интеллектуальная собственность Intel (за исключением
микрокода), в то же время, он обладает лучшей по сравнению с процессорами
Intel производительностью. Многие приложения, такие как Microsoft Excel,
Word, CorelDRAW, работали на процессорах серии К5 на 30% быстрее, чем на
Pentium с той же тактовой частотой. Такая производительность достигалась в
основном за счет увеличенного объема кэш-памяти и более прогрессивной
суперскалярной архитектуры. Используемая в микропроцессорах AMD архи-
тектура RISC86 (впервые предложенная NexGen) показана на рис. 2.11.
Как известно, команды х86 отличает переменная длина и сложная структу-
ра, затрудняющие их декодирование и анализ существующих зависимостей
между инструкциями по данным. В предлагаемой AMD архитектуре деко-
дер, представляющий собой наиболее сложную часть микропроцессора, раз-
бивает длинные CISC-инструкции на небольшие RISC-подобные компонен-
ты, так называемые ROP (RISC-операции).
Рис. 2.11. Архитектура RISC86 компании AMD
ROP напоминают команды микрокода микропроцессоров х86. Первые мик-
ропроцессоры с архитектурой х86 выполняли свой сложный набор микро-
команд, выбирая из внутренней постоянной памяти микрокод. В последних
микропроцессорах х86 использование микрокода сведено к минимуму за
счет применения простых команд и их аппаратной реализации.
В К5 применяется другой подход: здесь большинство ROP генерируются
динамически не микрокодом, а декодером. Однако микрокод все еще ис-
пользуется для обработки сложных и редко применяемых команд х86, таких
как строковые операции и операции над комплексными числами. Тем не
менее, даже в этих случаях в результате генерируется поток ROP. К5 может
конвертировать команду х86 в I—4 R-операиии. Эти операции планируются
для выполнения в ядре, в котором многое заимствовано от RISC-
архитектуры. Используется динамическое переименование регистров, пред-
сказание переходов, изменение последовательности команд и другие методы
7 Зак. 1086
динамического выполнения. Таким образом, в К5 реализована гибридная
ClSC/RISC-архитектура.
В отличие от Pentium, вместо двух конвейеров для параллельного выполне-
ния двух целочисленных операций, К.5 имеет шесть параллельно функцио-
нирующих блоков. Одновременно с целочисленными операциями могут вы-
полняться инструкции с плавающей точкой, загрузки/сохранения или
перехода. Блок загрузки/сохранения может за один цикл выбирать из памя-
ти две инструкции. Другим отличием от Pentium является то, что К5 может
изменять последовательность выполняемых команд.
Блок выполнения операций с плавающей точкой (FPU) отвечает стандар-
там х86, однако по производительности несколько уступает FPU процессора
Pentium.
Использованное в архитектуре К5 сочетание принципов CISC и RISC по-
зволило преодолеть ограничения набора команд х8б. Ценой увеличения
сложности процессора AMD удалось повысить его производительность, со-
хранив совместимость с системой команд х86. Последнее весьма важно с
учетом широкой распространенности программного обеспечения для этой
микропроцессорной архитектуры.
Основные характеристики микропроцессора К5:
□ суперскалярная архитектура с четырехвходовой подачей команд;
□ конвейер с пятью стадиями обработки;
□ шесть параллельно функционирующих блоков: два арифметико-ло-
гических блока, блок операций с плавающей точкой, блок выполнения
команд перехода и два блока загрузки/сохранения;
□ кэш команд — 16 Кбайт, кэш данных — 8 Кбайт;
□ изменение порядка выполнения команд, предсказание переходов, улуч-
шенный микрокод;
□ производительность на 30% выше Pentium с той же тактовой частотой;
□ тактовая частота 75—200 МГц;
О коэффициент умножения частоты шины: 1; 1,5; 2 и 3;
П 4,1 миллиона транзисторов;
□ технология изготовления: 0,5 мкм, затем 0,35 мкм с трехслойной метал-
лизацией;
О напряжение питания 3,3 В;
О совместим по системе команд и электрическому соединению с Pentium.
Микропроцессор Кб
Микропроцессор Кб явился продуктом совместных усилий компании AMD
и специалистов из бывшей NexGen. По сути дела, Кб представляет собой
воплощение проекта Nx686, ранее начатого компанией NexGen, но не за-
вершенного по финансовым причинам.
Микропроцессор Кб [69] был выпушен в 1997 году по технологии КМОП
0,35 мкм с пятислойной металлизацией, содержал 8,8 млн транзисторов
на кристалле площадью 162 мм2, работал с тактовыми частотами 166, 200 и
233 МГц и устанавливался в разъем Sockel 7.
Как и в К5, в Кб была применена суперскалярная архитектура RISC86 с
раздельным декодированием/исполнением команд, обеспечивающая преем-
ственность с системой команд х86 и достижение высокой производительно-
сти, свойственной микропроцессорам шестого поколения. К.6 был оснащен
мультимедийным расширением системы команд — ММХ. По производи-
тельности Кб при одной и той же тактовой частоте существенно превосхо-
дил Pentium ММХ и был сравним с Pentium Pro. В отличие от Pentium Pro,
Кб одинаково успешно работал как с 32-разрядными, так и с 16-разрядными
приложениями.
Высокая производительность процессора обеспечивалась благодаря ряду но-
вых архитектурных и технологических решений.
□ В процессоре выполняется преддекодирование команд х86 при их выбор-
ке в кэш-памяти. Каждая команда в кэш-памяти первого уровня снабжа-
ется битами предцекодирования, указывающими смещение начала сле-
дующей команды в кэш-памяти (от 1 до 15 байт).
□ Кб содержит внутреннюю раздельную кэш-память первого уровня по
32 Кбайт для данных и команд.
□ В процессоре реализован высокопроизводительный блок вычислений с
плавающей точкой.
□ Имеется высокопроизводительный блок мультимедийных операций стан-
дарта ММХ.
□ Используется множественное декодирование х86-инструкций в однотак-
товые RISC-операции (ROP).
О Процессор содержит параллельные дешифраторы, централизованный
планировщик операций и семь исполнительных блоков, которые обеспе-
чивают суперскалярное выполнение инструкций в шестиступенчатом
конвейере.
□ В процессоре используется спекулятивное исполнение с изменением по-
следовательности команд, предварительная посылка данных, переимено-
вание регистров.
О Процессор поддерживает логику предсказания ветвлений, используя таб-
лицу истории ветвлений из 8192 элементов, кэш-память адресов перехода
и стек возврата, которые обеспечивают вероятность правильного пред-
сказания перехода 0,95. В процессоре используется двухуровневая схема
предсказания ветвлений. Таблица истории ветвлений не хранит предска-
заний целевых адресов, они вычисляются адресными АЛУ во время деко-
дирования инструкции. Кэш адресов ветвлений обеспечивает уточнение
предсказанного ветвления, уменьшая потери при обращении к памяти, и
выдает дешифраторам первые I6 байт инструкций, выбранных согласно
прогнозу ветвления.
Структура микропроцессора Кб приведена на рис. 2.12.
Предварительный
дешифратор
Интерфейс
шины
Socket 7
Кэш команд 1-го уровня
(32 Кбайт + биты преддекодирования)
0)
Контроллер
кэш-памяти
1-го уровня
Выдача 6
операций
RISC86
64-входовый
буфер
адресов
переходов (ВТВ)
Из
Двойной декодер
команд
х86 в RISC86
Логика переходов
(таблица истории
ветвлений на
8192-входов, кэш
адресов ветвлений
на 16 входов, стек
адресов возврата
на 16 входов)
Блок
загрузки
II
Блок
записи
Очередь
на запись
Целочислен-
ное АЛУ и
регистровый
файл X
Блок муль-
тимедий-
ных команд
(ММХ)
Буфер
планировщика
(24 RISC86-
операции)
Целочислен-
ное АЛУ и
регистровый
файл У
Блок
вычислений
с плавающей
точкой
Устройство
управления
командами
Блок
переходов
Выполнение команд с изменением порядка
2-ёхйдййЫЙ кЗш ДанмЫХ 1-ГО урОВНЯ (32 Кбайт)
128-входовый буфер
трансляции адресов
данных (DTLB)
RISC-ядро микропроцессора может выполнять за один такт до 6 ROP.
В процессе исполнения ROP, ядро использует 48 физических регистров —
24 регистра общего назначения и 24 регистра для переименования.
Планировщик Кб содержит в буфере 24 команды R1SC86 и передает инст-
рукции на выполнение 7 исполнительным модулям: сохранения, загрузки,
перехода, 2 целочисленным АЛУ. блоку ММХ, блоку операций с плавающей
точкой. Наличие буфера позволяет планировщику в динамике анализиро-
вать и изменять выбранную последовательность команд, обеспечивая мак-
симальную загрузку исполнительных устройств.
Блок мультимедийных команд выполняет все инструкции расширения
ММХ. Целочисленный Х-блок выполняет арифметико-логические опера-
ции, включая умножение, деление, сдвиг, циклический сдвиг. Y-блок осу-
ществляет основные одно- и двухсловные арифметико-логические опера-
ции: ADD, AND, CMP, OR, SUB, XOR, расширение нуля и расширение
знакового разряда числа. Блок вычислений с плавающей точкой выполняет
все операции над вещественными данными. Блок переходов реализовывает
обновление состояния процессора (регистров, флагов) после подтверждения
предсказанного условного ветвления, обеспечивая тем самым возможность
спекулятивного выполнения команд (на глубину до 7 переходов).
В начале 1998 года были выпущены варианты процессора по техноло-
гии 0,25 мкм с пятью слоями металлизации для тактовых частот 266 МГц и
300 МГц.
Микропроцессор Кб-II
В конце мая 1998 года AMD объявила о выпуске K6-II — микропроцессора
с суперскалярной обработкой MMX-команд и технологией 3DNow!, вклю-
чающий набор из 21 новой инструкции, которые используются для ускоре-
ния обработки трехмерной графики, воспроизведения стереозвука и видео
[70]. Подобная возможность в микропроцессорах Intel появилась значитель-
но позже, с выпуском микропроцессора Pentium III (Katmai).
Технология 3DNow! ускоряет выполнение мультимедийных приложений за
счет использования S1 MD-обработки мультимедийных данных. Команды
3DNow! аналогичны MMX-командам. но работают с данными в формате с
плавающей точкой. Микропроцессор AMD-K6-II выполняет за один цикл
до двух инструкций 3DNow! в каждом из двух конвейеров. Таким образом,
за один цикл может быть выполнено до четырех команд с плавающей точ-
кой (сложение, вычитание или умножение).
Мультимедийный блок процессора AMD=K6=II объединяет существующие
инструкции ММХ и новые инструкции 3DNow!. Такое объединение позво-
ляет выполнять в программах графические инструкции ММХ (целочислен-
ные) и 3DNow! (с плавающей точкой), не расходуя времени на переключе-
ние между блоками. Команды 3DNow! используют те же регистры, что и
ММХ, имеют сходное кодирование и могут исполняться параллельно с ин-
струкциям ММХ.
Различия в технологиях ММХ и 3DNow! заключается в том, что первая была
разработана для ускорения целочисленных вычислений, позволяет усовер-
шенствовать обработку целочисленных операций в таких приложениях, как
редактирование и демонстрация видео, тогда как вторая дополняет и повы-
шает возможности графических акселераторов, ускоряя вычисления с пла-
вающей точкой на ранних стадиях графического конвейера.
Микропроцессор K6-1I содержит 9,3 млн транзисторов и первоначально был
выпущен для частот 266, 300 и 333 МГц. Позже появились микропроцессо-
ры для частот 350, 366, 380 и 400 МГц. Микропроцессор K6-1I стал первым
микропроцессором для Socket 7, работающим с тактовой частотой систем-
ной шины 100 МГц.
К приложениям, для которых 3DNow! обеспечивает наибольший выигрыш в
производительности, относятся:
□ трехмерные игры;
□ мультимедийные энциклопедии;
□ мультимедийные ресурсы Internet;
3 презентации, текстовые процессоры и электронные таблицы;
□ средства CAD/CAM;
□ обработка трехмерного звука;
□ средства распознавания речи;
О передача изображений по Internet;
3 качественное воспроизведение DVD-фильмов и MPEG-видео.
Следующим микропроцессором компании AMD стал K6-III, выпущенный в
конце февраля 1999 года для тактовых частот 400, 450 МГц. Основным отли-
чием этого микропроцессора стала размещенная на кристалле кэш-память
второго уровня размером 256 Кбайт. K6-III может также работать с внеш-
ним кэшем третьего уровня объемом от 512 Кбайт до 2 Мбайт. По сравне-
нию с K6-II производительность микропроцессора увеличилась на 15—20%.
Микропроцессор К7
Микропроцессор следующего поколения — К7 (кодовое имя Athlon) был
выпушен в июне 1999 года [71]. К7 содержит более 22 млн транзисторов
на кристалле площадью 184 мм2 и изначально производился по технологии
0,25 мкм с 6 слоями металлизации для тактовых частот 500, 550, 600 и 650 МГц.
Впоследствии, с переходом на технологию 0,18 мкм, частота была увеличена
до 1 ГГц и выше. Напряжение питания микропроцессора составляет 1,6 В.
Процессор размешен в картридже и соединяется с платой через Slot А, раз-
работанный AMD. Athlon и Slot А используют шинный протокол Digital
Alpha EV6, который имеет ряд преимуществ по сравнению с GTL+, исполь-
зуемым Intel. Так, EV6 предусматривает возможность использования топо-
логии "point to point" для мультипроцессорных систем. Кроме этого, EV6
работает по переднему и заднему фронту тактирующего сигнала, что при
частоте 100 МГц дает эффективную частоту передачи данных 200 МГц и
пропускную способность интерфейса 1,6 Гбайт/с. В последующих моделях
процессора частота работы шины (эффективная частота) достигла значений
133 (266), а затем и 200 (400) МГц.
Структурная схема микропроцессора К7 приведена на рис. 2.13.
Архитектура, реализованная в Athlon, получила название QuantiSpeed™, она
определяет суперскалярное, суперконвейерное выполнение команд, конвей-
ерный блок вычислений с плавающей точкой, аппаратную предвыборку
данных в кэш-память и усовершенствованную технологию предсказания
ветвлений.
Athlon имеет девять исполнительных блоков: три для обработки целочис-
ленных данных (IEU), три для вычисления адреса (AGU) и три блока для
вычислений с плавающей точкой и обработки мультимедийных данных
(один для загрузки/сохранения данных с плавающей точкой (FSTORE) и
два конвейерных блока для исполнения команд FPU/MMX/3DN0W). Дли-
на целочисленного конвейера составляет 10 стадий, конвейера с плавающей
точкой — 15 стадий (в предыдущих моделях FPU не был конвейеризиро-
ванным). Команда FPU Athlon позволяет одновременно выполнять до двух
команд с плавающей точкой.
Athlon может декодировать три команды х86 в шесть RISC-операций. После
декодирования ROP попадают в буфер, где ожидают своей очереди на вы-
полнение в одном из функциональных блоков процессора. Буфер К7 содер-
жит 72 операции (в три раза больше чем у Кб) и выдает 9 ROP для 9 испол-
нительных устройств.
Увеличенная до 2048 позиций таблица предсказания переходов (в 2 раза больше,
чем у Pentium HI) и усовершенствованный алгоритм предсказания позволя-
ют давать правильный прогноз в 95% случаев (у Pentium 111 всего 90%).
Набор S1 MD-инструкций 3DNow! дополнен 24 командами (новый набор из
45 команд получил название Enhanced 3DNow!).
Athlon имеет 128 Кбайт кэш-памяти первого уровня (64 Кбайт для данных и
64 Кбайт для команд). Для взаимодействия с кэш-памятью второго уровня
предусмотрена специальная шина (как у архитектуры Р6 Intel). Кэш-память
второго уровня размером 512 Кбайт расположена вне процессорного ядра, в
процессорном картридже, и работает на половинной частоте ядра.
Использование при производстве процессора Athlon технологии 0,18 мкм с
медными соединениями позволило разработчикам разместить на кристалле
кэш-память второго уровня размером 256 Кбайт, работающую на тактовой
частоте ядра. Ядро нового микропроцессора получило название Thunderbird.
Микропроцессор с ядром Thunderbird содержит 37 млн транзисторов, имеет
площадь кристалла 120 мм2 и работает на частотах от 750 до 1400 МГц.
Следующим микропроцессором с архитектурой К7 на ядре Thunderbird стал
Duron — бюджетный вариант микропроцессора, ориентированный на деше-
вые ПК. Основным его отличием является уменьшенная до 64 Кбайт кэш-
память второго уровня. Duron содержит 25 млн транзисторов на кристалле
100 мм2 и рассчитан на частоты от 600 до 1200 МГц.
Размещение кэш-памяти на кристалле позволило разработчикам отказаться
от использования картриджа и вернуться к разъему типа soket (462-
контактный разъем Socket А). В процессорах Atlilon и Duron работа кэш-
памяти осуществляется по алгоритму, обеспечивающему эксклюзивность
представления данных в кэшах (данные не дублируются в кэш-памяти пер-
вого и второго уровней), что увеличивает эффективный объем кэширован-
ных данных.
Благодаря примененным в К7 новым архитектурно-техническим решениям
микропроцессорам AMD удалось на 7—10% превысить производительность
Pentium III при равных тактовых частотах.
Дальнейшее совершенствование архитектуры и технологии производства
микропроцессоров в рамках семейства К7 привело к появлению двух новых
версий Athlon: Athlon ХР и Athlon МР.
Процессор Athlon ХР основан на новом ядре Palomino, которое по сравне-
нию с ядром Thunderbird имеет целый ряд преимуществ:
□ расширен набор SIMD-инструкций 3DNow!, который обеспечивает пол-
ную совместимость с предыдущими версиями 3DNowl, а также поддер-
живает инструкции Intel SSE. Новый набор из 107 SIMD-инструкций по-
лучил название 3DNow! Professional;
□ благодаря усовершенствованному ядру Athlon ХР потребляет на 20%
меньшую мощность, чем Athlon на ядре Thunderbird при той же частоте;
□ усовершенствован алгоритм предсказания ветвлений;
О улучшен механизм опережающей загрузки инструкций из основной па-
мяти в кэш;
□ модифицирован буфер преобразования адресов (TLB — Translation Look-
aside Buffer);
□ в процессор встроен термодатчик, позволяющий определять температуру
кристалла.
Новый микропроцессор ориентирован на использование в высокопроизво-
дительных персональных компьютерах, и особую эффективность, по мне-
нию разработчиков, он должен проявлять при работе с операционной сис-
темой Windows ХР (отсюда и ХР в названии процессора).
Процессор содержит 54,3 млн транзисторов на кристалле площадью 101 мм2.
Производился и производится Athlon ХР изначально по технологии 0,18 мкм,
азатем — 0,13 мкм с использованием медных проводников.
Athlon МР предназначен для использования в серверах и мощных рабочих
станциях и предусматривает возможность работы в двухпроцессорной кон-
фигурации.
Основное отличие процессора AMD Athlon МР от AMD Athlon XP — ис-
пользование технологии Smart MP, которая представляет собой совокуп-
ность высокоскоростной двойной системной шины и протокола когерент-
ного кэша MOESI, управляющего пропускной способностью памяти, что
необходимо для достижения оптимального баланса работы процессоров
в многопроцессорных системах. Пропускная способность шины составляет
2,1 Гбайт/с, в расчете на каждый процессор.
Процессор выпускается с тактовыми частотами от 1 ГГц (технология 0,18 мкм)
до 2,133 ГГц (технология 0,13 мкм, ядро Thoroughbred).
Микропроцессоры семейства Hammer
Новое семейство микропроцессоров AMD получило название Hammer
[72]. К нему относятся микропроцессор для персональных компьютеров
ClawHammer и серверный процессор SledgeHammer. Оба процессора произ-
водятся по технологии 0,13 мкм с медными соединениями и изолированной
подложкой (SOI). Микропроцессоры данного семейства являются 64-раз-
рядными, однако в отличие от архитектуры IA-64 Intel, обеспечивают совмес-
тимость с системой команд х86, в связи с чем архитектура получила название
Х86-64.
Основные преимущества архитектуры х86-64 следующие:
□ обратная совместимость с инструкциями х86;
О 64-битные версии регистров общего назначения;
□ 8 новых РОН (general purpose registers, GPRs), доступных только для 64-
битных приложений;
□ поддержка SSE и SSE2, добавлено 8 новых регистров SSE2;
□ увеличен объем адресуемой памяти;
□ высокая производительность 32-битных приложений, поддержка 64=
битных приложений.
Различия архитектур х86 и х86-64 показаны на рис. 2.14.
Упрошенная структура микропроцессора Hammer показана на рис. 2.15.
Создавая новую архитектуру, разработчики компании AMD стремились по-
высить производительность микропроцессора не только за счет увеличения
тактовой частоты или числа вычислительных блоков, но и за счет повыше-
ния степени их загрузки. С этой целью в микропроцессор внесены следую-
щие изменения:
П увеличена длина вычислительных конвейеров: целочисленного конвейера
до 12 стадий, с плавающей точкой до 17 стадий;
□ встроен контроллер памяти;
□ усовершенствован блок предсказания ветвлений;
□ встроен когерентный интерфейс HyperTransport.
Очевидно, что без интенсификации подкачки данных в микропроцессорное
ядро не представляется возможным повысить степень загруженности вычис-
лительных блоков микропроцессора. Размещая на кристалле контроллер па-
мяти, AMD стремилась повысить производительность подсистемы обмена с
основной памятью, которая в современных микропроцессорах является уз-
ким местом. Оптимальный для данного процессора и максимально прибли-
женный к нему контроллер позволяет организовать эффективный обмен с
памятью, минуя системную шину, на частоте работы ядра.
Процессоры с архитектурой Hammer оснащаются 64- либо 128-битным кон-
троллером DDR SDRAM, в дальнейшем предполагается переход на DDR II.
На рис. 2.16 показана структура вычислительной системы, построенной на
базе микропроцессора Hammer, в которой функции северного моста, за ис-
ключением контроллера AGP, обеспечиваются процессором.
Рис. 2.16. Структура вычислительной системы на базе МП Hammer
Встроенный когерентный интерфейс HyperTransport обеспечивает возмож-
ность использования Hammer в мультипроцессорной конфигурации.
Улучшение блока предсказания ветвлений заключается в выявлении и учете
информации о типе ветвлений: статическое ветвление, т. е. адрес перехода
не изменяется, или динамическое.
Различия процессоров для одно- и многопроцессорных конфигураций за-
ключаются, в основном, в размере кэш-памяти второго уровня и числе
линков интерфейса HyperTransport. Так, для однопроцессорного использо-
вания предназначен микропроцессор Athlon ClawHammer-DT (DT означа-
ет DeskTop) в следующей конфигурации: один 72-битный канал DDR
SDRAM DDR200/266/333 (PC 1600/РС2100/PC2700), один 16-битный линк
HyperTransport с пропускной способностью 3,2 Гбайт/с, кэш-память вто-
рого уровня 256 Кбайт или I Мбайт. Для двухпроцессорных систем
(рис. 2.17) предназначен Athlon ClawHammer-DP (DP — Dual Processing),
содержащий один 72-битный канал DDR SDRAM DDR200/266/333
(РС1600/РС2100/РС2700), два 8-битных линка HyperTransport по 3,2 Гбайт/с
каждый и кэш-память второго уровня 512 Кбайт или 1 Мбайт. Для при-
менения в мультипроцессорных конфигурациях предназначен Opteron
Sledge Hammer-MP (МР означает Multy Processing — до 8 процессоров),
содержащий два 72-битных канала DDR SDRAM DDR200/266/333
(РС1600/РС2100/РС2700), три 16-битных линка НТ по 3,2 Гбайт/с каждый
и кэш второго уровня — 1 Мбайт.
Первые два микропроцессора выпускаются в 754-контактном mPGA-корпусе,
для последнего предназначен новый 940-контактный mPGA корпус.
Рис. 2Л7, Микропроцессор Hammer в 2-процессорной конфигурации
2.2.11. Микропроцессоры компании Cyrix
Третье место после Intel и AMD на рынке микропроцессоров с архитектурой
х86 занимают микропроцессоры семейства Cyrix. Не претендуя на лидерство
в производительности, эти микропроцессоры, тем не менее, занимают ус-
I тойчивую позицию на рынке микропроцессорных систем, в секторе систем
нижней ценовой категории, благодаря сбалансированным значениям таких
характеристик, как производительность, энергопотребление, стоимость.
Микропроцессор Cyrix 5x86 (M1sc)
Микропроцессор 5x86 был выпущен компанией Cyrix в качестве альтернати-
вы Pentium и предлагаемой Intel технологии перехода с четвертого на пятое
поколение микропроцессоров — ChipUp. Для упрощения перехода пользо-
вателей на новый процессор компания обеспечила его совместимость по
выводам с 486 микропроцессором.
В 5x86 [73] воплощены архитектурные и структурные решения, характерные
для процессоров пятого поколения, такие как 64-разрядная внутренняя ар-
хитектура, предсказание переходов, предварительная посылка данных, вы-
полнение нескольких операций за один такт (благодаря разнесению уст-
ройств загрузки/сохранения). В микропроцессор встроены 80-разрядное
устройство вычислений с плавающей точкой и общий кэш данных и команд
размером 16 Кбайт.
Особенностью микропроцессора является высокоэффективная система
управления энергопотреблением процессора и внешних устройств. Система
управления энергопотреблением может отключить модуль операций с пла-
вающей точкой и другие внутренние схемы, если они в данный момент не
используются. Низкое энергопотребление процессора (на частоте 100 МГц
при напряжении питания 3,3 В 5x86 потребляет менее 3,5 Вт) делает его
предпочтительным для использования в мобильных компьютерах, для кото-
рых критичны энергопотребление и отвод тепла.
Архитектура 5x86 — результат компромисса между производительностью и
простотой реализации, благодаря которой удалось уменьшить число транзи-
сторов на кристалле и снизить энергопотребление.
Процессор содержит модуль предсказания переходов, включающий буфер
адресов перехода (ВТВ), объединенный кэш данных и команд размером
16 Кбайт с режимом обратной записи, устройство операций с плавающей точ-.
кой, устройство выборки и устройство декодирования команд, устройство^
управления памятью с буфером преобразования адресов на 32 элемента, па-
раллельно функционирующие устройства загрузки/сохранения и модуль вы-
числения адресов. Функциональные модули 5x86 связаны между собой двумя
32-разрядными шинами, обеспечивающими неблокируемый обмен данны-
ми. 128-разрядная шина выборки команд обеспечивает за один такт передачу
16 байт команд в трехуровневый буфер устройства декодирования.
Модуль целочисленных операций выбирает, декодирует и выполняет коман-
ды в шестистадийном конвейере. На первой стадии выборки (Fetch Stage)!
генерируется непрерывный высокоскоростной поток команд из внутренней!
кэш-памяти. За один такт считывается до 128 бит кода. На второй стадии-1
декодирования (Decode Stage) — анализируется поток команд и определяет1!
ся число байт в каждой команде и ес тип. На третьей стадии (Address!
Calculation) выполняется конвейеризированное вычисление адреса, вклюя
чающее стадии АС1 и АС2. Стадия АС1 используется для вычисления ЛИЯ
нейного адреса, если команда обращается к операнду в памяти. На стадйИ
АС2 реализуются операции доступа к памяти, кэш-памяти и регистрами
В случае обнаружения команды с плавающей точкой АС2 передает ее уб!Я
ройству вычислений с плавающей точкой. На стадии выполнения (Execution
Stage) под управлением микрокода осуществляется выполнение команды.
На стадии записи результата (Write-Back) сохранение результата в регистро-
вом файле выполняется непосредственно в модуле целочисленных опера-
ций, а сохранение в памяти выполняется модулем загрузки/сохранения.
Устройство операций с плавающей точкой связано 64-разрядным интерфей-
сом с кэш-памятью и модулем целочисленных операций и поддерживает
систему команд х87, включая расширенный 80-разрядный формат.
Модуль управления памятью содержит устройство загрузки/сохранения, бу-
фер преобразования адресов (TLB) и устройство вычисления адреса (АС).
АС выполняет вычисление адреса, устанавливает значение указателя
команд, инициирует операции загрузки/сохранения. Модуль загрузки/сохра-
нения может выполнять операции параллельно с возможностью переупоря-
дочивания трех операций загрузки и четырех операций сохранения.
64-разрядная внутренняя шина микропроцессора преобразуется в 32-раз-
рядную внешнюю шину. Внешняя шина микропроцессора может работать с
частотой от 33 до 50 МГц, умножитель частоты повышает внутреннюю час-
тоту до 100—120 МГц.
По производительности Cyrix 5x86 сравним с младшими моделями Pentium
(75, 90 МГц), но существенно дешевле последних.
Микропроцессор Cyrix 6x86
Первые образцы микропроцессоров 6x86 [74, 75], под названием Ml, были
представлены Cyrix в октябре 1995 года. На частоте 100 МГц процессор на
30% превосходил по быстродействию аналогичный Pentium. Однако ввиду
большого размера кристалла процессор сильно нагревался, что отражалось
на надежности его работы. Поэтому первый вариант процессора не нашел
широкого распространения, и массовое его производство было начато толь-
ко с появлением нового варианта, в первом квартале 1996 года. При той же
0,6 мкм технологии Cyrix перешла на пятислойную металлизацию вместо
прежней трехслойной, что позволило сократить размеры кристалла с 394 до
225 мм2 и уменьшить нагрев процессора. Новый вариант процессора был
выпущен для частот 100, 120, 133, и 150 МГц, что соответствует используе-
мому в маркировке процессоров Pentium-рейтингу 120+, 150+, 166+, 200+.
Процессор использовал напряжение питания 3,3 В, существовала также
низковольтовая версия процессора — 6x68L, предназначенная для примене-
ния в мобильных компьютерах. 6x86L использовал 2,8 В для процессорного
ядра и 3,3 В — для подсистемы ввода/вывода.
В микропроцессоре 6x86 были реализованы такие прогрессивные архитектур-
ные методы повышения производительности, как переупорядочивание инет-
рукций, динамическое устранение зависимостей между командами, переиме-
нование регистров, спекулятивное выполнение, предсказание переходов.
Структура микропроцессора показана на рис. 2.18.
Рис. 2.18. Структура микропроцессора Cyrix 6x86
Микропроцессор Cyrix 6x86 содержит два независимых семистадийных кон-
вейера (X и У), позволяющих выполнять несколько команд за один такт.
Процессор имеет два кэша: общий кэш данных и команд размером 16 Кбайт
и дополнительную 256-байтовую кэш-память команд с прямым отображени-
ем. Выделенный кэш команд позволяет избежать частых конфликтов при
обращении к данным и командам в общей кэш-памяти.
Так же как и 5x86, процессор способен параллельно выполнять целочислен-
ные команды и команды с плавающей точкой, отложенные и переупорядо-
ченные инструкции загрузки/сохранения.
Цикл работы целочисленного АЛУ включает следующие этапы конвейер-
ного выполнения:
□ выборка команды (1F);
□ декодирование команды 1 (ID1);
□ декодирование команды 2 (ID2);
□ вычисление адреса 1 (АС1);
□ вычисление адреса 2 (АС2);
□ выполнение (ЕХ);
□ запись результата (WB).
Таким образом, этапы декодирования команды и вычисления адреса также
конвейеризированы.
Этап IF, общий для X- и Y-конвейеров, заключается в выборке из кэша
16 байт кода за один такт. В этом такте осуществляется также анализ потока
команд на наличие команд перехода. Если встретилась команда перехода, то
логика предсказания генерирует адрес перехода, и начинается выборка
команд по предсказанному адресу.
Суперконвейеризированный этап декодирования команды включает две ста-
дии. ID1 является общей для обоих конвейеров. На этой стадии определя-
ется размер команды в байтах. Затем команды для каждого конвейера пере-
даются на стадию ID2, в ходе которой команды декодируются и направля-
ются для выполнения в конвейер X или У. Выбор конвейера зависит от
того, какая из выполняющихся в данный момент команд будет завершена
раньше.
Вычисление адреса включает два этапа, аналогичные рассмотренным для 5x86.
На стадии выполнения используются данные, полученные на предыдущей
стадии вычисления адреса. Результаты выполнения записываются в регистр
непосредственно в устройстве целочисленных операций или передаются для
записи в память устройству управления кэш-памятью.
Особенностью, отличающей 6x86 от процессоров Pentium и 5x86, является
переупорядочи ван и е команд. Если команда выполнится быстрее, чем пре-
дыдущая в другом конвейере, то они будут переупорядочены. Вплоть до ста-
дии выполнения все команды выполняются по порядку, а на стадиях ЕХ и
WB порядок может быть нарушен. Аппаратные средства блокировки обеспе-
чивают требуемый порядок выполнения и записи результатов для команд,
связанных по данным.
Для устранения зависимостей по данным в процессоре используются сле-
дующие приемы:
□ переименование регистров;
□ предварительная посылка данных;
□ пропуск данных.
6x86 содержит 32 физических регистра общего назначения. Каждый из реги-
стров может быть временно сопоставлен архитектурному регистру х86 (ЕАХ,
ЕВХ, ЕСХ, EDX, ESI, EDI, ЕВР и ESP). Для каждой операции записи в
регистр выбирается новый физический регистр, чтобы сохранить предыду-
щие данные. Переименование регистров эффективно устраняет WAW- и
WAR-зависи мости.
Зависимость RAW не может быть устранена только с помощью переимено-
вания регистров. Для этого в 6x86 используется также предварительная по-
сылка данных и результатов.
Для уменьшения потерь производительности, связанных с использованием
предварительной посылки данных и результатов при устранении RAW-
зависимостей, в 6x86 используется метод пропуска данных. Этот метод при-
меняется в случае записи в память одной из пары команд данных, которые
считывает другая команда этой пары. Механизм пропуска данных передает
эти данные непосредственно от команды к команде, экономя цикл чтения
из памяти. Пропуск данных применяется только для кэшируемых областей
памяти.
Для предсказания переходов в 6x86 используется 256-позиционный 4-вхо-
довый ассоциативный буфер адресов переходов. Корректно предсказанная
инструкция перехода выполняется за один процессорный такт.
Микропроцессор Cyrix 6х86МХ
Следующей разработкой компании Cyrix стал процессор с мультимедийным
расширением системы команд — 6х86МХ, известный также как М2 [76—78|.
Cyrix представляла этот процессор как более дешевую альтернативу Pentium
11. Подобно Pentium Pro, он оптимизирован для работы с 32-разрядными
программами, но, в отличие от последнего, успешно работал с 16-
разрядными программами и устанавливался в стандартное гнездо Socket 7.
Процессор производился по технологии КМОП 0,35 мкм и 0,25 мкм с пяти-
слойной металлизацией и использовал два напряжения питания: 2,9 В для
процессорного ядра и 3,3 В для подсистемы ввода/вывода. Процессор мог
работать с частотой шины 66, 75 или 83 МГц. Его производительность по
Pentium-рейтингу составляла от PR 166 до PR433.
Структура микропроцессора показана на рис. 2.19.
Рис. 2.19. Структура микропроцессора Cyrix 6х86МХ
В 6x68 используется предсказание переходов и спекулятивное выполнение
команд. Спекулятивное выполнение может осуществляться на глубину до
4 ветвлений. Результаты, полученные при спекулятивном выполнении
команд, не переносятся в кэш-память и внешнюю память до тех пор, пока
не будет получено подтверждение правильности сделанного предположения.
Спекулятивное выполнение команд продолжается до тех пор, пока не про-
изойдет одно из следующих событий:
□ уровень спекулятивного выполнения превысил 4;
□ возникло исключение или установлена ложность предсказания перехода;
□ переполнение буфера записи результатов спекулятивно выполненных
команд;
□ предпринята попытка модификации ресурсов, не сохраненных в кон-
трольной точке (например, сегментных регистров, системных флагов).
Основные отличия процессоров 6х86МХ и 6x86 отражены в табл. 2.15.
Микропроцессор 6х86МХ содержит два кэша: 64-килобайтный 4-входовый
ассоциативный общий кэш с обратной записью и 256-килобайтный высоко-
скоростной кэш команд с прямым отображением. Для поддержки выполне-
ния мультимедийных операций часть кэш-памяти может быть использована
в качестве основной памяти со строковой организацией. В этом случае она
не участвует в операциях кэширования.
В 6х86МХ используются два буфера трансляции адресов (TLB) — основной
TLB первого уровня (TLB L1) и вторичный TLB (TLB L2), большего разме-
ра. TLB L1 с прямым отображением адресов имеет 16 позиций, 6-входовый
ассоциативный TLB L2 рассчитан на 384 позиции.
Таблица 2.15. Отличия процессоров Cyrix 6x86 и 6х86МХ
Характеристика Cyrix 6х86МХ 'Cyrix 6x86
6x86 6x86L
Напряжение питания:
ядро 2,9 В 3,3 или 3,52 В 2,8 В
подсистема ввода/вывода 3,3 В 3,3 В 3,3 В
Кэш-память первого уровня 64 Кбайт 16 Кбайт
TLB L1: 16 позиций L1: 128 позиций
L2: 384 позиции
Предсказание перехо- дов 512-позиционный кэш адресов переходов 256-позиционный кэш адре- сов переходов
1024-позиционная табли- ца предыстории перехо- дов 512-позиционная таблица предыстории переходов
ММХ Да Нет
Реализация строковой памяти в первичной кэш-памяти Да Нет
Умножение частоты 2х; 2,5х; Зх; 3,5х 2х; Зх
Устройство вычислений с плавающей точкой (FPU) имеет 64-разрядный
интерфейс, 4-позиционную входную очередь команд на выполнение и 6-
позиционную выходную очередь на запись результатов. Устройство FPU
расширено возможностью выполнения команд ММХ, наряду с командами с
плавающей точкой. Команды обоих типов могут выполняться одновременно
с целочисленными операциями.
Для возможного применения в мобильных компьютерах в 6х68МХ преду-
смотрена эффективная система управления энергопотреблением.
В табл. 2.16 приведены данные по производительности процессоров Cyrix на
тестах, включающих графические и мультимедийные приложения.
Таблица 2.16. Производительность микропроцессоров
на мультимедийных тестах
Микропроцессор ZD Winstone 97 для Windows 95 ZD Winstone 97 для Windows NT
PR233 Cyrix 6х86МХ 49,4 63,5
Pentium II — 233 МГц 49,9 65,7
PR200 Cyrix 6х86МХ 45,9 59,1
Pentium MMX - 200 МГц 43,3 57.7
PR 166 Cyrix 6х86МХ 43,8 56,2
Pentium MMX-166 МГц 40,8 54,6
PR200+ Cyrix 6x86 41,5 50,6
Pentium — 200 МГц 40,5 51,0
Микропроцессоры IDT WinChip и VIA Cyrix
В конце 1990-х годов на рынок микропроцессоров вышла компания VIA —
известный производитель чипсетов. Предпосылкой к этому послужило при-
обретение ею компаний Cyrix и Centaur Technology (микропроцессорное
подразделение компании IDT), Посл.сдняя известна как разработчик микро-
процессоров WinChip с архитектурой х86. Новые микропроцессоры компа-
нии VIA, таким образом, воплотили в себе лучшие качества микропроцес-
сорных архитектур Cyrix и WinChip.
Микропроцессор WinChip
Несколько слов следует сказать о микропроцессорах IDT WinChip С6 [79].
появившихся на рынке в 1997 году и ориентированных на сектор дешевых
компьютеров. Эти микропроцессоры ямялись функциональными аналогами
Pentium MMX и, не показывая значительных результатов в производитель-
ности, тем не менее, обладали рядом преимуществ, в числе которых низкое
энергопотребление, невысокая цена (почти в 2 раза дешевле, чем Pentium
MMX с такой же производительностью) и совместимостью ио разъемам
(Socket 5) и напряжению питания (3,3—3,5 В) со старыми материнскими
платами, рассчитанными на использование с процессором Pentium. Таким
образом, переход на WinChip стал альтернативой замене материнской платы
при переходе от Pentium к Pentium ММХ или от AMD К5 к Кб.
Микропроцессор WinChip С6 представляет собой весьма простой микропро-
цессор, который имеет только один исполнительный конвейер, не использует
предсказания переходов, спекулятивного выполнения и других ухищрений,
направленных на повышение производительности. В WinChip С6 сделана
ставка на эффективную реализацию наиболее часто выполняемых команд, а
также на использование большой кэш-памяти (64 Кбайт), расположенной на
кристалле и работающей на частоте ядра. В микропроцессоре реализована
поддержка команд ММХ, однако FPU, в отличие от CPU, не являлось кон-
вейеризированным, и процессор имел весьма низкую производительность на
мультимедийных командах и командах с плавающей точкой.
Микропроцессор WinChip С6 выпускался по технологии 0,35 мкм с четы-
рехслойной металлизацией для тактовых частот от 180 до 240 МГц, обеспе-
чивал работу с системной шиной на частотах 60, 66, 75 МГц, имел энерго-
потребление около 10 Вт и содержал 5,4 млн транзисторов на кристалле
площадью 88 мм2.
Микропроцессор WinChip 2
Осенью 1998 года компанией IDT был выпущен следующий микропроцес-
сор — WinChip 2 [80], который заслуживает более подробного рассмотрения.
Основными нововведениями данного микропроцессора являются конвейе-
ризированное устройство вычислений с плавающей точкой, второй конвей-
ер для обработки MMX-данных и блок 3Dnow!.
В микропроцессоре осуществляется динамическая трансляция команд х86 во
внутреннее представление — микрокод. Выборка и трансляция команд х8б
реализовывается асинхронно по отношению к исполнительному конвейеру.
В процессоре не используется изменение порядка выполнения команд.
В случае отсутствия данных в кэш-памяти исполнительный конвейер приос-
танавливается до их подкачки из основной памяти. Целочисленные коман-
ды и команды с плавающей точкой выбираются и исполняются по одной за
такт, в соответствии с порядком их следования в программе. Команды ММХ
и 3Dnow! могут выбираться и выполняться одновременно.
При достаточно простой архитектуре микропроцессор достигает высокой
производительности за счет эффективной реализации часто используемых
команд, конвейеризации устройств обработки данных с плавающей точкой
и мультимедийных данных, большого размера размещенных на кристалле
кэш-памяти и буфера быстрого преобразования адреса (TLB).
Внутренняя структура микропроцессора показана на рис. 2.20. Рассмотрим
назначение и функционирование основных блоков микропроцессора.
Рис. 2.20. Структура микропроцессора WinChip 2
Устройство трансляции (X86-To-Microcode Translator) извлекает из кэш-па-
мяти команд (I-Cache) до 16 байт за один такт, помещает их в буфер команд
(Х86 Inst Buffer) и преобразует содержащиеся в них х86-команды во внут-
ренние инструкции. За один такт могут преобразовываться две команды
ММХ или две команды 3DNow!. Поток микроинструкций (Х86 Inst Parnis)
из очереди на выполнение (Queue) и непосредственные операнды (Х86 Inuned
Data) поступают в исполнительный блок с выхода транслятора или из памя-
ти (ROM) микроинструкций (Internal Insts — внутренние инструкции).
Устройство предсказания переходов, содержащее также стек адресов возвра-
та (BR Prediction & Ret Stk), определяет с вероятностью 0,9 направление пе-
рехода для команд ветвлений. Эта информация используется для управле-
ния устройством выборки (Х86 Fetch) при загрузке кода программы в кэш
команд.
Микропроцессор содержит раздельные типы кэш-памяти первого уровня
для команд и данных: кэш команд (l-Cache) размером 32 Кбайт, множест-
венно-ассоциативный, 2-входовый, с размером строк 32 байта; кэш данных
(D-Cache) размером 32 Кбайта, множественно-ассоциативный, 4-входовый.
В процессоре предусматривается возможность использования внешней кэш-
памяти второго уровня размером от 512 Кбайт до 2 Мбайт.
Выполнение микроинструкций осуществляется в конвейере за 4 стадии: де-
кодирование (Decode), вычисление адреса (Address Gen), выборка данных из
кэша и вычисление результата (D-Cache Access & Execute), запись результа-
та (Writeback). Одновременно с целочисленными вычислениями в АЛУ,
процессор может выполнять обработку мультимедийных данных и данных в
формате с плавающей точкой.
Блок операций 80-разрядный с плавающей точкой полностью конвейеризи’
рован и может выполнять операцию умножения или сложения за один такт.
Каждый из двух блоков ММХ содержит сумматор и устройство выполнения
логических операций, в то же время, один из них содержит умножитель- j
сумматор, а другой — устройство сдвига и преобразования форматов данных. 1
MMX-блоки разделяют аппаратные ресурсы с блоками 3DNow!, тогда как •
FPU является независимым. Регистры FPU и ММХ архитектурно идентич- ,
ны, но физически различны и синхронизируются на аппаратном уровне.
Шинный блок (Bus Unit) микропроцессора обеспечивает интерфейс с сис-
темной шиной, работающей на частотах 60, 66, 75, 83, 95 и 100 МГц.
WinChip 2 — производился по технологии 0,25 мкм для частот от 200 до
300 МГц и напряжения ядра 3,3 или 3,5 В.
Несмотря на существенное увеличение производительности по сравнению с]
предыдущим процессором, особенно в части, касающейся обработки муль-
тимедийных данных и выполнения операций с плавающей точкой, WinChip?
не удалось догнать лидеров — микропроцессоры компании Intel. В то ж?
время, по соотношению производительность/стоимость этому процессору
удалось обогнать ближайших конкурентов Intel — AMD и Cyrix. И пб-
прежнему, вне конкуренции остался WinChip в случае необходимости заме’:
ны устаревшего процессора, при сохранении системной платы. <
Следующей (и последней) самостоятельной разработкой компании Cental^
Technology стал микропроцессор WinChip 3, основным отличием которого:
явилась размешенная на кристалле кэш-память второго уровня размером
128 Кбайт. Однако в связи с покупкой компании этот микропроцессор так и
не был запушен в производство.
Последующие микропроцессоры компания Centaur Technology выполняла
уже в составе VIA совместно со специалистами из Cyrix.
Микропроцессор VIA Cyrix III
Микропроцессор VIA Cyrix HI [811 был представлен в двух вариантах: с
ядром Joshua, разработанный компанией Cyrix; и с ядром Samuel, являю-
щийся результатом разработки Centaur Technology, ранее известной как
Winchip 4.
В компании Cyrix данный микропроцессор ранее разрабатывался под кодо-
выми названиями Jedi и Gobi. Затем, после се покупки National
Semiconductor, он получил название Jalapeno и уже в VIA — Joshua.
Микропроцессор VIA Cyrix 111 Joshua производился по шестислойной
0,18 мкм технологии, содержал кэш-память первого уровня 64 Кбайт и кэш-
память второго уровня 256 Кбайт, использовал напряжение питания 2,2 В,
тактовую частоту системной шины — 66, 100, 133 и следующие делители
частоты шины: 2,5; 3; 3,5; 4; 4,5; 5; 5,5; б; 6,5 и 7. Процессор рассчитан на
установку в гнездо Socket 370, обеспечивая совместимость с системными
платами, разработанными для Pentium III и Celeron.
В микропроцессоре Joshua была реализована обработка команд в двух ис-
полнительных конвейерах, использована технология переименования реги-
стров для устранения связей по данным между отдельными командами,
поддерживались наборы SIMD-команд ММХ и 3DNow!. Блоки ММХ и FPU
у Joshua двухконвейерные.
Микропроцессор VIA Cyrix III, построенный на ядре Joshua, был представ-
лен в феврале 2000 года, однако, в виду существенно меньшей производи-
тельности, чем ожидалось ранее, он так и не был запушен в серию.
Другой микропроцессор VIA Cyrix III, построенный на ядре Samuel, был
анонсирован в начале июня 2000 года. Этот микропроцессор имел следую-
щие характеристики:
□ технология производства 0,18 мкм с 6 слоями алюминиевых соединений;
□ на кристалле площадью 76 мм2 расположено! 1,2 млн транзисторов;
□ используемый разъем — Socket 370;
□ системная шина с частотой 66/100/133 МГц;
□ внутрикристальная кэш-память первого уровня, объемом 128 Кбайт, по
64 Кбайт на команды и данные;
□ кэш-память второго уровня — отсутствует;
□ напряжение питания — 1,9 В;
□ энергопотребление не более 10 Вт;
□ набор SIMD-инструкций 3DNow! и ММХ;
□ тактовая частота — 500, 533, 600, 667 МГц.
Микропроцессор имеет 12-стадийный исполнительный конвейер и 4 функ-
циональных блока: 1 ALU, 2 MMX/3Dnow! и 1 FPU.
Отсутствие кэш-памяти второго уровня оказало существенное влияние на
производительность процессора, и в новом варианте процессора Cyrix III,
на основе ядра Samuel 2, был добавлен кэш размером 64 Кбайт. Помимо
кэш-памяти, этот процессор отличается модифицированным блоком FPU и
новой технологией производства — 0,15 мкм, самой современной на сего-
дняшний день. Размеры кристалла уменьшились до 52 мм2. Тактовая частота
процессора составляет от 700 до 900 МГц. При напряжении питания 1,5 В
процессор с ядром Samuel 2 на частоте 700 МГц потребляет всего 5 Вт. Низ-
кое энергопотребление позволяет использовать микропроцессор без венти-
лятора.
Результаты тестирования процессора показывают, что и на целочисленных
вычислениях, и на вычислениях с плавающей точкой Cyrix III уступает про-
цессорам Seleron и Duron, причем, на плавающей точке отставание весьма
существенное.
Дальнейшие планы VIA связаны с выпуском процессоров Ezra на основе
нового ядра Nehemiah по технологии 0,13 мкм. Процессор содержит на кри-
сталле 256 Кбайт кэш-памяти второго уровня, работает на частотах от 800 до
1200 МГц при частоте системной шины 266 МГц. Системная шина работает
в режиме DDR. Помимо ММХ и 3Dnow!, в микропроцессор будет добавлена
поддержка набора команд SSE.
Стремясь еще более удешевить системы на базе своих процессоров, VIA на-
чала выпуск интегрированных кристаллов, содержащих помимо ядра север-
ный мост. Данный процессор, получивший название Mark, был выпущен на
основе ядра Nehemiah для тактовой частоты 1 ГГц.
2.2.12. Микропроцессоры компании Transmeta
Свои первые микропроцессоры компания Transmeta представила в начале
2000 года. Микропроцессорное семейство, получившее название Crusoe, от-
личает оригинальная архитектура, основанная на нескольких запатентован-
ных Transmeta-решениях |82, 83]. Основной особенностью данных микро-
процессоров в архитектурном плане является динамическое преобразование
двоичного кода программы во внутренний VLIW-код ядра с помощью про-
граммно-аппаратного компонента, названного разработчиком Преобразова-
телем кода (Code Morphing). Программная часть Преобразователя кода явля-
ется загружаемой (загружается при инициализации процессора из flash ROM
в SDRAM-память) и может быть изменена для настройки на новую входную
систему команд или новое процессорное ядро.
Существующие реализации микропроцессора работают с командами х86,
однако нет принципиальных ограничений для настройки микропроцессора
и на другие системы команд.
Обеспечить эффективную эмуляцию выполнения команд х86 в VLIW-ядре
разработчикам удалось благодаря сохранению преобразованного кода каж-
дой команды в специальной кэш-памяти для его последующего использова-
ния, а также за счет учета особенностей выполняемых программ при гене-
рации последовательности VLIW-команд: Преобразователь кода анализирует
наиболее часто выполняемые фрагменты программы, ветвления, вызовы
подпрограмм и т. п. с целью их более эффективной реализации во внутрен-
нем VLIW-коде.
Ядро Crusoe состоит из пяти модулей четырех различных типов: два блока
для операций с целыми числами, один для операций с числами с плаваю-
щей запятой, один для операций с памятью, и один модуль переходов.
Рис. 2.21. Выполнение VLIW-команды в микропроцессоре Crusoe
Соответственно, и каждая VLIW-команда ("молекула", по терминологии
Transmeta, длиной 64 или 128 бит) может состоять из четырех RISC-
подобных операций этих типов ("атомов"). Все атомы выполняются парал-
лельно, каждый соответствующим модулем (рис. 2.21).
Выявление потенциального параллелизма уровня команд программными
средствами на этапе преобразования кода, а не в динамике, на стадии вы-
полнения, как это делается в большинстве современных суперскалярных
микропроцессоров, позволяет обойтись меньшим числом транзисторов, ма-
лыми размерами кристалла и, как следствие, меньшей себестоимостью и
меньшим расходом энергии. На снижение энергопотребления в микропро-
цессорах Crusoe направлены и другие архитектурно-технические решения, в
частности, система управления энергопотреблением ACPI, использование
технологии LongRun (возможность изменения тактовой частоты и напряже-
ния на ядре процессора в ходе выполнения программы).
Низкое энергопотребление при достаточно высокой производительности,
определило позицию микропроцессоров семейства Crusoe на рынке мобиль-
ных устройств.
На сегодняшний день в это семейство микропроцессоров входят: ТМ3120,
ТМ5400.
Микропроцессор ТМ3120
ТМ3120 — младший процессор семейства. Выпускается для тактовых частот
333, 366, и 400 МГц.
ТМ3120— высокоинтегрированное устройство, предназначенное для по-
строения "систем на одном кристалле". Помимо собственно процессора, кри-
сталл содержит 96 Кбайт раздельных типов кэш-памяти второго уровня ко-
манд и данных (64 Кбайт для команд и 32 Кбайт — для данных), встроенный
контроллер SDRAM (66—133 МГц), контроллер шины РС1 2.1 и контроллер
флэш-памяти, содержащий программное обеспечение Преобразователя кода.
Микропроцессор рассчитан на напряжение 1,5 В и потребляет в системном
состоянии Deep Sleep всего лишь 0,015 Вт. В процессе активного счета его
энергопотребление на порядок ниже, чем у других микропроцессоров с ар-
хитектурой х86.
При производстве данного микропроцессора использовалась технология
0,22 мкм. Цена его при выпуске составила от $65 до $89 в зависимости от
тактовой частоты.
Микропроцессор ТМ5400
Следующий представитель семейства Crusoe — ТМ5400. Это более произво-
дительный процессор, рассчитанный на тактовую частоту 500—700 МГц.
В процессор добавлена кэш-память второго уровня размером 256 Кбайт и
увеличен объем кэш-памяти первого уровня до 128 Кбайт (64 Кбайт — ко-
манды, 64 Кбайт — данные). Блок управления энергопотреблением регули-
рует напряжение ядра от 1,2 В до 1,6 В, в зависимости от интенсивности
вычислений. Энергопотребление процессора не превосходит 1,8 Вт.
Внутренняя структура микропроцессора показана на рис. 2.22.
К дополнительным средствам системной интеграции добавился располо-
женный на кристалле контроллер памяти DDR SDRAM. Микропроцессор
производится по технологии 0,18 мкм и стоил при выпуске от $119 до $329.
По производительности микропроцессор ТМ5400 с тактовой частотой 667 МГн
примерно равен Pentium II1/500 МГц.
Рис. 2.22. Микропроцессор ТМ5400
Перспективы развития микропроцессоров Crusoe
Дальнейшее развитие семейства микропроцессоров Crusoe (ТМ5600,
ТМ5800) идет в направлении повышения тактовой частоты, снижения
энергопотребления, совершенствования программного обеспечения Преоб-
разователя кодов, а также расширения номенклатуры встроенных дополни-
тельных устройств. Так, микропроцессор ТМ5800 содержит средства аппа-
ратной поддержки реализации криптографических алгоритмов, соответ-
ствующих стандарту шифрования AES (Advanced Encryption Standard — усо-
вершенствованный стандарт шифрования).
В 2003 году планируется выпуск первого микропроцессора второго поколе-
ния семейства — ТМ8000 Astra.
Микропроцессор ТМ8000 Astra содержит встроенные контроллеры ОЗУ,
AGP, оснащен высокоскоростной системной шиной HyperTransport, графи-
ческой шиной AGP 4х и поддерживает память DDR400. Увеличена длина
VLIW-команл ядра микропроцессора со 128 до 256 разрядов, что позволяет
обрабатывать за такт 8 команд длиной в 32 бита.
Планируется выпускать процессор Astra для частот свыше I ГГц по тех-
нологии 0,13 мкм. Серийный выпуск новых процессоров должен начаться в
III квартале 2003 года.
2.3. Микропроцессоры
с архитектурой Alpha
На протяжении ряда лет микропроцессоры Alpha, разработанные компанией
DEC, являлись лидерами в производительности [84—89]. Первые 64-ра-
рядные микропроцессоры разрабатывались в рамках концепции Spead
Daemon, затем, начиная с модели 21264, разработчики начали использовать
решения, характерные для концепции Brainiac.
2.3.1. Микропроцессоры Alpha 2106х
Микропроцессоры Alpha 21064 являются хорошей иллюстрацией концепции
Speed Daemon — достижения высокой производительности за счет увеличе-
ния тактовой частоты при относительно простой логике функционирования.
Архитектура микропроцессоров Alpha впервые была представлена в феврале
1992 года на конференции ISSCC, а уже в феврале 1993 года был выпущен
первый из микропроцессоров — Alpha 21064 с тактовой частотой 200 МГц,
выполненный по 0,75 мкм КМОП технологии с 4 слоями металлизации.
Процессор содержал 1,68 млн транзисторов на кристалле площадью 238 мм2.
Благодаря высокой тактовой частоте и высокой степени конвейеризации
выполняемых операций (до 10 тактов на операцию) этот микропроцессор
надолго занял лидирующее положение по производительности. Основной
областью использования процессора явились высокопроизводительные ра-
бочие станции и серверы.
Следующими в сентябре 1993 года были выпущены микропроцессоры Alpha
21066 с тактовой частотой 166 МГц и Alpha 21068 с тактовой частотой
66 МГц. Эти процессоры были ориентированы на использование в более
дешевых системах — рабочих станциях нижнего и среднего уровня. Архи-
тектура ядра данных микропроцессоров аналогична Alpha 21064. На кри-
сталле микропроцессоров Alpha 21066/21068 расположены контроллеры: ПДП
(прямого доступа к памяти), графический и шины PCI. Это позволило сни-
зить стоимость процессоров и упростить построение систем на их основе.
Выпуск в октябре 1993 года микропроцессора Alpha 21064А с тактовой час-
тотой 225 и 275 МГц еще более упрочил позиции микропроцессоров компа-
нии DEC, как лидеров в производительности.
Микропроцессор Alpha 21064 имеет 64-разрядную суперскалярную RISC-
архитектуру с двумя исполнительными конвейерами. Микропроцессор вы-
полняет за один такт до двух команд с фиксированной и плавающей точкой
или команду перехода. Блок предсказания переходов обеспечивает вероят-
ность правильного прогноза 0,8.
Микропроцессор содержал на кристалле раздельную кэш-память команд
и данных, каждая емкостью 16 Кбайт, 32 регистра с плавающей точкой и
32 регистра с фиксированной точкой. Кэш-память второго уровня — внешняя,
емкостью от 128 Кбайт до 16 Мбайт. Тактовая частота шины в системе могла
быть в 2,5—10 раз меньшей, чем частота работы микропроцессора. Ширина
внешних шин адреса и данных составляла 43 и 128 битов соответственно.
В микропроцессорах Alpha 21064 не использовалась сложная логика пере-
упорядочивания команд и переименования регистров. Обеспечение эффек-
тивной загрузки исполнительных устройств возлагалось на компилятор.
В табл. 2.17 приведены основные характеристики микропроцессоров Alpha
2106х.
Таблица 2.17. Основные характеристики микропроцессоров Alpha 2106х
Модель Тактовая частота, МГц Техно- логия, мкм Мощ- ность, Вт Внешняя кэш-память, Мбайт Произво- дительность
SPEC Int92 SPEC fp92
21064 200 0,75 27 ДО 16 130 184
21064А 275 0,75 33 ДО 16 190 290
21066 166 0,68 21 0,064 —2 70 105
21066А 233 0,68 23 0,064 —2 100 112
21068 66 0,68 9 0,064 —2 30 50
2.3.2. Микропроцессор Alpha 21164
Следующим микропроцессором с архитектурой Alpha стал выпущенный в
сентябре 1994 года микропроцессор Alpha 2Н64, работавший на тактовых
частотах 266 и 300 МГц. Это был первый микропроцессор, имевший произ-
водительность более I млрд операций в секунду (1,2 млрд/с). Применение
новой на тот период технологии 0,5 мкм позволило разместить на кристалле
площадью 298 мм2 9,3 млн транзисторов.
Структура микропроцессора приведена на рис. 2.23.
Рис. 2.23. Структура микропроцессора Alpha 21164
Архитектура этого процессора максимально ориентирована па достижение
большой производительности за счет высокой тактовой частоты. По сравне-
нию с предыдущим поколением, в Alpha 2II64 вдвое увеличилось число ис-
полнительных устройств, а длина конвейера уменьшилась.
Четыре команды извлекаются одновременно из кэш-памяти команд объе-
мом 8 Кбайт и помещаются в один из двух буферов команд, каждый из ко-
торых в состоянии хранить четыре команды. Команды извлекаются из буфе-
ра в порядке, определяемом программой. Буфер должен быть полностью
освобожден прежде, чем начнется использование другого буфера. Это огра-
ничивает пропускную способность выборки команд, однако значительно
упрощает управление процессором.
Когда для команды готовы операнды (находятся в файле регистров или мо=
гут быть доступны на проходе между операционным устройством и регист-
ровым файлом), команда передается на исполнение в соответствующее
функциональное устройство. Для обеспечения правильного исполнения
прерываний процессор не меняет порядка исполнения команд: изменение
значений регистров происходит в порядке, предписанном программой.
За один такт процессор может исполнять до четырех команд: две с фикси-
рованной точкой, две с плавающей. Устройства целочисленных операций не
идентичны. Одно из них может выполнять сохранение, сдвиги и целочис-
ленное умножение, а другое — кроме общих целочисленный команд, обра-
батывает условные переходы. Устройства операций с плавающей точкой
также различаются. Устройство FPU+ выполняет конвейерное сложение,
простое сложение, деление и условные переходы с плавающей точкой, а
устройство FPUx — конвейерное и простое умножение. Alpha 21164 имеет
по 32 регистра для операций с фиксированной и плавающей точкой.
Как и в более ранних микропроцессорах Alpha, в Aplha 21164 интенсивно
используется конвейеризация. Первые 4 этапа выполнения команды явля-
ются общими для всех операций и выполняются в модуле инструкций. Это
предвыборка команды, переход, определение, проверка/подача команды.
Устройство целочисленных операций добавляет к обработке команд еще
3 этапа (выполнение 1, выполнение 2 и обратную запись), а устройство опе-
раций с плавающей точкой еще 5 этапов (доступ к регистрам с плавающей
точкой, выполнение операции с плавающей точкой 1, выполнение операции
с плавающей точкой 2, выполнение операции с плавающей точкой 3 и об-
ратную запись).
В микропроцессоре Aplha 21164, в отличие от предыдущих моделей, регист-
ры обновляются непосредственно. Не требуется сложный механизм отсле-
живания команд, обеспечивающий обновление регистров в нужном порядке.
Чтобы избежать потерь производительности из-за ожидания завершения
команд, Aplha 21164 предусматривает обходные пути, благодаря которым
операнды становятся доступными еще до завершения команды. Это анало-
гично методам посылки данных с упреждением, применяемым в других
микропроцессорах.
Помимо раздельных кэшей первого уровня со сквозной записью (write-
through), на кристалле выполнена общая множественно-ассоциативная кэш-
память второго уровня с обратной записью (write-back) емкостью 96 Кбайт.
На кристалле расположен также контроллер кэш-памяти третьего уровня,
позволяющий работать как в синхронном, так и в асинхронном режимах.
Для предсказания ветвлений используется таблица, связанная с кэш-
памятью команд. Для каждой команды в кэш-памяти имеется элемент таб-
лицы, содержащий историю ветвлений. В элементе таблицы используется
двухбитный счетчик. Предсказание осуществляется на глубину только од-
ного перехода. Если в потоке выполняемых предсказанных команд встреча-
ется новая команда перехода, то она не предсказывается, а процесс выпол-
нения приостанавливается до определения истинного направления перехода
для предыдущей команды ветвления.
Кэш-память первого уровня может поддерживать некоторое число необра-
ботанных промахов. Процессор имеет шестиэлементный файл адресов необ-
работанных промахов (MAF — Miss Address File), каждый элемент которого
содержит адрес и регистр для загрузки при промахе. Если адреса промаха
принадлежат одной строке кэш-памяти, то в MAF они рассматриваются как
один элемент. Это позволяет накапливать в MAF большее число промахов.
Использование иерархии кэш-памяти позволило увеличить интенсивность
подкачки команд и данных из внешней памяти. Внешняя 128-разрядная
шина данных процессора может работать с тактовой частотой, в 1 — 15 раз
меньшей частоты ядра.
В ноябре 1995 года был выпущен микропроцессор с тактовой частотой 333 МГц.
А в марте 1996 года, с переходом на технологию 0,35 мкм, были представлены
микропроцессоры Alpha 21164А с тактовыми частотами 366 и 400 МГц.
Дальнейшее развитие микропроцессоров семейства характеризуется увели-
чением тактовой частоты (в июле 1996 года выпушен Alpha 21164 с 500 МГц,
в марте 1997 года — 600 МГц), резким снижением (почти в 2 раза) цены на
процессоры, а также поиском путей адаптации архитектуры Alpha для ис-
пользования в Windows NT системах.
Микропроцессор Alpha 21164РС, выпушенный в марте 1997 года, был при-
зван обеспечить проникновение микропроцессоров DEC в настольные сис-
темы, создавая тем самым конкуренцию процессорам компании Intel. Со-
вместимость с системой команд х86 DEC обеспечивает с помощью
программного транслятора двоичного кода DIGITAL FX132. Отличиями
Alpha 21164РС являются внешняя кэш-память второго уровня, увеличенная
до 16 Кбайт кэш-память команд, наличие блока MVI (Motion Video
Instructions), который обеспечивает кодирование/декодирование в реальном
времени данных в соответствии со стандартом MPEG-2.
Микропроцессор Alpha 21164РС выпускается для частот 400, 466, 533 МГц и
имеет производительность SPECint95/SPECfp95 — 11/13, 12/15 и 14/17 соот-
ветственно.
В конце 1997 года был выпущен процессор на 600 МГц, производительность
которого 18,0 SPECint95 и 27,0 SPECfp95.
2.3.3. Микропроцессор Alpha 21264
В мае 1997 года компанией DEC был представлен микропроцессор нового
поколения — Alpha 21264, который значительно превосходил по производи-
тельности предыдущих представителей семейства. При тактовой частоте
500 МГц его индексы производительности SPECint95 и SPECfp95 составля-
ют 30 и 50 соответственно. Микропроцессор содержал 15,2 млн транзисто-
ров на кристалле площадью 310 мм2 и изготовляется по КМОП-технологии
с 6 слоями металлизации.
В отличие от предыдущих микропроцессоров семейства, наряду с высокой
тактовой частотой, в Alpha 21264 использовался сложный механизм динами-
ческого исполнения команд: динамическое планирование с изменением по-
следовательности команд, переименование регистров, спекулятивное вы-
полнение команд.
Выполнение команды микропроцессора включает следующую последова-
тельность циклов:
□ выборка команды с учетом предсказанного перехода;
□ передача данных для команды в устройство переименования (отображе-
ния) регистров;
□ выполнение переименования (отображения) регистров;
□ выбор команды из очередей на выполнение;
□ выполнение целочисленных команд или команд с плавающей точкой;
□ запись результатов выполнения.
Для динамического исполнения рассматриваются сразу 80 команд — боль-
ше, чем у любого другого процессора. После декодирования команда поме-
щается в одну из очередей: к устройствам с фиксированной или с плаваю-
щей точкой. Команды, получившие все операнды, конкурируют за доступ к
исполнительным устройствам. Больший приоритет имеют команды, которые
дольше находятся в очереди. Одновременно может выполняться до 6 ко-
манд.
Структура микропроцессора Alpha 21264 показана на рис. 2.24.
Рис. 2.24. Структура микропроцессора Alpha 21264
Процессор содержит два блока операций с плавающей точкой, выполняю-
щих сложение, умножение, деление, извлечение квадратного корня, а также
четыре целочисленных устройства: два общего назначения и два адресных.
Последние, наряду с простыми арифметическими и логическими операция-
ми, выполняют все команды загрузки и сохранения как для целочисленных
данных, так и для данных в формате с плавающей точкой. Целочисленные
АЛУ общего назначения выполняют арифметические и логические опера-
ции, сдвиги и переходы. Одно из целочисленных АЛУ выполняет также
умножение, а другое — мультимедийный набор команд. Для динамическо-
го переименования доступны 41 из 80 целочисленных регистров и 41 из
72 регистров с плавающей точкой.
Микропроцессор не содержит кэш-памяти второго уровня, однако размеры
его кэшей данных и команд первого уровня увеличены до 64 Кбайт. На кри-
сталле расположены также контроллер кэш-памяти второго уровня и ин-
терфейс с системной шиной, обеспечивающие пропускную способность
5,3 Гбайт/с при обмене с кэш-памятыо и 2,6 Гбайт/с при обмене с основной
памятью.
DEC планировала применять новый микропроцессор не только в UNIX-
системах, но и в системах с 64-разрядной Windows NT и Windows 95 (с ис-
пользованием транслятора двоичного кода DIGITAL FX132).
На рис. 2.25 показано развитие микропроцессорных семейств компаний
DEC (Alpha) и Intel (Р5, Р6, Р7).
Рис. 2.25. Сравнение производительности
микропроцессорных семейств компаний DEC и Intel
2.3.4. Микропроцессор Alpha 21364
Новый микропроцессор компании Hewlett-Packard (в 1998 году компания
DEC, разработчик архитектуры микропроцессоров Alpha, была куплена
Compaq, которая в свою очередь влилась в Hewlett-Packard) был выпущен в
конце 2002 года.
Процессор содержит то же самое ядро, что и Alpha 21264, однако имеет ряд
существенных дополнений. В отличие от предыдущего процессора, на кри-
сталле размещена 6-входовая множественно-ассоциативная кэш-память вто-
рого уровня объемом 1,75 Мбайт, восьмиканальный контроллер динамиче-
ской памяти Direct Rambus и сетевой интерфейс. Скорость обмена
микропроцессора с памятью составляет 12,8 Гбайт/с. Обмен данными между
кэш-памятыо первого и второго уровней, кэш-памятыо второго уровня и
оперативной памятью буферизирован (по 16 буферов для каждого уровня
памяти).
Упрощенная структурная схема микропроцессора приведена на рис. 2.26.
Рис. 2.26. Структурная схема микропроцессора Alpha 21364
Интеграция компонентов в одном кристалле позволяет существенно упро-
стить и удешевить системы, реализуемые на основе данного микропроцес-
сора. Благодаря встроенному сетевому интерфейсу упрощается объединение
микропроцессоров в высокопроизводительные мультипроцессорные систе-
мы. Сетевой интерфейс поддерживает 4 линка со скоростью передачи дан-
ных 6,4 Гбайт/с каждый, обеспечивающие межпроцессорное соединения
типа "точка-точка". Задержка обменных операций через линк составляет
15 нс. Сетевой интерфейс обеспечивает когерентность кэш-памяти в муль-
типроцессорной системе, реализует асинхронный обмен данными с адап-
тивной маршрутизацией.
Пример структуры мультипроцессорной системы на основе микропроцессо-
ров Alpha 21364 представлен на рис. 2.27.
Процессор имеет также пятый порт ввода/вывода со скоростью обмена
3 Гбайт/с. Этот порт может использоваться для подключения коммутато-
ра [90].
Рис 2.27. Структура мультипроцессорной системы
на базе микропроцессоров Alpha 21364
Микропроцессор Alpha 21364 производится по технологии 0,18 мкм с 6
слоями медных соединений для тактовой частоты 1,2 ГГц. Потребление
энергии микропроцессором составляет 125 Вт. На кристалле площадью 397
мм2 расположены 152 млн транзисторов (из них 138 млн — кэш-память). На
тестах SPEC 2000 микропроцессор показывает производительность 804
SPECint2000 и 1253 SPECfp2000.
В дальнейших планах Compaq значился выпуск нового мультитредового
микропроцессора Alpha 21464 по технологии 0,13 мкм, однако впоследствии
компания полностью переключилась на поддержку разработки IA-64 и объ-
явила о намерении прекратить разработку и использование процессоров
Alpha к 2004 году. Все работы процессорного подразделения компании
предполагается свернуть в течение двух лет. Ключевые программные инст-
рументы и процессорные технологии передадут фирме Intel. Семейства 64-
разрядных Alpha- (и MIPS-) серверов Compaq будут переделаны под микро-
процессоры IA-64.
2.4. Микропроцессоры
с архитектурой SPARC
Семейство микропроцессоров с архитектурой SPARC включает 32-разряд-
ные микропроцессоры MicroSPARC, SuperSPARC, HiperSPARC и 64-разряд-
ный микропроцессор UltraSPARC. Основной областью применения SPARC-
процессоров являются высокопроизводительные рабочие станции, серверы
и суперкомпьютеры.
В данном разделе будут рассмотрены представители 32-разрядного семейст-
ва SuperSPARC и 64-разрядные UltraSPARC.
2.4.1. Архитектура SPARC
Архитектура SPARC была создана компанией Sun Microsystems в 1985 году.
В ее основу были заложены результаты работ RISC I и RISC II, проводив-
шихся в Калифорнийском университете в Беркли с 1980 по 1982 годы.
В частности, в архитектуру SPARC вошла предложенная в Беркли концеп-
ция "регистровых окон”, упрощающая создание однопроходных компилято-
ров и существенно снижающая количество команд обращения к памяти по
сравнению с другими реализациями RISC-архитектуры.
Основными чертами архитектуры SPARC являются:
□ поддержка линейного 32-разрядного адресного пространства;
□ использование 32-разрядных команд фиксированной структуры с тремя
базовыми форматами;
□ реализация доступа к памяти и ввода/вывода посредством команд загруз-
ки/сохранения;
□ небольшое количество способов адресации. Адрес вычисляется либо как
"регистр + регистр", либо как "регистр + непосредственный операнд";
О использование трехадресных регистровых команд. Большая часть команд
выполняется над двумя операндами, результат помешается в регистр-
приемник;
□ большой регистровый файл с регистровыми окнами. В каждый момент
времени программе доступно 8 глобальных целочисленных регистров и
регистровое окно (24 регистра), отображаемое на регистровый файл. Ис-
пользование регистровых окон позволяет значительно сократить наклад-
ные расходы, связанные с переключением контекста при выполнении
параллельных процессов;
□ отдельный регистровый файл вещественных регистров. Данный файл
может интерпретироваться в программах как набор из 32 регистров
обычной точности (32-разрядных), или 16 регистров двойной точности
(64-разрядных), или 8 регистров учетверенной точности (128-разрядных),
или как смесь регистров различной разрядности;
□ отложенная передача управления. Процессор всегда выбирает команду,
следующую за командой отложенной передачи управления. Эта команда
может быть выполнена или не выполнена, в зависимости от состояния
"аннулирующего" разряда в команде передачи управления;
□ быстрые обработчики прерываний. Генерация прерывания приводит к
формированию в регистровом файле нового регистрового окна;
□ тегированные команды. Тегированные арифметические команды интерпре-
тируют два младших значащих разряда операндов (теги) как информацию
о типах операндов. Эти команды устанавливают бит переполнения в реги-
стре состояния при арифметическом переполнении или в случае, когда
какой-либо из теговых битов операндов не равен нулю. Есть варианты
команд, которые при указанных условиях вырабатывают прерывание;
□ команды межпроцессорной синхронизации — одна команда выполняет
непрерываемую операцию "чтения с последующей записью"; другая коман-
да выполняет непрерываемый "обмен содержимого регистра и памяти";
□ поддержка сопроцессора. Архитектура определяет простой набор команд
сопроцессора, который может использоваться наряду с АЛУ;
□ важнейшей чертой архитектуры SPARC является двоичная совместимость
программ пользователей на всех реализациях SPARC: готовые програм-
мы, выполняемые в пользовательском режиме, должны вести себя со-
вершенно одинаково на всех SPARC-системах.
Рассмотрим описание основных компонентов микропроцессорной архитек-
туры SPARC v8.
2.4.2. Процессор SPARC
Процессор SPARC (91] содержит: целочисленное устройство (Ш — Integer
Unit), устройство вычислений в формате с плавающей точкой (FPU —
Floating-point unit) и (опционно) сопроцессор (СР — Coprocessor). Каждое
устройство имеет собственный набор регистров. Все регистры функцио-
нальных устройств имеют фиксированную длину 32 разряда. Исключения из
этого правила возможны только для сопроцессора, они определяются его
конкретной реализацией. В качестве операндов при выполнении операций в
общем случае используются отдельные регистры, регистровые пары и чет-
верки регистров.
Процессор может работать попеременно в одном из двух режимов; пользо-
вательском и привилегированном. В привилегированном режиме процессор
выполняет все команды, включая привилегированные (исполняемые только
в данном режиме). В пользовательском режиме попытка выполнения при-
вилегированных команд вызывает прерывание с передачей управления спе-
циальной системной программе. Прикладные программы пользователя ис-
полняются только в пользовательском режиме.
Устройство целочисленных операций содержит набор регистров общего на-
значения (r-регистров) и счетчик команд. IU выполняет операции целочис-
ленной арифметики, вычисляет адреса памяти, а также управляет работой
FPU и СР.
Конкретная аппаратная реализация целочисленного устройства может со-
держать от 40 до 520 32-разрядных регистров общего назначения. Регистро-
вый файл целочисленного устройства разбит на группы из восьми глобаль-
ных r-регистров и циклического стека, содержащего от 2-х до 32-х наборов
по 16 регистров в каждом (регистровых окон).
В каждый момент времени исполняемой программе доступны восемь гло-
бальных регистров и регистровое окно размером в 24 регистра.
Регистры окна разбиты на три группы: восемь входных регистров, восемь
локальных и восемь выходных регистров, которые в то же время являются
входными регистрами смежного окна (т. е. соседние окна перекрываются на
8 регистров). Текущее окно задается полем указателя текущего окна в слове
состояния процессора.
При обращении к памяти адрес дополняется идентификатором адресного
пространства (ASI — Address Space Identifier), который содержит информа-
цию о режиме работы процессора (пользовательский или привилегирован-
ный), а также о том, к какой памяти (команд или данных) осуществляется
обращение.
Архитектура SPARC допускает возможность разделения памяти (и/или кэш-
памяти) данных и команд (гарвардская архитектура). Если программа моди-
фицирует команды, то должна быть выполнена команда сброса (FLUSH)
для адресов, в которые были записаны новые команды.
Устройство вычислений в формате с плавающей точкой содержит 32 32-
разрядных регистра (f-регистры) для хранения вещественных данных. Дан-
ные в формате с плавающей точкой удвоенной точности занимают пару
регистров с четным и нечетным номерами. Данные учетверенной точности
(128 разрядов) занимают группу из четырех смежных регистров. Таким обра-
зом, регистровый файл f-регистров может в пределе хранить 32 веществен-
ных числа одинарной точности, либо 16 чисел двойной точности, либо
8 чисел учетверенной точности.
Для передачи данных между f-регистрами и памятью используются команды
загрузки/сохранения данных в формате с плавающей точкой. Адреса памяти
формируются устройством целочисленных операций.
Система команд SPARC допускает подключение одного сопроцессора. Со-
процессор имеет свой собственный набор 32-разрядных регистров, количе-
ство которых определяется конкретной реализацией. Обмен с памятью вы-
полняется с помощью команд загрузки/сохранения сопроцессора.
Форматы данных
Архитектура SPARC поддерживает три основных типа данных:
□ знаковое целое — 8, 16, 32 и 64 разрядов;
□ беззнаковое целое — 8, 16, 32 и 64 разрядов;
□ вещественное — 32, 64 и 128 разрядов.
Длина форматов:
□ байт — 8 разрядов;
□ полуслово — 16 разрядов;
□ слово (одинарное слово) — 32 разряда;
□ тегированное слово — 32 разряда, из них 30 разрядов — значение и 2
разряда — теги;
□ двойное слово — 64 разряда;
□ слово учетверенной точности — 128 разрядов.
Память
В архитектуре SPARC реализована стандартная модель памяти, имеющая
название Полного упорядочивания обращений (TSO — Total Store Ordering).
Модель применима как к однопроцессорным, так и к многопроцессорным
системам с общей памятью. Реализация данной модели дает гарантию, что
все команды записи, сброса и непрерываемые команды чтения/записи на
всех процессорах отрабатываются памятью сериями в том порядке, в кото-
ром они завершаются процессором. Архитектурой поддерживается также
дополнительная модель памяти, называемая моделью Частичного упорядо-
чивания обращений (PSO — Partial Store Ordering), которая в ряде случаев
позволяет повысить производительность строящихся на ее основе систем.
Выбор модели памяти определяется разработчиком конкретной системы.
Ввод и вывод
Архитектура SPARC позволяет подключать целый спектр устройств ввода/
вывода, устройство управления памятью и подсистемы ассоциативной памяти.
Архитектура SPARC предполагает, что доступ к регистрам ввода/вывода
осуществляется посредством команд чтения/записи в альтернативном ад-
ресном пространстве, обычных команд чтения/записи, команд сопроцессора
или команд чтения/записи вспомогательных регистров состояния. В случае
использования команд чтения/записи в альтернативном адресном простран-
стве обращение к регистрам ввода/вывода возможно только в привилегиро-
ванном режиме. Если для доступа используются сопроцессорные команды,
то возможность доступа вне привилегированного режима определяется кон-
кретной реализацией. Содержимое и адреса регистров ввода/вывода опреде-
ляются конкретной реализацией.
Обработка прерываний
Исключительная ситуация, вызванная запросом прерывания (внешнего или
программного), приводит к фиксации событий. Под фиксацией события
(trap) понимается векторизованная передача управления операционной сис-
теме через специальную таблицу, каждый элемент которой содержит четыре
первых команды обработчика фиксируемого события. Базовый адрес табли-
цы устанавливается программно в регистре состояния устройства целочис-
ленных операций (регистр базы вектора прерываний). Смещение внутри
таблицы задается для каждого фиксируемого события номером типа этого
события. Половина таблицы фиксации событий зарезервирована для фикса-
ции событий, связанных с работой аппаратуры, оставшаяся половина пред-
назначена для фиксации событий, инициируемых программно, командами
генерации событий.
Перед выполнением каждой команды целочисленное устройство проверяет
наличие ожидающих обработки исключительных ситуаций и запросов на
прерывание. Если таковые существуют, то целочисленное устройство выби-
рает из них то, которое имеет наивысший приоритет, и осуществляет соот-
ветствующую ему фиксацию события.
Фиксация события вызывает переключение указателя текущего окна на сле-
дующее регистровое окно и аппаратную запись регистров номера команды
(номера текущей и номера следующей команды) в два регистра нового окна.
Для обработчика фиксируемого события возможен доступ к сохраненным
регистрам и к шести другим локальным регистрам нового окна.
14.3. Реализация архитектуры SPARC
Являясь разработчиком микропроцессорной архитектуры SPARC, компания
Sun предоставляет лицензии на производство микропроцессоров с данной
архитектурой в соответствии с ее спецификацией. Производством микро-
процессоров с этой архитектурой занимаются ряд компаний — производи-
телей микроэлектроники, к числу которых относятся Texas Instruments,
Fujitsu, LSI Logic, Philips, Cypress Semiconductor и др.
Рис. 2.28. Структура микропроцессора SuperSPARC
Первый процессор SPARC был изготовлен в 1986 году компанией Fujitsu.
Этот процессор работал на тактовой частоте 16,67 МГц и использовался для
производства в 1987 году первой рабочей станции Sun-4, имевшей произво-
дительность 10 MIPS (Million Instructions Per Second — миллион команд в
секунду).
В последующих микропроцессорных реализациях архитектуры SPARC раз-
личными производителями широко использовались принципы суперсакляр-
ной обработки, уменьшение технологических норм производства кристалла,
увеличивалась тактовая частота, благодаря чему удалось существенно повы-
сить быстродействие микропроцессора.
Наиболее распространенной реализацией 32-разрядной архитектуры SPARC
являлся микропроцессор SuperSPARC, произведенный компанией Texas
Instruments. Он стал основой для серии рабочих станций и серверов
SPARCstation/SPARCserver 10 и 20. Структура микропроцессора SuperSPARC
показана на рис. 2.28.
Суперскалярный процессор имел раздельные конвейеры целочисленной и
вещественной арифметики, содержал на кристалле раздельную кэш-память
первого уровня (20 Кбайт — кэш-память команд и 16 Кбайт — кэш-память
данных), обеспечивал выполнение до 3 команд за один такт и, при тактовой
частоте 75 МГц, обладал производительностью 205 MIPS.
2.4.4. Архитектура UltraSPARC (V9)
С выпуском нового поколения микропроцессоров значительно улучшились
возможности SPARC-систем по обработке графики и видеоизображений.
UltraSPARC (92] представляет собой один из первых процессоров общего
назначения, в котором эти функции реализованы аппаратно. Он имеет спе-
циальный модуль для обработки видеоданных и графики, представленной в
RGB- и альфа-формате. Функции обработки видеоизображений могут рабо-
тать сразу с 8 элементами изображения. Обработка изображений выполняется
в блоке FPU, который обычно выполняет операции над 64-битными дан-
ными с плавающей точкой.
В систему команд микропроцессора включен набор команд (VIS — Visual
Instruction Set), позволяющий загружать и обрабатывать данные в виде 64-
битных блоков. VIS насчитывает 30 команд для эффективной обработки
мультимедиа, графики, изображений и других алгоритмов, ориентированных
на целочисленную обработку. Набор VIS содержит команды сложения, ум-
ножения и вычитания, позволяющие параллельно выполнять за один такт
до 8 целочисленных операций над байтами или полусловами.
При реализации алгоритма компрессии-декомпрессии MPEG большая часть
времени приходится на ту часть алгоритма, которая анализирует движение и
сравнивает каждую часть текущего кадра с предыдущим. Благодаря наличию
специальных команд в UltraSPARC эти действия выполняются как одна
графическая операция. Специальная подсистема памяти автоматически за-
гружает элемент изображения в 8-байтные блоки. Для этого не требуется
выполнения отдельной команды. Конвейеризация этих специальных команд
позволяет микропроцессору выполнять одну операцию за такт. Использова-
ние таких специализированных команд обеспечивает 80-кратное повышение
скорости выполнения обработки изображений по сравнению с другими
SPARC-процессорами.
UltraSPARC имеет также несколько специальных средств, улучшающих
его работу с памятью. Самым крупным изменением является новая команда
перемещения блока данных по шине "процессор-память" со скоростью
600 Мбайт/с. Это позволяет основному процессору системы работать как
видеопроцессор, обмениваясь данными с видеопамятью. Операции переме-
щения блоков памяти дают выигрыш и в других приложениях, например, в
сетевом программном обеспечении.
Были выпущены следующие варианты микропроцессоров с 64-разрядной
архитектурой SPARC: UltraSPARC, UltraSPARC II и UltraSPARC III.
Структура микропроцессора UltraSPARC показана на рис. 2.29.
UltraSPARC оснащен кэш-памятью данных и команд по 16 Кбайт каждая.
Обе имеют собственный буфер трансляции адресов TLB (Translation Look-
aside Buffer). UltraSPARC содержит встроенный контроллер кэш-памяти
второго уровня. Выборка команд тесно интегрирована с кэш-памятью ко-
манд первого уровня. Команды сохраняются в кэш-памяти и для ускорения
обработки предварительно декодируются. Каждые 2 инструкции в кэш-
памяти ассоциируются с 2 битами, которые используются для предсказания
переходов, 2 бита позволяют отслеживать 4 различных состояния, кодирую-
щих последние 2 перехода, выполняемых по этим командам. Механизм
предвыборки использует эти биты для динамического упреждения перехо-
дов. UltraSPARC способен предсказывать переход с вероятностью 0,88 на
тесте SPECint92 и с вероятностью 0,94 на тесте SPECfp92.
Обрабатывающий конвейер UltraSPARC имеет 9 стадий и позволяет выпол-
нять до 4 команд за один такт. Первые две стадии стандартные — это вы-
борка и декодирование команд. На третьей стадии группируются все коман-
ды, которые можно передать исполнительному блоку.
Микропроцессор не изменяет порядка выполнения команд. Задача плани-
рования загрузки исполнительных блоков решается статически, на этапе
компиляции. В каждом такте могут выбираться на выполнение 2 целочис-
ленные команды, 2 команды с плавающей точкой или графические коман-
ды, одна команда загрузки/сохранения или одна команда перехода. Таким
образом, при 6 возможных командах одновременно могут выполняться лишь
4. На этой же стадии происходит получение информации из регистров.
Рис, 2,29, Структура микропроцессора UltraSPARC
После выбора команды конвейер разделяется на 3 части. Одна ветвь обраба-
тывает целочисленные команды и команды работы с памятью, а другая —
команды с плавающей точкой и графические команды. Команды с плаваю-
щей точкой передаются в трехэтапный конвейер, который выполняет всю
обработку, кроме деления с плавающей точкой и вычисления квадратного
корня. Эти функции выполняет отдельный блок. Хотя микропроцессор по-
дает команды поочередно, результаты не обязательно выдаются в том же
порядке.
Базовые целочисленные команды выполняются за 1 такт. Другие, такие как
целочисленное умножение и деление, могут иметь переменную длитель-
ность. На остальных стадиях целочисленного конвейера выполняется за-
грузка/сохранение.
Для обеспечения высокой пропускной способности UltraSPARC использует
иерархию шин. 128-разрядная шина памяти работает с тактовой частотой
процессорного ядра. Для обмена с периферийными устройствами использу-
ется шина SBus. Интерфейс с этой шиной реализован на аппаратном уровне
с помощью микросхемы коммутации магистрали, входящей в набор микро-
схем процессора. Микросхема коммутации позволяет изолировать шину па-
мяти от шины ввода/вывода и выполнять операции чтения из памяти одно-
временно с вводом/выводом на периферийные устройства. В результате
достигается высокий коэффициент использования шины и пропускная спо-
собность 1,3 Гбит/с.
Производительность микропроцессора UltraSPARC с частотой 167 МГц на
тестах SPECint95 и SPECfp95 составляет 5,6 и 9,1 соответственно.
Как и в SuperSPARC, в UltraSPARC используется концепция регистровых
окон. Вместо 32 базовых регистров эти микропроцессоры предоставляют
приложениям 8 перекрывающихся регистровых окон, по 24 регистра каждое.
С началом новой процедуры или ветви обработки не требуется сохранять
текущее окно, новый процесс будет использовать новое окно регистров.
В UltraSPARC II добавлен дополнительный механизм, благодаря которому
при каждом прерывании становится доступным новое окно из 8 регистров.
Производительность микропроцессора UltraSPARC II с частотой 250 МГц
составляет 8,5 SPECint 95 и 15 SPECfp 95.
UltraSPARC III [93] — представитель третьего поколения микропроцессоров
компании Sun Microsystems с архитектурой V9. Данный микропроцессор
предназначен для использования в широком диапазоне вычислительных
систем — от рабочих станций — до высокопроизводительных серверов и
суперкомпьютеров.
В отличие от предыдущих поколений микропроцессоров семейства SPARC,
требующих учета их архитектурных особенностей на уровне операционной
системы (ОС), данный микропроцессор совместим со всеми ОС и приложе-
ниями, созданными для SPARC-процессоров.
Как и в предыдущих поколениях микропроцессоров, в UltraSPARC III ис-
пользуется предсказание переходов, статическое выявление параллелизма
уровня команд (ILP — Instruction Level Parallelism) на этапе компиляции и
регистровые окна. Выполнение команд осуществляется в 14-этапном кон-
вейере.
В микропроцессоре используется разнесение архитектурных и рабочих реги-
стров. Результаты неупорядоченно выполненных операций записываются в
рабочие регистры и, в случае необходимости, могут быть отменены (вос-
становлены из архитектурных регистров) или сохранены (переписаны в ар-
хитектурные регистры).
Архитектура микропроцессора UltraSPARC III показана на рис. 2.30.
Рис. 2.30. Архитектура микропроцессора UltraSPARC III
Микропроцессор содержит 6 основных функциональных блоков.
Устройство выдачи команд (IIU — Instruction Issue Unit) осуществляет пред-
сказание переходов и выбирает команды для их последующего исполнения с
учетом предсказанного пути. Выбранные команды помещаются в очередь к
двум исполнительным устройствам: целочисленному и с плавающей точкой.
I1U содержит 4-входовый ассоциативный кэш команд размером 32 Кбайт,
буфер трансляции адресов команд и таблицу предсказания переходов на
16 Кбайт входов.
Устройство целочисленных команд (IEU — Integer Executive Unit) выполня-
ет все виды обработки данных целого типа: загружает и сохраняет данные,
выполняет арифметические и логические операции, операции сдвига и пе-
реходы. Наличие четрых независимых путей подачи данных позволяет за
один цикл выполнять до четырех целочисленных команд.
Устройство вычислений с плавающей точкой (FPU — Floating Point Unit)
выполняет все команды над данными с плавающей точкой и некоторые це-
лочисленные команды (графические из VIS-расширения системы команд
SPARC). FPU может одновременно выполнять до 3 команд.
Совместно целочисленное устройство и устройство с плавающей точкой
могут одновременно выполнять до б команд за один такт.
Устройство кэш-памяти данных (DCU — Data Cache Unit) содержит буфер
трансляции адресов данных и три кэш-памяти: кэш данных первого уровня
(64 Кбайт), кэш предвыборки данных (2 Кбайт) и кэш записи данных
(2 Кбайт). Запросы на запись данных в основную память помещаются в
очередь в DCU, а затем — в кэш записи данных.
Устройство внешней памяти управляет внешней кэш-памятью данных вто-
рого уровня и основной памятью типа SDRAM. Контроллер кэш-памяти
второго уровня содержит 90 Кбайт памяти тегов внешнего кэша. Контрол-
лер основной памяти поддерживает до 4 банков памяти общим объемом до
4 Гбайт.
Устройство системного интерфейса обеспечивает взаимодействие с внешней
памятью, устройствами ввода/вывода и другими процессорами. Устройство
может неупорядоченно обрабатывать до 15 ожидающих выполнения тран-
закций. Для использования микропроцессора в мультипроцессорных систе-
мах в UltraSPARC III предусмотрена аппаратная поддержка когерентности
модулей памяти.
Благодаря многоуровневой системе кэширования и широкому интерфейсу к
памяти (128 бит) скорость обмена процессор/память составляет 2,4 Гбайт/с.
и 60 SPECfp95. UltraSPARC III UltraSPARC III выпускается для тактовых
частот от 600 МГц до 1 ГГц. Производительность микропроцессора с частотой
600 МГц составляет 35 SPECint95 изготовляется по технологии КМОП 0,25 мкм
с 6 слоями металлизации и содержит 16 млн транзисторов (12 млн — па-
мять, 4 млн — логика) на кристалле площадью 360 мм2. Энергопотребление
микропроцессора составляет около 70 Вт. В дальнейшем Sun планирует пе-
рейти на выпуск микропроцессора по технологии 0,18 мкм.
2.5. Микропроцессоры
с архитектурой MAJC
Микропроцессоры с архитектурой MAJC [94, 95|, разработанной компанией
Sun, предназначены для использования в системах обработки мультимедий-
ных данных и выполнения Internet-приложений.
Компания Sun возлагает большие надежды на эту архитектуру и считает, что
архитектура MAJC будет определять путь развития микропроцессоров на
ближайшие 20 лет, как в свое время архитектура SPARC.
Первый микропроцессор с данной архитектурой — MAJC 5200 — был вы-
пущен в середине 2000 года. MAJC 5200 представляет собой два 128-
разрядных VLIW (Very-Long instruction Word) микропроцессорных ядра, ин-
тегрированных. на одном кристалле.
В микропроцессоре реализовано 4 уровня параллелизма:
□ мультипроцессорная структура кристалла;
□ мультитредовое выполнение программы;
□ VLIW-параллелизм на уровне команд;
□ SIMD-обработка данных.
Система команд RISC-процессоров ориентирована на поточную обработку
мультимедийной информации и аппаратную поддержку высокоуровневых
конструкций языка Java. Само название MAJC образовано от "Microprocessor
Architecture for Java Computing" — микропроцессорная архитектура для вы-
числений на Java.
Архитектура MAJC является масштабируемой. На одном кристалле MAJC мо-
жет располагаться несколько идентичных процессоров (в зависимости от кон-
кретной реализации), каждый из которых содержит от I до 4 функциональных
блоков — RISC-процессоров и кэш команд. Каждый из расположенных на
кристалле процессоров может выполнять до 4 команд за один такт.
Структура микропроцессора MAJC 5200 показана на рис. 2.31.
Помимо функциональных блоков (ФБ) и кэшей команд (16 Кбайт) на кри-
сталле расположены: общий для RISC-процессоров кэш данных (16 Кбайт),
контроллер PCI, контроллер Rambus-памяти, графический препроцессор,
64-разрядные высокоскоростные интерфейсы для межпроцессорных соеди-
нений и подключения графической подсистемы, а также коммутатор, объе-
диняющий RISC-процессоры и остальные компоненты кристалла.
Командное слово MAJC объединяет от одной до четырех 32-разрядных
команд, каждая из' которых предназначена для одного из 4 RISC-
процессоров. В том случае, когда не представляется возможным одновре-
менно задействовать все 4 RISC-процессора, отдельные команды могут от-
Каждый RISC-процессор содержит файл локальных регистров, логику
управления (декодирования команд) и регистры состояния. Имеются также
глобальные регистры, доступные для всех RISC-процессоров.
Реализованная в микропроцессоре аппаратная поддержка мультитредового
выполнения программы предусматривает возможность одновременного вы-
полнения до 4 потоков команд.
Производительность микропроцессора MAJC с тактовой частотой 500 МГЦ
составляет:
□ на целочисленных операциях — 7 млрд/с для 32-разрядных данных и
13 млрд/с для 16-разрядных;
□ на операциях с плавающей точкой — 1,5 млрд/с для одинарной точности
и 6,16 млрд/с для двойной точности.
Дальнейшей модификацией этого процессора стал MAJC-5200+. Основные
различия этих микропроцессоров приведены в табл. 2.18.
Таблица 2.18. Технологические характеристики микропроцессоров MAJC
Микропроцессор MAJC-5200 MAJC-5200+
Технология производства 0,22 мкм, 6 уровней медных соединений 0,18 мкм, 7 уровней медных соединений
Тактовая частота 500 МГц 500 МГц 700 МГц
Потребляемая мощность 15 Вт 10 Вт 15 Вт
Напряжение питания 1,8 В 1,5 В
Площадь кристалла 220 мм2 130 мм2
2.6. Микропроцессоры
с архитектурой РА
Компания Hewlett-Packard (HP) была одной из первых компаний, вышед-
ших на рынок RISC-процессоров. Ее 32-разрядный микропроцессор РА-
RISC с архитектурой Precision Architecture был выпущен еще в 1986 году.
Последовательно развивая принципы RISC архитектуры, в 1996 году HP вы-
пустила микропроцессор РА-8000, в котором в полной мере воплощены ос-
новные принципы динамического исполнения команд ("интеллектуального
выполнения" — в терминах Hewlett-Packard) [96—99].
Процессор изготовлялся по технологии КМОП 0,5 мкм и имел производи-
тельность 11,8 SPECint95 и 20,2 SPECfp95 на тактовой частоте 180 МГц.
Структура микропроцессора РА-8000 показана на рис. 2.32.
Рис. 2.32. Структура микропроцессора РА-8000
РА-8000 имеет 64-разрядную четырехконвейерную архитектуру с изменени-
ем последовательности выполняемых команд. Процессор содержит 10 функ-
циональных устройств: два целочисленных АЛУ, два целочисленных устрой-
ства сдвига/объединения, два устройства умножения/накопления (МАС —
Multiplication Accumulation) с плавающей точкой, два устройства деле-
ния/извлечения корня и два устройства загрузки/сохранения. Устройства
умножения/накопления конвейеризированы и выполняют обработку данных
с одинарной точностью за 3 такта. Операция деления не конвейеризируется
и требует 17 тактов.
В РА-8000 используется буфер переупорядочи ван ия команд (IRB — Instruc-
tion Reordering Buffer), просматривающий следующие 56 команд в потоке
инструкций и определяющий, какие из них можно выполнять параллельно.
Фактически 1RB состоит из двух блоков на 28 команд каждый. Блок АЛУ
содержит команды для устройства целочисленной арифметики, а другой —
блок используется для команд устройства операций с плавающей точкой и
команд загрузки/сохранения.
Команда, помещенная в IRB, ожидает готовности данных, являющихся ре-
зультатом предыдущих команд, и выбирается на выполнение (в порядке
очередности) как только все требуемые данные получены и необходимое
исполнительное устройство освободилось. Каждый из блоков 1RB позволяет
планировать выдачу двух команд за такт (итого до четырех команд за такт).
Для устранения зависимостей между командами по данным используется
переименование регистров.
В микропроцессоре реализован алгоритм предсказания переходов, осно-
ванный на мажоритарном принципе оценки предыстории для каждой точ-
ки ветвления. Для предсказания используется таблица истории ветвлений
ВНТ (Branch History Table), содержащая до 256 3-битных записей, по од-
ной для каждой точки ветвления. Вероятность правильного предсказания
составляет 0,8.
Hewlett-Packard спроектировала РА-8000 специально для научных и инже-
нерных расчетов, размер интенсивно используемых данных в которых может
быть велик. В этой связи возникает необходимость использования больших
объемов кэш-памяти команд и данных. РА-8000 использует внешние основ-
ные типы кэш-памяти данных и команд объемом до 4 Мбайт, а также буфер
переупорядочивания адресов (ARB — Address Reordering Buffer), отслежи-
вающий все команды загрузки/сохранения, что позволяет сократить задерж-
ку, связанную с адресацией внешней кэш-памяти. Более медленный доступ
к данным во внешнем кэше для РА-8000 компенсируется его большим объ-
емом и эффективным управлением обменом с кэш-памятью (используются
высокоскоростные линии управления кэшем и предвыборки команд и дан-
ных из основной памяти в кэш-память).
Разработка следующего микропроцессора семейства — РА-8200 — преследо-
вала цель повышения производительности при внесении минимальных кон-
структивных изменений. К числу основных отличий относятся:
□ увеличение таблицы ВНТ с 256 до 1024 битовых записей и учет наличия
нескольких ветвей вычисления в одном цикле позволили повысить точ-
ность предсказания переходов;
□ увеличение размера TLB с 96 до 120 элементов позволило снизить часто-
ту промахов при обращении к кэш-памяти;
□ увеличение частоты работы микропроцессора до 220 МГц;
□ увеличение максимального размера кэш-памяти команд и данных до
2 Мбайт;
□ использование технологии производства КМОП 0,35 мкм.
Все внесенные изменения не отразились на электрической и программной
совместимости с предыдущими микропроцессорами семейства. Производи-
тельность же микропроцессора составила 15.5 SPECint95 и 25 SPECfp95, что
на 35% превышает производительность РА-8000.
Устранить недостаток, связанный с удорожанием системы при использова-
нии внешней основной кэш-памяти, Hewlett-Packard удалось в новом мик-
ропроцессоре РА-8500, производимом по технологии 0,25 мкм. Высокая
плотность упаковки позволила разместить на кристалле кэш-память первого
уровня размером 1 Мбайт для данных и 0,5 Мбайт для команд. РА-8500 со-
держит 140 млн транзисторов и имеет производительность 26,0 SPECinl95,
28,1 SPECfp95 на частоте 360 МГц. Были выпущены также версии микро-
процессора для тактовых частот 360. 440 и 500 МГц.
Следующим микропроцессором семейства стал РА-8600, представленный
HP в конце 1999 гола. Этот микропроцессор является модернизированной
версией РА-8500. В микропроцессоре использованы новые алгоритмы рабо-
ты с кэш-памятью (алгоритм замещения квази-LRU (Least Recently Used
Removal — удаляются долго не используемые страницы памяти)). Для по-
вышения надежности кэш-память реализована с механизмом обнаружения и
исправления ошибок. Улучшен алгоритм предсказания переходов. Супер-
скалярнос устройство вычислений в формате с плавающей точкой позволяет
за один такт получать до 4 результатов, что обеспечивает производитель-
ность микропроцессора 2,2 Gflops на тактовой частоте 550 МГц.
В марте 2000 года был выпущен очередной микропроцессор семейства —
РА-8700. Новый микропроцессор изготавливается по 0,18-микронной
КМОП-технологии "кремний на изоляторе" (SOI — Silicon on Insulator) с
семислойными медными соединениями, что позволило разместить на кри-
сталле 2,25 Мбайт кэш-памяти первого уровня (кэш данных — 1,5 Мбайт,
кэш команд — 750 Кбайт), использовать пониженное напряжение питания и
повысить тактовую частоту до 800 МГц и выше. Производительность мик-
ропроцессора составила 3,2 млрд операций в секунду.
РА-8700 имеет 10 исполнительных устройств (2 устройства загрузки/сохра-
нения: 2 АЛУ, 2 устройства сдвига; устройства с плавающей точкой, 2 уст-
ройства умножения/сложения, 2 устройства деления/извлечения квадрат-
ного корня).
Использование 44-разрядной адресации (вместо 40-разрядной в предыдущих
моделях), позволяет процессору работать с физической памятью объемом до
16 Тбайт.
Последняя на сегодняшний день разработка компании HP — микропроцес-
сор РА-8800 (кодовое название Мако) — представляет собой двухпроцессор-
ную систему на основе модифицированного ядра РА-8700, выполненную на
одном кристалле и размещенную в одном картридже с кэш-памятыо второго
уровня объемом 32 Мбайт.
На кристалле площадью 366 мм2 размещается 300 млн транзисторов, 25 млн
из которых задействовано под логику, а остальные используются для реали-
зации кэш-памяти.
Системная шина Мако такая же, как в процессоре Intel McKinley: ширина
128 бит, частота 400 МГц, пропускная способность 6,4 Гбайт/с. Процессор
производится по 0,13 мкм технологии, с медными соединениями, изолятором
с низкой диэлектрической постоянной и изолированной подложкой (SOI).
Производительность микропроцессора на тактовой частоте 1 ГГц составляет
900 SPECint2000 и 1000 SPECfp2000 на частоте I ГГц.
В дальнейших планах HP предусматривается выпуск еще одного микропро-
цессора РА-8900, рассчитанного на тактовую частоту 1,2—1,3 ГГц, и совме-
стная с Intel работа над микропроцессорами с архитектурой IA-64.
2.7. Микропроцессоры
с архитектурой Power и PowerPC
Архитектура Power разрабатывается компанией IBM с конца 1980-х годов.
В ее основе лежат принципы RISC-архитектуры: фиксированный формат
команд, регистровые операции, однотактовое выполнение команд, простые
способы адресации, большой регистровый файл. В то же время, имеется не-
сколько существенных особенностей, отличающих данную архитектуру от
архитектур других RISC-процессоров. К ним относятся: независимый набор
регистров для каждого из исполнительных устройств; включение в систему
команд отдельных CISC-подобных инструкций (например, команды группо-
вой загрузки/сохранения, команды манипуляции битовыми полями, сме-
шанные команды умножения-сложения с плавающей точкой); отсутствие
механизма "задержанных переходов" (т. е. опережающее выполнение коман-
ды, следующей за командой условного перехода); оригинальный способ реа-
лизации условных переходов (наличие разряда условного выполнения в коде
операции каждой команды и нескольких регистров условий).
Основной областью применения микропроцессоров с архитектурой Power
являются высокопроизводительные серверы и суперкомпьютеры. Стремле-
ние разработчиков применить созданную архитектуру и в менее производи-
тельных, дешевых системах привело к появлению варианта архитектуры
Power для персональных компьютеров и рабочих станций начального уров-
ня. Эта архитектура получила название PowerPC [100].
Первый микропроцессор с данной архитектурой (PowerPC 601) появился в
1991 году в результате совместных усилий трех компаний: автора архитекту-
ры Power — IBM, одного из лидеров в производстве персональных компью-
теров — Apple и производителя микропроцессоров для компьютеров
Apple — Motorola.
В настоящее время архитектура PowerPC используется в микропроцессорах
IBM и Motorola, применяемых в контроллерах, телекоммуникационном
оборудовании, персональных компьютерах, серверах и рабочих станциях.
В то же время, IBM продолжает самостоятельно разрабатывать микропро-
цессоры с архитектурой Power, ориентированные на использование в высо-
копроизводительных мультипроцессорных системах.
В последних разработках Motorola и IBM новые архитектурные решения
сочетаются с прогрессивной технологией производства микросхем (медные
соединения, SOI), позволяющей уменьшить размер кристалла, снизить
энергопотребление и поднять тактовую частоту микропроцессоров. К наи-
более интересным разработкам последнего времени относятся микропроцес-
соры PowerPC, G3, G4, G5, PowerPC 970, Power 3, Power 4. Заслуживает
также подробного рассмотрения технология обработки мультимедийных
данных AlliVec, предложенная компанией Motorola.
2.7.1. Микропроцессор PowerPC 620
В 1995 году была анонсирована первая 64-разрядная реализация архитекту-
ры PowerPC — микропроцессор PowerPC 620 ]101]. Если предыдущие вер-
сии микропроцессоров PowerPC были ориентированы на персональные
компьютеры, то PowerPC 620 предназначался для рабочих станций и высо-
копроизводительных серверов.
При производстве процессора использовалась технология КМОП 0,5 мкм с
4 слоями металлизации. На кристалле площадью 311 мм2 размещается 7 млн
транзисторов. PowerPC 620 имеет рабочее напряжение 3,3 В и потребляет не
более 30 Вт.
Структура микропроцессора показана на рис. 2.33.
Рис. 2.33. Структура микропроцессора PowerPC 620
PowerPC 620 имеет четырехконвейерную суперскалярную архитектуру с ше-
стью исполнительными блоками: 3 целочисленных АЛУ, блоком операций с
плавающей точкой, блоком загрузки/сохранения и блоком переходов. За
один такт процессор может выполнять до 4 команд.
Для обеспечения эффективной загрузки исполнительных блоков в процес-
соре применяется динамическое предсказание переходов совместно со спе-
кулятивным выполнением команд на глубину до четырех предсказанных
ветвлений. Для предсказания переходов используется таблица предыстории
переходов ВНТ (Brahch History Table), в которой регистрируется результат
выполнения каждой команды ветвления. Команды и адреса переходов кэ-
шируются в кэш-памяти ВТАС (Branch-Target Address Cache). Вероятность
правильного предсказания переходов составляет 0,9.
В PowerPC 620 используется гарвардская архитектура с раздельной кэш-
памятью команд и данных, емкостью по 32 Кбайт. Каждый кэш имеет соб-
ственный блок управления памятью (MMU — Memory Management Unit) и
функционирует независимо от другого.
На кристалле процессора размещены схемы управления внешней кэш-
памятью второго уровня. Внешняя кэш-память может иметь объем до
128 Мбайт и работать с тактовой частотой процессора, с 1/2 или с 1/4 этой
частоты, что дает возможность гибкого выбора конфигурации памяти систе-
мы. Кэш данных реализует режим сквозной и обратной записи и протокол
MES1 (Modified, Exclusive, Shared, Invalid), обеспечивающий синхронизацию
кэшей в мультипроцессорных системах.
Перед тем как попасть во внутреннюю кэш-память, команды проходят этап
предварительного декодирования, необходимый для учета зависимостей ме-
жду командами при планировании их выполнения. Преддекодированные
команды хранятся в кэше команд до их выборки блоком планирования/
выполнения. Окончательное декодирование команд объединяется с этапом
планирования загрузки конвейеров микропроцессора, что позволяет сокра-
тить число этапов конвейера до 5 (выборка, декодированис/планирование,
выполнение, завершение и запись).
Процессор совместим по коду с более ранними версиями PowerPC, что по-
зволяло наряду с новыми специально разработанными 64-разрядными про-
граммами выполнять на нем 32-разрядные программы PowerPC. Процессор
может работать в 32- или 64-разрядном режиме, переключение между режи-
мами осуществляется программно. Уникальной особенностью микропроцес-
соров PowerPC является также программное переключение режимов адреса-
ции (Intel/Motorola). Это позволяет рабочей станции на базе PowerPC 620
выполнять код приложений разных операционных систем, обеспечивая при
этом высокую производительность.
На тактовой частоте 133 МГц производительность микропроцессора состав-
ляла 225 SPECint92 и 300 SPECfp92.
2.7.2. Технология AltiVec
В настоящее время многие производители расширяют функциональные
возможности выпускаемых ими микропроцессоров за счет введения специа-
лизированных блоков, например, для ускорения мультимедийных приложе-
ний. Такие блоки имеют микропроцессоры фирмы Intel (ММХ, SSE), AMD
(3DNow!), Sun (VIS), DEC (MVI).
Компания Motorola анонсировала технологию AltiVec |23, 102] для ускоре-
ния обработки мультимедийных данных в микропроцессорах с архитектурой
PowerPC. Технология предусматривает расширение архитектуры PowerPC
путем добавления 128-разрядного блока векторной обработки, функциони-
рующего параллельно с уже имеющимися блоками обработки целочислен-
ных и вещественных данных.
Структура PowerPC с блоком векторной обработки показана на рис. 2.34.
Устройство переходов
Команда Команда Команда
Устройство
векторных
операций
Устройство
целочисленных
операций
Устройство
операций с
плавающей точкой
Регистры общего
назначения
Регистры с
плавающей точкой
Векторные
регистры
Команда Адрес
команды
Адрес Данные
данных
Данные
Данные
Память
Рис. 2.34. Структура микропроцессора PowerPC
с блоком векторной обработки
AltiVec-технология предусматривает параллельную SIMD-обработку векто-
ров длиной 4, 8 или 16 элементов.
Блок векторной обработки позволяет выполнять до 16 операций за один
такт. При общей разрядности векторного блока 128 возможна обработка за
один такт:
В 16-ти 8-битных знаковых и беззнаковых целых и'символов;
О 8-ми 16-битных знаковых и беззнаковых целых;
□ 4-х 32-битных знаковых и беззнаковых целых и чисел с плавающей запя-
той.
AlliVcc-технология предусматривает для блока векторной обработки выде-
ленный регистровый файл из 32-х 128-битных регистров. Эти регистры ис-
пользуются для хранения исходных данных и результатов обработки в век-
торном блоке. Операции по загрузке этих регистров и сохранению в памяти
их содержимого выполняются специальными векторными командами.
Команды AltiVec векторного блока могут содержать до трех входных операн-
дов и один выходной. Каждый операнд является одним из 128-разрядных
регистров векторного блока. Имеются также команды формата "память-
регистр" и "регистр-непосредственный операнд". Общее число команд век-
торного блока = 162. Команды разбиты на несколько классов.
Локальные операции
Локальные операции выполняются параллельно и независимо над данными
регистров-источников и помещаются в соответствующие поля регистра ре-
зультата (рис. 2.35) (представлены 3 операнда-источника vA, vB, vC и опе-
ранд-результат vT; выполняется 16 операций над 8-разрядными векторами).
Рис. 2.35. Выполнение локальных операций
Определены операции со знаковыми и беззнаковыми числами по соответст-
вующему модулю. Операции: сложение, вычитание, умножение, умножение
с накоплением, min, max, среднее, преобразование форматов представления
чисел с фиксированной и плавающей точкой. Кроме того, выполняются
логические операции AND, O)R, NOT, XOR, AND—NOT, операции сравне-
ния, сдвигов и циклических сдвигов вправо и влево. Имеется также команда
выбора (мультиплексирования), пересылающая данные одного из двух реги-
стров источников в регистр результата. Последовательность команд сравне-
ния и выбора позволяет, в том числе, эффективно маскировать и заменять
данные в 128-битных полях.
Глобальные операции
Глобальные операции позволяют провести суммирование произведений
компонентов векторов и суммирование компонентов одного вектора (рис. 2.36).
В частности, с помощью этих операций можно вычислять скалярное произ-
ведение векторов.
Рис. 2.36. Выполнение глобальных операций
Кроме того, с помощью глобальных операций можно производить сдвиги
векторов, упаковку и распаковку, слияние и другие операции, характерные
для сжатия и преобразования сигналов и изображений.
Имеется также команда перестановки, позволяющая выбрать байты из двух
16-байтных регистров-источников в 16-байтный регистр результата, как по-
казано на рис. 2.37.
Такие перестановки, примененные для распаковки-упаковки 8- и 16-битных
элементов данных, могут дать значительный выигрыш при хранении в памя-
ти упакованных элементов, распаковки их перед вычислениями и упаковки
после вычислений.
Глобальные команды позволяют также работать со 128-битными данными.
Рис. 2.37. Выполнение команды перестановки
2.7.3. Микропроцессор PowerPC 750/740 (G3)
32-разрядные микропроцессоры PowerPC 750 и PowerPC 740 (103] выпуска-
ются компаниями IBM и Motorola для использования в мобильных и на-
стольных системах (PowerPC 750) и во встроенном режиме, в коммуникаци-
онном оборудовании (PowerPC 740).
Оба микропроцессора программно и по выводам совместимы с PowerPC 603 и
PowerPC 604. Главное различие микропроцессоров PowerPC 750 и 740 заклю-
чается в наличии у первого встроенного интерфейса и внутренней теговой
памяти кэш-памяти второго уровня. Кэш=память первого уровня — раздель-
ная, 8-входовая, множественно-ассоциативная, размером 32 Кбайт каждая.
Микропроцессоры способны запускать на выполнение до 3 команд за один
такт в 6 независимых исполнительных устройствах: двух целочисленных
устройствах, устройстве с плавающей точкой, устройстве переходов, устрой-
стве загрузки/сохранения и устройстве системных регистров.
В микропроцессорах особое внимание уделено снижению энергопотребле-
ния. Для исполнительных устройств предусмотрено раздельное управление
питанием. Микропроцессоры выпускаются для напряжения питания 2,6 или
1,9 В. При производстве микропроцессоров используется медная технология
CMOS 7S 0,22 мкм.
PowerPC 750 выпускается с тактовыми частотами 200, 233 , 266, 275 , 300, 333,
350, 366 и 400 МГц, микропроцессор PowerPC 750 — с тактовыми частотами
200, 233, 266, 300 МГц. Объем внешней кэш-памяти второго уровня может
составлять 256 Кбайт, 512 Кбайт или 1 Мбайт. Внешняя кэш-память работа-
ет на половине тактовой частоты микропроцессора.
Микропроцессор PowerPC 750 содержит на кристалле 6,35 млн транзисторов
и потребляет 4,1 Вт при тактовой частоте 400 МГц. Производительность на
этой частоте составляет 18,8 SPECint95, 12,2 SPECfp95. Производительность
микропроцессора PowerPC 740 на частоте 300 МГц составляет 13,5 SPECinl95,
9,0 SPECfp95.
2.7.4. Микропроцессор PowerPC G4
Дальнейшим развитием линии микропроцессоров PowerPC стал чип G4
1104|. Этот микропроцессор использует базовую архитектуру G3 и содержит
ряд существенных дополнений.
G4 — первый микропроцессор, использующий предложенную компанией
Motorola технологию AltiVec, позволяющую ускорить обработку графики и
существенно повысить производительность микропроцессора на задачах
цифровой обработки сигналов.
Другим дополнением является возможность объединения в кластер до 4 микро-
процессоров, причем каждый из микропроцессоров может иметь доступ к
кэш-памяти любого другого микропроцессора.
Микропроцессор может работать с кэш-памятыо второго уровня объемом
от 512 Кбайт до 2 Мбайт. G4 содержит 10,5 млн транзисторов на кристалле
82 мм2 и потребляет 8 Вт при напряжении питания 1,8 В.
Первые микропроцессоры выпускались с использованием медной техноло-
гии 0.2 мкм для частоты 400 МГц. В дальнейшем при переходе на техноло-
гию 0,18 мкм тактовая частота была повышена до 1000 МГц.
Производительность G4 на частоте 400 МГн составляет 21,4 SPECint95 и
19,5 SPECfp.
По выводам и питанию данный микропроцессор несовместим с предыду-
щим поколением, что потребует использования новых материнских плат.
2.7.5. Микропроцессор G5 компании IBM
Микропроцессор G5 [105] компании [ВМ представляет собой CISC-
процессор, совместимый по системе команд с архитектурой ESA/390, IBM
S/360, S/370, развиваемой IBM начиная с 1964 года.
Микропроцессор G5 производится по 0,25 мкм КМОП технологии с 6 слоя-
ми металлизации для тактовых частот 385, 417, 500 МГц. При напряжении
питания 1,9 В потребляемая G5 мощность составляет 25 Вт.
Конструктивно микропроцессор выполнен на одном модуле с кэш-памятью
второго уровня, работающей на половине тактовой частоты ядра, системой
9 Зак. 1086
воздушного охлаждения и некоторыми дополнительными микросхемами.
В корпусе микропроцессора площадью 214,6 мм2 содержится 25 млн транзи-
сторов (7 млн — логические схемы, 13 млн — кэш-память первого уровня и
5 млн — дополнительные функциональные блоки).
Микропроцессор G5 содержит на кристалле 4-входовую множественно-
ассоциативную кэш-память первого уровня размером 256 Кбайт. Скорость
обмена между кэш-памятью первого и второго уровня составляет 4 Гбайт/с.
2048-позиционный ассоциативный ВТВ процессора использует 2-битный
алгоритм предсказания переходов.
Как и в системах с архитектурой ESA/390, в основе реализации системы
команд G5 лежит концепция микрокода (в G5 используется название мил-
ликод), которая представляет собой совокупность встроенных микропро-
грамм, вызываемых для выполнения высокоуровневых CISC-команд микро-
процессора.
Большинство команд микропроцессора имеют формат RX (операнды находятся
в регистре и в памяти), что эквивалентно выполнению двух регистровых ко-
манд. Оптимизация 10-стадийного исполнительного конвейера микропроцес-
сора позволила добиться выполнения большинства команд за один такт.
В отличие от архитектуры ESA/390, в G5 используется IEEE-754-совмести-
мый блок вычислений с плавающей точкой (архитектура ESA/390 преду-
сматривала иной стандарт представления данных (HFP — Hexadecimal
Floating Point), который также поддерживается G5). Микропроцессор со-
держит средства интеграции в симметричную мультипроцессорную систему
(до 12 микропроцессоров). В приложениях, требующих высокой отказо-
устойчивости, микропроцессоры могут использоваться в спаренном режиме,
"прозрачном" для пользователя системы. В микропроцессоре обеспечивается
аппаратный контроль четности, проверки состояния логических схем и слу-
жебных массивов.
В G5 реализована аппаратная поддержка эмуляции двух уровневой вирту-
альной машины, позволяющей одновременно выполнять несколько опера-
ционных систем.
Благодаря высокой тактовой частоте и тщательной проработке микрокода
данный микропроцессор почти в 2 раза превосходит по производительности
микропроцессор G4.
Область использования микропроцессора — мейнфреймы.
2.7.6. Микропроцессор Power 3
64-разрядный микропроцессор Power 3 [106] разрабатывался компанией IBM
как альтернатива высокопроизводительным процессорам Intel и Alpha и
предназначался для использования в высокопроизводительных серверах и
рабочих станциях. Наличие средств поддержки мультипроцессорного режи-
ма позволяет использовать этот микропроцессор в SMP-системах.
Power 3 — суперскалярный микропроцессор с внеочередным спекулятив-
ным выполнением команд. За один такт Power 3 способен выполнять до 8
команд: 2 команды загрузки/сохранения, 2 команды с плавающей точкой,
2 короткие целочисленные команды, 1 длинную целочисленную команду и
1 команду перехода.
Структура микропроцессора показана на рис. 2.38.
Рис. 2.38. Структура микропроцессора Power 3
Power 3 содержит 7 исполнительных устройств: 2 с плавающей точкой (FPU),
3 с фиксированной точкой (FXU), 2 устройства записи/сохранения (L/St).
В процессоре содержится раздельная кэш-память первого уровня: кэш-
данных — 64 Кбайт и кэш-команд — 32 Кбайт. Кэши данных и команд яв-
ляются 128-входовыми, множественно-ассоциативными, неблокирующими.
Power 3 может использовать кэш-память второго уровня емкостью от 1 до
16 Мбайт, которая подключается к выделенной 256-разрядной шине, рабо-
тающей на частоте 200 МГц. Скорость обмена с кэш-памятью второго уров-
ня составляет 6,4 Гбайт/с. Обмен с основной памятью осуществляется по
128-разрядной системной шине, работающей на тактовой частоте 100 МГц.
Скорость обмена составляет 1,6 Гбайт/с.
Особенностью процессора является минимальное время запуска команд на
выполнение в конвейере — всего 3 такта, что снижает задержки в конвейере
в случае неправильно предсказанного перехода.
Микропроцессор содержит 15 млн транзисторов на кристалле 270 мм2 и
производится по технологии 0,25 мкм с тактовой частотой 200 МГц. В пер-
спективе IBM планирует выпуск микропроцессора по медной 0,2 мкм тех-
нологии с последующим переходом на 0,18 мкм и повышением тактовой
частоты до 500—600 МГц.
Производительность Power 3 на частоте 200 МГц составляет 13,2 SPECint95
и 30,1 SPECfp95, на частоте 600 МГц - 30 SPECint95 и 70 SPECfp95.
2.7.7. Микропроцессор Power 4
Выпущенный в 2001 году компанией IBM 64-разрядный микропроцессор
Power 4 [107] представляет собой 2-процессорную систему, выполненную
на одном кристалле (рис. 2.39). Power 4 содержит также большую внутри-
кристальную кэш-память, высокоскоростной порт внешней памяти и лин-
ки для объединения микропроцессоров в DSM (Distributed Shared Memory)
системы.
Рис. 2.39. Архитектура Power 4
Наряду с параллелизмом уровня команд (1LP), процессор использует парал-
лелизм уровня нитей — тредов (TLP — Thread Level Parallelism). Динамиче-
ское выявление параллелизма позволяет повысить использование ресурсов
процессора за счет предотвращения простоев функциональных блоков про-
цессора, связанных с промахами при обращении в кэш-память или с неуст-
ранимой зависимостью между командами по данным.
Каждый из расположенных на кристалле процессоров является суперска-
лярным, с неупорядоченным и спекулятивным выполнением команд. Одно-
временно могут выбираться до 8 команд, рассматриваться для выполнения
более 200 команд и выполняться до 8 команд в 8 функциональных блоках.
К функциональным блокам процессора относятся: 2 блока операций с пла-
вающей точкой (FP), 2 блока операций с фиксированной точкой (FX),
2 блока загрузки/сохранения (LD/ST), 1 блок переходов (BR) и 1 блок логи-
ческих операций (CR). В среднем, в каждом из процессоров за один такт
выполняется 5 команд.
На рис. 2.40 показан исполнительный конвейер процессора.
Неупорядоченное выполнение
1 Рис. 2.40. Исполнительный конвейер процессора Power 4
1 Стадии 1F (выборка команды), IC (помещение команды в кэш-память), ВР
(предсказание перехода) соответствуют загрузке очередной команды. Стадии
I с DO до GD соответствуют декодированию и группировке команд (по очере-
II дям к функциональным устройствам). На стадии МР выявляются зависимо-
I сти между командами, назначаются ресурсы и команды ставятся в очередь к
I соответствующим функциональным устройствам. Дальнейшая обработка
ведется в 4 независимо функционирующих конвейерах.
Стадии с ISS до WB соответствуют этапам выполнения команд, начиная с
I извлечения команды из очереди и до записи результата в регистровый файл.
I На стадиях Xfer и СР осуществляется проверка завершения выполнения
всех предыдущих команд (в соответствии с их порядком в программе) и вы-
I дача результата.
Процессоры содержат раздельные кэши команд и данных первого уровня
объемом по 64 Кбайт каждый. На кристалле расположена разделяемая про-
цессорами внутрикристальная кэш-память второго уровня (8-входовая,
множественно-ассоциативная, объемом 1,5 Мбайт), контроллер и память
тегов внешней кэш-памяти третьего уровня.
Для подключения кэш-памяти третьего уровня объемом до 32 Мбайт имеет-
ся двунаправленный порт разрядностью 16 байт, функционирующий на час-
тоте 1/3 от тактовой частоты процессора, что обеспечивает пропускную спо-
собность 10 Гбайт/с.
Для образования мультипроцессорных конфигураций имеются 3 линка с
суммарной пропускной способностью 35 Гбайт/с. На рис. 2.41 показана 4-
процессорная система на основе Power 4.
Рис. 2.41. 4-процессорный кластер на базе Power 4
Микропроцессор имеет систему команд IBM ISA, реализованную в RS/6000
и AS/400 и полностью совместимую с системой команд PowerPC.
Power 4 изготавливается для тактовых частот 1,1, 1,3 ГГц по 0,18 мкм техно-
логии SOI "кремний на изоляторе" с 5-слойными медными соединениями.
На кристалле площадью 400 мм2 содержится 170 млн транзисторов.
Производительность систем на базе Power4 составляет 140 Gflops.
В конце 2001 года компания IBM представила новый 64-разрядный микро-
процессор PowerPC 970, ориентированный на использование в компьюте-
рах Apple.
PowerPC 970 — это упрощенная версия серверного процессора Power 4.
Процессор может работать как с 32-разрядными, так и с 64-разрядными
приложениями и имеет специальный набор инструкций для эффективной
обработки графики.
Производительность процессора при тактовой частоте 1,8 ГГц составляет
7,2 млрд операций в секунду.
2.8. Микропроцессоры компании MIPS
(Silicon Graphics)
Область применения микропроцессоров с архитектурой MIPS велика: от
игровых приставок и карманных компьютеров до высокопроизводительных
серверов и рабочих станций.
Микропроцессоры MIPS являются хорошей иллюстрацией воплощения
концепции "Brainiac" в архитектуре процессора.
Разработанный компанией MIPS Technology Inc. 64-разрядный микропро-
цессор R10000 1108, 109], построен на базе предыдущих поколений RISC-
процессоров (R2000, R3000, R4000 и R5000)
В основе этого микропроцессора лежит суперскалярная RISC-технология
пятого поколения, реализованная ранее в ориентированном на суперЭВМ
процессоре R8000. Однако, в отличие от многокристального R8000, оптими-
зированного для высокопроизводительных научных расчетов, R10000 пред-
ставляет собой однокристальный процессор общего назначения для на-
стольных ПК, рабочих станций и серверов. Он обеспечивает лучший, чем в
R8000, баланс между целочисленными операциями и операциями с пла-
вающей точкой, что делает его более подходящим для широкого класса при-
ложений. R10000 проектировался так, чтобы его можно было с равным ус-
пехом применять в бытовых ПК с Windows NT, на рабочих станциях с
UNIX или в многопроцессорных серверах баз данных.
Производительность процессора с тактовой частотой 200 МГц составляет
10,7 SPECint95 и 19,0 SPECfp95. Процессор содержит более 6,8 млн транзи-
сторов на кристалле площадью 298 мм2, из которых 4,4 млн транзисторов
приходится на кэш-память первого уровня. При изготовлении процессора
используется технология КМОП 0,35 мкм с 4 слоями металлизации. Про-
цессор рассчитан на напряжение 3,3 В и потребляет 20—30 Вт. Внутренняя
тактовая частота этого процессора программируется на 200, 133, 100, 80, 67,
57 или 50 МГц.
Структура микропроцессора показана на рис. 2.42.
Рис. 2.42. Структура микропроцессора R10000
Основными особенностями архитектуры процессора R10000 являются высо-
кая степень параллельности выполнения микроопераций, эффективное
предсказание переходов и планирование загрузки функциональных модулей.
R10000 имеет 5" функциональных блоков: 2 блока операций с плавающей
точкой, 2 блока целочисленных операций и 1 блок загрузки/хранения.
Схема предсказания переходов использует 512-входовую таблицу предысто-
рии переходов. Вероятность правильного предсказания на SPEC92 составля-
ет 0,87. В момент выполнения предсказанного перехода процессор сохраня-
ет свое состояние в 4-позиционном стеке переходов. В него заносится
альтернативный адрес перехода, полная копия таблиц отображения регист-
ров с плавающей и фиксированной точкой и различные управляющие биты.
Эта информация требуется для восстановления в случае неправильного
предсказания перехода. При заполнении стека декодирование команд про-
изводится до новой команды перехода, после чего ожидается освобождение
позиции в стеке. При неправильно предсказанном переходе отменяются все
команды, выбранные после неправильно предсказанного перехода. Эти
команды идентифицируются с помощью 4-битной маски, связанной с кон-
кретной позицией стека.
На этапе предвыборки команд в кэш-памяти первого уровня осуществляется
загрузка четырех 32-разрядных команд и их предварительное декодирование.
Каждая команда снабжается в кэше L1 дополнительным 4-битным тегом,
который необходим для дальнейшего декодирования и классификации
команды. Для команд перехода осуществляется вычисление результирую-
щего адреса.
На втором этапе декодирования устраняются (если это возможно) зависимо-
сти между командами по данным. С этой целью используется механизм пе-
реименования регистров. Зависимости по памяти устанавливаются по со-
держимому очереди обращений к памяти. Независимые команды могут
выполняться в порядке, отличном от первоначального, задаваемого про-
граммой. Все результаты выполнения команд, полученные вне очереди, яв-
ляются временными и могут быть отменены в случае неправильно предска-
занного перехода. R10000 имеет 64 целочисленных регистра и 64 регистра с
плавающей точкой, динамически отображаемые в 33 целочисленных регист-
ра и 32 регистра с плавающей точкой.
После декодирования команды разделяются на три 16-позиционные очере-
ди, в которых ожидают готовности операндов и функциональных блоков:
целочисленных АЛУ, блоков выполнения операций с плавающей точкой и
блока загрузки/записи. Очереди обслуживаются в порядке освобождения
функциональных блоков процессора. Команда выполняется в одном из
5 конвейеров процессора, связанном с функциональным блоком. Функцио-
нальные блоки выполнения операций с фиксированной и плавающей точ-
кой независимы, имеют раздельные регистровые файлы и пути передачи
данных. Длина целочисленного конвейера — 1 такт, конвейера блока за-
грузки/сохранения — 2, блока операций с плавающей точкой — 3. При по-
тенциальной способности выполнять 5 команд за такт R10000 допускает вы-
борку только четырех, оставляя "пространство для маневра" при планирова-
нии загрузки функциональных блоков. Это позволяет R10000 в большинстве
случаев выполнять четыре команды за такт. Благодаря чему за один такт
можно получить до 4 результатов.
Каждое из целочисленных АЛУ может выполнять сложение и логические
операции. В то же время один из АЛУ выполняет операции сдвига и пред-
сказывает переходы, а другой — целочисленные операции умножения и де-
ления. Один из двух блоков операций с плавающей точкой с удвоенной
точностью выполняет сложение, а другой — функции умножения/деления и
извлечения квадратного корня (последняя операция разбивается на две по-
доперации, выполняемые параллельно).
R10000 содержит высокоскоростной (до 1,6 Гбайт/с) внутрикристальный
интерфейс "процессор-шина", позволяющий объединять в многопроцессор-
ной конфигурации до четырех процессоров без использования дополни-
тельных интерфейсных схем.
Следующий микропроцессор — R12000 — по архитектуре немногим отлича-
ется от R10000:
□ в R12000 в 4 раза возросла емкость таблицы предсказания переходов —
до 2048 строк;
□ появилась кэш-память адресов перехода емкостью 32 строки;
□ с 32 до 48 увеличено максимальное число инструкций, которые могут
выполняться с нарушением порядка следования;
□ улучшена работа с кэш-памятыо второго уровня;
□ увеличены длины конвейеров.
Внутренняя структура микропроцессора R12000 показана на рис. 2.43.
R12000 работает на тактовых частотах 300 и 400 МГц. Значения производи-
тельности для тестов SPECint и SPECfp 95 и 2000 показаны в табл. 2.19.
Таблица 2.19. Производительность микропроцессора R12000
Микропро- цессор Частота, МГц SPEC int9S SPEC fp95 SPEC int95 SPECfp95
R12000 400 23,8 37,1 320 319
В 2001 году Silicon Graphics (SG) выпустила очередной микропроцессор се-
мейства — R14000. Этот микропроцессор производится по 0,13-микронной
медной технологии и работает на частоте 500 МГц. Существенных измене-
ний по сравнению с R12000 архитектура микропроцессора не претерпела.
Рис. 2.43. Структура микропроцессора R12000
В ближайших планах SG — выпуск R16000 с частотой 600 МГц, R18000 с
частой 800 МГц и ожидаемой пиковой производительностью 3,2 Gflops, а
также R20000 с частотой 1 ГГц и пиковой производительностью 4 Gflops.
После 2005 года SG планирует свернуть микропроцессорное производство и
в дальнейшем использовать в своих серверах и рабочих станциях микропро-
цессоры lntel/НР с архитектурой IA-64.
2.9. Микропроцессоры
отечественного производства
В настоящее время подавляющее большинство российских разработчиков и
производителей микропроцессорных систем ориентируется на использова-
ние продукции иностранного производства. Это обусловлено широкой но-
менклатурой представленных на рынке микропроцессоров и их относитель-
ной дешевизной. В силу массовости производства микропроцессоры разных
производителей доступны на рынке, на уровне бытовой электроники. Для
большинства случаев при изготовлении какого-либо микропроцессорного
устройства достаточно ограничиться самым общим описанием микропро-
цессора, не вдаваясь в подробности его реализации, воспринимая его как
черный ящик, вся функциональность которого полностью отображается во
внешних проявлениях и, более того, воспринимается через свободно рас-
пространяемое программное обеспечение. Однако существуют приложения,
для которых на первое место по значимости выходит предсказуемость
функционирования устройства: в этом случае нельзя ограничиться только
наблюдением внешнего "поведения" процессора, требуется четко представ-
лять не только "что", но и "как" он считает. Обеспечить такую предсказуе-
мость можно только путем проведения полномасштабной разработки всех
компонентов устройства, включая и микропроцессор.
В России рядом организаций выполнены разработки микропроцессоров как
с оригинальной, так и с клонированной архитектурой. К первым относятся,
например, микропроцессоры серии "Квант", описанные в главе 4. Примером
второго подхода являются разработки Научно-исследовательского института
системных исследований (НИИСИ) РАН и Московского центра SPARC-
технологий.
2.9.1. Микропроцессоры с архитектурой SPARC
Московский центр SPARC-технологий на протяжении ряда лет разрабаты-
вает SPARC-совместимые микропроцессоры семейства МЦСТ. Микропро-
цессоры имеют 32-разрядную архитектуру, соответствующую спецификации
SPARC v8, описанной в разд. 2.4.
На сегодняшний день выпущен микропроцессоры MUCT-R150 [ПО], рабо-
тающий на тактовой частоте 150 МГц, производимый по технологии 0,35 мкм
с 4 слоями металла, содержащий 2,8 млн транзисторов. Ведутся работы по
созданию опытного образца микропроцессора M1JCT-R500 с тактовой час-
тотой 500 МГц, а также разрабатывается микропроцессор МЦСТ-R с такто-
вой частотой 1000 МГц [НО]. Последние два микропроцессора будут произ-
водиться с топологическими нормами 0,13 мкм, 8 слоев металла и будут
содержать 4,2 млн транзисторов на кристалле.
Производительность микропроцессоров составляет:
□ MUCT-R150 - 140 MIPS, 63 flops;
□ MUCT-R500 - 400 MIPS, 170 flops.
2.9.2. Микропроцессоры с архитектурой MIPS
Вариант популярной архитектуры MIPS-I реализован в разработанном
НИИСИ РАН микропроцессоре 1В812, который является архитектурным
аналогом микропроцессора MIPS R3000 [111].
MIPS R3000 был разработан компанией MIPS Technology Inc. в 1988 году.
Микропроцессоры с данной архитектурой получили широкое распростране-
ние в компьютерной индустрии и нашли свое применение в рабочих стан-
циях и серверах, телекоммуникационном и офисном оборудовании.
Процессоры работали на тактовой частоте 33 МГц или 40 МГц и обеспечи-
вали производительность на уровне 20 SPECint92 и 23 SPECfp92.
R3000 состоит из двух тесно связанных процессоров, расположенных на од-
ном кристалле: центрального RISC-процессора (ЦП) и сопроцессора управ-
ления системой (CP0). R3000 является 32-разрядным микропроцессором: все
регистры имеют 32 разряда. Центральный процессор содержит 32 регистра
общего назначения (РОН), счетчик команд и два регистра для сохранения
старшего и младшего слов результата команд целочисленного умноже-
ния/деления. РОН с номером 0 является аппаратным нулем: чтение из него
всегда дает 0, а запись приводит к потере записываемых данных. РОН с но-
мером 31 используется для сохранения адреса возврата в командах перехода
с возвратом.
Поддерживаемые форматы данных: двойное слово (64 бита), слово (32 бита),
полуслово (16 бит), байт (8 бит).
В процессор встроено устройство управления памятью (MMU), отвечающее
за обработку запросов к памяти от центрального процессора. К функциям
этого устройства относятся: преобразование виртуального адреса в физиче-
ский, защита памяти, управление кэшем и арбитраж шин. К процессору
подключается раздельная кэш-память команд и данных. Размер каждой
кэш-памяти может быть от 4 до 256 Кбайт. Логика управления кэш-памятью
расположена на кристалле и обеспечивает когерентность кэшей в мульти-
процессорных конфигурациях. Режим работы кэш-памяти — сквозная за-
пись (Write through) и прямое отображение (Direct mapped).
Спецификация архитектуры R3000 предусматривает возможность использо-
вания до 3 внешних сопроцессоров (СР1-СРЗ). СР1 — сопроцессор вычис-
лений в формате с плавающей точкой (R3010), а СР2 и СРЗ — предусмотре-
ны для расширения возможностей системы. Обмен сопроцессоров с
памятью обслуживает центральный процессор — формирует адреса и управ-
ляет интерфейсом памяти.
Команды ЦП — 32-разрядные, 3 форматов: регистровые команды (1-тип),
команды переходов (J-тип), команды с непосредственным операндом (R-
тип). Команды выполняются в 5-стадийном конвейере. В каждом такте вы-
даются результаты очередной команды.
По функциям команды подразделяются на следующие группы:
□ команды загрузки/сохранения (1-тип);
□ вычислительные команды (арифметические, логические, операции сдви-
га) (R- или !-тип);
□ команды безусловного (R- или J-тип) и условного (1-тип) перехода;
□ команды сопроцессора (формат команд зависит от используемого сопро-
цессора);
□ команды сопроцессора 0 выполняют операции над регистрами СРО;
□ специальные команды (R-тип) выполняют системные вызовы, останов,
обмен между специальными регистрами и РОН и т. п.
Сопроцессор управления системой СРО обеспечивает работу виртуальной
памяти, обрабатывает исключительные ситуации, управляет переходом меж-
ду состояниями "ядро" и "пользователь", предоставляет средства диагности-
ки и восстановления после ошибок, управляет кэш-памятыо.
СРО содержит 10 специальных регистров, 4 из которых используются систе-
мой виртуальной памяти, а 6 — используются при обработке исключитель-
ных ситуаций.
Адресное пространство R3000 составляет 4 Гбайт и делится на 2 части:
2 Гбайт для пользователя (младшие адреса) и 2 Гбайт для ядра. Так как фи-
зическое адресное пространство меньше чем адресуемое (виртуальное),
MMU осуществляет преобразование виртуальных адресов в физические
(с помощью таблицы TLB, расположенной внутри кристалла), а также кэ-
ширование страниц памяти. Полностью ассоциативная TLB содержит 64
элемента, каждый из которых соответствует странице размером 4 Кбайт.
СРО обычно работает в режиме пользователя, а в случае обработки исклю-
чительной ситуации — переходит в режим ядра. К исключительным ситуа-
циям относятся: арифметическое переполнение, прерывания по вводу/выво-
ду, системные вызовы, промахи при обращении к таблице страниц и т. д.
Сопроцессор вычислений в формате с плавающей точкой (FPU) R3010 вы-
полняет операции над 64-разрядными числами. FPU содержит 16 64-раз-
рядных регистров, которые могут содержать числа с одинарной и двойной
точностью.
Конвейер команд FPU содержит 6 стадий и работает параллельно с конвей-
ером команд ЦП. Как и целочисленные команды, команды FPU выполня-
ются в среднем за один такт.
Реализация архитектуры R3000
Лицензия на производство процессоров с архитектурой MIPS приобретена
многими производителями полупроводниковых устройств, такими как
Broadcom, IDT, LSI Logic, NEC, NKK, Philips, Toshiba и др.
Собственный вариант архитектуры MIPS разработан в России Научно-
исследовательским институтом системных исследований РАН, который
приобрел лицензию у компании MIPS Technology Inc. на микропроцессор
R3000 и сопроцессор с плавающей точкой R3010 [112].
Созданный НИИСИ РАН микропроцессор 1В812 [113] представляет собой
функциональный аналог микропроцессора R3000 с сопроцессором R3010.
Микропроцессор 1В812 содержит:
□ процессор для обработки чисел с фиксированной точкой (включая сис-
темный сопроцессор СРО), являющийся архитектурным аналогом микро-
процессора R3000;
□ арифметический сопроцессор для обработки чисел с плавающей запятой,
являющийся архитектурным аналогом сопроцессора R3010;
□ кэш-память программ объемом 8 Кбайт;
□ кэш-память данных объемом 8 Кбайт;
□ контроллер системной шины;
□ встроенный буфер записи, позволяющий избежать задержек в цикле за-
писи;
□ встроенный буфер чтения, поддерживающий блочное и одиночное чтение.
Процессор имеет следующие характеристики:
□ тактовая частота процессора 33 МГц;
□ частота работы интерфейса системной шины - 1 или '/j частоты процес-
сора;
□ производительность — 24,5 MIPS, 8,7 Mflops;
□ наличие программируемого режима работы с уменьшенным потреблени-
ем энергии. Энергопотребление в рабочем режиме не более 1 Вт, в ре-
жиме энергосбережения не более 0,1 Вт;
□ реализован в виде КМОП СБИС с проектными нормами 0,5 мкм и чис-
лом транзисторов на кристалле около 1,6 млн. Корпус имеет 108 выводов.
Структура микропроцессора показана на рис. 2.44.
Рис. 2.44. Структура микропроцессора 1В812
В 1В812 используется тот же набор целочисленных команд, что и в R3000A.
Процессорное ядро (CPU) является 32-разрядным RISC-процессором. CPU
содержит пятиступенчатый конвейер и 32 ортогональных 32-разрядных ре-
гистра.
Конвейерное выполнение позволяет осуществлять до одной операции за
такт. В конвейере процессора одновременно на разных стадиях выполнения
могут находиться до пяти команд.
1В812 содержит встроенный арифметический сопроцессор (СР1), совмести-
мый с R3010, работающий параллельно с ЦП. СР1 является высокопроизво-
дительным сопроцессором, выполняющим операции сложения, умножения,
деления с одинарной и двойной точностью для чисел в формате с плаваю-
щей точкой.
СР1 содержит 16 ортогональных 64-разрядных регистров, которые для опе-
раций чтения и записи, выполняемых ЦП, видны как 32 32-разрядных реги-
стра. На рис. 2.45 показана структура СР1.
Рис. 2.45. Структура арифметического сопроцессора
На кристалле расположены раздельные кэши команд и данных размером
8 Кбайт каждый.
Системный интерфейс 1В812 использует 32-разрядную мультиплексируемую
шину адреса и данных, обеспечивает арбитраж шин для реализации режима
ПДП. Обмен с внешней памятью буферизирован (4-словный буфер) и мо-
жет осуществляться как одиночными словами, так и блоками по 4 слова в
пакетном режиме.
Разработанные НИИСИ РАН микропроцессоры производятся на предпри-
ятии "Ангстрем" (Россия) [1121.
2.10. Состояние и перспективы развития
универсальных микропроцессоров
2.10.1. Основные тенденции развития
универсальных микропроцессоров
Рассмотрение семейств микропроцессоров разных производителей подтвер-
ждает общие тенденции их развития: стремление к программной совмести-
мости внутри семейства и повышение тактовой частоты, увеличение объема
и пропускной способности подсистемы памяти, увеличение количества па-
раллельно функционирующих исполнительных устройств.
В XX веке совокупная реализация в одном микропроцессоре рекордных
значений параметров по всем этим тенденциям была невозможна из-за ог-
раничений технологического процесса изготовления и экономических огра-
ничений на стоимость одного микропроцессора и микроэлектронного про-
изводства в целом. При ограниченном объеме аппаратных ресурсов каждый
разработчик микропроцессора должен был выбрать ряд архитектурно-
структурных приемов, за счет преимущественного развития которых этот
микропроцессор будет превосходить другие. Поэтому каждый конкретный
тип микропроцессора был результатом многих компромиссов, принятых его
создателями.
В архитектуре современных микропроцессоров разных компаний-произво-
дителей имеется много общего, что даже наводит на мысль об унификации
архитектур. Большое число транзисторов на кристалле позволяет применить
в одном микропроцессоре все известные приемы повышения производи-
тельности, сообразуясь только с их совместимостью.
2.10.2. Программная совместимость
Программная совместимость как возможность выполнять программы, соз-
данные для предыдущих поколений микропроцессоров на новом поколе»
нии, имеет важное значение для развития и накопления программного
обеспечения. Собственно, невозможно себе представить развитие компью-
терных технологий без сохранения программной совместимости.
Конечно, обеспечение программной совместимости может находиться в
противоречии со стремлением к повышению производительности микро-
процессора. Особенно ярко это демонстрируется развитием микропроцессо-
ров с архитектурой х86. Потенциал востребованности этих микропроцессо-
ров настолько велик, что оказал и оказывает до сих пор стимулирующее
воздействие на производителей, заставляя их искать технические и ценовые
ниши для продвижения своих продуктов.
Когда в результате проведенных исследований по оптимизации архитекту-
ры, приведших к созданию концепции RISC-процессоров, выяснилось, что
сложные команды, имеющиеся в архитектуре х86, препятствуют повышению
производительности, это не привело к отказу от этой архитектуры. И хотя
основной производитель микропроцессоров с архитектурой х86, фирма Intel,
следовал традиционным подходам, инженерная мысль в рамках более под-
вижной малой компании, стремящейся выйти на рынок с большим количе-
ством потребителей, предложила решение, сохраняющее архитектуру х86
при аппаратной трансляции ее команд в RISC-команды. В процессорах с
архитектурой х86, за счет введения RISC-ядра, преодолено отставание в
производительности от RISC-процессоров. Более того, такой подход позво-
ляет перейти к процессорам со многими системами команд, каждая из ко-
торых транслируется своим внутрикристальным аппаратным транслятором в
набор операций RISC-ядра процессора. Это решение стало впоследствии
общепринятым у всех производителей микропроцессоров с архитектурой х86,
включая фирму Intel.
Конечно, это решение требует дополнительных затрат оборудования, но эти
затраты вполне оправданы достигаемым ростом производительности.
Компанией Transmeta предпринята попытка, при сохранении архитектуры
х86, получить более эффективную по производительности, энергопотребле-
нию и объему оборудования реализацию микропроцессора с использовани-
ем для повышения производительности VLIW-архитектуры с длинным ко-
мандным словом.
Другие производители стремятся предложить процессоры, выгодно отличаю-
щиеся своей ориентацией на определенные ценовые классы компьютеров.
Кроме того, производители микропроцессоров с другой архитектурой стре-
мятся снабдить свои изделия средствами, обеспечивающими возможность
эмулировать архитектуру х86. Так, в свое время DEC решила проблему пе-
реносимости существующего для архитектур х86 программного обеспечения
посредством оптимизирующего транслятора FXI32. Транслятор преобразует
исполняемый код архитектуры х86 в оптимизированный исполняемый код
DEC Alpha. Собственно, этот подход может быть применен и для обеспече-
ния совместимости с другими архитектурами. Возможно также введение в
процессор программируемой логики, аналогичной ПЛИС, настраиваемой на
требуемую систему команд.
Поэтому сохранение программной совместимости служит не столько пре-
пятствием на пути развития микропроцессоров, сколько фактором, стиму-
лирующим это развитие.
2.10.3. Повышение тактовой частоты
Для повышения тактовой частоты используются более совершенный техно-
логический процесс с меньшими проектными нормами, увеличение числа
слоев металлизации, более совершенная схемотехника меньшей каскадности
и с более совершенными транзисторами, а также более плотная компоновка
функциональных блоков кристалла.
Так, все производители перешли на технологию КМОП, хотя Intel, напри-
мер, использовали БиКМОП для первых представителей семейства Pentium.
Еще более экзотическая попытка была предпринята компанией Exponential
Techholoqy, которая пыталась развить биполярную схемотехнику для произ-
водства процессоров с архитектурой PowerPC и х86. Однако на частоте 466 МГц
кристалл площадью I50 мм2 рассеивал около 80 Вт, что создало серьезную
проблему теплоотвода (без этого кристалл превращается в святящуюся рас-
каленную пластину металла). Компания пыталась добиться повышения так-
товой частоты до обещанного уровня, но не справилась с этим, По ее утвер-
ждению, из-за экономических проблем.
Вообще говоря, известно, что биполярные схемы и КМОП на высоких час-
тотах имеют примерно одинаковые показатели тепловыделения, но КМОП-
схемы более технологичны, что и определило их преобладание в микропро-
цессорах.
Уменьшение размеров транзисторов, сопровождаемое снижением напряже-
ния питания, увеличивает быстродействие и уменьшает выделяемую тепло-
вую энергию. Все производители микропроцессоров перешли с проектных
норм 0,25 мкм на 0,18 мкм, а сейчас уверенно стремятся к 0,13—0,09 мкм.
Проблема уменьшения длины межсоединений на кристалле решается путем
увеличения числа слоев металлизации. Так, Cyrix при сохранении 0,6 мкм
КМОП-технологии за счет увеличения с 3 до 5 слоев металлизации сократи-
ла размер кристалла на 40% и уменьшила выделяемую мощность, исключив
существовавший ранее перегрев кристаллов.
Уменьшение длины межсоединений актуально для повышения тактовой
частоты работы, т. к, существенную долю длительности такта занимает вре-
мя прохождения сигналов по проводникам внутри кристалла. Так, в Alpha
21264 предприняты специальные меры по кластеризации обработки, при-
званные локализовать взаимодействующие элементы микропроцессора.
2.10.4. Увеличение пропускной способности
подсистемы памяти
Спектр возможных решений по увеличению пропускной способности под-
системы памяти, снабжающей функциональные устройства процессора ра-
ботой, включает создание кэшей одного или нескольких уровней, а также
увеличение пропускной способности интерфейсов между процессором и
кэш-памятью и конфликтующим с этим увеличением пропускной способ-
ности между процессором и основной памятью. Совершенствование интер-
фейсов реализуется как увеличением пропускной способности шин (путем
увеличения частоты работы шины и/или ее ширины), так и введением до-
полнительных шин, устраняющих конфликты между процессором, кэш-
памятью и основной памятью. В последнем случае одна шина работает на
частоте процессора с кэш-памятью, а вторая — на частоте работы основной
памяти. При этом частоты работы второй шины, например, равны 66, 66,
166 МГц для микропроцессоров Pentium Pro-200, PowerPC 604Е-225, Alpha
21164-500, работающих тактовых частот 300, 225, 500 МГц соответственно.
При ширине шин 64, 64, 128 разрядов это обеспечивает пропускную спо-
собность интерфейса с основной памятью 512, 512, 2560 Мбайт/с соответст-
венно.
Общая тенденция увеличения размеров кэш-памяти реализуется по-разному:
□ внешние кэши данных и команд с двухтактовым временем доступа объе-
мом от 256 Кбайт до 2 Мбайт с временем доступа 2 такта в HP РА-8000;
□ отдельный кристалл кэш-памяти второго уровня, размещенный в одном
корпусе в Pentium Pro;
□ размещение отдельных кэшей команд и данных первого уровня объемом
по 8 Кбайт и общей для команд и данных кэш-памяти второго уровня
объемом 96 Кбайт в Alpha 21164.
Наиболее часто используемое решение состоит в размещении на кристалле
отдельных кэшей первого уровня для данных и команд с возможным созда-
нием внекристальной кэш-памяти второго уровня. Например, в Pentium 11
использованы внутрикристальные кэши команд и данных первого уровня по
16 Кбайт каждый, работающие на тактовой частоте процессора, и внекри-
стальная общая кэш-память второго уровня, работающая на половинной
тактовой частоте.
2.10.5. Повышение степени
внутреннего параллелизма
Каждое семейство микропроцессоров демонстрирует в следующем поколе-
нии увеличение числа исполнительных устройств и улучшение их характе-
ристик, как временных (сокращение числа ступеней конвейера и уменьше-
ние длительности каждой ступени), так и функциональных (введение ММХ-
расширений системы команд и т. д.).
В настоящее время процессоры могут выполнять до 6 операций за такт. Од-
нако число операций с плавающей точкой в такте ограничено 2 для R10000
и Alpha 21164 и 4 для РА-8х00.
Для того чтобы обеспечить эффективную загрузку исполнительных уст-
ройств, используется переименование регистров и предсказание переходов,
устраняющие зависимости между командами по данным и управлению. Ус-
тоявшихся решений в этой области практически нет, т. к. каждый микро-
процессор демонстрирует изобретательность его создателей по симбиозу ап-
паратных средств и компилятора для статического и динамического
устранения зависимостей между командами.
На сегодня в стадии практической апробации находятся архитектура с
длинным командным словом и мультитредовая архитектура.
Вопросы для самоконтроля
к главе 2
1. Перечислите основные типы архитектур универсальных микропроцессо-
ров и характерные области их применения.
2. Укажите основных представителей микропроцессоров с архитектурой х8б.
3. Что такое мультимедийное расширение системы команд? Приведите
примеры реализаций мультимедийных расширений системы команд в
микропроцессорах RISC- и CISC-архитектуры.
4. В чем смысл введения отдельных шин для работы процессора с кэш-
памятью и основной памятью?
5. Перечислите составляющие технологии энергосбережения.
6. Укажите особенности организации кэш-памяти в микропроцессорах Intel
шестого поколения.
7. Как в рамках архитектуры х86 сочетаются концепции RISC- и CISC-про-
цессоров?
8. В чем состоят особенности реализации архитектуры х86 в конкурирую-
щих изделиях фирм Intel, AMD, Cyrix? Сопоставьте эти семейства по ос-
новным структурным и функциональным характеристикам: реализация
устройства выборки команд, управление ветвлениями, работа с кэш-
памятыо, диспетчеризация и исполнение команд.
9. Перечислите основные особенности микропроцессоров фирмы Transmeta.
10. Перечислите архитектурные особенности Alpha 21064, 21164, 21264.
Прокомментируйте линию развития семейства микропроцессоров с ар-
хитектурой Alpha. Назовите состав и назначение основных блоков мик-
ропроцессоров.
11. В чем состоят характерные особенности архитектуры SPARC? Состав и
назначение основных блоков.
12. В чем заключается, по вашему мнению, причина появления микропро-
цессоров семейства MAJC?
13. Прокомментируйте развитие семейства процессоров с РА-архитекту-
рой компании Hewlett-Packard. Структура и организация кэш-памяти.
Состав исполнительных устройств. Механизм предсказания переходов.
14. Перечислите черты микропроцессоров семейств PowerPC и R-lxxxx как
классических RISC-процессоров с разнесенной архитектурой.
15. Сопоставьте подходы различных производителей к организации кэш-
памяти микропроцессоров. Укажите тенденции развития.
16. Назовите число возможных одновременно выполняемых операций в
разных микропроцессорах. Что препятствует увеличению этого числа?
Назовите длину конвейеров каждого микропроцессора.
17. Сравните механизмы реализации предсказания переходов в разных мик-
ропроцессорах. Назовите превалирующие тенденции развития.
18. Сопоставьте между собой методы диспетчеризации и выполнения
команд в разных микропроцессорах.
19. Укажите на механизмы образования мультипроцессорных конфигура-
ций, заложенные в разные микропроцессоры.
20. Прокомментируйте развитие микропроцессоров отечественного произ-
водства.
Глава 3
Сигнальные, коммуникационные
и медийные микропроцессоры
3.1. Общие сведения
о цифровой обработке сигналов
Цифровая обработка сигнала (ЦОС) — это арифметическая обработка в ре-
альном масштабе времени последовательности значений амплитуды сигнала,
получаемых через равные временные промежутки [114]. Примерами цифро-
вой обработки являются:
□ фильтрация сигнала;
□ свертка двух сигналов (смешение сигналов);
О вычисление значений корреляционной функции двух сигналов;
□ усиление, ограничение или трансформация сигнала;
□ прямое/обратное преобразование Фурье сигнала.
Аналоговая обработка сигнала, традиционно используемая во многих радио-
технических устройствах, является в большинстве случаев более дешевым
способом достижения требуемого результата, однако тогда, когда требуется
высокая точность обработки, миниатюрность устройства, стабильность его
характеристик в различных температурных условиях функционирования,
цифровая обработка оказывается единственно приемлемым решением.
Пример аналоговой фильтрации сигнала приведен на рис. 3.1. Используе-
мый в фильтре операционный усилитель позволяет расширить динамиче-
ский диапазон обрабатываемых сигналов. Форма амплитудно-частотной ха-
рактеристики фильтра определяется значениями величин Rj, С/,. Для
аналогового фильтра сложно обеспечить высокое значение добротности, ха-
рактеристики фильтра сильно зависят от температурного режима. Компо-
ненты фильтра вносят дополнительный шум в результирующий сигнал.
Аналоговые фильтры трудно перестраивать в широком диапазоне частот.
Аналоговый фильтр
Частотная характеристика
Идеальный
фильтр
f
Реальный
Частота fc
фильтр
f
->
Частота
Рис. 3.1. Аналоговая обработка сигнала
Аналогичные результаты обработки сигнала могут быть получены с помо-
щью цифровой схемы, показанной на рис. 3.2. Компонентами схемы явля-
ются фильтры низкой частоты (ФНЧ), выполняющие предварительное и
последующее удаление из частотного спектра дополнительных гармоник
сигнала, аналого-цифровой (АЦП) и цифроаналоговый (ЦАП) преобразова-
тели сигнала и собственно цифровой фильтр с конечной импульсной харак-
теристикой. Амплитудно-частотная характеристика фильтра определяется
значениями коэффициентов фильтра С(к). Изменяя количество коэффици-
ентов (длину фильтра) и их значения, можно получить фильтр с любой тре-
буемой амплитудно-частотной характеристикой. Вносимый шум (шумы
квантования) зависит от частоты и разрядности АЦП и ЦАП, а также от
точности вычислений.
Схема преобразования, выполняемого над последовательностью отсчетов
сигнала, задаваемая математической формулой, может быть также представ-
лена графически, в виде структурной схемы цифрового фильтра.
Существует классификация фильтров по виду импульсной характеристики:
фильтры с конечной импульсной характеристикой (КИХ) и фильтры с бес-
конечной импульсной характеристикой (БИХ). Структуры цифровых фильт-
ров типа КИХ и БИХ приведены на рис. 3.3. и 3.4 соответственно.
ФНЧ Аналого-цифровое Операция ЦОС Цифроаналоговое ФНЧ
Аналоговый
фильтр
Идеальный
фильтр
Частота
Цифровой
фильтр
Рис. 3.2. Цифровая обработка сигнала
Приняты обозначения:
□ Т — блок задержки на 1 такт;
□ х — блок умножения;
□ + — блок сложения.
Для эффективной реализации алгоритмов цифровой фильтрации необходи-
ма аппаратная поддержка базовых операций ЦОС: умножения с накоплени-
ем (МАС — Multiplication Accumulation), модульной адресной арифметики,
нормировки результатов арифметических операций.
Другим часто выполняемым преобразованием сигнала является дискретное
преобразование Фурье (прямое и обратное) 1115J.
Любой сигнал может быть представлен как во временной области (сово-
купность графиков в координатах "время-амплитуда"), так и в частотной об-
ласти (последовательность графиков в координатах "частота-амплитуда").
В зависимости от используемых алгоритмов обработки может быть выбрано
либо частотное, либо временное представление сигнала. Преобразование
Фурье позволяет осуществлять перенос сигнала из одной формы представ-
ления в другую.
Рис. 3.3. Структура каскада КИХ-фильтра
w(n) = x(n) + aj х w(n - 1) - 3j2 х w(n - 2)
y(n) s w(n) + b, 1 x w(n -1) + b,2 x w(n - 2)
Рис. 3.4. Структура каскада БИХ-фильтра
Дискретное преобразование Фурье (ДПФ) в аналитическом виде задается
формулой:
%(/) = Х(/) = Т ^(nT)e J2nf"r,
п = -<^
где х(л7) — последовательность отсчетов сигнала.
Существует большое разнообразие реализаций дискретного преобразования
Фурье. В ряде алгоритмов используются приемы, позволяющие сократить
объем требуемых вычислений. Эти алгоритмы известны под общим назва-
нием "быстрое преобразование Фурье" (БПФ).
На практике интервал суммирования ограничен некоторым числом времен-
ных отсчетов — N, зависящим от требуемой точности преобразования.
В этом случае формула принимает вид:
/V -1
X(J) = *(/) = Т ^пТ)е-М"7\
«=()
N — число точек преобразования.
Для уменьшения числа операций умножения при выполнении ДПФ ис-
пользуется метод, получивший название "прореживание по времени".
Сущность данного метода заключается в том, что преобразование Фурье
по последовательности из N точек может быть выражено через преобразо-
вания, выполненные по подпоследовательностям этой последовательно-
сти, каждая из которых имеет длину N/2 точек. Так как число умножений
пропорционально числу точек преобразования, то процедура двукратного
преобразования по N/2 точкам с последующим объединением результатов
выполняется за меньшее время. Применив к последовательности отсчетов
процедуру прореживания рекурсивно, получим схему вычислений, изо-
браженную на рис. 3.5.
7 271
-jk~N
На рис. 3.5 k/N обозначает умножение на коэффициент е
При реализации данной схемы преобразования наряду с операциями ум-
ножения и сложения используются битовые операции. Результирующие
отсчеты расположены в бит-реверсивном порядке (см. рис. 3.5), т. е. та-
ком, когда позиция элемента определяется реверсией двоичного представ-
ления индекса элемента. Для их переупорядочения требуется выполнить
либо перестановку элементов массива, либо операцию битовой реверсии
индекса при обращении к элементу массива. Второй подход имеет пре-
имущество по времени выполнения, однако требует возможности манипу-
лирования адресами данных.
В большинстве реальных приложений рассмотренные базовые алгоритмы
цифровой обработки сигналов должны выполняться в режиме реального
времени, что предъявляет повышенные требования к производительности
Рассмотрим основные семейства сигнальных микропроцессоров, представ- j
3.2. Микропроцессоры обработки сигналов
Для построения систем цифровой обработки сигналов используются спе-
циализированные микропроцессоры — цифровые сигнальные микропроцес-
кой производительностью на указанных задачах, а с другой стороны — с их
чрезмерной избыточностью для данных задач.
Для цифровой обработки сигналов используются так называемые сигналь-
ные микропроцессоры. К их особенностями относятся малоразрядная (40 и
менее разрядов) обработка чисел с плавающей точкой, преимущественное
использование чисел с фиксированной точкой разрядности 32 и менее, а так-
же ориентация на несложную обработку больших массивов данных.
Отличительной особенностью задач цифровой обработки сигналов является
поточный характер обработки больших объемов данных в реальном режиме
времени, требующий высокой производительности процессора и обеспече-
ния возможности интенсивного обмена с внешними устройствами. Соответ-
ствие данным требованиям достигается в настоящее время благодаря специ-
фической архитектуре сигнальных процессоров и проблемно-ориенти-
рованной системе команд.
Сигнальные процессоры обладают высокой степенью специализации. В них
широко используются методы сокращения длительности командного такта,
характерные и для универсальных RISC-процессоров, такие, как конвейери-
зация на уровне отдельных микрокоманд и команд, размещение операндов
большинства команд в регистрах, использование теневых регистров для со-
хранения состояния вычислений при переключении контекста, разделение
памяти команд и данных (гарвардская архитектура). В то же время для сиг-
нальных процессоров характерным является наличие аппаратного умножи-
теля, позволяющего выполнять умножение двух чисел за один такт. В уни-
версальных процессорах умножение обычно реализуется за несколько
тактов, как последовательность операций сдвига и сложения. Другой осо-
бенностью сигнальных процессоров является включение в систему команд
таких операций, как умножение с накоплением МАС (С := А х В + С), ин-
версия бит адреса, операции над битами. В сигнальных процессорах реали-
зуется аппаратная поддержка программных циклов, кольцевых буферов, об-
работки прерываний.
Реализация однотактного умножения, а также команд, использующих в ка-
честве операндов содержимое ячеек памяти, обусловливает сравнительно
низкие тактовые частоты работы этих процессоров.
Сигнальные процессоры различных компаний-производителей образуют два
класса, существенно отличающихся по цепе: более дешевые микропроцес-
соры обработки данных в формате с фиксированной точкой и более дорогие
микропроцессоры, аппаратно поддерживающие операции над данными в
формате с плавающей точкой.
Использование в сигнальной обработке данных в формате с плавающей точ-
кой обусловлено несколькими причинами. Для многих задач, связанных с
выполнением интегральных и дифференциальных преобразований, особую
значимость имеет точность вычислений, обеспечить которую позволяет экс-
поненциальный формат представления данных. Алгоритмы компрессии, де-
компрессии, адаптивной фильтрации в цифровой обработке сигналов связаны
с определением логарифмических зависимостей и весьма чувствительны к
точности представления данных в широком динамическом диапазоне значе-
ний. Работа с данными в формате с плавающей точкой существенно упрощает
обработку, поскольку не требует выполнения операций округления и норма-
лизации данных, отслеживания ситуаций потери точности и переполнения.
Платой за "комфорт" является высокая сложность функциональных уст-
ройств, выполняющих обработку данных в формате с плавающей точкой,
необходимость использования более сложных технологий производства
микросхем и, как следствие, дороговизна микропроцессоров.
В настоящее время стал популярен и другой подход к получению высокой
производительности. Большое количество транзисторов на кристалле может
быть использовано для создания симметричной мультипроцессорной систе-
мы с более простыми процессорами, обрабатывающими целочисленные
операнды. Примерами таких так называемых медийных процессоров служат
Mediaprocessor компании MicroUnity, Trimedia компании Philips, Mpact
Media Engine компании Chromatic Research, NV1 компании Nvidia, MediaGx
компании Cyrix.
Эти процессоры создавались исходя из потребности обработки в реальном
времени видео- и аудиоинформации в мультимедийных ПК, игровых при-
ставках, бытовых радиоэлектронных приборах. Ввиду более простой схемо-
техники по сравнению с универсальными сигнальными процессорами,
стоимость медийных процессоров достаточно низкая (порядка $100), а зна-
чение показателя произвддителыюсть/стоимость на 2—3 порядка больше.
Пиковое значение производительности медийных процессоров составляет
несколько миллиардов целочисленных операций в секунду.
К наиболее крупным производителям сигнальных микропроцессоров относятся
компании Motorola, Texas Instalments, Analog Devices, Lucent Technologies.
Каждая из указанных компаний выпускает целый спектр устройств, ориенти-
рованных на решение широкого круга задач. При выборе микропроцессора
ЦОС для реализации конкретного проекта необходим учет многих парамет-
ров. Использование продукции той или иной компании во многом определя-
ется предпочтениями разработчиков, однако следует учитывать определенные
преимущества каждого микропроцессорного семейства.
3.3. Сигнальные микропроцессоры
компании Texas Instruments
Сигнальные процессоры компании Texas Instruments fl 16] разделяются на два
класса: процессоры для обработки чисел с фиксированной точкой и процес-
соры для обработки чисел с плавающей точкой (рис. 3.6). Первый класс пред-
ставлен тремя семействами процессоров, базовыми моделями которых явля-
ются соответственно TMS320C10, TMS320C20, TMS320C50. Второй класс
включает процессоры TMS320C30, TMS320C40. TMS320C80 также поддержи-
вает операции с плавающей точкой и представляет собой мультипроцессор-
ную систему, выполненную в одном кристалле, а семейство TMS320C6x
включает процессоры как с фиксированной, так и с плавающей точкой.
Процессоры старших поколений одного семейства наследуют основные ар-
хитектурные особенности предшествующих поколений и совместимы "снизу
вверх" по системе команд (чего нельзя сказать о процессорах, входящих в
разные семейства).
3.3.1. Микропроцессоры
семейства TMS320C1X
Первый процессор семейства — TMS320C10 — был выпущен в I982 году и,
благодаря ряду удачных технических решений, получил широкое распро-
странение [117]. Структура типичного представителя семейства — микро-
процессора TMS320C15 — приведена на рис. 3.7.
В основу микропроцессора положена модифицированная гарвардская архи-
тектура, отличием которой от традиционной гарвардской архитектуры явля-
ется возможность обмена данными между памятью программ и памятью
данных, что повышает гибкость устройства.
10 Зак. 1086
ет 160-200 нс.
аппаратные умножитель (MULT), устройство сдвига (SHIFTER), аппарат-
(ARO, AR1).
рацией памяти, наличием (или отсутствием) дополнительных периферийных
нейную ИКМ).
3.3.2. Микропроцессоры
семейства TMS320C2X
Микропроцессоры семейства TMS320C2x имеют ту же архитектуру, что и
TMS320C1X, но обладают более высокой производительностью и более ши-
рокими функциональными возможностями [118], Все процессоры семейства
могут использовать по 64 Келов памяти программ и данных, имеют 16 пор-
тов ввода/вывода каждый разрядностью 16 и последовательный порт.
Структура микропроцессора TMS320C2x приведена на рис. 3.8.
Рис. 3.8. Структура микропроцессора TMS320C2X
Процессоры семейства TMS320C2x используют внешний контроллер пря-
мого доступа в память (ПДП). Умножитель микропроцессоров помимо опе-
раций умножения позволяет выполнять за один такт возведение в квадрат.
В процессоры включена аппаратная поддержка кратного выполнения команды,
реализован режим двоичной инверсно-косвенной адресации, предназначен-
ный для эффективной реализации быстрого преобразования Фурье.
Основные технические характеристики процессоров второго поколения
приведены в табл. 3.1.
Таблица 3.1. Основные характеристики процессоров семейства TMS320C2X
Микро- процессор Техно- логия Такт (нс) Внутренняя память Внешняя память Ввод/ вывод
ОЗУ ПЗУ ППЗУ Данных Прог- рамм После- дова- тельный Парал- лельный пдп
TMS32020 NMOS 200 544 64К 64К 1 16x16 Да
TMS320C25 CMOS 100 544 4К 64К 64К 1 16x16 Да
TMS320C25-50 CMOS 80 544 4К 64К 64К 1 16x16 Да
TMS320E25 CMOS 100 544 4К 64К 64К 1 16x16 Да
TMS320C26 CMOS 100 1568 256 64К 64К 1 16x16 Да
Основные отличия архитектуры процессоров TMS320C2X от TMS320C1X за-
ключаются в следующем:
□ умножение и сохранение результатов в TMS3202x осуществляется за один
командный такт;
□ набор команд поддерживает вычисления с плавающей точкой;
□ имеется внутреннее маскируемое постоянное запоминающее устройство
(ПЗУ) программ (ROM — Read Only Memory) размером 4 Келов для
TMS320C25, или полупостоянное запоминающее устройство (ППЗУ) с
ультрафиолетовым стиранием и возможностью записи нового содержи-
мого (EPROM — Erasable Programmable ROM) 4 Келов для TMS320E25;
□ выполнение программ осуществляется из памяти программ, расположен-
ной на кристалле. Объем памяти программ — 544 слова, из которых 256
могут быть использованы как память данных;
□ расширенная внешняя память имеет объем 128 Келов (64 Келов — па-
мять программ, 64 Келов — память данных);
□ наличие команд блочной пересылки данных;
□ TMS3202x содержит внешний интерфейс для организации многопроцессор-
ных связей и средства синхронизации для доступа к разделяемой памяти;
□ возможность организации тактов ожидания при доступе к медленной
внешней памяти или медленным периферийным устройствам;
□ TMS3202x содержит на кристалле таймер и последовательный порт;
□ наличие пяти (TMS32020) или восьми (TMS320C25) вспомогательных
регистров и специального арифметического устройства для них;
□ наличие аппаратного стека размером 4 слова для TMS32020 или 8 слов
для TMS320C25 и возможности программного расширения стека в памя-
ти данных;
□ наличие команд обработки битовых данных;
□ наличие трех маскируемых пользователем прерываний;
□ наличие режима прямого доступа к памяти (только для TMS320C25).
3.3.3. Микропроцессоры
семейства TMS320C5X
Процессоры следующего за TMS320C2x поколения, обеспечивая совмести-
мость по системе команд и наследуя общие архитектурные особенности по-
строения процессоров предыдущих поколений, отличаются от них больши-
ми функциональными возможностями, повышенной тактовой частотой,
меньшим энергопотреблением (119].
Структурная схема процессора TMS320C5x приведена на рис. 3.9.
В процессоре реализована аппаратная поддержка кольцевых буферов, име-
ется возможность одновременного создания в памяти данных двух незави-
симых кольцевых буферов. Существует возможность кратного выполнения
блока программы. Процессор содержит 11 теневых регистров, используемых
для быстрого сохранения/восстановления состояния основных регистров в
случае возникновения программных или аппаратных прерываний. Парал-
лельное логическое устройство процессора позволяет выполнять битовые и
логические операции над операндами, содержащимися в памяти и различ-
ных регистрах.
Процессор может использовать 244 Келов памяти, в том числе: 64 Келов —
память программ, 64 Келов — память данных, 64 Келов — 16-разрядные пор-
ты ввода/вывода, 32 Келов — глобальная память. Для возможности работы с
медленной памятью в процессор включен программируемый генератор тактов
ожидания. Для использования процессора в мультипроцессорных системах с
разделяемой памятью в нем предусмотрены сигналы запроса и подтверждения
готовности памяти. Различия между процессорами семейства TMS320C5x за-
ключаются, в основном, в конфигурации внутрикристальной памяти.
Рис. 3.9. Структура микропроцессора TMS320C5X
Помимо 16-разрядных портов ввода/вывода, процессоры семейства имеют
2 последовательных порта (у TMS320C52 — 1), таймер, интерфейс тестиро-
вания и отладки JTAG.
Значительное внимание при разработке процессоров данного семейства уде-
лялось обеспечению энергосберегающих режимов функционирования. Про-
цессоры выпускаются на напряжение 3 В и 5 В. В микропроцессорах под-
держиваются активный режим, периферийный режим и режим "сна".
Потребление тока в активном режиме составляет 1,5 мА/MIPS на 3 В и
2,5 мА/MIPS на 5 В. В периферийном режиме центральный процессор ос-
танавливается, работает только периферия, и потребление тока составляет
0,25 мА/MIPS и 0,4 мА/MIPS для 3 и 5 В соответственно. В режиме "сна"
процессор останавливается до получения сигнала прерывания. Потребление
тока составляет 5 мкА.
3.3.4. Микропроцессоры
семейства TMS320C2xx
Архитектура TMS320C2xx [120, 121] базируется на архитектуре семейства
TMS320C5x. Основные свойства микропроцессоров TMS320C2xx:
□ совместимость по программному коду с семействами 'С1х, 'С2х;
□ расширенная система команд для ускорения алгоритмов ЦОС и под-
держки конструкций языков высокого уровня;
□ высокая производительность (до 40 MIPS);
□ низкое потребление энергии благодаря наличию энергосберегающего ре-
жима.
Модифицированная гарвардская архитектура, предусматривающая раздель-
ные шины команд и данных, позволяет одновременно выбирать команды и
операнды. Возможность обмена между памятью программ и данных увели-
чивает гибкость микропроцессора. Так, коэффициенты, расположенные в
памяти программ, могут быть переданы в память данных, что приводит к
экономии памяти, выделяемой для коэффициентов.
Процессор имеет увеличенный, по сравнению с предыдущими семействами,
объем внутрикристальной памяти и перепрограммируемую энергонезависи-
мую flash-память.
Наличие 4-этапного конвейера позволяет TMS320C2xx выполнять в среднем
одну команду за такт. 'С2хх содержит средства управления прерываниями,
повторного выполнения операций, вызова подпрограмм и функций.
Типовая структура микропроцессора 'С2хх приведена на рис 3.10.
Все микропроцессоры семейства имеют одинаковое процессорное ядро
и отличаются различными конфигурациями памяти и внутрикристальной
периферией. Все устройства, кроме TMS320C209, имеют по 1 синхронному
и 1 асинхронному последовательному порту.
Синхронный порт предназначен для обмена с другим процессором, кодеком
и внешними периферийными устройствами. Порт имеет два буфера памяти
емкостью по 4 слова с дисциплиной доступа FIFO и механизмом генерации
прерываний. Максимальная скорость обмена через синхронный порт равна
половине тактовой частоты процессора (для 40 МГц — скорость обмена
20 Мбит/с).
Асинхронный последовательный порт предназначен для обмена данными с
другими устройствами. При обмене используется 8-битное представление
данных с 1 стартовым и 1 или 2 стоповыми битами. Скорость обмена может
достигать 250 тыс. 10-битных знаков в секунду.
Благодаря лучшему соотношению производительность/стоимость среди всех
микропроцессорных семейств ($0,12 за MIPS), микропроцессоры TMS320C2xx
получили самое широкое распространение и используются в связных систе-
мах, мультимедиа-устройствах, средствах промышленной автоматизации,
военной технике.
Рис. 3.10. Структура микропроцессора TMS320C2xx
3.3.5. Микропроцессоры
семейства TMS320C54X
Процессоры TMS320C54x отличает комбинирование модифицированной
гарвардской архитектуры с тремя внутренними шинами данных и одной
шиной команд 1122, 123|. Такая внутренняя организация процессора позво-
ляет обеспечить высокую степень параллельности выполнения команд. Это-
му семейству свойственна высокоспециализированная система команд,
наличие на кристалле дополнительных периферийных устройств и увели-
ченный объем внутренней памяти. Все это позволяет добиться высокой гиб-
кости и производительности.
Три шины данных используются для чтения операндов и записи результата
операции одновременно с выборкой инструкции в одном процессорном
цикле.
Общий объем адресуемой процессором памяти составляет 192 слова. Раз-
рядность слов — 16. Память разбита на 3 специализированных сегмента:
команд, данных и ввода/вывода, каждый из которых может иметь размер до
64 Келов. В некоторых моделях внутри процессора может быть размещена
ROM объемом до 48 слов и до 10 Келов двухвходовой RAM. В процессоре
предусмотрена опция защиты данных во внутренней памяти от сканирова-
ния. При установке режима защиты ни одна из команд не сможет получить
доступ к содержимому внутрикристальной памяти.
Для ускорения выполнения типовых операций сигнальной обработки, по-
мимо "стандартных" для процессоров ЦОС блоков барабанного сдвига и ад-
ресной арифметики, процессор содержит ряд дополнительных функцио-
нальных модулей, повышающих его гибкость и производительность. Блок
умножения с накоплением (МАС) выполняет над 17-битными операндами
операции вида S := 5 + a х b за один процессорный такт. Подобные опера-
ции характерны для алгоритмов фильтрации, свертки, вычисления корреля-
ционной функции.
Для быстрого вычисления значений у = ехр(х) микропроцессор содержит блок
вычисления экспоненциальной функции. Этот блок, используя значение ак-
кумулятора как значение аргумента функции х, позволяет вычислять соответ-
ствующее значение у = ехр(х) за один такт. Для эффективной реализации
оператора Витерби служит блок CMPS Operation, выполняющий за один цикл
операцию сравнения/выбора с накоплением (Add/Compare Selection).
АЛУ микропроцессора способно выполнять арифметические или булевы
операции над комплексными числами (используя два регистра-
аккумулятора — АССА и АССВ) или может функционировать как два 16-
разрядных АЛУ, выполняющих одновременно две 16-разрядные операции.
АЛУ и МАС могут реализовывать операции в цикле одновременно.
Устройство барабанного сдвига осуществляет сдвиг данных на 0—31 разря-
дов влево или 0—16 разрядов вправо за один такт, а также совместно с блоком
вычисления экспоненциальной функции позволяет выполнять нормализа-
цию содержимого аккумулятора за один такт. Дополнительные возможности
сдвига позволяют процессору осуществлять масштабирование данных, выде-
лять разряды числа, предотвращать возникновение переполнения и потерю
точности.
Все микропроцессоры семейства TMS320C54x имеют одинаковую структуру
(рис. 3.11), однако отличаются друг от друга расположенной на кристалле
периферией. В состав периферии входят:
□ программно-управляемый генератор тактов ожидания;
□ программный переключатель банков памяти;
□ параллельные порты ввода/вывода;
□ аппаратный таймер и генератор тактовых импульсов.
Генератор тактов ожидания позволяет увеличить число тактов внешней ши-
ны для работы с медленной внешней памятью и внешними устройствами.
Переключатель банков памяти позволяет автоматически добавлять один такт
при пересечении границ банка памяти внутри программного адресного про-
странства или при переходе от пространства адресов команд к пространству
адресов данных. Этот дополнительный такт позволяет устройству памяти
освободить шину раньше, чем другое устройство получит доступ к ней, из-
бегая тем самым конфликтной ситуации при обращении к памяти.
Микропроцессоры семейства имеют 64 Клорта ввода/вывода. Эти порты
предназначены для связи с внешними устройствами с использованием мини-
мума дополнительных внешних декодирующих схем. Интерфейс главного
порта (HPI — Host Port Interface) — 8-разрядный параллельный порт, предна-
значенный для связи сигнального процессора и хост-процессора системы. Мы
будем использовать термин "хост-процессор", т. к. представляется, что его за-
мена на "главный процессор" или "управляющий процессор" не в полной мере
адекватна. Обмен данными между хост-процессором и сигнальным процессо-
ром осуществляется через внутрикристальную HPI-память объемом 2 Келов,
разрядности 16, которая может также использоваться как память команд или
данных. Скорость обмена по HPI составляет до 160 Мбайт/с.
Микропроцессоры семейства содержат высокоскоростные дуплексные по-
следовательные порты, позволяющие связываться с другими микропроцес-
сорами, кодеками и другими устройствами. В микропроцессоре реализованы
следующие разновидности последовательных портов:
□ универсальный порт;
□ мультиплексный с временным уплотнением;
□ порт с автобуферизацией.
Универсальный последовательный порт использует два отображаемых в па-
мять регистра: регистр передачи данных и регистр приема данных. Передача
и прием данных сопровождаются генерацией маскируемого прерывания,
которое может быть обработано программно. Порт с разделением времени
может обслуживать до семи устройств. Буферизированный последователь-
ный порт позволяет осуществлять непосредственный обмен между устройст-
вом и памятью, не используя при передаче ресурсов процессора. Макси-
мальная скорость обмена по последовательному порту может составлять до
40 Мбайт/с.
Как и в семействах TMS320C5x, TMS320C2xx, в процессоре реализована
эффективная трехуровневая система управления энергопотреблением.
Высокая производительность (до 66 MIPS) и расширенные функциональные
возможности при невысокой цене обеспечивают процессору обширные об-
ласти применения: сотовые и радиотелефоны, персональные системы ра-
диовызова, карманные персональные компьютеры (PDA — Personal Digital
Assistant), устройства беспроводной передачи данных (радиосети) и т. д.
3.3.6. Микропроцессоры
семейства TMS320C3X
Первым представителем класса процессоров с плавающей точкой стал
TMS320C30 [124]. На момент выпуска процессора — в конце 1980 годов —
TMS320C30 значительно превосходил по производительности процессоры
других компаний — производителей сигнальных процессоров. Процессор
имеет гибкую систему команд, хорошую аппаратную поддержку операций с
плавающей точкой, мощную систему адресации, расширенное адресное
пространство, обеспечивает поддержку выполнения конструкций языка вы-
сокого уровня — С на аппаратном уровне.
Процессор производился по 0,7 мкм КМОП-технологии с тремя уровнями
металлизации. Все операции в процессоре выполняются за один такт. При
длительности такта 60 нс процессор TMS320C30 имеет быстродействие око-
ло 33 Mflops. Высокая производительность процессора на алгоритмах ЦОС
обеспечивается благодаря аппаратному выполнению ряда специфических
функций, которые в других процессорах реализуются программно или мик-
ропрограммно. Процессор имеет конвейерную регистро-ориентированную
архитектуру и может параллельно выполнять в одном такте умножение и
арифметико-логические операции с числами в формате с фиксированной
или плавающей точкой. Структура процессора приведена на рис. 3.12.
Кэш-память
64x32
2-входовая
память
1Кх32
256x32 (’С32)
2-входовая
память
1Кх32
512x32 (’С32)
ПЗУ
4Кх32 ССЗО)
Прогр. загрузки
(’СЗ^СЗг)
Первичный порт
интерфейса с
памятью
Доступ к данным
32-бит ('С30-'С31)
8/16/32-бит (С32)
Умножитель с фиксированной и плавающей точкой АЛУ операций с фиксированной и плавающей точкой
8 регистров повышенной точности
8 вспомогательных регистров
Генератор адреса 0 Генератор адреса 1
12 регистров управления
Два режима управления энергопотреблением ('С31-'С32)
ЦПУ
Доступ к программе
32-бит (’СЗО-'СЗП
16/32-бит СС32)
Процессор имеет 32-разрядную шину команд и данных и 24-разрядную ши-
ну адреса. Содержит 2 блока ОЗУ по одному 32-разрядному Кслову, 32-
разрядный умножитель с плавающей точкой, кэш-память команд объемом
64 слова (32-разрядных), 8 регистров для операций с повышенной точно-
стью, 2 генератора адреса и регистровый файл. В процессоре реализованы
разнообразные методы адресации. 40-разрядное АЛУ процессора работает
как с целыми числами, так и с числами в формате с плавающей точкой.
Встроенный контроллер ПДП позволяет совмещать во времени вычисления
и выполнение обменов данными с памятью. Наличие у TMS320C30 мульти-
процессорного интерфейса, двух внешних интерфейсных портов, двух
последовательных портов, расширенной системы прерываний упрощает
конструирование систем на его основе. Благодаря своей высокой произ-
водительности и простоте использования в вычислительных системах
TMS320C30 может применяться как в качестве хост-процессора, так и в ка-
честве специализированного сопроцессора.
Процессоры 'СЗх отличаются, в основном, количеством последовательных
портов ('С31 и 'С32 - 1, 'СЗО - 2) и каналов ПДП ('СЗО, 'С32, - 2, СЗI - I).
Представители этого семейства получили большую популярность у раз-
работчиков. Учитывая значительный объем программных наработок для
микропроцессоров TMS320C3x, Texas Instruments в последствии повторно
выпустила это семейство, но уже по новой технологии 0,18 мкм, с увели-
ченной внутренней памятью (34 Келов), повышенной тактовой частотой и
меньшим энергопотреблением. Производительность обновленного микро-
процессора составила 150 Mflops.
Основными областями применения микропроцессоров семейства 'СЗх явля-
ются: цифровое аудио, ЗО-графика, видеоконференцсвязь, промышленные
роботы, копировально-множительная техника, телекоммуникационные сис-
темы.
3.3.7. Микропроцессоры
семейства TMS320C4X
Следующими представителями сигнальных процессоров с плавающей точ-
кой явились процессоры семейства TMS320C4X [125, 126|.
Благодаря своей уникальной архитектуре микропроцессоры TMS320C4x по-
лучили широкое распространение в мультипроцессорных системах и прак-
тически вытеснили ранее господствующее в этой технологической нише се-
мейства транспьютеров компании Inmos, рассматриваемые в главе 4.
Процессоры TMS320C4x совместимы по системе команд с TMS320C3x, од-
нако обладают большей производительностью и лучшими коммуникацион-
ными возможностями.
В семейство TMS320C4x входят процессоры TMS320C40, TMS320C44,
TMS320LC40.
TMS320C40 — имеет производительность 30 MIPS/60 Mflops и максималь-
ную пропускную способность подсистемы ввода/вывода 384 Мбайт/с. 'С40
содержит на кристалле 6 высокоскоростных (20 Мбайт/с) коммуникацион-
ных портов и 6 каналов ПДП, 2 Келов памяти, 128 слов кэш-памяти про-
грамм и начальный загрузчик. Две внешних шины обеспечивают работу с
4 Гелов объединенного адресного пространства.
Процессор TMS320C44 — более дешевый вариант, имеющий 4 коммуника-
ционных порта и адресуемое пространство 32 Мелов. Однако значения по-
казателей производительности и пропускной способности процессора те же,
что и у ’С40.
TMS320LC40 — архитектурный аналог TMS320C40, отличающийся низким
энергопотреблением, повышенной производительностью (40 M1PS/80
Mflops) и большей пропускной способностью (488 Мбайт/с).
Структура микропроцессора TMS320C40 приведена на рис. 3.13.
Центральный процессор TMS320C4x имеет конвейерную регистро-ориен-
тированную архитектуру. Компонентами ЦП являются:
□ умножитель;
□ арифметико-логический модуль;
О 32-разрядное барабанное устройство сдвига;
□ внутренние шины;
□ дополнительные модули регистровой арифметики;
□ регистровый файл.
Умножитель выполняет операции над 32-разрядными данными в формате с
фиксированной точкой и 40-разрядными данными в формате с плавающей
точкой, причем умножение производится за один такт (25 нс) для данных
любого типа и параллельно с обработкой данных в других функциональных
блоках микропроцессора (например, АЛУ).
АЛУ выполняет за один такт операции над 32-разрядными целыми и логиче-
скими данными и 40-разрядными числами в формате с плавающей точкой, в
том числе и операции преобразования форматов представления данных. Мик-
ропроцессор аппаратно поддерживает операции деления и извлечения квад-
ратного корня. Устройство барабанного сдвига позволяет за один такт выпол-
нить сдвиг данных влево или вправо на число позиций от 1 до 32.
Два дополнительных модуля регистровой арифметики (генераторы адреса)
функционируют параллельно с умножителем и АЛУ и могут генерировать
два адреса в одном такте. В процессоре поддерживается относительная базо-
вая, базово-индексная, циклическая и бит-реверсивная адресации.
Кэш-память
команд
512 Кбайт
двух-
входовое
ПЗУ
4 Кбайт
двух-
входовое
ПЗУ
4 Кбайт
ПЗУ
загрузки
4-------К
0(31-0) г
--------У
4-------\
А(ЗО-О) 1
V
Шина команд/данных
Умножитель с фиксированной и плавающей точкой АЛУ с фиксированной и плавающей точкой
12 регистров повышенной точности
8 вспомогательных регистров
Генератор адреса 0 Генератор адреса 1
14 регистров общего назначения
32-разрядное устройство барабанного сдвига
ЦПУ
пдп
канал О
ПДП
канал 1
ПДП
канал 2
ПДП
канал 3
ПДП
канал 4
ПДП
канал 5
Сопроцессор
ПДП
Таймер О
Таймер 1
Порт О
Порт 1
0)
л
Порт 4
Порт 5
Рис. 3.13. Структура микропроцессора TMS320C40
Первичный регистровый файл центрального процессорного устройства
(ЦПУ) представляет собой многовходовый файл из 32 регистров. Все реги-
стры первичного регистрового файла могут использоваться умножителем,
АЛУ и в качестве регистров общего назначения. Регистры имеют некоторые
специальные функции. Например, 12 регистров повышенной точности мо-
гут использоваться для размещения результатов операций с плавающей точ-
кой, 8 дополнительных регистров — для некоторых косвенных способов ад-
ресации, а также как целочисленные и логические регистры общего
назначения. Остальные регистры обеспечивают функции системы такие, как
адресация, управление стеком, прерывания, отображение статуса процессо-
ра, повторы блоков команд.
Регистры повышенной точности предназначены для хранения и обработки
32-разрядных целых чисел и 40-разрядных чисел с плавающей точкой. До-
полнительные регистры доступны как для АЛУ, так и для двух модулей ад-
ресной арифметики. Основная функция этих регистров — генерация 32-
разрядных адресов. Они также могут использоваться как счетчики циклов
или как регистры общего назначения.
Адресуемое микропроцессором пространство составляет 4 Гелов 32-разряд-
ных. На кристалле расположены два двухвходовых блока оперативной памя-
ти RAM0 и RAM1 размером 4 Кбайт каждый, а также двухвходовый блок
ROM, содержащий программу начальной загрузки.
Кэш-память команд процессора емкостью 128 слов (32-разрядных) содержит
наиболее часто используемые участки кода, что позволяет сократить среднее
время выборки команд. Высокая производительность TMS320C4X достигает-
ся благодаря внутреннему параллелизму процессов и многошинной органи-
зации процессора. Раздельные шины позволяют одновременно выполнять
выборку команды, данных и прямой доступ в память.
Шесть ('С44 четыре) высокоскоростных (160 Мбит/с) коммуникационных
портов обеспечивают эффективный обмен данными между процессорами.
В ходе передачи осуществляется буферизация передаваемых и принимае-
мых данных и автоматический контроль за синхронизацией всех обменных
операций между каналами, центральным процессором и сопроцессором
ПДП. Шесть каналов сопроцессора ПДП содержат собственные генерато-
ры адресов, счетчики, входные и выходные регистры и обеспечивают воз-
можность одновременного бесконфликтного обращения к памяти, обмена
данными с медленными модулями памяти и внешними устройствами, без
снижения производительности процессора. Особенностью сопроцессора
ПДП является способность автоматической инициализации каналов после
выполнения обмена.
Линк Ly, у = 0, ..., 5, состоит из 8-разрядной двунаправленной линии дан-
ных Dy (7—0) и двунаправленных одноразрядных управляющих линий для
передачи сигналов:
□ REQy — запрос коммуникационным портом маркера, разрешающего пе-
редачу по линку;
□ АС Ку — подтверждение предоставления линка для передачи данных;
□ STRy — строб коммуникационного порта, сопровождающий выдачу дан-
ных на линии данных;
□ CRDYy — сигнал готовности коммутационного порта к приему, выдавае-
мый принимающим С4х по завершении приема предыдущей порции
данных.
Линии данных и управляющие линии реализованы как двунаправленные, что
приводит к необходимости согласования состояний портов линков, соеди-
няющих два микропроцессора: один порт обязательно передающий, другой —
принимающий, либо оба порта находятся в третьем состоянии, исключающем
передачу электрических сигналов между ними. При начальной установке обя-
зательно выполнение этого требования, которое дальше поддерживается про-
токолом функционирования линка. Передающий порт отмечается маркером,
который передается другому порту при смене направления передачи по линку.
Передача маркера происходит за 4 такта.
Очереди портов
Каждый порт имеет входную и выходную FIFO-очереди. Процессор или ка-
нал ПДП пересылают данные в конец выходной FIFO-очереди порта для
передачи их по линку. Выборка принятых данных выполняется из начала
входной FIFO-очереди. Обе очереди имеют по 8 элементов, каждый из ко-
торых предназначен для хранения 32-битного слова. При соединении двух
С4х в каждом линке образуется очередь в 16 элементов: 8 элементов на од-
ном конце линка и 8 элементов на другом конце линка.
Интерфейс линков
Программное управление передачами данных по линкам выполняется путем
записи соответствующих кодов в регистры состояния и управления линков.
Для каждого линка в С4х выделена часть адресного пространства размером
16 слов:
О первое слово содержит управляющий регистр порта;
□ второе слово является элементом 0 входной FIFO-очереди;
□ третье слово служит элементом 7 выходной FIFO-очереди;
□ остальные слова резервные.
Поля и отдельные биты управляющего регистра определяют:
□ направление передачи порта: входной или выходной;
□ прекращение функционирования порта как входного и переключение на
функционирование как выходного;
□ прекращение функционирования порта как выходного и готовность пе-
реключиться в режим входного порта;
□ указатель заполненности выходной очереди;
□ указатель заполненности входной очереди.
Функционирование линков
Когда функционирование порта как входного прекращено, он не дает сиг-
нала готовности к приему после получения первого байта. Передача данных
останавливается до момента переключения порта в режим входного порта
или до поступления сигнала сброса. При этом передача данных после возоб-
новления идет без потери байтов.
Коммуникационный порт не выдает подтверждения на запрос маркера в
следующих случаях:
□ его функционирование как входного порта прекращено;
□ порт имеет заполненную входную Е1ЕО=очередь.
При этом порт, сохранив маркер, может функционировать как выходной.
Если коммуникационный порт прекращает функционировать в качестве
входного порта в момент приема запроса маркера, то подтверждение на за-
прос маркера выдается до остановки.
Прекращение функционирования порта как выходного приводит к следую-
щим последствиям:
□ если выходной порт не имеет маркера и его функционирование как вы-
ходного порта прекращено, то запрос на маркер не высылается;
□ если выходной порт имеет маркер и идет передача, то после выдачи пе-
редаваемого слова следующее слово не передается;
□ если выходной порт имеет маркер и его функционирование как входного
порта не прекращено, а функционирование как выходного порта пре-
кращено, то при запросе маркера он должен быть передан;
□ при установке функционирования порта как выходного при наличии
маркера передача возобновляется; при отсутствии маркера она должна
быть запрошена в обычном порядке.
Основной механизм синхронизации базируется на сигналах "готов/не готов".
Если канал прямого доступа в память или центральный процессор пытаются
прочитать из пустой входной очереди или записать в полную выходную оче-
редь, выдается сигнал "не готов" и каналы ПДП или ЦП продолжат чтение
или запись после получения сигнала "готов".
Сигналом готовности для выходного канала является OCRDY (Output Channel
Ready), который также является сигналом прерывания. Сигналом готовно-
сти для входного канала является ICRDY (Input Channel Ready), который
также является сигналом прерывания.
Каждый порт способен генерировать четыре различных сигнала прерывания:
□ входная очередь полна (input channel full);
□ входной канал готов (input channel ready);
□ выходной канал готов (output channel ready);
□ выходная очередь пуста (output channel empty).
ЦП может обрабатывать все 4 сигнала, а канал ПДП только сигналы готов-
ности.
Два 32-разрядных таймера могут работать как с внутренней, так и с внешней
синхронизацией, осуществлять подсчет временных интервалов и внешних
событий, выдавая сигналы процессору или во внешнюю среду.
3.3.8. Микропроцессоры
семейства TMS320C8X
Микропроцессор TMS320C80, выпушенный в конце 1994 года 1127], имеет
второе название — MVP (Multimedia Video Processor — мультимедийный ви-
деопроцессор), что обусловлено его высокой эффективностью на задачах
обработки изображений, в системах виртуальной реальности, компрессии и
декомпрессии видео- и аудиоданных, обработки связной информации.
TMS320C80 представляет собой новый подход к повышению производи-
тельности и функциональности цифровых сигнальных процессоров: в одной
микросхеме объединено четыре усовершенствованных цифровых процессора
обработки сигналов (ADSP — Advanced Digital Signal Processor), каждый из
которых выполняет за такт несколько RISC-операций, и пятый процессор,
называемый главным процессором (Master Processor — МР), — 32-разряд-
ный процессор с высокопроизводительным устройством обработки чисел в
формате с плавающей точкой.
В дополнение к процессорному ядру на кристалле размещены:
□ контролер обмена (ТС — Transfer Controller) — интеллектуальный кон-
троллер ПДП, поддерживающий интерфейс с DRAM и SRAM;
□ видеоконтроллер (VC — Video Controller);
□ порт тестирования и отладки — JTAG;
□ 50 Кбайт SRAM.
Выпускается также упрощенный вариант микропроцессора TMS320C82, ко-
торый отличается меньшим объемом памяти, количеством сигнальных про-
цессоров ADSP (2), отсутствием видеоконтроллера и, соответственно, мень-
шей стоимостью.
Структура процессора изображена на рис. 3.14.
Суммарная производительность TMS320C80 на регистровых операциях до-
стигает 2 млрд RISC-подобных команд в секунду. Благодаря столь высокой
производительности TMS320C80 может заменить при реализации ряда при-
ложений более 10 высокопроизводительных сигнальных микропроцессоров
или универсальных микропроцессоров, выпускавшихся до его появления.
Приведем технические характеристики TMS320C80:
□ тактовая частота 40 или 50 МГц;
□ производительность свыше 2 млрд операций в секунду;
Рис. 3.14. Структура микропроцессора TMS320C8X
П 64-разрядный контроллер обмена с динамическим конфигурированием
шины на обмен 64-, 32-, 16- и 8-разрядными словами;
□ режим ПДП к SRAM, DRAM;
□ пропускная способность шины памяти — 2,4 Гбайт/с при передаче дан-
ных и 1,8 Гбайт/с при передаче команд;
□ объем адресного пространства — 4 Гбайт;
□ поддержка до 4 внешних прерываний;
□ напряжение питания 3,3 В;
□ около 4 млн транзисторов на кристалле;
□ технология производства КМОП 0,5 мкм.
Архитектура
микропроцессора TMS320C80
Архитектура процессора TMS320C80 относится к классу MIMD — множест-
венный поток данных, множественный поток команд. Входящие в состав
TMS320C80 процессоры программируются независимо один от другого и
могут выполнять как разные, так и одну общую задачу. Обмен данными ме-
жду процессорами осуществляется через общую внутрикристальную память,
доступ к которой обеспечивает матричный коммутатор (Crossbar), выпол-
няющий также функции монитора при одновременном обращении к одному
сегменту памяти нескольких процессоров.
Рассмотрим подробнее архитектуру процессоров, входящих в состав
TMS320C80.
Архитектура главного процессора
Главный процессор — это вычислительное устройство с RISC-архитектурой
и встроенным сопроцессором для выполнения операций с плавающей точ-
кой. Подобно другим процессорам с RISC-архитектурой, МР использует
команды загрузки/сохранения для доступа к данным в памяти, а также вы-
полняет большинство целочисленных, битовых и логических команд над
операндами в регистрах в течение одного такта.
Вычислитель с плавающей точкой (FPU — Floating Point Unit) конвейери-
зирован и позволяет выполнять операции над данными как с одинарной,
так и с двойной точностью, совмещая в конвейере операции умножения?
сложения с накоплением, загрузки и сохранения результата. FPU использу-
ет тот же регистровый файл, что и устройство целочисленной и логической
обработки. Производительность устройства составляет около 100 Mflops.
Специальный механизм отметок (Scoreboard) фиксирует занятость регистров
и обеспечивает их бесконфликтное использование.
На рис. 3.15 приведена структура главного процессора.
Основными компонентами МР являются:
□ регистровый файл, состоящий из 31 регистра (32-разрядного);
□ барабанное устройство сдвига (Barrel Rotator);
□ генератор маски;
Л таймер;
□ целочисленное АЛУ;
Л управляющий регистр;
Л 4 аккумулятора с плавающей точкой двойной точности;
□ умножитель с плавающей точкой;
Л сумматор с плавающей точкой;
Л контролер кэш-памяти.
Объем каждого из внутрикристальных кэшей МР для команд и данных ра-
вен 4 Кбайта. Управление кэш-памятыо осуществляет входящий в состав
МР контроллер.
МР может обслуживать до четырех внешних прерываний. Запрос на обслу-
живание трех из них должен иметь форму импульса, а для одного — переда-
ча управления процедуре обработки осуществляется по изменению уровня
напряжения.
Для различных схем распараллеливания обработки в рамках микропроцес-
сора МР может использоваться как управляющий или как универсальный
арифметико-логический и графический процессор.
31 32-разрядный регистр Таблица занятости регистров (Scoreboard)
Устройство барабанного сдвига Генератор маски 4 аккумулятора с плавающей точкой двойной точности
Компаратор на О
Целочисленое АЛУ Умножитель с плавающей
Контроль переполнения точкой одинарной точности
Таймер
Управляющие
регистры
Регистр команд Программный счетчик Инкремент программного счетчика Сумматор с плавающей точкой двойной точности *
Логика эмуляции Мультиплексор
Контроллер кэш-памяти команд Контроллер кэш-памяти данных
Интерфейс коммутатора
Рис. 3.15. Структура главного процессора
Набор инструкций МР включает в себя:
П арифметические операции;
□ логические операции;
□ операции сравнения;
□ операции с плавающей точкой;
□ арифметические преобразования;
□ векторные арифметические операции;
□ векторные операции умножения/накопления;
□ векторные операции преобразования;
П векторные операции умножения/накопления с удвоенной точностью;
□ операции ветвления и переключения контекста;
□ команды управления;
□ команды чтения/записи ОЗУ;
□ команды сдвига.
Архитектура ADSP-процессоров
Архитектура ADSP-процессоров TMS320C80 оптимизирована для приложе-
ний, связанных с обработкой 2- и 3-мерной графики, видеоизображений и
звука. ADSP может выполнять за один такт одновременно операцию умно-
жения, арифметико-логическую операцию (например, сдвиг-суммирование)
и два обращения к памяти. Внутренний параллелизм ADSP позволяет обес-
печить на некоторых алгоритмах быстродействие свыше 500 млн операций в
секунду.
ADSP манипулирует 32-разрядными словами, а разрядность команд состав-
ляет 64 бита. Процессор использует прямую, непосредственную и 12 видов
косвенной адресации.
Архитектура ADSP характеризуется следующими параметрами:
□ 3-этапный конвейер;
□ 44 доступных пользователю регистра (10 адресных, 6 индекса, 8 данных,
20 — прочих);
□ 32-разрядное 3-входовое АЛУ;
□ репликатор битов;
□ два адресных устройства;
□ 32-разрядное устройство барабанного сдвига;
□ генератор масок;
□ блок условных операций (для сокращения времени выполнения переходов).
Структура ADSP-процессора показана на рис. 3.16.
На рисунке обозначены:
□ А/S — блок выравнивания/расширения знакового разряда;
□ Repl — репликатор.
Контроллер обмена
Контроллер обмена управляет операциями обмена процессоров и памяти
как внутри кристалла (через коммутатор), так и вне кристалла, с использо-
ванием входящих в его состав интерфейсных схем, поддерживающих все
распространенные стандарты памяти (DRAM, VRAM, SRAM) и обеспечи-
ваюших возможность динамического изменения разрядности шины от 8 до
64. Используя приоритетную дисциплину обслуживания запросов к памяти
в режиме ПДП, контроллер обмена позволяет выполнять обмен данными,
не прерывая вычислений со скоростью до 400 Мбайт/с.
Контроллер обмена поддерживает линейную и координатную адресацию
памяти для эффективного выполнения обмена при работе с 2- и 3-мерными
графическими изображениями.
Рис. 3.16. Структура ADSP-процессора
Видеоконтроллеры
Два расположенных на кристалле микропроцессора TMS320C80 видеокон-
троллера обладают возможностью захвата и отображения видеоинформации
в режимах как вертикального, так и горизонтального сканирования. Режимы
захвата/сканирования могут устанавливаться для каждого из контроллеров
независимо.
Области применения
микропроцессора TMS320C80
Области применения микропроцессора гораздо шире тех, что обозначены
его названием. Процессор нашел свое применение в системах: обработки
мультимедийной информации, видеоконференцсвязи, обработки 2- и 3-
мерной графики, моделирования виртуальной реальности, передачи данных.
3.3.9. Микропроцессоры
семейства TMS320C6X
Новое семейство процессоров ЦОС компании Texas Instruments —
TMS320C6x — включает в себя процессоры как с фиксированной, так и с
плавающей точкой [128—130|. Первый представитель данного семейства
TMS320C6201 оперирует с данными только в формате с фиксированной
точкой.
На тактовой частоте 200 МГц микропроцессор имеет производительность до
1,6 млрд операций в секунду. Областями его применения являются:
□ беспроводные системы передачи данных;
□ средства удаленной медицинской диагностики;
□ базовые станции мобильной связи;
□ модемные пулы и серверы удаленного доступа;
□ xDSL и кабельные модемы;
□ многоканальные телефонные платформы, офисные коммутаторы, систе-
мы речевой передачи сообщений;
□ мультимедийные системы.
TMS320G620I помимо процессорного ядра содержит:
□ 1 Мбит внутрикристальной памяти (512 Кбит для программы, 512 Кбит
для данных);
□ 32-битный интерфейс внешней памяти, поддерживающий стандарты па-
мяти SDRAM, SBSRAM, SRAM;
П два последовательных расширенных буферизированных порта;
□ 16-битный порт центрального процессора;
□ два канала доступа к памяти данных с возможностью начальной загрузки;
□ генератор интервалов времени.
Построенный в соответствии с разработанной компанией Texas Instruments
архитектурой VelociTI, процессор 'С62хх — первый из сигнальных VLIW-
процессоров, использующий для повышения производительности паралле-
лизм уровня команд.
Структура микропроцессора TMS32OC62O1 приведена на рис. 3.17.
Процессор TMS320C6201 состоит из трех основных частей: центрального
процессора (ядро), периферийных устройств и памяти.
Рис. 3.17. Структура микропроцессора TMS320C6201
Ядром TMS320C6201 является VelociTI VLIW-процессор с 8 функциональ-
ными модулями, включая 2 умножителя и 6 АЛУ. Модули взаимодействуют
через два регистровых файла, содержащих по 16 32-разрядных регистров.
ЦП может выполнять до 8 команд за один такт.
Программный параллелизм выявляется на этапе компиляции, анализ зави-
симости по данным аппаратными средствами на стадии выполнения не
производится. Код выполняется на независимых функциональных устройст-
вах в последовательности, задаваемой программой.
В процессоре используется упаковка команд, сокращающая размеры кода и
время выборки команд. 256-разрядная шина памяти программ позволяет
выбирать за один такт восемь 32-разрядных команд. Все команды содержат
условия их выполнения, что позволяет сократить расходы производительно-
сти процессора на выполнение переходов и увеличить степень параллелизма
обработки.
Процессор может оперировать с 8/16/32-разрядными данными. Для прило-
жений, требующих высокой точности вычислений, предусмотрена возмож-
ность вычислений с 40-разрядными операндами. Для результатов всех ос-
новных арифметических операций выполняется округление и нормализация.
В процессоре реализованы операции над битовыми полями, такие как
"выделить" (extract), "установить" (set), "очистить" (clear), "подсчет битов" (bit
counting).
Центральный процессор имеет два тракта обработки данных, каждый из ко-
торых содержит функциональные модули (L, S, М, D) и регистровый файл
(16 32-разрядных регистров). Функциональные модули выполняют сдвиг,
умножение, логические и адресные операции. Все операции выполняются
над регистрами. Два набора устройств адресации данных (D1 и D2) отвеча-
ют исключительно за все пересылки данных между регистровым файлом и
памятью. Управляющий регистровый файл определяет различные аспекты
функционирования процессора.
Процесс обработки VLIW начинается с выборки из памяти команд 256-
битного пакета. Команды связываются для совместного выполнения в вы-
полняемый пакет (до 8 команд) по значению младшего бита команды.
Устройство выборки-декодирования-диспетчеризации команд может на-
правлять к функциональным модулям до 8 команд (32-разрядных) за один
такт по каждому из путей обработки (А и В).
В 'С62хх реализованы прямой и циклический (для регистров А4-А7 и В4*В7)
способы адресации. Способ адресации определяется регистром режима ад-
ресации (AMR — Address Mode Register).
Процессоры семейства 'С62хх имеют 14 прерываний, соответствующих сиг-
налу Reset (Сброс), немаскируемому прерыванию (NMI — None Masked
Interrupt) и прерываниям с номерами 4—15.
'С62хх содержат внутрикристальную память, которая может использоваться
как память программ или кэш-память. Интерфейс внешней памяти процес-
сора объединяет в единое адресное пространство внутреннюю и внешнюю
память.
Внутрикристальная память разделена на память данных и память программ.
Процессоры семейства 'С62хх имеют два 32-разрядных порта к памяти дан-
ных и один 256-разрядный порт к памяти программ для выборки инструк-
ций. Процессор TMS320C6201 содержит на кристалле по 64 Кбайт памяти
данных и программ. В процессоре используется расслоение памяти данных
(четыре 16-разрядных банка) для повышения скорости выборки за счет од-
новременного обращения к различным банкам памяти.
Дополнительно процессоры семейства 'С62хх могут содержать на кристалле
интерфейс внешней памяти, контроллер ПДП, интерфейс хост-порта (HPI),
средства энергосбережения, расширенные буферизированные последова-
тельные порты, 32-разрядные таймеры.
Следующий представитель семейства TMS320C6x — микропроцессор
TMS320C6701 поддерживает операции с плавающей точкой, имеет более
широкий (128 бит) интерфейс внешней памяти и меньшую частоту рабо-
ты — 167 МГц.
В состав микропроцессора TMS320C6701 включены дополнительные функ-
циональные модули:
□ М-модуль умножения 24 32-разрядных целочисленных данных и 32 64-
разрядных данных в формате с плавающей точкой;
□ L-модуль выполнения арифметических операций над 32 40-разрядными
целочисленными данными и 32 64-разрядными данными в формате с
плавающей точкой;
□ S-модуль выполняет операции сдвига, перехода и отдельные операции с
32 64-разрядными данными в формате с плавающей точкой;
О D-модуль, выполняющий адресные операции.
Пиковая производительность данного микропроцессора составляет 688 Mflops.
3.4. Сигнальные микропроцессоры
компании Analog Devices
Микропроцессоры компании Analog Devices образуют два семейства:
ADSP21XX и ADSP210xx 1131, 132].
Семейство ADSP21xx — набор однокристальных 16-разрядных микропро-
цессоров с общей базовой архитектурой, оптимизированной для выполне-
ния алгоритмов цифровой обработки сигналов и других приложений, тре-
бующих высокопроизводительных вычислений с фиксированной точкой.
Микропроцессоры этого семейства на сегодняшний день насчитывают
15 представителей, которые отличаются друг от друга, в основном, располо-
женными на кристалле периферийными устройствами, такими как кэш-
память, таймеры, порты и т. п.
Второе семейство микропроцессоров ADSP210xx объединяет 32-разрядныс
микропроцессоры, ориентированные на сигнальные алгоритмы, требующие
выполнения вычислений с плавающей точкой. Семейство представлено
микропроцессорами ADSP21010, ADSP21020, ADSP21060, ADSP21062,
ADSP21160, ADSP-TS001.
В рамках каждого семейства микропроцессоров обеспечивается совмести-
мость снизу вверх по системе команд. Старшие представители семейства
обладают большей производительностью и содержат на кристалле дополни-
тельные функциональные блоки.
В дальнейшем изложении при рассмотрении сигнальных микропроцессоров
компании Analog Devices будем выделять общие архитектурные и конструк-
тивные особенности каждого семейства, отмечая наиболее существенные
отличия отдельных его представителей.
3.4.1. Микропроцессоры
семейства ADSP21xx
Микропроцессоры семейства ADSP2Ixx |I31| успешно конкурируют с ана-
логичной продукцией компаний Motorola и Texas Instruments благодаря вы-
сокой производительности и низкой цене, а также наличию развитых аппа-
ратных и программных средств разработки прикладных систем. Высокая
производительность процессоров на сигнальных алгоритмах достигается за
счет многофункциональной и гибкой системы команд, аппаратной реализа-
ции большинства типичных для сигнальной обработки операций, высокой
степени параллелизма процессов в микропроцессоре, сокращения команд-
ного цикла. Микропроцессоры ADSP2lxx имеют модифицированную гар-
вардскую архитектуру, в рамках которой предусматривается возможность
доступа в память команд при ее физическом разделении с памятью данных.
Аналогичную архитектуру, ставшую для процессоров ЦОС стандартом де-
факто, имеют многие другие процессоры, в том числе и TMS320xxx Сем.
разд. 3.3).
Обобщенная структура микропроцессора ADSP2lxx приведена на рис. 3.18.
Каждый микропроцессор семейства содержит три независимых функцио-
нальных блока: АЛУ, умножитель с накоплением (МАС) и устройство бара-
банного сдвига. Каждый блок непосредственно оперирует с 16-разрядными
данными и обеспечивает аппаратную поддержку вычислений с различной
точностью.
Микропроцессор содержит генератор адресов команд и два генератора адре-
сов данных, обеспечивающие адресацию к данным и командам, располо-
женным как во внутренней, так и во внешней памяти. Параллельное функ-
ционирование генераторов сокращает длительность выполнения команды,
позволяя за один такт выбирать из памяти команду и два операнда.
Генератор
адреса
данных 1
Генератор
адреса
данных 2
-м Регистр Л
команд V
Память
(SRAM)
2Кх64
Память
(SRAM)
1Кх16
Генератор
адреса
загрузки
Флаги
для 2111
з
Со
S
Шина ОМА
Генератор
адресов
команд
ПЗУ
2Кх64
; АЦП/ЦАПи. ;
фильтры
/тлнш/л ч/
-А (толыко у
Внешняя
•шина
адреса
Шина~РМР~
Шина РМР~
Г
rv
р* МАС
АЛУ
Входные
регистры
Входные
регистры
Выходные
регистры
RBUS
Выходные
регистры
21msp5x)
[ПййаРМ7
мих
ших
Таймер
5
5
Регистры
интерфейса
хост-порта
Управление
энергопо-
треблением
Приемный
регистр
Последова-
тельный порт
Передающий
регистр
для 2111
217х
21msp5x
Передающий
регистр
Логика
управле-
ния
Прием)ный
регистр
Последова-
тельный! порт
О
Рис. 3.18. Обобщенная структура микропроцессора ADSP21xx
Входные
регистры
Устрой-
ство
сдвига
Выходные
регистры
Схема
>| компанди-
J рования
Внешняя
шина
данных
Глава 3
Последовательные порты обеспечивают интерфейс с большинством стан-
дартных последовательных устройств, а также с аппаратными средствами
сжатия/восстановления данных, использующими А- и ц-законы компанди-
рования.
Порт интерфейса с хост-процессором позволяет без дополнительных интер-
фейсных схем взаимодействовать с хост-процессором системы, в качестве
которого может использоваться как процессор данного семейства, так и
другой микропроцессор.
Микропроцессор ADSP-21msp5x отличается наличием аналогового интер-
фейса, позволяющего вводить и выводить обрабатываемый сигнал в анало-
говой форме. В состав интерфейсных блоков входят АЦП, ЦАП, цифровой
и аналоговый фильтры, параллельный интерфейс.
Микропроцессор ADSP-2181 содержит внутренний порт ПДП и байтовый
порт ПДП, которые обеспечивают быстрый обмен с внутренней памятью.
Внутренний порт ПДП поддерживает асинхронный обмен с памятью про-
грамм, а байтовый порт позволяет записывать и читать как команды, так и
данные.
Микропроцессоры компании Analog Devices отличает высокая степень па-
раллелизма внутренних операций. За один такт процессор может:
□ генерировать адрес следующей команды;
О загрузить из памяти следующую команду;
□ выполнить 1 или 2 пересылки данных;
□ обновить 1 или 2 указателя на данные;
О выполнить операцию.
Микропроцессор, имеющий соответствующее устройство, может в этом же
такте:
□ принять и/или передать данные через последовательные порты;
□ принять и/или передать данные хост-процессору;
□ принять и/или передать данные через аналоговый интерфейс.
Основные характеристики микропроцессоров семейства ADSP-21XX приве-
дены в табл. 3.2.
Таблица 3.2. Основные характеристики микропроцессоров семейства 21 хх
Возможности 2101 2103 2105 2115 2111 2171 2173 2181 2183 21msp58
АЛУ + + + + + + + +
Блок МАС + + + + + + + + + +
Сдвиг + + + + + + + + + +
Таблица 3.2 (окончание)
Возможности 2101 2103 2105 2115 2111 2171 2173 2181 2183 21msp58
Генератор адресов данных + + + + + + + + + +
Генератор адресов команд + + + + + + + + + +
ОЗУ данных, Келов 1 1 0,5 0,5 1 2 2 16 16 2
ОЗУ команд, Келов 2 2 1 1 2 2 2 16 16 2
Таймер + + + + + + + + + +
Многоканаль- ный последов, порт + + — + + + + + + +
Последова- тельный порт 1 + + + + + + + + + +
Порт хост- интерфейса — — — — + + + — — +
Порт ПДП — — — — — — — + + —
Аналоговый интерфейс — — — — — — — — — +
Напряжение питания, В 5 3,3 5 5 5 5 з.з 5 3,3 5
Производи- тельность (MIPS) 20 10 13.8 20 20 33 20 33 33 26
Общее для семейства ADSP-21XX микропроцессорное ядро изображено на
рис. 3.19. Арифметико-логическое устройство микропроцессора выполняет
стандартный набор арифметических и логических операций, включая деле-
ние. Устройство МАС выполняет операции умножения со сложением
(вычитанием) за один такт. Устройство сдвига осуществляет арифметиче-
ские и логические сдвиги операндов, нормализацию и возведение в степень.
Функциональные устройства микропроцессора могут обмениваться резуль-
татами выполнения операций по шине внутренних результатов.
Внутренние функциональные блоки связаны между собой с помощью пяти
шин: шина адресов памяти данных (DMA), шина адресов памяти команд
(РМА), шина данных памяти данных (DMD), шина данных памяти команд
(PMD) шина внутренних результатов (R). Первые четыре шины имеют
мультиплексированный внешний интерфейс в виде шины адреса и шины
данных (см. рис. 3.19).
Рис. 3.19. Структура микропроцессорного ядра ADSP21xx
По системе команд все микропроцессоры совместимы снизу вверх. Отдель-
ные представители семейства — ADSP-2171, 2181, 21msp5x — имеют допол-
нительные и расширенные команды. Каждая команда выполняется за один
i ПСА
такт. Многофункциональные команды микропроцессора объединяют не-
сколько пересылок данных с арифметико-логической обработкой.
Все устройства микропроцессора — 16-разрядные и оперируют с данными в
формате с фиксированной точкой. Числа представляются либо как беззна-
ковые, либо в дополнительном коде. Логические операции выполняются над
битовыми строками.
Совершенствование данного семейства микропроцессоров идет в направле-
нии повышения тактовой частоты, снижения энергопотребления и расши-
рения коммуникационных возможностей процессора.
Новый микропроцессор семейства ADSP-219x [133] содержит модифициро-
ванное ядро, которое рассматривается компанией Analog Devices как ключе-
вой элемент в технологии создания перспективных 16-разрядных сигнальных
процессоров общего назначения и процессоров для встроенных решений.
Специальные схемотехнические решения на основе данного ядра и про-
граммное обеспечение планируется создавать непосредственно для заказчи-
ка, под конкретно заданные требования и характеристики. Для приложений,
требующих высокой производительности, будут создаваться процессоры,
содержащие несколько ядер на одном кристалле. В будущем предполагается
выпуск микропроцессоров, содержащих 4 ядра на одном кристалле и обла-
дающих производительностью 1,2 миллиарда МАС в секунду на 1 квадрат-
ный дюйм площади кристалла.
Структура микропроцессора ADSP-219x показана на рис. 3.20.
Рис. 3.20. Структура микропроцессора ADSP-219x
По сравнению с процессорами семейства ADSP-218x, имеющими 14-разряд-
ную шину адреса, в семействе ADSP-219X используется 24-разрядная шина
адреса, что позволяет осуществлять прямую адресацию в пределах 64 Келов
или страничную адресацию в пределах 16 Мелов. Адресный генератор про-
цессоров семейства 219х поддерживает все ранее использованные и пять но-
вых режимов адресации.
ADSP-219x программно совместим с предыдущими микропроцессорами се-
мейства ADSP-21xx, обладает большей производительностью (до 300 MIPS)
и меньшим энергопотреблением (0,4 мВт/MIPS).
3.4.2. Микропроцессоры
семейства ADSP 21ххх
Второе семейство микропроцессоров компании Analog Devices — ADSP
21 ххх — ориентировано на обработку данных в формате с плавающей точ-
кой |132|. Общая структура ядра микропроцессоров данного семейства
сходна с ранее рассмотренной структурой ADSP 21хх, в то же время в мик-
ропроцессорах существенно расширена разрядность шин и функциональных
устройств, добавлена аппаратная поддержка обработки данных в формате с
плавающей точкой.
Выполнение операций над данными как с фиксированной, так и с плаваю-
щей точкой повлекло за собой усложнение структуры функциональных уст-
ройств и, как следствие, отразилось на сложности производства микропро-
цессора и его стоимости.
К данному семейству микропроцессоров компании Analog Devices относятся
следующие изделия: ADSP 21020, 21010, 21060, 21062, 21160.
Особенностями архитектуры микропроцессоров ADSP 21ххх являются:
□ быстрые и гибкие модули арифметики. Все команды выполняются за
один такт. Набор команд микропроцессора, наряду с традиционными
арифметическими операциями, включает такие, как 1/х, 1/R(x), команды
сдвига, циклического сдвига, комбинации операций сложения/вычитания
с умножением;
□ независимые потоки данных, поступающие в вычислительные модули и
исходящие из них. За один процессорный такт ADSP 21ххх может одно-
временно считать (записать) два операнда в регистровый файл, загрузить
два операнда в АЛУ, принять два операнда в умножитель, АЛУ и умно-
житель могут выработать два результата (или три, если АЛУ выполняет
операцию совместно со сложением/вычитанием). Командное слово про-
цессора (48-битное) позволяет задавать параллельное выполнение ариф-
метических операций и обмен данными;
□ повышенная точность и расширенный динамический диапазон выпол-
няемых операций. Все представители микропроцессорного семейства
оперируют с данными в 32-битном формате с плавающей точкой, 32-
битными целочисленными данными (в дополнительном коде и беззнако-
выми) и 40-битными данными расширенной точности с плавающей
точкой. Повышенная точность вычислений достигается благодаря
уменьшению ошибки округления результата в вычислительных моду-
лях. Аккумулятор для 32-разрядных данных с фиксированной точкой
имеет 80 разрядов;
□ наличие двух генераторов адреса. Генераторы адреса обеспечивают пред-
и постформирование прямого или косвенного адреса данных, выполняют
нал адресами модульные и бит-реверсивные операции;
□ эффективные средства формирования последовательности команд и ор-
ганизации программных циклов. Инициализация, возврат на начало и
выход из программного цикла выполняются за один процессорный такт
для уровня вложенности до 6. Процессор аппаратно поддерживает вы-
полнение команд перехода и перехода с задержкой.
Первым в семействе ADSP 21ххх был выпушен микропроцессор ADSP-21020
с тактовой частотой 33,3 МГц. Производительность данного микропроцес-
сора составила 66 Mflops. АЛУ процессора работает с 32-разрядными дан-
ными, расширяемыми до 40 разрядов при выполнении операций с плаваю-
щей точкой. При обработке данных в формате с фиксированной точкой
используется 32-разрядное представление и 80-разрядный аккумулятор.
Следующим представителем семейства явился более дешевый микропроцес-
сор ADSP-21010, работавший на тактовой частоте 21,5 МГц и оперирующий
только с 32-разрядными данными.
Структура микропроцессора ADSP-21020 приведена на рис. 3.21.
Универсальное АЛУ процессора, устройство барабанного сдвига и универ-
сальный умножитель функционируют независимо, обеспечивая высокую сте-
пень внутреннего параллелизма операций. Регистровый файл общего назна-
чения служит для обмена данными между вычислительными модулями и
внутренней шиной, а также для запоминания промежуточных результатов.
Регистровый файл содержит 32 регистра (16 первичных и 16 вторичных), име-
ет 10 портов и, совместно с гарвардской архитектурой процессора, позволяет
организовать эффективный обмен между вычислительными модулями и памя-
тью. Расширенная гарвардская архитектура процессора позволяет выбирать до
2 операндов и команду из кэш-памяти команд за один такт. Кэш-память
команд работает избирательно: кэшируются только те команды, выборка ко-
торых конфликтует с выборкой данных из памяти программ (РМ).
Адресные генераторы (DAG 1 и DAG 2) обеспечивают аппаратную реализа-
цию циклических буферов, использующихся алгоритмами цифровой фильт-
рации и ДПФ, для которых требуется циклическое изменение адресов об-
рабатываемых данных. Физически циклический буфер может быть располо-
жен, начиная с любого адреса памяти, а для ссылки на его содержимое
используются регистровые указатели. Два DAG содержат 16 первичных и
16 вторичных регистров, что позволяет работать одновременно с 32 цикли-
ческими буферами.
Рис. 3.21. Структура микропроцессора ADSP-21020
3.4.3. Микропроцессоры
с архитектурой SHARC семейства ADSP-2106X
Следующее поколение семейства ADSP 21ххх представлено микропроцессо-
рами ADSP-21060 и ADSP-21062. Будучи сходными с ранее рассмотренными
микропроцессорами ADSP-2IOxx по структуре ядра и совместимыми снизу-
вверх по системе команд, эти микропроцессоры обладают существенными
архитектурными. отличиями, что позволило разработчикам выделить их в
отдельное архитектурное семейство SHARC (Super Harvad Architecture Com-
puter). Архитектура SHARC (рис. 3.22) продолжает развитие транспьютер-
ного направления в микропроцессорной технике и задает новый стандарт
интеграции сигнальных процессоров в мультипроцессорную систему. Эта
архитектура является примером гармоничного сочетания принципов по-
строения распределенных и связанных систем, объединяя в себе простоту и
эффективность масштабирования распределенных систем с удобством про-
граммирования систем с разделяемой памятью.
В SHARC-микропроцессоре объединены высокоэффективное процессорное
ядро, выполняющее обработку данных в формате с плавающей точкой, ин-
терфейс с хост-процессором, контроллер ПДП, последовательные порты,
коммуникационные линки и разделяемая шина.
На тактовой частоте 40 МГц производительность микропроцессоров состав-
ляет 80 MIPS и 120 Mflops [134].
Рис. 3.22. Архитектура SHARC
Шинный коммутатор соединяет ядро процессора с независимым процессо-
ром ввода/вывода, двухвходовой памятью и портом шины мультипроцессор-
ной системы.
Вычислительные модули на базе микропроцессоров ADSP-2106x выпуска-
ются в виде микропроцессорных кластеров: платы с шинным интерфейсом
ISA, PCI или VME содержат от 3 до 8 узлов. Производятся также мезонин-
ные модули SHARCPAC и TRANSPAC, устанавливаемые в специальные
разъемы материнских плат.
Вычислительные модули на базе микропроцессоров SHARC используются в
системах радио- и гидролокации, в системах распознавания речи и обработки
изображений, в средствах телекоммуникации и медицинской диагностики.
Структура микропроцессора ADSP-2106x приведена на рис. 3.23.
Процессорное ядро
Двухвходовое ОЗУ (SRAM)
Кэш-память
Г енератор
адресов
данных 1
8x4x32
Генератор
адресов
данных 2
8x4x24
--------1 г\эш-памя,.
Таймер команд
—32x48 бит
1.Д
Г енератор
адресов
програмы
Два независимых
двухвходовых блока
Тестирование
и эмуляция
(JTAG)
32.
Шина РМА
адреса
Порт процессора Порт ввода/вывода
адреса данные данные
ЮА
IOD
48
Шина DMA
з:
РМА Мультиплексор
ЕРА шины адреса
.DMA
Шина PMD
Шинный
интерфейс
(IP)
Шина DMD
32/4р
Файл
Устройство
барабанного АЛУ
сдвига —ГТП
I Мультипроцессорный
I интерфейс
PMD Мультиплексор
EPD шины данных
DMD
Хост-интерфейс
Контроллер ПДП
Регистры
ЮР
Умножитель
16x48 бит
Управление,
состояние,
буферы
данных
Последовательный
порт (2)
Порты линков
(6)
Б
л
Б
л
о
2
£
^Процессор ввода/вывода (ЮРу
Рис. 3.23. Структура микропроцессора ADSP-2106X
Микропроцессоры ADSP-21060 содержат на кристалле 4 Мбит статической
двухвходовой памяти, которая может быть сконфигурирована для работы
16-битными (256 Келов), 32-битными (128 Келов) и/или 48-битными
(80 Келов) словами. Вся память может быть произвольно разделена на па-
мять программ и память данных.
Другой представитель этого семейства — микропроцессор ADSP-21062 —
отличается от ADSP-21060 меньшим объемом внутрикристальной памяти
(2 Мбит).
Общее адресуемое пространство микропроцессора составляет 4 Гслова.
Встроенный контроллер внешней оперативной памяти позволяет задавать
различное число генерируемых тактов ожидания и поддерживает странич-
ный обмен с динамической памятью.
Интерфейс с хост-процессором обеспечивает простое соединение со стан-
дартной 16- или 32-разрядной микропроцессорной шиной. Передача данных
через интерфейс осуществляется асинхронно, со скоростью, ограниченной
тактовой частотой микропроцессора. Хост-интерфейс доступен через внеш-
ний порт и отображается в адресное пространство микропроцессора. Четыре
канала контроллера ПДП обеспечивают обмен данными и командами через
хост-интерфей с с минимальным участием процессорного ядра.
Расположенный на кристалле 10-канальный контроллер ПДП обеспечивает
обмен данными между внутренней и внешней памятью, периферийными
устройствами, хост-процессором, последовательными портами и линками
микрон роцессора.
ADSP-21060 имеет два синхронных последовательных порта для связи с
разнообразными периферийными устройствами. Максимальная скорость
передачи данных через последовательный порт составляет 40 Мбит/с. Пере-
дача может осуществляться одновременно в двух направлениях в режиме
ПДП. В процессе обмена может выполняться дополнительное преобразова-
ние данных, такое, например, как ц- или А-компандирование.
ADSP-21060 предоставляет разработчикам широкие возможности по созда-
нию мультипроцессорных сигнальных систем. Общее адресное пространство
может быть разделено между несколькими процессорами. Обеспечивается
автоматическая поддержка семафоров для последовательностей операций
чтсние-изменсние-запись в память. Встроенная распределенная шинная
логика позволяет создавать системы, содержащие до 6 взаимодействующих
процессоров ADSP-21060 и хост-процессор. Межпроцессорное управление
осуществляется с помощью механизма векторов прерывания.
Дополнительные возможности ввода/вывода процессору предоставляют
шесть 4-разрядпых линков. Линки передают данные по переднему и заднему
фронту тактового импульса, обеспечивая, таким образом, передачу 8 бит за
такт. Линки используются в мультипроцессорных системах для соединений
типа "точка-точка". Передача данных по линку может осуществляться 32-
или 48-разрядными словами непосредственно в процессорное ядро или, с
использованием ПДП-канала, во внутреннюю память. Каждый линк содер-
жит собственные буферные входные и выходные регистры. Максимальная
скорость межпроцессорного обмена через все линки или внешний порт со-
ставляет 240 Мбайт/с. Загрузка микропроцессора может осуществляться из
ПЗУ, хост-процессора или по одному из линков.
Линки микропроцессора
Каждый линк Lx, хе (0, 1,5}, состоит из 4 двунаправленных линий дан-
ных LxDAT (0, 1, 2, 3), а также из двух двунаправленных управляющих ли-
ний LxCLK и LxACK, обеспечивающих асинхронную передачу в режиме
"запрос-ответ".
Порты на противоположных концах линка настраиваются на передачу и
прием, либо находятся в третьем состоянии.
Порт каждого линка может выбрать для передачи или приема один из 6 бу-
феров. Данные читаются из буферов и пишутся в буферы под управлением
контроллера прямого доступа в память (ПДП) или процессора (ЦПУ). Бу-
феры линков 5, 4, 3, 2, 1,0 поддерживаются каналами ПДП 7, 6, 5, 4, 3, I
соответственно.
Контроллер ПДП программируется для работы с буфером путем задания
размера буфера, начального адреса в памяти, приращения адреса, а также
направления передачи. Когда контроллер ПДП завершает операцию, выра-
батывается прерывание, индивидуальное для каждого из 10 ПДП-каналов.
Буферы могут быть читаемы или пополняемы процессором посредством
операций чтения/записи в области памяти внешних устройств. Если пред-
принимается попытка чтения из пустого буфера, процессор должен перейти
в ждущее состояние до тех пор, пока не поступят данные извне. Естествен-
но, при записи в заполненные буферы операция также должна быть приос-
тановлена, вплоть до появления свободного места в буфере.
В приложениях, в которых задержка, вносимая контроллером ПДП, непри-
емлемо велика, процессор может непосредственно работать с буферами.
Контроллер ПДП должен быть переведен в неактивное состояние.
При работе линков вырабатываются следующие прерывания:
□ если канал ПДП активизирован, то по завершении передачи сообщения
ПДП-контроллером вырабатывается маскируемое прерывание;
□ генерируется маскируемое прерывание, если ПДП-контроллер не активи-
зирован, а принимающий буфер не пуст или передающий буфер не по-
лон. По прерыванию требуется выполнение операций с буфером (чтение
или запись);
□ маскируемое прерывание, отличное от прерываний, вырабатываемых бу-
ферами, генерируется при внешнем доступе в порт линка, который нс
активизирован.
Асинхронный "запрос-ответ"
Передающий ADSP 2106х выставляет высокий уровень на LxCLK при выда-
че очередного полубайта на линии LxDAT. Изменение этого уровня исполь-
зуется принимающим ADSP-2106X для приема полубайта. Принимающий
ADSP-2106x выставляет LxACK, когда принято очередное слово в буфер.
Передающий ADSP-2106x анализирует LxACK в начале передачи каждого
слова. Если требуемый уровень LxACK в этот момент отсутствует, то пере-
дача слова не начинается.
Передающий ADSP-2106x оставляет LxCLK высоким, если LxACK отсутст-
вует. При появлении LxACK, LxCLK становится низким и начинается пере-
дача следующего слова.
Принимающий буфер может заполняться, если выполняются высокопри-
оритетная ПДП- или цепочечная операция, при этом LxACK не выставляется.
Однако сразу после завершения ПДП выставляется LxACK. Данные "защел-
киваются" в принимающем буфере по спадающему уровню LxCLK. Переда-
ча полубайта данных происходит каждый такт ADSP-2106x или дважды за
такт, если установлен специальный бит LCKx2.
Буферы
Каждый буфер состоит из внешнего и внутреннего регистров. При передаче
внутренний регистр используется для приема данных из внутренней памяти
под управлением ПДП-контроллера или ЦП. Внешний регистр используется
для распаковки полубайтов для порта линка (старший полубайт следует пер-
вым). Эти два регистра формируют FIFO-очередь. Два слова могут быть по-
мещены в буфер прежде, чем вырабатывается сигнал "заполнено". Если ре-
гистр пуст, уровень сигнала LxCLK становится низким.
При приеме внешний регистр упаковывает принимаемые полубайты в слова
и передает их через внутренний регистр в память под управлением ПДП-
контроллера или ЦП. Если ПДП-контроллер или ЦП не успели извлечь
данные из внутреннего регистра и оба регистра буфера заняты, сигнал
LxACK не выдается, и прием прекращается.
Длина регистров настраивается программно и составляет 32 или 48 битн.
Для работы с 40-битными данными или командами должна устанавливаться
длина регистров 48 битн.
Установление соглашения
по использованию линка
Прежде чем два процессора начинают взаимодействовать по связывающему
их линку, должно быть определено: кто из процессоров будет передавать
данные, а кто принимать. Для этого используется обмен маркером. При на-
чальной установке маркер (программно доступный флаг) устанавливается в
одном из процессоров, определяя его как "хозяина" (master) линка и разре-
шая ему передачу.
Если принимающий порт желает стать "хозяином" линка для передачи дан-
ных, он должен выставить сигнал на LxACK (запрос данных) для текущего
"хозяина" линка. "Хозяин", используя программный протокол, определяет,
когда приходит подтверждение данных, а когда запрос на получение маркера.
Если "хозяин" решил передать маркер, он посылает обратно определенный
пользователем в качестве маркера идентификатор и сбрасывает собственный
маркер. Одновременно ведомый процессор проверяет полученные данные и,
если в них содержится необходимое слово, то он устанавливает свою метку,
переходя в состояние ведущего процессора.
Если полученные данные не содержат необходимого идентификатора, то ведо-
мый процессор должен понять, что ведущий начинает новую передачу данных.
Ведущий процессор может также запросить получение данных с помощью
программного протокола путем посылки маркера без получения запроса по
LxACK.
Контроллер ПДП и порты линков передают данные между собой с помо-
щью того же самого протокола ("запрос-подтверждение"), который исполь-
зуется всеми портами ввода/вывода.
Интерфейс с хост-компьютером
Интерфейс позволяет с минимумом дополнительного оборудования под-
ключаться к стандартным 16- или 32-разрядным микропроцессорным ши-
нам. Интерфейс служит внешним портом, отображенным в адресное про-
странство, и обеспечивает асинхронную передачу данных.
Хост-процессор генерирует запрос шины. ADSP-2106x предоставляет шину
по завершении текущего такта, выдавая сигнал предоставления шины и
сигнал готовности. Хост-процессор может читать из памяти и записывать в
память ADSP-2106x.
Обнаружение ошибок при передаче
В специальном управляющем регистре хранится информация о состоянии
счетчика полубайтов каждого порта линка. Если по завершении передачи
счетчик не обнулен, то вырабатывается сигнал, свидетельствующий об
ошибке при передаче. Для контроля этого сигнала применяются специаль-
ные протоколы на передающем и принимающем концах линка.
В конце передачи блока слов передающий ADSP-2106x должен настроить
свой порт на прием. Протокол обмена предусматривает передачу одного до-
полнительного пустого слова. Это позволит принимающему ADSP-2106x
переслать соответствующее сообщение передающему. Протокол приема по-
сле получения блока данных предусматривает выработку прерывания для
чтения управляющего регистра и передачи соответствующего сообщения
передающему ADSP-2106x.
3.4.4. Микропроцессоры
с архитектурой SHARC семейства ADSP-2116X
Следующей разработкой компании Analog Devices явились 32-разряд-
ные микропроцессоры семейства SHARC — ADSP-2116x, представленные в
1998 году 1135]=
Основным отличием семейства ADSP-2116x от ADSP-2106x является наличие
в составе микропроцессорного ядра двух процессорных элементов. Процес-
сорные элементы могут одновременно выполнять команду, каждый над свои-
ми данными (режим SIMD). SIMD-обработка данных позволяет существенно
увеличить производительность микропроцессора при незначительном измене-
нии программной модели. Отличием от микропроцессоров предыдущей серии
является также увеличенная разрядность внутренних шин.
Каждый процессорный элемент содержит набор обрабатывающих устройств:
32-, 40-разрядное арифметико-логическое устройство с фиксированной и
плавающей точкой, 32-, 40-разрядный умножитель в формате с плавающей
точкой с 80-разрядным регистром-аккумулятором, устройство барабанного
сдвига, регистровый файл — 32 40-разрядных регистра.
Структура микропроцессора ADSP-2116x показана на рис. 3.24.
Новая серия микропроцессоров программно совместима с ADSP-2106x на
уровне исполняемых кодов. Система программирования ADSP-2116x — ADI
Visual DSP — включает трансляторы, отладчики, оптимизированные биб-
лиотеки, а также аппаратные средства поддержки разработки.
Микропроцессор ADSP21160 является первым представителем новой серии.
Он содержит 4 Мбит внутренней памяти, 14 каналов ПДП, 6 линков. При-
ведем основные характеристики данного микропроцессора:
□ выполнение команд за один такт, в том числе, двумя вычислительными
блоками, в SIMD-режиме;
□ наличие сдвоенного генератора адреса;
□ наличие команд ускорения обработки циклов;
□ тактовая частота 100 МГц;
□ пиковая производительность 600 Mflops;
□ напряжение питания 2,5 В.
При относительно небольшой тактовой частоте высокая реальная произво-
дительность микропроцессоров ADSP-2116x достигается благодаря эффек-
тивной системе команд. Например, программа КИХ-фильтрации для мик-
ропроцессора TMS320C67x содержит 100 команд, тогда как программе для
ADSP-2116х требуется всего 25 команд.
Процессорное ядро
Двухвходовое ОЗУ (SRAM)
~~п~
Генератор
адресов
данных 1
8x4x32
~лг~
Генератор
адресов
данных 2
8x4x32
Г—;----1 Кэш-память
Таймер команд
---ТГ“^ 32x48 бит
1—_ЗГ
Генератор
адресов
програмы
Два независимых
двухвходовых блока
Тестирование
и эмуляция
(JTAG)
Шина РМА
Шина DMA
Порт процессора Порт ввода/вывода
адреса данные данные адреса
Л Внешний порт
*—iPMA МуПкТИЛПАКСГ!
РМА Мультиплексор
IOA
Z32
IOD
64
Блок
объединен
ния шин
(РХ)
Шина PMD
48/64
ЕРА шины адреса
DMA
“Т^льтипроцессорныТ
интерфейс
32,
Шина DMD 32/40/64
tZE
Файл
регистров
Умно-
житель
Устройство
барабанного
16x40 бит
(РЕх)
Файл
регистров
Регистры
ЮР
PMD Мультиплексор
EPD шины данных
DMD
Хост-интерфейс
Контроллер ПДП ^Z~z)
64,
сдвига
Умножитель
Управление,
состояние,
буферы
данных
Порты линков
(6)
Последовательный
порт
(2)
^Процессор ввода/вывода (ЮР) J
£
3»
Рис. 3.24. Структура микропроцессора ADSP-2116x
В табл. 3.3 приведены результаты тестирования микропроцессоров семейст-
ва SHARC на распространенных алгоритмах ЦОС.
Таблица 3.3. Производительность микропроцессоров семейства SHARC
ADSP-21065L SHARC ADSP-21160 SISD ADSP-21160 SIMD
Тактовая частота 66 МГц 100 МГц 100 МГц
Длительность такта 15 нс 10 нс 10 нс
Mflops средняя 132 Mflops 200 Mflops 400 Mflops
Mflops пиковая 198 Mflops 300 Mflops 600 Mflops
Таблица 3.3 (окончание)
ADSP-21065L SHARC ADSP-21160 SISD ADSP-21160 SIMD
Комплексное БПФ на 1024 точки 274 мкс 180 мкс 90 мкс
Звено КИХ-фильтра 15 нс 10 нс 5 нс
Звено БИХ-фильтра Умножение матриц: 60 нс 40 нс 20 нс
[3x3] * [3x1] 135 нс 90 нс 45 нс
[4x4] * [4x1] 240 нс 160 нс 80 нс
Деление 90 нс 60 нс 30 нс
Извлечение квадратного корня 135 нс 90 нс 45 нс
3.4.5. Микропроцессор
TigerSHARC - ADSP-TS001
Пути дальнейшего повышения производительности компания Analog
Devices связывает со статическим выявлением параллелизма уровня команд.
ADSP-TS001 — первый микропроцессор семейства TigerSHARC с новой ста-
тической суперскалярной архитектурой |136|. Процессоры TigerSHARC со-
четают возможности цифровой обработки сигналов с особенностями RISC и
VLIW.
В ADSP-TS001 поддерживаются на высоком уровне такие присущие процес-
сорам ЦОС характеристики, как короткий машинный такт с детерминиро-
ванной длительностью, быстрая реакция на прерывания и эффективный ин-
терфейс с периферийными устройствами. Это достигается использованием
VLIW-подхода к планированию загрузки функциональных блоков (выявле-
ние параллелизма уровня команд на этапе компиляции и возможность неза-
висимого задания в программе порядка загрузки функциональных блоков) и
RISC-подхода к исполнению команд (фиксированная структура команды,
конвейерное выполнение за один такт до четырех 32-разрядных операций
над данными в регистровом файле, предсказание переходов и т. д.).
Работая на тактовой частоте 150 МГц, процессор ADSP-TS001 обеспеч.ивает
наибольшую производительность среди процессоров семейства SHARC как
при обработке данных с фиксированной точкой, так и при работе с данны-
ми в формате с плавающей точкой. ADSP-TS001 может обрабатывать 8-, 16-,
32-разрядные типы данных с фиксированной и плавающей точкой, причем
скорость обработки увеличивается при уменьшении разрядности данных.
Рассмотрим основные характеристики микропроцессора ADSP-TS001.
Производительность:
□ 1200 ММАС/с (Millions MAC per Second — миллионов "умножений с на-
коплением" в секунду) на частоте 150 МГц — 16 бит с фиксированной
точкой;
□ 300 ММАС/с на частоте 150 МГц — 32 бита с плавающей точкой;
□ 900 Mflops — 32 бита с плавающей точкой.
Память:
□ 6 Мбит встроенной SRAM, общей для данных и команд (в отличие от
традиционной гарвардской архитектуры);
□ адресуемое пространство до 4 Гбайт;
□ встроенный контроллер динамической памяти SDRAM.
Коммуникационные возможности:
□ скорость передачи данных через внешнюю шину 600 Мбайт/с;
□ суммарная скорость передачи данных через 4 порта связи 600 Мбайт/с;
□ возможность объединения в многопроцессорную конфигурацию (до 8 про-
цессоров ADSP-TS001) без использования дополнительных интерфейс-
ных схем;
□ 4 порта ввода/вывода общего назначения.
Внутренняя структура процессора TigerSHARC показана на рис. 3.25.
В состав микропроцессора входят: вычислительные блоки, память, 2 АЛУ
адресной арифметики, блок формирования последовательности команд
(секвенсор) и периферийные компоненты.
Каждый из вычислительных блоков X и Y содержит 32-регистровый файл,
умножитель, АЛУ и 64-разрядное устройство сдвига.
Эффективная загрузка функциональных устройств микропроцессора, пла-
нируемая в соответствии с VLIW-подходом на стадии компиляции програм-
мы, позволяет процессору в одном такте выполнять восемь 40-разрядных
операций умножения с накоплением 16-разрядных данных, две 40-
разрядных операции умножения с накоплением 16-разрядных комплексных
чисел или две 80-разрядные операции умножения с накоплением 32-
разрядных данных.
Два АЛУ (J, К) предназначены для вычисления адресов, но могут быть ис-
пользованы и для выполнения целочисленных операций над данными. Каж-
дое АЛУ имеет свой 32-регистровый файл, поддерживает циклические буфе-
ры и бит-реверсивную адресацию.
Секвенсор
АЛУ "J"
АЛУ "К”
128
входов
Регистры
Регистры
А/ 128
А. 128
Jr_______MD2
: MD1
Внешний
порт
128
Вычислительный
блок X
АЛУ
Устройство
умножения
Устройство
сдвига
MD0
ПДП
"К 128 128
Вычислительный
блок Y
о Гр~
е
АЛУ
Устройство
умножения
МО
2
Мбит
128
М1
2
Мбит
Периферия
128
М2
2
Мбит
Устройство
сдвига
Внутренняя память
z 128
Рис. 3.25. Структура микропроцессора ADSP-TS001
Секвенсор обеспечивает порядок исполнения команд, при котором каждая
очередная команда выполняется в соответствии с результатом предваритель-
но заданного условия. Кроме того, одна и та же команда может быть вы-
полнена двумя вычислительными блоками одновременно с использованием
различных значений данных (SIMD-обработка).
Для уменьшения потерь производительности, связанных с необходимостью
перезагрузки исполнительных конвейеров в случае выполнения переходов, в
микропроцессоре используются буфер адресов перехода (ВТВ — Branch
Target Buffer) и статическое предсказание переходов.
Внутренняя и внешняя память микропроцессора организованы в виде еди-
ного адресного пространства. Внутренняя память разделена на три 128-
разрядных блока по 2 Мбит каждый, что позволяет при обращении к памяти
читать из нее в регистровый файл учетверенные, длинные и нормальные
слова, выбирать в каждом цикле до четырех 32-разрядных команд. Одновре-
менно может быть загружено в регистровый файл или записано в память 256
битн данных. Данные с длиной слова 8, 16 или 32 разряда могут записы-
ваться в память последовательно в упакованном виде. При работе на так-
товой частоте 150 МГц скорость обмена с внутренней памятью составляет
7,2 Гбит/с.
Шинная структура микропроцессора обеспечивает возможность одновремен-
ной передачи двух операндов результата. Три 128-разрядные шины образуют
быстродействующий канал передачи данных между внутренними функцио-
нальными блоками и внешними периферийными устройствами. Высокоско-
ростной 64-разрядный интерфейс внешней шины позволяет строить на базе
ADSP-TS001 мультипроцессорные системы, объединяющие до 8 процессоров.
На рис. 3.26 показана одна из возможных подобных систем.
Рис. 3.26. Использование ADSP-TS001 в многопроцессорных системах
Наряду с внешней шиной, для взаимодействия между процессорами могут
использоваться порты связи. Передача данных через порты связи выполня-
ется отдельным процессором ввода/вывода и не требует вмешательства ЦП.
Данный способ не имеет ограничений по числу взаимодействующих про-
цессоров и обладает большей гибкостью, однако обеспечивает меньшую
пропускную способность.
При производстве следующих микропроцессоров семейства TigerSHARC
планируется использовать меньшие технологические нормы, что позволит
увеличить тактовую частоту. Кроме этого, разные представители семейства
будут различаться объемами встроенной памяти и составом интегрирован-
ных периферийных устройств.
Основная область применения микропроцессоров TigerSHARC — телеком-
муникации, требующие высокопроизводительной обработки данных: базо-
вые станции сотовых сетей третьего поколения, приложения, связанные с
передачей речи по сетям с протоколом TCP/IP (VoIP — Voice over IP), сер-
веры и сетевые концентраторы.
3.4.6. Микропроцессор
ADSP-21535 Blackfin
Микропроцессор ADSP-21535 — первый представитель семейства микро-
процессоров Blackfin, с микросигнальной архитектурой, разрабатываемой
совместно компаниями Analog Devices и Intel [137]. Процессор выпускается
с начала 2002 года в двух вариантах: ADSP-21535PKB-300 (для частоты 300
МГц) и ADSP-21535PKB-200 (для частоты 200 МГц).
Особенностью данной архитектуры является сочетание в одном микропро-
цессоре возможностей сигнальной обработки, SIMD-обработки мультиме-
дийных данных и RISC-подобного набора команд.
ADSP-21535 отличает чрезвычайно низкое энергопотребление при достаточ-
но высокой производительности и широком наборе интегрированных пери-
ферийных устройств.
Производительность микропроцессора на операции "умножение с накопле=
нием" (МАС) составляет: при частоте 300 МГц — 600 MMACS, при частоте
200 МГц - 400 MMACS.
На кристалле (рис. 3.27) помимо микропроцессорного ядра содержатся
256 Кбайт статической памяти, контроллер ПДП, контроллер прерываний,
блок интерфейса системной шины, память загрузки, таймеры, контроллер
внешней памяти, контроллер шины PCI, интерфейс USB, универсальный асин-
хронный интерфейс (UART — Universal Asynchronous Receiver/Transmitter) блок
эмуляции и отладки JTAG.
Ядро ADSP-21535 состоит из 3 компонентов: устройство вычисления адреса,
устройство управления и устройство обработки данных (рис. 3.28).
Устройство вычисления адреса содержит два генератора адреса (DAG0 и
DAG1), использующие общий регистровый файл. Регистровый файл вклю-
чает 4 набора регистров: индексный, модификатор, длины, базы. Восемь
дополнительных 32-разрядных регистров могут использоваться совместно с
основными индексными регистрами в качестве указателей позиций стека и
памяти.
Устройство управления содержит блок формирования последовательности
команд (Sequencer), блоки выделения и декодирования команд, а также бу-
фер команд цикла (для локального сохранения команд в целях сокращения
числа обращений к памяти команд).
Рис. 3.27. Структура микропроцессора Blackfin
Рис. 3.28. Ядро микропроцессора Blackfin
Устройство обработки данных содержит 9 вычислительных устройств: 2 бло-
ка выполнения операций умножения с накоплением (МАС), два 40-
разрядных АЛУ, четыре видео-АЛУ и устройство барабанного сдвига. Вы-
числительные устройства обрабатывают 8-, 16- или 32-разрядные данные,
содержащиеся в регистровом файле.
Каждая команда МАС осуществляет умножение 16-разрядных данных за
один процессорный такт с формированием 40-разрядного результата.
Каждое АЛУ может выполнять стандартный набор арифметических и логи-
ческих операций, большинство из которых выполняется за один процессор-
ный такт. Содержимое восьми 32-разрядных регистров может интерпрети-
роваться АЛУ как 32-разрядные данные или как пара 16-разрядных данных.
За один процессорный такт 2 АЛУ могут вычислять до 4 результатов опера-
ций над 16-разрядными данными.
Устройство барабанного сдвига может выполнять простые и циклические
сдвиги, нормализацию над 40-разрядным операндом, извлечение и хранение
данных.
В микропроцессоре реализована модифицированная гарвардская архитекту-
ра в комбинации с иерархической структурой памяти. Вся память микро-
процессора рассматривается как унифицированное адресное пространство
размером до 4 Гбайт.
Первый уровень иерархии памяти работает на частоте ядра и имеет мини-
мальное время доступа. Память команд этого уровня (16 Кбайт на кристал-
ле) содержит только команды. Память данных первого уровня иерархии (два
банка по 16 Кбайт на кристалле) содержит, наряду с данными, стек и ло-
кальные переменные. К этому же уровню иерархии относится и внутренняя
память промежуточных результатов (scratchpad) размером 4 Кбайт. Память
первого уровня может быть сконфигурирована как быстрая память прямого
доступа или как кэш-память (за исключением scratchpad).
Второй уровень иерархии памяти — это внутренняя (256 Кбайт SRAM) и
внешняя память, доступ к которой осуществляется за несколько процессор-
ных тактов. Память этого уровня является общей для команд и данных.
Большое внимание при создании микропроцессоров семейства Blackfin раз-
работчики уделили сокращению энергопотребления. В них реализовано гиб-
кое динамическое управление питанием: в зависимости от интенсивности
вычислений изменяется напряжение питания и тактовая частота работы
ми кропроцессора.
Дальнейшее развитие семейства идет в направлении повышения производи-
тельности, сокращения энергопотребления и использования проблемно-
ориентированного набора периферии.
К другим представителям семейства Blackfin относятся:
□ ADSP-21532 — с частотой 300 МГц, процессор оснащен звуковым (I2S),
видео (CCIR-656) интерфейсами, а также содержит 640 Кбит SRAM и
встроенный регулятор напряжения;
□ ADSP-BF533 — это наиболее производительный микропроцессор семейст-
ва. На тактовой частоте 600 МГц он выполняет 1200 ММАС в секунду.
Процессор содержит на кристалле 1,2 Мбит статической высокоскоростной
памяти, встроенный регулятор напряжения и набор периферии, ориенти-
рованный на широкий круг задач обработки мультимедийных данных. По-
требление энергии данным микропроцессором составляет 280 мВт.
Новые Blackfin-процессоры поддерживают встраиваемые операционные сис-
темы, такие как Linux Embedded, ThreadX и Nucleus.
Область применения микропроцессоров семейства Blackfin — мобильные
устройства, мультимедиа-устройства, игровые консоли, Internet-приложения
(видеотелефоны, WWW-терминалы, NetTV).
3.5. Сигнальные микропроцессоры
компании Motorola
Сигнальные микропроцессоры компании Motorola подразделяются на се-
мейства 16- и 24-разрядных микропроцессоров с фиксированной точкой —
DSP560xx, DSP561xx, DSP563xx, DSP566xx, DSP568xx и микропроцессоры с
плавающей точкой — DSP960xx.
3.5.1. Микропроцессоры 24-разрядные
с фиксированной точкой
Линия 24-разрядных микропроцессоров компании Motorola включает два
семейства: DSP560xx и DSP563xx [138, 139|. Основные принципы, положен-
ные в основу архитектуры сигнальных микропроцессоров Motorola, были
разработаны и воплощены в семействе DSP560xx. Дальнейшие работы по
совершенствованию сигнальных процессоров проводились по трем направ-
лениям:
□ наращивание производительности 24-разрядных процессоров за счет кон-
вейеризации функциональных модулей и повышения тактовой частоты;
□ создание дешевых 16-разрядных микропроцессоров с расширенными
средствами взаимодействия с периферией;
□ разработка высокопроизводительных процессоров, включающих блок вы-
числений с плавающей точкой.
Далее последовательно будут рассмотрены все три направления на примере
наиболее популярных представителей микропроцессорных семейств, указа-
ны также наиболее существенные отличия процессоров в рамках одного се-
мейства.
3.5.2. Микропроцессоры
семейства DSP560xx
Микропроцессоры DSP56000/DSP56001 являются первыми представителями
линии сигнальных процессоров компании Motorola [138]. Архитектура мик-
ропроцессоров ориентирована на максимизацию пропускной способности в
приложениях ЦОС с интенсивным обменом данными. Это обеспечивается
благодаря расширяемой архитектуре со сложной встроенной периферией и
универсальной подсистеме ввода/вывода. Данные свойства, а также низкое
энергопотребление, минимизируют сложность, стоимость и сроки разработ-
ки прикладных систем на базе микропроцессоров DSP56000/DSP56001.
Микропроцессоры работают на частотах до 33 МГц и обеспечивают произ-
водительность около 16 MIPS, что позволяет выполнять быстрое преобразо-
вание Фурье по 1024 отсчетам за 3,23 мс,
Различие между процессорами семейства заключается в типе их внутренней
памяти. Для использования во встроенном варианте микропроцессор
DSP56000 может работать под управлением программы, хранимой в ППЗУ
емкостью 3,75 Келов. Существует также вариант процессора DSP56000, в
котором реализована защита внутренней памяти программ от чтения.
DSP56001 содержит на кристалле память произвольного доступа емкостью
512 слов, 32 слова памяти (ROM) программы начальной загрузки процессо-
ра, а также два модуля памяти, предварительно запрограммированных в ка-
честве таблиц функций экспандирования по А- и ц-закону и таблиц сину-
соидального преобразования (SINE).
Структуры микропроцессоров DSP56000 и DSP56001 изображены на рис. 3.29
и рис. 3.30 соответственно.
Назначение основных компонентов структуры микропроцессоров будет
описано при рассмотрении общей структуры микропроцессорного семейст-
ва DSP560xx.
Дальнейшее развитие микропроцессоров DSP560xx происходило в рамках
концепции общего для всех представителей семейства процессорного ядра.
В состав семейства входят 24-разрядные микропроцессоры с фиксированной
точкой DSP56002, 4, 7, 9, 11 [139], отличающиеся друг от друга конфигура-
цией внутренней памяти и периферийными устройствами.
Процессоры данного семейства характеризуются высокой пропускной спо-
собностью и расширенной разрядностью, обеспечивающей высокую точ-
ность вычислений и широкий динамический диапазон обрабатываемых
данных, поддержкой энергосберегающего режима работы.
Типовая структура представителя семейства DSP560xx микропроцессора
приведена на рисунке 3.31. Основными компонентами микропроцессора
являются:
□ шины данных;
□ шины адресов;
□ АЛУ данных;
□ устройство генерации адресов (AGU);
□ устройство программного управления (PCU);
□ расширение памяти (порт А);
□ внутрикристальная схема эмуляции (ОпСЕ™);
□ схема умножения частоты.
Рис. 3.29. Структура микропроцессора DSP56000
Рис. 3.30. Структура микропроцессора DSP56001
Процессор содержит три независимых исполнительных устройства: устрой-
ство программного управления, устройство генерации адресов и АЛУ дан-
ных. Пересылка данных между регистрами исполнительных устройств осу-
ществляется по двунаправленным 24-разрядным шинам: шине данных X
(XDB — X Data Bus), шине данных Y (YDB), программной шине данных
(PDB) и глобальной шине данных (GDB). Некоторые команды используют
шины данных X и Y как единую 48-разрядную шину. Для повышения ско-
рости выборки операнды команды загружаются в АЛУ из модулей памяти X
и Y по независимым шинам XDB и YDB, а команда — по программной
шине данных PDB. Обмен данных с периферийными устройствами осуще-
ствляется по шине GDB.
24-бит
таймер/
счетчик
событий
Синхронный
последова-
тельный
интерфейс
(SSI) или
ввод/вывод
Последо-
вательный
порт (SCI)
ипи ввод/
вывод
Хост интер-
фейс (HI)
или ввод/
вывод
Память программ
512x24 ОЗУ
64 х 24 ПЗУ
(загрузочная)
Память данных
X
512x24 ОЗУ
256 х 24 ПЗУ
(т/А)
Память данных
512 х 24 ОЗУ
256 х 24 ПЗУ
(SINE)
Переключатель
внутренней шины
данных
Переклю-
чатель
внешней
шины
данных
Переклю-
чатель
внешней
шины
адреса
Контроллер
шины
Блок генерации
адресов
Схема эмуляции
(ОпСЕ порт)
Умножитель
тактовой
частоты
Тактовый
генератор
Контроллер
программных
прерываний
Блок
декодирования
программы
Г енератор
адреса
программы
"Ж “Устройство управления
программой
АЛУ данных
24 х 24 + 56 -> 56 бит МАС
два 56-разрядных
аккумулятора
Адрес
16
Данные
24
Управление
16
ч 7
3 IRQ
16-разрядная шина
24-раэрядная шина
Рис. 3.31. Структура микропроцессора семейства DSP560xx
Шинная структура поддерживает основные пересылки данных типа
"регистр-регистр", "регистр-память", "память-регистр". За один такт могут
быть переданы два 24-битных и одно 56-битное слова. Обмен между шина-
ми осуществляется через внутренний коммутатор, позволяющий соединить
любые две внутренние шины без добавления тактов задержки. Адреса для
внутренних Х-памяти и Y-памяти данных передаются по двунаправленным
16-разрядным шинам ХАВ и YAB, а адреса памяти команд — по двунаправ-
ленной программной шине (РАВ). Внешняя память адресуется с помощью
однонаправленной шины, являющейся выходом 3-входового мультиплексо-
ра шин ХАВ, YAB, РАВ.
Устройство битных операций физически расположено в блоке коммутатора,
что обеспечивает ему доступ к любой области памяти и позволяет выпол-
нять битные операции над данными в памяти, регистрах, содержимым ад-
ресных и управляющих регистров.
АЛУ данных микропроцессора выполняет над данными все арифметические
и логические операции и содержит четыре 24-битных регистра-источника,
два 48-битных регистра-аккумулятора, два 8-битных регистра расширения
аккумуляторов, устройство сдвига, две схемы сдвига/ограничения данных и
параллельное (неконвейеризированное) однотактовое устройство умножения
с накоплением (МАС).
Аккумуляторы А и В служат в качестве буферных регистров шин XDB и
YDB, а их 8-битные регистры расширения используются схемой сдви-
га/ограничения для фиксирования и обработки ситуаций переполнения в
результате арифметических операций или сдвига.
АЛУ данных позволяет выполнять умножение в режиме удвоенной точности
(задается установкой соответствующего бита в регистре состояния процес-
сора). Результат умножения двух 48-битных операндов имеет 96 разрядов и
содержится в четырех 24-битных регистрах.
Устройство генерации адреса (AGU) работает параллельно с другими ком-
понентами процессора, обеспечивая вычисление требуемых адресов данных
в памяти за один такт с помощью двух одинаковых 16-битных арифметиче-
ских устройств, каждое из которых может выполнять линейные, модульные
и циклические арифметические операции.
С каждым адресным АЛУ связаны три набора из 4 регистров: адресных —
RO—R3 и R4—R7, смешения — NO—N3, N4—N7 и модификаторов МО—М3
и М4—М7. Регистры используются тройками: R0:N0:M0, R1:NI:M1,
R2:N2:M2, R3:N3:M3, R4:N4:M4, R5:N5:M5, R6:N6:M6 и R7:N7:M7. Адрес
формируется из содержимого адресного регистра и регистра смешения с
учетом типа арифметики, который определяется содержимым регистра мо-
дификатора.
Устройство программного управления генерирует адреса программы, деко-
дирует команды, аппаратно обрабатывает команды циклического перехода,
внутренние и внешние прерывания. Оно содержит 15-уровневый 32-битный
системный стек (SS) и 6 непосредственно адресуемых регистров: счетчик
команд (PC), счетчик цикла (LC), регистр адреса цикла (LA), регистр со-
стояния (SR), регистр режима (OMR) и указатель стека (SP). 16-битный
регистр PC может адресовать до 65 536 команд. Системный стек сохраняет
счетчик команд и регистр состояния при вызове процедур, обработке пре-
рываний и выполнении программных циклов.
Команды процессора выполняются в 3-этапном (предвыборка, декодирова-
ние, выполнение) конвейере с последующим анализом 5 возможных со-
стояний процессора: "нормальное", "исключение", "сброс", "ожидание" и
"останов".
В состав PCU входят три блока: блок декодирования программы (PDC), ге-
нератор адреса программы (PGA) и программный контроллер прерываний
(PIC). PDC декодирует команды, загруженные в командный буфер и гене-
рирует все необходимые для выполнения команды управляющие сигналы.
Содержимое командного буфера дублируется для более эффективного вы-
полнения команд повтора (REP) и перехода.
Основное назначение блока PGA — аппаратное формирование адресов цик-
лов. При инициализации цикла адрес его начала помещается в стек, значение
переменной цикла содержится в регистре LC, адрес конца цикла — в LA. При
завершении очередной итерации адрес перехода извлекается из стека, а не
формируется программно, что существенно повышает скорость обработки.
PIC получает все запросы на прерывание, классифицирует их и генерирует
адрес вектора прерываний. Прерывания могут быть маскируемыми — уровни
О (нижний уровень), 1, 2 и немаскируемыми — уровень 3 (высший уровень).
Порт расширения памяти А обеспечивает синхронный обмен данными с
различными типами памяти и внешними устройствами по 24-разрядной
шине данных. Порт работает с высоко- и низкоскоростной памятью, а так-
же другими универсальными и сигнальными процессорами в режиме
"ведущий/ведомый" (master/slave).
Внутрикристальный эмулятор — схема, позволяющая интерактивно анали-
зировать состояние регистров, памяти, периферийных устройств и управлять
процессом отладки программы, разрешать отладку для разработчика систе-
мы или запрещать другим пользователям доступ к внутренним ресурсам
процессора.
Умножитель частоты позволяет процессору работать на повышенной внут-
ренней тактовой частоте, обеспечивая синхронизацию внутренних и внеш-
них тактовых импульсов, а также понижение частоты в энергосберегающем
режиме.
Программная модель микропроцессора представляется в виде трех парал-
лельно функционирующих устройств: ALU, AGU и PCU. Система команд
микропроцессора ориентирована на эффективную поддержку языка С и
организована таким образом, чтобы обеспечить занятость этих устройств в
течение каждого такта, достигая при этом максимальной скорости выполне-
ния программы.
Команды микропроцессора имеют переменную длину: 1 или 2 слова (24-
битных). Типичная команда DSP560xx содержит поле кода операции, опре-
деляющее соответствующее действие ALU. AGU или PCD, поле операндов
и два поля, задающих пересылки по шинам XDB и YDB, выполняемые мик-
ропроцессором параллельно с основной операцией. Пример команды МАС
приведен на рис. 3.32.
Opcode Operands XDB YDB
МАС Х0, Y0, А X: (R0)+, ХО Y:(R4)+,Y0
Рис. 3.32. Структура команды микропроцессора DSP560xx
Благодаря своей высокой производительности и низкой стоимости семейст-
во микропроцессоров DSP560xx широко используется в самых различных
областях: коммуникационных системах, цифровых аудиосистемах, робото-
технике, в военной электронике.
3.5.3. Микропроцессоры
семейства DSP563xx
Микропроцессоры этого семейства |140| объединяет процессорное ядро но-
вого типа (NDE — New DSP Engine), которое, благодаря конвейеризации
обработки в функциональных блоках, обеспечивает выполнение команды за
каждый такт, что повышает производительность в два раза по сравнению с
ядром DSP560xx, при обеспечении программной совместимости.
Ядро DSP563xx содержит АЛУ данных, устройство генерации адресов памяти,
устройство программного управления, контроллер кэш-памяти команд, кон-
троллер ПДП, умножитель частоты, а также шины расширения периферии и
памяти. Для уменьшения стоимости создаваемых систем DSP563xx снабжен
универсальным интерфейсом внешней памяти различных типов: DRAM,
SRAM, SDRAM и т. д. Параллельный 6-канальный контроллер ПДП обеспе-
чивает требуемую для ЦОС-приложений высокую скорость передачи данных.
Особое внимание при создании микропроцессора было уделено снижению
энергопотребления как в пассивном, так и в активном режимах.
Основные технические характеристики микропроцессорного семейства
DSP563xx:
□ производительность — 66/80/100 MIPS при тактовой частоте 66/80/100 МГц;
□ полностью конвейеризированное параллельное устройство умножения с
накоплением;
□ 56-разрядное устройство барабанного сдвига;
управляемая пользователем внутрикристальная кэш-память команд;
i быстрого преобразования Фурье на
3.5.4. Микропроцессоры 16-разрядные
с фиксированной точкой
Семейства DSP561xx, DSP566xx и DSP568xx представляют 16-разрядные
3.5.5. Микропроцессоры
семейства DSP561xx
ванной точкой - DSP56156 и DSP56166 [141J. Представители данного се-
мейства имеют общее процессорное ядро и отличаются друг от друга кон-
DSP56156 был ।
кационных протоколов и речевых сигналов. Некоторыми командами и спо-
собами адресации разработчики вынуждены были пожертвовать для умень-
шения длины кода команды.
Микропроцессор содержит встроенный сигма-дельта-декодер, обеспечиваю-
щий непосредственный ввод аналогового сигнала, а также 2 Кслова внутри-
кристальной памяти,
Структура микропроцессорного ядра представлена на рис. 3.35.
Устройство
генерации адресов
Внутрикристальная
периферия
Переключатель
внутренней шины
данных и устройство
манипуляции битами
EXTAL-tJ Генератор
тактовых
SXFC импульсов и
умножитель
CLKO -> тактовой частоты
Порт
эмуляции
(ОпСЕ)
Рис. 3.35. Структура микропроцессорного ядра DSP561xx
не входит в состав ядра
Приведем основные технические характеристики микропроцессоров семейства:
□ производительность до 30 MIPS на частоте 60 МГц;
□ однотактовый параллельный умножитель с накоплением (16 х 16 разрядов);
□ два 40-разрядных аккумулятора с байтом расширения;
□ плавающая и целочисленная арифметика различной точности;
□ высокопараллельный набор команд с гибкой системой адресации;
□ аппаратная реализация вложенных циклов, включая бесконечные циклы;
□ три 16-битные внутренние шины данных и три 16-битные внутренние
шины адреса;
□ программируемое время доступа к внешней шине;
□ интерфейс с отображением в память периферийных устройств;
□ внутренний блок эмуляции и отладки (ОпСЕ);
□ низкое потребление энергии, наличие средств энергосбережения.
3.5.6. Микропроцессоры
семейства DSP566xx
Семейство микропроцессоров DSP566xx, как и семейство DSPlxx, специ-
ально разработано для применения в электронных схемах сотовых телефо-
нов, для которых весьма важным является не только возможность цифровой
обработки сигналов в широком динамическом диапазоне его интенсивно-
сти, но и наличие высокоэффективной системы энергосбережения.
Семейство включает микропроцессоры DSP56602, DSP56603, отличающиеся
конфигурацией используемой памяти и составом периферийных устройств
|142].
Микропроцессоры данного семейства являются высокоинтегрированными
устройствами, в состав которых входит общее для семейства 16-разрядное
микропроцессорное ядро, конвейеризированное устройство умножения с
накоплением, проблемно-ориентированное ППЗУ, раздельные блоки памя-
ти для хранения данных прикладной программы и программы начальной
загрузки.
По системе команд микропроцессоры DSP566xx совместимы с DSP563xx.
Структура микропроцессора семейства DSP566xx приведена на рис. 3.36.
Приведем основные технические характеристики микропроцессоров дан-
ного семейства:
П два 40-разрядных аккумулятора микропроцессора снабжены битом рас-
ширения для контроля переполнения результата;
□ 40-разрядное устройство барабанного сдвига;
□ аппаратная поддержка выполнение вложенных циклов и быстрый возврат
из программ обработки прерываний;
О периферийные схемы микропроцессора включают три порта общего на-
значения, с общим числом линий 31, которые могут быть использованы
как 8-битный параллельный интерфейс к хост-микропроцессору и син-
хронный последовательный интерфейс;
□ производительность — около 60 MIPS;
□ рабочее напряжение от 1,8 до 3,3 В, потребляемый ток от 0,55 до 0.85 мА.
17 Ъч, 10R6
3.5.7. Микропроцессоры
семейства DSP568xx
В микропроцессорах данного семейства объединены функции высокопроиз-
водительной цифровой обработки сигналов и интеллектуального контролле-
ра. В настоящее время семейство включает микропроцессоры DSP56L811 и
DSP56L812 [143]. Область применения данных микропроцессоров весьма
широка: цифровые беспроводные средства связи, радиомодемы, цифровые
автоответчики и т. п. Благодаря высокой степени интеграции функциональ-
ных модулей в микропроцессоре решения на его базе отличаются не только
высокой производительностью, но и низкой стоимостью.
Основные технические характеристики микропроцессоров семейства:
□ производительность — до 25 MIPS на частоте 40 МГц;
□ однотактовый 16 х 16 умножитель-накопитель;
□ два 36-битных аккумулятора с битами расширения;
□ 16-битное барабанное устройство сдвига;
□ аппаратная поддержка циклов и репликации команд;
□ два входа внешних прерываний;
□ система команд, включающая поддержку функций ЦОС и контроллеров;
□ программный стек подпрограмм и прерываний с неограниченной глубиной;
О расширенные внутрикристальные средства эмуляции и отладки;
□ эффективная система энергосбережения.
Структура микропроцессора DSP568xx приведена на рис. 3.37.
Микропроцессор является полностью 16-разрядным. Длина команды про-
цессора также составляет 16 бит, поэтому по системе команд микропроцес-
сор несовместим с ранее рассмотренными семействами 24-разрядных мик-
ропроцессоров. Память данных представлена единым блоком емкостью
2 Келов. Программная память состоит из блока ROM, содержащего про-
грамму начальной загрузки, и памяти для хранения программы, загружаемой
программой из внешнего источника.
Программируемая универсальная подсистема ввода/вывода микропроцессо-
ра может быть сконфигурирована в соответствии с требованиями конкрет-
ной задачи: выводы подсистемы могут быть индивидуально настроены для
ввода или вывода, могут мультиплексироваться между периферийными бло-
ками микропроцессора, могут использоваться как выводы подсистемы обра-
ботки прерываний. Подобное универсальное использование выводов про-
цессора позволяет уменьшить число контактов микросхемы.
В табл. 3.4 приведены характеристики других представителей микропроцес-
сорного семейства DSP568xx.
_____________________________________________________от 16 до 32_____________________________________________________
I лнлний GPIO I
Рис. 3.37. Структура микропроцессора DSP568xx
Гпава 3
Таблица 3.4. Характеристики микропроцессоров семейства DSP568xx
Наимено- < вание ОЗУ (ко- манды) ПЗУ (ко- манды) ОЗУ (данные) ПЗУ (данные) ПЗУ за- грузки Таймеры I/O Последо- вательный интерфейс A/D Напряже- Частота
ние пита- ния, В шины, МГц
DSP56824 128 х 16 32Кх16 2Кх16 2Кх16 — 3 16- разрядных 16 1 SPI — 2,7 70
DSP56F801 1Кх 16 8К х 16 Flash 1Кх 16 2К х 16 Flash 2Кх16 Flash 1 счетве- ренный модуль таймера 11 SPI SCI Два 4 x 12-бит АЦП 3,3 80
DSP56F803 512х 16 32К х 16 Flash 2К х 16 4К х 16 Flash 2К х 16 Flash 2 счетве- ренных модуля таймера 16 SPI SCI CAN Два 4 х 12-бит АЦП 3,3 80
DSP56F805 512х 16 32К х 16 Flash 2К х 16 4К х 16 Flash 2К х 16 Flash 2 счетве- ренных модуля таймера 32 SPI2 SCI CAN Два 4 х 12-бит АЦП 3,3 80
DSP56F807 2Кх 16 60К х 16 Flash 4К х 16 8К х 16 Rash 2К х 16 Flash 4 счетве- ренных модуля таймера 32 SPI2 SCI CAN Четыре 4 х 12-бит АЦП 3,3 80
Сигнальные, коммуникационные и медийные микропроцессоры
3.5.8. Микропроцессоры
с плавающей точкой семейства DSP9600X
Микропроцессоры данного семейства предназначены для обработки данных
в формате с плавающей точкой.
Представителем данного семейства является 32-разрядный микропроцессор
DSP96002 [144]. Это однокристальный универсальный микропроцессор с
устройством обработки данных в формате с плавающей точкой. DSP96002
содержит 1024 слова памяти, равномерно разделенной между памятью дан-
ных X и Y, 1024 слова программной памяти, два ППЗУ данных, двухканаль-
ный контроллер ПДП, подсистему начальной загрузки программы, а также
встроенные средства отладки и эмуляции.
Структура микропроцессора DSP96002 приведена на рис. 3.38.
ЦПУ состоит из трех функционирующих параллельно 32-разрядных испол-
нительных устройств: АЛУ данных, устройства генерации адреса и устройст-
ва программного управления. Процессор содержит два идентичных порта
расширения памяти, обеспечивающих интерфейс с различными типами па-
мяти (SRAM, DRAM, VRAM). Каждый порт может быть преобразован в
хост-интерфейс, который обеспечивает возможность простой интеграции
процессора в мультипроцессорную систему.
Основные характеристики микропроцессора:
□ однотактное устройство умножения с накоплением разрядностью 32 х 32;
□ высокопараллельный специализированный набор команд;
□ аппаратная поддержка выполнения программных циклов и быстрого воз-
врата из прерываний;
□ расширенная до 1 Келов кэш-память команд;
□ пять 32-разрядных адресных шин — внутренние однонаправленные шины
адреса X и Y, программная адресная шина и две внешние адресные шины;
□ семь 32-разрядных шин данных — внутренние двунаправленные шины
данных X и Y, внутренняя двунаправленная глобальная шина данных,
внутренняя двунаправленная шина данных ПДП, внутренняя двунаправ-
ленная программная шина данных и две внешних шины данных;
□ внутрикристальная память микропроцессора включает 1024 слова про-
граммной памяти (RAM), две независимых памяти данных по 512 слов
каждая (RAM), два независимых ПЗУ емкостью 1024 слова и ПЗУ на-
чальной загрузки емкостью 64 слова;
□ внешняя память процессора может составлять по 232 32-разрядных слов
для команд и данных;
□ на тактовой частоте 40 МГц микропроцессор имеет производительность
200 MIPS.
Порт А
Рис. 3.38. Структура микропроцессора DSP96002
Сигнальные, коммуникационные и медийные микропроцессоры
3.6. Коммуникационные процессоры
Еще одна категория специализированных процессоров, достаточно близкая
по архитектуре к сигнальным, но имеющая существенные отличия, — ком-
муникационные процессоры. С сигнальными микропроцессорами ее роднит
общая область применения — системы связи, а отличия обусловлены ме-
стом использования в трактах телекоммуникационных систем и задачами,
которые возложены на эти процессоры.
Если традиционные сигнальные микропроцессоры ориентированы на эф-
фективную реализацию протоколов физического и канального уровня, то
коммуникационные микропроцессоры предназначены, в основном, для об-
работки протоколов сетевых и транспортных уровней. Общим для сигналь-
ных и коммуникационных микропроцессоров является характер процесса
обработки: поточная обработка данных в реальном режиме времени.
В разд. 3.7 будет рассмотрен еще один класс микропроцессоров — микро-
процессоры для мобильных коммуникационных устройств. Эти микропро-
цессоры объединяют в себе черты и сигнальных, и коммуникационных, и
мультимедийных микропроцессоров, поскольку должны реализовывать функ-
ции, характерные для перечисленных типов устройств.
3.6.1. Микропроцессор МРС8260
Микропроцессор компании Motorola — МРС8260 PowerQUICC ii™ 1145] —
представляет собой универсальный коммуникационный процессор, который
объединяет в одном кристалле высокопроизводительное вычислительное
RISC-ядро с архитектурой PowerPC, гибкое устройство системной интегра-
ции и множество периферийных контроллеров.
На базе микропроцессора могут быть реализованы устройства для различ-
ных коммуникационных приложений, в том числе:
□ сервер удаленного доступа;
□ мост LAN-WAN;
□ базовая станция сотовой связи;
□ маршрутизатор локальной вычислительной сети
и др.
Структурная схема микропроцессора приведена на рис. 3.39.
В состав микропроцессора входят три основных функциональных блока:
□ микропроцессорное ядро с устройством управления памятью и кэш-
памятью команд и данных;
□ устройство системного интерфейса;
□ модуль коммуникационного процессора.
Рис. 3.39. Структура микропроцессора MPC826QI
Сигнальные, коммуникационные и медийные микропроцессоры
on
Микропроцессор МРС8260 имеет две шины для обеспечения коммуникаци-
онных потребностей высокопроизводительного микропроцессорного ядра и
быстрых коммуникационных каналов: микропроцессорная шина 60х (64-
разрядная шина данных и 32-разрядная шина адреса) и локальная шина (32-
разрядная шина данных, 18-разрядная шина адреса). Ядро и модуль комму-
никационного процессора подключены к шине 60х.
Как микропроцессорное ядро, так и модуль коммуникационного процессора
содержат собственные делители частоты, позволяющие осуществлять неза-
висимую настройку компонентов на оптимальную частоту работы.
Ядро процессора представляет собой встроенный вариант 32-разрядного це-
лочисленного RISC-микропроцессора PowerPC — МРСбОЗе, работающего
на тактовой частоте до 200 МГц с раздельной 4-входовой множественно-
ассоциативной кэш-памятью команд и данных объемом по 16 Кбайт каждая.
Микропроцессор не поддерживает операции над данными в формате с пла-
вающей точкой.
Ядро микропроцессора может быть отключено. В этом случае микропроцес-
сор функционирует как периферийное устройство внешнего ядра.
В состав устройства системного интерфейса микропроцессора входят два
контроллера памяти, совместимые с большинством существующих типов
памяти (SDRAM, DRAM, EPROM, Flash и др.) и прочие периферийные
устройства, превращающие данный микропроцессор в полнофункциональ-
ную систему в одном кристалле.
Устройство системного интерфейса содержит следующие компоненты:
□ 64-разрядную системную шину, совместимую с шиной 60х;
□ локальную шину (32 линии передачи данных, 32-разрядная внутренняя и
18-разрядная внешняя шины адреса), работающую на той же частоте, что
и системная шина 60х. Эта шина используется для обменных операций
коммуникационного контроллера;
□ контроллер памяти, обеспечивающий работу с 12 банками памяти, кото-
рые могут быть подключены как к системной, так и к локальной шине
микропроцессора;
□ порт тестирования и отладки микропроцессора JTAG;
□ таймеры реального времени и интервальный таймер;
□ интерфейс кэш-памяти второго уровня.
Модуль коммуникационного процессора представляет собой набор схем,
осуществляющих взаимодействие с периферией и обеспечивающих на аппа-
ратном уровне разнообразные интерфейсные функции, включая поддержку
коммуникационных протоколов, таких как Fast Ethernet и ATM, обработку
полнодуплексных мультиплексированных каналов с временным разделением
и др.
Модуль коммуникационного процессора содержит:
□ коммуникационный процессор (СР — Communication Processor), пред-
ставляющий собой встроенный 32-разрядный RISC-процессор. Ком-
муникационный процессор подключен к отдельной локальной шине,
благодаря чему он не оказывает влияния на микропроцессорное ядро,
подключенное к шине 60х. СР выполняет низкоуровневые задачи и ини-
циирует обработку ПДП-запросов, освобождая тем самым микропроцес-
сорное ядро для выполнения задач высокого уровня. Система команд СР
оптимизирована для коммуникационных задач, в то же время, коммуни-
кационный процессор может выполнять и приложения общего назначе-
ния, разгружая основной процессор;
□ два независимо функционирующих последовательных ПДП-контроллера,
оптимизированных для выполнения блочных пересылок по локальной
шине и шине 60х;
□ три полнодуплексных высокоскоростных последовательных контроллера,
поддерживающих протокол ATM со скоростью передачи 155 Мбит/с
(интерфейс UTOPIA) и протоколы IEEE 802.3, Fast Ethernet, HDLC (до
45 Мбайт/с). Возможна также сквозная (прозрачная) пересылка битных
потоков;
□ два многоканальных контроллера, способных совместно обрабатывать до
256 HDLC потоков со скоростями до 64 Кбит/с, принимаемых по 8 ин-
терфейсным каналам. Многоканальный контроллер может также обраба-
тывать суперканалы со скоростями выше 64 Кбит/с и субканалы 64-ки-
лобитного канала;
□ четыре полнодуплексных последовательных коммуникационных кон-
троллера, поддерживающих протоколы IEEE8O2.3/Ethernet, HDLC, Local
Talk, UART, BISYNC и прозрачную пересылку данных;
□ два полнодуплексных последовательных управляющих контроллера (SMC),
поддерживающих протоколы GCI, UART и прозрачную пересылку данных;
□ последовательный периферийный интерфейс SPI и контроллеры шин
12С;
□ устройство распределения временных интервалов (TSA — Time-slot
assigner), обеспечивающее мультиплексирование потоков данных от ис-
точников: 4 полнодуплексных последовательных коммуникационных
контроллера, 3 высокоскоростных последовательных контроллера, 2 по-
следовательных управляющих контроллера.
Микропроцессор использует два напряжения питания: для внутренних
схем — 2 В, для подсистем ввода/вывода — 3,3 В и потребляет около 2,5 Вт.
Производительность МРС8260 на тактовой частоте 200 МГц составляет
280 MIPS, на тестах SPECint95 — 5,1.
3.6.2. Сетевые микропроцессоры компании Intel
Первым представителем сетевых процессоров компании Intel является
1ХР1200 [146]. Это высокоинтегрированный гибридный процессор, ориен-
тированный на использование в коммуникационных приложениях, для
которых большое значение имеют эффективный доступ к подсистеме быст-
родействующей памяти, устройствам ввода/вывода, наряду с высокопроиз-
водительной обработкой данных различной длины (битн, байтов, слов,
двойных слов).
Структура микропроцессора IXP1200 приведена на рис. 3.40.
Рис. 3.40. Структура микропроцессора IXP1200
Основными компонентами микропроцессора являются: микропроцессорное
ядро StrongARM, 6 блоков обработки данных (БОД), блок интерфейса с
шиной IX, блок интерфейса с шиной PCI и блоки управления внешней па-
мятью SDRAM и SRAM.
Блок обработки данных представляет собой 32-разрядный мультитредовый
RISC-процессор, работающий на тактовой частоте 162 МГц. БОД выполня-
ют обработку и обмен данными независимо от вычислительного ядра про-
цессора.
Каждый БОД содержит 4 программных счетчика, АЛУ, устройство сдвига,
128 регистров общего назначения (32-разрядных), 128 регистров обмена
данными (32-разрядных) и локальную память объемом 4 Кбайт. Высокоспе-
циализированный набор команд микропроцессора БОД, аппаратная под-
держка переключения контекста и синхронизации процессов, совмещенное
в одном процессорном цикле выполнение операций АЛУ и устройством
сдвига обеспечивают производительность более 109 оп/с.
Блок интерфейса с шиной IX обеспечивает связь микропроцессора с сетевой
периферией, подключенной к данной шине. Шина IX может быть сконфигу-
рирована в виде одной двунаправленной 64-разрядпой шины или двух 32-
разрядных однонаправленных шин и имеет максимальную пропускную спо-
собность 4,2 Гбайт/с на частоте 66 МГц, и 5 Гбайт/с на частоте 80 МГц.
Микропроцессор IXP1200 поддерживает 2 типа памяти: статическую
(SRAM) и динамическую (SDRAM). Управляют работой статической и ди-
намической памяти соответствующие встроенные в микропроцессор кон-
троллеры.
Статическая память используется в качестве быстрой памяти для хранения
таблиц поиска, а динамическая предназначена для хранения текущей ин-
формации и очередей обмена. Микропроцессор IXP1200 может адресовать
до 256 Мбайт динамической памяти.
Блок управления SDRAM обслуживает запросы на чтение/запись данных от
блока PCI (включая поддержку режима ПДП) от ядра микропроцессора и
блоков обработки данных. На частоте 81 МГц пиковая пропускная способ-
ность интерфейса с SDRAM составляет 684 Мбайт/с.
Блок управления SRAM принимает запросы к памяти от ядра микропроцес-
сора и БОД и управляет собственно памятью SRAM (до 8 Мбайт), а также
памятью загрузки BootROM (до 8 Мбайт) и портами периферийных уст-
ройств.
На частоте 81 МГц при 32-битном доступе к SRAM обеспечивается пиковая
пропускная способность 334 Мбайт/с.
Блок интерфейса с шиной PCI процессора IXP1200 управляет 32-разрядной
PCI-шиной, предназначенной для соединения с хост-процессором (в случае
его использования) и другими периферийными устройствами с PCI-
интерфейсом. Поддерживается спецификация PCI 2.1 (32 бита, 66 МГц) с
пиковой скоростью передачи данных 264 Мбайт/с.
Представителями следующего поколения сетевых процессоров являются
микропроцессоры семейства 1РХ2ххх (IPX2400, IPX2800, IPX2850) [147].
Микропроцессор IPX2850 (рис. 3.41) объединяет ядро Intel® XScale (рабо-
тает на частоте 700 МГц) и 16 независимых 32-разрядных мультитредовых
БОД (работают на частоте 1,4 ГГц), которые дают совокупную производи-
тельность более чем 23,1 х 109 операций в секунду. Блоки обработки данных
обеспечивают вычислительную мощность, необходимую для решения задач,
для которых ранее требовались дорогостоящие высокоскоростные заказные
микросхемы.
На кристалле расположены также контроллеры статической (4 канала QDR
SRAM) и динамической (3 канала RDRAM) памяти, PCI-интерфейс, сете-
вой интерфейс, интерфейсы периферийных устройств, память хеш-таблиц, а
также блокнотная память (Scratchpad) для хранения промежуточных резуль-
татов обработки.
IXP2850 содержит 2 встроенных блока, реализующих распространенные
криптографические алгоритмы, такие как 3DES/DES, AES, SHA-1, что дела-
ет эффективным использование процессора в устройствах, работающих в
сетях с протоколами IPsec и TCP/SSL. Процессор способен осуществлять
криптографическую обработку потоков данных со скоростью до 10 Гбит/с.
Представители следующего семейства — микропроцессоры 1ХР42х (IXP420,
IXP421, 1ХР422, IXP425) [148] предназначены для использования в аппара-
туре систем пакетной передачи данных и представляют собой совокупность
высокопроизводительного микропроцессорного ядра Intel XScale, встроен-
ных сетевых устройств и широкого набора интерфейсов периферийных уст-
ройств. Функциональные блоки микропроцессора объединены внутренними
шинами: усовершенствованной высокопроизводительной шиной (АНВ —
Advanced High-performance Bus) и усовершенствованной шиной периферии
(APB -= Advanced Peripheral Bus).
На рис. 3.42 показана структура микропроцессора IXP422.
Основные характеристики микропроцессоров семейства 1ХР42х:
□ тактовая частота ядра от 266 МГц;
О интегрированные средства аппаратной поддержки выполнения распростра-
ненных криптографических алгоритмов SHA-1, MD5, DES, 3DES, AES;
О два интегрированных контроллера 10/100 Base-T Ethernet;
О SDRAM-контроллер, поддерживающий от 8 до 256 Мбайт памяти;
□ низкое потребление мощности 1,0—1,5 Вт;
□ контроллер USB версии 1.1;
□ два универсальных высокоскоростных последовательных интерфейса
(UART) со скоростью до 921 Кбод каждый;
Рис. 3.41. Структура микропроцессора IPX2850
нальные, коммуникационные и медийные микропроцессоры
Рис- 3.42. Структура микропроцессора IXP422
l&lfj
□ 16 выходов портов общего назначения;
□ PCI-интерфейс v2.2 33/66 МГц, для объединения до 4 процессоров;
□ 16-разрядная конфигурируемая шина расширения.
Представители семейства отличаются тактовыми частотами и составом
встроенных в микропроцессор компонентов.
Областями применения микропроцессоров являются: точки доступа систем
беспроводной связи, аппаратура сетей VPN, сетевые шлюзы, маршрутизато-
ры и коммутаторы, сетевые принтеры и т. п.
3.7. Микропроцессоры Intel
с архитектурой РСА
Относительно новым для компании Intel направлением стало создание мик-
ропроцессоров для мобильных коммуникационных устройств: сотовых теле-
фонов, карманных компьютеров, коммуникаторов, интернет-терминалов. Ар-
хитектура процессоров, разработанная Intel специально для подобных
устройств, получила название Intel Personal Internet Client Architecture (Intel
РСА — архитектуры персональных клиентов). К процессорам данного типа
относятся представители микропроцессорных семейств РХА25х, РХА26х [149].
Основными чертами РСА-микропроцессоров являются широкий набор
встроенных коммуникационных устройств, поддержка сигнальной обработ-
ки на уровне ядра, низкое энергопотребление и малые габариты при доста-
точно высокой производительности.
Внутренняя структура микропроцессора РХА255 показана на рис. 3.43.
Оба микропроцессорных семейства построены на микропроцессорном ядре
XScale, которое является развитием микропроцессорного ядра StrongARM,
Микропроцессорное ядро XScale нс применяется как самостоятельный про-
дукт, а используется как вычислительный блок в проблемно-ориентиро-
ванных микропроцессорах и микроконтроллерах. На рис. 3.44 показаны ос-
новные структурные блоки микропроцессорного ядра XScale.
Блок умножения с накоплением МАС содержит 40-разрядный аккумулятор
и 16-разрядный блок SIMD-обработки.
Устройство управления памятью, состоящее из двух блоков: памяти команд
и памяти данных, поддерживает разграничение доступа к памяти и отобра-
жение виртуального адресного пространства в физическое. С различными
областями памяти могут связываться всевозможные атрибуты, определяю-
щие режимы доступа к ним (кэшируемая память, буферизируемая, способ
выделения строк, способ записи и т. п.). Для ускорения преобразования
виртуальных адресов в физические используются буферы преобразования
адресов (TLB) команд и данных, кэширующие последние преобразования.
32
КГц
Гене-
ратор
Драйверы
часов ;
: Управление'
энергр-•
О
о.
О
з
т
g
m
Часы
реального
времени
Таймер/
широтно-
импульсный
модулятор
Аудио-
интерфейс
АС97
Интерфейс
!25-кодека
Интерфейс
шины FC
Контроллер
IrDA UART
Последова-
тельный
интерфейс
(протоколы
SSP/SPI/
Microwire)
Контроллер
карт памяти
MMC/SD
Аппаратный
контроль
передачи
UART
Интерфейс
Bluetooth
UART
Интерфейс USB'
Первичный интерфейс
UART (17 линии)
г)<рнтроллер
ilWHoro,tcp
'Ко^ЬЙИвР'
^•\яасов>.<;<
контроллер
Прарываний^
9
Микропроцес-
сорное ядро
XScale
200, 300, 400
МГц
Контроллер
ПДП
(16 каналов)
Контроллер
SDRAM
Мультиплексор
адреса/данных <--►
18/32
Контроллер
SRAM
Пакетный
М интерфейс <- -*
Flash-памяти
Интерфейс
ввода/вывода с
переменной
задержкой
Контроллер
карт
PCMCIA/CF
Интерфейс
АВМ-шины
SDRAM
Рис. 3.43. Структура микропроцессора РХА255
Кэш-память данных
(32 Кбайт)
Кэш-память команд
(32 Кбайт)
Вычислительное ядро
RAM данных
(до 28 Кбайт)
Дополнительная
кэш-память
данных
(2 Кбайт)
Блок отладки
Блок управления энергопотреблением
Блок JTAG
Рис. 3.44. Структурные блоки микропроцессорного ядра XScale
Кэш-память команд объемом 32 Кбайт — 32-входовая, частично-ассоциа-
тивная, с размером строки 32 байта. Процессором поддерживается возмож-
ность сохранения в кэш-памяти критичных участков кода. В дополнение к
основной кэш-памяти команд существует дополнительная кэш-память раз-
мером 2 Кбайт, предназначенная для обеспечения отладочного режима ра-
боты процессора.
Процессор содержит 128 элементный буфер адресов переходов (ВТВ).
Кэш-память данных включает основную 32-входовую множественно-
ассоциативную кэш-память емкостью 32 Кбайт и отладочную 2-входовую
кэш-память емкостью 2 Кбайт. Процессор допускает возможность рекон-
фигурирования части кэш-памяти данных для использования в качестве
RAM (Random Access Memory — память произвольного доступа) для хране-
ния специальных таблиц или часто используемых переменных.
Блок управления энергопотреблением позволяет изменять тактовую частоту
и напряжение питания микропроцессора в соответствии с интенсивностью
вычислений.
Для разработчиков программ предусмотрены встроенные средства монито=
ринга производительности и отладки (блоки Performance Monitoring, Debug,
JTAG).
По системе команд микропроцессор XScale обратно совместим с микропро-
цессорами семейства ARM — Advanced RISC Machines. В то же время, по-
мимо стандартного набора команд ARM, микропроцессор XScale поддержи-
вает набор команд Thumb. Это 16-разрядные команды, которые выполняют
те же функции, что и 32-разрядный набор команд ARM, но позволяют по-
лучать более компактный программный код. Набор команд XScale дополнен
также командами вычислений с плавающей точкой и специализированными
командами цифровой обработки сигналов, которые выполняются в сопро-
цессоре. Команды выполняются над данными, содержащимися в 16 регист-
рах (32-разрядных).
Одно из основных отличий XScale от StrongARM заключается в исполни-
тельном конвейере. Процессор XScale является суперскалярным: содержит
основной конвейер (7 стадий), конвейер операций с памятью (8 стадий) и
конвейер МАС (6 стадий). Причем, первые 4 стадии конвейеров являются
общими. Большая длина конвейера по сравнению со StrongARM позволяет
процессору работать на более высоких частотах. Наличие нескольких кон-
вейеров допускает возможность неупорядоченного выполнения команд (при
отсутствии зависимостей по данным между командами).
Микропроцессоры семейства РХА25х выпускаются по технологии 0,18 мкм
для тактовых частот ядра 200, 300, 400 МГц, Тактовая частота системной
шины равна половине частоты ядра. Микропроцессоры содержат встроен-
ные интерфейсы беспроводной передачи данных, USB, контроллеры карт
памяти и устройств MMC/SD и PCMCIA/CF.
Представители микропроцессорного семейства РХА26х построены по техно-
логии "одночиповых систем" (SIP — system-in-a-package), основанной на
способе многоуровневой упаковки флэш-памяти (MLC — multi-level-cell).
От семейства РХА25х данные процессоры отличаются меньшими габарита-
ми, дополнительными коммуникационными портами и расположенной в
одном корпусе с процессором флэш-памятыо Intel StrataFlash Wireless
Memory (энергонезависимая память, построенная на основе новой эконо-
мичной технологии многоуровневых ячеек флэш-памяти, разработанной
компанией Intel для беспроводных устройств).
Intel РХА261 и РХА262 представляют собой интегрированное решение для
мобильных устройств. В одном корпусе объединены процессор и флэш-
память стандарта StrataFlash®. Чип PXA26I содержит процессорное ядро с
частотой 200 МГц и 128 Мбайт памяти. Процессорное ядро чипа РХА262
может работать на частоте 200 или 300 МГц, а объем памяти составляет
256 Мбайт (два кристалла по 128 Мбайт).
3.8. Медийные микропроцессоры
С ростом популярности мультимедийных технологий, увеличением числа
приложений и компаний их разрабатывающих, все большее внимание со
стороны производителей микропроцессоров уделяется поддержке алгорит-
мов сигнальной обработки на уровне команд микропроцессоров [150].
В микропроцессорах в настоящее время наблюдается тенденция переноса
акцентов с чисто числовых операций на операции с новыми типами данных,
характерными для обработки видео- и звуковой информации. (Расширения
системы команд архитектуры х86 — ММХ, SSE, 3DNow! и т. п.)
На сегодняшний день можно выделить два класса микропроцессоров, обес-
печивающих поддержку мультимедиа на аппаратном уровне, это универ-
сальные процессоры с мультимедийным расширением набора команд и
мультимедийные микропроцессоры. Такая классификация отражает в пер-
вую очередь ориентацию процессоров на различные области применения.
В тех областях использования, где доля числовой обработки велика — пер-
спективно применение универсальных процессоров с мультимедийным
расширением системы команд. Там, где мультимедийные операции домини-
руют над традиционными числовыми операциями эффективно использова-
ние мультимедийных микропроцессоров.
К первому классу относятся рассмотренные ранее микропроцессоры общего
назначения, адаптированные к требованиям мультимедиаобработ'ки (Pentium
ММХ, Pentium III, 4, VIA Cyrix Mill, AMD Athlon, SUN UltraSPARC, DEC
Alpha и др.).
Второй класс представляет собой некоторый гибрид архитектурных решений,
характерных для традиционных сигнальных и универсальных микропроцессо-
ров. Микропроцессоры данного класса — медийные процессоры (или медиа-
процессоры), предназначены для обработки аудиосигналов, графики, видео-
изображений, а также для решения ряда коммуникационных задач. Этим они
близки с рассмотренными ранее коммуникационными процессорами.
К медиапроцессорам на сегодняшний день можно отнести:
П Mediaprocessor компании MicroUnity;
□ Trimedia компании Philips;
□ Mpact Media Engine компании Chromatic Research;
□ NV1 компании Nvidia;
□ MediaGx компании Cyrix.
Несмотря на расширение мультимедийных возможностей универсальных
микропроцессоров, сфера использования медийных микропроцессоров
остается довольно широкой. На сегодняшний день это: персональные
компьютеры начального уровня, карманные компьютеры, коммуникато-
ры, игровые приставки, интернет-терм и налы и т. д.
3.8.1. Микропроцессор Mediaprocessor
компании MicroUnity
Микропроцессор компании MicroUnity — Mediaprocessor — ориентирован
на использование в мультимедийных и широкополосных связных системах
[I5I]. В различных разработках Mediaprocessor использовался совместно
с дополнительными устройствами, также разработанными компанией
MicroUnity, — АЦП MediaCodec и интерфейсом внешней кэш-памяти —
MediaBridge.
Аналого-цифровой преобразователь MediaCodec позволяет реализовать ин-
терфейс с широкополосным каналом связи, a MediaBridge может выступать
в роли интерфейса с шиной PCI и основной памятью в мультимедийных
компьютерах.
Mediaprocessor изготавливался по 4-слойной технологии КМОП 0,5 мкм для
тактовых частот от 300 до I ГГц.
Мультитредовая архитектура процессора позволяет одновременно выполнять
до 5 различных задач, используя 5 комплектов 64-разрядных регистров по
64 регистра в каждом. Для каждой задачи выделяется "виртуальный процессор" с
тактовой частотой 200 МГц (при тактовой частоте микропроцессора I ГГц).
Процессор имеет на кристалле 64 Кбайт кэш-памяти, общей для команд и
данных. Выделенная 8-разрядная шина ввода/вывода может передавать дан-
ные I Гбайт/с и используется для связи микропроцессора с устройствами
MediaCodec и MediaBridge.
Медиапроцессор имеет компактную систему команд, которая включает спе-
циальные операции обработки сигналов и расширенные математические
операции. Так, например, одной командой за один такт выполняется умно-
жение четырех 32-разрядных операндов на другие четыре 32-разрядных опе-
ранда, суммируются полученные значения с операндами большей разрядно-
сти и возвращаются четыре результирующих значения в 32-разрядном виде.
3.8.2. Микропроцессор TriMedia
компании Philips
Мультимедийный микропроцессор компании Philips TriMedia предназначен
для использования как в качестве сопроцессора цифровой обработки сигна-
лов, разгружающего основной процессор мультимедийной системы, так и во
встроенном режиме, в качестве универсального процессора разнообразных
мультимедийных устройств: игровые телеприставки, проигрыватели DVD,
видео-CD ит. п. 1151, 152].
Структура микропроцессора TriMedia изображена на рис. 3.45. Ее компо-
нентами являются высокоскоростная шина со скоростью передачи данных
400 Мбит/с, связывающая основные узлы микропроцессора: процессорное
ядро, видеовход, видеовыход, аудиовход, VLD-декодер MPEG, сопроцессор
обработки изображений и коммуникационный блок.
Рис. 3.45. Структура микропроцессора TriMedia
Микропроцессорное ядро TriMedia построено на принципах VLIW-архи-
тектуры и способно обрабатывать 5 RISC-команд за один такт (рис. 3.46).
Глубокая конвейеризация микроопераций в процессоре обеспечивается
благодаря наличию 27 функциональных модулей (включая АЛУ целочис-
ленного умножения, несколько АЛУ для операций с плавающей точкой и
несколько модулей ЦОС). В микропроцессоре используется раздельная
кэш-память общей емкостью 48 Кбайт (32 Кбайт для команд и 16 Кбайт для
данных).
Другие модули микропроцессора, взаимодействуя с VLIW-ядром, выполня-
ют обработку, специфичную для конкретного типа данных. Использование
режима ПДП позволяет осуществлять подготовку данных к обработке сразу
несколькими модулями процессора.
—До 5 операций за один цикл----►
Рис. 3.46. Выполнение команд микропроцессором TriMedia
Эффективная для мультимедийных приложений система команд процессора
позволяет осуществлять одновременное MPEG-декодирование аудио- и ви-
деоданных при использовании всего лишь 22 процентов вычислительных
ресурсов процессора и 12 процентов ресурсов памяти.
3.8.3. Микропроцессор Mpact Media Engine
компании Chromatic Research
Основной областью применения микропроцессора Mpact Media Engine ком-
пании Chromatic Research являются мультимедийные ПК, реализуемые на
базе микропроцессоров семейства х86 |151 —153|. В подобных системах на
Mpact Media предполагается возложить функции -графического ускорителя,
сопроцессора обработки трехмерной графики, MPEG-кодека, звуковой пла-
ты, факс-модема и телефонной платы.
Mpact Media — VLIW-процессор с ядром, оптимизированным для многоза-
дачного выполнения мультимедийных приложений в режиме реального
времени. Например, параллельно мо1ут выполняться вывод 2- и 3-мерных
изображений, синтез музыки и передача данных с помощью модема.
Mpact Media содержит 1,4 млн транзисторов. ЦП процессора имеет пять
АЛУ, одно из которых используется для оценки изменений в изображениях
объектов, что имеет большое значение при кодировании видеоданных.
Шина PCI
Рис. 3.47. Структура микропроцессора Mpact Media
Сигнальные, коммуникационные и медийные микропроцессоры
АЛУ связаны между собой 792-разрядной магистральной шиной, способной
передавать до 8 млн целых чисел в секунду. 8-портовая внутрикристальная
кэш-память объемом 4 Кбайт связана шиной, имеющей пропускную спо-
собность 500 Мбит/с, с внешней памятью RDRAM. Такая архитектура по-
зволяет обеспечить высокую интенсивность потока данных на вход АЛУ и
достигать для большинства мультимедийных приложений производительно-
сти от 1 до 2 млрд операций в секунду.
Структура микропроцессора приведена на рис. 3.47.
Командное слово процессора имеет длину 72 разряда и содержит две инст-
рукции длиной от 3 до 5 байт. В число инструкций входят также инструк-
ции SIMD-обработки массивов данных.
3.8.4. Микропроцессор NV1
компании Nvidia
Процессор компании Nvidia ориентирован прежде всего на использование в
игровых приставках |154|. Этот кристалл спроектирован специально для вы-
полнения игровых программ, для которых требуется быстрое выполнение
алгоритмов преобразования аудио- и видеоданных. Архитектура процессора
приведена на рис. 3.48.
Рис. 3.48. Архитектура микропроцессора NV1
В состав процессора входит мультимедийный акселератор 3-мерной видео-
графики с аудиоблоком, эмулирующим Sound Bluster. В отличие от боль-
шинства ускорителей ЗВ-графики, аппроксимирующих кривые кусочно-
ломанными линиями (создание гладких кривых линий требует выполнения
интенсивных вычислений для генерации большого числа отрезков), в NV1
реализуется алгоритм NURBS (неоднородные рациональные В-сплайны) —
округления сторон многоугольников, благодаря чему улучшается качество
создаваемого изображения и уменьшается объем выполняемых вычислений,
т. к. требуется меньшее количество рассчитываемых "контрольных точек"
генерируемой кривой.
На кристалле процессора также расположен процессор ввода/вывода (для
джойстика и других игровых манипуляторов). Все обрабатывающие блоки
микропроцессора связаны с помощью однонаправленной кольцевой шины.
Контроллер шины принимает транзакцию и посылает ее каждому компо-
ненту процессора.
Основные мультимедийные алгоритмы в NV1 реализованы аппаратно, что, с
одной стороны, делает невозможным их модификацию, а с другой стороны,
приводит к уменьшению размеров и стоимости процессора. Производитель-
ность процессора на мультимедийных командах составляет около 350 MIPS.
Недостатком NV1 является отсутствие декодера MPEG.
3.8.5. Микропроцессор MediaGX
компании Cyrix
20 февраля 1997 года компания Cyrix представила свой медиапроцессор
MediaGX [155, 156|. Процессор выпускается по технологии 0,5 мкм КМОП
с 3 слоями металлизации с тактовыми частотами 133, 150, 166, 180 МГц.
Микропроцессор предназначен для применения в недорогих мультимедий-
ных компьютерах. Он реализует как системные, так и мультимедийные
функции. Благодаря совместимым с Windows программным средствам, реа-
лизующим виртуальную системную архитектуру, аппаратная реализация
функций мультимедиа заменяется программной, поэтому системы па основе
MediaGX не нуждаются в платах расширения для воспроизведения графики
и звука. В системе MediaGX используется совместно с микросхемой Сх5510,
выполняющей функции контроллера периферийных устройств.
Пример вычислительной системы на основе MediaGX показан на рис. 3.49.
Процессор имеет 64-разрядную шину данных и совместим по системе
команд с семейством х86, кроме того, он может работать как высококачест-
венная виртуальная видеокарта. Структура процессора показана на рис. 3.50.
Рис. 3.49. Структура вычислительной системы на основе медиапроцессора MediaGX
Порт DRAM Видеопорт Шина PCI
Основными компонентами микропроцессора являются:
□ процессорное ядро;
□ устройство операций с плавающей точкой (FPU);
□ кэш-память первого уровня;
□ контроллер внутренней шины;
□ контроллер шины PCI;
□ графический конвейер;
□ контроллер дисплея;
□ контроллер динамической памяти.
Данные и команды передаются из памяти и пересылаются по внутренним
шинам X и С в кэш-память первого уровня. Коды команд выбираются на
выполнение в процессорном ядре или FPU из внешней памяти или кэш-
памяти. Видеоданные обрабатываются в графическом конвейере и видео-
контроллере. Данные с видеоконтроллера посылаются либо в цифровом ви-
де непосредственно на жидкокристаллический экран, либо через внешнюю
схему формирования аналогового видеосигнала RAMDAC (Random Access
Memory Digital to Analog Converter) — на электронно-лучевую трубку. Ви-
деоконтроллер работает на тактовой частоте процессорного ядра, поддержи-
вает все режимы VGA и VESA и позволяет работать с максимальным разре-
шением 1280x1024 при 8 бит цвета или 1024x768 при 16 бит цвета.
Контроллер PCI управляет внутренней шиной, объединяющей MediaGX и
Сх5510. Эта шина не является системной, для интерфейса с периферией ис-
пользуется шина ISA, ввод/вывод — обеспечивает микросхема Сх5510.
Процессорное ядро выбирает, декодирует за один такт и за один такт вы-
полняет целочисленные команды х86. Разнесенное (decoupled) устройство
загрузки/сохранения позволяет обрабатывать одновременно несколько за-
просов к памяти за один такт.
Цикл выполнения команды в конвейеризированном ядре процессора вклю-
чает шесть стадий:
1. Выборка команды (IF).
2. Декодирование команды.
3. Вычисление адреса 1 (АС1).
4. Вычисление адреса 2 (АС2).
5. Выполнение (ЕХ).
6. Запись результата (WB). Результат выполнения записывается в кэш-
память, а не непосредственно в основную память.
В процессоре используется предсказание переходов с вероятностью пра-
вильного предсказания — 0,8. Устройство операций с плавающей точкой
выполняет команды с плавающей точкой одновременно с целочисленными.
Устройство имеет 64-разрядный интерфейс данных, четырехпозиционные
входную и выходные очереди.
Процессор содержит 4-входовую множественно-ассоциативную общую кэш-
память объемом 16 Кбайт, работающую в режиме обратной записи. Кон-
троллер внутренней шины реализует функции моста между шинами С и X.
Графический контроллер обеспечивает полнофункциональную поддержку
графического пользовательского интерфейса (GUI), включая рендеринг,
растровые операции и высокоскоростные блочные пересылки. В системах
на основе MediaGX не выделяется отдельная видеопамять, графический бу-
фер располагается в основной памяти.
В системах MediaGX используется совместно с сателитным чипом Сх5510,
который реализует следующие функции:
□ аудиоконтроллер с ЧМ-синтезом звука и MPU-401 MIDI-интерфейсом и
возможностью дополнительного подключения табличного синтеза волн;
□ мост PCI-1SA;
О контроллер ПДП;
□ контроллер прерываний;
□ контроллер клавиатуры и мыши;
□ E-IDE-контроллер;
□ таймер;
□ управление энергопотреблением.
Структура сателитного чипа — Сх5510 — показана на рис. 3.51.
Рис. 3.51. Структура интегрированного контроллера Сх5510
Компьютеры и системные платы на основе процессора MediaGX выпуска-
ются рядом известных производителей, среди которых Compaq Computer,
LG Electronics, Daewoo Telecom, SCI System, Tatung. По производительности
данные системы сравнимы с компьютерами на базе Pentium с аналогичной
тактовой частотой и значительно дешевле по цене.
Вопросы для самоконтроля
к главе 3
1. Сформулируйте определение цифровой обработки сигналов.
2. Укажите основные достоинства и недостатки цифрового способа обра-
ботки аналоговых сигналов.
3. Приведите пример задачи цифровой обработки сигнала и реализующего
ее тракта.
4. Укажите основные особенности задачи цифровой обработки сигналов.
5. Какие функциональные, архитектурные и структурные особенности ха-
рактерны для сигнальных микропроцессоров?
6. Назовите основные фирмы — производители сигнальных микропроцес-
соров.
7. Приведите классификацию сигнальных микропроцессоров фирмы Texas
Instruments.
8. Назовите основные архитектурные и структурные особенности семейст-
ва микропроцессоров с фиксированной точкой фирмы Texas Instruments.
9. Назовите состав и назначение внутренних шин и основных функцио-
нальных блоков микропроцессоров с фиксированной точкой фирмы
Texas Instruments.
10. В чем заключается отличие модифицированной гарвардской архитекту-
ры от традиционной?
И. Укажите рекомендуемые производителем области применения сигналь-
ных процессоров с фиксированной точкой фирмы Texas Instruments.
12. Назовите представителей семейства микропроцессоров с плавающей
точкой фирмы Texas Instruments, укажите их основные архитектурные и
структурные особенности.
13. Назовите состав и назначение внутренних шин и основных функцио-
нальных блоков микропроцессоров с плавающей точкой (TMS320C3x,
'С4х) фирмы Texas Instruments.
14. Укажите состав и назначение процессорных модулей микропроцессора
TMS320C80.
15. В чем состоит отличие архитектуры VelociTI от традиционной VLIW-ар-
хитектуры?
16. Какие структурные особенности представителей семейства микропро-
цессоров Т1 с плавающей точкой обусловлены спецификой параллель-
ной обработки данных?
17. Укажите рекомендуемые производителем области применения сигналь-
ных процессоров с плавающей точкой фирмы Texas Instruments.
18. Приведите классификацию сигнальных микропроцессоров фирмы
Analog Devices.
19. Назовите представителей семейства 16-разрядных микропроцессоров
фирмы Analog Devices, укажите их основные архитектурные и структур-
ные особенности и область применения.
20. Благодаря каким структурным решениям достигается сокращение ко-
мандного цикла в микропроцессорах фирмы Analog Devices?
21. Назовите состав и назначение внутренних шин и основных функцио-
нальных блоков микропроцессоров Analog Devices.
22. Поясните назначение HIP-порта микропроцессоров Analog Devices.
23. Назовите представителей семейства 32-разрядных микропроцессоров
фирмы Analog Devices, укажите их основные архитектурные и структур-
ные особенности и область применения.
24. В чем заключается особенность расширенной гарвардской архитектуры,
реализованной в микропроцессорах Analog Devices?
25. Назовите основные характеристики и архитектурные особенности мик-
ропроцессоров ADSP 21060/62.
26. Укажите основные особенности SHARC-архитектуры, реализованной в
микропроцессорах ADSP 21060/62.
27. Какие элементы структуры SHARC-микропроцессора обеспечивают
возможность его интеграции в мультипроцессорную систему?
28. Назовите основные особенности микропроцессоров семейства
TigerSHARC.
29. В чем состоит особенность архитектуры BlackFine компании Analog
Devices?
30. Приведите классификацию сигнальных микропроцессоров фирмы
Motorola.
31. Назовите представителей 24-разрядного семейства сигнальных микро-
процессоров фирмы Motorola, их основные характеристики и области
применения.
32. В чем заключается отличие микропроцессорного ядра семейства
DSP563xx от DSP560xx?
33. Назовите 16-разрядные семейства микропроцессоров фирмы Motorola,
их основные архитектурные и структурные особенности и область при-
менения.
34. Укажите состав и назначение внутренних шин и основных функцио-
нальных блоков сигнальных микропроцессоров фирмы Motorola.
35. Поясните назначение и особенность реализации универсальной подсис-
темы ввода/вывода (GPIO) сигнальных микропроцессоров фирмы
Motorola.
36. Назовите основные структурные, архитектурные особенности и техниче-
ские характеристики микропроцессоров DSP96002.
37. Укажите основные общие черты сигнальных, коммуникационных и ме-
дийных микропроцессоров и их различия.
38. На какой круг задач ориентированы микропроцессоры с архитектурой
РСА?
39. Назовите классы микропроцессоров и их представителей, снабженных
аппаратной поддержкой обработки мультимедийных данных, укажите
области их эффективного использования.
40. Назовите основные структурные и архитектурные особенности медий-
ных микропроцессоров.
41. Укажите основные технические характеристики медийных микропро-
цессоров: Mediaprocessor (MicroUnity), TriMedia (Philips), Mpact Media
(Chromatic Research), NV1 (Nvidia), MediaGX (Cyrix).
42. Какие системные функции возлагаются на медийные микропроцессоры?
Приведите пример структуры вычислительной системы, построенной на
основе медийного процессора.
Глава 4
Транспьютеры — элементная база
мультипроцессорных систем
4.1. Основные особенности транспьютеров
Концепция параллелизма давно привлекала внимание специалистов своими
потенциальными возможностями повышения производительности и надеж-
ности вычислительных систем. В нашей стране с 60-х годов XX века выпол-
нялись теоретические, экспериментальные и промышленные разработки в
этом направлении, что отмечено американскими специалистами в области
контроля экспорта высоких технологий 1157, 158]. В монографии Э. Евреи-
нова, 10. Косарева "Однородные универсальные вычислительные системы
высокой производительности" [44] было представлено теоретическое обос-
нование построения массово-параллельных систем из элементарных вычис-
лительных машин на базе больших интегральных схем. Именно с подобны-
ми системами связывается в настоящее время перспектива дальнейшего
наращивания производительности [159, 160|. Исторически первой промыш-
ленной разработкой, ориентированной на массово-параллельные системы,
стали транспьютеры [21, 25].
Транспьютер — это микрокомпьютер с собственной внутренней памятью и
каналами для соединения с другими транспьютерами. Часто каналы, ис-
пользуемые для соединения транспьютеров, называют линками. Термин
"транспьютер — transputer", образованный в результате объединения слов
"транзистор-transistor" и "компыотер-coniputer", отражает основную область
его применения — использование как базового вычислительного элемента
при построении массово-параллельных вычислительных систем.
Некоторые специалисты понимают термин "транспьютер" как название кон-
кретного продукта фирмы Innios, другие трактуют его как обобщенное наиме-
нование микропроцессоров со встроенными каналами межпроцессорного об=
мена. Используется также термин "транспьютероподобный микропроцессор",
чтобы, с одной стороны, подчеркнуть, что речь идет не о продукте фирмы
Innios, а с другой стороны, указать, что микропроцессор имеет встроенные
липки для образования параллельных систем. Вполне возможно, что стреми-
тельное развитие микроэлектроники не позволит термину "транспьютер" усто-
яться, и он будет поглощен более общим термином — "микропроцессор", т. к.
отличительный признак транспьютера— встроенные межпроцессорные кана-
лы появятся в том или ином виде у всех микропроцессоров.
В настоящее время разработаны спецификации InfiniBand и Rapid I/O [161,
162] и ряд других, вводящие соединения "точка-точка" и коммутаторы. По-
строение систем на базе соединений "точка-точка" базируется на идеях, ра-
нее уже апробированных в транспьютерных системах.
Первый транспьютер — Т414 был представлен фирмой Inmos, Inc. (Бристоль,
Великобритания) в 1983 году. Его основные характеристики:
□ разрядность 32 бит;
□ объем внутренней памяти 2 Кбайт;
□ число линков — 4;
□ скорость обмена по линку 5, 10, 20 Мбит/с;
□ тактовая частота: внешняя — 5 МГц, внутренняя — 15 МГц;
П производительность 10 MIPS.
Широкую доступность и известность транспьютеры получили с 1985 году.
Были выпущены модификации с большим объемом внутренней памяти
(4 Кбайт) и более высокой тактовой частотой:
□ семейство Т-4: Т424, Т425 — 20, 25 и 30 МГц;
□ семейство Т-2: Т212, Т222 — 16-разрядные модификации транспьютеров;
□ семейство Т-8: Т800, Т801, Т805 со встроенным устройством выполнения
операций с плавающей точкой. Производительность этих микропроцес-
соров достигает 30 MIPS и 4,3 Mflops.
Наряду с процессорами был выпущен ряд периферийных устройств транс-
пьютерных семейств, к числу которых относятся микросхемы: М212 — кон-
троллер жестких магнитных дисков стандарта ST506, G412 — графический
RGB-контроллер мониторов, С004 — программируемые 32-канальные ком-
мутаторы линков и другие устройства, например, сигнальные процессоры.
Высокая степень "функциональной самостоятельности" транспьютера, про-
стота интеграции и наличие периферийных устройств позволяют в короткие
сроки создавать системы на их основе. Линки транспьютера могут осущест-
влять обмен данными одновременно с вычислениями, практически не снижая
производительность процессора. Благодаря этому качеству транспьютеров
системы на их основе обладают хорошей масштабируемостью и высоким
значением показателя эффективности — "производитсяьность/стоимость".
Именно из транспьютеров были созданы первые массово-параллельные сис-
темы с числом процессоров, превышающим несколько сотен вплоть до не-
скольких тысяч.
В настоящее время вслед за транспьютерами фирмы Inmos серийно выпус-
каются транспыотероподобные универсальные и сигнальные микропроцес-
соры, соответственно Power4, Alpha 21364 и TMS 320 С4Х, ADSP 2106Х
(см. главу 2 и главу 3).
4.2. Архитектура и структура
транспьютеров фирмы Inmos
4.2.1. Архитектура семейств Т-2, Т-4, Т-8
Транспьютеры относятся к классу RISC-процессоров. Система команд
транспьютеров ориентирована на поддержку языка высокого уровня —
ОККАМ (OCCAM) [163], названного так в честь средневекового философа
Уильяма Оккама, призывавшего использовать минимально необходимое ко-
личество сущностей, отсекая лишние. Этот язык параллельного программиро-
вания позволяет задавать параллельные вычисления в соответствии с моделью
взаимодействующих последовательных процессов (CSP — Communicating Se-
quential Pprocesses) 1164]. Программа на языке ОККАМ представляет собой
совокупность асинхронных совместно протекающих взаимодействующих
процессов. Под процессом понимается ход исполнения программного кода
некоторой программы или фрагмента программы. Взаимодействие между
процессами реализуется путем обмена данными по принципу "рандеву": об-
мен происходит только тогда, когда каждый из двух взаимодействующих
процессов достигает при своем протекании соответственно команд передачи
и приема данных. Процесс, первым достигший команды обмена, независи-
мо от того, передает он данные или принимает, ставится в ожидание вплоть
до достижения другим процессом соответствующей команды приема или
передачи данных. Использование только двух этих команд для синхрониза-
ции и коммуникации между процессами без каких-либо других средств ко-
ординации между процессами и составляет суть следования идеям Оккама.
В транспьютере данная модель параллельных вычислений поддерживается
благодаря наличию аппаратно реализованного диспетчера, обеспечивающего
выполнение параллельных процессов в режиме квантования времени. При-
чем количество одновременно выполняемых процессов не ограничено. Та-
кую организацию функционирования можно рассматривать как один из ва-
риантов реализации мультитредовой архитектуры.
Мультипроцессорная система на базе транспьютеров представляет собой
совокупность транспьютеров, линки которых соединены линиями связи
(непосредственно или через коммутатор).
Существенно упростить программирование мультипроцессорных вычисли-
тельных систем на базе транспьютеров позволяет то, что одинаковая модель
параллельных вычислений поддерживается как внутри отдельного транс-
пьютера, так и в рамках мультитранспьютерной системы в целом. Благодаря
этому программа, разрабатываемая для мультипроцессорной системы, может
быть создана и отлажена на одном-единственном процессоре, а затем пере-
несена на сеть транспьютеров без существенных преобразований. Исключе-
ние составляет ограничение числа каналов связи процесса с процессами,
протекающими на другом транспьютере. Это ограничение преодолено в
транспьютере Т-9000.
Обобщенная структура транспьютера Т800, архитектурные регистры процес-
сора, управляющие структуры процессов и распределение их рабочих облас-
тей памяти приведены на рис. 4.1.
В зависимости от семейства транспьютер состоит из 32- или 16-разрядного
центрального процессора, интерфейса внешней памяти, 2 или 4 двунаправ-
ленных каналов — линков, программируемого блока событий (Event), тай-
мера, внутреннего ОЗУ емкостью 2 или 4 Кбайт, блока режимов работы
линков, блока системных функций. Некоторые модели могут содержать 64-
разрядное устройство операций с плавающей точкой и (или) контроллеры
внешних устройств, таких как жесткие магнитные диски, мониторы, сетевые
адаптеры (контроллеры внешних устройств обычно выполняются на кри-
сталле вместо двух линков.)
4.2.2. Центральный процессор
Центральный 32-разрядный процессор транспьютера работает на тактовой
частоте до 30 МГц, формируемой из опорной внешней тактовой частоты
5 МГц внутренней схемой умножения. Внутренняя структура центрального
процессора показана на рис. 4.2.
Аппаратный планировщик (диспетчер) центрального процессора организует
выполнение совокупности процессов в режиме разделения времени. Каждо-
му процессу в момент его создания в адресном пространстве транспьютера
выделяется выровненная по границе слова рабочая область памяти и уста-
навливается приоритет. В транспьютере реализована двухуровневая схема
приоритетов: 0 — высокий приоритет процесса, 1 — низкий приоритет.
Объединение адреса рабочей области и приоритета образует дескриптор
(контекст) процесса.
Центральный процессор содержит два регистра-таймера для низко- и высо-
коприоритетных процессов. Высокоприоритетный таймер инкриминируется
каждую 1 мкс, низкоприоритетный — каждые 64 мкс.
Регистр W транспьютера указывает на рабочую область процесса, а в регист-
ре указателя команды 1 находится адрес следующей выполняемой команды.
Регистры общего назначения А, В, С образуют регистровый стек — память с
дисциплиной доступа FIFO. АЛУ выполняет логические и арифметические
операции над операндами, содержащимися в регистровом стеке. Операнды
помещаются в стек через его вершину — регистр А. При загрузке данных в
А его содержимое переносится в В, содержимое В — в С, а содержимое по-
следнего теряется. Результаты операций также формируются в регистре А,
при этом содержимое регистра С "выталкивается" в регистр В и становится
неопределенным.
4.2.3. Система команд транспьютера
Все команды транспьютера однобайтные и выполняются за один такт про-
цессора. Команды (см. рис. 4.1) состоят из двух полей. Старшие 4 разряда —
код команды, младшие 4 разряда используются для формирования операнда
команды или кода команды в регистре операнда О.
Операции, реализуемые командами транспьютера, подразделяются на пер-
вичные и вторичные. Набор первичных операций включает 13 наиболее
употребительных операций, таких, например, как сложение с константой со
значением в диапазоне 0—15, безусловный переход, загрузка (запись) слова
и т. п. Еще 3 команды — pfix, nfix, opr — используются для организации
выполнения вторичных операций,
4.2.4. Выполнение команд
Команды выбираются из памяти транспьютера и помещаются в буфер
команд центрального процессора. За один такт выбирается 2 команды в
Т-414 и 4 команды — в Т-800.
Выполнение большинства команд осуществляется в три этапа.
1. Операнд команды помещается в младшие 4 разряда регистра операнда О.
2. Выполняется операция, задаваемая кодом команды. Содержимое регист-
ра О интерпретируется как операнд.
3. Очищается регистр операнда О.
Исключение составляют команды pfix, nfix и орг.
Команда pfix на этапе 2 осуществляет сдвиг содержимого регистра О на
4 разряда влево и не очищает регистр О на этапе 3. Команда nfix выполня-
ется так же, как и pfix, но перед сдвигом регистра О помещает в него
арифметическое дополнение содержимого этого регистра.
Поскольку после выполнения команд pfix и nfix содержимое регистра О
не очищается, последовательность команд pfix и nfix позволяет формиро-
вать в регистре О операнды с разрядностью до 32. Требуемая для формиро-
вания вторичной операции последовательность первичных команд генери-
руется компилятором. Как правило, эта последовательность имеет мини-
мально возможную длину.
Например, операция сложения содержимого регистра А с константой 9 бу-
дет выполнена командой adc #9 (символ # обозначает, уто следующее за
ним число представлено в шестнадцатеричном виде), как первичная опера-
ция. Однако для того, чтобы сложить содержимое регистра А с константой
21 = 15|6, уже необходимо использовать вторичную операцию. Для ее фор-
мирования необходимо выполнить последовательность команд pfix #1; adc
#5. Сложение с константой -31 = АПТГе!^ можно выполнить последова-
тельностью команд pfix #f; pfix #f; pfix Hf; pfix #f; pfix #f; pfix #f;
pfix #e; adc ш или с использованием команды nfix: nfix #1; adc #1.
Команда opr интерпретирует содержимое регистра О как код вторичной
операции. В этом случае операнды содержатся в регистрах процессора: Код
вторичной операции, таким образом, задается как операнд первичной опе-
рации орг и может иметь до 232 различных значений. В существующих на
сегодняшний день моделях транспьютеров используется около сотни вто-
ричных операций.
Например, для операции умножения, имеющей код (3|6, компилятор сфор-
мирует следующую последовательность команд: pfix и; орг из.
4.2.5. Использование сопроцессора
В случае наличия у транспьютера встроенного сопроцессора, выполняющего
операции с плавающей точкой, распознавание команд и передача их на вы-
полнение осуществляется аппаратно в центральном процессоре, там же вы-
полняется вычисление адреса операндов и их загрузка в регистры FPU.
Модуль операций с плавающей точкой, как показано на рис. 4.2, состоит из
двух блоков — блока мантиссы и блока порядка со своим набором регистров
(два регистровых стека). Все команды с плавающей точкой подразделяются
на два класса: полностью самостоятельные команды, никак не влияющие на
состояние центрального процессора, и команды, пересылающие результаты
выполнения операции в центральный процессор.
После передачи команды на исполнение в сопроцессор центральный про-
цессор продолжает выполнение потока команд, если эти команды относятся
к первому классу, или ожидает получения результата, если эти команды
второго класса.
4.2.6. Распределение памяти транспьютера
Транспьютер может адресовать до 232 байт (4 Гбайт). Особенностью транс-
пьютера является начало адресов в области отрицательных значений. Млад-
ший адрес в дополнительном коде соответствует значению 80000000)6.
Структурно (конструктивно) вся оперативная память подразделяется на внут-
рикристальную и внешнюю. Объем внутрикристальной памяти составляет
4 (2) Кбайт (в зависимости от модели транспьютера). Архитектурно (с точки
зрения программиста) вся память транспьютера, как внешняя, так и внутри-
кристальная, равнодоступна и имеет единую адресацию: внутрикристальной
памяти соответствуют младшие адреса, а внешней памяти — старшие.
Поскольку внутрикристальная память обеспечивает меньшее время доступа
(один такт процессора), в нее программисты обычно помещают часто ис-
пользуемые данные и подпрограммы. Пример распределения памяти пока-
зан на рис. 4.1.
Несколько слов в младших адресах памяти используется для специальных
целей: для слов состояния аппаратных каналов — линков, блока Event, ре-
гистров таймера, в качестве рабочих областей памяти диспетчера.
4.2.7. Диспетчеризация процессов
Каждый из процессов в конкретный момент времени может быть либо вы-
полняемым, либо активным (готовым к выполнению в очереди соответст-
вующего приоритета), либо ожидающим сигнала таймера (в очереди к тай-
меру соответствующего приоритета), либо ожидающим ввода/вывода.
Для выполняемого процесса регистр I содержит адрес следующей команды,
регистр W содержит его дескриптор.
Для организации очереди процессов на выполнение (очередь активных про-
цессов) в диспетчере используются пары регистров FptrO, BptrO, Fptrl, Bptrl,
указывающие на начало и конец очереди высоко- и низкоприоритетных
процессов соответственно. В качестве элементов очередей используются ра-
бочие области процессов, содержащие помимо данных процесса управляю-
щую информацию, требующуюся для сохранения и восстановления состоя-
ния процессов на этапе диспетчеризации (в том числе ссылку на рабочую
область следующего процесса в очереди).
Низкоприоритетные процессы выполняются в течение не более чем 32 пе-
риодов низкоприоритетного таймера, после чего процесс (если он еше спо-
собен к выполнению) помешается в конец очереди активных низкоприори-
тетных процессов, а диспетчер планирует выполнение следующего процесса.
Сначала просматривается очередь высокоприоритетных процессов, затем —
низкоприоритетных.
Высокоприоритетный процесс не прерывается и выполняется до тех пор,
пока это возможно (до завершения или до момента перехода в состояние
ожидания либо ввода/вывода, либо сигнала таймера или сигнала внешнего
события, выдаваемого блоком Event). Если высокоприоритетный процесс
становится активным (например, получает сигнал таймера) в момент вы-
полнения процесса с низким приоритетом, последний прерывается, его со-
стояние сохраняется в области зарезервированных адресов памяти транс-
пьютера и инициируется выполнение высокоприоритетного процесса, пре-
рвавшего этот низкоприоритетный. После выполнения высокоприоритет-
ного возобновляется прерванный низкоприоритетный процесс.
4.2.8. Ввод/вывод
Ввод/вывод для процессов в транспьютере организуется одинаковым обра-
зом как в случае использования аппаратных линков (внешний ввод/вывод),
так и в случае использования виртуального линка (обмен между процессами
одного транспьютера). В обмене всегда участвуют только два процесса: один
вводит данные, другой выводит.
В момент выполнения команды описания канала и после завершения каж-
дого обмена слово состояния канала (ССК) инициализируется константой
Minlnt (80000000j^), задающей минимальное целое число 0. Процесс, пер-
вым выполняющий команду обмена, приостанавливается и проверяет со-
держимое канала. Если оно равно Minlnt, то это означает, что процесс
пришел первым на "рандеву" и должен дождаться второго процесса. Органи-
зация ожидания реализуется следующим образом: в ССК заносится деск-
риптор процесса, а в рабочую область процесса помещаются значение W и
адрес данных, которые должны быть переданы из одного процесса в другой,
после чего управление переходит к диспетчеру для планирования выполне-
ния других процессов.
Если содержимое ССК не Minlnt, значит данный процесс пришел на
"рандеву" вторым. В этом случае содержимое ССК — дескриптор процесса,
используя который, находятся данные в случае ввода или буфер для данных
в случае вывода.
Обмен по линкам осуществляется аналогично, с той разницей, что ССК
имеют фиксированные адреса в памяти 80000000 ]б—8000001С |б, и в процес-
се обмена данные не пересылаются между областями памяти, а передаются
по линии связи в стартстопном режиме с квитированием байтов.
При выполнении ввода/вывода от центрального процессора требуется лишь
инициализация обмена. По команде ввода/вывода вся требуемая информа-
ция об операции обмена — адрес и длина данных, помещается во внутрен-
ние регистры линка, после чего центральный процессор освобождается для
дальнейших вычислений, а линк транспьютера самостоятельно управляет
обменом данными.
4.2.9. Передача данных по линку
Все семейства транспьютеров Т-2 (Т-212, Т-222, Т-225), Т-4 (Т-414, Т-400,
Т-425), Т-8 (Т-800, Т-801, Т-805) используют один и тот же протокол пере-
дачи данных по линкам. Взаимодействие между транспьютерами осуществ-
ляется посредством обмена сообщениями, состоящими из последовательно-
сти байтов. Данные передаются по одному проводу из пары проводов, со-
ставляющих линк. По другому проводу пары передаются подтверждения
приема каждого байта. Передачи в двух направлениях могут совмещаться,
что приводит к чередованию в каждом из линков передаваемых данных и
байтов подтверждения.
Байт передается в обрамлении служебных битов, начиная со стартового би-
та, далее следует управляющий бит, а затем 8 информационных битов и
столовый бит. Таким образом, на 8 информационных битов приходится
3 управляющих, поддерживающих протокол передачи. На рис. 4.3 показан
пример передачи по линку.
Входной линк
1 0 Подтверждение
Выходной линк
1 1 1 1 1 1 1 ' о I
—^-1 1 1 » 1 1 1 1 1 ° 1
Время
Рис. 4.3. Передача данных по линку транспьютера
После передачи байта отправитель ждет подтверждения, которое состоит из
стартового и управляющего бита. Причем если при передаче информацион-
ного байта управляющий бит равен I, то в подтверждении он равен 0. При
этом байты данных и подтверждения для переданных в противоположном
направлении байтов данных передаются по одному проводнику. Подтвер-
ждения имеют приоритет перед байтами данных. Можно установить режим,
при котором подтверждения начинают передаваться сразу после получения
стартового и управляющего битов, что приводит к передаче байтов без за-
держки между ними.
Если один из обменивающихся через линк процессов не готов к приему
данных, байты накапливаются в регистре данных линка. При заполнении
регистра подтверждение после получения очередного байта не выдается, и
передающий линк приостанавливает передачу до приема данных процессом
и освобождения регистра линка.
При инициации передачи первого байта сообщения существует задержка на
настройку каналов прямого доступа в передающем и приемном транспьюте-
рах, что обусловливает разную скорость при передаче коротких (от единиц
до нескольких десятков байтов) и длинных (несколько тысяч байтов) сооб-
щений. В первом случае скорость составляет 2—4 Мбит/с, во втором — мак-
симально возможную 10—20 Мбит/с, в зависимости от настройки передаю-
щего и принимающего транспьютеров.
Передача по линку асинхронна, приемный транспьютер нечувствителен к
фазе принимаемых сигналов. Единственное, что требуется — точный квар-
цевый генератор 5 МГц для задания тактовых сигналов транспьютеров.
Блок режимов работы линков позволяет задавать скорость передачи по лин-
кам транспьютера (5, 10, 20 Мбит/с), причем для нулевого линка скорость
устанавливается независимо от остальных. Установка осуществляется подачей
соответствующих уровней на входы LinkSpecial, LinkOSpecial, Link 123Special.
Обмены по линку программируются раздельно в передающем и принимаю-
щем транспьютерах. В передающем транспьютере программируется команда
передачи по линку заданного числа байтов. В принимающем транспьютере
программируется команда приема из линка задаваемого числа байтов. Реа-
лизация обмена происходит, если программы в передающем и принимаю-
щем транспьютерах выходят на команды передачи и приема. Если один
транспьютер вышел на соответствующую команду, то он ждет, пока другой
выйдет на свою команду обмена. Неправильно запрограммированный обмен
ведет к бесконечному ожиданию. Кроме того, бесконечное ожидание воз-
можно, если заданы разные значения количества передаваемых и прини-
маемых байтов.
4.2.10. Ожидание сигнала от блока событий
Блок событий (Event) выполняет преобразование внешних логических уров-
ней на входе блока в байтовое сообщение со значением 0 или I, передавае-
мое по внутреннему каналу. Поэтому программно блок Event воспринимается
как специальный канал, отличием которого от обычного канала является то,
что из этого канала можно только "читать". ССК для блока Event имеет
фиксированный адрес 80000020(6- В транспьютере ожидать ввода из канала
Event может в каждый момент времени только один процесс.
Обычно Event используется для регистрации внешних прерываний в транс-
пьютерной системе. Сигнал прерывания подается на вывод микросхемы
транспьютера EventRcq. Подтверждение приема сигнала прерывания (чтение
из канала Event) выдается в виде уровня 1 на вывод микросхемы транспью-
тера EventAck.
4.2.11. Ожидание сигнала от таймера
Программно таймер воспринимается как канал только для чтения, выдаю-
щий либо содержимое регистра таймера с соответствующим приоритетом,
либо сигнал наступления ожидаемого момента времени.
Все процессы, ожидающие наступления некоторого момента времени
(истечения временного интервала), помещаются в очередь к таймеру, соот-
ветствующему их приоритету. Очередь процессов отсортирована в поряд-
ке наступления ожидаемого момента времени и организована с помощью
ссылок между служебными словами в рабочей области процессов. Адрес
первого процесса в очереди соответствующего приоритета содержится в
служебных словах транспьютера (TPtrLocO, TPtrLocl), в младших адресах
памяти. При достижении ожидаемого момента времени диспетчеру переда-
ется дескриптор соответствующего процесса для его перевода в конец оче-
реди активных процессов.
4.2.12. Инициализация системы
после включения питания
Транспьютер и его ОЗУ построены по КМОП-технологии и не сохраняют
своего состояния после отключения питания. Поэтому после включения
питания для начала функционирования в транспьютер необходимо загрузить
некоторый минимум программного обеспечения. Транспьютер может быть
загружен как из внешнего постоянного запоминающего устройства (ROM —
Read Only Memory), так и из любого линка. Для указания режима начальной
(загрузки используется вывод микросхемы транспьютера BootFromROM —
загрузка из постоянного запоминающего устройства. Если уровень Boot
From ROM равен I, то управление передается по адресу FFFFFFFEie, по
которому обычно содержится команда безусловного перехода на программу
начальной загрузки.
Если Boot From ROM равен 0, то производится загрузка из линка. После
включения питания транспьютер переходит в состояние ожидания приема
данных по линкам. Первый байт, принятый по любому из линков, управляв
ет дальнейшим режимом работы транспьютера. Если его значение больше 1,
то он интерпретируется как длина кода программы, принимаемой следом за
ним. Принимаемые данные записываются в память транспьютера, начиная с
адреса Mem Start, с него же начинается и выполнение программы. Как пра-
вило, первой загружается программа начальной загрузки транспьютера, ко-
торая обеспечивает загрузку остального программного обеспечения.
Если первый принятый управляющий байт равен 0 или 1, то транспьютер
переходит в режим управления памятью.
Управляющий байт, равный 0, заставляет транспьютер интерпретировать
следующие 4 байта как адрес памяти, по которому в память будет записано
слово, поступившее как следующие 4 байта. После этого транспьютер снова
переходит в режим управления памятью, из которого его может вывести
лишь прием управляющего байта со значением, большим 1.
Если управляющий байт равен 1, следующие 4 байта задают адрес слова па-
мяти, которое будет считано и передано как 4 байта по тому же линку, из
которого поступили в противоположном направлении предыдущие 4 байта.
После этого транспьютер остается в режиме управления памятью.
Режим управления памятью используется обычно для целей начальной за-
грузки и отладки.
4.2.13. Управление системой
Появление уровня I на выводе микросхемы транспьютера, называемом
Analyze, переводит транспьютер, работающий по программе, в режим управ-
ления памятью. Как уже было отмечено, в этом режиме может быть считано
и изменено состояние памяти транспьютера.
4.2.14. Обработка ошибок
Программные ошибки, такие как арифметическое переполнение, деление на
О, выход за границы массива, вызывают установку в транспьютере флага
ошибки error и появление сигнала на выводе микросхемы транспьютера
Error. Флаг режима обработки ошибок транспьютера — HaltOnError позво-
ляет определять поведение транспьютера в случае ошибки (установки флага
error):
□ если был задан режим остановки (HaltOnError = 1), то в случае возник-
новения ошибки устанавливается 1 на выводе микросхемы Error, и
транспьютер останавливается;
□ если была выполнена установка HaltOnError = 0, то в случае ошибки ус-
танавливается в 1 флаг error, однако транспьютер продолжает работать.
Рис. 4.4. Схема соединения линий системного сервиса
в мультитранспьютерной системе
В мультипроцессорных системах выводы микросхем Analyze, Reset, Error,
Errorin всех транспьютеров обычно соединены согласно схеме, представлен-
ной на рис. 4.4. При такой схеме соединения появление сигнала Error на вы-
воде любого транспьютера переводит всю систему в режим управления памя-
тью. Соответствующие программы в управляющем компьютере позволят оп-
ределить состояние системы и пути преодоления ошибочной ситуации.
4.3. Транспьютер Т-9000
4. 3.1. Архитектурные и структурные особенности
На момент своего появления транспьютеры семейства Т-8 были самыми бы-
стродействующими 32-разрядными микропроцессорами. Попытка фирмы
Innios сохранить лидерство перед американскими производителями микро-
процессоров воплотилась в разработку транспьютера Т-9000 |25]. Его основ-
ные технические характеристики:
□ производительность 200 MIPS, 25 Mflops;
□ объем внутрикристальной памяти 16 Кбайт;
□ число линков — 4;
□ скорость обмена по линку 100 Мбит/с.
Основными особенностями архитектуры данного транспьютера являются
аппаратная поддержка механизма виртуальных линков и аппаратный груп-
пировщик команд, повышающий загрузку параллельно функционирующих
устройств процессора.
Однако фирма Innios не смогла выдержать обещанные сроки поставки
Т-9000, а также достичь объявленной производительности из-за невозмож-
ности достижения требуемой тактовой частоты при используемом техноло-
гическом процессе производства СБИС. Поэтому, хотя образцы Т-9000, ра-
ботающие на пониженной, по сравнению с объявленной, тактовой частоте,
были выпущены, коммерческого успеха они не имели, т. к. к этому времени
появились более производительные 32-разрядные микропроцессоры амери-
канских компаний.
4. 3.2. Виртуальные линки
Механизм виртуальных линков позволяет вести по одному физическому
линку обмен между произвольным числом пар процессов, протекающих в
разных транспьютерах.
Управляет обменом встроенный в Т-9000 процессор виртуального канала
(VCP — Virtual Channel Processor). Сообщение, передаваемое от процесса-
отправителя к процессу-получателю, VCP делит на пакеты, каждый из кото-
рых содержит 32 байта данных (последний пакет — от 1 до 32 байт), заголо-
вок пакета и концевик (для последнего пакета — признак конца сообщения,
для остальных — признак конца пакета). При получении пакета VCP в при-
нимающем транспьютере передает подтверждение в виде пустого пакета,
содержащего только заголовок и признак конца пакета. VCP, используя ин-
формацию, содержащуюся в заголовке пакета, осуществляет маршрутизацию
пакетов и сшивку сообщения из пакетов. Таким образом, обмен данными
для процессов выглядит так же, как и в случае транспьютеров прежних по-
колений, что способствует преемственности программного обеспечения.
"Прозрачность" для процессов маршрутизации сообщений в сети транспью-
теров Т-9000 полностью устраняет различие между обменом в рамках одного
транспьютера и обменом в транспьютерной сети. Этот свойство существен-
но упрощает разработку программы для мультитранспьютерной системы и
повышает ее эффективность, поскольку не требуется дополнительных рас-
ходов на организацию маршрутизации и коммутации.
В целях увеличения числа физических связей транспьютера Т-9000 разрабо-
тан программируемый коммутатор С104, осуществляющий передачу сооб-
щения с любого из 32 входов на любой из 32 выходов в соответствии с их
заголовком.
Для возможности использования в системе Т-9000 совместно с транспьюте-
рами предшествующих поколений разработана микросхема С100, выпол-
няющая согласование электрических характеристик и преобразование фор-
мата передаваемых по линкам данных.
4. 3.3. Группировщик команд
В Т-9000 полностью сохранена система команд предыдущих поколений
транспьютеров. Увеличение производительности достигается за счет одно-
временного исполнения группы, в которую входит до 8 команд.
В Т-9000 реализован аппаратный группировщик команд. Образование групп
команд преследует цель достижения высокой загрузки устройств процессора.
В качестве образца работы группировщика приведем следующий пример
|25|. Пусть требуется вычислить выражение «|/+ 1| = Ь[/+ 15| + с|Л + 7].
Компилятор формирует код, представленный в листинге 4.1.
i Листинг 4.1 л <
Idl j load local variable j
Idl b load base address of array b
wsub calculate address of b[j]
Idnl 15 load value of element b[j+15]
Idl к
Idl с
wsub
Idnl 7
add
Idl i
Idl a
wsub
stnl 1
add two values on the top of stack
store into a[i*l]
Эта последовательность команд преобразуется группировщиком в 3 группы:
1. Idl, Idl, wsub, Idnl.
2. Idl, Idl, wsub, Idnl, add.
3. Idl, Idl, wsub, stnl:
Процессор за один такт извлекает из памяти 4 команды. В силу того, что
некоторые команды требуют для исполнения не один, а несколько тактов, в
процессоре может быть накоплено количество команд, достаточное для
формирования 5 групп по 8 команд каждая, что соответствует полной за-
грузке устройств процессора.
4.4. Транспыотероподобные
микропроцессоры серии "Квант"
4.4.1. Основы архитектуры
Примером отечественной разработки транспьютероподобных процессоров
являются микропроцессоры серии "Квант" [165, 166]. Это семейство 32-
разрядных микропроцессоров с оригинальной архитектурой, сочетающей
RISC-подход с методикой длинного командного слова. Семейство характе-
ризуется высокой степенью внутреннего параллелизма процессов обработки,
конвейерным выполнением команд, гарвардской архитектурой памяти, на-
личием последовательных коммуникационных каналов — линков. Были вы-
пущены две модификации микропроцессора:
□ "Квант-10" по технологии 2,5 мкм на трех полузаказных матричных кри-
сталлах 1537 ХМ2, спроектированных в НИИ "Квант" и изготовленных в
НИИ точной технологии (г. Зеленоград);
□ "Квант-20" по технологии 1,5 мкм на одном кристалле типа U1700 фир-
мы ZMD (ФРГ, г. Дрезден), спроектированном в НИИ "Квант" и изго-
товленном фирмой ZMD.
Структура микропроцессора показана на рис. 4.5.
Микропроцессор работает с внешними раздельными кэшами команд и дан-
ных и может использовать сопроцессор. Память данных микропроцессора
содержит только данные, тогда как память команд может содержать как ко-
манды, так и данные (такая архитектура памяти получила название
"модифицированной гарвардской").
4.4.2. Устройство управления
Процессор выбирает из памяти команд 32-разрядные команды и помешает
их сначала в первый, а затем во второй регистры команд, далее декодирует
команды и формирует управляющие сигналы для всех функциональных
блоков процессора. Блок управления прерываниями обеспечивает приори-
тетную схему обработки 10 типов внешних и внутренних прерываний. Блок
прямого доступа в память (ПДП) позволяет выполнять вычисления одно-
временно с обменом данными по 4 коммуникационным каналам. Блок за-
щиты данных предназначен для защиты фрагментов памяти команд и дан-
ных, выделяемой под операционную систему.
4.4.3. Адресное устройство
В процессоре реализована концепция "разнесенной" (decoupled) архитекту-
ры [И], в соответствии с которой все вычисления адресов выполняются от-
дельным адресным устройством, которое предоставляет возможность одно-
временной обработки данных в арифметическом устройстве и вычисления
адресов в адресном устройстве.
Адресное устройство содержит в программном счетчике адрес следующей
команды, поддерживает в памяти стек адресов возврата из подпрограмм
(обработчиков прерываний), выполняет все вычисления адреса в 16-раз-
рядном адресном сумматоре. Файл адресных регистров (АР) содержит 8 16-
разрядных АР для МП "Квант-10" и 4 16-разрядных АР для МП "Квант-20".
4.4.4. Арифметическое устройство
Арифметический блок способен выполнять 16 логических и 14 арифметиче-
ских операций, в том числе байтовые, пошаговое умножение 32-разрядного
множимого на два разряда множителя. Логический блок может выполнять
логические операции параллельно с арифметическим блоком. Все операции
выполняются над 32-разрядными операндами за один такт.
Универсальный сдвигатель способен выполнять за один такт логический,
арифметический или циклический сдвиг 32-разрядного слова влево или
вправо на 0—31 разрядов, а также осуществлять циклические сдвиги внутри
байтов, тетрад, пар. Схема маскирования арифметического устройства по-
зволяет маскировать результаты любой операции содержимым одного ртз
регистров общего назначения. Файл регистров общего назначения (РОН)
используется для хранения операндов, результатов, масок, адресов данных.
В регистр флагов заносятся признаки по результатам выполнения операций
в арифметическом устройстве.
4.4.5. Системное устройство
Системное устройство обеспечивает связь с 4 аналогичными процессорами по
независимым каналам. Обмен осуществляется побитно блоками слов. В нача-
ле каждого блока задается количество передаваемых слов и адрес в памяти, в
который будет записываться сообщение. В процессе передачи осуществляется
контроль по четности для каждого передаваемого байта данных. В случае
ошибки при передаче вырабатывается соответствующее прерывание.
Регистр защиты памяти позволяет запрещать запись в любой блок памяти
длиной 4 Келов.
4.4.6. Конвейер процессора
В процессоре реализован трехстадийный конвейер выполнения команд. На
первой стадии осуществляется выборка команды из памяти команд, на вто-
рой сталии производится формирование адреса данных для последующего
обращения в память и модификация регистров адреса, на третьей стадии
выполняются ввод/вывод данных из памяти по предварительно вычислен-
ному адресу и операции арифметики. Действия на каждом этапе выполня-
ются за один такт, что позволяет при обеспечении высокой степени загру-
женности конвейера выполнять команды в среднем за один такт.
4.4.7. Система команд
Команды процессора подразделяются на простые и комплексные. Первые
выполняют одно действие, тогда как вторые задают трехадресную арифме-
тическую операцию над данными в регистрах одновременно с операцией
обмена данными с памятью и (или) модификацией адресных регистров.
При обращении к памяти используются следующие виды адресации: базовая
по содержимому АР, базовая по содержимому РОН, автоинкрементная или
автодекрементная адресация по любому АР, базово-индексная адресация по
двум АР. В микропроцессоре "Квант-20" добавлена базово-индексная адре-
сация с 8-разрядным смещением, задаваемым в поле команды.
Для упрощения устройства управления и обеспечения большей гибкости в
программах в микропроцессоре реализована следующая схема выполнения
условных и безусловных переходов. В случае условного перехода специаль-
ная команда проверяет соответствие флага признаков результата арифмети-
ческой операции одному из 16 возможных условий перехода. Если имеет
место соответствие, то следующая команда не выполняется, а как бы подме-
няется пустой операцией (NOP). Причем проверка условия осуществляется на
фоне выполнения арифметических операций.
Чтобы не нарушить работу конвейера (избежать пропуска конвейерных цик-
лов), безусловный переход выполняется по принципу отложенного перехода,
В конвейере сначала отрабатывается команда, следующая за командой пере-
хода, а затем выполняется переход. Так же выполняется и обращение к под-
программам.
Конвейеризация внутренних процессов и совмещение во времени выполне-
ния операций в различных функциональных устройствах микропроцессора
позволяют выполнять до четырех команд за один такт.
4.4.8. Производительность
микропроцессора
Гибкая система команд микропроцессора способствует его эффективному
применению как на задачах счетного характера, так и на задачах логической
и символьной обработки. Коммуникационные возможности процессора по-
зволяют строить на его базе масштабируемые системы с МРР-архитектурой.
Уникальная архитектура процессора серии "Квант" позволила обеспечить
лучшее значение производительности по сравнению с транспьютерами фирмы
Inmos [166]. Производительность микропроцессора "Квант-10" с тактовой час-
тотой 4 МГц соответствует производительности транспьютера Т-800 с часто-
той 20 МГц. Производительность микропроцессоров "Квант-10" и "Квант-20"
может быть оценена соответственно как 12—15 MIPS и 25—30 MIPS.
Вопросы для самоконтроля
к главе 4
1. Назовите основные архитектурные и структурные особенности устройств
транспьютерного семейства.
2. Какие свойства позволяют рассматривать транспьютер в качестве эле-
ментной базы мультипроцессорных систем?
3. Укажите основные функциональные блоки транспьютера и их назначение.
4. Что такое дескриптор процесса?
5. Поясните принцип формирования вторичных операций транспьютера.
6. В чем состоит отличие в диспетчеризации высоко- и низкоприоритетных
процессов?
7. Как распределена память транспьютера?
8. Поясните процесс обмена данными между параллельными процессами
через аппаратный и виртуальный линки.
9. Какие средства контроля и диагностики предусмотрены в транспьютере?
10. Поясните процесс начальной загрузки транспьютера через линк.
11. Назовите основные функциональные блоки транспьютера Т-9000 и объ-
ясните их назначение.
12. Поясните принцип работы виртуальных линков транспьютера Т-9000.
13. Назовите назначение и функции группировшика команд.
14. Назовите состав и архитектурные особенности микропроцессоров се-
мейства "Квант".
Глава 5
Нейропроцессоры
5.1. Общие сведения
о нейросетевых вычислениях
5.1.1. Проблемная ориентация
нейросетевых вычислений
Нейросетевой подход показал свою эффективность как при решении плохо
формализованных задач распознавания, кластеризации, ассоциативного по-
иска, так и при решении хорошо формализованных, но трудоемких задач
аппроксимации функций многих переменных и оптимизационных задач.
Для плохо формализованных задач характерно отсутствие разработанных
моделей, приводящих к расчетным формулам, или цепочек простых дейст-
вий, последовательное, быть может, многократное применение которых дает
искомый результат. Классическим примером плохо формализованной за-
дачи служит проблема распознавания образов "кошки" и "собаки". Человек
решает эту задачу безошибочно, однако попытка написать распознающую
программу, основанную на правилах "если А, то Б", сталкивается с неопре-
деленностью набора параметров, по которым различаются образы этих жи-
вотных. Попытка увеличить число рассматриваемых параметров ведет к ус-
ложнению программы и появлению в ней противоречивых правил.
В задаче аппроксимации функций многих переменных при использовании
традиционных методов для получения требуемой точности при увеличении
размерности функции необходимо увеличивать число членов линейной
комбинации фиксированных базисных функций, что делает практически
неприемлемым использование этих методов в задачах большой размерности
(167]. При нейросетевом подходе точность аппроксимации при любой раз-
мерности аппроксимируемой функции зависит только от числа членов ли-
нейной комбинации базисных функций.
Для оптимизационных задач, относящихся к классу АР-полных, не сущест-
вует другого точного метода решения кроме полного перебора возможных
вариантов решения, где и — размерность задачи. Нейросетевые алгоритмы
обеспечивают достижение приемлемых приближенных решений этих задач.
Практическая важность перечисленных задач — безусловна. Следуя [168—
170], приведем типовые постановки этих задач.
Распознавание образов. Задача состоит в отнесении входного набора данных,
представляющего распознаваем.ый объект, к одному из заранее известных
классов. В число этих задач входит распознавание рукописных и печатных
символов при оптическом вводе в ЭВМ, распознавание типов клеток крови,
распознавание речи и др.
Кластеризация данных. Задача состоит в группировке входных данных по
присущей им "близости". Алгоритм определения близости данных (опреде-
ление расстояния между векторами, вычисление коэффициента корреляции
и другие способы) закладывается в нейросеть при ее построении. Сеть кла-
стеризует данные на заранее неизвестное число кластеров. Наиболее извест-
ные применения кластеризации связаны со сжатием данных, анализом дан-
ных и поиском в них закономерностей.
Аппроксимация функции. Имеется набор экспериментальных данных {(А'], Х|), ...
..., (Хп, Км)}, представляющий значения Y, неизвестной функции от много-
мерного аргумента X, , i = 1, ..., п. Требуется найти функцию, аппроксими-
рующую неизвестную и удовлетворяющую некоторым критериям. Эта задача
актуальна при моделировании сложных систем и создании систем управле-
ния сложными динамическими объектами.
Предсказание. Имеется набор {y(/i), у(^).значений у, представляю-
щих поведение системы в моменты времени /|, /j, > 1п- Требуется по пре-
дыдущему поведению системы предсказать ее поведение у(1п +1) в момент
времени /„ + Эта задача актуальна для управления складскими запасами,
автоматизированных систем поддержки принятия решений.
Оптимизация. Цель этих задач найти решение АР-полной проблемы, удов-
летворяющее ряду ограничений и оптимизирующее значение целевой функ-
ции. К числу этих задач относится, например, задача коммивояжера.
Контекстно-адресуемая (ассоциативная) память. Эта память позволяет считы-
вать содержимое по частичному или искаженному представлению входных
данных. Основная область применения — мультимедийные базы данных.
В отличие от программ, базирующихся на правилах типа "если А, то Б”,
нейронная сеть может экстраполировать результат. Еще одно преимущество
нейросетей перед программами, базирующимися на правилах, состоит в
том, что учет новых фактов заключается в переобучении сети с их участием,
а не в переделывании правил программы и ее переписывании. Кроме того,
настройка нейронной сети на большем числе примеров может не увеличи-
вать время ее работы (например, при сохранении графа сети), а введение
новых дополнительных правил замедляет работу программы.
Вообще говоря, чем более изучена проблема, тем выше вероятность приме-
нения для ее решения алгоритмов, основанных на формулах и правилах.
Однако при ограниченном количестве экспериментальных данных нейрон-
ные сети являются аппаратом, позволяющим максимально использовать
имеющуюся информацию. Характерный пример [169] использования ней-
ронных сетей дают системы оптического считывания и распознавания сим-
волов. Среди 10 лучших систем есть как основанные на нейросетевом под-
ходе, так и системы, использующие программы, основанные на правилах.
5.1.2. Основы организации
нейросетевых вычислений
Общая идея применения нейронных сетей для решения плохо формализо-
ванных задач основана не на выполнении предписанного алгоритма, а на
запоминании сетью предъявленных ей примеров на этапе создания сети и
выработке результатов, согласованных с запомненными примерами, па эта-
пе решения нейросетью задачи.
Практическая реализация этих положений подразумевает, во-первых, мини-
мизацию объема памяти, требуемой для запоминания примеров, и, во-
вторых, быстрое использование запомненных примеров, исключающее при-
менение традиционных типов памяти.
В нейронных сетях принято следующее представление решаемых задач. Ис-
ходя из постановки задачи, выявляется набор п входных параметров, от ко-
торых, по мнению исследователя, зависит ее решение. Этот набор в даль-
нейшем может многократно уточняться в ходе экспериментов по обучению
нейросети. Каждому входному параметру х1ч i= I, ..., п, задачи сопоставля-
ется измерение / многомерного пространства, размерность которого равна
числу п параметров. Для каждого параметра используется некоторая шкала,
задающая возможные значения этого параметра. Тем самым постановка за-
дач сводится к определению свойств точек Xj= {xyl, х^, ..., xjn} /7-мерного
пространства, где — значение входного параметра / точки j при известных
свойствах точек, принадлежащих примерам, использованным при обучении.
Итак, пусть имеется обучающий набор примеров:
</], D\> = <(хц, ..., .Х|,(), /)|>;
DJ> = <(хэ|< "ч х2пУ О2>\
<Хпн Впс* <(*/»!> >
Xj = (хУ1, ..., Xjtl) — входные значения J-ro примера, Dj — требуемое выходное
значение при подаче на входы J-ro примера, у = 1, ..., т. Считается, что сеть
правильно обучена, если выполняется критерий окончания обучения.
В качестве этого критерия обычно используют следующие, хотя могут быть
и другие:
П для всех j: max|Z^ Yj\ < 5, где 8 — заданная величина ошибки; Yj — выход-
ное значение, выдаваемое сетью при подаче на ее входы у-го примера,
у' = 1, ..., т.
□ [£(К^?<5.
N j
В задачах, эффективно решаемых нейросетями, точки многомерного про-
странства, в котором сформулирована задача, образуют области точек, обла-
дающих одним и тем же свойством, например, принадлежащих одному
классу объектов, имеющих одинаковое значение заданной на них некоторой
функции и т. д. Нейронные сети запоминают подобные области,-а не от-
дельные точки, представляющие предъявленные при обучении примеры.
Используются различные способы реализации запоминания областей. Наи-
более употребляемые в настоящее время способы — это выделение областей
гиперплоскостями и покрытие областей гипершарами. На рис. 5.1 показано
выделение областей в двумерном пространстве.
Для запоминания одной гиперплоскости из ограничивающих область доста-
точно сохранения п + 1 значения, где п — размерность пространства. Соот-
ветственно для запоминания одного гипершара также требуется п + 1 значе-
ние: координаты центра и радиус.
В нейронных сетях для запоминания каждой гиперплоскости или гипершара
используется отдельный элементарный вычислитель, называемый нейроном,
а для запоминания всех гиперплоскостей или гипершаров используется объ-
единение составляющих нейронов в параллельную структуру — нейросеть.
Именно параллельная согласованная работа всех нейронов обеспечивает бы-
строе решение задачи о принадлежности точки «-мерного пространства вы-
деляемой при создании сети области.
5.1.3. Основные понятия
теории нейронных сетей
Нейрон J, J EMBEDe {1, 2, ..., п}, задается совокупностью своих входов х/ъ
I 6 EMBED{1, 2, ..., «}, весами входов wjh функцией состояния Sj и функци-
ей активации fj. Функция состояния определяет состояние нейрона в зави-
симости от значений его входов, весов входов и, возможно, предыдущих со-
стояний. Наиболее часто используются функции состояния, не зависящие
от предыдущего состояния,
значений входов на веса
-Wjj, где n(j) — число
/=|
вычисляемые либо как сумма произведений
соответствующих входов по всем входам
входов нейрона./), либо как расстояние между
вектором входов Xj = {ху,} и вектором весов входов = {ну,}, измеряемое в
какой-либо метрике, например,
Функция активации y=J{s) определяет выходной сигнал нейрона как функ-
цию его состояния s. Наиболее распространенными функциями активации
являются ступенчатая пороговая, линейная пороговая, сигмоидная, арктан-
генс, а также линейная и гауссиана, приведенные в табл. 5.1.
Таблица 5.1. Функции активации нейрона
Название Определение
Ступенчатая пороговая у = 0 при s < а, у = 1 при s > а
Линейная пороговая у= 0 при s< ab у = ks+ b при < $ < а2, у= 1 при 1 s > а2 , az = — + 6/1 к
Сигмоидная у=(1 +е-М5~л|)-1
Гиперболический тангенс Арктангенс у = th (х) = (ех - е"х)/(ех + е" *) у = 2 arctg (х)/ л
Таблица 5.1 (окончание)
Название Определение
Линейная у = ks + b
Гауссиана у = е-Ш-а)г
Линейные нейронные сети используют нейроны с линейной функцией ак-
тивации, нелинейные — применяют нелинейную функцию активации, на-
пример, пороговую или сигмоидную.
Нейронная сеть образуется путем объединения ориентированными взве-
шенными ребрами выходов нейронов с входами. При этом граф межней-
ронных соединений может быть ациклическим, либо произвольным |рафом
с циклами. Вид графа служит одним из классификационных признаков типа
нейронной сети, разделяющим сети на сети без циклов и сети с обратными
связями. Примеры нейронных сетей этих типов приведены на рис. 5.2 и 5.3
соответственно.
Легко видеть, что, приняв некоторое соглашение о тактировании сети
(времени срабатывания нейронов), мы получаем аппарат для задания алго-
ритмов посредством нейронных сетей. Разнообразие этих алгоритмов ничем
не ограничено, т. к. можно использовать нейроны с различными функциями
активации, различными функциями состояния, двоичными, целочисленны-
ми, вещественными и другими значениями весов и входов. Поэтому в тер-
минах нейронных сетей можно описывать решение как хорошо формализо-
ванных задач, например задач математической физики, так и плохо
формализуемых задач распознавания, классификации, обобщения и ассо-
циативного запоминания.
Рис. 5.2. Нейронная сеть без циклов
Рис. 5.3. Нейронная сеть с обратными связями
Сети могут быть конструируемыми или обучаемыми. В конструируемой сети
число и тип нейронов, граф межнейронных связей, веса входов нейронов
определяются при создании сети, исходя из решаемой задачи. Например,
при конструировании сети Хопфилда [171], функционирующей как ассоциа-
тивная память, каждая входная последовательность из заранее определен-
ного набора участвует в определении весов входов нейронов сети. После
конструирования функционирование сети заключается в следующем. При
подаче на входы частичной или ошибочной входной последовательности
сеть через какое-то время переходит в одно из устойчивых состояний, пре-
дусмотренных при ее конструировании. При этом на входах сети появляется
последовательность, признаваемая сетью как наиболее близкая к одной из
изначально поданных.
Число запоминаемых входных последовательностей М связано с числом
нейронов в сети соотношением М < N/4 log/V, где N — число нейронов.
В обучаемых сетях их графы межнейронных связей и веса входов изменяются
при выполнении алгоритма обучения. По алгоритму обучения сети делятся на
наблюдаемые, ненаблюдаемые и смешанные (гибридные). Первые при обуче-
нии сравнивают заранее известный выход с получившимся значением. Вторые
обучаются, не зная заранее правильных выходных значений, но группируя
"близкие" входные векторы так, чтобы они формировали один и тот же выход
сети. Ненаблюдаемое обучение используется, в частности, при решении зада-
чи кластеризации. При смешанном алгоритме обучения часть весов определя-
ется при наблюдаемом, а часть при ненаблюдаемом обучении.
Обучение осуществляется путем предъявления примеров, состоящих из на-
боров входных данных в совокупности с соответствующими результатами
при наблюдаемом обучении и без последних при ненаблюдаемом. Эффек-
тивность решения задач нейронной сетью зависит от выбранной структуры
нейронной сети, используемого алгоритма обучения, называемых в сово-
купности нейропарадигмой, и полноты имеющейся базы данных примеров.
5.1.4. Организация
функционирования нейросети
При использовании гиперплоскостей каждый нейрон J с пороговой функци-
ей активации, j е EMBED {I,..., N}, N — число нейронов в сети, задает ги-
перплоскость значениями весов своих входов:
"(Л
«j - 2LW Jt ' x=о.
/=|
где n(j) — число входов нейрона j, cij — величина порога.
В этом случае запоминание примеров выполняется путем формирования
нейронной сети и заданием весов входов. Изменение весов входов, числа
нейронов, графа межнейронных связей меняет набор и положение разде-
ляющих гиперплоскостей, разбивающих многомерное пространство на об-
ласти.
На рис. 5.4 приведено схематичное изображение возможностей сетей с дву-
мя входами по разбиению областей двумерного пространства. Одноуровне-
вая сеть, известная также как простой персептрон, нс способна разделить на
два класса точки, соответствующие нулевым и единичным значениям буле-
вой функции "исключающее ИЛИ". Двухуровневые сети и сети с большим
числом уровней способны справиться с этой задачей. Посредством нейросе-
тей с числом уровней, превышающим два, и с п входами может быть задана
произвольная булева функция от п переменных 1172].
Как показано в [173—175], двухуровневая нейронная сеть способна аппрок-
симировать с любой наперед заданной погрешностью EMBEDe > 0 любую
непрерывную функцию Дх|, •••, хл)> определенную на ограниченном
множестве:
N 1
fixi, X?, ..., Х„) = V ... х------------,
1 + e"(w'/i.Vt+H'nX2+- +»V/„x«>
где V/EMBED — веса входов нейрона второго слоя с линейной функцией
активации; EMBEDwy — вес /-го входа,/= I, ..., л, /-го нейрона, z = I, ..., N,
первого слоя с сигмоидной функцией активации; N — число нейронов пер-
вого слоя.
Трехуровневая сеть
Рис. 5.4. Разбиение 2-мерного пространства
2-входовыми нейросетями
Такие сети называются многоуровневыми персептронными сетями.
В случае покрытия гипершарами каждый нейрон задает значениями весов
своих входов координаты центра гипершара, а также запоминает радиус
этого гиперкуба.
Эти сети называются сетями с радиусными базисными функциями.
Как видно, в обоих случаях имеет место реализация распределенного кол-
лективного запоминания нейронами при обучении предъявленных сети
14 Зак. 1086
примеров. Естественно, что этими двумя случаями разнообразие нейронных
сетей не должно исчерпываться, т. к., например, в качестве разделяющих
поверхностей могут использоваться не гиперплоскости, а гиперповерхности
второго и более высоких порядков.
В ходе функционирования сеть относит предъявленный на ее входы набор
значений к той или иной области, что и является искомым результатом. За-
метим, что предъявляемый сети набор входных значений мог не подаваться
на входы сети при обучении. Но, в силу сформированных посредством
других наборов входных значений совокупности областей, этот набор попа-
дет в одну из них. Если результат правильный, то имеет место правильно
функционирующая сеть, иначе сеть обучена или сконструирована с ошиб-
кой. Поэтому смысл процедуры обучения или конструирования — отделе-
ние множеств точек каждой области без включения посторонних точек и
потери своих.
5.1.5. Алгоритмы обучения многоуровневых
персептронных сетей
Большинство алгоритмов обучения использует эвристические приемы фор-
мирования графов сетей и весов ребер. При использовании многоуровневых
персептронных сетей обучение начинается с выбора начальной сети
(эвристически выбираемый граф) с заданным в постановке задачи числом
входов и выходов, связывающей входы с выходами. Например, в [170] реко-
мендуется взять трехслойную сеть с числом нейронов внутреннего слоя,
равным полусумме числа входов и выходов сети. Каждый нейрон внутрен-
него слоя должен быть связан с выходами всех входных нейронов сети. Ка-
ждый выходной нейрон должен быть связан с выходами всех нейронов
внутреннего слоя.
Далее предпринимается попытка подобрать веса входов нейронов сети так,
чтобы сеть решала поставленную задачу. Если это не удается для выбран-
ного графа сети, то по некоторой эвристике, например, с использованием
генетических алгоритмов [176| перебираются графы сетей, для каждой из
которых предпринимается попытка обучения. Этот процесс продолжается до
получения устраивающего результата.
Практически важным алгоритмом определения весов сети при наблюдаемом
обучении персептронных сетей, для которого доказана сходимость процесса,
является алгоритм обратного распространения |168—170]. При обучении сиг-
нал ошибки распространяется обратно по сети. Производится коррекция ве-
сов входов нейронов, предотвращающая повторное появление этой ошибки.
5.2. Аппаратные средства,
интерпретирующие алгоритмы,
заданные нейронной сетью
5.2.1. Подходы к аппаратной
реализации нейросетей
Построение вычислительных систем, интерпретирующих нейросетевые ал-
горитмы, осуществляется сейчас на традиционной элементной базе. Однако
весьма многообещающей выглядит потенциальная возможность реализации
базисной операции (вычисления скалярного произведения) в физической
среде-носителе сигнала. Прежде всего, это касается операции суммирования
в электромагнитном поле, хотя в живых организмах существуют и иные
примеры, в частности, суммирование на биохимическом уровне. Реализация
скалярного произведения за счет суммирования электромагнитного поля
(включая оптический диапазон) может привести к тому, что время срабаты-
вания элемента, вычисляющего скалярное произведение, будет исключи-
тельно малым, сравнимым со временем прохождения светом линейного
размера элемента.
Алгоритм, заданный нейронной сетью, может быть интерпретирован обыч-
ной универсальной вычислительной машиной, либо некоторым специали-
зированным устройством [177, 178].
Сравнение аппаратных средств, интерпретирующих нейросетевые алгорит-
мы, затруднено в связи с большим разнообразием параметров. В их число
входят: число интерпретируемых нейронов и связей, точность представления
значений входов/выходов и весов входов, точность схем умножения и сло-
жения (особенно при аналоговой реализации). Например, если используются
8-разрядные входы и веса и 16-разрядный сумматор, то возникают пробле-
мы точности результатов при интерпретации сетей, имеющих многовходо-
вые нейроны.
Принятой в нейрокомпьютерном мире единицей измерения производитель-
ности является число соединений в секунду (CPS — Connections Per
Second). Под соединением понимается умножение входа на вес и сложение
с накопленной суммой.
Другим показателем, оценивающим скорость обучения, служит число изме-
ненных значений весов в секунду (CUPS — Connections Update Per Second).
Эти показатели достаточно условны, т. к. не учитывают разрядности обраба-
тываемых входов и весов, точность промежуточных результатов и другие
особенности.
При оценке в этих единицах традиционных вычислительных устройств не-
обходимо учитывать, кроме собственно вычислительных операций, опера-
ции по выборке из памяти операндов и организации вычислений.
Анализ преобразований, выполняемых при интерпретации нейросетевых
алгоритмов, позволяет сделать выводы.
□ При реализации нейросетевых алгоритмов решения плохо формализо-
ванных задач моделирования, прогнозирования и распознавания, при ко-
торых создаются (в ходе обучения или конструирования) области много-
мерного пространства, состоящие из точек, которым соответствуют одни
и те же значения выходов нейросети, могут использоваться малоразряд-
ные представления значений входов и весов, а также выполнение опера-
ций умножения и сложения с фиксированной точкой. Это обусловлено
тем, что значения входов нормируются (приводятся к интервалу |0, 1]
или |-1, 1|), и число различных значений каждого входа, как правило,
невелико. При этом операции с фиксированной точкой, выполняемые
существенно быстрее и с меньшими затратами оборудования, по сравне-
нию с операциями с плавающей точкой дают приемлемую точность вы-
числения положения разделяющих гиперплоскостей или гипершаров.
□ При решении хорошо формализованных задач, сформулированных в ней-
росетевом базисе, существенна точность вычислений, что требует много-
разрядных представлений чисел и операций с плавающей точкой. Разра-
ботка нейросетевых алгоритмов решения хорошо формализованных задач,
кроме самоочевидной попытки понять, как надо строить нейрокомпьюте-
ры и наработать впрок программы для нейрокомпьютеров, построенных на
новых физических принципах с быстрым вычислением скалярного произ-
ведения, имеет целью создать класс параллельных, по-новому структуриро-
ванных алгоритмов. Эти алгоритмы в большинстве случаев получаются не
на основе формальных преобразований существующих последовательных
алгоритмов, а в результате творческих находок. Присущая этим алгоритмам
большая степень параллелизма, включающая, в том числе, вычисление
всех возможных вариантов, из которых заведомо нужен только один, дает
простор для исследования аппаратурно-временных затрат на реализацию
вычислений. Может оказаться, что для массово-параллельных вычисли-
тельных систем, реализованных, например, на кремниевой пластине, такие
параллельные программы будут выполняться быстрее, чем программы с
меньшим числом операций, но с другой структурой, не обеспечивающей
полную загрузку всех вычислителей.
Таким образом, специализация вычислительных средств на исполнение
нейроалгоритмов заключается, с одной стороны, в повышении эффективно-
сти обмена между памятью и параллельно функционирующим операцион-
ными устройствами, а с другой стороны — в уменьшении времени выпол-
нения умножения и следующего за ним сложения за счет укорочения
операндов и выполнения операций с фиксированной точкой. Первое, безус-
ловно, дает выигрыш и при исполнении любых других алгоритмов, вто-
рое — специфично нейрокомпьютерное и позволяет создавать встраиваемые
системы с рекордными значениями показателей "производительность/
стоимость", "производительность/габаритно-весовые характеристики". Это
обусловлено важным свойством нейросетевых алгоритмов по решению зада-
чи с разной степенью точности результата.
Например, при использовании многоуровневых персептронов одна и та же
область может быть выделена различным количеством гиперплоскостей с
разной степенью точности охвата всех принадлежащих области точек и
включением не принадлежащих области точек. Этим наборам гиперплоско-
стей соответствуют нейросети разной сложности, что обусловливает разную
сложность, а, следовательно, разную требуемую производительность при
решении одной и той же задачи за заданное время. Поэтому может быть
выбран вариант реализации нейросети, достаточно хорошо решающий зада-
чу и имеющий требуемое время исполнения на предоставленных аппарат-
ных средствах.
5.2.2. Нейрочипы
Нейрочипы бывают цифровые, аналоговые и гибридные. Они также могут
включать схемы настройки весов при обучении, а могут не иметь таких схем
и предусматривать внешнюю загрузку весов. Наибольшую проблему при
создании нейрочипов представляют схемы умножения, т. к. именно они ог-
раничивают скорость вычислений. Следуя обзору |178|, представим нейро-
чипы первого поколения.
5.2.3. Цифровые нейрочипы
Одним из первых коммерчески доступных нейрочипов был Micro Devices
MD1220 1179]. Этот кристалл интерпретирует 8 нейронов и 8 связей с 16-
разрядными хранящимися во внутрикристальной памяти весами и однораз-
рядными входами. Входы имеют одноразрядные последовательные умножи-
тели. Длительность такта — 7,2 мкс, что обеспечивает 8,9 MCPS. Сумматоры
в кристалле также 16-разрядные. Из этих нейрочипов путем их каскадиро-
вания могут быть построены нейрокомпьютеры, аппаратно интерпретирую-
щие в одном такте число нейронов, размещающееся в совокупности объе-
диненных нейрочипов.
Фирма Neuralogix разработала нейрочип NLX-420 [180] с 16 процессорными
элементами (ПЭ), каждый из которых имеет 32-разрядный сумматор. Веса и
входы загружаются как 16-разрядные слова, но могут быть использованы
как 16 одноразрядных слов, либо как четыре 4-разрядных, либо как два 8-
разрядных, либо как одно 16-разрядное слово. Веса хранятся вне чипа. Вход
общий для всех ПЭ, что позволяет выполнять параллельно до 16-ти умно-
жений. После того как все входы обсчитаны, 16 результатов в мультиплекс-
ном режиме выдаются на задаваемую пользователем пороговую функцию
активации для вычисления выходов. Нейрочип имеет производительность
300 MCPS. Кристаллы могут каскадироваться.
Кристалл Lneuro |181] фирмы Philips содержит 16 ПЭ с 16-разрядными
регистрами. Каждый ПЭ может функционировать как 16 одноразрядных,
8 2-разрядных, 4 4-разрядных, 2 8-разрядных или 1 16-разрядный ПЭ. Чип
имеет 1 Кбайт памяти весов, что позволяет использовать 1024 8-разрядных
или 512 16-разрядных весовых коэффициентов. Функция активации реали-
зуется вне чипа, что позволяет при каскадировании интерпретировать боль-
шие сети за счет сбора 32-разрядных сумм из разных чипов. Выходы 16 ПЭ
мультиплексируются. Кристалл ориентирован на транспьютер как на основ»
ной управляющий процессор. Производительность составляет 100 MCPS в
режиме 256 одноразрядных ПЭ и 26 MCPS в режиме 64 8-разрядных ПЭ.
При использовании чипа в цепи обучения достигается производительность
160 и 32 MCUPS соответственно.
Фирма Hitachi выпустила Wafer Scale Integration |182| — многокристальные
полупроводниковые пластины. На пластине размещается сеть Хопфилда с
576 нейронами, каждый из которых, имеет 64 8-разрядных весовых коэффи-
циента.
5.2.4. Цифровые кристаллы
для систолических систем
и систем с одним потоком команд
Это кристаллы с меньшей степенью специализации для нейровычислений и
представляют собой близкие к обычным RISC-процессорам чаще всего 16-
или 32-разрядные процессоры.
Кристалл N64000 1183] фирмы Inova используется в системе CNAPS и со-
держит 80 ПЭ, из которых 64 основных и 16 резервных. ПЭ имеет девять 16-
разрядных умножителей и 32-разрядный сумматор. Внутри чипа содержится
4 Кбайт памяти 8- или 16-разрядных весов и 32 регистра. Все чипы выпол-
няют синхронно один внешний поток команд.
Чип Hecht-Nielson Computers 100 NAP |184] представляет собой 4 ПЭ,
исполняющих 32-разрядную обработку с плавающей точкой. ПЭ может ад-
ресовать 512 Кбайт внекристальной памяти и имеет производительность
160 Mflops.
Фирма Siemens производит чип МА-16 [185] для построения систолических
сетей, ориентированных на нейросетевые алгоритмы. МА-16 реализует мат-
ричные операции над 4x4 матрицами с 16-разрядными элементами. Умно-
жители и сумматоры имеют 48 разрядов. Веса хранятся вне кристалла.
Функция активации реализуется вне кристалла.
Кристалл МТ19003 — Neural Instruction Set Processor [186], называемый про-
цессором с нейросетевым набором команд, фирмы Micro Circuit Engineering —
является RISC-процессором с 7 командами, ориентированными на нейро-
вычисления. Вследствие проблемной ориентированности набора команд
программы интерпретации нейросети имеют небольшой объем кода, что
позволяет загружать их в нейрочип. Для представления входов и весов ис-
пользуются 13-разрядные операнды. Чип имеет 16-разрядный умножитель и
35-разрядный сумматор. Веса хранятся вне кристалла. Скорость обработки
40 MCPS.
5.2.5. Нейрочипы с радиусными
базисными функциями
Эти сети манипулируют с расстояниями между входным вектором и запом-
ненными прототипными векторами весов входов нейронов. Если расстояние
от прототипного вектора не превышает пороговой величины, то входной
вектор относится к этому прототипу. Если расстояние между входным век-
тором и любым прототипным больше пороговой величины, то входной век-
тор запоминается как прототипный. Если расстояние между входным векто-
ром и несколькими прототипными не превышает пороговой величины, то
величина порога этих прототипных векторов уменьшается. Многомерное
входное пространство, таким образом, сегментируется на совокупность об-
ластей, заданных прототипными векторами. Эти сети легко настраиваются и
просто реализуются в аппаратуре.
Фирма IBM выпустила ZISC036 (Zero Instruction Set Computer — компьютер
с числом команд, равным нулю) [187]. Этот кристалл, первый в серии по-
добных, позволяет работать с 36 прототипами. Собственно то, что для рабо-
ты кристалла необходимо задать только значения прототипов, определило
само название кристалла. Кристаллы легко каскадируются для увеличения
числа прототипов. Векторы состоят из 64 8-разрядных элементов. Пороговая
величина расстояния выбирается любой. Входной вектор загружается после-
довательно за 3,5 мкс, и результат появляется через 0,5 мкс.
Фирмы Intel и Nestor создали чип NilOOO [188], подобный ZISC, но более
мощный. Он содержит 1024 прототипных 256-мерных векторов с 5-раз-
рядными элементами. Скорость обработки 40 000 векторов в секунду при
тактовой частоте 40 МГц.
5.2.6. Аналоговые нейрочипы
Аналоговые реализации используют простые физические эффекты для вы-
полнения нейросетевых преобразований. Аналоговые элементы обычно
меньше и проще цифровых. С другой стороны, обеспечение необходимой
точности требует тщательного проектирования и изготовления.
Кристалл фирмы Ifitel 80170NW ETANN [189] содержит 64 нейрона и 2 бан-
ка 64 х 80 весов. Возможно несколько сетевых конфигураций. Чип имеет
64 аналоговых входа (0—3v) и 16 внутренних смещений. На кристалле можно
реализовать двухслойную сеть с 64 входами, 64 внутренними и 64 выходными
нейронами, имеющую производительность 2GCPS. Другие конфигурации
включают трех- и более слойные сети или однослойную сеть со 128 входами.
Точность ETANN 5—6 разрядов для весов и выходов. Настройка 80170NN
выполняется пакетом BrainMaker фирмы California Scientific Software.
5.2.7. Гибридные нейрочипы
Гибридные нейрочипы используют комбинацию аналогового и цифрового
подходов. Например, входы могут быть аналоговыми, веса загружаться как
цифровые и выходы быть цифровыми.
Чип CLNN-32 [190] фирмы Bellcore содержит 32 нейрона. Входы, выходы и
внутренняя обработка аналоговые, а 5-разрядные веса — цифровые.
Чип ANNA [191] фирмы AT&T в основном цифровой, но внутри использует
конденсаторные заряды для хранения весов. Чип содержит 4096 весов, и
число нейронов варьируется от 16 до 256 с числом входов у нейрона 256 или
16 соответственно. Веса имеют точность 6 разрядов. Для однослойной сети с
64 входами и 64 нейронами достигается скорость 2,1 GCPS.
Существуют нейрочипы, в которых используется представление данных час-
тотой или шириной импульсов.
5.2.8. Сигнальные микропроцессоры
и микропроцессоры с расширенным набором
команд для мультимедийных приложений
Сигнальные микропроцессоры ориентированы на обработку векторов дан-
ных, что может быть использовано при интерпретации нейросетевых алго-
ритмов 1177] при умножении с накоплением векторов весов и векторов вхо-
дов нейронов сети. Собственно это же обусловливает эффективную
интерпретацию нейросетей микропроцессорами с ММХ или другим муль-
тимедийным расширением набора команд.
Можно отметить, что при бурном развитии нейросетевых алгоритмов по-
следние несколько лет не появилось новых цифровых нейрочипов. По-
видимому, это объясняется тем, что все особенности проблемной специали-
зации первого поколения нейрочипов адекватно учтены при мультимедий-
ных расширениях системы команд таких микропроцессоров, как, например,
Pentium III и Motorola PowerPC AltiVec.
Высокая тактовая частота и выполнение в одном такте совокупности команд
целочисленной обработки делают эти микропроцессоры почти идеальным
средством интерпретации нейросетей. Важным аспектом использования
микропроцессоров служит то, что они в состоянии выполнять предобработ-
ку данных и обработку результатов работы нейросети. Сказанное относится
только к цифровым нейрочипам. Продолжают появляться проблемно-
ориентированные аналоговые нейрочипы.
5.3. Нейропроцессор
NeuroMatrix NM6403
5.3.1. Основные характеристики архитектуры
Разработанный в Научно-техническом центре "Модуль" [I91J, отечествен-
ный нейропроцессор NM6403 [193—195] имеет скалярный процессор (ска-
лярное-RISC ядро) для выполнения логических, целочисленных арифмети-
ческих операций, операций сдвига и формирования адресов для обращения
в память, а также векторный процессор для обработки двоичных векторов
произвольной разрядности в пределах от 1 до 64 битов. При этом в одном
такте векторный процессор может выполнять операции над несколькими
векторами, вплоть до 64, суммарная длина которых не превышает 64. Ска-
лярный процессор выполняет всю подготовку данных для работы вектор-
ного процессора. В целом, нейропроцессор NM6403 характеризуется как
процессор с разнесенной (decoupled) архитектурой.
Для работы с памятью нейропроцессор имеет два одинаковых интерфейса,
называемых интерфейсами глобальной и локальной памяти, каждый из ко-
торых адресует 231 32-разрядных слов. Обмен с памятью выполняется по 64-
разрядной шине данных интерфейса, что поддерживается выборкой при од-
ном обращении в память двух соседних слов.
Нейропроцессор NM6403 имеет два встроенных канала, называемых также
линками (линк — часто используемая транслитерация слова link, обозна-
чающего понятие "связь", введенная вследствие того, что термин "канал" в
русскоязычной литературе закрепился за "каналом прямого доступа в па-
мять", для обозначения которого в английском языке служит слово channel).
Линки NM6403 совместимы по логическому и физическому протоколам с
линками сигнального микропроцессора TMS 320С4Х. Кроме того, интер-
фейсы локальной и глобальной памяти нейропроцессора имеют встроенные
схемы арбитража, позволяющие без дополнительного оборудования подсое-
динять интерфейсы двух разных нейропроцессоров к одному разделяемому
блоку памяти. Наличие двух линков и двух интерфейсов разделяемой памя-
ти позволяет компоновать широкий спектр параллельных структур, ряд ко-
торых показан на рис. 5.5.
Рис. 5.5. Примеры реализации параллельных структур
на базе нейрочипа NM6403
5.3.2. Система команд
нейропроцессора NM6403
Команды нейропроцессора принадлежат к двум основным типам: команды
скалярного процессора и команды векторного процессора. Команды ска-
лярного процессора выполняются за один такт. Длительность исполнения
команды векторного процессора, в зависимости от типа команды, составля-
ет от одного до 32 тактов.
Команды скалярного процессора имеют 32-разрядный или 64-разрядный
формат. В последнем случае второе 32-разрядное слово задает константу,
адрес перехода или смещение адреса перехода. Команда скалярного процес-
сора включает три поля OPER, MOVE, Р и предписывает выполнение двух
операций:
□ 16-разрядное поле OPER [0:15] задает одну из арифметических, логиче-
ских или сдвиговых операций над содержимым регистров общего назна-
чения;
□ 15-разрядное поле MOVE [16:30] задает преобразование содержимого ад-
ресных регистров, пересылку констант и содержимого регистров типа
"регистр-регистр", "регистр-память", "память-регистр", "константа-регистр",
а также модификацию счетчика команд для управления переходами при
выполнении следующих команд: условных и безусловных переходов, пе-
рехода к подпрограмме, возврата из подпрограммы и прерывания;
□ одноразрядное поле Р [31], разрешающее начать выполнение данной
команды на фоне незавершенной предшествующей команды векторного
процессора.
Скалярный процессор имеет следующие 32-разрядные регистры:
О восемь адресных регистров AR0=AR7, используемых при обращениях к
памяти (AR7 используется как указатель стека);
□ восемь регистров общего назначения GRO—GR7;
□ регистр счетчика команд (PC — Program Counter), задающий адрес оче-
редной команды;
□ регистр слова состояния процессора (PSWR — Program Status Word Re-
gister), содержащий информацию о состоянии процессора, флаги, уста-
новленные по результатам выполнения предшествующих команд, ин-
формацию о ресурсах процессора и текущие значения масок прерываний.
Команды векторного процессора имеют 32-разрядный формат, состоящий
из шести полей: L [0], VOPER [1: 12], COUNT [13: 17|, W [18], VMOV [19:
30], Р [31] и задающий 4 операции:
П одноразрядное поле L задает выполнение пересылки WBUF в WOPER;
□ 12-разрядное поле VOPER определяет арифметическую или логическую
операцию над векторами упакованных данных;
□ одноразрядное поле W залает пересылку из WF1FO в WBUF;
□ 12-разрядное поле VMOVE задает обмен с внешней памятью посредст-
вом операции "чтение" или "запись" вектора упакованных данных;
□ 5-разрядное поле COUNT определяет число повторений выполнения
команды (это поле не используется при пересылке WFIFO в WBUF,
выполняемой всегда за 32 такта; кроме этого, следует отметить, что при
повторении команды с заданной пересылкой WBUF в WOPER эта
пересылка выполняется только один раз при последнем выполнении
команды);
□ одноразрядное поле Р, разрешающее начать выполнение данной команды
на фоне незавершенной предшествующей команды векторного процессора.
Мы не будем касаться организации работы векторного процессора. Заинте- ч
ресованный читатель может обратиться к сайту [192] и работам’[193, 194].
Однако приведем некоторые пояснения. WBUF и WOPER являются матри-
цами ячеек памяти объемом 32 х 64 бита, хранящими 64-разрядные слова,
представляющие весовые коэффициенты. Пересылка WBUF в WOPER вы-
полняется за один такт.
WFIFO — двухпортовый FIFO-буфер объемом 32 х 64 битов, используемый
при подкачке из памяти 64-разрядных слов, представляющих упакованные
данные. Пересылка из WFIFO в WBUF выполняется за 32 такта на фоне
выполнения векторным процессором других операций с использованием
WOPER.
Таким образом, для исключения простоев в ожидании данных для вектор-
ного процессора используется WFIFO-буфер, накачиваемый в темпе, допус=
каемом памятью, "теневая" память WBUF и память WOPER, непосредствен-
но используемая при выполнении операций обрабатывающим устройством
векторного процессора.
5.3.3. Производительность
нейропроцессора NM6403
Нейропроцессор NM6403 изготовлен по 0,5 мкм КМОП-технологии и имеет
тактовую частоту 50 МГц. Близость архитектур скалярного процессора
NM6403 и микропроцессоров семейства "Квант", рассмотренных в главе 4,
позволяют сделать вывод о том, что производительность скалярного процес-
сора NM6403 составляет 60—75 млн операций в секунду (в 5 раз выше, чем
у "Квант-10" пропорционально тактовой частоте).
В работе [194] приведена формула для определения производительности
NM6403 при выполнении нейросетевых алгоритмов при различной разряд-
ности весов и входов нейронов и даны следующие из этой формулы оценки
производительности:
□ 50 MCPS при 32-разрядных весах и входах;
□ 51,2 GCPS при одноразрядных весах и входах.
Вопросы для самоконтроля
к главе 5
1. Какие классы задач эффективно решаются нейросетевыми алгоритмами?
2. Как организуется запоминание нейросетями обучающих примеров?
3. Как должна быть сформулирована задача для решения с применением
нейросетевых алгоритмов?
4. Приведите определение понятий "нейрон" и "нейросеть".
5. Что такое функции состояния и активации нейронов? Приведите при-
меры функций состояния для персептронных сетей и сетей с радиусны-
ми базисными функциями.
6. В чем заключается процесс обучения нейросети?
7. Сформулируйте основные идеи обучения многоуровневых персептрон-
ных сетей с использованием алгоритма обратного распространения.
8. Изложите идеи, лежащие в основе обучения сетей с радиусными базис-
ными функциями.
9. Какими показателями оценивается производительность нейросетей?
10. Как сравнить производительность традиционных "фоннеймановских"
компьютеров и нейросетей?
11. Какие основные направления специализации вычислительных средств
используются для повышения эффективности интерпретации нейросе-
тевых алгоритмов?
12. Какие преобразования нейросетевых алгоритмов позволяют достигать
при решении задач рекордных значений показателей типа "производи-
тельность/стоимость", "производительность/объем оборудования" и т. д.?‘
13. Перечислите основные типы нейрочипов.
14. Укажите особенности сигнальных процессоров, повышающие эффек-
тивность интерпретации нейросетевых алгоритмов.
Список литературы
1. Карцев М. А. Арифметика цифровых машин. М.: Наука, 1979. — 575 с.
/2., DeHon A. The Density Advantage of Configurable Computing // Computer. —
2000. No 4.
3. Дж. фон Нейман Теория самовоспроизводящихся автоматов. М.: Мир,
1971. - 382 с.
4. Henessey J., Patterson D. Computer Architecture: A Quantitative Approach.
Morgan Kaufman Publishers, Palo Alto, CA, 1990, — p, 563,
5. Карцев M. А. Архитектура ЦВМ. — M.: Наука, 1978. — 295 с.
6. Cray Research, Inc., CRAY-1 Computer System Hardware Reference Manual,
Bloomington, Minn., pub. no. 2240004, 1977.
7. Bell G. Ultracomputers: A Teraflop Before Its Time // Communications of
the ACM. - 1992. - Vol. 35, No 8. - pp. 27-47.
i 8. )Строганов А. Проектирование топологии заказных КМОП БИС // Chip
News. 2003. № 2.
9. Мур Г. Ничто не бесконечно, но предел можно отодвинуть! // Chip
News. 2003. № 2.
10. The Programmable Logic Data Book. Xilinx, Xilinx, Inc. 1999.
11. Smith J. Decoupled access/execute computer architectures // ACM Transac-
tions on Computer Systems. — 1984. Vol. 2(4). — pp. 289—308.
12. Smith J., Sohi G. The Microarchitecture of Superscalar processors // Proc, of
the IEEE. - 1995. Vol. 83, No 12. - pp. 1609-1624.
13. Pratt Y., et. al. One Billion Transistors, One Uniprocessor, One Chip //
Computer. 1997. No 9. — pp. 51—57.
14. Hwu W. Introduction to Predicated Execution // Computer. — 1998. No I. —
pp. 49—50.
15. Halfbill T. Inside IA-64 // Byte. - 1998. - Vol. 23, No 6. pp. 81-88.
16. Diefendorff K. The Russians Are Coming // Microprocessor report. — 1999. —
Vol. 13, No 2.
(17.) Волин В., Рудометов В., Столярский Е. Организация подкачки кода в
VLIW-процессоре // Информационные технологии и вычислительные
системы. 1999, № 1, с. 58—64.
Ц8р Останевич А. Экспериментальное исследование поддержки предикатных
вычислений в архитектуре с явно выраженным параллелизмом // Инфор-
мационные технологии и вычислительные системы. 1999, № 1, с. 41—49.
19. Overview of the i860XR Supercomputing Microprocessor. Intel Corporation.
1991. - p. 47.
20. Lenoski D., Laudon J., Gharachorloo K., Gupta A., Hennessy J. The Direc-
tory-Based Cache Coherence Protocol for the DASH Multiprocessor // Pro-
ceedings of the 17th Annual International Symposium on Computer Archi-
tecture. — 1990. — p. 148—159.
21. Transputer Databook. INMOS Ltd. 1985.
22. Коржов В. Java в кремнии // PC WEEK/RE. 20 дек. 1996, 48 с.
23, Diefendorff К., et. al. How Multimedia Workloads Will Change Processor
Design // Computer. — 1997. No 9. — pp. 43—45.
24. Щербо В., Козлов В. Функциональные стандарты в открытых системах,
(в двух частях). Справочное пособие. М.: МЦНТИ, 1997.
25. The Т9000 Transputer. Inmos. SGS-Thomson Microelectronics Group. 1991. —
p. 194.
26. Clark D. Blue Gene and the race toward petaflops capacity // IEEE Concur-
rency. — 2000. January—March. — pp. 5—9.
27. Tera Computer Company Completes Design of Breakthrough Multiprocessor
Chip, http://www.tera.com.
28. Level One(TM) IXP1200 Network Processor. Advance Datasheet, Revision
278298-001 September 1999, http://www.levell.com.
(29.^ Barroso L., Gharachorloo K., Novatzyk A., Verghese B. Impact of Chip-Level
Integration on Performance of OLTP Workloads // Proc, of The Sixth Inter-
national Symposium on High-Performance Computer Architecture (HPCA).
2000. January.
30. Sohi G., Roth A. Speculative Multithreaded Processors // Computer. 2001. —
Vol. 34, No 4.
31. Sohi G., Breach S., Vijaykumar T. Multiscalar Processors // Proceedings of
the 22nd Annual International Symposium on Computer Architecture, ISCA
'95, June 22—24, 1995, Santa Margherita Ligure, Italy. — pp. 414—425.
32. Krishnan V., Torrellas J. A Chip-Multiprocessor Architecture with Speculative
Multithreading // IEEE Transactions on Computers. 1999. — Vol. 48, No 9.
33. Tsai J., et. al. The Superthreaded Processor Architecture // IEEE Transactions
on Computers. 1999. — Vol. 48, No 9.
(34. Koi R., Ginosar R. Kin: A High Perfomance Asynchronous Processor Archi-
- tecture I/ Proceedings of International Conference on Supercomputing. July
13—17, 1998, Melbourne, Australia. — pp. 433—440.
35. The National Technology Roadmap for Semiconductors, Semiconductor
Industry Association, 1997. http://www.sematech.org.
36. Batcher K. STARAN Parallel Processor System Hardware // 1974 National
Computer Conference, AFIPS Conference Proceedings, Vol. 43. — pp. 405—410.
(37.; Reddaway S. DAP — A Distributed Array Processor // Proceedings of 1st An-
nual Symposium on Computer Architecture, IEEE, 1973.
38. Hillis W. The Connection Machine. The MIT Press, 1985.
39. CRAY, Inc. Announces CRAY SX-6 series of high-performance, high-
effeciency supercomputers, http://www.cray.com.
(40. ।Davidson E. Large Chip vs. MCM for a High-Performance System // IEEE
Micro. 1998. - Vol. 18, No 4. - pp. 33-41.
/41. JKoyanagi M. et. al. Future System-on-Silicon LSI Chips // IEEE Micro, '
1998. - Vol. 18, No 4. - pp. 17-22.
42. Diefendorff K. Power4 Focuses on Memory Bandwith // Microprocessor Re-
port. 1999. - Vol. 13, No 13.
(43 J Корнеев В. Параллельные вычислительные системы. М.: Нолидж. 1999. — ;
312 с. /Ч
(44.) Евреинов Э. В., Косарев Ю. Г. Однородные универсальные вычисли-
тельные системы высокой производительности. Новосибирск: Наука.
1966. - 308 с.
(45. Smith D., Hall J., Miyake К. The CAM2000 Chip Architecture. Rutgers
University. 2000. http://www.cs.rugers.edu/pub/technical-reports.
46. Goodman S., Wolcott P., Burkhart G. Building on the Basics: An
Examination of High-Performance Computing Export Control Policy in the
1990s. Centre for International Security and Arms Control. Stanford
University. 1995. — pp. 78.
47. Кручинин С. Стандартные тесты измерения производительности //
COMPUTER WEEK. Москва. 5(211), 8-14 февраля. 1996.
48. Curnow Н. and Wichmann В. A Synthetic Benchmark // Computer Journal,
1976.-Vol. 19, No 1.
49. http://www.netlib.org/benchmark/performance.ps.
50. SPEC (http://www.specbench.org).
51. STREAM: Sustainable Memory Bandwidth in High Performance Computers,
http://www.cs.virginia.edu/stream.
52. CPU-Rate,
http://www.phy.duke.edu/brahma/dual_athlon/src/cpu-rate/cpu-rate.html.
53. Хеннинг Дж. SPEC CPU 2000: определение производительности в новом
тысячелетии // Открытые системы. 2000. № 7—8.
( 54. IBM’s Cell completes design phase // IEEE Micro. 2002. — Vol. 22, No 5.
55. Pentium Processor Family. Developer’s Manual, Intel Corporation, 1997.
56. Intel Architecture. Optimization Manual. (Order Number: 242816-003), Intel
Corporation, 1997.
57. Pentium Processor with MMX technology, (Order Number 243185-001), Intel
Corporation, January 1997.
58. Pentium Pro Family Developer’s Manual. Volume 1: Specifications. (Order
Number 242690), Intel Corporation, 1996.
59. Intel Delivers the Next Level of Computing with the New Pentium II
Processor, Intel Corporation, May 1997.
60. Pentium II Processor at 233 MHz, 266 MHz and 300 MHz, (Order Number:
243335-001), Intel Corporation, April 1997.
61. Introduction to Streaming SIMD Extensions, Intel Corporation, 1999.
62. Fischer S., Mi J., Teng A. Pentium® III Processor Serial Number Feature and
Applications 11 Intel Technology Journal. 1999. — Q2.
63. IA-32 Intel® Architecture Software Developer’s Manual Volume 1: Basic
Architecture. Intel Corp. 2003.
64. Sharangpani H., Arora K., Itanium Processor Microarchitecture // IEEE
Micro. 2000. Sept.—Oct.
65. Intel® Itanium® 2 Processor Reference Manual for Software Development
and Optimization. Intel corp. 2003.
(66./Костяков С. Процессоры NexGen — реальная альтернатива Pentium //
_ CompUnity. 1995. - № 1(2) - c. 69-74.
Q67. Клаймен Д. Три конкурента процессора Pentium // PC Magazine /
Russian Edition. 1995. — № 5. — с. 117—134.
68. AMD-K5 Processors. Advanced Micro Devices, Inc., 1996.
69. AMD-Кб MMX Processor. Product Overview. Advanced Micro Devices, Inc.,
1997.
70. ObermanS., Favor G., Weber F. AMD 3DNow! Technology: Architecture
and Implementations // IEEE Micro. 1999. — March—April.
71. Huynh J. The AMD Athlon MP Processor Technology and Performance
Leadership for x86 Microprocessors. White Paper. White Paper. Advanced
Micro Devices, Inc., August 27, 2002.
72. AMD Eighth-Generation Processor Architecture. White Paper. Advanced
Micro Devices, Inc., October 16, 2001.
73. Cyrix 5x86. Architectural Overview. Cyrix Corporation, 1995.
74. 6x86 Processor. Data Book, (Order Number: 94175-01), Cyrix Corporation,
March 1996.
75. 6x86-P200+ Processor Data Book Addendum, Cyrix Corporation, May 1996.
76. Cyrix Launches 6x86MX Processor. Cyrix Corporation, May 1997.
77. Cyrix 6x86MX Processor. Cyrix Corporation, July 1997.
78. 6x86MX Processor Performance Benchmarks. Product Info, Cyrix
Corporation, 1997.
79. IDT WinChip C6 Processor Data Book. Centaur Technology, Inc., March
1998.
80. WinChip2. IDT WinChip 2 Processor data sheet. Integrated Device
Technology, Inc., September 1998.
81. Полувялов A. VIA Cyrix III (Samuel 2) 600 и 667 MHz, iXBT Hardware,
5 января 2000.
82. Crusoe Processor Model TM3200 Feature. Transmeta Corporation, 2000.
83. Crusoe Processor Model TM5400 Feature. Transmeta Corporation, 2000.
84. Digital Semiconductor Alpha 21164PC Microprocessor, Product Brief, Digital
Equipment Corporation, June 1997.
85. Digital Semiconductor Alpha 21264 Microprocessor, Product Brief, Digital
Equipment Corporation, May 1997.
86. Gwennap L. Digital 21264 Sets New Standard Clock Speed, Complexity,
Performance Surpass Records, But Still a Year Away // Microdesign
Resourcses. 1996. — October 28.
87. Alpha Architecture Handbook, (Order Number EC—QD2KB—ТЕ), Digital
Equipment Corporation, October 1996.
88. Digital Semiconductor 21164 Alpha Microprocessor. Data Sheet, (Order
Number: EC—QP98B—ТЕ), Digital Equipment Corporation, February 1997.
89. Bannon P. Alpha 21364: A Scalable Single-chip SMP. Compaq Computer
Corparation, Microprocessor Forum. 1998. — 13 October.
f9Q./Борзенко А. Следующее поколение против "будущего" или Next
" Generation I/O vs. Future I/O // PC WEEK, № 9(183), 1999.
91. Архитектура SPARC. Версия 8. Руководство пользователя. SUN
Microsystems, 1990.
92. The UltraSPARC Architecture. The UltraSPARC Processor, Technology
White Paper, Sun Microsystems, Inc., 1995.
93. Horel Т., Lauterbach G. UltraSPARC-Ill: Designing Third-Generation 64-
Bit Performance // IEEE Micro. 1999. — May—June.
94. Introduction to the MAJCTM Architecture. Sun Microsystems Inc., 1999.
95. Tremblay M., Microprocessor Architecture for Java Computing. Sun
Microsystems Inc., 1999.
96. Lesartie G„ Hunt D, PA-8500: The Continuing Evolution of the PA-8000
Family. Hewlett-Packard Company, 1997.
97. Gwennap L. PA-8000 Combines Complexity and Speed // Microprocessor
Report. 1994. - Vol. 8, No 15.
98. Gwennap L. HP Pumps Up PA-8x00 Family // Microprocessor Report 1996. —
Vol. 10, № 14.
99. PA-RISC 8x00 Family of Microprocessors with Focus on PA-8700. Technical
White Paper. April 2000, http://www.jpn.hp.Coin/products/servers/parisc/
technology/pa_risc/pdfs/wpaper.pdf.
100. Paap G., Silha E., PowerPC: A Performance Architecture, Proceedings of
COMPCON 1993. - pp. 104-108.
101. PowerPC 620 Microprocessor. Product Overview. Motorola, Inc., 1994.
102. AltiVec Technology. Fact Sheet. Motorola, Inc., 1998.
103. PowerPC 6xx or 7xx RISC Microprocessor Technical Summary, Motorola
1998.
104. Motorola launches PowerPC G4, www.theregisler.co.uk.
105. Siegel T., Averil R. Ill, Check M., Giamei B., et al. IBM's S/390 G5
Microprocessor Design // IEEE Micro. 1999. — March—April.
106. Кузьминский M. IBM свернула на столбовую дорогу // ComputerWorld
Россия, 17 ноября 1998.
107. Tendler J., DodsonS., Fields S., Le H., Sinharoy B. POWER4 System
Microarchitecture. IBM Server Group. October 2001.
108. Yeager K. The Mips R10000 Superscalar Microprocessor // IEEE Micro.
1996. - Vol. 16. - pp. 28-40.
109. R10000 Microprocessor. Product Overview. Mips Technologies, Inc., October
1994.
ПО. Бабаян Б., Ким А., Сахин Ю. Отечественные универсальные микро-
процессоры серии "МЦСТ-R" // Электроника: Наука, Технология,
Бизнес. 2003. — № 3. — с. 46—51.
111. Kane G., Heinrich J.MIPS RISC Architecture. Prentice Hall, 1992.
^T12?) http://www.niisi.ru/otdl2.htm.
лТз./Однокристальный микропроцессор с архитектурой MIPS 1В812. Техни-
ческое описание, niisi.ru/o/lb578omp_short.doc.
114) Введение в цифровую фильтрацию // Под ред. Р. Богнера, А. Констан-
тинидиса: Пер. с англ. М.: Мир, 1976.
115. Guy R., Sohie L., Chen W. Fast Fourier Transforms on Motorola's Imple-
mentation on Digital Signal Processors., Motorola, Inc. 1993.
116. TMS320 Digital Signal Processor Solutions. Texas Instruments Inc., 1997.
117. TMS320C1X Digital Signal Processors. Production Data, Texas Instruments,
Inc., 1993.
118. TMS320C2x Digital Signal Processors. Production Data, Texas Instruments,
Inc., 1994.
119. TMS320C5x Digital Signal Processors. Production Data, Texas Instruments,
Inc., 1995.
120. TMS320C2xx User’s Guide. Texas Instruments, Inc., January 1997.
121. TMS320C203, TMS320C209, TMS320VC203 Digital Signal Processors.
Advance Information, Texas Instruments, Inc., 1995.
122. TMS320C54x DSPs. Product Bulletin, Texas Instruments, Inc., 1996.
123. TMS320C54x, TMS320LC54x, TMS320VC54x Fixed-Point Digital Signal
Processor. Data Book, Texas Instruments, Inc., February 1996.
124. TMS320C30, TMS320C30 Digital Signal Processors. Production Data, Texas
Instrumerits, Inc., April 1996.
125. TMS320C44 Digital Signal Processor, Data Book, Texas Instruments Inc.,
1995.
126. TMS320C4x, User’s Guide, Texas Instruments Inc., March 1996.
127. TMS320C80. Multimedia Video Processor (MVP). Technical Brief, Texas
Instruments, Inc=, 1994.
128. TMS320C62xx. Technical Brief. Texas Instruments, Inc., January 1997.
129. TMS320C62xx CPU and Instruction Set. Reference Guide, Texas
Instruments, Inc., January 1997.
130. TMS320C6201 Digital Signal Processor. Product Preview. Texas Instruments,
Inc., January 1997.
131. ADSP 21xx Family Manual. Analog Devices, Inc., 1995.
132. ADSP-21000 Family Applications Handbook, Analog Devices, Inc., 1995.
133. ADSP-219x Family Manual. Analog Devices, Inc., 2002.
134. ADSP-2106x SHARC DSP Microcomputer Family, Analog Devices, Inc.,
1996.
135. ADSP-21160 SHARC Technical Specification, Analog Devices, Inc., 1998.
(ТЗб. Кинг К., Гирлинг Г., Воурин К., Левин Н., Моррис Д., КестерУ. Ап-
паратура цифровых сигнальных процессоров, Analog Devices, Inc., 2002.
137. ADSP-21535. Preliminary Technical Data. Analog Devices, Inc., June 2002.
138. DSP56000/DSP56001 User’s Manual. Motorola, Inc., 1995.
139. DSP56000 24-bit Digital Signal Processor. Family Manual. Motorola, Inc.,
1995.
140. DSP56300 Family Manual. Motorola, Inc., 1995.
141. DSP56100 Family Manual. Motorola, Inc., 1995.
142. DSP56600 Family Manual. Motorola, Inc., 1996.
143. DSP56800 Family Manual. Motorola, Inc., 1996.
144. DSP96002 Product Documentation. Motorola, Inc., 1996.
145. MPC8260 PowerQUICC II Technical Summary Motorola, 9/98. — p. 20.
146. IXP1200 Network Processor. Product Brief, Order Number: PB-0010-0899-
3K, http:\\www.levell.com.
147. Intel® 1XP2850 Network Processor, Product Brief. Intel Corporation. 2002.
148. Intel® IXP422 Network Processor, Product Brief. Intel Corporation. 2003.
149. Intel PXA26x Processor Family, Developer's Manual, Intel Corporation,
2003.
150. Slater M. The microprocessor today // ComputerWeek-Moscow. 1997. —
No 17-18 - pp. 34-39, 46, 47.
151. Halfhill T., Montgomery J. Multimedia chips will dominate the technical talc
at this Microprocessor Forum // Byte, Chip Fashion. 1996.
152. Hars A. Hot Chips, Cool Media // Byte. 1995. = Vol. 20. — pp. 45—50.
(fsI^Mpact Media Processor. Data Sheet, Chromatitc Research, Inc., 1997.
154. Andrews. Hot Chips, Tough Choices. Byte, 1995, Vol. 20. — p. 25.
155. Cyrix Announces the MediaGX Processor. Cyrix Corporation, February
1997.
156. Cyrix MediaGX Processor. Data Book, Cyrix Corporation, 1997.
157. Goodman S., Wolcott P., Burkhart G. Executive Briefing: An Examination of
High-Performance Computing Export Control Policy in the 1990s. IEEE CS
Press, Los Alamitos, Calif., 1996.
158jWolcQtt P. Soviet Advanced Technology: The Case of High-Performance
Computing. Ph. D. Dissertation. University of Arizona. 1993.
159. Корнеев В. В. Архитектура вычислительных систем с программируемой
структурой. Новосибирск: Наука, 1985. — 168 с.
(|60.'Левин В. К. Высокопроизводительные мультимикропроцессорные сис-
темы // Информационные технологии и вычислительные системы.
1995. — Том 1, № 1. — с. 1—9.
161. InfiniBandTM Architecture Specification, Volume 1, Release 1.0. October 24,
2000 Final.
{162. /RapidlO: An Embedded System Component Network Architecture.
Architecture and Systems Platforms Motorola Semiconductor Product Sector
7700 West Parmer Lane, MS: PL30 Austin, TX 78729.
163. Hull M. Occam — A programming system for multiprocessor systems.
Computer Languages 12 (1), pp. 27—37.
164. Хоар Ч. Взаимодействующие последовательные процессы: Пер. с англ.
М.: Мир, 1989. - 264 с.
(Гб5.?Виксне П. Е., Каталов Ю. Т., Корнеев В. В., Панфилов А. П., Трубец-
кой А. В., Черников В. М. Транспьютероподобный 32-разрядный RISC-
процессор с масштабируемой архитектурой // Вопросы радиоэлектро-
ники. Серия ЭВТ. 1994. — Выпуск 2. — НИИЭИР. — с. 49—59.
166. Виксне П. Е., Каталов Ю. Т., Конотопцев В. Н., Корнеев В. В, Ярмо-
линский И. П. Сравнительная оценка производительности процессоров
"Квант-10", "Квант-20" и транспьютера Т-800. Вопросы радиоэлектро-
ники. Серия ЭВТ. 1994. — Выпуск 2. — НИИЭИР. — с. 60—65.
167. Barron A. Universal approximation bounds for superposition of sigmoid
functions // IEEE Transactions Information Theory. 1993. — Vol. 39.
168. Уоссермен Ф. Нейрокомпьютерная техника. M.: Мир, 1992.
169. Jain A., Mohiuddin J. Artificial Neural Networks: A Tutorial // Computer.
1996. No 3.-pp. 31-44.
170. Lawrence J. Introduction in Neural Networks: Design, Theory and
Applications. California Scientific Software. 1994. — p. 423.
171. Hopfield J. Neural networks and physical systems with emergent collective
computational abilities. — In: Proc. Nat. Acad. Sci. USA, Vol. 79, 1982. —
p. 2554-2558.
172. Гаврилкевич M. В. Введение в нейроматематику. Обозрение приклад-
ной и промышленной математики. М.: ТВП, 1994. — с. 377—388.
173. Hornick К., Stinchcombe М., White Н. Multilayer Feedforward Networks
are Universal Approximators // Neural Networks. 1989. — Vol. 2, No 5. —
pp. 359—366.
174. Cybenko G. Approximation by Superpositions of a Sigmoidal Function //
Mathematics of Control, Signals and Systems. 1989. — No 2. — pp. 303—314.
175. Funahashi К. On the Approximate Realization of Continuous Mappings by
Neural Networks // Neural Networks. 1989. — Vol. 2, No 3. — pp. 183—
192.
17брЭволюционные вычисления и генетические алгоритмы // Обозрение
' ' прикладной и промышленной математики. М.: Научное изд-во "ТВП",
том 3, вып. 5, 1996.
177. Marguerat С. Artificial neural network algorithms on a parallel DSP system.
In: Transputers'94 Advanced research and industrial applications. Proc, of the
International conf. 21—23 Sept. 1994. IOS Press 1994. — p. 278—287.
178. Lindsey C., Lindblad T. Survey of neural networks hardware // SPIE.
Vol. 2492. - pp. 1194-1205.
179. MD1220 Data Sheet. March 1990,Micro Devices, 30 Skyline Dr., Lake
Mary, Fl 32746-6201,USA.
180. NLX420 Data Sheet. June 1992, Neurologix, Inc., 800 Charcot Av., Suite
112, San Jose. Ca. USA.
181. Mauduit №., Duranton M., GobertJ. Lneuro 1.0: A Piece of Hardware
LEGO for Building Neural Network Systems // IEEE Trans, on Neural
Networks. 1992. - Vol. 3, No 3. - pp. 414-422.
182. Yasunga M., Msuda №., Yagytt M., Asai M., Yamada M., Masaki A. Design,
Fabrication and Evaluation of a 5-Inch Wafer Scale Neural Network LSI
Composed of 576 Digital Neurons // Proceedings International Joint
Conference on Neural Networks. IJCNN'90, June 1990.
183. Hammerstrom D. A VLSI Architecture for High-Performance, Low-Cost,
On-chip Learning // Proceedings International Joint Conference on Neural
Networks. IJCNN’90, June 1990.
184. Means R., Lissenbee L. Extensible Linear Floating Point SIMD
Neurocomputer Array Processor // Proceedings International Joint
Conference on Neural Networks. IJCNN'91, July 1991.
185. Beichter J., Bruels №., Meister E., Ramacher U., Klar H. Design of
General-purpose Neural Signal Processor. Proceedings of the 2nd
International Conference on Microelectronics for Neural Networks, Munich,
Germany. Oct. 1991.
186. MT19003 Data Sheet, May 1994, Micro Circuit Engineering, Alexander Way,
Tewkesbury, Gloucestershire GL20 GTB.
187. LeBouquin J-P. IBM Microelectronics ZISC, Zero Instruction Set Computer//
Procedings of the Word Congress on Neural Networks, Supplement, San
Diego, 1994.
188. Holler M., Park C., Diamond J., Santoni U., The S., Glier M., Scofield C.,
Nunez L. A High Performance Adaptive Classifier Using Radial Basis
Function. Procedings of Government Microcircuit Application Conference,
Las Vegas, Nevada, USA, Nov. 1999.
189. 80170NX Electrically Trainable Analog Neural Network, Data Sheet, Intel
Corp., Santa Clara, CA, 1991.
190. Alspector J., JayakumarT., Luna S. Experimental Evaluation of Learning in a
Neural Microsystem // Proceedings of NIPS'91 in Advances in Neural
Information Processing Systems-4. — pp. 871—878, Morgan-Kaufmann Pub.,
San Mateo, CA. 1992.
191. Boser B., Sackinger E., Bromley J., LeCun Y., Jacket L. Hardware
Requirements for Neural Network Pattern Classifiers // IEEE Micro. 1992. —
No 2.— pp. 32—40.
192) http://www.module.ru.
193. Виксне П., Фомин Д., Черников В. Однокристальный цифровой ней-
ропроцессор с переменной разрядностью операндов // Известия вузов.
Приборостроение. 1996. — т. 36, № 7. — с. 13—21.
194. Черников В., Виксне П., Фомин Д., Шевченко П. Архитектурные осо-
бенности нейропроцессора NM6403 // Сборник докладов V Всероссий-
ской конференции "Нейрокомпьютеры и их применение". Москва, 17—
19 февраля 1999.
195. Виксне П., Черников В., Фомин Д„ Шевченко П. Применение микро-
процессора NM6403 для эмуляции нейронных сетей // Сборник докла-
дов V Всероссийской конференции "Нейрокомпьютеры и их примене-
ние". Москва, 17—19 февраля 1999.
Предметный указатель
А
Address Generation Unit 153
AltiVec 246
В
Brainiac 138, 255
Branch Target Buffer 151
c
Code Morphing 210
D
Decoupled Architecture 151
Dual Independent Bus 151
Dynamic Execution 151
E
Enhanced 3DNow! 192
EPIC 175
H, I, J, M, N
Hyper-Threading 170, 173
Instruction Fetch Unit 151
Java-машина 94
Memory Ordering Buffer 153
Net Burst 170
R
Register Alias Table 151
ReOrder Buffer 151
Reservation Station 151
Retirement Register File 153
ROP 185
s
Spead Daemon 214
Speed Daemon 138
Streaming SIMD Extensions 159
T
Thread Level Parallelism 253
TLB 230
V
Very Long Instruction Words 176
Visual Instruction Set 229
VLIW 176
А
Алгоритм:
функционирования процессора 19
обучения нейросетей 410
Амплитудно-частотная характеристика
фильтра 274
Аналоговая:
обработка сигнала 273
фильтрация сигнала 273
Аналоговые нейрочипы 416
Аппаратный:
группировщик команд 394
планировщик центрального
процессора 383
Аппроксимация функций многих
переменных 408
Архитектура: *
1А-64 72
R1SC86 184
SHARC 317
VclociTI 306
микросигнальная 330
мультитредовая 96
персонального клиента — РСА 361
процессора 25
статическая суперскалярная 326
разнесенная 67
Архитектурно независимый формат
спецификации программ 94
Архитектурное состояние процессора 81
Ассоциативная:
кэш-память 33
память 30, 407
Ассоциативные процессоры 114
Б
Байт 8
Безусловно исполняемые треды 99
Бит 8
готовности регистра ввода/вывода 27
Бит-реверсивный порядок 277
Блок:
встраиваемый в кристалл
динамической памяти 91
памяти 9
режимов работы линков
транспьютера 390
событий транспьютера 390
интеллектуальной собственности 55
обработки мультимедийных
данных 92
Буфер:
адресов перехода 141, 328
истории:
вычислений 81
истории трансляции виртуаль-
ных адресов в физические 36
трансляции адресов 141
Буферизиро ванный п осл ед о вате л ьн ы й
порт 291
Быстрая буферная память 30
в
Векторно-конвейерные процессоры
38
Векторные регистры 39
Вентиль 5
Вес входа нейрона 405
Взаимодействие:
процессоров 381
транспьютеров 389
систем 93
Виды зависимостей по данным 66
Внутрикристальный эмулятор 340
Вращение регистров 181
Время:
доступа в память 30
переключения контекста 89
Встроенные средства мониторинга
производительности и отладки 363
Встроенный сопроцессор
транспьютера 386
Вход нейрона 405
Высокоприоритетный процесс
транспьютера 387
Вычислительный процесс 28
Выявление:
потенциального параллелизма
уровня команд 211
тредов 97
на основе анализа потоков дан-
ных, управления 99
г
Гарвардская архитектура 279
модифицированная 309
Генератор адреса 294
Граф межнейронных соединений 406
д
Двойное слово 8
Декодирование команды 20
Динамическая память:
BEDO 48
DDR SDRAM 49
EDO 48
RDRAM 49
видео 52
со страничной организацией
FPM 47
Динамическая структура программы 65
Динамические микросхемы памяти 46
Динамическое преобразование
двоичного кода программы во
внутренний VLIW-код ядра 210
Дискретная элементная база 38
Дискретное преобразование Фурье 275
Длительность такта 7
Е
Единицы измерения
производительности нейросетей 411
3
Зависимости по данным:
лишние 66
управление между командами 61
Задача:
аппроксимации функций 402
кластеризации данных 402
оптимизации 402
плохо формализованная 401
предсказания 402
распознавания образов 402
эффективно решаемые
нейросетями 404
и
Изготовление микросхемы 42
Изменение порядка следования
команд 70
Индекс производительности 122
Интеграция:
коммуникационных интерфейсов
в кристалл микропроцессора 92
функций на кристалле 59
Интерпретация нейросетей
микропроцессорами 416
Интерфейс:
HyperTransport 196
универсальный асинхронный 330
к
Каналы “точка-точка" 92
Когерентность кэш-памяти, основной
памяти 31
Кодек данных 282
Кодирование видеоданных 368
Команды:
векторные 26
скалярные 26
нейропроцессора 418
перехода 20
безусловные 22
условные 22
транспьютера 385
Компьютер 26
Конвейерность 15
Контекст процесса 29
Контроллер прямого доступа
в память 284
Концепция:
Explicitly Parallel Instruction
Computing 175
NSP 145
регистровых окон 223
параллелизма 379
процессоров с сокращенным
набором команд 61
Криптографические алгоритмы 358
Кэш-память 31
множественно-ассоциативная 33
с буферизацией записей 32
с обратной записью 31
с прямым отображением 32
со сквозной записью 31
трасс 70
Кэш-строка 31
л
Линк 196, 254, 296, 320, 321, 379, 417
Локализуемое™ данных 30
м
МАС 275
Масштабируемость 93
Машина Тьюринга 17
Медиапроцессор 366
Мезонинные модули SHARCPAC 318
Метод:
write-back 141
write-through 141
Методика оценки
производительности SPEC 89 127
Механизм:
задержанных переходов 242
виртуальных линков 393
Микропроцессор 39
для мобильных коммуникацион-
ных устройств 361
транспьютероподобцый 381
отечественный 395
универсальный 45
Микропроцессорное ядро:
StrongARM 356
XScale 361
Многокристальные микросборки 60
Многоуровневое прерывание 29
Модель последовательного
программирования 65
Мультиплексор 9
Мультипроцессорная система на базе
транспьютеров 381
Мультитредовость 170
М ул ьтитредовы й м и Kpoi iроцессор:
Torrent 98
сетевой IXP1200 98
суперкомпьютера Blue Gene 98
Мультитредовый процессор 95
Cell 98
Kin с тредами, выявляемыми путем
анализа потоков данных 111
мультискалярный 97
с условно исполняемыми
тредами 100
н
Набор:
команд 16
процессора DLX 21
микросхем (чипсет) 91
Нахождение решения нейросетью 410
Нейрон 405
Нейронная сеть 406
конструируемая 407
многоуровневая персептронная 409
обучаемая 407
общая идея применения 403
Нейропроцессор NM6403 417
Нейросетевой подход 401
Нейросетевые:
алгоритмы решения оптимизаци-
онных задач 402
постановки задач 403
Нейросети с радиусными базисными
функциями 409
Нейрочип 413
сеть Хопфилда 414
цифровой 413
Низкоприоритетный процесс
транспьютера 387
О
Обмен по линкам между
транспьютерами 388
Обработка:
в режиме SIMD-процессора 92
ошибок транспьютера 392
Однокристальная система 97
построение из большого числа
простых процессоров 119
Однокристальные процессоры:
SIMD 115
векторно-конвейерные 115
Окно исполнения суперскалярного
процессора 66
Операции с памятью 9
Оптимизация показателя
производительность/стоимость 413
Опция защиты данных 289
Организация очереди процессов
транспьютера 387
Открытые системы 93
Оценка производительности:
SPECrate 128
универсальных компьютеров при
интерпретации нейросетей 412
п
Пакет SPEC CPU 89 127
Память:
виртуальная 34
двухуровневая 30
идеальная 29
контекстно-адресуемая 402
синхронная динамическая
SDRAM 48
с произвольным числом уровней
иерархии 30
Параллелизм 15
уровня команд 65
Переименование регистров 77
Переключение процессора на другой
регистровый файл 96
Переносимость программного
обеспечения 93
Пиковая производительность 119
Полупостоянное запоминающее
устройство 284
Пользовательские тесты 124
Попадание процессора в кэш-память 31
Порт с разделением времени 291
Постоянное запоминающее
устройство 284
Предикатный регистр 73
Предсказание переходов 66
Преобразование if 73
Прерывание 28
Природа ограничений
эффективности:
VLIW-процессоров §2
суперскалярных архитектур 82
Проблема “исключающее ИЛИ” 408
Программа:
на языке ОККАМ 381
обработки прерываний 28
Программируемые логические
интегральные схемы 54
Программная реализация вычисле-
ний 16
Программный ввод/вывод 27
Промах процессора в кэш-память 31
Протекание вычислительного
процесса 28
Протокол:
MESI 141
когерентности DASH 87
когерентности MESI 83
Прототипные векторы 415
Процессор 19
медийный 280
модельный DLX 21
мультимедийный видео 299
с длинным командным словом 64
структура DLX 22
суперскалярный 64
р
Разделяющие гиперплоскости 408
Разрешение или запрещения
кэширование страниц памяти 146
Разрешение кэширования страницы 36
Разрыв между быстродействием
логических элементов и элементов
памяти 29
Расслоение памяти 37
Реализация:
обмена по линку между
транспьютерами 390
памяти 29
Регенерация динамической памяти 46
Регистр 8
повышенной точности 296
Регистровый файл 9
Режим управления памятью
транспьютера 391
Резервирующая станция 79
с
Сверхбольшие интегральные схемы 40
Симбиоз компиляторов и аппара-
туры 98
Синтетический тест 122
Слово 8
Смешение в кэш-строке 32
Составная теоретическая
производительность 121
Сотовый телефон 343
Специализация вычислительных
средств на исполнение
нейроалгоритмов 412
Специфика архитектуры сигнальных
процессоров 279
Способы оценки производитель-
ности 119
Способы реализации запоминания
областей 404
Стандартизация архитектуры
процессоров 93
Стандартные тесты оценки
производительности 124
Статические микросхемы памяти 46
Стек 28
Страничная организация памяти 34
Схема суммирования двух двоичных
чисел 12
Схемная реализация вычислений 15
Счетчик команд 19
т
Таблица:
отображения, страниц 35
предсказания ветвлений 71
Таймер транспьютера 390
Тактовая частота 7
Тактовый сигнал 7
Тенденции, приводящие к появлению
однокристальных
мультипроцессорных систем 117
Теневые регистры 285
Тест:
Linpack 125
оценки производительности про-
цессора и характеристики его
работы с памятью 124
Тестовые пакеты SPEC CPU 127
Технология:
3DNow! 189, 193
ММХ 148
управления энергопотреблением
LongRun 212
Тип команды 25
Транспьютер 379
начальная загрузка 391
обобщенная структура Т800 383
оперативная память 387
рабочая область памяти
процесса 383
семейства 380
состояния процессов 387
центральный процессор 383
Треды 96
условно-исполняемые 99
Триггер 6
л
Увеличение производительности
процессоров 29
Указатель стека 28
Уменьшение времени переключения
контекста процессора 89
Умножение с накоплением 279
Умножитель частоты 340
Универсальный последовательный
порт 291
Условное исполнение:
команд 73
тредов 97
Условные графические изображения
вентилей 5
ф
Фильтр:
с бесконечной импульсной
характеристикой 274
с конечной импульсной
характеристикой 274
Функция:
активации нейрона 405
состояния нейрона 405
X
Хост-процессор 291
ц
Цифровая обработка сигнала 273
Цифровое устройство Colossus 17
Цифровые сигнальные
микропроцессоры 278
Цифровые сигнальные процессоры 45
э
Элемент:
данных 5
памяти 5
Энергосберегающий режим
функционирования 286
Эталонная ЭВМ 122
абсолютная производительность 122
Эффект сокращения времени доступа
в память 30
Эффективная производительность
компьютера 122
я
Язык высокого уровня — ОККАМ 381
Ячейка памяти 8