KR0180578B1 - 데이터처리장치 - Google Patents
데이터처리장치 Download PDFInfo
- Publication number
- KR0180578B1 KR0180578B1 KR1019950013035A KR19950013035A KR0180578B1 KR 0180578 B1 KR0180578 B1 KR 0180578B1 KR 1019950013035 A KR1019950013035 A KR 1019950013035A KR 19950013035 A KR19950013035 A KR 19950013035A KR 0180578 B1 KR0180578 B1 KR 0180578B1
- Authority
- KR
- South Korea
- Prior art keywords
- command
- address
- control signal
- signal
- unit
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims abstract description 68
- 238000000034 method Methods 0.000 claims description 23
- 230000001360 synchronised effect Effects 0.000 claims description 11
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 9
- 238000013461 design Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000013500 data storage Methods 0.000 claims 1
- 101150040844 Bin1 gene Proteins 0.000 description 27
- 238000010586 diagram Methods 0.000 description 15
- 239000000872 buffer Substances 0.000 description 13
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 11
- 230000008569 process Effects 0.000 description 7
- 230000014759 maintenance of location Effects 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 231100000241 scar Toxicity 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100310388 Arabidopsis thaliana SLK1 gene Proteins 0.000 description 1
- 101100310389 Arabidopsis thaliana SLK2 gene Proteins 0.000 description 1
- 101100063435 Caenorhabditis elegans din-1 gene Proteins 0.000 description 1
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 1
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 1
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 1
- 101100111302 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) BCK1 gene Proteins 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- 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
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- 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
- G06F9/3802—Instruction prefetching
-
- 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
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
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)
- Computing Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
특정종류의 명령이 실행가능한 2개의 명령실행부에 대해, 입력부로의 명령중 하나를 선택하여 각 명령실행부에 출력하는 명령선택회로를 배치한다. 2개의 명령버스는, 명령대기부에 접속되어 있다. 명령대기부와 각 명령선택회로의 입력부는 2개의 대기명령버스에 의해 접속되어 있다. 제어부에 의해, 명령버스에서의 명령중 어느 명령실행부에서도 실행되지 않았던 명령을 검출하고, 이 명령을 명령선입선출회로에 대기시킨 후, 명령대기버스에서 명령선택회로에 입력시키고, 다음의 선택시에 선택시킨다. 이것에 의해, 종류가 다른 명령의 병렬처리를 빠르게 행한다.
Description
제1도는 실시예 1, 2에 있어서 데이터 처리장치의 전체 구성을 나타내는 블록도.
제2도는 실시예 1에 있어서 명령 페치부의 구성을 나타내는 전기 회로도.
제3도는 실시예 1에 있어서 명령 페치부의 동작 타이밍도.
제4도는 실시예 1 의 변형예에 관한 명령 페치부의 구성을 나타내는 전기 회로도.
제5도는 실시예 2 에 관한 데이터 전송회로의 어드레스 발생수단, 클록발생수단 및 캐시 메모리의 구성을 나타내는 전기 회로도.
제6도는 실시예 2 에 있어서 각 신호의 동작 타이밍도.
제7도는 실시예 3에 있어서 배치 배선 대상이 되는 회로의 구성을 나타내는 전기 회로도.
제8도는 실시예 3 에 있어서 배치 배선 방법을 나타내는 흐름도.
제9도는 실시예 3 의 응용예에 관한 슈퍼스칼라 구성을 갖는 데이터 처리장치의 구성을 나타내는 블록도.
제10도는 종래 데이터 처리장치의 명령 페치부의 구성을 나타내는 전기 회로도.
제11도는 종래 데이터 처리장치의 동작 타이밍도.
제12도는 종래의 배치 배선 대상이 되는 회로구성을 나타내는 전기 회로도.
제13도는 종래의 배치 배선 방법을 나타내는 흐름도.
[발명의 배경]
본 발명은 마이크로프로세서 등에 이용되는 데이터 처리장치에 관한 것으로, 특히 데이터 처리속도의 고속화와 소비전력의 저감에 관한 것이다.
최근, 마이크로프로세서 등 데이터 처리장치의 고성능화의 요구에 대응하여, 복수명령을 동시에 실행하는 구성(슈퍼스칼라 구성)을 갖는 마이크로프로세서가 제안되고 있다. 이 슈퍼스칼라 구성을 갖는 마이크로프로세서에 있어서는, 매사이클의 명령캐시 액세스에서 복수의 명령이 페치되어, 복수개의 명령버스에 공급된다.
이들의 명령은 복수의 명령 실행부에 대해 선택 발행되어 실행된다. 각 명령 실행부는 특정한 종류의 명령만을 처리할 수 있는 것이 많고, 따라서 명령의 선택발행에 있어서는 페치한 명령의 종류를 판별하고, 그 종류에 따라 그것을 처리하는 것이 가능한 명령 실행부에 대해 발행할 필요가 있다.
이와 같은 종래 데이터 처리장치의 각 부 구성에 대해 이하 설명한다.
제10도는 종래 데이터 처리장치의 구성을 도시한 것으로, 특히 명령 페치부의 상세한 구성을 나타낸다. 제10도에 도시된 바와 같이, 데이터 처리장치에는 명령캐시(230)와 명령 페치부(200) 및 명령 실행부(250, 260)가 배치되어 있다.
이 예에서는 상기 명령 실행부에는 정수 연산명령을 실행하도록 구성된 제1명령실행부(250)와, 부동소수점 명령을 실행하도록 구성된 제2명령 실행부(260)가 배치되어 있다. 또, 각 명령 실행부(250, 260)로의 명령신호를 디코드하기 위한 2개의 명령디코더(251, 261)가 설치되어 있다. 그리고 상기 명령 페치부(200)에는 명령의 종류를 판별하기 위한 프리디코더(221, 222)와, 명령의 종류로부터 그 명령을 실행할 수 있는 명령 실행부를 판단하여 명령을 선택 공급하는 2개의 명령 선택회로(241, 242)가 배치되어 있다. 이 각 명령 선택회로(241, 242)는 상술한 각 명령실행부(250, 260)에 대응하여 배치되어 있다. 상기 명령캐시(230)에서는 이 각 명령 선택회로(241, 242)에 명령 IR1, IR2를 공급하기 위한 2개의 명령버스(Bin1, Bin2)가 도출되어 있고, 이 각 명령버스(Bin1, Bin2)는 각각 상기 각 명령 선택회로(241, 242)에 접속되어 있다. 더욱이, 상기 각 명령버스(Bin1, Bin2)는 각각 각 프리디코더(221, 222)의 입력측에 접속되어 있다. 그리고, 각 프리디코더(221, 222)의 출력신호 PD1, PD2는 모두 상기 각 명령 선택회로(241, 242)의 제어신호로 이용되고 있다.
제11도는 상기 제10도의 구성을 갖는 데이터 처리장치에 있어서 각 신호의 상태를 나타내는 타이밍도이다. 즉, 상기 명령캐시(230)에서 복수의 명령IR1, IR2가 공급된 경우(제10도의 타이밍 ta 참조), 프리디코더(221, 222)에서 이들 명령의 종류가 판별되고 그 종류에 따라 각 명령 선택회로(241, 242)에 제어신호 PD1, PD2가 보내진다(제10도의 타이밍 tb 참조), 각 명령 선택회로(241, 242)는 이들 명령의 종류에서 그것을 실행하는 것이 가능한 각 명령 실행부(250, 260)에 대응하는 명령 I1, I2를 선택하고, 각 명령 실행부(250, 260)의 입력측에 배치된 각 명령디코더(251, 261)에 실행명령 I1, I2를 각각 출력한다(제10도의 타이밍 tc 참조).
또 명령의 발행제어를 고속화하기 위해 명령캐시에서의 판독명령 캐시 액세스를 고속으로 행할 필요가 있지만, 종래의 데이터 처리장치에서는 아래와 같은 구성을 갖고 있다. 보통, 상기 제10도에 도시된 명령캐시(230)의 입력측에는 명령어드레스 생성부가 배치되고(도시하지 않음), 이 명령 어드레스 생성부와 명령캐시는 신호가 원활하게 처리되도록 같은 기준의 클록신호에 따라 동작하도록 구성되어있다. 그 때 명령 어드레스 생성부에서 생성된 어드레스 신호는 기준클록에 동기된 정확한 타이밍에서 출력되지만, 이 어드레스 신호가 명령캐시(230)에 도달할 때까지는 도중의 배선용량 등의 영향으로 아무래도 지연이 생긴다. 그래서 종래의 데이터 처리장치에서는 이 어드레스 신호의 지연을 상정하여 기준클록 신호를 가공하고, 어드레스 디코더의 프리챠지 타이밍, 어드레스 신호의 디코드 타이밍, 메모리 어레이부의 비트선 프리챠지 타이밍 및 판독데이터의 래치 타이밍을 제어하도록하고 있다.
더욱이, 상기 제10도의 명령 페치부(200) 등의 제어회로는 보통 셀(버퍼, 래치 등의 논리요소)의 자동 배치 배선에 의해 설계된다. 예를 들면 래치·셀의 경우, 입력신호로 데이터신호와 인에이블 신호를 구비하고 있고, 이것을 클록신호에 동기하여 동질시키는 경우, 외부에서 입력된 클록신호를 버퍼·셀 등으로 버퍼링하여 부하용량에 따른 구동능력을 갖게 하고, 제어신호(인에이블 신호)로 이용하도록 하고 있다. 제12도는 종래의 배치 배선 방법으로 설계된 제어회로의 레이아웃을 나타낸다. 또 제13도는 종래 배치배선의 개략흐름을 나타낸다. 제12도에 도시된 바와 같이 배치배선을 행하는 1개의 블록(280)내에는 2개의 제어신호 수신셀(예를 들면, 래치·셀)(281, 282)과, 2개의 제어신호 생성셀(예를 들면, 버퍼·셀)(283, 284)이 배치되어 있다. 이와 같은 회로의 배치배선은 이하와 같이 행해진다.
제13도에 도시된 바와 같이, 우선 단계 SR1에서는 개략의 배치배선을 실행한다. 다음에 단계 SR2에서는 각 제어신호 수신셀(281, 282)의 부하용량(C1, C2)을 각각 추출하고, 단계 SR3에서는 속도의 평가를 행하고, 이 속도가 설계 목표치를 만족하지 않으면, 단계 SR4로 진행하고, 제어신호 생성셀(283, 284)의 구동능력을 조정하는 즉, 다른 구동능력을 갖는 셀로 치환한다. 그리고, 상기 단계 SR1∼SR3의 단계를 반복하여 행한 후, 단계 SR3의 판별에서 최종적으로 속도가 설계목표치에 달하면, 단계 SR5로 진행되어 배치배선이 완성된다. 이 경우, 외부에서 입력되는 메인 클록CLK를 블록(280)내의 제어신호 생성셀(283, 284)에서 받고, 제어신호 수신셀(281, 282)에 제어신호를 공급하도록 하고 있다.
그러나 상기 종래의 데이터 처리장치에서는 그 각각의 점에 대해 아래와 같은 문제점이 있다.
우선, 제10도에 도시된 명령 페치부의 구성에서는 명령캐시에서 공급되는 명령신호를 프리디코드하여 다시 명령의 선택 / 발행제어에 사용하고, 명령선택을 행하는 구성으로 되어 있으므로, 명령캐시에서 명령이 공급되고 나서 그것이 명령실행부에 발행되기까지 명령의 프리디코드와 명령의 선택을 제어하지 않으면 안되고, 이 때문에 페치동작을 완료할 때까지 상당한 시간을 요구하고, 그것이 데이터처리장치의 고속동작을 저해하는 하나의 요인으로 되고 있다.
그래서 데이터 처리장치에 있어서 명령의 발행제어를 고속으로 행하기에는 명령캐시 액세스를 고속으로 행할 필요가 있다. 보통 어드레스 발생수단과 캐시메모리에는 동일한 기준클록 신호가 공급되고, 어드레스 발생수단에서 발생되는 어드레스 신호는 기준클록에 동기하여 출력되지만, 배선용량 등의 영향으로 캐시 메모리에 도달하기까지 지연이 생기는 것은 피할 수 없다. 따라서 캐시 메모리측에서는 이 어드레스 신호의 지연을 미리 상정하여 기준클록 신호를 가공하여 어드레스 디코더의 프리챠지 타이밍, 어드레스 신호의 디코드 타이밍, 메모리 어레이부의 비트선 프리챠지 타이밍, 및 판독데이터 래치 타이밍을 제어하고 있다.
그러나 어드레스 신호의 캐시 메모리 도달까지의 지연은 정확하게 예상하는 것이 어려울 뿐 아니라, 집적회로 내에 배치한 경우에는 가공정밀도의 편차나 동작 전압변동이나 동작 온도변동 등으로 예측값이 변동하는 것이 많고, 상당한 마진을 전망하여 예상하는 것이 필요해진다. 그리고, 명령캐시 액세스를 고속으로 행하기 위해서는 이 마진량을 무시할 수 없다. 예를 들면 100MHz의 사이클 타임으로 명령캐시를 액세스하는 경우, 마진량을 2ns로 가정하면, 그 값은 1사이클의 20%에 상당하게 된다. 메모리셀의 판독시간이 4ns 전후인 것과 비교해도, 사이클시간 내에서 꽤 큰 비율을 차지하게 되는 것을 알 수 있다.
또 명령페치 등의 논리부를 자동 배치배선을 이용하여 설계한 경우, 고속동작을 실현하기 위해서는, 클록신호의 구동능력 조정을 충분히 행하고, 클록스큐(신호의 도달 시간차)를 작게 할 필요가 있다. 그러나 종래의 구성을 갖는 장치의 배치배선을 행할 때, 구동능력을 조정하기 위해 논리요소(셀)를 교체하여 자동 배치배선을 재실행할 필요가 있었다. 이 경우, 구동능력을 조정하기 위해 구동능력이 다른 셀을 이용하여 재배치 배선을 행하지만, 그렇게 하면 회로의 셀배치 정보가 변화하고, 그 결과 클록신호의 구동능력이 변화해 버리기 때문에, 구동능력의 미세한 조정이 곤란하였다. 더구나 이 방법으로는 최적한 회로가 생성되기까지 반복하여 자동 배치배선을 행할 필요가 있고, 설계 공정수도 많아지게 되어 있었다. 더욱이, 미리 구동능력이 큰 버퍼·셀을 이용하여 자동 배치배선을 행하면, 클록신호의 전달시간은 작아지고, 클록스큐도 작아지지만, 이 경우는 회로면적이 증대하고, 더구나 소비전력도 커지는 불편이 생긴다.
[발명의 개요]
본 발명의 제1목적은 슈퍼스칼라구성의 데이터 처리장치에 있어서, 명령의 선택/발행제어를 선입선출회로에 기억한 명령을 이용하여 행하도록 함으로써 데이터 처리장치의 고속동작을 실현하기 위한 것이다.
본 발명의 제2목적은 캐시 메모리에 도달하는 어드레스 신호의 지연량을 고려하여 최적의 타이밍을 갖는 캐시 메모리 동작 타이밍 제어신호를 얻는 물리적 구성을 설치하는 것에 의해, 데이터 처리장치의 동작의 고속화를 도모하기 위한 것이다.
본 발명의 제3목적은 데이터 처리장치의 배치배선을 행할 때, 제어신호 생성셀과 제어신호 수신셀의 배치관계를 개선하는 것에 의해, 데이터 처리장치의 동작 고속화를 도모하기 위한 것이다.
상기 제1목적을 달성하기 위해, 본 발명의 데이터 처리장치는 명령캐시에서 공급되는 명령을 일단 기억하는 명령 대기부를 설치하고, 여기에 기억된 명령을 이용하여 명령발행을 제어하는 구성을 구비한 것이다. 구체적으로는 복수의 종류의 명령을 발생시키는 명령 발생부와, 각각 다른 종류의 명령을 실행하도록 구성된 복수의 명령 실행부와, 상기 명령 발생부에서 입력되는 명령을 선택하고 인출하여 상기 각 명령 실행부에 부여하는 명령 페치부를 구비한 데이터 처리장치를 전제로 한다. 그리고 상기 명령 페치부에 상기 각 명령 실행부에 대응하여 배치되고, 제어신호에 따라 복수의 입력부에서 입력되는 명령 중 어느 하나를 선택하여 상기 각 명령 실행부에 보내는 명령 선택회로와, 입력측이 명령버스를 통해 상기 명령 발생부에 접속되고, 출력측이 대기명령버스를 통해 상기 명령 선택회로의 입력부에 접속되는 동시에 입력된 명령을 일시적으로 기억한 후 출력하는 기능을 갖는 명령대기부와, 상기 각 명령 선택회로로부터 각 명령 실행부로 입력되는 명령을 검출하고, 명령 발생부로부터 입력된 명령 중 어느 명령 실행부에서도 실행되지 않았던 명령을 상기 명령대기부에 기억시킨 후, 상기 명령 선택회로로부터 명령 실행부로 보내도록 제어하는 제어수단을 설치하는 구성으로 한 것이다.
이 구성에 의하면, 명령 선택회로에서는 명령버스부터 입력되는 명령과 명령대기부로부터 출력되는 대기명령 버스의 명령 중 어느 하나가 선택되어 명령버스에서 공급된 명령 중 명령 선택회로에서 선택하지 않고, 실행하지 않았던 명령은 명령대기부에 기억된다. 그리고, 다음 타이밍에서 이 기억부에 기억된 명령이 새롭게 명령버스에서 공급된 명령과 동시에 각 명령 선택회로의 입력부에 공급된다.
따라서, 각 명령 실행부에서 다른 종류의 명령을 병렬적으로 실행하는 것이 가능해지고, 효율적인 명령발행이 가능해진다.
상기 제2목적을 달성하기 위해, 본 발명이 강구한 수단은 데이터 처리장치의 캐시 메모리에 입력되는 클록신호와 어드레스 신호의 동작타이밍을 물리적 구성에 의해 일치시키는 것이다. 구체적으로는 적어도 캐시 메모리를 갖는 데이터 처리장치를 전제로 한다. 그리고, 어드레스 신호를 발생시키는 어드레스 발생수단과, 상기 어드레스 발생수단에 의해 발생되는 어드레스 신호의 변화 타이밍과 일치한 타이밍에서 어드레스 동기클록신호를 발생시키도록 구성된 클록발생수단과, 클록발생수단에서 생성된 상기 어드레스 동기 클록신호를 이용하여 상기 캐시 메모리의 동작 타이밍을 제어하는 캐시 제어수단을 설치하는 구성으로 한 것이다.
이 구성에 의하면, 클록발생수단으로부터 출력되는 어드레스 신호의 변화타미밍과 일치하는 타이밍을 갖는 어드레스 동기 클록신호가 캐시 메모리에 공급된다. 따라서, 캐시 메모리내 각 부의 동작에 최적의 시간분배를 하는 것이 가능해지고, 쓸데없는 시간이 배제되어 캐시 메모리 전체의 동작사이클 타임을 최소로 할 수 있다.
상기 제3목적을 달성하기 위해, 본 발명이 강구한 수단은 데이터 처리장치의 구성 또는 그 배치 배선 방법으로 제어신호 생성셀을 논리부의 외부에 배치하는 것에 의해, 구동능력의 조정을 쉽고 확실하게 하는 것에 있다. 구체적으로는 제어신호를 생성하는 복수의 제어신호 생성셀과, 이 제어신호 생성셀로부터의 제어신호를 받는 복수의 제어신호 수신셀을 구비한 데이터 처리장치를 전제로 한다. 그리고, 상기 복수의 제어신호 수신셀을 공통의 논리부내에 배치하고, 상기 복수의 제어신호 생성셀을 상기 논리부와 분리한 제어신호 생성부에 배치한 것이다. 또, 제어신호를 생성하는 복수의 제어신호 생성셀과, 이 제어신호 생성셀에서 제어신호를 받는 복수의 제어신호 수신셀을 구비한 데이터 처리장치의 배치 배선 방법으로, 상기 복수의 제어신호 수신셀을 공통하는 논리부내에 배치 배선하는 단계와, 상기 복수의 제어신호 생성셀을 상기 논리부와 분리한 제어신호 생성부에 배치 배선하는 단계를 실시하는 방법이다.
이 구성에 의하면, 제어신호 생성셀이 논리부와 분리하여 배치되어 있으므로, 제어신호 생성셀의 구동능력 조정이 쉬워지고, 고정밀도의 제어신호 공급에 의해 데이터 처리장치의 동작이 고속화된다. 또, 제어신호 생성셀을 논리부와 분리한 부위에 배치하기 때문에 배치 배선의 과정에 있어서 제어신호 생성셀의 구동능력 조정이 용이해진다.
상술한 목적 및 기타의 목적과 본 발명의 특징 및 이점은 첨부 도면과 관련된 다음의 상세한 설명을 통해 보다 분명해 질 것이다.
[실시예]
이하, 본 발명의 데이터 처리장치의 각 실시예에 대해 도면을 참조하여 차례로 설명한다.
[실시예 1]
우선, 실시예 1 에 관한 데이터 처리장치에 대해, 제1도∼제3도를 참조하여 설명한다. 제1도에 도시된 바와 같이 데이터 처리장치에는 명령캐시 동작클록 생성부(10)와, 명령어드레스 생성부(20)와, 명령캐시(30)와, 이 명령캐시(30)에 명령버스(Bin1, Bin2)를 통해 접속되는 명령 페치부(100)와 이 명령 페치부(100)에 각각 명령발행 버스(Bout1, Bout2)를 통해 접속되는 제1, 제2 명령 실행부(50, 60)가 배치되어 있다. 상기 명령캐시 동작클록 생성부(10), 명령어드레스 생성부(20), 명령 페치부(100), 제1, 제2 명령 실행부(50, 60)는 모두 외부클록신호(CLK)에 따라 작동하도록 구성되어 있지만, 명령캐시(30)는 명령캐시동작 클록생성부(10)에서 생성된 어드레스 동기 클록신호(S10)에 따라 동작하도록 구성되어 있다. 그리고, 상기 제1 , 제2 명령 실행부(50, 60)는 다른 종류의 명령을 실행하도록 구성되어 있다. 즉, 명령어드레스 생성부(20)에서 어드레스 신호(S22)가 명령캐시(30)에 입력되면, 명령캐시(30)에서 1 사이클에 2명령의 판독이 행해지고, 이 어드레스의 명령 IR1, IR2가 명령버스(Bin1, Bin2)에 출력된다. 그리고 명령버스(Bin1, Bin2)를 통해 명령 IR1, IR2가 명령 페치부(100)에 입력되면, 명령페치부(100)에서는 이 명령 IR1, IR2를 각 명령 실행부(50, 60)에 적합한 종류로 선별하여 명령발행버스(Bout1, Bout2)를 통해 각 명령 실행부(50, 60)에 보내도록 되어 있다.
다음에 제2도에 도시된 바와 같이, 상기 명령 페치부(100)는 각 명령버스(Bin1, Bin2)로부터 입력되는 명령 IR1, IR2를 디코드하는 프리디코더(121, 122)와, 상기 각 프리디코더(121, 122)로부터의 출력 및 프리디코더(121, 122)를 통과하기 전의 각 명령버스(Bin1, Bin2)의 신호를 일시적으로 유지하고, 먼저 입력된 신호부터 우선적으로 출력하는 기능을 갖는 선입선출회로(123)와, 상기 프리디코더(121, 122)의 입력측의 각 명령버스(Bin1, Bin2)상에 설치되는 3상태 버퍼(141, 142)와, 어느 명령이 각 명령 실행부(50, 60)에 입력되었는가를 검출하고 나중 제어신호의 입력을 제어하는 명령페치 제어회로(143)와, 3개의 입력단자와 2개의 제어단자와 1개의 출력단자를 갖고, 입력되는 명령 중 어느 하나를 선택하여 상기 각 명령 실행부(50, 60)에 출력하는 명령 선택회로(151, 152)를 구비하고 있다. 상기 선입선출회로(123)의 출력단자에는 제1, 제2 대기명령버스(Bwt1, Bwt2)가 접속되어 있고, 이 각 대기명령버스(Bwt1, Bwt2)는 모두 각 명령 선택회로(151, 152)의 입력단자에 접속되어 있다. 또, 대기명령 디코드신호를 출력하는 대기명령 디코드 신호선(Bdc1, Bdc2)가 프리디코더(121, 122)의 출력측에서 선입선출회로(123)를 통해 설치되어 있고, 이 대기명령 디코드신호선(Bdc1, Bdc2)는 각 명령 선택회로(151, 152)의 제어단자에 접속되어 있다. 즉, 대기명령 디코드신호는 일단 선입선출회로(123)에 유지된 후, 다음의 타이밍에서 각 명령 선택회로(151, 152)에 출력하도록 구성되어 있다. 상기 명령 페치부(100)의 구성에 있어서 각 프리디코더(121, 122) 및 명령 선입선출회로(123)에 의해, 명령대기부(120)가 구성되고, 각 명령 선택회로(151, 152)에 의해 명령선택부(150)가 구성되고, 각 3상태 버퍼(141, 142) 및 명령페치 제어회로(143)에 의해 제어수단(140)이 구성되어 있다.
또 상기 제1명령 실행부(50)에는 제1명령디코더(51)와, 부동소수점 명령을 처리할 수 있는 제1명령처리부(52)가 배기되어 있다. 또 상기 제2명령 실행부(60)에는 제2명령디코더(61)와, 정수 연산명령을 처리하는 제2명령처리부(62)가 배치되어 있다. 그리고 상기 제1, 제2명령 선택회로(151, 152)의 출력단자와 상기 제1 ,제2명령디로더(51, 61)의 입력단자는 각각 제1, 제2명령발행버스(Bout1, Bout2)를 통해 접속되어 있다.
이상과 같이 구성된 데이터 처리장치 각 요소의 기능을 설명한다. 상기 명령캐시(30)는 1사이클에서 2 명령의 판독을 행하는 각 명령버스(Bin1, Bin2)로부터 명령 IR1, IR2를 출력한다. 그리고, 이 명령 IR1, IR2는 각 명령버스(Bin1, Bin2)로부터 프리디코더(121, 122), 명령 선입선출회로(123) 및 제1, 제2명령 선택회로(151, 152)에 입력된다. 프리디코더(121, 122)는 각각 명령 IR1, IR2를 입력하고, 공급되는 명령의 종류(정수 연산명령/부동소수점 연산명령)를 판별하여 대기명령 디코드신호 PD1, PD2를 명령 선입선출회로(123)에 출력한다. 명령 선입선출회로(123)는 3개의 엔트리를 갖는 메모리회로를 구비하고 있고, 각 엔트리에는 명령과 대응하는 대기명령 디코드신호를 기억할 수 있고, 먼저 기록한 엔트리부터 차례로 판독하도록 제어된다. 명령 선입선출회로(123)는 1 사이클에 2 개의 명령 IR1, IR2 및 대응하는 대기명령 디코드신호 PD1, PD2를 연속하는 2개의 엔트리에 기록하는 것이 가능하게 구성되어 있고, 명령페치 제어회로(143)에 의해, 이들 중 미실행의 명령 및 대응하는 대기명령 디코드신호만 기록되도록 제어된다. 또 먼저 기록된 연속하는 2개의 엔트리 명령은 각각 제1 , 제2대기명령버스(Bwt1, Bwt2)를 통해 대기명령 R1, R2로서 각 명령 선택회로(151, 152)의 입력단자에 공급되고, 이들에 대응하는 대기명령 디코드신호 QD1, QD2는 대기명령 디코드신호선(Bdc1, Bdc2)을 통해 제1, 제2명령 선택회로(151, 152)의 제어단자에 공급된다. 제1, 제2명령 선택회로(151, 152)는 양 명령버스(Bin1, Bin2) 중 한 쪽과, 제1 및 제2대기명령버스(Bwt1, Bwt2)에서 입력되는 3개의 신호 중에서 제어단자로의 대기명령 디코드신호 QD1, QD2에 따라 1개의 신호를 선택하여 각각 제1, 제2명령발행버스(Bout1, Bout2)에 출력한다. 제1명령 선택회로(151)는 대기명령 디코드신호 QD1, QD2에 의해 제어되고, 대기명령 R1, R2의 종류를 판정하고, 대기명령 R1, R2의 어느 하나가 부동소수점 연산명령이면, 그것을 선택하여 제1명령 실행부(50)로 발행시킨다. 각 대기명령 R1, R2가 모두 부동소수점 연산명령인 경우에는 대기 명령R1을 선택한다. 대기명령 R1, R2가 모두 부동소수점 명령이 아닌 경우에는 명령버스(Bin1)에서 입력되는 명령 IR1을 선택한다. 이와 같이 하여 선택된 신호는 발행명령 I1로서, 제1명령발행버스(Bout1)을 통해 제1명령 실행부(50)에 입력된다. 제2명령 선택회로(152)는 대기명령디코드신호 QD1, QD2에 의해 제어되고, 대기명령 R1, R2의 어느 하나가 정수연산명령이면 그것을 선택하고, 대기명령 R1, R2가 모두 정수 연산명령이면 대기명령 R1을 선택하고 대기명령R1을 선택하여, 대기명령 R1, R2가 모두 정수 연산명령이 아닌 경우에는 명령 IR1을 선택한다. 이와 같이하여 선택된 신호는 발행명령 I2로서, 제2명령 실행부(60)에 명령발행버스(Bout2)를 통해 출력된다.
다음으로 상기 데이터 처리장치에 있어서 구체적인 동작에 대해, 제3도의 타이밍도를 참조하여 설명한다. 최초로 명령 선입선출회로(123)의 모든 엔트리가 빈 상태에서 제1, 제2명령버스(Bin1, Bin2)에 각각 명령 IR1, IR2가 공급되는 경우(예를 들면, IR1이 정수 연산명령, IR2가 부동소수점 연산명령인 경우)에 대해 살펴본다. 최초의 클록사이클 Pe1에서는 타이밍 t1에서 제1, 제2명령버스(Bin1, Bin2)에 각각 명령 IR1, IR2가 공급되면 , 제1, 제2대기명령버스(Bwt1, Bwt2)에는 명령이 공급되지 않으므로, 제1, 제2명령 선택회로(151, 152)에서는 동시에 제1명령버스(Bin1)의 명령 IR1(정수연산명령)이 선택되어, 명령발행버스(Bout1, Bout2)에서 출력된다. 이 명령은 제2명령 실행부(60)에서는 실행되지만, 제1명령 실행부(50)에서는 적합하지 않기 때문에 무시된다. 따라서, 이 사이클 Pe1에서는 제2명령 선택회로(152)의 정수연산 발행명령I2만 실행된다(제3도의 타이밍 t2). 한편, 이 초기의 클록사이클 Pe1에 있어서, 미실행인 제2명령버스(Bin2)의 부동소수점 연산명령 IR2는 명령 선입선출회로(123)에 기록된다(제3도의 타이밍 t3).
그리고, 다음의 클록사이클 Pe2에서, 명령 선입선출회로(123)에서는 대기명령 R1이 프리디코더(122)에서는 전 사이클에서 명령 선입선출회로(123)에 기록된 부동소수점 연산명령 IR2에 대응하는 대기명령 디코드신호 QD1이 각각 출력된다(타이밍 t4). 계속해서 이 사이클에서, 제1, 제2명령버스(Bin1, Bin2)에 각각 새로운 명령 IR1, IR2가 공급된다(예를 들면, 명령 IR1및 IR2가 모두 정수 연산명령)(제3도의 타이밍 t5). 그리고, 제1명령 선택회로(151)에서는 제1대기명령버스(Bwt1)의 부동소수점 연산명령 R1이 선택되어 발행명령 I1로 제1명령 실행부(50)에 출력되는 한편, 제2명령 선택회로(152)에서는 제1명령버스(Bin1)의 정수연산명령 IR1이 선택되어 발행명령 I2로서 제2명령 실행부(60)에 출력된다.
이들 발행명령 I1, I2는 각각 제1, 제2 실행명령부(50, 60)에서 실행된다. 따라서, 이 사이클 Pe2에서는 2명령이 병렬로 실행된다(타이밍 t6). 한편, 명령 실행부(50, 60)에 입력되지 않았던 정수연산명령 IR2는 선입선출회로(123) 및 프리디코더(121, 122)에 입력되고, 타이밍 t7에서, 대기명령 디코드신호 PD1로서 프리디코더(121)로부터 출력된다.
더욱이, 다음의 클록사이클 Pe3에 있어서, 타이밍 t8에서 대기명령 디코드신호 QD1 및 정수 연산명령인 대기명령 R1이 명령 선입선출회로(123)로부터 출력된다. 그 후, 타이밍 t9에서 명령버스(Bin1, Bin2)에서 모두 부동소수점 연산명령인 IR1, IR2가 입력되었다고 하면, 타이밍 t10에서 제1 명령 선택회로(151)에서는 부동소수점 연산명령인 명령 IR1이 선택되고, 제2 명령 선택회로(152)에서는 정수연산명령인 대기명령 R1이 선택된다. 그리고 입력되지 않았던 부동소수점 연산명령 IR2는 선입선출회로(123) 및 프리디코더(122)에 입력된다.
이와 같이, 본 실시예의 데이터 처리장치에서는 명령 선입선출회로(123)에 명령이 있는 사이클에 있어서는 명령의 조합에 의해 2 명령을 병렬로 실행하는 것이 가능하다. 본 실시예에 있어서 명령 실행수는 최대 2로, 명령공급수 2를 상회하는 것은 있을 수 없으므로, 명령공급이 연속적으로 행해지는 한, 항상 1 명령이상의 명령이 명령 선입선출회로(123)에 기억되어 있다. 따라서 명령의 조합이 허락되면, 항상 2개의 명령을 병렬로 실행하는 것이 가능하다. 그 경우, 종래예에서는 명령 선택회로에서 명령의 선택 / 발행의 제어를 하기 위해 명령버스(Bin1, Bin2)의 내용을 디코드한 것을 이용한 것에 대해, 본 실시예에서는 대기명령 디코드신호 QD1, QD2를 이용한다. 명령 선입선출회로(123)의 판독시간은 명령캐시(30)에 비해 짧기 때문에 대기명령버스(Bwt1, Bwt2)의 명령은 명령버스(Bin1, Bin2)에 비해 빠른 타이밍으로 확정된다. 또 종래의 예에서는 명령버스(Bin1, Bin2)로부터의 판독·프리디코드·발행명령선택이라고 하는 일련의 동작을 1 사이클로 실행할 필요가 있었지만, 본 실시예에서는 명령버스(Bin1)에서의 판독, 명령 선입선출회로(123)에서의 판독·발행명령 선택만을 1 사이클로 행하면 된다. 따라서, 명령버스(Bin1, Bin2)의 명령 IR1, IR2의 종류를 판단하여 명령의 발행/제어를 행하는 구성에 비교하여 명령의 선택/발행을 고속으로 행하는 것이 가능해지고, 나아가서는 데이터 처리장치의 고속동작을 실현할 수 있다.
또 본 실시예에서는 명령캐시(30)는 1 클록에 2 명령을 2개의 명령버스에 공급하는 구성으로 되어 있지만, 명령버스를 1개 혹은 3개 이상으로 하여 , 각각에 명령을 공급하도록 해도 같은 동작을 실현하는 것이 가능하다.
또 상기 실시예의 명령 페치부(100)에서는 명령 선입선출회로(123)가 2 개의 대기명령버스 및 대기명령 디코드 신호선에 기억된 명령 및 신호를 출력하는 구성으로 되어 있지만, 대기명령버스 및 대기명령 디코드 신호선을 각각 1 개 또는 3개이상 설치하고, 각각에 명령 선입선출회로가 기억한 명령 및 신호를 출력하는 구성이어도 된다. 더욱이, 상기 제2도의 구성에 있어서 3상태 버퍼(141, 142)의 배치위치를 프리디코더(121, 122)와 명령 선입선출회로(123)와의 사이로 바꿔도 같은 작용을 얻을 수 있다. 이 경우, 명령버스(Bin1, Bin2) 와 선입선출회로(123)의 사이에 3상태 버퍼를 설치한다.
또한, 3상태 버퍼(141, 142)와 프리디코드회로(121, 122)와, 선입선출회로(123)를 배치하는 순서는 상기 실시예에서 설명한 구성으로 한정된 것은 아니다.
제4도는 상기 실시예 1의 변형예를 나타내고, 명령버스(Bin1, Bin2)에 있어서, 3상태 버퍼(141, 142)의 후방에 우선 선입선출회로(123)를 배치하고 다음에 프리디코더(121, 122)를 배치한 예이다. 이 경우, 대기명령 디코드신호선(Bdc1, Bdc2)은 프리디코더(121, 122)의 출력단자에 접속되고, 대기명령버스(Bwt1, Bwt2)는 선입선출회로(123)의 출력단자에 접속되어 있다. 또 3상태 버퍼(141, 142)는 명령페치 제어회로(143)에 의해 제어된다. 이 경우도, 명령대기부(120) 및 제어수단(140)의 구성이 상기 제2도에 도시된 구성과 같고, 상기 실시예 1 과 같은 효과를 얻을 수 있다.
[실시예 2]
다음에 본 발명의 실시예 2에 대해 설명한다. 본 실시예 2에 있어서도, 데이터 처리장치의 전체적인 구성은 상기 실시예 1 에 있어서 설명한 제1도에 도시된 구성과 같다. 제5도는, 제1도의 명령캐시 동작클록 생성부(10), 명령어드레스 생성부(20) 및 명령캐시(30)의 상세한 구성을 나타내는 전기 회로도이다. 제5도에 도시된 바와 같이, 상기 명령캐시 동작클록 생성부(10)는 기준클록신호 CLK와, 어드레스 유지제어신호 Sakc의 반전신호와, 캐시동작 요구신호 Scar의 논리곱을 연산하는 논리곱회로(11)를 배치하여 이루어진다. 또 명령어드레스 생성부(20)에는 어드레스 연산회로(21)와 셀렉터 및 플립플롭으로 되는 어드레스 선택회로(22)와, 플립플롭을 배치하여 이루어지는 어드레스 유지회로(23)가 설치되어 있다.
또 명령캐시(30)에는 신호지연회로(31)와, 메모리 어레이(32)와, 출력데이터 유지부(33)가 설치되어 있다.
어드레스 연산회로(21)는 입력데이터 Din1과 입력데이터 Din2를 도입하여, 어드레스 연산결과신호 S21을 출력한다. 이 어드레스 연산결과신호 S2l은 어드레스 선택회로(22)의 제1데이터입력으로 된다. 어드레스 유지회로(23)는 어드레스 선택회로(22)에서 출력되는 어드레스신호 S22를 입력으로 하고, 유지어드레스 신호 S23을 출력한다. 이 유지어드레스 신호 S23은 어드레스 선택회로(22)의 제2데이터입력으로 된다. 한편, 어드레스유지 제어신호 Sakc는 어드레스 선택회로(22)에도 입력되어, 기준클록신호 CLK는 어드레스 선택회로(22)와 어드레스 유지회로(23)에도 입력된다.
한편, 명령캐시(30)에서는 메모리 어레이(32)에 명령어드레스 생성부(20)에서의 어드레스 신호 S22가 입력되고, 신호지연회로(31)에는 명령캐시동작 클록생성부(10)에서 어드레스 동기 클록신호 S10이 입력된다. 그리고 신호지연회로(31)에서는 상기 어드레스 동기 클록신호 S10을 소정시간 지연시켜 이루어지는 지연 클록신호 S31이 출력된다. 메모리 어레이(32)는 지연 클록신호 S31에 따라 작동하여 어드레스 신호 S22에 따른 명령신호를 출력하며, 이 명령신호는 출력데이터 유지부(33)에 유지된 후, 최종적인 명령 출력신호 S33으로서 출력된다. 이 출력데이터 유지부(33)도 상기 지연클록신호 S31에 따라 작동하도록 구성되어 있다.
이상과 같이 구성된 데이터 처리장치에 대해, 이하 제6도에 의거하여 그 동작을 설명한다. 제6도는 위에서부터 순서대로 기준클록신호 CLK, 어드레스유지 제어신호 Sakc, 캐시동작 요구신호 Scar, 어드레스 연산결과신호 S21, 어드레스 신호 S22, 유지어드레스 신호 S23, 어드레스 동기클록신호 S10, 지연클록신호 S31 및 명령출력신호 S33의 상태를 나타내는 동작 타이밍이다.
어드레스 연산회로(21)는 기준클록신호 CLK가 저레벨인 동안에 어드레스연산을 완료하고, 연산된 어드레스 정보인 어드레스 연산결과 신호 S21을 출력하고(동도중의 부호 a ∼ e로 표시되는 신호), 이 신호 S21은 어드레스 선택회로(22)에 입력된다. 어드레스 선택회로(22)는 어드레스 유지제어신호 Sakc가 저레벨이면, 어드레스연산회로(21)에서의 어드레스 연산결과 신호 S21을 셀렉터로 선택하고 셀렉터에서 선택하고, 어드레스 유지제어 신호 Sakc가 고레벨이면 어드레스 유지회로(23)에서의 유지어드레스 신호 S23을 셀렉터로 선택하여, 이 신호를 플립플롭으로 유지한 후, 어드레스신호 S22로 출력한다. 어드레스 유지회로(23)는 1 / 2 사이클 전에 어드레스 선택회로(22)에서 출력된 어드레스신호 S22를 추출하여 1 사이클 동안 유지하는 동시에, 유지어드레스 신호 S23으로 출력하고, 이 유지어드레스 신호S23은 어드레스 선택회로(22)에 입력된다. 명령캐시동작 클록생성부(10)는 그 구성요소인 논리곱회로(11)에 의해 캐시동작 요구신호 Scar이 고레벨이면서 어드레스 유지제어신호 Sakc가 저레벨일 때, 어드레스 동기 클록신호 S10을 출력한다. 즉 명령캐시(30)에 대해 동작요구가 있고, 또 어드레스 신호 S22가 1 사이클 전의 값과 다른 경우에만 기준클록 신호 CLK를 어드레스 동기클록신호 S10으로 하는 것을 의미한다.
여기에서, 어드레스 신호 S22와 어드레스 동기 클록신호 S10은 기준 클록신호 CLK에서의 지연시간이 같아지도록 각각 명령어드레스 생성부(20)와 명령캐시 동작클록 생성부(10)에서 조정된다(제6도의 타이밍 t11 ∼ t13참조). 그 경우, 어드레스 신호 S22와, 어드레스 동기클록신호 S10을 동일경로를 통해 명령캐시(30)에 공급하는 것에 의해, 이들 신호의 경로에 있어서 배선부하 용량을 같은 것으로 할 수 있고, 어드레스 신호 S22 및 어드레스 동기클록신호 S10 쌍방의 타이밍을 조정하는 것이 쉽게된다.
더욱이, 어드레스 신호 S22와 어드레스 동기클록신호 S10의 배선경로를 같게 할 뿐만아니라, 배선층이 사용하는 쪽을 같게 하는 것에 의해, 이들 신호의 배선부 하용량을 같은 것으로 할 수 있고, 어드레스 신호 S22와 어드레스 동기클록신호S10 쌍방의 타이밍을 조정하는 것이 용이해진다.
또 신호지연회로(31)는 어드레스 동기클록신호 S10을 소정시간만큼 지연시켜 지연클록신호 S31로 출력한다. 이 지연클록신호S31은 메모리어레이(32)와 출력데이터 유지부(33)에 동작제어용 신호로 입력된다. 명령캐시(30)는 어드레스 신호 S22와 지연클록 신호 S31을 받아 그 동작을 개시한다. 상술한 바와 같이 어드레스신호 S22의 출력타이밍과 어드레스 동기클록신호 S10의 출력타이밍이 같기 때문에, 신호지연회로(31)에 의해 어드레스 신호 S22를 디코드하는 어드레스 디코더의 셋업시간만큼 어드레스 동기클록신호 S10을 지연시켜, 지연클록신호 S31로 메모리 어레이(32)에 부여하는 것으로, 최소 시간으로 어드레스디코드를 행하게 할 수 있다.
더욱이, 어드레스 동기클록신호 S10의 하강에지의 타이밍이나 저레벨기간의 길이를 조정하는 것에 의해 어드레스 디코더나 메모리부의 비트선 프리챠지 타이밍이나, 출력데이터 유지부(33)에 있어서 판독데이터의 래치타이밍을 제어하고, 최종적인 명령출력신호 S33의 출력타이밍을 제어하는 것이 용이해진다.
이상과 같이, 본 실시예에 의하면, 어드레스 신호를 발생시키는 어드레스 발생수단과, 어드레스 발생수단에 의해 발생되는 어드레스 신호의 변화타이밍과 일치한 타이밍을 갖는 어드레스 동기 클록신호를 발생시키는 클록발생수단과, 캐시 메모리를 구비하고, 어드레스 동기클록신호를 이용하여 캐시 메모리의 동작 타이밍을 제어하는 것에 의해, 캐시 메모리 액세스를 행할 때 낭비없는 타이밍 설계가 가능해지는 결과, 캐시 메모리 전체의 동작 사이클타임을 최소의 것으로 할 수 있다.
[실시예 3]
다음에, 실시예 3 에 대해 설명한다. 제7도는 실시예 3에 관한 데이터 처리장치의 배치배선에 있어서 레이아웃을 나타내는 도면이다. 제7도에 도시된 바와 같이, 제어회로(80)는 독립하여 설치된 제어신호 생성부(90)에 제어신호 생성셀(91, 92)이 배설된다. 한편, 제어회로(80)에는 상기 각 제어신호 생성셀(91, 92)의 제어신호를 받는 제어신호 수신셀(81, 82)이 배치되어 있다. 각 제어신호 생성셀(91, 92)은 버퍼·셀 등으로 구성되어 있고, 기준클록신호 CLK를 입력하고, 이것을 버퍼링하여 제어신호 CLK1, CLK2를 출력한다. 또 각 제어신호 생성셀(91, 92)의 레이아웃 정보는 셀을 형성하는 트랜지스터의 채널폭이나 채널길이에 의해 파라미터화되어 있고, 파라미터값을 변화시키는 것에 의해 셀의 외형을 변화시키지 않고, 그 구동능력을 변경할 수 있다. 한편, 제어신호 수신셀(81, 82)은 래치·셀 등으로 구성되고, 이 각 제어신호 수신셀(81, 82)에 제어신호 생성셀(91, 92)에서 생성된 제어신호 SLK1, SLK2가 입력되도록 되어 있다.
여기에서, 상기 제어회로(80) 및 제어신호 생성부(90)의 배치 배선 방법에 대해, 제8도의 흐름도를 참조하면서 설명한다. 우선, 단계 ST1에서 제어신호 수신셀(81, 82)을 포함한 제어회로(80)의 자동 배치배선을 실행한다. 그리고 단계 ST2에서 제어신호 수신셀(81, 82)을 포함한 제어회로(80)를 완성시키면, 단계 ST3에서 각 제어신호 수신셀(81, 82)의 부하용량C1, C2를 추출한다. 한편, 단계 ST4에서 제어신호 생성셀(91, 92)을 포함한 제어신호 생성부(90)의 논리 레이아웃을 설계한 후, 이 제어신호 생성부(90)의 자동 배치배선을 단계 ST5에서 실행한다.
그리고 단계 ST6에서 상기 각 단계에서 형성된 제어신호 수신셀(81, 82)의 부하용량과 각 제어신호 생성셀(91, 92)의 구동능력에서 속도평가를 행한다. 이 속도평가의 결과가 양호하면, 단계 ST7로 진행되고, 제어신호 생성셀(91, 92)을 포함한 제어신호 생성부의 배치배선을 완성시킨다. 한편 단계 ST6에 있어서 속도평가의 결과가 좋지 않을 때는 단계 ST8에서 또한 제어신호 생성셀(91, 92)의 구동능력을 조정하고 나서, 상술한 단계 ST7의 제어로 이행한다.
본 실시예에서는 제어신호 수신셀(81, 82)을 내장하는 제어회로(80)와 제어신호 생성셀(91, 92)을 포함한 제어신호 생성부(90)를 분리하여 설치하였으므로, 제어신호 생성셀(91, 92)의 구동능력에 의존하지 않고 제어회로(80)의 자동배선을 진행하는 것이 가능해진다. 그 경우, 제어회로(80)와 제어신호 생성부(90)를 분리하지 않고 설계하는 경우에 비해 데이터 처리장치 전체의 외형을 빨리 결정할 수 있다. 또 실제의 배치배선 정보에 의거한 제어신호의 부하용량을 이용하여 제어신호 생성셀(91, 92)의 구동능력을 결정하기 때문에 고도의 정밀한 타이밍 조정이 실현 가능하다. 더욱이, 구동능력 조정시에 제어회로(80)및 제어신호 생성부(90)의 외형은 미리 결정해 두고, 제어신호 생성셀(91, 92)의 구동능력을 조정하는 것만으로 된다. 따라서, 재배치 배선은 필요하지 않고, 또 미세한 타이밍 조정이 쉽게 실시가능해진다.
다음으로 제9도는 상기 실시예 3의 응용예를 나타내고, 슈퍼스칼라 구성을 갖는 데이터 처리장치의 전체도이다. 제9도에 도시된 바와 같이, 본 실시예에 있어서 데이터 처리장치의 구성은 상기 실시예 1, 2에 관한 데이터 처리장치의 구성과 기본적으로 같지만, 명령어드레스 생성부(20), 명령 페치부(100), 제1명령 실행부(50) 및 제2명령 실행부(60)는 본체인 제어회로에 대해 클록신호를 공급하는 제어신호 생성부를 내장하고 있다. 그리고 주클록 생성부(40)에서 발생된 기준클록신호 CLK를 받고, 각부의 제어신호 생성부에서 제어회로의 동작을 제어하는 클록신호 C20, C50, C60, C100을 개별로 생성하도록 구성되어 있다.
이와 같이 데이터 처리장치를 구성하는 것으로, 상기 각 제어회로의 제어신호 수신셀의 부하용량에 따라 제어신호 생성부의 제어신호 생성셀의 구동능력을 쉽게 조정할 수 있다. 그리고 제어신호 수신셀의 구동능력의 미세한 조정이 가능해지는 것으로, 각 블록간의 신호 타이밍 조정이 정확하고 또, 쉬워진다. 예를 들면, 제9도에 있어서, 명령캐시(30)에 입력되는 어드레스신호 S22와 어드레스 동기 클록신호 S10과의 타이밍을 정확하게 일치시킬 수 있고, 데이터 처리장치의 고속동작을 실현할 수 있다.
또 본 실시예에서는 나타내고 있지 않지만, 본 발명은 자동 배치배선을 이용하지 않는 경우에도 효과적이다.
상술한 본 발명의 바람직한 실시예들은 예시의 목적을 위해 개시된 것이며, 당업자라면 첨부된 특허청구범위에 개시된 본 발명의 사상과 범위를 통해 각종 수정, 변경, 대체 및 부가가 가능할 것이다.
Claims (22)
- 복수종류의 명령을 발생시키는 명령 발생부와, 각각 다른 종류의 명령을 실행하도록 구성된 복수의 명령 실행부와, 상기 명령 발생부에서 입력되는 명령을 선택하고 인출하여 상기 각 명령 실행부에 부여하는 명령 페치부를 구비한 데이터 처리장치에 있어서, 상기 명령 페치부는, 상기 각 명령 실행부에 대응하여 배치되고, 제어신호에 따라 복수의 입력부로부터 입력되는 명령 중 어느 하나를 선택하여 상기 각 명령 실행부로 보내는 명령 선택회로와, 입력측이 명령버스를 통해 상기 명령 발생부에 접속되고, 출력측이 대기명령버스를 통해 상기 명령 선택회로의 입력부에 접속되는 동시에, 입력된 명령을 일시적으로 기억한 후 출력하는 기능을 갖는 명령대기부와, 상기 각 명령 선택회로로부터 각 명령 실행부로 입력되는 명령을 검출하여, 명령 발생부로부터 입력된 명령 중 어느 명령 실행부에서도 실행되지 않았던 명령을 상기 명령대기부에 기억시킨 후, 상기 명령 선택회로로부터 명령 실행부로 보내도록 제어하는 제어수단으로 구성되어 있는 것을 특징으로 하는 데이터 처리장치.
- 제1항에 있어서, 상기 명령대기부는 입력된 명령의 종류를 디코드하여 대기명령 디코드신호로서 출력하는 기능을 갖고, 상기 각 명령 선택회로는 그 입력부 중 적어도 하나가 명령버스를 통해 상기 명령 발생부에 접속되고, 다른 입력부는 상기 명령대기부에 대기명령버스를 통해 접속되는 동시에, 상기 명령대기부로부터의 대기명령 디코드신호를 제어신호로서 입력하도록 구성되어 있는 것을 특징으로 하는 데이터 처리장치.
- 제2항에 있어서, 상기 제어수단은 상기 대기명령 디코드신호로서 각 명령 선택회로에 입력되는 명령 중 어느 하나가 이 명령 선택회로에 접속되는 명령 실행부에서 실행 가능한 명령에 대응하는 경우에는, 상기 대기명령버스로부터 입력되는 명령 중 이 대기명령 디코드신호에 대응하는 명령을 선택하고, 어느 명령도 상기 명령 실행부에 있어서 실행될 수 없는 경우에는, 상기 명령버스의 명령 중 첫 번째 명령을 선택하여 명령 실행부에 출력하는 기능을 갖는 것을 특징으로 하는 데이터 처리장치.
- 제3항에 있어서, 상기 제어수단은 상기 명령대기부에 상기 미실행의 명령과 그 명령종류를 기억시키도록 제어하는 것이고, 상기 명령대기부는, 기억한 순서대로 미실행명령과 그 명령의 종류를 상기 대기명령버스와 대기명령 디코드 신호선에 출력하는 기능을 갖는 것을 특징으로 하는 데이터 처리장치.
- 적어도 캐시 메모리를 배치하여 되는 데이터 처리장치에 있어서, 어드레스 신호를 발생시키는 어드레스 발생수단과, 상기 어드레스 발생수단에 의해 발생되는 어드레스 신호의 변화타이밍과 일치한 타이밍에서 어드레스 동기클록신호를 발생하도록 구성된 클록발생수단과, 상기 클록발생수단에서 생성된 상기 어드레스 동기클록신호를 이용하여, 상기 캐시 메모리의 동작타이밍을 제어하는 캐시제어수단을 구비하고 있는 것을 특징으로 하는 데이터 처리장치.
- 제5항에 있어서, 상기 어드레스 발생수단은, 어드레스를 연산하는 어드레스 연산회로와, 이 어드레스 연산회로에서 출력되는 어드레스 신호를 일정시간 동안 유지하여 출력하는 어드레스 유지회로와, 어드레스 유지제어신호에 따라, 상기 어드레스 연산회로의 출력신호 및 상기 어드레스 유지회로의 출력신호 중 어느 것인가를 선택하여, 어드레스 신호로서 출력하는 어드레스 선택회로를 구비하고, 상기 어드레스 유지회로의 동작타이밍은, 상기 어드레스 선택회로를 통해 기준클록신호에 동기한 타이밍에서 어드레스 신호를 출력하도록 조정되어 있는 것을 특징으로 하는 데이터 처리장치.
- 제5항에 있어서, 상기 클록발생수단은 기준클록신호와 어드레스유지 제어신호와 캐시동작 요구신호를 입력으로 하고, 상기 캐시동작 요구신호로부터 캐시 메모리에 대해 동작요구가 있고, 또 상기 어드레스유지 제어신호로부터 어드레스의 유지요구가 없을 때 상기 기준클록신호로부터 어드레스 동기클록신호를 생성하는 논리곱회로에 의해 구성되어 있는 것을 특징으로 하는 데이터 처리장치.
- 제5항에 있어서, 상기 캐시 메모리는 메모리 어레이와, 상기 어드레스 동기클록신호를 소정시간 지연시켜 이루어지는 지연클록신호를 생성하는 지연회로를 갖고, 상기 캐시제어수단은 상기 지연클록신호를 이용하여 상기 메모리 어레이의 동작 타이밍을 제어하는 것을 특징으로 하는 데이터 처리장치.
- 제8항에 있어서, 상기 캐시 메모리는 상기 메모리 어레이에서 출력되는 판독데이터를 유지하는 데이터 유지부를 갖고, 상기 캐시제어수단은 상기 지연클록신호를 이용하여 상기 데이터 유지부에 있어서 판독데이터의 래치 타이밍을 제어하는 것을 특징으로 하는 데이터 처리장치.
- 제5항에 있어서, 상기 클록발생수단과 어드레스 발생수단은, 상기 어드레스신호와 상기 어드레스 동기 클록신호를 서로 평행으로 연장하는 배선경로를 통해 캐시 메모리에 공급하도록 구성되어 있는 것을 특징으로 하는 데이터 처리장치.
- 제10항에 있어서, 상기 클록발생수단과 어드레스 발생수단은, 전달하는 신호의 출구 능력이 서로 같아지도록 구성되어 있는 것을 특징으로 하는 데이터 처리회로.
- 제10항에 있어서, 상기 클록발생수단과 어드레스 발생수단은, 상기 어드레스 신호와 어드레스 동기 클록신호를 같은 배선층에 형성된 경로를 통해 캐시 메모리에 공급하도록 구성되어 있는 것을 특징으로 하는 데이터 처리장치.
- 제어신호를 생성하는 복수의 제어신호 생성셀과, 이 제어신호 생성셀로부터의 제어신호를 받는 복수의 제어신호 수신셀을 구비한 데이터 처리장치에 있어서, 상기 복수의 제어신호 수신셀은 공통의 논리부내에 배치되고, 상기 복수의 제어신호 생성셀은 상기 논리부와 분리된 제어신호 생성부에 배치되어 있는 것을 특징으로 하는 데이터 처리장치.
- 제13항에 있어서, 상기 각 제어신호 생성셀의 구동능력은 대응하는 제어신호 수신셀의 부하용량에 따른 적정값으로 개별적으로 조정되어 있는 것을 특징으로 하는 데이터 처리장치.
- 제13항에 있어서, 논리부를 내장하는 복수의 블록이 설치되어 있고, 상기 각 제어신호 생성부는 각 블록마다 배치되어 있는 것을 특징으로 하는 데이터 처리장치.
- 제어신호를 생성하는 복수의 제어신호 생성셀과, 이 제어신호 생성셀로부터의 제어신호를 받는 복수의 제어신호 수신셀을 구비한 데이터 처리장치의 배선방법에 있어서, 상기 복수의 제어신호 수신셀을 공통하는 논리부내에 배치 배선하는 단계와, 상기 복수의 제어신호 생성셀을 상기 논리부와 분리한 제어신호 생성부에 배치 배선하는 단계를 구비한 것을 특징으로 하는 데이터 처리장치의 배치 배선 방법.
- 제16항에 있어서, 상기 각 제어신호 수신셀의 배치배선을 행하는 단계를 행한 후에 상기 각 제어신호 수신셀의 부하용량을 추출하는 단계와, 상기 각 제어신호 생성셀의 구동능력을 대응하는 제어신호 수신셀의 부하용량에 따른 적정값으로 조정하는 단계를 구비한 것을 특징으로 하는 데이터 처리장치의 배치 배선 방법.
- 제17항에 있어서, 상기 복수의 제어신호 생성셀의 구동능력을 조정하기 위한 설계 파라미터를 구비하고, 상기 각 제어신호 생성셀의 구동능력을 조정하는 단계에서는 상기 설계 파라미터를 변화시키는 것에 의해 제어신호 생성셀의 외형을 변화시키지 않고, 그 구동능력을 조정하는 것을 특징으로 하는 데이터 처리장치의 배치 배선 방법.
- 제18항에 있어서, 상기 설계파라미터는 각 제어신호 생성셀을 구성하는 트랜지스터의 채널폭 및 채널길이 중 적어도 어느 한쪽인 것을 특징으로 하는 데이터 처리장치의 배치 배선 방법.
- 제16항에 있어서, 미리 상기 각 제어신호 생성셀의 구동능력을 결정해 두는 것을 특징으로 하는 데이터 처리장치의 배치 배선 방법.
- 제16항에 있어서, 미리 상기 각 제어신호 수신셀의 부하용량을 예측해 두는 것을 특징으로 하는 데이터 처리장치의 배치 배선 방법.
- 제16항에 있어서, 상기 데이터 처리장치는 각각 논리부를 내장하는 복수의 블록을 구비하고 있고, 상치 제어신호 생성부를 각 블록마다 배치하도록 배치 배선하는 것을 특징으로 하는 데이터 처리장치의 배치 배선 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP94-125149 | 1994-06-07 | ||
JP12514994 | 1994-06-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960002059A KR960002059A (ko) | 1996-01-26 |
KR0180578B1 true KR0180578B1 (ko) | 1999-05-15 |
Family
ID=14903086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950013035A KR0180578B1 (ko) | 1994-06-07 | 1995-05-24 | 데이터처리장치 |
Country Status (3)
Country | Link |
---|---|
US (2) | US5829021A (ko) |
KR (1) | KR0180578B1 (ko) |
CN (2) | CN1093286C (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2792788B1 (fr) * | 1999-04-21 | 2001-07-13 | Mitsubishi Electric France | PROCEDE D'EQUILIBRAGE DU RAPPORT Eb/I DANS UN SYSTEME cdma A MULTIPLEXAGE DE SERVICE ET SYSTEME DE TELECOMMUNICATION L'UTILISANT |
JP3676257B2 (ja) * | 2001-05-21 | 2005-07-27 | 松下電器産業株式会社 | データ処理装置 |
US7606991B2 (en) * | 2006-04-06 | 2009-10-20 | Texas Instruments Incorporated | Dynamic clock switch mechanism for memories to improve performance |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6074034A (ja) * | 1983-09-30 | 1985-04-26 | Toshiba Corp | パイプライン制御方式 |
US5155817A (en) * | 1988-04-01 | 1992-10-13 | Kabushiki Kaisha Toshiba | Microprocessor |
JPH02118833A (ja) * | 1988-10-28 | 1990-05-07 | Matsushita Electric Ind Co Ltd | 命令解読装置 |
US5093908A (en) * | 1989-04-17 | 1992-03-03 | International Business Machines Corporation | Method and apparatus for executing instructions in a single sequential instruction stream in a main processor and a coprocessor |
US5402389A (en) * | 1994-03-08 | 1995-03-28 | Motorola, Inc. | Synchronous memory having parallel output data paths |
US5574937A (en) * | 1995-01-30 | 1996-11-12 | Intel Corporation | Method and apparatus for improving instruction tracing operations in a computer system |
-
1995
- 1995-05-24 KR KR1019950013035A patent/KR0180578B1/ko not_active IP Right Cessation
- 1995-06-06 US US08/470,933 patent/US5829021A/en not_active Expired - Fee Related
- 1995-06-06 CN CN95106576A patent/CN1093286C/zh not_active Expired - Fee Related
-
1997
- 1997-03-05 US US08/811,663 patent/US5754813A/en not_active Expired - Fee Related
-
2002
- 2002-04-11 CN CNB021058245A patent/CN1257451C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1115056A (zh) | 1996-01-17 |
CN1257451C (zh) | 2006-05-24 |
US5754813A (en) | 1998-05-19 |
KR960002059A (ko) | 1996-01-26 |
US5829021A (en) | 1998-10-27 |
CN1093286C (zh) | 2002-10-23 |
CN1397873A (zh) | 2003-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0726576B1 (en) | Method and apparatus for pipelining data in an integrated circuit | |
US6263448B1 (en) | Power control system for synchronous memory device | |
EP1068619B1 (en) | Semiconductor memory asynchronous pipeline | |
JP5266271B2 (ja) | 半導体メモリ非同期式パイプライン | |
US6209072B1 (en) | Source synchronous interface between master and slave using a deskew latch | |
JP2601951B2 (ja) | 半導体集積回路 | |
EP0778575A2 (en) | Dynamic random access memory | |
US5978311A (en) | Memory with combined synchronous burst and bus efficient functionality | |
EP1238339B1 (en) | Interface for a memory unit | |
JPH05204634A (ja) | マイクロプロセツサ回路 | |
KR20100005035A (ko) | 연산 유닛, 프로세서 및 프로세서 아키텍처 | |
US5761150A (en) | Synchronous memory with pipelined write operation | |
KR100312147B1 (ko) | 반도체집적회로 | |
KR0180578B1 (ko) | 데이터처리장치 | |
EP0080902A2 (en) | Semiconductor memory device | |
KR100253443B1 (ko) | 동기 반도체 메모리 회로 | |
JP3441996B2 (ja) | データ処理装置 | |
JPH11328997A (ja) | 半導体メモリ装置及びバーイン試験方法 | |
JPH0855026A (ja) | データ処理装置 | |
US6928575B2 (en) | Apparatus for controlling and supplying in phase clock signals to components of an integrated circuit with a multiprocessor architecture | |
US7552301B2 (en) | Information processing apparatus and memory access arranging method | |
JP3385167B2 (ja) | 位相調整回路を含むシステムおよび位相調整方法 | |
Rapaka et al. | A mixed-clock issue queue design for globally asynchronous, locally synchronous processor cores | |
JP2002124094A (ja) | 半導体記憶装置 | |
CN106897234A (zh) | 一种处理器以及处理器内置存储器的控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20081126 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |