KR20100111992A - Flash memory storage device and computing system including the same - Google Patents

Flash memory storage device and computing system including the same Download PDF

Info

Publication number
KR20100111992A
KR20100111992A KR1020090030506A KR20090030506A KR20100111992A KR 20100111992 A KR20100111992 A KR 20100111992A KR 1020090030506 A KR1020090030506 A KR 1020090030506A KR 20090030506 A KR20090030506 A KR 20090030506A KR 20100111992 A KR20100111992 A KR 20100111992A
Authority
KR
South Korea
Prior art keywords
flash memory
storage device
physical space
memory storage
space
Prior art date
Application number
KR1020090030506A
Other languages
Korean (ko)
Other versions
KR101629179B1 (en
Inventor
천원문
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020090030506A priority Critical patent/KR101629179B1/en
Priority to US12/755,644 priority patent/US8412909B2/en
Publication of KR20100111992A publication Critical patent/KR20100111992A/en
Application granted granted Critical
Publication of KR101629179B1 publication Critical patent/KR101629179B1/en

Links

Images

Classifications

    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

PURPOSE: A flash memory storage device and a computing system including the device are provided to improve the write performance of the flash memory storage device by adjusting the physical space. CONSTITUTION: A storage media(2500) has the physical space and stores data. A controller(2300) varies the capacity information showing the physical space as described above in response to request from outside, and adjusts the physical space of the storage media. The adjusted physical space as described above is used as a user address space. The storage except the adjusted physical space as described above is used as the space for improving the write performance of the flash memory storage device.

Description

플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템{FLASH MEMORY STORAGE DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME}FLASH MEMORY STORAGE DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME

본 발명은 전자 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템에 관한 것이다.TECHNICAL FIELD The present invention relates to electronic devices, and more particularly, to a flash memory storage device and a computing system including the same.

최근 기술 개발에 따르면, 사무용 데스크탑 컴퓨터와 이동 환경용 노트북 컴퓨터와 같은 다양항 형태의 개인용 컴퓨터가 개발되고 시장에 출시되고 있다. 일반적으로, 이러한 컴퓨터 시스템들은 메인 메모리와 외부 저장 장치를 포함한다. 외부 저장 장치가 저장 용량의 낮은 단위 가격의 큰 메모리 용량을 갖는 것이 바람직하다.According to recent technology developments, various types of personal computers, such as office desktop computers and portable notebook computers for mobile environments, have been developed and placed on the market. In general, such computer systems include main memory and external storage. It is desirable for an external storage device to have a large memory capacity with a low unit price of storage capacity.

외부 저장 장치들은 디스크 저장 매체를 이용한 종래의 하드 디스크 드라이브(HDD) 또는 플로피 디스크 드라이브(FDD)일 것이다. 이러한 디스크 저장 장치들은 일반적으로 낮은 가격으로 큰 메모리 용량을 제공하지만, 마크네틱 헤드로 다양한 동작들(예를 들면, 디스크 탐색 동작)을 수행하기 위해 상당히 섬세한 기계적인 기술을 요구한다. 따라서, 디스크 저장 장치들은 물리적인 충격에 쉽게 손상될 수 있고 그러므로 다른 형태의 메모리 장치보다 신뢰성이 낮은 것으로 여겨질 수 있 다.The external storage devices may be a conventional hard disk drive (HDD) or floppy disk drive (FDD) using a disk storage medium. Such disk storage devices generally provide a large memory capacity at a low price, but require a fairly delicate mechanical technique to perform various operations (eg, disk seek operations) with the mechanical head. Thus, disk storage devices can be easily damaged by physical shocks and therefore can be considered less reliable than other types of memory devices.

과거에, DRAM 또는 SRAM과 같은 저장 매체로서 반도체 메모리를 사용한 외부 메모리 장치들은 디스크 저장 장치들에 대한 실행가능한 대안을 제공하지 못하고 있다. 비록 반도체-타입 외부 메모리 장치들이 디스크 액세스 시간보다 빠른 처리 속도를 갖고 물리적인 충격에 대해 더 영향을 받더라도, DRAM과 SRAM 기술과 관련된 근본적인 단점은 대용량의 스토리지를 위해서 SRAM과 DRAM 기술의 사용을 막아왔다는 것이다.In the past, external memory devices using semiconductor memory as a storage medium such as DRAM or SRAM have not provided a viable alternative to disk storage devices. Although semiconductor-type external memory devices have faster processing speeds than disk access times and are more affected by physical shocks, a fundamental disadvantage associated with DRAM and SRAM technology has been to prevent the use of SRAM and DRAM technology for high-capacity storage. will be.

일반적으로, SRAM의 메모리 용량 당 가격은 SRAM을 대용량 스토리지 용도로 비용 효과적으로(cost-effective) 사용하기에는 너무 비싸다. 게다가, DRAM 내의 데이터를 보존하기 위해 요구되는 추가적인 전력은 외부 저장 장치의 운용 비용을 증가시키고, DRAM 리프레쉬 동작과 관련된 전력 소모는 감소된 전력 소모가 바람직한 이동 환경에 DRAM을 구현하기 어렵게 만든다.In general, the price per memory capacity of an SRAM is too expensive to cost-effectively use the SRAM for large storage applications. In addition, the additional power required to preserve data in the DRAM increases the operating cost of the external storage device, and the power consumption associated with DRAM refresh operations makes it difficult to implement DRAM in a mobile environment where reduced power consumption is desirable.

반면, 플래시 EEPROM과 같은 플래시 메모리로 구현된 외부 반도체 메모리 장치들은 임의의 환경에서 디스크 저장 장치들에 대한 실행 가능한 대안을 제공한다. 플래시 메모리 장치들은 한 번 이상 프로그램되는 불 휘발성 메모리 장치들이다. 게다가, 플래시 메모리 장치들은 쉽게 구현될 수 있는 간단한 구조를 갖는다. 플래시 메모리 장치들이 일반적으로 적은 전력을 소모하고, 콤팩트하고, 가볍고, 그리고 물리적인 충격에 덜 손상되기 때문에, 플래시 메모리 장치들은 플래시 메모리 장치와 관련된 트레이드-오프(trade-offs)에도 불구하고 종종 이동 환경에 적합하다.On the other hand, external semiconductor memory devices implemented with flash memory, such as flash EEPROM, provide a viable alternative to disk storage devices in any environment. Flash memory devices are nonvolatile memory devices that are programmed more than once. In addition, flash memory devices have a simple structure that can be easily implemented. Because flash memory devices typically consume less power, are compact, lightweight, and less susceptible to physical shocks, flash memory devices are often mobile in spite of the trade-offs associated with flash memory devices. Suitable for

본 발명의 목적은 성능 향상을 위해 물리적인 공간(또는 저장 용량)을 조절할 수 있는 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템을 제공하는 것이다.SUMMARY OF THE INVENTION An object of the present invention is to provide a flash memory storage device and a computing system including the same capable of adjusting physical space (or storage capacity) for improved performance.

예시적인 실시예의 일 특징은 물리적인 공간을 가지며, 데이터 정보를 저장하는 저장 매체와; 그리고 외부로부터의 요청에 응답하여 상기 저장 매체의 물리적인 공간을 조정하도록 구성된 컨트롤러를 포함하며, 상기 조정된 물리적인 공간은 사용자 주소 공간으로 사용되는 플래시 메모리 저장 장치를 제공하는 것이다.One aspect of an exemplary embodiment includes a storage medium having a physical space and storing data information; And a controller configured to adjust a physical space of the storage medium in response to a request from an external device, wherein the adjusted physical space provides a flash memory storage device used as a user address space.

예시적인 실시예에 있어서, 상기 컨트롤러는 상기 외부로부터의 요청시 상기 물리적인 공간을 나타내는 용량 정보를 변경하여 상기 물리적인 공간을 조정한다.In an exemplary embodiment, the controller adjusts the physical space by changing capacity information indicating the physical space upon request from the outside.

예시적인 실시예에 있어서, 상기 용량 정보는 최대 LBA 주소를 포함한다.In an exemplary embodiment, the capacity information includes a maximum LBA address.

예시적인 실시예에 있어서, 상기 조정된 물리적인 공간 이외의 저장 공간은 상기 플래시 메모리 저장 장치의 쓰기 성능을 향상시키기 위한 공간으로서 사용된다.In an exemplary embodiment, the storage space other than the adjusted physical space is used as a space for improving the write performance of the flash memory storage device.

예시적인 실시예에 있어서, 상기 컨트롤러는 상기 물리적인 공간이 조정된 후 외부의 요청에 따라 상기 조정된 물리적인 공간에 대한 디스크 포맷 절차를 수행하도록 구성된다.In an exemplary embodiment, the controller is configured to perform a disk format procedure for the adjusted physical space according to an external request after the physical space is adjusted.

예시적인 실시예의 다른 특징은 물리적인 공간을 갖는 저장 매체를 포함하는 플래시 메모리 저장 장치와; 그리고 상기 플래시 메모리 저장 장치를 제어하도록 구성된 호스트 시스템을 포함하며, 상기 호스트 시스템은 상기 플래시 메모리 저장 장치의 물리적인 공간을 조정하기 위한 명령을 발생하고, 상기 플래시 메모리 저장 장치는 상기 명령에 응답하여 상기 저장 매체의 물리적인 공간을 조정하며, 상기 조정된 물리적인 공간은 사용자 용량을 나타내는 컴퓨팅 시스템을 제공하는 것이다.Another aspect of an example embodiment includes a flash memory storage device including a storage medium having physical space; And a host system configured to control the flash memory storage device, wherein the host system generates a command for adjusting a physical space of the flash memory storage device, and the flash memory storage device responds to the command. To adjust the physical space of the storage medium, the adjusted physical space is to provide a computing system representing the user capacity.

예시적인 실시예에 있어서, 상기 플래시 메모리 저장 장치는 상기 명령의 입력시 상기 물리적인 공간을 나타내는 용량 정보를 변경한다.In an exemplary embodiment, the flash memory storage device changes capacity information representing the physical space upon input of the command.

예시적인 실시예에 있어서, 상기 용량 정보는 최대 LBA 주소를 포함한다.In an exemplary embodiment, the capacity information includes a maximum LBA address.

예시적인 실시예에 있어서, 상기 조정된 물리적인 공간 이외의 저장 공간은 상기 플래시 메모리 저장 장치의 쓰기 성능을 향상시키기 위한 공간으로서 사용된다.In an exemplary embodiment, the storage space other than the adjusted physical space is used as a space for improving the write performance of the flash memory storage device.

예시적인 실시예에 있어서, 상기 물리적인 공간이 조정된 후 상기 조정된 물리적인 공간에 대한 디스크 포맷 절차가 수행된다.In an exemplary embodiment, the disk format procedure for the adjusted physical space is performed after the physical space is adjusted.

예시적인 실시예에 있어서, 상기 플래시 메모리 저장 장치는 에스에스디 또는 메모리 카드이다.In an exemplary embodiment, the flash memory storage device is an SD or memory card.

예시적인 실시예에 의하면, 물리적인 공간의 조정을 통해 플래시 메모리 저장 장치의 쓰기 성능을 향상시키는 것이 가능하다.According to an exemplary embodiment, it is possible to improve the write performance of the flash memory storage device by adjusting the physical space.

이하, 예시적인 실시예들이 참조 도면들에 의거하여 상세히 설명될 것이다.Exemplary embodiments will now be described in detail with reference to the accompanying drawings.

도 1은 예시적인 실시예에 따른 플래시 메모리 저장 장치를 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이고, 도 2는 도 1에 도시된 플래시 메모리 저장 장치의 물리적인 공간이 가변됨을 보여주는 도면이며, 도 3은 예시적인 실시예에 따른 플래시 메모리 저장 장치의 사상 기법을 설명하기 위한 도면이다.1 is a block diagram schematically illustrating a computing system including a flash memory storage device according to an exemplary embodiment, and FIG. 2 is a view illustrating that a physical space of the flash memory storage device illustrated in FIG. 1 is changed, and FIG. 3. Is a view for explaining a mapping technique of a flash memory storage device according to an exemplary embodiment.

도 1을 참조하면, 예시적인 실시예에 따른 컴퓨팅 시스템은 호스트 시스템(1000)과 플래시 메모리 저장 장치(2000)를 포함한다. 플래시 메모리 저장 장치(2000)는 플래시 메모리를 이용한 저장 장치이며, 반도체 디스크/드라이브(Solid-State Disk/Drive: SSD), 메모리 카드, 등을 포함할 것이다. 플래시 메모리 저장 장치(2000)는 데이터 정보를 저장하기 위한 물리적인 공간(physical space)을 갖는다. 특히, 플래시 메모리 저장 장치(2000)의 물리적인 공간은 호스트 시스템(1000)의 요청에 따라 가변될 것이다. 플래시 메모리 저장 장치(2000)의 가변되는 물리적인 공간은 사용자에게 보여지는 저장 공간(또는, 사용자 주소 공간)을 나타낸다. 다시 말해서, 사용자에게 보여지는 저장 공간이 가변된다.Referring to FIG. 1, a computing system according to an exemplary embodiment includes a host system 1000 and a flash memory storage device 2000. The flash memory storage device 2000 may be a storage device using a flash memory, and may include a solid-state disk / drive (SSD), a memory card, and the like. The flash memory storage device 2000 has a physical space for storing data information. In particular, the physical space of the flash memory storage device 2000 may vary according to a request of the host system 1000. The variable physical space of the flash memory storage device 2000 represents a storage space (or user address space) that is viewed by a user. In other words, the storage space shown to the user is variable.

예를 들면, 도 2에 도시된 바와 같이, 플래시 메모리 저장 장치(2000)의 실질적인 물리적인 공간이 100GB라 가정하자. 100GB의 물리적인 공간은 호스트 시스템(1000)의 요청/제어에 따라 90GB의 물리적인 공간으로 또는 70GB의 물리적인 공간으로 가변된다. 이러한 경우, 비록 플래시 메모리 저장 장치(2000)의 실질적인 물리적인 공간이 100GB이지만, 사용자에 의해서 사용될 수 있는 물리적인 공간(즉, 사용자 주소 공간)은 70GB 또는 90GB가 된다. 특히, 예시적인 실시예에 따른 플래 시 메모리 저장 장치(2000)의 물리적인 공간의 가변이 저장 장치의 물리적인 공간을 분할하는 개념(예를 들면, 파티션)과 다르다는 것에 주의해야 한다. 예시적인 실시예에 따른 물리적인 공간의 가변은 사용자에 의해서 사용되는 물리적인 공간의 감소를 초래하는 반면에, 물리적인 공간의 분할은 사용자에 의해서 사용되는 물리적인 공간의 감소를 초래하지 않는다. 이하, 물리적인 공간의 가변을 통해 남은 공간을 '스페어 공간'(spare space) (또는 '여분의 공간'(extra space))라 칭한다. 플래시 메모리 저장 장치(2000)의 사용자 용량은 물리적인 공간(또는, 사용자 주소 공간)에 대응하며, 스페어 공간은 사용자 용량에 포함되지 않는다. 플래시 메모리 저장 장치(2000)의 쓰기 성능(write performance)은 플래시 메모리 저장 장치(2000)의 스페어 공간에 의존할 것이다. 다시 말해서, 스페어 공간의 크기에 따라 쓰기 성능이 변화되며, 이는 이후 상세히 설명될 것이다.For example, assume that the actual physical space of the flash memory storage device 2000 is 100GB, as shown in FIG. The physical space of 100 GB is changed to a physical space of 90 GB or a physical space of 70 GB according to the request / control of the host system 1000. In this case, although the actual physical space of the flash memory storage device 2000 is 100 GB, the physical space that can be used by the user (ie, the user address space) is 70 GB or 90 GB. In particular, it should be noted that the variation of the physical space of the flash memory storage device 2000 according to the exemplary embodiment is different from the concept of dividing the physical space of the storage device (eg, a partition). Variation of the physical space according to an exemplary embodiment results in a reduction of the physical space used by the user, while partitioning the physical space does not result in a reduction of the physical space used by the user. Hereinafter, the remaining space through the change of the physical space is referred to as a 'spare space' (or 'extra space'). The user capacity of the flash memory storage device 2000 corresponds to a physical space (or a user address space), and the spare space is not included in the user capacity. The write performance of the flash memory storage device 2000 will depend on the spare space of the flash memory storage device 2000. In other words, the write performance changes depending on the size of the spare space, which will be described in detail later.

호스트 시스템(1000)은 논리적인 어드레스를 지시함으로써 플래시 메모리 저장 장치(2000)를 액세스한다. 논리적인 어드레스는 물리적인 저장 위치와 비교하여 볼 때 호스트 소프트웨어(즉, 운영 시스템 또는 어플리케이션)가 인식하는 논리적인 메모리 공간 중 임의의 위치를 참조한다. 따라서, 논리적인 어드레스는 지정된 물리적인 메모리 공간을 액세스하기 위해서 플래시 메모리 저장 장치(2000)의 물리적인 메모리 공간에 대응하는 물리적인 어드레스로 변환된다.The host system 1000 accesses the flash memory storage device 2000 by indicating a logical address. The logical address refers to any location in the logical memory space that the host software (ie, operating system or application) recognizes as compared to the physical storage location. Thus, the logical address is translated into a physical address corresponding to the physical memory space of the flash memory storage device 2000 in order to access the designated physical memory space.

플래시 메모리를 사용한 저장 장치는 액세스 동작 동안 호스트 시스템과의 호환성을 보장하기 위해서 디스크 에뮬레이션 소프트웨어(disk emulation software)라 불리는 추가적인 소프트웨어를 필요로 한다. 액세스 동작 동안 호스트 시스템(1000)과 플래시 메모리 저장 장치(2000) 사이의 호환성은 펌웨어(firmware)로서 플래시 변환 레이어(Flash Translation Layer)(이하, 'FTL'이라 칭함)과 같은 파일 시스템을 운영함으로써 달성될 수 있다. 다시 말해서, 호스트 시스템(1000)은 플래시 메모리 저장 장치(2000)를 HDD으로서 인식하여 HDD와 동일한 방식으로 플래시 메모리 저장 장치(2000)를 액세스한다. FTL은 특정 컴퓨터 시스템의 운영 시스템에 의해서 사용되는 파일 시스템에 플래시 메모리 저장 장치를 연결하며, 동일한 어드레스에 소거없이 한번 이상의 쓰기를 허여하지 않는다.Storage devices using flash memory require additional software, called disk emulation software, to ensure compatibility with the host system during access operations. Compatibility between the host system 1000 and the flash memory storage device 2000 during the access operation is achieved by operating a file system such as a Flash Translation Layer (hereinafter referred to as 'FTL') as firmware. Can be. In other words, the host system 1000 recognizes the flash memory storage device 2000 as an HDD and accesses the flash memory storage device 2000 in the same manner as the HDD. FTL connects a flash memory storage device to a file system used by an operating system of a particular computer system and does not allow more than one write to the same address without erasing.

FTL의 기능들은 논리 어드레스-물리 어드레스 사상 정보 관리, 배드 블럭 관리, 예상치 못한 전원 차단에 기인한 데이터 보존성 관리, 마모도 관리 등을 포함한다.The functions of the FTL include logical address-physical address mapping information management, bad block management, data retention management due to unexpected power failure, wear management, and the like.

플래시 메모리가 블록 단위로 액세스되는 경우에, 플래시 메모리는 복수의 블록들로 분할된다. 분할된 블록에 순차적으로 할당된 번호는 물리 블록 번호라 불리며, 사용자가 생각하는 분할된 블록의 가상 번호는 논리 블록 번호라 불린다. 논리 블록 번호와 물리 블록 번호 간의 사상을 제공하는 방법은 블록 사상 기법, 섹터 사상 기법, 그리고 로그 사상 기법을 포함한다. 예시적인 사상 기법들이 U.S. Patent No. 5,404,485에 "FLASH FILE SYSTEM"이라는 제목으로, U.S. Patent No. 5,937,425에 "FLASH FILE SYSTEM OPTIMIZED FOR PAGE-MODE FLASH TECHNOLOGIES"라는 제목으로, U.S. Patent No. 6,381,176에 "METHOD OF DRIVING REMAPPING IN FLASH MEMORY AND FLASH MEMORY ARCHITECTURE SUITABLE THEREFOR"라는 제목으로, 그리고 미국특허공개번호 제2006-0004971호에 "INCREMENTAL MERGE METHODS AND MEMORY SYSTEM INCLUDING THE SAME"라는 제목으로 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함된다.When the flash memory is accessed block by block, the flash memory is divided into a plurality of blocks. The numbers sequentially assigned to the divided blocks are called physical block numbers, and the virtual number of the divided blocks considered by the user is called a logical block number. Methods for providing mapping between logical block numbers and physical block numbers include block mapping, sector mapping, and log mapping. Exemplary mapping techniques are described in U.S. Patent No. 5,404,485 entitled "FLASH FILE SYSTEM", U.S. Patent No. 5,937,425 entitled "FLASH FILE SYSTEM OPTIMIZED FOR PAGE-MODE FLASH TECHNOLOGIES", U.S. Pat. Patent No. 6,381,176 entitled "METHOD OF DRIVING REMAPPING IN FLASH MEMORY AND FLASH MEMORY ARCHITECTURE SUITABLE THEREFOR," and US Patent Publication No. 2006-0004971, entitled "INCREMENTAL MERGE METHODS AND MEMORY SYSTEM INCLUDING THE SAME." , Which is incorporated by reference in this application.

사상 기법을 이용한 FTL에서는 논리적으로 연속된 어드레스를 가지는 데이터가 물리적으로는 서로 상이한 위치에 기록되어 있을 수 있다. 플래시 메모리는 쓰기(또는 프로그램) 단위보다 소거 단위가 더 크기 때문에 일정한 한계에 다다르면 임의의 빈 블록을 이용하여 물리적으로 서로 상이한 위치에 분산되어 있는 연속된 데이터를 동일한 어드레스 공간으로 모으는 작업을 필요로 하며, 이러한 과정을 머지 동작이라고 한다. 이러한 머지 동작의 발생은 복수의 프로그램 동작들과 블록 소거 동작을 수반하며, 이는 플래시 메모리 저장 장치(2000)의 쓰기 성능이 저하되게 한다.In FTL using the mapping technique, data having logically contiguous addresses may be physically recorded at different positions. Because flash memory has a larger erase unit than write (or program) units, when a certain limit is reached, the task of collecting random data in the same address space using random free blocks is required. This process is called merge operation. The generation of the merge operation involves a plurality of program operations and a block erase operation, which causes the write performance of the flash memory storage device 2000 to be degraded.

예시적인 로그 사상 기법을 보여주는 도 3을 참조하면, 플래시 메모리 저장 장치(2000)의 메모리 블록들은 데이터 블록들, 로그 블록들, 그리고 빈 블록들(free block)으로 나눌 수 있다. 데이터 블록들은 블록 단위로 사용자 데이터를 저장하는 데 사용되며, 빈 블록들은 사용자 데이터를 포함하지 않거나 더 이상 사용자 주소 공간에 사상되지 않는 메모리 블록들을 의미한다. 로그 블록들은 일종의 페이지 사상 블록으로, 데이터 블록들과는 달리 페이지 단위로 사상된 메모리 블록을 의미한다. 로그 블록들은 쓰기 버퍼 블록이라고 볼 수 있다. 기존의 사용자 데이터가 데이터 블록에 이미 존재하고 있다고 가정하자. 만약 그러한 데이터 블록에 대한 업데이트 쓰기 요청이 들어오게 되면, 빈 블록은 로그 블록으로 할당되도록 사상될 것이다. 하나의 로그 블록은 사상된 데이터 블록의 주소 공간에 대한 업데 이트 쓰기 동작만을 처리하는 데 사용된다.Referring to FIG. 3, which illustrates an exemplary log mapping technique, memory blocks of the flash memory storage device 2000 may be divided into data blocks, log blocks, and free blocks. Data blocks are used to store user data on a block-by-block basis, and empty blocks refer to memory blocks that do not contain user data or are no longer mapped in the user address space. The log blocks are a kind of page mapping block, and, unlike data blocks, refer to memory blocks mapped in page units. Log blocks are considered write buffer blocks. Assume that existing user data already exists in a data block. If an update write request for such a data block comes in, an empty block will be mapped to be allocated as a log block. One log block is used to handle only update write operations to the address space of the mapped data block.

플래시 메모리 저장 장치(2000)의 사용자 용량은 데이터 블록들(플래시 메모리 저장 장치의 물리적인 공간에 대응함)의 전체 크기와 같으며, 로그 블록들과 빈 블록들은 사용자 용량(또는, 사용자 공간)에 포함되지 않는다. 즉, 로그 블록들과 빈 블록들은 스페어 공간(또는, 여분의 공간)에 포함될 것이다.The user capacity of the flash memory storage device 2000 is equal to the total size of the data blocks (corresponding to the physical space of the flash memory storage device), and log blocks and empty blocks are included in the user capacity (or user space). It doesn't work. That is, log blocks and free blocks will be included in the spare space (or the spare space).

플래시 메모리가 덮어쓰기 기능을 지원하지 않기 때문에, 기본적으로, 하나 또는 그 보다 많은 빈 블록들과 같은 업데이트용 메모리 블록이 요구된다. 로그 사상 기법의 경우, 플래시 메모리 저장 장치(2000)의 성능은 로그 블록들의 수에 따라서 차이가 생길 수 있다. 예를 들어, 플래시 메모리 저장 장치(2000)가 8192 개의 메모리 블록들로 구성되고 메모리 블록들 중 8000개가 데이터 블록들으로 할당되며, 나머지가 로그 블록 또는 빈 블록으로 할당된다고 가정하자. 이때, 로그 블록 수는 최대 191개를 넘을 수 없으며, 로그 블록 수의 제한으로 인해서 FTL은 머지 동작을 수행해야 한다. 앞서 언급된 바와 같이, 머지 동작은 데이터 블록과 로그 블록에 존재하는 최신 페이지들을 모으고, 모아진 페이지들을 하나의 데이터 블록으로 만들고, 기존의 로그 블록과 데이터 블록은 2개의 빈 블록들로 만들어내는 동작이다. 머지 동작이 다수의 프로그램 동작들과 블록 소거 동작을 수반하기 때문에 머지 동작이 발생하게 되면 플래시 메모리 저장 장치(2000)의 쓰기 성능은 떨어지게 된다. 이러한 머지 동작의 발생 빈도에 따라서 플래시 메모리 저장 장치(2000)의 전체적인 성능이 좌우될 수 있다. 또한, 머지 동작이 사용자 데이터의 쓰기 외에 FTL 내부에서 발생하는 부가적인 프로그램 및 소거 동작들을 포함하기 때문에, 머지 발생 횟수가 증가할수록 플래시 메모리 저장 장치(2000)의 수명은 줄어들게 된다. 따라서 최대 할당 가능한 로그 블록들의 수가 플래시 메모리 저장 장치(2000)의 성능 및 수명에 영향을 줄 것이다. 이는 스페어 공간에 포함되는 메모리 블록들인 로그 블록들의 수가 증가됨에 따라 성능 및 수명이 개선됨을 의미한다.Since the flash memory does not support the overwrite function, basically, an update memory block such as one or more empty blocks is required. In the case of the log mapping technique, the performance of the flash memory storage device 2000 may vary depending on the number of log blocks. For example, assume that the flash memory storage device 2000 is composed of 8192 memory blocks, 8000 of the memory blocks are allocated as data blocks, and the rest are allocated as log blocks or empty blocks. At this time, the number of log blocks cannot exceed 191, and due to the limitation of the number of log blocks, the FTL must perform a merge operation. As mentioned above, the merge operation is the operation of collecting the latest pages existing in the data block and the log block, making the collected pages into one data block, and generating the existing log block and the data block into two empty blocks. . Since the merge operation involves a plurality of program operations and a block erase operation, when the merge operation occurs, the write performance of the flash memory storage device 2000 may be degraded. The overall performance of the flash memory storage device 2000 may depend on the occurrence frequency of the merge operation. In addition, since the merge operation includes additional program and erase operations occurring inside the FTL in addition to the writing of the user data, as the number of merge occurrences increases, the lifetime of the flash memory storage device 2000 may decrease. Therefore, the maximum number of assignable log blocks will affect the performance and lifespan of the flash memory storage device 2000. This means that performance and lifespan are improved as the number of log blocks, which are memory blocks included in the spare space, is increased.

앞서 설명된 사상 기법 뿐만 아니라 블록 사상 기법 또는 페이지 사상 기법의 경우에도 사용자 용량 대비 부가적인 저장 공간(즉, 스페어 공간)의 비율에 따라 플래시 메모리 저장 장치(2000)의 성능은 차이가 생길 수 있다. 페이지 사상 기법의 경우, 이미 쓰여진 페이지에 덮어쓰기 요청(overwrite request)이 들어오게 되면 새로운 페이지에 적게 되며 이전에 적혀 있는 물리 페이지는 무효화 된다. 이렇게 무효화 되는 페이지들이 전체 데이터 블록들에 걸쳐 흩어져 있을 수 있으므로 이를 제거하고 최신의 유효한 페이지들로만 모으는 작업이 요구된다. 이러한 작업을 컴팩션(compaction) 또는 가비지 컬렉션(garbage collection)이라고 부른다. 컴팩션이 발생하게 되면 사용자 쓰기 요구 외에 부가적인 프로그램 및 소거 동작들이 발생하며, 이는 플래시 메모리 저장 장치(2000)의 성능 저하의 원인이 된다. 따라서, 컴팩션 발생 빈도를 줄이거나 컴팩션시 발생하는 페이지 카피 수를 줄이게 되면 플래시 메모리 저장 장치(2000)의 성능이 향상될 수 있다. 따라서, 플래시 메모리 저장 장치(2000)의 성능은 사용자 공간 대비 스페어 공간(또는, 여분의 저장 공간)의 비율이 클수록 더욱 향상될 것이다.In addition to the above-described mapping scheme, the performance of the flash memory storage device 2000 may vary depending on a ratio of additional storage space (ie, spare space) to user capacity. In the case of the page mapping technique, when an overwrite request is received on a page that has already been written, it is written to a new page and the previously written physical page is invalidated. Since these invalidated pages may be scattered over the entire data blocks, it is necessary to remove them and collect only the latest valid pages. This task is called compaction or garbage collection. When compaction occurs, additional program and erase operations occur in addition to a user write request, which causes performance degradation of the flash memory storage device 2000. Accordingly, when the frequency of compaction is reduced or the number of page copies generated during compaction is reduced, the performance of the flash memory storage device 2000 may be improved. Therefore, the performance of the flash memory storage device 2000 may be further improved as the ratio of the spare space (or the extra storage space) to the user space is large.

결론적으로, 앞서 언급된 바와 같이, 플래시 메모리 저장 장치(2000)의 물리 적인 공간과 스페어 공간의 비율에 따라 즉, 스페어 공간의 용량에 따라 플래시 메모리 저장 장치(2000)의 쓰기 성능이 좌우된다. 예시적인 실시예에 따른 플래시 메모리 저장 장치(2000)의 물리적인 공간(또는, 사용자 주소 공간)을 조정함으로써 여분의 저장 공간(즉, 스페어 공간)을 충분히 확보하는 것이 가능하다. 이는 플래시 메모리 저장 장치(2000)의 쓰기 성능이 개선됨을 의미한다.In conclusion, as described above, the write performance of the flash memory storage device 2000 depends on the ratio of the physical space and the spare space of the flash memory storage device 2000, that is, the capacity of the spare space. By adjusting the physical space (or user address space) of the flash memory storage device 2000 according to an exemplary embodiment, it is possible to secure enough spare space (ie, spare space). This means that the write performance of the flash memory storage device 2000 is improved.

도 4는 플래시 메모리 저장 장치의 용량과 쓰기 성능 사이의 상관 관계를 보여주는 도면이다. 도 4에 도시된 상관 관계 곡선은 FTL의 알고리즘 및 구현 방법에 따라 상이할 수 있으나, 일반적인 용량 대비 성능 사이의 관계성은 항상 유지될 것이다. 즉, 임의 쓰기 성능과 사용자 저장 공간으로 할당된 용량은 반비례 관계를 갖는다. 이는 사용자 저장 공간을 일부 축소시켜서 임의 쓰기 성능을 향상시킬 수 있음을 의미한다. 다시 말해, 동일한 플래시 메모리 칩을 구비한 저장 장치라고 할지라도 사용자가 쓸 수 있는 저장 용량의 감소를 통해 성능 향상이 가능하다.4 is a diagram illustrating a correlation between a capacity and a write performance of a flash memory storage device. The correlation curves shown in FIG. 4 may differ depending on the algorithm and implementation method of the FTL, but the relationship between typical capacity versus performance will always be maintained. In other words, random write performance is inversely related to the capacity allocated to user storage space. This means that you can improve random write performance by reducing some of the user storage space. In other words, even a storage device having the same flash memory chip may improve performance by reducing a user's usable storage capacity.

도 5는 예시적인 실시예에 따른 플래시 메모리 저장 장치를 개략적으로 보여주는 블록도이다.Fig. 5 is a block diagram schematically illustrating a flash memory storage device according to an exemplary embodiment.

도 5를 참조하면, 플래시 메모리 저장 장치(2000)는 CPU(2100), RAM(2200), 플래시 메모리 제어 블록(2300), 호스트 인터페이스 제어 블록(2400), 그리고 복수의 플래시 메모리 칩들로 구성된 저장 매체(2500)를 포함한다. CPU(2100), RAM(2200), 플래시 메모리 제어 블록(2300), 그리고 호스트 인터페이스 제어 블록(2400)은 저장 매체(2500)를 제어하기 위한 메모리 컨트롤러를 구성할 것이다.Referring to FIG. 5, a flash memory storage device 2000 may include a CPU 2100, a RAM 2200, a flash memory control block 2300, a host interface control block 2400, and a storage medium including a plurality of flash memory chips. (2500). The CPU 2100, the RAM 2200, the flash memory control block 2300, and the host interface control block 2400 may configure a memory controller for controlling the storage medium 2500.

CPU(2100)는 플래시 메모리 저장 장치(2000)의 동작을 전반적으로 제어하며, RAM(2200)은 데이터 메모리 그리고 워크 메모리로 사용된다. RAM(2200)은, 예를 들면, SRAM, DRAM, 또는 그와 같은 것으로 구성될 수 있다. 플래시 메모리 제어 블록(2300)은 CPU(2100)의 제어에 따라 저장 매체(2500)의 액세스를 제어하며, 에러 정정을 위한 ECC 엔진(미도시됨)을 기본적으로 포함할 것이다. 또는, CPU(2100)가 고성능 처리 유니트로 구성되는 경우, 에러 정정은 CPU(2100)에 의해서 실행되는 에러 정정 프로그램을 통해 행해질 수 있다. 플래시 메모리 저장 장치(2000)가 메모리 카드인 경우, 호스트 인터페이스 제어 블록(2400)은 SD 카드 인터페이스나 MMC 카드 인터페이스를 통해 호스트 시스템(1000)과 인터페이스할 것이다. 플래시 메모리 저장 장치(2000)가 SSD인 경우, 호스트 인터페이스 제어 블록(2400)은 PATA 인터페이스, SATA 인터페이스, SAS 인터페이스, PCI-express 인터페이스, 또는 그와 같은 것을 통해 호스트 시스템(1000)과 인터페이스할 것이다.The CPU 2100 generally controls the operation of the flash memory storage device 2000, and the RAM 2200 is used as a data memory and a work memory. RAM 2200 may be configured, for example, with SRAM, DRAM, or the like. The flash memory control block 2300 controls the access of the storage medium 2500 under the control of the CPU 2100, and basically includes an ECC engine (not shown) for error correction. Alternatively, when the CPU 2100 is configured as a high performance processing unit, error correction may be performed through an error correction program executed by the CPU 2100. When the flash memory storage device 2000 is a memory card, the host interface control block 2400 may interface with the host system 1000 through an SD card interface or an MMC card interface. If the flash memory storage device 2000 is an SSD, the host interface control block 2400 will interface with the host system 1000 via a PATA interface, SATA interface, SAS interface, PCI-express interface, or the like.

저장 매체(2500)에는, 기본적으로, 플래시 메모리 저장 장치(2000)의 디바이스 데이터(메타 데이터라고도 불림)(예를 들면, 메이커 정보, 물리적인 저장 공간을 나타내는 용량 정보(예를 들면, 최대 LBA 어드레스), 등을 포함함), FTL과 같은 펌웨어, 등이 저장된다. FTL은 물리적인 저장 공간을 나타내는 용량 정보를 이용하여 사상에 필요한 사상 테이블들을 생성한다. 그러한 용량 정보(즉, 최대 LBA 어드레스)는, 또한, 호스트 시스템(1000)의 요청에 따라, 플래시 메모리 저장 장치(2000)의 실제 사이즈(즉, 실제 용량)를 나타내는 정보로서 호스트 시스템(1000)으로 제공된다. 잘 알려진 바와 같이, 호스트 시스템(1000)이 'IDENTIFY DEVICE' 명령을 플래시 메모리 장치(2000)에 제공할 때, 플래시 메모리 저장 장치(2000)는 실제 사이즈를 나타내는 정보(즉, 최대 LBA 어드레스/값)을 호스트 시스템(1000)으로 제공할 것이다. 플래시 메모리 저장 장치(2000)를 실질적으로 사용하기 위해서, 호스트 시스템(1000)은 플래시 메모리 저장 장치(2000)에서 제공되는 실제 사이즈를 나타내는 정보(최대 LBA 어드레스/값)에 의거하여 디스크 포맷 절차(로우-레벨 포맷, 퍄티셔닝, 하이레벨 포맷 절차들을 포함함)를 수행하거나 HPA(Host Protected Area)을 준비할 것이다.In the storage medium 2500, basically, device data (also called meta data) of the flash memory storage device 2000 (e.g., maker information, capacity information indicating a physical storage space (e.g., a maximum LBA address) ), Firmware such as FTL, and the like. The FTL generates mapping tables necessary for mapping using capacity information representing physical storage space. Such capacity information (ie, maximum LBA address) is also transmitted to the host system 1000 as information indicating the actual size (ie, actual capacity) of the flash memory storage device 2000, at the request of the host system 1000. Is provided. As is well known, when the host system 1000 provides the 'IDENTIFY DEVICE' command to the flash memory device 2000, the flash memory storage device 2000 may provide information indicating the actual size (i.e., the maximum LBA address / value). Will be provided to the host system 1000. In order to actually use the flash memory storage device 2000, the host system 1000 uses a disk formatting procedure (lowest LBA address / value) based on information (maximum LBA address / value) indicating the actual size provided by the flash memory storage device 2000. -Will include level formatting, hitting, and high level formatting procedures) or prepare for a Host Protected Area (HPA).

예시적인 실시예에 있어서, 앞서 설명된 최대 LBA 어드레스/값 즉, 물리적인 공간을 나타내는 용량 정보는 호스트 시스템(1000)으로부터 특정 명령(예를 들면, SET_NATIVE_MAX_ADDRESS 명령)이 플래시 메모리 저장 장치(2000)에 입력될 때 변경될 것이다.In an exemplary embodiment, the capacity information indicating the maximum LBA address / value, i.e., physical space, described above may include a specific command (eg, a SET_NATIVE_MAX_ADDRESS command) transmitted from the host system 1000 to the flash memory storage device 2000. It will change when entered.

도 6은 플래시 메모리 저장 장치의 일반적인 소프트웨어 모듈 구성을 보여주는 도면이다.6 is a diagram illustrating a general software module configuration of a flash memory storage device.

도 6을 참조하면, 호스트 명령 핸들러(Host command handler)는 호스트 명령을 분석한다. 호스트가 요청하는 읽기/쓰기 위치는 플래시 메모리 저장 장치(2000)의 물리적 주소와는 1:1로 일치하지 않으며, 논리 주소를 물리 주소로 변환하는 소프트웨어 모듈인 FTL이 필요하다. FTL은 다시 논리 주소를 플래시 주소로 변환하는 주소 변환기(Address Translator)와 프로그램 소거 실패시 배드 블록으로 등록하고 배드 블록을 대체하는 역할을 수행하는 배드 블록 관리 모듈을 포함한다. 또한, FTL은 개별 플래시 메모리 칩에 대한 액세스(예를 들면, 읽기, 프로그램, 소거, 등)을 제어하는 플래시 메모리 제어기 인터페이스를 포함한다.Referring to FIG. 6, a host command handler analyzes a host command. The read / write location requested by the host does not match 1: 1 with the physical address of the flash memory storage device 2000, and requires a FTL, which is a software module that converts a logical address into a physical address. The FTL includes an address translator that translates a logical address back into a flash address and a bad block management module that registers as a bad block and replaces the bad block when a program erase fails. The FTL also includes a flash memory controller interface that controls access (eg, read, program, erase, etc.) to individual flash memory chips.

도 7은 예시적인 실시예에 따른 플래시 메모리 저장 장치(2000)의 물리적인 공간을 가변시키는 동작을 설명하기 위한 흐름도이다. 이하, 예시적인 실시예에 따른 플래시 메모리 저장 장치(2000)의 물리적인 공간을 가변시키는 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.7 is a flowchart illustrating an operation of changing a physical space of a flash memory storage device 2000 according to an exemplary embodiment. Hereinafter, an operation of changing a physical space of the flash memory storage device 2000 according to an exemplary embodiment will be described in detail with reference to the accompanying drawings.

먼저, S100 단계에서, 플래시 메모리 저장 장치(2000)는 호스트 시스템(1000)로부터의 특정 명령(예를 들면, SET_NATIVE_MAX_ADDRESS 명령)을 입력받는다. 입력된 특정 명령은 플래시 메모리 저장 장치(2000)의 물리적인 공간을 나타내는 용량 정보(예를 들면, 최대 LBA 어드레스)의 변경을 알리는 명령일 것이다. S200 단계에서, 플래시 메모리 저장 장치(2000)는 특정 명령과 함께 입력되는 업데이트용 용량 데이터에 의거하여 기존의 용량 정보(플래시 메모리 저장 장치의 실제 물리적인 공간을 나타냄)를 변경한다. 예를 들면, 용량 정보로서 최대 LBA 어드레스 값을 입력된 용량 데이터로 변경함으로써 플래시 메모리 저장 장치(2000)의 물리적인 공간(또는, 사용자 주소 공간)이 가변될 것이다.First, in step S100, the flash memory storage device 2000 receives a specific command (for example, a SET_NATIVE_MAX_ADDRESS command) from the host system 1000. The specific command input may be a command for notifying change of capacity information (eg, a maximum LBA address) indicating a physical space of the flash memory storage device 2000. In operation S200, the flash memory storage device 2000 changes existing capacity information (representing an actual physical space of the flash memory storage device) based on update capacity data input together with a specific command. For example, the physical space (or user address space) of the flash memory storage device 2000 may be changed by changing the maximum LBA address value as the input capacity data as the capacity information.

앞서 언급된 바와 같이, 물리적인 공간의 조정은 충분한 스페어 공간을 확보하여 플래시 메모리 저장 장치(2000)의 쓰기 성능을 향상시키기 위한 것이다. 그러한 스페어 공간은 사용자 용량에 포함되지 않는 플래시 메모리 저장 장치(2000)의 여분의 저장 공간이며, 스페어 공간에 포함된 메모리 블록들은, 로그 사상 기법의 경우, 로그 블록들과 빈 블록들로서 사용될 것이다. 스페어 공간에 포함된 메모리 블록들은, 또한, 배드 블록 관리를 위해서 사용될 수 있다. 스페어 공간에 포함된 메모리 블록들의 사용이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다.As mentioned above, the adjustment of the physical space is to secure sufficient spare space to improve the write performance of the flash memory storage device 2000. Such spare space is extra storage space of the flash memory storage device 2000 that is not included in the user capacity, and the memory blocks included in the spare space will be used as log blocks and empty blocks in the case of a log mapping technique. Memory blocks included in the spare space may also be used for bad block management. It will be appreciated that the use of memory blocks contained in the spare space is not limited to those disclosed herein.

일단 물리적인 공간이 정정되면, 도 2에서 설명된 바와 같이, 사용자 용량은 정정된 물리적인 공간에 의해서 결정될 것이다. 일단 물리적인 공간이 정정되면, S300 단계에서, 호스트 시스템(1000)의 요청에 따라 플래시 메모리 저장 장치(2000)의 사용을 위한 디스크 포맷 절차가 수행되거나 ATA 표준에 따라 HPA가 생성될 것이다. HPA의 생성은 이 분야에 잘 알려져 있으며, 그것에 대한 설명은 그러므로 생략될 것이다. 이후, S400 단계에서, 플래시 메모리 저장 장치(2000)는 호스트 시스템(1000)의 요청에 따라 읽기/쓰기 동작을 수행할 것이다.Once the physical space is corrected, as described in Figure 2, the user capacity will be determined by the corrected physical space. Once the physical space is corrected, in step S300, a disk format procedure for use of the flash memory storage device 2000 may be performed at the request of the host system 1000, or an HPA may be generated according to the ATA standard. The generation of HPA is well known in the art, and a description thereof will therefore be omitted. In operation S400, the flash memory storage device 2000 may perform a read / write operation according to a request of the host system 1000.

예시적인 실시예에 있어서, 파티션 개념과 HPA 생성과의 구분을 위해서 S300 및 S400 단계들이 예시적인 실시예로서 설명되었다. 앞서 설명된 단계들(S100, S200)(또는, S100, S200, S300(HPA 생성의 경우))은 플래시 메모리 저장 장치(2000)가 시장에 출하되기 이전에 행해질 것이다. 하지만, 특정 명령들이 사용자에게 제공되는 경우, 사용자가 쓰기 성능과 사용자 용량을 자유롭게 선택할 수 있도록 앞서 설명된 단계들(S100, S200)이 플래시 메모리 저장 장치(2000)가 시장에 출하된 후 행해질 수도 있음은 잘 이해될 수 있다.In the exemplary embodiment, steps S300 and S400 have been described as exemplary embodiments to distinguish between the partition concept and HPA generation. The above-described steps S100 and S200 (or S100, S200 and S300 (in case of HPA generation)) may be performed before the flash memory storage device 2000 is shipped to the market. However, when specific commands are provided to the user, the above-described steps S100 and S200 may be performed after the flash memory storage device 2000 is shipped to the market so that the user can freely select the write performance and the user capacity. Can be well understood.

이상의 설명으로부터 알 수 있듯이, 플래시 메모리 저장 장치(2000)의 저장 공간은 사용자 주소 공간과 스페어 공간으로 구성되며, 사용자 주소 공간은 사용자에게 보여지는 물리적인 공간의 메모리 블록들(즉, 데이터 블록들)로 구성된다. 즉, 사용자 주소 공간에 의해서 사용자 용량이 결정된다. 스페어 공간은 플래시 메모리 저장 장치(2000)의 쓰기 성능을 향상시키기 위해서 사용되는 메모리 블록들로 구성될 것이다. 물리적인 공간이 조정된 후에는, 이 분야에 잘 알려진 방식에 따라 HPA의 생성 그리고/또는 디스크 포맷 절차가 행해질 것이다.As can be seen from the above description, the storage space of the flash memory storage device 2000 includes a user address space and a spare space, and the user address space includes memory blocks (ie, data blocks) of the physical space shown to the user. It consists of. That is, the user capacity is determined by the user address space. The spare space may be composed of memory blocks used to improve the write performance of the flash memory storage device 2000. After the physical space has been adjusted, the HPA creation and / or disk formatting procedure will be done in a manner well known in the art.

도 8은 예시적인 실시예에 따른 플래시 메모리 저장 장치를 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.8 is a block diagram schematically illustrating a computing system including a flash memory storage device according to an example embodiment.

본 발명에 따른 컴퓨팅 시스템은 버스(401)에 전기적으로 연결된 마이크로프로세서(3410), 사용자 인터페이스(3420), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(3430), 컨트롤러(3440), 그리고 저장 매체(3450)를 포함한다. 컨트롤러(3440)과 저장 매체(3450)는 도 5에 도시된 것과 실질적으로 동일하게 구성될 것이다. 저장 매체(3450)에는 마이크로프로세서(3410)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 컨트롤러(3440)를 통해 저장될 것이다. 본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(3460)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.The computing system according to the present invention includes a microprocessor 3410, a user interface 3420, a modem 3430 such as a baseband chipset, a controller 3440, and a storage medium (electrically connected to the bus 401). 3450). The controller 3440 and the storage medium 3450 may be configured substantially the same as illustrated in FIG. 5. Storage medium 3450 will store, via controller 3440, N-bit data (N is an integer greater than or equal to 1) to be processed / processed by microprocessor 3410. When the computing system according to the present invention is a mobile device, a battery 3460 for supplying an operating voltage of the computing system will be further provided. Although not shown in the drawings, the computing system according to the present invention may further be provided with an application chipset, a camera image processor (CIS), a mobile DRAM, and the like. Self-explanatory to those who have learned.

본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.It will be apparent to those skilled in the art that the structure of the present invention can be variously modified or changed without departing from the scope or spirit of the present invention. In view of the foregoing, it is intended that the present invention cover the modifications and variations of this invention provided they fall within the scope of the following claims and equivalents.

도 1은 예시적인 실시예에 따른 플래시 메모리 저장 장치를 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다. 1 is a block diagram schematically illustrating a computing system including a flash memory storage device according to an example embodiment.

도 2는 도 1에 도시된 플래시 메모리 저장 장치의 물리적인 공간이 가변됨을 보여주는 도면이다.FIG. 2 is a diagram illustrating that a physical space of the flash memory storage device illustrated in FIG. 1 is changed.

도 3은 예시적인 실시예에 따른 플래시 메모리 저장 장치의 사상 기법을 설명하기 위한 도면이다.3 is a diagram for describing a mapping scheme of a flash memory storage device according to an example embodiment.

도 4는 플래시 메모리 저장 장치의 용량과 쓰기 성능 사이의 상관 관계를 보여주는 도면이다.4 is a diagram illustrating a correlation between a capacity and a write performance of a flash memory storage device.

도 5는 예시적인 실시예에 따른 플래시 메모리 저장 장치를 개략적으로 보여주는 블록도이다.Fig. 5 is a block diagram schematically illustrating a flash memory storage device according to an exemplary embodiment.

도 6은 플래시 메모리 저장 장치의 일반적인 소프트웨어 모듈 구성을 보여주는 도면이다.6 is a diagram illustrating a general software module configuration of a flash memory storage device.

도 7은 예시적인 실시예에 따른 플래시 메모리 저장 장치(2000)의 물리적인 공간을 가변시키는 동작을 설명하기 위한 흐름도이다.7 is a flowchart illustrating an operation of changing a physical space of a flash memory storage device 2000 according to an exemplary embodiment.

도 8은 예시적인 실시예에 따른 플래시 메모리 저장 장치를 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.8 is a block diagram schematically illustrating a computing system including a flash memory storage device according to an example embodiment.

Claims (11)

물리적인 공간을 가지며, 데이터 정보를 저장하는 저장 매체와; 그리고A storage medium having a physical space and storing data information; And 외부로부터의 요청에 응답하여 상기 저장 매체의 물리적인 공간을 조정하도록 구성된 컨트롤러를 포함하며, 상기 조정된 물리적인 공간은 사용자 주소 공간으로 사용되는 플래시 메모리 저장 장치.And a controller configured to adjust a physical space of the storage medium in response to a request from an external device, wherein the adjusted physical space is used as a user address space. 제 1 항에 있어서,The method of claim 1, 상기 컨트롤러는 상기 외부로부터의 요청시 상기 물리적인 공간을 나타내는 용량 정보를 변경하여 상기 물리적인 공간을 조정하는 플래시 메모리 저장 장치.And the controller adjusts the physical space by changing capacity information indicating the physical space upon request from the outside. 제 2 항에 있어서,The method of claim 2, 상기 용량 정보는 최대 LBA 주소를 포함하는 플래시 메모리 저장 장치.The capacity information includes a maximum LBA address. 제 1 항에 있어서,The method of claim 1, 상기 조정된 물리적인 공간 이외의 저장 공간은 상기 플래시 메모리 저장 장치의 쓰기 성능을 향상시키기 위한 공간으로서 사용되는 플래시 메모리 저장 장치.The storage space other than the adjusted physical space is used as a space for improving the write performance of the flash memory storage device. 제 1 항에 있어서,The method of claim 1, 상기 컨트롤러는 상기 물리적인 공간이 조정된 후 외부의 요청에 따라 상기 조정된 물리적인 공간에 대한 디스크 포맷 절차를 수행하도록 구성되는 플래시 메모리 저장 장치.And the controller is configured to perform a disk format procedure for the adjusted physical space according to an external request after the physical space is adjusted. 물리적인 공간을 갖는 저장 매체를 포함하는 플래시 메모리 저장 장치와; 그리고A flash memory storage device including a storage medium having a physical space; And 상기 플래시 메모리 저장 장치를 제어하도록 구성된 호스트 시스템을 포함하며,A host system configured to control the flash memory storage device, 상기 호스트 시스템은 상기 플래시 메모리 저장 장치의 물리적인 공간을 조정하기 위한 명령을 발생하고, 상기 플래시 메모리 저장 장치는 상기 명령에 응답하여 상기 저장 매체의 물리적인 공간을 조정하며, 상기 조정된 물리적인 공간은 사용자 용량을 나타내는 컴퓨팅 시스템.The host system generates a command for adjusting a physical space of the flash memory storage device, the flash memory storage device adjusts a physical space of the storage medium in response to the command, and the adjusted physical space. Is a computing system representing user capacity. 제 6 항에 있어서,The method of claim 6, 상기 플래시 메모리 저장 장치는 상기 명령의 입력시 상기 물리적인 공간을 나타내는 용량 정보를 변경하는 컴퓨팅 시스템.And the flash memory storage device changes capacity information representing the physical space upon input of the command. 제 7 항에 있어서,The method of claim 7, wherein 상기 용량 정보는 최대 LBA 주소를 포함하는 컴퓨팅 시스템.Said capacity information including a maximum LBA address. 제 6 항에 있어서,The method of claim 6, 상기 조정된 물리적인 공간 이외의 저장 공간은 상기 플래시 메모리 저장 장치의 쓰기 성능을 향상시키기 위한 공간으로서 사용되는 컴퓨팅 시스템.The storage space other than the adjusted physical space is used as a space for improving the write performance of the flash memory storage device. 제 6 항에 있어서,The method of claim 6, 상기 물리적인 공간이 조정된 후 상기 조정된 물리적인 공간에 대한 디스크 포맷 절차가 수행되는 컴퓨팅 시스템.And after the physical space has been adjusted, a disk formatting procedure for the adjusted physical space is performed. 제 6 항에 있어서,The method of claim 6, 상기 플래시 메모리 저장 장치는 에스에스디 또는 메모리 카드인 컴퓨팅 시스템.And the flash memory storage device is an SD or memory card.
KR1020090030506A 2009-04-08 2009-04-08 Flash memory storage device and computing system including the same KR101629179B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090030506A KR101629179B1 (en) 2009-04-08 2009-04-08 Flash memory storage device and computing system including the same
US12/755,644 US8412909B2 (en) 2009-04-08 2010-04-07 Defining and changing spare space and user space in a storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090030506A KR101629179B1 (en) 2009-04-08 2009-04-08 Flash memory storage device and computing system including the same

Publications (2)

Publication Number Publication Date
KR20100111992A true KR20100111992A (en) 2010-10-18
KR101629179B1 KR101629179B1 (en) 2016-06-14

Family

ID=43132089

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090030506A KR101629179B1 (en) 2009-04-08 2009-04-08 Flash memory storage device and computing system including the same

Country Status (1)

Country Link
KR (1) KR101629179B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8812775B2 (en) 2011-03-28 2014-08-19 Samsung Electronics Co., Ltd. System and method for controlling nonvolatile memory
KR20150018690A (en) * 2013-08-08 2015-02-24 삼성전자주식회사 Storage device, computer system comprising the same, and operating method thereof
KR20200036675A (en) * 2018-09-28 2020-04-07 에스케이하이닉스 주식회사 Control device for dynamically allocating storage space and data storage device including the control device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6690400B1 (en) * 1999-09-29 2004-02-10 Flash Vos, Inc. Graphic user interface for resources management of super operating system based computers
US20070174549A1 (en) * 2006-01-24 2007-07-26 Yevgen Gyl Method for utilizing a memory interface to control partitioning of a memory module
US20080320214A1 (en) * 2003-12-02 2008-12-25 Super Talent Electronics Inc. Multi-Level Controller with Smart Storage Transfer Manager for Interleaving Multiple Single-Chip Flash Memory Devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6690400B1 (en) * 1999-09-29 2004-02-10 Flash Vos, Inc. Graphic user interface for resources management of super operating system based computers
US20080320214A1 (en) * 2003-12-02 2008-12-25 Super Talent Electronics Inc. Multi-Level Controller with Smart Storage Transfer Manager for Interleaving Multiple Single-Chip Flash Memory Devices
US20070174549A1 (en) * 2006-01-24 2007-07-26 Yevgen Gyl Method for utilizing a memory interface to control partitioning of a memory module

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8812775B2 (en) 2011-03-28 2014-08-19 Samsung Electronics Co., Ltd. System and method for controlling nonvolatile memory
KR20150018690A (en) * 2013-08-08 2015-02-24 삼성전자주식회사 Storage device, computer system comprising the same, and operating method thereof
KR20200036675A (en) * 2018-09-28 2020-04-07 에스케이하이닉스 주식회사 Control device for dynamically allocating storage space and data storage device including the control device

Also Published As

Publication number Publication date
KR101629179B1 (en) 2016-06-14

Similar Documents

Publication Publication Date Title
US8621139B2 (en) Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same
US7890693B2 (en) Flash translation layer apparatus
US8332579B2 (en) Data storage apparatus and method of writing data
US9053007B2 (en) Memory system, controller, and method for controlling memory system
US8984219B2 (en) Data storage device and method of writing data in the same
US20110099323A1 (en) Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US20120246392A1 (en) Storage device with buffer memory including non-volatile ram and volatile ram
US9223696B2 (en) Data storage device for holding erasure of victim block having valid page copied to merge block and method of operating the same
US20200089608A1 (en) High efficiency garbage collection method, associated data storage device and controller thereof
CN102915208A (en) Information processing apparatus, semiconductor memory device and control method for the semiconductor memory device
JP2013242908A (en) Solid state memory, computer system including the same, and operation method of the same
US9201784B2 (en) Semiconductor storage device and method for controlling nonvolatile semiconductor memory
KR20170087043A (en) Mechanism enabling the use of slow memory to achieve byte addressability and near-dram performance with page remapping scheme
US20110271037A1 (en) Storage device performing data invalidation operation and data invalidation method thereof
US20090172269A1 (en) Nonvolatile memory device and associated data merge method
US11150819B2 (en) Controller for allocating memory blocks, operation method of the controller, and memory system including the controller
TWI430091B (en) Semiconductor memory device
TWI451439B (en) Memory storage device, memory controller thereof, and method for programming data thereof
US11061598B2 (en) Optimized handling of multiple copies in storage management
KR101515621B1 (en) Solid state disk device and random data processing method thereof
TWI414940B (en) Block management and data writing method, flash memory storage system and controller
KR101629179B1 (en) Flash memory storage device and computing system including the same
KR102425470B1 (en) Data storage device and operating method thereof
KR101574747B1 (en) Flash memory storage device and computing system including the same
KR20190050154A (en) A data storage device

Legal Events

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

Payment date: 20190530

Year of fee payment: 4