KR100214084B1 - 마이크로 프로세서의 다수 명령어의 병렬 처리 방법 및 그 장치 - Google Patents

마이크로 프로세서의 다수 명령어의 병렬 처리 방법 및 그 장치 Download PDF

Info

Publication number
KR100214084B1
KR100214084B1 KR1019960071399A KR19960071399A KR100214084B1 KR 100214084 B1 KR100214084 B1 KR 100214084B1 KR 1019960071399 A KR1019960071399 A KR 1019960071399A KR 19960071399 A KR19960071399 A KR 19960071399A KR 100214084 B1 KR100214084 B1 KR 100214084B1
Authority
KR
South Korea
Prior art keywords
length
instruction
instructions
command
microprocessor
Prior art date
Application number
KR1019960071399A
Other languages
English (en)
Other versions
KR19980052411A (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 KR1019960071399A priority Critical patent/KR100214084B1/ko
Publication of KR19980052411A publication Critical patent/KR19980052411A/ko
Application granted granted Critical
Publication of KR100214084B1 publication Critical patent/KR100214084B1/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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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

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단계; 및 상기 결정된 첫 번째 명령어의 실제 길이에 따라 상기 결정된 두 번째 명령어의 길이중의 하나를 올바른 두 번째 명령어의 길이로 확정하는 제3단계를 포함하는 것을 특징으로 하는 마이크로 프로세서의 다수 명령어의 병렬 처리 방법을 제공한다. 또한, 본 발명은, 다수 명령어를 병렬 처리하는 마이크로 프로세서에 있어서, 다수의 명령어를 캐시하기 위한 코드 캐시; 상기 코드 캐시로부터의 상기 다수의 명령어를 입력받아 각 명령어의 길이를 결정하기 위한 프리디코더; 상기 프리디코더에 의하여 결정된 상기 각 명령어의 길이 및 상기 다수의 명령어를 입력받아 상기 명령어를 디코딩하기 위한 주디코더 및 상기 주디코더로부터 디코딩된 명령어를 실행하기 위한 실행 장치를 포함하여 이루어진 다수 명령어를 병렬 처리하기 위한 마이크로 프로세서를 제공한다.

Description

마이크로 프로세서의 다수 명령어의 병렬 처리 방법 및 그 장치
본 발명은 마이크로 프로세서의 명령어 처리 방법 및 그 장치에 관한 것이며, 특히 시스크 명령어 집합을 사용하는 마이크로 프로세서에 있어서 다수의 명령어의 병렬 처리 방법 및 그 장치에 관한 것이다.
미국 인텔(INTEL)사의 마이크로 프로세서 및 그 호환 제품(이하, 인텔 호환 마이크롤 프로세서라 함.)은 시스크(Complex Instruction Set Computer; CISC)명령어를 처리한다. 상기의 시스크 명령어는 그 길이가 미리 결정되어 있지 않고, 2 바이트나 3 바이트 등으로 다양한 길이를 가질 수 있는 특징을 갖는다.
또한, 상기 인텔 호환 마이크로 프로세서는, 소위 '슈퍼 스칼라(Superscalar)'라고 불리는, 여러 개의 명령어를 동시에 처리하는 방식을 채택하고 있으며, 현재 동사의 펜티엄 마이크로 프로세서(Pentium Microprocessor)는 한 번에 두 개의 명령어를 처리하는 '이중 파이프 슈퍼 스칼라(Dual Pipe Superscalar)'방식의 명령어 처리 방식을 채택하고 있다. 이를 위해서는, 한 번에 서로 다른 길이를 가질 수 있는 두 개의 명령어를 가져올 수 있어야 한다.
그런데, 상기 시스크 명령어를 이용하는 이중 파이프 슈퍼 스칼라 방식에는 처음 명령어를 디코딩할 때 각 명령어의 길이를 알 수 없기 때문에, 입력되는 명령어의 한 바이트씩을 디코딩하여 각 명령어의 길이를 알아낸 후, 그 명령어의 경계를 표시하는 마지막 비트(end bit)를 설정하여 이를 코드 캐시(Code Cache)에 저장한다. 왜냐하면, 상기한 바와 같이 시스크형 명령어는 각 명령어의 길이가 일정치 않기 때문이다. 그리하여, 일단 마지막 비트가 셋팅된 다음에는, 그 명령어와 같은 명령어를 상기 코드 캐시에서 가져올 때 그 명령어의 시작점을 알 수 있으므로, 한 번에 두 개의 명령어를 동시에 디코딩할 수 있어 상기 이중 파이프 슈퍼 스칼라 동작이 가능하게 된다.
따라서, 상기한 바와 같은 종래의 다수의 명령어 처리 방식은, 코드 캐시에 없는 명령어가 입력되는 경우에 슈퍼 스칼라 동작을 할 수 없게 되고, 결과적으로 전체적인 성능의 저하를 가져온다. 또한, 상기 코드 캐시에도 매 바이트마다 1 비트의 마지막 비트를 두어야 하므로 전체적인 용량 증대가 불가피해지며, 상기 마지막 비트 설정을 위한 회로가 추가되어야 하는 등 여러 가지 단점이 있다. 더욱이, 일단 각 명령어의 경계를 찾아 마지막 비트를 설정시킨 이후에 디코딩을 하는 과정에서도 명령어의 프리픽스(prefix) 처리 문제가 남아 있으므로, 종래의 명령어를 처리하기 위한 디코더 회로는 매우 복잡하게 되는 단점을 갖는다.
본 발명은 상기한 바와 같은 종래 기술의 문제점을 해결하기 위하여, 주디코딩 단계 이전에, 외부에서 입력되는 최초의 명령어의 길이를 가정하여 복수개의 명령어의 길이를 먼저 구하는 프리디코딩 단계를 실행하는 명령어 처리 방법 및 그 장치를 제공하는 데 그 목적이 있다.
제1도는 일반적인 시스크 명령어의 이중 파이프 슈퍼 스칼라 동작이 가능한 마이크로 프로세서를 개념적으로 도시한 블럭도.
제2도는 본 발명에 의한 마이크로 프로세서를 개념적으로 도시한 블럭도.
제3도는 본 발명의 프리디코딩 단계를 수행하기 위한 프리디코더 회로의 한 실시예의 개념적 블록도.
제4도는 본 발명의 프리디코딩 단계를 수행하기 위한 프리디코더 회로의 다른 실시예의 개념적 블록도.
제5도는 본 발명의 프리디코딩 단계를 수행하기 위한 프리디코더 회로의 또 다른 실시예의 개념적 블록도.
* 도면의 주요부분에 대한 부호의 설명
100 : 외부 메모리 102 : 코드 캐시
104 : 프리팻치 큐 106 : 디코더
108 : 마지막 비트 설정 회로 110 : 수행 장치
200 : 프리디코더 106 : 주디코더
302 : 첫 번째 명령어 길이 결정 수단 310 : 멀티플렉서
304 내지 308, 404 내지 410, 504, 506 : 두 번째 명령어 길이 결정 수단
508, 510, 512 : 세 번째 명령어 길이 결정 수단
일반적으로 마이크로 프로세서가 처리하는 프로그램에 사용되는 명령어의 길이는 시스크형 명령어일지라도 3 바이트 이하로 짧은 경우가 대부분이다. 예를 들어, 16 비트 동작인 경우, 길이가 3 바이트 이하인 명령어가 전체 명령어의 90% 가량을 차지하므로 상기 이중 파이프 슈퍼 스칼라 동작을 위하여는 처음에 입력되는 명령어의 길이가 1, 2 및 3 바이트중의 어느 하나라고 가정하여 진행하여도 커다란 성능의 감소가 유발되지는 않는다. 본 발명은 주디코딩 단계 이전에, 외부에서 입력되는 최초의 명령어의 길이를 가정하여 복수개의 명령어의 길이를 먼저 구하는 프리디코딩 단계를 실행하는 명령어 처리 방법을 제공하여, 처음부터 슈퍼 스칼라 동작이 가능하게 되며, 코드 캐시에 별도의 마지막 비트를 할당할 필요도 없게 된다. 또한, 상기와 같은 프리디코딩 단계를 추가함으로써 주디코딩 단계는 상대적으로 간단해지고, 따라서 그 구체적인 회로 구현도 간단해 진다.
상기한 목적을 달성하기 위하여 본 발명은, 마이크로 프로세서의 다수 명령어의 병렬 처리 방법에 있어서, 첫 번째 명령어 길이를 적어도 두 종류로 예정하는 제1단계; 상기 첫 번째 명령어의 실제 길이를 확정하면서, 상기 제1단계에서 예정된 적어도 두 개의 명령어 길이에 따른 두 번째 명령어의 길이를 각각 설정하는 제2단계; 및 상기 확정된 첫 번째 명령어의 실제길이에 따라 상기 제2단계에서 설정된 두 번째 명령어 길이중 일치된 어느 하나를 올바른 두 번째 명령어의 길이로 확정하는 제3단계를 포함하는 것을 특징으로 하는 마이크로 프로세서의 다수 명령어의 병렬 처리 방법을 제공한다.
또한, 본 발명은, 마이크로 프로세서의 다수 명령어의 병렬 처리 방법에 있어서, 첫 번째 및 그 이후의 명령어 길이를 각각 적어도 두종류로 예정하는 제1단계; 상기 첫 번째 명령어의 실제길이를 확정하면서, 상기 제1단계에서 예정된 각 명령어들의 각각의 길이 그 이후의 명령어의 길이를 설정하는 제2단계; 및 상기 제2단계에서 확정되는 첫 번째 명령어의 실제 길이에 따라 상기 제2단계에서 설정된 두 번째 및 그 이후의 각 명령어들의 길이를 각각 일치되는 어느 하나를 올바른 것으로 확정하는 제3단계를 포함하는 것을 특징으로 하는 마이크로 프로세서의 다수 명령의 병렬 처리 방법을 제공한다.
또한, 본 발명은, 다수 명령어를 병렬 처리하는 마이크로 프로세서에 있어서, 다수의 명령어를 일시저장하기 위한 코드 캐시; 상기 코드 캐시로부터의 상기 다수의 명령어를 입력받아 각 명령어의 길이를 확정하기 위한 프리디코더; 상기 프리디코더에 의하여 확정된 상기 각 명령어의 길이정보와, 상기 다수의 명령어를 순차적으로 입력받아, 상기 명령어를 디코딩하기 위한 주디코더; 및 상기 주디코더로부터 디코딩된 명령어를 실행하기 위한 실행 장치를 포함하는 것을 특징으로 하는 다수 명령어를 병렬 처리하기 위한 마이크로 프로세서를 제공한다.
이하, 첨부한 도면을 참조하여 본 발명을 보다 상세히 설명한다.
제1도는 일반적인 시스크 명령어의 이중 파이프 슈퍼 스칼라 동작이 가능한 마이크로 프로세서를 개념적으로 도시한 블럭도이다. 먼저, 외부 메모리(100)으로부터 코드 캐시(102)로 명령어를 읽어들인다. 이 명령어는 프리팻치 큐(104)를 거쳐 디코더(106)으로 입력된다. 상기 디코더(106)에서는 처음에는 1 바이트씩 명령어를 읽어 디코딩하고, 하나의 명령어 디코딩이 끝나면 상기 코드 캐시(102)에 마지막 비트를 설정하여 명령어의 경계를 표시한다. 이 명령어의 경계를 표시하는 작업은 마지막 비트 설정 회로(108)에 의하여 수행된다. 상기 디코더(106)에 의하여 디코딩된 명령어는 수행 장치(110)으로 입력되어 상기 명령어의 내용에 따르는 작업이 수행된다. 따라서, 상기한 바와 같이, 종래의 마이크로 프로세서에서는 코드 캐시(102)에 미리 저장되지 않은 명령어가 처음 입력될 때에는 슈퍼 스칼라 동작을 수행할 수 없게 되며, 다음에 같은 명령어를 처리할 때에는, 상기 코드 캐시(102)를 참조하게 되므로, 상기에서 설정된 마지막 비트에 의하여 한 번에 두 개의 명령어를 가져와 이중 파이프 슈퍼 스칼라 동작을 수행할 수 있게 된다. 이러한 동작을 한 싸이클내에서 수행하기 위해서는 상기 디코더(106)이 매우 복잡하게 된다.
제2도는 본 발명에 의한 프리디코딩 단계를 추가한 경우의 블럭도이다. 먼저 외부 메모리(100)으로부터 코드 캐시(102)을 거쳐 프리팻치 큐(104)로 명령어를 입력한다. 본 발명에서는 상기 프리팻치 큐(104)와 주디코더(106)사이에 프리디코더(200)을 두어 명령어의 길이를 먼저 구한다. 여기서, 상기 프리디코더(200)는 단지 명령어의 길이만을 구하고, 명령어 자체는 주디코더(106)으로 보내준다.
이 프리디코딩 단계에서 예컨대, 두 개의 명령어의 길이를 찾기 위하여는 다음과 같이 순차적으로 각 명령어의 길이를 구하는 방법도 있을 수 있다. 즉, 먼저 처음 명령어의 길이를 구하여 다음 명령어의 시작점을 찾고, 이어서 두 번째 명령어의 길이도 구하여 두 개의 명령어를 디코더로 보내는 방식이다. 이러한 방식에서는 두 개의 명령어에 대해 순차적으로 길이를 구해야 하므로 전체적인 싸이클 시간(cycle time)이 길어지게 된다. 따라서, 전체적인 동작 스피드의 저하가 유발된다.
본 발명에서는, 복수개의 명령어의 길이를 순차적으로 구하는 것 대신에 병행하여 구하는 방식을 구현하였다. 이제, 제3도를 참조하여 본 발명의 한 실시예를 설명한다. 제3도는 본 발명의 프리디코딩 단계를 수행하기 위한 프리디코더(200) 회로의 개념적 블록도이다. 여기서는 대부분의 명령어의 길이가 3 바이트 이하라는 사실에 착안하여, 첫 번째 명령어의 길이를 예컨대 1, 2 및 3 바이트라고 가정한 실시예에 관하여 설명한다. 상기 프리팻치 큐(104)로부터 입력되는 명령어를 임시 랫치(300)에 저장한다. 상기 임시 랫치(300)는 한 싸이클에 한 번만 랫치 동작을 수행하며 그 크기는 예컨대, 첫 번째 명령어의 길이를 3 바이트, 두 번째 명령어의 길이를 11 바이트로 가정하여 14 바이트로 한다. 즉, 한 싸이클에 상기 임시 랫치(300)으로 가져올 수 있는 최대 명령어 코드는 14 바이트로 한다. 이 정도의 크기는 실제동작시 상기 프리팻치 큐(104)가 작아서 생길 수 있는 문제를 거의 배제할 수 있다. 이에 따라 프리팻치 큐 동작 방식(prefetch queue scheme) 및 브랜치 예측 방식(branch prediction scheme)이 훨씬 간단해 진다. 다음으로, 상기한 바와 같이 가능한 첫 번째 명령어의 길이를 가정한다. 본 실시예의 경우에는 1, 2 및 3 바이트로 가정하였다. 다음으로, 다수의 두 번재 명령어 길이 결정 수단(304, 306 및 308)에서 상기 가정한 각 경우에 대하여 두 번째 명령어의 길이를 구하고, 이와 병행하여 첫 번째 명령어 길이 결정 수단(302)에서 첫 번재 명령어의 실제길이를 구한다. 그리하여, 멀티플렉서(310)에서는 상기 첫 번째 명령어의 실제길이가 상기에서 가정한 1, 2 및 3 바이트 중의 어느 하나에 해당하는 경우에, 미리 구한 두 번째 명령어의 길이중 하나를 옳은 것으로 확정한다. 이때, 처음 명령어의 실제길이가 상기에서 가정한 어느 것에도 해당되지 않는 경우(본 실시예에서는 첫 번째 명령어의 실제길이가 4 바이트 이상인 경우)에는 두 번째 명령어의 길이를 0 바이트로 처리한다.
상기 실시예에서는 명령어의 길이가 대부분 3 바이트 이하라는 가정하에 본 발명을 설명하였다. 그러나, 상기 실시예는 빈도수가 높은 몇 가지 길이의 명령어를 가정하여 두 개 또는 그 이상의 개수의 명령어의 길이를 동시에 구하는 회로로 일반화 할 수 있다.
이제, 제4도를 참조하면, 제4도는 빈도수가 높은 명령어의 길이를 가정하여 본 발명을 구현한 실시예를 도시한다. 예를 들어, 자주 발생하는 명령어의 길이가 2, 4, 5 및 7 바이트라면, 첫 번째 명령어의 길이가 2, 4, 5 및 7 바이트일 경우를 가정하여 각 두 번째 명령어 길이 결정 회로(404 내지 410)에 의하여 상기 각 경우에 해당하는 두 번째 명령어 길이를 구하고, 그와 병행하여 상기 첫 번째 명령어의 실제길이를 구한다. 그리하여 상기 첫 번째 명령어의 실제길이가 확인되면, 멀티플렉서(310)은 그에 해당하는 두 번째 명령어의 길이를 옳은 것으로 확정한다.
상기한 두 가지 실시예에서는 동시에 2 개의 명령어의 길이를 구하는 방법에 관하여 설명하였다. 그러나, 본 발명은 그 이상의 다수의 명령어를 병렬 처리하는 방법에 관하여도 적용될 수 있다.
이제, 제5도를 참조하면, 제5도는 예컨대 동시에 3개의 명령어의 길이를 구하는 방법을 구현한 회로의 개념도이다. 여기서는, 첫 번째 명령어 길이가 예컨대 1 또는 2 바이트일 확률이 높다고 가정한다. 이 각 경우에 대하여, 두 번재 명령어의 길이가 1, 2 및 3 바이트의 어느 하나일 수 있다고 가정하여, 각 세 번째 명령어 길이 결정 수단(508, 510 및 512)에 의하여 세 번째 명령어의 길이를 구한다. 또한, 그와 병행하여 각 명령어 길이 결정 수단(302 및 504, 506)에 의하여 첫 번째 명령어의 실제길이와 상기 각 경우의 두 번째 명령어의 길이를 구한다. 이 때, 제1멀티플렉서(310)은 첫 번째 명령어의 실제길이가 1 또는 2 바이트가 아닌 것으로 판정된 경우에는 두 번째 명령어 길이는 0 바이트로 하며, 제2멀티플렉서(310')은 첫 번째 명령어와 두 번째 명령어의 합이 2, 3, 4도는 5 바이트 중의 하나가 아닐 경우에는 세 번째 명령어의 길이도 0 바이트로 한다. 이 회로를 이용하면 최대 3개의 명령어를 한 번에 프리 패치하여 수행시킬 수 있다.
본 발명에 따르면, 주디코더(206)앞에 프리디코더(204)를 두어 다수의 명령어의 길이를 직접 구하므로, 두 개 또는 그 이상의 명령어의 길이를 동시에 구할 수 있어 효율적인 슈퍼 스칼라 시스크 마이크로 프로세서의 구현이 가능하다. 또한, 디코딩후 코드 캐시(200)에 마지막 비트를 설정하는 작업이 불필요하게 되고, 따라서 코드 캐시(200)의 크기를 줄일 수 있으며, 전반적으로 마이크로 프로세서의 동작 속도를 향상 시킬 수 있다.

Claims (12)

  1. 마이크로 프로세서의 다수 명령어의 병렬 처리 방법에 있어서, 첫 번째 명령어 길이를 적어도 두 종류로 예정하는 제1단계; 상기 첫 번째 명령어의 실제길이를 확정하면서, 상기 제1단계에서 예정된 적어도 두 개의 명령어 길이에 따른 두 번째 명령어의 길이를 각각 설정하는 제2단계; 및 상기 확정된 첫 번째 명령어의 실제길이에 따라 상기 제2단계에서 설정된 두 번째 명령어 길이중 일치된 어느 하나를 올바른 두 번째 명령어의 길이로 확정하는 제3단계를 포함하는 것을 특징으로 하는 마이크로 프로세서의 다수 명령어의 병렬 처리 방법.
  2. 제1항에 있어서, 상기 제1단계에서 첫 번째 명령어의 길이를 사용빈도가 높은 적어도 두 개의 명령어의 길이로 설정하는 것을 특징으로 하는 마이크로 프로세서의 다수 명령어의 병렬 처리 방법.
  3. 제2항에 있어서, 상기 제1단계에서 첫 번째 명령어의 길이를 1, 2 및 3 바이트의 세가지 길이로 설정하는 것을 특징으로 하는 마이크로 프로세서의 다수 명령어의 병렬 처리 방법.
  4. 제1항에 있어서, 상기 설정된 첫 번째 명령어의 길이중에서, 상기 확정된 첫 번째 명령어의 실제 길이와 일치하는 것이 없는 경우에는 두 번째 명령어의 길이를 0바이트로 확정하는 제4단계를 더 포함하는 것을 특징으로 하는 마이크로 프로세서의 다수 명령어의 병렬 처리 방법.
  5. 마이크로 프로세서의 다수 명령어의 병렬 처리 방법에 있어서, 첫 번째 및 그 이후의 명령어 길이를 각각 적어도 두 종류로 예정하는 제1단계; 상기 첫 번째 명령어의 실제 길이를 확정하면서, 상기 제1단계에서 예정된 각 명령어들의 각각의 길이 그 이후의 명령어의 길이를 설정하는 제2단계; 및 상기 제2단계에서 확정되는 첫 번째 명령어의 실제 길이에 따라 상기 제2단계에서 설정된 두 번째 및 그 이후의 각 명령어들의 길이들 중 각각 일치되는 어느 하나를 올바른 것으로 확정하는 제3단계를 포함하는 것을 특징으로 하는 마이크로 프로세서의 다수 명령어의 병렬 처리 방법.
  6. 제5항에 있어서, 상기 제1단계에서 첫 번째 및 두 번째 명령어의 길이를 각각 사용빈도가 높은 적어도 두 개의 명령어의 길이로 설정하는 것을 특징으로 하는 마이크로 프로세서의 다수 명령어의 병렬 처리 방법.
  7. 제6항에 있어서, 상기 제1단계에서 첫 번째 명령어의 길이를 1, 및 2 바이트의 두가지 길이로 설정하고, 상기 두 번째 명령어의 길이를 1, 2 및 3 바이트의 세가지 길이로 설정하는 것을 특징으로 하는 마이크로 프로세서의 다수 명령어의 병렬 처리 방법.
  8. 다수 명령어를 병렬 처리하는 마이크로 프로세서에 있어서, 다수의 명령어를 일시저장하기 위한 코드 캐시; 상기 코드 캐시로부터의 상기 다수의 명령어를 입력받아 각 명령어의 길이를 확정하기 위한 프리디코더; 상기 프리디코더에 의하여 확정된 상기 각 명령어의 길이정보와, 상기 다수의 명령어를 순차적으로 입력받아, 상기 명령어를 디코딩하기 위한 주디코더; 및 상기 주디코더로부터 디코딩된 명령어를 실행하기 위한 실행 장치를 포함하는 것을 특징으로 하는 다수 명령어를 병렬 처리하기 위한 마이크로 프로세서.
  9. 제8항에 있어서, 상기 프리디코더가, 상기 코드 캐시로부터 입력되는 명령어를 저장하기 위한 임시저장수단; 첫 번째 명령어의 길이를 확인하기 위한 제1명령어 확정 수단; 상기 제1명령어 설정 수단에 의해 확인될 첫 번째 명령어 길이를 적어도 두 종류로 예정한후 그에 따라 두 번째 명령어 길이를 각각 설정하는 제2명령어 설정 수단; 및 상기 첫 번째 명령어의 실제길이에 따라, 상기 제2명령어 설정 수단에 의해 미리 설정된 적어도 두 개의 두 번째 명령어 길이중 일치된 어느 하나를 올바른 두 번째 명령어의 길이로 확정하기 위한 제2명령어 확정 수단을 포함하는 것을 특징으로 하는 다수 명령어를 병렬 처리하기 위한 마이크로 프로세서.
  10. 제9항에 있어서, 상기 제2명령어 설정 수단은 상기 첫 번째 명령어의 길이를 사용빈도가 높은 적어도 두 개의 명령어 길이로 설정하는 것을 특징으로 하는 다수 명령어를 병렬 처리하기 위한 마이크로 프로세서.
  11. 제10항에 있어서, 상기 제2명령어 설정 수단은 상기 첫 번째 명령어의 길이를 1, 2 및 3 바이트의 세가지 길이로 각각 설정하는 것을 특징으로 하는 다수 명령어를 병렬 처리하기 위한 마이크로 프로세서.
  12. 제9항에 있어서, 상기 설정된 첫 번째 명령어의 길이중에서, 상기 제1명령어 확정 수단에 의하여 확정된 첫 번째 명령어의 실제길이와 일치하는 것이 없는 경우에는 두 번째 명령어의 길이를 0 바이트로 확정하는 수단을 더 포함하는 것을 특징으로 하는 다수 명령어를 병렬 처리하기 위한 마이크로 프로세서.
KR1019960071399A 1996-12-24 1996-12-24 마이크로 프로세서의 다수 명령어의 병렬 처리 방법 및 그 장치 KR100214084B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960071399A KR100214084B1 (ko) 1996-12-24 1996-12-24 마이크로 프로세서의 다수 명령어의 병렬 처리 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960071399A KR100214084B1 (ko) 1996-12-24 1996-12-24 마이크로 프로세서의 다수 명령어의 병렬 처리 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR19980052411A KR19980052411A (ko) 1998-09-25
KR100214084B1 true KR100214084B1 (ko) 1999-08-02

Family

ID=19490680

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960071399A KR100214084B1 (ko) 1996-12-24 1996-12-24 마이크로 프로세서의 다수 명령어의 병렬 처리 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR100214084B1 (ko)

Also Published As

Publication number Publication date
KR19980052411A (ko) 1998-09-25

Similar Documents

Publication Publication Date Title
FI90804B (fi) Dataprosessorin ohjausyksikkö, jolla on käskyn esihaun uudelleensuuntausta käyttävä keskeytyspalvelu
US5515519A (en) Data processor and method utilizing coded no-operation instructions
KR920006275B1 (ko) 데이타 처리 장치
US6832305B2 (en) Method and apparatus for executing coprocessor instructions
JP2000330787A (ja) 命令ループを実行するコンピュータシステムおよび命令ループ実行方法
US6631459B1 (en) Extended instruction word folding apparatus
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
EP0297943B1 (en) Microcode reading control system
KR930005769B1 (ko) 분기 제어회로
US5276825A (en) Apparatus for quickly determining actual jump addresses by assuming each instruction of a plurality of fetched instructions is a jump instruction
EP1039375A1 (en) Method and apparatus for implementing zero overhead loops
JPH03233630A (ja) 情報処理装置
KR100214084B1 (ko) 마이크로 프로세서의 다수 명령어의 병렬 처리 방법 및 그 장치
CN100356318C (zh) 用于指令对准的方法和设备
US20050027921A1 (en) Information processing apparatus capable of prefetching instructions
KR920009999B1 (ko) 정보처리장치
US6862680B2 (en) Microprocessor processing specified instructions as operands
JPH10214188A (ja) プロセッサの命令供給方法及び装置
JP4413663B2 (ja) 命令キャッシュシステム
US5838961A (en) Method of operation and apparatus for optimizing execution of short instruction branches
KR100300875B1 (ko) 캐쉬 미스 시 처리 방법
JPS61285542A (ja) 命令先取り方法
KR100204003B1 (ko) 효율적인 디코딩을 위한 프리픽스 컴팩션 방법 및 회로
JPH0481218B2 (ko)
KR950014160B1 (ko) 정보처리장치

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20050422

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee