Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В информатике , набор инструкций архитектуры ( ISA ) является абстрактной моделью из компьютера . Ее также называют архитектурой или архитектурой компьютера . Реализация ISA, такая как центральный процессор (ЦП), называется реализацией .

В общем, ISA определяет поддерживаемые типы данных , регистры , аппаратную поддержку для управления основной памятью , основные функции (такие как согласованность памяти , режимы адресации , виртуальная память ) и модель ввода / вывода семейства реализаций ISA.

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

Если операционная система поддерживает стандартный и совместимый двоичный интерфейс приложения (ABI) для определенного ISA, машинный код для этого ISA и операционной системы будет работать в будущих реализациях этого ISA и более новых версиях этой операционной системы. Однако, если ISA поддерживает запуск нескольких операционных систем, это не гарантирует, что машинный код для одной операционной системы будет работать в другой операционной системе, если только первая операционная система не поддерживает выполнение машинного кода, созданного для другой операционной системы.

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

Бинарная совместимость, которую они обеспечивают, делает ISA одной из самых фундаментальных абстракций в вычислениях .

Обзор [ править ]

Архитектура набора команд отличается от микроархитектуры , которая представляет собой набор методов проектирования процессора , используемых в конкретном процессоре для реализации набора команд. Процессоры с разной микроархитектурой могут использовать общий набор команд. Например, Intel Pentium и Advanced Micro Devices Athlon реализуют почти идентичные версии набора инструкций x86 , но имеют радикально разные внутренние конструкции.

Концепция архитектуры , отличная от конструкции конкретной машины, была разработана Фредом Бруксом из IBM на этапе проектирования System / 360 .

До NPL [System / 360] разработчики компьютеров компании могли свободно соблюдать целевые затраты не только за счет выбора технологий, но и за счет функциональных и архитектурных усовершенствований. Цель совместимости с SPREAD, напротив, постулировала единую архитектуру для серии из пяти процессоров, охватывающих широкий диапазон стоимости и производительности. Ни одна из пяти групп инженеров-проектировщиков не могла рассчитывать на возможность внесения изменений в архитектурные спецификации как способа облегчения трудностей в достижении целей по стоимости и производительности. [1] : с.137

Некоторые виртуальные машины , что поддержка байткод как их ISA , такие как Smalltalk , в виртуальной машине Java и Microsoft «s Common Language Runtime , осуществить это путем перевода байт - кода для наиболее часто используемых кодов путей в машинный код. Кроме того, эти виртуальные машины выполняют менее часто используемые пути кода путем интерпретации (см. Своевременная компиляция ). Таким образом Transmeta реализовала набор инструкций x86 на процессорах VLIW .

Классификация ISA [ править ]

ISA можно классифицировать по-разному. Распространенная классификация - по архитектурной сложности . Компьютер со сложным набором инструкций (CISC) имеет множество специализированных инструкций, некоторые из которых могут редко использоваться в практических программах. Компьютер с сокращенным набором команд (RISC) упрощает процессор, эффективно реализуя только те инструкции, которые часто используются в программах, в то время как менее распространенные операции реализуются как подпрограммы, в результате чего дополнительное время выполнения процессора компенсируется нечастым использованием. [2]

К другим типам относятся архитектуры с очень длинным командным словом (VLIW) и тесно связанные архитектуры с длинным командным словом (LIW) и явно параллельным вычислением команд (EPIC). Эти архитектуры стремятся использовать параллелизм на уровне команд с меньшим количеством оборудования, чем RISC и CISC, возлагая ответственность за выдачу команд и планирование на компилятор .

Были изучены архитектуры с еще меньшей сложностью, такие как компьютер с минимальным набором команд (MISC) и компьютер с одним набором команд (OISC). Это теоретически важные типы, но они не были коммерциализированы.

Инструкции [ править ]

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

  • отдельные регистры (для арифметических, адресных или управляющих функций)
  • определенные ячейки памяти (или смещения к ним)
  • особые режимы адресации (используются для интерпретации операндов)

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

Типы инструкций [ править ]

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

Обработка данных и операции с памятью [ править ]

  • Установить в регистр на фиксированное постоянное значение.
  • Скопируйте данные из области памяти или регистра в область памяти или регистр (машинную команду часто называют перемещением ; однако этот термин вводит в заблуждение). Используется для хранения содержимого регистра, результата вычисления или для извлечения сохраненных данных для выполнения над ними вычислений позже. Часто называется операциями загрузки и сохранения .
  • Чтение и запись данных с аппаратных устройств.

Арифметические и логические операции [ править ]

  • Сложить , вычесть , умножить или разделить значения двух регистров, поместив результат в регистр, возможно, установив один или несколько кодов условий в регистре состояния .
    • инкремент , декремент в некоторых ISA, сохранение выборки операнда в тривиальных случаях.
  • Выполните поразрядные операции , например, взяв соединение и дизъюнкцию соответствующих битов в паре регистров, взяв отрицание каждого бита в регистре.
  • Сравните два значения в регистрах (например, чтобы узнать, меньше ли одно или равны ли они).
  • Инструкции с плавающей запятой для арифметики над числами с плавающей запятой.

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

  • Перейдите в другое место в программе и выполните там инструкции.
  • Условный переход в другое место, если выполняется определенное условие.
  • Косвенно перейти в другое место.
  • Вызов другого блока кода, сохраняя при этом расположение следующей инструкции как точку, к которой нужно вернуться.

Инструкции по сопроцессору [ править ]

  • Загрузка / сохранение данных в и из сопроцессора или обмен с регистрами ЦП.
  • Выполните операции сопроцессора.

Сложные инструкции [ править ]

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

  • одновременная передача нескольких регистров в память или из памяти (особенно в стек )
  • перемещение больших блоков памяти (например, копирование строки или передача DMA )
  • сложная арифметика целых чисел и чисел с плавающей запятой (например, квадратный корень или трансцендентные функции, такие как логарифм , синус , косинус и т. д.)
  • SIMD- инструкция s, одна инструкция, выполняющая операцию со многими однородными значениями параллельно, возможно, в выделенныхрегистрах SIMD.
  • выполнение атомарной инструкции проверки и установки или другой атомарной инструкции чтения-изменения-записи
  • инструкции, которые выполняют операции ALU с операндом из памяти, а не с регистром

Сложные инструкции более распространены в наборах инструкций CISC, чем в наборах инструкций RISC, но наборы инструкций RISC также могут включать их. Наборы инструкций RISC обычно не включают в себя операции ALU с операндами памяти или инструкции для перемещения больших блоков памяти, но большинство наборов инструкций RISC включают в себя SIMD или векторные инструкции, которые одновременно выполняют одну и ту же арифметическую операцию с несколькими частями данных. Команды SIMD имеют возможность манипулировать большими векторами и матрицами за минимальное время. Инструкции SIMD позволяют легко распараллеливать алгоритмы, обычно участвующие в обработке звука, изображения и видео. Различные реализации SIMD были выведены на рынок под торговыми марками, такими как MMX ,3DNow! , и AltiVec .

Кодировка инструкции [ править ]

Одна инструкция может иметь несколько полей, которые идентифицируют логическую операцию, а также могут включать адреса источника и назначения и постоянные значения. Это инструкция MIPS «Добавить немедленно», которая позволяет выбирать регистры источника и назначения и включать небольшую константу.

В традиционных архитектурах инструкция включает код операции, который определяет выполняемую операцию, например добавление содержимого памяти в регистр, и ноль или более спецификаторов операндов , которые могут указывать регистры , ячейки памяти или литеральные данные. Спецификаторы операндов могут иметь режимы адресации, определяющие их значение, или могут находиться в фиксированных полях. В архитектурах с очень длинным командным словом (VLIW), которые включают в себя множество архитектур микрокодов , несколько одновременных кодов операций и операндов указываются в одной команде.

Некоторые экзотические наборы команд не имеют поля кода операции, например , архитектуры, запускаемые транспортом (TTA), только операнды.

В виртуальной машине Forth и других наборах инструкций « 0-операнд » отсутствуют какие-либо поля спецификатора операнда, например, в некоторых стековых машинах, включая NOSC. [3] [ нужен лучший источник ]

