KR20220125836A - 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 포함하는 전자 장치 - Google Patents

스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 포함하는 전자 장치 Download PDF

Info

Publication number
KR20220125836A
KR20220125836A KR1020210028321A KR20210028321A KR20220125836A KR 20220125836 A KR20220125836 A KR 20220125836A KR 1020210028321 A KR1020210028321 A KR 1020210028321A KR 20210028321 A KR20210028321 A KR 20210028321A KR 20220125836 A KR20220125836 A KR 20220125836A
Authority
KR
South Korea
Prior art keywords
nonvolatile memory
groups
memory chips
host device
storage device
Prior art date
Application number
KR1020210028321A
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 KR1020210028321A priority Critical patent/KR20220125836A/ko
Priority to US17/511,752 priority patent/US20220283912A1/en
Priority to EP21208197.0A priority patent/EP4053705B1/en
Priority to CN202111414963.2A priority patent/CN115033498A/zh
Publication of KR20220125836A publication Critical patent/KR20220125836A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • 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/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0653Monitoring storage devices or systems
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • G11C29/765Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • 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
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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/7206Reconfiguration of flash memory system
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명의 스토리지 장치는 복수의 불휘발성 메모리 칩들을 포함한다. 본 발명의 스토리지 장치의 동작 방법은 스토리지 장치가 복수의 불휘발성 메모리 칩들의 각각의 용량의 정보를 외부의 호스트 장치에 제공하는 단계, 스토리지 장치가 외부의 호스트 장치로부터 복수의 그룹들의 정보를 수신하는 단계, 그리고 스토리지 장치가 복수의 불휘발성 메모리 칩들을 복수의 그룹들과 매핑하는 단계를 포함한다.

Description

스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 포함하는 전자 장치{STORAGE DEVICE, OPERATING METHOD OF STORAGE DEVICE, AND ELECTRONIC DEVICE INCLUDING STORAGE DEVICE}
본 발명은 전자 장치에 관한 것으로, 더 상세하게는 향상된 유연성으로 저장 공간을 관리하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 포함하는 전자 장치에 관한 것이다.
스토리지 장치는 불휘발성 메모리 칩들을 포함하고, 그리고 불휘발성 메모리 칩들에 데이터를 저장할 수 있다. 불휘발성 메모리 칩들은 플래시 메모리 칩들, 강유전체 메모리 칩들, 자기 메모리 칩들, 상 변화 메모리 칩들, 자기 메모리 칩들과 같은 다양한 메모리 칩들을 포함할 수 있다.
스토리지 장치는 호스트 장치에 불휘발성 메모리 칩들의 용량의 정보를 제공할 수 있다. 호스트 장치는 불휘발성 메모리 칩들의 용량의 정보에 기반하여, 스토리지 장치에 쓰기, 읽기 또는 소거를 요청할 수 있다. 스토리지 장치는 호스트 장치의 요청에 응답하여, 불휘발성 메모리 칩들에 대해 쓰기, 읽기 또는 소거를 수행할 수 있다.
불휘발성 메모리 칩들의 신뢰도는 불휘발성 메모리 칩들에 대한 쓰기, 읽기 또는 소거가 반복될수록 감소한다. 불휘발성 메모리 칩들의 신뢰도가 감소함에 따라, 특정한 불휘발성 메모리 칩에 저장된 데이터를 복원할 수 없는 페일이 발생할 수 있다.
본 발명의 목적은 호스트 장치가 스토리지 장치의 저장 공간을 더 유연하게 관리하는 기능을 지원하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 포함하는 전자 장치를 제공하는 데에 있다.
복수의 불휘발성 메모리 칩들을 포함하는 본 발명의 실시 예에 따른 스토리지 장치의 동작 방법은 스토리지 장치가 복수의 불휘발성 메모리 칩들의 각각의 용량의 정보를 외부의 호스트 장치에 제공하는 단계, 스토리지 장치가 외부의 호스트 장치로부터 복수의 그룹들의 정보를 수신하는 단계, 그리고 스토리지 장치가 복수의 불휘발성 메모리 칩들을 복수의 그룹들과 매핑하는 단계를 포함한다.
본 발명의 실시 예에 따른 스토리지 장치는 복수의 불휘발성 메모리 칩들, 그리고 외부의 호스트 장치로부터 복수의 그룹들의 정보를 수신하고, 복수의 그룹들의 각각에 복수의 불휘발성 메모리 칩들 중 적어도 하나의 불휘발성 메모리 칩을 매핑하는 메모리 제어기를 포함한다. 외부의 호스트 장치로부터 복수의 그룹들 중 하나의 그룹에 대한 액세스 요청이 수신되는 것에 응답하여, 제어기는 복수의 불휘발성 메모리 칩들 중 하나의 그룹에 대응하는 적어도 하나의 불휘발성 메모리 칩을 액세스한다.
본 발명의 실시 예에 따른 전자 장치는 중앙 처리 장치, 중앙 처리 장치에 의해 동작 메모리로 사용되는 랜덤 액세스 메모리, 그리고 중앙 처리 장치에 의해 랜덤 액세스 메모리로 로드되는 데이터의 원본 데이터를 저장하고, 그리고 중앙 처리 장치에 의해 생성되는 데이터를 저장하는 스토리지 장치를 포함한다. 스토리지 장치는 복수의 불휘발성 메모리 칩들, 그리고 중앙 처리 장치로부터 복수의 그룹들의 정보를 수신하고, 복수의 그룹들의 각각에 복수의 불휘발성 메모리 칩들 중 적어도 하나의 불휘발성 메모리 칩을 매핑하는 메모리 제어기를 포함한다. 중앙 처리 장치로부터 복수의 그룹들 중 하나의 그룹에 대한 액세스 요청이 수신되는 것에 응답하여, 제어기는 복수의 불휘발성 메모리 칩들 중 하나의 그룹에 대응하는 적어도 하나의 불휘발성 메모리 칩을 액세스한다. 복수의 불휘발성 메모리 칩들 중 적어도 하나의 불휘발성 메모리 칩에서 페일이 발생하는 것에 기반하여, 메모리 제어기는 복수의 그룹들과 복수의 불휘발성 메모리 장치들 사이의 매핑을 갱신한다.
본 발명에 따르면, 스토리지 장치는 불휘발성 메모리 칩들의 각각의 정보를 호스트 장치에 제공하고, 그리고 호스트 장치의 요청에 따라 호스트 장치에 의해 제공되는 그룹들 및 불휘발성 메모리 칩들을 매핑할 수 있다. 스토리지 장치는 특정한 그룹에 대한 호스트 장치의 액세스 요청에 기반하여, 대응하는 불휘발성 메모리 칩을 액세스할 수 있다. 따라서, 호스트 장치가 스토리지 장치의 저장 공간을 더 유연하게 관리하는 기능을 지원하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 포함하는 전자 장치가 제공된다.
도 1은 본 발명의 제1 실시 예에 따른 전자 장치를 보여준다.
도 2는 통합 모드에서 스토리지 장치 및 호스트 장치가 저장 공간을 설정하는 예를 보여준다.
도 3은 통합 모드에서 메모리 제어기가 도 2의 과정에 기반하여 제1 내지 제4 불휘발성 메모리 칩들의 저장 공간들을 호스트 장치에 제공하는 예를 보여준다.
도 4는 통합 모드에서 호스트 장치가 스토리지 장치를 액세스하는 예를 보여준다.
도 5는 개별 모드에서 스토리지 장치 및 호스트 장치가 저장 공간을 설정하는 예를 보여준다.
도 6은 통합 모드에서 메모리 제어기가 도 5의 과정에 기반하여 제1 내지 제4 불휘발성 메모리 칩들의 저장 공간들을 호스트 장치에 제공하는 예를 보여준다.
도 7은 개별 모드에서 호스트 장치가 스토리지 장치를 액세스하는 예를 보여준다.
도 8은 스토리지 장치 및 호스트 장치가 개별 모드를 구성하는 과정의 예를 보여준다.
도 9는 스토리지 장치 및 호스트 장치가 개별 모드의 구성을 갱신하는 예를 보여준다.
도 10은 페일의 검출에 응답하여 네임스페이스들이 갱신되는 제1 예를 보여준다.
도 11은 페일의 검출에 응답하여 네임스페이스들이 갱신되는 제2 예를 보여준다.
도 12는 페일의 검출에 응답하여 네임스페이스들이 갱신되는 제3 예를 보여준다.
도 13은 스토리지 장치 및 호스트 장치가 개별 모드의 구성을 갱신하는 다른 예를 보여준다.
도 14는 본 발명의 실시 예에 따른 불휘발성 메모리 칩을 보여주는 블록도이다.
도 15는 본 발명의 실시 예에 따른 전자 장치를 보여준다.
도 16은 본 발명의 일 실시 예에 따른 스토리지 장치가 적용된 전자 장치를 도시한 도면이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 제1 실시 예에 따른 전자 장치(10)를 보여준다. 도 1을 참조하면, 전자 장치(10)는 스토리지 장치(100) 및 호스트 장치(20)를 포함할 수 있다. 스토리지 장치(100)는 호스트 장치(20)의 쓰기, 읽기 또는 소거 요청에 응답하여 쓰기, 읽기 또는 소거 동작을 수행할 수 있다.
스토리지 장치(100)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140) 및 메모리 제어기(150)를 포함할 수 있다. 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)은 플래시 메모리 칩들, 강유전체 메모리 칩들, 자기 메모리 칩들, 상 변화 메모리 칩들, 자기 메모리 칩들과 같은 다양한 메모리 칩들을 포함할 수 있다.
제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)은 동일한 또는 서로 다른 타입의 메모리 칩들을 포함할 수 있다. 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)은 동일한 또는 서로 다른 용량들을 가질 수 있다. 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)은 동일한 또는 서로 다른 구조들에 기반하여 동작할 수 있다.
메모리 제어기(150)는 제1 채널(CH1)을 통해 제1 불휘발성 메모리 칩(110)을 액세스할 수 있다. 메모리 제어기(150)는 제2 채널(CH2)을 통해 제2 불휘발성 메모리 칩(120)을 액세스할 수 있다. 메모리 제어기(150)는 제3 채널(CH3)을 통해 제3 불휘발성 메모리 칩(130)을 액세스할 수 있다. 메모리 제어기(150)는 제4 채널(CH4)을 통해 제4 불휘발성 메모리 칩(140)을 액세스할 수 있다.
메모리 제어기(150)는 외부의 호스트 장치(20)의 액세스 요청에 응답하여 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)을 액세스할 수 있다. 액세스 요청은 쓰기 요청, 읽기 요청 또는 소거 요청을 포함할 수 있다. 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)에 대한 액세스는 쓰기 동작, 읽기 동작 또는 소거 동작을 포함할 수 있다.
메모리 제어기(150)는 호스트 장치(20)의 요청에 응답하여 스토리지 장치(100)를 통합 모드 또는 개별 모드로 제어할 수 있다. 통합 모드에서, 메모리 제어기(150)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 저장 공간들을 통합하여 호스트 장치(20)에 제공할 수 있다. 개별 모드에서, 메모리 제어기(150)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 저장 공간들을 개별적으로 호스트 장치(20)에 제공할 수 있다.
메모리 제어기(150)는 하나의 채널 또는 둘 이상의 서로 독립적인 채널들을 통해 호스트 장치(20)와 통신할 수 있다. 둘 이상의 서로 독립적인 채널들은 레인들(lanes) 또는 통신 프로토콜에 의해 정해진 다른 이름으로 불릴 수 있다.
도 1에서, 하나의 불휘발성 메모리 칩이 하나의 채널을 통해 메모리 제어기(150)와 통신하는 것으로 도시된다. 그러나 둘 이상의 불휘발성 메모리 칩이 하나의 채널을 공유하여 메모리 제어기(150)와 통신할 수 있다. 또는, 하나의 채널에 둘 이상의 불휘발성 메모리 칩들이 연결될 수 있다.
도 1에서, 스토리지 장치(100)는 4개의 불휘발성 메모리 칩들 및 4개의 채널들을 포함하는 것으로 도시된다. 그러나 스토리지 장치(100)에 포함되는 불휘발성 메모리 칩들의 수 및 불휘발성 메모리 칩들과 메모리 제어기 사이의 채널들의 수는 한정되지 않는다.
도 2는 통합 모드에서 스토리지 장치(100) 및 호스트 장치(20)가 저장 공간을 설정하는 예를 보여준다. 도 1 및 도 2를 참조하면, S110 단계에서, 스토리지 장치(100)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 총 저장 공간의 정보를 호스트 장치(20)에 제공할 수 있다. 예를 들어, 스토리지 장치(100)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 저장 공간들 중에서 호스트(20)에 제공되도록 지정된 총 저장 공간들의 정보를 호스트 장치(20)에 제공할 수 있다.
S120 단계에서, 스토리지 장치(100)는 호스트 장치로부터 논리 주소 그룹의 정보를 수신할 수 있다. 호스트 장치(20)는 총 저장 공간의 정보에 기반하여, 스토리지 장치(100)에 논리 주소들, 예를 들어 연속적인 논리 주소들을 할당할 수 있다. 호스트 장치(20)는 연속적인 논리 주소들을 포함하는 논리 주소 그룹의 정보를 스토리지 장치(100)에 전달할 수 있다.
S130 단계에서, 스토리지 장치(100)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 총 저장 공간의 물리 주소 그룹을 호스트 장치(20)에 의해 할당된 논리 주소 그룹과 매핑할 수 있다.
도 3은 통합 모드에서 메모리 제어기(150)가 도 2의 과정에 기반하여 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 저장 공간들을 호스트 장치(20)에 제공하는 예를 보여준다. 도 1 및 도 3을 참조하면, 제1 불휘발성 메모리 칩(110)은 제1 저장 공간(SS1)에 해당하는 저장 공간을 메모리 제어기(150)를 통해 외부의 호스트 장치(20)에 제공할 수 있다.
제2 불휘발성 메모리 칩(120)은 제2 저장 공간(SS2)에 해당하는 저장 공간을 메모리 제어기(150)를 통해 외부의 호스트 장치(20)에 제공할 수 있다. 제3 불휘발성 메모리 칩(130)은 제3 저장 공간(SS3)에 해당하는 저장 공간을 메모리 제어기(150)를 통해 외부의 호스트 장치(20)에 제공할 수 있다. 제4 불휘발성 메모리 칩(140)은 제4 저장 공간(SS4)에 해당하는 저장 공간을 메모리 제어기(150)를 통해 외부의 호스트 장치(20)에 제공할 수 있다.
예시적으로, 제1 내지 제4 저장 공간들(SS1, SS2, SS3, SS4)은 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 저장 공간들 중에서 호스트 장치(20)에 제공되는 저장 공간들일 수 있다. 호스트 장치(20)에 제공되는 저장 공간들은 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 실제 저장 공간들 중 일부, 예를 들어 호스트 장치(20)에 제공되도록 지정된 일 수 있다.
예를 들어, 메모리 제어기(150)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 각각 또는 적어도 하나의 저장 공간의 일부를 호스트 장치(20)에 제공하지 않고 예비 영역 또는 오버 프로비전(OP)(Over Provision) 영역으로 사용할 수 있다. 예비 영역 또는 OP 영역의 저장 공간은 호스트 장치(20)에 공개되지 않고, 그리고 예비 영역 또는 OP 영역의 용량은 호스트 장치(20)에 제공되지 않을 수 있다.
예비 영역은 스토리지 장치(100)를 동작하는데 사용되는 저장 공간을 포함할 수 있다. OP 영역은 예비 영역에 더하여, 스토리지 장치(100)의 성능을 더 향상하는데 사용되는 저장 공간을 포함할 수 있다.
제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 저장 공간들은 물리 주소들에 기반하여 식별되고 그리고 액세스될 수 있다. 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 물리 주소들 중에서 제1 내지 제4 저장 공간들(SS1, SS2, SS3, SS4)에 포함되는 물리 주소들은 변경될 수 있다. 즉, 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 저장 공간들 중에서 메모리 제어기(150)를 통해 외부의 호스트 장치(20)에 제공되는 부분은 달라질 수 있다.
메모리 제어기(150)는 제1 내지 제4 저장 공간들(SS1, SS2, SS3, SS4)의 물리 주소들을 하나의 물리 주소 그룹(PR)으로 통합하여 관리할 수 있다. 메모리 제어기(150)는 매핑 테이블(MT)을 이용하여 하나의 물리 주소 그룹(PR)의 물리 주소들과 하나의 논리 주소 그룹(LG)의 논리 주소들을 매핑할 수 있다. 논리 주소 그룹(LG)의 논리 주소들은 호스트 장치(20)가 스토리지 장치(100)에 할당할 수 있다.
호스트 장치(20)는 논리 주소 그룹(LG)에 기반하여 제1 내지 제3 네임스페이스들(NS1, NS2, NS3)을 생성할 수 있다. 제1 내지 제3 네임스페이스들(NS1, NS2, NS3)은 논리 주소 그룹(LG)에 속한 서로 다른 논리 주소들(또는 논리 주소 그룹들)에 대응할(또는 할당될) 수 있다. 호스트 장치(20)는 제1 내지 제3 네임스페이스들(NS1, NS2, NS3)에 각각 스트림 식별자(ID)를 부여할 수 있다.
예를 들어, 제1 네임스페이스(NS1)에 제1 스트림 ID가 할당되고, 제2 네임스페이스(NS2)에 제2 스트림 ID가 할당되고, 그리고 제3 네임스페이스에 제3 스트림 ID가 할당될 수 있다. 예시적으로, 제1 내지 제3 네임스페이스들(NS1, NS2, N3)은 호스트 장치(20)에서 실행되는 서로 다른 응용들에 대응하거나, 또는 호스트 장치(20)를 액세스하는 서로 다른 사용자들(또는 사용자들의 계정들)에 대응할 수 있다.
제1 내지 제3 네임스페이스들(NS1, NS2, NS3) 중 특정한 네임스페이스를 액세스할 때에, 호스트 장치(20)는 특정한 네임스페이스의 스트림 ID와 함께 액세스 요청을 메모리 제어기(150)로 전송할 수 있다. 메모리 제어기(150)는 스트림 ID에 기반하여, 제1 내지 제4 저장 공간들(SS1, SS2, SS3, SS4)을 액세스할 수 있다.
예시적으로, 본 발명의 기술적 사상을 더 용이하게 전달하기 위하여, 제1 네임스페이스(NS1)의 용량은 하나의 불휘발성 메모리 칩의 저장 공간의 사이즈에 대응하고, 제2 네임스페이스(NS2)의 용량은 두 개의 불휘발성 메모리 칩들의 저장 공간들의 사이즈에 대응하고, 그리고 제3 네임스페이스(NS3)의 용량은 하나의 불휘발성 메모리 칩의 저장 공간의 사이즈에 대응하는 것으로 가정된다. 그러나 통합 모드에서, 제1 내지 제3 네임스페이스들(NS1, NS2, NS3)의 각각의 용량은 한정되지 않는다.
도 4는 통합 모드에서 호스트 장치(20)가 스토리지 장치(100)를 액세스하는 예를 보여준다. 도 1, 도 3 및 도 4를 참조하면, 통합 모드에서, 메모리 제어기(150)는 하나의 물리 주소 그룹(PG) 및 하나의 논리 주소 그룹(LG)을 매핑할 수 있다. 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 각각은 복수의 메모리 블록들을 포함할 수 있다.
메모리 제어기(150)는 호스트 장치(20)로부터 수신되는 서로 다른 스트림 ID들을 갖는 액세스 요청들에 응답하여, 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)에 속한 메모리 블록들 중 서로 다른 메모리 블록들을 액세스할 수 있다.
예를 들어, 제1 화살표(A1)로 표시된 바와 같이, 호스트 장치(20)는 제1 네임스페이스(NS1)를 가리키는 제1 스트림 ID(SID1)와 함께 액세스 요청을 메모리 제어기(150)로 전송할 수 있다. 메모리 제어기(150)는 제1 화살표(A1)의 액세스 요청 및 제1 스트림 ID(SID1)에 응답하여, 제2 불휘발성 메모리 칩(120)의 하나의 메모리 블록을 액세스할 수 있다.
제2 화살표(A2)로 표시된 바와 같이, 호스트 장치(20)는 제2 네임스페이스(NS2)를 가리키는 제2 스트림 ID(SID2)와 함께 액세스 요청을 메모리 제어기(150)로 전송할 수 있다. 메모리 제어기(150)는 제2 화살표(A2)의 액세스 요청 및 제2 스트림 ID(SID2)에 응답하여, 제2 불휘발성 메모리 칩(120)의 다른 하나의 메모리 블록을 액세스할 수 있다.
제3 화살표(A3)로 표시된 바와 같이, 호스트 장치(20)는 제2 네임스페이스(NS2)를 가리키는 제2 스트림 ID(SID2)와 함께 액세스 요청을 메모리 제어기(150)로 전송할 수 있다. 메모리 제어기(150)는 제3 화살표(A3)의 액세스 요청 및 제2 스트림 ID(SID2)에 응답하여, 제3 불휘발성 메모리 칩(130)의 하나의 메모리 블록을 액세스할 수 있다.
메모리 제어기(150)가 서로 다른 스트림 ID들을 갖는 액세스 요청들을 서로 다른 메모리 블록들에 대해 수행하는 경우, 제1 화살표(A1) 및 제2 화살표(A2)로 표시된 바와 같이, 서로 다른 스트림 ID들을 갖는 액세스 요청들이 동일한 불휘발성 메모리 칩에 대해 수행될 수 있다.
제1 화살표(A1)의 액세스 요청 및 제2 화살표(A2)의 액세스 요청은 시간상에서 순차적으로 수행되어야 하며, 동시에 수행될 수 없다. 즉, 서로 다른 스트림 ID들을 갖는 액세스 요청들이 서로에게 시간 상의 지연 요인으로 작용할 수 있다.
도 5는 개별 모드에서 스토리지 장치(100) 및 호스트 장치(20)가 저장 공간을 설정하는 예를 보여준다. 도 1 및 도 5를 참조하면, S210 단계에서, 스토리지 장치(100)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 각각의 저장 공간의 정보를 호스트 장치(20)에 제공할 수 있다. 예를 들어, 스토리지 장치(100)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 저장 공간들 중에서 호스트(20)에 제공되도록 지정된 총 저장 공간들의 정보를 호스트 장치(20)에 제공할 수 있다.
S220 단계에서, 스토리지 장치(100)는 호스트 장치로부터 네임스페이스들 및 네임스페이스들에 각각 대응하는 논리 주소 그룹들의 정보를 수신할 수 있다. 호스트 장치(20)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 각각의 저장 공간의 정보에 기반하여, 스토리지 장치(100)에 논리 주소들, 예를 들어 연속적인 논리 주소들을 할당할 수 있다.
호스트 장치(20)는 논리 주소 그룹의 논리 주소들에 기반하여 네임스페이스들을 할당할 수 있다. 네임스페이스들은 논리 주소 그룹의 논리 주소들에 속하는 서로 다른 논리 주소들(예를 들어, 서로 다른 논리 주소 그룹들)에 할당될 수 있다. 호스트 장치(20)는 연속적인 네임스페이스들 및 네임스페이스들에 각각 대응하는 논리 주소 그룹들의 정보를 스토리지 장치(100)에 전달할 수 있다.
예를 들어, 호스트 장치(20)는 섹터 또는 클러스터와 같이 운영 체제(또는 파일 시스템)에 의해 정해진 단위로 스토리지 장치(100)를 액세스하고, 그리고 네임스페이스들의 각각은 복수의 액세스 단위들을 포함할 수 있다. 따라서, 네임스페이스들의 각각은 공통의 스트림 ID를 공유하는 액세스 단위들의 그룹으로 여겨질 수 있다. 또한, 네임스페이스들은 서로 다른 스트림 ID들에 대응하는 액세스 단위들의 그룹들로 여겨질 수 있다.
S230 단계에서, 스토리지 장치(100)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)을 네임스페이스들과 매핑할 수 있다. 예를 들어, 스토리지 장치(100)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 저장 공간들을 네임스페이스들의 논리 주소 그룹들과 각각 매핑할 수 있다.
네임스페이스들의 각각의 논리 주소 그룹은 적어도 하나의 불휘발성 메모리 칩의 저장 공간에 매핑될 수 있다. 즉, 스토리지 장치는 불휘발성 메모리 칩의 단위로, 각 네임스페이스에 저장 공간을 매핑할 수 있다.
도 6은 통합 모드에서 메모리 제어기(150)가 도 5의 과정에 기반하여 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 저장 공간들을 호스트 장치(20)에 제공하는 예를 보여준다. 도 1 및 도 6을 참조하면, 메모리 제어기(150)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 제1 내지 제4 저장 공간들(SS1, SS2, SS3, SS4)의 정보를 호스트 장치(20)에 제공할 수 있다.
호스트 장치(20)는 제1 내지 제4 저장 공간들(SS1, SS2, SS3, SS4)의 정보에 기반하여 제1 내지 제3 네임스페이스들(NS1~NS3)을 할당할 수 있다. 호스트 장치(20)는 불휘발성 메모리 칩의 저장 공간의 단위로 네임스페이스들을 할당할 수 있다. 예를 들어, 호스트 장치(20)는 하나의 불휘발성 메모리 칩의 저장 공간의 용량에 대응하는 제1 네임스페이스(NS1)를 생성할 수 있다.
호스트 장치(20)는 두 개의 불휘발성 메모리 칩의 저장 공간의 용량에 대응하는 제2 네임스페이스(NS2)를 생성할 수 있다. 호스트 장치(20)는 하나의 불휘발성 메모리 칩의 저장 공간의 용량에 대응하는 제3 네임스페이스(NS3)를 생성할 수 있다. 호스트 장치(20)는 제1 내지 제3 네임스페이스들(NS1~NS3)에 서로 다른 제1 내지 제3 논리 주소 그룹들(LG1, LG2, LG3)을 할당할 수 있다.
호스트 장치(20)는 제1 내지 제3 네임스페이스들(NS1, NS2, NS3)의 정보(예를 들어, 개수 또는 각각의 사이즈를 포함하는), 그리고 제1 내지 제3 네임스페이스들(NS1, NS2, NS3)에 할당된 제1 내지 제3 논리 주소 그룹들(LG1, LG2, LG3)의 정보를 메모리 제어기(150)에 제공할 수 있다.
호스트 장치(20)로부터 수신되는 정보에 기반하여, 제1 내지 제4 저장 공간들(SS1, SS2, SS3, SS4)로부터 제1 내지 제3 논리 주소 그룹들(LG1, LG2, LG3)에 각각 대응하는 제1 내지 제3 물리 주소 그룹들(PG1, PG2, PG3)을 선택할 수 있다. 예를 들어, 메모리 제어기(150)는 제1 저장 공간(SS1)의 물리 주소들을 제1 물리 주소 그룹(PG1)으로 선택할 수 있다. 메모리 제어기(150)는 제2 및 제3 저장 공간들(SS2, SS3)의 물리 주소들을 제2 물리 주소 그룹(PG2)으로 선택할 수 있다. 메모리 제어기(150)는 제4 저장 공간(SS4)의 물리 주소들을 제3 물리 주소 그룹(PG3)으로 선택할 수 있다.
메모리 제어기(150)는 제1 논리 주소 그룹들(LG1, LG2, LG3)과 제1 내지 제3 물리 주소 그룹들(PG1, PG2, PG3)과 각각 매핑할 수 있다. 예를 들어, 메모리 제어기(150)는 제1 매핑 테이블(MT1)을 이용하여 제1 논리 주소 그룹(LG1) 및 제1 물리 주소 그룹(PG1)을 매핑할 수 있다. 메모리 제어기(150)는 제2 매핑 테이블(MT2)을 이용하여 제2 논리 주소 그룹(LG2) 및 제2 물리 주소 그룹(PG2)을 매핑할 수 있다. 메모리 제어기(150)는 제3 매핑 테이블(MT3)을 이용하여 제3 논리 주소 그룹(LG3) 및 제3 물리 주소 그룹(PG3)을 매핑할 수 있다.
제1 내지 제3 네임스페이스들(NS1, NS2, NS3) 중 특정한 네임스페이스를 액세스할 때에, 호스트 장치(20)는 특정한 네임스페이스의 스트림 ID와 함께 액세스 요청을 메모리 제어기(150)로 전송할 수 있다. 메모리 제어기(150)는 스트림 ID에 기반하여, 제1 내지 제4 저장 공간들(SS1, SS2, SS3, SS4)을 액세스할 수 있다.
예시적으로, 도 3 및 도 6에 공통적으로 적용되는 요소들에 대한 중복되는 설명은 생략되었다. 따라서, 도 3을 참조하여 설명된 요소들 중 도 6의 요소들과 충돌하지 않는 요소들은 도 6에도 동일하게 적용될 수 있다.
도 7은 개별 모드에서 호스트 장치(20)가 스토리지 장치(100)를 액세스하는 예를 보여준다. 도 1, 도 6 및 도 7을 참조하면, 메모리 제어기(150)는 호스트 장치(20)로부터 수신되는 서로 다른 스트림 ID들을 갖는 액세스 요청들에 응답하여, 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140) 중 서로 다른 불휘발성 메모리 칩들을 액세스할 수 있다.
예를 들어, 제4 화살표(A4)로 표시된 바와 같이, 호스트 장치(20)는 제1 네임스페이스(NS1)를 가리키는 제1 스트림 ID(SID1)와 함께 액세스 요청을 메모리 제어기(150)로 전송할 수 있다. 메모리 제어기(150)는 제1 화살표(A1)의 액세스 요청 및 제1 스트림 ID(SID1)에 응답하여, 제1 네임스페이스(NS1)에 매핑된 제1 불휘발성 메모리 칩(110)을 액세스할 수 있다.
제5 화살표(A5)로 표시된 바와 같이, 호스트 장치(20)는 제2 네임스페이스(NS2)를 가리키는 제2 스트림 ID(SID2)와 함께 액세스 요청을 메모리 제어기(150)로 전송할 수 있다. 메모리 제어기(150)는 제5 화살표(A5)의 액세스 요청 및 제2 스트림 ID(SID2)에 응답하여, 제2 네임스페이스(NS2)에 매핑된 제2 및 제3 불휘발성 메모리 칩들(120, 130)을 액세스할 수 있다.
제6 화살표(A6)로 표시된 바와 같이, 호스트 장치(20)는 제2 네임스페이스(NS2)를 가리키는 제2 스트림 ID(SID2)와 함께 액세스 요청을 메모리 제어기(150)로 전송할 수 있다. 메모리 제어기(150)는 제6 화살표(A6)의 액세스 요청 및 제2 스트림 ID(SID2)에 응답하여, 제2 네임스페이스(NS2)에 매핑된 제2 및 제3 불휘발성 메모리 칩들(120, 130)을 액세스할 수 있다.
메모리 제어기(150)가 서로 다른 스트림 ID들을 갖는 액세스 요청들을 서로 다른 메모리 블록들에 대해 수행하는 경우, 서로 다른 스트림 ID들을 갖는 액세스 요청들이 사로 다른 불휘발성 메모리 칩들에 대해 수행될 수 있다. 따라서, 서로 다른 스트림 ID를 갖는 액세스 요청들에 서로에게 지연 요인으로 작용하는 것이 방지된다.
예시적으로, 제2 네임스페이스(NS2)와 같이 하나의 네임스페이스가 둘 이상의 불휘발성 메모리 칩들에 매핑될 때, 해당 네임 스페이스에 대한 액세스 요청은 둘 이상의 불휘발성 메모리 칩들에 인터리빙될 수 있다. 예를 들어, 하나의 액세스 요청에 대응하는 데이터는 불휘발성 메모리 칩들의 수에 기반하여 분할될 수 있다. 분할된 데이터가 불휘발성 메모리 칩들과 동시에 병렬로 교환될 수 있다.
예시적으로, 하나의 불휘발성 메모리 칩에 매핑된 네임스페이스에 대한 액세스 요청은 인터리빙 되지 않을 수 있다.
도 8은 스토리지 장치(100) 및 호스트 장치(20)가 개별 모드를 구성하는 과정의 예를 보여준다. 도 1 및 도 8을 참조하면, S310 단계에서, 호스트 장치(20)는 메모리 제어기(150)에 모드 설정 요청을 전송할 수 있다. 모드 설정 요청은 개별 모드에 대한 정보, 예를 들어 네임스페이스들의 수, 네임스페이스들의 각각의 사이즈, 그리고 네임스페이스들의 각각에 할당된 논리 주소 그룹의 정보를 포함할 수 있다.
모드 설정 요청에 응답하여, S320 단계에서, 메모리 제어기(150)는 모드 설정 정보를 저장할 수 있다. 메모리 제어기(150)는 호스트 장치(20)에 의해 설정 요청된 개별 모드가 구성 가능한지(예를 들어, 매핑 가능한지) 판단할 수 있다. 예를 들어, 메모리 제어기(150)는 호스트 장치(20)의 모드 설정 요청에 대응하는 물리 주소 그룹들의 수가 구성 가능한지(예를 들어, 물리 주소 그룹들의 수에 대응하는 스트림 ID들을 지원하는지), 물리 주소 그룹들 각각의 사이즈가 구성 가능한지, 그리고 물리 주소 그룹들과 논리 주소 그룹들의 매핑이 가능한지(예를 들어, 매핑 테이블들의 구성이 가능한지) 판단할 수 있다.
S330 단계에서, 메모리 제어기(150)는 호스트 장치(20)에 응답을 전송할 수 있다. 응답은 모드 설정 정보의 저장이 완료되었는지, 그리고 모드의 구성이 가능한지를 나타내는 정보를 포함할 수 있다.
모드의 구성이 가능하지 않으면, 호스트 장치(20) 및 스토리지 장치(100)는 모드의 구성을 종료할 수 있다. 모드의 구성이 가능하면, S340 단계에서, 호스트 장치(20) 및 메모리 제어기(150)는 리셋을 수행할 수 있다. 리셋은 전원을 차단한 후 전원을 공급하는 콜드 리셋, 또는 전원을 유지하면서 초기화를 수행하는 핫 리셋을 포함할 수 있다.
S350 단계에서, 메모리 제어기(150)는 모드 설정 정보에 기반하여 개별 모드를 구성할 수 있다. 예를 들어, 메모리 제어기(150)는 도 7을 참조하여 설명된 바와 같이, 제1 내지 제3 물리 주소 그룹들(PG1, PG2, PG3) 및 제1 내지 제3 매핑 테이블들(MT1, MT2, MT3)을 구성할 수 있다.
S360 단계에서, 메모리 제어기(150)는 개별 모드의 구성이 완료되었음을 알리는 응답을 호스트 장치(20)에 전달할 수 있다. 응답이 수신되는 것에 응답하여, 호스트 장치(20)는 네임스페이스의 생성 요청을 메모리 제어기(150)로 전송할 수 있다. 네임스페이스의 생성 요청은 네임스페이스들에 할당되는 스트림 ID들의 정보를 포함할 수 있다.
네임스페이스 생성 요청에 응답하여, S380 단계에서, 메모리 제어기(150)는 제1 내지 제3 논리 주소 그룹들(LG1, LG2, LG3)과 제1 내지 제3 물리 주소 그룹들(PG1, PG2, PG3)을 매핑할 수 있다. 또한, 메모리 제어기(150)는 제1 내지 제3 논리 주소 그룹들(LG1, LG2, LG3)과 제1 내지 제3 스트림 ID들(SID1, SID2, SID3)을 각각 연관할 수 있다.
도 9는 스토리지 장치(100) 및 호스트 장치(20)가 개별 모드의 구성을 갱신하는 예를 보여준다. 도 1 및 도 9를 참조하면, S410 단계에서, 메모리 제어기(150)는 페일을 검출할 수 있다. 예를 들어, 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140) 중 적어도 하나의 불휘발성 메모리 칩의 저장 공간에서 적어도 일부의 저장 공간에서 에러가 발생하고, 그리고 발생된 에러가 에러 정정 알고리즘에 의해 정정 불가능한 때에, 메모리 제어기(150)는 에러가 발생한 적어도 일부의 저장 공간에서 페일이 발생하였음을 검출할 수 있다.
페일이 검출되는 것에 응답하여, S420 단계에서, 메모리 제어기(150)는 각 불휘발성 메모리 칩의 저장 공간의 정보를 수집할 수 있다. 예를 들어, 메모리 제어기(150)는 페일이 발생한 불휘발성 메모리 칩의 저장 공간으로부터 에러가 발생한 적어도 일부의 저장 공간을 제외시킬 수 있다. 즉, 페일이 검출된 불휘발성 메모리 칩의 저장 공간(또는 용량)이 감소할 수 있다.
S430 단계에서, 메모리 제어기(150)는 페일이 발생하였음을 알리는 정보, 그리고 페일에 의해 변경된 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 저장 공간들의 정보를 호스트 장치(20)에 제공할 수 있다.
메모리 제어기(150)로부터 제공되는 정보에 응답하여, 호스트 장치(20)는 개별 모드를 재구성할 수 있다. 예를 들어, 호스트 장치(20)는 네임스페이스들의 수, 네임스페이스들의 각각의 용량, 네임스페이스들의 각각에 할당되는 논리 주소 그룹 등과 같은 개별 모드를 구성하는 파라미터들 중 적어도 하나를 갱신할 수 있다.
개별 모드를 구성하는 파라미터들의 갱신이 완료되면, S440 단계에서, 호스트 장치(20)는 네임스페이스의 삭제 요청을 메모리 제어기(150)에 전달할 수 있다. 네임스페이스의 삭제 요청에 응답하여, 메모리 제어기(150)는 개별 모드의 구성을 해제할 수 있다. 예를 들어, 메모리 제어기(150)는 제1 내지 제3 물리 주소 그룹들(PG1, PG2, PG3) 및 제1 내지 제3 매핑 테이블들(MT1, MT2, MT3)을 제거할 수 있다.
예를 들어, 메모리 제어기(150)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)에 저장된 데이터를 유지하면서, 개별 모드의 구성을 해제할 수 있다. 다른 예로서, 메모리 제어기(150)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)에 저장된 데이터의 소거를 수행(또는 예약)하고, 그리고 개별 모드의 구성을 해제할 수 있다.
개별 모드의 구성이 해제되는 것에 응답하여, S450 단계에서, 메모리 제어기(150)는 네임스페이스들이 제거되었음을 알리는 응답을 호스트 장치(20)에 전달할 수 있다. 이후에, 도 8의 S310 단계 내지 S380 단계가 수행되어, 호스트 장치(20) 및 메모리 제어기(150)는 새로운 네임스페이스들을 구성할 수 있다.
예시적으로, 도 9를 참조하여 설명된 바와 같이 네임스페이스들이 갱신되면, 네임스페이스들의 수, 네임스페이스들의 각각의 용량, 네임스페이스들의 각각에 할당되는 논리 주소 그룹들, 네임스페이스들의 각각에 할당되는 불휘발성 메모리 칩(들), 네임스페이스들의 각각에 할당되는 불휘발성 메모리 칩들의 수, 네임스페이스들의 각각에 할당되는 불휘발성 메모리 칩들의 물리 주소 그룹, 네임스페이스들에 할당되는 스트림 ID들, 그리고 네임스페이스들에 할당되는 스트림 ID들의 수 중 적어도 하나가 갱신될(예를 들어, 동적으로) 수 있다.
도 10은 페일(F)의 검출에 응답하여 네임스페이스들이 갱신되는 제1 예를 보여준다. 도 6 및 도 10을 참조하면, 제1 불휘발성 메모리 칩(110)의 저장 공간의 일부에서 페일(F)이 검출될 수 있다. 페일(F)이 검출됨에 따라, 제1 불휘발성 메모리 칩(110)이 메모리 제어기(150)를 통해 호스트 장치(20)에 제공하는 제1 저장 공간(SS1)의 사이즈는 감소(도 6과 비교하여)할 수 있다.
페일(F)이 검출되는 것에 응답하여, 호스트 장치(20)는 제1 네임스페이스(NS1)의 용량(또는 사이즈)을 줄일 수 있다. 감소된 사이즈의 제1 네임스페이스(NS1)는 감소된 사이즈의 제1 저장 공간(SS1)을 갖는 제1 불휘발성 메모리 칩(110)에 매핑될 수 있다.
다른 예로서, 호스트 장치(20)는 제2 네임스페이스(NS2) 또는 제3 네임스페이스(NS3)의 사이즈를 감소시킬 수 있다. 제2 네임스페이스(NS2)의 사이즈가 감소되는 경우, 제1 네임스페이스(NS1)는 페일(F)이 검출되지 않은 불휘발성 메모리 칩과 매핑될 수 있다. 페일(F)이 검출된 제1 불휘발성 메모리 칩(110) 및 페일(F)이 검출되지 않은 불휘발성 메모리 칩이 제2 네임스페이스(NS)와 매핑될 수 잇다.
제3 네임스페이스(NS3)의 사이즈가 감소되는 경우, 제1 네임스페이스(NS1)는 페일(F)이 검출되지 않은 불휘발성 메모리 칩과 매핑될 수 있다. 제3 네임스페이스(NS3)는 페일(F)이 검출된 제1 불휘발성 메모리 칩(110)과 매핑될 수 있다.
도 11은 페일(F)의 검출에 응답하여 네임스페이스들이 갱신되는 제2 예를 보여준다. 도 6 및 도 11을 참조하면, 제1 불휘발성 메모리 칩(110)의 저장 공간의 일부, 그리고 제2 불휘발성 메모리 칩(120)의 저장 공간의 일부에서 각각 페일(F)이 검출될 수 있다. 페일(F)이 검출됨에 따라, 제1 불휘발성 메모리 칩(110)이 메모리 제어기(150)를 통해 호스트 장치(20)에 제공하는 제1 저장 공간(SS1)의 사이즈, 그리고 제2 불휘발성 메모리 칩(120)이 메모리 제어기(150)를 통해 호스트 장치(20)에 제공하는 제2 저장 공간(SS2)의 사이즈는 감소(도 6과 비교하여)할 수 있다.
페일(F)이 검출되는 것에 응답하여, 호스트 장치(20)는 제2 네임스페이스(NS2)의 용량(또는 사이즈)을 줄일 수 있다. 감소된 사이즈의 제2 네임스페이스(NS2)는 감소된 사이즈의 제1 저장 공간(SS1)을 갖는 제1 불휘발성 메모리 칩(110) 및 감소된 사이즈의 제2 저장 공간(SS2)을 갖는 제2 불휘발성 메모리 칩(120)에 매핑될 수 있다.
다른 예로서, 호스트 장치(20)는 네임스페이스들의 수를 줄일 수 있다. 예를 들어, 호스트 장치(20)는 제1 네임스페이스(NS1)를 제거하거나 또는 제3 네임스페이스(NS3)를 제거할 수 있다. 호스트 장치(20) 및 스토리지 장치(100)는 하나의 불휘발성 메모리 칩의 저장 공간에 해당하는 하나의 네임스페이스, 그리고 두 개의 불휘발성 메모리 칩들의 저장 공간들에 해당하는 다른 하나의 네임스페이스를 가질 수 있다.
도 12는 페일(F)의 검출에 응답하여 네임스페이스들이 갱신되는 제3 예를 보여준다. 도 6 및 도 12를 참조하면, 제1 불휘발성 메모리 칩(110)의 저장 공간의 일부에서 페일(F)이 검출될 수 있다. 페일(F)이 검출됨에 따라, 제1 불휘발성 메모리 칩(110)이 메모리 제어기(150)를 통해 호스트 장치(20)에 제공하는 제1 저장 공간(SS1)의 사이즈는 감소(도 6과 비교하여)할 수 있다.
페일(F)이 검출되는 것에 응답하여, 호스트 장치(20)는 제1 네임스페이스(NS1)를 제거할 수 있다. 호스트 장치(20)는 제1 불휘발성 메모리 칩의 감소된 제1 저장 공간(SS1)이 제2 내지 제4 불휘발성 메모리 칩들(120, 130, 140)의 제2 내지 제4 저장 공간들(SS2, SS3, SS4) 중 적어도 하나의 OP 영역으로 사용되도록 네임스페이스들의 파라미터들을 갱신할 수 있다.
다른 예로서, 제1 불휘발성 메모리 칩(110)의 감소된 제1 저장 공간(SS1)을 OP 영역으로 사용하면서, 제3 네임스페이스(NS3)가 제거되거나 제2 네임스페이스(NS2)의 사이즈가 감소될 수 있다.
도 13은 스토리지 장치(100) 및 호스트 장치(20)가 개별 모드의 구성을 갱신하는 다른 예를 보여준다. 도 1 및 도 13을 참조하면, 호스트 장치(20)는 메모리 제어기(150)로부터의 정보 없이, 주도적으로 개별 모드를 재구성할 수 있다. 예를 들어, 호스트 장치(20)는 네임스페이스들의 수, 네임스페이스들의 각각의 용량, 네임스페이스들의 각각에 할당되는 논리 주소 그룹 등과 같은 개별 모드를 구성하는 파라미터들 중 적어도 하나를 갱신할 수 있다.
개별 모드를 구성하는 파라미터들의 갱신이 완료되면, S510 단계에서, 호스트 장치(20)는 네임스페이스의 삭제 요청을 메모리 제어기(150)에 전달할 수 있다. 네임스페이스의 삭제 요청에 응답하여, 메모리 제어기(150)는 개별 모드의 구성을 해제할 수 있다. 예를 들어, 메모리 제어기(150)는 제1 내지 제3 물리 주소 그룹들(PG1, PG2, PG3) 및 제1 내지 제3 매핑 테이블들(MT1, MT2, MT3)을 제거할 수 있다.
예를 들어, 메모리 제어기(150)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)에 저장된 데이터를 유지하면서, 개별 모드의 구성을 해제할 수 있다. 다른 예로서, 메모리 제어기(150)는 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)에 저장된 데이터의 소거를 수행(또는 예약)하고, 그리고 개별 모드의 구성을 해제할 수 있다.
개별 모드의 구성이 해제되는 것에 응답하여, S520 단계에서, 메모리 제어기(150)는 네임스페이스들이 제거되었음을 알리는 응답을 호스트 장치(20)에 전달할 수 있다. 이후에, 도 8의 S310 단계 내지 S380 단계가 수행되어, 호스트 장치(20) 및 메모리 제어기(150)는 새로운 네임스페이스들을 구성할 수 있다.
예시적으로, 호스트 장치(20)는 네임스페이스들과 연관된 응용들 또는 사용자들이 요구하는 용량, 서비스 품질(예를 들어, 속도) 등과 같은 요구에 기반하여, 주도적으로 네임스페이스들을 갱신할 수 있다.
도 14는 본 발명의 실시 예에 따른 불휘발성 메모리 칩(200)을 보여주는 블록도이다. 예시적으로, 불휘발성 메모리 칩(200)은 도 1의 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)의 각각에 대응할 수 있다.
도 14를 참조하면, 불휘발성 메모리 칩(200)은 메모리 셀 어레이(210), 행 디코더 블록(220), 페이지 버퍼 블록(230), 패스 페일 체크 블록(240)(PFC), 데이터 입력 및 출력 블록(250), 버퍼 블록(260), 그리고 제어 로직 블록(270)을 포함한다.
메모리 셀 어레이(210)는 복수의 메모리 블록들(BLK1~BLKz)을 포함한다. 각 메모리 블록은 복수의 메모리 셀들을 포함한다. 각 메모리 블록은 적어도 하나의 접지 선택 라인(GSL), 워드 라인들(WL), 그리고 적어도 하나의 스트링 선택 라인(SSL)을 통해 행 디코더 블록(220)에 연결될 수 있다. 워드 라인들(WL) 중 일부는 더미 워드 라인들로 사용될 수 있다. 각 메모리 블록은 복수의 비트 라인들(BL)을 통해 페이지 버퍼 블록(230)에 연결될 수 있다. 복수의 메모리 블록들(BLK1~BLKz)은 복수의 비트 라인들(BL)에 공통으로 연결될 수 있다.
예시적으로, 복수의 메모리 블록들(BLK1~BLKz) 각각은 소거 동작의 단위일 수 있다. 각 메모리 블록에 속한 메모리 셀들은 동시에 소거될 수 있다. 다른 예로서, 각 메모리 블록은 복수의 서브 블록들로 분할될 수 있다. 복수의 서브 블록들 각각은 소거 동작의 단위일 수 있다.
행 디코더 블록(220)은 접지 선택 라인들(GSL), 워드 라인들(WL), 그리고 스트링 선택 라인들(SSL)을 통해 메모리 셀 어레이(210)에 연결된다. 행 디코더 블록(220)은 제어 로직 블록(270)의 제어에 따라 동작한다.
행 디코더 블록(220)은 버퍼 블록(260)으로부터 수신되는 행 주소(RA)를 디코딩하고, 디코딩된 행 주소에 따라 스트링 선택 라인들(SSL), 워드 라인들(WL), 그리고 접지 선택 라인들(GSL)에 인가되는 전압들을 제어할 수 있다.
페이지 버퍼 블록(230)은 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(210)에 연결된다. 페이지 버퍼 블록(230)은 복수의 데이터 라인들(DL)을 통해 데이터 입력 및 출력 블록(250)과 연결된다. 페이지 버퍼 블록(230)은 제어 로직 블록(270)의 제어에 따라 동작한다.
프로그램 동작 시에, 페이지 버퍼 블록(230)은 메모리 셀들에 기입될 데이터를 저장할 수 있다. 저장된 데이터에 기반하여, 페이지 버퍼 블록(230)은 복수의 비트 라인들(BL)에 전압들을 인가할 수 있다. 읽기 동작 시에, 또는 프로그램 동작 또는 소거 동작의 검증 읽기 시에, 페이지 버퍼 블록(230)은 비트 라인들(BL)의 전압들을 감지하고, 감지 결과를 저장할 수 있다.
패스 페일 체크 블록(240)은 프로그램 동작의 검증 읽기 또는 소거 동작의 검증 읽기 시에, 페이지 버퍼 블록(230)의 감지 결과를 검증할 수 있다. 예를 들어, 프로그램 동작의 검증 읽기 시에, 패스 페일 체크 블록(240)은 목표 문턱 전압 이상으로 프로그램되지 않은 온-셀들에 대응하는 값(예를 들어 '0')의 수를 카운트할 수 있다.
소거 동작의 검증 읽기 시에, 패스 페일 체크 블록(240)은 목표 문턱 전압 이하로 소거되지 않은 오프-셀들에 대응하는 값(예를 들어 '1')이 수를 카운트할 수 있다. 패스 페일 체크 블록(240)은 카운트된 결과가 문턱값 이상일 때, 페일을 나타내는 신호를 제어 로직 블록(270)으로 출력할 수 있다. 패스 페일 체크 블록(240)은 카운트된 결과가 문턱값보다 작을 때, 패스를 나타내는 신호를 제어 로직 블록(270)으로 출력할 수 있다. 패스 페일 체크 블록(240)의 검증의 결과에 따라, 프로그램 동작의 프로그램 루프가 더 수행되거나 또는 소거 동작의 소거 루프가 더 수행될 수 있다.
데이터 입력 및 출력 블록(250)은 복수의 데이터 라인들(DL)을 통해 페이지 버퍼 블록(230)과 연결된다. 데이터 입력 및 출력 블록(250)은 버퍼 블록(260)으로부터 열 주소(CA)를 수신할 수 있다. 데이터 입력 및 출력 블록(250)은 페이지 버퍼 블록(230)에 의해 읽힌 데이터를 열 주소(CA)에 따라 버퍼 블록(260)으로 출력할 수 있다. 데이터 입력 및 출력 블록(250)은 열 주소(CA)에 의존하여, 버퍼 블록(260)으로부터 수신되는 데이터를 페이지 버퍼 블록(230)에 전달할 수 있다.
버퍼 블록(260)은 제1 신호선들(SIGL1)을 통해 명령(CMD) 및 주소(ADDR)를 외부의 장치로부터 수신하고, 그리고 데이터(DATA)를 외부의 장치와 교환할 수 있다. 버퍼 블록(260)은 제어 로직 블록(270)의 제어에 따라 동작할 수 있다. 버퍼 블록(260)은 명령(CMD)을 제어 로직 블록(270)에 전달할 수 있다. 버퍼 블록(260)은 주소(ADDR)의 행 주소(RA)를 행 디코더 블록(220)에 전달하고, 열 주소(CA)를 데이터 입력 및 출력 블록(250)에 전달할 수 있다. 버퍼 블록(260)은 데이터(DATA)를 데이터 입력 및 출력 블록(250)과 교환할 수 있다.
제어 로직 블록(270)은 외부 장치와 제2 신호선들(SIGL2)을 통해 제어 신호(CTRL)를 교환할 수 있다. 제어 로직 블록(270)은 버퍼 블록(260)이 명령(CMD), 주소(ADDR) 및 데이터(DATA)를 라우팅하게 제어할 수 있다. 제어 로직 블록(270)은 버퍼 블록(260)으로부터 수신된 명령(CMD)을 디코딩하고, 디코딩된 명령에 따라 불휘발성 메모리 칩(200)을 제어할 수 있다.
예시적으로, 불휘발성 메모리 칩(200)은 본딩 방식으로 제조될 수 있다. 메모리 셀 어레이(210)는 제1 웨이퍼에서 제조되고, 행 디코더 블록(220), 페이지 버퍼 블록(230), 데이터 입력 및 출력 블록(250), 버퍼 블록(260), 그리고 제어 로직 블록(270)은 제2 웨이퍼에서 제조될 수 있다. 제1 웨이퍼의 상부면과 및 제2 웨이퍼의 상부면을 마주보게 하여 결합함으로써, 불휘발성 메모리 칩(200)이 구현될 수 있다.
다른 예로서, 불휘발성 메모리 칩(200)은 COP(Cell Over Peri) 방식으로 제조될 수 있다. 기판 상에 행 디코더 블록(220), 페이지 버퍼 블록(230), 데이터 입력 및 출력 블록(250), 버퍼 블록(260), 그리고 제어 로직 블록(270)을 포함하는 주변 회로가 구현될 수 있다 주변 회로의 상부에 메모리 셀 어레이(210)가 구현될 수 있다. 주변 회로 및 메모리 셀 어레이(210)는 관통 비아들을 통해 연결될 수 있다.
예시적으로, 메모리 블록은 페일이 발생한 때에 불휘발성 메모리 칩(200)의 저장 공간의 사이즈가 감소하는 단위일 수 있다. 페일이 발생하면, 불휘발성 메모리 칩(200)의 메모리 블록들(BLK1~BLKz) 중에서 페일이 발생한 저장 공간을 포함하는 메모리 블록이 불휘발성 메모리 칩(200)의 저장 공간으로부터 제외될 수 있다.
도 15는 본 발명의 실시 예에 따른 전자 장치(300)를 보여준다. 예시적으로, 전자 장치(300)는 서버일 수 있다. 도 15를 참조하면, 전자 장치(300)는 전원 공급기(310) 및 바디(320)를 포함할 수 있다. 전원 공급기(310)는 외부 전원으로부터 전력(PWR)을 생성하고, 그리고 생성된 전력(PWR)을 바디(320)에 공급할 수 있다. 전력(PWR)은 둘 이상의 서로 다른 전압들의 형태로 제공될 수 있다.
바디(320)는 전원 공급기(310)로부터 전력(PWR)을 수신하고, 그리고 전력(PWR)에 기반하여 동작할 수 있다. 바디(320)는 베이스보드(330), 제1 솔리드 스테이트 드라이브(SSD) 백플레인(340), 제2 SSD 백플레인(350), 제3 SSD 백플레인(360), 쿨링 제어 보드(370), 쿨러들(380), 그리고 센서들(390)을 포함할 수 있다.
베이스보드(330)는 제1 중앙 처리 장치(331)(CPU), 제2 CPU(332), 제1 CPU(331)와 연결된 제1 메모리들(333) 및 제2 메모리들(334), 제2 CPU(332)와 연결된 제3 메모리들(335) 및 제4 메모리들(336), 그리고 베이스보드 관리 제어기(337)(BMC)를 포함할 수 있다. 베이스보드(330)는 전원 공급기(310)로부터 수신되는 전력(PWR)을 제1 CPU(331), 제2 CPU(332), 제1 메모리들(333), 제2 메모리들(334), 제3 메모리들(335) 및 제4 메모리들(336)에 공급할 수 있다.
제1 CPU(331)는 제1 메모리들(333) 및 제2 메모리들(334)을 동작 메모리들로 사용할 수 있다. 제2 CPU(332)는 제3 메모리들(335) 및 제4 메모리들(336)을 동작 메모리들로 사용할 수 있다. 제1 CPU(331) 및 제2 CPU(332)는 운영 체제 및 다양한 응용들을 실행할 수 있다. 제1 CPU(331) 및 제2 CPU(332)는 바디(320)의 구성 요소들을 제어할 수 있다. 예를 들어, 제1 CPU(331) 및 제2 CPU(332)는 PCIe에 기반하여 바디(320)의 구성 요소들을 제어할 수 있다.
제1 CPU(331) 및 제2 CPU(332)는 제1 SSD 백플레인(340), 제2 SSD 백플레인(350) 및 제3 SSD 백플레인(360)을 액세스할 수 있다. 예를 들어, 제1 CPU(331) 및 제2 CPU(332)는 NVMe에 기반하여 제1 SSD 백플레인(340), 제2 SSD 백플레인(350) 및 제3 SSD 백플레인(360)을 액세스할 수 있다. 제1 메모리들(333), 제2 메모리들(334), 제3 메모리들(335) 및 제4 메모리들(336)은 DIMM 슬롯에 삽입되는 DIMM 메모리들을 포함할 수 있다.
BMC(337)는 제1 CPU(331) 및 제2 CPU(332)의 운영 체제와 분리된 별도의 시스템일 수 있다. BMC(337)는 전자 장치(300)의 구성 요소들로부터 정보를 수집하고, 그리고 구성 요소들을 액세스할 수 있다. BMC(337)는 제1 CPU(331) 및 제2 CPU(332)의 통신 인터페이스(예를 들어, PCIe)와 분리된 별도의 통신 인터페이스에 기반할 수 있다. 예를 들어, BMC(337)는 IPMI(Intelligent Platform Management Interface)에 기반할 수 있다. BMC(337)의 통신 인터페이스는 제1 CPU(331) 및 제2 CPU(332)의 통신 인터페이스와 서로 통신할 수 있다.
제1 SSD 백플레인(340)은 전원 공급기(310)로부터 전력(PWR)을 수신하고, 그리고 베이스보드(330)와 신호들을 교환할 수 있다. 제1 SSD 백플레인(340)은 베이스보드(330)의 제1 CPU(331), 제2 CPU(332) 또는 BMC(337)와 신호들을 교환할 수 있다. 제1 SSD 백플레인(340)은 복수의 SSD들을 실장하며, 따라서 복수의 SSD들을 포함할 수 있다.
베이스보드(330)의 제1 CPU(331) 및 제2 CPU(332)는 제1 SSD 백플레인(340)의 SSD들을 액세스(예를 들어, 쓰기, 읽기 및 소거)할 수 있다. 베이스보드(330)의 BMC(337)는 제1 SSD 백플레인(340)을 모니터하고, 그리고 제1 SSD 백플레인(340)을 액세스 및 제어할 수 있다.
제2 SSD 백플레인(350) 및 제3 SSD 백플레인(360)은 제1 SSD 백플레인(340)과 동일한 구조를 갖고, 그리고 동일하게 동작할 수 있다. 따라서, 중복되는 설명은 생략된다.
쿨링 제어 보드(370)는 전원 공급기(310)로부터 전력(PWR)을 수신할 수 있다. 쿨링 제어 보드(370)는 베이스보드(330)의 제어에 따라 쿨러들(380)을 제어할 수 있다. 예를 들어, 쿨링 제어 보드(370)는 베이스보드(330)의 제1 CPU(331), 제2 CPU(332) 또는 BMC(337)의 제어에 따라 쿨러들(380)을 제어할 수 있다. 쿨링 제어 보드(370)는 쿨러들(380)의 동작 활성화 및 비활성화, 그리고 쿨링의 강도(예를 들어, RPM)를 제어할 수 있다.
쿨러들(380)은 전원 공급기(310)로부터 전력(PWR)을 수신할 수 있다. 쿨러들(380)은 쿨링 제어 보드(370)의 제어에 따라 쿨링을 수행하여 전자 장치(300)의 온도를 낮출 수 있다. 쿨러들(380)은 팬들(fans)을 포함할 수 있지만 한정되지 않는다. 쿨러들(380)은 하나의 위치에 집중되어 배치되는 것으로 한정되지 않으며, 둘 이상의 위치들에 분산되어 배치될 수 있다. 쿨러들(380)의 일부는 전자 장치(300)의 섀시에 부착되어, 외부 공기를 전자 장치(300)의 내부로 주입할 수 있다. 쿨러들(380)의 다른 일부는 특정한 구성 요소에 배치되어, 특정한 구성 요소의 쿨링을 전담할 수 있다.
센서들(390)은 전원 공급기(310)로부터 전력(PWR)을 수신할 수 있다. 센서들(390)은 전자 장치(300)의 구성 요소들에 인접하여 배치될 수 있다. 센서들(390)은 베이스보드(330)의 제어에 따라 다양한 정보를 수집하고, 그리고 수집한 정보를 베이스보드(330)에 제공할 수 있다.
예를 들어, 센서들(390)은 베이스보드(330)의 BMC(337)의 제어에 따라 정보를 수집하고, 그리고 수집된 정보를 BMC(337)에 제공할 수 있다. 센서들(390)(SENS)은 IPMI의 SDR(Sensor Data Repository)를 통해 수집된 정보를 BMC(337)에 제공할 수 있다. 예를 들어, 센서들(390)에 서로 다른 기록 ID들(Record IDs)이 부여될 수 있다. 센서들(390)은 서로 다른 기록 ID들에 기반하여, 정보를 BMC(337)에 제공할 수 있다. 센서들(390)은 온도 센서, 습도 센서, 진동 센서 등과 같은 다양한 센서들을 포함할 수 있다.
도 1에서, 베이스보드(330)에 특정 개수의 CPU들 및 메모리들이 탑재된 것으로 도시되지만, CPU들의 수 및 메모리들의 수는 한정되지 않는다. 도 1에서 특정 개수의 SSD 백플레인들이 도시되지만, SSD 백플레인들의 수는 한정되지 않는다. 도 1에서 특정 종류의 쿨러들이 특정 개수만큼 도시되지만, 쿨러들의 종류 및 개수는 한정되지 않는다. 도 1에서 특정 개수의 센서들이 도시되지만, 센서들의 수 및 종류는 한정되지 않는다.
예시적으로, 제1 내지 제3 SSD 백플레인들(140, 150, 160)에 포함되는 복수의 SSD들의 각각은 도 1 내지 도 13을 참조하여 설명된 스토리지 장치(100)를 포함할 수 있다. 베이스보드(330)는 도 1 내지 도 13을 참조하여 설명된 호스트 장치(20)에 대응할 수 있다. 베이스보드(330) 및 제1 내지 제3 SSD 백플레인들(340, 350, 360)의 SSD들의 각각은 네임스페이스들을 구성하고, 그리고 네임스페이스들의 구성을 동적으로 갱신할 수 있다.
도 16은 본 발명의 일 실시예에 따른 스토리지(storage) 장치가 적용된 전자 장치(1000)를 도시한 도면이다. 도 16의 전자 장치(1000)는 기본적으로 휴대용 통신 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기 또는 IOT(internet of things) 기기와 같은 모바일(mobile) 시스템일 수 있다. 하지만 도 16의 전자 장치(1000)는 반드시 모바일 시스템에 한정되는 것은 아니고, 개인용 컴퓨터(personal computer), 랩탑(laptop) 컴퓨터, 서버(server), 미디어 재생기(media player) 또는 내비게이션(navigation)과 같은 차량용 장비(automotive device) 등이 될 수도 있다.
도 16을 참조하면, 전자 장치(1000)는 메인 프로세서(main processor)(1100), 메모리(1200a, 1200b) 및 스토리지 장치(1300a, 1300b)를 포함할 수 있으며, 추가로 촬영 장치(image capturing device)(1410), 사용자 입력 장치(user input device)(1420), 센서(1430), 통신 장치(1440), 디스플레이(1450), 스피커(1460), 전력 공급 장치(power supplying device)(1470) 및 연결 인터페이스(connecting interface)(1480) 중 하나 이상을 포함할 수 있다.
메인 프로세서(1100)는 전자 장치(1000)의 전반적인 동작, 보다 구체적으로는 전자 장치(1000)를 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(1100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다.
메인 프로세서(1100)는 하나 이상의 CPU 코어(1110)를 포함할 수 있으며, 메모리(1200a, 1200b) 및/또는 스토리지 장치(1300a, 1300b)를 제어하기 위한 컨트롤러(1120)를 더 포함할 수 있다. 실시예에 따라서는, 메인 프로세서(1100)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator)(1130)를 더 포함할 수 있다. 이와 같은 가속기(1130)는 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 및/또는 DPU(Data Processing Unit) 등을 포함할 수 있으며, 메인 프로세서(1100)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.
메모리(1200a, 1200b)는 전자 장치(1000)의 주기억 장치로 사용될 수 있으며, SRAM 및/또는 DRAM 등의 휘발성 메모리를 포함할 수 있으나, 플래시 메모리, PRAM 및/또는 RRAM 등의 불휘발성 메모리를 포함할 수도 있다. 메모리(1200a, 1200b)는 메인 프로세서(1100)와 동일한 패키지 내에 구현되는 것도 가능하다.
스토리지 장치(1300a, 1300b)는 전원 공급 여부와 관계 없이 데이터를 저장하는 불휘발성 저장 장치로서 기능할 수 있으며, 메모리(1200a, 1200b)에 비해 상대적으로 큰 저장 용량을 가질 수 있다. 스토리지 장치(1300a, 1300b)는 스토리지 컨트롤러(1310a, 1310b)(STRG CTRL)와, 스토리지 컨트롤러(1310a, 1310b)의 제어 하에 데이터를 저장하는 불휘발성 메모리(non-volatile memory, NVM)(1320a, 1320b)를 포함할 수 있다. 불휘발성 메모리(1320a, 1320b)는 2D(2-dimensional) 구조 혹은 3D(3-dimensional) V-NAND(Vertical NAND) 구조의 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 불휘발성 메모리를 포함할 수도 있다.
스토리지 장치(1300a, 1300b)는 메인 프로세서(1100)와는 물리적으로 분리된 상태로 전자 장치(1000)에 포함될 수도 있고, 메인 프로세서(1100)와 동일한 패키지 내에 구현될 수도 있다. 또한, 스토리지 장치(1300a, 1300b)는 SSD(solid state device) 혹은 메모리 카드(memory card)와 같은 형태를 가짐으로써, 후술할 연결 인터페이스(1480)와 같은 인터페이스를 통해 전자 장치(1000)의 다른 구성 요소들과 탈부착 가능하도록 결합될 수도 있다. 이와 같은 스토리지 장치(1300a, 1300b)는 UFS(Universal Flash Storage), eMMC(embedded multi-media card) 혹은 NVMe(non-volatile memory express)와 같은 표준 규약이 적용되는 장치일 수 있으나, 반드시 이에 한정되는 건 아니다.
촬영 장치(1410)는 정지 영상 또는 동영상을 촬영할 수 있으며, 카메라(camera), 캠코더(camcorder) 및/또는 웹캠(webcam) 등일 수 있다.
사용자 입력 장치(1420)는 전자 장치(1000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keypad), 키보드(keyboard), 마우스(mouse) 및/또는 마이크(microphone) 등일 수 있다.
센서(1430)는 전자 장치(1000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(1430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 및/또는 자이로스코프(gyroscope) 센서 등일 수 있다.
통신 장치(1440)는 다양한 통신 규약에 따라 전자 장치(1000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(1440)는 안테나, 트랜시버(transceiver) 및/또는 모뎀(MODEM) 등을 포함하여 구현될 수 있다.
디스플레이(1450) 및 스피커(1460)는 전자 장치(1000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.
전력 공급 장치(1470)는 전자 장치(1000)에 내장된 배터리(도시 안함) 및/또는 외부 전원으로부터 공급되는 전력을 적절히 변환하여 전자 장치(1000)의 각 구성 요소들에게 공급할 수 있다.
연결 인터페이스(1480)는 전자 장치(1000)와, 전자 장치(1000)에 연결되어 시스템(1000과 데이터를 주고받을 수 있는 외부 장치 사이의 연결을 제공할 수 있다. 연결 인터페이스(1480)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe, IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC, UFS, eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.
예시적으로, 스토리지 컨트롤러(1310a, 1310b)는 도 1 내지 도 13을 참조하여 설명된 메모리 제어기(150)에 대응할 수 있다. 불휘발성 메모리(1320a, 1320b)는 도 1 내지 도 13을 참조하여 설명된 제1 내지 제4 불휘발성 메모리 칩들(110, 120, 130, 140)을 포함할 수 있다. 메인 프로세서(1100)는 도 1 내지 도 13을 참조하여 설명된 호스트 장치(20)에 대응할 수 있다. 메인 프로세서(1100) 및 스토리지 장치(1300a, 1300b)는 네임스페이스들을 구성하고, 그리고 네임스페이스들의 구성을 동적으로 갱신할 수 있다.
상술된 실시 예들에서, 제1, 제2, 제3 등의 용어들을 사용하여 본 발명의 기술적 사상에 따른 구성 요소들이 설명되었다. 그러나 제1, 제2, 제3 등과 같은 용어들은 구성 요소들을 서로 구별하기 위해 사용되며, 본 발명을 한정하지 않는다. 예를 들어, 제1, 제2, 제3 등과 같은 용어들은 순서 또는 임의의 형태의 수치적 의미를 내포하지 않는다.
상술된 실시 예들에서, 블록들을 사용하여 본 발명의 실시 예들에 따른 구성 요소들이 참조되었다. 블록들은 IC (Integrated Circuit), ASIC (Application Specific IC), FPGA (Field Programmable Gate Array), CPLD (Complex Programmable Logic Device) 등과 같은 다양한 하드웨어 장치들, 하드웨어 장치들에서 구동되는 펌웨어, 응용과 같은 소프트웨어, 또는 하드웨어 장치와 소프트웨어가 조합된 형태로 구현될 수 있다. 또한, 블록들은 IC 내의 반도체 소자들로 구성되는 회로들 또는 IP(Intellectual Property)로 등록된 회로들을 포함할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
10: 전자 장치
20: 호스트 장치
100: 스토리지 장치
110, 120, 130, 140: 불휘발성 메모리 칩들
150: 메모리 제어기
SS1, SS2, SS3, SS4: 저장 공간들
PG: 물리 주소 그룹
LG: 논리 주소 그룹
NS1, NS2, NS3: 네임스페이스들

Claims (20)

  1. 복수의 불휘발성 메모리 칩들을 포함하는 스토리지 장치의 동작 방법에 있어서:
    상기 스토리지 장치가 상기 복수의 불휘발성 메모리 칩들의 각각의 용량의 정보를 외부의 호스트 장치에 제공하는 단계;
    상기 스토리지 장치가 상기 외부의 호스트 장치로부터 복수의 그룹들의 정보를 수신하는 단계;
    상기 복수의 그룹들의 정보를 수신한 후에, 리셋을 수행하는 단계;
    상기 스토리지 장치가 상기 복수의 불휘발성 메모리 칩들을 상기 복수의 그룹들과 매핑하는 단계; 그리고
    상기 리셋을 수행한 후에, 상기 복수의 그룹들에 대응하도록 상기 복수의 불휘발성 메모리 칩들을 구성하는 단계를 포함하는 동작 방법.
  2. 제1항에 있어서,
    상기 복수의 그룹들의 정보는 상기 복수의 그룹들의 각각이 상기 복수의 불휘발성 메모리 칩들 중 적어도 하나와 매핑되는 정보를 포함하는 동작 방법.
  3. 제2항에 있어서,
    상기 복수의 그룹들의 각각은 상기 외부의 호스트 장치에 의해 정해진 네임스페이스(namespace)인 동작 방법.
  4. 제2항에 있어서,
    상기 복수의 그룹들 중 하나의 그룹이 상기 복수의 불휘발성 메모리 칩들 중 적어도 두 개의 불휘발성 메모리 칩들과 매핑되는 것에 응답하여, 상기 스토리지 장치는 상기 하나의 그룹에 대한 액세스를 상기 적어도 두 개의 불휘발성 메모리 칩들로 인터리빙하는 동작 방법.
  5. 제1항에 있어서,
    상기 복수의 그룹들의 정보를 수신하는 것에 응답하여, 상기 복수의 그룹들과 상기 복수의 불휘발성 메모리 칩들의 매핑의 가능 여부를 상기 외부의 호스트 장치에 응답하는 단계를 더 포함하는 동작 방법.
  6. 제1항에 있어서,
    상기 구성하는 단계는:
    상기 복수의 그룹들의 각각과 상기 복수의 불휘발성 메모리 칩들 중 대응하는 적어도 하나의 불휘발성 메모리 칩을 서로 연관하는 복수의 주소 매핑 테이블들을 구성하는 단계를 포함하는 동작 방법.
  7. 제1항에 있어서,
    상기 구성하는 단계가 완료되었음을 알리는 응답을 상기 외부의 호스트 장치로 출력하는 단계를 더 포함하는 동작 방법.
  8. 제1항에 있어서,
    상기 복수의 불휘발성 메모리 칩들을 상기 복수의 그룹들과 매핑하는 단계는:
    상기 외부의 호스트 장치로부터 상기 복수의 그룹들의 생성 요청을 수신하는 단계; 그리고
    상기 생성 요청에 응답하여, 상기 복수의 그룹들의 논리 주소들과 상기 복수의 불휘발성 메모리 칩들의 물리 주소들을 매핑하는 단계를 포함하는 동작 방법.
  9. 제1항에 있어서,
    상기 스토리지 장치가 상기 외부의 호스트 장치로부터 복수의 제2 그룹들의 정보를 수신하는 단계; 그리고
    상기 스토리지 장치가 상기 복수의 불휘발성 메모리 칩들을 상기 복수의 제2 그룹들과 재매핑하는 단계를 더 포함하는 동작 방법.
  10. 제9항에 있어서,
    상기 복수의 불휘발성 메모리 칩들 중 적어도 하나의 불휘발성 메모리 칩의 적어도 일부의 페일을 검출하는 단계; 그리고
    상기 적어도 일부의 페일을 검출하는 것에 응답하여, 상기 복수의 불휘발성 메모리 칩들의 각각의 용량 정보를 수집하는 단계를 더 포함하는 동작 방법.
  11. 제10항에 있어서,
    상기 수집된 용량 정보를 상기 외부의 호스트 장치에 제공하는 단계를 더 포함하고, 그리고
    상기 제2 그룹들의 정보를 수신하는 단계는 상기 수집된 용량 정보를 상기 외부의 호스트 장치에 제공하는 단계에 응답하여 수행되는 동작 방법.
  12. 제10항에 있어서,
    상기 용량 정보는 상기 페일된 적어도 일부의 용량을 제외한 가용 용량을 나타내고, 그리고
    상기 제2 그룹들의 정보는 상기 페일된 적어도 일부의 용량을 제외한 상기 가용 용량에 기반하는 동작 방법.
  13. 제9항에 있어서,
    상기 스토리지 장치가 상기 외부의 호스트 장치로부터 상기 복수의 그룹들의 삭제 요청을 수신하는 단계; 그리고
    상기 삭제 요청에 응답하여, 상기 복수의 그룹들과 상기 복수의 불휘발성 메모리 칩들의 매핑을 해제하는 단계를 더 포함하는 동작 방법.
  14. 제9항에 있어서,
    상기 재매핑하는 단계는, 상기 복수의 불휘발성 메모리 칩들 중 적어도 하나를 오버 프로비젼 영역으로 할당하는 단계를 포함하는 동작 방법.
  15. 제1항에 있어서,
    상기 외부의 호스트 장치로부터 상기 복수의 그룹들 중 하나의 그룹을 가리키는 그룹 식별자 및 액세스 요청을 수신하는 단계; 그리고
    상기 액세스 요청에 응답하여, 상기 복수의 불휘발성 메모리 칩들 중 상기 하나의 그룹에 매핑된 적어도 하나의 불휘발성 메모리 칩을 액세스하는 단계를 더 포함하는 동작 방법.
  16. 복수의 불휘발성 메모리 칩들; 그리고
    외부의 호스트 장치로부터 복수의 그룹들의 정보를 수신하고, 상기 복수의 그룹들의 각각에 상기 복수의 불휘발성 메모리 칩들 중 적어도 하나의 불휘발성 메모리 칩을 매핑하는 메모리 제어기를 포함하고,
    상기 외부의 호스트 장치로부터 상기 복수의 그룹들 중 하나의 그룹에 대한 액세스 요청이 수신되는 것에 응답하여, 상기 제어기는 상기 복수의 불휘발성 메모리 칩들 중 상기 하나의 그룹에 대응하는 적어도 하나의 불휘발성 메모리 칩을 액세스하는 스토리지 장치.
  17. 제16항에 있어서,
    상기 외부의 호스트 장치로부터 복수의 제2 그룹들의 정보를 수신하는 것에 응답하여, 상기 메모리 제어기는 상기 복수의 그룹들과 상기 복수의 불휘발성 메모리 칩들 사이의 매핑을 상기 복수의 제2 그룹들과 상기 복수의 불휘발성 메모리 칩들 사이의 매핑으로 갱신하는 스토리지 장치.
  18. 제16항에 있어서,
    상기 복수의 그룹들의 각각은 상기 외부의 호스트 장치에 의해 정해진 네임스페이스(namespace)인 스토리지 장치.
  19. 중앙 처리 장치;
    상기 중앙 처리 장치에 의해 동작 메모리로 사용되는 랜덤 액세스 메모리; 그리고
    상기 중앙 처리 장치에 의해 상기 랜덤 액세스 메모리로 로드되는 데이터의 원본 데이터를 저장하고, 그리고 상기 중앙 처리 장치에 의해 생성되는 데이터를 저장하는 스토리지 장치를 포함하고,
    상기 스토리지 장치는:
    복수의 불휘발성 메모리 칩들; 그리고
    상기 중앙 처리 장치로부터 복수의 그룹들의 정보를 수신하고, 상기 복수의 그룹들의 각각에 상기 복수의 불휘발성 메모리 칩들 중 적어도 하나의 불휘발성 메모리 칩을 매핑하는 메모리 제어기를 포함하고,
    상기 중앙 처리 장치로부터 상기 복수의 그룹들 중 하나의 그룹에 대한 액세스 요청이 수신되는 것에 응답하여, 상기 제어기는 상기 복수의 불휘발성 메모리 칩들 중 상기 하나의 그룹에 대응하는 적어도 하나의 불휘발성 메모리 칩을 액세스하고, 그리고
    상기 복수의 불휘발성 메모리 칩들 중 적어도 하나의 불휘발성 메모리 칩에서 페일이 발생하는 것에 기반하여, 상기 메모리 제어기는 상기 복수의 그룹들과 상기 복수의 불휘발성 메모리 장치들 사이의 매핑을 갱신하는 전자 장치.
  20. 제19항에 있어서,
    상기 복수의 그룹들의 각각은 상기 중앙 처리 장치에 의해 정해진 네임스페이스(namespace)인 전자 장치.
KR1020210028321A 2021-03-03 2021-03-03 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 포함하는 전자 장치 KR20220125836A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020210028321A KR20220125836A (ko) 2021-03-03 2021-03-03 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 포함하는 전자 장치
US17/511,752 US20220283912A1 (en) 2021-03-03 2021-10-27 Storage device, operating method of storage device, and electronic device including storage device
EP21208197.0A EP4053705B1 (en) 2021-03-03 2021-11-15 Operating method of storage device
CN202111414963.2A CN115033498A (zh) 2021-03-03 2021-11-25 存储装置、存储装置的操作方法以及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210028321A KR20220125836A (ko) 2021-03-03 2021-03-03 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 포함하는 전자 장치

Publications (1)

Publication Number Publication Date
KR20220125836A true KR20220125836A (ko) 2022-09-15

Family

ID=83117121

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210028321A KR20220125836A (ko) 2021-03-03 2021-03-03 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 포함하는 전자 장치

Country Status (3)

Country Link
US (1) US20220283912A1 (ko)
KR (1) KR20220125836A (ko)
CN (1) CN115033498A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220008429A (ko) * 2020-07-13 2022-01-21 삼성전자주식회사 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브를 포함하는 전자 장치, 그리고 솔리드 스테이트 드라이브를 관리하는 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US6829721B2 (en) * 2001-02-05 2004-12-07 M-Systems Flash Disk Pioneers Ltd. Method for recording and storage of system information in multi-board solid-state storage systems
JP4772214B2 (ja) * 2001-06-08 2011-09-14 ルネサスエレクトロニクス株式会社 不揮発性記憶装置及びその書き換え制御方法
US9298472B2 (en) * 2004-01-27 2016-03-29 Nec Corporation High-speed restart method, information processing device, and program
US7509474B2 (en) * 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory
TWI426528B (zh) * 2009-09-30 2014-02-11 Phison Electronics Corp 用於快閃記憶體的區塊管理方法、控制器與儲存系統
JP2011170589A (ja) * 2010-02-18 2011-09-01 Nec Corp ストレージ制御装置、ストレージ装置およびストレージ制御方法
TWI451439B (zh) * 2010-12-10 2014-09-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
US8793463B2 (en) * 2011-09-12 2014-07-29 Microsoft Corporation Allocation strategies for storage device sets
US8924832B1 (en) * 2012-06-26 2014-12-30 Western Digital Technologies, Inc. Efficient error handling mechanisms in data storage systems
DE112013007279T5 (de) * 2013-09-23 2016-05-04 Intel Corporation Ereignisausgelöstes speichern von Daten in einem nicht flüchtigen Speicher
US10089033B2 (en) * 2014-04-24 2018-10-02 Hitachi, Ltd. Storage system
US20160232088A1 (en) * 2014-07-17 2016-08-11 Sandisk Enterprise Ip Llc Garbage Collection in Storage System with Distributed Processors
US9678864B2 (en) * 2014-12-03 2017-06-13 Seagate Technology Llc Data reallocation upon detection of errors
US10783025B2 (en) * 2018-10-15 2020-09-22 Dell Products, L.P. Method and apparatus for predictive failure handling of interleaved dual in-line memory modules

Also Published As

Publication number Publication date
CN115033498A (zh) 2022-09-09
US20220283912A1 (en) 2022-09-08

Similar Documents

Publication Publication Date Title
TWI704487B (zh) 資料儲存設備及其操作方法
KR102533207B1 (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN110083545B (zh) 数据存储装置及其操作方法
CN106681932B (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
KR102585883B1 (ko) 메모리 시스템의 동작 방법 및 메모리 시스템
CN109992202B (zh) 数据存储设备、其操作方法以及包括其的数据处理系统
KR20190102781A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN112988044A (zh) 存储器系统及包括该存储器系统的数据处理系统
EP3926451A1 (en) Communication of data relocation information by storage device to host to improve system performance
US20230031745A1 (en) Memory system and controller of memory system
US10901653B2 (en) Electronic device
US20190236020A1 (en) Memory system and operating method thereof
KR102434840B1 (ko) 데이터 저장 장치
US20220283912A1 (en) Storage device, operating method of storage device, and electronic device including storage device
TWI514141B (zh) 記憶體位址管理方法、記憶體控制器與記憶體儲存裝置
TW201941208A (zh) 記憶體管理方法與儲存控制器
CN108804338B (zh) 数据存储装置及其操作方法
US11720276B2 (en) Memory system and controller for managing write status
CN115963982A (zh) 存储装置及电子系统
CN114385070B (zh) 主机、数据存储装置、数据处理系统以及数据处理方法
EP4053705B1 (en) Operating method of storage device
KR20220076803A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20210079894A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN112328516A (zh) 控制器、控制器的操作方法以及包括控制器的存储装置
KR20190061942A (ko) 데이터 저장 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination