Поскольку в наборе команд содержатся команды разной длины и различного формата в следующем блоке, декодере длины команд, производится первичный анализ последовательности бит, результатом которого являются отдельные команды. Этот блок может удерживать до 30 команд. В последовательности команд такой длины, как правило, встречается несколько условных переходов, не все из которых правильно прогнозируются, поэтому обработка такого большого количества команд особого смысла не имеет.
Блок выравнивания команд выполняет предварительную подготовку команд к декодированию.
Декодирование состоит в превращении каждой команды в одну или несколько микрокоманд. Простые команды, например, перемещение из одного регистра в другой, преобразуются в одну микрооперацию. Несколько особо сложных команд требуют более четырёх микроопераций и используют ПЗУ микрокода для упорядочения микроопераций. Блок декодирования команд тройной: две части предназначены для простых команд, а третий обрабатывает остальные команды. На выходе получается последовательность микрокоманд. Каждая микрокоманда содержит код микрооперации, два входных и один выходной регистр.
На следующей стадии формируется очередь микрокоманд и производится прогнозирование ветвления.
Архитектура P6 поддерживает подмену (распределение) регистров. Реальные регистры, заданные, в командах могут быть заменены в микрооперациях любым из 40 внутренних временных регистров.
Наконец, микрооперации заносятся в буфер команд со скоростью три микрооперации за цикл. Сюда же собираются операнды, если таковые имеются в наличии.
Данный блок устанавливает очерёдность и выполняет микрооперации, разрешает взаимозависимости и конфликты ресурсов. Хотя за один цикл декодируется только три команды, блок исполнения может принять за один цикл пять команд, по одной через каждый порт. Микрооперации могут выполняться не по порядку. Когда команда готова к выполнению и необходимый узел блока исполнения свободен, она может начать выполняться даже вне очереди. Если несколько микрокоманд пригодны к исполнению и должны выполняться одним и тем же узлом, выбирается важнейшая из них, и именно она запускается следующей. Например, выполнение переходов считается важнее арифметического действия, ибо переход влияет на работу всех узлов процессора.
Блок исполнения состоит из так называемой резервации и функциональных блоков.
Рис. 10.6. Блок исполнения
Когда микрокоманда выполнена, она возвращается обратно в резервацию, а оттуда — в буфер команд. Блок возврата отвечает за отправку результатов в нужные места. Данный блок содержит ряд внутренних регистров, в которых хранятся промежуточные результаты выполнения команд, которые не могут завершиться, ибо зависят от команд, выполнение которых ещё не закончилось.
11.1. Общие вопросы построения многопроцессорных систем
11.2. Системы типа ОКМД
11.2.1. Массивно-параллельные процессоры (array processors)
11.2.2. Векторные процессоры (vector processor)
11.3. Системы типа МКМД
11.3.1. Системы с общей памятью (мультипроцессоры)
11.3.2. Системы с раздельной памятью (мультикомпьютеры)
11.4. Доступ к памяти в многопроцессорных системах
Многопроцессорные системы с параллельной обработкой данных очень разнообразны. Однако все они имеют процессорные элементы и модули памяти. Разнообразие происходит от количества тех и других элементов, их типа и способа взаимодействия между элементами. В одних разработках имеется небольшое количество мощных элементов, в других — большое количество маломощных. Существуют промежуточные варианты.
Фактически, тип системы с параллельной обработкой данных определяется следующими тремя пунктами:
— типом, размером и количеством процессорных элементов;
— типом, размером и количеством модулей памяти;
— способом взаимодействия различных элементов.
Если, для начала, рассмотреть эти пункты по отдельности, то качественная картина будет следующая.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.