KR100365759B1 - 버퍼단을포함한듀얼명령어처리복호기 - Google Patents

버퍼단을포함한듀얼명령어처리복호기 Download PDF

Info

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
Application number
KR1019950062142A
Other languages
English (en)
Other versions
KR970049719A (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 주식회사 하이닉스반도체
Priority to KR1019950062142A priority Critical patent/KR100365759B1/ko
Publication of KR970049719A publication Critical patent/KR970049719A/ko
Application granted granted Critical
Publication of KR100365759B1 publication Critical patent/KR100365759B1/ko

Links

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent 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. 메모리에서 메모리 어드레스를 계산하여 데이타를 읽어, 명령어의 경계를 알아내 두 개의 명령어를 구하는 명령어 준비수단;
    상기 명령어 준비수단에서 구한 두개의 명령어(명령어1,2)를 동시 수행할 경우, 제 1 명령어경로, 제2 명령어경로를 통해 상기 명령어 준비수단으로부터 온 두 개의 명령어를 각각 입력받으며, 동시 수행이 아닌 경우에는 상기 제1 및 제2 명령어 경로중 하나의 경로를 연결시켜 한 개의 명령어를 전달하는 제1 및 제2 다중화수단;
    상기 제1 및 제2 다중화수단으로부터 나온 명령어를 각각 저장하여 명령어 복호에 적합한 내용인가를 알 수 있도록 유효 비트를 두는 제1 및 제2 버퍼; 및
    상기 제1 및 제2 버퍼에 저장된 두 개의 명령어를 읽어 동시에 실행유닛이 수행 가능한가를 조사하고 동시에 수행 가능할 경우에는 동시수행신호를 발생시켜 상기 명령어 준비수단과 제1 및 제2 다중화수단의 제어신호로 제공하고, 실행 유닛 제어신호를 발생하여 실행 유닛을 실행시키는 명령어 복호수단을 구비하는 것을 특징으로 하는 버퍼 단을 포함한 듀얼 명령어 처리 복호기.
  2. 제 1 항에 있어서, 상기 제1 및 제2 버퍼에 저장된 명령어는 듀얼 프로세싱을 위하여 한 사이클에 두 개씩 전송되는 것을 특징으로 하는 버퍼 단을 포함한 듀얼 명령어 처리 복호기.
KR1019950062142A 1995-12-28 1995-12-28 버퍼단을포함한듀얼명령어처리복호기 KR100365759B1 (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101502421B1 (ko) 2013-07-31 2015-03-16 한국항공우주연구원 시험 및 운영 절차 동시 수행 방법 및 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950025536A (ko) * 1994-02-28 1995-09-18 김주용 분기 명령 처리를 위한 명령어 공급장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950025536A (ko) * 1994-02-28 1995-09-18 김주용 분기 명령 처리를 위한 명령어 공급장치

Cited By (1)

* Cited by examiner, † Cited by third party
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