(57)【要約】【課題】半導体記憶装置に記憶されたデータをホスト装置が読み出す際のレイテンシを効果的に低減することが可能であり、しかも、製品コストの上昇及びキャッシュ制御の複雑化を回避又は抑制することが可能な、半導体記憶装置を得る。【解決手段】制御部２４は、アドレス設定部２３が設定した第１の読み出しアドレスに基づいて、半導体メモリ５から第１のコンテンツデータを読み出して第１のデータバッファ１１に格納し、当該第１のコンテンツデータを第１のデータバッファ１１からホスト装置２に出力する。また、制御部２４は、アドレス設定部２３が第１の読み出しアドレスの次に設定した第２の読み出しアドレスに基づいて、半導体メモリ５から第２のコンテンツデータを読み出して第２のデータバッファ１２に格納し、当該第２のコンテンツデータを第２のデータバッファ１２からホスト装置２に出力する。【選択図】図２
2014123328.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置に接続される半導体記憶装置であって、
コンテンツデータを記憶する半導体メモリと、
前記半導体メモリを制御するメモリコントローラと、
を備え、
前記メモリコントローラは、
それぞれに読み出しアドレスを含む複数の先行パラメータを、ホスト装置から取得するパラメータ取得部と、
前記パラメータ取得部が取得した複数の先行パラメータを保持するパラメータ保持部と、
前記パラメータ保持部が保持している複数の先行パラメータに基づいて、複数の読み出しアドレスを順に設定するアドレス設定部と、
第１のデータバッファ及び第２のデータバッファを含む複数のデータバッファと、
制御部と、
を有し、
前記制御部は、
前記アドレス設定部が設定した第１の読み出しアドレスに基づいて、前記半導体メモリから第１のコンテンツデータを読み出して前記第１のデータバッファに格納し、当該第１のコンテンツデータを前記第１のデータバッファからホスト装置に出力し、
前記アドレス設定部が第１の読み出しアドレスの次に設定した第２の読み出しアドレスに基づいて、前記半導体メモリから第２のコンテンツデータを読み出して前記第２のデータバッファに格納し、当該第２のコンテンツデータを前記第２のデータバッファからホスト装置に出力する、半導体記憶装置。
【請求項２】
前記制御部は、前記第１のデータバッファへの第１のコンテンツデータの格納が完了すると、前記第１のデータバッファからホスト装置への第１のコンテンツデータの出力を開始するとともに、前記半導体メモリから前記第２のデータバッファへの第２のコンテンツデータの読み出しを開始する、請求項１に記載の半導体記憶装置。
【請求項３】
前記制御部は、前記アドレス設定部が第２の読み出しアドレスより後に設定した第３の読み出しアドレスに基づいて、前記半導体メモリから第３のコンテンツデータを読み出して前記第１のデータバッファに格納し、当該第３のコンテンツデータを前記第１のデータバッファからホスト装置に出力する、請求項１又は２に記載の半導体記憶装置。
【請求項４】
前記制御部は、前記第１のデータバッファからホスト装置への第１のコンテンツデータの出力が完了すると同時に、前記半導体メモリから前記第１のデータバッファへの第３のコンテンツデータの格納を開始する、請求項３に記載の半導体記憶装置。
【請求項５】
前記アドレス設定部は、前記第１のデータバッファからホスト装置への第１のコンテンツデータの出力が完了する前に、第３の読み出しアドレスを設定する、請求項４に記載の半導体記憶装置。
【請求項６】
先行パラメータは、データサイズをさらに含む、請求項１〜５のいずれか一つに記載の半導体記憶装置。
【請求項７】
前記パラメータ取得部が取得した複数の先行パラメータに基づいて設定される複数の読み出しアドレスの中から、特定のキャッシュ対象アドレスを選択するアドレス選択部をさらに備え、
前記複数のデータバッファは、キャッシュ対象アドレスに対応するキャッシュ対象コンテンツデータを格納する第３のデータバッファをさらに含み、
前記制御部は、
前記アドレス設定部がキャッシュ対象アドレスを設定した場合には、前記半導体メモリからキャッシュ対象コンテンツデータを読み出して前記第３のデータバッファに格納し、当該キャッシュ対象コンテンツデータを前記第３のデータバッファからホスト装置に出力し、
それ以降は、前記第３のデータバッファに格納されているキャッシュ対象コンテンツデータを、前記第３のデータバッファからホスト装置に出力する、請求項１〜６のいずれか一つに記載の半導体記憶装置。
【請求項８】
前記アドレス選択部は、複数の先行パラメータを前記パラメータ取得部から前記パラメータ保持部に入力する際に、キャッシュ対象アドレスを選択する、請求項７に記載の半導体記憶装置。
【請求項９】
前記アドレス選択部は、先行パラメータを前記パラメータ保持部から前記アドレス設定部に入力する際に、キャッシュ対象アドレスを選択する、請求項７又は８に記載の半導体記憶装置。
【請求項１０】
前記アドレス選択部は、コンテンツデータの属性に応じて設定される優先順位に基づいて、キャッシュ対象アドレスを選択する、請求項７〜９のいずれか一つに記載の半導体記憶装置。
【請求項１１】
先行パラメータは、コンテンツデータの属性情報をさらに含み、
前記アドレス選択部は、当該属性情報に基づいて優先順位を決定する、請求項１０に記載の半導体記憶装置。
【請求項１２】
前記アドレス選択部は、読み出しアドレスの出現順序に基づいて、キャッシュ対象アドレスを選択する、請求項１０又は１１に記載の半導体記憶装置。
【請求項１３】
前記アドレス選択部は、読み出しアドレスの出現頻度に基づいて、キャッシュ対象アドレスを選択する、請求項１０〜１２のいずれか一つに記載の半導体記憶装置。
【請求項１４】
前記制御部は、前記第１のデータバッファからホスト装置への第１のコンテンツデータの出力が完了した後、第２のコンテンツデータのうち所定の遡及可能範囲に相当するデータが前記第２のデータバッファから出力された時点で、前記半導体メモリから前記第１のデータバッファへの第３のコンテンツデータの格納を開始する、請求項３に記載の半導体記憶装置。
【請求項１５】
先行パラメータは、コンテンツデータの属性情報をさらに含み、
前記制御部は、当該属性情報に基づいて遡及可能範囲を決定する、請求項１４に記載の半導体記憶装置。
【請求項１６】
前記複数のデータバッファからホスト装置にコンテンツデータが出力されている期間内に、前記半導体メモリのリフレッシュ処理を実行するリフレッシュ処理部をさらに備える、請求項１に記載の半導体記憶装置。
【請求項１７】
前記複数のデータバッファからホスト装置にコンテンツデータが出力されている期間内に、前記半導体メモリの多重化処理を実行する多重化処理部をさらに備える、請求項１に記載の半導体記憶装置。
【請求項１８】
前記制御部は、前記複数のデータバッファへのコンテンツデータの格納が完了した後に、前記複数のデータバッファからホスト装置へのコンテンツデータの出力を開始する、請求項１６又は１７に記載の半導体記憶装置。
【請求項１９】
ホスト装置と、
請求項１〜１８のいずれか一つに記載の半導体記憶装置と、
を備える、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置及びコンピュータシステムに関する。
【背景技術】
【０００２】
メモリコントローラと、ＮＡＮＤ型フラッシュメモリ等の半導体メモリとを備えた半導体記憶装置において、メモリコントローラは、ホスト装置から入力された読み出し要求に基づいて半導体メモリからデータを読み出し、読み出したデータをホスト装置に出力する。しかし、ＮＡＮＤ型フラッシュメモリからデータを読み出す際には、レイテンシが発生する。そのため、ホスト装置から不連続の複数アドレスの読み出し要求を受けた場合には、ＮＡＮＤ型フラッシュメモリから各データを読み出す度にレイテンシが発生し、その結果、トータルのレイテンシが大きくなってしまう。
【０００３】
下記特許文献１には、キャッシュ制御によってレイテンシを低減することを企図した半導体記憶装置が開示されている。半導体記憶装置は、ＮＡＮＤ型フラッシュメモリ等の不揮発性メモリと、ＤＲＡＭ等の揮発性メモリとを備えて構成されている。不揮発性メモリに記憶されている複数のデータのうちアクセスされる可能性の高いデータが、過去のアクセス履歴に基づいて特定される。そして、当該アクセスされる可能性の高いデータが揮発性メモリに記憶されることにより、キャッシュ制御が実行される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−６４１５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記特許文献１に開示された半導体記憶装置によると、揮発性メモリの記憶容量は無制限ではないため、読み出し対象のデータが揮発性メモリに記憶されていない状況（つまりキャッシュ・ミス・ヒット）が生じ得る。そして、キャッシュ・ミス・ヒットが生じた場合には、不揮発性メモリにアクセスすることによって、読み出し対象のデータを不揮発性メモリから読み出す必要がある。従って、その際にレイテンシが発生するため、上記特許文献１に開示された半導体記憶装置ではレイテンシの低減効果が十分でないという問題がある。
【０００６】
また、大容量の揮発性メモリを使用することにより、又は揮発性メモリを複数使用することにより、キャッシュ・ヒット率を向上することができるが、この場合には、製品のコストが上昇するとともに、コントローラによるキャッシュ制御が複雑化するという問題がある。
【０００７】
本発明はかかる問題を解決するために成されたものであり、半導体記憶装置に記憶されたデータをホスト装置が読み出す際のレイテンシを効果的に低減することが可能であり、しかも、製品コストの上昇及びキャッシュ制御の複雑化を回避又は抑制することが可能な、半導体記憶装置及びコンピュータシステムを得ることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の態様に係る半導体記憶装置は、ホスト装置に接続される半導体記憶装置であって、コンテンツデータを記憶する半導体メモリと、前記半導体メモリを制御するメモリコントローラと、を備え、前記メモリコントローラは、それぞれに読み出しアドレスを含む複数の先行パラメータを、ホスト装置から取得するパラメータ取得部と、前記パラメータ取得部が取得した複数の先行パラメータを保持するパラメータ保持部と、前記パラメータ保持部が保持している複数の先行パラメータに基づいて、複数の読み出しアドレスを順に設定するアドレス設定部と、第１のデータバッファ及び第２のデータバッファを含む複数のデータバッファと、制御部と、を有し、前記制御部は、前記アドレス設定部が設定した第１の読み出しアドレスに基づいて、前記半導体メモリから第１のコンテンツデータを読み出して前記第１のデータバッファに格納し、当該第１のコンテンツデータを前記第１のデータバッファからホスト装置に出力し、前記アドレス設定部が第１の読み出しアドレスの次に設定した第２の読み出しアドレスに基づいて、前記半導体メモリから第２のコンテンツデータを読み出して前記第２のデータバッファに格納し、当該第２のコンテンツデータを前記第２のデータバッファからホスト装置に出力することを特徴とするものである。
【０００９】
第１の態様に係る半導体記憶装置によれば、パラメータ取得部は、それぞれに読み出しアドレスを含む複数の先行パラメータをホスト装置から取得し、パラメータ保持部は、パラメータ取得部が取得した複数の先行パラメータを保持し、アドレス設定部は、パラメータ保持部が保持している複数の先行パラメータに基づいて、複数の読み出しアドレスを順に設定する。そして、制御部は、アドレス設定部が設定した第１の読み出しアドレスに基づいて、半導体メモリから第１のコンテンツデータを読み出して第１のデータバッファに格納し、当該第１のコンテンツデータを第１のデータバッファからホスト装置に出力する。また、制御部は、アドレス設定部が第１の読み出しアドレスの次に設定した第２の読み出しアドレスに基づいて、半導体メモリから第２のコンテンツデータを読み出して第２のデータバッファに格納し、当該第２のコンテンツデータを第２のデータバッファからホスト装置に出力する。従って、たとえ第１の読み出しアドレスと第２の読み出しアドレスとが不連続の場合であっても、第１のデータバッファからホスト装置への第１のコンテンツデータの出力と、第２のデータバッファからホスト装置への第２のコンテンツデータの出力とを、レイテンシなく連続して実行することができる。その結果、半導体記憶装置に記憶されたデータ（特に第２のコンテンツデータ）をホスト装置が読み出す際のレイテンシを効果的に低減することが可能となる。また、キャッシュ・ヒット率の向上のために大容量のキャッシュメモリ又は複数のキャッシュメモリを使用する場合と比較すると、製品コストの上昇及びキャッシュ制御の複雑化を回避又は抑制することが可能となる。
【００１０】
本発明の第２の態様に係る半導体記憶装置は、第１の態様に係る半導体記憶装置において特に、前記制御部は、前記第１のデータバッファへの第１のコンテンツデータの格納が完了すると、前記第１のデータバッファからホスト装置への第１のコンテンツデータの出力を開始するとともに、前記半導体メモリから前記第２のデータバッファへの第２のコンテンツデータの読み出しを開始することを特徴とするものである。
【００１１】
第２の態様に係る半導体記憶装置によれば、制御部は、第１のデータバッファへの第１のコンテンツデータの格納が完了すると、第１のデータバッファからホスト装置への第１のコンテンツデータの出力を開始する。従って、第１のコンテンツデータをホスト装置が読み出す際のレイテンシを、最小限に抑えることが可能となる。また、制御部は、第１のデータバッファへの第１のコンテンツデータの格納が完了すると、半導体メモリから第２のデータバッファへの第２のコンテンツデータの読み出しを開始する。このように、第２のコンテンツデータの読み出しを早期に開始することにより、第２のデータバッファへの第２のコンテンツデータの格納を、早期に完了することができる。その結果、第２のデータバッファからホスト装置へ第２のコンテンツデータを出力する際のレイテンシを、回避又は抑制することが可能となる。
【００１２】
本発明の第３の態様に係る半導体記憶装置は、第１又は第２の態様に係る半導体記憶装置において特に、前記制御部は、前記アドレス設定部が第２の読み出しアドレスより後に設定した第３の読み出しアドレスに基づいて、前記半導体メモリから第３のコンテンツデータを読み出して前記第１のデータバッファに格納し、当該第３のコンテンツデータを前記第１のデータバッファからホスト装置に出力することを特徴とするものである。
【００１３】
第３の態様に係る半導体記憶装置によれば、制御部は、アドレス設定部が第２の読み出しアドレスより後に設定した第３の読み出しアドレスに基づいて、半導体メモリから第３のコンテンツデータを読み出して第１のデータバッファに格納し、当該第３のコンテンツデータを第１のデータバッファからホスト装置に出力する。このように、第１のデータバッファからホスト装置への第１のコンテンツデータの出力が完了した後には、第１のデータバッファから第１のコンテンツデータを消去して、第３のコンテンツデータを第１のデータバッファに格納することにより、必要なデータバッファの個数を削減することが可能となる。
【００１４】
本発明の第４の態様に係る半導体記憶装置は、第３の態様に係る半導体記憶装置において特に、前記制御部は、前記第１のデータバッファからホスト装置への第１のコンテンツデータの出力が完了すると同時に、前記半導体メモリから前記第１のデータバッファへの第３のコンテンツデータの格納を開始することを特徴とするものである。
【００１５】
第４の態様に係る半導体記憶装置によれば、制御部は、第１のデータバッファからホスト装置への第１のコンテンツデータの出力が完了すると同時に、半導体メモリから第１のデータバッファへの第３のコンテンツデータの格納を開始する。従って、第１のデータバッファへの第３のコンテンツデータの格納を、早期に完了することができる。その結果、第１のデータバッファからホスト装置へ第３のコンテンツデータを出力する際のレイテンシを、回避又は抑制することが可能となる。
【００１６】
本発明の第５の態様に係る半導体記憶装置は、第４の態様に係る半導体記憶装置において特に、前記アドレス設定部は、前記第１のデータバッファからホスト装置への第１のコンテンツデータの出力が完了する前に、第３の読み出しアドレスを設定することを特徴とするものである。
【００１７】
第５の態様に係る半導体記憶装置によれば、アドレス設定部は、第１のデータバッファからホスト装置への第１のコンテンツデータの出力が完了する前に、第３の読み出しアドレスを設定する。このように、半導体メモリから第３のコンテンツデータを読み出すための準備を早期に開始しておくことにより、第１のデータバッファからホスト装置への第１のコンテンツデータの出力が完了すると、直ちに第１のデータバッファへの第３のコンテンツデータの格納を開始することが可能となる。
【００１８】
本発明の第６の態様に係る半導体記憶装置は、第１〜第５のいずれか一つの態様に係る半導体記憶装置において特に、先行パラメータは、データサイズをさらに含むことを特徴とするものである。
【００１９】
第６の態様に係る半導体記憶装置によれば、先行パラメータには、読み出しアドレス及びデータサイズが含まれる。従って、連続した複数のページを読み出す場合には、ページ数に応じたデータサイズを設定することによって先行パラメータは一つで足りるため、ページ毎に個別の先行パラメータを発行するという煩雑な処理を回避することが可能となる。
【００２０】
本発明の第７の態様に係る半導体記憶装置は、第１〜第６のいずれか一つの態様に係る半導体記憶装置において特に、前記パラメータ取得部が取得した複数の先行パラメータに基づいて設定される複数の読み出しアドレスの中から、特定のキャッシュ対象アドレスを選択するアドレス選択部をさらに備え、前記複数のデータバッファは、キャッシュ対象アドレスに対応するキャッシュ対象コンテンツデータを格納する第３のデータバッファをさらに含み、前記制御部は、前記アドレス設定部がキャッシュ対象アドレスを設定した場合には、前記半導体メモリからキャッシュ対象コンテンツデータを読み出して前記第３のデータバッファに格納し、当該キャッシュ対象コンテンツデータを前記第３のデータバッファからホスト装置に出力し、それ以降は、前記第３のデータバッファに格納されているキャッシュ対象コンテンツデータを、前記第３のデータバッファからホスト装置に出力することを特徴とするものである。
【００２１】
第７の態様に係る半導体記憶装置によれば、アドレス選択部は、パラメータ取得部が取得した複数の先行パラメータに基づいて設定される複数の読み出しアドレスの中から、特定のキャッシュ対象アドレスを選択する。そして、制御部は、アドレス設定部がキャッシュ対象アドレスを設定した場合には、半導体メモリからキャッシュ対象コンテンツデータを読み出して第３のデータバッファに格納し、当該キャッシュ対象コンテンツデータを第３のデータバッファからホスト装置に出力する。また、制御部は、第３のデータバッファへのキャッシュ対象コンテンツデータの格納が完了した以降は、第３のデータバッファに格納されているキャッシュ対象コンテンツデータを、第３のデータバッファからホスト装置に出力する。このように、第３のデータバッファをキャッシュ制御用のバッファとして使用することにより、第３のデータバッファに格納されているキャッシュ対象コンテンツデータに関する２回目以降の読み出しにおいては、半導体メモリへのアクセスが不要となる。その結果、レイテンシの発生を回避できるとともに、読み出しアクセスに起因してメモリセルに与えるダメージを回避することが可能となる。
【００２２】
本発明の第８の態様に係る半導体記憶装置は、第７の態様に係る半導体記憶装置において特に、前記アドレス選択部は、複数の先行パラメータを前記パラメータ取得部から前記パラメータ保持部に入力する際に、キャッシュ対象アドレスを選択することを特徴とするものである。
【００２３】
第８の態様に係る半導体記憶装置によれば、アドレス選択部は、複数の先行パラメータをパラメータ取得部からパラメータ保持部に入力する際に、キャッシュ対象アドレスを選択する。従って、パラメータ取得部が取得した複数の先行パラメータに基づいて設定される複数の読み出しアドレスのうちの最適な読み出しアドレスを、キャッシュ対象アドレスとして適切に選択することが可能となる。
【００２４】
本発明の第９の態様に係る半導体記憶装置は、第７又は第８の態様に係る半導体記憶装置において特に、前記アドレス選択部は、先行パラメータを前記パラメータ保持部から前記アドレス設定部に入力する際に、キャッシュ対象アドレスを選択することを特徴とするものである。
【００２５】
第９の態様に係る半導体記憶装置によれば、アドレス選択部は、先行パラメータをパラメータ保持部からアドレス設定部に入力する際に、キャッシュ対象アドレスを選択する。従って、読み出しの進行状況に応じて各時点での最適な読み出しアドレスを、キャッシュ対象アドレスとして適切に選択することが可能となる。
【００２６】
本発明の第１０の態様に係る半導体記憶装置は、第７〜第９のいずれか一つの態様に係る半導体記憶装置において特に、前記アドレス選択部は、コンテンツデータの属性に応じて設定される優先順位に基づいて、キャッシュ対象アドレスを選択することを特徴とするものである。
【００２７】
第１０の態様に係る半導体記憶装置によれば、アドレス選択部は、コンテンツデータの属性に応じて設定される優先順位に基づいて、キャッシュ対象アドレスを選択する。従って、プログラムコード、静止画データ、音声データ、及び動画データ等のコンテンツデータの属性に応じて予め優先順位を設定しておくことにより、アドレス選択部は、優先順位の高いコンテンツデータに対応する読み出しアドレスを優先的にキャッシュ対象アドレスとして選択することができる。その結果、優先順位の高いコンテンツデータに対して、キャッシュ制御によるメリットを享受することが可能となる。
【００２８】
本発明の第１１の態様に係る半導体記憶装置は、第１０の態様に係る半導体記憶装置において特に、先行パラメータは、コンテンツデータの属性情報をさらに含み、前記アドレス選択部は、当該属性情報に基づいて優先順位を決定することを特徴とするものである。
【００２９】
第１１の態様に係る半導体記憶装置によれば、アドレス選択部は、先行パラメータに含まれる属性情報に基づいて優先順位を決定する。このように、属性情報を先行パラメータに含めておくことにより、アドレス選択部は、当該属性情報に基づいてキャッシュ対象アドレスを適切に選択することが可能となる。
【００３０】
本発明の第１２の態様に係る半導体記憶装置は、第１０又は第１１の態様に係る半導体記憶装置において特に、前記アドレス選択部は、読み出しアドレスの出現順序に基づいて、キャッシュ対象アドレスを選択することを特徴とするものである。
【００３１】
第１２の態様に係る半導体記憶装置によれば、アドレス選択部は、読み出しアドレスの出現順序に基づいて、キャッシュ対象アドレスを選択する。従って、優先順位が最も高いコンテンツデータに対応する読み出しアドレスが複数存在する場合には、その中で最初に出現したアドレスをキャッシュ対象アドレスとして選択する等により、アドレス選択部によってキャッシュ対象アドレスを適切に選択することが可能となる。
【００３２】
本発明の第１３の態様に係る半導体記憶装置は、第１０〜第１２のいずれか一つの態様に係る半導体記憶装置において特に、前記アドレス選択部は、読み出しアドレスの出現頻度に基づいて、キャッシュ対象アドレスを選択することを特徴とするものである。
【００３３】
第１３の態様に係る半導体記憶装置によれば、アドレス選択部は、読み出しアドレスの出現頻度に基づいて、キャッシュ対象アドレスを選択する。従って、優先順位が最も高いコンテンツデータに対応する読み出しアドレスが複数存在する場合には、その中で出現頻度が最も高いアドレスをキャッシュ対象アドレスとして選択する等により、アドレス選択部によってキャッシュ対象アドレスを適切に選択することが可能となる。
【００３４】
本発明の第１４の態様に係る半導体記憶装置は、第３の態様に係る半導体記憶装置において特に、前記制御部は、前記第１のデータバッファからホスト装置への第１のコンテンツデータの出力が完了した後、第２のコンテンツデータのうち所定の遡及可能範囲に相当するデータが前記第２のデータバッファから出力された時点で、前記半導体メモリから前記第１のデータバッファへの第３のコンテンツデータの格納を開始することを特徴とするものである。
【００３５】
第１４の態様に係る半導体記憶装置によれば、制御部は、第１のデータバッファからホスト装置への第１のコンテンツデータの出力が完了した後、第２のコンテンツデータのうち所定の遡及可能範囲に相当するデータが第２のデータバッファから出力された時点で、半導体メモリから第１のデータバッファへの第３のコンテンツデータの格納を開始する。従って、第２のコンテンツデータに関して遡及可能範囲のデータ出力が完了するまでの期間内においては、第１のデータバッファには第１のコンテンツデータが格納されている。そのため、その期間内にホスト装置から第１のコンテンツデータの読み出し要求を受けた場合には、半導体メモリへアクセスすることなく、第１のデータバッファからホスト装置に第１のコンテンツデータを出力することが可能となる。
【００３６】
本発明の第１５の態様に係る半導体記憶装置は、第１４の態様に係る半導体記憶装置において特に、先行パラメータは、コンテンツデータの属性情報をさらに含み、前記制御部は、当該属性情報に基づいて遡及可能範囲を決定することを特徴とするものである。
【００３７】
第１５の態様に係る半導体記憶装置によれば、制御部は、先行パラメータに含まれる属性情報に基づいて遡及可能範囲を決定する。従って、プログラムコード、静止画データ、音声データ、及び動画データ等のコンテンツデータの属性に応じて、それぞれ最適な遡及可能範囲を設定することが可能となる。また、属性情報を先行パラメータに含めておくことにより、制御部は、当該属性情報に基づいてコンテンツデータの属性別の遡及可能範囲を適切に設定することが可能となる。
【００３８】
本発明の第１６の態様に係る半導体記憶装置は、第１の態様に係る半導体記憶装置において特に、前記複数のデータバッファからホスト装置にコンテンツデータが出力されている期間内に、前記半導体メモリのリフレッシュ処理を実行するリフレッシュ処理部をさらに備えることを特徴とするものである。
【００３９】
第１６の態様に係る半導体記憶装置によれば、リフレッシュ処理部は、複数のデータバッファからホスト装置にコンテンツデータが出力されている期間内に、半導体メモリのリフレッシュ処理を実行する。このように、半導体メモリからデータバッファへのデータの読み出しが行われていない空き時間を利用して、半導体メモリのリフレッシュ処理を実行することにより、空き時間を有効に活用することが可能となる。
【００４０】
本発明の第１７の態様に係る半導体記憶装置は、第１の態様に係る半導体記憶装置において特に、前記複数のデータバッファからホスト装置にコンテンツデータが出力されている期間内に、前記半導体メモリの多重化処理を実行する多重化処理部をさらに備えることを特徴とするものである。
【００４１】
第１７の態様に係る半導体記憶装置によれば、多重化処理部は、複数のデータバッファからホスト装置にコンテンツデータが出力されている期間内に、半導体メモリの多重化処理を実行する。このように、半導体メモリからデータバッファへのデータの読み出しが行われていない空き時間を利用して、半導体メモリの多重化処理を実行することにより、空き時間を有効に活用することが可能となる。
【００４２】
本発明の第１８の態様に係る半導体記憶装置は、第１６又は第１７の態様に係る半導体記憶装置において特に、前記制御部は、前記複数のデータバッファへのコンテンツデータの格納が完了した後に、前記複数のデータバッファからホスト装置へのコンテンツデータの出力を開始することを特徴とするものである。
【００４３】
第１８の態様に係る半導体記憶装置によれば、制御部は、複数のデータバッファへのコンテンツデータの格納が完了した後に、複数のデータバッファからホスト装置へのコンテンツデータの出力を開始する。従って、比較的長い空き時間を確保できるため、複数のデータバッファ内の格納データが全て枯渇してしまう前に、リフレッシュ処理又は多重化処理を完了することができる。そのため、制御部は、リフレッシュ処理又は多重化処理が完了した後に、データ出力済みのデータバッファへの次のコンテンツデータの格納を開始できるため、複数のデータバッファへの次のコンテンツデータの格納を早期に完了することができる。その結果、複数のデータバッファからホスト装置への次のコンテンツデータの出力を、早期に開始することが可能となる。
【００４４】
本発明の第１９の態様に係るコンピュータシステムは、ホスト装置と、第１〜第１８のいずれか一つの態様に係る半導体記憶装置とを備えることを特徴とするものである。
【００４５】
第１９の態様に係るコンピュータシステムによれば、半導体記憶装置に記憶されたデータをホスト装置が読み出す際のレイテンシを効果的に低減することが可能となる。また、キャッシュ・ヒット率の向上のために大容量のキャッシュメモリ又は複数のキャッシュメモリを使用する場合と比較すると、製品コストの上昇及びキャッシュ制御の複雑化を回避又は抑制することが可能となる。
【発明の効果】
【００４６】
本発明によれば、半導体記憶装置に記憶されたデータをホスト装置が読み出す際のレイテンシを効果的に低減することが可能であり、しかも、製品コストの上昇及びキャッシュ制御の複雑化を回避又は抑制することが可能な、半導体記憶装置及びコンピュータシステムを得ることができる。
【図面の簡単な説明】
【００４７】
【図１】コンピュータシステムの構成を簡略化して示す図である。
【図２】メモリコントローラの構成を簡略化して示す図である。
【図３】パラメータ保持部及びアドレス設定部の構成を簡略化して示す図である。
【図４】先行リードの処理シーケンスを示す図である。
【図５】先行リードの処理シーケンスを示す図である。
【図６】先行リードの処理シーケンスを示す図である。
【図７】先行リードの処理シーケンスを示す図である。
【図８】先行リードの処理シーケンスを示す図である。
【図９】先行リードの処理シーケンスを示す図である。
【図１０】先行リードの処理シーケンスを示す図である。
【図１１】先行リードの処理シーケンスを示す図である。
【図１２】先行リードの処理シーケンスを示す図である。
【図１３】先行リードの処理シーケンスを示す図である。
【図１４】先行リードの処理シーケンスを示す図である。
【図１５】先行リードの処理シーケンスを示す図である。
【図１６】先行リードの処理シーケンスを示す図である。
【図１７】先行リードの処理シーケンスを示す図である。
【図１８】メモリコントローラの構成を簡略化して示す図である。
【図１９】優先順位設定情報の一例を示す図である。
【図２０】先行リードの処理シーケンスを示す図である。
【図２１】先行リードの処理シーケンスを示す図である。
【図２２】先行リードの処理シーケンスを示す図である。
【図２３】先行リードの処理シーケンスを示す図である。
【図２４】先行リードの処理シーケンスを示す図である。
【図２５】先行リードの処理シーケンスを示す図である。
【図２６】先行リードの処理シーケンスを示す図である。
【図２７】先行リードの処理シーケンスを示す図である。
【図２８】先行リードの処理シーケンスを示す図である。
【図２９】先行リードの処理シーケンスを示す図である。
【図３０】先行リードの処理シーケンスを示す図である。
【図３１】先行リード開始時のキャッシュ対象アドレスを選択するための具体的なアルゴリズムを示すフローチャートである。
【図３２】先行リード開始時のキャッシュ対象アドレスを選択するための具体的なアルゴリズムを示すフローチャートである。
【図３３】先行リード実行中のキャッシュ対象アドレスを選択するための具体的なアルゴリズムを示すフローチャートである。
【図３４】遡及可能範囲設定情報の一例を示す図である。
【図３５】先行リードの処理シーケンスを示す図である。
【図３６】先行リードの処理シーケンスを示す図である。
【図３７】先行リードの処理シーケンスを示す図である。
【図３８】先行リードの処理シーケンスを示す図である。
【図３９】先行リードの処理シーケンスを示す図である。
【図４０】先行リードの処理シーケンスを示す図である。
【図４１】先行リードの処理シーケンスを示す図である。
【図４２】先行リードの処理シーケンスを示す図である。
【図４３】先行リードの処理シーケンスを示す図である。
【図４４】先行リードの処理シーケンスを示す図である。
【図４５】先行リードの処理シーケンスを示す図である。
【図４６】メモリコントローラの構成を簡略化して示す図である。
【図４７】先行リードの処理シーケンスを示す図である。
【図４８】先行リードの処理シーケンスを示す図である。
【図４９】先行リードの処理シーケンスを示す図である。
【図５０】先行リードの処理シーケンスを示す図である。
【図５１】先行リードの処理シーケンスを示す図である。
【図５２】先行リードの処理シーケンスを示す図である。
【図５３】先行リードの処理シーケンスを示す図である。
【図５４】先行リードの処理シーケンスを示す図である。
【図５５】先行リードの処理シーケンスを示す図である。
【図５６】先行リードの処理シーケンスを示す図である。
【図５７】メモリコントローラの構成を簡略化して示す図である。
【発明を実施するための形態】
【００４８】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００４９】
＜実施の形態１＞
図１は、本発明の実施の形態１に係るコンピュータシステム１の構成を簡略化して示す図である。コンピュータシステム１は、ＣＰＵ等のホスト装置２と、ホスト装置２に接続される半導体記憶装置３とを備えている。半導体記憶装置３は、メモリコントローラ４と、メモリコントローラ４によって制御される半導体メモリ５とを備えている。半導体メモリ５は、例えばＮＡＮＤ型フラッシュメモリによって構成されている。半導体メモリ５の記憶領域は複数のブロックに分割されており、各ブロックには複数のページが含まれている。ＮＡＮＤ型フラッシュメモリにおいて、ページはデータの書き込み及び読み出しの最小単位であり、ブロックはデータの消去の最小単位である。なお、以下の例においては、１ページが８ｋＢｙｔｅのＮＡＮＤ型フラッシュメモリを並列に４台使用することにより、半導体メモリ５のページサイズを３２ｋｂｙｔｅとする。
【００５０】
半導体メモリ５には、プログラムコード、静止画データ、音声データ、及び動画データ等の、様々な属性のコンテンツデータが記憶されている。ホスト装置２は、メモリコントローラ４に読み出しコマンドを入力することにより、メモリコントローラ４によって半導体メモリ５から読み出された所望のコンテンツデータを、メモリコントローラ４から取得する。
【００５１】
不連続のアドレスを含む複数のコンテンツデータをシーケンシャルに読み出す場合（以下「先行リード」と称す）には、ホスト装置２は、先行パラメータの入力コマンド及び先行リードの実行コマンドをメモリコントローラ４に入力することにより、半導体メモリ５から読み出された複数のコンテンツデータをメモリコントローラ４からシーケンシャルに取得する。本実施の形態の例において、先行パラメータには、読み出し対象のコンテンツデータに関する読み出しアドレスとデータサイズとが含まれる。以下の例では、説明の便宜上、読み出しアドレス及びデータサイズはいずれもページ単位で指定されるものとする。従って、読み出しアドレスはページアドレスを示し、データサイズはページ数を示す。但し、読み出しアドレス及びデータサイズは、ページ単位以外で指定されても良い。
【００５２】
また、ホスト装置２は、先行リードの停止コマンドをメモリコントローラ４に入力することにより、先行リードを停止することができる。また、ホスト装置２は、先行パラメータの全削除コマンドをメモリコントローラ４に入力することにより、メモリコントローラ４が保持している全ての先行パラメータを削除することができる。また、ホスト装置２は、先行パラメータの一部削除コマンドをメモリコントローラ４に入力することにより、メモリコントローラ４が保持している全ての先行パラメータのうちの一部の先行パラメータを削除することができる。一部削除コマンドには、削除対象の先行パラメータを特定するための情報（後述するパラメータ保持部２２内のＦＩＦＯのインデックス番号）が含まれる。また、ホスト装置２は、先行パラメータの変更コマンドをメモリコントローラ４に入力することにより、メモリコントローラ４が保持している全ての先行パラメータのうちの一部の先行パラメータを変更することができる。変更コマンドには、変更対象の先行パラメータを特定するための情報（ＦＩＦＯのインデックス番号）と、変更内容（本実施の形態の例では変更後の読み出しアドレス及びデータサイズ）とが含まれる。
【００５３】
図２は、メモリコントローラ４の構成を簡略化して示す図である。図２の接続関係で示すように、メモリコントローラ４は、データバッファ１１，１２、パラメータ取得部２１、パラメータ保持部２２、アドレス設定部２３、及び制御部２４を備えている。各データバッファ１１，１２の記憶容量は、半導体メモリ５のページサイズと同一の３２ｋＢｙｔｅである。
【００５４】
図３は、パラメータ保持部２２及びアドレス設定部２３の構成を簡略化して示す図である。アドレス設定部２３は、レジスタ４０を備えている。また、本実施の形態の例において、パラメータ保持部２２は、８段構成のＦＩＦＯ３１〜３８を備えている。
【００５５】
図４〜１７は、先行リードの処理シーケンスを示す図である。ホスト装置２は、先行パラメータの入力コマンド及び先行リードの実行コマンドを、メモリコントローラ４に入力する。メモリコントローラ４に入力された先行パラメータは、パラメータ取得部２１によって取得される。
【００５６】
図４を参照して、パラメータ取得部２１は、ホスト装置２から取得した先行パラメータをパラメータ保持部２２に入力する。この例では、「Ａ１Ｓ２」「Ａ５Ｓ１」「Ａ６Ｓ３」「Ａ５Ｓ２」なる４個の先行パラメータが、パラメータ保持部２２に入力される。ここで、「Ａ」の後の数字はページアドレスを示し、「Ｓ」の後の数字はページ数を示している。例えば先行パラメータ「Ａ１Ｓ２」は、ページアドレスが「Ａ１」でページ数が「２」であることを意味している。従って、先行パラメータ「Ａ１Ｓ２」によって、半導体メモリ５内のページアドレス「Ａ１」に記憶されているコンテンツデータ（便宜上、ページアドレスと同じ数字を用いてコンテンツデータＤ１と表記する）と、次のページアドレス「Ａ２」に記憶されているコンテンツデータＤ２とが、読み出し対象のコンテンツデータとして指定される。図４に示すように、先行パラメータ「Ａ１Ｓ２」「Ａ５Ｓ１」「Ａ６Ｓ３」「Ａ５Ｓ２」は、それぞれＦＩＦＯ３１，３２，３３，３４に入力されることにより、パラメータ保持部２２によって保持される。
【００５７】
次に図５を参照して、アドレス設定部２３は、先行パラメータ「Ａ１Ｓ２」をパラメータ保持部２２から取得する。そして、取得した先行パラメータ「Ａ１Ｓ２」に基づいて、読み出しアドレス「Ａ１」をレジスタ４０に設定する。
【００５８】
次に図６を参照して、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ１」に基づいて半導体メモリ５からコンテンツデータＤ１を読み出し、読み出したコンテンツデータＤ１をデータバッファ１１に格納する。
【００５９】
データバッファ１１へのコンテンツデータＤ１の格納が完了すると、次に図７を参照して、制御部２４は、ステータスの通知又はバスウェイトの解除等によって、データバッファ１１からホスト装置２へのコンテンツデータＤ１の出力を開始する。図中の太線の矢印は、データバッファの左端から右端に向かって進行するリードポインタを示している。リードポインタが右端に到達することにより、データバッファからのデータ出力が完了したこととなる。
【００６０】
また、データバッファ１１へのコンテンツデータＤ１の格納が完了すると、次に図８を参照して、アドレス設定部２３は、先行パラメータ「Ａ１Ｓ２」に基づいて、次の読み出しアドレス「Ａ２」をレジスタ４０に設定する。
【００６１】
次に図９を参照して、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ２」に基づいて半導体メモリ５からコンテンツデータＤ２を読み出し、読み出したコンテンツデータＤ２をデータバッファ１２に格納する。本実施の形態の例では、メモリコントローラ４からホスト装置２へのデータ転送処理のスループットよりも、半導体メモリ５からデータバッファ１１，１２へのデータ転送処理のスループットの方が高い場合を想定している。従って、データバッファ１２へのコンテンツデータＤ２の格納が完了した時点においても、データバッファ１１からホスト装置２へのコンテンツデータＤ１の出力は完了していない。
【００６２】
データバッファ１２へのコンテンツデータＤ２の格納が完了すると、次に図１０を参照して、アドレス設定部２３は、次の先行パラメータ「Ａ５Ｓ１」をパラメータ保持部２２から取得する。そして、取得した先行パラメータ「Ａ５Ｓ１」に基づいて、次の読み出しアドレス「Ａ５」をレジスタ４０に設定する。なお、本実施の形態の例では、この時点においても、データバッファ１１からホスト装置２へのコンテンツデータＤ１の出力は完了していない。
【００６３】
次に図１１を参照して、データバッファ１１からホスト装置２へのコンテンツデータＤ１の出力が完了する。
【００６４】
次に図１２を参照して、制御部２４は、データバッファ１２からホスト装置２へのコンテンツデータＤ２の出力を開始する。データバッファ１２にはコンテンツデータＤ２がすでに格納されているため、制御部２４は、データバッファ１１からホスト装置２へのコンテンツデータＤ１の出力が完了すると同時に、データバッファ１２からホスト装置２へのコンテンツデータＤ２の出力を開始することができる。また、制御部２４は、データバッファ１１からコンテンツデータＤ１を消去する。なお、メモリコントローラ４からホスト装置２へのデータ転送処理のスループットよりも、半導体メモリ５からデータバッファ１１，１２へのデータ転送処理のスループットの方が低い場合等においては、データバッファ１１からホスト装置２へのコンテンツデータＤ１の出力が完了した時点で、データバッファ１２へのコンテンツデータＤ２の格納がまだ完了していない状況が生じ得る。この場合には、制御部２４がバスウェイトを出力すること等によって、データバッファ１２へのコンテンツデータＤ２の格納が完了するまでホスト装置２を待機させる。
【００６５】
次に図１３を参照して、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ５」に基づいて半導体メモリ５からコンテンツデータＤ５を読み出し、読み出したコンテンツデータＤ５をデータバッファ１１に格納する。
【００６６】
データバッファ１１へのコンテンツデータＤ５の格納が完了すると、次に図１４を参照して、アドレス設定部２３は、次の先行パラメータ「Ａ６Ｓ３」をパラメータ保持部２２から取得する。そして、取得した先行パラメータ「Ａ６Ｓ３」に基づいて、次の読み出しアドレス「Ａ６」をレジスタ４０に設定する。
【００６７】
次に図１５を参照して、データバッファ１２からホスト装置２へのコンテンツデータＤ２の出力が完了する。
【００６８】
次に図１６を参照して、制御部２４は、データバッファ１１からホスト装置２へのコンテンツデータＤ５の出力を開始する。データバッファ１１にはコンテンツデータＤ５がすでに格納されているため、制御部２４は、データバッファ１２からホスト装置２へのコンテンツデータＤ２の出力が完了すると同時に、データバッファ１１からホスト装置２へのコンテンツデータＤ５の出力を開始することができる。また、制御部２４は、データバッファ１２からコンテンツデータＤ２を消去する。なお、データバッファ１２からホスト装置２へのコンテンツデータＤ２の出力が完了した時点で、データバッファ１１へのコンテンツデータＤ５の格納がまだ完了していない場合には、制御部２４がバスウェイトを出力すること等によって、データバッファ１１へのコンテンツデータＤ５の格納が完了するまでホスト装置２を待機させる。
【００６９】
次に図１７を参照して、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ６」に基づいて半導体メモリ５からコンテンツデータＤ６を読み出し、読み出したコンテンツデータＤ６をデータバッファ１２に格納する。
【００７０】
以降は、パラメータ保持部２２が保持している全ての先行パラメータについての処理が完了するまで、上記と同様の処理を繰り返す。
【００７１】
なお、以上の説明では、制御部２４は、データバッファ１１へのコンテンツデータＤ１の格納が完了すると同時に、データバッファ１１からホスト装置２へのコンテンツデータＤ１の出力を開始したが（図６，７）、システム全体のスペックに応じてデータ出力の開始タイミングを調整しても良い。例えば、メモリコントローラ４からホスト装置２へのデータ転送処理のスループットよりも、半導体メモリ５からデータバッファ１１，１２へのデータ転送処理のスループットの方が低い場合等においては、データバッファ１１，１２へのコンテンツデータＤ１，Ｄ２の格納が完了した時点（図９）で、データバッファ１１からホスト装置２へのコンテンツデータＤ１の出力を開始しても良い。これにより、最初のレイテンシは大きくなるが、先行リードの処理途中におけるバスウェイトの発生を回避又は抑制することができる。
【００７２】
また、先行リードの処理途中で先行パラメータを変更する必要が生じた場合には、ホスト装置２は、まず停止コマンドを発行することによって先行リードを停止させ、次に変更コマンドを発行することによって先行パラメータを変更し、次に実行コマンドを発行することによって先行リードを再開する。同様の方法により、先行リードの処理途中で先行パラメータを追加又は削除することもできる。
【００７３】
このように本実施の形態に係る半導体記憶装置３（及びコンピュータシステム１）によれば、パラメータ取得部２１は、それぞれに読み出しアドレスを含む複数の先行パラメータをホスト装置２から取得し、パラメータ保持部２２は、パラメータ取得部２１が取得した複数の先行パラメータを保持し、アドレス設定部２３は、パラメータ保持部２２が保持している複数の先行パラメータに基づいて、複数の読み出しアドレスを順に設定する。そして、制御部２４は、アドレス設定部２３が設定した第１の読み出しアドレス（例えば読み出しアドレス「Ａ１」）に基づいて、半導体メモリ５から第１のコンテンツデータ（例えばコンテンツデータＤ１）を読み出して第１のデータバッファ（例えばデータバッファ１１）に格納し、当該第１のコンテンツデータを第１のデータバッファからホスト装置２に出力する。また、制御部２４は、アドレス設定部２３が第１の読み出しアドレスの次に設定した第２の読み出しアドレス（例えば読み出しアドレス「Ａ２」）に基づいて、半導体メモリ５から第２のコンテンツデータ（例えばコンテンツデータＤ２）を読み出して第２のデータバッファ（例えばデータバッファ１２）に格納し、当該第２のコンテンツデータを第２のデータバッファからホスト装置２に出力する。従って、たとえ第１の読み出しアドレスと第２の読み出しアドレスとが不連続の場合であっても、第１のデータバッファからホスト装置２への第１のコンテンツデータの出力と、第２のデータバッファからホスト装置２への第２のコンテンツデータの出力とを、レイテンシなく連続して実行することができる。その結果、半導体記憶装置３に記憶されたデータ（特に第２のコンテンツデータ）をホスト装置２が読み出す際のレイテンシを効果的に低減することが可能となる。また、キャッシュ・ヒット率の向上のために大容量のキャッシュメモリ又は複数のキャッシュメモリを使用する場合と比較すると、製品コストの上昇及びキャッシュ制御の複雑化を回避又は抑制することが可能となる。
【００７４】
また、本実施の形態に係る半導体記憶装置３によれば、制御部２４は、第１のデータバッファへの第１のコンテンツデータの格納が完了すると、第１のデータバッファからホスト装置２への第１のコンテンツデータの出力を開始する。従って、第１のコンテンツデータをホスト装置２が読み出す際のレイテンシを、最小限に抑えることが可能となる。また、制御部２４は、第１のデータバッファへの第１のコンテンツデータの格納が完了すると、半導体メモリ５から第２のデータバッファへの第２のコンテンツデータの読み出しを開始する。このように、第２のコンテンツデータの読み出しを早期に開始することにより、第２のデータバッファへの第２のコンテンツデータの格納を、早期に完了することができる。その結果、第２のデータバッファからホスト装置２へ第２のコンテンツデータを出力する際のレイテンシを、回避又は抑制することが可能となる。
【００７５】
また、本実施の形態に係る半導体記憶装置３によれば、制御部２４は、アドレス設定部２３が第２の読み出しアドレスより後に設定した第３の読み出しアドレス（例えば読み出しアドレス「Ａ５」）に基づいて、半導体メモリ５から第３のコンテンツデータ（例えばコンテンツデータＤ５）を読み出して第１のデータバッファに格納し、当該第３のコンテンツデータを第１のデータバッファからホスト装置２に出力する。このように、第１のデータバッファからホスト装置２への第１のコンテンツデータの出力が完了した後には、第１のデータバッファから第１のコンテンツデータを消去して、第３のコンテンツデータを第１のデータバッファに格納することにより、必要なデータバッファの個数を削減することが可能となる。
【００７６】
また、本実施の形態に係る半導体記憶装置３によれば、制御部２４は、第１のデータバッファからホスト装置２への第１のコンテンツデータの出力が完了すると同時に、半導体メモリ５から第１のデータバッファへの第３のコンテンツデータの格納を開始する。従って、第１のデータバッファへの第３のコンテンツデータの格納を、早期に完了することができる。その結果、第１のデータバッファからホスト装置２へ第３のコンテンツデータを出力する際のレイテンシを、回避又は抑制することが可能となる。
【００７７】
また、本実施の形態に係る半導体記憶装置３によれば、アドレス設定部２３は、第１のデータバッファからホスト装置２への第１のコンテンツデータの出力が完了する前に、第３の読み出しアドレスを設定する。このように、半導体メモリ５から第３のコンテンツデータを読み出すための準備を早期に開始しておくことにより、第１のデータバッファからホスト装置２への第１のコンテンツデータの出力が完了すると、直ちに第１のデータバッファへの第３のコンテンツデータの格納を開始することが可能となる。
【００７８】
また、本実施の形態に係る半導体記憶装置３によれば、先行パラメータには、読み出しアドレス及びデータサイズが含まれる。従って、連続した複数のページを読み出す場合には、ページ数に応じたデータサイズを設定することによって先行パラメータは一つで足りるため、ページ毎に個別の先行パラメータを発行するという煩雑な処理を回避することが可能となる。
【００７９】
＜実施の形態２＞
以下、上記実施の形態１との相違点を中心に、本発明の実施の形態２に係る半導体記憶装置３について説明する。
【００８０】
図１８は、メモリコントローラ４の構成を簡略化して示す図である。図１８の接続関係で示すように、メモリコントローラ４は、データバッファ１１〜１３、パラメータ取得部２１、パラメータ保持部２２、アドレス設定部２３、制御部２４、及びアドレス選択部５０を備えている。各データバッファ１１〜１３の記憶容量は、半導体メモリ５のページサイズと同一の３２ｋＢｙｔｅである。
【００８１】
アドレス選択部５０は、アドレス設定部２３によって設定される複数の読み出しアドレスの中から、キャッシュ用の特定の読み出しアドレス（以下「キャッシュ対象アドレス」と称す）を選択する。
【００８２】
データバッファ１３は、アドレス選択部５０によって選択されたキャッシュ対象アドレスに対応するコンテンツデータ（以下「キャッシュ対象コンテンツデータ」と称す）をキャッシュするためのデータバッファとして使用される。なお、キャッシュ用のデータバッファは複数設けられても良い。
【００８３】
図１９は、コンテンツデータの属性と優先順位との対応関係を規定する優先順位設定情報の一例を示す図である。優先順位は、キャッシュ効果の高低、データの重要度、又は即時処理の必要性等に応じて、任意に設定することができる。例えば、キャッシュ効果の高いデータ（静止画データ等）ほど高い優先順位を設定し、また、重要度の高いデータ（プログラムコード等）ほど高い優先順位を設定し、また、即時処理の必要性が高いデータ（音声データ、プログラムコード等）ほど高い優先順位を設定する。また、優先順位は必ずしも固定である必要はなく、出現回数等に応じて変動させても良い。図１９に示した例では、プログラムコード（Ｃ）、静止画データ（Ｐ）、音声データ（Ａ）、動画データ（Ｍ）、その他のデータ（Ｏ）の順に、高い優先順位が設定されている。優先順位設定情報は、テーブル情報として予めメモリコントローラ４に教示されている。
【００８４】
先行リードを行う場合には、ホスト装置２は、先行パラメータの入力コマンド及び先行リードの実行コマンドをメモリコントローラ４に入力する。本実施の形態の例において、先行パラメータには、読み出し対象のコンテンツデータに関する読み出しアドレス及びデータサイズと、コンテンツデータの属性情報とが含まれる。
【００８５】
図２０〜３０は、先行リードの処理シーケンスを示す図である。パラメータ取得部２１は、ホスト装置２から取得した先行パラメータをパラメータ保持部２２に入力する。この例では、「Ａ１Ｓ２Ｍ」「Ａ５Ｓ１Ｐ」「Ａ８Ｓ３Ｃ」「Ａ５Ｓ１Ｐ」「Ａ９Ｓ２Ｃ」なる５個の先行パラメータが、パラメータ保持部２２に入力される。ここで、末尾に付加されたアルファベットはコンテンツデータの属性情報であり、読み出し対象のコンテンツデータがプログラムコードである場合は「Ｃ」、静止画データである場合は「Ｐ」、音声データである場合は「Ａ」、動画データである場合は「Ｍ」、その他のデータである場合は「Ｏ」なる属性情報が付加される。図２０に示すように、先行パラメータ「Ａ１Ｓ２Ｍ」「Ａ５Ｓ１Ｐ」「Ａ８Ｓ３Ｃ」「Ａ５Ｓ１Ｐ」「Ａ９Ｓ２Ｃ」は、それぞれＦＩＦＯ３１，３２，３３，３４，３５に入力されることにより、パラメータ保持部２２によって保持される。
【００８６】
また、先行パラメータは、パラメータ取得部２１からパラメータ保持部２２に入力される際にアドレス選択部５０にも入力される。アドレス選択部５０は、図１９に示した優先順位設定情報と、パラメータ取得部２１から入力された先行パラメータ「Ａ１Ｓ２Ｍ」「Ａ５Ｓ１Ｐ」「Ａ８Ｓ３Ｃ」「Ａ５Ｓ１Ｐ」「Ａ９Ｓ２Ｃ」とに基づいて、先行リード開始時のキャッシュ対象アドレスを選択する。本実施の形態の例において、アドレス選択部５０は、出現回数が複数回の読み出しアドレスのうち、優先順位が最も高いアドレス（当該アドレスが複数存在する場合は、その中で最初に出現したアドレス）を、キャッシュ対象アドレスとして選択する。図２０に示した例では、複数回出現するのは読み出しアドレス「Ａ５」「Ａ９」「Ａ１０」であり、その三者のうちで優先順位が最も高いのは読み出しアドレス「Ａ９」「Ａ１０」であり、その二者のうちで最初に出現するのは読み出しアドレス「Ａ９」であるため、読み出しアドレス「Ａ９」が、先行リード開始時のキャッシュ対象アドレスとして選択される。アドレス選択部５０が先行リード開始時のキャッシュ対象アドレスを選択するための具体的なアルゴリズムを、図３１，３２に示す。
【００８７】
なお、上述したキャッシュ対象アドレスの選択手法は一例であり、優先順位、出現回数（出現頻度）、又は出現順序等の要素のうち、一以上の要素に基づいてキャッシュ対象アドレスを選択すれば良い。例えば、
・出現回数が最多のアドレス。当該アドレスが複数存在する場合は、その中で優先順位が最高のアドレス。当該アドレスが複数存在する場合は、その中で最初に出現したアドレス
・出現回数が最多のアドレス。当該アドレスが複数存在する場合は、その中で最初に出現したアドレス。当該アドレスが複数存在する場合は、その中で優先順位が最高のアドレス。
・出現回数が複数回のアドレス。当該アドレスが複数存在する場合は、その中で優先順位が最高のアドレス。当該アドレスが複数存在する場合は、その中で出現回数が最多のアドレス
等を、キャッシュ対象アドレスとして選択することができる。また、要素毎に重み付けの係数を異ならせた複数の要素に基づいて、キャッシュ対象アドレスを選択しても良い。
【００８８】
また、アドレス選択部５０は、先行リードが開始された後、先行パラメータがパラメータ保持部２２からアドレス設定部２３に入力される度に、キャッシュ対象アドレスの選択を行う。つまり、図１９に示した優先順位設定情報と、各時点においてパラメータ保持部２２内に残っている先行パラメータと、各時点において現在設定されているキャッシュ対象アドレスとに基づいて、上記と同様に先行リード実行中のキャッシュ対象アドレスを選択する。そして、必要に応じてキャッシュ対象アドレスを更新する。アドレス選択部５０が先行リード実行中のキャッシュ対象アドレスを選択するための具体的なアルゴリズムを、図３３に示す。なお、本実施の形態の例では、キャッシュ対象コンテンツデータＤ９が最後にデータ出力された後には、出現回数が２回以上の読み出しアドレスは存在しないため、キャッシュ対象アドレスの更新は行われない。
【００８９】
図２０を参照して、先行リードが開始されると、上記実施の形態１と同様の手順によって先行リードが進行する。レジスタ４０には、読み出しアドレス「Ａ１」「Ａ２」「Ａ５」「Ａ８」「Ａ９」がこの順に設定される。読み出しアドレス「Ａ１」が設定されることにより、コンテンツデータＤ１がデータバッファ１１からホスト装置２に出力される。読み出しアドレス「Ａ２」が設定されることにより、コンテンツデータＤ２がデータバッファ１２からホスト装置２に出力される。読み出しアドレス「Ａ５」が設定されることにより、コンテンツデータＤ５がデータバッファ１１からホスト装置２に出力される。読み出しアドレス「Ａ８」が設定されることにより、コンテンツデータＤ８がデータバッファ１２からホスト装置２に出力される。図２０には、キャッシュ対象アドレスである読み出しアドレスＡ９がレジスタ４０に設定された時点での状況を示している。データバッファ１１にはコンテンツデータＤ５が格納されており、データバッファ１２にはコンテンツデータＤ８が格納されている。
【００９０】
次に図２１を参照して、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ９」に基づいて半導体メモリ５からコンテンツデータＤ９を読み出し、キャッシュ対象コンテンツデータであるコンテンツデータＤ９をデータバッファ１３に格納する。
【００９１】
データバッファ１３へのコンテンツデータＤ９の格納が完了すると、次に図２２を参照して、アドレス設定部２３は、次の読み出しアドレス「Ａ１０」をレジスタ４０に設定する。
【００９２】
次に図２３を参照して、データバッファ１１からホスト装置２へのコンテンツデータＤ５の出力が完了すると、制御部２４は、データバッファ１１からコンテンツデータＤ５を消去するとともに、データバッファ１２からホスト装置２へのコンテンツデータＤ８の出力を開始する。
【００９３】
次に図２４を参照して、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ１０」に基づいて半導体メモリ５からコンテンツデータＤ１０を読み出し、読み出したコンテンツデータＤ１０をデータバッファ１１に格納する。
【００９４】
データバッファ１１へのコンテンツデータＤ１０の格納が完了すると、次に図２５を参照して、アドレス設定部２３は、次の先行パラメータ「Ａ５Ｓ１Ｐ」をパラメータ保持部２２から取得する。そして、取得した先行パラメータ「Ａ５Ｓ１Ｐ」に基づいて、次の読み出しアドレス「Ａ５」をレジスタ４０に設定する。
【００９５】
次に図２６を参照して、データバッファ１２からホスト装置２へのコンテンツデータＤ８の出力が完了すると、制御部２４は、データバッファ１２からコンテンツデータＤ８を消去するとともに、データバッファ１３からホスト装置２へのコンテンツデータＤ９の出力を開始する。
【００９６】
次に図２７を参照して、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ５」に基づいて半導体メモリ５からコンテンツデータＤ５を読み出し、読み出したコンテンツデータＤ５をデータバッファ１２に格納する。
【００９７】
データバッファ１２へのコンテンツデータＤ５の格納が完了すると、次に図２８を参照して、アドレス設定部２３は、次の先行パラメータ「Ａ９Ｓ２Ｃ」をパラメータ保持部２２から取得する。そして、取得した先行パラメータ「Ａ９Ｓ２Ｃ」に基づいて、次の読み出しアドレス「Ａ１０」をレジスタ４０に設定する。ここで、読み出しアドレス「Ａ９」に対応するコンテンツデータＤ９はキャッシュ用のデータバッファ１３に格納されているため、レジスタ４０への読み出しアドレス「Ａ９」の設定は省略される。
【００９８】
次に図２９を参照して、データバッファ１１からホスト装置２へのコンテンツデータＤ１０の出力が完了すると、制御部２４は、データバッファ１１からコンテンツデータＤ１０を消去するとともに、データバッファ１２からホスト装置２へのコンテンツデータＤ５の出力を開始する。
【００９９】
次に図３０を参照して、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ１０」に基づいて半導体メモリ５からコンテンツデータＤ１０を読み出し、読み出したコンテンツデータＤ１０をデータバッファ１１に格納する。
【０１００】
その後、データバッファ１２からホスト装置２へのコンテンツデータＤ５の出力が完了すると、制御部２４は、データバッファ１２からコンテンツデータＤ５を消去するとともに、データバッファ１３からホスト装置２へのコンテンツデータＤ９の出力を開始する。その後、データバッファ１３からホスト装置２へのコンテンツデータＤ９の出力が完了すると、制御部２４は、データバッファ１３からコンテンツデータＤ９を消去するとともに、データバッファ１１からホスト装置２へのコンテンツデータＤ１０の出力を開始する。なお、進行中の先行リードにおいてそれ以降もコンテンツデータＤ９の出力が必要な場合は、コンテンツデータＤ９は消去されずにデータバッファ１３内に残される。また、進行中の先行リードにおいてそれ以降はコンテンツデータＤ９の出力が必要でない場合であっても、キャッシュ対象コンテンツデータがコンテンツデータＤ９から別のコンテンツデータに更新されるまでの間は、コンテンツデータＤ９をデータバッファ１３内に残しても良い。さらに、データバッファ１３は、キャッシュ対象コンテンツデータのみを格納するためのバッファ（キャッシュ専用バッファ）として用いるのではなく、データバッファ１１，１２と同様に任意のコンテンツデータを格納するためのバッファ（汎用バッファ）として用いても良い。つまり、制御部２４は、キャッシュ対象アドレスが設定されていない場合にはデータバッファ１３を汎用バッファとして使用し、その後にキャッシュ対象アドレスが設定されると、データバッファ１３をキャッシュ専用バッファとして使用する。そして、全てのキャッシュ対象コンテンツデータの出力が完了した後に新たなキャッシュ対象アドレスが設定されない場合には、データバッファ１３を再び汎用バッファとして使用する。
【０１０１】
なお、以上の説明では、データの属性情報を先行パラメータに追加したが、属性情報に代えて、優先順位を直接的に示す情報を先行パラメータに追加しても良い。
【０１０２】
このように本実施の形態に係る半導体記憶装置３（及びコンピュータシステム１）によれば、アドレス選択部５０は、パラメータ取得部２１が取得した複数の先行パラメータに基づいて設定される複数の読み出しアドレスの中から、特定のキャッシュ対象アドレスを選択する。そして、制御部２４は、アドレス設定部２３がキャッシュ対象アドレスを設定した場合には、半導体メモリ５からキャッシュ対象コンテンツデータを読み出して第３のデータバッファ（例えばデータバッファ１３）に格納し、当該キャッシュ対象コンテンツデータを第３のデータバッファからホスト装置２に出力する。また、制御部２４は、第３のデータバッファへのキャッシュ対象コンテンツデータの格納が完了した以降は、第３のデータバッファに格納されているキャッシュ対象コンテンツデータを、第３のデータバッファからホスト装置２に出力する。このように、第３のデータバッファをキャッシュ制御用のバッファとして使用することにより、第３のデータバッファに格納されているキャッシュ対象コンテンツデータに関する２回目以降の読み出しにおいては、半導体メモリ５へのアクセスが不要となる。その結果、レイテンシの発生を回避できるとともに、読み出しアクセスに起因してメモリセルに与えるダメージを回避することが可能となる。
【０１０３】
また、本実施の形態に係る半導体記憶装置３によれば、アドレス選択部５０は、複数の先行パラメータをパラメータ取得部２１からパラメータ保持部２２に入力する際に、キャッシュ対象アドレスを選択する。従って、パラメータ取得部２１が取得した複数の先行パラメータに基づいて設定される複数の読み出しアドレスのうちの最適な読み出しアドレスを、先行リード開始時のキャッシュ対象アドレスとして適切に選択することが可能となる。
【０１０４】
また、本実施の形態に係る半導体記憶装置３によれば、アドレス選択部５０は、先行パラメータをパラメータ保持部２２からアドレス設定部２３に入力する際に、キャッシュ対象アドレスを選択する。従って、先行リードの進行状況に応じて各時点での最適な読み出しアドレスを、先行リード実行中のキャッシュ対象アドレスとして適切に選択することが可能となる。
【０１０５】
また、本実施の形態に係る半導体記憶装置３によれば、アドレス選択部５０は、コンテンツデータの属性に応じて設定される優先順位に基づいて、キャッシュ対象アドレスを選択する。従って、プログラムコード、静止画データ、音声データ、及び動画データ等のコンテンツデータの属性に応じて予め優先順位を設定しておくことにより、アドレス選択部５０は、優先順位の高いコンテンツデータに対応する読み出しアドレスを優先的にキャッシュ対象アドレスとして選択することができる。その結果、優先順位の高いコンテンツデータに対して、キャッシュ制御によるメリットを享受することが可能となる。
【０１０６】
また、本実施の形態に係る半導体記憶装置３によれば、アドレス選択部５０は、先行パラメータに含まれる属性情報に基づいて優先順位を決定する。このように、属性情報を先行パラメータに含めておくことにより、アドレス選択部５０は、当該属性情報に基づいてキャッシュ対象アドレスを適切に選択することが可能となる。
【０１０７】
また、本実施の形態に係る半導体記憶装置３によれば、アドレス選択部５０は、読み出しアドレスの出現順序に基づいて、キャッシュ対象アドレスを選択する。従って、優先順位が最も高いコンテンツデータに対応する読み出しアドレスが複数存在する場合には、その中で最初に出現したアドレスをキャッシュ対象アドレスとして選択する等により、アドレス選択部によってキャッシュ対象アドレスを適切に選択することが可能となる。
【０１０８】
また、本実施の形態に係る半導体記憶装置３によれば、アドレス選択部５０は、読み出しアドレスの出現頻度に基づいて、キャッシュ対象アドレスを選択する。従って、優先順位が最も高いコンテンツデータに対応する読み出しアドレスが複数存在する場合には、その中で出現頻度が最も高いアドレスをキャッシュ対象アドレスとして選択する等により、アドレス選択部５０によってキャッシュ対象アドレスを適切に選択することが可能となる。
【０１０９】
＜実施の形態３＞
以下、上記実施の形態１との相違点を中心に、本発明の実施の形態３に係る半導体記憶装置３について説明する。本実施の形態は、上記実施の形態２と組み合わせて適用することも可能である。
【０１１０】
図３４は、コンテンツデータの属性と遡及可能範囲との対応関係を規定する遡及可能範囲設定情報の一例を示す図である。遡及可能範囲は、データ出力の完了後にホスト装置２から当該データを再要求される可能性や、再要求が想定されるデータ範囲等に応じて、任意に設定することができる。図３４に示した例では、動画データ（Ｍ）に対しては１６ｋＢｙｔｅ（つまり１／２ページ）、静止画データ（Ｐ）に対しては８ｋＢｙｔｅ（つまり１／４ページ）、音声データ（Ａ）に対しては４ｋＢｙｔｅ（つまり１／８ページ）、プログラムコード（Ｃ）及びその他のデータ（Ｏ）に対しては０ｋＢｙｔｅの遡及可能範囲が、それぞれ設定されている。但し、遡及可能範囲は必ずしも固定である必要はなく、再要求の実績値等に応じて変動させても良い。遡及可能範囲設定情報は、テーブル情報として予めメモリコントローラ４に教示されている。
【０１１１】
先行リードを行う場合には、ホスト装置２は、先行パラメータの入力コマンド及び先行リードの実行コマンドをメモリコントローラ４に入力する。本実施の形態の例において、先行パラメータには、読み出し対象のコンテンツデータに関する読み出しアドレス及びデータサイズと、コンテンツデータの属性情報とが含まれる。
【０１１２】
図３５〜４５は、先行リードの処理シーケンスを示す図である。図３５を参照して、パラメータ取得部２１は、ホスト装置２から取得した先行パラメータをパラメータ保持部２２に入力する。この例では、「Ａ１Ｓ２Ｍ」「Ａ５Ｓ１Ｐ」「Ａ８Ｓ３Ｃ」「Ａ５Ｓ２Ｐ」なる４個の先行パラメータが、パラメータ保持部２２に入力される。
【０１１３】
次に図３６を参照して、アドレス設定部２３は、先行パラメータ「Ａ１Ｓ２Ｍ」をパラメータ保持部２２から取得する。そして、取得した先行パラメータ「Ａ１Ｓ２Ｍ」に基づいて、読み出しアドレス「Ａ１」をレジスタ４０に設定する。次に、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ１」に基づいて半導体メモリ５からコンテンツデータＤ１を読み出し、読み出したコンテンツデータＤ１をデータバッファ１１に格納する。データバッファ１１へのコンテンツデータＤ１の格納が完了すると、制御部２４は、データバッファ１１からホスト装置２へのコンテンツデータＤ１の出力を開始する。また、制御部２４は、先行パラメータ「Ａ１Ｓ２Ｍ」に基づいてコンテンツデータＤ１の属性を判定する。そして、遡及可能範囲設定情報を参照することにより、コンテンツデータＤ１の属性に対応する遡及可能範囲を、データバッファ１２に設定する。この例では、コンテンツデータＤ１の属性が動画データであるため、図中に破線で示す１６ｋＢｙｔｅの遡及可能範囲がデータバッファ１２に設定される。
【０１１４】
また、データバッファ１１へのコンテンツデータＤ１の格納が完了すると、次に図３７を参照して、アドレス設定部２３は、先行パラメータ「Ａ１Ｓ２Ｍ」に基づいて次の読み出しアドレス「Ａ２」をレジスタ４０に設定する。次に、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ２」に基づいて半導体メモリ５からコンテンツデータＤ２を読み出し、読み出したコンテンツデータＤ２をデータバッファ１２に格納する。また、制御部２４は、先行パラメータ「Ａ１Ｓ２Ｍ」に基づいてコンテンツデータＤ２の属性を判定する。そして、遡及可能範囲設定情報を参照することにより、コンテンツデータＤ２の属性に対応する遡及可能範囲を、データバッファ１１に設定する。この例では、コンテンツデータＤ２の属性が動画データであるため、図中に破線で示す１６ｋＢｙｔｅの遡及可能範囲がデータバッファ１１に設定される。なお、この例においてリードポインタがデータバッファ１１の前半領域を進行している時にデータバッファ１１に遡及可能範囲が設定された場合には、遡及可能範囲が設定された直後にリードポインタが当該遡及可能範囲に到達することとなるが、この時点ではデータバッファ１２は消去可能状態に設定されていないため、データバッファ１２内のコンテンツデータＤ２は消去されない。
【０１１５】
データバッファ１２へのコンテンツデータＤ２の格納が完了すると、次に図３８を参照して、アドレス設定部２３は、次の先行パラメータ「Ａ５Ｓ１Ｐ」をパラメータ保持部２２から取得する。そして、取得した先行パラメータ「Ａ５Ｓ１Ｐ」に基づいて、次の読み出しアドレス「Ａ５」をレジスタ４０に設定する。
【０１１６】
次に図３９を参照して、データバッファ１１からホスト装置２へのコンテンツデータＤ１の出力が完了すると、制御部２４は、データバッファ１１を消去待機状態に設定するとともに、データバッファ１２からホスト装置２へのコンテンツデータＤ２の出力を開始する。ここで、データバッファ１１からホスト装置２へのコンテンツデータＤ１の出力が完了しても、リードポインタがデータバッファ１２の遡及可能範囲に到達するまでは、制御部２４はデータバッファ１１からコンテンツデータＤ１を消去しない。
【０１１７】
次に図４０を参照して、リードポインタがデータバッファ１２の遡及可能範囲に到達した時点で、制御部２４はデータバッファ１１からコンテンツデータＤ１を消去する。また、制御部２４は、コンテンツデータＤ１に対応してデータバッファ１２に設定されていた遡及可能範囲を削除するとともに、データバッファ１１に関する消去待機状態の設定を解除する。
【０１１８】
次に図４１を参照して、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ５」に基づいて半導体メモリ５からコンテンツデータＤ５を読み出し、読み出したコンテンツデータＤ５をデータバッファ１１に格納する。また、制御部２４は、先行パラメータ「Ａ５Ｓ１Ｐ」に基づいてコンテンツデータＤ５の属性を判定する。そして、遡及可能範囲設定情報を参照することにより、コンテンツデータＤ５の属性に対応する遡及可能範囲を、データバッファ１２に設定する。この例では、コンテンツデータＤ５の属性が静止画データであるため、図中に破線で示す８ｋＢｙｔｅの遡及可能範囲がデータバッファ１２に設定される。なお、この例においてリードポインタがデータバッファ１２の先頭領域を進行している時にデータバッファ１２に遡及可能範囲が設定された場合には、遡及可能範囲が設定された直後にリードポインタが当該遡及可能範囲に到達することとなるが、この時点ではデータバッファ１１は消去可能状態に設定されていないため、データバッファ１１内のコンテンツデータＤ５は消去されない。
【０１１９】
データバッファ１１へのコンテンツデータＤ５の格納が完了すると、次に図４２を参照して、アドレス設定部２３は、次の先行パラメータ「Ａ８Ｓ３Ｃ」をパラメータ保持部２２から取得する。そして、取得した先行パラメータ「Ａ８Ｓ３Ｃ」に基づいて、次の読み出しアドレス「Ａ８」をレジスタ４０に設定する。
【０１２０】
次に図４３を参照して、データバッファ１２からホスト装置２へのコンテンツデータＤ２の出力が完了すると、制御部２４は、データバッファ１２を消去待機状態に設定するとともに、データバッファ１１からホスト装置２へのコンテンツデータＤ５の出力を開始する。ここで、データバッファ１２からホスト装置２へのコンテンツデータＤ２の出力が完了しても、リードポインタがデータバッファ１１の遡及可能範囲に到達するまでは、制御部２４はデータバッファ１２からコンテンツデータＤ２を消去しない。
【０１２１】
次に図４４を参照して、リードポインタがデータバッファ１１の遡及可能範囲に到達した時点で、制御部２４はデータバッファ１２からコンテンツデータＤ２を消去する。また、制御部２４は、コンテンツデータＤ２に対応してデータバッファ１１に設定されていた遡及可能範囲を削除するとともに、データバッファ１２に関する消去待機状態の設定を解除する。
【０１２２】
次に図４５を参照して、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ８」に基づいて半導体メモリ５からコンテンツデータＤ８を読み出し、読み出したコンテンツデータＤ８をデータバッファ１２に格納する。また、制御部２４は、先行パラメータ「Ａ８Ｓ３Ｃ」に基づいてコンテンツデータＤ８の属性を判定する。そして、遡及可能範囲設定情報を参照することにより、コンテンツデータＤ８の属性に対応する遡及可能範囲を、データバッファ１１に設定する。この例では、コンテンツデータＤ８の属性がプログラムコードであるため、０ｋＢｙｔｅの遡及可能範囲がデータバッファ１１に設定される。従って、コンテンツデータＤ８に関しては、データバッファ１２からの出力が完了すると同時に、データバッファ１２から消去されることとなる。
【０１２３】
以降は、パラメータ保持部２２が保持している全ての先行パラメータについての処理が完了するまで、上記と同様の処理を繰り返す。
【０１２４】
なお、以上の説明では、データの属性情報を先行パラメータに追加したが、属性情報に代えて、遡及可能範囲を直接的に示す情報を先行パラメータに追加しても良い。
【０１２５】
このように本実施の形態に係る半導体記憶装置３（及びコンピュータシステム１）によれば、制御部２４は、第１のデータバッファからホスト装置２への第１のコンテンツデータの出力が完了した後、第２のコンテンツデータのうち所定の遡及可能範囲に相当するデータが第２のデータバッファから出力された時点で、半導体メモリ５から第１のデータバッファへの第３のコンテンツデータの格納を開始する。従って、第２のコンテンツデータに関して遡及可能範囲のデータ出力が完了するまでの期間内においては、第１のデータバッファには第１のコンテンツデータが格納されている。そのため、その期間内にホスト装置２から第１のコンテンツデータの読み出し要求を受けた場合には、半導体メモリ５へアクセスすることなく、第１のデータバッファからホスト装置２に第１のコンテンツデータを出力することが可能となる。例えば、ＭＰＥＧ動画のＢフレームを処理する場合には、現フレームの直前フレーム及び直後フレームを参照する必要がある。直前フレームの動画データが第１のデータバッファに格納されており、現フレームの動画データが第２のデータバッファに格納されている場合には、ホスト装置２は、半導体メモリ５へアクセスすることなく第１のデータバッファから直前フレームの動画データを読み出すことが可能となる。
【０１２６】
また、本実施の形態に係る半導体記憶装置３によれば、制御部２４は、先行パラメータに含まれる属性情報に基づいて遡及可能範囲を決定する。従って、プログラムコード、静止画データ、音声データ、及び動画データ等のコンテンツデータの属性に応じて、それぞれ最適な遡及可能範囲を設定することが可能となる。また、属性情報を先行パラメータに含めておくことにより、制御部２４は、当該属性情報に基づいてコンテンツデータの属性別の遡及可能範囲を適切に設定することが可能となる。
【０１２７】
＜実施の形態４＞
以下、上記実施の形態１との相違点を中心に、本発明の実施の形態４に係る半導体記憶装置３について説明する。本実施の形態は、上記実施の形態２，３と組み合わせて適用することも可能である。
【０１２８】
図４６は、メモリコントローラ４の構成を簡略化して示す図である。図４６の接続関係で示すように、メモリコントローラ４は、データバッファ１１，１２，１４、パラメータ取得部２１、パラメータ保持部２２、アドレス設定部２３、制御部２４、及びリフレッシュ処理部６０を備えている。各データバッファ１１，１２，１４の記憶容量は、半導体メモリ５のページサイズと同一の３２ｋＢｙｔｅである。
【０１２９】
リフレッシュ処理部６０は、データバッファ１１，１２，１４からホスト装置２にコンテンツデータが出力されている期間内に、半導体メモリ５の空き時間を利用して半導体メモリ５のリフレッシュ処理を実行する。
【０１３０】
リフレッシュ処理部６０が実行するリフレッシュ処理の内容について説明する。まず、リフレッシュ処理部６０は、各ブロックへのアクセス回数や、各ブロックにおけるリード中のエラービット数等に基づいて、リフレッシュ対象ブロックを決定する。次に、リフレッシュ処理部６０は、リフレッシュ対象ブロックに格納されているデータを、消去済みの退避先ブロックにコピーする。次に、リフレッシュ処理部６０は、リフレッシュ対象ブロックに格納されているデータをブロックイレースによって消去した後に、退避先ブロックに格納されているデータをリフレッシュ対象ブロックにコピーする。次に、リフレッシュ処理部６０は、退避先ブロックに格納されているデータをブロックイレースによって消去する。
【０１３１】
データバッファの必要段数、及びパラメータ保持部２２内のＦＩＦＯの必要段数は、リフレッシュ処理に伴う時間に基づいて予め決定される。リフレッシュ処理に含まれる様々な処理の中で、中断が不能でかつ所要時間が最長の処理は、ブロックイレースである。例えば、ブロックイレースの所要時間が３ｍｓであり、メモリコントローラ４からホスト装置２へのデータ転送処理のスループットが１ページあたり３ｍｓである場合には、データバッファの必要段数は最低１段となる。また、リフレッシュ処理の全体の所要時間が７６ｍｓであり、メモリコントローラ４からホスト装置２へのデータ転送処理のスループットが１ページあたり３ｍｓである場合において、リフレッシュ処理の実行中に先行リードでアクセスされないブロック（つまりリフレッシュ処理を行うことが可能なブロック）を特定するためには、パラメータ保持部２２内のＦＩＦＯの必要段数は最低２６段となる。本実施の形態の例では、データバッファの段数は「３段」とし、パラメータ保持部２２内のＦＩＦＯの段数は「２７段」とする。
【０１３２】
図４７〜５６は、先行リードの処理シーケンスを示す図である。これらの図では、２７段のＦＩＦＯのうちの８段分のＦＩＦＯ３１〜３８のみが示されている。
【０１３３】
図４７を参照して、パラメータ取得部２１は、ホスト装置２から取得した先行パラメータをパラメータ保持部２２に入力する。この例では、「Ａ１Ｓ８」「Ａ５Ｓ６」「Ａ６Ｓ５」「Ａ５Ｓ７」なる４個の先行パラメータが、パラメータ保持部２２に入力される。
【０１３４】
次に図４８を参照して、アドレス設定部２３は、先行パラメータ「Ａ１Ｓ８」をパラメータ保持部２２から取得する。そして、取得した先行パラメータ「Ａ１Ｓ８」に基づいて、読み出しアドレス「Ａ１」をレジスタ４０に設定する。
【０１３５】
次に図４９を参照して、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ１」に基づいて半導体メモリ５からコンテンツデータＤ１を読み出し、読み出したコンテンツデータＤ１をデータバッファ１１に格納する。
【０１３６】
データバッファ１１へのコンテンツデータＤ１の格納が完了すると、次に図５０を参照して、アドレス設定部２３は、先行パラメータ「Ａ１Ｓ８」に基づいて、次の読み出しアドレス「Ａ２」をレジスタ４０に設定する。
【０１３７】
次に図５１を参照して、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ２」に基づいて半導体メモリ５からコンテンツデータＤ２を読み出し、読み出したコンテンツデータＤ２をデータバッファ１２に格納する。
【０１３８】
データバッファ１２へのコンテンツデータＤ２の格納が完了すると、次に図５２を参照して、アドレス設定部２３は、先行パラメータ「Ａ１Ｓ８」に基づいて、次の読み出しアドレス「Ａ３」をレジスタ４０に設定する。
【０１３９】
次に図５３を参照して、制御部２４は、レジスタ４０に設定されている読み出しアドレス「Ａ３」に基づいて半導体メモリ５からコンテンツデータＤ３を読み出し、読み出したコンテンツデータＤ３をデータバッファ１４に格納する。
【０１４０】
データバッファ１４へのコンテンツデータＤ３の格納が完了すると、次に図５４を参照して、制御部２４は、ステータスの通知又はバスウェイトの解除等によって、データバッファ１１からホスト装置２へのコンテンツデータＤ１の出力を開始する。また、リフレッシュ処理部６０は、リフレッシュ処理を開始する。また、アドレス設定部２３は、先行パラメータ「Ａ１Ｓ８」に基づいて、次の読み出しアドレス「Ａ４」をレジスタ４０に設定する。
【０１４１】
次に図５５を参照して、データバッファ１１からホスト装置２へのコンテンツデータＤ１の出力が完了すると、制御部２４は、データバッファ１２からホスト装置２へのコンテンツデータＤ２の出力を続けて開始する。また、リフレッシュ処理部６０は、現在実行中の処理が完了した時点でリフレッシュ処理を中断する。
【０１４２】
次に図５６を参照して、制御部２４は、データバッファ１１からコンテンツデータＤ１を消去した後、レジスタ４０に設定されている読み出しアドレス「Ａ４」に基づいて半導体メモリ５からコンテンツデータＤ４を読み出し、読み出したコンテンツデータＤ４をデータバッファ１１に格納する。その後、リフレッシュ処理部６０は、中断していたリフレッシュ処理を再開する。
【０１４３】
以降は、パラメータ保持部２２が保持している全ての先行パラメータについての処理が完了するまで、上記と同様の処理を繰り返す。
【０１４４】
このように本実施の形態に係る半導体記憶装置３（及びコンピュータシステム１）によれば、リフレッシュ処理部６０は、複数のデータバッファ１１，１２，１４からホスト装置２にコンテンツデータが出力されている期間内に、半導体メモリ５のリフレッシュ処理を実行する。このように、半導体メモリ５からデータバッファへのデータの読み出しが行われていない空き時間を利用して、半導体メモリ５のリフレッシュ処理を実行することにより、空き時間を有効に活用することが可能となる。
【０１４５】
また、本実施の形態に係る半導体記憶装置３によれば、制御部２４は、複数のデータバッファへのコンテンツデータの格納が完了した後に、データバッファからホスト装置２へのコンテンツデータの出力を開始する。従って、比較的長い空き時間を確保できるため、複数のデータバッファ内の格納データが全て枯渇してしまう前に、リフレッシュ処理を完了することができる。そのため、制御部２４は、リフレッシュ処理が完了した後に、データ出力済みのデータバッファへの次のコンテンツデータの格納を開始できるため、複数のデータバッファへの次のコンテンツデータの格納を早期に完了することができる。その結果、複数のデータバッファからホスト装置２への次のコンテンツデータの出力を、早期に開始することが可能となる。
【０１４６】
＜実施の形態５＞
以下、上記実施の形態１との相違点を中心に、本発明の実施の形態５に係る半導体記憶装置３について説明する。本実施の形態は、上記実施の形態２〜４と組み合わせて適用することも可能である。
【０１４７】
図５７は、メモリコントローラ４の構成を簡略化して示す図である。図５７の接続関係で示すように、メモリコントローラ４は、データバッファ１１，１２，１４、パラメータ取得部２１、パラメータ保持部２２、アドレス設定部２３、制御部２４、及び多重化処理部７０を備えている。各データバッファ１１，１２，１４の記憶容量は、半導体メモリ５のページサイズと同一の３２ｋＢｙｔｅである。
【０１４８】
多重化処理部７０は、データバッファ１１，１２，１４からホスト装置２にコンテンツデータが出力されている期間内に、半導体メモリ５の空き時間を利用して半導体メモリ５の多重化処理を実行する。
【０１４９】
多重化処理部７０が実行する多重化処理の内容について説明する。まず、多重化処理部７０は、各ブロックへのアクセス回数、各ブロックにおけるリード中のエラービット数、及び各ブロックに格納されているデータの属性等に基づいて、多重化対象ブロックを決定する。次に、多重化処理部７０は、多重化対象ブロックに格納されているデータを、消去済みのスペアブロックにコピーする。次に、多重化処理部７０は、メモリコントローラ４内の管理情報を更新する。
【０１５０】
多重化対象ブロックを対象とするデータの読み出し要求がホスト装置２からメモリコントローラ４に入力されると、メモリコントローラ４は、多重化対象ブロックからのデータの読み出しと、スペアブロックからのデータの読み出しとを交互に行う。これにより、特定のブロックへの負荷の集中を回避することが可能となる。
【０１５１】
データバッファの必要段数、及びパラメータ保持部２２内のＦＩＦＯの必要段数は、多重化処理に伴う時間に基づいて予め決定される。多重化処理に含まれる様々な処理の中で、中断が不能でかつ所要時間が最長の処理は、データの書き込み処理である。例えば、データ書き込みの所要時間が５５０μｓであり、メモリコントローラ４からホスト装置２へのデータ転送処理のスループットが１ページあたり３ｍｓである場合には、データバッファの必要段数は最低１段となる。また、多重化処理の全体の所要時間が３６ｍｓであり、メモリコントローラ４からホスト装置２へのデータ転送処理のスループットが１ページあたり３ｍｓである場合において、多重化処理の実行中に先行リードでアクセスされないブロック（つまり多重化処理を行うことが可能なブロック）を特定するためには、パラメータ保持部２２内のＦＩＦＯの必要段数は最低１２段となる。本実施の形態の例では、データバッファの段数は「３段」とし、パラメータ保持部２２内のＦＩＦＯの段数は「１３段」とする。
【０１５２】
先行リードの処理シーケンスは、リフレッシュ処理が多重化処理に変更される点を除いて、上記実施の形態４と同様である。つまり、全てのデータバッファ１１，１２，１４へのコンテンツデータの格納が完了した後に、ホスト装置２へのコンテンツデータの出力と、多重化処理部７０による多重化処理とが開始される。また、データバッファ１１からホスト装置２へのコンテンツデータの出力が完了した場合には、多重化処理部７０は、現在実行中の処理が完了した時点で多重化処理を中断し、制御部２４は、データバッファ１１に次のコンテンツデータを格納する。その後、多重化処理部７０は、中断していた多重化処理を再開する。
【０１５３】
このように本実施の形態に係る半導体記憶装置３（及びコンピュータシステム１）によれば、多重化処理部７０は、複数のデータバッファ１１，１２，１４からホスト装置２にコンテンツデータが出力されている期間内に、半導体メモリ５の多重化処理を実行する。このように、半導体メモリ５からデータバッファへのデータの読み出しが行われていない空き時間を利用して、半導体メモリ５の多重化処理を実行することにより、空き時間を有効に活用することが可能となる。
【０１５４】
また、本実施の形態に係る半導体記憶装置３によれば、制御部２４は、複数のデータバッファへのコンテンツデータの格納が完了した後に、データバッファからホスト装置２へのコンテンツデータの出力を開始する。従って、比較的長い空き時間を確保できるため、複数のデータバッファ内の格納データが全て枯渇してしまう前に、多重化処理を完了することができる。そのため、制御部２４は、多重化処理が完了した後に、データ出力済みのデータバッファへの次のコンテンツデータの格納を開始できるため、複数のデータバッファへの次のコンテンツデータの格納を早期に完了することができる。その結果、複数のデータバッファからホスト装置２への次のコンテンツデータの出力を、早期に開始することが可能となる。
【符号の説明】
【０１５５】
１  コンピュータシステム
２  ホスト装置
３  半導体記憶装置
４  メモリコントローラ
５  半導体メモリ
１１〜１４  データバッファ
２１  パラメータ取得部
２２  パラメータ保持部
２３  アドレス設定部
２４  制御部
５０  アドレス選択部
６０  リフレッシュ処理部
７０  多重化処理部
【図１】
2014123328.tif 000003
【図２】
2014123328.tif 000004
【図３】
2014123328.tif 000005
【図４】
2014123328.tif 000006
【図５】
2014123328.tif 000007
【図６】
2014123328.tif 000008
【図７】
2014123328.tif 000009
【図８】
2014123328.tif 000010
【図９】
2014123328.tif 000011
【図１０】
2014123328.tif 000012
【図１１】
2014123328.tif 000013
【図１２】
2014123328.tif 000014
【図１３】
2014123328.tif 000015
【図１４】
2014123328.tif 000016
【図１５】
2014123328.tif 000017
【図１６】
2014123328.tif 000018
【図１７】
2014123328.tif 000019
【図１８】
2014123328.tif 000020
【図１９】
2014123328.tif 000021
【図２０】
2014123328.tif 000022
【図２１】
2014123328.tif 000023
【図２２】
2014123328.tif 000024
【図２３】
2014123328.tif 000025
【図２４】
2014123328.tif 000026
【図２５】
2014123328.tif 000027
【図２６】
2014123328.tif 000028
【図２７】
2014123328.tif 000029
【図２８】
2014123328.tif 000030
【図２９】
2014123328.tif 000031
【図３０】
2014123328.tif 000032
【図３１】
2014123328.tif 000033
【図３２】
2014123328.tif 000034
【図３３】
2014123328.tif 000035
【図３４】
2014123328.tif 000036
【図３５】
2014123328.tif 000037
【図３６】
2014123328.tif 000038
【図３７】
2014123328.tif 000039
【図３８】
2014123328.tif 000040
【図３９】
2014123328.tif 000041
【図４０】
2014123328.tif 000042
【図４１】
2014123328.tif 000043
【図４２】
2014123328.tif 000044
【図４３】
2014123328.tif 000045
【図４４】
2014123328.tif 000046
【図４５】
2014123328.tif 000047
【図４６】
2014123328.tif 000048
【図４７】
2014123328.tif 000049
【図４８】
2014123328.tif 000050
【図４９】
2014123328.tif 000051
【図５０】
2014123328.tif 000052
【図５１】
2014123328.tif 000053
【図５２】
2014123328.tif 000054
【図５３】
2014123328.tif 000055
【図５４】
2014123328.tif 000056
【図５５】
2014123328.tif 000057
【図５６】
2014123328.tif 000058
【図５７】
2014123328.tif 000059