KR102114256B1 - 플래시 메모리 디바이스 액세스 방법 및 장치 - Google Patents

플래시 메모리 디바이스 액세스 방법 및 장치 Download PDF

Info

Publication number
KR102114256B1
KR102114256B1 KR1020187023110A KR20187023110A KR102114256B1 KR 102114256 B1 KR102114256 B1 KR 102114256B1 KR 1020187023110 A KR1020187023110 A KR 1020187023110A KR 20187023110 A KR20187023110 A KR 20187023110A KR 102114256 B1 KR102114256 B1 KR 102114256B1
Authority
KR
South Korea
Prior art keywords
storage area
write
access
speed
read
Prior art date
Application number
KR1020187023110A
Other languages
English (en)
Other versions
KR20180103106A (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 KR20180103106A publication Critical patent/KR20180103106A/ko
Application granted granted Critical
Publication of KR102114256B1 publication Critical patent/KR102114256B1/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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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
    • 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
    • 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/0614Improving the reliability of storage 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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • 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
    • G06F2212/1024Latency reduction
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • 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

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)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 실시예들은, 플래시 메모리 디바이스의 액세스 효율을 최적화하도록, 플래시 메모리 디바이스에 액세스하기 위한 방법 및 장치를 제공한다. 이 방법은 : 스토리지 제어기에 의해, 액세스 요청을 수신하는 단계; 스토리지 제어기에 의해, 액세스대상 스토리지 영역의 이력 액세스 정보 ―상기 이력 액세스 정보는 액세스대상 스토리지 영역의 이력 액세스 유형을 포함하고, 플래시 메모리 디바이스의 이력 액세스 유형은 기입 동작 및 판독 동작을 포함함― 를 획득하는 단계; 및 스토리지 제어기에 의해, 이력 액세스 정보 및 액세스 요청의 액세스 유형에 따라, 액세스대상 스토리지 영역에 관한 액세스 동작을 수행하는 단계를 포함한다. 데이터는, 3가지 유형 : 판독 전용 데이터, 기입 전용 데이터, 및 크로스 액세스 데이터로 분류되고, 3가지 유형의 데이터는, 이력 액세스 정보 및 현재 액세스 요청의 액세스 유형을 이용하여 서로 구별됨으로써, 판독 전용 데이터의 판독 속도를 증가시키고, 기입 전용 데이터의 기입 속도를 증가시키며, 플래시 메모리 디바이스의 전반적인 액세스 효율을 향상시킨다.

Description

플래시 메모리 디바이스 액세스 방법 및 장치
본 발명의 실시예들은 컴퓨터 분야에 관한 것으로, 특히, 플래시 메모리 디바이스를 액세스하기 위한 방법 및 장치에 관한 것이다.
플래시 메모리에 기초한 솔리드 스테이트 드라이브(Solid State Drive, SSD)는, 훌륭한 랜덤 액세스 성능, 낮은 밀도 및 낮은 전력 소비 등의 이점 때문에, 종래의 자기 디스크를 점진적으로 대체하여, 중요한 저장 매체가 되었다. 최근, 플래시 메모리 기술이 급속하게 발전하고, 저장 밀도는 단일 비트 플래시 셀로부터 최근의 다중 비트 플래시 셀까지, 예를 들어, 6 비트까지 개발되었으며, 제조 기술은 65 나노미터로부터 10 나노미터까지 발전했다. 이러한 발전에 따라, 플래시 메모리의 저장 밀도는 급격히 증가하고, 플래시 메모리의 신뢰성은 크게 감소한다. 따라서, 데이터를 정확하게 인코딩 및 디코딩하기 위해서는 더 강한 에러 정정 능력을 갖춘 에러 정정 코드가 필요하다.
플래시 메모리의 신뢰성 문제를 해결하기 위해, 현재 널리 이용되고 있는 솔루션에서는 저밀도 패리티 체크 코드(low density parity check code, LDPC) 에러 정정 메커니즘이 이용되고 있다. LDPC 디코딩은 신뢰도 확산(belief propagation) 알고리즘을 이용함으로써 구현되고, 경 판정 디코딩(hard decision decoding)과 연 판정 디코딩(soft decision decoding)으로 분류된다. 경 판정 디코딩은 높은 효율을 가지며 판독 및 디코딩을 위해 짧은 시간을 필요로 하지만, 낮은 에러율을 갖는 데이터만을 디코딩할 수 있다. 연 판정 디코딩은 비교적 높은 에러율을 갖는 데이터의 정확한 디코딩을 구현할 수 있지만, 판독 및 디코딩에서 비교적 긴 레이턴시를 필요로 한다. LDPC 코드가 체크 코드로서 이용될 때, 판독 요청 시간과 에러율 사이에는 상관관계가 있으며, 에러율이 높은 데이터에 대한 판독 요청에 의해 필요한 시간은 비교적 길다.
데이터는 증분 단계 펄스 프로그래밍(Incremental Step Pulse Programming, ISPP) 방식으로 플래시 메모리에 기입된다. 플래시 셀이 미리결정된 전압에 도달할 수 있게 하기 위해, 프로그래밍 전압을 점진적으로 증가시키는 방식이 이용된다. 데이터를 기입하는데 이용되는 프로그래밍 단차 전압, 즉, 프로그래밍 전압의 단위 변화 크기는 데이터의 에러율을 크게 결정한다. 프로그래밍 단차 전압이 더 높을 때, 비교적 적은 양의 반복 후에 미리결정된 전압 값에 도달할 수 있다. 그러나, 프로그래밍 단차 전압이 높을수록, 프로그래밍 정확도는 낮아지고, 에러율은 더 높아진다. 따라서, 프로그래밍 속도가 높을수록 에러율이 더 높아지고; 프로그래밍 속도가 낮을수록, 에러율은 더 낮아진다는 것을 알 수 있다.
플래시 메모리에 저장하기 위해, 소정량의 전하가 플래시 메모리의 플래시 셀에 저장되어 데이터를 표현한다. 저장 시간이 길어짐에 따라, 플래시 셀의 전하가 유출되어, 전기가 누출된다. 저장 시간이 더 길어질 때, 많은 양의 전기가 누출되어, 에러율이 높아진다. 종래 기술에서, 플래시 메모리에 데이터를 저장하는 시간에 따라, 데이터에 관한 기입 동작이 조절될 수 있다. 데이터가 장시간 저장될 필요가 있다면, 기입 동작은 저속 기입 형태로 수행된다. 데이터가 저속으로 기입될 때, 에러율이 낮아서, 데이터가 정확하게 판독되도록 보장한다. 데이터가 짧은 시간 저장될 필요가 있다면, 저장 시간 내에 누출로 인해 야기되는 데이터의 에러율이 비교적 낮고, 기입 동작은 고속 기입의 형태로 수행될 수 있다. 종래 기술에서, 판독 동작이 수행될 때, 경 판정 디코딩이 먼저 이용되고, 경 판정 디코딩이 실패하면, 연 판정 디코딩이 이용된다.
종래 기술에서, 플래시 메모리에 관한 판독 및 기입 동작이 유연하고 효과적으로 조정될 수 없으며, 이 문제를 해결하기 위한 새로운 기술이 개발될 필요가 있다.
이에 비추어, 본 발명은 플래시 메모리 디바이스에 액세스하기 위한 방법 및 장치를 개시한다. 플래시 메모리 디바이스에 관한 판독 및 기입 동작은 데이터의 액세스 특성에 따라 조절되며, 플래시 메모리 디바이스의 전반적인 액세스 성능이 향상된다.
제1 양태에 따르면, 본 발명은 플래시 메모리 디바이스를 액세스하기 위한 방법을 제공한다. 플래시 메모리 디바이스에의 액세스에 대한 액세스 유형은 기입 동작 및 판독 동작을 포함한다. 이 방법은 : 스토리지 제어기에 의해, 액세스 요청 ―액세스 요청은 액세스대상 스토리지 영역을 나타내며, 예를 들어, 액세스 요청은 액세스대상 스토리지 영역의 주소 정보를 포함함― 을 수신하는 단계; 스토리지 제어기에 의해, 액세스대상 스토리지 영역의 이력 액세스 정보 ―이력 액세스 정보는 액세스대상 스토리지 영역의 이력 액세스 유형을 포함함― 를 획득하는 단계; 스토리지 제어기에 의해, 이력 액세스 정보 및 현재 액세스 요청의 액세스 유형에 따라 액세스대상 스토리지 영역에 관한 액세스 동작을 수행하는 단계를 포함한다.
에러율에 따라 플래시 메모리에서의 데이터의 판독 속도와 기입 속도 사이에 관계가 설정될 수 있다. 플래시 메모리 스토리지 시스템에서, 데이터가 기입될 때 프로그래밍 속도가 높다면, 에러율이 높고, 데이터의 판독 속도는 낮다; 반대로, 데이터가 기입될 때 프로그래밍 속도가 낮다면, 에러율이 낮고, 데이터의 판독 속도가 높다. 판독 동작과 기입 동작 사이의 내부 관계에 따라 플래시 메모리 디바이스에 대한 조절이 수행될 수 있다.
제1 양태를 참조하여, 제1 양태의 가능한 제1 구현에서, 이력 액세스 유형이 기입 동작이고 현재 액세스 요청의 액세스 유형이 기입 동작이면, 스토리지 제어기에 의해, 액세스대상 스토리지 영역에 관한 액세스 동작을 수행하는 단계는 : 스토리지 제어기에 의해, 액세스대상 스토리지 영역에 관한 기입 동작을 고속 기입의 형태 ―기입 동작의 형태는 고속 기입 및 저속 기입을 포함하고, 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다― 로 수행하는 단계를 포함한다.
이력 액세스 유형 및 현재 액세스 요청의 액세스 유형이 양쪽 모두 기입 동작이면, 이것은 액세스대상 스토리지 영역에 저장된 데이터가 "기입 전용" 특성을 갖고, 그 액세스대상 스토리지 영역에 관한 기입 동작의 빈도는 그 액세스대상 스토리지 영역에 관한 판독 동작의 빈도보다 훨씬 더 크다는 것을 나타낸다. 따라서, 기입 동작이 액세스대상 스토리지 영역에 관하여 고속 기입의 형태로 수행됨으로써, 플래시 메모리 디바이스의 전반적인 액세스 속도를 향상시킬 수 있다.
제1 양태를 참조하여, 제1 양태의 제2 가능한 구현에서, 이력 액세스 유형이 판독 동작이고 현재 액세스 요청의 액세스 유형이 판독 동작이면, 스토리지 제어기에 의해, 액세스대상 스토리지 영역에 관한 액세스 동작을 수행하는 단계는 : 스토리지 제어기에 의해, 액세스대상 스토리지 영역에 관한 판독 동작을 고속 판독의 형태로 수행하고, 고속 판독을 이용한 디코딩이 실패하면, 액세스대상 스토리지 영역을 저속 판독의 형태로 다시 판독하고, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하는 단계 ―스토리지 제어기의 판독 동작의 형태는 고속 판독과 저속 판독을 포함하고, 고속 판독의 판독 속도는 저속 판독의 판독 속도보다 크다― 를 포함한다.
이력 액세스 유형 및 현재 액세스 요청의 액세스 유형이 양쪽 모두 판독 동작이면, 이것은 액세스대상 스토리지 영역에 저장된 데이터가 "판독 전용" 특성을 갖고, 그 액세스대상 스토리지 영역에 관한 판독 동작의 빈도는 기입 동작의 빈도보다 훨씬 더 크다는 것을 나타낸다. 따라서, 액세스대상 스토리지 영역에 관한 고속 판독 형태의 디코딩이 실패하면, 그것은 액세스대상 스토리지 영역에 저장된 데이터의 정밀도가 충분히 높지 않다는 것을 나타내고, 액세스대상 스토리지 영역에 저장된 데이터가 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입됨으로써, 데이터의 정밀도를 보장하여 액세스대상 스토리지 영역에 관한 후속 판독 동작을 가속하고, 플래시 메모리 디바이스의 전반적인 액세스 속도를 향상시킨다.
선택사항으로서, 또 다른 가능한 구현에서, 액세스대상 스토리지 영역의 데이터가 판독 전용 특성을 갖는다면, 판독 동작 동안 디코딩의 비트 에러율이 미리설정된 임계값을 초과할 때, 액세스대상 스토리지 영역에 저장된 데이터는 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입된다.
제1 양태를 참조하여, 제1 양태의 제3 가능한 구현에서, 이력 액세스 정보는 기입 속도 마크를 더 포함한다. 기입 속도 마크는 액세스대상 스토리지 영역 내의 데이터에 관한 기입 동작의 형태를 나타내는데 이용된다. 이력 액세스 유형 및 현재 액세스 요청의 액세스 유형 양쪽 모두가 판독 동작이고 기입 속도 마크가 저속 기입을 나타내지 않는다면, 이 방법은 : 스토리지 제어기에 의해, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하는 단계를 더 포함한다.
기입 속도 마크는 주로 액세스대상 스토리지 영역에 저장된 데이터가 저속 기입의 형태로 기입되어 있는지를 나타내는데 이용된다. 액세스대상 스토리지 영역에 저장된 데이터가 저속 기입의 형태로 기입되어 있지 않다면, 이것은 상당한 정도로 액세스대상 스토리지 영역에 저장된 데이터의 정확도가 충분히 높지 않다는 것을 나타낸다. 데이터가 "판독 전용" 특성을 갖는다면, 액세스대상 스토리지 영역에 저장된 데이터는 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입됨으로써, 데이터의 정확성을 보장하여 액세스대상 스토리지 영역에 관한 후속 판독 동작을 가속하고 플래시 메모리 디바이스의 전반적인 액세스 속도를 향상시킨다.
제1 양태 또는 제1 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제1 양태의 제4 가능한 구현에서, 스토리지 제어기에 의해, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하는 단계 전에, 이 방법은 : 스토리지 제어기에 의해, 주소 정보를 재기입 큐에 저장하는 단계; 및 스토리지 제어기에 의해, 재기입 큐에 저장된 주소 정보에 따라 액세스대상 스토리지 영역으로부터, 액세스대상 스토리지 영역에 저장된 데이터를 판독하는 단계를 더 포함한다.
재기입이 수행될 필요가 있는 액세스대상 스토리지 영역의 주소 정보는 재기입 큐에 기입되고, 플래시 메모리 디바이스가 유휴상태이거나 비교적 가벼운 부하를 가질 때 재기입 동작이 수행됨으로써, 재기입 동작이 일반 판독 액세스와 일반 기입 액세스를 차단하는 것을 피한다.
선택사항으로서, 판독되는 데이터는 현재의 판독 동작이 종료된 후에 액세스대상 스토리지 영역에 직접 재기입될 수 있음으로써, 후속 재판독에 의해 야기되는 소비를 피할 수 있다.
제1 양태 또는 제1 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제1 양태의 제5 가능한 구현에서, 기입 동작의 형태는 일반 기입을 더 포함하고, 일반 기입의 기입 속도는 저속 기입의 기입 속도보다 크며 고속 기입의 기입 속도보다 작다. 이력 액세스 유형이 기입 동작이 아니고 현재 액세스 요청의 액세스 유형이 기입 동작이라면, 스토리지 제어기에 의해, 액세스대상 스토리지 영역에 관한 액세스 동작을 수행하는 단계는 : 스토리지 제어기에 의해, 일반 기입의 형태로 액세스대상 스토리지 영역에 관한 기입 동작을 수행하는 단계를 포함한다.
이력 액세스 유형이 기입 동작이 아니고 현재 액세스 요청의 액세스 유형이 기입 동작이라면, 이것은 액세스대상 스토리지 영역에 저장된 데이터가 "교차 액세스" 특성을 가진다는 것을 나타내고, 액세스대상 스토리지 영역에 관한 판독 동작의 빈도와 기입 동작의 빈도가 실질적으로 동일하다는 것을 나타낸다. 이 경우, 기입 동작이 액세스대상 스토리지 영역에 관해 일반 기입의 형태로 수행됨으로써, 판독 동작 및 기입 동작의 속도를 밸런싱하고, 플래시 메모리 디바이스의 전반적인 액세스 속도를 향상시킬 수 있다.
제1 양태 또는 제1 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제1 양태의 제6 가능한 구현에서, 이력 액세스 정보는 기입 속도 마크를 더 포함한다. 현재 액세스 요청의 액세스 유형이 판독 동작이라면, 스토리지 제어기에 의해, 이력 액세스 정보 및 액세스 요청의 액세스 유형에 따라 액세스대상 스토리지 영역에 관한 액세스 동작을 수행하는 단계는 : 스토리지 제어기에 의해, 기입 속도 마크에 따라 액세스대상 스토리지 영역에 관한 판독 동작 ―고속 기입은 저속 판독에 대응하고, 저속 기입은 고속 판독에 대응함― 을 수행하는 단계를 포함한다.
액세스대상 스토리지 영역 내의 데이터에 관한 기입 동작의 형태에 따라 판독 동작의 대응하는 형태가 이용된다. 이것은 어느 정도 판독 동작의 시간을 단축시킬 수 있고, 플래시 메모리 디바이스의 전반적인 액세스 속도를 향상시킬 수 있다.
제1 양태 또는 제1 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제1 양태의 제7 가능한 구현에서, 이력 액세스 유형 및 현재 액세스 요청의 액세스 유형이 상이하다면, 이 방법은 : 스토리지 제어기에 의해, 현재 액세스 요청의 액세스 유형에 따라 이력 액세스 유형을 업데이트하는 단계를 더 포함한다.
또한, 이력 액세스 정보가 기입 속도 마크를 포함하고 현재 액세스 요청의 액세스 유형이 기입 동작이라면, 현재 기입 동작의 형태와 이력 액세스 정보 내의 기입 속도 마크에 의해 표시된 형태가 상이한 경우, 기입 속도 마크다 더 업데이트할 필요가 있다.
제1 양태 또는 제1 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제1 양태의 제8 가능한 구현에서, 스토리지 제어기에 의해, 액세스대상 스토리지 영역의 이력 액세스 정보를 획득하는 단계는 : 스토리지 제어기에 의해, 이력 액세스 레코드에 기록되어 있는 액세스대상 스토리지 영역의 이력 액세스 정보를 검색하는 단계를 포함한다. 예를 들어, 액세스대상 스토리지 영역에 대응하는 이력 액세스 정보 엔트리는 액세스대상 스토리지 영역의 주소 정보에 따라 검색될 수 있고, 여기서, 이력 액세스 정보 엔트리는 액세스대상 스토리지 영역의 이력 액세스 정보를 포함한다.
제1 양태 또는 제1 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제1 양태의 제9 가능한 구현에서, 스토리지 제어기에 의해, 액세스 요청을 수신하는 단계 전에, 이 방법은 : 스토리지 제어기에 의해, 제2 기입 액세스 요청 ―제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 첫회 기입 액세스 요청임― 을 수신하는 단계; 스토리지 제어기에 의해, 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 정보를 이력 액세스 레코드에 기록하는 단계를 더 포함한다. 구체적으로, 제2 기입 액세스 요청은 액세스대상 스토리지 영역의 주소 정보를 운반하고, 스토리지 제어기는 주소 정보에 따라 이력 액세스 레코드에서 주소 정보에 대응하는 이력 액세스 정보 엔트리를 생성한다.
제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 "데이터 무효" 상태로부터 "데이터 유효" 상태로의 첫회 기입이다. 첫회 기입 동안, 액세스대상 스토리지 영역의 이력 액세스 정보가 기록된다. 예를 들어, 액세스대상 스토리지 영역에 대응하는 이력 액세스 정보 엔트리가 생성되고, 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작으로서 기록된다.
제1 양태 또는 제1 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제1 양태의 제10 가능한 구현에서, 스토리지 제어기에 의해, 제2 기입 액세스 요청의 기입대상 데이터를 기입하는 단계는 : 스토리지 제어기에 의해, 제2 기입 액세스 요청의 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하는 단계를 포함한다.
제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 "데이터 무효" 상태로부터 "데이터 유효" 상태로의 첫회 기입이다. 기입된 데이터의 액세스 유형이 "판독 전용" 특성을 갖는지를 결정할 수 없기 때문에, 첫회 기입은 저속 기입 형태의 기입이다. 물론, 기입 동작의 또 다른 형태도 역시 이용될 수 있다.
제1 양태 또는 제1 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제1 양태의 제11 가능한 구현에서, 이 방법은 : 스토리지 제어기가, 액세스대상 스토리지 영역의 데이터가 무효하다고 결정할 때, 액세스대상 스토리지 영역의 기록된 이력 액세스 정보를 삭제하는 단계를 더 포함한다. 예를 들어, 스토리지 제어기는 삭제 통보 메시지를 수신하고, 여기서, 삭제 통보 메시지는 주소 정보를 운반한다; 스토리지 제어기는, 삭제 통보 메시지에 따라 액세스대상 스토리지 영역의 이력 액세스 정보를 삭제한다.
구체적으로는, 삭제 통보 메시지는, 스토리지 제어기가 액세스대상 스토리지 영역의 주소 정보를 무효로 설정하게 하여 후속 폐영역 회수를 용이하게 하도록, 액세스대상 스토리지 영역의 데이터를 삭제할 것을 사용자에게 명령하기 위한 트림 명령어(trim instruction)일 수 있다.
제2 양태에 따르면, 본 발명은 플래시 메모리 디바이스를 액세스하기 위한 방법을 제공한다. 플래시 메모리 디바이스에 대한 액세스 유형은 기입 동작 및 판독 동작을 포함하고, 플래시 메모리 디바이스에 관한 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하며, 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다. 이 방법은 : 액세스대상 스토리지 영역에 대한 제1 기입 액세스 요청 ―제1 기입 액세스 요청은, 액세스대상 스토리지 영역의 주소 정보를 운반함― 을 수신하는 단계; 주소 정보에 따라 액세스대상 스토리지 영역의 이력 액세스 유형 ―이력 액세스 유형은 제1 기입 액세스 요청 이전의 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 을 획득하는 단계; 및 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작일 때, 제1 기입 액세스 요청의 기입대상 데이터를 고속 기입의 형태로 액세스대상 스토리지 영역에 기입하는 단계를 포함한다.
액세스대상 스토리지 영역의 이력 액세스 유형 및 현재 액세스 요청의 액세스 유형이 양쪽 모두 기입 동작이라면, 이것은 액세스대상 스토리지 영역에 저장된 데이터가 "기입 전용" 특성을 가지며, 액세스대상 스토리지 영역에 관한 기입 동작의 빈도가 판독 동작의 빈도보다 훨씬 크다는 것을 나타낸다. 따라서, 기입 동작이 액세스대상 스토리지 영역에 관하여 고속 기입의 형태로 수행됨으로써, 플래시 메모리 디바이스의 전반적인 액세스 속도를 향상시킬 수 있다.
제2 양태를 참조하여, 제2 양태의 제1 가능한 구현에서, 액세스대상 스토리지 영역의 이력 액세스 유형을 획득하는 단계는 : 이력 액세스 레코드에 기록된 액세스대상 스토리지 영역의 이력 액세스 유형을 검색하는 단계를 포함한다.
구체적으로는, 이력 액세스 정보 테이블이 유지될 수 있다. 이력 액세스 정보 테이블은 각각의 주소 정보에 대응하는 이력 액세스 정보 엔트리를 유효한 데이터로 기록하고, 이력 액세스 정보 엔트리는 액세스대상 스토리지 영역의 이력 액세스 유형을 기록한다.
제2 양태 또는 제2 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제2 양태의 제2 가능한 구현에서, 액세스대상 스토리지 영역에 대한 제1 기입 액세스 요청을 수신하기 전에, 이 방법은 : 액세스대상 스토리지 영역에 대한 제2 기입 액세스 요청 ―제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 첫회 기입 액세스 요청임― 을 수신하는 단계; 및 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 이력 액세스 레코드에 기록하는 단계를 더 포함한다.
제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 "데이터 무효" 상태로부터 "데이터 유효" 상태로의 첫회 기입이다. 첫회 기입 동안에, 액세스대상 스토리지 영역에 대응하는 이력 액세스 정보 엔트리가 생성되고, 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작으로서 기록된다.
제2 양태 또는 제2 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제2 양태의 제3 가능한 구현에서, 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하는 단계는 : 제2 기입 액세스 요청의 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하는 단계를 포함한다.
제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 "데이터 무효" 상태로부터 "데이터 유효" 상태로의 첫회 기입이다. 기입된 데이터의 액세스 유형이 "판독 전용" 특성을 갖는지를 결정할 수 없기 때문에, 첫회 기입은 저속 기입 형태의 기입이다. 물론, 기입 동작의 또 다른 형태도 역시 첫회 기입 동안에 이용될 수 있다.
제2 양태 또는 제2 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제2 양태의 제4 가능한 구현에서, 이 방법은 : 액세스대상 스토리지 영역의 데이터가 무효하다고 결정될 때, 액세스대상 스토리지 영역의 기록된 이력 액세스 유형을 삭제하는 단계를 더 포함한다.
구체적으로는, 액세스대상 스토리지 영역에 대응하는 이력 액세스 정보 엔트리는 운영 체제의 트림 명령어가 수신될 때 삭제될 수 있다. 트림 명령어는 현재 액세스대상 스토리지 영역의 데이터가 운영 체제에 의해 삭제되었다는 것을 나타낸다.
제2 양태 또는 제2 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제2 양태의 제5 가능한 구현에서, 이 방법은 : 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작이 아닐 때, 제1 기입 액세스 요청의 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 업데이트하는 단계를 더 포함한다.
구체적으로, 이력 액세스 정보 엔트리가 하나보다 많은 이력 액세스 유형을 기록한다면, 이력 액세스 유형들 중 하나가 기입 동작이 아닌 경우, 이력 액세스 유형은 기입 동작이 아닌 것으로 간주되고, 모든 기록된 액세스 유형이 기입 동작일 때만 이력 액세스 유형이 기입 동작이라고 간주된다.
제2 양태 또는 제2 양태의 상기 가능한 구현들 중 어느 하나를 참조하여, 제2 양태의 제6 가능한 구현에서, 기입 동작의 형태는 일반 기입을 더 포함하고, 일반 기입의 기입 속도는 저속 기입의 기입 속도보다 크며 고속 기입의 기입 속도보다 작고; 이 방법은 : 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작이 아닐 때, 제1 기입 액세스 요청의 기입대상 데이터를 일반 기입의 형태로 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 업데이트하는 단계를 더 포함한다.
이력 액세스 유형이 기입 동작이 아니고 현재 액세스 요청의 액세스 유형이 기입 동작이라면, 이것은 액세스대상 스토리지 영역에 저장된 데이터가 "교차 액세스" 특성을 가진다는 것을 나타내고, 액세스대상 스토리지 영역에 관한 판독 동작의 빈도와 기입 동작의 빈도가 실질적으로 동일하다는 것을 나타낸다. 이 경우, 기입 동작이 액세스대상 스토리지 영역에 관해 일반 기입의 형태로 수행됨으로써, 판독 동작 및 기입 동작의 속도를 밸런싱하고, 플래시 메모리 디바이스의 전반적인 액세스 속도를 향상시킬 수 있다.
제3 양태에 따르면, 본 발명은 플래시 메모리 디바이스를 액세스하기 위한 방법을 제공한다. 플래시 메모리 디바이스에 대한 액세스 유형은 기입 동작 및 판독 동작을 포함한다. 플래시 메모리 디바이스에 관한 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하고, 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다. 플래시 메모리 디바이스에 관한 판독 동작의 형태는 고속 판독 및 저속 판독을 포함하고, 고속 판독의 판독 속도는 저속 판독의 판독 속도보다 크다. 이 방법은 : 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하는 단계; 액세스대상 스토리지 영역에 관한 판독 동작을 고속 판독의 형태로 수행하는 단계; 액세스대상 스토리지 영역의 이력 액세스 유형 ―이력 액세스 유형은 판독 액세스 요청 이전의 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 을 획득하는 단계; 및 고속 판독을 이용한 디코딩이 실패하고 이력 액세스 유형이 판독 동작일 때, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하는 단계를 포함한다.
이력 액세스 유형 및 현재 액세스 요청의 액세스 유형이 양쪽 모두 판독 동작이면, 이것은 액세스대상 스토리지 영역에 저장된 데이터가 "판독 전용" 특성을 갖고, 그 액세스대상 스토리지 영역에 관한 판독 동작의 빈도는 기입 동작의 빈도보다 훨씬 더 크다는 것을 나타낸다. 따라서, 액세스대상 스토리지 영역에 관한 고속 판독 형태의 디코딩이 실패한 경우, 액세스대상 스토리지 영역에 저장된 데이터의 정밀도가 충분히 높지 않다는 것을 나타내고, 액세스대상 스토리지 영역에 저장된 데이터가 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입됨으로써, 데이터의 정밀도를 보장하여 액세스대상 스토리지 영역에 관한 후속 판독 동작을 가속하고, 플래시 메모리 디바이스의 전반적인 액세스 속도를 향상시킨다.
선택사항으로서, 또 다른 가능한 구현에서, 액세스대상 스토리지 영역의 데이터가 판독 전용 특성을 갖는다면, 판독 동작 동안 디코딩의 비트 에러율이 미리설정된 임계값을 초과할 때, 액세스대상 스토리지 영역에 저장된 데이터는 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입된다.
제3 양태를 참조하여, 제3 양태의 제1 가능한 구현에서, 액세스대상 스토리지 영역의 이력 액세스 유형을 획득하는 단계는 : 이력 액세스 레코드에 기록된 액세스대상 스토리지 영역의 이력 액세스 유형을 검색하는 단계를 포함한다.
구체적으로는, 이력 액세스 정보 테이블이 유지될 수 있다. 이력 액세스 정보 테이블은 각각의 주소 정보에 대응하는 이력 액세스 정보 엔트리를 유효한 데이터로 기록하고, 이력 액세스 정보 엔트리는 액세스대상 스토리지 영역의 이력 액세스 유형을 기록한다.
제3 양태 또는 제3 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제3 양태의 제2 가능한 구현에서, 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하기 전에, 이 방법은 : 액세스대상 스토리지 영역에 대한 제2 기입 액세스 요청 ―제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 첫회 기입 액세스 요청임― 을 수신하는 단계; 및 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 이력 액세스 레코드에 기록하는 단계를 더 포함한다.
제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 "데이터 무효" 상태로부터 "데이터 유효" 상태로의 첫회 기입이다. 첫회 기입 동안에, 액세스대상 스토리지 영역에 대응하는 이력 액세스 정보 엔트리가 생성되고, 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작으로서 기록된다.
제3 양태 또는 제3 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제3 양태의 제3 가능한 구현에서, 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하는 단계는 : 제2 기입 액세스 요청의 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하는 단계를 포함한다.
제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 "데이터 무효" 상태로부터 "데이터 유효" 상태로의 첫회 기입이다. 기입된 데이터의 액세스 유형이 "판독 전용" 특성을 갖는지를 결정할 수 없기 때문에, 첫회 기입은 저속 기입 형태의 기입이다. 물론, 기입 동작의 또 다른 형태도 역시 첫회 기입 동안에 이용될 수 있다.
제3 양태 또는 제3 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제3 양태의 제4 가능한 구현에서, 이 방법은 : 액세스대상 스토리지 영역의 데이터가 무효하다고 결정될 때, 액세스대상 스토리지 영역의 기록된 이력 액세스 유형을 삭제하는 단계를 더 포함한다.
구체적으로는, 액세스대상 스토리지 영역에 대응하는 이력 액세스 정보 엔트리는 운영 체제의 트림 명령어가 수신될 때 삭제될 수 있다. 트림 명령어는 현재 액세스대상 스토리지 영역의 데이터가 운영 체제에 의해 삭제되었다는 것을 나타낸다.
제3 양태 또는 제3 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제3 양태의 제5 가능한 구현에서, 이 방법은 : 고속 판독을 이용한 디코딩이 실패할 때, 액세스대상 스토리지 영역에 관한 판독 동작을 저속 판독의 형태로 수행하는 단계를 더 포함한다.
제3 양태 또는 제3 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제3 양태의 제6 가능한 구현에서, 판독 동작의 형태는 일반 판독을 더 포함하고, 일반 판독의 판독 속도는 저속 판독의 판독 속도보다 크며 고속 판독의 판독 속도보다 작다; 이 방법은 : 고속 판독을 이용한 디코딩이 실패할 때, 액세스대상 스토리지 영역에 관한 판독 동작을 일반 판독의 형태로 수행하는 단계를 더 포함한다.
구체적으로, 고속 판독을 이용한 디코딩이 실패할 때, 상이한 상태들 사이의 임계 전압의 양이 증가되어, 액세스대상 스토리지 영역을 더욱 정확하게 판독함으로써, 디코딩의 성공률을 향상시킬 수 있다.
제3 양태 또는 제3 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제3 양태의 제7 가능한 구현에서, 이 방법은 : 이력 액세스 유형이 판독 동작이 아닐 때, 이력 액세스 유형을 업데이트하는 단계를 더 포함한다.
구체적으로, 이력 액세스 정보 엔트리가 하나보다 많은 이력 액세스 유형을 기록한다면, 이력 액세스 유형들 중 하나가 판독 동작이 아닌 경우, 이력 액세스 유형은 판독 동작이 아닌 것으로 간주되고, 모든 기록된 액세스 유형이 판독 동작일 때만 이력 액세스 유형이 판독 동작이라고 간주된다.
제3 양태 또는 제3 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제3 양태의 제8 가능한 구현에서, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하기 전에, 이 방법은 : 액세스대상 스토리지 영역의 주소 정보를 재기입 큐에 저장하는 단계; 및 재기입 큐에 저장된 주소 정보에 따라 액세스대상 스토리지 영역으로부터 액세스대상 스토리지 영역에 저장된 데이터를 판독하는 단계를 더 포함한다.
재기입이 수행될 필요가 있는 액세스대상 스토리지 영역의 주소 정보는 재기입 큐에 기입되고, 플래시 메모리 디바이스가 유휴상태이거나 비교적 가벼운 부하를 가질 때 재기입 동작이 수행됨으로써, 재기입 동작이 일반 판독 액세스와 일반 기입 액세스를 차단하는 것을 피한다.
선택사항으로서, 판독되는 데이터는 현재의 판독 동작이 종료된 후에 액세스대상 스토리지 영역에 직접 재기입될 수 있음으로써, 후속 재판독에 의해 야기되는 소비를 피할 수 있다.
제4 양태에 따르면, 본 발명은 플래시 메모리 디바이스를 액세스하기 위한 방법을 제공한다. 플래시 메모리 디바이스에 대한 액세스 유형은 기입 동작 및 판독 동작을 포함한다. 플래시 메모리 디바이스에 관한 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하고, 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다. 이 방법은 : 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하는 단계; 액세스대상 스토리지 영역의 이력 액세스 정보 ―이력 액세스 정보는 액세스대상 스토리지 영역의 이력 액세스 유형 및 기입 속도 마크를 포함하고, 기입 속도 마크는 액세스대상 스토리지 영역에 저장된 데이터에 관한 기입 동작의 형태를 나타내는데 이용되며, 이력 액세스 유형은 판독 액세스 요청 이전의 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 를 획득하는 단계; 이력 액세스 유형이 판독 동작이고 기입 속도 마크가 저속 기입을 나타내지 않을 때, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하는 단계를 포함한다.
기입 속도 마크는 주로 액세스대상 스토리지 영역에 저장된 데이터가 저속 기입의 형태로 기입되어 있는지를 나타내는데 이용된다. 액세스대상 스토리지 영역에 저장된 데이터가 저속 기입의 형태로 기입되어 있지 않다면, 이것은 상당한 정도로 액세스대상 스토리지 영역에 저장된 데이터의 정확도가 충분히 높지 않다는 것을 나타낸다. 데이터가 "판독 전용" 특성을 갖는다면, 액세스대상 스토리지 영역에 저장된 데이터는 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입됨으로써, 데이터의 정확성을 보장하여 액세스대상 스토리지 영역에 관한 후속 판독 동작을 가속하고 플래시 메모리 디바이스의 전반적인 액세스 속도를 향상시킨다.
제4 양태를 참조하여, 제4 양태의 제1 가능한 구현에서, 액세스대상 스토리지 영역의 이력 액세스 정보를 획득하는 단계는 : 이력 액세스 레코드에 기록된 액세스대상 스토리지 영역의 이력 액세스 정보를 검색하는 단계를 포함한다.
구체적으로는, 이력 액세스 정보 테이블이 유지될 수 있다. 이력 액세스 정보 테이블은 각각의 주소 정보에 대응하는 이력 액세스 정보 엔트리를 유효한 데이터로 기록하고, 이력 액세스 정보 엔트리는 액세스대상 스토리지 영역의 이력 액세스 정보를 기록한다.
제4 양태 또는 제4 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제4 양태의 제2 가능한 구현에서, 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하기 전에, 이 방법은 : 액세스대상 스토리지 영역에 대한 제2 기입 액세스 요청 ―제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 첫회 기입 액세스 요청임― 을 수신하는 단계; 및 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 정보를 이력 액세스 레코드에 기록하는 단계를 더 포함한다.
제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 "데이터 무효" 상태로부터 "데이터 유효" 상태로의 첫회 기입이다. 첫회 기입 동안에, 액세스대상 스토리지 영역에 대응하는 이력 액세스 정보 엔트리가 생성되고, 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작으로서 기록된다.
제4 양태 또는 제4 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제4 양태의 제3 가능한 구현에서, 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하는 단계는 : 제2 기입 액세스 요청의 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하는 단계를 포함한다.
제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 "데이터 무효" 상태로부터 "데이터 유효" 상태로의 첫회 기입이다. 기입된 데이터의 액세스 유형이 "판독 전용" 특성을 갖는지를 결정할 수 없기 때문에, 첫회 기입은 저속 기입 형태의 기입이다. 물론, 기입 동작의 또 다른 형태도 역시 첫회 기입 동안에 이용될 수 있다.
제4 양태 또는 제4 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제4 양태의 제4 가능한 구현에서, 이 방법은 : 액세스대상 스토리지 영역의 데이터가 무효하다고 결정될 때, 액세스대상 스토리지 영역의 기록된 이력 액세스 정보를 삭제하는 단계를 더 포함한다.
구체적으로는, 액세스대상 스토리지 영역에 대응하는 이력 액세스 정보 엔트리는 운영 체제의 트림 명령어가 수신될 때 삭제될 수 있다. 트림 명령어는 현재 액세스대상 스토리지 영역의 데이터가 운영 체제에 의해 삭제되었다는 것을 나타낸다.
제4 양태 또는 제4 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제4 양태의 제5 가능한 구현에서, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입한 후에, 이 방법은 : 기입 속도 마크를 저속 기입으로 업데이트하는 단계를 더 포함한다.
제4 양태 또는 제4 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제4 양태의 제6 가능한 구현에서, 액세스대상 스토리지 영역의 이력 액세스 정보를 획득한 후에, 이 방법은 : 기입 속도 마크에 따라 액세스대상 스토리지 영역에 관한 판독 동작 ―고속 기입은 저속 판독에 대응하고, 저속 기입은 고속 판독에 대응함― 을 수행하는 단계를 더 포함한다.
액세스대상 스토리지 영역 내의 데이터에 관한 기입 동작의 형태에 따라 판독 동작의 대응하는 형태가 이용된다. 이것은 어느 정도 판독 동작의 시간을 단축시킬 수 있고, 플래시 메모리 디바이스의 전반적인 액세스 속도를 향상시킬 수 있다.
제4 양태 또는 제4 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제4 양태의 제7 가능한 구현에서, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하기 전에, 이 방법은 : 액세스대상 스토리지 영역의 주소 정보를 재기입 큐에 저장하는 단계; 및 재기입 큐에 저장된 주소 정보에 따라 액세스대상 스토리지 영역으로부터 액세스대상 스토리지 영역에 저장된 데이터를 판독하는 단계를 더 포함한다.
재기입이 수행될 필요가 있는 액세스대상 스토리지 영역의 주소 정보는 재기입 큐에 기입되고, 플래시 메모리 디바이스가 유휴상태이거나 비교적 가벼운 부하를 가질 때 재기입 동작이 수행됨으로써, 재기입 동작이 일반 판독 액세스와 일반 기입 액세스를 차단하는 것을 피한다.
선택사항으로서, 판독되는 데이터는 현재의 판독 동작이 종료된 후에 액세스대상 스토리지 영역에 직접 재기입될 수 있음으로써, 후속 재판독에 의해 야기되는 소비를 피할 수 있다.
제5 양태에 따르면, 본 발명은 실행 명령어를 포함하는 판독가능한 매체를 제공한다. 스토리지 제어기의 프로세서가 실행 명령어를 실행할 때, 스토리지 제어기는 상기 양태들 또는 상기 양태들의 가능한 구현들 중 임의의 하나의 방법을 수행한다.
제6 양태에 따르면, 본 발명은, 프로세서, 메모리 및 버스를 포함하는 스토리지 제어기를 제공한다. 메모리는 실행 명령어를 저장하도록 구성되고; 프로세서와 메모리는 버스를 이용하여 접속된다; 스토리지 제어기가 실행될 때, 프로세서는 메모리에 저장된 실행 명령어를 실행하여, 스토리지 제어이가 상기 양태들 또는 상기 양태들의 가능한 구현들 중 임의의 하나의 방법을 수행하게 한다.
제7 양태에 따르면, 본 발명은 플래시 메모리 디바이스를 액세스하기 위한 장치를 제공한다. 플래시 메모리 디바이스에 대한 액세스 유형은 기입 동작 및 판독 동작을 포함하고, 플래시 메모리 디바이스에 관한 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하며, 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다. 이 장치는 : 액세스대상 스토리지 영역에 대한 제1 기입 액세스 요청을 수신하도록 구성된 수신 유닛; 액세스대상 스토리지 영역의 이력 액세스 유형 ―이력 액세스 유형은 제1 기입 액세스 요청 이전의 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 을 획득하도록 구성된 획득 유닛; 및 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작일 때, 제1 기입 액세스 요청의 기입대상 데이터를 고속 기입의 형태로 액세스대상 스토리지 영역에 기입하도록 구성된 기입 유닛을 포함한다.
제7 양태를 참조하여, 제7 양태의 제1 가능한 구현에서, 획득 유닛은 액세스대상 스토리지 영역의 이력 액세스 유형을 획득하도록 구성된다는 것은 : 획득 유닛은 이력 액세스 레코드에 기록된 액세스대상 스토리지 영역의 이력 액세스 유형을 검색하도록 구성된다는 것을 포함한다.
제7 양태 또는 제7 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제7 양태의 제2 가능한 구현에서, 액세스대상 스토리지 영역에 대한 제1 기입 액세스 요청을 수신하기 전에, 수신 유닛은 또한 : 액세스대상 스토리지 영역에 대한 제2 기입 액세스 요청 ―제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 첫회 기입 액세스 요청임― 을 수신하도록 구성되고; 기입 유닛은 또한 : 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 이력 액세스 레코드에 기록하도록 구성된다.
제7 양태 또는 제7 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제7 양태의 제3 가능한 구현에서, 기입 유닛이 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하도록 구성된다는 것은 : 기입 유닛이 제2 기입 액세스 요청의 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하도록 구성된다는 것을 포함한다.
제7 양태 또는 제7 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제7 양태의 제4 가능한 구현에서, 이 장치는 삭제 유닛을 더 포함하고, 액세스대상 스토리지 영역의 데이터가 무효하다고 결정될 때, 삭제 유닛은 액세스대상 스토리지 영역의 기록된 이력 액세스 유형을 삭제하도록 구성된다.
제7 양태 또는 제7 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제7 양태의 제5 가능한 구현에서, 기입 유닛은 또한 : 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작이 아닐 때, 제1 기입 액세스 요청의 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 업데이트하도록 구성된다.
제7 양태 또는 제7 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제7 양태의 제6 가능한 구현에서, 기입 동작의 형태는 일반 기입을 더 포함하고, 일반 기입의 기입 속도는 저속 기입의 기입 속도보다 크며 고속 기입의 기입 속도보다 작고; 기입 유닛은 또한 : 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작이 아닐 때, 제1 기입 액세스 요청의 기입대상 데이터를 일반 기입의 형태로 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 업데이트하도록 구성된다.
제7 양태는 제2 양태의 방법에 대응하는 장치 구현이다. 따라서, 제2 양태 또는 제2 양태의 가능한 구현들 중 임의의 하나의 설명은, 제7 양태 또는 제7 양태의 가능한 구현들 중 임의의 하나에 대응적으로 적용될 수 있다. 상세사항은 여기서 다시 설명되지 않는다.
제8 양태에 따르면, 본 발명은 플래시 메모리 디바이스를 액세스하기 위한 장치를 제공한다. 플래시 메모리 디바이스에 대한 액세스 유형은 기입 동작 및 판독 동작을 포함한다. 플래시 메모리 디바이스에 관한 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하고, 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다. 플래시 메모리 디바이스에 관한 판독 동작의 형태는 고속 판독 및 저속 판독을 포함하고, 고속 판독의 판독 속도는 저속 판독의 판독 속도보다 크다. 이 장치는 : 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하도록 구성된 수신 유닛; 액세스대상 스토리지 영역에 관한 판독 동작을 고속 판독의 형태로 수행하도록 구성된 판독 유닛; 액세스대상 스토리지 영역의 이력 액세스 유형 ―이력 액세스 유형은 판독 액세스 요청 이전의 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 을 획득하도록 구성된 획득 유닛; 및 고속 판독을 이용한 디코딩이 실패하고 이력 액세스 유형이 판독 동작일 때, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하도록 구성된 기입 유닛을 포함한다.
제8 양태를 참조하여, 제8 양태의 제1 가능한 구현에서, 획득 유닛은 액세스대상 스토리지 영역의 이력 액세스 유형을 획득하도록 구성된다는 것은 : 획득 유닛은 이력 액세스 레코드에 기록된 액세스대상 스토리지 영역의 이력 액세스 유형을 검색하도록 구성된다는 것을 포함한다.
제8 양태 또는 제8 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제8 양태의 제2 가능한 구현에서, 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하기 전에, 수신 유닛은 또한 : 액세스대상 스토리지 영역에 대한 제2 기입 액세스 요청 ―제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 첫회 기입 액세스 요청임― 을 수신하도록 구성되고; 기입 유닛은 또한 : 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 이력 액세스 레코드에 기록하도록 구성된다.
제8 양태 또는 제8 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제8 양태의 제3 가능한 구현에서, 기입 유닛이 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하도록 구성된다는 것은 : 기입 유닛이 제2 기입 액세스 요청의 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하도록 구성된다는 것을 포함한다.
제8 양태 또는 제8 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제8 양태의 제4 가능한 구현에서, 이 장치는 삭제 유닛을 더 포함하고, 액세스대상 스토리지 영역의 데이터가 무효하다고 결정될 때, 삭제 유닛은 액세스대상 스토리지 영역의 기록된 이력 액세스 유형을 삭제하도록 구성된다.
제8 양태 또는 제8 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제8 양태의 제5 가능한 구현에서, 판독 유닛은 또한 : 고속 판독을 이용한 디코딩이 실패할 때, 액세스대상 스토리지 영역에 관한 판독 동작을 저속 판독의 형태로 수행하도록 구성된다.
제8 양태 또는 제8 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제8 양태의 제6 가능한 구현에서, 판독 동작의 형태는 일반 판독을 더 포함하고, 일반 판독의 판독 속도는 저속 판독의 판독 속도보다 크며 고속 판독의 판독 속도보다 작다; 판독 유닛은 또한 : 고속 판독을 이용한 디코딩이 실패할 때, 액세스대상 스토리지 영역에 관한 판독 동작을 일반 판독의 형태로 수행하도록 구성된다.
제8 양태 또는 제8 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제8 양태의 제7 가능한 구현에서, 기입 유닛은 또한 : 이력 액세스 유형이 판독 동작이 아닐 때, 이력 액세스 유형을 업데이트하도록 구성된다.
제8 양태 또는 제8 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제8 양태의 제8 가능한 구현에서, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하기 전에, 기입 유닛은 또한, 액세스대상 스토리지 영역의 주소 정보를 재기입 큐에 저장하도록 구성되고; 판독 유닛은 또한, 재기입 큐에 저장된 주소 정보에 따라 액세스대상 스토리지 영역으로부터 액세스대상 스토리지 영역에 저장된 데이터를 판독하도록 구성된다.
제8 양태는 제3 양태의 방법에 대응하는 장치 구현이다. 따라서, 제3 양태 또는 제3 양태의 가능한 구현들 중 임의의 하나의 설명은, 제8 양태 또는 제8 양태의 가능한 구현들 중 임의의 하나에 대응적으로 적용될 수 있다. 상세사항은 여기서 다시 설명되지 않는다.
제9 양태에 따르면, 본 발명은 플래시 메모리 디바이스를 액세스하기 위한 장치를 제공한다. 플래시 메모리 디바이스에 대한 액세스 유형은 기입 동작 및 판독 동작을 포함한다. 플래시 메모리 디바이스에 관한 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하고, 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다. 이 장치는 : 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하도록 구성된 수신 유닛; 액세스대상 스토리지 영역의 이력 액세스 정보 ―이력 액세스 정보는 액세스대상 스토리지 영역의 이력 액세스 유형 및 기입 속도 마크를 포함하고, 기입 속도 마크는 액세스대상 스토리지 영역에 저장된 데이터에 관한 기입 동작의 형태를 나타내는데 이용되며, 이력 액세스 유형은 판독 액세스 요청 이전의 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 를 획득하도록 구성된 획득 유닛; 이력 액세스 유형이 판독 동작이고 기입 속도 마크가 저속 기입을 나타내지 않을 때, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하도록 구성된 기입 유닛을 포함한다.
제9 양태를 참조하여, 제9 양태의 제1 가능한 구현에서, 획득 유닛은 액세스대상 스토리지 영역의 이력 액세스 정보를 획득하도록 구성된다는 것은 : 획득 유닛은 이력 액세스 레코드에 기록된 액세스대상 스토리지 영역의 이력 액세스 정보를 검색하도록 구성된다는 것을 포함한다.
제9 양태 또는 제9 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제9 양태의 제2 가능한 구현에서, 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하기 전에, 수신 유닛은 또한 : 액세스대상 스토리지 영역에 대한 제2 기입 액세스 요청 ―제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 첫회 기입 액세스 요청임― 을 수신하도록 구성되고; 기입 유닛은 또한 : 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 정보를 이력 액세스 레코드에 기록하도록 구성된다.
제9 양태 또는 제9 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제9 양태의 제3 가능한 구현에서, 기입 유닛이 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하도록 구성된다는 것은 : 기입 유닛이 제2 기입 액세스 요청의 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하도록 구성된다는 것을 포함한다.
제9 양태 또는 제9 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제9 양태의 제4 가능한 구현에서, 이 장치는 삭제 유닛을 더 포함하고, 액세스대상 스토리지 영역의 데이터가 무효하다고 결정될 때, 삭제 유닛은 액세스대상 스토리지 영역의 기록된 이력 액세스 정보를 삭제하도록 구성된다.
제9 양태 또는 제9 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제9 양태의 제5 가능한 구현에서, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입한 후에, 기입 유닛은 또한, 기입 속도 마크를 저속 기입으로 업데이트하도록 구성된다.
제9 양태 또는 제9 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제9 양태의 제6 가능한 구현에서, 이 장치는 판독 유닛을 더 포함하고, 여기서, 획득 유닛이 액세스대상 스토리지 영역의 이력 액세스 정보를 획득한 후에, 판독 유닛은 기입 속도 마크에 따라 액세스대상 스토리지 영역에 관한 판독 동작 ―고속 기입은 저속 판독에 대응하고, 저속 기입은 고속 판독에 대응함― 을 수행하도록 구성된다.
제9 양태 또는 제9 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제9 양태의 제7 가능한 구현에서, 이 장치는 판독 유닛을 더 포함하고, 여기서, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하기 전에, 기입 유닛은 또한, 액세스대상 스토리지 영역의 주소 정보를 재기입 큐에 저장하도록 구성되고; 판독 유닛은, 재기입 큐에 저장된 주소 정보에 따라 액세스대상 스토리지 영역으로부터 액세스대상 스토리지 영역에 저장된 데이터를 판독하도록 구성된다.
제9 양태는 제4 양태의 방법에 대응하는 장치 구현이다. 따라서, 제4 양태 또는 제4 양태의 가능한 구현들 중 임의의 하나의 설명은, 제9 양태 또는 제9 양태의 가능한 구현들 중 임의의 하나에 대응적으로 적용될 수 있다. 상세사항은 여기서 다시 설명되지 않는다.
제10 양태에 따르면, 본 발명은 플래시 메모리 디바이스를 제공한다. 플래시 메모리 디바이스에 대한 액세스 유형은 기입 동작 및 판독 동작을 포함하고, 플래시 메모리 디바이스에 관한 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하며, 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다. 플래시 메모리 디바이스는 스토리지 제어기 및 플래시 메모리 어레이를 포함하고, 여기서, 플래시 메모리 어레이는 데이터를 저장하도록 구성되며; 스토리지 제어기는 : 플래시 메모리 어레이의 액세스대상 스토리지 영역에 대한 제1 기입 액세스 요청을 수신하고; 액세스대상 스토리지 영역의 이력 액세스 유형 ―이력 액세스 유형은 제1 기입 액세스 요청 이전의 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 을 획득하며; 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작일 때, 제1 기입 액세스 요청의 기입대상 데이터를 고속 기입의 형태로 액세스대상 스토리지 영역에 기입하도록 구성된다.
제10 양태를 참조하여, 제10 양태의 제1 가능한 구현에서, 스토리지 제어기는 또한 : 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작이 아닐 때, 제1 기입 액세스 요청의 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 업데이트하도록 구성된다.
제10 양태를 참조하여, 제10 양태의 제2 가능한 구현에서, 기입 동작의 형태는 일반 기입을 더 포함하고, 일반 기입의 기입 속도는 저속 기입의 기입 속도보다 크며 고속 기입의 기입 속도보다 작고; 스토리지 제어기는 또한 : 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작이 아닐 때, 제1 기입 액세스 요청의 기입대상 데이터를 일반 기입의 형태로 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 업데이트하도록 구성된다.
제10 양태는 제2 양태의 방법에 대응하는 장치 구현이다. 따라서, 제2 양태 또는 제2 양태의 가능한 구현들 중 임의의 하나의 설명은, 제10 양태 또는 제10 양태의 가능한 구현들 중 임의의 하나에 대응적으로 적용될 수 있다. 상세사항은 여기서 다시 설명되지 않는다.
제11 양태에 따르면, 본 발명은 플래시 메모리 디바이스를 제공한다. 플래시 메모리 디바이스에 대한 액세스 유형은 기입 동작 및 판독 동작을 포함한다. 플래시 메모리 디바이스에 관한 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하고, 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다. 플래시 메모리 디바이스에 관한 판독 동작의 형태는 고속 판독 및 저속 판독을 포함하고, 고속 판독의 판독 속도는 저속 판독의 판독 속도보다 크다. 이 장치는 스토리지 제어기 및 플래시 메모리 어레이를 포함하고, 여기서, 플래시 메모리 어레이는 데이터를 저장하도록 구성되며; 스토리지 제어기는 : 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하고; 액세스대상 스토리지 영역에 관한 판독 동작을 고속 판독의 형태로 수행하며; 액세스대상 스토리지 영역의 이력 액세스 유형 ―이력 액세스 유형은 판독 액세스 요청 이전의 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 을 획득하고; 고속 판독을 이용한 디코딩이 실패하고 이력 액세스 유형이 판독 동작일 때, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하도록 구성된다.
제11 양태를 참조하여, 제11 양태의 제1 가능한 구현에서, 스토리지 제어기는 또한 : 고속 판독을 이용한 디코딩이 실패할 때, 액세스대상 스토리지 영역에 관한 판독 동작을 저속 판독의 형태로 수행하도록 구성된다.
제11 양태를 참조하여, 제11 양태의 제2 가능한 구현에서, 판독 동작의 형태는 일반 판독을 더 포함하고, 일반 판독의 판독 속도는 저속 판독의 판독 속도보다 크며 고속 판독의 판독 속도보다 작다; 스토리지 제어기는 또한 : 고속 판독을 이용한 디코딩이 실패할 때, 액세스대상 스토리지 영역에 관한 판독 동작을 일반 판독의 형태로 수행하도록 구성된다.
제11 양태는 제3 양태의 방법에 대응하는 장치 구현이다. 따라서, 제3 양태 또는 제3 양태의 가능한 구현들 중 임의의 하나의 설명은, 제11 양태 또는 제11 양태의 가능한 구현들 중 임의의 하나에 대응적으로 적용될 수 있다. 상세사항은 여기서 다시 설명되지 않는다.
제12 양태에 따르면, 본 발명은 플래시 메모리 디바이스를 제공한다. 플래시 메모리 디바이스에 대한 액세스 유형은 기입 동작 및 판독 동작을 포함한다. 플래시 메모리 디바이스에 관한 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하고, 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다. 이 장치는 스토리지 제어기 및 플래시 메모리 어레이를 포함하고, 여기서, 플래시 메모리 어레이는 데이터를 저장하도록 구성되며; 스토리지 제어기는 : 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하고; 액세스대상 스토리지 영역의 이력 액세스 정보 ―이력 액세스 정보는 액세스대상 스토리지 영역의 이력 액세스 유형 및 기입 속도 마크를 포함하고, 기입 속도 마크는 액세스대상 스토리지 영역에 저장된 데이터에 관한 기입 동작의 형태를 나타내는데 이용되며, 이력 액세스 유형은 판독 액세스 요청 이전의 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 를 획득하며; 이력 액세스 유형이 판독 동작이고 기입 속도 마크가 저속 기입을 나타내지 않을 때, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하도록 구성된다.
제12 양태를 참조하여, 제12 양태의 제1 가능한 구현에서, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입한 후에, 스토리지 제어기는 또한, 기입 속도 마크를 저속 기입으로 업데이트하도록 구성된다.
제12 양태 또는 제12 양태의 상기 가능한 구현들 중 임의의 하나를 참조하여, 제12 양태의 제2 가능한 구현에서, 액세스대상 스토리지 영역의 이력 액세스 정보를 획득한 후, 스토리지 제어기는 또한, 기입 속도 마크에 따라 액세스대상 스토리지 영역에 관한 판독 동작을 수행하도록 구성되고, 여기서, 플래시 메모리 디바이스에 관한 판독 동작의 형태는 고속 판독 및 저속 판독을 포함하고, 고속 판독의 판독 속도는 저속 판독의 판독 속도보다 크고, 고속 기입은 저속 판독에 대응하고, 저속 기입은 고속 판독에 대응한다.
제12 양태는 제4 양태의 방법에 대응하는 장치 구현이다. 따라서, 제4 양태 또는 제4 양태의 가능한 구현들 중 임의의 하나의 설명은, 제12 양태 또는 제12 양태의 가능한 구현들 중 임의의 하나에 대응적으로 적용될 수 있다. 상세사항은 여기서 다시 설명되지 않는다.
본 발명의 실시예들에 개시된 기술적 솔루션에 따르면, 데이터의 액세스 특성에 기초하여, 데이터는 3가지 유형 : 판독 전용 데이터, 기입 전용 데이터, 및 교차 액세스 데이터로 분류되고, 3가지 유형의 데이터는 이력 액세스 유형을 이용하여 서로 구별된다. 따라서, 판독 전용 특성을 갖는 데이터에 대한 속도가 조절되고, 고속 판독을 달성하기 위해 저속 기입이 수행되므로, 판독 성능이 크게 향상되면서 기입 성능은 거의 영향받지 않는다. 기입 전용 특성을 갖는 데이터에 대한 속도가 조절되고, 고속 기입이 수행되므로, 기입 성능이 크게 향상되면서 판독 성능은 거의 영향받지 않는다. 또한, 교차 액세스 특성을 갖는 데이터에 대한 속도가 역시 조정될 수 있고, 일반 기입이 수행됨으로써, 판독 속도와 기입 속도 사이의 균형을 달성한다.
본 발명의 실시예에서의 기술적 솔루션을 더 명확하게 설명하기 위하여, 이하에서는 실시예를 설명하는데 요구되는 첨부된 도면을 간략하게 설명한다. 명백히, 이하의 설명에서의 첨부된 도면은 본 발명의 일부 실시예를 도시할 뿐이며, 본 기술분야의 통상의 기술자라면 창조적 노력없이 이들 첨부된 도면들로부터 다른 도면들을 여전히 유도해 낼 수 있을 것이다.
도 1은 데이터 액세스 시스템의 논리적 구조의 개략도이다;
도 2는 본 발명의 한 실시예에 따른 스토리지 제어기의 하드웨어 구조의 개략도이다;
도 3은 본 발명의 한 실시예에 따른 ISPP 프로그래밍의 개략적인 플로차트이다;
도 4는 본 발명의 한 실시예에 따른 경 판정(hard decision)에 대한 임계 전압의 분포도이다;
도 5는 본 발명의 한 실시예에 따른 연 판정(soft decision)에 대한 임계 전압의 분포도이다;
도 6은 본 발명의 한 실시예에 따른 플래시 메모리 디바이스에 액세스하기 위한 방법의 플로차트의 한 예이다;
도 7은 본 발명의 한 실시예에 따른 이력 액세스 정보 엔트리의 개략도이다;
도 8은 본 발명의 한 실시예에 따른 플래시 메모리 디바이스에 액세스하기 위한 방법의 플로차트의 한 예이다;
도 9는 본 발명의 한 실시예에 따른 이력 액세스 정보 엔트리의 개략도이다;
도 10은 본 발명의 한 실시예에 따른 플래시 메모리 디바이스에 액세스하기 위한 장치의 논리적 구조의 개략도이다;
도 11은 본 발명의 한 실시예에 따른 플래시 메모리 디바이스에 액세스하기 위한 장치의 논리적 구조의 개략도이다;
도 12는 본 발명의 한 실시예에 따른 플래시 메모리 디바이스에 액세스하기 위한 장치의 논리적 구조의 개략도이다.
이하에서는 첨부된 도면들을 참조하여 본 발명의 실시예들을 설명한다.
도 1은 본 발명의 한 실시예에 따른 플래시 메모리 디바이스에 액세스하기 위한 시스템(100)의 논리적 구조의 개략도이다. 도 1에 도시된 바와 같이, 시스템(100)은 운영 체제(102) 및 플래시 메모리 디바이스(108)를 포함한다.
운영 체제(102)는, (메모리 관리, 스토리지 디바이스 제어, 및 전력 관리 등의) 일상적인 시스템 작업을 제어 및 관리하고 다양한 소프트웨어 및 하드웨어 컴포넌트들 사이의 통신을 용이하게하는데 이용되는 다양한 소프트웨어 컴포넌트 및/또는 드라이버를 포함한다. 운영 체제(102)는, Darwin, RTXC, Linux, Unix, OS X, MAC OS 또는 Windows, 또는 VxWorks 등의 임베디드 운영 체제일 수 있다. 이것은 본 발명의 이 실시예에서 제한되지 않는다.
특히, 운영 체제(102)는 파일 시스템(104) 및 드라이버(106)를 포함한다. 파일 시스템(104)은, 플래시 메모리 디바이스(108) 상의 파일을 명시하기 위해 운영 체제(102)에 의해 이용되는 방법 및 데이터 구조, 즉, 플래시 메모리 디바이스(108) 상의 파일들을 조직화하는 방법이다. 파일 시스템(104)은, FAT, NTFS, exFAT, RAW, Ext2, Ext3, Ext4, Btrfs, ZFS, HFS, HFS+, ReiserFS, JFS, VMFS, XFSUFS 또는 VXFS 등의 임의의 유형일 수 있다.
사용자의 애플리케이션 프로그램은 운영 체제(102)에서 실행된다. 애플리케이션 프로그램은 기저 하드웨어에 액세스함으로써 인간-머신 상호작용을 구현한다. 드라이버(106)는 애플리케이션 프로그램과 하드웨어 사이의 상호작용을 위한 브릿지이다. 한편으로, 애플리케이션 프로그램은 대응하는 명령어를 드라이버(106)에 전송함으로써 하드웨어를 제어한다. 한편, 드라이버(106)는 하드웨어의 판독 및 기입 상태와 하드웨어로부터 판독된 데이터를 애플리케이션 프로그램에 전달함으로써, 애플리케이션 프로그램과 기저 하드웨어 사이의 상호작용을 구현한다.
운영 체제(102)는, 하드 디스크 드라이브 인터페이스 기술(Advanced Technology Attachment, ATA)을 이용하여 플래시 메모리 디바이스(108)에 접속된다.
플래시 메모리 디바이스(108)는 플래시 메모리에 기초한 스토리지 디바이스이다; 예를 들어, 플래시 메모리 디바이스(108)는 SSD일 수 있다. 플래시 메모리 디바이스(108)는, 캐시(110), 스토리지 제어기(112), 및 플래시 메모리 어레이(130)를 포함한다.
스토리지 제어기(112)는, 호스트 인터페이스(114), 플래시 변환 계층(Flash Translation Layer, FTL)(116), 및 플래시 메모리 인터페이스(128)를 포함한다.
호스트 인터페이스(114)는, 호스트에 접속하고, 운영 체제(102)와의 데이터 전송을 제어하도록 구성된다.
플래시 메모리 인터페이스(128)는, 플래시 메모리 어레이(130)에 접속하고, 플래시 메모리 어레이(130)와의 데이터 전송을 제어하도록 구성된다.
플래시 변환 계층(116)은, 불량 블록 관리(Bad Block Management, BBM) 모듈(118), 마모 레벨링(Wear leveling, WL) 모듈(120), 주소 변환 모듈(122), 에러 체킹 및 정정(ECC) 모듈(124) 및 폐영역 회수(Garbage Collection, GC) 모듈(126)을 포함한다.
플래시 메모리 어레이(130)는 복수의 블록(block)으로 분할될 수 있고, 각각의 블록은 복수의 페이지(page)로 더 분할될 수 있다. 데이터는 페이지에 직접 기입될 수 있다. 그러나, 데이터는 블록 단위로 소거될 필요가 있다. 기존 데이터가 삭제되기 전에는 새로운 데이터가 기입될 수 없다. 그러나, 운영 체제(102)는 대개 하드 디스크 드라이브(Hard Disk Drive, HDD)의 섹터의 크기에 따라 데이터를 판독 및 기입한다. 결과적으로, SSD는, 운영 체제(102)에 의해 현재 이용되는 파일 시스템(104)을 이용하여 관리될 수 없고, 파일 시스템(104)은 이 문제를 해결하기 위해 더 진보되고 복잡한 파일 시스템으로 대체될 필요가 있다. 그러나, 이 경우, 운영 체제(102) 상의 부하가 증가한다. 운영 체제(102) 상의 부하를 증가시키지 않기 위해, 플래시 메모리 디바이스(108)는 소프트웨어를 이용하여 플래시 메모리 어레이(130) 상의 동작을 자기 디스크의 독립 섹터에 관한 동작으로 가상화한다. 이것은 플래시 변환 계층(116)의 기능이다.
플래시 변환 계층(116)은 파일 시스템(104)과 물리적 매체(플래시 메모리 어레이(130)) 사이에 존재한다. 운영 체제(102)는, 평소와 같이 논리적 블록 주소(Logical Block Address, LBA)를 동작시킬 필요만 있다. 플래시 변환 계층(116)은 논리 주소로부터 물리적 블록 주소(물리적 블록 주소, PBA)로의 모든 변환 작업을 담당한다.
불량 블록 관리 모듈(118)은 플래시 메모리 어레이(130)의 불량 블록을 관리하도록 구성된다. 플래시 메모리 어레이(130)에 있고 판독/기입 또는 소거 동안에 데이터의 정확성을 보장할 수 없는 불안정한 블록은 불량 블록(bad block)이라고 한다. 불량 블록 관리 모듈(118)은 불량 블록 테이블을 이용하여 불량 블록을 관리한다. 불량 블록 테이블이 생성된 후에, 불량 블록 관리 모듈(118)은 불량 블록 테이블을 양호한 블록에 저장하고, 각각의 재시작 후에, 블록 내부로부터 불량 블록 테이블을 캐시(110)에 로딩한다. 기입은 플래시 메모리 어레이(130) 상에서 페이지 단위로 수행된다. 동작 동안에, 블록의 다른 페이지에 있는 데이터가 영향을 받을 수 있다. 따라서, 기입 동안에 에러가 발생할 때, 불량 블록 관리 모듈(118)은 불량 블록을 양호한 블록으로 대체하고, 데이터를 새로운 양호한 블록에 재기입하고, 검출된 불량 블록 내의 나머지 유효 페이지의 모든 데이터를 새로운 블록으로 복사하며, 검출된 불량 블록을 불량 블록으로서 마킹하고, 불량 블록 테이블에서 주소를 업데이트하고, 원래의 불량 블록의 주소를 새로운 양호한 블록에 재맵핑한다.
플래시 메모리 어레이(130)의 수명은 프로그래밍/소거 시간의 양에 따라 계산되고, 마모 레벨링 모듈(120)은 플래시 메모리 어레이(130) 내의 각각의 블록이 동일한 기록 시간량을 갖도록 보장하기 위한 메커니즘이다. 이 메커니즘이 없으면, 플래시 메모리 어레이(130) 내의 플래시 메모리 칩들은 동시에 라이프 사이클에 도달할 수 없다. 논리 주소 공간에 있는 사용자의 데이터는 상이한 업데이트 속도를 가진다. 일부 데이터는 빈번하게 업데이트될 필요가 있고, 일부 데이터는 장시간 변경될 필요가 없다. 따라서, WL 메커니즘이 없으면, 빈번하게 업데이트되는 데이터가 배치되어 있는 플래시 메모리 칩의 수명이 먼저 종료되고, 비교적 덜 빈번하게 변경되는 데이터가 배치되어 있는 플래시 메모리 칩은 낮은 마모도를 갖는다. 이러한 상황을 피하기 위해, WL 메커니즘은 플래시 메모리 어레이(130)에서 플래시 메모리 칩들을 비교적 동일한 마모 정도로 유지하기 위해 필요하다.
구체적으로, 마모 레벨링 모듈(120)은 주소 변환 모듈(122)과 함께 동작한다. 운영 체제(102) 내의 애플리케이션 프로그램이 동일한 논리 주소를 재기입하거나 업데이트할 때마다, 주소 변환 모듈(122)은 논리 주소를 또 다른 상이한 물리 주소에 동적으로 맵핑하고, 맵핑 관계를 특정한 "주소 맵핑 테이블"에 저장한다. 만료된 물리 주소는 "무효"로 표시되고, 후속 소거 동작을 기다린다. 마모 레벨링 모듈(120)은, 이 맵핑 프로세스에서 각각의 스토리지 칩의 프로그래밍/소거 빈도를 제어한다. 이러한 방식으로, 모든 물리적 블록이 동일한 마모 범위 내에 있고 동시에 "에이징"되도록 제어될 수 있다.
에러 체킹 및 정정 모듈(124)은 데이터 판독 동안 에러를 검출 및 정정하도록 구성된다. 데이터가 기입될 때, 스토리지 제어기(112) 내부의 에러 체킹 및 정정 모듈(124)은 데이터에 따라 ECC 서명을 생성한다. ECC 서명은 일반적으로 플래시 메모리 페이지의 마지막 부분에 있는 예비 영역(Spare Area, SA)에 저장된다. 플래시 메모리 페이지로부터 데이터가 판독될 때, 에러 체킹 및 정정 모듈(124)은 ECC 서명을 판독하고, 판독된 데이터 및 ECC 서명에 따라 데이터에 에러가 발생했는지를 결정한다. 판독된 데이터가 에러 비트를 포함하는 것으로 검출되면, 검출된 에러는 ECC 알고리즘을 이용하여 보정될 필요가 있다. ECC 알고리즘은, BCH 인코딩, LDPC 인코딩 등일 수 있다. LDPC 인코딩은 본 발명의 이 실시예에서의 솔루션을 설명하는데 이용된다. 그러나, ECC에 이용되는 인코딩 알고리즘은 본 발명의 이 실시예에서 제한되지 않는다는 것을 이해해야 한다.
폐영역 회수 모듈(126)은 플래시 메모리 블록의 "유효" 페이지의 데이터를 또 다른 데이터 블록으로 복사하고, 이전 데이터 블록의 데이터를 완전히 소거하도록 구성된다. 종래의 HDD와는 달리, 원래의 데이터는 플래시 메모리 어레이(130)에서 직접 오버라이트될 수 없다. 플래시 메모리 디바이스(108)에서, 새로운 데이터가 기입될 수 있기 전에 오래된 데이터가 소거될 필요가 있다. 플래시 메모리 어레이(130)의 경우, 폐영역 회수란, 기존의 데이터가 또 다른 플래시 메모리 위치로 이동되고 어떤 쓸모없는 데이터가 완전히 소거되는 프로세스를 말한다. 데이터는 플래시 메모리 어레이(130)에 페이지 단위로 직접 기입될 수 있지만, 플래시 메모리 어레이(130)로부터 블록 단위로 데이터가 삭제될 필요가 있다. 따라서, 쓸데없는 데이터를 소거하기 위해서는, 플래시 메모리 어레이(130)에서, 먼저 한 블록에 포함된 유용한 데이터가 또 다른 블록의 페이지에 복사될 필요가 있다. 이러한 방식으로, 원래의 블록에 포함된 쓸모없는 데이터는 블록들에서 삭제될 수 있다. 새로운 데이터가 기입될 수 있기 전에 소거가 수행될 필요가 있다.
선택사항으로서, 플래시 메모리 디바이스(108)는 트림(Trim) 기능을 추가적으로 지원한다. 트림은 ATA 명령어이며, 운영 체제(102)은 스토리지 제어기(112)에 이 명령어를 전송하여 "무효한" 주소를 점유하는 데이터를 스토리지 제어기(112)에 통보한다. 사용자가 운영 체제(102)에서 파일을 삭제할 때, 운영 체제(102)는 파일의 데이터를 실제로 삭제하지 않는다; 대신에, 운영 체제(102)는 데이터에 의해 점유된 주소를 단지 "무효"로 마킹한다. 즉, 주소들의 데이터는 이용을 위한 오버라이트될 수 있다. 그러나, 이것은 파일 시스템(104) 계층에서의 동작일 뿐이다. 플래시 메모리 디바이스(108)는, 운영 체제(102)가 플래시 메모리 디바이스(108)에 새로운 데이터가 이들 주소에 기록될 것임을 통보할 때까지 데이터가 이미 "무효"인 특정한 주소를 알지 못한다. 플래시 메모리 어레이(130)는 오버라이트를 허용하지 않으며, 기입이 수행될 수 있기 전에 소거가 수행될 필요가 있다. 기입을 수행하기 위한 "유휴" 플래시 메모리 블록을 획득하기 위해, 트림 메커니즘이 없다면, 스토리지 제어기(112)는 "삭제된" 데이터 페이지가 이미 "무효"인지를 미리 알 수 없고, 운영 체제(102)가 동일한 위치에서 데이터를 기입할 것을 요구할 때에만 어떤 데이터가 소거될 수 있는지를 안다. 따라서, 최적의 순간에 최상의 최적화가 수행될 수 없다. 결과적으로, GC의 효율이 영향을 받고, 플래시 메모리 어레이(130)의 수명이 영향을 받는다.
캐시(110)는, 시작 동안에 논리 주소로부터 물리 주소로의 맵핑에 관한 "불량 블록 테이블" 또는 "주소 맵핑 테이블" 등의 데이터를 저장하도록 구성된다. 스토리지 제어기(112)는, 불량 블록 테이블, "주소 맵핑 테이블" 등을 플래시 메모리 어레이(130)에 저장한다. 각각의 재시작 후, 스토리지 제어기(112)는, 불량 블록 테이블 및 "주소 맵핑 테이블" 등의 데이터를 플래시 메모리 어레이(130)로부터 캐시(110)에 로딩한다.
플래시 메모리 어레이(130)는 복수의 블록으로 분할될 수 있고, 각각의 블록은 복수의 페이지로 더 분할될 수 있다. 데이터는 페이지 단위로 직접 기입될 수 있고, 블록 단위로 소거될 수 있다. 새로운 데이터가 기입될 수 있기 전에 오래된 데이터가 소거될 필요가 있다.
플래시 메모리 어레이(130)는 단일-레벨 셀(Single-level cell, SLC) 또는 다중-레벨 셀(Multi-level cell, MLC)을 이용할 수 있다. 각각의 SLC 셀은 1 비트의 정보를 저장하고, 각각의 MLC 셀은 1 비트보다 많은 데이터를 저장할 수 있다. 이것은 본 발명의 이 실시예에서 제한되지 않는다.
도 1은, 예로서 시스템(100)의 참여 요소들과 참여 요소들 사이의 관계를 설명하기 위해 이용된 것일 뿐임을 이해해야 한다. 따라서, 설명된 시스템(100)은 크게 단순화되어 있다. 시스템(100)은 본 발명의 이 실시예에서 단지 일반적으로만 설명된다. 실제 이용에서, 시스템(100)은 더 많거나 더 적은 수의 컴포넌트들을 포함할 수 있다. 본 발명의 이 실시예는 시스템(100)의 구현에 관해 어떠한 제한도 부과하지 않는다.
도 2는 본 발명의 한 실시예에 따른 스토리지 제어기(200)의 하드웨어 구성을 도시하는 개략도이다. 도 2에 도시된 바와 같이, 스토리지 제어기(200)는, 프로세서(202), 메모리(204), 입력/출력 인터페이스(206), 통신 인터페이스(208), 및 버스(210)를 포함한다. 프로세서(202), 메모리(204), 입력/출력 인터페이스(206), 및 통신 인터페이스(208)는, 버스(210)를 이용하여 서로 통신하고 서로 접속된다.
프로세서(202)는 스토리지 제어기(200)의 제어 센터로서, 본 발명의 실시예에서 제공되는 기술적 솔루션을 구현하기 위해 관련된 프로그램을 실행하도록 구성된다. 프로세서(202)는, 본 발명의 실시예에서 제공되는 기술적 솔루션을 구현하기 위한 관련 프로그램을 실행하는, 범용 중앙 처리 유닛(Central Processing Unit, CPU), 마이크로프로세서, 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 또는 하나 이상의 집적 회로일 수 있다. 달리 설명되지 않는 한, 본 발명에서, 특정한 기능을 실행하도록 구성된 컴포넌트, 예를 들어 프로세서(202) 또는 메모리(204)는, 대응하는 기능을 실행하도록 범용 컴포넌트를 구성함으로써 구현되거나, 특정한 기능을 특별히 실행하는 전용 컴포넌트를 이용함으로써 구현될 수 있다. 이것은 본 발명에서 제한되지 않는다.
메모리(204)는, 판독 전용 메모리(Read Only Memory, ROM), 정적 스토리지 디바이스, 동적 스토리지 디바이스, 또는 랜덤 액세스 메모리(Random Access Memory, RAM)일 수 있다. 메모리(204)는 운영 체제 및 또 다른 애플리케이션 프로그램을 저장할 수 있다. 본 발명의 이 실시예에 제공된 기술적 솔루션이 소프트웨어 또는 펌웨어에 의해 구현될 때, 본 발명의 이 실시예에서 제공되는 기술적 솔루션을 구현하기 위한 프로그램 코드는 메모리(204)에 저장되고 프로세서(202)에 의해 실행된다. 메모리(204)는 프로세서(202)와 통합 또는 프로세서(202) 내에 통합되거나, 프로세서(202)와는 독립된 하나 이상의 스토리지 유닛일 수 있다.
프로세서(202)에 의해 실행되는 프로그램 코드는 플래시 메모리에 또는 프로세서(202)에 접속된 메모리(204)에 저장될 수 있다. 선택사항으로서, 메모리(204)는 RAM이고, 플래시 메모리에 저장된 프로그램 코드(예를 들어, 통신 모듈 또는 액세스 제어 모듈)는 프로세서(202)에 의한 실행을 위해 메모리(204)에 복사된다.
메모리(204)는 또한, 본 발명의 이 실시예에서 불량 블록 테이블 및 주소 맵핑 테이블 또는 다른 맵핑 테이블을 저장하도록 구성된다. 더 구체적으로, 시스템이 시작될 때, 스토리지 제어기(200)는, 플래시 메모리에 저장된 불량 블록 테이블 및 주소 맵핑 테이블 또는 다른 맵핑 테이블을 프로세서(202)에 의한 이용을 위해 메모리(204)에 로딩한다.
도 2에 도시된 바와 같이, 스토리지 제어기(200)의 메모리(204)는 액세스 제어 모듈을 포함한다. 프로세서(202)는 플래시 메모리 디바이스에 대한 액세스를 구현하기 위해 액세스 제어 모듈의 프로그램 코드를 실행한다.
선택사항으로서, 메모리(204)는, 도 1의 스토리지 제어기(112)에, 불량 블록 관리 모듈(118), 마모 레벨링 모듈(120), 주소 변환 모듈(122), 에러 체킹 및 정정 모듈(124) 또는 폐영역 회수 모듈(126) 중 하나 이상을 더 포함할 수 있다.
입력/출력 인터페이스(206)는 : 입력되는 데이터 및 정보를 수신하고, 동작 결과 등의 데이터를 출력하도록 구성된다.
통신 인터페이스(208)는, 스토리지 제어기(200)와 또 다른 디바이스 또는 통신 네트워크 사이의 통신을 구현하기 위해, 예를 들어 송수신기 등의 송수신기 장치를 이용할 수 있지만, 이것으로 제한되지 않는다.
버스(210)는, 스토리지 제어기(200)의 컴포넌트들(예를 들어, 프로세서(202), 메모리(204), 입력/출력 인터페이스(206), 및 통신 인터페이스(208)) 사이에서 정보를 전송하기 위한 경로를 포함할 수 있다.
도 2에 도시된 스토리지 제어기(200)에 대해서는 프로세서(202), 메모리(204), 입력/출력 인터페이스(206), 통신 인터페이스(208), 및 버스(210)만이 도시되어 있지만, 구체적인 구현 프로세스에서, 스토리지 제어기(200)는 일반 동작에 필수적인 또 다른 디바이스를 더 포함한다는 것을 본 기술분야의 통상의 기술자라면 이해해야 한다는 점에 유의해야 한다. 또한, 특정한 요구조건에 따라, 본 기술분야의 통상의 기술자라면, 스토리지 제어기(200)가 또 다른 추가적인 기능을 구현하기 위한 하드웨어 디바이스를 더 포함할 수 있다는 것을 이해해야 한다. 또한, 본 기술분야의 통상의 기술자라면, 스토리지 제어기(200)가 도 2에 도시된 모든 디바이스가 아니라 본 발명의 이 실시예를 구현하는데 필수적인 디바이스만을 포함할 수 있다는 것을 이해해야 한다.
도 2에 도시된 하드웨어 구조 및 상기 설명은 본 발명의 실시예들에서 제공되는 플래시 메모리 디바이스를 액세스하기 위한 다양한 장치 및 시스템에 적용가능하고, 본 발명의 실시예들에서 제공되는 플래시 메모리 디바이스를 액세스하기 위한 다양한 방법을 수행하기에 적합하다.
데이터는 페이지 단위로 플래시 메모리에 기입된다. 기입 동작의 시간은 주로 2개의 부분 : 데이터의 전송 시간과 데이터의 기입 시간(즉, 프로그래밍 동작)을 포함한다. 버스 상에서의 데이터 페이지의 전송 시간은 일정하며, 기입 동작의 시간은 주로 프로그래밍 동작의 시간에 의존한다. 데이터는 일반적으로 ISPP 프로그래밍 방식으로 플래시 메모리에 기입된다. 플래시 셀이 미리결정된 전압에 도달할 수 있게 하기 위해, 단차 전압에 의해 점진적으로 전압을 증가시킴으로써 각각의 회차의 프로그래밍 전압이 변경되어, 플래시 셀이 미리결정된 전압 값에 도달할 때까지 플래시 셀을 충전할 수 있고, 여기서, 단차 전압은 고정되어 있다.
구체적으로는, ISPP 프로그래밍 동작의 각각의 반복 회차는 2개의 부분 : 프로그래밍 및 검증을 포함한다. 도 3에 도시된 바와 같이, 프로그래밍 동안, 프로그래밍 전압이 플래시 셀에 인가되어, 플래시 셀에서 전하를 증가시킨다. 각각의 시간에서의 프로그래밍 전압은 소정 시간 동안 플래시 셀에 유지된다. 검증 동안, 플래시 셀이 미리결정된 값에 도달하는지를 결정하기 위해 비교적 낮은 전압이 인가된다. 플래시 셀이 미리결정된 값에 도달하면, 충전이 완료되고, 프로그래밍이 중단된다. 플래시 셀이 미리결정된 값에 도달하지 않으면, 데이터의 기입이 완료될 때까지 프로그래밍 전압이 한 단차 전압씩 증가되어 플래시 셀을 계속 충전한다.
이러한 반복 프로세스와 단차 전압 사이에는 비례 관계가 있다. 한편, 단차 전압이 더 높을 때, 미리결정된 전압 값에 도달하기 위해 더 작은 반복량이 필요하다. 따라서, 프로그래밍 시간은 단차 전압에 반비례한다. 한편, 프로그래밍 단차 전압과 에러율 사이에는 또 다른 관계가 있다. 단차 전압이 더 높을 때, 프로그래밍 정확도가 더 낮아지고, 후속해서 에러율이 더 높아진다. 단차 전압이 더 낮을 때, 프로그래밍 정확도가 더 높아지고, 후속해서 에러율이 더 낮아진다. 따라서, 기입 동작 동안 ISPP 프로그래밍을 위한 단차 전압은 후속 판독 동작 동안 데이터의 에러율에 영향을 미친다.
본 발명의 이 실시예에서, 플래시 메모리 디바이스에 관한 기입 동작의 형태는 ISPP 프로그래밍을 위한 상이한 단차 전압들에 따라 분류된다. 기입 동작은 고속 기입 및 저속 기입을 포함한다. 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다. 즉, 고속 기입의 ISPP 프로그래밍을 위한 단차 전압은 저속 기입의 ISPP 프로그래밍을 위한 단차 전압보다 크다.
더 구체적으로는, 플래시 메모리 디바이스에 관한 기입 동작의 형태는 일반 기입을 더 포함할 수 있다. 일반 기입의 기입 속도는 저속 기입의 기입 속도보다 크고 고속 기입의 기입 속도보다 작다. 즉, 일반 기입의 ISPP 프로그래밍을 위한 단차 전압은 저속 기입의 ISPP 프로그래밍을 위한 단차 전압보다 크고 고속 기입의 ISPP 프로그래밍을 위한 단차 전압보다 작다.
여기서, "고속 기입"은 플래시 메모리 디바이스에 의해 지원되는 고속 기입 동작일 수 있고, "저속 기입"은 플래시 메모리 디바이스에 의해 지원되는 저속 기입 동작일 수 있으며, "일반 기입"은 그 속도가 "저속 기입" 속도와 "고속 기입" 속도 사이에 속하는 기입 동작이다. 본 발명의 이 실시예에서, 플래시 메모리 디바이스는 적어도 2가지 유형의 기입 동작의 속도를 지원한다. 기입 동작의 속도는 일반적으로 프로그래밍 단차 전압에 의해 결정된다. 높은 프로그래밍 단차 전압은 고속 기입 동작에 대응하고, 낮은 프로그래밍 단차 전압은 저속 기입 동작에 대응한다. 이 실시예에서의 고속 기입은 플래시 메모리 디바이스의 기입 동작들의 속도들 중 최고 속도 또는 두 번째 최고 속도에 대응하고, 이 실시예에서의 저속 기입은 플래시 메모리 디바이스의 기입 동작들의 속도들 중 최저 속도 또는 두 번째 최저 속도에 대응한다. 예를 들어, 2가지 유형의 기입 동작의 속도를 지원하는 플래시 메모리 디바이스의 경우, 고속 기입은 고속에서의 기입 동작이고 저속 기입은 저속에서의 기입 동작이다. 2가지보다 많은 유형의 기입 동작을 지원하는 플래시 메모리 디바이스의 경우, 고속 기입은, 최고 속도, 두 번째 최고 속도, 또는 비교적 높은 속도에서의 기입 동작이고, 저속 기입은, 최저 속도, 두 번째 최저 속도, 또는 비교적 낮은 속도에서의 기입 동작이다.
판독 동작의 시간은 주로 2개의 부분 : 데이터의 판독 시간과 데이터의 전송 시간을 포함한다. 판독 시간과 임계 전압의 양 사이에는 포지티브 상관관계가 있고, 전송 시간과 전송된 데이터의 양 사이에는 포지티브 상관관계가 있다. N개의 임계 전압이 존재하고, 플래시 메모리의 플래시 셀의 전압 값은 N+1개의 영역으로 나누면, N+1개의 전압 영역을 표현하기 위해서는 ceil(Log2(N+1)) 비트가 필요하다고 가정된다. 판독 시간과 N 사이에는 포지티브 상관관계가 있고, 전송 시간과 ceil(Log2(N+1)) 사이에는 포지티브 상관관계가 있으며, ceil()은 올림(rounding up)을 나타낸다.
체크 코드로서 LDPC 부호가 이용되고, 플래시 셀 유닛에 2-비트 데이터가 저장되는 예가 설명에 이용된다. 판독 동작 방식의 경우, 일반적으로, LDPC 경 판정 디코딩이 먼저 이용된다. 도 4는 LDPC 경 판정을 위한 임계 전압의 분포를 도시한다. 2개의 인접한 상태 사이에는 단 하나의 임계 전압이 있고, 4개의 상태 사이에 총 3개의 임계 전압이 있다. 판독 동작 동안, 판독되는 데이터 페이지의 각각의 플래시 셀 상의 전압이 3개의 임계 전압과 비교되어, 플래시 셀 상의 전압의 상태를 결정한다. 단지 3개의 임계 전압이 있기 때문에, 판독 시간은 비교적 짧다. 플래시 셀의 전압은 4가지 상태로 나누어지기 때문에, 정보를 기록하기 위해 ceil(Log2(4)) = 2 비트가 필요하며 전송 시간은 비교적 짧다.
체크가 성공하면, 판독이 성공한다. 대조적으로, 체크가 실패하면, 연 판정이 디코딩에 이용된다. 도 5는 LDPC 연 판정을 위한 임계 전압의 분포를 도시한다. 인접한 두 상태 사이에는 복수의 임계 전압이 있다. 2개의 상태 사이에 7개의 임계 전압이 있는 예가 도 5의 설명에 이용된다. 이 경우, 총 4개의 상태에 대해 21개의 임계 전압이 존재하고, 플래시 셀 상의 전압은 22개의 영역으로 분할된다. 판독 동작 동안, 판독되는 데이터 페이지의 각각의 플래시 셀의 전압이 21개의 임계 전압과 비교되어, 플래시 셀 상의 전압의 상태를 결정한다. 이 경우, 판독 동작의 판독 시간은 비교적 길다. 또한, 플래시 셀의 전압은 22개의 상태로 분할되기 때문에, 정보를 기록하기 위해서는 ceil(Log2(22)) = 5 비트가 필요하고, 전송 시간 또한 비교적 길다. 디코딩이 여전히 실패하면, 연 판정을 위해, 정보가 정확하게 디코딩될 때까지, 인접한 상태들 사이의 임계 전압의 양이 점진적으로 증가하여 판독 정확도를 향상시킨다.
연 판정을 위한 임계 전압의 분포는 도 5의 예로 제한되지 않는다는 것을 이해해야 한다. 2개의 인접한 상태들 사이의 임계 전압의 양은 가변적이며, LDPC 디코딩을 위한 데이터의 용인가능한 에러율을 결정한다. 임계 전압의 양이 더 클 때, 정확한 디코딩을 위한 용인가능한 에러율이 더 높다.
상기의 설명으로부터, 저속 기입의 단차 전압은 비교적 낮고, 기입 데이터의 정밀도가 높다는 것을 알 수 있다. 판독 동작이 수행될 때, 플래시 메모리로부터 데이터를 판독하는 정확성은 더 높고, 데이터는 비교적 용이하게 성공할 수 있지만, 기입 속도는 낮다. 고속 기입을 위한 단차 전압은 비교적 높고, 기입 속도는 높다. 그러나, 데이터를 기입하는 정확성은 비교적 낮다. 판독 동작이 수행될 때, 플래시 메모리로부터 데이터를 판독하는 정확성은 비교적 낮고, 플래시 메모리 내의 데이터는 판독의 복수 회차 또는 반복 후에만 정확하게 판독될 수 있다.
본 발명의 이 실시예에서, 인접한 상태들 사이의 상이한 임계 전압의 양에 따라, 플래시 메모리에 관한 판독 동작의 형태는 고속 판독 및 저속 판독을 포함한다. 고속 판독의 판독 속도는 저속 판독의 판독 속도보다 크다. 즉, 고속 판독을 위한 임계 전압의 양은 저속 판독을 위한 임계 전압의 양보다 적다.
더 구체적으로는, 플래시 메모리에 대한 판독 동작의 형태는 일반 판독을 더 포함할 수 있다. 일반 판독의 판독 속도는 저속 판독의 판독 속도보다 크고 고속 판독의 판독 속도보다 작다. 즉, 일반 판독을 위한 임계 전압의 양은 저속 판독을 위한 임계 전압의 양보다 적고 고속 판독을 위한 임계 전압의 양보다 크다.
본 발명의 이 실시예에서, 플래시 메모리 디바이스는 적어도 2가지 유형의 판독 동작의 속도를 지원한다. 판독 동작의 속도는 일반적으로 인접한 상태들 사이의 임계 전압의 양에 의해 결정된다. 인접한 상태들 사이의 소량의 임계 전압은 고속 판독 동작에 대응하고, 인접한 상태들 사이의 많은 양의 임계 전압은 저속 판독 동작에 대응한다. 이 실시예에서의 고속 판독은 플래시 메모리 디바이스에 관한 판독 동작 중 최고 또는 두 번째로 최고 속도에 대응하고, 이 실시예에서의 저속 판독은 플래시 메모리 디바이스에 관한 판독 동작의 속도 중 최저 속도 또는 두 번째 최저 속도에 대응한다 . 예를 들어, 2가지 유형의 판독 동작의 속도를 지원하는 플래시 메모리 디바이스의 경우, 고속 판독은 고속에서의 판독 동작이고, 저속 판독은 저속에서의 판독 동작이다. 2가지보다 많은 유형의 판독 동작을 지원하는 플래시 메모리 디바이스의 경우, 고속 판독은, 최고 속도, 두 번째 최고 속도, 또는 비교적 높은 속도에서의 판독 동작이고, 저속 판독은, 최저 속도, 두 번째 최저 속도, 또는 비교적 낮은 속도에서의 판독 동작이다.
본 발명의 이 실시예에 따르면, 복수의 데이터에 대한 액세스 거동을 분석함으로써, 플래시 메모리에 대한 액세스가 특별한 특성을 갖는다는 것을 알 수 있다. 액세스는 주로 다음 3가지 특성을 갖는다 :
(1) 판독 전용 특성. 소정 기간 내에서, 데이터 페이지에 대한 거의 모든 액세스는 판독 액세스이다. 이 경우, 이들 판독 액세스는 판독 전용 특성을 갖는다. 예를 들어, 미디어 파일이 기입된 후에, 일반적으로, 미디어 파일에 대한 기입 액세스가 더 이상 발생하지 않고 미디어 파일은 복수회 판독된다.
(2) 기입 전용 특성. 소정 기간 내에서, 데이터 페이지에 대한 거의 모든 액세스는 기입 액세스이다. 이 경우, 이들 기입 액세스는 기입 전용 특성을 갖는다. 예를 들어, 로그 파일과 메타데이터는 대개 반복적으로 기입되고 거의 판독되지 않는다.
(3) 크로스 액세스 특성. 소정 기간 내에서, 데이터 페이지에 대한 판독 액세스와 기입 액세스 양쪽 모두가 있다. 이 경우, 이들 액세스는 교차 액세스 특성을 갖는다.
플래시 메모리는, 신속하게 기입된 데이터가 저속으로 판독되고 저속으로 기입된 데이터가 신속하게 판독되는 특성을 갖는다. 이러한 특성에 기초하여, 본 발명의 이 실시예에서, 플래시 메모리 페이지에 대한 액세스의 특성에 따라 플래시 메모리 페이지에 대한 기입 속도가 조절되어, 플래시 메모리의 판독 및 기입 성능을 향상시킨다. 구체적인 방법은 다음의 실시예에서 설명된다.
도 6은 본 발명의 한 실시예에 따른 플래시 메모리 디바이스를 액세스하기 위한 방법(600)의 플로차트이다. 플래시 메모리 디바이스에 대한 액세스 유형은 기입 동작 및 판독 동작을 포함한다. 플래시 메모리 디바이스에 관한 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하고, 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다. 플래시 메모리 디바이스에 관한 판독 동작의 형태는 고속 판독 및 저속 판독을 포함하고, 고속 판독의 판독 속도는 저속 판독의 판독 속도보다 크다. 도 6에 도시된 바와 같이, 이 방법(600)은 다음의 단계들을 포함한다.
S602. 스토리지 제어기는 운영 체제로부터 액세스 요청을 수신한다.
액세스 요청은 액세스대상 스토리지 영역을 나타낸다. 구체적으로는, 액세스 요청은 액세스대상 스토리지 영역의 주소 정보를 포함한다. 주소 정보는 액세스대상 스토리지 영역의 논리 주소이다. 본 발명의 이 실시예에서 액세스대상 스토리지 영역은 논리 주소에 의해 표시되는 스토리지 영역을 지칭한다. 원래의 데이터는 플래시 메모리의 플래시 메모리 페이지에서 직접 오버라이트될 수 없다. 새로운 데이터가 기입될 수 있기 전에 오래된 데이터가 소거될 필요가 있다. 따라서, 본 발명의 이 실시예에서의 주소 정보는 액세스대상 스토리지 영역의 논리 주소이고, 액세스대상 스토리지 영역은 논리 주소와 상관되어 있다. 플래시 메모리는 덮어 오버라이트될 수 없기 때문에, 동일한 논리 주소에 대응하는 실제의 물리 주소는 변화하는 상태에 있을 수 있다.
S604. 스토리지 제어기는 액세스 요청의 액세스 유형을 결정하고, 플래시 메모리 디바이스에의 액세스 유형은 기입 동작 및 판독 동작을 포함하며; 액세스 요청의 액세스 유형이 기입 동작이라면, 스토리지 제어기는 단계 S606을 실행하고, 또는 액세스 요청의 액세스 유형이 판독 동작이라면, 스토리지 제어기는 단계 S616을 실행한다.
S606. 스토리지 제어기는 액세스대상 스토리지 영역의 이력 액세스 정보가 존재하는지를 결정하고; 액세스대상 스토리지 영역의 이력 액세스 정보가 존재하지 않으면, 스토리지 제어기는 단계 S608을 수행하거나, 액세스대상 스토리지 영역의 이력 액세스 정보가 존재하면, 스토리지 제어기는 단계 S610을 수행한다.
스토리지 제어기는 액세스대상 스토리지 영역의 이력 액세스 정보를 찾기 위해 이력 액세스 레코드를 검색한다. 이력 액세스 정보는 액세스대상 스토리지 영역의 이력 액세스 유형을 포함하고, 이력 액세스 유형은 현재 액세스 요청 이전의 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형이다.
구체적으로는, 이력 액세스 정보는 액세스대상 스토리지 영역에 대한 최종 이력 액세스 유형을 기록할 수 있다. 예를 들어, 하나의 비트가 구별을 위해 이용될 수 있다 : "0"은 마지막 이력 액세스 유형이 기입 동작임을 나타내고, "1"은 마지막 이력 액세스 동작 유형이 판독 동작임을 나타낸다.
선택사항으로서, 이력 액세스 정보는 액세스대상 스토리지 영역에 대한 마지막 N개의 이력 액세스 유형을 기록할 수 있으며, 여기서, N은 1보다 큰 양의 정수이다.
예를 들어, N이 2일 때, 2 비트가 구분을 위해 이용될 수 있다 : "00"은 마지막 2개의 이력 액세스 유형이 모두 기입 동작임을 나타낸다; "01"은 마지막 2개의 이력 액세스 유형이 순차적으로 기입 동작과 판독 동작임을 나타낸다; "10"은 마지막 2개의 이력 액세스 유형이 순차적으로 판독 동작과 기입 동작임을 나타낸다; "11"은 마지막 2개의 이력 액세스 유형이 모두 판독 동작임을 나타낸다. N이 또 다른 양의 정수일 때, 유사하게, N 비트가 구분을 위해 이용될 수 있다.
본 발명의 이 실시예의 예에서는 "0"은 기입 동작을 나타내는데 이용되고 "1"은 판독 동작을 나타내는데 이용된다는 것을 이해해야 한다. 실제의 동작에서, 또 다른 표시 방법이 이력 액세스 유형을 기록하는데 이용될 수 있다. 이것은 본 발명의 이 실시예에서 제한되지 않는다.
구체적인 구현 프로세스에서, 이력 액세스 정보는 액세스대상 스토리지 영역의 주소 정보와 이력 액세스 유형 사이의 대응관계를 기록한다. 이력 액세스 정보는 논리 주소로부터 물리 주소로의 맵핑에 관한 주소 맵핑 테이블에 기록될 수 있다. 이러한 방식으로, 액세스대상 스토리지 영역의 주소 정보를 기록하기 위한 공간의 과도한 소비가 회피될 수 있다. 물론, 이력 액세스 정보는 별도로 기록될 수도 있다. 이력 액세스 정보의 형태는 본 발명의 이 실시예에서 제한되지 않는다.
구체적으로는, 스토리지 제어기는 이력 액세스 정보 테이블을 유지한다. 이력 액세스 정보 테이블은 복수의 유효 주소 정보에 대응하는 이력 액세스 정보 엔트리를 포함하고, 스토리지 영역의 주소 정보와 이력 액세스 유형 사이의 대응관계는 이력 액세스 정보 엔트리에 저장된다.
구체적인 구현 프로세스에서, 이력 액세스 정보는 플래시 메모리 페이지의 세분성(granularity)에 기초하여 기록될 수 있거나, 또는 더 작은 세분성에 기초하여 이력 액세스 정보를 기록하기 위해 또 다른 알고리즘이 이용될 수 있다. 이것은 본 발명의 이 실시예에서 제한되지 않는다.
도 7은 본 발명의 한 실시예에 따른 이력 액세스 정보 엔트리의 개략도이다. 이력 액세스 정보 엔트리는 액세스대상 스토리지 영역의 주소 정보 및 이력 액세스 유형을 기록한다.
S608. 스토리지 제어기는 액세스대상 스토리지 영역의 이력 액세스 정보를 기록한다.
스토리지 제어기가 이력 액세스 레코드에서 액세스대상 스토리지 영역의 이력 액세스 정보를 찾지 못한다면, 더 구체적으로는, 스토리지 제어기가, 이력 액세스 정보 테이블에서, 주소 정보에 대응하는 이력 액세스 정보 엔트리를 발견하지 못한다면, 이것은 운영 체제가 액세스대상 스토리지 영역에 처음으로 기재한다는 것을 나타낸다. 이 경우, 스토리지 제어기는 기입대상 데이터를 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 정보를 이력 액세스 레코드에 기록한다. 더 구체적으로는, 스토리지 제어기는 이력 액세스 정보 테이블에 이력 액세스 정보 엔트리를 생성하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 기입 동작으로 설정한다.
여기서, 첫 번째 기입이란, 액세스대상 스토리지 영역에 대한 첫회 기입 액세스 요청을 말하고, "데이터 무효" 상태로부터 "데이터 유효" 상태에의 액세스대상 스토리지 영역에 대한 첫회 기입이다. 첫회 기입 동안에, 액세스대상 스토리지 영역에 대응하는 이력 액세스 정보 엔트리가 생성되고, 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작으로서 기록된다.
선택사항으로서, 첫회 기입 동안, 스토리지 제어기는 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하고, 여기서, 기입 동작의 형태는 저속 기입 및 고속 기입을 포함한다. 데이터는 처음으로 기입되고, 데이터에 대한 후속 액세스의 특성은 기입 동안에 알려지지 않는다. 즉, 데이터가, 판독 전용 특성, 기입 전용 특성, 또는 교차 액세스 특성을 갖는지는 알려지지 않는다. 따라서, 첫회 기입 동안에, 기입대상 데이터의 특성에 관계없이, 기입대상 데이터를 기입하기 위해 저속 기입의 형태가 이용될 수 있다.
기입 동작의 형태는 일반 기입을 더 포함할 수 있다. 첫회 기입 동안에는 일반 기입 또는 고속 기입의 형태가 이용될 수도 있지만, 데이터는 판독 전용 특성을 가질 수 있고, 이 경우에, 후속해서, 데이터에 관한 판독 동작이 악영향을 받는다. 본 발명의 이 실시예에서는 데이터의 첫회 기입의 형태가 제한되지 않는다.
S610. 스토리지 제어기는 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작인지를 결정하고; 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작이면, 스토리지 제어기는 단계 S612를 수행하거나, 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작이 아니라면, 스토리지 제어기는 단계 S614를 수행한다.
구체적으로는, 스토리지 제어기는, 액세스대상 스토리지 영역에 대응하는 이력 액세스 정보 엔트리에 기록되어 있는 이력 액세스 유형이 기입 동작인지를 결정한다. 이력 액세스 유형이 기입 동작이라는 것은 모든 이력 액세스 유형이 기입 동작이라는 것을 의미한다. 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작이라면, 현재 액세스 요청의 액세스 유형도 역시 기입 동작이기 때문에, 이것은 액세스대상 스토리지 영역의 데이터는 기입 전용 특성을 갖는다는 것을 나타낸다. 모든 이력 액세스 유형이 기입 동작인 것은 아니라면, 이력 액세스 유형은 기입 동작이 아니고, 현재 액세스 요청의 액세스 유형이 기입 동작이기 때문에, 이것은, 액세스대상 스토리지 영역에 저장된 데이터 영역은 교차 액세스 특성을 갖는다는 것을 나타낸다.
S612. 스토리지 제어기는 기입대상 데이터를 고속 기입의 형태로 액세스대상 스토리지 영역에 기입한다.
액세스대상 스토리지 영역의 이력 액세스 유형은 기입 동작이고, 현재 액세스 요청의 유형은 기입 동작이기 때문에, 이것은, 액세스대상 스토리지 영역의 데이터는 기입 전용 특성을 갖고, 판독 동작은 액세스대상 스토리지 영역의 데이터에 대해서는 거의 수행되지 않는다는 것을 나타낸다. 기입 동작에 의해 야기되는 소비를 피하기 위해, 기입대상 데이터는 고속 기입의 형태로 기입된다.
이력 액세스 유형은 기입 동작이고, 현재 액세스 요청의 액세스 유형도 역시 기입 동작이기 때문에, 현재 액세스 요청은 이력 액세스 유형을 변경하지 않으며, 이력 액세스 정보는 업데이트되지 않을 수 있어서, 이력 액세스 정보 엔트리의 이력 액세스 유형은 변경되지 않는다.
구체적인 구현 프로세스에서는, 플래시 메모리에서 원래의 데이터는 오버라이트될 수 없기 때문에, 주소 정보에 의해 표시된 액세스대상 스토리지 영역에 관한 기입 동작 전에, 스토리지 제어기는 먼저, 논리 주소로부터 물리 주소로의 맵핑에 관한 주소 맵핑 테이블을 수정하고, 논리 주소를 새로운 물리 주소로 방향전환한 다음, 기입대상 데이터를 새로운 물리 주소에 기입한다. 스토리지 제어기는 원래의 물리 주소에 있는 데이터를 "무효" 상태로 설정한다. 후속해서, 폐영역 회수 메커니즘은, 원래의 물리 주소에서 기입 동작이 수행될 수 있기 전에 원래의 물리 주소에 있는 데이터를 소거할 필요가 있다.
S614. 스토리지 제어기는 액세스대상 스토리지 영역에 관한 기입 동작을 일반 기입의 형태로 수행하고, 액세스대상 스토리지 영역의 이력 액세스 정보를 업데이트한다.
이력 액세스 유형은 기입 동작이 아니기 때문에, 이것은 주소 정보에 의해 표시된 액세스대상 스토리지 영역이 크로스 액세스 특성을 갖는다는 것을 나타낸다. 이 경우, 액세스대상 스토리지 영역에 관해 기입 동작이 일반 기입의 형태로 수행되어, 판독 비용과 기입 비용의 균형을 달성한다.
선택사항으로서, 단계 S614에서, 스토리지 제어기는 또한, 액세스대상 스토리지 영역에 관한 기입 동작을 저속 기입 또는 고속 기입의 형태로 수행할 수 있다. 그러나, 저속 기입을 이용하기 위해서는 비교적 높은 기입 비용이 요구되고, 고속 기입을 이용하기 위해서는 비교적 높은 판독 비용이 요구된다.
이력 액세스 유형이 기입 동작이 아니고, 현재 액세스 요청의 액세스 유형이 기입 동작이기 때문에, 이력 액세스 유형은 업데이트될 필요가 있다. 마지막 이력 액세스 유형을 기록하기 위해 하나의 비트만 이용된다면, 이력 액세스 유형은 기입 동작으로 업데이트될 필요만 있다. 마지막 N개의 이력 액세스 유형이 기록된다면, 실제 상황에 따라, 이력 액세스 유형은 "시프팅" 방식으로 업데이트될 수 있다. 예를 들어, N이 2이고 이력 액세스 유형의 마크가 "11"일 때, 이것은 마지막 2개의 이력 액세스 유형이 모두 판독 동작임을 나타낸다("0"은 기입 동작을 나타내는데 이용되고, "1"은 판독 동작을 나타내는데 이용됨). 현재 동작은 "0"으로 표시되기 때문에, "11"만이 "10"으로 수정될 필요가 있다.
S616. 스토리지 제어기는 액세스대상 스토리지 영역에 관한 판독 동작을 수행한다.
우선, 액세스대상 스토리지 영역에 관해 판독 동작이 고속 판독의 방식으로 수행된다. 예를 들어, 경 판정이 이용되거나, 인접한 상태들 사이의 비교적 소량의 임계 전압을 갖는 연 판정이 이용될 수 있다. 디코딩이 성공하면, 판독 동작이 종료된다. 디코딩이 실패하면, 판독 동작의 속도가 감소되어 판독 동작의 정확도를 증가시킨다; 판독이 다시 수행되고, 디코딩이 수행된다. 예를 들어, 경 판정은 연 판정으로 변경되거나, 연 판정의 인접 상태들 사이의 임계 전압의 양이 증가될 수 있다.
구체적으로, 스토리지 제어기는 LDPC 코드를 체크 코드로 이용할 수 있고, 먼저 판독 동작에 대해 LDPC 경 판정 디코딩이 이용될 수 있다. 체크가 성공하면, 판독 동작이 성공한다. 대조적으로, 체크가 실패하면, 디코딩은 실패하고, 디코딩에 대해 연 판정이 이용된다. 디코딩이 여전히 실패하면, 정보가 정확하게 디코딩될 때까지, 연 판정의 인접한 상태들 사이의 임계 전압의 양이 점진적으로 증가된다.
본 발명의 이 실시예에서의 상기 설명은 설명을 위한 예일 뿐이라는 것을 이해해야 한다. 판독 동작의 형태 및 이용된 ECC 인코딩은 본 발명의 이 실시예에서 제한되지 않는다.
S618. 스토리지 제어기는 액세스대상 스토리지 영역의 이력 액세스 유형이 판독 동작인지를 결정하고; 액세스대상 스토리지 영역의 이력 액세스 유형이 판독 동작이면, 스토리지 제어기는 단계 S622를 수행하거나, 액세스대상 스토리지 영역의 이력 액세스 유형이 판독 동작이 아니라면, 스토리지 제어기는 단계 S620을 수행한다.
구체적으로는, 스토리지 제어기는, 액세스대상 스토리지 영역에 대응하는 이력 액세스 정보 엔트리에 기록되어 있는 이력 액세스 유형이 판독 동작인지를 결정한다. 이력 액세스 유형이 판독 동작이라는 것은 모든 이력 액세스 유형이 판독 동작이라는 것을 의미한다. 이력 액세스 유형이 판독 동작이라면, 현재 액세스 요청의 유형도 판독 동작이기 때문에, 이것은 주소 정보에 의해 표시되는 액세스대상 스토리지 영역이 판독 전용 특성을 가지고 있다는 것을 나타낸다. 모든 이력 액세스 유형이 판독 동작인 것은 아니라면, 이력 액세스 유형은 판독 동작이 아니며, 이것은 주소 정보에 의해 표시되는 액세스대상 스토리지 영역이 교차 액세스 특성을 가지고 있다는 것을 나타낸다.
S620. 스토리지 제어기는 이력 액세스 정보를 업데이트한다.
이력 액세스 유형이 판독 동작이 아니고, 현재 액세스 요청의 액세스 유형이 판독 동작이기 때문에, 이력 액세스 유형은 업데이트될 필요가 있다. 마지막 이력 액세스 유형을 기록하기 위해 하나의 비트만 이용된다면, 이력 액세스 유형은 판독 동작으로 업데이트될 필요만 있다. 마지막 N개의 이력 액세스 유형이 기록된다면, 실제 상황에 따라, 이력 액세스 유형은 "시프팅" 방식으로 업데이트될 수 있다. 예를 들어, N이 2이고 이력 액세스 유형의 마크가 "00"일 때, 이것은 마지막 2개의 이력 액세스 유형이 모두 기입 동작임을 나타낸다("0"은 기입 동작을 나타내는데 이용되고, "1"은 판독 동작을 나타내는데 이용됨). 현재 동작은 "1"으로 표시되기 때문에, "00"만이 "01"으로 수정될 필요가 있다.
S622. 스토리지 제어기는 고속 판독이 이용되는 판독 동작 프로세스에서 디코딩이 실패했는지를 결정한다; 디코딩이 실패하면, 스토리지 제어기는 단계 S624를 수행하고, 디코딩이 성공하면, 절차는 종료된다.
액세스대상 스토리지 영역의 이력 액세스 유형은 판독 동작이고, 현재 액세스 요청의 유형은 판독 동작이기 때문에, 이것은, 주소 정보에 의해 표시된 액세스대상 스토리지 영역은 판독 전용 특성을 가지며 액세스대상 스토리지 영역에 대한 액세스는 대부분 판독 동작임을 나타낸다. 스토리지 제어기에 의해 고속 판독의 형태의 판독이 실패할 때, 이것은 액세스대상 스토리지 영역에 저장된 데이터가 낮은 정확도를 가진다는 것을 나타낸다.
S624. 스토리지 제어기는 액세스대상 스토리지 영역에 관한 재기입 동작을 저속 기입의 형태로 수행한다.
액세스대상 스토리지 영역의 데이터가 판독 전용 특성을 갖고, 액세스대상 스토리지 영역에 대한 고속 판독을 이용한 디코딩이 실패한 것으로 검출되면, 스토리지 제어기는 액세스대상 스토리지 영역에 관한 재기입 동작을 저속 기입의 형태로 수행하여, 액세스대상 스토리지 영역에 관한 후속 판독 동작의 속도를 향상시킨다. 즉, 고속 판독을 이용한 디코딩이 실패하고 이력 액세스 유형이 판독 동작일 때, 액세스대상 스토리지 영역에 저장된 데이터는 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입된다.
원래의 데이터는 플래시 메모리의 플래시 메모리 페이지에 직접 오버라이트될 수 없기 때문에, 새로운 데이터가 기입될 수 있기 전에 오래된 데이터가 소거될 필요가 있다. 여기서의 재기입 동작은 논리 주소에서의 재기입을 지칭한다. 스토리지 제어기는, 논리 주소가 새로운 이용가능한 물리 주소를 가리키도록 논리 주소로부터 물리 주소로의 주소 맵핑 관계를 수정하고, 새로운 물리 주소에 데이터를 기입한다. 원래의 물리 주소는 "무효"로서 마킹되고, 원래의 물리 주소에 있는 데이터가 후속해서 소거된 후에만 재사용할 수 있다.
선택사항으로서, 본 발명의 이 실시예의 또 다른 가능한 구현에서, 액세스대상 스토리지 영역의 데이터가 판독 전용 특성을 갖는다면, 판독 동작 동안 디코딩의 비트 에러율이 미리설정된 임계값을 초과할 때, 액세스대상 스토리지 영역에 저장된 데이터는 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입된다.
플래시 메모리에 관한 일반 액세스 동작의 차단을 피하기 위해서, 스토리지 제어기는 액세스대상 스토리지 영역의 주소 정보를 재기입 큐에 저장할 수 있다. 플래시 메모리가 유휴 상태일 때, 스토리지 제어기는 재기입 큐에 포함된 주소 정보에 따라 액세스대상 스토리지 영역으로부터 데이터를 판독하고, 판독된 데이터를 저속 기입의 형태의 액세스대상 스토리지 영역에 재기입할 수 있다.
구체적으로, 재기입될 필요가 있는 주소 정보는 LRU(Least Recently Used) 링크된 목록으로 편성될 수 있고, LRU 링크된 목록은 캐시에 저장될 수 있다. 스토리지 제어기가 시스템이 유휴 상태임을 검출할 때, 스토리지 제어기는 캐시로부터 LRU 링크된 목록을 판독하고, LRU 링크된 목록으로부터 주소 정보를 획득하며, 대응하는 주소 정보로부터, 재기입될 필요가 있는 데이터를 판독하고, 기입 동작에 대한 단차 전압을 조정하며, 재기입대상 데이터를 저속 기입의 형태로 플래시 메모리에 재기입하고, 재기입 큐로부터 논리 주소를 삭제한다.
LRU 링크된 목록의 선두에 있는 데이터, 즉, 링크된 목록에 가장 최근에 추가된 데이터 또는 마지막 시간에 액세스된 데이터가 우선적으로 재기입될 수 있다. 링크된 목록에 기록된 데이터가 재기입 전에 호스트의 기입 액세스에 의해 업데이트되었을 때, 데이터의 주소 정보는 재기입을 수행하지 않고 링크된 목록으로부터 직접 삭제될 수 있다.
선택사항으로서, 판독 동작이 성공한 후에, 스토리지 제어기는 또한, 성공적으로 판독된 데이터에 따라 액세스대상 스토리지 영역에 관한 재기입 동작을 직접 수행할 수 있다. 이것은 데이터의 복수회 판독을 피하지만, 플래시 메모리에 관한 일반 액세스 동작을 차단할 수 있다.
액세스대상 스토리지 영역 내의 데이터가 무효라고 결정할 때, 스토리지 제어기는 액세스대상 스토리지 영역에 대응하는 이력 액세스 정보를 삭제한다. 예를 들어, 스토리지 제어기는 운영 체제로부터 삭제 통보 메시지를 수신할 수 있고, 여기서, 삭제 통보 메시지는 액세스대상 스토리지 영역의 데이터가 이미 무효임을 나타내는데 이용된다. 이 경우, 스토리지 제어기는 액세스대상 스토리지 영역의 이력 액세스 정보 엔트리를 삭제하고, 액세스대상 스토리지 영역은 유효 상태로부터 무효 상태로 변경된다.
구체적으로는, 플래시 메모리 디바이스가 트림 기능을 지원한다면, 스토리지 제어기는 트림 명령어를 더 수신할 수 있다. 트림 명령어는 주소 정보를 운반하여 주소 정보의 데이터가 운영 체제에 의해 삭제되었음을 나타낸다. 이 경우, 스토리지 제어기는 이력 액세스 정보 테이블로부터 주소 정보에 대응하는 이력 액세스 정보 엔트리를 삭제하고, 주소 정보에 대응하는 물리 블록 주소의 데이터를 "무효"로 마킹하여 후속 소거 동작을 기다릴 수 있다.
선택사항으로서, 이력 액세스 정보는, 기입 동작의 속도를 상세히 기록하는데 이용되는 기입 속도 마크를 더 포함한다. 이 경우에, 스토리지 제어기는 기입 동작의 속도와 판독 동작의 속도 사이의 대응관계를 더 설정할 수 있다. 따라서, 크로스 액세스 시나리오에서, 스토리지 제어기는 기입 속도 마크에 따라 액세스대상 스토리지 영역에 관한 판독 동작을 수행한다. 고속 기입은 저속 판독에 대응하고 저속 기입은 고속 판독에 대응한다.
방법(600)은 플래시 메모리 디바이스에 액세스하기 위한 방법을 설명하기 위한 예일 뿐이라는 것을 이해해야 한다. 특정한 단계들은 특정한 순서로 수행되지 않거나 결합될 수 있다. 본 발명에서의 단계들의 시퀀스 번호는 솔루션의 절차를 더욱 명확하게 설명하기 위한 것일 뿐이며, 단계들이 수행되는 순서를 제한하지 않는다.
본 발명의 이 실시예에 개시된 기술적 솔루션에 따르면, 데이터의 액세스 특성에 기초하여, 데이터는 3가지 유형 : 판독 전용 데이터, 기입 전용 데이터, 및 교차 액세스 데이터로 분류되고, 3가지 유형의 데이터는 이력 액세스 유형을 이용하여 서로 구별된다. 따라서, 판독 전용 특성을 갖는 데이터에 대한 속도가 조절되고, 고속 판독을 달성하기 위해 저속 기입이 수행되므로, 판독 성능이 크게 향상되면서 기입 성능은 거의 영향받지 않는다. 기입 전용 특성을 갖는 데이터에 대한 속도가 조절되고, 고속 기입이 수행되므로, 기입 성능이 크게 향상되면서 판독 성능은 거의 영향받지 않는다. 또한, 교차 액세스 특성을 갖는 데이터에 대한 속도가 역시 조정될 수 있고, 일반 기입이 수행됨으로써, 판독 속도와 기입 속도 사이의 균형을 달성한다.
도 8은 본 발명의 한 실시예에 따른 플래시 메모리 디바이스를 액세스하기 위한 방법(800)의 플로차트이다. 이력 액세스 정보는 기입 속도 마크를 더 포함한다. 기입 속도 마크는 기입 동작의 형태를 기록하는데 이용되어, 액세스대상 스토리지 영역에 저장된 데이터가 저속 기입의 형태로 기입되어 있는지를 나타낸다.
구체적으로는, 스토리지 제어기는, 1 비트의 기입 속도 마크를 이용함으로써, 데이터가 저속 기입의 형태로 기입되어 있는지를 기록할 수 있다. 예를 들어, "0"은 데이터가 저속 기입의 형태로 기입되어 있다는 것을 나타내고, "1"은 데이터가 저속 기입의 형태로 데이터가 기입되어 있지 않다는 것을 나타낸다.
또한, 스토리지 제어기는 기입 동작의 속도를 상세히 기록할 수도 있다. 기입 동작의 속도가 M개 레벨로 분류된다면, 기입 동작의 속도를 기록하기 위해 전체적으로 ceil(Log2M) 비트의 기입 속도 마크가 필요하다. 예를 들어, 기입 동작의 속도가 3개의 레벨 : 저속 기입, 일반 기입, 및 고속 기입으로 분류된다면, 기입 동작의 속도를 기록하기 위해 ceil(Log2 3) = 2 비트가 필요하다. 예를 들어, "00"은 저속 기입을 나타내는데 이용되고, "01"은 일반 기입을 나타내는데 이용되며, "10"은 고속 기입을 나타내는데 이용되고, "11"은 보유된 비트로서 이용된다.
도 9는 본 발명의 한 실시예에 따른 이력 액세스 정보 엔트리의 개략도이다. 이력 액세스 정보 엔트리는 액세스대상 스토리지 영역에 대응하는 이력 액세스 정보를 기록한다.
도 8에 도시된 바와 같이, 방법(800)은 다음과 같은 단계들을 포함한다.
S802 내지 S814의 피쳐 설명에 대해, 단계 S602 내지 S614를 참조한다. 또한, 기입 동작을 수행할 때, 스토리지 제어기는 또한, 기입 동작의 형태가 저속 기입인지를 기록하거나 기입 동작의 속도 레벨을 상세하게 기록한다. 나머지 부분에 대해서는, S602 내지 S614를 참조하고, 상세사항은 여기서 다시 설명하지 않는다.
S816. 스토리지 제어기는 액세스대상 스토리지 영역의 이력 액세스 유형이 판독 동작인지를 결정하고; 액세스대상 스토리지 영역의 이력 액세스 유형이 판독 동작이면, 스토리지 제어기는 단계 S820을 수행하거나, 액세스대상 스토리지 영역의 이력 액세스 유형이 판독 동작이 아니라면, 스토리지 제어기는 단계 S818을 수행한다.
구체적인 설명에 대해, 단계 S618을 참조하고, 상세사항은 여기서는 다시 설명되지 않는다.
S818. 스토리지 제어기는 이력 액세스 유형을 업데이트한다.
구체적인 설명에 대해, 단계 S620을 참조하고, 상세사항은 여기서는 다시 설명되지 않는다.
S820. 스토리지 제어기는 기입 동작의 형태가 저속 기입인지를 결정한다; 기입 동작의 형태가 저속 기입이라면, 스토리지 제어기는 단계 S824를 수행하거나, 기입 동작의 형태가 저속 기입이 아니라면, 스토리지 제어기는 단계 S822를 수행한다.
구체적으로, 이력 액세스 유형이 판독 동작이고, 현재 액세스 요청의 유형도 역시 판독 동작이기 때문에, 이것은 주소 정보에 의해 표시된 액세스대상 스토리지 영역이 판독 전용 특성을 갖는다는 것을 나타낸다. 판독 동작의 비용을 감소시키기 위해, 스토리지 제어기는 주소 정보에 대응하는 이력 액세스 정보 엔트리의 속도 마크가 저속 기입인지를 결정한다. 속도 마크가 저속 기입을 나타내면, 스토리지 제어기는 판독 동작을 직접 수행한다. 속도 마크가 저속 기입을 나타내지 않는다면, 이것은 데이터가 신속하게 판독될 수 있다는 것을 보장될 수 없음을 나타내고, 스토리지 제어기는 액세스대상 스토리지 영역에 관한 저속 재기입 동작을 수행할 필요가 있다.
S822. 스토리지 제어기는 액세스대상 스토리지 영역에 관한 재기입 동작을 저속 기입의 형태로 수행한다.
액세스대상 스토리지 영역의 데이터가 판독 전용 특성을 갖고, 액세스대상 스토리지 영역에 저장된 데이터가 저속 기입의 형태로 기록되어 있지 않다면, 이것은, 액세스대상 스토리지 영역에 저장된 데이터는 비교적 낮은 기입 정밀도를 갖는다는 것을 나타낸다. 이 경우, 스토리지 제어기는, 액세스대상 스토리지 영역에 관한 후속 판독 동작의 속도를 향상시키도록, 액세스대상 스토리지 영역에 관한 재기입 동작을 저속 기입의 형태로 수행할 필요가 있다. 즉, 액세스대상 스토리지 영역의 이력 액세스 유형이 판독 동작이고, 기입 속도 마크가 저속 기입을 나타내지 않을 때, 액세스대상 스토리지 영역에 저장된 데이터는, 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입된다.
구체적인 설명에 대해, 단계 S624를 참조하고, 상세사항은 여기서는 다시 설명되지 않는다.
액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입한 후, 스토리지 제어기는 기입 속도 마크를 저속 기입으로 업데이트한다.
S824. 스토리지 제어기는 주소 정보에 의해 표시된 액세스대상 스토리지 영역에 관하여 판독 동작을 수행한다.
단계 S824에 대한 구체적인 설명에 대해, 단계 S616을 참조하고, 상세사항은 여기서는 다시 설명되지 않는다.
스토리지 제어기가 기입 속도 마크를 이용하여 기입 동작의 속도를 상세하게 기록하다면, 스토리지 제어기는 또한, 기입 동작의 속도와 판독 동작의 속도 사이의 대응관계를 설정하고, 기입 속도 마크에 따라 액세스대상 스토리지 영역에 관한 판독 동작을 수행한다. 고속 기입은 저속 판독에 대응하고, 저속 기입은 고속 판독에 대응한다.
또한, 기입 동작은 3개의 레벨 : 저속 기입, 일반 기입, 및 고속 기입으로 분류될 수 있고, 판독 동작은 3개의 레벨 : 고속 판독, 일반 판독, 및 저속 판독으로 대응적으로 분류될 수 있다. 저속 기입은 고속 판독에 대응하고, 일반 기입은 일반 판독에 대응하며, 고속 기입은 저속 판독에 대응한다.
주소 정보에 의해 표시된 액세스대상 스토리지 영역에 관한 판독 동작을 수행할 때, 스토리지 제어기는, 이력 액세스 정보에 기록되어 있는 기입 동작의 형태에 따라, 판독을 위한 판독 동작의 대응하는 형태를 직접 선택할 수 있다.
액세스대상 스토리지 영역 내의 데이터가 무효라고 결정할 때, 스토리지 제어기는 액세스대상 스토리지 영역에 대응하는 이력 액세스 정보를 삭제한다. 구체적인 설명에 대해, 도 6의 실시예에서의 설명을 참조하고, 상세사항은 여기서 다시 설명되지 않는다.
방법(800)은 플래시 메모리 디바이스에 액세스하기 위한 방법을 설명하기 위한 예일 뿐이라는 것을 이해해야 한다. 특정한 단계들은 특정한 순서로 수행되지 않을 수 있거나 결합될 수 있다. 본 발명에서의 단계들의 시퀀스 번호는 솔루션의 절차를 더욱 명확하게 설명하기 위한 것일 뿐이며, 단계들이 수행되는 순서를 제한하지 않는다.
본 발명의 이 실시예에 개시된 기술적 솔루션에 따르면, 데이터의 액세스 특성에 기초하여, 데이터는 3가지 유형 : 판독 전용 데이터, 기입 전용 데이터, 및 교차 액세스 데이터로 분류되고, 3가지 유형의 데이터는 이력 액세스 유형을 이용하여 서로 구별된다. 따라서, 판독 전용 특성을 갖는 데이터에 대한 속도가 조절되고, 고속 판독을 달성하기 위해 저속 기입이 수행되므로, 판독 성능이 크게 향상되면서 기입 성능은 거의 영향받지 않는다. 기입 전용 특성을 갖는 데이터에 대한 속도가 조절되고, 고속 기입이 수행되므로, 기입 성능이 크게 향상되면서 판독 성능은 거의 영향받지 않는다. 또한, 교차 액세스 특성을 갖는 데이터에 대한 속도가 역시 조정될 수 있고, 일반 기입이 수행됨으로써, 판독 속도와 기입 속도 사이의 균형을 달성한다.
도 10은 본 발명의 한 실시예에 따른 플래시 메모리 디바이스에 액세스하기 위한 장치(1000)의 논리적 구조의 개략도이다. 도 10에 도시된 바와 같이, 장치(1000)는, 수신 유닛(1002), 획득 유닛(1004) 및 기입 유닛(1006)을 포함한다.
수신 유닛(1002)은 액세스대상 스토리지 영역에 대한 제1 기입 액세스 요청을 수신하도록 구성된다.
구체적인 구현 프로세스에서, 수신 유닛(1002)은 도 2에 도시된 프로세서(202), 메모리(204) 및 통신 인터페이스(208)를 이용함으로써 구현될 수 있다. 더 구체적으로, 프로세서(202)는, 메모리(204) 내의 통신 모듈을 실행하여, 통신 인터페이스(208)가 운영 체제로부터 제1 기입 액세스 요청을 수신하게 할 수 있다.
획득 유닛(1004)은, 액세스대상 스토리지 영역의 이력 액세스 유형을 획득하도록 구성되고, 여기서, 이력 액세스 유형은 제1 기입 액세스 요청 전의 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형이고, 플래시 메모리 디바이스에 대한 액세스의 유형은 기입 동작 및 판독 동작을 포함한다.
구체적인 구현 프로세스에서, 획득 유닛(1004)은 도 2에 도시된 프로세서(202) 및 메모리(204)를 이용하여 구현될 수 있다. 더 구체적으로, 프로세서(202)는 메모리(204) 내의 액세스 제어 모듈을 실행하여, 액세스대상 스토리지 영역의 주소 정보에 따라 액세스대상 스토리지 영역의 이력 액세스 유형을 획득할 수 있다.
기입 유닛(1006)은 : 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작일 때, 제1 기입 액세스 요청의 기입대상 데이터를 고속 기입의 형태로 액세스대상 스토리지 영역에 기입하도록 구성되고, 여기서, 플래시 메모리 디바이스에 관한 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하며, 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다.
구체적인 구현 프로세스에서, 기입 유닛(1006)은 도 2에 도시된 프로세서(202) 및 메모리(204)를 이용하여 구현될 수 있다. 더 구체적으로, 프로세서(202)는 메모리(204) 내의 액세스 제어 모듈을 실행하여, 제1 기입 액세스 요청의 기입대상 데이터를 고속 기입의 형태로 액세스대상 스토리지 영역에 기입할 수 있다.
획득 유닛(1004)이 액세스대상 스토리지 영역의 이력 액세스 유형을 취득하도록 구성되어 있다는 것은 : 획득 유닛(1004)이 이력 액세스 레코드에 기록되어 있는 액세스대상 스토리지 영역의 이력 액세스 유형을 검색하도록 구성되어 있다는 것을 포함한다.
또한, 액세스대상 스토리지 영역에 대한 제1 기입 액세스 요청을 수신하기 전에, 수신 유닛(1002)은 또한, 액세스대상 스토리지 영역에 대한 제2 기입 액세스 요청을 수신하도록 구성되고, 여기서, 제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 첫회 기입 액세스 요청이다; 기입 유닛(1006)은 또한 : 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 이력 액세스 레코드에 기록하도록 구성된다.
기입 유닛(1006)이 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하도록 구성되어 있다는 것은 : 기입 유닛(1006)가 제2 기입 액세스 요청의 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하도록 구성되어 있다는 것을 포함한다.
장치(1000)는 삭제 유닛(1008)을 더 포함한다. 액세스대상 스토리지 영역의 데이터가 무효라고 결정될 때, 삭제 유닛(1008)은 액세스대상 스토리지 영역의 기록된 이력 액세스 유형을 삭제하도록 구성되어 있다.
구체적인 구현 프로세스에서, 삭제 유닛(1008)은 도 2에 도시된 프로세서(202) 및 메모리(204)를 이용하여 구현될 수 있다. 더 구체적으로, 프로세서(202)는 메모리(204) 내의 액세스 제어 모듈을 실행하여, 운영 체제로부터 수신 유닛(1002)에 의해 수신된 삭제 통보 메시지에 따라 액세스대상 스토리지 영역의 기록된 이력 액세스 유형을 삭제할 수 있다.
선택사항으로서, 기입 유닛(1006)은 또한 : 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작이 아닐 때, 제1 기입 액세스 요청의 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 업데이트하도록 구성된다.
선택사항으로서, 기입 동작의 형태는 일반 기입을 더 포함하고, 일반 기입의 기입 속도는 저속 기입의 기입 속도보다 크고 고속 기입의 기입 속도보다 작다. 기입 유닛(1006)은 또한 : 액세스대상 스토리지 영역의 이력 액세스 유형이 기입 동작이 아닐 때, 제1 기입 액세스 요청의 기입대상 데이터를 일반 기입의 형태로 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 업데이트하도록 구성된다.
설명의 용이성을 위해, 본 발명의 이 실시예에서의 획득 유닛(1004), 기입 유닛(1006), 및 삭제 유닛(1008)의 기능은 도 2에 도시된 액세스 제어 모듈에 통합될 수 있다는 것을 이해해야 한다. 프로세서(202)는 액세스 제어 모듈의 상이한 부분들을 실행하여 상이한 기능들을 구현한다. 그러나, 한 구체적인 구현에서, 액세스 제어 모듈은 더 특정될 수 있다. 이것은 본 발명의 이 실시예에서 제한되지 않는다.
본 발명의 이 실시예는 스토리지 제어기(112)의 장치 실시예이다. 도 6 및 도 8의 실시예에서의 피쳐 설명은 본 발명의 이 실시예에 적용가능하다. 상세사항은 여기서 다시 설명되지 않는다.
도 11은 본 발명의 한 실시예에 따른 플래시 메모리 디바이스에 액세스하기 위한 장치(1100)의 논리적 구조의 개략도이다. 도 11에 도시된 바와 같이, 장치(1100)는, 수신 유닛(1102), 판독 유닛(1104), 획득 유닛(1106), 및 기입 유닛(1108)을 포함한다.
수신 유닛(1102)은 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하도록 구성된다.
구체적인 구현 프로세스에서, 수신 유닛(1102)은, 도 2에 도시된 프로세서(202), 메모리(204), 및 통신 인터페이스(208)를 이용함으로써 구현될 수 있다. 더 구체적으로, 프로세서(202)는, 프로세서(204) 내의 통신 모듈을 실행하여, 통신 인터페이스(208)가 운영 체제로부터 판독 액세스 요청을 수신하게 할 수 있다.
판독 유닛(1104)은, 액세스대상 스토리지 영역에 관한 판독 동작을 고속 판독의 형태로 수행하도록 구성되고, 여기서, 플래시 메모리 디바이스에 관한 판독 동작의 형태는 고속 판독 및 저속 판독을 포함하며, 고속 판독의 판독 속도는 저속 판독의 판독 속도보다 크다.
구체적인 구현 프로세스에서, 판독 유닛(1104)은 도 2에 도시된 프로세서(202) 및 메모리(204)를 이용하여 구현될 수 있다. 더 구체적으로, 프로세서(202)는 메모리(204) 내의 액세스 제어 모듈을 실행하여, 액세스대상 스토리지 영역에 관한 판독 동작을 수행할 수 있다.
획득 유닛(1106)은, 액세스대상 스토리지 영역의 이력 액세스 유형을 획득하도록 구성되고, 여기서, 이력 액세스 유형은 판독 액세스 요청 전의 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형이고, 플래시 메모리 디바이스에 대한 액세스의 유형은 기입 동작 및 판독 동작을 포함한다.
구체적인 구현 프로세스에서, 획득 유닛(1106)은 도 2에 도시된 프로세서(202) 및 메모리(204)를 이용하여 구현될 수 있다. 더 구체적으로, 프로세서(202)는 메모리(204) 내의 액세스 제어 모듈을 실행하여, 액세스대상 스토리지 영역의 주소 정보에 따라 액세스대상 스토리지 영역의 이력 액세스 유형을 획득할 수 있다.
기입 유닛(1108)은 : 고속 판독을 이용한 디코딩이 실패하고 이력 액세스 유형이 판독 동작일 때, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하도록 구성되고, 여기서, 플래시 메모리 디바이스에 관한 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하고, 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다.
구체적인 구현 프로세스에서, 기입 유닛(1108)은 도 2에 도시된 프로세서(202) 및 메모리(204)를 이용하여 구현될 수 있다. 더 구체적으로, 프로세서(202)는 메모리(204) 내의 액세스 제어 모듈을 실행하여, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입할 수 있다.
획득 유닛(1106)이 액세스대상 스토리지 영역의 이력 액세스 유형을 취득하도록 구성되어 있다는 것은 : 획득 유닛(1106)이 이력 액세스 레코드에 기록되어 있는 액세스대상 스토리지 영역의 이력 액세스 유형을 검색하도록 구성되어 있다는 것을 포함한다.
또한, 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하기 전에, 수신 유닛(1102)은 또한, 액세스대상 스토리지 영역에 대한 제2 기입 액세스 요청을 수신하도록 구성되고, 여기서, 제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 첫회 기입 액세스 요청이다; 기입 유닛(1108)은 또한 : 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 유형을 이력 액세스 레코드에 기록하도록 구성된다.
기입 유닛(1108)이 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하도록 구성되어 있다는 것은 : 기입 유닛(1108)가 제2 기입 액세스 요청의 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하도록 구성되어 있다는 것을 포함한다.
장치(1100)는 삭제 유닛(1110)을 더 포함한다. 액세스대상 스토리지 영역의 데이터가 무효라고 결정될 때, 삭제 유닛(1110)은 액세스대상 스토리지 영역의 기록된 이력 액세스 유형을 삭제하도록 구성되어 있다.
구체적인 구현 프로세스에서, 삭제 유닛(1110)은 도 2에 도시된 프로세서(202) 및 메모리(204)를 이용하여 구현될 수 있다. 더 구체적으로, 프로세서(202)는 메모리(204) 내의 액세스 제어 모듈을 실행하여, 운영 체제로부터 수신 유닛(1102)에 의해 수신된 삭제 통보 메시지에 따라 액세스대상 스토리지 영역의 기록된 이력 액세스 유형을 삭제할 수 있다.
선택사항으로서, 판독 유닛(1104)은 또한 : 고속 판독을 이용하는 디코딩이 실패할 때, 저속 판독의 형태로 액세스대상 스토리지 영역에 관한 판독 동작을 수행하도록 구성된다.
선택사항으로서, 판독 동작의 형태는 일반 판독을 더 포함하고, 일반 판독의 판독 속도는 저속 판독의 판독 속도보다 크며 고속 판독의 판독 속도보다 작다. 판독 유닛(1104)은 또한 : 고속 판독을 이용한 디코딩이 실패할 때, 일반 판독의 형태로 액세스대상 스토리지 영역에 관한 판독 동작을 수행하도록 구성된다.
기입 유닛(1108)은 또한 : 이력 액세스 유형이 판독 동작이 아닐 때, 이력 액세스 유형을 업데이트하도록 구성된다.
선택사항으로서, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하기 전에, 기입 유닛(1108)은 또한, 액세스대상 스토리지 영역의 주소 정보를 재기입 큐에 저장하도록 구성되고; 판독 유닛(1104)은 또한, 재기입 큐에 저장된 주소 정보에 따라 액세스대상 스토리지 영역으로부터 액세스대상 스토리지 영역에 저장된 데이터를 판독하도록 구성된다.
설명의 용이성을 위해, 본 발명의 이 실시예에서의 판독 유닛(1104), 획득 유닛(1106), 기입 유닛(1108), 및 삭제 유닛(1110)의 기능은 도 2에 도시된 액세스 제어 모듈에 통합될 수 있다는 것을 이해해야 한다. 프로세서(202)는 액세스 제어 모듈의 상이한 부분들을 실행하여 상이한 기능들을 구현한다. 그러나, 한 구체적인 구현에서, 액세스 제어 모듈은 더 특정될 수 있다. 이것은 본 발명의 이 실시예에서 제한되지 않는다.
본 발명의 이 실시예에서 스토리지 제어기(112)의 장치 실시예가 제공된다. 도 6 및 도 8의 실시예에서의 피쳐 설명은 본 발명의 이 실시예에 적용가능하다. 상세사항은 여기서 다시 설명되지 않는다.
도 12는 본 발명의 한 실시예에 따른 플래시 메모리 디바이스에 액세스하기 위한 장치(1200)의 논리적 구조의 개략도이다. 도 12에 도시된 바와 같이, 장치(1200)는, 수신 유닛(1202), 획득 유닛(1204) 및 기입 유닛(1206)을 포함한다.
수신 유닛(1202)은 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하도록 구성된다.
구체적인 구현 프로세스에서, 수신 유닛(1202)은, 도 2에 도시된 프로세서(202), 메모리(204), 및 통신 인터페이스(208)를 이용함으로써 구현될 수 있다. 더 구체적으로, 프로세서(202)는, 프로세서(204) 내의 통신 모듈을 실행하여, 통신 인터페이스(208)가 운영 체제로부터 판독 액세스 요청을 수신하게 할 수 있다.
획득 유닛(1204)은 액세스대상 스토리지 영역의 이력 액세스 정보를 획득하도록 구성되고, 여기서, 이력 액세스 정보는 액세스대상 스토리지 영역의 이력 액세스 유형 및 기입 속도 마크를 포함하며, 기입 속도 마크는 액세스대상 스토리지 영역에 저장된 데이터에 관한 기입 동작의 형태를 나타내는데 이용되며, 이력 액세스 유형은 판독 액세스 요청 전의 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형이다. 플래시 메모리 디바이스에 대한 액세스 유형은 기입 동작 및 판독 동작을 포함한다. 플래시 메모리 디바이스에 관한 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하고, 고속 기입의 기입 속도는 저속 기입의 기입 속도보다 크다.
구체적인 구현 프로세스에서, 획득 유닛(1204)은 도 2에 도시된 프로세서(202) 및 메모리(204)를 이용하여 구현될 수 있다. 더 구체적으로, 프로세서(202)는 메모리(204) 내의 액세스 제어 모듈을 실행하여, 액세스대상 스토리지 영역의 주소 정보에 따라 액세스대상 스토리지 영역의 이력 액세스 정보를 획득할 수 있다.
기입 유닛(1206)은 : 이력 액세스 유형이 판독 동작이고 기입 속도 마크가 저속 기입을 나타내지 않을 때, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하도록 구성된다.
구체적인 구현 프로세스에서, 기입 유닛(1206)은 도 2에 도시된 프로세서(202) 및 메모리(204)를 이용하여 구현될 수 있다. 더 구체적으로, 프로세서(202)는 메모리(204) 내의 액세스 제어 모듈을 실행하여, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입할 수 있다.
획득 유닛(1204)이 액세스대상 스토리지 영역의 이력 액세스 정보를 취득하도록 구성되어 있다는 것은 : 획득 유닛(1204)이 이력 액세스 레코드에 기록되어 있는 액세스대상 스토리지 영역의 이력 액세스 정보를 검색하도록 구성되어 있다는 것을 포함한다.
또한, 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하기 전에, 수신 유닛(1202)은 또한, 액세스대상 스토리지 영역에 대한 제2 기입 액세스 요청을 수신하도록 구성되고, 여기서, 제2 기입 액세스 요청은 액세스대상 스토리지 영역에 대한 첫회 기입 액세스 요청이다; 기입 유닛(1206)은 또한 : 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하고, 액세스대상 스토리지 영역의 이력 액세스 정보를 이력 액세스 레코드에 기록하도록 구성된다.
기입 유닛(1206)이 제2 기입 액세스 요청의 기입대상 데이터를 액세스대상 스토리지 영역에 기입하도록 구성되어 있다는 것은 : 기입 유닛(1206)가 제2 기입 액세스 요청의 기입대상 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 기입하도록 구성되어 있다는 것을 포함한다.
장치(1200)는 삭제 유닛(1208)을 더 포함한다. 액세스대상 스토리지 영역의 데이터가 무효라고 결정될 때, 삭제 유닛(1208)은 액세스대상 스토리지 영역의 기록된 이력 액세스 정보를 삭제하도록 구성되어 있다.
구체적인 구현 프로세스에서, 삭제 유닛(1208)은 도 2에 도시된 프로세서(202) 및 메모리(204)를 이용하여 구현될 수 있다. 더 구체적으로, 프로세서(202)는 메모리(204) 내의 액세스 제어 모듈을 실행하여, 운영 체제로부터 수신 유닛(1202)에 의해 수신된 삭제 통보 메시지에 따라 액세스대상 스토리지 영역의 기록된 이력 액세스 정보를 삭제할 수 있다.
액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입한 후, 기입 유닛(1206)은 또한, 기입 속도 마크를 저속 기입으로 업데이트하도록 구성된다.
장치(1200)는 판독 유닛(1210)을 더 포함한다. 판독 동작은 고속 판독 및 저속 판독을 포함한다. 획득 유닛(1204)이 액세스대상 스토리지 영역의 이력 액세스 정보를 획득한 후, 판독 유닛(1210)은, 기입 속도 마크에 따라 액세스대상 스토리지 영역에 관한 판독 동작을 수행하도록 구성되고, 여기서, 고속 기입은 저속 판독에 대응하고 저속 기입은 고속 판독에 대응한다.
구체적인 구현 프로세스에서, 판독 유닛(1210)은 도 2에 도시된 프로세서(202) 및 메모리(204)를 이용하여 구현될 수 있다. 더 구체적으로, 프로세서(202)는 메모리(204) 내의 액세스 제어 모듈을 실행하여, 기입 속도 마크에 따라 액세스대상 스토리지 영역에 관한 판독 동작을 수행할 수 있다.
선택사항으로서, 액세스대상 스토리지 영역에 저장된 데이터를 저속 기입의 형태로 액세스대상 스토리지 영역에 재기입하기 전에, 기입 유닛(1206)은 또한, 액세스대상 스토리지 영역의 주소 정보를 재기입 큐에 저장하도록 구성되고; 판독 유닛(1210)은, 재기입 큐에 저장된 주소 정보에 따라 액세스대상 스토리지 영역으로부터 액세스대상 스토리지 영역에 저장된 데이터를 판독하도록 구성된다.
설명의 용이성을 위해, 본 발명의 이 실시예에서의 획득 유닛(1204), 기입 유닛(1206), 삭제 유닛(1208), 및 판독 유닛(1210)의 기능은 도 2에 도시된 액세스 제어 모듈에 통합될 수 있다는 것을 이해해야 한다. 프로세서(202)는 액세스 제어 모듈의 상이한 부분들을 실행하여 상이한 기능들을 구현한다. 그러나, 한 구체적인 구현에서, 액세스 제어 모듈은 더 특정될 수 있다. 이것은 본 발명의 이 실시예에서 제한되지 않는다.
본 발명의 이 실시예에서 스토리지 제어기(112)의 장치 실시예가 제공된다. 도 6 및 도 8의 실시예에서의 피쳐 설명은 본 발명의 이 실시예에 적용가능하다. 상세사항은 여기서 다시 설명되지 않는다.
본 출원에서 제공된 실시예들에서, 개시된 시스템, 디바이스, 및 방법은 다른 방식으로 구현될 수도 있다는 것을 이해해야 한다. 예를 들어, 설명된 장치 실시예는 단지 예일 뿐이다. 예를 들어, 모듈 분할은 단순히 논리적 기능 분할이고 실제의 구현에서는 다른 분할일 수도 있다. 예를 들어, 복수의 모듈들 또는 컴포넌트들이 결합되거나 또 다른 시스템 내에 통합될 수 있고, 또는 일부 피쳐들은 무시될 수 있거나 수행되지 않을 수도 있다. 또한, 표시되거나 논의된 상호 결합 또는 직접적 결합 또는 통신 접속은 소정의 인터페이스를 통해 구현될 수도 있다. 장치들 또는 모듈들 사이의 간접적인 결합 또는 통신 접속은, 전자적, 기계적 또는 기타의 형태로 구현될 수도 있다.
별개의 부분들로서 설명된 모듈들은 물리적으로 분리되거나 분리되지 않을 수도 있고, 모듈들로서 표시된 부분들은 물리적 모듈일 수 있거나 아닐 수도 있고, 한 위치에 위치하거나, 복수의 네트워크 모듈들에 분산될 수도 있다. 모듈들의 일부 또는 전부는 실시예들의 솔루션의 목적을 달성하기 위한 실제의 필요성에 따라 선택될 수도 있다.
또한, 본 발명의 실시예들에서의 기능 모듈들은 하나의 처리 모듈로 통합되거나, 모듈들 각각이 물리적으로 단독으로 존재하거나, 2개 이상의 모듈들이 하나의 모듈로 통합된다. 통합된 모듈은 하드웨어의 형태로 구현되거나, 소프트웨어 기능 모듈에 추가하여 하드웨어의 형태로 구현될 수도 있다.
상기 통합된 모듈이 소프트웨어 기능 모듈의 형태로 구현될 때, 통합된 유닛은 컴퓨터-판독가능한 저장 매체에 저장될 수 있다. 소프트웨어 기능 모듈은 저장 매체에 저장되고 (개인용 컴퓨터, 서버, 네트워크 장치일 수 있는) 컴퓨터 디바이스에게 본 발명의 실시예들에서 설명된 방법들의 단계들의 일부를 수행할 것을 명령하기 위한 명령어들을 포함한다. 상기 저장 매체는 : 예를 들어, 착탈식 하드 디스크, 판독 전용 메모리, 랜덤 액세스 메모리, 자기 디스크, 또는 광학 디스크 등의, 프로그램 코드를 저장할 수 있는 임의의 매체를 포함한다.
마지막으로, 상기 실시예들은 본 발명을 제한하고자 함이 아니라 본 발명의 기술적 솔루션을 설명하기 위한 것일 뿐이라는 점에 유의해야 한다. 본 발명이 상기 실시예들을 참조하여 상세히 설명되었지만, 본 기술분야의 통상의 기술자라면, 본 발명의 실시예들의 기술적 솔루션의 범위로부터 벗어나지 않고, 상기 실시예들에서 설명된 기술적 해결책에 수정을 가하거나 일부 기술적 특징들에 대해 균등한 대체물을 적용할 수도 있다는 것을 이해해야 한다.

Claims (59)

  1. 플래시 메모리 디바이스에 액세스하기 위한 방법으로서, 상기 플래시 메모리 디바이스에의 액세스의 유형은 기입 동작 및 판독 동작을 포함하고, 상기 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하고, 상기 판독 동작의 형태는 고속 판독 및 저속 판독을 포함하며, 상기 방법은 :
    액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하는 단계;
    상기 액세스대상 스토리지 영역에 관한 판독 동작을 상기 고속 판독의 형태로 수행하는 단계;
    상기 액세스대상 스토리지 영역의 기록된 이력 액세스 유형 ―상기 이력 액세스 유형은 상기 판독 액세스 요청 전의 상기 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 을 획득하는 단계; 및
    고속 판독을 이용한 상기 액세스대상 스토리지 영역에 저장된 데이터의 디코딩이 실패하고 상기 이력 액세스 유형이 판독 동작일 때, 상기 액세스대상 스토리지 영역에 저장된 데이터를 상기 저속 기입의 형태로 상기 액세스대상 스토리지 영역에 재기입하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 액세스대상 스토리지 영역의 데이터가 무효라고 결정될 때, 상기 액세스대상 스토리지 영역의 기록된 이력 액세스 유형을 삭제하는 단계를 더 포함하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 고속 판독을 이용한 디코딩이 실패할 때, 상기 액세스대상 스토리지 영역에 관한 판독 동작을 상기 저속 판독의 형태로 수행하는 단계를 더 포함하는 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 이력 액세스 유형이 판독 동작이 아닐 때, 상기 이력 액세스 유형을 업데이트하는 단계를 더 포함하는 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 액세스대상 스토리지 영역에 저장된 데이터를 상기 저속 기입의 형태로 상기 액세스대상 스토리지 영역에 재기입하는 단계 전에, 상기 방법은 :
    상기 액세스대상 스토리지 영역의 주소 정보를 재기입 큐에 저장하는 단계; 및
    상기 재기입 큐에 저장된 상기 주소 정보에 따라 상기 액세스대상 스토리지 영역으로부터 상기 액세스대상 스토리지 영역에 저장된 상기 데이터를 판독하는 단계
    를 더 포함하는 방법.
  6. 플래시 메모리 디바이스에 액세스하기 위한 방법으로서, 상기 플래시 메모리 디바이스에의 액세스의 유형은 기입 동작 및 판독 동작을 포함하고, 상기 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하며, 상기 방법은 :
    액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하는 단계;
    상기 액세스대상 스토리지 영역의 기록된 이력 액세스 정보 ―상기 이력 액세스 정보는 상기 액세스대상 스토리지 영역의 이력 액세스 유형 및 기입 속도 마크를 포함하고, 상기 기입 속도 마크는 상기 액세스대상 스토리지 영역에 저장된 데이터에 관한 기입 동작의 형태를 나타내는데 이용되며, 상기 이력 액세스 유형은 상기 판독 액세스 요청 전의 상기 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 를 획득하는 단계; 및
    상기 이력 액세스 유형이 판독 동작이고 상기 기입 속도 마크가 상기 저속 기입을 나타내지 않을 때, 상기 액세스대상 스토리지 영역에 저장된 데이터를 상기 저속 기입의 형태로 상기 액세스대상 스토리지 영역에 재기입하는 단계
    를 포함하는 방법.
  7. 제6항에 있어서,
    상기 액세스대상 스토리지 영역의 데이터가 무효라고 결정될 때, 상기 액세스대상 스토리지 영역의 기록된 이력 액세스 정보를 삭제하는 단계를 더 포함하는 방법.
  8. 제6항 또는 제7항에 있어서, 상기 액세스대상 스토리지 영역에 저장된 데이터를 상기 저속 기입의 형태로 상기 액세스대상 스토리지 영역에 재기입하는 단계 후에, 상기 방법은 :
    상기 기입 속도 마크를 상기 저속 기입으로 업데이트하는 단계를 더 포함하는 방법.
  9. 제6항 또는 제7항에 있어서, 상기 판독 동작은 고속 판독 및 저속 판독을 포함하고, 상기 액세스대상 스토리지 영역의 상기 이력 액세스 정보를 획득하는 단계 후에, 상기 방법은 :
    상기 기입 속도 마크에 따라 상기 액세스대상 스토리지 영역에 관한 판독 동작을 수행하는 단계를 더 포함하고, 상기 고속 기입은 상기 저속 판독에 대응하고, 상기 저속 기입은 상기 고속 판독에 대응하는, 방법.
  10. 제6항 또는 제7항에 있어서, 상기 액세스대상 스토리지 영역에 저장된 데이터를 상기 저속 기입의 형태로 상기 액세스대상 스토리지 영역에 재기입하는 단계 전에, 상기 방법은 :
    상기 액세스대상 스토리지 영역의 주소 정보를 재기입 큐에 저장하는 단계; 및
    상기 재기입 큐에 저장된 상기 주소 정보에 따라 상기 액세스대상 스토리지 영역으로부터 상기 액세스대상 스토리지 영역에 저장된 상기 데이터를 판독하는 단계
    를 더 포함하는 방법.
  11. 플래시 메모리 디바이스에 액세스하기 위한 장치로서, 상기 플래시 메모리 디바이스에의 액세스의 유형은 기입 동작 및 판독 동작을 포함하고, 상기 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하며, 상기 판독 동작의 형태는 고속 판독 및 저속 판독을 포함하고, 상기 장치는 :
    액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하도록 구성된 수신 유닛;
    상기 액세스대상 스토리지 영역에 관한 판독 동작을 상기 고속 판독의 형태로 수행하도록 구성된 판독 유닛;
    상기 액세스대상 스토리지 영역의 기록된 이력 액세스 유형 ―상기 이력 액세스 유형은 상기 판독 액세스 요청 전의 상기 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 을 획득하도록 구성된 획득 유닛; 및
    고속 판독을 이용한 상기 액세스대상 스토리지 영역에 저장된 데이터의 디코딩이 실패하고 상기 이력 액세스 유형이 판독 동작일 때, 상기 액세스대상 스토리지 영역에 저장된 데이터를 상기 저속 기입의 형태로 상기 액세스대상 스토리지 영역에 재기입하도록 구성된 기입 유닛
    을 포함하는 장치.
  12. 제11항에 있어서,
    상기 장치는 삭제 유닛을 더 포함하고,
    상기 액세스대상 스토리지 영역의 데이터가 무효라고 결정될 때, 상기 삭제 유닛은 상기 액세스대상 스토리지 영역의 기록된 이력 액세스 유형을 삭제하도록 구성되는, 장치.
  13. 제11항 또는 제12항에 있어서, 상기 기입 유닛은 추가로 : 상기 이력 액세스 유형이 판독 동작이 아닐 때, 상기 이력 액세스 유형을 업데이트하도록 구성되는, 장치.
  14. 제11항 또는 제12항에 있어서,
    상기 액세스대상 스토리지 영역에 저장된 데이터를 상기 저속 기입의 형태로 상기 액세스대상 스토리지 영역에 재기입하기 전에, 상기 기입 유닛은 추가로 상기 액세스대상 스토리지 영역의 주소 정보를 재기입 큐에 저장하도록 구성되고; 그리고
    상기 판독 유닛은 추가로 상기 재기입 큐에 저장된 상기 주소 정보에 따라 상기 액세스대상 스토리지 영역으로부터 상기 액세스대상 스토리지 영역에 저장된 상기 데이터를 판독하도록 구성되는, 장치.
  15. 플래시 메모리 디바이스에 액세스하기 위한 장치로서, 상기 플래시 메모리 디바이스에의 액세스의 유형은 기입 동작 및 판독 동작을 포함하고, 상기 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하며, 상기 장치는 :
    액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하도록 구성된 수신 유닛;
    상기 액세스대상 스토리지 영역의 기록된 이력 액세스 정보 ―상기 이력 액세스 정보는 상기 액세스대상 스토리지 영역의 이력 액세스 유형 및 기입 속도 마크를 포함하고, 상기 기입 속도 마크는 상기 액세스대상 스토리지 영역에 저장된 데이터에 관한 기입 동작의 형태를 나타내는데 이용되며, 상기 이력 액세스 유형은 상기 판독 액세스 요청 전의 상기 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 를 획득하도록 구성된 획득 유닛; 및
    상기 이력 액세스 유형이 판독 동작이고 상기 기입 속도 마크가 상기 저속 기입을 나타내지 않을 때, 상기 액세스대상 스토리지 영역에 저장된 데이터를 상기 저속 기입의 형태로 상기 액세스대상 스토리지 영역에 재기입하도록 구성된 기입 유닛
    을 포함하는 장치.
  16. 제15항에 있어서, 상기 액세스대상 스토리지 영역에 저장된 데이터를 상기 저속 기입의 형태로 상기 액세스대상 스토리지 영역에 재기입한 후에, 상기 기입 유닛은 추가로 상기 기입 속도 마크를 상기 저속 기입으로 업데이트하도록 구성되는, 장치.
  17. 제15항 또는 제16항에 있어서,
    상기 판독 동작은 고속 판독 및 저속 판독을 포함하고, 상기 장치는 판독 유닛을 추가로 포함하며,
    상기 획득 유닛이 상기 액세스대상 스토리지 영역의 이력 액세스 정보를 획득한 후, 상기 판독 유닛은, 상기 기입 속도 마크에 따라 상기 액세스대상 스토리지 영역에 관한 판독 동작을 수행하도록 구성되고, 상기 고속 기입은 상기 저속 판독에 대응하고, 상기 저속 기입은 상기 고속 판독에 대응하는, 장치.
  18. 플래시 메모리 디바이스로서, 상기 플래시 메모리 디바이스에의 액세스의 유형은 기입 동작 및 판독 동작을 포함하고, 상기 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하고, 상기 판독 동작의 형태는 고속 판독 및 저속 판독을 포함하며, 상기 플래시 메모리 디바이스는 스토리지 제어기 및 플래시 메모리 어레이를 포함하고,
    상기 플래시 메모리 어레이는 데이터를 저장하도록 구성되며;
    상기 스토리지 제어기는 : 상기 플래시 메모리 어레이의 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하고; 상기 액세스대상 스토리지 영역에 관한 판독 동작을 상기 고속 판독의 형태로 수행하고; 상기 액세스대상 스토리지 영역의 이력 액세스 유형 ―상기 이력 액세스 유형은 상기 판독 액세스 요청 전의 상기 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 을 획득하고; 고속 판독을 이용한 상기 액세스대상 스토리지 영역에 저장된 데이터의 디코딩이 실패하고 상기 이력 액세스 유형이 판독 동작일 때, 상기 액세스대상 스토리지 영역에 저장된 데이터를 상기 저속 기입의 형태로 상기 액세스대상 스토리지 영역에 재기입하도록 구성되는, 플래시 메모리 디바이스.
  19. 플래시 메모리 디바이스로서, 상기 플래시 메모리 디바이스에의 액세스의 유형은 기입 동작 및 판독 동작을 포함하고, 상기 기입 동작의 형태는 고속 기입 및 저속 기입을 포함하며, 상기 플래시 메모리 디바이스는 스토리지 제어기 및 플래시 메모리 어레이를 포함하며,
    상기 플래시 메모리 어레이는 데이터를 저장하도록 구성되고;
    상기 스토리지 제어기는 : 액세스대상 스토리지 영역에 대한 판독 액세스 요청을 수신하고; 상기 액세스대상 스토리지 영역의 이력 액세스 정보 ―상기 이력 액세스 정보는 상기 액세스대상 스토리지 영역의 이력 액세스 유형 및 기입 속도 마크를 포함하고, 상기 기입 속도 마크는 상기 액세스대상 스토리지 영역에 저장된 데이터에 관한 기입 동작의 형태를 나타내는데 이용되며, 상기 이력 액세스 유형은 상기 판독 액세스 요청 전의 상기 액세스대상 스토리지 영역에 대한 액세스의 액세스 유형임― 를 획득하며; 상기 이력 액세스 유형이 판독 동작이고 상기 기입 속도 마크가 상기 저속 기입을 나타내지 않을 때, 상기 액세스대상 스토리지 영역에 저장된 데이터를 상기 저속 기입의 형태로 상기 액세스대상 스토리지 영역에 재기입하도록 구성되는, 플래시 메모리 디바이스.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
KR1020187023110A 2016-02-19 2016-02-19 플래시 메모리 디바이스 액세스 방법 및 장치 KR102114256B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/074140 WO2017139973A1 (zh) 2016-02-19 2016-02-19 一种闪存设备的访问方法和装置

Publications (2)

Publication Number Publication Date
KR20180103106A KR20180103106A (ko) 2018-09-18
KR102114256B1 true KR102114256B1 (ko) 2020-05-22

Family

ID=59624787

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187023110A KR102114256B1 (ko) 2016-02-19 2016-02-19 플래시 메모리 디바이스 액세스 방법 및 장치

Country Status (9)

Country Link
US (1) US10732898B2 (ko)
EP (1) EP3399421B1 (ko)
JP (1) JP6817318B2 (ko)
KR (1) KR102114256B1 (ko)
CN (1) CN107710169B (ko)
AU (1) AU2016393275B2 (ko)
CA (1) CA3012236C (ko)
SG (1) SG11201806099WA (ko)
WO (1) WO2017139973A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190090635A (ko) * 2018-01-25 2019-08-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11106391B2 (en) * 2018-04-25 2021-08-31 Micron Technology, Inc. Managing a memory system including memory devices with different characteristics
US11061762B2 (en) * 2019-02-04 2021-07-13 Intel Corporation Memory programming techniques
JP2020149123A (ja) * 2019-03-11 2020-09-17 キオクシア株式会社 メモリシステム、及びメモリシステムの制御方法
KR20210017401A (ko) * 2019-08-08 2021-02-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법과, 이를 위한 컨트롤러
WO2021079535A1 (ja) * 2019-10-23 2021-04-29 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置
CN111061433A (zh) * 2019-12-17 2020-04-24 深圳佰维存储科技股份有限公司 冷热数据处理方法及装置
CN111104066B (zh) * 2019-12-17 2021-07-27 华中科技大学 数据写入方法、装置及存储服务器和计算机可读存储介质
CN111208940A (zh) * 2019-12-24 2020-05-29 华东师范大学 一种基于多通道闪存的读写分离方法
US11573621B2 (en) * 2020-07-25 2023-02-07 International Business Machines Corporation Reduction of performance impacts of storage power control by migration of write-intensive extent
US11625297B2 (en) 2020-08-28 2023-04-11 Samsung Electronics Co., Ltd. Storage device and operating method thereof
KR20220092021A (ko) * 2020-12-24 2022-07-01 삼성전자주식회사 스토리지 컨트롤러 및 이를 포함하는 스토리지 시스템
US11868642B2 (en) * 2021-08-31 2024-01-09 Micron Technology, Inc. Managing trim commands in a memory sub-system
JP2023136816A (ja) 2022-03-17 2023-09-29 キオクシア株式会社 メモリシステム
CN116303125B (zh) * 2023-05-16 2023-09-29 太初(无锡)电子科技有限公司 请求调度方法、缓存、装置、计算机设备及存储介质
CN117234434B (zh) * 2023-11-14 2024-02-20 苏州元脑智能科技有限公司 存储设备的操作控制方法及装置
CN118012355A (zh) * 2024-04-10 2024-05-10 上海朔集半导体科技有限公司 模拟eeprom及其控制方法、模拟控制器、存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848621A (en) 1996-03-22 1998-12-15 Illinois Tool Works Inc. Cutter for steel strapping tool
JP3930074B2 (ja) * 1996-09-30 2007-06-13 株式会社ルネサステクノロジ 半導体集積回路及びデータ処理システム
JP2007102267A (ja) * 2005-09-30 2007-04-19 Toshiba Corp アクセス履歴管理方法、アクセス履歴管理装置、アクセス履歴管理プログラム、記憶装置及び情報処理装置
JP4749255B2 (ja) * 2006-07-03 2011-08-17 株式会社日立製作所 複数種類の記憶デバイスを備えたストレージシステムの制御装置
KR101397549B1 (ko) * 2007-08-16 2014-05-26 삼성전자주식회사 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법
US8706951B2 (en) * 2008-07-18 2014-04-22 Marvell World Trade Ltd. Selectively accessing faster or slower multi-level cell memory
US8627017B2 (en) * 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
US8554994B2 (en) * 2009-09-29 2013-10-08 Cleversafe, Inc. Distributed storage network utilizing memory stripes
CN102073592B (zh) * 2009-11-19 2012-12-05 中兴通讯股份有限公司 一种闪存快速读写方法和装置
JP2011145838A (ja) * 2010-01-13 2011-07-28 Toshiba Corp 記憶装置管理装置および記憶装置の管理方法
JP5815388B2 (ja) * 2011-12-02 2015-11-17 株式会社メガチップス メモリアクセス制御装置および方法
US20130318418A1 (en) * 2012-05-22 2013-11-28 Politecncio di Milano Adaptive error correction for phase change memory
JP2014086062A (ja) * 2012-10-29 2014-05-12 Sony Corp 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
KR102053953B1 (ko) * 2013-02-04 2019-12-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
US9646705B2 (en) * 2013-06-12 2017-05-09 Samsung Electronics Co., Ltd. Memory systems including nonvolatile memory devices and dynamic access methods thereof
KR20140146333A (ko) * 2013-06-17 2014-12-26 삼성전자주식회사 메모리 컨트롤러와 이의 동작 방법
US10146448B2 (en) * 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10656842B2 (en) * 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
CN105242871B (zh) * 2014-06-06 2018-06-05 华为技术有限公司 一种数据写入方法及装置
CN104331252B (zh) * 2014-10-10 2017-08-25 上海新储集成电路有限公司 异构nand固态硬盘结构及其数据读取管理方法
CN104575618B (zh) * 2015-01-13 2017-08-08 重庆大学 一种基于闪存错误校验的读写调制方法
CN104503710B (zh) * 2015-01-23 2018-02-13 福州瑞芯微电子股份有限公司 一种提高闪存写入速度的方法和装置
US9792191B2 (en) * 2015-08-19 2017-10-17 Nxp Usa, Inc. Fast write mechanism for emulated electrically erasable (EEE) system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Q. Li et al., "Maximizing IO performance via conflict reduction for flash memory storage systems", 2015 Design, Automation & Test in Europe Conference & Exhibition, Grenoble(2015.4.23.)*

