KR20140147898A - 메모리 액세스 지연을 트레이닝하기 위한 방법 및 장치 - Google Patents
메모리 액세스 지연을 트레이닝하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR20140147898A KR20140147898A KR1020147033663A KR20147033663A KR20140147898A KR 20140147898 A KR20140147898 A KR 20140147898A KR 1020147033663 A KR1020147033663 A KR 1020147033663A KR 20147033663 A KR20147033663 A KR 20147033663A KR 20140147898 A KR20140147898 A KR 20140147898A
- Authority
- KR
- South Korea
- Prior art keywords
- signal
- data strobe
- enable signal
- data
- strobe signal
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1093—Input synchronization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1066—Output synchronization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
- G11C7/222—Clock generating, synchronizing or distributing circuits within memory device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Memory System (AREA)
- Dram (AREA)
Abstract
메모리 서브시스템에서 데이터 스트로브 신호를 인에이블하는 지연을 트레이닝하기 위한 각종 방법 및 장치 실시예가 개시된다. 일 실시예에서, 시스템은 데이터 스트로브 신호를 수신하도록 구성된 메모리 제어기를 포함한다. 메모리 제어기는 트레이닝 회로를 포함한다. 트레이닝 회로는 데이터 입력에서 데이터 스트로브 신호를 수신하고 클록 입력에서 인에이블 신호를 수신하도록 연결된 제1 저장 회로, 및 제1 플립-플롭으로부터 수신된 출력 신호에 기초하여, 인에이블 신호의 선언이 데이터 스트로브 신호에 있는 프리앰블 지시값과 일치할 때까지 인에이블 신호의 위상을 조절하도록 구성된 트레이닝 유닛을 포함한다.
Description
본 발명은 컴퓨터 시스템에 관한 것으로, 보다 상세하게는, 컴퓨터 시스템에서 메모리의 판독을 동기화하는데 사용되는 신호에 대한 지연 시간을 트레이닝하는 것에 관한 것이다.
메모리로부터 데이터를 적절히 판독하기 위해서는, 데이터가 유효한 시간을 결정하는 것이 중요한 인자이다. 컴퓨터 시스템 성능을 최적화하기 위하여 이 값을 최소화하는 것이 요구될 수 있다. 메모리로부터 수신된 데이터를 판독할 수 있는 최적의 시간을 결정하기 위해 트레이닝 과정이 수행될 수 있다.
각종 유형의 DDR(double date rate) 메모리, 예를 들어 DDR, DDR2 및 DDR3에서, 데이터 스트로브 신호(data strobe signal)는 판독 동작 동안 메모리로부터 데이터와 함께 리턴될 수 있다. 데이터 스트로브 신호는 데이터가 유효한지를 나타내는 것뿐만 아니라 메모리 제어기에 있는 수신기에서 데이터를 동기화하는데 사용될 수 있는 소스 동기 클록 신호이다. 올바른 타이밍을 보장하기 위해 데이터 스트로브 신호를 트레이닝하는 것이 시스템 동작의 시작 시에 수행될 수 있다.
DDR 데이터 스트로브의 트레이닝을 수행하는 하나의 방법은 시드(seed)로 알려진 낮은 동작 주파수에서 판독을 수행하는 것으로 시작한다. 트레이닝 과정은 최적의 시간을 결정하는 일련의 판독을 수행하여 데이터 스트로브 신호를 통해 시드로 알려진 제1 주파수에서 리턴된 데이터를 관찰할 수 있다. 이 시드는 컴퓨터 시스템의 설계 위상 동안 실험실에서 수행되는 특성(characterization)에 기초하여 결정될 수 있다. 이 트레이닝은 데이터 스트로브 신호를 인에이블하는 최적의 시간을 결정할 때까지 상이한 주파수에서 수행될 수 있다. 오리지널 주파수에서 최종 트레이닝된 최적의 시간을 사용하여 그 다음 높은 주파수에서 후속적으로 트레이닝하기 위한 대략적인 시작 시간을 계산할 수 있다. 최종 트레이닝된 제2 값을 사용하여 더 높은 제3 주파수에서 트레이닝하기 위한 대략적인 시작 시간을 계산할 수 있고, 이와 같이 계속될 수 있다. 더 낮은 주파수에서 트레이닝된 시간을 사용하여 더 높은 주파수에서 트레이닝하기 위한 시작 시간을 결정하는 이 방법은 정상 동작에 사용되는 모든 주파수를 트레이닝할 때까지 다수회 반복될 수 있다.
데이터 스트로브 신호를 인에이블하는 지연을 트레이닝하는 각종 방법 및 장치 실시예가 개시된다. 일 실시예에서, 시스템은 데이터 스트로브 신호를 수신하도록 구성된 메모리 제어기를 포함한다. 메모리 제어기는 트레이닝 회로를 포함한다. 이 트레이닝 회로는 데이터 입력에서 데이터 스트로브 신호를 수신하고 클록 입력에서 인에이블 신호를 수신하도록 연결된 제1 저장 회로, 및 이 제1 저장 회로로부터 수신된 출력 신호에 기초하여, 인에이블 신호의 선언(assertion)이 데이터 스트로브 신호에 있는 프리앰블 지시값과 일치할 때까지 인에이블 신호의 위상을 조절하도록 구성된 트레이닝 유닛을 포함한다.
일 실시예에서, 방법은 메모리로부터 수신된 데이터 스트로브 신호에 대하여 인에이블 신호의 위상을 조절하는 단계를 포함한다. 이 위상은 인에이블 신호의 선언이 데이터 스트로브 신호에 있는 프리앰블 지시값과 일치할 때까지 조절될 수 있다. 조절하는 단계는 지연 동기 루프(delay locked loop: DLL)의 지연을 조절하는 것에 의해 달성될 수 있다. 본 방법은 이 지연의 지시값을 레지스터에 저장하는 단계를 더 포함한다.
메모리 서브시스템의 일 실시예는 메모리 제어기에 연결된 메모리를 포함한다. 이 메모리 제어기는 판독 요청을 메모리에 송신하도록 구성된다. 메모리는, 이 판독 요청에 응답하여, 데이터 및 데이터 스트로브 신호를 메모리 제어기에 제공하도록 구성된다. 메모리 제어기는 인에이블 신호의 선언이 데이터 스트로브 신호에 있는 프리앰블 지시값과 일치할 때까지 데이터 스트로브 신호에 대해 인에이블 신호의 위상을 조절하도록 구성된 트레이닝 유닛을 포함하며, 상기 조절하는 동작은 지연 동기 루프(DLL)의 지연을 조절하는 동작을 포함한다. 메모리 제어기는 이 지연의 지시값을 레지스터에 저장하도록 더 구성된다.
본 발명의 다른 측면은 이하에 간략히 설명된 첨부 도면을 참조하여 이하 상세한 설명을 판독하면 보다 명백해질 것이다.
도 1은 처리 유닛, 디스플레이, 주변 버스, 메모리 및 메모리 제어기를 포함하는 시스템의 블록도;
도 2는 트레이닝 유닛을 포함하는 메모리 제어기의 일 실시예의 블록도;
도 3은 데이터 스트로브 신호에 대해 인에이블 신호의 지연을 트레이닝하는 방법의 일 실시예를 도시하는 타이밍도;
도 4는 데이터 스트로브 신호에 대해 인에이블 신호의 지연을 트레이닝하는 방법의 일 실시예를 도시하는 흐름도;
도 5는 컴퓨터 판독가능한 캐리어 매체의 일 실시예의 블록도.
본 발명은 각종 변형과 대안적인 형태를 구비할 수 있으나, 본 특정 실시예는 단지 예로서 도면에 도시되고 본 명세서에 상세히 설명된다. 그러나, 첨부 도면 및 그 상세한 설명은 본 발명을 개시된 특정 형태로 제한하려고 의도된 것이 아니고, 본 발명은 첨부된 청구범위에 의해 한정된 본 발명의 사상과 범위 내에 있는 모든 변형, 균등물 및 대안물을 포함하는 것으로 의도된 것으로 이해된다.
도 1은 처리 유닛, 디스플레이, 주변 버스, 메모리 및 메모리 제어기를 포함하는 시스템의 블록도;
도 2는 트레이닝 유닛을 포함하는 메모리 제어기의 일 실시예의 블록도;
도 3은 데이터 스트로브 신호에 대해 인에이블 신호의 지연을 트레이닝하는 방법의 일 실시예를 도시하는 타이밍도;
도 4는 데이터 스트로브 신호에 대해 인에이블 신호의 지연을 트레이닝하는 방법의 일 실시예를 도시하는 흐름도;
도 5는 컴퓨터 판독가능한 캐리어 매체의 일 실시예의 블록도.
본 발명은 각종 변형과 대안적인 형태를 구비할 수 있으나, 본 특정 실시예는 단지 예로서 도면에 도시되고 본 명세서에 상세히 설명된다. 그러나, 첨부 도면 및 그 상세한 설명은 본 발명을 개시된 특정 형태로 제한하려고 의도된 것이 아니고, 본 발명은 첨부된 청구범위에 의해 한정된 본 발명의 사상과 범위 내에 있는 모든 변형, 균등물 및 대안물을 포함하는 것으로 의도된 것으로 이해된다.
도 1은 컴퓨터 시스템(10)의 일 실시예의 블록도이다. 도시된 실시예에서, 컴퓨터 시스템(10)은 메모리(6)에 연결된 집적 회로(IC)(2)를 포함한다. 컴퓨터 시스템(10)은, 예를 들어, 랩탑, 데스크탑 또는 서버 컴퓨터와 같은 종래의 컴퓨터 시스템 또는 각종 다른 유형의 컴퓨팅 디바이스, 예를 들어, 핸드헬드 컴퓨팅 디바이스(예를 들어, 모바일 폰 또는 스마트 폰), 디지털 텔레비전, 태블릿 컴퓨팅 디바이스 등을 포함할 수 있다. 도시된 실시예에서, IC(2)는 다수의 프로세서 코어(11)를 구비하는 시스템온 칩(system on chip: SoC)이다. IC(2)의 실시예는 중앙 처리 유닛(central processing unit: CPU), 그래픽 처리 유닛(graphics processing unit: GPU), 가속 처리 유닛(accelerated processing unit: APU), 응용 프로세서, 디지털 신호 프로세서(digital signal processor: DSP) 등을 포함할 수 있다. 각종 실시예에서, 프로세서 코어의 개수는 1개만큼 적을 수도 있고, 또는 IC 다이(die)에 구현될 수 있을 만큼 많을 수도 있다. 다중 코어 실시예에서, 프로세서 코어(11)는 서로 동일할 수 있고(즉, 동종 다중 코어), 또는 하나 이상의 코어는 서로 상이할 수 있다(즉, 이종 다중 코어). 프로세서 코어(11)는 하나 이상의 실행 유닛, 캐시 메모리, 스케줄러, 분기 예측(branch prediction) 회로 등을 각각 포함할 수 있다. 나아가, 각 프로세서 코어(11)는 컴퓨터 시스템(10)을 위한 메인 메모리로 기능할 수 있는 메모리(6)에 액세스 요청을 선언하도록 구성될 수 있다. 이러한 요청은 판독 요청 및/또는 기록 요청을 포함할 수 있고, 노쓰 브리지(north bridge)(12)에 의해 각 프로세서 코어(11)로부터 초기에 수신될 수 있다. 메모리(6)에의 액세스 요청은 특정 명령을 실행한 것에 응답하여 개시될 수 있고, 프리페치(prefetch) 동작에 응답하여 개시될 수도 있다.
도시된 실시예에서 노쓰 브리지(12)는 IC(2)의 각종 기능 유닛 사이에 라우팅 및 통신 제어를 제공할 수 있다. 따라서, 노쓰 브리지(12)는 상이한 기능 유닛을 서로 연결하도록 (예를 들어, 메모리 액세스 요청 동안 프로세서 코어(11) 중 하나를 메모리 제어기(18)에 연결하도록) 구성된 하나 이상의 크로스바(crossbar) 유닛을 포함할 수 있다. 나아가, 노쓰 브리지(12)는 IC(2)의 동작 동안 전력 소비 대 성능을 최적화하는데 사용되는 각종 전력 관리 기능을 구현할 수 있다.
I/O 인터페이스(13)는 도시된 실시예에서 노쓰 브리지(12)에 더 연결된다. I/O 인터페이스(13)는 컴퓨터 시스템(10)에서 사우쓰 브리지 디바이스(south bridge device)로 기능할 수 있다. 다수의 상이한 유형의 주변 버스는 I/O 인터페이스(13)에 연결될 수 있다. 이 특정 예에서, 버스 유형은 PCI(Peripheral Component Interconnect) 버스, PCI-X(PCI-Extended), 기가비트 이더넷(gigabit Ethernet: GBE) 버스 및 USB(Universal Serial Bus)를 포함한다. 그러나, 이들 버스 유형은 단지 예시를 위한 것일 뿐, 많은 다른 버스 유형들이 I/O 인터페이스(13)에 더 연결될 수 있다. 주변 디바이스는 주변 버스의 일부 또는 전부에 연결될 수 있다. 이러한 주변 디바이스는 키보드, 마우스, 프린터, 스캐너, 조이스틱 또는 다른 유형의 게임 제어기, 매체 레코딩 디바이스, 외부 저장 디바이스, 네트워크 인터페이스 카드 등을 포함한다(그러나, 이들로 제한되지 않는다). 대응하는 주변 버스를 통해 I/O 유닛(13)에 연결될 수 있는 주변 디바이스의 적어도 일부는 직접 메모리 액세스(direct memory access: DMA)를 사용하여 메모리 액세스 요청을 선언할 수 있다. (판독 및 기록 요청을 포함할 수 있는) 이들 요청은 I/O 인터페이스(13)를 통해 노쓰 브리지(12)로 전달될 수 있다.
도시된 실시예에서, IC(2)는 컴퓨터 시스템(10)의 디스플레이(3)에 연결된 그래픽 처리 유닛(14)을 포함한다. 디스플레이(3)는 평판-패널 LCD(liquid crystal display), 플라즈마 디스플레이, CRT(cathode ray tube) 또는 임의의 다른 적절한 디스플레이 유형일 수 있다. GPU(14)는 각종 비디오 처리 기능을 수행하고, 처리된 정보를 시각적 정보로 출력하기 위해 디스플레이(3)에 제공할 수 있다.
도시된 실시예에서 메모리 제어기(18)는 노쓰 브리지(12)에 연결되고, 일부 실시예에서, 실제로 노쓰 브리지(12)의 컴포넌트일 수 있다. 메모리 제어기(18)는 노쓰 브리지(12)로부터 전달된 메모리 요청을 수신할 수 있다. (프리페치를 포함하는) 판독 요청에 응답하여 메모리(6)로부터 액세스된 데이터는 메모리 제어기(18)에 의해 노쓰 브리지(12)를 통해 요청하는 에이전트(requesting agent)에 전달될 수 있다. 기록 요청에 응답하여, 메모리 제어기(18)는 노쓰 브리지(12)를 통해 요청하는 에이전트로부터 기록될 요청 및 데이터를 수신할 수 있다. 다수의 메모리 액세스 요청이 주어진 시간에 계류 중이라면, 메모리 제어기(18)는 이들 요청 사이를 중재할 수 있다.
메모리 제어기(18)는 데이터를 메모리(6)에 기록하는 기능을 더 지원할 수 있으나, 간략화를 위해 이 기능은 여기에 도시되지 않았다는 것이 주목된다.
도시된 실시예에서 메모리(6)는 일 실시예에서 복수의 메모리 모듈로 구현될 수 있다. 각 메모리 모듈은 상부에 장착된 하나 이상의 메모리 디바이스(예를 들어, 메모리 칩)를 포함할 수 있다. 다른 실시예에서, 메모리(6)는 상부에 IC(2)를 장착할 수 있는 마더보드 또는 다른 캐리어 위에 더 장착된 하나 이상의 메모리 디바이스를 포함할 수 있다. 또 다른 실시예에서, 메모리(6)의 적어도 일부는 IC(2) 그 자체의 다이 위에 구현될 수 있다. 전술된 각종 구현의 조합을 구비하는 실시예들이 또한 가능하고 고려될 수 있다. 메모리(6)는 동작 동안 IC(2)와 사용하기 위한 랜덤 액세스 메모리(random access memory: RAM)를 구현하는데 사용될 수 있다.
도시된 실시예에서, 메모리(6)는 다수의 상이한 유형의 DDR(double data rate) 동적 RAM(DRAM) 중 하나로 구현된다. 이러한 유형의 DDR DRAM은 오리지널 DDR 표준 DRAM, DDR2 DRAM 및 DDR3 DRAM을 포함한다. 메모리(6)는 DDR DRAM의 미래 표준으로 구현될 수 있는 것으로 고려될 수 있다. 특정 표준에 상관없이, 메모리(6)는, 메모리 제어기(18)로부터 판독 요청에 응답하여, 요청된 데이터와 함께 데이터 스트로브 신호(DQS)를 리턴할 수 있다. 데이터 스트로브 신호는 효과적으로 메모리 제어기(18)의 수신기(25)에서 데이터를 동기화하는데 사용되는 소스 동기 클록 신호이다. 데이터가 메모리(6)로부터 리턴되지 않을 때, 데이터 스트로브 신호는 아이들(idle) 상태 또는 3-상태(tri-stated)에 있을 수 있다. 일부 경우에, 데이터 스트로브 신호는 판독이 수행되고 있지 않을 때 3-상태에 있을 수 있다(즉, 높은 임피던스 상태에 놓여 있을 수 있다). 데이터 스트로브 신호가 3-상태에 있는 동안 샘플링되는 경우, 데이터 스트로브 신호는 수신기(25)에 있는 지연 동기 루프(DLL)의 내부 동작의 에러 있는 판독 및 손상을 포함하는 예측가능하지 않은 거동을 초래할 수 있다. 그러나, 후술되는 방법 및 장치 실시예는 데이터 스트로브 신호가 3-상태에 있을 때 데이터 스트로브 신호를 샘플링하는 것을 회피할 수 있다.
도시된 실시예에서, 메모리 제어기(18)는 노쓰 브리지(12)로부터 판독 커맨드를 수신하도록 연결된 스케줄러(21)를 포함한다. 스케줄러(21)는 메모리(6)에 전송하기 위한 각종 판독 커맨드를 스케줄링하도록 구성된다. 일부 실시예에서, 스케줄러(21)는 판독 커맨드와의 충돌을 중재하도록 구성될 수 있다. 판독 커맨드는 메모리(6)에 전송하기 위해 전송기(23)에 전달될 수 있다. 게다가, 스케줄러(21)는 판독 커맨드에 응답하여 메모리(6)로부터 데이터의 수신을 인에이블하는 수신 인에이블 신호('Rx_인에이블')를 수신기(25)에 제공할 수 있다. 도시된 실시예에서, 수신기(25)는 인에이블 신호의 선언이 메모리(6)로부터 데이터 스트로브 신호의 전송과 일치하도록 유지하는 일부 버퍼링 및 타이밍 회로를 포함할 수 있다. 이것에 의해 에러 있는 데이터가 수신기(25)에 의해 수신되는 것이 방지될 수 있다. 수신기(25)에서 인에이블 신호의 선언 타이밍은 트레이닝 유닛(30)에 의해 수행되는 트레이닝 과정에 의해 결정될 수 있다. 트레이닝 유닛(30) 및 대응하는 트레이닝 과정은 아래에 보다 상세히 설명된다.
이제 도 2를 참조하여, 메모리 제어기(18)의 일 실시예의 블록도를 설명한다. 메모리 제어기(18)의 컴포넌트들 전부가 여기에 도시된 것은 아니어서, (전술된 것을 포함하여) 다른 컴포넌트들이 각종 실시예에 포함될 수 있는 것으로 이해된다.
도시된 실시예에서, 메모리 제어기(18)는 메모리(6)로부터 전달되는 데이터를 수신하도록 연결된 수신기(25)를 포함한다. 데이터는 메모리(6)로부터 전달된 데이터 스트로브 신호에 기초하여 수신된 데이터 스트로브 신호('RDQS')에 동기화될 수 있다(수신된 데이터 스트로브 신호는 메모리(6)로부터 제공된 데이터 스트로브 신호와 본질적으로 동일한 신호일 수 있으나, 이들 신호는 버퍼(33)의 존재로 인해 여기서 별도로 지칭된다). 수신된 데이터 스트로브 신호는 인에이블 신호('Rx_인에이블')를 사용하여 (이 실시예에서 AND 게이트로 구현된) 논리 게이트(34)를 통해 게이팅될 수 있다. 인에이블 신호가 선언되면, 수신된 데이터 스트로브가 인에이블되어 수신기(25)의 지연 동기 루프(DLL)(251)로 통과된다. DLL(251)은 대응하는 클록 신호를 플립-플롭(39)(또는 플립-플롭의 그룹)에 제공하여 인입 데이터를 동기화할 수 있다. 그렇지 않고, 인에이블 신호가 선언되지 않은 경우, 수신된 데이터 스트로브는 DLL(251)에 제공되지 않아서, 수신기(25)에 의도치 않은 데이터가 수신되는 것이 방지된다. 인에이블 신호가 선언 해제(de-asserted)된 경우, 3-상태의 데이터 스트로브 신호의 샘플링이 회피되어, 전술된 바와 같이 에러 있는 동작이 일어날 가능성을 방지할 수 있다. 따라서, 인에이블 신호가 선언되고 선언 해제될 때를 제어하면, 데이터 스트로브 신호가 올바른 동작을 보장하는 적절한 시간에 샘플링되는 것을 보장할 수 있는데, 즉, 데이터 스트로브 신호가 예를 들어 도 3에 도시된 패턴으로 하이 상태와 로우 상태 사이에서 능동적으로 토글링될 때, 샘플링되는 것을 보장할 수 있다.
인에이블 신호는 DLL(35)에 제공된 클록 신호('pclk')와 동일한 도메인으로부터 수신된 인에이블 신호('Rx_인에이블_p)에 기초한다. 도시된 실시예에서, 수신된 인에이블 신호는 선입선출 메모리(FIFO)(29)에 제공된다. FIFO(29)의 판독 및 기록 포인터들이 pclk 신호와 동기화되고, 이 pclk 신호는 메모리 제어기(18) 내부의 위상 동기 루프(phase locked loop: PLL)에 의해 생성될 수 있고 내부 동작을 동기화하는데 사용된다. FIFO(29)의 출력은 저장 회로(이 실시예에서 플립-플롭(32))에 연결되고, 이 저장 회로는 DLL(35)로부터 클록 신호를 수신하도록 연결된다. 도시된 실시예에서 DLL(35)은 입력 클록으로 pclk 신호를 수신하도록 연결되고, pclk 신호의 지연된 버전을 플립-플롭(32)에 제공하도록 구성된다. 따라서, 논리 게이트(34)에 제공된 Rx_인에이블 신호는 DLL(35)에 의한 출력으로 pclk 신호의 지연된 버전과 동기화될 수 있다.
판독 동안, 인에이블 신호는 특정 시점에서 선언될 수 있다. 인에이블 신호가 너무 일찍 선언되어, 수신된 데이터 스트로브 신호가 DLL(251)로 통과되면, 수신기(25)는 데이터를 에러 있게 수신할 수 있다. 인에이블 신호가 너무 늦게 선언되면, 메모리(6)로부터 리턴된 데이터는 수신기(25)에 의해 수신되지 못할 수 있다. 따라서, 트레이닝은 인에이블 신호의 선언을 위한 최적의 시간을 결정하도록 구성될 수 있다. 도시된 실시예에서, 메모리 제어기(18)는 플립-플롭(31), 위상 검출기(37) 및 트레이닝 제어 로직(38)을 포함하는 트레이닝 유닛(30)을 포함한다.
도시된 실시예에서, RDQS 신호는 플립-플롭(31)의 데이터 입력에서 수신된다. 플립-플롭(31)의 클록 입력은 플립-플롭(32)으로부터 인에이블 신호 출력을 수신하도록 연결된다. 플립-플롭(31)의 출력은 위상 검출기(37)에 제공된다. 플립-플롭(31)으로부터 수신된 출력 신호에 기초하여, 위상 검출기(37)는 수신된 데이터 스트로브 신호(RDQS)에 대해 인에이블 신호(Rx_인에이블)의 위상을 결정할 수 있다. 이 실시예에서, FIFO(29)는 Rx_인에이블 신호가 프리앰블에 응답하여 선언되도록 논리 하이를 플립-플롭(32)의 D 입력에 제공할 수 있다. 따라서, 플립-플롭(31)에 의해 RDQS 신호의 샘플링을 야기할 수 있는 것은 프리앰블을 생성하는 판독이다.
인에이블 신호의 트레이닝은 트레이닝 제어 로직(38)의 제어 하에 수행될 수 있다. 트레이닝을 수행하기 위하여, 트레이닝 제어 로직(38)에 제공된 트레이닝 신호('Train')가 선언될 수 있다. 트레이닝 제어 로직(38)은 트레이닝 알고리즘을 수행할 때 위상 검출기(37)에 지시(direct)할 수 있다. 위상 검출기(37)에 의해 제공된 정보는 트레이닝 알고리즘에서 수행되는 각종 단계를 결정할 때 트레이닝 제어 로직(38)에 의해 사용될 수 있다.
도시된 실시예에서 위상 검출기(37)의 출력은 제어 레지스터(36)에 저장된 값을 증분(increment) 또는 감분(decrement)하는 하나 이상의 신호를 포함한다. 제어 레지스터(38)의 출력은 플립-플롭(32)에 제공된 클록 신호를 생성하기 위하여 pclk 신호의 지연을 설정하는데 사용되는, DLL(35)에 제공된 지시값일 수 있다. 따라서, 위상 검출기(37)는 인에이블 신호와 수신된 데이터 스트로브 신호 사이에 위상 관계를 효과적으로 제어하는데 사용될 수 있다. 보다 구체적으로, 도시된 실시예에서 위상 검출기(37)는 제어 레지스터(36)에 저장된 값을 증분하는 것에 의해 DLL(32)에 의해 제공된 지연을 증가시킬 수 있다. DLL에 의해 제공된 지연을 감소시키는 것은 제어 레지스터(36)에 저장된 값을 감분하는 위상 검출기(37)에 의해 수행될 수 있다. 일반적으로, DLL(32)에 의해 제공된 지연을 변화시키면 수신된 데이터 스트로브 신호와 인에이블 신호 사이의 위상 관계를 변화시킬 수 있다. 트레이닝 동안, 위상 검출기(37)는 알고리즘의 일부 부분 동안 플립-플롭(31)에 의해 제공되는 출력 신호에 기초하여, 및 알고리즘의 다른 부분 동안 트레이닝 제어 로직(38)으로부터 직접 제어에 기초하여 DLL(32)의 지연을 변화시킬 수 있다.
도 3은 트레이닝 유닛(30)에 의해 수행될 수 있는 트레이닝 알고리즘의 일 실시예를 도시하는 타이밍도이다. 트레이닝은 트레이닝 제어 로직(38)에 트레이닝 신호를 선언하는 것에 의해 개시될 수 있다. 게다가, 알고리즘의 단계 0에서, 연속적인 판독이 트레이닝 과정을 수행할 때 개시될 수 있고, 이 판독은 프리앰블에 의해 중단(punctuated)될 수 있다. 도시된 예에서, 이 판독은 논리 1과 논리 0 사이에 수신된 데이터 스트로브 신호의 사이클링에 의해 지시된다. 도시된 예에서 프리앰블은 논리 1들 사이에 다수(이 경우에 3개)의 연속적인 논리 0에 의해 지시된다. 일반적으로, 데이터 판독 동작은 제한된 개수의 데이터 비트를 수신하는 버스트에서 발생할 수 있고, 이후 데이터 스트로브 신호는 3-상태일 수 있다(즉, 낮은 임피던스 상태에 놓일 수 있다). 각 판독 버스트를 준비하기 위하여, 각 판독 동작은 데이터 스트로브가 로우(low)로 구동되는 시간이 선행될 수 있다. 이 시간은 프리앰블로 알려져 있다. 판독 동작이 연이어 일어나면, 인입 데이터 스트로브는 클록 같이 보이고 프리앰블이 생성되지 않는 파형을 나타낼 수 있다. 보다 구체적으로, 버스트는 데이터 스트로브 신호가 3-상태가 되는 것을 방지할만큼 충분히 짧은 지속시간일 수 있는, 도시된 바와 같은 프리앰블로 중단될 수 있다. 그렇지 않고, 판독들 사이에 시간 기간이 프리앰블의 지속시간을 초과하면, 데이터 스트로브 신호는 메모리에 의해 3-상태에 있을 수 있다.
알고리즘의 단계 1은 수신된 데이터 스트로브 신호의 임의의 상승 에지(rising edge)를 찾는 것이다(이 대신, 하강 에지(falling edge)를 찾는 실시예들도 가능하고 고려될 수 있는 것으로 이해된다). 이것은 인에이블 신호를 사이클링하고, 인에이블 신호와 수신된 데이터 스트로브 신호(이는 사이클링이라고도 한다) 사이에 위상 차이를 측정하고, 위상 차이가 제로가 될 때까지 위상 차이를 조절하는 것에 의해 달성될 수 있다. 상승 에지가 발견되면, 트레이닝 제어 로직(38)은 위상 검출기(37)에 지시하여 DLL(36)의 지연으로부터 데이터 스트로브 신호의 1/2 단위 간격의 절반을 감산하게 한다. 본 명세서에 사용된 바와 같이, 이 단위 간격은 수신된 데이터 스트로브 신호의 기간(period)의 절반일 수 있다. 따라서, 데이터 스트로브 신호가 50%의 듀티 사이클을 구비하는 경우, 이 단위 간격은 듀티 사이클의 균등물일 수 있다.
수신된 데이터 스트로브 신호의 1/2 단위 간격만큼 수신된 데이터 스트로브 신호에 대해 인에이블 신호의 위상을 조절한 후, 트레이닝 제어 로직(38)은 위상 검출기(37)에 지시하여 프리앰블의 종료를 발견할 때까지 1 단위 간격 증분만큼 인에이블 신호의 위상을 조절하기 시작할 수 있다(단계 3). 도시된 예에서, 위상 조절은 증분에 의해 수행된다. 그러나, 증분 대신 감분을 사용하여 동일한 목적을 달성할 수 있다. 위상 조절의 각 증분을 위하여, 위상 관계는 트레이닝 제어 로직(38)에 보고될 수 있고, 이 트레이닝 제어 로직은 측정값의 이력을 보유하고 모니터링할 수 있다. 이 이력에 기초하여, 트레이닝 제어 로직(38)은 인에이블 신호가 수신된 데이터 스트로브 신호의 제1 후-프리앰블 사이클의 제1 하강 에지와 정렬될 때를 결정할 수 있다.
트레이닝 제어 로직(38)이 프리앰블의 종료가 검출된 것으로 결정하면, 이 트레이닝 제어 로직은 위상 검출기(37)에 지시하여 인에이블 신호의 위상이 프리앰블 내에 일어날 때까지 위상 검출기를 조절하여 지연을 감산시킬 수 있다(단계 4). 일 실시예에서, 인에이블 신호는 프리앰블의 대략 중간점에 정렬될 수 있다. 이 조절이 일어나면, 위상 검출기(37)는 수신된 데이터 스트로브 신호에 대한 인에이블 신호의 위상의 지시값을 제어 레지스터(36)에 레코딩할 수 있다. 이 점에서 트레이닝이 완료된다. 미션(즉, 정상) 모드에서 미래의 동작을 위하여, 인에이블 신호의 선언이 메모리(6)로부터 하나 이상의 연속적인 데이터 판독 동안 데이터 스트로브 신호의 제1 상승 에지 전의 프리앰블 동안 일어날 수 있다.
프리앰블 내 점과 인에이블 신호의 상승 에지를 정렬하는 것에 의해, 온도 및 전압 변동으로 인한 드리프트를 견딜 수 있는 마진이 더 많이 제공된다. 이것으로 메모리와의 인터페이스가 더 빠른 주파수로 동작될 수 있다. 전술된 트레이닝 알고리즘은 상이한 주파수에서 다수의 반복을 요구하지도 않고, 이것은 '시드 값'으로도 알려진 미리 특성화된(pre-characterized) 시작 상태를 요구하지도 않는 것으로 더 주목된다. 이것으로 트레이닝 과정은 이전의 방법보다 더 적은 시간에 보다 신뢰성 있게 수행될 수 있다.
이제 도 4를 참조하여, 데이터 스트로브 신호에 대해 인에이블 신호의 지연을 트레이닝하는 방법의 일 실시예를 도시하는 흐름도를 설명한다. 방법(400)이 도 1 및 도 2를 참조하여 전술된 하드웨어 실시예를 사용하여 수행될 수 있으나, 이 방법을 수행할 수 있는 다른 하드웨어 실시예들도 가능하고 고려될 수 있는 것으로 이해된다.
방법(400)은 트레이닝의 초기에 다수의 연속적인 메모리 판독 시리즈를 수행하는 것으로 시작하고, 이 판독은 프리앰블에 의해 중단된다(블록 405). 이 판독은 데이터 스트로브 신호와 동기화될 수 있고, 이 데이터 스트로브 신호는 프리앰블(예를 들어, 1과 0이 교번하는 사이클 사이에 다수의 연속적인 논리 0)을 포함한다. 판독은 시리즈로 수행되고, 이후 프리앰블이 후속하고, 이후 다른 시리즈가 수행되고, 이와 같이 계속될 수 있다.
트레이닝 과정 동안, 데이터 스트로브 신호의 에지(이 특정 경우에 상승 에지)는 데이터 스트로브의 상승 에지와 위상의 차이가 제로일 때까지 인에이블 신호의 상승 에지의 위상을 조절하는 것에 의해 찾아질 수 있다(블록 410). 인에이블 신호가 이 점에서 정렬되는 상승 에지는 데이터 스트로브 신호의 임의의 상승 에지일 수 있다.
데이터 스트로브 신호의 상승 에지를 찾는 것에 응답하여, 1 단위 간격의 절반이 인에이블 신호의 위상으로부터 감산될 수 있고 이후 위상이 1 단위 간격 증분으로 조절될 수 있다(블록 415). 조절하는 것은 증분하는 것 또는 감분하는 것을 포함할 수 있다. 프리앰블의 종료가 발견되지 않았다면(블록 420에서 아니오), 블록 415에서 조절이 계속된다. 프리앰블의 종료가 발견되었다면(블록 420에서 예), 최종 위상 조절이 프리앰블 내에 있는 점에 인에이블 신호의 선언을 놓도록 이루어질 수 있다(블록 425). 일 실시예에서, 최종 위상 조절은 프리앰블의 중간점에 또는 거의 중간점에 인에이블 신호의 선언을 놓을 수 있다. 최종 위상 조절이 완료된 후, 대응하는 지연 값의 지시값이 제어 레지스터에 저장된다(블록 430). 이 값은 정상 동작 동안 지연 동기 루프의 지연을 설정하는데 사용될 수 있다.
다음으로, 도 5를 참조하면, 시스템(10)을 나타내는 데이터베이스(505)를 포함하는 컴퓨터 액세스가능한 저장 매체(500)의 블록도가 도시된다. 일반적으로 말하면, 컴퓨터 액세스가능한 저장 매체(500)는 명령 및/또는 데이터를 컴퓨터에 제공하기 위해 사용 동안 컴퓨터에 의해 액세스가능한 임의의 비-일시적인 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 액세스가능한 저장 매체(500)는 저장 매체, 예를 들어, 자기 또는 광 매체, 예를 들어, 디스크(고정식 또는 이동식), 테이프, CD-ROM 또는 DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW 또는 블루-레이(Blu-Ray)를 포함할 수 있다. 저장 매체는 USB(Universal Serial Bus) 인터페이스 등과 같은 주변 인터페이스를 통해 액세스가능한, 휘발성 또는 비휘발성 메모리 매체, 예를 들어 RAM(예를 들어, 동기 동적 RAM(SDRAM), 더블 데이터 레이트(double data rate)(DDR, DDR2, DDR3 등) SDRAM, 저전력 DDR(LPDDR2 등) SDRAM, 램버스 DRAM(RDRAM), 정적 RAM(SRAM) 등), ROM, 플래쉬 메모리, 비휘발성 메모리(예를 들어 플래쉬 메모리)를 더 포함할 수 있다. 저장 매체는 네트워크 및/또는 무선 링크와 같은 통신 매체를 통해 액세스가능한 저장 매체뿐만 아니라 마이크로 전기기계 시스템(microelectromechanical system: MEMS)을 포함할 수 있다.
일반적으로, 컴퓨터 액세스가능한 저장 매체(500)에 운반되는 시스템(10) 및/또는 그 일부를 나타내는 데이터(505)는, 프로그램에 의해 판독되고, 직접으로 또는 간접으로, 시스템(10)을 포함하는 하드웨어를 제조하는데 사용될 수 있는 데이터베이스 또는 다른 데이터 구조일 수 있다. 예를 들어, 데이터베이스(505)는 베릴로그(Verilog) 또는 VHDL과 같은 하이 레벨 설계 언어(high level design language: HDL)에 하드웨어 기능의 거동-레벨 설명(behavioral-level description) 또는 레지스터-전송 레벨(register-transfer level: RTL) 설명일 수 있다. 이 설명은 이 설명을 합성하여 합성 라이브러리로부터 게이트 리스트를 포함하는 네트리스트(netlist)를 생성할 수 있는 합성 도구에 의해 판독될 수 있다. 이 네트리스트는 시스템(10)을 포함하는 하드웨어의 기능을 나타내는 게이트 세트를 포함한다. 네트리스트는 마스크에 적용되는 기하학적 형상을 기술하는 데이터 세트를 생성하도록 놓이고 라우팅될 수 있다. 마스크는 시스템(10)에 대응하는 반도체 회로 또는 회로들을 생성하는데 각종 반도체 제조 단계에 사용될 수 있다. 대안적으로, 컴퓨터 액세스가능한 저장 매체(500)에서 데이터베이스(505)는 원하는 대로 네트리스트(합성 라이브러리를 구비하거나 구비하지 않는) 또는 데이터 세트이거나 또는 그래픽 데이터 시스템(Graphic Data System: GDS) II 데이터일 수 있다.
컴퓨터 액세스가능한 저장 매체(500)는 시스템(10)의 표현을 운반하지만, 다른 실시예가, IC(2), 임의의 에이전트 세트(예를 들어, 처리 코어(11), I/O 인터페이스(13), 노쓰 브리지(12) 등) 또는 에이전트의 일부를 포함하는 시스템(10)의 임의의 부분의 표현을 원하는 대로, 운반할 수 있다.
본 발명은 특정 실시예들을 참조하여 설명되었으나, 본 실시예들은 예시적인 것일 뿐, 본 발명의 범위는 이들로 제한되지 않는 것으로 이해될 것이다. 설명된 실시예에 대한 임의의 변동, 변형, 부가 및 개선이 가능할 수 있다. 이들 변동, 변형, 부가 및 개선은 이하의 특허청구범위에 상세히 기술된 바와 같은 본 발명의 범위 내에 들어갈 수 있다.
Claims (30)
- 시스템으로서,
데이터 스트로브 신호(data strobe signal)를 수신하도록 구성된 메모리 제어기를 포함하되,
상기 메모리 제어기는 트레이닝 회로를 포함하며, 상기 트레이닝 회로는,
데이터 입력에서 상기 데이터 스트로브 신호를 수신하고 클록 입력에서 인에이블 신호를 수신하도록 연결된 제1 저장 회로; 및
상기 제1 저장 회로로부터 수신된 출력 신호에 기초하여, 상기 인에이블 신호의 선언(assertion)이 상기 데이터 스트로브 신호에 있는 프리앰블 지시값과 일치할 때까지 상기 인에이블 신호의 위상을 조절하도록 구성된 트레이닝 유닛을 포함하는 것인 시스템. - 제1항에 있어서, 상기 데이터 스트로브 신호를 수신하도록 연결된 제1 입력 및 상기 인에이블 신호를 수신하도록 연결된 제2 입력을 구비하는 논리 게이트를 더 포함하되, 상기 논리 회로는 상기 인에이블 신호가 선언될 때 상기 데이터 스트로브 신호를 통과시키도록 구성된 것인 시스템.
- 제2항에 있어서, 상기 인에이블 신호를 상기 제1 저장 회로의 상기 클록 입력에 제공하도록 연결되고 상기 인에이블 신호를 상기 논리 회로의 상기 제2 입력에 제공하도록 더 연결된 제2 저장 회로를 더 포함하되, 상기 제1 및 제2 저장 회로는 플립-플롭인 것인 시스템.
- 제3항에 있어서, 입력 클록 신호를 수신하도록 연결되고, 상기 입력 클록 신호에 지연을 제공한 것에 기초하여 출력 클록 신호를 생성하도록 구성된 지연 동기 루프(delay locked loop: DLL)를 더 포함하는 시스템.
- 제4항에 있어서, 상기 트레이닝 유닛은 제어 레지스터를 포함하고, 상기 DLL은 상기 제어 레지스터에 저장된 값에 기초하여 상기 입력 클록 신호에 지연의 양을 제공하도록 구성된 것인 시스템.
- 제5항에 있어서, 상기 트레이닝 유닛은 상기 데이터 스트로브 신호에 대해 상기 인에이블 신호의 위상을 검출하도록 구성되고 상기 제어 레지스터에 저장된 값을 업데이트하도록 구성된 것인 시스템.
- 제1항에 있어서, 상기 프리앰블은 상기 데이터 스트로브 신호에 복수의 연속적인 논리 제로(logic zero)를 포함하고, 상기 트레이닝 유닛은 상기 인에이블 신호가 상기 프리앰블 내에 선언되도록 상기 인에이블 신호의 위상을 조절하도록 구성된 것인 시스템.
- 제7항에 있어서, 상기 트레이닝 유닛은, 상기 트레이닝 과정의 초기에 응답하여, 상기 데이터 스트로브 신호의 상승 에지가 수신될 때를 결정하도록 구성된 것인 시스템.
- 제8항에 있어서, 상기 트레이닝 유닛은, 상기 데이터 스트로브 신호의 상승 에지가 수신될 때를 결정한 것에 응답하여,
상기 인에이블 신호의 상승 에지가 상기 프리앰블의 종료와 일치할 때까지 상기 인에이블 신호의 위상을 증분식으로 조절하는 동작;
각 증분 조절을 위해 제어 레지스터에 저장된 값을 업데이트하는 동작; 및
상기 인에이블 신호의 상승 에지가 상기 프리앰블의 종료와 일치할 때를 결정한 것에 응답하여 상기 값으로부터 미리 결정된 양을 감산하는 동작을 수행하도록 구성된 것인 시스템. - 제1항에 있어서, 데이터 및 상기 데이터 스트로브 신호를 상기 메모리 제어기에 전달하도록 연결된 메모리를 더 포함하되, 상기 메모리 제어기는 상기 메모리로부터 수신된 데이터를 상기 데이터 스트로브 신호에 동기화하도록 구성된 것인 시스템.
- 방법으로서,
상기 인에이블 신호의 선언이 상기 데이터 스트로브 신호에 있는 프리앰블 지시값과 일치할 때까지 메모리로부터 수신된 데이터 스트로브 신호에 대해 인에이블 신호의 위상을 조절하는 단계로서, 상기 조절하는 단계는 지연 동기 루프(DLL)의 지연을 조절하는 단계를 포함하는 것인, 상기 조절하는 단계; 및
상기 지연의 지시값을 레지스터에 저장하는 단계를 포함하는 방법. - 제11항에 있어서, 트레이닝 유닛이 상기 프리앰블을 검출하는 단계를 더 포함하되, 상기 프리앰블을 검출하는 단계는 상기 데이터 스트로브 신호에서 복수의 연속적인 논리 제로를 검출하는 단계를 포함하는 것인 방법.
- 제12항에 있어서, 상기 트레이닝 유닛이 상기 인에이블 신호가 상기 프리앰블 내에 선언되도록 상기 인에이블 신호의 위상을 조절하는 단계를 더 포함하는 방법.
- 제12항에 있어서, 상기 트레이닝 유닛이 트레이닝 과정을 개시하는 것에 응답하여 상기 데이터 스트로브 신호의 제1 상승 에지를 검출하는 단계를 더 포함하는 방법.
- 제14항에 있어서, 상기 트레이닝 유닛이 상기 프리앰블의 종료에 일어나는 상기 데이터 스트로브 신호의 에지와 일치할 때까지 상기 인에이블 신호의 위상을 증분식으로 조절하는 단계를 더 포함하는 방법.
- 제15항에 있어서, 상기 트레이닝 유닛이 상기 프리앰블의 종료와 일치하도록 상기 인에이블 신호의 위상을 조절한 후 상기 프리앰블의 종료로부터 상기 인에이블 신호의 위상을 상기 프리앰블 내로 조절하는 단계를 더 포함하는 방법.
- 제11항에 있어서, 상기 인에이블 신호가 선언될 때에는 논리 게이트가 상기 데이터 스트로브 신호를 메모리 제어기에 있는 수신기로 통과시키고, 상기 인에이블 신호가 선언되지 않을 때에는 상기 논리 게이트가 상기 데이터 스트로브 신호를 상기 수신기로 통과시키지 않는 단계를 더 포함하는 방법.
- 제11항에 있어서,
제1 저장 회로가 데이터 입력에서 상기 데이터 스트로브 신호를 수신하고 클록 입력에서 상기 인에이블 신호를 수신하여 대응하는 출력 신호를 생성하는 단계;
트레이닝 유닛이 상기 출력 신호에 기초하여 상기 데이터 스트로브 신호에 대해 상기 인에이블 신호의 위상을 결정하는 단계;
상기 트레이닝 유닛이 상기 데이터 스트로브 신호에 대한 상기 인에이블 신호의 위상에 기초하여 상기 DLL의 지연을 조절하는 단계; 및
제2 저장 회로가 상기 DLL로부터 클록 신호를 수신하고 상기 DLL로부터 수신된 상기 클록 신호와 동기화하여 상기 인에이블 신호를 선언하는 단계를 더 포함하는 방법. - 제11항에 있어서, 상기 조절하는 단계 동안 메모리로부터 복수의 연속적인 판독을 수행하는 단계를 더 포함하되, 상기 데이터 스트로브 신호는 상기 조절하는 단계 동안 토글을 계속하는 것인 방법.
- 제11항에 있어서,
메모리 제어기가 판독 요청을 메모리에 제공하는 단계;
상기 메모리가 상기 판독 요청을 수신한 것에 응답하여 상기 데이터 스트로브 신호를 상기 메모리 제어기에 제공하는 단계; 및
상기 프리앰블 내에 일어나는 시점에 상기 인에이블 신호를 선언하는 단계를 더 포함하는 방법. - 메모리 서브시스템으로서,
메모리; 및
상기 메모리에 연결된 메모리 제어기를 포함하되,
상기 메모리 제어기는 판독 요청을 상기 메모리에 송신하도록 구성되고, 상기 메모리는, 상기 판독 요청에 응답하여, 데이터 및 데이터 스트로브 신호를 상기 메모리 제어기에 제공하도록 구성되며, 상기 메모리 제어기는 트레이닝 유닛을 포함하고, 상기 트레이닝 유닛은,
상기 인에이블 신호의 선언이 상기 데이터 스트로브 신호에 있는 프리앰블 지시값과 일치할 때까지 상기 데이터 스트로브 신호에 대해 인에이블 신호의 위상을 조절하는 동작으로서, 상기 조절하는 동작은 지연 동기 루프(DLL)의 지연을 조절하는 동작을 포함하는 것인, 상기 조절하는 동작; 및
상기 지연의 지시값을 레지스터에 저장하는 동작을 수행하도록 구성된 것인 메모리 서브시스템. - 제21항에 있어서, 상기 트레이닝 유닛은 데이터 입력에서 상기 데이터 스트로브를 수신하고 클록 입력에서 상기 인에이블 신호를 수신하도록 연결된 제1 플립-플롭을 포함하는 것인 메모리 서브시스템.
- 제22항에 있어서, 상기 인에이블 신호를 상기 제1 플립-플롭의 상기 클록 입력과 논리 게이트의 제1 입력에 제공하도록 연결된 제2 플립-플롭을 더 포함하되, 상기 논리 게이트의 제2 입력은 상기 데이터 스트로브 신호를 수신하도록 연결된 것인 메모리 서브시스템.
- 제23항에 있어서, 지연 동기 루프(DLL)를 더 포함하고, 상기 DLL은 입력 클록 신호를 지연시키는 것에 의해 출력 클록 신호를 제공하도록 구성되고, 상기 제2 플립-플롭은 상기 출력 클록 신호를 수신하도록 연결되며, 상기 DLL은 상기 레지스터에 저장된 값에 의해 지시된 양만큼 상기 입력 클록 신호를 지연시키도록 구성된 것인 메모리 서브시스템.
- 제24항에 있어서, 트레이닝 유닛을 더 포함하되, 상기 트레이닝 유닛은 상기 데이터 스트로브 신호에 대해 상기 인에이블 신호의 위상을 결정하도록 구성된 것인 메모리 서브시스템.
- 제25항에 있어서, 상기 트레이닝 유닛은 상기 레지스터에 저장된 값을 증분식으로 변화시켜 상기 인에이블 신호의 위상이 상기 프리앰블 내에 선언될 때까지 상기 데이터 스트로브 신호에 대해 상기 인에이블 신호의 위상을 변화시키도록 구성된 것인 메모리 서브시스템.
- 컴퓨터 시스템에서 실행가능한 프로그램에 의해 동작하는 데이터 구조를 포함하는 비-일시적인 컴퓨터 판독가능한 매체로서, 상기 프로그램은 상기 데이터 구조에서 동작하며 상기 데이터 구조에 의해 기술된 회로를 포함하는 집적 회로를 제조하는 공정의 일부를 수행하고, 상기 데이터 구조에 기술된 회로는,
메모리 제어기를 포함하며, 상기 메모리 제어기는 판독 요청을 메모리에 송신하도록 구성되고, 상기 메모리는, 상기 판독 요청에 응답하여, 데이터 및 데이터 스트로브 신호를 상기 메모리 제어기에 제공하도록 구성되며, 상기 메모리 제어기는 트레이닝 유닛을 포함하고, 상기 트레이닝 유닛은,
상기 인에이블 신호의 선언이 상기 데이터 스트로브 신호에 있는 프리앰블 지시값과 일치할 때까지 상기 데이터 스트로브 신호에 대해 인에이블 신호의 위상을 조절하는 동작으로서, 상기 조절하는 동작은 지연 동기 루프(DLL)의 지연을 조절하는 동작을 포함하는 것인, 상기 조절하는 동작; 및
상기 지연의 지시값을 레지스터에 저장하는 동작을 수행하도록 구성된 것인 비-일시적인 컴퓨터 판독가능한 매체. - 제27항에 있어서, 상기 트레이닝 유닛은 데이터 입력에서 상기 데이터 스트로브를 수신하고 클록 입력에서 상기 인에이블 신호를 수신하도록 연결된 제1 플립-플롭을 포함하는 것인 비-일시적인 컴퓨터 판독가능한 매체.
- 제28항에 있어서,
상기 인에이블 신호를 상기 제1 플립-플롭의 상기 클록 입력에 제공하도록 연결된 제2 플립-플롭;
입력 클록 신호를 지연시키는 것에 의해 출력 클록 신호를 제공하도록 구성된 지연 동기 루프(DLL)로서, 상기 제2 플립-플롭은 상기 출력 클록 신호를 수신하도록 연결되고, 상기 DLL은 상기 레지스터에 저장된 값으로 지시된 양만큼 상기 입력 클록 신호를 지연시키도록 구성된 것인, 상기 지연 동기 루프(DLL); 및
상기 인에이블 신호의 위상을 결정하도록 구성되고 상기 인에이블 신호의 위상을 조절하도록 더 구성된 트레이닝 유닛을 더 포함하는 비-일시적인 컴퓨터 판독가능한 매체. - 제27항에 있어서, 상기 데이터 구조는, 다음 유형의 데이터:
HDL(하이-레벨 설계 언어) 데이터;
RTL(레지스터 전송 레벨) 데이터; 및
그래픽 데이터 시스템(GDS) II 데이터
중 하나 이상을 포함하는 것인 비-일시적인 컴퓨터 판독가능한 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/477,642 US8760946B2 (en) | 2012-05-22 | 2012-05-22 | Method and apparatus for memory access delay training |
US13/477,642 | 2012-05-22 | ||
PCT/US2013/042281 WO2013177315A1 (en) | 2012-05-22 | 2013-05-22 | Method and apparatus for memory access delay training |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140147898A true KR20140147898A (ko) | 2014-12-30 |
KR101549648B1 KR101549648B1 (ko) | 2015-09-03 |
Family
ID=48614140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147033663A KR101549648B1 (ko) | 2012-05-22 | 2013-05-22 | 메모리 액세스 지연을 트레이닝하기 위한 방법 및 장치 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8760946B2 (ko) |
EP (1) | EP2852898B1 (ko) |
JP (1) | JP5819027B2 (ko) |
KR (1) | KR101549648B1 (ko) |
CN (1) | CN104335197B (ko) |
IN (1) | IN2014DN10277A (ko) |
WO (1) | WO2013177315A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9892772B2 (en) | 2016-03-16 | 2018-02-13 | SK Hynix Inc. | Semiconductor system and method of performing write leveling operation thereof |
KR20220145808A (ko) * | 2021-04-19 | 2022-10-31 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 클록 동기화를 위한 시스템, 신호 동기화를 제어하기 위한 방법, 및 저장 매체 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140181452A1 (en) * | 2012-12-26 | 2014-06-26 | Nvidia Corporation | Hardware command training for memory using read commands |
US9824772B2 (en) * | 2012-12-26 | 2017-11-21 | Nvidia Corporation | Hardware chip select training for memory using read commands |
US9607714B2 (en) | 2012-12-26 | 2017-03-28 | Nvidia Corporation | Hardware command training for memory using write leveling mechanism |
US9378169B2 (en) | 2012-12-31 | 2016-06-28 | Nvidia Corporation | Method and system for changing bus direction in memory systems |
US9190129B2 (en) * | 2013-05-31 | 2015-11-17 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Continuous tuning of preamble release timing in a double data-rate memory device interface |
US9478268B2 (en) * | 2014-06-12 | 2016-10-25 | Qualcomm Incorporated | Distributed clock synchronization |
KR20160147517A (ko) | 2015-06-15 | 2016-12-23 | 에스케이하이닉스 주식회사 | 반도체시스템 |
US10331195B2 (en) * | 2016-06-06 | 2019-06-25 | Qualcomm Incorporated | Power and performance aware memory-controller voting mechanism |
US10103837B2 (en) | 2016-06-23 | 2018-10-16 | Advanced Micro Devices, Inc. | Asynchronous feedback training |
US10749756B2 (en) | 2016-06-24 | 2020-08-18 | Advanced Micro Devices, Inc. | Channel training using a replica lane |
KR102536657B1 (ko) * | 2016-07-12 | 2023-05-30 | 에스케이하이닉스 주식회사 | 반도체 장치 및 반도체 시스템 |
US10311236B2 (en) | 2016-11-22 | 2019-06-04 | Advanced Micro Devices, Inc. | Secure system memory training |
KR102649888B1 (ko) | 2016-11-29 | 2024-03-22 | 에스케이하이닉스 주식회사 | 트레이닝 장치 및 이를 포함하는 반도체 시스템 |
KR102671708B1 (ko) * | 2016-12-16 | 2024-06-04 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10545866B1 (en) * | 2017-06-30 | 2020-01-28 | Cadence Design Systems, Inc. | Method and system for efficient re-determination of a data valid window |
JP6890055B2 (ja) * | 2017-06-30 | 2021-06-18 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
KR102273191B1 (ko) | 2017-09-08 | 2021-07-06 | 삼성전자주식회사 | 스토리지 장치 및 그것의 데이터 트레이닝 방법 |
KR102447499B1 (ko) * | 2017-10-19 | 2022-09-26 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
CN108922570B (zh) * | 2018-07-13 | 2020-11-13 | 豪威科技(上海)有限公司 | 读dqs信号的相位偏移检测方法、训练方法、电路及系统 |
JP2020046918A (ja) * | 2018-09-19 | 2020-03-26 | キオクシア株式会社 | 記憶装置及び制御方法 |
KR102691395B1 (ko) * | 2018-12-20 | 2024-08-05 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 시스템의 동작 방법 및 메모리 콘트롤러 |
US10622982B1 (en) * | 2019-01-10 | 2020-04-14 | Western Digital Technologies, Inc. | Measurement, calibration and tuning of memory bus duty cycle |
CN113450852B (zh) | 2020-03-25 | 2022-04-12 | 长鑫存储技术有限公司 | 半导体存储器的训练方法及相关设备 |
KR20210136203A (ko) | 2020-05-06 | 2021-11-17 | 삼성전자주식회사 | 저장 장치 및 그것의 리트레이닝 방법 |
JP2022146543A (ja) * | 2021-03-22 | 2022-10-05 | キオクシア株式会社 | 半導体記憶装置、メモリシステム、および方法 |
US11967960B2 (en) * | 2021-07-30 | 2024-04-23 | Advanced Micro Devices, Inc. | Methods and apparatus for synchronizing data transfers across clock domains using heads-up indications |
US12068021B2 (en) * | 2021-12-28 | 2024-08-20 | Micron Technology, Inc. | Low power clock injection during idle mode operations |
CN116501268B (zh) * | 2023-06-28 | 2024-02-27 | 牛芯半导体(深圳)有限公司 | 应用于ddr phy的数据读取方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100543910B1 (ko) * | 2003-05-30 | 2006-01-23 | 주식회사 하이닉스반도체 | 디지털 지연고정루프 및 그의 제어 방법 |
US20050050375A1 (en) | 2003-08-29 | 2005-03-03 | Mark Novak | Memory interface system and method |
KR100605588B1 (ko) * | 2004-03-05 | 2006-07-28 | 주식회사 하이닉스반도체 | 반도체 기억 소자에서의 지연 고정 루프 및 그의 클럭록킹 방법 |
US7543172B2 (en) | 2004-12-21 | 2009-06-02 | Rambus Inc. | Strobe masking in a signaling system having multiple clock domains |
US7457175B1 (en) | 2006-10-23 | 2008-11-25 | 3Par, Inc. | Dual data rate memory strobe checker |
WO2008079910A2 (en) | 2006-12-20 | 2008-07-03 | Rambus Inc. | Strobe acquisition and tracking |
US7886174B2 (en) | 2007-06-27 | 2011-02-08 | Intel Corporation | Memory link training |
US7924637B2 (en) | 2008-03-31 | 2011-04-12 | Advanced Micro Devices, Inc. | Method for training dynamic random access memory (DRAM) controller timing delays |
KR101040242B1 (ko) * | 2008-10-13 | 2011-06-09 | 주식회사 하이닉스반도체 | 데이터 스트로브 신호 생성장치 및 이를 이용하는 반도체 메모리 장치 |
US8385144B2 (en) | 2011-02-25 | 2013-02-26 | Lsi Corporation | Utilizing two algorithms to determine a delay value for training DDR3 memory |
JP5733126B2 (ja) * | 2011-09-15 | 2015-06-10 | 富士通セミコンダクター株式会社 | メモリインタフェース回路及びタイミング調整方法 |
-
2012
- 2012-05-22 US US13/477,642 patent/US8760946B2/en active Active
-
2013
- 2013-05-22 WO PCT/US2013/042281 patent/WO2013177315A1/en active Application Filing
- 2013-05-22 CN CN201380027176.XA patent/CN104335197B/zh active Active
- 2013-05-22 JP JP2015514160A patent/JP5819027B2/ja active Active
- 2013-05-22 IN IN10277DEN2014 patent/IN2014DN10277A/en unknown
- 2013-05-22 KR KR1020147033663A patent/KR101549648B1/ko active IP Right Grant
- 2013-05-22 EP EP13728588.8A patent/EP2852898B1/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9892772B2 (en) | 2016-03-16 | 2018-02-13 | SK Hynix Inc. | Semiconductor system and method of performing write leveling operation thereof |
KR20220145808A (ko) * | 2021-04-19 | 2022-10-31 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 클록 동기화를 위한 시스템, 신호 동기화를 제어하기 위한 방법, 및 저장 매체 |
Also Published As
Publication number | Publication date |
---|---|
JP5819027B2 (ja) | 2015-11-18 |
JP2015520902A (ja) | 2015-07-23 |
CN104335197A (zh) | 2015-02-04 |
EP2852898A1 (en) | 2015-04-01 |
US8760946B2 (en) | 2014-06-24 |
CN104335197B (zh) | 2017-04-19 |
EP2852898B1 (en) | 2017-08-02 |
KR101549648B1 (ko) | 2015-09-03 |
IN2014DN10277A (ko) | 2015-08-07 |
US20130315014A1 (en) | 2013-11-28 |
WO2013177315A1 (en) | 2013-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101549648B1 (ko) | 메모리 액세스 지연을 트레이닝하기 위한 방법 및 장치 | |
KR102222420B1 (ko) | 메모리 물리 계층 인터페이스를 훈련하기 위한 통합 제어기 | |
US8880831B2 (en) | Method and apparatus to reduce memory read latency | |
US20120284576A1 (en) | Hardware stimulus engine for memory receive and transmit signals | |
KR101471251B1 (ko) | 동적 데이터 스트로브 검출 | |
EP3105761B1 (en) | Memory physical layer interface logic for generating dynamic random access memory (dram) commands with programmable delays | |
US11994930B2 (en) | Optimizing power in a memory device | |
US20110040902A1 (en) | Compensation engine for training double data rate delays | |
US10083736B1 (en) | Adaptive calibration scheduling for a memory subsystem based on calibrations of delay applied to data strobe and calibration of reference voltage | |
JP2009163758A (ja) | クロックの異なるバス間におけるデータ転送 | |
US20160048334A1 (en) | System and method for calibration of a memory interface | |
US9183125B2 (en) | DDR receiver enable cycle training | |
US20230112432A1 (en) | Dynamic setup and hold times adjustment for memories | |
US9354658B2 (en) | Method for asynchronous gating of signals between clock domains | |
US9891853B1 (en) | Memory calibration abort | |
EP4416729A1 (en) | Dynamic setup and hold times adjustment for memories | |
CN118103908A (zh) | 存储器的动态设置时间和保持时间调节 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated 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: 20180730 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190729 Year of fee payment: 5 |