KR19980052409A - 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트 - Google Patents

고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트 Download PDF

Info

Publication number
KR19980052409A
KR19980052409A KR1019960071397A KR19960071397A KR19980052409A KR 19980052409 A KR19980052409 A KR 19980052409A KR 1019960071397 A KR1019960071397 A KR 1019960071397A KR 19960071397 A KR19960071397 A KR 19960071397A KR 19980052409 A KR19980052409 A KR 19980052409A
Authority
KR
South Korea
Prior art keywords
pla
decoder
instruction
state
instructions
Prior art date
Application number
KR1019960071397A
Other languages
English (en)
Other versions
KR100209233B1 (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 KR1019960071397A priority Critical patent/KR100209233B1/ko
Publication of KR19980052409A publication Critical patent/KR19980052409A/ko
Application granted granted Critical
Publication of KR100209233B1 publication Critical patent/KR100209233B1/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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional 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/3818Decoding for concurrent execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

본 발명은 슈퍼-스케일러블 마이크로 프로세서에 있어서 인스트럭션을 최대한 빨리 해석해서 인스트럭션 실행 유니트가 지연시간없이 인스트럭션을 처리할 수 있도록 오퍼레이션 포맷을 만들어 주며, RISC형 또는 CISC형의 마이크로 프로세서에 공히 사용될 수 있으며, 고속용으로 파이프라인 등을 사용하는 마이크로 프로세서 또는 2개 이상의 인스트럭션을 동시에 처리하기 위하여 2개 이상의 인스트럭션 디코딩 및 아웃오브오더(out-of-order) 처리를 하는 마이크로 프로세서 등에 적합하게 사용될 수 있는 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트에 관한 것으로서, 본 발명의 구성은, 코드버퍼에 저장되어 있는 인스트럭션의 길이에 관한 정보 신호를 입력받아 2개 이상의 인스트럭션을 한번에 디코딩하여 오퍼레이션 포맷을 산출하여 출력하는 PLA와, 상기 PLA의 오퍼레이션 포맷으로부터 인스트럭션이 병렬로 수행될 것인지를 체크하여 그 결과를 출력하는 페어링/디펜던시 체커와, 유효코드가 입력되는 경우에 상기 PLA 및 페어링/디펜던시 체커를 제어하여 디코딩이 파이프라인되어 이루어지도록 하기 위한 제어신호를 출력하는 디코더 컨트롤러를 포함하여 이루어진다.

Description

고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트
본 발명은 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트에 관한 것으로, 특히 슈퍼-스케일러블 마이크로 프로세서에 있어서 인스트럭션을 최대한 빨리 해석해서 인스트럭션 실행 유니트가 지연시간없이 인스트럭션을 처리할 수 있도록 오퍼레이션 포맷을 만들어 주며, RISC형 또는 CISC형의 마이크로 프로세서에 공히 사용될 수 있으며, 고속용으로 파이프라인 등을 사용하는 마이크로 프로세서 또는 2개 이상의 인스트럭션을 동시에 처리하기 위하여 2개 이상의 인스트럭션 디코딩 및 아웃오브오더(out-of-ordeer) 처리를 하는 마이크로 프로세서 등에 적합하게 사용될 수 있는 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트에 관한 것이다.
종래의 마이크로 프로세서에서 사용되는 디코더 유니트는 하나의 인스트럭션을 한번에 수행하는 구조로 이루어지거나, 2개 이상의 인스트럭션을 디코딩하게 되더라도 CISC형의 경우에는 인스트럭션 길이가 인스트럭션마다 다르므로 인스트럭션이 처음 디코딩될 때는 하나의 인스트럭션만 디코딩하여 인스트럭션 길이를 메모리 필드에 저장시켜 놓은 뒤에, 첫 인스트럭션이 아닐 경우에 2개 이상의 인스트럭션을 디코딩하여 짝을 이루는 경우에만 오퍼레이션 포맷을 인스트럭션 실행 유니트로 전달하는 구조로 이루어진다.
그러나, 이와 같이 한번에 하나의 인스트럭션을 디코딩하여 실행하는 싱글 파이프라인 구조의 디코더 유니트의 경우에는, 한번에 하나의 인스트럭션만을 디코딩할 수 밖에 없는 한계점 때문에 디코딩 수행능력이 저하되는 문제점이 있다. 또한, 종래의 싱글 파이프라인 구조의 디코더 유니트의 경우에는, 인스트럭션 길이를 항상 구해야 하고,이와 같이 구해진 인스트럭션 길이에 따라 다음 인스트럭션의 페치 길이도 결정해야 하고 인스트럭션 디코딩도 수행해야 하기 때문에 동작 클럭 주파수를 높여주는데는 한계가 있는 문제점이 있다. 이외에도, 상기한 바와 같이 싱글 파이프라인 구조의 디코더 유니트는 대부분 족잡한 CISC형 인스트럭션에 적합하기 때문에 RISC형의 디코더 유니트로서는 사용하기가 어려운 단점이 있다.
그리고, 2개 이상의 인스트럭션을 디코딩하는 디코더 유니트의 경우에도, 위에서 이미 기술한 바와 같이, 첫 인스트럭션의 디코딩은 하나만 가능하므로 수행능력이 저하되는 문제점이 있으며, 이 경우에도 인스트럭션 길이를 구해야하고 디코딩도 수행해야 하므로 이런 종류의 디코더 유니트는 CISC형 인스트럭션에는 적합하나 RISC형에서 쓰기에는 너무 복잡하므로 하드웨어 측면에서 낭비를 가져오게 되는 문제점이 있다.
향후, 마이크로 프로세서의 개발방향이 고속을 추구하고, 소프트웨어의 역할을 증대시키며, 인스트럭션을 RISC형으로 하며, 하드웨어를 간단히 하는데 있음을 염두에 둘 때, 위에서 열거한 바와 같은 종래의 디코더 유니트는 바람직하지 않다고 할 수 있다.
본 발명은 상기한 바와 같은 종래 기술의 문제점을 해결하기 위하여 제안한 것으로서, 고속용 슈퍼-스케일러블 마이크로 프로세서에서 인스트럭션을 최대한 빨리 해석해서 인스트럭션 실행 유니트가 지연시간없이 인스트럭션을 처리할 수 있도록 오퍼레이션 포맷을 만들어 주며, RISC형 또는 CISC형의 마이크로 프로세서에 공히 사용될 수 있으며, 고속용으로 파이프라인 등을 사용하는 마이크로 프로세서 또는 2개 이상의 인스트럭션을 동시에 처리하기 위하여 2개 이상의 인스트럭션 디코딩 및 아웃오브오더(out-of-order) 처리를 하는 마이크로 프로세서 등에서 신속한 인스트럭션 분석 및 병렬처리 체크 등에 적합한 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트를 제공하는데 그 목적이 있다.
도 1은 본 발명의 실시예에 따른 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트의 전체 구성 블럭도이다.
도 2는 본 발명의 실시예에 따른 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트의 PLA의 세부 구성 블럭도이다.
도 3은 본 발명의 실시예에 따른 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트의 디코더 PLA 및 코드 포맷터의 세부 구성 블럭도이다.
도 4는 본 발명의 실시예에 따른 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트의 디코더 컨트롤러의 세부 구성 블럭도이다.
도 5는 본 발명의 실시예에 따른 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트의 페어링/디펜던시 체커의 세부 구성 블럭도이다.
도 6은 본 발명의 실시예에 따른 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트의 큐컨트롤러의 세부 연결 구성도이다.
도 7은 본 발명의 실시예에 따른 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트의 디코더 컨트롤러의 상태 다이어그램이다.
도 8은 본 발명의 실시예에 따른 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트의 파이프라인 단계에서의 동작과정을 보여주는 도면이다.
도 9는 본 발명의 실시예에 따른 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트의 상태 및 파이프라인의 흐름을 보여주는 도면이다.
본 발명은 다음과 같은 가정을 둔다. 첫째로, 디코더 유니트의 기능은 인스트럭션을 디코딩하고 디코딩 포맷을 실행 유니트로의 전달하는 기능과, 2개 이상의 인스트럭션 처리에 대한 체크 기능을 포함한다. 그리고, 둘째로, CISC와 같이 복잡한 인스트럭션 길이를 구하는 유니트를 따로 두고, 이 유니트는 디코더의 기능으로 보지 않는다.
이와 같은 가정을 기본으로 하여, 종래의 문제점을 해결하기 위한 수단으로서 본 발명의 구성은, 코드버퍼에 저장되어 있는 인스트럭션의 길이에 관한 정보신호를 입력받아 2개 이상의 인스트럭션을 한번에 디코딩하여 오퍼레이션 포맷을 산출하여 출력하는 PLA와, 상기 PLA의 오퍼레이션 포맷으로부터 인스트럭션이 병렬로 수행될 것인지를 체크하여 그 결과를 출력하는 페어링/디펜던시 체커와, 유효코드가 입력되는 경우에 상기 PLA 및 페어링/디펜던시 체커를 제어하여 디코딩이 파이프라인되어 이루어지도록 하기 위한 제어신호를 출력하는 디코더 컨트롤러를 포함하여 이루어진다.
본 발명은, 상기 디코더 컨트롤러로부터 입력되는 상태신호를 이용하여 각 상태마다 큐를 로드할 것인지를 결정하여 디코드 큐를 제어하는 큐 컨트롤러를 더 포함하여 이루어질 수 있으며, 상기 PLA는 코드버퍼로부터 입력되는 신호를 이용하여 1차적으로 디코딩을 하는 디코더 PLA와, 상기 디코더 PLA를 통해서 나온 정보를 다시 추출하여 2차 디코딩을 하는 코드 포맷터를 포함하여 이루어진다. 그리고, 상기 페어링/디펜던시 체커는 포맷래치로부터 입력된 정보를 가지고 해저드 체킹을 하고, 디펜던시 체크를 해서 최종적으로 병렬처리 여부를 판단하며, 상기 디코더 컨트롤러는 정지상태, 디코드 상태, 스톨상태를 두고, 이 상태에 따라 PLA 출력래치, 포맷 래치, 디코드 큐를 인에이블시키고 상기 디코더 컨트롤러는 스톨상태에서 디코드 큐의 쓰기를 금지시키는 것을 특징으로 한다. 그리고, 상기 디코드 큐의 용량은 파이프라인의 갯수에 따라 조절된다.
본 발명에 의하면, 인스트럭션의 길이를 구하는 유니트를 따로 두어 인스트럭션의 길이를 계속 구하고, 상기 인스트럭션의 길이에 따라 디코더 유니트에 일정한 형태의 인스트럭션 데이터를 전달하게 되는데, 디코더에서 받는 입력은 인스트럭션의 길이는 다를 수 있으나 일정한 사이즈를 갖는 데이터가 된다. 그리고, 이 데이터 자체를 고려한다면, CISC형 또는 RISC형 인스트럭션과 무관하기 때문에 CISC형 또는 RISC형에 관계없이 적용이 가능한데, 이것은 디코딩을 할때 입력 데이터를 모두 사용해서 분석을 하고, 각 데이터 필드의 의미를 분석한 후 최종적으로 분석결과를 조합해서 오퍼레이팅 포맷을 만들어 주기 때문이다. 디코더에서는 일정한 입력을 가지고 항상 2개 이상의 인스트럭션을 디코딩하는 것이 가능하게 되고, 인스트럭션의 병렬 처리가 가능한지를 체크하게 된다. 따라서, 종래에 비해 디코딩 수행능력의 향상을 가져올 수가 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
본 발명의 구성은 도 1의 디코더 블럭도에 자세히 나타나 있다. 도 1에서 가로의 점선은 파이프라인의 처리단계를 구분한 것으로서 여기에서는 IA 단계가 인스트럭션 길이를 구하는 단계이다. IA 단계에서 인스트럭션 길이를 구한 다음 코드버퍼에 인스트럭션이 저장되는데, 상기 IA 단계에서 코드버퍼가 x, y로 구분되어 있는 것은 2개의 인스트럭션을 처리하기 위한 것으로서, 인스트럭션이 3개 이상일 경우에 이 코드버퍼는 증가하게 된다.
ID 단계에서는, PLA, 페어링/디펜던시 체커, 디코더 컨트롤러 등에 의해서 인스트럭션이 디코딩되어 디코딩 포맷이 실행 유니트로의 전달되고, 2개 이상의 인스트럭션 처리에 대한 체크가 이루어지게 된다.
AG 단계에서는 메모리 어드레스의 생성이 이루어지며, EX 단계에서는 실행이 이루어지며, WB 단계에서는 레지스터 라이트백 과정이 수행된다.
상기 PLA는 디코딩을 수행하는 곳으로서 PLA 로직을 사용하지 않고 조합로직을 사용하여 구성할 수도 있다. 상기 PLA는 도 2에 좀더 상세히 도시되어 있는데, 도 2에 도시되어 있는 바와 같이 PLA는 디코더 PLA와, PLA 출력래치와, 코드 포맷터와, 포맷 래치로 이루어진다. 상기 도 2의 디코더 PLA는 도 3에 자세하게 나타나 있는데, 코드버퍼의 데이터를 입력으로 PLA에서 필요한 데이터를 추출한다. 이와 같이 추출할 데이터는 인스트럭션별로 미리 인코딩시켜 놓으면 된다. 여기에서는 3종류로 나누어서 디코더 PLA(STB, MOD R/M, COTROL PLA)를 구현했는데 특성에 맞게 조절할 수 있다. 도 2의 PLA 출력래치는 디코더 PLA에서 추출한 데이터를 임시저장하는 것으로서 래치형태를 갖는다. 그리고, 도 2의 코드 포맷터는 상기 PLA 출력래치의 정보를 이용하여 오퍼레이션 포맷을 만든다. 상기 코드 포맷터는 도 3에 좀더 상세히 도시되어 있는데, DIS/IMM과 SRC/DST를 포함한 코드 포맷터내의 각 서브-블럭들은 디펜던시 체킹 블럭을 제외하고 각각의 포맷 필드를 추출하는 회로이다. 여기에서는 소오스(source), 데스티네이션(destination), 펑션(function), 메모리 어드레스 계산방법 등 인스트럭션을 실행하기 위한 모든 정보가 구해진다. 상기 코드 포맷터는 디코더 PLA를 통해서 나온 정보를 다시 추출하는 과정으로서, PLA 디코딩 후에 2차 디코딩 과정을 거치는 것이라 볼 수가 있다. 따라서, CISC형 또는 RISC형에 관계없이 사용이 가능하다. 도 2의 포맷 래치는 상기 코드 포맷터에서 구한 오퍼레이션 포맷을 저장하는 래치이다.
상기 페어링/디펜던시 체커는 PLA에 의해서 디코딩된 결과를 가지고 인스트럭션이 병렬로 수행될 것인지를 체크하게 된다. 상기 페어링/디펜던시 체커는 도 6에 상세히 도시되어 있는데, 도 6에 도시되어 있는 바와 같이 페어링/디펜던시 체커는 포맷 래치로부터 입력된 정보를 가지고 해저드 체킹을 하고, 디펜던시 체크를 해서 최종적으로 병렬처리 여부를 판단하게 된다. 페어링/디펜던시 체커의 입출력 신호는 PLA에서 추출된 소오스(y_src), 데스티네이션(y_dst, x_dst) 등과 병렬처리 여부를 알려주기 위한 신호(x_accept, y_accepct, pairable, valid) 등이 있다.
상기 디코더 컨트롤러는 디코더 유니트를 전체적으로 제어하는 블럭으로서 파이프라인의 단계 특성에 맞게 디코더 유니트를 제어해주는 역할을 수행한다. 상기 디코더 컨트롤러는 도 4에 상세히 도시되어 있는데, 도 4에 도시되어 있는 바와 같이 ID 및 D2 상태머신과 ID 및 D2 컨트롤러로서 분리되어 있다. 상기 상태머신은 도 7의 상태 다이어그램에 의해서 동작이 설명될 수 있다. 도 7의 상태 다이어그램에 도시되어 있는 바와 같이 상태머신은, 처음에 정지상태가 되고, 이 상태에서 유효코드(valid code) 상황이 되면 디코드 상태로 전환한다. 그리고, 디코드 상태에서 무효(invalid), 플러시(flush), 예외(exception) 상황이 되면 다시 정지상태가 되고, 실행 지연 등이 발생되면 스톨 상태가 된다. 이와 같이 상태 머신이 상태를 정하면 그 상태에 따라서 ID 및 D2 컨트롤러는 정해진 제어신호를 출력하게 되는데, 이 제어신호는 PLA 출력래치, 포맷 래치, 디코드 큐의 인에이블 신호로서 사용된다. 스톨상태에서는 디코드 큐의 쓰기동작이 금지된다.
상기 큐 컨트롤러는 도 5에 상세히 도시되어 있는데, 도 5에 도시되어 있는 바와 같이 큐 컨트롤러는 디코드 큐를 제어하는 기능을 가지며, 디코더 컨트롤러의 ID 컨트롤러 및 D2 컨트롤러로부터 입력되는 상태신호를 이용하여 각 상태마다 큐를 로드할 것인지를 결정한다. 상기 큐 컨트롤러의 출력신호는 각각의 디코드 큐에 대한 인에이블 신호로서 기능한다.
상기 디코드 큐는 디코딩된 인스트럭션을 동작가능한 포맷으로 만들어 저장하는 곳에서 실행단계에서 지연시간없이 수행될 수 있도록 하기 위한 것이다. 상기 디코드 큐는, 포맷 래치에 저장되어 있는 오퍼레이션 포맷 데이터를 파이프라인 단계에 맞게 저장하는 큐로서, 상기 디코드 큐의 용량은 파이프라인의 갯수에 따라 조절된다.
도 8은 파이프라인 단계에서 디코더가 속하는 시간을 보여 주는데, 도 8에 도시되어 있는 바와 같이, IA 단계에서 인스트럭션 길이를 구하여 코드버퍼에 저장을 시킨 후, 유효코드 신호(valid code)가 존재하는 동안 디코딩이 시작된다. 이때 디코딩 시간(decode time) 동안 디코더 PLA를 거쳐서 PLA 신호가 출력되며, 디코드 큐 정보 생성시간(decode queue inform. gen) 동안 디코더 PLA의 출력신호가 코드 포맷터에 의해서 재추출된다. 상기 디코드 큐 정보 생성시간(decode queue inform. gen)이 끝나는 시점이 디코드 큐 쓰기(decode queue write) 시점에서 디코드에 데이터가 로드되며, 디코드 큐 출력구간(decode queue available) 동안 디코드 큐로부터 출력되는 데이터는 유효하다. 제 1 소오스 클럭(ph-1)에서 코드가 유효하면 디코딩이 이루어지며 결과값이 제 2 소오스 클럭(ph-2)의 폴링에지에서 래치가 이루어진다. 결국, 제 2 소오스 클럭(phi-2)의 구간에서 PLA의 출력신호가 유용하므로 제 2 소오스 클럭(phi-2)의 구간에서 디코드 큐 정보가 생성된다. 이와 같이 제 2 소오스 클럭(ph-2)의 구간에서 생성된 디코드 큐 정보는 다음의 제 1 소오스 클럭(phi-1)의 라이징 에지에서 디코드 큐에 저장되고, 실행지연이 제 2 소오스 클럭(phi-2)에서 검출되면 다음의 제 1 소오스 클럭(phi-1)에서는 디코드 큐가 업데이트되지 않도록 한다. 왜냐하면, 이 경우에 디코드 큐가 업데이트되어 버리면 인스트럭션 정보가 없어지는 결과를 갖기 때문이다. 실행지연이 사라지게 되면 그때 업데이트가 이루어진다.
도 9는 파이프라인이 계속 진행중일 때, 즉, 인스트럭션이 계속 처리되고 있을 때, 디코더의 상태 및 디코드 파이프라인의 흐름을 보여주고 있다. 여기에서는 정상적인 경우를 가정하고 있기 때문에 스톨상태는 나타나고 있지 않지만, 실행지연이 일어나게 되변 스톨상태가 나타날 수 있다. 도 9에 도시되어 있는 상태로서는 디크드 상태 및 정지상태가 있는데, 코드버퍼의 데이터가 유효 데이터가 아닐 경우에 정지상태가 된다. 여기에서는 전체 파이프라인의 단계를, PF(prefetch), IA(instrustion length), ID(instruction decoding), AG(memory address generation), EX(execution), WB(register write back)의 6가지 단계로 설정했으며, a, b는 이전 인스트럭션을 나타내고, c, d는 현재의 인스트럭션을 나타내고, r은 레지스터 오퍼런드를 나타내고, m은 메모리 오퍼런드를 나타내고, 그리고, e, f, g, h는 다음 인스트럭션을 나타낸다. 이에 따라, 도 9에서는 각 인스트럭션이 디코딩되는 과정에서의 PLA 및 디코드 큐의 상태를 보여주고 있다. 여기에서는 2개의 페어러블 인스트럭션을 디코딩하는 경우를 예로 설명하고 있는데, 그 이상일 경우도 가능하다.
상기한 바와 같이 본 발명에 의하면, 마이크로 프로세서 분야의 모든 설계에 있어서, 인스트럭션의 디코딩 시간을 줄일 수가 있고, 동작 클럭 주파수를 높여 줄 수가 있으며, 항상 한번에 2개 이상의 인스트럭션을 디코딩할 수 있으므로 동일한 주파수대에서 더 나은 성능을 갖는 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트를 제공할 수가 있다. 따라서, 본 발명은 행후 마이크로 프로세서의 개발추세가 RISC형으로 변화되고, 하드웨어를 간단하게 구성하면서 동작 주파수를 높이고, 소프트웨어의 역할을 높이는 측면으로 전개된다고 판단할 때, 이에 매우 적합한 이점이 있으며, 또한, CISC형 마이크로 프로세서도 내부에서는 아웃오브오더 실행이 이루어지는 등 RISC형의 방식이 혼용되어 사용되는 경우가 많고, 이런 경우에 디코딩뿐만이 아니라 인스트럭션 해석도 가능한 디코더를 요구하기 때문에 적합한 장점이 있다.
본 발명을 상기 실시예들에 의해 구체적으로 설명하였지만, 본 발명은 이에 의해 제한되는 것은 아니고, 당 업자의 통상적인 지식의 범위 내에서 그 변형이나 개량이 가능하다.

Claims (7)

  1. 코드버퍼에 저장되어 있는 인스트럭션의 길이에 관한 정보신호를 입력받아 2개 이상의 인스트럭션을 한번에 디코딩하여 오퍼레이션 포맷을 산출하여 출력하는 PLA와,
    상기 PLA의 오퍼레이션 포맷으로부터 인스트럭션이 병렬로 수행될 것인지를 체크하여 그 결과를 출력하는 페어링/디펜던시 체커와,
    유효코드가 입력되는 경우에 상기 PLA 및 페어링/디펜던시 체커를 제어하여 디코딩이 파이프라인되어 이루어지도록 하기 위한 제어신호를 출력하는 디코더 컨트롤러를 포함하여 이루어지는 것을 특징으로 하는 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트.
  2. 제 1 항에 있어서,
    상기 디코더 컨트롤러로부터 입력되는 상태신호를 이용하여 각 상태마다 큐를 로드할 것인지를 결정하여 디코드 큐를 제어하는 큐 컨트롤러를 더 포함하여 이루어지는 것을 특징으로 하는 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 PLA는 코드버퍼로부터 입력되는 신호를 이용하여 1차적으로 디코딩을 하는 디코더 PLA와,
    상기 디코더 PLA를 통해서 나온 정보를 다시 추출하여 2차 디코딩을 하는 코드 포맷터를 포함하여 이루어지는 것을 특징으로 하는 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 페어링/디펜던시 체커는 포맷 래치로부터 입력된 정보를 가지고 해저드 체킹을 하고, 디펜던시 체크를 해서 최종적으로 병렬처리 여부를 판단하는 것을 특징으로 하는 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 디코더 컨트롤러는 정지상태, 디코드 상태, 스톨상태를 두고, 이 상태에 따라 PLA 출력래치, 포맷 래치, 디코드 큐를 인에이블시키는 것을 특징으로 하는 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트.
  6. 제 5 항에 있어서,
    상기 디코더 컨트롤러는 스톨상태에서 디코드 큐의 쓰기를 금지시키는 것을 특징으로 하는 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트.
  7. 제 2 항에 있어서,
    상기 디코드 큐의 용량은 파이프라인의 갯수에 따라 조절되는 것을 특징으로 하는 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트.
KR1019960071397A 1996-12-24 1996-12-24 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트 KR100209233B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960071397A KR100209233B1 (ko) 1996-12-24 1996-12-24 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960071397A KR100209233B1 (ko) 1996-12-24 1996-12-24 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트

Publications (2)

Publication Number Publication Date
KR19980052409A true KR19980052409A (ko) 1998-09-25
KR100209233B1 KR100209233B1 (ko) 1999-07-15

Family

ID=19490679

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960071397A KR100209233B1 (ko) 1996-12-24 1996-12-24 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트

Country Status (1)

Country Link
KR (1) KR100209233B1 (ko)

Also Published As

Publication number Publication date
KR100209233B1 (ko) 1999-07-15

Similar Documents

Publication Publication Date Title
US5881260A (en) Method and apparatus for sequencing and decoding variable length instructions with an instruction boundary marker within each instruction
US6289445B2 (en) Circuit and method for initiating exception routines using implicit exception checking
KR100900364B1 (ko) 인스트럭션 실행 디바이스, 인스트럭션 실행 방법 및 컴퓨터 판독가능 메모리 매체
US6981131B2 (en) Early condition code evaluation at pipeline stages generating pass signals for controlling coprocessor pipeline executing same conditional instruction
US5394558A (en) Data processor having an execution unit controlled by an instruction decoder and a microprogram ROM
KR100423910B1 (ko) 코프로세서 명령 실행 장치 및 방법
US5907694A (en) Data processing apparatus for performing a pipeline operation on a load and extension instruction
US20070208924A1 (en) Handling of Conditional Instructions in a Data Processing Apparatus
JP4412905B2 (ja) 低電力動作制御装置、およびプログラム最適化装置
US20090063822A1 (en) Microprocessor
US6189093B1 (en) System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register
JP3781519B2 (ja) プロセッサの命令制御機構
JPH1196004A (ja) データプロセッサにおける条件分岐実行を制御するための方法および装置
JP2009526300A (ja) マイクロプロセッサ用の命令セット
US7543135B2 (en) Processor and method for selectively processing instruction to be read using instruction code already in pipeline or already stored in prefetch buffer
KR100209233B1 (ko) 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트
JPH1091441A (ja) プログラム実行方法およびその方法を利用した装置
JP3199035B2 (ja) プロセッサ及びその実行制御方法
KR20010050812A (ko) 컴퓨터 시스템 명령들의 소스 연산수들을 선택하고사용하기 위한 방법 및 시스템
JP2002259118A (ja) マイクロプロセッサ及び命令列変換装置
JP2006309454A (ja) プログラム制御方法及びプロセッサ
JP3915019B2 (ja) Vliwプロセッサ、プログラム生成装置、および記録媒体
JP2536726B2 (ja) マイクロプロセッサ
KR100631318B1 (ko) 파이프라인 아키텍처를 갖는 프로세서에서 조건 점프 명령을 처리하기 위한 방법 및 명령어 디코더
KR100515039B1 (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: 20050322

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee