KR20100098622A - 턴라운드 이벤트에 기초한 스케줄링 - Google Patents

턴라운드 이벤트에 기초한 스케줄링 Download PDF

Info

Publication number
KR20100098622A
KR20100098622A KR1020107012483A KR20107012483A KR20100098622A KR 20100098622 A KR20100098622 A KR 20100098622A KR 1020107012483 A KR1020107012483 A KR 1020107012483A KR 20107012483 A KR20107012483 A KR 20107012483A KR 20100098622 A KR20100098622 A KR 20100098622A
Authority
KR
South Korea
Prior art keywords
memory
request
memory request
time period
turnaround
Prior art date
Application number
KR1020107012483A
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 KR20100098622A publication Critical patent/KR20100098622A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns

Abstract

신호의 전송은 다른 신호와 연관된 지정된 이벤트 동안 신호의 전송을 방지하도록 스케줄된다. 예를 들어, 신호가 전송되는 시간은 양방향성 신호 경로의 턴어라운드 시간 기간을 방지하도록 스케줄될 수 있다. 이러한 기술은 예를 들어, 메모리 제어기가 하나 이상의 메모리 디바이스들 또는 메모리 모듈들과 통신하는 메모리 시스템에서 이용될 수 있다. 여기서, 메모리 시스템은 양방향성 메모리 데이터 인터페이스가 전환될 때에 해당하는 드라이버 턴어라운드 윈도우 동안 메모리 리퀘스트 신호들의 전송이 메모리 디바이스/모듈에 의해 구성되는 메모리 제어기로부터 방지되도록 구성될 수 있다.

Description

