KR101554084B1 - 논리적 어드레스 변환 - Google Patents

논리적 어드레스 변환 Download PDF

Info

Publication number
KR101554084B1
KR101554084B1 KR1020137023450A KR20137023450A KR101554084B1 KR 101554084 B1 KR101554084 B1 KR 101554084B1 KR 1020137023450 A KR1020137023450 A KR 1020137023450A KR 20137023450 A KR20137023450 A KR 20137023450A KR 101554084 B1 KR101554084 B1 KR 101554084B1
Authority
KR
South Korea
Prior art keywords
las
data associated
offset
group
physical
Prior art date
Application number
KR1020137023450A
Other languages
English (en)
Other versions
KR20130120541A (ko
Inventor
마틴 엘. 컬리
트로이 에이. 매닝
트로이 디. 라센
Original Assignee
마이크론 테크놀로지, 인크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크 filed Critical 마이크론 테크놀로지, 인크
Publication of KR20130120541A publication Critical patent/KR20130120541A/ko
Application granted granted Critical
Publication of KR101554084B1 publication Critical patent/KR101554084B1/ko

Links

Images

Classifications

    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/04Addressing variable-length words or parts of words
    • 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
    • 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
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with 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/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
    • 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/7202Allocation control and policies
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Read Only Memory (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

본 발명은 논리적 어드레스 변환을 위한 방법, 메모리 시스템을 동작시키는 방법 및 메모리 시스템을 포함한다. 하나의 이러한 방법은 LA의 특정 범위 내에 있는 LA와 연관된 명령을 수신하는 단계 및 상기 특정 범위와는 다른 LA의 범위와 연관된 데이터를 기록할 때 스킵된 물리적 위치의 개수에 대응하는 오프셋을 사용하여 상기 LA를 메모리 내 물리적 위치로 변환하는 단계를 포함한다.

Description

논리적 어드레스 변환{LOGICAL ADDRESS TRANSLATION}
본 발명은 일반적으로 반도체 메모리 디바이스, 방법 및 시스템에 관한 것으로, 보다 상세하게는 논리적 어드레스 변환에 관한 것이다.
메모리 디바이스는 일반적으로 컴퓨터 또는 다른 전자 디바이스에서 내부, 반도체, 집적 회로로 제공된다. 여기에는 휘발성 메모리와 비휘발성 메모리를 포함하는 많은 상이한 유형의 메모리가 있다. 휘발성 메모리는 그 정보를 유지하는데 전력을 요구하는 것으로, 특히 RAM(random access memory), DRAM(dynamic random access memory) 및 SDRAM(synchronous dynamic random access memory)을 포함할 수 있다. 비휘발성 메모리는 전력 투입이 없을 때에도 저장된 정보를 유지하는 것에 의해 영구적으로 정보를 제공할 수 있는 것으로, 특히 NAND 플래시 메모리, NOR 플래시 메모리, ROM(read only memory), EEPROM(Electrically Erasable Programmable ROM), EPROM(Erasable Programmable ROM) 및 PCRAM(phase change random access memory)을 포함할 수 있다.
메모리 디바이스는 고체상태 드라이브(solid state drive: SSD)를 형성하도록 서로 결합될 수 있다. 고체 상태 드라이브는 여러 다른 유형의 비휘발성 메모리 및 휘발성 메모리 중에서 특히 비휘발성 메모리, 예를 들어, NAND 플래시 메모리 및 NOR 플래시 메모리를 포함하고/하거나, 휘발성 메모리, 예를 들어, DRAM 및 SRAM를 포함할 수 있다. 질화물층의 전하 트랩에 정보를 저장하는 반도체-산화물-질화물-산화물-반도체 및 금속-산화물-질화물-산화물-반도체 커패시터 구조물을 사용하는 전하 트랩 플래시(charge trap flash: CTF) 디바이스 및 플로팅 게이트 플래시 디바이스를 포함하는 플래시 메모리 디바이스는, 광범위한 전자 응용에서 비휘발성 메모리로 사용될 수 있다. 플래시 메모리 디바이스는 일반적으로 높은 메모리 밀도, 고신뢰성 및 낮은 전력 소비를 가능하게 하는 하나의 트랜지스터 메모리 셀을 사용한다.
고체 상태 드라이브(SSD)는 성능, 사이즈, 중량, 러기드니스(ruggedness), 동작 온도 범위 및 전력 소비량 면에서 하드 드라이브에 비해 장점을 가질 수 있으므로 SSD는 컴퓨터를 위한 메인 저장 디바이스로서 하드 디스크 드라이브를 대체하는데 사용될 수 있다. 예를 들어, SSD는 이동 부분이 없는 것으로 인해 자기 디스크 드라이브에 비해 자기 디스크 드라이브와 연관된 탐색 시간, 지체, 및 다른 전기-기계 지연을 피할 수 있는 우수한 성능을 구비할 수 있다. SSD 제조사는 내부 배터리 공급원을 사용하지 않을 수 있는 플래시 SSD를 생성하는데 비휘발성 플래시 메모리를 사용하여 드라이브를 보다 다양하고 컴팩트하게 할 수 있다.
SSD는 다수의 메모리 디바이스, 예를 들어, 다수의 메모리 칩을 포함할 수 있다(본 명세서에 사용된 바와 같이, 어떤 것의 "다수"란 이러한 것의 하나 이상을 말할 수 있고, 예를 들어, 다수의 메모리 디바이스란 하나 이상의 메모리 디바이스를 말할 수 있다). 이 기술 분야에 통상의 지식을 가진 자라면 메모리 칩은 다수의 다이 및/또는 논리적 유닛(logical unit: LUN)을 포함할 수 있다는 것을 이해할 수 있을 것이다. 각 다이는 다수의 메모리 어레이와 주변 회로를 포함할 수 있다. 메모리 어레이는 다수의 물리적 페이지로 구성된 다수의 메모리 셀을 포함할 수 있고, 이 물리적 페이지는 다수의 블록으로 구성될 수 있다.
SSD는 논리적 블록 어드레스(logical block address: LBA) 테이블과 같은 논리적 어드레스(LA) 테이블을 포함할 수 있다. LBA 테이블은 데이터의 논리적 어드레스를 SSD의 메모리 어레이 내 데이터의 물리적 위치(physical location)로 변환하는, 예를 들어, 링크하는 정보를 레코드하는데 사용될 수 있다. LBA 테이블은 고체 상태 드라이브 내 휘발성 메모리에 저장될 수 있고, LBA 테이블의 사본은 또한 고체 상태 드라이브 내 비휘발성 메모리에 저장될 수 있다. LBA 테이블은 명령, 예를 들어, 판독 요청 및/또는 기록 요청이 고체 상태 드라이브에서 개시될 때 고체 상태 드라이브에서 데이터의 물리적 위치를 변환, 예를 들어, 위치(locate)시키는데 사용될 수 있다. 특정 논리적 어드레스에서 데이터를 판독 및/또는 기록하는 판독 및/또는 기록 요청은 호스트에 의해 개시될 수 있다. 논리적 어드레스는 LBA 테이블에서 찾아볼 수 있고, 대응하는 물리적 어드레스는 지시될 수 있다. 고체 상태 드라이브는 고체 상태 드라이브의 판독 요청을 완료하기 위해 지시된 물리적 어드레스로부터 데이터를 판독할 수 있고/있거나, 고체 상태 드라이브는 고체 상태 드라이브의 기록 요청을 완료하기 위해 지시된 물리적 어드레스에 데이터를 기록할 수 있다.
암호화된 데이터는 고체 상태 메모리 디바이스에 저장될 수 있고, 호스트가 일정 범위의 LBA를 그룹으로 처리할 수 있는 경우가 있다. 예를 들어, 암호화 키는 특정 LBA 범위와 연관될 수 있다. 암호화 키의 수는 메모리 디바이스에 저장된 데이터를 암호화하는데 사용될 수 있다.
도 1은 본 발명의 하나 이상의 실시예에 따라 적어도 하나의 메모리 시스템을 포함하는 컴퓨팅 시스템의 기능 블록도;
도 2는 본 발명의 하나 이상의 실시예에 따라 비휘발성 메모리의 키 영역의 블록도;
도 3은 본 발명의 하나 이상의 실시예에 따른 키 범위 테이블을 도시한 도면.
본 발명은 논리적 어드레스 변환을 위한 방법을 포함한다. 하나의 이러한 방법은 특정 범위의 LA 내에 있는 LA와 연관된 명령을 수신하는 단계 및 상기 특정 범위가 아닌 범위의 LA와 연관된 데이터를 기록할 때 스킵된 물리적 위치의 개수에 대응하는 오프셋을 사용하여 상기 LA를 메모리 내 물리적 위치로 변환하는 단계를 포함한다.
발명의 이하 상세한 설명에서는, 본 발명을 실시할 수 있는 하나 이상의 실시예를 예를 들어 도시하고 본 명세서의 일부를 형성하는 첨부 도면을 참조한다. 이들 실시예는 이 기술 분야에 통상의 지식을 가진 자라면 본 발명의 실시예를 실시할 수 있을 만큼 충분히 상세히 설명되고, 다른 실시예들이 사용될 수도 있으며 본 발명의 범위를 벗어남이 없이 공정, 전기적 및/또는 구조적 변경이 이루어질 수 있는 것으로 이해된다. 본 명세서에 사용된 바와 같이, 특히 도면에 있는 참조 부호에서 지시자 "N"은 이렇게 지시된 다수의 특정 특징부가 본 발명의 하나 이상의 실시예에 포함될 수 있다는 것을 나타낸다.
본 명세서에 있는 도면은 첫 번째 숫자 또는 숫자들이 도면 번호에 대응하고 나머지 숫자는 도면에서 요소 또는 성분을 식별하는 도면 부호 부여 규정을 따른다. 상이한 도면들 사이에서 유사한 요소 또는 성분은 유사한 숫자를 사용하여 식별될 수 있다. 예를 들어, (108)은 도 1에서 요소 "08"을 나타낼 수 있고, 도 2에 있는 유사한 요소는 (208)로 지칭될 수 있다. 이해되는 바와 같이, 본 명세서에서 여러 실시예에 도시된 요소는 본 발명의 다수의 추가적인 실시예를 제공하도록 추가, 교환 및/또는 제거될 수 있다. 나아가, 이해되는 바와 같이, 도면에 제공된 요소의 비율과 상대적인 축척은 본 발명의 특정 실시예를 예시하려고 의도된 것이므로 발명을 제한하는 것으로 해석되어서는 안 된다.
도 1은 본 발명의 하나 이상의 실시예에 따라 적어도 하나의 메모리 시스템(104)을 포함하는 컴퓨팅 시스템(100)의 기능 블록도이다. 도 1에 도시된 실시예에서, 메모리 시스템(104), 예를 들어, 고체 상태 드라이브(SSD)는 제어기(108) 및 하나 이상의 고체 상태 메모리 디바이스(110-1, ..., 110-N)를 포함할 수 있다. 고체 상태 메모리 디바이스(110-1, ..., 110-N)는 예를 들어, 메모리 디바이스로 포맷된 파일 시스템을 구비하는 메모리 시스템을 위한 저장 볼륨을 제공할 수 있다. 제어기(108)는 제어 회로, 예를 들어, 하드웨어, 펌웨어 및/또는 소프트웨어를 포함할 수 있다. 하나 이상의 실시예에서, 제어기(108)는 물리적 인터페이스 및 고체 상태 메모리 디바이스(110-1, ..., 110-N)를 포함하는 인쇄 회로 기판에 연결된 응용 특정 집적 회로(ASIC)일 수 있다.
도 1에 도시된 바와 같이, 제어기(108)는 고체 상태 메모리 디바이스(110-1, ..., 110-N)에 연결될 수 있다. 호스트(102)는 메모리 시스템(104)을 어드레싱할 때 논리적 블록 어드레스(LBA)를 사용할 수 있다. 플래시 변환층(FTL)(112)은 LBA를 고체 상태 메모리 디바이스(110-1, ..., 110-N) 내 물리적 위치로 변환하거나 그 역으로 변환할 수 있다. 이것은 호스트(102)로 하여금 메모리 디바이스(110-1,…, 110-N)의 물리적 특성을 무시하고 메모리 시스템(104)을 논리 섹터(logical sector)의 연속하는 선형 맵(map)으로 취급할 수 있게 한다. 호스트(102)는 다른 호스트 시스템 중에서 특히 랩탑 컴퓨터, 퍼스널 컴퓨터, 디지털 카메라, 디지털 레코딩 및 재생 디바이스, 모바일 전화, PDA, 메모리 카드 판독기, 인터페이스 허브일 수 있고, 메모리 액세스 디바이스, 예를 들어, 프로세서를 포함할 수 있다. 이 기술 분야에 통상의 지식을 가진 자라면 "프로세서"는 병렬 처리 시스템, 다수의 코프로세서, 등과 같은 하나 이상의 프로세서를 의도할 수 있다는 것을 이해할 수 있을 것이다.
하나 이상의 실시예에서, 물리적 호스트 인터페이스는 표준화된 인터페이스의 형태일 수 있다. 예를 들어, 메모리 시스템(104)이 컴퓨팅 시스템(100)에 데이터를 저장하는데 사용될 때, 물리적 호스트 인터페이스는 다른 커넥터 및 인터페이스 중에서 특히 SATA(serial advanced technology attachment), PCIe (peripheral component interconnect express), 또는 USB(universal serial bus)일 수 있다. 그러나, 일반적으로, 물리적 호스트 인터페이스는 물리적 호스트 인터페이스를 위한 호환가능한 수용기(compatible receptor)를 가지는 호스트(102)와 메모리 시스템(104) 사이에 제어, 어드레스, 데이터, 및 다른 신호를 통과시키기 위한 인터페이스를 제공할 수 있다.
제어기(108)는 다른 동작 중에서 특히 데이터를 판독, 기록 및 소거하기 위해 고체 상태 메모리 디바이스(110-1, ..., 110-N)와 통신할 수 있다. 제어기(108)는 하나 이상의 집적 회로 및/또는 이산 성분(discrete component)일 수 있는 회로를 구비할 수 있다. 도 1에 도시된 바와 같이, 제어기(108)는 논리적-물리적 변환 기능, 예를 들어, 플래시 변환층(FTL)(112)을 포함할 수 있다. FTL(112)은 고체 상태 메모리 디바이스(110-1, ..., 110-N) 내 호스트(102)-물리적 위치로부터 수용된 요청과 연관된 논리적 어드레스를 맵핑하는데 사용될 수 있다. 본 명세서에 더 설명되는 바와 같이, FTL(112)은 LBA를 물리적 위치로 변환하기 위해, 오프셋을 지시하는 키 범위 테이블(114)(제어기에 포함되었으나, 이는 또한 메모리 디바이스(110)에 저장될 수 있음) 내의 정보를 사용할 수 있다. 메모리 제어기는 고체 상태 메모리 디바이스(110-1, ..., 110-N)의 I/O 연결부(도 1에 미도시)를 선택적으로 연결하여 적절한 시간에 적절한 I/O 연결부에서 적절한 신호를 수신할 수 있다. 유사하게, 호스트(102)와 메모리 시스템(104) 사이의 통신 프로토콜은 고체 상태 메모리 디바이스(110-1, ..., 110-N)의 액세스에 필요한 것과 상이한 것일 수 있다. 제어기(108)는 고체 상태 메모리 디바이스(110-1, ..., 110-N)에 원하는 액세스를 달성하기 위해 호스트로부터 수신된 명령을 적절한 명령으로 변환할 수 있다.
고체 상태 메모리 디바이스(110-1, ..., 110-N)는 메모리 셀, 예를 들어, 비휘발성 메모리 셀의 하나 이상의 어레이를 포함할 수 있다. 어레이는 예를 들어 NAND 아키텍처를 구비하는 플래시 어레이일 수 있다. NAND 아키텍처에서, "행"의 메모리 셀의 제어 게이트는 액세스 라인, 예를 들어, 워드 라인에 연결될 수 있는 반면, 메모리 셀은 선택 게이트 소스 트랜지스터와 선택 게이트 드레인 트랜지스터 사이 "스트링(string)"에 소스-드레인이 직렬 연결될 수 있다. 스트링은 선택 게이트 드레인 트랜지스터에 의해 데이터 라인, 예를 들어, 비트 라인에 연결될 수 있다. "행" 및 "스트링" 이라는 용어의 사용은 메모리 셀이 선형이라거나 직교 배열이라는 것을 암시하는 것이 전혀 아니다. 이 기술 분야에 통상의 지식을 가진 자라면 이해할 수 있는 바와 같이, 메모리 셀을 비트 라인과 소스 라인에 연결하는 방식은 어레이가 NAND 아키텍처인지, NOR 아키텍처인지, 또는 일부 다른 메모리 어레이 아키텍처인지에 따라 좌우된다.
고체 상태 메모리 디바이스(110-1, ..., 110-N)는 그룹화될 수 있는 다수의 메모리 셀을 포함할 수 있다. 본 명세서에 사용된 바와 같이, 그룹은 메모리 셀의 페이지(page), 블록(block), 플레인(plane), 다이(die), 전체 어레이(array), 또는 다른 그룹과 같은 하나 이상의 메모리 셀을 포함할 수 있다. 예를 들어, 일부 메모리 어레이는 메모리 셀의 블록을 구성하는 메모리 셀의 다수의 페이지를 포함할 수 있다. 다수의 블록은 메모리 셀의 플레인에 포함될 수 있다. 메모리 셀의 다수의 플레인은 다이에 포함될 수 있다. 일례로서, 128 GB 메모리 디바이스는 페이지당 4314개의 바이트의 데이터, 블록당 128개의 페이지, 플레인당 2048개의 블록 및 디바이스당 16개의 플레인을 포함할 수 있다.
고체 상태 메모리 디바이스(110-1,..., 110-N)는 다수의 채널을 포함할 수 있고, 각 채널은 다수의 다이를 포함할 수 있다. 각 채널은 논리적 유닛 수(LUN)를 사용하여 구성될 수 있다. 데이터를 고체 상태 메모리 디바이스(110-1,..., 110-N)에 기록할 때, 데이터는 채널의 수 및 LUN에 걸쳐 스트라이프(striped)될 수 있다. 데이터는 채널과 연관된 메모리 셀 중에서 예측 패턴으로 데이터를 스트라이프하는 기록 패턴 알고리즘을 사용하여 고체 상태 메모리 디바이스(110-1,..., 110-N)에 기록될 수 있다. 데이터를 기록하는 것은 호스트에 의해 채널에 송신되는 데이터 트래픽을 처리하는 채널의 능력에 의해 제한될 수 있으므로, 다수의 채널이 메모리 시스템에 의해 사용되어 이 수의 채널에 더 많은 데이터를 기록하고 판독될 수 있게 할 수 있다.
암호화된 데이터는 고체 상태 메모리 디바이스(110-1,..., 110-N)에 저장될 수 있다. 예를 들어, 다수의 암호화 키는 메모리 디바이스(110)에 저장된 데이터를 암호화하는데 사용될 수 있다. LBA의 범위는 암호화 키와 연관될 수 있다. 예를 들어, LBA0 내지 LBAx와 연관된 데이터는 암호화 키 0으로 암호화될 수 있고, LBAx+1 내지 LBA2y와 연관된 데이터는 암호화 키 1로 암호화될 수 있고, LBA2y+1 내지 LBA3z와 연관된 데이터는 암호화 키 2로 암호화될 수 있다. 하나 이상의 실시예에서, 메모리 시스템은 데이터를 암호화하는데 16개의 상이한 암호화 키를 사용할 수 있다.
메모리 디바이스에서, 물리적 페이지는 메모리 셀의 기능 그룹으로 또는 함께 기록 및/또는 판독되는 다수의 셀을 기록 및/또는 판독하는 유닛을 말할 수 있다. 짝수(even) 페이지 및 홀수(odd) 페이지는 별개의 기록 및/또는 판독 동작으로 기록 및/또는 판독될 수 있다. 다중 레벨 셀(multilevel cell: MLC)을 포함하는 실시예에서, 물리적 페이지는 예를 들어, 데이터의 상부 페이지 및 하부 페이지로 논리적으로 분할될 수 있다. 예를 들어, 하나의 메모리 셀은 하나 이상의 비트가 데이터의 상부 페이지에 기여하고 하나 이상의 비트가 데이터의 하부 페이지에 기여할 수 있다. 따라서, 데이터의 상부 페이지 및 하부 페이지는 논리적 상부 페이지와 논리적 하부 페이지가 동일한 물리적 페이지의 두 부분이기 때문에 하나의 기록 및/또는 판독 동작의 일부로서 기록 및/또는 판독될 수 있다.
도 1의 실시예는 본 발명의 실시예를 불명확하게 하지 않게 하기 위해 도시되지 않은 추가적인 회로를 포함할 수 있다. 예를 들어, 메모리 시스템(104)은 I/O 회로를 통해 I/O 연결부 상에 제공된 어드레스 신호를 래치하는 어드레스 회로를 포함할 수 있다. 어드레스 신호는 고체 상태 메모리 디바이스(110-1, ..., 110-N)에 액세스하기 위해 행 디코더와 열 디코더에 의해 수신되고 디코딩될 수 있다. 이 기술 분야에 통상의 지식을 가진 자라면 어드레스 입력 연결부의 개수는 고체 상태 메모리 디바이스(110-1, ..., 110-N)의 밀도와 아키텍처에 따라 좌우된다는 것을 이해할 수 있을 것이다.
일반적으로, 제어기(108)는 호스트 시스템(102)으로부터, 예를 들어, PCIe 버스로부터 수신된 명령 패킷을, 호스트-메모리 변환 회로를 위한 명령 인스트럭션으로 변환하고, 메모리 응답을, 요청 호스트로 전송하기 위한 호스트 시스템 명령으로 변환하는 일을 담당한다. 예를 들어, 호스트 인터페이스 회로는 PCIe 기반 트랜잭션 층 패킷으로부터 SATA 명령 패킷을 구성할 수 있다.
제어기(108)는 (예를 들어, 수신된 명령과 연관된) 논리적(예를 들어, 호스트) 어드레스를 물리적 메모리 어드레스로 변환하도록 구성될 수 있다. 예를 들어, 제어기(108) 내 FTL(112)은 키 범위 테이블로부터의 엔트리를 사용하여 호스트 섹터 판독 및 기록 명령을, 고체 상태 메모리 디바이스(110-1, ..., 110-N)의 특정 부분에 관한 명령으로 변환할 수 있다. 각 호스트 동작은 단일 또는 멀티-섹터 비휘발성 메모리 동작로 변환될 수 있다.
하나 이상의 실시예에서, 데이터는 한번에 한 페이지씩 메모리 디바이스에 기록될 수 있다. 메모리 디바이스에서 각 페이지는 다수의 물리적 섹터(physical sector)를 구비할 수 있고, 각 물리적 섹터는 LBA와 연관될 수 있다. 일례로서, 물리적 페이지는 데이터의 8개의 물리적 섹터를 구비할 수 있다. 그러나, 실시예는 물리적 페이지마다 특정 개수의 물리적 섹터로 제한되지 않는다. 한번에 한 페이지씩 데이터를 기록할 때, 페이지 데이터는 예를 들어, 8개의 LBA와 연관될 수 있다. 일부 실시예에서, 제1 개수의 LBA, 예를 들어, 3개의 LBA는 제1 암호화 키와 연관될 수 있고, 제2 개수의 LBA, 예를 들어, 5개의 LBA는 제2 암호화 키와 연관될 수 있다. 한 페이지용의 데이터가 2개의 상이한 암호화 키와 연관된 LBA와 연관될 때, 데이터는 대신에 2개의 상이한 페이지에 기록될 수 있다. 제1 개수의 LBA와 연관된 데이터는 제1 암호화 키와 연관된 제1 페이지에 기록될 수 있고, 제2 개수의 LBA와 연관된 데이터는 제2 암호화 키와 연관된 제2 페이지에 기록될 수 있다. 이것은 다수의 물리적 위치, 예를 들어, 제1 페이지에 할당된 데이터를 포함하는 페이지의 섹터에 데이터가 없게 할 수 있다. 예를 들어, 제1 페이지의 나머지 물리적 섹터는 기록 공정에서 스킵된다. 본 발명의 하나 이상의 실시예에서, 물리적 섹터를 스킵하는 것은 키 범위 테이블에 오프셋에 대응할 수 있다. FTL은 키 범위 테이블의 정보에 기초하여 LBA를 이동된 물리적 위치로 변환할 수 있다.
제어기(108)는 키 범위 테이블(114)을 사용하여 LBA와 연관된 데이터의 물리적 위치를 변환할 수 있다. 키 범위 테이블(114)은 다수의 엔트리를 포함할 수 있고, 이들 엔트리는 각각 각 엔트리와 연관된 범위(들)에 앞서는 LBA 범위와 연관된 데이터의 페이지(들)을 기록할 때 스킵된 물리적 위치, 예를 들어, 물리적 섹터의 개수에 대응하는 각 오프셋을 나타낸다. 키 범위 테이블은 각 암호화 키에 대해 하나의 엔트리, 암호화 키와 연관된 LBA의 범위, 및 앞서는 범위에서 마지막 LBA에 할당된 데이터를 기록한 후에 스킵된 물리적 섹터의 개수를 나타내는 오프셋을 포함할 수 있다. 다수의 LBA와 연관되고 암호화 키와 연관된 데이터를 기록할 때, 이전의 범위의 LBA로부터 키 범위 테이블의 오프셋과 암호화 키는 누적되고, 예를 들어, 서로 합산되어, 다수의 LBA와 연관된 데이터의 물리적 위치를 변환하는데 사용될 수 있다. LBA와 연관된 데이터의 물리적 위치를 변환할 때 사용되는 오프셋은 키 범위 테이블에 위치될 수 있다. 이 오프셋은 LBA와 연관된 암호화 키에 기초하여 키 범위 테이블에 위치될 수 있다.
도 2는 본 발명의 하나 이상의 실시예에 따른 비휘발성 메모리의 키 영역의 블록도를 도시한다. 도 2에서, 제1 개수의 메모리 셀은 제1 키 영역(242)에 의해 지시된 제1 암호화 키와 연관될 수 있고, 제2 개수의 메모리 셀은 제2 키 영역(244)에 의해 지시된 제2 암호화 키와 연관될 수 있다. 메모리 셀의 개수는 도 2에서 행으로 예시될 수 있는 페이지로 배열될 수 있다. 예를 들어, 도 2에서, 페이지(246)는 물리적 섹터의 행을 포함하고, 각 물리적 섹터는 다수의 메모리 셀을 포함할 수 있다. 페이지는 다수의 물리적 섹터를 포함할 수 있고, 예를 들어, 도 2에서 페이지(246)는 8개의 물리적 섹터를 포함한다.
데이터가 메모리 내 페이지에 기록될 때, 데이터는 데이터의 암호화/복호화를 위한 키 영역의 암호화 키와 연관될 수 있고, 데이터는 다수의 LBA와 연관될 수 있다. 예를 들어, 명령(들)은 키 영역(242)의 제1 암호화 키와 연관된 다수의 LBA 및 키 영역(244)의 제2 암호화 키와 연관된 다수의 LBA와 연관된 데이터를 기록하도록 수신될 수 있다. 그리하여, 하나의 암호화 키와 연관된 다수의 LBA로부터 다른 암호화 키와 연관된 다수의 LBA로의 전이가 물리적 페이지의 중간에서 일어날 수 있다. 예를 들어, 키 영역(242)의 제1 암호화 키와 연관된 마지막 2개의 LBA와 연관된 데이터는 페이지(254)의 제1 2개의 물리적 섹터에 기록되고 물리적 섹터(248)에서 종료할 수 있다. 키 영역(244)의 제2 암호화 키와 연관된 LBA와 연관된 데이터는 물리적 섹터(250), 예를 들어, 새로운 물리적 페이지에서 시작하는 페이지(256)의 제1 6개의 물리적 섹터에 기록될 수 있다. 제1 암호화 키와 연관된 LBA와 연관된 데이터는 제2 암호화 키와 연관된 LBA와는 상이한 페이지에 기록된다. 예를 들어, FTL의 상태는 상이한 암호화 키와 연관된 LBA와 연관된 데이터가 동일한 페이지에 기록되지 않게 할 수 있다. 제1 암호화 키와 연관된 LBA와 연관된 데이터와, 상이한 물리적 페이지에 기록된 제2 암호화 키와 연관된 LBA와 연관된 데이터를 통해, 섹터(248)가 상주하는 페이지의 마지막 6개의 물리적 섹터가 스킵되고, 예를 들어, 데이터는 이들 섹터에 기록되지 않는다. 이 스킵된 물리적 섹터는 키 영역(242)의 암호화 키와 연관된 LBA의 범위와 연관된 암호화 키를 언급(noting)함과 함께 키 범위 테이블 엔트리에 언급(noted)된다. 하나 이상의 실시예에서, 임의의 개수의 물리적 섹터는 2개의 이상의 상이한 암호화 키와 연관된 데이터의 페이지를 기록할 때 스킵될 수 있다.
도 3은 본 발명의 하나 이상의 실시예에 따른 키 범위 테이블을 도시한다. 도 3에서 키 범위 테이블은 다수의 열을 포함한다. 제1 열(360)은 데이터를 암호화하는데 사용된 암호화 키를 지시한다. 제2 열(370)은 특정 암호화 키와 연관된 LBA 범위를 지시한다. 제3 열(380)은 암호화 키 및 LBA 범위와 연관된 LBA 오프셋을 지시한다.
도 3에 도시된 예에서, 열(360)은 다수의 상이한 암호화 키(362-1("a"), 362-2("b"), 362-3("c"), 362-4("d") 및 362-5("e"))를 포함한다. 각 암호화 키는 각 LBA 범위(372-1(LBA 범위 0-127), 372-2(LBA 범위 128-255), 372-3(LBA 범위 256-383), 372-4(LBA 범위 384-511) 및 372-5(LBA 범위 512-639))와 연관된다.
하나 이상의 실시예에서, 키 범위 테이블의 열(380)의 LBA 오프셋은 FTL, 예를 들어, 도 1에 도시된 FTL이 LBA를 메모리 시스템, 예를 들어, 도 1의 시스템(104) 내 물리적 위치로 변환할 때 스킵할 물리적 섹터의 개수를 나타낼 수 있다. 각 암호화 키(362-1, 362-2, 362-3, 362-4 및 362-5) 및 연관된 LBA 범위(372-1, 372-2, 372-3, 372-4 및 372-5)는 연관된 LBA 오프셋을 구비할 수 있다. LBA 오프셋은 하나의 암호화 키와 연관된 데이터를 기록하는 것으로부터 다른, 예를 들어, 상이한, 암호화 키와 연관된 데이터를 기록하는 것으로 전이할 때 물리적 페이지 내 다수의 물리적 섹터를 스킵하는 것에 기초할 수 있다. 하나 이상의 실시예에서, 특정 LBA 범위에 대응하는 LBA 오프셋은 LBA 값이 증가하면서 누적될 수 있다. 예를 들어, 암호화 키와 연관된 LBA에 사용되는 오프셋은 이전의 암호화 키 각각 사이를 전이하는 동안 데이터를 기록하는 것과 연관된 각 LBA 오프셋의 합계이다.
도 3에 도시된 예에서, LBA 범위(372-1)와 연관된 암호화 키(362-1)는 0의 LBA 오프셋을 구비한다. 이것은 암호화 키(362-1)가 키 테이블 내 제1 암호화 키이어서 암호화 키(362-1)와 연관된 LBA와 연관된 이전의 누적된 LBA 오프셋이 존재하지 않기 때문이다. 그리하여, 암호화 키(362-1)와 연관된, 누적된, 예를 들어, 총, LBA 오프셋(382-1)은 0이다. 이 예에서, LBA 범위(372-2)와 연관된 암호화 키(362-2)는 7의 개별 LBA 오프셋을 구비한다. 암호화 키(362-2)에 대해 7의 개별 LBA 오프셋은 7개의 물리적 섹터가 암호화 키(362-1)와 연관된 데이터의 마지막 페이지에서 스킵된 것을 나타낸다. 암호화 키(362-2)에 대해 누적된 LBA 오프셋(382-2)은 7이고, 예를 들어 키 범위 테이블의 이전의 암호화 키와 연관된 데이터의 마지막 페이지에서 스킵된 물리적 섹터의 합계이다.
이 예에서, LBA 범위(372-3)와 연관된 암호화 키(362-3)는 7의 개별 LBA 오프셋을 구비한다. 암호화 키(362-3)에서 7의 개별 LBA 오프셋은 암호화 키(362-2)와 연관된 데이터의 마지막 페이지에서 7개의 물리적 섹터가 스킵된 것을 나타낸다. 암호화 키(362-3)에서 누적된 LBA 오프셋(382-3)은 예를 들어 키 범위 테이블에서 이전의 암호화 키와 연관된 데이터의 마지막 페이지에서 스킵된 물리적 섹터의 합인 14이다.
이 예에서, LBA 범위(372-4)와 연관된 암호화 키(362-4)는 1의 개별 LBA 오프셋을 구비한다. 암호화 키(362-4)에서 1의 개별 LBA 오프셋은 암호화 키(362-3)와 연관된 데이터의 마지막 페이지에서 1개의 물리적 섹터가 스킵된 것을 나타낸다. 암호화 키(362-4)에서 누적된 LBA 오프셋(382-4)은 예를 들어 키 범위 테이블에서 이전의 암호화 키와 연관된 데이터의 마지막 페이지에서 스킵된 물리적 섹터의 합인 15이다.
이 예에서, LBA 범위(372-5)와 연관된 암호화 키(362-5)는 6의 개별 LBA 오프셋을 구비한다. 암호화 키(362-5)에서 6의 개별 LBA 오프셋은 암호화 키(362-4)와 연관된 데이터의 마지막 페이지에서 6개의 물리적 섹터가 스킵된 것을 나타낸다. 암호화 키(362-5)에서 누적된 LBA 오프셋(382-5)은 예를 들어 키 범위 테이블에서 이전의 암호화 키와 연관된 데이터의 마지막 페이지에서 스킵된 물리적 섹터의 합인 21이다.
결론
본 발명은 논리적 블록 어드레스 변환을 위한 방법을 포함한다. 하나의 이러한 방법은 LA의 특정 범위 내에 있는 LA와 연관된 명령을 수신하는 단계 및 상기 특정 범위와는 다른 LA의 범위와 연관된 데이터를 기록할 때 스킵된 물리적 위치의 개수에 대응하는 오프셋을 사용하여 상기 LA를 메모리 내 물리적 위치로 변환하는 단계를 포함한다.
특정 실시예들이 본 명세서에 도시되고 설명되었으나, 이 기술 분야에 통상의 지식을 가진 자라면 동일한 결과를 달성하도록 계산된 배열이 도시된 특정 실시예 대신에 사용될 수 있다는 것을 이해할 수 있을 것이다. 본 발명은 본 발명의 하나 이상의 실시예의 변형이나 변경을 커버하도록 의도된다. 상기 상세한 설명은 예시적인 방식으로 이루어진 것이지 발명을 제한하는 것으로 이루어진 것이 아닌 것으로 이해된다. 상기 실시예와 본 명세서에 구체적으로 설명되지 않은 다른 실시예의 조합은 상기 상세한 설명을 검토할 때 이 기술 분야에 통상의 지식을 가진 자에게는 명백할 것이다. 본 발명의 하나 이상의 실시예의 범위는 상기 구조 및 방법이 사용되는 다른 응용을 포함한다. 그리하여, 본 발명의 하나 이상의 실시예의 범위는 첨부된 청구범위와 이 청구범위에 주어진 것과 균등한 범위를 참조하여 결정되어야 한다.
상기 상세한 설명에서, 일부 특징은 본 명세서를 간결하게 하기 위하여 단일 실시예로 서로 그룹화되어 있다. 이러한 설명 방법은 본 발명의 개시된 실시예가 각 청구범위에 명시적으로 언급된 것보다 더 많은 특징을 사용하여야 하는 의도를 반영하는 것으로 해석되어서는 안 된다. 오히려, 이하 청구범위에서 나타나듯이, 본 발명의 주제는 단일 개시된 실시예의 모든 특징보다 더 적다. 따라서, 이하 청구범위는 본 상세한 설명에 포함되며, 각 청구범위는 별도의 실시예로서 각자 존재한다.

Claims (27)

  1. 논리적 어드레스(logical address: LA) 변환을 위한 방법으로서,
    특정 범위의 LA들 내에 있는 LA와 연관된 명령을 수신하는 단계; 및
    오프셋을 사용하여 상기 LA를 메모리 내 물리적 위치(physical location)로 변환하는 단계를 포함하되,
    상기 오프셋은 기록 동작 동안 스킵된 다수의 물리적 위치에 대응하는 것이고,
    상기 기록 동작은 상기 특정 범위의 LA들과 상기 특정 범위와는 다른 범위의 LA들과 연관된 데이터를 포함하고,
    상기 기록 동작의 수행은 다수의 물리적 위치를 스킵하여 상기 특정 범위의 LA들과 연관된 데이터 및 상기 특정 범위와는 다른 범위의 LA들과 연관된 데이터가 상이한 페이지에 있도록 하는 것을 포함하는 논리적 어드레스(LA) 변환방법.
  2. 제1항에 있어서, 제1 암호화 키는 상기 특정 범위와는 다른 범위의 LA들과 연관된 데이터에 적용되고, 제2 암호화 키는 상기 특정 범위와 연관된 데이터에 적용된 것인 논리적 어드레스(LA) 변환방법.
  3. 제1항에 있어서, 상기 방법은 키 범위 테이블에 상기 오프셋을 위치시키는 단계를 포함하는 것인 논리적 어드레스(LA) 변환방법.
  4. 제1항에 있어서, 상기 변환하는 단계는 메모리에 상기 물리적 위치를 위치시키기 전에 상기 오프셋을 상기 LA에 추가하는 단계를 포함하는 것인 논리적 어드레스(LA) 변환방법.
  5. 제4항에 있어서, 상기 LA를 상기 물리적 위치로 변환하는 단계는 상기 오프셋에 의해 지시된 다수의 물리적 섹터를 스킵하는 단계를 포함하는 것인 논리적 어드레스(LA) 변환방법.
  6. 제5항에 있어서, 상기 오프셋에 의해 지시된 다수의 물리적 위치를 스킵하는 단계는 상기 특정 범위와는 다른 범위의 LA들과 연관된 데이터를 포함하는 기록 동작 동안 스킵된 물리적 위치의 누적된 총계를 스킵하는 단계를 포함하고, 상기 범위의 LA들은 상기 특정 범위에 앞서는 것인 논리적 어드레스(LA) 변환방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 변환하는 단계는 물리적 섹터(physical sector)로 변환하는 단계를 포함하는 것인 논리적 어드레스(LA) 변환방법.
  8. 제1항 내지 제6항 중 어느 한 항에 있어서, 변환하는 단계는 상기 특정 범위에 앞서는 LA들의 범위와 연관된 데이터를 포함하는 기록 동작 동안 스킵된 다수의 물리적 위치에 대응하는 오프셋을 사용하여 상기 LA를 물리적 위치로 변환하는 단계를 포함하는 것인 논리적 어드레스(LA) 변환방법.
  9. 제8항에 있어서, 상이한 암호화 키가 상기 범위 각각의 데이터에 적용되는 논리적 어드레스(LA) 변환방법.
  10. 논리적 어드레스(LA) 변환을 위한 방법으로서,
    제1 그룹의 LA들 내 수신된 LA와 연관된 데이터에 제1 오프셋을 적용하는 단계;
    제2 그룹의 LA들 내 수신된 LA와 연관된 데이터에 제2 오프셋을 적용하는 단계; 및
    메모리 내 물리적 위치에 적용된 상기 제2 오프셋을 구비하는, 상기 제2 그룹 내 상기 수신된 LA를 변환하는 단계를 포함하되,
    상기 제1 오프셋은 상기 제1 그룹의 LA들에 앞서는 LA들의 그룹에 연관된 데이터를 기록할 때 스킵된 다수의 물리적 위치에 대응하고,
    상기 제2 오프셋은 상기 제1 오프셋에 추가적인 오프셋을 추가하는 것에 의해 결정되고 상기 추가적인 오프셋은 상기 제1 그룹의 LA들 및 상기 제2 그룹의 LA들에 연관된 데이터를 기록할 때 스킵된 다수의 물리적 위치에 대응되는 것인 논리적 어드레스(LA) 변환방법.
  11. 제10항에 있어서, 제1 암호화 키는 상기 제1 그룹의 LA들과 연관된 데이터에 적용되고, 제2 암호화 키는 상기 제2 그룹의 LA들과 연관된 데이터에 적용되는 논리적 어드레스(LA) 변환방법.
  12. 제10항에 있어서, 키 범위 테이블에 상기 제1 오프셋을 위치시키는 단계를 더 포함하는 논리적 어드레스(LA) 변환방법.
  13. 제10항에 있어서, 상기 제1 오프셋은 상기 제1 그룹의 LA들에 앞서는 그룹의 LA들 중 마지막 LA와 연관된 데이터의 물리적 페이지에서 스킵된 다수의 물리적 섹터에 적어도 부분적으로 기초하는 것인 논리적 어드레스(LA) 변환방법.
  14. 제10항에 있어서, 상기 제2 오프셋은 상기 제1 그룹의 LA들 중 마지막 LA와 연관된 데이터의 물리적 페이지에서 스킵된 다수의 물리적 섹터에 적어도 부분적으로 기초하는 것인 논리적 어드레스(LA) 변환방법.
  15. 제14항에 있어서, 상기 제2 오프셋은 상기 제1 그룹의 LA들 중 마지막 LA와 연관된 데이터의 물리적 페이지에서 스킵된 다수의 물리적 섹터와 상기 제1 오프셋의 합계를 포함하는 것인 논리적 어드레스(LA) 변환방법.
  16. 제15항에 있어서, 키 범위 테이블에 상기 제2 오프셋을 위치시키는 단계를 더 포함하는 논리적 어드레스(LA) 변환방법.
  17. 제10항 내지 제16항 중 어느 한 항에 있어서, 호스트로부터 상기 제2 그룹 내 상기 LA를 수신하는 단계를 포함하며, 상기 제2 오프셋은 제어기의 변환층을 통해 상기 수신된 LA를 변환하기 전에 상기 제2 그룹 내 상기 수신된 LA에 적용되는 것인 논리적 어드레스(LA) 변환방법.
  18. 메모리 시스템을 동작시키는 방법으로서,
    제1 개수의 물리적 섹터에 데이터를 기록하는 단계로서, 제1 그룹의 논리적 어드레스(LA)들과 연관된 데이터가 상기 제1 개수의 물리적 섹터에 기록되고, 상기 제1 개수의 물리적 섹터 중 하나 이상의 물리적 섹터가 스킵되어 제2 그룹의 LA들과 연관된 데이터가 제2 개수의 물리적 섹터에 기록되고, 제1 암호화 키는 상기 제1 그룹의 LA들에 연관된 데이터에 적용되고, 제2 암호화 키는 상기 제2 그룹의 LA들과 연관된 데이터에 적용되는 것인, 상기 데이터를 기록하는 단계; 및
    상기 제1 및 제2 그룹의 LA와 연관된 데이터를 기록할 때 스킵된 상기 제1 개수의 물리적 섹터의 양을 나타내는 키 테이블 엔트리를 키 범위 테이블에 입력하는 단계를 포함하되,
    상기 제2 암호화 키와 연관된 LA는 상기 키 테이블 엔트리를 사용하여 물리적 위치로 변환될 수 있는 것인, 메모리 시스템의 동작방법.
  19. 제18항에 있어서, 데이터를 기록하는 단계는 상기 제1 그룹의 LA들과 연관된 데이터를 제1 페이지에 기록하는 단계 및 상기 제2 그룹의 LA들과 연관된 데이터를 제2 페이지에 기록하는 단계를 포함하는 것인, 메모리 시스템의 동작방법.
  20. 제18항에 있어서, 상기 키 범위 테이블 엔트리를 사용하는 것은 상기 제1 그룹의 LA들과 연관된 데이터를 기록할 때 스킵된 상기 제1 개수의 물리적 섹터만큼 상기 제2 그룹의 LA들과 연관된 데이터의 물리적 위치를 오프셋시키는 것을 포함하는 것인, 메모리 시스템의 동작방법.
  21. 제18항 내지 제20항 중 어느 한 항에 있어서, 상기 키 범위 테이블 엔트리를 사용하는 것은 제1 그룹의 LA들과 연관된 데이터를 기록할 때 스킵된 상기 제1 개수의 물리적 섹터 및 이전 그룹의 LA들과 연관된 데이터를 기록할 때 스킵된 물리적 섹터의 개수만큼 상기 제2 그룹의 LA들과 연관된 데이터의 물리적 위치를 오프셋하는 것을 포함하는 것인, 메모리 시스템의 동작방법.
  22. 메모리 시스템으로서,
    비휘발성 메모리; 및
    상기 비휘발성 메모리에 연결된 제어기를 포함하되,
    상기 제어기는,
    암호화 키를 특정 그룹의 논리적 어드레스(LA)들에 적용시키고,
    특정 그룹의 LA들 내에 있는 LA, 및 상기 특정 그룹의 LA들과 연관된 데이터와 상기 특정 그룹과는 다른 다수의 그룹의 LA들에 연관된 데이터를 포함하는 기록 동작 동안 스킵된 다수의 물리적 위치에 기초하여 명령과 연관된 LA를 변환하도록 구성된 것인 메모리 시스템.
  23. 제22항에 있어서, 다수의 물리적 섹터가 상기 특정 그룹의 LA들 및 상기 특정 그룹과는 다른 상기 다수의 그룹의 LA들과 연관된 데이터를 기록할 때 스킵되는 것인 메모리 시스템.
  24. 제22항 또는 제23항에 있어서, 상기 제어기는 각 엔트리와 연관된 그룹의 LA들과는 다른 LA들과 연관된 데이터를 기록할 때 스킵된 다수의 물리적 섹터를 나타내는 오프셋을 각각 구비하는 다수의 엔트리를 포함하는 키 범위 테이블을 더 포함하는 것인 메모리 시스템.
  25. 제24항에 있어서, 상기 다수의 키 범위 테이블 엔트리의 각각과 연관된 상기 오프셋은 키 범위 테이블 엔트리에 앞서는 각각으로부터 오프셋을 누적시키는 것에 의해 결정되는 것인 메모리 시스템.
  26. 메모리 시스템으로서,
    비휘발성 메모리; 및
    상기 비휘발성 메모리에 연결된 제어기를 포함하되,
    상기 제어기는,
    다수의 암호화 키 각각이 다수의 LBA 오프셋 각각과 연관된 데이터에 적용되고, 상기 다수의 LBA 오프셋 각각이 상기 데이터에 적용된 상기 다수의 암호화 키 중 하나를 가지는 데이터의 마지막 페이지 상에 기록되지 않은 다수의 물리적 섹터에 대응하는 것인, 다수의 LBA 오프셋을 결정하고;
    암호화 키와 연관된 LBA를 수신하고;
    상기 데이터에 적용될 상기 다수의 암호화 키 중 하나를 가지는 데이터에 대응되는 상기 LBA 오프셋을 사용하여 상기 수신된 LBA를 물리적 위치로 변환하도록 구성된 것인 메모리 시스템.
  27. 제26항에 있어서, 상기 다수의 LBA 오프셋은 키 범위 테이블 내에 있고 상기 다수의 LBA 오프셋 각각은 상기 테이블에서 각각의 이전의 오프셋과 연관된 데이터에 적용되는 상기 다수의 암호화 키를 가지는 데이터의 마지막 페이지 상에 기록되지 않은 물리적 섹터의 개수의 합계를 포함하는 것인 메모리 시스템.
KR1020137023450A 2011-03-06 2012-03-01 논리적 어드레스 변환 KR101554084B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/041,402 US8732431B2 (en) 2011-03-06 2011-03-06 Logical address translation
US13/041,402 2011-03-06
PCT/US2012/027265 WO2012121968A2 (en) 2011-03-06 2012-03-01 Logical address translation

Publications (2)

Publication Number Publication Date
KR20130120541A KR20130120541A (ko) 2013-11-04
KR101554084B1 true KR101554084B1 (ko) 2015-09-17

Family

ID=46754039

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137023450A KR101554084B1 (ko) 2011-03-06 2012-03-01 논리적 어드레스 변환

Country Status (7)

Country Link
US (2) US8732431B2 (ko)
EP (1) EP2684132B1 (ko)
JP (2) JP5719041B2 (ko)
KR (1) KR101554084B1 (ko)
CN (1) CN103502958B (ko)
TW (1) TWI459200B (ko)
WO (1) WO2012121968A2 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8862902B2 (en) * 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory
US9086999B2 (en) * 2011-07-05 2015-07-21 International Business Machines Corporation Data encryption management
KR101818445B1 (ko) * 2011-07-08 2018-01-16 삼성전자주식회사 메모리 컨트롤러, 이의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 전자 장치들
US9443085B2 (en) 2011-07-19 2016-09-13 Elwha Llc Intrusion detection using taint accumulation
US9460290B2 (en) 2011-07-19 2016-10-04 Elwha Llc Conditional security response using taint vector monitoring
US9298918B2 (en) 2011-11-30 2016-03-29 Elwha Llc Taint injection and tracking
US9798873B2 (en) 2011-08-04 2017-10-24 Elwha Llc Processor operable to ensure code integrity
US9465657B2 (en) 2011-07-19 2016-10-11 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9575903B2 (en) * 2011-08-04 2017-02-21 Elwha Llc Security perimeter
US9471373B2 (en) 2011-09-24 2016-10-18 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9558034B2 (en) 2011-07-19 2017-01-31 Elwha Llc Entitlement vector for managing resource allocation
KR101979392B1 (ko) * 2012-05-17 2019-05-16 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US8898548B1 (en) 2012-08-24 2014-11-25 Western Digital Technologies, Inc. Methods, data storage devices and systems having variable size ECC page size
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US9507523B1 (en) 2012-10-12 2016-11-29 Western Digital Technologies, Inc. Methods, devices and systems for variable size logical page management in a solid state drive
US9489296B1 (en) 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
US9684593B1 (en) * 2012-11-30 2017-06-20 EMC IP Holding Company LLC Techniques using an encryption tier property with application hinting and I/O tagging
TWI479359B (zh) * 2013-08-01 2015-04-01 Phison Electronics Corp 指令執行方法、記憶體控制器與記憶體儲存裝置
US9354955B1 (en) 2014-03-19 2016-05-31 Western Digital Technologies, Inc. Partial garbage collection for fast error handling and optimized garbage collection for the invisible band
US9298647B2 (en) * 2014-08-25 2016-03-29 HGST Netherlands B.V. Method and apparatus to generate zero content over garbage data when encryption parameters are changed
CN104391805B (zh) * 2014-10-27 2017-12-05 浪潮集团有限公司 一种用于加密固态存储的数据结构
CN107430521B (zh) 2015-03-27 2022-02-18 英特尔公司 高效地址转换
JP2017033501A (ja) 2015-08-06 2017-02-09 株式会社東芝 記憶装置および制御方法
US20170093823A1 (en) * 2015-09-25 2017-03-30 Vinodh Gopal Encrypting Observable Address Information
US10169251B1 (en) * 2015-12-10 2019-01-01 Massachusetts Institute Of Technology Limted execution of software on a processor
TWI595356B (zh) * 2016-08-19 2017-08-11 大心電子(英屬維京群島)股份有限公司 資料傳輸方法及使用所述方法的儲存控制器與清單管理電路
KR102458312B1 (ko) 2017-06-09 2022-10-24 삼성전자주식회사 스토리지 장치 및 이의 동작 방법
US10534718B2 (en) * 2017-07-31 2020-01-14 Micron Technology, Inc. Variable-size table for address translation
US11436154B2 (en) 2017-12-01 2022-09-06 Micron Technology, Inc. Logical block mapping based on an offset
US10977182B2 (en) 2017-12-01 2021-04-13 Micron Technology, Inc. Logical block mapping based on an offset
US10831596B2 (en) 2018-01-22 2020-11-10 Micron Technology, Inc. Enhanced error correcting code capability using variable logical to physical associations of a data block
CN109951275B (zh) * 2019-02-22 2021-08-17 记忆科技(深圳)有限公司 密钥生成方法、装置、计算机设备及存储介质
KR20210142974A (ko) * 2020-05-19 2021-11-26 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001350665A (ja) * 2000-06-06 2001-12-21 Hitachi Ltd ブロックアラインメント機能付き半導体記憶装置
JP2007094900A (ja) * 2005-09-29 2007-04-12 Eastman Kodak Co アクセス装置
JP2008108039A (ja) * 2006-10-25 2008-05-08 Hitachi Ltd 暗号化機能を備えたストレージサブシステム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003162433A (ja) * 2001-11-27 2003-06-06 Fujitsu Ltd メモリシステム
US7039788B1 (en) * 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
CA2530524A1 (en) 2003-06-23 2004-12-29 Koninklijke Philips Electronics N.V. Device and method for recording information with remapping of logical addresses to physical addresses when defects occur
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
CN101506902A (zh) 2006-08-21 2009-08-12 Nxp股份有限公司 用于数据处理的电路结构和方法
US20080046641A1 (en) 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
KR100969758B1 (ko) 2007-01-22 2010-07-13 삼성전자주식회사 플래시 변환 레이어에서 데이터를 암호화하여 처리하기위한 방법 및 장치
JP2009258948A (ja) 2008-04-16 2009-11-05 Panasonic Corp メモリコントローラ、不揮発性記憶装置および演算処理システム
US8341430B2 (en) * 2008-10-03 2012-12-25 Microsoft Corporation External encryption and recovery management with hardware encrypted storage devices
US8412880B2 (en) * 2009-01-08 2013-04-02 Micron Technology, Inc. Memory system controller to manage wear leveling across a plurality of storage nodes
US8180995B2 (en) 2009-01-21 2012-05-15 Micron Technology, Inc. Logical address offset in response to detecting a memory formatting operation
US8176295B2 (en) * 2009-04-20 2012-05-08 Imation Corp. Logical-to-physical address translation for a removable data storage device
US8386747B2 (en) 2009-06-11 2013-02-26 Freescale Semiconductor, Inc. Processor and method for dynamic and selective alteration of address translation
US9015401B2 (en) * 2011-04-28 2015-04-21 Seagate Technology Llc Selective purge of confidential data from a non-volatile memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001350665A (ja) * 2000-06-06 2001-12-21 Hitachi Ltd ブロックアラインメント機能付き半導体記憶装置
JP2007094900A (ja) * 2005-09-29 2007-04-12 Eastman Kodak Co アクセス装置
JP2008108039A (ja) * 2006-10-25 2008-05-08 Hitachi Ltd 暗号化機能を備えたストレージサブシステム

Also Published As

Publication number Publication date
JP2014507738A (ja) 2014-03-27
CN103502958A (zh) 2014-01-08
WO2012121968A3 (en) 2012-11-22
US9164701B2 (en) 2015-10-20
US20120226887A1 (en) 2012-09-06
JP5719041B2 (ja) 2015-05-13
JP6181689B2 (ja) 2017-08-16
WO2012121968A2 (en) 2012-09-13
EP2684132A2 (en) 2014-01-15
TWI459200B (zh) 2014-11-01
US8732431B2 (en) 2014-05-20
KR20130120541A (ko) 2013-11-04
TW201250470A (en) 2012-12-16
CN103502958B (zh) 2016-08-17
EP2684132A4 (en) 2014-12-10
JP2015164044A (ja) 2015-09-10
EP2684132B1 (en) 2019-04-24
US20140317374A1 (en) 2014-10-23

Similar Documents

Publication Publication Date Title
KR101554084B1 (ko) 논리적 어드레스 변환
US9472244B2 (en) Apparatus power control
US8984253B2 (en) Transaction log recovery
KR101447786B1 (ko) 파워 인터럽트 관리
CN110275673B (zh) 存储装置及其操作方法
US20210232508A1 (en) Last written page searching
US20170053714A1 (en) Read voltage offset
US9940193B2 (en) Chunk definition for partial-page read
KR20130084846A (ko) 플래시 메모리를 기반으로 하는 저장 장치, 그것을 포함한 사용자 장치, 그리고 그것의 데이터 읽기 방법
US10585606B2 (en) Memory device configuration commands
US11243715B2 (en) Memory controller and operating method thereof
US10466938B2 (en) Non-volatile memory system using a plurality of mapping units and operating method thereof
US11113205B2 (en) Die addressing using a reduced size translation table entry
US9977622B1 (en) Buffer operations in memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 4