KR101077425B1 - 효율적 인터럽트 리턴 어드레스 저장 메커니즘 - Google Patents

효율적 인터럽트 리턴 어드레스 저장 메커니즘 Download PDF

Info

Publication number
KR101077425B1
KR101077425B1 KR1020097003916A KR20097003916A KR101077425B1 KR 101077425 B1 KR101077425 B1 KR 101077425B1 KR 1020097003916 A KR1020097003916 A KR 1020097003916A KR 20097003916 A KR20097003916 A KR 20097003916A KR 101077425 B1 KR101077425 B1 KR 101077425B1
Authority
KR
South Korea
Prior art keywords
pseudo
instruction
return address
pipeline
stage
Prior art date
Application number
KR1020097003916A
Other languages
English (en)
Other versions
KR20090042283A (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 콸콤 인코포레이티드
Publication of KR20090042283A publication Critical patent/KR20090042283A/ko
Application granted granted Critical
Publication of KR101077425B1 publication Critical patent/KR101077425B1/ko

Links

Images

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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • 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
    • 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/3017Runtime instruction translation, e.g. macros
    • 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/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, 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/46Multiprogramming arrangements

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)
  • Debugging And Monitoring (AREA)
  • Image Processing (AREA)

Abstract

본 발명은 파이프라인형 프로세서에서 범용 레지스터들을 사용하여 인터럽트들을 효율적으로 처리하기 위한 시스템, 장치 및 방법에 관한 것이다. 본 발명에 따르면, 레지스터 파일은 인터럽트 리턴 어드레스를 효율적으로 저장하기 위하여 업데이트될 수 있다. 인터럽트 요청이 시스템의 프로세서에 의하여 수신될때, 또는 요청이 프로그램의 실행중에 송출될때, 의사-명령이 생성된다. 이러한 의사-명령은 다른 명령들과 동일한 방식으로 파이프라인을 따라 이동하며, 처리가 완전하게 않은 마지막 명령의 리턴 어드레스가 레지스터 파일에 기록되도록 함으로서 레지스터 파일을 업데이트한다.

Description