턴라운드 이벤트에 기초한 스케줄링{SCHEDULING BASED ON TURNAROUND EVENT}
본 출원은 일반적으로 데이터 프로세싱에 관한 것으로, 독점적인 것은 아니지만 보다 특정하게는 동작들(operations)을 스케줄링하는 것에 관한 것이다.
데이터 프로세싱 시스템은 양방향성 링크를 이용할 수 있고, 이로써 기록과 판독 간격들 사이의 링크 전환에 데이터가 접속된다. 예를 들어, 메모리 시스템은 양방향성 데이터(DQ) 링크를 이용할 수 있으며, 메모리 제어기 및 메모리 디바이스는 상이한 시간들에서 링크를 구동시킨다(drive). 이러한 양방향성 링크들의 사용을 통해, 시스템은 이용가능한 패키지 핀들을 보다 효율적으로 사용하고 플랙시블한(flexible) 대역폭 할당을 제공할 수 있다.
실제로, 링크를 구동하는 상이한 디바이스들 사이에서의 스위칭 프로세스는 스위칭 전류들을 감소시키도록 설계된 시그널링 아키텍쳐들(이를 테면, 차동 시그널링 또는 코딩된 시그널링)이 사용되더라도, 링크 상에 비교적 많은(significant) 스위칭 전류들을 생성할 수 있다. 링크 상에서 있을 수 있는 이러한 드라이버 스위칭-관련 노이즈의 임의의 부작용들을 감소시키기 위해, 소위 타이밍 "버블들(bubbles)"이 사용될 수 있고, 이로써 (이를 테면 판독-대-기록으로부터 또는 이의 역으로부터의) 드라이버 턴어라운드와 연관된 시간 윈도우 동안 데이터 전송이 방지될 수 있다. 이러한 타이밍 "버블들"의 사용을 통해, 드라이버 턴어라운드와 연관된 노이즈가 안정화(settle)를 위한 시간을 가질 수 있어, 노이즈가 링크 상에서의 데이터 전송에 악영향을 미칠 수 있는 가능성이 감소된다.
또한, 드라이버 온 및 오프의 스위칭 동작은 스위칭 전류가 전원장치를 통해 결합되게 하여, 또 다른 신호 경로 상에 전압 노이즈를 유도할 수 있다. 일부 양상들에서, 이러한 전압 노이즈는 수신기 전압 마진을 직접적으로 감쇠시킬 수 있다. 일부 양상들에서, 이러한 노이즈는 다른 신호 경로에서 증가된 타이밍 지터(timing jitter)(또는 위상 노이즈)를 산출할 수 있으며, 이는 전원장치의 전압 노이즈는 클록 엣지 도달 시간들 뿐만 아니라 드라이버 출력 또는 수신기 입력 지연들에 영향을 미치기 때문이다. 또한, 링크들 간의 유도성 또는 용량성 결합(coupling)은 턴어라운드를 겪는(undergoing) 링크와 턴어라운드를 겪지 않는 이웃(neighboring) 링크 간에 혼선(crosstalk)을 야기시킬 수 있다. 이러한 턴어라운드-유도 전압 노이즈는 다른 신호 경로들에 대한 전압 및/또는 타이밍 마진을 감소시킬 수도 있다. 이러한 노이즈 문제들(issues)을 해결하기 위한 하나의 방안은 데이터 경로에 비해 높은 전압 스윙 및 감소된 신호 레이트에서 다른 신호 경로를 동작시키는 것을 수반한다. 이러한 방안은 사실상 데이터 경로 스위칭 노이즈로 인해 다른 신호 경로에서의 임의의 감쇠(degradation)를 흡수할 수 있는 전압 마진들 및 높은 타이밍에 대해 허용된다. 그러나 일부 애플리케이션들에서, 신호 경로 상에서의 전압 신호 스윙을 증가시키는 것 또는 신호 레이트를 감소시키는 것은 바람직하지 않다. 따라서, 신호 경로 상에서의 큰 전압 신호 스윙 및/또는 고속 신호 레이트들의 사용을 가능케 하는 효율적인 기술들이 요구된다.
일부 양상들에서, 본 발명은 다른 신호와 연관된 특정(specified) 이벤트 동안 신호 전송을 방지하기 위해 신호의 전송을 스케줄링하는 것과 관련된다. 예를 들어, 하나의 채널 상에서 신호에 대한 전송 시간은 다른 채널 상에서의 양방향성 신호들의 스위칭과 연관된 시간 기간을 방지하도록 스케줄될 수 있다.
예시를 목적으로, 본 발명의 다양한 양상들은 메모리 시스템과 관련하여 개시되며, 제어기(이를 테면, 메모리 제어기)는 하나 이상의 메모리 디바이스들 또는 메모리 모듈들(본 발명에서 이후 편의상 "메모리 디바이스"로 칭함)에 대해 RQ 버스 상의 리퀘스트(RQ) 채널 신호들의 전송을 스케줄한다. 특히, 제어기는 DQ 버스 상의 양방향성 메모리 데이터(DQ) 채널이 전환될 때, 또는 이와 반대일 때에 해당하는 드라이버 턴어라운드 기간(이를 테면, 도 1의 턴어라운드 윈도우(102)) 동안 RQ 신호들의 전송이 메모리 디바이스에 의해 구동되는 제어기에 의해 구동되는 것을 방지한다. 본 발명의 설명들이 다른 형태들의 신호들, 콤포넌트들 및 시스템들에 적용될 수 있다는 것이 인식될 것이다. 또한, 이러한 콤포넌트들이 다른 콤포넌트들(이를 테면, 프로세서들 또는 메모리 모듈들)내에서 구현될 수 있고 본 발명의 설명들이 다른 형태들의 장치들에서 구현될 수 있다는 것이 인식될 것이다.
본 발명의 샘플 피처(feature)들, 양상들 및 장점들은 하기 첨부되는 상세한 설명 및 청구항들 및 도면들에 개시된다.
도 1은 신호 턴어라운드 이벤트를 방지하기 위해 신호 전송을 스케줄링하는 예를 나타내는 간략화된 다이어그램이다.
도 2는 신호 노이즈의 예를 나타내는 간략화된 다이어그램이다.
도 3은 신호 턴어라운드 이벤트를 방지하기 위해 신호 전송을 스케줄링하도록 장치에 의해 수행될 수 있는 동작들의 실시예에 대한 흐름도이다.
도 4는 신호 턴어라운드 이벤트를 방지하도록 스케줄되며 수신된 신호 상에서 동작하는 지연에 대해 장치에 의해 수행될 수 있는 동작들의 실시예에 대한 흐름도이다.
도 5는 신호 턴어라운드 이벤트를 방지하도록 스케줄된 신호들을 처리하도록 구성된 장치들의 콤포넌트들에 대한 실시예의 간략화된 블록 다이어그램이다.
도 6은 신호 턴어라운드 이벤트를 방지하도록 신호 전송을 스케줄링하는 예를 나타내는 간략화된 다이어그램이다.
도 7은 신호 턴어라운드 이벤트를 방지하도록 신호 전송을 스케줄링하는 예를 나타내는 간략화된 다이어그램이다.
통상적으로, 도면들에 도시된 다양한 피처들은 스케일대로 도시되지 않을 수 있다. 따라서, 다양한 피처들의 치수들은 명료성을 위해 임의로 확대 또는 축소될 수 있다. 또한, 도면들의 일부는 명료성을 위해 간략화될 수 있다. 따라서, 도면들은 제시된 장치들 또는 방법의 콤포넌트들 모두를 도시하지 않을 수 있다. 마지막으로, 동일한 참조 부호들은 명세서 및 도면들 전반에서 같은 피처들을 표시하는데 이용된다.
도 1은 연속하는 시간 윈도우들(이를 테면, 타임슬롯들) 동안 메모리 액세스를 위해 이용될 수 있는 신호 타이밍에 대한 예를 도시한다. DQ 채널은 양방향성 DQ 버스(이를 테면, 데이터 신호 경로) 상의 신호들과 관련된다. 예를 들어, 데이터 기록들(이를 테면, 메모리 디바이스에 기록되는 데이터 패킷들)은 WO, W1 등으로 표시되며 데이터 판독들(이를 테면, 메모리 디바이스로부터 판독되는 데이터 패킷들)은 RO, R1 등으로 표시된다. 제어기 TX_ENABLE 채널은 제어기에서 생성될 수 있는 전송 인에이블(enable) 신호들을 표시한다. 메모리 TX_ENABLE 채널은 메모리 디바이스에서 생성될 수 있는 전송 인에이블 신호들을 표시한다.
RQ 채널은 RQ 버스(이를 테면, 리퀘스트 버스) 상의 제어기에 의해 생성된 리퀘스트 신호들과 관련된다. RQ-최적화 채널은 본 발명의 설명에 따라 제어기에 의해 생성될 수 있는 기록 리퀘스트들(이를 테면, WO, W1, 등) 및 판독 리퀘스트들(이를 테면, RO, R1, 등)을 표시한다. 비교를 위해, RQ-정규 채널은 통상의 방식에 따라 제어기에 의해 생성될 수 있는 기록 리퀘스트들(이를 테면, WO, W1, 등) 및 판독 리퀘스트들(이를 테면, RO, R1, 등)을 표시한다. 도 1에 도시된 것처럼, 기록 리퀘스트들(이를 테면, WO) 또는 판독 리퀘스트들(이를 테면, RO)은 해당 기록 데이터(이를 테면, WO) 또는 판독 데이터(이를 테면, RO) 전송 간격에 앞서 전송될 수 있다.
본 발명에서 사용되는 것처럼, 기록 리퀘스트 및 판독 리퀘스트란 용어들은 데이터를 액세스하는데 이용될 수 있는 (데이터 및 클록 신호들 이외의) 다양한 형태들의 신호들과 관련된다. 예를 들어, 이러한 신호들은 어드레스 및/또는 제어 정보(이를 테면, 명령/어드레스, "C/A")를 포함할 수 있다. DRAM과 같은 메모리 디바이스에 대해, 예를 들어, 이러한 신호들은 뱅크(bank) 어드레스, 로우(row) 어드레스, 컬럼(column) 어드레스, 연산부호(opcode) 또는 이러한 신호들의 임의의 조합을 포함할 수 있다. 일부 구현예들에서, 각각의 리퀘스트(이를 테면, WO)은 리퀘스트 패킷에 해당한다. 간략화된 예로써, WO는 활성화 명령(activate command) 및 로우 어드레스 패킷을 포함할 수 있으며, W1은 기록 명령 및 컬럼 어드레스 패킷을 포함할 수 있으며, W3은 프리차지(precharge) 명령 및 뱅크 어드레스 패킷을 포함할 수 있는 방식이다.
도 1에 도시된 것처럼, 스위칭 노이즈가 DQ 버스상에서 안정화(settle)되도록하기 위해 유휴(idle) 사이클들(이를 테면, 타임슬롯들)이 판독-대-기록 또는 기록-대-판독 전환들 동안 DQ 버스에 도입될 수 있다. 예를 들어, DQ 버스 상의 최종 기록 W3과 최초 판독 RO 사이에 5개의 유휴 사이클이 제공된다. 또한, DQ 버스에 삽입된 유휴 사이클들의 결과로써 RQ 버스에 유휴 사이클들이 도입될 수 있다. 예를 들어, RQ-정규 버스상의 기록들 WO-W3과 판독들 RO-R5 사이에 3개의 유휴 사이클들이 제공된다.
앞서 언급된 것처럼, 도 1은 최종 기록 W3으로부터 최초 판독 RO로의 DQ 인터페이스 스위칭에 연관된 턴어라운드(turnaround) 윈도우 102를 나타낸다. 특히, 제어기는 시간 윈도우 6 이후 DQ 버스 구동을 중단시키며 메모리 디바이스는 시간 윈도우 8에서 DQ 버스 구동을 시작한다. 통상의 시스템에서, 턴어라운드 윈도우 102 동안 제어기는 RQ-정규 신호들(이를 테면, RO-R2)을 전송할 수 있다는 것이 관찰될 수 있다. 따라서, DQ 버스의 턴어라운딩 결과로써 RQ-정규 신호들에 노이즈가 야기될 수 있다.
도 2는 드라이버가 턴온 및 턴오프될 때 생성될 수 있는 신호들의 예를 나타낸다. 파형(202)은 차동 신호(differential signal)의 예인 반면 파형(204)은 싱글-엔드형 신호(single-ended signal)의 예이다. 차동 신호에 대한 드라이버는 각각 화살표 206 및 208로 표시된 시간 지점들에서 턴온 및 턴오프된다. 싱글-엔드형 신호에 대한 드라이버는 각각 화살표 210 및 212에 표시된 시간 지점들에서 턴온 및 턴오프된다. 데이터는 시간 간격(214) 동안 전송된다. 도 2에 표시된 것처럼, 드라이버의 턴온 및 턴오프의 결과로서 생성된 잡음에 대한 전위(potential)는 각각 시간 윈도우들 216 및 218 동안에는 비교적 높을 수 있다.
본 발명에 사용되는 것처럼, 드라이버 턴어라운드 윈도우란 용어는 대략적으로 하나의 드라이버(이를 테면, 데이터 드라이버)가 턴오프되기 시작할 때 시작하여 대략적으로 턴온되는 또 다른 드라이버로부터의 노이즈가 신뢰성있는 전송을 위해 충분히 안정화(settle)될 때 종료되는 시간 윈도우로 간주된다. 예를 들어, 턴어라운드 윈도우(이를 테면, 도 1의 턴어라운드 윈도우 102)는 하나의 드라이버가 턴오프되고 또 다른 드라이버가 턴온되는 것과 연관된 잠재적 노이즈 시간 기간들(이를 테면, 시간 윈도우들 218 및 216) 및 이러한 잠재적 노이즈 시간 기간들 간의 시간 기간을 포함하는 것으로 정의된다.
RQ 버스와 같은 다른 신호 경로들 상에서 이러한 턴어라운드 이벤트들을 산출하는 스위칭 전류들이 전압 노이즈를 유도하는 것을 방지하기 위해, 메모리 시스템은 턴어라운드 윈도우 동안 리퀘스트들의 전송을 방지하도록 구성될 수 있다. 이를 위해, 메모리 시스템은 턴어라운드 윈도우에 앞서 프리로딩(preloading)되는 리퀘스트 버퍼(request buffer)를 제공할 수 있다. 여기서, 제어기는 다른(otherwise) 유휴 사이클들 동안, 초기에 하나 이상의 리퀘스트들을 전송할 수 있다. 다음 메모리 디바이스는 메모리 디바이스가 내부적으로 리퀘스트들을 발행하기 이전에 적절한 지연(delay)을 제공하도록 이러한 리퀘스트들을 버퍼링한다.
도 1의 RQ-최적화 신호는 턴어라운드 윈도우 동안 임의의 RQ 신호들의 전송을 방지도록 스케줄될 수 있다. 여기서, 제 1 세트의 기록 리퀘스트들 WO-W3은 RQ-정규 케이스에서처럼 시간 윈도우들 0-3 동안 전송된다. 그러나, 판독 리퀘스트의 RO-R2는 시간 윈도우들 4-6 동안 전송되며 시간 윈도우 7-9와 연관된 턴어라운드 윈도우 102 동안에는 리퀘스트 신호들이 전송되지 않는다. 다음 나머지 판독 리퀘스트들 R3-R5은 RQ-정규 케이스에서처럼 시간 윈도우들 10-12 동안 전송된다. 시간 윈도우들 18-20과 연관된 턴어라운드 윈도우 104 동안 리퀘스트들의 전송을 방지하기 위해 RQ-최적화 기록 신호들 WO-W2에 대해 유사한 스케줄링 방식이 사용된다.
상기 기술들의 사용은 리퀘스트 채널(이를 테면, RQ 버스) 상에서 노이즈에 대한 민감성(susceptibility)을 바람직하게 감소시킬 수 있다. 이러한 노이즈를 감소시킴으로써, 메모리 시스템은 좁고(narrower) 고속인 리퀘스트 채널들을 이용할 수 있다. 예를 들어, 리퀘스트 채널은 데이터 채널(이를 테면, 데이터 버스)의 시그널링 레이트(signaling rate)에 필적하는 시그널링 레이트에서 동작할 수 있다. 좁고 고속인 리퀘스트 채널들의 사용은 결국 제어기 핀 오버헤드의 감소, 보다 많은 리퀘스트 채널들의 사용, 및 미세한 액세스 단위(finer access granularity)의 사용을 가능케할 수 있다.
본 발명의 이러한 양상들 및 다른 양상들이 도 3-7과 관련하여 보다 상세히 개시된다. 도 3은 제어기가 본 발명의 설명들에 따라 리퀘스트들을 스케줄하도록 수행할 수 있는 몇 가지 동작들을 개시한다. 도 4는 메모리 디바이스가 스케줄된 리퀘스트들을 처리하도록 수행할 수 있는 몇 가지 동작들을 개시한다. 도 5는 메모리 제어기(502) 및 메모리 디바이스(504)를 포함하는 메모리 시스템(500)의 샘플 실시예를 예시한다. 메모리 제어기(502)는 상호접속부(506)를 통해 메모리 디바이스(504)의 제어기 인터페이스(528)과 통신하도록 구성된 메모리 인터페이스(526)를 포함한다(이를 테면, 메모리 버스들은 데이터 신호 경로들, 클록 신호 경로들, 및 제어 신호 경로들을 포함함). 도 6 및 도 7은 메모리 액세스 신호 타이밍의 추가 예들을 예시한다.
편의상, 도 3 및 도 4의 동작들(또는 본 발명에서 언급되는 또는 지시되는 임의의 다른 동작들)은 특정 콤포넌트들(이를 테면, 시스템(500)의 콤포넌트들)에 의해 수행되는 것으로서 개시될 수 있다. 그러나, 이러한 동작들은 다른 형태들의 콤포넌트들에 의해 수행될 수 있으며 다른 개수의 콤포넌트들을 사용하여 수행될 수 있다는 것을 인식해야 한다. 또한, 본 발명에 개시된 하나 이상의 동작들은 제시된 구현예에 이용되지 않을 수 있다는 것 또한 인식해야 한다.
도 3의 블록(302)으로 표시된 것처럼, 메모리 제어기(502)는 액세스를 리퀘스트하는 하나 이상의 연관된 디바이스들(이를 테면, 프로세서들)로부터 메모리 디바이스(504)의 메모리 어레이(508)로 하나 이상의 명령들(또는 다른 적절한 메시지들)을 수신한다. 관례에 따라, 메모리 제어기(502)(이를 테면, 스케줄러(510))는 이러한 메시지들을 처리하기 위한 중재(arbitration) 및 스케줄링과 같은 동작을 수행하고 적절한 시기에 해당 리퀘스트들을 메모리 디바이스(504)로 전송할 수 있다.
본 발명에 개시된 설명들에 따라, 스케줄링 동작들은 턴어라운드 이벤트를 선행하는 이용가능한 리퀘스트 채널 타임슬롯들 동안에, 턴어라운드 윈도우 동안 스케줄링될 수 있는 리퀘스트들을 스케줄링함으로써, 턴어라운드 시간들 동안 리퀘스트들의 전송 방지를 수반할 수 있다. 일부 양상들에서, 이는 판독-대-기록 또는 기록-대-판독 턴어라운드 이벤트의 적절한 예지(foreknowledge), 턴어라운드 이벤트를 따른 하나 이상의 리퀘스트들에 대한 예지 및 하기 개시되는 기본 타이밍 파라미터들의 예지로 달성될 수 있다.
블록(304)으로 표시된 것처럼, 메모리 제어기(502)(이를 테면, 턴어라운드 이벤트 검출기(512))는 DQ 버스 상에서 턴어라운드가 발생하는 시기를 결정한다. 예를 들어, 도 6에서, 스케줄러(510)는 이전에 스케줄된 기록들 WO-WO3을 포함할 수 있으며, 이로 인해 기록 리퀘스트들이 시간 윈도우들 0-3에서 발행되고 기록 데이터 WO-W3가 시간 윈도우 6-9에서 DQ 버스상에 제공된다. 또한, 스케줄러(510)는 다음 판독 리퀘스트가 스케줄되는 것을 결정할 수 있다. 이 경우, 턴어라운드 이벤트 검출기(512)는 턴어라운드 이벤트(602)(이를 테면, 턴어라운드 윈도우)가 시간 윈도우들 12-14에서 발생하는 것을 결정할 수 있다.
블록(306)으로 표시된 것처럼, 메모리 제어기(502)(이를 테면, 스케줄러(510))는 턴어라운드 이벤트(602)를 방지하기 위해 판독 리퀘스트들 RO-R5을 스케줄한다. RQ-정규 버스로 표시된 것처럼, 통상의 시스템에서 판독 리퀘스트들 R0-R5은 기록 데이터 WO-W3가 DQ 버스를 통해 전송된 이후 스케줄될 수 있다. 이 경우, 리퀘스트 신호들 R1-R3은 턴어라운드 이벤트(602) 동안 스케줄될 수 있고, 결과적으로 노이즈가 스위칭될 수 있다. 반대로, RQ-최적화 버스로 표시된 것처럼, 스케줄러(510)는 턴어라운드 이벤트(602) 이전에 전송에 대해 리퀘스트 신호들 R0-R3을 스케줄할 수 있다. 여기서, 스케줄러(510)는 기록 데이터 W3를 따르는 DQ 버스 상의 유휴 사이클들로 인해 RQ 버스 상에서 발생하는 몇 개의 유휴 사이클들(이를 테면, 타임 슬롯들 604A - 604C)을 식별할 수 있다. 다음, 스케줄러(510)는 RQ-최적화 버스에 도시된 것처럼 리퀘스트 R0-R3를 스케줄하기 위해 시간 윈도우 11에서 타임슬롯 및 이러한 유휴 RQ 사이클들을 이용한다. 다음, 리퀘스트들 R4 및 R5은 (이를 테면, RQ-정규 케이스에서처럼) 턴어라운드 이벤트(602)에 이어 스케줄될 수 있다.
도 7은 판독에서 기록으로 DQ 버스가 전환될 때 유사한 동작들이 수행될 수 있다는 것을 예시한다. 여기서, 시간 윈도우들 8-11, 15 및 16에서 스케줄되는 판독 데이터 R0-R5는 메모리 디바이스(504)에 의해 시간 윈도우 24-29에서 DQ 버스로 출력된다. 또한, 스케줄러(510)는 다음 기록 리퀘스트가 스케줄되는 것을 결정한다. 이 경우, 턴어라운드 이벤트 검출기(512)는 턴어라운드 이벤트(702)가 시간 윈도우 30-32에서 발생하는 것을 결정한다. 다음, 스케줄러(510)는 턴어라운드 이벤트(702)를 방지하기 위해 기록 리퀘스트들 WO-W7을 스케줄한다. RQ-최적화 버스로 표시된 것처럼, 스케줄러(510)는 몇 개의 유휴 사이클들 704A-704C를 식별한 이후 턴어라운드 이벤트(702) 이전의 전송을 위해 리퀘스트 신호들 WO-W5를 스케줄할 수 있다. 스케줄러(510)는 리퀘스트들 WO-W5을 스케줄하기 위해 시간 윈도우들 27-29에서 타임슬롯들 및 이러한 유휴 RQ 사이클들을 이용할 수 있다. 다음, 리퀘스트들 W6 및 W7은 턴어라운드 이벤트(702)에 이어 스케줄될 수 있다. 이 경우, 메모리 제어기(502)는 턴어라운드 이벤트(702)에 이어 바로 DQ 버스 상에 기록 데이터 WO-W7를 배치한다.
다시 도 3을 참조로, 블록(308)으로 표시된 것처럼, 메모리 제어기(502)(이를 테면, 리퀘스트 지연 표시기(514))는 턴어라운드 시간 이전에 스케줄되는 리퀘스트들에 작용하는(이를 테면, 발행되는) 지연에 대해 메모리 디바이스(504)를 지시하는 표시(indication)를 메모리 디바이스(504)로 전송할 수 있다. 이러한 표시는 리퀘스트들이 전송되기 이전에 또는 하나 이상의 리퀘스트들과 함께 메모리 디바이스(504)로 전송될 수 있다(블록(310)에서). 일부 구현예들에서, 표시는 제시된 리퀘스트에 대해 작동하기 이전에 메모리 디바이스(504)가 얼마나 오래(이를 테면, 클록 사이클들 또는 시간 윈도우들의 수) 지연될 수 있는지를 표시할 수 있다. 수신된 리퀘스트를 지연시키기 위해 메모리 디바이스(504)를 구성하는데 이용될 수 있는 다른 방식들이 하기에 개시된다.
블록(310)으로 표시된 것처럼, 메모리 제어기(502)(이를 테면, 스케줄러(510))는 스케줄된 시간들에서 리퀘스트들을 전송한다. 예를 들어, 도 6에 도시된 것처럼, 판독 리퀘스트들 RO-R5은 시간 윈도우들 8-11, 15 및 16 동안 전송된다.
블록(312)으로 표시된 것처럼, 메모리 제어기(502)는 리퀘스트들에 기초하여 메모리 디바이스(504)를 액세스한다. 예를 들어, 도 7에 도시된 것처럼, 메모리 제어기(502)는 시간 윈도우들 24-29 동안 판독 데이터 R0-R5를 수신한다.
도 4를 참조로, 메모리 디바이스(504)에 의해 수행될 수 있는 상보적(complementary) 동작들이 보다 상세히 논의된다. 일부 구현예들에서, 이는 데이터 턴어라운드 이벤트에 앞서 다른(otherwise) 유휴 리퀘스트 사이클들 동안 메모리 디바이스(504) 내의 리퀘스트 버퍼(516)로 몇 개의 리퀘스트들의 프리로딩을 수반할 수 있다. 메모리 디바이스(504) 내에서 이러한 버퍼링된 리퀘스트들을 적절하게 지연시킴으로써, DQ 버스 상의 턴어라운드 이벤트 동안 메모리 디바이스(504)내에서 이들을 발행하는 것이 가능하여, RQ 버스 상의 타이밍 마진 또는 전압 경감을 방지할 수 있다.
블록(402)으로 표시된 것처럼, 일부 구현예들에서, 메모리 디바이스(504)(이를 테면, 리퀘스트 지연 표시기(518))는 메모리 디바이스(504)에서 하나 이상의 리퀘스트들이 어떻게 지연되어야 하는지에 관한 표시를 수신할 수 있다. 예를 들어, 앞서 개시된 논의된 것처럼 블록(308)에서, 메모리 디바이스(504)는 리퀘스트들이 수신되기 이전에 또는 하나 이상의 리퀘스트들과 협력하여 이러한 표시를 수신할 수 있다(블록(404)에서).
블록(404)으로 표시된 것처럼, 메모리 디바이스(504)(이를 테면, 메모리 액세스 제어기(524))는 블록(310)에서 메모리 제어기(502)에 의해 전송된 리퀘스트들을 수신한다. 하기 개시되는 것처럼, 메모리 디바이스(504)는 턴어라운드 이벤트 동안 리퀘스트들이 수신되지 않더라도(이를 테면, 제시된 리퀘스트들의 세트의 리퀘스트들이 도 6 및 도 7에 도시된 것처럼 시간상 구별될 때) 리퀘스트들을 효과적으로 처리하도록 구성된다.
블록(406)으로 표시된 것처럼, 일부 구현예들에서, 메모리 디바이스(504)(이를 테면, 턴어라운드 이벤트 검출기(520))는 수신된 리퀘스트과 연관된 턴어라운드 이벤트의 시간을 결정할 수 있다. 이 경우, 메모리 디바이스(504)는 리퀘스트가 지연되는지 여부 및/또는 지연량을 결정하기 위해 턴어라운드 이벤트 시간을 사용할 수 있다. 예를 들어, 임의의 시간에서 메모리 디바이스(504)는 판독-대-기록 전환(또는 이와 반대)을 검출하며, 메모리 디바이스(504)는 한정된 지연 기간에 따라 자동으로 지연된다(이를 테면 3개의 리퀘스트들에 대해 3개의 사이클이 지연된다). 또한, 메모리 디바이스(504)는 턴어라운드 기간(이를 테면 3개의 사이클) 동안 리퀘스트들의 도입되지 않는다는 것을 검출할 수 있고, 결과적으로 리퀘스트 버퍼(516)는 비게된다(empty)(3개의 리퀘스트들의 깊이로 가정). 이 경우, 메모리 디바이스(504)는 이러한 리퀘스트들의 세트로부터 순차적으로 수신된 리퀘스트를 지연시키지 않는다.
블록(408)으로 표시된 것처럼, 메모리 디바이스(504)(이를 테면, 리퀘스트 지연기(522))는 초기에(이를 테면, 턴어라운드 이벤트 이전에) 전송된 임의의 리퀘스트들을 지연시킬 수 있다(이를 테면, 임의의 리퀘스트들의 발행을 지연시킬 수 있다). 일부 양상들에서, 이는 리퀘스트에 대해 동작하도록 지정된 시간까지 리퀘스트 버퍼(516)에 수신된 리퀘스트의 저장을 수반할 수 있다.
앞서 논의된 것처럼, 일부 구현예들에서, 메모리 디바이스(504)는 주어진 리퀘스트들이 얼마나 많이 지연되는지의 표시를 수신하거나 그렇지 않은 경우 상기 표시로 구성된다. 예를 들어, 이러한 표시가 리퀘스트에 수신되는 이벤트에서, 리퀘스트 지연기(522)는 리퀘스트에 표시된 시간 지연에 의해 리퀘스트를 지연시킬 수 있다. 일부 경우들에서, 턴어라운드 이벤트의 시작 이후에 동작되도록 리퀘스트가 지연된다. 예를 들어, 도 6에서, 메모리 디바이스(504)는 시간 윈도우 12 동안(이를 테면 3개의 시간 윈도우들의 지연), 이러한 시간에서 RQ 버스(RQ-최적화)상에 트래픽이 존재하지 않더라고, 리퀘스트 R1에 대해 동작할 수 있다.
블록(410)으로 표시된 것처럼, 메모리 디바이스(504)(이를 테면, 메모리 액세스 제어기(524))는 리퀘스트들에 기초하여 메모리 어레이(508)로의 액세스를 제공한다. 도 7에 도시된 것처럼, 예를 들어, 메모리 디바이스(504)는 시간 윈도우들 24-29 동안 판독 데이터 R0-R5를 출력한다.
본 발명에 설명된 것처럼 리퀘스트들 또는 다른 신호들의 스케줄링은 다양한 방식들로 구현될 수 있다. 예를 들어, 앞서 언급된 것처럼, 제시된 리퀘스트가 지연되는지 여부 그리고 제시된 리퀘스트가 얼마나 오래 지연되는지를 표시하는 정보로 메모리 디바이스(504)를 구성하는데 다양한 기술들이 사용될 수 있다.
일부 구현예들에서, 메모리 디바이스(504)(이를 테면, 리퀘스트 지연 표시기(518))는 지연을 표시하는 값으로 프로그램되는 레지스터를 포함한다. 이 경우, 제시된 리퀘스트는 이러한 특정 리퀘스트가 지연되는지 여부를 표시하는 표시(이를 테면, 비트)를 포함할 수 있다. 그런 경우, 메모리 디바이스(504)는 레지스터 값으로 표시되는 시간량에 의해 리퀘스트를 지연시킬 수 있다.
메모리 디바이스(504)는 수신된 리퀘스트들이 지연되는지 여부/방법을 결정하기 위해 내장된(embedded) 규칙들을 이용할 수 있다. 예를 들어, 일부 구현예들에서, 시스템(500)은 지정된 양(이를 테면, 3 사이클들)만큼 모든 리퀘스트들이 지연되도록 구성된다. 이 경우, 제시된 리퀘스트는 이러한 특정 리퀘스트가 지연되는지 여부를 표시하는 표시를 포함할 수 있다. 그런 경우, 메모리 디바이스(504)는 지정된 양만큼 리퀘스트를 지연시킬 수 있다.
일부 구현예들에서, 메모리 디바이스(504)는 기록 직후 판독이 발행되지 않도록 구성될 수 있다(또는 이와 반대로 구성될 수 있다). 이런 경우, 메모리 디바이스(504)는 (이를 테면, 정해진 시간 기간 만큼) 이러한 판독 또는 기록을 자동으로 지연시킬 수 있다.
일부 양상들에서, 메모리 시스템(500)은 개시된 방식의 성능을 최적화시키기 위해 턴어라운드 이벤트에 앞서 프리(free) 리퀘스트 채널 타임슬롯들의 확률을 증가(이를 테면, 최대화)시키는 메모리 제어 프로토콜을 사용할 수 있다. 일부 양상들에서, 이는 RQ 버스상에 결정론적인(deterministic) 유휴 사이클들을 충분히 제공하는 프로토콜의 사용을 통해 달성될 수 있다. 예를 들어, 일반적으로 리퀘스트들과 데이터 전달들 간에 1:1 대응을 제공하며 이러한 리퀘스트들 및 데이터 전달들 간에 고정된 공간(spacing)을 제공하는 프로토콜을 사용할 때 유휴 사이클들로 리퀘스트들을 이동시키는 것은 상대적으로 쉬울 수 있다. 반대로, 리퀘스트들의 각각의 세트에 대해 가변 개수의 타임슬롯들을 사용하는 프로토콜을 사용할 때 유휴 사이클들로 리퀘스트들을 이동시키는 것은 보다 어려울 수 있으며, 이는 최적의 위치에 이용가능한 유휴 사이클이 항상 존재하는 것은 아니기 때문이다.
일부 양상들에서, 이용가능한 타임슬롯들의 개수는 메모리 디바이스를 액세스하기 위해 보다 적은(fewer) 리퀘스트 패킷들을 사용함으로써 증가될 수 있다. 예를 들어, 몇 개의 리퀘스트 명령들(이를 테면, 개별 활성화, 판독/기록 및 프리차지 패킷들)을 전송하기 보다, 프로토콜은 단일 명령으로서 리퀘스트를 전송할 수 있다. 여기서, 명령은 풀(full) 어드레스(이를 테면, 뱅크, 로우, 컬럼)를 포함할 수 있다. 또한, 명령은 임시 타이밍(implicit timing)(이를 테면, RAS-대-CAS 타이밍(tRCD), 프리차지-대-활성화 타이밍(tRP), 오토-프리차지)을 이용할 수 있다. 예로써, 오토-프리차지(이를 테면, 메모리 디바이스(504)는 판독 또는 기록의 마지막에 프리차지를 자동으로 발행)를 사용함으로써, 프리차지 명령들이 리퀘스트 버스를 통해 전송될 필요가 없다. 또 다른 예로써, 메모리 디바이스(504)는 단일 명령에 의해 제공되는 로우 어드레스를 취하고, 활성화 명령을 즉시 발행한 다음, 미리결정된 타이밍 파라미터(이를 테면, 5 사이클들)에 의해 컬럼을 지연시키고, 마지막에 오토-프리차지를 발행하도록 구성된 상태 머신을 포함할 수 있다. 이와 같은 동작들에 이용되는 임의의 타이밍 파라미터들은 미리한정되거나 또는 메모리 디바이스(504)에서 레지스터에 구성 및 저장될 수 있다.
또한, 메모리 시스템은 감소된 턴어라운드 노이즈 정책 지원을 제공하는 프로토콜을 사용할 수 있다. 예를 들어, 이러한 프로토콜은 WR 이후 RD 까지 TX에 유지(leave)될 수 있다.
따라서, 메모리 제어기(502)는 하나 이상의 상기 피처들을 지원하도록 구성될 수 있다. 예를 들어, 메모리 제어기(502)는 턴어라운드 이벤트에 앞서 프리 리퀘스트 채널 타임슬롯들의 확률을 최대화시키는 프로토콜에 대한 지원을 제공할 수 있다. 메모리 제어기(502)는 도입되는 턴어라운드 이벤트들을 검출하고 충돌들 없이 초기에 리퀘스트들을 전송하는 기능을 포함할 수 있다. 메모리 제어기(502)는 리퀘스트가 버퍼링되는지/지연되는지 여부, 얼마나 많은 사이클들이 지연되어야 하는지, 또는 즉시 발행되어야 하는지 여부를 메모리 디바이스(504)에 표시하는 기능을 포함할 수 있다.
유사하게, 임의의 연관된 메모리 디바이스들(또는 메모리 모듈들)은 하나 이상의 상기 피처들을 지원하도록 구성될 수 있다. 예를 들어, 메모리 디바이스(504)는 턴어라운드 이벤트에 앞서 프리 리퀘스트 채널 타임슬롯들의 확률을 최대화시키는 프로토콜에 대한 지원을 제공할 수 있다. 메모리 디바이스(504)는 드라이버 턴어라운드 윈도우 동안 수신된 리퀘스트들 없이 신뢰성있는 동작을 가능케하는 기능을 포함할 수 있다. 메모리 디바이스(504)는 버퍼링/지연되는 리퀘스트들과 즉시 발행되는 리퀘스트들을 구별하기 위한 기능을 포함할 수 있다. 메모리 디바이스(504)는 다수의 리퀘스트들의 선택적 버퍼링 및 리퀘스트들의 발행 이전에 적절한 리퀘스트들의 지연을 위한 기능을 포함할 수 있다.
바람직하게 본 발명의 설명들은 다양한 메모리 시스템 아키텍처들에서 사용된다. 예를 들어, 일부 실시예들은 완전히 상이한 메모리 아키텍처를 사용할 수 있다. 이러한 아키텍처는 예를 들어, 차동 명령/어드레스(C/A) 신호들 및 차동 데이터(DQ) 신호들을 이용할 수 있다.
일부 구현예들에서, 풀 C/A 채널(이를 테면, RQ QJTM)은 DQ 레이트에서 동작하는 신호 차동 링크 내에 제공될 수 있다. 예를 들어, C/A 신호들(이를 테면, 리퀘스트 신호들)의 시그널링 레이트는 DQ 신호들의 시그널링 레이트와 비교될 수 있다(이를 테면, 같을 수 있다). 이런 경우, 본 발명의 설명들이 (매우 작은 타이밍 또는 전압 마진을 가질 수 있는) 이러한 신호에서의 노이즈를 감소시키기 위해 바람직하게 이용될 수 있다. 또한, 단일 C/A는 채널 마다 제공될 수 있다. 이런 방식으로, 제어기에서의 오버헤드가 상당히 감소될 수 있다. 또한, C/A 및 DQ 채널들에 대해 유사한 회로 설계들이 이용될 수 있어, 전체 설계가 간략화된다. 일부 구현예들에서, 제어기는 C/A 채널에 대한 전송 위상을 교정할 수 있다.
리퀘스트 패킷은 본 발명의 설명에 따라 다양한 방식들로 구현될 수 있다. 예를 들어, 일부 실시예들에서, 32-비트 리퀘스트 패킷은 16G비트 생성을 통해 어드레스가능성(addressability)을 제공하고, 16Gbps에서 2나노초 타이밍 구성단위(granularity)를 제공하며, 뱅크/로우/컬럼 어드레스 비트들의 플렉시블 할당(flexible allocation)을 제공하는데 이용될 수 있다.
또한, 본 발명의 설명들은 확장형 메모리 아키텍쳐(scalable memory architecture)와 관련하여 사용될 수 있다. 이러한 확장성(scalability)은 용량성(capacity) 및 액세스 구성단위(access granularity)와 관련될 수 있다. 예를 들어, 4개의 C/A 링크들을 제공하는 제어기는 4개의 모든 C/A 링크들을 (이를 테면, 32 비트 폭(wide)의 DQ 버스를 갖는) 하나의 메모리 디바이스에 제공하도록 구성되거나, 2개의 C/A 링크들을 (이를 테면, 16 비트 폭의 DQ 버스를 갖는) 2개의 메모리 디바이스들 각각에 제공하도록 구성되거나, 또는 하나의 C/A 링크를 (이를 테면, 8 비트 폭의 DQ 버스를 갖는) 4개의 메모리 디바이스들 각각에 제공하도록 구성될 수 있다.
일부 구현예들에서, 본 발명의 설명은 다이나믹 포인트-대-포인트(DPP) 메모리 아키텍쳐와 관련하여 사용될 수 있다. 이러한 메모리 아키텍쳐의 예는 미국 특허 출원 공보 제 2004/0221106호에 개시되며, 이는 참조로 본 발명에 통합된다.
일부 구현예들에서, 본 발명의 설명들은 일정한 또는 낮은 액세스 구성단위를 유지하기 위한 방안들(provisions)로 용량 스케일링(capacity scaling)을 허용하면서, 유사한 포인트-대-포인트 토폴로지들 및 시그널링 레이트들을 사용함으로써 RQ 대역폭이 데이터 (DQ) 대역폭을 스케일링하도록 허용하는 구성가능한(configurable) 포인트-대-포인트 아키텍쳐와 관련하여 사용될 수 있다. 이러한 아키텍쳐의 예는 미국 가특허 출원 제 60/988,826호, 대리인 도켓 넘버 RA608.Prov1.US에 개시되며, 이는 본 발명에 참조로 통합된다.
본 발명의 설명들은 광범위한 형태들로 구현될 수 있으며, 이들 중 일부는 개시된 실시예들과 상당히 다르게 표현될 수 있다. 결과적으로, 본 발명에 개시되는 특정 구조 및 기능적 세부사항은 단지 대표적인 것으로 본 발명의 범주를 제한하고자 하는 것은 아니다. 예를 들어, 본 발명의 설명들에 기초하여, 당업자들은 본 발명에 개시된 다양한 구조 및 기능적 세부사항들이 임의의 다른 구조 또는 기능적 세부사항들과 무관하게 실시예에 통합될 수 있다는 것을 인식해야 한다. 따라서, 임의의 개시된 실시예(들)에 개시되는 임의의 수의 구조 또는 기능적 세부사항들을 사용하여 장치가 구현되거나 방법이 실행될 수 있다. 또한, 개시된 임의의 실시예(들)에 개시된 것 이외의 구조 또는 기능적 세부사항들 또는 다른 추가의 구조 또는 기능적 세부사항들을 사용하여 장치가 구현되거나 방법이 실행될 수 있다.
본 발명에 개시된 것처럼 제어기 디바이스(이를 테면, 제어기 기능이 통합되는 집적회로) 및 메모리 디바이스(이를 테면, 메모리 코어가 통합되는 집적회로)는 다양한 형태들을 취할 수 있다. 예를 들어, 제어기 디바이스는 제어기 칩, 제어기 기능을 포함하는 프로세서 칩, 또는 소정의 다른 적절한 디바이스를 포함할 수 있다. 일부 양상들에서, 메모리 디바이스는 총체적으로 메모리 어레이 또는 메모리 어레이의 일부를 제공할 수 있는 저장 셀들의 세트를 포함하는 반도체 집적회로 디바이스를 포함할 수 있다. 이러한 메모리 디바이스들의 예들로는 휘발성 메모리 디바이스들, 비휘발성 메모리 디바이스들, DRAM들, SRAM들, 및 플래시 메몰 디바이스들이 포함된다.
일부 구현예들에서, 본 발명에 개시된 메모리 디바이스 기능은 메모리 모듈의 메모리 버퍼 콤포넌트에서 구현될 수 있다. 일부 양상들에서, 메모리 버퍼는 메모리 모듈의 메모리 인터페이스 콘택들과 메모리 모듈상의 각각의 메모리 디바이스에 대한 시그널링 경로 사이에 결합되는 집적회로를 포함할 수 있다. 메모리 버퍼 구조 및 기능의 예들은 미국 특허 출원 공보 2007/0070669호에 개시되며, 이는 본 발명에 참조로 통합된다.
본 발명에 설명된 것처럼 메모리 디바이스는 다양한 애플리케이션들에 이용될 수 있다. 예를 들어, 이러한 메모리 시스템은 컴퓨터 그래픽 카드, 비디오게임 콘솔, 프린터, 퍼스널 컴퓨터, 서버 또는 데이터 저장기를 이용하는 소정의 다른 장치에 통합될 수 있다.
본 발명에 개시되는 다양한 구조들 및 기능들은 다양한 방식으로 다양한 장치들을 사용하여 구현될 수 있다. 예를 들어, 디바이스는 프로세서, 제어기, 상태 머신, 로직, 또는 이러한 콤포넌트들 중 하나 이상의 일부 조합물과 같은 다양한 하드웨어 콤포넌트들에 의해 구현될 수 있다.
일부 구현예들에서, 명령들을 포함하는 코드(이를 테면, 소프트웨어, 펌웨어, 미들웨어, 등)는 개시된 하나 이상의 기능들 또는 콤포넌트들을 구현하기 위해 하나 이상의 프로세싱 디바이스들 상에서 실행될 수 있다. 코드 및 연관된 콤포넌트들(이를 테면, 코드에 의해 또는 코드를 실행하기 위한 데이터 구조들 또는 다른 콤포넌트들)은 (이를 테면, 통상적으로 컴퓨터-판독가능 매체로 불리는) 프로세싱 디바이스에 의해 판독될 수 있는 적절한 데이터 메모리에 저장될 수 있다.
본 발명에 개시된 프로세스들의 블록들의 열거된 순서는 단순히 적절한 방안에 대한 예이다. 따라서, 이러한 블록들과 연관된 동작들은 본 발명의 범주내에서 유지되는 동안 재정렬될 수 있다. 유사하게, 첨부되는 방법 청구항들은 샘플 순서의 동작들을 제공하며 제시되는 특정 순서로 반드시 제한될 필요는 없다.
본 발명에 개시되는 콤포넌트들 및 기능들은 다양한 방식으로 접속 또는 결합될 수 있다. 이를 수행하는 방식은 부분적으로, 콤포넌트들이 다른 콤포넌트들과 구별되는지 여부 및 콤포넌트들이 다른 콤포넌트들과 어떻게 구별되는지 여부에 연관된다. 일부 구현예들에서, 도면들에서 리드 라인(lead line)들로 표시된 접속들 또는 결합들의 일부는 집적회로에서, 회로 보드 상에 있을 수 있으며 혹은 이산 와이어(discrete wire)들로서, 또는 소정의 다른 방식으로 구현될 수 있다.
본 발명에 개시된 신호들은 다양한 형태들을 취할 수 있다. 예를 들어, 일부 구현예들에서, 신호는 와이어를 통해 전송되는 전기 신호들, 광섬유 또는 에어(air)와 같은 광학 매체를 통해 전송되는 광 펄스들, 또는 에어 등과 같은 매체를 통해 전송되는 RV 파들을 포함할 수 있다. 또한, 다수의 신호들이 본 발명에서 신호로서 총체적으로 간주될 수 있다. 앞서 개시된 신호들은 데이터 형태를 취할 수 있다. 예를 들어, 일부 실시예들에서, 애플리케이션 프로그램은 신호를 다른 애플리케이션 프로그램으로 전송할 수 있다. 이러한 신호는 데이터 메모리에 저장될 수 있다.
또한, "제 1", "제 2" 등과 같은 표시를 사용하는 본 발명의 부재(element)에 대한 임의의 참조는 이러한 부재들의 양 또는 순서를 제한하고자하는 것이 아님을 이해해야 한다. 오히려, 이러한 표시들은 본 발명에서 2개 이상의 부재들 또는 부재의 인스턴스들(instances) 간을 구별하는 일반적 방식으로서 사용될 수 있다. 따라서, 제 1 부재 및 제 2 부재에 대한 참조는 단지 2개의 부재들이 본 발명에 사용될 수 있다거나 혹은 일부 방식에서 제 1 부재가 제 2 부재를 선행해야 한다는 것을 의미하는 것은 아니다. 또한, 별다른 언급이 없다면, 부재들의 세트는 하나 이상의 부재들을 포함할 수 있다.
특정 샘플 실시예들이 첨부되는 도면들을 참조로 앞서 상세히 도시 및 개시되었지만, 이러한 실시예들은 단지 예시를 위한 것으로 본 발명의 설명을 제한하고자 하는 것이 아님이 인식될 것이다. 특히, 본 발명의 설명들은 광범위한 장치들 및 방법들에 적용될 수 있다는 것을 인식해야 한다. 따라서, 본 발명의 범주를 이탈하지 않고, 다양한 변형들이 본 발명에 설명되고 예시된 다른 실시예들에 대해서 구성될 수 있다는 것이 인식될 것이다. 이와 관련하여, 본 발명의 설명들은 개시된 특정 실시예들 또는 배열들로 제한되는 것이 아니라, 오히려 첨부되는 청구항들이 범주내에서 임의의 변화들, 조작들 또는 변형들을 포함하도록 의도된다.

