KR20200016116A - 메모리 장치 및 메모리 시스템 - Google Patents
메모리 장치 및 메모리 시스템 Download PDFInfo
- Publication number
- KR20200016116A KR20200016116A KR1020180091442A KR20180091442A KR20200016116A KR 20200016116 A KR20200016116 A KR 20200016116A KR 1020180091442 A KR1020180091442 A KR 1020180091442A KR 20180091442 A KR20180091442 A KR 20180091442A KR 20200016116 A KR20200016116 A KR 20200016116A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- data processing
- restore
- logic
- accelerator
- Prior art date
Links
Images
Classifications
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0626—Reducing size or complexity of storage systems
-
- 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/0658—Controller construction 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Advance Control (AREA)
Abstract
본 개시의 기술적 사상의 일측면에 따른 메모리 장치는, 복수의 메모리들 및 메모리 컨트롤러의 로드를 분산하기 위해 상기 메모리들에 대한 메모리 동작을 수행하는 메모리 가속기(accelerator)를 포함하며, 상기 메모리 가속기는, 상기 메모리 컨트롤러의 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 동작을 수행하기 위한 호환 가능 로직을 포함하는 것을 특징으로 한다.
Description
본 개시의 기술적 사상은 데이터 가공/복원 동작에서의 메모리 컨트롤러(또는, 호스트)와 메모리 장치간 호환을 보장하기 위한 메모리 장치 및 메모리 시스템에 관한 것이다.
메모리 시스템 내의 메모리 가속기는 메모리 컨트롤러의 로드를 분산하기 위한 메모리 동작을 수행하는 것으로 메모리 컨트롤러와 메모리 가속기는 메모리 시스템 내의 동일한 메모리를 공유할 수 있다. 동일한 메모리를 공유하여 메모리 동작을 수행하기 때문에, 메모리 컨트롤러와 메모리 가속기간의 호환성 보장은 중요한 이슈로 대두되고 있는 실정이다.
본 개시의 기술적 사상이 해결하려는 과제는 메모리 컨트롤러(또는, 호스트)의 로드를 분산시키기 위한 메모리 동작을 수행하는 메모리 가속기가 메모리 컨트롤러의 지원 가능한 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 동작을 안정적이고, 효율적으로 수행할 수 있도록 하는 메모리 장치 및 메모리 시스템을 제공하는 데에 있다.
상기와 같은 목적을 달성하기 위하여 메모리 장치는, 복수의 메모리들 및 메모리 컨트롤러의 로드를 분산하기 위해 상기 메모리들에 대한 메모리 동작을 수행하는 메모리 가속기(accelerator)를 포함하며, 상기 메모리 가속기는, 상기 메모리 컨트롤러의 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 동작을 수행하기 위한 호환 가능 로직을 포함하는 것을 특징으로 한다.
본 개시의 다른 측면에 따른 메모리 시스템은, 복수의 메모리들, 상기 메모리들에 대한 제1 메모리 동작을 수행하는 메모리 컨트롤러 및 상기 메모리들에 대한 제2 메모리 동작을 수행하는 메모리 가속기를 포함하며, 상기 메모리 가속기는, 상기 제2 메모리 동작을 수행할 때에, 상기 메모리 컨트롤러의 상기 제1 메모리 동작 수행시에 기반이되는 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 타입으로 설정되는 호환 가능 로직을 포함하는 것을 특징으로 한다.
본 개시의 또 다른 측면에 따른 메모리 시스템은, 데이터 가공/복원 동작을 지원하기 위한 호환 가능 로직이 구비된 제1 메모리 장치, 상기 데이터 가공/복원 동작을 지원하지 않는 제2 메모리 장치 및 상기 제1 메모리 장치 및 상기 제2 메모리 장치를 제어하는 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는, 상기 제1 메모리 장치에 대한 메모리 동작시에 수행되는 제1 데이터 가공/복원 동작을 위한 제1 데이터 가공/복원 로직 및 상기 제2 메모리 장치에 대한 메모리 동작시에 수행되는 제2 데이터 가공/복원 동작을 위한 제2 데이터 가공/복원 로직을 포함하며, 상기 호환 가능 로직은, 상기 제1 데이터 가공/복원 로직에 대응하는 데이터 가공/복원 타입으로 설정된 것을 특징으로 한다.
본 개시의 일 실시예에 따른 메모리 장치의 호환 가능 로직은 메모리 컨트롤러가 지원하는 데이터 가공/복원 타입에 부합하도록 호환될 수 있으며, 이에 따라, 메모리 가속기는 메모리 컨트롤러의 로드를 줄이기 위한 메모리 동작을 원활하게 수행할 수 있는 효과가 있다.
도 1은 본 개시의 일 실시 예에 따른 컴퓨팅 시스템을 개략적으로 나타낸 도면이다.
도 2는 본 개시의 일 실시 예에 따른 메모리 시스템을 나타내는 블록도이다.
도 3은 도 2의 데이터 가공/복원 로직을 구체적으로 나타내는 블록도이다.
도 4는 도 2의 메모리 가속기의 메모리 컨트롤러와의 호환을 위한 동작을 설명하기 위한 순서도이다.
도 5는 본 개시의 일 실시 예에 따른 메모리 시스템을 나타낸 블록도이다.
도 6은 본 개시의 일 실시 예에 따른 메모리 시스템을 나타낸 블록도이다.
도 7은 도 6의 메모리 가속기의 메모리 컨트롤러와의 호환을 위한 동작을 설명하기 위한 순서도이다.
도 8은 본 개시의 일 실시 예에 따른 이종의 메모리 장치들과 연결된 메모리 컨트롤러의 구조를 설명하기 위한 메모리 시스템의 블록도이다.
도 9a 및 도 9b는 호환 가능 로직을 인에이블/디스에이블 시키는 동작을 설명하기 위한 메모리 시스템의 블록도이다.
도 10은 도 9a의 메모리 가속기의 메모리 컨트롤러와의 호환을 위한 동작을 설명하기 위한 순서도이다.
도 11은 메모리 시스템의 일 구현 예를 설명하기 위한 블록도이다.
도 12는 본 개시의 일 실시 예에 따른 적층 구조의 메모리 장치를 나타내는 블록도이다.
도 13은 본 개시의 일 실시 예에 따라 복수의 반도체 메모리 패키지들을 포함하는 반도체 메모리 모듈을 나타내는 도면이다.
도 14는 본 개시의 일 실시 예에 따른 메모리 장치를 모바일 시스템에 응용한 예를 나타내는 블록도이다.
도 2는 본 개시의 일 실시 예에 따른 메모리 시스템을 나타내는 블록도이다.
도 3은 도 2의 데이터 가공/복원 로직을 구체적으로 나타내는 블록도이다.
도 4는 도 2의 메모리 가속기의 메모리 컨트롤러와의 호환을 위한 동작을 설명하기 위한 순서도이다.
도 5는 본 개시의 일 실시 예에 따른 메모리 시스템을 나타낸 블록도이다.
도 6은 본 개시의 일 실시 예에 따른 메모리 시스템을 나타낸 블록도이다.
도 7은 도 6의 메모리 가속기의 메모리 컨트롤러와의 호환을 위한 동작을 설명하기 위한 순서도이다.
도 8은 본 개시의 일 실시 예에 따른 이종의 메모리 장치들과 연결된 메모리 컨트롤러의 구조를 설명하기 위한 메모리 시스템의 블록도이다.
도 9a 및 도 9b는 호환 가능 로직을 인에이블/디스에이블 시키는 동작을 설명하기 위한 메모리 시스템의 블록도이다.
도 10은 도 9a의 메모리 가속기의 메모리 컨트롤러와의 호환을 위한 동작을 설명하기 위한 순서도이다.
도 11은 메모리 시스템의 일 구현 예를 설명하기 위한 블록도이다.
도 12는 본 개시의 일 실시 예에 따른 적층 구조의 메모리 장치를 나타내는 블록도이다.
도 13은 본 개시의 일 실시 예에 따라 복수의 반도체 메모리 패키지들을 포함하는 반도체 메모리 모듈을 나타내는 도면이다.
도 14는 본 개시의 일 실시 예에 따른 메모리 장치를 모바일 시스템에 응용한 예를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 일 실시 예에 따른 컴퓨팅 시스템을 개략적으로 나타낸 도면이다.
도 1을 참조하면, 컴퓨팅 시스템(10)은 집적회로(100) 및 집적회로(100)에 연결된 적어도 하나의 메모리(150)를 포함할 수 있다. 도 1에서는 설명의 편의를 위하여 1개의 메모리(150)가 도시되었으나, 본 개시의 메모리의 개수는 여기에 제한되지 않는다. 집적회로(100)는 CPU(Central Processing Unit, 110), 버스(120), 메모리 컨트롤러(130) 및 메모리 가속기(140)를 포함할 수 있다. 일 실시 예로, 집적회로(100)는 SoC(System-On-Chip)으로 구현되거나, 메모리 가속기(140)는 집적회로(100)와 별개의 오프-칩(off-chip)으로 구현될 수 있다. 또는, 메모리 가속기(140)는 특정한 용도에 맞도록 주문에 따라 제작된 ASIC(Application Specific Integrated Circuit)으로 구현될 수 있다. 또는, 메모리 가속기(140)와 메모리(150)는 하나의 메모리 장치로 구현될 수 있다.
CPU(110)는 운영 체제(operating system)를 구동함으로써, 집적회로(100)의 동작을 제어하도록 구현될 수 있다. CPU(110)는 인스트럭션에 따라 산술 논리 연산을 수행하거나 데이터 처리를 실행하도록 구현될 수 있다. CPU(110)는 도시되지 않았지만 프로그램 카운터, ALU(Arithmetric Logic Unit), 레지스터 등을 포함할 수 있다.
메모리 컨트롤러(130)는 CPU(110)로부터의 요청에 응답하여 메모리(150)에 데이터를 프로그램하거나 리드하는 등의 메모리 동작을 수행할 수 있다. 메모리 컨트롤러(130)는 데이터 가공(processing)/복원(restoration) 로직(135)을 포함할 수 있으며, 데이터 가공/복원 로직(135)은 메모리 컨트롤러(130)가 메모리(150)에 대한 메모리 동작을 수행할 때에, 데이터에 대한 가공 또는 복원을 수행할 수 있다. 즉, 데이터 가공/복원 로직(135)은 소정의 데이터를 가공하고, 가공된 데이터는 메모리(150)에 저장될 수 있다. 데이터 가공/복원 로직(135)은 메모리(150)로부터 가공된 데이터를 리드하여 이를 복원할 수 있다. 도 1에서는 하나의 타입에 대응하는 데이터 가공/복원 로직(135)을 포함하는 것으로 도시되어 있으나, 이에 국한되지 않고, 메모리 컨트롤러(130)는 다양한 데이터 가공/복원 타입들을 지원할 수 있다. 데이터 가공/복원 로직(135)에 관한 구체적인 내용은 도 3에서 서술한다. 메모리 컨트롤러(130)와 CPU(110)는 호스트(host)로 통칭될 수 있다.
메모리 가속기(140)는 메모리(150)에 직접 액세스하여 단순 반복적인 메모리 동작(또는, 연산 집약적인 동작)을 메모리 컨트롤러(130) 대신 수행함으로써, 메모리 컨트롤러(130)의 로드를 분산할 수 있다. 메모리 컨트롤러(130)의 로드를 분산하는 것은 궁극적으로 메모리 컨트롤러(130)를 제어하는 CPU(110)의 로드를 줄일 수 있어 CPU(110)는 좀 더 복잡한 연산 또는 데이터 처리를 실행하는 데에 효율적으로 이용될 수 있다. 메모리 가속기(140)는 메모리(150)와 직접 연결되어 메모리(150)에 대한 메모리 동작을 수행하는 메모리 근접 프로세서로 지칭될 수 있다. 메모리 가속기(140)는 메모리 동작을 수행하기 위한 로직을 포함하는 메모리(Function In Memory)로 구현될 수 있다.
CPU(110), 메모리 컨트롤러(130) 및 메모리 가속기(140)는 버스(120)를 통해 연결될 수 있으며, CPU(110)는 버스(120)를 통해 메모리 컨트롤러(130) 및 메모리 가속기(140)에 메모리 동작을 요청할 수 있다. 또한, 메모리 컨트롤러(130)와 메모리 가속기(140)는 호환 가능 로직(145)의 설정에 필요한 정보(또는, 신호)를 버스(120)를 통해 송수신할 수 있다.
본 개시의 일 실시 예로 메모리 가속기(140)는 호환 가능 로직(145)을 포함할 수 있다. 호환 가능 로직(145)은 메모리 컨트롤러(130)에 포함된 데이터 가공/복원 로직(135)의 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 동작을 수행할 수 있도록 호환될 수 있다. 즉, 메모리 가속기(140)와 메모리 컨트롤러(130)는 메모리(150)에 직접 액세스하여 메모리 동작을 수행하기 때문에, 메모리 가속기(140)가 지원하는 데이터 가공/복원 타입과 메모리 컨트롤러(130)가 지원하는 데이터 가공/복원 타입이 일치하여야 메모리 동작시에 에러가 발생하지 않을 수 있다. 메모리 컨트롤러(130)는 제품 타입, 동작 상황 등에 따라 다양한 데이터 가공/복원 타입들을 지원할 수 있는 바, 메모리 컨트롤러(130)와의 호환성 유지를 위해 호환 가능 로직(145)은 메모리 컨트롤러(130)가 지원하는 데이터 가공/복원 타입과 동일한 데이터 가공/복원 타입을 적응적으로 지원할 수 있다. 일 실시 예로, 호환 가능 로직(145)은 하드웨어 로직으로 구현되거나 소프트웨어 로직으로 구현될 수 있다. 호환 가능 로직(145)은 소프트웨어 로직으로 구현된 때에, 메모리 가속기(140)는 호환 가능 로직(145)을 실행함으로써 데이터 가공/복원 동작을 수행할 수 있다.
일 실시 예로, 메모리 가속기(140)는 메모리 컨트롤러(130)로부터 데이터 가공/복원 타입 관련 정보를 수신하고, 데이터 가공/복원 타입 관련 정보를 기반으로 호환 가능 로직(145)을 설정할 수 있다. 호환 가능 로직(145)을 설정하는 것은 호환 가능 로직(145)에 메모리 컨트롤러(130)의 데이터 가공/복원 로직(135)과 동일한 데이터 가공/복원 로직을 프로그램하거나, 호환 가능 로직(145)에 포함된 복수의 데이터 가공/복원 로직들 중 데이터 가공/복원 로직(135)과 동일한 데이터 가공/복원 로직을 선택하거나, 호환 가능 로직(145)을 인에이블/디스에이블 시키는 것을 포함할 수 있다. 이에 대한 구체적인 실시 예는 도 2 내지 도 10에서 서술한다.
메모리(150)는 CPU(110)에서 수행되는 동작에 필요한 데이터를 저장하도록 구현될 수 있다. 일 실시 예로, 메모리(150)는 DRAM(Dynamic Random Access Memory), SDRAM(Synchronous DRAM), DDR SDRAM(Double Data Rate Synchronous DRAM), LPDDR(Low Power Double Data Rate) SDRAM, RDRAM(Rabus DRAM), DIMM(Dual In-line Memory Module), NVDIMM(NonVolatile DIMM), PRAM(Phase Change Random Access Memory) 등으로 구현될 수 있다.
본 개시의 일 실시 예에 따른 호환 가능 로직(145)은 메모리 컨트롤러(130)가 지원하는 데이터 가공/복원 타입에 부합하도록 호환될 수 있으며, 이에 따라, 메모리 가속기(140)는 메모리 컨트롤러(130)의 로드를 줄이기 위한 메모리 동작을 원활하게 수행할 수 있는 효과가 있다.
도 2는 본 개시의 일 실시 예에 따른 메모리 시스템을 나타내는
블록도이다
. 이하에서는, 도 1의 호환 가능 로직(145)은 프로그램 가능 로직(232)으로 구현된 실시 예를 설명한다.
도 2를 참조하면, 메모리 시스템(200)은 메모리 컨트롤러(210) 및 메모리 장치(220)을 포함할 수 있다. 메모리 컨트롤러(210)는 데이터 가공/복원 로직(215)을 포함할 수 있다. 메모리 장치(220)는 메모리 가속기(230) 및 복수의 메모리들(240)을 포함할 수 있다. 메모리 가속기(230)는 프로그램 가능 로직(232) 및 레가시 패스(234)를 포함할 수 있다. 메모리 가속기(230)는 프로그램 가능 로직 장치(programmable logic device)로 지칭될 수 있으며, 메모리 장치(220)와 별개의 오프-칩으로 구현될 수 있다. 프로그램 가능 로직(232)에 대한 구체적인 내용은 도 5에서 서술한다.
메모리 컨트롤러(210)는 메모리 가속기(230)의 레가시 패스(234)를 통해 메모리들(240)에 직접 액세스하여 메모리들(240)에 대한 메모리 동작을 수행할 수 있다. 메모리 컨트롤러(210)의 메모리 동작은 데이터 가공/복원 로직(215)의 데이터 가공/복원 동작을 포함할 수 있다. 데이터 가공/복원 로직(215)은 특정 데이터 가공/복원 타입을 가질 수 있으며, 이를 기반으로 메모리들(240)에 프로그램될 데이터를 가공하거나, 메모리들(240)로부터 리드된 데이터를 복원하는 동작을 수행할 수 있다.
메모리 가속기(230)는 메모리 컨트롤러(210)로부터 데이터 가공/복원 타입 관련 정보를 수신하고, 데이터 가공/복원 타입 관련 정보를 기반으로 프로그램 가능 로직(232)에 메모리 컨트롤러(210)의 데이터 가공/복원 로직(215)과 동일한 데이터 가공/복원 로직을 프로그램할 수 있다. 일 실시 예로, 데이터 가공/복원 타입 관련 정보는 데이터 가공/복원 로직(215)과 동일한 데이터 가공/복원 로직을 프로그램하기 위해 필요한 정보를 포함할 수 있다. 메모리 장치(220)는 메모리 컨트롤러(210)로부터 데이터 가공/복원 타입 관련 정보를 수신하기 위한 신호 핀을 포함할 수 있다.
이를 통해, 프로그램 가능 로직(232)은 메모리 컨트롤러(210)의 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 동작을 수행할 수 있다. 메모리 가속기(230)는 메모리 컨트롤러(210)의 로드를 분산하기 위한 메모리 동작을 메모리 장치(220) 내의 별도의 로직 패스를 이용하여 수행할 수 있다. 상기 로직 패스는 레가시 패스(234)와는 상이하며, 이를 통해, 메모리 컨트롤러(210)와 메모리 가속기(230)는 각각 개별적으로 메모리들(240)에 직접 액세스할 수 있다.
도 3은 도 2의 데이터 가공/복원 로직을 구체적으로 나타내는
블록도이다
.
도 3을 참조하면, 데이터 가공/복원 로직(215)은 ECC(Error Correcting Code)/EDC(Error Detecting Code) 생성기(215_1a), ECC/EDC 체커(215_1b), 스크램블러(215_2a), 디스크램블러(215_2b), 압축기(215_3a), 압축 해제기(215_3b), 암호화기(215_4a) 및 복호화기(215_4b) 중 적어도 하나를 포함할 수 있다. 도 3에서의 데이터 가공/복원 로직(215)은 서술의 편의상 에러 정정, 에러 검출, 스크램블링, 디스크램블링, 압축, 압축 해제, 암호화, 복호화 동작만을 수행하는 것으로 도시되어 있으나, 이는 예시적 실시 예에 불과한 바, 이에 국한되지 않고, 다양한 동작을 수행할 수 있다. 데이터 가공/복원 로직(215)이 지원 가능한 다양한 기능은 도 1의 호환 가능 로직(145)에 의해 호환될 수 있으며, 호환 가능 로직(145)은 데이터 가공/복원 로직(215)의 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 동작을 수행할 수 있다.
또한, 도 3에서는 ECC/EDC 생성기(215_1a)와 ECC/EDC 체커(215_1b)는 하나의 로직으로 통합되어 있는 것으로 도시되어 있으나, 이에 국한되지 않고, ECC 생성기, EDC 체커는 각각 EDC 생성기, EDC 체커와 개별적으로 분리되도록 구현될 수 있다.
구체적으로, ECC/EDC 생성기(215_1a)는 소정의 데이터에 대하여 소정의 알고리즘을 기반으로 에러 정정 코드 또는 에러 검출 코드를 생성하고, 데이터에 생성된 에러 정정 코드 또는 에러 검출 코드를 데이터에 부가하는 동작이 포함된 데이터 가공 동작을 수행할 수 있다. ECC/EDC 체커(215_1b)는 메모리로부터 리드된 데이터에 대하여 에러 정정 또는 에러 검출 동작이 포함된 데이터 복원 동작을 수행할 수 있다. 즉, ECC/EDC 체커(215_1b)는 리드된 데이터에 포함된 에러 정정 코드 또는 에러 검출 코드, 소정의 알고리즘을 기반으로 에러 정정 또는 에러 검출을 수행할 수 있다.
스크램블러(215_2a)는 소정의 데이터에 대하여 특정 패턴을 기반으로 한 스크램블링 동작이 포함된 데이터 가공 동작을 수행할 수 있다. 디스크램블러(215_2b)는 메모리로부터 리드된 데이터에 대하여 특정 패턴을 기반으로 한 디스크램블링 동작이 포함된 데이터 복원 동작을 수행할 수 있다.
압축기(215_3a)는 소정의 데이터에 대하여 특정 압축 방식, 특정 압축률 등을 기반으로 한 압축 동작이 포함된 데이터 가공 동작을 수행할 수 있다. 압축 해제기(215_3b)는 메모리로부터 리드된 데이터에 대하여 특정 압축 해제 방식, 특정 압축률 등을 기반으로 한 압축 해제 동작이 포함된 데이터 복원 동작을 수행할 수 있다.
암호화기(215_4a)는 소정의 데이터에 대하여 특정 암호화 방식, 암호화 키 등을 기반으로 한 암호화 동작이 포함된 데이터 가공 동작을 수행할 수 있다. 복호화기(215_4b)는 메모리로부터 리드된 데이터에 대하여 특정 복호화 방식, 복호화 키 등을 기반으로 한 복호화 동작이 포함된 데이터 복원 동작을 수행할 수 있다.
도 4는 도 2의 메모리 가속기의 메모리 컨트롤러와의 호환을 위한 동작을 설명하기 위한
순서도이다
.
도 2 및 도 4를 참조하면, 메모리 가속기(230)는 메모리 컨트롤러(210)로부터 데이터 가공/복원 타입 관련 정보를 수신할 수 있다(S100). 데이터 가공/복원 타입 관련 정보는 메모리 컨트롤러(210)의 데이터 가공/복원 로직(215)에 관한 정보를 포함할 수 있다. 메모리 가속기(230)는 데이터 가공/복원 타입 관련 정보를 기반으로 메모리 컨트롤러(210)의 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 로직을 프로그램 가능 로직(232)에 프로그램할 수 있다(S120). 이 후, 프로그램 가능 로직(232)은 메모리 컨트롤러(210)와 동일한 데이터 가공/복원 타입으로 데이터 가공/복원 동작을 수행할 수 있으며, 이를 통해, 메모리 가속기(230)는 메모리 컨트롤러(210)와 호환되어, 메모리 컨트롤러(210)의 로드를 줄일 수 있는 메모리 동작을 원활하게 수행할 수 있다.
도 5는 본 개시의 일 실시 예에 따른 메모리 시스템을 나타낸
블록도이다
. 이하에서는, 도 2의 프로그램 가능 로직(232)은 메모리 동작을 수행하기 위한 로직을 포함하는 메모리(232')로 구현된 실시 예를 설명한다.
도 5를 참조하면, 메모리 시스템(200')은 메모리 컨트롤러(210) 및 메모리 장치(220')를 포함할 수 있다. 메모리 장치(220')는 메모리 가속기(230') 및 복수의 메모리들(240)을 포함할 수 있다. 메모리 가속기(230')는 메모리 동작을 수행하기 위한 소정의 로직을 포함하는 메모리(이하, 기능 내포 메모리(Function In Memory)로 지칭)(232') 및 레가시 패스(234)를 포함할 수 있다. 기능 내포 메모리(232')는 FPGA(Field-Programmable Gate Array)(232a')를 포함할 수 있다. 더 나아가, FPGA(232a')는 기능 내포 메모리(232')에 임베디드(embedded)되도록 구현될 수 있다. 이외의 메모리 장치(220')의 다른 구성은 도 2의 메모리 장치(220)와 동일, 유사한 바 구체적인 내용은 생략한다.
기능 내포 메모리(232')는 메모리 컨트롤러(210)의 로드를 줄여주기 위한 다양한 메모리 동작을 수행할 수 있도록 다양한 기능들이 삽입될 수 있다. 구체적으로, 기능 내포 메모리(232')에는 다양한 메모리 동작들의 기초가 되는 명령들이 저장될 수 있으며, 메모리 가속기(230')는 이러한 명령들을 기능 내포 메모리(232')로부터 리드하여 명령들을 실행함으로써 다양한 메모리 동작을 수행할 수 있다. 특히, FPGA(232a')는 데이터 가공/복원 동작 측면에서 메모리 컨트롤러(210)와 메모리 가속기(230')간의 호환을 위해 필요한 구성으로서, FPGA(232a')에는 메모리 컨트롤러(210)의 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 로직이 프로그램될 수 있다.
일 실시 예로, 메모리 가속기(230')는 메모리 컨트롤러(210)로부터 FPGA(232a')를 업데이트하기 위한 업데이트 이미지를 포함하는 데이터 가공/복원 타입 관련 정보를 수신할 수 있다. 메모리 가속기(230')는 업데이트 이미지를 기반으로 FPGA(232a')에 메모리 컨트롤러(210)의 데이터 가공/복원 로직(215)과 동일한 데이터 가공/복원 로직을 프로그램할 수 있다.
다른 실시 예로, 메모리 가속기(230')는 메모리 컨트롤러(210)로부터 FPGA(232a')를 업데이트하기 위한 업데이트 이미지가 저장된 메모리들(240)의 주소를 포함하는 데이터 가공/복원 타입 관련 정보를 수신할 수 있다. 메모리 가속기(230')는 데이터 가공/복원 타입 관련 정보를 기반으로 메모리들(240)로부터 상기 업데이트 이미지를 리드할 수 있다. 메모리 가속기(230')는 리드된 업데이트 이미지를 기반으로 FPGA(232a')에 메모리 컨트롤러(210)의 데이터 가공/복원 로직(215)과 동일한 데이터 가공/복원 로직을 프로그램할 수 있다.
다만, 위의 FPGA(232a')에 대한 프로그램 방법은 예시적인 것에 불과한 바, 이에 국한되지 않고, 다양한 방법으로 FPGA(232a')에 메모리 컨트롤러(210)의 데이터 가공/복원 로직(215)과 동일한 데이터 가공/복원 로직을 프로그램할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 메모리 시스템을 나타낸
블록도이다
. 이하에서는, 도 1의 호환 가능 로직(145)은 기능 내포 메모리(332)로 구현된 실시 예를 설명한다.
도 6을 참조하면, 메모리 시스템(300)은 메모리 컨트롤러(310) 및 메모리 장치(320)를 포함할 수 있다. 메모리 장치(320)는 메모리 가속기(330) 및 복수의 메모리들(340)을 포함할 수 있다. 메모리 가속기(330)는 기능 내포 메모리(332) 및 레가시 패스(334)를 포함할 수 있다. 기능 내포 메모리(332)는 복수의 데이터 가공/복원 타입들(Type_1-Type_n)에 각각 대응하는 복수의 데이터 가공/복원 로직들(332_1-332_n)을 포함할 수 있다. 이 외의 메모리 장치(320)의 다른 구성은 도 2의 메모리 장치(220)와 동일, 유사한 바 구체적인 내용은 생략한다.
기능 내포 메모리(332)는 복수의 데이터 가공/복원 로직들(332_1-332_n)을 포함하기 때문에, 데이터 가공/복원 로직들(332_1-332_n) 중 메모리 장치(320)에 연결되는 메모리 컨트롤러(310)의 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 로직을 선택함으로써 메모리 컨트롤러(310)와의 호환성을 손쉽게 유지할 수 있다. 또한, 기능 내포 메모리(332)는 다양한 데이터 가공/복원 로직들(332_1-332_n)을 포함하기 때문에, 호환 가능한 메모리 컨트롤러에 대한 스펙트럼이 넓을 수 있으며, 어떠한 메모리 컨트롤러와 연결되더라도, 메모리 장치(320)는 메모리 컨트롤러와의 호환성을 유지할 수 있다.
일 실시 예로, 메모리 가속기(330)는 메모리 컨트롤러(310)에 지원 가능한 데이터 가공/복원 타입 정보를 제공할 수 있다. 예를 들어, 메모리 가속기(330)는 현재 제1 내지 제n 데이터 가공/복원 타입(Type_1-Type_n)을 지원할 수 있음을 알리는 데이터 가공/복원 타입 정보를 메모리 컨트롤러(310)에 제공할 수 있다. 메모리 컨트롤러(310)는 제1 내지 제n 데이터 가공/복원 타입(Type_1-Type_n) 중 본인의 데이터 가공/복원 타입에 부합하는 것을 선택하기 위한 선택 신호를 메모리 가속기(330)에 제공할 수 있다. 메모리 가속기(330)는 수신한 선택 신호를 기반으로 복수의 데이터 가공/복원 로직들(332_1-332_n) 중 메모리 컨트롤러(310)의 데이터 가공/복원 로직(315)과 부합하는 데이터 가공/복원 로직을 선택할 수 있다.
다른 실시 예로, 메모리 가속기(330)는 메모리 컨트롤러(310)로부터 데이터 가공/복원 타입 관련 정보를 수신할 수 있다. 데이터 가공/복원 타입 관련 정보는 메모리 컨트롤러(310)의 데이터 가공/복원 로직(315)이 어떠한 데이터 가공/복원 타입을 갖는지를 나타내는 정보를 포함할 수 있다. 메모리 가속기(330)는 데이터 가공/복원 타입 관련 정보를 기반으로 복수의 데이터 가공/복원 로직들(332_1-332_n) 중 메모리 컨트롤러(310)의 데이터 가공/복원 로직(315)과 부합하는 데이터 가공/복원 로직을 선택할 수 있다.
선택된 데이터 가공/복원 로직은 메모리 가속기(330)가 메모리들(340)에 대한 메모리 동작을 수행할 때에, 데이터 가공/복원 동작을 수행할 수 있으며, 이를 통해, 메모리 컨트롤러(310)와의 호환성이 보장될 수 있다.
또한, 일 실시 예로, 기능 내포 메모리(330)에는 도 5의 FPGA(232a')에 관한 실시 예가 적용될 수 있는 바, 메모리 가속기(330)가 지원할 수 있는 데이터 가공/복원 타입들 중 메모리 컨트롤러(310)의 데이터 가공/복원 타입과 일치하는 것이 없는 때에, 메모리 가속기(330)는 FPGA(232a', 도 5)에 메모리 컨트롤러(310)의 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 로직을 프로그램할 수도 있다.
도 7은 도 6의 메모리 가속기의 메모리 컨트롤러와의 호환을 위한 동작을 설명하기 위한
순서도이다
.
도 6 및 도 7을 참조하면, 메모리 가속기(330)는 메모리 컨트롤러(310)에 지원 가능한 데이터 가공/복원 타입 정보를 제공할 수 있다(S200). 예를 들어, 메모리 가속기(330)는 현재 제1 내지 제n 데이터 가공/복원 타입(Type_1-Type_n)을 지원할 수 있음을 알리는 데이터 가공/복원 타입 정보를 메모리 컨트롤러(310)에 제공할 수 있다. 메모리 컨트롤러(310)는 지원 가능 한 데이터 가공/복원 타입 정보에서 본인의 데이터 가공/복원 타입과 매칭되는 것이 존재하는 때에, 메모리 컨트롤러(310)는 제1 내지 제n 데이터 가공/복원 타입(Type_1-Type_n) 중 본인의 데이터 가공/복원 타입에 부합하는 것을 선택하기 위한 선택 신호를 메모리 가속기(330)에 제공할 수 있다. 메모리 가속기(330)는 메모리 컨트롤러(310)로부터 데이터 가공/복원 타입의 선택 신호를 수신할 수 있다(S220). 메모리 가속기(330)는 선택 신호를 기반으로 복수의 데이터 가공/복원 로직들(332_1-332_n) 중 어느 하나를 선택할 수 있다(S240).
도 8은 본 개시의 일 실시 예에 따른 이종의 메모리 장치들과 연결된 메모리 컨트롤러의 구조를 설명하기 위한 메모리 시스템의
블록도이다
.
도 8을 참조하면, 메모리 시스템(400)은 메모리 컨트롤러(410), 제1 메모리 장치(420) 및 제2 메모리 장치(450)를 포함할 수 있다. 제1 메모리 장치(420)는 도 1 내지 도 7에서 서술했던 실시 예들과 같이 메모리 컨트롤러(410)와 호환성을 유지하며, 메모리들(440)에 대한 메모리 동작을 수행하는 메모리 가속기(430)를 포함하고, 제2 메모리 장치(450)는 제1 메모리 장치(420)와 상이하게 메모리 가속기를 포함하지 않는다.
메모리 컨트롤러(410)는 위와 같이 이종의 메모리 장치들(420, 450)이 연결되는 것에 대비하여, 적어도 둘 이상의 데이터 가공/복원 타입들(Type_1, Type_2)에 대응하는 데이터 가공/복원 로직들(415_1, 415_2)을 포함할 수 있다. 메모리 컨트롤러(410)는 제1 메모리 장치(420)의 메모리 가속기(430) 내의 제1 데이터 가공/복원 로직(432)과 동일한 제1 데이터 가공/복원 로직(415_1)을 이용하여 제1 메모리 장치(420)에 대한 메모리 동작을 수행할 수 있다. 위와 같은 동작을 위하여, 메모리 컨트롤러(410)는 제1 메모리 장치(420)로부터 지원 가능한 데이터 가공/복원 타입 정보를 수신할 수 있다. 메모리 컨트롤러(410)는 데이터 가공/복원 타입 정보를 기반으로 제1 데이터 가공/복원 로직(415_1)을 선택할 수 있다.
메모리 컨트롤러(410)는 제2 메모리 장치(450)에 메모리 가속기가 포함되지 않기 때문에 데이터 가공/복원 동작의 호환성을 고려할 필요가 없으므로, 데이터 가공/복원 로직들(415_1, 415_2) 중 어느 하나를 선택하고, 이를 이용하여 제2 메모리 장치(450)에 대한 메모리 동작을 수행할 수 있다.
또한, 메모리 컨트롤러(410)는 연결되는 메모리 장치가 지원 가능한 데이터 가공/복원 타입을 고려하여 새로운 데이터 가공/복원 로직을 메모리 컨트롤러(410) 내에 프로그램할 수도 있다.
도 9a 및 도 9b는 호환 가능 로직을
인에이블
/
디스에이블
시키는 동작을 설명하기 위한 메모리 시스템의
블록도이다
.
도 9a를 참조하면, 메모리 시스템(500)은 메모리 컨트롤러(510) 및 메모리 장치(520)를 포함할 수 있다. 메모리 장치(520)는 메모리 가속기(530) 및 복수의 메모리들(540)을 포함할 수 있다. 메모리 가속기(530)는 메모리 컨트롤러(510)의 데이터 가공/복원 동작 지원 여부에 따라 호환 가능 로직(532)의 인에이블/디스에이블을 제어할 수 있다.
도 9a에서의 메모리 컨트롤러(510)는 데이터 가공/복원 로직(515)을 포함하고, 이에 따라, 데이터에 대한 데이터 가공/복원 동작을 지원할 수 있다. 이에 따라, 메모리 가속기(530)는 호환 가능 로직(532)을 인에이블시킬 수 있다. 메모리 가속기(530)는 메모리 컨틀롤러(510)의 로드를 분산하기 위한 메모리 동작을 수행할 수 있으며, 메모리 컨트롤러(510)의 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 로직을 전술한 다양한 실시 예들에 따라 호환 가능 로직(532)에 포함되도록 함으로써, 메모리 컨트롤러(510)와 호환될 수 있다.
도 9b를 참조하면, 메모리 장치(520)는 데이터 가공/복원 동작을 지원하지 않는 메모리 컨트롤러(510')와 연결될 수 있다. 이에 따라, 메모리 가속기(530)는 호환 가능 로직(532)을 디스에이블시킬 수 있다. 메모리 가속기(530)는 메모리 컨트롤러(510)의 로드를 분산하기 위한 메모리 동작을 수행할 수 있으며, 데이터 가공/복원 동작은 수행하지 않을 수 있다.
도 10은 도 9a의 메모리 가속기의 메모리 컨트롤러와의 호환을 위한 동작을 설명하기 위한
순서도이다
.
도 9a 및 도 10을 참조하면, 메모리 가속기(530)는 메모리 컨트롤러(510)로부터 데이터 가공/복원 동작 지원 가능 관련 정보를 수신할 수 있다(S300). 메모리 가속기(530)는 데이터 가공/복원 동작 지원 가능 관련 정보를 기반으로 호환 가능 로직(532)의 인에이블/디스에이블을 제어할 수 있다(S320).
도 11은 메모리 시스템의 일 구현 예를 설명하기 위한
블록도이다
.
도 11을 참조하면, 메모리 시스템(600)은 메모리 컨트롤러(610) 및 메모리 장치(620)를 포함할 수 있다. 메모리 장치(620)는 메모리 패키지 또는 메모리 모듈로 정의될 수 있다. 메모리 장치(620)는 복수의 메모리 다이들(622_1-622_m) 및 버퍼 다이(624)를 포함할 수 있다. 메모리 다이(622_1-622_m)는 적어도 하나의 메모리 코어를 포함할 수 있으며, 메모리 코어는 데이터를 저장하기 위한 메모리 셀 어레이, 로우 디코더, 컬럼 디코더 및 센스 앰프 등을 포함할 수 있다. 버퍼 다이(624)는 메모리 컨트로러(610)로부터 수신된 데이터 신호, 커맨드 신호, 어드레스 신호 및 칩 선택신호를 메모리 다이(622_1-622_m)에 제공하거나 메모리 다이(622_1-622_m)로부터 수신된 데이터 신호를 메모리 컨트롤러(610)에 제공하기 위한 인터페이스 동작을 수행할 수 있다.
메모리 장치(620)는 복수의 메모리 다이(622_1-622_m)와 버퍼 다이(624)가 각각 적층되어 패키징(packaging)된 것일 수 있다. 한편, 버퍼 다이(624)에 적층되는 복수의 메모리 다이들(622_1-622_m)은 버퍼 다이(624)와 전기적으로 연결되며, 이를 위하여 메모리 장치(620) 내에는 각각의 다이들을 서로 연결하는 도전 수단을 포함할 수 있다. 일 실시 예로, 메모리 장치(620)는 도전 수단으로 스루 실리콘 비아(Through Silicon Via, TSV)가 적용될 수 있다. 상기 TSV를 다이들 사이의 도전 수단으로 사용하기 위하여, 메모리 장치(620) 내의 하나 이상의 다이는 그 내부에 수직으로 관통하여 형성되는 적어도 하나의 비아(via)를 포함할 수 있다.
본 개시의 일 실시예에 따른 버퍼 다이(624)는 메모리 컨트롤러(610)의 로드를 분산시키기 위한 메모리 가속기(624a)를 포함하고, 메모리 가속기(624a)는 메모리 컨트롤러(610)와의 호환을 위한 호환 가능 로직(624b)을 포함할 수 있다. 호환 가능 로직(624b)은 도 1등에서 서술된 실시 예들이 적용되어 메모리 컨트롤러(610)의 데이터 가공/복원 로직(615)과 동일한 데이터 가공/복원 로직을 포함할 수 있다.
도 12는 본 개시의 일 실시 예에 따른 적층 구조의 메모리 장치를 나타내는 블록도이다.
도 12에서는, 서로 독립된 인터페이스를 갖는 다수의 채널들을 포함함으로써 증가된 대역폭을 갖는 HBM(High Bandwidth Memory) 형태의 메모리 장치가 도시된다.
도 12를 참조하면, 메모리 장치(1000)는 복수의 다이들을 포함할 수 있다. 일 실시 예로서, 메모리 장치(1000)는 버퍼 다이(1010)와 이에 적층된 하나 이상의 메모리 다이들(1010-1040)을 포함할 수 있다. 도 12의 예에서는, 제1 내지 제4 메모리 다이들(1010-1040)이 구비되는 예가 도시되었으나, 상기 메모리 다이들의 개수는 다양하게 변경될 수 있다.
메모리 다이들(1010-1040) 각각은 하나 이상의 채널을 포함할 수 있으며, 도 12에서는 하나의 메모리 다이(1010)가 두 개의 채널을 포함함에 따라 메모리 장치(1000)가 8 개의 채널들(CH1-CH8)을 갖는 예가 도시된다. 예컨대, 제1 메모리 다이(1010)가 제1 채널 및 제3 채널(CH1, CH3)을 포함하고, 제2 메모리 다이(1020)가 제2 채널 및 제4 채널(CH2, CH4)을 포함하며, 제3 메모리 다이(1030)가 제5 채널 및 제7 채널(CH5, CH7)을 포함하며, 제4 메모리 다이(1040)가 제6 채널 및 제8 채널(CH6, CH8)을 포함할 수 있다.
또한, 메모리 장치(1000)는 메모리 다이들(1010~1040)을 관통하는 다수 개의 TSV(1060)들을 포함할 수 있다. TSV(1060)들은 다수의 채널들(CH1- CH8)에 대응하여 배치될 수 있으며, 각각의 채널이 128 비트의 대역폭(Bandwidth)을 갖는 경우, TSV(1060)들은 1024 비트의 데이터 입출력을 위한 구성들을 포함할 수 있다.
메모리 다이(1050)는 메모리 컨트롤러와 통신하고, 메모리 컨트롤러로부터 커맨드, 어드레스 및 데이터를 수신할 수 있으며, 수신된 커맨드, 어드레스 및 데이터를 메모리 다이들(1010-1040)로 제공할 수 있다. 버퍼 다이(1050)는 메모리 컨트롤러와 연결되는 물리 영역(PHY, 1051), 메모리 가속기(1052), TSV 영역(TSV, 1053) 및 외부 테스트 장치와 연결되는 직접 액세스 영역(DA, 1055)를 포함할 수 있다. 본 개시의 일 실시 예에 따른 메모리 가속기(1052)는 호환 가능 로직(미도시)를 포함할 수 있으며, 호환 가능 로직(미도시)는 도 1 등에서 서술된 실시 예들이 적용되어 메모리 컨트롤러의 데이터 가공/복원 로직과 동일한 데이터 가공/복원 로직을 포함할 수 있다.
도 13은 본 개시의 일 실시 예에 따라 복수의 반도체 메모리 패키지들을 포함하는 반도체 메모리 모듈을 나타내는 도면이다.
도 13을 참조하면, 반도체 메모리 모듈(3000)은 복수의 반도체 메모리 패키지들(SMP1-SMP4) 및 인터포저(Interposer)를 포함할 수 있다. 각각의 반도체 메모리 패키지(SMP1-SMP4)는 버퍼 다이(BD) 및 버퍼 다이(BD)의 일면 상에 적층된 복수의 메모리 다이들(MDs)을 포함할 수 있다. 각각의 반도체 메모리 패키지(SMP1-SMP4)에 소정의 범프가 형성되고, 인터포저(Interposer) 상에 일면 상에 배치되어, 인터포저(Interposer)가 포함하는 소정의 도전 소자들과 전기적으로 연결될 수 있다. 또한, 반도체 메모리 패키지(SMP1-SMP4)의 동작을 제어하는 시스템 온 칩(SoC)는 인터포저(Interposer)의 일면 상에 배치될 수 있다. 시스템 온 칩(SoC)과 반도체 메모리 패키지(SMP1-SMP4)는 각각 인터포저(Interposer)가 포함하는 상기 도전 소자들을 통해 전기적으로 연결될 수 있다.
일 실시 예에 따라, 반도체 메모리 패키지(SMP1-SMP4) 중 적어도 하나의 반도체 메모리 패키지의 버퍼 다이(BD)는 도 1 등에서 서술된 실시 예들이 적용되는 호환 가능 로직이 구비된 메모리 가속기를 포함할 수 있다. 더 나아가, 도 8에서 서술된 실시 예들과 같이 시스템 온 칩(SoC)은 반도체 메모리 패키지(SMP1-SMP4)의 메모리 가속기 유무에 상관없이 호환성을 제공하기 위해 다양한 타입들에 대응하는 복수의 데이터 가공/복원 로직들을 포함할 수 있다.
도 14는 본 개시의 일 실시 예에 따른 메모리 장치를 모바일 시스템에 응용한 예를 나타내는
블록도이다
.
도 14를 참조하면, 모바일 시스템(4000)은 버스(4002)를 통하여 서로 연결되는 어플리케이션 프로세서(4010), 통신(Connectivity)부(4020), 제 1 메모리 장치(4030), 제 2 메모리 장치(4040), 사용자 인터페이스(4050) 및 파워 서플라이(4060)를 포함할 수 있다. 제1 메모리 장치(4030)는 휘발성 메모리 장치로 설정되고, 제2 메모리 장치(4040)는 비휘발성 메모리 장치로 설정될 수 있다. 일 실시예에 따라, 모바일 시스템(4000)은 휴대폰(Mobile Phone), 스마트 폰(Smart Phone), 개인 정보 단말기(Personal Digital Assistant; PDA), 휴대형 멀티미디어 플레이어(Portable Multimedia Player; PMP), 디지털 카메라(Digital Camera), 음악재생기(Music Player), 휴대용 게임 콘솔(Portable Game Console), 네비게이션(Navigation)시스템 등과 같은 임의의 모바일 시스템일 수 있다.
어플리케이션 프로세서(4010)는 인터넷 브라우저, 게임, 동영상 등을 제공하는 어플리케이션들을 실행할 수 있다. 실시예에 따라, 어플리케이션 프로세서(4010)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 어플리케이션 프로세서(4010)는 듀얼 코어(Dual-Core), 퀴드 코어(Quid-Core), 헥사 코어(Hexa-Core)를 포함할 수 있다. 또한, 실시예에 따라, 어플리케이션 프로세서(4010)는 내부 또는 외부에 위치한 캐시 메모리(Cache Memory)를 더 포함할 수 있다.
통신부(4020)는 외부 장치와 무선 통신 또는 유선 통신을 수행할 수 있다. 예를 들어, 통신부(4020)는 이더넷(Ethernet) 통신, 근거리 자기장 통신(Near Field Communication; NFC), 무선 식별(Radio Frequency Identification; RFID) 통신, 이동 통신(Mobile Telecommunication), 메모리 카드 통신, 범용 직렬 버스(Universal Serial Bus; USB) 통신 등을 수행할 수 있다. 예를 들어, 통신부(4020)는 베이스밴드 칩 셋(Baseband Chipset)을 포함할 수 있고, GSM, GRPS, WCDMA, HSxPA 등의 통신을 지원할 수 있다.
휘발성 메모리 장치인 제1 메모리 장치(4030)는 어플리케이션 프로세서(4010)에 의해 처리되는 데이터를 저장하거나, 동작 메모리(Working Memory)로서 작동할 수 있다. 제 1 메모리 장치(4030)는 도 2 등에서 서술된 메모리 장치에 해당될 수 있다. 제1 메모리 장치(4030)는 본 개시의 실시 예들이 적용된 호환 가능 로직을 구비하는 메모리 가속기(4035)를 포함할 수 있다. 메모리 가속기(4035)를 통해 어플리케이션 프로세서(4010)의 로드를 줄이고, 데이터 가공/복원 동작에 대해 어플리케이션 프로세서(4010)와의 호환성을 유지할 수 있다.
비휘발성 메모리 장치인 제2 메모리 장치(4040)는 모바일 시스템(4000)을 부팅하기 위한 부트 이미지를 저장할 수 있다. 예를 들어, 비휘발성 메모리 장치(4040)는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플레시 메모리(Flash Memory), PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 또는 이와 유사한 메모리로 구현될 수 있다. 제2 메모리 장치(4030)는 본 개시의 실시 예들이 적용된 호환 가능 로직을 구비하는 메모리 가속기(4045)를 포함할 수 있다. 메모리 가속기(4045)를 통해 어플리케이션 프로세서(4010)의 로드를 줄이고, 데이터 가공/복원 동작에 대해 어플리케이션 프로세서(4010)와의 호환성을 유지할 수 있다.
사용자 인터페이스(4050)는 키패드, 터치 스크린과 같은 하나 이상의 입력 장치, 및/또는 스피커, 디스플레이 장치와 하나 이상의 출력 장치를 포함할 수 있다. 파워 서플라이(4060)의 동작 전압을 공급할 수 있다. 또한, 실시예에 따라, 모바일 시스템(4000)은 카메라 이미지 프로세서(Camera Image Processor; CIP)를더 포함할 수 있고, 메모리 카드(Memory Card), 솔리드 스테이트 드라이브(Solid State Drive; SSD), 하드 디스크 드라이브(Hard Disk Drive; HDD), 씨디롬(CD-ROM) 등과 같은 저장 장치를 더 포함할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (20)
- 적어도 하나의 메모리; 및
메모리 컨트롤러의 로드를 분산하기 위해 상기 메모리에 대한 메모리 동작을 수행하는 메모리 가속기(accelerator)를 포함하며,
상기 메모리 가속기는,
상기 메모리 컨트롤러의 데이터 가공/복원 타입에 적응적으로 부합하는 데이터 가공/복원 동작을 수행하기 위한 호환 가능 로직을 포함하는 것을 특징으로 하는 메모리 장치. - 제1항에 있어서,
상기 데이터 가공/복원 동작은,
ECC 생성/체크 동작, EDC 생성/체크 동작, 스크램블/디스크램블 동작, 압축/압축 풀기 동작 및 암호화/복호화 동작들 중 적어도 하나를 포함하는 것을 특징으로 하는 메모리 장치. - 제1항에 있어서,
상기 메모리 가속기는,
상기 메모리 동작을 수행하기 위한 로직을 포함하는 메모리(function in mermoy)로 구현된 것을 특징으로 하는 메모리 장치. - 제1항에 있어서,
상기 호환 가능 로직은,
상기 메모리 컨트롤러의 상기 데이터 가공/복원 타입에 부합하는 상기 데이터 가공/복원 동작을 수행하도록 프로그램된 데이터 가공/복원 로직을 포함하는 것을 특징으로 하는 메모리 장치. - 제4항에 있어서,
상기 호환 가능 로직은, FPGA(Field-Programmable Gate Array)를 더 포함하고,
상기 FPGA에 상기 메모리 컨트롤러의 상기 데이터 가공/복원 타입에 부합하는 상기 데이터 가공/복원 로직이 동적으로 프로그램되는 것을 특징으로 하는 메모리 장치. - 제1항에 있어서,
상기 호환 가능 로직은,
복수의 데이터 가공/복원 타입들에 각각 대응하는 복수의 데이터 가공/복원 로직들을 포함하는 것을 특징으로 하는 메모리 장치. - 제6항에 있어서,
상기 데이터 가공/복원 동작을 수행하기 위해 상기 데이터 가공/복원 로직들 중 상기 메모리 컨트롤러의 상기 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 로직이 선택되는 것을 특징으로 하는 메모리 장치. - 제6항에 있어서,
상기 데이터 가공/복원 동작을 수행하기 위해 상기 데이터 가공/복원 로직들 중 상기 메모리 컨트롤러의 상기 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 로직이 선택되는 것을 특징으로 하는 메모리 장치. - 제1항에 있어서,
상기 메모리 장치는,
상기 메모리 컨트롤러로부터 상기 데이터 가공/복원 타입 관련 정보를 수신하기 위한 신호 핀(pin)을 더 포함하는 것을 특징으로 하는 메모리 장치. - 제1항에 있어서,
상기 메모리 장치는,
상기 메모리 컨트롤러와 통신하는 버퍼 다이 및 상기 버퍼 다이 상에 적층되는 복수의 메모리 다이들을 포함하는 때에,
상기 버퍼 다이는,
상기 메모리 가속기를 포함하는 것을 특징으로 하는 메모리 장치. - 제1항에 있어서,
상기 메모리 장치는,
상기 메모리 컨트롤러가 상기 메모리에 직접 액세스할 수 있는 제1 패스; 및
상기 메모리 가속기가 상기 메모리에 직접 액세스할 수 있는 제2 패스를 더 포함하는 것을 특징으로 하는 메모리 장치. - 제1항에 있어서,
상기 메모리 가속기는,
상기 메모리로부터 구별된 오프-칩(off chip)으로 구현된 것을 특징으로 하는 메모리 장치. - 복수의 메모리들;
상기 메모리들에 대한 제1 메모리 동작을 수행하는 메모리 컨트롤러; 및
상기 메모리들에 대한 제2 메모리 동작을 수행하는 메모리 가속기를 포함하며,
상기 메모리 가속기는,
상기 제2 메모리 동작을 수행할 때에, 상기 메모리 컨트롤러의 상기 제1 메모리 동작 수행시에 기반이되는 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 타입으로 설정되는 호환 가능 로직을 포함하는 것을 특징으로 하는 메모리 시스템. - 제13항에 있어서,
상기 메모리 가속기는,
상기 메모리 컨트롤러로부터 상기 제1 메모리 동작 수행시에 기반이되는 상기 데이터 가공/복원 타입 관련 정보를 수신하여, 이를 기반으로 상기 호환 가능 로직을 설정하는 것을 특징으로 하는 메모리 시스템. - 제14항에 있어서,
상기 호환 가능 로직은, FPGA(Field-Programmable Gate Array)를 더 포함하고,
상기 메모리 가속기는, 상기 FPGA에 상기 데이터 가공/복원 타입 관련 정보를 기반으로 상기 제1 메모리 동작 수행시에 기반이되는 상기 데이터 가공/복원 타입에 부합하는 데이터 가공/복원 로직을 동적으로 프로그램하는 것을 특징으로 하는 메모리 시스템. - 제15항에 있어서,
상기 데이터 가공/복원 타입 관련 정보는, 상기 FPGA를 업데이트하기 위한 업데이트 이미지를 포함하고,
상기 메모리 가속기는, 상기 업데이트 이미지를 기반으로 상기 FPGA에 상기 데이터 가공/복원 로직을 프로그램하는 것을 특징으로 하는 메모리 시스템. - 제14항에 있어서,
상기 호환 가능 로직은, 복수의 데이터 가공/복원 타입들에 각각 대응하는 복수의 데이터 가공/복원 로직들을 포함하고,
상기 메모리 가속기는, 상기 데이터 가공/복원 타입 관련 정보를 기반으로 상기 데이터 가공/복원 로직들 중 어느 하나를 선택하는 것을 특징으로 하는 메모리 시스템. - 제14항에 있어서,
상기 메모리 가속기는, 상기 데이터 가공/복원 타입 관련 정보를 기반으로 상기 메모리 컨트롤러의 상기 데이터 가공/복원 동작 지원 여부를 판별하고, 판별 결과를 기반으로 상기 호환 가능 로직의 인에이블/디스에이블을 제어하는 것을 특징으로 하는 메모리 시스템. - 데이터 가공/복원 동작을 지원하기 위한 호환 가능 로직이 구비된 제1 메모리 장치;
상기 데이터 가공/복원 동작을 지원하지 않는 제2 메모리 장치; 및
상기 제1 메모리 장치 및 상기 제2 메모리 장치를 제어하는 메모리 컨트롤러를 포함하고,
상기 메모리 컨트롤러는,
상기 제1 메모리 장치에 대한 메모리 동작시에 수행되는 제1 데이터 가공/복원 동작을 위한 제1 데이터 가공/복원 로직; 및
상기 제2 메모리 장치에 대한 메모리 동작시에 수행되는 제2 데이터 가공/복원 동작을 위한 제2 데이터 가공/복원 로직을 포함하며,
상기 호환 가능 로직은,
상기 제1 데이터 가공/복원 로직에 대응하는 데이터 가공/복원 타입으로 설정된 것을 특징으로 하는 메모리 시스템. - 제19항에 있어서,
상기 제1 데이터 가공/복원 로직에 대응하는 상기 데이터 가공/복원 타입은,
상기 제2 데이터 가공/복원 로직에 대응하는 데이터 가공/복원 타입과 상이한 것을 특징으로 하는 메모리 시스템.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180091442A KR20200016116A (ko) | 2018-08-06 | 2018-08-06 | 메모리 장치 및 메모리 시스템 |
US16/445,340 US20200042247A1 (en) | 2018-08-06 | 2019-06-19 | Memory device and memory system including the same |
CN201910627852.6A CN110806838A (zh) | 2018-08-06 | 2019-07-11 | 存储器设备以及包括存储器设备的存储器系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180091442A KR20200016116A (ko) | 2018-08-06 | 2018-08-06 | 메모리 장치 및 메모리 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200016116A true KR20200016116A (ko) | 2020-02-14 |
Family
ID=69228711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180091442A KR20200016116A (ko) | 2018-08-06 | 2018-08-06 | 메모리 장치 및 메모리 시스템 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200042247A1 (ko) |
KR (1) | KR20200016116A (ko) |
CN (1) | CN110806838A (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11397694B2 (en) * | 2019-09-17 | 2022-07-26 | Micron Technology, Inc. | Memory chip connecting a system on a chip and an accelerator chip |
US11449427B2 (en) * | 2020-02-13 | 2022-09-20 | SK Hynix Inc. | Microprocessor-based system memory manager hardware accelerator |
KR20220099347A (ko) | 2021-01-06 | 2022-07-13 | 삼성전자주식회사 | 메모리 장치를 제어하는 가속기, 이를 포함하는 컴퓨팅 시스템 및 가속기의 동작방법 |
US11645005B2 (en) * | 2021-02-26 | 2023-05-09 | PetaIO Inc. | Near-memory computing systems and methods |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6631520B1 (en) * | 1999-05-14 | 2003-10-07 | Xilinx, Inc. | Method and apparatus for changing execution code for a microcontroller on an FPGA interface device |
US6631488B1 (en) * | 2000-06-30 | 2003-10-07 | Agilent Technologies, Inc. | Configurable error detection and correction engine that has a specialized instruction set tailored for error detection and correction tasks |
US9912355B2 (en) * | 2015-09-25 | 2018-03-06 | Intel Corporation | Distributed concatenated error correction |
US10552936B2 (en) * | 2016-03-02 | 2020-02-04 | Alibaba Group Holding Limited | Solid state storage local image processing system and method |
-
2018
- 2018-08-06 KR KR1020180091442A patent/KR20200016116A/ko not_active Application Discontinuation
-
2019
- 2019-06-19 US US16/445,340 patent/US20200042247A1/en not_active Abandoned
- 2019-07-11 CN CN201910627852.6A patent/CN110806838A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
CN110806838A (zh) | 2020-02-18 |
US20200042247A1 (en) | 2020-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200042247A1 (en) | Memory device and memory system including the same | |
US10930330B2 (en) | Synchronous dynamic random access memory (SDRAM) device, memory controller therefor, and method of operating same | |
US10991446B2 (en) | Electronic device performing training on memory device by rank unit and training method thereof | |
JP5846664B2 (ja) | メモリ回路試験エンジン用の汎用アドレススクランブラ | |
US9171605B1 (en) | Concentrated address detecting method of semiconductor device and concentrated address detecting circuit using the same | |
US10387259B2 (en) | Instant restart in non volatile system memory computing systems with embedded programmable data checking | |
US20140169114A1 (en) | Volatile memory devices, memory systems including the same and related methods | |
US20160048425A1 (en) | Memory device having a shareable error correction code cell array | |
US9891856B2 (en) | Memory address remapping system, device and method of performing address remapping operation | |
JP2014506698A (ja) | メインメモリシステムを介して、コプロセッサ及び入出力(i/o)デバイスとインターフェースするシステム及び方法 | |
KR20160034550A (ko) | 스토리지 컨트롤러, 이의 동작 방법 및 이를 포함하는 솔리드 스테이트 디스크 | |
KR20170050935A (ko) | 온 칩 ecc 회로를 포함하는 메모리 장치 및 시스템 | |
EP2962187A2 (en) | Vector register addressing and functions based on a scalar register data value | |
KR102464305B1 (ko) | 반도체 장치 | |
US9652403B2 (en) | Memory control unit and data storage device including the same | |
EP4180977A1 (en) | Parameter change command for storage device interface tuning | |
US20140331006A1 (en) | Semiconductor memory devices | |
CN108427650A (zh) | 存储器系统及其操作方法 | |
JP5839632B2 (ja) | シリアル不揮発性メモリに対する向上されたアドレス能力 | |
US20230141861A1 (en) | Data storage devices using non-volatile memory devices and operating methods thereof | |
TWI835604B (zh) | 資料加解密系統及資料加解密方法 | |
US20230289071A1 (en) | Electronic device and method of operating the same | |
KR20180123264A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
WITB | Written withdrawal of application |