효율적 인터럽트 리턴 어드레스 저장 메커니즘{EFFICIENT INTERRUPT RETURN ADDRESS SAVE MECHANISM}
본 발명은 일반적으로 프로세서, 특히 인터럽트 리턴 어드레스를 효율적으로 저장하기 위하여 레지스터 파일을 업데이트하는 파이프라인형 프로세서에 관한 것이다.
컴퓨터 처리 속도를 고속으로 하는 것은 제조업자, 사용자 등의 오랜 목적이다. 고속 처리의 목적을 달성하기 위하여, 일부 컴퓨터 프로세서들은 파이프라인형 처리로서 공지된 기술을 사용한다. 파이프라인형 구조를 가진 프로세서들은 다수의 명령이 다양한 실행 단계들에서 동시에 실행되도록 한다.
파이프라인형 구조에서, 단일 명령 사이클은 5개의 스테이지를 포함할 수 있다. 이들 스테이지들은 다음과 같이 (1) 페치; (2) 디코드; (3) 레지스터 파일 액세스; (4) 실행 및 (5) 레지스터 파일로의 기록으로 순차적으로 기술될 수 있다. 파이프라인형 처리에서, 이들 스테이지들의 각각의 스테이지에서의 처리는 고속 처리를 달성하기 위하여 병렬로 수행된다. 파이프라이닝(pipelining)은 일정기간동안 완료되는 명령들의 수를 증가시켜서 프로세서 속도를 증가시키기 위하여 사용될 수 있다.
이러한 프로세서들에서는 5개의 명령이 단일 시간에 다양한 처리 스테이지들의 파이프라인에 동시에 존재하는 것이 가능하다. 예컨대, 제 1의 다수의 처리 클럭 사이클들에서, 명령들(1-5)은 다양한 실행 스테이지들에서 동시에 존재할 수 있다. 단일 명령에 대한 5-스테이지 처리는 다음 명령의 처리가 시작될 수 있기 전에 완료될 필요가 없다.
예컨대, 한 시점에서 명령 5가 페치되고 명령 4가 디코딩되며 명령 3가 레지스터 파일을 처리하고 명령 2가 실행되며 명령 1이 레지스터 파일에 기록되는 것이 가능하다. 파이프라인형 처리에서, 각각의 명령은 일반적으로 다음 스테이지들에서 순차적으로 페치되어 처리된다.
파이프라인형 프로세서는 인터럽트(interrupt)들을 제어해야 한다. 이러한 인터럽트들은 여러 경우중 인터럽트 요청 신호가 주변 장치로부터 송출될때 또는 컴퓨터 프로그램의 실행시에 발생할 수 있다. 인터럽트 요청이 발생할때, 실행되는 프로그램은 인터럽트된다. 그 다음에, 프로세서는 실행되는 프로그램의 상태를 일시적으로 저장하며, 다른 처리들이 인터럽트 요청에 응답하여 발생한다. 일단 인터럽트 처리가 완료되면, 프로세서는 프로그램이 인터럽트되었던 시점부터 그 프로그램의 실행을 다시 시작한다.
따라서, 저장되어야 하는 인터럽트된 프로그램 상태의 주요(key) 엘리먼트는 일단 인터럽트 처리가 완료되면, 프로그램 실행이 다시 시작되어야 하는 명령 어드레스이다. 이러한 어드레스는 "리턴 어드레스(return address)"로서 지칭된다. 일부 구조들에서는 이러한 리턴 어드레스가 범용 레지스터 파일의 부분인 특정 레지스터에 저장되어야 한다. 해결될 문제는 리턴 어드레스를 저장하기 위하여 레지스터 파일을 액세스하는 인터럽트 메커니즘을 제공하는 방법이다.
일부 방법은 레지스터 파일에 전용 포트들을 사용하여 리턴 어드레스를 저장하는 것을 시도하였다. 그러나, 프로세서의 레지스터 파일의 관리는 전형적으로 특히 고주파수, 심도-파이프라인형(deeply-pipelined) 수퍼스칼라 프로세서들에서 복잡하면서도 성능 중요 설계 양상을 가진다. 추가 레지스터 파일 포트는 타이밍, 면적 및 전력 측면에서 고비용일 수 있으며 따라서 프로세서의 효율성을 감소시킨다. 게다가, 많은 고성능 설계는 레지스터 리네이밍(renaming), 저장단(reservation station) 및 명령 오더링을 위한 완료 버퍼(completion buffer)를 포함하는, 훨씬 더 복잡한 레지스터 파일 관리를 요구할 수 있는 비순차(out-of-order) 명령 처리를 수행한다. 모든 이들 복잡성들은, 인터럽트 리턴 어드레스를 저장하기 위하여, 레지스터 파일에 임시 포트(extra port)를 제공하거나 또는 기존 레지스터 파일 포트를 공유하기 위하여 특별한 제어 경로들을 제공하는 것을 곤란하게 한다.
본 발명은 범용 레지스터 파일에 인터럽트 리턴 어드레스를 효율적으로 저장하는 시스템, 장치 및 방법을 제공한다. 본 발명은 인터럽트가 발생할때 파이프라인을 아직 나가지 않은 명령에 대한 인터럽트 리턴 어드레스 또는 프로그램 카운터 값을 저장하는 메커니즘을 제공한다. 인터럽트가 발생할 때 파이프라인에서 대부분 전진되나 불완전하게 처리되는 프로그램 명령은 종종 파이프라인에서 가장 전진한 명령으로서 여기에서 지칭된다.
본 발명의 일 실시예에 따르면, 파이프라인형 프로세서의 범용 레지스터 파일에 인터럽트 리턴(return) 어드레스를 효율적으로 저장하기 위한 데이터 처리 시스템이 제공된다. 본 시스템은 인터럽트 요청에 응답하여 의사-명령(pseudo-instruction)을 생성하도록 구성된 제어 로직 회로를 포함하며, 상기 의사-명령은 파이프라인의 포워드모스트(forwardmost) 명령에 대한 인터럽트 리턴 어드레스가 범용 레지스터 파일에 기록되도록 구성되며; 상기 의사-명령은 상기 파이프라인내에 삽입되고, 다른 명령들과 실질적으로 유사한 방식으로 파이프라인형 프로세서의 파이프라인을 따라 이동한다.
본 발명의 다른 실시예에 따르면, 범용 레지스터 파일에 인터럽트 리턴 어드레스를 효율적으로 저장하기 위한 장치가 제공된다. 본 장치는 인터럽트 요청에 응답하여 의사-명령을 생성하도록 구성된 의사-명령 생성기를 가진 파이프라인형 프로세서를 포함하며, 상기 의사-명령은 파이프라인의 포워드모스트(forwardmost) 명령에 대한 인터럽트 리턴 어드레스가 범용 레지스터 파일에 기록되도록 구성되며, 상기 의사-명령은 상기 파이프라인내에 삽입되고, 다른 명령들과 실질적으로 유사한 방식으로 파이프라인형 프로세서의 파이프라인을 따라 이동한다.
본 발명의 또 다른 실시예에 따르면, 범용 레지스터 파일에 인터럽트 리턴 어드레스를 효율적으로 저장하기 위한 방법이 제공된다. 본 방법은 인터럽트 요청에 응답하여, 파이프라인의 포워드모스트(forwardmost) 명령에 대한 인터럽트 리턴 어드레스가 파이프라인형 프로세서의 범용 레지스터 파일에 기록되도록 구성된 의사-명령을 생성하는 단계를 포함하며, 상기 의사-명령은 상기 파이프라인내에 삽입되며, 다른 명령들과 실질적으로 유사한 방식으로 파이프라인형 프로세서의 파이프라인을 따라 이동한다.
본 발명의 또 다른 실시예에 따르면, 범용 레지스터 파일에 인터럽트 리턴 어드레스를 효율적으로 저장하기 위한 장치가 제공된다. 본 장치는 인터럽트 처리를 수행하도록 구성된 멀티-스테이지 파이프라인형 프로세서를 포함하며, 상기 스테이지들은 명령들을 수신하도록 구성된 적어도 하나의 스테이지 및 범용 레지스터 파일에 결과들을 다시 기록하도록 구성된 적어도 하나의 스테이지를 포함하며, 상기 프로세서는 프로그램으로부터의 명령 데이터를 처리하도록 구성된다.
본 장치는 인터럽트 요청에 응답하여 의사-명령을 생성하도록 구성된 제어 로직 회로를 더 포함하며, 상기 의사-명령은 상기 파이프라인의 포워드모스트(forwardmost) 명령에 대한 인터럽트 리턴 어드레스가 범용 레지스터 파일에 기록되도록 구성되며, 상기 의사-명령은 상기 파이프라인내에 삽입되고 다른 명령들과 실질적으로 유사한 방식으로 상기 파이프라인을 따라 이동한다. 본 장치는 제어 로직 회로로부터의 의사-명령 및 프로그램으로부터의 명령 데이터 둘다를 수신하도록 구성된 다중화기를 포함하며, 상기 다중화기는 상기 의사-명령 및 상기 명령 데이터중 적어도 하나를 선택하고 명령들을 수신하도록 구성된 적어도 하나의 파이프라인 스테이지에 상기 선택된 의사-명령 또는 명령 데이터를 입력하도록 구성된다. 이러한 장치에서, 상기 인터럽트 처리가 발생한후에, 상기 프로세서는 상기 범용 레지스터 파일에 기록된 포워드모스트(forwardmost) 명령에 대한 인터럽트 리턴 어드레스에서 상기 명령 데이터의 처리를 다시 시작하도록 구성된다.
본 발명의 일 실시예에 따르면, 본 발명의 다른 실시예들은 설명을 위하여 단지 본 발명의 다양한 실시예들을 기술한 이하의 상세한 설명으로부터 당업자에게 명백할 것이다. 인식되는 바와같이, 본 발명은 다른 실시예들을 포함할 수 있으며, 이의 여러 세부사항들은 본 발명의 사상 및 범위를 벗어나지 않고 다양한 다른 관점에서 수정될 수 있다. 따라서, 도면들 및 상세한 설명은 제한적이 아니라 예시적이다.
이들 뿐만아니라 다른 목적, 특징 및 장점들은 예시적인 실시예들 및 첨부 도면들을 참조할때 더욱더 명백해 질 것이다.
도 1은 본 발명의 일 실시예에 따른 파이프라인형 프로세서 제어 및 데이터 모델의 블록도이다.
도 2는 본 발명의 일 실시예에 따라 클럭 사이클에 대하여 다양한 파이프라인 스테이지들에서 처리하는 인터럽트들을 기술한 테이블을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따라 범용 레지스터 파일에 인터럽트 리턴 어드레스를 효율적으로 저장하는 방법을 기술한 흐름도이다.
본 발명은 범용 레지스터 파일에 인터럽트 리턴 어드레스를 효율적으로 저장하는 시스템, 장치 및 방법을 제공한다. 범용 레지스터 파일은 파이프라인의 제어하에 있다. 본 발명에 따르면, 범용 레지스터 파일은 인터럽트 요청시에 파이프라인의 포워드모스트(forwardmost) 명령에 대한 리턴 어드레스 또는 프로그램 카운터 값을 효율적으로 저장하기 위하여 업데이트될 수 있다.
인터럽트 요청 신호가 시스템의 프로세서에 의하여 수신될때, 의사-명령이 프로세서에 의하여 생성된다. 의사-명령은 다른 명령들처럼 처리된다. 의사-명령은 파이프라인을 따라 이동하며, 리턴 어드레스가 레지스터 파일에 기록되도록 함으로써 레지스터 파일을 업데이트한다. 이러한 의사-명령이 정규(regular) 명령들과 같이 파이프라인을 따라 이동하기 때문에, 의사-명령은 정규 파일 뿐만아니라 관련 자원들을 업데이트한다. 인터럽트 리턴 어드레스를 저장하는 레지스터 파일과 연관되는 전용 하드웨어가 요구되지 않는다. 여기에서 제시된 시스템, 장치 및 방법은 범용 레지스터들로 구현될 수 있으며, 따라서 레지스터 파일에 대한 전용 포트들이 필요치 않다.
도 1에는 본 발명의 일 실시예에 따른 파이프라인형 데이터 프로세서 모델(100)이 도시되어 있다. 5-스테이지 파이프라인 모델이 설명을 위하여 여기에서 제시된다. 5-스테이지들은 (1) 페치; (2) 디코드; (3) 액세스 레지스터 파일; (4) 실행; 및 (5) 레지스터 파일로의 기록으로 기술될 수 있다. 프로세서 모델(100)의 여러 스테이지들은 범용 레지스터들을 포함할 수 있다. 물론, 이들 범용 레지스터들은 데이터가 실제 데이터와 다르게 저장되는 메모리 위치를 포함할 수 있다. 특정 레지스터들이 제공되거나 또는 필요치 않다.
여기에서 제시된 시스템, 장치 및 방법은 5-스테이지 파이프라인형 프로세서와 관련하여 기술된다. 그러나, 여기에서 제시된 시스템, 장치 및 방법은 소수 또 는 그 이상의 스테이지들을 가진 파이프라인형 프로세서들에서 구현될 수 있다. 더욱이, 여기에서 제시된 방법들 및 시스템들은 파이프라인 스테이지들의 특정 세트로 프로세서의 분할을 필요로 하지 않는다.
예컨대, 제시된 스테이지는 2개 이상의 스테이지들로 더 분할될 수 있다. 이러한 분할은 타이밍 송출들(timing issue)을 어드레싱하거나 또는 프로세서 클럭 속도를 고속으로 하기 위하여 수행될 수 있다. 대안적으로, 2개 이상의 스테이지들은 단일 스테이지로 결합될 수 있다. 프로세서는 단순히 명령들을 수신하는 제 1 스테이지 및 레지스터 파일에 결과치들을 기록하는 제 2 스테이지를 포함할 수 있다. 제시된 파이프라인은 본 발명에 적절한 프로세서에서 처리가 분할될 수 있는 방법에 관한 일례만을 제공한다.
도 1에 도시된 바와같이, 프로세서 제어 모듈(110)은 일반적 파이프라이닝 동작 및 인터럽트 처리의 흐름을 제어한다. 페치 스테이지(120)는 명령들을 페치하는 역할을 할 수 있다. 정규 명령들은 빌트-인(built-in) 캐시 메모리 또는 메모리 관리 유닛에 의하여 조정되는 외부 메모리를 포함하는 다양한 위치들로부터 페치될 수 있다.
의사-명령 생성기(117)는 제어 모듈(110)에 위치할 수 있는 제어 로직 회로일 수 있다. 의사-명령 생성기(117)는 리턴 어드레스가 범용 레지스터 파일에 기록되도록 구성된 의사-명령을 생성하도록 구성된다. 의사-명령들은 그들이 파이프라인에 입력되는 방식에서 일반적으로 정규 명령들과 구별될 수 있다. 더욱이, 의사-명령은 일반적으로 레지스터 파일에 인터럽트 리턴 어드레스가 기록되도록 설계된다는 점에서 일반적으로 특별한 기능을 수행한다. 그러나, 일단 의사-명령이 파이프라인에 입력되면, 의사-명령은 메모리로부터 또는 그 밖의 다른 방법으로부터 페치된 정규 명령들처럼 파이프라인을 따라 이동한다. 의사-명령의 활용은 이하에서 더 상세히 기술될 것이다. 다중화기(115)는 페치 스테이지(120) 및 디코드 스테이지(130)사이에 배치될 수 있다. 다중화기(115)는 디코드 스테이지(130)로의 입력을 페치 스테이지(120)의 명령 또는 제어 모듈(110)의 의사-명령 생성기(117)에 의하여 생성된 의사-명령으로서 결정할 수 있다. 다중화기(115)는 선택 라인(119)을 통해 디코드 스테이지로의 적절한 입력을 선택할 수 있다.
디코드 스테이지(130)는 페치 스테이지(120) 동안 페치된 명령을 수신 및 디코딩하거나 또는 대안적으로 제어 모듈(110)의 의사-명령 생성기(117)에서 생성된 의사 명령을 수신 및 디코딩할 수 있다. 인터럽트 처리가 호출되지 않는다고 가정하면, 각각의 명령은 일반적으로 순차적인 순서로 또는 실행되는 컴퓨터 프로그램에 의하여 결정된 순서로 페치 스테이지(120)로부터 디코드 스테이지(130)에 도달한다.
다음 명령의 어드레스를 결정하기 위하여 데이터의 디코딩이 요구될 것이다. 어드레스는 예컨대 다음의 순차적인 명령으로서 버퍼에 있을 수 있다. 일부 예에서, 어드레스는 예컨대 만일 현재의 명령이 브랜치이면 메모리 또는 캐시로부터 페치되도록 요구될 수 있다. 디코드 스테이지는 명령이 종료하는 위치를 결정하기 위하여 명령들이 디코딩될 수 있는 파이프라인의 제 1 스테이지이다.
인터럽트들을 서비스할때 문제들에 부딪칠 수 있다. 이들 문제들은 레지스터 파일에 리턴 어드레스가 기록되도록 하는 것과 관련될 수 있다.
본 발명은 레지스터 파일이 파이프라인의 직접 제어하에 있다는 장점을 가진다. 본 발명의 프로세서 구조는 범용 레지스터 파일에 인터럽트 리턴 어드레스를 효율적으로 저장하기 위하여 레지스터 파일을 사용한다.
인터럽트 요청 신호(118)가 제어 모듈(110)에서 수신되는 경우에, 제어 모듈(110)은 선택 라인(119)을 통해 서비스 인터럽트를 수행해야하는지를 결정한다. 만일 서비스 인터럽트가 수행되어야 한다고 결정되면, 의사-명령 생성기(117)는 경로(113)를 통해 의사-명령을 생성하여 이 의사-명령을 다중화기(115)에 입력시킨다. 의사-명령은 그것이 실행되는 프로그램에 실제 존재하지 않기 때문에 "의사-명령"으로 지칭된다. 의사-명령은 인터럽트 리턴 어드레스가 범용 레지스터 파일에 기록되도록 구성된다. 이러한 인터럽트 리턴 어드레스는 제어 모듈(110)의 의사-명령 생성기(117)에 입력된다.
의사-명령 생성기(117)는 예컨대 다양한 게이트들 및 트랜지스터들을 가진 제어 로직 회로를 포함한다. 이러한 의사-명령은 리턴 어드레스를 레지스터 파일에 기록하도록 설계된다. 리턴 어드레스 또는 프로그램 카운터 값은 만일 인터럽트가 발생하지 않았다면 다음으로 처리를 완료했었을 포워드모스트(forwardmost) 명령의 위치를 식별한다. 따라서, 리턴 어드레스는 포워드모스트(forwardmost) 명령에 관한 것이다. 당업자에게 공지된 바와 같이, 프로세서 마이크로-구조는 파이프라인을 통해 명령 어드레스들을 추적하는 제어 모듈(110)의 제어 로직 회로를 포함한다. 이러한 제어 로직 회로는 파이프라인에서 추적된 어드레스들로부터 명령 리턴 어드레스를 결정할 수 있다. 그 다음에, 명령 리턴 어드레스는 다중화기(115)에 공급된후 의사-명령의 부분으로서 디코드 파이프라인 스테이지(13)에 제공된다.
다중화기(115) 및/또는 의사-명령 생성기(117)는 디코드 스테이지(130)에 대한 입력과 다른 스테이지의 파이프라인에 삽입될 수 있다. 그러나, 레지스터 파일 관리 기능부들이 디폴트 또는 보통의 제어 및 데이터 경로들을 사용할 수 있도록 파이프라인의 스테이지에 충분히 일찍 의사-명령을 삽입하는 것이 바람직하다는 것이 이해되어야 한다. 레지스터 파일 관리 기능부들은 장애 검출, 어드레스 디코딩 및/또는 판독/기록 제어들을 포함할 수 있다. 이러한 방식에서, 특별한 기능부들 뿐만아니라 레지스터 파일에 대한 전용 포트들이 필요치 않을 수 있다.
디코드 스테이지(130) 후에, 의사-명령(또는 의사-명령이 현재 입력되고 있지 않는 다른 명령)은 레지스터 파일 스테이지(135)를 액세스하도록 진행할 수 있다. 프로세서 제어 모듈(110)은 여러 이유로 레지스터 파일을 액세스할 수 있다. 예컨대, 만일 "가산" 명령이 스테이지(130)에서 디코딩되면, 레지스터 파일은 가산을 위한 소스 피연산자들(source operand)을 판독하기 위하여 액세스될 수 있다. 다수의 범용 레지스터들은 레지스터 파일 스테이지(135)에 포함된다. 이들 범용 레지스터들의 출력은 나중의 클록 사이클들에서 사용될 수 있다.
레지스터 파일이 스테이지(135)에서 액세스된후에, 명령들은 명령 실행 스테이지(140)에서 수신될 수 있다. 그 다음에, 명령들이 실행될 수 있다. 다수의 범용 레지스터들은 명령 실행 스테이지(140)에 포함될 수 있다. 이들 범용 레지스터들의 출력은 기록(Write-Back) 스테이지(145)에 전송될 수 있다. 기록(Write-Back) 스테이지(145)에서, 프로세서(100)는 레지스터 파일(180)에 결과치들을 다시 기록할 것이다.
도 1에 기술된 바와같이, 파이프라인의 초기 스테이지들에서, 하나 이상의 명령들은 메모리 또는 캐시로부터 페치된다. 일반적으로, 명령들은 순차적인 순서대로 파이프라인을 통해 흐를 수 있다. 그러나, 인터럽트 조절(handling)은 인터럽트가 발생하였을때 프로세서가 실행 과정에 있는 프로그램으로 리턴할 것을 요구한다. 따라서, 프로세서가 마지막의 비처리 명령으로 리턴하는 것이 바람직할 수 있다.
도 2에는 명령들이 클록 사이클에 대하여 처리될 수 있는 다양한 파이프라인 스테이지들을 도시한 테이블이 도시되어 있다. 설명을 위하여, 단일 스테이지가 단일 클록 사이클동안 완료된다는 것이 가정된다. 그러나, 일부 변형들이 이루어질 수 있다는 것에 유의해야 한다.
파이프라인형 구조에서, 명령들의 실행은 중첩될 수 있다. 그래서, 비록 각각의 명령을 실행하는데 5개의 클록 사이클들의 시간이 걸리지만, 다양한 실행 스테이지들에서 5개의 명령들을 동시에 존재할 수 있다. 따라서, 제 1명령이 파이프라인을 따라 그것이 레지스터 파일에 기록되는 스테이지까지 진행한후, 하나의 명령은 실질적으로 클록 사이클마다 완료된다.
도 2의 설명을 위하여, 인터럽트 처리가 제 8 및 제 9 클록 사이클사이에서 주변장치에 의하여 요구된다는 것이 가정된다. 명령들은 명령에 대한 "I"와 명령 다음의 명령 번호에 의하여 표시된다. 설명을 위하여, 인터럽트 처리가 요구될때 명령 #8이 페치 스테이지에 있다는 것이 가정된다. 물론, 인터럽트 처리가 임의의 명령 번호에서 요청될 수 있다는 것이 이해되어야 한다.
이러한 설명에서, 인터럽트 조절은 프로세서가 명령 #100으로 진행할 것을 요구한다. 이러한 예에서, 명령 #100은 인터럽트 처리에 관한 명령들이 발견될 수 있는 위치일 수 있다. 물론, 인터럽트 처리는 프로그램에 의하여 지정된 임의의 명령에서 발생할 수 있다.
명령 #100이 인터럽트 처리를 조절하기 위하여 페치된후에, 모든 불완전하게 처리된 명령들은 폐기될 것이다. 이러한 설명에서, 명령들 #5 내지 #8은 순차적인 순서(또는 정상 동작동안 프로그램에 의하여 결정되는 순서)의 처리가 인터럽트되었기 때문에 폐기될 수 있다.
처리가 불완전한 포워드모스트(forwardmost) 명령은 명령 #5이다. 인터럽트시에, 명령 #5가 실행 스테이지에 있다. 가장 오래된 불완전한 처리 명령인 이러한 명령은 벌써 파이프라인으로부터 나가야 했다. 따라서, 프로세서가 프로그램 실행을 다시 시작해야 하는 프로그램 값이 명령 #5인 것을 알아야 한다. 본 발명에 따르면, 의사-명령은 순방형 명령으로서 리턴 어드레스를 기록하도록 구성된다. 이는 완전한 처리가 이루어지지 않았으나 인터럽트 요청시에 파이프라인에서 대부분 진행된 가장 오래된 명령이다. 이러한 의사-명령은 모든 다른 명령들이 이동하였을때만 파이프라인을 따라 이동한다.
도 2의 사이클 12에서, 의사-명령은 포워드모스트(forwardmost) 명령의 어드레스를 레지스터 파일에 기록한다. 인터럽트 처리가 나중에 완료될때, 프로세서는 레지스터 파일에 저장된 값을 사용하여 명령 #5에서 프로그램의 실행으로 리턴할 것이다.
도 3을 이제 참조하면, 도 3에는 범용 레지스터 파일에 인터럽트 리턴 어드레스를 효율적으로 저장하기 위한 방법(300)이 기술되어 있다. 단계(310)에서, 인터럽트 요청이 수신된다. 인터럽트 요청은 주변 장치로부터, 또는 요청시 또는 인터럽트 요청이 만들어진 임의의 다른 방식으로 실행되는 프로그램으로부터 발생할 수 있다.
단계(320)에서, 의사-명령이 생성된다. 의사-명령은 프로세서의 제어 모듈의 제어 로직 회로에 의하여 생성될 수 있다. 의사-명령은 또한 임의의 다른 수단에 의하여 생성될 수 있다. 의사-명령은 범용 레지스터 파일에 인터럽트 리턴 어드레스를 효율적으로 저장하도록 구성된다. 인터럽트 리턴 어드레스는 그것이 제어 모듈에 입력되기 때문에 알려진다. 의사-명령은 다른 명령들과 같이 파이프라인을 따라 이동한다.
단계(330)에서, 다음의 비처리된 명령에 대한 프로그램 값이 범용 레지스터(GRP) 파일에 기록된다. 레지스터 파일 및 관련 자원들은 보통의 방식으로 업데이트된다. 단지 범용 레지스터들만이 이러한 프로세스를 위하여 필요하다. 레지스터 파일의 전용 포트들은 필요치 않으며, 따라서 프로세서상의 면적이 절약되고 전용 포트들 또는 특수 레지스터들과 연관된 복잡성이 방지될 수 있다.
단계(340)에서, 프로세서는 범용 레지스터 파일에 기록된 프로그램 카운터 값에서 처리를 다시 시작한다. 그 다음에, 프로세서는 실행중인 프로그램에 의하여 명령되는 순서대로 명령들을 실행할 수 있다.
여기에서 제시된 실시예들과 관련하여 기술된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들이 범용 프로세서; 디지털 신호 처리기, DSP; 주문형 집적회로, ASIC; 필드 프로그램어블 게이트 어레이, FPGA; 또는 다른 프로그램어블 논리 장치; 이산 게이트 또는 트랜지스터 논리; 이산 하드웨어 컴포넌트들; 또는 이러한 기능들을 구현하도록 설계된 것들의 조합을 통해 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로 프로세서 일 수 있지만; 대안적 실시예에서, 이러한 프로세서는 기존 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신일 수 있다. 프로세서는 예를 들어, DSP 및 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로 프로세서, 또는 이러한 구성들의 조합과 같이 계산 장치들의 조합으로서 구현될 수 있다.
상술한 방법의 단계들 및 알고리즘은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들의 조합에 의해 직접 구현될 수 있다. 소프트웨어 모듈들은 랜덤 액세스 메모리(RAM); 플래쉬 메모리; 판독 전용 메모리(ROM); 전기적 프로그램어블 ROM(EPROM); 전기적 삭제가능한 프로그램어블 ROM(EEPROM); 레지스터; 하드디스크; 휴대용 디스크; 콤팩트 디스크 ROM(CD-ROM); 또는 공지된 저장 매체의 임의의 형태로서 존재한다. 저장매체는 프로세서와 결합되어, 프로세서는 저장매체로부터 정보를 판독하여 저장매체에 정보를 기록한다. 대안적으로, 저장 매체는 프로세서의 구성요소일 수 있다. 이러한 프로세서 및 저장매체는 ASIC 에 위치한다. ASIC 는 사용자 단말에 위치할 수 있다. 대안적으로, 프로세서 및 저장 매체는 사용자 단말에서 이산 컴포넌트로서 존재할 수 있다.
제시된 실시예들의 이전 설명은 당업자로 하여금 본 발명을 실시 및 이용할 수 있도록 하기 위하여 제공된다. 이들 실시예에 대한 다양한 수정들은 당업자들에게 자명할 것이고, 여기에서 한정된 일반적 원리들은 본 발명의 사상 또는 범위를 벗어나지 않으면서 다른 실시예들에 적용될 수 있다. 따라서, 본 발명은 여기에 기술된 실시예들에 제한되지 않으며 여기에 기술된 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위를 따를 것이다.

