JP2018120522A - Information processing system and control method of information processing system - Google Patents

Information processing system and control method of information processing system Download PDF

Info

Publication number
JP2018120522A
JP2018120522A JP2017013127A JP2017013127A JP2018120522A JP 2018120522 A JP2018120522 A JP 2018120522A JP 2017013127 A JP2017013127 A JP 2017013127A JP 2017013127 A JP2017013127 A JP 2017013127A JP 2018120522 A JP2018120522 A JP 2018120522A
Authority
JP
Japan
Prior art keywords
page
bad
block
list
processing system
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2017013127A
Other languages
Japanese (ja)
Other versions
JP6819319B2 (en
Inventor
竜介 根橋
Ryusuke Nehashi
竜介 根橋
杉林 直彦
Naohiko Sugibayashi
直彦 杉林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2017013127A priority Critical patent/JP6819319B2/en
Publication of JP2018120522A publication Critical patent/JP2018120522A/en
Application granted granted Critical
Publication of JP6819319B2 publication Critical patent/JP6819319B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an information processing system which can be operated for a long time with a small capacity nonvolatile memory.SOLUTION: An information processing system comprises: a nonvolatile memory; memory control means for controlling allocation of blocks in a nonvolatile memory; a bad list; and a free list. The bad list is a list in which blocks consisting of consecutive pages including the bad page are collected, when a page including a memory cell whose error in the nonvolatile memory tends to increase is regarded as a bad page. The free list is a list in which blocks consisting of consecutive pages not including the above-mentioned bad page are collected. The memory control means previously attempts allocation processing of blocks of the free list, when performing block allocation control. Here, if it is impossible to allocate the free list blocks, allocation processing of blocks of the bad list is attempted.SELECTED DRAWING: Figure 1

Description

本発明は、情報処理システムおよび情報処理システムの制御方法に関する。   The present invention relates to an information processing system and a control method for the information processing system.

不揮発性メモリとして、以前は一般的に、ハードディスクやフラッシュメモリ等が利用されてきた。近年、FeRAM、MRAM、PCRAM、ReRAM、CBRAM等の高速にランダムアクセス可能な不揮発性メモリが開発されている。なお、これらのRAMの表記は、Random Access Memoryの略である。そして、FeRAMはFerroelectric−RAMの略、MRAMはMagnetoresistive−RAMの略、PCRAMはPhase―Change−RAMの略である。またReRAMはResistive−RAM、CBRAMはConductive−Bridge−RAMの略である。これら新興の不揮発性メモリをDRAM(Dinamic−RAM)と同様に主メモリとして利用した情報処理システムが提案されている。例えば、不揮発性メモリを利用することにより、高速なサスペンド・レジューム機能を実現する情報処理システムが提案されている。しかしながら、新興の不揮発性メモリは、書き込みにより摩耗する等の課題がある。そこで、このような課題を解決する方法が提案されている。   In general, a hard disk, a flash memory, and the like have been used as a nonvolatile memory. In recent years, nonvolatile memories such as FeRAM, MRAM, PCRAM, ReRAM, and CBRAM that can be randomly accessed at high speed have been developed. The notation of these RAMs is an abbreviation for Random Access Memory. FeRAM is an abbreviation for Ferroelectric-RAM, MRAM is an abbreviation for Magnetoretic-RAM, and PCRAM is an abbreviation for Phase-Change-RAM. ReRAM is an abbreviation for Resistive-RAM, and CBRAM is an abbreviation for Conductive-Bridge-RAM. An information processing system using these emerging nonvolatile memories as a main memory in the same manner as a DRAM (Dynamic-RAM) has been proposed. For example, an information processing system that realizes a high-speed suspend / resume function by using a non-volatile memory has been proposed. However, emerging nonvolatile memories have problems such as wear due to writing. Therefore, a method for solving such a problem has been proposed.

例えば、特許文献1には、不揮発性メモリを含むメモリシステム及びその摩耗度管理方法が開示されている。特許文献1に記載の技術は、不揮発性メモリの仮想アドレス及び物理アドレスのマッピング情報を含むページテーブルを有し、ページテーブルエントリは、ページの摩耗度を表す寿命情報を含む。そして、ページにデータが書き込まれる度に、寿命情報を更新し、耐久限度に到達したページにはメモリ割り当てが行われないように制御する。さらに、物理的に連続したページを割り当てる必要がある場合、空きページを管理するバディシステムを用いて、耐久限度に到達したページにはメモリ割り当てが行われないように制御する。上記の制御により、耐久限度内のページにメモリを割り当てることができる。   For example, Patent Document 1 discloses a memory system including a nonvolatile memory and a wear level management method thereof. The technique described in Patent Document 1 includes a page table including mapping information of a virtual address and a physical address of a nonvolatile memory, and the page table entry includes life information indicating the degree of wear of the page. Each time data is written to the page, the life information is updated, and control is performed so that memory allocation is not performed for the page that has reached the endurance limit. Further, when physically continuous pages need to be allocated, a buddy system that manages empty pages is used to control memory allocation for pages that have reached the endurance limit. With the above control, memory can be allocated to pages within the endurance limit.

また、特許文献2には、メモリリマップ情報を記憶する不揮発性メモリが開示されている。特許文献2に記載の技術は、エラー数が閾値を超えるメモリセルの使用を中止し、全メモリ装置容量を維持するように、スペアメモリセルを選択する。この制御により、エラー数が閾値以下のメモリセルを選択しつつ、容量も確保することができる。   Patent Document 2 discloses a nonvolatile memory that stores memory remapping information. The technique described in Patent Document 2 selects a spare memory cell so as to stop using a memory cell whose number of errors exceeds a threshold and maintain the entire memory device capacity. By this control, it is possible to secure a capacity while selecting a memory cell whose error number is equal to or less than a threshold value.

特開2010−186477号公報JP 2010-186477 A 特開2011−040051号公報JP 2011-040051 A

特許文献1に記載の技術は、運用期間が長くなるほど、耐久限度に到達したページが増加し、ページ単位のメモリ断片化が進む。このため、物理的に連続したページを割り当てる必要がある場合、メモリを効率的に割り当てられないという課題がある。   In the technique described in Patent Document 1, as the operation period becomes longer, the number of pages that have reached the endurance limit increases, and memory fragmentation in units of pages proceeds. For this reason, when it is necessary to allocate physically continuous pages, there is a problem that memory cannot be allocated efficiently.

特許文献2に記載の技術は、スペアメモリの利用により、メモリ断片化の課題は解決するが、運用期間が長くなるほど、エラー数が閾値を超えるメモリセルが増加する。このため、全メモリ装置容量を維持するためには、多くのスペアメモリセルを必要とするという問題点があった。   The technique described in Patent Document 2 solves the problem of memory fragmentation by using a spare memory, but as the operation period becomes longer, the number of memory cells in which the number of errors exceeds the threshold increases. Therefore, in order to maintain the entire memory device capacity, there is a problem that many spare memory cells are required.

本発明は、上記の課題に鑑みてなされたものであり、その目的は、小容量の不揮発性メモリで長期間運用できる情報処理システムを提供することである。   The present invention has been made in view of the above problems, and an object thereof is to provide an information processing system that can be operated for a long time with a small-capacity nonvolatile memory.

上記の課題を解決するため、本発明の情報処理システムは、情報処理システムは、不揮発性メモリと、不揮発性メモリの中のブロックの割り当て制御を行うメモリ制御手段と、バッドリストと、フリーリストとを有する。バッドリストは、不揮発性メモリの中の、エラーが増加傾向にあるメモリセルを含むページをバッドページとし、当該バッドページを含む連続ページからなるブロックを集めたリストである。フリーリストは、上記のバッドページを含まない連続ページからなるブロックを集めたリストである。メモリ制御手段は、ブロックの割り当て制御を行う時に、先にフリーリストのブロックの割り当て処理を試みる。ここで、フリーリストのブロックの割り当てができない場合には、バッドリストのブロックの割り当て処理を試みる。   In order to solve the above-described problems, an information processing system according to the present invention includes a non-volatile memory, memory control means for performing block allocation control in the non-volatile memory, a bad list, a free list, Have The bad list is a list in which blocks including non-volatile memories including memory cells in which errors tend to increase are used as bad pages, and blocks including continuous pages including the bad pages are collected. The free list is a list in which blocks composed of continuous pages not including the bad page are collected. The memory control means first attempts free block allocation processing when performing block allocation control. If the free list block cannot be allocated, an attempt is made to allocate a bad list block.

本発明の効果は、小容量の不揮発性メモリで長期間運用できる情報処理システムを提供できることである。   An effect of the present invention is to provide an information processing system that can be operated for a long time with a small-capacity nonvolatile memory.

第1の実施形態の情報処理システムを示すブロック図である。It is a block diagram which shows the information processing system of 1st Embodiment. 第2の実施形態の情報処理システムの全体構成を示すブロック図である。It is a block diagram which shows the whole structure of the information processing system of 2nd Embodiment. 第2の実施形態の情報処理システムの主記憶装置を示すブロック図である。It is a block diagram which shows the main memory device of the information processing system of 2nd Embodiment. 第2の実施形態の情報処理システムの主記憶装置の一部を示すブロック図であるである。It is a block diagram which shows a part of main memory | storage device of the information processing system of 2nd Embodiment. 第2の実施形態の情報処理システムにおけるバッドページを含む実ページの管理方法を示す模式図である。It is a schematic diagram which shows the management method of the real page containing the bad page in the information processing system of 2nd Embodiment. 第2の実施形態の情報処理システムにおけるバッドページを含む実ページの管理方法を示す別の模式図である。It is another schematic diagram which shows the management method of the real page containing the bad page in the information processing system of 2nd Embodiment. 第2の実施形態の情報処理システムにおけるバッドページの登録処理を示すフローチャートである。It is a flowchart which shows the registration process of the bad page in the information processing system of 2nd Embodiment. 第2の実施形態の情報処理システムにおけるバッドページの登録処理を示すフローチャートの一部である。It is a part of flowchart which shows the registration process of the bad page in the information processing system of 2nd Embodiment. 第2の実施形態の情報処理システムにおけるブロックの割り当て処理を示すフローチャートである。It is a flowchart which shows the block allocation process in the information processing system of 2nd Embodiment. 第2の実施形態の情報処理システムにおけるフリーリストのブロックの割り当て処理を示すフローチャートである。It is a flowchart which shows the allocation process of the block of the free list in the information processing system of 2nd Embodiment. 第2の実施形態の情報処理システムにおけるバッドリストのブロックの割り当て処理を示すフローチャートである。It is a flowchart which shows the block allocation process of the bad list in the information processing system of 2nd Embodiment. 第2の実施形態の情報処理システムにおけるバッドリストのブロックの割り当て処理の一部を示すフローチャートである。12 is a flowchart illustrating a part of a bad list block allocation process in the information processing system according to the second embodiment. 第2の実施形態の情報処理システムにおけるブロックの解放処理を示すフローチャートである。It is a flowchart which shows the block release process in the information processing system of 2nd Embodiment.

以下、図面を参照しながら、本発明の実施形態を詳細に説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。なお各図面の同様の構成要素には同じ番号を付し、説明を省略する場合がある。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. However, the preferred embodiments described below are technically preferable for carrying out the present invention, but the scope of the invention is not limited to the following. In addition, the same number is attached | subjected to the same component of each drawing, and description may be abbreviate | omitted.

(第1の実施形態)
図1は第1の実施形態を示すブロック図である。情報処理システムは、不揮発性メモリ1と、不揮発性メモリ1の中のブロックの割り当て制御を行うメモリ制御手段2と、バッドリスト3と、フリーリスト4とを有する。
(First embodiment)
FIG. 1 is a block diagram showing the first embodiment. The information processing system includes a nonvolatile memory 1, a memory control unit 2 that controls allocation of blocks in the nonvolatile memory 1, a bad list 3, and a free list 4.

バッドリスト3は、不揮発性メモリ1の中の、エラーが増加傾向にあるメモリセルを含むページをバッドページとし、当該バッドページを含む連続ページからなるブロックを集めたリストである。   The bad list 3 is a list in which the pages including the memory cells in which errors tend to increase in the non-volatile memory 1 are set as bad pages, and blocks including continuous pages including the bad pages are collected.

フリーリスト4は、上記のバッドページを含まない連続ページからなるブロックを集めたリストである。   The free list 4 is a list in which blocks including continuous pages not including the bad page are collected.

メモリ制御手段2は、ブロックの割り当て制御を行う時に、先にフリーリスト4のブロックの割り当て処理を試みる。ここで、フリーリスト4のブロックの割り当てができない場合には、バッドリスト3のブロックの割り当て処理を試みる。   The memory control means 2 first tries the block allocation process of the free list 4 when performing block allocation control. Here, when the block of the free list 4 cannot be allocated, the block allocation process of the bad list 3 is tried.

以上の構成とすることにより、小容量の不揮発性メモリで長期間運用できる情報処理システムを提供することができる。   With the above configuration, an information processing system that can be operated for a long time with a small-capacity nonvolatile memory can be provided.

(第2の実施形態)
図2は本発明の情報処理システムの全体構成を示すブロック図である。情報処理システム1000は、CPU(Central Processing Unit)100と、主記憶装置200と、2次記憶装置300と、入出力装置400とを備えている。
(Second Embodiment)
FIG. 2 is a block diagram showing the overall configuration of the information processing system of the present invention. The information processing system 1000 includes a CPU (Central Processing Unit) 100, a main storage device 200, a secondary storage device 300, and an input / output device 400.

CPU100は、2次記憶装置300から主記憶装置200にロードされたプログラムを実行し、バス500を介して、主記憶装置200と、2次記憶装置300と、入出力装置400とを制御する。また、CPU100は各装置からの制御信号に応答し、プログラムを実行する。   The CPU 100 executes a program loaded from the secondary storage device 300 to the main storage device 200, and controls the main storage device 200, the secondary storage device 300, and the input / output device 400 via the bus 500. In addition, the CPU 100 executes a program in response to a control signal from each device.

2次記憶装置300は不揮発性メモリとして、ハードディスクやフラッシュメモリ等を含む。入出力装置400は、キーボードやマウスなどの入力手段と、液晶ディスプレイ等の出力手段を含む。   The secondary storage device 300 includes a hard disk, a flash memory, and the like as a nonvolatile memory. The input / output device 400 includes input means such as a keyboard and a mouse and output means such as a liquid crystal display.

主記憶装置200は、不揮発性メモリ210とメモリ制御装置220とを含む。なお、主記憶装置200として、揮発性メモリ230が含まれていてもよい。主記憶装置200の揮発性メモリ230は、DRAMやSRAMを含む。揮発性メモリ230は電源の供給されている間のみデータを保持できる。不揮発性メモリ210は、FeRAM、MRAM、PCRAM、ReRAM、CBRAM等の高速にランダムアクセス可能な不揮発性メモリを含む。不揮発性メモリ210は、電源の供給が遮断されてもデータを保持できる。他方、揮発性メモリ230は、動作時にプログラムやCPU100が処理したデータを格納する。また、不揮発性メモリ210は、動作時とサスペンド時にプログラムやCPU100が処理したデータを格納する。   The main storage device 200 includes a nonvolatile memory 210 and a memory control device 220. Note that a volatile memory 230 may be included as the main storage device 200. The volatile memory 230 of the main storage device 200 includes DRAM and SRAM. The volatile memory 230 can hold data only while power is supplied. The non-volatile memory 210 includes a non-volatile memory that can be randomly accessed at high speed, such as FeRAM, MRAM, PCRAM, ReRAM, and CBRAM. The nonvolatile memory 210 can retain data even when power supply is interrupted. On the other hand, the volatile memory 230 stores programs and data processed by the CPU 100 during operation. The nonvolatile memory 210 stores programs and data processed by the CPU 100 during operation and suspend.

主記憶装置200が提供する実メモリは、ページ単位に分割され、管理される。仮想アドレス空間も同じページ単位に分割され、管理される。仮想記憶機構を備えたCPU100は、プログラムを固有の仮想アドレス空間上で動作させることができる。仮想アドレスから実メモリのアドレス(実アドレス)への変換はページテーブルを基にページ単位で行われる。ページテーブルは、仮想ページと実ページの対応表である。   The real memory provided by the main storage device 200 is divided into pages and managed. The virtual address space is also divided and managed in the same page unit. The CPU 100 provided with the virtual storage mechanism can operate the program in a unique virtual address space. The conversion from the virtual address to the real memory address (real address) is performed in units of pages based on the page table. The page table is a correspondence table between virtual pages and real pages.

本実施形態の情報処理システム1000における主記憶装置200が提供する実メモリは、揮発性メモリ230と不揮発性メモリ210とを区別して管理されうる。例えば、Operatign System(OS)の一つであるLinux(登録商標)は、ゾーンとノードの組み合わせに応じてページを管理する機構を備えているが、同様の機構を適用してもよい。ゾーンは、実アドレスの領域によって分けて、管理される単位である。ページの割り当てはゾーン毎に行われる。また、ノードは、システム内のメモリを分割し、管理される単位である。ノードは、たとえば、Non−Uniform Memory Access(NUMA)システムにおいて、メモリの割り当て方に差をつけるために利用される。   The real memory provided by the main storage device 200 in the information processing system 1000 of this embodiment can be managed by distinguishing between the volatile memory 230 and the nonvolatile memory 210. For example, Linux (registered trademark), which is one of the operating systems (OS), includes a mechanism for managing pages according to a combination of zones and nodes, but a similar mechanism may be applied. A zone is a unit that is managed by being divided according to the real address area. Pages are allocated for each zone. A node is a unit managed by dividing a memory in the system. Nodes are used, for example, to make a difference in how memory is allocated in a Non-Uniform Memory Access (NUMA) system.

図3は、本実施形態の主記憶装置200を示すブロック図である。主記憶装置200は、不揮発性メモリ210と、不揮発性スペアメモリ211と、メモリ制御装置220とから構成される。メモリ制御装置220はバス500を介して、アドレス信号、データ信号、制御信号を含む信号を送信または受信する。メモリ制御装置220は、ローカルバス600を介して、不揮発性メモリ210と不揮発性スペアメモリ211に接続し、ローカルアドレス信号、ローカルデータ信号、ローカル制御信号を含む信号を送信または受信する。不揮発性スペアメモリ211は、例えば、不揮発性メモリと同一の種類のメモリセルから構成される。   FIG. 3 is a block diagram showing the main storage device 200 of this embodiment. The main storage device 200 includes a nonvolatile memory 210, a nonvolatile spare memory 211, and a memory control device 220. The memory control device 220 transmits or receives signals including address signals, data signals, and control signals via the bus 500. The memory control device 220 is connected to the nonvolatile memory 210 and the nonvolatile spare memory 211 via the local bus 600 and transmits or receives signals including a local address signal, a local data signal, and a local control signal. The non-volatile spare memory 211 includes, for example, the same type of memory cells as the non-volatile memory.

図4はメモリ制御装置の一部を示す模式図である。メモリ制御装置220は、アドレス変換部221と、スイッチ部222と、エラー検出部223と、バッドページ管理部224を含む。   FIG. 4 is a schematic diagram showing a part of the memory control device. The memory control device 220 includes an address conversion unit 221, a switch unit 222, an error detection unit 223, and a bad page management unit 224.

アドレス変換部221は、不揮発性メモリ210のバッドページを、ページ単位で不揮発性スペアメモリ211のページに置き換える。不揮発性メモリ210のバッドページは、エラーが増加傾向にあるメモリセルを含むページである。アドレス変換部221は、置き換え元の不揮発性メモリ210のアドレスと、置き換え先の不揮発性スペアメモリ211のアドレスとの対応情報を記憶した記憶部221aを備える。そして、記憶部221aの対応情報を参照して、バス500上のアドレス信号をローカルバス600上のローカルアドレス信号に変換する。アドレス変換部221は、アドレス対応情報を記憶する記憶部221aとして、Content Addressable Memory(CAM)などを利用し、高速にアドレス変換してもよい。   The address conversion unit 221 replaces the bad page in the nonvolatile memory 210 with a page in the nonvolatile spare memory 211 in units of pages. The bad page of the nonvolatile memory 210 is a page including memory cells in which errors tend to increase. The address conversion unit 221 includes a storage unit 221 a that stores correspondence information between the address of the replacement-source nonvolatile memory 210 and the replacement-destination nonvolatile spare memory 211. Then, the address signal on the bus 500 is converted into a local address signal on the local bus 600 with reference to the correspondence information in the storage unit 221a. The address conversion unit 221 may perform high-speed address conversion using a content addressable memory (CAM) or the like as the storage unit 221a that stores address correspondence information.

スイッチ部222は、ローカルアドレス信号によって指定されたメモリセルの読み出しデータであるローカルデータ出力信号を選択し、エラー検出部223に供給する。スイッチ部222は、マルチプレクサ等の信号スイッチを利用することができる。   The switch unit 222 selects a local data output signal that is read data of the memory cell specified by the local address signal, and supplies the local data output signal to the error detection unit 223. The switch unit 222 can use a signal switch such as a multiplexer.

エラー検出部223は、エラーが起こったメモリセルを検出し、エラー情報をバッドページ管理部224へ出力する。メモリ制御装置220は、エラー検出部223として、Error Correction Code(ECC)等の技術を利用することができる。尚、エラー検出部223は、ECC等の技術を利用して、エラーを訂正して、データ出力信号を出力してもよい。   The error detection unit 223 detects a memory cell in which an error has occurred, and outputs error information to the bad page management unit 224. The memory control device 220 can use a technique such as Error Correction Code (ECC) as the error detection unit 223. The error detection unit 223 may correct the error using a technique such as ECC and output a data output signal.

バッドページ管理部224は、エラー検出部223から供給されるエラー情報と、アドレス変換部221から供給されるローカルアドレス信号とを用いて、ローカルアドレスによって指定されたメモリセルがエラー増加傾向にあるか否かを判断する。エラーが増加傾向にあると判断した場合、そのメモリセルを含むページをバッドページとして、登録する。バッドページ管理部224は、例えば、エラーがあったメモリセルのアドレスとそのエラー回数を記録し、エラー回数がある閾値以上の場合、そのメモリセルをエラー傾向にあると判断する。もしくは、バッドページ管理部224は、ECCの符号語を形成する複数のメモリセルに対し、その符号語内のエラー数がある閾値より多い場合、それらのメモリセルをエラー増加傾向にあると判断する。バッドページ管理部224は、バッドページを登録するための記憶部224aを備え、バッドページのページフレーム番号などの識別子を保存する。ページフレーム番号は、CPU100が利用するアドレスの一部のビットから構成される。さらに、バッドページ管理部224は、バッドページの登録をCPU100へ通知する通知部224bを備える。通知部224bは、例えば、割り込み要求などの通知手段を用いる。CPU100は、メモリ制御装置220からの通知を受けると、その割り込み処理において、バッドページ管理部224の記憶部224aから、登録されているバッドページの識別子を読み出す。CPU100は、後述のOS等のソフトウェアを用いて、バッドページを管理する。   The bad page management unit 224 uses the error information supplied from the error detection unit 223 and the local address signal supplied from the address conversion unit 221 to determine whether the memory cell specified by the local address has a tendency to increase errors. Judge whether or not. When it is determined that the error tends to increase, the page including the memory cell is registered as a bad page. For example, the bad page management unit 224 records the address of the memory cell in which an error has occurred and the number of times of the error. Alternatively, if the number of errors in the code word is greater than a certain threshold value for a plurality of memory cells forming an ECC code word, the bad page management unit 224 determines that the memory cells tend to increase in error. . The bad page management unit 224 includes a storage unit 224a for registering a bad page, and stores an identifier such as a page frame number of the bad page. The page frame number is composed of some bits of the address used by the CPU 100. Furthermore, the bad page management unit 224 includes a notification unit 224b that notifies the CPU 100 of registration of a bad page. For example, the notification unit 224b uses notification means such as an interrupt request. Upon receiving the notification from the memory control device 220, the CPU 100 reads the registered bad page identifier from the storage unit 224a of the bad page management unit 224 in the interrupt process. The CPU 100 manages bad pages using software such as an OS described later.

図5は、本実施形態の情報処理システムにおけるバッドページを含む実ページの管理方法を示す模式図である。本実施形態の情報処理システムは、フリー領域とバッド領域から構成されるバディシステムによって、実ページを管理する。バディシステムはページを2のべき乗の単位で管理する。フリー領域は空きページから構成される2のべき乗の単位の連続ページが集められ、バッド領域はバッドページを含む2のべき乗の単位の連続ページが集められる。バディシステムは、連続ページをブロックとして管理する。   FIG. 5 is a schematic diagram showing a management method for real pages including bad pages in the information processing system of this embodiment. The information processing system according to the present embodiment manages real pages by a buddy system including a free area and a bad area. The buddy system manages pages in units of powers of 2. In the free area, continuous pages in units of powers of 2 composed of empty pages are collected, and in the bad area, continuous pages in units of powers of 2 including bad pages are collected. The buddy system manages continuous pages as blocks.

図5は8つのページとそれぞれのバディシステムのブロックを例示している。バディシステムは、未使用ページ、使用ページ、バッドページを管理する。オーダーは、べき指数を表す。オーダーNのブロックは2のN乗のページサイズであり、かつ、オーダーNのブロックの先頭ページのページフレーム番号は、2のN乗の整数倍である。ここでは、バディブロックを、隣接する同じオーダーNのブロックであり、かつ、統合するとオーダー(N+1)のブロックを形成できるものと定義する。   FIG. 5 illustrates eight pages and respective buddy system blocks. The buddy system manages unused pages, used pages, and bad pages. The order represents a power index. The block of order N has a page size of 2 N and the page frame number of the first page of the block of order N is an integer multiple of 2 N. Here, a buddy block is defined as an adjacent block of the same order N and, when integrated, a block of order (N + 1) can be formed.

図5に示すように、ブロックは未使用ページとバッドページを用いて、できるだけ大きなブロックを構成する。これはバディブロックがバッド領域またはフリー領域に存在するか調査し、バディブロックが存在する場合、それらのブロックを統合して大きなブロックを形成することにより行われる。さらに、ブロック内にバッドページが含まれる場合、そのブロックをバッド領域に所属させる。バッドページが含まれない場合、そのブロックをフリー領域に所属させる。図5では、オーダー0に一つのブロック、オーダー1に一つのブロック、オーダー2に一つのブロックがある。そのうち、オーダー2のブロックはバッドページを含んでいる。このため、このオーダー2のブロックはバッド領域に属する。そして、オーダー0とオーダー1のブロックは、バッドページを含んでいないため、フリー領域に属する。   As shown in FIG. 5, a block is configured as large as possible using unused pages and bad pages. This is done by investigating whether the buddy block exists in the bad area or the free area, and if there is a buddy block, these blocks are integrated to form a large block. Further, when a bad page is included in the block, the block is made to belong to the bad area. If a bad page is not included, the block is assigned to a free area. In FIG. 5, there is one block for order 0, one block for order 1, and one block for order 2. Among them, the block of order 2 includes a bad page. For this reason, the block of order 2 belongs to the bad area. Since the blocks of order 0 and order 1 do not include bad pages, they belong to the free area.

図6は、本実施形態の情報処理システムにおけるバッドページを含む実ページの管理方法を示す模式図である。本実施形態の情報処理システムは、ゾーン記述子とページ記述子から構成されるフリーリストとバッドリストによって、実ページを管理する。ゾーン記述子は、不揮発性メモリの実ページが属するゾーンを管理する記述子である。ページ記述子は、不揮発性メモリの実ページを管理する記述子である。
ゾーン記述子は、free_areaメンバと、bad_areaメンバを備える。free_areaメンバはfree_list配列を備える。bad_areaメンバはbad_list配列を備える。これらの配列のインデックスはオーダーである。
FIG. 6 is a schematic diagram showing a management method for real pages including bad pages in the information processing system of this embodiment. The information processing system according to the present embodiment manages real pages using a free list and a bad list that are composed of zone descriptors and page descriptors. The zone descriptor is a descriptor for managing a zone to which a real page of the nonvolatile memory belongs. The page descriptor is a descriptor that manages an actual page of the nonvolatile memory.
The zone descriptor includes a free_area member and a bad_area member. The free_area member has a free_list array. The bad_area member has a bad_list array. The indices of these arrays are orders.

free_list[N]メンバは、オーダーがNのフリーリストの先頭のページ記述子を指す。オーダーがNのフリーリストは、オーダーがNのフリー領域に属するブロックの内、先頭ページのページ記述子から構成される。   The free_list [N] member points to the first page descriptor of the free list whose order is N. The free list with the order N is composed of the page descriptor of the first page among the blocks belonging to the free area with the order N.

bad_area[N]メンバは、オーダーがNのバッドリストの先頭のページ記述子を指す。オーダーがNのバッドリストは、オーダーがNのバッド領域に属するブロックの内、先頭ページのページ記述子から構成される。   The bad_area [N] member points to the first page descriptor of the bad list whose order is N. The bad list with the order N is composed of the page descriptor of the first page among the blocks belonging to the bad area with the order N.

ページ記述子は、PG_badフラグと、nextメンバを備える。PG_badフラグは、ページがバッドページの場合、1に設定される。ページがバッドページではない場合、0に設定される。nextメンバは、各リストの後続のページ記述子を指す。   The page descriptor includes a PG_bad flag and a next member. The PG_bad flag is set to 1 when the page is a bad page. Set to 0 if the page is not a bad page. The next member points to the subsequent page descriptor of each list.

図7は、本実施形態の情報処理システムにおけるバッドページの登録処理のフローチャートである。メモリ制御装置からバッドページ登録の通知を受けると、OS等のソフトウェハは、メモリ制御装置からバッドページとして登録されたページP1のページフレーム番号を取得する(S1)。そして、ページP1のページ記述子にPG_badフラグを立てる(S2)。   FIG. 7 is a flowchart of bad page registration processing in the information processing system of this embodiment. When a notification of bad page registration is received from the memory control device, a soft wafer such as an OS acquires the page frame number of the page P1 registered as a bad page from the memory control device (S1). Then, a PG_bad flag is set in the page descriptor of page P1 (S2).

ここで、ページP1が使用中ではない場合(S3_No)、ページP1を含むブロックがバッドリストにつながるように制御しブロックを更新する(S4)。   If the page P1 is not in use (S3_No), control is performed so that the block including the page P1 is connected to the bad list, and the block is updated (S4).

一方、ページP1が使用中の場合(S3_Yes)、プロセスAに進む。図8はプロセスAを示すフローチャートである。プロセスAでは、まず、ページP1が連続ページか否かを調べる(S5)。   On the other hand, when the page P1 is in use (S3_Yes), the process proceeds to the process A. FIG. 8 is a flowchart showing the process A. In the process A, first, it is checked whether or not the page P1 is a continuous page (S5).

ページP1が連続ページではない場合(S5_No)、新規ページP2の割り当てを試みる(S6)。割り当てに成功した場合(S7_Yes)、ページP1のページの内容を新規ページP2へ移動する。そして、ページP1から新規ページP2を指すように、ページテーブルエントリを更新する(S8)。割り当てに失敗した場合(S7_No)、新規ページ割り当てエラーを返す(S9)。そして、図7のフローチャートのBへ戻り終了する。   If the page P1 is not a continuous page (S5_No), an attempt is made to allocate a new page P2 (S6). When the allocation is successful (S7_Yes), the contents of the page P1 are moved to the new page P2. Then, the page table entry is updated so as to point to the new page P2 from the page P1 (S8). If the allocation has failed (S7_No), a new page allocation error is returned (S9). Then, the process returns to B in the flowchart of FIG.

一方、ページP1が連続ページの場合(S5_Yes)、ページP1のスペアページP3への置き換えを試みる(S10)。未使用のスペアページがあり、置き換え可能な場合(S11_Yes)、ページP1の内容をスペアページP3へ移動する。そして、ページP1のアドレスをスペアページP3のアドレスに変換するように、メモリ制御装置のアドレス変換部を更新する(S12)。置き換え不可の場合(S11_No)、スペアページの置き換えエラーを返す(S13)。そして、図7のフローチャートのBへ戻り終了する。   On the other hand, when the page P1 is a continuous page (S5_Yes), replacement of the page P1 with the spare page P3 is attempted (S10). If there is an unused spare page that can be replaced (S11_Yes), the contents of page P1 are moved to spare page P3. Then, the address conversion unit of the memory control device is updated so as to convert the address of page P1 into the address of spare page P3 (S12). If the replacement is not possible (S11_No), a spare page replacement error is returned (S13). Then, the process returns to B in the flowchart of FIG.

図9は、本実施形態の情報処理システムにおけるブロックの割り当て処理のフローチャートである。ブロックの割り当て要求を受け取ると(S101)、OS等のソフトウェアは、フリーリストのブロックの割り当てを試みる(S102)。   FIG. 9 is a flowchart of block allocation processing in the information processing system of this embodiment. When a block allocation request is received (S101), software such as an OS tries to allocate a free list block (S102).

フリーリストのブロックを取得できた場合(S103_Yes)、その取得ブロックを返す(S107)。一方、フリーリストのブロックを取得できなかった場合(S103_No)、バッドリストのブロックの割り当てを試みる(S104)。   When the free list block is acquired (S103_Yes), the acquired block is returned (S107). On the other hand, if a free list block could not be acquired (S103_No), an attempt is made to allocate a bad list block (S104).

バッドリストのブロックを取得できた場合(S105_Yes)、その取得ブロックを返す(S107)。一方、バッドリストのブロックを取得できなかった場合(105_No)、割り当て失敗としてNULLを返す(S106)。   When the bad list block is acquired (S105_Yes), the acquired block is returned (S107). On the other hand, if a bad list block could not be acquired (105_No), NULL is returned as an allocation failure (S106).

図10は、本実施形態の情報処理システムにおけるフリーリストのブロックの割り当て処理のフローチャートである。まず、2のM乗のページサイズのブロックの割り当て要求を受けると(S201)、OS等のソフトウェアは、N≧Mの条件のもと、2のN乗のページサイズのブロックの取得を試みる(S202)。この時、できるだけ小さなブロックを取得するように、小さいオーダーのフリーリストからブロックを調べていく。   FIG. 10 is a flowchart of free list block allocation processing in the information processing system of this embodiment. First, upon receiving a request to allocate a block having a page size of 2 to the power of M (S201), software such as the OS tries to acquire a block having a page size of the power of 2N under the condition of N ≧ M ( S202). At this time, in order to obtain as small a block as possible, the block is examined from a small order free list.

2のN乗のブロックを取得できなかった場合(S203_No)、割り当て失敗としてNULLを返す(S204)。   If a 2 N block cannot be obtained (S203_No), NULL is returned as an allocation failure (S204).

一方、2のN乗のブロックを取得できた場合(S203_Yes)、ブロックサイズを調べる。ブロックサイズが要求サイズと等しい場合、すなわちN=Mの場合(S205_Yes)、取得ブロックを返す(S207)。一方ブロックサイズが要求サイズより大きい場合、すなわちN>Mの場合(S205_No)、不要なブロックを解放し(S206)、取得ブロックを返す(S207)。   On the other hand, when a 2 N block can be acquired (S203_Yes), the block size is checked. When the block size is equal to the requested size, that is, when N = M (S205_Yes), an acquisition block is returned (S207). On the other hand, when the block size is larger than the requested size, that is, when N> M (S205_No), an unnecessary block is released (S206), and an acquired block is returned (S207).

図11は、本実施形態の情報処理システムにおけるバッドリストのブロックの割り当て処理のフローチャートである。まず、2のM乗のページサイズのブロックの割り当て要求を受けると(S301)、OS等のソフトウェアは、N≧Mの条件のもと、2のN乗のページサイズのブロックの取得を試みる(S302)。この時、できるだけ小さなブロックを取得するように、小さいオーダーのバッドリストからブロックを調べていく。   FIG. 11 is a flowchart of block list allocation processing in the information processing system of this embodiment. First, upon receiving an allocation request for a block having a page size of M to the power of 2 (S301), software such as the OS tries to acquire a block having a page size of the power of 2N under the condition of N ≧ M ( S302). At this time, in order to obtain as small a block as possible, the block is examined from a bad order bad list.

2のN乗のブロックを取得できなかった場合(S303_No)、割り当て失敗としてNULLを返す(S304)。   If a 2 N block cannot be acquired (S303_No), NULL is returned as an allocation failure (S304).

一方、2のN乗のブロックを取得できた場合(S303_Yes)、プロセスCに進む。図12は、プロセスCを示すフローチャートである。プロセスCでは、まず、ブロックサイズを調べる。そして、ブロックサイズが要求サイズと等しい場合(N=Mの場合、S305_Yes)、取得ブロックにバッドページがあるか調べる(S307)。一方、ブロックサイズが要求サイズより大きい場合(N>Mの場合、S305_No)、不要なブロックを解放し(S306)、取得ブロックにバッドページがあるか調べる(S307)。尚、不要なブロックを解放する処理の際に、取得するブロックに、できるだけバッドページが含まれないように制御し、スペアページの利用を抑えてもよい。   On the other hand, if a 2 N block can be acquired (S303_Yes), the process proceeds to process C. FIG. 12 is a flowchart showing the process C. In process C, the block size is first examined. If the block size is equal to the requested size (if N = M, S305_Yes), it is checked whether there is a bad page in the acquired block (S307). On the other hand, if the block size is larger than the requested size (if N> M, S305_No), an unnecessary block is released (S306), and it is checked whether there is a bad page in the acquired block (S307). In the process of releasing an unnecessary block, control may be performed so that a bad page is not included in the acquired block as much as possible to suppress the use of a spare page.

S307では、取得ブロックにバッドページがあるかを調べる。そしてバッドページが含まれない場合(S307_No)、取得ブロックを返し(S311)、図11のフローチャートのDに戻り終了する。   In S307, it is checked whether there is a bad page in the acquired block. If the bad page is not included (S307_No), the acquisition block is returned (S311), and the process returns to D in the flowchart of FIG.

一方、バッドページが含まれる場合(S307_Yes)、バッドページのスペアページへの置き換えを試みる(S308)。ここで、未使用のスペアページがあり、置き換え可能な場合(S309_Yes)、バッドページのアドレスをスペアページのアドレスに変換するように、メモリ制御装置のアドレス変換部を更新する(S310)。そして、取得ブロックを返し(S311)、図11のフローチャートのDに戻る。一方、置き換え不可の場合(S309_No)、取得したブロックを解放し(S312)、図11のフローチャートのEに戻り、割り当て失敗としてNULLを返して(S304)、終了する。   On the other hand, if a bad page is included (S307_Yes), an attempt is made to replace the bad page with a spare page (S308). If there is an unused spare page and it can be replaced (S309_Yes), the address conversion unit of the memory control device is updated so as to convert the bad page address into the spare page address (S310). And an acquisition block is returned (S311) and it returns to D of the flowchart of FIG. On the other hand, if the replacement is not possible (S309_No), the acquired block is released (S312), the process returns to E in the flowchart of FIG. 11, returns NULL as an allocation failure (S304), and ends.

図13は、本実施形態の情報処理システムにおけるブロックの解放処理のフローチャートである。まず、2のM乗のページサイズのブロックの開放要求を受けると(S401)、OS等のソフトウェアは、N≧Mの条件のもと、2のN乗のページサイズのブロックへ統合する(S402)。ここで、小さいオーダーのフリーリストまたはバッドリストのバディブロックから順次調べ、できるだけ大きなブロックに統合していく。
統合したブロックにバッドページが含まれない場合(S403_No)、そのブロックをフリーリストにつなぐ(S404)。
FIG. 13 is a flowchart of block release processing in the information processing system of this embodiment. First, upon receiving a request to release a block having a page size of M to the power of 2 (S401), software such as the OS integrates the block with a page size of N to the power of 2 under the condition of N ≧ M (S402). ). Here, the buddy blocks in the small order free list or the bad list are sequentially checked and integrated into as large a block as possible.
When a bad page is not included in the integrated block (S403_No), the block is connected to the free list (S404).

一方、統合したブロックにバッドページが含まれる場合(S403_Yes)、バッドページはスペアページに置き換えられているかを調べる(S405)。スペアページに置き換えられているかを調べる方法として、たとえば、ページ記述子にPG_spareフラグを設け、スペアページの置き換えられている場合に、PG_spareフラグを1に設定してもよい。   On the other hand, if a bad page is included in the integrated block (S403_Yes), it is checked whether the bad page is replaced with a spare page (S405). As a method for checking whether or not a spare page has been replaced, for example, a PG_spare flag may be provided in the page descriptor, and the PG_spare flag may be set to 1 when the spare page is replaced.

スペアページに置き換えられていない場合(S405_No)、ブロックをバッドリストにつなぐ(S407)。   If it has not been replaced with a spare page (S405_No), the block is connected to the bad list (S407).

一方、スペアページに置き換えられている場合(S405_Yes)、スペアページを解放する(S406)。スペアページの解放処理は、バッドページとスペアページの対応関係を、アドレス変換部から削除する処理を含む。そして、ブロックをバッドリストへつなぐ(S407)。   On the other hand, if the spare page has been replaced (S405_Yes), the spare page is released (S406). Spare page release processing includes processing for deleting the correspondence between bad pages and spare pages from the address translation unit. Then, the block is connected to the bad list (S407).

尚、スペアページの管理は、メモリ制御装置等のハードウェア、もしくは、OS等のソフトウェアを用いてもよい。   Spare page management may be performed using hardware such as a memory control device or software such as an OS.

(効果)
本実施形態の情報処理システムは、物理的に連続したページを割り当てる必要がある場合、オンデマンドで、バッドページをスペアページに置き換える。これにより、複数のバッドページがスペアページを時分割で共有することができる。さらに、フリーリスト、バッドリストの順にページの割り当てを試みることにより、スペアページの利用を抑える。これらにより、長期間の運用においても必要なスペアメモリの容量を低減できることが期待される。
(effect)
When it is necessary to allocate physically continuous pages, the information processing system of this embodiment replaces bad pages with spare pages on demand. Thereby, a plurality of bad pages can share a spare page in a time-sharing manner. Furthermore, the use of spare pages is suppressed by trying to allocate pages in the order of free list and bad list. As a result, it is expected that the required spare memory capacity can be reduced even during long-term operation.

よって、本実施形態の情報処理システムは、小容量のスペアメモリで長期間運用できる不揮発性メモリを備えた情報処理システを提供することができる。   Therefore, the information processing system of this embodiment can provide an information processing system including a nonvolatile memory that can be operated for a long time with a small-capacity spare memory.

上述した第1および第2の実施形態の処理をコンピュータに実行させるプログラムおよび該プログラムを格納した記録媒体も本発明の範囲に含む。記録媒体としては、例えば、磁気ディスク、磁気テープ、光ディスク、光磁気ディスク、半導体メモリ、などを用いることができる。   A program for causing a computer to execute the processes of the first and second embodiments described above and a recording medium storing the program are also included in the scope of the present invention. As the recording medium, for example, a magnetic disk, a magnetic tape, an optical disk, a magneto-optical disk, a semiconductor memory, or the like can be used.

上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。   A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.

(付記1)
不揮発性メモリと、
前記不揮発性メモリを制御するメモリ制御手段と、
前記不揮発性メモリの中のエラーが増加傾向にある不揮発性メモリセルを含むページをバッドページとし、前記バッドページを含む連続ページからなるブロックを集めたバッドリストと、
前記バッドページを含まない連続ページからなるブロックを集めたフリーリストと、
を有し、
前記メモリ制御手段は、
ブロックの割り当て処理時に、前記フリーリストのブロックの割り当て処理を先に試み、前記フリーリストのブロックの割り当てができない場合に、前記バッドリストのブロックの割り当て処理を試みる
ことを有することを特徴とする情報処理システム。
(Appendix 1)
Non-volatile memory;
Memory control means for controlling the nonvolatile memory;
A page including non-volatile memory cells in which errors in the non-volatile memory tend to increase is defined as a bad page, and a bad list in which blocks including continuous pages including the bad page are collected;
A free list in which blocks consisting of continuous pages not including the bad page are collected;
Have
The memory control means includes
In the block allocation process, the free list block allocation process is tried first, and when the free list block allocation is impossible, the bad list block allocation process is attempted. Processing system.

(付記2)
スペアページを構成する不揮発性スペアメモリと、
ページ単位でページのアドレスを変換するアドレス変換部と
を有し、
前記アドレス変換部は、
前記バッドリストのブロックの割り当て処理時に、前記バッドページのアドレスを前記スペアページのアドレスに変換する
ことを特徴とする付記1に記載の情報処理システム。
(Appendix 2)
A nonvolatile spare memory constituting a spare page; and
An address conversion unit that converts the address of the page in page units,
The address conversion unit
The information processing system according to appendix 1, wherein the bad page address is converted into the spare page address during block assignment processing of the bad list.

(付記3)
前記メモリ制御手段が、
ブロックの解放処理時に、当該ブロックに前記スペアページに置き換えられた前記バッドページがある場合、前記バッドページと前記スペアページとの対応関係を前記アドレス変換部から削除する
ことを特徴とする付記2に記載の情報処理システム。
(Appendix 3)
The memory control means;
In the block release processing, if the block has the bad page replaced with the spare page, the correspondence between the bad page and the spare page is deleted from the address conversion unit. The information processing system described.

(付記4)
前記メモリ制御手段が、
前記バッドページの登録処理時に、前記バッドページが使用中であり、かつ連続ページの場合は、前記バッドページの前記スペアページへの置き換えを試み、
前記スペアページへの置き換えが可能な場合、前記バッドページの内容を前記スペアページへ移動し、
前記バッドページのアドレスを前記スペアページのアドレスに変換するように前記アドレス変換部を更新する
ことを特徴とする付記3に記載の情報処理システム。
(Appendix 4)
The memory control means is
During the bad page registration process, if the bad page is in use and is a continuous page, an attempt is made to replace the bad page with the spare page,
If the replacement to the spare page is possible, the content of the bad page is moved to the spare page,
The information processing system according to appendix 3, wherein the address conversion unit is updated so as to convert the address of the bad page into the address of the spare page.

(付記5)
前記メモリ制御手段が、
前記バッドページの登録処理時に、前記バッドページが使用中であり、非連続ページの場合、新規ページの割り当てを試み、
前記新規ページの割り当てが可能な場合、前記バッドページの内容を前記新規ページへ移動し、
前記バッドページのアドレスを前記新規ページのアドレスに変換するようにページテーブルエントリを更新する
ことを特徴とする付記4に記載の情報処理システム。
(Appendix 5)
The memory control means is
During the bad page registration process, if the bad page is in use and is a non-continuous page, an attempt is made to allocate a new page,
If assignment of the new page is possible, move the contents of the bad page to the new page,
The information processing system according to appendix 4, wherein a page table entry is updated so as to convert the address of the bad page into the address of the new page.

(付記6)
前記メモリ制御手段が、
前記バッドページの登録処理時に、前記バッドページが未使用の場合、前記バッドページを含むブロックを前記バッドリストにつなげる
ことを特徴とする付記5に記載の情報処理システム。
(Appendix 6)
The memory control means is
6. The information processing system according to appendix 5, wherein, when the bad page is not used during the bad page registration process, a block including the bad page is connected to the bad list.

(付記7)
前記メモリ制御手段が、
前記バッドリストのブロックの割り当て処理時に、前記バッドリストから取得したブロックサイズが、要求ブロックサイズより大きい場合、不要なブロックを解放し、
前記不要なブロックを解放する時には、取得するブロックに、できるだけ前記バッドページが含まれないように制御する
ことを特徴とする付記6に記載の情報処理システム。
(Appendix 7)
The memory control means is
When the block size acquired from the bad list is larger than the requested block size during the block allocation process of the bad list, an unnecessary block is released,
7. The information processing system according to appendix 6, wherein when the unnecessary block is released, control is performed so that the acquired block does not include the bad page as much as possible.

(付記8)
前記メモリ制御手段が、
スイッチ部と、エラー検出部と、バッドページ管理部とを備え、
前記スイッチ部は、前記アドレス変換部によって変換されたアドレス信号によって指定されたメモリセルの読み出しデータを選択して、前記エラー検出部に供給し、
前記エラー検出部は、エラーが起こったメモリセルを検出し、エラー情報を前記バッドページ管理部に供給し、
前記バッドページ管理部は、エラーが増加傾向にある前記不揮発性メモリセルを含むページを前記バッドページとして登録する
ことを特徴とする付記7に記載の情報処理システム。
(Appendix 8)
The memory control means is
A switch unit, an error detection unit, and a bad page management unit;
The switch unit selects read data of the memory cell specified by the address signal converted by the address conversion unit, and supplies the read data to the error detection unit,
The error detection unit detects a memory cell in which an error has occurred, and supplies error information to the bad page management unit.
The information processing system according to appendix 7, wherein the bad page management unit registers, as the bad page, a page including the nonvolatile memory cells in which errors tend to increase.

(付記9)
情報処理を実行するCPUを有し、
前記バッドページ管理部が、
前記バッドページの登録を前記CPUへ通知する通知部を有する
ことを特徴とする付記7または付記8に記載の情報処理システム。
(Appendix 9)
A CPU that executes information processing;
The bad page management unit
The information processing system according to appendix 7 or appendix 8, further comprising a notification unit that notifies the CPU of registration of the bad page.

(付記10)
前記CPUと前記メモリ制御手段とを接続するバスと、
前記メモリ制御手段と、前記不揮発性メモリおよび前記不揮発性スペアメモリとを接続するローカルバスと
を有することを特徴とする付記9に記載の情報処理システム。
(Appendix 10)
A bus connecting the CPU and the memory control means;
The information processing system according to claim 9, further comprising: a local bus that connects the memory control unit and the nonvolatile memory and the nonvolatile spare memory.

(付記11)
不揮発性メモリを制御し、
前記不揮発性メモリの中のエラーが増加傾向にある不揮発性メモリセルを含むページをバッドページとし、前記バッドページを含む連続ページからなるブロックを集めたバッドリストを作成し、
前記バッドページを含まない連続ページからなるブロックを集めたフリーリストを作成し、
ブロックの割り当て処理時に、前記フリーリストのブロックの割り当て処理を先に試み、
前記フリーリストのブロックの割り当てができない場合に、前記バッドリストのブロックの割り当て処理を試みる
ことを特徴とする情報処理システムの制御方法。
(Appendix 11)
Control non-volatile memory,
A page including a nonvolatile memory cell in which errors in the nonvolatile memory tend to increase is defined as a bad page, and a bad list is created by collecting blocks including continuous pages including the bad page,
Create a free list that collects blocks of consecutive pages that do not include the bad page,
At the time of block allocation processing, first try block allocation processing of the free list,
A control method for an information processing system, characterized in that, when the free list block cannot be allocated, an attempt is made to allocate the bad list block.

(付記12)
不揮発性スペアメモリを用いたスペアページを構成し、
ページ単位で前記ページのアドレスを変換し、
前記アドレスの変換では、
前記バッドリストのブロックの割り当て処理時に、前記バッドページのアドレスを前記スペアページのアドレスに変換する
ことを特徴とする付記11に記載の情報処理システムの制御方法。
(Appendix 12)
Configure spare pages using non-volatile spare memory,
Convert the address of the page in page units,
In the conversion of the address,
12. The information processing system control method according to appendix 11, wherein an address of the bad page is converted into an address of the spare page during block assignment processing of the bad list.

(付記13)
ブロックの解放処理時に、当該ブロックに前記スペアページに置き換えられた前記バッドページがある場合、前記バッドページと前記スペアページとの対応関係を前記アドレス変換部から削除する
ことを特徴とする付記12に記載の情報処理システムの制御方法。
(Appendix 13)
The appendix 12 is characterized in that, when the block has the bad page replaced with the spare page during the block release processing, the correspondence relationship between the bad page and the spare page is deleted from the address conversion unit. A control method of the information processing system described.

(付記14)
前記バッドページの登録処理時に、前記バッドページが使用中であり、かつ連続ページの場合は、前記バッドページの前記スペアページへの置き換えを試み、
前記スペアページへの置き換えが可能な場合、前記バッドページの内容を前記スペアページへ移動し、
前記バッドページのアドレスを前記スペアページのアドレスに変換するように前記アドレス変換部を更新する
ことを特徴とする付記13に記載の情報処理システムの制御方法。
(Appendix 14)
During the bad page registration process, if the bad page is in use and is a continuous page, an attempt is made to replace the bad page with the spare page,
If the replacement to the spare page is possible, the content of the bad page is moved to the spare page,
14. The information processing system control method according to appendix 13, wherein the address conversion unit is updated so as to convert the address of the bad page into the address of the spare page.

(付記15)
前記バッドページの登録処理時に、前記バッドページが使用中であり、非連続ページの場合、新規ページの割り当てを試み、
前記新規ページの割り当てが可能な場合、前記バッドページの内容を前記新規ページへ移動し、
前記バッドページのアドレスを前記新規ページのアドレスに変換するようにページテーブルエントリを更新する
ことを特徴とする付記14に記載の情報処理システムの制御方法。
(Appendix 15)
During the bad page registration process, if the bad page is in use and is a non-continuous page, an attempt is made to allocate a new page,
If assignment of the new page is possible, move the contents of the bad page to the new page,
15. The information processing system control method according to appendix 14, wherein a page table entry is updated so as to convert an address of the bad page into an address of the new page.

(付記16)
前記バッドページの登録処理時に、前記バッドページが未使用の場合、前記バッドページを含むブロックを前記バッドリストにつなげる
ことを特徴とする付記15に記載の情報処理システムの制御方法。
(Appendix 16)
16. The information processing system control method according to appendix 15, wherein, when the bad page is not used during the bad page registration process, a block including the bad page is connected to the bad list.

(付記17)
前記バッドリストのブロックの割り当て処理時に、前記バッドリストから取得したブロックサイズが、要求ブロックサイズより大きい場合、不要なブロックを解放し、
不要なブロックを解放する時には、取得するブロックに、できるだけ前記バッドページが含まれないように制御する
ことを特徴とする付記16に記載の情報処理システムの制御方法。
(Appendix 17)
When the block size acquired from the bad list is larger than the requested block size during the block allocation process of the bad list, an unnecessary block is released,
17. The information processing system control method according to appendix 16, wherein when an unnecessary block is released, control is performed so that the acquired block does not include the bad page as much as possible.

(付記18)
スイッチ部が、前記アドレス変換部によって変換されたアドレス信号によって指定されたメモリセルの読み出しデータを選択して、エラー検出部に供給し、
前記エラー検出部は、エラーが起こったメモリセルを検出し、エラー情報をバッドページ管理部に供給し、
前記バッドページ管理部は、エラーが増加傾向にある前記不揮発性メモリセルを含むページを前記バッドページとして登録する
ことを特徴とする付記17に記載の情報処理システムの制御方法。
(Appendix 18)
The switch unit selects the read data of the memory cell specified by the address signal converted by the address conversion unit, and supplies it to the error detection unit,
The error detection unit detects a memory cell in which an error has occurred, and supplies error information to a bad page management unit.
18. The information processing system control method according to appendix 17, wherein the bad page management unit registers a page including the nonvolatile memory cell in which errors tend to increase as the bad page.

(付記19)
前記バッドページ管理部が、
前記バッドページの登録をCPUへ通知する
ことを特徴とする付記18に記載の情報処理システムの制御方法。
(Appendix 19)
The bad page management unit
19. The information processing system control method according to appendix 18, wherein registration of the bad page is notified to the CPU.

(付記20)
不揮発性メモリを制御するステップと、
前記不揮発性メモリの中のエラーが増加傾向にある不揮発性メモリセルを含むページをバッドページとし、前記バッドページを含む連続ページからなるブロックを集めたバッドリストを作成するステップと、
前記バッドページを含まない連続ページからなるブロックを集めたフリーリストを作成するステップと、
ブロックの割り当て処理時に、前記フリーリストのブロックの割り当て処理を先に試みるステップと、
前記フリーリストのブロックの割り当てができない場合に、前記バッドリストのブロックの割り当て処理を試みるステップと
を有することを特徴とする情報処理システムの制御プログラム。
(Appendix 20)
Controlling the non-volatile memory;
Creating a bad list in which blocks including non-volatile memory cells in the non-volatile memory that have a tendency to increase are set as bad pages, and a block including continuous pages including the bad pages is collected;
Creating a free list of blocks composed of continuous pages that do not include the bad page;
At the time of block allocation processing, the step of first trying block allocation processing of the free list;
A control program for an information processing system, comprising: trying to assign a block of the bad list when the free list block cannot be assigned.

以上、本発明の好ましい実施形態を説明したが、本発明はこれに限定されるものではない。請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲に含まれることはいうまでもない。   As mentioned above, although preferable embodiment of this invention was described, this invention is not limited to this. It goes without saying that various modifications are possible within the scope of the invention described in the claims, and these are also included in the scope of the present invention.

1、210 不揮発性メモリ
2 メモリ制御手段
3 バッドリスト
4 フリーリスト
100 CPU
200 主記憶装置
220 メモリ制御装置
230 揮発性メモリ
300 2次記憶装置
400 入出力装置
500 バス
600 ローカルバス
1000 情報処理システム
1,210 Non-volatile memory 2 Memory control means 3 Bad list 4 Free list 100 CPU
200 Main Storage Device 220 Memory Control Device 230 Volatile Memory 300 Secondary Storage Device 400 Input / Output Device 500 Bus 600 Local Bus 1000 Information Processing System

Claims (10)

不揮発性メモリと、
前記不揮発性メモリを制御するメモリ制御手段と、
前記不揮発性メモリの中のエラーが増加傾向にある不揮発性メモリセルを含むページをバッドページとし、前記バッドページを含む連続ページからなるブロックを集めたバッドリストと、
前記バッドページを含まない連続ページからなるブロックを集めたフリーリストと、
を有し、
前記メモリ制御手段は、
ブロックの割り当て処理時に、前記フリーリストのブロックの割り当て処理を先に試み、前記フリーリストのブロックの割り当てができない場合に、前記バッドリストのブロックの割り当て処理を試みる
ことを有することを特徴とする情報処理システム。
Non-volatile memory;
Memory control means for controlling the nonvolatile memory;
A page including non-volatile memory cells in which errors in the non-volatile memory tend to increase is defined as a bad page, and a bad list in which blocks including continuous pages including the bad page are collected;
A free list in which blocks consisting of continuous pages not including the bad page are collected;
Have
The memory control means includes
In the block allocation process, the free list block allocation process is tried first, and when the free list block allocation is impossible, the bad list block allocation process is attempted. Processing system.
スペアページを構成する不揮発性スペアメモリと、
ページ単位でページのアドレスを変換するアドレス変換部と
を有し、
前記アドレス変換部は、
前記バッドリストのブロックの割り当て処理時に、前記バッドページのアドレスを前記スペアページのアドレスに変換する
ことを特徴とする請求項1に記載の情報処理システム。
A nonvolatile spare memory constituting a spare page; and
An address conversion unit that converts the address of the page in page units,
The address conversion unit
The information processing system according to claim 1, wherein the bad page address is converted into the spare page address when the bad list block is allocated.
前記メモリ制御手段が、
ブロックの解放処理時に、当該ブロックに前記スペアページに置き換えられた前記バッドページがある場合、前記バッドページと前記スペアページとの対応関係を前記アドレス変換部から削除する
ことを特徴とする請求項2に記載の情報処理システム。
The memory control means;
3. The correspondence relationship between the bad page and the spare page is deleted from the address conversion unit when the block has the bad page replaced with the spare page during the block release process. Information processing system described in 1.
前記メモリ制御手段が、
前記バッドページの登録処理時に、前記バッドページが使用中であり、かつ連続ページの場合は、前記バッドページの前記スペアページへの置き換えを試み、
前記スペアページへの置き換えが可能な場合、前記バッドページの内容を前記スペアページへ移動し、
前記バッドページのアドレスを前記スペアページのアドレスに変換するように前記アドレス変換部を更新する
ことを特徴とする請求項3に記載の情報処理システム。
The memory control means is
During the bad page registration process, if the bad page is in use and is a continuous page, an attempt is made to replace the bad page with the spare page,
If the replacement to the spare page is possible, the content of the bad page is moved to the spare page,
The information processing system according to claim 3, wherein the address conversion unit is updated so as to convert the address of the bad page into the address of the spare page.
前記メモリ制御手段が、
前記バッドページの登録処理時に、前記バッドページが使用中であり、非連続ページの場合、新規ページの割り当てを試み、
前記新規ページの割り当てが可能な場合、前記バッドページの内容を前記新規ページへ移動し、
前記バッドページのアドレスを前記新規ページのアドレスに変換するようにページテーブルエントリを更新する
ことを特徴とする請求項4に記載の情報処理システム。
The memory control means;
During the bad page registration process, if the bad page is in use and is a non-continuous page, an attempt is made to allocate a new page,
If assignment of the new page is possible, move the contents of the bad page to the new page,
5. The information processing system according to claim 4, wherein a page table entry is updated so as to convert the address of the bad page into the address of the new page.
前記メモリ制御手段が、
前記バッドページの登録処理時に、前記バッドページが未使用の場合、前記バッドページを含むブロックを前記バッドリストにつなげる
ことを特徴とする請求項5に記載の情報処理システム。
The memory control means is
6. The information processing system according to claim 5, wherein, when the bad page is not used during the bad page registration process, a block including the bad page is connected to the bad list.
前記メモリ制御手段が、
前記バッドリストのブロックの割り当て処理時に、前記バッドリストから取得したブロックサイズが、要求ブロックサイズより大きい場合、不要なブロックを解放し、
前記不要なブロックを解放する時には、取得するブロックに、できるだけ前記バッドページが含まれないように制御する
ことを特徴とする請求項6に記載の情報処理システム。
The memory control means is
When the block size acquired from the bad list is larger than the requested block size during the block allocation process of the bad list, an unnecessary block is released,
The information processing system according to claim 6, wherein when the unnecessary block is released, the acquired block is controlled so as not to include the bad page as much as possible.
前記メモリ制御手段が、
スイッチ部と、エラー検出部と、バッドページ管理部とを備え、
前記スイッチ部は、前記アドレス変換部によって変換されたアドレス信号によって指定されたメモリセルの読み出しデータを選択して、前記エラー検出部に供給し、
前記エラー検出部は、エラーが起こったメモリセルを検出し、エラー情報を前記バッドページ管理部に供給し、
前記バッドページ管理部は、エラーが増加傾向にある前記不揮発性メモリセルを含むページを前記バッドページとして登録する
ことを特徴とする請求項7に記載の情報処理システム。
The memory control means is
A switch unit, an error detection unit, and a bad page management unit;
The switch unit selects read data of the memory cell specified by the address signal converted by the address conversion unit, and supplies the read data to the error detection unit,
The error detection unit detects a memory cell in which an error has occurred, and supplies error information to the bad page management unit.
The information processing system according to claim 7, wherein the bad page management unit registers, as the bad page, a page including the nonvolatile memory cells in which errors tend to increase.
不揮発性メモリを制御し、
前記不揮発性メモリの中のエラーが増加傾向にある不揮発性メモリセルを含むページをバッドページとし、前記バッドページを含む連続ページからなるブロックを集めたバッドリストを作成し、
前記バッドページを含まない連続ページからなるブロックを集めたフリーリストを作成し、
ブロックの割り当て処理時に、前記フリーリストのブロックの割り当て処理を先に試み、
前記フリーリストのブロックの割り当てができない場合に、前記バッドリストのブロックの割り当て処理を試みる
ことを特徴とする情報処理システムの制御方法。
Control non-volatile memory,
A page including a nonvolatile memory cell in which errors in the nonvolatile memory tend to increase is defined as a bad page, and a bad list is created by collecting blocks including continuous pages including the bad page,
Create a free list that collects blocks of consecutive pages that do not include the bad page,
At the time of block allocation processing, first try block allocation processing of the free list,
A control method for an information processing system, characterized in that, when the free list block cannot be allocated, an attempt is made to allocate the bad list block.
不揮発性メモリを制御するステップと、
前記不揮発性メモリの中のエラーが増加傾向にある不揮発性メモリセルを含むページをバッドページとし、前記バッドページを含む連続ページからなるブロックを集めたバッドリストを作成するステップと、
前記バッドページを含まない連続ページからなるブロックを集めたフリーリストを作成するステップと、
ブロックの割り当て処理時に、前記フリーリストのブロックの割り当て処理を先に試みるステップと、
前記フリーリストのブロックの割り当てができない場合に、前記バッドリストのブロックの割り当て処理を試みるステップと
を有することを特徴とする情報処理システムの制御プログラム。
Controlling the non-volatile memory;
Creating a bad list in which blocks including non-volatile memory cells in the non-volatile memory that have a tendency to increase are set as bad pages, and a block including continuous pages including the bad pages is collected;
Creating a free list of blocks composed of continuous pages that do not include the bad page;
At the time of block allocation processing, the step of first trying block allocation processing of the free list;
A control program for an information processing system, comprising: trying to assign a block of the bad list when the free list block cannot be assigned.
JP2017013127A 2017-01-27 2017-01-27 Information processing system and control method of information processing system Active JP6819319B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017013127A JP6819319B2 (en) 2017-01-27 2017-01-27 Information processing system and control method of information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017013127A JP6819319B2 (en) 2017-01-27 2017-01-27 Information processing system and control method of information processing system

Publications (2)

Publication Number Publication Date
JP2018120522A true JP2018120522A (en) 2018-08-02
JP6819319B2 JP6819319B2 (en) 2021-01-27

Family

ID=63043867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017013127A Active JP6819319B2 (en) 2017-01-27 2017-01-27 Information processing system and control method of information processing system

Country Status (1)

Country Link
JP (1) JP6819319B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245163A (en) * 2008-03-31 2009-10-22 Tdk Corp Memory controller, flash memory system having memory controller and control method for flash memory
JP2010086106A (en) * 2008-09-30 2010-04-15 Tdk Corp Memory controller, flash memory system with memory controller, and method for controlling flash memory
JP2013222236A (en) * 2012-04-13 2013-10-28 Hitachi Ltd Management method of memory, storage device, and computer mounting the same
JP2016514883A (en) * 2013-04-12 2016-05-23 クアルコム,インコーポレイテッド System and method for improving flash memory reliability and lifetime
US9417809B1 (en) * 2015-12-07 2016-08-16 International Business Machines Corporation Efficient management of page retirement in non-volatile memory utilizing page retirement classes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245163A (en) * 2008-03-31 2009-10-22 Tdk Corp Memory controller, flash memory system having memory controller and control method for flash memory
JP2010086106A (en) * 2008-09-30 2010-04-15 Tdk Corp Memory controller, flash memory system with memory controller, and method for controlling flash memory
JP2013222236A (en) * 2012-04-13 2013-10-28 Hitachi Ltd Management method of memory, storage device, and computer mounting the same
JP2016514883A (en) * 2013-04-12 2016-05-23 クアルコム,インコーポレイテッド System and method for improving flash memory reliability and lifetime
US9417809B1 (en) * 2015-12-07 2016-08-16 International Business Machines Corporation Efficient management of page retirement in non-volatile memory utilizing page retirement classes

Also Published As

Publication number Publication date
JP6819319B2 (en) 2021-01-27

Similar Documents

Publication Publication Date Title
JP7366795B2 (en) Memory system and control method
US8458514B2 (en) Memory management to accommodate non-maskable failures
JP7159069B2 (en) Memory system and control method
EP2396729B1 (en) Memory system and method of controlling memory system
TW201926044A (en) Memory system and method for controlling nonvolatile memory
JP7358594B2 (en) memory system
CN116414314A (en) Storage system and control method of nonvolatile memory
US20220066693A1 (en) System and method of writing to nonvolatile memory using write buffers
KR20100091544A (en) Memory system and wear leveling method thereof
KR20120030137A (en) Memory system having persistent garbage collection
JP7353934B2 (en) Memory system and control method
US12045514B2 (en) Method of controlling nonvolatile memory by managing block groups
JP2022171208A (en) Memory system and control method
JP7392080B2 (en) memory system
JP2021033847A (en) Memory system and control method
TW202230110A (en) Memory system and method of controlling nonvolatile memory
JP2020123040A (en) Memory system and control method
US10235049B2 (en) Device and method to manage access method for memory pages
JP7077151B2 (en) Memory system
US11886727B2 (en) Memory system and method for controlling nonvolatile memory
JP6819319B2 (en) Information processing system and control method of information processing system
JP2023107418A (en) Storage device and storage system
JP6175566B2 (en) Storage system and storage control method
JP2009199242A (en) Memory controller, flash memory system equipped with memory controller, and control method for flash memory
JP6276208B2 (en) Memory system and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201214

R150 Certificate of patent or registration of utility model

Ref document number: 6819319

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150