KR970011209B1 - 실행된 명령 스트림을 추적하기 위해 사용되는 신호를 발생하기 위한 회로를 포함하는 마이크로프로세서 - Google Patents
실행된 명령 스트림을 추적하기 위해 사용되는 신호를 발생하기 위한 회로를 포함하는 마이크로프로세서 Download PDFInfo
- Publication number
- KR970011209B1 KR970011209B1 KR1019940016269A KR19940016269A KR970011209B1 KR 970011209 B1 KR970011209 B1 KR 970011209B1 KR 1019940016269 A KR1019940016269 A KR 1019940016269A KR 19940016269 A KR19940016269 A KR 19940016269A KR 970011209 B1 KR970011209 B1 KR 970011209B1
- Authority
- KR
- South Korea
- Prior art keywords
- instruction
- signal
- information
- branch
- response
- Prior art date
Links
- 230000004044 response Effects 0.000 claims description 30
- 238000001514 detection method Methods 0.000 claims description 29
- 239000000872 buffer Substances 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 3
- 230000007717 exclusion Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 102100024348 Beta-adducin Human genes 0.000 description 3
- 101000689619 Homo sapiens Beta-adducin Proteins 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000011112 process operation Methods 0.000 description 2
- 102100034033 Alpha-adducin Human genes 0.000 description 1
- 101000799076 Homo sapiens Alpha-adducin Proteins 0.000 description 1
- 101000629598 Rattus norvegicus Sterol regulatory element-binding protein 1 Proteins 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
- Microcomputers (AREA)
Abstract
요약없음.
Description
제1도는 종래기술에 따른 마이크로프로세서의 예시 블럭도.
제2도는 본 발명의 실시예에 따른 마이크로프로세서의 예시 블럭도.
제3도는 제2도에 도시된 마이크로프로세서의 동작을 설명하기 위한 타이밍/상태 도표.
제4도는 제2도에 도시된 마이크로프로세서의 다른 동작을 설명하기 위한 타이밍/상태 도표.
제5도는 제2도에 도시된 마이크로프로세서의 또 다른 동작을 설명하기 위한 타이밍/상태 도표.
* 도면의 주요부분에 대한 부호의 설명
4,5,6 : 출력 버퍼10 : 캐쉬 메모리 유니트
12 : 명령 디코더14 : 브랜치 검출 유니트
15 : 명령 큐18 : 큐 제어 유니트
20 : 멀티플렉서21 : 순서 제어기
23 : 명령 실행 유니트26 : 디코더
본 발명은 마이크로프로세서에 관한 것으로, 더 상세하게는 파이프라인 방식으로 구성되고 실제적으로 실행되는 명령 스트림을 추적하기 위해 사용되는 신호를 발생하는 기능을 구비한 마이크로프로세서에 관한 것이다.
종래 기술에 따른 이러한 마이크로프로세서는 일본 공개 특허 제소61-168046호에 나타낸 것과 같이, 제1도에 도시된 회로 구성을 갖는다. 제1도에 도시된 마이크로프로세서는 명령의 스트링을 실행하기 위한 명령 실행 유니트(23), 실행될 프리페치된 명령을 임시로 저장하기 위한 명령 큐(15), 외부로부터 프리페치-무효 신호를 공급받는 신호 회선(100) 및 명령 페치 요구 신호가 외부로 출력되는 신호 회선(104)를 포함한다.
동작에서, 명령 실행 유니트(23)이 현재의 명령을 완료하면, 다음 명령을 전송하도록 명령 요구 신호(103)을 통해 큐 제어기(18)에 요구한다. 게다가 제어기(18)는 큐(15)로부터 큐 비공백 신호(101)를 수신하는 AND 게이트(106)의 출력 신호와 반전기(107)에 의해 신호(100)의 반전된 신호를 수신한다. 신호(101)은 큐(15)가 공백 상태가 아니고 적어도 하나의 명령을 저장할 때 활성 고 레벨이 된다. 신호(100)이 비활성 저 레벨인 동안, 신호(101)은 마스크되지 않으므로 신호는 제어기(18)로 전송된다. 도시되지는 않았지만, 제어기는 명령 프리페치 동작을 초기화하도록 명령하기 위해 AND 게이트(106)의 출력의 고 레벨에 응답한다. 이에 응답하여, 프리페치 유니트(도시되지 않음)는 버스가 프리페치 명령에 자유로운 동안 외부 메모리(도시되지 않음)상에 명령 프리페치 버스 사이클을 수행한다. 이렇게 프리페치된 명령은 데이타 버스(8)과 멀티플렉서(108)을 통해 큐(15)로 저정된다. AND 게이트(106)의 출력 신호가 신호(101)의 저 레벨에 의해 저 레벨로 변하면, 제어기(18)은 이로부터의 명령을 페치하고 이들 명령을 유니트(23)에 전송하기 위해 외부 메모리에 억세스하기 위한 페치 신호(104)를 발생한다. 게다가 제어기(18)은 실행 유니트(23)에 저장된 명령을 전송하도록 큐(15)에 명령하기 위해 유니트(23)으로부터 명령 요구 신호(103)에 응답한다.
프리페치-무효 신호가 외부 소스(도시되지 않음)에 의해 활성 고 레벨에서 강제로 유지되면, AND 게이트(107)의 출력 신호는 신호(101)의 레벨에 관계없이 저 레벨로 유지된다. 이것은 큐(15)가 공백 상태인 것을 의미한다. 이로써 제어기(18)은 외부 메모리로부터의 명령을 페치하는 명령 페치 사이클을 초기화하도록 신호(104)에 의해 명령한다. 상기 기술된 것처럼, 이렇게 페치된 명령은 데이타버스(8)과 멀티플렉서(108)을 통해 실행 유니트(103)으로 전송된다. 이 명령 페치 동작은 신호(100)과 그에 따라 AND 게이트(106)의 출력이 고 레벨 및 저 레벨로 각각 유지되는 한 명령 요구 신호(103)이 실행 유니트(23)에 의해 발생될 때마다 초기화된다. 그러므로 신호(104)는 명령 요구 신호(103)이 발생될 때마다 활성 레벨로 변화된다. 따라서, 신호(104)의레벨을 모니터함으로써, 실행 유니트(23)에 의해 실행된 명령 스트림을 추적될 수 있다.
그러나, 신호(104)는 신호(103)을 발생하는 실행 유니트(23)에 응답하여서만 활성 레벨이 되도록 생성된다. 신호(103)은 현재의 명령 스트림에서 각각의 명령이 발생될 때 뿐만 아니라 브랜치 어드레스에서의 브랜치 목표 명령이 취해진 브랜치에 의해 발생될 때 발생된다. 이러한 이유로, 신호(104)는 브랜치를 취함으로써 발생된 명령 스트림에서 변화를 추적하기 위해 사용될 수 없다.
그러므로 본 발명의 목적은 파이프라인 방식으로 구성된 개선된 마이크로프로세서를 제공하는 것이다.
본 발명의 또 다른 목적은 브랜치를 취함으로써 발생된 명령 스트림에서의 변화 뿐만 아니라 명령 스트림을 추적하기 위해 사용된 신호 또는 신호들을 발생하기 위한 신호 발생 회로를 갖는 마이크로프로세서를 제공하는 것이다.
본 발명에 따른 마이크로프로세서는 명령을 수신하고 각 명령의 디코드된 정보를 생성하며 이에 공급된 조건적인 브랜치 명령에 응답하여 브랜치 조건 정보를 생성하는 디코더 유니트, 기입 엔에이블(white enable) 신호에 응답하여 디코더 유니트로부터 디코드된 정보를 래치하고 판독 엔에이블(read enable) 신호에 응답하여 정보를 출력하기 위한 래치, 저장 유니트로부터 출력되어 디코드된 정보에 응답하여 데이타 프로세싱 동작을 수행하고 실행 유니트의 실행 상태를 임시로 저장하기 위한 프로그램 상태 워드 레지스터를 포함하는 실행 유니트, 브랜치가 브랜치 조건 정보와 실행 상태에 응답하여 취해지는지를 검출하고 브랜치가 취해진 것으로 검출될 때 기입 엔에이블 신호에 응답하여 검출 신호를 발생하기 위해 디코더 유니트와 상태 워드 레지스터에 결합된 브랜치 검출 유니트, 및 검출 신호에 응답하고 파이프라인 플래시(flash) 신호를 발생하는 출력 버퍼를 포함한다.
상기 언급된 구성에 따라, 브랜치에 응답하는 파이프라인 플래시 신호가 취해져, 실제로 실행된 명령 스트림을 추적하는 것이 가능하다.
이제 제2도를 참조하여, 본 발명의 실시예에 따른 마이크로프로세서는 사용자 프로그램으로서 외부 메모리(도시되지 않음)에 저장된 매크로명령중에 대응하는 하나를 각각 실행하기 위한 마이크로명령의 복수의 스트링을 저장하는 마이크로프로그램 메모리(도시되지 않음)를 포함하는 순서 제어기(21), 어드레스 버스(7)과 데이타 버스(8)을 통해 외부 메모리에 억세스하는 버스 제어 유니트, 캐쉬 메모리 유니트(10), 선택기(19와 20), 명령 디코더(12), 명령 래치(15), 래치 제어기(18), 인터럽트 요구 디코더(25), 프로그램 상태 워드 레지스터(24, PSW)를 갖는 명령 실행 유니트(23), 브랜치 검출 유니트(14), 브랜치 어드레스 발생기(50), 플래그 고장 검출 유니트(60), 입력 버퍼(29) 및 여러가지 제어 신호와 내부 버스를 통해서 도시된 것처럼 서로에 결합된 출력 버퍼(4-6)를 포함한다. 이 내부 버스는 명령 버스(11)과 내부 데이타/제어 버스(22)를 포함한다.
캐쉬 메모리 유니트(10)은 내부 메모리에 저장된 명령의 부분을 복사한다. 버스 제어 유니트(10)이 명령을 페치하기 위해 버스 사이클을 초기화하도록 요구될 때, 실행될 명령이 억세스 어드레스의 사용에 의해 캐쉬 메모리 유니트(10)내에 저장되는지를 검사한다. 저장되면, 소위 캐쉬 비트가 발생하고 명령은 캐쉬 메모리 유니트(10)으로부터 판독되고 선택기(19)를 통하여 명령 버스(11)로 전송된다. 반대로, 저장되지 않으면, 캐쉬 미스 히트가 통지되어 버스 사이클이 외부 메모리로부터 명령을 판독하도록 버스 제어 유니트(9)에 의해 수행된다. 이렇게 판독된 명령은 데이타 버스(8)과 선택기(19)를 통해 명령 버스(11)로 전송되고 나아가 캐쉬 메모리 유니트(10)에 복사된다.
버스(11)로 이렇게 전송된 명령은 명령 디코더 유니트(12)로 공급된다. 디코더 유니트(12)는 공급된 명령을 디코드하고 디코드된 명령 버스(12-1)로 디코드된 명령 정보를 생성하여 출력한다. 디코드될 명령이 조건적인 브랜치 명령인 경우에, 디코더 유니트(12)는 브랜치 조건 지정 버스(13)으로 조건적인 브랜치 명령에 포함된 브랜치 조건 정보를 생성하여 출력한다. 나아가 디코더 유니트(12)는 브랜치 어드레스 버스(12-2)로 브랜치 어드레스 정보를 생성하여 출력한다. 비조건적인 브랜치 명령인 경우에, 표시되는 정보와 브랜치 어드레스 정보는 각각 버스(13과 12-2)로 생성되고 출력된다. 각각의 조건적인 및 비조건적인 브랜치 명령의 동작 코드 정보는 버스(12-1)로 출력된다.
이렇게 버스(15)로 출력된 디코드된 명령 정보는 래치 제어 유니트(18)로부터의 기입 엔에이블 신호(WE)에 응답하여 명령 래치(15)에 래치된다. 래치(15)에서 이렇게 래치된 정보는 유니트(18)으로부터, 판독 엔에이블 신호(RE)에 응답하여 판독되고 그 다음에 순서 제어기(21)과 나아가 멀티플렉서(20)으로 공급된다. 디코드된 명령 정보는 실행될 명령이 마이크로 명령의 대응하는 스트링에 의해 또는 하드 와이어 논리 회로에 의해 수행되는지를 표시하는 소정의 비트를 포함한다. 명령이 마이크로명령에 의해 실행될 때, 디코드된 명령 정보의 선정된 비트는 제어기(21)에서 마이크로프로그램 메모리의 선행 어드레스로서 사용된다. 이에 대응하는 마이크로명령의 스트링은 그것으로부터 판독되고 제어 신호 정보로서 제어기(21)로부터 출력된다. 이때, 멀티플렉서는 제어기(21)을 선택하고 따라서 각 제어 신호 정보는 제어 버스(22)를 통해 실행 유니트(23)으로 전송된다. 각 제어 신호 정보가 다음의 마이크로명령을 표시하는 마이크로 어드레스 정보를 포함하기 때문에, 그 어드레스 정보는 도시된 것처럼 제어기(21)로 피드백된다. 반대로, 이 명령이 하드 와이어 논리 회로에 의해 실행될 경우에, 디코드된 명령 정보는 제어 신호 정보로서 선택기(20)과 제어 버스(22)를 통해 실행 유니트(23)으로 전송된다. 그러므로, 실행 유니트(23)은 매크로명령에 대응하는 바람직한 프로세싱 동작을 실행한다.
유니트(23)의 실행 상태는 PSW(24)에 임시로 저장된다. PSW(24)는 동작 결과 데이타가 부인지, 동작 결과 데이타가 0인지, 올림(carry)이 동작 결과 데이타에서 발생하는지, 오우버 플로우가 발생하는지를 나타내는 각각의 복수의 비트(모두 도시되지 않음)로 구성된다. PSW(24)는 0분할의 발생, 무효 동작의 발생, 각각 마스크가능한 인터럽트 요구의 마스크 정보, 비마스크가능한 인터럽트 요구의 발생 등을 나타내는 비트를 더 포함한다. PSW(24)의 내용은 브랜치가 취해지는지를 판단하는데 사용한다.
래치 제어 유니트(18)은 제어 버스(22)상의 제어 신호 정보에 응답하고 래치(15)에 대해 기입 엔에이블 신호 (WE)와 판독 엔에이블 신호(RE)를 생성하고 출력한다. 래치(15)가 디코더 유니트(12)로부터 디코드된 명령 정보를 저장 또는 래치하게 할 수 있는 기입 엔에이블 신호는 브랜치 디코더(14)로 하여금 브랜치 조건이 PSW(24)의 내용으로 버스(13)상에 디코드된 브랜치 조건 정보를 비교하는 것에 의해 만족되는지를 나타내는 검출 신호(14-1)을 출력하게 한다. 즉, 브랜치명령을 래치하기 위한 래치(15)의 타이밍은 검출 신호(14-1)를 출력하기 위한 브랜치 검출기(14)의 타이밍과 동기 상태에 있다. 이렇게 출력된 검출 신호는 파이프라인 프로세스의 초기화를 표시하는 제1파이프라인 플래시 신호(1. PIPEFLSHI)으로서 출력 버퍼(4)를 통해 프로세서의 외부로 공급된다. 래치(15)가 순서 제어기(21)에 저장된 명령을 판독하고 공급하게 할 수 있는 제어기(18)로부터의 판독 엔에이블 신호(RE)는 또한 명령 실행 개시 신호(3, EXEST)으로서 출력 버퍼(5)를 통해 프로세서의 외부로 출력된다.
플래그 고장 검출 유니트(60)은 조건적인 브랜치 명령에 선행하는 2개의 선행 명령중에 적어도 하나가 PSW(24)의 내용을 변화시키는지를 검출한다. 상세하게, 각각의 디코드된 명령 정보는 활성 레벨이 될 때, 명령이 가산 명령, 감산 명령, 곱셈 명령, 나눗셈 명령 등 같은 PSW(24)의 내용을 변화시킨다는 것을 표시하는 플래그 고장 비트를 갖는다. 따라서, 검출 유니트(60)은 유니트가 신호 회선(61)과 활성 레벨이 되는 신호 회선(62화 63)으로부터의 플래그 고장 비트중에 적어도 하나를 통해 조건적인 브랜치 명령의 디코딩을 표시하는 정보를 수신할 때 활성 검출 신호(64)를 생성한다. 프래그 고장 비트(63)은 현재 실행되는 명령의 플래그 고장 비트가 래치되는 래치(70)으로부터 공급된다. 활성 검출 신호(64)는 제어 버스(22)를 통해 래치 제어 유니트(18), 디코더 유니트(12) 및 버스 제어 유니트(19)로 공급된다. 결과적으로, 명령 패치 사이클에서 디코딩 사이클까지의 파이프라인 프로세상 동작은 로크되고 래치 제어 유니트(18)은 후에 기술될 2개의 파이프라인 클럭 주기동안 비활성 레벨로 기입 엔에이블 신호(WE)를 유지한다.
입력 버퍼(29)는 마스크가능한 인터럽트 요구 신호(27, INT)와 비마스크가능한 인터럽트 요구 신호(28, NMI)을 공급받고 이들을 인터럽트 디코더(25)로 전송한다. 이 디코더(25)는 공급된 인터럽트 요구 신호를 디코드하고 인터럽트 요구 버스(25-1)을 통해 인터럽트 요구의 발생을 순서 제어기(21)에 통지한다. 이에 응답하여, 순서 제어기(21)은 인터럽트 동작을 초기화하고 선택기(20)을 통해 제어 버스(22)로 인터럽트 코드를 생성하여 공급한다. 결과적으로, 인터럽트 동작이 실행된다. 나아가 순서 제어기(21)은 제외 동작의 발생에 응답하고 제어 버스(22)로 제외 코드를 생성하여 공급한다. 그러므로 제외 동작이 실행된다. 이 인터럽트와 제외 코드는 디코더(26)에 의해 디코드되고, 그 다음에 디코더의 출력은 파이프라인 프로세스의 초기화를 표시하는 제2파이프라인 플래시 신호(2, PIPEFLSHE)로서 출력 버퍼(6)를 통해 프로세서의 외부로 공급된다.
제3도를 또한 참조하여 제2도에 도시된 마이크로프로세서의 동작에 관해 설명될 것이다. 제3도는 각각의 파이프라인 단계의 상태와 가산 명령(ADD), 이동 명령(MOVE), 비동작 명령(NOP) 및 조건적인 브랜치 명령(BNZ)으로 구성되는 명령의 순서를 실행하는 과정에서 신호(WE, RE, PIPEFLSHI 및 EXEST)의 파형을 예시한다. 이 조건적인 브랜치 명령(BNZ)는 브랜치가 PSW(24)에 포함된 0 플래그 비트가 동작의 결과 데이타가 0이 아닌 것을 표시하기 위해 비활성 레벨에 있게 되도록 한다.)
상기 기술된 것처럼, 버스 제어 유니트(9)는 명령의 스트링을 페치하도록 버스 사이클을 수행한다. 수행될 명령이 캐쉬 메모리 유니트(10)에 복사되면, 외부 메모리에 대한 억세스는 수행되지 않고 캐쉬 메모리 유니트(10)에 대한 억세스가 대신 수행된다. 설명이 용이하도록, 상기 언급된 명령의 순서는 캐쉬 메모리 유니트(10)에 복사된다고가정된다. 캐쉬 메모리 유니트(10)으로부터 명령을 판독하는 억세스는 하나의 파이프라인 클럭에서 수행된다. 그러므로, 제3도에 도시된 것처럼, ADD 명령은 캐쉬 메모리 유니트(10)으로 부터 판독되어 명령 버스(11)로 전송된다. 캐쉬 메모리 유니트(10)에 대한 억세스는 워드 단위로 수행되고 따라서 명령 코드는 ADD 명령 이외의 다른 명령 코드 데이타를 포함할 수도 있다. 그러므로, 제2도에 도시되지는 않았지만, 캐쉬 메모리 유니트(10)으로부터 명령 코드 데이타를 정렬하고 디코더 유니트(25)로 필요한 명령 코드 데이타만을 공급하기 위한 정렬 유니트가 제공된다. 이 정렬 동작은 1/2의 파이프라인 클럭 주기를 필요로 한다. 따라서, 제3도에 도시된 것처럼, 디코더 유니트(25)는 캐쉬 메모리 유니트(10)에서 억세스의 초기화에서 1과 1/2의 파이프라인 클럭 주기에서 ADD 명령을 수신한다. 그러므로 디코더 유니트(12)는 ADD 명령의 디코딩을 시작한다. 디코딩 동안, 캐쉬 메모리 유니트(10)에 대한 억세스는 파이프라인 방식에 따라서 NOP 명령을 패치하도록 수행된다.
제3도에 도시된 것처럼, 래치 제어 유니트(18)은 디코드하는 ADD 명령 디코딩의 시작으로부터 1/2의 파이프라인 클럭 주기에서 기입 엔에이블 신호(WE)를 발생한다. 나아가 이 신호(WE)는 브랜치 검출 유니트(14)에 공급된다. ADD 명령이 디코드되기 때문에, 버스(13)상의 데이타는 디폴트 값을 갖는다. 따라서, 제3도에 도시된 것처럼, 신호(PIPEFLSHI)는 비활성 저 레벨에 있다. 게다가 래치 제어 유니트(18)은 기입 엔에이블 신호(WE)의 발생후에 1의 파이프라인 클럭에서 판독 엔에이블 신호(RE)를 발생한다. ADD 명령은 래치(15)로부터 판독되고 그 다음에 순서 제어기(21)에 공급된다. 게다가 신호(RE)에 응답하면, 제3도에 도시된 것처럼, 출력 버퍼(5)는 1의 파이프라인 클럭후에 실행 시작 신호(3, EXEST)을 발생한다.
순서 제어기(21)이 ADD 명령을 수신할 때, 그것은 선택기(20)과 제어 버스(22)를 통해 실행 유니트(23)에 차례로 공급되는 것에 대응하는 마이크로명령의 순서를 판독하는 것을 초기화한다. ADD 명령의 플래그 고장 비트는 래치(70)에서 래치된다. 그러므로, ADD 명령은 소스와 수신자 어드레스의 소스와 수신지 피연신자 데이타가 유니트(23)에서 산술과 논리 유니트(도시되지 않음)에 억세스되어 전송되고 결과 데이타가 소스 어드레스에 다시 기입되는 것을 실행한다. ADD 명령을 위한 동작의 스트링은 1의 파이프라인 클럭이내에 마이크로명령에 의해 수행된다. 즉, 각각의 마이크로명령을 위한 마이크로명령의 순서는 파이프라인 클럭보다 높은 주파수를 갖는 머신 클럭(도시되지 않음)에 응답하여 판독되고 실행된다.
상기 기술된 것과 유사한 방식으로, 각각의 MOVE, NOP 및 BNZ 명령의 파이프라인 프로세스 동작이 수행된다. 디코더 유니트(12)가 BNZ 명령을 수신할 때, 그것은 브랜치 검출 유니트(14)에 브랜치 조건 정보와 브랜치 어드레스 발생 유니트(50)에 브랜치 어드레스 정보를 공급한다. 이때, 각각의 MOVE와 NOP 명령이 PSW(24)의 내용을 변화시키지 않기 때문에, 따라서 그것의 각각의 플래그 고장 비트는 비활성 레벨이 된다. 따라서, 플래그 고장이 발생하지 않으므로 제3도에 도시된 것처럼 래치 제어 유니트(18)은 기입 엔에이블 신호(WE)를 발생한다. 이에 응답하여, 검출 유니트(14)는 브랜치 조건이 만족되는지 여부를 표시하는 검출 신호를 생성한다. 본 설명에서 PSW(24)의 0 비트는 ADD 명령에 의한 결과 데이타가 아닌 0이 아닌 것을 나타내는 비활성 레벨에 있다. 유니트(14)로부터의 검출 신호는 따라서 활성 고 레벨이 된다. 제3도에 도시된 것처럼, 출력 버퍼(4)는 1의 파이프라인 클럭에서 파이프라인 플래시 신호(1, PIPEFLSHI)을 발생한다. 그러므로, 파이프라인 프로레싱 동작이 조건 브랜치 명령(BNZ)에 의해 초기화되는 것은 외부로 통지된다. 래치 제어 유니트(18)이 기입 엔에이블 신호(WE)의 발생후에 1의 파이프라인 클럭에서 BNZ 명령을 위한 판독 엔에이블 신호(RE)를 생성하기 때문에, 제3도에 도시된 것처럼, 신호(1, PIPEFLSHI)은 신호(RE)와 동기하여 발생되고, 실행 시작 신호(3, EXEST)은 신호(1, PIPEFLSHI) 의 발생후에 1의 파이프라인 클럭에서 발생된다.
유니트(14)로부터 활성 브랜치 검출을 수신하는 실행 유니트(23)에 공급되는 BNZ 명령에 의해, 유니트(23)은 어드레스 발생기(50)으로부터 브랜치 어드레스에서 브랜치 목표 명령을 페치하기 위한 버스 사이클을 수행하도록 버스 제어 유니트(9)에 명령한다. 결과적으로, 제3도에 도시된 것처럼, 브랜치 목표 명령과 같은 다른 MOVE 명령은 페치되고 디코더 유니트(12)로 공급된다. 게다가 제3도에 도시된 것처럼, MOVE 명령에 연속적인 명령, ADD 명령 및 NOP 명령은 페치되고 파이프라인 방식으로 실행된다.
BNZ 명령의 브랜치 조건이 만족되지 않는 경우에, 이에 연속되는 명령(도시되지 않음)을 위한 파이프라인 프로세싱 동작은 계속된다.
제4도를 참조하여 명령의 다른 스트링에 관해 설명될 것이다. 여기에 도시된 명령의 스트링은 ADD1 명령, MOVE 명령, ADD2 명령 및 BNZ 명령으로 구성된다. ADD2 명령은 PSW(24)의 내용을 변화시킬 수 있다. 즉, 디코드된 ADD2 명령의 명령의 플래그 고장 비트는 활성 레벨이 된다. 따라서, 플래그 고장은 BNZ 명령을 디코딩하는 동안 검출 유니트(60)에 의해 검출된다. 제4도에 도시된 것처럼, 래치(15)로 BNZ 명령을 기입하기 위한 기입 엔에이블 신호(WE)는 2개의 파이프라인 클럭동안 비활성 저 레벨로 유지된다. 그 주기동안, PSW(24)의 내용은 세틀(settle)되고 기입 엔에이블 신호(WE)가 발생된다. 이에 응답하여, 검출 유니트(14)는 브랜치 조건이 만족되는지 여부를 표시하는 검출 신호(14-1)을 생성한다. 브랜치 조건이 만족되면, 파이프라인 플래시 신호(PIPEFLSHI)가 발생되고 목표 MOVE 명령은 상기 기술된 것과 같은 방식으로 페치된다.
그러므로, 조건적인 브랜치 명령이 브랜치되는 것으로 실행되거나 또는 비조건적인 브랜치 명령이 실행될 때마다, 파이프라인 플래시 신호(1, PIPEFLSHI)는 기입 엔에이블 신호(WE)와 동기하여 발생되며 실행시작 신호(EXEST)는 신호(PIPEFLSHI)후에만 발생된다. 그러므로, 실제적으로 실행되는 명령의 스트링을 추적하는 것이 가능하게 된다.
인터럽트 요구가 명령의 실행동안 발생되면, 인터럽트 디코더 유니트(25)는 인터럽트 요구를 디코드하여 버스(25-1)을 통해 인터럽트 제어 동작을 초기화하도록 순서 제어기(21)에 명령한다. 이에 응답하여, 제4도에 도시된 것처럼, 제어기(21)은 명령의 실행을 중지하고 제어 버스(22)로 인터럽트하기 위해 제어 코드의 스트링을 출력한다. 유사하게, 동작 제외의 발생에 응답하여, 순서 제어기(21)은 제어 버스(22)를 제외하기 위해 제어 코드의 스트링을 발생한다. 이 제어 코드는 실행 유니트(23)의 현재 실행 상태를 정장하기 위한 것을 포함하고 마지막 제어 코드로서 제어 점프 코드(JPM)를 포함한다. 이 제어 점프 코드(JPM)는 인터럽트 또는 동작 제외를 위한 명령의 스트링을 페치하도록 버스 제어 유니트(9)에 명령한다. 게다가 제어 점프 코드(JPM)가 공급되어 디코더(26)에 의해 디코드된다. 디코더(26)은 제어 코드 브랜치 신호의 발생을 표시하는 활성 신호를 발생한다. 제4도에 도시된 것처럼, 이 활성 신호는 파이프라인 플래시 신호(2, PIPEFLSHI)로서 외부로 출력된다. 그러므로, 신호(2, PIPEFLSHI)를 모니터하는 것에 의해, 인터럽트 또는 동작 제외가 발생되고 이미 페치된 명령이 실행되지 않는 것이 검출된다. 인터럽트 동작 또는 제외 동작을 위한 명령의 완료후에, 저장된 내용은 복귀된다. 그러므로, 중지된 프로그램 실행는 재개된다.
본 발명이 상기 실시예로 제한되는 것이 아니며 본 발명의 원리 및 배경을 벗어나지 않고서 본 발명을 여러가지로 수정 및 변형시킬 수도 있다. 예를들면, 래치(15)는복수의 버퍼 단을 갖는 명령 큐로 대치될 수 있다. 이 경우에, 명령 큐의 마지막 버퍼 단에 디코드된 명령을 기입하기 위해 사용되는 이러한 신호는 브랜치 조건이 만족되는지 여부를 표시하는 신호를 생성하도록 브랜치 검출 유니트(14)에 명령하기 위한 신호로서 사용된다. 이 명령 큐를 사용하는 것에 의해, 소위 명령 프리페치 동작은 제1도에 도시된 마이크로프로세서와 유사하게 수행된다.
Claims (6)
- 명령을 수신하고 각각의 상기 명령의 디코드된 명령 정보를 생성하며 조건적인 브랜치 명령을 수신할 때, 상기 조건적인 브랜치 명령에 의한 지정된 브랜치 조건 정보를 생성하는 명령 디코더 유니트, 기입 엔에이블 신호에 응답하여 상기 디코드된 명령 정보를 임시로 저장하고 판독 엔에이블 신호에 응답하여 상기 디코드된 명령 정보를 판독하기 위해 상기 명령 디코더 유니트에 결합된 저장 수단, 상기 저장 수단으로부터 판독되는 디코드된 명령 정보에 응답하여 명령을 실행하기 위해 상기 저장 수단에 결합되고, 실행수단의 실행 상태를 임시로 저장하기 위한 프로그램 상태 워드 레지스터를 갖는 실행 수단, 상기 명령 디코더 유니트에 위해 생성된 상기 브랜치 조건 정보가 상기 프로그램 상태 워드 레지스터에 저장된 상기 실행 상태와 부합하는지 여부를 검출하고 상기 브랜치 조건 정보가 상기 실행 상태와 부합될 때 검출 신호를 발생하도록 상기 기입 엔에이블 신호에 응답하는 브랜치 검출 유니트, 및 상기 브랜치 검출 유니트에 결합되고 상기 검출 신호에 응답하여 파이프라인 플래시 신호를 발생하는 출력 버퍼를 포함하는 것을 특징으로 하는 마이크로프로세서.
- 제1항에 있어서, 상기 프로그램 상태 워드 레지스터의 내용이 상기 조건적인 브랜치 명령전에 실행된 명령에 의해 변화될 때, 플래그 고장 정보를 발생하는 플래그 고장 검출기와 상기 기입 엔에이블 신호의 발생을 중지하기 위해 상기 플래그 고장 정보에 응답하는 수단을 더 포함하는 것을 특징으로 하는 마이크로프로세서.
- 제2항에 있어서, 상기 플래그 고장 검출기가 상기 저장 수단으로부터 판독되는 디코드된 명령 정보와 상기 실행 수단에 의해 실행된 명령의 디코드된 명령 정보에 응답하여 상기 플래그 고장 정보를 발생하는 것을 특징으로 하는 마이크로프로세서.
- 제1항에 있어서, 상기 판독 엔에이블 신호에 응답하여 실행 시작 신호를 발생하기 위한 수단을 더 포함하는 것을 특징으로 하는 마이크로프로세서.
- 실행될 명령의 스트링을 공급하기 위한 공급 수단, 각각의 상기 명령을 디코딩하고 그것의 디코드된 정보를 발생하기 위해 상기 공급 수단에 결합되고 공급된 조건적인 브랜치 명령에 응답하고 상기 조건적인 브랜치 명령에 의해 저장된 브랜치 조건 정보를 생성하는 디코딩 수단, 기입 엔에이블 신호와 판독 엔에이블 신호를 발생하는 저장 제어 유니트, 상기 기입 엔에이블 신호에 응답하여 상기 디코드된 정보를 임시로 저장하고 상기 판독 엔에이블 신호에 응답하여 상기 디코드된 정보를 판독하기 위해 상기 디코딩 수단에 결합된 저장 수단, 상기 저장 수단으로부터 판독된 상기 디코드된 정보에 응답하여 데이타 프로세싱 동작을 수행하기 위해 상기 저장 수단에 결합된 명령 실행 수단, 실행 상태를 임시로 저장하기 위해 상기 명령 실행 수단에 결합된 프로그램 상태 워드 레지스터, 상기 조건적인 브랜치 명령에 의해 지정된 브랜치 조건이 만족되는지 여부를 검출하기 위해 상기 브랜치 조건 정보와 상기 실행 상태를 수신하도록 상기 디코딩 수단과 상기 프로그램 상태 워드 레지스터에 결합되고, 상기 기입 엔에이블 신호에 응답하고 상기 브랜치 조건이 만족될 때 브랜치로 되는 신호를 발생하는 브랜치 검출 유니트, 상기 브랜치 검출 유니트에 결합되고 상기 브랜치로 되는 신호에 응답하여 제1파이프라인 플래시 신호를 발생하는 제1출력 버퍼, 및 상기 저장 제어 유니트에 결합되고 상기 판독 엔에이블 신호에 응답하여 상기 조건적인 브랜치 명령의 디코드된 정보가 상기 저장 수단으로부터 판독되고 상기 제1파이프라인 플래시 신호가 발생된 후에 발생된 상기 명령 실행 수단에 공급되는 것을 나타내는 실행 시작 신호를 발생하는 제2출력 버퍼를 포함하는 것을 특징으로 하는 마이크로프로세서.
- 제5항에 있어서, 상기 디코딩 수단으로부터 디코드된 정보가 상기 조건적인 브랜치 명령과 상기 저장 수단으로부터의 상기 명령 중의 적어도 하나일때, 플래그 고장 정보를 발생하는 플래그 고장 검출기를 더 포함하고 상기 명령 실행 수단에 의해 실행된 명령이 상기 프로그램 워드 레지스터의 내용을 변화시킬 수 있고, 상기 저장 제어 수단은 플래그 고장 정보에 응답하고 상기 기입 엔에이블 신호의 발생을 일시 중지하는 것을 특징으로 하는 마이크로프로세서.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5191789A JP2536726B2 (ja) | 1993-07-07 | 1993-07-07 | マイクロプロセッサ |
JP93-191789 | 1993-07-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR950003977A KR950003977A (ko) | 1995-02-17 |
KR970011209B1 true KR970011209B1 (ko) | 1997-07-08 |
Family
ID=16280570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019940016269A KR970011209B1 (ko) | 1993-07-07 | 1994-07-07 | 실행된 명령 스트림을 추적하기 위해 사용되는 신호를 발생하기 위한 회로를 포함하는 마이크로프로세서 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5787276A (ko) |
EP (1) | EP0633521B1 (ko) |
JP (1) | JP2536726B2 (ko) |
KR (1) | KR970011209B1 (ko) |
DE (1) | DE69421764T2 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100298552B1 (ko) * | 1997-08-25 | 2001-10-26 | 구자홍 | 명령디코딩장치 |
US6366999B1 (en) * | 1998-01-28 | 2002-04-02 | Bops, Inc. | Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution |
US9100249B2 (en) * | 2008-10-10 | 2015-08-04 | Metaplace, Inc. | System and method for providing virtual spaces for access by users via the web |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61168046A (ja) * | 1985-01-22 | 1986-07-29 | Nec Corp | マイクロプロセサ |
ATE57582T1 (de) * | 1986-03-21 | 1990-11-15 | Siemens Ag | Anordnung zur bearbeitung von sprungbefehlen innach dem fliessbandprinzip arbeitenden datenverarbeitungsanlagen. |
US4763253A (en) * | 1986-09-26 | 1988-08-09 | Motorola, Inc. | Microcomputer with change of flow |
JPH0646382B2 (ja) * | 1987-10-05 | 1994-06-15 | 日本電気株式会社 | プリフェッチキュー制御方式 |
JP2680899B2 (ja) * | 1989-08-28 | 1997-11-19 | 日本電気株式会社 | 情報処理装置及びその制御方法 |
JP2682217B2 (ja) * | 1989-08-28 | 1997-11-26 | 日本電気株式会社 | マイクロプロセッサ |
JP2591684B2 (ja) * | 1990-03-12 | 1997-03-19 | 富士通株式会社 | 実行確認装置 |
JP2682232B2 (ja) * | 1990-11-21 | 1997-11-26 | 松下電器産業株式会社 | 浮動小数点演算処理装置 |
JPH04364531A (ja) * | 1991-06-12 | 1992-12-16 | Toshiba Corp | マイクロプロセッサ |
-
1993
- 1993-07-07 JP JP5191789A patent/JP2536726B2/ja not_active Expired - Fee Related
-
1994
- 1994-07-05 EP EP94110434A patent/EP0633521B1/en not_active Expired - Lifetime
- 1994-07-05 DE DE69421764T patent/DE69421764T2/de not_active Expired - Fee Related
- 1994-07-06 US US08/267,917 patent/US5787276A/en not_active Expired - Fee Related
- 1994-07-07 KR KR1019940016269A patent/KR970011209B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JPH0728669A (ja) | 1995-01-31 |
DE69421764T2 (de) | 2000-04-06 |
US5787276A (en) | 1998-07-28 |
EP0633521A1 (en) | 1995-01-11 |
KR950003977A (ko) | 1995-02-17 |
JP2536726B2 (ja) | 1996-09-18 |
EP0633521B1 (en) | 1999-11-24 |
DE69421764D1 (de) | 1999-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0689131B1 (en) | A computer system for executing branch instructions | |
US5142634A (en) | Branch prediction | |
US5805877A (en) | Data processor with branch target address cache and method of operation | |
KR100900364B1 (ko) | 인스트럭션 실행 디바이스, 인스트럭션 실행 방법 및 컴퓨터 판독가능 메모리 매체 | |
US5761723A (en) | Data processor with branch prediction and method of operation | |
US5398321A (en) | Microcode generation for a scalable compound instruction set machine | |
US20010005882A1 (en) | Circuit and method for initiating exception routines using implicit exception checking | |
US5812809A (en) | Data processing system capable of execution of plural instructions in parallel | |
JPH03129441A (ja) | 分岐命令実行装置 | |
KR20000006302A (ko) | 브랜치제어를하는데이터처리시스템및그방법 | |
JPH1021074A (ja) | 割り込み制御方式、プロセッサ及び計算機システム | |
JP2535252B2 (ja) | 並列処理装置 | |
US5469552A (en) | Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions | |
US6189093B1 (en) | System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register | |
US5634136A (en) | Data processor and method of controlling the same | |
KR970011209B1 (ko) | 실행된 명령 스트림을 추적하기 위해 사용되는 신호를 발생하기 위한 회로를 포함하는 마이크로프로세서 | |
KR100263262B1 (ko) | 마이크로프로세서 | |
US6990569B2 (en) | Handling problematic events in a data processing apparatus | |
US5421026A (en) | Data processor for processing instruction after conditional branch instruction at high speed | |
JPH06295243A (ja) | データ処理装置 | |
US5745723A (en) | Data processing system capable of execution of plural instructions in parallel | |
JPH0212429A (ja) | ディレイド・ジャンプ対応機能付情報処理装置 | |
JPS63247833A (ja) | 条件分岐命令制御方法 | |
JPH0247725A (ja) | データ処理装置 | |
JP2001236228A (ja) | 計算機とその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
G160 | Decision to publish patent application | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20041012 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |