KR100303712B1 - 파이프라인기계에서의어드레스파이프라인을위한방법및장치 - Google Patents

파이프라인기계에서의어드레스파이프라인을위한방법및장치 Download PDF

Info

Publication number
KR100303712B1
KR100303712B1 KR1019980020008A KR19980020008A KR100303712B1 KR 100303712 B1 KR100303712 B1 KR 100303712B1 KR 1019980020008 A KR1019980020008 A KR 1019980020008A KR 19980020008 A KR19980020008 A KR 19980020008A KR 100303712 B1 KR100303712 B1 KR 100303712B1
Authority
KR
South Korea
Prior art keywords
pipeline
instruction
address
execution
storing
Prior art date
Application number
KR1019980020008A
Other languages
English (en)
Other versions
KR19990013383A (ko
Inventor
조수아 포르텐
아미어 바-니브
Original Assignee
클라크 3세 존 엠.
내셔널 세미콘덕터 코포레이션
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 클라크 3세 존 엠., 내셔널 세미콘덕터 코포레이션 filed Critical 클라크 3세 존 엠.
Publication of KR19990013383A publication Critical patent/KR19990013383A/ko
Application granted granted Critical
Publication of KR100303712B1 publication Critical patent/KR100303712B1/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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Abstract

어드레스 파이프라인은 실행 파이프라인의 상이한 단내에서 현재 처리되고 있는 명령어의 메모리 어드레스를 저장하는 일련의 레지스터를 포함한다. 상기 실행 파이프라인과 병렬을 이루어, 상기 어드레스 파이프라인은 상기 명령어가 상기 실행 파이프라인을 통해 전진되는 것처럼 해당하는 메모리 어드레스를 전진시킨다. 어드레스 파이프라이닝은 파이프라인 프로세서의 프로그래머가 파이프라인을 통해 명령어를 추적하는 수단을 프로그래머에게 제공함으로써 파이프라인 프로세서의 달리 엄폐된 동작을 이해하는 것을 허용한다. 그 이외에도, 상기 어드레스 파이프라인은 상기 파이프라인의 어느 주어진 단에 있는 명령어가 실행되어 졌는지를 나타내는 명령어 상태 레지스터 및 실제로 절점을 트리거한 명령어의 어드레스를 저장하는 프로그램 카운터 어드레스 절점 레지스터를 포함한다.

Description

파이프라인 기계에서의 어드레스 파이프라인을 위한 방법 및 장치{METHOD AND APPARATUS FOR AN ADDRESS PIPELINE IN A PIPELINED MACHINE}
발명의 분야
본 발명은 컴퓨터 프로세서에 관한 것이며, 구체적으로 기술하면 파이프라인 프로세서 및 기계에 관한 것이다. 보다 구체적으로 기술하면, 본 발명은 상이한 파이프라인 기계의 용도를 최적화시키는 데 도움을 주도록 상이한 파이프라인 기계의 동작 특성을 관찰 및 이해하는 방법및 장치에 관한 것이다.
관련기술의 설명
파이프라인 기계는 예를 들면, 여러 유니트가 여러 명령어중 적합한 부분을 동시에 처리할 수 있도록 배치된 일련의 유니트 또는 단 ( stage ) 에서 명령어 실행이 발생하는 컴퓨터 프로세서이다. 예비 인출, 인출, 디코드, 실행, 및 라이트 - 백 ( write - back ) 과 같은 2 개이상의 파이프라인 기계의 단은 상이한 명령어상에서 각기 동시적으로 동작할 수 있다. 바꾸어 말하면, 파이프라이닝은 어느 주어진 시간에 여러 프로그램 명령어가 인출, 디코딩 또는 실행되는 여러 단에 있는 명령어를 인출 및 디코딩 ( 예비처리 ) 하는 방법이다. 이상적으로는, 파이프라이닝은 상기 기계가 명령어를 대기시킬 필요성을 없게 함으로써 실행 시간을 줄인다. 즉, 한 명령어의 실행이 완료되는 경우, 다음 명령어가 준비 및 대기한다.미국, 매사추세추에 소재하는 Digital Equipment Corporation 에 의해 제조된 DECchip 21064 ( 또한 DEC Alpha 또는 DEC Alpha AXP 로 지칭됨 ) 는 파이프라인 기계의 일례이다.
보다 구체적으로 기술하면, DEC Alpha 에서 찾아볼 수 있는 것과 같은 전형적인 파이프라인은 상이한 명령어를 병렬로 실행하는 여러 단을 지닌다. 예를 들면, 파이프라인은 4 개의 단을 지닐 수 있다. 제 1 단은 새로운 명령어를 인출하고, 제 2 단은 앞서 인출된 명령어를 디코딩하며, 제 3 단은 미리 디코딩된 명령어에 의해 요구될 수 있는 어떤오퍼랜드를 인출하고, 마지막으로, 제 4 단은 명령어가 인출, 디코딩되어지고 그 모든 오퍼랜드가 인출되어진 후에 명령어를 실행한다. 따라서, 이러한 예에서의 파이프라인의 4 개의 단은 인출, 디코드, 오퍼랜드 인출 및 실행 기능을 한다. 이러한 파이프라인은 실행 파이프라인으로 지칭되는데, 그 이유는 상기 파이프라인이 프로그래머의 코드를 실행할 책임이 있기 때문이다. 범용 컴퓨터 프로세서 파이프라인이 언급되어져 왔지만, 디지탈 신호 프로세서 ( DSP ) 또는 디스코 제어기와 같은 기계를 기초로한 어떠한 명령어도 파이프라인될 수 있다는 점을 이해하여야 한다.
선행기술의 프로세서 파이프라인의 또 다른 예는 미국, 일리노이에 소재하는 Motorola, Inc. 에 의해 제조된 Motorola 68020 마이크로 프로세서이다. 이러한 프로세서는 도 1 에 도시된 바와같은 명령어 인출 및 디코드 유니트를 포함한다. 이러한 유니트는 명령어를 동시에 인출, 디코딩 및 실행하는 메카니즘을 제공한다. 명령어 파이프라인 (2) 은, 명령어가 처리될때 명령어가 이동하는 여러 단 ( 3, 4, 5 ) 을 포함한다. 상기 파이프라인 (2) 은 단지 메모리 및 상기 파이프라인 (2) 사이에 존재하는 버퍼인 캐쉬 유지 레지스터 (1) 에 의해 공급된다. 순서기 (6) 및 제어 유니트 (7) 는 파이프라인의 여러개의 단 ( 3, 4 , 5 ) 에 포함된 값에 응답하여 상기 파이프라인 (2) 을 포함하는 프로세서를 구동시킨다. 실행 유니트 (8) 는 주로 상기 프로세서의 계산요소이다. 어느 주어진 시간에, 상기 프로세서는 4 워드의 명령어 또는 4 개로 분할된 워드 크기명령어를 처리할 수 있다.
예를 들면, 단 A (3) 가 처리될 다음 명령어를 제공할 수 있지만, 상기 실행 유니트 (8) 는 방금 실행되어진 명령어의 결과를 포함할 수 있다. 단 B (4) 는 즉시 오퍼랜드와 같은 현재 명령어를 완료시키는데 필요한 데이타를 제공할 수 있다. 마지막으로, 단 C (5) 는 실행할 준비가 되어 있는 완전히 디코딩되고 유효화된 명령어를 포함할 수 있다. 이러한 파이프라인 구조의 부분에 대한 목적은 인출 및 디코드 동작을 나타내는 명령어의 실행에 소요되는 시간을 제거하는 것이다. 이는 이전의 명령어가 여전히 실행되고 있는 동안 이들 동작이 병렬로 행해지기 때문에 달성될 수 있다. 이러한 명령어 예비 인출 및 디코딩의 바람직한 결과는 프로그램의 보다 신속한 실행이다.
이상적으로, 파이프라인 기계상에서 실행하는 한세트의 명령어는 비 - 파이프라인 기계상에서 실행하는 동일한 일련의 명령어와 동일한 기능을 하고 비 - 파이프라인 기계상에서 실행하는 동일한 일련의 명령어보다 신속하게 처리된다. 프로그래머는, 우선 한 레지스터가 판독되어져야 하고, 그 다음에 동일한 레지스터가 다음 명령어로 기록되어져야 한다는 것을 프로그래머의 코드가 명시한 경우, 파이프라인 기계가 프로그래머의 명령어를 실행하는 순서가 그러한 것이라고 기대할 수 있을 것이다. 마찬가지로, 프로그래머가 명령어의 순서를 바꿀 경우, 프로그래머는 레지스터가 우선 기록된 다음에 판독되리라고 기대할 수 있을 것이다. 프로그래머는, 비 - 파이프라인 기계와 마찬가지로 프로그래머가 명시한 순서로 파이프라인이 프로그래머의 명령을 이행할 것이라고 기대한다. 이러한 경우에, 파이프라이닝은 투명하다라고 말하여지는 데, 그 이유는 상기 파이프라이닝이 명령어의 실행에 어떤 바람직스럽지 못하거나 예측할 수 없는 효과를 도입시키지 않기 때문이다. 바꾸어 말하면, 비 - 파이프라인 기계 및 투명 파이프라인 기계사이의 유일한 차이는 파이프라인 기계가 명령어 실행을 곧바로 실행하고, 결과적으로는 그 업무를 보다 신속하게 행하게 하는 것이다.
불행하게도, 파이프라인은 투명하지 않다. 파이프라인이 부작용을 갖고 이러한 부작용이 변칙 결과를 야기시킬 수 있는 실재성이 있다. 예를들면, 2 개의 상이한 명령어 순서, 즉 ABC 및 ACB 는 논리적으로 동일한 것이지만, 파이프라인 기계상에서 실행된 경우에 상이한 결과를 나타내고, 이리하여 파이프라인 부작용이 존재한다. 이는 프로그래머가 특정한 값을 계산할 때 어떤 결과가 기대될 지를 알기란 어렵기때문에 문제이다. 프로그래머는 계산 결과를 일관되게 결정하고 이러한 결과가 기계를 효과적으로 프로그래밍하기 위해 사용할 목적으로 이용될 수 있는 때를 알 수 있어야 한다. 프로그래머가 계산될 값을 기대하는 순서를 파이프라인이 스크램블 ( scramble ) 시킬 경우, 그러한 값이 결과적으로 정확하게 계산되는 경우라 하더라도 프로그램이 제대로 기능을 하지 못하는 것처럼 보인다.
부작용은 실행순서 문제보다 검출하는 데 휠씬 더 어려울 수 있다. 예를들며, 파이프라인 DSP 기계는 명령어에 대하여 다수의 동작을 이행하는 것이 전형적이다. 레지스터 및 산술 논리 유니트 ( ALU ) 를 포함하는 어드레스 유니트를 사용하여 다음 오퍼랜드가 적재될 곳으로 부터 어드레스를 계산하는 DSP 는 몇가지 부작용을 갖는 것처럼 보인다. 상기 어드레스 유니트의 레지스터는 명령어로 직접 액세스되거나 증분 어드레스 포인터 명령어로 간접적으로 액세스될 수 있다. 특정 메모리 오퍼랜드를 갖는 적재 누산기 ( LACC ) 와 같은 명령어가 이행되는 경우, 상기 오퍼랜드는 메모리로 부터 인출된 다음에 상기 누산기내로 적재된다. 그러나, 그와 동시에, 동일한 명령어 라인상에서, 상기 DSP 는 또한 어드레스 포인터를 전진시키고 상기 어드레스 포인터에 오프셋을 부가시키며, 여러 다른 기능을 이행한다. 동일 성분의 명령어에 대한 이와 같은 상이한 기능 모두때문에, 프로세서 설계 결함의 결과로서, 최소한 2 가지의 기능이 파이프라인의 동일한 단에서 발생하는 것이 가능하다. 따라서, 그러한 성분의 명령어는 2 가지 기능이 동일한 단에서 동일한 레지스터를 액세스할 경우 한정되지 않은 결과를 야기시킬 수 있다. 이러한 특정의 시나리오가 문서화되어지지않는 한, 프로그래머는 단지 최종계산 효과만을 관찰하고 그러한 계산 효과가 어떻게 얻어졌는지를 궁금해할 수 있다. 선행기술의 파이프라인은 한 명령중 상이한 부분의 실행순서가 엄폐됨으로써 문서화될 경우나 시행착오 경험을 통해서 단지 이해될수 있는 부작용이 존재하는 블랙 박스이다.
부작용을 초래시키는 또 다른 어려운 상황은 2 개의 상이한 명령어, 예를 들면 " increment address register one " 및 " write a new value to address register one " 이 서로 다음에 오는 경우에 생긴다. 부작용을 알지 못하는 프로그래머는, 비록 양자의 명령어가 동일한 레지스터를 액세스할지라도 양자의 명령어가 순차적으로 이행되도록 기록되기 때문에 그러한 것이 문제가 아니라고 기대할 것이다. 그러나, " increment address register one " 이 " write a new value to address registr one " 과는 파이프라인의 상이한 단에서 실행되기때문에, 2 개의 명령어는 한정되지 않은 결과와의 경쟁을 초래함과 동시에 register one 을 액세스하려고 시도하는 것이 극히 빈번하게 생길 수 있다.
불행하게도, 파이프라인 기계의 복잡성때문에, 그들을 완전히 문서화하기에는 극히 어려우며 비용이 든다. 생길 수 있는 명령어 및 데이타 순서의 상이한 순열의 수는 방대하다. 따라서, 여러 부작용이 대개 문서화되지 않는다는 점은 놀라운 일이 아니다. 사실상, 종종, 파이프라이닝 부작용의 특성 및 완전한 충돌은 상기 기계를 프로그래밍하여야 하는 사용자에 의해서 뿐만 아니라 상기 기계의 설계자에 의해 완전히 이해될 수 없다.
파이프라인 부작용이 한 번에 생기는 여러 가지의 결과로서 사후에도 종종 생기기 때문에 파이프라인 부작용을 검출하기란 어려울 수 있다.바꾸어 말하면, 파이프라인의 각각의 단이 상이한 기능을 동시에 이행하고 2 개의 단사이의 충돌의 결과는 여러 부가적인 명령어가 파이프라인을 통과할때까지 분명해지지 않을 수 있다. 선행기술의 파이프라인 기계는 상이한 명령어가 파이프라인의 상이한 단에서 어떻게 처리될지를 결정하도록 파이프라인 단들을 조사하는 어떠한 수단도 제공하지 못한다. 비록 선행기술의 파이프라인 기계에 상태 기계가 장착되어 있더라도, 어떤 지점에서, 어느 부분이, 어느 명령어중에서, 어느 파이프라인 단에 특정한 상태를 야기시켰는지를 결정하기란 거의 불가능하다. 그때 필요한 것은 부작용이 식별될 수 있고 여러 명령어의 충돌이 정확히 결정될 수 있도록 여러 명령어가 파이프라인을 통해 이동하는 것과 같은 여러 명령어의 진행 및 효과를 동시에 추적하는 수단이다.
파이프라인이 정확하게 동작하기 위하여, 실행될 실제 명령어만이 파이프라인의 상이한 단각각에 저장될 필요가 있다. 명령어의 본래 메모리 어드레스는 파이프라인의 적합한 기능에 필요하지 않다. 그러나, 파이프라인 부작용을 식별하고 이해하는 데 필요한 정보를 제공하도록 사용될 수 있는 것이 바로 명령어의 어드레스이다.
어느 명령어가 파이프라인의 각각의 단에서 실행되고 있었는지를 알고 있었다면, 파이프라인 동작의 완전한 상황이 추론될 수 있다. 이러한 정보는 그때 프로세서의 디버거에 의해 사용되어 어느 명령어 순서가 파이프라인을 통해 이동할때 어떻게 처리되는지에 관한 정확한 상황을 제공할 수 있다. 각각의 명령어에 관한 각각의 단의 효과는 순서를 통해 단한번의 단계를 밟음으로써, 또는 절점 ( breakpoint ) 을 설정함으로써 추적될 수 있다. 그러므로, 필요한 것은 파이프라인의 동작에 관한 시계를 프로그래머에게 제공하는 수단이다. 보다 구체적으로 기술하면, 필요한 것은 어느 명령어가 어느 주어진 시간에서 파이프라인의 어느 단에 있으며 명령어들이 어느 곳에 실행하였는지를 확인하는 수단이다. 더우기, 필요한 것은 절점이 도달되어진 후 파이프라인에 관한 상태 및 어느 명령어에 의해 프로세서가 절점에 도달하게 했던 표시이다.
부작용에 관한 어느 부정적이거나 바람직하지 못한 결과를 없애도록 프로그램을 디버깅시키는 것이상으로, 프로그램은 부작용이 제공할 수 있는 어떤 기회를 이용하도록 최적화될 수 있다. 이는 특히 시간 또는 공간 임계 요건을 갖는 용도에 대해 유효하다. 바꾸어 말하면, 부작용이 완전히 이해된 경우, 그러한 부작용은 업무를 실행하는 데 필요한 명령어의 개수, 또는 업무를 실행하는데 필요한 시간을 감축시키는 데 사용될 수 있다.
여러 디지탈 신호처리 ( DSP ) 용도는 범용 프로세서와 같은 프로그램가능한 DSP 상에서 실행하는 소프트웨어로 구현된다. 그러나, DSP 용도는, 소리, 장면, 처리 제어등과 같은 실생활 신호를 처리하여야 할때, 실시간 제약을 지니면서 실행하여야 한다. 그러한 용도가 더 복잡해지는 경우, 그들의 성능 요구가 증가한다. 프로그램가능한 DSP 의 주요 특징중 하나가 프로그램가능한 DSP 의 파이프라인이다. 그러한 파이프라인은 DSP 가 높은 처리능력을 갖추게 하여 상기 프로세서의 클록과 동일한 속도로 복잡한 ( 다수의 ) 동작을 실행할 수 있게 한다. 예를들면, 40MHz DSP 는 초당 4 천만번의 MAC ( 승산 및 누산 ) 명령어를 실행할 수 있다.
프로그래머의 도전중 하나는 DSP 의 최대 허용 성능의 이점을 얻기위하여 파이프라인의 유일한 동작 특성을 최적으로 사용하는 코드를 기록하는 것이다. 이러한 업무는 파이프라인 부작용의 존재에 의해 달성된다. 상술된 바와같이, 파이프라인의 동작은 프로그래머가 기록하는 코드에 관하여 항상 프로그래머에 투명하지 않다. 더우기, 범용 프로세서에 대한 파이프라인에 있어서와 같이, DSP 파이프라인의 동작은 DSP 프로그래머에게 가시화될 수 없다 ( 즉, 파이프라인에 관한 정보를 제공하는 어떠한 레지스터도 존재하지 않는다 ). 단지 코드에 관한 효과가 관찰될 수 있다. 그 이외에도, 범용 파이프라인 프로레서에서와 같이, DSP 에 대한 파이프라인은 극히 복잡한 엔진이므로 명령어 및 데이타의 특정한 순서에 따라 생길 수 있는 여러 상이한 상황이 존재하기 때문에 완전히 문서화하기란 극히 어렵다.
필요한 것은 프로그램가능한 DSP 의 설계자가 파이프라인 동작을 보다 잘 이해하도록 프로그래머에게 도움을 주며 프로그래머의 코드를 주어진 용도에 대해 최적화할 수 있게 하는 수단이다. 비록 성능이 DSP 및 실시간 프로그래머에게 특정한 이점을 준다하더라도, 하기에 기술되는 본 발명은 어느 파이프라인 기계 또는 프로세서에 적용될 수 있다는 점을 이해하여야 한다. 그 이외에도, 파이프라인내로의 가시성을 제공하는 것은 또한 파이프라인의 동작을 디버깅하고 개선하도록 프로세서의 기획 및 설계자에게 도움을 줄수 있다.
본 발명은 상이한 파이프라인 기계의 용도를 최적화시키는데 도움을 주도록 상이한 파이프라인 기계의 동작 특성을 관찰 및 이해하는 방법 및 장치를 제공하는 것을 그 목적으로 한다.
도 1 은 선행기술의 파이프라인 프로세서를 보여주는 블록 다이어그램.
도 2 는 어드레스 파이프라인의 제 1 실시예를 포함하는 본 발명에 따른 3 - 단 파이프라인 프로세서를 보여주는 블록 다이어그램.
도 3 은 어드레스 파이프라인의 제 2 실시예를 포함하는 본 발명에 따른 4 단 파이프라인 프로세서를 보여주는 블록 다이어그램.
도 4 는 어드레스 파이프라인의 제 3 실시예를 포함하는 본 발명에 따른 파이프라인 프로세서를 보여주는 블록 다이어그램.
본 발명의 상기 목적 및 다른 목적은 파이프라인 기계에서의 어드레스 파이프라인으로 구성된 본 발명에 의해 달성된다. 본 발명은 프로그래머가 파이프라인의 동작을 관찰하고 결과적으로는 파이프라인의 동작을 가시화시킴으로써 코드를 최적화시키는 데 유용한 정보를 얻는 수단을 제공한다. 그러한 수단은 또한 프로세서 설계자가 파이프라인 설계를 디버깅 및 개선할 수 있게 한다. 본 발명은 주 실행 파이프라인과 병렬로 동작하는 어드레스 파이프라인, 상기 파이프라인에 내재하는 어느 명령어가 절점을 트리거했는 지를 나타내는 레지스터, 및 상기 실행 파이프라인 단계 각각이 실행되어졌는 지의 여부를 나타내는 상태레지스터를 제공한다.
본 발명의 제 1 실시예에 의하면, 상기 실행 파이프라인과 병렬을 이루는 보조 파이프라인 구조의 형태로된 어드레스 파이프라인은 명령어가 파이프라인의 상이한 단을 통해 이동할 때 명령어의 메모리 어드레스를 순차적으로 저장하도록 제공된다. 상기 어드레스 파이프라인은 실행 파이프라인의 각각 해당하는 단에 대해 하나의 레지스터를 포함한다. 상기 실행 파이프라인을 통해 명령어의 전진을 트리거하는 데 사용되는 실행 파이프라인 제어 신호는 또한 상기 어드레스 파이프라인을 통해 해당 어드레스를 전진시키는 데 사용된다. 파이프라인 제어 논리는 현재 특정한 단에 있는 명령어가 실행되어졌는지를 나타내는 상태 신호를 파이프라인의 각각의 단에 대해 발생시킨다. 본 발명은 각각의 단 상태 신호의 현재 상태를 저장하는 명령어 상태 레지스터를 포함한다. 마지막으로, 본 발명은 절점을 트리거한 명령어의 메모리 어드레스를 저장하는 레지스터를 포함한다.
본 발명의 제 2 실시예에 의하면, 어드레스가능한 선입선출 ( FIFO ) 시프트 레지스터 파일은 명령어가 파이프라인의 상이한 단을 통해 이동할때 명령어의 메모리 어드레스를 순차적으로 저장하도록 제공된다. 상기 파이프라인을 통해 명령어의 전진을 트리거하는 데 사용되는 파이프라인 제어 신호는 또한 상기 시프트 레지스터 파일을 통해 해당 어드레스를 클록시키는 데 사용된다. 상기 제 1 실시예에서와 같이, 파이프라인 제어 논리는 현재 특정한 단에 존재하는 명령어가 실행되어졌는지를 나타내는 상태 신호를 파이프라인의 각각의 단에 대해 발생 및 저장한다. 마지막으로, 이와 같은 본 발명의 제 2 실시예는 또한 절점을 트리거한 명령어의 메모리 어드레스를 저장하는 레지스터를 포함한다.
본 발명의 이들 및 다른 특징 및 이점은 이하 바람직한 실시예의 상세한 설명 및 첨부 도면을 참작하면 이해될 것이다.
바람직한 실시예의 상세한 설명
본 발명은 프로세서의 실행 파이프라인과 병렬로 부가된, 어드레스 파이프라인으로 지칭되는 제 2 파이프라인을 제공한다. 이러한 어드레스 파이프라인은 현재 파이프라인에 존재하는 명령어의 어드레스를 저장한다. 상기 어드레스 파이프라인은 상기 실행 파이프라인과 동일한 단의 개수를 지니고 상기 실행 파이프라인과 동시에 전진된다. 어드레스 파이프라인의 각각의 단은 상기 실행 파이프라인에 해당 명령어의 메모리 어드레스를 저장한다. 상기 어드레스 파이프라인은 프로그래머 ( 또는 디버거 ) 가 어드레스 파이프라인의 값을 독출할 수 있도록 판독될 수 있다.
도 2 를 참조하면, 어드레스 파이프라인 (40) 을 포함하는 3 단 파이프라인 (30) 시스템이 예시되어 있다. 실행 파이프라인 (30) 은 데이타 버스 (10) 로 부터 명령어를 판독한다. 그와 동시에, 어드레스 파이프라인 (40) 은 어드레스 버스 (20) 로 부터 명령어의 메모리 어드레스를 판독한다.
도 2 에 도시된 3 단 실행 파이프라인 (30) 은 명령어 단 (50), 오퍼랜드 단 (60), 및 실행 단 (70) 을 포함한다. 상기 도시된 실시예가 특정한 기능 명칭으로 여러 실행 단을 나타내고 있지만, 상기 여러 단은 본 발명에 의해 향상될 특정한 파이프라인 프로세서에 의존한다는 점을 이해하여야 한다. 마찬가지로, 특정한 단의 개수는 파이프라인 구현으로 부터 구현까지 변하며, 도 3 및 이하 첨부된 기술내용에서 알 수 있는 바와같이, 본 발명의 어드레스 파이프라인은 파이프라인의 다수의 단을 수용하도록 일정비율로 정해질 수 있다.
어드레스 파이프라인 (40) 은 상기 실행 파이프라인 (30) 의 명령어 단 (50) 에 해당하는 명령어 어드레스 레지스터 (80), 상기 실행 파이프라인 (30) 의 오퍼랜드 단 (60) 에 해당하는 오퍼랜드 어드레스 레지스터 (90), 및 상기 실행 파이프라인 (30) 의 실행 단 (70) 에 해당하는 실행 어드레스 레지스터 (100) 를 포함한다. 명령어가 상기 실행 파이프라인 (30) 을 통해 전진함에 따라 그에 해당하는 메모리 어드레스는 상기 어드레스 파이프라인 (40) 의 해당 레지스터 ( 80, 90, 100 ) 를 통해 전진 한다. 이를테면, 데이타 버스 (10) 로 부터 판독된 명령어는 이 명령어가 처리되는 것처럼 상기 명령어 단 (50) 으로 부터 상기 오퍼랜드 단 (60) 으로 이동하고 상기 오퍼랜드 단 (60) 으로 부터 상기 실행 단 (70) 으로 이동한다. 그와 동시에, 상기 명령어의 메모리 어드레스는 어드레스 버스 (20) 로 부터 명령어 어드레스 레지스터 (80) 로 판독되고, 상기 명령어가 상기 명령어 단 (50) 으로 부터 상기 오퍼랜드 단 (60) 으로 이동하는 경우, 상기 메모리 어드레스는 상기 명령어 어드레스 레지스터 (80) 로 부터 오퍼랜드 어드레스 레지스터 (90) 로 이동된다. 마찬가지로, 상기 명령어가 상기 오퍼랜드 단 (60) 으로 부터 상기 실행 단 (70) 으로 이동되는 경우, 상기 메모리 어드레스는 상기 오퍼랜드 어드레스 레지스터 (90) 로 부터 실행 어드레스 레지스터 (100) 로 전진된다. 상기 어드레스 파이프라인 (40) 의 레지스터 ( 80, 90, 100 ) 는 상기 시스템의 메모리 어드레싱 요구의 크기를 수용할 정도로 충분히 넓다. 16 - 비트 폭 어드레스 파이프라인 (40) 은 전형적인 폭의 일례로서 도시되어 있다.
파이프라인 제어부 (110) 에 의해 발생된 Advance - Pipe 신호 (20) 는 명령어가 상기 실행 파이프라인 (30) 의 다음단으로 이동되는 것을 나타내는데 사용되는 신호이다. 이러한 신호 또는 그의 기능적인 등가는 모든 파이프라인 시스템에서 찾아볼 수 있는 일반적인 신호이다. 이는 상기 실행 파이프라인 (30) 이 상기 단 ( 50, 60, 70 ) 모두에 대해 현재 사이클내에서 그의 동작 모두를 완료했을때에 단정되며 그러한 명령어는 전진될 수 있다. 바꾸어 말하면, Advance - Pipe 신호 (20) 는, 상기 실행 단 (70) 내의 명령어가 실행되어졌고, 상기 오퍼랜드 단 (60) 에 필요한 오퍼랜드가 판독되어졌으며 상기 명령어 단 (50) 내의 명령어가 디코딩되어졌을 때 단정된다. 본 발명은 상기 Advance - Pipe 신호 (200)를 사용하여 상기 실행 파이프라인 (30) 을 통해 명령어의 전진을 트리거함과 아울러 상기 어드레스 파이프라인 (40) 을 통해 메모리 어드레스의 전진을 트리거한다. 따라서, 상기 Advance - Pipe 신호 (200) 는 상기 실행 파이프라인 (30) 의 각각의 단 ( 50, 60, 70 ) 뿐만 아니라 상기 어드레스 레지스터 ( 80, 90, 100 ) 각각에 공급된다. 이러한 방식으로, 상기 어드레스 파이프라인 (40) 의 어드레스 레지스터 ( 80, 90, 100 ) 각각에 존재하는 메모리 어드레스는 실행 파이프라인의 해당하는 단 ( 50, 60, 70 ) 각각에 존재하는 명령어와 동기 상태로 유지된다.
본 발명의 다른 실시태양은 여러 어드레스 레지스터사이로 이송되는 메모리 어드레스를 판독하는 것을 제공한다. 멀티플렉서 ( MUX ; 150 ) 는 상기 어드레스 레지스터사이로 이송되는 값에 대한 어드레스가능한 액세스를 허용한다. 사용자 또는 디버거 시스템은 선택된 어드레스 레지스터를 레지스터 판독 버스 (210) 상에 이송시키는 멀티플렉서 (150) 를 통해 바람직한 정보를 액세스할 수 있다. 상기 메모리 어드레스에 부가하여, 본 발명은 또한 명령어 상태 레지스터 (130) 를 통해 상기 실행 파이프라인 (30) 의 각각의 단 ( 50, 60, 70 ) 의 상태를 이용할 수 있게 한다.
디버거는 프로그래머가 그의 프로그램을 통해 단 한번의 단계를 밟거나 절점을 설정할 수 있게 한다. 그러한 프로그래머는 특정한 명령어에 절점을 설정하거나 프로세서의 실행을 정지 ( 예컨대, 어드레스 X 가액세스되어진 경우 차단 ) 하는 특정한 상태를 규정할 수 있다. 어느 경우든, 프로그래머는 절점이 정확히 발생하였던 때 ( 즉, 어느 명령어가 실제로 절점을 트리거하였는지 ) 를 알기를 원한다.
절점이 특정한 명령어상에 설정된 경우, 프로세서는 그러한 명령어가 실행 단에 도달하였을때 차단한다. 그러나, 어떤 조건이 설정된 경우, 프로세서는 그러한 조건의 만족되었을때 차단한다. 이는 실행단계동안에 있을 수는 없다. 그러므로, 실제로 프로세서를 정지하게 한 명령어의 메모리 어드레스를 저장하는 부가적인 레지스터가 필요하다. 이러한 레지스터는 프로그램 카운터 어드레스 절점 ; program counter address breakpoint ; PCABP ) 레지스터 (140) 로 지칭된다.
절점에 도달한 경우, 파이프라인 제어부 (110) 는 Address - Select 신호 (190) 를 통해 멀티플렉서 (120) 에 신호를 보내어 절점이 도달되게 한 단을 선택한다. 프로세서를 정지하게 한 명령어가 현재 실행 단 (70) 에 있는 경우, PCABP 레지스터 (140) 는 실행 어드레스 레지스터 (100) 의 내용을 래치한다. 마찬가지로, 프로세서를 정지하게 한 명령어가 현재 오퍼랜드 단 (60) 에 있는 경우, PCABP 레지스터 (140) 는 오퍼랜드 어드레스 레지스터 (90) 의 내용을 래치시킨다. 프로세서를 정지하게한 명령어가 현재 명령어 단 (50) 에 있는 경우, PCABP 레지스터 (140) 는 명령어 어드레스 레지스터 (80) 의 내용을 래치시킨다.
프로세서를 정지하게한 명령어의 현재 단 및 메모리 어드레스를 아는 것이외에도, 프로그래머는 프로세서가 정지되기전에 실행 파이프라인 (30) 의 단계각각이 완료되었는지를 알고 싶어 할 수 있다. 이는 파이프라인 제어부 (110) 에 의해 발생되는, 파이프라인 단에 대해 하나의 상태 신호를 갖는 한세트의 상태신호 ( 160, 170, 180 ) 에 의해 용이해진다.이들 신호는 실행 파이프라인 (30) 에서의 해당하는 단 ( 50, 60, 70) 이 실행을 완료했는지를 나타낸다. 상기 상태 신호 ( 160, 170, 180 ) 의 상태는 명령어 상태 레지스터 (130) 에 저장된다.
도 2 에 도시된 본 발명의 실시예에서, 명령어 상태 레지스터 (130) 는 3 개의 비트를 저장한다. 각각의 비트는 실행 파이프라인 (30) 의 해당하는 단계가 완료되어졌는지를 나타내는 명령어 상태 신호 ( 160, 170, 180 ) 에 해당한다. ExecEx 신호 (180) 는 현재 실행 단 (70) 에 존재하는 명령어가 실행되었는지를 나타내고, OperEx 신호 (170) 는 오퍼랜드 단 (60) 에 규정된 오퍼랜드가 인출되었는지를 나타내며, InstrEx 신호는 명령어 단 (50) 내의 명령어가 디코딩되어졌는지를 나타낸다.
예를들면, 현재 오퍼랜드 단 (60) 에 존재하는 명령어에 의해 트리거되어진 판독동작상에 설정된 조건부 절점이 존재한다고 가정하기로 한다. 더우기, 동일한 파이프라인 사이클내에 ( 예컨대, 다음 Advance - Pipe 신호 (200) 가 단정되기전에 ) 현재 실행 단 (70) 에 존재하는 명령어는 조건부 명령어이기 때문에 실행되지 않았고 그러한 조건이 만족되어지지 않았다고 가정하기로 한다. 마지막으로, 현재 명령어 단 (50) 에 존재하는 명령어는 이전의 명령어가 브랜치 ( branch ) 명령어이며 상기 파이프라인 (30) 이 매립 ( flush ) 될것이기 때문에 디코딩되어지지 않았다고 가정하기로 한다. 이러한 경우에, 명령어 상태 레지스터 (130) 는 2 진값 " 010 " 을 유지하는데, 이러한 2 진 값은 실행 단 (70) 에 존재하는 명령어가 실행되어지지 않았고, 오퍼랜드 단 (60) 에 존재하는 명령어가 오퍼랜드를 인출하였으며, 명령어 단 (50) 에 존재하는 명령어가 디코딩되어지지 않았다는 것을 프로그래머 ( 또는 디버거 ) 에 즉시 나타낸다.
지금부터 도 3 을 참조하면, 본 발명의 어드레스 파이프라인 (240) 은 4 단 실행 파이프라인 (230) 을 수용하도록 확대 도시되어 있다. 앞서 언급한 바와 같이, 본 발명의 어드레스 파이프라인 (240) 은 파이프라인의 다수의 단으로 용이하게 확대된다. 상기 실행 파이프라인 (230) 의 인출 단 (245) 은 어드레스 파이프라인 (240) 내의 해당하는 인출 어드레스 레지스터 (275) ( 및 관련 액세스 버스 ) 를 지니고 그러한 시스템은 3 단 시스템과 동일한 방식으로 기능을 이행한다. 도 2 의 3 단 파이프라인 시스템과는 유일하게 다른 주요 변경은 부가적인 상태 신호 ( FetchEx ; 355 ) 가 부가적인 인출 단 (245) 을 처리하기 위해 명령어 상태 레지스터 (330) 에 공급하도록 부가되어 졌다는 점이다. 상기 FetchEx 신호 (355) 는 단순히 새로운 명령어가 인출되어졌는지를 나타낸다. 그밖에는 3 단 대 4 단 파이프라인에 대해 구성된 본 발명간에 어떤 다른 차이점도 존재하지 않는다. 마찬가지로, 본 발명은 단순히 더 많은어드레스 레지스터, 상태 신호, 및 관련 지원 하드웨어를 부가시킴으로써 다수의 단과 협동하도록 일정한 비율로 만들어질 수 있다.
도 4 는 본 발명의 어드레스 파이프라인 (500) 의 다른 한 실시예를 보여준다. 이러한 실시예에서, 개별 어드레스 레지스터는 어드레스가능한 선입선출 (FIFO) 시프트 레지스터 파일로 대체되어 있다. 이러한 실시예는 이전의 실시예의 방식과 유사한 방식으로 동작한다. 주된 차이점은 하드웨어 구현이라는 점이다.
본 발명의 구조 및 동작 방법에 있어서의 여러 다른 변형 및 수정예는 본 발명의 범위 및 사상으로 부터 이탈하지 않고서 당업자에게 자명해질 것이다. 본 발명의 특정의 바람직한 실시예와 연관지어 기술되었지만, 주장하고자 하는 발명은 그러한 특정실시예에 부당하게 국한되어선 안되다는 점을 이해하여야한다. 이하의 청구범위는 본 발명의 범위를 한정하며 이들 청구범위에 속하는 구조 및 방법 그리고 그들의 등가예가 본 발명에 포함하고자 한다.
그러므로, 본 발명은 상이한 파이프라인 기계의 동작 특성을 관찰 및 이해하여 상이한 파이프라인 기계의 용도를 최적화시키는 데 도움을 준다.

Claims (5)

  1. (정정) 복수개의 단 및 파이프라인 제어 회로를 지니는 실행 파이프라인;
    상기 실행 파이프라인과 병렬을 이루어 명령어 식별자를 순차적으로 및 동기적으로 저장하는 어드레스 파이프라인으로서, 상기 실행 파이프라인의 복수개의 단의 각 단에 대하여 최소한 하나의 개별 액세스가능한 해당하는 저장 디바이스를 포함하는 어드레스 파이프라인; 및
    상기 어드레스 파이프라인의 저장 디바이스에 접속되고, 실행 시에 사전 정의된 조건을 만족시키는 명령어의 명령어 식별자를 저장하는 어드레스 절점 레지스터를 포함하는 것을 특징으로 하는 파이프라인 프로세서.
  2. (정정) 명령어를 처리하는 실행 파이프라인 ;
    상기 실행 파이프라인에서 처리된 명령어 각각에 해당하는 명령어 식별자를 순차적으로 및 동기적으로 저장하는 수단;
    상기 순차적으로 및 동기적으로 저장하는 수단에 내재하는 명령어 식별자에 액세스하는 수단; 및
    명령어 식별자를 상기 순차적으로 및 동기적으로 저장하는 수단에 접속되고, 실행 시에 사전 정의된 조건을 만족시키는 명령어의 명령어 식별자를 저장하는 어드레스 절점 레지스터를 포함하는 것을 특징으로 하는 파이프라인 프로세서.
  3. (정정) 복수개의 명령어 처리 단 및 파이프라인 제어 회로를 지니는 실행 파이프라인을 포함하는 파이프라인 프로세서용 어드레스 파이프라인에 있어서,
    일련의 저장 장소를 지니는 전자 저장 디바이스로서, 최소한 하나의 저장 장소가 하나의 파이프라인의 복수개의 단 각각에 대응하는 전자 저장 디바이스를 포함하고,
    상기 일련의 저장장소의 각 저장 장소가, 개별적으로 어드레스 가능하고, 특정값을 저장하도록 동작가능하며, 파이프라인 전진 신호의 수신시에 상기 일련의 저장장소 내의 다음 저장장소로 상기 값을 시프트시키도록 구성되고,
    상기 값은 명령어에 관계되고, 상기 어드레스 파이프라인은, 상기 저장 장소에 접속되고, 실행시에 사전 정의된 조건을 만족시키는 명령어에 관계된 값을 저장하는 어드레스 절점 레지스터를 더 포함하는 것을 특징으로 하는 어드레스 파이프라인.
  4. (정정) 복수개의 단을 지니는 파이프라인에서 및 파이프라인 제어회로의 제어하에서 명령어를 실행하는 단계; 및
    상기 실행 파이프라인의 복수개의 단의 각 단에 대하여 최소한 하나의 개별 액세스가능한 저장 디바이스 내에, 상기 실행 파이프라인과 병렬로 명령어 식별자를 순차적으로 및 동기적으로 저장하는 단계를 포함하는 것을 특징으로 하는 파이프라이닝 방법.
  5. (정정) 파이프라인 프로세서에서 명령어를 실행하는 단계;
    실행 파이프라인에서 처리된 명령어 각각에 해당하는 명령어 식별자를 순차적으로 및 동기적으로 저장하는 단계; 및
    순차적으로 및 동기적으로 저장하는 수단에 내재하는 명령어 식별자에 액세스하는 단계를 포함하며,
    순차적으로 및 동기적으로 저장하는 단계는, 상기 명령어 식별자를 일련의 레지스터에 기입하는 단계, 및 상기 명령어가 파이프라인을 통하여 이동함에 따라서 상기 명령어 식별자를 일련의 레지스터를 따라 시프트하는 단계를 포함하며,
    상기 액세스하는 단계는, 멀티플렉서를 사용하여 일련의 레지스터 중으로부터 레지스터를 선택하는 단계를 포함하는 것을 특징으로 하는 명령어를 처리하는 파이프라이닝 방법.
KR1019980020008A 1997-07-01 1998-05-30 파이프라인기계에서의어드레스파이프라인을위한방법및장치 KR100303712B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/886,520 1997-07-01
US08/886,520 US5996059A (en) 1997-07-01 1997-07-01 System for monitoring an execution pipeline utilizing an address pipeline in parallel with the execution pipeline
US08/886,520 1997-07-01

Publications (2)

Publication Number Publication Date
KR19990013383A KR19990013383A (ko) 1999-02-25
KR100303712B1 true KR100303712B1 (ko) 2001-09-24

Family

ID=25389184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980020008A KR100303712B1 (ko) 1997-07-01 1998-05-30 파이프라인기계에서의어드레스파이프라인을위한방법및장치

Country Status (3)

Country Link
US (1) US5996059A (ko)
KR (1) KR100303712B1 (ko)
DE (1) DE19824289C2 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US8079086B1 (en) 1997-11-06 2011-12-13 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US6286062B1 (en) * 1997-07-01 2001-09-04 Micron Technology, Inc. Pipelined packet-oriented memory system having a unidirectional command and address bus and a bidirectional data bus
US6597394B1 (en) * 1997-11-16 2003-07-22 Pictos Technologies, Inc. Programmable image transform processor for digital image processing
US6449736B1 (en) * 1999-10-20 2002-09-10 Texas Instruments Incorporated Method and apparatus for providing chained breakpoints in a microprocessor
US6918028B1 (en) * 2000-03-28 2005-07-12 Analog Devices, Inc. Pipelined processor including a loosely coupled side pipe
US6708326B1 (en) * 2000-11-10 2004-03-16 International Business Machines Corporation Method, system and program product comprising breakpoint handling mechanism for debugging and/or monitoring a computer instruction sequence
US7281140B2 (en) * 2001-12-28 2007-10-09 Intel Corporation Digital throttle for multiple operating points
US7987341B2 (en) * 2002-10-31 2011-07-26 Lockheed Martin Corporation Computing machine using software objects for transferring data that includes no destination information
US6954623B2 (en) * 2003-03-18 2005-10-11 Skyworks Solutions, Inc. Load variation tolerant radio frequency (RF) amplifier
US7383426B2 (en) * 2003-06-11 2008-06-03 University Of Washington Processor employing loadable configuration parameters to reduce or eliminate setup and pipeline delays in a pipeline system
US8073974B2 (en) 2004-10-01 2011-12-06 Lockheed Martin Corporation Object oriented mission framework and system and method
US7769987B2 (en) * 2007-06-27 2010-08-03 International Business Machines Corporation Single hot forward interconnect scheme for delayed execution pipelines
US7984272B2 (en) * 2007-06-27 2011-07-19 International Business Machines Corporation Design structure for single hot forward interconnect scheme for delayed execution pipelines
KR101003150B1 (ko) * 2009-05-14 2010-12-21 주식회사 하이닉스반도체 어드레스 시프트 회로 및 방법
US10686539B2 (en) * 2015-05-29 2020-06-16 Avago Technologies International Sales Pte. Limited Flexible debug observation point insertion in pipeline designs

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69430352T2 (de) * 1993-10-21 2003-01-30 Sun Microsystems Inc Gegenflusspipeline
US5682493A (en) * 1993-10-21 1997-10-28 Sun Microsystems, Inc. Scoreboard table for a counterflow pipeline processor with instruction packages and result packages
DE69415126T2 (de) * 1993-10-21 1999-07-08 Sun Microsystems Inc Gegenflusspipelineprozessor
US5564028A (en) * 1994-01-11 1996-10-08 Texas Instruments Incorporated Pipelined data processing including instruction trace
GB2287108B (en) * 1994-02-28 1998-05-13 Intel Corp Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path
US5704054A (en) * 1995-05-09 1997-12-30 Yale University Counterflow pipeline processor architecture for semi-custom application specific IC's

Also Published As

Publication number Publication date
DE19824289C2 (de) 2000-05-25
KR19990013383A (ko) 1999-02-25
DE19824289A1 (de) 1999-01-07
US5996059A (en) 1999-11-30

Similar Documents

Publication Publication Date Title
EP0380850B1 (en) Method and digital computer for preproccessing multiple instructions
KR100303712B1 (ko) 파이프라인기계에서의어드레스파이프라인을위한방법및장치
JP3093624B2 (ja) 投機例外を処理する方法及び装置
JP3120152B2 (ja) コンピューターシステム
US6615333B1 (en) Data processing device, method of executing a program and method of compiling
US5802337A (en) Method and apparatus for executing load instructions speculatively
US6081887A (en) System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction
EP0381469A2 (en) Method and data processing unit for pipeline processing of register and register modifying specifiers within the same instruction
EP0394624B1 (en) Multiple sequence processor system
KR20040016829A (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
JP2003085000A (ja) トレース情報生成装置およびその方法
US5502827A (en) Pipelined data processor for floating point and integer operation with exception handling
US7991985B2 (en) System and method for implementing and utilizing a zero overhead loop
US5761467A (en) System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field
US7987347B2 (en) System and method for implementing a zero overhead loop
WO2000038050A1 (en) Instruction decomposition to branch and sequential sections
US5574937A (en) Method and apparatus for improving instruction tracing operations in a computer system
EP1974254B1 (en) Early conditional selection of an operand
KR20190020036A (ko) 레지스터 복구 분기 명령
JPH09152973A (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
US7539847B2 (en) Stalling processor pipeline for synchronization with coprocessor reconfigured to accommodate higher frequency operation resulting in additional number of pipeline stages
US5951676A (en) Apparatus and method for direct loading of offset register during pointer load operation
US6014743A (en) Apparatus and method for recording a floating point error pointer in zero cycles
JP2008299729A (ja) プロセッサ
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set

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: 20130628

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 16

LAPS Lapse due to unpaid annual fee