(57)【特許請求の範囲】
【請求項１】
ブロック単位で消去可能な不揮発性メモリを情報記憶媒体とする蓄積部と、
前記不揮発性メモリにおけるブロック全ての書き込み回数をそれぞれカウントして管理する書き込み回数管理手段と、前記不揮発性メモリにおけるブロックを使用中／未使用で分類し、前記使用中のブロックを使用中リストで管理し、前記未使用のブロックのうち前記書き込み回数が最大値と同値であるブロックを第１の未使用リストで管理し、前記未使用のブロックのうち前記書き込み回数が前記最大値未満であるブロックを第２の未使用リストで管理するリスト管理手段とを有する管理部と、
前記蓄積部に対して情報データの書き込み・消去を行うもので、前記情報データの書き込み時には、前記第２の未使用リストで管理されるブロックのいずれかを選択的に指定してそのブロックに前記情報データを書き込み、前記情報データの消去時には、当該情報データを前記ブロックから消去するとともに消去したブロックを前記リスト管理手段へ通知して前記ブロックの管理を更新させる制御部と
を具備し、
前記リスト管理手段は、前記制御部によって前記第２の未使用リストで管理されるブロックのいずれかが書き込みブロックとして指定されたとき、前記指定の書き込みブロックを前記第２の未使用リストから外して前記使用中リストの管理に移行させ、前記書き込み回数管理手段は、前記指定の書き込みブロックの書き込み回数をカウントアップすることを特徴とする半導体メモリ情報蓄積装置。
【請求項２】
前記リスト管理手段は、前記制御部から前記情報データを消去したブロックの通知があったとき、当該ブロックを前記使用中リストから外した後、当該ブロックの書き込み回数と前記最大値とを比較し、前記書き込み回数が前記最大値未満の場合、前記情報データが消去されたブロックを前記第２の未使用リストで管理し、前記書き込み回数が前記最大値と同値の場合、前記情報データが消去されたブロックを前記第１の未使用リストで管理し、前記書き込み回数が前記最大値より大きい場合、前記第１の未使用リストで管理されるブロックを前記第２の未使用リストの管理に移行させて前記情報データが消去されたブロックを前記第１の未使用リストで管理することを特徴とする請求項１に記載の半導体メモリ情報蓄積装置。
【請求項３】
前記リスト管理手段は、前記未使用のブロックが前記第１の未使用リストのみで管理されるようになった場合、当該第１の未使用リストで管理されるブロックを前記第２の未使用リストの管理に移行させることを特徴とする請求項１に記載の半導体メモリ情報蓄積装置。
【請求項４】
前記書き込み回数管理手段は、前記不揮発性メモリにおけるブロックの使用／未使用分類結果を記録し、
前記リスト管理手段は、起動時に、前記書き込み回数管理手段で記録される全てのブロックの書き込み回数と前記使用／未使用分類結果とを参照することにより、使用中のブロックを前記使用中リストで管理し、未使用のブロックのうち前記書き込み回数が最大値と同値であるブロックを前記第１の未使用リストで管理し、前記未使用のブロックのうち前記書き込み回数が前記最大値未満であるブロックを前記第２の未使用リストで管理することを特徴とする請求項１に記載の半導体メモリ情報蓄積装置。
【請求項５】
ブロック単位で消去可能な不揮発性メモリを情報記憶媒体とし、
前記不揮発性メモリにおけるブロック全ての書き込み回数をそれぞれカウントして管理し、
前記不揮発性メモリにおけるブロックを使用中／未使用で分類し、
前記使用中のブロックを使用中リストで管理し、
前記未使用のブロックのうち前記書き込み回数が最大値と同値であるブロックを第１の未使用リストで管理し、
前記未使用のブロックのうち前記書き込み回数が前記最大値未満であるブロックを第２の未使用リストで管理し、
前記不揮発性メモリにおけるブロックへ前記情報データを書き込む時には、前記第２の未使用リストを参照して当該第２の未使用リストで管理されるブロックのいずれかを選択的に指定して前記情報データを書き込み、
前記情報データを消去する時には、当該情報データを前記ブロックから消去するとともに消去したブロックの前記各リストにおける管理を更新し、
前記第２の未使用リストで管理されるブロックのいずれかが書き込みブロックとして指定された時、前記指定の書き込みブロックを前記第２の未使用リストから外して前記使用中リストの管理に移行し、前記指定の書き込みブロックの書き込み回数をカウントアップすることを特徴とする書き込み制御方法。
【請求項６】
前記情報データを消去したブロックの通知があったとき、当該ブロックを前記使用中リストから外した後、当該ブロックの書き込み回数と前記最大値とを比較し、前記書き込み回数が前記最大値未満の場合、前記情報データが消去されたブロックを前記第２の未使用リストで管理し、前記書き込み回数が前記最大値と同値の場合、前記情報データが消去されたブロックを前記第１の未使用リストで管理し、前記書き込み回数が前記最大値より大きい場合、前記第１の未使用リストで管理されるブロックを前記第２の未使用リストの管理に移行させて前記情報データが消去されたブロックを前記第１の未使用リストで管理することを特徴とする請求項５に記載の書き込み制御方法。
【請求項７】
前記未使用のブロックが前記第１の未使用リストのみで管理されるようになった場合、当該第１の未使用リストで管理されるブロックを前記第２の未使用リストの管理に移行させることを特徴とする請求項５に記載の書き込み制御方法。
【請求項８】
前記不揮発性メモリにおけるブロックの使用／未使用分類結果を記録し、
起動時に、記録されている全てのブロックの書き込み回数と前記使用／未使用分類結果とを参照することにより、使用中のブロックを前記使用中リストで管理し、未使用のブロックのうち前記書き込み回数が最大値と同値であるブロックを前記第１の未使用リストで管理し、前記未使用のブロックのうち前記書き込み回数が前記最大値未満であるブロックを前記第２の未使用リストで管理することを特徴とする請求項５に記載の書き込み制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリに素材データ等の情報を蓄積する半導体メモリ情報蓄積装置に係り、特に半導体メモリの書き込み制御方法に関する。
【背景技術】
【０００２】
素材データを蓄積する情報蓄積装置には、その記憶媒体として、ブロック単位でデータの書き込み・読み出しが可能な半導体メモリを利用するものがある。但し、この半導体メモリは、稼働部分がないため信頼性は高いという利点を有する反面、ハードディスクなどに比べると書き込み可能回数が少ない。特に、特定のブロックばかり使用すると、そのブロックが書き込み不能な不良部位（後天性バックドロップと呼ばれる）となってしまう。そこで、従来の半導体メモリ情報蓄積装置では、半導体メモリに素材データを書き込む度にブロック毎に書き込み回数をカウントしておき、書き込みの際に各ブロックの書き込み回数を読み出し、書き込み回数が少ない未使用ブロックから順に素材データを書き込むようにしている（例えば、特許文献１参照。）。
【０００３】
しかしながら、近年、半導体メモリの容量は大型化しており、特許文献１のように、データを書き込む度に全てのブロックの書き込み回数を読み出した後、書き込み回数の少ない未使用ブロックを選出する方法はもはや効率的な手法ではなくなってきており、素材データの書き込み動作中に、リアルタイムで、かつ、各ブロックの書き込み回数が均一になるよう未使用ブロックを選出することが要望されている。
【特許文献１】特開平１１−１４４４７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
以上のように、従来の半導体メモリ情報蓄積装置では、素材データの書き込み動作中に、リアルタイムで、かつ、各ブロックの書き込み回数が均一になるよう未使用ブロックを選出することは困難であった。
【０００５】
本発明は上記事情によりなされたもので、その目的は、素材データの書き込み動作中に、リアルタイムで未使用ブロックを選出でき、各ブロックの書き込み回数が均一とすることが可能な半導体メモリ情報蓄積装置と書き込み制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係る半導体メモリ情報蓄積装置は、ブロック単位で消去可能な不揮発性メモリを情報記憶媒体とする蓄積部と、前記不揮発性メモリにおけるブロック全ての書き込み回数をそれぞれカウントして管理する書き込み回数管理手段と、前記不揮発性メモリにおけるブロックを使用中／未使用で分類し、前記使用中のブロックを使用中リストで管理し、前記未使用のブロックのうち前記書き込み回数が最大値と同値であるブロックを第１の未使用リストで管理し、前記未使用のブロックのうち前記書き込み回数が前記最大値未満であるブロックを第２の未使用リストで管理するリスト管理手段とを有する管理部と、前記蓄積部に対して情報データの書き込み・消去を行うもので、前記情報データの書き込み時には、前記第２の未使用リストで管理されるブロックのいずれかを選択的に指定してそのブロックに前記情報データを書き込み、前記情報データの消去時には、当該情報データを前記ブロックから消去するとともに消去したブロックを前記リスト管理手段へ通知して前記ブロックの管理を更新させる制御部とを具備し、前記リスト管理手段は、前記制御部によって前記第２の未使用リストで管理されるブロックのいずれかが書き込みブロックとして指定されたとき、前記指定の書き込みブロックを前記第２の未使用リストから外して前記使用中リストの管理に移行させ、前記書き込み回数管理手段は、前記指定の書き込みブロックの書き込み回数をカウントアップする。
【０００７】
また、本発明に係る書き込み部位分散化方法は、ブロック単位で消去可能な不揮発性メモリを情報記憶媒体とし、前記不揮発性メモリにおけるブロック全ての書き込み回数をそれぞれカウントして管理し、前記不揮発性メモリにおけるブロックを使用中／未使用で分類し、前記使用中のブロックを使用中リストで管理し、前記未使用のブロックのうち前記書き込み回数が最大値と同値であるブロックを第１の未使用リストで管理し、前記未使用のブロックのうち前記書き込み回数が前記最大値未満であるブロックを第２の未使用リストで管理し、前記不揮発性メモリにおけるブロックへ前記情報データを書き込む時には、前記第２の未使用リストを参照して当該第２の未使用リストで管理されるブロックのいずれかを選択的に指定して前記情報データを書き込み、前記情報データを消去する時には、当該情報データを前記ブロックから消去するとともに消去したブロックの前記各リストにおける管理を更新し、前記第２の未使用リストで管理されるブロックのいずれかが書き込みブロックとして指定された時、前記指定の書き込みブロックを前記第２の未使用リストから外して前記使用中リストの管理に移行し、前記指定の書き込みブロックの書き込み回数をカウントアップする。
【０００８】
上記構成による半導体メモリ情報蓄積装置及び書き込み制御方法では、蓄積部の不揮発性メモリにおけるブロックを、使用中／未使用及び各ブロックの書き込み回数に基づいて、使用中リストと、第１の未使用リストと、第２の未使用リストとで管理するようにしている。そして、書き込み時には、書き込み回数が少ない未使用ブロックが管理される第２の未使用リストからブロックを選出し、そのブロックに情報データを書き込む。また、消去時には、情報データが消去されたブロックをブロック管理部へ通知し、ブロックの管理を更新する。これにより、書き込み回数の少ないブロックが常に第２の未使用リストで管理される状況が実現できるため、この第２の未使用リストから書き込みブロックを指定することにより、書き込み回数の少ない未使用ブロックを効率的に選出することが可能となる。
【発明の効果】
【０００９】
この発明によれば、半導体メモリにおける書き込み回数の少ないブロックをリアルタイム、かつ効率的に、安定して検出することが可能な半導体メモリ情報蓄積装置と書き込み制御方法を提供することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら本発明の実施の形態について詳細に説明する。
【００１１】
図１は、本発明の第１の実施形態に係る半導体メモリ情報蓄積装置の機能構成を示すブロック図である。図１において、蓄積部１は、バッファ２に一時的に保存されている素材データを、書き込み／消去コントローラ３の書き込み制御により取り込み、半導体メモリ１１〜１３に書き込む。このとき、素材データが書き込まれる半導体メモリ１１〜１３における書き込みブロックは、書き込み／消去コントローラ３がブロック管理部４を参照して指定する。ブロック管理部４は、半導体メモリ１１〜１３のブロックの管理情報を管理情報保持部４１で保持し、その管理情報を補助コントローラ４２により制御することにより、ブロックを管理している。
【００１２】
また、蓄積部１は、書き込み／消去コントローラ３の消去制御により、半導体メモリ１１〜１３に蓄積されている素材データを消去する。このとき、書き込み／消去コントローラ３は、素材データを消去したブロックをブロック管理部４へ通知し、ブロックの管理を更新させる。
【００１３】
上記蓄積部１は、それぞれブロック単位で消去可能な複数（ここでは３個とする）の不揮発性半導体メモリ１１〜１３を並列に接続して構成される。それぞれの半導体メモリに同じ情報のデータを蓄積することにより、いずれかの半導体メモリで不良部位が発生した場合でも、残りの半導体メモリにデータが蓄積されるため、書き込みエラーが生じる可能性が低下する。
【００１４】
上記書き込み／消去コントローラ３は、蓄積部１に対して素材データの書き込み・消去を制御する機能を有する。書き込み制御の際には、書き込み回数の少ない未使用ブロックをブロック管理部４から選択的に指定し、この指定したブロックにバッファ２に一時保存されている素材データを書き込む。また、消去制御の際には、ブロックから素材データを消去し、素材データが消去されたブロックをブロック管理部４に通知し、ブロックの管理を更新させる。
【００１５】
上記ブロック管理部４は、半導体メモリ１１〜１３のブロックの管理情報を管理情報保持部４１で保持し、その管理情報を補助コントローラ４２で制御することにより、ブロックを管理する。管理情報保持部４１は、半導体メモリ１１〜１３のブロックの使用中／未使用分類結果及び書き込み回数を記録する記録部４１１と、使用中のブロックを管理するリスト管理部（以下、using-listと記す）４１２と、未使用のブロックのうち書き込み回数が最大使用回数と同値であるブロックを管理するリスト管理部（以下、free-high listと記す）４１３と、未使用のブロックのうち書き込み回数が最大使用回数未満であるブロックを管理するリスト管理部（以下、free-low listと記す）４１４とを有する。ここで、最大使用回数とは、未使用のブロックのうち書き込み回数が最大となるブロックの書き込み回数のことを指す。
【００１６】
補助コントローラ４２は、書き込み／消去コントローラ３によりfree-low list ４１４で登録されているブロックのいずれかから書き込みブロックが選択的に指定されると、そのブロックをfree-low list ４１４から外し、そのブロックの書き込み回数をカウントアップし、書き込み回数を記録部４１１に記録する。書き込み回数を記録するとブロックをusing-list ４１２に登録する。
【００１７】
また、補助コントローラ４２は、素材データが消去されたブロックの通知を書き込み／消去コントローラ３から受けると、そのブロックをusing-list ４１２から外し、未使用ブロックとする。そして、その未使用ブロックの書き込み回数と最大使用回数とを比較する。素材データが消去されたブロックの書き込み回数が最大使用回数未満である場合、そのブロックをfree-low list ４１４に登録し、素材データが消去されたブロックの書き込み回数が最大使用回数と同値である場合、そのブロックをfree-high list ４１３に登録する。素材データが消去されたブロックの書き込み回数が最大使用回数より大きい場合、free-high list ４１３に登録されている未使用ブロックを、free-low list ４１４に登録し、素材データが消去されたブロックをfree-high list ４１３に登録する。
【００１８】
また、補助コントローラ４２は、半導体メモリ情報蓄積装置の起動時に、記録部４１１で記録される各ブロックの使用中／未使用分類結果及び書き込み回数を参照し、使用中のブロックをusing-list ４１２に登録し、未使用のブロックのうち書き込み回数が最大使用回数と同値であるブロックをfree-high list ４１３に登録し、未使用のブロックのうち書き込み回数が最大使用回数未満であるブロックをfree-low list ４１４に登録する機能を有する。
【００１９】
さらに、補助コントローラ４２は、未使用のブロックが、free-low list ４１４に登録されておらず、free-high list ４１３のみに登録されている場合には、free-high list ４１３に登録されている全てのブロックをfree-low list ４１４に登録する。このときのブロックの登録の概念図を図２に示す。全てのブロックがusing-link ４１２に登録されている場合は、蓄積部１において未使用のブロックは存在していないとして、蓄積部１への蓄積が不可能である旨の信号を書き込み／消去コントローラ３へ発する。
【００２０】
次に、上記構成による半導体メモリ情報蓄積装置において、図３乃至図７を参照して、ブロック管理部４におけるブロックの管理を説明する。
【００２１】
図３は、本実施形態に係る蓄積部１へ素材データを書き込む際の補助コントローラ４２によるブロックの管理動作を示すフローチャートである。また、図４は、本実施形態に係る蓄積部１へ素材データを書き込む際のブロックの管理の概念図を示し、（ａ）は初期状態、（ｂ）は素材データの１回目の書き込みを示す。
【００２２】
初期状態では、半導体メモリ１１〜１３における未使用のブロックはすべてfree-low list ４１４に登録されている（図４（ａ））。補助コントローラ４２は、書き込み／消去コントローラ３から書き込みブロックの指定を受けると（ステップＳ１１）、指定されたブロックをfree-low list ４１４から外す（ステップＳ１２）。続いて、このブロックの書き込み回数をカウントアップし（ステップＳ１３）、記録部４１１に書き込み回数を記録する（ステップＳ１４）。書き込み回数を記録した後、このブロックをusing-list ４１２に登録して（ステップＳ１５）（図４（ｂ））、処理を終了する。
【００２３】
図５は、本実施形態に係る蓄積部１のブロックに蓄積されている素材データを消去する際の、補助コントローラ４２によるブロックの管理動作を示すフローチャートである。また、図６は、本実施形態に係る蓄積部１のブロックに蓄積されている素材データを消去する際のブロックの管理の概念図を示し、（ａ）は素材データ消去後のfree-high list ４１３への登録を示し、（ｂ）は素材データ消去後のfree-low list ４１４への登録を示す。
【００２４】
まず、補助コントローラ４２は、書き込み／消去コントローラ３から、蓄積されている素材データを消去されたブロックが通知されると（ステップＳ２１）、そのブロックの書き込み回数が最大使用回数より大きいか否かを判断する（ステップＳ２２）。書き込み回数が最大使用回数よりも大きい場合（ステップＳ２２のＹｅｓ）、最大使用回数を更新し（ステップＳ２３）、free-high list ４１３に登録されているブロック全てをfree-low list ４１４に登録する（ステップＳ２４）。その後、素材データを消去されたブロックをfree-high list ４１３に登録し（ステップＳ２５）、処理を終了する。
【００２５】
ステップＳ２２において、素材データを消去されたブロックの書き込み回数が最大使用回数以下である場合（ステップＳ２２のＮｏ）、その書き込み回数が最大使用回数と同値であるか否かを判断する（ステップＳ２６）。書き込み回数が最大使用回数と同値である場合（ステップＳ２６のＹｅｓ）、その未使用ブロックをfree-high list ４１３に登録し（ステップＳ２７）（図６（ａ））、処理を終了する。書き込み回数が最大使用回数未満である場合（ステップＳ２６のＮｏ）、その未使用ブロックをfree-low list ４１４に登録し（ステップＳ２８）（図６（ｂ））、処理を終了する。
【００２６】
図７は、本実施形態に係る半導体メモリ情報蓄積装置が起動する際のブロックの各リストへの分配動作を示すフローチャートである。
【００２７】
半導体メモリ情報蓄積装置が起動すると、補助コントローラ４２は、記録部４１１に記録されている各ブロックの使用中／未使用分類結果と書き込み回数を１ブロックずつ読み出す（ステップＳ３１）。続いて、ブロックの使用中／未使用分類結果と書き込み回数とが正常に記録されているか否かを判断し（ステップＳ３２）、正常に記録されている場合（ステップＳ３２のＹｅｓ）、そのブロックが使用中であるか否かを判断する（ステップＳ３３）。ブロックの使用中／未使用分類結果と書き込み回数とが正常に記録されていない場合（ステップＳ３２のＮｏ）、アラームを発生する（ステップＳ３４）。
【００２８】
ブロックが使用中でない場合（ステップＳ３３のＮｏ）、補助コントローラ４２は、ブロックの書き込み回数が最大使用回数と同数であるか否かを判断する（ステップＳ３５）。書き込み回数が最大使用回数と同数である場合（ステップＳ３５のＹｅｓ）、ブロックをfree-high list ４１３に登録し（ステップＳ３６）、記録部４１１に他のブロックの使用中／未使用分類結果と書き込み回数とが記録されているか否かを判断する（ステップＳ３７）。記録部４１１に他のブロックの使用中／未使用分類結果と書き込み回数とが記録されている場合（ステップＳ３７のＹｅｓ）、処理をステップＳ３１に移行する。記録部４１１に他のブロックの使用中／未使用分類結果と書き込み回数とが記録されていない場合（ステップＳ３７のＮｏ）、処理を終了する。
【００２９】
ステップＳ３３において、ブロックが使用中である場合（ステップＳ３３のＹｅｓ）、ブロックをusing-list ４１２に登録し（ステップＳ３８）、処理をステップＳ３７に移行する。ステップＳ３５において、書き込み回数が最大使用回数未満である場合（ステップＳ３５のＮｏ）、ブロックをfree-low list ４１４に登録し（ステップＳ３９）、ステップＳ３７へ処理を移行する。
【００３０】
以上のように、上記一実施形態に係る半導体メモリ情報蓄積装置では、蓄積部１の半導体メモリ１１〜１３のブロックが使用中である場合は、そのブロックをusing-list ４１２に登録し、未使用である場合は、未使用のブロックのうち書き込み回数が最大使用回数であるブロックをfree-high list ４１３に登録し、また、未使用のブロックのうち書き込み回数が最大使用回数未満であるブロックをfree-low list ４１４に登録するようにしている。そして、半導体メモリ情報蓄積装置は、free-low list ４１４に登録されているブロックから書き込みブロックを選出し、素材データを書き込む。また、ブロックから素材データを消去すると、そのブロックを書き込み回数と最高使用回数に基づいてfree-high list ４１３又はfree-low list ４１４に登録する。これにより、free-low list ４１４には書き込み回数の少ない未使用ブロックが常に登録されることになり、このfree-low list ４１４から書き込みブロックを選出することで、書き込み回数の少ない未使用ブロックだけに素材データを書き込むことが可能となる。
【００３１】
したがって、free-low list ４１４に登録されているブロックから書き込みブロックを指定するだけで書き込み回数の少ない未使用ブロックを検出することが可能であるため、ブロックの書き込み回数を均等に保つことができる。また、これにより、検索時間を短縮され、安定して書き込みブロックを選出することも可能となる。
【００３２】
なお、この発明は上記一実施形態に限定されるものではない。例えば上記一実施形態では、３個の半導体メモリを並列に接続して素材データを蓄積する例について説明したが、半導体メモリが３個でない場合（単数を含む）であっても同様に実施可能である。
【００３３】
さらに、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００３４】
【図１】本発明に係る半導体メモリ情報蓄積装置の一実施形態の構成を示すブロック図。
【図２】上記一実施形態のブロック管理部において、未使用ブロックがfree-low listに登録されておらず、free-high listのみに登録されている場合の、未使用ブロックの登録の移行を示す概念図。
【図３】上記一実施形態の蓄積部へ素材データを書き込む際の補助コントローラによるブロックの管理動作を示すフローチャート。
【図４】上記一実施形態の蓄積部へ素材データを書き込む際のブロックの管理を示す概念図。
【図５】上記一実施形態の蓄積部のブロックに蓄積されている素材データを消去する際の補助コントローラによる管理動作を示すフローチャート。
【図６】上記一実施形態の蓄積部のブロックに蓄積されている素材データを消去する際のブロックの管理を示す概念図。
【図７】上記一実施形態の半導体メモリ情報蓄積装置が起動する際のブロックの各リストへの分配動作を示すフローチャート。
【符号の説明】
【００３５】
１…蓄積部、１１〜１３…半導体メモリ、２…バッファ、３…書き込み／消去コントローラ、４…ブロック管理部、４１…管理情報保持部、４１１…記録部、４１２…using-list、４１３…free-high list、４１４…free-low list、４２…補助コントローラ。
【図１】
0004444314.tif 000002
【図２】
0004444314.tif 000003
【図３】
0004444314.tif 000004
【図４】
0004444314.tif 000005
【図５】
0004444314.tif 000006
【図６】
0004444314.tif 000007
【図７】
0004444314.tif 000008