KR20190000387A - 센서 데이터를 검출하는 것에 기초하는 임피던스 보상 - Google Patents

센서 데이터를 검출하는 것에 기초하는 임피던스 보상 Download PDF

Info

Publication number
KR20190000387A
KR20190000387A KR1020187037130A KR20187037130A KR20190000387A KR 20190000387 A KR20190000387 A KR 20190000387A KR 1020187037130 A KR1020187037130 A KR 1020187037130A KR 20187037130 A KR20187037130 A KR 20187037130A KR 20190000387 A KR20190000387 A KR 20190000387A
Authority
KR
South Korea
Prior art keywords
memory
impedance
setting
memory device
impedance calibration
Prior art date
Application number
KR1020187037130A
Other languages
English (en)
Other versions
KR102617628B1 (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 KR20190000387A publication Critical patent/KR20190000387A/ko
Application granted granted Critical
Publication of KR102617628B1 publication Critical patent/KR102617628B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/46Test trigger logic
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50008Marginal testing, e.g. race, voltage or current testing of impedance
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1057Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load

Abstract

메모리 서브시스템은 임피던스 보상에 대한 필요성을 모니터하는 메모리 디바이스에 의해 메모리 I/O 임피던스 보상을 관리한다. 변경이 필요하지 않을 때 메모리 제어기가 임피던스 보상을 업데이트하게 하는 신호를 주기적으로 전송하는 대신에, 메모리 디바이스는 임피던스 보상 변경을 수행할 준비가 된 때를 표시할 수 있다. 메모리 제어기는 메모리에 의해 설정되는 보상 플래그에 응답하여 또는 센서 값이 임계값을 초과하여 변경되었다는 결정에 응답하여 임피던스 보상 신호를 메모리 디바이스에 전송할 수 있다.

Description

센서 데이터를 검출하는 것에 기초하는 임피던스 보상{IMPEDANCE COMPENSATION BASED ON DETECTING SENSOR DATA}
<기술분야>
본 발명의 실시예들은 일반적으로 디바이스 사이의 I/O 임피던스 보상에 관한 것으로, 보다 구체적으로는 센서 데이터를 검출하는 것에 기초하여 임피던스 보상을 관리하는 것에 관한 것이다.
<저작권 통지/승인>
본 특허 문헌의 개시내용의 부분들은 저작권 보호를 받는 자료를 포함할 수 있다. 저작권 소유자는 누구든지 본 특허 문헌 또는 특허 개시내용을 특허 및 상표청 특허 파일 또는 기록들에 나타나는 대로 재생산하는 것에는 이의가 없지만, 다른 경우라면 무엇이든 간에 모든 저작권 권리를 보유한다. 저작권 통지는 아래에 설명되는 바와 같은 모든 데이터에, 그리고 본 명세서에 첨부하는 도면들에서, 뿐만 아니라 아래에 설명되는 바와 같은 소프트웨어에 적용된다: Copyright ⓒ 2015, Intel Corporation, All Rights Reserved.
메모리를 사용하는 시스템들이 스토리지 요구들에 있어서 증가함에 따라 메모리 디바이스들은 보다 높은 밀도들로 계속 확장된다. 메모리량이 훨씬 증가함에 따라, 소비자 및 업무용 전자기기들 뿐만 아니라 서버들, 데스크톱 또는 랩톱 컴퓨터들, 모바일 디바이스들과 같은 컴퓨팅 플랫폼들이 성능이 증가될 것으로 기대된다.
메모리 크기를 또한 증가시키면서 성능을 증가시키는 것은 대역폭 확장을 증가시키는 것을 초래하였다. 증가된 메모리 대역폭 확장은 적절한 신호 무결성을 유지할 수 있도록 I/O(input/output) 임피던스 보상(ZQ Comp)을 요구하여 왔다. 이전 세대들의 메모리에서는, 상이한 형태들의 저항 보상 또는 ZQ 보상은 요구되는 허용 오차를 유지하기 위해 메모리 디바이스들(예를 들어, DRAM(dynamic random access memory))에서의 모드들을 사용하는 메모리 제어기에 의해 주로 관리된다. 모드들은 상이한 구성 설정들에서 동작하는 것을 의미한다.
빈도수들이 증가함에 따라, 허용 오차 마진들은 정밀도가 계속 증가하고, 그 I/O 인터페이스 유휴 기간과 관련하여 메모리 제어기의 요구되는 오버헤드 또한 계속 증가한다. 메모리 제어기의 요구되는 오버헤드가 클수록, I/O 허용 오차들을 관리하는데 더 많은 대역폭이 전용되며, 이는 성능에 부정적으로 영향을 미칠 수 있다. 임피던스 보상에 대한 통상적인 접근방식들은 메모리 제어기가 최악의 경우 시스템 가정들에 기초하여 I/O 종료를 주기적으로 관리할 것을 요구한다. 많은 경우들에서 메모리 디바이스들의 전압 및 온도가 안정되면 임피던스 보상 동작을 수행할 것이 요구되지 않을 수 있다. 보다 구체적으로, 활성 기간 동안 메모리 디바이스의 온도 및 전압의 동작 조건들이 상당히 안정될 수 있고 임피던스 보상 조절을 요구하지 않을 수 있다. 따라서, 메모리 제어기는 메모리 디바이스들에 불필요하게 ZQ 보상 신호를 발행할 것이다. 불필요한 ZQ 보상 신호들의 발행은 DRAM들이 조절들 사이에서 더 긴 기간 동작할 수 있는 최악의 경우에 따라 메모리 제어기가 다수의 DRAM 부하들을 관리하는 성능을 저하시키고 복잡성을 증가시킨다.
이하의 설명은 본 발명의 실시예들의 구현들의 예로서 주어지는 예시들을 갖는 도면들의 논의를 포함한다. 이러한 도면들은 제한으로서가 아니라 예로서 이해되어야 한다. 본 명세서에서 사용되는 바와 같이, 하나 이상의 "실시예들(embodiments)"에 대한 참조들은 본 발명의 적어도 하나의 구현에 포함되는 특정 특징, 구조, 및/또는 특성을 설명하는 것으로서 이해되어야 한다. 따라서, 본 명세서에 나타나는 "일 실시예에서(in one embodiment)" 또는 "대안적인 실시예에서(in an alternate embodiment)"와 같은 구문들은 본 발명의 다양한 실시예들 및 구현들을 설명하며, 모두가 반드시 동일한 실시예를 지칭하는 것은 아니다. 그러나, 이들이 또한 반드시 상호 배타적인 것은 아니다.
도 1은 임피던스 보상이 메모리 디바이스 센서 데이터에 기초하는 시스템의 실시예의 블록도이다.
도 2는 메모리 디바이스 센서 데이터가 리프레시 제어 설정들 외에도 임피던스 보상을 위해 사용될 수 있는 메모리 서브시스템의 실시예의 블록도이다.
도 3은 적응형 임피던스 보상을 위한 명령/어드레스 타이밍의 타이밍도의 실시예이다.
도 4는 메모리 디바이스 센서 데이터에 기초하여 임피던스 보상을 수행하는 프로세스의 실시예의 흐름도이다.
도 5는 셀프-리프레시 제어 및 임피던스 보상을 위해 메모리 디바이스 센서 데이터를 적용하는 프로세스의 실시예의 흐름도이다.
도 6은 메모리 디바이스 센서 데이터에 기초하는 임피던스 보상이 구현될 수 있는 컴퓨팅 시스템의 실시예의 블록도이다.
도 7은 메모리 디바이스 센서 데이터에 기초하는 임피던스 보상이 구현될 수 있는 모바일 디바이스의 실시예의 블록도이다.
본 명세서에 제시되는 창의적 개념들의 다른 잠재적인 실시예들 또는 구현들을 논의할 뿐만 아니라, 이하 설명되는 실시예들의 일부 또는 전부를 도시할 수 있는 도면들의 설명을 포함하여, 특정 상세사항들 및 구현들의 설명이 뒤따른다.
본 명세서에 설명되는 바와 같이, 메모리 서브시스템은 메모리 I/O(input/output) 임피던스 보상을 관리하기 위해 메모리 디바이스로부터의 센서 데이터를 이용한다. 따라서, 메모리 제어기 및 메모리 디바이스는 최악의 경우 시나리오들에 따라 임피던스 보상을 관리하는 대신 임피던스 보상에 대한 필요성을 모니터할 수 있다. 따라서, 메모리 제어기는, 변경이 필요하지 않을 때 메모리 제어기가 정기적으로 ZQ 보상 신호를 전송하게 하는 대신, 메모리 디바이스가 업데이트 준비가 된 때 ZQ 보상(임피던스 보상) 신호를 전송할 수 있다. ZQ 보상 신호는 메모리 디바이스에 의해 임피던스 보상에 대한 업데이트를 야기하도록 메모리 제어기에 의해 발행되는 모든 신호들을 지칭할 수 있다. 일 실시예에서, ZQ 보상 신호는 ZQCal 시작 신호(예를 들어, 임피던스 캘리브레이션을 착수하라는 신호) 및/또는 ZQCal 래치 신호(예를 들어, 임피던스 보상을 위한 구성을 설정하라는 신호)를 포함할 수 있다. 일 실시예에서, 메모리 디바이스는 임피던스 보상 변경을 수행할 준비가 된 때를 표시한다. 일 실시예에서, 메모리 제어기는 보상 플래그 또는 메모리 디바이스에 의해 설정되는 다른 표시에 응답하여 메모리 디바이스에 ZQ 보상 신호를 전송할 수 있다. 일 실시예에서, 메모리 제어기는 메모리 디바이스에 의해 기록되는 센서 값이 임계값을 초과하여 변경되었다는 결정에 응답하여 ZQ 보상 신호를 전송할 수 있다.
임피던스 보상에 센서 데이터를 적용하는 것은 적응형 임피던스 보상 관리를 허용한다. 예를 들어, 메모리 디바이스는 임계값보다 큰 변경이 동작 조건에서 발생한 때를 표시하는 센서 데이터를 기록할 수 있다. 변경을 표시하는 플래그는 플래그에 응답하여 선택적으로 ZQ 보상 신호를 전송하도록 메모리 제어기를 트리거할 수 있다. 메모리 제어기는 C/A(command/address) 버스 상의 다운 시간을 관리하기 위해 다수의 메모리 디바이스들에 ZQ 보상 신호를 선택적으로 발행할 수 있고, 따라서 C/A 버스의 대역폭 이용을 향상시킬 수 있다. 일 실시예에서, 메모리 제어기는 센서 데이터에 응답하여 ZQCal 래치 명령만을 발행한다. 일 실시예에서, 메모리 제어기는 센서 데이터에 응답하여 ZQCal 시작 명령 및 ZQCal 래치 명령 양자 모두를 발행한다.
일 실시예에서, 메모리 디바이스는 온도 센서에 의해서와 같이 온도 또는 열적 성능 조건 또는 동작 조건에서의 변경을 검출하는 것에 응답하여 플래그를 생성한다. 일 실시예에서, 메모리 디바이스는 전압 센서에 의해서와 같이 동작 전압에서의 변경을 검출하는 것에 응답하여 플래그를 생성한다. 현대의 메모리 디바이스들은 성능 조건에서의 변경들을 검출하는 다수의 온-다이(on-die) 센서들을 포함한다는 점이 이해될 것이다. 통상적으로 이러한 정보는 셀프-리프레시의 동작 또는 다른 동작들을 조절하는데 사용된다. 따라서, 메모리 디바이스는 이미 존재하지만 다른 목적들로 통상적으로 사용되는 센서들로 I/O 임피던스에 영향을 주는 조건들을 모니터할 수 있다.
일 실시예에서, 메모리 디바이스는 메모리 디바이스 상의 모드 레지스터 또는 다른 레지스터에 센서 데이터를 기록한다. 일 실시예에서, 메모리 디바이스 상의 제어기는 센서 데이터가 임계값 이상으로 변한 때를 스스로 결정하고, 모드 레지스터에 플래그를 설정한다. 일 실시예에서, 메모리 디바이스는 센서 데이터를 변경이 임계값을 초과하는지 결정할 수 있는 메모리 제어기에 주기적으로 제공하고, 임피던스 보상을 수행할 필요성을 표시한다. 일 실시예에서, 메모리 제어기는 임피던스 보상 조절에 대한 필요성을 표시하는 플래그가 설정되었는지 결정하기 위해 모드 레지스터를 주기적으로 모니터하거나 체크한다. 일 실시예에서는, 메모리 제어기와 메모리 디바이스 사이의 커넥터가 임피던스 보상을 위한 플래그로서 사용될 수 있다. 커넥터는 다수의 조건 플래그들에 대해 사용될 수 있으며, 레지스터를 판독하는 것에 의해 플래그가 설정되면 무엇을 표시할지 결정할 수 있다.
일 실시예에서, 메모리 제어기는 메모리 디바이스 I/O 설정들에서의 변경을 트리거하는 임피던스 보상 신호를 발행한다. 예를 들어, 임피던스 보상 신호는 드라이버 임피던스에 대해 조절을 행하도록 메모리 디바이스를 트리거할 수 있다. 다른 예에서, 임피던스 보상 신호는 온-다이 종료 설정들에 대한 조절을 행하도록 메모리 디바이스를 트리거할 수 있다.
메모리 디바이스들에 대한 지칭은 상이한 메모리 타입들에 적용될 수 있다. 메모리 디바이스들은 휘발성 메모리 기술들을 일반적으로 지칭한다. 휘발성 메모리는 디바이스에 대해 전력이 중단되면 그것의 상태(및 따라서 그 상에 저장되는 데이터)가 불확정적인 메모리이다. 비휘발성 메모리는 디바이스에 대해 전력이 중단되더라도 그것의 상태가 확정적인 메모리를 지칭한다. 동적 휘발성 메모리는 상태를 유지하기 위해 디바이스에 저장된 데이터를 리프레시할 것을 요구한다. 동적 휘발성 메모리의 일 예는 DRAM(dynamic random access memory), 또는 SDRAM(synchronous DRAM)과 같은 일부 변종을 포함한다. 본 명세서에 설명되는 바와 같은 메모리 서브시스템은, DDR3(dual data rate version 3, original release by JEDEC(Joint Electronic Device Engineering Council) on June 27, 2007, currently on release 21), DDR4(DDR version 4, initial specification published in September 2012 by JEDEC), LPDDR3(low power DDR version 3, JESD209-3B, Aug 2013 by JEDEC), LPDDR4(LOW POWER DOUBLE DATA RATE (LPDDR) version 4, JESD209-4, originally published by JEDEC in August 2014), WI02(Wide I/O 2 (Widel02), JESD229-2, originally published by JEDEC in August 2014), HBM(HIGH BANDWIDTH MEMORY DRAM, JESD235, originally published by JEDEC in October 2013), DDR5(DDR version 5, currently in discussion by JEDEC), LPDDR5(currently in discussion by JEDEC), WI03(Wide I/O 3, currently in discussion by JEDEC), HBM2 (HBM version 2), currently in discussion by JEDEC), 및/또는 다른 것들과 같은 다수의 메모리 기술들, 및 이러한 사양들의 파생물들 또는 확장물에 기초하는 기술들과 호환가능할 수 있다.
휘발성 메모리에 대해 추가적으로 또는 대안적으로, 일 실시예에서, 메모리 디바이스들에 대한 지칭은 디바이스에 대해 전력이 중단되더라도 그 상태가 확정적인 비휘발성 메모리 디바이스를 지칭할 수 있다. 일 실시예에서, 비휘발성 메모리 디바이스는 NAND 또는 NOR 기술들과 같은 블록 어드레스 지정가능한 메모리 디바이스이다. 따라서, 메모리 디바이스는, 3차원 교차점 메모리 디바이스, 또는 다른 바이트 어드레스 지정가능한 비휘발성 메모리 디바이스들과 같은, 차세대 비휘발성 디바이스들을 또한 포함할 수 있다. 일 실시예에서, 메모리 디바이스는 멀티-임계 레벨 NAND 플래시 메모리, NOR 플래시 메모리, 싱글 또는 멀티-레벨 PCM(Phase Change Memory), 저항성 메모리, 나노와이어 메모리, FeTRAM(ferroelectric transistor random access memory), 멤리스터 기술을 포함하는 MRAM(magnetoresistive random access memory), 또는 STT(spin transfer torque)-MRAM, 또는 위의 것들 중 임의의 것의 조합, 또는 다른 메모리일 수 있거나, 이들을 포함할 수 있다.
도 1은 임피던스 보상이 메모리 디바이스 센서 데이터에 기초하는 시스템의 실시예의 블록도이다. 시스템(100)은 본 명세서에 설명되는 임의의 실시예에 따라 메모리 디바이스(120)의 임피던스 보상을 관리하는 메모리 제어기(110)를 갖는 메모리 서브시스템의 컴포넌트들을 나타낸다. 시스템(100)은 I/O 임피던스 보상을 수행하는 임의의 타입의 컴퓨팅 디바이스 또는 전자 회로에 포함될 수 있으며, 메모리 서브시스템이 전반적으로 사용되는 예이지만 메모리 서브시스템들에 반드시 제한되는 것은 아니다. 시스템(100)은 메모리(120)에 저장된 데이터에 기초하여 동작들을 실행하거나 메모리(120)에 저장할 데이터를 생성하는 프로세싱 로직인 호스트 또는 프로세서로부터 메모리 액세스 요청들을 수신한다. 이러한 프로세서는, 싱글 코어 또는 멀티코어 프로세서인, 호스트 프로세서, CPU(central processing unit), 마이크로제어기 또는 마이크로프로세서, 그래픽 프로세서, 주변기기 프로세서, 애플리케이션 특정 프로세서, 또는 다른 프로세서일 수 있거나 이들을 포함할 수 있다.
메모리 제어기(110)는 메모리(120)와 인터페이스하고 메모리에 저장된 데이터에 대한 액세스를 관리하는 로직을 나타낸다. 일 실시예에서, 메모리 제어기(110)는 호스트 프로세서의 하드웨어에 집적된다. 일 실시예에서, 메모리 제어기(110)는 호스트 프로세서와 별도인 독립형 하드웨어이다. 메모리 제어기(110)는 프로세서를 포함하는 기판 상의 별도 회로일 수 있다. 메모리 제어기(110)는 (예를 들어, SoC(system on a chip)와 같은) 프로세서 다이와 공통 기판 상에 집적되는 별도의 다이 또는 칩일 수 있다. 일 실시예에서, 메모리(120)의 적어도 일부는 메모리 제어기(110) 및/또는 호스트 프로세서와 SoC에 포함될 수 있다.
일 실시예에서, 메모리(120)는 휘발성 메모리 리소스들을 포함한다. 일 실시예에서, 메모리(120)는 DRAM들을 포함한다. 메모리(120)의 메모리 리소스들은, 예를 들어, 별도 채널들, DIMM들(dual inline memory modules), 랭크들, DRAM들, 뱅크들, 페이지들, 로우들, 캐시라인들, 및/또는 다른 아키텍처가 있는 상이한 레벨들의 메모리로서 관리될 수 있다. 각각의 별도 메모리 레벨 및 리소스는 개별적으로 어드레스 지정이 가능할 수 있다. 일 실시예에서, 시스템(100)은 다중 메모리 120[0] ... 120[N-1]를 포함하며, 여기서 N은 정수(통상적으로 2진 정수, 또는 2N + 1의 그룹들에서의 것)이다.
메모리(120)는 메모리 제어기(110)의 대응하는 I/O(112)와 인터커넥트하는 하드웨어 리소스들을 포함하는 I/O(122)를 포함한다. I/O(112, 122)는 드라이버들, ODT(on die termination), 핀들, 커넥터들, 트레이스들, 패드들, 와이어들, 및/또는 다른 하드웨어를 포함할 수 있다. I/O(122 및 112)는, 메모리 제어기(110)가 액세스 명령들 및 어드레스 정보를 전송하는 C/A(command/address) 버스, 및 메모리 제어기(110)와 메모리(120)가 데이터를 교환하게 하는 데이터 버스와 같이, 신호 라인들 중 하나 이상의 버스들에 통상적으로 조직화된다. 데이터는 판독 명령으로 상이한 메모리 리소스들로부터 판독되거나 또는 기입 명령으로 메모리 리소스들에 기입된다. I/O(112) 및 I/O(122)는, x4, x8 또는 x16 인터페이스들과 같은 상이한 크기들의 데이터 인터페이스들을 포함할 수 있으며, 여기서 'x'는 인터페이스를 나타내고 'x' 뒤의 숫자는 인터페이스의 데이터 비트 폭을 나타낸다(예를 들어, x4는 4비트 폭 인터페이스를 갖는 등).
일 실시예에서, 각각의 메모리(120)는 적어도 하나의 센서(124)를 포함한다. 센서(124)는 열 센서, 전류 센서, 전압 센서, 또는 메모리의 동작 조건을 모니터하는 다른 디바이스를 포함할 수 있다. 상이한 I/O 임피던스가 상이한 동작 조건들에 유용하다는 점이 이해될 것이다. 따라서, 일 실시예에서, 메모리(120)는 센서(124)에 의해 검출되는 동작 조건에서의 변경을 메모리 제어기(110)에 보고한다. 동작 조건에서의 변경에 응답하여, 메모리 제어기(110)는, 메모리(120)의 I/O 임피던스(입력 또는 출력)를 구성하는 하드웨어 메커니즘들을 나타내는, ZQ 보상(128)에 관련된 하나 이상의 설정들을 조절할 수 있다. 일 실시예에서, 메모리(120)가 센서(124)의 판독으로부터 동작 조건이 임계값 이상 변경되었다고 결정하면, 메모리(120)는 플래그(126)를 설정할 수 있다.
공통 컴포넌트 넘버링은 메모리(120[N-1:0]) 각각에 대해 도시되지만, 각각의 컴포넌트는 각각의 메모리 디바이스 내에서 독립적으로 동작한다는 점이 이해될 것이다. 따라서, 메모리(120[0])의 센서(124)는 동작 조건에서의 변경을 표시하는 플래그(126)를 트리거할 수 있는 한편 동일한 동작 조건이 메모리(120[N-1]) 내에서는 아직 트리거되지 않는다. 이와 같이, 각각의 메모리(120)는 자신의 동작 조건을 메모리 제어기(110)에 별도로 표시할 수 있다. 일 실시예에서, 메모리 제어기(110)는 각각의 개별 메모리(120)의 ZQ 보상(128)을 별도로 관리한다. LPDDR4 구현에서와 같은, 일 실시예에서, 각각의 메모리(120)는 동일한 메모리 다이 상에 2개의 별도 채널들을 포함할 수 있다. 이러한 구현에서, ZQ 보상(128)은, 동일한 다이 상의 각각의 채널의 근접성이 동일한 동작 조건들을 경험할 것이라는 가정하에, 단일 다이의 양쪽 채널들에 적용될 수 있다.
메모리 제어기(110)는 스케줄러(130)를 포함하며, 이는 메모리(120)에 대해 액세스 동작들 및 명령들의 타이밍을 관리하는, 메모리 제어기(110) 내의 로직을 나타낸다. 스케줄러(130)는 호스트 프로세서에 의해 생성되는 데이터에 대한 요청들을 서비스하는 명령들을 생성하고 이들을 어떻게 정리할지 결정할 수 있다. 일 실시예에서, 스케줄러(130)는 임피던스 보상 스케줄러(132)를 포함한다. 일 실시예에서, 스케줄러(132)는 스케줄러(130)의 로직의 일부이다. 스케줄러(132)는 메모리 제어기(110)가 다양한 메모리들(120)에서 ZQ 보상(128)의 설정들을 조절하는 것에 관련된 동작들을 관리하는 능력에 관하여 구체적으로 도시된다.
각각의 메모리(120)가 열 센서를 포함하는 센서(124)를 갖는 DRAM이고, 플래그(126)는 DRAM의 모드 레지스터에서의 비트인 예를 고려하자. 일 실시예에서, DRAM은 ZQ 보상 설정에 대한 조절이 요구될 때를 메모리 제어기(110)에 통지하는데 자신의 기존의 온-다이 열 센서를 이용한다. 일 실시예에서, 메모리 제어기(110)는 (예를 들어, 비트를 주기적으로 판독하여 그 상태를 결정하는) 126으로 나타낸 모드 레지스터 비트를 모니터한다. 각각의 DRAM(120)은 최종 통지로부터의 온도에서의 차이에 기초하여 플래그(126)를 설정할 수 있다. 따라서, 일단 DRAM이 플래그(126)를 설정하면, ZQ 보상(128)을 조절할 필요성을 표시하기 위해 후속 플래그에 대한 기준선으로서 그 값을 저장할 수 있다. 센서 판독에서의 변경은 포지티브 또는 네거티브 변경일 수 있다는 점이 이해될 것이다. 일 실시예에서, 센서(124)는 내부적으로 비교를 제어하고, ZQ 캘리브레이션 래치 명령(예를 들어, ZQCal 래치)을 발행하도록 메모리 제어기(110)를 트리거하라고 플래그(126)를 설정한다.
일 실시예에서, 비교 자체를 수행하는 것보다는 오히려, 메모리(120)는 센서(124)의 이전 및 현재 판독들(값들)을 저장할 수 있고, 그 값들을 판독하고 비교하도록 메모리 제어기(110)를 트리거할 수 있다. 플래그(126) 또는 메모리(120)로부터의 다른 표시로, 호스트 또는 메모리 제어기(110)는 ZQCal 래치 명령을 주기적으로 발행하는 것과 관련된 타이밍을 관리할 필요가 없을 것이다. 따라서, 메모리(120)는 발행된 명령을 필요로 할 때 명령을 발행하도록 메모리 제어기(110)를 트리거할 수 있고, 메모리 제어기(110)는 타이밍을 관리할 필요가 없거나 또는 메모리(120)에 의해 무시될 C/A 버스 대역폭 전송 명령들(ZQ 보상 변경이나 업데이트가 필요없기 때문에 무시됨)을 다 사용할 필요가 없다.
단일 메모리 디바이스(120)에 대한 이점들 외에도, 컴퓨팅 디바이스에서의 시스템(100)의 많은 애플리케이션들이 다수의 메모리 디바이스들(120)을 포함할 것이라는 점이 이해될 것이다. 다수의 메모리 디바이스들(120)로, 메모리 제어기(110)는 모든 메모리들(120)에 ZQ 보상 신호를 발행하는 타이밍을 관리할 것이 통상적으로 요구된다. 각각의 개별 디바이스에 대한 타이밍은 통상적으로 1마이크로초(us) 정도이지만, 이러한 프로세스는 밀리초(ms) 이상으로 통상적으로 시간이 걸린다. 메모리 제어기(110)가 각각의 메모리 디바이스 상의 센서 데이터에 응답하여 ZQ 보상 신호들을 발행하게 하는 것에 의해, 메모리 제어기(110)는 상당한 대역폭을 절약할 수 있다.
추가적으로, 일 실시예에서, ZQ 보상 스케줄러(132)는 ZQ 보상 신호들을 발행하기에 바람직한 타이밍을 결정하는 로직을 포함할 수 있다. 예를 들어, 일 실시예에서, 스케줄러(132)는 임계 수의 메모리들(120)(예를 들어, 하나보다 많은 수)이 임의의 ZQ 보상 신호들을 생성하기 전에 플래그(126)를 설정할 때까지 대기한다. 따라서, 스케줄러(132)가 ZQ 보상 신호(들)을 스케줄링하기 위해 C/A 버스 상의 액세스 트래픽 명령들을 디스에이블할 때, 다수의 디바이스들 대한 신호들을 발행하고 다수의 디바이스들에 걸쳐 오버헤드를 분산시킬 수 있다. 일 실시예에서, 스케줄러(132)는, 제1 플래그가 검출된 이후로 임계 기간이 경과되지 않는 한, 임계 수의 메모리들(120)이 플래그(126)를 트리거할 때까지 대기하고 나서, 여하튼 ZQ 보상 신호들을 발행하는 로직을 포함한다. 일 실시예에서, 메모리 제어기는 설정되는 하나 이상의 플래그들(126)에 응답하여 ZQ 보상 신호들의 시퀀스를 다수의 병렬 메모리들(120)에 전송한다. 일 실시예에서, 메모리 제어기(110)는 메모리들 중 하나에 의해 제1 플래그(126)를 검출하는 것에 응답하여 임피던스 보상을 위한 일련의 명령들을 서브세트 또는 모든 메모리들(120)에 전송한다.
각각의 상이한 메모리(120)로부터의 플래그들(126)를 별도로 모니터하는 것에 의해, 메모리 제어기(110)는 필요하지 않은 ZQ 보상 신호들을 전송하는 것을 회피할 수 있다. 요구되지 않을 때 예방적으로 메모리 제어기(110) 및 메모리들(120) 양자 모두가 ZQ 보상 동작들을 수행하게 함에 있어서의 오버헤드를 메모리 제어기(110)가 초래하게 하는 대신에, 시스템(100)은 이러한 동작들에 대한 필요성에 응답할 수 있다. 이러한 동작은 임피던스 보상이 관리될 수 있는 방법에 대한 조절들을 허용하는 것에 의해 시스템 성능을 향상시키는 다수의 경로들 제공할 수 있다. 예를 들어, 일 실시예에서, 각각의 메모리(120)는 시스템의 속도를 향상시키는 허용 오차를 충족시키기에 최적화되도록 임계값들이 설정될 수 있는 때를 알 수 있다(예를 들어, 표시하기 위한 값들로 구성됨). 이러한 구성은, 사용되는 일반적인 시스템 전반의 최악의 경우 허용 오차들에 의존하는 것보다는 오히려, 각각의 메모리 공급자가 그들의 구체적인 프로세스 및/또는 메모리 구현에 대한 임피던스 보상의 타이밍을 제어하는 것으로 인해 I/O에 대한 더 우수한 허용 오차들을 초래할 수 있다.
일 실시예에서, 메모리 제어기(110)는 각각의 메모리(120)로부터 센서 데이터를 판독한다. 일 실시예에서, 센서 데이터를 판독하는 것은 플래그(126)를 판독하는 것 및/또는 센서(124)의 값들을 판독하는 것으로서 이해될 수 있다. 스케줄러(132)는 플래그(126)를 판독하는 것에 의해 또는 센서 데이터를 판독하고 이전에 저장된 판독에 대해 이를 비교하는 것에 의해 성능 조건이 임계값을 초과하여 변경되었는지 결정할 수 있다. 메모리 제어기(110)가 이전 판독을 저장할 수 있고/있거나 메모리(120)가 이전 판독을 저장할 수 있다. 메모리 제어기(110)는 ZQ 보상(128)에 관련된 적어도 하나의 설정을 조절하도록 메모리(120)를 트리거하는 임피던스 보상 신호들을 생성한다.
도 2는 메모리 디바이스 센서 데이터가 리프레시 제어 설정들 외에도 임피던스 보상을 위해 사용될 수 있는 메모리 서브시스템의 실시예의 블록도이다. 시스템(200)은 도 1의 시스템(100)에 따른 메모리 서브시스템의 일 예일 수 있다. 시스템(200)은 시스템(100)의 일 실시예에 의해 구현될 수 있는 특정 특징들을 보다 구체적으로 도시한다. 메모리 제어기(210)는 메모리(220)에 대한 액세스를 관리한다. 메모리(220)는 시스템(200)에서의 다수의 메모리 디바이스들 중 하나일 수 있다. 메모리 제어기(210)는 메모리(220)의 I/O(230)를 통해 메모리(220)와 인터페이스하는 I/O(212)를 포함한다.
일 실시예에서, 메모리 제어기(210)는 리프레시 제어(214)를 포함한다. 리프레시 제어(214)는 휘발성 메모리(220)의 리프레시를 관리하는 메모리 제어기(210) 내의 로직을 나타낸다. 리프레시 제어(214)는 메모리(220)에 대한 셀프-리프레시 설정들을 관리하기 위한 및/또는 메모리 제어기가 리프레시 명령들을 발행하는 정상 리프레시를 위한 로직을 포함할 수 있다. 일 실시예에서, 리프레시 제어(214)는 메모리(220)에서의 센서들로부터의 정보에 기초하여 자신의 동작을 조절한다.
일 실시예에서, 메모리 제어기(210)는 ZQ 보상 제어(216)를 포함한다. ZQ 보상 제어(216)는 메모리(220)의 I/O 인터페이스(I/O(230))에 대한 임피던스 보상을 관리하는 로직을 나타낸다. ZQ 보상 제어(216)는 본 명세서에 설명되는 임의의 실시예에 따라 보상 제어를 수행할 수 있다. ZQ 보상 제어(216)는 시스템(200)에서 보상 제어의 타이밍을 관리하는 스케줄러일 수 있거나 이를 포함할 수 있다. ZQ 보상 제어(216)는 센서가 동작 조건에서의 변경을 검출했음을 표시하는 센서 데이터에 기초하여 언제 메모리(220) 및 다른 메모리 디바이스들에 임피던스 보상 신호를 전송할지 결정한다. 일 실시예에서, 메모리(220)는 변경을 플래그할 것이지만, 메모리 제어기(210)는 I/O 보상을 조절하도록 메모리 디바이스를 트리거하는 신호를 언제 발행할지 여전히 결정할 것이다. 메모리 제어기(210)가 언제 보상 신호를 전송할지 결정하더라도, 메모리 제어기는 메모리에 의해 플래그 또는 표시를 검출하거나 결정하는 것에 응답하여 신호를 생성한다는 점이 이해될 것이다.
메모리(220)는 메모리(220)의 메모리 리소스들을 나타내는 어레이(242)를 포함한다. 메모리 리소스들은 로우 및 컬럼에 의해 어드레스 지정될 수 있는 다수 로우들의 데이터를 포함할 수 있다. 로직(244)은 판독 또는 기입과 같은 메모리 액세스 명령에 의해 식별되는 어레이(242) 내의 위치를 어드레스 지정하는 메모리(220) 내의 디코드 로직을 나타낸다.
제어기(222)는 메모리(220)의 제어기를 나타낸다. 메모리 제어기(210)는 시스템(200)에 대한 제어기이며, 호스트에 대한 메모리(220)로의 액세스를 제어한다는 점이 이해될 것이다. 제어기(222)는 메모리가 메모리 제어기(210)로부터 수신되는 메모리 액세스 명령들을 서비스하도록 자신의 동작들을 관리하고 스케줄링할 수 있게 하는 메모리(220) 내의 처리 리소스들을 나타낸다.
일 실시예에서, 메모리(220)는 하나 이상의 센서들(226)을 포함한다. 센서(226)는 I/O(230)의 임피던스에 영향을 미치는 성능 조건에서의 변경을 검출할 수 있는 전압 센서, 온도 센서, 전류 센서, 또는 다른 센서를 포함할 수 있다. 현대의 많은 메모리들이 온-다이 센서를 포함한다는 점이 이해될 것이다. 센서들은 통상적으로 과잉 조건들에 관련된 조건들을 검출하는데 사용되어 왔다. 센서(226)에 의해 검출되는 조건들에서의 특정 변경들이 또한 I/O(230)의 입력 및 출력 임피던스에 영향을 미치는 조건을 표시할 수 있다. 일 실시예에서, 제어기(222)는 센서(226)로부터의 판독들에 기초하여 조건이 임계값을 초과하여 변경되었는지 결정한다. 임계값은 시스템 아키텍처, 메모리 타입, I/O 타입, 메모리 크기, 및 기타 인자들에 기초하여 설정될 것이라는 점이 이해될 것이다. 임계값은 성능 조건이 I/O(230)의 I/O 임피던스에 바람직하지 않은 영향을 미치기에 충분하게 언제 변경되는지 결정한다. I/O 임피던스에서의 변경은 송신 및 수신의 마진 및/또는 타이밍에 영향을 미친다.
I/O(230)는 메모리(220)가 메모리 제어기(210)에 데이터를 전송하도록 I/O 신호 라인들을 구동하는 드라이버(232)를 포함한다. 일 실시예에서, I/O(230)는 메모리(220)가 메모리 제어기(210)로부터 데이터를 수신하도록 입력 임피던스를 제어하는 ODT(on-die termination)(234)를 포함한다. 드라이버(232) 및 ODT(234)는 메모리(220)와의 설정들에 의해 구성될 수 있으며, 집합적으로 I/O 설정들로서 지칭될 수 있다. 드라이버(232) 및 ODT(234)의 설정들은 메모리 제어기(210)와 메모리(220) 사이의 교환들(송신 또는 수신)에 대한 타이밍, 반사들, 및 신호 무결성의 다른 양상들에 영향을 미칠 수 있다. 일 실시예에서, 레지스터(224)는 I/O(230)에 대한 I/O 설정들을 포함하는 레지스터를 나타낸다. 동작 전압 및 동작 온도와 같은 특정 성능 조건들에서의 변경은, I/O 설정들을 변경하지 않고도, 임피던스가 드리프트되게 할 수 있다. I/O 설정들에 대한 조절들(ZQ 보상)은 변경 조건들을 보상할 수 있다. 일 실시예에서, 메모리(220)는 단일 메모리 다이 상의 2개의 채널들을 포함하고, I/O 설정들은 채널을 통해 공유된다.
일 실시예에서, I/O 설정들은 메모리(220)에 대한 상이한 I/O에 적용된다. 예를 들어, 드라이버(232)는 (데이터 버스와 같은) 양방향 신호 라인들에 적용될 수 있지만, (명령/어드레스 버스와 같은) 단방향 버스에 적용되지는 않을 것이다. ODT(234)는 단방향 및 양방향 신호 라인들 양자 모두에 적용될 수 있다. 일 실시예에서, ODT는 풀 업 및 풀 다운 레그들 양자 모두를 포함하고, 관련분야에서 이해되듯이, 풀 업과 풀 다운의 조합들이 구성될 수 있다. I/O 설정들은 드라이버(232)가 신호 라인들을 얼마나 하드하게 구동할지(예를 들어, 얼마나 많은 전류를 사용하는지) 및 신호 라인들을 종료하도록 ODT가 어떻게 구성될지 결정할 수 있다. 메모리 제어기(210)로부터의 ZQCal 신호 또는 다른 보상 신호는 메모리(220) 내의 I/O 설정들에 대한 조절을 착수할 수 있다.
일 실시예에서, 레지스터(224)는 메모리(220)에 대한 모드 레지스터를 나타내거나 포함한다. 모드 레지스터는 메모리(220)에 대한 다양한 동작 설정들을 제어하는 메모리(220) 내의 레지스터이다. 상이한 설정들은 상이한 동작의 모드들과 대응할 수 있다. 일 실시예에서, 메모리 제어기(210)는 메모리(220)를 구체적인 모드에 배치하기 위해 모드 레지스터의 엘리먼트들을 등록하기에 구체적인 비트 패턴을 간단히 설정한다. 메모리(220)가 어떤 모드에 있는지에 의존하여, 제어기(222)는 특정 설정들을 I/O(230) 및/또는 메모리(220)의 다른 컴포넌트들에 적용하고/하거나 구체적인 타이밍 파라미터들을 그 동작들에 적용할 수 있다.
일 실시예에서, 메모리(220)는 센서(226)에서의 변경을 검출하는 것에 응답하여 레지스터(224)(모드 레지스터 또는 메모리 제어기(210)에 의해 액세스될 수 있는 다른 레지스터일 수 있음)에 플래그를 설정한다. 예를 들어, 제어기(222)는 센서(226)로부터의 판독들 중 하나 이상의 값들을 (그 동작을 위해 제어기(222)에 의해 사용되는 레지스터 또는 메모리 위치에) 저장할 수 있다. 메모리(220)는 이전의 또는 저장된 판독에 비해 새로운 센서 판독에서의 변경을 검출할 수 있다. 일 실시예에서, 레지스터(224)는 하나 이상의 센서 값들이 저장될 수 있는 스토리지를 나타낸다. 일 실시예에서, 메모리 제어기(210)는 레지스터(224)에 메모리(220)에 의해 설정되는 값 또는 플래그를 주기적으로 판독하여 메모리가 그 I/O 임피던스 설정들에 대한 조절 준비되었는지 결정한다. 시스템(200)은 대안적으로 인터럽트 기반 메커니즘으로 구성될 수 있다. 그러나, 인터럽트 메커니즘은 메모리(220)로부터 메모리 제어기(210)로 인터럽트를 전달하기 위해 전용 신호 라인 또는 다중화된/용도 변경된 신호 라인을 요구할 수 있다.
도 3은 적응형 임피던스 보상을 위한 명령/어드레스 타이밍의 타이밍도의 실시예이다. C/A 신호(310)는 임피던스 보상에 대한 종래의 접근방식을 나타내며, 이는 최악의 경우 시스템 조건들에 기초한다. 최악의 경우 접근방식으로, C/A(310)은 메모리 제어기가 ZQCal 시작 신호로 임피던스 보상(도 3의 목적들을 위해 ZQ 보상으로서 지칭됨)을 착수하는 반복되는 스케줄을 도시한다. ZQCal을 착수하는 것과 ZQ 보상 래치 신호(ZQCal 래치)를 발행하는 것 사이의 타이밍은 tZQCal이며, 이는 최소 1 마이크로초가 되도록 스케줄링된다. 따라서, 메모리 제어기는 통상적으로, ZQ 보상을 준비하도록 메모리를 트리거하는 ZQ 캘리브레이션을 착수하고 나서, 메모리로 하여금 ZQ 보상을 래치하게 하는 래치 신호를 발행할 것이다. 메모리 디바이스가 ZQ 보상을 래치하는 시간은 tZQLat이이며, 이는 약 30 나노초(ns)이다.
일부 경우들에서, 메모리 제어기는 조절 동안 C/A 버스를 유휴로 유지할 것이며(버스를 중지시킴), 따라서, C/A(310)는, 모든 메모리 디바이스에 대해, 수행된 각각의 캘리브레이션마다 tZQCal + tZQLat의 오버헤드를 경험할 것이다. 메모리 제어기는, 메모리가 ZQ 보상 설정들을 조절할 필요가 있는지에 관계없이, 각각의 메모리 디바이스마다 C/A(310) 상의 스케줄을 통상적으로 반복할 것이다. 시스템 구성에 의존하여, C/A 버스의 유휴 시간, 및 결과적으로 활성 대역폭에서의 손실은, 초 당 유휴 시간의 밀리초로 확장될 수 있다. 다른 경우들에서, 메모리 제어기는 다른 명령을 계속 발행하는 것에 의해 tZQCal 레이턴시를 백그라운드에 숨길 수 있다. 그러나, 메모리 디바이스가 업데이트될 필요가 있는지 여부에 관계없이 정규 스케줄에 대해 각각의 디바이스마다 타이밍이 여전히 모니터되고 스케줄링될 것이며, 이는 메모리 제어기 리소스들을 불필요하게 결부시킬 수 있다.
C/A(320)는 본 명세서에 설명되는 임의의 실시예에 따라 ZQ 보상을 발행하는 플래그 체크 메커니즘을 도시한다. C/A(320)에 따른 ZQ 보상의 발행은 ZQ 보상관 관련된 오버헤드를 상당히 감소시킬 수 있다. 주기적으로 ZQ 보상 명령들 발행하고 1us 주기 후에 ZQCal 래치를 스케줄링할 것을 필요로 하는 대신에, 메모리 제어기는 필요에 따라 ZQ 보상 명령들만 발행한다. 성능 조건들에 대해 검출되는 변경이 존재하지 않기 때문에, 또는 성능 조건들에 대한 변경들이 보상을 조절할 필요성을 표시하는 임계값을 초과하지 않기 때문에 임피던스 설정들에 대한 변경이 필요없는 기간을 도시하는 C/A(320)이 시작된다. 변경 후 일부 기간이 필요없다고 가정하여, 일 실시예에서 메모리 제어기는 센서들이 임계값을 초과하는 성능 조건에서의 변경을 표시하면 메모리가 설정할 플래그를 체크한다. 이러한 결정은 본 명세서에 설명되는 임의의 실시예에 따라 이루어질 수 있다.
C/A(320)에서의 플래그 체크가 ZQ 보상을 수행할 필요성을 표시하지 않는다고 가정하면, 메모리 제어기는 ZQ 보상 명령을 발행하지 않고 동작을 계속할 것이다. C/A(320)에서의 플래그 체크가 ZQ 보상을 수행할 필요성을 표시한다고 가정하면(도 3에 도시되는 조건), 메모리 제어기는 ZQCal 래치 신호를 발행한다. 시간 tZQChk(플래그를 체크하는 것과 래치 신호를 발행하는 것 사이의 시간)는 적어도 2가지 방식들로 적응될 수 있다는 점이 이해될 것이다. 체크를 수행한 직후 메모리 제어기가 ZQCal 래치 신호를 항상 발행하지는 않을 것이라고 예상되기 때문에 tZQChk가 적응될 수 있으며, 그 이유는 적어도 일부의 시간 플래그가 설정되지 않을 것이기 때문이다. 일 실시예에서, 플래그가 설정될 때에도, 메모리 제어기는 적어도 일정 기간 동안 ZQCal 래치 신호를 언제 발행할지 제어할 수 있다는 점에서 tZQChk가 또한 적응될 수 있다. 예를 들어, ZQCal 래치를 발행하기 전에 특정 수의 메모리 디바이스들이 플래그를 설정할 때까지 메모리 제어기는 대기할 수 있다. C/A(320) 상에 ZQCal 래치를 발행한 후, 동일한 기간, 대략 30ns의 tZQLat가 발생한다는 점이 이해될 것이다. 메모리 제어기는 C/A(320)에서 필요한 만큼만 ZQCal 래치의 체크 및 발행을 반복한다.
일 실시예에서, 플래그를 체크하고 ZQCal 래치를 발행할 것을 결정하는 시간은 시간 tZQLat에 비교될 수 있다. 따라서, 플래그 체크로부터 ZQCal 래치까지의 타이밍은 수십 나노초 정도일 수 있으며, 이는 메모리 제어기가 통상적으로 관리해야 하는 1us보다 현저히 낮다. 또한, 다수의 래치들이 다수의 상이한 메모리 디바이스들로부터 검출되는 실시예에서, 다수의 디바이스들은 ZQ 보상 조절을 위해 준비될 수 있고, 모두 시퀀스로 래치될 수 있으며, 이는 임피던스 보상을 업데이트 할 필요가 없는 다수의 메모리 디바이스들에서 ZQ 보상을 개시할 필요가 없는 것으로부터 상당한 오버헤드를 감소시킨다. 이러한 접근방식은 C/A(320) 상의 ZQ 보상 신호들의 스케줄링을 최대화할 수 있다.
일 실시예에서, 메모리 디바이스는 리프레시 상태의 타이밍 구성(예를 들어, 셀프-리프레시를 위한 메모리 디바이스 자체에 의한 스케줄링의 타이밍 및/또는 자동 리프레시를 위한 메모리 제어기에 의한 스케줄링의 타이밍)을 설정하는 목적들로 모니터하는 센서들을 포함한다. 일 실시예에서, 메모리 제어기는 리프레시 타이밍을 구성할 목적들로 센서 데이터를 주기적으로 체크한다. 따라서, 일 실시예에서, 메모리 제어기는 리프레시를 위해 체크되는 동일한 센서 데이터에 기초하여 임피던스 보상 체크를 추가로 수행할 수 있다. 이러한 구현에서, 리프레시 판독 또는 리프레시 모니터 동작 동안 ZQ 보상 플래그의 판독 또는 체크가 발생할 수 있다. 따라서, ZQ 보상 플래그를 체크하는 것은 매우 적은 오버헤드로 구현될 수 있다.
도 4는 메모리 디바이스 센서 데이터에 기초하여 임피던스 보상을 수행하는 프로세스의 실시예의 흐름도이다. 임피던스 보상을 수행하는 시스템(400)은 도 1의 시스템(100) 및/또는 도 2의 시스템(200)과 같은 본 명세서에 설명되는 임의의 실시예에 따른 시스템에 의해 수행될 수 있다. 일 실시예에서, 임피던스 보상 동작들은 메모리 제어기 및 메모리 디바이스에서의 병렬 동작들을 포함한다. 일 실시예에서, 메모리 제어기는 메모리에 의해 설정될 플래그를 모니터하고, 임피던스 보상 조절을 위해 메모리가 판독됨을 플래그가 표시하는지 결정한다(402). 플래그가 보상을 변경할 필요성을 표시하지 않으면, 404 아니오 분기, 메모리 제어기는 임피던스 보상 명령을 발행하지 않고 플래그를 계속 모니터한다.
메모리 제어기가 플래그를 모니터하는 동안, 메모리는 플래그를 설정할지 결정하기 위해 하나 이상의 센서들을 모니터한다(412). 센서(들)는 메모리의 I/O 임피던스에 영향을 미치는 하나 이상의 성능 조건들을 모니터한다. 센서(들)로부터 판독되는 값들에 기초하여, 일 실시예에서, 메모리는 성능 조건에서의 변경이 임계값을 초과하는지 결정한다(414). 일 실시예에서, 메모리 제어기는 값들을 판독하여 결정을 행한다. 조건에서의 변경이 일부 임계값 X보다 크지 않으면, 416 아니오 분기, 메모리는 센서를 계속 모니터한다(412). 성능 조건에서의 변경은 포지티브 또는 네거티브일 수 있다는 점이 이해될 것이다. 따라서, X는 양수 또는 음수를 나타낼 수 있거나, 416에서의 조건은 변경의 절대 값이 X를 초과하는지일 수 있다.
조건에서의 변경이 임계값을 초과하면, 416 예 분기, 일 실시예에서, 메모리는 보상 플래그 또는 다른 표시를 업데이트한다(418). 플래그는 메모리가 임피던스 보상을 수행할 준비가 되었음을 표시한다. 일 실시예에서, 메모리는 센서로부터의 후속 판독들에 대해 비교하는데 사용하기 위한 조건 값을 저장한다(420). 메모리가 플래그를 설정할 때(418), 메모리 제어기는 다음에 플래그를 평가할 때 플래그를 검출할 것이다. 플래그가 설정되면, 404 예 분기, 일 실시예에서, 메모리 제어기는 임피던스 보상 명령을 발행할지 결정한다(422). 일 실시예에서, 메모리 제어기는 다수의 메모리 디바이스들이 명령을 발행하기 전에 보상을 위해 준비될 때까지 대기할 것이다 . 일 실시예에서, 메모리 제어기는 시간에 민감한 메모리 액세스 명령을 발행한 후까지 명령을 발행하는 것을 지연시킬 것이다.
따라서, 메모리 제어기가 메모리의 임피던스 보상을 업데이트하지 않기로 결정하면, 424 아니오 분기, 명령을 발행하기 전에 메모리 제어기가 수행할 수 있는 다수의 동작들 중 임의의 것이 존재할 수 있다. 결국 메모리 제어기는 임피던스 보상을 업데이트 할 것이다. 메모리 제어기가 임피던스 보상을 업데이트할 것이면, 424 예 분기, 메모리 제어기는 플래그를 재설정할 수 있다(426). 일 실시예에서, 메모리 제어기는 플래그의 값을 직접 기입할 수 있다. 일 실시예에서, 메모리 제어기는 메모리로 하여금 플래그를 재설정하게 하는 신호를 발행한다.
메모리 제어기는 하나 이상의 메모리들에 발행할 하나 이상의 임피던스 보상 신호들 또는 명령들을 생성한다(428). 메모리 제어기는 메모리에 신호들을 전송하거나 명령들을 발행한다(430). 메모리는 ZQ 보상 신호를 수신하고 이러한 신호를 디코딩한다(432). 일 실시예에서, 메모리는 어떤 업데이트를 행할지 결정한다(434). 일 실시예에서, ZQ 보상 신호는 어떤 변경을 행할지 표시한다. 일 실시예에서, 메모리는 센서에 의해 표시되는 조건을 검출하는 것 및 플래그를 설정하는 것과 관련하여 어떤 변경을 행할지 결정한다. 일 실시예에서, 메모리는 I/O 임피던스의 상이한 양상들을 업데이트할 수 있다.
일 실시예에서, 메모리는 ODT와 관련된 설정을 업데이트한다, 436 ODT 분기. 메모리는 판독 임피던스 및/또는 기입 임피던스와 같은 ODT의 하나 이상의 양상들에 대한 새로운 설정을 설정할 수 있다(438). 일 실시예에서, 메모리는 출력 드라이버와 관련된 설정을 업데이트한다, 436 드라이버 분기. 메모리는 출력 드라이버에 대해 새로운 설정을 설정할 수 있다(440).
도 5는 셀프-리프레시 제어 및 임피던스 보상을 위해 메모리 디바이스 센서 데이터를 적용하는 프로세스의 실시예의 흐름도이다. 프로세스(500)는 메모리가 어떻게 센서 데이터를 적용할 수 있는지의 실시예를 도시한다. 도 4의 프로세스(400)는 메모리 디바이스 자체가 자신의 센서(들)의 판독에 기초하여 플래그를 설정하는 결정을 행하는 프로세스를 도시하지만, 프로세스(500)는 메모리 제어기가 이러한 결정을 산출할 수 있는 프로세스를 도시한다. 메모리는 변경을 위한 모니터들인 하나 이상의 센서들을 포함한다(502). 일 실시예에서, 메모리는 주기적으로 센서 판독을 취득하고 기록한다. 일 실시예에서, 메모리는 센서 데이터를 메모리 제어기에 액세스될 수 있는 레지스터에 기록한다(504).
일 실시예에서, 메모리 제어기는 센서 데이터에 대해 레지스터를 판독할 시간인지 결정한다(506). 메모리 제어기가 레지스터를 판독할 시간이면, 508 예 분기, 메모리는 레지스터 데이터를 제공한다(510). 일 실시예에서, 메모리 제어기는 리프레시 및/또는 셀프-리프레시의 목적들로 메모리에 어떤 설정들을 적용할지 결정하기 위해 센서 판독들과 함께 레지스터 데이터를 사용한다. 따라서, 메모리 제어기는 센서 데이터에 기초하여 하나 이상의 리프레시 설정들을 설정할 수 있다(512). 일 실시예에서, 메모리 제어기는 또한 메모리에 ZQ 보상 명령을 발행할지 결정하는데 센서 데이터를 적용한다. 일 실시예에서, 이러한 동작은 메모리 제어기가 tZQCal의 통상적인 1us 타이밍을 관리할 것을 요구할 수 있지만, 보상에서의 변경이 요구될 때 이러한 타이밍을 관리할 필요만 있을 것이다. 따라서, 메모리 제어기는 ZQ 보상에 대한 이러한 접근방식에 의해 C/A 버스 상의 대역폭을 여전히 보존할 수 있다. 따라서, 메모리 제어기는 센서 데이터가 메모리에서의 임피던스 보상에 대한 필요성을 표시하는지 결정할 수 있다(514). 일 실시예에서, 임피던스 보상의 결정 및 발행은 424에서 시작하는 프로세스(400)에 따라 수행될 수 있다. 메모리 제어기가 ZQ 보상 신호 또는 명령으로서의 래치 뿐만 아니라 ZQCal 착수(또는 시작) 명령 양자 모두를 발행할 필요가 있을 수 있다.
도 6은 메모리 디바이스 센서 데이터에 기초하는 임피던스 보상이 구현될 수 있는 컴퓨팅 시스템의 실시예의 블록도이다.
시스템(600)은 본 명세서에 설명되는 임의의 실시예에 따른 컴퓨팅 디바이스를 나타내고, 랩톱 컴퓨터, 데스크톱 컴퓨터, 서버, 게이밍 또는 엔터테인먼트 제어 시스템, 스캐너, 복사기, 프린터, 라우팅 또는 스위칭 디바이스, 또는 다른 전자 디바이스일 수 있다. 시스템(600)은 프로세서(620)를 포함하며, 이는 시스템(600)에 대해 명령어들의 처리, 동작 관리 및 실행을 제공한다. 프로세서(620)는 시스템(600)에 대해 처리를 제공하는 임의의 타입의 마이크로프로세서, CPU(central processing unit), 처리 코어 또는 다른 처리 하드웨어를 포함할 수 있다. 프로세서(620)는 시스템(600)의 전체 동작을 제어하고, 하나 이상의 프로그램가능 범용 또는 특수 목적 마이크로프로세서들, DSP들(digital signal processors), 프로그램가능 제어기들, ASIC들(application specific integrated circuits), PLD들(programmable logic devices) 등, 또는 이러한 디바이스들의 조합일 수 있거나 이들을 포함할 수 있다.
메모리 서브시스템(630)은 시스템(600)의 메인 메모리를 나타내고, 프로세서(620)에 의해 실행될 코드, 또는 루틴을 실행하는데 사용될 데이터 값들에 대한 임시 스토리지를 제공한다. 메모리 서브시스템(630)은, ROM(read-only memory), 플래시 메모리, 하나 이상의 다양한 RAM(random access memory), 또는 다른 메모리 디바이스들, 또는 이러한 디바이스들의 조합과 같은 하나 이상의 메모리 디바이스들을 포함할 수 있다. 메모리 서브시스템(630)은, 다른 것들 중에서, 시스템(600)에서의 명령어들의 실행을 위한 소프트웨어 플랫폼을 제공하는 OS(operating system)(636)를 저장하고 호스팅한다. 추가적으로, 시스템(600)의 처리 및 로직을 제공하기 위해 다른 명령어들(638)이 메모리 서브시스템(630)으로부터 저장 및 실행된다. OS(636) 및 명령어들(638)은 프로세서(620)에 의해 실행된다. 메모리 서브시스템(630)은 메모리 디바이스(632)를 포함하며 이는 데이터, 명령어들, 프로그램들, 또는 다른 항목들을 저장한다. 일 실시예에서, 메모리 서브시스템은 메모리 제어기(634)를 포함하며, 이는 메모리 디바이스(632)에 대해 명령들을 생성 및 발행하는 메모리 제어기이다. 메모리 제어기(634)는 프로세서(620)의 물리적 부분일 수 있다는 점이 이해될 것이다.
프로세서(620) 및 메모리 서브시스템(630)은 버스/버스 시스템(610)에 연결된다. 버스(610)는, 적절한 브리지들, 어댑터들, 및/또는 제어기들에 의해 접속되는, 임의의 하나 이상의 별도의 물리적 버스들, 통신 라인들/인터페이스들, 및/또는 점-대-점 접속들(point-to-point connections)을 나타내는 추상적 개념(abstraction)이다. 따라서, 버스(610)는, 예를 들어, 시스템 버스, PCI(Peripheral Component Interconnect) 버스, HyperTransport 또는 ISA(industry standard architecture) 버스, SCSI(small computer system interface) 버스, USB(universal serial bus), 또는 IEEE(Institute of Electrical and Electronics Engineers) 표준 1394 버스(일반적으로 "Firewire"로서 지칭됨) 중 하나 이상을 포함할 수 있다. 버스(610)의 버스들은 네트워크 인터페이스(650)에서의 인터페이스들에 또한 대응할 수 있다.
시스템(600)은 버스(610)에 연결되는 하나 이상의 I/O(input/output) 인터페이스(들)(640), 네트워크 인터페이스(650), 하나 이상의 내부 대용량 스토리지 디바이스(들)(660), 및 주변기기 인터페이스(670)를 또한 포함한다. I/O 인터페이스(640)는 하나 이상의 인터페이스 컴포넌트들을 포함할 수 있고 이를 통해 사용자는 시스템(600)과 상호작용한다(예를 들어, 비디오, 오디오 및/또는 영숫자 인터페이싱). 네트워크 인터페이스(650)는 하나 이상의 네트워크들을 통해 원격 디바이스들(예를 들어, 서버들, 다른 컴퓨팅 디바이스들)과 통신하는 능력을 시스템(600)에 제공한다. 네트워크 인터페이스(650)는 이더넷(Ethernet) 어댑터, 무선 인터커넥션 컴포넌트들, USB(universal serial bus), 또는 다른 유선 또는 무선 표준 기반 또는 사유 인터페이스들을 포함할 수 있다.
스토리지(660)는, 하나 이상의 자기, 솔리드 스테이트(solid state), 또는 광학 기반의 디스크들, 또는 조합과 같은, 비휘발성 방식으로 대량의 데이터를 저장하기 위한 임의의 종래의 매체일 수 있거나, 또는 이를 포함할 수 있다. 스토리지(660)는 지속적 상태로(즉, 시스템(600)에 대한 전력의 중단에도 불구하고 값이 보유됨) 코드나 명령어들 및 데이터(662)를 유지한다.
스토리지(660)는 일반적으로 "메모리(memory)"로 고려될 수 있지만, 메모리(630)는 프로세서(620)에 명령어들을 제공하는 실행 또는 동작 메모리이다. 스토리지(660)는 비휘발성인 반면, 메모리(630)는 휘발성 메모리를 포함할 수 있다(즉, 전력이 시스템(600)에 대해 중단되면 데이터의 상태 또는 값이 불확정적임(indeterminate)).
주변기기 인터페이스(670)는 위에서 구체적으로 언급되지 않은 임의의 하드웨어 인터페이스를 포함할 수 있다. 주변기기들은 시스템(600)에 종속적으로 접속하는 디바이스들을 일반적으로 지칭한다. 종속적 접속(dependent connection)은, 그 상에서 동작이 실행되며, 그것과 사용자가 상호작용하는 소프트웨어 및/또는 하드웨어 플랫폼을 시스템(600)이 제공하는 것이다. 일 실시예에서, 시스템(600)은 서버 디바이스이다. 서버 디바이스에서의 일 실시예에서, 시스템(600)은 서버 구성에서 함께 연결되는 다수 시스템들 중 하나일 수 있다. 예를 들어, 서버는 섀시 시스템에서의 다른 블레이드 서버들과 조합되는 블레이드 서버로서 구현될 수 있다.
일 실시예에서, 메모리 서브시스템(630)은 ZQ 보상 제어(680)를 포함하며, 이는 센서 데이터에 기초하여 메모리(632)에 대한 I/O 임피던스 제어를 구현하는 시스템(600) 내의 로직을 나타낸다. ZQ 보상 제어(680)는 시스템(600)에서 별도 엘리먼트로서 도시되지만, 본 명세서에 설명되는 임의의 실시예에 따라 ZQ 보상을 구현하는 메모리 제어기(634) 및 메모리(632)에서의 로직을 나타낸다. 일 실시예에서, 메모리(632)는 ZQ 보상을 필요로 할 때를 결정하고, ZQ 보상 명령을 발행하도록 메모리 제어기(634)를 트리거하는 플래그를 설정한다.
도 7은 메모리 디바이스 센서 데이터에 기초하는 임피던스 보상이 구현될 수 있는 모바일 디바이스의 실시예의 블록도이다.
디바이스(700)는, 컴퓨팅 태블릿, 모바일 폰 또는 스마트폰, 무선-가능 e-리더기, 웨어러블 컴퓨팅 디바이스, 또는 다른 모바일 디바이스와 같은 모바일 컴퓨팅 디바이스를 나타낸다. 컴포넌트들 중 일부가 일반적으로 도시되며, 이러한 디바이스의 모든 컴포넌트들이 디바이스(700)에서 도시되지는 않는다는 점이 이해될 것이다.
디바이스(700)는 프로세서(710)를 포함하며, 이는 디바이스(700)의 주 처리 동작들을 수행한다. 프로세서(710)는, 마이크로프로세서들, 애플리케이션 프로세서들, 마이크로제어기들, 프로그램가능 로직 디바이스들, 또는 다른 처리 수단과 같은 하나 이상의 물리적 디바이스들을 포함할 수 있다. 프로세서(710)에 의해 수행되는 처리 동작들은 애플리케이션들 및/또는 디바이스 기능들이 실행되는 운영 체제 또는 운영 플랫폼의 실행을 포함한다. 처리 동작들은 인간 사용자나 다른 디바이스들과의 I/O(input/output)에 관련된 동작들, 전력 관리에 관련된 동작들, 및/또는 디바이스(700)를 다른 디바이스에 접속하는 것에 관련된 동작들을 포함한다. 처리 동작들은 오디오 I/O 및/또는 디스플레이 I/O에 관련된 동작들을 또한 포함할 수 있다.
일 실시예에서, 디바이스(700)는 오디오 서브시스템(720)을 포함하며, 이는 컴퓨팅 디바이스에 오디오 기능들을 제공하는 것과 관련된 하드웨어(예를 들어, 오디오 하드웨어 및 오디오 회로들) 및 소프트웨어(예를 들어, 드라이버들, 코덱들) 컴포넌트들을 나타낸다. 오디오 기능들은 스피커 및/또는 헤드폰 출력, 뿐만 아니라 마이크로폰 입력을 포함할 수 있다. 이러한 기능들을 위한 디바이스들은 디바이스(700)에 집적되거나, 또는 디바이스(700)에 접속될 수 있다. 일 실시예에서, 사용자는, 프로세서(710)에 의해 수신되고 처리되는 오디오 명령들을 제공하는 것에 의해 디바이스(700)와 상호작용한다.
디스플레이 서브시스템(730)은 사용자가 컴퓨팅 디바이스와 상호작용하기 위한 시각적 및/또는 촉각적 디스플레이를 제공하는 하드웨어(예를 들어, 디스플레이 디바이스들) 및 소프트웨어(예를 들어, 드라이버들) 컴포넌트들을 나타낸다. 디스플레이 서브시스템(730)은 디스플레이 인터페이스(732)를 포함하며, 이는 사용자에게 디스플레이를 제공하는데 사용되는 특정 스크린 또는 하드웨어 디바이스를 포함한다. 일 실시예에서, 디스플레이 인터페이스(732)는, 프로세서(710)와는 별도이며 디스플레이에 관련된 적어도 일부 처리를 수행하는 로직을 포함한다. 일 실시예에서, 디스플레이 서브시스템(730)은 사용자에게 출력 및 입력 양자 모두를 제공하는 터치스크린 디바이스를 포함한다. 일 실시예에서, 디스플레이 서브시스템(730)은 사용자에게 출력을 제공하는 HD(high definition) 디스플레이를 포함한다. 고 해상도는 대략 100 PPI(pixels per inch) 이상의 픽셀 밀도를 갖는 디스플레이를 지칭할 수 있고, 풀 HD(예를 들어, 1080p), 레티나 디스플레이들, 4K(초 고 해상도 또는 UHD) 등과 같은 포맷들을 포함할 수 있다.
I/O 제어기(740)는 사용자와의 상호작용에 관련되는 하드웨어 디바이스들 및 소프트웨어 컴포넌트들을 나타낸다. I/O 제어기(740)는 오디오 서브시스템(720) 및/또는 디스플레이 서브시스템(730)의 일부인 하드웨어를 관리하도록 동작할 수 있다. 추가적으로, I/O 제어기(740)는, 그것을 통해 사용자가 시스템과 상호작용할 수 있는 디바이스(700)에 접속하는 추가적인 디바이스들에 대한 접속 포인트를 예시한다. 예를 들어, 디바이스(700)에 부착될 수 있는 디바이스들은 마이크로폰 디바이스들, 스피커 또는 스테레오 시스템들, 비디오 시스템들 또는 다른 디스플레이 디바이스, 키보드 또는 키패드 디바이스들, 또는, 카드 리더기들 또는 다른 디바이스들과 같이, 구체적인 애플리케이션들과 함께 사용하기 위한 다른 I/O 디바이스들을 포함할 수 있다.
위에 언급된 바와 같이, I/O 제어기(740)는 오디오 서브시스템(720) 및/또는 디스플레이 서브시스템(730)과 상호작용할 수 있다. 예를 들어, 마이크로폰 또는 다른 오디오 디바이스를 통한 입력은 디바이스(700)의 하나 이상의 애플리케이션들 또는 기능들에 대한 입력 또는 명령들을 제공할 수 있다. 추가적으로, 오디오 출력이 디스플레이 출력 대신에 또는 이에 추가하여 제공될 수 있다.
다른 예에서, 디스플레이 서브시스템이 터치스크린을 포함하면, 디스플레이 디바이스는 입력 디바이스로서 또한 작용하며, 이는 I/O 제어기(740)에 의해 적어도 부분적으로 관리될 수 있다. I/O 제어기(740)에 의해 관리되는 I/O 기능들을 제공하는 추가적인 버튼들 또는 스위치들이 디바이스(700) 상에 또한 존재할 수 있다.
일 실시예에서, I/O 제어기(740)는 디바이스(700)에 포함될 수 있는 가속도계들, 카메라들, 광 센서들 또는 다른 환경 센서들, 자이로스코프들, GPS(global positioning system), 또는 다른 하드웨어와 같은 디바이스들을 관리한다. 입력은 직접적 사용자 상호작용의 부분일 수 있을 뿐만 아니라, 시스템에 환경적 입력을 제공하여 그것의 동작들(예를 들어, 노이즈에 대해 필터링하는 것, 밝기 검출을 위해 디스플레이들의 조절하는 것, 카메라에 대해 플래시를 적용하는 것, 또는 다른 특징들)에 영향을 줄 수 있다. 일 실시예에서, 디바이스(700)는, 배터리 전력 사용, 배터리의 충전, 및 절전 동작에 관련된 특징들을 관리하는 전력 관리(750)를 포함한다.
메모리 서브시스템(760)은 디바이스(700)에 정보를 저장하는 메모리 디바이스(들)(762)을 포함한다. 메모리 서브시스템(760)은 비휘발성(메모리 디바이스에 대한 전력이 중단되면 상태가 변경되지 않음) 및/또는 휘발성(메모리 디바이스에 대한 전력이 중단되면 상태가 불확정적임) 메모리 디바이스들을 포함할 수 있다. 메모리(760)는 애플리케이션 데이터, 사용자 데이터, 음악, 사진, 문서들, 또는 다른 데이터 뿐만 아니라, 시스템(700)의 애플리케이션들 및 기능들의 실행에 관련된 시스템 데이터(장기적이든지 또는 일시적이든지)를 저장할 수 있다. 일 실시예에서, 메모리 서브시스템(760)은 메모리 제어기(764)(시스템(700)의 제어의 일부로서 또한 고려될 수 있으며, 프로세서(710)의 일부로서 잠재적으로 고려될 수 있음)를 포함한다. 메모리 제어기(764)는 메모리 디바이스(762)에 대해 명령들을 생성 및 발행하는 스케줄러를 포함한다.
접속성(770)은 디바이스(700)가 외부 디바이스들과 통신할 수 있게 하는 하드웨어 디바이스들(예를 들어, 무선 및/또는 유선 커넥터들 및 통신 하드웨어) 및 소프트웨어 컴포넌트들(예를 들어, 드라이버들, 프로토콜 스택들)을 포함한다. 외부 디바이스는, 다른 컴퓨팅 디바이스들, 무선 액세스 포인트들 또는 기지국들과 같은 별도의 디바이스들, 뿐만 아니라 헤드셋들, 프린터들, 또는 다른 디바이스들과 같은 주변기기들일 수 있다.
접속성(770)은 다수의 상이한 타입들의 접속성을 포함할 수 있다. 일반화하기 위해, 디바이스(700)는 셀룰러 접속성(772) 및 무선 접속성(774)이 있는 것으로 예시된다. 셀룰러 접속성(772)은 일반적으로, GSM(global system for mobile communications) 또는 변형물들 또는 파생물들, CDMA(code division multiple access) 또는 변형물들 또는 파생물들, TDM(time division multiplexing) 또는 변형물들 또는 파생물들, LTE(long term evolution - "4G"로서 또한 지칭됨), 또는 다른 셀룰러 서비스 표준들을 통해 제공되는 것과 같이, 무선 캐리어들에 의해 제공되는 셀룰러 네트워크 접속성을 지칭한다. 무선 접속성(774)은 셀룰러가 아닌 무선 접속성을 지칭하며, (Bluetooth와 같은) 개인 영역 네트워크들, (WiFi와 같은) 로컬 영역 네트워크들, 및/또는 (WiMax와 같은) 광역 네트워크들, 또는 다른 무선 통신을 포함할 수 있다. 무선 통신은 비-고체 매체를 통해 변조된 전자기 복사의 사용을 통한 데이터의 전달을 지칭한다. 유선 통신은 고체 통신 매체를 통해 발생한다.
주변기기 접속들(780)은 하드웨어 인터페이스들 및 커넥터들 뿐만 아니라, 주변기기 접속들을 이루기 위한 소프트웨어 컴포넌트들(예를 들어, 드라이버들, 프로토콜 스택들)을 포함한다. 디바이스(700)는 다른 컴퓨팅 디바이스들에 대한 주변 디바이스("~로(to)"(782))일 뿐만 아니라, 그것에 접속된 주변 디바이스들("~로부터(from)"(784))을 가질 수 있다는 점이 이해될 것이다. 디바이스(700)는 통상적으로 디바이스(700) 상의 콘텐츠를 관리(예를 들어, 다운로딩 및/또는 업로딩, 변경, 동기화)하는 것과 같은 목적들을 위해 다른 컴퓨팅 디바이스들에 접속하기 위한 "도킹(docking)" 커넥터를 갖는다. 추가적으로, 도킹 커넥터는, 디바이스(700)가, 예를 들어, 시청각 또는 다른 시스템들에 대한 콘텐츠 출력을 제어하게 하는 특정 주변기기들에 디바이스(700)가 접속하게 할 수 있다.
사유 도킹 커넥터(proprietary docking connector) 또는 다른 사유 접속 하드웨어에 추가하여, 디바이스(700)는 공통 또는 표준-기반 커넥터들을 통해 주변기기 접속들(780)을 행할 수 있다. 공통 타입들은 USB(Universal Serial Bus) 커넥터(다수의 상이한 하드웨어 인터페이스들 중 임의의 것을 포함할 수 있음), MDP(MiniDisplayPort)를 포함하는 DisplayPort, HDMI(High Definition Multimedia Interface), Firewire, 또는 다른 타입을 포함할 수 있다.
일 실시예에서, 메모리 서브시스템(760)은 ECC(766)를 포함한다. ECC(766)는 별도의 엘리먼트로서 도시되지만, 메모리 디바이스(762)에서의 내부 ECC 및 메모리 제어기(764)에서의 시스템 레벨 ECC를 나타낸다. 내부 ECC는 판독 요청에 응답하여 에러 검출 및 정정을 수행한 후 내부 체크 비트들을 생성한다. 메모리 제어기(764)의 외부 ECC는 체크 비트를 메타 데이터로서 사용하여 시스템 레벨에서 에러 정정을 증대시킬 수 있다.
일 실시예에서, 메모리 서브시스템(760)은 ZQ 보상 제어(766)를 포함하며, 이는 센서 데이터에 기초하여 메모리(762)에 대한 I/O 임피던스 제어를 구현하는 시스템(700) 내의 로직을 나타낸다. ZQ 보상 제어(766)는 시스템(700)에서의 별도 엘리먼트로서 도시되지만, 본 명세서에 설명되는 임의의 실시예에 따라 ZQ 보상을 구현하는 메모리 제어기(764) 및 메모리(762)에서의 로직을 나타낸다. 일 실시예에서, 메모리(762)는 ZQ 보상을 필요로 할 때를 결정하고, ZQ 보상 명령을 발행하도록 메모리 제어기(764)를 트리거하는 플래그를 설정한다.
일 양상에서, I/O(input/output) 인터페이스의 임피던스 보상을 위한 방법은, 메모리 디바이스 상의 로직을 통해, 메모리 디바이스에 대한 I/O 임피던스에 영향을 미치는 성능 조건에서의 변경을 검출하는 단계; 변경을 검출하는 것에 응답하여 관련된 메모리 제어기에 보상 플래그 신호를 트리거하는 단계; 및 메모리 디바이스에서 메모리 제어기로부터, 보상 플래그 신호에 응답하여, 메모리 디바이스에서 I/O 임피던스 보상에서의 변경을 트리거하는 임피던스 보상 신호를 수신하는 단계를 포함한다.
일 실시예에서, 성능 조건에서의 변경을 검출하는 단계는 임계값을 초과하는 동작 온도에서의 변경을 검출하는 단계를 포함한다. 일 실시예에서, 성능 조건에서의 변경을 검출하는 단계는 임계값을 초과하는 동작 전압에서의 변경을 검출하는 단계를 포함한다. 일 실시예에서, 성능 조건에서의 변경을 검출하는 단계는 온-다이 센서들로 변경을 검출하는 단계를 포함한다. 일 실시예에서, 보상 플래그 신호를 트리거하는 단계는 메모리 제어기에 의해 주기적으로 체크될 메모리 디바이스의 모드 레지스터에서의 값을 설정하는 단계를 포함한다. 일 실시예에서, I/O 임피던스 보상에서의 변경을 트리거하는 임피던스 보상 신호는 드라이버 임피던스에 대한 조절을 트리거하는 것을 포함한다. 일 실시예에서, I/O 임피던스 보상에서의 변경을 트리거하는 임피던스 보상 신호는 온-다이 종료 값에 대한 조절을 트리거하는 것을 포함한다. 일 실시예에서, 메모리 디바이스는 메모리 제어기에 병렬로 연결되는 다수의 메모리 디바이스들 중 하나이며, 보상 플래그 신호에 응답하여 임피던스 보상 신호를 수신하는 단계는 메모리 제어기가 임계 수의 다수의 메모리 디바이스들로부터 보상 플래그를 수신한 이후에만 메모리 제어기로부터 임피던스 보상 신호를 수신하는 단계를 포함한다. 일 실시예에서, 메모리 디바이스는 메모리 제어기에 병렬로 연결되는 다수의 메모리 디바이스들 중 하나이고, I/O 임피던스 보상에서의 변경을 트리거하는 임피던스 보상 신호를 수신하는 단계는 메모리 제어기에 의해 시퀀스로 전송되는 임피던스 보상 신호들의 연속 시퀀스 중 하나를 수신하는 단계를 더 포함한다. 일 실시예에서, 임피던스 보상 신호는 임피던스 보상 구성을 설정하도록 메모리 디바이스를 트리거하는 ZQCal 래치 신호를 포함한다. 일 실시예에서, 임피던스 보상 신호는 임피던스 보상 캘리브레이션 루틴을 착수하도록 메모리 디바이스를 트리거하는 ZQCal 시작 신호, 및 임피던스 보상 구성을 설정하도록 메모리 디바이스를 트리거하는 ZQCal 래치 신호를 포함한다.
일 양상에서, 메모리의 임피던스 보상을 관리하는 메모리 제어기는, 센서 판독에서의 변경을 표시하는 데이터를 메모리 디바이스로부터 판독하도록 메모리 디바이스에 연결되는 I/O(input/output) 하드웨어; 및 메모리 디바이스로부터 데이터를 판독하는 것에 기초하여 메모리 디바이스에 대한 I/O 임피던스에 영향을 미치는 성능 조건이 임계값을 초과하여 변경되었는지 결정하고, 성능 조건이 임계값을 초과하여 변경되었다는 결정에 응답하여, 메모리 디바이스에서 I/O 임피던스 보상에서의 변경을 트리거하도록 메모리 디바이스에 대한 임피던스 보상 신호를 생성하는 스케줄러를 포함한다.
일 실시예에서, I/O 하드웨어는 성능 조건이 임계값을 초과하여 변경되었다는 점을 표시하는 메모리 디바이스에 의해 설정되는 플래그에 관한 것이다. 일 실시예에서, I/O 하드웨어는 메모리 디바이스에 의해 설정되는 플래그에 응답하여 센서로부터 데이터를 판독한다. 일 실시예에서, I/O 하드웨어는 성능 조건이 임계값을 초과하여 변경되었다는 점을 표시하는 메모리 디바이스에 의해 설정되는 플래그에 응답하여 센서로부터 데이터를 판독한다. 일 실시예에서, 스케줄러는 동작 온도에서의 변경이 메모리 내의 임계값을 초과하는지 결정한다. 일 실시예에서, 스케줄러는 메모리 내의 임계값을 초과하는 동작 전압에서의 변경을 결정한다. 일 실시예에서, 센서는 메모리 디바이스에 대한 리프레시를 위한 파라미터를 설정하기 위해 성능 조건을 모니터하는 메모리 디바이스의 온-다이 센서를 포함한다. 일 실시예에서, I/O 하드웨어는 메모리 디바이스의 모드 레지스터로부터 하나 이상의 값들을 판독한다. 일 실시예에서, I/O 하드웨어는 모드 레지스터의 하나 이상의 값들을 주기적으로 체크한다. 일 실시예에서, 스케줄러는 메모리 디바이스 I/O의 드라이버 임피던스에 대한 조절을 트리거하는 임피던스 보상 신호를 생성한다. 일 실시예에서, 스케줄러는 메모리 디바이스 I/O의 온-다이 종료 값에 대한 조절을 트리거하는 임피던스 보상 신호를 생성한다. 일 실시예에서, I/O는 다수의 병렬 메모리 디바이스들에 연결되며, 스케줄러는 적어도 임계 수의 메모리 디바이스들이 임계값을 초과하여 변경된 I/O 임피던스에 영향을 미치는 성능 조건을 갖는 것으로 결정될 때까지 메모리 디바이스에 대한 임피던스 보상 신호의 생성을 지연시킨다. 일 실시예에서, I/O는 다수의 병렬 메모리 디바이스들에 연결되며, 스케줄러는 적어도 복수의 병렬 메모리 디바이스들에 시퀀스로 전송되는 임피던스 보상 신호들의 연속적인 시퀀스를 스케줄링한다. 일 실시예에서, I/O는 다수의 병렬 메모리 디바이스들에 연결되며, 스케줄러는 모든 메모리 디바이스들에 대해 C/A(command/address) 버스 상에서 액세스 명령들을 전송하는 것을 중단하고, 액세스 명령 트래픽이 C/A 버스를 통해 전송되지 않는 동안 적어도 2개의 메모리 디바이스들에 대한 임피던스 보상 신호들의 시퀀스를 전송하도록 기간을 스케줄링한다. 일 실시예에서, 스케줄러는 임피던스 보상 구성을 설정하도록 메모리 디바이스를 트리거하는 ZQCal 래치 신호를 생성한다. 일 실시예에서, 스케줄러는 임피던스 보상 캘리브레이션 루틴을 착수하도록 메모리 디바이스를 트리거하는 ZQCal 시작 신호, 및 임피던스 보상 구성을 설정하도록 메모리 디바이스를 트리거하는 ZQCal 래치 신호를 생성한다.
일 양상에서, 메모리 서브시스템이 있는 전자 디바이스는, LPDDR(low power dual data rate) DRAM(dynamic random access memory)- DRAM에 대한 I/O 임피던스에 영향을 미치는 성능 조건에 대한 변경들을 검출하는 온-다이 센서 및 성능 조건에 관한 데이터를 기록하는 레지스터를 포함함 -; 및 LPDDR DRAM에 대한 액세스를 제어하는 메모리 제어기를 포함하고, 메모리 제어기는, 센서 판독에서의 변경을 표시하는 데이터를 DRAM으로부터 판독하도록 DRAM에 연결되는 I/O(input/output) 하드웨어; 및 메모리 디바이스로부터 데이터를 판독하는 것에 기초하여 DRAM에 대한 I/O 임피던스에 영향을 미치는 성능 조건이 임계값을 초과하여 변경되었는지 결정하고, 성능 조건이 임계값을 초과하여 변경되었다는 결정에 응답하여, DRAM에서 I/O 임피던스 보상에서의 변경을 트리거하도록 DRAM에 대한 임피던스 보상 신호를 생성하는 스케줄러; 및 DRAM으로부터 액세스되는 데이터에 기초하여 디스플레이를 생성하도록 연결되는 터치스크린 디스플레이를 포함한다. 본 전자 디바이스는 메모리 디바이스에 연결되는 메모리 제어기에 관하여 위에 설명된 임의의 실시예에 따라 DRAM에 연결되는 메모리 제어기를 포함할 수 있다.
일 양상에서, I/O(input/output) 인터페이스의 임피던스 보상을 위한 장치는, 메모리 디바이스 상의 로직을 통해, 메모리 디바이스에 대한 I/O 임피던스에 영향을 미치는 성능 조건에서의 변경을 검출하는 수단; 변경을 검출하는 것에 응답하여 관련된 메모리 제어기에 보상 플래그 신호를 트리거하는 수단; 및 메모리 디바이스에서 메모리 제어기로부터, 보상 플래그 신호에 응답하여, 메모리 디바이스에서 I/O 임피던스 보상에서의 변경을 트리거하는 임피던스 보상 신호를 수신하는 수단을 포함한다. 본 장치는 위에 설명된 방법의 임의의 실시예를 수행하는 수단을 포함할 수 있다.
일 양상에서, 제조 물품은 액세스될 때 머신으로 하여금 동작들을 수행하게 하는 콘텐츠를 저장하고 있는 컴퓨터 판독가능 저장 매체를 포함하고, 이러한 동작들은, 메모리 디바이스 상의 로직을 통해, 메모리 디바이스에 대한 I/O 임피던스에 영향을 미치는 성능 조건에서의 변경을 검출하는 단계; 변경을 검출하는 것에 응답하여 관련된 메모리 제어기에 보상 플래그 신호를 트리거하는 단계; 및 메모리 디바이스에서 메모리 제어기로부터, 보상 플래그 신호에 응답하여, 메모리 디바이스에서 I/O 임피던스 보상에서의 변경을 트리거하는 임피던스 보상 신호를 수신하는 단계를 포함한다. 이러한 제조 물품은 위에 설명된 방법의 임의의 실시예에 따른 동작들을 수행하는 콘텐츠를 포함할 수 있다.
본 명세서에 예시되는 바와 같은 흐름도들은 다양한 프로세스 액션들의 시퀀스들의 예들을 제공한다. 이러한 흐름도들은 소프트웨어 또는 펌웨어 루틴에 의해 실행될 동작들뿐만 아니라 물리적 동작들을 표시할 수 있다. 일 실시예에서, 흐름도는 FSM(finite state machine)의 상태를 도시할 수 있으며, 이는 하드웨어 및/또는 소프트웨어로 구현될 수 있다. 특정 시퀀스 또는 순서로 도시되지만, 다른 방식으로 명시되지 않는 한, 액션들의 순서는 수정될 수 있다. 따라서, 도시된 실시예들은 예로서만 이해되어야 하며, 프로세스는 상이한 순서로 수행될 수 있고, 일부 액션들은 병렬로 수행될 수 있다. 추가적으로, 하나 이상의 액션들이 다양한 실시예들에서 생략될 수 있고; 따라서, 모든 액션들이 모든 실시예에서 요구되는 것은 아니다. 다른 프로세스 흐름들이 가능하다.
다양한 동작들 또는 기능들이 본 명세서에서 설명되는 정도로, 이들은 소프트웨어 코드, 명령어들, 구성, 및/또는 데이터로서 설명되거나 정의될 수 있다. 콘텐츠는 직접 실행가능할 수 있거나("오브젝트(object)" 또는 "실행가능(executable)" 형태), 소스 코드, 또는 차이 코드("델타(delta)" 또는 "패치(patch)" 코드)일 수 있다. 본 명세서에 설명되는 실시예들의 소프트웨어 콘텐츠는 그 상에 콘텐츠가 저장되는 제조 물품을 통해, 또는 통신 인터페이스를 통해 데이터를 전송하는 통신 인터페이스를 동작시키는 방법을 통해 제공될 수 있다. 머신 판독가능 저장 매체는 머신으로 하여금 설명된 기능들 또는 동작들을 수행하게 할 수 있고, 기록가능한/기록가능하지 않은 매체(예를 들어, ROM(read only memory), RAM(random access memory), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 디바이스들 등)와 같이, 머신(예를 들어, 컴퓨팅 디바이스, 전자 시스템 등)에 의해 액세스될 수 있는 형태로 정보를 저장하는 임의의 메커니즘을 포함한다. 통신 인터페이스는, 메모리 버스 인터페이스, 프로세서 버스 인터페이스, 인터넷 접속, 디스크 제어기 등과 같은, 다른 디바이스에 통신하는 하드와이어링된 매체, 무선 매체, 광학 매체 등 중 임의의 것에 인터페이스하는 임의의 메커니즘을 포함한다. 통신 인터페이스는 소프트웨어 콘텐츠를 설명하는 데이터 신호를 제공하는 통신 인터페이스를 준비하도록 구성 파라미터들을 제공하고 및/또는 신호들을 전송하는 것에 의해 구성될 수 있다. 통신 인터페이스는 통신 인터페이스에 전송되는 하나 이상의 명령들 또는 신호들을 통해 액세스될 수 있다.
본 명세서에 설명되는 다양한 컴포넌트들은 설명된 동작들 또는 기능들을 수행하는 수단일 수 있다. 본 명세서에 설명되는 각각의 컴포넌트는 소프트웨어, 하드웨어,또는 이들의 조합을 포함한다. 이러한 컴포넌트들은 소프트웨어 모듈들, 하드웨어 모듈들, 특수-목적 하드웨어(예를 들어, 주문형 하드웨어, ASIC들(application specific integrated circuits), DSP들(digital signal processors) 등), 임베디드 제어기들, 하드와이어드 회로 등으로서 구현될 수 있다.
본 명세서에 설명되는 것 외에도, 본 발명의 개시된 실시예들 및 구현들에 대해 다양한 수정들이 그 범위를 벗어나지 않으면서 이루어질 수 있다. 따라서, 본 명세서에서의 예시들 및 예들은 예시적인 의미로 해석되어야 하고, 제한적인 의미로 해석되지 않아야 한다. 본 발명의 범위는 후속하는 청구항들을 참조하는 것에 의해서만 측정되어야 한다.

Claims (25)

  1. 메모리 디바이스로서,
    임피던스 캘리브레이션 업데이트가 상기 메모리 디바이스에서 준비되었음을 메모리 제어기에 표시하기 위해, 상기 메모리 디바이스에 의해, 임피던스 캘리브레이션 업데이트 플래그가 선택적으로 기록될 수 있는(writeable) 레지스터; 및
    상기 메모리 제어기에 연결될 때, 상기 메모리 제어기로부터, 상기 임피던스 캘리브레이션 업데이트 플래그가 설정된 것을 상기 메모리 제어기가 검출한 것에 응답하여, 상기 메모리 디바이스에 새로운 캘리브레이션 설정을 설정하라는 임피던스 캘리브레이션 래치 신호(ZQCAL LATCH)를 포함하는 명령을 수신하는 I/O(입력/출력) 하드웨어
    를 포함하는 메모리 디바이스.
  2. 제1항에 있어서,
    상기 I/O 하드웨어는 상기 임피던스 캘리브레이션 업데이트 플래그를 체크하기 위해 상기 메모리 제어기로부터 폴링(polling) 요청을 주기적으로 수신하는, 메모리 디바이스.
  3. 제1항에 있어서,
    상기 레지스터는 모드 레지스터를 포함하고, 상기 I/O 하드웨어는 상기 임피던스 캘리브레이션 업데이트 플래그를 체크하기 위해 상기 모드 레지스터를 판독하라는 명령을 주기적으로 수신하는, 메모리 디바이스.
  4. 제1항에 있어서,
    상기 I/O 하드웨어는 우선 임피던스 캘리브레이션 시작 신호(ZQCAL START)를 수신하고 상기 임피던스 캘리브레이션 래치 신호를 수신하는, 메모리 디바이스.
  5. 제1항에 있어서,
    상기 메모리 디바이스는 이전의 임피던스 캘리브레이션 설정과 업데이트된 캘리브레이션 설정 사이의 비교를 계산하고, 상기 업데이트된 캘리브레이션 설정이 상기 이전의 임피던스 캘리브레이션 설정과 임계량을 초과하여 상이한 경우에만 상기 임피던스 캘리브레이션 업데이트 플래그를 설정하는, 메모리 디바이스.
  6. 제1항에 있어서,
    상기 새로운 캘리브레이션 설정은 드라이버 임피던스 설정을 포함하는, 메모리 디바이스.
  7. 제1항에 있어서,
    상기 새로운 캘리브레이션 설정은 ODT(on-die termination) 설정을 포함하는, 메모리 디바이스.
  8. 제1항에 있어서,
    상기 메모리 디바이스의 성능 조건의 변경을 검출하기 위해 온-다이 센서를 더 포함하고, 상기 메모리 디바이스는 상기 온-다이 센서에 의한 상기 변경의 검출에 기초하여 상기 임피던스 캘리브레이션을 설정하는, 메모리 디바이스.
  9. 제1항에 있어서,
    상기 메모리 디바이스는 LPDDR(a low power double data rate) 표준과 호환가능한 DRAM(dynamic random access memory) 디바이스를 포함하는, 메모리 디바이스.
  10. 메모리 제어기로서,
    메모리 디바이스에 연결되어, 상기 메모리 디바이스로부터 임피던스 캘리브레이션 업데이트 플래그를 판독하는 I/O(input/output) 하드웨어 - 상기 임피던스 캘리브레이션 업데이트 플래그는 임피던스 캘리브레이션 업데이트가 상기 메모리 디바이스에서 준비되었음을 표시함 -; 및
    고정 스케줄에 관한 임피던스 캘리브레이션 신호 대신 상기 임피던스 캘리브레이션 업데이트 플래그가 설정되었음을 검출한 것에 응답하여 임피던스 캘리브레이션 래치 신호(ZQCAL LATCH)를 스케줄링하는 스케줄러
    를 포함하고,
    상기 I/O 하드웨어는 상기 메모리 디바이스에 새로운 캘리브레이션 설정을 설정하기 위해 상기 메모리 디바이스에 상기 임피던스 캘리브레이션 래치 신호를 전송하는, 메모리 제어기.
  11. 제10항에 있어서,
    상기 I/O 하드웨어는 상기 임피던스 캘리브레이션 업데이트 플래그를 체크하기 위해 상기 메모리 디바이스에 폴링 요청을 주기적으로 전송하는, 메모리 제어기.
  12. 제10항에 있어서,
    상기 메모리 디바이스는 모드 레지스터를 포함하고, 상기 I/O 하드웨어는 상기 임피던스 캘리브레이션 업데이트 플래그를 체크하기 위해 상기 모드 레지스터를 판독하라는 명령을 주기적으로 전송하는, 메모리 제어기.
  13. 제10항에 있어서,
    상기 I/O 하드웨어는 우선 임피던스 캘리브레이션 시작 신호(ZQCAL START)를 전송하지 않고 상기 임피던스 캘리브레이션 래치 신호를 전송하는, 메모리 제어기.
  14. 제10항에 있어서,
    상기 메모리 디바이스는 이전의 임피던스 캘리브레이션 설정과 업데이트된 캘리브레이션 설정 사이의 비교를 계산하고, 상기 업데이트된 캘리브레이션 설정이 상기 이전의 임피던스 캘리브레이션 설정과 임계량을 초과하여 상이한 경우에만 상기 임피던스 캘리브레이션 업데이트 플래그를 설정하는, 메모리 제어기.
  15. 제10항에 있어서,
    상기 새로운 캘리브레이션 설정은 드라이버 임피던스 설정을 포함하는, 메모리 제어기.
  16. 제10항에 있어서,
    상기 새로운 캘리브레이션 설정은 ODT(on-die termination) 설정을 포함하는, 메모리 제어기.
  17. 제10항에 있어서,
    상기 메모리 디바이스의 성능 조건의 변경을 검출하기 위해 온-다이 센서를 더 포함하고, 상기 메모리 디바이스는 상기 온-다이 센서에 의한 상기 변경을 검출한 것에 기초하여 상기 임피던스 캘리브레이션을 설정하는, 메모리 제어기.
  18. 제10항에 있어서,
    상기 메모리 디바이스는 상기 메모리 제어기에 병렬로 연결된 다수의 메모리 디바이스 중 하나이며, 상기 메모리 제어기는 상이한 메모리 디바이스들로부터의 상이한 임피던스 캘리브레이션 업데이트 플래그들에 기초하여 상이한 임피던스 캘리브레이션 업데이트들을 관리하는, 메모리 제어기.
  19. 제10항에 있어서,
    상기 메모리 디바이스는 LPDDR(a low power double data rate) 표준과 호환가능한 DRAM(dynamic random access memory) 디바이스를 포함하는, 메모리 제어기.
  20. 임피던스 캘리브레이션을 위한 방법으로서,
    관련된 메모리 제어기에 의해 판독가능한 레지스터에 임피던스 캘리브레이션 업데이트 플래그를 선택적으로 기록하는 단계 - 상기 임피던스 캘리브레이션 업데이트 플래그는 임피던스 캘리브레이션 업데이트가 메모리 디바이스에서 준비되었음을 상기 메모리 제어기에 표시함 -;
    상기 임피던스 캘리브레이션 업데이트 플래그가 설정되었음을 상기 메모리 제어기가 검출한 것에 응답하여 임피던스 캘리브레이션 래치 신호(ZQCAL LATCH)를 수신하는 단계; 및
    상기 ZQCAL LATCH에 응답하여 새로운 캘리브레이션 설정을 상기 메모리 디바이스에 설정하는 단계
    를 포함하는 방법.
  21. 제20항에 있어서,
    상기 임피던스 캘리브레이션 업데이트 플래그를 체크하기 위해 상기 메모리 제어기로부터 주기적 폴링 요청들을 수신하거나, 또는 상기 임피던스 캘리브레이션 업데이트 플래그를 체크하라는 모드 레지스터 판독 명령을 주기적으로 수신하는 단계를 더 포함하는 방법.
  22. 제20항에 있어서,
    상기 ZQCAL LATCH를 수신하는 단계는 우선 임피던스 캘리브레이션 시작 신호(ZQCAL START)를 수신하는 단계를 포함하는, 방법.
  23. 제20항에 있어서,
    상기 임피던스 캘리브레이션 업데이트 플래그를 선택적으로 기록하는 단계는:
    이전의 임피던스 캘리브레이션 설정과 업데이트된 캘리브레이션 설정 사이의 비교를 계산하는 단계; 및
    상기 업데이트된 캘리브레이션 설정이 상기 이전의 임피던스 캘리브레이션 설정과 임계량을 초과하여 상이한 경우에만 상기 임피던스 캘리브레이션 업데이트 플래그를 설정하는 단계
    를 포함하는 방법.
  24. 제20항에 있어서,
    상기 새로운 캘리브레이션 설정은 드라이버 임피던스 설정 또는 ODT(on-die termination) 설정을 포함하는, 방법.
  25. 제20항에 있어서,
    온-다이 센서에 의해 상기 메모리 디바이스의 성능 조건의 변경을 검출하는 단계를 더 포함하고, 상기 새로운 캘리브레이션 설정을 설정하는 단계는 상기 온-다이 센서에 의한 상기 변경의 검출에 기초하여 상기 임피던스 캘리브레이션을 설정하는 단계를 포함하는, 방법.
KR1020187037130A 2015-03-27 2016-03-07 센서 데이터를 검출하는 것에 기초하는 임피던스 보상 KR102617628B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/670,411 US10025685B2 (en) 2015-03-27 2015-03-27 Impedance compensation based on detecting sensor data
US14/670,411 2015-03-27
PCT/US2016/021153 WO2016160276A1 (en) 2015-03-27 2016-03-07 Impedance compensation based on detecting sensor data
KR1020177023566A KR102581206B1 (ko) 2015-03-27 2016-03-07 센서 데이터를 검출하는 것에 기초하는 임피던스 보상

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020177023566A Division KR102581206B1 (ko) 2015-03-27 2016-03-07 센서 데이터를 검출하는 것에 기초하는 임피던스 보상

Publications (2)

Publication Number Publication Date
KR20190000387A true KR20190000387A (ko) 2019-01-02
KR102617628B1 KR102617628B1 (ko) 2023-12-27

Family

ID=56974261

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177023566A KR102581206B1 (ko) 2015-03-27 2016-03-07 센서 데이터를 검출하는 것에 기초하는 임피던스 보상
KR1020187037130A KR102617628B1 (ko) 2015-03-27 2016-03-07 센서 데이터를 검출하는 것에 기초하는 임피던스 보상

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020177023566A KR102581206B1 (ko) 2015-03-27 2016-03-07 센서 데이터를 검출하는 것에 기초하는 임피던스 보상

Country Status (7)

Country Link
US (2) US10025685B2 (ko)
EP (2) EP3657506B1 (ko)
JP (2) JP6729940B2 (ko)
KR (2) KR102581206B1 (ko)
CN (2) CN107408099B (ko)
TW (1) TWI643206B (ko)
WO (1) WO2016160276A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11855625B2 (en) 2022-01-20 2023-12-26 SK Hynix Inc. Semiconductor apparatus, semiconductor system, and operating method of semiconductor apparatus

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170134444A (ko) * 2015-04-10 2017-12-06 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 온도 보상 회로
US10141935B2 (en) * 2015-09-25 2018-11-27 Intel Corporation Programmable on-die termination timing in a multi-rank system
US10284198B2 (en) * 2015-10-02 2019-05-07 Samsung Electronics Co., Ltd. Memory systems with ZQ global management and methods of operating same
US9653144B1 (en) * 2016-06-28 2017-05-16 Intel Corporation Apparatuses, methods, and systems for package on package memory refresh and self-refresh rate management
JP6640677B2 (ja) 2016-08-19 2020-02-05 キオクシア株式会社 半導体記憶装置
JP2018045743A (ja) * 2016-09-13 2018-03-22 東芝メモリ株式会社 半導体装置及びメモリシステム
US9965222B1 (en) * 2016-10-21 2018-05-08 Advanced Micro Devices, Inc. Software mode register access for platform margining and debug
US10348270B2 (en) * 2016-12-09 2019-07-09 Micron Technology, Inc. Apparatuses and methods for calibrating adjustable impedances of a semiconductor device
US10366765B2 (en) * 2016-12-15 2019-07-30 Taiwan Semiconductor Manufacturing Co., Ltd. Adjustment circuit for partitioned memory block
US10062453B1 (en) * 2017-03-09 2018-08-28 Toshiba Memory Corporation Calibrating I/O impedances using estimation of memory die temperature
US10193711B2 (en) 2017-06-22 2019-01-29 Micron Technology, Inc. Timing based arbitration methods and apparatuses for calibrating impedances of a semiconductor device
KR102391503B1 (ko) * 2017-09-11 2022-04-28 에스케이하이닉스 주식회사 임피던스 캘리브레이션 회로를 포함하는 메모리 시스템
KR102396741B1 (ko) * 2017-09-11 2022-05-12 에스케이하이닉스 주식회사 임피던스 캘리브레이션 회로를 포함하는 메모리 시스템
US10615798B2 (en) 2017-10-30 2020-04-07 Micron Technology, Inc. Apparatuses and methods for identifying memory devices of a semiconductor device sharing an external resistance
KR102649322B1 (ko) * 2018-05-25 2024-03-20 삼성전자주식회사 메모리 장치, 메모리 시스템, 및 메모리 장치의 동작 방법
US11163487B2 (en) * 2018-06-04 2021-11-02 Micron Technology, Inc. Methods for generating notifications for updated information from mode registers of a memory device to a host and memory devices and systems employing the same
US10692560B2 (en) * 2018-06-06 2020-06-23 Intel Corporation Periodic calibrations during memory device self refresh
US11570685B2 (en) 2018-10-24 2023-01-31 Carrier Corporation Power savings for wireless sensors
US11074976B2 (en) 2019-08-26 2021-07-27 Sandisk Technologies Llc Temperature dependent impedance mitigation in non-volatile memory
KR20210047475A (ko) * 2019-10-22 2021-04-30 삼성전자주식회사 센서를 구비한 멀티 디스플레이 장치
CN112817884A (zh) * 2019-11-15 2021-05-18 安徽寒武纪信息科技有限公司 一种存储器以及包括该存储器的设备
US10747245B1 (en) 2019-11-19 2020-08-18 Micron Technology, Inc. Apparatuses and methods for ZQ calibration
US11579784B2 (en) 2019-11-27 2023-02-14 Micron Technology, Inc. Refresh counters in a memory system
US20200125446A1 (en) * 2019-12-20 2020-04-23 Intel Corporation Error Correcting Code Circuitry Compatible with Multi-Width Interfaces
JP6890701B1 (ja) * 2020-05-19 2021-06-18 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. コードシフト算出回路およびコードシフト値の算出方法
US11621038B2 (en) * 2021-07-21 2023-04-04 Micron Technology, Inc. Driver for non-binary signaling
US20230133234A1 (en) * 2021-11-04 2023-05-04 Samsung Electronics Co., Ltd. Electronic device controlling an operation of a volatile memory and method for operating the same
CN115695103A (zh) * 2022-11-21 2023-02-03 深圳数马电子技术有限公司 阻抗自适应方法、装置、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517613A (en) * 1991-12-12 1996-05-14 Emc Corporation Environment sensing/control circuit
US20060158214A1 (en) * 2005-01-20 2006-07-20 Micron Technology, Inc. Apparatus and method for independent control of on-die termination for ouput buffers of a memory device
US20080198666A1 (en) * 2007-02-20 2008-08-21 Aaron Nygren Semiconductor device including adjustable driver output impedances
US20110066798A1 (en) * 2009-09-11 2011-03-17 Elpida Memory, Inc. Semiconductor device having calibration circuit that adjusts an impedance of output buffer and data processing system including the same
KR101206498B1 (ko) * 2010-07-08 2012-11-29 에스케이하이닉스 주식회사 임피던스 캘리브레이션 회로 및 그 동작 방법

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6262625B1 (en) * 1999-10-29 2001-07-17 Hewlett-Packard Co Operational amplifier with digital offset calibration
FI106411B (fi) * 1999-02-03 2001-01-31 Nokia Mobile Phones Ltd Menetelmä ja järjestely ilmaisimen ja ohjaussignaalin lämpöryöminnän kompensoimiseksi jaksoittaisessa säädössä
US6292059B1 (en) * 1999-10-29 2001-09-18 Scientific-Atlanta, Inc. Systems, methods, and circuits for providing thermal compensation in amplifiers
US6476392B1 (en) * 2001-05-11 2002-11-05 Irvine Sensors Corporation Method and apparatus for temperature compensation of an uncooled focal plane array
US6785793B2 (en) * 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
US7114087B2 (en) * 2003-05-27 2006-09-26 Intel Corporation Method to detect a temperature change by a thermal monitor and compensating for process, voltage, temperature effects caused by the temperature change
JP2005010966A (ja) 2003-06-18 2005-01-13 Olympus Corp Lsi装置
US7111143B2 (en) * 2003-12-30 2006-09-19 Infineon Technologies Ag Burst mode implementation in a memory device
KR100532972B1 (ko) 2004-04-28 2005-12-01 주식회사 하이닉스반도체 온 다이 터미네이션 임피던스 조절 장치
US7227376B2 (en) 2004-11-05 2007-06-05 Ati Technologies Inc. Dynamic impedance compensation circuit and method
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US7432731B2 (en) 2005-06-30 2008-10-07 Intel Corporation Method and apparatus to calibrate DRAM on resistance (Ron) and on-die termination (ODT) values over process, voltage and temperature (PVT) variations
JP4916699B2 (ja) * 2005-10-25 2012-04-18 エルピーダメモリ株式会社 Zqキャリブレーション回路及びこれを備えた半導体装置
US8118483B2 (en) * 2006-06-21 2012-02-21 Intel Corporation Thermal sensor having toggle control
US7644250B2 (en) * 2006-06-30 2010-01-05 Intel Corporation Defining pin functionality at device power on
US7459930B2 (en) * 2006-11-14 2008-12-02 Micron Technology, Inc. Digital calibration circuits, devices and systems including same, and methods of operation
JP2008271517A (ja) * 2007-03-23 2008-11-06 Matsushita Electric Ind Co Ltd 高周波電力増幅器、半導体装置、および高周波電力増幅方法
KR100937951B1 (ko) 2008-09-05 2010-01-21 주식회사 하이닉스반도체 캘리브래이션 회로, 온 다이 터미네이션 장치 및 반도체 메모리 장치
JP2010117987A (ja) * 2008-11-14 2010-05-27 Denso Corp メモリ制御装置、およびメモリ制御プログラム
EP2441007A1 (en) 2009-06-09 2012-04-18 Google, Inc. Programming of dimm termination resistance values
US8482339B1 (en) * 2009-06-12 2013-07-09 National Acquisition Sub, Inc. Method and apparatus for temperature compensation of filter circuits
JP2011040983A (ja) 2009-08-11 2011-02-24 Renesas Electronics Corp 半導体集積回路、半導体記憶装置、及びインピーダンス調整方法
JP5287599B2 (ja) * 2009-08-24 2013-09-11 株式会社リコー 電子機器
US8307270B2 (en) * 2009-09-03 2012-11-06 International Business Machines Corporation Advanced memory device having improved performance, reduced power and increased reliability
US20110068765A1 (en) * 2009-09-22 2011-03-24 Qualcomm Incorporated System and method for power calibrating a pulse generator
JP2011101143A (ja) * 2009-11-05 2011-05-19 Elpida Memory Inc 半導体装置及びそのシステムとキャリブレーション方法
JP2011170943A (ja) * 2010-02-22 2011-09-01 Sony Corp 記憶制御装置、記憶装置、記憶装置システム
US8738852B2 (en) * 2011-08-31 2014-05-27 Nvidia Corporation Memory controller and a dynamic random access memory interface
JP2013085078A (ja) * 2011-10-07 2013-05-09 Elpida Memory Inc 半導体装置及びこれを備える半導体モジュール
FR2987210B1 (fr) * 2012-02-22 2014-02-21 Ulis Procede de correction de la derive d'un detecteur de rayonnement infrarouge comportant une matrice de bolometres resistifs d'imagerie et dispositif mettant en oeuvre un tel procede
KR20140008745A (ko) 2012-07-11 2014-01-22 삼성전자주식회사 자기 메모리 장치
KR20140100330A (ko) * 2013-02-06 2014-08-14 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
KR20140107890A (ko) * 2013-02-28 2014-09-05 에스케이하이닉스 주식회사 메모리, 이를 포함하는 메모리 시스템 및 메모리 콘트롤러의 동작 방법
TWI508087B (zh) * 2013-07-01 2015-11-11 Mstar Semiconductor Inc 記憶體信號的動態相位追蹤方法及其相關控制電路
US9779039B2 (en) 2013-08-29 2017-10-03 Micron Technology, Inc. Impedance adjustment in a memory device
US9292076B2 (en) * 2013-09-16 2016-03-22 Intel Corporation Fast recalibration circuitry for input/output (IO) compensation finite state machine power-down-exit
US9704557B2 (en) * 2013-09-25 2017-07-11 Qualcomm Incorporated Method and apparatus for storing retention time profile information based on retention time and temperature
US9269404B1 (en) 2014-08-07 2016-02-23 Qualcomm Incorporated Semiconductor package on package memory channels with arbitration for shared calibration resources
US20160179113A1 (en) 2014-12-17 2016-06-23 Sandisk Technologies Inc. Temperature Independent Reference Current Generation For Calibration
US9621160B2 (en) 2015-03-05 2017-04-11 Micron Technology, Inc. Circuits for impedance adjustment having multiple termination devices with switchable resistances and methods of adjusting impedance
US20160378366A1 (en) * 2015-06-24 2016-12-29 Intel Corporation Internal consecutive row access for long burst length

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517613A (en) * 1991-12-12 1996-05-14 Emc Corporation Environment sensing/control circuit
US20060158214A1 (en) * 2005-01-20 2006-07-20 Micron Technology, Inc. Apparatus and method for independent control of on-die termination for ouput buffers of a memory device
US20080198666A1 (en) * 2007-02-20 2008-08-21 Aaron Nygren Semiconductor device including adjustable driver output impedances
US20110066798A1 (en) * 2009-09-11 2011-03-17 Elpida Memory, Inc. Semiconductor device having calibration circuit that adjusts an impedance of output buffer and data processing system including the same
KR101206498B1 (ko) * 2010-07-08 2012-11-29 에스케이하이닉스 주식회사 임피던스 캘리브레이션 회로 및 그 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11855625B2 (en) 2022-01-20 2023-12-26 SK Hynix Inc. Semiconductor apparatus, semiconductor system, and operating method of semiconductor apparatus