Claims (54)

  1. 양방향성(bidirectional) 데이터 신호 경로와 연관된 드라이버 턴어라운드(driver turnaround) 시간 기간의 타이밍을 결정하는 단계; 및
    상기 결정된 타이밍에 기초하여 메모리 리퀘스트(memory request)의 전송을 스케줄링하는 단계
    를 포함하며, 상기 전송을 스케줄링하는 단계는 상기 메모리 리퀘스트에 대해 상기 드라이버 턴어라운드 시간 기간과 일치하지 않는 전송 시간을 선택하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 전송을 스케줄링하는 단계는,
    리퀘스트 채널의 유휴 타임슬롯(idle timeslot)을 식별하는 단계 ― 상기 유휴 타임슬롯의 타이밍은 상기 드라이버 턴어라운드 시간 기간을 선행(precede)함―; 및
    상기 유휴 타임슬롯 동안 상기 메모리 리퀘스트의 전송을 스케줄링하는 단계
    를 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 메모리 리퀘스트가 지연될 것이라는 표시(indication)를 전송하는 단계를 더 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 메모리 리퀘스트는 명령(command) 및 어드레스 정보를 포함하는, 방법.
  5. 제 1 항에 있어서,
    상기 드라이버 턴어라운드 시간 기간은,
    상기 양방향성 데이터 신호 경로 상에서의 판독에서 기록으로의 전환; 또는
    상기 양방향성 데이터 신호 경로 상에서의 기록에서 판독으로의 전환
    과 관련되는, 방법.
  6. 양방향성 데이터 신호 경로와 연관된 드라이버 턴어라운드 시간 기간의 타이밍을 결정하도록 구성된 턴어라운드 이벤트 검출기; 및
    상기 결정된 타이밍에 기초하여 메모리 리퀘스트의 전송을 스케줄링하도록 구성된 스케줄러(scheduler)
    를 포함하며, 상기 스케줄러는 상기 메모리 리퀘스트에 대해 상기 드라이버 턴어라운드 시간 기간과 일치하지 않는 전송 시간을 선택하도록 추가로 구성되는, 장치.
  7. 제 6 항에 있어서,
    상기 스케줄러는,
    리퀘스트 채널의 유휴 타임슬롯을 식별하고; 그리고
    상기 유휴 타임슬롯 동안 상기 메모리 리퀘스트의 전송을 스케줄하도록
    추가로 구성되며, 상기 유휴 타임슬롯의 타이밍은 상기 드라이버 턴어라운드 시간 기간을 선행(precede)하는, 장치.
  8. 제 6 항에 있어서,
    상기 메모리 리퀘스트가 지연될 것이라는 표시를 전송하도록 구성된 리퀘스트 지연 식별기를 더 포함하는, 장치.
  9. 제 6 항에 있어서,
    상기 메모리 리퀘스트는 명령 및 어드레스 정보를 포함하는, 장치.
  10. 제 6 항에 있어서,
    상기 드라이버 턴어라운드 시간 기간은,
    상기 양방향성 데이터 신호 경로 상에서의 판독에서 기록으로의 전환; 또는
    상기 양방향성 데이터 신호 경로 상에서의 기록에서 판독으로의 전환
    과 관련되는, 장치.
  11. 양방향성 데이터 신호 경로와 연관된 드라이버 턴어라운드 시간 기간의 타이밍을 결정하기 위한 수단; 및
    상기 결정된 타이밍에 기초하여 메모리 리퀘스트의 전송을 스케줄링하기 위한 수단
    을 포함하며, 상기 스케줄링하기 위한 수단은 상기 메모리 리퀘스트에 대해 상기 드라이버 턴어라운드 시간 기간과 일치하지 않는 전송 시간을 선택하도록 구성되는, 장치.
  12. 제 11 항에 있어서,
    상기 스케줄링하기 위한 수단은,
    리퀘스트 채널의 유휴 타임슬롯을 식별하고; 그리고
    상기 유휴 타임슬롯 동안 상기 메모리 리퀘스트의 전송을 스케줄하도록
    추가로 구성되며, 상기 유휴 타임슬롯의 타이밍은 상기 드라이버 턴어라운드 시간 기간을 선행하는, 장치.
  13. 제 11 항에 있어서,
    상기 메모리 리퀘스트가 지연될 것이라는 표시를 전송하기 위한 수단을 더 포함하는, 장치.
  14. 제 11 항에 있어서,
    상기 메모리 리퀘스트는 명령 및 어드레스 정보를 포함하는, 장치.
  15. 제 11 항에 있어서,
    상기 드라이버 턴어라운드 시간 기간은,
    상기 양방향성 데이터 신호 경로 상에서의 판독에서 기록으로의 전환; 또는
    상기 양방향성 데이터 신호 경로 상에서의 기록에서 판독으로의 전환
    과 관련되는, 장치.
  16. 양방향성 신호 경로와 연관된 턴어라운드 이벤트와 일치하지 않게 스케줄된 메모리 리퀘스트를 수신하는 단계; 및
    상기 메모리 리퀘스트를 지연시키는 단계
    를 포함하는, 방법.
  17. 제 16 항에 있어서,
    상기 메모리 리퀘스트는 상기 턴어라운드 이벤트 이전에 수신되는, 방법.
  18. 제 16 항에 있어서,
    상기 메모리 리퀘스트가 지연될 것이라는 표시(indication)를 수신하는 단계를 더 포함하며, 상기 지연시키는 단계는 상기 표시에 기초하는, 방법.
  19. 제 16 항에 있어서,
    상기 지연시키는 단계는 미리한정된(predefined) 지연 기간에 기초하는, 방법.
  20. 제 16 항에 있어서,
    상기 턴어라운드 이벤트의 타이밍을 결정하는 단계를 더 포함하며, 상기 지연시키는 단계는 상기 결정된 타이밍에 기초하는, 방법.
  21. 제 16 항에 있어서,
    상기 양방향성 신호 경로는 데이터 신호 경로를 포함하는, 방법.
  22. 제 16 항에 있어서,
    상기 턴어라운드 이벤트는 상기 양방향성 신호 경로에 대한 드라이버 턴어라운드 시간 기간과 관련되는, 방법.
  23. 양방향성 신호 경로와 연관된 턴어라운드 이벤트와 일치하지 않게 스케줄된 메모리 리퀘스트를 수신하도록 구성된 메모리 액세스 제어기; 및
    상기 메모리 리퀘스트를 지연시키도록 구성된 리퀘스트 지연기(request delayer)
    를 포함하는, 장치.
  24. 제 23 항에 있어서,
    상기 메모리 리퀘스트는 상기 턴어라운드 이벤트 이전에 수신되는, 장치.
  25. 제 23 항에 있어서,
    상기 메모리 리퀘스트가 지연될 것이라는 표시를 수신하도록 구성된 리퀘스트 지연 표시기를 더 포함하며, 상기 리퀘스트 지연기는 상기 표시에 기초하여 지연되도록 추가로 구성되는, 장치.
  26. 제 23 항에 있어서,
    상기 리퀘스트 지연기는 미리한정된 지연 기간에 기초하여 지연되도록 추가로 구성되는, 장치.
  27. 제 23 항에 있어서,
    상기 턴어라운드 이벤트의 타이밍을 결정하도록 구성된 턴어라운드 이벤트 검출기를 더 포함하며, 상기 리퀘스트 지연기는 상기 결정된 타이밍에 기초하여 지연되도록 추가로 구성되는, 장치.
  28. 제 23 항에 있어서,
    상기 양방향성 신호 경로는 데이터 신호 경로를 포함하는, 장치.
  29. 제 23 항에 있어서,
    상기 턴어라운드 이벤트는 상기 양방향성 신호 경로에 대한 드라이버 턴어라운드 시간 기간과 관련되는, 장치.
  30. 양방향성 신호 경로와 연관된 턴어라운드 이벤트와 일치하지 않게 스케줄된 메모리 리퀘스트를 수신하기 위한 수단; 및
    상기 메모리 리퀘스트를 지연시키기 위한 수단
    을 포함하는, 장치.
  31. 제 30 항에 있어서,
    상기 메모리 리퀘스트는 상기 턴어라운드 이벤트 이전에 수신되는, 장치.
  32. 제 30 항에 있어서,
    상기 메모리 리퀘스트가 지연될 것이라는 표시를 수신하기 위한 수단을 더 포함하며, 상기 지연은 상기 표시에 기초하는, 장치.
  33. 제 30 항에 있어서,
    상기 지연은 미리한정된 지연 기간에 기초하는, 장치.
  34. 제 30 항에 있어서,
    상기 턴어라운드 이벤트의 타이밍을 결정하기 위한 수단을 더 포함하며, 상기 지연은 상기 결정된 타이밍에 기초하는, 장치.
  35. 제 30 항에 있어서,
    상기 양방향성 신호 경로는 데이터 신호 경로를 포함하는, 장치.
  36. 제 30 항에 있어서,
    상기 턴어라운드 이벤트는 상기 양방향성 신호 경로에 대한 드라이버 턴어라운드 시간 기간과 관련되는, 장치.
  37. 양방향성 데이터 신호 경로와 연관된 드라이버 턴어라운드 시간 기간의 타이밍을 결정하는 단계;
    상기 결정된 타이밍에 기초하여 메모리 리퀘스트의 전송을 스케줄링하는 단계 ―상기 전송을 스케줄링하는 단계는 상기 메모리 리퀘스트에 대해 상기 드라이버 턴어라운드 시간 기간과 일치하지 않는 전송 시간을 선택하는 단계를 포함함 ―
    상기 스케줄링에 기초하여 상기 메모리 리퀘스트를 전송하는 단계;
    상기 메모리 리퀘스트를 수신하는 단계; 및
    상기 수신된 메모리 리퀘스트를 지연시키는 단계
    를 포함하는, 방법.
  38. 제 37 항에 있어서,
    상기 전송을 스케줄링하는 단계는,
    리퀘스트 채널의 유휴 타임슬롯을 식별하는 단계 ―상기 유휴 타임슬롯의 타이밍은 상기 드라이버 턴어라운드 시간 기간을 선행함―; 및
    상기 유휴 타임슬롯 동안 상기 메모리 리퀘스트의 전송을 스케줄링하는 단계
    를 포함하는, 방법.
  39. 제 37 항에 있어서,
    상기 메모리 리퀘스트가 지연될 것이라는 표시를 제공하는 단계를 더 포함하며, 상기 지연시키는 단계는 상기 표시에 기초하는, 방법.
  40. 제 37 항에 있어서,
    상기 메모리 리퀘스트는 상기 드라이버 턴어라운드 시간 기간이 발생하기 이전에 수신되는, 방법.
  41. 제 37 항에 있어서,
    상기 지연시키는 단계는 미리한정된 지연 기간에 기초하는, 방법.
  42. 제 37 항에 있어서,
    상기 지연시키는 단계는 상기 결정된 타이밍에 기초하는, 방법.
  43. 메모리 시스템으로서,
    메모리 제어기; 및
    메모리 디바이스
    를 포함하며, 상기 메모리 제어기는,
    양방향성 데이터 신호 경로와 관련된 드라이버 턴어라운드 시간 기간의 타이밍을 결정하도록 구성된 턴어라운드 이벤트 검출기; 및
    상기 결정된 타이밍에 기초하여 메모리 리퀘스트의 전송을 스케줄링하도록 구성된 스케줄러 ―상기 스케줄러는 상기 메모리 리퀘스트에 대해 상기 드라이버 턴어라운드 시간 기간과 일치하지 않는 전송 시간을 선택하도록 추가로 구성됨―
    를 포함하며, 상기 메모리 디바이스는,
    상기 메모리 리퀘스트를 수신하도록 구성된 메모리 액세스 제어기; 및
    상기 수신된 메모리 리퀘스트를 지연시키도록 구성된 리퀘스트 지연기
    를 포함하는, 메모리 시스템.
  44. 제 43 항에 있어서,
    상기 스케줄러는,
    리퀘스트 채널의 유휴 타임슬롯을 식별하고; 그리고
    상기 유휴 타임슬롯 동안 상기 메모리 리퀘스트의 전송을 스케줄하도록,
    추가로 구성되며, 상기 유휴 타임슬롯의 타이밍은 상기 드라이버 턴어라운드 시간 기간을 선행하는, 메모리 시스템.
  45. 제 43 항에 있어서,
    상기 메모리 제어기는 상기 메모리 리퀘스트가 지연될 것이라는 표시를 제공하도록 구성된 리퀘스트 지연 표시기를 더 포함하며;
    상기 리퀘스트 지연기는 상기 표시에 기초하여 지연되도록 추가로 구성되는, 메모리 시스템.
  46. 제 43 항에 있어서,
    상기 메모리 리퀘스트는 상기 드라이버 턴어라운드 시간 기간이 발생하기 이전에 수신되는, 메모리 시스템.
  47. 제 43 항에 있어서,
    상기 리퀘스트 지연기는 미리한정된 지연 기간에 기초하여 지연되도록 추가로 구성되는, 메모리 시스템.
  48. 제 43 항에 있어서,
    상기 메모리 디바이스는 상기 드라이버 턴어라운드 시간 기간의 타이밍을 결정하도록 구성된 또 다른 턴어라운드 이벤트 검출기를 더 포함하며; 그리고
    상기 리퀘스트 지연기는 상기 또 다른 턴어라운드 이벤트 검출기에 의해 결정된 상기 타이밍에 기초하여 지연되도록 추가로 구성되는, 메모리 시스템.
  49. 메모리 시스템으로서,
    메모리 제어기; 및
    메모리 디바이스
    를 포함하며, 상기 메모리 제어기는,
    양방향성 데이터 신호 경로와 관련된 드라이버 턴어라운드 시간 기간의 타이밍을 결정하기 위한 수단; 및
    상기 결정된 타이밍에 기초하여 메모리 리퀘스트의 전송을 스케줄링하기 위한 수단 ―상기 스케줄링하기 위한 수단은 상기 메모리 리퀘스트에 대해 상기 드라이버 턴어라운드 시간 기간과 일치하지 않는 전송 시간을 선택하도록 구성됨―
    를 포함하며, 상기 메모리 디바이스는,
    상기 메모리 리퀘스트를 수신하기 위한 수단; 및
    상기 수신된 메모리 리퀘스트를 지연시키기 위한 수단
    을 포함하는, 메모리 시스템.
  50. 제 49 항에 있어서,
    상기 스케줄링하기 위한 수단은,
    리퀘스트 채널의 유휴 타임슬롯을 식별하고; 그리고
    상기 유휴 타임슬롯 동안 상기 메모리 리퀘스트의 전송을 스케줄하도록,
    추가로 구성되며, 상기 유휴 타임슬롯의 타이밍은 상기 드라이버 턴어라운드 시간 기간을 선행하는, 메모리 시스템.
  51. 제 49 항에 있어서,
    상기 메모리 제어기는 상기 메모리 리퀘스트가 지연될 것이라는 표시를 제공하기 위한 수단을 더 포함하며;
    상기 지연시키기 위한 수단은 상기 표시에 기초하여 지연되도록 추가로 구성되는, 메모리 시스템.
  52. 제 49 항에 있어서,
    상기 메모리 리퀘스트는 상기 드라이버 턴어라운드 시간 기간이 발생하기 이전에 수신되는, 메모리 시스템.
  53. 제 49 항에 있어서,
    상기 지연시키기 위한 수단은 미리한정된 지연 기간에 기초하여 지연되도록 구성되는, 메모리 시스템.
  54. 제 49 항에 있어서,
    상기 메모리 디바이스는 상기 드라이버 턴어라운드 시간 기간의 타이밍을 결정하기 위한 또 다른 수단을 더 포함하며; 그리고
    상기 지연시키기 위한 수단은 상기 또 다른 턴어라운드 이벤트 검출기에 의해 결정된 상기 타이밍에 기초하여 지연되도록 구성되는, 메모리 시스템.
KR1020107012483A 2007-11-19 2008-11-19 턴라운드 이벤트에 기초한 스케줄링 KR20100098622A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US98887807P 2007-11-19 2007-11-19
US60/988,878 2007-11-19

Publications (1)

Publication Number Publication Date
KR20100098622A true KR20100098622A (ko) 2010-09-08

Family

ID=40385138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107012483A KR20100098622A (ko) 2007-11-19 2008-11-19 턴라운드 이벤트에 기초한 스케줄링

Country Status (7)

Country Link
US (1) US20100293343A1 (ko)
EP (1) EP2223224B1 (ko)
JP (1) JP2011503753A (ko)
KR (1) KR20100098622A (ko)
CN (1) CN101868788B (ko)
AT (1) ATE511676T1 (ko)
WO (1) WO2009067496A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101700492B1 (ko) * 2012-03-26 2017-01-26 인텔 코포레이션 에러 검출 코딩된 트랜잭션들을 이용한 메모리 디바이스들에 대한 타이밍 최적화
US9754648B2 (en) 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9740485B2 (en) 2012-10-26 2017-08-22 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9734097B2 (en) 2013-03-15 2017-08-15 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
US9727493B2 (en) 2013-08-14 2017-08-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area
CN104866238B (zh) * 2015-05-25 2018-12-14 华为技术有限公司 访问请求调度方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7187572B2 (en) * 2002-06-28 2007-03-06 Rambus Inc. Early read after write operation memory device, system and method
US5819027A (en) * 1996-02-28 1998-10-06 Intel Corporation Bus patcher
US6272600B1 (en) * 1996-11-15 2001-08-07 Hyundai Electronics America Memory request reordering in a data processing system
US5903916A (en) * 1996-12-16 1999-05-11 Intel Corporation Computer memory subsystem and method for performing opportunistic write data transfers during an access latency period within a read or refresh operation
US7610447B2 (en) * 2001-02-28 2009-10-27 Rambus Inc. Upgradable memory system with reconfigurable interconnect
US6889304B2 (en) * 2001-02-28 2005-05-03 Rambus Inc. Memory device supporting a dynamically configurable core organization
US6785793B2 (en) * 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
US7149841B2 (en) * 2003-03-31 2006-12-12 Micron Technology, Inc. Memory devices with buffered command address bus
US8595459B2 (en) * 2004-11-29 2013-11-26 Rambus Inc. Micro-threaded memory
US7464225B2 (en) * 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
WO2007095080A2 (en) * 2006-02-09 2007-08-23 Metaram, Inc. Memory circuit system and method
US7613883B2 (en) * 2006-03-10 2009-11-03 Rambus Inc. Memory device with mode-selectable prefetch and clock-to-core timing
JP2008033657A (ja) * 2006-07-28 2008-02-14 Toshiba Corp メモリ制御装置および情報処理装置並びにメモリ制御方法

Also Published As

Publication number Publication date
CN101868788B (zh) 2012-12-26
JP2011503753A (ja) 2011-01-27
CN101868788A (zh) 2010-10-20
WO2009067496A1 (en) 2009-05-28
EP2223224B1 (en) 2011-06-01
US20100293343A1 (en) 2010-11-18
EP2223224A1 (en) 2010-09-01
WO2009067496A4 (en) 2009-07-16
ATE511676T1 (de) 2011-06-15

Similar Documents

Publication Publication Date Title
US7496777B2 (en) Power throttling in a memory system
US6795899B2 (en) Memory system with burst length shorter than prefetch length
US7673111B2 (en) Memory system with both single and consolidated commands
JP5570619B2 (ja) 異なるメモリ種類にアクセスする異なる速度での時分割多重化
US7142461B2 (en) Active termination control though on module register
US8346998B2 (en) System and method for transmitting data packets in a computer system having a memory hub architecture
US20170017586A1 (en) Memory buffering system that improves read/write performance and provides low latency for mobile systems
EP2223224B1 (en) Scheduling based on turnaround event
US9152585B2 (en) Memory interface with reduced read-write turnaround delay
US11556272B2 (en) System and method for NAND multi-plane and multi-die status signaling
KR100910660B1 (ko) 메모리 컨트롤러, 이것을 포함하는 시스템 및 방법
US9324394B2 (en) Strobe signal generation device and memory apparatus using the same
US9263106B2 (en) Efficient command mapping scheme for short data burst length memory devices
CN111816627B (zh) 一种存储封装芯片及其引脚复用方法
CN1447973A (zh) 高速存储器总线上的同步写数据
US20040059840A1 (en) Method and apparatus for the dynamic scheduling of device commands
US6717832B2 (en) Method for data communication between a plurality of semiconductor modules and a controller module and semiconductor module configured for that purpose
US6701407B1 (en) Multiprocessor system with system modules each having processors, and a data transfer method therefor
US20070047372A1 (en) Semiconductor memory system and semiconductor memory chip
US20070005834A1 (en) Memory chips with buffer circuitry
KR100819968B1 (ko) 반도체 메모리 시스템 및 반도체 메모리 칩
KR100331557B1 (ko) 순차적 전송 기능을 갖는 출력단 및 이를 내장하는 반도체 메모리 장치를 구비하는 메모리 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E601 Decision to refuse application