Jump to content

Исполнение вне очереди

В компьютерной инженерии выполнение вне очереди (или, более формально, динамическое выполнение ) — это парадигма, используемая в высокопроизводительных центральных процессорах для использования командных циклов , которые в противном случае были бы потрачены впустую. В этой парадигме процессор выполняет инструкции в порядке, определяемом доступностью входных данных и исполнительных блоков. [1] а не в их первоначальном порядке в программе. [2] [3] При этом процессор может избежать простоя во время ожидания завершения предыдущей инструкции и тем временем может обрабатывать следующие инструкции, которые могут выполняться немедленно и независимо. [4]

История [ править ]

Выполнение вне порядка — это ограниченная форма архитектуры потоков данных , которая была основной областью исследований в области компьютерной архитектуры в 1970-х и начале 1980-х годов.

в суперкомпьютерах использование Раннее

Первой машиной, использовавшей выполнение вне очереди, была CDC 6600 (1964), разработанная Джеймсом Э. Торнтоном , которая использовала табло для предотвращения конфликтов. Он разрешает выполнение инструкции, если ее исходные операнды (регистры чтения) не должны быть записаны какой-либо невыполненной ранее командой (истинная зависимость), а регистр назначения (записи) не является регистром, используемым какой-либо невыполненной ранее командой (ложная зависимость). ). В 6600 отсутствуют средства, позволяющие избежать остановки исполнительного устройства из-за ложных зависимостей ( конфликты записи после записи (WAW) и записи после чтения (WAR), назвал соответственно конфликтами первого порядка и конфликтами третьего порядка которые Торнтон , который назвал истинными зависимостями ( чтение) после записи (RAW)) как конфликт второго порядка), поскольку каждый адрес имеет только одно местоположение, на которое он ссылается. WAW хуже, чем WAR для 6600, потому что когда исполнительный блок сталкивается с WAR, другие исполнительные блоки все равно получают и выполняют инструкции, но при WAW назначение инструкций исполнительным блокам прекращается, и они не могут получать дальнейшие инструкции. до тех пор, пока регистр назначения инструкции, вызывающей WAW, не будет записан предыдущей инструкцией. [5]

Примерно два года спустя в IBM System/360 Model 91 (1966) было представлено переименование регистров с помощью алгоритма Томасуло . [6] который устраняет ложные зависимости (WAW и WAR), делая возможным полное выполнение вне очереди. Инструкция, адресующая запись в регистр r n, может быть выполнена до того, как будет выполнена более ранняя инструкция, использующая регистр r n , путем фактической записи в альтернативный (переименованный) регистр alt-r n , который превращается в обычный регистр r n. только когда все предыдущие инструкции, адресованные r n, были выполнены, но до этого момента r n дается для более ранних инструкций и alt-r n для более поздних, адресованных r n .

В модели 91 переименование регистров реализовано с помощью обхода, называемого общей шиной данных (CDB), и буферов операндов источника памяти, в результате чего физические архитектурные регистры остаются неиспользованными в течение многих циклов, поскольку самое старое состояние регистров, к которым обращается любая невыполненная инструкция, находится в CDB. . Еще одним преимуществом модели 91 перед 6600 является возможность выполнять инструкции вне очереди в одном исполнительном блоке , а не только между блоками, как в 6600. Это достигается с помощью станций резервирования , с которых инструкции передаются в исполнительный блок. когда все готово, в отличие от очереди FIFO каждого исполнительного устройства 6600. Модель 91 также способна переупорядочивать загрузки и сохранения для выполнения перед предыдущими загрузками и сохранениями. [7] в отличие от 6600, который имеет лишь ограниченную способность перемещать грузы за пределы загрузок и сохраняет за прошлыми загрузками, но не загружает за пределы загрузок и не сохраняет за загрузками. [8] Переименовываются только регистры с плавающей запятой модели 91, что делает ее объектом тех же ограничений WAW и WAR, что и CDC 6600, при выполнении вычислений с фиксированной запятой. И 91, и 6600 также страдают от неточных исключений , которые необходимо было устранить, прежде чем выполнение вне очереди можно было бы применять в целом и сделать практичным за пределами суперкомпьютеров.

