JP7362863B2 - information processing equipment - Google Patents

information processing equipment Download PDF

Info

Publication number
JP7362863B2
JP7362863B2 JP2022144309A JP2022144309A JP7362863B2 JP 7362863 B2 JP7362863 B2 JP 7362863B2 JP 2022144309 A JP2022144309 A JP 2022144309A JP 2022144309 A JP2022144309 A JP 2022144309A JP 7362863 B2 JP7362863 B2 JP 7362863B2
Authority
JP
Japan
Prior art keywords
data
ssd
information
memory
storage device
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.)
Active
Application number
JP2022144309A
Other languages
Japanese (ja)
Other versions
JP2022171781A (en
Inventor
大輔 橋本
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.)
Kioxia Corp
Original Assignee
Kioxia 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
Priority claimed from JP2020086569A external-priority patent/JP6913797B2/en
Application filed by Kioxia Corp filed Critical Kioxia Corp
Priority to JP2022144309A priority Critical patent/JP7362863B2/en
Publication of JP2022171781A publication Critical patent/JP2022171781A/en
Application granted granted Critical
Publication of JP7362863B2 publication Critical patent/JP7362863B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)
  • Stored Programmes (AREA)

Description

本発明の実施形態は、情報処理装置に関する。 Embodiments of the present invention relate to an information processing device.

コンピュータシステムに用いられる外部記憶装置として、NAND型フラッシュメモリなどの不揮発性半導体メモリを搭載したSSD(Solid State Drive)が注目されている。フラッシュメモリは、磁気ディスク装置に比べ、高速、軽量などの利点を有している。SSD内には、複数のフラッシュメモリチップ、ホスト装置からの要求に応じて各フラッシュメモリチップのリード/ライト制御を行うコントローラ、各フラッシュメモリチップとホスト装置との間でデータ転送を行うためのバッファメモリ、電源回路、ホスト装置に対する接続インタフェースなどを備えている。 2. Description of the Related Art SSDs (Solid State Drives) equipped with nonvolatile semiconductor memory such as NAND flash memory are attracting attention as external storage devices used in computer systems. Flash memory has advantages over magnetic disk devices, such as high speed and light weight. Inside the SSD, there are multiple flash memory chips, a controller that performs read/write control of each flash memory chip in response to requests from the host device, and a buffer that transfers data between each flash memory chip and the host device. It is equipped with memory, a power supply circuit, a connection interface to the host device, etc.

特開2009-217603号公報Japanese Patent Application Publication No. 2009-217603 特開2008-090539号公報Japanese Patent Application Publication No. 2008-090539 特開2002-351621号公報Japanese Patent Application Publication No. 2002-351621 特開2006-18848号公報Japanese Patent Application Publication No. 2006-18848 特開平07-78102号公報Japanese Patent Application Publication No. 07-78102 特開2004-151785号公報Japanese Patent Application Publication No. 2004-151785 特開2005-190075号公報Japanese Patent Application Publication No. 2005-190075 特開2008-90539号公報Japanese Patent Application Publication No. 2008-90539 特開2001-75813号公報Japanese Patent Application Publication No. 2001-75813 特許第4489127号Patent No. 4489127 特許第4635092号Patent No. 4635092

ATA/ATAPI Command Set - 2 (ACS-2) d2015r6 Feb.22.2011http://www.t13.org/Documents/UploadedDocuments/docs2011/d2015r6-ATAATAPI_Command_Set_-_2_ACS-2.pdf ・73頁目~74頁目、290頁目~306頁目:SELF-MONITORING, ANALYSIS, AND REPORTING TECHNOLOGY (SMART) ・98頁目~99頁目、50頁目:Data Set Management Command (トリムコマンド) ・342頁目~365頁目:SCT Command TransportATA/ATAPI Command Set - 2 (ACS-2) d2015r6 Feb.22.2011http://www.t13.org/Documents/UploadedDocuments/docs2011/d2015r6-ATAATAPI_Command_Set_-_2_ACS-2.pdf ・Pages 73 to 74, Pages 290 to 306: SELF-MONITORING, ANALYSIS, AND REPORTING TECHNOLOGY (SMART) ・Pages 98 to 99, 50: Data Set Management Command (Trim Command) ・Pages 342 to 365: SCT Command Transport CrystalDiskInfoマニュアル(SMART情報による不揮発性記憶装置の健康状態のモニタソフト)http://crystalmark.info/software/CrystalDiskInfo/manual-ja/http://crystalmark.info/software/CrystalDiskInfo/manual-en/CrystalDiskInfo manual (software to monitor the health status of non-volatile storage devices using SMART information) http://crystalmark.info/software/CrystalDiskInfo/manual-ja/http://crystalmark.info/software/CrystalDiskInfo/manual-en/ Smartmontools(SMART情報による不揮発性記憶装置の健康状態のモニタソフト)http://sourceforge.net/apps/trac/smartmontools/wikiSmartmontools (software that monitors the health status of non-volatile storage devices using SMART information) http://sourceforge.net/apps/trac/smartmontools/wiki Samsung SSD Magician USER GUIDEhttp://www.samsungssd.com/faqSamsung SSD Magician USER GUIDEhttp://www.samsungssd.com/faq Intel Solid State Drive Toolboxhttp://downloadcenter.intel.com/Detail_Desc.aspx?lang=jpn&DwnldID=18455http://downloadcenter.intel.com/Detail_Desc.aspx?lang=eng &DwnldId=18455Intel Solid State Drive Toolboxhttp://downloadcenter.intel.com/Detail_Desc.aspx?lang=jpn&DwnldID=18455http://downloadcenter.intel.com/Detail_Desc.aspx?lang=eng &DwnldId=18455 S.M.A.R.T. attributes meaninghttp://www.ariolic.com/activesmart/smart-attributes/S.M.A.R.T. attributes meaninghttp://www.ariolic.com/activesmart/smart-attributes/ S.M.A.R.T. attributes meaninghttp://www.siguardian.com/products/siguardian/on_line_help/s_m_a_r_t_attribute_meaning.htmlS.M.A.R.T. attributes meaninghttp://www.siguardian.com/products/siguardian/on_line_help/s_m_a_r_t_attribute_meaning.html Self-Monitoring, Analysis and Reporting Technology :: Attributeshttp://smartlinux.sourceforge.net/smart/attributes.phpSelf-Monitoring, Analysis and Reporting Technology :: Attributeshttp://smartlinux.sourceforge.net/smart/attributes.php Serial ATA International Organization: Serial ATA Revision 3.1RC Clean DRAFT 2010.09.29 554頁~558頁 13.9 Phy Event Counters (Optional)Serial ATA International Organization: Serial ATA Revision 3.1RC Clean DRAFT 2010.09.29 Pages 554-558 13.9 Phy Event Counters (Optional)

本発明の一つの実施形態は、不揮発性記憶装置が寿命に近づいたときに、不揮発性記憶装置に対する書き込み動作を行わないようシステムを構築し、不揮発性記憶装置のさらなる信頼性劣化を防止し、不揮発性記憶装置のデータ破壊を防止する情報処理装置を提供することを目的とする。 One embodiment of the present invention is to construct a system so as not to perform a write operation on the nonvolatile storage device when the nonvolatile storage device approaches the end of its life, to prevent further reliability deterioration of the nonvolatile storage device, An object of the present invention is to provide an information processing device that prevents data destruction in a nonvolatile storage device.

上記課題を達成するために、実施形態に係る情報処理装置は、不揮発性半導体メモリと、揮発性半導体メモリと、前記不揮発性半導体メモリと前記揮発性半導体メモリを制御するためのコントローラ回路と、インタフェース回路と、を備える半導体記憶装置と、前記半導体記憶装置と接続可能であり、前記半導体記憶装置へ書き込み及び読み出し命令を送信するように構成されるホスト装置と、を備える。前記不揮発性半導体メモリは、データを記憶するためのメモリセルを備え、複数個の前記メモリセルを第1の単位として前記メモリセルに記録されたデータを電気的に消去可能である。前記不揮発性半導体メモリ及び前記揮発性半導体メモリの少なくとも一つは、前記インタフェース回路を介して前記ホスト装置から受信された論理アドレス情報に対応する前記不揮発性半導体メモリの物理アドレスを指定する第1情報を記録可能に構成される。前記コントローラ回路は、前記インタフェース回路を介して前記ホスト装置から書き込み命令を受信した際は、前記ホスト装置から受信したデータを用いて訂正符号を生成し、前記不揮発性半導体メモリに、前記データならびに前記訂正符号を記録し、かつ、前記インタフェース回路を介して前記ホスト装置から読み出し命令を受信した際は、前記第1情報を用いて前記不揮発性半導体メモリから読み込んだデータならびに対応する前記訂正符号に基づいて、前記読み出したデータを訂正可能に構成される。前記不揮発性半導体メモリは、第2情報、第3情報と、第4情報と、第5情報と、第6情報と、を記憶するように構成される。前記第2情報は、前記半導体記憶装置の使用時間総計に基づく。前記第3情報は、前記ホスト装置から受信した書き込み命令に応じて受信した書き込みデータの総量に基づく。前記第4情報は、前記ホスト装置から受信した読み込み命令に応じて前記不揮発性半導体メモリから読み出したデータの総量に基づく。前記第5情報は、前記コントローラ回路が、前記不揮発性半導体メモリから読み込んだデータを、対応する前記訂正符号を用いても、訂正することが出来なかったデータの個数に関する。前記第6情報は、前記不揮発性半導体メモリのうち、データを書き込むことが出来ないと判断されたメモリセルの個数に応じた情報を前記第1の単位で示した情報である。前記不揮発性半導体メモリには、第1のソフトウェア及び前記半導体記憶装置に対する書き込みコマンドを送信することを禁止する第2のソフトウェアが保存されている。前記ホスト装置は、前記半導体記憶装置から前記第1のソフトウェアを読み出して実行するように構成される。前記ホスト装置は、前記半導体記憶装置から前記第2情報乃至前記第6情報を含む複数の情報を取得し、前記取得した複数の情報の少なくとも1つに基づいて前記半導体記憶装置の残り寿命を計算するように構成される。前記ホスト装置は、前記計算された残り寿命に基づいて前記半導体記憶装置が寿命に到達したと判断する場合に、前記半導体記憶装置から前記第2のソフトウェアを読み出し前記第2のソフトウェアを実行するように構成される。 In order to achieve the above object, an information processing device according to an embodiment includes a nonvolatile semiconductor memory, a volatile semiconductor memory, a controller circuit for controlling the nonvolatile semiconductor memory and the volatile semiconductor memory, and an interface. and a host device that is connectable to the semiconductor memory device and configured to send write and read commands to the semiconductor memory device. The nonvolatile semiconductor memory includes memory cells for storing data, and can electrically erase data recorded in the memory cells using a plurality of the memory cells as a first unit. At least one of the nonvolatile semiconductor memory and the volatile semiconductor memory includes first information specifying a physical address of the nonvolatile semiconductor memory corresponding to logical address information received from the host device via the interface circuit. is configured so that it can be recorded. When the controller circuit receives a write command from the host device via the interface circuit, the controller circuit generates a correction code using the data received from the host device, and stores the data and the data in the nonvolatile semiconductor memory. When a correction code is recorded and a read command is received from the host device via the interface circuit, the data read from the nonvolatile semiconductor memory using the first information and the corresponding correction code are read. Accordingly, the read data can be corrected. The nonvolatile semiconductor memory is configured to store second information, third information, fourth information, fifth information, and sixth information. The second information is based on the total usage time of the semiconductor storage device. The third information is based on the total amount of write data received in response to the write command received from the host device. The fourth information is based on the total amount of data read from the nonvolatile semiconductor memory in response to a read command received from the host device. The fifth information relates to the number of pieces of data that could not be corrected even when the controller circuit used the corresponding correction code to read the data from the nonvolatile semiconductor memory. The sixth information is information indicating, in the first unit, information corresponding to the number of memory cells in the nonvolatile semiconductor memory that are determined to be unable to write data. The nonvolatile semiconductor memory stores first software and second software that prohibits sending a write command to the semiconductor storage device. The host device is configured to read and execute the first software from the semiconductor storage device. The host device acquires a plurality of information including the second information to the sixth information from the semiconductor storage device, and calculates the remaining life of the semiconductor storage device based on at least one of the acquired information. configured to do so. The host device reads the second software from the semiconductor storage device and executes the second software when determining that the semiconductor storage device has reached the end of its life based on the calculated remaining life. It is composed of

図1は、第1の実施形態のコンピュータシステムの機能構成例を示すブロック図である。FIG. 1 is a block diagram showing an example of the functional configuration of a computer system according to the first embodiment. 図2は、制御ツールをSSDに保存する場合のコンピュータシステムの機能構成例を示すブロック図である。FIG. 2 is a block diagram illustrating an example of a functional configuration of a computer system when a control tool is stored in an SSD. 図3は、制御ツールをその他の外部記憶装置に保存する場合のコンピュータシステムの機能構成例を示すブロック図である。FIG. 3 is a block diagram showing an example of the functional configuration of a computer system when the control tool is stored in another external storage device. 図4は、制御ツールをWEBからインストールする場合のコンピュータシステムの機能構成例を示すブロック図である。FIG. 4 is a block diagram showing an example of the functional configuration of a computer system when a control tool is installed from the web. 図5は、制御ツールを光学ドライブからインストールする場合のコンピュータシステムの機能構成例を示すブロック図である。FIG. 5 is a block diagram showing an example of the functional configuration of a computer system when a control tool is installed from an optical drive. 図6は、制御ツールをUSBメモリからインストールする場合のコンピュータシステムの機能構成例を示すブロック図である。FIG. 6 is a block diagram showing an example of a functional configuration of a computer system when a control tool is installed from a USB memory. 図7は、通常時OSおよび緊急時OSがSSDに保存されている場合のコンピュータシステムの機能構成例を示すブロック図である。FIG. 7 is a block diagram showing an example of the functional configuration of a computer system when a normal OS and an emergency OS are stored in an SSD. 図8は、通常時OSおよび緊急時OSが信頼性劣化したSSD以外の不揮発性記憶装置に保存されている場合のコンピュータシステムの機能構成例を示すブロック図である。FIG. 8 is a block diagram illustrating an example of a functional configuration of a computer system in which a normal OS and an emergency OS are stored in a nonvolatile storage device other than an SSD with degraded reliability. 図9は、緊急時OSをWEB上の記憶媒体からインストールする場合のコンピュータシステムの機能構成例を示すブロック図である。FIG. 9 is a block diagram showing an example of the functional configuration of a computer system when an emergency OS is installed from a storage medium on the web. 図10は、緊急時OSを光学ドライブからインストールする場合のコンピュータシステムの機能構成例を示すブロック図である。FIG. 10 is a block diagram showing an example of the functional configuration of a computer system when an emergency OS is installed from an optical drive. 図11は、緊急時OSをUSBメモリからインストールする場合のコンピュータシステムの機能構成例を示すブロック図である。FIG. 11 is a block diagram showing an example of the functional configuration of a computer system when an emergency OS is installed from a USB memory. 図12は、ホストの階層的機能構成例を示すブロック図である。FIG. 12 is a block diagram showing an example of a hierarchical functional configuration of a host. 図13は、コンピュータシステムの外観的構成を示す図である。FIG. 13 is a diagram showing the external configuration of the computer system. 図14は、コンピュータシステムの他の外観的構成を示す図である。FIG. 14 is a diagram showing another external configuration of the computer system. 図15は、NANDメモリチップの内部構成例を示すブロック図である。FIG. 15 is a block diagram showing an example of the internal configuration of a NAND memory chip. 図16は、NANDメモリチップに含まれる1個のプレーンの構成例を示す回路図である。FIG. 16 is a circuit diagram showing a configuration example of one plane included in a NAND memory chip. 図17は、4値データ記憶方式でのしきい値分布を示す図である。FIG. 17 is a diagram showing the threshold distribution in the four-value data storage method. 図18は、SSDの内部構成例を示す機能ブロック図である。FIG. 18 is a functional block diagram showing an example of the internal configuration of the SSD. 図19は、SSDの管理情報を示す図である。FIG. 19 is a diagram showing management information of the SSD. 図20は、LBAとSSDの管理単位との関係を示す図である。FIG. 20 is a diagram showing the relationship between LBA and SSD management units. 図21は、LBAから物理アドレスを特定する手順を示すフローチャートである。FIG. 21 is a flowchart showing a procedure for specifying a physical address from an LBA. 図22は、SSDの読み出し動作例を示すフローチャートである。FIG. 22 is a flowchart illustrating an example of a read operation of the SSD. 図23は、SSDの読み出し動作例を示すフローチャートである。FIG. 23 is a flowchart illustrating an example of a read operation of the SSD. 図24は、SSDの書き込み動作例を示すフローチャートである。FIG. 24 is a flowchart illustrating an example of write operation of the SSD. 図25は、SSDの書き込み動作例を示すフローチャートである。FIG. 25 is a flowchart illustrating an example of write operation of the SSD. 図26は、SSDのNANDメモリの整理の動作例を示すフローチャートである。FIG. 26 is a flowchart illustrating an example of the operation of organizing the NAND memory of the SSD. 図27は、削除通知を受信したときのSSDの動作例を示すフローチャートである。FIG. 27 is a flowchart illustrating an example of the operation of the SSD when a deletion notification is received. 図28は、SSDのエラー発生時の動作例を示すフローチャートである。FIG. 28 is a flowchart showing an example of the operation when an error occurs in the SSD. 図29は、制御ツールの動作手順を示すフローチャートである。FIG. 29 is a flowchart showing the operation procedure of the control tool. 図30は、統計情報X01~X19、X23、X24の管理テーブルの一例を示す図である。FIG. 30 is a diagram showing an example of a management table for statistical information X01 to X19, X23, and X24. 図31は、統計情報の生の値とSSDの不良率の関係を示すグラフである。FIG. 31 is a graph showing the relationship between the raw value of statistical information and the defective rate of SSD. 図32は、制御ツールの他の動作手順を示すフローチャートである。FIG. 32 is a flowchart showing another operation procedure of the control tool. 図33は、制御ツールの他の動作手順を示すフローチャートである。FIG. 33 is a flowchart showing another operation procedure of the control tool. 図34は、制御ツールの寿命到達時処理を示すフローチャートである。FIG. 34 is a flowchart showing the process when the control tool reaches its lifespan. 図35は、制御ツールの他の寿命到達時処理を示すフローチャートである。FIG. 35 is a flowchart showing another process when the control tool reaches its lifespan. 図36は、制御ツールの他の寿命到達時処理を示すフローチャートである。FIG. 36 is a flowchart showing another process when the control tool reaches its lifespan. 図37は、コンピュータシステムの起動時の動作手順を示すフローチャートである。FIG. 37 is a flowchart showing the operating procedure when starting up the computer system. 図38は、緊急時OSがバックアップ機能を搭載している場合の、ホストの構成を示す図である。FIG. 38 is a diagram showing the configuration of a host when the emergency OS is equipped with a backup function. 図39は、コンピュータシステムの起動時のバックアップ動作を含む動作手順を示すフローチャートである。FIG. 39 is a flowchart showing an operation procedure including a backup operation when the computer system is started. 図40は、NANDメモリの記憶内容およびファイル管理テーブルの記憶内容を示す図である。FIG. 40 is a diagram showing the storage contents of the NAND memory and the storage contents of the file management table. 図41は、バックアップ用記憶装置としてUSBストレージが用いられた場合の、コンピュータシステムの機能構成例を示す図である。FIG. 41 is a diagram showing an example of the functional configuration of a computer system when a USB storage is used as a backup storage device. 図42は、バックアップ用記憶装置として光学記憶媒体が用いられた場合の、コンピュータシステムの機能構成例を示す図である。FIG. 42 is a diagram showing an example of the functional configuration of a computer system when an optical storage medium is used as a backup storage device. 図43は、バックアップ用記憶装置としてストレージサーバが用いられた場合の、コンピュータシステムの機能構成例を示す図である。FIG. 43 is a diagram showing an example of the functional configuration of a computer system when a storage server is used as a backup storage device. 図44は、緊急時起動用ディスクを作成する時のデータの移動の概念を示す図である。FIG. 44 is a diagram showing the concept of data movement when creating an emergency boot disk. 図45は、緊急時起動用ディスクを作成する時の動作手順を示すフローチャートである。FIG. 45 is a flowchart showing the operational procedure when creating an emergency boot disk. 図46は、緊急時ツールを含む緊急時起動用ディスクを作成する時のデータの移動の概念を示す図である。FIG. 46 is a diagram showing the concept of data movement when creating an emergency boot disk including emergency tools. 図47は、緊急時ツールを含む緊急時起動用ディスクを作成する時の動作手順を示すフローチャートである。FIG. 47 is a flowchart showing the operational procedure when creating an emergency boot disk containing emergency tools. 図48は、バックアップ処理をユーザへ案内する画面例を示す図である。FIG. 48 is a diagram showing an example of a screen that guides the user to backup processing. 図49は、制御ツールの他の動作手順を示すフローチャートである。FIG. 49 is a flowchart showing another operation procedure of the control tool. 図50は、コンピュータシステムの起動時の他の動作手順を示すフローチャートである。FIG. 50 is a flowchart showing another operation procedure when starting up the computer system. 図51は、統計情報の時系列データ例を示す図である。FIG. 51 is a diagram showing an example of time-series data of statistical information. 図52は、統計情報の経時変化を示す図である。FIG. 52 is a diagram showing changes in statistical information over time. 図53は、統計情報の経時変化に基づき予測寿命を求める処理を概念的に示す図である。FIG. 53 is a diagram conceptually illustrating a process for calculating a predicted lifespan based on changes in statistical information over time. 図54は、SSDの寿命到達時のユーザへの案内画面例を示す図である。FIG. 54 is a diagram illustrating an example of a guidance screen to the user when the SSD reaches the end of its life span. 図55は、ブートローダの復元処理を行う際のコンピュータシステムの機能構成例を示すブロック図である。FIG. 55 is a block diagram showing an example of the functional configuration of a computer system when performing boot loader restoration processing. 図56は、寿命到達時処理の際のブートローダの復元処理の動作手順を示すフローチャートである。FIG. 56 is a flowchart illustrating the operating procedure of the boot loader restoration process when the lifespan is reached. 図57は、ブートローダの書き換え差分ログを示す図である。FIG. 57 is a diagram showing a boot loader rewrite difference log. 図58は、緊急時OSによるバックアップ動作手順を示すフローチャートである。FIG. 58 is a flowchart showing the backup operation procedure by the emergency OS. 図59は、ブートローダの復元処理を行う際のコンピュータシステムの機能構成例を示すブロック図である。FIG. 59 is a block diagram showing an example of the functional configuration of a computer system when performing boot loader restoration processing. 図60は、緊急時OSによるブートローダ復元処理の動作手順を示すフローチャートである。FIG. 60 is a flowchart showing the operation procedure of boot loader restoration processing by the emergency OS. 図61は、第8の実施形態の全体的動作手順を示すフローチャートである。FIG. 61 is a flowchart showing the overall operating procedure of the eighth embodiment.

不揮発性半導体メモリには、NAND型フラッシュメモリのように、データを記憶させる場合にブロック単位で一度データを消去してからその後に書き込みを行うもの、ページ単位で書き込み/読み出しを行うものなど、消去/書き込み/読み出しの単位が固定されているものがある。一方、パーソナルコンピュータなどのホスト機器がハードディスクをはじめとする2次記憶装置に対してデータの書き込み/読み出しを行う単位は、セクタと呼ばれる。セクタは、半導体記憶装置の消去/書き込み/読み出しの単位とは独立に定められる。例えば、不揮発性半導体メモリの消去/書き込み/読み出しの単位は、ホスト機器の書き込み/読み出しの単位よりも大きい場合がある。 Non-volatile semiconductor memories include those such as NAND flash memory, which erase data once in blocks and then write data, and those that write/read in page units. /Some devices have fixed units of writing/reading. On the other hand, a unit in which a host device such as a personal computer writes/reads data to/from a secondary storage device such as a hard disk is called a sector. A sector is defined independently of the erase/write/read unit of a semiconductor memory device. For example, the erase/write/read unit of a nonvolatile semiconductor memory may be larger than the write/read unit of a host device.

また、フラッシュメモリを用いてパーソナルコンピュータの二次記憶装置を構成する場合、誤りが多いなどの理由によって記憶領域として使用できなくなるブロック(不良ブロック、バッドブロック)や、読み出せなくなる領域(不良領域)などが生じる場合がある。このような不良ブロック数や不良領域数が上限値を超えた場合には、新たな不良ブロックや不良領域を登録することができないので、バッファメモリ(キャッシュメモリ)に格納されているデータとライト要求のあったデータの両方をフラッシュメモリへ書き込むことを保障できない。このため、不良ブロック数や不良領域数が所定値を超えた場合には、フラッシュメモリに空き容量があるにも関わらず、突然データの書き込みが不能になるといった問題があった。 In addition, when configuring the secondary storage device of a personal computer using flash memory, there may be blocks that cannot be used as storage areas due to many errors (bad blocks, bad blocks), or areas that cannot be read (bad areas). etc. may occur. If the number of such bad blocks or bad areas exceeds the upper limit, new bad blocks or bad areas cannot be registered, so the data stored in the buffer memory (cache memory) and write requests are It is not possible to guarantee that both of the original data will be written to the flash memory. Therefore, when the number of defective blocks or the number of defective areas exceeds a predetermined value, there is a problem in that data writing suddenly becomes impossible even though there is free space in the flash memory.

それに対する解決策として、NAND型フラッシュメモリで発生したバッドクラスタの数とバッドブロックの数を管理し、バッドクラスタ数、バッドブロック数に応じて、ホスト装置からNAND型フラッシュメモリへのデータの書き込みの際の動作モードを切り替えるという方法がある。クラスタとは、SSDでの論理アドレスとしての管理単位である。クラスタサイズは、セクタサイズの2以上の自然数倍であり、クラスタアドレスは、LBAの所定のビットから上位のビット列で構成される。 As a solution to this problem, the number of bad clusters and bad blocks generated in the NAND flash memory is managed, and data writing from the host device to the NAND flash memory is controlled according to the number of bad clusters and bad blocks. There is a way to switch the operating mode. A cluster is a management unit as a logical address in an SSD. The cluster size is a natural number multiple of 2 or more than the sector size, and the cluster address is made up of a bit string starting from a predetermined bit of the LBA.

この方法においては、SSDの動作モードは、例えば以下の3つのモードに分かれる。 In this method, the operation mode of the SSD is divided into the following three modes, for example.

・WBモード(Write Back Mode):キャッシュメモリに一旦データを書き込み、所定の条件に基づきNAND型フラッシュメモリへの追い出しを行う通常の動作モード。 - WB mode (Write Back Mode): A normal operation mode in which data is written once in the cache memory and then flushed out to the NAND flash memory based on predetermined conditions.

・WTモード:(Write Through Mode):一回のライト要求でキャッシュメモリに書き込まれたデータを、NAND型フラッシュメモリに都度書き込む動作モード。NAND型フラッシュメモリに都度書き込むことで、ホストから書き込まれたデータをできるだけ保障する。SSDは、バッドクラスタテーブルまたはバッドブロックテーブルの残エントリ数が所定数以下になったとき、WTモードへと遷移する。 - WT mode: (Write Through Mode): An operation mode in which data written to the cache memory with a single write request is written to the NAND flash memory each time. By writing to the NAND flash memory each time, the data written by the host is guaranteed as much as possible. The SSD transitions to the WT mode when the number of remaining entries in the bad cluster table or the bad block table becomes a predetermined number or less.

・ROモード(Read Only Mode):NAND型フラッシュメモリへの書き込みを伴う処理を全て禁ずるモード。ホストからの全てのライト要求に対してエラーを返し書き込みを行わないようにすることで、SSDが寿命に近づいたときに、ホストからすでに書き込まれていたデータをできるだけ保障できるようにしている。SSDは、バッドクラスタテーブルまたはバッドブロックテーブルの残エントリ数が所定数以下になったとき、またはフリーブロックが不足となったとき、ROモードへと遷移する。 - RO mode (Read Only Mode): A mode that prohibits all processing that involves writing to the NAND flash memory. By returning an error to all write requests from the host and preventing writing, the data that has already been written by the host can be guaranteed as much as possible when the SSD approaches the end of its lifespan. The SSD transitions to the RO mode when the number of remaining entries in the bad cluster table or bad block table becomes less than or equal to a predetermined number, or when there is a shortage of free blocks.

WBモード及びWTモードにおいては、SSDはホストからリード要求とライト要求の両方を受け付けて処理をする。一方、ROモードにおいては、SSDはホストからリード要求を受け付けて処理をするが、ホストからのライト要求に対しては処理をせずエラーを返す。 In the WB mode and the WT mode, the SSD receives and processes both read requests and write requests from the host. On the other hand, in the RO mode, the SSD accepts and processes read requests from the host, but does not process write requests from the host and returns an error.

Windows(登録商標)などのオペレーティングシステム(OS)を搭載したホストに対してSSDが接続されたとき、ホストはSSDに対してライト要求を送信し、ライト要求が正常に処理されたとき、ホストはSSDを利用可能な外部記憶装置として認識する。 When an SSD is connected to a host equipped with an operating system (OS) such as Windows (registered trademark), the host sends a write request to the SSD, and when the write request is successfully processed, the host Recognize the SSD as a usable external storage device.

一方、上記ROモードに遷移したSSDがWindows(登録商標)を搭載したホストに接続されたとき、ホストがSSDに対してライト要求を送信すると、SSDはホストにエラーを返すため、ホストはSSDを利用可能な外部記憶装置として認識しない場合がある。そのため、読み出しは可能なROモードのSSDをホストに接続しても、過去に記録したデータをSSDから読み出せない可能性があった。 On the other hand, when the SSD that has transitioned to RO mode is connected to a host running Windows (registered trademark) and the host sends a write request to the SSD, the SSD returns an error to the host, so the host It may not be recognized as an available external storage device. Therefore, even if an SSD in RO mode that allows reading is connected to a host, there is a possibility that previously recorded data cannot be read from the SSD.

このように、SSDが寿命が到達した場合、あるいはSSDが寿命に近づいた場合は、SSDに対する書き込みを禁止すべきである。しかし、コンピュータシステムに搭載される通常のオペレーティングシステム(OS)では、ブート時にSSDへの書き込みが発生し、またユーザが意図しないSSDへの書き込みがバックグラウンドで発生する。このため、SSDが寿命が到達した場合、あるいはSSDが寿命に近づいた場合に、コンピュータシステムに通常のOSが搭載される状況下では、SSDの信頼性がさらに劣化し、既に書き込まれているデータが破壊される可能性がある。 In this way, when the SSD reaches the end of its lifespan, or when the SSD approaches the end of its lifespan, writing to the SSD should be prohibited. However, in a normal operating system (OS) installed in a computer system, writing to the SSD occurs at boot time, and writing to the SSD that is not intended by the user occurs in the background. For this reason, when the SSD reaches the end of its lifespan, or when the SSD approaches the end of its lifespan, the reliability of the SSD will further deteriorate under conditions where a normal OS is installed in the computer system. may be destroyed.

そこで、本実施形態においては、SSDが寿命に到達したと判断された場合、ブートローダを書き換え、システムを再起動した際、SSD2に対する書き込み動作を行わない緊急時ソフトウェアとしての例えば緊急時OSが起動されるようにすることで、SSDの信頼性劣化を防止し、既に書き込まれているデータ破壊を防止する。緊急時OSとしては、ブート時にSSDに対し読み出し動作のみを行い、ユーザが意図しないバックグラウンドでのSSDへの書き込みを行わないものを採用する。 Therefore, in this embodiment, when it is determined that the SSD has reached the end of its lifespan, when the boot loader is rewritten and the system is restarted, for example, an emergency OS is started as emergency software that does not write to the SSD 2. This prevents deterioration in the reliability of the SSD and prevents data that has already been written from being destroyed. The emergency OS is one that only performs read operations on the SSD at boot time and does not write to the SSD in the background that is not intended by the user.

以下に添付図面を参照して、実施形態にかかる情報処理装置を詳細に説明する。なお、これら実施形態により本発明が限定されるものではない。 DESCRIPTION OF THE PREFERRED EMBODIMENTS Information processing apparatuses according to embodiments will be described in detail below with reference to the accompanying drawings. Note that the present invention is not limited to these embodiments.

(第1の実施形態)
図1にコンピュータシステムの第1の実施形態の構成を示す。本コンピュータシステム1は、不揮発性記憶装置としてのSSD2と、ホスト装置3と、SSD2とホスト装置3とを結ぶメモリインタフェース19とから構成されている。本実施形態では、不揮発性記憶装置として、SSD(Solid State Drive)を用いるが、たとえば、ハードディスクドライブ、ハイブリッドディスクドライブ、SDカード、USBメモリ、マザーボード上に直接実装されたNAND型フラッシュメモリなど、他の不揮発性記憶装置であってもよい。また、本実施形態では、インタフェース19として、ATA(Advanced Technology Attachment)インタフェースを用いるが、USB(Universal Serial Bus)やSAS(Serial Attached SCSI)やThunderbolt(登録商標)やPCI Expressなど他のインタフェースであってもよい。CPU(制御回路)4がホスト装置3における中央演算処理装置であり、ホスト装置3における種々の演算及び制御はCPU4によって行われる。CPU4はサウスブリッジ7を介してSSD2や、DVD-ROMなどの光学ドライブ10の制御を行う。CPU4は、ノースブリッジ5を介して、主メモリ6の制御を行う。主メモリ6としては、たとえばDRAMを採用してよい。
(First embodiment)
FIG. 1 shows the configuration of a first embodiment of a computer system. The computer system 1 includes an SSD 2 as a nonvolatile storage device, a host device 3, and a memory interface 19 connecting the SSD 2 and the host device 3. In this embodiment, an SSD (Solid State Drive) is used as the nonvolatile storage device, but other devices such as a hard disk drive, hybrid disk drive, SD card, USB memory, and NAND flash memory directly mounted on the motherboard are also available. It may also be a non-volatile storage device. Further, in this embodiment, an ATA (Advanced Technology Attachment) interface is used as the interface 19, but other interfaces such as USB (Universal Serial Bus), SAS (Serial Attached SCSI), Thunderbolt (registered trademark), or PCI Express may also be used. You can. A CPU (control circuit) 4 is a central processing unit in the host device 3, and various calculations and controls in the host device 3 are performed by the CPU 4. The CPU 4 controls the SSD 2 and an optical drive 10 such as a DVD-ROM via the south bridge 7. The CPU 4 controls the main memory 6 via the north bridge 5. As the main memory 6, for example, a DRAM may be used.

ユーザは、キーボード14やマウス15などの入力装置を通してホスト装置3の制御を行い、キーボード14やマウス15からの信号は、USB(Universal Serial Bus)コントローラ13及びサウスブリッジ7を介してCPU4で処理される。CPU4は、ノースブリッジ5及び表示コントローラ8を介してディスプレイ(表示装置)9に画像データやテキストデータなどを送る。ユーザは、ディスプレイ9を介してホスト装置3からの画像データやテキストデータなどを視認することができる。 A user controls the host device 3 through input devices such as a keyboard 14 and a mouse 15, and signals from the keyboard 14 and mouse 15 are processed by the CPU 4 via a USB (Universal Serial Bus) controller 13 and a south bridge 7. Ru. The CPU 4 sends image data, text data, etc. to the display (display device) 9 via the north bridge 5 and display controller 8. The user can view image data, text data, etc. from the host device 3 via the display 9.

CPU4は、コンピュータシステム1の動作を制御するために設けられたプロセッサであり、SSD2から主メモリ6にロードされるオペレーティングシステム(OS)100を実行する。更に、光学ドライブ10が、装填された光ディスクに対して読出し処理及び書込み処理の少なくとも1つの処理の実行を可能にした場合に、CPU4は、それらの処理を実行する。また、CPU4は、BIOS(Basic Input/Output System)-ROM11に格納されたシステムBIOSも実行する。尚、システムBIOSは、コンピュータシステム1内のハードウェア制御のためのプログラムである。その他、CPU4は、サウスブリッジ7を介してLAN(Local Area Network)コントローラ12を制御する。 The CPU 4 is a processor provided to control the operation of the computer system 1, and executes an operating system (OS) 100 loaded into the main memory 6 from the SSD 2. Further, when the optical drive 10 enables execution of at least one of a read process and a write process on the loaded optical disc, the CPU 4 executes those processes. The CPU 4 also executes a system BIOS stored in a BIOS (Basic Input/Output System)-ROM 11. Note that the system BIOS is a program for controlling hardware within the computer system 1. In addition, the CPU 4 controls a LAN (Local Area Network) controller 12 via the south bridge 7.

ノースブリッジ5は、CPU4のローカルバスと接続するブリッジデバイスである。ノースブリッジ5には、主メモリ6をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ5は、表示コントローラ8との通信などを実行する機能も有している。 The north bridge 5 is a bridge device connected to the local bus of the CPU 4. The north bridge 5 also has a built-in memory controller that controls access to the main memory 6. The north bridge 5 also has a function of communicating with the display controller 8.

主メモリ6は、プログラムやデータを一時的に記憶し、CPU4の作業用メモリとして機能する。主メモリ6は、OS100を格納する記憶領域6Aと、制御ツール200を格納する記憶領域6Bを含んでいる。OSは、一般的に知られているように、ホスト装置3の入出力装置を管理し、ディスクやメモリを管理し、ソフトウェアがホスト装置3のハードウェアを利用可能にするための制御を行うなど、ホスト装置3全体を管理するプログラムである。 The main memory 6 temporarily stores programs and data and functions as a working memory for the CPU 4. The main memory 6 includes a storage area 6A that stores the OS 100 and a storage area 6B that stores the control tool 200. As is generally known, the OS manages the input/output devices of the host device 3, manages disks and memory, and performs controls to enable software to use the hardware of the host device 3. , is a program that manages the entire host device 3.

表示コントローラ8は、コンピュータシステム1のディスプレイ9を制御するビデオ再生コントローラである。サウスブリッジ7は、CPU4のローカルバスと接続するブリッジデバイスである。サウスブリッジ7は、各種ソフトウェア及びデータを格納する記憶装置であるSSD2を、ATAインタフェース19を介して制御する。 Display controller 8 is a video playback controller that controls display 9 of computer system 1 . The south bridge 7 is a bridge device connected to the local bus of the CPU 4. The south bridge 7 controls the SSD 2, which is a storage device that stores various software and data, via the ATA interface 19.

コンピュータシステム1では、論理セクタ単位でSSD2へのアクセスを行う。ATAインタフェース19を介して、ライトコマンド(ライト要求)、リードコマンド(リード要求)、フラッシュコマンド等がSSD2に入力される。 The computer system 1 accesses the SSD 2 in units of logical sectors. A write command (write request), a read command (read request), a flash command, etc. are input to the SSD 2 via the ATA interface 19.

また、サウスブリッジ7は、BIOS-ROM11、光学ドライブ10、LANコントローラ12、USBコントローラ13をアクセス制御するための機能も有している。USBコントローラ13にキーボード14、マウス15が接続されている。 The south bridge 7 also has a function for controlling access to the BIOS-ROM 11, optical drive 10, LAN controller 12, and USB controller 13. A keyboard 14 and a mouse 15 are connected to the USB controller 13.

制御ツール200は、例えば、図2に示すように、ホスト装置3が電源オフになっているときはSSD2のNAND型フラッシュメモリ(NANDメモリ)16の領域16Bに格納されているが、ホスト3の起動時またはプログラム起動時に、NANDメモリ16の領域16Bから主メモリ6上の領域6Bにロードされる。一方、ホスト3に複数の不揮発性記憶装置が接続されている場合は、図3に示すように、SSD制御ツール200は、SSD2とは別の不揮発性記憶装置20の領域20Bに格納されており、ホスト装置3の起動時またはプログラム起動時に、領域20Bから主メモリ6上の領域6Bにロードされるようにしてもよい。特に、不揮発性記憶装置20がOSを格納するシステムドライブとして使用されており、SSD2が文書や静止画データや動画データなどユーザデータを格納するデータドライブとして使用されている場合は、システムドライブ20にはOSやアプリケーションプログラムを主として格納するドライブとして使用し、データドライブ2にはユーザデータを格納するドライブとして使用するというように、ドライブ2とドライブ20の役割を明確に分ける観点で、システムドライブとしての不揮発性記憶装置20に制御ツールを格納することが望ましい。 For example, as shown in FIG. 2, the control tool 200 is stored in the area 16B of the NAND flash memory (NAND memory) 16 of the SSD 2 when the host device 3 is powered off; At startup or program startup, it is loaded from area 16B of NAND memory 16 to area 6B on main memory 6. On the other hand, when multiple non-volatile storage devices are connected to the host 3, the SSD control tool 200 is stored in the area 20B of the non-volatile storage device 20 separate from the SSD 2, as shown in FIG. , it may be loaded from the area 20B to the area 6B on the main memory 6 when the host device 3 or the program is started. In particular, when the nonvolatile storage device 20 is used as a system drive for storing an OS and the SSD 2 is used as a data drive for storing user data such as documents, still image data, and video data, the system drive 20 is used as a drive to mainly store the OS and application programs, and data drive 2 is used as a drive to store user data. Preferably, the control tools are stored in non-volatile storage 20.

制御ツール200のセットアップをユーザが行う労力を省く観点では、例えば図2や図3に示したように、制御ツール200がSSD2や不揮発性記憶装置20に格納された状態でコンピュータシステム1が出荷され、店頭に並び、ユーザの手に渡ることが望ましい。一方、ユーザが制御ツールのインストールの可否を選択できるようにする観点、およびユーザに最新の制御ツールを提供できるようにするという観点では、制御ツール200は、WEBからのダウンロード、またはDVD-ROMやUSBメモリなど外部記憶媒体からのインストールによりSSD2や不揮発性記憶装置20に格納できるようにすることが望ましい。 From the viewpoint of saving the user's effort in setting up the control tool 200, the computer system 1 may be shipped with the control tool 200 stored in the SSD 2 or the non-volatile storage device 20, as shown in FIGS. 2 and 3, for example. , it is desirable that it be on store shelves and in the hands of users. On the other hand, from the viewpoint of allowing the user to select whether or not to install the control tool, and from the viewpoint of providing the user with the latest control tool, the control tool 200 can be downloaded from the web, or from a DVD-ROM or It is desirable to be able to store it in the SSD 2 or nonvolatile storage device 20 by installing it from an external storage medium such as a USB memory.

図4はWEBからのダウンロードの一例である。制御ツール200はWEBサーバ21内の記憶媒体22の領域22Bに格納されており、制御ツール200はインターネットやローカルネットワークや無線LANなどのネットワークを介して、たとえばLANコントローラ12を経由してSSD2のNANDメモリ16上の領域16Bにダウンロード(またはインストール)される。図3の場合は、制御ツール200は、不揮発性記憶装置20上の領域20Bにダウンロードまたはインストールされる。 FIG. 4 is an example of downloading from the WEB. The control tool 200 is stored in an area 22B of the storage medium 22 in the WEB server 21, and the control tool 200 is connected to the NAND of the SSD 2 via a network such as the Internet, a local network, or a wireless LAN, for example via the LAN controller 12. It is downloaded (or installed) to area 16B on memory 16. In the case of FIG. 3, the control tool 200 is downloaded or installed in the area 20B on the nonvolatile storage device 20.

図5はDVD-ROMやCD-ROMなど光学メディアからのインストールの一例である。制御ツール200はDVD-ROMやCD-ROMなどの光学メディア23に格納されており、光学メディア23が光学ドライブ10にセットされることで、制御ツール200は光学ドライブ10を介してSSD2のNANDメモリ16上の領域16B(または領域20B)にインストールされる。図6はUSBメモリからのインストールの一例である。制御ツール200はUSBメモリ24の領域24Bに格納されており、USBメモリ24がUSBコントローラ13に接続されることで、制御ツール200はUSBコントローラ13を介してSSD2のNANDメモリ16上の領域16B(または領域20B)にインストールされる。USBメモリ24のかわりに、SDカードなどその他外部メモリであってもよいのはもちろんである。ユーザによる入手容易性の観点から、光学メディア23やUSBメモリ24は、SSD2の出荷時に、付属品としてSSD2と一緒に梱包されて販売されることが望ましい。一方、光学メディア23やUSBメモリ24はソフトウェア商品として単独で販売されてもよいし、雑誌や書籍の付録として付属していてもよい。 FIG. 5 shows an example of installation from optical media such as DVD-ROM and CD-ROM. The control tool 200 is stored in an optical medium 23 such as a DVD-ROM or CD-ROM, and when the optical medium 23 is set in the optical drive 10, the control tool 200 is stored in the NAND memory of the SSD 2 via the optical drive 10. It is installed in area 16B (or area 20B) on 16. FIG. 6 is an example of installation from a USB memory. The control tool 200 is stored in the area 24B of the USB memory 24, and when the USB memory 24 is connected to the USB controller 13, the control tool 200 is stored in the area 16B ( or area 20B). Of course, instead of the USB memory 24, other external memory such as an SD card may be used. From the viewpoint of ease of acquisition by users, it is desirable that the optical media 23 and the USB memory 24 be packaged and sold together with the SSD 2 as accessories when the SSD 2 is shipped. On the other hand, the optical media 23 and the USB memory 24 may be sold alone as software products, or may be attached as supplements to magazines or books.

本実施形態では、OS100として、通常時OS(第1のオペレーティングシステム)100Aと緊急時OS(第2のオペレーティングシステム)100Bの2種類が存在する。通常時OS100AはSSD2の信頼性が劣化していない場合に使用されるオペレーティングシステムである。前述したように、通常時OSは、ブート時にSSDへの書き込みが発生し、またユーザが意図しないSSDへの書き込みがバックグラウンドで発生する。通常時OS100Aは、図7に示すように、ホスト装置3が電源オフになっているときはNANDメモリ16の領域16Dに格納されている。緊急時OS100BはSSD2の信頼性が劣化した場合に使用されるオペレーティングシステムであり、SSD2への書き込みは行わない(書き込み非サポート)。すなわち、緊急時OSは、ブート時にSSDに対し読み出し動作のみを行い、ユーザが意図しないバックグラウンドでのSSDへの書き込みを行わない。なお、緊急時OS100Bは信頼性劣化した時のSSD2以外の不揮発性記憶装置に対しては書き込みを行うことができてもよい。また、緊急時OS100Bは、緊急時OSのシステム情報など一部のデータをSSD2に書き込む必要がある場合は、例外としてSSD2に当該データを書き込むことを許可してもよいが、当該データはデータ量がNANDメモリ16の容量に対して十分に小さいことが望ましい。さらに望ましくは、ユーザが誤って書き込みコマンドを送信してしまいSSD2に対してデータを書き込んでしまうことを防止するために、緊急時OS100BはSSD2に対する通常の書き込みコマンドを行うことを禁止し、SSD2に対して例外的にデータを書き込む必要がある場合は、たとえばINCITS ACS-2に記述されているSCT Command Transportやその他ベンダー独自のコマンドなど、特殊なコマンドを用いたコマンドのみによりSSD2に対する書き込みを許可するようにすることが望ましい。 In this embodiment, there are two types of OS 100: a normal OS (first operating system) 100A and an emergency OS (second operating system) 100B. The normal OS 100A is an operating system used when the reliability of the SSD 2 has not deteriorated. As described above, during normal operation, the OS writes to the SSD at boot time, and also writes to the SSD that are not intended by the user in the background. Normally, the OS 100A is stored in the area 16D of the NAND memory 16 when the host device 3 is powered off, as shown in FIG. The emergency OS 100B is an operating system used when the reliability of the SSD 2 deteriorates, and does not write to the SSD 2 (writing is not supported). That is, the emergency OS only performs read operations on the SSD at boot time, and does not write to the SSD in the background, which is not intended by the user. Note that the emergency OS 100B may be able to write to nonvolatile storage devices other than the SSD 2 when reliability has deteriorated. In addition, if it is necessary to write some data such as system information of the emergency OS to the SSD 2, the emergency OS 100B may allow writing of the data to the SSD 2 as an exception. It is desirable that this is sufficiently small compared to the capacity of the NAND memory 16. More preferably, in order to prevent the user from accidentally sending a write command and writing data to the SSD 2, the emergency OS 100B prohibits normal write commands to the SSD 2, and prevents the user from writing data to the SSD 2. However, if it is necessary to write data exceptionally, allow writing to the SSD2 only by using special commands, such as SCT Command Transport described in INCITS ACS-2 or other vendor-specific commands. It is desirable to do so.

緊急時OS100Bは、図7に示すように、ホスト装置3が電源オフになっているときはNANDメモリ16の領域16Eに格納されている。緊急時OS100BはSSD2が正常な状態においては使用されないため、領域16Eでの緊急時OSデータの破壊を防止する観点では、通常時OS使用時には領域16Eはホスト装置3から書き換えできないように設定されていることが望ましい。たとえば、通常時OS100Aの動作時には、領域16Eには後述するSSD2の管理情報において、LBAが割り当てられていないことが望ましく、この場合は、緊急時OS動作が必要になった後に領域16EにLBAが割り当てられる。あるいは、通常時OS100Aの動作時には、領域16Eは通常時OS100Aによって書き込みプロテクトを設定されていることが望ましい。 As shown in FIG. 7, the emergency OS 100B is stored in the area 16E of the NAND memory 16 when the host device 3 is powered off. Since the emergency OS 100B is not used when the SSD 2 is in a normal state, in order to prevent the emergency OS data from being destroyed in the area 16E, the area 16E is set so that it cannot be rewritten from the host device 3 when the OS is normally used. It is desirable to be present. For example, during normal operation of the OS 100A, it is desirable that no LBA is assigned to the area 16E in the management information of the SSD 2, which will be described later. Assigned. Alternatively, when the normal OS 100A is operating, it is desirable that the area 16E is write-protected by the normal OS 100A.

SSD2の信頼性が劣化した状態でSSD2へのアクセスを極力減らすという観点では、緊急時OS100Bが格納されている領域16Eのデータ量はNANDメモリ16の容量に比べて大幅に小さいことが望ましい。緊急時OS100Bとしては、たとえばMS-DOS(商標)やLinuxなどのOSにSSD2への書き込みを禁止するようなカスタマイズを行ったり、SSD2のバックアップ機能を付加したりしたものを採用してもよいし、SSD2用に独自に開発したソフトウェアであってもよい。 From the viewpoint of reducing accesses to the SSD 2 as much as possible when the reliability of the SSD 2 is degraded, it is desirable that the amount of data in the area 16E where the emergency OS 100B is stored is significantly smaller than the capacity of the NAND memory 16. As the emergency OS 100B, for example, an OS such as MS-DOS (trademark) or Linux that has been customized to prohibit writing to the SSD 2 or has a backup function for the SSD 2 added may be adopted. , software independently developed for SSD2 may be used.

コンピュータシステム1の電源がONしたときやOSが再起動されたときなどのような、コンピュータシステム1の起動時、ホスト装置3はNANDメモリ16の領域16Cに書き込まれているブートローダ300を読み出し、ブートローダ300の情報をもとに、通常時OS100Aと緊急時OS100Bのどちらがホスト装置3における領域6Aにロードされるかが決定される。そのためには、ブートローダ300には読み出すべきOSのLBAを示すOSポインタ情報OSPTを保持させておく。ホスト装置3はブートローダ300の読み出し時、OSポインタ情報OSPTの示すLBAを開始点として読み出しを行い、読み出したデータを主メモリ6上の領域6Aに書き込むようにすればよい。ブートローダ300は、初期状態では、通常時OS100Aをロードされるように構成されている。SSD2の信頼性が劣化したのち、主メモリ6上の領域6Bに格納された制御ツール200はNANDメモリ16上の領域16Cに記憶されているブートローダ300を書き換えて、緊急時OS100Bを読み出すようにブートローダ300を再構築する。ブートローダ300として、たとえばマスターブートレコード(MBR)を採用してもよいし、GUIDパーティションテーブル(GPT)を採用してもよい。 When the computer system 1 is started, such as when the power of the computer system 1 is turned on or the OS is restarted, the host device 3 reads the boot loader 300 written in the area 16C of the NAND memory 16, and executes the boot loader. Based on the information 300, it is determined which of the normal OS 100A and the emergency OS 100B will be loaded into the area 6A of the host device 3. To this end, the boot loader 300 is made to hold OS pointer information OSPT indicating the LBA of the OS to be read. When reading the boot loader 300, the host device 3 may read the data starting from the LBA indicated by the OS pointer information OSPT, and write the read data to the area 6A on the main memory 6. In the initial state, the boot loader 300 is configured to normally load the OS 100A. After the reliability of the SSD 2 deteriorates, the control tool 200 stored in the area 6B on the main memory 6 rewrites the bootloader 300 stored in the area 16C on the NAND memory 16, and writes the bootloader to read the emergency OS 100B. Rebuild 300. As the boot loader 300, for example, a master boot record (MBR) or a GUID partition table (GPT) may be used.

ホスト装置3に複数の不揮発性記憶装置が接続されている場合は、OSは、SSD2とは別の不揮発性記憶装置20に格納されていてもよい。たとえば、図8に示すように、通常時OSと緊急時OSの両方が不揮発性記憶装置20に格納されていてもよいし、通常時OSがSSD2に格納され、緊急時OSが不揮発性記憶装置20に格納されていてもよいし、通常時OSが不揮発性記憶装置20に格納され、緊急時OSがSSD2に格納されていてもよい。特に、不揮発性記憶装置20がOSを格納するシステムドライブとして使用されており、SSD2が文書や静止画データや動画データなどユーザデータを格納するデータドライブとして使用されている場合は、システムドライブ20にはOSやアプリケーションプログラムを主として格納するドライブとして使用し、データドライブ2にはユーザデータを格納するドライブとして使用するというように、ドライブ2とドライブ20の役割を明確に分ける観点で、システムドライブとしての不揮発性記憶装置20に通常時OSが格納されていることが望ましく、さらに望ましくは、システムドライブとしての不揮発性記憶装置20に緊急時OSも格納されていることが望ましい。 When a plurality of nonvolatile storage devices are connected to the host device 3, the OS may be stored in the nonvolatile storage device 20 different from the SSD 2. For example, as shown in FIG. 8, both the normal OS and the emergency OS may be stored in the non-volatile storage device 20, or the normal OS is stored in the SSD 2 and the emergency OS is stored in the non-volatile storage device. Alternatively, the normal OS may be stored in the nonvolatile storage device 20 and the emergency OS may be stored in the SSD 2. In particular, when the nonvolatile storage device 20 is used as a system drive for storing an OS and the SSD 2 is used as a data drive for storing user data such as documents, still image data, and video data, the system drive 20 is used as a drive to mainly store the OS and application programs, and data drive 2 is used as a drive to store user data. It is desirable that a normal OS is stored in the nonvolatile storage device 20, and more preferably, an emergency OS is also stored in the nonvolatile storage device 20 as a system drive.

緊急時OSのセットアップをユーザが行う労力を省く観点では、例えば図7や図8に示したように、緊急時OSがSSD2や不揮発性記憶装置20に格納された状態でコンピュータシステム1が出荷され、店頭に並び、ユーザの手に渡ることが望ましい。一方、ユーザが緊急時OSのインストールの可否を選択できるようにする観点、およびユーザに最新の緊急時OSを提供できるようにするという観点では、緊急時OSは、WEBからのダウンロード、またはDVD-ROMやUSBメモリなど外部記憶媒体からのインストールによりSSD2や不揮発性記憶装置20に格納できるようにすることが望ましい。 From the perspective of saving the user's effort in setting up the emergency OS, the computer system 1 may be shipped with the emergency OS stored in the SSD 2 or the non-volatile storage device 20, as shown in FIGS. 7 and 8, for example. , it is desirable that it be on store shelves and in the hands of users. On the other hand, from the perspective of allowing the user to choose whether or not to install the emergency OS, and from the perspective of providing the latest emergency OS to the user, the emergency OS can be downloaded from the web or from a DVD-ROM. It is desirable to be able to store it in the SSD 2 or nonvolatile storage device 20 by installing it from an external storage medium such as a ROM or USB memory.

図9はWEBからのダウンロードの一例である。緊急時OSはWEBサーバ21内の記憶媒体22の領域22Eに格納されており、緊急時OSはインターネットやローカルネットワークや無線LANなどのネットワークを介して、たとえばLANコントローラ12を経由してSSD2のNANDメモリ16上の領域16Eにダウンロードまたはインストールされる。図8の場合は不揮発性記憶装置20上の領域20Eにダウンロードまたはインストールされる。 FIG. 9 is an example of downloading from the WEB. The emergency OS is stored in the area 22E of the storage medium 22 in the WEB server 21, and the emergency OS is connected to the NAND of the SSD 2 via a network such as the Internet, a local network, or a wireless LAN, for example, via the LAN controller 12. It is downloaded or installed in area 16E on memory 16. In the case of FIG. 8, the program is downloaded or installed in the area 20E on the nonvolatile storage device 20.

図10はDVD-ROMやCD-ROMなど光学メディアからのインストールの一例である。緊急時OSはDVD-ROMやCD-ROMなどの光学メディア23の領域23Eに格納されており、光学メディア23が光学ドライブ10にセットされることで、緊急時OSは光学ドライブ10を介してSSD2のNANDメモリ16上の領域16E(または領域20E)にインストールされる。図11はUSBメモリからのインストールの一例である。緊急時OSはUSBメモリ24の領域24Eに格納されており、USBメモリ24がUSBコントローラ13に接続されることで、緊急時OSはUSBコントローラ13を介してSSD2のNANDメモリ16上の領域16E(または領域20E)にインストールされる。USBメモリ24のかわりに、SDカードなどその他外部メモリであってもよいのはもちろんである。ユーザによる入手容易性の観点から、光学メディア23やUSBメモリ24はSSD2の出荷時に、付属品としてSSD2と一緒に梱包されて販売されることが望ましい。一方、光学メディア23やUSBメモリ24はソフトウェア商品として単独で販売されてもよいし、雑誌や書籍の付録として付属していてもよい。緊急時OSと制御ツールは光学メディア23やUSBメモリ24など同一の外部メモリに格納されていることが、インストールの平易さの観点では望ましい。 FIG. 10 is an example of installation from optical media such as DVD-ROM or CD-ROM. The emergency OS is stored in the area 23E of the optical media 23 such as a DVD-ROM or CD-ROM, and when the optical media 23 is set in the optical drive 10, the emergency OS is stored in the SSD 2 via the optical drive 10. is installed in area 16E (or area 20E) on NAND memory 16. FIG. 11 is an example of installation from a USB memory. The emergency OS is stored in the area 24E of the USB memory 24, and when the USB memory 24 is connected to the USB controller 13, the emergency OS is stored in the area 16E ( or area 20E). Of course, instead of the USB memory 24, other external memory such as an SD card may be used. From the viewpoint of ease of acquisition by users, it is desirable that the optical media 23 and the USB memory 24 be packaged and sold together with the SSD 2 as accessories when the SSD 2 is shipped. On the other hand, the optical media 23 and the USB memory 24 may be sold alone as software products, or may be attached as supplements to magazines or books. From the viewpoint of ease of installation, it is desirable that the emergency OS and control tools are stored in the same external memory, such as the optical medium 23 or the USB memory 24.

図12に、コンピュータシステム1のソフトウェアレベルでの階層構造を示す。主メモリ6上にロードされた制御ツール200及びその他ソフトウェア(制御ツール200以外のソフトウェア)は、通常はSSD2と直接通信せずに、主メモリ6にロードされたOS100を経由してSSD2と通信する。制御ツール200やその他ソフトウェアがSSD2に対しリード要求、ライト要求などの命令を送信する必要が生じた場合、制御ツール200やその他ソフトウェアは、OS100にファイル単位のアクセス要求を送信する。OS100はOS100に内包されるファイル管理テーブルを参照し、アクセス要求のあったファイルに対応するSSD2の論理アドレス(LBA)を特定し、対応するLBAを含む当該インタフェース固有の命令をSSD2に送信する。SSD2から応答が返ってきた場合、OS100は変換後の当該インタフェース固有の応答がどのソフトウェアに対する応答かを特定し、特定したソフトウェアに対して応答を返す。 FIG. 12 shows the hierarchical structure of the computer system 1 at the software level. The control tool 200 and other software (software other than the control tool 200) loaded on the main memory 6 usually do not communicate directly with the SSD 2, but communicate with the SSD 2 via the OS 100 loaded on the main memory 6. . When the control tool 200 or other software needs to send a command such as a read request or a write request to the SSD 2, the control tool 200 or other software sends an access request in file units to the OS 100. The OS 100 refers to the file management table included in the OS 100, specifies the logical address (LBA) of the SSD 2 corresponding to the file for which access is requested, and sends a command unique to the interface including the corresponding LBA to the SSD 2. When a response is returned from the SSD 2, the OS 100 specifies to which software the converted response specific to the interface corresponds, and returns a response to the specified software.

次に、コンピュータシステム1の構成例について説明する。コンピュータシステム1は、例えば、デスクトップコンピュータやノートブック型のポータブルコンピュータとして実現し得る。図13は、コンピュータシステム1としてのデスクトップコンピュータの概略図である。デスクトップコンピュータは、コンピュータ本体31、ディスプレイ9、キーボード14、及びマウス15などを備えている。コンピュータ本体31は、主要なハードウェアが搭載されたマザーボード30、SSD2、及び電源装置32などを備えている。SSD2は、SATAケーブルを介してマザーボード30に物理的に接続され、マザーボード30上に実装されたサウスブリッジ7を介して、同じくマザーボード上に実装されたCPU4に電気的に接続されている。電源装置32は、デスクトップコンピュータで使用される各種電源を発生し、電源ケーブルを介してマザーボード30やSSD2などに電源を供給する。 Next, a configuration example of the computer system 1 will be explained. The computer system 1 can be implemented as, for example, a desktop computer or a notebook-type portable computer. FIG. 13 is a schematic diagram of a desktop computer as the computer system 1. The desktop computer includes a computer main body 31, a display 9, a keyboard 14, a mouse 15, and the like. The computer main body 31 includes a motherboard 30 on which major hardware is mounted, an SSD 2, a power supply device 32, and the like. The SSD 2 is physically connected to a motherboard 30 via a SATA cable, and is electrically connected to a CPU 4 also mounted on the motherboard via a south bridge 7 mounted on the motherboard 30. The power supply device 32 generates various kinds of power used in the desktop computer, and supplies power to the motherboard 30, SSD 2, etc. via a power cable.

図14は、コンピュータシステム1としてのポータブルコンピュータの概略図である。ポータブルコンピュータは、コンピュータ本体34、ディスプレイユニット35などから構成されている。ディスプレイユニット35は、例えばLCD(Liquid Crystal Display)で構成される表示装置9が組み込まれている。ディスプレイユニット35は、コンピュータ本体34に対し、この本体34の上面が露出される開放位置と本体34の上面を覆う閉塞位置との間を回動自由に取り付けられている。本体34は薄い箱形の筐体を有しており、その上面には、電源スイッチ36、キーボード14、タッチパッド33等が配置されている。また、本体34も、デスクトップコンピュータと同様に、SSD2、マザーボード、及び電源装置などを備えている。 FIG. 14 is a schematic diagram of a portable computer as the computer system 1. The portable computer includes a computer main body 34, a display unit 35, and the like. The display unit 35 incorporates a display device 9 configured of, for example, an LCD (Liquid Crystal Display). The display unit 35 is attached to the computer main body 34 so as to be freely rotatable between an open position where the top surface of the main body 34 is exposed and a closed position where the top surface of the main body 34 is covered. The main body 34 has a thin box-shaped casing, and a power switch 36, a keyboard 14, a touch pad 33, etc. are arranged on the top surface of the main body 34. Further, the main body 34 also includes an SSD 2, a motherboard, a power supply device, etc., like a desktop computer.

本発明を適用する情報処理機器としては、コンピュータシステム1の他に、スチルカメラ或いはビデオカメラなどの撮像装置などであってもよいし、タブレットコンピュータやスマートフォンやゲーム機器やカーナビゲーションシステムなどであってもよい。 In addition to the computer system 1, the information processing device to which the present invention is applied may be an imaging device such as a still camera or a video camera, a tablet computer, a smartphone, a game device, a car navigation system, etc. Good too.

つぎに、SSD2の主な構成要素であるNANDメモリ16について説明する。図15にNANDメモリ16を構成するNANDメモリチップ80の内部構成例を示す。NANDメモリ16は、1以上の数のNANDメモリチップ80よりなる。NANDメモリチップ80は、複数のメモリセルがマトリクス状に配列されたメモリセルアレイを有する。メモリセルアレイを構成するメモリセルトランジスタは、半導体基板上に形成された積層ゲート構造を備えたMOSFET(Metal Oxide Semiconductor Field Effect Transistor)から構成される。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)、及び浮遊ゲート電極上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。本実施形態では、個々のメモリセルが上位ページ及び下位ページを使用しての2bit/cellの4値記憶方式の書き込み方式である場合について説明するが、個々のメモリセルが単一ページを使用しての1bit/cellの2値記憶方式の書き込み方式、または上位ページ及び中位ページ及び下位ページを使用しての3bit/cellの8値記憶方式の書き込み方式である場合、あるいは4bit/cell以上の多値記憶方式の書き込み方式を採用する場合であっても本発明の本質は変わらない。また、メモリセルトランジスタは浮遊ゲート電極を有する構造に限らず、MONOS(Metal-Oxide-Nitride-Oxide-Silicon)型など、電荷蓄積層としての窒化界面に電子をトラップさせることで閾値電圧を調整可能な構造であってもよい。MONOS型のメモリセルトランジスタについても同様に、1ビットを記憶するように構成されていてもよいし、多値を記憶するように構成されていてもよい。また、不揮発性記憶媒体として、特開2010-161199号公報や特開2011-29586号公報に記述されるような3次元的にメモリセルが配置された半導体記憶媒体であってもよい。 Next, the NAND memory 16, which is the main component of the SSD 2, will be explained. FIG. 15 shows an example of the internal configuration of a NAND memory chip 80 that constitutes the NAND memory 16. The NAND memory 16 includes one or more NAND memory chips 80. The NAND memory chip 80 has a memory cell array in which a plurality of memory cells are arranged in a matrix. Memory cell transistors constituting the memory cell array are composed of MOSFETs (Metal Oxide Semiconductor Field Effect Transistors) with a stacked gate structure formed on a semiconductor substrate. The stacked gate structure includes a charge storage layer (floating gate electrode) formed on a semiconductor substrate with a gate insulating film interposed therebetween, and a control gate electrode formed on the floating gate electrode with an inter-gate insulating film interposed therebetween. I'm here. A memory cell transistor has a threshold voltage that changes depending on the number of electrons stored in the floating gate electrode, and stores data depending on the difference in threshold voltage. In this embodiment, a case will be described in which each memory cell uses an upper page and a lower page to write in a 2-bit/cell quaternary storage method, but each memory cell uses a single page. 1 bit/cell binary storage writing method, 3 bit/cell 8-value storage writing method using upper page, middle page, and lower page, or 4 bit/cell or more The essence of the present invention does not change even when a multi-level storage writing method is adopted. In addition, memory cell transistors are not limited to structures with floating gate electrodes, but also include MONOS (Metal-Oxide-Nitride-Oxide-Silicon) types, which can adjust the threshold voltage by trapping electrons in the nitride interface as a charge storage layer. It may have a similar structure. Similarly, the MONOS type memory cell transistor may be configured to store one bit or may be configured to store multiple values. Furthermore, the nonvolatile storage medium may be a semiconductor storage medium in which memory cells are arranged three-dimensionally, as described in Japanese Patent Application Laid-open No. 2010-161199 and Japanese Patent Application Laid-Open No. 2011-29586.

図15に示すように、NANDメモリチップ80は、データを記憶するメモリセルをマトリックス状に配置してなるメモリセルアレイ82を備えている。メモリセルアレイ82は複数のビット線と複数のワード線と共通ソース線を含み、ビット線とワード線の交点に電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。このメモリセルアレイ82には、ビット線を制御するためのビット線制御回路83、及びワード線電圧を制御するためのワード線制御回路85が接続されている。すなわち、ビット線制御回路83は、ビット線を介してメモリセルアレイ82中のメモリセルのデータを読み出す一方、ビット線を介してメモリセルアレイ82中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行う。 As shown in FIG. 15, the NAND memory chip 80 includes a memory cell array 82 in which memory cells for storing data are arranged in a matrix. The memory cell array 82 includes a plurality of bit lines, a plurality of word lines, and a common source line, and electrically rewritable memory cells are arranged in a matrix at the intersections of the bit lines and word lines. A bit line control circuit 83 for controlling bit lines and a word line control circuit 85 for controlling word line voltage are connected to this memory cell array 82. That is, the bit line control circuit 83 reads data from the memory cells in the memory cell array 82 via the bit lines, and applies a write control voltage to the memory cells in the memory cell array 82 via the bit lines to write data to the memory cells. Write.

ビット線制御回路83には、カラムデコーダ84、データ入出力バッファ89及びデータ入出力端子88が接続されている。メモリセルアレイ82から読み出されたメモリセルのデータは、ビット線制御回路83、データ入出力バッファ89を介してデータ入出力端子88から外部へ出力される。また、外部からデータ入出力端子88に入力された書き込みデータは、データ入出力バッファ89を介して、カラムデコーダ84によってビット線制御回路83に入力され、指定されたメモリセルへの書き込みが行われる。 A column decoder 84, a data input/output buffer 89, and a data input/output terminal 88 are connected to the bit line control circuit 83. The memory cell data read from the memory cell array 82 is output to the outside from the data input/output terminal 88 via the bit line control circuit 83 and the data input/output buffer 89. Also, write data input from the outside to the data input/output terminal 88 is inputted to the bit line control circuit 83 by the column decoder 84 via the data input/output buffer 89, and is written to the designated memory cell. .

また、メモリセルアレイ82、ビット線制御回路83、カラムデコーダ84、データ入出力バッファ89、及びワード線制御回路85は、制御回路86に接続されている。制御回路86は、制御信号入力端子87に入力される制御信号に従い、メモリセルアレイ82、ビット線制御回路83、カラムデコーダ84、データ入出力バッファ89、及びワード線制御回路85を制御するための制御信号及び制御電圧を発生させる。NANDメモリチップ80のうち、メモリセルアレイ82以外の回路部分をNANDコントローラ(NANDC)81と呼ぶ。 Furthermore, the memory cell array 82 , bit line control circuit 83 , column decoder 84 , data input/output buffer 89 , and word line control circuit 85 are connected to a control circuit 86 . The control circuit 86 controls the memory cell array 82 , the bit line control circuit 83 , the column decoder 84 , the data input/output buffer 89 , and the word line control circuit 85 in accordance with the control signal input to the control signal input terminal 87 . Generates signals and control voltages. The circuit portion of the NAND memory chip 80 other than the memory cell array 82 is called a NAND controller (NANDC) 81.

図16は、図15に示すメモリセルアレイ82の構成を示している。メモリセルアレイ82はNANDセル型メモリセルアレイであり、複数のNANDセルを含んで構成されている。1つのNANDセルは、直列接続されたメモリセルからなるメモリストリングMSと、その両端に接続される選択ゲートS1、S2とにより構成されている。選択ゲートS1はビット線BLに接続され、選択ゲートS2はソース線SRCに接続されている。同一のロウに配置されたメモリセルMCの制御ゲートはワード線WL0~WLm-1に共通接続されている。また、第1の選択ゲートS1はセレクト線SGDに共通接続され、第2の選択ゲートS2はセレクト線SGSに共通接続されている。 FIG. 16 shows the configuration of memory cell array 82 shown in FIG. 15. The memory cell array 82 is a NAND cell type memory cell array, and includes a plurality of NAND cells. One NAND cell is composed of a memory string MS consisting of memory cells connected in series, and selection gates S1 and S2 connected to both ends of the memory string MS. The selection gate S1 is connected to the bit line BL, and the selection gate S2 is connected to the source line SRC. The control gates of memory cells MC arranged in the same row are commonly connected to word lines WL0 to WLm-1. Further, the first selection gate S1 is commonly connected to the selection line SGD, and the second selection gate S2 is commonly connected to the selection line SGS.

メモリセルアレイ82は、1または複数のプレーンを含んでおり、プレーンは複数のブロックを含んでいる。各ブロックは、複数のNANDセルにより構成され、このブロック単位でデータが消去される。 Memory cell array 82 includes one or more planes, and each plane includes multiple blocks. Each block is composed of a plurality of NAND cells, and data is erased in units of this block.

また、1つのワード線に接続された複数のメモリセルは、1物理セクタを構成する。この物理セクタ毎にデータが書き込まれ、読み出される(この物理セクタは、後述するLBAの論理セクタとは無関係である)。1物理セクタには、2bit/cell書き込み方式(4値)の場合例えば2ページ分のデータが記憶される。一方、1bit/cell書き込み方式(2値)の場合は、1物理セクタに例えば1ページ分のデータが記憶され、3bit/cell書き込み方式(8値)の場合、1物理セクタに例えば3ページ分のデータが記憶される。 Further, a plurality of memory cells connected to one word line constitute one physical sector. Data is written and read in each physical sector (this physical sector is unrelated to the LBA logical sector described later). In the case of a 2-bit/cell write method (four values), for example, two pages of data are stored in one physical sector. On the other hand, in the case of the 1 bit/cell write method (binary), for example, one page worth of data is stored in one physical sector, and in the case of the 3 bit/cell write method (eight values), for example, three pages of data are stored in one physical sector. Data is stored.

リード動作、プログラムベリファイ動作及びプログラム動作時において、後述のSSDC41から受信した物理アドレスに応じて、1本のワード線が選択され、1物理セクタが選択される。この物理セクタ内のページの切り替えは物理アドレスによって行われる。本実施形態ではNANDメモリ16は2bit/cell書き込み方式であり、SSDC41は物理セクタには上位ページ(Upper Page)と下位ページ(Lower Page)の2ページが物理ページとして割り当てられていると取扱い、それら全ページに対して物理アドレスが割り当てられている。 During a read operation, a program verify operation, and a program operation, one word line is selected and one physical sector is selected according to a physical address received from the SSDC 41, which will be described later. Page switching within this physical sector is performed using physical addresses. In this embodiment, the NAND memory 16 has a 2-bit/cell write method, and the SSDC 41 treats the physical sector as having two pages, an upper page and a lower page, allocated as physical pages, and A physical address is assigned to every page.

2bit/cellの4値NANDメモリは、1つのメモリセルにおける閾値電圧が、4通りの分布を持ち得るように構成されている。図17は、4値NANDセル型フラッシュメモリのメモリセルに記憶される2ビットの4値データ(データ“11”、“01”、“10”、“00”)とメモリセルの閾値電圧分布との関係を示している。なお、図17において、VA1は、下位ページのみ書き込み済みで上位ページが未書き込みの物理セクタについて、2つのデータを読み出す場合に選択ワード線に印加される電圧であり、VA1Vは、A1への書き込みを行う場合において、書き込みが完了したかどうかを確認するために印加されるベリファイ電圧を示している。 A 2-bit/cell 4-value NAND memory is configured so that the threshold voltage in one memory cell can have four distributions. FIG. 17 shows the 2-bit 4-value data (data “11”, “01”, “10”, “00”) stored in the memory cells of the 4-value NAND cell type flash memory and the threshold voltage distribution of the memory cells. It shows the relationship between In FIG. 17, V A1 is the voltage applied to the selected word line when reading two data from a physical sector where only the lower page has been written and the upper page has not been written, and V A1V is the voltage applied to the selected word line when reading two data. This shows the verify voltage that is applied to check whether the writing is completed when writing is performed.

また、VA2、VB2、VC2は、下位ページと上位ページが書き込み済みの物理セクタについて、4つのデータを読み出す場合に選択ワード線に印加される電圧であり、VA2V、VB2V、VC2Vは、各閾値電圧分布への書き込みを行う場合において、書き込みが完了したかどうかを確認するために印加されるベリファイ電圧を示している。また、Vread1、Vread2は、データの読み出しを行う場合に、NANDセル中の非選択メモリセルに対し印加され、その保持データに拘わらず当該非選択メモリセルを導通させる読み出し電圧を示している。さらに、Vev1、Vev2は、メモリセルのデータを消去する場合において、その消去が完了したか否かを確認するためメモリセルに印加される消去ベリファイ電圧であり、負の値を有する。その大きさは、隣接メモリセルの干渉の影響を考慮して決定される。上述の各電圧の大小関係は、
Vev1<VA1<VA1V<Vread1
Vev2<VA2<VA2V<VB2<VB2V<VC2<VC2V<Vread2
である。
Further, V A2 , V B2 , and V C2 are voltages applied to the selected word line when reading four pieces of data for a physical sector in which a lower page and an upper page have been written, and V A2V , V B2V , V C2V indicates a verify voltage applied to confirm whether writing is completed when writing to each threshold voltage distribution. Further, Vread1 and Vread2 indicate read voltages that are applied to unselected memory cells in the NAND cell when reading data, and make the unselected memory cells conductive regardless of the data held therein. Further, Vev1 and Vev2 are erase verify voltages that are applied to the memory cell to confirm whether the erasure is completed when erasing data in the memory cell, and have negative values. Its size is determined in consideration of the influence of interference between adjacent memory cells. The magnitude relationship of each voltage mentioned above is
Vev1<V A1 <V A1V <Vread1
Vev2<V A2 <V A2V <V B2 <V B2V <V C2 <V C2V <Vread2
It is.

なお、消去ベリファイ電圧Vev1、Vev2、Vev3は前述の通り負の値であるが、実際に消去ベリファイ動作においてメモリセルMCの制御ゲートに印加される電圧は、負の値ではなく、ゼロ又は正の値である。すなわち、実際の消去ベリファイ動作においては、メモリセルMCのバックゲートに正の電圧を与え、メモリセルMCの制御ゲートには、ゼロ又はバックゲート電圧より小さい正の値の電圧を印加している。換言すれば、消去ベリファイ電圧Vev1、Vev2、Vev3は、等価的に負の値を有する電圧である。 Note that although the erase verify voltages Vev1, Vev2, and Vev3 are negative values as described above, the voltage actually applied to the control gate of the memory cell MC in the erase verify operation is not a negative value but a zero or positive value. It is a value. That is, in an actual erase verify operation, a positive voltage is applied to the back gate of the memory cell MC, and a voltage of zero or a positive value smaller than the back gate voltage is applied to the control gate of the memory cell MC. In other words, erase verify voltages Vev1, Vev2, and Vev3 are voltages that equivalently have negative values.

ブロック消去後のメモリセルの閾値電圧分布ERは、その上限値も負の値であり、データ“11”が割り当てられる。下位ページおよび上位ページ書き込み状態のデータ“11”、“01”、“10”、“00”のメモリセルは、それぞれ正の閾値電圧分布ER2、A2、B2、C2を有し(A2、B2、C2の下限値も正の値である)、データ“01”の閾値電圧分布A2が最も電圧値が低く、データ“00”の閾値電圧分布C2が最も電圧値が高く、各種閾値電圧分布の電圧値はA2<B2<C2の関係を有する。下位ページ書き込みかつ上位ページ未書き込み状態のデータ“10”のメモリセルは、正の閾値電圧分布A1を有する(A1の下限値も正の値である)。なお、図17に示す閾値電圧分布はあくまでも一例であって、本発明はこれに限定されるものではない。例えば、図17では閾値電圧分布A2,B2,C2は全て正の閾値電圧分布であるとして説明したが、閾値電圧分布A2は負の電圧の分布であり、閾値電圧分布B2、C2が正の電圧の分布であるような場合も、本発明の範囲に含まれる。また、閾値電圧分布ER1・ER2は正の値であったとしても、本発明はこれに限定されるものではない。また、本実施形態ではER2、A2、B2、C2のデータの対応関係がそれぞれ“11”、“01”、“10”、“00”であるとしているが、たとえばそれぞれ“11”、“01”、“00”、“10”であるような他の対応関係であってもよい。 The upper limit value of the threshold voltage distribution ER of the memory cells after block erasure is also a negative value, and data "11" is assigned. Memory cells with data “11”, “01”, “10”, and “00” in the lower page and upper page write states have positive threshold voltage distributions ER2, A2, B2, and C2, respectively (A2, B2, (The lower limit value of C2 is also a positive value), the threshold voltage distribution A2 with data "01" has the lowest voltage value, the threshold voltage distribution C2 with data "00" has the highest voltage value, and the voltage of various threshold voltage distributions The values have a relationship of A2<B2<C2. A memory cell with data “10” in a lower page written state and an upper page unwritten state has a positive threshold voltage distribution A1 (the lower limit value of A1 is also a positive value). Note that the threshold voltage distribution shown in FIG. 17 is just an example, and the present invention is not limited thereto. For example, in FIG. 17, the explanation has been made assuming that the threshold voltage distributions A2, B2, and C2 are all positive threshold voltage distributions, but the threshold voltage distribution A2 is a negative voltage distribution, and the threshold voltage distributions B2 and C2 are positive voltage distributions. A case where the distribution is also included in the scope of the present invention. Furthermore, even if the threshold voltage distributions ER1 and ER2 are positive values, the present invention is not limited thereto. Furthermore, in this embodiment, the correspondence relationships between the data of ER2, A2, B2, and C2 are "11", "01", "10", and "00", respectively, but for example, "11" and "01" respectively , "00", and "10".

1つのメモリセルの2ビットデータは、下位ページデータと上位ページデータからなり、下位ページデータと上位ページデータは別々の書き込み動作、つまり、2回の書き込み動作により、メモリセルに書き込まれる。データを“*@”と標記するとき、*は上位ページデータを、@は下位ページデータを表している。 The 2-bit data of one memory cell consists of lower page data and upper page data, and the lower page data and upper page data are written to the memory cell by separate write operations, that is, by two write operations. When data is marked as "*@", * represents upper page data and @ represents lower page data.

まず、下位ページデータの書き込みを、図17の1段目~2段目を参照して説明する。全てのメモリセルは、消去状態の閾値電圧分布ERを有し、データ“11”を記憶しているものとする。図17に示すように、下位ページデータの書き込みを行うと、メモリセルの閾値電圧分布ERは、下位ページデータの値(“1”、或いは“0”)に応じて、2つの閾値電圧分布(ER1、A1)に分けられる。下位ページデータの値が“1”の場合には、消去状態の閾値電圧分布ERを維持するのでER1=ERであるが、ER1>ERであってもよい。 First, writing of lower page data will be explained with reference to the first to second rows of FIG. 17. It is assumed that all memory cells have a threshold voltage distribution ER in the erased state and store data "11". As shown in FIG. 17, when lower page data is written, the threshold voltage distribution ER of the memory cell is divided into two threshold voltage distributions ( It is divided into ER1 and A1). When the value of the lower page data is "1", the threshold voltage distribution ER in the erased state is maintained, so ER1=ER, but ER1>ER may also be true.

一方、下位ページデータの値が“0”の場合には、メモリセルのトンネル酸化膜に高電界を印加し、フローティングゲート電極に電子を注入して、メモリセルの閾値電圧Vthを所定量だけ上昇させる。具体的には、ベリファイ電位VA1Vを設定し、このベリファイ電圧VA1V以上の閾値電圧となるまで書き込み動作が繰り返される。その結果、メモリセルは、書き込み状態(データ“10”)に変化する。書き込み動作を所定回繰り返しても閾値電圧に到達しなかった場合(または閾値電圧に到達しないメモリセル数が所定値以上の場合)、当該物理ページに対する書き込みは「書き込みエラー」となる。 On the other hand, if the value of the lower page data is "0", a high electric field is applied to the tunnel oxide film of the memory cell, electrons are injected into the floating gate electrode, and the threshold voltage Vth of the memory cell is increased by a predetermined amount. let Specifically, a verify potential V A1V is set, and the write operation is repeated until a threshold voltage equal to or higher than this verify voltage V A1V is reached. As a result, the memory cell changes to the write state (data "10"). If the threshold voltage is not reached even after repeating the write operation a predetermined number of times (or if the number of memory cells that do not reach the threshold voltage is greater than or equal to a predetermined value), writing to the physical page results in a "write error."

次に、上位ページデータの書き込みを、図17の2段目~3段目を参照して説明する。上位ページデータの書き込みは、チップの外部から入力される書き込みデータ(上位ページデータ)と、メモリセルに既に書き込まれている下位ページデータとに基づいて行われる。 Next, writing of upper page data will be explained with reference to the second to third rows in FIG. Writing of upper page data is performed based on write data (upper page data) input from outside the chip and lower page data already written in the memory cells.

即ち、図17の2段目~3段目に示すように、上位ページデータの値が“1”の場合には、メモリセルのトンネル酸化膜に高電界がかからないようにし、メモリセルの閾値電圧Vthの上昇を防止する。その結果、データ“11”(消去状態の閾値電圧分布ER1)のメモリセルは、データ“11”をそのまま維持し(ER2)、データ“10”(閾値電圧分布A1)のメモリセルは、データ“10”をそのまま維持する(B2)。ただし、各分布間の電圧マージンを確保するという点で、上述のベリファイ電圧VA1Vよりも大きい正のベリファイ電圧VB2Vを用いて閾値電圧分布の下限値を調整し、これにより閾値電圧分布の幅を狭めた閾値電圧分布B2を形成するのが望ましい。下限値調整を所定回繰り返しても敷地電圧に到達しなかった場合(または閾値電圧に到達しないメモリセル数が所定値以上の場合)、当該物理ページに対する書き込みは「書き込みエラー」となる。 That is, as shown in the second to third rows of FIG. 17, when the value of the upper page data is "1", a high electric field is not applied to the tunnel oxide film of the memory cell, and the threshold voltage of the memory cell is Prevents Vth from increasing. As a result, the memory cell with data "11" (threshold voltage distribution ER1 in the erased state) maintains the data "11" (ER2), and the memory cell with data "10" (threshold voltage distribution A1) maintains the data "11" as it is (ER2). 10” (B2). However, in order to ensure a voltage margin between each distribution, the lower limit value of the threshold voltage distribution is adjusted using a positive verify voltage VB2V that is larger than the above-mentioned verify voltage VA1V , thereby increasing the width of the threshold voltage distribution. It is desirable to form a threshold voltage distribution B2 in which the threshold voltage distribution B2 is narrowed. If the ground voltage is not reached even after repeating the lower limit value adjustment a predetermined number of times (or if the number of memory cells that do not reach the threshold voltage is greater than or equal to a predetermined value), writing to the physical page will result in a "write error."

一方、上位ページデータの値が“0”の場合には、メモリセルのトンネル酸化膜に高電界を印加し、フローティングゲート電極に電子を注入して、メモリセルの閾値電圧Vthを所定量だけ上昇させる。具体的には、ベリファイ電位VA2V、VC2Vを設定し、このベリファイ電圧VA1V以上の閾値電圧となるまで書き込み動作が繰り返される。その結果、データ“11”(消去状態の閾値電圧分布ER1)のメモリセルは、閾値電圧分布A2のデータ“01”に変化し、データ“10”(A1)のメモリセルは、閾値電圧分布C2のデータ“00”に変化する。このとき、ベリファイ電圧VA2V、VC2Vが用いられて、閾値電圧分布A2、C2の下限値が調整される。書き込み動作を所定回繰り返しても敷地電圧に到達しなかった場合(または閾値電圧に到達しないメモリセル数が所定値以上の場合)、当該物理ページに対する書き込みは「書き込みエラー」となる。 On the other hand, if the value of the upper page data is "0", a high electric field is applied to the tunnel oxide film of the memory cell, electrons are injected into the floating gate electrode, and the threshold voltage Vth of the memory cell is increased by a predetermined amount. let Specifically, verify potentials V A2V and V C2V are set, and the write operation is repeated until the verify voltage V A1V or higher reaches a threshold voltage. As a result, the memory cell with data "11" (threshold voltage distribution ER1 in erased state) changes to data "01" with threshold voltage distribution A2, and the memory cell with data "10" (A1) changes to data "01" with threshold voltage distribution C2. The data changes to “00”. At this time, the verify voltages V A2V and V C2V are used to adjust the lower limit values of the threshold voltage distributions A2 and C2. If the ground voltage is not reached even after repeating the write operation a predetermined number of times (or if the number of memory cells that do not reach the threshold voltage is greater than or equal to a predetermined value), writing to the physical page results in a "write error."

一方、消去動作においては、消去ベリファイ電位Vevを設定し、このベリファイ電圧Vev以下の閾値電圧となるまで消去動作が繰り返される。その結果、メモリセルは、書き込み状態(データ“00”)に変化する。消去動作を所定回繰り返しても敷地電圧に到達しなかった場合(または閾値電圧に到達しないメモリセル数が所定値以上の場合)、当該物理ページに対する消去は「消去エラー」となる。 On the other hand, in the erase operation, an erase verify potential Vev is set, and the erase operation is repeated until the threshold voltage is equal to or lower than the verify voltage Vev. As a result, the memory cell changes to the write state (data "00"). If the ground voltage is not reached even after repeating the erase operation a predetermined number of times (or if the number of memory cells that do not reach the threshold voltage is greater than or equal to a predetermined value), erasing the physical page results in an "erase error."

以上が、一般的な4値記憶方式におけるデータ書き込み方式の一例である。3ビット以上の多ビット記憶方式においても、上記の動作に更に上位のページデータに応じ、閾値電圧分布を8通り以上に分割する動作が加わるのみであるので、基本的な動作は同様である。 The above is an example of a data writing method in a general four-value storage method. Even in the case of a multi-bit storage system of 3 bits or more, the basic operation is the same, since the above operation only requires the addition of an operation of dividing the threshold voltage distribution into 8 or more ways according to higher-order page data.

つぎに、SSD2の構成例について説明する。図18に示すように、SSD2は、不揮発性半導体メモリとしてのNAND型フラッシュメモリ(以下NANDメモリと略す)16と、ATAインタフェース19を介してホスト装置3との信号の送受信を行うインタフェースコントローラ(IFC)42と、インタフェースコントローラ42とNANDメモリ16との中間バッファとして機能するキャシュメモリ(CM)46を有する半導体メモリとしてのRAM(Random Access Memory)40と、NANDメモリ16及びRAM40の管理、制御、及びインタフェースコントローラ42の制御を司るSSDコントローラ(SSDC)41と、これら構成要素を接続するバス43を備える。 Next, a configuration example of the SSD 2 will be explained. As shown in FIG. 18, the SSD 2 includes a NAND flash memory (hereinafter referred to as NAND memory) 16 as a nonvolatile semiconductor memory, and an interface controller (IFC) that transmits and receives signals to and from the host device 3 via an ATA interface 19. ) 42, a RAM (Random Access Memory) 40 as a semiconductor memory having a cache memory (CM) 46 functioning as an intermediate buffer between the interface controller 42 and the NAND memory 16, and management and control of the NAND memory 16 and the RAM 40. It includes an SSD controller (SSDC) 41 that controls the interface controller 42, and a bus 43 that connects these components.

RAM40としては、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、PRAM(Phase Change Random Access Memory)などを採用することができる。RAM40はSSDC41に含まれてもよい。 As the RAM 40, DRAM (Dynamic Random Access Memory), SRAM (Static Random Access Memory), FeRAM (Ferroelectric Random Access Memory), MRAM (Magnetoresistive Random Access Memory), PRAM (Phase Change Random Access Memory), etc. can be adopted. can. RAM40 may be included in SSDC41.

NANDメモリ16は、複数のNANDメモリチップ80からなり、ホスト装置3によって指定されたユーザデータを記憶したり、ユーザデータを管理する管理テーブルを記憶したり、RAM40で管理される管理情報をバックアップ用に記憶したりする。NANDメモリ16は、複数のメモリセルがマトリクス状に配列されたメモリセルアレイ82を有し、個々のメモリセルは上位ページ及び下位ページを使用して多値記憶が可能である。NANDメモリ16は、複数のメモリチップによって構成され、各メモリチップは、データ消去の単位であるブロックを複数配列して構成される。また、NANDメモリ16では、ページごとにデータの書き込み及びデータの読み出しが行われる。ブロックは、複数のページによって構成されている。 The NAND memory 16 is composed of a plurality of NAND memory chips 80, and stores user data designated by the host device 3, stores a management table for managing user data, and backs up management information managed in the RAM 40. or memorize it. The NAND memory 16 has a memory cell array 82 in which a plurality of memory cells are arranged in a matrix, and each memory cell can perform multi-level storage using an upper page and a lower page. The NAND memory 16 is constituted by a plurality of memory chips, and each memory chip is constituted by arranging a plurality of blocks, which are units of data erasure. Furthermore, in the NAND memory 16, data is written and read on a page-by-page basis. A block is made up of multiple pages.

RAM40は、ホスト装置3とNANDメモリ16間でのデータ転送用キャッシュとして機能するキャッシュメモリ(CM)46を有する。また、RAM40は、管理情報記憶用メモリ及び作業領域用メモリとして機能する。RAM40の領域40Aで管理される管理テーブルは、NANDメモリ16の領域40Mに記憶されている各種管理テーブルがSSD2起動時などに展開されたものであり、定期的あるいは電源断時にNANDメモリ16の領域40Mに退避保存される。 The RAM 40 includes a cache memory (CM) 46 that functions as a data transfer cache between the host device 3 and the NAND memory 16. Further, the RAM 40 functions as a management information storage memory and a work area memory. The management table managed in the area 40A of the RAM 40 is the various management tables stored in the area 40M of the NAND memory 16 that are expanded when the SSD 2 is started, and the management table managed in the area 40A of the RAM 40 is expanded at the time of starting the SSD 2, etc. Saved to 40M.

SSDC41は、NANDメモリ16に記憶されたシステムプログラム(ファームウエア)を実行するプロセッサと、各種ハードウェア回路などによってその機能が実現され、ホスト装置3からのライト要求、キャッシュフラッシュ要求、リード要求等の各種コマンドに対するホスト装置3-NANDメモリ16間のデータ転送制御、RAM40及びNANDメモリ16に記憶された各種管理テーブルの更新・管理、NANDメモリ16に書き込むデータのECC符号化、NANDメモリ16から読み出したデータのECC複合化などを実行する。 The functions of the SSDC 41 are realized by a processor that executes a system program (firmware) stored in the NAND memory 16 and various hardware circuits, and handles write requests, cache flush requests, read requests, etc. from the host device 3. Data transfer control between the host device 3 and the NAND memory 16 for various commands, updating and management of various management tables stored in the RAM 40 and the NAND memory 16, ECC encoding of data written to the NAND memory 16, reading from the NAND memory 16 Executes ECC decoding of data, etc.

ホスト装置3はSSD2に対し、リード要求またはライト要求を発行する際には、ATAインタフェース19を介して論理アドレスとしてのLBA(Logical Block Addressing)を入力する。LBAは、論理セクタ(サイズ:例えば512B)に対して0からの通し番号をつけた論理アドレスである。また、ホスト装置3はSSD2に対し、リード要求またはライト要求を発行する際には、LBAと併せて、リード要求またはライト要求の対象となる論理セクタサイズを入力する。 When the host device 3 issues a read request or a write request to the SSD 2, it inputs an LBA (Logical Block Addressing) as a logical address via the ATA interface 19. LBA is a logical address that is serially numbered from 0 to a logical sector (size: 512B, for example). Further, when the host device 3 issues a read request or a write request to the SSD 2, it inputs the logical sector size to be the target of the read request or write request together with the LBA.

IFC42は、ホスト装置3からのリード要求、ライト要求、その他要求及びデータを受信し、受信した要求やデータをSSDC41に送信したり、SSDC41の制御によりRAM40にデータを送信したりする機能を持つ。 The IFC 42 has a function of receiving read requests, write requests, other requests and data from the host device 3, transmitting the received requests and data to the SSDC 41, and transmitting data to the RAM 40 under the control of the SSDC 41.

図19にSSD2で使用する管理情報の構成を示す。これらの管理情報は、前述したように、NANDメモリ16の領域40Mで不揮発記憶されている。領域40Mで記憶された管理情報がSSD2の起動時にRAM40の領域40Aに展開されて使用される。領域40Aの管理情報44は、定期的あるいは電源断時に領域40Mに退避保存される。RAM40がMRAMやFeRAMなどのような不揮発RAMである場合には、この管理情報44はRAM40にのみ記憶されるようにしてもよく、この場合はこの管理情報44はNANDメモリ16には記憶されない。NANDメモリ16への書き込み量を少なくするためには、管理情報45に記憶されるデータは、RAM40の領域40Aに記憶されているデータを圧縮したものであることが望ましい。また、NANDメモリ16への書き込み頻度を少なくするためには、管理情報45には、RAM40の領域40Aに記憶されている管理情報44の更新情報(差分情報)を追記するようにすることが望ましい。 FIG. 19 shows the configuration of management information used in the SSD 2. As described above, this management information is non-volatilely stored in the area 40M of the NAND memory 16. The management information stored in the area 40M is expanded to the area 40A of the RAM 40 and used when the SSD 2 is started. The management information 44 in the area 40A is saved in the area 40M periodically or when the power is turned off. If the RAM 40 is a nonvolatile RAM such as MRAM or FeRAM, the management information 44 may be stored only in the RAM 40, and in this case, the management information 44 is not stored in the NAND memory 16. In order to reduce the amount of data written to the NAND memory 16, it is desirable that the data stored in the management information 45 be compressed data stored in the area 40A of the RAM 40. Furthermore, in order to reduce the frequency of writing to the NAND memory 16, it is desirable to add update information (difference information) to the management information 44 stored in the area 40A of the RAM 40 to the management information 45. .

図19に示すように、管理情報は、フリーブロックテーブル(FBT)60と、バッドブロックテーブル(BBT)61と、アクティブブロックテーブル(ABT)62と、トラックテーブル(トラック単位の論物変換テーブル)63と、クラスタテーブル(クラスタ単位の論物変換テーブル)64、統計情報65を含む。 As shown in FIG. 19, the management information includes a free block table (FBT) 60, a bad block table (BBT) 61, an active block table (ABT) 62, and a track table (logical-physical conversion table for each track) 63. , a cluster table (logical-physical conversion table for each cluster) 64, and statistical information 65.

LBAは、図20に示すように、論理セクタ(サイズ:例えば512B)に対して0からの通し番号をつけた論理アドレスである。本実施形態においては、SSD2の論理アドレス(LBA)の管理単位として、LBAの下位(s+1)ビット目から上位のビット列で構成されるクラスタアドレスと、LBAの下位(s+t+1)ビットから上位のビット列で構成されるトラックアドレスとを定義する。すなわち、論理セクタは、ホスト装置3からの最小アクセス単位である。クラスタは、SSD内部で「小さなデータ」を管理する管理単位であり、論理セクタサイズの自然数倍がクラスタサイズとなるように定められる。また、トラックは、SSD内部で「大きなデータ」を管理する管理単位であり、クラスタサイズの2以上の自然数倍がトラックサイズとなるように定められる。したがって、トラックアドレスはLBAをトラックサイズで割ったものであり、トラック内アドレスはLBAをトラックサイズで割った余りであり、クラスタアドレスはLBAをクラスタサイズで割ったものであり、クラスタ内アドレスはLBAをクラスタサイズで割った余りである。以下の説明では、便宜上、トラックのサイズは1物理ブロックに記録可能なデータのサイズに等しい(物理ブロックにSSDC41で行うECC処理の冗長ビットが含まれる場合はこれを除いたサイズ)とし、クラスタのサイズは1物理ページに記録可能なデータのサイズに等しい(物理ページにSSDC41で行うECC処理の冗長ビットが含まれる場合はこれを除いたサイズ)とする。 As shown in FIG. 20, the LBA is a logical address that is serially numbered from 0 to a logical sector (size: 512B, for example). In this embodiment, the logical address (LBA) of the SSD 2 is managed as a cluster address consisting of a bit string from the lower (s+1) bit to the upper bit of the LBA, and a cluster address consisting of the bit string from the lower (s+t+1) bit to the upper bit of the LBA. Define the track address to be configured. That is, a logical sector is the minimum unit of access from the host device 3. A cluster is a management unit for managing "small data" within the SSD, and the cluster size is determined to be a natural number times the logical sector size. Further, a track is a management unit for managing "large data" within the SSD, and the track size is determined to be a natural number times 2 or more of the cluster size. Therefore, a track address is the LBA divided by the track size, an intra-track address is the remainder of the LBA divided by the track size, a cluster address is the LBA divided by the cluster size, and an intra-cluster address is the remainder of the LBA divided by the track size. is the remainder when divided by the cluster size. In the following explanation, for convenience, the track size is assumed to be equal to the data size that can be recorded in one physical block (if the physical block includes redundant bits for ECC processing performed by the SSDC 41, this size is excluded), and the size of the cluster is The size is equal to the size of data that can be recorded in one physical page (if the physical page includes redundant bits for ECC processing performed by the SSDC 41, this size is excluded).

フリーブロックテーブル(FBT)60は、NANDメモリ16に書き込みを行うときに書き込み用に新規に割り当てることのできるNANDメモリの用途未割り当ての物理ブロック(フリーブロック:FB)のIDを管理する。また、物理ブロックID毎に消去回数を管理しており、物理ブロックが消去されたとき、当該ブロックの消去回数をインクリメントする。 The free block table (FBT) 60 manages IDs of unassigned physical blocks (free blocks: FBs) of the NAND memory that can be newly allocated for writing when writing to the NAND memory 16. Furthermore, the number of times of erasure is managed for each physical block ID, and when a physical block is erased, the number of times of erasure of the block is incremented.

バッドブロックテーブル(BBT)61は、誤りが多いなど記憶領域として使用できない物理ブロック(物理ブロック)としてのバッドブロック(BB)のIDを管理する。FBT60と同様に物理ブロックID毎に消去回数を管理するようにしてもよい。 The bad block table (BBT) 61 manages IDs of bad blocks (BB) as physical blocks that cannot be used as storage areas due to many errors. Similarly to the FBT 60, the number of times of erasure may be managed for each physical block ID.

アクティブブロックテーブル(ABT)62は、用途が割り当てられた物理ブロックであるアクティブブロック(AB)を管理する。また、物理ブロックID毎に消去回数を管理しており、物理ブロックが消去されたとき、当該ブロックの消去回数をインクリメントする。 The active block table (ABT) 62 manages active blocks (AB), which are physical blocks to which usages are assigned. Furthermore, the number of times of erasure is managed for each physical block ID, and when a physical block is erased, the number of times of erasure of the block is incremented.

トラックテーブル63は、トラックアドレスと、このトラックアドレスに対応するトラックデータが記憶される物理ブロックIDとの対応関係を管理する。 The track table 63 manages the correspondence between a track address and a physical block ID in which track data corresponding to this track address is stored.

クラスタテーブル64は、クラスタアドレスと、このクラスタアドレスに対応するクラスタデータが記憶される物理ブロックIDと、このクラスタアドレスに対応するクラスタデータが記憶される物理ブロック内ページアドレスとの対応関係を管理する。 The cluster table 64 manages the correspondence between a cluster address, a physical block ID in which cluster data corresponding to this cluster address is stored, and a page address within the physical block in which cluster data corresponding to this cluster address is stored. .

統計情報65には、SSD2の信頼性に関わる種々のパラメータ(X01~X24)を格納する。 The statistical information 65 stores various parameters (X01 to X24) related to the reliability of the SSD 2.

