KR100365759B1 - 버퍼단을포함한듀얼명령어처리복호기 - Google Patents
버퍼단을포함한듀얼명령어처리복호기 Download PDFInfo
- Publication number
- KR100365759B1 KR100365759B1 KR1019950062142A KR19950062142A KR100365759B1 KR 100365759 B1 KR100365759 B1 KR 100365759B1 KR 1019950062142 A KR1019950062142 A KR 1019950062142A KR 19950062142 A KR19950062142 A KR 19950062142A KR 100365759 B1 KR100365759 B1 KR 100365759B1
- Authority
- KR
- South Korea
- Prior art keywords
- command
- commands
- instruction
- decoder
- execution unit
- Prior art date
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 44
- 230000009977 dual effect Effects 0.000 title claims abstract description 7
- 238000000034 method Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Classifications
-
- 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/3822—Parallel decoding, e.g. parallel decode units
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
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)
Abstract
본 발명은 버퍼 단을 포함한 듀얼 명령어 처리 복호기에 관한 것으로, 메모리에서 데이타를 읽어 두개의 명령어를 구하여 메모리 어드레스를 계산하고 명령어의 경계를 알아내는 명령어 준비수단; 상기 명령어 준비 수단에서 구한 두개의 명령어(명령어1,2)를 동시 수행할 경우, 명령어1, 명령어2 경로를 통해 상기 명령어 준비수단으로부터 온 두개의 명령어를, 수행이 아닌 경우에는 하나의 경로를 통해 한개의 명령어를 연결시키는 제1 및 제2 다중화수단; 및 상기 제1 및 제2 다중화수단으로부터 나온 명령어를 저장하여 명령어 복호에 적합한 내용인가를 알 수 있도록 각각 유효 비트를 두는 제1 및 제2 버퍼; 상기 제1 및 제2 버퍼에 저장된 두개의 명령어를 읽어 동시에 수행이 가능한가를 조사하고 동시에 수행 가능할 경우에는 동시수행신호를 발생시켜 상기 명령어 준비수단과 제1 및 제2 다중화수단의 제어신호로 제공하고, 실행 유닛 제어신호를 발생하여 실행 유닛을 실행시키는 명령어 복호수단을 구비하는 것을 특징으로 한다.
Description
본 발명은 두개의 실행 유닛을 갖는 슈퍼스칼라 마이크로 프로세서의 명령어 복호기로 이용되는 버퍼 단을 포함한 듀얼 명령어 처리 복호기에 관한 것이다.
두개의 실행 유닛을 갖는 마이크로 프로세서에서는 한번에 두개의 명령어를 읽어 동시에 수행이 가능한가를 조사하고 동시에 수행이 불가능한 경우에는 두번째 명령어를 다음에 다시 읽는다. 예를 들어 수행해야할 명령어의 순서가 명령어1, 명령어2, 명령어3 이라면 처음에 명령어1과 명령어2를 읽어 동시에 수행이 가능한지를 조사하고 수행이 불가능하면 명령어1만 실행 유닛으로 보낸다. 다음 사이클에서는 명령어2와 명령어 3을 읽어 같은 방식으로 계속 수행한다. 이때 명령어2는 중복되어 읽혀지므로 명령어를 읽는데 시간적 낭비가 생긴다. 이를 해결하기 위해 동시수행 신호를 받아 다음에 복호기로 보낼 명령어를 준비한다.
상술한 바와 같이 명령어를 두번 준비하는 경우가 발생하여 시간의 낭비가 있고 특히 메모리 밴드폭이 작아 명령어 준비에 시간이 많이 걸리는 경우에는 미처 명령어를 준비하지 못해 실행 유닛은 사용 가능한데도 불구하고 명령어를 수행하지 못하는 경우가 발생할 수 있다.
상기 종래 기술에 대한 문제점을 해결하기 위해 안출된 본 발명은, 명령어 복호기의 앞단에 명령어를 임시 저장하는 버퍼단을 두어 한번 복호기 앞단까지 온 명령어를 다시 준비하는 경우를 없애, 복호기에서는 이 버퍼에서 명령어를 읽어 두개의 명령어가 동시에 처리 가능한가를 조사하고 실행 유닛을 제어하기 위한 신호를 만드는 버퍼 단을 포함한 듀얼 명령어 처리 복호기를 제공하는 데 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명은, 메모리에서 데이타를 읽어 두개의 명령어를 구하여 메모리 어드레스를 계산하고 명령어의 경계를 알아내는 명령어 준비수단; 상기 명령어 준비수단에서 구한 두개의 명령어(명령어1,2)를 동시 수행할 경우, 명령어1, 명령어2 경로를 통해 상기 명령어 준비수단으로부터 온 두개의 명령어를, 수행이 아닌 경우에는 하나의 경로를 통해 한개의 명령어를 연결시키는 제1 및 제2 다중화수단; 및 상기 제1 및 제2 다중화수단으로부터 나온 명령어를 저장하여 명령어 복호에 적합한 내용인가를 알 수 있도록 각각 유효 비트를 두는 제1및 제2 버퍼; 상기 제1 및 제2 버퍼에 저장된 두개의 명령어를 읽어 동시에 수행이가능한가를 조사하고 동시에 수행 가능할 경우에는 동시수행신호를 발생시켜 상기 명령어 준비수단과 제1 및 제2 다중화수단의 제어신호로 제공하고, 실행 유닛 제어신호를 발생하여 실행 유닛을 실행시키는 명령어 복호수단을 구비하는 것을 특징으로 한다.
이하, 첨부된 도면 제1도를 참조하여 본 발명의 일실시예를 상세히 설명한다.
제1도는 본 발명에 따른 복호기의 구성도로서, 도면에서 1은 메모리, 2는 명령어 준비회로부, 3,4는 MUX, 5,6은 버퍼, 7은 명령어 복호기, 8은 실행 유닛을 각각 나타낸다.
도면에 도시한 바와 같이, 동시수행 신호에 따른 명령어 준비 회로의 동작은 다음과 같다.
먼저, 두개의 버퍼(5,6)내의 두 명령어를 동시 수행할 경우에는 명령어 2 이후의 메모리를 액세스해서 한개의 명령어를 준비한다.
이와 같이 상기 버퍼(5,6) 내의, 명령어가 동시에 수행 가능한가의 여부에 관계없이 명령어2 이후의 메모리를 액세스하여 다음에 수행할 명령어를 준비 한다.
여기서, 동시수행 신호에 따른 버퍼(5,6) 앞단의 MUX(3,4)의 동작은 다음과 같다.
상기 버퍼(5,6) 내의 두 명령어가 동시 수행할 경우, 명령어1, 명령어2 경로를 통해 상기 명령어 준비회로부(2)로부터 온 두개의 명령어를 버퍼에 연결시킨다.
그리고, 상기 버퍼(5,6) 내의 두 명령어가 동시수행이 아닌 경우에는, 상기버퍼(5)에 저장된 내용을 상기 버퍼(5)로, 명령어1 경로를 통해 상기 명령어 준비 회로부(2)로부터 온 한개의 명령어를 상기 버퍼(6)에 연결시킨다.
상기한 설명을 기본으로 하여 각각의 구성 요소의 기능을 설명하면 다음과 같다.
명령어 준비 회로부(2)는, 명령어 어드레스를 구하고 메모리 어드레스를 발생하여 데이타를 읽어 오고 명령어의 경계를 알아내 다음에 수행할 명령어를 준비한다.
그리고, 기존에 상기 버퍼(5,6)에 있는 두 개의 명령어가 동시수행이면 두 개의 명령어를 준비하여 상기 MUX(3,4)에 연결된 명령어1, 명령어2 경로로 보낸다.
두 개의 명령어를 준비하지 못했을 경우에는 이에 대한 정보도 함께 보낸다.
또한, 기존에 상기 버퍼(5,6)에 있는 두 개의 명령어가 동시수행하지 않으면 한 개의 명령어를 준비하지 못했을 경우에는 이에 대한 정보도 함께 보낸다.
명령어1, 명령어2 경로로 보낸 명령어 이후의 명령어의 어드레스를 구하고 이에 따라 메모리를 읽어 다음에 수행할 명령어를 준비하는 상기한 기능을 반복 수행한다.
MUX(3,4)는 상기 명령어 준비 회로부(2)에서의 명령어1, 명령어2 경로와 기존의 상기 버퍼(6)로부터 명령어 정보를 받아 명령어 복호기(7)를 위해 상기 버퍼(5,6)에 연결시킨다.
상기 버퍼(5,6)에 있는 두 개의 명령어가 동시수행하면 명령어1 경로를 버퍼(5)로 명령어2 경로를 버퍼(6)로 연결시킨다.
상기 버퍼(5,6)에 있는 두 개의 명령어가 동시이 수행하지 않으면 명령어1 경로를 버퍼(6)로 상기 버퍼(5)의 내용을 버퍼(6)로 연결시킨다.
버퍼(5,6)는 상기 MUX(3,4)로부터 나온 명령어를 저장하여 상기 명령어 복호기(7)가 사용하도록 한다.
상기 MUX(5,6)에서 받은 명령어가 명령어 복호에 적합한 내용인가를 알 수 있도록 상기 버퍼(5,6)에 각각 유효 비트를 둔다.
상기 명령어 복호기(7)에서는 유효한 코드 버퍼에 대해서만 명령어 동시수행 여부를 조사한다.
듀얼 프로세싱을 위해서 복호기로 보낼 명령어를 한 사이클에 두 개씩 준비해야한다. 이때 명령어를 준비하는 데 시간이 많이 걸리는 경우에는 미처 명령어를 준비하지 못해 실행 유닛(8)은 사용 가능한데도 불구하고 명령어를 수행하지 못하는 경우가 발생할 수 있다. 특히, 준비된 두 개의 명령어가 복호기에서 동시수행되지못할 경우에는 한번 준비했던 같은 명령어를 다시 준비해야 하는데 이럴 경우에는 문제가 더욱 심각해진다.
따라서, 본 발명은 명령어를 준비하는 부분의 성능이 다소 떨어지더라도 복호는 이에 종속되지 않고 가능한 최대한의 명령어를 실행 유닛(8)에 공급할 수 있도록 한다.
상기한 상세 설명을 정리하면 다음과 같다.
상기 명령어 복호기(7)의 앞단에는 명령어를 준비하는 회로를 두며, 상기 명령어 준비회로부(2)는 상기 메모리(1)에서 데이타를 읽어 두개의 명령어를 구하여복호기로 넘겨 준다. 이를 위해 상기 명령어준비 회로부(2)는 메모리 어드레스를 계산하고 명령어의 경계를 알아내는 기능을 가지고 있다.
상기 명령어 준비 회로부(2)에서 구한 두개의 명령어는 MUX(3,4)를 통해 버퍼(5,6)에 저장된다.
상기 명령어 복호기(7)에서는 버퍼(5,6)에 저장된 두개의 명령어를 읽어 동시에 수행이 가능한가를 조사하고 동시에 수행 가능할 경우에는 동시수행신호를 발생시킨다. 두 명령어가 동시에 수행 가능할 경우는 명령어 사이의 종속관계가 실행 리소스가 충분할 경우이다.
동시수행 신호는 상기 명령어 준비 회로부(2)와 버퍼(5,6) 앞단의 두 MUX(3,4)의 제어신호로 사용된다.
상기와 같은 본 발명은, 명령어 복호기의 앞단에 명령어를 임시 저장하는 버퍼단을 두어 한번 복호기 앞단까지 온 명령어를 다시 준비하는 경우를 없애는 효과가 있다.
제 1 도는 본 발명에 따른 복호기의 구성도.
* 도면의 주요 부분에 대한 부호의 설명
1 : 메모리 2 : 명령어 준비회로부
3,4 : MUX 5,6 : 버퍼
7 : 명령어 복호기 8 : 실행 유닛
Claims (2)
- 메모리에서 메모리 어드레스를 계산하여 데이타를 읽어, 명령어의 경계를 알아내 두 개의 명령어를 구하는 명령어 준비수단;상기 명령어 준비수단에서 구한 두개의 명령어(명령어1,2)를 동시 수행할 경우, 제 1 명령어경로, 제2 명령어경로를 통해 상기 명령어 준비수단으로부터 온 두 개의 명령어를 각각 입력받으며, 동시 수행이 아닌 경우에는 상기 제1 및 제2 명령어 경로중 하나의 경로를 연결시켜 한 개의 명령어를 전달하는 제1 및 제2 다중화수단;상기 제1 및 제2 다중화수단으로부터 나온 명령어를 각각 저장하여 명령어 복호에 적합한 내용인가를 알 수 있도록 유효 비트를 두는 제1 및 제2 버퍼; 및상기 제1 및 제2 버퍼에 저장된 두 개의 명령어를 읽어 동시에 실행유닛이 수행 가능한가를 조사하고 동시에 수행 가능할 경우에는 동시수행신호를 발생시켜 상기 명령어 준비수단과 제1 및 제2 다중화수단의 제어신호로 제공하고, 실행 유닛 제어신호를 발생하여 실행 유닛을 실행시키는 명령어 복호수단을 구비하는 것을 특징으로 하는 버퍼 단을 포함한 듀얼 명령어 처리 복호기.
- 제 1 항에 있어서, 상기 제1 및 제2 버퍼에 저장된 명령어는 듀얼 프로세싱을 위하여 한 사이클에 두 개씩 전송되는 것을 특징으로 하는 버퍼 단을 포함한 듀얼 명령어 처리 복호기.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950062142A KR100365759B1 (ko) | 1995-12-28 | 1995-12-28 | 버퍼단을포함한듀얼명령어처리복호기 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950062142A KR100365759B1 (ko) | 1995-12-28 | 1995-12-28 | 버퍼단을포함한듀얼명령어처리복호기 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970049719A KR970049719A (ko) | 1997-07-29 |
KR100365759B1 true KR100365759B1 (ko) | 2003-03-03 |
Family
ID=37491064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950062142A KR100365759B1 (ko) | 1995-12-28 | 1995-12-28 | 버퍼단을포함한듀얼명령어처리복호기 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100365759B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101502421B1 (ko) | 2013-07-31 | 2015-03-16 | 한국항공우주연구원 | 시험 및 운영 절차 동시 수행 방법 및 시스템 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR950025536A (ko) * | 1994-02-28 | 1995-09-18 | 김주용 | 분기 명령 처리를 위한 명령어 공급장치 |
-
1995
- 1995-12-28 KR KR1019950062142A patent/KR100365759B1/ko not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR950025536A (ko) * | 1994-02-28 | 1995-09-18 | 김주용 | 분기 명령 처리를 위한 명령어 공급장치 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101502421B1 (ko) | 2013-07-31 | 2015-03-16 | 한국항공우주연구원 | 시험 및 운영 절차 동시 수행 방법 및 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR970049719A (ko) | 1997-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5608867A (en) | Debugging system using virtual storage means, a normal bus cycle and a debugging bus cycle | |
US5132973A (en) | Testable embedded RAM arrays for bus transaction buffering | |
KR100365759B1 (ko) | 버퍼단을포함한듀얼명령어처리복호기 | |
US6931492B2 (en) | Method for using a portion of the system cache as a trace array | |
JPH05300113A (ja) | シェルフ構成におけるカード間通信方式 | |
JPH05334459A (ja) | マイクロコンピュータ | |
US5687341A (en) | Device for speeding up the reading of a memory by a processor | |
US6738389B1 (en) | Circuit and method for performing partial parallel data transfer in a communications system | |
EP0988603B1 (en) | Method and arrangement for connecting processor to asic | |
KR100281121B1 (ko) | 마이크로 프로세서 | |
JPS61270952A (ja) | デ−タ伝送方式 | |
US20020007263A1 (en) | Apparatus for supporting microprocessor development system | |
KR0186202B1 (ko) | 원칩 마이크로 컴퓨터 | |
KR100315700B1 (ko) | 티디-버스 복호부의 입출력을 비교하기 위한 체크모드 구현방법 및 회로 | |
KR100383130B1 (ko) | 분산 제어 시스템에 사용되는 스위치 소자 | |
KR980010756A (ko) | 시스템 보드와 서브 보드간의 데이터 전공 제어 회로 | |
KR19990038069U (ko) | 메모리가변방식의 디엠에이 콘트롤러 | |
KR19980069052A (ko) | 피씨아이(pci)데이타 및 어드레스 스테핑방법 | |
KR19990040212A (ko) | 이동통신 시스템의 운용보드 기능 시험 장치 | |
KR19990059298A (ko) | 아이피시 스위칭 시스템의 버퍼제어장치 | |
JPH08331105A (ja) | 伝送路無瞬断切替システムおよび方法 | |
JPS60218150A (ja) | デ−タ処理装置 | |
KR970057524A (ko) | 데이타 전송 인터페이스회로 | |
KR19980053887U (ko) | Fifo를 이용한 실시간 데이터 acquisition 회로 | |
KR19980072412A (ko) | 인터럽트 손실 복구장치 및 그 방법 |
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: 20051118 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |