KR102322727B1 - 데이터 스왑을 위한 메모리 시스템 및 그 동작방법 - Google Patents
데이터 스왑을 위한 메모리 시스템 및 그 동작방법 Download PDFInfo
- Publication number
- KR102322727B1 KR102322727B1 KR1020190091612A KR20190091612A KR102322727B1 KR 102322727 B1 KR102322727 B1 KR 102322727B1 KR 1020190091612 A KR1020190091612 A KR 1020190091612A KR 20190091612 A KR20190091612 A KR 20190091612A KR 102322727 B1 KR102322727 B1 KR 102322727B1
- Authority
- KR
- South Korea
- Prior art keywords
- swap
- data
- moved
- buffer
- memory system
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/06—Arrangements for interconnecting storage elements electrically, e.g. by wiring
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1042—Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2236—Copy
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2245—Memory devices with an internal cache buffer
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/106—Data output latches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1087—Data input latches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
Abstract
본 발명은 데이터 스왑을 위한 메모리 시스템 및 그 동작방법에 관한 것으로서, 일실시예에 따른 메모리 시스템은 적어도 하나 이상의 관통 실리콘 비아(through silicon via; TSV) 채널을 통해 서로 연결된 복수의 레이어 및 복수의 레이어 중 스왑 버퍼가 구비된 제1 레이어와 제2 레이어 간의 데이터 스왑(data swap) 여부를 결정하고, 결정 여부에 따라 제1 레이어와 제2 레이어에 구비된 스왑 데이터의 이동을 제어하는 제어 커맨드를 생성하는 스왑 제어부를 포함한다.
Description
본 발명은 메모리 시스템 및 그 동작방법에 관한 것으로서, 보다 상세하게는 복수의 레이어가 적층 형성된 메모리 시스템에서 데이터 스왑 동작을 수행하는 기술적 사상에 관한 것이다.
최근 반도체 메모리는 고속 데이터 신뢰성, 고속 메모리 액세스, 저전력 소비 및 감소된 칩 크기 등과 같은 성능이 요구되고 있으며, 이를 위해 3차원(3D) 메모리 시스템이 도입되었다.
구체적으로, 3D 메모리 시스템은 메모리 레이어(예를 들면, 메모리 칩)를 수직으로 적층하고 관통 실리콘 비아(through silicon via; TSV)를 사용하여 메모리 레이어를 상호 연결함으로써 형성된다.
3D 메모리 디바이스의 장점으로는 회로 지연과 전력 소비를 줄이는 짧은 상호 연결 거리를 들 수 있으며, 이를 통해 3D 메모리 시스템은 고속 메모리 액세스, 저전력 소비 및 칩 크기 감소에 기여하고 있다.
예를 들면, 3D 메모리 시스템은 하이브리드 메모리 큐브(hybrid memory cube: HMC), 고대역폭 메모리(high bandwidth memory: HBM) 및 와이드 -I/O 동적 랜덤 액세스 메모리(DRAM)를 포함할 수 있다.
한편, 3D 메모리 시스템은 수직 적층된 레이어 간에 데이터 스왑(swap) 동작을 수행하나, 수직 적층된 레이어들은 TSV 채널을 통해 스왑 동작을 진행하기 때문에 한번에 단일 뱅크(bank)의 데이터만을 이동시킬 수 있어 스왑 속도 향상에 한계를 보이고 있다.
본 발명은 적어도 하나 이상의 레이어에 구비된 스왑 버퍼를 이용하여 데이터 스왑 동작을 최적화함으로써, 스왑 속도를 향상시킬 수 있는 메모리 시스템 및 그 동작방법을 제공하고자 한다.
또한, 본 발명은 기설정된 이동 단위로 뱅크 레벨의 인터리빙을 수행하여 TSV 채널의 대역폭 사용률을 향상시킬 수 있는 메모리 시스템 및 그 방법을 제공하고자 한다.
일실시예에 따른 메모리 시스템은 적어도 하나 이상의 관통 실리콘 비아(through silicon via; TSV) 채널을 통해 서로 연결된 복수의 레이어 및 복수의 레이어 중 스왑 버퍼가 구비된 제1 레이어와 제2 레이어 간의 데이터 스왑(data swap) 여부를 결정하고, 결정 여부에 따라 제1 레이어와 제2 레이어에 구비된 스왑 데이터의 이동을 제어하는 제어 커맨드를 생성하는 스왑 제어부를 포함할 수 있다.
일측에 따르면, 스왑 제어부는 스왑 데이터를 기설정된 데이터 이동 단위로 분할된 복수의 유닛 데이터로 구분하고, 구분된 복수의 유닛 데이터 각각이 순차적으로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
일측에 따르면, 스왑 제어부는 제1 레이어에 구비된 복수의 뱅크(bank) 중 제1 뱅크에 구비된 제1 스왑 데이터가 제1 뱅크에 대응되는 제1 로우 버퍼로 이동되고, 제2 레이어에 구비된 복수의 뱅크 중 제2 뱅크에 구비된 제2 스왑 데이터가 제2 뱅크에 대응되는 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
일측에 따르면, 스왑 제어부는 제2 로우 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터가 스왑 버퍼로 이동 되도록 제어하고, 제1 로우 버퍼로 이동된 제1 스왑 데이터의 제1 유닛 데이터가 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
일측에 따르면, 스왑 제어부는 스왑 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터가 제1 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
일측에 따르면, 스왑 제어부는 스왑 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터가 제1 로우 버퍼로 이동 되고, 제2 로우 버퍼로 이동된 제2 스왑 데이터의 제2 유닛 데이터가 스왑 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
일측에 따르면, 스왑 제어부는 제2 스왑 데이터 전체가 제1 로우 버퍼로 이동되면, 제1 로우 버퍼로 이동된 제2 스왑 데이터가 제1 뱅크에 라이트(Write)되도록 제어하는 제어 커맨드를 생성할 수 있다.
일측에 따르면, 스왑 제어부는 제1 뱅크에 라이트 되는 동안 제1 레이어에 구비된 복수의 뱅크(bank) 중 제3 뱅크에 구비된 제3 스왑 데이터가 제3 뱅크에 대응되는 제3 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
다른 실시예에 따른 메모리 시스템은 적어도 하나 이상의 관통 실리콘 비아(through silicon via; TSV) 채널을 통해 서로 연결된 복수의 레이어 및 복수의 레이어 중 제1 스왑 버퍼가 구비된 제1 레이어와 제2 스왑 버퍼가 구비된 제2 레이어 간의 데이터 스왑(data swap) 여부를 결정하고, 결정 여부에 따라 제1 레이어와 제2 레이어에 구비된 스왑 데이터의 이동을 제어하는 제어 커맨드를 생성하는 스왑 제어부를 포함할 수 있다.
일측에 따르면, 스왑 제어부는 스왑 데이터를 기설정된 데이터 이동 단위로 분할된 복수의 유닛 데이터로 구분하고, 구분된 복수의 유닛 데이터 각각이 순차적으로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
일측에 따르면, 제1 스왑 버퍼 및 제2 스왑 버퍼는 제1 레이어 및 제2 레이어에 구비된 복수의 뱅크(bank) 각각에 구비될 수 있다.
일측에 따르면, 스왑 제어부는 제1 레이어에 구비된 복수의 뱅크(bank) 중 제1 뱅크에 구비된 제1 스왑 데이터가 제1 뱅크에 대응되는 제1 로우 버퍼로 이동되고, 제2 레이어에 구비된 복수의 뱅크 중 제2 뱅크에 구비된 제2 스왑 데이터가 제2 뱅크에 대응되는 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
일측에 따르면, 스왑 제어부는 제2 로우 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터가 제1 스왑 버퍼로 이동 되도록 제어하고, 제1 로우 버퍼로 이동된 제1 스왑 데이터의 제1 유닛 데이터가 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
일측에 따르면, 스왑 제어부는 제1 스왑 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터가 제1 로우 버퍼로 이동 되고, 제2 로우 버퍼로 이동된 제2 스왑 데이터의 제2 유닛 데이터가 제2 스왑 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
일측에 따르면, 스왑 제어부는 제1 로우 버퍼로 이동된 제1 스왑 데이터의 제2 유닛 데이터가 제2 로우 버퍼로 이동되고, 제2 스왑 버퍼로 이동된 제2 스왑 데이터의 제2 유닛 데이터가 제1 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
일측에 따르면, 스왑 제어부는 제2 스왑 데이터 전체가 제1 로우 버퍼로 이동되면, 제1 로우 버퍼로 이동된 제2 스왑 데이터가 제1 뱅크에 라이트(Write)되도록 제어하는 제어 커맨드를 생성할 수 있다.
일측에 따르면, 스왑 제어부는 제1 뱅크에 라이트 되는 동안 제1 레이어에 구비된 복수의 뱅크(bank) 중 제3 뱅크에 구비된 제3 스왑 데이터가 제3 뱅크에 대응되는 제3 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
일실시예에 따르면, 적어도 하나 이상의 레이어에 구비된 스왑 버퍼를 이용하여 데이터 스왑 동작을 최적화함으로써, 스왑 속도를 향상시킬 수 있다.
일실시예에 따르면, 기설정된 이동 단위로 뱅크 레벨의 인터리빙을 수행하여 TSV 채널의 대역폭 사용률을 향상시킬 수 있다.
도 1은 일실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 2는 일실시예에 따른 메모리 시스템의 제1 내지 제2 실시예를 설명하기 위한 도면이다.
도 3a 내지 도 3f는 제1 실시예에 따른 메모리 시스템의 동작방법에 관한 예시를 설명하기 위한 도면이다.
도 4a 내지 도 4f는 제2 실시예에 따른 메모리 시스템의 동작방법에 관한 다른 예시를 설명하기 위한 도면이다.
도 5는 일실시예에 따른 메모리 시스템의 제3 실시예를 설명하기 위한 도면이다.
도 6a 내지 도 6h는 제3 실시예에 따른 메모리 시스템의 동작방법에 관한 예시를 설명하기 위한 도면이다.
도 7은 일실시예에 따른 메모리 시스템의 제4 실시예를 설명하기 위한 도면이다.
도 8a 내지 도 8c는 일실시예예 따른 메모리 시스템의 뱅크 레벨 인터리빙 동작을 설명하기 위한 도면이다.
도 2는 일실시예에 따른 메모리 시스템의 제1 내지 제2 실시예를 설명하기 위한 도면이다.
도 3a 내지 도 3f는 제1 실시예에 따른 메모리 시스템의 동작방법에 관한 예시를 설명하기 위한 도면이다.
도 4a 내지 도 4f는 제2 실시예에 따른 메모리 시스템의 동작방법에 관한 다른 예시를 설명하기 위한 도면이다.
도 5는 일실시예에 따른 메모리 시스템의 제3 실시예를 설명하기 위한 도면이다.
도 6a 내지 도 6h는 제3 실시예에 따른 메모리 시스템의 동작방법에 관한 예시를 설명하기 위한 도면이다.
도 7은 일실시예에 따른 메모리 시스템의 제4 실시예를 설명하기 위한 도면이다.
도 8a 내지 도 8c는 일실시예예 따른 메모리 시스템의 뱅크 레벨 인터리빙 동작을 설명하기 위한 도면이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 일실시예에 따른 메모리 시스템(100)은 적어도 하나 이상의 레이어에 구비된 스왑 버퍼를 이용하여 데이터 스왑 동작을 최적화함으로써, 스왑 속도를 향상시킬 수 있다.
또한, 일실시예에 따른 메모리 시스템(100)은 기설정된 이동 단위로 뱅크 레벨의 인터리빙을 수행하여 TSV 채널의 대역폭 사용률을 향상시킬 수 있다.
이를 위해, 메모리 시스템(100)은 복수의 레이어(110) 및 스왑 제어부(120)를 포함할 수 있다.
참고로, 본 발명에서 설명하는 데이터 스왑이라는 용어는 알고리즘 및 소프트웨어 관련 분야에서 사용하는 데이터의 위치를 서로 바꾼다는 광의적 의미를 내포하고 있는 용어로서, 운영체제의 데이터 관리 기법에서 사용되는 데이터 스왑 기법에 한정되는 의미가 아니다.
일실시예에 따른 복수의 레이어(110)는 적어도 하나 이상의 관통 실리콘 비아(through silicon via; TSV) 채널을 통해 서로 연결될 수 있다.
다시 말해, 복수의 레이어(110) 각각은 서로 수직으로 적층 형성될 수 있으며, TSV 채널을 통해 상호 간에 연결될 수 있다.
구체적으로, 복수의 레이어(110)는 복수의 메모리 레이어와 복수의 스토리지 레이어가 적층 형성될 수 있다.
메모리 레이어는 빠른 데이터 처리 속도를 가지는 메모리로서, 예를 들면, DRAM(Dynamic Random Access Memory)으로 구성될 수 있으나, 이에 한정되는 것은 아니다. 스토리지 레이어는 메모리 레이어에 비해 집적도(density)가 높아 상대적으로 큰 메모리 용량을 가지는 메모리일 수 있다.
다시 말해, 메모리 레이어들은 스토리지 레이어에 비해 상대적으로 처리 속도가 빠르고 용량이 낮은 메모리일 수 있고, 스토리지 레이어는 메모리 레이어에 비해 상대적으로 처리 속도가 느리고 집적 밀도가 높은 레이어일 수 있다.
예를 들면, 스토리지 레이어는 리드/라이트 지연 시간이 DRAM에 비해 상대적으로 큰 플래시(Flash) 메모리, PRAM 및 MRAM 중 어느 하나의 메모리 일 수 있으나, 이에 한정되는 것은 아니다.
일측에 따르면, 메모리 레이어 및 스토리지 레이어는 PRAM 등의 동일한 종류의 메모리로 구성될 수도 있고, 최적화 특성, 공정 기술 특성 및 SLC(Single Level Cell)/MLC(Multi Level Cell) 여부와 같은 특성이 서로 상이한 메모리로 구성될 수도 있다.
일측에 따르면, 복수의 레이어(110) 각각은 복수의 TSV 채널 각각에 대응되는 영역에 복수의 뱅크(bank)를 구비할 수 있으며, 복수의 뱅크 각각은 로우 버퍼(row buffer)를 구비할 수 있다.
일측에 따르면, 메모리 시스템(100)의 복수의 레이어(110) 각각은 하나의 TSV 채널별로 4개의 뱅크를 포함할 수 있으나, 일실시예에 따른 메모리 시스템(100)은 이에 한정되지 않고, 하나의 TSV 채널에 4개 이하 또는 4개 이상의 뱅크가 구비될 수도 있다.
예를 들면, 복수의 뱅크 각각은 서브 어레이(sub array)를 포함할 수 있으며, 로우 버퍼는 서브 어레이에서 어느 하나의 로우(row)에 대응되는 데이터를 저장하여 리드(read) 및 라이트(write) 동작을 수행할 수 있다.
보다 구체적인 예를 들면, 로우 버퍼는 로우 디코더(row decoder)를 통해 어느 하나의 로우가 선택되면, 선택된 로우에 저장된 데이터를 리드하여 저장할 수 있다.
또한, 로우 버퍼에 저장된 데이터는 컬럼 디코더(column decoder)를 통해 컬럼을 선택하여 원하는 로우/컬럼 데이터를 출력할 수 있다.
일측에 따르면, 복수의 레이어(110) 중 적어도 하나의 레이어는 스왑 버퍼(swap buffer)를 구비할 수 있다.
예를 들면, 메모리 시스템(100)은 복수의 레이어(110) 중 복수의 메모리 레이어 또는 복수의 스토리지 레이어에 스왑 버퍼를 구비할 수 있다.
또한, 메모리 시스템(100)은 복수의 레이어(110) 각각에 스왑 버퍼를 구비할 수도 있다.
또한, 메모리 시스템(100)은 복수의 레이어(110) 각각에 구비된 복수의 뱅크 각각에 스왑 버퍼들을 구비할 수도 있다.
일실시예에 따른 스왑 제어부(120)는 복수의 레이어 중 제1 레이어와 제2 레이어 간의 데이터 스왑(data swap) 여부를 결정하고, 결정 여부에 따라 제1 레이어와 제2 레이어에 구비된 스왑 데이터의 이동을 제어하는 제어 커맨드를 생성할 수 있다.
예를 들면, 제1 레이어 및 제2 레이어 각각은 메모리 레이어 및 스토리지 레이어 중 적어도 하나의 레이어일 수 있다.
또한, 스왑 데이터들은 제1 레이어 및 제2 레이어 각각의 구비된 VM(virtual machine)의 데이터 또는 이미지일 수도 있다.
다시 말해, 스왑 제어부(120)는 제1 레이어와 제2 레이어 사이에서 수행되는 데이터 스왑 동작을 제어하기 위한 제어 커맨드를 생성할 수 있다.
예를 들면, 스왑 제어부(120)는 호스트(host) 장치로부터 데이터 스왑 동작을 위한 리퀘스트 신호를 수신하고, 수신한 리퀘스트에 대응하여 제어 커맨드를 생성할 수 있으며, 생성된 제어 커맨드를 대응되는 레이어 각각에 제공하여 스왑 데이터의 이동을 제어할 수 있다.
일측에 따르면, 스왑 제어부(120)는 기설정된 이동 단위로 뱅크 레벨의 인터리빙(bank-level interleaving)을 수행하여 TSV 채널의 대역폭 사용률을 향상시키기 위한 제어 커맨드를 생성할 수 있다.
도 2는 일실시예에 따른 메모리 시스템의 제1 내지 제2 실시예를 설명하기 위한 도면이다.
다시 말해, 도 2는 도 1을 통해 설명한 일실시예에 따른 메모리 시스템의 예시를 설명하는 도면으로, 이후 도 2를 통해 설명하는 내용 중 일실시예에 따른 메모리 시스템을 통해 설명한 내용과 중복되는 설명은 생략하기로 한다.
도 2를 참조하면, 도 2의 (a)는 제1 실시예에 따른 메모리 시스템을 나타내고, 도 2의 (b)는 제2 실시예에 따른 메모리 시스템을 나타낸다.
이하에서는 도 2의 (a)를 참조하여, 제1 실시예에 따른 메모리 시스템에 대하여 설명하기로 한다.
도 2의 (a)에 따르면, 일실시예에 따른 메모리 시스템의 스왑 제어부는 적어도 하나 이상의 관통 실리콘 비아(through silicon via; TSV) 채널을 통해 서로 연결된 복수의 레이어 중 스왑 버퍼(211)가 구비된 제1 레이어(210)와, 제2 레이어(220) 간의 데이터 스왑(data swap) 여부를 결정하고, 결정 여부에 따라 제1 레이어(210)와 제2 레이어(220)에 구비된 스왑 데이터의 이동을 제어하는 제어 커맨드를 생성할 수 있다.
다시 말해, 제1 실시예에 따른 메모리 시스템(200)은 복수의 레이어 중 일부 레이어에만 스왑 버퍼가 존재하는 구조로, 동일한 TSV 채널에서 일부 레이어 간 또는 스왑 버퍼(211)가 구비된 레이어에서 두개의 뱅크간에 데이터 스왑 동작을 수행할 수 있다.
즉, 제1 실시예에 따른 메모리 시스템(200)은 스왑 버퍼의 사용을 최소화 하면서도 낮은 오버헤드(low overhead)로 데이터 스왑(data swap) 동작의 속도를 향상시킬 수 있다.
예를 들면, 스왑 제어부는 도 1에 도시된 스왑 제어부(120)일 수 있고, 제1 레이어(210)는 메모리 레이어이며, 제2 레이어(220)는 스토리지 레이어일 수 있다.
또한, 제1 레이어(210)는 스토리지 레이어이고, 제2 레이어(220)는 메모리 레이어일 수도 있다.
일측에 따르면, 복수의 레이어 각각은 복수의 TSV 채널 각각에 대응되는 영역에 복수의 뱅크(bank)를 구비할 수 있으며, 복수의 뱅크 각각은 로우 버퍼(row buffer)를 구비할 수 있다.
예를 들면, 제1 레이어(210)의 복수의 뱅크 중 제1 뱅크(212)는 대응되는 제1 로우 버퍼(213)를 구비하고, 제3 뱅크(214)는 대응되는 제3 로우 버퍼(215)를 구비할 수 있다.
또한, 제2 레이어(220)의 복수의 뱅크 중 제2 뱅크(221)는 대응되는 제2 로우 버퍼(222)를 구비하고, 제4 뱅크(223)는 대응되는 제4 로우 버퍼(224)를 구비할 수 있다.
제1 실시예에 따른 메모리 시스템의 동작방법은 이후 실시예 도 3a 내지 도 3f를 통해 보다 구체적으로 설명하기로 한다.
이하에서는 도 2의 (b)를 참조하여, 제2 실시예에 따른 메모리 시스템에 대하여 설명하기로 한다.
도 2의 (b)에 따르면, 제1 레이어(230), 제1 뱅크(232), 제1 로우 버퍼(233), 제3 뱅크(234), 제3 로우 버퍼(235), 제2 레이어(240), 제2 뱅크(241), 제2 로우 버퍼(242), 제4 뱅크(243) 및 제4 로우 버퍼(244)는 도 2의 (a)를 통해 설명한 제1 레이어(210), 제1 뱅크(212), 제1 로우 버퍼(213), 제3 뱅크(214), 제3 로우 버퍼(215), 제2 레이어(220), 제2 뱅크(221), 제2 로우 버퍼(222), 제4 뱅크(223) 및 제4 로우 버퍼(224)와 동일하게 구성되므로, 이하에서는 도 2의 (a)를 통해 설명한 내용과 중복되는 설명은 생략하기로 한다.
구체적으로, 일실시예에 따른 메모리 시스템의 스왑 제어부는 적어도 하나 이상의 관통 실리콘 비아(through silicon via; TSV) 채널을 통해 서로 연결된 복수의 레이어 중 스왑 버퍼(231)가 구비된 제1 레이어(230)와, 제2 레이어(240) 간의 데이터 스왑(data swap) 여부를 결정하고, 결정 여부에 따라 제1 레이어(230)와 제2 레이어(240)에 구비된 스왑 데이터의 이동을 제어하는 제어 커맨드를 생성할 수 있다.
일측에 따르면, 스왑 버퍼(231)는 적어도 둘 이상의 영역(SB0, SB1 등)으로 구분되고 듀얼 포트(dual port)로 구현되어, 동일한 시간 구간에서 데이터의 라이트 및 리드 동작을 동시에 수행하도록 설계될 수 있다.
제2 실시예에 따른 메모리 시스템의 동작방법은 이후 실시예 도 4a 내지 도 4f를 통해 보다 구체적으로 설명하기로 한다.
도 3a 내지 도 3f는 제1 실시예에 따른 메모리 시스템의 동작방법에 관한 예시를 설명하기 위한 도면이다.
도 3a 내지 도 3f를 참조하면, 제1 실시예에 따른 메모리 시스템의 동작방법은 도 2의 (a)를 통해 설명한 제1 실시예에 따른 메모리 시스템에서 수행될 수 있다.
구체적으로, 310 단계에서 메모리 시스템의 스왑 제어부는 제1 레이어에 구비된 복수의 뱅크(bank) 중 제1 뱅크에 구비된 제1 스왑 데이터가 제1 뱅크에 대응되는 제1 로우 버퍼로 이동되고, 제2 레이어에 구비된 복수의 뱅크 중 제2 뱅크에 구비된 제2 스왑 데이터가 제2 뱅크에 대응되는 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
다시 말해, 메모리 시스템은 스왑 데이터가 구비된 뱅크 각각에서의 로우 셀렉(row select)을 통해 스왑 데이터를 대응되는 로우 버퍼에 저장할 수 있다.
일측에 따르면, 스왑 제어부는 스왑 데이터(제1 및 제2 스왑 데이터)를 기설정된 데이터 이동 단위로 분할된 복수의 유닛 데이터로 구분하고, 구분된 복수의 유닛 데이터 각각이 순차적으로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
예를 들면, 기설정된 데이터 이동 단위는 페이지(page) 단위 또는 스왑 버퍼 단위에 기초하여 설정될 수 있다.
구체적으로, 기설정된 데이터 이동 단위는 TSV가 한번에 보낼 수 있는 단위 이동 단위의 1배 내지 m배(여기서, m은 양의 정수)가 될 수 있으며, 통상적으로 페이지보다 작은 캐시라인(cacheline; 64byte) 수준 또는 그보다 작거나 큰 단위로 설정될 수 있다.
보다 구체적인 예를 들면, 메모리 시스템은 제1 로우 버퍼로 이동된 제1 스왑 데이터를 분할하여 제1 내지 제n 유닛 데이터(여기서, n은 양의 정수)로 구분하고, 데이터 스왑 동작을 위해 구분된 제1 스왑 데이터의 제1 내지 제n 유닛 데이터를 순차적으로 제2 로우 버퍼로 이동시킬 수 있다.
또한, 메모리 시스템은 제2 로우 버퍼로 이동된 제2 스왑 데이터를 분할하여 제1 내지 제n 유닛 데이터(여기서, n은 양의 정수)로 구분하고, 데이터 스왑 동작을 위해 구분된 제2 스왑 데이터의 제1 내지 제n 유닛 데이터를 제1 로우 버퍼로 순차적으로 이동시킬 수 있다.
320 단계에서 메모리 시스템의 스왑 제어부는 제2 로우 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터가 스왑 버퍼로 이동 되도록 제어하는 제어 커맨드(L2 Write to SB)를 생성할 수 있다.
예를 들면, 메모리 시스템의 스왑 제어부는 로우 셀렉 후 스왑 데이터가 로우 버퍼에 저장되는데 걸리는 시간인 tRCD(RAS to CAS) 이후에 제어 커맨드(L2 Write to SB)를 생성할 수 있다.
다시 말해, 메모리 시스템은 제2 로우 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터를 스왑 버퍼의 임의의 공간으로 이동시킬 수 있다.
330 단계에서 메모리 시스템의 스왑 제어부는 제1 로우 버퍼로 이동된 제1 스왑 데이터의 제1 유닛 데이터가 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드(L1 Write to L2-RB)를 생성할 수 있다.
다시 말해, 메모리 시스템은 제1 로우 버퍼로 이동된 제1 스왑 데이터의 제1 유닛 데이터를 제2 로우 버퍼의 복수의 영역 중 스왑 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터에 대응되는 영역으로 이동시킬 수 있다.
340 단계에서 메모리 시스템의 스왑 제어부는 스왑 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터가 제1 로우 버퍼로 이동 되도록 제어하는 제어 커맨드(L1 Read from SB)를 생성할 수 있다.
다시 말해, 메모리 시스템은 스왑 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터를 제1 로우 버퍼의 복수의 영역 중 제2 로우 버퍼로 이동된 제1 스왑 데이터의 제1 유닛 데이터에 대응되는 영역으로 이동시킬 수 있다.
350 단계에서 메모리 시스템의 스왑 제어부는 320 내지 340 단계를 반복 수행하여 320 내지 340 단계에 대응되는 제어 커맨드를 반복 생성할 수 있다.
다시 말해, 350 단계에서 메모리 시스템은 제1 로우 버퍼에 저장된 제1 스왑 데이터(제2 내지 제n 유닛 데이터) 전체를 제2 로우 버퍼로 이동시키고, 제2 로우 버퍼에 저장된 제2 스왑 데이터(제2 내지 제n 유닛 데이터) 전체를 제1 로우 버퍼로 이동시킬 수 있다.
360 단계에서 메모리 시스템의 스왑 제어부는 제2 스왑 데이터 전체가 제1 로우 버퍼로 이동되면, 제1 로우 버퍼로 이동된 제2 스왑 데이터가 제1 뱅크에 라이트(Write)되도록 제어하고, 제1 스왑 데이터 전체가 제2 로우 버퍼로 이동되면, 제2 로우 버퍼로 이동된 제1 스왑 데이터가 제2 뱅크에 라이트(Write)되도록 제어할 수 있다.
도 4a 내지 도 4f는 제2 실시예에 따른 메모리 시스템의 동작방법에 관한 다른 예시를 설명하기 위한 도면이다.
도 4a 내지 도 4f를 참조하면, 제2 실시예에 따른 메모리 시스템의 동작방법은 도 2의 (b)를 통해 설명한 제2 실시예에 따른 메모리 시스템에서 수행될 수 있다.
구체적으로, 410 단계에서 메모리 시스템의 스왑 제어부는 제1 레이어에 구비된 복수의 뱅크(bank) 중 제1 뱅크에 구비된 제1 스왑 데이터가 제1 뱅크에 대응되는 제1 로우 버퍼로 이동되고, 제2 레이어에 구비된 복수의 뱅크 중 제2 뱅크에 구비된 제2 스왑 데이터가 제2 뱅크에 대응되는 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
다시 말해, 메모리 시스템은 스왑 데이터가 구비된 뱅크 각각에서의 로우 셀렉(row select)을 통해 스왑 데이터를 대응되는 로우 버퍼에 저장할 수 있다.
일측에 따르면, 스왑 제어부는 스왑 데이터(제1 및 제2 스왑 데이터)를 기설정된 데이터 이동 단위로 분할된 복수의 유닛 데이터로 구분하고, 구분된 복수의 유닛 데이터 각각이 순차적으로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
예를 들면, 기설정된 데이터 이동 단위는 페이지(page) 단위 또는 스왑 버퍼 단위일 수 있다.
420 단계에서 메모리 시스템의 스왑 제어부는 제2 로우 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터가 스왑 버퍼로 이동 되도록 제어하는 제어 커맨드(L2 Write to SB)를 생성할 수 있다.
다시 말해, 메모리 시스템은 제2 로우 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터를 스왑 버퍼의 임의의 공간으로 이동시킬 수 있다.
430 단계에서 메모리 시스템의 스왑 제어부는 제1 로우 버퍼로 이동된 제1 스왑 데이터의 제1 유닛 데이터가 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드(L1 Write to L2-RB)를 생성할 수 있다.
다시 말해, 메모리 시스템은 제1 로우 버퍼로 이동된 제1 스왑 데이터의 제1 유닛 데이터를 제2 로우 버퍼의 복수의 영역 중 스왑 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터에 대응되는 영역으로 이동시킬 수 있다.
440 단계에서 메모리 시스템의 스왑 제어부는 스왑 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터가 제1 로우 버퍼로 이동 되도록 제어하는 제어 커맨드(L1 Read from SB0)를 생성할 수 있다.
또한, 스왑 제어부는 제2 로우 버퍼로 이동된 제2 스왑 데이터의 제2 유닛 데이터가 스왑 버퍼로 이동 되도록 제어하는 제어 커맨드(L2 Write to SB1)를 생성할 수 있다.
예를 들면, 440 단계에서 스왑 제어부를 통해 생성되는 2개의 제어 커맨드(L1 Read from SB0 및 L2 Write to SB1)는 동일한 시간 구간에 생성될 수 있다.
다시 말해, 메모리 시스템은 스왑 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터를 제1 로우 버퍼의 복수의 영역 중 제2 로우 버퍼로 이동된 제1 스왑 데이터의 제1 유닛 데이터에 대응되는 영역으로 이동시킬 수 있다.
또한, 메모리 시스템은 제2 로우 버퍼로 이동된 제2 스왑 데이터의 제2 유닛 데이터를 스왑 버퍼의 임의의 공간으로 이동시킬 수 있다.
예를 들면, 제1 레이어에 구비된 스왑 버퍼는 적어도 둘 이상의 영역(SB0, SB1 등)으로 구분되고 듀얼 포트(dual port)로 구현되어, 동일한 시간 구간에서 데이터의 라이트 및 리드 동작을 동시에 수행할 수 있다.
450 단계에서 메모리 시스템의 스왑 제어부는 420 내지 440 단계를 반복 수행하여 420 내지 440 단계에 대응되는 제어 커맨드를 반복 생성할 수 있다.
다시 말해, 450 단계에서 메모리 시스템은 제1 로우 버퍼에 저장된 제1 스왑 데이터(제2 내지 제n 유닛 데이터) 전체를 제2 로우 버퍼로 이동시키고, 제2 로우 버퍼에 저장된 제2 스왑 데이터(제2 내지 제n 유닛 데이터) 전체를 제1 로우 버퍼로 이동시킬 수 있다.
한편, 460 단계에서 메모리 시스템의 스왑 제어부는 제2 스왑 데이터 전체가 제1 로우 버퍼로 이동되면, 제1 로우 버퍼로 이동된 제2 스왑 데이터가 제1 뱅크에 라이트(write)되도록 제어하고, 제1 스왑 데이터 전체가 제2 로우 버퍼로 이동되면, 제2 로우 버퍼로 이동된 제1 스왑 데이터가 제2 뱅크에 라이트(Write)되도록 제어할 수 있다.
도 5는 일실시예에 따른 메모리 시스템의 제3 실시예를 설명하기 위한 도면이다.
다시 말해, 도 5는 도 1 내지 도 4e를 통해 설명한 일실시예에 따른 메모리 시스템의 다른 예시를 설명하는 도면으로, 이후 도 5를 통해 설명하는 내용 중 일실시예에 따른 메모리 시스템을 통해 설명한 내용과 중복되는 설명은 생략하기로 한다.
도 5를 참조하면, 일실시예에 따른 메모리 시스템의 스왑 제어부는 적어도 하나 이상의 관통 실리콘 비아(through silicon via; TSV) 채널을 통해 서로 연결된 복수의 레이어 중 제1 스왑 버퍼(511)가 구비된 제1 레이어(510)와 제2 스왑 버퍼(521)가 구비된 제2 레이어(520) 간의 데이터 스왑(data swap) 여부를 결정하고, 결정 여부에 따라 제1 레이어(510)와 제2 레이어(520)에 구비된 스왑 데이터의 이동을 제어하는 제어 커맨드를 생성할 수 있다.
다시 말해, 제3 실시예에 따른 메모리 시스템(500)은 채널 또는 레이어 마다 스왑 버퍼가 존재하는 구조로, 동 채널에서 임의의 레이어 또는 뱅크 간의 데이터 스왑 동작을 수행할 수 있으며, 각 레이어 내부에서는 두개의 뱅크간의 데이터 스왑 동작을 수행할 수 있다.
예를 들면, 스왑 제어부는 도 1에 도시된 스왑 제어부(120)일 수 있고, 제1 레이어(510)는 메모리 레이어이며, 제2 레이어(520)는 스토리지 레이어일 수 있다.
또한, 제1 레이어(510)는 스토리지 레이어이고, 제2 레이어(520)는 메모리 레이어일 수도 있다.
일측에 따르면, 복수의 레이어 각각은 복수의 TSV 채널 각각에 대응되는 영역에 복수의 뱅크(bank)를 구비할 수 있으며, 복수의 뱅크 각각은 로우 버퍼(row buffer)를 구비할 수 있다.
예를 들면, 제1 레이어(510)의 복수의 뱅크 중 제1 뱅크(512)는 대응되는 제1 로우 버퍼(513)를 구비하고, 제3 뱅크(514)는 대응되는 제3 로우 버퍼(515)를 구비할 수 있다.
또한, 제2 레이어(520)의 복수의 뱅크 중 제2 뱅크(522)는 대응되는 제2 로우 버퍼(523)를 구비하고, 제4 뱅크(524)는 대응되는 제4 로우 버퍼(525)를 구비할 수 있다.
제3 실시예에 따른 메모리 시스템의 동작방법은 이후 실시예 도 6a 내지 도 6h를 통해 보다 구체적으로 설명하기로 한다.
도 6a 내지 도 6h는 제3 실시예에 따른 메모리 시스템의 동작방법에 관한 예시를 설명하기 위한 도면이다.
도 6a 내지 도 6h를 참조하면, 제3 실시예에 따른 메모리 시스템의 동작방법은 도 5를 통해 설명한 제3 실시예에 따른 메모리 시스템에서 수행될 수 있다.
구체적으로, 610 단계에서 메모리 시스템의 스왑 제어부는 제1 레이어에 구비된 복수의 뱅크(bank) 중 제1 뱅크에 구비된 제1 스왑 데이터가 제1 뱅크에 대응되는 제1 로우 버퍼로 이동되고, 제2 레이어에 구비된 복수의 뱅크 중 제2 뱅크에 구비된 제2 스왑 데이터가 제2 뱅크에 대응되는 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
다시 말해, 메모리 시스템은 스왑 데이터가 구비된 뱅크 각각에서의 로우 셀렉(row select)을 통해 스왑 데이터를 대응되는 로우 버퍼에 저장할 수 있다.
일측에 따르면, 스왑 제어부는 스왑 데이터(제1 및 제2 스왑 데이터)를 기설정된 데이터 이동 단위로 분할된 복수의 유닛 데이터로 구분하고, 구분된 복수의 유닛 데이터 각각이 순차적으로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
예를 들면, 기설정된 데이터 이동 단위는 페이지(page) 단위 또는 스왑 버퍼 단위일 수 있다.
보다 구체적인 예를 들면, 메모리 시스템은 제1 로우 버퍼로 이동된 제1 스왑 데이터를 분할하여 제1 내지 제n 유닛 데이터(여기서, n은 양의 정수)로 구분하고, 데이터 스왑 동작을 위해 구분된 제1 스왑 데이터의 제1 내지 제n 유닛 데이터를 순차적으로 제2 로우 버퍼로 이동시킬 수 있다.
또한, 메모리 시스템은 제2 로우 버퍼로 이동된 제2 스왑 데이터를 분할하여 제1 내지 제n 유닛 데이터(여기서, n은 양의 정수)로 구분하고, 데이터 스왑 동작을 위해 구분된 제2 스왑 데이터의 제1 내지 제n 유닛 데이터를 제1 로우 버퍼로 순차적으로 이동시킬 수 있다.
620 단계에서 메모리 시스템의 스왑 제어부는 제2 로우 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터가 제1 스왑 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성(L2 Write to SB1)할 수 있다.
다시 말해, 메모리 시스템은 제2 로우 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터를 제1 스왑 버퍼의 임의의 공간으로 이동시킬 수 있다.
630 단계에서 메모리 시스템의 스왑 제어부는 제1 로우 버퍼로 이동된 제1 스왑 데이터의 제1 유닛 데이터가 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드(L1 Write to L2-RB)를 생성할 수 있다.
다시 말해, 메모리 시스템은 제1 로우 버퍼로 이동된 제1 스왑 데이터의 제1 유닛 데이터를 제2 로우 버퍼의 복수의 영역 중 제1 스왑 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터에 대응되는 영역으로 이동시킬 수 있다.
640 단계에서 메모리 시스템의 스왑 제어부는 제1 스왑 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터가 제1 로우 버퍼로 이동 되도록 제어하는 제어 커맨드(L1 Read from SB1)를 생성할 수 있다.
또한, 메모리 시스템의 스왑 제어부는 제2 로우 버퍼로 이동된 제2 스왑 데이터의 제2 유닛 데이터가 제2 스왑 버퍼로 이동 되도록 제어하는 제어 커맨드(L2 Write to SB2)를 생성할 수 있다.
예를 들면, 640 단계에서 스왑 제어부를 통해 생성되는 2개의 제어 커맨드(L1 Read from SB1, L2 Write to SB2)는 동일한 시간 구간에 생성될 수 있다.
다시 말해, 메모리 시스템은 제1 스왑 버퍼로 이동된 제2 스왑 데이터의 제1 유닛 데이터를 제1 로우 버퍼의 복수의 영역 중 제2 로우 버퍼로 이동된 제1 스왑 데이터의 제1 유닛 데이터에 대응되는 영역으로 이동시킬 수 있다.
또한, 메모리 시스템은 제2 로우 버퍼로 이동된 제2 스왑 데이터의 제2 유닛 데이터를 제2 스왑 버퍼의 임의의 공간으로 이동시킬 수 있다.
650 단계에서 메모리 시스템의 스왑 제어부는 제1 로우 버퍼로 이동된 제1 스왑 데이터의 제2 유닛 데이터가 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드(L1 Write to L2-RB)를 생성할 수 있다.
다시 말해, 메모리 시스템은 제1 로우 버퍼로 이동된 제1 스왑 데이터의 제2 유닛 데이터를 제2 로우 버퍼의 복수의 영역 중 제2 스왑 버퍼로 이동된 제2 스왑 데이터의 제2 유닛 데이터에 대응되는 영역으로 이동시킬 수 있다.
660 단계에서 메모리 시스템의 스왑 제어부는 제2 스왑 버퍼로 이동된 제2 스왑 데이터의 제2 유닛 데이터가 제1 로우 버퍼로 이동 되도록 제어하는 제어 커맨드(L1 Read from SB2)를 생성할 수 있다.
다시 말해, 메모리 시스템은 제2 스왑 버퍼로 이동된 제2 스왑 데이터의 제2 유닛 데이터를 제1 로우 버퍼의 복수의 영역 중 제2 로우 버퍼로 이동된 제1 스왑 데이터의 제2 유닛 데이터에 대응되는 영역으로 이동시킬 수 있다.
670 단계에서 메모리 시스템의 스왑 제어부는 제어부는 620 내지 660 단계를 반복 수행하여 620 내지 660 단계에 대응되는 제어 커맨드를 반복 생성할 수 있다.
다시 말해, 670 단계에서 메모리 시스템은 제1 로우 버퍼에 저장된 제1 스왑 데이터(제3 내지 제n 유닛 데이터) 전체를 제2 로우 버퍼로 이동시키고, 제2 로우 버퍼에 저장된 제2 스왑 데이터(제3 내지 제n 유닛 데이터) 전체를 제1 로우 버퍼로 이동시킬 수 있다.
680 단계에서 메모리 시스템의 스왑 제어부는 제2 스왑 데이터 전체가 제1 로우 버퍼로 이동되면, 제1 로우 버퍼로 이동된 제2 스왑 데이터가 제1 뱅크에 라이트(Write)되도록 제어하고, 제1 스왑 데이터 전체가 제2 로우 버퍼로 이동되면, 제2 로우 버퍼로 이동된 제1 스왑 데이터가 제2 뱅크에 라이트(Write)되도록 제어할 수 있다.
다시 말해, 메모리 시스템은 제1 스왑 데이터와 제2 스왑 데이터가 대응되는 제1 내지 제2 로우 버퍼로 이동이 완료되면, 이동이 완료된 스왑 데이터를 대응되는 뱅크에 라이트하기 위한 동작을 수행할 수 있다.
도 7은 일실시예에 따른 메모리 시스템의 제4 실시예를 설명하기 위한 도면이다.
다시 말해, 도 7은 도 1 내지 도 6h를 통해 설명한 일실시예에 따른 메모리 시스템의 다른 예시를 설명하는 도면으로, 이후 도 7을 통해 설명하는 내용 중 일실시예에 따른 메모리 시스템을 통해 설명한 내용과 중복되는 설명은 생략하기로 한다.
도 7을 참조하면, 일실시예에 따른 메모리 시스템의 스왑 제어부는 적어도 하나 이상의 관통 실리콘 비아(through silicon via; TSV) 채널을 통해 서로 연결된 복수의 레이어 중 제1 스왑 버퍼(711)가 구비된 제1 레이어(710)와 제2 스왑 버퍼(721)가 구비된 제2 레이어(720) 간의 데이터 스왑(data swap) 여부를 결정하고, 결정 여부에 따라 제1 레이어(710)와 제2 레이어(720)에 구비된 스왑 데이터의 이동을 제어하는 제어 커맨드를 생성할 수 있다.
일측에 따르면, 제1 스왑 버퍼 및 제2 스왑 버퍼는 제1 레이어(710) 및 제2 레이어(720)에 구비된 복수의 뱅크(bank) 각각에 구비될 수 있다.
다시 말해, 제3 실시예예 따른 메모리 시스템(700)은 각 레이어에 구비된 뱅크별로 스왑 버퍼가 존재하는 구조로, 동 채널에서 임의의 레이어 또는 뱅크간의 데이터 스왑 동작을 수행할 수 있으며, 각 레이어 내부에서는 복수의 뱅크간의 데이터 스왑 동작을 동시에 수행할 수 있다.
예를 들면, 스왑 제어부는 도 1에 도시된 스왑 제어부(120)일 수 있고, 제1 레이어(710)는 메모리 레이어이며, 제2 레이어(720)는 스토리지 레이어일 수 있다.
또한, 제1 레이어(710)는 스토리지 레이어이고, 제2 레이어(720)는 메모리 레이어일 수도 있다.
일측에 따르면, 복수의 레이어 각각은 복수의 TSV 채널 각각에 대응되는 영역에 복수의 뱅크(bank)를 구비할 수 있으며, 복수의 뱅크 각각은 로우 버퍼(row buffer)를 구비할 수 있다.
예를 들면, 제1 레이어(710)의 복수의 뱅크 중 제1 뱅크(712)는 대응되는 제1 로우 버퍼(713)를 구비할 수 있다. 또한, 제2 레이어(720)의 복수의 뱅크 중 제2 뱅크(722)는 대응되는 제2 로우 버퍼(723)를 구비할 수 있다.
도 8a 내지 도 8c는 일실시예예 따른 메모리 시스템의 뱅크 레벨 인터리빙 동작을 설명하기 위한 도면이다.
도 8a 내지 도 8c를 참조하면, 참조부호 810는 통상적인 인터리빙 동작을 나타내고, 참조부호 820은 데이터 스왑 동작 시 인터리빙 동작을 나타내며, 참조부호 830은 일실시예에 따른 메모리 시스템에서 데이터 스왑 동작 시 인터리빙 동작을 수행하는 예시를 나타낸다.
참조부호 810 내지 820에서 'tRCD(RAS to CAS)'는 로우 선택(row select) 후 해당 데이터들이 로우 버퍼(row buffer)에 전부 저장될 때까지 걸리는 시간을 나타내고, 'tBURST'는 단위 데이터가 나오는 시간을 나타내며, 'tWR'은 로우 버퍼에 데이터를 저장한 후 해당 데이터가 실제 메모리로 보내지는데 필요한 시간을 나타낸다.
예를 들면, tBURST는 64B cacheline/4KB page의 경우 64번 보내면 1 page가 전송될 수 있다.
또한, 'PRE'는 로우를 닫음으로써 다른 로우에 접근이 가능하도록 하는 프리차지(precharge) 커맨드를 나타내고, 'tRP'는 프리차지 하는데 걸리는 시간을 나타내며, 'ACT(RAS)'는 로우를 선택하여 해당 로우의 데이터가 로우 버퍼로 저장되도록 하는 커맨드를 나타낸다.
일반적으로, 메모리 시스템은 서로 다른 뱅크(bank)는 독립적으로 커맨드를 수신해야만 동작이 가능하며, 데이터의 이동 동작은 TSV 채널을 통해 수행되기 때문에 한번에 단일 뱅크의 데이터만을 사용할 수 있다.
그러나, 일실시예에 따른 메모리 시스템은 참조부호 820에 도시된 것과 같이, 기설정된 이동 단위로 뱅크 레벨의 인터리빙(bank-level interleaving)을 수행하여 TSV 채널의 대역폭 사용률을 향상 시킬 수 있다.
예를 들면, 기설정된 데이터 이동 단위는 페이지(page) 단위 또는 스왑 버퍼 단위일 수 있다.
즉, 본 발명은 스왑 데이터 전체를 로우 버퍼로 이동시킨 후에, 로우 버퍼에서 대응되는 뱅크의 서브 어레이로 스왑 데이터 전체를 라이트할 수 있으며, 뱅크의 서브 어레이로 데이터가 라이트되는 매우 긴 시간 구간 동안 대기하지 않고, 라이트 동작이 진행되는 시간 구간에서 다른 뱅크의 데이터 스왑 동작을 진행함으로써, TSV 채널의 대역폭 사용률을 향상시킬 수 있다.
이하에서는, 참조부호 830을 참조하여 일실시예예 따른 메모리 시스템에서 데이터 스왑 동작 시 인터리빙 동작을 수행하는 예시에 대해 보다 구체적으로 설명하기로 한다.
참조부호 830에서는 제1 실시예에 따른 메모리 시스템을 기준으로 인터리빙 동작을 설명하나, 제2 내지 제4 실시예에 따른 메모리 시스템에서도 동일한 방법으로 인터리빙 동작이 수행될 수 있다.
예를 들면, 참조부호 830의 동작은 제1 실시예예 따른 메모리 시스템의 360 단계, 제2 실시예에 따른 메모리 시스템의 460 단계, 제3 실시예에 메모리 시스템의 680 단계에서 수행될 수 있다.
구체적으로, 참조부호 830에 따르면, 메모리 시스템의 스왑 제어부는 제2 스왑 데이터 전체가 제1 로우 버퍼로 이동되면, 제1 로우 버퍼로 이동된 제2 스왑 데이터가 제1 뱅크에 라이트(Write)되도록 제어하고, 제1 뱅크에 라이트 되는 동안 제1 레이어에 구비된 복수의 뱅크(bank) 중 제3 뱅크에 구비된 제3 스왑 데이터가 제3 뱅크에 대응되는 제3 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
또한, 메모리 시스템의 스왑 제어부는 제1 스왑 데이터 전체가 제2 로우 버퍼로 이동되면, 제2 로우 버퍼로 이동된 제1 스왑 데이터가 제2 뱅크에 라이트(Write)되도록 제어하고, 제2 뱅크에 라이트 되는 동안 제2 레이어에 구비된 복수의 뱅크(bank) 중 제4 뱅크에 구비된 제4 스왑 데이터가 제4 뱅크에 대응되는 제4 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성할 수 있다.
다시 말해, 메모리 시스템은 제1 스왑 데이터와 제2 스왑 데이터가 대응되는 제1 내지 제2 로우 버퍼로 이동이 완료되면, 이동이 완료된 스왑 데이터를 대응되는 뱅크에 라이트하기 위한 동작을 수행하고, 라이트 동작이 수행되는 동안 제1 레이어와 제2 레이어의 다른 뱅크에서 데이터 스왑 동작이 수행되도록 제어할 수 있다.
즉, 본 발명은 로우 버퍼에서 뱅크의 서브 어레이로 데이터가 라이트되는 매우 긴 시간 구간 동안 대기하지 않고, 라이트 동작이 진행되는 시간 구간에서 다른 뱅크의 데이터 스왑 동작을 진행함으로써, TSV 채널의 대역폭 사용률 향상을 통해 스왑 속도를 향상시킬 수 있다.
결국, 본 발명을 이용하면, 적어도 하나 이상의 레이어에 구비된 스왑 버퍼를 이용하여 데이터 스왑 동작을 최적화함으로써, 스왑 속도를 향상시킬 수 있다.
또한, 기설정된 이동 단위로 뱅크 레벨의 인터리빙을 수행하여 TSV 채널의 대역폭 사용률을 향상시킬 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
200: 메모리 시스템 210: 제1 레이어
211: 스왑 버퍼 212: 제1 뱅크
213: 제1 로우 버퍼 220: 제2 레이어
221: 제2 뱅크 222: 제2 로우 버퍼
211: 스왑 버퍼 212: 제1 뱅크
213: 제1 로우 버퍼 220: 제2 레이어
221: 제2 뱅크 222: 제2 로우 버퍼
Claims (19)
- 적어도 하나 이상의 관통 실리콘 비아(through silicon via; TSV) 채널을 통해 서로 연결된 복수의 레이어 및
상기 복수의 레이어 중 스왑 버퍼가 구비된 제1 레이어와 제2 레이어 간의 데이터 스왑(data swap) 여부를 결정하고, 상기 결정에 따라 상기 제1 레이어의 제1 스왑 데이터를 상기 제2 레이어로 이동하고, 상기 제2 레이어의 제2 스왑 데이터를 상기 제1 레이어로 이동하도록 제어하는 제어 커맨드를 생성하는 스왑 제어부를 포함하고,
상기 스왑 버퍼는,
상기 제1 스왑 데이터의 이동 및 상기 제2 스왑 데이터의 이동이 동시에 진행되도록 구비되는
메모리 시스템. - 제1항에 있어서,
상기 스왑 제어부는,
상기 제1 스왑 데이터에 포함되는 복수의 유닛 데이터 및 상기 제2 스왑 데이터에 포함되는 복수의 유닛 데이터가 상기 관통 실리콘 비아 채널을 통해 번갈아가며 이동되도록 제어하는 제어 커맨드를 생성하는
메모리 시스템. - 제1항에 있어서,
상기 스왑 제어부는,
상기 제1 레이어에 구비된 복수의 뱅크(bank) 중 제1 뱅크에 구비된 제1 스왑 데이터가 상기 제1 뱅크에 대응되는 제1 로우 버퍼로 이동되고, 상기 제2 레이어에 구비된 복수의 뱅크 중 제2 뱅크에 구비된 제2 스왑 데이터가 상기 제2 뱅크에 대응되는 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성하는
메모리 시스템. - 제3항에 있어서,
상기 스왑 제어부는,
상기 제2 로우 버퍼로 이동된 상기 제2 스왑 데이터의 제1 유닛 데이터가 상기 스왑 버퍼로 이동 되도록 제어하고, 상기 제1 로우 버퍼로 이동된 상기 제1 스왑 데이터의 제1 유닛 데이터가 상기 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성하는
메모리 시스템. - 제4항에 있어서,
상기 스왑 제어부는,
상기 스왑 버퍼로 이동된 상기 제2 스왑 데이터의 제1 유닛 데이터가 상기 제1 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성하는
메모리 시스템. - 제4항에 있어서,
상기 스왑 제어부는,
상기 스왑 버퍼로 이동된 상기 제2 스왑 데이터의 제1 유닛 데이터가 상기 제1 로우 버퍼로 이동 되고, 상기 제2 로우 버퍼로 이동된 상기 제2 스왑 데이터의 제2 유닛 데이터가 상기 스왑 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성하는
메모리 시스템. - 제3항에 있어서,
상기 스왑 제어부는,
상기 제2 스왑 데이터 전체가 상기 제1 로우 버퍼로 이동되면, 상기 제1 로우 버퍼로 이동된 상기 제2 스왑 데이터가 상기 제1 뱅크에 라이트(Write)되도록 제어하는 제어 커맨드를 생성하는
메모리 시스템. - 제7항에 있어서,
상기 스왑 제어부는,
상기 제1 뱅크에 라이트 되는 동안 상기 제1 레이어에 구비된 복수의 뱅크(bank) 중 제3 뱅크에 구비된 제3 스왑 데이터가 상기 제3 뱅크에 대응되는 제3 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성하는
메모리 시스템. - 적어도 하나 이상의 관통 실리콘 비아(through silicon via; TSV) 채널을 통해 서로 연결된 복수의 레이어 및
상기 복수의 레이어 중 제1 스왑 버퍼가 구비된 제1 레이어와 제2 스왑 버퍼가 구비된 제2 레이어 간의 데이터 스왑(data swap) 여부를 결정하고, 상기 결정에 따라 상기 제1 레이어의 제1 스왑 데이터를 상기 제2 레이어로 이동하고, 상기 제2 레이어의 제2 스왑 데이터를 상기 제1 레이어로 이동하도록 제어 커맨드를 생성하는 스왑 제어부를 포함하고,
상기 제1 스왑 버퍼 및 상기 제2 스왑 버퍼는,
상기 제1 스왑 데이터의 이동 및 상기 제2 스왑 데이터의 이동이 동시에 진행되도록 구비되는
메모리 시스템. - 제9항에 있어서,
상기 스왑 제어부는,
상기 제1 스왑 데이터에 포함되는 복수의 유닛 데이터 및 상기 제2 스왑 데이터에 포함되는 복수의 유닛 데이터가 상기 관통 실리콘 비아 채널을 통해 번갈아가며 이동되도록 제어하는 제어 커맨드를 생성하는
메모리 시스템. - 제9항에 있어서,
상기 제1 스왑 버퍼 및 상기 제2 스왑 버퍼는,
상기 제1 레이어 및 상기 제2 레이어에 구비된 복수의 뱅크(bank) 각각에 구비되는
메모리 시스템. - 제9항에 있어서,
상기 스왑 제어부는,
상기 제1 레이어에 구비된 복수의 뱅크(bank) 중 제1 뱅크에 구비된 상기 제1 스왑 데이터가 상기 제1 뱅크에 대응되는 제1 로우 버퍼로 이동되고, 상기 제2 레이어에 구비된 복수의 뱅크 중 제2 뱅크에 구비된 상기 제2 스왑 데이터가 상기 제2 뱅크에 대응되는 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성하며,
상기 제1 스왑 데이터는 제1 및 제2 유닛 데이터를 포함하고,
상기 제2 스왑 데이터는 제3 및 제4 유닛 데이터를 포함하는
메모리 시스템. - 제12항에 있어서,
상기 스왑 제어부는,
상기 제2 로우 버퍼로 이동된 상기 제2 스왑 데이터의 상기 제3 유닛 데이터가 상기 제1 스왑 버퍼로 이동 되도록 제어하고, 상기 제1 로우 버퍼로 이동된 상기 제1 스왑 데이터의 상기 제1 유닛 데이터가 상기 제2 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성하는
메모리 시스템. - 제13항에 있어서,
상기 스왑 제어부는,
상기 제1 스왑 버퍼로 이동된 상기 제2 스왑 데이터의 상기 제3 유닛 데이터가 상기 제1 로우 버퍼로 이동 되고, 상기 제2 로우 버퍼로 이동된 상기 제2 스왑 데이터의 상기 제4 유닛 데이터가 상기 제2 스왑 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성하는
메모리 시스템. - 제14항에 있어서,
상기 스왑 제어부는,
상기 제1 로우 버퍼로 이동된 상기 제1 스왑 데이터의 상기 제2 유닛 데이터가 상기 제2 로우 버퍼로 이동되고, 상기 제2 스왑 버퍼로 이동된 상기 제2 스왑 데이터의 상기 제4 유닛 데이터가 상기 제1 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성하는
메모리 시스템. - 제13항에 있어서,
상기 스왑 제어부는,
상기 제2 스왑 데이터 전체가 상기 제1 로우 버퍼로 이동되면, 상기 제1 로우 버퍼로 이동된 상기 제2 스왑 데이터가 상기 제1 뱅크에 라이트(Write)되도록 제어하는 제어 커맨드를 생성하는
메모리 시스템. - 제16항에 있어서,
상기 스왑 제어부는,
상기 제1 뱅크에 라이트 되는 동안 상기 제1 레이어에 구비된 복수의 뱅크(bank) 중 제3 뱅크에 구비된 제3 스왑 데이터가 상기 제3 뱅크에 대응되는 제3 로우 버퍼로 이동 되도록 제어하는 제어 커맨드를 생성하는
메모리 시스템.
- 제9항에 있어서,
상기 제1 스왑 버퍼 및 상기 제2 스왑 버퍼는
동일한 시간 구간에서 데이터의 라이트 동작 및 리드 동작을 동시에 수행하는
메모리 시스템. - 메모리 시스템에 있어서,
적어도 하나 이상의 관통 실리콘 비아(through silicon via; TSV) 채널을 통해 서로 연결된 제1 및 제2 레이어; 및
상기 제1 및 제2 레이어 간 데이터 스왑(data swap)을 제어하는 스왑 제어부를 포함하고,
상기 스왑 제어부는
상기 제1 레이어에 포함된 제1 뱅크에 저장된 제1 스왑 데이터가 리드(read)되어 상기 제1 뱅크에 대응하는 제1 로우 버퍼로 이동되고, 상기 제2 레이어에 포함된 제2 뱅크에 저장된 제2 스왑 데이터가 리드되어 상기 제2 뱅크에 대응하는 제2 로우 버퍼로 이동되고, 상기 제2 로우 버퍼로 이동된 제2 스왑 데이터가 상기 제1 레이어에 포함된 스왑 버퍼로 이동되고, 상기 제1 로우 버퍼로 이동된 제1 스왑 데이터가 상기 제2 로우 버퍼로 이동된 후 상기 제2 뱅크에 라이트(write)되고, 상기 스왑 버퍼로 이동된 상기 제2 스왑 데이터가 상기 제1 로우 버퍼로 이동된 후 상기 제1 뱅크에 라이트되도록 제어하는
메모리 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190091612A KR102322727B1 (ko) | 2019-07-29 | 2019-07-29 | 데이터 스왑을 위한 메모리 시스템 및 그 동작방법 |
US16/932,234 US20210034286A1 (en) | 2019-07-29 | 2020-07-17 | Memory system for data swap and operating method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190091612A KR102322727B1 (ko) | 2019-07-29 | 2019-07-29 | 데이터 스왑을 위한 메모리 시스템 및 그 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210013870A KR20210013870A (ko) | 2021-02-08 |
KR102322727B1 true KR102322727B1 (ko) | 2021-11-05 |
Family
ID=74258564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190091612A KR102322727B1 (ko) | 2019-07-29 | 2019-07-29 | 데이터 스왑을 위한 메모리 시스템 및 그 동작방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210034286A1 (ko) |
KR (1) | KR102322727B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011081730A (ja) | 2009-10-09 | 2011-04-21 | Elpida Memory Inc | 半導体装置及びこれを備える情報処理システム |
JP2012155815A (ja) | 2011-01-28 | 2012-08-16 | Elpida Memory Inc | 半導体装置 |
JP2014530422A (ja) * | 2011-10-27 | 2014-11-17 | ▲ホア▼▲ウェイ▼技術有限公司 | バッファマッピングを制御するための方法およびバッファシステム |
KR101648725B1 (ko) | 2015-06-15 | 2016-08-30 | 서울대학교산학협력단 | Ssd를 이용한 메모리 관리 방법 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110137565A (ko) * | 2010-06-17 | 2011-12-23 | 삼성전자주식회사 | 반도체 칩 패키지 및 반도체 칩 패키지의 제조 방법 |
US9195575B2 (en) * | 2013-05-17 | 2015-11-24 | Coherent Logix, Incorporated | Dynamic reconfiguration of applications on a multi-processor embedded system |
KR102254099B1 (ko) * | 2014-05-19 | 2021-05-20 | 삼성전자주식회사 | 메모리 스와핑 처리 방법과 이를 적용하는 호스트 장치, 스토리지 장치 및 데이터 처리 시스템 |
US9954533B2 (en) * | 2014-12-16 | 2018-04-24 | Samsung Electronics Co., Ltd. | DRAM-based reconfigurable logic |
US9959205B2 (en) * | 2015-05-13 | 2018-05-01 | Wisconsin Alumni Research Foundation | Shared row buffer system for asymmetric memory |
KR20170046862A (ko) | 2015-10-21 | 2017-05-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US9997232B2 (en) * | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
-
2019
- 2019-07-29 KR KR1020190091612A patent/KR102322727B1/ko active IP Right Grant
-
2020
- 2020-07-17 US US16/932,234 patent/US20210034286A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011081730A (ja) | 2009-10-09 | 2011-04-21 | Elpida Memory Inc | 半導体装置及びこれを備える情報処理システム |
JP2012155815A (ja) | 2011-01-28 | 2012-08-16 | Elpida Memory Inc | 半導体装置 |
JP2014530422A (ja) * | 2011-10-27 | 2014-11-17 | ▲ホア▼▲ウェイ▼技術有限公司 | バッファマッピングを制御するための方法およびバッファシステム |
KR101648725B1 (ko) | 2015-06-15 | 2016-08-30 | 서울대학교산학협력단 | Ssd를 이용한 메모리 관리 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20210034286A1 (en) | 2021-02-04 |
KR20210013870A (ko) | 2021-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11693783B2 (en) | Apparatuses and methods for cache operations | |
US11016811B2 (en) | Apparatuses and methods to determine timing of operations | |
US11010085B2 (en) | Apparatuses and methods for data movement | |
US10482948B2 (en) | Apparatuses and methods for data movement | |
US9940990B1 (en) | Data shift apparatuses and methods | |
US11094371B2 (en) | Memory device for processing operation and method of operating the same | |
EP2737383B1 (en) | Flash-dram hybrid memory module | |
US11194579B2 (en) | Memory device supporting skip calculation mode and method of operating the same | |
CN111679784B (zh) | 存储装置和操作存储装置的方法 | |
US20180115496A1 (en) | Mechanisms to improve data locality for distributed gpus | |
US6438062B1 (en) | Multiple memory bank command for synchronous DRAMs | |
US10741241B2 (en) | Apparatuses and methods for subarray addressing in a memory device | |
US11276459B2 (en) | Memory die including local processor and global processor, memory device, and electronic device | |
US11410717B2 (en) | Apparatuses and methods for in-memory operations | |
KR20200108768A (ko) | 연산 처리를 수행하는 메모리 장치 및 메모리 장치의 동작방법 | |
US9176906B2 (en) | Memory controller and memory system including the same | |
KR102322727B1 (ko) | 데이터 스왑을 위한 메모리 시스템 및 그 동작방법 | |
Kim et al. | Exploiting the dram microarchitecture to increase memory-level parallelism | |
JP2019200793A (ja) | 半導体システム及びその動作方法 | |
US20240168896A1 (en) | Memory controller, electric system including the same and method of controlling memory access | |
KR20120061563A (ko) | 반도체 메모리 장치 및 그 동작 방법 | |
Oh | Architecting Memory Systems for Emerging Technologies | |
KR20230082529A (ko) | 리프레쉬 동작에서 파워 노이즈를 감소시킨 메모리 장치 및 그 동작방법 | |
KR20210156058A (ko) | 인-메모리 프로세싱을 수행하는 메모리 디바이스 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |