IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ラピステクノロジー株式会社の特許一覧

特開2022-156719半導体記憶装置及び命令コードの読み出し方法
<>
  • 特開-半導体記憶装置及び命令コードの読み出し方法 図1
  • 特開-半導体記憶装置及び命令コードの読み出し方法 図2
  • 特開-半導体記憶装置及び命令コードの読み出し方法 図3
  • 特開-半導体記憶装置及び命令コードの読み出し方法 図4
  • 特開-半導体記憶装置及び命令コードの読み出し方法 図5
  • 特開-半導体記憶装置及び命令コードの読み出し方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022156719
(43)【公開日】2022-10-14
(54)【発明の名称】半導体記憶装置及び命令コードの読み出し方法
(51)【国際特許分類】
   G06F 12/0895 20160101AFI20221006BHJP
   G06F 12/0875 20160101ALI20221006BHJP
【FI】
G06F12/0895 100
G06F12/0875
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021060549
(22)【出願日】2021-03-31
(71)【出願人】
【識別番号】320012037
【氏名又は名称】ラピステクノロジー株式会社
(74)【代理人】
【識別番号】110001025
【氏名又は名称】弁理士法人レクスト国際特許事務所
(72)【発明者】
【氏名】平石 康祐
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205MM02
5B205NN42
(57)【要約】
【課題】消費電流を削減しつつ効率的な命令コードの読み出しを行うことが可能な半導体記憶装置及び命令コードの読み出し方法を提供する。
【解決手段】各々が複数の命令コード群のいずれかに属する複数の命令コードを記憶する命令メモリと、命令コードを読み出す処理制御部と、処理制御部によって命令メモリから読み出された命令コードを保持するキャッシュメモリと、キャッシュメモリに保持されている命令コードが属する命令コード群を示すコード群情報を保持するタグメモリと、タグメモリに保持されているコード群情報によって示されている命令コード群に含まれる命令コードの各々について、当該命令コードがキャッシュメモリに保持されているか否かを示すフラグ情報を保持するフラグ保持部と、を有することを特徴とする。
【選択図】図2
【特許請求の範囲】
【請求項1】
各々が複数の命令コード群のいずれかに属する複数の命令コードを記憶する命令メモリと、
前記命令コードを読み出す処理制御部と、
前記処理制御部によって前記命令メモリから読み出された命令コードを保持するキャッシュメモリと、
前記キャッシュメモリに保持されている命令コードが属する命令コード群を示すコード群情報を保持するタグメモリと、
前記タグメモリに保持されているコード群情報によって示されている命令コード群に含まれる命令コードの各々について、当該命令コードが前記キャッシュメモリに保持されているか否かを示すフラグ情報を保持するフラグ保持部と、
を有することを特徴とする半導体記憶装置。
【請求項2】
前記命令コード群に含まれる2以上の命令コードは、前記命令メモリ内の互いに共通部分を有する文字列によって示されるアドレスに記憶され、
前記タグメモリは、前記アドレスの共通部分を前記コード群情報としてとして保持することを特徴とする請求項1に記載の半導体記憶装置。
【請求項3】
前記処理制御部は、前記命令コード群を構成する命令コードの数よりも小さい所定数の命令コード毎に前記命令コードの読み出しを行い、前記キャッシュメモリに保持させることを特徴とする請求項1又は2に記載の半導体記憶装置。
【請求項4】
前記フラグ保持部は、前記命令コードが前記キャッシュメモリに保持されているときは前記フラグ情報であるフラグ値を1とし、前記命令コードが前記キャッシュメモリに保持されていないときはフラグ値を0とすることを特徴とする請求項1乃至3のいずれか1に記載の半導体記憶装置。
【請求項5】
請求項1に記載の半導体記憶装置が実行する命令コードの読み出し方法であって、
読み出し対象の命令コードが属する命令コード群を示すコード群情報が前記タグメモリに保持されているか否かを判定するステップと、
前記コード群情報が前記タグメモリに保持されていると判定した場合には、前記フラグ保持部のフラグ情報を参照して、前記読み出し対象の命令コードが前記キャッシュメモリに保持されているか否かを判定するステップと、
前記フラグ情報に基づいて前記読み出し対象の命令コードが前記キャッシュメモリに保持されていると判定した場合には、前記キャッシュメモリから前記読み出し対象の命令コードを読み出すステップと、
を含むことを特徴とする命令コードの読み出し方法。
【請求項6】
前記読み出し対象の命令コードが属する命令コード群を示すコード群情報が前記タグメモリに保持されていないと判定した場合には、当該命令コード群を示すコード群情報を前記タグメモリに保持させるステップと、
前記読み出し対象の命令コードを前記命令メモリから読み出し、前記キャッシュメモリに保持させるステップと、
前記フラグ保持部に保持されているフラグ情報のフラグ値を、前記読み出し対象の命令コードが前記キャッシュメモリに保持されていることを示すフラグ値に変更するステップと、
前記キャッシュメモリから前記読み出し対象の命令コードを読み出すステップと、
を含むことを特徴とする請求項5に記載の命令コードの読み出し方法。
【請求項7】
前記命令コード群を示すコード群情報が前記タグメモリに保持されており且つ前記フラグ情報に基づいて前記読み出し対象の命令コードが前記キャッシュメモリに保持されていないと判定した場合には、前記読み出し対象の命令コードを前記命令メモリから読み出し、前記キャッシュメモリに保持させるステップと、
前記フラグ保持部に保持されているフラグ情報のフラグ値を、前記読み出し対象の命令コードが前記キャッシュメモリに保持されていることを示すフラグ値に変更するステップと、
前記キャッシュメモリから前記読み出し対象の命令コードを読み出すステップと、
を含むことを特徴とする請求項5に記載の命令コードの読み出し方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体記憶装置及び命令コードの読み出し方法に関する。
【背景技術】
【0002】
従来のメモリシステムでは、CPUが命令を実行する度に、命令メモリとしてのフラッシュメモリから命令コードを1つずつ読み出していた。しかし、フラッシュメモリからの命令コードの読み出しに使用する電流は、装置全体が消費する動作電流の多くを占めており、装置の消費電流削減にとってのボトルネックとなっていた。
【0003】
命令メモリからの命令コードの読み出し回数を減らすため、キャッシュメモリを用いたメモリシステムが多く用いられている(例えば、特許文献1)。キャッシュメモリは、主に命令メモリからの読み出しにかかる遅延時間を削減するために用いられるが、フラッシュメモリのような大容量高遅延のメモリよりも小容量RAMに代表されるキャッシュメモリに使用される低容量低遅延のメモリの方が読み出しに必要な電流が小さいため、結果的に装置全体の消費電流も削減される。
【0004】
キャッシュメモリを用いたメモリシステムでは、命令コードを命令メモリからキャッシュメモリにロードする際、1つの命令コードだけではなく、その周辺アドレスの命令コードをまとめてロードする、所謂「ラインフィル」が広く実行されている。ラインフィルは、実行された命令コードの周辺の命令コードは近い将来使用される可能性が高いという一般的なプログラムの特徴を利用して、キャッシュメモリからの読み出しのヒット率を向上させるために設けられる機能である。
【0005】
例えば、CPUが命令コード“inst-A”を実行しようとし、その命令コードがキャッシュメモリ上にない場合、命令メモリからキャッシュメモリに命令コード“inst-A”を読み出すためにラインフィルを実行する。ラインフィルでは、命令コード“inst-A”の周辺アドレスの命令コード(例えば、“inst-B”、“inst-C”、・・・“inst-P”)のロードを行う。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008-305082号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記のようなメモリシステムにおいて、ラインフィルでロードされる命令コードのサイズは1命令コードのサイズよりも大きいため、ラインフィルにおいてロードに要する時間は1命令コードのロードにかかる時間よりも長くなる。命令コードのロードが完了するまでCPUは命令を実行する動作をすることができないため、ラインフィルでのロード動作にかかる時間がCPUの最大命令フェッチ時間内に収まらない場合には、CPUの動作周波数を下げるか又はラインフィルが終わるまでCPUの命令を実行する動作を停止させる必要がある。このため、メモリシステムの処理性能が低下してしまうという問題点があった。
【0008】
また、ラインフィルは、近い将来使用される可能性が高い命令コードを先読みするという投機的な処理であるため、命令メモリからキャッシュメモリにロードされた命令コードが使用されない場合がある。その場合、命令メモリからの読み出しで消費する電流は使用されなかった命令コードを読み出した分、無駄になってしまう。
【0009】
また、ラインフィルの読み出しサイズを小さくし、1命令コードの読み出しサイズと同等にした場合、ラインフィルに要する時間や消費電流を低減することはできるが、ラインフィルでロードされた命令コードが命令メモリのどのアドレスに格納されていたかを示すタグを格納する所謂「タグメモリ」の記憶領域が大規模になってしまう。このため、タグメモリの消費電流やタグメモリを制御する回路の消費電流が増加し、装置全体の消費電流を低減することができないという問題があった。
【0010】
本発明は上記問題点に鑑みてなされたものであり、消費電流を削減しつつ効率的な命令コードの読み出しを行うことが可能な半導体記憶装置及び命令コードの読み出し方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明に係る半導体記憶装置は、各々が複数の命令コード群のいずれかに属する複数の命令コードを記憶する命令メモリと、前記命令コードを読み出す処理制御部と、前記処理制御部によって前記命令メモリから読み出された命令コードを保持するキャッシュメモリと、前記キャッシュメモリに保持されている命令コードが属する命令コード群を示すコード群情報を保持するタグメモリと、前記タグメモリに保持されているコード群情報によって示されている命令コード群に含まれる命令コードの各々について、当該命令コードが前記キャッシュメモリに保持されているか否かを示すフラグ情報を保持するフラグ保持部と、を有することを特徴とする。
【発明の効果】
【0012】
本発明に係る半導体記憶装置によれば、消費電流を削減しつつ効率的な命令コードの読み出しを行うことが可能となる。
【図面の簡単な説明】
【0013】
図1】本発明に係る半導体記憶装置の構成を示すブロック図である。
図2】読み出し動作時に半導体記憶装置の各部に格納されるデータを示すブロック図である。
図3】本発明に係る半導体記憶装置の読み出し動作の処理ルーチンを示すフローチャートである。
図4】ラインフィルを実行する比較例の半導体記憶装置の読み出し動作を示すブロック図である。
図5】ラインフィルを実行する比較例の半導体記憶装置の読み出し動作の他の例を示すブロック図である。
図6】比較例の半導体記憶装置の読み出し動作の他の例を模式的に示す図である。
【発明を実施するための形態】
【0014】
以下に本発明の好適な実施例を詳細に説明する。なお、以下の実施例における説明及び添付図面においては、実質的に同一または等価な部分には同一の参照符号を付している。
【0015】
図1は、本発明に係る半導体記憶装置100の構成を示すブロック図である。半導体記憶装置100は、コントローラ16、命令メモリ12、タグメモリ13、キャッシュメモリ14、及びフラグ保持部15を含む。
【0016】
CPU11は、読み出した命令を実行する処理装置である。CPU11は、バスラインBLを介して半導体記憶装置100に接続されている。
【0017】
コントローラ16は、半導体記憶装置100におけるメモリシステムの各部の動作を制御する処理制御部である。特に、本実施例では、命令コードの読み出し動作に関わる、例えば命令メモリ12に記憶されている命令コードを読み出してキャッシュメモリ14に格納する処理(以下、命令コードを命令メモリ12からキャッシュメモリ14に「ロードする」と称する)、及び当該命令コードをキャッシュメモリ14から読み出してCPU11に送る処理を実行する。コントローラ16は、バスラインBLとタグメモリ13、キャッシュメモリ14及びフラグ保持部15との間に配置されている。
【0018】
命令メモリ12は、例えばフラッシュメモリから構成される不揮発性の半導体メモリである。命令メモリ12は、CPU11が実行する複数の命令コードを記憶している。命令コードの各々は、命令メモリ12内の互いに異なるアドレスの記憶領域に記憶されている。
【0019】
命令メモリ12に記憶されている命令コードの各々は、複数の命令コード群のいずれかに属している。同じ命令コード群に属する命令コードのアドレスには、共通の文字列(以下、コード群情報と称する)が含まれている。
【0020】
タグメモリ13は、命令メモリ12からキャッシュメモリ14にロードされた命令コードが命令メモリ12のどのアドレスに格納されていたかを示す情報を格納するメモリである。本実施例では、命令コードのアドレスそのものではなく、当該命令コードが属している命令コード群を示すコード群情報がタグメモリ13に格納される。
【0021】
キャッシュメモリ14は、SRAM(Static Random Access Memory)等の揮発性の半導体メモリから構成され、命令メモリ12から読み出された命令コードを保持する。
【0022】
フラグ保持部15は、揮発性の半導体メモリから構成され、命令メモリ12に格納されている命令コードの各々がキャッシュメモリ14にロードされたか否かを示すフラグ情報を格納する。
【0023】
図2は、命令コードの読み出し動作時に半導体記憶装置100の各部に格納されるデータを示すブロック図である。図2の矢印で示す動作の制御は、図示していないコントローラ16が行っている。
【0024】
命令メモリ12には、複数の命令コードが格納されている。本実施例では、16個の命令コードによって一群の命令コード(以下、命令コード群と称する)が構成され、各々の命令コードは自身が属する命令コード群の他の命令コードと共通する文字列を有するアドレスに格納されている。例えば、本実施例では、同じ命令コード群に属する命令コードには、アドレスの上位4ビットのみが共通で、アドレスの下位数ビットについては互いに異なるアドレスが付されている。図2では、“Inst-A”、“Inst-B”、“Inst-C”、“Inst-D”、・・・“Inst-P”の16個の命令コードが、“addr”をアドレスの共通部分として、命令メモリ12内の“addr_0”、“addr_1”、addr_2”、“addr_3”、・・・“addr_15”のアドレスにそれぞれ格納されている場合を示している。
【0025】
CPU11は、複数の命令コードに係る命令を順次実行する。図2では、“Inst-A”、“Inst-B”、“Inst-C”、“Inst-D”の順に命令を繰り返し実行する場合を示している。CPU11の命令の実行に際して、コントローラ16がタグメモリ13及びフラグ保持部15にアクセスし、その命令コードがキャッシュメモリ14に保持されているか否かを判定する。
【0026】
キャッシュメモリ14には、命令メモリ12から読み出された命令コードが保持される。本実施例の半導体記憶装置100では、実行対象の命令コードに加えてその周辺の命令コードを読み出す処理である所謂「ラインフィル」を行わない。このため、命令コード“Inst-A”が命令メモリ12から読み出される際には、その他の命令コードは命令メモリ12から読み出されず、命令コード“Inst-A”のみがキャッシュメモリ14にロードされる。図2では、命令コード群のうちの“Inst-A”、“Inst-B”、“Inst-C”及び“Inst-D”が命令メモリ12からキャッシュメモリ14にロードされた場合を示している。
【0027】
タグメモリ13には、命令メモリ12からキャッシュメモリ14にロードされた命令コードのアドレスのうち、その命令コードを含む命令コード群に共通する文字列、すなわち、アドレスの一部がコード群情報として格納される。例えば、命令コード“Inst-A”が命令メモリ12からキャッシュメモリ14にロードされる場合、アドレス“addr_0”の一部であって命令コード“Inst-A”~“Inst-P”に共通する文字列である“addr”がコード群情報としてタグメモリ13に格納される。
【0028】
フラグ保持部15は、タグメモリ13にコード群情報が格納された命令コード群に含まれる命令コードの各々について、その命令コードがキャッシュメモリ14に保持されているか、すなわち、命令コード12からキャッシュメモリ14へのロードが行われているか否かを“1”及び“0”のフラグ値で示すフラグ情報を保持する。
【0029】
例えば、命令コード“Inst-A”が命令メモリ12からロードされ、キャッシュメモリ14に保持されると、これに応じてコントローラ16はフラグ保持部15に保持されている“Inst-A”についてのフラグを“0”から“1”に変更する。従って、キャッシュメモリ14に保持されている命令コードについては、所謂フラグが立った状態となり、フラグ値は“1”となる。一方、まだキャッシュメモリ14に保持されていない命令コードについては、フラグが立っていない状態となり、フラグ値は“0”となる。図2では、命令コード群のうちの“Inst-A”、“Inst-B”、“Inst-C”及び“Inst-D”のフラグ値が“1”であり、それ以外の命令コードのフラグ値が“0”である場合を示している。
【0030】
次に、本実施例の半導体記憶装置100が実行する命令コードの読み出し動作の処理について、図3のフローチャートを参照して説明する。
【0031】
まず、CPU11が次に実行する命令の命令コード(以下、実行対象の命令コードと称する)がキャッシュメモリ12に保持されているか否かを確認するため、コントローラ16は、タグメモリ13にアクセスする(STEP101)。
【0032】
コントローラ16は、実行対象の命令コードが属する命令コード群のコード群情報がタグメモリ13に格納されているか否か、例えば、図2の“addr”がタグメモリ13に格納されているか否かを判定する(STEP102)。
【0033】
コード群情報がタグメモリ13に格納されていると判定すると(STEP102:YES)、コントローラ16は、実行対象の命令コードがキャッシュメモリ12に保持されているか否かを確認するため、フラグ保持部15にアクセスする(STEP103)。
【0034】
コントローラ16は、実行対象の命令コードについて、キャッシュメモリ12に当該命令コードが保持されていることを示すフラグが立った状態であるか否かを判定する(STEP104)。
【0035】
フラグが立った状態、すなわちキャッシュヒットと判定すると(STEP104:YES)、コントローラ16は、キャッシュメモリ12から命令コードを読み出し、CPU11に送る(STEP105)。
【0036】
一方、STEP102において、コード群情報がタグメモリ13に格納されていないと判定すると(STEP102:NO)、コントローラ16は、実行対象の命令コードが属する命令コード群のコード群情報をタグメモリ13に格納し(STEP106)、STEP107に移る。
【0037】
また、STEP104において、フラグが立っていない状態、すなわちキャッシュミスと判定すると(STEP104:NO)、STEP107に移る。
【0038】
コントローラ16は、命令コードを命令メモリ12からキャッシュメモリ14にロードする(STEP107)。
【0039】
コントローラ16は、フラグ保持部15にアクセスし、実行対象の命令コードについてフラグを立てる、すなわちフラグ値を“0”から“1”に変化させる(STEP108)。その後、コントローラ16は、STEP105に移って命令コードをキャッシュメモリ12から読み出し、CPU11に送る。
【0040】
以上のような一連の処理ルーチンを経て、命令コードの読み出し動作が行われる。CPU11の図2に示すような命令の実行順にしたがって、コントローラ16は、上記の処理を繰り返し実行する。
【0041】
例えば、命令コード“Inst-A”~“Inst-P”がいずれもキャッシュメモリ12にロードされていない状態で“Inst-A”の読み出し動作を行う場合、STEP101→STEP102→STEP106→STEP107→STEP108→STEP105という処理ステップを経て命令コードの読み出し動作を行う。なお、本実施例ではSTEP106→STEP107→STEP108についてこの順番で実行しているが、これとは異なる順番、例えば、STEP107→STEP106→STEP108で実行してもよく、これらのステップSTEP106、STEP107、STEP108を同時に実行しても良い。
【0042】
次に、命令コード“Inst-B”の読み出し動作を行う場合には、既にコード群情報がタグメモリ13に格納されているため、STEP101→STEP102→STEP103→STEP104→STEP107→STEP108→STEP105という処理ステップを経て命令コードの読み出し動作を行う。命令コード“Inst-C”の読み出し動作、“Inst-D”の読み出し動作も同様の処理ステップを経て行う。なお、本実施例ではSTEP107→STEP108についてこの順番で実行しているが、この順番についてもこれとは異なる順番STEP108→STEP107で実行してもよく、これらのステップSTEP107、STEP108を同時に実行しても良い。
【0043】
また、これらの処理を実行後、再び“Inst-A”~“Inst-D”の各々の読み出し動作を行う場合には、既にフラグが立った状態であるため、STEP101→STEP102→STEP103→STEP104→STEP105という処理ステップを経て命令コードの読み出し動作を行う。
【0044】
本実施例の半導体記憶装置100では、実行対象の命令コードを命令メモリ12からキャッシュメモリ14にロードし、タグメモリ13にその命令コードのアドレスの一部であるコード群情報を格納し、フラグ保持部15にその命令コードがキャッシュメモリ14にロードされたか否かを示すフラグ情報を保持することで、以降は同じ命令コードを実行する際にはキャッシュメモリ14から命令コードの読み出しを行うため、常に命令メモリ12から命令コードを読み出す場合と比べて、消費電流を低減することができる。
【0045】
また、本実施例の半導体記憶装置100では、命令メモリ12からキャッシュメモリ14への命令コードのロードに際して、実行対象の命令コード以外の周辺アドレスの命令コードをロードする所謂「ラインフィル」を実行しない。このため、ラインフィルを実行する場合と比べて、命令メモリ12からキャッシュメモリ14への一回毎のロードに要する時間が短い。
【0046】
図4は、本実施例の半導体記憶装置100とは異なり、ラインフィルを実行する比較例の半導体記憶装置200の読み出し動作を示すブロック図である。
【0047】
比較例の半導体記憶装置200では、実行対象の命令コードを命令メモリ22からキャッシュメモリ24にロードする際、その周辺アドレスの命令コードもまとめて命令メモリ22からキャッシュメモリ24にロードする。例えば、図4に示すように、実行対象の命令コードが“Inst-A”である場合、アドレスの一部に共通の文字列を含む命令コード群“Inst-A”~“Inst-P”を命令メモリ22からキャッシュメモリ24にロードする。タグメモリ13には、アドレスの共通部分である文字列“addr”が格納される。
【0048】
比較例の半導体記憶装置200では、一回のタイミングで“Inst-A”~“Inst-P”のロードを行うため、“Inst-A”のみのロードを行う場合と比べて一回毎のロードに要する時間が長くなる。CPU21は、キャッシュメモリ24へのロードを含む命令コードの読み出し動作が完了するまでは命令の実行の動作を行うことができないため、処理性能が低下してしまう。
【0049】
また、図5は、ラインフィルを実行する比較例の半導体装置200の読み出し動作の他の例を示すブロック図である。図5は、タグメモリ23を省略し、CPU21、命令メモリ22、キャッシュメモリ24に着目して示す図である。図5に示すように、ラインフィルによってキャッシュメモリ24にロードされた命令コード“Inst-A”~“Inst-P”のうち、実際にキャッシュメモリ24から読み出され、実行される命令コードが“Inst-A”~“Inst-D”のみである場合がある。この時、“Inst-E”~“Inst-P”については、キャッシュメモリ24からの読み出しが行われないため、命令コード“Inst-E”~“Inst-P”のロードに要した消費電流は無駄となる。
【0050】
これに対し、本実施例の半導体記憶装置100では、ラインフィルを行わず、実行対象の命令コードのみをキャッシュメモリ14にロードする。このため、比較例の半導体記憶装置200と比べて、一回のロードでの読み出しにかかる時間が短くなる。また、キャッシュメモリ14にロードされた命令コードは全てキャッシュメモリ14から読み出され、命令として実行されるため、比較例の半導体記憶装置200とは異なり、命令コードのロードに要した消費電流が無駄にならない。
【0051】
なお、一回毎のロードに要する時間の短縮や無駄な消費電流の抑制という観点からは、ラインフィルで読み出す命令コードのサイズを小さくすること、例えば1命令コードと同じサイズにすることが考えられる。しかし、かかる方法では、タグメモリに格納されるアドレス情報の数が多くなり、タグメモリのサイズが大きくなってしまう。
【0052】
図6は、比較例の半導体装置200において、読み出し動作の他の例を模式的に示す図である。図6は、半導体記憶装置200の命令メモリ22、タグメモリ23及びキャッシュメモリ24に着目して示す図である。例えば、図6では、通常のラインフィルと異なり1命令コードと同じサイズで読み出す場合(左側の「ラインサイズ=フラッシュ読出しサイズ」)と、通常のラインフィルのようにラインサイズがフラッシュ読出しサイズより大きい場合、例えば8個の命令コードを読み出す場合(右側の「ラインサイズ=フラッシュ読出しサイズ×8」)とを示す。「ラインサイズ=フラッシュ読出しサイズ」の場合、1命令コードごとにタグメモリ23に命令コードのアドレスを格納する必要があるが、「ラインサイズ=フラッシュ読出しサイズ×8」の場合は、タグメモリ23に命令コードの共通するアドレスを格納するだけでよい。つまり、「ラインサイズ=フラッシュ読出しサイズ×8」のタグメモリ23と比較して「ラインサイズ=フラッシュ読出しサイズ」のタグメモリ23は8倍のサイズが必要となる。
【0053】
これに対し、本実施例の半導体記憶装置100では、ラインフィルは実行しないものの、実行対象の命令コードを含む命令コード群のアドレスに共通する文字列をコード群情報としてタグメモリ13に格納し、実際にキャッシュメモリ14へのロードが行われているか否かを示す情報は、フラグ情報としてフラグ保持部15に別途保持させている。このため、タグメモリ13のサイズは、通常のラインフィルを行った場合と同等のサイズに抑えることができる。
【0054】
従って、本実施例の半導体記憶装置100によれば、タグメモリ13のサイズを抑えつつ、命令メモリ12からキャッシュメモリ14への命令コードのロードに要する時間を短縮し、無駄な消費電流を抑えることができる。
【0055】
なお、本発明は上記実施形態に限定されない。例えば、上記実施例では、命令コード群を構成する命令コードの数を16個としたが、命令コード群を構成する命令コードの数はこれに限られない。例えば、アドレスに共通の文字列を含む8個の命令コードや32個の命令コードから命令コード群が構成されていてもよい。
【0056】
また、上記実施例では、命令メモリ12からキャッシュメモリ14への命令コードのロードを1つの命令コード毎に行う場合を例として説明した。しかし、これに限られず、例えば2個の命令コードや4個の命令コード毎にまとめてロードを行う構成としてもよい。少なくとも、命令コード群を構成する命令コードの数よりも小さい数の命令コードをロードするように構成されていればよい。
【0057】
また、上記実施例では、1つのコントローラ16が読み出し動作の制御を行っている場合を例として説明した。しかし、コントローラは命令メモリ用のコントローラと、キャッシュメモリ用のコントローラとで分けて複数のコントローラで制御するよう構成されていてもよい。
【0058】
また、本実施例の半導体記憶装置100は、マイコンに搭載されるメモリシステムとして構成されてもよく、それ以外の低消費電力が求められ且つメモリを搭載するシステム全般に適用することが可能である。
【符号の説明】
【0059】
100 半導体記憶装置
11 CPU
12 命令メモリ
13 タグメモリ
14 キャッシュメモリ
15 フラグ保持部
16 コントローラ
BL バスライン
図1
図2
図3
図4
図5
図6