KR20180094386A - 메모리 시스템 및 그것의 동작 방법 - Google Patents

메모리 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20180094386A
KR20180094386A KR1020170020634A KR20170020634A KR20180094386A KR 20180094386 A KR20180094386 A KR 20180094386A KR 1020170020634 A KR1020170020634 A KR 1020170020634A KR 20170020634 A KR20170020634 A KR 20170020634A KR 20180094386 A KR20180094386 A KR 20180094386A
Authority
KR
South Korea
Prior art keywords
memory
storage
processor
addresses
main memory
Prior art date
Application number
KR1020170020634A
Other languages
English (en)
Inventor
김광현
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020170020634A priority Critical patent/KR20180094386A/ko
Priority to US15/829,101 priority patent/US10394305B2/en
Priority to CN201810066954.0A priority patent/CN108427650B/zh
Publication of KR20180094386A publication Critical patent/KR20180094386A/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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명의 실시 예에 따른 메모리 시스템은 스토리지 장치 및 메모리 장치를 포함할 수 있다. 스토리지 장치는 프로세서와 연결되도록 구성된 제 1 인터페이스 회로, 제 1 인터페이스 회로와 구분된 제 2 인터페이스 회로를 포함할 수 있다. 스토리지 장치는 디램(DRAM) 인터페이스를 기초로 프로세서와 연결되도록 구성된 제 3 인터페이스 회로, 제 3 인터페이스 회로와 구분되며 제 2 인터페이스 회로와 연결된 제 4 인터페이스 회로, 그리고 제 1 메모리 영역 및 제 2 메모리 영역으로 구분된 랜덤 액세스 메모리(random access memory)를 포함할 수 있다. 제 1 메모리 영역은 제 3 인터페이스를 통해 프로세서에 의해 액세스(access)되고, 제 2 메모리 영역은 제 2 인터페이스 회로 및 제 4 인터페이스 회로를 통해 스토리지 장치에 의해 액세스될 수 있다.

Description

메모리 시스템 및 그것의 동작 방법{MEMORY SYSTEM AND OPERATION METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 상세하게는 메모리 시스템 및 그것의 동작 방법에 관한 것이다.
반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phosphide) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile memory device)와 불휘발성 메모리 장치(Nonvolatile memory device)로 구분된다.
일반적으로, 메모리 시스템은 비교적 속도가 빠른 휘발성 메모리 장치를 메인 메모리(main memory)로 사용한다. 또한, 메모리 시스템은 전원 공급이 차단되어도 데이터가 소멸되지 않는 불휘발성 메모리 장치를 스토리지(storage)로서 사용한다. 예를 들어, 메인 메모리는 DRAM 장치 등을 포함할 수 있고, 스토리지는 플래시 메모리 장치(낸드 플래시 메모리, 노어 플래시 메모리 등) 등을 포함할 수 있다.
더 높은 성능 및 효율을 갖는 메모리 시스템에 대한 요구가 증가함에 따라, 플래시 메모리 장치와 함께 컨트롤러가 내장되는 SSD(Solid State Drive), eMMC(embedded Multi Media Card) 제품 등이 개발되고 있다. 또한, DRAM 장치와 함께 컨트롤러가 내장되는 MDS(Managed DRAM Solution) 등의 개발도 진행되고 있다. 하지만, MDS(Managed DRAM Solution)와 같은 새로운 메모리 장치는 기존의 DRAM 인터페이스와는 다른 인터페이스를 메모리 시스템에 요구한다. 따라서, 기존의 인터페이스를 유지하면서, 더 높은 성능 및 효율을 갖는 메모리 시스템이 필요하다.
본 발명은 상술된 기술적 과제를 해결하기 위한 것으로써, 본 발명은 서로 연결된 메인 메모리 및 스토리지를 포함하는 메모리 시스템 및 그것의 동작 방법을 제공할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템은 스토리지 장치 및 메모리 장치를 포함할 수 있다. 스토리지 장치는 프로세서와 연결되도록 구성된 제 1 인터페이스 회로, 제 1 인터페이스 회로와 구분된 제 2 인터페이스 회로를 포함할 수 있다. 스토리지 장치는 디램(DRAM) 인터페이스를 기초로 프로세서와 연결되도록 구성된 제 3 인터페이스 회로, 제 3 인터페이스 회로와 구분되며 제 2 인터페이스 회로와 연결된 제 4 인터페이스 회로, 그리고 제 1 메모리 영역 및 제 2 메모리 영역으로 구분된 랜덤 액세스 메모리(random access memory)를 포함할 수 있다. 제 1 메모리 영역은 제 3 인터페이스를 통해 프로세서에 의해 액세스(access)되고, 제 2 메모리 영역은 제 2 인터페이스 회로 및 제 4 인터페이스 회로를 통해 스토리지 장치에 의해 액세스될 수 있다.
본 발명의 다른 실시 예에 따른 스토리지 장치 및 스토리지 장치와 연결된 메모리 장치를 포함하는 메모리 시스템의 동작 방법은, 프로세서가 스토리지 장치와 핸드셰이킹(hand-shaking)을 하고, 프로세서가 메모리 장치와 핸드셰이킹을 하는 단계, 프로세서에서, 메모리 장치를 제 1 메모리 영역과 제 2 메모리 영역으로 구분하고, 제 1 메모리 영역을 제 1 주소들로 할당하고, 제 2 메모리 영역을 제 2 주소들로 할당하는 단계, 프로세서가 제 2 주소들을 스토리지 장치에 제공하는 단계, 그리고 스토리지 장치가 메모리 장치와 핸드셰이킹하는 단계를 포함할 수 있다.
본 발명에 따른 메모리 시스템은 서로 연결된 메인 메모리 및 스토리지를 포함할 수 있다. 본 발명의 실시 예에 따르면, 메인 메모리는 스토리지에 메인 메모리의 메타 데이터를 저장할 수 있다. 또한, 메인 메모리는 저장된 메타 데이터를 스토리지로부터 독출하여 사용할 수 있다. 동시에, 스토리지는 메인 메모리를 버퍼 메모리로서 사용할 수 있다. 따라서, 메모리 시스템은 메인 메모리 및 스토리지를 효율적으로 사용할 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 도 1에 도시된 메인 메모리의 예시적인 구성을 보여주는 블록도이다.
도 3은 도 2의 메인 메모리를 포함하는 메모리 시스템의 동작을 설명하기 위한 그림이다.
도 4는 본 발명의 다른 실시 예에 따른 도 1에 도시된 메인 메모리를 보여주는 블록도이다.
도 5 및 도 6은 도 4의 메인 메모리를 포함하는 메모리 시스템의 동작을 설명하기 위한 그림이다.
도 7은 본 발명의 다른 실시 예에 따른 도 1에 도시된 메인 메모리를 보여주는 블록도이다.
도 8은 도 7의 메인 메모리를 포함하는 메모리 시스템의 동작을 설명하기 위한 그림이다.
도 9 내지 도 11은 도 1에 도시된 메인 메모리와 연결된 스토리지 장치의 실시 예들을 보여주는 블록도이다.
도 12는 도 9의 스토리지의 예시적인 구성을 보여주는 블록도이다.
도 13은 도 12의 스토리지를 포함하는 메모리 시스템의 동작을 설명하기 위한 그림이다.
도 14 및 도 15는 다른 실시 예에 따른 도 1의 메모리 시스템의 동작을 설명하기 위한 그림이다.
도 16은 도 1에 도시된 메모리 시스템이 집적된 패키지를 보여주는 그림이다.
도 17은 도 1의 메모리 시스템을 포함하는 이동식 전자 장치를 보여주는 블록도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 1을 참조하면, 본 발명의 메모리 시스템(1000)은 프로세서(1100), 메인 메모리(1200), 그리고 스토리지(1300)를 포함할 수 있다.
메모리 시스템(1000)은 메모리 및 연산 리소스(resource)들을 이용하여 사용자에게 특정한 기능을 제공하도록 조직화된 전자 장치들(프로세서, 메모리 장치 등)의 집합이다. 메모리 시스템(1000)은 하나 이상의 프로세서들을 포함하는 컴퓨팅 장치(예컨대, 퍼스널 컴퓨터(Personal Computer), 주변 장치, 디지털 카메라, PDA(Personal Digital Assistant), PMP(Portable Media Player), 스마트폰(Smartphone), 태블릿(Tablet), 웨어러블(Wearable) 장치 등)에 포함될 수 있다.
프로세서(1100)는 메모리 시스템(1000)의 전반적인 동작들을 관리하고 처리하기 위해, 다양한 산술 연산/논리 연산을 수행할 수 있다. 예를 들어, 프로세서(1100)는 범용 프로세서 또는 어플리케이션 프로세서(Application Processor)를 포함하는 프로세서 회로 또는 시스템일 수 있다.
프로세서(1100)는 메모리 컨트롤러(1110) 및 스토리지 컨트롤러(1120)를 포함할 수 있다. 메모리 컨트롤러(1110) 및 스토리지 컨트롤러(1120)는 프로세서(1100)의 명령에 따라 각각 메인 메모리(1200) 및 스토리지(1300)의 전반적인 동작을 관리하고 처리한다. 메모리 컨트롤러(1110)는 제 1 채널(CH1)을 통해 메인 메모리(1200)와 연결된다. 제 1 채널(CH1)을 통해, 메모리 컨트롤러(1110)는 메인 메모리(1200)로부터 데이터를 독출하거나, 메인 메모리(1200)에 데이터를 기입할 수 있다. 스토리지 컨트롤러(1120)는 제 2 채널(CH2)을 통해 스토리지(1300)와 연결된다. 제 2 채널(CH2)을 통해, 스토리지 컨트롤러(1120)는 스토리지(1300)로부터 데이터를 독출하거나, 스토리지(1300)에 데이터를 기입할 수 있다.
메인 메모리(1200) 및 스토리지(1300)는 각각 프로세서(1100)로부터 제공된 데이터를 저장할 수 있다. 또는, 메인 메모리(1200) 및 스토리지(1300)는 각각 프로세서(1100)의 요청에 따라 데이터를 독출하고, 독출된 데이터를 프로세서(1100)로 제공할 수 있다.
메인 메모리(1200)는 랜덤 액세스 메모리(RAM: Random Access Memory)를 포함할 수 있다. 예를 들어, 메인 메모리(1200)는 DRAM(Dynamic random access memory), SRAM(Static random access memory), TRAM(Thyristor RAM), Z-RAM(Zero capacitor RAM), 또는 TTRAM(Twin transistor RAM), MRAM 등을 포함할 수 있다.
바람직하게는, 메인 메모리(1200)는 DRAM 기반의 휘발성 메모리 장치일 수 있다. 예를 들어, 메인 메모리(1200)는 DDR(Double Data Rate), LPDDR(Low Power DDR), GDDR(Graphic DDR) 기반의 휘발성 메모리를 포함할 수 있다. 이 경우, 제 1 채널(CH1)은 DRAM 기반의 인터페이스(예를 들어, DDR, LPDDR, GDDR 등)로 구현될 수 있다. 본 명세서에서, '인터페이스'는 하드웨어 측면의 구현 예들(패드 수, 패드 배치, 내부 채널 수 등)과, 소프트웨어 측면의 구현 예들(프로토콜, 커맨드 등)을 포함할 수 있다. '인터페이스'의 구현 예들은 JEDEC 표준 문헌에 의해 정의된 규격을 포함할 수 있다.
스토리지(1300)는 불휘발성 메모리를 포함할 수 있다. 예를 들어, 스토리지(1300)는 EPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(Flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM (Spin-Transfer Torque MRAM), Conductive bridging RAM(CBRAM), FeRAM (Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM: RRAM), 나노튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory:NFGM), 홀로그래픽 메모리 (holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory) 등을 포함할 수 있다. 불휘발성 메모리의 단위 셀에는 1비트 또는 그보다 많은 비트들이 저장될 수 있다.
바람직하게는, 스토리지(1300)는 플래시 메모리 기반의 불휘발성 메모리 장치일 수 있다. 예를 들어, 스토리지(1300)는 SSD(Solid State Drive), eMMC(embedded Multi-Media Card), UFS(Universal Flash Storage) 카드, 임베디드(embedded) UFS 등을 포함할 수 있다. 이 경우, 제 2 채널(CH2)은 UFS, eMMC, SATA(Serial Advanced Technology Attachment), PCIe(Peripheral Component Interconnect Express), 및 USB(Universal Serial Bus) 기반의 인터페이스 등으로 구현될 수 있다. 다만, 상술한 예들은 본 발명을 제한하기 위한 것은 아니다.
이하에서, 설명의 편의를 위해, 메인 메모리(1200)가 단일 휘발성 메모리 장치를 포함하며, 스토리지(1300)가 단일 불휘발성 메모리 장치를 포함하는 것으로 가정한다.
본 발명의 메모리 시스템(1000)에서, 메인 메모리(1200)와 스토리지(1300)는서로 제 3 채널(CH3)을 통해 연결될 수 있다. 예를 들어, 메인 메모리(1200)와 스토리지(1300)는 서로 데이터(data), 커맨드(command), 어드레스(address) 등을 포함하는 필요한 정보를 교환할 수 있다. 메인 메모리(1200)와 스토리지(1300)는 각각 제 3 채널(CH3)을 구동하기 위한 별도의 인터페이스(미도시)를 포함할 수 있다.
제 3 채널(CH3)은 필요에 따라 다양한 형태의 인터페이스로 구현될 수 있다. 예를 들어, 제 3 채널(CH3)은 DRAM 기반의 인터페이스, UFS, eMMC, SATA, PCIe, 및 USB 기반의 인터페이스 등으로 구현될 수 있다. 혹은, 제 3 채널(CH3)은 데이터, 커맨드, 어드레스 중 필요한 정보만을 교환하기 위한 단순화된 인터페이스로 구현될 수 있다. 메인 메모리(1200)와 스토리지(1300)에 포함되는 별도의 인터페이스(미도시)는 다양한 형태로 구현될 수 있다. 다만, 상술한 예들은 본 발명을 제한하기 위한 것이 아니다.
예를 들어, 상술한 제 1 내지 제 3 채널(CH1~CH3) 각각은 PCB(Printed Circuit Board) 또는 메인보드 상에 형성되는 도전성 물질을 포함할 수 있다. 혹은, 제 1 내지 제 3 채널(CH1~CH3) 각각은 와이어 패턴(Wire Pattern), 트레이스 패턴(Trace Pattern) 등을 포함할 수 있다. 예를 들어, 도전성 물질은 와이어, 트레이스, 도전판(Conductive Plate) 등으로 구현될 수 있다.
메인 메모리(1200)는 프로세서(1100)에 의해 실행 중에 있는 프로그램과 해당 프로그램이 필요로 하는 데이터 등을 저장하는 저장 장치이다. 예를 들어, 메인 메모리(1200)는 스토리지(1300)로부터 읽어온 운영 체제(OS: Operating System), 메타 데이터, 어플리케이션 등을 저장할 수 있다. 스토리지(1300)는 메인 메모리(1200)의 한정된 기억 용량을 보조하기 위해 사용되는 저장 장치이다. 스토리지(1300)는 메모리 시스템(1000)의 전원이 차단되어도 저장된 데이터가 상실되지 않는 불휘발성 메모리로 구현될 수 있다. 예를 들어, 스토리지(1300)는 BIOS(Basic Input Output System), 운영 체제 등과 같이 부팅 시에 필요한 데이터를 저장할 수 있다. 일반적으로, 프로세서(1100)는 필요한 데이터를 스토리지(1300)로부터 독출하고, 독출된 데이터를 메인 메모리(1200)에 로드(load)하여 사용한다.
메인 메모리(1200)는 스토리지(1300)의 버퍼(buffer) 메모리로서 사용될 수 있다. 도 1에 도시되지 않았지만, 스토리지(1300)는 스토리지(1300)의 동작을 관리하기 위한 컨트롤러(도 9에서 후술)를 포함할 수 있다. 스토리지(1300)의 버퍼 메모리는 컨트롤러의 동작을 보조하기 위해 사용될 수 있다. 예를 들어, 스토리지(1300)의 버퍼 메모리는 스토리지(1300)의 컨트롤러의 동작에 필요한 데이터를 임시로 저장할 수 있다. 메인 메모리(1200)가 스토리지(1300)의 버퍼 메모리로 사용됨에 따라, 스토리지(1300)의 동작 효율이 향상될 수 있다.
본 발명의 실시 예에 따른 스토리지(1300)는 프로세서(1100)가 쓰기를 요청하거나 읽기를 요청한 데이터를 메인 메모리(1200)에 임시로 저장(버퍼링: buffering)할 수 있다. 또는, 스토리지(1300)는 스토리지(1300)를 관리하는 데에 필요한 메타 데이터를 메인 메모리(1200)에 로드(load)하여 사용할 수 있다. 메타 데이터는 스토리지(1300)가 동작하기 위해 필요하며 프로세서(1100)에 의해 액세스되지 않는 다양한 데이터를 포함할 수 있다. 예를 들어, 메타 데이터는 프로세서(1100)에서 사용되는 논리 주소들과 스토리지(1300)의 내부에서 사용되는 물리 주소들 사이의 사상(mapping) 정보를 포함할 수 있다. 스토리지(1300)는 제 3 채널(CH3)을 통해 메인 메모리(1200)를 직접 액세스할 수 있다. 스토리지(1300)에 의해 직접 액세스될 수 있는 메인 메모리(1200)의 다양한 실시 예들은 도 2 내지 도 8을 참조하여 설명될 것이다.
또한, 본 발명의 실시 예에 따른 메인 메모리(1200)는 제 3 채널(CH3)을 통해 메인 메모리(1200)의 메타 데이터를 스토리지(1300)로부터 제공받을 수 있다. 예를 들어, 메인 메모리(1200)가 복수의 메모리 장치를 포함하는 경우, 복수의 메모리 장치 각각은 다른 동작 특성을 가질 수 있다. 복수의 메모리 장치 각각의 동작을 최적화(optimization)하기 위해, 프로세서(1100)는 부팅(또는 초기화) 시 혹은 필요에 따라 복수의 메모리 장치 각각에 대한 트레이닝을 수행할 수 있다. 메인 메모리(1200)의 메타 데이터는 상술한 트레이닝 결과를 기초로 프로세서(1100)에 의해 생성될 수 있다. 생성된 메타 데이터는 스토리지(1300)에 저장된다.
예를 들어, 메타 데이터는 메인 메모리(1200)의 메모리 셀(미도시)의 워드(word) 라인 또는 뱅크(bank) 별 리프레시(refresh) 주기, 메모리 셀(미도시)의 셀 전압, 입력 기준 전압 등을 포함할 수 있다. 즉, 메타 데이터는 MRS(Mode Register Set) 또는 MPR(Multi-Purpose Register)에 저장되며, 메인 메모리(1200)의 동작 환경을 조절하는 다양한 데이터를 포함할 수 있다. 메모리 시스템(1000)의 부팅 시 또는 초기화 시, 스토리지(1300)는 저장된 메타 데이터를 메인 메모리(1200)에 제공할 수 있다.
메인 메모리(1200)가 스토리지(1300)에 저장된 메인 메모리(1200)의 메타 데이터를 사용함에 따라, 메인 메모리(1200)의 동작 효율이 향상될 수 있다. 이를 위해, 메인 메모리(1200)는 제 3 채널(CH3)을 통해 스토리지(1300)에 직접 액세스할 수 있다. 메인 메모리(1200)에 의해 직접 액세스될 수 있는 스토리지(1300)의 다양한 실시 예들은 도 9 내지 도 13을 참조하여 설명될 것이다.
이상에서는 제 3 채널(CH3)을 통해 서로 연결된 메인 메모리(1200) 및 스토리지(1300)를 포함하는 메모리 시스템(1000)에 대하여 간략히 설명되었다. 이러한 구성을 통해, 메모리 시스템(1000)은 메인 메모리(1200) 및 스토리지(1300)의 동작 효율 및 속도를 향상시킬 수 있다. 또한, 프로세서(1100)와 메인 메모리(1200) 사이의 기존 인터페이스 및 프로세서(1100)와 스토리지(1300) 사이의 기존 인터페이스를 유지하면서, 메모리 시스템(1000)은 메인 메모리(1200)와 스토리지(1300) 사이의 새로운 인터페이스를 구현할 수 있다. 결과적으로, 본 발명의 메모리 시스템(1000)은 기존 구조에서 제 3 채널(CH3) 만을 추가하여 메인 메모리(1200)와 스토리지(1300)의 사용 효율을 향상시킬 수 있다.
도 2는 도 1에 도시된 메인 메모리의 예시적인 구성을 보여주는 블록도이다. 도 2를 참조하면, 메인 메모리(1200a)는 제 1 메모리 셀 어레이(1210), 제 2 메모리 셀 어레이(1220), 메모리 컨트롤러 인터페이스(MC I/F, 1230), 그리고 보조 인터페이스(Auxiliary I/F, 1240)를 포함할 수 있다.
제 1 메모리 셀 어레이(1210)에는 제 1 채널(CH1) 및 메모리 컨트롤러 인터페이스(1230)를 통해 프로세서(1100)로부터 제공된 데이터가 저장될 수 있다. 또한, 제 1 메모리 셀 어레이(1210)에 저장된 데이터는 메모리 컨트롤러 인터페이스(1230) 및 제 1 채널(CH1)을 통해 프로세서(1100)에 제공될 수 있다. 제 1 채널(CH1) 및 메모리 컨트롤러 인터페이스(1230)는 제 1 입출력 패스(I/O Path1)를 형성할 수 있다. 제 2 메모리 셀 어레이(1220)에는 제 3 채널(CH3) 및 보조 인터페이스(1240)를 통해 스토리지(1300)로부터 제공된 데이터가 저장될 수 있다. 또한, 제 2 메모리 셀 어레이(1220)에 저장된 데이터는 보조 인터페이스(1240) 및 제 3 채널(CH3)을 통해 스토리지(1300)에 제공될 수 있다. 제 3 채널(CH3) 및 보조 인터페이스(1240)는 제 2 입출력 패스(I/O Path2)를 형성할 수 있다.
제 1 메모리 셀 어레이(1210)는 제 1 입출력 패스를 통해 프로세서(1100)에 의해 액세스될 수 있다. 제 1 메모리 셀 어레이(1210)는 프로세서(1100)에 의해 메인 메모리 영역으로 사용될 수 있다. 제 2 메모리 셀 어레이(1220)는 제 2 입출력 패스를 통해 스토리지(1300)에 의해 액세스될 수 있다. 제 2 메모리 셀 어레이(1220)는 스토리지(1300)에 의해 스토리지(1300)의 버퍼 메모리로서 사용될 수 있다. 도 2의 실시 예에서, 제 1 메모리 셀 어레이(1210)는 제 2 메모리 셀 어레이(1220)와 물리적으로 분리될 수 있다. 따라서, 제 1 입출력 패스를 통한 액세스는 제 2 입출력 패스를 통한 액세스와 충돌하지 않을 수 있다.
예를 들어, 제 1 및 제 2 메모리 셀 어레이(1210, 1220)의 저장 공간의 크기는 각각 메인 메모리(1200a)의 제조 시에 결정될 수 있다. 제 1 및 제 2 메모리 셀 어레이(1210, 1220)의 저장 공간의 크기는 각각 필요에 의해 다양한 크기로 결정될 수 있다. 예를 들어, 제 1 메모리 셀 어레이(1210)의 저장 공간의 크기는 제 2 메모리 셀 어레이(1220)의 저장 공간의 크기보다 크도록 설계될 수 있다.
메모리 컨트롤러 인터페이스(1230)는 제 1 채널(CH1)을 통해 프로세서(1100)와 연결된다. 메모리 컨트롤러 인터페이스(1230)는 상술한 제 1 채널(CH1)의 인터페이스를 구동하기 위한 다양한 형태의 회로를 포함할 수 있다. 상술한 바와 같이, 메모리 컨트롤러 인터페이스(1230)는 프로세서(1100)로부터 제 1 채널(CH1)을 통해 제공된 데이터를 제 1 메모리 셀 어레이(1210)에 전달할 수 있다. 또는 메모리 컨트롤러 인터페이스(1230)는 제 1 메모리 셀 어레이(1210)에 저장된 데이터를 제 1 채널(CH1)을 통해 프로세서(1100)에 전달할 수 있다.
보조 인터페이스(1240)는 제 3 채널(CH1)을 통해 프로세서(1100)와 연결된다. 보조 인터페이스(1240)는 상술한 제 3 채널(CH3)의 인터페이스를 구동하기 위한 다양한 형태의 회로를 포함할 수 있다. 상술한 바와 같이, 보조 인터페이스(1240)는 스토리지(1300)로부터 제 3 채널(CH3)을 통해 제공된 데이터를 제 2 메모리 셀 어레이(1220)에 전달할 수 있다. 또는, 보조 인터페이스(1240)는 제 2 메모리 셀 어레이(1220)에 저장된 데이터를 제 3 채널(CH3)을 통해 스토리지(1300)에 전달한다.
도시되지 않았지만, 메인 메모리(1200a)는 데이터의 입출력 동작을 위한 DLL(Delay Locked Loop), 전압 생성기, 커맨드 디코더(command decoder), 컬럼 디코더(column decoder), 로우 디코더(row decoder) 등의 주변 회로(peripheral circuit)를 더 포함할 수 있다. 제 1 및 제 2 메모리 셀 어레이(1210, 1220)는 DLL, 전압 생성기, 커맨드 디코더 등을 공유할 수 있다. 또한, 제 1 및 제 2 메모리 셀 어레이(1210, 1220)는 공유된 회로들에 의해 구동될 수 있다. 예를 들어, 제 1 및 제 2 메모리 셀 어레이(1210, 1220)에 입력되는 데이터와 제 1 및 제 2 메모리 셀 어레이(1210, 1220)로부터 출력되는 데이터는 공유된 DLL로부터 생성된 클록 신호에 의해 동기화될 수 있다. 따라서, 메인 메모리(1200a)는 동일한 동작 방식(예를 들어, 동기화 방식, 시그널링 방식 등)으로 제 1 입출력 패스를 통한 액세스와 제 2 입출력 패스를 통한 액세스를 처리할 수 있다.
도 3은 도 2의 메인 메모리를 포함하는 메모리 시스템의 동작을 설명하기 위한 그림이다. 도 3을 참조하면, 메모리 시스템(1000a)이 부팅(booting) 또는 초기화를 시작한 이후, 메모리 시스템(1000a)의 동작이 도시되었다.
먼저, 메모리 컨트롤러(1110)는 메모리 컨트롤러 인터페이스(1230)와 핸드셰이킹(hand shaking1)을 하고, 스토리지 컨트롤러(1120)는 스토리지(1300)의 스토리지 컨트롤러 인터페이스(미도시)와 핸드셰이킹(hand shaking2)을 한다(단계 ①). 예를 들어, 메모리 컨트롤러(1110) 및 스토리지 컨트롤러(1120)는 각각 메인 메모리(1200a) 및 스토리지(1300)에 신호를 전송하여, 메인 메모리(1200a) 및 스토리지(1300)가 각각 데이터를 송신 및 수신할 준비가 되었는지 여부를 확인한다. 핸드셰이킹에 이어, 메모리 컨트롤러(1110)는 제 1 메모리 셀 어레이(1210)의 저장 공간을 인식한다. 또한, 스토리지 컨트롤러(1120)는 스토리지(1300)의 저장 공간을 인식한다. 구체적으로, 예를 들어, 메모리 컨트롤러(1110) 및 스토리지 컨트롤러(1120)는 각각 메인 메모리(1200a) 및 스토리지(1300)의 ODT(On-Die Termination) 동작 확인, 송수신되는 데이터 또는 커맨드/어드레스 등의 타이밍(timing) 확인, 송수신되는 데이터 또는 커맨드/어드레스 등의 스큐(Skew) 보정 등을 수행할 수 있다.
메인 메모리(1200a) 및 스토리지(1300)가 동작 준비를 완료한 뒤, 스토리지(1300)는 보조 인터페이스(1240)와 핸드셰이킹(hand shaking3)을 한다(단계 ②). 핸드셰이킹에 이어, 스토리지(1300)는 제 2 메모리 셀 어레이(1220)의 저장 공간을 인식한다.
도 3의 실시 예에서, 핸드셰이킹(hand shaking3)이 핸드셰이킹(hand shaking1) 및 핸드셰이킹(hand shaking2) 이후에 수행되는 것으로 도시되었다. 다만, 이는 예시적인 것으로, 본 발명은 이에 제한되지 않는다. 즉, 핸드셰이킹(hand shaking3)은 핸드셰이킹(hand shaking1) 및 핸드셰이킹(hand shaking2) 이전에 수행될 수 있다. 또한, 핸드셰이킹(hand shaking3)은 핸드셰이킹(hand shaking1) 및 핸드셰이킹(hand shaking2)와 동시에 수행될 수 있다. 이는 이후의 실시 예에도 동일하게 적용된다. 즉, 도 5의 실시 예 또는 도 13의 실시 예에서도, 핸드셰이킹(hand shaking3)은 핸드셰이킹(hand shaking1) 및 핸드셰이킹(hand shaking2) 이전에 수행되거나, 핸드셰이킹(hand shaking1) 및 핸드셰이킹(hand shaking2)와 동시에 수행될 수 있다.
이어, 프로세서(1100), 메인 메모리(1200a), 그리고 스토리지(1300)는 서로 데이터를 교환한다(단계 ③). 예를 들어, 프로세서(1100)는 제 1 채널(CH1)을 통해 메인 메모리(1200a)와 데이터를 교환한다. 프로세서(1100)는 제 2 채널(CH2)을 통해 스토리지(1300)와 데이터를 교환한다. 예를 들어, 스토리지(1300)는 프로세서(1100)로부터 제공된 메인 메모리(1200a)의 메타 데이터를 저장할 수 있다. 또한, 스토리지(1300)는 제 3 채널(CH3)을 통해 메인 메모리(1200a)와 데이터를 교환한다. 도 1에서 설명된 바와 같이, 메인 메모리(1200a)는 스토리지(1300)의 버퍼 메모리로서 사용될 수 있다. 또한, 스토리지(1300)는 저장된 메인 메모리(1200a)의 메타 데이터를 메인 메모리(1200a)에 제공할 수 있다. 제 1 메모리 셀 어레이(1210)는 제 2 메모리 셀 어레이(1220)와 물리적으로 구분되어 있기 때문에, 제 1 채널(CH1)을 통한 액세스는 제 3 채널(CH3)을 통한 액세스와 충돌하지 않는다. 결과적으로, 스토리지(1300) 및 메인 메모리(1200a)가 각각 서로를 보조하기 위한 저장 장치로 사용되기 때문에, 스토리지(1300) 및 메인 메모리(1200a)의 사용 효율이 향상된다.
도 4는 본 발명의 다른 실시 예에 따른 도 1에 도시된 메인 메모리를 보여주는 블록도이다. 도 1 및 도 4를 참조하면, 메인 메모리(1200b)는 메모리 컨트롤러 인터페이스(1230), 보조 인터페이스(1240), 그리고 메모리 셀 어레이(1250)를 포함할 수 있다.
도 2와 비교하여, 메인 메모리(1200b)는 분리된 메모리 셀 어레이가 아닌 단일의 메모리 셀 어레이를 포함한다. 메모리 컨트롤러 인터페이스(1230) 및 보조 인터페이스(1240)의 구성은 도 2에서 설명된 바와 동일하다. 따라서, 이에 대한 설명은 생략한다.
메모리 셀 어레이(1250)는 제 1 메모리 영역(1251) 및 제 2 메모리 영역(1252)을 포함할 수 있다. 제 1 메모리 영역(1251)은 제 1 주소들과 대응할 수 있다. 제 2 메모리 영역(1252)은 제 2 주소들과 대응될 수 있다. 여기서, 제 2 주소들은 제 1 주소들과 동일한 주소를 포함하지 않도록 설정될 수 있다. 제 1 주소들 및 제 2 주소들은 프로세서(1100)에 의해 할당될 수 있다.
제 1 메모리 영역(1251)에는 제 1 채널(CH1) 및 메모리 컨트롤러 인터페이스(1230)를 통해 프로세서(1100)로부터 제공된 데이터가 저장될 수 있다. 또한, 제 1 메모리 영역(1251)에 저장된 데이터는 메모리 컨트롤러 인터페이스(1230) 및 제 1 채널(CH1)을 통해 프로세서(1100)에 제공될 수 있다. 제 2 메모리 영역(1252)에는 제 3 채널(CH3) 및 보조 인터페이스(1240)를 통해 스토리지(1300)로부터 제공된 데이터가 저장될 수 있다. 또한, 제 2 메모리 영역(1252)에 저장된 데이터는 보조 인터페이스(1240) 및 제 3 채널(CH3)을 통해 스토리지(1300)에 제공될 수 있다.
제 1 메모리 영역(1251)은 제 1 입출력 패스(I/O Path1)를 통해 프로세서(1100)에 의해 액세스될 수 있다. 제 1 메모리 영역(1251)은 프로세서(1100)에 의해 메인 메모리 영역으로 사용될 수 있다. 제 2 메모리 영역(1252)은 제 2 입출력 패스(I/O Path2)를 통해 스토리지(1300)에 의해 액세스될 수 있다. 제 2 메모리 영역(1252)은 스토리지(1300)에 의해 버퍼 메모리 영역으로 사용될 수 있다. 도 4의 실시 예에서, 제 1 메모리 영역(1251)은 프로세서(1100)에 의해 할당된 제 1 주소들 및 제 2 주소들에 의해 제 2 메모리 영역(1252)과 분리될 수 있다.
예를 들어, 메인 메모리(1200b)는 뱅크 인터리빙(bank interleaving) 방식으로 액세스 가능하도록 구현될 수 있다. 이 경우, 제 1 메모리 영역(1251)은 제 2 메모리 영역(1252)에 포함된 뱅크들 외의 뱅크들을 포함할 수 있다. 추가적으로, 메인 메모리(1200b)는 뱅크들을 뱅크 그룹으로 구분하여 구성할 수 있다. 즉, 제 1 메모리 영역(1251)에 포함된 뱅크들은 제 1 뱅크 그룹으로 할당되고, 제 2 메모리 영역(1252)에 포함된 뱅크들은 제 2 뱅크 그룹으로 할당될 수 있다. 여기서, 제 1 뱅크 그룹은 제 1 입출력 버퍼(미도시)와 연결되고, 제 2 뱅크 그룹은 제 1 입출력 버퍼와 구분된 제 2 입출력 버퍼(미도시)와 연결될 수 있다. 제 1 입출력 버퍼는 메모리 컨트롤러 인터페이스(1230)와 연결될 수 있다. 제 1 입출력 버퍼는 제 1 뱅크 그룹으로부터 독출된 데이터를 차례로 메모리 컨트롤러 인터페이스(1230)에 제공한다. 제 2 입출력 버퍼는 보조 인터페이스(1240)와 연결될 수 있다. 제 2 입출력 버퍼는 제 2 뱅크 그룹으로부터 독출된 데이터를 차례로 보조 인터페이스(1240)에 제공한다. 상술한 구현 예를 통해, 제 1 입출력 패스를 통한 액세스는 제 2 입출력 패스를 통한 액세스와 충돌하지 않을 수 있다. 다만, 본 발명은 상술한 구현 예에 제한되지 않는다.
제 1 메모리 영역(1251) 및 제 2 메모리 영역(1252)의 저장 공간의 크기는 각각 프로세서(1100)에 의해 할당된 제 1 주소들 및 제 2 주소들에 의해 결정된다. 제 1 메모리 영역(1251) 및 제 2 메모리 영역(1252)의 저장 공간의 크기는 각각 필요에 의해 다양한 크기로 결정될 수 있다. 예를 들어, 제 1 메모리 영역(1251)의 저장 공간의 크기는 제 2 메모리 영역(1252)의 저장 공간의 크기보다 크도록 할당될 수 있다.
프로세서(1100)에 의해, 할당된 제 2 주소들(또는, 제 1 주소들도 함께)은 스토리지(1300)에 제공될 수 있다. 또는, 필요한 경우, 제 2 주소들(또는, 제 1 주소들도 함께)은 각각 메모리 컨트롤러(1110) 또는 스토리지 컨트롤러(1120)로 제공될 수 있다. 예를 들어, 메모리 컨트롤러(1110) 및 스토리지 컨트롤러(1120)는 제 2 주소들(제공된 경우, 제 1 주소들도 함께)의 OOB(Out of Bound)를 확인할 수 있다.
제 1 주소들 및 제 2 주소들은 필요한 경우에 프로세서(1100)에 의해 재할당(reallocation)될 수 있다. 예를 들어, 제 1 주소들에 대응하는 제 1 메모리 영역(1251)이 저장된 데이터에 의해 가득 찬 경우에, 프로세서(1100) 및 스토리지(1300) 중 적어도 하나는 제 1 메모리 영역(1251) 및 제 2 메모리 영역(1252)의 재할당 요청을 생성할 수 있다. 재할당 요청에 응답하여, 프로세서(1100)는 제 1 메모리 영역(1251)의 저장 공간의 크기가 증가하도록 제 1 주소들을 재할당할 수 있다. 제 1 주소들을 재할당함과 동시에, 프로세서(1100)는 제 2 메모리 영역(1252)의 저장 공간의 크기가 감소하도록 제 2 주소들을 재할당할 수 있다.
프로세서(1100)에 의해, 재할당된 제 2 주소들(또는, 제 1 주소들도 함께)은 스토리지(1300)로 다시 제공된다. 스토리지(1300)는 재할당된 제 2 주소들(제공된 경우, 제 1 주소들도 함께)을 업데이트한다. 또한, 필요한 경우, 재할당된 제 2 주소들(또는, 제 1 주소들도 함께)은 각각 메모리 컨트롤러(1110) 또는 스토리지 컨트롤러(1120)에 다시 제공될 수 있다. 메모리 컨트롤러(1110) 또는 스토리지 컨트롤러(1120)는 각각 재할당된 제 2 주소들(제공된 경우, 제 1 주소들도 함께)을 업데이트할 수 있다. 메모리 컨트롤러(1110)는 재할당된 제 1 주소들에 대응하는 제 1 메모리 영역(1251)을 액세스할 수 있고, 스토리지(1300)는 재할당된 제 2 주소들에 대응하는 제 2 메모리 영역(1252)을 액세스할 수 있다. 도 4의 실시 예에 따르면, 프로세서(1100)는 제 1 및 제 2 주소들에 의해 제 1 및 제 2 메모리 영역(1251, 1252)의 저장 공간의 크기를 조절할 수 있다. 따라서, 프로세서(1100)는 동작 상황에 따라 효율적으로 제 1 및 제 2 메모리 영역(1251, 1252)을 관리할 수 있다.
도 5 및 도 6은 도 4의 메인 메모리를 포함하는 메모리 시스템의 동작을 설명하기 위한 그림이다.
도 5를 참조하면, 메모리 시스템(1000b)이 부팅 또는 초기화를 시작한 이후, 메인 메모리(1200b)를 포함하는 메모리 시스템(1000b)의 동작이 도시되었다. 먼저, 메모리 컨트롤러(1110)는 메모리 컨트롤러 인터페이스(1230)와 핸드셰이킹(hand shaking1)을 하고, 스토리지 컨트롤러(1120)는 스토리지(1300)의 스토리지 컨트롤러 인터페이스(미도시)와 핸드셰이킹(hand shaking2)을 한다(단계 ①).
프로세서(1100)는 제 1 메모리 영역(1251)과 제 2 메모리 영역(1252)을 할당한다(단계 ②). 프로세서(1100)는 제 1 메모리 영역(1251)과 제 2 메모리 영역(1252)에 각각 대응하도록 제 1 주소들 및 제 2 주소들을 할당한다. 상술한 바와 같이, 제 2 주소들은 제 1 주소들과 동일한 주소를 포함하지 않도록 설정될 수 있다. 필요한 경우, 프로세서(1100)는 할당된 제 2 주소들(또는, 제 1 주소들도 함께)을 메모리 컨트롤러(1110) 또는 스토리지 컨트롤러(1120)에 제공할 수 있다. 핸드셰이킹에 이어, 메모리 컨트롤러(1110)는 제 1 메모리 영역(1251)의 저장 공간을 인식한다. 또한, 스토리지 컨트롤러(1120)는 스토리지(1300)의 저장 공간을 인식한다.
스토리지 컨트롤러(1120)는 제 2 주소들(또는, 제 1 주소들도 함께)을 스토리지(1300)에 제공한다(단계 ③). 이어, 스토리지(1300)는 보조 인터페이스(1240)와 핸드셰이킹(hand shaking3)을 한다(단계 ④). 핸드셰이킹에 이어, 스토리지(1300)는 제 2 메모리 영역(1252)의 저장 공간을 인식한다.
메모리 시스템(1000b) 내의 저장 공간들이 메모리 컨트롤러(1110), 스토리지 컨트롤러(1120), 그리고 스토리지(1300)에 의해 각각 인식된 이후, 도 3에서 설명된 바와 같이, 프로세서(1100), 메인 메모리(1200b), 그리고 스토리지(1300)는 서로 데이터를 교환한다(단계⑤). 제 1 메모리 영역(1251)은 제 2 메모리 영역(1252)과 제 1 주소들 및 제 2 주소들에 의해 구분되어 있기 때문에, 제 1 채널(CH1)을 통한 액세스는 제 3 채널(CH3)을 통한 액세스와 충돌되지 않는다. 또한, 예를 들어, 도 4에서 설명된 바와 같이, 메인 메모리(1200b)는 뱅크 인터리빙 방식으로 액세스되고, 메인 메모리(1200b)에 포함된 뱅크들은 뱅크 그룹으로 구성될 수 있다. 이러한 실시 예에 의해, 제 1 채널(CH1)을 통한 액세스는 제 3 채널(CH3)을 통한 액세스와 충돌하지 않는다.
도 6을 참조하면, 제 1 메모리 영역(1251) 및 제 2 메모리 영역(1252)의 재할당 요청이 발생한 이후, 메모리 시스템(1000b)의 동작이 도시되었다. 먼저, 프로세서(1100) 및 스토리지(1300) 중 적어도 하나에 의해, 제 1 메모리 영역(1251) 및 제 2 메모리 영역(1252)의 재할당 요청이 생성될 수 있다(단계 ①).
프로세서(1100)는 제 1 메모리 영역(1251)과 제 2 메모리 영역(1252)을 재할당한다(단계 ②). 프로세서(1100)는 제 1 메모리 영역(1251)과 제 2 메모리 영역(1252)에 각각 대응하도록 제 1 주소들 및 제 2 주소들을 재할당한다. 프로세서(1100)는 재할당된 제 2 주소들(또는, 제 1 주소들도 함께) 스토리지(1300)로 다시 제공한다. 스토리지(1300)는 재할당된 제 2 주소들(제공된 경우, 제 1 주소들도 함께)을 업데이트한다. 필요한 경우, 재할당된 제 2 주소들(또는, 제 1 주소들도 함께)은 각각 메모리 컨트롤러(1110) 또는 스토리지 컨트롤러(1120)에 다시 제공될 수 있다. 메모리 컨트롤러(1110) 또는 스토리지 컨트롤러(1120)는 재할당된 제 2 주소들(제공된 경우, 제 1 주소들도 함께)을 업데이트할 수 있다.
스토리지(1300)는 재할당된 제 2 주소들에 대응하는 제 2 메모리 영역(1252)에 액세스하고, 제 2 메모리 영역(1252)과 데이터를 교환할 수 있다(단계 ④). 또한, 메모리 컨트롤러(1110)는 재할당된 제 1 주소들에 대응하는 제 1 메모리 영역(1251)에 액세스하고, 제 1 메모리 영역(1251)과 데이터를 교환할 수 있다.
도 7은 본 발명의 다른 실시 예에 따른 도 1에 도시된 메인 메모리를 보여주는 블록도이다. 도 2, 도 4 및 도 7을 참조하면, 메인 메모리(1200c)는 메모리 컨트롤러 인터페이스(1230), 그리고 보조 인터페이스(1240), 제 1 메모리 셀 어레이(1260), 제 2 메모리 셀 어레이(1270), 를 포함할 수 있다.
도 4와 비교하여, 메인 메모리(1200c)는 제 2 메모리 셀 어레이(1270)를 더포함한다. 메모리 컨트롤러 인터페이스(1230) 및 보조 인터페이스(1240)의 동작 및 구성은 도 2 및 도 4에서 설명된 바와 동일하다. 따라서, 이에 대한 설명은 생략한다.
제 1 메모리 셀 어레이(1260)는 제 1 메모리 영역(1261) 및 제 2 메모리 영역(1262)을 포함할 수 있다. 제 1 메모리 셀 어레이(1260)의 구성 및 동작은 도 4에서 설명된 메모리 셀 어레이(1250)와 유사하다. 즉, 제 1 메모리 영역(1261)은 제 1 주소들과 대응될 수 있고, 제 2 메모리 영역(1262)은 제 2 주소들과 대응될 수 있다. 제 1 주소들 및 제 2 주소들은 프로세서(1100)에 의해 할당될 수 있다. 제 1 메모리 영역(1261)은 제 1 입출력 패스(I/O Path1)를 통해 프로세서(1100)에 의해 액세스될 수 있다. 제 2 메모리 영역(1262)은 제 2 입출력 패스(I/O Path2)를 통해 스토리지(1300)에 의해 액세스될 수 있다. 예를 들어, 제 2 메모리 영역(1262)은 스토리지(1300)에 의해 스토리지(1300)의 버퍼 메모리로 사용될 수 있다.
제 2 메모리 셀 어레이(1270)는 제 3 입출력 패스(I/O Path3)를 통해 스토리지(1300)에 의해 액세스될 수 있다. 도 7의 실시 예에서, 제 2 메모리 셀 어레이(1270)는 제 1 메모리 셀 어레이(1260)와 물리적으로 분리될 수 있다. 따라서, 제 3 입출력 패스를 통한 액세스는 제 2 입출력 패스를 통한 액세스와 충돌하지 않을 수 있다. 예를 들어, 제 2 메모리 셀 어레이(1270)는 스토리지(1300)에 의해 스토리지(1300)의 버퍼 메모리로 사용될 수 있다.
도 7의 실시 예에서, 제 2 입출력 패스를 통한 액세스는 제 3 입출력 패스를 통한 액세스보다 낮은 우선 순위를 갖는다. 즉, 스토리지(1300)는 제 2 메모리 영역(1262)보다 제 2 메모리 셀 어레이(1270)을 우선적으로 액세스한다. 제 2 메모리 셀 어레이(1270)가 저장된 데이터에 의해 가득 찬 경우에, 스토리지(1300)는 제 2 메모리 영역(1262)을 액세스할 수 있다. 예를 들어, 초기 상태에서, 제 2 메모리 영역(1262)은 프로세서(1100)에 의해 할당되지 않을 수 있다. 따라서, 초기 상태에서, 스토리지(1300)는 제 2 메모리 영역(1262)을 액세스하지 못할 수 있다. 이 경우, 스토리지(1300) 및 프로세서(1100) 중 적어도 하나의 요청에 의해, 프로세서(1100)는 제 2 메모리 영역(1262)에 대응하는 제 2 주소들을 할당할 수 있다. 제 2 주소들이 할당된 경우, 제 2 주소들(또는, 제 1 주소들도 함께)은 스토리지(1300)에 제공될 수 있다. 제 2 주소들이 할당된 경우, 필요에 따라, 할당된 제 2 주소들(또는, 제 1 주소들도 함께)은 메모리 컨트롤러(1110) 또는 스토리지 컨트롤러(1120)로 제공될 수 있다.
도 4의 실시 예와 유사하게, 제 1 메모리 영역(1261) 및 제 2 메모리 영역(1262)은 필요한 경우에 프로세서(1100)에 의해 재할당될 수 있다. 즉, 프로세서(1100) 및 스토리지(1300) 중 적어도 하나에 의해 생성된 제 1 및 제 2 메모리 영역(1261, 1262)의 재할당 요청에 응답하여, 프로세서(1100)는 제 1 및 제 2 주소들을 재할당할 수 있다. 프로세서(1100)에 의해, 재할당된 제 2 주소들(또는, 제 1 주소들도 함께)은 스토리지(1300)에 제공된다. 스토리지(1300)는 재할당된 제 2 주소들(제공된 경우, 제 1 주소들도 함께)을 업데이트한다. 필요한 경우, 재할당된 제 2 주소들(또는, 제 1 주소들도 함께)은 메모리 컨트롤러(1110) 또는 스토리지 컨트롤러(1120)로 다시 제공될 수 있다. 메모리 컨트롤러(1110) 또는 스토리지 컨트롤러(1120)는 재할당된 제 2 주소들(제공된 경우, 제 1 주소들도 함께)을 업데이트할 수 있다. 메모리 컨트롤러(1110) 및 스토리지(1300)는 각각 재할당된 제 1 주소들 및 제 2 주소들과 대응하는 저장 공간에 액세스한다.
도 7 의 실시 예에서, 스토리지(1300)가 제 1 메모리 셀 어레이(1260)와 물리적으로 분리된 제 2 메모리 셀 어레이(1270)에 우선적으로 액세스한다. 따라서, 초기 상태에서, 프로세서(1100)는 스토리지(1300)가 액세스하기 위한 메인 메모리(1200c) 내의 주소들을 생성하지 않는다. 따라서, 프로세서(1100)의 연산 처리량이 줄어든다. 또한, 제 2 메모리 셀 어레이(1270)가 가득 찬 경우, 스토리지(1300)는 제 2 메모리 영역(1262)에 액세스한다. 상술한 바와 같이, 제 2 메모리 영역(1262)의 저장 공간의 크기는 프로세서(1100)에 의해 조절될 수 있다. 따라서, 프로세서(1100)는 동작 상황에 따라 효율적으로 제 1 및 제 2 메모리 영역(1261, 1262)을 관리할 수 있다.
도 8은 도 7의 메인 메모리를 포함하는 메모리 시스템의 동작을 설명하기 위한 그림이다. 도 3, 도 7 및 도 8을 참조하면, 제 1 및 제 2 메모리 영역(1261, 1262)의 재할당 요청이 발생한 이후, 메인 메모리(1200c)를 포함하는 메모리 시스템(1000c)의 동작이 도시되었다.
상술한 바와 같이, 초기 상태에서 제 2 메모리 영역(1252)가 할당되지 않을 수 있다. 제 1 및 제 2 메모리 영역(1261, 1262)의 재할당 요청이 발생하기 이전에, 스토리지(1300)는 제 2 메모리 셀 어레이(1270)에 액세스한다. 메모리 시스템(1000c)이 부팅 또는 초기화를 시작한 이후부터 재할당 요청이 발생하기 이전까지의 메모리 시스템(1000c)의 동작은 도 3을 참조하여 설명된 바와 동일하다. 따라서, 이에 대한 설명은 생략한다.
메모리 시스템(1000c)의 부팅 또는 초기화가 완료된 후, 스토리지(1300)는 제 2 메모리 셀 어레이(1270)와 필요한 데이터를 교환한다(단계 ①). 메모리 시스템(1000c)이 동작하는 과정에, 제 1 및 제 2 메모리 영역(1261, 1262)의 재할당 요청이 생성될 수 있다(단계 ②). 재할당 요청은 프로세서(1100) 및 스토리지(1300) 중 적어도 하나에 의해 생성될 수 있다. 프로세서(1100)는 제 1 메모리 영역(1261)과 제 2 메모리 영역(1262)을 재할당한다(단계 ③). 프로세서(1100)는 제 1 메모리 영역(1261)과 제 2 메모리 영역(1262)에 각각 대응하도록 제 1 주소들 및 제 2 주소들을 재할당한다.
프로세서(1100)는 재할당된 제 2 주소들(또는, 제 1 주소들도 함께)을 스토리지(1300)로 다시 제공한다(단계 ④). 스토리지(1300)는 재할당된 제 2 주소들(제공된 경우, 제 1 주소들도 함께)을 업데이트한다. 필요에 따라, 재할당된 제 2 주소들(또는, 제 1 주소들도 함께)은 각각 메모리 컨트롤러(1110) 또는 스토리지 컨트롤러(1120)에 다시 제공될 수 있다. 메모리 컨트롤러(1110) 또는 스토리지 컨트롤러(1120)는 재할당된 제 2 주소들(제공된 경우, 제 1 주소들도 함께)을 업데이트한다.
스토리지(1300)는 재할당된 제 2 주소들에 대응하는 제 2 메모리 영역(1252)에 액세스하고, 제 2 메모리 영역(1262)과 데이터를 교환할 수 있다(단계 ⑤). 또한, 메모리 컨트롤러(1110)는 재할당된 제 1 주소들에 대응하는 제 1 메모리 영역(1261)에 액세스하고, 제 1 메모리 영역(1261)과 데이터를 교환할 수 있다.
도 9 내지 도 11은 도 1에 도시된 메인 메모리와 연결된 스토리지 장치의 실시 예들을 보여주는 블록도이다. 도 1, 도 9 내지 도 11을 참조하면, 메인 메모리(1200)는 제 3 채널(CH3)을 통해 스토리지(1300)와 물리적으로 다양한 방법으로 연결될 수 있다.
도 9 내지 도 11의 실시 예들에서, 스토리지(1300a~1300c)는 컨트롤러(1310) 및 불휘발성 메모리(1320)를 포함할 수 있다. 컨트롤러(1310)는 불휘발성 메모리(1320)의 전반적인 동작을 제어한다. 또한, 컨트롤러(1310)는 프로세서(1100)의 스토리지 컨트롤러(1120)와 통신한다. 컨트롤러(1310)는 스토리지 컨트롤러(1120)와 통신하기 위한 스토리지 컨트롤러 인터페이스(SC I/F, 1311)를 포함할 수 있다.
스토리지 컨트롤러 인터페이스(1311)는 제 2 채널(CH2)을 통해 프로세서(1100)의 스토리지 컨트롤러(1120)와 연결된다. 스토리지 컨트롤러 인터페이스(1311)는 제 2 채널(CH2)의 인터페이스를 구동하기 위한 상술한 다양한 형태의 회로를 포함할 수 있다. 스토리지 컨트롤러 인터페이스(1311)는 프로세서(1100)로부터 제 2 채널(CH2)을 통해 제공된 데이터를 불휘발성 메모리(1320)에 전달하거나, 불휘발성 메모리(1320)로부터 독출된 데이터를 제 2 채널(CH2)을 통해 프로세서(1100)에 전달할 수 있다. 불휘발성 메모리(1320)는 도 1의 설명에서 기술한 다양한 불휘발성 메모리를 포함할 수 있다.
스토리지(1300)는 eMMC 형태로 구현될 수 있다. 예를 들어, 스토리지 컨트롤러 인터페이스(1311)는 병렬 인터페이스(예를 들어, MMC 인터페이스)일 수 있다. 예를 들어, 스토리지 컨트롤러 인터페이스(1311)는 직렬 인터페이스(예를 들어, UHS-II, UFS 인터페이스)일 수 있다. 예를 들어, 스토리지 컨트롤러 인터페이스(1311)는 낸드 인터페이스일 수 있다.
스토리지(1300)는 UFS 형태로 구현될 수 있다. 예를 들어, UFS 형태로 구현된 스토리지(1300)는 프로세서(1100)와 UFS 인터페이스로 통신할 수 있다. 또는, 스토리지(1300)는 프로세서(1100)와 UFS 인터페이스이 아닌 다른 인터페이스에 의해 통신하도록 브릿지(bridge)를 구비할 수 있다. 착탈형 UFS 카드 형태로 구현된 스토리지(1300)는 프로세서(1100)와 다양한 카드 인터페이스(예를 들어, UFDs, MMC, eMMC SD(secure digital), mini SD, Micro SD 등)에 의해 통신할 수 있다.
또는, 스토리지(1300)는 별도의 캐시 메모리(미도시)를 더 포함하는 SSD 형태로 구현될 수 있다. 예를 들어, 캐시 메모리는 휘발성 메모리 장치(예를 들어, DRAM 등)로 구현될 수 있다. 예를 들어, SSD 형태로 구현된 스토리지(1300)는 프로세서(1100)와 SATA, mSATA, PCIe 등의 인터페이스로 통신할 수 있다.
도 9를 참조하면, 스토리지(1300a)의 컨트롤러(1310)가 메인 메모리(1200)와 연결될 수 있다. 도 9의 실시 예에서, 컨트롤러(1310)는 보조 인터페이스(1312)를 더 포함할 수 있다. 스토리지(1300)는 보조 인터페이스(1312) 및 제 3 채널(CH3)을 통해 메인 메모리(1200)의 보조 인터페이스(1240)와 연결된다. 보조 인터페이스(1312)는 제 3 채널(CH3)의 인터페이스를 구동하기 위한 상술한 다양한 형태의 회로를 포함할 수 있다. 또한, 보조 인터페이스(1312)는 메인 메모리(1200)의 보조 인터페이스(1240)와 호환되도록 구성된다. 컨트롤러(1310)는 보조 인터페이스(1312)를 통해 메인 메모리(1200)와 필요한 데이터들(예를 들어, 데이터, 커맨드, 어드레스, 메인 메모리(1200)의 메타 데이터 등)을 교환할 수 있다.
도 10을 참조하면, 스토리지(1300b)의 불휘발성 메모리(1320)가 메인 메모리(1200)와 연결될 수 있다. 도 10의 실시 예에서, 불휘발성 메모리(1320)는 보조 인터페이스(1330)를 더 포함할 수 있다. 스토리지(1300)는 보조 인터페이스(1330) 및 제 3 채널(CH3)을 통해 메인 메모리(1200)의 보조 인터페이스(1240)와 연결된다. 도 10의 보조 인터페이스(1330)의 구성 및 동작은 도 9의 보조 인터페이스(1312)와 동일하다. 컨트롤러(1310)는 보조 인터페이스(1330)를 통해 메인 메모리(1200)와 필요한 데이터들을 교환할 수 있다.
도 11을 참조하면, 스토리지(1300c)의 컨트롤러(1310) 및 불휘발성 메모리(1320)는 각각 메인 메모리(1200)와 연결될 수 있다. 도 11의 실시 예에서, 컨트롤러(1310)는 제 1 보조 인터페이스(1312)를 더 포함할 수 있고, 불휘발성 메모리(1320)는 제 2 보조 인터페이스(1330)를 더 포함할 수 있다. 제 3 채널(CH3)은 분리된 두 개의 채널(CH3_1, CH3_2)을 포함할 수 있다. 여기서, 제 3 채널(CH3)의 구성(예를 들어, 채널의 개수, 순서 등)의 변화 없이, 분리된 두 개의 채널(CH3_1, CH3_2)은 제 3 채널(CH3)을 단순히 분리한 형태로 구현될 수 있다. 예를 들어, 제 3 채널(CH3)이 제 1 내지 제 10 도선을 포함하는 경우, 제 3 채널(CH3_1)은 제 1 내지 제 8 도선을 포함하고, 제 3 채널(CH3_2)은 제 9 및 제 10 도선을 포함하도록 구성될 수 있다.
컨트롤러(1310)는 제 1 보조 인터페이스(1312) 및 제 3 채널(CH3_1)을 통해 메인 메모리(1200)의 보조 인터페이스(1240)와 연결된다. 불휘발성 메모리(1320)는 제 2 보조 인터페이스(1330) 및 제 3 채널(CH3_2)을 통해 메인 메모리(1200)의 보조 인터페이스(1240)와 연결된다. 컨트롤러(1310)는 제 1 보조 인터페이스(1312)를 통해 메인 메모리(1200)와 필요한 데이터들을 교환할 수 있다. 또한, 컨트롤러(1310)의 제어에 의해, 불휘발성 메모리(1320)에 저장된 데이터는 제 2 보조 인터페이스(1330)를 통해 메인 메모리(1200)에 제공될 수 있다.
도 12 및 도 13의 예에서, 스토리지(1300)는 도 9에 도시된 스토리지(1300a)의 구성을 포함하는 것으로 가정한다. 다만, 본 발명은 도 10 및 도 11에 도시된 스토리지(1300b, 1300c)에도 쉽게 적용될 수 있다.
도 12는 도 9의 스토리지의 예시적인 구성을 보여주는 블록도이다. 도 1 및 도 12를 참조하면, 스토리지(1300a)는 컨트롤러(1310) 및 불휘발성 메모리(1320)를 포함할 수 있다. 또한, 컨트롤러(1310)는 스토리지 컨트롤러 인터페이스(1311) 및 보조 인터페이스(1312)를 포함할 수 있다. 컨트롤러(1310)의 구성 및 동작은 도 9를 참조하여 설명되었으므로, 이에 대한 설명은 생략한다.
불휘발성 메모리(1320)는 제 1 메모리 영역(1321) 및 제 2 메모리 영역(1322)을 포함할 수 있다. 제 1 메모리 영역(1321)은 메타 영역(Meta Area)과 대응할 수 있다. 예를 들어, 제 1 메모리 영역(1321)에는 스토리지(1300)의 메타 데이터, FTL(Flash Translation Layer) 실행 데이터, 펌웨어(firmware) 등이 저장될 수 있다. 예를 들어, 제 1 메모리 영역(1321)에는 메인 메모리(1200)의 메타 데이터가 더 저장될 수 있다. 도 1을 참조하여 설명된 바와 같이, 메인 메모리(1200)의 메타 데이터는 메인 메모리(1200)에서 수행된 트레이닝 결과를 기초로 프로세서(1100)에 의해 생성될 수 있다.
컨트롤러(1310)는 불휘발성 메모리(1320)에 저장된 메인 메모리(1200)의 메타 데이터를 메인 메모리(1200)에 제공할 수 있다. 메인 메모리(1200)는 제공된 메인 메모리(1200)의 메타 데이터를 사용하여 동작할 수 있다. 예를 들어, 상술한 바와 같이, 메타 데이터는 메인 메모리(1200)의 메모리 셀(미도시)의 워드 라인 별 리프레시 주기, 메모리 셀(미도시)의 셀 전압, 입력 기준 전압 등을 포함할 수 있다. 메타 데이터를 사용하여 메인 메모리(1200)는 최적화된 조건으로 설정될 수 있다. 따라서, 메인 메모리(1200)의 동작 효율이 향상될 수 있다. 또한, 도 1 및 도 2에서 설명된 바와 같이, 스토리지(1300a)는 메인 메모리(1200)를 버퍼 메모리로서 사용할 수 있다. 이 경우, 스토리지(1300a)는 스토리지(1300a)의 메타 데이터를 메인 메모리(1200)에 로드하여 사용할 수 있다.
제 2 메모리 영역(1322)은 데이터 영역(Data Area)과 대응할 수 있다. 제 2 메모리 영역(1322)에는 스토리지 컨트롤러(1120)와 컨트롤러(1310) 사이에서 교환되는 입출력 데이터가 저장될 수 있다. 또한, 제 2 메모리 영역(1322)에는 메인 메모리(1200)와 컨트롤러(1310) 사이에서 교환되는 입출력 데이터가 저장될 수 있다.
도 13은 도 12의 스토리지를 포함하는 메모리 시스템의 동작을 설명하기 위한 그림이다. 도 13을 참조하면, 스토리지(1300a)를 포함하는 메모리 시스템(1000d)이 부팅 또는 초기화를 시작한 이후, 메모리 시스템(1000d)의 동작이 도시되었다.
먼저, 메모리 컨트롤러(1110)는 메인 메모리(1200)의 메모리 컨트롤러 인터페이스(미도시)와 핸드셰이킹(hand shaking1)을 하고, 스토리지 컨트롤러(1120)는 스토리지 컨트롤러 인터페이스(1311)와 핸드셰이킹(hand shaking2)을 한다(단계 ①). 핸드셰이킹에 이어, 메모리 컨트롤러(1110)는 메인 메모리(1200)의 저장 공간을 인식한다. 또한, 스토리지 컨트롤러(1120)는 불휘발성 메모리(1320)의 제 2 메모리 영역(1322)의 저장 공간을 인식한다.
메인 메모리(1200) 및 스토리지(1300a)가 동작 준비를 완료한 뒤, 메인 메모리(1200)는 스토리지(1300)의 보조 인터페이스(1312)와 핸드셰이킹(hand shaking3)을 한다(단계 ②). 또한, 스토리지(1300a)는 메인 메모리(1200)의 일정 저장 공간을 인식한다. 예를 들어, 스토리지(1300a)가 인식하는 메인 메모리(1200)의 저장 공간은 프로세서(1100)가 인식하는 메인 메모리(1200)의 저장 공간과 구분될 수 있다.
이어, 프로세서(1100)는 메인 메모리(1200) 및 스토리지(1300a)의 트레이닝을 각각 수행한다(단계 ③). 예를 들어, 트레이닝은 메인 메모리(1200) 및 스토리지(1300a)의 동작을 최적화하기 위한 I/O 트레이닝 등을 포함할 수 있다. 프로세서(1100)는 메인 메모리(1200)의 트레이닝 결과를 기초로 메인 메모리(1200)의 메타 데이터를 생성한다. 프로세서(1100)는 생성된 메타 데이터를 컨트롤러(1310)에 제공한다. 컨트롤러(1310)는 제 1 메모리 영역(1321)에 메타 데이터를 저장한다.
컨트롤러(1310)는 요청에 의해 저장된 메타 데이터를 메인 메모리(1200)에 제공한다(단계 ④). 예를 들어, 요청은 메모리 컨트롤러(1110), 스토리지 컨트롤러(1120), 컨트롤러(1310) 등으로부터 생성될 수 있다. 또한, 요청은 프로세서(1100)가 메인 메모리(1200)에 액세스하는 경우, 메모리 시스템(1000d)이 부팅되거나 초기화되는 경우, 메인 메모리(1200)의 트레이닝이 새로 수행되는 경우 등에 생성될 수 있다. 메인 메모리(1200)는 제공된 메타 데이터를 저장한다.
예를 들어, 메인 메모리(1200)는 모드 레지스터(mode register, 1280)를 더 포함할 수 있다. 모드 레지스터(1280)는 메인 메모리(1200)의 다양한 기능들, 동작 모드들, 동작 환경 등을 설정하기 위한 설정 정보를 저장하는 회로(또는 장치)이다. 도 1 내지 도 12에서, 도시되지 않았지만, 메인 메모리(1200a~1200c)는 모드 레지스터(1280)를 더 포함할 수 있다.
메인 메모리(1200)는 모드 레지스터(1280)에 메타 데이터에 포함된 설정 정보를 저장할 수 있다. 메인 메모리(1200)는 모드 레지스터(1280)에 저장된 정보에 따라 동작 조건을 설정한다. 메인 메모리(1200)는 설정된 동작 조건을 기초로 읽기, 쓰기, 리프레시 동작 등을 수행한다. 메인 메모리(1200) 및 스토리지(1300a)의 설정이 완료된 후, 프로세서(1100), 메인 메모리(1200), 그리고 스토리지(1300a)는 서로 데이터를 교환한다(단계 ⑤). 예를 들어, 구체적으로, 스토리지(1300a)는 스토리지(1300a)의 메타 데이터를 메인 메모리(1200)에 로드하여 사용할 수 있다. 또한, 스토리지(1300a)는 스토리지(1300a)와 메인 메모리(1200) 사이에서 교환되는 입출력 데이터를 메인 메모리(1200)에 임시 저장하여 사용할 수 있다.
도 14 및 도 15는 다른 실시 예에 따른 도 1의 메모리 시스템의 동작을 설명하기 위한 그림이다. 도 1 및 도 14를 참조하면, 스토리지(1300)는 프로세서(1100)로부터 메인 메모리(1200)에 제공된 커맨드를 스토리지(1300)의 백 그라운드 동작을 위한 커맨드로 이용할 수 있다.
먼저, 프로세서(1100)는 메인 메모리(1200)에 제 1 커맨드(CMD1)를 제공한다(단계 ①). 예를 들어, 프로세서(1100)는 메인 메모리(1200)가 제 1 커맨드(CMD1)에 따른 동작을 수행하는 동안 메인 메모리(1200)에 액세스하지 못할 수 있다. 예를 들어, 제 1 커맨드(CMD1)는 메인 메모리(1200)의 셀프-리프레시(self-refresh) 커맨드, 메인 메모리(1200)가 파워 다운(power down) 모드에 진입하도록 하기 위한 커맨드 등을 포함할 수 있다.
메인 메모리(1200)는 제 1 커맨드(CMD1)를 기초로 생성한 제 2 커맨드(CMD2)를 스토리지(1300) 제공한다(단계 ②). 제 2 커맨드(CMD2)는 스토리지(1300)가 백그라운드 동작을 수행하도록 하기 위한 커맨드이다. 메인 메모리(1200)가 제 1 커맨드(CMD1)에 따른 동작을 수행하기 전에, 메인 메모리(1200)는 제 1 커맨드(CMD1)를 기초로 제 2 커맨드(CMD2)를 생성한다. 도시되지 않았지만, 메인 메모리(1200)는 제 1 커맨드(CMD1)를 디코딩하는 커맨드 디코더, 디코딩된 커맨드를 스토리지(1300)가 인식 가능한 제 2 커맨드(CMD2)로 변환하는 변환 회로 등을 더 포함할 수 있다.
스토리지(1300)가 플래시 메모리를 기반으로 구현되는 경우, 스토리지(1300)는 데이터를 기입하기 전에 기입할 공간의 이레이즈 동작을 블록 단위로 수행해야 한다. 이는 플래시 메모리가 하드 디스크(hard disk)와 달리 덮어쓰기 동작을 지원하지 않기 때문이다. 따라서, 플래시 메모리 기반의 스토리지(1300)는 플래시 메모리의 고유의 특성에 따른 백그라운드 동작을 수행해야 한다. 예를 들어, 백그라운드 동작은 웨어 레벨링(wear-leveling) 동작, 가비지 콜렉션(garbage collection) 동작 등을 포함할 수 있다. 웨어 레벨링은 플래시 메모리 셀의 마모도를 균등하게 분배하기 위한 동작이다. 예를 들어, 웨어 레벨링을 통해, 마모도가 높은 메모리 셀과 마모도가 낮은 메모리 셀 사이에서 데이터가 교환되는 스왑(swap) 동작이 수행될 수 있다. 가비지 콜렉션은 제 1 블록의 유효한 데이터들을 제 2 블록으로 옮기고, 제 1 블록을 지우거나 무효화하는 동작이다. 가비지 콜렉션에 의해, 플래시 메모리는 무효 공간을 확보(또는 정리)할 수 있다. 즉, 제 2 커맨드(CMD2)는 스토리지(1300)가 웨어 레벨링, 가비지 콜렉션 등의 백그라운드 동작을 수행하도록 하기 위한 커맨드이다.
메인 메모리(1200) 및 스토리지(1300)는 각각 제 1 커맨드(CMD1) 및 제 2 커맨드(CMD2)에 따른 동작을 수행한다(단계 ③). 상술한 바와 같이, 프로세서(1100)가 메인 메모리(1200)에 액세스하지 않는 동안, 메인 메모리(1200)는 제 1 커맨드(CMD1)에 따른 동작을 수행한다. 메인 메모리(1200)가 제 1 커맨드(CMD1)에 따른 동작을 수행하는 동안, 스토리지(1300)는 백그라운드 동작을 동시에 수행할 수 있다. 메인 메모리(1200) 및 스토리지(1300)가 각각 각각 제 1 커맨드(CMD1) 및 제 2 커맨드(CMD2)에 따른 동작을 동시에 수행할 수 있는 이유는 다음과 같다.
일반적으로, 프로세서(1100)는 스토리지(1300)의 데이터를 직접 사용하지 않는다. 이는 일반적으로 스토리지(1300)의 동작 속도보다 메인 메모리(1200)의 동작 속도가 빠르기 때문이다. 즉, 프로세서(1100)는 연산 과정에서 생성된 데이터를 메인 메모리(1200)에 기입하여 사용한다. 또한, 프로세서(1100)가 필요한 데이터가 메인 메모리(1200)에 없는 경우, 프로세서(1100)는 필요한 데이터를 스토리지(1300)로부터 독출하고, 독출된 데이터를 메인 메모리(1200)에 기입 또는 로드(load)하여 사용한다. 따라서, 프로세서(1100)가 메인 메모리(1200)에 액세스하지 않는 동안, 프로세서(1100)는 스토리지(1300)에 액세스하지 않는다. 결과적으로, 프로세서(1100)가 메인 메모리(1200)에 액세스하지 않는 시간 동안, 스토리지(1300)는 백그라운드 동작을 수행할 수 있다.
도 14의 실시 예에 따르면, 메인 메모리(1200)가 특정 동작을 수행하는 동안, 프로세서(1100)는 스토리지(1300)의 백그라운드 동작을 위한 제 2 커맨드(CMD2)를 스토리지(1300)에 제공하지 않는다. 즉, 이 경우, 프로세서(1100)는 제 2 커맨드(CMD2)를 생성하거나 스토리지(1300)에 액세스하지 않는다. 따라서, 프로세서(1100)의 동작 부담이 줄어들고, 프로세서(1100)의 커맨드 효율이 증가할 수 있다.
도 1 및 도 15를 참조하면, 프로세서(1100)의 요청에 의해, 스토리지(1300)는 스토리지(1300)에 저장된 데이터를 메인 메모리(1200)에 직접 로드할 수 있다.
도 14에서 설명된 바와 같이, 프로세서(1100)가 필요한 데이터가 메인 메모리(1200)에 없는 경우, 프로세서(1100)는 필요한 데이터를 스토리지(1300)로부터 독출하고, 독출된 데이터를 메인 메모리(1200)에 기입 또는 로드하여 사용한다. 예를 들어, 메인 메모리(1200)에 기입 또는 로드되는 데이터는 OS 부트(boot) 이미지(image), 어플리케이션 인스턴스(instance) 등을 포함할 수 있다.
도 15에 나타낸 것과 달리, 메모리 시스템(1000)은 제 3 채널(CH3)을 포함하지 않을 수 있다. 즉, 메인 메모리(1200)는 스토리지(1300)와 직접 연결되지 않을 수 있다. 이 경우, 프로세서(1100)의 요청에 의해, 스토리지(1300)로부터 독출된 데이터는 프로세서(1100)를 거쳐 메인 메모리(1200)에 기입 또는 로드된다.
반면, 도 15에 나타낸 것과 같이, 메인 메모리(1200)는 제 3 채널(CH3)을 통해 스토리지(1300)와 직접 연결될 수 있다. 도 15의 실시 예에서, 프로세서(1100)의 요청에 의해, 스토리지(1300)로부터 독출된 데이터는 제 3 채널(CH3)을 통해 직접 메인 메모리(1200)에 기입 또는 로드된다. 예를 들어, 메인 메모리(1200)는 프로세서(1100) 및 스토리지(1300)에 의해 공유된 공유 메모리 영역(1290)을 포함할 수 있다.
도 15에 도시된 메모리 시스템(1000)의 구체적인 동작 방법은 다음과 같다. 먼저, 프로세서(1100)는 스토리지(1300)에 데이터 로드 요청(data load request)을 송신한다(단계 ①). 데이터 로드 요청에 응답하여, 스토리지(1300)는 요청된 데이터를 독출하고, 독출된 데이터를 제 3 채널(CH3)을 통해 메인 메모리(1200)에 제공한다(단계 ②). 이 때, 스토리지(1300)는 공유 메모리 영역(1290)에 독출된 데이터를 저장할 수 있다. 프로세서(1100)는 제 1 채널(CH1)을 통해 공유 메모리 영역(1290)에 액세스한다(단계 ③). 이어, 프로세서(1100)는 공유 메모리 영역(1290)으로부터 요청한 데이터를 독출한다(단계 ④). 도 15의 실시 예에 따르면, 스토리지(1300)로부터 메인 메모리(1200)에 데이터가 직접 로드되기 때문에, 스토리지(1300)로부터 독출된 데이터가 메인 메모리(1200)에 기입 또는 로드되는 속도가 빨라진다.
도 16은 도 1에 도시된 메모리 시스템이 집적된 패키지를 보여주는 그림이다. 도 16에서, eMCP(embedded Multi-Chip Package)가 도시되었다. eMCP(10000)는 메모리 장치(11000), 스토리지 장치(12000), 컨트롤러(13000), 인터포저(Interposer, 14000), 그리고 솔더 볼(15000)을 포함할 수 있다.
메모리 장치(11000)는 도 1 내지 도 14를 참조하여 설명된 메인 메모리들(1200a~1200c) 중 적어도 하나를 포함할 수 있다. 메모리 장치(11000)는 보조 인터페이스(11100)를 포함할 수 있다. 보조 인터페이스(11100)는 도 1 내지 도 8에 도시된 보조 인터페이스(1240)와 대응할 수 있다. 스토리지 장치(12000)는 도 1 내지 도 14을 참조하여 설명된 불휘발성 메모리(1320)를 포함할 수 있다. 컨트롤러(13000)는 도 1 내지 도 14을 참조하여 설명된 컨트롤러(1310)를 포함할 수 있다. 컨트롤러(13000)는 보조 인터페이스(13100)를 포함할 수 있다. 보조 인터페이스(13100)는 도 9 내지 도 13을 통해 설명된 보조 인터페이스(1312)와 대응할 수 있다.
도 16의 실시 예에서, 메모리 장치(11000)는 보조 인터페이스(11100) 및 인터포저(14000)를 통해 컨트롤러(13000)의 보조 인터페이스(13100)와 통신할 수 있다. 예를 들어, 메모리 장치(11000)의 보조 인터페이스(11100)는 본딩 와이어(bonding wire)를 통해 인터포저(14000)와 연결될 수 있다. 혹은, 메모리 장치(11000)의 보조 인터페이스(11100)는 TSV(Through Silicon Via)를 통해 인터포저(14000)와 연결될 수 있다. 메모리 장치(11000)와 유사하게, 스토리지 장치(12000) 및 컨트롤러(13000) 각각은 인터포저(14000)와 연결될 수 있다. 도 9 내지 도 11의 각각의 실시 예에 따라, 메모리 장치(11000)는 스토리지 장치(12000) 및 컨트롤러(13000) 중 적어도 하나와 연결될 수 있다. 다만, 상술한 예들은 본 발명을 제한하기 위한 것이 아니며, 메모리 장치(11000), 스토리지 장치(12000), 및 컨트롤러(13000)는 서로 다양한 방법으로 연결될 수 있다.
메모리 장치(11000) 및 컨트롤러(13000)는 각각 인터포저(14000) 및 솔더 볼(15000)을 통해 eMCP(10000) 외부의 프로세서(미도시)와 연결될 수 있다. 메모리 장치(11000)는 스토리지 장치(12000) 및 프로세서(미도시)와 각각 도 1 내지 도 15를 참조하여 설명된 방법에 의해 통신할 수 있다. 이와 유사하게, 스토리지 장치(12000)는 메모리 장치(11000) 및 프로세서(미도시)와 각각 도 1 내지 도 15를 참조하여 설명된 방법에 의해 통신할 수 있다.
도 16에서는 메모리 장치(11000), 스토리지 장치(12000), 그리고 컨트롤러(13000)가 단일 패키지 내에 집적된 eMCP(10000)가 도시되었다. 다만, 이는 예시적인 것으로 본 발명은 이에 제한되지 않는다. 즉, 본 발명은 eMCP(10000)를 프로세서 칩과 함께 집적한 ePoP(embedded Package on Package) 형태, 스토리지 장치(12000) 및 컨트롤러(13000)를 eMMC 형태로 집적하고 보드(board) 상에서 프로세서 및 메인 메모리와 연결된 형태 등 다양한 방법에 의해 구현될 수 있다.
도 17은 도 1의 메모리 시스템을 포함하는 이동식 전자 장치를 보여주는 블록도이다. 도 17을 참조하면, 이동식 전자 장치(20000)는 영상 처리기(21000), 무선 통신 블록(22000), 오디오 처리기(23000), 스토리지(24000), 메인 메모리(25000), 유저 인터페이스(26000), 및 프로세서(27000)를 포함할 수 있다. 예를 들어, 이동식 전자 장치(20000)는 이동 통신 단말기, PDA, PMP, 디지털 카메라, 스마트폰, 태블릿, 웨어러블(Wearable) 장치 등 중 하나일 수 있다.
영상 처리기(21000)는 렌즈(21100)를 통해 빛을 제공받을 수 있다. 영상 처리기(21000)에 포함되는 이미지 센서(21200) 및 영상 신호 처리기(21300)는 제공받은 빛에 기초하여 영상을 생성할 수 있다.
무선 통신 블록(22000)은 안테나(22100), 송수신기(22200), 및 모뎀(22300)을 포함할 수 있다. 무선 통신 블록(22000)은 GSM, CDMA, WCDMA, HSPA, EV-DO, LTE, WiMax, WiFi, WiFi 다이렉트, WiBro, RFID, Bluetooth, NFC 등과 같은 다양한 무선 통신 규약들 중 적어도 하나에 따라 이동식 전자 장치(20000)의 외부와 통신할 수 있다.
모뎀(22300)은 무선 통신 규약을 처리하기 위해 통신 회로(들)를 포함할 수 있다. 예를 들어, 모뎀(22300)은 통신 회로 칩으로 구현될 수 있고 이동식 전자 장치(20000)에 장착될 수 있다. 오디오 처리기(23000)는 오디오 신호 처리기(23100)를 이용하여 오디오 신호를 처리할 수 있다. 오디오 처리기(23000)는 마이크(23200)를 통해 오디오 입력을 수신하거나, 스피커(23300)를 통해 오디오 출력을 제공할 수 있다.
스토리지(24000)는 전원 공급과 무관하게 보존을 필요로 하는 데이터를 저장할 수 있다. 예로서, 스토리지(24000)는 플래시 메모리, PRAM, MRAM, ReRAM, FRAM 등 중 하나 이상을 포함할 수 있다. 메모리 컨트롤러(24100)의 제어에 따라, 메모리 장치(24200)는 데이터를 저장하거나 저장된 데이터를 출력할 수 있다.
메인 메모리(25000)는 이동식 전자 장치(20000)의 동작에 이용되는 데이터를 일시적으로 저장할 수 있다. 예로서, 메인 메모리(25000)는 이동식 전자 장치(20000)의 워킹(Working) 메모리, 연산(Operation) 메모리, 버퍼(Buffer) 메모리 등으로 이용될 수 있다. 메인 메모리(25000)는 프로세서(27000)에 의해 처리된 또는 처리될 데이터를 일시적으로 저장할 수 있다.
스토리지(24000) 및 메인 메모리(25000)는 본 발명의 실시 예에 따라 동작할 수 있다. 즉, 스토리지(24000)는 도 1 내지 도 15을 참조하여 설명된 스토리지(1300) 및 스토리지 장치(12000) 중 적어도 하나를 포함할 수 있다. 메인 메모리(25000)는 도 1 내지 도 15를 참조하여 설명된 메인 메모리(1200) 및 메모리 장치(11000) 중 적어도 하나를 포함할 수 있다. 스토리지(24000)는 채널(CH)을 통해 메인 메모리(25000)와 연결될 수 있다.
유저 인터페이스(26000)는 프로세서(27000)의 제어에 따라 사용자와 이동식 전자 장치(20000) 사이의 인터페이싱을 처리할 수 있다. 예로서, 유저 인터페이스(26000)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서 등과 같은 입력 인터페이스를 포함할 수 있다. 예로서, 유저 인터페이스(26000)는 표시 장치, 모터 등과 같은 출력 인터페이스를 포함할 수 있다. 예로서, 표시 장치는 LCD(Liquid Crystal Display), LED(Light Emitting Diode) 디스플레이, OLED(Organic LED) 디스플레이, AMOLED(Active Matrix OLED) 디스플레이 등 중 하나 이상을 포함할 수 있다.
프로세서(27000)는 이동식 전자 장치(20000)의 전반적인 동작들을 제어할 수 있다. 영상 처리기(21000), 무선 통신 블록(22000), 오디오 처리기(23000), 스토리지(24000), 및 메인 메모리(25000)는 프로세서(27000)의 제어에 따라 유저 인터페이스(26000)를 통해 제공되는 사용자 명령을 수행할 수 있다. 영상 처리기(21000), 무선 통신 블록(22000), 오디오 처리기(23000), 스토리지(24000), 및 메인 메모리(25000)는 프로세서(27000)의 제어에 따라 유저 인터페이스(26000)를 통해 사용자에게 서비스를 제공할 수 있다.
프로세서(27000)는 SoC(System on Chip)로 구현될 수 있다. 예로서, 프로세서(27000)는 어플리케이션 프로세서(Application Processor)를 포함할 수 있다. 스토리지(24000), 메인 메모리(25000), 그리고 프로세서(27000)는 도 1 내지 도 16을 참조하여 설명된 동작 방법에 의해 동작할 수 있다. 따라서, 이동식 전자 장치(20000)내의 메모리 시스템의 동작 효율이 향상될 수 있다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 위에서 설명한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.

Claims (10)

  1. 프로세서와 연결되도록 구성된 제 1 인터페이스 회로, 상기 제 1 인터페이스 회로와 구분된 제 2 인터페이스 회로를 포함하는 스토리지 장치; 그리고
    디램(DRAM) 인터페이스를 기초로 상기 프로세서와 연결되도록 구성된 제 3 인터페이스 회로, 상기 제 3 인터페이스 회로와 구분되며 상기 제 2 인터페이스 회로와 연결된 제 4 인터페이스 회로, 그리고 제 1 메모리 영역 및 제 2 메모리 영역으로 구분된 랜덤 액세스 메모리(random access memory)를 포함하는 메모리 장치를 포함하되,
    상기 제 1 메모리 영역은 상기 제 3 인터페이스를 통해 상기 프로세서에 의해 액세스(access)되고, 상기 제 2 메모리 영역은 상기 제 2 인터페이스 회로 및 상기 제 4 인터페이스 회로를 통해 상기 스토리지 장치에 의해 액세스되는 메모리 시스템.
  2. 제 1 항에 있어,
    상기 제 1 메모리 영역은 상기 메모리 장치의 제 1 메모리 셀 어레이와 대응하고, 상기 제 2 메모리 영역은 상기 제 1 메모리 셀 어레이와 물리적으로 분리된 상기 메모리 장치의 제 2 메모리 셀 어레이와 대응하는 메모리 시스템.
  3. 제 1 항에 있어,
    상기 제 1 메모리 영역은 상기 프로세서로부터 할당되는 제 1 주소들과 대응하고, 상기 제 2 메모리 영역은 상기 제 1 주소들과 구분되도록 상기 프로세서로부터 할당되는 제 2 주소들과 대응하는 메모리 시스템.
  4. 제 3 항에 있어,
    상기 프로세서 및 상기 스토리지 장치 중 적어도 하나의 요청에 응답하여, 상기 제 1 주소들 및 제 2 주소들이 재할당되는 메모리 시스템.
  5. 제 1 항에 있어,
    상기 메모리 장치는:
    상기 제 1 메모리 영역 및 상기 제 2 메모리 영역을 포함하는 제 1 메모리 셀 어레이; 그리고
    상기 제 1 메모리 셀 어레이와 물리적으로 구분된 제 2 메모리 셀 어레이를 더 포함하되,
    상기 제 1 메모리 영역은 상기 프로세서로부터 할당되는 제 1 주소들과 대응하고, 상기 제 2 메모리 영역은 상기 제 1 주소들과 구분되도록 상기 프로세서로부터 할당되는 제 2 주소들과 대응하는 메모리 시스템.
  6. 제 5 항에 있어,
    상기 제 2 메모리 셀 어레이는 상기 제 2 메모리 영역보다 우선적으로 상기 스토리지 장치에 의해 액세스되는 메모리 시스템.
  7. 제 5 항에 있어,
    상기 프로세서 및 상기 스토리지 장치 중 적어도 하나의 요청에 응답하여, 상기 제 1 주소들 및 제 2 주소들이 재할당되는 메모리 시스템.
  8. 제 1 항에 있어,
    상기 스토리지 장치는, 상기 메모리 장치의 트레이닝 결과를 기초로 생성된 상기 메모리 장치의 메타 데이터를 저장하도록 구성된 메모리 시스템.
  9. 제 8 항에 있어,
    상기 스토리지 장치는, 상기 제 2 인터페이스 회로 및 상기 제 4 인터페이스 회로를 통해, 상기 메타 데이터를 상기 메모리 장치로 제공하는 메모리 시스템.
  10. 스토리지 장치 및 상기 스토리지 장치와 연결된 메모리 장치를 포함하는 메모리 시스템의 동작 방법에 있어,
    프로세서가 상기 스토리지 장치와 핸드셰이킹(hand-shaking)을 하고, 상기 프로세서가 상기 메모리 장치와 핸드셰이킹을 하는 단계;
    상기 프로세서에서, 상기 메모리 장치를 제 1 메모리 영역과 제 2 메모리 영역으로 구분하고, 상기 제 1 메모리 영역을 제 1 주소들로 할당하고, 상기 제 2 메모리 영역을 제 2 주소들로 할당하는 단계;
    상기 프로세서가 상기 제 2 주소들을 상기 스토리지 장치에 제공하는 단계; 그리고
    상기 스토리지 장치가 상기 메모리 장치와 핸드셰이킹하는 단계를 포함하는 동작 방법.
KR1020170020634A 2017-02-15 2017-02-15 메모리 시스템 및 그것의 동작 방법 KR20180094386A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170020634A KR20180094386A (ko) 2017-02-15 2017-02-15 메모리 시스템 및 그것의 동작 방법
US15/829,101 US10394305B2 (en) 2017-02-15 2017-12-01 Memory system and method of operating the same
CN201810066954.0A CN108427650B (zh) 2017-02-15 2018-01-23 存储器系统及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170020634A KR20180094386A (ko) 2017-02-15 2017-02-15 메모리 시스템 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20180094386A true KR20180094386A (ko) 2018-08-23

Family

ID=63105137

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170020634A KR20180094386A (ko) 2017-02-15 2017-02-15 메모리 시스템 및 그것의 동작 방법

Country Status (3)

Country Link
US (1) US10394305B2 (ko)
KR (1) KR20180094386A (ko)
CN (1) CN108427650B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10460791B2 (en) * 2018-02-17 2019-10-29 Micron Technology, Inc. Systems and methods for generating stagger delays in memory devices
KR102365312B1 (ko) 2021-06-17 2022-02-23 삼성전자주식회사 스토리지 컨트롤러, 연산 스토리지 장치, 및 연산 스토리지 장치의 동작 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5420984A (en) * 1992-06-30 1995-05-30 Genroco, Inc. Apparatus and method for rapid switching between control of first and second DMA circuitry to effect rapid switching beween DMA communications
US20050251617A1 (en) 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
KR100725100B1 (ko) * 2005-12-22 2007-06-04 삼성전자주식회사 포트간 데이터 전송기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치
KR100772841B1 (ko) * 2006-07-28 2007-11-02 삼성전자주식회사 프로세서들간 호스트 인터페이싱 기능을 갖는 멀티패쓰억세스블 반도체 메모리 장치
US8074034B2 (en) 2007-07-25 2011-12-06 Agiga Tech Inc. Hybrid nonvolatile ram
US8341300B1 (en) * 2007-08-30 2012-12-25 Virident Systems, Inc. Systems for sustained read and write performance with non-volatile memory
US8341311B1 (en) 2008-11-18 2012-12-25 Entorian Technologies, Inc System and method for reduced latency data transfers from flash memory to host by utilizing concurrent transfers into RAM buffer memory and FIFO host interface
KR102031661B1 (ko) * 2012-10-23 2019-10-14 삼성전자주식회사 데이터 저장 장치 및 컨트롤러, 그리고 데이터 저장 장치의 동작 방법
US20140146589A1 (en) * 2012-11-29 2014-05-29 Samsung Electronics Co., Ltd. Semiconductor memory device with cache function in dram
KR20150098649A (ko) 2012-12-22 2015-08-28 퀄컴 인코포레이티드 비-휘발성 메모리의 이용을 통한 휘발성 메모리의 전력 소비 감소
US9454214B2 (en) 2013-03-12 2016-09-27 Intel Corporation Memory state management for electronic device
US20140304453A1 (en) 2013-04-08 2014-10-09 The Hong Kong Polytechnic University Effective Caching for Demand-based Flash Translation Layers in Large-Scale Flash Memory Storage Systems
KR102188062B1 (ko) 2014-02-28 2020-12-07 삼성전자 주식회사 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법
US10268382B2 (en) * 2015-06-18 2019-04-23 Mediatek Inc. Processor memory architecture

Also Published As

Publication number Publication date
US10394305B2 (en) 2019-08-27
US20180232042A1 (en) 2018-08-16
CN108427650B (zh) 2021-12-17
CN108427650A (zh) 2018-08-21

Similar Documents

Publication Publication Date Title
US9417998B2 (en) Apparatus and method to provide cache move with non-volatile mass memory system
US10943183B2 (en) Electronics device performing software training on memory channel and memory channel training method thereof
US11513971B2 (en) Address mapping method and operation method of storage device
KR102523327B1 (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US11861359B2 (en) Storage device and method of operating the same
US11775211B2 (en) Memory controller and method of operating the same
CN108427650B (zh) 存储器系统及其操作方法
US11520519B2 (en) Storage device and method of operating the same
US12056359B2 (en) Storage device, electronic device including storage device, and operating method thereof
CN113867619B (zh) 存储器控制器及其操作方法
US11815938B2 (en) Storage device and method of operating the same
US20240289034A1 (en) Computing system and method of operating the same
US12007887B2 (en) Method and system for garbage collection
US20230103797A1 (en) Memory controller and method of operating the same
US12056356B2 (en) Storage device, electronic device including the same, and operating method thereof
US12105988B2 (en) Memory controller for reducing the number of error bits in read data and memory system including the same
US20240045806A1 (en) Storage device, electronic device including the same, and operating method thereof
US20240004578A1 (en) Memory system and method of operating memory controller included in the memory system
TW202338622A (zh) 儲存裝置及其操作方法
KR20230011214A (ko) 스토리지 장치 및 이의 동작 방법
TW202437123A (zh) 計算系統及其操作方法