KR20030007403A - 데이터 프로세싱 장치 - Google Patents

데이터 프로세싱 장치 Download PDF

Info

Publication number
KR20030007403A
KR20030007403A KR1020027009625A KR20027009625A KR20030007403A KR 20030007403 A KR20030007403 A KR 20030007403A KR 1020027009625 A KR1020027009625 A KR 1020027009625A KR 20027009625 A KR20027009625 A KR 20027009625A KR 20030007403 A KR20030007403 A KR 20030007403A
Authority
KR
South Korea
Prior art keywords
instruction
instructions
register
operand
functional unit
Prior art date
Application number
KR1020027009625A
Other languages
English (en)
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 코닌클리즈케 필립스 일렉트로닉스 엔.브이.
Publication of KR20030007403A publication Critical patent/KR20030007403A/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, look ahead
    • 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, look ahead
    • G06F9/3824Operand accessing
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30163Decoding the operand specifier, e.g. specifier format with implied specifier, e.g. top of stack
    • 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/30181Instruction operation extension or modification
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction 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)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

데이터 프로세싱 장치는 단일 인스트럭션으로 제공될 수 있는 다수의 오퍼랜드를 요하는 오퍼레이션을 실행할 수 있다. 최초 인스트럭션은 오퍼레이션의 실행을 시작하며, 시간 상 서로를 따르는 다른, 오퍼랜드 공급 인스트럭션은 상기 오퍼레이션에 대한 오퍼랜드들을 공급하는데 사용된다. 상기 오퍼랜드 공급 인스트럭션이 제 시간에 공급되지 않으면, 최초 인스트럭션의 실행이 정지된다.

Description

데이터 프로세싱 장치{DATA PROCESSING APPARATUS WITH MANY-OPERAND INSTRUCTION}
통상적인 데이터 프로세서는 비교적 작은 개수의 오퍼랜드(operand)(통상적으로 2 개의 오퍼랜드) 및 작은 개수의 리절트(result)(통상적으로 1 개)의 레지스터 로케이션을 지정하는 인스트럭션을 갖는다. 가령 2 차원 DCT(Discrete Cosine Transform)와 같은 몇몇 오퍼레이션은 상당히 보다 큰 개수의 오퍼랜드를 요한다. 큰 개수의 필요한 오퍼랜드 및 리절트로 인해 인스트러션 및 그의 오퍼랜드 레지스터로의 액세스 경로는 넓어져셔 비경제적이 되기 때문에, 상기의 오퍼레이션을 커맨드하는 단일 인스트럭션을 제공하는 것이 어렵다. 그러므로, 상기의 오퍼레이션은 작은 개수의 레지스터를 각각 액세스하는 다수의 범용 인스트럭션으로 통상적으로 분할된다. 이렇게 하는 것의 문제점은 중간 리절트가 상이한 인스트럭션에 의한 사용을 위해 레지스터 앞뒤로 보내져야 한다는 것이다.
이러한 문제점을 개선하는 알려진 한가지 방법은 연속하는 메모리 로케이션의 구역에 오펀랜드 및 리절트를 저장하는 것이다. 이 경우에, 오퍼레이션을 시작하는 인스트럭션은 상기 구역의 오직 시작 어드레스 만을 지정해야 한다. 프로세서는 오퍼랜드의 로케이션을 결정하기 위해 시작 어드레스를 이용하여, 연속적인 프로세싱 싸이클로 오펀랜드를 페치할 수 있다. 특히 다른 오퍼레이션과 병렬로 시행되는 경우, 메모리의 사용은 상기 오퍼레이션을 느리게 한다. 오퍼랜드 및 데이터를 저장하는 레지스터를 사용하는 것이 바람직하다. 그러나, 이는 다수의 프로세싱 싸이클을 위한 큰 블록의 레지스터의 보유를 필요로 한다. 이는, 다른 인스트럭션이 또한 레지스터를 사용하는 경우, 상기 다른 인스트럭션을 효율적으로 스케쥴하는 것을 어렵게 한다.
레지스터로부터의 큰 개수의 오퍼랜드를 보다 효율적으로 처리할 수 있는 데이터 프로세서는, N.Busa 등의 "Scheduling coarse grained operations for VLIW processors"(ISSS conference in Madrid, 2000)라는 제목으로 컨퍼런스 페이퍼에 개시된다. 이 프로세서는 큰 개수의 오퍼랜드를 필요로 하는 인스트럭션을 수신할 때, 프로세서는 인스트럭션의 수신 후에 연속적인 프로세싱 싸이클로 오퍼랜드를 판독한다. 이들 각 프로세싱 싸이클에 대해, 상기 프로세싱 싸이클에 대한 오퍼랜드가 판독되어야 할 레지스터를 지정하는 다른 인스트럭션이 발행된다. 상기 다른 인스트럭션은 몇 개의 오퍼랜드의 로케이션을 단지 식별하는 기능을 한다. 다중 오퍼랜드 오퍼레이션은 최초 인스트럭션에 의해 규정되고 이 오퍼레이션의 실행은 상기 다른 인스트럭션의 실행 전 후 간의 기간 동안 진행된다. 상기 다른 인스트럭션은 기능 유닛으로 하여금, 최초 인스트럭션에 의해 커맨드된 다중 오퍼랜드 오퍼레이션에서 사용되기 위해, 상기 지정된 레지스터로부터 오퍼랜드를 페치하게 한다.
이러한 것은 다중 오퍼랜드 오퍼레이션에 대해 이론적으로는 무한 개수의 오펀랜드를 사용하는 것이 가능할 뿐만 아니라, 다중 오퍼랜드 오퍼레이션의 오퍼랜드를 공급하는데 필요한 상이한 오퍼랜드의 개수를 줄이는 것이 사용될 수 있다. 일단 지정된 레지스터로부터 오펀랜드를 페치하는 인스트럭션이 실행되었다면, 다중 오퍼랜드 오퍼레이션을 위한 모든 잔여 오펀랜드가 지정되기 전에, 상기 레지스터로 다른 데이터가 기록될 수 있다. 상기 다른 데이터는 후속 인스트럭션으로부터의 지시하에서 다중 오퍼랜드 오퍼레이션에서 사용되기 위해 페치될 다른 오퍼랜드를 포함할 수 있다.
다중 오퍼랜드 오퍼레이션의 실행은, 말하자면, 모든 오펀랜드가 지정되기 전에, 최초 인스트럭션에 응답하여 시작한다. 가령, 2 차원 DCT의 경우, 실행은, 다른 열들이 판독되기 전에 변환되어야하는 2 차원 블록의 제 1 열을 사용하여, 제 1 계산 단계(first computation step)를 수행할 수 있다. 그 결과, 오퍼랜드를 생성하기 위한 다른 기능 유닛에 의해 요구되는 시간이 오펀랜드에 대한 오퍼레이션을 수행하기 위해 필요한 시간과 중첩될 수 있어, 프로세서의 속도를 증가시킨다. 이는, 병렬 및 슈퍼스칼라(superscalar) 프로세서에서 다수의 인스트럭션을 실행할 수 있는, 가령 VLIW 프로세서에서 유용하다.
유사하게, 그 오퍼레이션의 상이한 리절트는 상이한 인스트럭션 싸이클에서 레지스터로 기록될 수 있다. 이를 위해, 리절트를 기록하는 레지스터를 지정하는, 다른 인스트럭션이 제공된다. 이는 또한 레지스터의 보다 효율적인 사용 및 실행의 증가된 병렬성(parallelism)을 생성한다.
오펀랜드를 페치하고 리절트의 일부를 레지스터 파일로 기록하는 기능 유닛을 커맨드하는 인스트럭션이 컴파일러 또는 스케쥴러에 의해 스케쥴되어야 한다. 컴파일러 또는 스케줄러는 각각의 인스트럭션에 대해, (각 인스트럭션 싸이클에서) 인스트럭션이 상기 기능 유닛으로 발행되어야 하는 시기를 결정해야 한다. 컴파일러가 인스트럭션의 발행 후에 다수의 개수의 실행 싸이클로 오퍼랜드를 판독(또는 리절트를 기록)하는 인스트럭션을 스케쥴할 것을 결정할 때, 컴파일러는 또한 상이한 단계의 계산 시에 어느 레지스터로부터 오펀랜드가 판독(또는 기록)될지를 지정하는 인스트럭션을 스케쥴해야 한다. 이는 큰 개수의 인스트럭션이 고정된 시간 관계로 블록으로서 스케쥴되어야 함을 의미한다. 그러나, 이는 다른 인스트럭션을 스케쥴하는 유연성을 제한한다는 단점을 갖는다. 오퍼랜드를 생성하는 인스트럭션은, 오펀랜드를 판독하는 인스트럭션의 실행 이전에 각 오퍼랜드를 기록해야 한다(이와 유사한 제약이 리절트의 사용시에도 해당된다). 이로써, 상기 인스트럭션의 블록은 이들 생성 인스트럭션에 대한 심각한 제약을 가하여, 이로 인해 레지스터 및 기능 유닛과 같은 리소스의 비효율적인 사용을 유발한다.
인용된 문헌은, 이러한 제약이, 오퍼랜드를 판독하고 리절트를 기록하는 오퍼레이션의 정지(suspension)를 유발하는 "HALT" 인스트럭션을 스케쥴함으로써 완화될 수 있는 방법을 개시한다. 프로세서는, HALT 인스트럭션 후에, 한 인스트럭션 싸이클 이후에 오퍼레이션의 모든 오펀랜드를 판독한다.(이와 유사하게, 프로세서는 한 인스트럭션 싸이클 이후에 모든 리절트를 기록한다). 이로써, HALT 인스트럭션의 실행은 오퍼랜드를 생성하고 리절트를 소비하는 인스트럭션을 실행하기 위한 추가적 시간을 생성한다. 이러한 방식으로, 보다 유연한 스케쥴링이 가능하며, 이로써 리소스를 유지하는 것이 가능하게 된다.
그러나, HALT 인스트럭션은 발행되어야 할 추가적 인스트럭션이고, 이로써 프로그램을 위해 필요한 메모리 저장 공간을 증가시키며 다른 인스트럭션의 발행을 방해한다.
발명의 개요
그러므로, 본 발명의 목적은 상이한 인스트럭션에 의한 선택하에서 상이한 인스트럭션 싸이클에서 판독되는 다수의 오퍼랜드를 요하는 계산을 커맨드하는 인스트럭션을 실행할 수 있는 데이터 프로세싱 장치에서 추가적인 인스트럭션을 필요로 하지 않는, 인스트럭션 스케쥴링의 유연성을 제공하는 것이다.
본 발명에 따른 데이터 프로세싱 장치는 청구항 1에서 제안된다. 이 데이터 프로세싱 장치는 머신 인스트럭션의 프로그램을 실행한다. 통상의 인스트럭션은 자기 보유적이며, 실행될 오퍼레이션과, 오펀랜드 및 리절트의 로케이션을 지정하지만, 적어도 한 타입의 인스트럭션은 장치로 하여금 후속하는 인스트럭션에 의한 오펀랜드의 지정을 요하는 계산의 실행을 시작하도록 하게 한다. 본 발명에 따르면, 계산이 시작된 후에 오펀랜드를 지정하기 위해 사용되는 오펀랜드 선택 인스트럭션은 또한 계산의 실행의 진행을 제어하는 기능을 한다. 계산이 다음의오펀랜드 선택 인스트럭션을 기다리며 정지된 동안에, 다른 인스트럭션들은 실행될 수 있다. 기능 유닛은 최초 인스트럭션에 응답하여 계산을 시작한다. 오퍼랜드 선택 인스트럭션이 최초 인스트럭션 후의 사전결정된 기간 내에 발행되면, 계산은 통상적으로 중지되지 않고 진행된다. 오퍼랜드 선택 인스트럭션이 나중에 발행되면, 계산의 실행은 오퍼랜드 선택 인스트럭션이 발행될 때까지 정지된다. 이는 오퍼랜드 선택 인스트럭션이 스케쥴링되는 시간을 선택하는 유연성을 컴파일러 또는 스케쥴러에게 부여하여, 오퍼랜드를 생성하거나 오퍼랜드에 대한 사용을 위한 레지스터를 비어놓기 위한 중간 인스트럭션을 스케쥴링하는 여지를 남긴다. 이러한 방식으로, 보다 많은 인스트럭션 스케쥴링이 가능하며, 이로써 리소스의 보다 효율적인 사용이 가능하게 된다.
바람직한 실시예에서, 그의 오퍼레이션 코드로부터 오퍼랜드 선택 인스트럭션을 검출하기 위해, 기능 유닛은 계산의 실행 동안 기능 유닛으로부터 발행되는 오퍼레이션 코드를 모니터한다. 오퍼레이션 코드가 검출되지 않는다면, 다중 오퍼랜드 인스트럭션의 실행은 정지된다. 이는 복잡한 상호 메카니즘(complex handshake mechanism)을 필요로 하지 않는 간단한 구현을 제공한다. 바람직하게는, 이 오퍼랜드 선택 인스트럭션으로부터의 레지스터 선택 코드는, 오퍼레이션 코드 값에 무관하게, 기능 유닛에 부착되는 레지스터 파일의 포트에 직접적으로 공급된다. 그러나, 오퍼랜드 선택 인스트럭션에 의존하는 계산의 정지는 가령 포트를 모니터함으로써 기능 유닛에서 실현할 수 있으며, 상기 포트에 의해, 오퍼랜드가 오퍼랜드 선택 인스트럭션에 응답하여 사용 가능한 시기를 결정하기 위해, 상기기능 유닛이 레지스터 파일에 접속된다. 포트 및 기능 유닛 간에 FIFO 큐가 존재하여, 하나 이상의 오퍼랜드의 버퍼링을 허용한다.
본 발명에 따른 프로세싱 장치의 실시예에서, 계산의 단계가 실행되는 순서는 오퍼랜드 선택 인스트럭션에 의해 가이드된다. 이로써, 컴파일러 또는 스케쥴러는 계산이 실행되는 순서에 영향을 주는 자유도를 얻는다. 컴파일러 또는 스케쥴러는 이러한 자유도를 사용하여 가령 오퍼랜드를 생성하는 리소스가 사용가능하게 시퀀스를 적응시킬 수 있다. 이는 보다 효율적인 스케쥴을 가능하게 한다.
본 발명에 따른 프로세싱 장치의 다른 실시예에서, 계산의 일시 정지는 오퍼랜드 선택 인스트럭션의 발행 및 지정된 오퍼랜드의 타당성에 의존한다. 이 경우에, 프로세싱 장치의 프로그램은 가령 루프 바디의 상이한 실행 동안 오퍼랜드 선택 인스트럭션을 여러번 발행하도록 구성된다. 오퍼랜드 레지스터에 추가적으로, 오퍼랜드 선택 인스트럭션은 오퍼랜드에 대한 레지스터의 내용이 이미 타당한 오퍼랜드를 나타내는지의 여부를 표시하는 신호를 위한 신호 레지스터를 지정한다. 기능 유닛은 타당한 오퍼랜드를 생성하는 오퍼랜드 선택 인스트럭션이 발행될 때까지 오퍼레이션을 정지시킨다.
본 발명에 따른 프로세싱 장치의 다른 실시예에서, 계산 단계들의 실행은 또한 리절트 데이터를 저장하는 레지스터를 지정하는 리절트 지정 인스트럭션이 사전결정된 시간 간격 내에 수신되지 않을 때에도 정지된다. 바람직하게는, 리절트 지정 인스트럭션의 검출은 기능 유닛으로 발행되는 인스트럭션의 리절트 지정 인스트럭션의 오퍼레이션 코드를 검출함으로써 구현된다.
본 발명에 따른 프로세싱 장치의 다른 실시예에서, 리절트 지정 인스트럭션은 리절트가 타당한지를 표시하는 신호를 저장하는 신호 레지스터를 지정한다. 기능 유닛은 지정된 신호 레지스터 내에 이 신호를 저장한다. 이러한 방식으로, 가령 새로운 리절트를 생성하기 위해 필요한 시간의 양이 오퍼랜드에 의존하기 때문에, 리절트 지정 인스트럭션이 발행되는 시간에 리절트가 사용가능하지 않을 지라도 기능 유닛이 진행될 수 있다.
본 발명에 따른 프로세싱 장치의 이들 및 다른 측면은 도면을 참조하여 보다 상세하게 설명될 것이다.
본 발명은 데이터 프로세싱 장치에 관한 것이다.
도 1은 프로세서의 도면,
도 2는 기능 유닛의 도면.
도 1은 인스트럭션 발행 유닛(10), 다수의 기능 유닛(12a,b), 레지스터 파일(14), 인스트럭션 클록(16)을 포함하는 프로세서를 도시한다. 가령, VLIW(Very Large Instruction Word) 타입 프로세서가 도시된다. 인스트럭션 발행 유닛(10)은 다양한 기능 유닛(12a,b)에 접속된 인스트럭션 출력을 갖는다. 기능 유닛(12a,b)은 레지스터 파일(14)의 포트에 접속된다. 인스트럭션 클록(16)은 인스트럭션 발행 유닛(10), 기능 유닛(12a,b), 레지스터 파일(14)에 접속된다.
도 1은 기능 유닛 중의 하나(12a)를 보다 상세하게 도시한다. 기능 유닛(12a)은 인스트럭션 레지스터(120), 인스트럭션 디코더(122), 클록 게이트(124), 실행 유닛(126), 판독 포트(128a,b), 기록 포트(129)를 포함한다. 인스트럭션 레지스터(120)는 인스트럭션 발행 유닛(10)에 접속된 입력 및 인스트럭션 디코더(122)에 접속된 오퍼레이션 코드 출력과, 판독 포트(128a,b)에 접속된 오퍼랜드 선택 출력과, 기록 포트(129)에 접속된 리절트 선택 입력을 갖는다. 판독 포트(128a,b) 및 기록 포트(129)는 레지스터 파일(14)에 접속된다. 인스트럭션 디코더는 실행 유닛(126)에 접속된다. 인스트럭션 클록(16)은 인스트럭션 레지스터(120) 및 인스트럭션 디코더(122)에 접속된다. 인스트럭션 클록(16)은 클록 게이트(124)를 통해 실행 유닛(126)에 접속된다. 클록 게이트(124)는 인스트럭션 디코더(122)에 접속된 인에이블 입력을 갖는다.
오퍼레이션 시에, 인스트럭션 발행 유닛(10)은 기능 유닛(12a,b)에 인스트럭션을 발행한다. 인스트럭션 클록(16)에 도시된 바처럼, 각 인스트럭션 싸이클에서, 새로운 인스트럭션이 기능 유닛(12a,b)으로 발행된다. 이를 위해, 인스트럭션 발행 유닛은 바람직하게는 인스트럭션 메모리(도시되지 않음) 및 다음 인스트럭션이 페치되어야 하는 인스트럭션 메모리 내의 어드레스를 나타내는 프로그램 카운터(도시되지 않음)를 포함한다. 프로그램 카운터는 각 인스트럭션 싸이클에서 증분되거나 분기 인스트럭션에 응답하여 분기 타겟 값으로 변경된다.
통상적으로, 각 인스트럭션은 오퍼레이션 코드, 2 개의 오퍼랜드 레지스터 선택 코드 및 하나의 리절트 레지스터 선택 코드를 포함한다. 오퍼레이션 코드는인스트럭션에 응답하여 기능 유닛(12a,b)에 의해 실행되어야 하는 오퍼레이션의 타입을 지정한다. 오퍼랜드 레지스터 선택 코드는 오퍼레이션를 위한 오퍼랜드가 페치되어야 하는 레지스터 파일(14) 내의 레지스터를 지정한다. 리절트 레지스터 선택 코드는 오퍼레이션의 리절트가 기록되어야 하는 레지스터 파일(14) 내의 레지스터를 지정한다.
기능 유닛(12a)은 인스트럭션 발행 유닛(10)으로부터 인스트럭션을 수신하며 인스트럭션 레지스터(120) 내에 인스트럭션을 저장한다. 인스트럭션 레지스터(120)는 오퍼레이션 코드, 오퍼랜드 레지스터 선택 코드 및 리절트 선택 코드에 대한 필드를 갖는다. 오퍼레이션 코드에 대한 필드의 내용은 인스트럭션 디코더(122)에 공급된다. 오퍼랜드 레지스터 선택 코드에 대한 필드의 내용은 레지스터 파일(14)로의 판독 포트(128a,b)의 레지스터 어드레스 부분에 공급된다. 리절트 레지스터 선택 코드에 대한 필드의 내용은 레지스터 파일(14)로의 기록 포트(129)의 레지스터 어드레스 부분에 공급된다. 인스트럭션 디코더(122)는 인스트럭션을 디코드하며 이에 응답하여 적당한 제어 코드를 실행 유닛(126)에 공급한다. 레지스터 파일(14)은 레지스터 어드레스를 수신하여, 그 어드레스된 레지스터로부터의 데이터를 판독 포트(128a,b)를 통하여 실행 유닛(126)으로 출력한다. 실행 유닛(126)은 오퍼레이션의 실행 시의 판독 포트로부터의 데이터를 사용하여 및 리절트를 기록 포트(129)로 출력한다.
프로세서에서, 다수의 기능 유닛(도시되지 않음)은 동일한 판독 및 기록 포트 및 인스트럭션 발행 유닛(10)의 동일한 출력에 접속될 수 있다. 이 경우에,인스트럭션 실행 유닛(10)에 의해 발행된 인스트럭션은 이들 기능 유닛 중 어느 것이, 오퍼랜드 레지스터를 사용하여 인스트럭션 내에 지정된 리절트 레지스터로 기록하는, 인스트럭션을 실행할 지를 결정한다.
바람직하게는, 도 1의 프로세서는 파이프라인형 프로세서(pipelined)이며, 여기서 연속적인 인스트럭션의 실행의 상이한 단계들이 병렬로 실행된다. 이로써, 가령, 보다 이른 인스트럭션에 의해 지시된 계산의 실행 동안 및 보다 더 이른 인스트럭션의 리절트의 재기록 동안 오퍼랜드는 레지스터 파일(14)로부터 페치된다. 마찬가지로, 오펀랜드가 페치될 때, 인스트럭션 발행 유닛(10)은 나중의 인스트럭션을 페치 중일 것이다. 이는 인스트럭션 실행과 관련된 신호에 다양한 지연을 줌으로써 실현된다. 본 발명의 설명을 간단하게 하기 위해, 이러한 파이프라인 측면은 도 1의 설명에서 내포적으로 남겨질 것이다. 동일한 인스트럭션의 인스트럭션 실행의 모든 파이프라인 단계들은 한 스테이지로 논의될 것이다.
통상적으로, 기능 유닛(12a,b)에 의한 연속적인 인스트럭션의 실행은 독립적이다. 인스트럭션에 응답하여 실행된 오퍼레이션은 항상 동일하며, 기능 유닛에 의해 조기에 실행되었던 인스트럭션과는 무관한다. 대부분 그러나 이 경우는 특별하지만, 기능 유닛(12a,b)은 나중의 인스트럭션의 실행 동안 사용하기 위한 조건 코드를 보유한다. 각 인스트럭션 싸이클에서, 새로운 인스트럭션의 실행은 시작될 수 있다. 그러나, 본 발명에 따른 프로세서에서는, 이는 수 많은 오퍼랜드를 요하는 오퍼레이션의 실행에 대해서는 상이하다.
본 발명에 따른 프로세서에서, 기능 유닛(12a)은 두 개 이상의 오퍼랜드를요하는 계산을 실행하도록 구성된다. 실행 유닛(126)은 최초의 인스트럭션으로 칭해질 인스트럭션에 응답하여 상기 계산을 시작한다. 계산은 최초의 인스트럭션 다음에 실행되는 오퍼랜드 선택 인스트럭션에 응답하여 페치되는 오퍼랜드를 사용한다. 최초 인스트럭션의 오퍼레이션 코드는 오퍼랜드 선택 인스트럭션에 응답하여 페치된 오퍼랜드로 무엇을 행할지를 결정한다.
최초 인스트럭션의 오퍼레이션 코드에 응답하여, 인스트럭션 디코더(122)는 다중 오퍼랜드 계산을 시작하는 실행 유닛으로 제어 코드를 보낸다. 이러한 계산은 인스트럭션 클록에 의해 한계가 정해지는, 다수의 인스트럭션 싸이클을 통해 계속된다. 최초 인스트럭션 싸이클이 발행되는 인스트럭션 싸이클 다음에 오는 하나 또는 그 이상의 인스트럭션 싸이클에서, 오퍼랜드 선택 인스트럭션 또는 다수의 어퍼랜드 선택 인스트럭션들이 발행된다. 오퍼랜드 선택 인스트럭션은 기능 유닛으로 하여금 인스트럭션의 오퍼랜드 필드로부터의 어드레스를 레지스터 파일(14)로 보내게 한다. 이에 따라, 레지스터 파일(14)은 어드레스된 레지스터의 내용을 실행 유닛(126)으로 보낸다. 인스트럭션 디코더(122)는 상기 인스트럭션이 기능 유닛(12a)에 대한 오퍼랜드 선택 인스트럭션임을 오퍼랜드 선택 인스트럭션의 오퍼레이션 코드로부터 검출한다. 이에 따라, 인스트럭션 디코더(122)는 인에이블 신호를 클록 게이트(124)에 공급하며 인스트럭션 디코더(122)는 제어 코드를 실행 유닛(126)에 공급한다. 제어 코드는 실행 유닛(126)으로 하여금, 오퍼랜드 선택 인스트럭션에 응답하여 페치된 오펀랜드를 사용하여, 최초 인스트럭션에 의해 커맨드된 계산의 실행을 진행하게 한다. 인스트럭션 디코더(122)가오퍼랜드 선택 인스트럭션을 검출하지 않을 때, 인스트럭션 디코더는 신호를 클록 게이트(124)에 보내어 실행 유닛(126)의 클록킹(clocking)을 디스에이블한다. 이로써, 계산의 실행은 어떠한 오퍼랜드 선택 인스트럭션도 발행되지 않을 때에는 정지된다. 이는 계산의 실행이 일시 정지된 기간에, 가령 기능 유닛으로 다른 인스트럭션을 실행하는 것과, 오퍼랜드를 계산하는 것을 가능하게 한다. 실행의 이러한 정지는 최초 인스트럭션에 의해 커맨드된 계산을 실행 중인 기능 유닛(12a)에만 영향을 준다. 인스트럭션 발행 유닛(10)의 동일한 출력 및 레지스터 파일의 동일한 판독 포트 및 기록 포트로의 일시 정지된 기능 유닛(12a)과 병렬로 접속된 기능 유닛(12b) 및 다른 기능 유닛(도시되지 않음)과 같은 다른 기능 유닛에 의한 실행은 정지되지 않는다. 이러한 기능 유닛은 오퍼랜드를 계산하는데 사용될 수 있다.
물론, 이는 오직 본 발명의 일 실시예일 뿐이다. 이 실시예에서, 어떠한 오퍼랜드 선택 인스트럭션도 수신되지 않을 때, 하나 이상의 그러한 오퍼랜드 선택 인스트럭션이 필요하다면, 계산은 각 인스트럭션 싸이클에서 정지된다. 다른 실시예에서, 계산은 보다 복잡한 실행 프로파일을 가지며, 여기서는 오퍼랜드는 계산이 실행되는 인스트럭션 싸이클의 서브세트에서만 오직 필요하다. 어떤 오퍼랜드도 상이한 오퍼랜드 선택 인스트럭션이 실행되는 인스트럭션 싸이클들 간의 인스트럭션 싸이클로부터는 필요하지 않다. 이 실시예에서, 실행 유닛(126)은 오퍼랜드 선택 인스트럭션의 필요 여부를 표시하는 클록 게이트(124)에 접속된 출력(도시되지 않음)을 갖는다. 클록 게이트(126)는, 오퍼랜드 선택 인스트럭션이 필요하고상기 어떠한 인스트럭션도 인스트럭션의 오퍼레이션 코드에서 검출되지 않을 경우에만, 클록을 디스에이블할 것이다. 물론, 오퍼랜드 선택 인스트럭션의 필요 여부를 결정하는 것은 인스트럭션 디코더(122)로 수행될 수 있으며 클록 게이트(124)로의 디스에이블 신호의 생성시에 사용될 수 있다.
다른 실시예에서, 오퍼랜드 선택 인스트럭션은 오퍼랜드가 실제적으로는 실행 유닛(126)에 의해 필요되기 전에 실행될 수 있다. 이 실시예에서는, 오퍼랜드 선택 인스트럭션에 응답하여 페치된 오퍼랜드들은 실행 유닛(126)에서 래치(latch)된다. 클록 게이트(16)는 오퍼랜드 선택 인스트럭션이 수신되었는지의 여부를 표시하는 인스트럭션 디코더(122)로부터의 신호에 의해 대기 상태로 세트된다. 클록 게이트(16)는 그것이 대기 상태가 아닐때 클록을 디스에이블하고 실행 유닛(126)은 그것이 오퍼랜드 선택 인스트럭션으로부터의 오퍼랜드를 필요로 함을 표시한다. 이 경우에, 인스트럭션 디코더(122)가 오퍼랜드 선택 인스트럭션을 검출하였음을 신호로 통지하기 전까지는 클록은 디스에이블 상태로 유지된다. 이로써, 오퍼랜드 선택 인스트럭션은 임의의 인스트럭션 싸이클에서도 스케쥴될 수 있다. 계산의 실행은 오퍼랜드 선택 인스트럭션이 사전결정된 인스트럭션 싸이클 보다 나중에 스케쥴 될 경우에만 정지될 것이다.
기능 유닛(12a)은 오퍼랜드 선택 인스트럭션과 동일한 방식으로 리절트 레지스터 선택 인스트럭션에 응답하도록 구성될 수 있다. 리절트 레지스터 선택 인스트럭션은 다중 리절트를 기록해야만 하는 계산에 대해 사용된다. 이들 인스트럭션은 최초의 인스트럭션에 의해 시작된 계산의 리절트가 기록되어야만 하는 레지스터를 지정한다. 오퍼랜드 선택 인스트럭션의 경우에서처럼, 실행 유닛(126)에 의한 실행은 리절트 레지스터 선택 인스트럭션이 적절한 시간에 수신되지 않을 때에 정지된다.
지금까지 상술된 실시예에서는, 오퍼랜드 선택 인스트럭션(또는 리절트 레지스터 선택 인스트럭션)의 오퍼레이션 코드는 오직 인스트럭션 디코더(122) 내의 그 인스트럭션을 검출하는데에만 사용되었다. 실행 유닛(126)에 의해 수행된 계산은 이들 인스트럭션의 타이밍에 의존하여 정지될 수 있으나, 이와 달리는 영향을 받지 않는다. 여기에 구현하기 가장 용이한 실시예가 있다. 보다 복잡한 실시예에서, 오퍼랜드 선택 인스트럭션의 오퍼레이션 코드는 오퍼랜드의 로케이션을 지정할 뿐만 아니라, 어느 오퍼랜드가 지정되는지도 명시한다. 오퍼레이션 코드에 의존하여, 인스트럭션 디코더는 실행 유닛이 한 순차(one order) 또는 다른 순차로 최초 인스트럭션에 의해 커맨드된 계산을 실행하도록 명령한다. 가령, 2 차원 블록 변환 계산의 경우에, 열들이 처리되는 순차는, 오퍼랜드 선택 인스트럭션에 의해 표시되는 바와 같이, 열에 대한 오퍼랜드 데이터가 실행 유닛(126)으로 공급되는 순차에 의존하여 선택될 수 있다. 마찬가지로, 리절트 레지스터 선택 인스트럭션의 오퍼레이션 코드는 리절트가 로케이션에 추가되어 재기록되는 순차를 선택하는데 사용될 수 있다.
도 2는 도 1에 도시된 바와 같은 프로세서에서 사용되는 기능 유닛을 도시한다. 이 기능 유닛은, 도 2의 경우에는 계산이 데이터 의존 신호에 의존하여 정지될 수 있다는 점을 제외하면, 도 1의 기능 유닛(12a)과 유사하다. 유사한 참조번호는 도 1과 유사한 구성 요소를 가르킨다. 정지 데이터(suspension data)가 의존적이 되도록 하기 위해, 인스트럭션은 신호를 포함하는 레지스터를 지정하는 추가적인 필드를 포함한다. 인스트럭션 레지스터(120)는 신호를 판독하는 레지스터 판독 포트(128c)에 결합되는 필드를 포함한다. 이 포트(128c)의 출력은 클록 게이트(124)에 접속된다.
오퍼레이션 시에, 실행 유닛(126)의 클록은 인스트럭션 디코더(122)가 오퍼랜드 선택 인스트럭션이 검출되었음을 신호로 알리지 않을 때에는 디스에이블되며 판독 포트(128c)로부터 수신된 신호는 사전결정된 값을 갖는다. 다음은 이러한 특징을 사용하는 상징적인 프로그램 프래그먼트(fragment)의 실례이다.
START COMPUTATION
REPEAT N TIMES UNTIL ENDOFLOOP
PRODUCE D,S
SELECT OPERANDS S,D
ENDOFLOOP
이 프로그램 프래그먼트는 도 2의 기능 유닛에 공급되는, 인스트럭션 "START COMPUTATION"으로 다중 오퍼랜드 계산을 시작한다. 이 후에, 두 인스트럭션(PRODUCE 및 SELECT OPERAND)의 루프 바디가 N 번 실행된다. PRODUCE 인스트럭션은 레지스터(D) 내의 데이터 및 이 데이터가 타당하는 지의 여부를 명시하는 레지스터(S) 내의 신호를 생성한다. SELECT OPERAND 인스트럭션은 도 2의 기능 유닛에 공급되어 START COMPUTATION 인스트럭션에 의해 시작된 계산에 대한오퍼랜드를 제공한다. SELECT OPERAND 인스트럭션의 오퍼랜드의 로케이션은 레지스터(S,D)에 의해 지정된다. 계산은 레지스터(S)로부터의 신호가 레지스터(D)로부터의 데이터가 타당하지 않음을 표시할 때 정지된다. 이로써, 타당하지 않은 데이터를 처리하는데 어떤 조건적 분기 인스트럭션도 필요하지 않게 된다. 루프 바디 오퍼랜드의 실행이 실제로 제공되는 프로그램으로부터는 이는 분명할 필요가 없다.
START COMPUTATION 인스트럭션에 의해 시작되는 오퍼레이션 동안 사용되는 오퍼랜드 및 신호를 제공하는 레지스터(D,S)의 반복된 사용은, 이러한 계산의 오퍼랜드가 계산 동안 연속적으로 지정되고 제공되는 경우에만 가능하다. 만일 오퍼랜드가 병렬로 공급되어야 한다면, 상이한 레지스터가 이들 오퍼랜드를 생성하는 루프 바디의 상이한 실행에 대해서 필요할 것이다.
상기 프로그램 프래그먼트는 단지 상징적인 것이다. 인스트럭션은 설명의 편리함을 위해 명칭되었다. 설명을 위해 필요하지 않은 인스트럭션 및 오퍼랜드는 생략되었다. 실제로, PRODUCE 인스트럭션은 레지스터(D) 내의 데이터 및 레지스터(S) 내의 신호를 생성하는 인스트럭션의 바디를 나타낸다.
도 1의 기능 유닛(12a)의 문맥에서 논의된 다양한 다른 실시예들은 도 2의 기능 유닛에도 적용될 수 있다. 가령, 계산의 정지는 실행 유닛(126)이 실제적으로 오퍼랜드를 필요로하는 인스트럭션 싸이클로 제한될 수 있다.

Claims (8)

  1. 데이터 프로세싱 장치에 있어서,
    액세스 포트를 갖는 레지스터 파일과,
    상기 액세스 포트에 접속되어 오퍼랜드를 수신하는 기능 유닛과,
    프로그램으로부터 연속적인 인스트럭션을 발행하는 인스트럭션 발행 유닛을 포함하되,
    상기 인스트럭션 발행 유닛은 상기 액세스 포트에 접속되어 인스트럭션 내의 지정된 오퍼랜드를 판독하기 위해 레지스터를 선택하며, 상기 기능 유닛은 상기 인스트럭션들 중의 제 1 인스트럭션의 수신에 응답하여 계산의 실행을 시작하도록 구성되며, 상기 계산에서 사용되는 오퍼랜드들 중 적어도 하나를 판독하는 상기 레지스터 파일 내의 레지스터는 상기 인스트럭션들 중 제 1 인스트럭션의 발행 후에 상기 인스트럭션 발행 유닛에 의해 발행된 인스트럭션들 중 제 2 인스트럭션으로 지정되며, 상기 기능 유닛은 인스트럭션들 중 상기 제 2 인스트럭션이 발행된 이후 인스트럭션들 중 상기 제 1 인스트럭션의 수신 후의 사전결정된 수의 인스트럭션 싸이클 내에 실행되지 않을 때 계산의 실행을 정지하도록 구성되는
    데이터 프로세싱 장치.
  2. 제 1 항에 있어서,
    각 인스트럭션은 오퍼레이션 코드를 포함하며, 상기 기능 유닛은 상기 인스트럭션 발행 유닛으로부터 상기 기능 유닛으로 발행된 인스트럭션들의 오퍼레이션 코드를 검출하고, 상기 인스트럭션들 중 제 2 인스트럭션을 식별하는 오퍼레이션 코드의 검출 후까지는 상기 인스트럭션들 중 제 1 인스트럭션에 의해 지정된 계산의 실행을 정지하도록 구성되는
    데이터 프로세싱 장치.
  3. 제 2 항에 있어서,
    상기 인스트럭션들 각각은 오퍼랜드 레지스터 선택 코드에 대한 필드를 포함하며, 상기 기능 유닛은 상기 필드의 내용을 상기 오퍼레이션 코드에 무관한 상기 액세스 포트로 공급하는
    데이터 프로세싱 장치.
  4. 제 2 항에 있어서,
    상기 기능 유닛은 상기 계산의 단계들이 상기 오퍼레이션 코드에 따라 실행되는 순차를 선택하는
    데이터 프로세싱 장치.
  5. 제 1 항에 있어서,
    상기 인스트럭션들 중 제 2 인스트럭션은 상기 레지스터 파일 내의 신호 레지스터를 지정하며, 상기 기능 유닛은 상기 인스트럭션들 중 제 2 인스트럭션에 응답하여 상기 지정된 신호 레지스터로부터 신호를 수신하도록 구성되며, 상기 기능 유닛은 상기 신호가 적어도 하나의 오퍼랜드가 타당함을 표시하는 사전결정된 값을 가지지 않는다면 상기 계산을 정지하는
    데이터 프로세싱 장치.
  6. 제 1 항에 있어서,
    상기 기능 유닛은 상기 인스트럭션들 중 각각의 다른 것들에 응답하여 상기 레지스터 파일로 상기 계산의 리절트의 상이한 일부를 기록하도록 구성되며, 상기 인스트럭션들 중의 각 다른 하나는 상기 리절트의 일부를 기록하기 위한 상기 레지스터 파일 내의 레지스터를 지정하는
    데이터 프로세싱 장치.
  7. 제 6 항에 있어서,
    상기 인스트럭션들 중 각각의 다른 것들은 각기 오퍼레이션 코드 및 상기 리절트의 일부 중 하나를 기록하기 위한 레지스터 파일 내의 레지스터에 대한 적어도 하나의 참조를 포함하며, 상기 기능 유닛은 상기 계산의 단계들이 상기 오퍼레이션 코드가 수신되는 순차에 따라 실행되는 순차를 선택하는
    데이터 프로세싱 장치.
  8. 제 6 항에 있어서,
    상기 인스트럭션들 중 다른 것들은 각기 상기 레지스터 파일 내의 신호 레지스터 및 리절트 부분 레지스터를 지정하며, 상기 기능 유닛은, 상기 다른 인스트럭션의 수신에 대해 사전결정된 시간에, 상기 리절트 부분 및 신호를 상기 리절트 부분 레지스터 및 상기 신호 레지스터에 각기 출력하도록 구성되며, 상기 기능 유닛은 상기 다른 인스트럭션에서 필요한 리절트 부분이 상기 시간에 사용 가능한지의 여부를 결정하도록 구성되며, 상기 기능 유닛은 상기 신호로 상기 리절트 부분이 상기 시간에 사용 가능하는 지의 여부를 표시하는
    데이터 프로세싱 장치.
KR1020027009625A 2000-11-27 2001-11-19 데이터 프로세싱 장치 KR20030007403A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP00204203.4 2000-11-27
EP00204203 2000-11-27

Publications (1)

Publication Number Publication Date
KR20030007403A true KR20030007403A (ko) 2003-01-23

Family

ID=8172339

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027009625A KR20030007403A (ko) 2000-11-27 2001-11-19 데이터 프로세싱 장치

Country Status (5)

Country Link
US (1) US20020083313A1 (ko)
EP (1) EP1340142A2 (ko)
JP (1) JP3754418B2 (ko)
KR (1) KR20030007403A (ko)
WO (1) WO2002042907A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101311187B1 (ko) * 2004-09-22 2013-09-26 코닌클리케 필립스 일렉트로닉스 엔.브이. 기능 유닛이 판독 포트를 공유하는 데이터 처리 회로

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237216B2 (en) * 2003-02-21 2007-06-26 Infineon Technologies Ag Clock gating approach to accommodate infrequent additional processing latencies
US9710269B2 (en) * 2006-01-20 2017-07-18 Qualcomm Incorporated Early conditional selection of an operand
WO2008030093A2 (en) * 2006-09-06 2008-03-13 Silicon Hive B.V. Data processing circuit with a plurality of instruction modes
US9280344B2 (en) * 2012-09-27 2016-03-08 Texas Instruments Incorporated Repeated execution of instruction with field indicating trigger event, additional instruction, or trigger signal destination
US11681531B2 (en) 2015-09-19 2023-06-20 Microsoft Technology Licensing, Llc Generation and use of memory access instruction order encodings
US10061584B2 (en) 2015-09-19 2018-08-28 Microsoft Technology Licensing, Llc Store nullification in the target field
US10198263B2 (en) 2015-09-19 2019-02-05 Microsoft Technology Licensing, Llc Write nullification
US10031756B2 (en) * 2015-09-19 2018-07-24 Microsoft Technology Licensing, Llc Multi-nullification
US10180840B2 (en) 2015-09-19 2019-01-15 Microsoft Technology Licensing, Llc Dynamic generation of null instructions

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233281A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 電子計算機
US6076154A (en) * 1998-01-16 2000-06-13 U.S. Philips Corporation VLIW processor has different functional units operating on commands of different widths
EP0942359B1 (en) * 1998-02-19 2012-07-04 Lantiq Deutschland GmbH An apparatus for executing instructions of a program
US6957321B2 (en) * 2002-06-19 2005-10-18 Intel Corporation Instruction set extension using operand bearing NOP instructions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101311187B1 (ko) * 2004-09-22 2013-09-26 코닌클리케 필립스 일렉트로닉스 엔.브이. 기능 유닛이 판독 포트를 공유하는 데이터 처리 회로

Also Published As

Publication number Publication date
EP1340142A2 (en) 2003-09-03
JP3754418B2 (ja) 2006-03-15
US20020083313A1 (en) 2002-06-27
WO2002042907A3 (en) 2002-08-15
JP2004514986A (ja) 2004-05-20
WO2002042907A2 (en) 2002-05-30

Similar Documents

Publication Publication Date Title
US5961637A (en) Split branch system utilizing separate set branch, condition and branch instructions and including dual instruction fetchers
US5692169A (en) Method and system for deferring exceptions generated during speculative execution
US6272616B1 (en) Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths
US6665776B2 (en) Apparatus and method for speculative prefetching after data cache misses
US5854934A (en) Optimizing compiler having data cache prefetch spreading
US6959379B1 (en) Multiple execution of instruction loops within a processor without accessing program memory
JPH0823818B2 (ja) 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置
KR20010109354A (ko) 프로세서내의 기록 트래픽을 감소시키는 시스템 및 방법
KR20030007403A (ko) 데이터 프로세싱 장치
US5226166A (en) Parallel operation processor with second command unit
US5727177A (en) Reorder buffer circuit accommodating special instructions operating on odd-width results
US7565658B2 (en) Hidden job start preparation in an instruction-parallel processor system
EP0982655A2 (en) Data processing unit and method for executing instructions of variable lengths
US6735687B1 (en) Multithreaded microprocessor with asymmetrical central processing units
US20050102659A1 (en) Methods and apparatus for setting up hardware loops in a deeply pipelined processor
JP2006522398A (ja) パイプライン型命令プロセッサにおけるバイパスの使用
US5911083A (en) Programmable processor execution rate controller
JP2874351B2 (ja) 並列パイプライン命令処理装置
US20060212678A1 (en) Reconfigurable processor array exploiting ilp and tlp
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
US5363490A (en) Apparatus for and method of conditionally aborting an instruction within a pipelined architecture
JP2536726B2 (ja) マイクロプロセッサ
JPH10232775A (ja) プリフェッチ機構
JPH063583B2 (ja) 命令デコード・サイクル中にアドレスを生成するデジタル・コンピュータおよびその方法
KR910017292A (ko) 마아크로 프로세서(micro processor)

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee