KR101343252B1 - 메모리 회로 시스템 및 방법 - Google Patents

메모리 회로 시스템 및 방법 Download PDF

Info

Publication number
KR101343252B1
KR101343252B1 KR1020087019582A KR20087019582A KR101343252B1 KR 101343252 B1 KR101343252 B1 KR 101343252B1 KR 1020087019582 A KR1020087019582 A KR 1020087019582A KR 20087019582 A KR20087019582 A KR 20087019582A KR 101343252 B1 KR101343252 B1 KR 101343252B1
Authority
KR
South Korea
Prior art keywords
delete delete
memory
dram
integrated circuit
stack
Prior art date
Application number
KR1020087019582A
Other languages
English (en)
Other versions
KR20080108975A (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
Priority claimed from US11/461,437 external-priority patent/US8077535B2/en
Priority claimed from US11/702,960 external-priority patent/US20080126690A1/en
Priority claimed from US11/702,981 external-priority patent/US8089795B2/en
Priority claimed from PCT/US2007/003460 external-priority patent/WO2007095080A2/en
Application filed by 구글 인코포레이티드 filed Critical 구글 인코포레이티드
Publication of KR20080108975A publication Critical patent/KR20080108975A/ko
Application granted granted Critical
Publication of KR101343252B1 publication Critical patent/KR101343252B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/03Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
    • H01L25/04Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers
    • H01L25/065Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L25/0657Stacked arrangements of devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40618Refresh operations over multiple banks or interleaving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/02Arrangements for writing information into, or reading information out from, a digital store with means for avoiding parasitic signals
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2224/00Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
    • H01L2224/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L2224/10Bump connectors; Manufacturing methods related thereto
    • H01L2224/15Structure, shape, material or disposition of the bump connectors after the connecting process
    • H01L2224/16Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
    • H01L2224/161Disposition
    • H01L2224/16135Disposition the bump connector connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip
    • H01L2224/16145Disposition the bump connector connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip the bodies being stacked
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2224/00Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
    • H01L2224/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L2224/10Bump connectors; Manufacturing methods related thereto
    • H01L2224/15Structure, shape, material or disposition of the bump connectors after the connecting process
    • H01L2224/16Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
    • H01L2224/161Disposition
    • H01L2224/16151Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive
    • H01L2224/16221Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive the body and the item being stacked
    • H01L2224/16225Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive the body and the item being stacked the item being non-metallic, e.g. insulating substrate with or without metallisation
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06513Bump or bump-like direct electrical connections between devices, e.g. flip-chip connection, solder bumps
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06517Bump or bump-like direct electrical connections from device to substrate
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2924/00Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
    • H01L2924/15Details of package parts other than the semiconductor or other solid state devices to be connected
    • H01L2924/151Die mounting substrate
    • H01L2924/153Connection portion
    • H01L2924/1531Connection portion the connection portion being formed only on the surface of the substrate opposite to the die mounting surface
    • H01L2924/15311Connection portion the connection portion being formed only on the surface of the substrate opposite to the die mounting surface being a ball array, e.g. BGA

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)

Abstract

메모리 회로 시스템 및 방법이 제공된다. 일 실시예에서 인터페이스 회로는 복수의 메모리 회로 및 소정 시스템과 통신할 수 있다. 사용시 인터페이스 회로는 메모리 회로 및 시스템과 인터페이스하여 메모리 회로의 커맨드 스케쥴링 제약을 감소시키도록 동작할 수 있다. 다른 실시예에서 인터페이스 회로는 복수의 메모리 회로 및 소정 시스템과 통신할 수 있다. 사용시 인터페이스 회로는 시스템과 메모리 회로 간에 통신된 커맨드와 연관된 어드레스를 번역하도록 동작할 수 있다. 또 다른 실시예에서 적어도 하나의 메모리 스택은 복수의 DRAM 집적 회로를 포함한다. 더욱이 호스트 시스템에 연결된 버퍼 회로는 메모리 스택을 호스트 시스템에 인터페이스시켜 DRAM 집적 회로와 호스트 시스템 간의 하나 또는 그 이상의 물리 파라미터를 변환하는데 이용된다. 또 다른 실시예에서 적어도 하나의 메모리 스택은 복수의 DRAM 집적 회로를 포함한다. 더욱이 호스트 시스템에 연결된 버퍼 회로는 메모리 스택을 호스트 시스템에 인터페이스시켜 메모리 스택이 단일의 DRAM 집적 회로로서 동작하도록 하는데 이용된다.
인터페이스 회로, 호스트 시스템, 메모리 스택, 뱅크, 랭크, 커맨드 스케쥴링 제약

Description

메모리 회로 시스템 및 방법{MEMORY CIRCUIT SYSTEM AND METHOD}
본 발명은 메모리에 관한 것으로, 특히 메모리 회로의 커맨드 스케줄링 제약에 관한 것이다.
일반적으로 메모리 회로 인터페이스의 속도가 증가하면, 버스의 고속 동작을 용이하게 하기 위하여 통상적인 멀티 드롭 메모리 버스 상의 부하(또는 랭크) 수가 감소하게 된다. 또한, 고밀도 집적 회로는 통상의 집적 회로보다 달러당 메가바이트(MB) 비가 더 높은 것처럼, 가격과 메모리 회로 밀도 간에 지수적인 관계가 자주 있다. 따라서 일반적으로 서버가 경제적으로 이용할 수 있는 메모리 량에는 상한이 있다. 또한, 더 큰 메모리 용량을 제공하기 위해서는 더 큰 면적의 인쇄회로 기핀이 일반적으로 요구되므로, 소형 시스템(예컨대 서버)의 경우에는 메모리 용량에 제약이 따른다.
더욱이 메모리 시스템에서 필요한 데이터 전송 속도와 대역폭이 꾸준히 증가해옴에 따라서 많은 커맨드들도 대역폭을 증가시키기 위하여 메모리 시스템에서 스케쥴, 발행(issued) 및 파이프라인(pipelined)되어야 할 필요가 있게 되었다. 그러나 메모리 시스템에는 통상적으로 커맨드 스케쥴링 제약이 있어, 커맨드 발행율을 제한하고 따라서 대역폭을 더 증가시키려는 여러 가지 시도를 제한하게 된다. 따라서 종래 기술과 관련된 이들 및/또는 다른 문제를 해결할 필요가 있다.
<발명의 개요>
메모리 회로 시스템 및 방법이 제공된다. 일 실시예에서 인터페이스 회로는 복수의 메모리 회로 및 소정 시스템과 통신할 수 있다. 사용시 인터페이스 회로는 메모리 회로 및 시스템과 인터페이스하여 메모리 회로의 커맨드 스케쥴링 제약을 감소시키도록 동작할 수 있다.
다른 실시예에서 인터페이스 회로는 복수의 메모리 회로 및 소정 시스템과 통신할 수 있다. 사용시 인터페이스 회로는 시스템과 메모리 회로 간에 통신된 커맨드와 연관된 어드레스를 번역하도록 동작할 수 있다.
또 다른 실시예에서 적어도 하나의 메모리 스택은 복수의 DRAM 집적 회로를 포함한다. 더욱이 호스트 시스템에 연결된 버퍼 회로는 메모리 스택을 호스트 시스템에 인터페이스시켜 DRAM 집적 회로와 호스트 시스템 간의 하나 또는 그 이상의 물리 파라미터를 변환하는데 이용된다.
또 다른 실시예에서 적어도 하나의 메모리 스택은 복수의 DRAM 집적 회로를 포함한다. 더욱이 호스트 시스템에 연결된 버퍼 회로는 메모리 스택을 호스트 시스템에 인터페이스시켜 메모리 스택이 단일의 DRAM 집적 회로로서 동작하도록 하는데 이용된다.
도 1은 일 실시예에 따라서 메모리 회로와 인터페이싱하기 위한 서브 시스템을 도시한 도면.
도 2는 다른 실시예에 따라서 메모리 회로의 커맨드 스케쥴링 제약을 줄이기 위한 방법을 나타낸 도면.
도 3은 또 다른 실시예에 따라서 시스템과 메모리 회로 간에 통신된 커맨드와 관련된 어드레스를 변환하기 위한 방법을 나타낸 도면.
도 4는 다른 실시예에 따라서 컴퓨터 플랫폼의 논리 요소를 포함하는 블록도면.
도 5는 또 다른 실시예에 따라서 DDR3 SDRAM 메모리 시스템에서 대역폭 이용율을 완전히 이용하는 것을 방해하는 장치내 커맨드 시퀀스, 장치내 타이밍 제약, 및 아이들 사이클(idle cycle)을 보여 주는 타이밍도.
도 6은 또 다른 실시예에 따라서 DDR SDRAM, DDR2 SDRAM 또는 DDR3 SDRAM 메모리 시스템에서 대역폭 이용율의 완전히 이용하는 것을 방해하는 장치간 커맨드 시퀀스, 장치간 타이밍 제약, 및 아이들 사이클을 보여 주는 타이밍도.
도 7은 다른 실시예에 따라서 메모리 컨트롤러에 연결된 DRAM 장치 어레이를 도시한 블록도.
도 8은 또 다른 실시예에 따라서 DRAM 장치 어레이와 메모리 컨트롤러 사이에 배치된 인터페이스 회로를 도시한 블록도.
도 9는 다른 실시예에 따라서 DRAM 장치 어레이와 메모리 컨트롤러 사이에 배치된 DDR3 SDRAM 인터페이스 회로를 도시한 블록도.
도 10은 또 다른 실시예에 따라서 복수의 독립적인 데이터 버스를 구비한 복수의 DRAM 장치에 연결된 버스트 병합(burst-merging) 인터페이스 회로를 도시한 블록도.
도 11은 다른 실시예에 따라서 커맨드 시퀀스 내의 복수의 커맨드를 통한 연속적인 데이터 전송을 보여 주는 타이밍도.
도 12는 또 다른 실시예에 따라서 복수의 독립적인 데이터 버스를 구비한 복수의 DRAM 장치에 연결된 프로토콜 변환 및 인터페이스 회로를 도시한 블록도.
도 13은 다른 실시예에 따라서 메모리 컨트롤러가 열 액세스 커맨드를 늦게 발행할 때의 효과를 보여 주는 타이밍도.
도 14는 또 다른 실시예에 따라서 메모리 컨트롤러가 열 액세스 커맨드를 조기에 발행할 때의 효과를 보여 주는 타이밍도.
도 15A 내지 15C는 다른 실시예에 따라서 복수의 DRAM 스택을 구비한 DIMM을 도시한 도면.
도 16A는 또 다른 실시예에 따라서 버퍼링된 DRAM 스택을 구비한 DIMM PCB를 도시한 도면.
도 16B는 또 다른 실시예에 따라서 4 기가바이트 DRAM을 에뮬레이트하는 버퍼링된 DRAM 스택을 도시한 도면.
도 17A는 다른 실시예에 따라서 버퍼 집적 회로 및 DRAM 스택을 이용하는 DIMM의 예를 도시한 도면.
도 17B는 또 다른 실시예에 따라서, 일 실시예에 따른 DRAM의 물리적 스택을 도시한 도면.
도 18A 및 18B는 또 다른 실시예에 따라서, 멀티 랭크 버퍼 집적 회로 및 DIMM을 도시한 도면.
도 19A 및 19B는 다른 실시예에 따라서, 호스트 시스템으로부터의 유효 집적 회로 선택 수와 같은 DIMM 상의 랭크 수를 제공하는 버퍼를 도시한 도면.
도 19C는 또 다른 실시예에 따라서, 메모리의 논리적 분할과 메모리의 물리적 분할 간의 맵핑을 보여 주는 도면.
도 20A는 또 다른 실시예에 따라서, 메모리 컨트롤러와 DIMM 간의 구성을 도시한 도면.
도 20B는 또 다른 실시예에 따라서, 호스트 시스템으로부터의 커맨드에 기초하여 랭크 수를 구성하기 위하여 집적 회로 선택 라인을 DIMM 상의 버퍼에 결합하는 것을 보여 주는 도면.
도 21은 또 다른 실시예에 따라서, 업그레이드 능력을 가진 커넥터 또는 인터포저를 구비한 DIMM PCB를 도시한 도면.
도 22는 또 다른 실시예에 따라서, 멀티 랭크 버퍼 집적 회로를 이용한 선형 어드레스 맵핑의 예를 보여 주는 도면.
도 23은 다른 실시예에 따라서, 싱글 랭크 버퍼 집적 회로를 이용한 선형 어드레스 맵핑의 예를 보여 주는 도면.
도 24는 또 다른 실시예에 따라서, 멀티 랭크 버퍼 집적 회로를 이용한 "비트 슬라이스" 어드레스 맵핑의 예를 보여 주는 도면.
도 25는 또 다른 실시예에 따라서, 싱글 랭크 버퍼 집적 회로를 이용한 "비트 슬라이스" 어드레스 맵핑의 예를 보여 주는 도면.
도 26A 및 26B는 다른 실시예에 따라서, DRAM 및 비휘발성 메모리 집적 회로를 포함하는 버퍼링된 스택의 예들을 보여 주는 도면.
도 27A, 27B 및 27C는 다른 실시예에 따라서, 전력 분리층(power decoupling layer)을 구비한 버퍼링된 스택을 도시한 도면.
도 28은 일 실시예에 따라서 대표적인 하드웨어 환경을 보여 주는 도면.
도 1은 일 실시예에 따라서 메모리 회로와 인터페이싱하기 위한 서브 시스템(100)을 도시한 것이다. 도시된 바와 같이, 서브 시스템(100)은 메모리 회로(102)와 시스템(106)에 연결된 인터페이스 회로(104)를 포함한다. 본 명세서에서는 그와 같은 메모리 회로(102)는 메모리로서 기능할 수 있는 임의의 회로를 포함할 수 있다.
예컨대 각종 실시예에서 메모리 회로들(102) 중 적어도 하나는 모놀리식 메모리 회로, 반도체 다이, 칩, 패키지 메모리 회로, 또는 기타 다른 형태의 유형적 메모리 회로를 포함할 수 있다. 일 실시예에서 메모리 회로(102)는 DRAM (dynamic random access memory) 회로 형태를 가질 수 있다. 그와 같은 DRAM은 동기식 DRAM (SDRAM), 더블 데이터 레이트 동기식 DRAM(DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM 등), 그래픽 더블 데이터 레이트 동기식 DRAM(GDDR, GDDR2, GDDR3 등), 쿼드 데이터 레이트 DRAM (QDR DRAM), RAMBUS XDR DRAM(XDR DRAM), 패스트 페이지 모드 DRAM (FPM DRAM), 비디오 DRAM (VDRAM), 확장 데이터 출력형 DRAM (EDO DRAM), 버스트 EDO DRAM(BEDO DRAM), 멀티뱅크 DRAM(MDRAM), 동기식 그래픽 RAM(SGRAM), 및/또는 기타 다른 형태의 DRAM을 포함하는 임의의 형태를 가질 수 있다.
다른 실시예에서 메모리 회로들(102) 중 적어도 하나는 자기 RAM(MRAM), 지능형 RAM(IRAM), 분산망 구조(DNA) 메모리, 윈도우 RAM(WRAM), 플래시 메모리(예컨대 NAND, NOR 등), 유사 스태틱 RAM(pheudostatic random access memory; PSRAM), 웨트웨어 메모리, 반도체, 원자적, 분자적, 광학적, 생물학적, 화학적, 또는 나노스케일 기술 기반의 메모리, 및/또는 기타 다른 형태의 휘발성 또는 비휘발성, 랜덤 또는 비랜덤 액세스, 시리얼 또는 패러럴 액세스 메모리 회로 등을 포함할 수 있다.
엄격히 한 가지 옵션으로는 메모리 회로(102)는 적어도 하나의 듀얼 인 라인(dual in-line) 메모리 모듈(DIMM)(미도시) 상에 배치될 수도 안 될 수 있다. 각종 실시예에서 DIMM은 레지스터드 DIMM(R-DIMM), 스몰 아우트라인 DIMM(SO-DIMM), 전체 버퍼된 DIMM(fully buffered DIMM; FB-DIMM), 버퍼되지 않은 DIMM(UDIMM), 싱글 인라인 메모리 모듈(SIMM), MiniDIMM, VLP(very low profile) R-DIMM 등을 포함할 수 있다. 다른 실시예에서 메모리 회로(102)는 기판, 카드, 모듈, 시트, 섬유, 보드, 담체(carrier) 또는 임의 형태의 강성 또는 연성 실체, 형태 또는 물체를 구성하는 임의 형태의 재료 상에 배치될 수도 안될 수 있다. 물론 또 다른 실시예에서 메모리 회로(102)는 패키징 목적으로 임의의 원하는 실체, 형태 또는 물체 내에 또는 그 위에 배치될 수도 되지 않을 수도 있다. 또 다른 실시예에서 메모리 회로(102)는 랭크로 구성될 수도 안될 수도 있다. 그와 같은 랭크는 그와 같은 메모리 회로(102)를 상기 실체, 형태, 물체 등에 임의로 배치한 것 을 말 수 있다.
더욱이 명세서에서 시스템(106)은 어떤 프로세스를 요청 및/또는 개시하여 메모리 회로(102)에 액세스할 수 있는 임의의 시스템을 포함할 수 있다. 옵션으로서 시스템(106)은 메모리 컨트롤러(미도시)나 기타 다른 원하는 기구를 이용하여 이것을 달성할 수 있다. 일 실시예에서 그와 같은 시스템(106)은 실제로 데스크탑 컴퓨터, 랩탑 컴퓨터, 서버, 저장 시스템, 네트워킹 시스템, 워크스테이션, 개인 휴대 정보단말(PDA), 모바일폰, 텔레비젼, 컴퓨터 주변장치(예컨대 프린터 등), 가전 제품, 통신 시스템, 및/또는 기타 소프트웨어 및/또는 하드웨어 형태의 시스템을 포함할 수 있다.
본 명세서에서 인터페이스 회로(104)는 메모리 회로(102) 및 시스템(106)과 인터페이싱(예컨대 통신, 버퍼링 등)을 할 수 있는 임의의 회로를 말할 수 있다. 예컨대 여러 가지 실시예에서 인터페이스 회로(104)는 메모리 회로(102) 및 시스템(106)과 직접적으로(예컨대 유선, 버스, 커넥터, 및/또는 임의의 다른 직접적인 통신 매체 등을 통해) 및/또는 간접적으로(예컨대 무선, 광학적, 용량적, 전기장, 자기장, 전자기장, 및/또는 기타 다른 간접적 통신 매체 등을 통해) 통신할 수 있는 회로를 포함할 수 있다. 또 다른 여러 가지 실시예에서 통신은 직접 접속(예컨대 포인트 투 포인트, 싱글 드롭 버스, 멀티 드롭 버스, 시리얼 버스, 패러럴 버스, 링크, 및/또는 기타 다른 직접적 접속 등)을 이용하거나 간접 접속(예컨대 중간 회로, 중간 로직, 중간 버스(들), 및/또는 기타 다른 간접적 접속)을 이용할 수 있다.
추가적인 선택적 실시예에서 인터페이스 회로(104)는 버퍼(예컨대 버퍼 칩 등), 레지스터(예컨대 레지스터 칩 등), 어드밴스드 메모리 버퍼(AMB)(예컨대 AMB 칩 등), 적어도 하나의 DIMM 상에 배치된 컴포넌트, 메모리 컨트롤러 등과 같은 하나 또는 그 이상의 회로를 포함할 수 있다. 더욱이 각종 실시예에서 레지스터는 JEDEC 고체 상태 기술 협회(JEDEC으로 알려져 있음) 표준 레지스터(JEDEC 레지스터), 전송, 저장 및/또는 버퍼링 능력을 가진 레지스터 등을 포함할 수 있다. 각종 실시예에서 레지스터 칩, 버퍼 칩 및/또는 기타 다른 인터페이스 회로(104)는 지능적일 수 있다. 즉 정보 수집 및/또는 저장; 상태 및/또는 스테이터스의 추론, 예측 및/또는 저장; 논리적 판단 수행; 및/또는 입력 신호에 대한 연산 수행 등과 같은 하나 또는 그 이상의 기능을 수행할 수 있는 로직을 포함할 수 있다. 또 다른 실시예에서 인터페이스 회로(104)는 실제로 선택적으로 모노리식 형태, 패키지 형태, 프린트 형태 및/또는 기타 다른 회로 제조 형태로 제조될 수 있다. 더욱이 다른 실시예에서 인터페이스 회로(104)는 DIMM 상에 배치될 수 있다.
또 다른 실시예에서 복수의 전술한 인터페이스 회로(104)는 조합하여 메모리 회로(102)와 시스템(106)과 인터페이스할 수 있다. 따라서 각종 실시예에서 1, 2, 3, 4 또는 그 이상의 인터페이스 회로(104)가 그와 같은 인터페이싱을 위해 이용될 수 있다. 또한 복수의 인터페이스 회로(104)는 비교적 임의의 원하는 방식으로 구성 또는 연결될 수 있다. 예컨대 인터페이스 회로(104)는 병렬로, 직렬로 또는 이들의 여러 가지 조합으로 구성 또는 연결될 수 있다. 복수의 인터페이스 회로(104)는 서로 간에 직집적으로, 간접적으로 또는 그 조합으로 연결될 수 있다. 더욱이 임의의 수의 인터페이스 회로(104)가 임의의 수의 메모리 회로(102)에 할당될 수 있다. 각종 다른 실시예에서 복수의 인터페이스 회로(104)는 같은 것이거나 서로 다른 것일 수 있다. 더욱이 인터페이스 회로(104)는 동일 또는 유사한 인터페이스 태스크를 공유하고 그리고/또는 여러 가지 인터페이스 태스크를 수행할 수 있다.
메모리 회로(102), 인터페이스 회로(104) 및 시스템(106)은 독립적인 요소로 도시되어 있으나, 이들은 (또는 그 일부들은) 임의의 원하는 방식으로 통합될 수 있다. 각종 실시예에서 그와 같은 선택적 통합은 그와 같은 요소들을 단순히 함께 패키징 하는 것(예컨대 이 요소들을 적층하여 하나의 DRAM 회로 스택, 하나의 DRAM 스택, 복수의 DRAM 스택, 하드웨어 스택 등(여기서 스택은 요소 및/또는 회로의 임의의 묶음, 집합 또는 그룹화 등이라고 말할 수 있다)을 구성하는 것) 및/또는 이들 요소를 모놀리식으로 통합하는 것을 포함할 수 있다. 예컨대 선택적인 일 실시예에서 적어도 하나의 인터페이스 회로(104)(또는 그 일부)는 메모리 회로들(102) 중 적어도 하나와 패키지될 수 있다. 이런 식으로 인터페이스 회로(104)와 메모리 회로(102)는 일 실시예에서 스택 형태를 가질 수 있다.
예컨대 DRAM 스택은 적어도 하나의 인터페이스 회로(또는 그 일부)를 포함하거나 포함하지 않을 수 있다. 다른 실시예에서 여러 개의 인터페이스 회로(104)(또는 그 일부)는 함께 패키지될 수 있다. 그와 같은 여러 가지 패키징 구성을 이용하면 선택적으로 예컨대 모놀리식 실리콘 구현의 이용율을 높일 수 있다.
인터페이스 회로(104)는 각종 실시예에서 여러 가지 기능을 수행할 수 있다. 예컨대 선택적인 일 실시예에서 인터페이스 회로(104)는 메모리 회로(102)와 시스템(106) 간에 연결된 복수의 신호와 인터페이스할 수 있다. 이 신호들은 예컨대 어드레스 신호, 데이터 신호, 제어 신호, 인에이블 신호, 클록 신호, 리셋 신호, 또는 메모리 회로(102), 시스템(106) 또는 인터페이스 회로(들)(104) 등을 동작시키는데 이용되거나 이들과 관련된 기타 다른 신호를 포함할 수 있다. 일부 선택적인 실시예에서 이 신호들은 직접 접속, 간접 접속 또는 전용 접속을 이용하는 것일 수 있으며, 몇 개의 접속을 통해 인코딩될 수 있으며, 및/또는 하나 또는 그 이상의 접속을 통해 인코딩(예컨대 시다중화(time-multiplexed) 등)될 수 있다.
본 실시예의 일 양상에서 인터페이스된 신호는 메모리 회로(102)와 시스템(106) 간에 연결된 모든 신호를 나타낼 수 있다. 다른 양상에서 이 신호들의 적어도 일부는 메모리 회로(102)와 시스템(106) 간의 직접 접속을 이용할 수 있다. 더욱이 옵션으로서 (예컨대 직접 접속 등을 이용하는 신호의 수 대) 인터페이스된 신호의 수는, 인터페이스된 신호가 메모리 회로(102)와 시스템(106) 간의 총 신호 접속 수의 적어도 대부분을 포함할 수 있도록 변화될 수 있다.
또 다른 실시예에서 인터페이스 회로(104)는 시스템(106)에 대해서 제2 수의 메모리 회로를 시뮬레이트하기 위하여 제1 수의 메모리 회로(102) 및 시스템(106)과 인터페이스하도록 동작될 수도 안될 수도 있다. 이하, 제1 수의 메모리 회로(102)는 명확하게 하기 위해 적당한 경우에 "물리적" 메모리 회로(102) 또는 메모리 회로라고 부를 것이나 반드시 그렇게 해야 하는 것은 아니다. 예컨대 물리적 메모리 회로(102)는 하나의 물리적 메모리 회로를 포함할 수 있다. 더욱이 시스 템(106)이 본 적어도 하나의 시뮬레이트된 메모리 회로는 이하에서는 명확하게 하기 위해 적당한 경우에 적어도 하나의 "가상적" 메모리 회로라고 부를 것이다.
본 실시예의 다른 부가적인 양태에서는 제2 수의 가상적 메모리 회로가 제1 개수의 물리적 메모리 회로(102)보다 많거나, 이와 같거나, 이보다 적을 수 있다. 예컨대 제2 개수의 가상 메모리 회로는 하나의 메모리 회로를 포함할 수 있다. 그러나 물론 임의 수의 메모리 회로가 시뮬레이트될 수 있다.
본 명세서에서 시뮬레이트 된다는 것은 시스템(106)에 서로 다르게 보이는 메모리 회로(102)의 적어도 하나의 양상으로 귀결되는 시뮬레이팅(simulating), 에뮬레이팅(emulating), 위장(disguising), 전환(transforming), 변형(modifying), 수정(changing), 변경(altering), 셰이핑(shaping), 변환(converting) 등을 말할 수 있다. 다른 실시예에서 그와 같은 양상은 실제로 예컨대 수, 신호, 메모리 용량, 타이밍, 래이턴시(latency), 설계 파라미터, 논리 인터페이스, 제어 시스템, 특성, 거동(behavior)(예컨대 전력 소모, 전류 소모, 전류 파형, 전력 파라미터, 전력 메트릭스, 기타 양상의 전력 관리나 거동 등(이에 한정되지 않음)을 포함하는 전력 거동), 및/또는 기타 다른 양상을 포함할 수 있다.
다른 실시예에서 시뮬레이션은 사실상 전기적, 논리적, 프로토콜일 수 있으며, 및/또는 임의의 원하는 방식으로 수행될 수 있다. 예컨대 전기적 시뮬레이션의 경우 많은 핀, 와이어, 신호 등이 시뮬레이트될 수 있다. 논리적 시뮬레이션의 경우 특정 기능이나 거동이 시뮬레이트될 수 있다. 프로토콜의 경우 특정 프로토콜(예컨대 DDR3 등)이 시뮬레이트될 수 있다. 더욱이 프로토콜의 경우에 시뮬레이 션은 서로 다른 프로토콜(예컨대 DDR2와 DDR3) 간의 변환을 초래하거나 동일 프로토콜의 여러 버전들 간의 변환(예컨대 4-4-4 DDR2에서 6-6-6 DDR2로의 변환)을 초래할 수 있다.
한 가지 예시적인 실시예에서 DRAM 장치의 메모리 저장 셀들은 복수의 뱅크(각 뱅크는 복수의 행을 갖고, 각 행은 복수의 열을 가짐)로 배치될 수 있다. DRAM 장치의 메모리 저장 용량은 뱅크 수 곱하기 뱅크당 행 수 곱하기 행당 열 수 곱하기 열당 저장 비트 수와 같을 수 있다. 상용 DRAM 장치(예컨대 SDRAM, DDR, DDR2, DDR3, DDR4, GDDR2, GDDR3 및 GDDR4 SDRAM 등)에서 장치당 뱅크 수, 뱅크당 행 수, 행당 열 수, 및 열 크기는 JEDEC(Joint Electron Device Engineering Council)과 같은 표준을 정하는 위원회(standards-forming committee)에서 결정할 수 있다.
예컨대 JEDEC 표준은 4비트 폭의 데이터 버스를 구비한 1 기가바이트(Gb) DDR2나 DDR3 SDRAM 장치는 장치당 8개의 뱅크, 뱅크당 8192개의 행, 행당 2048개의 열, 그리고 열당 4개의 비트를 가질 것을 요구하고 있다. 유사하게 4비트 폭의 데이터 버스를 구비한 2 Gb 장치는 장치당 8개의 뱅크, 뱅크당 16384개의 행, 행당 2048개의 열, 그리고 열당 4개의 비트를 가져야 한다. 4비트 폭의 데이터 버스를 구비한 4 Gb 장치는 장치당 8개의 뱅크, 뱅크당 32768개의 행, 행당 2048개의 열, 그리고 열당 4개의 비트를 가져야 한다. 1 Gb, 2 Gb 및 4 Gb 장치에서 행 크기는 일정하며, 행 수가 장치 용량이 배가되면 그에 따라서 배가된다. 따라서 2 Gb 또는 4 Gb 장치는, 복수의 1 Gb 및 2 Gb 장치를 이용함으로써, 그리고 행 활성 커맨 드를 행 활성 커맨드로 열 활성 커맨드를 열 활성 커맨드로 직접 변환함으로써 전술한 바와 같이 시뮬레이트될 수 있다. 일 실시예에서 이 에뮬레이션은 1 Gb, 2 Gb 및 4 Gb 장치가 동일한 행 크기를 갖고 있기 때문에 가능한 것이다.
일 실시예에서 인터페이스 회로는 복수의 메모리 회로와 시스템과 통신할 수 있다. 사용 시 인터페이스 회로는 메모리 회로의 커맨드 스케쥴링 제약을 감소시키기 위해 메모리 회로 및 시스템과 인터페이스하도록 동작할 수 있다.
다른 실시예에서 인터페이스 회로는 복수의 메모리 회로와 시스템과 통신할 수 있다. 사용 시 인터페이스 회로는 시스템과 메모리 회로 간에 통신된 커맨드와 연관된 어드레스를 변환하도록 동작할 수 있다.
또 다른 실시예에서 적어도 하나의 메모리 스택은 복수의 DRAM 집적 회로를 포함한다. 더욱이 호스트 시스템에 연결된 버퍼 회로는 DRAM 집적 회로와 호스트 시스템 간에 하나 또는 그 이상의 물리적 파라미터를 변환하기 위하여 메모리 스택을 호스트 시스템에 인터페이스시키는데 이용된다.
또 다른 실시예에서 적어도 하나의 메모리 스택은 복수의 DRAM 집적 회로를 포함한다. 더욱이 호스트 시스템에 연결된 인터페이스 회로는 메모리 스택을 단일의 DRAM 집적 회로로 동작시키기 위하여 메모리 스택을 호스트 시스템에 인터페이스시키는데 이용된다.
이하에서는 사용자의 요구에 따라 전술한 시스템이 구현될 수도 되지 않을 수고 있는 여러 가지 선택적 구조 및 용법에 관한 더 구체적인 정보에 대해 설명한다. 하기의 정보는 예시적으로 기재된 것으로 한정적 의미로 해석해서는 안 된다. 하기의 특성들은 다른 특성들을 제외하거나 제외함이 없이 선택적으로 포함될 수 있다.
도 2는 다른 실시예에 따라서 메모리 회로의 커맨드 스케쥴링 제약을 줄이기 위한 방법(200)을 나타낸 것이다. 옵션으로서 방법(200)은 도 1의 시스템(100)에서 구현될 수 있다. 물론 이 방법(200)은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 하기 설명에 동일하게 적용될 수 있다.
단계(202)에 나타낸 바와 같이 복수의 메모리 회로와 시스템은 인터페이스된다. 일 실시예에서 메모리 회로와 시스템은 인터페이스 회로를 이용하여 인터페이스된다. 인터페이스 회로는 예컨대 도 1을 참조로 전술한 인터페이스 회로를 포함할 수 있다. 또한 일 실시예에서 인터페이싱은 메모리 회로와 시스템 간의 통신을 용이하게 하는 것을 포함할 수 있다. 그러나 물론 메모리 회로와 시스템은 임의의 원하는 방식으로 인터페이스될 수 있다.
더욱이 단계(204)에 나타낸 바와 같이 메모리 회로의 커맨드 스케쥴링 제약이 감소된다. 본 명세서에서 커맨드 스케쥴링 제약은 메모리 회로에 대한 스케쥴링 (및/또는 발행) 커맨드와 연관된 제한을 포함할 수 있다. 선택적으로 커맨드 스케쥴링 제약은 제조업자가 메모리 장치 데이터 시트에 정하거나 JEDEC와 같은 표준 기구가 정할 수 있다.
일 실시예에서 커맨드 스케쥴링 제약은 장치내 커맨드 스케쥴링 제약을 포함할 수 있다. 그와 같은 장치내 커맨드 스케쥴링 제약은 장치 내부의 스케쥴링 제약을 포함할 수 있다. 예컨대 장치내 커맨드 스케쥴링 제약은 열간(column-to- column) 지연 시간(tCCD), 행간(row-to-row) 활성 지연 시간(tRRD), 4뱅크 활성 윈도우 시간(tFAW), 기록-판독간 총처리 시간(write-to-read turn-around time; tWTR) 등을 포함할 수 있다. 옵션으로서 장치내 커맨드 스케쥴링 제약은 장치 내의 자원을 공유하는 장치 요소(예컨대 열, 행, 뱅크 등)와 연관될 수 있다. 그와 같은 장치내 커맨드 스케쥴링 제약의 일례에 대해서는 도 5를 참조로 뒤에 더 자세히 설명한다.
일 실시예에서 커맨드 스케쥴링 제약은 장치간 커맨드 스케쥴링 제약을 포함할 수 있다. 그와 같은 장치간 커맨드 스케쥴링 제약은 장치들(예컨대 메모리 장치들) 사이의 스케쥴링 제약을 포함할 수 있다. 예컨대 장치간 커맨드 스케쥴링 제약은 랭크간 데이터 버스 총처리 시간, 온 다이(on-die) 종료(ODT) 제어 스위칭 시간 등을 포함할 수 있다. 선택적으로 장치간 커맨드 스케쥴링 제약은 장치간에 접속을 제공하는 자원(예컨대 데이터 버스 등)을 공유하는 장치들과 연관될 수 있다. 그와 같은 장치간 커맨드 스케쥴링 제약의 일례에 대해서는 도 6를 참조로 뒤에 더 자세히 설명한다.
더욱이 커맨드 스케쥴링 제약의 감소는 이 제약의 완전한 제거 및/또는 감소를 포함할 수 있다. 더욱이 커맨드 스케쥴링 제약은 메모리 회로에 커맨드를 발행하는 방식을 제어함으로써 감소될 수 있다. 그와 같은 커맨드는 예컨대 행 활성 커맨드, 열 액세스 커맨드 등을 포함할 수 있다. 더욱이 커맨드는 관련된 각자의 버스를 이용하는 메모리 회로에 선택적으로 발행될 수 있다. 각자의 버스와 연관된 메모리 회로의 일례에 대해서는 도 8을 참조로 뒤에 더 자세히 설명한다.
일 실시예에서 커맨드 스케쥴링 제약은 가상 메모리 회로의 시뮬레이션에 기초하여 메모리 회로에 커맨드를 발행함으로써 감소될 수 있다. 예컨대 복수의 메모리 회로(즉 물리 메모리 회로)와 시스템은 메모리 회로가 시스템에 가상 메모리 회로로 보이게끔 인터페이스될 수 있다. 그와 같은 시뮬레이트된 가상 메모리 회로는 선택적으로 도 1을 참조로 전술한 가상 메모리 회로를 포함할 수 있다.
또한 가상 메모리 회로는 물리 메모리 회로보다 커맨드 스케쥴링 제약이 덜 할 수 있다. 일 예시적인 실시예에서 가상 메모리 회로는 커맨드 스케쥴링 제약이 없는 하나 또는 그 이상의 메모리 회로 그룹으로서 보일 수 있다. 따라서 옵션으로서 복수의 서로 다른 물리 메모리 회로가 아닌 하나의 가상 메모리 회로에 커맨드를 발행함으로써 커맨드 스케쥴링 제약이 감소될 수 있다. 이런 식으로 아이들 데이터 버스 사이클이 선택적으로 제거되고, 메모리 시스템 대역폭이 증가될 수 있다.
물론 커맨드 스케쥴링 제약은 임의의 원하는 방식으로 감소될 수 있음을 알아야 한다. 따라서 일 실시예에서 인터페이스 회로는 적어도 부분적으로는 메모리 회로(예컨대 논리 DRAM 장치 등)의 장치내 및/또는 장치간 커맨드 스케쥴링 제약을 제거하는데 이용될 수 있다. 더욱이 메모리 회로의 커맨드 스케쥴링 제약의 감소는 커맨드 발행율을 증가시킬 수 있다. 예컨대 커맨드 스케쥴링 제약과 관련된 제한을 감소시키면 메모리 회로에 더 많은 양의 커맨드가 발행될 수 있다. 커맨드 스케쥴링 제약을 감소시킴으로써 커맨드 발행율을 증가시키는 것에 관한 더 자세한 정보는 도 11을 참조로 설명한다.
도 3은 또 다른 실시예에 따라서 시스템과 메모리 회로 간에 통신된 커맨드와 관련된 어드레스를 변환하기 위한 방법(300)을 나타낸 것이다. 옵션으로서, 방법(300)은 도 1 및/또는 2의 구조와 환경에서 실시될 수 있다. 물론 이 방법(300)은 임의의 원하는 환경에서 실시될 수 있다. 더욱이 전술한 정의들은 하기 설명에 동일하게 적용될 수 있다.
단계(302)에 나타낸 바와 같이 복수의 메모리 회로와 시스템이 인터페이스된다. 일 실시예에서 메모리 회로와 시스템은 예컨대 도 1을 참조로 설명한 것과 같은 인터페이스 회로를 이용하여 인터페이스된다. 일 실시예에서 인터페이싱은 메모리 회로와 시스템 간의 통신을 용이하게 하는 것을 포함할 수 있다. 그러나 물론 메모리 회로와 시스템은 임의의 원하는 방식으로 인터페이스될 수 있다.
또한 단계(304)에 나타낸 바와 같이 시스템과 메모리 회로 간에 통신된 커맨드와 관련된 어드레스는 번역된다(translated). 그와 같은 커맨드는 예컨대 행 활성 커맨드, 열 액세스 커맨드, 및/또는 시스템과 메모리 회로 간에 통신될 수 있는 다른 커맨드를 포함할 수 있다. 옵션으로서 번역은 시스템에 투명(transparent)할 수 있다. 이런 식으로 시스템은 메모리 회로에 커맨드를 발행할 수 있으며, 그와 같은 커맨드는 시스템에 의한 지식 및/또는 입력 없이도 번역될 수 있다.
더욱이 어드레스는 임의의 원하는 방식으로 번역될 수 있다. 그와 같은 번역은 임의의 변환, 수정, 전환 등을 포함할 수 있다. 일 실시예에서 어드레스 번역은 어드레스 시프팅을 포함할 수 있다. 다른 실시예에서 어드레스는 어드레스 맵핑에 의해 번역될 수 있다. 선택적으로, 도 1 및/또는 2를 참조로 전술한 바와 같이 메모리 회로는 물리 메모리 회로를 포함할 수 있으며, 인터페이스 회로는 가상 메모리 회로를 시뮬레이트할 수 있다. 이를 위해 가상 메모리 회로는 선택적으로 물리 메모리 회로와는 다른 (예컨대 더 큰) 수의 관련 행 어드레스를 가질 수 있다.
따라서 다른 실시예에서 번역은 행 어드레스 수의 차이의 함수로서 수행될 수 있다. 또 다른 실시예에서 어드레스는 가상 메모리 회로의 행 어드레스 수를 반영하도록 변역될 수 있다. 또 다른 실시예에서 선택적으로 어드레스는 열 어드레스와 행 어드레스의 함수로서 번역될 수 있다.
따라서 커맨드가 행 액세스 커맨드를 포함하는 일 예시적인 실시예에서, 번역은 열 액세스 커맨드의 예상된 도달 시간의 함수로서 수행될 수 있다. 커맨드가 행 액세스 커맨드를 포함하는 다른 예시적인 실시예에서 번역은 열 액세스 커맨드가 개방 뱅크의 주소를 지정하는 것을 보장할 수 있다. 선택적으로 인터페이스 회로는 시스템과 메모리 회로 간에 통신된 커맨드를 지연시키도록 동작될 수 있다. 이를 위해 번역은 메모리 회로(예컨대 논리 DRAM 장치 등)의 서브 행 활성으로 귀결될 수 있다. 어드레스 번역의 여러 가지 예에 대해서는 도 8 및 도 12를 참조로 뒤에 더 자세히 설명한다.
따라서 일 실시예에서 어드레스 맵핑은 일 커맨드에서 다른 커맨드로의 어드레스 시프팅을 이용하여 더 작은 행을 가진 사용 메모리 회로가 더 큰 행을 가진 더 큰 메모리 회로를 에뮬레이트할 수 있도록 한다. 따라서 서브 행 활성이 제공될 수 있다. 그와 같은 서브 행 활성도 각종 실시예에서 전력 소모를 줄일 수 있 으며 성능을 더 개선할 수 있다.
도 4는 다른 실시예에 따라서 컴퓨터 플랫폼(400)의 논리 성분을 포함하는 블록도이다. 옵션으로서 컴퓨터 플랫폼(400)은 도 1 내지 3의 구조와 환경에서 구현될 수 있다. 물론 이 컴퓨터 플랫폼(400)은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의가 하기 설명에서 동일하게 적용될 수 있다.
도시된 바와 같이 컴퓨터 플랫폼(400)은 시스템(420)을 포함한다. 이 시스템(420)은 메모리 인터페이스(421), 외부 메모리 속성 기대값 검색 및 저장 로직(422), 메모리 상호작용 속성(423), 데이터 처리 엔진(424), 및 사용자 인터페이스(425)를 용이하게 하는 각종 기구를 포함한다. 컴퓨터 플랫폼(400)은 완전히 독립된 요소, 즉 시스템(420)(예컨대 마더보드 등)과 메모리 회로(410)(예컨대 물리 메모리 회로 등)로 구성될 수 있다. 또한 컴퓨터 플랫폼(400)은 선택적으로 하나 또는 그 이상의 소켓을 통해 시스템(420)에 직접 연결된 메모리 회로(410)를 포함할 수 있다.
일 실시예에서 메모리 회로(410)는 예컨대 메모리 회로(410)를 JEDEC 규격 반도체 메모리(예컨대 DRAM, SDRAM, DDR2, DDR3 등)이 되도록 정의하는 표준을 포함하는 각종 표준의 명세에 따라 설계될 수 있다. 그와 같은 표준의 명세는 메모리 회로(410)의 물리적 상호 접속과 논리적 능력을 다룰 수 있다.
다른 실시예에서 시스템(420)은 물리 메모리 회로(410)(예컨대 DIMM)에 문의하여 메모리 속성(422, 423)을 검색하고 저장할 수 있는 시스템 BIOS 프로그램(미도시)을 포함할 수 있다. 더욱이 예컨대 JEDEC 규격 DIMM을 포함하는 각종 외부 메모리 회로(410)는 DIMM의 메모리 속성이 저장된 SPD(serial presence detect)로 알려져 있는 EEPROM 장치를 포함할 수 있다. BIOS와 SPD의 상호 작용과 BIOS와 물리 메모리 회로(410)의 물리적 속성의 상호 작용에 따라서 시스템(420)의 메모리 속성 기대값(422)과 메모리 상호 작용 속성(423)이 시스템(420)에 알려지게 될 수 있게 된다.
각종 실시예에서 컴퓨터 플랫폼(400)은 시스템(420)과 물리 메모리 회로(410) 사이에 전기적으로 배치된 하나 또는 그 이상의 인터페이스 회로(470)를 포함할 수 있다. 인터페이스 회로(470)는 몇 개의 시스템 대면 인터페이스(예컨대 시스템 어드레스 신호 인터페이스(471), 시스템 제어 신호 인터페이스(472), 시스템 클록 신호 인터페이스(473), 시스템 데이터 신호 인터페이스(474) 등)를 포함할 수 있다. 유사하게 인터페이스 회로(470)는 몇 개의 메모리 대면 인터페이스(예컨대 메모리 어드레스 신호 인터페이스(475), 메모리 제어 신호 인터페이스(476), 메모리 클록 신호 인터페이스(477), 메모리 데이터 신호 인터페이스(478) 등)를 포함할 수 있다.
더욱이 인터페이스 회로(470)는 에뮬레이션 로직(480)을 포함할 수 있다. 에뮬레이션 로직(480)은 시스템 대면 인터페이스로부터 또는 이를 통해 전기 신호(예컨대 로직 레벨, 커맨드, 신호, 프로토콜 시퀀스, 통신 등)를 수신하고 선택적으로 저장하도록 동작될 수 있으며, 그와 같은 전기 신호를 처리하도록 더 동작될 수 있다. 에뮬레이션 로직(480)은 시스템(420)에 다시 응답하여 신호를 시스템(420)에 제공함으로써 시스템 대면 인터페이스로부터의 신호에 응답할 수 있으 며, 이전에 저장된 다른 정보를 가지고 신호를 처리할 수도 있다. 다른 옵션으로서 에뮬레이션 로직(480)은 물리 메모리 회로(410)에 신호를 제공할 수 있다. 그러나 물론 에뮬레이션 로직(480)은 임의의 순서로 전술한 기능을 수행할 수 있다.
더욱이 에뮬레이션 로직(480)은 물리 메모리 회로 속성을 정의할 수 있는 특성(personality)을 채택하도록 동작될 수 있다. 각종 실시예에서 이 특성은 인터페이스 회로(470)와 물리 메모리 회로(410) 간의 결합 옵션, 스트랩핑(strapping), 프로그램 가능 스트랩핑, 와이어링(wiring)의 임의의 조합을 통해 달성될 수 있다. 더욱이 특성은 인터페이스 회로(470)와 물리 메모리 회로(410)에 전력이 공급될 때에 결정되는 바와 같이, 인터페이스 회로(470)에 연결된 물리 메모리 회로(410)의 실제 물리적 속성(예컨대 모드 레지스터의 값, 확장 모드 레지스터의 값)을 통해 달성될 수 있다.
도 5는 또 다른 실시예에 따라서 DDR3 SDRAM 메모리 시스템에서 대역폭 이용율의 완전히 이용하는 것을 방해하는 것을 장치내 커맨드 시퀀스, 장치내 타이밍 제약, 및 아이들 사이클을 보여 주는 타이밍도(500)이다. 옵션으로서 타이밍도(500)는 도 1 내지 도 4의 구조와 환경과 연관될 수 있다. 물론 이 타이밍도(500)는 임의의 원하는 환경과 연관될 수 있다. 더욱이 전술한 정의들은 하기의 설명에 동일하게 적용될 수 있다.
도시된 바와 같이, 타이밍도(500)는 메모리의 커맨드 사이클, 타이밍 제약 및 아이들 사이클을 보여 준다. 예컨대 DDR3 SDRAM 메모리 시스템과 관련된 일 실시예에서 하나의 DRAM 장치에 대한 임의의 2개의 행 어드레스 커맨드는 반드시 tRRD보다 더 조밀하게 스케쥴될 필요는 없다. 다른 예로서 최대 4개의 행 액세스 커맨드가 tFAW 내에서 단일 DRAM 장치에 대해 스케쥴될 수 있다. 더욱이 연속한 열-판독 엑세스 커맨드와 연속한 열-기록 액세스 커맨드는 주어진 DRAM 장치에 대해 반드시 DDR3 DRAM 장치에서 4개 사이클(데이터의 8개의 반사이클)과 같은 tCCD보다 더 조밀하게 스케쥴되지 않아도 된다.
본 실시예에서 행 액세스 및/또는 행 활성 커맨드는 ACT로 나타나 있다. 또한 열 액세스 커맨드는 READ와 WRITE로 나타나 있다. 따라서 예컨대 도 2에 나타낸 바와 같이 4개의 반사이클의 데이터 버스트에서 데이터 액세스를 필요로 하는 메모리 시스템에서, tCCD 제약은 열 액세스가 연속적으로 스케쥴되지 못하게 할 수 있다. 더욱이 주어진 DRAM 장치에 보내진 DRAM 커맨드에 부과된 제약(510, 520)은 커맨드율을 제한하여 데이터 버스 상에 아이들 사이클 또는 버블(530)이 생기게 하여 대역폭을 감소시킬 수 있다.
DDR3 SDRAM 메모리 시스템에 관련된 다른 선택적인 실시예에서 동일 데이터 버스 상에서 서로 다른 DRAM 장치에 보내진 연속한 열 액세스 커맨드는 데이터 버스트 지속 기간과 랭크간 데이터 버스 총처리 시간으로 인한 추가적인 아이들 사이클의 합인 어떤 기간보다 반드시 더 조밀하게 스케쥴되지 않아도 된다. 열 읽기 액세스 커맨드의 경우에 동일 데이터 버스 상의 2개의 DRAM 장치는 2개의 버스 마스터를 나타낼 수 있다. 선택적으로 이 버스 상의 적어도 하나의 아이들 사이클은 하나의 버스 마스터가 메모리 컨트롤러로의 데이터 전달을 완수한 뒤에 공유 데이터 버스의 제어를 해제하고, 이에 따라 다른 버스 마스터가 데이터 버스 제어권을 가지고 데이터 전송을 개시할 수 있도록 하는데 필요할 수 있다.
도 6은 또 다른 실시예에 따라서 DDR SDRAM, DDR2 SDRAM 또는 DDR3 SDRAM 메모리 시스템에서 대역폭 이용율을 완전히 이용하는 것을 방해하는 장치간 커맨드 시퀀스, 장치간 타이밍 제약, 및 아이들 사이클을 보여 주는 타이밍도(600)이다. 옵션으로서 타이밍도(600)는 도 1 내지 도 4의 구조 및 환경과 연관될 수 있다. 물론 이 타이밍도(600)는 임의의 원하는 환경과 연관될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
도시된 바와 같이, 타이밍도(600)는 tRRD와 tCCD와 같은 제약이 없는(만일 그러지 않으면 이 제약은 동일 장치에 대한 커맨드 발행에 부과될 수 있음) 서로 다른 장치에 발행된 커맨드를 보여 준다. 그러나 또 도시된 바와 같이 한 장치로부터 다른 장치로의 데이터 버스 이관(hand-off)은 데이터 버스 상에 적어도 하나의 아이들 데이터 버스 사이클(610)을 필요로 한다. 따라서 이 타이밍도(600)는 DDR3 SDRAM 메모리 시스템에서 대역폭 이용율의 전체 이용을 방지하는 제한을 보여 준다. 커맨드 스케쥴링 제약의 결과로서 DDR3 SDRAM 메모리에서의 전체 대역폭 이용을 가능하게 하고 tCCD 보다 짧은 버스트를 이용하는 가용 커맨드 시퀀스는 없다.
도 7은 다른 실시예에 따라서 메모리 컨트롤러에 연결된 DRAM 장치 어레이를 도시한 블록도(700)이다. 옵션으로서 블록도(700)는 도 1 내지 도 6의 구조 및 환경과 연관될 수 있다. 물론 이 블록도(700)는 임의의 원하는 환경과 연관될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
도시된 바와 같이, 8개의 DRAM 장치가 공유 데이터 버스(710)를 통해 메모리 컨트롤러에 바로 연결되어 있다. 따라서 DRAM 장치에 바로 연결된 메모리 컨트롤러로부터의 커맨드는 커맨드 스케쥴링 제약(예컨대 tRRD, tCCD, tFAW, tWTR 등)에 대해 발행될 수 있다. 따라서 커맨드 발행은 그와 같은 커맨드 스케쥴링 제약에 따라서 지연될 수 있다.
도 8은 또 다른 실시예에 따라서 DRAM 장치 어레이와 메모리 컨트롤러 사이에 배치된 인터페이스 회로를 도시한 블록도(800)이다. 옵션으로서 블록도(800)는 도 1 내지 도 6의 구조 및 환경과 연관될 수 있다. 물론 이 블록도(800)는 임의의 원하는 환경과 연관될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
도시된 바와 같이, 인터페이스 회로(810)는 메모리 컨트롤러(820)에 DRAM 인터페이스를 제공하며, 독립적인 DRAM 장치들(830)에 커맨드를 보낸다. 이 메모리 장치(830)는 각각 각자의 데이터 버스(540)와 연관되어 장치간 제약을 방지한다. 또한 개별적이고 독립적인 메모리 장치(830)는 가상 메모리 장치의 요소(예컨대 열, 행, 뱅크 등)을 에뮬레이트하는데 이용될 수 있다. 따라서 장치간 제약도 방지될 수 있다. 이를 위해 인터페이스 회로(510)에 연결된 메모리 장치(830)는 메모리 컨트롤러(820)에게는 커맨드 스케쥴링 제약이 없는 하나 또는 그 이상의 메모리 장치(530) 그룹으로 보일 수 있다.
일 예시적인 실시예에서 N개의 물리 DRAM 장치를 이용하여 인터페이스 회로의 이용을 통해 M개의 논리 DRAM 장치를 에뮬레이트할 수 있다. 인터페이스 회로 는 M개 논리 장치쪽으로 향한 메모리 컨트롤러로부터의 커맨드 스트림을 수용할 수 있다. 또한 인터페이스 회로는 P개의 독립적인 데이터 경로를 통해 인터페이스 회로에 연결된 N개의 물리 장치로의 커맨드를 번역할 수 있다. 커맨드 번역은 예컨대 M개 논리 장치 중 하나쪽으로 향한 올바른 커맨드를 올바른 장치(즉, N개의 물리 장치 중 하나)로 라우팅하는 것을 포함할 수 있다. 총괄하면 N개의 물리 장치에 연결된 P개의 데이터 경로는 선택적으로 인터페이스 회로가 커맨드가 병렬로 독립적으로 실행되어 N개의 물리 장치와 연관된 커맨드 스케쥴링 제약을 방지할 수 있도록 보장할 수 있도록 할 수 있다. 이런 식으로 인터페이스 회로는 장치간 및 장치내 커맨드 스케쥴링 제약으로 인해 나타날 수 있는 아이들 데이터 버스 사이클 또는 버블을 제거할 수 있다.
도 9는 다른 실시예에 따라서 DRAM 장치 어레이와 메모리 컨트롤러 사이에 배치된 DDR3 SDRAM 인터페이스 회로를 도시한 블록도(900)이다. 옵션으로서 블록도(900)는 도 1 내지 8의 구조 및 환경과 연관될 수 있다. 물론 이 블록도(900)는 임의의 원하는 환경과 연관될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
도시된 바와 같이, DDR3 SDRAM 인터페이스 회로(910)는 장치간 및 장치내 스케쥴링 제약으로 인한 아이들 데이터 버스 사이클을 제거한다. 본 실시예에서 DDR3 SDRAM 인터페이스 회로(910)는 복수의 DDR3 SDRAM 장치를 복수의 독립적인 데이터 버스에 연결시키는 인터페이스 회로의 커맨드 번역 회로를 포함할 수 있다. 예컨대 DDR3 SDRAM 인터페이스 회로(910)는 물리 메모리 회로와 시스템 간의 신호 를 차단할 수 있는 커맨드 및 제어 및 어드레스 성분을 포함할 수 있다. 더욱이 커맨드 및 제어 및 어드레스 성분은 도 10을 참조로 후술하는 바와 같이 버스트 병합을 가능하게 할 수 있다.
도 10은 또 다른 실시예에 따라서 복수의 독립적인 데이터 버스를 구비한 복수의 DRAM 장치에 연결된 버스트 병합 인터페이스 회로를 도시한 블록도(1000)이다. 옵션으로서 블록도(1000)는 도 1 내지 도 9의 구조 및 환경과 연관될 수 있다. 물론 이 블록도(1000)는 임의의 원하는 환경과 연관될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
버스트 병합 인터페이스 회로(1010)는 복수의 DRAM 장치(1030)를 복수의 독립적인 데이터 버스(1040)에 연결시키는 인터페이스 회로의 데이터 성분을 포함할 수 있다. 또한 버스트 병합 인터페이스 회로(1010)는 소정 기간 내에 수신된 복수의 버스트 커맨드를 병합할 수 있다. 도시된 바와 같이, 8개의 DRAM 장치(1030)는 8개의 독립적인 데이터 경로를 통해 버스트 병합 인터페이스 회로(1010)에 연결될 수 있다. 더욱이 버스트 병합 인터페이스 회로(1010)는 메모리 컨트롤러(820)로의 단일 데이터 경로를 이용할 수 있다. 여기서는 8개의 DRAM 장치(1030)가 도시되어 있지만 다른 실시예에서는 16, 24, 32개 등의 장치가 8개의 독립적인 데이터 경로에 연결될 수 있음에 유의해야 한다. 또 다른 실시예에서는 DRAM 장치(1030)와 연관된 2, 4, 8, 16개 또는 그 이상의 독립적인 데이터 경로가 있을 수 있다.
버스트 병합 인터페이스 회로(1010)는 메모리 컨트롤러(1020)에 하나의 전기적 인터페이스를 제공하여 장치간 제약(예컨대 랭크간 총처리 시간 등)을 제거할 수 있다. 일 실시예에서 메모리 컨트롤러(1020)는 DRAM 장치(1030)를 버스트 병합 인터페이스 회로(1010)를 통해 간접적으로 제어하고 있고 버스 총처리 시간은 필요없음을 알 수 있다. 다른 실시예에서 버스트 병합 인터페이스 회로(1010)는 DRAM 장치(1030)를 이용하여 M개의 논리 장치를 에뮬레이트할 수 있다. 또한 버스트 병합 인터페이스 회로(1010)는 장치간 제약(예컨대 tRRD, tCCD, tFAW, tWTR 등)이 각 개별적인 DRAM 장치(1030)에 의해 충족되고 버스트 병합 인터페이스 회로(1010)가 그 자신을 장치간 제약이 없는 M개의 논리 장치로서 나타날 수 있도록 보장하기 위하여 DRAM 장치들(1030) 중 하나로의 행 활성 커맨드와 열 액세스 커맨드를 번역할 수 있다.
도 11은 다른 실시예에 따라서 커맨드 시퀀스 내의 복수의 커맨드를 통한 연속적인 데이터 전송을 보여 주는 타이밍도(1100)이다. 옵션으로서 블록도(1100)는 도 1 내지 도 10의 구조 및 환경과 연관될 수 있다. 물론 이 블록도(1100)는 임의의 원하는 환경과 연관될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
도시된 바와 같이, 장치간 및 장치내 제약이 제거되며, 이에 따라 버스트 병합 인터페이스 회로는 데이터 버스 상에서의 연속적인 버스트 데이터 전송을 허용하며 따라서 데이터 대역폭을 증가시킬 수 있다. 예컨대 버스트 병합 인터페이스 회로와 연관된 인터페이스 회로는 산업 표준 DRAM 인터페이스를 커맨드 스케쥴링 제약이 없는 하나 또는 그 이상의 DRAM 장치로서 메모리 컨트롤러에 제공할 수 있다. 더욱이 인터페이스 회로는 DRAM 장치가 DRAM 메모리 시스템의 전기적 인터페 이스 또는 커맨드 세트를 반드시 변경할 필요없는 없이 커맨드 스케쥴링 제약이 없는 것으로 에뮬레이트할 수 있도록 할 수 있다. 여기서 설명된 인터페이스 회로는 임의 형태의 메모리 시스템(예컨대 DDR2, DDR3 등)을 포함할 수 있음에 유의한다.
도 12는 또 다른 실시예에 따라서 복수의 독립적인 데이터 버스를 구비한 복수의 DRAM 장치에 연결된 프로토콜 번역 및 인터페이스 회로를 도시한 블록도(1200)이다. 옵션으로서 블록도(1200)는 도 1 내지 11의 구조 및 환경과 연관될 수 있다. 물론 이 블록도(1200)는 임의의 원하는 환경과 연관될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
도시된 바와 같이, 프로토콜 번역 및 인터페이스 회로(1210)는 프로토콜 번역 및/또는 조작 기능을 수행할 수 있으며 인터페이스 회로로서도 기능할 수 있다. 예컨대 프로토콜 번역 및 인터페이스 회로(1210)는 메모리 컨트롤러를 복수의 메모리 장치에 연결시키는 인터페이스 회로 내에 포함될 수 있다.
일 실시예에서 프로토콜 번역 및 인터페이스 회로(1210)는 행 활성 커맨드 및/또는 열 액세스 커맨드를 지연시킬 수 있다. 또한 프로토콜 번역 및 인터페이스 회로(1210)는 열 액세스 커맨드의 예상 도달 시간에 의존하는 여러 가지 종류의 어드레스 맵핑 방식을 투명하게 수행할 수 있다. 한 가지 방식에서 열 액세스 커맨드는 정규 시간에(즉, 열 액세스 커맨드가 이르게 도달하는 방식과 비해 늦게 도달하는 시간에) 메모리 컨트롤러에 의해 전송될 수 있다.
두 번째 방식에서 열 액세스 커맨드는 행 액세스 커맨드가 DRAM 장치 인터페이스에서 요구되기 전에(즉 조기 도달) 메모리 컨트롤러에 의해 전송될 수 있다. DDR2 및 DDR3 SDRAM 메모리 시스템에서 조기 도달 열 액세스 커맨드는 포스티드(Posted) CAS 커맨드라고 할 수 있다. 따라서 행의 일부가 필요에 따라 활성화되어 서브 행 활성을 제공할 수 있다. 또한 보다 적은 전력도 제공될 수 있다.
전술한 방식의 실시예들은 메모리 컨트롤러에 의해 프로토콜 번역 및 인터페이스 회로로 전송될 추가적인 핀이나 새로운 커맨드를 반드시 필요로 하는 것은 아닐 수 있음에 유의한다. 이런 식으로 고대역폭 DRAM 장치가 제공될 수 있다.
도시된 바와 같이, 프로토콜 번역 및 인터페이스 회로(1210)는 8개의 독립적인 데이터 버스를 통해 연결될 8개의 DRAM 장치를 포함할 수 있다. 예컨대 프로토콜 번역 및 인터페이스 회로(1210)는 8개의 1 Gb DRAM 장치를 가지고 하나의 8 Gb DRAM 장치를 에뮬레이트할 수 있다. 그러므로 메모리 컨트롤러는 8개 뱅크, 뱅크당 32768개 행, 행당 4096개 열, 그리고 열당 4개 비트를 볼 것으로 예상할 수 있다. 메모리 컨트롤러가 행 활성 커맨드를 발행하면, 4096개 열이 후속하는 열 액세스 커맨드에 대비하고 반면에 1 Gb 장치는 단지 행당 2048개 열을 가질 수 있음을 예상할 수 있다. 유사하게 2 Gb 장치를 이용하여 16 Gb DRAM 장치를 에뮬레이트하거나 4 Gb 장치를 이용하여 32 Gb 장치를 에뮬레이트하는 등의 경우에는 서로 다른 행 크기의 동일한 발행이 일어날 수 있다.
1 Gb 와 8 Gb DRAM 장치, 2 Gb 와 16 Gb DRAM 장치, 4 Gb 와 32 Gb DRAM 장치 등의 행 크기 간의 차이를 수용하기 위하여 프로토콜 번역 및 인터페이스 회로(1210)는 적당한 수의 행 활성 커맨드를 산출하여 발행하여 더 큰 행의 일부에 액세스할 수 있는 후속 열 액세스 커맨드에 대비할 수 있다. 프로토콜 번역 및 인 터페이스 회로(1210)는 특정 조건에 따라서는 여러 가지 거동을 가지고 구성될 수 있다.
일 예시적인 실시예에서 메모리 컨트롤러는 열 액세스 커맨드를 조기에 발행하지 않을 수 있다. 프로토콜 번역 및 인터페이스 회로(1210)는 복수의 더 작은 행을 작동시켜 더 높은 용량의 논리 DRAM 장치 내의 더 큰 행의 크기에 정합하도록 할 수 있다.
더욱이 프로토콜 번역 및 인터페이스 회로(1210)는 도시된 바와 같이 메모리 컨트롤러에 단일의 데이터 경로를 제공할 수 있다. 따라서 프로토콜 번역 및 인터페이스 회로(1210)는 그 자신을 단일의 전기적 인터페이스를 가진 단일의 DRAM 장치로서 메모리 컨트롤러에 제공할 수 있다. 예컨대 프로토콜 번역 및 인터페이스 회로(1210)가 8개의 1 Gb DRAM 장치를 이용하여 단일의 표준 8 Gb DRAM 장치를 에뮬레이트한다면, 메모리 컨트롤러는 논리 8 Gb DRAM 장치가 300 ns를 인수하여 리프레시 커맨드를 실행할 것으로 예상할 수 있다. 또한 프로토콜 번역 및 인터페이스 회로(1210)는 리프레시 커맨드를 지능적으로 스케쥴할 수 있다. 따라서 예컨대 프로토콜 번역 및 인터페이스 회로(1210)는 1 Gb DRAM 장치에 들어오는 각각이 100 ns를 취하는 리프레시 커맨드들을 독립적으로 스케쥴할 수 있다.
이를 위해, 프로토콜 번역 및 인터페이스 회로(1210)가 복수의 물리 DRAM 장치를 이용하여 단일의 더 큰 DRAM 장치를 에뮬레이트하는 경우에는 메모리 컨트롤러는 논리 장치가 비교적 긴 기간을 취하여 리프레시 커맨드를 실행할 수 있을 것으로 예상할 수 있다. 프로토콜 번역 및 인터페이스 회로(1210)는 물리 DRAM 장치 각각으로 들어오는 리프레시 커맨드들을 독립적으로 스케쥴할 수 있다. 따라서 더 큰 논리 DRAM 장치의 리프레시는 동일 크기의 물리 DRAM 장치의 리프레시에 비해 상대적으로 더 작은 기간을 취할 수 있다. DDR3 메모리 시스템은 고속 데이터 I/O 회로가 열 편차에 의해 유발되는 타이밍 드리프트(thermal-variances induced timing drifts)에 대해 주기적으로 보정되는 것을 보장하기 위하여 보정 시퀀스를 요구할 수 있다. 시차를 둔(staggered) 리프레시 커맨드도 선택적으로 독립적인 물리 DRAM 장치 각각을 독립적으로 보정하는데 필요한 L/O 휴지 시간(quiet time)을 보증할 수 있다.
따라서 일 실시예에서 프로토콜 번역 및 인터페이스 회로(1210)는 논리 DRAM 장치의 리프레시 시간의 시차 발생을 가능하게 할 수 있다. DDR3 장치는 선택적으로 여러 가지 레벨의 제로 지수(ZQ) 보정 시퀀스를 필요로 할 수 있으며, 이 보정 시퀀스는 보증된 시스템 휴지 시간을 필요로 할 수 있지만 전력 집중적일 수 있으며 시스템 내의 다른 I/O들도 동일 시간에서 스위칭하지 않을 것을 필요로 할 수 있다. 따라서 더 높은 용량의 논리 DRAM 장치에서의 리프레시 커맨드는 여러 개의 더 낮은 용량의 물리 DRAM 장치로 들어오는 리프레시 커맨드들을 시차를 두고 발생시킴으로써 에뮬레이트될 수 있다. 이러한 리프레시 커맨드의 시차 발생은 선택적으로 독립적인 물리 DRAM 장치 각각을 독립적으로 보정하는데 필요할 수 있는 보증된 I/O 휴지 시간을 제공할 수 있다.
도 13은 다른 실시예에 따라서 메모리 컨트롤러가 열 액세스 커맨드를 늦게 발행할 때의 효과를 보여 주는 타이밍도(1300)이다. 옵션으로서 타이밍도(1300)는 도 1 내지 도 12의 구조 및 환경과 연관될 수 있다. 물론 이 타이밍도(1300)는 임의의 원하는 환경과 연관될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
도시된 바와 같이, 메모리 컨트롤러가 DRAM 장치의 행 액세스 레이턴시와 열 액세스 레이턴시 모두를 포함할 정도로 충분한 레이턴시 없이 열 액세스 커맨드를 발생하는 메모리 시스템에서 인터페이스 회로는 후속 열 액세스가 개방 뱅크에 적중(hit)할 것임을 보증하기 위하여 복수의 DRAM 장치에 복수의 행 액세스 커맨드를 전송할 수 있다. 일 예시적인 실시예에서 물리 장치는 1 킬로바이트(kb) 행 크기를 가질 수 있으며, 논리 장치는 2 kb 행 크기를 가질 수 있다. 이 경우 인터페이스 회로는 (2개의 행은 tRRD 기간 내에 동일 장치에서 작동될 수 없기 때문에) 2개의 서로 다른 물리 장치에서 2개의 1 kb 행을 작동시킬 수 있다. 다른 예시적인 실시예에서 물리 장치는 1 kb 행 크기를 가질 수 있으며, 논리 장치는 4 kb 행 크기를 가질 수 있다. 이 경우 4개의 1 kb 행이 개방되어 4 kb 행의 어디라도 목표로 하고 있는 열 액세스 커맨드의 도달에 대비할 수 있다.
일 실시예에서 메모리 컨트롤러는 열 액세스 커맨드를 조기에 발행할 수 있다. 인터페이스 회로는 이것을 예컨대 DDR2 및 DDR3 장치의 부가적인 레이턴시 특성을 이용하는 것을 포함하여 임의의 원하는 방식으로 할 수 있다. 또한 인터페이스 회로는 하나의 특정 DRAM 장치 내의 하나의 특정 행을 작동시킬 수 있다. 이에 따라 더 높은 용량의 논리 DRAM 장치의 서브 행 활성화가 가능하게 될 수 있다.
도 14는 또 다른 실시예에 따라서 메모리 컨트롤러가 열 액세스 커맨드를 조 기에 발행할 때의 효과를 보여 주는 타이밍도(1400)이다. 옵션으로서 타이밍도(1400)는 도 1 내지 도 13의 구조 및 환경과 연관될 수 있다. 물론 이 타이밍도(1400)는 임의의 원하는 환경과 연관될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
본 실시예에서 메모리 컨트롤러는 열 액세스 커맨드를 조기에, 즉 행 활성 커맨드가 DRAM 장치에 발행되기 전에 발행할 수 있다. 따라서 인터페이스 회로는 열 어드레스의 일부를 취하여 이것을 행 어드레스와 조합하여 서브 행 어드레스를 구성할 수 있다. 이를 위해 인터페이스 회로는 열 액세스 커맨드가 목표로 하는 행을 작동시킬 수 있다. 예컨대 물리 장치가 1 kb 행 크기를 가지고 논리 장치가 2 kb 행 크기를 가지고 있다면, 조기 열 액세스 커맨드에 의해 인터페이스 회로는 단일의 1 kb 행을 작동시킬 수 있다. 따라서 인터페이스 회로는 추가적인 핀이나 특수한 커맨드를 반드시 이용할 필요없이 물리 장치보다 행 크기가 더 큰 논리 장치의 서브 행 활성을 구현할 수 있다.
도 15A 내지 15C는 다른 실시예에 따라서 복수의 DRAM 스택을 구비한 DIMM을 도시한 것이다. 옵션으로서 DIMM은 도 1 내지 도 14에서 구현될 수 있다. 물론 이 DIMM은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
도시된 바와 같이, 복수의 DRAM 스택을 구비한 DIMM이 제공되는데, 여기서 각 DRAM 스택은 복수의 DIMM에 걸쳐 비트 슬라이스를 포함한다. 일례로서 도 15A는 4개의 DIMM(예컨대 DIMM A, DIMM B, DIMM C 및 DIMM D)을 보여 준다. 또한 이 예에서는 4개의 DIMM에 걸쳐 DA0, ..., DA6, ..., DA8로 표기된 9개의 비트 슬라이스가 있다. 비트 슬라이스 "6"은 블록(1510)으로 나타낸다. 도 15B는 버퍼링된 DRAM 스택을 보여 준다. 버퍼링된 DRAM 스택(1530)은 버퍼 집적 회로(1520) 및 DRAM 장치들(DA6, DB6, DC6, DD6)을 포함한다. 따라서 비트 슬라이스 6은 장치(DA6, DB6, DC6, DD6)로부터 발생된다. 도 15C는 복수의 버퍼링된 DRAM 스택을 구비한 고밀도 DIMM의 상면도이다. 고밀도 DIMM(1540)은 개별적인 DRAM 대신에 버퍼링된 DRAM 스택(1550)을 포함한다.
몇 가지 예시적인 실시예는 다음을 포함한다.
DIMM 밀도가 증가된 구성. 이 구성에 의해 PCB 면적을 크게 할 필요없이 시스템의 총 메모리 용량을 증가시킬 수 있다. 따라서 고밀도 DIMM이라도 현재 DIMM의 기계적 공간적 제약 내에 맞추어진다.
전력 발산이 분산되는 구성. 이 구성에 의해 고밀도 DIMM이라도 기존의 DIMM의 써멀 엔벨롭(thermal envelope) 내에 맞추어질 수 있다. 단일의 DIMM 상에 복수의 버퍼를 가진 일 실시예에서 버퍼링 기능의 전력 발산은 DIMM에 걸쳐 퍼진다.
시스템 성능을 개선하는 비누적(non-cumulative) 레이턴시를 가진 구성. 비누적 레이턴시를 가진 구성에서는 DIMM 상의 버퍼 집적 회로를 통한 레이턴시는 특정 DIMM에 액세스되고 있을 때에만 발생된다.
버퍼링된 DRAM 스택 실시예에서 스택 내의 복수의 DRAM 장치는 전기적으로 버퍼 집적 회로 뒤에 있다. 즉 버퍼 집적 회로는 전기적으로 스택 내의 복수의 DRAM 장치와 호스트 전자 시스템 사이에 있으며, 적층된 DRAM 장치와 호스트 시스템 사이를 통과하는 신호들의 일부 또는 전부를 버퍼링한다. DRAM 장치는 표준의 기성 고속 장치(DDR SDRAM 또는 DDR2 SDRAM 같은 것)이므로 버퍼 집적 회로는 그 신호(예컨대 클록)의 일부를 재발생해야 할 수 있지만 다른 신호(예컨대 데이터 신호)는 이들 신호의 지터(jitter)를 최소화하기 위해 클록이나 데이터 스트로브에 재동기화되어야 할 수 있다. 다른 신호(예컨대 어드레스 신호)는 디코더와 같은 로직 회로에 의해 조작될 수 있다. 버퍼 집적 회로의 일부 실시예는 DRAM 장치와 호스트 전자 시스템 사이의 신호들의 일부 또는 전부를 재발생, 재동기화 또는 논리적으로 조작하지 않을 수 있다.
버퍼 집적 회로와 DRAM 장치는 물리적으로 여러 가지 방식으로 배치될 수 있다. 일 실시예에서 버퍼 집적 회로와 DRAM 장치는 모두 동일한 스택 내에 있을 수 있다. 다른 실시예에서 버퍼 집적 회로는 DRAM 집적 회로의 스택으로부터 독립될 수 있다(즉, 버퍼 집적 회로는 스택 밖에 있을 수 있다). 또 다른 실시예에서 전기적으로 버퍼 집적 회로 뒤에 있는 DRAM 집적 회로는 복수의 스택 내에 있을 수 있다(즉, 버퍼 집적 회로는 복수의 DRAM 집적 회로 스택과 인터페이스할 수 있다).
일 실시예에서 버퍼 집적 회로는, 전기적으로 버퍼 집적 회로 뒤에 있는 DRAM 장치가 호스트 시스템에게 그 용량이 스택 내의 모든 DRAM 장치의 결합 용량과 같은 단일의 DRAM 집적 회로로 보이게끔 설계될 수 있다. 그래서 예컨대 만일 스택이 8개의 512 Mb DRAM 집적 회로를 포함한다면, 이 실시예의 버퍼 집적 회로는 그 스택이 호스트 시스템에게 단일의 4 Gb DRAM 집적 회로로 보이도록 설계된다. 그러면 개별적인 DRAM 장치 대신에 버퍼링된 DRAM 스택을 이용하여 버퍼링되지 않은 DIMM, 레지스터된 DIMM, SO-DIMM 또는 FB-DIMM이 구축될 수 있다. 예컨대 버퍼링된 DRAM 스택을 이용하는 더블 랭크 레지스터드 DIMM은 18개의 스택을 가질 수 있으며, 그 중 9개는 DIMM PCB의 일 측에 있고 호스트 전자 시스템으로부터의 제1 집적 회로 선택 신호에 의해 제어될 수 있고, 나머지 9개는 DIMM PCB의 타 측에 있고 호스트 전자 시스템으로부터의 제2 집적 회로 선택 신호에 의해 제어될 수 있다. 이들 스택 각각은 복수의 DRAM 장치와 버퍼 집적 회로를 포함할 수 있다.
도 16A는 또 다른 실시예에 따라서 버퍼링된 DRAM 스택을 구비한 DIMM PCB를 도시한 것이다. 옵션으로서 DIMM PCB는 도 1 내지 도 15에서 구현될 수 있다. 물론 이 DIMM PCB는 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
도시된 바와 같이, DIMM PCB의 상부와 하부 모두 복수의 버퍼링된 DRAM 스택(예컨대 도면부호 1610과 1620)을 포함한다. 이 도면에서 레지스터드 DIMM의 레지스터 및 클록 PLL 집적 회로는 단순화를 위해 도시되어 있지 않다.
도 16B는 또 다른 실시예에 따라서 4 기가바이트 DRAM을 에뮬레이트하는 버퍼링된 DRAM 스택을 도시한 것이다. 옵션으로서 버퍼링된 DRAM 스택은 도 1 내지 도 16A에서 구현될 수 있다. 물론 이 버퍼링된 DRAM 스택은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
일 실시예에서 버퍼링된 DRAM 장치 스택은 호스트 시스템에게 단일의 DRAM 장치로 보이거나 이 장치를 에뮬레이트 할 수 있다. 그와 같은 경우에 호스트 시스템에 노출된 메모리 뱅크의 수는 스택 내의 이용가능한 뱅크의 수보다 작을 수 있다. 예시적으로 만일 스택이 8개의 512 Mb DRAM 집적 회로를 포함한다면, 이 실시예의 버퍼 집적 회로는 스택이 호스트 시스템에게 단일의 4Gb DRAM 집적 회로처럼 보이게 할 것이다. 그래서 스택 내에 32개의 뱅크(512 Mb 집적 회로당 4개의 뱅크 * 8개의 집적 회로)가 있더라도 이 실시예의 버퍼 집적 회로는, 4 Gb DRAM이 명목상 8개의 뱅크만을 가질 것이므로 호스트 시스템에게 8개의 뱅크만을 노출시킬 수 있다. 이 실시예에서 8개의 512 Mb DRAM 집적 회로는 물리 DRAM 장치라고 말할 수 있고, 단일의 4 Gb DRAM 집적 회로는 가상 DRAM 장치라고 말할 수 있다. 유사하게 물리 DRAM 장치의 뱅크는 물리 뱅크라고 말할 수 있으며, 가상 DRAM 장치의 뱅크는 가상 뱅크라고 말할 수 있다.
본 발명의 다른 예에서 버퍼 집적 회로는 n개의 DRAM 장치 스택이 호스트 시스템에게 DRAM 장치의 m개 랭크(여기서, n≥m, m≥2)로 보이게끔 설계된다. 예시적으로 만일 스택이 8개의 512Mb DRAM 집적 회로를 포함한다면, 이 실시예의 버퍼 집적 회로는 스택이 2Gb DRAM 장치의 2개 랭크로(m=2인 경우), 1Gb DRAM 장치의 4개 랭크로(m=4인 경우), 또는 512Mb DRAM 장치의 8개 랭크로(m=8인 경우) 보이게 할 수 있다. 결과적으로 8개의 512Mb DRAM 장치의 스택은 16개의 가상 뱅크(m=2, 2Gb 가상 DRAM당 8개의 뱅크 * 8개의 랭크), 또는 32개의 가상 뱅크(m=4, 1Gb DRAM당 8개의 뱅크 * 4개의 랭크), 또는 32개의 랭크(m=8, 512Mb DRAM당 4개의 뱅크 * 8개의 랭크)를 가질 수 있다.
일 실시예에서 랭크 수는 버퍼 집적 회로에 연결된 호스트 시스템으로부터의 집적 회로 선택 신호의 수에 의해 결정될 수 있다. 예컨대 DIMM 커넥터의 가장 널리 사용되는 JEDEC 승인 핀 아웃은 2개의 집적 회로 선택 신호를 갖고 있다. 그래서 이 실시예에서는 각 스택은, 이 2개의 집적 회로 선택 신호를 DIMM 커넥터로부터 DIMM 상의 각 버퍼 집적 회로로 보냄으로써 2개의 DRAM 장치(여기서, 각 집적 회로는 서로 다른 뱅크에 속함)로 보이게 할 수 있다. 예시적으로 DRAM 장치의 각 스택이 전용 버퍼 집적 회로를 갖고 있고, 마더보더 상에 DIMM 커넥터에 연결된 2개의 집적 회로 선택 신호를 CS0#과 CS1#이라고 가정한다. 또 각 스택은 8 비트 폭이고(즉, 8개의 데이터 핀을 갖고 있고), 스택이 버퍼 집적 회로와 8개의 8비트 폭 512Mb DRAM 집적 회로를 포함한다고 가정한다. 이 예에서 CS0#과 CS1#는 모두 DIMM 상의 모든 스택에 연결된다. 그래서 9개의 스택(CS0#과 CS1#은 9개 스택 모두에 연결됨)을 가진 편면 레지스터드 DIMM은 실제로 2개의 2Gb 랭크(여기서, 각 랭크는 8개의 뱅크를 가짐)를 가진다.
다른 실시예에서 각 스택이 4비트 폭이고 버퍼 집적 회로와 8개의 4비트 폭 512 Mb DRAM 장치를 가진 18개의 스택(PCB의 각 면에 각각 9개씩)을 이용하여 양면 레지스터드 DIMM을 구축할 수 있다. 상기와 같이 2개의 집적 회로 선택 신호(CS0#, CS1#)가 모든 스택에 연결된 경우에는 이 DIMM은 실제로 2개의 4Gb 랭크(여기서, 각 랭크는 8개의 뱅크를 가짐)를 가질 것이다. 그러나 랭크 용량의 절반은 DIMM PCB의 일 측에 있고, 나머지 절반은 타 측에 있다. 예컨대 DIMM 상의 스택을 S0 내지 S17이라 하고, 그 중 스택(S0 내지 S8)은 DIMM PCB의 일 측에 있고, 스택(S9 내지 S17)은 PCB의 타 측에 있다고 가정한다. 스택(S0)은 호스트 시스템의 데이터 라인(DQ[3:0])에, 스택(S9)은 호스트 시스템의 데이터 라인(DQ[7:4])에, 스택(S1)은 데이터 라인(DQ[11:8])에, 스택(S10)은 데이터 라인(DQ[15:12])에 등등하여 연결될 수 있다. 스택(S0) 내의 8개의 512Mb DRAM 장치는 S0_M0 내지 SO_M7로 표기될 수 있고, 스택(S9) 내의 8개의 512Mb DRAM 장치는 S9_M0 내지 S9_M7로 표기될 수 있다. 일 예에서 스택(S0)과 연관된 버퍼 집적 회로는 집적 회로(S0_M0 내지 SO_M3)를 이용하여 제1 랭크에 속하는(즉, 집적 회로 선택 신호(CS0#)에 의해 제어되는) 2Gb DRAM 집적 회로를 에뮬레이트할 수 있다. 마찬가지로 스택(S0)과 연관된 버퍼 집적 회로는 집적 회로(S0_M4 내지 SO_M7)를 이용하여 제2 랭크에 속하는(즉, 집적 회로 선택 신호(CS1#)에 의해 제어되는) 2Gb DRAM 집적 회로를 에뮬레이트할 수 있다. 그래서 일반적으로 집적 회로(Sn_M0 내지 Sn_M3)를 이용하여 제1 랭크에 속하는 2Gb DRAM 집적 회로를 에뮬레이트할 수 있고, 집적 회로(Sn_M4 내지 Sn_M7)를 이용하여 제2 랭크에 속하는 2Gb DRAM 집적 회로를 에뮬레이트할 수 있다(여기서, n은 스택 수이다(즉, 0≤n≤17)). 전술한 구성은 단지 예시적인 것임에 유의한다. 다른 구성을 이용하여 청구범위의 본질과 범위를 벗어남이 없이 동일한 결과를 얻을 수 있다. 예컨대 관련 버퍼 집적 회로는 집적 회로(S0_M0, S0_M2, S0_M4, 및 S0_M6)를 그룹화하여 제1 랭크에 속하는 2Gb DRAM 집적 회로를 에뮬레이트할 수 있고, 관련 버퍼 집적 회로는 집적 회로(S0_M1, S0_M3, S0_M5, 및 S0_M7)를 그룹화하여 DIMM의 제2 랭크에 속하는 2Gb DRAM 집적 회로를 에뮬레이트할 수 있다.
도 17A는 다른 실시예에 따라서 버퍼 집적 회로 및 DRAM 스택을 이용하는 DIMM의 예를 도시한 것이다. 옵션으로서 DIMM은 도 1 내지 도 16에서 구현될 수 있다. 물론 이 DIMM은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
단순화를 위해 레지스터드 DIMM의 레지스터 및 클록 PLL 집적 회로는 도시되어 있지 않다. DIMM PCB(1700)는 DIMM PCB(1700)의 하부에 버퍼링된 DRAM 스택(예컨대 S15)을 포함함은 물론 DIMM PCB(1700)의 상부에 버퍼링된 DRAM 스택(예컨대 S5)을 포함한다.
도 17B는 또 다른 실시예에 따라서, 일 실시예에 따른 DRAM의 물리적 스택을 도시한 것이다. 옵션으로서 DRAM의 물리적 스택은 도 1 내지 도 17A에서 구현될 수 있다. 물론 이 DRAM의 물리적 스택은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
예컨대 스택(1720)은 8개의 4비트 폭 512 Mb DRAM 장치와 버퍼 집적 회로(1730)를 포함한다. 도시된 바와 같이, Sn_M0, Sn_M1, Sn_M2, 및 Sn_M3으로 이루어진 제1 장치 그룹은 CS0#에 의해 제어된다. Sn_M4, Sn_M5, Sn_M6, 및 Sn_M7로 이루어진 제2 장치 그룹은 CS1#에 의해 제어된다. 이 8개의 DRAM 장치와 버퍼 집적 회로는 일례로서 하나의 스택에 속하는 것으로 나타나 있음에 유의한다. 다른 구현도 가능하다. 예컨대 버퍼 집적 회로(1730)는 DRAM 장치의 스택 밖에 있을 수 있다. 또한 8개의 DRAM 장치는 복수의 스택 내에 배치될 수 있다.
도 18A 및 18B는 또 다른 실시예에 따라서, 멀티 랭크 버퍼 집적 회로 및 DIMM을 도시한 것이다. 옵션으로서 멀티 랭크 버퍼 집적 회로 및 DIMM은 도 1 내지 도 17에서 구현될 수 있다. 물론 이 멀티 랭크 버퍼 집적 회로 및 DIMM은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
멀티랭크 실시예의 선택적 변형에서 단일의 버퍼 집적 회로는 복수의 DRAM 집적 회로 스택과 연관될 수 있다. 도 18A 및 18B에 예시된 실시예에서 버퍼 집적 회로는 2개의 DRAM 집적 회로 스택에 전용이다. 도 18B는 2개의 스택(DIMM PCB의 각 측에 하나씩)과, DIMM PCB의 일 측에 위치한 하나의 버퍼 집적 회로(B0)를 보여 준다. 그러나 이 구성은 단지 예시적인 것이다. 버퍼 집적 회로와 연관된 스택은 DIMM PCB의 동일 측에 또는 PCB의 양 측에 있을 수 있다.
도 18A 및 18B에 예시된 실시예에서 DRAM 장치의 각 스택은 8개의 512 Mb 집적 회로를 포함하며, 스택들에는 SO 내지 S17의 번호가 부여되며, 각 스택 내에서 집적 회로들은 Sn_M0 내지 Sn_M17(여기서 n은 0 내지 17)로 표기된다. 또한 이 예에서는 버퍼 집적 회로는 8비트 폭이며, 버퍼 집적 회로들에는 B0 내지 B8의 번호가 부여된다. 2개의 집적 회로 선택 신호(CSO#, CS1#)는 데이터 라인(DQ[7:0])처럼 버퍼(B0)에 연결된다. 도시된 바와 같이, 스택(S0 내지 S8)은 주 스택이고, 스택(S9 내지 S17)은 선택 스택이다. 스택(S9)은 DIMM PCB의 타 측에 스택(S0)(및 버퍼(B0))에 바로 마주하여 배치된다. 스택(S9) 내의 집적 회로는 버퍼(B0)에 연결된다. 즉, 스택(S0, S9) 내의 DRAM 장치는 버퍼(B0)에 연결되고, 이 버퍼(B0)는 호스트 시스템에 연결된다. DIMM이 주 스택(S0 내지 S8)만을 포함하는 경우에는 스택(S0) 내의 8개의 DRAM 장치는 버퍼 집적 회로(B0)에 의해 에뮬레이트되어 호스트 시스템에게 2개의 2Gb 장치(이 중 하나는 CS0#에 의해 제어되고, 나머지 하나는 CS1#에 의해 제어됨)로 보여 진다. DIMM이 주 스택(S0 내지 S8)과 선택 스택(S9 내지 S17) 모두를 포함하는 경우에는 스택(S0, S9) 내의 16개의 512 Mb DRAM 장치는 버퍼 집적 회로(B0)에 의해 에뮬레이트되어 호스트 시스템에게 2개의 4Gb DRAM 장치(이 중 하나는 CS0#에 의해 제어되고, 나머지 하나는 CS1#에 의해 제어됨)로 보여 진다.
상기 설명으로부터 이 구조는 메모리 버스 상의 전기적 부하를 랭크 수로부터 분리시킨다는 것이 명백하다. 그래서 저밀도 DIMM은 9개의 스택(S0 내지 S8)과 9개의 버퍼 집적 회로(B0 내지 B8)로 구축될 수 있고, 고밀도 DIMM은 18개의 스택(S0 내지 S17)과 9개의 버퍼 집적 회로(B0 내지 B8)로 구축될 수 있다. 집적 회로 선택 신호(CSO#, CS1#) 모두를 DIMM 상의 각 버퍼 집적 회로에 연결할 필요가 없음을 유의한다. 단일 랭크 저밀도 DIMM은 9개의 스택(S0 내지 S8)과 9개의 버퍼 집적 회로(B0 내지 B8)로 구축될 수 있고, 이 경우 CS0#은 DIMM 상의 각 버퍼 집적 회로에 연결된다. 유사하게 단일 랭크 고밀도 DIMM은 17개의 스택(S0 내지 S17)과 9개의 버퍼 집적 회로로 구축될 수 있고, 이 경우 CS0#은 DIMM 상의 각 버퍼 집적 회로에 연결된다.
멀티랭크 버퍼를 이용하여 멀티랭크 실시예를 구현하는 DIMM은 한정된 수의 DIMM 슬롯을 가진 작은 폼 팩터 시스템에 대한 선택적 특징이다. 예컨대 8개의 집적 회로 선택 신호를 가지고 따라서 랭크를 8개까지 지원하는 프로세서를 생각해 본다. 그와 같은 프로세서는 8개의 랭크를 제공하는 4개의 이중 랭크 DIMM, 8개의 단일 랭크 DIMM 또는 임의의 다른 조합을 지원할 수 있다. 각 랭크가 y개의 뱅크를 갖고 있고, 모든 랭크는 동일하다고 가정하면, 이 프로세서는 소정 시간에 8*y개까지의 메모리 페이지를 개방되게 할 수 있다. 경우에 따라서는 블레이드나 1U 서버와 같은 소형 폼 팩터 서버는 프로세서당 단 2개의 DIMM 슬롯을 위한 물리적 공간을 가질 수 있다. 이것은 그와 같은 소형 폼 팩터 서버에서의 프로세서는 이 프로세서가 8*y개 페이지를 공개할 수 있어도 최대 4*y 메모리 페이지를 공개할 수 있다는 것을 의미한다. 그와 같은 시스템에서 DRAM 장치 스택과 멀티랭크 버퍼 집적 회로를 포함하는 DIMM은, 시스템 내의 DIMM 슬롯의 수가 그 프로세서가 지원할 수 있는 최대 슬롯 수보다 작더라도 8*y개 메모리 페이지 공개를 유지하도록 설계될 수 있다. 이를 달성할 수 있는 한 가지 방법은 호스트 시스템의 집적 회로 선택 신호 모두를 마더보드 상의 모든 DIMM 슬롯에 할당하는 것이다. 예컨대 프로세서가 2개의 전용 DIMM 슬롯만을 갖고 있다면, 4개의 집적 회로 선택 신호가 각 DIMM 커넥터에 연결될 수 있다. 그러나 프로세서가 4개의 전용 DIMM 슬롯을 갖고 있다면, 2개의 집적 회로 선택 신호가 각 DIMM 커넥터에 연결될 수 있다.
버퍼와 DIMM 설계를 예시적으로 보여주기 위하여 버퍼 집적 회로가 호스트 시스템에 액세스할 수 있는 8개까지의 집적 회로 선택 입력을 갖는 것으로 설계된다고 하자. 이들 집적 회로 선택 입력 각각은 호스트 시스템의 집적 회로 선택 신호들의 논리 하이 전압 레벨과 논리 로우 전압 레벨 간에 전압에 대한 약한 풀업(pull-up)을 가질 수 있다. 예컨대 VDDQ와 GND(접지) 간의 전압(VTT) 중간에 풀 업 저항들이 연결될 수 있다. 이들 풀업 저항은 DIMM PCB 상에 있을 수 있다. 마더보드의 설계에 따라서 호스트 시스템으로부터의 2 또는 그 이상의 집적 회로 선택 신호가 DIMM 커넥터에, 따라서 버퍼 집적 회로의 집적 회로 선택 입력에 연결될 수 있다. 전력이 공급되면 버퍼 집적 회로는 그 집적 회로 선택 입력들 중 일부 상에서 유효 로우 또는 하이 논리 레벨을 검출할 수 있고, 나머지 일부 집적 회로 선택 입력 상에서 VTT를 검출할 수 있다. 그러면 버퍼 집적 회로는, 스택 내의 랭크 수가 유효 집적 회로 선택 입력 수와 일치하게끔 스택 내에 DRAM을 구성할 수 있다.
도 19A 및 19B는 다른 실시예에 따라서, 호스트 시스템으로부터의 유효 집적 회로 선택 수와 같은 DIMM 상의 랭크 수를 제공하는 버퍼를 도시한 것이다. 옵션으로서 버퍼는 도 1 내지 도 18에서 구현될 수 있다. 물론 이 버퍼는 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
도 19A는 2개의 DIMM에 연결되는 메모리 컨트롤러를 보여 준다. 호스트 시스템으로부터의 메모리 컨트롤러(1900)는 8개의 집적 회로 선택(CS) 라인(CS0# 내지 CS7#)을 구동한다. 첫 번째 4개 라인(CS0# 내지 CS3#)은 제1 DIMM(1910) 사의 메모리 랭크를 선택하는데 사용되고, 두 번째 4개 라인(CS4# 내지 CS7#)은 제2 DIMM(1920) 사의 메모리 랭크를 선택하는데 사용된다. 도 19B는 DIMM 상에 랭크 수를 구성하는데 이용되는 DIMM 상의 버퍼 및 풀업 회로를 보여 준다. 이 예에서 버퍼(1930)는 8개의 집적 회로 선택 입력(CS0# 내지 CS7#)을 포함한다. DIMM(1910) 상의 풀업 회로는 연결된 집적 회로 선택 라인 상의 전압을 중간 전압값(즉, VDDQ와 GND 사이의 중간인 VTT)으로 끌어 올린다. CS0# 내지 CS3#은 풀업 회로를 통해 버퍼(1930)에 연결된다. CS4# 내지 CS7#은 DIMM(1910)에 연결되지 않는다. 따라서 이 예에서 DIMM(1910)은 CS0# 내지 CS3# 라인에 기초하여 랭크를 구성한다.
전통적인 마더보드 설계는 집적 회로 선택 신호의 서브세트를 각 DIMM 커넥터에 유선으로 연결한다. 예컨대 프로세서당 4개의 DIMM 커넥터가 있다면, 각 DIMM 커넥터에는 2개의 집적 회로 선택 신호가 유선으로 연결될 수 있다. 그러나 4개의 DIMM 커넥터 중 2개만이 사용되는 경우에는, 프로세서가 8*y개의 뱅크를 지원한다 하더라도 4개의 DIMM 커넥터 중 2개만이 DIMM에 사용되기 때문에 4*y개의 메모리 뱅크만이 이용될 수 있다. 다이나믹 메모리 뱅크 이용성을 높이는 한 가지 방법은 호스트 시스템으로부터의 집적 회로 선택 신호 모두가 마더보드 상의 모든 DIMM 커넥터에 연결되는 마더보드를 구성하는 것이다. 전력이 공급되면 호스트 시스템은 시스템 내의 이용되는 DIMM 커넥터 수를 질의하고, 이용되는 커넥터에 집적 회로 선택을 할당한다.
일 실시예에서 버퍼 집적 회로는 특정 집적 회로 선택 신호에 대해서만 응답하도록 각 DIMM 상에서 프로그램될 수 있다. 다시 4개의 전용 DIMM 커넥터를 가진 프로세서에 대한 상기 예를 이용하여 4개의 DIMM 커넥터 중 2개만 이용되는 경우를 생각해 본다. 프로세서는 첫 번째 4개의 집적 회로 선택(예컨대 CS0# 내지 CS3#)을 제1 DIMM 커넥터에 할당하고, 나머지 4개의 집적 회로 선택(예컨대 CS4# 내지 CS7#)을 제2 DIMM 커넥터에 할당하도록 프로그램될 수 있다. 그러면 프로세서는 제1 DIMM 상의 버퍼 집적 회로에게 신호(CS0# 내지 CS3#))에만 응답하고 신호(CS4# 내지 CS7#)은 무시하라고 지시할 수 있다. 또한 프로세서는 제2 DIMM 상의 버퍼 집적 회로에게 신호(CS4# 내지 CS7#))에만 응답하고 신호(CS0# 내지 CS73)은 무시하라고 지시할 수 있다. 나중에 나머지 2개의 DIMM 커넥터가 이용되면 프로세서는 신호(CS0#, CS1#))에만 응답하도록 제1 DIMM 상의 버퍼 집적 회로를 재프로그램하고, 신호(CS2#, CS3#))에만 응답하도록 제2 DIMM 상의 버퍼 집적 회로를 재프로그램하고, 신호(CS4#, CS5#))에 응답하도록 제3 DIMM 상의 버퍼 집적 회로를 프로그램하고, 신호(CS6#, CS7#))에 응답하도록 제4 DIMM 상의 버퍼 집적 회로를 프로그램한다. 이 방식은 이 예의 프로세서가 (각 DIMM이 8개까지의 메모리 랭크를 지원할 능력이 있다고 가정하면) 이용되는 DIMM 커넥터의 수와 상관없이 8*y개 페이지의 개방을 유지할 수 있다는 것을 보장한다. 본질적으로 이 방식에서는 개방 메모리 페이지의 수는 시스템 내의 DIMM 수와 무관하다.
도 19C는 또 다른 실시예에 따라서, 메모리의 논리적 분할과 메모리의 물리적 분할 간의 맵핑을 보여 준다. 옵션으로서 맵핑은 도 1 내지 도 19B에서 구현될 수 있다. 물론 이 맵핑은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
복수의 운영 체제와 소프트웨어 스레드(thread)가 공동의 하드웨어 플랫폼 상에서 동시에 실행될 수 있도록 하는 실시예에서 버퍼 집적 회로는 스택 내의 하나 또는 그 이상의 메모리 장치 세트를 특정 운영 체제나 소프트웨어 스레드에 할 당하고, 다른 메모리 장치 세트를 다른 운영 체제나 소프트웨어 스레드에 할당할 수 있다. 도 19C의 예에서 호스트 시스템(미도시)은 물리적 분할부(1980)에 대응하여 제1 운영 체제가 제1 논리 어드레스 범위(1960)에 할당되고, 물리적 분할부(1990)에 대응하여 나머지 운영 체제 모두가 제2 논리 어드레스 범위(1970)에 할당되도록 동작할 수 있다. 다른 운영 체제나 스레드로부터 제1 운영 체제나 스레드쪽으로의 컨텍스트 스위치 상에서 호스트 시스템은 하나의 DIMM 또는 복수의 DIMM 상의 버퍼에게 컨텍스트 스위치의 특성을 통지할 수 있다. 이것은 예컨대 호스트 시스템이 메모리 버스의 신호 라인 상(즉, 대역내 시그널링)이나 별도의 라인 상(즉, 측대역 시그널링)의 버퍼 집적 회로에 커맨드 또는 제어 신호를 보냄으로써 달성될 수 있다. 측대역 시그널링의 일례는 커맨드를 SMBus를 통해 버퍼 집적 회로에 보내는 것일 수 있다. 그러면 버퍼 집적 회로는 제1 운영 체제 또는 스레드(1980)에 할당된 메모리 집적 회로를 활성 상태에 두고, (현재 실행되지 않는) 다른 운영 체제 또는 스레드(1990)에 할당된 다른 메모리 집적 회로 모두를 저전력 또는 전력 공급 중단 모드에 둘 수 있다. 이와 같은 선택적 방식은 메모리 스택에서의 전력 소산을 감소시킬 뿐만 아니라 디스크에의 액세스를 감소시킨다. 예컨대 호스트 시스템이 운영 체제 또는 스레드의 실행을 임시로 중단하는 경우에, 이 운영 체제 또는 스레드와 연관된 메모리는 저전력 모드에 있게 되나 그 내용은 보존된다. 호스트 시스템이 나중에 다시 그 운영 체제나 스레드를 실행하면, 버퍼 집적 회로는 이 메모리를 저전력 모드에서 활성 상태로 전환시키고, 이 운영 체제나 스레드는 해당 데이터에 대해 디스크에 액세스할 필요없이 실행을 중단했던 곳부터 실행을 재개한다. 즉, 각 운영 체제나 스레드는 다른 운영 체제나 스레드가 액세스할 수 없는 전용의 주메모리를 갖고 있다. 이 실시예는 단일 랭크와 멀티랭크 버퍼 집적 회로 모두에 적용될 수 있음에 유의한다.
사용자가 호스트 시스템의 메모리 용량을 늘리고 싶다면 통상적인 방법은 메모리 모듈을 가진 미사용 DIMM 커넥터를 이용하는 것이다. 그러나 더 이상의 미사용 커넥터가 없다면 통상적으로 사용자는 용량이 작은 메모리 모듈을 제거하고 이를 새로운 더 큰 용량의 메모리 모듈로 교체한다. 제거된 저용량 모듈은 다른 호스트 시스템에 이용할 수도 있지만 통상은 폐기된다. 선택적으로 사용자는 현재 이용되고 않지 않은 모듈을 폐기할 필요없이 미사용 DIMM 커넥터가 없는 시스템의 메모리 용량을 늘일 수 있다.
버퍼 집적 회로를 채용하는 일 실시예에서 커넥터 또는 인터포저가 DIMM 상에서 버퍼 집적 회로와 동일한 DIMM PCB 면 또는 버퍼 집적 회로와 반대되는 DIMM PCB 면 상에 배치된다. 사용자는 더 큰 메모리 용량을 원하다면 커넥터나 인터포저를 이용하여 추가 메모리 스택을 갖고 있는 PCB를 DIMM PCB에 기계적 전기적으로 연결할 수 있다. 예시적으로 멀티랭크 레지스터드 DIMM은 9개의 8비트 폭 스택을 가질 수 있으며, 각 스택은 복수의 DRAM 장치와 멀티랭크 버퍼를 포함한다. 이 예에서 9개의 스택은 DIMM PCB의 일 면에 있을 수 있으며, 하나 또는 그 이상의 커넥터 또는 인터포저는 DIMM PCB의 타 면에 있을 수 있다. 그러면 DIMM PCB 상의 커넥터(들)나 인터포저(들)를 이용하여 DRAM 장치 스택을 갖고 있는 추가적인 PCB를 DIMM PCB에 기계적 전기적으로 연결함으로써 DIMM의 용량이 증가될 수 있다. 이 실시예에서 DIMM PCB 상의 멀티랭크 버퍼 집적 회로는 추가적인 스택의 존재를 검출하여 회로 자신을 추가적인 스택을 채용하는 하나 또는 그 이상의 구성에서 그 추가적인 스택을 이용하도록 구성할 수 있다. 추가적인 PCB 상의 스택은 반드시 DIMM PCB 상의 스택과 동일한 메모리 용량을 가질 필요는 없음에 유의한다. 또한 DIMM PCB 상의 스택이 하나의 집적 회로 선택 신호에 연결될 수 있다면 추가적인 PCB 상의 스택은 다른 집적 회로 선택 신호에 연결될 수 있다. 대안으로서 DIMM PCB 상의 스택과 추가적인 PCB 상의 스택은 동일 세트의 집적 회로 선택 신호에 연결될 수 있다.
도 20A는 또 다른 실시예에 따라서, 메모리 컨트롤러와 DIMM 간의 구성을 도시한 것이다. 옵션으로서 메모리 컨트롤러와 DIMM은 도 1 내지 19에서 구현될 수 있다. 물론 이 메모리 컨트롤러와 DIMM은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
도 20A는 호스트 시스템으로부터의 커맨드에 기초하여 DIMM 내에 랭크 수를 구성하는 메모리 시스템을 보여 준다. 이 실시예에서 모든 집적 회로 선택 라인(예컨대 CS0# 내지 CS7#)은 메모리 컨트롤러(2030)와 DIMM(2010, 2020) 사이에 연결된다.
도 20B는 또 다른 실시예에 따라서, 호스트 시스템으로부터의 커맨드에 기초하여 랭크 수를 구성하기 위하여 집적 회로 선택 라인을 DIMM 상의 버퍼에 결합하는 것을 보여 준다. 옵션으로서 집적 회로 선택 라인을 DIMM 상의 버퍼에 결합하는 것은 도 1 내지 도 20A에서 구현될 수 있다. 물론 이와 같이 집적 회로 선택 라인을 DIMM 상의 버퍼에 결합하는 것은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
도 20B는 호스트 시스템으로부터의 커맨드에 기초하여 DIMM 내에 랭크 수를 구성하는 메모리 시스템을 보여 준다. 이 실시예에서 모든 집적 회로 선택 라인(예컨대 CS0# 내지 CS7#)은 DIMM(2010) 상의 버퍼(2040)에 연결된다.
가상화와 멀티코어 프로세서에 의해서 복수의 운영 체제와 소프트웨어 스레드가 공통의 하드웨어 플랫폼에서 동시에 실행될 수 있다. 이것은 복수의 운영 체제와 스레드가 서버에서 메모리를 공유해야 하고 이에 따라 컨텍스트 스위치에 의해 하드 디스크와 메모리 간의 전송 능력이 증가될 수 있다는 것을 의미한다.
도 21은 또 다른 실시예에 따라서, 업그레이드 능력을 가진 커넥터 또는 인터포저를 구비한 DIMM PCB를 도시한 것이다. 옵션으로서 DIMM PCB는 도 1 내지 도 20에서 구현될 수 있다. 물론 이 DIMM PCB는 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
DIMM PCB(2100)는 버퍼링된 스택(2130)과 같은 복수의 버퍼링된 스택을 포함한다. 도시된 바와 같이, 버퍼링된 스택(2130)은 버퍼 집적 회로(2140)와 DRAM 장치(2150)를 포함한다. 커넥터 또는 인터포저(2180, 2170)를 통해 DIMM PCB(2100)에 연결되는 업그레이드 모듈 PCB(2110)는 DRAM 스택(2120)과 같은 DRAM 스택을 포함한다. 이 예에서 그리고 도 21에 도시된 바와 같이 업그레이드 모듈 PCB(2110)는 9개의 8비트 폭 스택을 포함하며, 각 스택은 DRAM 집적 회로(2160)만을 포함한다. DIMM PCB(2100) 상의 각 멀티뱅크 버퍼 집적 회로(2140)는 추가적인 스택을 검출하면 그 자신이 전기적으로 호스트 시스템과 DRAM 집적 회로의 2개 스택 사이에 있도록 그 자신을 재구성한다. 즉, 버퍼 집적 회로는 전기적으로 호스트 시스템과, 업그레이드 모듈 PCB(2110) 상의 대응 스택은 물론 DIMM PCB(2100) 상의 스택 사이에 있게 된다. 그러나 버퍼 집적 회로(2140), DRAM 스택(2120), DIMM PCB(2100) 및 업그레이드 모듈 PCB(2110)의 다른 실시예는 특허 청구범위의 본질과 범위를 벗어남이 없이 동일한 결과를 달성하는데 여러 가지 방식으로 구성될 수 있음에 유의한다. 예컨대 추가적인 PCB 상의 스택(2120)도 버퍼 집적 회로를 포함할 수 있다. 그래서 이 실시예에서 업그레이드 모듈 PCB(2110)는 하나 또는 그 이상의 버퍼 집적 회로를 포함할 수 있다.
버퍼 집적 회로는 어드레스를 몇 가지 방식으로 호스트 시스템으로부터 스택 내의 DRAM 장치로 맵핑할 수 있다. 일 실시예에서 어드레스는, 가상 (또는 에뮬레이트된) DRAM의 뱅크가 물리 뱅크 세트(여기서 각 물리 뱅크는 서로 다른 물리 DRAM 장치의 요소임)에 맵핑되도록 선형적으로 맵핑될 수 있다. 예시적으로 각각이 4개의 메모리 뱅크를 가진 8개의 512 Mb DRAM 집적 회로(즉, 물리 DRAM 장치)를 포함하는 스택을 생각해 본다. 또한 버퍼 집적 회로가 호스트 시스템이 각각이 8개의 뱅크를 가진 2개의 2Gb DRAM 장치(즉, 가상 DRAM 장치)를 보도록 멀티랭크 실시예라고 가정한다. 물리 DRAM 장치를 M0 내지 M7로 표기하면, 선형 어드레스 맵은 아래의 표 1에 나타낸 바와 같이 구현될 수 있다.
표 1
호스트 시스템 어드레스(가상 뱅크) DRAM 장치(물리 뱅크)
랭크 0, 뱅크 [0] {(M4, 뱅크 [0]), (M0, 뱅크 [0])}
랭크 0, 뱅크 [1] {(M4, 뱅크 [1]), (M0, 뱅크 [1])}
랭크 0, 뱅크 [2] {(M4, 뱅크 [2]), (M0, 뱅크 [2])}
랭크 0, 뱅크 [3] {(M4, 뱅크 [3]), (M0, 뱅크 [3])}
랭크 0, 뱅크 [4] {(M6, 뱅크 [0]), (M2, 뱅크 [0])}
랭크 0, 뱅크 [5] {(M6, 뱅크 [1]), (M2, 뱅크 [1])}
랭크 0, 뱅크 [6] {(M6, 뱅크 [2]), (M2, 뱅크 [2])}
랭크 0, 뱅크 [7] {(M6, 뱅크 [3]), (M2, 뱅크 [3])}
랭크 1, 뱅크 [0] {(M5, 뱅크 [0]), (M1, 뱅크 [0])}
랭크 1, 뱅크 [1] {(M5, 뱅크 [1]), (M1, 뱅크 [1])}
랭크 1, 뱅크 [2] {(M5, 뱅크 [2]), (M1, 뱅크 [2])}
랭크 1, 뱅크 [3] {(M5, 뱅크 [3]), (M1, 뱅크 [3])}
랭크 1, 뱅크 [4] {(M7, 뱅크 [0]), (M3, 뱅크 [0])}
랭크 1, 뱅크 [5] {(M7, 뱅크 [1]), (M3, 뱅크 [1])}
랭크 1, 뱅크 [6] {(M7, 뱅크 [2]), (M3, 뱅크 [2])}
랭크 1, 뱅크 [7] {(M7, 뱅크 [3]), (M3, 뱅크 [3])}
도 22는 또 다른 실시예에 따라서, 멀티 랭크 버퍼 집적 회로를 이용한 선형 어드레스 맵핑의 예를 보여 준다. 옵션으로서 선형 어드레스 맵핑은 도 1 내지 도 21에서 구현될 수 있다. 물론 이 선형 어드레스 맵핑은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있 다.
단일 랭크 버퍼 집적 회로를 이용한 선형 어드레스 맵핑의 일례는 아래의 표 2에 나타낸다.
표 2
(가상 뱅크) (물리 뱅크)
랭크 0, 뱅크 [0] {(M6, 뱅크 [0]),(M4, 뱅크 [0]),(M2, 뱅크 [0]),
(M0, 뱅크 [0])}
랭크 0, 뱅크 [1] {(M6, 뱅크 [1]),(M4, 뱅크 [1]),(M2, 뱅크 [1]),
(M0, 뱅크 [1])}
랭크 0, 뱅크 [2] {(M6, 뱅크 [2]),(M4, 뱅크 [2]),(M2, 뱅크 [2]),
(M0, 뱅크 [2])}
랭크 0, 뱅크 [3] {(M6, 뱅크 [3]),(M4, 뱅크 [3]),(M2, 뱅크 [3]),
(M0, 뱅크 [3)}
랭크 0, 뱅크 [4] {(M7, 뱅크 [0]),(M5, 뱅크 [0]),(M3, 뱅크 [0]),
(M1, 뱅크 [0])}
랭크 0, 뱅크 [5] {(M7, 뱅크 [1]),(M5, 뱅크 [1]),(M3, 뱅크 [1]),
(M1, 뱅크 [1])}
랭크 0, 뱅크 [6] {(M7, 뱅크 [2]),(M5, 뱅크 [2]),(M3, 뱅크 [2]),
(M1, 뱅크 [2])}
랭크 0, 뱅크 [7] {(M7, 뱅크 [3]),(M5, 뱅크 [3]),(M3, 뱅크 [3]),
(M1, 뱅크 [3])}
도 23은 다른 실시예에 따라서, 싱글 랭크 버퍼 집적 회로를 이용한 선형 어드레스 맵핑의 예를 보여 주는 도이다. 옵션으로서 선형 어드레스 맵핑은 도 1 내지 도 22에서 구현될 수 있다. 물론 이 선형 어드레스 맵핑은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
나타낸 구성을 이용하면 DRAM 장치 스택은 8개의 메모리 뱅크를 가진 단일의 4Gb 집적 회로로 보인다.
도 24는 또 다른 실시예에 따라서, 멀티 랭크 버퍼 집적 회로를 이용한 "비트 슬라이스" 어드레스 맵핑의 예를 보여 준다. 옵션으로서 "비트 슬라이스" 어드레스 맵핑은 도 1 내지 도 23에서 구현될 수 있다. 물론 이 "비트 슬라이스" 어드레스 맵핑은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
다른 실시예에서 호스트 시스템으로부터의 어드레스는, 호스트 시스템 어드레스의 하나 또는 그 이상의 뱅크(즉, 가상 뱅크)가 스택 내의 단일의 물리 DRAM 집적 회로에 맵핑("뱅크 슬라이스" 맵핑)되도록 버퍼 집적 회로에 의해 맵핑될 수 있다. 도 24는 멀티랭크 버퍼 집적 회로를 이용한 뱅크 슬라이스 어드레스 맵핑의 일례를 보여 준다. 또한 뱅크 슬라이스 맵핑의 일례는 아래의 표 3에 나타낸다.
표 3
호스트 시스템 어드레스(가상 뱅크) DRAM 장치(물리 뱅크)
랭크 0, 뱅크 [0] M0, 뱅크 [1:0]
랭크 0, 뱅크 [1] M0, 뱅크 [3:2]
랭크 0, 뱅크 [2] M2, 뱅크 [1:0]
랭크 0, 뱅크 [3] M2, 뱅크 [3:2]
랭크 0, 뱅크 [4] M4, 뱅크 [1:0]
랭크 0, 뱅크 [5] M4, 뱅크 [3:2]
랭크 0, 뱅크 [6] M6, 뱅크 [1:0]
랭크 0, 뱅크 [7] M6, 뱅크 [3:2]
랭크 1, 뱅크 [0] M1, 뱅크 [1:0]
랭크 1, 뱅크 [1] M1, 뱅크 [3:2]
랭크 1, 뱅크 [2] M3, 뱅크 [1:0]
랭크 1, 뱅크 [3] M3, 뱅크 [3:2]
랭크 1, 뱅크 [4] M5, 뱅크 [1:0]
랭크 1, 뱅크 [5] M5, 뱅크 [3:2]
랭크 1, 뱅크 [6] M7, 뱅크 [1:0]
랭크 1, 뱅크 [7] M7, 뱅크 [3:2]
이 예의 스택은 각각이 4개의 메모리 뱅크를 가진 8개의 512Mb DRAM 집적 회로를 포함한다. 이 예에서 멀티랭크 버퍼 집적 회로가 가정되는데, 이는 호스트 시스템이 각각 8개의 뱅크를 가진 2개의 2Gb DRAM 장치를 본다는 것을 의미한다.
뱅크 슬라이스 어드레스 맵핑에 의해 가상 DRAM은 기초가 되는 물리 DRAM 장치에 내재한 타이밍 제약을 줄이거나 제거할 수 있다. 예컨대 물리 DRAM 장치는 물리 DRAM 장치의 활성 동작의 회수를 제한하는 tFAW(4 뱅크 활성 윈도우) 제약이 있을 수 있다. 그러나 뱅크 슬라이스 어드레스 맵핑을 이용하는 가상 DRAM 회로는 이러한 제약이 없다. 일례로서 도 24의 어드레스 맵핑은 가상 DRAM 장치의 2개 뱅크를 단일의 물리 DRAM 장치에 맵핑한다. 그래서 tRC 타이밍 파라미터가 tRC 윈도우(그리고 tRC>tFAW) 내에서 호스트 시스템이 2개 이상의 연속한 활성 커맨드를 소정의 물리 DRAM 장치에 발행하지 못하도록 하기 때문에 tFAW 제약이 없어진다. 유사하게 도 25를 참조로 후술하는 바와 같이, 어드레스 맵핑을 이용하는 가상 DRAM 장치는 기초가 되는 물리 DRAM 장치의 tRRD 제약을 없앤다.
도 25는 또 다른 실시예에 따라서, 싱글 랭크 버퍼 집적 회로를 이용한 "비트 슬라이스" 어드레스 맵핑의 예를 보여 준다. 옵션으로서 "비트 슬라이스" 어드레스 맵핑은 도 1 내지 도 24에서 구현될 수 있다. 물론 이 "비트 슬라이스" 어드레스 맵핑은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
단일 랭크 버퍼 집적 회로를 이용한 뱅크 슬라이스 맵핑은 아래의 표 3에 나타낸다.
표 3
호스트 시스템 어드레스(가상 뱅크) DRAM 장치(물리 뱅크)
랭크 0, 뱅크 [0] M0
랭크 0, 뱅크 [1] M1
랭크 0, 뱅크 [2] M2
랭크 0, 뱅크 [3] M3
랭크 0, 뱅크 [3] M4
랭크 0, 뱅크 [5] M5
랭크 0, 뱅크 [6] M6
랭크 0, 뱅크 [7] M7
이 예의 스택은 호스트 시스템이 8개의 뱅크를 가진 단일의 4Gb 장치를 보도록 8개의 512Mb DRAM 장치를 포함한다. 상기 어드레스 맵핑은 단지 예시적인 것이다. 특허 청구범위의 본질과 범위를 벗어남이 없이 다른 맵핑도 구현될 수 있다.
또한 뱅크 슬라이스 어드레스 방식에 따라서 버퍼 집적 회로 또는 호스트 시스템은 DIMM 상의 DRAM 장치의 전력을 더 미세하게 관리할 수 있다. 이것을 예시적으로 설명하기 위하여 도 25에 도시된 어드레스 맵핑을 이용하는 가상 DRAM 장치(여기서 각 뱅크는 단일 물리 DRAM 장치에 대응함)를 생각해 본다. 그러면 가상 DRAM 장치의 뱅크 0(즉, 가상 뱅크 0)에 액세스하면 대응하는 물리 DRAM 장치(M0)는 활성 모드에 있을 수 있다. 그러나 가상 뱅크 0에의 액세스가 없으면 버퍼 집적 회로 또는 호스트 시스템(또는 이 시스템 내의 임의의 다른 실체)는 DRAM 장 치(M0)를 저전력(예컨대 전력 공급 중단) 모드에 둘 수 있다. 물리 DRAM 장치를 저전력 모드에 두는 것이 가능하지만, 물리 DRAM 장치의 한 뱅크(또는 부분)를 저전력 모드에 두고 물리 DRAM 장치의 나머지 뱅크(또는 부분)이 활성 모드에 있는 있게 하는 것은 가능하지 않다. 그러나 복수의 물리 DRAM 장치를 이용하여 가상 DRAM 장치를 에뮬레이트하기 때문에 가상 DRAM 회로의 뱅크 또는 뱅크 세트를 저전력 모드에 두고 가상 DRAM 회로의 다른 뱅크를 활성 모드에 있게 할 수 있다. 예컨대 도 25와 도 23으로부터 선형 맵핑(도 23)보다 뱅크 슬라이스 맵핑(도 25)을 이용하면 보다 적은 수의 가상 뱅크가 물리 DRAM 장치에 맵핑됨을 알 수 있다. 따라서 물리 DRAM 장치 내의 모든 (물리) 뱅크가 소정 시간에 에비 충전 상태에 있을 가능성은 선형 맵핑보다 뱅크 슬라이스 맵핑의 경우에 더 높다. 그러므로 버퍼 집적 회로 또는 호스트 시스템(또는 이 시스템 내의 다른 실체)는 뱅크 슬라이스 맵핑이 이용될 때에 여러 가지 물리 DRAM 장치를 저전력 모드에 둘 기회가 더 많다.
몇몇 마킷 세그먼트(market segment)에서는 주기적으로 또는 특정 이벤트 발생시에 주메모리(통상적으로 DRAM)의 내용을 보존하는 것이 바람직할 수 있다. 예컨대 수퍼컴퓨터 마킷에서는 호스트 컴퓨터가 주메모리의 내용을 하드 드라이브에 주기적으로 기록하는 것이 보통이다. 즉 호스트 시스템은 주기적인 체크포인트를 생성한다. 이 체크포인팅 방법에 의해서 시스템은 시스템 충돌 발생시에 처음부터가 아니라 마지막 체크포인트부터 프로그램 실행을 재개할 수 있다. 다른 마킷에서는 하나 또는 그 이상의 어드레스 범위의 내용을 비휘발성 메모리에 저장하여 전원 고장 또는 시스템 충돌에 대해 이 내용을 보호하는 것이 바람직할 수 있다. 이 러한 모든 특성은 하나 또는 그 이상의 비휘발성 메모리 집적 회로(예컨대 플래시 메모리)를 스택으로 집적함으로써 여기에 개시된 버퍼 집적 회로에 선택적으로 구현될 수 있다. 일부 실시예에서 버퍼 집적 회로는 DRAM 장치와 비휘발성 메모리 집적 회로를 포함하는 하나 또는 그 이상의 스택과 인터페이스하도록 설계된다. 이들 스택 각각은 DRAM 장치만을, 또는 비휘발성 메모리 집적 회로만을, 또는 DRAM 장치와 비휘발성 메모리 집적 회로 모두를 포함할 수 있음에 유의한다.
도 26A 및 26B는 다른 실시예에 따라서, DRAM 및 비휘발성 메모리 집적 회로를 포함하는 버퍼링된 스택의 예들을 보여 준다. 옵션으로서 버퍼링된 스택은 도 1 내지 도 25에서 구현될 수 있다. 물론 이 버퍼링된 스택은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
DIMM PCB(2600)은 버퍼링된 스택(버퍼(2610) 및 DRAM(2620)) 및 플래시(2630)를 포함한다. 도 26B에 도시된 다른 실시예에서 DIMM PCB(2640)은 버퍼링된 스택(버퍼(2650), DRAM(2660) 및 플래시(2670)을 포함한다. 선택적인 미버퍼링된 스택은 적어도 하나의 비휘발성 메모리 장치(예컨대 플래시(2690)) 또는 DRAM 장치(2680)를 포함한다. 버퍼 집적 회로에 연결되는 모든 스택이 버퍼 집적 회로와 동일한 PCB 상에 있을 수 있고, 또는 일부 스택은 동일 PCB 상에 있고, 나머지 스택은 커넥터 또는 인터포저에 의해 그 버퍼 집적 회로를 포함하는 PCB에 전기적 기계적으로 연결된 다른 PCB 상에 있을 수 있다.
일부 실시예에서 버퍼 집적 회로는 이와 인터페이스하는 스택 내의 DRAM 장 치의 내용의 일부 또는 전부를 그 스택 내의 비휘발성 메모리 집적 회로에 카피한다. 이 이벤트는 예컨대 호스트 시스템으로부터 버퍼 집적 회로로의 커맨드 또는 신호에 의해, 또는 버퍼 집적 회로로 들어오는 외부 신호에 의해, 또는 전원 고장과 같은 이벤트 또는 파국적 상황의 (버퍼 집적 회로에 의한) 검출 시에 트리거될 수 있다. 일례로서 버퍼 집적 회로가 4Gb DRAM 메모리와 4Gb 비휘발성 메모리를 포함하는 복수의 스택과 인터페이스한다고 가정한다. 호스트 시스템은 DRAM 메모리의 내용을 비휘발성 메모리에 카피하라는 커맨드를 버퍼 집적 회로에 주기적으로 발행할 수 있다. 즉, 호스트 시스템은 DRAM 메모리의 내용을 주기적으로 체크포인트할 수 있다. 시스템 충돌이 발생하면 비휘발성 메모리의 내용을 다시 DRAM 메모리에 카피하여 재부팅하면 DRAM의 내용이 복원될 수 있다. 이것은 호스트 시스템에 메모리를 주기적으로 체크포인트할 수 있는 능력을 제공한다.
다른 실시예에서 버퍼 집적 회로는 전력 공급 레일(즉 전압 레일 또는 전압 플래인)을 모니터하여, 파국적 이벤트, 예컨대 전원 공급 고장을 검출할 수 있다. 이 이벤트를 검출하면 버퍼 집적 회로는 DRAM 메모리 내용의 일부 또는 전부를 비휘발성 메모리에 카피할 수 있다. 또한 호스트 시스템은 전원 공급 고장 후 적어도 일정 기간 동안 버퍼 집적 회로와 메모리 스택에 무차단(non-interruptible) 전원을 공급하여, 버퍼 집적 회로가 DRAM 메모리 내용의 일부 또는 전부를 비휘발성 메모리에 카피할 수 있도록 한다. 다른 실시예에서 메모리 모듈은 호스트 시스템 전원 공급 고장의 경우에 대비한 버퍼 집적 회로와 메모리 스택용 내장형 백업 전원을 구비할 수 있다. 예컨대 메모리 모듈은 모듈 그 자체 상에 배터리나 고용량 커패시터와 절연 스위치를 구비하여 호스트 시스템 전원 공급 고장의 경우에 버퍼 집적 회로와 메모리 스택에 백업 전력을 공급할 수 있다.
전술한 바와 같이 각각이 DRAM과 비휘발성 메모리 집적 회로를 포함하는 하나 또는 그 이상의 스택과 인터페이스하는 복수의 버퍼를 가진 메모리 모듈은 인스턴트 온(instant-on) 능력을 제공하도록 구성될 수도 있다. 이것은 운영 체제, 다른 핵심 소프트웨어 그리고 빈번히 사용되는 데이터를 비휘발성 메모리에 저장함으로써 달성될 수 있다.
시스템 충돌이 발생하면 호스트 시스템의 메모리 컨트롤러는 주메모리의 내용을 유지하는데 필요한 모든 신호를 공급하는 것은 아니다. 예컨대 메모리 컨트롤러는 주기적인 리프레시 커맨드를 주메모리에 보내지 못해 메모리 내의 데이터가 손실될 수가 있다. 버퍼 집적 회로는 시스템 충돌 시에 그와 같은 데이터 손실을 방지하도록 설계될 수 있다. 일 실시예에서 버퍼 집적 회로는 호스트 시스템의 메모리 컨트롤러로부터의 신호의 상태를 모니터하여 시스템 충돌을 검출할 수 있다. 일례로서 버퍼 집적 회로는 미리 정해진 또는 프로그램가능한 기간 동안 메모리 버스에 어떠한 활동이 없는 경우에 또는 버퍼 집적 회로가 메모리 컨트롤러로부터 금지된 또는 무효의 커맨드를 수신하는 경우에 시스템 충돌을 검출하도록 설계될 수 있다. 대안으로서 버퍼 집적 회로는 시스템 에러, 시스템 정지 또는 시스템 충돌이 발생할 때에 발행되는 하나 또는 그 이상의 신호를 모니터할 수 있다. 예컨대 버퍼 집적 회로는 옵테론(Opteron) 프로세서 탑재 시스템에서 HT - SyncFlood 신호를 모니터하여 시스템 에러를 검출할 수 있다. 버퍼 집적 회로가 이 이벤트를 검출하 면 이 회로는 호스트 시스템의 메모리 버스를 스택 내의 메모리 집적 회로와 분리시키고, 호스트 시스템이 동작할 때까지 메모리 집적 회로의 내용을 보존하는데 필요한 신호를 내부적으로 발생할 수 있다. 그래서 예컨대 시스템 충돌을 검출하면, 버퍼 집적 회로는 호스트 시스템의 메모리 컨트롤러로부터의 신호를 무시하고, 대신에 스택 내의 DRAM 장치에 저장된 데이터를 유지하기 위하여 CKE, CS#, RAS#, CAS# 및 WE#과 같은 신호의 조합을 발생시키고, 또 DRAM 집적 회로를 위한 주기적 리프레시 신호를 발생할 수 있다. 버퍼 집적 회로가 시스템 충돌을 검출하는 방법은 많이 있으며, 이러한 변형들도 모두 특허 청구범위의 범위에 속함은 물론이다.
하나 또는 그 이상의 메모리 집적 회로 스택과 호스트 시스템 사이에 버퍼 집적 회로를 배치하면 이 버퍼 집적 회로는 호스트 시스템에서 메모리 집적 회로로 들어오는 신호와 메모리 집적 회로에서 호스트 시스템으로 들어오는 신호의 스큐(skew)나 타이밍 변동을 보상할 수 있다. 예컨대 메모리 버스의 고속 동작 시에 호스트 시스템의 메모리 컨트롤러와 메모리 집적 회로 간의 신호의 트레이스 길이는 대개 정합된다. 트레이스 길이 정합은 특히 소형 폼 팩터 시스템에서 어려운 문제이다. 또한 DRAM 프로세스는 고속 I/O 회로 설계에 잘 맞지 않는다. 결과적으로 DRAM 집적 회로의 I/O 신호들을 서로 맞추고 또 관련 데이터 스트로브와 클록 신호와 맞추기가 대개 어렵다.
버퍼 집적 회로의 일 실시예에서 I/O 신호의 타이밍을 조정하는 회로가 포함될 수 있다. 즉, 버퍼 집적 회로는 I/O 신호의 스큐나 타이밍 변동을 보상하기 위하여 핀마다 타이밍 보정(per-pin timing calibration)을 실시할 수 있는 능력을 가질 수 있다. 예컨대 버퍼 집적 회로와 메모리 컨트롤러 간의 DQ[0] 데이터 신호가 짧은 트레이스 길이, 즉 다른 데이터 신호(DQ[7:1])보다 작은 용량성 부하를 갖고 있다고 하자. 이 경우 모든 신호가 (메모리 쓰기 중에) 버퍼 집적 회로에 또는 (메모리 읽기 중에) 메모리 컨트롤러에 동시에 도달하는 것은 아니기 때문에 데이터 신호에 스큐가 발생한다. 그와 같은 스큐는 보상되지 않으면 호스트 시스템의 메모리 서브 시스템의 최대 동작 주파수를 제한할 수 있다. 핀마다 타이밍 보정 및 보상 회로를 버퍼 집적 회로의 I/O 회로에 포함시킴으로써 DQ[0] 신호는 (메모리 읽기 중에) 버퍼 집적 회로에 의해 다른 데이터 신호보다 늦게 구동되어 DQ[0] 신호의 짧은 트레이스 길이를 보상할 수 있다. 유사하게 핀마다 타이밍 보정 및 보상 회로에 의해서도 버퍼 집적 회로는 모든 데이터 신호(DQ[7:0])가 메모리 쓰기 동작 중에 샘플링을 위해 정렬되도록 DQ[0] 데이터 신호를 지연시킬 수 있다. 또 핀 마다 타이밍 보정 및 보상 회로에 의해서 버퍼 집적 회로는 DRAM 장치의 I/O 핀의 타이밍 변동을 보상할 수 있다. 버퍼 집적 회로는 특정 패턴이나 시퀀스를 이용하여 호스트 시스템의 메모리 컨트롤러에 연결되는 신호의 핀 마다 타이밍 보정과 스택 내의 메모리 장치에 연결되는 신호의 핀 타이밍당 보정을 수행할 수 있다.
또한 핀마다 타이밍 보정 및 보상 회로를 버퍼 집적 회로에 포함시키면 버퍼 집적 회로는 복수의 느린 DRAM 장치를 동시에 작동시켜 고속 DRAM 집적 회로를 호스트 시스템에 에뮬레이트할 수 있다. 즉, 핀마다 타이밍 보정 및 보상 회로를 버퍼 집적 회로에 포함시키면 버퍼 집적 회로는 제1 클록 속도로 동작하는 복수의 DRAM 장치를 동시에 작동시켜, 제1 클록 속도보다 빠른 제2 클록 속도로 동작하는 DRAM 집적 회로를 호스트 시스템에 에뮬레이트할 수 있다.
예컨대 버퍼 집적 회로는, 호스트 시스템이 1066MHz 데이터율로 동작하는 단일의 8비트 폭 DDR2 SDRAM 집적 회로를 보도록 2개의 8비트 폭 DDR2 SDRAM 장치를 533MHz 데이터율로 동시에 작동시킬 수 있다. 이 예에서 2개의 DRAM 장치는 DDR2 장치이므로 이 장치들은 메모리 읽기 또는 쓰기를 위해 각각 (버스트 길이 4에 대해서) 각 데이터 핀 상에 4개의 데이터 비트를 전송 또는 수신하도록 설계된다. 그래서 동시에 동작하는 2개의 DRAM 장치는 이 예에서 메모리 읽기 또는 쓰기 각각당 데이터 핀당 64개 비트를 송신 또는 수신할 수 있다. 호스트 시스템은 버퍼 뒤의 단일 DDR2 집적 회로를 보기 때문에 메모리 읽기 또는 쓰기 각각당 핀당 32개만의 비트를 수신 또는 송신할 수 있다. 여러 가지 데이터 폭을 수용하기 위하여 버퍼 집적 회로는 DM 신호(데이터 마스크)를 이용할 수 있다. 호스트 시스템이 버퍼 집적 회로에 1066MHz 데이터율로 DA[7:0], DB[7:0], DC[7:0] 및 DD[7:0]을 보낸다고 하자. 버퍼 집적 회로는 DA[7:0], DC[7:0], XX 및 XX(여기서 XX는 DM 입력의 DDR2 SDRAM 집적 회로로의 (버퍼 집적 회로에 의한) 발행에 의해 마스크된 데이터를 말함)를 제1 DDR2 SDRAM 집적 회로에, DB[7:0], DD[7:0], XX 및 XX를 제2 DDR2 SDRAM 집적 회로에 보낼 수 있다.
다른 실시예에서 버퍼 집적 회로는 2개의 저속 DRAM 장치를 단일의 고속 고폭 DRAM으로서 동작시킨다. 예시적으로 버퍼 집적 회로는, 호스트 시스템이 1066MHz 데이터율로 동작하는 단일의 16비트 폭 DDR2 SDRAM 집적 회로를 보도록 2개의 8비트 폭 DDR2 SDRAM 장치를 533MHz 데이터율로 작동시킬 수 있다. 이 실시 예에서 버퍼 집적 회로는 DM 신호를 이용하지 않아도 된다. 다른 실시예에서 버퍼 집적 회로는, 호스트 시스템이 단일의 DDR3 SDRAM 집적 회로(이 예에서는 8비트 폭 1066MHz 데이터율 DDR3 장치)를 보도록 2개의 DDR2 SDRAM 장치(이 예에서는 8비트 폭 533MHz 데이터율 집적 회로)를 동시에 작동시키도록 설계될 수 있다. 다른 실시예에서 버퍼 집적 회로는 DRAM 집적 회로에 대한 인터페이스보다 더 좁으면서 더 빠른 호스트 시스템에 대한 인터페이스를 제공할 수 있다. 예컨대 버퍼 집적 회로는 하나 또는 그 이상의 DRAM 장치에 대해서는 16비트 폭 533MHz 데이터율 인터페이스를 가질 수 있으나 호스트 시스템에 대해서는 8비트 폭 1066MHz 데이터율 인터페이스를 가질 수 있다.
핀마다 타이밍 보정 및 보상 능력 이외에도, 슬루 레이트(slew rate)(즉 상승 및 하강 시간), 풀업 능력 또는 세기, 및 풀다운 능력 또는 세기를 제어하는 회로가 버퍼 집적 회로의 각 I/O 핀에, 또는 선택적으로 버퍼 집적 회로의 I/O 핀 그룹에 공통으로 부가될 수 있다. 버퍼 집적 회로의 출력 드라이버와 입력 수신기는 호스트 시스템과 스택 내의 메모리 집적 회로의 I/O 핀의 특성을 보상하는 것은 물론 버퍼 집적 회로를 호스트 시스템과 스택 내의 메모리 집적 회로에 연결시키는 트레이스의 불균일성을 보상하기 위하여 프리엠퍼시스(pre-emphasis)를 수행할 능력을 가질 수 있다.
복수의 메모리 집적 회로(휘발성 및 비휘발성 모두 포함)를 적층하는 것은 관련된 열 및 전력 전달 특성을 갖는다. 확장된 기간 동안에는 스택 내의 모든 메모리 집적 회로가 활성 모드에 있을 가능성이 매우 크므로 이들 집적 회로 모두에 의해 소산되는 전력은 메모리 집적 회로의 주변, 케이스 및 접합점 온도를 증가시킬 수 있다. 통상적으로 높은 접합점 온도는 일반적으로 IC, 특히 DRAM의 동작에 악영향을 미친다. 또한 복수의 DRAM 장치가 전압 및 접지 레일(즉 전력 및 접지 트레이스 또는 플래인)을 공유하도록 서로의 상단에 적층되면, 집적 회로의 동시 동작이 전압 및 접지 레일에 큰 스파이크를 일으킬 수 있다. 예컨대 스택 내의 DRAM 장치 모두가 동시에 리프레시되면 전압 레일로부터 대전류가 흘러 전압 및 접지 레일에 큰 장애(즉 스파이크)를 일으킬 수 있다. 잡음이 있는 전압 및 접지 레일은 특히 DRAM의 고속 동작에 영향을 미친다. 이런 현상들을 해결하기 위해 몇 가지 독창적인 기술에 대해 아래에서 설명한다.
일 실시예는 스택의 하나 또는 그 이상의 층이 메모리 집적 회로보다는 디커플링 커패시터를 가지는 적층 기술을 이용한다. 예컨대 스택 내의 다섯 번째 층마다 (다른 4개의 층은 메모리 집적 회로를 포함함) 전력 공급 분리(decoupling) 층이 될 수 있다. 메모리 집적 회로를 포함하는 층들은 메모리 집적 회로의 핀 아웃에 존재하는 것보다 더 많은 전력 및 접지 볼 또는 핀을 가지고 설계된다. 이들 여분의 전력 및 접지 볼은 스택의 층들의 모든 모서리를 따라 배치되는 것이 바람직하다.
도 27A, 27B 및 27C는 또 다른 실시예에 따라서, 전력 분리층을 구비한 버퍼링된 스택을 도시한 것이다. 옵션으로서 버퍼링된 스택은 도 1 내지 도 26에서 구현될 수 있다. 물론 이 버퍼링된 스택은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
도 27A에 도시된 바와 같이, DIMM PCB(2700)는 분리층을 포함하는 버퍼링된 DRAM 스택을 포함한다. 특히 이 실시예에서 버퍼링된 스택은 버퍼(2710), 제1 세트의 DRAM 장치(2720), 제1 분리층(2730), 제2 세트의 DRAM 장치(2740) 및 선택적인 제2 분리층(2750)을 포함한다. 이 스택은 또한 선택적인 히트 싱크 또는 확산부(2755)를 갖고 있다.
도 27B는 DRAM 다이에 대한 일 실시예의 상면도 및 측면도이다. DRAM 다이(2760)는 신호/전력/GND 볼(2762)과 하나 또는 그 이상의 여분의 전력/GND 볼(2764)을 가진 패키지(스택층)(2766)를 포함한다. 여분의 전력/GND 볼(2764)은 열 전도성을 증가시킨다.
도 27C는 분리층의 일 실시예의 상면도 및 측면도이다. 분리층(2775)는 하나 또는 그 이상의 디커플링 커패시터(2770), 신호/전력/GND 볼(2785) 및 하나 또는 그 이상의 여분의 전력/GND 볼(2780)을 포함한다. 여분의 전력/GND 볼(2780)은 열 전도성을 증가시킨다.
도 27B 및 27C에 도시된 여분의 전력 및 접지 볼은 메모리 집적 회로와 스택을 포함하는 PCB 간 그리고 메모리 집적 회로와 선택적 히트 싱크 또는 확산부 간에 열 전도성 경로를 구성한다. 전력 공급 분리층 내의 디커플링 커패시터는 스택 내의 메모리 장치에 휴지의 전압 및 접지 레일을 제공하기 위하여 관련 전압 및 접지 핀에 연결된다. 전술한 적층 기술은 스택의 메모리 집적 회로에 휴지의 전력 및 접지 레일을 제공하여 메모리 집적 회로로부터 열을 빼내기 위한 한 가지 방법이다.
다른 실시예에서 전력 및 접지 레일 상의 잡음은 스택 내의 DRAM 집적 회로들이 동시에 동작을 수행하지 못하도록 함으로써 감소될 수 있다. 전술한 바와 같이 스택 내의 DRAM 집적 회로 전부가 동시에 리프레시 동작을 한다면 전력 레일로부터 매우 큰 전류가 흐를 것이다. 버퍼 집적 회로는, 전력 레일로부터 흐르는 피크 전류가 감소되도록 스택 내의 DRAM 집적 회로에 리프레시 커맨드를 시차를 두고, 분산적으로 발생하도록 설계될 수 있다. 예컨대 버퍼 집적 회로에 의해 에뮬레이트되어 호스트 시스템에게 단일의 4Gb DDR2 SDRAM 집적 회로로 보이는 4개의 1Gb DDR2 SDRAM 집적 회로를 가진 스택을 고려한다. JEDEC 명세는 4Gb DRAM 집적 회로에 400ns의 리프레시 사이클 타임(즉, tRFC)을 제공하는 반면에, 1Gb DRAM 집적 회로는 110ns의 tRFC 명세를 갖는다. 그래서 호스트 시스템이 에뮬레이트된 4Gb DRAM 집적 회로에 리프레시 커맨드를 발생하면 리프레시는 400ns 내에 이루어질 것으로 예상된다. 그러나 이 스택은 4개의 1Gb DRAM 집적 회로를 포함하므로 버퍼 집적 회로는 스택 내의 1Gb DRAM 집적 회로 각각에 시차를 두고 별도의 리프레시 커맨드를 발행할 수 있다. 일례로서 버퍼 집적 회로는 호스트 시스템으로부터 리프레시 커맨드를 수신하면 4개의 1Gb DRAM 집적 회로 중 2개에 리프레시 커맨드를 발생하고, 200ns 후에 나머지 2개의 1Gb DRAM 집적 회로에 별도의 리프레시 커맨드를 발행할 수 있다. 1Gb DRAM 집적 회로는 리프레시 동작을 수행하는데 110ns가 걸리므로 스택 내의 4개의 1Gb DRAM 집적 회로 전부가 (4Gb DRAM 집적 회로의) 400ns 리프레시 사이클 타임이 만료되기 전에 리프레시 동작을 수행할 것이다. 이 와 같이 시차를 둔 리프레시 동작은 전력 레일로부터 흐를 수 있는 최대 전류를 제한한다. 동일한 효과를 제공하는 다른 구현도 가능하며 이도 역시 특허 청구범위의 범위에 포함됨에 유의한다.
일 실시예에서 메모리 집적 회로의 주변, 케이스 및 접합점 온도를 측정하기 위한 장치(예컨대 열 다이오드)가 스택 내에 내장될 수 있다. 선택적으로 주어진 스택과 연관된 버퍼 집적 회로는 메모리 집적 회로의 온도를 모니터하는데 이용될 수 있다. 온도가 한계를 넘으면 버퍼 집적 회로는 메모리 집적 회로의 과열과 손상을 방지하는 적당한 조치를 취할 수 있다. 측정된 온도는 선택적으로 호스트 시스템에 이용될 수 있다.
선택적 특성을 제공하기 위하여 버퍼 집적 회로에 다른 특성도 부가될 수 있다. 예컨대 버퍼 집적 회로는 전력 공급시 또는 호스트 시스템이 전력 공급을 지시할 때에 메모리의 에러나 결함을 체크하도록 설계될 수 있다. 메모리 체크 중에 버퍼 집적 회로는 스택 내의 메모리 집적 회로에 하나 또는 그 이상의 패턴을 기입하고, 그 내용을 다시 읽어내고, 읽어낸 데이터를 기입된 데이터와 비교하여 고착 결함(stuck-at fault)나 기타 다른 메모리 결함을 체크할 수 있다.
도 28은 일 실시예에 따라서 대표적인 하드웨어 환경(2800)을 보여 준다. 옵션으로서 하드웨어 환경(2800)은 도 1 내지 도 27에서 구현될 수 있다. 물론 이 하드웨어 환경(2800)은 임의의 원하는 환경에서 구현될 수 있다. 더욱이 전술한 정의들은 이하의 설명에 동일하게 적용될 수 있다.
일 예시적인 실시예에서 하드웨어 환경(2800)은 컴퓨터 시스템을 포함할 수 있다. 도시된 바와 같이, 하드웨어 환경(2800)은 통신 버스(2802)에 연결된 적어도 하나의 중앙 프로세서(2801)를 포함한다. 하드웨어 환경(2800)은 주메모리(2804)도 포함한다. 주메모리(2804)는 예컨대 RAM(random access memory) 및 기타 임의의 원하는 형태의 메모리를 포함할 수 있다. 더욱이 각종 실시예에서 주메모리(2804)는 메모리 회로, 인터페이스 회로 등을 포함할 수 있다.
하드웨어 환경(2800)은 그래픽 프로세서(2806) 및 디스플레이(1508)도 포함한다. 하드웨어 환경(2800)은 2차적 저장 장치(2810)도 포함할 수 있다. 2차적 저장 장치(2810)는 예컨대 하드 디스크, 및/또는 플로피 디스크 드라이브, 자기 테이프 드라이브, 컴팩 디스크 드라이브와 같은 착탈식 저장 장치 드라이브를 포함한다. 착탈식 저장 장치 드라이브는 공지의 방식으로 착탈식 저장 유닛으로부터 데이터를 읽고 및/또는 이에 데이터를 써 넣는다.
주메모리(2804) 및/또는 2차적 저장 장치(2810)에는 컴퓨터 프로그램 또는 컴퓨터 제어 로직 알고리즘이 저장될 수 있다. 그와 같은 컴퓨터 프로그램이 실행되면 컴퓨터 시스템(2800)은 여러 가지 기능을 수행할 수 있다. 메모리(2804), 저장 장치(2810) 및/또는 기타 다른 저장 장치는 컴퓨터 판독 매체의 가능한 예들이다.
지금까지 각종 실시예들에 대해서 설명하였지만 이들 실시예들은 단지 예시적으로 제시된 것으로 한정적인 것이 아니다. 따라서 바람직한 실시예의 폭과 범위는 상기 예시적인 실시예들에 의해 제한되어서는 안되며 다음의 특허 청구범위와 그 균등물에 따라서만 정해져야 한다.

Claims (101)

  1. 메모리 모듈로서,
    복수의 DRAM(dynamic random access memory) 집적 회로를 포함하는 적어도 하나의 메모리 스택(stack); 및
    호스트 시스템에 결합되도록 구성되어, 상기 메모리 스택 내의 상기 DRAM 집적 회로들 중 하나 이상을 구성하기 위해 상기 적어도 하나의 메모리 스택을 상기 호스트 시스템에 인터페이스시키는 버퍼 회로
    를 포함하고,
    상기 적어도 하나의 메모리 스택은 적어도 하나의 비휘발성 메모리 장치를 포함하고,
    상기 버퍼 회로는, 비계획적 이벤트인 파국적 이벤트(catastrophic event)의 검출시 상기 DRAM 집적 회로들 중 적어도 하나의 DRAM 집적 회로로부터의 데이터를 상기 적어도 하나의 비휘발성 메모리 장치에 카피하도록 더 구성되고,
    상기 모듈은 상기 버퍼 회로 및 상기 DRAM 집적 회로들에 백업(back-up) 전력을 제공하도록 구성된 백업 전원을 더 포함하고, 상기 버퍼 회로는 상기 파국적 이벤트의 검출시 상기 DRAM 집적 회로들에 대한 리프레시 신호들을 생성하도록 더 구성되는 메모리 모듈.
  2. 제1항에 있어서,
    상기 DRAM 집적 회로들은 저속 DRAM 집적 회로들을 포함하고,
    상기 버퍼 회로는 상기 호스트 시스템에 대한 고속 DRAM 동작을 에뮬레이팅(emulate)하도록 더 구성되는 메모리 모듈.
  3. 제1항에 있어서,
    상기 버퍼 회로는 상기 메모리 스택 내의 뱅크의 수와는 상이한 뱅크의 수를 노출(expose)시키도록 더 구성되는 메모리 모듈.
  4. 제1항에 있어서,
    상기 파국적 이벤트는 시스템 충돌 또는 전원 고장을 포함하는 메모리 모듈.
  5. 제1항에 있어서,
    상기 버퍼 회로는 상기 DRAM 집적 회로들을 갖는 상기 적어도 하나의 메모리 스택에 포함되는 메모리 모듈.
  6. 제1항에 있어서,
    상기 버퍼 회로는 상기 DRAM 집적 회로들을 포함하는 상기 적어도 하나의 메모리 스택과는 별도의 스택에 포함되는 메모리 모듈.
  7. 제1항에 있어서,
    상기 버퍼 회로는 상기 호스트 시스템으로부터의 커맨드 수신시 상기 DRAM 집적 회로들 중 적어도 하나의 DRAM 집적 회로로부터의 데이터를 상기 적어도 하나의 비휘발성 메모리 장치에 주기적으로 카피하도록 더 구성되는 메모리 모듈.
  8. 삭제
  9. 제1항에 있어서,
    상기 버퍼 회로는 상기 파국적 이벤트의 검출시 상기 호스트 시스템의 메모리 버스를 상기 적어도 하나의 메모리 스택으로부터 분리(decouple)하도록 더 구성되는 메모리 모듈.
  10. 제1항에 있어서,
    상기 적어도 하나의 비휘발성 메모리 장치는 적어도 하나의 플래시 장치를 포함하는 메모리 모듈.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
  80. 삭제
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
  85. 삭제
  86. 삭제
  87. 삭제
  88. 삭제
  89. 삭제
  90. 삭제
  91. 삭제
  92. 삭제
  93. 삭제
  94. 삭제
  95. 삭제
  96. 삭제
  97. 삭제
  98. 삭제
  99. 삭제
  100. 삭제
  101. 삭제
KR1020087019582A 2006-02-09 2008-08-08 메모리 회로 시스템 및 방법 KR101343252B1 (ko)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US77241406P 2006-02-09 2006-02-09
US60/772,414 2006-02-09
US11/461,437 2006-07-31
US11/461,437 US8077535B2 (en) 2006-07-31 2006-07-31 Memory refresh apparatus and method
US86562406P 2006-11-13 2006-11-13
US60/865,624 2006-11-13
US11/702,960 US20080126690A1 (en) 2006-02-09 2007-02-05 Memory module with memory stack
US11/702,981 2007-02-05
US11/702,981 US8089795B2 (en) 2006-02-09 2007-02-05 Memory module with memory stack and interface with enhanced capabilities
US11/702,960 2007-02-05
PCT/US2007/003460 WO2007095080A2 (en) 2006-02-09 2007-02-08 Memory circuit system and method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020137029741A Division KR101429869B1 (ko) 2006-02-09 2007-02-08 메모리 회로 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20080108975A KR20080108975A (ko) 2008-12-16
KR101343252B1 true KR101343252B1 (ko) 2013-12-18

Family

ID=40028972

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020137029741A KR101429869B1 (ko) 2006-02-09 2007-02-08 메모리 회로 시스템 및 방법
KR1020147007335A KR101404926B1 (ko) 2006-02-09 2007-02-08 메모리 회로 시스템 및 방법
KR1020087019582A KR101343252B1 (ko) 2006-02-09 2008-08-08 메모리 회로 시스템 및 방법

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020137029741A KR101429869B1 (ko) 2006-02-09 2007-02-08 메모리 회로 시스템 및 방법
KR1020147007335A KR101404926B1 (ko) 2006-02-09 2007-02-08 메모리 회로 시스템 및 방법

Country Status (6)

Country Link
EP (7) EP2450798B1 (ko)
JP (3) JP5205280B2 (ko)
KR (3) KR101429869B1 (ko)
AT (1) ATE554447T1 (ko)
DK (3) DK2696290T3 (ko)
HK (1) HK1250270A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170016548A (ko) * 2015-08-03 2017-02-14 삼성전자주식회사 백업 기능을 갖는 메모리 모듈

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4861497B2 (ja) * 2010-05-31 2012-01-25 株式会社東芝 データ記憶装置及びメモリ調整方法
US8582373B2 (en) 2010-08-31 2013-11-12 Micron Technology, Inc. Buffer die in stacks of memory dies and methods
JP2012099189A (ja) * 2010-11-04 2012-05-24 Elpida Memory Inc 半導体装置
WO2012095980A1 (ja) 2011-01-13 2012-07-19 富士通株式会社 メモリコントローラ、及び情報処理装置
JP2012146377A (ja) * 2011-01-14 2012-08-02 Elpida Memory Inc 半導体装置
JP5647014B2 (ja) 2011-01-17 2014-12-24 ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. 半導体装置
KR101937951B1 (ko) 2012-05-31 2019-01-14 에스케이하이닉스 주식회사 반도체 집적회로 및 그의 구동방법
US8811110B2 (en) 2012-06-28 2014-08-19 Intel Corporation Configuration for power reduction in DRAM
CN105164804A (zh) * 2013-01-31 2015-12-16 惠普发展公司,有限责任合伙企业 多层级集成电路的选择电路
KR101821633B1 (ko) 2013-03-14 2018-03-08 삼성전자주식회사 메모리 시스템
US9679615B2 (en) * 2013-03-15 2017-06-13 Micron Technology, Inc. Flexible memory system with a controller and a stack of memory
US9658783B2 (en) * 2013-03-27 2017-05-23 Hitachi, Ltd. DRAM having SDRAM interface and flash memory consolidated memory module
JP5996781B2 (ja) * 2013-03-27 2016-09-21 株式会社日立製作所 Sdramインターフェイスを有するdram、フラッシュメモリ混載メモリモジュール
US9858181B2 (en) * 2013-06-20 2018-01-02 Hitachi, Ltd. Memory module having different types of memory mounted together thereon, and information processing device having memory module mounted therein
US9921980B2 (en) 2013-08-12 2018-03-20 Micron Technology, Inc. Apparatuses and methods for configuring I/Os of memory for hybrid memory modules
US9805775B1 (en) 2013-11-08 2017-10-31 Altera Corporation Integrated circuits with improved memory controllers
US9760138B2 (en) * 2014-04-25 2017-09-12 Microsoft Technology Licensing, Llc Load scheduling in multi-battery devices
JP5775629B2 (ja) * 2014-07-29 2015-09-09 ルネサスエレクトロニクス株式会社 半導体集積回路
US10261697B2 (en) 2015-06-08 2019-04-16 Samsung Electronics Co., Ltd. Storage device and operating method of storage device
US9830086B2 (en) * 2016-03-03 2017-11-28 Samsung Electronics Co., Ltd. Hybrid memory controller for arbitrating access to volatile and non-volatile memories in a hybrid memory group
KR20180064734A (ko) * 2016-12-06 2018-06-15 삼성전자주식회사 반도체 메모리 장치 및 이를 구비하는 메모리 모듈
WO2018216081A1 (ja) * 2017-05-22 2018-11-29 ゼンテルジャパン株式会社 半導体記憶システム
US20230156997A1 (en) * 2020-04-03 2023-05-18 Ultramemory Inc. Memory unit, semiconductor module, dimm module, and manufacturing method for same
US11222702B1 (en) 2020-07-09 2022-01-11 Micron Technology, Inc. Noise reduction during parallel plane access in a multi-plane memory device
US11494120B2 (en) * 2020-10-02 2022-11-08 Qualcomm Incorporated Adaptive memory transaction scheduling

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4538241A (en) * 1983-07-14 1985-08-27 Burroughs Corporation Address translation buffer
US5369749A (en) * 1989-05-17 1994-11-29 Ibm Corporation Method and apparatus for the direct transfer of information between application programs running on distinct processors without utilizing the services of one or both operating systems
JP3078136B2 (ja) * 1992-11-27 2000-08-21 沖電気工業株式会社 画像メモリ装置
WO1995005676A1 (en) * 1993-08-13 1995-02-23 Irvine Sensors Corporation Stack of ic chips as substitute for single ic chip
JPH08278916A (ja) * 1994-11-30 1996-10-22 Hitachi Ltd マルチチャネルメモリシステム、転送情報同期化方法及び信号転送回路
KR0164358B1 (ko) * 1995-08-31 1999-02-18 김광호 반도체 메모리 장치의 서브워드라인 디코더
JP3780580B2 (ja) * 1995-10-16 2006-05-31 セイコーエプソン株式会社 半導体記憶装置及びそれを用いた電子機器
US5761694A (en) * 1995-11-30 1998-06-02 Cirrus Logic, Inc. Multi-bank memory system and method having addresses switched between the row and column decoders in different banks
US5765203A (en) * 1995-12-19 1998-06-09 Seagate Technology, Inc. Storage and addressing method for a buffer memory control system for accessing user and error imformation
US5926827A (en) * 1996-02-09 1999-07-20 International Business Machines Corp. High density SIMM or DIMM with RAS address re-mapping
JPH10233091A (ja) * 1997-02-21 1998-09-02 Hitachi Ltd 半導体記憶装置およびデータ処理装置
JPH10260895A (ja) * 1997-03-19 1998-09-29 Hitachi Ltd 半導体記憶装置およびそれを用いた計算機システム
US5960468A (en) * 1997-04-30 1999-09-28 Sony Corporation Asynchronous memory interface for a video processor with a 2N sized buffer and N+1 bit wide gray coded counters
US6067255A (en) * 1997-07-03 2000-05-23 Samsung Electronics Co., Ltd. Merged memory and logic (MML) integrated circuits including independent memory bank signals and methods
US6351427B1 (en) * 1997-12-10 2002-02-26 Texas Instruments Incorporated Stored write scheme for high speed/wide bandwidth memory devices
JP3922487B2 (ja) * 1998-02-04 2007-05-30 松下電器産業株式会社 メモリ制御装置および方法
US6226730B1 (en) * 1998-06-05 2001-05-01 Intel Corporation Achieving page hit memory cycles on a virtual address reference
JP4540137B2 (ja) * 1998-07-24 2010-09-08 ルネサスエレクトロニクス株式会社 同期型半導体記憶装置
US6526484B1 (en) * 1998-11-16 2003-02-25 Infineon Technologies Ag Methods and apparatus for reordering of the memory requests to achieve higher average utilization of the command and data bus
KR100304705B1 (ko) * 1999-03-03 2001-10-29 윤종용 포스티드 카스 레이턴시 기능을 가지는 동기식 반도체 메모리 장치 및 카스 레이턴시 제어 방법
US6389514B1 (en) * 1999-03-25 2002-05-14 Hewlett-Packard Company Method and computer system for speculatively closing pages in memory
US6683372B1 (en) * 1999-11-18 2004-01-27 Sun Microsystems, Inc. Memory expansion module with stacked memory packages and a serial storage unit
KR100344217B1 (ko) * 2000-07-04 2002-07-20 주식회사 케이이씨메카트로닉스 듀얼포트 메모리를 이용한 통신 인터페이스회로
US6487102B1 (en) * 2000-09-18 2002-11-26 Intel Corporation Memory module having buffer for isolating stacked memory devices
JP2002288037A (ja) * 2001-03-27 2002-10-04 Sony Corp メモリ制御装置及び方法
US6915402B2 (en) * 2001-05-23 2005-07-05 Hewlett-Packard Development Company, L.P. Method and system for creating secure address space using hardware memory router
JP3799251B2 (ja) * 2001-08-24 2006-07-19 エルピーダメモリ株式会社 メモリデバイス及びメモリシステム
CN1280734C (zh) * 2001-09-07 2006-10-18 皇家菲利浦电子有限公司 用于分段存取控制的控制装置和方法和具有该控制装置的视频存储器装置
US6914324B2 (en) * 2001-10-26 2005-07-05 Staktek Group L.P. Memory expansion and chip scale stacking system and method
US6950910B2 (en) * 2001-11-08 2005-09-27 Freescale Semiconductor, Inc. Mobile wireless communication device architectures and methods therefor
US7480911B2 (en) * 2002-05-09 2009-01-20 International Business Machines Corporation Method and apparatus for dynamically allocating and deallocating processors in a logical partitioned data processing system
US20050286856A1 (en) * 2002-12-04 2005-12-29 Koninklijke Philips Electronics N.V. Portable media player with adaptive playback buffer control
JP4419049B2 (ja) * 2003-04-21 2010-02-24 エルピーダメモリ株式会社 メモリモジュール及びメモリシステム
JP4346369B2 (ja) * 2003-08-08 2009-10-21 株式会社メルコホールディングス メモリモジュールおよびメモリ用補助モジュール
JP3896112B2 (ja) * 2003-12-25 2007-03-22 エルピーダメモリ株式会社 半導体集積回路装置
KR100604843B1 (ko) * 2004-03-26 2006-07-31 삼성전자주식회사 온-다이 종단 회로를 구비한 메모리 모듈 및 그 제어 방법
TWI299497B (en) * 2004-06-24 2008-08-01 Via Tech Inc Method and related apparatus for accessing memory apparatus
JP4534132B2 (ja) * 2004-06-29 2010-09-01 エルピーダメモリ株式会社 積層型半導体メモリ装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170016548A (ko) * 2015-08-03 2017-02-14 삼성전자주식회사 백업 기능을 갖는 메모리 모듈
KR102274038B1 (ko) * 2015-08-03 2021-07-09 삼성전자주식회사 백업 기능을 갖는 메모리 모듈

Also Published As

Publication number Publication date
DK2696290T3 (en) 2016-02-15
KR101404926B1 (ko) 2014-06-10
EP2450798B1 (en) 2013-10-30
EP2706461A1 (en) 2014-03-12
EP2450798A1 (en) 2012-05-09
EP2696290A1 (en) 2014-02-12
DK2458505T3 (en) 2014-12-01
JP2013012233A (ja) 2013-01-17
JP2013012232A (ja) 2013-01-17
JP2009526323A (ja) 2009-07-16
KR20130141693A (ko) 2013-12-26
EP2450800A1 (en) 2012-05-09
ATE554447T1 (de) 2012-05-15
KR20140056349A (ko) 2014-05-09
EP2450800B1 (en) 2014-04-23
EP2005303A4 (en) 2009-09-16
KR101429869B1 (ko) 2014-08-12
EP2005303B1 (en) 2012-04-18
EP3276495A1 (en) 2018-01-31
EP2458505B1 (en) 2014-10-08
JP5730252B2 (ja) 2015-06-03
EP2005303A2 (en) 2008-12-24
HK1250270A1 (zh) 2018-12-07
JP5205280B2 (ja) 2013-06-05
EP2696290B1 (en) 2015-12-23
JP5730251B2 (ja) 2015-06-03
DK2005303T3 (da) 2012-07-23
EP2458505A1 (en) 2012-05-30
KR20080108975A (ko) 2008-12-16

Similar Documents

Publication Publication Date Title
KR101343252B1 (ko) 메모리 회로 시스템 및 방법
US8407412B2 (en) Power management of memory circuits by virtual memory simulation
US9171585B2 (en) Configurable memory circuit system and method
US8797779B2 (en) Memory module with memory stack and interface with enhanced capabilites
US9542353B2 (en) System and method for reducing command scheduling constraints of memory circuits
US8244971B2 (en) Memory circuit system and method
US9632929B2 (en) Translating an address associated with a command communicated between a system and memory circuits
WO2007095080A2 (en) Memory circuit system and method

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
N231 Notification of change of applicant
J201 Request for trial against refusal decision
A107 Divisional application of patent
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161128

Year of fee payment: 4