В.А. Фисун - Прикладное программирование в задачах математической физики. Архитектурные принципы построения ЭВМ (pdf) (1127762), страница 15
Текст из файла (страница 15)
Время выполнения даже таких операций, как умножение и деление чисел с плавающейзапятой, варьируется в зависимости от значений аргументов операций, чтоограничивает возможности аппаратного планирования совмещенного выполнения команд. CISC набор команд нельзя было разместить целиком наодном кристалле – чипе первых СБИС.Исполнение процессоров на кристалле потребовало ревизии системыкоманд, что привело к реализации компьютеров с сокращенным наборомкоманд - RISC (Reduced Inctruction Set Computing) архитектуры. Основнымичертами микропроцессоров данной архитектуры принято считать следующие: выполнение одной команды за цикл; использование простых видовадресации; трехадресные арифметические команды над операндами в регистрах; фиксированный формат команд.
Традиционное число команд здесь 128. Выполнение команд, не входящих в этот состав, производится программно, для этого в архитектуре предусматривается развитый механизмреализации подпрограмм: реализация запоминания-восстановления регистров, стеки и т.д.Упрощение оборудования, конвейеризация выполнения команд, позволили RISC процессорам резко повысить производительность.
Сокращенныйнабор команд означает также ряд других упрощений оборудования для достижения высокой производительности. Команды в архитектуре RISC имеютПособие 17.09.0953фиксированную и небольшую длину, они не нуждаются в интерпретации.Использование трехадресных команд упрощает их дешифрацию и дает возможность сохранять большее число переменных в регистрах без перезагрузки. По мере развития архитектуры RISC она обзаводилась все новымивозможностями наращивания производительности. Ключевыми из них являются суперскалярная или многоконвейерная обработка, внеочередноевыполнение команд, появление смешанных или групповых команд для выполнения часто повторяющихся последовательностей.Массовому переходу на RISC процессоры препятствует большой объемнакопленного фонда алгоритмов и программ в кодах самой массовой ЭВМ,в кодах IA32.
Интеграция обсуждаемых архитектур была приведена в процессоре Pentium Pro. Этот процессор – реализация CISC-среды на RISCоборудовании ядра. Поступающие в процессор на исполнение объектныекоды, написанные в системе команд IA32, аппаратно перекодируются навходе во внутреннее представление, в коды команд внутреннего RISC представления.
Таким образом достигается совместимость накопленного фондаалгоритмов и программ с современными технологическими новациями.5.2. Суперскалярные микропроцессорыКонвейеризация (pipelining) предполагает разделение выполнения каждой инструкции (команды) на несколько этапов, причем каждый этап выполняется на своей ступени конвейера процессора.
При выполнении инструкция продвигается по конвейеру по мере освобождения последующихступеней. Таким образом, на конвейере одновременно может обрабатываться несколько последовательных инструкций и производительность процессора можно оценивать темпом выхода выполненных инструкций со всех егоконвейеров. Конвейеры процессоров имеют большее число ступеней, чтопозволяет повысить производительность микропроцессоров, однако приэтом повышается вероятность роста конвейерных конфликтов.В типовой конвейерной схеме работы обычного “скалярного” УУ первые два этапа выполняют предварительную, подготовительную работу исполнения команды. Затем функциональная часть команды - третий этап реализуется на одном из операционных блоков (опять модельная схема): наАЛУ с плавающей точкой, на целочисленном АЛУ и в блоке анализа условных операторов.
Можно заметить, что при работе третьего этапа загружен всегда только один блок из трех. Микропроцессоры с единственнымконвейером для выборки и декодирования команд называются “скалярными”, к этому типу относятся 486 процессоры фирмы Intel.Другое направление повышения производительности микропроцессоров находится в области реализации параллелизма на уровне команд (instruction level parallelism, ILP),в архитектуре “суперскалярных”(superscalar) микропроцессорах. На уплотнении загрузки функциональныхблоков путем дублирования конвейера и выполнении в функциональномблоке сразу двух команд одновременно и основана суперскалярная версияПособие 17.09.0954конвейера, реализованная в процессорах Pentium.
Суперскалярный процессор имеет более одного (Pentium - два) конвейера, способных обрабатыватьинструкции параллельно. Эти процессоры содержат два пятиэтапных конвейера: главный конвейер, u-конвейер может выполнять любую команду, авторой, дополнительный v-конвейер- только некоторые. Конвейерные блоки первого этапа выбирают сразу две команды, причем они ассиметричны,право изменять счетчик выбираемых команд имеет только один из этихблоков.
Общий блок выборки команд компонует из потока команд по-парносовместимые команды и передает их на исполнение в два конвейера. Команды всегда выполняются по заданному порядку, несовместимые командывыполняются последовательно на главном конвейере. Реализация процессоров с 3-4 конвейерами признана нецелесообразной, суперскалярная архитектура современных микропроцессоров опирается на более общую схему.В такой схеме мультиплицируется оборудование подготовительныхэтапов конвейера команд для выборки команд и их декодирования. Коэффициент дублирования подготовительных этапов называют иногда степенью суперскаляра. Состав функциональных блоков также может расширяться. Так, у Pentium III блоки целочисленной арифметики и арифметики сплавающей запятой дублированы, а у Рentium IV размножены с коэффициентом три.
После декодирования команд и преобразования их во внутреннее представление диспетчер организует выполнение вычислительных работ с учетом возможного параллелизма на уровне команд и обеспечениямаксимальной загрузки функциональных устройств. Возможные конвейерные конфликты разрешаются способами, описанными выше. Переименование регистров (register renaming) позволяет обойти архитектурное ограничение на возможность параллельного исполнения инструкций. Продвижение данных (data forwarding) подразумевает начало исполнения инструкциидо готовности всех операндов.При этом выполняются все возможные действия и декодированная инструкция с одним операндом помещается в исполнительное устройство, гдедожидается готовности второго операнда.
Предсказание переходов (branchprediction) позволяет продолжать выборку и декодирование потока инструкций после выборки инструкции ветвления (условного перехода), не дожидаясь проверки самого условия.Суперскалярная схема выполнения программы реализует алгоритмывнеочередного и спекулятивного порядка выполнения команд. При этомвозможно совмещенное по времени выполнение независимых команд. Однако эта схема не позволяет учитывать параллелизм на уровне команд, который выявляется на уровне трансляции программ.5.3. Сверхдлинные командыИдеи VLIW архитектуры ЭВМ просты: для достижения большей производительности логично прибегнуть к статическому распараллеливаниювычислений и заставить один физический процессор параллельно обраба-Пособие 17.09.0955тывать несколько инструкций.
Считается, что начало работ по архитектуреЭВМ со сверхдлинными командами VLIW (Very Long Instruction Word) положили в начале 80-х Алан Чарльзворт (Alan Charlesworth), Джош Фишер(Josh Fisher) и Боб Рау (Bob Rau). Такая архитектура подразумевает применение специальных компиляторов, способных обнаруживать в текстепрограммы независимые инструкции и формировать из них длинные машинные слова инструкций. В архитектурах VLIW - машин команды могутиметь широкий формат (длину) и команда может содержать несколько содержательных инструкций, выполнение которых детально регламентируется в терминах тактов работы АЛУ (допускается параллельное выполнениенескольких инструкций).
В таких архитектурах имеется возможность программировать вычислительные алгоритмы (включая векторные) с максимальной производительностью для данной аппаратуры. В них вся работа пооптимальному программированию возлагается на системы программирования (или ручное программирование). Главные особенности VLIW архитектуры:- существование одного центрального управляющего устройства (УУ),обрабатывающее за один такт одну длинную команду;- наличие нескольких функциональных устройств (ФУ);- разделение длинной команды на поля, каждое из которых содержиткоманду управления некоторым функциональным устройством или командуобращения к памяти;- фиксированная длина в тактах времени исполнения каждой операции, причем операции ФУ могут быть конвейеризованными;- ОЗУ имеет большой коэффициент расслоения памяти, банки памятиидентифицируются при программировании;- сложность ручного программирования в силу большого числа комбинаторных задач.Достоинством данной архитектуры является возможность статическизадавать работу всем ФУ на каждом такте.
Однако упрощения в архитектуре управления приводят к значительному возрастанию сложности задачипланирования выдачи команд, так как программными средствами должнабыть обеспечена точная синхронизация считывания и записи данных. Приэтом необходимо так планировать параллельное выполнение операций машины, чтобы выполнялись определенные ограничения на число одновременно считываний и записей в наборы регистров, использование ФУ и т.д.Размер командного слова в машинах данной архитектуры - FPS (AP-120B) 64 бита, Multilow Tract – 1024 бита.В 1997 г. на проходившем совещании - Microprocessor Forum - появились первые подробности относительно разрабатываемой архитектуры итогда же появился термин EPIC (Explicitly Parallel Instruction Computing).Набор инструкций для новой архитектуры получил название IA64.