MEMORY SYSTEMA memory system according to an embodiment of the present invention comprises: speed of processing for searching through management tables is increased by providing a forward lookup table for searching for, respectively in track and cluster units, from a logical address, a storage device position where data corresponding to the logical address and a reverse lookup table for searching for, from a position of the storage device, a logical address stored in the position and linking these tables.A memory system comprising: a first storing area as a cache memory included in a volatile semiconductor memory; second and third storing areas included in nonvolatile semiconductor memories in which data reading and writing is performed by a page unit and data erasing is performed by a physical block unit twice or larger natural number times as large as the page unit; and a controller that allocates storage areas of the nonvolatile semiconductor memories to the second and third storing areas in logical block units associated with one or more of the physical blocks, wherein the controller executes: first processing for writing a plurality of data in sector units flushed from the first storing area to the second storing area as data in a first management unit; second processing for writing a plurality of data in sector units flushed from the first storing area to the third storing area as data in a second management unit twice or a larger natural number times as large as the first management unit; third processing for flushing the data stored in the second storing area to the third storing area as data in the second management unit; fourth processing for selecting a plurality of valid data in the first management unit stored in the second storing area and rewriting the valid data in a new logical block; and fifth processing for selecting a plurality of valid data in the second management unit stored in the third storing area and rewriting the valid data in a new logical block, the controller includes: a forward-lookup first management table for retrieving, from logical addresses in the second management unit, first management information including information including the logical block addresses indicating storage positions in the second or third storing areas of the data in the second management unit corresponding to the logical addresses in the second management unit and storage positions of the data in the second management unit in the logical blocks designated by the logical block addresses and link information to entries belonging to corresponding logical addresses in the second management unit in a second management table; a forward-lookup second management table that has an entry for each of the logical addresses in the second management unit, the forward-lookup second management table being a table for retrieving, from logical addresses in the first management unit, second management information including information including the logical block addresses indicating storage positions in the second storing area of the data in the first management unit corresponding to the logical addresses in the first management unit and storage positions of the data in the first management unit in the logical blocks designated by the logical block addresses and link information to logical block addresses registered in a fourth management table; a reverse look-up third management table in which, for each of the logical block addresses, third management information including the link information to the logical addresses in the second management unit registered in the first management table is registered, the reverse look-up third management table being a table for retrieving, from the logical block addresses, addresses in the second management unit corresponding to data in the second management unit included in the logical blocks corresponding to the logical block addresses; a reverse-lookup fourth management table in which, for each of the logical block addresses, fourth management information including the link information to the logical addresses in the first management unit registered in the second management table is registered, the reverse-lookup fourth management table being a table for retrieving, from the logical block addresses, addresses in the first management unit corresponding to data in the first management unit included in the logical blocks corresponding to the logical block addresses; and a fifth management table for managing a correspondence relation between a plurality of physical block addresses corresponding to a plurality of physical blocks and logical block addresses corresponding to logical blocks associated with the physical blocks, and the controller executes the first processing to the fifth processing based on the first to fifth management tables .
메모리 시스템본 발명의 실시형태에 따른 메모리 시스템에서는, 논리 어드레스로부터, 그 논리 어드레스에 대응하는 데이터가 저장되어 있는 기억 장치 위치에 대해 트랙 및 클러스터 단위로 각각 검색하기 위한 포워드 룩업 테이블과, 기억 장치의 위치로부터 그 위치에 저장된 논리 어드레스에 대해 검색하는 리버스 룩업 테이블을 제공하고 이들 테이블을 링크함으로써 관리 테이블을 검색하는 처리의 속도를 높인다.메모리 시스템에 있어서, 휘발성 반도체 메모리에 포함되는 캐시 메모리로서의 제1 기억 영역과, 비휘발성 반도체 메모리에 포함되며, 페이지 단위로 데이터 판독 및 기입이 이루어지고 상기 페이지 단위의 2 이상의 자연수배인 물리 블록 단위로 데이터 소거가 이루어지는 제2 및 제3 기억 영역과, 상기 비휘발성 반도체 메모리의 기억 영역을 1 이상의 물리 블록에 연관된 논리 블록 단위로 상기 제2 및 제3 기억 영역에 할당하는 컨트롤러 를 포함하고, 상기 컨트롤러는, 상기 제1 기억 영역으로부터 플러시된 섹터 단위의 복수의 데이터를 제1 관리 단위의 데이터로서 상기 제2 기억 영역에 기입하는 제1 처리와, 상기 제1 기억 영역으로부터 플러시된 섹터 단위의 복수의 데이터를 상기 제1 관리 단위의 2 이상의 자연수배인 제2 관리 단위의 데이터로서 상기 제3 기억 영역에 기입하는 제2 처리와, 상기 제2 기억 영역에 저장된 데이터를 상기 제2 관리 단위의 데이터로서 상기 제3 기억 영역에 플러시하는 제3 처리와, 상기 제2 기억 영역에 저장된 상기 제1 관리 단위의 복수의 유효 데이터를 선택하여 그 유효 데이터를 새로운 논리 블록에 재기입하는 제4 처리와, 상기 제3 기억 영역에 저장된 상기 제2 관리 단위의 복수의 유효 데이터를 선택하여 그 유효 데이터를 새로운 논리 블록에 재기입하는 제5 처리 를 포함하고, 상기 컨트롤러는, 상기 제2 관리 단위의 논리 어드레스로부터, 그 제2 관리 단위의 논리 어드레스에 대응하는 상기 제2 관리 단위의 데이터의 상기 제2 또는 제3 기억 영역에서의 기억 위치를 나타내는 논리 블록 어드레스와, 그 논리 블록 어드레스에 의해 지정된 논리 블록에서의 상기 제2 관리 단위의 데이터의 기억 위치를 포함하는 정보, 및 제2 관리 테이블에 있는 상기 제2 관리 단위의 대응하는 논리 어드레스에 속하는 엔트리에의 링크 정보를 포함하는 제1 관리 정보를 검색하기 위한 포워드(forward) 룩업 제1 관리 테이블과, 상기 제2 관리 단위의 논리 어드레스마다 엔트리를 갖고, 상기 제1 관리 단위의 논리 어드레스로부터, 그 제1 관리 단위의 논리 어드레스에 대응하는 상기 제1 관리 단위의 데이터의 상기 제2 기억 영역에서의 기억 위치를 나타내는 논리 블록 어드레스와, 그 논리 블록 어드레스에 의해 지정된 논리 블록에서의 상기 제1 관리 단위의 데이터의 기억 위치를 포함하는 정보와, 제4 관리 테이블에 등록된 논리 블록 어드레스에의 링크 정보를 포함하는 제2 관리 정보를 검색하기 위한 포워드 룩업 제2 관리 테이블과, 상기 논리 블록 어드레스마다, 상기 제1 관리 테이블에 등록된 상기 제2 관리 단위의 논리 어드레스에의 링크 정보를 포함하는 제3 관리 정보가 등록되어 있고, 상기 논리 블록 어드레스로부터, 그 논리 블록 어드레스에 대응하는 논리 블록에 포함된 상기 제2 관리 단위의 데이터에 대응하는 상기 제2 관리 단위의 어드레스를 검색하기 위한 리버스(reverse) 룩업 제3 관리 테이블과, 상기 논리 블록 어드레스마다, 상기 제2 관리 테이블에 등록된 상기 제1 관리 단위의 논리 어드레스에의 링크 정보를 포함하는 제4 관리 정보가 등록되어 있고, 상기 논리 블록 어드레스로부터, 그 논리 블록 어드레스에 대응하는 논리 블록에 포함된 상기 제1 관리 단위의 데이터에 대응하는 상기 제1 관리 단위의 어드레스를 검색하기 위한 리버스 룩업 제4 관리 테이블과, 복수의 물리 블록에 대응하는 복수의 물리 블록 어드레스와 그 물리 블록에 연관된 논리 블록에 대응하는 논리 블록 어드레스와의 대응 관계를 관리하는 제5 관리 테이블 을 포함하며, 상기 컨트롤러는 상기 제1 내지 제5 관리 테이블에 기초하여 상기 제1 처리 내지 제5 처리를 실행하는 것인 메모리 시스템.