У условных инструкций часто есть поле предиката - несколько битов, которые кодируют конкретное условие, заставляющее выполнение операции, а не ее невыполнение. Например, инструкция условного перехода передаст управление, если условие истинно, так что выполнение перейдет к другой части программы, а не передаст управление, если условие ложно, так что выполнение продолжается последовательно. Некоторые наборы инструкций также имеют условные перемещения, так что перемещение будет выполнено, и данные будут храниться в целевом местоположении, если условие истинно, но не выполнено, и целевое расположение не будет изменено, если условие ложно. Точно так же в IBM z / Architecture есть инструкция условного сохранения. Некоторые наборы инструкций включают поле предиката в каждую инструкцию; это называетсяпредикация ветви .

Количество операндов [ править ]

Наборы инструкций можно классифицировать по максимальному количеству операндов, явно указанных в инструкциях.

(В следующих примерах a , b и c являются (прямыми или вычисленными) адресами, относящимися к ячейкам памяти, а reg1 и т. Д. Относятся к машинным регистрам.)

С = А + В
  • 0-операнд ( нулевой адрес машина ), так называемый стек машина : Все арифметические операции имеют место , используя верхние одну или две позиций в стеке: push a, push b, add, pop c.
    • C = A+Bнужно четыре инструкции . Для стековых машин термины «0-операнд» и «нулевой адрес» применяются к арифметическим инструкциям, но не ко всем инструкциям, поскольку для доступа к памяти используются инструкции push и pop с 1 операндом.
  • 1-операнд ( одноадресные машины ), так называемые аккумуляторные машины , включают ранние компьютеры и множество небольших микроконтроллеров : большинство инструкций задают единственный правый операнд (то есть константу, регистр или ячейку памяти), а неявный аккумулятор как левый операнд (и адресат , если есть один): load a, add b, store c.
    • C = A+Bтребуется три инструкции .
  • 2-операнд - многие машины CISC и RISC подпадают под эту категорию:
    • CISC - move Aдо C ; затем add Bк C .
      • C = A+Bнужны две инструкции . Это эффективно «сохраняет» результат без явной инструкции сохранения .
    • CISC - Часто машины ограничены одним операндом памяти на инструкцию load a,reg1:; add b,reg1; store reg1,c; Это требует загрузки / сохранение пара для любого движения памяти независимо от того, является ли addрезультат является увеличение сохраняется в другое место, как и в C = A+B, или же ячейке памяти: A = A+B.
      • C = A+Bтребуется три инструкции .
    • RISC - требует явной загрузки памяти, инструкции будут такими load a,reg1:; load b,reg2; add reg1,reg2; store reg2,c.
      • C = A+Bнужно четыре инструкции .
  • 3-операнд, позволяющий лучше повторно использовать данные: [4]
    • CISC - превращается в одну инструкцию: add a,b,c
      • C = A+Bнужна одна инструкция .
    • CISC - Или, на машинах, ограниченных двумя операндами памяти на инструкцию move a,reg1,; add reg1,b,c;
      • C = A+Bнужны две инструкции .
    • RISC - арифметические команды используют регистры только необходимые инструкции так явно 2-операнд загрузки / сохранения: load a,reg1; load b,reg2; add reg1+reg2->reg3; store reg3,c;
      • C = A+Bнужно четыре инструкции .
      • В отличие от 2-операнда или 1-операнда, это оставляет все три значения a, b и c в регистрах доступными для дальнейшего повторного использования. [4]
  • больше операндов - некоторые машины CISC допускают множество режимов адресации, которые допускают более 3 операндов (регистры или доступ к памяти), такие как инструкция оценки полинома VAX "POLY".

Из-за большого количества битов, необходимых для кодирования трех регистров инструкции с 3 операндами, архитектуры RISC, которые имеют 16-разрядные инструкции, неизменно представляют собой конструкции с 2 операндами, такие как Atmel AVR, TI MSP430 и некоторые версии ARM Thumb. . Архитектуры RISC, которые имеют 32-битные инструкции, обычно представляют собой конструкции с тремя операндами, такие как архитектуры ARM , AVR32 , MIPS , Power ISA и SPARC .