Точные исключения [ править ]

Чтобы иметь точные исключения , после исключения должно быть доступно правильное состояние выполнения программы. К 1985 году были разработаны различные подходы, описанные Джеймсом Э. Смитом и Эндрю Р. Плешкуном. [9] CDC Cyber ​​205 был предшественником, поскольку при прерывании виртуальной памяти все состояние процессора (включая информацию о частично выполненных инструкциях) сохраняется в невидимом пакете обмена , чтобы он мог возобновиться в том же состоянии выполнения. [10] Однако, чтобы сделать все исключения точными, должен быть способ отменить действие инструкций. CDC Cyber ​​990 (1984) реализует точные прерывания с использованием буфера истории, в котором хранятся старые (перезаписанные) значения регистров, которые восстанавливаются, когда исключение требует отмены инструкций. [9] Путем моделирования Смит определил, что добавление буфера переупорядочения (или буфера истории или его эквивалента) в Cray-1S снизит производительность выполнения первых 14 циклов Ливермора (невекторизованных) всего на 3%. [9] Важные академические исследования по этой теме провел Йель Пэтт с помощью своего симулятора HPSm . [11]

В 1980-х годах многие ранние RISC -микропроцессоры, такие как Motorola 88100 , имели неправильную обратную запись в регистры, что приводило к неточным исключениям. Инструкции начали выполнение по порядку, но некоторым (например, с плавающей запятой) для завершения выполнения потребовалось больше циклов. Однако выполнение самых основных инструкций за один такт значительно уменьшило масштаб проблемы по сравнению с CDC 6600.

Развязка [ править ]

Смит также исследовал, как заставить различные исполнительные блоки работать более независимо друг от друга, а также от памяти, внешнего интерфейса и ветвления. [12] Он реализовал эти идеи в Astronautics ZS-1 (1988), в котором конвейер целых чисел/загрузки/сохранения отделен от конвейера с плавающей запятой, что позволяет переупорядочивать данные между конвейерами. ЗС-1 также был способен выполнять нагрузки раньше предыдущих магазинов. В своей статье 1984 года он высказал мнение, что принудительного применения точных исключений только в конвейере целых чисел/памяти должно быть достаточно для многих случаев использования, поскольку это позволяет даже использовать виртуальную память . Каждый конвейер имел буфер инструкций, который отделял его от декодера команд и предотвращал остановку внешнего интерфейса. Чтобы еще больше отделить доступ к памяти от выполнения, каждый из двух конвейеров был связан с двумя адресуемыми очередями , которые эффективно выполняли ограниченное переименование регистров. [7] Похожая развязанная архитектура чуть ранее использовалась в Culler 7. [13] ISA ZS-1, как и последующий POWER от IBM, способствовал раннему выполнению ветвей.

свои плоды приносит Исследование

С POWER1 (1990) IBM вернулась к внеочередному исполнению. Это был первый процессор, сочетавший переименование регистров (хотя опять же только регистров с плавающей запятой) с точными исключениями. Он использует файл физических регистров (т. е. динамически переназначаемый файл с незафиксированными и зафиксированными значениями) вместо буфера переупорядочения, но возможность отмены инструкций необходима только в модуле ветвления, который реализует буфер истории (называемый стеком программных счетчиков ). IBM), чтобы отменить изменения в регистрах счета, связи и состояния. Возможность изменения порядка даже инструкций с плавающей запятой по-прежнему очень ограничена; из-за неспособности POWER1 переупорядочивать инструкции арифметических операций с плавающей запятой (результаты стали доступны в определенном порядке), их регистры назначения не переименовываются. POWER1 также не имеет станций резервирования, необходимых для внеочередного использования одного и того же исполнительного устройства. [14] [15] В следующем году в IBM ES/9000 модели 900 было добавлено переименование регистров общего назначения. Он также имеет станции резервирования с шестью записями для двойного целочисленного блока (в каждом цикле из шести инструкций можно выбрать и затем выполнить до двух) и шестью записями для FPU. Другие устройства имеют простые очереди FIFO. Расстояние переупорядочения — до 32 инструкций. [16] A19 также Unisys мэйнфреймов A-серии был выпущен в 1991 году и, как утверждалось, имел нестандартное исполнение, а один аналитик назвал технологию A19 опережающей конкурентов на три-пять лет. [17] [18]