統計情報65としては、バッドブロック数総計(統計情報X01)、消去回数総計(統計情報X02)、消去回数平均値(統計情報X03)、NANDメモリの書き込みエラー発生回数累積値(統計情報X04)、NANDメモリの消去エラー発生回数累積値(統計情報X05)、読み出し論理セクタ数総計(統計情報X06)、書き込み論理セクタ数総計(統計情報X07)、ECC訂正不能回数総計(統計情報X08)、nビット~mビットECC訂正単位総計数(統計情報X09)、SATA通信のRエラー発生回数(統計情報X10)、SATA通信のエラー発生回数(統計情報X11)、RAM40のエラー発生回数(統計情報X12)、SSD2の使用時間総計(統計情報X13)、温度が推奨動作温度の最高値を上回った時間累計(統計情報X14)、温度が推奨動作温度の最低値を下回った時間累計(統計情報X15)、コマンドの応答時間最大値(統計情報X16)、コマンドの応答時間平均値(統計情報X17)、NANDメモリの応答時間最大値(統計情報X18)、NANDの応答時間平均値(統計情報X19)、現在温度(統計情報X20)、最高温度(統計情報X21)、最低温度(統計情報X22)、統計情報増加率(統計情報X23)、NAND整理失敗フラグ(統計情報X24)などが含まれる。 The statistical information 65 includes the total number of bad blocks (statistical information X01), the total number of erases (statistical information X02), the average number of erases (statistical information X03), the cumulative value of the number of NAND memory write errors (statistical information Cumulative value of the number of NAND memory erase errors (statistical information X05), total number of logical sectors read (statistical information X06), total number of logical sectors written (statistical information X07), total number of times ECC cannot be corrected (statistical information X08), n bit ~Total m-bit ECC correction unit count (statistical information X09), number of R errors in SATA communication (statistical information X10), number of errors in SATA communication (statistical information Total usage time of SSD2 (statistics information X13), cumulative amount of time that the temperature exceeds the maximum recommended operating temperature (statistics information maximum response time (statistical information X16), average command response time (statistical information X17), maximum NAND memory response time (statistical information X18), average NAND response time (statistical information X19), current temperature (statistical information X20), maximum temperature (statistical information X21), minimum temperature (statistical information X22), statistical information increase rate (statistical information X23), NAND sorting failure flag (statistical information X24), etc.

バッドブロック数総計(統計情報X01)について説明する。SSD2内のNANDメモリ16の物理ブロックが一つバッドブロックに追加されるごとに統計情報X01が1インクリメントされる。統計情報X01はSSD2の製造時(検査工程前)にゼロにリセットされていることが望ましく、検査工程でエラーが発生したり、閾値分布の分布間マージンが少ないことが判明したブロックは、あらかじめバッドブロックに加えておくことがさらに望ましい。統計情報X01は統計情報65に格納せず、BBT61から直接計算してもよい。統計情報X01が大きいほど信頼性が悪化していることを示す。 The total number of bad blocks (statistical information X01) will be explained. Each time one physical block of the NAND memory 16 in the SSD 2 is added to the bad block, the statistical information X01 is incremented by one. It is desirable that the statistical information It is even better to add it to the block. The statistical information X01 may be calculated directly from the BBT 61 without being stored in the statistical information 65. The larger the statistical information X01 is, the worse the reliability is.

消去回数総計(統計情報X02)について説明する。統計情報X02はSSD2内のNANDメモリ16の全ブロックの消去回数累計値を示す。SSD2内のNANDメモリ16の物理ブロックが一つ消去されるごとに統計情報X02が1インクリメントされる。統計情報X02はSSD2の製造時(検査工程前)にゼロにリセットされていることが望ましい。統計情報X02は統計情報65に格納せずFBT60、BBT61、ABT62から直接計算してもよい。統計情報X02が大きいほど信頼性が悪化していることを示す。 The total number of erasures (statistical information X02) will be explained. Statistical information X02 indicates the cumulative number of times of erasure of all blocks of the NAND memory 16 in the SSD 2. The statistical information X02 is incremented by 1 each time one physical block of the NAND memory 16 in the SSD 2 is erased. It is desirable that the statistical information X02 be reset to zero when the SSD 2 is manufactured (before the inspection process). The statistical information X02 may be calculated directly from the FBT60, BBT61, and ABT62 without being stored in the statistical information 65. The larger the statistical information X02 is, the worse the reliability is.

消去回数平均値(統計情報X03)について説明する。統計情報X03はSSD2内のNANDメモリ16の全ブロックの消去回数の1ブロックあたりの平均値を示す。管理情報を格納するブロックなど一部のブロックを統計情報X03の集計対象から除外してもよい。統計情報X03はSSD2の製造時(検査工程前)にゼロにリセットされていることが望ましい。統計情報X03は統計情報65に格納せずFBT60、BBT61、ABT62から直接計算してもよい。統計情報X03が大きいほど信頼性が悪化していることを示す。 The average number of erasures (statistical information X03) will be explained. Statistical information X03 indicates the average value of the number of times of erasure of all blocks of the NAND memory 16 in the SSD 2 per block. Some blocks, such as blocks storing management information, may be excluded from the statistical information X03 aggregation targets. It is desirable that the statistical information X03 be reset to zero when the SSD 2 is manufactured (before the inspection process). The statistical information X03 may be calculated directly from the FBT60, BBT61, and ABT62 without being stored in the statistical information 65. The larger the statistical information X03 is, the worse the reliability is.

NANDメモリの書き込みエラー発生回数累積値(統計情報X04)について説明する。統計情報X04はSSD2内のNANDメモリ16で書き込みエラーが1書き込み単位で発生するごとに1加算される(ブロック単位で加算してもよい)。統計情報X04はSSD2の製造時(検査工程前)にゼロにリセットされていることが望ましい。統計情報X04が大きいほど信頼性が悪化していることを示す。 The cumulative value of the number of write errors in the NAND memory (statistical information X04) will be explained. The statistical information X04 is incremented by 1 each time a write error occurs in the NAND memory 16 in the SSD 2 in units of write (addition may be made in units of blocks). It is desirable that the statistical information X04 be reset to zero when the SSD 2 is manufactured (before the inspection process). The larger the statistical information X04 is, the worse the reliability is.

NANDメモリの消去エラー発生回数累積値(統計情報X05)について説明する。統計情報X05はSSD2製造時(検査工程前)にゼロにリセットされていることが望ましい。SSD2内のNANDメモリ16で消去エラーが1ブロックで発生するごとに統計情報X05が1加算される。複数のブロックをまとめて消去単位とし、この消去単位1つで消去エラーが発生するごとに統計情報X05に1加算するようにしてもよい。統計情報X05が大きいほど信頼性が悪化していることを示す。 The cumulative value of the number of times erasure errors occur in the NAND memory (statistical information X05) will be explained. It is desirable that the statistical information X05 be reset to zero when the SSD 2 is manufactured (before the inspection process). Each time an erase error occurs in one block in the NAND memory 16 in the SSD 2, 1 is added to the statistical information X05. A plurality of blocks may be grouped together as an erase unit, and each time an erase error occurs in one erase unit, 1 may be added to the statistical information X05. The larger the statistical information X05 is, the worse the reliability is.

読み出し論理セクタ数総計(統計情報X06)について説明する。統計情報X06はIFC42が読み出しデータとしてホスト装置3に送信したデータの論理セクタ数合計である。統計情報X06はSSD2製造時(検査工程前)にゼロにリセットされていることが望ましい。統計情報X06が大きいほど信頼性が悪化していることを示す。 The total number of read logical sectors (statistical information X06) will be explained. Statistical information X06 is the total number of logical sectors of data transmitted by the IFC 42 to the host device 3 as read data. It is desirable that the statistical information X06 be reset to zero when the SSD 2 is manufactured (before the inspection process). The larger the statistical information X06 is, the worse the reliability is.

書き込み論理セクタ数総計(統計情報X07)について説明する。統計情報X07はIFC42が書き込みデータとしてホスト装置3から受信したデータの論理セクタ数合計である。統計情報X07はSSD2の製造時(検査工程前)にゼロにリセットされていることが望ましい。統計情報X07が大きいほど信頼性が悪化していることを示す。 The total number of write logical sectors (statistical information X07) will be explained. Statistical information X07 is the total number of logical sectors of data received by the IFC 42 from the host device 3 as write data. It is preferable that the statistical information X07 is reset to zero when the SSD 2 is manufactured (before the inspection process). The larger the statistical information X07 is, the worse the reliability is.

ECC訂正不能回数総計(統計情報X08)について説明する。ECC訂正によりエラービットが修復できなかった場合に、1読み出し単位ごとに統計情報X08を1インクリメントする。エラー訂正できなかったエラービット数の推定値を加算するようにしてもよいし、エラー訂正できなかったブロックの数を加算するようにしてもよい。統計情報X08はSSD2製造時(検査工程前)にゼロにリセットされていることが望ましい。統計情報X08が大きいほど信頼性が悪化していることを示す。 The total number of uncorrectable ECC times (statistical information X08) will be explained. If the error bit cannot be repaired by ECC correction, the statistical information X08 is incremented by 1 for each read unit. The estimated value of the number of error bits for which error correction could not be made may be added, or the number of blocks for which error correction could not be made may be added. It is preferable that the statistical information X08 is reset to zero when the SSD 2 is manufactured (before the inspection process). The larger the statistical information X08 is, the worse the reliability is.

nビット~mビットECC訂正単位総計数(統計情報X09)について説明する。n,mは自然数で、0≦n≦m≦訂正可能最大ビット数である。ECC訂正単位(たとえば物理ページ)に対してECC訂正を行った時、全エラービットが正常に修復され、かつ修復されたエラービット数がn以上m以下である場合、ECC訂正単位1つにつき「nビット~mビットECC訂正単位総計数」を1加算する。ECC訂正により1訂正単位につき最大64ビット訂正可能である場合、たとえば、「1ビット~8ビットECC訂正単位総計数」「9ビット~16ビットECC訂正単位総計数」「17ビット~24ビットECC訂正単位総計数」「25ビット~32ビットECC訂正単位総計数」「33ビット~40ビットECC訂正単位総計数」「41ビット~48ビットECC訂正単位総計数」「49ビット~56ビットECC訂正単位総計数」「57ビット~64ビットECC訂正単位総計数」の8つのパラメータを用意し、ECC訂正が正常に行われた場合、1ECC訂正単位のECC訂正につきこれら8つのパラメータのうちいずれか1つに1がインクリメントされる。統計情報X09はSSD2の製造時(検査工程前)にゼロにリセットされていることが望ましい。統計情報X09が大きいほど信頼性が悪化していることを示す。 The n-bit to m-bit ECC correction unit total count (statistical information X09) will be explained. n and m are natural numbers, and 0≦n≦m≦maximum number of correctable bits. When ECC correction is performed on an ECC correction unit (for example, a physical page), if all error bits are repaired normally and the number of error bits repaired is greater than or equal to n and less than or equal to m, then " Add 1 to the total number of n-bit to m-bit ECC correction units. If a maximum of 64 bits can be corrected per correction unit by ECC correction, for example, "Total number of 1-bit to 8-bit ECC correction units", "Total number of 9-bit to 16-bit ECC correction units", "17-bit to 24-bit ECC correction "Total number of units" "Total number of 25-bit to 32-bit ECC correction units" "Total number of 33-bit to 40-bit ECC correction units" "Total number of 41-bit to 48-bit ECC correction units" "Total number of 49-bit to 56-bit ECC correction units If the ECC correction is performed normally, one of these eight parameters will be set for each ECC correction of one ECC correction unit. 1 is incremented. It is desirable that the statistical information X09 be reset to zero when the SSD 2 is manufactured (before the inspection process). The larger the statistical information X09 is, the worse the reliability is.

SATA通信のRエラー発生回数(統計情報X10)について説明する。統計情報X10はSATA規格におけるRエラー(Reception Error, R_ERR)が1回発生するごとに1インクリメントされる。ホストとSSDの間で送受信されるフレームにたとえばCRCエラーなど何らかのエラーがあった場合、Rエラーとしてカウントされる。統計情報X10として、SATA規格のPhy Event Countersのカウンタのいずれかを採用してもよい。統計情報X10はSSD2の製造時(検査工程前)にゼロにリセットされていることが望ましい。統計情報X10が大きいほど信頼性が悪化していることを示す。 The number of R error occurrences in SATA communication (statistical information X10) will be explained. The statistical information X10 is incremented by 1 each time an R error (Reception Error, R_ERR) according to the SATA standard occurs. If there is any error such as a CRC error in a frame transmitted and received between the host and the SSD, it is counted as an R error. As the statistical information X10, any of the Phy Event Counters of the SATA standard may be adopted. It is desirable that the statistical information X10 be reset to zero when the SSD 2 is manufactured (before the inspection process). The larger the statistical information X10 is, the worse the reliability is.

SATA通信のエラー発生回数(統計情報X11)について説明する。その他の(Rエラー以外の)SATA通信での異常が1回発生するごとに1インクリメントされる。たとえば、ATAインタフェース19やIFC42やSSDC41がSATA Generation3規格として設計されているにも関わらず、実際にSSD2やホスト装置3との間でネゴシエーションされた通信規格がGeneration2のようなより低速の通信規格であった場合、SATA通信上のエラーとみなし、統計情報X11を1インクリメントする。統計情報X11はSSD2の製造時(検査工程前)にゼロにリセットされていることが望ましい。この値が大きいほど信頼性が悪化していることを示す。 The number of errors occurring in SATA communication (statistical information X11) will be explained. It is incremented by 1 each time another abnormality in SATA communication (other than R error) occurs. For example, even though the ATA interface 19, IFC 42, and SSDC 41 are designed according to the SATA Generation 3 standard, the communication standard actually negotiated with the SSD 2 and host device 3 is a slower communication standard such as Generation 2. If so, it is regarded as an error in SATA communication, and statistical information X11 is incremented by one. It is desirable that the statistical information X11 be reset to zero when the SSD 2 is manufactured (before the inspection process). The larger this value is, the worse the reliability is.

RAM40のエラー発生回数(統計情報X12)について説明する。たとえば、RAM40にECC回路やエラー検知回路を搭載している場合、ECC訂正できなかった旨の信号やエラー検知された旨の信号をRAM40からSSDC41が受け取った場合、統計情報X12を1インクリメントする。統計情報X12はSSD2の製造時(検査工程前)にゼロにリセットされていることが望ましい。この値が大きいほど信頼性が悪化していることを示す。 The number of errors occurring in the RAM 40 (statistical information X12) will be explained. For example, when the RAM 40 is equipped with an ECC circuit or an error detection circuit, when the SSDC 41 receives a signal indicating that ECC correction could not be performed or a signal indicating that an error was detected from the RAM 40, the statistical information X12 is incremented by one. It is desirable that the statistical information X12 be reset to zero when the SSD 2 is manufactured (before the inspection process). The larger this value is, the worse the reliability is.

SSD2の使用時間総計(統計情報X13)について説明する。SSD2の電源がONになっている間、SSDC41がクロックをカウントしたり内部の時計回路から時刻情報を受信することで、経過時間をインクリメントする。あるいは、SSDC41がホスト装置3から定期的にホスト装置3の時刻情報を受信するようにし、その時刻情報の差分をインクリメントするようにしてもよい。統計情報X13はSSD2製造時(検査工程前)にゼロにリセットされていることが望ましい。この値が大きいほど信頼性が悪化していることを示す。 The total usage time of the SSD 2 (statistical information X13) will be explained. While the SSD 2 is powered on, the SSDC 41 increments the elapsed time by counting clocks or receiving time information from an internal clock circuit. Alternatively, the SSDC 41 may periodically receive the time information of the host device 3 from the host device 3, and may increment the difference in the time information. It is desirable that the statistical information X13 be reset to zero when the SSD 2 is manufactured (before the inspection process). The larger this value is, the worse the reliability is.

推奨動作温度の最高値を上回った時間累計(統計情報X14)について説明する。たとえば、SSD2の基板上、SSDC41内、NANDメモリ16内など、SSD2内に温度計が実装されている場合、SSDC41は温度計から定期的に温度情報を受信している。受信した温度が推奨動作温度(たとえば100℃)を上回った場合、SSDC41はクロックや内部の時計やホスト装置3から取得する時刻情報をもとに、推定動作温度以上で動作している時間数をインクリメントしていく。統計情報X14はSSD2の製造時(検査工程前)にゼロにリセットされていることが望ましい。この値が大きいほど信頼性が悪化していることを示す。 The cumulative time (statistical information X14) during which the recommended operating temperature exceeds the maximum value will be explained. For example, if a thermometer is mounted inside the SSD 2, such as on the board of the SSD 2, inside the SSDC 41, or inside the NAND memory 16, the SSDC 41 regularly receives temperature information from the thermometer. If the received temperature exceeds the recommended operating temperature (for example, 100°C), the SSDC 41 calculates the number of hours it has been operating at or above the estimated operating temperature based on the clock, internal clock, and time information obtained from the host device 3. Increment. It is desirable that the statistical information X14 be reset to zero when the SSD 2 is manufactured (before the inspection process). The larger this value is, the worse the reliability is.

推奨動作温度の最低値を下回った時間累計(統計情報X15)について説明する。SSD2内に温度計が実装されている場合、SSDC41は温度計から定期的に温度情報を受信している。受信した温度が推奨動作温度(たとえば-40℃)を下回った場合、SSDC41はクロックや内部の時計やホスト装置3から取得する時刻情報をもとに、推定動作温度以上で動作している時間数をインクリメントしていく。SSD2の製造時(検査工程前)にゼロにリセットされていることが望ましい。この値が大きいほど信頼性が悪化していることを示す。 The cumulative amount of time (statistical information X15) during which the recommended operating temperature has fallen below the minimum value will be explained. If a thermometer is installed in the SSD 2, the SSDC 41 regularly receives temperature information from the thermometer. If the received temperature is lower than the recommended operating temperature (for example -40°C), the SSDC 41 calculates the number of hours it has been operating at or above the estimated operating temperature based on the clock, internal clock, and time information obtained from the host device 3. is incremented. It is desirable that the value be reset to zero when the SSD 2 is manufactured (before the inspection process). The larger this value is, the worse the reliability is.

コマンドの応答時間最大値(統計情報X16)について説明する。統計情報X16はホスト装置3からコマンドを受信してから、ホスト装置3へ応答するまで(またはコマンド実行完了するまで)に要した時間(またはクロック数)の最大値である。X16を上回る応答時間が発生した場合は、この応答時間をX16に上書きする。コマンドそれぞれに対して統計情報X16を保持してもよい。SSD2の製造時(検査工程前)またはSSD2の出荷時にはX16がゼロにリセットされていることが望ましい。 The command response time maximum value (statistical information X16) will be explained. The statistical information X16 is the maximum value of the time (or number of clocks) required from receiving a command from the host device 3 to responding to the host device 3 (or completing command execution). If a response time exceeding X16 occurs, this response time is overwritten to X16. Statistical information X16 may be held for each command. It is desirable that X16 be reset to zero when the SSD 2 is manufactured (before the inspection process) or when the SSD 2 is shipped.

コマンドの応答時間平均値(統計情報X17)について説明する。統計情報X17は、ホスト装置3からコマンドを受信してから、ホスト装置3へ応答するまで(またはコマンド実行完了するまで)に要した時間(またはクロック数)の平均値である。たとえば応答時間リストを一定数RAM40に保持しておき、その応答時間リストの平均値を算出することにより得られる。コマンドそれぞれに対して統計情報X17を保持してもよい。SSD2の製造時(検査工程前)またはSSD2の出荷時にはX17がゼロにリセットされていることが望ましい。 The command response time average value (statistical information X17) will be explained. The statistical information X17 is the average value of the time (or number of clocks) required from receiving a command from the host device 3 to responding to the host device 3 (or completing command execution). For example, it can be obtained by retaining a certain number of response time lists in the RAM 40 and calculating the average value of the response time lists. Statistical information X17 may be held for each command. It is desirable that X17 be reset to zero when the SSD 2 is manufactured (before the inspection process) or when the SSD 2 is shipped.

NANDメモリの応答時間最大値(統計情報X18)について説明する。統計情報X18は、SSDC41がNANDメモリ16に命令してから応答を得る(またはコマンド実行完了通知を受信する)までに要した時間(またはクロック数)の最大値である。X18を上回る応答時間が発生した場合は、この応答時間をX18に上書きする。コマンドそれぞれに対して統計情報X18を保持してもよい。SSD2の製造時(検査工程前)またはSSD2の出荷時にはX18がゼロにリセットされていることが望ましい。 The maximum response time (statistical information X18) of the NAND memory will be explained. The statistical information X18 is the maximum value of the time (or number of clocks) required from when the SSDC 41 issues a command to the NAND memory 16 until it receives a response (or receives a command execution completion notification). If a response time exceeding X18 occurs, this response time is overwritten to X18. Statistical information X18 may be held for each command. It is desirable that X18 be reset to zero when the SSD 2 is manufactured (before the inspection process) or when the SSD 2 is shipped.

NANDの応答時間平均値(統計情報X19)について説明する。統計情報X19は、SSDC41がNANDメモリ16に命令してから応答を得る(またはコマンド実行完了通知を受信する)までに要した時間(またはクロック数)の平均値である。たとえば応答時間リストを一定数RAM40に保持しておき、その応答時間リストの平均値を算出することにより得られる。コマンドそれぞれに対して統計情報X19を保持してもよい。SSD2の製造時(検査工程前)またはSSD2の出荷時にはX19がゼロにリセットされていることが望ましい。 The NAND response time average value (statistical information X19) will be explained. The statistical information X19 is the average value of the time (or number of clocks) required from when the SSDC 41 issues a command to the NAND memory 16 until it receives a response (or receives a command execution completion notification). For example, it can be obtained by retaining a certain number of response time lists in the RAM 40 and calculating the average value of the response time lists. Statistical information X19 may be held for each command. It is desirable that X19 be reset to zero when the SSD 2 is manufactured (before the inspection process) or when the SSD 2 is shipped.

現在温度(統計情報X20)について説明する。SSD2内に温度計が実装されている場合、SSDC41は温度計から定期的に温度情報を受信する。SSDC41は温度計から最後に受信した温度を現在温度として統計情報X20に保持する。この値が極端に大きいと(たとえば85℃以上)、SSD2の信頼性に悪影響があり、また、この温度が極端に小さいと(たとえば-10℃以下)、SSD2の信頼性に悪影響があると判断する。 The current temperature (statistical information X20) will be explained. If a thermometer is installed in the SSD 2, the SSDC 41 periodically receives temperature information from the thermometer. The SSDC 41 holds the temperature last received from the thermometer as the current temperature in the statistical information X20. If this value is extremely high (e.g. 85°C or higher), it will have a negative impact on the reliability of SSD2, and if this temperature is extremely low (e.g. -10°C or lower), it will have a negative impact on the reliability of SSD2. do.

最高温度(統計情報X21)について説明する。SSDC41は、現在温度X20の最大値を最高温度として統計情報X21に保持する。この値が極端に大きいと(たとえば85℃以上)、SSD2の信頼性に悪影響がある。SSDC41は、X21よりも大きい現在温度を温度計から受信した時、X21を現在温度に書き換える。SSD2の製造時(検査工程前)またはSSD2の出荷時にはX21がSSD2の動作温度にくらべて十分に小さい温度(たとえば-40℃)にリセットされていることが望ましい。 The maximum temperature (statistical information X21) will be explained. The SSDC 41 holds the maximum value of the current temperature X20 as the highest temperature in the statistical information X21. If this value is extremely large (for example, 85° C. or higher), the reliability of the SSD 2 will be adversely affected. When the SSDC 41 receives a current temperature larger than X21 from the thermometer, it rewrites X21 to the current temperature. It is desirable that X21 be reset to a temperature that is sufficiently lower than the operating temperature of the SSD 2 (for example, −40° C.) when the SSD 2 is manufactured (before the inspection process) or when the SSD 2 is shipped.

最低温度(統計情報X22)について説明する。SSDC41は、現在温度X20の最小値を最低温度として統計情報X22に保持する。この値が極端に小さいと(たとえば-40℃以下)、SSD2の信頼性に悪影響がある。SSDC41は、X22よりも小さい現在温度を温度計から受信した時、X22を現在温度に書き換える。SSD2の製造時(検査工程前)またはSSD2の出荷時にはX22がSSD2の動作温度にくらべて十分に大きい温度(たとえば120℃)にリセットされていることが望ましい。 The lowest temperature (statistical information X22) will be explained. The SSDC 41 holds the minimum value of the current temperature X20 as the lowest temperature in the statistical information X22. If this value is extremely small (for example, −40° C. or lower), the reliability of the SSD 2 will be adversely affected. When the SSDC 41 receives a current temperature smaller than X22 from the thermometer, it rewrites X22 to the current temperature. It is desirable that X22 be reset to a temperature that is sufficiently higher than the operating temperature of the SSD 2 (for example, 120° C.) when manufacturing the SSD 2 (before the inspection process) or shipping the SSD 2.

統計情報増加率(統計情報X23)について説明する。統計情報X01~X19の最新でない情報(たとえば一定時刻前や、SSD2をパワーオンした時の値や前回SSD2をパワーダウンしたときの値など)を別途保持しておく。統計情報X23は、例えば、下記のいずれかで定義される。 The statistical information increase rate (statistical information X23) will be explained. Information that is not the latest statistical information X01 to X19 (for example, the value before a certain time, the value when the SSD 2 was powered on, the value when the SSD 2 was powered down last time, etc.) is separately held. The statistical information X23 is defined, for example, as one of the following.

統計情報増加率=(最新統計情報)―(旧情報)
統計情報増加率=((最新統計情報)―(旧情報))/(旧情報を取得してからの経過時刻)
統計情報増加率=((最新統計情報)―(旧情報))/(旧情報を取得してからのNANDアクセス回数)
SSD2の製造時(検査工程前)にゼロにリセットされていることが望ましい。この値が大きいほど信頼性が悪化していることを示す。
Statistical information increase rate = (latest statistical information) - (old information)
Statistical information increase rate = ((latest statistical information) - (old information)) / (time elapsed since obtaining old information)
Statistical information increase rate = ((latest statistical information) - (old information)) / (number of NAND accesses since obtaining old information)
It is desirable that the value be reset to zero when the SSD 2 is manufactured (before the inspection process). The larger this value is, the worse the reliability is.

NAND整理失敗フラグ(統計情報X24)について説明する。統計情報X24が1になっていると、NAND整理によっても動作に十分な数のフリーブロック数を確保できないことになる。SSD2の製造時(検査工程前)にゼロにリセットされていることが望ましい。この値が大きいほど信頼性が悪化していることを示す。 The NAND sorting failure flag (statistical information X24) will be explained. If the statistical information X24 is 1, it will not be possible to secure a sufficient number of free blocks for operation even by NAND sorting. It is desirable that the value be reset to zero when the SSD 2 is manufactured (before the inspection process). The larger this value is, the worse the reliability is.

統計情報65としては、上述したすべてのパラメータを格納してもよいし、これらの一部あるいはどれか一つのみを格納してもよい。統計情報65は最新情報をRAM40上の領域40Aに保持し、定期的にNANDメモリ16上の領域40Mにバックアップすることが望ましい。一方、RAM40やNANDメモリ16のどちらか一方にのみ保存するようにしてもよいし、当該統計情報をホスト装置3に送信して、ホスト装置3やホスト装置3に接続された記憶装置に保存するようにしてもよい。 As the statistical information 65, all the parameters mentioned above may be stored, or only some or one of them may be stored. It is desirable that the latest statistical information 65 is kept in the area 40A on the RAM 40 and periodically backed up to the area 40M on the NAND memory 16. On the other hand, the statistical information may be saved only in either the RAM 40 or the NAND memory 16, or the statistical information may be sent to the host device 3 and saved in the host device 3 or a storage device connected to the host device 3. You can do it like this.

(LBA正引き変換)
つぎに、図21を用いてSSD2においてLBAから物理アドレスを特定する手順(LBA正引き変換)について説明する。LBAが指定されたとき、SSDC41はLBAからトラックアドレスとクラスタアドレスとクラスタ内アドレスを計算する。
(LBA forward conversion)
Next, a procedure for specifying a physical address from an LBA in the SSD 2 (LBA forward lookup conversion) will be described using FIG. 21. When an LBA is specified, the SSDC 41 calculates a track address, a cluster address, and an intra-cluster address from the LBA.

SSDC41は、まずトラックテーブル63を検索し、計算したトラックアドレスに対応する物理ブロックIDを特定する(ステップS100、S101)。SSDC41は、特定した物理ブロックIDが有効であるか否かを判定し(ステップS102)、物理ブロックIDがヌルではなく有効な値である場合は(ステップS102:Yes)、この物理ブロックIDがABT62にエントリされているか否かを検索する(ステップS103)。ABT62に物理ブロックIDがエントリされている場合は(ステップS104:Yes)、この物理ブロックIDの指定する物理ブロックの先頭位置からトラック内アドレス分だけシフトした位置が指定されたLBAに対応するNANDメモリ16上の物理的な位置となる(ステップS105)。このような場合には、LBAに対応するNANDメモリ16上の物理的な位置の特定にはクラスタテーブル64を必要とせず、このようなLBAを「トラック管理されているLBA」と呼ぶ。ステップS104において、ABT62に物理ブロックIDがエントリされていない場合は(ステップS104:No)、指定されたLBAは対応する物理アドレスを持たないことになり、このような状態を「未書き込み状態」と呼ぶ(ステップS106)。 The SSDC 41 first searches the track table 63 and identifies the physical block ID corresponding to the calculated track address (steps S100 and S101). The SSDC 41 determines whether the identified physical block ID is valid (step S102), and if the physical block ID is not null but a valid value (step S102: Yes), this physical block ID is the ABT62. A search is made to see if it has been entered (step S103). If the physical block ID is entered in the ABT 62 (step S104: Yes), the NAND memory corresponding to the specified LBA is shifted from the start position of the physical block specified by this physical block ID by the intra-track address. 16 (step S105). In such a case, the cluster table 64 is not required to specify the physical location on the NAND memory 16 corresponding to the LBA, and such an LBA is referred to as a "track-managed LBA." In step S104, if the physical block ID is not entered in the ABT 62 (step S104: No), the specified LBA does not have a corresponding physical address, and such a state is referred to as an "unwritten state". (Step S106).

ステップS102において、指定されたトラックアドレスに対応する物理アドレスがヌルであり無効な値の場合は(ステップS102:No)、SSDC41はLBAからクラスタアドレスを計算し、クラスタテーブル64を検索し、計算したクラスタアドレスに対応する物理ブロックID及び対応する物理ブロック内ページアドレスをクラスタテーブル64から取得する(ステップS107)。物理ブロックIDと物理ブロック内ページアドレスが指定する物理ページの先頭位置からクラスタ内アドレス分だけシフトした位置が指定されたLBAに対応するNANDメモリ16上の物理的な位置となる。このような場合は、LBAに対応するNANDメモリ16上の物理的な位置は、トラックテーブル63のみからは特定できず、クラスタテーブル64の参照を必要とすることになり、このようなLBAを「クラスタ管理されているLBA」という(ステップS108)。 In step S102, if the physical address corresponding to the specified track address is null and has an invalid value (step S102: No), the SSDC 41 calculates the cluster address from the LBA, searches the cluster table 64, and calculates the cluster address. The physical block ID corresponding to the cluster address and the corresponding intra-physical block page address are acquired from the cluster table 64 (step S107). The position shifted by the intra-cluster address from the top position of the physical page specified by the physical block ID and the physical block page address becomes the physical position on the NAND memory 16 corresponding to the specified LBA. In such a case, the physical location on the NAND memory 16 corresponding to the LBA cannot be specified from the track table 63 alone, but requires reference to the cluster table 64, and such an LBA is "cluster-managed LBA" (step S108).

(読み出し動作)
つぎに、図22、図23を用いてSSD2における読み出し動作を説明する。本実施形態で説明する読み出し動作はINCITS ACS-2に記載されている60h READ FPDMA QUEUEDの場合であるが、25h READ DMA EXTなどその他書き込みコマンドを採用してもよく、読み出しコマンドの種類の違いは発明の本質には影響しない。SSD2がホスト装置3から読み出し命令を受信した場合は(ステップS110)、SSDC41がこの読み出し命令をRAM40上の読み出し命令待ち行列に追加し(ステップS111)、読み出し命令を受理した旨をホスト装置3に返信する。
(Read operation)
Next, the read operation in the SSD 2 will be explained using FIGS. 22 and 23. The read operation described in this embodiment is the case of 60h READ FPDMA QUEUED described in INCITS ACS-2, but other write commands such as 25h READ DMA EXT may also be adopted, and the difference in the types of read commands is It does not affect the essence of the invention. When the SSD 2 receives a read command from the host device 3 (step S110), the SSDC 41 adds this read command to the read command queue on the RAM 40 (step S111), and notifies the host device 3 that the read command has been received. Reply.

一方、SSDC41は、RAM40上の読み出し命令待ち行列に命令が存在している場合、読み出し処理を実行可能な状態になっているか否かを判定し(ステップS120)、読み出し処理を実行可能な状態になったと判断すると、先の図21に示したLBA正引き変換手順にしたがってホスト装置3から受信したLBAからデータの物理的な位置を特定する(ステップS121)。SSDC41は、特定した位置の物理ページからデータを読み出し(ステップS123)、読み出したデータのうちECC冗長ビットを用いてECC復号化し(ステップS124)、復号化したデータをIFC42を介してホスト装置3に送信し(ステップS125)、統計情報65を更新する。なお、NANDメモリ16から読み出したデータは、いったんRAM40に書き込み、RAM40に書き込んだデータを復号化してホスト装置3に送信するようにしてもよいし、復号化したデータをいったんRAM40に書き込み、RAM40に書き込んだデータをホスト装置3に送信するようにしてもよい。 On the other hand, if the instruction exists in the read instruction queue on the RAM 40, the SSDC 41 determines whether or not the read process is executable (step S120), and sets the read process executable. If it is determined that the physical location of the data has been reached, the physical location of the data is specified from the LBA received from the host device 3 according to the LBA forward conversion procedure shown in FIG. 21 (step S121). The SSDC 41 reads data from the physical page at the specified position (step S123), decodes the read data using ECC redundancy bits (step S124), and sends the decoded data to the host device 3 via the IFC 42. The information is transmitted (step S125), and the statistical information 65 is updated. Note that the data read from the NAND memory 16 may be written to the RAM 40, and the data written to the RAM 40 may be decoded and sent to the host device 3. Alternatively, the decoded data may be written to the RAM 40 and then transferred to the RAM 40. The written data may be sent to the host device 3.

ステップS124において、SSDC41はECCによる復号化を試みるが、復号化できなかった場合、復号化できなかったページを含む物理ブロックをABT62から削除してBBT61に登録し、統計情報65のECC訂正できなかったECC訂正単位数総計(統計情報X08)を加算する。その際、当該ブロックのデータをFBT60から割り当てたフリーブロックにコピーし、当該フリーブロックの物理ブロックIDをABT62に登録してトラックテーブル63およびクラスタテーブル64の物理ブロックをコピー元物理ブロックIDからコピー先物理ブロックIDに書き換えることが望ましい。 In step S124, the SSDC 41 attempts decoding using ECC, but if decoding fails, the physical block containing the page that could not be decoded is deleted from the ABT 62 and registered in the BBT 61, and the ECC of the statistical information 65 cannot be corrected. The total number of ECC correction units (statistical information X08) is added. At that time, the data of the block is copied from the FBT 60 to the allocated free block, the physical block ID of the free block is registered in the ABT 62, and the physical blocks of the track table 63 and cluster table 64 are changed from the copy source physical block ID to the copy destination. It is desirable to rewrite it to a physical block ID.

(書き込み動作)
つぎに、図24、図25を用いてSSD2における書き込み動作を説明する。本実施形態で説明する書き込み動作はINCITS ACS-2に記載されている61h WRITE FPDMA QUEUEDの場合であるが、35h WRITE DMA EXTなどその他書き込みコマンドを採用してもよく、書き込みコマンドの種類の違いは発明の本質には影響しない。SSD2がホスト装置3から書き込み命令を受信した場合は(ステップS130)、SSDC41がこの書き込み命令をRAM40上の読み出し命令待ち行列に追加し(ステップS131)、書き込み命令を受理した旨をホスト装置3に返信する。
(Write operation)
Next, a write operation in the SSD 2 will be explained using FIGS. 24 and 25. The write operation described in this embodiment is the case of 61h WRITE FPDMA QUEUED described in INCITS ACS-2, but other write commands such as 35h WRITE DMA EXT may also be adopted, and the difference in the types of write commands is It does not affect the essence of the invention. When the SSD 2 receives a write command from the host device 3 (step S130), the SSDC 41 adds this write command to the read command queue on the RAM 40 (step S131), and notifies the host device 3 that the write command has been accepted. Reply.

一方、SSDC41は、RAM40上の書き込み命令待ち行列に命令が存在している場合、書き込み処理を実行可能な状態になっているか否かを判定し(ステップS140)、書き込み処理を実行可能な状態になったと判断すると、ホスト装置3に書き込み可能であることを通知し、ホスト装置3から書き込みデータを受信し、受信したデータをECC符号化し、符号化したデータをRAM40のキャッシュメモリ46に記憶する。なお、符号化しないデータをキャッシュメモリ46に記憶し、NANDメモリ16に書き込む時に符号化するようにしてもよい。 On the other hand, if the instruction exists in the write command queue on the RAM 40, the SSDC 41 determines whether or not the write process is executable (step S140), and makes the write process executable. If it is determined that the write is possible, it notifies the host device 3 that writing is possible, receives write data from the host device 3, encodes the received data with ECC, and stores the encoded data in the cache memory 46 of the RAM 40. Note that unencoded data may be stored in the cache memory 46 and encoded when written to the NAND memory 16.

つぎに、SSDC41はFBT60を読み出し(ステップS141)、FBT60からフリーブロックの物理ブロックIDを取得する。フリーブロックが存在しない場合は(ステップS142:No)、SSDC41は後述するNANDメモリ16の整理(NAND整理)を行い(ステップS143)、この整理の後、FBT60を読み出し(ステップS144)、FBT60からフリーブロックの物理ブロックIDを取得する。SSDC41は、物理ブロックIDを取得したフリーブロックに対し、消去動作を行う。消去エラーが発生した場合は、当該物理ブロックIDをBBT61に追加し、FBT60から削除し、S141からやり直してフリーブロックを再取得する。なお、一度消去エラーが発生した物理ブロックであっても、再度消去動作を行うと消去エラーが発生せずに正常に消去できることがあるため、バッドブロック数の不必要な増大を防止するという観点では、FBT60やABT62に統計情報X05としてのブロックごと消去エラー発生回数の項目を各ブロックごとに設け、ブロックの消去エラーが発生した場合にこれをインクリメントするようにし、ブロックごと消去エラー発生回数が所定値以上になった場合に当該ブロックをBBT61に登録するようにするのが望ましい。さらに望ましくは、連続して消去エラーが発生する物理ブロックのみをバッドブロック化するために、SSDC41は、前記「ブロックごと消去エラー発生回数」のかわりに「ブロックごと消去連続エラー回数」の項目をもうけ、ブロックの消去エラーが発生した場合にこれをインクリメントするようにし、消去をエラー無く行えた場合にこれをゼロにリセットするようにし、「ブロックごと消去連続エラー回数」が所定値以上になった場合に当該ブロックをBBT61に登録するようにするのが望ましい。 Next, the SSDC 41 reads the FBT 60 (step S141) and acquires the physical block ID of the free block from the FBT 60. If there is no free block (step S142: No), the SSDC 41 organizes the NAND memory 16 (NAND organize), which will be described later (step S143), reads the FBT 60 (step S144), and frees the block from the FBT 60. Get the physical block ID of the block. The SSDC 41 performs an erase operation on the free block for which the physical block ID has been acquired. If an erase error occurs, the physical block ID is added to the BBT 61, deleted from the FBT 60, and the process starts over from S141 to reacquire a free block. Note that even if a physical block has had an erase error once, it may be possible to erase it normally without an erase error if the erase operation is performed again. , an item for the number of block erase error occurrences as statistical information X05 is provided for each block in the FBT60 and ABT62, and this is incremented when a block erase error occurs, so that the number of block erase error occurrences is a predetermined value. It is desirable to register the block in the BBT 61 when the number of blocks exceeds the limit. More preferably, in order to convert only physical blocks in which erase errors occur continuously into bad blocks, the SSDC 41 provides an item "number of consecutive erase errors for each block" instead of the "number of times erase errors occur for each block". , This is incremented when a block erase error occurs, and reset to zero when erase is performed without error, and when the "number of consecutive block erase errors" exceeds a predetermined value. It is desirable to register the block in the BBT 61 at the same time.

つぎに、SSDC41は、書き込み命令で指定されているLBAが未書き込み状態であるか否かを検索するために、先の図21に示した正引き変換手順にしたがってLBAに対応する有効なデータがNANDメモリ16に記憶済みであるか否か判定する(ステップS145、S146)。 Next, in order to search whether the LBA specified in the write command is in an unwritten state, the SSDC 41 searches for valid data corresponding to the LBA according to the forward conversion procedure shown in FIG. It is determined whether the data has been stored in the NAND memory 16 (steps S145, S146).

LBAが未書き込み状態である場合は(ステップS146:Yes)、SSDC41は、キャッシュメモリ46に記憶している受信データをフリーブロックに書き込み(ステップS147)、書き込みを行ったフリーブロック(新物理ブロック)のID及びその消去回数をABT62に登録し、書き込みを行った物理ブロックのIDをFBT60から削除する(ステップS151)。この際、受信データのLBAをトラック単位の区画(トラック区画)で区切り、トラック区画内がデータで埋め尽くされているか否かを判定することで、トラック管理するかクラスタ管理するかを判定する(ステップS152)。すなわち、トラック区画内がデータで埋め尽くされている場合は、トラック管理となり、トラック区画内がデータで埋め尽くされていない場合は、クラスタ管理となる。クラスタ管理の場合は、クラスタテーブル64を書き換えて、LBAに新物理ブロックIDを関連付け(ステップS153)、さらにトラックテーブル63を書き換えて、LBAに無効な物理ブロックID(例えば、ヌル)を関連付ける。トラック管理の場合は、トラックテーブルを書き換えて、LBAに新物理ブロックIDを関連付ける(ステップS154)。 If the LBA is in an unwritten state (step S146: Yes), the SSDC 41 writes the received data stored in the cache memory 46 to the free block (step S147), and writes the written free block (new physical block). The ID of the physical block and the number of erasures thereof are registered in the ABT 62, and the ID of the physical block to which writing has been performed is deleted from the FBT 60 (step S151). At this time, the LBA of the received data is divided into sections for each track (track section), and by determining whether the track section is filled with data, it is determined whether to perform track management or cluster management ( Step S152). That is, when the track section is filled with data, track management is used, and when the track section is not filled with data, cluster management is used. In the case of cluster management, the cluster table 64 is rewritten to associate a new physical block ID with an LBA (step S153), and the track table 63 is further rewritten to associate an invalid physical block ID (for example, null) with an LBA. In the case of track management, the track table is rewritten to associate the new physical block ID with the LBA (step S154).

一方、ステップS146において、LBAが未書き込み状態でない場合は、SSDC41は正引き変換により得られた物理ブロックIDをもとに、対応する物理ブロック内全データをNANDメモリ16から読み出して、RAM40に書き込む(ステップS148)。そして、キャッシュメモリ46に記憶されているデータとNANDメモリ16から読み出してRAM40に書き込んだデータとをRAM40上で合成し(ステップS149)、合成したデータをフリーブロックに書き込む(ステップS150)。 On the other hand, in step S146, if the LBA is not in an unwritten state, the SSDC 41 reads all data in the corresponding physical block from the NAND memory 16 based on the physical block ID obtained by forward conversion, and writes it to the RAM 40. (Step S148). Then, the data stored in the cache memory 46 and the data read from the NAND memory 16 and written to the RAM 40 are combined on the RAM 40 (step S149), and the combined data is written to the free block (step S150).

なお、ステップS150で書き込みエラーが発生した場合は、当該物理ブロックIDをBBT61に追加し、FBT60から削除し、ステップS141からやり直してフリーブロックを再取得する。なお、一度書き込みエラーが発生した物理ブロックであっても、再度書き込み動作を行うと書き込みエラーが発生せずに正常に書き込みできることがあるため、バッドブロック数の不必要な増大を防止するという観点では、FBT60やABT62に統計情報X04としてのブロックごと書き込みエラー発生回数の項目を各ブロックごとに設け、ブロックの書き込みエラーが発生した場合にこれをインクリメントするようにし、「ブロックごと書き込みエラー発生回数」が所定値以上になった場合に当該ブロックをBBT61に登録するようにするのが望ましい。さらに望ましくは、連続して書き込みエラーが発生する物理ブロックのみをバッドブロック化するために、SSDC41は、前記「ブロックごと書き込みエラー発生回数」のかわりに「ブロックごと書き込み連続エラー回数」の項目をもうけ、ブロックの書き込みエラーが発生した場合にこれをインクリメントするようにし、書き込みをエラー無く行えた場合にこれをゼロにリセットするようにし、「ブロックごと書き込み連続エラー回数」が所定値以上になった場合に当該ブロックをBBT61に登録するようにするのが望ましい。 Note that if a write error occurs in step S150, the physical block ID is added to the BBT 61, deleted from the FBT 60, and restarted from step S141 to reacquire a free block. Note that even if a physical block has had a write error once, it may be possible to write normally without a write error if the write operation is performed again. , an item for the number of block write errors as statistical information X04 is provided for each block in the FBT60 and ABT62, and this is incremented when a block write error occurs, so that the "number of block write errors" is It is desirable to register the block in the BBT 61 when the value exceeds a predetermined value. More preferably, in order to convert only physical blocks in which write errors occur continuously into bad blocks, the SSDC 41 includes an item "Number of consecutive write errors per block" instead of "Number of write errors occurring per block". , This is incremented when a block write error occurs, and reset to zero when writing is performed without error, and when the "number of consecutive write errors for each block" exceeds a predetermined value. It is desirable to register the block in the BBT 61 at the same time.

SSDC41は、書き込みを行ったフリーブロック(新物理ブロック)のID及びその消去回数をABT62に登録し、書き込みを行った物理ブロックのIDをFBT60から削除する(ステップS151)。LBAがクラスタ管理である場合は、クラスタテーブル64の旧物理ブロックIDを新物理ブロックIDに書き換える(ステップS152、S153)。トラック管理の場合は、トラックテーブルの旧物理ブロックIDを新物理ブロックIDに書き換える(ステップS152、S154)。さらに、SSDC41は、旧物理ブロックID及びその消去回数をFBT60に追加し、旧物理ブロックID及びその消去回数をABT62から削除する(ステップS155)。SSDC41は以上の書き込み処理の内容を統計情報65に反映する。 The SSDC 41 registers the ID of the written free block (new physical block) and the number of erasures thereof in the ABT 62, and deletes the ID of the written physical block from the FBT 60 (step S151). If the LBA is cluster managed, the old physical block ID in the cluster table 64 is rewritten to the new physical block ID (steps S152, S153). In the case of track management, the old physical block ID in the track table is rewritten to a new physical block ID (steps S152, S154). Further, the SSDC 41 adds the old physical block ID and the number of times of erasure to the FBT 60, and deletes the old physical block ID and the number of times of erasure from the ABT 62 (step S155). The SSDC 41 reflects the contents of the above writing process in the statistical information 65.

(NAND整理)
SSD2の全LBAの容量は、SSD2のNANDメモリ16の全容量よりも小さく設計されているため、書き込み動作がトラック単位で書き込まれ続ける限りはフリーブロックが枯渇することはない。一方、未書き込みLBAに対してクラスタ単位の書き込みが多数発生した場合、クラスタ単位の書き込み一つに対してクラスタよりも容量の大きい物理ブロックが割り当てられることになるため、書き込まれるデータ容量よりも多くのNANDメモリ16物理ブロックを必要とすることになり、それによりフリーブロックが枯渇する可能性がある。フリーブロックが枯渇した場合は、以下に示すNANDメモリ16の整理によってフリーブロックを新たに確保することができる。
(NAND arrangement)
Since the capacity of all LBAs of the SSD 2 is designed to be smaller than the total capacity of the NAND memory 16 of the SSD 2, free blocks will not be exhausted as long as write operations continue in track units. On the other hand, if many cluster-based writes occur to an unwritten LBA, a physical block with a larger capacity than the cluster will be allocated for each cluster-based write, so the data capacity will be larger than the data capacity to be written. 16 physical blocks of NAND memory will be required, which may lead to exhaustion of free blocks. When free blocks are exhausted, new free blocks can be secured by organizing the NAND memory 16 as described below.

図26を用いてSSD2におけるNAND整理を説明する。物理ブロックに記憶されている全てのクラスタが有効クラスタであるとは限らず、有効クラスタに該当しない無効クラスタはLBAに対応付けられていない。有効クラスタとは最新のデータを記憶しているクラスタであり、無効クラスタとは同一LBAのデータが他の場所に書きこまれ、参照されることがなくなったクラスタである。物理ブロックは無効クラスタの分だけデータに空きがあることになり、有効クラスタのデータを集めて違うブロックに書き直すNAND整理を実行することでフリーブロックを確保することができる。 NAND organization in the SSD 2 will be explained using FIG. 26. Not all clusters stored in a physical block are valid clusters, and invalid clusters that do not correspond to valid clusters are not associated with LBAs. A valid cluster is a cluster that stores the latest data, and an invalid cluster is a cluster where data of the same LBA has been written to another location and is no longer referenced. The physical block will have free data for the invalid clusters, and free blocks can be secured by collecting data from valid clusters and rewriting them into different blocks by performing NAND rearrangement.

まず、物理ブロックIDi=0にし、空き領域累積量S=0にする(ステップS160)。SSDC41は、このIDがi=0の物理ブロックがトラックテーブル63にエントリされているか否かを判定する(ステップS161)。トラックテーブルにエントリされている場合はiを+1し(ステップS162)、つぎの番号のIDを持つ物理ブロックについて同様の判定を行う(ステップS161)。すなわち、物理ブロックIDがトラックテーブル63に含まれている場合は、この物理ブロックのデータはトラック管理であるため、NAND整理対象に含めない。 First, the physical block IDi is set to 0, and the cumulative amount of free space S is set to 0 (step S160). The SSDC 41 determines whether the physical block with ID i=0 is entered in the track table 63 (step S161). If it is entered in the track table, i is incremented by 1 (step S162), and the same determination is made for the physical block having the next ID number (step S161). That is, if the physical block ID is included in the track table 63, the data of this physical block is track management, and therefore is not included in the NAND sorting target.

SSDC41は、ID=iの物理ブロックがトラック管理でない場合は(ステップS161:No)、つぎにクラスタテーブル64を参照し、ID=iの物理ブロックに含まれる有効クラスタのアドレスを全て取得する(ステップS163)。そして、SSDC41は、取得した有効クラスタの総容量分のサイズvを求め(ステップS164)、v<物理ブロックサイズであるときは(ステップS165)、現在物理ブロックのIDをNAND整理対象ブロックリストに加える(ステップS166)。さらに、SSDC41は、取得クラスタ累計量Sに現在物理ブロックの取得クラスタ容量vを加算し、取得クラスタ累計量Sを更新する(ステップS167)。 If the physical block with ID=i is not track managed (step S161: No), the SSDC 41 then refers to the cluster table 64 and acquires all addresses of valid clusters included in the physical block with ID=i (step S161: No). S163). Then, the SSDC 41 calculates the size v for the total capacity of the acquired effective cluster (step S164), and when v<physical block size (step S165), adds the ID of the current physical block to the NAND sorting target block list. (Step S166). Furthermore, the SSDC 41 adds the acquired cluster capacity v of the current physical block to the acquired cluster cumulative amount S, and updates the acquired cluster cumulative amount S (step S167).

ステップS165で、v<物理ブロックサイズでないとき、あるいはステップS168で取得クラスタ累計量Sが物理ブロックサイズに到達していない場合は、SSDC41は、iを+1し(ステップS162)、つぎの番号のIDを持つ物理ブロックについて、ステップS161~S167の手順を前記同様に実行する。そして、ステップS168で、取得クラスタ累計量Sが物理ブロックサイズに到達するまで、ステップS161~S167の手順を繰り返す。 In step S165, if v<physical block size, or in step S168, if the acquired cluster cumulative amount S has not reached the physical block size, the SSDC 41 increments i by 1 (step S162) and assigns the ID of the next number. The procedures of steps S161 to S167 are executed in the same manner as described above for the physical block having the same value. Then, in step S168, the procedure of steps S161 to S167 is repeated until the acquired cluster cumulative amount S reaches the physical block size.

そして、ステップS168において、取得クラスタ累計量Sが物理ブロックサイズに到達した場合は、SSDC41は、NAND整理対象ブロックリスト上の全物理ブロックについての全有効クラスタのデータをNANDメモリ16から読み出してRAM40に書き込み(ステップS169)、さらに、NAND整理対象ブロックリスト上の全物理ブロックに対して消去処理を行い(ステップS170)、消去処理を行った全物理ブロックをABT62から削除してFBT60に追加する(ステップS171)。その際、消去回数をインクリメントする。なお、ステップS170で行う消去動作の対象は、ステップS172でデータを書き込む対象のブロックに限定してもよく、ブロックの消去回数を抑制するという観点ではそのように行うことが望ましい。 Then, in step S168, if the acquired cluster cumulative amount S reaches the physical block size, the SSDC 41 reads data of all valid clusters for all physical blocks on the NAND rearrangement target block list from the NAND memory 16 and stores it in the RAM 40. Writing (step S169), and erasing all physical blocks on the NAND sorting target block list (step S170), deleting all the physical blocks that have been erased from the ABT 62 and adding them to the FBT 60 (step S170). S171). At that time, the number of times of erasure is incremented. Note that the target of the erase operation performed in step S170 may be limited to the target block in which data is written in step S172, and it is desirable to perform it in this way from the viewpoint of suppressing the number of times the block is erased.

消去エラーが発生した場合は、当該物理ブロックIDをBBT61に追加し、FBT60から削除する。なお、一度消去エラーが発生した物理ブロックであっても、再度消去動作を行うと消去エラーが発生せずに正常に消去できることがあるため、バッドブロック数の不必要な増大を防止するという観点では、FBT60やABT62に「ブロックごと消去エラー発生回数」の項目を各ブロックごとに設け、ブロックの消去エラーが発生した場合にこれをインクリメントするようにし、ブロックごと消去エラー発生回数が所定値以上になった場合に当該ブロックをBBT61に登録するようにするのが望ましい。さらに望ましくは、連続して消去エラーが発生する物理ブロックのみをバッドブロック化するために、SSDC41は、前記「ブロックごと消去エラー発生回数」のかわりに「ブロックごと消去連続エラー回数」の項目をもうけ、ブロックの消去エラーが発生した場合にこれをインクリメントするようにし、消去をエラー無く行えた場合にこれをゼロにリセットするようにし、「ブロックごと消去連続エラー回数」が所定値以上になった場合に当該ブロックをBBT61に登録するようにするのが望ましい。 If an erase error occurs, the physical block ID is added to the BBT 61 and deleted from the FBT 60. Note that even if a physical block has had an erase error once, it may be possible to erase it normally without an erase error if the erase operation is performed again. , the FBT 60 and ABT 62 are provided with a "Number of block erase error occurrences" item for each block, and this is incremented when a block erase error occurs, so that the number of block erase error occurrences exceeds a predetermined value. It is desirable to register the block in the BBT 61 in such a case. More preferably, in order to convert only physical blocks in which erase errors occur continuously into bad blocks, the SSDC 41 includes an item "number of consecutive erase errors for each block" instead of the "number of times erase errors occur for each block". , This is incremented when a block erase error occurs, and reset to zero when erasing is performed without error, and when the "number of consecutive block erase errors" exceeds a predetermined value. It is desirable to register the block in the BBT 61 at the same time.

そして、SSDC41は、FBT60から新たなフリーブロックを取得し、取得したフリーブロックに対しRAM40に書き込んだデータを書き込み(ステップS172)、データを書き込んだフリーブロックの物理ブロックID及び当該ブロックの消去回数をABT62に追加し、さらにデータが書き込まれたブロックのブロックIDをFBT60から削除する(ステップS173)。さらに、SSDC41は、今回のNAND整理に対応するように、クラスタテーブル64におけるクラスタアドレス、物理ブロックID及び物理ブロック内ページアドレスを更新する(ステップS174)。SSDC41は上記NAND整理の処理内容を統計情報65に反映する。 Then, the SSDC 41 acquires a new free block from the FBT 60, writes the data written in the RAM 40 to the acquired free block (step S172), and records the physical block ID of the free block into which the data has been written and the number of times the block has been erased. The block ID of the block added to the ABT 62 and further written with data is deleted from the FBT 60 (step S173). Further, the SSDC 41 updates the cluster address, physical block ID, and page address within the physical block in the cluster table 64 to correspond to the current NAND arrangement (step S174). The SSDC 41 reflects the processing contents of the NAND arrangement described above in the statistical information 65.

なお、ステップS172で書き込みエラーが発生した場合は、当該物理ブロックIDをBBT61に追加し、FBT60から削除し、フリーブロックを再取得する。なお、一度書き込みエラーが発生した物理ブロックであっても、再度書き込み動作を行うと書き込みエラーが発生せずに正常に書き込みできることがあるため、バッドブロック数の不必要な増大を防止するという観点では、FBT60やABT62に「ブロックごと書き込みエラー発生回数」の項目を各ブロックに設け、ブロックの書き込みエラーが発生した場合にこれをインクリメントするようにし、「ブロックごと書き込みエラー発生回数」が所定値以上になった場合に当該ブロックをBBT61に登録するようにするのが望ましい。さらに望ましくは、連続して書き込みエラーが発生する物理ブロックのみをバッドブロック化するために、SSDC41は、前記「ブロックごと書き込みエラー発生回数」のかわりに「ブロックごと書き込み連続エラー回数」の項目をもうけ、ブロックの書き込みエラーが発生した場合にこれをインクリメントするようにし、書き込みをエラー無く行えた場合にこれをゼロにリセットするようにし、「ブロックごと書き込み連続エラー回数」が所定値以上になった場合に当該ブロックをBBT61に登録するようにするのが望ましい。 Note that if a write error occurs in step S172, the physical block ID is added to the BBT 61, deleted from the FBT 60, and a free block is acquired again. Note that even if a physical block has had a write error once, it may be possible to write normally without a write error if the write operation is performed again. , the FBT60 and ABT62 are provided with a "Number of write errors for each block" item for each block, and this is incremented when a block write error occurs, so that the "Number of write errors for each block" exceeds a predetermined value. It is desirable to register the block in the BBT 61 when the block becomes the same. More preferably, in order to convert only physical blocks in which write errors occur continuously into bad blocks, the SSDC 41 includes an item "Number of consecutive write errors per block" instead of "Number of write errors occurring per block". , This is incremented when a block write error occurs, and reset to zero when writing is performed without error, and when the "number of consecutive write errors for each block" exceeds a predetermined value. It is desirable to register the block in the BBT 61 at the same time.

なお、図26の手順では、フリーブロックにデータを詰め込むことを優先するNAND整理を行ったが、ステップS164で、vを物理ブロックサイズから取得したクラスタの容量を減算することによって求め、ステップS165でv>0か否かを判定し、v>0の場合はステップS168に移行し、v>0でない場合はステップS162に移行させるようにすることで、フリーブロックを確保することを優先するNAND整理を行うようにしてもよい。 Note that in the procedure of FIG. 26, NAND organization is performed that prioritizes packing data into free blocks, but in step S164, v is obtained by subtracting the capacity of the obtained cluster from the physical block size, and in step S165, v is calculated by subtracting the capacity of the obtained cluster from the physical block size. NAND sorting that prioritizes securing free blocks by determining whether v>0 or not, and moving to step S168 if v>0, and moving to step S162 if v>0. You may also do this.

つぎに、図27を用いてSSD2における削除通知について説明する。削除通知は、ホスト装置3上のOS100によってデータの削除が行われた場合に、ホスト装置3から外部記憶装置に対して送信される命令である。削除通知の例として、例えば、INCITS ATA/ATAPI Command Set-2(ACS-2)で記述されているData Set Management Command(通称トリム(TRIM)コマンド)があげられる。これは、OS100上でデータが削除された場合、削除されたデータの存在する論理アドレス領域(LBA領域)を、LBA及びセクタ数の組みよりなるLBA Range Entryとして外部記憶装置に通知することにより、外部記憶装置上でもその領域を空き領域として扱うことができる方式である。削除通知により、SSD2はフリーブロックを新たに確保することができる。なお、トリムコマンドの機能は、Data Set Management Commandだけでなく、たとえば、INCITS ACS-2で記述されているSCT Command Transportや、その他ベンダー独自のコマンドなどその他コマンドによって実現してもよい。OS100が緊急時OSである場合は、NANDメモリに対する書き込みを減らすという観点では、緊急時OSでは当該削除通知の発行を禁止することが望ましい。一方、当該削除通知処理ではNANDメモリ16に関して高々管理情報45程度の書き換えしか発生しないため、緊急時OSにおいても当該削除通知を許可してもよい。 Next, deletion notification in the SSD 2 will be explained using FIG. 27. The deletion notification is a command sent from the host device 3 to the external storage device when data is deleted by the OS 100 on the host device 3. An example of a deletion notification is a Data Set Management Command (commonly known as a TRIM command) described in INCITS ATA/ATAPI Command Set-2 (ACS-2). When data is deleted on the OS 100, the logical address area (LBA area) where the deleted data exists is notified to the external storage device as an LBA Range Entry consisting of a combination of LBA and number of sectors. This method allows the area on the external storage device to be treated as a free area. The deletion notification allows the SSD 2 to newly secure a free block. Note that the function of the trim command may be realized not only by the Data Set Management Command but also by other commands such as the SCT Command Transport described in INCITS ACS-2, or other vendor-specific commands. If the OS 100 is an emergency OS, it is desirable that the emergency OS prohibits the issuance of deletion notifications from the viewpoint of reducing writes to the NAND memory. On the other hand, in the deletion notification process, only about 45 pieces of management information are rewritten in the NAND memory 16, so the deletion notification may be permitted even in the emergency OS.

SSD2がホスト装置3から削除通知を受信した場合は(ステップS180)、SSDC41は、削除通知に含まれるLBAを先の図21に示した手順に従ってLBA正引き変換する。SSDC41は、削除通知に含まれるLBAがトラック管理である場合は(ステップS181:Yes)、物理ブロックIDをFBT60に追加してABT62から削除する(ステップS184)。一方、SSDC41は、削除通知に含まれるLBAがクラスタ管理である場合は(ステップS181:No)、物理ブロックに対応する全クラスタをクラスタテーブル64から削除し(ステップS182)、トラックテーブル63において、LBAに対応するトラックに対応する物理ブロックIDに適当な有効値(例えばFFFF)を記入し(ステップS183)、物理ブロックIDをFBT60に追加してABT62から削除する(ステップS184)。SSD2では、NAND整理以外に、削除通知処理によってもフリーブロックを確保することができる。 When the SSD 2 receives a deletion notification from the host device 3 (step S180), the SSDC 41 performs forward LBA lookup conversion on the LBA included in the deletion notification according to the procedure shown in FIG. 21 above. If the LBA included in the deletion notification is track management (step S181: Yes), the SSDC 41 adds the physical block ID to the FBT 60 and deletes it from the ABT 62 (step S184). On the other hand, if the LBA included in the deletion notification is cluster management (step S181: No), the SSDC 41 deletes all clusters corresponding to the physical block from the cluster table 64 (step S182), and stores the LBA in the track table 63. An appropriate valid value (for example, FFFF) is entered in the physical block ID corresponding to the track corresponding to the track (step S183), and the physical block ID is added to the FBT 60 and deleted from the ABT 62 (step S184). In the SSD 2, free blocks can be secured not only by NAND sorting but also by deletion notification processing.

このようなNAND整理により、書き込みに対し十分な数のフリーブロックを確保できるのが通常である。NAND整理によっても、書き込みに対し十分な数のフリーブロックを確保できなかった場合は、統計情報65のNAND整理失敗フラグを1にして、ホスト装置3による統計情報65の取得を通じてSSD2がフリーブロックを確保できなかったことをホスト装置3に通知できるようにすることが望ましい。NAND整理失敗フラグが1になってから実際にSSD2が動作しなくなるまでの時間に猶予をもたせるという観点では、
(NAND整理をして確保できたフリーブロック数)<(書き込みに必要なフリーブロック数)+(マージン)
の条件を満たす場合にNAND整理失敗フラグを1にセットするようにしておくことが望ましい。
Such NAND organization usually makes it possible to secure a sufficient number of free blocks for writing. If a sufficient number of free blocks cannot be secured for writing even after NAND sorting, the NAND sorting failure flag of the statistical information 65 is set to 1, and the SSD 2 acquires free blocks through the acquisition of the statistical information 65 by the host device 3. It is desirable to be able to notify the host device 3 that it has not been secured. From the perspective of providing a grace period between when the NAND sorting failure flag becomes 1 and when the SSD2 actually stops working,
(Number of free blocks secured by organizing NAND) < (Number of free blocks required for writing) + (Margin)
It is desirable to set the NAND sorting failure flag to 1 when the following conditions are met.

上記NAND整理は、ホスト装置3からライト要求を受信した時だけでなく、ホストから最後に命令を受信してから所定時間経過した時、またはホスト装置3からスタンバイやアイドルやスリープ状態に移行するコマンドを受信した時などに実行してもよいし、ACS-2に記載のSCT Command Transportやその他ベンダーコマンドなどを通じて、NAND整理を開始する命令をSSD2がホスト装置3から受信した時などに実行してもよい。なお、OS100が緊急時OSである場合は、NANDメモリに対する書き込みを減らすという観点では、ホスト装置3から最後に命令を受信してから所定時間経過した時、ホスト装置3からスタンバイやアイドルやスリープ状態に移行するコマンドを受信した時に、上記NAND整理を行わないことが望ましい。さらには、OS100が緊急時OSである場合は、NANDメモリ16に対する書き込みを減らすという観点では、緊急時OSにおいてはNAND整理を開始する命令発行が禁止されていることが望ましい。 The above NAND arrangement is performed not only when a write request is received from the host device 3, but also when a predetermined period of time has passed since the last command was received from the host, or when a command is issued from the host device 3 to transition to standby, idle, or sleep state. It may be executed when the SSD 2 receives a command to start NAND organization from the host device 3 through the SCT Command Transport described in ACS-2 or other vendor commands. Good too. Note that if the OS 100 is an emergency OS, from the perspective of reducing writes to the NAND memory, when a predetermined period of time has elapsed since the last command was received from the host device 3, the host device 3 will send the host device 3 to the standby, idle, or sleep state. It is desirable that the above NAND arrangement is not performed when a command to shift to is received. Furthermore, if the OS 100 is an emergency OS, from the viewpoint of reducing writes to the NAND memory 16, it is desirable that the emergency OS prohibits issuing a command to start NAND sorting.

(エラー処理)
次に、図28を用いてSSD2でのNANDメモリ16に関するエラー処理について説明する。ホスト装置3からのライト要求に対する処理やNAND整理処理など各種処理は通常は上記のように行われるが、NANDメモリ16に対する書き込み動作(プログラム動作)で書き込みエラーが発生する場合、NANDメモリ16に対する消去動作(イレーズ動作)で消去エラーが発生する場合、NANDメモリ16に対する読み出し動作の際にECCエラー(誤り訂正処理の失敗)が生じる場合などがあり、これらに対する例外処理が必要となる。
(Error handling)
Next, error processing regarding the NAND memory 16 in the SSD 2 will be described using FIG. 28. Various processes such as processing in response to a write request from the host device 3 and NAND organizing processing are normally performed as described above, but if a write error occurs in a write operation (program operation) to the NAND memory 16, erasure to the NAND memory 16 is performed. When an erase error occurs in an operation (erase operation), an ECC error (error correction processing failure) may occur during a read operation to the NAND memory 16, and exception handling for these cases is required.

SSDC41は、上記の何れかのエラーが発生した場合(ステップS190)、エラーが発生した物理ブロックをBBT61に追加し(ステップS191)、エラーが発生した物理ブロックをABT62及びFBT60から削除することで(ステップS192)、以後は、エラーが発生した物理ブロックにアクセスできないようにする。この際、エラーが発生した物理ブロックのデータを別の物理ブロックにコピーしてもよい。SSDC41は上記エラー処理を統計情報65に反映させる。 When any of the above errors occurs (step S190), the SSDC 41 adds the physical block in which the error occurred to the BBT 61 (step S191), and deletes the physical block in which the error occurred from the ABT 62 and FBT 60 (step S190). In step S192), the physical block in which the error has occurred is no longer accessible. At this time, the data of the physical block in which the error has occurred may be copied to another physical block. The SSDC 41 reflects the above error processing in the statistical information 65.

上記では、エラー処理の一例を、読み出し処理、書き込み処理、NAND整理処理に関して示したが、エラー処理はこれらの例に限らず、NANDメモリ16に対する全ての読み出し処理、書き込み処理、消去処理に対して適用可能である。 In the above, an example of error processing was shown for read processing, write processing, and NAND organizing processing, but error processing is not limited to these examples, and can be applied to all read processing, writing processing, and erasing processing for the NAND memory 16. Applicable.

(制御ツール)
SSD2を利用しているうちに、NANDメモリ16の各ブロックの信頼性が劣化していき、バッドブロックの数が増えていき、フリーブロック数とアクティブブロック数の和が減っていくことになる。さらにSSD2を使用していると、NAND整理を行っても、書き込み処理を行うのに十分なフリーブロック数を確保できなくなり、これがSSD2の寿命である。以下では、SSD2の寿命が到達した場合の制御ツール200の処理を示す。
(control tool)
As the SSD 2 is used, the reliability of each block of the NAND memory 16 deteriorates, the number of bad blocks increases, and the sum of the number of free blocks and the number of active blocks decreases. Furthermore, if the SSD 2 is used, even if NAND organization is performed, it will not be possible to secure a sufficient number of free blocks for writing processing, and this is the end of the SSD 2's lifespan. Below, the processing of the control tool 200 when the life span of the SSD 2 has been reached will be described.

制御ツール200は起動されると、主メモリ6に常駐してSSD2の統計情報65を監視する。SSD2の統計情報65を常に監視するためには、制御ツール200の起動プログラムが通常時OS100Aのスタートアッププログラムに登録されるなどして、通常時OS100Aが領域16D(または20D)から領域6Aに読み出されるときまたはその直後に制御ツール200が領域16B(または領域20B)から読み出されるのが望ましい。たとえば、OS100がWindows(登録商標)である場合は、制御ツール200を、例えばWindows(登録商標)のスタートアップメニューに登録したり、あるいはサービスとして登録したり、Windows(登録商標)のレジストリに登録したりすることで、制御ツール200を起動時の常駐プログラムに設定しておくことで、制御ツール200を自動起動させることが可能となる。 When the control tool 200 is activated, it resides in the main memory 6 and monitors the statistical information 65 of the SSD 2. In order to constantly monitor the statistical information 65 of the SSD 2, the startup program of the control tool 200 is registered in the startup program of the normal OS 100A, and the normal OS 100A is read from the area 16D (or 20D) to the area 6A. Preferably, control tool 200 is read from region 16B (or region 20B) at or shortly thereafter. For example, if the OS 100 is Windows (registered trademark), the control tool 200 may be registered in the Windows (registered trademark) startup menu, as a service, or in the Windows (registered trademark) registry. By setting the control tool 200 as a resident program at startup, the control tool 200 can be automatically started.

制御ツール200は、例えば図29に示すように、一定時間おき(たとえば1分おき)にSSD2から統計情報65を取得する。統計情報を取得する方式として、例えば、INCITS ACS-2に記述されている、メモリの自己診断機能であるS.M.A.R.T(Self-Monitoring Analysis and Reporting Technology)のコマンドであるSMART READ DATA(B0h(D0h))又はACS-2に記述されているSCT Command Transportやその他ベンダー独自のコマンドを用いてもよい。 For example, as shown in FIG. 29, the control tool 200 acquires statistical information 65 from the SSD 2 at regular intervals (for example, every minute). As a method for acquiring statistical information, for example, SMART READ DATA (B0h (D0h)), which is a command of S.M.A.R.T (Self-Monitoring Analysis and Reporting Technology), which is a memory self-diagnosis function, described in INCITS ACS-2. Alternatively, SCT Command Transport described in ACS-2 or other vendor-specific commands may be used.

図30は、SSD2で管理される統計情報65(統計情報X01~X19、X23、X24)に関するテーブルを示すものである。S.M.A.R.Tを用いる場合、図30に示すように、統計情報65の構成要素(X01~X19、X23、X24など)それぞれに対し、属性ID(attribute ID)を割り当るが、これら構成要素の一部のみに割り当ててもよいのはもちろんである。これら統計情報65の構成要素に関し、規格化後、最良値としてSMABを採用し、規格化後の信頼性保証下限値としてSMAL=SMAB*AMALR(0≦AMALR<1)(SMALは整数で、四捨五入、小数点以下切り上げ、小数点以下切り上げのいずれかにより少数から整数に変換される)を採用し、
attribute value = SMAL + SMAB×(1-AMALR)×(RMAX-生の値)/ RMAX
attribute Threshold=30(固定値)
RMAX=信頼性保証できる統計情報生の値の上限値
生の値=統計情報の生の値
により、SSDC41は、smart情報のattribute value(図30の「Value」)を計算して制御ツール200に送信する。attribute Thresholdは、図26の「Threshold」であり、生の値は、図26の「Raw Data」である。
FIG. 30 shows a table regarding statistical information 65 (statistical information X01 to X19, X23, and X24) managed by the SSD 2. When using SMART, as shown in FIG. 30, an attribute ID is assigned to each component of the statistical information 65 (X01 to X19, X23, X24, etc.), but only some of these components Of course, it is also possible to assign it to Regarding the components of these statistical information 65, after normalization, SMAB is adopted as the best value, and the lower limit of reliability guarantee after normalization is SMAL=SMAB*AMALR (0≦AMALR<1) (SMAL is an integer, rounded off. , is converted from a decimal to an integer by either rounding up the decimal point or rounding up the decimal point).
attribute value = SMAL + SMAB×(1-AMALR)×(RMAX-raw value)/ RMAX
attribute Threshold=30 (fixed value)
RMAX = upper limit of raw statistical information values whose reliability can be guaranteed
Raw value = Based on the raw value of the statistical information, the SSDC 41 calculates the attribute value (“Value” in FIG. 30) of the smart information and sends it to the control tool 200. The attribute Threshold is "Threshold" in FIG. 26, and the raw value is "Raw Data" in FIG. 26.

規格化後の最良値SMABは任意の自然数であればよく、たとえばSMAB=100を採用してもよい。AMALRは0≦AMALR<1をみたす任意の数であればよく、たとえばAMALR=0.3を採用してもよい。また、RMAX、AMALRおよびSMABは各X01~X19、X23、X24に対して、それぞれ別の値を採用することができる。SMAB=100で、AMALR=;0.3を採用した時、採用対象の統計情報に関してattribute valueの最良値が100(たとえば出荷直後に100)になっており、信頼性が劣化するにつれて徐々に減少していき、SSD2が信頼性保証できなくなったとき(統計情報の生の値がRMAXに等しいかそれ以上になったとき)、attribute valueが30かそれ以下の値に到達することになる。なお、Attribute ValueがThresholdを超過しているか否かをホスト3が検知する手段として、ACS-2に記載のコマンドであるB0h/DAh SMART RETURN STATUSを用い、当該コマンドのOutputからAttribute ValueがThresholdを超過しているか否かを判断してもよい。 The best value SMAB after normalization may be any natural number; for example, SMAB=100 may be adopted. AMALR may be any number satisfying 0≦AMALR<1; for example, AMALR=0.3 may be adopted. Furthermore, RMAX, AMALR, and SMAB can each adopt different values for each of X01 to X19, X23, and X24. When SMAB = 100 and AMALR = ;0.3 is adopted, the best value of the attribute value for the statistical information to be adopted is 100 (for example, 100 immediately after shipping), and it gradually decreases as reliability deteriorates. Then, when the SSD 2 cannot guarantee reliability (when the raw value of the statistical information becomes equal to or greater than RMAX), the attribute value reaches a value of 30 or less. In addition, as a means for the host 3 to detect whether the Attribute Value exceeds the Threshold, the B0h/DAh SMART RETURN STATUS command described in ACS-2 is used, and the Attribute Value exceeds the Threshold from the output of the command. It may be determined whether or not the limit has been exceeded.

RMAXは、たとえば図31のように統計情報の生の値とSSD2の不良率の関係を開発段階に導き出し、不良率が許容値を超える時の統計情報生の値をRMAXとして採用することが望ましい。たとえば、SSD2の開発段階で、多数個(たとえば100個)の試験用SSD2群に対して高温で書き込み動作を繰り返しながら、書き込んだデータが一定時間以上正しく記憶され続けるかを検証する摩耗試験を行い、同時に統計情報をモニタしつづけ、不良率が一定割合に到達する時点での統計情報の生の値をRMAXとして採用すればよい。たとえば、摩耗したSSD2を高温状態である時間以上放置して、その後SSD2の温度を下げ、SSD2に対して読み出し動作を行い、読み出したデータがECC訂正できない場合(またはECC訂正できないデータが一定数以上の場合)、これをSSD2の不良として定義し、不良数を、同等の試験を行ったSSD2の個数で割った値を不良率として採用すればよい。この不良率が、前記許容できる不良率を統計的に有意に下回る統計情報生の値をRMAXとして採用すればよい。RMAXにある程度マージンをもたせて、
RMAX´=RMAX-マージン
としたRMAX´をRMAXとして採用してもよい。
For RMAX, it is desirable to derive the relationship between the raw value of statistical information and the defective rate of SSD2 at the development stage, for example as shown in Figure 31, and to use the raw value of statistical information when the defective rate exceeds the allowable value as RMAX . For example, during the development stage of SSD2, a wear test was conducted on a large number (for example, 100) of test SSD2 groups to verify whether the written data would continue to be stored correctly for a certain period of time while repeating write operations at high temperatures. At the same time, the statistical information may be continuously monitored, and the raw value of the statistical information at the time when the defective rate reaches a certain percentage may be adopted as RMAX. For example, if a worn SSD 2 is left in a high temperature state for a certain amount of time, then the temperature of the SSD 2 is lowered, a read operation is performed on the SSD 2, and the read data cannot be ECC corrected (or the data that cannot be ECC corrected exceeds a certain number). ), this may be defined as a defect in the SSD 2, and the value obtained by dividing the number of defects by the number of SSDs 2 that have undergone the same test may be adopted as the defect rate. A value of the raw statistical information in which the defective rate is statistically significantly lower than the allowable defective rate may be adopted as RMAX. By adding some margin to RMAX,
RMAX'=RMAX-margin may be adopted as RMAX.

図30の「Worst」を制御ツール200がSSD2の寿命を診断する仕様として採用してもよい。「Worst」はattribute valueの最悪値としてSSDC41に計算される。たとえば、X01~X19、X23の場合、Worstは、たとえばSSD2が出荷後の(または製造後の)、attribute valueの最小値である。あるいは、Worstとして、過去ある一定時間範囲内のattribute valueの最小値をWorst Valueとして採用してもよいし、ある一定回数(一定データ量)通信または処理が行われた過去にさかのぼって、その過去から現在に至るまでの最小値をworst valueとして採用してもよい。 “Worst” in FIG. 30 may be adopted as a specification for the control tool 200 to diagnose the lifespan of the SSD 2. "Worst" is calculated by the SSDC 41 as the worst value of the attribute value. For example, in the case of X01 to X19 and X23, Worst is the minimum value of the attribute value after, for example, the SSD 2 is shipped (or manufactured). Alternatively, the minimum value of the attribute value within a certain time range in the past may be adopted as the worst value, or the worst value may be adopted as the worst value, or the worst value may be adopted as the worst value. The minimum value from 1 to 3 to the present may be adopted as the worst value.

図30の「Raw Data」(Raw Value)を制御ツール200がSSD2の寿命を診断する仕様として採用してもよい。統計情報(たとえば、X01~X19、X23、X24)の生の値がRaw DataとしてSSD2から制御ツール200に送信される。この場合、制御ツール200は、RMAXを制御ツール200内にすでに保持しているかSSD2から別途読み出すかその他記憶装置から読み出すかしてRMAXを取得し、RMAXとRaw Dataを比較し、Raw Data>RMAXまたはRaw Data≧RMAXとなった時、SSD2が寿命に到達したと判断する。たとえば、NAND整理失敗フラグの場合、これが1である場合にSSD2が寿命に到達したと判断する。たとえば、バッドブロック数総計の場合、これが所定値を上回った場合にSSD2が寿命に到達したと判断する。Raw Dataとして、必ずしも統計情報の生の値を出力する必要はなく、たとえば、統計情報の生の値を四則演算した値をRaw DataとしてSSDC41が制御ツール200に送信し、同じくRMAXを四則演算した値と比較することで判定を行ってもよい。また、統計情報の生の値を暗号化したデータをRaw DataとしてSSDC41が制御ツール200に送信し、SSDC41がこれを復号化して復号化後のデータをRMAXと比較することで判定を行ってもよい。 “Raw Data” (Raw Value) in FIG. 30 may be adopted as a specification for the control tool 200 to diagnose the lifespan of the SSD 2. Raw values of statistical information (for example, X01 to X19, X23, and X24) are sent from the SSD 2 to the control tool 200 as Raw Data. In this case, the control tool 200 acquires RMAX by already holding RMAX in the control tool 200, reading it separately from the SSD 2, or reading it from another storage device, compares RMAX and Raw Data, and compares RMAX with Raw Data. Or, when Raw Data≧RMAX, it is determined that the SSD2 has reached the end of its lifespan. For example, in the case of the NAND sorting failure flag, if this flag is 1, it is determined that the SSD 2 has reached the end of its lifespan. For example, in the case of the total number of bad blocks, if this exceeds a predetermined value, it is determined that the SSD 2 has reached the end of its life. It is not necessarily necessary to output the raw value of statistical information as raw data; for example, the SSDC 41 transmits a value obtained by performing four arithmetic operations on the raw value of statistical information to the control tool 200 as raw data, and also performs four arithmetic operations on RMAX. The determination may be made by comparing with the value. Alternatively, the SSDC 41 may send data obtained by encrypting the raw values of statistical information to the control tool 200 as Raw Data, the SSDC 41 may decrypt this data, and make a determination by comparing the decrypted data with RMAX. good.

上記のようにして、制御ツール200は、SSD2が寿命に到達したか否か(SSD2が異常状態であるか否か)を判定し、SSD2が寿命に到達したと判定された場合(SSD2が異常状態であると判定された場合)、後述する寿命到達時処理(ステップS205)に移行する。統計情報65は、統計情報X01~X19、X23、X24以外にも種々の形態をとりうるが、本発明はこれらに対しても適用可能である。また、X01~X19、X23、X24と不良率の関係には正の相関関係が存在するが、不良率と負の相関関係が存在する統計情報に対しても本発明は適用可能である。たとえば、SSD2が出荷後に体験した最低温度などである。その場合、RMAXの代わりに、信頼性保証できる下限値RMINを採用し、統計情報がRMINを下回った場合にSSD2が寿命に到達したと判断すればよい。 As described above, the control tool 200 determines whether the SSD 2 has reached the end of its lifespan (whether the SSD 2 is in an abnormal state), and if it is determined that the SSD 2 has reached the end of its lifespan (the SSD 2 is in an abnormal state). (if it is determined that the condition is the same), the process moves to the life-span reaching process (step S205), which will be described later. The statistical information 65 can take various forms other than the statistical information X01 to X19, X23, and X24, and the present invention is also applicable to these. Further, although there is a positive correlation between X01 to X19, X23, and X24 and the defective rate, the present invention is also applicable to statistical information that has a negative correlation with the defective rate. For example, it is the lowest temperature that the SSD 2 experienced after being shipped. In that case, instead of RMAX, a lower limit value RMIN that can guarantee reliability may be adopted, and it may be determined that the SSD 2 has reached the end of its lifespan when the statistical information falls below RMIN.

図29において、S.M.A.R.Tを用いる場合、制御ツール200は、一定時間おき(たとえば1分おき)に統計情報の取得を行う(ステップS200:Yes)。制御ツール200は、統計情報取得コマンドであるACS-2に記載のB0h/D0h SMART READ DATAを発行し(ステップS201)、SSD2から統計情報を含むデータを受信し(ステップS202)、この受信したデータを診断する(ステップS203)。診断方法は前述したとおりである。ステップS204において、SSD2が寿命に到達したと制御ツール200が判断した時(ステップS204:Yes)、制御ツールは寿命到達時処理に移行する(ステップS205)。SSD2が寿命に到達していなくても、統計情報があらかじめ定められたRMAXを上回ったり、あるいは通常動作ではありえない異常値を示した場合などにおいても、ステップS205の処理に移行することが望ましい。 In FIG. 29, when using S.M.A.R.T, the control tool 200 acquires statistical information at regular intervals (for example, every minute) (step S200: Yes). The control tool 200 issues B0h/D0h SMART READ DATA described in ACS-2, which is a statistical information acquisition command (step S201), receives data including statistical information from the SSD 2 (step S202), and uses this received data. is diagnosed (step S203). The diagnostic method is as described above. In step S204, when the control tool 200 determines that the SSD 2 has reached the end of its lifespan (step S204: Yes), the control tool shifts to a lifespan reaching process (step S205). Even if the SSD 2 has not reached the end of its lifespan, it is desirable to proceed to the process of step S205 even if the statistical information exceeds a predetermined RMAX or shows an abnormal value that cannot occur in normal operation.

統計情報65以外の情報を用いて、寿命到達時処理に移行してもよい。たとえば、図32に示すように、制御ツール200は、OS100がSSD2から受信する応答情報(図12参照)をOS100から取得(監視)し(ステップS210)、エラー応答であった場合(ステップS211)、SSD2が異常状態に至ったと判断し、寿命到達時処理に移行する(ステップS212)。監視する応答はどのようなコマンドに対する応答でもよいが、たとえばACS-2記載の61h WRITE FPDMA QUEUEDや35h WRITE DMA EXTなどのSSD2に対する書き込みコマンドに対する応答のみを監視することが、CPU4への負荷低減の観点から望ましい。特に、SSD2が特許文献1として提示した特開2009-217603号公報の発明を採用したSSDである場合、SSD2が寿命に至ると、SSD2への書き込みコマンドに対する応答がエラーで返ってくるようになるため、統計情報の取得無しに寿命到達を判断することができる。なお、SSD2が特許文献1として提示した特開2009-217603号公報の発明を採用したSSDで無い場合であっても本発明が適用できることはもちろんである。
なお、SSD2が書き込みコマンドに対してエラーを返す状態である場合で、後述するSSD2のブートローダの書き換えや緊急時OSの書き込み等書き込みを行う場合は、特許文献1のReadOnlyモード状態において特殊な書き込みコマンド(例えばACS-2に記述されているSCT Command Transportやその他ベンダー独自コマンドなど)に対してはエラーを返さないようSSDC41を構成しておき、前述した特殊な書き込みコマンドを用いてSSD2に書き込みを行うことが望ましい。なお、SSD2以外の記憶装置への書き込みには必要ない。あるいは、通常時OS時が、書き込みコマンドとしてある書き込みコマンド(たとえば61h WRITE FPDMA QUEUED)のみを使うようなOSである場合には、SSDC41が特許文献1のReadOnlyモードに至ると、当該書き込みコマンド(たとえば61h WRITE FPDMA QUEUED)に対してエラーを返すようにSSDC41を構成し、別の書き込みコマンド(たとえば30h WRITE SECTOR(S))に対してはエラーを返さないようにSSDC41を構成し、別の書き込みコマンド(たとえば30h WRITE SECTOR(S))を用いてSSD2に対してブートローダや緊急時OSなどの書き込みを行うようにしてもよい。
Information other than the statistical information 65 may be used to proceed to the process when the life span is reached. For example, as shown in FIG. 32, the control tool 200 acquires (monitors) response information (see FIG. 12) that the OS 100 receives from the SSD 2 from the OS 100 (step S210), and if the response is an error response (step S211) , it is determined that the SSD 2 has reached an abnormal state, and the process moves to the end-of-life process (step S212). The response to be monitored may be a response to any command, but for example, monitoring only responses to write commands to the SSD 2 such as 61h WRITE FPDMA QUEUED and 35h WRITE DMA EXT described in ACS-2 will reduce the load on the CPU 4. Desirable from this point of view. In particular, if the SSD 2 is an SSD that adopts the invention disclosed in Japanese Patent Application Laid-open No. 2009-217603 presented as Patent Document 1, when the SSD 2 reaches the end of its lifespan, responses to write commands to the SSD 2 will return with an error. Therefore, it is possible to determine whether the life span has been reached without obtaining statistical information. Note that the present invention is of course applicable even when the SSD 2 is not an SSD adopting the invention disclosed in Japanese Patent Application Laid-Open No. 2009-217603 presented as Patent Document 1.
In addition, when the SSD 2 is in a state where an error is returned in response to a write command, when performing writing such as rewriting the boot loader of the SSD 2 or writing an emergency OS, which will be described later, use a special write command in the ReadOnly mode state of Patent Document 1. Configure the SSDC 41 so that it does not return an error for (for example, SCT Command Transport described in ACS-2 or other vendor-specific commands), and write to the SSD 2 using the special write command described above. This is desirable. Note that this is not necessary for writing to storage devices other than the SSD2. Alternatively, if the normal OS is an OS that uses only a certain write command (for example, 61h WRITE FPDMA QUEUED), when the SSDC 41 reaches the ReadOnly mode of Patent Document 1, the write command (for example, 61h WRITE FPDMA QUEUED), configure the SSDC 41 to return an error for another write command (e.g. 30h WRITE SECTOR(S)), and configure the SSDC 41 to return an error for another write command (e.g. 30h WRITE SECTOR(S)). (For example, 30h WRITE SECTOR(S)) may be used to write a boot loader, emergency OS, etc. to the SSD 2.

監視対象のコマンドは、書き込みコマンド以外のコマンドであってもよいのはもちろんである。たとえば、コマンド応答としてACS-2記載のB0H/D4H SMART EXECUTE OFF-LINE IMMEDIATEの応答(Outputs)やレポートを用いてもよいし、90h EXECUTE DEVICE DIAGNOSTICの応答を用いてもよい。 Of course, the command to be monitored may be a command other than the write command. For example, the response (Outputs) or report of B0H/D4H SMART EXECUTE OFF-LINE IMMEDIATE described in ACS-2 may be used as a command response, or the response of 90h EXECUTE DEVICE DIAGNOSTIC may be used.

あるコマンド応答がエラーであっても、同コマンドを再度送信するとエラーでない可能性があり、この場合はSSD2が寿命に到達していない可能性があるため、再現性のあるコマンドエラーが発生した場合にのみ寿命到達時処理を行う観点では、コマンドエラーが複数回発生した場合に寿命到達時処理を行うことが望ましい。さらに、エラー再現性を厳密に判定する観点では、コマンドエラーが複数回連続で発生した場合に寿命到達時処理を行うことが望ましい。あるいは、図33に示すように、SSD2へのコマンド監視中にコマンド応答がエラーで返ってきた場合(ステップS220、S221:Yes)、制御ツール200またはOS100が同コマンドをSSD2に再度送信(コマンドリトライ)し(ステップS222)、リトライしたコマンドがエラーした場合に(ステップS223:Yes)、寿命到達時処理を行うようにしてもよい(ステップS224)。 Even if a certain command response is an error, if you send the same command again, it may not be an error. In this case, the SSD2 may not have reached the end of its lifespan, so if a reproducible command error occurs. From the point of view of performing the end-of-life processing only when a command error occurs multiple times, it is desirable to perform the end-of-life processing. Furthermore, from the viewpoint of strictly determining error reproducibility, it is desirable to perform end-of-life processing when a command error occurs multiple times in succession. Alternatively, as shown in FIG. 33, if a command response is returned with an error while monitoring the command to the SSD 2 (steps S220, S221: Yes), the control tool 200 or the OS 100 sends the same command to the SSD 2 again (command retry). ) (Step S222), and if the retried command results in an error (Step S223: Yes), a process may be performed at the end of life (Step S224).

(寿命到達時処理)
つぎに、寿命到達時処理(異常状態時処理)について説明する。第1の実施形態では、通常時OSおよび緊急時OSがSSD2にすでに格納されている場合での寿命到達時処理について説明する。通常時OS100A、緊急時OS100Bおよびブートローダ300は、図7~図11に示したように、たとえば、コンピュータシステム1の出荷前にコンピュータシステム1の製造業者によりSSD2に書き込まれているか、コンピュータシステム1の出荷後にユーザがDVD-ROMやUSBメモリやSSDなどのインストールディスクによりインストールを行うか、コンピュータシステム1の出荷後にユーザがWEBからインストールイメージをダウンロードしダウンロードしたインストールイメージを使ってインストールを行うことで、SSD2に書き込まれる。NANDメモリ16において、図7に示すように、ブートローダ300は領域16Cに、通常時OS100Aは領域16Dに、緊急時OS100Bは領域16Eに書き込まれており、RAM40に格納される管理情報44により、領域16C、領域16D、領域16EにはそれぞれLBAが割り当てられている。領域16CにはLBA16Cが、領域16DにはLBA16Dが、領域16EにはLBA16Eが割り当てられているとする。ブートローダ300内で保持される前述のOSポインタ情報OSPT(読み出すべきOSのLBAを示しているポインタ情報)にも、同様にLBAが割り当てられており、OSPTに割り当てられるLBAをLBAOSPTと呼称する。LBAOSPTはLBA16Cに含まれている。
(Processing at the end of life)
Next, the process when the lifespan is reached (process when the abnormal state occurs) will be explained. In the first embodiment, a description will be given of a process when the life span is reached in a case where the normal OS and the emergency OS are already stored in the SSD 2. As shown in FIGS. 7 to 11, the normal OS 100A, the emergency OS 100B, and the boot loader 300 are, for example, written in the SSD 2 by the manufacturer of the computer system 1 before shipping the computer system 1, or After the computer system 1 is shipped, the user installs it using an installation disk such as a DVD-ROM, USB memory, or SSD, or after the computer system 1 is shipped, the user downloads an installation image from the web and installs using the downloaded installation image. Written to SSD2. In the NAND memory 16, as shown in FIG. An LBA is assigned to each of the areas 16C, 16D, and 16E. It is assumed that LBA16C is allocated to area 16C, LBA16D is allocated to area 16D, and LBA16E is allocated to area 16E. An LBA is similarly assigned to the aforementioned OS pointer information OSPT (pointer information indicating the LBA of the OS to be read) held within the boot loader 300, and the LBA assigned to the OSPT is referred to as LBAOSPT. LBAOSPT is included in LBA16C.

制御ツール200は、ブートローダ300を書き換えることで、次回以降コンピュータシステム1が起動されたときには、通常時OS100Aではなく緊急時OS100Bがホスト装置3の主メモリ6上の領域6Aに読み出されるようにする。通常時OS100AがOS100としてCPU4に使用されている時は、ホスト装置3はSSD2に対して書き込み動作を行う恐れがあり、それによりSSD2の寿命がさらに短くなったり、SSD2に書き込んだデータやすでに書き込まれているデータを破壊してしまう可能性がある。一方、本実施形態により、通常時OS100Aではなく、緊急時OS100Bを主メモリ6上の領域6Aに読み出し、CPU4が緊急時OS100Bをオペレーティングとして使用しているときは、ホスト3がSSD2に対して書き込み動作を行うことは禁止されるため、SSD2のデータが破壊されたりSSD2が読み出し不可能になったりする前に、SSD2のデータを読み出したり、SSD2に格納されているユーザデータを別の記憶媒体にバックアップしたりすることが可能になる。 The control tool 200 rewrites the boot loader 300 so that the next time the computer system 1 is started up, the emergency OS 100B instead of the normal OS 100A is read into the area 6A on the main memory 6 of the host device 3. Normally, when OS100A is used by CPU4 as OS100, host device 3 may write to SSD2, which may further shorten the lifespan of SSD2 or erase the data written to SSD2 or the data already written. There is a possibility that the data stored in the file will be destroyed. On the other hand, according to this embodiment, the emergency OS 100B is read into the area 6A on the main memory 6 instead of the normal OS 100A, and when the CPU 4 is using the emergency OS 100B as an operating system, the host 3 writes data to the SSD 2. Therefore, before the data on the SSD 2 is destroyed or the SSD 2 becomes unreadable, read the data on the SSD 2 or transfer user data stored on the SSD 2 to another storage medium. It is possible to back up.

たとえば図29のステップS205で寿命到達時処理が呼び出されると、図34に示すように、制御ツール200はブートローダ300を書き換えて、次回以降コンピュータシステム1が起動されたときには、通常時OS100Aではなく緊急時OS100Bが主メモリ6上の領域6Aに読み出されるようにする。たとえば、制御ツール200は、LBAOSPTに対して、書き込みデータとしてLBA16Eを書き込む。これにより、次回以降コンピュータシステム1が起動されると、CPU4はOSポインタ情報OSPTを読み出し、OSポインタ情報OSPTの示すLBAであるLBA16Eに対して読み出し命令を送信することで、緊急時OS100Bを読み出すことができる。ブートローダ300の書き換え前後で、制御ツール200がディスプレイ9を通して、「SSDが寿命に到達しました。緊急時OSを有効にします。」という旨の表示を行ってもよい。 For example, when the end-of-life process is called in step S205 in FIG. 29, the control tool 200 rewrites the bootloader 300 as shown in FIG. At this time, the OS 100B is read into the area 6A on the main memory 6. For example, the control tool 200 writes LBA16E as write data to LBAOSPT. As a result, when the computer system 1 is started next time, the CPU 4 reads the OS pointer information OSPT and sends a read command to LBA16E, which is the LBA indicated by the OS pointer information OSPT, thereby reading out the emergency OS 100B. Can be done. Before and after rewriting the bootloader 300, the control tool 200 may display on the display 9 the message "The SSD has reached the end of its lifespan. Emergency OS will be enabled."

図34では、寿命到達時処理としてブートローダ300の書き換えのみを行ったが、図35に示すように、制御ツール200は、ステップS240でのブートローダ書き換え後に、コンピュータシステム1に対してリセットコマンドを送信したり、通常時OSに対してリセットコマンドを送信したりすることにより、コンピュータシステム1を再起動してもよい(ステップS241)。 In FIG. 34, only the bootloader 300 is rewritten as the process when the lifespan is reached, but as shown in FIG. 35, the control tool 200 sends a reset command to the computer system 1 after rewriting the bootloader in step S240. Alternatively, the computer system 1 may be restarted by sending a reset command to the normal OS (step S241).

また、図36に示すように、ステップS250でのブートローダ書き換え後に、ディスプレイ9を通して、「SSDが寿命に到達しました。緊急時OSを有効にします。今すぐ再起動しますか?」という旨のテキスト表示と、OKボタンの表示を行い(ステップS251)、OKボタンがたとえばマウス15やキーボード14により押下されたとき(ステップS252:Yes)、コンピュータシステム1を再起動するようにしてもよい(ステップS253)。また、OKボタンの表示の代わりに、コマンドプロンプト画面で「SSDが寿命に到達しました。緊急時OSを有効にします。今すぐ再起動しますか?y:Yes, n:No」というテキスト表示を行い、キーボード14から“y”とエンターキーを入力されたとき、コンピュータシステム1を再起動するようにしてもよい。 Further, as shown in FIG. 36, after the bootloader is rewritten in step S250, a message saying "The SSD has reached the end of its lifespan. Enabling the emergency OS. Do you want to restart now?" is displayed on the display 9. The text display and the OK button may be displayed (step S251), and when the OK button is pressed, for example, by the mouse 15 or the keyboard 14 (step S252: Yes), the computer system 1 may be restarted (step S251). S253). Also, instead of displaying the OK button, the text "SSD has reached the end of its lifespan. Enable emergency OS. Do you want to restart now? y: Yes, n: No" is displayed on the command prompt screen. The computer system 1 may be restarted when "y" and the enter key are input from the keyboard 14.

図37は、コンピュータシステム1の再起動時の動作手順を示すものである。コンピュータシステム1が再起動されると、CPU4は領域16Cに対応するLBAおよびLBAOSPTを使用してブートローダ300およびOSポインタ情報OSPTをSSD2から読み出す(ステップS260)。つぎに、CPU4は、ブートローダ300を使用して所要のブート処理を行うとともに、OSポインタ情報OSPTを解析し、OSポインタ情報OSPTが示すLBAを特定する。そして、CPU4は、特定したLBAに対する読み出し命令をSSD2へ送信することで、OSポインタ情報OSPTが指定するOSをSSD2から読み出す。したがって、OSポインタ情報OSPTが示すLBAが通常時OS100Aの記憶領域である領域16Dを指定しているときには(ステップS261:Yes)、通常時OA100Aが領域16Dから読み出されて主メモリ6上の領域6Aに書き込まれ(ステップS262)、OSポインタ情報OSPTが示すLBAが緊急時OS100Bの記憶領域である領域16Eを指定しているときには(ステップS261:No)、緊急時OA100Bが領域16Eから読み出されて主メモリ6上の領域6Aに書き込まれる(ステップS263)。このように、制御ツール200による寿命到達時処理によってブートローダ300のOSポインタ情報OSPTが、緊急時OS100Bを読み出すように書き換えられているときには、緊急時OA100Bが領域16Eから読み出されて主メモリ6上の領域6Aに書き込まれることになる。 FIG. 37 shows the operating procedure when the computer system 1 is restarted. When the computer system 1 is restarted, the CPU 4 reads the boot loader 300 and the OS pointer information OSPT from the SSD 2 using the LBA and LBAOSPT corresponding to the area 16C (step S260). Next, the CPU 4 performs necessary boot processing using the boot loader 300, analyzes the OS pointer information OSPT, and specifies the LBA indicated by the OS pointer information OSPT. Then, the CPU 4 reads the OS specified by the OS pointer information OSPT from the SSD 2 by transmitting a read command for the specified LBA to the SSD 2. Therefore, when the LBA indicated by the OS pointer information OSPT specifies the area 16D which is the storage area of the normal OS 100A (step S261: Yes), the normal OA 100A is read from the area 16D and is read from the area 16D in the main memory 6. 6A (step S262), and when the LBA indicated by the OS pointer information OSPT specifies area 16E, which is the storage area of the emergency OS 100B (step S261: No), the emergency OA 100B is read from the area 16E. and is written to the area 6A on the main memory 6 (step S263). In this way, when the OS pointer information OSPT of the boot loader 300 is rewritten to read the emergency OS 100B by the end-of-life processing by the control tool 200, the emergency OA 100B is read from the area 16E and stored in the main memory 6. It will be written in the area 6A.

(バックアップ機能)
ユーザがSSD2のユーザデータを他の記憶装置に容易にバックアップしやすくするという観点では、緊急時OS100Bに、ユーザデータバックアップ機能を付加することが望ましい。SSD2が寿命に到達したと考えられる状態では、SSD2のデータリテンション特性が悪化していると考えられるため、できるだけ早急にSSD2上のユーザデータを他のバックアップ用記憶装置にデータを退避させることが必要である。
(backup function)
From the viewpoint of making it easier for the user to back up user data in the SSD 2 to another storage device, it is desirable to add a user data backup function to the emergency OS 100B. When the SSD2 is considered to have reached the end of its lifespan, the data retention characteristics of the SSD2 are considered to have deteriorated, so it is necessary to evacuate user data on the SSD2 to another backup storage device as soon as possible. It is.

図38は、緊急時OS100Bがバックアップ機能を搭載している場合の、ホスト装置3の構成を示す図である。ホスト装置3には、インタフェース19(本実施形態ではSATAインタフェースを採用する)を介して、バックアップ用記憶装置(他のSSD、ハードディスクドライブなど)150が接続されている。バックアップ用記憶装置150はコンピュータシステム1の出荷時には搭載されている必要が無く、たとえばユーザが別途購入したSSDをバックアップ用記憶装置150として用いる場合は、SSDのSATAポートをSATAケーブルを経由してマザーボード30(図13参照)に接続し、SSD2の電源ポートを電源ケーブルを経由して電源32に接続するとよい。 FIG. 38 is a diagram showing the configuration of the host device 3 when the emergency OS 100B is equipped with a backup function. A backup storage device (another SSD, hard disk drive, etc.) 150 is connected to the host device 3 via an interface 19 (a SATA interface is used in this embodiment). The backup storage device 150 does not need to be installed when the computer system 1 is shipped. For example, if the user uses a separately purchased SSD as the backup storage device 150, connect the SSD's SATA port to the motherboard via a SATA cable. 30 (see FIG. 13), and the power port of the SSD 2 is preferably connected to the power source 32 via a power cable.

図39は、緊急時OS100Bにバックアップ機能を付加した場合の、緊急時OS100Bの起動手順の一例を示すものである。図39のステップS270~S273の動作は、図37のステップS260~S263の動作と同じである。図39では、図37に示したコンピュータシステム1の起動手順にステップS274~S276を追加している。緊急時OS100Bの起動後、ステップS274以降の処理は、たとえば、ユーザがキーボード14やマウス15を介して緊急時OS100Bのプログラムメニューからバックアップ機能を選択するか、あるいは、緊急時OS100Bが起動すると自動的に開始される。バックアップ処理の前に、ディスプレイ9に「バックアップするか?」というメッセージと、OKボタンを表示して、バックアップするタイミングをユーザが自由に選択できるようにすることが望ましい。マウス15やキーボード14によりOKボタンを選択すると、ステップS275のYesにすすむ。あるいは、ディスプレイ9に、コマンドプロンプト経由で「バックアップするか?Yes:Y、No:N」というメッセージを表示して、キーボード14からYボタンとエンターキーを押すことでステップS275のYesにすすむようにしてもよい。このようにして、バックアップ機能が選択されると(ステップS275:Yes)、緊急時OS100Bはバックアップ処理を開始する。 FIG. 39 shows an example of the startup procedure of the emergency OS 100B when a backup function is added to the emergency OS 100B. The operations in steps S270 to S273 in FIG. 39 are the same as the operations in steps S260 to S263 in FIG. 37. In FIG. 39, steps S274 to S276 are added to the startup procedure of the computer system 1 shown in FIG. 37. After the emergency OS 100B is started, the processing from step S274 onward is performed automatically when the user selects the backup function from the program menu of the emergency OS 100B using the keyboard 14 or mouse 15, or when the emergency OS 100B starts. will be started on. Before the backup process, it is desirable to display a message "Do you want to back up?" and an OK button on the display 9 so that the user can freely select the timing for backing up. When the OK button is selected using the mouse 15 or keyboard 14, the process advances to Yes in step S275. Alternatively, the message "Do you want to back up? Yes: Y, No: N" may be displayed on the display 9 via the command prompt, and you can proceed to Yes in step S275 by pressing the Y button and the enter key on the keyboard 14. good. In this manner, when the backup function is selected (step S275: Yes), the emergency OS 100B starts backup processing.

バックアップ処理の内容としては、たとえば、緊急時OS100Bは、SSD2から読み出したデータのLBA(SSD2のLBA)と同一のLBA(バックアップ用記憶装置150上のLBA)に、SSD2から読み出したデータを書き込む(LBA単位のバックアップ)。例えば、SSD2上のLBA=0hのデータはバックアップ用記憶装置150上のLBA=0hにコピーされる(ステップS276)。また、SSD2上のLBA=234c5hのデータはバックアップ用記憶装置150上のLBA=234c5hにコピーされる。データのコピーは、SSD2に対し、たとえばACS-2記載の60h READ FPDMA QUEUEDや25h READ DMA EXTコマンドをLBAおよびセクタ長を指定して送信し、SSD2から読み出しデータを受信して主メモリ6に書き込み、たとえばACS-2記載の61h WRITE FPDMA QUEUEDや35h WRITE DMA EXTをバックアップ用記憶装置150にLBAおよびセクタ長を指定して送信し、主メモリ6に書き込んだデータをバックアップ用記憶装置150に送信することで実行される。バックアップ処理は全LBA領域について行ってもよいが、一部のLBA領域についてのみ行ってもよい。 As for the content of the backup process, for example, the emergency OS 100B writes the data read from the SSD 2 to the same LBA (LBA on the backup storage device 150) as the LBA of the data read from the SSD 2 (LBA of the SSD 2). backup in LBA units). For example, data with LBA=0h on the SSD 2 is copied to LBA=0h on the backup storage device 150 (step S276). Furthermore, the data at LBA=234c5h on the SSD 2 is copied to LBA=234c5h on the backup storage device 150. To copy data, send the 60h READ FPDMA QUEUED or 25h READ DMA EXT command described in ACS-2 to the SSD 2, specifying the LBA and sector length, receive the read data from the SSD 2, and write it to the main memory 6. , for example, send 61h WRITE FPDMA QUEUED or 35h WRITE DMA EXT described in ACS-2 to the backup storage device 150 by specifying the LBA and sector length, and send the data written in the main memory 6 to the backup storage device 150. It is executed by The backup process may be performed for all LBA areas, or may be performed for only some LBA areas.

なお、このバックアップ処理の際、緊急時OS100Bは、SSD2の全ファイルをバックアップ用記憶装置150にコピーするようにしてもよい。多くのOSにおいては、ユーザはLBAを直接指定してデータにアクセスするのではなく、ファイルID(ファイル名)を用いてデータにアクセスする。例えば、SSD2は、図40に示すように、ファイルIDとLBAやセクタ長を関連付けるファイル管理テーブル140を格納している。管理情報44によってファイル管理テーブル140にもLBAが割り当てられている。通常時OS100Aは、図12に示したその他ソフトウェアから受信したファイルIDを、ファイル管理テーブル140をもとにLBAに変換してSSD2に送信したり、SSD2から受信したLBAをファイル管理テーブル140をもとにファイルIDに変換してその他ソフトウェアに送信したりする。バックアップ処理において、緊急時OS100Bはファイル管理テーブル140をSSD2から読み出し、ファイルIDそれぞれに対し、ファイル管理テーブル140で対応しているLBAのデータを読み出すコマンド(60h READ FPDMA QUEUEDや25h READ DMA EXTコマンドなど)をSSD2に送信し、SSD2から読み出しデータを受信して主メモリ6に書き込む。さらに、緊急時OS100Bは、バックアップ用記憶装置150のファイル管理テーブル(図示せず)を読み出し、まだファイルIDの割り当てられていないLBAに対し主メモリ6に書き込んだデータを書き込み、書き込んだLBAとファイル名を対応付けるようSSD2の全ファイルの全LBAを取得し、取得したLBAの全データを読み出し、読み出したデータをバックアップ用記憶装置150に書き込み、書き込んだLBAとファイルIDが対応付けられるようにバックアップ用記憶装置150のファイル管理テーブル(図示せず)を書き換える。バックアップ処理は全ファイルについて行ってもよいが、一部のファイルについてのみ行ってもよい。 Note that during this backup process, the emergency OS 100B may copy all files on the SSD 2 to the backup storage device 150. In many OSes, a user does not access data by directly specifying an LBA, but uses a file ID (file name) to access data. For example, as shown in FIG. 40, the SSD 2 stores a file management table 140 that associates file IDs with LBAs and sector lengths. LBAs are also assigned to the file management table 140 according to the management information 44. Normally, the OS 100A converts the file ID received from other software shown in FIG. 12 into an LBA based on the file management table 140 and sends it to the SSD 2. It then converts it to a file ID and sends it to other software. In the backup process, the emergency OS 100B reads the file management table 140 from the SSD 2, and issues commands (60h READ FPDMA QUEUED, 25h READ DMA EXT command, etc.) to read the data of the LBA corresponding to the file management table 140 for each file ID. ) is sent to the SSD 2, and read data is received from the SSD 2 and written to the main memory 6. Furthermore, the emergency OS 100B reads the file management table (not shown) of the backup storage device 150, writes the data written in the main memory 6 to the LBA to which a file ID has not been assigned yet, and combines the written LBA and the file Acquire all LBAs of all files on the SSD 2 so that names are associated with each other, read all data of the acquired LBAs, write the read data to the backup storage device 150, and create a backup file so that the written LBAs and file IDs are associated with each other. The file management table (not shown) in the storage device 150 is rewritten. Backup processing may be performed on all files, or may be performed on only some files.

また、バックアップ用記憶装置150にバックアップデータを書き込む際、SSD2から読み出したデータを圧縮して書き込んでもよい。また、ファイル管理テーブル140をはじめとするSSD2の管理情報を読み出し、使用されている領域やファイルの情報を取得し、取得した情報をもとに、SSD2のデータについてのROMイメージを作成し、作成したROMイメージを他のバックアップ用記憶装置150に保存するようにしてもよい。 Furthermore, when writing backup data to the backup storage device 150, the data read from the SSD 2 may be compressed and written. In addition, it reads the management information of the SSD 2 including the file management table 140, obtains the information on the used areas and files, and creates a ROM image for the data of the SSD 2 based on the obtained information. The created ROM image may be stored in another backup storage device 150.

上記説明では、バックアップ用記憶装置として、SATAインタフェースで接続されるSATAデバイスである場合を採用したが、その他のバックアップ用記憶装置を用いてもよいのはもちろんである。たとえば、図41に示すように、バックアップ用記憶装置としてUSBメモリやUSB対応SSDなどのUSBストレージデバイス151を採用してもよく、図42に示すように、バックアップ用記憶装置としてDVD-RやDVD-RWやBlu-ray(登録商標) Discなどのような書き込み可能な光学ドライブ152を採用してもよく、図43に示すように、バックアップ用記憶装置としてインターネットやLAN経由で接続されたネットワークストレージサーバ153を採用してもよい。また、当該バックアップ機能は他の実施形態の場合にも適用可能である。 In the above description, the backup storage device is a SATA device connected via a SATA interface, but it goes without saying that other backup storage devices may be used. For example, as shown in FIG. 41, a USB storage device 151 such as a USB memory or a USB compatible SSD may be used as a backup storage device, and as shown in FIG. 42, a DVD-R or DVD may be used as a backup storage device. - A writable optical drive 152 such as RW or Blu-ray (registered trademark) Disc may be adopted, and as shown in FIG. 43, a network storage connected via the Internet or LAN as a backup storage device may be used. A server 153 may also be employed. Further, the backup function is also applicable to other embodiments.

図7に示したように、緊急時OS100Bの格納領域16Eは管理情報44でLBAに対応付けられているとした。一方、ユーザによって不用意に領域16Eのデータが書き換えられてしまうことを防止するためには、SSD2の出荷時にLBAを割り当てることなく格納領域16Eに緊急時OSを記録しておいて、寿命到達時処理時に、制御ツール200がSCT Command Transportやベンダー独自のコマンドをSSD2に送信することにより、SSDC41が管理情報44を書き換えて領域16EにLBAを割り当てるようにしてもよい。あるいは、LBAが割り当てられている領域16EのLBA Rangeを含むSCT Command Transportやベンダー独自のコマンドを制御ツール200がSSD2に送信することにより、領域16EがLBAに割り当てられないようにSSDC41が管理情報44を書き換え、寿命到達時処理時に、制御ツール200がSCT Command Transportやベンダー独自のコマンドをSSD2に送信することにより、SSDC41が管理情報44を書き換えて領域16EにLBAを割り当てるようにしてもよい。 As shown in FIG. 7, it is assumed that the storage area 16E of the emergency OS 100B is associated with the LBA in the management information 44. On the other hand, in order to prevent the data in the area 16E from being inadvertently rewritten by the user, an emergency OS should be recorded in the storage area 16E without allocating an LBA when the SSD 2 is shipped, and During processing, the control tool 200 may send an SCT Command Transport or a vendor-specific command to the SSD 2, so that the SSDC 41 rewrites the management information 44 and assigns the LBA to the area 16E. Alternatively, when the control tool 200 sends an SCT Command Transport or a vendor-specific command including the LBA Range of the area 16E to which the LBA is allocated to the SSD 2, the SSDC 41 changes the management information 44 so that the area 16E is not allocated to the LBA. The SSDC 41 may rewrite the management information 44 and allocate the LBA to the area 16E by having the control tool 200 send an SCT Command Transport or a vendor-specific command to the SSD 2 during the end-of-life processing.

このように第1の実施形態によれば、制御ツール200は、SSD2が寿命に到達したか否か、SSD2が正常な状態であるか否かを判定し、SSD2が寿命に到達したと判定された場合やSSD2が異常な状態であると判定された場合、ブートローダ300を、書き込み動作をサポートしていない緊急時OSが起動されるように書き換え、コンピュータシステム1を再起動した際、緊急時OSが起動されるようにすることで、SSD2に対する書き込み動作を禁止、あるいはSSD2に対する書き込み動作を陽に行わないようにすることで、SSD2の信頼性劣化を防止し、SSD2に書き込むデータやSSDにすでに書き込まれているデータが破壊されることを防止し、ユーザがユーザデータを容易にSSD2から読み出したり他の記憶装置にバックアップしたりすることを実現する。 According to the first embodiment, the control tool 200 determines whether the SSD 2 has reached the end of its lifespan and whether the SSD 2 is in a normal state, and determines that the SSD 2 has reached the end of its lifespan. or if the SSD 2 is determined to be in an abnormal state, the boot loader 300 is rewritten so that an emergency OS that does not support write operations is started, and when the computer system 1 is restarted, the emergency OS is activated, prohibiting write operations to the SSD2, or preventing write operations to the SSD2 from being performed explicitly, thereby preventing deterioration of the reliability of the SSD2, To prevent written data from being destroyed and to enable a user to easily read user data from an SSD 2 or back it up to another storage device.

(第2の実施形態)
第1の実施形態では、通常時OS100Aおよび緊急時OS100Bの双方がSSD2のNANDメモリ16に格納されている場合について説明した。第2の実施形態では、通常時OS100AがSSD2に格納されており、緊急時OS100BがSSD2に格納されていない場合について説明する。第2の実施形態では、図33のステップS224に示した寿命到達時処理の際のブートローダ300の書き換え処理(図34、図35のステップS240参照)の前後で、制御ツール200が緊急時OS100Bを、SSD2と異なる外部記憶装置20(図8参照)からSSD2のNANDメモリ16の領域16Eにインストールする。ユーザが不用意に、SSD2の緊急時OSが格納された領域16Eを書き換えることで緊急時OS用データが破壊されることを防止する観点、領域16Eの確保によりSSD2の空き領域が減少することを防止する観点では、第2の実施形態を採用することが望ましい。
(Second embodiment)
In the first embodiment, a case has been described in which both the normal OS 100A and the emergency OS 100B are stored in the NAND memory 16 of the SSD 2. In the second embodiment, a case will be described in which the normal OS 100A is stored in the SSD 2 and the emergency OS 100B is not stored in the SSD 2. In the second embodiment, the control tool 200 installs the emergency OS 100B before and after the rewriting process of the bootloader 300 (see steps S240 in FIGS. 34 and 35) during the lifespan reaching process shown in step S224 in FIG. , is installed in the area 16E of the NAND memory 16 of the SSD 2 from an external storage device 20 (see FIG. 8) that is different from the SSD 2. In order to prevent the emergency OS data from being destroyed due to the user inadvertently rewriting the area 16E in which the emergency OS of the SSD 2 is stored, it is possible to prevent the free space of the SSD 2 from decreasing by securing the area 16E. From the viewpoint of prevention, it is desirable to adopt the second embodiment.

また、制御ツール200は、例えば、図9に示したように、ブートローダ300の書き換え前後で、WEBサーバ21から緊急時OS100Bのデータまたはインストールプログラムをダウンロードし、ダウンロードデータをもとにSSD2のNANDメモリ16の領域16Eに緊急時OS100Bをインストールする。または、制御ツール200は緊急時OSのデータまたはインストールプログラムを格納しているWEBサーバのアドレスをディスプレイ9を通じてユーザに表示するようにしてもよい。 Further, as shown in FIG. 9, for example, the control tool 200 downloads the data or installation program of the emergency OS 100B from the WEB server 21 before and after rewriting the boot loader 300, and installs the data in the NAND memory of the SSD 2 based on the downloaded data. The emergency OS 100B is installed in the area 16E of No. 16. Alternatively, the control tool 200 may display to the user through the display 9 the address of the web server that stores the emergency OS data or installation program.

あるいは、図10や図11に示したように、制御ツール200は、ブートローダ300の書き換え前後で、外部記憶媒体(DVD-ROMのような光学メディア、USBメモリ、SDカード、SSDなど)23、24から緊急時OS100BをSSD2のNANDメモリ16の領域16Eにインストールするようにしてもよい。あるいは、制御ツール200は、ブートローダ300の書き換え前後で、緊急時OS100Bのインストールプログラムが格納された外部記憶媒体(DVD-ROMのような光学メディア、USBメモリ、SDカード、SSDなど)をセットするように、ディスプレイ9を通じてユーザにメッセージを表示するようにしてもよい。 Alternatively, as shown in FIGS. 10 and 11, the control tool 200 can control the external storage media (optical media such as DVD-ROM, USB memory, SD card, SSD, etc.) 23, 24 before and after rewriting the bootloader 300. The emergency OS 100B may be installed in the area 16E of the NAND memory 16 of the SSD 2. Alternatively, the control tool 200 may set an external storage medium (optical media such as a DVD-ROM, USB memory, SD card, SSD, etc.) in which the emergency OS 100B installation program is stored before and after rewriting the boot loader 300. Additionally, a message may be displayed to the user through the display 9.

NANDメモリ16への緊急時OS100Bのインストール時、NANDメモリ16への書き込みが発生するので、NANDメモリ16の信頼性劣化やデータ破壊を防止する観点では、緊急時OSのデータ量はNANDメモリ16の容量に対して大幅に小さいことが望ましい。 When the emergency OS 100B is installed in the NAND memory 16, writing to the NAND memory 16 occurs, so from the perspective of preventing reliability deterioration and data destruction of the NAND memory 16, the amount of data of the emergency OS is limited to the amount of data in the NAND memory 16. It is desirable that it be significantly smaller than the capacity.

(第3の実施形態)
第3の実施形態では、通常時OS100Aおよび緊急時OS100BがSSD2とは別の不揮発性記憶装置20に格納されている場合の寿命到達時処理について説明する。図8に示したように、通常時OS100Aおよび緊急時OS100BがSSD2とは別の不揮発性記憶装置20に格納されてSSD2に格納されていない場合や、どちらか一方がSSD2に格納されていてもう一方が不揮発性記憶装置20に格納されている場合にも本発明は適用可能である。その場合、制御ツール200はSSD2のブートローダだけでなく、不揮発性記憶装置20のブートローダに対しても書き換えを行う必要がある場合がある。
(Third embodiment)
In the third embodiment, a description will be given of a process when the life span is reached when the normal OS 100A and the emergency OS 100B are stored in a nonvolatile storage device 20 different from the SSD 2. As shown in FIG. 8, there are cases where the normal OS 100A and the emergency OS 100B are stored in a non-volatile storage device 20 separate from the SSD 2 and are not stored in the SSD 2, or when one of them is stored in the SSD 2 and the other is stored in the SSD 2. The present invention is also applicable when one of the two is stored in the nonvolatile storage device 20. In that case, the control tool 200 may need to rewrite not only the boot loader of the SSD 2 but also the boot loader of the nonvolatile storage device 20.

通常時OS100Aおよび緊急時OS100BがSSD2とは別の不揮発性記憶装置20に格納されている場合、制御ツール200は不揮発性記憶装置20の記憶されているブートローダ300の書き換えを行い、SSD2のブートローダの書き換えは行わない。 When the normal OS 100A and the emergency OS 100B are stored in a non-volatile storage device 20 different from the SSD 2, the control tool 200 rewrites the boot loader 300 stored in the non-volatile storage device 20, and updates the boot loader of the SSD 2. No rewriting will be performed.

通常時OS100AがSSD2に格納されており、緊急時OS100Bが不揮発性記憶装置20に格納されている場合は、制御ツール200は、SSD2と不揮発性記憶装置20の両方のブートローダの書き換えを行うことが望ましい。不揮発性記憶装置20がホスト装置3から取り外されている状態でコンピュータシステム1が起動された場合、SSD2への書き込みアクセスが不用意に発生することを防止する観点では、通常時OSが起動しないようブートローダが構成されることが望ましい。 If the normal OS 100A is stored in the SSD 2 and the emergency OS 100B is stored in the non-volatile storage device 20, the control tool 200 can rewrite the boot loader of both the SSD 2 and the non-volatile storage device 20. desirable. If the computer system 1 is started with the non-volatile storage device 20 removed from the host device 3, in order to prevent write access to the SSD 2 from occurring inadvertently, it is necessary to prevent the OS from starting normally. It is desirable that the bootloader be configured.

緊急時OS100BがSSD2に格納されており、通常時OS100Aが不揮発性記憶装置20に格納されている場合は、SSD2と不揮発性記憶装置20の両方のブートローダの書き換えを行うことが望ましいが、不揮発性記憶装置20のブートローダを書き換えるだけでもよい。この場合は、不揮発性記憶装置20がホスト装置3から取り外されている状態でコンピュータシステム1が起動された場合においても、SSD2のブートローダ300の読み出しを行ってSSD2のNANDメモリ16の領域16Eから緊急時OSを起動することができる。 If the emergency OS 100B is stored in the SSD 2 and the normal OS 100A is stored in the nonvolatile storage device 20, it is desirable to rewrite the bootloader of both the SSD 2 and the nonvolatile storage device 20. It is sufficient to simply rewrite the boot loader of the storage device 20. In this case, even if the computer system 1 is started with the nonvolatile storage device 20 removed from the host device 3, the boot loader 300 of the SSD 2 is read and the emergency memory is read from the area 16E of the NAND memory 16 of the SSD 2. The OS can be started.

(第4の実施形態)
第4の実施形態では、通常時OS100AがSSD2にインストールされているが、緊急時OSがSSD2にインストールされていない場合について説明する。信頼性が劣化したSSD2へのアクセスを極力抑制する観点では、緊急時OS100Bの起動はSSD2とは別の記憶装置から行うことが望ましい。本実施形態の制御ツール200は、寿命到達時処理の際に、緊急時OSをインストールした緊急時起動用の起動ディスクを作成する機能を有している。
(Fourth embodiment)
In the fourth embodiment, a case will be described in which the normal OS 100A is installed on the SSD 2, but the emergency OS is not installed on the SSD 2. From the viewpoint of suppressing access to the SSD 2 whose reliability has deteriorated as much as possible, it is desirable to start the emergency OS 100B from a storage device other than the SSD 2. The control tool 200 of this embodiment has a function of creating a startup disk for emergency startup on which an emergency OS is installed during the end-of-life process.

緊急時起動用の起動ディスクとしては、USBメモリ、SDカード、CD・DVDなどの光学メディア、SSD、ハードディスクドライブなど、種々の不揮発性記憶装置を採用することができる。本実施形態ではこの中で、緊急時起動用の起動ディスクとしてUSBメモリを採用した場合について説明する。 As the startup disk for emergency startup, various non-volatile storage devices can be employed, such as a USB memory, an SD card, optical media such as a CD/DVD, an SSD, and a hard disk drive. In this embodiment, a case will be described in which a USB memory is used as a boot disk for emergency boot.

緊急時起動用の起動ディスクを作成するための緊急時OSデータを含むデータ(イメージデータ)は、たとえばSSD2や、その他SSDや、USBメモリや、SDカードや、DVD-ROMドライブなど光学メディアや、WEBサーバの記憶媒体などに記憶しておけばよい。本実施形態では、緊急時OSインストール用のイメージデータが格納される記憶媒体としてSSD2を採用した場合について紹介する。つまり、信頼性劣化したSSD2そのものに、インストール元イメージデータが格納されている。 Data (image data) including emergency OS data for creating a startup disk for emergency startup can be stored in optical media such as SSD2, other SSDs, USB memory, SD cards, DVD-ROM drives, etc. It may be stored in a storage medium of a web server or the like. In this embodiment, a case will be introduced in which an SSD 2 is employed as a storage medium in which image data for emergency OS installation is stored. In other words, the installation source image data is stored in the SSD 2 itself, which has deteriorated in reliability.

緊急時OSのインストール時には、SSD2からイメージデータの読み出しが発生するが、いったんインストールを行えば、同イメージデータを読み出すことはなくなる。また、SSD2が寿命に到達するより以前の段階から、緊急時起動用の起動ディスクをユーザが任意に作成できる機能を制御ツール200が持っていることが望ましい。 When installing the emergency OS, image data is read from the SSD 2, but once the installation is performed, the image data is no longer read. Further, it is desirable that the control tool 200 has a function that allows the user to arbitrarily create a startup disk for emergency startup even before the SSD 2 reaches the end of its lifespan.

図44に緊急時起動用ディスクを作成する時のデータの移動の概念図を示す。また、図45に、緊急時起動用ディスクを作成する際の制御ツール200の動作手順を示す。制御ツール200は、寿命到達時処理開始時、ホスト装置3のUSBコントローラ13にUSBメモリが接続されているかどうかを確認し、接続されていない場合は、「緊急時OS起動用USBメモリを作成します。USBメモリを接続してください。」という旨のメッセージを、ディスプレイ9を介してユーザに表示することが望ましい。 FIG. 44 shows a conceptual diagram of data movement when creating an emergency boot disk. Further, FIG. 45 shows the operating procedure of the control tool 200 when creating an emergency boot disk. When the control tool 200 starts the end-of-life process, it checks whether a USB memory is connected to the USB controller 13 of the host device 3, and if it is not connected, the control tool 200 displays the message ``Create a USB memory for emergency OS startup.'' It is desirable to display a message to the user via the display 9 saying, "Please connect the USB memory."

図44に示すように、USBメモリ24が接続されている場合、制御ツール200は、SSD2のNANDメモリ16の領域16Qに記憶されているインストールイメージデータ400から緊急時OSデータを抽出し(緊急時OSデータが圧縮・暗号化されている場合はこれを復号化する)、USBメモリ24の領域24Rにコピー(インストール)する(ステップS280)。つぎに、制御ツール200は、USBメモリ24に記憶されているブートローダ310が読み込まれた場合にUSBメモリ24にインストールされた緊急時OS100Bが読み出されるべく、緊急時OS100Bの記憶領域24Rを参照するようブートローダ310を書き換える(ステップS281)。具体的には、制御ツール200は、たとえば、ブートローダ310のOSポインタ情報OSPT311に記憶領域24Rに対応するLBAを書き込む。 As shown in FIG. 44, when the USB memory 24 is connected, the control tool 200 extracts the emergency OS data from the installation image data 400 stored in the area 16Q of the NAND memory 16 of the SSD 2 (in an emergency If the OS data is compressed and encrypted, it is decrypted) and copied (installed) to the area 24R of the USB memory 24 (step S280). Next, the control tool 200 refers to the storage area 24R of the emergency OS 100B so that the emergency OS 100B installed in the USB memory 24 is read when the boot loader 310 stored in the USB memory 24 is read. The boot loader 310 is rewritten (step S281). Specifically, the control tool 200 writes, for example, the LBA corresponding to the storage area 24R into the OS pointer information OSPT311 of the boot loader 310.

ホスト装置3にUSBメモリ24とSSD2の両方が接続されている場合、USBメモリ24のブートローダ310が優先して起動されるよう、ブートローダ310とブートローダ310が書き換えられたり、BIOS-ROM11の設定が変更されることが望ましい(ステップS282)。なお、ステップS282を実行しなくてもよい。 When both the USB memory 24 and the SSD 2 are connected to the host device 3, the boot loader 310 and the boot loader 310 may be rewritten or the settings of the BIOS-ROM 11 may be changed so that the boot loader 310 of the USB memory 24 is started with priority. It is desirable to do so (step S282). Note that step S282 does not have to be executed.

ホスト装置3にUSBメモリ24が接続されていない場合に、SSD2から通常時OS100Aが起動してしまいSSD2に不用意に書き込みアクセスが発生することを防止する観点では、ステップS282において、SSD2から通常時OS100Aが起動しないようSSD2のブートローダ300を書き換えることが望ましい。たとえば、ブートローダ300のOSポインタ情報OSPT301に通常時OS100Aの記憶領域16D以外のLBAを書き込んだりあるいは無効なLBAを書き込むことにより、SSD2のブートローダ300が読み出されても通常時OS100Aがロードされることを防止することができる。あるいは、通常時OS100Aのデータを書き換えてしまってもよい。 In order to prevent the normal OS 100A from starting from the SSD 2 and inadvertently causing a write access to the SSD 2 when the USB memory 24 is not connected to the host device 3, in step S282, the normal OS from the SSD 2 is It is desirable to rewrite the boot loader 300 of the SSD 2 so that the OS 100A does not start. For example, by writing an LBA other than the storage area 16D of the normal OS 100A to the OS pointer information OSPT 301 of the boot loader 300, or writing an invalid LBA, the normal OS 100A may be loaded even if the boot loader 300 of the SSD 2 is read. can be prevented. Alternatively, the data in the normal OS 100A may be rewritten.

このようにして、SSD2が寿命に到達した場合やSSD2が異常な状態になった場合に、SSD2の信頼性悪化やSSD2のデータ破壊を抑制しながらSSD2のデータを読み出したりSSD2のデータを他の不揮発性記憶装置にバックアップすることが可能なOSを立ち上げるための起動ディスクを作成することができる。 In this way, when the SSD 2 reaches the end of its service life or when the SSD 2 becomes abnormal, the data on the SSD 2 can be read out, or the data on the SSD 2 can be transferred to other It is possible to create a boot disk for booting an OS that can be backed up to a non-volatile storage device.

また、図46に示すように、緊急時OS100BとしてMS-DOS(商標)やLinux(商標)やWindows(登録商標) PE(商標)などのOSを採用し、緊急時OSをUSBメモリ24にインストールするのと同時に、SSD2のデータをバックアップする機能を有する緊急時ツール210をUSBメモリ24の領域24Sにインストールし、緊急時ツール210を緊急時OS100Bから実行できるようにしてもよい。緊急時ツール210は第1の実施形態で説明したものと同様のバックアップ機能を有することが望ましい。 Further, as shown in FIG. 46, an OS such as MS-DOS (trademark), Linux (trademark), Windows (registered trademark) PE (trademark) is adopted as the emergency OS 100B, and the emergency OS is installed in the USB memory 24. At the same time, an emergency tool 210 having a function of backing up data on the SSD 2 may be installed in the area 24S of the USB memory 24, so that the emergency tool 210 can be executed from the emergency OS 100B. It is desirable that the emergency tool 210 has a backup function similar to that described in the first embodiment.

図47は、ホスト装置3の起動時の動作を示すものである。ホスト装置3の起動時、USBメモリ24から緊急時OS100Bが読み出され、主メモリ6に書き込まれることで、緊急時OS100BがUSBメモリ24から起動される(ステップS290)。つぎに、USBメモリ24から緊急時ツール210が読み出され、主メモリ6に書き込まれることで、緊急時ツール210がUSBメモリ24から起動される(ステップS291)。緊急時ツール210が緊急時OS100Bのスタートアップに登録されるなどして、緊急時OS100Bの起動後に自動的に緊急時ツール210が起動されることが望ましい。 FIG. 47 shows the operation of the host device 3 at startup. When the host device 3 is started, the emergency OS 100B is read from the USB memory 24 and written to the main memory 6, thereby starting the emergency OS 100B from the USB memory 24 (step S290). Next, the emergency tool 210 is read from the USB memory 24 and written into the main memory 6, thereby starting the emergency tool 210 from the USB memory 24 (step S291). It is desirable that the emergency tool 210 is automatically started after the emergency OS 100B is started, such as by being registered in the startup of the emergency OS 100B.

緊急時OS100Bは、図48に示すように、ディスプレイ9を介して、ユーザが選択可能なメニュー項目の一つとしてバックアップメニューを表示したり、「バックアップするか?」というメッセージとOKボタンを表示したり、または「バックアップするか?」というメッセージを表示してキーボード14の入力待機状態にしたりすることで、ユーザが任意にバックアップ機能を起動可能状態にすることが望ましい(ステップS292)。なお、緊急時OS100Bは、バックアップを自動的に開始してもよい。 As shown in FIG. 48, the emergency OS 100B displays a backup menu as one of the menu items that the user can select, or displays a message "Do you want to back up?" and an OK button via the display 9. It is preferable that the user arbitrarily enable the backup function by displaying the message "Do you want to back up?" and placing the keyboard 14 in a standby state for input (step S292). Note that the emergency OS 100B may automatically start backup.

キーボード14やマウス15により、バックアップ機能起動が選択されると(ステップS293)、緊急時ツール210が起動する。緊急時ツール210はSSD2のデータをバックアップ用記憶装置150にコピーする(ステップS293)。バックアップの方式は、第1の実施形態で説明したものと同様の方式を採用してもよく、例えばLBA単位バックアップやファイル単位バックアップを採用してもよい。 When activating the backup function is selected using the keyboard 14 or mouse 15 (step S293), the emergency tool 210 is activated. The emergency tool 210 copies the data on the SSD 2 to the backup storage device 150 (step S293). As the backup method, a method similar to that described in the first embodiment may be adopted, and for example, LBA unit backup or file unit backup may be adopted.

(第5の実施形態)
上述の実施形態によって、SSD2の信頼性劣化やSSD2のデータ破壊を抑制したうえで、ユーザがユーザデータを容易にSSD2から読み出したり、他の記憶装置にバックアップしたりすることを実現した。第5の実施形態では、さらにSSD2の信頼性劣化を抑制する方法を提供する。SSD2では、経年劣化やリードディスターブの影響によるデータの破損を修復するために、バックグラウンドでリフレッシュ処理を行う機能を搭載する場合がある。この機能では、NANDメモリ16のブロックを定期的に読み出し、データの誤り数が多いブロックのデータを別のブロックに書き込む処理を行う。これにより、経年劣化やリードディスターブの影響を低減することが可能になるが、一方で、余分なブロックの消去・書き込みが発生してしまうため、SSD2の信頼性劣化が早まるという問題もある。
(Fifth embodiment)
The embodiment described above makes it possible for a user to easily read user data from the SSD 2 or back it up to another storage device while suppressing deterioration in the reliability of the SSD 2 and data destruction in the SSD 2. The fifth embodiment further provides a method for suppressing reliability deterioration of the SSD 2. The SSD2 may be equipped with a function that performs refresh processing in the background in order to repair data corruption due to aging or read disturb. This function performs a process of periodically reading blocks of the NAND memory 16 and writing data from a block with a large number of data errors into another block. Although this makes it possible to reduce the effects of aging and read disturb, there is also the problem that the reliability of the SSD 2 deteriorates more quickly because extra blocks are erased and written.

本実施形態では、制御ツール200あるいは緊急時OS100Bが、リフレッシュ制御コマンド(ACS-2に記述されているSCT Command Transportやその他ベンダー独自のコマンドやその他コマンド)を用いて、リフレッシュの実施を停止するようSSDC41に命令する。SSDC41はリフレッシュ制御コマンドをうけて、リフレッシュ処理を停止したり、リフレッシュの実行間隔(たとえば1分)を長く設定したりする(たとえば2分)。SSDC41にリフレッシュ実行間隔を長く設定させる場合は、リフレッシュ制御コマンド内でリフレッシュ実行間隔を明示的に指定することが望ましい。 In this embodiment, the control tool 200 or the emergency OS 100B uses a refresh control command (SCT Command Transport described in ACS-2, other vendor-specific commands, and other commands) to stop the execution of refresh. Command the SSDC 41. In response to the refresh control command, the SSDC 41 stops the refresh process or sets the refresh execution interval (eg, 1 minute) to be longer (eg, 2 minutes). If the SSDC 41 is to set a long refresh interval, it is desirable to explicitly specify the refresh interval in the refresh control command.

図49は、制御ツール200がリフレッシュ制御コマンドを発行する際の動作を示すものである。この場合、制御ツール200は、図29のステップS205に示した寿命到達時処理の際に、リフレッシュ制御コマンドを発行すればよい。制御ツール200は、図34で説明したブートローダ300の書き換えを行い(ステップS300)、この後、リフレッシュ制御コマンドをSSD2に対して送信する(ステップS301)。 FIG. 49 shows the operation when the control tool 200 issues a refresh control command. In this case, the control tool 200 may issue a refresh control command during the lifespan reaching process shown in step S205 in FIG. 29. The control tool 200 rewrites the boot loader 300 described in FIG. 34 (step S300), and then sends a refresh control command to the SSD 2 (step S301).

図50は、緊急時OS100Bがリフレッシュ制御コマンドを発行する際の動作を示すものである。この場合、CPU4は、システム起動時、図37で説明したように、SSD2のNANDメモリ16からOSポインタ情報OSPTを含むブートローダ300を読み出し(ステップS310)、OSポインタ情報OSPTが示すLBAを特定する。そして、CPU4は、特定したLBAに対する読み出し命令をSSD2へ送信することで、OSポインタ情報OSPTが指定するOSをSSD2から読み出す。OSポインタ情報OSPTが示すLBAが通常時OS100Aの記憶領域である領域16Dを指定しているときには(ステップS311:Yes)、通常時OA100Aが領域16Dから読み出されて主メモリ6上の領域6Aに書き込まれ(ステップS312)、OSポインタ情報OSPTが示すLBAが緊急時OS100Bの記憶領域である領域16Eを指定しているときには(ステップS311:No)、緊急時OA100Bが領域16Eから読み出されて主メモリ6上の領域6Aに書き込まれる(ステップS313)。緊急時OA100Bが起動された場合、緊急時OA100Bは、リフレッシュ制御コマンドをSSD2に対して送信する(ステップS314)。 FIG. 50 shows the operation when the emergency OS 100B issues a refresh control command. In this case, at the time of system startup, the CPU 4 reads the boot loader 300 including the OS pointer information OSPT from the NAND memory 16 of the SSD 2 (step S310), and specifies the LBA indicated by the OS pointer information OSPT. Then, the CPU 4 reads the OS specified by the OS pointer information OSPT from the SSD 2 by transmitting a read command for the specified LBA to the SSD 2. When the LBA indicated by the OS pointer information OSPT specifies the area 16D which is the storage area of the normal OS 100A (step S311: Yes), the normal OA 100A is read from the area 16D and stored in the area 6A on the main memory 6. is written (step S312), and when the LBA indicated by the OS pointer information OSPT specifies area 16E, which is the storage area of the emergency OS 100B (step S311: No), the emergency OA 100B is read from the area 16E and the main It is written to the area 6A on the memory 6 (step S313). When the emergency OA 100B is activated, the emergency OA 100B transmits a refresh control command to the SSD 2 (step S314).

このように、第5の実施形態では、制御ツールは、寿命到達時処理の際に、リフレッシュ処理などのSSD2でのバックグラウンドでの書き込み処理を禁止方向に制御するようにしたので、SSDの信頼性劣化を抑制することが可能となる。 In this manner, in the fifth embodiment, the control tool prohibits background write processing in the SSD 2, such as refresh processing, during the end-of-life processing, thereby increasing the reliability of the SSD. It becomes possible to suppress sexual deterioration.

(第6の実施形態)
第1の実施形態においては、制御ツール200は図29に示したように定期的に統計情報を取得して、SSD2が寿命に到達したとき、あるいはSSD2が寿命に到達する直前に寿命到達時処理を行った。制御ツール200は取得した統計情報をもとにSSD2の寿命を予測してディスプレイ9を通してユーザに通知するようにしてもよく、以下これに関して説明する。
(Sixth embodiment)
In the first embodiment, the control tool 200 periodically acquires statistical information as shown in FIG. I did it. The control tool 200 may predict the lifespan of the SSD 2 based on the acquired statistical information and notify the user through the display 9. This will be explained below.

制御ツール200は、図29に示した処理手順に従って定期的に統計情報を取得する際に、取得したデータをたとえば図51に示したような形式で、統計情報の時系列データを主メモリ6に追記していく。統計情報時系列データは、たとえばSSD2のような不揮発性記憶装置に定期的にバックアップしてもよい。また、統計情報時系列データは最新のデータが追記されるごとに古いデータを消去していってもよい。 When periodically acquiring statistical information according to the processing procedure shown in FIG. 29, the control tool 200 stores time-series data of the statistical information in the main memory 6 in the format shown in FIG. I'll add more notes. The statistical information time series data may be periodically backed up to a nonvolatile storage device such as the SSD 2, for example. Moreover, the statistical information time-series data may delete old data every time the latest data is added.

また、制御ツール200は主メモリ6の統計情報時系列データを、例えば、図52に示すような表示形式で、ディスプレイ9を介してユーザにグラフ表示してもよい。 Further, the control tool 200 may display the statistical information time series data in the main memory 6 in a graph to the user via the display 9, for example, in a display format as shown in FIG.

本実施形態では、この統計情報時系列データをもとにSSD2の寿命予測を行う。制御ツール200は、図53に示すように、あるAttribute IDのAttribute Valueを変数Yとし、時刻を変数Xとし、現在時刻からある所定の時間Tだけ前の時点の時刻Aから、現在時刻である時刻Cまでの期間の、(X,Y)の全データを用いてフィッティング関数Y=f(X)を求める。すなわち、fを用いて、XからYの予測値=f(X))が得られることになる)。fの導き方は様々な方法が存在するが、たとえばパラメータaとパラメータbを用いてf(X)=aX+bとし、時刻Aから時刻Cまでの(X,Y)の全データに対して最小二乗法を用いてaとbを求めることでfを決定してもよい。 In this embodiment, the lifetime of the SSD 2 is predicted based on this statistical information time series data. As shown in FIG. 53, the control tool 200 uses the Attribute Value of a certain Attribute ID as a variable Y, the time as a variable X, and the current time from a time A that is a certain predetermined time T before the current time. A fitting function Y=f(X) is determined using all data of (X, Y) for the period up to time C. That is, using f, the predicted value of Y from X=f(X)) can be obtained. There are various ways to derive f, but for example, use parameters a and b to set f(X)=aX+b, and calculate the minimum square for all data of (X, Y) from time A to time C. f may be determined by finding a and b using multiplication.

そして、f(X)の逆関数であるf-1(Y)を求める。f(X)=aX+bの場合はf-1(Y)=(Y・b)/aをもとめる。SSD2の予測寿命到達時刻はf-1(Y=Threshold)となる。なお、時刻Aから時刻Cまでの(X,Y)の全データに対して、フィッティング関数X=g(Y)を求めて、SSD2の予測寿命到達時刻をg(Y=Threshold)としてもよい。また、f(X)やg(Y)は、2次関数など1次関数以外の関数にフィッティングしてもよい。 Then, f −1 (Y), which is an inverse function of f(X), is found. If f(X)=aX+b, find f −1 (Y)=(Y・b)/a. The estimated time when the SSD 2 reaches the end of its life is f −1 (Y=Threshold). Note that a fitting function X=g(Y) may be determined for all data of (X, Y) from time A to time C, and the estimated time when the SSD 2 reaches its lifespan may be set as g(Y=Threshold). Furthermore, f(X) and g(Y) may be fitted to a function other than a linear function, such as a quadratic function.

本実施形態では、S.M.A.R.TのAttribute Value(=Y)とThresholdを用いて寿命を予測したが、生データであるRaw ValueをYとして用いてf(X)やg(Y)を求め、予想寿命到達時刻をf-1(Y=RMAX)またはg(Y=RMAX)、あるいはf-1(Y=RMIN)またはg(Y=RMIN)としてもよい。また、SMART情報以外の手段を用いて得られた統計情報により寿命予測してもよい。 In this embodiment, the lifespan is predicted using SMART's Attribute Value (=Y) and Threshold, but the raw data Raw Value is used as Y to calculate f(X) and g(Y), and the expected lifespan is reached. The time may be set to f −1 (Y=RMAX) or g (Y=RMAX), or f −1 (Y=RMIN) or g (Y=RMIN). Furthermore, lifespan may be predicted using statistical information obtained using means other than SMART information.

制御ツール200は、このようにして得られた予測寿命到達時刻をディスプレイ9を通してユーザに通知する。通知方法としては、たとえば「予測寿命到達時刻:1999年09月09日」というふうにテキスト表示してもよいし、図54に示すように、「SSDの寿命が残り30日を切っています。早急にSSDのデータをバックアップし、新しいSSDに買い替えてください。」のような警告画面を表示してもよい。あるいは、SSDの残り寿命が所定日数をきると、制御ツール200のアイコンの色を変えたりするなどして、ディスプレイ上に表示されるアイコンの色を変えてもよい。 The control tool 200 notifies the user of the estimated lifetime arrival time obtained in this way through the display 9. As a notification method, for example, it may be displayed in text such as "Estimated lifespan reached: September 9, 1999", or as shown in Figure 54, "The lifespan of the SSD is less than 30 days remaining. A warning screen such as "Please immediately back up the data on the SSD and replace it with a new SSD" may be displayed. Alternatively, when the remaining life of the SSD reaches a predetermined number of days, the color of the icon displayed on the display may be changed, such as by changing the color of the icon of the control tool 200.

(第7の実施形態)
第1の実施形態においては、図38に示したように、通常時OS100Aおよび緊急時OS100BがSSD2のNANDメモリ16に格納されている場合に、SSD2のデータをバックアップ用記憶装置150にバックアップする機能について説明した。制御ツール200は寿命到達時処理(図29のステップS205)として、ブートローダ300を書き換え、(図34のステップS230)、バックアップ機能として、例えば前述したLBA単位バックアップを採用する場合、SSD2をその後ホスト装置3から切り離して、バックアップ用記憶装置150をホスト装置3に接続した状態で、コンピュータシステム1をパワーONした場合に通常時OS100Aが正常に起動されるようにするためには、バックアップ用記憶装置150にバックアップ処理によってコピーされたブートローダを、寿命到達時処理以前のSSD2のブートローダ300の状態に復元することが望ましい。本実施形態では、バックアップ用記憶装置150のブートローダをバックアップ動作時に書き換える方法について説明する。
(Seventh embodiment)
In the first embodiment, as shown in FIG. 38, when the normal OS 100A and the emergency OS 100B are stored in the NAND memory 16 of the SSD 2, the function backs up the data of the SSD 2 to the backup storage device 150. explained. The control tool 200 rewrites the boot loader 300 (step S230 in FIG. 34) as a lifespan reaching process (step S205 in FIG. 29), and as a backup function, for example, when adopting the above-mentioned LBA unit backup, the SSD 2 is then transferred to the host device. In order to normally start the OS 100A when the computer system 1 is powered on with the backup storage device 150 connected to the host device 3 and the backup storage device 150 It is desirable to restore the boot loader copied by the backup process to the state of the boot loader 300 of the SSD 2 before the end-of-life process. In this embodiment, a method of rewriting the boot loader of the backup storage device 150 during backup operation will be described.

図55に、バックアップ動作前後におけるコンピュータシステム1とバックアップ用記憶装置150の機能構成を示す。SSD2のNANDメモリ16の復元用ブートローダ領域16Vには、ブートローダ300を制御ツール200による書き換え前の状態に戻すためのブートローダ復元情報350が記憶されている。領域16Vは、寿命到達時処理時に制御ツール200によって割り当てられてもよいし、制御ツール200の起動時に割り当てられてもよいし、制御ツール200がSSD2にインストールされるときに割り当てられてもよい。割り当てられた領域16Vには、SSD2の管理情報45(図18参照)によりLBAが割り当てられている。 FIG. 55 shows the functional configuration of the computer system 1 and the backup storage device 150 before and after the backup operation. In the restoration bootloader area 16V of the NAND memory 16 of the SSD 2, bootloader restoration information 350 for returning the bootloader 300 to the state before being rewritten by the control tool 200 is stored. The area 16V may be allocated by the control tool 200 during end-of-life processing, may be allocated when the control tool 200 is started, or may be allocated when the control tool 200 is installed in the SSD 2. The allocated area 16V has an LBA allocated to it according to the management information 45 of the SSD 2 (see FIG. 18).

図56に、本実施形態における寿命到達時処理の動作手順を示す。寿命到達時処理においては、バックアップ用記憶装置150はホスト装置3に接続されていなくてもよい。制御ツール200は、寿命到達時処理の際に、すなわちブートローダ300の書き換え前に、ブートローダ300のバックアップ情報、すなわちブートローダ復元情報350を復元用ブートローダ領域16Vに書き込む(ステップS320)。領域16Vに書き込む情報としては、たとえば領域16Cに記憶されているブートローダ300のデータ(イメージ)をそのままコピーしてもよいし、ブートローダの書き換え差分情報を記録してもよい。 FIG. 56 shows the operational procedure of the process when the life span is reached in this embodiment. In the end-of-life process, the backup storage device 150 does not need to be connected to the host device 3. The control tool 200 writes the backup information of the boot loader 300, that is, the boot loader restoration information 350, to the restoration boot loader area 16V during the end-of-life processing, that is, before rewriting the boot loader 300 (step S320). As the information to be written in the area 16V, for example, the data (image) of the boot loader 300 stored in the area 16C may be copied as is, or boot loader rewriting difference information may be recorded.

領域16Vに差分情報を記録する場合は、差分情報としてたとえば図57に示すような、書き換え前のデータと書き換わったLBAとの対応関係が記録されている書き換え差分ログを採用してもよい。書き換え差分ログを採用する場合、制御ツール200は、領域16Cに記憶されているブートローダ300のうち書き換えをおこなったLBAを書き換え差分ログの「書き換わったLBA」に書き込み、同LBAの書き換え前のデータを書き換え差分ログの「書き換え前のデータ」に書き込む。たとえば、LBAの最小単位である論理セクタが512バイトである場合は、書き換え差分ログの「書き換え前のデータ」の1要素は512バイトのデータであってもよいし、書き換え前のデータを圧縮したり、あるいは可逆変換した512バイト以外のデータであってもよい。書き換え差分ログを用いてブートローダ300を新ブートローダから旧ブートローダに復元する場合は、領域16Cに対し、書き換え差分ログの「書き換わったLBA」が示すLBAに対し、「書き換え前のデータ」を書き込むことで、旧ブートローダに復元することができる。 When recording the difference information in the area 16V, a rewrite difference log in which the correspondence between the data before rewriting and the rewritten LBA is recorded, as shown in FIG. 57, for example, may be used as the difference information. When adopting the rewrite differential log, the control tool 200 writes the rewritten LBA of the bootloader 300 stored in the area 16C to the “rewritten LBA” of the rewrite differential log, and stores the data of the same LBA before rewriting. is written to the "data before rewriting" in the rewriting differential log. For example, if the logical sector, which is the minimum unit of LBA, is 512 bytes, one element of "data before rewriting" in the rewriting differential log may be 512 bytes of data, or the data before rewriting may be compressed. Alternatively, the data may be reversibly converted data other than 512 bytes. When restoring the bootloader 300 from the new bootloader to the old bootloader using the rewrite difference log, write "pre-rewrite data" to the LBA indicated by "rewritten LBA" in the rewrite difference log in area 16C. You can restore to the old bootloader.

その後、制御ツール200は、ブートローダ300を書き換え、第1の実施形態で説明したのと同様に、次回以降コンピュータシステム1が起動されたときには、通常時OS100Aではなく緊急時OS100Bが主メモリ6に読み出されるようにする(ステップS321)。 Thereafter, the control tool 200 rewrites the boot loader 300, and the next time the computer system 1 is started, the emergency OS 100B is read into the main memory 6 instead of the normal OS 100A, as described in the first embodiment. (step S321).

後述するバックアップ動作時に、復元用ブートローダ領域16Vの検索を容易にするために、制御ツール200は、ブートローダ領域16Cに、復元用ブートローダ領域16Vの先頭LBAを書き込んでおくことが望ましい(ステップS322)。ブートローダ領域16Cに復元用ブートローダ領域16Vの先頭LBAを書き込んでおくことは必ずしも必要ではなく、領域16Vの先頭に特定データパターンを書き込んでおき、後述するバックアップ時にこの特定データパターンを検索することで領域16Vを特定してもよいし、領域16Vをあらかじめ定められた特定LBAに固定的に対応付けすることにしておいて、後述するバックアップ時に前記特定LBAにアクセスすることで領域16Vを特定してもよいし、その他方法で領域16Vを特定してもよい。 In order to facilitate the search for the restoration bootloader area 16V during a backup operation to be described later, the control tool 200 preferably writes the first LBA of the restoration bootloader area 16V in the bootloader area 16C (step S322). It is not necessarily necessary to write the first LBA of the restoration boot loader area 16V in the boot loader area 16C, but it is possible to write a specific data pattern at the beginning of the area 16V and search for this specific data pattern at the time of backup, which will be described later. 16V may be specified, or the area 16V may be fixedly associated with a predetermined specific LBA, and the area 16V may be specified by accessing the specific LBA during backup, which will be described later. Alternatively, the region 16V may be specified using other methods.

ステップS321以降、第1の実施形態と同様に、コンピュータシステム1の再起動を行ってもよいし、第5の実施形態と同様にSSD2のリフレッシュ制御コマンドを送信してもよい。また、復元用ブートローダ領域16VはSSD2以外の記憶装置に確保してもよい。 After step S321, the computer system 1 may be restarted as in the first embodiment, or a refresh control command for the SSD 2 may be sent as in the fifth embodiment. Further, the restoration boot loader area 16V may be secured in a storage device other than the SSD 2.

図58は、緊急時OS100Bによるバックアップ動作を示すものである。バックアップ時、バックアップ用記憶装置150がホスト装置3に接続されていない場合は、ユーザはバックアップ用記憶装置150をホスト装置3に接続する。その際、制御ツール200は、ユーザに「バックアップ装置を接続してください」というメッセージをディスプレイ9に表示してもよい。 FIG. 58 shows a backup operation by the emergency OS 100B. At the time of backup, if the backup storage device 150 is not connected to the host device 3, the user connects the backup storage device 150 to the host device 3. At this time, the control tool 200 may display a message on the display 9 to the user asking "Please connect the backup device."

NANDメモリ16の領域16Eから主メモリ6の領域6Aにロードされた緊急時OSは、第1の実施形態と同様にして、SSD2のデータをバックアップ用記憶装置150にコピーする(ステップS330)。たとえば、バックアップ方法として、LBA単位バックアップを採用してかつSSD2の全LBA領域をバックアップ用記憶装置150にコピーする場合、領域16Dに記憶されている通常時OS100Aは、バックアップ用記憶装置150の領域150Dにコピーされ、領域16Uに記憶されているその他ユーザデータは、領域150Uにコピーされる。ブートローダ領域16Cに記憶されているブートローダ300は、バックアップ用記憶装置150の領域100Cにコピーしてもよいし、コピーしなくてもよい。領域16Eに記憶されている緊急時OS100Bは、バックアップ用記憶装置150の領域150Eにコピーしてもよいし、コピーしなくてもよい。また、復元用ブートローダ領域16Vに記憶されているブートローダ復元情報350は、バックアップ用記憶装置150にコピーしなくてもよい。 The emergency OS loaded from the area 16E of the NAND memory 16 to the area 6A of the main memory 6 copies the data of the SSD 2 to the backup storage device 150 in the same manner as in the first embodiment (step S330). For example, when LBA unit backup is adopted as the backup method and all LBA areas of the SSD 2 are copied to the backup storage device 150, the normal OS 100A stored in the area 16D is stored in the area 150D of the backup storage device 150. Other user data that has been copied to area 16U and is stored in area 16U is copied to area 150U. The boot loader 300 stored in the boot loader area 16C may or may not be copied to the area 100C of the backup storage device 150. The emergency OS 100B stored in the area 16E may or may not be copied to the area 150E of the backup storage device 150. Further, the boot loader restoration information 350 stored in the restoration boot loader area 16V does not need to be copied to the backup storage device 150.

緊急時OS100Bは、ブートローダ復元情報350とブートローダ300のデータをもとに、バックアップ用記憶装置150に記憶するブートローダ320を作成し、作成したブートローダ320をバックアップ用記憶装置150の領域150Cに書き込むことで、次回以降にコンピュータシステム1の起動時にブートローダ320がロードされた場合は、通常時OS100Aが主メモリ6の領域6Aにロードされるようにする(ステップS331)。 The emergency OS 100B creates a bootloader 320 to be stored in the backup storage device 150 based on the bootloader restoration information 350 and the data of the bootloader 300, and writes the created bootloader 320 to the area 150C of the backup storage device 150. If the boot loader 320 is loaded at the next startup of the computer system 1, the normal OS 100A is loaded into the area 6A of the main memory 6 (step S331).

図56のステップS320でのブートローダのバックアップ処理において、領域16Cに記憶されているブートローダ300のデータ(イメージ)を、そのまま復元用ブートローダ領域16Vにコピーした場合は、図58のステップS331において、復元用ブートローダ領域16Vのブートローダ復元情報350をそのままバックアップ用記憶装置150の領域150Cにコピーしてもよい。 In the boot loader backup process in step S320 in FIG. 56, if the data (image) of the boot loader 300 stored in the area 16C is copied as is to the restoration boot loader area 16V, in step S331 in FIG. The boot loader restoration information 350 of the boot loader area 16V may be copied as is to the area 150C of the backup storage device 150.

また、図56のステップS320でのブートローダのバックアップ処理において、復元用ブートローダ領域16Vにブートローダ領域16Cの書き換え差分情報が記録された場合は、すなわちブートローダ領域16Cが旧ブートローダデータから新ブートローダデータに書き換えられる時の新・旧ブートローダデータ書き換えの差分情報が復元用ブートローダ領域16Vに記録された場合は、緊急時OS100Bは、図58のステップS331において、ブートローダ領域16Cのデータ(新ブートローダデータ)と、復元用ブートローダ領域16Vに記憶されている差分データであるブートローダ復元情報350を主メモリ6に読み出し、ブートローダ復元情報350をもとに新ブートローダデータを旧ブートローダデータに復元し、復元した旧ブートローダデータをバックアップ用記憶装置150の領域150Cに書き込む。 In addition, in the bootloader backup process in step S320 of FIG. 56, if the rewriting difference information of the bootloader area 16C is recorded in the restoration bootloader area 16V, that is, the bootloader area 16C is rewritten from the old bootloader data to the new bootloader data. If the difference information for rewriting the new and old bootloader data at the time is recorded in the restoration bootloader area 16V, the emergency OS 100B, in step S331 of FIG. The bootloader restoration information 350, which is the differential data stored in the bootloader area 16V, is read into the main memory 6, the new bootloader data is restored to the old bootloader data based on the bootloader restoration information 350, and the restored old bootloader data is used for backup. Write to area 150C of storage device 150.

上記のバックアップ処理を行った後、IF0からSSD2を取り外すことで寿命に到達したSSD2をホスト装置3から切り離し、かつIF1にバックアップ用記憶装置150を接続することでバックアップ用記憶装置150をホスト装置3に接続した状態で、コンピュータシステム1を起動すると、ホスト装置3はバックアップ用記憶装置150のブートローダ320を読み出し、ブートローダ320の情報によりホスト装置3は、バックアップ用記憶装置150の領域150Dを主メモリ6の領域6Aにロードすることで、通常時OSが起動される。バックアップ用記憶装置150がインタフェースIF0に対応している場合は、バックアップ用記憶装置150をSSD2と交換し、バックアップ用記憶装置150をインタフェースIF0と接続してもよい。バックアップ用記憶装置150がインタフェースIF0に対応してない場合は、バックアップ用記憶装置150をSSD2と交換し、バックアップ用記憶装置150をインタフェース変換装置を経由してインタフェースIF0と接続してもよい。 After performing the above backup process, disconnect the SSD 2 that has reached the end of its lifespan from the host device 3 by removing the SSD 2 from IF0, and connect the backup storage device 150 to IF1 to transfer the backup storage device 150 to the host device 3. When the computer system 1 is started while connected to the computer, the host device 3 reads the boot loader 320 of the backup storage device 150, and based on the information in the boot loader 320, the host device 3 stores the area 150D of the backup storage device 150 in the main memory 6. The normal OS is started by loading it into the area 6A. If the backup storage device 150 is compatible with the interface IF0, the backup storage device 150 may be replaced with the SSD 2 and the backup storage device 150 may be connected to the interface IF0. If the backup storage device 150 is not compatible with the interface IF0, the backup storage device 150 may be replaced with the SSD 2, and the backup storage device 150 may be connected to the interface IF0 via an interface conversion device.

このようにして、SSD2が寿命に到達した場合であっても、コンピュータシステム1はSSD2に保存されたユーザデータや通常時OSをバックアップ用記憶装置に復元することができ、ユーザは、余分な設定や通常時OSの再インストールを行うことなく、SSD2をバックアップ用記憶装置150に置き換え、SSD2のかわりにバックアップ用記憶装置150をシステムドライブとして使用することができる。 In this way, even if the SSD 2 reaches the end of its lifespan, the computer system 1 can restore the user data and normal OS stored on the SSD 2 to the backup storage device, and the user can It is possible to replace the SSD 2 with the backup storage device 150 and use the backup storage device 150 as a system drive instead of the SSD 2 without reinstalling the OS during normal operation.

(第8の実施形態)
本実施形態では、SSD2が異常状態(寿命到達状態)から通常状態(健康状態)に戻ったときに、SSD2を接続したホスト装置を起動した場合、緊急時OSではなく通常時OSが起動されるようにする。
(Eighth embodiment)
In this embodiment, when the host device to which the SSD 2 is connected is started when the SSD 2 returns from an abnormal state (end of life state) to a normal state (healthy state), the normal OS is started instead of the emergency OS. Do it like this.

統計情報として、例えば、現在温度X20、最高温度X21のように、その数値が大きいほど信頼性が悪くなることを示し、信頼性に悪影響のある数値まで増大してもその後再び正常な値にまで回復することのできる特性を有するパラメータを採用する場合、それらの統計情報に対しては、RMAXとして例えばRMAX=85℃を採用し、
統計情報の値>RMAX
または
統計情報の値≧RMAX
のような動作保証外の温度になる条件が成立した時、制御ツール200はブートローダ300を書き換えることで、次回以降コンピュータシステム1が起動されたときには、通常時OS100Aではなく緊急時OS100Bが主メモリ6に読み出されるようにする。
As statistical information, for example, current temperature x20 and maximum temperature x21, the larger the value, the worse the reliability.Even if the value increases to a value that has a negative impact on reliability, it will return to normal again after that. When adopting parameters having characteristics that can be recovered, for example, RMAX = 85 ° C. is adopted as RMAX for those statistical information,
Statistical information value > RMAX
or Statistical information value≧RMAX
When a condition such as temperature outside guaranteed operation is established, the control tool 200 rewrites the boot loader 300 so that the next time the computer system 1 is started, the emergency OS 100B is used in the main memory 6 instead of the normal OS 100A. so that it is read out.

緊急時OS100Bは、起動後、統計情報の値を監視し、
統計情報の値≦RMAX-MAXマージン
または
統計情報の値<RMAX-MAXマージン
となって当該統計情報が再び正常値にもどったとき、ブートローダ300を書き換えることで、次回以降コンピュータシステム1が起動されたときには、緊急時OS100Bではなく通常時OS100Aが主メモリ6に読み出されるようにする、ブートローダ復元処理を実行する。
After startup, the emergency OS 100B monitors the values of statistical information,
When the statistical information value ≦ RMAX - MAX margin or the statistical information value < RMAX - MAX margin and the statistical information returns to its normal value, the computer system 1 can be booted from the next time by rewriting the boot loader 300. Sometimes, bootloader restoration processing is executed so that the normal OS 100A is read into the main memory 6 instead of the emergency OS 100B.

MAXマージンはゼロ以上の値であるが、ブートローダ300の書き換えが頻繁に発生することを防止するために、MAXマージンはゼロより大きい値とすることが望ましい。統計情報が現在温度や最高温度である場合、たとえばMAXマージン=5℃とする。統計情報の取得および条件判断に、SMART情報を用いる場合、Attribute ValueとThresholdを用いてもよいし、Raw ValueとRMAXを用いてもよい。また、通常時OS起動中に統計情報が異常状態から正常状態に戻った場合は、上記ブートローダ復元処理を制御ツール200が行うようにしてもよい。 The MAX margin is a value greater than or equal to zero, but in order to prevent frequent rewriting of the boot loader 300, the MAX margin is desirably a value greater than zero. If the statistical information is the current temperature or the maximum temperature, for example, MAX margin = 5°C. When using SMART information to obtain statistical information and determine conditions, Attribute Value and Threshold may be used, or Raw Value and RMAX may be used. Furthermore, if the statistical information returns from an abnormal state to a normal state during normal OS startup, the control tool 200 may perform the boot loader restoration process.

統計情報として、現在温度X20、最低温度X22のように、その数値が小さいほど信頼性が悪くなることを示し、信頼性に悪影響のある数値まで減少してもその後再び正常な値にまで回復することのできる特性を有するパラメータを採用する場合、RMINとしてRMIN=-10℃を採用し、
統計情報の値<RMIN
または
統計情報の値≦RMIN
のようなたとえば動作保証外の温度になる条件が成立した時、制御ツール200はブートローダ300を書き換えることで、次回以降コンピュータシステム1が起動されたときには、通常時OS100Aではなく緊急時OS100Bが主メモリに読み出されるようにする。
As statistical information, such as current temperature x20 and minimum temperature x22, the smaller the value, the worse the reliability is, and even if the value decreases to a value that has a negative impact on reliability, it will recover to the normal value after that. When adopting parameters with characteristics that allow for
Statistical information value < RMIN
Or statistical information value ≦ RMIN
For example, when a condition occurs where the temperature is outside guaranteed operation, the control tool 200 rewrites the bootloader 300 so that the next time the computer system 1 is started, the emergency OS 100B is used as the main memory instead of the normal OS 100A. so that it is read out.

緊急時OS100Bは、起動後、統計情報の値を監視し、
統計情報の値≧RMIN+MINマージン
または
統計情報の値>RMIN+MINマージン
となって当該統計情報が再び正常値にもどったとき、ブートローダ300を書き換えることで、次回以降コンピュータシステム1が起動されたときには、緊急時OS100Bではなく通常時OS100Aが主メモリ6に読み出されるようにする、ブートローダ復元処理を実行する。
After startup, the emergency OS 100B monitors the values of statistical information,
When the value of statistical information ≧ RMIN + MIN margin or the value of statistical information > RMIN + MIN margin and the statistical information returns to its normal value, by rewriting the boot loader 300, the next time the computer system 1 is started up, the emergency Bootloader restoration processing is executed so that the normal OS 100A is read into the main memory 6 instead of the OS 100B.

MINマージンはゼロ以上の値であるが、ブートローダ300の書き換えが頻繁に発生することを防止するために、MINマージンはゼロより大きい値とすることが望ましい。当該統計情報が現在温度や最低温度である場合、たとえば、MINマージン=5℃とする。統計情報の取得および条件判断に、SMART情報を用いる場合、Attribute ValueとThresholdを用いてもよいし、Raw ValueとRMINを用いてもよい。 The MIN margin is a value greater than or equal to zero, but in order to prevent frequent rewriting of the boot loader 300, it is desirable that the MIN margin be a value greater than zero. If the statistical information is the current temperature or the lowest temperature, for example, MIN margin=5°C. When using SMART information to obtain statistical information and determine conditions, Attribute Value and Threshold may be used, or Raw Value and RMIN may be used.

つぎに、寿命到達時処理における制御ツール200の動作の詳細を説明する。異常状態(寿命到達状態)から通常状態(健康状態)に戻ったときには、上記したブートローダ復元処理により、ブートローダ300は寿命到達時処理で書き換えられる以前のブートローダに復旧されることが望ましい。図59にブートローダ復元処理前後におけるコンピュータシステム1の機能構成を示す。SSD2のNANDメモリ16の復元用ブートローダ領域16Vには、ブートローダ300を制御ツール200による書き換え前の状態に戻すためのブートローダ復元情報350が記憶されている。領域16Vは、寿命到達時処理時に制御ツール200によって割り当てられてもよいし、制御ツール200の起動時に割り当てられてもよいし、制御ツール200がSSD2にインストールされるときに割り当てられてもよい。割り当てられた領域16Vには、SSD2の管理情報45(図18参照)によりLBAが割り当てられている。また、本実施形態の領域16Vは、図55に示した領域16Vと同じものとしてバックアップ時のブートローダ復元用として使用してもよいし、図55に示した領域16Vとは異なるものであってもよい。 Next, details of the operation of the control tool 200 in the end-of-life processing will be described. When returning from an abnormal state (end-of-life state) to a normal state (healthy state), it is desirable that the boot loader 300 be restored to the boot loader before being rewritten in the end-of-life process by the boot loader restoration process described above. FIG. 59 shows the functional configuration of the computer system 1 before and after the boot loader restoration process. In the restoration bootloader area 16V of the NAND memory 16 of the SSD 2, bootloader restoration information 350 for returning the bootloader 300 to the state before being rewritten by the control tool 200 is stored. The area 16V may be allocated by the control tool 200 during end-of-life processing, may be allocated when the control tool 200 is activated, or may be allocated when the control tool 200 is installed in the SSD 2. The allocated area 16V has an LBA allocated to it according to the management information 45 of the SSD 2 (see FIG. 18). Furthermore, the area 16V of this embodiment may be the same as the area 16V shown in FIG. 55 and used for restoring the boot loader during backup, or it may be different from the area 16V shown in FIG. good.

寿命到達時処理の手順は、図56に示したものと同様である。すなわち、制御ツール200は、寿命到達時処理の際に、ブートローダ300のバックアップ情報、すなわちブートローダ復元情報350を復元用ブートローダ領域16Vに書き込む(ステップS320)。領域16Vに書き込む情報としては、たとえば領域16Cに記憶されているブートローダ300のデータ(イメージ)をそのままコピーしてもよいし、ブートローダの書き換え差分情報を記録してもよい。その後、制御ツール200は、ブートローダ300を書き換え、次回以降コンピュータシステム1が起動されたときには、通常時OS100Aではなく緊急時OS100Bが主メモリ6に読み出されるようにする(ステップS321)。 The procedure for processing when the lifespan is reached is the same as that shown in FIG. 56. That is, the control tool 200 writes the backup information of the boot loader 300, that is, the boot loader restoration information 350, to the restoration boot loader area 16V during the end-of-life processing (step S320). As the information to be written in the area 16V, for example, the data (image) of the boot loader 300 stored in the area 16C may be copied as is, or boot loader rewriting difference information may be recorded. After that, the control tool 200 rewrites the boot loader 300 so that the next time the computer system 1 is started up, the emergency OS 100B is read into the main memory 6 instead of the normal OS 100A (step S321).

さらに、後述するバックアップ動作時に、復元用ブートローダ領域16Vの検索を容易にするために、制御ツール200は、ブートローダ領域16Cに、復元用ブートローダ領域16Vの先頭LBAを書き込んでおくことが望ましい(ステップS322)。ブートローダ領域16Cに復元用ブートローダ領域16Vの先頭LBAを書き込んでおくことは必ずしも必要ではなく、領域16Vの先頭に特定データパターンを書き込んでおき、後述するバックアップ時にこの特定データパターンを検索することで領域16Vを特定してもよいし、領域16Vをあらかじめ定められた特定LBAに固定的に対応付けすることにしておいて、後述するバックアップ時に前記特定LBAにアクセスすることで領域16Vを特定してもよいし、その他方法で領域16Vを特定してもよい。 Furthermore, in order to facilitate the search for the restoration bootloader area 16V during a backup operation to be described later, it is desirable that the control tool 200 write the first LBA of the restoration bootloader area 16V in the bootloader area 16C (step S322). ). It is not necessarily necessary to write the first LBA of the restoration boot loader area 16V in the boot loader area 16C, but it is possible to write a specific data pattern at the beginning of the area 16V and search for this specific data pattern at the time of backup, which will be described later. 16V may be specified, or the area 16V may be fixedly associated with a predetermined specific LBA, and the area 16V may be specified by accessing the specific LBA during backup, which will be described later. Alternatively, the region 16V may be specified using other methods.

ステップS321以降、第1の実施形態と同様に、コンピュータシステム1の再起動を行ってもよいし、第5の実施形態と同様にSSD2のリフレッシュ制御コマンドを送信してもよい。また、復元用ブートローダ領域16VはSSD2以外の記憶装置に確保してもよい。 After step S321, the computer system 1 may be restarted as in the first embodiment, or a refresh control command for the SSD 2 may be sent as in the fifth embodiment. Further, the restoration boot loader area 16V may be secured in a storage device other than the SSD 2.

図60は、緊急時OS100Bによるブートローダ復元処理を示すものである。寿命到達処理後(異常時処理後)、コンピュータシステム1が緊急時OSを用いて起動している時、緊急時OS100Bは、たとえば前述のSMART READ DATAなどを用いて統計情報を監視し、統計情報が正常値に戻ったかどうかを判定する(ステップS340)。上述した判断基準に基づき、統計情報が正常値に戻ったとき(ステップS340:Yes)、緊急時OS100Bは、復元用ブートローダ領域16Vに記憶されたブートローダ復元情報350とブートローダ領域16Cに記憶されたブートローダ300のデータをもとに、通常時OS100Aが主メモリ6の領域6Aにロードされるように処理するブートローダを作成し、作成したブートローダをブートローダ領域16Cに書き込む(ステップS341)。これにより、次回以降コンピュータシステム1の起動時にブートローダ300がロードされた場合は通常時OS100Aが主メモリ6の領域6Aにロードされる。 FIG. 60 shows boot loader restoration processing by the emergency OS 100B. After the end-of-life processing (after abnormality processing), when the computer system 1 is booting using the emergency OS, the emergency OS 100B monitors statistical information using, for example, the above-mentioned SMART READ DATA, and displays the statistical information. It is determined whether the value has returned to a normal value (step S340). When the statistical information returns to the normal value based on the above-mentioned criteria (step S340: Yes), the emergency OS 100B restores the boot loader restoration information 350 stored in the restoration boot loader area 16V and the boot loader stored in the boot loader area 16C. Based on the data of 300, a boot loader that normally processes the OS 100A to be loaded into the area 6A of the main memory 6 is created, and the created boot loader is written into the boot loader area 16C (step S341). As a result, when the boot loader 300 is loaded the next time the computer system 1 is started, the normal OS 100A is loaded into the area 6A of the main memory 6.

図56のステップS320でのブートローダのバックアップ処理において、領域16Cに記憶されているブートローダ300のデータ(イメージ)を、そのまま復元用ブートローダ領域16Vにコピーした場合は、図60のステップS341において、復元用ブートローダ領域16Vのブートローダ復元情報350をそのままバックアップ用記憶装置150の領域150Cにコピーしてもよい。 In the boot loader backup process in step S320 in FIG. 56, if the data (image) of the boot loader 300 stored in the area 16C is copied as is to the recovery boot loader area 16V, in step S341 in FIG. The boot loader restoration information 350 of the boot loader area 16V may be copied as is to the area 150C of the backup storage device 150.

また、図56のステップS320でのブートローダのバックアップ処理において、復元用ブートローダ領域16Vにブートローダ領域16Cの書き換え差分情報が記録された場合は、すなわちブートローダ領域16Cが旧ブートローダデータから新ブートローダデータに書き換えられる時の新・旧ブートローダデータ書き換えの差分情報が復元用ブートローダ領域16Vに記録された場合は、緊急時OS100Bは、図60のステップS341において、ブートローダ領域16Cのデータ(新ブートローダデータ)と、復元用ブートローダ領域16Vに記憶されている差分データであるブートローダ復元情報350を主メモリ6に読み出し、ブートローダ復元情報350をもとに新ブートローダデータを旧ブートローダデータに復元し、復元した旧ブートローダデータをバックアップ用記憶装置150の領域150Cに書き込む。 In addition, in the bootloader backup process in step S320 of FIG. 56, if the rewriting difference information of the bootloader area 16C is recorded in the restoration bootloader area 16V, that is, the bootloader area 16C is rewritten from the old bootloader data to the new bootloader data. If the difference information for rewriting the new and old bootloader data is recorded in the restoration bootloader area 16V, the emergency OS 100B, in step S341 of FIG. The bootloader restoration information 350, which is the differential data stored in the bootloader area 16V, is read into the main memory 6, the new bootloader data is restored to the old bootloader data based on the bootloader restoration information 350, and the restored old bootloader data is used for backup. Write to area 150C of storage device 150.

このように、本実施形態では、図61に示すように、統計情報が正常状態から異常状態になったときには、異常時OSが起動されるよう動作する異常時到達処理を実行し、統計情報が異常状態から正常状態に戻ったときは、通常時OSが起動されるよう動作するブートローダ復元処理を実行する。 In this way, in this embodiment, as shown in FIG. 61, when the statistical information changes from a normal state to an abnormal state, an abnormality arrival process is executed to start the abnormality OS, and the statistical information is changed from a normal state to an abnormal state. When the abnormal state returns to the normal state, a boot loader restoration process is executed so that the normal OS is started.

このようにして、SSD2が一時的に異常状態になった場合であっても、SSD2が正常状態(健康状態)に戻った後には、コンピュータシステム1は通常時OSを起動するようになり、ユーザは、余分な設定や通常時OSの再インストールを行うことなく、SSD2を寿命到達時処理前と同等にSSD2を扱うことができる。 In this way, even if the SSD 2 is temporarily in an abnormal state, after the SSD 2 returns to a normal state (healthy state), the computer system 1 will start the OS during normal operation, and the user can handle the SSD 2 in the same way as before the end-of-life processing without performing extra settings or reinstalling the OS during normal operation.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, substitutions, and changes can be made without departing from the gist of the invention. These embodiments and their modifications are included within the scope and gist of the invention, as well as within the scope of the invention described in the claims and its equivalents.

1 コンピュータシステム、3 ホスト装置、6 主メモリ、16 NANDメモリ、20 不揮発性記憶装置、100A 通常時OS、100B 緊急時OS、200 制御ツール、210 緊急時ツール、300 ブートローダ、350 ブートローダ復元情報。 1 computer system, 3 host device, 6 main memory, 16 NAND memory, 20 non-volatile storage device, 100A normal OS, 100B emergency OS, 200 control tool, 210 emergency tool, 300 boot loader, 350 boot loader restoration information.

Claims (6)

データを記憶するためのメモリセルを備え複数個の前記メモリセルを第1の単位として前記メモリセルに記録されたデータを電気的に消去可能な不揮発性半導体メモリと、揮発性半導体メモリと、前記不揮発性半導体メモリと前記揮発性半導体メモリを制御するためのコントローラ回路と、インタフェース回路と、
を備える半導体記憶装置と、
前記半導体記憶装置と接続可能であり、前記半導体記憶装置へ書き込み及び読み出し命令を送信するように構成されるホスト装置と、
を備える情報処理装置であって、
前記不揮発性半導体メモリ及び前記揮発性半導体メモリの少なくとも一つは、前記インタフェース回路を介して前記ホスト装置から受信された論理アドレス情報に対応する前記不揮発性半導体メモリの物理アドレスを指定する第1情報を記録可能に構成され、
前記コントローラ回路は、前記インタフェース回路を介して前記ホスト装置から書き込み命令を受信した際は、前記ホスト装置から受信したデータを用いて訂正符号を生成し、
前記不揮発性半導体メモリに、前記データならびに前記訂正符号を記録し、かつ、前記インタフェース回路を介して前記ホスト装置から読み出し命令を受信した際は、前記第1情報を用いて前記不揮発性半導体メモリから読み込んだデータならびに対応する前記訂正符号に基づいて、前記読み出したデータを訂正可能に構成され、
前記不揮発性半導体メモリは、
前記半導体記憶装置の使用時間総計に基づく第2情報と、
前記ホスト装置から受信した書き込み命令に応じて受信した書き込みデータの総量に基づく第3情報と、
前記ホスト装置から受信した読み込み命令に応じて前記不揮発性半導体メモリから読み出したデータの総量に基づく第4情報と、
前記コントローラ回路が、前記不揮発性半導体メモリから読み込んだデータを、対応する前記訂正符号を用いても、訂正することが出来なかったデータの個数に関する第5情報と、
前記不揮発性半導体メモリのうち、データを書き込むことが出来ないと判断されたメモリセルの個数に応じた情報を前記第1の単位で示した第6情報と、
を記憶するように構成され、
第1のソフトウェア及び前記半導体記憶装置に対する書き込みコマンドを送信することを禁止する第2のソフトウェアが保存されており、
前記ホスト装置は、
前記半導体記憶装置から前記第1のソフトウェアを読み出して実行し、
前記半導体記憶装置から前記第2情報乃至前記第6情報を含む複数の情報を取得し、前記取得した複数の情報の少なくとも1つに基づいて前記半導体記憶装置の残り寿命を計算し、
前記計算された残り寿命に基づいて前記半導体記憶装置が寿命に到達したと判断する場合に、前記半導体記憶装置から前記第2のソフトウェアを読み出し前記第2のソフトウェアを実行するように構成されている情報処理装置。
A non-volatile semiconductor memory including memory cells for storing data and capable of electrically erasing data recorded in the memory cells using a plurality of the memory cells as a first unit; a volatile semiconductor memory; a nonvolatile semiconductor memory, a controller circuit for controlling the volatile semiconductor memory, and an interface circuit;
a semiconductor memory device comprising;
a host device that is connectable to the semiconductor storage device and configured to send write and read commands to the semiconductor storage device;
An information processing device comprising:
At least one of the nonvolatile semiconductor memory and the volatile semiconductor memory includes first information specifying a physical address of the nonvolatile semiconductor memory corresponding to logical address information received from the host device via the interface circuit. It is configured to be able to record
When the controller circuit receives a write command from the host device via the interface circuit, the controller circuit generates a correction code using the data received from the host device,
When the data and the correction code are recorded in the non-volatile semiconductor memory and a read command is received from the host device via the interface circuit, the data is read from the non-volatile semiconductor memory using the first information. configured to be able to correct the read data based on the read data and the corresponding correction code,
The nonvolatile semiconductor memory includes:
second information based on the total usage time of the semiconductor storage device;
third information based on the total amount of write data received in response to the write command received from the host device;
fourth information based on the total amount of data read from the nonvolatile semiconductor memory in response to a read command received from the host device;
fifth information regarding the number of pieces of data that could not be corrected by the controller circuit even if the data read from the nonvolatile semiconductor memory was used with the corresponding correction code;
sixth information indicating, in the first unit, information corresponding to the number of memory cells in which it is determined that data cannot be written in the nonvolatile semiconductor memory;
configured to remember
first software and second software that prohibits sending a write command to the semiconductor storage device,
The host device includes:
reading and executing the first software from the semiconductor storage device;
acquiring a plurality of information including the second information to the sixth information from the semiconductor storage device, and calculating the remaining life of the semiconductor storage device based on at least one of the acquired information;
The device is configured to read the second software from the semiconductor storage device and execute the second software when determining that the semiconductor storage device has reached the end of its lifetime based on the calculated remaining lifetime. Information processing device.
前記ホスト装置は、前記残り寿命が所定値を下回った場合に前記半導体記憶装置が寿命に到達したと判断する請求項1に記載の情報処理装置。 The information processing apparatus according to claim 1, wherein the host device determines that the semiconductor storage device has reached the end of its life when the remaining life is less than a predetermined value. 前記ホスト装置は、前記ホスト装置と接続可能なバックアップ用記憶装置へ前記半導体記憶装置に保存されているデータをバックアップすることを特徴とする請求項1または請求項2に記載の情報処理装置。 3. The information processing apparatus according to claim 1, wherein the host device backs up data stored in the semiconductor storage device to a backup storage device connectable to the host device. 前記ホスト装置は、前記半導体記憶装置が寿命に到達したと判断する場合、前記ホスト装置に接続される表示装置に警告画面を表示することを特徴とする請求項1乃至請求項3の何れか一つに記載の情報処理装置。 Any one of claims 1 to 3, wherein the host device displays a warning screen on a display device connected to the host device when determining that the semiconductor storage device has reached the end of its lifespan. The information processing device described in . 前記警告画面には、前記半導体記憶装置に保存されているデータのバックアップを促すメッセージが含まれることを特徴とする請求項4に記載の情報処理装置。 5. The information processing apparatus according to claim 4, wherein the warning screen includes a message urging backup of data stored in the semiconductor storage device. 前記第2乃至第5情報はそれぞれ属性IDを備える請求項1乃至請求項5の何れか一つに記載の情報処理装置。 The information processing apparatus according to any one of claims 1 to 5, wherein each of the second to fifth information includes an attribute ID.
JP2022144309A 2020-05-18 2022-09-12 information processing equipment Active JP7362863B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022144309A JP7362863B2 (en) 2020-05-18 2022-09-12 information processing equipment

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2020086569A JP6913797B2 (en) 2018-08-31 2020-05-18 Information processing device
JP2021113532A JP7143487B2 (en) 2020-05-18 2021-07-08 Information processing equipment
JP2022144309A JP7362863B2 (en) 2020-05-18 2022-09-12 information processing equipment

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2021113532A Division JP7143487B2 (en) 2020-05-18 2021-07-08 Information processing equipment

Publications (2)

Publication Number Publication Date
JP2022171781A JP2022171781A (en) 2022-11-11
JP7362863B2 true JP7362863B2 (en) 2023-10-17

Family

ID=78409535

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021113532A Active JP7143487B2 (en) 2020-05-18 2021-07-08 Information processing equipment
JP2022144309A Active JP7362863B2 (en) 2020-05-18 2022-09-12 information processing equipment

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2021113532A Active JP7143487B2 (en) 2020-05-18 2021-07-08 Information processing equipment

Country Status (1)

Country Link
JP (2) JP7143487B2 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004240764A (en) 2003-02-06 2004-08-26 Internatl Business Mach Corp <Ibm> Information processor, method for controlling information processor and control program for information processor
JP2004342168A (en) 2003-05-13 2004-12-02 Sony Corp Device for incorporating device incorporating disk recording device, method for controlling disk recording device, and computer program
JP2007207139A (en) 2006-02-06 2007-08-16 Toshiba Tec Corp Information processor
JP2008009594A (en) 2006-06-28 2008-01-17 Seiko Epson Corp Semiconductor storage device management system, semiconductor storage device, host device, program, and method for managing semiconductor storage device
JP2008139927A (en) 2006-11-30 2008-06-19 Toshiba Corp Memory system
JP2009217603A (en) 2008-03-11 2009-09-24 Toshiba Corp Memory system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3544859B2 (en) * 1998-05-11 2004-07-21 富士通株式会社 Secondary storage device using nonvolatile semiconductor memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004240764A (en) 2003-02-06 2004-08-26 Internatl Business Mach Corp <Ibm> Information processor, method for controlling information processor and control program for information processor
JP2004342168A (en) 2003-05-13 2004-12-02 Sony Corp Device for incorporating device incorporating disk recording device, method for controlling disk recording device, and computer program
JP2007207139A (en) 2006-02-06 2007-08-16 Toshiba Tec Corp Information processor
JP2008009594A (en) 2006-06-28 2008-01-17 Seiko Epson Corp Semiconductor storage device management system, semiconductor storage device, host device, program, and method for managing semiconductor storage device
JP2008139927A (en) 2006-11-30 2008-06-19 Toshiba Corp Memory system
JP2009217603A (en) 2008-03-11 2009-09-24 Toshiba Corp Memory system

Also Published As

Publication number Publication date
JP7143487B2 (en) 2022-09-28
JP2021177401A (en) 2021-11-11
JP2022171781A (en) 2022-11-11

Similar Documents

Publication Publication Date Title
US11726661B2 (en) Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device
JP5002719B1 (en) Information processing device, external storage device, host device, relay device, control program, and information processing device control method
US9811277B2 (en) Information processing system
JP2013047913A (en) Information processor, control method of the same, control tool and host device
JP5668163B2 (en) Information processing device
JP5535383B2 (en) Host device and control tool
JP6190488B2 (en) Information recording system
JP6403130B2 (en) Information recording system
JP7362863B2 (en) information processing equipment
JP2019008814A (en) Semiconductor memory device
JP6913797B2 (en) Information processing device
JP2015084241A (en) Information processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220912

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: 20230905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231004

R151 Written notification of patent or utility model registration

Ref document number: 7362863

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151