Каждая инструкция явно указывает некоторое количество операндов (регистров, ячеек памяти или непосредственных значений) . Некоторые инструкции неявно задают один или оба операнда, например, сохраняя их на вершине стека или в неявном регистре. Если некоторые из операндов указаны неявно, в инструкции нужно указать меньшее количество операндов. Когда «операнд назначения» явно указывает место назначения, должен быть предоставлен дополнительный операнд. Следовательно, количество операндов, закодированных в инструкции, может отличаться от математически необходимого количества аргументов для логической или арифметической операции ( арности ). Операнды либо закодированы в представлении «кода операции» инструкции, либо или же указываются как значения или адреса после кода операции.

Зарегистрируйте давление [ править ]

Давление на регистры измеряет доступность свободных регистров в любой момент во время выполнения программы. Давление на регистры высокое, когда используется большое количество доступных регистров; таким образом, чем выше давление регистра, тем чаще содержимое регистра должно быть выгружено в память. Увеличение количества регистров в архитектуре снижает давление на регистры, но увеличивает стоимость. [5]

В то время как встроенные наборы команд, такие как Thumb, страдают от чрезвычайно высокого давления регистров, потому что они имеют небольшие наборы регистров, универсальные RISC ISA, такие как MIPS и Alpha, имеют низкое давление регистра. CISC ISA, такие как x86-64, предлагают низкое давление регистров, несмотря на меньшие наборы регистров. Это связано с множеством режимов адресации и оптимизаций (таких как адресация субрегистров, операнды памяти в инструкциях ALU, абсолютная адресация, относительная адресация ПК и разливы между регистрами), которые предлагают CISC ISA. [6]

Длина инструкции [ править ]

Размер или длина инструкции широко варьируется: от всего лишь четырех бит в некоторых микроконтроллерах до многих сотен бит в некоторых системах VLIW. Процессоры, используемые в персональных компьютерах , мэйнфреймах и суперкомпьютерах, имеют размер команд от 8 до 64 бит. Максимально возможная длина инструкции на x86 составляет 15 байт (120 бит). [7] В наборе команд разные команды могут иметь разную длину. В некоторых архитектурах, особенно в большинстве компьютеров с сокращенным набором команд (RISC),инструкции имеют фиксированную длину , обычно соответствующую размеру слова этой архитектуры . В других архитектурах инструкции имеют переменную длину, обычно целые числа, кратные байту или полуслову . Некоторые, такие как ARM с расширением Thumb, имеют смешанную кодировку переменных, то есть две фиксированные, обычно 32-битные и 16-битные кодировки, где инструкции не могут свободно смешиваться, но должны переключаться между ветвью (или границей исключения в ARMv8). ).

Набор инструкций RISC обычно имеет фиксированную длину инструкции (часто 4 байта = 32 бита), тогда как типичный набор инструкций CISC может иметь инструкции самой разной длины (от 1 до 15 байтов для x86). Инструкции фиксированной длины менее сложны в обработке, чем инструкции переменной длины по нескольким причинам (например, отсутствие необходимости проверять, охватывает ли инструкция строку кэша или границу страницы виртуальной памяти [4] ), и поэтому их несколько легче оптимизировать для скорость.

Плотность кода [ править ]

В ранних компьютерах память была дорогой, поэтому минимизация размера программы, чтобы убедиться, что она уместится в ограниченной памяти, часто была центральной. Таким образом, объединенный размер всех инструкций, необходимых для выполнения конкретной задачи, плотность кода , была важной характеристикой любого набора инструкций. Компьютеры с высокой плотностью кода часто имеют сложные инструкции для ввода процедур, параметризованных возвратов, циклов и т. Д. (Поэтому задним числом названы Computers Set Instruction Set Computers , CISC ). Однако более типичные или частые инструкции «CISC» просто объединяют базовую операцию ALU, такую ​​как «сложение», с доступом к одному или нескольким операндам в памяти (с использованием режимов адресациитакие как прямые, косвенные, индексированные и т. д.). Некоторые архитектуры могут допускать два или три операнда (включая результат) непосредственно в памяти или могут выполнять такие функции, как автоматическое приращение указателя и т. Д. Программно реализованные наборы команд могут иметь даже более сложные и мощные инструкции.

Компьютеры с сокращенным набором команд , RISC , были впервые широко внедрены в период быстрого роста подсистем памяти. Они жертвуют плотностью кода, чтобы упростить схему реализации, и пытаются повысить производительность за счет более высоких тактовых частот и большего количества регистров. Одна инструкция RISC обычно выполняет только одну операцию, такую ​​как «сложение» регистров или «загрузка» из области памяти в регистр. Набор инструкций RISC обычно имеет фиксированную длину инструкции , тогда как типичный набор инструкций CISC имеет инструкции самой разной длины. Однако, поскольку RISC-компьютерам обычно требуется все больше и чаще более длинных инструкций для реализации данной задачи, они по своей природе менее оптимально используют пропускную способность шины и кэш-память.

Некоторые встроенные RISC ISA, такие как Thumb и AVR32, обычно демонстрируют очень высокую плотность из-за метода, называемого сжатием кода. Этот метод упаковывает две 16-битные инструкции в одно 32-битное слово, которое затем распаковывается на этапе декодирования и выполняется как две инструкции. [8]

Компьютеры с минимальным набором команд (MISC) представляют собой разновидность стековой машины , в которой есть несколько отдельных инструкций (16-64), так что несколько инструкций могут быть помещены в одно машинное слово. Эти типы ядер часто требуют небольшого количества кремния для реализации, поэтому их можно легко реализовать в виде ПЛИС или в многоядерной форме. Плотность кода MISC аналогична плотности кода RISC; повышенная плотность инструкций компенсируется тем, что для выполнения задачи требуется большее количество примитивных инструкций. [ необходима цитата ]

Было проведено исследование сжатия исполняемых файлов как механизма повышения плотности кода. Математика колмогоровской сложности описывает проблемы и ограничения этого.

Представление [ править ]

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

Дизайн [ править ]

Дизайн наборов инструкций - сложный вопрос. В истории микропроцессора было два этапа. Первым был CISC (компьютер со сложной системой команд), в котором было много разных инструкций. Однако в 1970-х годах такие компании, как IBM, провели исследования и обнаружили, что многие инструкции из набора можно исключить. Результатом стал RISC (компьютер с сокращенным набором инструкций), архитектура, использующая меньший набор инструкций. Более простой набор команд может предложить потенциал для более высоких скоростей, уменьшения размера процессора и снижения энергопотребления. Однако более сложный набор может оптимизировать общие операции, повысить эффективность памяти и кеша или упростить программирование.

Некоторые разработчики наборов команд резервируют один или несколько кодов операций для системного вызова или программного прерывания . Например, MOS Technology 6502 использует 00 H , Zilog Z80 использует восемь кодов C7, CF, D7, DF, E7, EF, F7, FF H [9] в то время как Motorola 68000 использовать коды в диапазоне A000..AFFF H .

Быстрые виртуальные машины намного проще реализовать, если набор инструкций соответствует требованиям виртуализации Попека и Голдберга . [ требуется разъяснение ]

NOP слайды используются в иммунитете в курсе программирования гораздо легче реализовать , если «незапрограммированное» состояние памяти интерпретируются как NOP . [ сомнительно ]

В системах с несколькими процессорами алгоритмы неблокирующей синхронизации намного проще реализовать [ необходима цитата ], если набор инструкций включает поддержку чего-то вроде « выборки и добавления », « загрузка-ссылка / сохранение-условно » (LL / SC) или "атомарное сравнение и обмен ".

Реализация набора инструкций [ править ]

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

При проектировании микроархитектуры процессора инженеры используют блоки «зашитой» электронной схемы (часто разрабатываемые отдельно), такие как сумматоры, мультиплексоры, счетчики, регистры, ALU и т. Д. Затем для описания часто используется какой-то язык передачи регистров. декодирование и упорядочение каждой инструкции ISA с использованием этой физической микроархитектуры. Существует два основных способа создания блока управления для реализации этого описания (хотя во многих проектах используются средние пути или компромиссы):

  1. Некоторые компьютеры проектируют «жестко» полный набор команд для декодирования и секвенирования (как и остальная часть микроархитектуры).
  2. В других конструкциях для этого используются процедуры микрокода или таблицы (или и то, и другое) - обычно в виде встроенных ПЗУ или PLA или и того, и другого (хотя исторически использовались отдельные RAM и ROM ). Western Digital MCP-1600 является более старым примером, используя специальный, отдельный диск для микрокода.

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

