Выполнить инструкцию
Машинный код |
---|
Общие понятия |
Инструкции |
В архитектуре набора компьютерных команд (ISA) инструкция выполнения — это инструкция машинного языка , которая обрабатывает данные как машинную инструкцию и выполняет ее.
Его можно считать четвертым режимом упорядочивания команд после обычного последовательного выполнения , ветвления и прерывания . [1] Поскольку это инструкция, которая работает с другими инструкциями, такими как инструкция повторения , она также классифицируется как метаинструкция. [2]
Компьютерные модели
[ редактировать ]Многие семейства компьютеров, представленные в 1950-х и 1960-х годах, включают выполнения инструкции : IBM 709 [1] и IBM 7090 ( мнемоника кода операции : Чешская Республика ), [3] IBM 7030 Stretch ( БЫВШИЙ , ЭКСИК ), [4] [1] ПРП -1 / -4 / -7 / -9 / -15 ( ХСТ ) [5] [6] UNIVAC 1100/2200 ( ЭКСРИ ), [7] CDC 924 ( Чешская Республика ), [8] ПДП -6 / -10 ( XCT ), IBM System/360 ( БЫВШИЙ ), [9] GE -600 / Honeywell 6000 ( проверять , ХЭД ), [10] СДС -9хх ( EXU ), [11] СДС 92 ( EXU ), [12] и серия SDS Sigma ( ЭКСУ ). [13]
Меньшее количество проектов 1970-х годов включало инструкции выполнения : миникомпьютер Nuclear Data 812 (1971) ( ХСТ ) [14] HP 3000 (1972) ( XEQ ), [15] и Texas Instruments TI-990 (1975) [16] и его микропроцессорная версия TMS9900 (1976 г.) ( Х ). [17] Инструкция выполнения была предложена для PDP-11 в 1970 году. [18] но никогда не реализовывался для этого [19] или его преемник, VAX . [20]
Современные наборы инструкций не включают инструкции выполнения , поскольку они мешают конвейерной обработке , предварительной выборке и другим оптимизациям. [ нужна ссылка ]
Семантика
[ редактировать ]Инструкция, которую необходимо выполнить, целевая инструкция, может находиться в регистре или быть выбранной из памяти. Некоторые архитектуры позволяют целевой инструкции быть инструкцией выполнения ; другие этого не делают.
Целевая инструкция выполняется так, как если бы она находилась в ячейке памяти, в которой находится инструкция выполнения . Если, например, это инструкция вызова подпрограммы, выполнение передается подпрограмме, причем местом возврата является местоположение после инструкции выполнения . Однако в некоторых архитектурах реализованы варианты инструкции выполнения , запрещающие ветвления. [1]
System/360 поддерживает целевые инструкции переменной длины. Он также поддерживает изменение целевой инструкции перед ее выполнением. Целевая инструкция должна начинаться с четного байта . [9]
Серия GE-600 поддерживает выполнение последовательностей из двух инструкций, которые должны быть выровнены по двойному слову . [10]
Некоторые архитектуры поддерживают инструкцию выполнения , которая работает в другом режиме защиты и перемещения адреса . Например, пейджинговое устройство ITS PDP-10 поддерживает привилегированный режим. Инструкция XCTR «выполнить перемещение», которая позволяет выполнять чтение, запись или и то, и другое в памяти, используя сопоставления страниц пользовательского режима. [21] Аналогично, KL10 поддерживает привилегированную команду. вариант PDP-10 PXCT 'предыдущий контекст XCT'. [22]
Инструкция выполнения может вызвать несколько проблем, когда одна инструкция выполнения указывает на другую и так далее:
- процессор может работать бесперебойно в течение нескольких тактов , если команду выполнения нельзя прервать в середине выполнения;
- аналогично, процессор может перейти в бесконечный цикл, если последовательность инструкций выполнения является циклической и непрерывной;
- Если инструкции выполнения находятся на разных страницах подкачки , для завершения инструкции необходимо заменить все страницы, что может привести к сбоям в работе .
Аналогичные проблемы возникают с режимами многоуровневой косвенной адресации .
Приложения
[ редактировать ]Инструкция выполнения имеет несколько применений: [1]
- с одной инструкцией Функционирование как подпрограмма без обычных накладных расходов на вызовы подпрограмм ; при необходимости эта инструкция может вызвать полную подпрограмму. [1]
- Позднее связывание
- Реализация звонка по имени и других возможностей . [1]
- Таблица целей выполнения может использоваться для динамической отправки методов или . виртуальных функций объекта класса или , особенно когда метод или функция часто могут быть реализованы как одна инструкция [19]
- Цель выполнения может содержать перехватчик для добавления функциональности или отладки; обычно он инициализируется как NOP , который может быть переопределен динамически.
- Цель выполнения может меняться между быстрой версией операции и полностью отслеживаемой версией. [23] [24] [25]
- Отслеживание, мониторинг и эмуляция
- При этом может поддерживаться счетчик псевдопрограмм , оставляя обычный счетчик программ неизменным. [1]
- Выполнение динамически сгенерированного кода, особенно когда защита памяти препятствует записи исполняемого кода.
- Эмуляция самомодифицирующегося кода, особенно когда он должен быть реентерабельным или доступен только для чтения. [18]
- В IBM System/360 команда выполнения может изменять биты 8–15 целевой инструкции, эффективно превращая команду с фиксированным аргументом (например, полем длины) в команду с переменным аргументом.
- в привилегированном режиме, Инструкции выполнения как и в KL10, используются ядрами операционной системы для выполнения таких операций, как копирование блоков в виртуальном пространстве пользовательских процессов.
Примечания
[ редактировать ]- ^ Jump up to: а б с д и ж г час Брукс, Ф.П. (март 1960 г.). «Операции выполнения — четвертый режим последовательности команд» . Коммуникации АКМ . 3 (3): 168–170. дои : 10.1145/367149.367168 . S2CID 37725430 .
- ^ Россман, Джордж Э. (декабрь 1975 г.). «Курс изучения архитектуры компьютерного оборудования». IEEE-компьютер . 8 (12): 44–63. дои : 10.1109/CM.1975.218835 . S2CID 977792 . , с. 50
- ^ Справочное руководство, Система обработки данных IBM 7090 (PDF) . ИБМ . Март 1962 г. с. 36.
- ^ Справочное руководство, Система обработки данных 7030 (PDF) . ИБМ . Август 1961 г. с. 50.
- ^ Руководство по программируемому процессору данных-1 (PDF) . Корпорация цифрового оборудования . 1961. с. 14.
- ^ Супник, Боб. «Архитектурная эволюция компьютеров DEC 18b» (PDF) . п. 8 (номера страниц не показаны).
- ^ Центральный компьютер Univac 1107 (PDF) . Ноябрь 1961 г. с. 12-1.
- ^ Справочное руководство по компьютеру Control Data 924 (PDF) . Октябрь 1962 г. с. 2-41.
- ^ Jump up to: а б Принципы работы IBM System/360 (PDF) . ИБМ . 1964. с. 65. А22-6821-0.
- ^ Jump up to: а б Системное руководство GE-635 (PDF) . Компьютерный отдел General Electric. Июль 1964 г. с. А-5.
- ^ SDS 940 Теория работы (PDF) . Системы научных данных . Март 1967 г. с. 2-12. СДС-98-01-26А.
- ^ Компьютер SDS 92 . Системы научных данных . Июнь 1965 г. с. 2-6.
- ^ Компьютер Xerox SIGMA 7: Справочное руководство (PDF) . 90 09 5Дж; XG46, Номер файла: 1X03 (0 изд.). Корпорация Ксерокс. Октябрь 1973 г., стр. 70–71.
{{cite book}}
: CS1 maint: другие ( ссылка ) - ^ Принципы программирования компьютера ND812 (PDF) . Nuclear Data, Inc., 1971. с. 4-4.
- ^ Компьютерная система HP 3000: Справочное руководство по набору машинных инструкций (PDF) . Хьюлетт-Паккард . 1980. с. 2-31.
- ^ Справочник по семейным компьютерным системам 990 (PDF) . Техасские инструменты . п. 3-28.
- ^ Руководство по данным микропроцессора TMS 9900 (PDF) . Техасские инструменты . Декабрь 1976 г. с. 24.
- ^ Jump up to: а б ван де Гур, Ад (21 сентября 1970 г.). «Инструкция по выполнению» (PDF) . PDP-11/40 Технический меморандум 18.
- ^ Jump up to: а б Справочник по процессору PDP11: PDP11/04/34a/44/60/60 (PDF) . Корпорация цифрового оборудования . 1979.
- ^ Справочное руководство по VAX MACRO и набору команд (PDF) . Компьютерная корпорация Compaq . Апрель 2001 г. АА-ПС6ГД-ТЕ.
- ^ Холлоуэй, Дж. (20 февраля 1970 г.). «Памятка по аппаратному обеспечению 2 — пейджинговое устройство PDP-10» (PDF) . Лаборатория искусственного интеллекта Массачусетского технологического института . п. 11.
- ^ Справочное руководство по процессорам DECsystem-10, DECSYSTEM-20 (PDF) . Корпорация цифрового оборудования . Июнь 1982 г. с. 2-63. АА-H391A-TK, AD-H391A-T1.
- ^ Габриэль, Ричард П. (август 1985 г.). Производительность и оценка систем Lisp (PDF) . МТИ Пресс. п. 32. ISBN 9780262070935 .
- ^ Питман, Кент М. «ЧИСТЫЙ» . Пересмотренное руководство Maclisp, воскресное утреннее издание .
- ^ Мун, Дэвид А. (апрель 1974 г.). Справочное руководство Maclisp (PDF) . Редакция 0. с. 181.