KR20210118086A - Memory control unit, memory module and information processing system - Google Patents

Memory control unit, memory module and information processing system Download PDF

Info

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
Application number
KR1020217023149A
Other languages
Korean (ko)
Inventor
켄 이시이
켄이치 나카니시
히데아키 오쿠보
Original Assignee
소니 세미컨덕터 솔루션즈 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 세미컨덕터 솔루션즈 가부시키가이샤 filed Critical 소니 세미컨덕터 솔루션즈 가부시키가이샤
Publication of KR20210118086A publication Critical patent/KR20210118086A/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, 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

메모리 제어 장치, 메모리 모듈 및 정보 처리 시스템Memory control unit, memory module and information processing system

본 기술은, 메모리 제어 장치에 관한 것이다. 상세하게는, 메모리에 대한 액세스를 제어하는 메모리 제어 장치, 메모리 모듈 및 정보 처리 시스템에 관한 것이다.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 Patent Document 1.).

특허 문헌 1: 특개2017-174387호 공보Patent Document 1: Japanese Patent Laid-Open No. 2017-174387

상술한 종래 기술에서는, 일시적으로 준비한 영역에 데이터를 기록함에 의해, 레이턴시의 단축화를 도모하고 있다. 그렇지만, 이 종래 기술에서는, 카피 완료 후, 카피한 영역 및 일시 영역에 유효한 데이터가 혼재하기 때문에, 그 후에 데이터를 머지하는 처리가 또한 필요해진다.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 memory controller 200 according to the first embodiment of the present technology.
Fig. 3 is a diagram showing a corresponding example of the address space of the memory 300 in the embodiment of the present technology.
Fig. 4 is a diagram showing an example of the state of the table of the address conversion unit 260 in the embodiment of the present technology.
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 address conversion unit 260 after data copy in the embodiment of the present technology;
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 memory controller 200 in the embodiment of the present technology;
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 cases #1 and #4 in the embodiment of the present technology;
Fig. 11 is a diagram showing an operation example in the case of Case #2 in the embodiment of the present technology;
Fig. 12 is a diagram showing an operation example in the case of cases #3 and #6 in the embodiment of the present technology;
Fig. 13 is a diagram showing an operation example in case #5 in the embodiment of the present technology;
Fig. 14 is a diagram showing an operation example in the case of Case #7 in the embodiment of the present technology;
Fig. 15 is a flowchart showing an example of a processing procedure related to address collision determination of the memory controller 200 in the embodiment of the present technology;
Fig. 16 is a diagram showing one configuration example of a memory controller 200 according to the second embodiment of the present technology.

이하, 본 기술을 실시하기 위한 형태(이하, 실시의 형태라고 칭한다)에 관해 설명한다. 설명은 이하의 순서에 의해 행한다.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 host computer 100 , a memory controller 200 , and a memory 300 . The memory controller 200 and the memory 300 constitute the memory module 400 .

호스트 컴퓨터(100)는, 메모리(300)에 대해 데이터의 리드 처리 및 라이트 처리 등을 지령하는 커맨드를 발행하는 것이다. 이 호스트 컴퓨터(100)는, 호스트 컴퓨터(100)로서의 처리를 실행하는 프로세서와, 메모리 컨트롤러(200)와 사이의 주고받음을 행하기 위한 컨트롤러 인터페이스를 구비한다.The host computer 100 issues commands for instructing the memory 300 to read data, write data, and the like. The host computer 100 includes a processor that executes processing as the host computer 100 and a controller interface for communicating with the memory controller 200 .

메모리 컨트롤러(200)는, 호스트 컴퓨터(100)로부터의 커맨드에 따라, 메모리(300)에 대한 리퀘스트 제어를 행하는 것이다. 또한, 메모리 컨트롤러(200)는, 특허청구의 범위에 기재된 메모리 제어 장치의 한 예이다.The memory controller 200 performs request control for the memory 300 according to a command from the host computer 100 . Also, the memory controller 200 is an example of the memory control device described in the claims.

메모리(300)는, 제어부 및 메모리 셀 어레이를 구비한다. 이 메모리(300)의 제어부는, 메모리 컨트롤러(200)로부터의 리퀘스트에 따라 메모리 셀에의 액세스를 행한다. 메모리(300)의 메모리 셀 어레이는, 복수의 메모리 셀로 이루어지는 메모리 셀 어레이이고, 비트마다 2값의 어느 하나의 값을 기억하는 메모리 셀, 또는, 복수 비트마다 다가의 어느 하나의 값을 기억하는 메모리 셀이 2차원 형상(狀)(매트릭스 형상(狀))으로 다수 배열되어 있다. 이 메모리 셀 어레이는, 복수 바이트 사이즈(예를 들면, 512B)를 갖는 페이지를 판독 또는 기록하는 액세스 단위로 하여, 소거하는 일 없이 데이터의 재기록이 가능한 불휘발 메모리(NVM: Non-Volatile Memory)를 상정한다.The memory 300 includes a control unit and a memory cell array. The control unit of the memory 300 performs access to the memory cell according to a request from the memory controller 200 . The memory cell array of the memory 300 is a memory cell array composed of a plurality of memory cells, and a memory cell that stores any one of two values for each bit, or a memory that stores a multivalent value for each bit. A large number of cells are arranged in a two-dimensional shape (matrix shape). This memory cell array uses a non-volatile memory (NVM) in which data can be rewritten without erasing as an access unit for reading or writing pages having a multi-byte size (eg, 512B). assume

[메모리 컨트롤러의 구성][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 memory controller 200 according to the first embodiment of the present technology. The memory controller 200 includes a copy control unit 210 , a logical address collision determination unit 230 , a logical address replacement unit 240 , a write request buffer 250 , an address conversion unit 260 , RAM 270 is provided. In addition, the memory controller 200 includes a host interface 201 for communicating with the host computer 100 and a memory interface 203 for communicating with the memory 300 . be prepared

카피 제어부(210)는, 웨어 레벨링 등을 위한 영역간의 카피 및 삭제를 제어하는 것이다. 이 카피 제어부(210)는, 호스트 컴퓨터(100)로부터의 커맨드에 의한 처리와는 별도로, 백그라운드로 리드 및 라이트의 액세스를 제어한다. 이 카피 제어부(210)로부터의 액세스는, 호스트 컴퓨터(100)로부터의 액세스와 마찬가지로, 논리 어드레스에 의해 지시된다.The copy control unit 210 controls copying and deletion between regions for wear leveling and the like. This copy control unit 210 controls read and write access in the background independently of processing by commands from the host computer 100 . The access from the copy control unit 210 is indicated by a logical address, similarly to the access from the host computer 100 .

카피 제어부(210)에 의한 카피 동작은, 메모리(300)의 블록을 단위로 하여 지시된다. 블록은 복수의 페이지로 구성된다. 카피 동작할 때에는, 1페이지씩이 카피 단위로서 처리된다. 따라서 카피 대상으로 되어 있는 블록에서, 카피 완료의 페이지, 카피 중의 페이지, 및, 카피 전(前)의 페이지의 3종류의 상태가 존재할 수 있다. 또한, 페이지는, 특허청구의 범위에 기재된 제1의 기억 영역의 한 예이다. 또한, 블록은, 특허청구의 범위에 기재된 제2의 기억 영역의 한 예이다.The copy operation by the copy control unit 210 is instructed for each block of the memory 300 as a unit. A block is composed of a plurality of pages. In the copy operation, one page at a time is processed as a copy unit. Accordingly, in a block to be copied, three types of states can exist: a copy-completed page, a copy-in-progress page, and a copy-previous page. Note that a page is an example of the first storage area described in the claims. Note that a block is an example of the second storage area described in the claims.

논리 어드레스 충돌 판정부(230)는, 카피 제어부(210)에 의한 카피 동작의 대상으로 되어 있는 영역의 논리 어드레스 공간과, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스와의 충돌을 판정하는 것이다. 이 논리 어드레스 충돌 판정부(230)는, 양자의 논리 어드레스 및 호스트 컴퓨터(100)로부터 발행되는 커맨드의 종류(리드 또는 라이트)에 의거하여, 충돌의 유무, 및, 충돌이 생기고 있는 경우에는 페이지의 상태(상술한 3종류의 어느 하나)가 판정된다. 이 판정 결과는, 논리 어드레스 치환부(240)에 공급된다. 또한, 논리 어드레스 충돌 판정부(230)는, 특허청구의 범위에 기재된 어드레스 충돌 판정부의 한 예이다.The logical address collision determination unit 230 determines a collision between the logical address space of the area targeted for the copy operation by the copy control unit 210 and the logical address specified by the command issued from the host computer 100 . will do The logical address conflict determination unit 230 determines whether or not a conflict exists, and, if a conflict occurs, the page The state (one of the three types described above) is determined. The result of this determination is supplied to the logical address replacement unit 240 . In addition, the logical address collision determination unit 230 is an example of the address collision determination unit described in the claims.

논리 어드레스 치환부(240)는, 논리 어드레스 충돌 판정부(230)에 의한 판정 결과에 응하여, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를 다른 논리 어드레스로 치환하는 것이다. 이 어드레스 치환의 구체적인 내용에 관해서는 후술한다. 또한, 논리 어드레스 치환부(240)는, 특허청구의 범위에 기재된 어드레스 치환부의 한 예이다.The logical address replacement unit 240 replaces the logical address specified by the command issued from the host computer 100 with another logical address in response to the determination result by the logical address collision determination unit 230 . The specific content of this address substitution will be described later. Note that the logical address replacement unit 240 is an example of the address replacement unit described in the claims.

라이트 요구 버퍼(250)는, 카피 중의 페이지에 대해, 호스트 컴퓨터(100)로부터 라이트 요구가 발행되는 때에, 그 라이트 요구를 대기시키기 위해 그 내용을 유지하는 버퍼이다. 논리 어드레스 충돌 판정부(230)에 의한 판정 결과에 있어서, 카피 중의 페이지에 대한 라이트 요구라고 판정되면, 논리 어드레스 치환부(240)는 라이트 요구 버퍼(250)에 대해 그 라이트 요구를 출력한다.The write request buffer 250 is a buffer that holds the contents in order to wait for the write request when a write request is issued from the host computer 100 for a page being copied. If it is determined as a result of the determination by the logical address collision determination unit 230 that it is a write request for the page being copied, the logical address replacement unit 240 outputs the write request to the write request buffer 250 .

어드레스 변환부(260)는, 논리 어드레스 치환부(240)로부터 출력된 논리 어드레스를, 메모리(300)의 물리 어드레스로 변환하는 것이다. 이 어드레스 변환부(260)는, 예를 들면, 논리 어드레스와 물리 어드레스를 관련짓는 테이블을 유지하고, 그 테이블을 참조함에 의해 논리 어드레스로부터 물리 어드레스로의 변환을 행한다.The address conversion unit 260 converts the logical address output from the logical address replacement unit 240 into a physical address of the memory 300 . The address conversion unit 260 maintains, for example, a table associating logical addresses and physical addresses, and performs conversion from logical addresses to physical addresses by referring to the table.

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 memory controller 200 . The RAM 270 is used as a buffer area for temporarily storing data read from the memory 300 during a copy operation for wear leveling.

[메모리의 어드레스 공간][Address space in memory]

도 3은, 본 기술의 실시의 형태에서의 메모리(300)의 어드레스 공간의 대응례를 도시하는 도면이다.FIG. 3 is a diagram showing a corresponding example of the address space of the memory 300 in the embodiment of the present technology.

호스트 컴퓨터(100)로부터 발행되는 커맨드나, 카피 제어부(210)에 의한 카피 동작의 제어는, 논리 어드레스에 의해 지시된다. 논리 어드레스 공간은, 메모리(300)의 물리 어드레스 공간에 매핑되어 있다. 메모리(300)에 대해 액세스가 행해질 때에는, 어드레스 변환부(260)가 그 논리 어드레스를, 블록 단위로 메모리(300)의 물리 어드레스로 변환한다.A command issued from the host computer 100 and control of a copy operation by the copy control unit 210 is indicated by a logical address. The logical address space is mapped to the physical address space of the memory 300 . When the memory 300 is accessed, the address conversion unit 260 converts the logical address into a physical address of the memory 300 in block units.

여기서는, 오버 프로비저닝을 상정한다. 즉, 물리 어드레스 공간은, 호스트 컴퓨터(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 host computer 100 . Therefore, a part of the physical address space is mapped as a logical address space inaccessible from the host computer 100 . In this example, an area of an address lower than page #1000 in the logical address space is mapped as a "logical address space accessible from the host computer 100" (hereinafter referred to as an "accessible space"). On the other hand, the address area after page #1000 in the logical address space is mapped as a "logical address space that cannot be accessed from the host computer 100" (hereinafter referred to as an "inaccessible space").

도 4는, 본 기술의 실시의 형태에서의 어드레스 변환부(260)의 테이블의 상태례를 도시하는 도면이다.4 is a diagram showing an example of the state of the table of the address conversion unit 260 in the embodiment of the present technology.

이 예에서는, 논리 어드레스 공간에서의 논리 블록 어드레스 #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 block address #100 is mapped as an inaccessible space.

[데이터 카피][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 logical block #0 is read into RAM 270, and the read data is copied into logical block #100. That is, the contents of each page of physical block #0 are copied to physical block #200.

이 데이터 카피가 완료된 후, 액세스 불가능 공간에 카피된 블록이, 액세스 불가능 공간부터 액세스 가능 공간이 되도록, 어드레스 변환부(260)의 테이블이 갱신된다. 그 상태례를 나타내는 것이 다음 도면이다.After this data copying is completed, the table of the address conversion unit 260 is updated so that blocks copied to the inaccessible space become accessible from the inaccessible space. The following figure shows an example of the state.

도 6은, 본 기술의 실시의 형태에서의 데이터 카피 후의 어드레스 변환부(260)의 테이블의 상태례를 도시하는 도면이다.6 is a diagram showing an example of the state of the table of the address conversion unit 260 after data copy in the embodiment of the present technology.

이 예에서는, 액세스 가능 공간의 논리 블록 어드레스 #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 host computer 100 . Thereby, in an intermediate state from the start of the copy to the completion of the copy, it is not directly visible from the host computer 100 , and the control therebetween can be managed by the memory controller 200 .

도 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 copy control unit 210 is instructed for each block of the memory 300 as a unit. In this block copying, page-by-page copying (page copying) is performed a plurality of times. In the copy source block and the copy destination block, each page is copied sequentially from the beginning according to the copy offset indicating the copy position. Each time one page is copied, the copy offset is incremented.

카피 오프셋이 나타내는 페이지가 카피 중이고, 카피 오프셋이 나타내는 페이지보다 이전이 카피 완료이고, 카피 오프셋이 가리키는 페이지보다 이후가 카피 전인 것이 된다.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 memory controller 200 in the embodiment of the present technology.

먼저, 카피 오프셋이 「0」으로 클리어된다(스텝 S911). 그리고, 카피 원의 카피 오프셋이 나타내는 페이지로부터 RAM(270)에 데이터가 판독된다(스텝 S912). 이 RAM(270)에 판독된 데이터는, 카피 처의 카피 오프셋이 나타내는 페이지에 기록된다(스텝 S913).First, the copy offset is cleared to "0" (step S911). Then, data is read into the RAM 270 from the page indicated by the copy offset of the copy source (step S912). The data read into this RAM 270 is written to the page indicated by the copy offset of the copy destination (step S913).

블록 내의 모든 페이지에 대해 카피가 완료되지 않으면(스텝 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 conversion unit 260 is updated (step S916), and the copy destination area is set as an accessible space.

[어드레스 충돌][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 conflict determination unit 230 determines a state in which access of a command from the host computer 100 collides with a logical address space being copied. Hereinafter, according to the same drawing, cases are classified into seven cases and described.

케이스 #1 내지 3은, 호스트 컴퓨터(100)로부터의 리드 커맨드에 의해 지정된 논리 어드레스와 카피 동작의 대상으로 되어 있는 영역의 논리 어드레스 공간이 충돌하고 있는 경우이다. 케이스 #4 내지 6은, 호스트 컴퓨터(100)로부터의 라이트 커맨드에 의해 지정된 논리 어드레스와 카피 동작의 대상으로 되어 있는 영역의 논리 어드레스 공간이 충돌하고 있는 경우이다. 케이스 #7은, 호스트 컴퓨터(100)로부터의 커맨드에 의해 지정된 논리 어드레스와 카피 동작의 대상으로 되어 있는 영역의 논리 어드레스 공간이 충돌하지 않는 경우이다.Cases #1 to 3 are cases in which the logical address specified by the read command from the host computer 100 and the logical address space of the area targeted for the copy operation collide. Cases #4 to 6 are cases in which the logical address specified by the write command from the host computer 100 and the logical address space of the area subject to the copy operation collide. Case #7 is a case where the logical address specified by the command from the host computer 100 does not collide with the logical address space of the area to be copied.

도 10은, 본 기술의 실시의 형태에서의 케이스 #1 및 #4인 경우의 동작례를 도시하는 도면이다.Fig. 10 is a diagram showing an operation example in the case of cases #1 and #4 in the embodiment of the present technology.

케이스 #1은, 호스트 컴퓨터(100)로부터 리드 어드레스로서 지정된 논리 어드레스가 카피 완료의 페이지였던 경우이다. 또한, 케이스 #4는, 호스트 컴퓨터(100)로부터 라이트 어드레스로서 지정된 논리 어드레스가 카피 완료의 페이지였던 경우이다. 즉, 이들 케이스 #1 및 #4인 경우에는, 호스트 컴퓨터(100)로부터 액세스하려고 하는 페이지가 이미 카피 완료이다. 따라서 카피 처의 페이지에 액세스하면, 호스트 컴퓨터(100)로부터의 커맨드를 처리할 수 있게 된다.Case #1 is a case where the logical address designated as the read address from the host computer 100 is a copy-completed page. Incidentally, case #4 is a case in which the logical address designated as the write address from the host computer 100 is a copied page. That is, in these cases #1 and #4, the page to be accessed from the host computer 100 has already been copied. Accordingly, when the copy destination page is accessed, the command from the host computer 100 can be processed.

그때문에, 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를, 카피 처의 논리 어드레스로 치환한다. 이 치환된 논리 어드레스가, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다.Therefore, the logical address replacement unit 240 replaces the logical address specified by the command issued from the host computer 100 with the logical address of the copy destination. The substituted logical address is converted into a physical address by the address conversion unit 260 .

도 11은, 본 기술의 실시의 형태에서의 케이스 #2인 경우의 동작례를 도시하는 도면이다.11 is a diagram showing an operation example in the case of Case #2 in the embodiment of the present technology.

케이스 #2는, 호스트 컴퓨터(100)로부터 리드 어드레스로서 지정된 논리 어드레스가 카피 중의 페이지였던 경우이다. 이 경우, 카피 원의 페이지로부터 데이터를 리드하면, 호스트 컴퓨터(100)로부터의 리드 커맨드를 처리할 수 있게 된다.Case #2 is a case where the logical address designated as the read address from the host computer 100 is a page being copied. In this case, when data is read from the copy source page, the read command from the host computer 100 can be processed.

그때문에, 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를, 치환하지 않고 그대로 어드레스 변환부(260)에 출력한다. 이 치환되지 않은 논리 어드레스가, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다.Therefore, the logical address replacement unit 240 outputs the logical address specified by the command issued from the host computer 100 to the address conversion unit 260 as it is without replacement. This unsubstituted logical address is converted into a physical address by the address conversion unit 260 .

도 12는, 본 기술의 실시의 형태에서의 케이스 #3 및 #6인 경우의 동작례를 도시하는 도면이다.12 is a diagram showing an operation example in the case of cases #3 and #6 in the embodiment of the present technology.

케이스 #3은, 호스트 컴퓨터(100)로부터 리드 어드레스로서 지정된 논리 어드레스가 카피 전의 페이지였던 경우이다. 또한, 케이스 #6은, 호스트 컴퓨터(100)로부터 라이트 어드레스로서 지정된 논리 어드레스가 카피 전의 페이지였던 경우이다. 즉, 이들 케이스 #3 및 #6인 경우에는, 호스트 컴퓨터(100)로부터 액세스하려고 하는 페이지는 아직도 카피 전이다. 따라서 카피 원의 페이지에 액세스하면, 호스트 컴퓨터(100)로부터의 커맨드를 처리할 수 있게 된다.Case #3 is a case where the logical address designated as the read address from the host computer 100 is a page before copying. Incidentally, case #6 is a case where the logical address designated as the write address from the host computer 100 is a page before copying. That is, in these cases #3 and #6, the page to be accessed from the host computer 100 is still before copying. Accordingly, when the page of the copy origin is accessed, the command from the host computer 100 can be processed.

그때문에, 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행된 커맨드에 의해 지정된 논리 어드레스를, 치환하지 않고 그대로 어드레스 변환부(260)에 출력한다. 이 치환되지 않은 논리 어드레스가, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다.Therefore, the logical address replacement unit 240 outputs the logical address specified by the command issued from the host computer 100 to the address conversion unit 260 as it is without replacement. This unsubstituted logical address is converted into a physical address by the address conversion unit 260 .

도 13은, 본 기술의 실시의 형태에서의 케이스 #5인 경우의 동작례를 도시하는 도면이다.13 is a diagram showing an operation example in the case of Case #5 in the embodiment of the present technology.

케이스 #5는, 호스트 컴퓨터(100)로부터 라이트 어드레스로서 지정된 논리 어드레스가 카피 중의 페이지였던 경우이다. 이 경우, 카피 중의 페이지에 대한 기록은, 데이터를 파괴해 버리기 때문에, 행할 수가 없다.Case #5 is a case where the logical address designated as the write address from the host computer 100 is a page being copied. In this case, writing to the page being copied cannot be performed because the data is destroyed.

그때문에, 그 라이트 요구를 대기시키기 위해, 논리 어드레스 치환부(240)는 라이트 요구 버퍼(250)에 그 내용을 유지시킨다. 따라서 그 페이지가 카피 완료의 상태가 될 때까지, 그 라이트 요구는 일시 정지가 된다. 그 페이지의 카피가 완료되면, 케이스 #4의 상태가 되고, 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를 카피 처의 논리 어드레스로 치환하여, 어드레스 변환부(260)에 출력한다.Therefore, in order to wait for the write request, the logical address replacement unit 240 holds the contents in the write request buffer 250 . Therefore, the write request is temporarily suspended until the page is in the copy completion state. When the copy of the page is completed, the state of case #4 is entered, and the logical address replacement unit 240 replaces the logical address specified by the command issued from the host computer 100 with the logical address of the copy destination, output to the converter 260 .

도 14는, 본 기술의 실시의 형태에서의 케이스 #7인 경우의 동작례를 도시하는 도면이다.14 is a diagram showing an operation example in the case of Case #7 in the embodiment of the present technology.

케이스 #7은, 호스트 컴퓨터(100)로부터의 커맨드에 의해 지정된 논리 어드레스와 카피 동작의 대상으로 되어 있는 영역의 논리 어드레스 공간이 충돌하지 않는 경우이다. 따라서 호스트 컴퓨터(100)로부터의 커맨드가 리드 또는 라이트의 어느 쪽이라도, 치환을 행할 필요는 없다.Case #7 is a case where the logical address specified by the command from the host computer 100 does not collide with the logical address space of the area to be copied. Therefore, it is not necessary to perform substitution of the command from the host computer 100 for either read or write.

그때문에, 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를, 치환하지 않고 그대로 어드레스 변환부(260)에 출력한다. 이 치환되지 않은 논리 어드레스가, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다.Therefore, the logical address replacement unit 240 outputs the logical address specified by the command issued from the host computer 100 to the address conversion unit 260 as it is without replacement. This unsubstituted logical address is converted into a physical address by the address conversion unit 260 .

도 15는, 본 기술의 실시의 형태에서의 메모리 컨트롤러(200)의 어드레스 충돌 판정에 관한 처리 순서례를 도시하는 흐름도이다.15 is a flowchart showing an example of a processing procedure related to address collision determination of the memory controller 200 according to the embodiment of the present technology.

호스트 컴퓨터(100)로부터 메모리(300)에 액세스하는 커맨드가 발행되면, 논리 어드레스 충돌 판정부(230)는, 카피 동작중 영역의 논리 어드레스 공간과, 호스트 컴퓨터(100)로부터 지정된 논리 어드레스와의 충돌을 판정한다(스텝 S921). 그리고, 그 판정 결과에 응하여, 이하와 같이 각 처리가 행해진다.When a command to access the memory 300 is issued from the host computer 100 , the logical address collision determination unit 230 generates a collision between the logical address space of the copy operation area and the logical address specified by the host computer 100 . is determined (step S921). And in response to the determination result, each process is performed as follows.

호스트 컴퓨터(100)로부터의 커맨드에 의해 지정된 논리 어드레스와 카피 동작의 대상으로 되어 있는 영역의 논리 어드레스 공간이 충돌하지 않는 경우는(스텝 S931: No), 케이스 #7에 해당한다. 따라서 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를, 치환하지 않고 그대로 어드레스 변환부(260)에 출력한다(스텝 S935). 이 치환되지 않은 논리 어드레스는, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다(스텝 S939).Case #7 corresponds to the case where the logical address specified by the command from the host computer 100 does not collide with the logical address space of the area to be copied (step S931: No). Accordingly, the logical address replacement unit 240 outputs the logical address specified by the command issued from the host computer 100 to the address conversion unit 260 as it is without replacement (step S935). This unsubstituted logical address is converted into a physical address by the address conversion unit 260 (step S939).

호스트 컴퓨터(100)로부터 액세스하려고 하는 페이지가 카피 완료였던 경우는(스텝 S932: Yes), 케이스 #1 및 #4에 해당한다. 따라서 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를, 카피 처의 논리 어드레스로 치환한다(스텝 S936). 이 치환된 논리 어드레스는, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다(스텝 S939).Cases #1 and #4 correspond to the case where the page to be accessed from the host computer 100 has been copied (step S932: Yes). Accordingly, the logical address replacement unit 240 replaces the logical address specified by the command issued from the host computer 100 with the logical address of the copy destination (step S936). This substituted logical address is converted into a physical address by the address conversion unit 260 (step S939).

호스트 컴퓨터(100)로부터 액세스하려고 하는 페이지가 카피 전이였던 경우는(스텝 S933: Yes), 케이스 #3 및 #6에 해당한다. 따라서 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를, 치환하지 않고 그대로 어드레스 변환부(260)에 출력한다(스텝 S935). 이 치환되지 않은 논리 어드레스는, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다(스텝 S939).Cases #3 and #6 correspond to the case where the page to be accessed from the host computer 100 has been copied (step S933: Yes). Accordingly, the logical address replacement unit 240 outputs the logical address specified by the command issued from the host computer 100 to the address conversion unit 260 as it is without replacement (step S935). This unsubstituted logical address is converted into a physical address by the address conversion unit 260 (step S939).

호스트 컴퓨터(100)로부터 액세스하려고 하는 페이지가 카피 전이 아니라고 판정된 경우는(스텝 S933: No), 그 페이지는 카피 중인 것이 된다. 이때, 호스트 컴퓨터(100)로부터의 액세스가 리드 액세스라면(스텝 S934: Yes), 케이스 #2에 해당한다. 따라서 논리 어드레스 치환부(240)는, 호스트 컴퓨터(100)로부터 발행되는 커맨드에 의해 지정된 논리 어드레스를, 치환하지 않고 그대로 어드레스 변환부(260)에 출력한다(스텝 S935). 이 치환되지 않은 논리 어드레스는, 어드레스 변환부(260)에 의해 물리 어드레스로 변환된다(스텝 S939).If the host computer 100 determines that the page to be accessed is not before copying (step S933: No), the page is being copied. At this time, if the access from the host computer 100 is read access (step S934: Yes), case #2 is applicable. Accordingly, the logical address replacement unit 240 outputs the logical address specified by the command issued from the host computer 100 to the address conversion unit 260 as it is without replacement (step S935). This unsubstituted logical address is converted into a physical address by the address conversion unit 260 (step S939).

호스트 컴퓨터(100)로부터 액세스하려고 하는 페이지가 카피 중이고(스텝 S933: No), 그 액세스가 리드 액세스가 아니면(스텝 S934: No), 케이스 #5에 해당한다. 따라서 논리 어드레스 치환부(240)는, 라이트 요구 버퍼(250)에 그 내용을 유지시키고, 그 페이지가 카피 완료의 상태가 될 때까지 그 라이트 요구를 대기시킨다(스텝 S938). 즉, 카피 완료를 판정하는 스텝 S932에 되돌아오게 된다.If the page to be accessed from the host computer 100 is being copied (step S933: No) and the access is not read access (step S934: No), case #5 is applicable. Accordingly, the logical address replacement unit 240 holds the contents in the write request buffer 250, and waits for the write request until the page is in the copy completion state (step S938). That is, the flow returns to step S932 for determining copy completion.

이와 같이, 본 기술의 제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 host computer 100 and the logical address space of the area to be copied operation collide with each other, page unit You can control access with . That is, accesses other than writing during copying can be continued in units of pages, and the latency required for memory access can be reduced. In addition, there is no need to separately provide another memory area as in the prior art, and a data merging operation can be made unnecessary.

<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 host computer 100 is stored in the page. In contrast, in the second embodiment, a case where access by a command from the host computer 100 is not accommodated in the page is allowed. In addition, about the whole structure as an information processing system, since it is the same as that of 1st Embodiment mentioned above, detailed description is abbreviate|omitted.

[메모리 컨트롤러의 구성][Configuration of memory controller]

도 16은, 본 기술의 제2의 실시의 형태에서의 메모리 컨트롤러(200)의 한 구성례를 도시하는 도면이다. 이 제2의 실시의 형태에서의 메모리 컨트롤러(200)는, 상술한 제1의 실시의 형태에 비하여, 액세스 분할부(220)를 더 구비하는 점에서 다르고, 그 이외에 관해서는 마찬가지이다.16 is a diagram showing an example of a configuration of the memory controller 200 according to the second embodiment of the present technology. The memory controller 200 in the second embodiment is different from the first embodiment described above in that it further includes an access division unit 220, and the rest is the same.

액세스 분할부(220)는, 호스트 컴퓨터(100)로부터의 커맨드에 의한 액세스가 1페이지보다도 큰 영역에 관한 것이면, 각각이 1페이지를 초과하지 않는 영역으로 분할하는 것이다. 예를 들면, 1페이지의 사이즈가 512B이고, 호스트 컴퓨터(100)로부터의 커맨드에 의한 액세스가 128KB의 데이터 용량에 관한 것이면, 그 액세스를 512B마다 분할하여, 논리 어드레스 충돌 판정부(230)에 공급한다. 이에 의해, 논리 어드레스 충돌 판정부(230) 이후의 처리는, 상술한 제1의 실시의 형태와 마찬가지가 된다.The access division unit 220 divides each area into areas that do not exceed one page when access by a command from the host computer 100 relates to an area larger than one page. For example, if the size of one page is 512B and access by a command from the host computer 100 relates to a data capacity of 128 KB, the access is divided for every 512B and supplied to the logical address collision determination unit 230 do. Accordingly, the processing after the logical address collision determination unit 230 is the same as in the first embodiment described above.

이와 같이, 본 기술의 제2의 실시의 형태에 의하면, 호스트 컴퓨터(100)로부터의 커맨드에 의한 액세스를 액세스 분할부(220)에 의해 페이지마다 분할함에 의해, 사이즈가 큰 액세스에 대해서도 페이지 단위로 액세스를 제어할 수 있다.As described above, according to the second embodiment of the present technology, access by a command from the host computer 100 is divided for each page by the access division unit 220, so that even large-sized accesses are page-by-page. You can control access.

또한, 상술한 실시의 형태는 본 기술을 구현화하기 위한 한 예를 나타냈던 것이고, 실시의 형태에서의 사항과, 특허청구의 범위에서의 발명 특정 사항은 각각 대응 관계를 갖는다. 마찬가지로, 특허청구의 범위에서의 발명 특정 사항과, 이것과 동일 명칭을 붙인 본 기술의 실시의 형태에서의 사항은 각각 대응 관계를 갖는다. 단, 본 기술은 실시의 형태로 한정되는 것이 아니고, 그 요지를 일탈하지 않는 범위에서 실시의 형태에 여러가지의 변형을 행함에 의해 구현화할 수 있다.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)

메모리의 카피 단위인 제1의 기억 영역을 복수 통합한 제2의 기억 영역부터 상기 메모리의 다른 기억 영역에 카피 동작이 실행되고 있는 경우에 있어서, 상기 제2의 기억 영역에 대한 액세스가 발행된 때에 상기 제1의 기억 영역을 단위로 하여 상기 액세스를 제어하는 것을 특징으로 하는 메모리 제어 장치.In the case where a copy operation is performed from the second storage area in which a plurality of first storage areas as a copy unit of the memory are integrated to another storage area of the memory, when an access to the second storage area is issued The memory control device according to claim 1, wherein the access is controlled by using the first storage area as a unit. 제1항에 있어서,
상기 카피 동작과 상기 액세스와의 어드레스 충돌을 상기 카피 단위로 판정하는 어드레스 충돌 판정부와,
상기 액세스의 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에 카피 완료인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 액세스의 대상이 되는 영역의 어드레스를 카피 처의 어드레스로 치환하여 상기 액세스를 속행시키는 어드레스 치환부를 구비하는 것을 특징으로 하는 메모리 제어 장치.
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.
제2항에 있어서,
상기 어드레스 치환부는, 상기 액세스가 리드 액세스이고 그 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에 카피 중인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 치환을 행하지 않고 상기 액세스를 속행시키는 것을 특징으로 하는 메모리 제어 장치.
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.
제2항에 있어서,
상기 어드레스 치환부는, 상기 액세스가 라이트 액세스이고 그 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에 카피 중인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 카피 단위의 영역이 카피 완료가 될 때까지 상기 라이트 액세스를 대기시키는 것을 특징으로 하는 메모리 제어 장치.
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.
제4항에 있어서,
상기 라이트 액세스가 대기되어 있는 사이에 그 라이트 액세스 요구를 유지하는 라이트 요구 버퍼를 더 구비하는 것을 특징으로 하는 메모리 제어 장치.
5. The method of claim 4,
and a write request buffer for holding the write access request while the write access is waiting.
제2항에 있어서,
상기 어드레스 치환부는, 상기 액세스의 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역에의 카피 전인 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 치환을 행하지 않고 상기 액세스를 속행시키는 것을 특징으로 하는 메모리 제어 장치.
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.
제2항에 있어서,
상기 어드레스 치환부는, 상기 액세스의 대상이 되는 상기 카피 단위의 영역이 상기 다른 기억 영역과는 충돌하지 않는 취지의 판정이 상기 어드레스 충돌 판정에서 된 경우에는 상기 치환을 행하지 않고 상기 액세스를 속행시키는 것을 특징으로 하는 메모리 제어 장치.
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항에 있어서,
상기 제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.
제8항에 있어서,
상기 다른 기억 영역은, 상기 카피 동작이 행해지기 전에는 액세스 불가능한 논리 어드레스 공간의 영역이고, 상기 카피 동작이 행해진 후에는 상기 어드레스 변환부에서 액세스 가능한 논리 어드레스 공간의 영역에 갱신되는 것을 특징으로 하는 메모리 제어 장치.
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항에 있어서,
상기 제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.
제11항에 있어서,
상기 메모리는, 불휘발 메모리인 것을 특징으로 하는 메모리 모듈.
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.
KR1020217023149A 2019-01-31 2019-10-16 Memory control unit, memory module and information processing system KR20210118086A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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