Некоторые конструкции ЦП используют записываемое хранилище управления - они компилируют набор инструкций в записываемое ОЗУ или флэш-память внутри ЦП (например, процессор Rekursiv и Imsys Cjip ) [10] или FPGA ( реконфигурируемые вычисления ).

ISA также можно эмулировать в программном обеспечении с помощью интерпретатора . Естественно, из-за накладных расходов на интерпретацию это медленнее, чем непосредственно запускаемые программы на эмулируемом оборудовании, если только оборудование, на котором запущен эмулятор, не на порядок быстрее. Сегодня распространенной практикой является то, что производители новых ISA или микроархитектур делают программные эмуляторы доступными разработчикам программного обеспечения до того, как будет готова аппаратная реализация.

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

Требования к высокоскоростной цифровой обработке сигналов подтолкнули в противоположном направлении, заставляя инструкции быть реализованы определенным образом. Например, чтобы выполнять цифровые фильтры достаточно быстро, инструкция MAC в типичном цифровом сигнальном процессоре (DSP) должна использовать своего рода архитектуру Гарварда, которая может одновременно извлекать инструкцию и два слова данных, и для этого требуется однократное умножение-накопление. множитель .

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

  • Сравнение архитектур наборов инструкций
  • Компьютерная архитектура
  • Конструкция процессора
  • Эмулятор
  • Симулятор
  • Список наборов инструкций
  • Симулятор набора инструкций
  • Полный системный симулятор OVPsim , обеспечивающий возможность создавать / моделировать / эмулировать любой набор инструкций с использованием C и стандартных API
  • Зарегистрировать язык перевода (RTL)
  • Микрооперация

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

  1. ^ Пью, Эмерсон В .; Джонсон, Лайл Р .; Палмер, Джон Х. (1991). Системы IBM 360 и Early 370 . MIT Press. ISBN 0-262-16123-0.
  2. ^ Кристал Чен; Грег Новик; Кирк Шимано (16 декабря 2006 г.). «Архитектура RISC: RISC против CISC» . cs.stanford.edu . Проверено 21 февраля 2015 года .
  3. ^ «Ресурсы Forth: Архив списка рассылки NOSC» . unknowngizmo.com . Архивировано из оригинала на 2014-05-20 . Проверено 25 июля 2014 .
  4. ^ a b c Эволюция технологии RISC в IBM, Джон Кок - Журнал исследований и разработок IBM, том 44, номера 1/2, стр.48 (2000)
  5. ^ Пейдж, Дэниел (2009). «11. Составители». Практическое введение в компьютерную архитектуру . Springer. п. 464. Bibcode : 2009pica.book ..... P . ISBN 978-1-84882-255-9.
  6. ^ Венкат, Ашиш; Таллсен, Дин М. (2014). Использование разнообразия ISA: разработка многопроцессорного процессора на гетерогенных микросхемах ISA . 41-й ежегодный международный симпозиум по компьютерной архитектуре.
  7. ^ "Руководство разработчика программного обеспечения для архитектур Intel® 64 и IA-32" . Корпорация Intel . Проверено 12 июля 2012 года .
  8. ^ Уивер, Винсент М .; Макки, Салли А. (2009). Проблемы плотности кода для новых архитектур . Международная конференция IEEE по компьютерному дизайну. CiteSeerX 10.1.1.398.1967 . DOI : 10.1109 / ICCD.2009.5413117 . 
  9. ^ Ganssle, Джек (26 февраля 2001). «Проактивная отладка» . embedded.com .
  10. ^ «Великие микропроцессоры прошлого и настоящего (V 13.4.0)» . cpushack.net . Проверено 25 июля 2014 .

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

  • Боуэн, Джонатан П. (июль – август 1985 г.). «Стандартные микропроцессорные карты программирования». Микропроцессоры и микросистемы . 9 (6): 274–290. DOI : 10.1016 / 0141-9331 (85) 90116-4 .

Внешние ссылки [ править ]

  • СМИ, связанные с архитектурами наборов инструкций, на Викискладе?
  • Программирование текстовых файлов: карточки с краткими инструкциями Боуэна
  • Страница Марка Смотермана с историческими проектами компьютеров