KR910001055B1 - 파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열방법 및 그 장치 - Google Patents

파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열방법 및 그 장치 Download PDF

Info

Publication number
KR910001055B1
KR910001055B1 KR1019870700877A KR870700877A KR910001055B1 KR 910001055 B1 KR910001055 B1 KR 910001055B1 KR 1019870700877 A KR1019870700877 A KR 1019870700877A KR 870700877 A KR870700877 A KR 870700877A KR 910001055 B1 KR910001055 B1 KR 910001055B1
Authority
KR
South Korea
Prior art keywords
address
stored
addresses
microinstruction
signal
Prior art date
Application number
KR1019870700877A
Other languages
English (en)
Other versions
KR880700967A (ko
Inventor
더블유. 클락 더글라스
엔. 미슈라 서딘드라
Original Assignee
디지탈 이큐입먼트 코포레이션
메리타 엠. 에씨어
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 디지탈 이큐입먼트 코포레이션, 메리타 엠. 에씨어 filed Critical 디지탈 이큐입먼트 코포레이션
Publication of KR880700967A publication Critical patent/KR880700967A/ko
Application granted granted Critical
Publication of KR910001055B1 publication Critical patent/KR910001055B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
  • Debugging And Monitoring (AREA)
  • Programmable Controllers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

내용 없음.

Description

[발명의 명칭]
파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열방법 및 그 장치
[도면의 간단한 설명]
제1도는 본 발명에 따른 데이터처리시스템의 블록다이어그램.
제2a도, 제2b도 및 제2c도는 명령을 복수개의 세그먼트로 분할하여 나타낸 다이어그램.
제3도는 파이프라이닝방식으로 명령시퀀스를 수행하는 중앙처리유니트의 블록다이어그램.
제4도는 트랩조건의 식별에 따라 인터럽트된 명령이 순차적으로 실행되고 있는 상태를 나타낸 다이어그램.
제5도는 본 발명에 따른 트랩된 마이크로어드레스를 재배열시켜 주기 위해 사용되는 재배열장치의 블록다이어그램.
제6도는 디코드마커신호를 저장하는 장치의 블록다이어그램.
제7도는 디코드마커신호에 따라 디코더선택신호를 생성하는 디코더선택신호장치의 블록다이어그램.
제8도는 마이크로트랩복귀상태신호의 발생과정을 설명하기 위한 블록다이어그램이다.
[발명의 상세한 설명]
[기술 분야]
본 발명은 일반적으로 데이터처리시스템에 관한 것으로, 특히 현재 어떤 마이크로명령시퀀스를 실행하다가 우선순위를 갖는 절차를 먼저 처리하기 위하여 인터럽트된 파이프라인방식의 데이터처리시스템이 인터럽션시에 시행되던 프로그램시퀀스로 정확히 복귀할 수 있도록 하기 위해 트랩된 마이크로어드레스를 재배열시켜 주는 방법 및 그 장치에 관한 것이다.
[배경 기술]
제1도에는 전형적인 데이터처리시스템이 도시되어 있는 바, 이 데이터처리시스템은 최소한 하나의 중앙처리유니트(10) 및 그 서브시스템(11)과, 최소한 하나의 입출력유니트(13) 및 그 서브시스템(14), 메인메모리유니트(15) 및 그 서브시스템, 상기 복수의 유니트 및 그 서브시스템에 연결되는 시스템버스(19)등을 포함하고 있다.
이러한 중앙처리유니트(10 또는 11)는 소프트웨어나 펌웨어(firm-ware)내에 저장되어 있는 프로그램의 명령시퀀스에 따라 논리신호군들을 처리하게 되는데, 전형적으로 상기 논리신호군과 프로그램자체는 최소한 프로그램실행도중 메모리유니트내에 저장되게 된다. 또한, 상기 입출력유니트(13 또는 14)는 데이터처리시스템과 터미널유니트, 대량저장유니트, 통신유니트 및 데이터처리시스템에 결합되어야 할 다른 유니트들간의 인터페이스를 제공하게 된다.
콘솔유니트(12 ; console unit)는 데이터처리시스템을 초기화시키고 점검 및 진단절차를 제어하기 위해 상기 중앙처리유니트(10 또는 11)에 연결되어 상기 시스템이 작동상태에 있을 때 터미널유니트로써 사용되게 된다. 또한, 상기 시스템버스(19)는 데이터처리시스템과 서브시스템간의 연결을 제공함으로써 다양한 처리요구에 편의를 도모하기 위해 데이터처리시스템의 구성을 변경시켜 주기 위한 편리한 기술을 제공하게 된다.
상기 제1도에 나타낸 것과 같은 데이터처리시스템에 있어서, 데이터 신호군의 실질적인 처리는 소위 프로그램이라 불리워지는 관련된 명령군의 제어하에 이루어지게 되는데, 이러한 명령들은 연속적으로 실행되게 된다.
제2a도에는 관련된 기술에 따른 일련의 명령을 실행시키는 내용이 도시되어 있는 바, 제1기간(To)동안에는 명령 #1이 중앙처리유니트서브시스템에 의해 실행되고, 이 제1명령이 실행된 후에는 제2기간(To)동안 다음번 명령 #2가 연속해서 중앙처리유니트서브시스템에 의해 실행되게 된다. 그리고, 이 명령 #2의 실행이 완료된 후에 중앙처리유니트서브시스템은 제3기간(To)동안 명령 #3을 실행하게 된다. 이러한 명령들의 순차적인 실행을 유지시켜 주기 위해서는 데이터처리시스템에 의한 모든 명령의 실행을 위한 간격이 소정의 기간으로 될 필요가 있다. 만약 명령의 실행시간이 다양한 길이를 가질 수 있다면, 중앙처리유니트와 데이터처리시스템의 다른 서브시스템간의 데이터신호군의 교환을 조정해 주기 위해서 복잡한 장치를 중앙처리유니트내에 포함시켜야 한다. 따라서, 일반적으로는 상기 3개의 명령을 실행시켜 주기 위한 주기는 기본시간주기의 3배로 되게 된다. 여기에서 상기 기본시간주기는 명령셋트내의 가장 긴 명령을 실행시키는데 충분한 시간으로 설정되어야 함은 물론이다.
한편, 데이터처리시스템의 보다 빠른 동작을 제공하기 위해서 하나의 명령을 복수개의 명령세그먼트로 분할시켜 실행하는 기술이 고안되어 있다. 상기 명령세그먼트들을 실행하는 장치를 적절한 방식으로 구성함으로써 명령의 실행을 병행처리방식(overlapping manner)으로 행할 수 있게 된다. 이 기술은 명령셋트의 실행을 소위 "파이프라이닝(pipe-lining)"해 준다고 불리워지고 있다.
상기와 같이 세그먼트화된 명령의 실행이 세그먼트화되지 않은 명령의 실행에 필요한 시간주기보다 더 긴 시간을 필요로 하게 되지만, 명령을 명령세그먼트로 분할시키는데 필요한 추가적인 장치로 인하여 세그먼트화되지 않은 명령에 대해 할 수 있는 것보다 더 빨리 명령스트림을 시행할 수 있게 된다. 제2b도에는 명령을 복수개의 세그먼트로 분할시키는 것에 대한 내용이 도시되어 있는 바, 각 세그먼트가 분할되어 중앙처리유니트내에서의 구성요소군을 독립적으로 동작시키는데에 관련되어 있음을 알 수가 있다.
한편, 데이터처리시스템설계에 대해 잘 알려진 원리에 따라 레지스터와 게이트들은 특정세그먼트를 실행하는 구성요소군의 동작을 분리시켜 주게 된다. 또한, 각 세그먼트에 대한 부간격(to)는 각 장치군내에서의 가능한 모든 세그먼트의 실행을 허여해 주는 충분한 기간이 되어야만 한다.
제2c도에는 파이프라이닝기술을 사용함으로써 가능한 명령시퀀스의 실행비율이 결과적으로 증가되어진 것을 나타내고 있다. 명령 #1은 상기한 기간(to)의 n배에 해당되는 새로운 기간(To)내에 완료되게 된다. [여기서, to는 각 명령세그먼트를 실행시키는데 필요한 부간격(subin-terval)이고, n은 각 명령을 실행시키는데 필요한 명령세그먼트의 수효를 나타낸다]. 상기 시퀀스에 있어서 그 다음 명령인 명령 #2는 상기한 명령 #1의 개시후 to가 지난 다음에 실행되기 시작하고, 세번째 명령인 명령 #3은 상기 명령 #2가 시작되고 나서 to후에 실행되기 시작한다.
이러한 명령들을 각각 실행시키게 되면 소요시간이 늘어나게 되겠지만, 첫번째 명령을 완료시키기 위한 최초의 기간이 지난후 간격(to)마다 한개의 명령이 완료되게 되므로, 개별적인 명령의 실행에는 긴 시간이 걸리더라도 연속적인 형태의 명령시퀀스를 실행시키는 것은 가속되게 된다.
다음으로, 제3도에는 명령시퀀스의 파이프라인화된 실행을 실현시켜주는 중앙처리유니트(10)의 구조가 도시되어 있는 바, 이 중앙처리유니트(10)는 명령서브유니트(31)와 제어유니트(32), 실행서브유니트(33) 및 캐시메모리서브유니트(34 ; 또는 로컬메모리서브유니트)로 구성되어 있다.
여기서, 상기 캐시메모리서브유니트(34)는 시스템버스(19)에 연결되어 제어유니트(32)의 제어하에 시스템버스(19)를 매개로 논리신호군을 데이터처리시스템의 다른 서브시스템으로 전송시켜 주는 것이고, 실행서브유니트(33)는 상기 제어유니트(32)의 제어하에 실행되어야 할 명령에 의해 정의되는 데이터신호군을 처리하는 것이며, 명령서브유니트(31)는 실행되어야 할 명령을 받아들여 중앙처리유니트(10)의 동작을 제어하는데 사용될 수 있는 방식으로 그 명령을 재편성(reformat)시켜 주는 것이다. 이와 같이 재편성된 명령이나 그 일부는 제어유니트(32)에 인가되어 명령에 의해 정의되는 동작을 실행하는 중앙처리유니트(10)의 논리소자들의 구성을 제공하게 된다.
이러한 구성은 매크로명령(macroinstruction)을 실행하기 위한 마이크로명령의 사용으로 이루어지게 되는 바, 상기 매크로명령은 하나의 마이크로명령에 의해 실행되거나 중앙처리유니트의 복잡성 및 유사파라미터들에 따라 복수개의 마이크로명령에 의해 실행되게 된다. 제2b도에 나타낸 바와 같이 이 마이크로명령은 복수개의 마이크로명령세그먼트로 분할되게 된다.
데이터처리시스템을 개략적으로 분할하여 블록다이어그램으로 나타낸 제3도에 있어서, 중앙처리유니트를 구성하고 있는 각각의 장치들에서 실행되는 명령의 완료시간이 동일하게 걸리게 되므로, 데이터처리시스템에 의해 실행되는 명령에 대한 명령셋트의 실행은 제2c도에 나타낸 바와 같이 되게 된다. 즉, 제1기간(to)동안에는 명령 #1이 명령서브유니트(31)에 의해 처리되고, 제2기간(to)동안에는 상기 명령 #1이 중앙처리유니트(10)의 실행서브유니트(33)에 의해 처리되고 명령 #2가 중앙처리유니트(10)의 명령서브유니트(31)에 의해 처리되며, 제3기간(to)동안에는 상기 명령 #1이 캐시메모리서브유니트(34)에 의해 처리되고 상기 명령 #2가 실행서브유니트(33)에 의해 처리되며 명령 #3이 명령서브유니트(31)에 의해 처리되게 되는데, 상기 3개의 파이프라인은 명령서브유니트내로 명령이 인가되는 한 계속 실행되게 된다.
한편, 데이터처리시스템을 상술한 바와 같이 복수개의 기능장치로 분할시키는 것은 파이프라인을 구성하는데 불충분하다. 또한 상기 각각의 기능장치들은 각 명령의 실행을 완료시키기 위하여 몇가지 필수적인 동작이 완료되어져야 하고, 이를 위해서는 여러 가지 부가적인 운용이 이루어져야만 하는 문제점이 있었다.
[발명의 개시]
본 발명의 목적은 데이터처리시스템을 복수개의 기능장치들로 분할시킬때의 불충분한 점을 개선시킨 데이터처리시스템을 제공하고자 함에 있다.
또한, 본 발명의 또 다른 목적은 명령시퀀스가 실행되고 있는 동안 시퀀스상의 인터럽션이 발생된 시점에서 이 인터럽션이 완료된 후에 명령시퀀스의 실행이 지속적으로 이루어지도록 하기 위해 트랩된 마이크로어드레스를 지배열시켜 주도록 된 데이터처리시스템을 제공하고자 함에 있다.
본 발명에 의하면, 본 발명의 또 다른 목적은 마이크로명령에 따라 디코더유니트로부터 얻어진 어드레스신호와 관계가 있는 태그신호와 더불어 인터럽션프로그램을 실행하는 그 시점에서 실행되고 있던 마이크로명령의 어드레스를 기억하기 위한 메모리유니트를 제공함으로써 이루어지게 되는 바, 태그신호가 메모리유니트내에 존재하지 않을 때에는 원래의 마이크로명령시퀀스가 메모리유니트내의 어드레스에 의해 재설정되게 됨과 더불어 기억장치에 기억된 태그필드내의 태그신호와 관련하여 디코더장치로부터 독출되는 어드레스와 명령시퀀스를 동조시켜 줌으로써 재설정될 수 있게 된다.
[발명의 최선실시 형태]
제1도, 제2도 및 제3도는 배경기술에서 설명한 바와 같다.
다음에는 제4도를 참조해서 마이크로어드레스를 재배열시켜 주기 위한 필요성에 대해 설명한다. 명령 4010이 실행되는 동안 트랩조건이 식별되게 되는 바, 일예로 4번째 세그먼트가 실행되는 동안 트랩조건이 식별되게 되는데, 여기서 명령 4011, 4012 그리고 4013순으로 그 실행이 시작되고, 그 다음에 오는 명령 4014가 실행되는 가운데 트랩조건은 명령 4011,4012 또는 4013에서 식별되지는 않게 된다. 트랩조건이 식별되는 세그먼트에 이어지는 다음 세그먼트의 초두에서 명령 5000 내지 5020으로 이루어진 트랩루틴이 실행되게 된다. 여기서, 트랩루틴의 마지막 명령 5020은 트랩루틴을 종료하는 트랩복귀명령이다. 원래의 루틴으로 복귀하여 명령을 계속적으로 실행하기 위해서는 명령 4011과 4012,4013 및 4014가 마이크로명령시퀀스로 재입력되어야 하고, 동시에 이들 명령들은 그 실행이 일단 중단되어야 한다.
다음에는 제5도에 도시된 바와 같이 구성된 본 발명의 장치에 대하여 설명한다.
제어가능한 게이트 또는 멀티플렉서(51)는 최종적으로 제어메모리유니트(56)에 인가되어야 할 어드레스신호군을 선택하는 것으로, 여기에 입력되는 신호들은 디코더선택신호와 마이크로코드차기신호(microcode next signal), 마이크로어드레스사일로(57)로부터 인가되는 신호 및 마이크로스택(55)으로부터 인가되는 신호 등이다. 상기 신호들중 마이크로코드차기신호는 통상의 마이크로프로그램시퀀스에 사용되는 어드레스신호이고, 멀티플렉서(54)를 제어하기 위한 디코더선택신호는 태그신호로서도 사용되며 사일로의 태그필드에 저장되게 된다. 또한, 마이크로스택(55)으로부터 인가되는 신호는 어드레스시퀀스를 호출하는 서브루틴신호로써 마이크로서브루틴의 실행이 완료될 때 호출용 마이크로프로그램으로 복귀시켜 주기 위한 것이다. 마이크로어드레스사일로(57)는 트랩루틴의 실행이 종료된 후에 실행프로그램을 재배열시켜 주기 위해 필요한 신호들을 홀드시켜 주는 것이고, 제어가능한 게이트 또는 멀티플렉서(51)에 의해 선택되는 신호는 마이크로어드레스 소스선택논리유니트(58)에 의해 결정되게 된다.
상기 멀티플렉서(51)로부터 출력되는 출력신호는 마이크로브랜치논리유니트(52)에 인가되고, 이 마이크로브랜치논리유니트(52)의 다른쪽 입력단에는 마이크로분기조건신호가 인가되는 바, 이들 신호들은 기설정된 알고리즘에 따라 마이크로브랜치논리유니트(52)에서 처리되게 된다. 이 마이크로브랜치논리유니트(52)로부터 출력되는 출력신호는 멀티플렉서 또는 제어가능한 게이트(53)와 마이크로어드레스사일로(57)에 인가되게 된다. 제4도에서 어드레스 4011~4014는 어느 것이나 다 선행마이크로명령에 의해 만들어진 분기조건들로부터 얻어지게 되는데, 이들 분기조건들은 세이브되는 것이 아니라 트랩루틴의 실행에 따라 재저장되는 것이기 때문에, 분기조건들로부터 얻어지는 어드레스(4011~4014)들은 마이크로브랜치논리유니트(52)에 의해 재생성하는 것보다 세이브시키거나 재배열시켜 주는 것이 바람직하다. 상기 멀티플렉서(53)에는 또한 마이크로트랩벡터 신호가 인가되고, 이 멀티플렉서(53)에 의해 선택되어 출력될 신호군은 트랩조건이 식별될 때 발생되는 글로발마이크로트랩(Gol-val Microtrap)신호의 존재여부에 따라 결정되게 된다.
상기 멀티플렉서(53)로부터 출력되는 출력신호는 마이크로스택(55)과 멀티플렉서 또는 제어가능한 게이트(54)에 인가되게 된다. 상기 멀티플렉서(54)의 다른쪽 입력단에는 또한 디코더마이크로어드레스신호가 인가되고, 이 멀티플렉서(54)의 출력단에 선택되는 신호는 디코더선택신호의 가정(assertion)에 의해 결정되게 된다. 또, 상기 멀티플렉서(54)로부터 출력되는 출력신호는 제어메모리유니트(56)에 어드레스로서 인가되고, 이 제어메모리유니트(56)로부터 출력되는 신호는 중앙처리유니트의 상태를 제어하는데 사용되게 된다.
다음에는 제6도를 참조해서 마이크로어드레스사일로(57)의 내용에 대해 설명한다.
마이크로어드레스사일로(57)의 크기는 트랩조건이 식별될때에 실행되는 마이크로명령의 수효에 따라 결정된다. 예컨대, 제4도에서는 마이크로명령 4010의 4번째 세그먼트에서 트랩조건이 식별될 때 명령 4011,4012 및 4013는 아직 실행중에 있고, 명령 4014는 그 다음에 실행되게 되므로 위치 601,602,603 및 604를 갖는 4개의 사일로가 필요하게 된다. 따라서, 트랩루틴 5000에 의해 재배치된 명령 4014의 어드레스는 명령 4011,4012,4013의 어드레스가 위치 601,602,603에 각각 세이브된 다음에 곧바로 위치 604에 세이브되게 된다. 여기서, 사일로(57)내부의 각 위치의 내용은 어드레스필드와 1비트의 태그필드로 구성되어 있으며, 상기 태그필드로는 디코더의 어드레스가 사용되는 대신에 이 어드레스와 연관관계를 갖는다.
다음에는 제7도를 참조해서 디코더선택신호를 생성하는 디코더선택신호장치에 대해 설명하면, 멀티플렉서 또는 제어가능한 게이트(71)의 한쪽 입력단에는 디코더태그필드신호가 인가되고 다른쪽 입력단에는 디코더차기신호가 인가되는 바, 트랙복귀명령과 연관된 신호인 트랩복귀신호가 존재할때에는 멀티플렉서(71)가 상기 디코더태그필드신호를 선택하게 되고, 이 트랩복귀신호가 제거된 후에는 멀티플렉서(71)가 제어메모리유니트(56)로부터의 디코더차기신호를 선택하게 되며, 일정공정이 진행된 후에는 멀티플렉서(71)로부터 디코더선택신호가 출력되어 상기 멀티플렉서(54)의 제어단자에 인가되는 한편 태그신호로써 저장될 수 있도록 마이크로어드레스사일로(57)에 입력되게 된다.
다음에는 사일로내에서 어드레스를 선택하거나 비선택하는 장치를 제8도를 참조로 하여 설명한다.
사일로(57)내에 세이브된 위치의 태그필드신호는 앤드게이트(81)의 반전입력단에 인가되고, 이 앤드게이트(81)의 다른쪽 입력단에는 마이크로복귀명령이 존재할때에 마이크로트랩복귀신호가 인가되게 된다. 그리고, 앤드게이트(81)의 출력단은 지연네트워크(82)의 입력단과 상태장치(84 ; state device)의 "세트"단에 각각 연결된다.
한편, 지연네트워크(82)의 출력단은 오아게이트(83)의 한쪽 입력단에 연결되고, 오아게이트(83)의 다른쪽 입력단에는 상기 태그필드신호가 인가되며, 이 오아게이트(83)의 출력단은 상기 상태장치(84)의 "리세트"단에 연결된다.
따라서, 마이크로트랩복귀신호와 태그필드신호가 동시에 존재할때에는 상태장치(84)가 리셋트되어 상태장치(84)의 출력단에 신호가 나타나지 않게 되는 바, 이때에는 사일로(57)가 제어메모리유니트(56)로 어드레스 신호가 인가되지 못하도록 한다. 반면에, 마이크로트랩복귀신호는 존재하나 태그필드신호가 존재하지 않을 경우에는 상태장치(84)가 세트되어 제어메모리유니트(56)를 어드레싱하는데 사용되어질 사일로(57)내의 어드레스필드를 사용하게 된다. 여기서 상태장치(84)는 지연네트워크(82)의 지연시간동안 세트되게 되는 바, 지연 시간은 사일로의 필드 깊이에 따라 정해지게 된다. 일예로 사일로내에 세이브된 4개의 마이크로어드레스를 재배열시키기 위해서는 주기가 긴 트랩복귀신호와 함께 3클럭사이클이 필요하게 된다. 이 기간동안 사일로내의 어떤 위치에 태그신호가 존재한다고 표명되게 되면, 상태장치(84)는 오아게이트(83)를 통해 리세트되게 되므로, 연속적인 재배열이 이루어지지 않게 된다.
제5도에 의거하여 위에서 설명한 것을 바탕으로 본 발명에 따른 장치의 동작에 대해 좀더 상세히 설명하면 다음과 같다.
명령이 순차적으로 실행되는 동안 제어메모리유니트(56)로부터 본 발명에 따른 장치를 제어하는 신호가 공급되게 된다. 이와같이 명령을 순차적으로 실행하는 동안 특별한 마이크로명령시퀀스를 실행하여야만 하는 경우가 발생하게 되면 특별한 명령시퀀스에 선행하여 현재 시행되고 있던 명령시퀀스는 인터럽트되어야 하고, 특별한 명령시퀀스가 완료된 후에는 원래의 명령시퀀스로 복귀되어야 한다. 이것을 트랩조건이라고 하는데, 이러한 트랩조건이 데이터처리시스템에서 식별될 때 글로발마이크로트랩(Gloval Microtrap)신호가 발생되게 되는 바, 이 글로발마이크로트랩신호는 멀티플렉서(53)에서 제어메모리유니트(56)로 트랩조건에 적합한 마이크로트랩벡터신호를 인가시킴으로써 중앙처리유니트가 트랩공정을 수행할 수 있도록 해 준다. 더우기, 이 글로발마이크로트랩신호는 트랩공정이 실행되는 동안 마이크로어드레스사일로(57)의 내용을 동결시킨다.
글로발마이크로트랩신호가 존재하지 않는 경우에는 제어메모리유니트(56)의 어드레스신호가 멀티플렉서(53,54)에 의해 결정되게 된다. 그리고, 명령시퀀스가 정상적으로 실행되는 동안에는 제어메모리유니트(56)에 인가되는 어드레스신호가 마이크로브랜치조건에 의하여 결정되게 되고, 마이크로코드차기어드레스신호 및 디코더선택신호는 마이크로스택(55)에 기억된 어드레스를 호출하는 서브루틴에 의해서 결정되게 된다.
그리고, 트랩공정으로부터 복귀되는 동안에는 인터럽트된 마이크로프로그램시퀀스를 계속 실행할 수 있게 해 주는 마이크로어드레스가 마이크로어드레스사일로(57)로부터 독출되게 되고, 중앙처리유니트가 정상적으로 동작하는 동안에는 제어메모리유니트(56)에 인가되는 어드레스신호가 태그신호에 따라 사일로(57)내에 저장되게 됨과 더불어 트랩조건이 식별되는 동안에 나타나는 중앙처리유니트의 상태를 재설정할 수 있도록 해준다.
저장된 마이크로어드레스의 재배열은 다음의 우선순위에 의거하여 이루어지게 되는 바, 제1우선순위는 디코더태그신호에 명령시퀀스를 동기시켜 주는 것으로, 이러한 동기가 필요한 이유를 설명하면 다음과 같다.
즉, 디코더선택신호는 멀티플렉서 또는 제어가능한 게이트(54)가 현재 또는 그 다음의 마이크로명령의 디코드화로부터 발생되는 기설정디코더 마이크로어드레스를 선택하도록 하고, 이와 같이 디코더의 마이크로어드레스에서 생성된 마이크로프로그램이 일단 실행되기 시작하면 사일로에 저장된 어드레스는 불필요하게 되며 심지어는 부정확하게 될 수도 있다.
또한, 디코더선택신호로부터 분할되고 사일로(57)의 태그필드부에 저장된 디코더태그신호는 사일로(57)로부터 마이크로어드레스가 재배열되는 동안 사용되어 디코더의 마이크로어드레스가 사일로(57)로부터 인가되는 어드레스에 우선하여 선택될 수 있는 적정한 시기를 결정하게 되는 것이다. 이러한 결정은 제7도에 도시된 선택장치에 의해 이루어지게 된다. 따라서, 사일로내의 디코더태그신호의 존재는 명령시퀀스가 마이크로명령시퀀스에 동기되도록 하는 바, 즉 태그신호가 사일로(57)의 제1위치 601에 존재하고, 또 이 신호가 제7도에 도시된 선택장치에 인가될 때 명령시퀀스는 선행명령(트랩복귀명령)이 디코더로부터 독출되는 차기 마이크로명령어드레스를 요구하듯이 실행되게 된다. 디코더태그신호가 제1위치(즉 602,603 또는 604)와 다른 마이크로어드레스사일로의 태그필드에 존재하게 되면 이 태그신호는 사일로내에 저장된 잔류어드레스가 이용되는 것을 방해하는데만 사용되게 된다.
선행마이크로명령에 의해 발생된 디코더차기신호는 정상적으로 재배열되는 동안 트랩조건이 발생되는 시점에 맞추어 디코더의 마이크로어드레스를 선택하도록 하여 태그신호가 사일로내에 존재하지 않을 때 마이크로어드레스사일로(57)에 저장된 모든 어드레스들을 우선순위에 따라 재배열시키게 되므로 인터럽션이 이루어진 후에 원래의 명령시퀀스로 정확히 복귀할 수 있게 되는 것이다.

Claims (10)

  1. 대응하는 사이클내에서 각각의 마이크로명령이 실행되기 이전에 저장되는 것으로 가장 최근에 검색된 시퀀스의 N개의 마이크로명령의 각각의 어드레스를 저장수단(57)에 각각 저장시키는 단계와, 소정의 트랩조건의 인식에 따라 인터럽션사이클내에서 상기 시퀀스의 다음 마이크로명령대신에 N개의 마이크로명령세그먼트로 이루어진 마이크로명령(5000~5020)으로 구성된 트랩루틴의 첫번째 마이크로명령을 실행하는 단계 및, 상기 트랩루틴이 완료될때까지 상기 인터럽션사이클 다음의 연속적인 사이클내에서 상기 트랩루틴의 다른 마이크로명령들을 실행하는 단계로 이루어져 상기 트랩루틴의 실행에 의한 마이크로명령시퀀스의 실행의 인터럽션후에 파이프라인화된 마이크로명령시퀀스(4010~4014)의 마이크로명령들에 대응하는 어드레스들을 재배열시키기 위한 방법에 있어서, 저장되어 있는 상기 마이크로명령어드레스대신에 디코더에 의해 생성되는 마이크로어드레스가 사용될 때 저장되어 있는 마이크로명령어드레스와 함께 태그신호를 저장하는 단계와, 상기 인터럽션사이클의 기간에 순서대로 저장됨과 더불어 관련된 태그신호가 존재하는 동안에 저장되는 N개의 어드레스들과, 저장되어 있는 N개의 어드레스중 어느 것에도 관련된 태그신호가 존재하지 않을 때 순서대로 재배열되는 N개의 어드레스 모두, 그리고 저장되어 있는 N개의 어드레스중 어떤 하나에 관련된 태그신호가 존재할 때 재배열되는 관련된 태그신호가 존재하는 첫번째 어드레스 다음의 어드레스들을 검사하는 단계로 이루어진 것을 특징으로 하는 파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열방법.
  2. 제1항에 있어서, 상기 저장된 N개의 어드레스중 첫번째 어드레스에 관련된 태그신호가 존재한다는 조건하에 상기 디코더로부터의 어드레스를 선택하는 단계가 더 포함된 것을 특징으로 하는 파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열방법.
  3. 제1항에 있어서, 상기 재배열된 어드레스에 대응하는 마이크로명령을 실행하는 단계가 더 포함된 것을 특징으로 하는 파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열방법.
  4. 제1항에 있어서, N은 정수로서 4인 것을 특징으로 하는 파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열방법.
  5. 마이크로명령시퀀스의 어드레스들을 연속적으로 선택하는 선택수단(51)과, 대응하는 사이클내에서 각각의 마이크로명령이 실행되기 이전에 저장되는 것으로 가장 최근에 선택된 상기 시퀀스의 N개의 마이크로명령의 각각의 어드레스를 저장하는 저장수단(57) 및, 소정의 트랩조건의 인식에 따라 인터럽션사이클내에서 상기 시퀀스의 다음 마이크로명령대신에 N개의 마이크로명령세그먼트로 이루어진 마이크로명령(5000~5020)으로 된 트랩루틴의 첫번째 마이크로명령을 실행하고 상기 트랩루틴이 완료될때까지 상기 인터럽션사이클 다음의 연속적인 사이클내에서 상기 트랩루틴의 다른 마이크로명령들을 실행하는 트랩수단(53)을 구비하고서, 상기 트랩루틴의 실행에 의한 마이크로명령시퀀스의 실행의 인터럽션후에 파이프라인화된 마이크로명령시퀀스(4010~4014)의 마이크로명령들에 대응하는 어드레스들을 재배열시키기 위한 장치에 있어서, 저장되어 있는 상기 마이크로명령어드레스대신에 디코딩수단에 의해 생성되는 마이크로어드레스가 사용될 때 저장되어 있는 마이크로명령어드레스와 함께 태그신호를 저장하는 태그수단(52)과, 상기 인터럽션사이클의 기간에 순서대로 상기 저장수단(57)에 저장됨과 더불어 관련된 태그신호가 존재하는 동안에 저장되는 N개의 어드레스들을 검사하는 검사수단(81~83) 및, 저장되어 있는 N개의 어드레스중 어느 것에도 관련된 태그신호가 존재하지 않을 때 저장되어 있는 N개의 어드레스 모두를 순서대로 재배열시키고, 저장되어 있는 N개의 어드레스중 어떤 하나에 관련된 태그신호가 존재할 때 관련된 태그신호가 존재하는 첫번째 어드레스 다음의 어드레스들만을 재배열시켜 주는 재배열수단(51,84)을 구비한 것을 특징으로 하는 파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열장치.
  6. 제5항에 있어서, 상기 저장된 N개의 어드레스중 첫번째 어드레스에 관련된 태그신호가 존재한다는 조건하에 상기 디코딩수단으로부터의 어드레스를 선택하는 선택수단(54,71)이 더 구비된 것을 특징으로 하는 파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열장치.
  7. 제5항에 있어서, 상기 재배열수단은 셋트단자와 리셋트단자를 갖추고서 상기 검사수단에 연결되어 태그신호가 존재할 때 리셋트되는 상태장치(84)와, 상기 저장수단(57)에 연결되어 상기 상태장치(84)에 의해 제어되는 상기 선택수단(51)으로 이루어진 것을 특징으로 하는 파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열장치.
  8. 제7항에 있어서, 상기 검사수단은 반전입력단자에 태그신호가 입력되고 비반전입력단자에 트랩복귀신호가 입력되는 앤드게이트(81)와, 이 앤드게이트(81)의 출력단에 연결되는 지연수단(82), 한쪽 입력단자에 상기 지연수단(82)에 의해 지연된 신호가 입력되고 다른쪽 입력단자에 태그신호가 입력되는 오아게이트(83) 및, 리셋트단자에 상기 오아게이트(83)의 출력단이 연결되고 셋트단자에 상기 앤드게이트(81)의 출력단이 연결되며 트랩복귀신호가 존재하고 태그신호가 존재하지 않을 때 셋트되는 상기 상태장치(84)로 이루어진 것을 특징으로 하는 파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열장치.
  9. 제8항에 있어서, 상기 지연수단(82)이 N-1 사이클의 지연을 제공하는 것을 특징으로 하는 파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열장치.
  10. 제5항에 있어서, N은 정수로서 4인 것을 특징으로 하는 파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열장치.
KR1019870700877A 1986-01-29 1987-01-29 파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열방법 및 그 장치 KR910001055B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US82377786A 1986-01-29 1986-01-29
US823,777 1986-01-29
PCT/US1987/000179 WO1987004820A1 (en) 1986-01-29 1987-01-29 Method and apparatus for requeueing trapped microaddresses in a pipelined data processing system

Publications (2)

Publication Number Publication Date
KR880700967A KR880700967A (ko) 1988-04-13
KR910001055B1 true KR910001055B1 (ko) 1991-02-23

Family

ID=25239682

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019870700877A KR910001055B1 (ko) 1986-01-29 1987-01-29 파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열방법 및 그 장치

Country Status (8)

Country Link
EP (1) EP0290466B1 (ko)
JP (1) JPS63503333A (ko)
KR (1) KR910001055B1 (ko)
CN (1) CN1013066B (ko)
AU (1) AU6932287A (ko)
CA (1) CA1277039C (ko)
DE (1) DE3782047T2 (ko)
WO (1) WO1987004820A1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4438492A (en) * 1980-08-01 1984-03-20 Advanced Micro Devices, Inc. Interruptable microprogram controller for microcomputer systems
US4542453A (en) * 1982-02-19 1985-09-17 Texas Instruments Incorporated Program patching in microcomputer

Also Published As

Publication number Publication date
EP0290466B1 (en) 1992-09-30
CN1013066B (zh) 1991-07-03
JPH0325810B2 (ko) 1991-04-09
KR880700967A (ko) 1988-04-13
DE3782047D1 (de) 1992-11-05
CA1277039C (en) 1990-11-27
EP0290466A1 (en) 1988-11-17
DE3782047T2 (de) 1993-05-06
WO1987004820A1 (en) 1987-08-13
CN87102174A (zh) 1987-09-09
JPS63503333A (ja) 1988-12-02
AU6932287A (en) 1987-08-25

Similar Documents

Publication Publication Date Title
US5235686A (en) Computer system having mixed macrocode and microcode
US3792441A (en) Micro-program having an overlay micro-instruction
US4594659A (en) Method and apparatus for prefetching instructions for a central execution pipeline unit
US4310880A (en) High-speed synchronous computer using pipelined registers and a two-level fixed priority circuit
US4443848A (en) Two-level priority circuit
US3953833A (en) Microprogrammable computer having a dual function secondary storage element
JPH026090B2 (ko)
EP0032515B1 (en) A method of pipeline control for a computer
US3699526A (en) Program selection based upon intrinsic characteristics of an instruction stream
US4679138A (en) Microsequencer in a data processing system using stack storage for controlling the sequencing of microroutines
KR910001055B1 (ko) 파이프라인방식으로 처리되는 데이터처리시스템에 있어서 트랩된 마이크로어드레스의 재배열방법 및 그 장치
US4794527A (en) Microprogrammed data processing system using latch circuits to access different control stores with the same instruction at different times
US3956735A (en) Sequential micro-instruction selection apparatus
US3717850A (en) Programmed data processing with facilitated transfers
US4742449A (en) Microsequencer for a data processing system using a unique trap handling technique
US4095266A (en) Data-processing system with a set of peripheral units repetitively scanned by a common control unit
WO1987004821A1 (en) Apparatus and method for execution of branch instructions
EP0500193A1 (en) Apparatus and method for execution of branch instructions
JP2758624B2 (ja) マイクロプログラムの調速方式
SU1705825A2 (ru) Микропрограммное устройство управлени
SU1109751A1 (ru) Микропрограммное устройство управлени
JPS63265342A (ja) 中央処理装置
JPH04251331A (ja) 情報処理装置
JPH02115942A (ja) 情報処理装置試験方式
JPS59212961A (ja) データ処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee