KR20210118086A - Memory control unit, memory module and information processing system - Google Patents
Memory control unit, memory module and information processing system Download PDFInfo
- Publication number
- KR20210118086A KR20210118086A KR1020217023149A KR20217023149A KR20210118086A KR 20210118086 A KR20210118086 A KR 20210118086A KR 1020217023149 A KR1020217023149 A KR 1020217023149A KR 20217023149 A KR20217023149 A KR 20217023149A KR 20210118086 A KR20210118086 A KR 20210118086A
- Authority
- KR
- South Korea
- Prior art keywords
- address
- access
- unit
- memory
- copy
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
메모리의 카피 동작이 실행되고 있는 경우에 있어서, 메모리에의 액세스가 발행되는 때에, 그 액세스의 대기를 필요 최소한으로 억제한다. 메모리의 제1의 기억 영역은 카피 단위이다. 메모리의 제2의 기억 영역은, 제1의 기억 영역을 복수 통합한 것이다. 메모리에 있어서, 제2의 기억 영역부터 다른 기억 영역에 카피 동작이 실행되고 있는 경우에, 제2의 기억 영역에 대한 액세스가 발행되는 때, 제1의 기억 영역을 단위로 하여 메모리에 대한 액세스에 관한 제어가 행해진다. 액세스의 대상이 되는 카피 단위의 영역이 다른 기억 영역에 카피 완료면, 액세스의 대상이 되는 영역의 어드레스를 카피 처의 어드레스로 치환하여 액세스를 속행시킨다.When a memory copy operation is being performed, when an access to the memory is issued, the waiting for the access is suppressed to the necessary minimum. The first storage area of the memory is a copy unit. The second storage area of the memory is a combination of a plurality of first storage areas. In the memory, when a copy operation is performed from the second storage area to another storage area, when an access to the second storage area is issued, the access to the memory is performed using the first storage area as a unit. control is performed. When the copy unit area to be accessed has been copied to another storage area, the address of the area to be accessed is replaced with the copy destination address, and the access is continued.
Description
본 기술은, 메모리 제어 장치에 관한 것이다. 상세하게는, 메모리에 대한 액세스를 제어하는 메모리 제어 장치, 메모리 모듈 및 정보 처리 시스템에 관한 것이다.The present technology relates to a memory control device. Specifically, it relates to a memory control device, a memory module, and an information processing system for controlling access to a memory.
불휘발 메모리 등의 재기록 횟수에 제한이 있는 메모리에서는, 특정한 영역에의 액세스가 집중하여 수명이 다하는 것을 회피하기 위해, 물리적 기억 위치를 이동시키는 웨어 레벨링이라는 기술이 이용된다. 이 웨어 레벨링에서는, 영역간의 카피 및 삭제가 행해진다. 한편, NAND 플래시 메모리 등에서는, 데이터의 재기록을 행할 수가 없기 때문에, 데이터를 재기록할 때에도 데이터의 카피 및 삭제가 필요해지고, 이에 수반하여 가비지 컬렉션이 백그라운드 처리로서 행해진다. 이와 같은 카피 처리가 행해지고 있는 상황에 있어서, 외부로부터 액세스가 있는 경우, 카피 완료까지 외부로부터의 액세스가 기다리게 되어 버리고, 레이턴시가 커져 버린다는 문제가 있다. 이에 대해, NAND 플래시 메모리에 있어서 카피 중의 영역에 호스트로부터 기록이 있는 때에, 본래 기록하고 싶은 영역과는 별도로, NAND 플래시 메모리에 일시적으로 준비한 영역에 데이터를 기록하는 기술이 제안되어 있다(예를 들면, 특허 문헌 1 참조.).In a memory, such as a non-volatile memory, in which the number of times of rewriting is limited, a technique called wear leveling in which a physical storage location is moved is used in order to avoid the end of life due to concentration of access to a specific area. In this wear leveling, copying and deletion between areas are performed. On the other hand, in a NAND flash memory or the like, since data cannot be rewritten, it is necessary to copy and delete data even when data is rewritten. In the situation where such a copy process is being performed, when there is an access from the outside, there is a problem that the access from the outside waits until the copy is completed, and the latency increases. On the other hand, in the NAND flash memory, when there is writing from the host in the area being copied, a technique has been proposed in which data is written to an area temporarily prepared in the NAND flash memory separately from the area to be originally written (for example, , see
상술한 종래 기술에서는, 일시적으로 준비한 영역에 데이터를 기록함에 의해, 레이턴시의 단축화를 도모하고 있다. 그렇지만, 이 종래 기술에서는, 카피 완료 후, 카피한 영역 및 일시 영역에 유효한 데이터가 혼재하기 때문에, 그 후에 데이터를 머지하는 처리가 또한 필요해진다.In the prior art described above, latency is reduced by recording data in a temporarily prepared area. However, in this prior art, after completion of copying, effective data is mixed in the copied area and the temporary area, so a process for merging the data thereafter is also required.
본 기술은 이와 같은 상황을 감안하여 생겨진 것이고, 메모리의 카피 동작이 실행되고 있는 경우에 있어서, 메모리에의 액세스가 발행되는 때에, 그 액세스의 대기를 필요 최소한으로 억제하는 것을 목적으로 한다.The present technology was developed in view of such a situation, and it is an object of the present invention to minimize waiting for access when an access to the memory is issued in a case where a copy operation of the memory is being executed.
본 기술은, 상술한 문제점을 해소하기 위해 이루어진 것이고, 그 제1의 측면은, 메모리의 카피 단위인 제1의 기억 영역을 복수 통합한 제2의 기억 영역부터 상기 메모리의 다른 기억 영역에 카피 동작이 실행되고 있는 경우에 있어서, 상기 제2의 기억 영역에 대한 액세스가 발행되는 때에 상기 제1의 기억 영역을 단위로 하여 상기 액세스를 제어하는 메모리 제어 장치, 메모리 모듈 및 정보 처리 시스템이다. 이에 의해, 제2의 기억 영역을 단위로 하여 카피 동작이 실행되고 있는 경우에 있어서, 제1의 기억 영역을 단위로 하여 액세스를 제어한다는 작용을 가져온다.The present technology has been made to solve the above-described problem, and the first aspect thereof is a copy operation from a second storage area in which a plurality of first storage areas that are a copy unit of a memory are integrated to another storage area of the memory. In this case, when an access to the second storage area is issued, the memory control device, the memory module, and the information processing system control the access in the first storage area as a unit. This brings about the effect of controlling access by using the first storage area as a unit in the case where the copy operation is being performed with the second storage area as a unit.
또한, 이 제1의 측면에 있어서, 상기 카피 동작과 상기 액세스와의 어드레스 충돌을 상기 카피 단위로 판정하는 어드레스 충돌 판정부와, 상기 액세스의 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에 카피 완료인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 액세스의 대상이 되는 영역의 어드레스를 카피 처의 어드레스로 치환하여 상기 액세스를 속행시키는 어드레스 치환부를 구비하도록 해도 좋다. 이에 의해, 액세스 대상의 영역이 카피 완료면, 카피 처의 어드레스에 대해 액세스를 속행시킨다는 작용을 가져온다.Further, in the first aspect, there is provided an address conflict determination unit that determines an address conflict between the copy operation and the access in the copy unit, and the area of the copy unit to be accessed is stored in the other storage area. When the determination that the copy has been completed is made in the address collision determination, an address replacement unit for continuing the access by replacing the address of the area to be accessed with the address of the copy destination may be provided. Thereby, when the area to be accessed has been copied, the effect of continuing access to the address of the copy destination is brought about.
또한, 이 제1의 측면에 있어서, 상기 어드레스 치환부는, 상기 액세스가 리드 액세스이고 그 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에 카피 중인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 치환을 행하지 않고 상기 액세스를 속행시키도록 해도 좋다. 이에 의해, 리드 액세스 대상의 영역이 카피 중이면, 카피 원의 어드레스에 대해 액세스를 속행시킨다는 작용을 가져온다.Further, in the first aspect, in the case where a determination is made in the address collision determination that the access is a read access and the target copy unit area is being copied to the other storage area, The access may be continued without performing the substitution. This brings about the effect of continuing access to the copy source address when the read access target area is being copied.
또한, 이 제1의 측면에 있어서, 상기 어드레스 치환부는, 상기 액세스가 라이트 액세스이고 그 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에 카피 중인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 카피 단위의 영역이 카피 완료가 될 때까지 상기 라이트 액세스를 대기시키도록 해도 좋다. 이에 의해, 라이트 액세스 대상의 영역이 카피 중이면, 그 영역이 카피 완료가 될 때까지 그 라이트 액세스를 대기시킨다는 작용을 가져온다.Further, in the first aspect, when the address replacement unit determines that the access is a write access and the target copy unit area is being copied to the other storage area is made in the address collision determination, The write access may be made to wait until the copy unit area is copied. Thereby, when the area to be written access is being copied, the effect of waiting for the write access is brought about until the area to be copied is completed.
또한, 이 제1의 측면에 있어서, 상기 라이트 액세스가 대기되어 있는 사이에 그 라이트 액세스 요구를 유지하는 라이트 요구 버퍼를 더 구비해도 좋다. 이에 의해, 라이트 액세스 대상의 영역이 카피 중인 경우에 그 영역이 카피 완료가 될 때까지 그 라이트 액세스를 라이트 요구 버퍼에서 대기시킨다는 작용을 가져온다.Further, in the first aspect, a write request buffer for holding the write access request while the write access is waiting may be further provided. This brings about the effect of waiting for the write access in the write request buffer until the copy of the area to be written access is being copied.
또한, 이 제1의 측면에 있어서, 상기 어드레스 치환부는, 상기 액세스의 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에의 카피 전인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 치환을 행하지 않고 상기 액세스를 속행시키도록 해도 좋다. 이에 의해, 액세스 대상의 영역이 카피 전이면, 카피 원의 어드레스에 대해 액세스를 속행시킨다는 작용을 가져온다.Further, in the first aspect, the address replacement unit performs the replacement when a determination is made in the address conflict determination that the area of the copy unit to be accessed is before copying to the other storage area. You may make it continue the said access without performing. Thereby, if the area to be accessed is before copying, an effect of continuing access to the address of the copy source is brought about.
또한, 이 제1의 측면에 있어서, 상기 어드레스 치환부는, 상기 액세스의 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역과는 충돌하지 않는 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 치환을 행하지 않고 상기 액세스를 속행시키도록 해도 좋다. 이에 의해, 액세스 대상의 영역이 충돌하지 않는 경우에는 그 액세스를 속행시킨다는 작용을 가져온다.Further, in the first aspect, the address replacement unit is configured to replace the address when it is determined in the address collision determination that the copy unit area to be accessed does not collide with the other storage area. The access may be continued without performing . This brings about the effect of continuing the access when the areas to be accessed do not collide.
또한, 이 제1의 측면에 있어서, 상기 제2의 기억 영역을 단위로 하여 상기 액세스의 대상 어드레스에 관해 논리 어드레스로부터 상기 메모리의 물리 어드레스로 변환하는 어드레스 변환부를 구비하고, 상기 어드레스 변환부는, 상기 카피 동작이 행해진 후에는 카피 후의 물리 어드레스를 나타내도록 갱신되도록 해도 좋다. 이에 의해, 카피 완료 후에는 카피 처의 제2의 영역에 대해 액세스시킨다는 작용을 가져온다.Further, in the first aspect, there is provided an address converting unit that converts the target address to be accessed from a logical address to a physical address of the memory, using the second storage area as a unit, wherein the address converting unit comprises: After the copy operation is performed, it may be updated to indicate the physical address after copying. This brings about an effect of accessing the second area of the copy destination after copy completion.
또한, 이 제1의 측면에 있어서, 상기 다른 기억 영역은, 상기 카피 동작이 행해지기 전에는 액세스 불가능한 논리 어드레스 공간의 영역이고, 상기 카피 동작이 행해진 후에는 상기 어드레스 변환부에서 액세스 가능한 논리 어드레스 공간의 영역에 갱신된다. 이에 의해, 카피 완료까지의 사이에는 제2의 기억 영역의 전체로는 액세스시키지 않고, 제1의 기억 영역을 단위로 하여 액세스를 제어한다는 작용을 가져온다.Further, in the first aspect, the other storage area is an area of a logical address space that is inaccessible before the copy operation is performed, and is an area of a logical address space accessible by the address conversion unit after the copy operation is performed. updated in the area. This brings about an effect that access is controlled by the first storage area as a unit, without accessing the entire second storage area until the completion of copying.
또한, 이 제1의 측면에 있어서, 상기 제2의 기억 영역에 대한 액세스가 상기 카피 단위보다도 큰 영역에 관한 액세스인 경우에는 각각이 상기 카피 단위를 초과하지 않는 영역으로 분할하여 상기 어드레스 충돌 판정부에 공급하는 액세스 분할부를 더 구비하도록 해도 좋다. 이에 의해, 액세스 대상의 영역이 카피 단위를 초과하는 경우에도, 분할하면서 제1의 기억 영역을 단위로 하여 액세스를 제어한다는 작용을 가져온다.Further, in the first aspect, in the case where the access to the second storage area relates to an area larger than the copy unit, the address conflict determination unit divides each area into areas not exceeding the copy unit. You may make it further provide the access division part which supplies to. Thereby, even when the area to be accessed exceeds the copy unit, the effect of controlling the access by dividing the first storage area as a unit is brought about.
또한, 이 제1의 측면에 있어서, 상기 메모리는, 불휘발 메모리인 것을 상정해도 좋다. 예를 들면, 소거(消去)하는 일 없이 데이터의 재기록이 가능한 불휘발 메모리에 있어서, 웨어 레벨링 등 때문에 카피 동작이 필요하기 때문에, 그 카피 동작과 외부로부터의 액세스가 충돌하는 경우에, 제1의 기억 영역을 단위로 하여 액세스를 제어한다는 작용을 가져온다.In addition, in this 1st aspect, it may be assumed that the said memory is a non-volatile memory. For example, in a nonvolatile memory in which data can be rewritten without erasing, a copy operation is required for wear leveling or the like. It brings about the effect of controlling access by using the storage area as a unit.
도 1은 본 기술의 실시의 형태에서의 정보 처리 시스템의 한 구성례를 도시하는 도면.
도 2는 본 기술의 제1의 실시의 형태에서의 메모리 컨트롤러(200)의 한 구성례를 도시하는 도면.
도 3은 본 기술의 실시의 형태에서의 메모리(300)의 어드레스 공간의 대응례를 도시하는 도면.
도 4는 본 기술의 실시의 형태에서의 어드레스 변환부(260)의 테이블의 상태례를 도시하는 도면.
도 5는 본 기술의 실시의 형태에서의 데이터 카피의 상태례를 도시하는 도면.
도 6은 본 기술의 실시의 형태에서의 데이터 카피 후의 어드레스 변환부(260)의 테이블의 상태례를 도시하는 도면.
도 7은 본 기술의 실시의 형태에서의 데이터 카피일 때의 블록 내의 각 페이지의 상태례를 도시하는 도면.
도 8은 본 기술의 실시의 형태에서의 메모리 컨트롤러(200)의 데이터 카피의 처리 순서례를 도시하는 흐름도.
도 9는 본 기술의 실시의 형태에서의 어드레스 충돌의 상태와 동작과의 관계례를 도시하는 도면.
도 10은 본 기술의 실시의 형태에서의 케이스 #1 및 #4인 경우의 동작례를 도시하는 도면.
도 11은 본 기술의 실시의 형태에서의 케이스 #2인 경우의 동작례를 도시하는 도면.
도 12는 본 기술의 실시의 형태에서의 케이스 #3 및 #6인 경우의 동작례를 도시하는 도면.
도 13은 본 기술의 실시의 형태에서의 케이스 #5인 경우의 동작례를 도시하는 도면.
도 14는 본 기술의 실시의 형태에서의 케이스 #7인 경우의 동작례를 도시하는 도면.
도 15는 본 기술의 실시의 형태에서의 메모리 컨트롤러(200)의 어드레스 충돌 판정에 관한 처리 순서례를 도시하는 흐름도.
도 16은 본 기술의 제2의 실시의 형태에서의 메모리 컨트롤러(200)의 한 구성례를 도시하는 도면.BRIEF DESCRIPTION OF THE DRAWINGS It is a figure which shows one structural example of the information processing system in embodiment of this technology.
Fig. 2 is a diagram showing a configuration example of a
Fig. 3 is a diagram showing a corresponding example of the address space of the
Fig. 4 is a diagram showing an example of the state of the table of the
Fig. 5 is a diagram showing an example of a data copy state in the embodiment of the present technology;
Fig. 6 is a diagram showing an example of the state of the table of the
Fig. 7 is a diagram showing an example of the state of each page in a block when data is copied in the embodiment of the present technology;
Fig. 8 is a flowchart showing an example of a data copy processing procedure of the
Fig. 9 is a diagram showing an example of the relationship between the state of the address conflict and the operation in the embodiment of the present technology;
Fig. 10 is a diagram showing an operation example in the case of
Fig. 11 is a diagram showing an operation example in the case of
Fig. 12 is a diagram showing an operation example in the case of
Fig. 13 is a diagram showing an operation example in
Fig. 14 is a diagram showing an operation example in the case of
Fig. 15 is a flowchart showing an example of a processing procedure related to address collision determination of the
Fig. 16 is a diagram showing one configuration example of a
이하, 본 기술을 실시하기 위한 형태(이하, 실시의 형태라고 칭한다)에 관해 설명한다. 설명은 이하의 순서에 의해 행한다.Hereinafter, a form for implementing the present technology (hereinafter, referred to as an embodiment) will be described. The explanation is given in the following order.
1. 제1의 실시의 형태(호스트로부터의 페이지 단위의 액세스를 처리하는 예)1. First embodiment (example of processing page unit access from host)
2. 제2의 실시의 형태(호스트로부터의 액세스를 페이지 단위로 분할하여 처리하는 예)2. Second embodiment (Example in which access from the host is divided into page units and processed)
<1. 제1의 실시의 형태><1. First embodiment>
[정보 처리 시스템의 구성][Configuration of information processing system]
도 1은, 본 기술의 실시의 형태에서의 정보 처리 시스템의 한 구성례를 도시하는 도면이다.1 is a diagram showing an example of a configuration of an information processing system according to an embodiment of the present technology.
이 정보 처리 시스템은, 호스트 컴퓨터(100)와, 메모리 컨트롤러(200)와, 메모리(300)로 구성된다. 메모리 컨트롤러(200) 및 메모리(300)는 메모리 모듈(400)을 구성한다.This information processing system includes a
호스트 컴퓨터(100)는, 메모리(300)에 대해 데이터의 리드 처리 및 라이트 처리 등을 지령하는 커맨드를 발행하는 것이다. 이 호스트 컴퓨터(100)는, 호스트 컴퓨터(100)로서의 처리를 실행하는 프로세서와, 메모리 컨트롤러(200)와 사이의 주고받음을 행하기 위한 컨트롤러 인터페이스를 구비한다.The
메모리 컨트롤러(200)는, 호스트 컴퓨터(100)로부터의 커맨드에 따라, 메모리(300)에 대한 리퀘스트 제어를 행하는 것이다. 또한, 메모리 컨트롤러(200)는, 특허청구의 범위에 기재된 메모리 제어 장치의 한 예이다.The
메모리(300)는, 제어부 및 메모리 셀 어레이를 구비한다. 이 메모리(300)의 제어부는, 메모리 컨트롤러(200)로부터의 리퀘스트에 따라 메모리 셀에의 액세스를 행한다. 메모리(300)의 메모리 셀 어레이는, 복수의 메모리 셀로 이루어지는 메모리 셀 어레이이고, 비트마다 2값의 어느 하나의 값을 기억하는 메모리 셀, 또는, 복수 비트마다 다가의 어느 하나의 값을 기억하는 메모리 셀이 2차원 형상(狀)(매트릭스 형상(狀))으로 다수 배열되어 있다. 이 메모리 셀 어레이는, 복수 바이트 사이즈(예를 들면, 512B)를 갖는 페이지를 판독 또는 기록하는 액세스 단위로 하여, 소거하는 일 없이 데이터의 재기록이 가능한 불휘발 메모리(NVM: Non-Volatile Memory)를 상정한다.The
[메모리 컨트롤러의 구성][Configuration of memory controller]
도 2는, 본 기술의 제1의 실시의 형태에서의 메모리 컨트롤러(200)의 한 구성례를 도시하는 도면이다. 이 메모리 컨트롤러(200)는, 카피 제어부(210)와, 논리 어드레스 충돌 판정부(230)와, 논리 어드레스 치환부(240)와, 라이트 요구 버퍼(250)와, 어드레스 변환부(260)와, RAM(270)을 구비한다. 또한, 이 메모리 컨트롤러(200)는, 호스트 컴퓨터(100)와 사이의 주고받음을 행하기 위한 호스트 인터페이스(201)와, 메모리(300)와 사이의 주고받음을 행하기 위한 메모리 인터페이스(203)를 구비한다.2 is a diagram showing an example of a configuration of the
카피 제어부(210)는, 웨어 레벨링 등을 위한 영역간의 카피 및 삭제를 제어하는 것이다. 이 카피 제어부(210)는, 호스트 컴퓨터(100)로부터의 커맨드에 의한 처리와는 별도로, 백그라운드로 리드 및 라이트의 액세스를 제어한다. 이 카피 제어부(210)로부터의 액세스는, 호스트 컴퓨터(100)로부터의 액세스와 마찬가지로, 논리 어드레스에 의해 지시된다.The
카피 제어부(210)에 의한 카피 동작은, 메모리(300)의 블록을 단위로 하여 지시된다. 블록은 복수의 페이지로 구성된다. 카피 동작할 때에는, 1페이지씩이 카피 단위로서 처리된다. 따라서 카피 대상으로 되어 있는 블록에서, 카피 완료의 페이지, 카피 중의 페이지, 및, 카피 전(前)의 페이지의 3종류의 상태가 존재할 수 있다. 또한, 페이지는, 특허청구의 범위에 기재된 제1의 기억 영역의 한 예이다. 또한, 블록은, 특허청구의 범위에 기재된 제2의 기억 영역의 한 예이다.The copy operation by the
논리 어드레스 충돌 판정부(230)는, 카피 제어부(210)에 의한 카피 동작의 대상으로 되어 있는 영역의 논리 어드레스 공간과, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스와의 충돌을 판정하는 것이다. 이 논리 어드레스 충돌 판정부(230)는, 양자의 논리 어드레스 및 호스트 컴퓨터(100)로부터 발행되는 커맨드의 종류(리드 또는 라이트)에 의거하여, 충돌의 유무, 및, 충돌이 생기고 있는 경우에는 페이지의 상태(상술한 3종류의 어느 하나)가 판정된다. 이 판정 결과는, 논리 어드레스 치환부(240)에 공급된다. 또한, 논리 어드레스 충돌 판정부(230)는, 특허청구의 범위에 기재된 어드레스 충돌 판정부의 한 예이다.The logical address
논리 어드레스 치환부(240)는, 논리 어드레스 충돌 판정부(230)에 의한 판정 결과에 응하여, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를 다른 논리 어드레스로 치환하는 것이다. 이 어드레스 치환의 구체적인 내용에 관해서는 후술한다. 또한, 논리 어드레스 치환부(240)는, 특허청구의 범위에 기재된 어드레스 치환부의 한 예이다.The logical
라이트 요구 버퍼(250)는, 카피 중의 페이지에 대해, 호스트 컴퓨터(100)로부터 라이트 요구가 발행되는 때에, 그 라이트 요구를 대기시키기 위해 그 내용을 유지하는 버퍼이다. 논리 어드레스 충돌 판정부(230)에 의한 판정 결과에 있어서, 카피 중의 페이지에 대한 라이트 요구라고 판정되면, 논리 어드레스 치환부(240)는 라이트 요구 버퍼(250)에 대해 그 라이트 요구를 출력한다.The
어드레스 변환부(260)는, 논리 어드레스 치환부(240)로부터 출력된 논리 어드레스를, 메모리(300)의 물리 어드레스로 변환하는 것이다. 이 어드레스 변환부(260)는, 예를 들면, 논리 어드레스와 물리 어드레스를 관련짓는 테이블을 유지하고, 그 테이블을 참조함에 의해 논리 어드레스로부터 물리 어드레스로의 변환을 행한다.The
RAM(Random Access Memory)(270)은, 메모리 컨트롤러(200)의 동작에 필요한 작업 영역을 기억하는 내부 메모리이다. 이 RAM(270)은, 웨어 레벨링을 위한 카피 동작시에는, 메모리(300)로부터 판독된 데이터를 일단 기억하는 버퍼 영역으로서 이용된다.The random access memory (RAM) 270 is an internal memory that stores a work area necessary for the operation of the
[메모리의 어드레스 공간][Address space in memory]
도 3은, 본 기술의 실시의 형태에서의 메모리(300)의 어드레스 공간의 대응례를 도시하는 도면이다.FIG. 3 is a diagram showing a corresponding example of the address space of the
호스트 컴퓨터(100)로부터 발행되는 커맨드나, 카피 제어부(210)에 의한 카피 동작의 제어는, 논리 어드레스에 의해 지시된다. 논리 어드레스 공간은, 메모리(300)의 물리 어드레스 공간에 매핑되어 있다. 메모리(300)에 대해 액세스가 행해질 때에는, 어드레스 변환부(260)가 그 논리 어드레스를, 블록 단위로 메모리(300)의 물리 어드레스로 변환한다.A command issued from the
여기서는, 오버 프로비저닝을 상정한다. 즉, 물리 어드레스 공간은, 호스트 컴퓨터(100)로부터 액세스 가능한 논리 어드레스 공간보다도 큰 공간을 갖는다. 그때문에, 일부의 물리 어드레스 공간은, 호스트 컴퓨터(100)로부터 액세스 불가능한 논리 어드레스 공간으로서 매핑된다. 이 예에서는, 논리 어드레스 공간에서의 페이지 #1000보다 낮은 어드레스의 영역은, 「호스트 컴퓨터(100)로부터 액세스 가능한 논리 어드레스 공간」(이하, 「액세스 가능 공간」이라고 칭한다.)로서 매핑된다. 한편, 논리 어드레스 공간에서의 페이지 #1000 이후의 어드레스의 영역은, 「호스트 컴퓨터(100)로부터 액세스 불가능한 논리 어드레스 공간」(이하, 「액세스 불가능 공간」이라고 칭한다.)로서 매핑된다.Here, over-provisioning is assumed. That is, the physical address space has a larger space than the logical address space accessible from the
도 4는, 본 기술의 실시의 형태에서의 어드레스 변환부(260)의 테이블의 상태례를 도시하는 도면이다.4 is a diagram showing an example of the state of the table of the
이 예에서는, 논리 어드레스 공간에서의 논리 블록 어드레스 #0부터 #100보다 낮은 어드레스의 영역이, 액세스 가능 공간으로서 매핑되어 있다. 그리고, 논리 블록 어드레스 #100 이후의 어드레스의 영역이 액세스 불가능 공간으로서 매핑되어 있다.In this example, the logical block addresses #0 to #100 in the logical address space are mapped as accessible spaces. Then, the address area after logical
[데이터 카피][Data Copy]
도 5는, 본 기술의 실시의 형태에서의 데이터 카피의 상태례를 도시하는 도면이다. 이 데이터 카피는, 웨어 레벨링 등에 즈음하여 실행되는 것이다.Fig. 5 is a diagram showing an example of a data copy state in the embodiment of the present technology. This data copy is executed for wear leveling or the like.
이 실시의 형태에서는, 데이터 카피일 때, 논리 어드레스 공간에서, 액세스 가능 공간부터 액세스 불가능 공간에 카피가 행해진다. 이 예에서는, 논리 블록 #0의 각 페이지의 데이터가 RAM(270)에 판독되고, 그 판독된 데이터가 논리 블록 #100에 카피된다. 즉, 물리 블록 #0의 각 페이지의 기억 내용이, 물리 블록 #200에 카피되는 것이 된다.In this embodiment, in the case of data copying, copying is performed from an accessible space to an inaccessible space in a logical address space. In this example, data of each page of
이 데이터 카피가 완료된 후, 액세스 불가능 공간에 카피된 블록이, 액세스 불가능 공간부터 액세스 가능 공간이 되도록, 어드레스 변환부(260)의 테이블이 갱신된다. 그 상태례를 나타내는 것이 다음 도면이다.After this data copying is completed, the table of the
도 6은, 본 기술의 실시의 형태에서의 데이터 카피 후의 어드레스 변환부(260)의 테이블의 상태례를 도시하는 도면이다.6 is a diagram showing an example of the state of the table of the
이 예에서는, 액세스 가능 공간의 논리 블록 어드레스 #0에 대응하는 물리 블록 어드레스가, #0부터 #200으로 갱신되어 있다. 한편, 액세스 불가능 공간의 논리 블록 어드레스 #100에 대응하는 물리 블록 어드레스가, #200부터 #0으로 갱신되어 있다. 즉, 물리 블록 어드레스 #0과 #200이, 액세스 가능 공간과 액세스 불가능 공간의 사이에서 교체되어 있다.In this example, the physical block addresses corresponding to logical block addresses #0 of the accessible space are updated from #0 to #200. On the other hand, physical block addresses corresponding to logical block addresses #100 in the inaccessible space are updated from #200 to #0. That is, the physical block addresses #0 and #200 are swapped between the accessible space and the inaccessible space.
이와 같이, 이 실시의 형태에서의 데이터 카피일 때에는, 카피 원의 블록을 일단 액세스 불가능 공간에 기록하여 두고, 카피 완료 후에 액세스 가능 공간으로 갱신하여, 호스트 컴퓨터(100)로부터 보이도록 한다. 이에 의해, 카피 시작부터 카피 완료까지의 어중간한 상태에서는, 호스트 컴퓨터(100)로부터 직접은 보이지 않도록 하여, 그 사이의 제어를 메모리 컨트롤러(200)에서 관리하는 것을 가능하게 한다.As described above, in the case of data copying in this embodiment, the copy source block is once recorded in the inaccessible space, and is updated to the accessible space after copying is completed so that it is visible from the
도 7은, 본 기술의 실시의 형태에서의 데이터 카피일 때의 블록 내의 각 페이지의 상태례를 도시하는 도면이다.Fig. 7 is a diagram showing an example of the state of each page in a block when data is copied in the embodiment of the present technology.
상술한 바와 같이, 카피 제어부(210)에 의한 카피 동작은, 메모리(300)의 블록을 단위로 하여 지시된다. 이 블록 카피에서는, 페이지 단위의 카피(페이지 카피)가 복수회 행해진다. 카피 원의 블록과 카피 처의 블록에서, 선두로부터 순차적으로, 카피 위치를 나타내는 카피 오프셋에 따라 각 페이지가 카피되어 간다. 하나의 페이지가 카피될 때마다 카피 오프셋은 인크리먼트되어 간다.As described above, the copy operation by the
카피 오프셋이 나타내는 페이지가 카피 중이고, 카피 오프셋이 나타내는 페이지보다 이전이 카피 완료이고, 카피 오프셋이 가리키는 페이지보다 이후가 카피 전인 것이 된다.The page indicated by the copy offset is being copied, the copy is completed before the page indicated by the copy offset, and the page after the page indicated by the copy offset is before the copy.
도 8은, 본 기술의 실시의 형태에서의 메모리 컨트롤러(200)의 데이터 카피의 처리 순서례를 도시하는 흐름도이다.8 is a flowchart showing an example of a data copy processing procedure of the
먼저, 카피 오프셋이 「0」으로 클리어된다(스텝 S911). 그리고, 카피 원의 카피 오프셋이 나타내는 페이지로부터 RAM(270)에 데이터가 판독된다(스텝 S912). 이 RAM(270)에 판독된 데이터는, 카피 처의 카피 오프셋이 나타내는 페이지에 기록된다(스텝 S913).First, the copy offset is cleared to "0" (step S911). Then, data is read into the
블록 내의 모든 페이지에 대해 카피가 완료되지 않으면(스텝 S914: No), 카피 오프셋을 하나 인크리먼트하고(스텝 S915), 스텝 S912 이후의 처리를 반복한다.If copying is not completed for all the pages in the block (step S914: No), the copy offset is incremented by one (step S915), and the processing after step S912 is repeated.
블록 내의 모든 페이지에 관해 카피가 완료된 경우에는(스텝 S914: Yes), 어드레스 변환부(260)의 테이블을 갱신하고(스텝 S916), 카피 처의 영역을 액세스 가능 공간으로 한다.When copying is completed for all pages in the block (step S914: Yes), the table of the
[어드레스 충돌][Address Conflict]
도 9는, 본 기술의 실시의 형태에서의 어드레스 충돌의 상태와 동작과의 관계례를 도시하는 도면이다.Fig. 9 is a diagram showing an example of the relationship between the state of the address conflict and the operation in the embodiment of the present technology.
이 실시의 형태에서는, 논리 어드레스 충돌 판정부(230)가, 호스트 컴퓨터(100)로부터의 커맨드에 관해, 그 액세스가 카피 중의 논리 어드레스 공간과 충돌하는 상태를 판정한다. 이하에서는, 동 도면에 따라, 7개의 케이스로 경우 분류하여 설명한다.In this embodiment, the logical address
케이스 #1 내지 3은, 호스트 컴퓨터(100)로부터의 리드 커맨드에 의해 지정된 논리 어드레스와 카피 동작의 대상으로 되어 있는 영역의 논리 어드레스 공간이 충돌하고 있는 경우이다. 케이스 #4 내지 6은, 호스트 컴퓨터(100)로부터의 라이트 커맨드에 의해 지정된 논리 어드레스와 카피 동작의 대상으로 되어 있는 영역의 논리 어드레스 공간이 충돌하고 있는 경우이다. 케이스 #7은, 호스트 컴퓨터(100)로부터의 커맨드에 의해 지정된 논리 어드레스와 카피 동작의 대상으로 되어 있는 영역의 논리 어드레스 공간이 충돌하지 않는 경우이다.
도 10은, 본 기술의 실시의 형태에서의 케이스 #1 및 #4인 경우의 동작례를 도시하는 도면이다.Fig. 10 is a diagram showing an operation example in the case of
케이스 #1은, 호스트 컴퓨터(100)로부터 리드 어드레스로서 지정된 논리 어드레스가 카피 완료의 페이지였던 경우이다. 또한, 케이스 #4는, 호스트 컴퓨터(100)로부터 라이트 어드레스로서 지정된 논리 어드레스가 카피 완료의 페이지였던 경우이다. 즉, 이들 케이스 #1 및 #4인 경우에는, 호스트 컴퓨터(100)로부터 액세스하려고 하는 페이지가 이미 카피 완료이다. 따라서 카피 처의 페이지에 액세스하면, 호스트 컴퓨터(100)로부터의 커맨드를 처리할 수 있게 된다.
그때문에, 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를, 카피 처의 논리 어드레스로 치환한다. 이 치환된 논리 어드레스가, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다.Therefore, the logical
도 11은, 본 기술의 실시의 형태에서의 케이스 #2인 경우의 동작례를 도시하는 도면이다.11 is a diagram showing an operation example in the case of
케이스 #2는, 호스트 컴퓨터(100)로부터 리드 어드레스로서 지정된 논리 어드레스가 카피 중의 페이지였던 경우이다. 이 경우, 카피 원의 페이지로부터 데이터를 리드하면, 호스트 컴퓨터(100)로부터의 리드 커맨드를 처리할 수 있게 된다.
그때문에, 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를, 치환하지 않고 그대로 어드레스 변환부(260)에 출력한다. 이 치환되지 않은 논리 어드레스가, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다.Therefore, the logical
도 12는, 본 기술의 실시의 형태에서의 케이스 #3 및 #6인 경우의 동작례를 도시하는 도면이다.12 is a diagram showing an operation example in the case of
케이스 #3은, 호스트 컴퓨터(100)로부터 리드 어드레스로서 지정된 논리 어드레스가 카피 전의 페이지였던 경우이다. 또한, 케이스 #6은, 호스트 컴퓨터(100)로부터 라이트 어드레스로서 지정된 논리 어드레스가 카피 전의 페이지였던 경우이다. 즉, 이들 케이스 #3 및 #6인 경우에는, 호스트 컴퓨터(100)로부터 액세스하려고 하는 페이지는 아직도 카피 전이다. 따라서 카피 원의 페이지에 액세스하면, 호스트 컴퓨터(100)로부터의 커맨드를 처리할 수 있게 된다.
그때문에, 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행된 커맨드에 의해 지정된 논리 어드레스를, 치환하지 않고 그대로 어드레스 변환부(260)에 출력한다. 이 치환되지 않은 논리 어드레스가, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다.Therefore, the logical
도 13은, 본 기술의 실시의 형태에서의 케이스 #5인 경우의 동작례를 도시하는 도면이다.13 is a diagram showing an operation example in the case of
케이스 #5는, 호스트 컴퓨터(100)로부터 라이트 어드레스로서 지정된 논리 어드레스가 카피 중의 페이지였던 경우이다. 이 경우, 카피 중의 페이지에 대한 기록은, 데이터를 파괴해 버리기 때문에, 행할 수가 없다.
그때문에, 그 라이트 요구를 대기시키기 위해, 논리 어드레스 치환부(240)는 라이트 요구 버퍼(250)에 그 내용을 유지시킨다. 따라서 그 페이지가 카피 완료의 상태가 될 때까지, 그 라이트 요구는 일시 정지가 된다. 그 페이지의 카피가 완료되면, 케이스 #4의 상태가 되고, 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를 카피 처의 논리 어드레스로 치환하여, 어드레스 변환부(260)에 출력한다.Therefore, in order to wait for the write request, the logical
도 14는, 본 기술의 실시의 형태에서의 케이스 #7인 경우의 동작례를 도시하는 도면이다.14 is a diagram showing an operation example in the case of
케이스 #7은, 호스트 컴퓨터(100)로부터의 커맨드에 의해 지정된 논리 어드레스와 카피 동작의 대상으로 되어 있는 영역의 논리 어드레스 공간이 충돌하지 않는 경우이다. 따라서 호스트 컴퓨터(100)로부터의 커맨드가 리드 또는 라이트의 어느 쪽이라도, 치환을 행할 필요는 없다.
그때문에, 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를, 치환하지 않고 그대로 어드레스 변환부(260)에 출력한다. 이 치환되지 않은 논리 어드레스가, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다.Therefore, the logical
도 15는, 본 기술의 실시의 형태에서의 메모리 컨트롤러(200)의 어드레스 충돌 판정에 관한 처리 순서례를 도시하는 흐름도이다.15 is a flowchart showing an example of a processing procedure related to address collision determination of the
호스트 컴퓨터(100)로부터 메모리(300)에 액세스하는 커맨드가 발행되면, 논리 어드레스 충돌 판정부(230)는, 카피 동작중 영역의 논리 어드레스 공간과, 호스트 컴퓨터(100)로부터 지정된 논리 어드레스와의 충돌을 판정한다(스텝 S921). 그리고, 그 판정 결과에 응하여, 이하와 같이 각 처리가 행해진다.When a command to access the
호스트 컴퓨터(100)로부터의 커맨드에 의해 지정된 논리 어드레스와 카피 동작의 대상으로 되어 있는 영역의 논리 어드레스 공간이 충돌하지 않는 경우는(스텝 S931: No), 케이스 #7에 해당한다. 따라서 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를, 치환하지 않고 그대로 어드레스 변환부(260)에 출력한다(스텝 S935). 이 치환되지 않은 논리 어드레스는, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다(스텝 S939).
호스트 컴퓨터(100)로부터 액세스하려고 하는 페이지가 카피 완료였던 경우는(스텝 S932: Yes), 케이스 #1 및 #4에 해당한다. 따라서 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를, 카피 처의 논리 어드레스로 치환한다(스텝 S936). 이 치환된 논리 어드레스는, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다(스텝 S939).
호스트 컴퓨터(100)로부터 액세스하려고 하는 페이지가 카피 전이였던 경우는(스텝 S933: Yes), 케이스 #3 및 #6에 해당한다. 따라서 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를, 치환하지 않고 그대로 어드레스 변환부(260)에 출력한다(스텝 S935). 이 치환되지 않은 논리 어드레스는, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다(스텝 S939).
호스트 컴퓨터(100)로부터 액세스하려고 하는 페이지가 카피 전이 아니라고 판정된 경우는(스텝 S933: No), 그 페이지는 카피 중인 것이 된다. 이때, 호스트 컴퓨터(100)로부터의 액세스가 리드 액세스라면(스텝 S934: Yes), 케이스 #2에 해당한다. 따라서 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를, 치환하지 않고 그대로 어드레스 변환부(260)에 출력한다(스텝 S935). 이 치환되지 않은 논리 어드레스는, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다(스텝 S939).If the
호스트 컴퓨터(100)로부터 액세스하려고 하는 페이지가 카피 중이고(스텝 S933: No), 그 액세스가 리드 액세스가 아니면(스텝 S934: No), 케이스 #5에 해당한다. 따라서 논리 어드레스 치환부(240)는, 라이트 요구 버퍼(250)에 그 내용을 유지시키고, 그 페이지가 카피 완료의 상태가 될 때까지 그 라이트 요구를 대기시킨다(스텝 S938). 즉, 카피 완료를 판정하는 스텝 S932에 되돌아오게 된다.If the page to be accessed from the
이와 같이, 본 기술의 제1의 실시의 형태에 의하면, 호스트 컴퓨터(100)로부터의 커맨드에 의해 지정된 논리 어드레스와 카피 동작의 대상으로 되어 있는 영역의 논리 어드레스 공간이 충돌하고 있는 경우에도, 페이지 단위로 액세스를 제어할 수 있다. 즉, 카피 중의 라이트 이외는 페이지 단위로 액세스를 속행시킬 수 있고, 메모리 액세스에 필요로 한 레이턴시를 단축할 수 있다. 또한, 종래 기술과 같이 다른 메모리 영역을 별도 마련할 필요가 없고, 데이터의 머지 작업을 불필요하게 할 수 있다.As described above, according to the first embodiment of the present technology, even when the logical address specified by the command from the
<2. 제2의 실시의 형태><2. Second embodiment>
상술한 제1의 실시의 형태에서는, 호스트 컴퓨터(100)로부터의 커맨드에 의한 액세스가 페이지 내에 수납되어 있는 것을 전제로 하고 있다. 이에 대해, 이 제2의 실시의 형태에서는, 호스트 컴퓨터(100)로부터의 커맨드에 의한 액세스가 페이지 내에 수납되지 않는 경우도 허용한다. 또한, 정보 처리 시스템으로서의 전체 구성에 관해서는, 상술한 제1의 실시의 형태와 마찬가지이기 때문에, 상세한 설명은 생략한다.In the first embodiment described above, it is assumed that access by a command from the
[메모리 컨트롤러의 구성][Configuration of memory controller]
도 16은, 본 기술의 제2의 실시의 형태에서의 메모리 컨트롤러(200)의 한 구성례를 도시하는 도면이다. 이 제2의 실시의 형태에서의 메모리 컨트롤러(200)는, 상술한 제1의 실시의 형태에 비하여, 액세스 분할부(220)를 더 구비하는 점에서 다르고, 그 이외에 관해서는 마찬가지이다.16 is a diagram showing an example of a configuration of the
액세스 분할부(220)는, 호스트 컴퓨터(100)로부터의 커맨드에 의한 액세스가 1페이지보다도 큰 영역에 관한 것이면, 각각이 1페이지를 초과하지 않는 영역으로 분할하는 것이다. 예를 들면, 1페이지의 사이즈가 512B이고, 호스트 컴퓨터(100)로부터의 커맨드에 의한 액세스가 128KB의 데이터 용량에 관한 것이면, 그 액세스를 512B마다 분할하여, 논리 어드레스 충돌 판정부(230)에 공급한다. 이에 의해, 논리 어드레스 충돌 판정부(230) 이후의 처리는, 상술한 제1의 실시의 형태와 마찬가지가 된다.The
이와 같이, 본 기술의 제2의 실시의 형태에 의하면, 호스트 컴퓨터(100)로부터의 커맨드에 의한 액세스를 액세스 분할부(220)에 의해 페이지마다 분할함에 의해, 사이즈가 큰 액세스에 대해서도 페이지 단위로 액세스를 제어할 수 있다.As described above, according to the second embodiment of the present technology, access by a command from the
또한, 상술한 실시의 형태는 본 기술을 구현화하기 위한 한 예를 나타냈던 것이고, 실시의 형태에서의 사항과, 특허청구의 범위에서의 발명 특정 사항은 각각 대응 관계를 갖는다. 마찬가지로, 특허청구의 범위에서의 발명 특정 사항과, 이것과 동일 명칭을 붙인 본 기술의 실시의 형태에서의 사항은 각각 대응 관계를 갖는다. 단, 본 기술은 실시의 형태로 한정되는 것이 아니고, 그 요지를 일탈하지 않는 범위에서 실시의 형태에 여러가지의 변형을 행함에 의해 구현화할 수 있다.In addition, the above-mentioned embodiment showed an example for realizing this technology, and the matter in embodiment and the invention-specific matter in a claim have a corresponding relationship, respectively. Similarly, the invention-specifying matter in the claims and the matter in the embodiment of the present technology to which the same name is attached have a corresponding relationship, respectively. However, the present technology is not limited to the embodiment, and can be implemented by making various modifications to the embodiment without departing from the gist thereof.
또한, 상술한 실시의 형태에서의 설명한 처리 순서는, 이들 일련의 순서를 갖는 방법으로서 파악해도 좋으며, 또한, 이들 일련의 순서를 컴퓨터에 실행시키기 위한 프로그램 내지 그 프로그램을 기억하는 기록 매체로서 파악해도 좋다. 이 기록 매체로서, 예를 들면, CD(Compact Disc), MD(MiniDisc), DVD(Digital Versatile Disc), 메모리 카드, 블루-레이 디스크(Blu-ray(등록상표) Disc) 등을 이용할 수 있다.In addition, the processing procedure described in the above-mentioned embodiment may be grasped as a method having these series of procedures, and may be grasped as a program for causing a computer to execute these series of procedures or a recording medium storing the program. good. As this recording medium, for example, CD (Compact Disc), MD (MiniDisc), DVD (Digital Versatile Disc), memory card, Blu-ray Disc (Blu-ray (registered trademark) Disc), etc. can be used.
또한, 본 명세서에 기재된 효과는 어디까지나 예시이고, 한정되는 것이 아니고, 또한, 다른 효과가 있어도 좋다.In addition, the effect described in this specification is an illustration to the last, It is not limited, Moreover, another effect may exist.
또한, 본 기술은 이하와 같은 구성도 취할 수 있다.In addition, this technique can also take the following structures.
(1) 메모리의 카피 단위인 제1의 기억 영역을 복수 통합한 제2의 기억 영역부터 상기 메모리의 다른 기억 영역에 카피 동작이 실행되고 있는 경우에 있어서, 상기 제2의 기억 영역에 대한 액세스가 발행된 때에 상기 제1의 기억 영역을 단위로 하여 상기 액세스를 제어하는 메모리 제어 장치.(1) When a copy operation is performed from a second storage area in which a plurality of first storage areas that are a copy unit of the memory are integrated to another storage area of the memory, access to the second storage area is A memory control device for controlling the access by using the first storage area as a unit at the time of issuance.
(2) 상기 카피 동작과 상기 액세스와의 어드레스 충돌을 상기 카피 단위로 판정하는 어드레스 충돌 판정부와,(2) an address conflict determination unit that determines an address conflict between the copy operation and the access in units of the copy;
상기 액세스의 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에 카피 완료인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 액세스의 대상이 되는 영역의 어드레스를 카피 처의 어드레스로 치환하여 상기 액세스를 속행시키는 어드레스 치환부를 구비하는 상기 (1)에 기재된 메모리 제어 장치.When it is determined by the address collision determination that the copy unit area to be accessed has been copied to the other storage area, the address of the area to be accessed is replaced with the copy destination address, and The memory control device according to (1) above, comprising an address replacement unit for continuing access.
(3) 상기 어드레스 치환부는, 상기 액세스가 리드 액세스이고 그 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에 카피 중인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 치환을 행하지 않고 상기 액세스를 속행시키는 상기 (2)에 기재된 메모리 제어 장치.(3) The address replacement unit performs the access without performing the replacement when a determination is made in the address conflict determination that the access is a read access and the target copy unit area is being copied to the other storage area The memory control device according to (2) above, in which
(4) 상기 어드레스 치환부는, 상기 액세스가 라이트 액세스이고 그 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에 카피 중인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 카피 단위의 영역이 카피 완료가 될 때까지 상기 라이트 액세스를 대기시키는 상기 (2) 또는 (3)에 기재된 메모리 제어 장치.(4) The address replacement unit is configured to copy the copy unit area when it is determined in the address conflict determination that the access is a write access and the target copy unit area is being copied to the other storage area. The memory control device according to (2) or (3) above, wherein the write access waits until completion.
(5) 상기 라이트 액세스가 대기되어 있는 사이에 그 라이트 액세스 요구를 유지하는 라이트 요구 버퍼를 더 구비하는 상기 (4)에 기재된 메모리 제어 장치.(5) The memory control device according to (4), further comprising a write request buffer for holding the write access request while the write access is waiting.
(6) 상기 어드레스 치환부는, 상기 액세스의 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에의 카피 전인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 치환을 행하지 않고 상기 액세스를 속행시키는 상기 (2)부터 (5)의 어느 하나에 기재된 메모리 제어 장치.(6) The address replacement unit continues the access without performing the replacement when it is determined in the address conflict determination that the copy unit area to be accessed is before copying to the other storage area. The memory control device according to any one of (2) to (5) above.
(7) 상기 어드레스 치환부는, 상기 액세스의 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역과는 충돌하지 않는 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 치환을 행하지 않고 상기 액세스를 속행시키는 상기 (2)부터 (6)의 어느 하나에 기재된 메모리 제어 장치.(7) The address replacement unit continues the access without performing the replacement when it is determined in the address collision determination that the copy unit area to be accessed does not collide with the other storage area. The memory control device according to any one of (2) to (6) above.
(8) 상기 제2의 기억 영역을 단위로 하여 상기 액세스의 대상 어드레스에 관해 논리 어드레스로부터 상기 메모리의 물리 어드레스로 변환하는 어드레스 변환부를 구비하고,(8) an address conversion unit for converting the target address to be accessed from a logical address to a physical address of the memory using the second storage area as a unit;
상기 어드레스 변환부는, 상기 카피 동작이 행해진 후에는 카피 후의 물리 어드레스를 나타내도록 갱신되는 상기 (2)부터 (7)의 어느 하나에 기재된 메모리 제어 장치.The memory control device according to any one of (2) to (7), wherein the address converting unit is updated to indicate the physical address after copying after the copy operation is performed.
(9) 상기 다른 기억 영역은, 상기 카피 동작이 행해지기 전에는 액세스 불가능한 논리 어드레스 공간의 영역이고, 상기 카피 동작이 행해진 후에는 상기 어드레스 변환부에서 액세스 가능한 논리 어드레스 공간의 영역으로 갱신되는 상기 (8)에 기재된 메모리 제어 장치.(9) The other storage area is an area in the logical address space that is not accessible before the copy operation is performed, and is updated to an area in the logical address space accessible by the address conversion unit after the copy operation is performed (8) ) as described in the memory control device.
(10) 상기 제2의 기억 영역에 대한 액세스가 상기 카피 단위보다도 큰 영역에 관한 액세스인 경우에는 각각이 상기 카피 단위를 초과하지 않는 영역으로 분할하여 상기 어드레스 충돌 판정부에 공급하는 액세스 분할부를 더 구비하는 상기 (2)부터 (9)의 어느 하나에 기재된 메모리 제어 장치.(10) In the case where the access to the second storage area relates to an area larger than the copy unit, an access division unit that divides each area into areas not exceeding the copy unit and supplies the area to the address conflict determination unit. The memory control device according to any one of (2) to (9), further comprising.
(11) 메모리와,(11) a memory;
상기 메모리의 카피 단위인 제1의 기억 영역을 복수 통합한 제2의 기억 영역부터 상기 메모리의 다른 기억 영역에 카피 동작이 실행되고 있는 경우에 있어서, 상기 제2의 기억 영역에 대한 액세스가 발행된 때에 상기 제1의 기억 영역을 단위로 하여 상기 액세스를 제어하는 메모리 제어 장치를 구비하는 메모리 모듈.When a copy operation is performed from a second storage area in which a plurality of first storage areas that are copy units of the memory are integrated to another storage area of the memory, access to the second storage area is issued and a memory control device configured to control the access by using the first storage area as a unit at a time.
(12) 상기 메모리는, 불휘발 메모리인 상기 (11)에 기재된 메모리 모듈.(12) The memory module according to (11), wherein the memory is a nonvolatile memory.
(13) 호스트 컴퓨터와,(13) a host computer;
메모리와,memory and
상기 메모리의 카피 단위인 제1의 기억 영역을 복수 통합한 제2의 기억 영역부터 상기 메모리의 다른 기억 영역에 카피 동작이 실행되고 있는 경우에 있어서, 상기 호스트 컴퓨터로부터 상기 제2의 기억 영역에 대한 액세스가 발행된 때에 상기 제1의 기억 영역을 단위로 하여 상기 액세스를 제어하는 메모리 제어 장치를 구비하는 정보 처리 시스템.When a copy operation is performed from a second storage area in which a plurality of first storage areas that are a copy unit of the memory are integrated to another storage area of the memory, the host computer and a memory control device configured to control the access in units of the first storage area when an access is issued.
100: 호스트 컴퓨터
200: 메모리 컨트롤러
201: 호스트 인터페이스
203: 메모리 인터페이스
210: 카피 제어부
220: 액세스 분할부
230: 논리 어드레스 충돌 판정부
240: 논리 어드레스 치환부
250: 라이트 요구 버퍼
260: 어드레스 변환부
300: 메모리
400: 메모리 모듈100: host computer
200: memory controller
201: host interface
203: memory interface
210: copy control unit
220: access partition
230: logical address collision determination unit
240: logical address replacement unit
250: light request buffer
260: address conversion unit
300: memory
400: memory module
Claims (13)
상기 카피 동작과 상기 액세스와의 어드레스 충돌을 상기 카피 단위로 판정하는 어드레스 충돌 판정부와,
상기 액세스의 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에 카피 완료인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 액세스의 대상이 되는 영역의 어드레스를 카피 처의 어드레스로 치환하여 상기 액세스를 속행시키는 어드레스 치환부를 구비하는 것을 특징으로 하는 메모리 제어 장치.According to claim 1,
an address conflict determination unit that determines an address conflict between the copy operation and the access in units of the copy;
When it is determined by the address collision determination that the copy unit area to be accessed has been copied to the other storage area, the address of the area to be accessed is replaced with the copy destination address, and A memory control device comprising an address replacement unit for continuing access.
상기 어드레스 치환부는, 상기 액세스가 리드 액세스이고 그 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에 카피 중인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 치환을 행하지 않고 상기 액세스를 속행시키는 것을 특징으로 하는 메모리 제어 장치.3. The method of claim 2,
The address replacement unit continues the access without performing the replacement when it is determined by the address conflict determination that the access is a read access and a determination that the target copy unit area is being copied to the other storage area Memory control device, characterized in that.
상기 어드레스 치환부는, 상기 액세스가 라이트 액세스이고 그 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에 카피 중인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 카피 단위의 영역이 카피 완료가 될 때까지 상기 라이트 액세스를 대기시키는 것을 특징으로 하는 메모리 제어 장치.3. The method of claim 2,
The address replacement unit is configured to enable the copy unit area to be copied when it is determined in the address conflict determination that the access is a write access and the target area of the copy unit is being copied to the other storage area. and waiting the write access until the memory control device.
상기 라이트 액세스가 대기되어 있는 사이에 그 라이트 액세스 요구를 유지하는 라이트 요구 버퍼를 더 구비하는 것을 특징으로 하는 메모리 제어 장치.5. The method of claim 4,
and a write request buffer for holding the write access request while the write access is waiting.
상기 어드레스 치환부는, 상기 액세스의 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에의 카피 전인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 치환을 행하지 않고 상기 액세스를 속행시키는 것을 특징으로 하는 메모리 제어 장치.3. The method of claim 2,
wherein the address replacement unit continues the access without performing the replacement, when it is determined in the address collision determination that the copy unit area to be accessed is before copying to the other storage area memory control unit.
상기 어드레스 치환부는, 상기 액세스의 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역과는 충돌하지 않는 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 치환을 행하지 않고 상기 액세스를 속행시키는 것을 특징으로 하는 메모리 제어 장치.3. The method of claim 2,
wherein the address replacement unit continues the access without performing the replacement when it is determined in the address collision determination that the copy unit area to be accessed does not collide with the other storage area memory control device.
상기 제2의 기억 영역을 단위로 하여 상기 액세스의 대상 어드레스에 관해 논리 어드레스로부터 상기 메모리의 물리 어드레스로 변환하는 어드레스 변환부를 구비하고,
상기 어드레스 변환부는, 상기 카피 동작이 행해진 후에는 카피 후의 물리 어드레스를 나타내도록 갱신되는 것을 특징으로 하는 메모리 제어 장치.3. The method of claim 2,
an address conversion unit for converting the target address to be accessed from a logical address to a physical address of the memory using the second storage area as a unit;
and the address conversion unit is updated to indicate a physical address after copying after the copy operation is performed.
상기 다른 기억 영역은, 상기 카피 동작이 행해지기 전에는 액세스 불가능한 논리 어드레스 공간의 영역이고, 상기 카피 동작이 행해진 후에는 상기 어드레스 변환부에서 액세스 가능한 논리 어드레스 공간의 영역에 갱신되는 것을 특징으로 하는 메모리 제어 장치.9. The method of claim 8,
and the other storage area is an area in a logical address space that is inaccessible before the copy operation is performed, and is updated to an area in a logical address space accessible by the address conversion unit after the copy operation is performed. Device.
상기 제2의 기억 영역에 대한 액세스가 상기 카피 단위보다도 큰 영역에 관한 액세스인 경우에는 각각이 상기 카피 단위를 초과하지 않는 영역으로 분할하여 상기 어드레스 충돌 판정부에 공급하는 액세스 분할부를 더 구비하는 것을 특징으로 하는 메모리 제어 장치.3. The method of claim 2,
and an access dividing unit that divides each of the regions into regions not exceeding the copy unit and supplies them to the address conflict determination unit when the access to the second storage region is an access to an area larger than the copy unit; Memory control device, characterized in that.
상기 메모리의 카피 단위인 제1의 기억 영역을 복수 통합한 제2의 기억 영역부터 상기 메모리의 다른 기억 영역에 카피 동작이 실행되고 있는 경우에 있어서, 상기 제2의 기억 영역에 대한 액세스가 발행된 때에 상기 제1의 기억 영역을 단위로 하여 상기 액세스를 제어하는 메모리 제어 장치를 구비하는 것을 특징으로 하는 메모리 모듈.memory and
When a copy operation is performed from a second storage area in which a plurality of first storage areas that are copy units of the memory are integrated to another storage area of the memory, access to the second storage area is issued and a memory control device configured to control the access by using the first storage area as a unit at a time.
상기 메모리는, 불휘발 메모리인 것을 특징으로 하는 메모리 모듈.12. The method of claim 11,
The memory is a memory module, characterized in that the non-volatile memory.
메모리와,
상기 메모리의 카피 단위인 제1의 기억 영역을 복수 통합한 제2의 기억 영역부터 상기 메모리의 다른 기억 영역에 카피 동작이 실행되고 있는 경우에 있어서, 상기 호스트 컴퓨터로부터 상기 제2의 기억 영역에 대한 액세스가 발행된 때에 상기 제1의 기억 영역을 단위로 하여 상기 액세스를 제어하는 메모리 제어 장치를 구비하는 것을 특징으로 하는 정보 처리 시스템.host computer;
memory and
When a copy operation is performed from a second storage area in which a plurality of first storage areas that are a copy unit of the memory are integrated to another storage area of the memory, the host computer and a memory control device for controlling the access in units of the first storage area when an access is issued.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019015647 | 2019-01-31 | ||
JPJP-P-2019-015647 | 2019-01-31 | ||
PCT/JP2019/040553 WO2020158059A1 (en) | 2019-01-31 | 2019-10-16 | Memory control device, memory module, and information processing system |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210118086A true KR20210118086A (en) | 2021-09-29 |
Family
ID=71839952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217023149A KR20210118086A (en) | 2019-01-31 | 2019-10-16 | Memory control unit, memory module and information processing system |
Country Status (3)
Country | Link |
---|---|
JP (1) | JPWO2020158059A1 (en) |
KR (1) | KR20210118086A (en) |
WO (1) | WO2020158059A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017174387A (en) | 2016-03-17 | 2017-09-28 | パナソニックIpマネジメント株式会社 | Remote controller, nonvolatile storage device, nonvolatile storage system, and memory control method |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008225608A (en) * | 2007-03-09 | 2008-09-25 | Seiko Epson Corp | Memory controller for controlling memory, memory module, and memory control method |
JP7063900B2 (en) * | 2017-07-18 | 2022-05-09 | ソニーセミコンダクタソリューションズ株式会社 | Memory controller that performs wear leveling processing |
-
2019
- 2019-10-16 WO PCT/JP2019/040553 patent/WO2020158059A1/en active Application Filing
- 2019-10-16 JP JP2020569368A patent/JPWO2020158059A1/en not_active Abandoned
- 2019-10-16 KR KR1020217023149A patent/KR20210118086A/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017174387A (en) | 2016-03-17 | 2017-09-28 | パナソニックIpマネジメント株式会社 | Remote controller, nonvolatile storage device, nonvolatile storage system, and memory control method |
Also Published As
Publication number | Publication date |
---|---|
JPWO2020158059A1 (en) | 2021-12-02 |
WO2020158059A1 (en) | 2020-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
TWI385519B (en) | Data writing method, and flash storage system and controller using the same | |
JP5612514B2 (en) | Nonvolatile memory controller and nonvolatile storage device | |
US11354236B2 (en) | Garbage collection method for data storage device | |
US11630766B2 (en) | Memory system and operating method thereof | |
JP2008016003A (en) | Memory storage device and its method for reading and writing data | |
US9122586B2 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
JP2006216036A (en) | Data storage device including flash memory and its merging method | |
US20120179859A1 (en) | Nonvolatile memory apparatus performing ftl function and method for controlling the same | |
US8380920B2 (en) | Flash storage device and data access method of flash memory | |
KR20210118086A (en) | Memory control unit, memory module and information processing system | |
JP2005115562A (en) | Flash rom controller | |
US8180951B2 (en) | Memory system and method of controlling the memory system | |
US9830077B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US11461225B2 (en) | Storage device, control method of storage device, and storage medium | |
US8341378B2 (en) | Data storage device and data access method | |
WO2016056290A1 (en) | Memory controller, memory system, storage device, information processing system, and storage control method | |
CN111045961B (en) | Data processing method and memory controller using the same | |
JP4697146B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
US8429366B2 (en) | Device and method for memory control and storage device | |
JP2006277736A (en) | Writing method of nonvolatile storage device | |
JP4985108B2 (en) | Data storage device and control method thereof | |
JP2006040170A (en) | Memory controller, flash memory system and flash memory control method | |
JP2008299513A (en) | Data storage device, and method for controlling the same | |
WO2015198528A1 (en) | Memory system, memory peripheral circuit, and memory control method |