Широкое распространение [ править ]

Первые суперскалярные однокристальные процессоры ( Intel i960CA в 1989 году) использовали простое табло планирования, как это было в CDC 6600 четверть века назад. В 1992–1996 годах быстрое развитие технологий, ставшее возможным благодаря увеличению количества транзисторов , привело к их распространению вплоть до персональных компьютеров. Motorola 88110 (1992) использовал буфер истории для возврата инструкций. [19] Загрузки могут выполняться раньше предыдущих сохранений. Пока хранилища и филиалы ожидали начала выполнения, последующие инструкции других типов могли продолжать проходить через все этапы конвейера, включая обратную запись. Емкость буфера истории на 12 записей налагала ограничение на расстояние повторного заказа. [20] [21] [22] PowerPC 601 (1993) представлял собой развитие однокристальной системы RISC , которая сама по себе является упрощением POWER1. 601 позволял инструкциям ветвления и операциям с плавающей запятой обгонять целочисленные инструкции, уже находящиеся в выбранной очереди инструкций, четыре младшие записи которой сканировались на предмет возможности диспетчеризации. В случае промаха в кэше порядок загрузки и сохранения может быть переупорядочен. Переименовать можно было только регистры связи и счетчика. [28] Осенью 1994 года NexGen и IBM совместно с Motorola переименовали регистры общего назначения в однокристальные процессоры. Nx586 компании NexGen был первым процессором x86, способным выполнять внеочередное выполнение и иметь расстояние переупорядочения до 14 микроопераций . [29] PowerPC 603 переименовал регистры общего назначения и регистры FP. Каждый из четырех исполнительных блоков без ветвей может иметь перед собой одну ожидающую команду, не блокируя поток команд к другим блокам. с пятью записями Буфер переупорядочения позволяет не более чем четырем инструкциям обогнать невыполненную инструкцию. Благодаря буферу хранилища загрузка может получить доступ к кешу раньше предыдущего хранилища. [30] [31]

PowerPC 604 (1995) был первым однокристальным процессором с переупорядочением на уровне исполнительных блоков , поскольку каждый из трех из шести его блоков имел станцию ​​резервирования с двумя входами, позволяющую новой записи выполняться раньше старой. Емкость буфера переупорядочения составляет 16 инструкций. Очередь загрузки с четырьмя записями и очередь сохранения с шестью записями отслеживают переупорядочение загрузок и сохранений при промахах в кэше. [32] HAL SPARC64 (1995) превысил возможности повторного заказа модели ES/9000 900, имея три станции резервирования с 8 входами для целых чисел, чисел с плавающей запятой и блока генерации адресов , а также станцию ​​резервирования с 12 входами для загрузки/сохранения, что позволяет большее переупорядочение доступа к кешу/памяти, чем у предыдущих процессоров. Одновременно в переупорядоченном состоянии могут находиться до 64 инструкций. [33] [34] Pentium Pro (1995) представил унифицированную станцию ​​резервирования , которая при емкости 20 микроопер позволяла очень гибкое переупорядочение, поддерживаемое буфером переупорядочения на 40 записей. Загрузки можно переупорядочить как перед загрузками, так и перед складами. [35]

Практически достижимая скорость выполнения за такт еще больше выросла, поскольку полное выполнение вне очереди было далее принято SGI / MIPS ( R10000 ) и HP PA-RISC ( PA-8000 ) в 1996 году. В том же году Cyrix 6x86 и AMD K5 привнесла передовые методы переупорядочения в обычные персональные компьютеры . С тех пор, как в 1998 году DEC Alpha получила возможность выполнения внеочередного выполнения ( Alpha 21264 ), наиболее производительные процессорные ядра с нарушением порядка не имели аналогов среди ядер с нарушением порядка, кроме HP / Intel Itanium 2 и IBM POWER6 , хотя последние имел неисправный блок операций с плавающей запятой . [36] Другие высокопроизводительные процессоры с упорядоченным выполнением сильно отстали, а именно Sun UltraSPARC III / IV IBM и мэйнфреймы , которые во второй раз потеряли возможность выполнения внеочередного выполнения, оставаясь в нормальном порядке до поколения z10 . Позже большие процессоры с упорядоченным выполнением были ориентированы на многопоточную производительность, но в конечном итоге серия SPARC T и Xeon Phi перешли на выполнение вне порядка в 2011 и 2016 годах соответственно.

Почти все процессоры для телефонов и других приложений более низкого уровня оставались в порядке до c. 2010. Во-первых, Qualcomm Scorpion ( дистанция дозаказа 32) поставляется в Snapdragon . [37] а чуть позже на Arm A8 A9 пришел смену . Для бюджетных x86 персональных компьютеров правильные ранние процессоры Intel Atom бросили вызов AMD Bobcat Silvermont , а в 2013 году на смену им пришел вышедший из строя сначала . [38] Поскольку сложность внеочередного выполнения не позволяет достичь наименьшего минимального энергопотребления, стоимости и размера, упорядоченное исполнение по-прежнему распространено в микроконтроллерах и встроенных системах , а также в ядрах телефонного класса, таких как Arm A55 и A510 в Конфигурации big.LITTLE .

Основная концепция [ править ]

Чтобы оценить исполнение вне порядка, полезно сначала описать порядок выполнения, чтобы иметь возможность сравнить их. Инструкции не могут быть выполнены мгновенно: они требуют времени (несколько циклов). Поэтому результаты будут отставать там, где они необходимы. В порядке все равно приходится отслеживать зависимости. Однако его подход довольно прост: каждый раз останавливаться. В режиме «вне порядка» используются гораздо более сложные методы отслеживания данных, как показано ниже.

Процессоры в порядке [ править ]

В более ранних процессорах обработка инструкций выполняется в цикле команд, обычно состоящем из следующих шагов:

  1. Инструкция получения .
  2. Если входные операнды доступны (например, в регистрах процессора), инструкция отправляется соответствующему функциональному блоку . Если один или несколько операндов недоступны в течение текущего тактового цикла (обычно потому, что они извлекаются из памяти ), процессор останавливается до тех пор, пока они не станут доступны.
  3. Команда выполняется соответствующим функциональным блоком.
  4. Функциональный блок записывает результаты обратно в файл регистров .

Часто в процессоре упорядоченного порядка имеется запись битового вектора , в регистры которого будет записываться конвейер. [39] Если для каких-либо входных операндов в этом векторе установлен соответствующий бит, выполнение команды останавливается. По сути, вектор выполняет значительно упрощенную роль защиты от опасностей, связанных с регистрами. Таким образом, при выполнении вне порядка используются двумерные матрицы, тогда как при выполнении по порядку используется одномерный вектор для предотвращения опасностей.

Неисправные процессоры [ править ]

Эта новая парадигма разбивает обработку инструкций на следующие этапы:

  1. Получение инструкций.
  2. Расшифровка инструкций.
  3. Переименование инструкции.
  4. Отправка инструкций в очередь инструкций (также называемую буфером инструкций или станциями резервирования ).
  5. Инструкция ожидает в очереди, пока не станут доступны ее входные операнды. Инструкция может покинуть очередь раньше старых инструкций.
  6. Команда выдается соответствующему функциональному блоку и выполняется этим блоком.
  7. Результаты ставятся в очередь.
  8. Только после того, как результаты всех старых инструкций будут записаны обратно в файл регистров, этот результат записывается обратно в файл регистров. Это называется этапом окончания или выхода на пенсию.

Ключевая концепция обработки OoOE заключается в том, чтобы позволить процессору избежать зависаний, которые возникают, когда данные, необходимые для выполнения операции, недоступны. В приведенной выше схеме процессор OoOE избегает остановки, которая возникает на этапе (2) процессора упорядоченного выполнения, когда инструкция не полностью готова к обработке из-за отсутствия данных.

Процессоры OoOE заполняют эти слоты вовремя другими готовыми инструкциями , а затем меняют порядок результатов в конце, чтобы создать впечатление, что инструкции были обработаны как обычно. То, как инструкции упорядочены в исходном компьютерном коде, известно как порядок программы , в процессоре они обрабатываются в порядке данных , порядке, в котором данные, операнды, становятся доступными в регистрах процессора. Для преобразования одного порядка в другой и поддержания логического порядка вывода необходима довольно сложная схема; сам процессор выполняет инструкции в случайном порядке.

Преимущество обработки OoOE возрастает по мере углубления конвейера команд и увеличения разницы в скорости между основной памятью (или кэш-памятью ) и процессором. На современных машинах процессор работает во много раз быстрее, чем память, поэтому за время ожидания поступления данных исправный процессор мог бы обработать большое количество инструкций.

Разделение отправки и проблем позволяет решить проблемы, выходящие за рамки порядка [ править ]

Одним из отличий, созданных новой парадигмой, является создание очередей, которые позволяют отделить этап отправки от этапа выдачи, а этап выпуска — от этапа выполнения. Ранним названием парадигмы была «отдельная архитектура» . В более ранних процессорах с упорядоченным выполнением эти этапы работали довольно синхронно и конвейерно.

Инструкции программы не могут выполняться в первоначально указанном порядке, пока конечный результат верен. Он отделяет этапы выборки и декодирования от этапа выполнения в конвейерном процессоре с помощью буфера .

Целью буфера является разделение доступа к памяти и выполнения функций в компьютерной программе и достижение высокой производительности за счет использования мелкозернистого параллелизма между ними. [40] При этом он эффективно скрывает все задержки памяти с точки зрения процессора.

Теоретически больший буфер может увеличить пропускную способность. Однако если процессор имеет неправильное предсказание перехода , возможно, придется очистить весь буфер, что приведет к потере большого количества тактовых циклов и снижению эффективности. Более того, буферы большего размера выделяют больше тепла и занимают больше места на кристалле . По этой причине сегодня разработчики процессоров отдают предпочтение многопоточному подходу к проектированию.

Разделенные архитектуры обычно считаются бесполезными для вычислений общего назначения, поскольку они плохо обрабатывают код с интенсивным управлением. [41] Код с интенсивным управлением включает в себя такие вещи, как вложенные ветки, которые часто встречаются в операционных систем ядрах . Разделенные архитектуры играют важную роль в планировании архитектур с очень длинными командами (VLIW). [42]

Чтобы избежать ложных зависимостей операндов, которые могли бы уменьшить частоту выдачи инструкций не по порядку, метод, называемый переименованием регистров используется . В этой схеме физических регистров больше, чем определено архитектурой. Физические регистры помечены таким образом, что одновременно может существовать несколько версий одного и того же архитектурного регистра.

записи позволяет перезапустить программу выполнения и обратной Разделение

Очередь результатов необходима для решения таких проблем, как неправильные прогнозы ветвей и исключения/ловушки. Очередь результатов позволяет перезапускать программы после исключения, что требует выполнения инструкций в программном порядке. Очередь позволяет отбрасывать результаты из-за неверных прогнозов в старых инструкциях ветвления и исключений, возникающих в старых инструкциях.

Возможность выдавать инструкции мимо ветвей, которые еще не решены, известна как спекулятивное выполнение .

Выбор микроархитектуры [ править ]

  • Инструкции отправляются в централизованную очередь или в несколько распределенных очередей?
Процессоры IBM PowerPC используют очереди, которые распределены между различными функциональными блоками, тогда как другие процессоры с нарушением порядка используют централизованную очередь. IBM использует термин «станции резервирования» для обозначения своих распределенных очередей.
  • Существует ли реальная очередь результатов или результаты записываются непосредственно в файл регистра? В последнем случае функция организации очереди обрабатывается картами регистров, которые содержат информацию о переименовании регистров для каждой выполняющейся инструкции.
Ранние процессоры Intel с нарушением порядка используют очередь результатов, называемую буфером переупорядочения , тогда как большинство более поздних процессоров с нарушением порядка используют карты регистров.
Точнее: микропроцессоры семейства Intel P6 имеют как буфер переупорядочения (ROB), так и таблицу псевдонимов регистров (RAT). ROB был мотивирован главным образом восстановлением неверного прогноза ветвей.
Семейство Intel P6 является одним из первых микропроцессоров OoOE, но было вытеснено архитектурой NetBurst . Спустя годы NetBurst оказался тупиком из-за своего длинного конвейера, предполагавшего возможность гораздо более высоких рабочих частот. Материалы не смогли соответствовать амбициозным целевым показателям конструкции из-за проблем с температурой, и более поздние разработки на основе NetBurst, а именно Tejas и Jayhawk, были отменены. Intel вернулась к дизайну P6 в качестве основы микроархитектур Core и Nehalem . Последующие микроархитектуры Sandy Bridge , Ivy Bridge и Haswell представляют собой отход от методов переупорядочения, используемых в P6, и используют методы переупорядочения из EV6 и P4 , но с несколько более коротким конвейером. [43] [44]

См. также [ править ]

Ссылки [ править ]

  1. ^ Кукунас, Джим (2015). Мощность и производительность: анализ и оптимизация программного обеспечения . Морган Кауфман. п. 37. ИСБН  9780128008140 .
  2. ^ «Внеочередное исполнение» (PDF) . cs.washington.edu. 2006 год . Проверено 17 января 2014 г. не ждать выполнения предыдущих инструкций, если эта инструкция от них не зависит
  3. ^ «Празднование столетия» . Регисская средняя школа . 14 марта 2011 г. Проверено 25 июня 2022 г. Алгоритм «позволяет выполнять непоследовательное выполнение последовательных инструкций, которые обычно останавливаются из-за определенных зависимостей» (также известное как выполнение вне порядка).
  4. ^ «Внеочередное исполнение» . pcguide.com . Проверено 17 января 2014 г. Такая гибкость повышает производительность, поскольку позволяет выполнять выполнение с меньшим временем ожидания.
  5. ^ Торнтон (1970 , стр. 125-127)
  6. ^ Томасуло, Роберт Марко (1967), «Эффективный алгоритм использования нескольких арифметических единиц» (PDF) , IBM Journal of Research and Development , 11 (1): 25–33, CiteSeerX   10.1.1.639.7540 , doi : 10.1147/rd .111.0025 , S2CID   8445049 , заархивировано из оригинала (PDF) 12 июня 2018 г.
  7. Перейти обратно: Перейти обратно: а б Смит, Джеймс Э. (июль 1989 г.). «Динамическое планирование инструкций и космонавтика ZS-1» (PDF) . Компьютер . 22 (7): 21–35. дои : 10.1109/2.30730 . S2CID   329170 .
  8. ^ Торнтон (1970 , стр. 48-50)
  9. Перейти обратно: Перейти обратно: а б с Смит, Джеймс Э .; Плешкун, Эндрю Р. (июнь 1985 г.). «Реализация точных прерываний в конвейерных процессорах» . 12-я ИСКА .
    (Расширенная версия опубликована в мае 1988 года под названием «Реализация точных прерываний в конвейерных процессорах ».)
  10. ^ Маудгилл, майя; Василиадис, Стаматис (январь 1996 г.). «О точных прерываниях» . п. 18. CiteSeerX   10.1.1.33.3304 . Архивировано из оригинала (pdf) 13 октября 2022 года.
  11. ^ Хву, В.; Патт, Йель Н. (1986). HPSm — высокопроизводительная архитектура с ограниченным потоком данных и минимальной функциональностью . АКМ . стр. 297–306. ISBN  978-0-8186-0719-6 . Проверено 6 декабря 2013 г. {{cite book}}: |work= игнорируется ( помогите )
  12. ^ Смит, Джеймс Э. (ноябрь 1984 г.). «Компьютерные архитектуры с раздельным доступом и выполнением» (PDF) . Транзакции ACM в компьютерных системах . 2 (4): 289–308. дои : 10.1145/357401.357403 . S2CID   13903321 .
  13. ^ Смотерман, Марк. «Каллер-7» . Клемсонский университет .
  14. ^ Грохоски, Грегори Ф. (январь 1990 г.). «Машинная организация процессора IBM RISC System/6000» (PDF) . Журнал исследований и разработок IBM . 34 (1): 37–58. дои : 10.1147/rd.341.0037 . Архивировано из оригинала (PDF) 9 января 2005 г.
  15. ^ Смит, Джеймс Э .; Сохи, Гуриндар С. (декабрь 1995 г.). «Микроархитектура суперскалярных процессоров» (PDF) . Труды IEEE . 83 (12): 1617. дои : 10.1109/5.476078 .
  16. ^ Липтэй, Джон С. (июль 1992 г.). «Проектирование высокопроизводительного процессора IBM Enterprise System/9000» (PDF) . Журнал исследований и разработок IBM . 36 (4): 713–731. дои : 10.1147/rd.364.0713 . Архивировано из оригинала (PDF) 17 января 2005 г.
  17. ^ Зиглер, Барт (7 марта 1991 г.). «Unisys представляет мэйнфреймы Top Gun» . АП Новости .
  18. ^ «Новый мейнфрейм Unisys оставляет большие проблемы в пыли» . Блумберг . 25 марта 1991 года. Новый A19 использует «суперскалярные» методы научных компьютеров для одновременного выполнения множества инструкций. A19 может выполнять до 140 операций, что более чем в 10 раз больше, чем у обычных мейнфреймов.
  19. ^ Улла, Наср; Холле, Мэтт (март 1993 г.). «Реализация точных исключений MC88110 в суперскалярной архитектуре» (pdf) . Новости компьютерной архитектуры ACM Sigarch . 21 . Motorola Inc.: 15–25. дои : 10.1145/152479.152482 . S2CID   7036627 .
  20. ^ Смозерман, Марк (29 апреля 1994 г.). «Обзор Motorola MC88110» .
  21. ^ Дифендорф, Кейт ; Аллен, Майкл (апрель 1992 г.). «Организация суперскалярного RISC-микропроцессора Motorola 88110» (PDF) . IEEE микро . 12 (2): 40–63. дои : 10.1109/40.127582 . S2CID   25668727 . Архивировано из оригинала (PDF) 21 октября 2022 г.
  22. ^ Смотерман, Марк; Чавла, Шучи; Кокс, Стэн; Маллой, Брайан (декабрь 1993 г.). «Планирование инструкций для Motorola 88110» . Материалы 26-го ежегодного международного симпозиума по микроархитектуре . стр. 257–262. дои : 10.1109/MICRO.1993.282761 . ISBN  0-8186-5280-2 . S2CID   52806289 .
  23. ^ «Техническое описание микропроцессора PowerPC™ 601 RISC» (PDF) . Проверено 23 октября 2022 г.
  24. ^ Мур, Чарльз Р .; Беккер, Майкл С. и др. «Микропроцессор PowerPC 601» . IEEE микро . 13 (5). Сентябрь 1993 года.
  25. ^ Дифендорф, Кейт (август 1993 г.). «Микропроцессор PowerPC 601» (PDF) . Горячие чипсы .
  26. ^ Смит, Джеймс Э .; Вайс, Шломо (июнь 1994 г.). «PowerPC 601 и Alpha 21064: история двух RISC» (PDF) . IEEE-компьютер . 27 (6): 46–58. дои : 10.1109/2.294853 . S2CID   1114841 .
  27. ^ Сима, Дежё (сентябрь – октябрь 2000 г.). «Пространство проектирования методов переименования регистров» . IEEE микро . 20 (5): 70–83. CiteSeerX   10.1.1.387.6460 . дои : 10.1109/40.877952 . S2CID   11012472 .
  28. ^ [23] [24] [25] [26] [27]
  29. ^ Гвеннап, Линли (28 марта 1994 г.). «NexGen выходит на рынок с 66-МГц Nx586» (PDF) . Отчет микропроцессора . Архивировано из оригинала (PDF) 2 декабря 2021 года.
  30. ^ Берджесс, Брэд; Улла, Наср; Ван Оверен, Питер; Огден, Дин (июнь 1994 г.). «Микропроцессор PowerPC 603» . Коммуникации АКМ . 37 (6): 34–42. дои : 10.1145/175208.175212 . S2CID   34385975 .
  31. ^ «Техническое описание микропроцессора PowerPC™ 603 RISC» (PDF) . Проверено 27 октября 2022 г.
  32. ^ Песня, С. Питер; Денман, Марвин; Чанг, Джо (октябрь 1994 г.). «Микропроцессор PowerPC 604 RISC» (PDF) . IEEE микро . 14 (5): 8. дои : 10.1109/MM.1994.363071 . S2CID   11603864 .
  33. ^ «SPARC64+: 64-битный процессор SPARC HAL второго поколения» (PDF) . Горячие чипсы .
  34. ^ «Ле Спарк64» . Научно-исследовательский институт компьютерных наук и случайных систем (на французском языке).
  35. ^ Гвеннап, Линли (16 февраля 1995 г.). «Intel P6 использует несвязанную суперскалярную конструкцию» (PDF) . Отчет микропроцессора .
  36. ^ Ле, Хунг К. и др. «Микроархитектура IBM POWER6» (PDF) . Журнал исследований и разработок IBM . 51 (6). Ноябрь 2007 г.
  37. ^ Маллиа, Лу. «Высокопроизводительное процессорное ядро ​​Qualcomm и платформа для мобильных приложений» (PDF) . Архивировано из оригинала (PDF) 29 октября 2013 года.
  38. ^ Ананд Лал Шимпи (06 мая 2013 г.). «Раскрыта архитектура Intel Silvermont: серьезно относимся к мобильным устройствам» . АнандТех .
  39. ^ «Внутри модели Minor CPU: Табло» . 09.06.2017 . Проверено 9 января 2023 г.
  40. ^ Смит, Дж. Э. (1984). «Компьютерные архитектуры с раздельным доступом и выполнением». Транзакции ACM в компьютерных системах . 2 (4): 289–308. CiteSeerX   10.1.1.127.4475 . дои : 10.1145/357401.357403 . S2CID   13903321 .
  41. ^ Куриан, Л.; Хулина, ПТ; Кораор, Л.Д. (1994). «Эффекты задержки памяти в разделенных архитектурах» (PDF) . Транзакции IEEE на компьютерах . 43 (10): 1129–1139. дои : 10.1109/12.324539 . S2CID   6913858 . Архивировано из оригинала (PDF) 12 июня 2018 г.
  42. ^ Дороевец, Миннесота; Оклобдия, В. (1995). «Многопоточная несвязанная архитектура» . Международный журнал высокоскоростных вычислений . 7 (3): 465–480. дои : 10.1142/S0129053395000257 .
  43. ^ Кантер, Дэвид (25 сентября 2010 г.). «Микроархитектура Intel Sandy Bridge» .
  44. ^ «Внешний интерфейс Haswell — анализ архитектуры Intel Haswell: создание нового ПК и нового Intel» .

Дальнейшее чтение [ править ]

  • Смит, Джеймс Э .; Плешкун, А.Р. (июнь 1985 г.). «Реализация точных прерываний в конвейерных процессорах». Новости компьютерной архитектуры ACM SIGARCH . 13 (3): 36–44. дои : 10.1145/327070.327125 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: dd2b6cc24ada3fe3083addf8f9d9bd2f__1717245600
URL1:https://arc.ask3.ru/arc/aa/dd/2f/dd2b6cc24ada3fe3083addf8f9d9bd2f.html
Заголовок, (Title) документа по адресу, URL1:
Out-of-order execution - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)