KR19990072645A - 프로그램제어유닛의명령페치장치및방법 - Google Patents

프로그램제어유닛의명령페치장치및방법 Download PDF

Info

Publication number
KR19990072645A
KR19990072645A KR1019990005001A KR19990005001A KR19990072645A KR 19990072645 A KR19990072645 A KR 19990072645A KR 1019990005001 A KR1019990005001 A KR 1019990005001A KR 19990005001 A KR19990005001 A KR 19990005001A KR 19990072645 A KR19990072645 A KR 19990072645A
Authority
KR
South Korea
Prior art keywords
command
instruction
unit
program execution
command queue
Prior art date
Application number
KR1019990005001A
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 KR19990072645A publication Critical patent/KR19990072645A/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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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/382Pipelined decoding, e.g. using predecoding
    • 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/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명에 따른 장치 및 방법은 명령 데이터를 명령 큐 유닛에 기입할 때 및/또는 명령 큐 유닛으로부터 명령 데이터를 판독할 때 명령 큐 유닛내의 다수의 특정 장소가 선택적으로 스타트 될 수 있도록 설계된 명령 큐 유닛이 제공되는 것을 특징으로 한다. 따라서, 프로그램 실행시 포우즈의 발생이 최소로 감소될 수 있다.

Description

프로그램 제어 유닛의 명령 페치 장치 및 방법 {DEVICE AND METHOD FOR FETCHING INSTRUCTION FOR A PROGRAM CONTROLLED UNIT}
본 발명은 청구항 제 1항의 전문에 따른 장치 및 청구항 제 2항의 전문에 따른 방법, 즉 프로그램 메모리로부터 미리 페치된 명령 데이터의 대기를 위한 명령 큐 유닛을 포함하는 프로그램 제어 유닛의 명령 페치 장치 및 방법에 관한 것이다.
상기 장치 및 방법에 의해 명령 데이터가 공급되는 프로그램 제어 유닛은 예컨대 마이크로 프로세서, 마이크로 콘트롤러 등이다.
명령 큐 유닛은 프로그램 제어 유닛의 명령 페치 장치의 구성 부분이다. 명령 큐 유닛은 명령을 나타내는 다수의 명령 데이터를 일시 저장하고, 필요할 때, 즉 관련 명령이 처리되려고 할 때, 프로그램 제어 유닛의 명령 실행 장치로 출력시키도록 설계된다.
명령 큐 유닛에 기입된 명령 데이터는 프로그램 제어 유닛의 내부 또는 외부에 제공된 프로그램 메모리로부터 판독된다. 프로그램 메모리로부터 명령 데이터의 페치 및 명령 큐 유닛에 명령 데이터의 기입은 중단 없이 일반적으로 프로그램 제어 유닛, 보다 정확히 말하면 그것의 명령 실행 장치가 명령을 실행하는 리듬과 무관하게 이루어진다; 이러한 과정은 처리될 명령이 명령 큐 유닛내에 겹쳐쓰기 되는 경우에만 중단된다.
명령을 나타내는 명령 데이터가 명령 큐 유닛내에서 대기하는 것은 바람직한 것으로 나타났는데, 그 이유는 명령 큐 유닛이 명령 데이터에 대한 매우 신속한 액세스를 가능하게 하며 프로그램 제어 유닛의 명령 실행 장치가 다음 명령을 나타내는 명령 데이터를 더 이상 대기하지 않거나 또는 드물게만 대기하면 되기 때문이다.
이것은 물론 명령이 프로그램 메모리(및 그에 따라 명령 큐 유닛에도)에 저장된 순서로 그것이 처리되는 경우에만 적용된다. 이것은 프로그램 실행시 점프 명령, 태스크 교체, 인터럽트 등이 발생되지 않는 경우이다. 비-어드레스 순차적 프로그램 실행이 발생되면, 명령 큐 유닛에 대기하고 있는 명령 데이터가 더 이상 사용될 수 없는데, 그 이유는 이것이 기껏해야 우연히 점프 후에 실행될 명령이 페치되는 어드레스를 갖기 때문이다. 이러한 이벤트에 반응하여 대개 소위 큐 플러시(Queue Flush)가 일어나고, 상기 큐 플러시에 의해 명령 큐 유닛에 대기하고 있는 데이터가 거부되고 프로그램 메모리로부터 명령 데이터의 판독(및 명령 큐 유닛내로 그것의 기입)이 점프의 목표 어드레스부터 계속된다.
이러한 상황에서 프로그램 실행시 포우즈가 발생되는데, 그 이유는 점프 후에 실행될 명령을 나타내는 명령 데이터가 정상적으로 비교적 느린 프로그램 메모리로부터 페치되어야 하기 때문이다.
이러한 포우즈는 바람직하지 않다.
본 발명의 목적은 프로그램 실행시 포우즈의 발생이 최소로 감소될 수 있도록 구성된 장치 및 방법을 제공하는 것이다.
도 1은 마이크로 콘트롤러의 명령 페치 장치의 명령 큐 장치의 구성을 개략적으로 나타낸 블록도.
*도면의 주요 부분에 대한 부호의 설명*
EU: 명령 실행 장치 FU: 페치 유닛
IQB: 명령 큐 버퍼 IQU: 명령 큐 장치
IRB: 명령 데이터 레지스터 PDU: 프리디코드 유닛
PFU: 프리페치 유닛 PM: 프로그램 메모리
상기 목적은 본 발명에 따라 청구항 제 1항의 특징 및 청구항 제 2항의 특징에 의해 달성된다.
본 발명에 따라
- 명령 데이터를 명령 큐 유닛에 기입할 때 및/또는 명령 큐 유닛으로부터 명령 데이터를 판독할 때 명령 큐 유닛 내부의 다수의 특정 장소가 선택적으로 스타트될 수 있도록, 명령 큐 유닛이 설계되거나 또는
- 명령 큐 유닛에 명령 데이터를 기입할 때 및/또는 명령 큐 유닛으로부터 명령 데이터를 판독할 때 특정 이벤트에 반응해서 선택적으로 명령 큐 유닛내의 다수의 특정 장소 중 하나가 스타트된다.
명령 큐 유닛내의 다수의 특정 장소의 선택적 스타트 가능성은 2가지 면에서 바람직하다: 한편으로는 그로 인해 다수의 명령 시퀀스가 명령 큐내로 동시에 서로 무관하게 저장될 수 있고, 다른 한편으로는 그로 인해 명령 큐 유닛이 명령 캐시로서 사용될 수 있기 때문에 바람직하다.
둘다는 프로그램 제어 유닛의 명령 실행 장치에 의해 요구되는 명령 데이터가 그것이 요구되는 시점에서 항상 또는 거의 항상 명령 큐에 대기하고 있고 거기서 부터 즉각적으로, 즉 대기 없이 실행될 수 있게 하는데 기여한다.
그로 인해, 프로그램 실행시 포우즈의 발생이 최소로 감소될 수 있다.
본 발명의 바람직한 실시예는 종속항, 하기 설명 및 도면에 나타난다.
본 발명의 실시예를 첨부된 도면을 참고로 구체적으로 설명하면 하기와 같다.
하기에 설명되는 장치 및 방법은 프로그램 제어 유닛의 구성부분이다.
실시예에서, 프로그램 제어 유닛은 32비트 마이크로 콘트롤러이다. 물론, 본 발명에 따른 장치 및 방법은 임의의 다른 마이크로 콘트롤러 및 임의의 다른 프로그램 제어 유닛, 예컨대 마이크로 프로세서, 신호 프로세서 등에도 사용될 수 있다.
마이크로 콘트롤러는 (다른 프로그램 제어 유닛과 마찬가지로) 페치 장치를 포함한다. 페치 장치에 의해 프로그램 메모리로부터 명령을 나타내는 명령 데이터가 페치되어 프로그램 제어 유닛의 명령 실행 장치에 의한 실행을 위해 제공된다.
명령을 나타내는 명령 데이터는 본 실시예에서 2 또는 4 바이트이다. 물론, 이것이 임의로 더 길거나 또는 더 짧을 수 있다.
페치 장치는 명령을 나타내는 많은 수의 명령 데이터가 일시 저장될 수 있는 명령 큐 유닛을 가진 명령 큐 장치를 포함한다.
이러한 명령 큐 장치의 구성이 도면에 개략적으로 도시된다.
(도면에서 도면 부호 IQU로 표시된) 명령 큐 장치는 고유 명령 큐 유닛인 명령 큐 버퍼(IQB), 프리페치(prefetch) 유닛(PFU), 페치 유닛(FU) 및 프리디코드 유닛(PDU)을 포함한다; 명령 큐 장치(IQU)은 프로그램 메모리(PM) 및 명령 실행 장치(EU)에, 보다 정확히 말하면 마이크로 컨트롤러의 명령 실행 파이프 라인의 디코드단에 접속된다.
상기 프로그램 메모리(PM)는 마이크로 콘트롤러의 내부 및/또는 외부에 제공될 수 있고 임의의 메모리장치, 예컨대 ROM, RAM, 플래시, 테이프, 디스켓, 하드 디스크, CD 등으로 형성될 수 있다.
명령 큐 장치(IQU)는 명령을 나타내는 명령 데이터를 계속해서 프로그램 메모리(PM)로부터 페치하고, 일시 저장하며, 필요할 때, 즉 명령 실행 장치(EU)에 의해 명령이 실행되려고 할 때, 명령 실행 장치(EU)로 출력하도록 설계된다.
프로그램 메모리(PM)로부터 명령 데이터의 페치는 프리페치 유닛(PFU)에 의해 야기된다. 이것은 명령을 나타내는 명령 데이터를 가급적 미리, 즉 그것이 실행을 위해 필요하기 전에, 프로그램 메모리(PM)로부터 명령 큐 장치(IQU)내로 판독하고 거기에, 보다 정확히 말하면 명령 큐 버퍼(IQB)에 일시 저장시킨다. 판독은 정상의 경우 프로그램 메모리(PM)의 연속하는 어드레스에 의해 이루어진다; 이것은 가급적 신속히 이루어지며, 부가 데이터가 명령 큐 버퍼(IQB)내로 더 이상 기입될 수 없을 때만 중단된다.
본 실시예에서 명령 큐 버퍼(IQB)는 4개의 동일한 크기의 영역으로 세분되고 64 바이트의 총 용량을 갖는다. 명령 큐 버퍼의 기록은 어드레스 순차 프로그램 처리시 소위 라운드-로빈 방법에 따라 이루어진다. 따라서, 버퍼 영역 1 내지 4가 차례로 반복된다. 즉, 예컨대 먼저 버퍼 영역 1, 그 다음에 버퍼 영역 2, 그 다음에 버퍼 영역 3, 그 다음에 버퍼 영역 4, 그 다음에 다시 버퍼 영역 1, 그 이하도 같은 방식으로 채워진다. 그러나, 명령 큐 버퍼(IQB)내에 데이터를 기입할 때 및 명령 큐 버퍼(IQB)로부터 데이터를 판독할 때 개별 버퍼 영역이 의도한 바대로 선택적으로 액세스될 수 있다. 명령 큐 버퍼내에서 다수의 특정 장소가 선택적으로 스타트될 수 있다. 나중에 보다 정확히 설명되는 바와 같이, 본 실시예에서 프로그램 실행 중 어드레스 점프가 예상되거나 또는 이루어질 때 상기 가능성이 이용된다. 그러나, 필요한 경우 임의의 다른 기회에도 상기 가능성이 이용될 수 있고, 본 실시예에서와 같이 다수의 영역으로 세분되지 않고도 명령 큐 버퍼내의 다수의 특정 장소가 매우 바람직하게 선택적으로 스타트될 수 있다.
그러나, 프로그램 메모리(PM)로부터 판독된 데이터가 직접 명령 큐 버퍼(IQB)내에 기입되는 것이 아니라, 먼저 앞에 접속된 프리디코드 유닛(PDU)내에, 보다 정확히 말하면 그것을 위해 제공된 프리디코드 유닛(PDU)의 명령 데이터 레지스터(IRB)내에 기입된다. 그리고 나서(다음 클록 사이클에서), 명령 데이터가 프리디코드 유닛(PDU)에 의해 분석되고 명령 큐 버퍼(IQB)내에 엔트리되거나 또는 이것을 통과하여 동일하게 마이크로 콘트롤러의 명령 실행 장치(EU)(명령 실행 파이프 라인의 디코드 단)내로 전송된다.
프리디코드 유닛(PDU)에서 이루어지는 분석시, 관련 명령 데이터가 디코드된 다음, 그것이 나중에 명령 실행 장치(EU)에서 실행될 때 비-어드레스 순차적 프로그램 실행을 야기시키거나 또는 야기시킬 수 있는지의 여부가 체크된다. 이것은 예컨대 무조건부 및 조건부 점프 명령시 서브 프로그램 호출, 인터럽트, 재점프 명령 등의 경우이다.
프리디코드 유닛(PDU)이 비-어드레스 순차적 프로그램 실행을 야기시키거나 시킬 수 있는 명령을 검출하면, 그것은 비-어드레스 순차적 프로그램 실행의 경우 프로그램 실행이 어디서 계속되는지를 검출하고, 관련 명령의 실행 전에, 비-어드레스 순차적 프로그램 실행을 야기시킬 수 있는 명령이 실행시 비-어드레스 순차적 프로그램 실행을 야기시킨다면 실행될 명령이 프로그램 메모리(PM)로부터 판독되기 시작하게 한다. 그러나, 여기서 판독된 명령 데이터는 명령 큐 버퍼(IQB)의 새로운 영역에 기입된다.
비-어드레스 순차적 프로그램 실행의 경우 비-어드레스 순차적 프로그램 실행을 야기시키는 명령에 따라 실행되는 명령의 판독은 바람직하게는 비-어드레스 순차적 프로그램 실행을 야기시킬 수 있는 명령이 비-어드레스 순차적 프로그램 실행을 야기시키지 않는다면 실행될, 일정 최소수의 명령이 명령 큐 버퍼(IQB)에 저장될때야 비로소 시작된다. 이것을 위해, 경우에 따라 먼저 프로그램 메모리(PM)로부터 하나 또는 다수의 부가 어드레스 순차적 명령 페치 과정이 수행된다. 이로 인해, 프리디코드 유닛(PDU)의 잘못된 예측시 또는 검출된 점프 명령 등이 실행되지 않은 조건부 점프 등인 경우, 비-어드레스 순차적 프로그램 실행을 야기시킬 수 있는 명령이 비-어드레스 순차적 프로그램 실행을 야기시키지 않는다면 실행될 하나 또는 다수의 명령이 즉각적인 페치를 위해 제공된다.
프리디코드 유닛(PDU)이 조건부 점프 명령 등을 검출하였다면, 바람직하게는 그 이전에 실행될 또는 실행된 명령이 점프 조건에 영향을 주는지의 여부 및 경우에 따라 어떻게 영향을 주는지가 제어된다.
제 1 점프 명령 다음에 즉각적으로 또는 나중에 제 2 점프 명령이 이어지면, 설명된 과정이 반복된다. 그러나, 제 2 점프 목표에서부터 판독된 데이터가 명령 큐 버퍼(IQB)의 다른 영역내에 재차 기입된다.
전술한 바와 같이 프리페치 유닛(PFU)에 의해 프로그램 메모리(PM)로부터 명령 큐 장치(IQU)내로 페치되는 명령 데이터는 필요할 때, 즉 관련 명령이 실행되려고 할 때, 페치 유닛(FU)에 의해 명령 큐 장치(IQU)로부터 마이크로 콘트롤러의 명령 실행 장치(EU)로, 보다 정확히 말하면 명령 실행 장치(EU)의 명령 실행 파이프 라인의 디코드 단으로 전송된다. 페치 유닛(FU)은 필요한 명령 데이터를 명령 큐 버퍼(IQB)로부터 또는 프리디코드 유닛(PDU)의 명령 데이터 레지스터(IRB)로부터 페치시킨다. 페치 유닛은 먼저 소정 명령 데이터가 명령 큐 장치(IQU)내의 언급한 장소 중 하나에 대기하고 있는지의 여부를 체크한다. 소정 명령 데이터가 대기하고 있는 경우에는 그것을 명령 실행 장치로 출력시킨다. 필요한 명령 데이터가 명령 큐 장치(IQU)에 대기하고 있지 않으면, 페치 유닛(FU)은 상응하는 데이터가 프로그램 메모리(PM)로부터 페치되게 한다. 명령이 도달할 때까지 프로그램 실행이 중단된다; 페치 유닛(FU)은 상기 시간 동안 대기 사이클을 발생시킨다. 그러나, 새로운 명령 큐 유닛 및 이것을 동작시키는 방식에 의해 이러한 경우가 전혀 발생하지 않거나 극히 드물게 발생한다.
특정한 경우에 페치 유닛(FU)에 의해 필요한 명령과 함께 이것에 후속하는 명령이 명령 큐 장치로부터 동일하게 페치되는 것이 바람직한 것으로 나타났다. 그 경우, 예컨대 소위 MAC(multiply and accumulate)-루프에서와 같이 소위 0-사이클-점프가 디지탈 필터내에서 극도로 효과적으로 실행될 수 있다.
명령 큐 버퍼(IQB)가 세분되는 영역의 수, 및 그 크기가 임의로 변경됨으로써, 주어진 비율에 매칭되는 것은 자명하다. 프로그램 제어 유닛의 사용자가 명령 큐 버퍼 자체를 그의 의도대로 구성할 수 있는 것이 바람직한 것으로 나타났다.
설명된 명령 큐 버퍼(IQB)의 사용은 너무 많치 않은 점프 명령을 연속시키고 및/또는 점프 조건을 어떤 시점에서 프리디코드 유닛(PDU)에 의해 간단하고 확실하게 검출되는 방식으로 변동시키고 및/또는 루프 및 종종 실행되는 서브 프로그램을 가급적 짧게 형성하도록 설계된 특수한 컴파일러가 명령 데이터를 발생시키기 위해 사용되는 경우 보다 효율적으로 설계될 수 있다.
명령 큐 유닛 또는 명령 큐 버퍼(IQB)가 명령 큐 및 명령 캐시로 사용되면 효율이 더욱 증가될 수 있다. 상기 명령 캐시는 명령 큐 버퍼(IQB)의 4개의 버퍼 영역에 의해 4개의 관련 캐시 뱅크를 갖는다; 각각의 버퍼 영역에 임의의 어드레스가 랜덤하게 할당될 수 있기 때문에, 4 버퍼 영역에 상이한 어드레스의 16 바이트를 포함하는 4개 까지의 명령 시퀀스가 저장될 수 있다. 이것은 특히(반복적으로 수행되는) 짧은 서브 프로그램에서, 짧은 루프에서(예컨대, 디지탈 필터링을 위한 프로그램의 MAC 루프), 그리고 점프 시퀀스에서(예컨대, C-프로그램에서 스위치/케이스 문의에 의해 야기되는) 속도 증가로 나타날 수 있다.
명령 큐 버퍼(IQB)의 4 버퍼 영역에 의해, 적어도 2개의 연속하는 점프 명령에서 점프 명령의 시퀀스 어드레스에 저장된 명령 데이터, 및 각각의 점프 목표부터 저장된 명령 데이터가 명령 큐 유닛에 대기하는 것이 가능하다.
마이크로 콘트롤러의 명령 실행 장치(EU)는 점프 명령 후에 즉각적으로, 즉 대기 시간 없이 다음에 실행될 명령(들)을 나타내는 명령 데이터를 공급받을 수 있다.
전술한 장치 및 방법은 프로그램 실행시 포우즈의 발생을 최소로 감소시킬 수 있다.
본 발명에 따른 장치 및 방법에 의해 프로그램 실행시 포우즈의 발생이 최소로 감소될 수 있다.

Claims (12)

  1. 프로그램 메모리(PM)로부터 미리 페치된 명령 데이터의 대기를 위한 명령 큐 유닛을 포함하는 프로그램 제어 유닛의 명령 페치 장치에 있어서, 명령 데이터를 명령 큐 유닛에 기입할 때 및/또는 명령 큐 유닛으로부터 명령 데이터를 판독할 때 명령 큐 유닛 내부의 다수의 특정 장소가 선택적으로 스타트될 수 있도록, 명령 큐 유닛이 설계되는 것을 특징으로 하는 장치
  2. 프로그램 메모리(PM)로부터 미리 페치된 명령 데이터의 대기를 위한 명령 큐유닛을 포함하는 프로그램 제어 유닛의 명령 페치 방법에 있어서, 명령 큐 유닛내에 명령 데이터를 기입할 때 및/또는 명령 큐 유닛으로부터 명령 데이터를 판독할 때 특정 이벤트에 반응해서 선택적으로 명령 큐 유닛내의 다수의 특정 장소 중 하나가 스타트되는 것을 특징으로 하는 방법.
  3. 제 1항 또는 2항에 있어서, 명령 큐 유닛이 다수의 영역으로 세분된 명령 큐 버퍼(IQB)로 형성되는 것을 특징으로 하는 장치 또는 방법.
  4. 제 3항에 있어서, 명령 큐 버퍼(IQB)의 각각의 영역은 명령을 나타내는 다수의 명령 데이터가 저장되도록 설계되는 것을 특징으로 하는 장치 또는 방법.
  5. 제 3항 또는 4항에 있어서, 명령 큐 버퍼(IQB)가 완전히 또는 부분적으로 명령 캐시로 사용되도록 설계되는 것을 특징으로 하는 장치 또는 방법.
  6. 제 1항 내지 5항 중 어느 한 항에 있어서, 프로그램 메모리(PM)로부터 판독된 명령 데이터가 프리디코드 유닛(PDU)내에서, 그것이 비-어드레스 순차적 프로그램 실행을 야기시키거나 또는 야기시킬 수 있는 명령을 나타내는지의 여부가 체크되는 것을 특징으로 하는 장치 또는 방법.
  7. 제 6항에 있어서, 프리디코드 유닛(PDU)은 비-어드레스 순차적 프로그램 실행을 야기시키거나 또는 야기시킬 수 있는 명령을 검출할 때 비-어드레스 순차적 프로그램 실행의 경우 프로그램 실행이 계속될 어드레스를 예측하는 것을 특징으로 하는 장치 또는 방법.
  8. 재 6항 또는 7항에 있어서, 비-어드레스 순차적 프로그램 실행을 야기시키거나 또는 야기시킬 수 있는 명령의 검출 후, 관련 명령의 실행 전에, 비-어드레스 순차적 프로그램 실행시 비-어드레스 순차적 프로그램 실행을 야기시킬 수 있는 명령이 야기되면 실행될 명령이 프로그램 메모리(PM)로부터 판독되기 시작하는 것을 특징으로 하는 장치 또는 방법.
  9. 제 8항에 있어서, 비-어드레스 순차적 프로그램 실행의 경우 비-어드레스 순차적 프로그램 실행을 야기시킨 명령 후에 실행될, 프로그램 메모리(PM)로부터 판독된 명령이 명령 큐 버퍼의 새로운 영역에 기입되는 것을 특징으로 하는 장치 또는 방법.
  10. 제 8항 또는 9항에 있어서, 비-어드레스 순차적 프로그램 실행을 야기시킬 수 있는 명령이 비-어드레스 순차적 프로그램 실행을 야기시키지 않으면 실행될 최소수의 명령이 명령 큐 버퍼(IQB)에 저장될 때야 비로소, 비-어드레스 순차적 프로그램 실행의 경우 비-어드레스 순차적 프로그램 실행을 야기시키는 명령 후에 실행될 명령이 판독되기 시작하는 것을 특징으로 하는 장치 또는 방법.
  11. 제 6항 내지 10항 중 어느 한 항에 있어서, 프리디코드 유닛(PDU)이 특정 조건의 충족시에만 비-어드레스 순차적 프로그램 실행을 야기시킬 수 있는 명령의 검출시 관련 명령 전에 수행될 또는 수행된 명령이 상기 특정 조건의 충족에 영향을 주는지의 여부 및 경우 따라 어떻게 영향을 주는지를 제어하는 것을 특징으로 하는 장치 또는 방법.
  12. 제 1항 내지 11항 중 어느 한 항에 있어서, 명령 큐 유닛으로부터 명령 데이터의 출력시, 바로 다음에 실행될 명령을 나타내는 명령 데이터 및 후속 명령을 나타내는 명령 데이터가 출력되는 것을 특징으로 하는 장치 또는 방법.
