본 발명의 실시예에 따른 비휘발성 메모리 관리 장치는, 적어도 하나의 물리 페이지를 포함하는 제1 블록 및 제2 블록을 포함하는 비휘발성 메모리, 및 상기 제1 블록에서 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적으로 증가하며 순환하는지를 판별한 결과에 따라서, 상기 제1 블록 및 상기 제2 블록의 병합을 위한 연산 종류를 결정하는 연산부를 포함한다. Non-volatile memory management apparatus according to an embodiment of the present invention, which is recorded in the first block and the second non-volatile memory comprising two blocks, and the consecutive physical pages in the first block includes at least one physical page according to a result of determining whether the offset of the logical page sequentially increased and circulated, and a computing unit for determining the first block and the operation type for the merging of the second block.

즉, 이전의 데이터를 수정 또는 삭제하고자 하는 경우, 해당 데이터를 포함하는 블록을 삭제한 후 데이터를 다시 기록해야 하는데, 일 예로, 글자나 알파벳을 하나씩 수정하는 대신 '삭제'키를 눌러 전체 단어를 다 삭제한 후 다시 수정하는 것과 같다. In other words, if you want to edit or delete the old data, and then delete the block containing the data to be written back data, For example, instead of one to modify the text or letters by pressing the 'Delete' key to the entire word after the deleting like to fix it again.

이와 같은 비휘발성 메모리에서는 기록 전 삭제(erase before write)로 인해 비휘발성 메모리에 기록된 데이터의 물리 주소(Physical Address)가 변경되어도 동일한 논리 주소(Logical Address)로 비휘발성 메모리에 기록된 데이터에 접근할 수 있도록 논리-물리 사상(logical-physical) 방법을 지원한다. Such a non-volatile in the memory write ALL CLEAR (erase before write) to the physical address (Physical Address), the same logical address (Logical Address) may be changed in the data written to the nonvolatile memory because of the access to the data written in the non-volatile memory to the logical-physical mapping supports (logical-physical) methods.

그 다음, 비휘발성 메모리의 6번 섹터에 해당 데이터를 기록하는데, 만일, 해당 섹터에 다른 데이터가 기록되어 있으면 비휘발성 메모리의 비어 있는 물리 섹터에 데이터를 기록하고 사상 테이블에서 LSN 9번에 상응하는 PSN을 변경시킨다. Then, to write the data to the sixth sector of the nonvolatile memory, and if, when the other data is written to the sector recording data in the physical sector is empty in the nonvolatile memory and corresponding to LSN 9 times in the mapping table It changes the PSN.

이 때, 논리 블록의 오프셋과 물리 블록의 오프셋을 일치시켜 산출된 PBN인 1번에서 오프셋 1에 상응하는 섹터에 데이터를 기록한다. At this time, by matching the offset of the offset and the physical blocks of the logical block and records the data in a sector corresponding to the offset # 1 in the first calculation of the PBN.

상기 기술에 따르면, 복사 병합(copy merge) 연산보다는 완전 병합(full merge) 연산이 빈번하게 요구되는데, 상기 완전 병합 연산이 수행되기 위해서는 하나의 블록에 대한 삭제 연산 및 다수의 페이지에 대한 쓰기 연산이 요구된다. According to the above, the copy merge (copy merge) operation rather than the full merge (full merge) operation there is frequently required, the erase operation and write operation on a plurality of pages for a single block to become the full merge operation is performed is required.그런데 이와 같이 빈번한 삭제/쓰기 연산은 비휘발성 메모리의 성능을 저하시키는 원인이 된다. However, this way the frequent erase / write operations is the cause of lowering the performance of the non-volatile memory.

본 발명은 비휘발성 메모리를 관리하는데 있어 완전 병합 연산이 실행되는 횟수를 감소시킴으로써, 비휘발성 메모리의 성능을 향상시킬 수 있는 방법 및 장치를 제공하는데 그 목적이 있다. An object of the present invention is to provide a method and apparatus which can by reducing the number of times a full merge operation executed in managing the nonvolatile memory, improve performance of the nonvolatile memory.

그러나 본 발명의 목적은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다. However, an object of the present invention is not limited to the above object mentioned above, it is not mentioned yet another object will be able to be clearly understood to those skilled in the art from the following description.

상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 비휘발성 메모리 관리 장치는, 적어도 하나의 물리 페이지를 포함하는 제1 블록 및 제2 블록을 포함하는 비휘발성 메모리, 및 상기 제1 블록에서 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적으로 증가하며 순환하는지를 판별한 결과에 따라서, 상기 제1 블록 및 상기 제2 블록의 병합을 위한 연산 종류를 결정하는 연산부를 포함한다. In order to achieve the above object, a nonvolatile memory management unit according to an embodiment of the present invention, a nonvolatile memory, and a row in the first block comprising a first block and a second block comprising at least one physical page the offset of the logical page recorded in the physical page in accordance with a result of determining whether increased to cycle in sequence, and a computing unit for determining the first block and the operation type for the merging of the second block.

상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 비휘발성 메모리 관리 장치는, 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적이면서 순환적으로 증가하는 블록을 적어도 하나 이상 포함하는 비휘발성 메모리, 제1 논리 페이지의 오프셋과 함께 읽기 연산 요청을 입력 받는 입력부, 및 상기 블록에서 상기 제1 논리 페이지의 오프셋과 동일한 오프셋을 가지는 제1 물리 페이지에 접근한 후, 상기 제1 물리 페이지로부터 획득된 제2 논리 페이지의 오프셋에 근거하여, 상기 제1 논리 페이지의 오프셋이 기록된 제2 물리 페이지의 오프셋을 획득하는 연산부를 포함한다. In order to achieve the above object, a nonvolatile memory management unit according to an embodiment of the present invention, that the increased block while the offset of the logical page recorded in the consecutive physical pages sequentially cyclically comprises at least one non-volatile after access to the memory, the input member, and a first physical page having the same offset as the offset of the page, the first logical from the block receiving a read operation request with the offset of the first logical page, obtained from the first physical page the first, based on the offset of the second logical page, and a computing unit for obtaining an offset of a second physical page and the offset of the first logical page is written.

또한, 상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 비휘발성 메모리 관리 방법은, 적어도 하나의 물리 페이지를 포함하는 제1 블록 및 제2 블록을 포함하는 비휘발성 메모리를 관리하는 방법에 있어서, 상기 제1 블록에서 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적으로 증가하며 순환하는지를 판단하는 단계, 및 상기 판단 결과에 따라서, 상기 제1 블록 및 상기 제2 블록의 병합을 위한 연산 종류를 결정하는 단계를 포함한다. Further, in the method in order to attain the object, a nonvolatile memory managing method according to an embodiment of the present invention, and manage a non-volatile memory including a first block and a second block comprising at least one physical page the step of the offset of the logical page recorded in the first consecutive physical pages in the first block determines whether sequentially increased and circulated, and according to the result of the determination, the calculation for the first block and merging of the second block determining a kind.

또한, 상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 비휘발성 메모리 관리 방법은, 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적이면서 순환적으로 증가하는 블록을 적어도 하나 이상 포함하는 비휘발성 메모리를 관리하는 방법에 있어서, 제1 논리 페이지의 오프셋과 함께 읽기 연산 요청을 입력 받는 단계, 상기 블록에서 상기 제1 논리 페이지의 오프셋과 동일한 오프셋을 가지는 제1 물리 페이지에 접근하는 단계, 및 상기 제1 물리 페이지로부터 획득된 제2 논리 페이지의 오프셋에 근거하여, 상기 제1 논리 페이지의 오프셋이 기록된 제2 물리 페이지의 오프셋을 획득하는 단계를 포함한다. Further, in order to attain the object, including a non-volatile memory management method according to an embodiment of the present invention, at least one incremental block while the offset of the logical page recorded in the consecutive physical pages sequentially recursively a method of managing a nonvolatile memory, comprising: receiving a read operation request with the offset of the first logical page, the method comprising: accessing by the block on a first physical page having the same offset as the offset of the page, the first logical, and a step of, based on the offset of the second logical page obtained from the first physical page, and obtaining an offset of a second physical page and the offset of the first logical page is written.

기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다. Specific details of other embodiments are included in the following description and drawings.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. Methods of accomplishing the advantages and features of the present invention and reference to the embodiments that are described later in detail in conjunction with the accompanying drawings will be apparent.그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범수를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. However, the invention is not limited to the embodiments set forth herein may be embodied in many different forms, but the present embodiments, and the disclosure of the present invention to complete, and ordinary skill in the art is furnished the chair in order to fully inform the beomsu to the invention with, the present invention will only be defined by the appended claims.명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. Like reference numerals throughout the specification refer to like elements.

이하, 첨부된 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명의 실시예에 따른 비휘발성 메모리 관리 방법 및 장치에 대해 설명하도록 한다. Hereinafter to describe the non-volatile memory management method and apparatus according to the embodiment of the present invention will be described with reference to the drawings on the attached Fig or flowchart block.이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. At this time, and combinations of each block and flow chart diagrams of a flow chart diagram will be understood that can be implemented by computer program instructions.

또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. In addition, each block of the flowchart illustrations may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function (s).또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. In addition, in some alternative implementations, it should also be noted that the functions noted in the blocks may occur out of the order.예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다. For example, it is also possible that is also possible that two blocks shown in succession may in fact performs substantially the same time or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

페이지는 읽기/쓰기 연산의 기본 단위로서, 각 페이지는 데이터 영역과 스페어 영역으로 구분될 수 있다. Page is a basic unit of a read / write operation, and each page can be divided into a data area and a spare area.이 때, 데이터 영역에는 데이터가 저장되며, 스페어 영역에는 해당 물리 페이지에 기록된 논리 페이지의 오프셋이 기록된다. At this time, the data area, and data is stored in the spare area, the offset of the logical page recorded in the corresponding physical page is recorded.

블록은 삭제 연산의 기본 단위로서, 크게 데이터 블록, 로그 블록 및 자유 블록으로 구분될 수 있다. Block may be classified as a basic unit of a delete operation, a larger data block, log block, and free block.여기서, 자유 블록이란, 데이터가 기록되어 있지 않은 블록 즉, 비어 있는 블록을 의미한다. Here, the free block refers to a block that is, an empty block with no data is recorded.그리고 데이터 블록이란, 일반 데이터를 저 장하는 블록을 의미한다. And a data block refers to a block of data sheets of plain low.이에 비하여, 로그 블록이란, 데이터 블록에 기록된 데이터 중 특정 부분을 수정하고자 하는 경우에 할당되어, 수정 내용을 기록하는 용도로 활용되는 블록을 의미한다. In comparison, the log block is, are assigned if it is desired to modify a particular portion of the recorded data in the data block, means a block which is utilized for the purpose of recording the modifications.따라서, 로그 블록은 도 4와 같이, 단 하나의 데이터 블록에 대응되며, 대응되는 데이터 블록의 수정된 페이지들을 저장한다. Accordingly, the log block is as shown in Figure 4, it corresponds to a single block of data, and stores the modified pages of the corresponding data block.때문에 로그 블록의 페이지들은 데이터 블록의 페이지보다 우선적으로 참조될 수 있다. Since the page of the log block can be preferentially referred to more pages of the data block.이하의 설명에서는 로그 블록에서 우선적으로 참조되는 페이지를 '유효한 페이지'라 하고, 물리적으로 유효한 데이터가 기록되어 있더라도 유효한 페이지에 의해 그 내용이 무시되는 페이지를 '무효한 페이지'라 칭하기로 한다. Referred to in the following description, the page that is preferentially referenced to in the log block is "valid page", and even if it is physically valid data is recorded in the page in which the contents are ignored by the valid page is referred to as a "page invalid".

블록 병합의 종류에는 교환 병합(switch merge), 복사 병합(copy merge) 및 완전 병합(full merge)을 예로 들 수 있는데, 블록 병합이 수행될 때에는 블록 병합 대상이 되는 블록의 상태에 따라서 세 가지 중 어느 하나가 실행될 수 있다. There kinds of block merging, are exemplified exchange merge (switch merge), copy merge (copy merge) and a full merge (full merge), three of the according to the state of the block in which the block merge destination when the block merge is performed which is one that can be performed.

교환 병합은 도 6과 같이, 로그 블록에서 연속된 물리 페이지에 기록된 논리 페이지의 오프셋이 순차적으로 증가하며 순환되고, 로그 블록에서 유효한 논리 페이지의 개수가 상기 로그 블록에 포함된 물리 페이지의 총 개수와 동일한 경우에 수행된다. Exchange merge, as shown in Figure 6, the offset of the logical page recorded in the consecutive physical pages in the log block increases and the cycle in sequence, the total number of physical pages included in the count is the log block of the logical page available in the log block and it is carried out in the same case.교환 병합은 로그 블록을 데이터 블록으로 전이시키고 주소변환 정보를 갱신한 다음, 기존 데이터 블록에 기록된 데이터를 삭제함으로써 이루어진다. Exchange merge is accomplished by a transition of the log block to the data block and to update the address conversion information, and then delete the data recorded in the existing data block.즉, 교환 병합에서는 데이터 블록이나 로그 블록에 기록되어 있는 데이터를 복사하는 과정 없이 주소변환 정보만을 갱신함으로써 이루어진다. That is, the merge is done by exchanging only the update address conversion information, without the process of copying data recorded in the data block or a log block.이 때, 기존의 데이터 블록은 삭제 가능한 블록(erasable block)이 된다. At this time, the old data block is a removable block (erasable block).

복사 병합은 도 7과 같이, 로그 블록에서 연속된 물리 페이지에 기록된 논리 페이지의 오프셋이 순차적으로 증가하면서 순환적이고, 로그 블록에서 유효한 페이지의 개수와 로그 블록에 포함된 물리 페이지의 총 개수가 서로 일치하지 않는 경우에 수행된다. Copy merge together the total number of physical pages included in, and while the offset of the logical page recorded in the consecutive physical pages in the log block increases in sequence cycle, the number and a log block of valid pages in the log block, as shown in Fig. 7 It is carried out if it does not match.복사 병합은 데이터 블록에서 유효한 논리 페이지를 로그 블록의 자유 페이지에 복사한 다음, 로그 블록을 데이터 블록으로 전이시킴으로써 이루어진다. Copy merge is accomplished by a transition, and then, copies the valid logical pages in the log block, the free page of the log block in the data block to data block.이 때, 기존의 데이터 블록은 삭제 가능한 블록(erasable block)이 된다. At this time, the old data block is a removable block (erasable block).

완전 병합은 도 8과 같이, 로그 블록에서 연속된 물리 페이지에 기록된 논리 페이지의 오프셋이 순차적으로 증가하지 않거나, 순환적이지 않은 경우에 수행된다. Full merge is as shown in Figure 8, the offset of the logical page recorded in the consecutive physical pages in the log block does not increase in order, is carried out if it is not in circulation have.완전 병합은 자유 블록을 할당 받은 다음, 로그 블록 및 데이터 블록에서 유효한 논리 페이지를 할당 받은 자유 블록에 복사함으로써 이루어진다. Full merge is allocated a free block, is made by copying the free blocks assigned to a valid logical pages in the log block and data block.이 때, 기존 데이터 블록과 기존 로그 블록은 삭제 가능한 블록(erasable block)이 된다. At this time, the existing data block and the existing log block is capable of deleting blocks (erasable block).

다음으로, 도 9 내지 도 12를 참조하여, 본 발명의 실시예에 따른 비휘발성 메모리 관리 방법을 설명하기로 한다. Next, referring to Figs. 9 to 12, will be described in a non-volatile memory management method according to an embodiment of the invention.

사용자로부터 제1 논리 페이지의 오프셋과 함께 쓰기 연산이 요청되면, 연산부(400)는 매핑 정보를 참조하여, 제1 논리 페이지의 오프셋에 대응하는 물리 페이지의 오프셋을 검색한다. If the first logical page offset and a write operation with a request from the user, the operation unit 400 searches for the offset of the physical page, by referring to the mapping information, corresponding to the offset of the first logical page.그 다음, 검색된 물리 페이지가 사용가능한 상태인지를 판단한다(S810). It determines whether the next state is retrieved physical page is available (S810).

상기 판단 결과, 해당 물리 페이지가 사용 가능하다면(S810, 예), 연산부(400)는 해당 물리 페이지에 데이터를 기록한다(S860). A result of the determination, if the corresponding physical page is available (S810, YES), the operation unit 400 records data in the physical page (S860).이 때, 데이터는 해당 페이지의 데이터 영역에 기록될 수 있다. At this time, the data may be recorded in the data area of ​​the page.데이터 영역에 데이터가 기록될 때, 해당 물리 페이지의 스페어 영역에는 제1 논리 페이지의 오프셋이 기록되는 것이 바람직하다. When the data area data is recorded, a spare area of ​​the physical page, it is preferred to be written, the offset of the first logical page.데이터 쓰기가 완료되면, 연산부(400)는 맵 영역의 매핑 정보를 갱신한다. When the data writing is completed, the operation unit 400 updates the mapping information of the map area.

상기 판단 결과, 해당 물리 페이지가 사용 불가능하다면(S810, 아니오), 다시 말해 해당 물리 페이지에 이미 데이터가 기록되어 있는 상태라면, 연산부(400)는 자유 페이지 할당이 가능한지를 판단한다(S820). A result of the determination, if the corresponding physical page is not available (S810, No), in other words if you are already data is recorded in the physical page, the operation unit 400 determines whether the free page is assigned (S820).

도 9를 참조한 설명에서는 사용자로부터 쓰기 연산이 요청된 경우, 자유 블록을 생성하기 위한 방법의 하나로 병합 연산이 수행되는 것을 예로 들어 설명하였 지만, 병합 연산은 비휘발성 메모리의 블록 상태가 사전 지정된 기준을 만족하는 경우에 자동적으로 수행될 수도 있다. In the description with reference to Figure 9, if a letter from the user an operation request, the example that the one of a method for generating a free block merging operation is performed for example described did, but the merge operation is a reference the block status of the nonvolatile memory preassigned It may be performed automatically if satisfactory.예를 들면, 사용자로부터 쓰기가 요청된 경우가 아니더라도, 자유 블록의 개수가 사전 지정된 개수 미만이 되는 경우에 수행될 수 있다. For example, if not the case the user is the write request, it may be performed when the number of free blocks is less than a pre-specified number.

먼저, 연산부(400)는 병합 대상이 되는 로그 블록의 논리 페이지 정렬 상태를 확인한다. First, the operation unit 400 checks a sorting status of a logical page, the log block is the merge destination.구체적으로, 상기 로그 블록에서, 연속된 물리 페이지의 스페어 영역을 확인하여, 상기 스페어 영역에 기록되어 있는 논리 페이지의 오프셋이 순차적으로 증가하며 순환되는지를 판단한다(S901). It determines whether Specifically, in the log block, and checks the spare area of ​​consecutive physical pages, the offset of the logical page recorded in the spare area increases in sequence to cycle (S901).여기서, 순차적으로 증가하며 순환된다는 것은, 논리 페이지의 오프셋이 순차적으로 증가함과 동시에, 오프셋이 최대인 논리 페이지와 오프셋이 최소인 논리 페이지가 서로 연속하여 존재하는 것을 의미한다. Here, it is increased in order to cycle, it means that at the same time as the offset of the logical page and sequentially increased, the offset is the maximum offset and the logical page is at least a logical page exists in series with each other.

한편, 상기 S901 단계에서의 판단 결과, 로그 블록에서 연속된 물리 페이지에 기록된 논리 페이지의 오프셋이 순차적으로 증가하며, 순환되는 경우(S901, 예), 연산부(400)는 해당 로그 블록에서 유효한 논리 페이지의 개수가 해당 로그 블록에 포함된 물리 페이지의 총 개수와 일치하는지를 판단한다(S902). On the other hand, when the offset of the logical page recorded in the judgment result, the consecutive physical pages in the log block in the S901 step are sequentially increased, and cycle (S901, YES), the operation unit 400 is valid logic in the log block it is determined whether the number of the page match the total number of physical pages included in the log block (S902).

사용자로부터 제1 논리 페이지의 오프셋과 함께 읽기 연산이 요청되면, 연산부(400)는 상기 제1 논리 페이지의 오프셋(이하, '제1 오프셋'이라 한다)과 동일한 오프셋을 가지는 제1 물리 페이지에 접근한다(S10). If the first logical page offset and a read operation is requested together by a user, the operation unit 400 accesses the first physical page having the same offset and the offset (hereinafter referred to as "first offset") of the page, the first logical and (S10).

이 후, 연산부(400)는 상기 제2 논리 페이지의 오프셋에 근거하여, 상기 제1 논리 페이지의 오프셋이 기록된 제2 물리적 페이지의 오프셋을 획득한다(S30). Then, the operation unit 400 based on the offset of the second logical page, and acquires the offset of the second physical page and the offset of the first logical page is written (S30).구체적으로, 제1 오프셋을 X, 제2 오프셋을 Y, 제1 오프셋과 제2 오프셋의 차를 Z라 하고, 블록에 포함되는 물리 페이지의 총 개수를 N이라 할 때, 연산부(400)는 다음의 [수학식1]에 근거하여, 제2 물리 페이지의 오프셋 X'를 구한다. Specifically, the time to as the total number of physical pages included in the first offset X, the second offset in Y, the first offset and the primary Z-la, and the block of the second offset N, the operation unit 400, and then of the basis of equation 1, it is obtained the offset X 'of the second physical page.

X'= (X+Z+N) mod N X '= (X + Z + N) mod N

즉, 연산부(400)는 제1 오프셋과 제2 오프셋의 차(Z)에 제1 오프셋(X)과 블록에 포함되는 물리 페이지의 총 개수(N)가 각각 더하여진 결과값을 상기 물리 페이지의 총 개수(N)로 나누었을 때의 나머지를 구함으로써, 제2 물리 페이지의 오프셋(X')을 획득한다. That is, the operation unit 400 of the physical page, the result dark adding each total number (N) of the physical pages included in the first offset (X) and the block to the first offset and the difference (Z) of the second offset by taking the remainder when a is divided by the total number (N), to obtain an offset (X ') of the second physical page.

여기서, 읽기 연산 과정에 대한 이해를 돕기 위하여 도 12를 참조하기로 한다. Here, with reference to Figure 12 to aid understanding of the read operation process.도 12는 본 발명의 실시예에 따른 블록을 예시한 도면이다. 12 is a view illustrating a block in the embodiment;도 12에 도시된 블록은 총 8개의 물리 페이지(페이지 0~7)를 포함하는 것을 알 수 있다. The blocks shown in Fig. 12 it can be seen that it comprises a total of eight physical pages (pages 0-7).그리고, 각 물리 페이지의 스페어 영역에는 논리 페이지의 오프셋이 기록되어 있는 것을 알 수 있다. And, in the spare area of ​​each physical page, it can be seen that the offset of the logical page is recorded.또한, 각 스페어 영역에 기록되어 있는 논리 페이지의 오프셋은 순차적으로 증가하며 순환되는 것을 알 수 있다. Further, the offset of the logical page recorded in each of the spare area can be seen that the increase to cycle sequentially.(페이지 4에 기록된 논리 페이지의 오프셋은 7이며, 페이지 5에 기록된 논리 페이지의 오프셋은 0이므로, 논리 페이지의 오프셋이 순환되고 있음을 알 수 있다.) (The offset of the logical page recorded in page 4 is 7, the offset of the logical page recorded in page 5 is 0, so, it can be seen that the offset of the logical page is circulated.)

이와 같은 상태에서, 오프셋이 7인 제1 논리 페이지에 대한 읽기 요청이 입력되면, 연산부(400)는 우선, 제1 논리 페이지의 오프셋과 동일한 오프셋을 갖는 제1 물리 페이지에 접근한다. In such a state, if the offset is 7, the first read request to the first logical page input, the operation unit 400 first, accesses the first physical page having the same offset as the first logical page offset.구체적으로, 제1 논리 페이지의 오프셋은 7이므로, 연산부(400)는 7이라는 오프셋을 갖는 제1 물리 페이지 즉, 페이지 7에 접근한다. Since Specifically, the offset is in the first logical page 7, the operation unit 400 having the page a first physical offset of 7. That is, the access to the page 7.

이상과 같이 본 발명에 따른 비휘발성 메모리 관리 방법 및 장치를 예시된 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명은 한정되지 않으며 그 발명의 기술사상 범위 내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다. Although described with reference to the drawings illustrating a non-volatile memory managing method and apparatus according to the present invention as described above as a reference, the present invention by way of examples and figures disclosed herein are not limited to those of ordinary skill in the art within the spirit scope of the invention the various modifications may be made by that as a matter of course.

상기한 바와 같은 본 발명에 의한 비휘발성 메모리 관리 방법 및 장치에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다. According to the non-volatile memory management method and apparatus according to the present invention as described above has the following effects: one or more.

블록에 포함되는 논리 페이지를 정렬할 때, 논리 페이지의 오프셋이 순차적으로 증가하며 순환되도록 함으로써, 완전 병합 연산이 수행되는 횟수를 감소시킬 수 있으며, 이로 인해 비휘발성 메모리의 쓰기 연산 속도를 향상시킬 수 있는 효과가 있다. When sorting the logical page included in the block, by making the offset of the logical page sequentially increased and circulated, it is possible to reduce the number of times a full merge operation is performed, thereby to improve the write operation speed of the nonvolatile memory that there is an effect.

물리 페이지의 스페어 영역에 상기 물리 페이지에 기록된 논리 페이지의 오 프셋을 기록함으로써, 물리 페이지와 논리 페이지 간의 매핑 정보 없이도 요청된 논리 페이지가 기록된 물리 페이지의 오프셋을 알 수 있다. By recording the offset of the logical page recorded in the physical page in the spare area of ​​the physical page, it can be seen that the offset of the physical page and the requested logical page recorded without mapping information between the physical page and logical page.

Claims (20)

Translated from Korean

적어도 하나의 물리 페이지를 포함하는 제1 블록 및 제2 블록을 포함하는 비휘발성 메모리; Non-volatile memory including a first block and a second block comprising at least one of the physical page;및 And

상기 제1 블록에서 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적으로 증가하며 순환하는지를 판별한 결과에 따라서, 상기 제1 블록 및 상기 제2 블록의 병합을 위한 연산 종류를 결정하는 연산부를 포함하는, 비휘발성 메모리 관리 장치. According to a result of determining whether the offset of the logical page recorded in the consecutive physical pages in the first block increases in sequence to cycle, the computing unit for determining the first block and the operation type for the merging of the second block , a nonvolatile memory managing apparatus comprising.

상기 논리 페이지의 오프셋이 순차적으로 증가하지 않거나, 순환하지 않는 경우, 상기 제1 블록 및 상기 제2 블록에서 유효한 논리 페이지를 데이터가 기록되어 있지 않은 자유 블록에 복사하는 완전 병합(full merge)를 수행하는, 비휘발성 메모리 관리 장치. The offset of the logical page or no increase in sequence, if it does not cycle, perform the full merge (full merge) that copies the first block and the free block is not the data is written to a valid logical pages in the second block , a nonvolatile memory managing apparatus.

상기 각 논리 페이지의 오프셋이 순차적으로 증가하며 순환하고, 상기 제1 블록에서 유효한 논리 페이지의 개수와 상기 제1 블록에 포함된 물리 페이지의 총 개수가 일치하는 경우, 상기 제1 블록을 제3 블록으로 전이시키는 교환 병합을 수행하는, 비휘발성 메모리 관리 장치. The offset of each logical page and increase to cycle in order, if the total number of physical pages included in the number of the first block of the logical page, valid in the first block matching, the said first block 3 block a nonvolatile memory management unit to perform the exchange of merging the transition.

제1 논리 페이지의 오프셋과 함께 읽기 연산 요청을 입력 받는 입력부; The input unit for receiving a read operation request with the offset of the first logical page;및 And

상기 블록에서 상기 제1 논리 페이지의 오프셋과 동일한 오프셋을 가지는 제1 물리 페이지에 접근한 후, 상기 제1 물리 페이지로부터 획득된 제2 논리 페이지의 오프셋에 근거하여, 상기 제1 논리 페이지의 오프셋이 기록된 제2 물리 페이지의 오프셋을 획득하는 연산부를 포함하는, 비휘발성 메모리 관리 장치. In the block after the access to a first physical page having the same offset as the offset of the page, the first logical, based on the offset of the second logical page obtained from the first physical page, the offset of the first logical page , a nonvolatile memory managing apparatus comprising a computing unit for obtaining an offset of a second physical page is written.

상기 제1 물리 페이지의 오프셋에서 상기 제2 논리 페이지의 오프셋을 뺀 값에, 상기 제1 물리 페이지의 오프셋과 상기 블록의 총 페이지 개수가 각각 합하여진 결과값을 상기 총 페이지 개수로 나눈 나머지인, 비휘발성 메모리의 관리 장치. The rest of the second divided by the value obtained by subtracting the offset of the logical page, the result true total number of pages are combined, each of the first physical page offset and the block to the total number of pages in the offset of the first physical page, Administration of the non-volatile memory device.

상기 제1 블록에서 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적으로 증가하며 순환하는지를 판단하는 단계; Determining whether an offset of the logical page recorded in the consecutive physical pages in the first block increases in sequence to cycle;및 And

상기 판단 결과에 따라서, 상기 제1 블록 및 상기 제2 블록의 병합을 위한 연산 종류를 결정하는 단계를 포함하는, 비휘발성 메모리 관리 방법. The judgment based on the result, the first block, and a nonvolatile memory managing method for determining a type of operation for the merging of the second block.

상기 논리 페이지의 오프셋이 순차적으로 증가하지 않거나, 순환하지 않는 경우, 상기 제1 블록 및 상기 제2 블록에서 유효한 논리 페이지들을 데이터가 기록되어 있지 않은 자유 블록에 복사하는 단계; If the offset of the logical page it does not increase sequentially, that do not cycle, copying to the first block and the free block is not a data record valid logical pages in the second block;및 And

상기 오프셋이 순차적으로 증가하면서 순환적이고, 상기 제1 블록에서 유효한 논리 페이지의 개수와 상기 제1 블록의 총 물리 페이지 개수가 일치하지 않는 경우, 상기 제2 블록에서 유효한 논리 페이지를 상기 제1 블록에서 데이터가 기록되어 있지 않은 자유 페이지에 복사하는 단계; The offset in this case does not match the number and total physical page number of the first block of the logical page, valid in the cycle and the first block while sequentially increasing, the logical page valid in said second block in the first block steps to copy the data to the free page is not recorded;및 And

상기 오프셋이 순차적으로 증가하면서 순환적이고, 상기 제1 블록에서 유효한 논리 페이지의 개수와 상기 제1 블록에 포함된 물리 페이지의 총 개수가 일치하는 경우, 상기 제1 블록을 제3 블록으로 전이시키는 단계; When the offset is the total number of physical pages included in the number of the first block of the logical page valid match in the cycle and the first block while sequentially increasing, the step of transfer of the first block to the third block .;및 And

상기 제1 물리 페이지의 오프셋에서 상기 제2 논리 페이지의 오프셋을 뺀 값에, 상기 제1 물리 페이지의 오프셋과 상기 블록의 총 페이지 개수가 각각 합하여진 결과값을 상기 총 페이지 개수로 나눈 나머지인, 비휘발성 메모리의 관리 방법. The rest of the second divided by the value obtained by subtracting the offset of the logical page, the result true total number of pages are combined, each of the first physical page offset and the block to the total number of pages in the offset of the first physical page, how to manage non-volatile memory.