ПОД (пособие) (1184372), страница 18
Текст из файла (страница 18)
Один из аппаратных путей решения проблемы дисбаланса в скорости доступак данным, размещенным в ОЗУ и производительностью ЦП. Суть расслоения ОЗУ состоит вследующем. Все ОЗУ состоит из k блоков, способных хранить одинаковое количествоинформации и способных взаимодействовать с процессором независимо друг от друга.Ячейки памяти распределены между блоками таким образом, что у любой ячейки ее соседиразмещаются в соседних блоках.
Полный адрес каждой ячейки памяти будет состоять издвух частей: номера банка и номера ячейки в банке.Возможность предварительной буферизации при чтении команд/данных. Программасостоит (в большей степени) из линейных участков. Если использовать этот параллелизм, томожно организовать в процессоре еще один буфер (кэш?), который организован так же, но вкотором размещаются машинные команды. За счет того, что есть параллельно работающиеустройства, то этот буфер автоматически заполняется вперед. Т.е. за одно обращение можнопрочесть k машинных слов и разместить их в этом буфере.
Далее, действия с буферомкоманд похожи на действия с буфером чтения/записи. Когда нужна очередная команда (ееадрес находится в счетчике команд), происходит ее поиск (по адресу) в буфере, и если такаякоманда есть, то она считывается. Если такой команды нет, то опять-таки работаетвнутренний алгоритм выталкивания строки, новая строка считывается из памяти икопируется в буфер команд. Расслоение памяти в идеале увеличивает скорость доступа в kраз, плюс буфер команд позволяет сократить обращения к ОЗУ. (Когда идет запрос наопределенную ячейку памяти, одновременно считывается по одной ячейке из каждого банкас "номером в банке", равным "номеру в банке" запрошенной ячейки; на выход выдаетсяячейка с нужным номером банка.
Соответственно, чем больше банков, тем быстрее работа спамятью, но только при последовательном чтении. Последовательное чтение - 60% от всехчтений из памяти.); (При обычном однобанковом устройстве модуля памяти, каждоепоследующее слово можно получать лишь через 50 нс. после предыдущего, а то и реже.Если разбить память на отдельные области (банки), то при последовательном доступе одно55слово будет выдаваться первым банком, а следующим банком - второе и т. д. К томумоменту, когда снова нужно будет обратиться к первому банку, пройдет полный цикл и онбудет готов выдать данные без задержки.
Теоретически, ускорение работы прямопропорционально числу банков памяти. На практике это не достижимо: существуютнакладные расходы, кроме того, программа может обращаться к памяти не последовательно,а к произвольным ячейкам, что легко сводит все преимущества расслоения на нет. Однако, вбольшинстве случаев деление на банки работает.)Принципы VLIW архитектуры.В ЭВМ с архитектурой VLIW (Very Long Instruction Word) - (очень длинные командныеслова), команды могут иметь широкий формат (длину) и команда может содержатьнесколько содержательных инструкций, выполнение которых детально регламентируется втерминах тактов работы АЛУ (параллельное выполнение нескольких команд в АЛУ).
Втаких архитектурах имеется возможность программировать вычислительные алгоритмы(включая векторные) с максимальной производительностью для данной аппаратуры. В нихвся работа по оптимальному программированию возлагается на системы программирования(или ручное программирование).Однако упрощения в архитектуре управления приводит к значительному возрастаниюсложности задачи планирования выдачи команд, так программными средствами должнабыть обеспечена точная синхронизация считывания и записи данных. При этом необходимотак планировать параллельное выполнение операций машины, чтобы выполнялисьопределенные ограничения на число одновременно считываний и записей в наборырегистров, использование ФУ и т.д.
Размер командного слова в машинах даннойархитектуры - FPS (AP-120B) - 64 бита, Multilow Tract - 1024.Определяющие свойства архитектуры VLIW:- Одно центральное управляющее устройство (УУ), обрабатывающее за один такт однудлинную команду.- Большое число функциональных устройств (ФУ) - АЛУ.- Наличия в длинной команде полей, каждое из которых содержит команду управлениянекоторым функциональным устройством или команду обращения к памяти.- Статически определенная длительность в тактах исполнения каждой операции.
Операциимогут быть конвейеризованы.- Закрепление во время компиляции банков расслоенной памяти за ФУ для получениямаксимальной ширины доступа для данных, которые можно соединить в одну команду.- Система передвижения данных между ФУ минуя память. Маршрут передвиженияполностью специфицируется во время компиляции.- Практическая невозможность ручного программирования в силу большой сложностивозникающих комбинаторных задач. То есть требуются специальные системыпрограммирования и оптимизации.
В отличие от суперскалярных процессоров, здесьтребуется статическая (на этапе компиляции) распараллеливание.Архитектура сверхдлинного командного слова (VLIW — Very Long Instruction Word) беретсвое начало от параллельного микрокода, применявшегося еще на заре вычислительнойтехники, и от суперкомпьютеров Control Data CDC6600 и IBM 360/91. В 1970 году многиевычислительные системы оснащались дополнительными векторными сигнальнымипроцессорами, использующими VLIW-подобные длинные инструкции, прошитые в ПЗУ.Эти процессоры применялись для выполнения быстрого преобразования Фурье и другихвычислительных алгоритмов.
Первыми настоящими VLIW-компьютерами стали минисуперкомпьютеры, выпущенные в начале 1980 года компаниями MultiFlow, Culler иCydrome, но они не имели коммерческого успеха. Планировщик вычислений и программная56конвейризация были предложены Фишером и Рау (Cydrome). Сегодня это является основойтехнологии VLIW-компилятора.Первый VLIW-компьютер компании MultiFlow 7/300 использовал два арифметикологических устройства для целых чисел, два АЛУ для чисел с плавающей точкой и блоклогического ветвления — все это было собрано на нескольких микросхемах. Его 256bitкомандное слово содержало восемь 32bit кодов операций. Модули для обработки целыхчисел могли выполнять две операции за один такт длиной 130ns (т.е.
всего четыре при двухАЛУ), что при обработке целых чисел обеспечивало быстродействие около 30 MIPS.Можно было также комбинировать аппаратные решения так, чтобы получать из или 256bit,или 1024bit вычислительные машины. Первый VLIW-компьютер Cydrome Cydra-5использовал 256bit инструкцию и специальный режим, обеспечивающий выполнениекоманд как последовательности из шести 40bit операций, поэтому его компиляторы моглигенерировать смесь параллельного кода и обычного последовательного. Существуетмнение, что в то время, как эти VLIW-ВМ использовали несколько микросхем, процессорIntel i860 стал первым VLIW-процессором на одной микросхеме. Однако, i860 можноотнести к VLIW достаточно условно — по сути у него есть всего лишь программноуправляемое спаривание инструкций, в отличие от более позднего программнонеуправляемого, ставшего частью суперскалярных процессоров.
В качестве историческойсправки также хотелось бы упомянуть компьютеры фирмы FPS (AP-120B, AP-190L и всеболее поздние под маркой FPS), также основанные на VLIW-архитектуре, которые были всвое время достаточно распространенными и успешными на рынке. Кроме этого,существовали такие «канонические» машины, как М10 и М13 Карцева, а также «Эльбрус-3»— при всем «неуспехе» последнего проекта, он все же явился этапом VLIW. Вообще,быстродействие VLIW-процессора в большей степени зависит от компилятора, нежели отаппаратуры, поскольку здесь эффект от оптимизации последовательности операцийпревышает результат, возникающий от повышения частоты.Относительно недавно мы были свидетелями «противостояния» CISC против RISC, атеперь уже намечается новое «сражение» — VLIW против RISC.
Строго говоря, VLIW исуперскалярный RISC — никак не антагонисты, ни в коей мере. Справедливости радинеобходимо отметить, что последние — это вовсе не «внешнеархитектурное» свойство, апросто некий способ исполнения. Возможно, что в дальнейшем появятся суперскалярныеVLIW-процессоры, которые тем самым приобретут, если так можно выразиться,«параллелизм в квадрате» — объединение явного статического параллелизма с неявнымдинамическим. Но на сегодняшнем этапе развития процессоров нет видимых способовсовмещать статическое и динамическое переупорядочивание. Именно поэтомуItanium/Itanium2 сейчас следует рассматривать не столько в контексте сравнения VLIW«против» CISC (и тем более не VLIW «против» O3E), а скорее как «синхронный VLIW» vs«асинхронный (Out-Of-Order) RISC».
Ну, и не стоит забывать, что альянс Intel-HPпридумали для своей архитектуры отдельное название — EPIC, т.е. явный параллелизм.Суперскалярные и мультитредовые архитектуры микропроцессоров.Суперскалярный процессор представляет собой нечто большее, чем обычныйпоследовательный (скалярный) процессор. В отличие от последнего, он может выполнятьнесколько операций за один такт.
Основными компонентами суперскалярного процессораявляются устройства для интерпретации команд (УУ), снабженные логикой, позволяющейопределить, являются ли команды независимыми, и достаточное число исполняющихустройств (ФУ, АЛУ). В исполняющих устройствах могут быть конвейеры.Суперскалярные процессоры реализуют параллелизм на уровне команд. Примеромкомпьютера с суперскалярным процессором является IBM RISC/6000. Тактовая частота57процессора у ЭВМ была 62.5 МГц, а быстродействие системы на вычислительных тестахдостигало 104 Mflop (Mflop - единица измерения быстродействия процессора - миллионопераций с плавающей точкой в секунду). Суперскалярный процессор не требуетспециальных векторизующих компиляторов, хотя компилятор должен в этом случаеучитывать особенности архитектуры.
Итак, суперскалярные процессор призван, в отличиеот VLIW, динамически определять места распараллеливания.Другой, по сравнению с организацией кэш-памяти, метод построения внутрикристальнойпамяти применяется в мультитредовой архитектуре, основная особенность которой –использование совокупности регистровых файлов (добавление УУ при одном АЛУ). Этаархитектура решает проблему разрыва между скоростью обработки в процессоре ивременем доступа в основную память за счет переключения в каждом такте процессора наработу с очередным регистровым файлом.
Каждый регистровый файл обслуживает одинвычислительный процесс – тред (поток). Всего в каждом процессоре имеется n регистровыхфайлов, поэтому запрос, выданный в основную память каждым из потоков, можетобслуживаться в течение n-1 такта, вплоть до момента, когда процессор сновапереключится на тот же регистровый файл.
Выбор значения n определяется отношениемвремени доступа в память ко времени выполнения команды процессором. Конечно, задачаформирования потоков из последовательной программы должна, по возможности, решатьсякомпилятором. В противном случае будущее этой архитектуры окажется ограниченнымузкой проблемной ориентацией.Концепция реализации параллелизма на уровне команд (Explicitly Parallel InstructionComputing) определяет новый тип архитектуры, способной конкурировать по масштабамвлияния с RISC.