(57)【要約】【課題】記憶装置の長寿命化を図り、ビットコストを低減させる。【解決手段】コントローラ及び複数の記憶素子によって構成される半導体記憶媒体を備える記憶装置であって、複数の記憶素子には、第１の記憶素子と、第１の記憶素子よりもデータの消去回数の上限値が小さい第２の記憶素子とが含まれ、データの格納先として指定される第１のアドレスと、データが格納される領域の第２のアドレスとの対応を含む領域変換情報が含まれ、格納されたデータの書き換え頻度が領域ごとに記録され、第１のアドレスに対応する領域を選択し、選択された領域の書き換え頻度が所定の第１の閾値以上であるか否かを判定し、書き換え頻度が所定の閾値以上の場合には第１の記憶素子によって提供される領域を選択し、書き換え頻度が所定の閾値よりも小さい場合には第２の記憶素子によって提供される領域を選択し、第１のアドレスに選択された領域のアドレスを対応させる。【選択図】図１
2010108246.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶素子によって構成される半導体記憶媒体と、前記半導体記憶媒体に接続されるコントローラと、を備える記憶装置であって、
前記記憶素子には、格納されたデータを消去することが可能な回数の上限値があり、
前記複数の記憶素子には、第１の記憶素子と、前記第１の記憶素子よりも前記上限値が小さい第２の記憶素子とが含まれ、
前記コントローラは、インターフェース、前記インターフェースに接続されるプロセッサ、及び前記プロセッサに接続されるメモリを備え、
前記メモリには、前記半導体記憶媒体を管理する記憶媒体管理情報が記憶され、
前記記憶媒体管理情報は、データの格納先として指定される第１のアドレスと、前記データが格納される領域の第２のアドレスとの対応を含む領域変換情報を含み、前記格納されたデータの書き換え頻度が領域ごとに記録され、
前記コントローラは、
前記第１のアドレスに対応する領域を選択し、
前記選択された領域の書き換え頻度を前記記憶媒体管理情報から取得し、
前記取得された書き換え頻度が所定の第１の閾値以上であるか否かを判定し、
前記取得された書き換え頻度が前記所定の第１の閾値以上の場合には、前記第１の記憶素子によって提供される第１の領域を選択し、
前記取得された書き換え頻度が前記所定の第１の閾値よりも小さい場合には、前記第２の記憶素子によって提供される第２の領域を選択し、
前記第１のアドレスに対応する前記第２のアドレスに、前記選択された第１の領域又は第２の領域の第２のアドレスを設定することによって、前記領域変換情報を更新することを特徴とする記憶装置。
【請求項２】
前記コントローラは、データの書き込み要求を受け付けた場合には、前記データの書き込み要求に含まれる第１のアドレスに対応する領域を選択することを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記コントローラは、前記第１のアドレスに対応する領域を周期的に選択することを特徴とする請求項１に記載の記憶装置。
【請求項４】
前記記憶媒体管理情報は、前記半導体記憶媒体に格納されたデータの消去回数が領域ごとに記録され、
前記コントローラは、
前記選択された領域の消去回数を前記記憶媒体管理情報から取得し、
前記取得された消去回数が所定の第２の閾値以上の場合には、前記選択された領域について、前記取得された書き換え頻度が前記所定の第１の閾値以上であるか否かを判定することを特徴とする請求項１に記載の記憶装置。
【請求項５】
前記記憶媒体管理情報は、
新たにデータの書き込みが可能であって、かつ、前記第１のアドレスに対応しない領域の一覧を含む代替領域リストを含み、
前記半導体記憶媒体に格納されたデータの消去回数が領域ごとに記録され、
前記コントローラは、
前記代替領域リストから前記第１の領域又は前記第２の領域を選択し、
前記選択された領域の消去回数を前記記憶媒体管理情報から取得し、
前記取得された消去回数が所定の第２の閾値よりも小さい場合には、前記代替領域リストに前記選択された領域を追加することを特徴とする請求項１に記載の記憶装置。
【請求項６】
前記書き換え頻度は、所定の時間内にデータが消去された回数であることを特徴とする請求項１に記載の記憶装置。
【請求項７】
前記書き換え頻度は、前記記憶媒体管理情報から当該書き換え頻度が取得された時点で、対応する領域に格納されたデータが最後に消去された時刻に基づいて設定されることを特徴とする請求項１に記載の記憶装置。
【請求項８】
前記記憶素子は、フラッシュメモリチップであって、
前記半導体記憶媒体は、前記フラッシュメモリチップによって構成されるフラッシュメモリモジュールであって、
前記記憶装置は、前記インターフェースを介して計算機に接続されるフラッシュメモリドライブであることを特徴とする請求項１に記載の記憶装置。
【請求項９】
前記記憶素子は、フラッシュメモリチップであって、
前記半導体記憶媒体は、前記フラッシュメモリチップによって構成されるフラッシュメモリモジュールであって、
前記記憶装置は、ホスト計算機によってデータが読み書きされるストレージシステムであることを特徴とする請求項１に記載の記憶装置。
【請求項１０】
前記記憶素子は、フラッシュメモリチップであって、
前記半導体記憶媒体は、前記フラッシュメモリチップによって構成されるフラッシュメモリモジュールを含むフラッシュメモリドライブであって、
前記記憶装置は、ホスト計算機によってデータが読み書きされるストレージシステムであることを特徴とする請求項１に記載の記憶装置。
【請求項１１】
複数の記憶素子によって構成される半導体記憶媒体と、前記半導体記憶媒体に接続されるコントローラと、を備える記憶装置におけるデータ格納領域管理方法であって、
前記記憶素子には、格納されたデータを消去することが可能な回数の上限値があり、
前記複数の記憶素子には、第１の記憶素子と、前記第１の記憶素子よりも前記上限値が小さい第２の記憶素子とが含まれ、
前記コントローラは、インターフェース、前記インターフェースに接続されるプロセッサ、及び前記プロセッサに接続されるメモリを備え、
前記メモリには、前記半導体記憶媒体を管理する記憶媒体管理情報が記憶され、
前記記憶媒体管理情報は、データの格納先として指定される第１のアドレスと、前記データが格納される領域の第２のアドレスとの対応を含む領域変換情報を含み、前記格納されたデータの書き換え頻度が領域ごとに記録され、
前記方法は、
前記コントローラが、前記第１のアドレスに対応する領域を選択し、
前記コントローラが、前記選択された領域の書き換え頻度を前記記憶媒体管理情報から取得し、
前記コントローラが、前記取得された書き換え頻度が所定の第１の閾値以上であるか否かを判定し、
前記コントローラが、前記取得された書き換え頻度が前記所定の第１の閾値以上の場合には、前記第１の記憶素子によって提供される第１の領域を選択し、
前記コントローラが、前記取得された書き換え頻度が前記所定の第１の閾値よりも小さい場合には、前記第２の記憶素子によって提供される第２の領域を選択し、
前記コントローラが、前記第１のアドレスに対応する前記第２のアドレスに、前記選択された第１の領域又は第２の領域の第２のアドレスを設定することによって、前記領域変換情報を更新することを特徴とするデータ格納領域管理方法。
【請求項１２】
前記方法は、前記コントローラが、データの書き込み要求を受け付けた場合には、前記データの書き込み要求に含まれる第１のアドレスに対応する領域を選択することを特徴とする請求項１１に記載のデータ格納領域管理方法。
【請求項１３】
前記記憶媒体管理情報は、前記半導体記憶媒体に格納されたデータの消去回数が領域ごとに記録され、
前記方法は、
前記コントローラが、前記選択された領域の消去回数を前記記憶媒体管理情報から取得し、
前記コントローラが、前記取得された消去回数が所定の第２の閾値以上の場合には、前記選択された領域について、前記取得された書き換え頻度が前記所定の第１の閾値以上であるか否かを判定することを特徴とする請求項１１に記載のデータ格納領域管理方法。
【請求項１４】
前記記憶媒体管理情報は、
新たにデータの書き込みが可能であって、かつ、前記第１のアドレスに対応しない領域の一覧を含む代替領域リストを含み、
前記半導体記憶媒体に格納されたデータの消去回数が領域ごとに記録され、
前記方法は、
前記コントローラが、前記代替領域リストから前記第１の領域又は前記第２の領域を選択し、
前記コントローラが、前記選択された領域の消去回数を前記記憶媒体管理情報から取得し、
前記コントローラが、前記取得された消去回数が所定の第２の閾値よりも小さい場合には、前記代替領域リストに前記選択された領域を追加することを特徴とする請求項１１に記載のデータ格納領域管理方法。
【請求項１５】
複数のフラッシュメモリチップによって構成されるフラッシュメモリモジュールと、前記フラッシュメモリモジュールに接続されるコントローラと、を備える記憶装置であって、
前記フラッシュメモリチップには、格納されたデータを消去することが可能な回数の上限値があり、
前記複数のフラッシュメモリチップには、第１のフラッシュメモリチップと、前記第１のフラッシュメモリチップよりも前記上限値が小さい第２のフラッシュメモリチップとが含まれ、
前記フラッシュメモリチップは、所定のサイズのブロックごとに管理され、
前記コントローラは、インターフェース、前記インターフェースに接続されるプロセッサ、及び前記プロセッサに接続されるメモリを備え、
前記メモリには、前記ブロックを管理するブロック管理情報が記憶され、
前記ブロック管理情報は、
データの格納先として指定される論理アドレスと、前記データが格納されるブロックの物理的なアドレスである物理アドレスとの対応を含むブロック変換情報、及び新たにデータの書き込みが可能であって、かつ、前記論理アドレスに対応しないブロックの一覧を含む代替ブロックリストが含まれ、
前記ブロックに格納されたデータが所定の時間内に消去された回数である書き換え頻度と、前記ブロックに格納されたデータの消去回数が記録され、
前記コントローラは、
前記フラッシュメモリモジュールに対するデータの書き込み要求を受け付けた場合には、前記ブロック変換情報に基づいて、前記データの書き込み要求に含まれる前記論理アドレスに対応する前記物理アドレスを特定することによって、前記要求されたデータを書き込むブロックを特定し、
前記特定されたブロックの書き換え頻度を前記記憶媒体管理情報から取得し、
前記取得された書き換え頻度が所定の第１の閾値以上であるか否かを判定し、
前記取得された書き換え頻度が前記所定の第１の閾値以上の場合には、前記代替ブロックリストから、前記第１のフラッシュメモリチップに含まれる第１のブロックを選択し、
前記選択された第１のブロックに前記要求されたデータを書き込み、
前記取得された書き換え頻度が前記所定の第１の閾値よりも小さい場合には、前記代替ブロックリストから、前記第２のフラッシュメモリチップに含まれる第２のブロックを選択し、
前記選択された第２のブロックに前記要求されたデータを書き込み、
前記要求されたデータの書き込みが完了した後、前記データの書き込み要求に含まれる論理アドレスに対応する物理アドレスに、前記要求されたデータが書き込まれたブロックの物理アドレスを設定することによって、前記ブロック変換情報を更新することを特徴とする記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶媒体を含む記憶装置に関し、特に、データを格納する領域を管理する技術に関する。
【背景技術】
【０００２】
近年、高速アクセスが可能な記憶媒体である、フラッシュメモリなどの不揮発半導体メモリが注目されている。一般に普及しているフラッシュメモリはＮＡＮＤ型フラッシュメモリと呼ばれ、記憶素子の特性によってＭＬＣ（Ｍｕｌｔｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）とＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）に細分される。ＭＬＣは、メモリセル当たりの記憶容量が２ビット以上であり、低ビットコスト、低性能、短寿命という特徴を有する。一方ＳＬＣは、メモリセル当たりの記憶容量が１ビットであり、高ビットコスト、高性能、長寿命という特徴を有する。
【０００３】
フラッシュメモリは、複数のフラッシュメモリチップから構成される。また、各々のフラッシュメモリチップは、データを格納する複数のメモリブロック（以下、「ブロック」とする）を有する。フラッシュメモリは、ブロック単位でデータを消去するという特徴を有する。フラッシュメモリは、ビットを一方向（１→０）にしか変更できず、逆方向に変更する場合には一度ブロックを消去し、ブロック全体を１に変更する必要がある。しかし、フラッシュメモリのブロックの消去回数には上限があり（ＳＬＣで１０００００回程度、ＭＬＣで１００００回程度）、消去回数が上限に達したブロック（以下、「寿命ブロック」とする）は、読み書きの際にエラーが多発するおそれがある。
【０００４】
そのため、フラッシュメモリをハードディスクの代替として計算機に接続する場合には、ブロックごとの書き込み頻度の偏りによって、一部のブロックのみが消去回数の上限に達し、使用できなくなってしまうおそれがある。特許文献１には、この問題を解決するために、あらかじめ書き換え頻度の高いことが予測されるデータをＳＬＣ領域に、書き換え頻度の低いことが予測されるデータをＭＬＣ領域に格納する技術が開示されている。
【０００５】
フラッシュメモリを用いた記憶装置であるＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）には、構成するフラッシュメモリの種類が、ＳＬＣ又はＭＬＣのいずれか一方によって構成されるＳＳＤと、ＳＬＣ及びＭＬＣ双方を備えるＳＳＤとがある。ＳＬＣ及びＭＬＣを備えるＳＳＤには、特許文献１に開示された技術のように、格納されるデータの内容又は特性に応じて、あらかじめデータの格納先が定められているものがある。また、ＳＳＤは、ＳＳＤ内部にあらかじめ代替用の領域として代替ブロックを備えており、代替ブロックをすべて使い切った場合に書き込み不能となり、ＳＳＤは寿命となる。
【０００６】
また、ＳＳＤをストレージ装置の記憶媒体として搭載する場合には、搭載されるＳＳＤを構成するフラッシュメモリの種類によって、ＳＬＣで構成されたＳＳＤ又はＭＬＣで構成されたＳＳＤのいずれかに限定して用いる形態、ＳＬＣで構成されたＳＳＤ及びＭＬＣで構成されたＳＳＤを混在して用いる形態、ＳＬＣとＭＬＣの両方が混在しているＳＳＤを用いる形態の３形態が考えられる。このようなＳＳＤをストレージ装置に搭載した場合には、代替ブロックをすべて使い切り、書き込み不能となったＳＳＤ（以下、「寿命ＳＳＤ」とする）の代替として別のＳＳＤを割り当てる。
【特許文献１】特開２００７−３０５２１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１に開示された技術によれば、データの書き換え頻度に応じて格納する領域をＳＬＣ又はＭＬＣに振り分けることによって、特定のメモリブロックへ書き込みが偏ることを防ぐことができる。
【０００８】
しかし、特許文献１に開示された技術では、ＳＬＣ及びＭＬＣの割り当てられるデータはあらかじめ固定されおり、代替ブロックの種類も固定されているため、ＭＬＣに格納されたデータの書き換え頻度が高くなった場合にはＭＬＣの寿命が早く到来することが想定される。したがって、ＭＬＣの代替ブロックが枯渇しやすくなり、ＳＳＤの寿命も短くなってしまう上に、ＳＳＤの交換頻度も上昇するため、結果的にビットコストが上昇してしまう。また、ＳＬＣに格納されたデータの書き換え頻度が低くなった場合は、書き換え頻度の低いデータであるにもかかわらず、ビットコストの高いＳＬＣに格納され続けるため、結果的にビットコストが上昇してしまう。
【０００９】
従来のストレージ装置にＳＳＤが搭載されている場合には、寿命ＳＳＤを代替する別のＳＳＤを割り当てる際に、寿命ＳＳＤへのアクセス状況が考慮されずにＳＳＤの種類が選択される。例えば、ＳＬＣに格納されたデータの書き換え頻度が低下した場合は、ＭＬＣにデータを格納したほうがビットコストを低減できるにも関わらず、ＳＬＣに格納され続けるため、ビットコストが高くなってしまう。また、ＭＬＣに格納されたデータの書き換え頻度が上昇した場合には、ＳＬＣにデータを格納した方が長寿命化できるにも関わらずＭＬＣに格納され続けるため、ＭＬＣが短寿命化してしまい、結果的にＳＳＤ全体が短寿命化してしまう。
【００１０】
また、ＳＬＣとＭＬＣが混在したＳＳＤをストレージ装置に搭載した場合には、ＳＬＣとＭＬＣのどちらか一方の代替ブロックを使いきり、寿命ＳＳＤになった時点で別のＳＳＤに代替する必要があり、残りのブロック数に余裕のある他方のブロックを利用することができない。例えば、ＳＳＤ内部のＭＬＣ領域がなくなった場合は、まだ余裕のあるＳＬＣ領域を含むＳＳＤを丸ごと代替せねばならず、ＳＬＣ領域を活用することができない。以上のように、ＳＳＤ内の代替ブロックが余っている状況でＳＳＤを代替する場合には、ビットコストを最適化することができない。
【課題を解決するための手段】
【００１１】
本発明の代表的な一形態によれば、複数の記憶素子によって構成される半導体記憶媒体と、前記半導体記憶媒体に接続されるコントローラと、を備える記憶装置であって、前記記憶素子には、格納されたデータを消去することが可能な回数の上限値があり、前記複数の記憶素子には、第１の記憶素子と、前記第１の記憶素子よりも前記上限値が小さい第２の記憶素子とが含まれ、前記コントローラは、インターフェース、前記インターフェースに接続されるプロセッサ、及び前記プロセッサに接続されるメモリを備え、前記メモリには、前記半導体記憶媒体を管理する記憶媒体管理情報が記憶され、前記記憶媒体管理情報は、データの格納先として指定される第１のアドレスと、前記データが格納される領域の第２のアドレスとの対応を含む領域変換情報を含み、前記格納されたデータの書き換え頻度が領域ごとに記録され、前記コントローラは、前記第１のアドレスに対応する領域を選択し、前記選択された領域の書き換え頻度を前記記憶媒体管理情報から取得し、前記取得された書き換え頻度が所定の第１の閾値以上であるか否かを判定し、前記取得された書き換え頻度が前記所定の第１の閾値以上の場合には、前記第１の記憶素子によって提供される第１の領域を選択し、前記取得された書き換え頻度が前記所定の第１の閾値よりも小さい場合には、前記第２の記憶素子によって提供される第２の領域を選択し、前記第１のアドレスに対応する前記第２のアドレスに、前記選択された第１の領域又は第２の領域の第２のアドレスを設定することによって、前記領域変換情報を更新する。
【発明の効果】
【００１２】
本発明の一形態によれば、複数の種類の記憶素子（フラッシュメモリ）によって構成される記憶装置において、記憶装置の長寿命化を図り、ビットコストを低減させることができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照しながら本発明の実施の形態を説明する。
【００１４】
（第１の実施の形態）
以下、第１の実施の形態について、図１から図６を参照しながら説明する。
【００１５】
図１は、本発明の第１の実施の形態のフラッシュメモリを用いた記憶装置であるＳＳＤ１００の一例を示すブロック図である。
【００１６】
ＳＳＤ１００は、ＳＳＤコントローラ１０１、ＳＬＣフラッシュメモリモジュール１０２及びＭＬＣフラッシュメモリモジュール１０３を備える。
【００１７】
ＳＳＤコントローラ１０１は、ＳＳＤ１００全体を制御する。ＳＳＤコントローラ１０１は、プロセッサ１０５、インターフェース１０６及びブロック管理情報２００を有する。プロセッサ１０５は、データの入出力を制御する。インターフェース１０６は、データの入出力要求を受け付ける。ブロック管理情報２００は、ブロック１０４を管理するための情報が格納される。
【００１８】
ＳＬＣフラッシュメモリモジュール１０２及びＭＬＣフラッシュメモリモジュール１０３は、ＳＳＤコントローラ１０１に接続される。フラッシュメモリモジュールとは、プリント基板にフラッシュメモリチップを複数搭載したメモリモジュールである。フラッシュメモリモジュールは、内部にデータを格納するための複数のブロック１０４を備える。
【００１９】
図２は、本発明の第１の実施の形態のブロック管理情報２００の一例を示す図である。
【００２０】
ブロック管理情報２００は、ブロック変換テーブル２０１、ＳＬＣ代替ブロックリスト２０５、ＭＬＣ代替ブロックリスト２０６、ブロック情報テーブル２０７、代替ブロックカウンタ２１１、不良ブロックカウンタ２１３、及び閾値テーブル２３０を含む。
【００２１】
ブロック変換テーブル２０１は、論理ブロックアドレス２０２と物理ブロックアドレス２０３との対応表である。論理ブロックアドレス２０２は、論理的なアドレス空間におけるブロックの位置を示す。物理ブロックアドレス２０３は、論理ブロックアドレス２０２が割り当てられた物理的なフラッシュメモリチップのブロックの位置を示す。
【００２２】
ＳＬＣ代替ブロックリスト２０５は、ＳＳＤに含まれるブロックのうち、記憶領域が割り当てられておらず、かつ、割り当て可能な状態にあるＳＬＣブロックの物理ブロックアドレス２０３の一覧である。
【００２３】
ＭＬＣ代替ブロックリスト２０６は、ＳＳＤに含まれるブロックのうち、記憶領域が割り当てられておらず、かつ、割り当て可能な状態にあるＭＬＣブロックの物理ブロックアドレス２０３の一覧である。
【００２４】
ブロック情報テーブル２０７は、割り当て済みのブロックごとに、書き換え頻度、消去回数及び寿命ブロックであるか否かなどの情報を管理するテーブルである。ブロック情報テーブル２０７は、物理ブロックアドレス２０３、ＳＬＣ／ＭＬＣ  ＩＤ２０４、書き換え頻度２０８、消去回数カウンタ２０９、及び寿命フラグ２１０を含む。
【００２５】
ＳＬＣ／ＭＬＣ  ＩＤ２０４は、物理ブロックアドレス２０３に対応するブロックが割り当てられているメモリモジュールの種類がＳＬＣであるか又はＭＬＣであるかを示す識別子である。
【００２６】
書き換え頻度２０８は、ブロックが寿命ブロックとなったときに、代替として割り当てられる代替ブロックの種類をＳＬＣ又はＭＬＣのいずれにするかを判定するための指標である。例えば、一定期間における書き換え回数であってもよいし、当該ブロックが最後に代替された時刻を記憶しておき、最後の代替処理からの経過時間の長短を書き換え頻度の大小としてもよい。
【００２７】
消去回数カウンタ２０９は、ブロックごとの消去回数であって、ブロックが消去されるごとに加算される。また、消去回数カウンタ２０９は、ブロックが寿命であるか否か判定するための指標となる。
【００２８】
寿命フラグ２１０は、ブロックが寿命ブロックであるか否かを示す情報である。例えば、初期状態では寿命フラグは“０”に設定され、消去回数が基準値を超えた場合には“１”が設定される。寿命フラグ２１０に“１”が設定されているブロックが寿命ブロックとなる。
【００２９】
代替ブロックカウンタ２１１は、代替ブロックの残数である。代替ブロックカウンタ２１１は、ＳＬＣ／ＭＬＣ  ＩＤ２０４及び代替ブロックの個数２１２を含む。代替ブロックカウンタ２１１は、ＳＬＣ及びＭＬＣのそれぞれについて代替ブロックの個数が格納される。
【００３０】
不良ブロックカウンタ２１３は、寿命又は物理的な故障によって使用できないブロックの個数を格納する。不良ブロックカウンタ２１３は、ＳＬＣ／ＭＬＣ  ＩＤ２０４及び代替ブロックの個数２１２を含む。不良ブロックカウンタ２１３は、ＳＬＣ及びＭＬＣのそれぞれについて不良ブロックの個数が格納される。また、システムの運用開始前にフラッシュメモリに含まれている初期不良のブロックの数を取得し、初期値として設定する。
【００３１】
閾値テーブル２３０は、ブロックを代替するか否かを判定するための閾値、及び代替するブロックの種類を判定するための閾値などが格納される。
【００３２】
続いて、本発明の第１の実施の形態の代替ブロックを選択する手順について説明する。第１の実施の形態では、データを書き込む際にデータの消去回数に基づいて書き込み対象のブロックを代替するか否かを判定する。さらに、書き込み対象のブロックの書き込み頻度に基づいて、代替するブロックの種類を決定する。
【００３３】
なお、本発明の第１の実施の形態では、ブロックの消去が必要と判定された契機にブロック代替処理が実行されているが、これに限定する必要はなく、他の契機に実行するようにしてもよい。例えば、周期的にブロック代替処理を実行するようにしてもよい。
【００３４】
まず、フラッシュメモリに対する書き込み処理の手順について説明する。
【００３５】
図３は、本発明の第１の実施の形態の書き込み処理の手順の一例を示すフローチャートである。
【００３６】
ＳＳＤコントローラ１０１のプロセッサ１０５は、書き込み要求（ライトコマンド）を受け付けると（ステップ３２０）、ブロック変換テーブル２０１を参照し、ライトコマンドに含まれる書き込み先の論理ブロックアドレス２０２に対応する物理ブロックアドレス２０３を取得し、書き込みデータ格納先ブロックを特定する（ステップ３２１）。
【００３７】
ＳＳＤコントローラ１０１のプロセッサ１０５は、書き込みデータ格納先ブロックに対応するブロック情報テーブル２０７の寿命フラグ２１０を参照し、寿命フラグ２１０の値が“０”（ＯＦＦ）であるか否かを判定する（ステップ３２２）。
【００３８】
ＳＳＤコントローラ１０１のプロセッサ１０５は、寿命フラグ２１０が“０”（ＯＦＦ）でなかった場合、すなわち、寿命フラグ２１０が“１”（ＯＮ）の場合には（ステップ３２２の結果が「Ｎｏ」）、書き込みデータ格納先ブロックが寿命ブロックであるため、ブロック代替処理中であることがわかる。そこで、ブロック代替処理が終了し、ブロック変換テーブル２０１の物理ブロックアドレス２０３の値が変更されるまで待機し（ステップ３２３）、再びステップ３２１の処理に戻る。
【００３９】
ＳＳＤコントローラ１０１のプロセッサ１０５は、寿命フラグ２１０が“０”（ＯＦＦ）であった場合には（ステップ３２２の結果が「Ｙｅｓ」）、書き込みデータ格納先ブロックが寿命ブロックでないため、当該ブロックにデータを格納することができる。さらに、書き込みデータ格納先ブロックを一旦消去する必要があるかを判定する（ステップ３２４）。書き込みデータ格納先ブロックを一旦消去する必要がない場合（ステップ３２４の結果が「Ｎｏ」）、すなわち、書き込みデータ格納先ブロックにデータをそのまま格納可能な場合には、データを書き込みデータ格納先ブロックに書き込み（ステップ３２７）、本処理を終了する。
【００４０】
ＳＳＤコントローラ１０１のプロセッサ１０５は、書き込みデータ格納先ブロックを一旦消去する必要がある場合には（ステップ３２４の結果が「Ｎｏ」）、書き込みデータ格納先ブロックに対して寿命ブロック代替処理を実行する（ステップ３０００）。なお、寿命ブロック代替処理の詳細については、図４にて後述する。
【００４１】
ＳＳＤコントローラ１０１のプロセッサ１０５は、寿命ブロック代替処理が完了すると、データを書き込みデータ格納先ブロックに書き込み（ステップ３２７）、本処理を終了する。
【００４２】
図４は、本発明の第１の実施の形態の寿命ブロック代替処理の手順の一例を示すフローチャートである。
【００４３】
ＳＳＤコントローラ１０１のプロセッサ１０５は、あるブロックが消去された後、代替ブロックカウンタ２１１を参照し、代替ブロックの個数２１２があらかじめ設定された閾値よりも大きいか否か判定する（ステップ３００）。閾値は、例えば、ＳＬＣの代替ブロックとＭＬＣの代替ブロックの両方が一定数以上あることが判定できるように設定されていることが望ましい。また、閾値は閾値テーブル２３０にあらかじめ設定されている必要があるが、ＳＳＤ１００の状態に応じて再設定されるようにしてもよい。
【００４４】
ＳＳＤコントローラ１０１のプロセッサ１０５は、代替ブロックの個数２１２があらかじめ設定された閾値よりも小さい場合には（ステップ３００の結果が「Ｎｏ」）、ＳＳＤ１００が耐用寿命に近い状態であるため、ＳＳＤ１００が接続されたイニシエータ又は当該イニシエータを備えた計算機に代替ブロックの残りが少なくなったことを通知する（ステップ３０７）。
【００４５】
ＳＳＤコントローラ１０１のプロセッサ１０５は、代替ブロックの個数２１２があらかじめ設定された閾値よりも大きい場合（ステップ３００の結果が「Ｙｅｓ」）、又はステップ３０７の処理が終了すると、消去されたブロックが寿命ブロックか否かを判定する。
【００４６】
ＳＳＤコントローラ１０１のプロセッサ１０５は、まず、ブロック情報テーブル２０７の消去されたブロックに対応する消去回数カウンタ２０９を参照する（ステップ３０１）。そして、消去されたブロックの消去回数カウンタ２０９があらかじめ設定された閾値以上であるか否か、すなわち、消去されたブロックが寿命ブロックであるか否かを判定する（ステップ３０２）。
【００４７】
ＳＳＤコントローラ１０１のプロセッサ１０５は、消去されたブロックの消去回数カウンタ２０９があらかじめ設定された閾値よりも小さい場合、すなわち、消去されたブロックが寿命ブロックでない場合には（ステップ３０２の結果が「Ｎｏ」）、書き込み対象のデータの格納先ブロックを消去する（ステップ３２５）。さらに、ブロック情報テーブル２０７の消去回数カウンタ２０９の値を１増やし（ステップ３２６）、本処理を終了する。
【００４８】
一方、ＳＳＤコントローラ１０１のプロセッサ１０５は、消去されたブロックの消去回数カウンタ２０９の値が閾値以上の場合には（ステップ３０２の結果が「Ｙｅｓ」）、ブロック情報テーブル２０７の寿命フラグ２１０を“１”（ＯＮ）に設定する（ステップ３０３）。さらに、寿命ブロックの代替となるブロックを割り当てるブロック代替処理を実行する（ステップ３０４）。ブロック代替処理の詳細については、図５にて後述する。
【００４９】
ＳＳＤコントローラ１０１のプロセッサ１０５は、ブロックの代替処理（ステップ３０４）が完了すると、ＳＬＣ代替ブロックリスト２０５又はＭＬＣ代替ブロックリスト２０６から、代替されたブロックの物理ブロックアドレス２０３を削除し、代替ブロックカウンタ２１１の個数２１２を１減らす（ステップ３０５）。
【００５０】
ＳＳＤコントローラ１０１のプロセッサ１０５は、不良ブロックカウンタ２１３の寿命ブロックに該当するＳＬＣ／ＭＬＣ  ＩＤ２０４に対応する個数２１２を１増やす（ステップ３０６）。
【００５１】
図５は、本発明の第１の実施の形態のブロック代替処理の手順の一例を示すフローチャートである。
【００５２】
ＳＳＤコントローラ１０１のプロセッサ１０５は、寿命ブロックのブロック情報テーブル２０７の書き換え頻度２０８を参照し（ステップ３０９）、書き換え頻度２０８があらかじめ設定された閾値以上か否かを判定する（ステップ３１０）。
【００５３】
ステップ３１０の処理では、書き換え頻度２０８を代替ブロックの種類の選択基準にしているが、例えば、代替ブロックカウンタ２１１から取得可能なＳＬＣの代替ブロック数とＭＬＣの代替ブロック数との割合、又は不良ブロックカウンタ２１３から取得可能なＳＬＣの不良ブロック数とＭＬＣの不良ブロック数との割合に基づいて、代替ブロックの種類を選択してもよい。
【００５４】
また、本発明の第１の実施の形態では、書き換え頻度２０８の値が閾値以上の場合には、寿命ブロックに書き換え頻度の高いデータが格納されていると判定できる。したがって、消去回数の上限の高いＳＬＣを割り当てることによって長寿命化を図ることができる。一方、書き換え頻度２０８の値が閾値よりも小さい場合には、寿命ブロックに書き換え頻度の低いデータが格納されていると判定できる。したがって、消去回数の上限は低いが、低ビットコストであるＭＬＣを割り当てることによってビットコストの低減を図ることができる。
【００５５】
ＳＳＤコントローラ１０１のプロセッサ１０５は、寿命ブロックに書き換え頻度の高いデータが格納されていた場合には（ステップ３１０の結果が「Ｙｅｓ」）、代替ブロックとしてＳＬＣを選択する。そして、寿命ブロックに格納されたデータを選択されたＳＬＣの代替ブロックにコピーする（ステップ３１１）。寿命ブロックから代替ブロックへのコピーが完了すると、寿命ブロックのブロック変換テーブル２０１の物理ブロックアドレス２０３を代替ブロックの物理ブロックアドレス２０３に変更する（ステップ３１２）。
【００５６】
同様に、ＳＳＤコントローラ１０１のプロセッサ１０５は、寿命ブロックに書き換え頻度の低いデータが格納されていた場合には（ステップ３１０の結果が「Ｎｏ」）、代替ブロックとしてＭＬＣを選択する。そして、寿命ブロックに格納されたデータを選択されたＭＬＣの代替ブロックにコピーする（ステップ３１３）。寿命ブロックから代替ブロックへのコピーが完了すると、寿命ブロックのブロック変換テーブル２０１の物理ブロックアドレス２０３を代替ブロックの物理ブロックアドレス２０３に変更する（ステップ３１４）。
【００５７】
なお、図５に示したフローチャートでは、ＳＬＣの代替ブロックとＭＬＣの代替ブロックの両方が使用可能な場合について示しているが、いずれか一方の代替ブロックが使用可能である場合には、使用可能な代替ブロックを強制的に選択させるようにすればよい。
【００５８】
以上、ブロックの消去を契機とする寿命ブロックの代替処理手順を示したが、消去頻度が多い場合には、寿命ブロックの代替処理の実行回数が増大し、処理オーバヘッドが大きくなるおそれがある。このような場合には、寿命ブロックの代替処理を周期的に実行することによって処理回数を低減させ、処理オーバヘッドを小さくすることができる。寿命ブロックの代替処理を周期的に実行する場合には、図５に示した手順をすべてのブロックに対して実行すればよい。
【００５９】
以上の処理手順によって、データの書き換え頻度に基づいて格納先ブロックを選択することによってＳＳＤ１００の長寿命化を図ることができる。
【００６０】
最後に、代替ブロックを選択するパターンについて説明する。
【００６１】
図６は、本発明の第１の実施の形態の代替ブロックを選択するパターンを説明する図である。
【００６２】
代替ブロックを選択するパターンとしては、例えば、図６に示しているように、同一フラッシュメモリモジュールのブロック１０４を代替ブロックとして選んでもよいし、別のフラッシュメモリモジュールのブロック１０４を代替ブロックとして選んでもよい。
【００６３】
代替ブロックの選択方法については、ここでは指定しないが、優先度をつけて選択するようにしてもよい。例えば、同一フラッシュメモリモジュール内の代替ブロックを優先的に選択するように指定してもよいし、他のフラッシュメモリモジュールの代替ブロックを優先的に選択するように指定してもよい。
【００６４】
本発明の第１の実施の形態によれば、書き換え頻度に基づいて、代替ブロックの種類を選択することによって、記憶装置全体の長寿命化及びビットコストの低減を図ることができる。具体的には、書き換え頻度の大きいブロックの代替ブロックをＳＬＣとすることによって、記憶装置の長寿命化を図ることができる。また、書き換え頻度の小さいブロックの代替ブロックをＭＬＣとすることによって、ビットコストを低減することができる。
【００６５】
（第２の実施の形態）
本発明の第１の実施の形態では、ＳＳＤコントローラを備えたＳＳＤに本発明を適用したが、第２の実施の形態では、複数のフラッシュメモリモジュールを搭載したストレージ装置に本発明を適用する。第２の実施の形態では、ＳＳＤコントローラの代わりにストレージコントローラによってフラッシュメモリモジュールに対するデータの入出力を制御する。
【００６６】
以下、第２の実施の形態について、図７から図１０を参照しながら説明する。なお、第２の実施の形態において、第１の実施の形態と共通する内容については適宜説明を省略する。
【００６７】
図７は、本発明の第２の実施の形態の計算機システムの構成の一例を示すブロック図である。
【００６８】
本発明の第２の実施の形態の計算機システムには、ストレージ装置４００、ホスト計算機４０１及び管理サーバ４０２が含まれる。
【００６９】
ストレージ装置４００は、ホスト計算機４０１によって読み書きされるデータを格納する。ストレージ装置４００は、ホスト計算機４０１及び管理サーバ４０２に接続される。ホスト計算機４０１は、ストレージ装置４００にデータの読み書きを要求する。管理サーバ４０２は、ストレージ装置４００を管理する。
【００７０】
ストレージ装置４００は、ストレージコントローラ４０３及び複数のフラッシュメモリパッケージを備える。ストレージコントローラ４０３は、ストレージ装置４００全体を制御する。複数のフラッシュメモリパッケージには、ＳＬＣパッケージ４０８及びＭＬＣパッケージ４０９が含まれる。ＳＬＣパッケージ４０８及びＭＬＣパッケージ４０９には、ストレージコントローラ４０３が接続される。
【００７１】
ストレージコントローラ４０３は、ポート４０４、プロセッサ４０５、キャッシュメモリ４０６及びメインメモリ４０７を含む。ポート４０４、プロセッサ４０５、キャッシュメモリ４０６及びメインメモリ４０７は、内部ネットワーク４３０によって相互に接続される。
【００７２】
ポート４０４は、ホスト計算機４０１及び管理サーバ４０２に接続される。ポート４０４は、ストレージコントローラ４０３に１つ以上含まれ、例えば、１つのポートが管理サーバ４０２に接続され、残りのポートがホスト計算機４０１に接続されるように構成されてもよい。
【００７３】
プロセッサ４０５は、メインメモリ４０７に記憶された制御プログラム及び制御情報などに基づいて、ストレージ装置４００に要求されたデータの入出力要求を処理する。
【００７４】
キャッシュメモリ４０６は、フラッシュメモリパッケージに格納されたデータの入出力を高速化するために、一時的にデータを格納する。
【００７５】
メインメモリ４０７は、フラッシュメモリパッケージのブロックの管理情報であるブロック管理情報２５０を記憶し、さらに、ストレージ装置４００全体を制御するための制御プログラム及び制御情報が記憶される。
【００７６】
ＳＬＣパッケージ４０８は、例えば、複数のメモリモジュール、コネクタ、スロット及び制御部を含む。メモリモジュールは、プリント基板に複数のＳＬＣフラッシュメモリチップが搭載されたＳＬＣフラッシュメモリモジュール１０２であって、データが格納される記憶媒体である。なお、ＳＬＣフラッシュメモリモジュール１０２は、第１の実施の形態におけるＳＳＤに含まれるＳＬＣフラッシュメモリモジュール１０２と同じである。
【００７７】
コネクタは、ストレージコントローラ４０３に接続するためのインターフェースである。スロットは、ＳＬＣパッケージ４０８にメモリモジュールを接続するためのインターフェースである。制御部は、フラッシュメモリチップにアクセスするための制御を行う。
【００７８】
ＭＬＣパッケージ４０９は、メモリモジュールに搭載されるフラッシュメモリの種類がＭＬＣであることを除き、ＳＬＣパッケージ４０８と同じ構成である。また、メモリモジュールは、第１の実施の形態におけるＳＳＤに含まれるＭＬＣフラッシュメモリモジュール１０３と同じである。
【００７９】
さらに、ストレージ装置４００は、ＳＬＣパッケージ４０８及びＭＬＣパッケージ４０９の両方、又はいずれか一方を追加するための１つ以上の追加用パッケージスロット４１０を備える。
【００８０】
ＳＬＣパッケージ４０８又はＭＬＣパッケージ４０９がストレージ装置４００に追加された場合には、メインメモリ４０７に記憶されているブロック管理情報２５０がプロセッサ４０５によって更新される。具体的な更新内容については、図８にて説明する。
【００８１】
図８は、本発明の第２の実施の形態のブロック管理情報２５０の一例を示す図である。
【００８２】
ブロック管理情報２５０は、ブロック変換テーブル２０１、ＳＬＣ代替ブロックリスト２０５、ＭＬＣ代替ブロックリスト２０６、ブロック情報テーブル２０７、代替ブロックカウンタ２１１、不良ブロックカウンタ２１３、マッピングテーブル２１４、及び閾値テーブル２３０を含む。
【００８３】
ブロック変換テーブル２０１、ＳＬＣ代替ブロックリスト２０５、ＭＬＣ代替ブロックリスト２０６、ブロック情報テーブル２０７、代替ブロックカウンタ２１１、不良ブロックカウンタ２１３、及び閾値テーブル２３０の構成については、第１の実施の形態と同じである。
【００８４】
マッピングテーブル２１４は、ＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）２１５、Ｐｏｒｔ＃２１６、ＬＵＮ２１７、及びＬＤＥＶ＃２１８を含む。
【００８５】
ＷＷＮ２１５は、ホスト計算機４０１に接続されるインターフェースであるポート４０４を識別する番号である。ＷＷＮ２１５は、ホスト計算機４０１によって一意に識別される識別子である。Ｐｏｒｔ＃２１６は、ストレージ装置４００の内部でポート４０４を識別する番号である。
【００８６】
ＬＵＮ２１７は、ホスト計算機４０１が論理ボリュームを識別するための番号である。ＬＤＥＶ＃２１８は、ストレージ装置４００の内部で論理ボリュームを識別するための番号である。
【００８７】
前述したように、ＳＬＣパッケージ４０８又はＭＬＣパッケージ４０９がストレージ装置４００に追加された場合には、ブロック管理情報２５０が更新される。具体的には、ＳＬＣパッケージ４０８がストレージ装置４００に追加された場合には、追加されたＳＬＣパッケージ４０８のブロック１０４の物理ブロックアドレス２０３がＳＬＣ代替ブロックリスト２０５に追加される。さらに、追加されたブロックの数だけ代替ブロックカウンタ２１１の個数２１２が加算される。
【００８８】
同様に、ＭＬＣパッケージ４０９がストレージ装置４００に追加された場合には、追加されたＭＬＣパッケージ４０９のブロック１０４の物理ブロックアドレス２０３がＭＬＣ代替ブロックリスト２０６に追加される。さらに、追加されたブロックの数だけ代替ブロックカウンタ２１１の個数２１２が加算される。
【００８９】
図９は、本発明の第２の実施の形態の寿命ブロック代替処理の手順の一例を示すフローチャートである。
【００９０】
図３に示した本発明の第１の実施の形態の寿命ブロック代替処理との相違点は、処理を実行する主体が、第１の実施の形態におけるＳＳＤのプロセッサ１０５から、ストレージコントローラ４０３のプロセッサ４０５となっている点である。また、代替ブロックが閾値よりも少なくなった場合に表示されるメッセージが相違する。その他の処理については、第１の実施の形態と同様である。
【００９１】
ストレージコントローラ４０３のプロセッサ４０５は、第１の実施の形態と同様に、あるブロックが消去されると、代替ブロックカウンタ２１１を参照し、代替ブロックの個数２１２があらかじめ設定された閾値よりも大きいか否か判定する（ステップ３００）。閾値の設定については、第１の実施の形態と同様である。
【００９２】
ストレージコントローラ４０３のプロセッサ４０５は、代替ブロックの個数２１２があらかじめ設定された閾値よりも小さい場合には（ステップ３００の結果が「Ｎｏ」）、近いうちに代替ブロックを割り当てることができなくなるため、ＳＬＣパッケージ４０８又はＭＬＣパッケージ４０９の追加を促すメッセージを表示する。このとき、メモリモジュールの種類ごとに代替ブロック数をしきい値と比較する。
【００９３】
ストレージコントローラ４０３のプロセッサ４０５は、まず、代替ＳＬＣブロック数が閾値よりも小さいか否かを判定する（ステップ３３１）。代替ＳＬＣブロック数が閾値よりも小さい場合には（ステップ３３１の結果が「Ｙｅｓ」）、ＳＬＣパッケージ４０８の追加を促すメッセージを表示する（ステップ３３２）。
【００９４】
ストレージコントローラ４０３のプロセッサ４０５は、次に、代替ＭＬＣブロック数が閾値よりも小さいか否かを判定する（ステップ３３３）。代替ＭＬＣブロック数が閾値よりも小さい場合には（ステップ３３３の結果が「Ｙｅｓ」）、ＭＬＣパッケージ４０９の追加を促すメッセージを表示する（ステップ３３４）。
【００９５】
なお、ステップ３３１及びステップ３３３の処理で比較される閾値は、共通の値を利用してもよいし、メモリモジュールの種類ごとに設定してもよい。また、ステップ３３２及びステップ３３４の処理で表示されるメッセージは、例えば、管理サーバ４０２に出力される。
【００９６】
代替ブロック数が閾値以上の場合、又はメッセージの表示が終了した後に実行されるステップ３０１以降の処理については、図３に示した第１の実施の形態の同じ処理を実行する。
【００９７】
さらに、本発明の第２の実施の形態では、ストレージ装置として信頼性を高めるためにＲＡＩＤを構成することができる。
【００９８】
図１０は、本発明の第２の実施の形態のストレージ装置４００のフラッシュメモリパッケージで構成されたＲＡＩＤグループの一例を示す図である。
【００９９】
図１０には、３つのデータ（Ｄ）と１つのパリティ（Ｐ）が配置されたＲＡＩＤ４を構成する例が示されている。このとき、配置されるフラッシュメモリの種類は、ＳＬＣでもＭＬＣでもよく、混在してもよい。また、他のＲＡＩＤ構成、例えば、ＲＡＩＤ５を構成することも可能である。
【０１００】
また、図１０に示す構成では、データが格納されているフラッシュメモリパッケージにはＭＬＣパッケージ（４０９Ａ〜４０９Ｃ）が、パリティが格納されているフラッシュメモリパッケージにはＳＬＣパッケージ４０８Ａが利用されている。パリティは、各フラッシュメモリパッケージに格納されているデータが更新されるたびに更新されるため、長寿命のＳＬＣが利用されている。
【０１０１】
さらに、複数のＳＬＣパッケージ４０８又はＭＬＣパッケージ４０９でＲＡＩＤを構成する場合には、代替ブロックの割り当ては、冗長性を確保するために、ＲＡＩＤを構成している一つのＳＬＣパッケージ４０８又は一つのＭＬＣパッケージ４０９に、同一のＲＡＩＤ構成に含まれるデータ又はパリティを２つ以上含まないようにブロックを割り当てることが望ましい。
【０１０２】
また、別々のフラッシュメモリパッケージ上のブロックに同一のデータを格納することによって、ＲＡＩＤ１（ミラーリング）を構成することも可能である。この場合、別々のＳＬＣパッケージ４０８同士、ＭＬＣパッケージ４０９同士又はＳＬＣパッケージ４０８とＭＬＣパッケージ４０９とでＲＡＩＤ１を構成することができる。
【０１０３】
フラッシュメモリは、消去回数による寿命以外に、物理的な故障によって障害が発生し、ブロックに格納されたデータが読めなくなる場合が考えられる。障害が発生したブロックの代替処理を実行する場合には、故障したブロックからデータを読み出すことができないため、前述したブロック代替処理では正常に代替処理を実行することができない。
【０１０４】
本発明の第２の実施の形態では、データを冗長化してＲＡＩＤグループを構成することが可能であるため、ＲＡＩＤグループを構成するブロックに格納されたデータが物理的な故障などによってデータを読み出せなくなった場合でも、ＲＡＩＤグループを構成する他のデータ及びパリティに基づいて故障したブロックに格納されたデータを復元するコレクションコピーを実行することが可能である。
【０１０５】
コレクションコピーによる代替処理は、ステップ３１１及びステップ３１３の処理において、故障したブロックのデータをコレクションコピーによって復元し、代替ブロックに格納すればよい。コレクションコピーによる代替処理において代替ブロックの種類を選択する処理には、故障したブロックの故障前までの書き換え頻度などのパラメータを把握する必要があるため、代替ブロックの種類を判定するための閾値には一定期間における書き換え頻度を用いるとよい。
【０１０６】
本発明の第２の実施の形態によれば、第１の実施の形態と同様の効果に加え、データを冗長化して格納することによって、物理的な故障などによる障害からデータを復旧させることができる。
【０１０７】
（第３の実施の形態）
本発明の第２の実施の形態では、フラッシュメモリパッケージを備えたストレージ装置に対して本発明を適用したが、第３の実施の形態では、フラッシュメモリパッケージの代わりにＳＳＤを搭載したストレージ装置に本発明を適用する。第３の実施の形態では、ストレージコントローラによってＳＳＤを制御する。
【０１０８】
以下、第３の実施の形態について、図１１から図１４を参照しながら説明する。なお、第３の実施の形態において、第１の実施の形態又は第２の実施の形態と共通する内容については適宜説明を省略する。
【０１０９】
図１１は、本発明の第３の実施の形態の計算機システムの構成の一例を示すブロック図である。
【０１１０】
本発明の第３の実施の形態の計算機システムには、第２の実施の形態と同様に、ストレージ装置４００、ホスト計算機４０１及び管理サーバ４０２が含まれる。第３の実施の形態は、第２の実施の形態とはストレージ装置４００の構成が相違する。
【０１１１】
ストレージ装置４００は、ストレージコントローラ４０３及び複数のＳＳＤを備える。ストレージコントローラ４０３は、ストレージ装置４００全体を制御する。複数のＳＳＤには、ＳＬＣで構成されたＳＳＤ（以下、「ＳＳＤ（Ｓ）」とする）１０７とＭＬＣで構成されたＳＳＤ（以下、「ＳＳＤ（Ｍ）」とする）１０８とが含まれる。ＳＳＤ（Ｓ）１０７及びＳＳＤ（Ｍ）１０８には、ストレージコントローラ４０３が接続される。
【０１１２】
ストレージコントローラ４０３は、第２の実施の形態と同様に、ポート４０４、プロセッサ４０５、キャッシュメモリ４０６及びメインメモリ４０７を含む。ポート４０４、プロセッサ４０５、キャッシュメモリ４０６及びメインメモリ４０７は、内部ネットワーク４３０によって相互に接続される。メインメモリ４０７には、第２の実施の形態のブロック管理情報２５０の代わりに、ＳＳＤの管理情報であるＳＳＤ管理情報２７０が記憶される。
【０１１３】
ＳＳＤ（Ｓ）１０７は、ＳＳＤコントローラ１０１及びＳＬＣフラッシュメモリモジュール１０２を含む。ＳＳＤコントローラ１０１は、図１に示したＳＳＤ１００に含まれるＳＳＤコントローラ１０１と同じ構成である。ＳＳＤ（Ｍ）１０８は、ＳＬＣフラッシュメモリモジュール１０２の代わりにＭＬＣフラッシュメモリモジュール１０３を含む。
【０１１４】
さらに、ストレージ装置４００には、ＳＳＤ（Ｓ）１０７及びＳＳＤ（Ｍ）１０８を追加するための１つ以上の追加用ＳＳＤスロット４１１を備える。
【０１１５】
図１２は、本発明の第３の実施の形態のＳＳＤ管理情報２７０の一例を示す図である。
【０１１６】
ＳＳＤ管理情報２７０は、ＳＳＤ変換テーブル２２０、代替ＳＳＤ（Ｓ）リスト２２２、代替ＳＳＤ（Ｍ）リスト２２３、ＳＳＤ情報テーブル２２４、代替ＳＳＤカウンタ２２６、不良ＳＳＤカウンタ２２７、マッピングテーブル２１４及び閾値テーブル２３０を含む。
【０１１７】
ＳＳＤ変換テーブル２２０は、論理ブロックアドレス２０２及びＳＳＤ内論理ブロックアドレス２１９を含む。論理ブロックアドレス２０２は、論理的なアドレス空間におけるブロックの位置を示す。ＳＳＤ内論理ブロックアドレス２１９は、論理ブロックアドレス２０２に割り当てられたＳＳＤの論理的なアドレス空間におけるブロックのアドレスを示す。
【０１１８】
ストレージ装置４００は、当該ストレージ装置４００に備えられるＳＳＤの物理的なブロックのアドレスを認識することはできないが、ＳＳＤ内部の論理的なブロックのアドレスを保持し、ＳＳＤ変換テーブル２２０で論理ブロックアドレス２０２とＳＳＤ内論理ブロックアドレス２１９とを対応させる。ＳＳＤ内論理ブロックアドレス２１９とＳＳＤの物理的なブロックアドレスはＳＳＤの内部（ＳＳＤコントローラ１０１）で対応させる。
【０１１９】
代替ＳＳＤ（Ｓ）リスト２２２は、ストレージ装置４００に備えられるＳＳＤのうち、記憶領域が割り当てられておらず、かつ、割り当て可能な状態にあるＳＳＤ（Ｓ）１０７の一覧である。ＳＳＤ番号２２１とは、ストレージ装置４００に接続されるＳＳＤを一意に識別する番号である。
【０１２０】
代替ＳＳＤ（Ｍ）リスト２２３は、ストレージ装置４００に備えられるＳＳＤのうち、記憶領域が割り当てられておらず、かつ、割り当て可能な状態にあるＳＳＤ（Ｍ）１０８の一覧である。
【０１２１】
ＳＳＤ情報テーブル２２４は、ストレージ装置４００に備えられるＳＳＤごとに、書き換え頻度などの情報を管理するテーブルである。ＳＳＤ情報テーブル２２４は、ＳＳＤ番号２２１、ＳＬＣ／ＭＬＣ  ＩＤ２０４、書き換え頻度２０８、代替ブロック数２２５、及び寿命フラグ２１０を含む。
【０１２２】
ＳＳＤ番号２２１は、ストレージ装置４００に備えられるＳＳＤを識別する番号である。ＳＬＣ／ＭＬＣ  ＩＤ２０４は、対応するＳＳＤに含まれるメモリモジュールの種類がＳＬＣかＭＬＣかを識別する情報である。
【０１２３】
書き換え頻度２０８は、対応するＳＳＤが寿命ＳＳＤとなった場合に、代替として割り当てられる代替ブロックの種類をＳＳＤ（Ｓ）とＳＳＤ（Ｍ）のいずれにするかを判定する指標である。
【０１２４】
代替ブロック数２２５は、対応するＳＳＤに含まれるメモリモジュールの代替ブロックの数である。寿命フラグ２１０は、対応するＳＳＤが寿命ＳＳＤであるか否かを示す情報である。寿命フラグ２１０に“１”が設定されたＳＳＤが寿命ＳＳＤとなる。
【０１２５】
マッピングテーブル２１４は、第２の実施の形態と同じである。
【０１２６】
代替ＳＳＤカウンタ２２６は、代替ＳＳＤの残数を、ＳＳＤ（Ｓ）１０７とＳＳＤ（Ｍ）１０８ごとに管理するカウンタである。本発明の第２の実施の形態では、ＳＳＤ単位で代替するため、ストレージ装置４００は代替可能なＳＳＤの残数を取得できればよい。
【０１２７】
不良ＳＳＤカウンタ２２７は、寿命又は物理的な故障によって使用できないＳＳＤを管理するカウンタである。
【０１２８】
閾値テーブル２３０は、第１の実施の形態及び第２の実施の形態と同じ構成であるが、ストレージコントローラ４０３によってＳＳＤが管理されるため、設定される閾値が相違する。
【０１２９】
ストレージ装置４００にＳＳＤが追加された場合には、ＳＳＤ管理情報２７０の対応する情報が更新される。具体的には、ＳＳＤ（Ｓ）１０７がストレージ装置４００に追加された場合には、追加されたＳＳＤ（Ｓ）１０７のＳＳＤ番号２２１が代替ＳＳＤ（Ｓ）リスト２２２に追加される。さらに、追加されたＳＳＤ（Ｓ）１０７の数だけ代替ＳＳＤカウンタ２２６の該当するＳＬＣ／ＭＬＣ  ＩＤ２０４に対応する個数２１２を増加させる。同様に、ＳＳＤ（Ｍ）１０８がストレージ装置４００に追加された場合は、追加されたＳＳＤ（Ｍ）１０８のＳＳＤ番号２２１が代替ＳＳＤ（Ｍ）リスト２２２に追加され、追加されたＳＳＤ（Ｍ）１０８の数だけ代替ＳＳＤカウンタ２２６の該当するＳＬＣ／ＭＬＣ  ＩＤ２０４に対応する個数２１２を増加させる。
【０１３０】
図１３は、本発明の第３の実施の形態における寿命ＳＳＤの代替処理の手順の一例を示すフローチャートである。
【０１３１】
図１３では、ＳＳＤ内部における代替ブロック割り当て処理を契機として実行される場合を示しているが、定期的に本処理を実行するようにしてもよい。
【０１３２】
ストレージコントローラ４０３のプロセッサ４０５は、代替ＳＳＤカウンタ２２６を参照し、代替ＳＳＤの個数２１２が、あらかじめ設定された閾値以上か否かを判定する（ステップ３５０）。ここでは、代替ＳＳＤ（Ｓ）１０７と代替ＳＳＤ（Ｍ）１０８の両方が残っていることを含む閾値とすることが望ましい。また、閾値はあらかじめ設定されている必要があるが、設定された閾値をシステムの状態に基づいて変更してもよい。
【０１３３】
ストレージコントローラ４０３のプロセッサ４０５は、代替ＳＳＤの個数２１２があらかじめ設定された閾値よりも小さい場合には（ステップ３５０の結果が「Ｎｏ」）、近いうちに代替ＳＳＤを割り当てることができなくなるため、ＳＳＤ（Ｓ）１０７又はＳＳＤ（Ｍ）１０８の追加を促すメッセージを表示する。
【０１３４】
ストレージコントローラ４０３のプロセッサ４０５は、まず、ＳＳＤ（Ｓ）１０７の代替ＳＳＤの数が閾値よりも小さいか否かを判定する（ステップ３５１）。ＳＳＤ（Ｓ）１０７の代替ＳＳＤの数が閾値よりも小さい場合には（ステップ３５１の結果が「Ｙｅｓ」）、ＳＳＤ（Ｓ）１０７の追加を促すメッセージを表示する（ステップ３５２）。
【０１３５】
ストレージコントローラ４０３のプロセッサ４０５は、次に、ＳＳＤ（Ｍ）１０８の代替ＳＳＤの数が閾値よりも小さいか否かを判定する（ステップ３５３）。ＳＳＤ（Ｍ）１０８の代替ＳＳＤの数が閾値よりも小さい場合には（ステップ３５３の結果が「Ｙｅｓ」）、ＳＳＤ（Ｍ）１０８の追加を促すメッセージを表示する（ステップ３５４）。
【０１３６】
なお、ステップ３５１及びステップ３５３の処理で比較される閾値は、共通の値を利用してもよいし、ＳＳＤに搭載されたメモリモジュールの種類ごとに設定してもよい。
【０１３７】
ストレージコントローラ４０３のプロセッサ４０５は、代替ＳＳＤが閾値以上の場合（ステップ３５０の結果が「Ｙｅｓ」）、又はメッセージの表示が終了すると、寿命ＳＳＤか否かを判定する。
【０１３８】
ストレージコントローラ４０３のプロセッサ４０５は、ＳＳＤ情報テーブル２２４の代替ブロック数２２５を参照し（ステップ３５５）、処理対象のＳＳＤが寿命ＳＳＤであるか否かを判定するために、代替ブロック数２２５が閾値以上であるか否かを判定する（ステップ３５６）。第３の実施の形態では、ＳＳＤが寿命であるか否かを判定するために、ＳＳＤ情報テーブル２２４から取得可能な代替ブロック数２２５を利用しているが、例えば、ＳＳＤから消去回数などの寿命に影響する情報を別に取得可能な場合には、この取得可能な情報を寿命ＳＳＤか否かの判定に利用してもよい。
【０１３９】
ストレージコントローラ４０３のプロセッサ４０５は、代替ブロック数２２５が閾値よりも小さい場合には（ステップ３５６の結果が「Ｎｏ」）、ＳＳＤ代替処理を終了する。
【０１４０】
一方、ストレージコントローラ４０３のプロセッサ４０５は、代替ブロック数２２５が閾値以上の場合には（ステップ３５６の結果が「Ｙｅｓ」）、ＳＳＤ情報テーブル２２４の寿命フラグ２１０を“１”（ＯＮ）に設定する（ステップ３５７）。さらに、代替ＳＳＤを割り当てる処理（ＳＳＤ代替処理）を実行する（ステップ３５８）。ＳＳＤ代替処理の詳細については、図１４にて後述する。
【０１４１】
ストレージコントローラ４０３のプロセッサ４０５は、代替ＳＳＤの割り当てが完了すると、代替ＳＳＤ（Ｓ）リスト２２２又は代替ＳＳＤ（Ｍ）リスト２２３から、代替されたＳＳＤのＳＳＤ番号２２１を削除し、代替ＳＳＤカウンタを１減らす（ステップ３５９）。
【０１４２】
ストレージコントローラ４０３のプロセッサ４０５は、さらに、寿命ＳＳＤに該当するＳＬＣ／ＭＬＣ  ＩＤ２０４に対応する不良ＳＳＤカウンタ２２７の個数２１２を１増やす（ステップ３６０）。
【０１４３】
図１４は、本発明の第３の実施の形態のＳＳＤ代替処理の手順の一例を示すフローチャートである。
【０１４４】
ストレージコントローラ４０３のプロセッサ４０５は、寿命ＳＳＤのＳＳＤ情報テーブル２２４の書き換え頻度２０８を参照し（ステップ３７０）、書き換え頻度２０８が閾値以上であるか否かを判定する（ステップ３７１）。
【０１４５】
ストレージコントローラ４０３のプロセッサ４０５は、寿命ＳＳＤの書き換え頻度２０８が閾値以上の場合には（ステップ３７１の結果が「Ｙｅｓ」）、代替ＳＳＤとしてＳＳＤ（Ｓ）１０７を割り当てるため、寿命ＳＳＤに格納されたデータを代替ＳＳＤ（Ｓ）１０７にコピーする（ステップ３７２）。
【０１４６】
さらに、ストレージコントローラ４０３のプロセッサ４０５は、ＳＳＤ変換テーブル２２０の寿命ＳＳＤに対応するＳＳＤ番号２２１を、代替ＳＳＤ（Ｓ）１０７のＳＳＤ番号２２１に変更する（ステップ３７３）。
【０１４７】
一方、ストレージコントローラ４０３のプロセッサ４０５は、寿命ＳＳＤの書き換え頻度２０８よりも小さい場合には（ステップ３７１の結果が「Ｎｏ」）、代替ＳＳＤとしてＳＳＤ（Ｍ）１０８を割り当てるため、寿命ＳＳＤに格納されたデータを代替ＳＳＤ（Ｍ）１０８にコピーする（ステップ３７４）。
【０１４８】
さらに、ストレージコントローラ４０３のプロセッサ４０５は、ＳＳＤ変換テーブル２２０の寿命ＳＳＤに対応するＳＳＤ番号２２１を、代替ＳＳＤ（Ｍ）１０８のＳＳＤ番号２２１に変更する（ステップ３７５）。
【０１４９】
以上の処理では、すべてのＳＳＤに対して代替ブロック数２２５を閾値と比較するが（ステップ３５６）、ＳＳＤ内部における代替ブロック割り当て処理を契機として実行されるため、実行されるたびにすべてのＳＳＤに処理を実行する必要はない。例えば、代替ブロック割り当て処理が実行されたＳＳＤについて、代替ブロック数２２５が閾値を下回った時点で本処理を実行するようにしてもよい。
【０１５０】
また、第３の実施の形態では、第２の実施の形態と同様に、ストレージ装置として信頼性を高めるためにＲＡＩＤグループを構成することが可能である。例えば、異なるＳＳＤのブロックにデータ（Ｄ）とデータに対応するパリティ（Ｐ）を配置することで、ＲＡＩＤ４又はＲＡＩＤ５などを構成することも可能である。このとき、データとパリティが配置されるＳＳＤの種類はＳＬＣ又はＭＬＣに限定してもよいし、混在させてもよい。別々のＳＳＤに同一のデータを格納することによって、ＲＡＩＤ１を構成することも可能である。例えば、別々のＳＳＤ（Ｓ）１０７同士、ＳＳＤ（Ｍ）１０８同士、又はＳＳＤ（Ｓ）１０７とＳＳＤ（Ｍ）１０８をペアとしてＲＡＩＤ１を構成してもよい。また、第３の実施の形態においてもＲＡＩＤグループを構成することによって、第２の実施の形態で説明したコレクションコピーによる代替処理を実行することが可能となる。
【０１５１】
第３の実施の形態におけるＲＡＩＤグループ構成時の代替ＳＳＤの選択方法としては、例えば、未使用のＳＳＤを選択してもよいし、別のＲＡＩＤグループが構成されているＳＳＤを選択してもよい。また、ＲＡＩＤグループごとに予備のＳＳＤを備えるように構成し、予備のＳＳＤを代替ＳＳＤとして選択してもよい。さらに、複数のＲＡＩＤグループごとに予備のＳＳＤを備えるように構成し、当該複数のＲＡＩＤグループに含まれるＲＡＩＤグループでＳＳＤを代替する必要があった場合に予備のＳＳＤを代替ＳＳＤとして選択するようにしてもよい。
【０１５２】
第３の実施の形態では、ＳＬＣを用いたＳＳＤ及びＭＬＣを用いたＳＳＤが混在している形態について説明しているが、ＳＬＣとＭＬＣが混在したＳＳＤが用いられている場合であっても、ＳＬＣで構成されたＳＳＤ又はＭＬＣで構成されたＳＳＤを追加することで同じ代替処理を用いることが可能である。
【０１５３】
また、ストレージ装置がＳＳＤとフラッシュメモリパッケージを混在して管理する形態の場合でも、ストレージ装置がフラッシュメモリパッケージの追加スロットとＳＳＤ追加スロットを備えていれば、ＳＳＤを代替する場合には第３の実施の形態を適用し、フラッシュメモリパッケージを代替する場合には第２の実施の形態を適用すればよい。
【０１５４】
本発明の第３の実施の形態によれば、書き換え頻度などのフラッシュメモリの寿命に影響するパラメータに基づいて、代替ＳＳＤの種類を選択することができる。具体的には、書き換え頻度の大きいＳＳＤの代替ＳＳＤの種類をＳＬＣとすることによって、ストレージ装置の長寿命化を図ることができる。さらに、書き換え頻度の小さいＳＳＤの代替ＳＳＤの種類をＭＬＣとすることによって、ビットコストを低減させることができる。
【０１５５】
（第４の実施の形態）
本発明の第１から第３の実施の形態では、ブロックの消去が発生した場合には、当該ブロックが寿命となるまで、代替せずに処理を継続していたが、第４の実施の形態では、ブロックの消去が発生するたびに代替ブロックを選択して割り当てるように制御する。消去されたブロックは、寿命ブロックとならない限り、代替ブロックとして再利用される。
【０１５６】
また、本発明の第４の実施の形態は、第１から第３の実施の形態にさらに適用することが可能である。以下、第１の実施の形態のＳＳＤ１００に対して第４の実施の形態を適用する例について図１５を参照しながら説明する。
【０１５７】
図１５は、本発明の第４の実施の形態の消去ブロック代替処理の手順の一例を示すフローチャートである。
【０１５８】
ＳＳＤコントローラ１０１のプロセッサ１０５は、書き込み要求を受け付けると、書き込みデータ格納先ブロックを消去する必要があるか否かを判定する（ステップ３８１）。消去する必要がない場合には（ステップ３８１の結果が「Ｎｏ」）、消去ブロック代替処理を終了し、書き込み処理を継続する。
【０１５９】
ＳＳＤコントローラ１０１のプロセッサ１０５は、書き込みデータ格納先ブロックを消去する必要がある場合には（ステップ３８１の結果が「Ｙｅｓ」）、図４のステップ３０４に示したブロック代替処理を実行する。
【０１６０】
第４の実施の形態では、前述のように、ブロックを消去するたびに代替ブロックに格納先を移動させ、消去されたブロックは代替ブロックとして再利用する。このとき、代替ブロックごとに消去回数が記録される。そこで、代替ブロックの種類を選択した後、消去回数の少ない代替ブロックを優先的に割り当てるようにしてもよい。消去回数の少ない代替ブロックを優先的に割り当てることによって、ブロックごとの消去回数が平準化され、ＳＳＤ１００の長寿命化を図ることができる。なお、代替ブロックの種類を判定する指標として、一定期間における消去回数を取得することができないため、前回の消去からの経過時間を利用するとよい。
【０１６１】
ＳＳＤコントローラ１０１のプロセッサ１０５は、ＳＬＣ代替ブロックリスト２０５又はＭＬＣ代替ブロックリスト２０６から代替されたブロックの物理ブロックアドレス２０３を削除する（ステップ３８２）。
【０１６２】
ＳＳＤコントローラ１０１のプロセッサ１０５は、ブロック情報テーブル２０７を参照し、消去されたブロックの消去回数カウンタ２０９の値が閾値以上であるか否かを判定する（ステップ３８３）。
【０１６３】
ＳＳＤコントローラ１０１のプロセッサ１０５は、消去されたブロックの消去回数カウンタ２０９の値が閾値以上である場合には（ステップ３８３の結果が「Ｙｅｓ」）、消去されたブロックが寿命ブロックであると判定することができる。さらに、代替ブロックカウンタの該当する個数２１２を１減らし、不良ブロックカウンタの該当する個数２１２を１増やす（ステップ３８４）。
【０１６４】
ＳＳＤコントローラ１０１のプロセッサ１０５は、消去されたブロックの消去回数カウンタ２０９の値が閾値を超えていない場合には（ステップ３８３の結果が「Ｎｏ」）、消去されたブロックを代替ブロックとして再利用できるため、ＳＬＣ代替ブロックリスト２０５又はＭＬＣ代替ブロックリスト２０６に消去されたブロックの物理アドレスを登録する（ステップ３８５）。
【０１６５】
本発明の第１から第３の実施の形態におけるブロックの代替処理では、ブロックが寿命となった時点でブロックを代替していたが、第４の実施の形態ではブロック代替処理がブロックを消去するたびに実行する。
【０１６６】
したがって、本発明の第４の実施の形態によれば、ブロックの代替処理をきめ細かく実行することができるため、ＳＳＤ又はストレージ装置のさらなる長寿命化を図ることができる。
【図面の簡単な説明】
【０１６７】
【図１】本発明の第１の実施の形態のフラッシュメモリを用いた記憶装置であるＳＳＤの一例を示すブロック図である。
【図２】本発明の第１の実施の形態のブロック管理情報の一例を示す図である。
【図３】本発明の第１の実施の形態の書き込み処理の手順の一例を示すフローチャートである。
【図４】本発明の第１の実施の形態の寿命ブロック代替処理の手順の一例を示すフローチャートである。
【図５】本発明の第１の実施の形態のブロック代替処理の手順の一例を示すフローチャートである。
【図６】本発明の第１の実施の形態の代替ブロックを選択するパターンを説明する図である。
【図７】本発明の第２の実施の形態の計算機システムの構成の一例を示すブロック図である。
【図８】本発明の第２の実施の形態のブロック管理情報の一例を示す図である。
【図９】本発明の第２の実施の形態の寿命ブロック代替処理の手順の一例を示すフローチャートである。
【図１０】本発明の第２の実施の形態のストレージ装置のフラッシュメモリパッケージで構成されたＲＡＩＤグループの一例を示す図である。
【図１１】本発明の第３の実施の形態の計算機システムの構成の一例を示すブロック図である。
【図１２】本発明の第３の実施の形態のＳＳＤ管理情報の一例を示す図である。
【図１３】本発明の第３の実施の形態における寿命ＳＳＤの代替処理の手順の一例を示すフローチャートである。
【図１４】本発明の第３の実施の形態のＳＳＤ代替処理の手順の一例を示すフローチャートである。
【図１５】本発明の第４の実施の形態の消去ブロック代替処理の手順の一例を示すフローチャートである。
【符号の説明】
【０１６８】
１００    ＳＳＤ
１０１    ＳＳＤコントローラ
１０２    ＳＬＣフラッシュメモリモジュール
１０３    ＭＬＣフラッシュメモリモジュール
１０４    ブロック
１０５    プロセッサ
１０６    インターフェース
１０７    ＳＳＤ（Ｓ）
１０８    ＳＳＤ（Ｍ）
２００、２５０    ブロック管理情報
２０１    ブロック変換テーブル
２０２    論理ブロックアドレス
２０３    物理ブロックアドレス
２０４    ＳＬＣ／ＭＬＣ  ＩＤ
２０５    ＳＬＣ代替ブロックリスト
２０６    ＭＬＣ代替ブロックリスト
２０７    ブロック情報テーブル
２０８    書き換え頻度
２０９    消去回数カウンタ
２１０    寿命フラグ
２１１    代替ブロックカウンタ
２１２    個数
２１３    不良ブロックカウンタ
２１４    マッピングテーブル
２１５    ＷＷＮ
２１６    Ｐｏｒｔ＃
２１７    ＬＵＮ
２１８    ＬＤＥＶ＃
２１９    ＳＳＤ内論理ブロックアドレス
２２０    ＳＳＤ変換テーブル
２２１    ＳＳＤ番号
２２２    代替ＳＳＤ（Ｓ）リスト
２２３    代替ＳＳＤ（Ｍ）リスト
２２４    ＳＳＤ情報テーブル
２２５    代替ブロック数
２２６    代替ＳＳＤカウンタ
２２７    不良ＳＳＤカウンタ
２３０    閾値テーブル
２３１    種別
２３２    閾値
２７０    ＳＳＤ管理情報
４００    ストレージ装置
４０１    ホスト計算機
４０２    管理サーバ
４０３    ストレージコントローラ
４０４    ポート
４０５    プロセッサ
４０６    キャッシュメモリ
４０７    メインメモリ
４０８    ＳＬＣパッケージ
４０９    ＭＬＣパッケージ
４１０    追加用パッケージスロット
４１１    追加用ＳＳＤスロット
４３０    内部ネットワーク
【図１】
2010108246.tif 000003
【図２】
2010108246.tif 000004
【図３】
2010108246.tif 000005
【図４】
2010108246.tif 000006
【図５】
2010108246.tif 000007
【図６】
2010108246.tif 000008
【図７】
2010108246.tif 000009
【図８】
2010108246.tif 000010
【図９】
2010108246.tif 000011
【図１０】
2010108246.tif 000012
【図１１】
2010108246.tif 000013
【図１２】
2010108246.tif 000014
【図１３】
2010108246.tif 000015
【図１４】
2010108246.tif 000016
【図１５】
2010108246.tif 000017