KR100571332B1 - 프로그래머블 프로세서의 리셋팅 - Google Patents

프로그래머블 프로세서의 리셋팅 Download PDF

Info

Publication number
KR100571332B1
KR100571332B1 KR1020037003893A KR20037003893A KR100571332B1 KR 100571332 B1 KR100571332 B1 KR 100571332B1 KR 1020037003893 A KR1020037003893 A KR 1020037003893A KR 20037003893 A KR20037003893 A KR 20037003893A KR 100571332 B1 KR100571332 B1 KR 100571332B1
Authority
KR
South Korea
Prior art keywords
reset
event
request
pipeline
requests
Prior art date
Application number
KR1020037003893A
Other languages
English (en)
Other versions
KR20030034188A (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 KR20030034188A publication Critical patent/KR20030034188A/ko
Application granted granted Critical
Publication of KR100571332B1 publication Critical patent/KR100571332B1/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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

Landscapes

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

Abstract

하나의 실시예에서, 파이프라인 프로세서는 상기 파이프라인의 적어도 하나의 스테이지에 출력 리셋 신호를 제공하는 리셋 유닛을 포함한다. 리셋 유닛은 적어도 하드 리셋 요구, 소프트 리셋 요구와 에뮬레이션 리셋 요구를 검출하기에 적합하다. 상기 파이프라인은 N 스테이지를 포함하고 상기 리셋 유닛은 상기 리셋 요구가 클리어된 후 클럭의 적어도 N개의 사이클 동안 상기 리셋 신호를 인가한다. 상기 파이프라인의 각각의 스테이지는 대응되는 유효 비트를 저장하기 위한 저장회로를 가진다. 저장회로들 중 적어도 하나는 상기 리셋 신호에 응답하여 클리어된다. 또한, 상기 리셋 유닛은 상기 리셋 요구를 지정된 우선 순위를 갖는 리셋 이벤트로 취급한다.

Description

프로그래머블 프로세서의 리셋팅{RESETTING A PROGRAMMABLE PROCESSOR}
본 발명은 프로그래머블 프로세서의 리셋팅에 관한 것이다.
컴퓨터 또는 디지털 신호 처리 시스템에 사용되는 마이크로프로세서에서와 같은 프로그래머블 프로세서에서는 통상적으로 상기 프로세서를 알려진 상태(known state)로 초기화하기 위한 하나 또는 그 이상의 메커니즘을 지원한다. 예컨대, 종래의 프로세서는 리셋 버튼에 대응하는 "하드 리셋(hard reset)"을 지원하기 위한 인터페이스 핀을 포함하고 있다. 덧붙여, 종래의 프로세서는 해당 프로세서 상에서 실행되는 소프트웨어에 의해서 초기화되는 리셋 프로세스에 의한 "소프트 리셋(soft reset)"을 지원한다.
도 1은 실행 파이프라인(4)과 제어 유닛(6)을 포함하는 프로그래머블 프로세서(2)를 나타내는 블록 다이아그램이다. 제어 유닛(6)은 매 클럭 사이클에 대해서 파이프라인(4)을 통과하는 명령어와 데이터의 흐름을 제어한다. 예컨대, 명령어(instruction)의 처리 도중에, 제어 유닛(6)은 파이프라인의 다양한 구성 요소를 지시하여, 상기 명령어를 디코딩하고, 예컨대, 결과를 메모리에 다시 기록하는 것 등 대응하는 연산(operation)을 정확하게 수행하도록 한다.
명령어는 파이프라인(4)의 제1 스테이지(stage)에 로딩되고, 후속되는 스테이지들을 통해서 처리가 된다. 각각의 스테이지는 다른 스테이지들과 병렬적으로(concurrently) 처리한다. 데이터는 파이프라인(4)의 상기 스테이지들 사이를 시스템 클럭에 따라서 이동한다. 명령어의 결과는 파이프라인(4)의 종료단에서 신속하게 연속하여 나타난다.
리셋 유닛(8)은 프로세서(2)를 3가지 형태의 리셋 요구(request)- (1) 전형적으로 사용자가 전원을 끄고 키거나(cycling)하거나 리셋버튼을 누르는 것에 의한 하드 리셋(hard_reset), (2) 전형적으로 프로세서(2)에서 실행되는 소프트웨어 응용프로그램(application)에 의해 초기화되는 소프트 리셋(soft_reset), 그리고 (3) 전형적으로 내장 하드웨어 에뮬레이터(ICE)에서 비롯되는 에뮬레이터 리셋-에 응답하여 리셋한다. 리셋 유닛(8)은 리셋 조건을 검출하고 이러한 리셋 요구를 이벤트 핸들러(event handler)에게 알려준다. 이벤트 핸들러(14)는 프로세서(2)안에서 발생하는 모든 시스템 이벤트를 수신하고 취급(handling)하는 로직을 포함하고 있으며, 아래에 상세하게 설명하듯이, 리셋 요구를 높은-우선 순위(high-priority) 이벤트로 취급한다.
도 2는 본 발명에 따른 예시적인 파이프라인(4)을 나타낸다. 파이프라인(4)은, 예컨대, 5개의 스테이지를 가진다: 명령어 인출(fetch)(IF), 명령어 디코드(DEC), 어드레스 계산(AC), 실행(EX) 및 라이트백(write back)(WB). 명령어는 제1 스테이지(IF)에서 인출 유닛(21)에 의해서 메모리 또는 명령어 캐쉬에서 인출되고, 제2 스테이지(DEC)에서 디코딩된다. 다음 클럭 사이클에서, 상기 결과는 제3 스테이지(AC)로 전달되고, 여기서 데이터 어드레스 생성기(23)는 이 동작을 수행하기 위해 필요한 임의의 메모리 어드레스를 계산한다.
실행 스테이지(EX)에서, 실행 유닛(25)은 예컨대, 두 숫자의 더하기 또는 곱하기와 같은 지정된 동작을 수행한다. 실행 유닛(25)은 예컨대, 하나 또는 그 이상의 산술 논리 유닛(ALU's), 부동소수점 유닛(FPU)과 배럴 쉬프터(barrel shifter)를 포함하는 연산을 수행하는 특정한 하드웨어를 포함할 수 있다. 데이터 어드레스 생성기(23)에서 생성된 어드레스나, 메모리에서 검색(retrieve)된 데이터 또는 데이터 레지스터(24)에서 검색된 데이터와 같은 다양한 데이터가 실행 유닛(25)에 적용될 수 있다. 최종 스테이지(WB)에서, 결과는 데이터 메모리나 데이터 레지스터(24)에 다시 기록된다.
파이프라인(4)의 스테이지들은, 대응 스테이지에서 보유(hold)한 명령어가 유효한 명령어이며 처리되어야 하는지의 여부를 지시하는 "유효 비트(valid bits)"를 저장하기 위해서, 예컨대, 플립플롭과 같은 저장회로(27)를 포함한다. 초기에, 인출 유닛(21)은 명령어가 성공적으로 인출되고 디코딩되었을 때, 명령어에 대응되는 유효 비트를 셋팅한다. 유효 비트는 명령어가 처리됨에 따라, 파이프라인(4)의 저장회로(27)를 통해서 전파(propagate)된다.
효율적이고 신속하게 프로세서(2)를 리셋하기 위해서, 그리고 리셋 과정에서 자주 발생하는 과도한 전력소모를 줄이기 위해서, 리셋 유닛(8)은 리셋 이벤트가 리셋 핸들러에서 수락(accept)되었을 때 유효 비트를 클리어(clear)한다. 더 상세하게는, 리셋_유닛(8)은 리셋(SE_RESET)을 파이프라인(4)에 발급(issue)하고, IF 스테이지의 저장 회로(27)를 클리어하여, 이럼으로써 IF 스테이지 내에서 보유한 명령어를 무효화한다. 후속되는 클럭 사이클 동안에, 남아있는 스테이지들의 저장회로(27)는 SE_RESET이 해제될(deasserted) 때까지 클리어되고, 효율적으로 파이프라인(4)의 내용(contents)을 무효화한다.
도 3은 예컨대, 하드 리셋, 소프트 리셋 또는 에뮬레이터에 의한 리셋을 포함하는 리셋 조건에 응답하는 리셋 프로세스를 나타내는 타이밍 다이아그램이다. 명백히, 리셋 유닛(8)은 RESET_REQ 신호가 활성상태(active)를 유지하는 시간에 응답하고, 특히 리셋 신호가 제거된 후에도 파이프라인(4)이 완전히 초기화되는 것을 보장하도록 SE_RESET을 활성상태로 유지하기에 적합하다. 좀더 상세하게는, 리셋 유닛(8)은 리셋 요구가 해제된 후 SE_RESET을 적어도 N 클럭 사이클 동안 인가하고, 여기서 파이프라인(4)은 N 스테이지 깊이(deep)이다.
아래에서 자세히 서술하듯이, 리셋 유닛(8)과 이벤트 핸들러(14)는, 리셋 요구가 다른 어떤 보류(pending)중인 이벤트의 우선 순위에 종속하면서 프로세서(2)를 리셋할 수 있는 높은-우선 순위 이벤트로 취급된다는 점에서, 동기(synchronous) 리셋을 지원한다.
도 1은 본 발명에 따른 파이프라인 프로그래머블 프로세서의 한 예를 나타내는 블록 다이아그램.
도 2는 본 발명에 따른 예시적인 실행 파이프라인을 나타내는 구조도.
도 3은 리셋 프로세스를 나타내는 타이밍 다이아그램.
도 4는 본 발명에 따른 프로세서의 리셋을 위한 예시적인 회로를 나타내는 구조도.
도 5는 파이프라인 프로세서의 리셋을 위한 예시적인 프로세스를 나타내는 플로우차트.
도 4는 리셋 유닛(8)과 이벤트 핸들러(14)의 예시적인 실시예를 나타내는 구조도이다. 아래에서 설명되듯이, 리셋 유닛(8)은 이벤트 핸들러(14)와 상호 작용하여 임의의 리셋 입력시 단일 사이클 펄스라도, 파이프라인의 완전한 리셋과 초기화에 충분하도록 보장한다. 리셋 유닛(8)은 HARD_RESET, SOFT_RESET 그리고 EM_RESET의 3가지 형태의 리셋 조건을 수신하기 위한 3개의 입력을 가진다. 또한, 리셋 유닛(8)은 각각 에뮬레이션 리셋 요구가 클리어되었을 때 인가(assert)되는 EM_RESET_CLR을 수신한다.
이벤트 핸들러(14)는 ILAT 레지스터(41)와 IPEND 레지스터(42)의 두 개의 레지스터를 포함한다. ILAT 레지스터(41)는 서비스되지 않았던 요구된 이벤트를 저장하기 위한 다소의 비트들을 포함한다. "이벤트"는 프로세서(2)가 반드시 응답해야 하는, 예컨대, 에뮬레이션 모드 진입, 인터럽트, 및 예외(exception)를 포함하는 임의의 조작(action) 또는 발생(occurrence)이다. ILAT 레지스터(41)는 이벤트가 이벤트 핸들러(14)에서 획득될때(taken) 클리어된다. IPEND 레지스터(42)는 각각의 이벤트에 대해서 대응되는 비트를 포함하고 있는 상태(status) 레지스터이다. 일단 프로세서(2)가 이벤트를 수락하면 그리고, 예컨대, 대응되는 서비스 루틴을 호출하 면, 이벤트 핸들러(14)는 IPEND 레지스터(42)안의 적절한 비트를 셋팅하고 ILAT 레지스터(42)안의 대응되는 비트를 클리어한다. 이벤트 핸들러(14)는 이벤트 서비스 루틴에서 복귀할 때, IPEND 레지스터(42)의 상태 비트를 클리어한다.
본 발명의 일실시예에서, 이벤트 핸들러(14)는 리셋 이벤트를, 두번째로 높은 우선 순위 이벤트로 취급하며, 에뮬레이션 모드만이 그보다 더 높은 우선 순위를 갖는다. 리셋 이벤트가 수신되고 프로세서(2)가 에뮬레이션 모드에 있을 경우, 리셋 이벤트는 프로세서(2)가 에뮬레이션 모드에서 나갈 때까지 획득(taken)되지 않는다.
HARD_RESET이 적어도 한 클럭 사이클 동안 인가될 때, 신호(43)는 IPEND 레지스터(42)의 리셋 이벤트 비트를 클리어하고, 이에 의하여 다른 보류중인 리셋 이벤트를 클리어한다. 다음에, 2번째 클럭 사이클 이후에, 신호(49)는 보류중인 리셋이벤트를 기록(record)하기 위해서, ILAT(41)내부의 리셋 이벤트 비트를 셋팅한다. 이벤트 핸들러(14)는 프로세서(2)가 에뮬레이션 모드에 있지 않을 때 리셋 이벤트를 수락하고, 리셋 유닛(8)이 리셋 펄스를 생성할 것을 나타내기 위해서 RESET_MASKED_REQ(46)을 인가한다. 좀더 상세하게는, (1) ILAT 레지스터(41)가 리셋 이벤트가 수락되었다는 것을 나타내고, (2) 프로세서(2)가 에뮬레이션 모드(EM_MODE)에 있지 않고, 그리고 (3) 현재 에뮬레이션 요구(EM_REQ)가 없을 때, AND 게이트(45)가 RESET_MASKED_REQ(46)를 하이(high)로 되게 한다(drive). 리셋 유닛(8)은 RESET_MASKED_REQ(46)을 N 클럭 사이클 동안 저장 회로(47)열에 래치(latch)하여, RESET_MASKED_REQ가 해제된 후의 SE_RESET이 N 클럭 사이클 동안 활성상태가 되도록 한다.
리셋 조건이 더 이상 검출되지 않을 때, 리셋 유닛(8)은 이벤트 핸들러(14)에게 SE_RESET을 클리어하도록 명령한다. 하드 리셋의 경우, AND 게이트(48)는 HARD_RESET의 하강 에지가 검출된 때, HARD_RST_FEDGE(44)를 하이로 되게 한다. 대안으로서, EM_RESET_CLR은 에뮬레이션 리셋 요구가 클리어된 때 각각 인가된다. 이들 두 신호 중 하나의 인가는 AND 게이트(44)가 0을 출력하도록 하고, 이에 따라 ILAT 레지스터(51)내의 리셋 이벤트 비트를 클리어한다. 이것은 차례로 RESET_MASKED_REQ(46)을 클리어하고, N 클럭 사이클 이후에 SE_RESET을 클리어한다. 이러한 방식으로, 리셋 유닛(8)은, 리셋 조건이 제거된 후 N 클럭 사이클 동안, SE_RESET을 활성상태로 유지한다.
IPEND 레지스터(42)는 SE_RESET이 해제되고 RST_EXIT신호가 인가된 때, 즉 통상적으로 인터럽트 명령어로부터의 복귀(RTI)를 실행함으로써 이벤트 취급 서비스 루틴이 종료된 때 클리어된다.
도 5는 프로세서(2)를 리셋하기 위한 예시적인 프로세스(40)를 나타내는 플로우차트이다. 우선, 리셋 논리(6)는 사용자가 물리적 리셋 버튼을 눌렀을 때 생성된 하드 리셋 요구와 같은 리셋 요구를 수신한다. 다음에, 하드 리셋 요구인 경우, 리셋 유닛(8)은 하드 리셋 요구를 수신한 다음의 한 클럭 사이클 경과시 리셋 이벤트 비트를 클리어하기 위해서 IPEND 레지스터(42)를 리셋한다. 또한, 리셋 유닛(8)은 이벤트 핸들러(14)의 ILAT 레지스터(41)내부의 적절한 비트를 셋팅하여 이벤트 요구를 기록한다(51).
리셋 요구를 수신하고 ILAT 레지스터(41)를 갱신(update)한 후, 이벤트 핸들 러(14)는 프로세서(2)가 에뮬레이션 모드인지 또는 에뮬레이션 요구가 보류 중인지 확인한다(52). 더 이상 에뮬레이션 모드에 있지 않고, 어떠한 에뮬레이션 요구도 보류 중이지 않은 경우, 이벤트 핸들러(14)는 IPEND 레지스터(42)가 적절한 비트를 셋팅하고 ILAT 레지스터(41)의 적절한 비트를 클리어함으로써 리셋 이벤트를 수락한 것으로 표시한다(53).
다음으로, 이벤트 핸들러(14)는 SE_RESET을 인가하고(54) 그리고 언제 리셋 요구가 제거가 되는지 검출하기 위해서 리셋 요구를 감시(monitor)한다. 예컨대, 소프트웨어 리셋 요구는 통상적으로 단일 클럭 사이클 동안 지속되지만 하드 리셋 요구는 사용자가 리셋 버튼을 얼마나 오래 누르느냐에 따라서 여러 클럭 사이클 동안 지속될 수 있다.
리셋 요구가 제거된 후(55), 리셋 유닛(8)은 클리어된 유효 비트가 파이프라인(4)을 통해서 전파되도록 SE_RESET을 추가적인 N 사이클 동안 보유하며, 이럼으로써 파이프라인(4)의 스테이지 들을 유효하지 않게 표시한다(56). 전술한 바와 같이, 클리어된 유효 비트는 명령어 인출 유닛(21)이 명령어를 인출하는 것을 막고, 프로세서(2)가 리셋 도중에 더 적은 전력을 소모하도록 한다. N 클럭 사이클 후에, 리셋 유닛(8)은 SE_RESET을 해제하고(57), 파이프라인(4)은 인출 유닛(21)으로 리셋 어드레스를 발급함으로써 초기화된 상태에서부터 진행한다(58). 리셋 어드레스는 통상적으로 리셋 서비스 루틴을 위한 시작 어드레스이고, 벡터(vector) 테이블이나 외부 입력 핀에서 판독될 수 있다. 리셋 서비스 루틴이 실행을 종료할 때, 이벤트 핸들러는 리셋 프로세스의 종료를 나타내기 위해서 IPEND 레지스터(42)의 적 절한 비트를 클리어한다(59).
본 발명의 다양한 실시예에 대해서 기술되었다. 예컨대, 파이프라인 프로세서는 출력 리셋 신호를 실행 파이프라인의 적어도 하나의 스테이지에게 제공하는 리셋 유닛을 포함하도록 기술되었다. 리셋 유닛은 하드 리셋, 소프트 리셋과 에뮬레이션 리셋과 같은 리셋 요구를 지정된 우선 순위를 가지는 리셋 이벤트로서 취급한다.
프로세서는 범용 컴퓨팅 시스템이나, 디지털 프로세싱 시스템, 랩탑 컴퓨터, 피디에이(PDA)나 무선 전화를 포함하는 다양한 시스템에서 구현될 수 있다. 그러한 시스템에 있어서, 프로세서는, 플래시(FLASH)메모리나 정적기억장치(SRAM)와 같은, 운영 시스템(operating system)이나 다른 소프트웨어 응용프로그램을 저장하는 메모리 디바이스와 결합될 수 있다. 이러한 실시예 및 기타의 실시예들은 후술하는 청구범위의 권리범위에 속한다.

Claims (45)

  1. 파이프라인 프로세서를 리셋하는 요구를 수신하는 단계와,
    상기 리셋 요구에 응답하여 상기 파이프라인 프로세서의 스테이지 내의 유효 비트를 클리어하는 단계와,
    클리어된 유효 비트를 상기 파이프라인 프로세서의 후속되는 스테이지에 전파하는 단계를 포함하고,
    상기 리셋 요구를 수신하는 단계는 다중 유형의 리셋 요구를 취급하기 위한 지원을 제공하는 단계를 포함하며, 상기 다중 요형의 리셋 요구는 하드 리셋 요구, 소프트 리셋 요구, 및 에뮬레이션 리셋 요구를 포함하는 것인 방법.
  2. 제1항에 있어서, 상기 리셋 요구를 높은-우선 순위 리셋 이벤트로 취급하는 단계를 더 포함하고, 상기 리셋 요구를 높은-우선 순위 리셋 이벤트로 취급하는 단계는 상기 리셋 요구를 두번째로 높은 우선 순위 이벤트로 취급하는 단계를 포함하는 것인 방법.
  3. 제2항에 있어서, 상기 리셋 이벤트는 적어도 하나의 다른 이벤트보다 낮은 우선 순위를 가지는 것인 방법.
  4. 제2항에 있어서, 다른 보류중인 이벤트의 우선 순위 레벨에 기초하여 상기 리셋 이벤트를 수락하는 단계를 더 포함하는 방법.
  5. 제4항에 있어서, 상기 리셋 이벤트가 수락되었을 때 동기적으로 시스템 리셋 신호를 생성하는 단계를 더 포함하는 방법.
  6. 제5항에 있어서, 상기 시스템 리셋 신호를 생성하는 단계는 하드 리셋 요구의 지속 시간이 적어도 한 클럭 사이클인 경우 동기적으로 상기 시스템 리셋 신호를 생성하는 단계를 포함하는 것인 방법.
  7. 제2항에 있어서, 상기 리셋 요구를 리셋 이벤트로 취급하는 단계는 이벤트 수신 레지스터(ILAT)내의 한 비트를 셋팅하는 단계를 포함하는 것인 방법.
  8. 제7항에 있어서, 상기 리셋 요구를 리셋 이벤트로 취급하는 단계는 ILAT 레지스터내의 상기 비트를 셋팅하기 전에, 이벤트 상태 레지스터(IPEND)내의 한 비트를 클리어하는 단계를 더 포함하는 것인 방법.
  9. 삭제
  10. 제1항에 있어서,
    상기 파이프라인 프로세서는 N 스테이지를 가지는 것이고,
    클리어된 유효 비트를 후속되는 스테이지들에게 클럭 신호의 적어도 N개의 사이클 동안 전파하는 단계를 더 포함하는 방법.
  11. 제3항에 있어서, 더 높은-우선 순위의 이벤트를 서비스한 후 상기 리셋 이벤트를 수락하는 단계를 더 포함하는 방법.
  12. 파이프라인 프로세서를 리셋하는 요구를 수신하는 단계와,
    상기 리셋 요구를 지정된 우선 순위를 가지는 리셋 이벤트로 취급하는 단계를 포함하고,
    상기 리셋 요구를 수신하는 단계는 다중 유형의 리셋 요구를 취급하기 위한 지원을 제공하는 단계를 포함하며, 상기 다중 요형의 리셋 요구는 하드 리셋 요구, 소프트 리셋 요구, 및 에뮬레이션 리셋 요구를 포함하는 것인 방법.
  13. 제12항에 있어서, 상기 리셋 이벤트는 적어도 하나의 다른 이벤트보다 낮은 우선 순위를 가지는 것인 방법.
  14. 삭제
  15. 제12항에 있어서, 다른 보류중인 이벤트의 우선 순위 레벨에 기초하여 상기 리셋 이벤트를 수락하는 단계를 더 포함하는 방법.
  16. 제12항에 있어서, 상기 리셋 이벤트가 수락되었을 때 동기적으로 시스템 리셋 신호를 생성하는 단계를 더 포함하는 방법.
  17. 제12항에 있어서, 상기 리셋 요구를 취급하는 단계는 하드 리셋 요구의 지속 시간이 적어도 한 클럭 사이클인 경우 동기적으로 시스템 리셋 신호를 생성하는 단계를 포함하는 것인 방법.
  18. 제12항에 있어서, 상기 리셋 요구를 이벤트로 취급하는 단계는 이벤트 수신 레지스터(ILAT)내의 한 비트를 셋팅하는 단계를 포함하는 것인 방법.
  19. 제12항에 있어서, 더 높은-우선 순위의 이벤트를 제공한 후 상기 리셋 이벤트를 수락하는 단계를 더 포함하는 방법.
  20. 제12항에 있어서,
    상기 리셋 이벤트가 수락되었을때 상기 파이프라인 프로세서의 스테이지 내의 유효 비트를 클리어하는 단계와,
    상기 클리어된 유효 비트를 상기 파이프라인 프로세서의 후속되는 스테이지들에 전파하는 단계를 더 포함하는 방법.
  21. 제12항에 있어서,
    상기 파이프라인 프로세서는 N 스테이지를 가지는 것이고,
    클리어된 유효 비트를 후속되는 스테이지들에게 클럭 신호의 적어도 N개의 사이클 동안 전파하는 단계를 더 포함하는 방법.
  22. 각각이 유효 비트를 저장하기 위한 저장회로를 포함하는 복수의 스테이지를 가지는 실행 파이프라인과;
    적어도 하나의 상기 저장회로의 상기 유효 비트를 클리어하기 위해 상기 실행 파이프라인과 연결된 리셋 신호 출력단을 구비하고, 하드 리셋 요구, 소프트 리셋 요구, 및 에뮬레이션 리셋 요구를 포함하는 다중 유형의 리셋 요구를 지원하도록 구성되며, 상기 유형의 리셋 요구들 중 적어도 하나의 요구에 응답하여 상기 리셋 신호를 인가(assert)하도록 구성되는 것인 리셋 유닛과,
    상기 실행 파이프라인의 상기 저장회로를 통해서 상기 클리어된 유효 비트를 전파하도록 구성된 제어 유닛을 포함하는 장치.
  23. 삭제
  24. 제22항에 있어서,
    상기 실행 파이프라인은 N 스테이지를 포함하는 것이고,
    상기 리셋 유닛은 클럭의 적어도 N개의 사이클 동안 상기 리셋 신호를 인가하도록 구성되는 것인 장치.
  25. 제22항에 있어서,
    상기 실행 파이프라인은 N 스테이지를 가지는 것이고,
    상기 리셋 유닛은,
    상기 리셋 신호를 전파하도록 구성되는 N-1개의 직렬로 연결된 저장회로와,
    상기 리셋 신호를 상기 직렬로 연결된 저장유닛들에서 수신하는 OR 게이트와,
    상기 OR 게이트의 출력을 수신하고 상기 리셋 신호를 상기 실행 파이프라인에 제공하도록 구성되는 저장회로
    를 포함하는 것인 장치.
  26. 하드 리셋 요구, 에뮬레이션 리셋 요구, 및 소프트 리셋 요구를 포함하는 다중 유형의 리셋 요구 - 다중 유형의 리셋 요구 각각은 할당된 우선 순위를 가짐 - 를 처리하며, 리셋 요구를 상기 할당된 우선 순위를 가지는 이벤트로서 취급하도록 구성되는 이벤트 상태 레지스터(IPEND)를 구비하는 이벤트 핸들러와;
    상기 이벤트 핸들러가 상기 리셋 이벤트를 수신(accept)할 때 시스템 리셋 신호를 출력하도록 구성되는 리셋 유닛
    을 포함하는 프로그래머블 프로세서.
  27. 제26항에 있어서,
    상기 이벤트 핸들러는,
    상기 리셋 이벤트가 보류중인지 나타내는 비트를 가지는 이벤트 수신 레지스터(ILAT)와,
    상기 리셋 이벤트가 수락되었는지 나타내는 비트를 가지는 이벤트 상태 레지스터(IPEND)
    를 포함하는 것인 프로그래머블 프로세서.
  28. 제27항에 있어서,
    복수의 스테이지를 가지는 실행 파이프라인으로서, 각각의 스테이지는 대응되는 유효 비트를 저장하기 위한 저장회로를 가지며, 적어도 하나의 상기 저장회로의 상기 유효 비트를 클리어하기 위해서 시스템 리셋 신호를 수신하도록 구성되는 것인 실행 파이프라인과,
    상기 실행 파이프라인의 상기 저장회로를 통해서 상기 클리어된 유효 비트를 전파하도록 구성되는 제어 유닛
    을 더 포함하는 프로그래머블 프로세서.
  29. 제28항에 있어서,
    상기 실행 파이프라인은 N 스테이지를 가지는 것이고,
    상기 리셋 유닛은,
    상기 리셋 신호를 전파하도록 구성되는 N-1개의 직렬로 연결된 저장회로와,
    상기 리셋 신호를 상기 직렬로 연결된 저장유닛들에서 수신하는 OR 게이트와,
    상기 OR 게이트의 츨력을 수신하고 상기 리셋 신호를 상기 실행 파이프라인에 제공하도록 구성되는 저장회로
    를 포함하는 것인 프로그래머블 프로세서.
  30. N 스테이지 파이프라인을 가지는 프로세서를 리셋하는 요구를 수신하는 단계와,
    상기 리셋 요구에 응답하여 리셋 신호를 발생하는 단계와,
    상기 리셋 요구가 클리어된 후 클럭의 N개의 사이클 동안 상기 리셋 신호를 동기적으로 인가하는 단계를 포함하고,
    상기 리셋 요구를 수신하는 단계는 다중 유형의 리셋 요구를 취급하기 위한 지원을 제공하는 단계를 포함하며, 상기 다중 요형의 리셋 요구는 하드 리셋 요구, 소프트 리셋 요구, 및 에뮬레이션 리셋 요구를 포함하는 것인 방법.
  31. 삭제
  32. 제30항에 있어서, 상기 리셋 신호에 응답하여 상기 파이프라인의 상기 스테이지내에서 유효 비트들을 클리어하는 단계를 더 포함하는 방법.
  33. 제30항에 있어서, 상기 클리어된 유효 비트들에 응답하여 상기 파이프라인 프로세서의 클리어된 유효 비트를 전파하는 단계를 더 포함하는 방법.
  34. 프로세서를 리셋하는 요구를 수신하는 단계와,
    리셋 이벤트가 현재 보류중이라는 것을 나타내기 위해 이벤트 보류 레지스터내의 비트를 갱신하는 단계와,
    이벤트 핸들러가 상기 리셋 이벤트를 수락할 때 이벤트 상태 레지스터내의 비트를 갱신하는 단계와,
    상기 수락된 리셋 이벤트에 응답하여 리셋 신호를 인가하는 단계와,
    상기 리셋 신호가 해제될 때 리셋 서비스 루틴을 호출하는 단계를 포함하고,
    상기 리셋 요구를 수신하는 단계는 다중 유형의 리셋 요구를 취급하기 위해 지원을 제공하는 단계를 포함하며, 상기 다중 요형의 리셋 요구는 하드 리셋 요구, 소프트 리셋 요구, 및 에뮬레이션 리셋 요구를 포함하는 것인 방법.
  35. 제34항에 있어서,
    상기 프로세서는 N 스테이지 파이프라인을 포함하는 것이고,
    상기 리셋 요구가 클리어된 후 클럭의 N개의 사이클동안 상기 리셋 신호를 인가하는 단계를 더 포함하는 방법.
  36. 제34항에 있어서,
    상기 리셋 요구가 클리어된 때 상기 이벤트 보류 레지스터내의 상기 비트를 클리어하는 단계와,
    상기 리셋 서비스 루틴이 종료될 때 상기 이벤트 상태 레지스터내의 상기 비트를 클리어하는 단계를 더 포함하는 방법.
  37. 제34항에 있어서, 상기 이벤트 상태 레지스터는 상기 리셋 요구가 하나 이상의 클럭 사이클 동안 존속할때 갱신되는 것인 방법.
  38. 제34항에 있어서, 상기 리셋 신호에 응답하여 상기 파이프라인의 상기 스테 이지들내의 유효 비트들을 클리어하는 단계를 더 포함하는 방법.
  39. 메모리 디바이스와,
    하드 리셋 요구, 에뮬레이션 리셋 요구, 및 소프트 리셋 요구를 포함하는 다중 유형의 리셋 요구 - 다중 유형의 리셋 요구 각각은 할당된 우선 순위를 가짐 - 를 처리하고, 리셋 요구를 상기 할당된 우선 순위를 가지는 이벤트로서 취급하도록 구성되는 이벤트 핸들러를 포함하고,
    상기 프로세서는 다중 파이프라인 스테이지를 포함하는 것인 시스템.
  40. 제39항에 있어서, 상기 프로세서는 상기 이벤트 핸들러가 상기 리셋 이벤트를 수락한때 시스템 리셋 신호를 출력하도록 구성되는 리셋 유닛을 포함하는 것인 시스템.
  41. 제39항에 있어서,
    상기 이벤트 핸들러는,
    상기 리셋 이벤트가 보류중인지 나타내는 비트를 가지는 이벤트 수신 레지스터(ILAT)와,
    상기 리셋 이벤트가 수락되었는지 나타내는 비트를 가지는 이벤트 상태 레지스터(IPEND)
    를 포함하는 것인 시스템.
  42. 제39항에 있어서,
    복수의 스테이지를 가지는 실행 파이프라인으로서, 각각의 스테이지는 대응되는 유효 비트를 저장하기 위한 저장회로를 가지며, 적어도 하나의 상기 저장회로의 상기 유효 비트를 클리어하기 위해 시스템 리셋 신호를 수신하도록 구성되는 실행 파이프라인과,
    상기 실행 파이프라인의 상기 저장회로를 통해서 상기 클리어된 유효 비트를 전파하도록 구성되는 제어 유닛을 더 포함하는 시스템.
  43. 제42항에 있어서,
    상기 실행 파이프라인은 N 스테이지를 가지는 것이고,
    상기 리셋 유닛은,
    상기 리셋 신호를 전파하도록 구성되는 N-1개의 직렬로 연결된 저장회로와,
    상기 리셋 신호를 상기 직렬로 연결된 저장유닛들에서 수신하는 OR 게이트와,
    상기 OR 게이트의 출력을 수신하고 상기 리셋 신호를 상기 실행 파이프라인에 제공하도록 구성되는 저장회로를 포함하는 것인 시스템.
  44. 제39항에 있어서, 상기 메모리 디바이스는 정적기억장치(SRAM)를 포함하는 것인 시스템.
  45. 제39항에 있어서, 상기 메모리 디바이스는 플래쉬 메모리를 포함하는 것인 시스템.
KR1020037003893A 2000-10-06 2001-10-05 프로그래머블 프로세서의 리셋팅 KR100571332B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/684,113 US6665795B1 (en) 2000-10-06 2000-10-06 Resetting a programmable processor
US09/684,113 2000-10-06
PCT/US2001/042533 WO2002029557A2 (en) 2000-10-06 2001-10-05 Resetting a programmable processor

Publications (2)

Publication Number Publication Date
KR20030034188A KR20030034188A (ko) 2003-05-01
KR100571332B1 true KR100571332B1 (ko) 2006-04-17

Family

ID=24746728

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037003893A KR100571332B1 (ko) 2000-10-06 2001-10-05 프로그래머블 프로세서의 리셋팅

Country Status (6)

Country Link
US (1) US6665795B1 (ko)
JP (1) JP2004511042A (ko)
KR (1) KR100571332B1 (ko)
CN (1) CN1299199C (ko)
TW (1) TW542963B (ko)
WO (1) WO2002029557A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101386509B1 (ko) * 2007-05-09 2014-04-17 삼성전자주식회사 화상 형성 장치 그 제어 방법

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6789187B2 (en) * 2000-12-15 2004-09-07 Intel Corporation Processor reset and instruction fetches
US20030065916A1 (en) * 2001-07-30 2003-04-03 Erickson Michael John Method and apparatus for diagnosing the cause of a processor reset
EP1615106A1 (en) 2004-07-05 2006-01-11 STMicroelectronics Limited Reset in a system-on-chip circuit
JP4527571B2 (ja) * 2005-03-14 2010-08-18 富士通株式会社 再構成可能演算処理装置
KR20060131443A (ko) * 2005-06-16 2006-12-20 엘지전자 주식회사 케이블 방송 수신기, 그의 리셋 방법, 그리고 데이터 구조
JP2007048019A (ja) * 2005-08-10 2007-02-22 Sony Computer Entertainment Inc エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム
CN101297256A (zh) * 2005-10-25 2008-10-29 Nxp股份有限公司 包含复位设施的数据处理装置
JP5188493B2 (ja) * 2006-03-30 2013-04-24 シリコン イメージ,インコーポレイテッド 可変のポート速度を有するマルチポート・メモリ・デバイス
US7831778B2 (en) * 2006-03-30 2010-11-09 Silicon Image, Inc. Shared nonvolatile memory architecture
US8055888B2 (en) * 2008-02-28 2011-11-08 Arm Limited Initialisation of a pipelined processor
TWI407298B (zh) * 2010-03-30 2013-09-01 Hon Hai Prec Ind Co Ltd 網路接入設備的復位電路
CN102385433B (zh) * 2010-08-31 2014-08-06 无锡中星微电子有限公司 一种系统级复位的方法及装置
GB2538052B (en) 2015-04-27 2019-07-03 Gurulogic Microsystems Oy Encoder, decoder, encryption system, encryption key wallet and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0576749A1 (en) * 1992-06-30 1994-01-05 Discovision Associates Data pipeline system and data encoding method
EP0992916A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. Digital signal processor

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4794517A (en) 1985-04-15 1988-12-27 International Business Machines Corporation Three phased pipelined signal processor
US5898869A (en) 1996-09-20 1999-04-27 The Foxboro Company Method and system for PCMCIA card boot from dual-ported memory
US5938728A (en) * 1997-10-30 1999-08-17 Advanced Micro Devices, Inc. Apparatus and method for selectively controlling clocking and resetting of a network interface

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0576749A1 (en) * 1992-06-30 1994-01-05 Discovision Associates Data pipeline system and data encoding method
EP0992916A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. Digital signal processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101386509B1 (ko) * 2007-05-09 2014-04-17 삼성전자주식회사 화상 형성 장치 그 제어 방법

Also Published As

Publication number Publication date
CN1299199C (zh) 2007-02-07
US6665795B1 (en) 2003-12-16
WO2002029557A3 (en) 2002-08-15
WO2002029557A2 (en) 2002-04-11
WO2002029557A9 (en) 2003-02-13
TW542963B (en) 2003-07-21
KR20030034188A (ko) 2003-05-01
JP2004511042A (ja) 2004-04-08
CN1498365A (zh) 2004-05-19

Similar Documents

Publication Publication Date Title
KR100571322B1 (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
US5941981A (en) System for using a data history table to select among multiple data prefetch algorithms
JP3547482B2 (ja) 情報処理装置
KR100571332B1 (ko) 프로그래머블 프로세서의 리셋팅
KR100241646B1 (ko) 병행적 멀티태스킹 프로세서 및 프로세서의 병행적 멀티태스킹 방법
US8145887B2 (en) Enhanced load lookahead prefetch in single threaded mode for a simultaneous multithreaded microprocessor
US7395418B1 (en) Using a transactional execution mechanism to free up processor resources used by a busy-waiting thread
US5226166A (en) Parallel operation processor with second command unit
US7472259B2 (en) Multi-cycle instructions
US5802340A (en) Method and system of executing speculative store instructions in a parallel processing computer system
US7302553B2 (en) Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue
US6898693B1 (en) Hardware loops
KR100551544B1 (ko) 하드웨어 루프
KR19990013426A (ko) 머신 문맥 동기화 동작 실행 방법 및 프로세서
US7065636B2 (en) Hardware loops and pipeline system using advanced generation of loop parameters
US6721878B1 (en) Low-latency interrupt handling during memory access delay periods in microprocessors
US5742755A (en) Error-handling circuit and method for memory address alignment double fault
US6473850B1 (en) System and method for handling instructions occurring after an ISYNC instruction
WO2002037270A2 (en) Hardware loops
US6920547B2 (en) Register adjustment based on adjustment values determined at multiple stages within a pipeline of a processor
JP3158107B2 (ja) 浮動小数点状態および制御レジスタ(fpscr)命令を直接実行するための方法および装置
US11157277B2 (en) Data processing apparatus with respective banked registers for exception levels
US7124285B2 (en) Peak power reduction when updating future file
JP2885548B2 (ja) パイプライン制御方式
WO2001077818A2 (en) Method for predicting the instruction execution latency of a de-coupled configurable co-processor

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20130320

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140320

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160318

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 14