Э. Таненбаум - Архитектура компьютера (1127755), страница 152
Текст из файла (страница 152)
В состав одной Тг(Мео(а-команды может входить до пяти операций. В полностью оптимальных условиях за тактовый цикл запускается одна команда и выбирается пять операций. Номинальная тактовая частота процессора составляет 266 или 366 МГц, но так как за один цикл может выполняться до пяти операций, фактическое быстродействие в пять раз больше. При дальнейшем изложении мы будем исходить из характеристик реализации ТМЗ260 процессора.
Другие версии Тг1Мео1а имеют ряд малозначительных отличий. Стандартная ТНМебйа-команда изображена на рис. 8.3. По своему характеру команды варьируются от общераспространенных 8-, 16- и 32-разрядных целочисленных команд до команд с плавающей точкой стандарта 1ЕЕЕ 754 и команд параллельной обработки мультимедиа.
Исполнение пяти операций за цикл и наличие команд параллельной обработки мультимедийных данных позволяют процессору ТпМео1а программно декодировать потоковое цифровое видео, поступающее с видеокамеры, сохраняя исходные размер и частоту кадров. Слот 1 Слог 2 Слог 3 Слот 4 Операция е слоге 5 Команда Рис. 8.3. Стандартная гомеша-команда с пятью операциями В Тг(Мет)1а используется память с байтовой организацией, а регистры ввода-вывода отображаются на пространство памяти.
Полуслова (16 бит) и полные слова (32 бит) выравниваются по естественным границам. Порядок следования байтов может быть как прямым, так и обратным — в зависимости от бита слова состояния программы, выставляемого операционной системой. Этот бит определяет механизм передачи данных операций загрузки н сохранения между памятью и регистрами. В процессоре предусмотрена разделенная 8-входовая ассоциативная кэш-память с одинаковой длиной строки (64 байт) в кашах команд и данных. Емкость кэша команд составляет 64 Кбайт; емкость каша данных— 16 Кбайт.
Существует 128 универсальных 32-разрядных регистров. Значения регистров КО и К1 равны аппаратным нулю и единице, соответственно. Остальные 126 регистров функпионально эквивалентны и могут применяться для любых целей. Кроме того, предусмотрены четыре специализированных 32-разрядных регистра: 602 Глава 8. Параллельные компьютерные архитектуры Таблица 8.
1. Функциональные блоки ТМ3260 с указанием их количества, задержки и соответствия командным слотам № Ожи- 1 2 3 4 5 дание Блок Описание Операции с константами Операции с непосредственной адресацией Да Да Да Да Да 5 1 5 1 Да Да Да Да Да 32-разрядные арифметические и логические операции АЛУ целочисленных операций Сдвиги Многоразрядные сдвиги 2 ! Да Да Да Да Да Да Да Загрузка и сохранение Обращения к памяти 2 3 32-разрядные операции умножения целых чисел и чисел с плавающей точкой 2 3 Да Да Умножение целых чисел и чисел с плавающей точкой АЛУ операций с плавающей точкой Арифметические операции для чисел с плавающей точкой 2 3 Да Да Сравнение чисел с плавающей точкой 1 ! Операции сравнения чисел с плавающей точкой Да Извлечение квадратного корня и деления чисел с плавающей точкой Деление и извлечение квадратного корня для чисел с плавающей точкой счетчик команд, регистр слова состояния программы и два регистра, связанные с прерываниями.
Наконец, один 64-разрядный регистр подсчитывает число циклов процессора с момента последнего сброса. При тактовой частоте 800 МГц полный цикл счетчика составляет 2000 лет. В процессоре ТМЗ260 есть 11 функциональных блоков, предназначенных для выполнения арифметических, логических и управляющих операций (также есть блок управления кэшем, но его мы рассматривать не будем). Все они перечислены в табл. 8.1.
В первых двух столбцах приводятся имя блока и краткое описание выполняемых им функций. В третьем столбпе указывается число аппаратных копий блока. Четвертый столбеп содержит значение ожидания (точнее, число циклов) до завершения операции. В этом контексте нелишне отметить, что все функциональные блоки, за исключением блока извлечения квадратного корня и деления чисел с плавающей точкой, конвейеризированы.
Хотя ожидание говорит о том, сколько нужно ждать до завершения операции, не следует забывать, что в каждом новом цикле можно начинать новые операции. Так, в каждой из трех последовательных команд может содержаться по две операции загрузки, а значит, одновременно на разных этапах исполнения может находиться шесть операций загрузки. Внутрипроцессорный параллелизм 603 № Омси- 1 2 3 4 Б дание Описание Блок Управление потоком 3 3 Да Да Да Да Да Да Ветвления 2 3 АЛУ цифровой обработки сигналов Арифметические операции с мульти- медийными данными (по два 16-разрядных или по четыре 8-разрядных слова) Умножение мультимедийных данных (по два 16-разрядных или по четыре 8-разрядных слова) 2 3 Да Да Умножитель для цифровой обработки сигналов Наконец, в последних шести столбцах определяется соответствие команд функциональным блокам.
К примеру, операции сравнения чисел с плавающей точкой могут проводиться только в третьем командном слоте. Функциональный блок операций с константами применяется при выполнении операций с непосредственной адресацией, например, при загрузке числа из поля операции в регистр. АЛУ лля исполнения целочисленных операций осуществляет сложение, вычитание, стандартные логические операции, а также операции упаковки и распаковки. Блок операций сдвига может выполнять сдвиги регистра на указанное число битов в обоих направлениях. Блок загрузки и сохранения считывает слова из памяти в регистры и записывает их обратно. По большому счету, ТггМег((а — это К1ЯС-процессор с расширенной функциональностью, поэтому обычные операции выполняются с регистрами, а обращения к памяти осуществляются при помощи функционального блока загрузки и сохранения.
Передавать можно по 8, 16 или 32 бит. При исполнении арифметических и логических команд обращение к памяти не осуществляется. Блок умножения выполняет операции как с целыми числами, так н с числами с плавающей точкой. Следующие три блока ответственны за сложение и вычитание чисел с плавающей точкой, сравнение, извлечение квадратных корней и деление. Операции перехола выполняются функциональным блоком ветвлений. За переходом следует фиксированная задержка величиной в 3 цикла, за время которых всегда выполняются 3 команды (то есть ло 15 операций). Так происходит даже при безусловных переходах.
Наконец, мы дошли ло двух блоков, предназначенных лля выполнения специальных мультимедийных операций. Фактически, мультимедийные операции выполняет обработчик цифровых сигналов (Е)18(га( Яяпа( Ргосеззог, РЯР). Следует сразу заметить, что, в отличие от целочисленных операций, основывающихся на арифметике с дополнением до двух, в мультимедийных операциях используется арифметика с насыщением (загцгасег( айгЬшег(с). Если результат операции нельзя выразить из-за переполнения, вместо вызова исключения или возвращения в качестве результата «мусора» подставляется ближайшее корректное число. 604 Глава 8.
Параллельные компьютерные архитектуры К примеру, применительно к 8-разрядным числам без знака в результате сложения 130 и 130 может получиться 255. Так как некоторые операции и командные слоты несовместимы, зачастую в команду включается меньше пяти операций. Если тот или иной слот не используется, для минимизации потребляемого пространства он подлежит сжатию. Присутствующие в команде операции могут занимать 26, 34 или 42 бита. В зависимости от числа фактически содержащихся в Тг1Мео)а-команде операций, ее размер составляет от 2 до 28 байт (включая служебные данные фиксированного размера). Проверка входящих в Тг1Мейа-команду операций на совместимость в период исполнения не проводится. Поэтому операции выполняются даже в случае их несовместимости, что порождает неверный результат. Решение отказаться от проверок было принято разработчиками для экономии времени и транзисторов.
В процессорах Репт1шп проверка совместимости суперскалярных операций проводится, однако в результате усложняется решение, растут временные затраты и увеличивается число применяемых транзисторов. В Тг(Мео1а задача планирования передается компилятору, который без лишних временных ограничений может оптимизировать размещение операций в словах команд. Однако если для выполнения операции требуется недоступный функциональный блок, вся команда вынуждена ждать вплоть до того момента, как он вновь станет доступным.
Как и в 1гашшп 2, в Тг1Мег)1а операции прогнозируются. Каясдая операция (за двумя незначительными исключениями) задает регистр, подлежащий проверке перед выполнением этой операции. Если младший бит этого регистра установлен, операция выполняется; в противном случае она пропускается. Каждая из пяти (или менее) операций прогнозируется индивидуально. Вот пример спрогнозированной операции; 1Е 88 1А00 84, 88 -> 88 Здесь тестируется регистр К2, и если значение его младшего бита равно единице, содержимое регистров К4 и К5 складывается и сохраняется в К8. Операцию можно сделать безусловной, если в качестве предикатного регистра использовать К1 (его значение всегда равно 1). Регистр КО (аппаратный ноль) делает операцию пустой. Мультимедийные операции в Тг)Мейа подразделяются на 15 групп, перечисленных в табл. 8.2.
Во многих из этих операций применяется отсечение — методика, в которой операнд «загоняется» в определенный диапазон, исходя из минимальных или максимальных значений операндов вне этого диапазона. Отсечение осуществимо в отношении 8п 16- и 32-разрядных операндов. К примеру, в результате отсечения значений от 40 до 340 по диапазону от 0 до 255 остаются значения от 40 до 255. Операции отсечения проводятся в группе отсечения. Следующие пять групп в табл. 8.2 объединяют операции с операндами различных размеров, предусматривающие отсечение результатов по определенному диапазону. Операции группы получения минимума и максимума анализируют два регистра и находят для каждого байта минимальное и максимальное значения. Аналогичным образом, в группе сравнения два регистра рассматриваются как четыре пары байтов, каждая из которых подлежит сравнению с остальными.
Внутрипроцессорный параллелизм 505 Таблица 8.2. Основные группы специализированных операций в ТпМег((а Группа Описание Отсечение 4 байт или 2 полуслов Отсечение Получение абсолютного значения (08Р) Получение абсолютного значения, получение знака, отсечение Сложение значений с учетом знака и отсечением Вычитание значений с учетом знака и отсечением Сложение (08Р) Вычитание (08Р) Умножение (08Р) Перемножение значений с учетом знака и отсечением Получение минимальной или максимальной из четырех пар байтов Получение минимума и максимума Побайтовое сравнение двух регистров Сдвиг пары ! 6-разрядных операндов Сравнение Сдвиг Сумма произведений Суммирование с учетом знака 8- или 16-разрядных произведений Манипулирование байтами и полусловами Слияние, упаковка, перестановка Побайтовое квадратичное усреднение Побайтовое квадратичное усреднение без учета знака Побайтовое усреднение Побайтовое усреднение из четырех элементов без учета знака Побайтовое умножение Оценка движения Умножение 8-разрядных значений без учета знака Суммирование без учета знака абсолютных значений 8-разрядных разностей со знаком Разное Другие арифметические операции Мультимедийные операции довольно редко выполняются с 32-разрядными целыми числами.