KR1019990005001A 1998-02-12 1999-02-12 프로그램제어유닛의명령페치장치및방법 KR19990072645A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19805784.9 1998-02-12
DE19805784 1998-02-12

Publications (1)

Publication Number Publication Date
KR19990072645A true KR19990072645A (ko) 1999-09-27

Family

ID=7857533

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990005001A KR19990072645A (ko) 1998-02-12 1999-02-12 프로그램제어유닛의명령페치장치및방법

Country Status (4)

Country Link
US (1) US6367002B1 (ko)
EP (1) EP0936539B1 (ko)
JP (1) JPH11345121A (ko)
KR (1) KR19990072645A (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242489A (ja) * 1998-12-21 2000-09-08 Casio Comput Co Ltd 信号処理装置の資源管理装置、プログラム転送方法、及び記録媒体
DE10009677A1 (de) * 2000-02-29 2001-09-06 Infineon Technologies Ag Programmgesteuerte Einheit
US9798548B2 (en) 2011-12-21 2017-10-24 Nvidia Corporation Methods and apparatus for scheduling instructions using pre-decode data
US20130166882A1 (en) * 2011-12-22 2013-06-27 Jack Hilaire Choquette Methods and apparatus for scheduling instructions without instruction decode
CN103379330A (zh) * 2012-04-26 2013-10-30 展讯通信(上海)有限公司 码流数据的解码预处理方法及解码方法,处理器,解码器
US11972361B2 (en) 2020-01-29 2024-04-30 Samsung Electronics Co., Ltd. Performance optimization of object grouping schema in a network key-value storage device using adaptive regression
US11243694B2 (en) 2020-01-29 2022-02-08 Samsung Electronics Co., Ltd. Grouping key value object IOs to improve IO performance for key-value storage devices

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4521850A (en) 1977-12-30 1985-06-04 Honeywell Information Systems Inc. Instruction buffer associated with a cache memory unit
JPS61217834A (ja) * 1985-03-25 1986-09-27 Nec Corp デ−タ処理装置
US4755935A (en) * 1986-01-27 1988-07-05 Schlumberger Technology Corporation Prefetch memory system having next-instruction buffer which stores target tracks of jumps prior to CPU access of instruction
JPH01205228A (ja) 1988-02-10 1989-08-17 Hitachi Ltd 命令バツフアシステム
JP2875909B2 (ja) 1991-07-12 1999-03-31 三菱電機株式会社 並列演算処理装置
US5463748A (en) * 1993-06-30 1995-10-31 Intel Corporation Instruction buffer for aligning instruction sets using boundary detection
US5752263A (en) 1995-06-05 1998-05-12 Advanced Micro Devices, Inc. Apparatus and method for reducing read miss latency by predicting sequential instruction read-aheads
US5872946A (en) * 1997-06-11 1999-02-16 Advanced Micro Devices, Inc. Instruction alignment unit employing dual instruction queues for high frequency instruction dispatch

Also Published As

Publication number Publication date
EP0936539B1 (de) 2012-10-31
US6367002B1 (en) 2002-04-02
EP0936539A2 (de) 1999-08-18
EP0936539A3 (de) 2002-03-20
JPH11345121A (ja) 1999-12-14

Similar Documents

Publication Publication Date Title
EP1003095B1 (en) A computer system for executing branch instructions
KR20010030587A (ko) 데이터 처리장치
US20060253686A1 (en) Instruction prefetch apparatus and instruction prefetch method
EP0893756B1 (en) Method and apparatus for controlling conditional branch execution in a data processor
JP3749233B2 (ja) パイプラインでの命令実行方法及び装置
US6654873B2 (en) Processor apparatus and integrated circuit employing prefetching and predecoding
JP2006522398A (ja) パイプライン型命令プロセッサにおけるバイパスの使用
KR19990072645A (ko) 프로그램제어유닛의명령페치장치및방법
US5226127A (en) Method and apparatus providing for conditional execution speed-up in a computer system through substitution of a null instruction for a synchronization instruction under predetermined conditions
US6308242B1 (en) Apparatus for adaptively controlling a prefetch queue based on various flush conditions
US5954814A (en) System for using a branch prediction unit to achieve serialization by forcing a branch misprediction to flush a pipeline
CA2333563C (en) Method and apparatus for distributing commands to a plurality of circuit blocks
GB2230119A (en) Conditional execution speed-up on synchronizing instructions
US20080126753A1 (en) Embedded system and operating method thereof
KR100329780B1 (ko) 인터럽트 응답 시간을 줄인 인터럽트 처리 장치
JP3100705B2 (ja) マイクロプロセッサ内の命令準備のための装置
US20040019772A1 (en) Microprocessor
KR100515039B1 (ko) 조건부 명령어를 고려한 파이프라인 상태 표시 회로
JP2689894B2 (ja) マイクロプログラム制御型情報処理装置
JPH0749782A (ja) 情報処理装置
JP2006502490A (ja) アドレス範囲に依存した命令並行処理を行うデータ処理装置
WO2007048988A1 (en) A data processing apparatus and method for handling procedure call instructions
JPH027128A (ja) 情報処理装置
JPH1139160A (ja) プログラマブルコントローラ
JPH06230968A (ja) 分岐制御装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application