Claims (22)

  1. 파이프라인형 프로세서(pipelined processor)를 포함하는 데이터 처리 시스템으로서, 상기 파이프라인형 프로세서는,
    범용 레지스터 파일; 및
    인터럽트 요청(interrupt request)에 응답하여 의사-명령(pseudo-instruction)을 생성하도록 구성된 제어 로직 회로를 포함하며,
    상기 의사-명령은 파이프라인의 포워드모스트(forwardmost) 명령과 연관된 인터럽트 리턴 어드레스(interrupt return address)가 상기 범용 레지스터 파일에 기록되도록 구성되고,
    상기 의사-명령은 또한 상기 파이프라인형 프로세서의 파이프라인 내에 삽입되고, 상기 파이프라인에 삽입되는 다른 명령들처럼 상기 파이프라인을 따라 이동(travel down)하도록 또한 구성되고,
    상기 파이프라인은 다수의 스테이지들을 포함하고, 상기 다수의 스테이지들은,
    상기 의사-명령을 디코딩하도록 구성된 디코드 스테이지, 및
    상기 의사-명령과 연관된 결과들을 상기 범용 레지스터 파일에 기록하도록 구성된 기록(write back) 스테이지를 포함하며,
    상기 결과들은 상기 포워드모스트 명령과 연관된 상기 인터럽트 리턴 어드레스를 포함하는,
    데이터 처리 시스템.
  2. 제 1항에 있어서, 상기 의사-명령을 수신하고 상기 의사-명령을 상기 디코드 스테이지의 상기 파이프라인에 입력하도록 구성된 다중화기를 더 포함하는,
    데이터 처리 시스템.
  3. 제 2항에 있어서,
    상기 파이프라인은 명령들을 페치(fetch)하도록 구성된 페치 스테이지를 더 포함하며,
    상기 다중화기는,
    상기 페치 스테이지로부터 페치된 명령들 중 하나 이상의 명령들을 수신하고,
    상기 의사-명령을 수신하며,
    상기 디코드 스테이지에 입력하기 위해 상기 의사-명령을 선택하거나 또는 하나 이상의 페치된 명령들 중 하나의 명령을 선택하도록 또한 구성되는,
    데이터 처리 시스템.
  4. 제 1항에 있어서, 다수의 범용 레지스터들을 더 포함하는,
    데이터 처리 시스템.
  5. 제 1항에 있어서,
    상기 파이프라인형 프로세서의 프로세서 제어 모듈 내에 의사-명령 생성기기 존재하고,
    상기 의사-명령 생성기는 상기 제어 로직 회로를 포함하는,
    데이터 처리 시스템.
  6. 제 3항에 있어서,
    상기 파이프라인형 프로세서에 의하여 처리될 명령 데이터를 저장하도록 구성된 메모리 모듈을 더 포함하며,
    상기 메모리 모듈은 상기 페치 스테이지에 연결되는,
    데이터 처리 시스템.
  7. 파이프라인형 프로세서를 포함하는 장치로서,
    상기 파이프라인형 프로세서는 인터럽트 요청에 응답하여 의사-명령을 생성하도록 구성된 의사-명령 생성기를 포함하며,
    상기 의사-명령은 상기 파이프라인형 프로세서의 파이프라인에 있는 포워드모스트(forwardmost) 명령과 연관된 인터럽트 리턴 어드레스가 상기 파이프라인형 프로세서의 범용 레지스터 파일에 기록되도록 구성되고,
    상기 파이프라인은,
    상기 의사-명령을 디코딩하도록 구성된 디코드 스테이지, 및
    상기 의사-명령과 연관된 결과들을 상기 범용 레지스터 파일에 기록하도록 구성된 기록 스테이지를 포함하며,
    상기 결과들은 불완전하게 처리된 명령과 연관된 인터럽트 리턴 어드레스를 포함하는,
    파이프라인형 프로세서를 포함하는 장치.
  8. 제 7항에 있어서, 상기 의사-명령을 수신하고 상기 의사-명령을 상기 디코드 스테이지에 입력하도록 구성된 다중화기를 더 포함하는,
    파이프라인형 프로세서를 포함하는 장치.
  9. 제 8항에 있어서,
    상기 파이프라인은 명령들을 페치하도록 구성된 페치 스테이지를 더 포함하며,
    상기 다중화기는,
    상기 페치 스테이지로부터 하나 이상의 페치된 명령들을 수신하고,
    상기 의사-명령을 수신하며,
    상기 디코드 스테이지에 입력하기 위해 상기 의사-명령을 선택하거나 하나 이상의 페치된 명령들 중 하나의 명령을 선택하도록 또한 구성되는,
    파이프라인형 프로세서를 포함하는 장치.
  10. 제 7항에 있어서, 상기 파이프라인형 프로세서는,
    상기 인터럽트 요청에 응답하여 인터럽트 처리를 수행하고,
    가장 최근의 불완전하게 처리된 명령과 연관된 상기 인터럽트 리턴 어드레스를 상기 범용 레지스터 파일에 기록하도록 또한 구성되는,
    파이프라인형 프로세서를 포함하는 장치.
  11. 제 10항에 있어서, 상기 파이프라인형 프로세서는 상기 범용 레지스터 파일에 기록된 상기 인터럽트 리턴 어드레스에서 처리를 다시 시작하도록 또한 구성되는,
    파이프라인형 프로세서를 포함하는 장치.
  12. 파이프라인형 프로세서의 범용 레지스터 파일에 인터럽트 리턴 어드레스를 저장하는 방법으로서,
    상기 방법은, 인터럽트 요청에 응답하여, 상기 파이프라인형 프로세서의 파이프라인에 있는 포워드모스트(forwardmost) 명령과 연관된 인터럽트 리턴 어드레스가 상기 파이프라인형 프로세서의 상기 범용 레지스터 파일에 기록되도록 구성된 의사-명령을 생성하는 단계를 포함하며,
    상기 파이프라인형 프로세서의 파이프라인은 디코드 스테이지 및 기록 스테이지를 포함하고,
    상기 디코드 스테이지는 상기 의사-명령을 디코딩하도록 구성되고,
    상기 기록 스테이지는 상기 의사-명령과 연관된 결과들을 상기 범용 레지스터 파일에 기록하도록 구성되고,
    상기 결과들은 상기 인터럽트 리턴 어드레스를 포함하는,
    인터럽트 리턴 어드레스 저장 방법.
  13. 제 12항에 있어서,
    상기 인터럽트 요청에 응답하여 인터럽트 처리를 수행하는 단계, 및
    상기 인터럽트 리턴 어드레스를 상기 범용 레지스터 파일에 기록하는 단계를 더 포함하는,
    인터럽트 리턴 어드레스 저장 방법.
  14. 제 13항에 있어서, 상기 범용 레지스터 파일에 기록된 상기 인터럽트 리턴 어드레스에서 처리를 다시 시작하는 단계를 더 포함하는,
    인터럽트 리턴 어드레스 저장 방법.
  15. 제 12항에 있어서, 상기 의사-명령은 상기 파이프라인형 프로세서 내의 제어 로직 회로에 의하여 생성되는,
    인터럽트 리턴 어드레스 저장 방법.
  16. 제 12항에 있어서, 상기 파이프라인형 프로세서는 상기 의사-명령을 수신하고 상기 의사-명령을 상기 디코드 스테이지에 입력하도록 구성된 다중화기를 더 포함하는,
    인터럽트 리턴 어드레스 저장 방법.
  17. 제 16항에 있어서,
    상기 파이프라인은 명령들을 페치하도록 구성된 페치 스테이지를 더 포함하며,
    상기 다중화기는,
    상기 페치 스테이지로부터 페치된 명령들을 수신하고,
    상기 의사-명령을 수신하며,
    상기 디코드 스테이지에 입력하기 위해 상기 의사-명령을 선택하거나 하나 이상의 페치된 명령들 중 하나의 명령을 선택하도록 또한 구성되는,
    인터럽트 리턴 어드레스 방법.
  18. 장치로서,
    상기 장치는 인터럽트 처리를 수행하도록 구성된 프로세서, 제어 로직 회로, 및 다중화기를 포함하고,
    상기 프로세서는 파이프라인을 포함하며 ― 상기 파이프 라인은 명령들을 수신하도록 구성된 제 1 스테이지, 및 결과들을 범용 레지스터 파일에 기록하도록 구성된 제 2 스테이지를 포함하며, 상기 프로세서는 프로그램으로부터의 명령 데이터를 처리하도록 또한 구성됨 ―,
    상기 제어 로직 회로는 인터럽트 요청에 응답하여 의사-명령을 생성하도록 구성되고 ― 상기 의사-명령은 상기 파이프라인의 포워드모스트(forwardmost) 명령과 연관된 인터럽트 리턴 어드레스가 범용 레지스터 파일에 기록되도록 구성되고, 상기 파이프라인은 디코드 스테이지 및 기록 스테이지를 더 포함하고, 상기 디코드 스테이지는 상기 의사-명령을 디코딩하도록 구성되고, 상기 기록 스테이지는 상기 의사-명령과 연관된 결과들을 상기 범용 레지스터 파일에 기록하도록 구성되며, 상기 결과들은 상기 인터럽트 리턴 어드레스를 포함함 ―,
    상기 다중화기는 상기 제어 로직 회로로부터의 상기 의사-명령 및 상기 프로그램으로부터의 상기 명령 데이터를 수신하고, 상기 의사-명령 또는 상기 명령 데이터를 상기 제 1 스테이지에 입력하도록 구성되고,
    상기 인터럽트 처리 이후에, 상기 프로세서는 상기 인터럽트 리턴 어드레스에서 상기 명령 데이터의 처리를 다시 시작하도록 또한 구성되는,
    장치.
  19. 제 18항에 있어서, 상기 범용 레지스터 파일은 상기 파이프라인의 제어 하에 있는,
    장치.
  20. 제 1항에 있어서, 상기 인터럽트 리턴 어드레스와 연관된 상기 포워드모스트 명령은 상기 파이프라인에서 불완전하게 처리되는,
    데이터 처리 시스템.
  21. 제 12항에 있어서, 상기 인터럽트 리턴 어드레스와 연관된 상기 포워드모스트 명령은 상기 파이프라인에서 불완전하게 처리되는,
    인터럽트 리턴 어드레스 저장 방법
  22. 제 18항에 있어서, 상기 인터럽트 리턴 어드레스와 연관된 상기 포워드모스트 명령은 상기 파이프라인에서 불완전하게 처리되는,
    장치.
KR1020097003916A 2006-07-25 2007-07-24 효율적 인터럽트 리턴 어드레스 저장 메커니즘 KR101077425B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/459,695 US7681022B2 (en) 2006-07-25 2006-07-25 Efficient interrupt return address save mechanism
US11/459,695 2006-07-25

Publications (2)

Publication Number Publication Date
KR20090042283A KR20090042283A (ko) 2009-04-29
KR101077425B1 true KR101077425B1 (ko) 2011-10-26

Family

ID=38667151

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097003916A KR101077425B1 (ko) 2006-07-25 2007-07-24 효율적 인터럽트 리턴 어드레스 저장 메커니즘

Country Status (10)

Country Link
US (1) US7681022B2 (ko)
EP (1) EP2044508A1 (ko)
JP (2) JP5528804B2 (ko)
KR (1) KR101077425B1 (ko)
CN (1) CN101495960B (ko)
BR (1) BRPI0714128A2 (ko)
CA (1) CA2657168C (ko)
MX (1) MX2009000728A (ko)
RU (1) RU2450329C2 (ko)
WO (1) WO2008014287A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681022B2 (en) * 2006-07-25 2010-03-16 Qualcomm Incorporated Efficient interrupt return address save mechanism
CN102364432B (zh) * 2011-10-25 2013-12-18 中国科学院苏州纳米技术与纳米仿生研究所 使用双程序计数器计算待处理指令地址的系统
US10360593B2 (en) * 2012-04-24 2019-07-23 Qualcomm Incorporated Retail proximity marketing
KR20170065845A (ko) 2015-12-04 2017-06-14 삼성전자주식회사 프로세서 및 제어 방법
US11003457B2 (en) * 2019-01-23 2021-05-11 Mediatek Inc. Power-saving mechanism for memory sub-system in pipelined processor
CN112883370B (zh) * 2019-11-29 2022-12-20 北京三快在线科技有限公司 应用程序状态检测方法和装置、存储介质和电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050010577A1 (en) 2003-07-11 2005-01-13 Microsoft Corporation Method and apparatus for generating Web content

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS564844A (en) * 1979-06-26 1981-01-19 Nec Corp Information processor
JP2509244B2 (ja) * 1987-09-14 1996-06-19 富士通株式会社 分岐命令処理装置
JPH076037A (ja) * 1993-06-16 1995-01-10 Matsushita Electric Ind Co Ltd 命令解読装置
US5440703A (en) * 1993-09-20 1995-08-08 International Business Machines Corporation System and method for saving state information in a multi-execution unit processor when interruptable instructions are identified
US5701493A (en) * 1995-08-03 1997-12-23 Advanced Risc Machines Limited Exception handling method and apparatus in data processing systems
JPH09198257A (ja) * 1996-01-19 1997-07-31 Sanyo Electric Co Ltd プログラム実行方法およびこの方法を用いたプログラム実行装置
US6381692B1 (en) * 1997-07-16 2002-04-30 California Institute Of Technology Pipelined asynchronous processing
US6076159A (en) * 1997-09-12 2000-06-13 Siemens Aktiengesellschaft Execution of a loop instructing in a loop pipeline after detection of a first occurrence of the loop instruction in an integer pipeline
TW436693B (en) * 1998-08-18 2001-05-28 Ind Tech Res Inst Interrupt control device and method for pipeline processor
JP2000207202A (ja) * 1998-10-29 2000-07-28 Pacific Design Kk 制御装置およびデ―タ処理装置
US6301650B1 (en) * 1998-10-29 2001-10-09 Pacific Design, Inc. Control unit and data processing system
US6789184B1 (en) * 2000-09-29 2004-09-07 Intel Corporation Instruction address generation and tracking in a pipelined processor
GB2369464B (en) * 2000-11-27 2005-01-05 Advanced Risc Mach Ltd A data processing apparatus and method for saving return state
DE60201511T2 (de) * 2001-02-06 2005-10-20 Adelante Technologies B.V. Verfahren, system und computerprogrammprodukt zum manipulieren eines anweisungsflusses in einer pipeline eines prozessors
JP3856737B2 (ja) * 2002-07-19 2006-12-13 株式会社ルネサステクノロジ データ処理装置
US7765388B2 (en) * 2003-09-17 2010-07-27 Broadcom Corporation Interrupt verification support mechanism
CN100545804C (zh) * 2003-08-18 2009-09-30 上海海尔集成电路有限公司 一种基于cisc结构的微控制器及其指令集的实现方法
US20050273776A1 (en) * 2004-06-08 2005-12-08 Intel Corporation Assembler supporting pseudo registers to resolve return address ambiguity
US7681022B2 (en) * 2006-07-25 2010-03-16 Qualcomm Incorporated Efficient interrupt return address save mechanism

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050010577A1 (en) 2003-07-11 2005-01-13 Microsoft Corporation Method and apparatus for generating Web content

Also Published As

Publication number Publication date
CA2657168C (en) 2010-12-07
CN101495960A (zh) 2009-07-29
JP2009545079A (ja) 2009-12-17
CN101495960B (zh) 2012-08-29
KR20090042283A (ko) 2009-04-29
JP5528804B2 (ja) 2014-06-25
RU2009106463A (ru) 2010-08-27
EP2044508A1 (en) 2009-04-08
BRPI0714128A2 (pt) 2012-12-25
CA2657168A1 (en) 2008-01-31
US20080028194A1 (en) 2008-01-31
WO2008014287A1 (en) 2008-01-31
RU2450329C2 (ru) 2012-05-10
JP2014099192A (ja) 2014-05-29
MX2009000728A (es) 2009-02-04
JP5837033B2 (ja) 2015-12-24
US7681022B2 (en) 2010-03-16

Similar Documents

Publication Publication Date Title
KR101225075B1 (ko) 실행되는 명령의 결과를 선택적으로 커밋하는 시스템 및 방법
CN101373427B (zh) 程序执行控制装置
JP2003523573A (ja) プロセッサにおける書き込みトラヒックを減少するシステム及び方法
JP5837033B2 (ja) 効率的な割込み復帰アドレス保存メカニズム
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
US7620804B2 (en) Central processing unit architecture with multiple pipelines which decodes but does not execute both branch paths
US20070220235A1 (en) Instruction subgraph identification for a configurable accelerator
US7539847B2 (en) Stalling processor pipeline for synchronization with coprocessor reconfigured to accommodate higher frequency operation resulting in additional number of pipeline stages
JP4800582B2 (ja) 演算処理装置
WO2007057831A1 (en) Data processing method and apparatus
JP2003263313A (ja) デジタルプロセッサおよび命令の選択方法
US9395985B2 (en) Efficient central processing unit (CPU) return address and instruction cache
KR102379886B1 (ko) 벡터 명령 처리
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
CN113853584A (zh) 可变延时指令
JP2004516572A (ja) スペキュレーティブ・レジスタの調整
KR20140111416A (ko) 정적 스케쥴 프로세서의 논블로킹 실행 장치 및 방법
JP3743155B2 (ja) パイプライン制御型計算機
CN116841614A (zh) 乱序访存机制下的顺序向量调度方法
WO2007004323A1 (ja) 情報処理装置
JP2000099328A (ja) プロセッサ及びその実行制御方法
US7124285B2 (en) Peak power reduction when updating future file
JP2002351658A (ja) 演算処理装置
JP2004362368A (ja) プロセッサおよび例外処理方法
JPH1165843A (ja) 情報処理装置

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee