마이크로시퀀서

Microsequencer

컴퓨터 아키텍처엔지니어링에서 시퀀서 또는 마이크로시퀀서제어 저장소의 마이크로 프로그램을 단계별로 수행하는 데 사용되는 주소를 생성합니다.CPU 제어 장치의 일부 또는 주소 범위의 독립 실행형 생성기로 사용됩니다.

일반적으로 주소는 카운터, 마이크로 명령의 필드 및 명령 레지스터의 일부 하위 집합의 조합에 의해 생성됩니다.카운터는 다음 마이크로 명령이 실행되는 전형적인 경우에 사용됩니다.마이크로 명령의 필드는 점프 또는 다른 논리에 사용됩니다.

CPU는 명령 집합을 구현하기 때문에 명령의 비트를 시퀀서로 직접 디코딩하여 CPU의 명령을 실행하는 마이크로 명령 집합을 선택하는 것이 매우 유용합니다.

대부분의 최신 CISC 프로세서는 파이프라인 로직을 사용하여 1개의 클럭사이클로 완료할 수 있는 저복잡도 오퍼코드를 처리하고 마이크로코드를 사용하여 여러 클럭사이클이 필요한 오퍼코드를 구현합니다.

최초의 통합 마이크로코드 프로세서 중 하나는 IBM PARM Processor로, 마이크로코드로 된 프로세서의 모든 명령을 에뮬레이트하여 최초의 개인용 컴퓨터 중 하나인 IBM 5100에 사용되었습니다.

유사한 오픈 소스 마이크로시퀀서 기반의 프로세서의 최근 예로는 마이크로코드로 인텔 8086/8088, 8051, MOS 6502 명령 세트를 모두 에뮬레이트하는 MicroCore Labs MCL86, MCL51MCL65 코어가 있습니다.

간단한 예

디지털 사이언티픽 코퍼레이션Meta 4 Series 16 컴퓨터 시스템은 1970년에 처음 사용 가능한 사용자 마이크로프로그래밍 시스템이었다.마이크로코드 시퀀스의 브랜치는 3가지 방법 [1]중 하나로 발생합니다.

  • 분기 마이크로 명령은 조건 또는 조건 없이 다음 명령의 주소를 지정합니다.Logical Index(IX; 논리 인덱스) 옵션을 사용하면 16비트 링크 레지스터가 브랜치주소로 논리 OR되어 단순한 인덱스브랜치 기능이 제공됩니다.
  • 모든 산술/논리 명령은 점프(J) 수식자를 허용하며, 이 수식자는 링크 레지스터에 의해 주소 지정된 마이크로 명령으로 실행을 리디렉션합니다.
  • 모든 산술/논리 명령은 감소 카운터(D)와 점프(J) 수식어를 모두 허용합니다.이 경우 8비트 루프카운터 레지스터는 감소합니다.0이 아닐 경우 분기는 링크 레지스터의 내용으로 이동합니다.0인 경우 다음 명령으로 실행을 계속합니다.

분기 명령에서 허용되는 다른 시퀀스 옵션은 실행(XQ) 옵션입니다.지정하면 지점 주소의 단일 명령이 실행되지만 원래 지점 명령 이후에 계속 실행됩니다.IX 옵션은 XQ 옵션과 함께 사용할 수 있습니다.

복잡한 예

IBM System/360은 1964년에 소개된 호환 컴퓨터 시리즈로, 그 중 다수는 마이크로 [2]프로그래밍되었습니다.System/360 Model 40은 마이크로프로그래밍된 기계로 복잡한 마이크로시퀀싱이 가능한 좋은 예입니다.[3]

마이크로스토어는 수평 마이크로프로그래밍 방식으로 작동하는 4,096개의 56비트 마이크로 명령으로 구성됩니다.스토어는 12비트 Read-Only Address Register(ROAR; 읽기 전용 주소 레지스터)에 의해 주소 지정됩니다.S/360 아키텍처의 대부분의 레지스터와 달리 ROAR의 비트는 오른쪽 비트0부터 왼쪽 비트11까지 번호가 매겨집니다.

+-----------------------------+ 11 0

모델 40은 마이크로 명령의 순차적 실행을 하지 않기 때문에 마이크로 시퀀서는 종래의 의미에서는 실제로 분기하지 않는다.대신, 각 마이크로 명령은 실행할 다음 명령의 주소를 지정합니다.마이크로 명령의 4개의 필드가 새 주소에 기여합니다.

  • CA, 4비트: 다른 필드에 따라 다음 주소의 일부입니다.
  • CB, 4비트:다음 주소의 비트1을 결정합니다
  • CC, 4비트:다음 주소의 비트0 을 결정합니다.
  • CD, 2비트:다음 주소의 조립 방법을 제어합니다(CB 필드에 15 가 포함되어 있는 경우는 제외).

이러한 필드에는 기본적으로 세 가지 조합 또는 형식이 있습니다.

기능 브랜치 형식

CB 필드에 15가 포함되어 있는 경우 기능 브랜치가 발생합니다.ROAR 내의 새로운 마이크로 스토어 주소의 비트는 다음과 같이 결정됩니다.

  • 비트 11 ~ 10: CD 필드
  • 비트 9 ~ 6 : CA 필드
  • 비트 5: 항상 0
  • 비트 4 – 1 :8비트 ALU에 대한 올바른 입력이다Q 레지스터의 상위4 비트
  • 비트 0: [CC]필드에 의해 지정된 테스트 결과

CC 필드에는 기계 상태에 대한 다양한 테스트를 지정할 수 있습니다.또한 무조건 비트에 대해 상수 0 또는 1을 지정할 수도 있습니다.

이 형식은 제어 흐름을 마이크로스토어의 64워드 블록 중 하위 32워드 내에서 16개 명령 쌍 중 하나로 변경합니다(비트5는 항상 0이기 때문입니다).그런 다음 CC 필드에 의해 제어가 수신되는 쌍의 명령이 결정됩니다.

CD = 0, 1, 3 형식

CD 필드가 0, 1, 또는 3일 경우 제어 흐름은 현재 64워드 블록 내의 명령으로 전송됩니다.새로운 마이크로 스토어 주소의 비트는 다음과 같이 결정됩니다.

  • 비트 11~6: 그대로 유지
  • 비트 5 ~ 2 : CA 필드
  • 비트 1: CD = 0이면 CB 필드에 의해 지정된 테스트 결과, 그렇지 않으면 0
  • 비트 0: [CC]필드에 의해 지정된 테스트 결과

CA 필드에서는 현재 64워드 블록 내의 16개의 4워드 그룹 중1개를 선택합니다.그런 다음 CB 및 CC 필드에 따라 4개의 명령 중 어떤 명령이 제어를 받는지 결정됩니다.

CD = 2 형식

CD 필드가 2인 경우 제어 흐름은 눈에 띄지 않는 방식으로 지시됩니다.새로운 마이크로 스토어 주소의 비트는 다음과 같이 결정됩니다.

  • 비트 11~10: 그대로 유지
  • 비트 9 ~ 6 : CA 필드
  • 비트 5 ~ 2: 그대로 유지
  • 비트 1: CB 필드에 의해 지정된 테스트 결과
  • 비트 0: [CC]필드에 의해 지정된 테스트 결과

비트 11~10은 그대로 유지되므로 다음 명령어는 현재 명령어와 동일한 1K 워드 영역에 있습니다.CA 필드에 따라 영역 내의 64워드 블록이 결정됩니다.비트 5 ~2는 그대로 유지되기 때문에 명령어는 현재 명령어가 현재 블록 내에 있는 것과 동일한 4워드 그룹에 있습니다.그런 다음 CB 및 CC 필드에 따라 4개의 명령 중 어떤 명령이 제어를 받는지 결정됩니다.

심플화

이 설명은 간략화되었습니다.다음 기능은 무시됩니다.

  • 모델 40은 CPU 모드 또는 채널모드로 동작할 수 있습니다.이 설명에서는 CPU 모드만을 다루고 있습니다.
  • 마이크로 명령이 기능하는 분기 형식이 아니고 CD 필드가 1 또는 3일 경우 다음 주소의 비트1은 항상 0입니다.이 경우 CD 및 CB 필드의 값에 따라 상승하는 제어선 세트 중 하나가 결정됩니다.

레퍼런스

  1. ^ Digital Scientific Meta 4 Series 16 Computer System Reference Manual (PDF). Digital Scientific Corporation. May 1971. 7032MO.
  2. ^ IBM System/360 Principles of Operation (PDF). International Business Machines Corp. September 1968. A22-6821-7.
  3. ^ System/360 Model 40 Functional Units (PDF). International Business Machines Corp. March 1970. SY22-2843-1.