Also Published As

Publication number Publication date
CA3012236C (en) 2021-02-16
CN107710169B (zh) 2024-03-26
EP3399421B1 (en) 2023-03-22
WO2017139973A1 (zh) 2017-08-24
CA3012236A1 (en) 2017-08-24
AU2016393275B2 (en) 2019-10-10
US20180357013A1 (en) 2018-12-13
US10732898B2 (en) 2020-08-04
EP3399421A4 (en) 2019-02-13
JP6817318B2 (ja) 2021-01-20
AU2016393275A1 (en) 2018-08-09
CN107710169A (zh) 2018-02-16
EP3399421A1 (en) 2018-11-07
JP2019512832A (ja) 2019-05-16
KR20180103106A (ko) 2018-09-18
SG11201806099WA (en) 2018-08-30

Similar Documents

Publication Publication Date Title
KR102114256B1 (ko) 플래시 메모리 디바이스 액세스 방법 및 장치
US10796774B2 (en) Method and apparatus for refreshing flash memory device
KR102289919B1 (ko) 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
US20150205664A1 (en) Determining a configuration parameter using a soft read command
US10692559B2 (en) Performing an on demand refresh operation of a memory sub-system
US10956317B2 (en) Garbage collection in non-volatile memory that fully programs dependent layers in a target block
US10884669B2 (en) Controller, operation method of the controller and memory system
KR20150020385A (ko) 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
KR20120081351A (ko) Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법
CN113590503B (zh) 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统
KR20200122522A (ko) 컨트롤러 및 그 동작 방법
CN111309642B (zh) 一种存储器及其控制方法与存储系统
US11960745B2 (en) Empty page scan operations adjustment
US20240126473A1 (en) Data storage device and method for managing a write buffer
US20240143226A1 (en) Data storage device and method for managing a write buffer

Legal Events

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