명령 실행

Execute instruction

컴퓨터 명령 집합 아키텍처(ISA)에서 실행 명령은 데이터를 기계 명령으로 취급하여 실행하는 기계 언어 명령이다.

통상적인 시퀀셜 실행, 분기[1]인터럽트에 이은 네 번째 명령어시퀀싱 모드라고 할 수 있습니다.반복 명령과 같은 다른 명령에서 동작하는 명령이기 때문에 메타 [2]명령으로도 분류됩니다.

컴퓨터 모델

1950년대와 1960년대에 도입된 많은 컴퓨터 제품군에는 IBM 709[1]IBM 7090(op 코드 니모닉:XEC),[3] IBM 7030 Stretch(EX, EXIC),[4][1] PDP-1/4/-9/15(XCT),[5][6] UNIVAC 1100/2200(EXRI),[7] CDC 924(XEC),[8] PDP-6/10(XCT), IBM/[9]360 시스템

실행 명령이 포함된 1970년대 설계는 거의 없습니다.1970년[13]PDP-11에 대해 실행 명령이 제안되었지만 PDP-11 또는 그 후속 버전[15]VAX에 대해서는[14] 구현되지 않았습니다.실행 명령이 있는 아키텍처에는 Nuclear Data 812 미니컴퓨터(1971) (XCT),[16] HP 3000 (1972) (XEQ),[17] TI-990 (1975)[18] 및 마이크로프로세서 버전인 TMS9900 (1976) (X)[19]가 포함됩니다.

최신 명령 집합에는 파이프라인, 프리페치 및 기타 [citation needed]최적화를 방해하기 때문에 실행 명령이 포함되어 있지 않습니다.

의미론

실행할 명령, 타깃 명령은 레지스터에 있거나 메모리에서 가져올 수 있습니다.대상 명령 자체를 실행 명령으로 허용하는 아키텍처도 있고 실행 명령으로 허용하지 않는 아키텍처도 있습니다.

타깃 명령은 실행 명령의 메모리 위치에 있는 것처럼 실행됩니다.예를 들어 서브루틴 호출 명령일 경우 실행이 서브루틴으로 전송되고 반환 위치는 실행 명령 이후의 위치가 된다.그러나 일부 아키텍처는 [1]분기를 금지하는 실행 명령의 변형을 구현합니다.

System/360은 가변 길이 대상 명령을 지원합니다.또한 대상 명령을 실행하기 전에 수정할 수도 있습니다.대상 명령은 짝수 [9]바이트에서 시작해야 합니다.

GE-600 시리즈는 2개의 명령 시퀀스의 실행을 지원하며,[10] 이중 워드로 정렬해야 합니다.

일부 아키텍처는 다른 보호주소 재배치 모드에서 작동하는 실행 명령을 지원합니다.예를 들어 ITS PDP-10 페이징 디바이스는 메모리 읽기, 쓰기 또는 둘 다 사용자 모드 페이지 [20]매핑을 사용할 수 있는 특권 모드 XCTR "execute relocated" 명령을 지원합니다.마찬가지로 PDP-10의 KL10 바리안트도 PXCT '이전 컨텍스트 XCT'[21] 특권 명령을 지원합니다.

하나의 실행 명령이 다른 실행 명령을 가리키는 경우 다음과 같은 여러 문제가 발생할 수 있습니다.

  • 실행 중에 실행 명령을 중단할 수 없는 경우 프로세서는 여러 클럭 사이클 동안 중단되지 않을 수 있습니다.
  • 마찬가지로 일련의 실행 명령이 원형이고 중단이 불가능한 경우 프로세서는 무한 루프 상태가 될 수 있습니다.
  • 실행 명령이 다른 스왑 페이지에 있는 경우 명령을 완료하려면 모든 페이지를 스왑 인해야 합니다.그러면 스레싱이 발생할 수 있습니다.

멀티레벨 간접 어드레싱 모드에서도 같은 문제가 발생합니다.

적용들

실행 명령에는 몇 가지 [1]응용 프로그램이 있습니다.

  • 단일 명령 서브루틴으로 기능하며 [1]필요에 따라 완전한 서브루틴을 호출할 수 있습니다.
  • 레이트 바인딩
    • 이름 및 기타 [1]트렁크의한구현.
    • 실행 타깃 테이블은 객체 또는 클래스의 메서드 또는 가상 함수의 동적 디스패치를 위해 사용될 수 있으며, 특히 메서드 또는 함수가 종종 [14]단일 명령으로 구현될 수 있는 경우에는 더욱 그러하다.
    • 실행 타깃은 기능 추가 또는 디버깅을 위한 후크를 포함할 수 있습니다.보통 NOP로 초기화되어 동적으로 덮어쓸 수 있습니다.
    • 실행 타깃은 동작의 고속 버전과 완전히 추적된 [22][23][24]버전 사이에서 변경될 수 있습니다.
  • 트레이스, 감시 및 에뮬레이션
    • 그러면 의사 프로그램 카운터가 유지되고 일반 프로그램 카운터가 변경되지 [1]않을 수 있습니다.
  • 동적으로 생성된 코드를 실행합니다.특히 메모리 보호로 인해 실행 가능한 코드가 쓰기 불가능할 경우.
  • 자기 수정 코드를 에뮬레이트합니다.특히 재입력 또는 읽기 [13]전용으로 할 필요가 있는 경우.
  • IBM System/360에서 실행 명령은 대상 명령의 비트 8-15를 수정할 수 있으며, 고정 인수(예를 들어 길이 필드)를 가진 명령을 변수 인수를 가진 명령으로 효과적으로 변환할 수 있습니다.
  • KL10과 같은 특권 모드 실행 명령은 사용자 프로세스의 가상 공간 내에서 블록 복사 등의 작업을 실행하기 위해 운영 체제 커널에 의해 사용됩니다.

메모들

  1. ^ a b c d e f g h Brooks, F.P. (March 1960). "The execute operations—a fourth mode of instruction sequencing". Communications of the ACM. 3 (3): 168–170. doi:10.1145/367149.367168. S2CID 37725430.
  2. ^ Rossman, George E. (December 1975). "A Course of Study in Computer Hardware Architecture". IEEE Computer. 8 (12): 44–63. doi:10.1109/C-M.1975.218835. S2CID 977792., 페이지 50
  3. ^ Reference Manual, IBM 7090 Data Processing System (PDF). IBM. March 1962. p. 36.
  4. ^ Reference Manual, 7030 Data Processing System (PDF). IBM. August 1961. p. 50.
  5. ^ Programmed Data Processor-1 Manual (PDF). Digital Equipment Corporation. 1961. p. 14.
  6. ^ Supnik, Bob. "Architectural Evolution in DEC's 18b Computers" (PDF). p. 8 (page numbers not shown).
  7. ^ Univac 1107 Central Computer (PDF). November 1961. p. 12-1.
  8. ^ Control Data 924 Computer Reference Manual (PDF). October 1962. p. 2-41.
  9. ^ a b IBM System/360 Principles of Operation (PDF). IBM. 1964. p. 65. A22-6821-0.
  10. ^ a b GE-635 System Manual (PDF). General Electric Computer Department. July 1964. p. A-5.
  11. ^ SDS 92 Computer. Scientific Data Systems. June 1965. p. 2-6.
  12. ^ SDS 940 Theory of Operation (PDF). Scientific Data Systems. March 1967. p. 2-12. SDS-98-01-26A.
  13. ^ a b van de Goor, Ad (September 21, 1970). "The Execute Instruction" (PDF). PDP-11/40 Technical Memorandum 18.
  14. ^ a b PDP11 Processor Handbook: PDP11/04/34a/44/60/60 (PDF). Digital Equipment Corporation. 1979.
  15. ^ VAX MACRO and Instruction Set Reference Manual (PDF). Compaq Computer Corporation. April 2001. AA-PS6GD-TE.
  16. ^ Principles of Programming the ND812 Computer (PDF). Nuclear Data, Inc. 1971. p. 4-4.
  17. ^ HP 3000 Computer System: Machine Instruction Set Reference Manual (PDF). Hewlett-Packard. 1980. p. 2-31.
  18. ^ 990 Computer Family Systems Handbook (PDF). Texas Instruments. p. 3-28.
  19. ^ TMS 9900 Microprocessor Data Manual (PDF). Texas Instruments. December 1976. p. 24.
  20. ^ Holloway, J. (February 20, 1970). "Hardware Memo 2 - PDP-10 Paging Device" (PDF). MIT AI Lab. p. 11.
  21. ^ DECsystem-10, DECSYSTEM-20 Processor Reference Manual (PDF). Digital Equipment Corporation. June 1982. p. 2-63. AA-H391A-TK, AD-H391A-T1.
  22. ^ Gabriel, Richard P. (August 1985). Performance and Evaluation of Lisp Systems (PDF). p. 32. ISBN 9780262070935.
  23. ^ Pitman, Kent M. "PURE". The Revised Maclisp Manual, Sunday Morning Edition.
  24. ^ Moon, David A. (April 1974). Maclisp Reference Manual (PDF). Revision 0. p. 181.