(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024063644
(43)【公開日】2024-05-13
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
G06F 12/0888 20160101AFI20240502BHJP
【FI】
G06F12/0888 104
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022171756
(22)【出願日】2022-10-26
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110002907
【氏名又は名称】弁理士法人イトーシン国際特許事務所
(72)【発明者】
【氏名】井上 幸一
(72)【発明者】
【氏名】宮元 幸代
(72)【発明者】
【氏名】内田 穣
(72)【発明者】
【氏名】岩代 太郎
(72)【発明者】
【氏名】坂上 健二
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205JJ11
5B205KK16
5B205MM01
5B205NN72
5B205NN88
5B205NN96
(57)【要約】
【課題】 キャッシュメモリに対するサーチを高速化することができる。
【解決手段】 実施形態のメモリシステムは、不揮発性メモリに記憶されたキャッシュ対象データをキャッシュメモリに転送するダイレクトメモリアクセスコントローラと、キャッシュメモリに格納されたキャッシュ対象データであるキャッシュデータをサーチする第1サーチ回路と、ダイレクトメモリアクセスコントローラによるキャッシュ対象データのキャッシュメモリへの転送途中において、転送されるキャッシュ対象データに対するサーチを実行する第2サーチ回路と、第2サーチ回路がサーチヒットを検出したことに応じ、キャッシュ対象データのキャッシュメモリへの転送に際して少なくともキャッシュメモリに設定したバス権を、転送制御回路と第2サーチ回路とに設定する転送制御回路と、を具備する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
不揮発性メモリと、
バスと、
前記バスに接続された、
キャッシュメモリと、
ダイレクトメモリアクセスコントローラと、
第1サーチ回路と、
第2サーチ回路と、
転送制御回路と、
を含むメモリコントローラと、を具備し、
前記ダイレクトメモリアクセスコントローラは、前記不揮発性メモリに記憶されたキャッシュ対象データを前記キャッシュメモリへ転送するように構成され、
前記第1サーチ回路は、前記キャッシュメモリに格納された前記キャシュ対象データであるキャッシュデータをサーチするように構成され、
前記第2サーチ回路は、前記ダイレクトメモリアクセスコントローラによる前記キャッシュ対象データの前記キャッシュメモリへの転送途中において、転送される前記キャッシュ対象データに対するサーチを実行するように構成され、
前記転送制御回路は、前記第2サーチ回路がサーチヒットを検出したことに応じ、前記キャッシュ対象データの前記キャッシュメモリへの転送に際して少なくとも前記キャッシュメモリに設定したバス権を、前記転送制御回路と前記第2サーチ回路とに設定するように構成される、
メモリシステム。
【請求項2】
前記第2サーチ回路は、前記ダイレクトメモリアクセスコントローラに内蔵される、
請求項1に記載のメモリシステム。
【請求項3】
前記転送制御回路は、前記キャッシュ対象データの前記キャッシュメモリへの転送時に、前記ダイレクトメモリアクセスコントローラへの前記バス権の設定を行わないようにさらに構成される、
請求項1に記載のメモリシステム。
【請求項4】
前記転送制御回路は、前記キャッシュ対象データの前記キャッシュメモリへの転送時に、前記キャッシュ対象データの一部のデータを前記キャッシュメモリに格納し、前記キャッシュ対象データの他の一部のデータを前記キャッシュメモリに格納しない、ようにさらに構成される
請求項1に記載のメモリシステム。
【請求項5】
前記キャッシュメモリは、テンポラリメモリを備え、
前記転送制御回路は、前記キャッシュ対象データの前記キャッシュメモリへの転送時に、前記キャッシュ対象データを前記テンポラリメモリに転送し、前記第2サーチ回路のサーチ結果に従って、前記テンポラリメモリに格納されたデータを前記キャッシュデータとして前記キャッシュメモリに記憶させるか否かを決定するようにさらに構成される、
請求項1に記載のメモリシステム。
【請求項6】
前記バスは複数系統のバスを含み、
前記転送制御回路は、前記第1サーチ回路による前記キャッシュメモリ内の前記キャッシュデータのサーチと、前記第2サーチ回路による前記転送されるキャッシュ対象データのサーチと、が並列処理されるように前記バス権を設定するように構成される、
請求項1に記載のメモリシステム。
【請求項7】
前記第2サーチ回路は、前記転送されるキャッシュ対象データに対して、複数のサーチ条件による並列サーチを実行するように構成される、
請求項1に記載のメモリシステム。
【請求項8】
前記転送制御回路は、前記第2サーチ回路から前記転送されるキャッシュ対象データに対するキャッシュヒットが通知されると、前記第2サーチ回路によるサーチ結果を用いた前記不揮発性メモリへのアクセスを実行するようにさらに構成される、
請求項1に記載のメモリシステム。
【請求項9】
前記転送制御回路は、前記第2サーチ回路から前記転送されるキャッシュ対象データに対するサーチミスが通知されると、前記第2サーチ回路からのサーチミスの通知後に、前記不揮発性メモリから前記キャッシュ対象データの再転送を実施するようにさらに構成される、
請求項1に記載のメモリシステム。
【請求項10】
前記バスは複数系統のバスを含み、
前記第1サーチ回路及び前記第2サーチ回路は、いずれも、前記キャッシュメモリに記憶された前記キャッシュデータをサーチする機能と、前記ダイレクトメモリアクセスコントローラにより転送される前記キャッシュ対象データに対するサーチを実行する機能とを備え、
前記転送制御回路は、前記第1及び第2サーチ回路により、前記キャッシュメモリ内のキャッシュデータのサーチと、前記転送されるキャッシュ対象データのサーチと、が並列処理されるように前記バス権を設定するように構成される、
請求項1に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【0002】
半導体記憶装置として、NAND型フラッシュメモリのような不揮発性メモリを用いたメモリシステムが知られている。メモリシステムは、不揮発性メモリと不揮発性メモリを制御するメモリコントローラとを含む。メモリコントローラがキャッシュメモリを備える場合がある。メモリアクセスの高速化のためには、キャッシュメモリに対するサーチの高速化が要求される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本実施形態は、キャッシュメモリに対するサーチを高速化することができるメモリシステムを提供する。
【課題を解決するための手段】
【0005】
実施形態のメモリシステムは、不揮発性メモリと、メモリコントローラと、を具備する。メモリコントローラは、バスと、バスに接続された、キャッシュメモリと、ダイレクトメモリアクセスコントローラと、第1サーチ回路と、第2サーチ回路と、転送制御回路と、を含む。ダイレクトメモリアクセスコントローラは、不揮発性メモリに記憶されたキャッシュ対象データをキャッシュメモリへ転送するように構成される。第1サーチ回路は、キャッシュメモリに格納されたキャシュ対象データであるキャッシュデータをサーチするように構成される。第2サーチ回路は、ダイレクトメモリアクセスコントローラによるキャッシュ対象データのキャッシュメモリへの転送途中において、転送されるキャッシュ対象データに対するサーチを実行するように構成される。転送制御回路は、第2サーチ回路がサーチヒットを検出したことに応じ、キャッシュ対象データのキャッシュメモリへの転送に際して少なくともキャッシュメモリに設定したバス権を、転送制御回路と第2サーチ回路とに設定するように構成される。
【図面の簡単な説明】
【0006】
【
図2】比較例の動作を説明するためのタイミングチャート。
【
図3】第1の実施形態の動作を説明するためのタイミングチャート。
【
図4】第1の実施形態の動作を説明するためのフローチャート。
【
図6】第2の実施形態の動作を説明するためのタイミングチャート。
【
図7】第2の実施形態の動作を説明するためのフローチャート。
【
図8】第2の実施形態の第1の変形例において更新されるキャッシュデータの一例を説明するための図。
【
図9】第2の実施形態の第2の変形例を示すブロック図。
【
図10】第3の実施形態の構成例を示すブロック図。
【
図11】第3の実施形態の動作を説明するための図。
【
図12】第4の実施形態の構成例を示すブロック図。
【
図13】第4の実施形態のサーチ部の具体的な構成の一例を示す回路図。
【
図14】第4の実施形態に係るキャッシュ対象データのデータフォーマットを示す図。
【
図15】比較例の動作を説明するためのタイミングチャート。
【
図16】第5の実施形態の動作を説明するためのタイミングチャート。
【
図17】第5の実施形態の動作を説明するためのフローチャート。
【
図18】第6の実施形態の動作を説明するためのタイミングチャート。
【
図19】第7の実施形態の構成例を示すブロック図。
【
図20】第7の実施形態の動作を説明するためのタイミングチャート。
【発明を実施するための形態】
【0007】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【0008】
(第1の実施形態)
本実施形態は、不揮発性メモリからのキャッシュ対象データのキャッシュメモリへの転送と、転送されるキャッシュ対象データに対するサーチとを同時に実行することにより、メモリアクセスを高速化することを可能にするものである。なお、本実施形態においては、キャッシュ対象データが、ホスト装置から指定される論理アドレスとNAND型フラッシュメモリ上の記憶領域を示す物理アドレスとの対応関係を示す論理物理アドレス変換テーブル(以下、L2P(Logical to Physical)テーブルという)のデータである例について説明するが、キャッシュ対象データはこれに限定されるものではない。
【0009】
(メモリシステムの構成)
図1はメモリシステムの構成例を示すブロック図である。本実施形態のメモリシステム1は、メモリコントローラ2と不揮発性メモリ3とを備える。なお、
図1では、メモリコントローラ2の構成のうちキャッシュ対象データの転送及びサーチに関する構成を詳細に示しており、他の構成の図示は省略している。メモリシステム1は、図示しないホスト装置と接続可能である。ホスト装置は、例えば、パーソナルコンピュータ、携帯端末などの電子機器である。
【0010】
メモリシステム1は、ホスト装置が搭載されたマザーボード上に実装され得る。メモリシステム1は、複数の半導体チップで構成されてもよい。メモリシステム1の例は、メモリコントローラ2と不揮発性メモリ3とが1つのパッケージとして構成されるUFS(Universal Flash Storage)デバイス、SDカードのようなメモリカード、SSD(Solid-State-Drive)、又はeMMC(embedded-Multi-Media-Card)である。
【0011】
不揮発性メモリ3は、複数のメモリチップを含んでもよい。不揮発性メモリ3は、例えば、複数のメモリセルを備えたNAND型フラッシュメモリである。不揮発性メモリ3は、複数のメモリセルトランジスタを備えたメモリセルアレイを有する。各メモリセルトランジスタは、電気的に書き換え可能なメモリセルを構成する。不揮発性メモリ3は、メモリセルトランジスタに印加する電圧を制御するために、複数のビット線BL、複数のワード線WL、およびソース線CELSRCを含む。不揮発性メモリ3は、複数のブロックを備える。各ブロックはデータ消去動作の最小単位として機能する。各ブロックは複数のページを含む。各ページは、データ書き込み動作及びデータ読み出し動作の単位として機能する。なお、各ワード線WLがデータ書き込み動作およびデータ読み出し動作の単位として機能してもよい。
【0012】
不揮発性メモリ3の各メモリセルにはn(nは、1以上の整数)ビットデータが書き込み可能である。メモリセルは、1ビットデータを記憶可能なSLC(Single Level Cell)であってもよい。メモリセルは、2ビットデータを記憶可能なMLC(Multi Level Cell)であってもよい。メモリセルは、3ビットデータを記憶可能なTLC(Triple Level Cell)であってもよい。メモリセルは、4ビットデータを記憶可能なQLC(Quad Level Cell)であってもよい。不揮発性メモリ3には、キャッシュ対象データとしてメモリコントローラ2へ転送されるL2PテーブルLTが格納される。
【0013】
メモリコントローラ2は、システムLSI(Large-Scale Integrated Circuit)又はSoC(System-on-a-Chip)で構成され得る。メモリコントローラ2の各部の機能は、専用ハードウェア、プログラムを実行するプロセッサ、又は、これらの組み合わせにより実現され得る。
【0014】
メモリコントローラ2は、プロセッサ11と、キャッシュメモリ12と、バス13と、ダイレクトメモリアクセスコントローラ(以下、DMACという)14と、テーブルサーチエンジン(以下、TSEという)15と、スヌーピングテーブルサーチエンジン(以下、S_TSEという)16と、図示しないホストインターフェース回路(以下、ホストI/Fという)と、図示しないバッファメモリと、を含む。
【0015】
ホストI/Fは、ホスト装置との間でデータを送受信する。バッファメモリは、ホスト装置との間で送受信されるデータを一時格納する。なお、バッファメモリは、例えば、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)のような汎用メモリである。
【0016】
プロセッサ11は、図示しないROMに記憶されたプログラム(ファームウェア)を実行することよって、メモリシステム1の各部を統括的に制御する。プロセッサ11は、中央処理装置(CPU)等により構成される。プロセッサ11は、ホストI/F経由でホスト装置からの要求を受けた場合に、その要求に従った処理を実行することによって各種制御を行う。例えば、プロセッサ11は、ホスト装置からの要求に従って、不揮発性メモリ3へのデータの書き込みを制御する。また、プロセッサ11は、ホスト装置からの要求に従って、不揮発性メモリ3からのデータの読み出しを制御する。
【0017】
キャッシュメモリ12には、不揮発性メモリ3に格納されているL2PテーブルLTの少なくとも一部が転送されて格納される。以下、キャッシュメモリ12に格納されたL2PテーブルLTの少なくとも一部をL2PテーブルLTCという。なお、キャッシュメモリ12には、L2PテーブルLTCの他に、不揮発性メモリ3から読み出されたデータもキャッシュデータDCとして格納される。
【0018】
不揮発性メモリ3に格納されているL2PテーブルLTは、ホスト装置から受信したデータの論理アドレスと該データが記憶された不揮発性メモリ3上の各記憶領域を示す物理アドレスとを1対1に対応付けるデータを含む。プロセッサ11は、キャッシュメモリ12に転送されたL2PテーブルLTCを参照することで、ホスト装置が指定した論理アドレスを物理アドレスに変換する。
【0019】
プロセッサ11は、ホスト装置からデータの書き込み要求を受信した場合、ホスト装置から受信したデータを格納するための不揮発性メモリ3上の物理アドレスを決定する。即ち、プロセッサ11は、データの書き込み先を管理する。プロセッサ11は、決定した物理アドレスの記憶領域(メモリ領域)に、データを書き込む。そして、プロセッサ11は、キャッシュメモリ12に格納されているL2PテーブルLTCを更新して、書き込み要求により指定された論理アドレスと該物理アドレスとを関連付ける。なお、プロセッサ11は、任意のタイミングにおいて、キャッシュメモリ12に格納されているL2PテーブルLTCを不揮発性メモリ3に不揮発化する。
【0020】
また、プロセッサ11は、ホスト装置からデータの読み出し要求を受信した場合、読み出し要求により指定された論理アドレスについて、キャッシュメモリ12に格納されているL2PテーブルLTCを参照(サーチ)する。プロセッサ11は、該論理アドレスに関連付けられた物理アドレスを特定する。そして、プロセッサ11は、該物理アドレスの記憶領域からデータを読み出す。
【0021】
DMAC14は、不揮発性メモリ3に格納されたL2PテーブルLTをキャッシュメモリ12に転送する。DMAC14は、割り込み生成回路14Iを含む。DMAC14は、プロセッサ11から転送要求を受信すると、転送要求に含まれる設定(以下、L2Pテーブル転送設定という)に従って、L2PテーブルLTを不揮発性メモリ3からバス13を経由してキャッシュメモリ12に転送する。L2Pテーブル転送設定は、例えば、不揮発性メモリ3のアドレスと、キャッシュメモリ12のアドレスと、転送されるL2PテーブルLTのサイズと、を含む。こうして、L2PテーブルLTの一部であるL2PテーブルLTCがキャッシュメモリ12に格納される。キャッシュメモリ12へのL2PテーブルLTCの格納が完了すると、割り込み生成回路14Iは、プロセッサ11に割り込みを送信する。
【0022】
TSE15は、L2PテーブルLTCをサーチする。TSE15は、第1サーチ回路の一例である。TSE15は、比較回路15C、サーチ条件15Sを記憶するためのサーチレジスタ、サーチ結果15SRを記憶するための結果レジスタ、及び割り込み生成回路15Iを含む。
【0023】
TSE15は、プロセッサ11からサーチ要求を受信すると、サーチ要求に含まれるサーチ条件15S(以下、L2Pテーブルサーチ設定という)をサーチレジスタに格納する。サーチ条件15Sは、例えば、論理アドレスを含む。比較回路15Cは、サーチ条件15Sに従って、キャッシュメモリ12のL2PテーブルLTCをサーチしてサーチ結果15SRを取得する。例えば、サーチ条件15Sとして論理アドレスが指定された場合、比較回路15Cは、L2PテーブルLTCから当該論理アドレスに関連付けられた物理アドレスをサーチ結果15SRとして取得する。比較回路15Cは、サーチ結果15SRを結果レジスタに格納する。サーチ結果15SRが取得されると、割り込み生成回路15Iは、プロセッサ11に割り込みを送信する。プロセッサ11は、サーチ結果15SRを取得する。
【0024】
S_TSE16の詳細については後述する。
【0025】
プロセッサ11には、バスインタフェース回路(以下、BUS_IFという)11aが設けられ、キャッシュメモリ12には、BUS_IF12a,12bが設けられ、DMAC14には、BUS_IF14a,14bが設けられ、TSE15には、BUS_IF15a,15bが設けられ、S_TSE16にはBUS_IF16aが設けられる。BUS_IF11aと、BUS_IF12a,12bと、BUS_IF14a,14bと、BUS_IF15a,15bと、BUS_IF16aとは、バス13を介してデータの転送を行う。プロセッサ11は、これらのバスインタフェース回路に対して、バスマスター又はバススレーブとして機能する権限を与えるバス調停機能を有する。各バスインタフェース回路は、プロセッサ11によりバスマスター又はバススレーブが設定されることで、バス13を使用する権限(以下、バス権という)を得る。なお、バス調停機能は、プロセッサ11に限らず、メモリコントローラ2内の任意のモジュールによって実現され得る。
【0026】
(比較例における転送及びサーチ)
図2は、比較例におけるキャッシュ対象データ(L2PテーブルLT)の転送とキャッシュデータのサーチを説明するためのタイミングチャートである。比較例は、
図1の構成からS_TSE16を除く構成を有する。
図2は、バス権を取得しているバスインタフェース回路、プロセッサ11、TSE15、及びDMAC14の処理内容、並びにキャッシュメモリ12へのアクセスを示す。
【0027】
ここでは、キャッシュメモリ12に、論理アドレスLA1及びLA3に対応するL2PテーブルLTCのエントリーが格納され、論理アドレスLA2に対応するL2PテーブルLTCのエントリーは格納されていないものとして、比較例における転送及びサーチを説明する。
【0028】
プロセッサ11は、バス権をプロセッサ11(BUS_IF11a)及びTSE15(BUS_IF15a)に割り当てる(
図2のt1)。これにより、プロセッサはTSE15へアクセス可能になる(
図2のバス権のCPU、TSE)。プロセッサ11は、TSE15を起動し、サーチ条件15Sとして論理アドレスLA1を指定する(
図2の(0))。
【0029】
プロセッサ11は、バス権をTSE15(BUS_IF15b)及びキャッシュメモリ12(BUS_IF12b)に割り当てる(
図2のt2)。これにより、TSE15はキャッシュメモリ12へアクセス可能になる(
図2のバス権のTSE、キャッシュメモリ)。TSE15の比較回路15Cは、論理アドレスLA1を用いてL2PテーブルLTCをサーチする(
図2の(1)のLA1サーチ)。キャッシュメモリ12は、L2PテーブルLTCからのLA1のサーチのために、リードアクセスされる(
図2のLA1サーチリードアクセス)。サーチの結果は、キャッシュヒット(ヒット)である。TSE15の比較回路15Cは、論理アドレスLA1に関連付けられた物理アドレスをサーチ結果15SRに格納する。TSE15の割り込み生成回路15Iは、プロセッサ11に割り込みを送信する(
図2の(2))。
【0030】
プロセッサ11は、バス権をプロセッサ11(BUS_IF11a)及びTSE15(BUS_IF15a)に割り当てる(
図2のt3)。これにより、プロセッサ11はTSE15へアクセス可能になる(
図2のバス権のCPU、TSE)。プロセッサ11は、TSE15からサーチ結果15SRである物理アドレスを取得する(
図2の(3))。次に、プロセッサ11は、論理アドレスLA2でのサーチを行うためのサーチ条件15SをTSE15に設定する(
図2の(4))。
【0031】
プロセッサ11は、バス権をTSE15(BUS_IF15b)及びキャッシュメモリ12(BUS_IF12b)に割り当てる(
図2のt4)。これにより、TSE15はキャッシュメモリ12へアクセス可能になる(
図2のバス権のTSE、キャッシュメモリ)。TSE15の比較回路15Cは、論理アドレスLA2を用いてL2PテーブルLTCをサーチする(
図2の(5)のLA2サーチ)。キャッシュメモリ12は、L2PテーブルLTCからのLA2のサーチのために、リードアクセスされる(
図2のLA2サーチリードアクセス)。サーチの結果は、キャッシュミスである。TSE15の割り込み生成回路15Iは、プロセッサ11に割り込みを送信する(
図2の(6))。
【0032】
プロセッサ11は、バス権をプロセッサ11(BUS_IF11a)及びTSE15(BUS_IF15a)に割り当てる(図示省略)。プロセッサ11は、TSE15からサーチ結果15SR(ミス)を取得する。
【0033】
プロセッサ11は、バス権をプロセッサ11(BUS_IF11a)及びDMAC14(BUS_IF14a)に割り当てる(
図2のt5)。これにより、プロセッサ11はDMAC14へアクセス可能になる(
図2のバス権のCPU、DMAC)。プロセッサ11は、DMAC14に、L2PテーブルLTの転送要求を送信する(
図2のDMAC起動)。転送要求は、少なくとも論理アドレスLA2に対応するエントリーを転送するためのL2Pテーブル転送設定を含む。
【0034】
プロセッサ11は、バス権をDMAC14(BUS_IF14b)及びキャッシュメモリ12(BUS_IF12a)に割り当てる(
図2のt6)。これにより、DMAC14はキャッシュメモリ12へアクセス可能になる(
図2のバス権のDMAC、キャッシュメモリ)。DMAC14は、不揮発性メモリ3にアクセスしてL2PテーブルLTの一部を読み出す。DMAC14は、読み出したL2PテーブルLTの一部をBUS_IF14b、バス13、及びBUS_IF12aを介してキャッシュメモリ12に転送する(
図2の(7)のL2Pテーブル転送)。キャッシュメモリ12は、L2PテーブルLTの転送のために、ライトアクセスされる(
図2の(8)のL2Pテーブルライトアクセス)。L2PテーブルLTの転送が完了すると、DMAC14の割り込み生成回路14Iは、プロセッサ11に割り込みを送信する(
図2の(9))。
【0035】
プロセッサ11は、バス権をプロセッサ11(BUS_IF11a)及びTSE15(BUS_IF15a)に割り当てる(
図2のt7)。これにより、プロセッサはTSE15へアクセス可能になる(
図2のバス権のCPU、TSE)。プロセッサ11は、サーチのためにTSE15を起動し、サーチ条件15Sとして論理アドレスLA2を指定する(
図2の(10))。
【0036】
プロセッサ11は、バス権をTSE15(BUS_IF15b)及びキャッシュメモリ12(BUS_IF12b)に割り当てる(
図2のt8)。これにより、TSE15はキャッシュメモリ12へアクセス可能になる(
図2のバス権のTSE、キャッシュメモリ)。TSE15の比較回路15Cは、論理アドレスLA2にてL2PテーブルLTCをサーチする(
図2の(11)のLA2サーチ)。キャッシュメモリ12は、L2PテーブルLTCからのLA2のサーチのために、リードアクセスされる(
図2のLA2サーチリードアクセス)。サーチの結果は、キャッシュヒット(ヒット)である。TSE15の割り込み生成回路15Iは、プロセッサ11に割り込みを送信する(
図2の(12))。
【0037】
プロセッサ11は、バス権をプロセッサ11(BUS_IF11a)及びTSE15(BUS_IF15a)に割り当てる(
図2のt9)。これにより、プロセッサ11はTSE15へアクセス可能になる(
図2のバス権のCPU、TSE)。プロセッサ11は、TSE15からサーチ結果15SR(ヒット)を取得する(
図2の(13))。次に、プロセッサ11は、論理アドレスLA3でのサーチを行うためのサーチ条件15SをTSE15に指定する(
図2の(14))。
【0038】
プロセッサ11は、バス権をTSE15(BUS_IF15b)及びキャッシュメモリ12(BUS_IF12b)に割り当てる(
図2のt10)。これにより、TSE15はキャッシュメモリ12へアクセス可能になる(
図2のバス権のTSE、キャッシュメモリ)。TSE15の比較回路15Cは、論理アドレスLA3にてL2PテーブルLTCをサーチする(
図2の(15))。
【0039】
このように、比較例においては、キャッシュミスが検出されると、不揮発性メモリ3からサーチ対象データ(キャッシュ対象データ)がキャッシュメモリ12に転送され、転送完了後にキャッシュメモリ12に対するサーチが行われる。即ち、キャッシュミス時においては、データ転送とサーチとの2段階の処理が必要であり、処理時間が増大するという欠点がある。
【0040】
(S_TES)
そこで、本実施形態においては、S_TSE16が採用される。S_TSE16は、第2サーチ回路の一例である。
図1に示すように、S_TSE16は、TSE15と同様の構成を有する。即ち、S_TSE16は、比較回路16C、サーチ条件16Sを記憶するためのサーチレジスタ、サーチ結果16SRを記憶するための結果レジスタ、及び割り込み生成回路16Iを含む。本実施形態においては、S_TSE16の比較回路16Cには、DMAC14が不揮発性メモリ3からキャッシュメモリ12に転送するL2PテーブルLTのデータが、データバスを経由して転送途中に入力されるようになっている。
【0041】
S_TSE16は、プロセッサ11からサーチ要求を受信すると、サーチ要求に含まれるサーチ条件16S(L2Pテーブルサーチ設定)をサーチレジスタに格納する。サーチ条件16Sは、例えば、論理アドレスを含む。比較回路16Cは、サーチ条件16Sに従って、DMAC14から入力されたL2PテーブルLTをサーチしてサーチ結果16SRを取得する。例えば、サーチ条件16Sとして論理アドレスが指定された場合、比較回路16Cは、転送途中のL2PテーブルLTから当該論理アドレスに関連付けられた物理アドレスをサーチ結果16SRとして取得する。比較回路16Cは、サーチ結果16SRを結果レジスタに格納する。サーチ結果16SRが取得されると、割り込み生成回路16Iは、プロセッサ11に割り込みを送信する。プロセッサ11は、サーチ結果16SRを取得する。
【0042】
比較例と同様に、TSE15がL2PテーブルLTCのサーチにおいてキャッシュミスを検出すると、DMAC14によってキャッシュメモリ12にL2PテーブルLTが転送される。本実施形態においては、その転送途中においてS_TSE16によりサーチ(以下、転送中サーチという)が実行される。データ転送とサーチとが同時に実行される結果、サーチ結果を高速に取得することが可能となる。
【0043】
本実施形態においては、転送中サーチのサーチ結果をプロセッサ11が取得するために、プロセッサ11は転送制御回路として機能し、後述するようにバス権の調停を行う。
【0044】
(作用)
次に、このように構成された実施形態の動作について
図3を参照して説明する。
図3は第1の実施形態の動作を説明するためのタイミングチャートである。
図3はキャッシュ対象データ(L2PテーブルLT)の転送とキャッシュデータのサーチを説明するためのタイミングチャートである。
図3は、バス権を取得しているバスインタフェース回路、プロセッサ11、TSE15、DMAC14、及びS_TSE16の処理内容、並びにキャッシュメモリ12へのアクセスを示す。なお、
図3は
図2と同様の表記方法を採用するものであり、
図2と同様の手順については説明を省略する場合がある。
【0045】
ここでは、
図2と同様に、キャッシュメモリ12に、論理アドレスLA1及びLA3に対応するL2PテーブルLTCのエントリーが格納され、論理アドレスLA2に対応するL2PテーブルLTCのエントリーは格納されていないものとして、第1の実施形態における転送及びサーチを説明する。
【0046】
プロセッサ11は、バス権をプロセッサ11(BUS_IF11a)及びTSE15(BUS_IF15a)に割り当てる(
図3のt1)。プロセッサ11は、TSE15を起動し、サーチ条件15Sとして論理アドレスLA1を指定する(
図3の(0))。
【0047】
プロセッサ11はバス権をTSE15(BUS_IF15b)及びキャッシュメモリ12(BUS_IF12b)に割り当てる(
図3のt2)。TSE15の比較回路15Cは、論理アドレスLA1を用いてL2PテーブルLTCをサーチする(
図3の(1)のLA1サーチ)。サーチの結果は、キャッシュヒット(ヒット)である。TSE15の比較回路15Cは、論理アドレスLA1に関連付けられた物理アドレスをサーチ結果15SRに格納する。TSE15の割り込み生成回路15Iは、プロセッサ11に割り込みを送信する(
図3の(2))。
【0048】
プロセッサ11は、バス権をプロセッサ11(BUS_IF11a)及びTSE15(BUS_IF15a)に割り当てる(
図3のt3)。プロセッサ11は、TSE15からサーチ結果15SRである物理アドレスを取得する(
図3の(3))。次に、プロセッサ11は、論理アドレスLA2でのサーチを行うためのサーチ条件15SをTSE15に指定する(
図3の(4))
プロセッサ11はバス権をTSE15(BUS_IF15b)及びキャッシュメモリ12(BUS_IF12b)に割り当てる(
図3のt4)。TSE15の比較回路15Cは、論理アドレスLA2を用いてL2PテーブルLTCをサーチする(
図3の(5)のLA2サーチ)。サーチの結果は、キャッシュミスである。TSE15の割り込み生成回路15Iは、プロセッサ11に割り込みを送信する(
図3の(6))。
【0049】
本実施形態においては、キャッシュミスが検出されると、プロセッサ11は、DMAC14及びS_TSE16を起動する。即ち、プロセッサ11は、バス権をプロセッサ11(BUS_IF11a)及びS_TSE16(BUS_IF16a)に割り当てる(
図3のt5)。これにより、プロセッサ11はS_TSE16へアクセス可能になる(
図3のバス権のCPU、S_TSE)。プロセッサ11は、S_TSE16を起動し(
図3のS_TSE起動)、サーチ条件16Sとして論理アドレスLA2を指定する(
図3の(7))。
【0050】
プロセッサ11は、バス権をプロセッサ11(BUS_IF11a)及びDMAC14(BUS_IF14a)に割り当てる(図示省略)。プロセッサ11は、DMAC14に、L2PテーブルLTの転送要求を送信する(
図3のDMAC起動)。転送要求は、少なくとも論理アドレスLA2に対応するエントリーを転送するためのL2Pテーブル転送設定を含む。
【0051】
プロセッサ11は、バス権をDMAC14(BUS_IF14b)及びキャッシュメモリ12(BUS_IF12a)に割り当てる(
図3のt6)。DMAC14は、不揮発性メモリ3にアクセスしてL2PテーブルLTの一部を読み出す。DMAC14は、読み出したL2PテーブルLTの一部をバス13を経由してキャッシュメモリ12に転送する(
図3の(8)のL2Pテーブル転送)。S_TSE16は、転送中のL2PテーブルLTの一部をスヌープする。S_TSE16の比較回路16Cは、L2PテーブルLTの転送と同時に、L2PテーブルLTに対して論理アドレスLA2によるサーチ(転送中サーチ)を行う(
図3の(8)のLA2サーチ)。
【0052】
このように、本実施形態においては、L2PテーブルLTの転送と同時に、S_TSE16によりL2PテーブルLTに対する転送中サーチが行われる。S_TSE16の比較回路16Cは、転送中のL2PテーブルLTに対するサーチの結果、論理アドレスLA2に対応する物理アドレスを発見すると、当該物理アドレスをサーチ結果16SRとして記憶する。S_TSE16の割り込み生成回路16Iは、プロセッサ11に割り込みを送信する(
図3の(9))。プロセッサ11は、DMAC14によるL2PテーブルLTの転送を中断させる。
【0053】
プロセッサ11は、バス権をプロセッサ11(BUS_IF11a)及びS_TSE16(BUS_IF16a)に割り当てる(
図3のt7)。これにより、プロセッサ11はS_TSE16へアクセス可能になる(
図3のバス権のCPU、S_TSE)。プロセッサ11は、S_TSE16からサーチ結果16SRである物理アドレスを取得する(
図3の(10))。プロセッサ11は、物理アドレスを取得すると、バス権をプロセッサ11(BUS_IF11a)及びDMAC14(BUS_IF14a)に割り当て(図示省略)、DMAC14を再び起動しL2PテーブルLTの転送を再開させる(
図3の(11))。
【0054】
プロセッサ11は、バス権をDMAC14(BUS_IF14b)及びキャッシュメモリ12(BUS_IF12a)に割り当てる(
図3のt8)。DMAC14は、中断していたL2PテーブルLTのキャッシュメモリ12への転送を再開する(
図3の(12))。
【0055】
L2PテーブルLTの転送が完了すると、DMAC14の割り込み生成回路14Iは、プロセッサ11に割り込みを送信する(
図3の(13))
プロセッサ11は、バス権をプロセッサ11(BUS_IF11a)及びTSE15(BUS_IF15a)に割り当てる(
図3のt9)。プロセッサ11は、論理アドレスLA3でのサーチを行うためのサーチ条件15SをTSE15に設定する(
図3の(14))。
【0056】
プロセッサ11は、バス権をTSE15(BUS_IF15b)及びキャッシュメモリ12(BUS_IF12b)に割り当てる(
図3のt10)。TSE15の比較回路15Cは、論理アドレスLA3を用いてL2PテーブルLTCをサーチする(
図3の(15)のLA3サーチ)。サーチの結果は、キャッシュヒットである。TSE15の割り込み生成回路15Iは、プロセッサ11に割り込みを送信する(
図3の(16))。
【0057】
プロセッサ11は、バス権をプロセッサ11(BUS_IF11a)及びTSE15(BUS_IF15a)に割り当てる(
図3のt11)。プロセッサ11は、サーチ結果15SRである物理アドレスを取得する(
図3の(17))。
【0058】
次に、
図4を参照して第1の実施形態の動作を説明する。
図4は第1の実施形態の動作を説明するためのフローチャートである。
【0059】
プロセッサ11は、サーチ対象である論理アドレスLAの個数Nを決定する(S1)。また、プロセッサ11は、制御変数iを0に設定する(S1)。
【0060】
プロセッサ11は、制御変数iをインクリメントする(S2)。また、プロセッサ11は、i番目のサーチ対象の論理アドレスLAiを含むサーチ条件15SをTSE15に設定する(S2)。
【0061】
プロセッサ11は、制御変数iがNより大きいか否かを判断する(S3)。制御変数iがNより大きいとき(S3でYES)、プロセッサ11は、処理を終了する。
【0062】
制御変数iがN以下であるとき(S3でNO)、プロセッサ11は、論理アドレスLAiに対応する物理アドレスを検索するためにTSE15を起動する(S4)。
【0063】
TSE15の比較回路15Cは、サーチ条件15Sを用いて、キャッシュメモリ12をサーチする(S5)。例えば、比較回路15Cは、ステップS2で指定された論理アドレスLAiを用いて、L2PテーブルLTCをサーチする。割り込み生成回路15Iは、キッシュヒット又はキャッシュミスの割り込みをプロセッサ11に送信する。比較回路15Cは、サーチ結果15SRを結果レジスタに格納する。
【0064】
プロセッサ11は、TSE15からの割り込みが、キャッシュヒット及びキャッシュミスのどちらであるかを判定する(S6)。
【0065】
割り込みがキャッシュヒットである場合には(S6でYES)、プロセッサ11は、TSE15からサーチ結果を取得する(S7)。プロセッサ11は、処理をステップS2に戻す。
【0066】
割り込みがキャッシュミスである場合には(S6でNO)、プロセッサ11は、DMAC14及びS_TSE16を起動する(S8)。プロセッサ11は、DMAC14に、キャッシュ対象データの転送要求を送信する。例えば、転送要求は、論理アドレスLAiに対応するエントリーを転送するためのL2Pテーブル転送設定を含む。また、プロセッサ11は、サーチ条件16SをS_TSE16に設定する。サーチ条件16Sは、例えば、論理アドレスLAiを含む。
【0067】
DMAC14は、不揮発性メモリ3にアクセスしてキャッシュ対象データを読み出す(S9)。DMAC14は、読み出したキャッシュ対象データをバス13を経由してキャッシュメモリ12に転送する。一方、S_TSE16は、転送中のキャッシュ対象データをスヌープする。S_TSE16の比較回路16Cは、キャッシュ対象データの転送と同時に、キャッシュ対象データに対してサーチ条件16Sを用いたサーチ(転送中サーチ)を行う(S9)。このように、本実施形態においては、L2PテーブルLT等のキャッシュ対象データの転送と同時に、S_TSE16によりキャッシュ対象データに対する転送中サーチが行われる。
【0068】
S_TSE16の比較回路16Cは、サーチ条件16Sで示されるサーチ対象データを発見すると、サーチ結果16SRを結果レジスタに格納する。割り込み生成回路16Iは、サーチヒットの割り込みをプロセッサ11に送信する。
【0069】
プロセッサ11は、サーチヒットの割り込みを受信すると(S10でYES)、サーチ結果16SRを取得するために、キャッシュ対象データの転送を中断する(S11)。プロセッサ11は、S_TSE16からサーチ結果16SRを取得する(S12)。
【0070】
プロセッサ11は、サーチ結果16SRを取得すると、キャッシュ対象データの転送終了を判定する(S13)。キャッシュ対象データの転送終了は、例えば、DMAC14からの転送終了を示す割り込みの有無によって判定される。プロセッサ11は、キャッシュ対象データの転送が終了したと判定すると(S13でYES)、処理をステップS2に戻す。なお、キャッシュ対象データの最終ワードにおいてサーチ対象データが発見された場合、ステップS13においてキャッシュ対象データの転送が終了したと判定される。転送終了でない場合には(S13でNO)、プロセッサ11は、処理をステップS8に戻す。
【0071】
S_TSE16がサーチ対象データを発見しない場合(S10でNO)、DMAC14は転送終了まで(S14でNO)、キャッシュ対象データの転送を継続する(S9)。S_TSE16は、転送中サーチを継続する(S9)。
【0072】
S_TSE16がサーチ対象データを発見しないまま(S10でNO)、すなわち、ステップS10において一度もYESと判定されないまま、キャッシュ対象データの転送が終了した場合(S14でYES)、プロセッサ11は、例外的な事象が発生したものとして、処理を異常終了する。なお、S_TSE16の転送中サーチにおいてサーチ対象データが発見されない場合は論理的にはない。しかし、例えば、不揮発性メモリ3のL2PテーブルLTの内容が壊れる等の物理的な例外的事象により、サーチ対象データが発見されないことがあり得る。
【0073】
このように本実施形態においては、キャッシュミスが検出されると、メモリコントローラはキャッシュ対象データをキャッシュメモリに転送する。この場合において、キャッシュ対象データの転送途中に、S_TSEにより転送中サーチが実行される。サーチヒットを検出すると、S_TSEはサーチヒットの割り込み通知を実行する。プロセッサは、このサーチヒットの割り込み通知によりキャッシュ対象データの転送を中断させると共に、バス権を取得してサーチ結果を取り込む。プロセッサは、サーチ結果の取り込み後にキャッシュデータの転送を再開させる。即ち、本実施形態においては、キャッシュ対象データの転送と、転送されるキャッシュ対象データに対するサーチとが同時に実行される。これにより、キャッシュデータの取得に要する時間を短縮することができ、メモリアクセスを高速化することが可能である。
【0074】
(変形例)
図5は第1の実施形態の変形例を示すブロック図である。
図5において
図1と同一の構成要素には同一符号を付して説明を省略する。
【0075】
図1に示す第1の実施形態はS_TSE16を単独モジュール化したものである。これに対し、
図5に示す本変形例は、S_TSE16をDMAC17に内蔵したものである。DMAC17は、DMAC14と同様の機能を有すると共に、S_TSE16を内蔵する。本変形例のS_TSE16はBUS_IF16aを有しない。本変形例では、プロセッサ11は、バス13及びBUS_IF14aを介し、DMAC14にL2PテーブルLTの転送要求を送信する。また、プロセッサ11は、バス13及びBUS_IF14aを介し、S_TSE16にサーチ条件16Sを設定し、S_TSE16からサーチ結果16SRを取得する。
【0076】
他の構成及び作用は、
図1に示した第1の実施形態と同様である。
【0077】
このように本変形例では、DMAC17とS_TSE16のバスインタフェース回路を共有化でき、回路規模を低減できる。
【0078】
(第2の実施形態)
第2の実施形態について説明する。
図6は第2の実施形態の動作を説明するためのタイミングチャートである。
図6において
図3と同一の手順には同一符号を付して説明を省略する。本実施形態におけるハードウェア構成は
図1に示した第1の実施形態と同様である。
【0079】
第1の実施形態においては、キャッシュミスが検出されると、不揮発性メモリ3から読み出されたキャッシュ対象データに対して転送と同時にサーチ(転送中サーチ)が行われた。これに対し、本実施形態においては、キャッシュミスの検出によって読み出されたキャッシュ対象データは、キャッシュメモリ12に格納されない。即ち、本実施形態は、キャッシュメモリ12の更新を行わないモード(キャッシュ保持モード)で動作する。
【0080】
例えば、キャッシュされているL2PテーブルLTCを使ってメモリコントローラ2が不揮発性メモリ3に対して所定の論理アドレス領域を連続アクセスしている最中に、メモリコントローラ2が該論理アドレス領域外の論理アドレスを例外的にアクセスしたい場合がある。この場合には、メモリコントローラ2は、不揮発性メモリ3から該領域外の論理アドレスに対応するL2PテーブルLTを読み出し、S_TSE16で転送中サーチを実行して所望の物理アドレスを取得する。この際、メモリコントローラ2がキャッシュ保持モードで動作することで、キャッシュメモリ12に格納されたキャッシュデータ(即ちL2PテーブルLTC)が失われない。この構成により、例外アクセスからの復帰後、メモリコントローラ2は、中断していた連続アクセスを高速に再開することができる。また、キャッシュ保持モードでは、サーチヒットした段階で、不揮発性メモリ3からのデータ読み出しを中断することが可能である。これにより、メモリアクセスを更に高速化できる。
【0081】
プロセッサ11はキャッシュ保持モードでの制御が可能である。プロセッサ11は、キャッシュ保持モードにおいて、L2PテーブルLTを不揮発性メモリ3から読み出してS_TSE16にサーチを実行させると共に、当該L2PテーブルLTをキャッシュメモリ12には転送しないように制御する。なお、プロセッサ11は、S_TSE16に接続されるバスインタフェース回路がバス権を取得しないように制御してもよい。
【0082】
更に、プロセッサ11は、キャッシュ保持モードにおいて、TSE15とS_TSE16のそれぞれに異なるサーチ条件を設定し、両者の並列サーチを実行することもできる。例えば、プロセッサ11は、通常のシーケンシャルアクセス用サーチをTSE15で実行し、シーケンシャルアクセス領域外のランダムアクセス用サーチをS_TSE16で実行する。これにより、第1の実施形態よりも処理効率を向上させることができる。
【0083】
次に、このように構成された実施形態の動作について
図6を参照して説明する。
図6は
図2と同様の表記方法により、L2PテーブルLTの転送とサーチを説明するためタイミングチャートである。
図6は、バス権を取得しているバスインタフェース回路、プロセッサ11、TSE15、DMAC14、及びS_TSE16の処理内容、並びにキャッシュメモリ12へのアクセスを示す。
【0084】
ここでは、
図2と同様に、キャッシュメモリ12に、論理アドレスLA1及びLA3に対応するL2PテーブルLTCのエントリーが格納され、論理アドレスLA2に対応するL2PテーブルLTCのエントリーは格納されていないものとして、第2の実施形態における転送及びサーチを説明する。
【0085】
キャッシュミスが検出される
図6のt5までの動作は第1の実施形態(即ち
図3のt5までの動作)と同様である。
【0086】
論理アドレスLA2に対するサーチによってキャッシュミスが検出されると(
図6の(6))、プロセッサ11は、DMAC14、TSE15及びS_TSE16を起動する。プロセッサ11は、DMAC14に、L2PテーブルLTの転送要求を送信する(
図6のDMAC起動)。転送要求は、少なくとも論理アドレスLA2に対応するエントリーを転送するためのL2Pテーブル転送設定を含む。また、プロセッサ11は、論理アドレスLA2をサーチ条件16SとしてS_TSE16に設定する(
図6の(7))。また、プロセッサ11は、論理アドレスLA3をサーチ条件15SとしてTSE15に設定する(
図6の(7))。
【0087】
プロセッサ11は、TSE15(BUS_15b)及びキャッシュメモリ12(BUS_IF12b)にバス権を割り当てる(
図6のt6)。即ち、本実施形態においては、プロセッサ11は、DMAC14を起動する一方、DMAC14(BUS_IF14b)にはバス権を割り当てない。DMAC14は、不揮発性メモリ3に格納されているL2PテーブルLTの一部を読み出す。この場合には、DMAC14は、バス権を有しておらず、読み出したL2PテーブルLTをキャッシュメモリ12に格納しない。
【0088】
S_TSE16は、転送中のL2PテーブルLTの一部をスヌープする。S_TSE16の比較回路16Cは、L2PテーブルLTの転送と同時に、L2PテーブルLTに対して論理アドレスLA2によるサーチ(転送中サーチ)を行う(
図6の(8)のLA2サーチ)。また、TSE15は、L2PテーブルLTCに対して論理アドレスLA3によるサーチを行う(
図6の(8)のLA3サーチ)。
【0089】
このように、本実施形態においても、L2PテーブルLTの転送と同時に、S_TSE16によりL2PテーブルLTに対する転送中サーチが行われる。また、S_TSE16による論理アドレスLA2のサーチと同時に、TSE15による論理アドレスLA3のサーチも実行される。
【0090】
S_TSE16の比較回路16Cは、DMAC14からのL2PテーブルLTに対するサーチの結果、論理アドレスLA2に対応する物理アドレスを発見すると、当該物理アドレスをサーチ結果16SRとして記憶する。割り込み生成回路16Iは、プロセッサ11に割り込みを送信する(
図6の(9))。
【0091】
プロセッサ11は、割り込み生成回路16Iからの割り込みを受信すると、DMAC14によるL2PテーブルLTの転送を中止させると共に、TSE15によるサーチを中断させる。即ち、S_TSE16によりサーチ対象データ(即ち論理アドレスLA2に対応する物理アドレス)が発見されたことにより、当該サーチ対象データを含むL2PテーブルLTの転送は終了する。
【0092】
プロセッサ11は、プロセッサ11(BUS_IF11a)及びS_TSE16(BUS_IF16a)にバス権を割り当てる(
図6のt7)。プロセッサ11は、S_TSE16からサーチ結果16SRである物理アドレスを取得する(
図6の(10))。
【0093】
プロセッサ11は、バス権をTSE15(BUS_IF15b)及びキャッシュメモリ12(BUS_IF12b)に割り当てる(
図6のt8)。プロセッサ11はTSE15に論理アドレスLA3によるサーチを再開させる(
図6の(11))。TSE15の比較回路15Cは、論理アドレスLA3によりキャッシュメモリ12のL2PテーブルLTCをサーチする(
図6の(12))。比較回路15Cは、論理アドレスLA3に対応する物理アドレスを発見すると、当該物理アドレスをサーチ結果15SRとして記憶する。割り込み生成回路15Iは、プロセッサ11に割り込みを送信する(
図6の(13))。
【0094】
プロセッサ11は、バス権をプロセッサ11(BUS_IF11a)及びTSE15(BUS_IF15a)に割り当てる(
図6のt9)。プロセッサ11は、サーチ結果15SRを取得する(
図6の(14))。
【0095】
次に、
図7を参照して第2の実施形態の動作を説明する。
図7は第2の実施形態の動作を説明するためのフローチャートである。
【0096】
図7のステップS1~ステップS5、ステップS7、及びステップS14、即ち、比較回路15Cによるキャッシュヒット時の動作、及び、転送中サーチ後の異常終了、は第1の実施形態(
図4のステップS1~ステップS5、ステップS7、及びステップS14)と同様である。
【0097】
制御変数iがNより大きいとき(S3でYES)、プロセッサ11は、S_TSE16が転送中サーチを実行中であるか否かを判定する(S21)。転送中サーチが実行中である場合(S21でYES)、プロセッサ11は、転送中サーチの終了を待つ。転送中サーチが実行中でない場合(S21でNO)、プロセッサ11は、処理を終了する。
【0098】
TSE15からの割り込みがキャッシュミスである場合(S6でNO)、プロセッサ11は、処理をステップS2に戻す。これにより、後述するステップS23以降と併せ、TSE15によるサーチとS_TSE16による転送中サーチとが並列に実行される。また、プロセッサ11は、S_TSE16が転送中サーチを実行中であるか否かを判定する(S22)。転送中サーチが実行中である場合(S22でYES)、プロセッサ11は、転送中サーチの終了を待つ。
【0099】
転送中サーチが実行中でない場合(S22でNO)、プロセッサ11は、DMAC14にバス権を割り当てることなく、DMAC14を起動する(S23)。プロセッサ11は、DMAC14にL2PテーブルLTの転送要求を送信する。これにより、DMAC14は、不揮発性メモリ3にアクセスして、キャッシュミスとなったデータを含むL2PテーブルLTを読み出す(S24)。
【0100】
また、プロセッサ11は、S_TSE16を起動する(S23)。プロセッサ11は、キャッシュミスとなったサーチ対象データをサーチするためのサーチ条件16SをS_TSE16に設定する。
【0101】
比較回路16Cは、DMAC14により転送途中のL2PテーブルLTをサーチ条件16Sを用いてサーチする(S24)。
【0102】
本実施形態においては、プロセッサ11は、DMAC14にバス権を割り当てずにDMAC14を起動する。これにより、DMAC14は、S_TSE16による転送中サーチ時には、不揮発性メモリ3から読み出したL2PテーブルLTをキャッシュメモリ12に格納しない。
【0103】
比較回路16Cは、転送中サーチによりサーチ対象データを発見すると、サーチ結果16SRを結果レジスタに格納する。割り込み生成回路16Iは、サーチヒットの割り込みをプロセッサ11に送信する。
【0104】
プロセッサ11は、サーチヒットの割り込みを受信すると(S10でYES)、DMAC14によるL2PテーブルLTの転送を中断(即ち、読み出しを中止)する(S25)。また、プロセッサ11は、ステップS4で起動されたTSE15によるサーチを中断する(S26)。
【0105】
プロセッサ11は、プロセッサ11(BUS_IF11a)及びS_TSE16(BUS_IF16a)にバス権を割り当てる。プロセッサ11は、S_TSE16からサーチ結果16SRを取得する(S12)。また、プロセッサ11は、ステップS26で中断されたTSE15によるサーチを再開させる(S27)。S_TSE16による転送中サーチはここで終了となる。
【0106】
このように本実施形態においても、第1の実施形態と同様の効果を得ることができる。また、本実施形態においては、TSE15においてキャッシュミスが検出された場合のL2PテーブルLTの読み出しに際して、L2PテーブルLTをキャッシュメモリ12に格納することなく転送中サーチを実施できる。これにより、メモリコントローラ2はキャッシュ保持モードでの動作が可能であり、キャッシュメモリ12のL2PテーブルLTCが上書きされることを防止することができる。
【0107】
また、上述のように、メモリコントローラ2は、キャッシュ保持モードにおいて、TSE15とS_TSE16とにそれぞれに異なるサーチ条件に設定し、両者の並列サーチを実行することも可能である。これにより、更に一層、処理効率を向上させることができる。
【0108】
(第1の変形例)
図8は第2の実施形態の第1の変形例において更新されるキャッシュデータの一例を説明するための図である。第2の実施形態においては、DMAC14が読み出したL2PテーブルLTをキャッシュメモリ12に転送しない例を説明した。しかしながら、メモリコントローラ2は、キャッシュメモリ12に格納されているL2PテーブルLTCの一部のみを、DMAC14が読み出したL2PテーブルLTで更新しても良い。例えば、メモリコントローラ2は、L2Pテーブルが示す論理アドレス又は物理アドレスに応じて、L2PテーブルLTの一部を選択する。メモリコントローラ2は、例えば、論理アドレスの範囲毎、チップ毎、プレーン毎、又はブロック毎に、L2PテーブルLTの一部を選択する。そしてメモリコントローラ2は、選択したL2PテーブルLTの一部のみを用いて、キャッシュメモリ12に格納されているL2PテーブルLTC更新する。
【0109】
図8は、メモリコントローラ2がL2PテーブルLTをブロック毎に選択し、斜線にて示すブロックBLK0に対応するL2PテーブルLTCだけが更新される例を示している。
【0110】
このように、第1の変形例では、必要なキャッシュ対象データ(L2PテーブルLT)のみをキャッシュメモリ12に格納することが可能である。
【0111】
(第2の変形例)
図9は第2の実施形態の第2の変形例を示すブロック図である。
図9において
図1と同一の構成要素には同一符号を付して説明を省略する。本変形例は、キャッシュメモリ12の代わりに、テンポラリメモリTMEMの領域を含むキャッシュメモリ12Tを採用した点が第1の実施形態と異なる。
【0112】
本変形例では、メモリコントローラ2は、DMAC14が不揮発性メモリ3から読み出したL2PテーブルLTを、一時的にテンポラリメモリTMEMに格納しておく。S_TSE16の転送中サーチにおいてサーチヒットが検出された場合、プロセッサ11は、テンポラリメモリTMEMに格納されたデータをL2PテーブルLTCに転送するように制御する。一方、S_TSE16の転送中サーチにおいてサーチミスが検出された場合、プロセッサ11は、テンポラリメモリTMEMのデータを破棄し、L2PテーブルLTCの更新は行わないように制御する。
【0113】
このように、第2の変形例においても、必要なキャッシュ対象データ(L2PテーブルLT)のみをキャッシュメモリ12に格納することが可能である。
【0114】
(第3の実施形態)
第3の実施形態について説明する。
図10は第3の実施形態を示すブロック図である。
図10において
図1と同一の構成要素には同一符号を付して説明を省略する。本実施形態はキャッシュメモリ12中のデータのサーチと、キャッシュメモリ12に転送されるキャッシュ対象データのサーチとを並列処理可能にしたものである。
【0115】
本実施形態は、バス13に代えてバス21を採用した点が第1の実施形態と異なる。バス21は、複数系統のバスを含む。従って、プロセッサ11は、TSE15及びキャッシュメモリ12にバス権を割り当てると同時に、DMAC14及びキャッシュメモリ12にバス権を割り当てることができる。これにより、プロセッサ11は、TSE15とキャッシュメモリ12との間のデータ転送と、プロセッサ11とS_TSE16との間のデータ転送と、を同時に実行させることが可能である。
【0116】
他の構成は第1の実施形態と同様である。
【0117】
次に、このように構成された本実施形態の動作について
図11を参照して説明する。
図11は第3の実施形態の動作を説明するための図である。
図11は
図10中の(1)~(3)にて示すデータ転送に対応した処理工程を示すものである。
【0118】
プロセッサ11は、DMAC14を起動する。プロセッサ11は、DMAC14に対して、不揮発性メモリ3からL2PテーブルLTを読み出してキャッシュメモリ12に転送するための設定を行う(
図11の(1)設定)。即ち、プロセッサ11は、
図10中の(1)L2Pテーブル転送設定をDMAC14に対して指示する。また、プロセッサ11は、
図10の(1)L2Pテーブルサーチ設定をS_TSE16に送信する(
図11の(1)設定)。更に、本実施形態においては、プロセッサ11は、S_TSE16によるサーチと、TSE15によるWBUFデータサーチとを並列実行させる。即ち、プロセッサ11は、
図10中の(1)WBUFデータサーチ設定をTSE15に送信する。なお、WBUFデータサーチとは、例えばホスト装置に送信すべきデータが、キャッシュメモリ12にキャッシュデータDCとして存在するか否かをサーチする処理である。
【0119】
これにより、DMAC14は、不揮発性メモリ3からL2PテーブルLTを読み出してキャッシュメモリ12に転送する(
図10の(2)L2Pテーブル転送)。S_TSE16は、不揮発性メモリ3から読み出されたキャッシュ対象データ(L2PテーブルLT)に対して転送中サーチを行う(
図10の(2)L2Pテーブルサーチ)。更に、TSE15は、S_TSE16のサーチと並列に、WBUFデータサーチを実行する(
図10の(2)WBUFデータサーチ)。
【0120】
図11に示すように、L2PテーブルLTの転送、転送中サーチ、及びWBUFデータサーチは、同時に行われる。S_TSE16による転送中サーチにおいてサーチヒットが検出された場合には、割り込み生成回路16Iは、サーチヒットを示す割り込みをプロセッサ11に送信する(
図10の(3)割り込み(サーチヒット))。プロセッサ11は、S_TSE16からサーチ結果を取得する。また、TSE15によるWBUFデータサーチにおいて、キャッシュヒットが検出された場合には、割り込み生成回路15Iはキャッシュヒットを示す割り込みをプロセッサ11に送信する(
図10の(3)割り込み(キャッシュヒット))。プロセッサ11は、TSE15からサーチ結果15SRを取得し、取得したデータをホスト装置に転送する。これにより、本実施形態は、不揮発性メモリ3に対するアクセスの高速化を図る。また、DMAC14は、L2PテーブルLTの転送が終了すると、プロセッサ11に転送の終了を通知する(
図10の(3)割り込み(L2Pテーブル転送終了))。
【0121】
このように本実施形態においては、TSEによるWBUFデータサーチと、S_TSEによる転送中サーチとの並列処理が可能である。また、本実施形態は
図5に示した第1の実施形態の変形例のように、S_TSEをDMAC内に設置した例にも適用可能である。この場合には、バスインタフェース回路16a相当の回路は不要である。従って、本実施形態は、TSEモジュールを2個設けることにより並列処理を実現する場合よりも、ハードウェア規模の増大を抑制できる。
【0122】
(第4の実施形態)
第4の実施形態について説明する。
図12は第4の実施形態を示すブロック図である。
図12において
図1と同一の構成要素には同一符号を付して説明を省略する。本実施形態はL2PテーブルLT(キャッシュ対象データ)の転送中に、複数個の論理アドレスを並列サーチすることを可能にするものである。
【0123】
図12に示す第4の実施形態はS_TSE16に代えてS_TSE25を採用した点が
図1に示す第1の実施形態と異なる。S_TSE25はサーチ部25Sを含む。サーチ部25Sは、比較回路16C、サーチ条件16Sを格納するサーチレジスタ、及びサーチ結果16SRを格納する結果レジスタと同様の構成を複数有する。サーチ部25Sは、DMAC14によって不揮発性メモリ3から読み出されたL2PテーブルLTに対して、複数個の論理アドレスを用いた並列サーチを実行可能である。
【0124】
図13はサーチ部25Sの具体的な構成の一例を示す回路図である。
【0125】
サーチ部25Sは、タグレジスタRT、サーチレジスタRS0~RS3(以下、これらを区別する必要が無い場合には、サーチレジスタRSという)、結果レジスタRR0~RR3(以下、これらを区別する必要が無い場合には、結果レジスタRRという)、比較回路CO~CO3(以下、これらを区別する必要が無い場合には比較回路COという)、及びヒットフラグF1~F3(以下、これらを区別する必要が無い場合には、ヒットフラグFという)を含む。
【0126】
図14はL2PテーブルLTのデータフォーマットを示す説明図である。
図14はバスデータ幅が64ビットの例を示している。L2PテーブルLTは、64ビット中の16ビットにはテーブル管理部を有し、次の24ビットにはタグ部を有し、次の24ビットにはデータ部を有する。タグ部は論理アドレスを含み、データ部はタグ部の論理アドレスに対応する物理アドレスを含む。テーブル管理部は、サーチの有効無効を示すフラグを格納する。サーチ部25Sは、テーブル管理部のフラグが無効の場合には、タグ部がヒットしたとしても、サーチミス判定を行う。
【0127】
図13に示すように、DMAC14が不揮発性メモリ3から読み出した64ビットのキャッシュ対象データ(L2PテーブルLT)のうち、ビット[47:24]のタグ部(論理アドレス)はタグレジスタRTに供給され、ビット[23:0]のデータ部(物理アドレス)は結果レジスタRRに供給される。タグレジスタRTに格納されたタグ部の論理アドレスは、比較回路CO0~CO3に供給される。タグ部の論理アドレスとデータ部の物理アドレスとは互いに対応付けられたものである。即ち、比較回路CO0~CO3にそれぞれ供給される論理アドレスと、結果レジスタRR0~RR3にそれぞれ供給されるデータ部の物理アドレスとは、それぞれ対応するものである。
【0128】
サーチレジスタRS0~RS3にはプロセッサ11からサーチ条件として4つの論理アドレスが供給されて格納される。比較回路CO0~CO3は、それぞれサーチレジスタRS0~RS3から供給される論理アドレスと、タグレジスタRTから供給される論理アドレスとの比較を行う。比較回路CO0~CO3は、それぞれの2入力が一致すると、ヒット信号hit0~hit3をアサートする。ヒット信号hit0~hit3のアサートにより、それぞれヒットフラグF0~F3がセットされる。
【0129】
なお、
図13の例は、4個の論理アドレスの並列サーチの例を示しているが、サーチレジスタRS、結果レジスタRR、比較回路CO及びヒットフラグFの数を増減させることによって、任意の数の並列サーチが可能である。
【0130】
このように構成された本実施形態において、DMAC14によるL2PテーブルLTの転送途中に、転送されるL2PテーブルLTのサーチが行われることは第1の実施形態と同様である。本実施形態においては、サーチ時に、複数個のサーチが並列して実行される。
【0131】
プロセッサ11は、サーチ対象の論理アドレス4個をサーチレジスタRS0~RS3にセットする。比較回路COには、転送中のキャッシュ対象データ(L2PテーブルLT)のタグ部の値がタグレジスタRTから供給される。比較回路COは、タグ部の値がサーチレジスタRSの値と一致すると、ヒット信号hitをアサートする。ヒット信号hitがアサートされるとヒットフラグFがセットされる。比較回路CO0~CO3は、1クロックで4個の論理アドレスの並列サーチを実行可能であり、サーチヒットした物理アドレスは、結果レジスタRR0~RR3にセットされる。
【0132】
こうして、4つの論理アドレスのうちの、サーチヒットした1つの物理アドレスが求められる。なお、S_TSE25は、キャッシュ対象データ転送完了タイミングで、全てのヒットフラグFがセットされていなければサーチミス判定とする。
【0133】
なお、
図13は、4つの異なるサーチ条件を各サーチレジスタに格納し、4つのサーチ条件のいずれかがヒットした場合に、サーチヒットと判定する場合の構成例を示している。仮に、1つのサーチ条件に対するサーチ結果を、結果が判定される毎にプロセッサ11に転送するような制御が行われる場合には、結果レジスタRRは1個で構成できる。
【0134】
他の作用は第1の実施形態と同様である。
【0135】
このように本実施形態においても第1の実施形態と同様の効果を得ることができる。また、本実施形態は複数個のキャッシュ対象データについて並列サーチが可能であるという利点を有する。
【0136】
(第5の実施形態)
第5の実施形態について説明する。本実施形態のハードウェア構成は、
図5に示した第1の実施形態の変形例と同様である。本実施形態は転送中サーチ後の短時間にメモリアクセスを可能にするものである。
【0137】
図15は比較例におけるメモリアクセスを説明するためのタイミングチャートである。なお、比較例は、S_TSE16を有していない。
図15は
図2と同様の表記方法により、バス権を取得しているバスインタフェース回路、プロセッサ11、TSE15、及びDMAC17の処理内容、並びにキャッシュメモリ12へのアクセスを示す。
【0138】
ここでは、キャッシュメモリ12に、論理アドレスLA2に対応するL2PテーブルLTCのエントリーが格納され、論理アドレスLA1に対応するL2PテーブルLTCのエントリーは格納されていないものとして、比較例における転送及びサーチについて説明する。
【0139】
TSE15が論理アドレスLA1を用いたサーチを行うと、キャッシュミスが検出される。この場合には、プロセッサ11は、DMAC17を起動し、バス権をDMAC17及びキャッシュメモリ12に割り当てる。プロセッサ11は、L2PテーブルLTの転送をDMAC17に指示する(
図15の(0))。
【0140】
DMAC17は、不揮発性メモリ3にアクセスしてL2PテーブルLTの一部を読み出す。DMAC17は、BUS_IF14b、バス13、及びBUS_IF12aを介して、読み出したL2PテーブルLTの一部をキャッシュメモリ12に転送する(
図15の(1)L2Pテーブル転送)。DMAC17の割り込み生成回路14Iは、データの転送を終了すると、プロセッサ11に割り込みを送信する(
図15の(2))。なお、比較例はS_TSE16を有しておらず、転送中サーチは実行されない。
【0141】
プロセッサ11は、再び論理アドレスLA1でのサーチを行うために、TSE15を起動し、論理アドレスLA1のサーチを指示する(図の15(3))。この場合には、プロセッサ11は、バス権をTSE15及びキャッシュメモリ12に割り当てる。
【0142】
TSE15の比較回路15Cは、論理アドレスLA1を用いてL2PテーブルLTCをサーチする(
図15の(4)LA1サーチ)。この場合のサーチ結果はキャッシュヒットである。比較回路15Cは、サーチ結果15SRを結果レジスタに格納する。割り込み生成回路15Iは、プロセッサ11に割り込みを送信する(
図15の(5))。プロセッサ11は、バス権をプロセッサ11とTSE15に割り当てる。プロセッサ11はTSE15からサーチ結果15SRを取得する(
図15の(6))。プロセッサ11は、サーチ結果15SR中の物理アドレスを用いて、DMAC17に不揮発性メモリ3へのアクセスを指示する(
図15の(7)メモリアクセス)。
【0143】
このように、比較例においては、キャッシュ対象データであるL2PテーブルLTを転送した後に、TSE15により再度サーチを実施する必要があり、メモリアクセス開始タイミングまでにかかる処理時間が長いという欠点がある。
【0144】
次に、
図16を参照して第5の実施形態における動作を説明する。
図16は第5の実施形態におけるメモリアクセスを説明するためのタイミングチャートである。
図16は
図3と同様の表記方法により、バス権を取得しているバスインタフェース回路、プロセッサ11、TSE15、S_TSE16、及びDMAC17の処理内容、並びにキャッシュメモリ12へのアクセスを示す
ここでも、
図15と同様に、キャッシュメモリ12に、論理アドレスLA2に対応するL2PテーブルLTCのエントリーが格納され、論理アドレスLA1に対応するL2PテーブルLTCのエントリーは格納されていないものとして、本実施形態における転送及びサーチについて説明する。
【0145】
TSE15が論理アドレスLA1を用いたサーチを行うと、キャッシュミスが検出される。この場合には、プロセッサ11は、DMAC17を起動し、バス権をDMAC17及びキャッシュメモリ12に割り当てる。プロセッサ11は、L2PテーブルLTの転送をDMAC17に指示する(
図16の(0))。
【0146】
DMAC17は、不揮発性メモリ3にアクセスしてL2PテーブルLTの一部を読み出す。DMAC17は、BUS_IF14b、バス13、及びBUS_IF12aを介して、読み出したL2PテーブルLTの一部をキャッシュメモリ12に転送する(
図16の(1)L2Pテーブル転送)。S_TSE16は、DMAC17によって読み出されたL2PテーブルLTに対してサーチを行う(
図16のLA1サーチ)。S_TSE16は、サーチ結果16SRを取得して結果レジスタに格納する。DMAC17は、データの転送を終了すると、プロセッサ11に割り込みを送信する(
図16の(2))。
【0147】
本実施形態においては、DMAC17は、転送完了の通知と同時に、S_TSE16が検出したサーチヒットの通知も行う(
図16の(2))。プロセッサ11は、サーチヒットの通知を受信すると、プロセッサ11及びS_TSE16にバス権を割り当てる。プロセッサ11は、S_TSE16からサーチ結果16SRを取得する。プロセッサ11は、サーチ結果16SR中の物理アドレスを用いて、DMAC17に不揮発性メモリ3へのアクセスを指示する(
図16の(3)、メモリアクセス)。即ち、プロセッサ11は、キャッシュ対象データの転送中にサーチヒットを検出したら、ヒットした物理アドレスを用いたメモリアクセスを即時に開始できる。
図15と
図16との比較から明らかなように、本実施形態においては、比較例に比べて、メモリアクセス開始タイミングまでに要する時間を短縮できる。
【0148】
次に、
図17を参照して第5の実施形態における動作を説明する。
図17は第5の実施形態の動作を説明するためのフローチャートである。
【0149】
図17のステップS1~ステップS7、即ち、TSE15によるキャッシュヒット時のサーチ結果取得までの動作、
図17のステップS8~ステップS9、即ちキャッシュミス後に転送中サーチが実施されるまでの動作、及び
図17のステップS10,ステップS14、即ち、サーチミス時の動作は、第1の実施形態(
図4のステップS1~ステップS7,ステップS8~ステップS9,ステップS10,ステップS14)と同様である。
【0150】
TSE15からの割り込みがキャッシュミスである場合には(S6でNO)、プロセッサ11は、DMAC17及びS_TSE16を起動する(S8)。この場合には、プロセッサ11はバス権をDMAC17及びキャッシュメモリ12に割り当てて、DMAC17にL2PテーブルLTの転送の開始を指示する。
【0151】
DMAC17は、不揮発性メモリ3にアクセスしてL2PテーブルLTの一部を読み出す。DMAC17は、BUS_IF14b、バス13、及びBUS_IF12aを介して、読み出したL2PテーブルLTの一部をキャッシュメモリ12に転送する(S9)。S_TSE16の比較回路16Cは、転送中サーチを行う(S9)。DMAC17の割り込み生成回路14Iは、データの転送を終了すると、プロセッサ11に割り込みを送信する。本実施形態においては、DMAC17は、転送終了の割り込みの送信と同時に、S_TSE16によるサーチヒットの通知もプロセッサ11に送信する。
【0152】
プロセッサ11は、転送終了の割り込みを受信すると、サーチヒットを判定する(S10)。プロセッサ11は、サーチヒットを検出すると(S10でYES)、バス権をプロセッサ11とS_TSE16に割り当て、S_TSE16の結果レジスタからサーチ結果16SRを取得する(S12)。
【0153】
プロセッサ11は、サーチ結果16SR中の物理アドレスを用いて、DMAC17に不揮発性メモリ3へのアクセスを指示する(S31)。なお、DMAC17は、コマンドキューを備える。プロセッサ11は、転送終了までに取得された複数の物理アドレスにそれぞれ対応する複数個のメモリアクセスコマンドを、コマンドキューを介してDMAC17に発行することができる。
【0154】
このように本実施形態においては、第1の実施形態と同様の効果が得られると共に、転送中サーチによってサーチヒットが発生すると、即時にメモリアクセスが可能である。これにより、本実施形態はさらなる処理の高速化を図ることができる。
【0155】
(第6の実施形態)
第6の実施形態について説明する。
図18は第6の実施形態の動作を説明するためのタイミングチャートである。本実施形態のハードウェア構成は、
図1に示した第1の実施形態と同様である。本実施形態は転送中サーチ後の短時間にキャッシュリカバリを可能にするものである。
【0156】
上述したように、キャッシュメモリ12に格納されるL2PテーブルLTCは、不揮発性メモリ3に格納されるL2PテーブルLTの一部である。TSE15によってキャッシュミスが検出された場合には、DMAC14によって、不揮発性メモリ3からL2PテーブルLTがキャッシュメモリ12に転送される。ここで、不揮発性メモリ3内におけるL2PテーブルLTの格納位置の候補が複数ある場合等においては、転送されたL2PテーブルLTに対するサーチにおいてもキャッシュミスが発生することがある。この場合には、L2PテーブルLTを再度転送してL2PテーブルLTCを再構成するキャッシュリカバリが実行される。
【0157】
図18は横軸に処理時間を示す。
図18の上段は比較例におけるキャッシュリカバリのタイミングを示す。
図18の下段は本実施形態におけるキャッシュリカバリのタイミングを示す。なお、比較例は、S_TSE16を有していない。
【0158】
比較例においては、
図18の上段に示すように、L2PテーブルLTの転送後に、TSE15によってキャッシュサーチが実行される。比較回路15Cのキャッシュサーチの結果、キャッシュミス(ヒットミス)が発生すると、プロセッサ11はキャッシュリカバリを実行する。即ち、比較例では、L2PテーブルLTの転送が終了し、キャッシュサーチが終了した後、キャッシュリカバリが実行される。
【0159】
これに対し、第6の実施形態においては、
図18の下段に示すように、L2PテーブルLTの転送途中において、S_TSE16により転送中サーチが実施される。プロセッサ11は、L2PテーブルLTの転送終了時にDMAC14からの割り込みを受信すると、S_TSE16がサーチミスを検出していたか否かを判定する。プロセッサ11は、S_TSE16がサーチミスを検出していた場合には、キャッシュリカバリを実施する。
【0160】
この結果、
図18から明らかなように、本実施形態においては、キャッシュリカバリの開始時刻を比較例よりも早めることができ、キャッシュリカバリを高速化することができる。
【0161】
このように本実施形態においては、第1の実施形態と同様の効果が得られると共に、転送中サーチによってサーチミスが生じた場合には、即時にキャッシュリカバリが可能であり、キャッシュリカバリを高速化してシステムの処理効率を改善することができる。
【0162】
(第7の実施形態)
第7の実施形態について説明する。
図19は第7の実施形態を示すブロック図である。
図19において
図1と同一の構成要素には同一符号を付して説明を省略する。
【0163】
本実施形態は、バス13に代えてバス21を有する。バス21は、複数系統のバスを含む。
【0164】
また、本実施形態は、TSEユニット35を備える。TSEユニット35は、TSE15と同様の構成のTSE15A及びTSE15Bの2個のTSEを含む。TSE15A及びTSE15Bは、いずれもTSE15の機能とS_TSE16の機能の両方の機能を有する。TSEユニット35は、TSE15AとTSE15Bとが複数のバスとの間で同時に通信を可能にするように、BUS_IF35a及びBUS_IF35bを含む。
【0165】
また、本実施形態は、プロセッサ11に代えてプロセッサ11Aを備える。プロセッサ11Aは、複数のバスとの間で同時に通信を可能にするように、BUS_IF11aだけでなく、BUS_IF11bを含む。
【0166】
さらに本実施形態は、キャッシュメモリ12に代えてキャッシュメモリ12Aを備える。キャッシュメモリ12Aは、L2PテーブルLTCに代えて、2つのL2PテーブルLTCA及びL2PテーブルLTCBを格納する。キャッシュメモリ12Aは、これらのL2PテーブルLTCA,LTCBに同時にアクセスするためのBUS_IF12aa,12bbを含む。L2PテーブルLTCAとL2PテーブルLTCBとには、それぞれ異なるテーブルデータが格納される。なお、L2PテーブルLTCAとL2PテーブルLTCBとに、相互に同一のテーブルデータ又は一部同一のテーブルデータが格納されていてもよい。
【0167】
他の構成は、
図1に示した第1の実施形態と同様である。
【0168】
なお、TSE15A,15Bは、比較回路16Cにおいてサーチするデータとして、キャッシュメモリ12Aから読み出したデータにするか、DMAC14によって不揮発性メモリ3から読み出された転送データにするかを切換える機能を、TSE15に付加することで比較的簡単に構成することができる。従って、本実施形態は既存の設計/検証資産を流用でき、開発コストを低減できる。
【0169】
次に、このように構成された実施形態の動作について
図20を参照して説明する。
図20は第7の実施形態の動作を説明するためのタイミングチャートである。
【0170】
図20は横軸に処理時間を示す。
図2120の上段は比較例におけるサーチのタイミングを示す。
図20の下段は本実施形態におけるサーチのタイミングを示す。比較例は、2つのTSE15A,15Bを有しておらず、
図2で例示した動作、即ち、TSE15によるサーチを行う。
【0171】
図20の上段に示す比較例の動作においては、キャッシュメモリ12に論理アドレスLA1に対するエントリーは格納されておらず、論理アドレスLA2~LA5に対するエントリーが格納されているものとする。
【0172】
比較例においては、
図20の上段に示すように、論理アドレスLA1のサーチの実行によって、キャッシュミスが検出される。プロセッサ11は、キャッシュミスの割り込みを受信すると、L2PテーブルLTの転送をDMAC14に指示する。DMAC14は、不揮発性メモリ3からL2PテーブルLTを読み出してキャッシュメモリ12に転送し、キャッシュメモリ12を更新する。その後、再度論理アドレスLA1についてのサーチが行われる。以後、論理アドレスLA2~LA5についてのサーチが順次実施される。
【0173】
図20の下段に示す本実施形態の動作においては、キャッシュメモリ12Aに論理アドレスLA1に対するキャッシュデータは格納されておらず、論理アドレスLA4に対応するエントリーがL2PテーブルLTCAに格納され、論理アドレスLA2,LA3,LA5に対応するエントリーがL2PテーブルLTCBに格納されているものとする。
【0174】
プロセッサ11Aは、2系統のTSE15A及びTSE15Bによって、それぞれサーチを実施する。即ち、プロセッサ11Aの指示に従って、例えば、
図20の下段に示す処理時間(a)において、TSE15Aは論理アドレスLA1のサーチを行い、TSE15Bは論理アドレスLA2のサーチを行う。
【0175】
TSE15Aの論理アドレスLA1についてのサーチはキャッシュミスする。一方、TSE15Bの論理アドレスLA2についてのサーチはキャッシュヒットする。TSE15Aからのキャッシュミス及びTSE15Bからのキャッシュヒットの割り込みは、プロセッサ11Aに送信される。プロセッサ11Aは、TSE15Bから論理アドレスLA2に対応する物理アドレスをサーチ結果として取得する。
【0176】
次の処理時間(b)において、プロセッサ11は、キャッシュミスの対象となった論理アドレスLA1に対応するエントリーを含むデータの転送をDMAC14に命令する。キャッシュミスを検出したTSE15Aは、論理アドレスLA1に対応するL2PテーブルLTの転送と同時に、論理アドレスLA1のサーチ(転送中サーチ)を実行する(処理時間(b))。また、キャッシュミスを検出しなかったTSE15Bは、処理時間(b)においてサーチを継続し、L2PテーブルLTCBに対して論理アドレスLA3のサーチを実行する。こうして、処理時間(b)において、論理アドレスLA1及び論理アドレスLA3に対応する物理アドレスがサーチ結果として得られる。
【0177】
次の処理時間(c)において、TSE15Aは、論理アドレスLA4を用いたサーチを行い、TSE15Bは、論理アドレスLA5を用いたサーチを行う。こうして、処理時間(c)において、論理アドレスLA4,LA5に対応する物理アドレスが得られる。このように、本実施形態においては、3つの処理時間において、論理アドレスLA1~LA5に対応する物理アドレスのサーチを終了することができる。
【0178】
このように本実施形態においては、上記各実施形態と同様の効果が得られると共に、2系統のTSEを備えて、各TSEが転送中サーチ機能を有することにより、サーチ速度を著しく向上させることが可能である。
【0179】
実施形態及び変形例は上記で説明した形態に限られず、種々の変形が可能である。また、上記実施形態及び変形例は、可能な限り組み合わせることができる。
【0180】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0181】
1…メモリシステム、2…メモリコントローラ、3…不揮発性メモリ、11…プロセッサ、11a,11b,12a,12b,14a,14b,15a,15b…BUS_IF、12…キャッシュメモリ、13…バス、14…DMAC、14I…割り込み生成回路、15…TSE、15C…比較回路、15I…割り込み生成回路、15S…サーチ条件、15SR…サーチ結果、16…S_TSE、LT,LTC…L2Pテーブル。