Also Published As

Publication number Publication date
US10025685B2 (en) 2018-07-17
CN110059048B (zh) 2024-02-02
EP3274994B1 (en) 2019-12-04
TW201642257A (zh) 2016-12-01
KR102581206B1 (ko) 2023-09-21
US20190004919A1 (en) 2019-01-03
US10552285B2 (en) 2020-02-04
JP2018511108A (ja) 2018-04-19
KR102617628B1 (ko) 2023-12-27
EP3657506B1 (en) 2022-01-12
EP3274994A4 (en) 2018-11-21
EP3657506A1 (en) 2020-05-27
WO2016160276A1 (en) 2016-10-06
JP2020170532A (ja) 2020-10-15
JP6965494B2 (ja) 2021-11-10
JP6729940B2 (ja) 2020-07-29
US20160284386A1 (en) 2016-09-29
EP3274994A1 (en) 2018-01-31
CN107408099A (zh) 2017-11-28
TWI643206B (zh) 2018-12-01
CN110059048A (zh) 2019-07-26
CN107408099B (zh) 2021-04-20
KR20170131371A (ko) 2017-11-29

Similar Documents

Publication Publication Date Title
JP6965494B2 (ja) センサデータ検出に基づくインピーダンス補償
US11789880B2 (en) Load reduced nonvolatile memory interface
US9871519B2 (en) On-die termination control without a dedicated pin in a multi-rank system
US9921961B2 (en) Multi-level memory management
US10872647B2 (en) Flexible DLL (delay locked loop) calibration
TW201723866A (zh) 具有隱藏更新及外部更新之混合式更新技術
US9953694B2 (en) Memory controller-controlled refresh abort
US9390785B2 (en) Method, apparatus and system for determining a write recovery time of a memory based on temperature

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant