JP4713077B2 - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP4713077B2
JP4713077B2 JP2003409804A JP2003409804A JP4713077B2 JP 4713077 B2 JP4713077 B2 JP 4713077B2 JP 2003409804 A JP2003409804 A JP 2003409804A JP 2003409804 A JP2003409804 A JP 2003409804A JP 4713077 B2 JP4713077 B2 JP 4713077B2
Authority
JP
Japan
Prior art keywords
page
bank
memory
extra
storage unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003409804A
Other languages
English (en)
Other versions
JP2004310739A (ja
Inventor
義宏 古賀
登 浅井
学 黒田
和年 舟橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2003409804A priority Critical patent/JP4713077B2/ja
Publication of JP2004310739A publication Critical patent/JP2004310739A/ja
Application granted granted Critical
Publication of JP4713077B2 publication Critical patent/JP4713077B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、広義のプロセッサにメモリ入れ替え機構を有する半導体装置に関する。
従来のメモリ搭載プロセッサは、搭載するプログラムの大規模化が直接にメモリ搭載量の増加につながるため、コストが増加し且つ動作速度が低下するという問題がある。
これに対し、メモリの入れ替え機構を設けることにより、主記憶メモリとして動作は低速であるが安価な大規模メモリで構成し、プロセッサには小容量のメモリを搭載する構成が提案されている。この構成において、小容量メモリと主記憶メモリとの間でメモリの入れ替えを行なうことによりプログラムを実行する。このような従来のメモリ入れ替え機構には、いわゆるキャッシュメモリを用いるのが主流となっている。
以下、従来の基本的なキャッシュメモリについて説明する。
プロセッサによる命令又はデータを参照する際のメモリ参照は、単位時間で見た場合には局所的なメモリ領域に集中する。これをプログラムの参照局所性という。この参照局所性を利用し、メモリ参照が頻繁に集中する領域を主記憶メモリよりも小容量で且つ高速動作可能なバッファメモリに常駐させることにより、メモリアクセスを高速化する手法がある。この小容量のバッファメモリは、一般にキャッシュメモリと呼ばれ、頻繁に参照されるデータをキャッシュメモリに常駐させる際のデータ転送はハードウェアにより実行される。
以下、従来のプロセッサにキャッシュメモリを組み合わせた半導体装置について図27を参照しながら説明する。
図27に示すように、従来のキャッシュメモリを有する半導体装置は、プロセッサ201と、該プロセッサ201が低速でアクセス可能な大容量の主記憶メモリ202と、該主記憶メモリ202との間にDMAコントローラ203を介して接続され、プロセッサ201にアクセスされるキャッシュメモリ204とを有している。
キャッシュメモリ204は、それぞれが数十バイト程度のラインA、B、C、Dに分割されてなり、各ラインA〜Dにはアドレス等の情報を保持するタグ205がそれぞれ対応して設けられている。通常、ラインには複数の命令又はデータが格納されている。
また、プロセッサ201がアクセス要求を行なったアドレスと、各タグ205が保持するアドレスとを比較し、一致しない場合には、DMAコントローラ203にアドレスデータの入れ替えを判定結果として要求するタグ比較器206を有している。
以下、このような構成を採る従来の半導体装置の動作を簡単に説明する。
(ステップ1)
プロセッサ201がメモリアクセス要求を発行する。
(ステップ2)
プロセッサ201に要求されたメモリアドレスがタグ比較器206に通知され、タグ比較器206は、タグ205のアドレス中に要求アドレスが含まれているか否かを比較する。
(ステップ3)
タグ205のいずれかに要求アドレスが含まれている場合は、プロセッサ201はそのままキャッシュメモリ204にアクセスする。この場合は、アクセスが成立して終了となり、ステップ4以降は実行されない。このように、要求されたアドレスがキャッシュメモリ204に保持されている場合をキャッシュヒット、又は単にヒットと呼ぶ。また、キャッシュヒット率はプログラムの処理効率に影響し、キャッシュヒット率が高ければメモリへの平均アクセス時間が短縮されるため、処理効率は向上する。
(ステップ4)
タグ205に要求アドレスが含まれていなかった場合は、タグ比較器206は後述する優先順位に基づいて、キャッシュメモリ204から適当な1ページを選択し、書き換えを行なうための判定結果情報を生成する。因みに、アドレスが保持されていなかった場合をキャッシュミスヒット、または単にミスヒットと呼ぶ。ここで、タグの比較を行なう際の優先順位決定アルゴリズムには、LRU(Least Recently Used)が一般に知られている。この方式では、最も遠い過去に参照されたラインA〜Dを置換対象に選択する。この他にも、FIFO(First In First Out)方式や、Random方式等がある。また、優先度の決定基準となる情報をプロセッサ201の命令コード内に埋め込み、その情報を元に優先度を決定する方法もある(例えば、特許文献1参照。)。
(ステップ5)
タグ比較器206が生成した判定結果情報はDMAコントローラ203に通知され、主記憶メモリ202から要求アドレスを含む1ライン分のデータをキャッシュメモリ204に転送する。
(ステップ6)
キャッシュメモリ204へのデータ転送が完了した後、プロセッサ201はキャッシュメモリ204に対してアクセスを行なう。
特開平6−59977号公報(第1図)
しかしながら、前記従来の半導体装置は、回路規模が増大しやすいという問題がある。キャッシュメモリ204はアドレス等の情報を保持するタグ205が、数十バイト単位のラインA〜Dのそれぞれに対応して設けられる。また、タグ205は、図27においては4個であるが、大規模集積回路の場合には1000個程度にもなり、SRAM(Static Random Access Memory)と比べて、周辺回路の規模が大幅に増大する。さらに、タグ205の数だけのタグ比較器206が常時動作しており、面積の増大と併せて消費電力も大幅に増大する。
また、キャッシュメモリ204を用いた場合は、キャッシュヒット率の予測が困難であり、あるプログラムを実行するとそのプログラムの処理内容によってキャッシュヒット率が変動するため、処理効率の劣化が予測できない。
これらの問題は、組み込み系のプロセッサで且つリアルタイム性を保証する場合や、モバイル機器等で低消費電力化が必須である分野の開発等において顕著となる。
本発明は、前記従来の問題を解決し、メモリの入れ替えに要するメモリ転送を削減でき且つ消費電力を低減できるようにすることを目的とする。
前記の目的を達成するため、本発明は、通常のキャッシュメモリが数十バイト程度の単位で、いわゆるラインを構成するのに対し、数キロバイト程度の単位でライン(以下、本発明のラインをページと呼ぶ。)を構成することにより、回路規模を削減する。また、通常のラインよりも大きい記憶容量を持つページを用いるため、該ページに比較的に理解し易い処理機能、例えばモジュール、タスク又はスレッド等のオペレーションシステム(OS)が管理できる実行単位で格納することができるので、プログラムの処理フローに合わせたページのメモリ入れ替えスケジューリングの設計が容易となる。以下、OSが管理できる実行単位を便宜上スレッドと呼ぶ。
さらに、ページのメモリ入れ替え時に発生するメモリ入れ替え対象の優先順位の選択を、対象とするページのメモリ入れ替え時に発生する情報転送量又はメモリ入れ替え周期の値を優先度の基準として用いることにより、入れ替え時の情報転送量を抑制し、メモリ入れ替え時に消費する電力を抑えることが可能となる。
具体的に、本発明に係る半導体装置は、プロセッサと、該プロセッサによりアクセスされる第1の記憶部と、該第1の記憶部と比べてプロセッサによる高速なアクセスが可能な第2の記憶部がキャッシュメモリを構成するラインの記憶容量よりも大きい記憶容量ごとに分割されてなる複数のページ記憶部と、第1の記憶部におけるアドレス値を示すタグ情報及び入れ替え優先度を示す優先度情報を各ページ記憶部に付加するタグと、プロセッサからのアクセス要求を受け、第1の記憶部におけるアドレス値とタグが保持するタグ情報とを比較するタグ比較器と、各ページ記憶部の内容を入れ替える入替制御部とを備えている。
本発明の半導体装置によると、第1の記憶部と比べてプロセッサによる高速なアクセスが可能な第2の記憶部がキャッシュメモリを構成するラインの記憶容量よりも大きい記憶容量ごとに分割されてなる複数のページ記憶部を備えているため、メモリの入れ替えに要するメモリ転送量を削減できる。その上、ページ記憶部の設定個数は従来のキャッシュメモリ(ライン)の設定個数よりも少なくなるため、各ページ記憶部と対応して設けられるタグの個数をも必然的に減らすことができるので、回路規模を削減できるようになり、その結果、消費電力を低減することができる。
本発明の半導体装置は、プロセッサが実行する応用プログラムの機能ごとに、各ページ記憶部に対して割り当てられる割り当て数を管理する分配管理部をさらに備えていることが好ましい。
本発明の半導体装置において、複数のページ記憶部は、それぞれが所定数ごとにまとめられて複数のバンクメモリを構成しており、複数のバンクメモリを管理するバンク制御部をさらに備えていることが好ましい。
本発明の半導体装置は、複数のバンクメモリを制御するバンク制御部を備えている場合に、入替制御部は、ページ記憶部に対するアクセス要求を受け、該アクセス要求が対象とするデータのアドレス情報がタグに保持されているか否かを判定し、該アドレス情報が保持されていない場合には、複数のページ記憶部のなかから第1の記憶部との間で情報転送量が少ないページ記憶部を選択し、選択されたページ記憶部を解放し、解放されたページ記憶部に要求されたアドレスのデータを読み込むことが好ましい。
また、この場合に、入替制御部は、ページ記憶部に対するアクセス要求を受け、該アクセス要求が対象とするデータのアドレス情報がタグに保持されているか否かを判定し、該アドレス情報が保持されていない場合には、あらかじめ指定された入れ替え情報に基づいて複数のページ記憶部のなかから1つのページ記憶部を選択し、選択されたページ記憶部を解放し、解放されたページ記憶部に要求されたアドレスのデータを読み込むことが好ましい。
また、この場合に、入替制御部は、ページ記憶部に対するアクセス要求を受け、該アクセス要求が対象とするデータのアドレス情報がタグに保持されているか否かを判定し、該アドレス情報が保持されていない場合には、複数のページ記憶部のなかからアクセス周期が長いページ記憶部を選択し、選択されたページ記憶部を解放し、解放されたページ記憶部に要求されたアドレスのデータを読み込むことが好ましい。
この場合に、入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムに空きメモリを均等となるように再配分することが好ましい。
また、この場合に、入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムにあらかじめ規定され且つタグに保持された優先度情報に従って空きメモリを再配分することが好ましい。
また、この場合に、入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムのうち動作周期が短い応用プログラムから順に空きメモリを再配分することが好ましい。
また、この場合に、入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムのうち単位時間当たりの転送量が多い応用プログラムから順に空きメモリを再配分することが好ましい。
この場合に、入替制御部は、新たなメモリ確保要求を受けた場合に、動作中の応用プログラムに割り当てられた空きメモリのうち、各ページ記憶部又は各バンクメモリと第1の記憶部との間の情報転送量が少ない空きメモリを選択して解放することが好ましい。
また、この場合に、入替制御部は、応用プログラムの動作周期の1周期分でページ記憶部の確保及び解放を行ない、その周期中は空きメモリの確保を行なわず、1周期後に割り振られた空きメモリを解放できる状態とすることが好ましい。
本発明に係る半導体装置によると、メモリの入れ替えに要するメモリ転送量を削減することができる。その上、ページ記憶部の個数は従来のキャッシュメモリ(ライン)の個数よりも少なくなるため、各ページ記憶部と対応して設けられるタグの個数をも減らすことができるので、回路規模を削減でき、その結果、消費電力を低減することができる。
まず、本発明の実施形態で用いる用語を説明する。
(1)擬似キャッシュ
数キロバイト単位で1つのページを構成する擬似的なキャッシュメモリであり、従来のそれぞれが数十バイト程度の容量を持つ複数のラインからなるキャッシュメモリとは異なる。また、高速アクセスが可能なメモリデバイスからなり、例えば、比較的小容量のSRAM等により構成することが好ましい。
(2)ページ
ページは最も小さなメモリ領域単位である。擬似キャッシュメモリの実現に必要なタグは各ページに1つずつ割り当てられる。主記憶メモリ空間の擬似キャッシュ空間へのマッピングはページ単位で行なうことが可能である。
(3)バンク
バンクは複数のページにより構成されている。異なるバンクに対するプロセッサの命令又はデータへのアクセスと、主記憶メモリと擬似キャッシュとの間(以下、主記憶メモリ−擬似キャッシュ間と呼ぶ。)の転送(DMA転送)は同時に実行することができる。しかしながら、1つのバンクに対してプロセッサからのアクセスと、主記憶メモリ−擬似キャッシュ間の転送のアクセスとが同時に発生した場合は、どちらかのアクセスが待たされるか又はキャンセルされるかのペナルティが発生する。
(4)メモリエリア
メモリエリアは、使用目的、すなわち格納対象である命令又はデータを領域単位と一致させた複数のバンクからなるメモリ領域である。
図1はページ、バンク及びメモリエリアの一構成例を示す。図1に示すように、メモリエリアは、例えば1バンク当たり2ページで構成されたメモリ領域であり、1ページ当たり16Kbyteの容量を持つ。なお、これらの構成は一例であり、図1に示す構成に限られないことはいうまでもない。
次に、本発明の一実施形態に係る半導体装置の構成について図面を参照しながら説明する。
図2は本発明の一実施形態に係る半導体装置のブロック構成を示している。図2に示すように、プログラムを実行するプロセッサ11と、該プロセッサ11が低速でアクセス可能な大容量の主記憶メモリ12と、該主記憶メモリ12との間でDMA(Direct Memery Access)コントローラ13によりデータ転送され、プロセッサ11にアクセスされる擬似キャッシュメモリからなる複数のページ14とを有している。
ページ14は、それぞれが例えば16キロバイトに分割されてなり、各ページ14にはアドレス等の情報を保持するタグ15がそれぞれ対応して設けられている。ここでは、4つのページ14をまとめて1つのバンク16を構成し、さらに4つのバンク16を設けた4バンク構成としている。
また、プロセッサ11がアクセス要求を行なったアドレスと、各タグ15が保持するアドレスとを比較し、一致しない場合には、プロセッサ11にアドレスデータの入れ替えを判定結果として要求するタグ比較器17を有している。
プロセッサ11には、各ページ14の内容を入れ替えるアクセス制御を行なう入替制御部及びバンク管理部としての擬似キャッシュマネージャ18が接続されている。
擬似キャッシュマネージャ18は、プログラムであって、擬似キャッシュメモリの入れ替えを管理して実行するメモリ管理機能と、バンク16及びページ14における未使用メモリ領域を利用してメモリ使用効率を向上させ、擬似キャッシュ−主記憶メモリ間の情報転送量を抑制するエクストラメモリ管理機能とを備える。さらに、擬似キャッシュマネージャ18は、プロセッサ11が実行する応用プログラムの機能ごとに、各ページ14を割り当てる割り当て数を管理する分配管理部としての機能をも備えている。なお、メモリ管理機能及びエクストラメモリ管理機能は後述する。
以下、前記のように構成された半導体装置の動作を説明する。
(ステップ1)
プロセッサ11がメモリアクセス要求を発行する。
(ステップ2)
プロセッサ11に要求されたメモリアドレスがタグ比較器17に通知され、タグ比較器17は、各タグ15が保持するアドレス中に要求アドレスが含まれているか否かを比較する。
(ステップ3)
タグ15のいずれかに要求アドレスが含まれている場合は、プロセッサ11は要求アドレスを格納したタグ15と対応するページ14にアクセスする。この場合は、アクセスが成立して終了となり、従って、ステップ4以降は実行されない。
(ステップ4)
タグ15のいずれにも要求アドレスが含まれていなかった場合は、タグ比較器17はアドレス不一致という判定結果情報を生成してプロセッサ11に出力する。
(ステップ5)
プロセッサ11は、タグ比較器17からの判定結果情報に基づいて、擬似キャッシュマネージャ18が保持するプログラムによってDMAコントローラ13にデータの転送を指示する。プロセッサ11からの指示を受けたDMAコントローラ13は、要求アドレスが指す1ページ分のデータを主記憶メモリ12からページ14のいずれかに転送する。
(ステップ6)
DMAコントローラ13によるページ14へのデータ転送が完了した後、プロセッサ11は、データが転送されたページ14に対してアクセスを行なう。
以上のようにして、プロセッサ11のページ14に対するアクセスは実行される。
以下、擬似キャッシュマネージャ18が有するメモリ管理機能及びエクストラメモリ管理機能を説明する。
(メモリ管理機能)
まず、バンク16及びページ14に対するメモリ管理機能を説明する。
1)バンク管理機能
メモリの獲得及びメモリの解放はバンク単位で行なう。すなわち、応用プログラムからのバンク確保要求によりバンク16の獲得を行ない、バンク解放要求によりバンク16の解放を行なう。
確保されたバンク16には4つのバンク16を識別するバンク指定子が割り当てられ、バンク16に対する操作はバンク指定子を指定して行なう。1つのバンク確保要求で複数のバンク16を確保することが可能であり、この場合にはバンク指定子はそれぞれのバンク16に1つずつ割り当てられる。この点は、後述するページ指定子とは異なる。また、確保したバンク16に対して、バンク情報要求を行なうことにより、要求されたバンク16の内容(バンク情報)を取得することができる。バンク情報には、バンク属性、バンク状態及びFREEページ数がある。ここで、バンク属性はバンク16の確保(獲得)時に設定される属性であり、バンク状態は下記のバンク状態を表わす情報である。また、FREEページ数は、バンク16を構成するページ14のうち未だ確保されていないページ14の数である。
バンク状態には、FREE(フリー)状態、ALLOC(アロック)状態及びALLOCDIRTY(アロックダーティ)状態の3状態がある。
FREE状態は、スレッドに確保されていないバンク16の状態であり、ここでは、FREEバンクと呼ぶ。バンク16がスレッドにより確保されると、ALLOC状態に遷移する。このALLOC状態は内部状態であり、外部から確認することはできない。
ALLOC状態は、スレッドによって確保され、且つバンク16を構成するページ14の状態がすべてFREE状態であるバンクの状態であり、ALLOCバンクと呼ぶ。ALLOCバンクからページ14が確保されるとALLOCDIRTY状態に遷移し、バンク16の解放によってFREE状態に遷移する。
ALLOCDIRTY状態は、スレッドによって確保され、且つバンク16を構成するページ14のうち少なくとも1つのページの状態がFREE状態ではないバンク16の状態をいう。この状態のバンク16をALLOCDIRTYバンクと呼び、バンク16を構成するページ14がすべてFREE状態となった場合にALLOC状態に遷移する。なお、ALLOCDIRTY状態のバンク16に対してバンクの解放を行なうとエラーとなる。
2)ページ
スレッドからのページ14に対するマッピング要求によりページ14のマッピングを行ない、また、ページ14のアンマッピング要求によりページ14のアンマッピングを行なう。
ページ14に対するマッピングは、主記憶メモリ12の擬似キャッシュメモリ空間(領域)へのマッピングの有効化であり、マッピングが行なわれた擬似キャッシュメモリ空間を擬似キャッシュメモリページと呼ぶ。ページのマッピング時に行なう処理の詳細は、バンク16からのページ14の確保と、主記憶メモリ12の内容のページ14への転送(プリロード)と、タグ15の有効化とである。
ページ14に対するアンマッピングは、主記憶メモリ12の擬似キャッシュメモリ空間へのマッピングの無効化であり、ページのアンマッピング時に行なう処理の詳細は、タグ15の無効化と、ページ14の内容の主記憶メモリ12への転送(ライトバック)と、バンク16へのページ14の解放とである。
プリロード及びライトバックは、ページ14と主記憶メモリ12との間の同期を取る処理であり、ページのマッピング時とページのアンマッピング時にのみ行なわれるため、ページのマッピング後に主記憶メモリ12の内容を書き換えた場合には、同期処理(プリロード)は行なわない。なお、プリロード及びライトバックはDMA転送により行なう。
タグ15は、前述したように、各ページ14に1つずつ割り当てられている。4つのタグ15のうちの1つに主記憶メモリアドレスを設定してタグを有効化すると、タグ15と対応するページ14を用いて主記憶メモリ12と擬似キャッシュメモリとの対応付けが行なわれ、主記憶メモリアドレスを擬似キャッシュメモリアドレスとして使用することが可能となる。これ以後は、主記憶メモリアドレスと同一である擬似キャッシュメモリアドレスへのアクセスは、擬似キャッシュメモリアドレスと対応するタグ15を持つページ14へのアクセスとなる。ページ14へのアクセスは、主記憶メモリ12に対するアクセスよりも高速であるため、スレッドをより高速に実行することができる。
マッピングが行なわれた擬似キャッシュメモリページには、ページ指定子が割り当てられる。ページ指定子が割り当てられた後は、擬似キャッシュメモリページに対する操作はページ指定子を指定して行なう。ここで、ページのマッピング時には複数のページ14を確保することが可能であり、この場合には、擬似キャッシュメモリページは複数のページ14から構成されることになる。但し、バンク指定子とは異なり、割り当てられるページ指定子は1つである。
ページ指定子は、メモリ管理機能の管理領域からアドレスにより参照されているため、コピーはできない。また、既に擬似キャッシュメモリページに割り当てられているページ指定子を別の擬似キャッシュメモリページに割り当てる場合は、ページのアンマッピングを行なうだけでなく、擬似キャッシュメモリページの状態がFREE状態であること、すなわちライトバックが終了したことを確認した後に、他の擬似キャッシュメモリページに割り当てる必要がある。
ページ14に対するマッピング要求によるマッピング時に、擬似キャッシュメモリページを構成するページ14の属性を設定することができる。
ページ属性には、プリロード属性、ライトバック属性及びアクセス周期属性がある。
プリロード属性は、ページ14に対するマッピング時に主記憶メモリ12の内容を擬似キャッシュメモリページにプリロードする必要があるか否かを示す属性である。プリロードはDMA転送により行なわれる。
ライトバック属性は、ページ14に対するアンマッピング時に擬似キャッシュメモリページを構成するページ14の内容を主記憶メモリ12にライトバックする必要があるか否かを示す属性である。ライトバックはDMA転送により行なわれる。
アクセス周期属性は、ページ14に対するアクセス周期を示す属性であり、周期の長さの比較判定に用いる。なお、ページ属性は、ページ14に対するマッピング時にのみ設定可能である。
また、ページ状態には、FREE(フリー)状態、PRE−ALLOC(プレアロック)状態、ALLOC(アロック)状態及びPRE−FREE(プレフリー)状態の4つの状態がある。
FREE状態は、スレッドによる確保がなされておらず擬似キャッシュメモリページを構成していないページの状態であり、FREEページと呼ぶ。このFREE状態は内部状態であり、外部から確認することはできない。ページ14に対するマッピングが行なわれると、PRE−ALLOC状態に遷移する。
PRE−ALLOC状態は、ページ14に対するマッピングは行なわれたが、プリロードが終了していない擬似キャッシュメモリページを構成するページの状態をいう。これをPRE−ALLOCページと呼び、プリロード属性が設定されていない場合は、タグ15が有効とされた後にALLOC状態に遷移する。プリロード属性が設定されている場合は、プリロードを行ない、タグ15の有効化が行なわれた後に、ALLOC状態に遷移する。
ALLOC状態は、アクセス可能な擬似キャッシュメモリページを構成するページの状態をいう。これをALLOCページと呼び、ページ14に対してアンマッピングが行なわれると、タグ15が無効とされた後に、PRE−FREE状態に遷移する。
PRE−FREE状態は、ページ14に対してアンマッピングが行なわれたが、未だライトバックが終了していない擬似キャッシュメモリページを構成するページの状態をいう。これをPRE−FREEページと呼び、ライトバック属性が設定されていない場合は、ページのアンマッピングが行われた後にFREE状態に遷移する。また、ライトバック属性が設定されている場合は、ライトバックを行ない、ページのアンマッピングが行なわれた後にFREE状態に遷移する。
ここで、擬似キャッシュミス例外を説明する。
マッピング要求によるページのマッピング時に、プリロード属性を設定しておくとプリロードが発生する。このプリロードが終了する前にページ内の擬似キャッシュメモリアドレスにアクセスするとキャッシュミス例外が発生する。キャッシュミス例外が発生した場合は、スレッドはプリロードが終了するまでその実行を停止する。なお、キャッシュミス例外を起こさないようにするには、擬似キャッシュメモリページを構成するページ状態がALLOC状態であることを確認した後に、擬似キャッシュメモリページが保持するアドレスにアクセスするようにすれば良い。
本実施形態に係るメモリ管理機能は、キャッシュミスしたアドレスに対して新たなページをマッピングする機能を有していないため、スレッド自身がキャッシュミスしたアドレスに対するページのマッピングを行なう必要がある。
以下、本実施形態に係るメモリ管理機能の具体例として3種類のメモリ入れ替え方法を説明する。
(第1のメモリ入れ替え方法)
以下、前記のメモリ管理機能に情報転送量の重み付けを付与した第1のメモリ入れ替え方法について図面を参照しながら説明する。
図3は本実施形態に係る半導体装置の第1のメモリ入れ替え方法の処理フローを表わしている。
まず、図3に示すように、工程S01において、スレッドからページのマッピング要求が発行されたとする。
次に、工程S02において、工程S01で要求されたデータのアドレスがページ14の各タグ15の中に存在する(保持されている)か否かをタグ比較器17により判定する。ここで、タグ15のいずれかに要求されたアドレスが存在すれば(タグの一致という。)、要求されたデータがページ14に保持されていることになるため、メモリ入れ替えを行なわずに、最後の工程S06に移り、該当するページ14からデータを読み込んで処理を終了する。
また、タグ15のいずれにも要求されたアドレスが存在しなければ(タグの不一致という。)、次の工程S03において、ページ属性であるプリロード属性及びライトバック属性の有無を判定して、図4に示す判定表から情報転送量の重み付けを決定し、重みの値が最も小さいページ14を選択する。例えば、図4に示すように、ライトバック属性及びプリロード属性を共に有さない場合の重みの値は0であり、いずれか一方の属性を有する場合の重みの値は1であり、両方の属性を有する場合の重みの値は2である。
次に、工程S04において、工程S03で選択されたページ14がライトバック属性を有する場合は、ライトバックを要求するDMA転送設定をDMAコントローラ13に対して行ない、さらに、ページ状態をPRE−FREE状態に遷移して、データ転送が終了するまで待つ。
次に、工程S05において、工程S04におけるデータ転送(情報転送)が終了した後、マッピング要求されたページ14がプリロード属性を有する場合は、プリロードを要求するDMA転送設定をDMAコントローラ13に対して行ない、さらに、PRE−ALLOC状態に遷移して、データ転送が終了するまで待つ。
次に、工程S06において、工程S05におけるデータ転送が終了した後、ページ状態をALLOC状態とし、該当するページ14からデータを読み込んで処理を終了する。
以上説明したように、第1のメモリ入れ替え方法は、データの転送量(情報転送量)の多さを優先順位の判定基準としてページ14を入れ替える。なお、ここでは、情報転送量を、プリロードの有無、及びライトバックの有無という簡単な情報で表現したが、具体的な転送バイト数、例えば3キロバイト等という数値を優先度の判定基準としても良い。この場合でもプリロードの情報転送量とライトバックの情報転送量との和が判定基準の値となる。
(第2のメモリ入れ替え方法)
次に、あらかじめ指定された入れ替え情報を用いる第2のメモリ入れ替え方法について図面を参照しながら説明する。
図5は本実施形態に係る半導体装置の第2のメモリ入れ替え方法の処理フローを表わしている。
あらかじめ擬似キャッシュマネージャ18には、ページメモリ確保要求時に確保対象とするページ14が指定されるように、ページ14に対するマッピング要求を設定しておく。
図5に示すように、工程S11において、スレッドからページのマッピング要求が発行されたとする。
次に、工程S12において、工程S11で要求されたデータのアドレスがページ14の各タグ15の中に存在するか否かをタグ比較器17により判定する。ここで、タグ15のいずれかに要求されたアドレスが存在してタグが一致すれば、、要求されたデータがページ14に保持されていることと同義であるため、メモリ入れ替えを行なわずに、最後の工程S16に移り、該当するページ14からデータを読み込んで処理を終了する。
一方、タグが不一致である場合は、次の工程S13において、マッピング要求と同時に指定されたページ14を選択する。
次に、工程S14において、工程S13で選択されたページ14がライトバック属性を有する場合は、ライトバックを要求するDMA転送設定をDMAコントローラ13に対して行ない、さらに、ページ状態をPRE−FREE状態に遷移して、データ転送が終了するまで待つ。
次に、工程S15において、工程S14におけるデータ転送が終了した後、マッピング要求されたページ14がプリロード属性を有する場合は、プリロードを要求するDMA転送設定をDMAコントローラ13に対して行ない、さらに、PRE−ALLOC状態に遷移して、データ転送が終了するまで待つ。
次に、工程S16において、工程S15におけるデータ転送が終了した後、ページ状態をALLOC状態とし、該当するページ14からデータを読み込んで処理を終了する。
以上説明したように、第2のメモリ入れ替え方法は、擬似キャッシュマネージャ18に対して、ページ14の入れ替え情報をあらかじめ設定し且つ管理することにより、ページ14を入れ替える。
なお、ここでは、転送要求時にページ14を選択する構成としたが、これに限られず、入れ替え対象となるページ14をあらかじめテーブルに登録しておき、適当なタイミングで該テーブルを参照するテーブル参照方式としてもよい。
(第3のメモリ入れ替え方法)
次に、メモリ管理機能におけるページ属性のうちのアクセス周期属性を用いる第3のメモリ入れ替え方法について図面を参照しながら説明する。
図6は本実施形態に係る半導体装置の第3のメモリ入れ替え方法の処理フローを表わしている。
ここでは、各ページ14におけるページ属性であるアクセス周期属性は、マッピング要求時に所定の周期情報が設定される。
図6に示すように、工程S21において、スレッドからページのマッピング要求が発行されたとする。
次に、工程S22において、工程S21で要求されたデータのアドレスがページ14の各タグ15の中に存在するか否かをタグ比較器17により判定する。ここで、タグ15のいずれかに要求されたアドレスが存在してタグが一致すれば、、要求されたデータがページ14に保持されていることと同義であるため、メモリ入れ替えを行なわずに、最後の工程S26に移り、該当するページ14からデータを読み込んで処理を終了する。
一方、タグが不一致である場合は、次の工程S23において、マッピングされているページ14のうちアクセス周期属性に設定された周期が最も長いページ14を選択する。
次に、工程S24において、工程S23で選択されたページ14がライトバック属性を有する場合は、ライトバックを要求するDMA転送設定をDMAコントローラ13に対して行ない、さらに、ページ状態をPRE−FREE状態に遷移して、データ転送が終了するまで待つ。
次に、工程S25において、工程S24におけるデータ転送が終了した後、マッピング要求されたページ14がプリロード属性を有する場合は、プリロードを要求するDMA転送設定をDMAコントローラ13に対して行ない、さらに、PRE−ALLOC状態に遷移して、データ転送が終了するまで待つ。
次に、工程S26において、工程S25におけるデータ転送が終了した後、ページ状態をALLOC状態とし、該当するページ14からデータを読み込んで処理を終了する。
以上説明したように、第3のメモリ入れ替え方法は、ページ属性のうちアクセス周期属性に設定されている周期が最も長いページ14を優先して入れ替える。
(空きメモリの配分方法)
次に、応用プログラム(以下、単にアプリケーションと呼ぶ。)が変更された場合に、他のアプリケーションを含め各アプリケーションに対する空きメモリ(=FREEバンク)の再配分方法について図面を参照しながら説明する。
1)均等配分法
第1の再配分方法は、アプリケーションが変更された場合に、各アプリケーションに対して空きメモリを均等に再配分する。
図7(a)に示すように、まず、10個の空きメモリが存在している状態で、第1のアプリケーション(A)には4個の空きメモリが割り当てられ、第2のアプリケーション(B)には3個の空きメモリが割り当てられ、さらに、第3のアプリケーション(C)には3個の空きメモリが割り当てられているとする。
あるタイミングで、第4のアプリケーション(D)が空きメモリ要求を発行したとすると、1アプリケーション当たりのメモリ数は2.5個となるが、メモリ(ページ)は分割できないため、図7(b)に示すように、ここでは、第1及び第2のアプリケーション(A)及び(B)にそれぞれ3個ずつのメモリを割り当て、第3及び第4のアプリケーション(C)及び(D)にそれぞれ2個ずつのメモリを割り当てる。
第1の再配分方法の一般的な処理フローを図8に示す。
図8に示すように、工程S31において、新たなアプリケーションからの空きメモリ要求が出されたとすると、次の工程S32において、既に割り当てられているアプリケーションの数と新たなアプリケーションの数とから1アプリケーション当たりの空きメモリ数(平均値)を算出する。
次に、工程S33、S34及びS35において、1アプリケーションごとに空きメモリの平均個数を割り当てる。このとき、平均値が整数でない場合は、平均値に対する切り上げ又は切り下げを必要なアプリケーションに対して施す。
このように、第1の再配分方法によると、割り当てルールが簡単であるため、実装も容易となる。
2)優先順配分法
第2の再配分方法は、アプリケーションが変更された場合に、各アプリケーションに対してそれぞれの優先度に応じて空きメモリを再配分する。
図9(a)に示すように、まず、10個の空きメモリが存在している状態で、優先度が1(小さい方が高い)である第1のアプリケーション(A)には4個の空きメモリが割り当てられ、優先度が2である第2のアプリケーション(B)には4個の空きメモリが割り当てられ、さらに、優先度が3である第3のアプリケーション(C)には2個の空きメモリが割り当てられているとする。ここで、各優先度はそれぞれ対応するタグ15に保持されている。また、各アプリケーション(A)〜(C)に与えられた望ましいメモリ数(希望メモリ数)はいずれも4であるとする。
あるタイミングで、優先度が1で希望メモリ数が4である第4のアプリケーション(D)が空きメモリ要求を発行したとする。ここでは、優先度が高い順に希望メモリ数と未だ割り当てられていない空きメモリ数とを比較して、そのうちの小さい方を各アプリケーションに割り当てる。従って、図9(b)に示すように、ここでは、第1及び第4のアプリケーション(A)及び(D)に4個ずつのメモリが割り当てられ、第2のアプリケーション(B)に2個のメモリが割り当てられる。また、優先度が3で最も低い第3のアプリケーション(C)には1つの空きメモリも割り当てられない。
第2の再配分方法の一般的な処理フローを図10に示す。
図10に示すように、工程S41において、新たなアプリケーションからの空きメモリ要求が出されたとすると、次の工程S42において、新たなアプリケーション及び既に割り当てられているアプリケーションを優先度が高い順、すなわち優先度の値が小さい順に並べ替える。
次に、工程S43、S44及びS45において、並べ替えられたアプリケーション順に、割り当て希望数及び未割り当て空きメモリ数のうち少ない方の数だけ空きメモリを割り当てる。
このように、第2の再配分方法によると、空きメモリを最も必要とするアプリケーションに割り当てられる可能性が高くなるため、メモリの使用効率が向上する。
3)動作周期順配分法
第3の再配分方法は、アプリケーションが変更された場合に、各アプリケーションに対してそれぞれの動作周期に応じて空きメモリを再配分する。
図11(a)に示すように、まず、10個の空きメモリが存在している状態で、動作周期が20msである第1のアプリケーション(A)には4個の空きメモリが割り当てられ、動作周期が30msである第2のアプリケーション(B)には4個の空きメモリが割り当てられ、さらに、動作周期が60msである第3のアプリケーション(C)には2個の空きメモリが割り当てられているとする。ここで、各アプリケーション(A)〜(C)に与えられた希望メモリ数はいずれも4であるとする。
あるタイミングで、動作周期が20msで希望メモリ数が4である第4のアプリケーション(D)が空きメモリ要求を発行したとする。ここでは、動作周期が小さい順に希望メモリ数と未だ割り当てられていない空きメモリ数とを比較して、そのうちの小さい方を各アプリケーションに割り当てる。従って、図11(b)に示すように、ここでは、第1及び第4のアプリケーション(A)及び(D)に4個ずつのメモリが割り当てられ、第2のアプリケーション(B)に2個のメモリが割り当てられる。また、動作周期が60msで最も大きい第3のアプリケーション(C)には1つの空きメモリも割り当てられない。
第3の再配分方法の一般的な処理フローを図12に示す。
図12に示すように、工程S51において、新たなアプリケーションからの空きメモリ要求が出されたとすると、次の工程S52において、新たなアプリケーション及び既に割り当てられているアプリケーションをそれぞれの動作周期が小さい順に並べ替える。
次に、工程S53、S54及びS55において、並べ替えられたアプリケーション順に、割り当て希望数及び未割り当て空きメモリ数のうち少ない方の数だけ空きメモリを割り当てる。
このように、第3の再配分方法によると、各アプリケーションの動作周期は、リアルタイム処理では一般に一意に決まるため、判断基準である動作周期を容易に決定することができる。
4)情報転送量順配分法
第4の再配分方法は、アプリケーションが変更された場合に、各アプリケーションに対してそれぞれの単位時間当たりの情報転送量に応じて空きメモリを再配分する。
図13(a)に示すように、まず、10個の空きメモリが存在している状態で、単位時間当たりの転送量情報が3である第1のアプリケーション(A)には4個の空きメモリが割り当てられ、単位時間当たりの転送量情報が2である第2のアプリケーション(B)には4個の空きメモリが割り当てられ、さらに、単位時間当たりの転送量情報が1である第3のアプリケーション(C)には2個の空きメモリが割り当てられているとする。ここで、各アプリケーション(A)〜(C)に与えられた希望メモリ数はいずれも4であるとする。
あるタイミングで、単位時間当たりの転送量情報が3で希望メモリ数が4である第4のアプリケーション(D)が空きメモリ要求を発行したとする。ここでは、転送量情報の値が大きい順に、希望メモリ数と未だ割り当てられていない空きメモリ数とを比較して、そのうちの小さい方を各アプリケーションに割り当てる。従って、図13(b)に示すように、ここでは、第1及び第4のアプリケーション(A)及び(D)に4個ずつのメモリが割り当てられ、第2のアプリケーション(B)に2個のメモリが割り当てられる。また、転送量情報が1で最も小さい第3のアプリケーション(C)には1つの空きメモリも割り当てられない。
第4の再配分方法の一般的な処理フローを図14に示す。
図14に示すように、工程S61において、新たなアプリケーションからの空きメモリ要求が出されたとすると、次の工程S62において、新たなアプリケーション及び既に割り当てられているアプリケーションをそれぞれの単位時間当たりの転送量情報が大きい順に並べ替える。
次に、工程S63、S64及びS65において、並べ替えられたアプリケーション順に、割り当て希望数及び未割り当て空きメモリ数のうち少ない方の数だけ空きメモリを割り当てる。
このように、第4の再配分方法によると、情報転送量が多い順に空きメモリを割り当てるため、プリロード又はライトバックが必要となるアプリケーションの情報転送量は少なくなるので、DMA転送時の情報転送量を抑制することができる。
(エクストラメモリ管理機能)
次に、情報転送量を削減可能なエクストラメモリ管理機能を説明する。
エクストラメモリとは、アプリケーションに確保されていないFREEバンクをいう。
従って、エクストラメモリ管理機能は、FREEバンクを要求するアプリケーションに分配する空きメモリの有効活用と、ページのキャッシングを行なうこととにより、ページ属性であるプリロード属性又はライトバック属性に伴うDMA転送による情報転送量の削減を図る機能である。
また、ページのキャッシングとは、ページのアンマッピング時に、ページ14のタグ情報を無効とするだけで、ページ14の内容は廃棄せずに保存しておくことをいう。このようにすることにより、主記憶メモリ12における同一のメモリ部分を指定してページのマッピングが行なわれた場合には、該当するページ14がキャッシングされている場合はそのタグ15を有効とするだけでページのマッピングを行なえるため、ページのマッピング処理及びページのアンマッピング処理の高速化を図ることができる。
ところで、エクストラメモリ管理機能は、バンク16に対してFREEバンクを示す属性とページ14に対する属性とを設定するだけで有効にすることができる。
以下、エクストラメモリ管理機能について、エクストラ属性を有する場合と有さない場合とを対比しながら説明する。続いて、エクストラメモリ管理機能の詳細として、エクストラ属性が設定されたページ14及び使用されるバンク16の各属性及び状態について説明する。
(1回目のページのマッピング)
まず、1回目のページのマッピング時の動作について図15(a)〜図15(c)を参照しながら説明する。
図15(a)において、1つのバンクに属するページの全ページ状態がFREE状態であるバンク101を指定したページのマッピング要求が発行されたとする。
次に、図15(b)に示すように、エクストラ属性が設定されていない場合のページ(A0 )は、マッピング要求により、状態が101であるバンク(自バンク)から獲得(確保)されるため、最初のFREEページがALLOCページ(A0 )となってバンクの状態は102となる。
これに対し、図15(c)に示すように、状態が101であるバンクを指定して、エクストラ属性が設定されたページ(A1 )に対してマッピング要求を行なうと、FREE状態のバンクの有無と、ページのマッピング要求時に指定された自バンクが所有するバンクの数を判定する。その結果、FREE状態のバンクが存在し、自バンクが所有するバンクが最大所有バンク数を超えていない場合(ここでは、1回目のマッピングであるため、所有バンクはない。)には、FREE状態のバンクは自バンクが所有するバンクとなる。ここで、自バンクによって所有されたバンクをエクストラバンクと呼ぶ。
次に、ページを獲得するバンクを確定する。対象となるバンクは、自バンクと該自バンクが所有するエクストラバンクとである。なお、ページを獲得するバンクの確定方法については後述する。
次に、条件に合致したバンクからページの獲得を行ない、プリロードとタグ15の有効化を図る。これにより、エクストラ属性が設定されたページにマッピング要求が発行された後の自バンクの状態は103となり、自バンクが所有するエクストラバンクの状態は104となる。
ここで、エクストラ属性が設定された擬似キャッシュメモリページをエクストラページと呼ぶ。また、ページのマッピングが行なわれ、タグ15が有効となったエクストラページを構成するページの状態はEXTRA状態に遷移する。この状態のページをEXTRAページと呼ぶ。
(ページのアンマッピング)
次に、ページのアンマッピング時の動作について図16(a)〜図16(d)を参照しながら説明する。
図16(a)に示すように、まず、エクストラ属性が設定されていない場合は、ページ(A0 )に対してアンマッピング要求を行なうと、該ページ(A0 )は解放されてFREE状態となるため、図16(b)に示すように、ページ(A0 )のアンマッピング要求を行なった後のバンクの状態は101となる。
これに対し、図16(c)に示すように、状態が103である自バンクを指定して、エクストラ属性が設定されたページ(A1 )に対してアンマッピング要求を行なうと、図16(d)に示すように、自バンクが所有するエクストラバンク内のページ(A1 )はタグ15を無効とされ、ページ(A1 )の状態はキャッシングされたEXTRAFREE(エクストラフリー)状態となる。このEXTRAFREE状態のページをEXTRAFREEページと呼ぶ。また、ライトバック属性が設定されたエクストラページを構成するページであっても、ライトバックは行なわない。従って、エクストラ属性が設定されたページのアンマッピング要求を行なった後の自バンクの状態は106となり、自バンクが所有するエクストラバンクの状態は107となる。
(2回目以降のページのマッピング)
次に、2回目以降のページのマッピング時の動作について図17(a)〜図17(d)を参照しながら説明する。
図17(a)に示すように、に示すように、まず、状態が101であるバンクを指定して、エクストラ属性が設定されていないページ(A0 )に対して2回目のマッピング要求を行なうと、図17(b)に示すように、ページ(A0 )は状態が101であるバンクから獲得されるため、ページ(A0 )に対してマッピング要求を行なった後のバンク状態は102となる。すなわち、1回目と動作は同じである。
これに対し、図17(c)に示すように、状態が106である自バンクを指定して、エクストラ属性が設定されたページ(A1 )に対して2回目のマッピング要求を行なうと、始めに自バンクと、該自バンクが所有する状態が107であるエクストラバンクを構成するページ(A1 )に要求された内容がキャッシングされているか否かを判定する。すなわち、EXTRAFREEページが存在していないかを探す。なお、キャッシュヒットの条件については後述する。
キャッシングされている場合は、図17(d)に示すように、タグ15を有効とするだけでページ(A1 )のマッピングを行なうことができる。一方、キャッシングされていない場合は、1回目のページのマッピングと同様にページを獲得するバンクの確定を行ない、確定したバンクからのページを獲得して、続いて主記憶メモリ12とのマッピングを行なう。さらに、プリロード属性が設定されている場合はプリロード処理を行なう。
従って、エクストラ属性が設定されたページに対して、2回目又はそれ以降のマッピング要求を行なった後は、自バンクの状態は103となり、自バンクが所有するエクストラバンクの状態は104となる。
次に、ページ(A0 又はA1 )をマッピングした状態で、これらのページとは異なる他のページ(B0 又はB1 )をマッピングする際の動作について以下の4種類の場合について説明する。
1)エクストラバンクにEXTRAFREEページがある場合
ページ(A0 又はA1 )の他にページ(B0 又はB1 )をマッピングする第1の場合について図18(a)〜図18(d)を参照しながら説明する。
図18(a)に示すように、状態が102であるバンクを指定して、エクストラ属性が設定されていないページ(B0 )に対してマッピング要求を行なうと、ページ(B0 )は状態が102であるバンクから獲得されるため、図18(b)に示すように、ページ(B0 )のマッピング要求を行なった後のバンク状態は109となる。
これに対し、図18(c)に示すように、状態が103である自バンクを指定して、エクストラ属性が設定されたページ(B1 )に対してマッピング要求を行なうと、始めに状態が103である自バンクと該自バンクが所有するエクストラバンクを構成するページに、要求された内容がキャッシングされているか否かを判定する。キャッシングされている場合はタグ15を有効とするだけでページ(B1 )をマッピングすることができる。ここでは、ページ(B1 )は自バンクが所有する状態が108であるエクストラバンクにキャッシングされているとする。従って、図18(d)に示すように、ページ(B1 )のマッピング要求を行なった後の自バンクの状態は、2つのFREEページを持つ110となり、自バンクが所有するエクストラバンクの状態はEXTRAページ(A1 )及び(B1 )を持つ111となる。
2)エクストラバンクにFREEページがある場合
ページ(A1 )の他にページ(B1 )をマッピングする第2の場合について図19(a)及び図19(b)を参照しながら説明する。なお、第2〜第4の場合は、エクストラ属性が設定されているページの場合のみを説明する。
図19(a)に示すように、第2の場合は、エクストラバンクを構成するページがキャッシングされていない場合は、状態が103である自バンクが所有するエクストラバンクから要求された数分のページを獲得することを試みる。1回目のページのマッピングとは異なり、自バンクは既に状態が104であるエクストラバンクを所有しているとする。ここでは、エクストラバンクから1つのページを獲得できる。従って、図19(b)に示すように、ページ(B1 )のマッピングを行なった後の自バンクの状態は、2つのFREEページを持つ110となり、自バンクが所有するエクストラバンクの状態はEXTRAページ(A1 )及び(B1 )を持つ111となる。
3)エクストラバンクにFREEページがない場合
ページ(A1 )の他にページ(B1 )をマッピングする第3の場合について図20(a)及び図20(b)を参照しながら説明する。
図20(a)に示すように、状態が110である自バンクが既に所有する、状態が112であるエクストラバンクにはFREEページが存在せず、これ以上マッピングを行なえない場合は、新たなエクストラバンクの獲得を試みる。1回目のページのマッピングと同様に、FREE状態のバンクの有無と、呼び出し時に指定したバンクが所有するバンクの数とを判定する。その結果、FREE状態のバンクがあり、自バンクが所有するバンクが最大所有バンク数を超えていない場合は、FREE状態である他のバンクを獲得して新たなエクストラバンクとし、このバンクからページ(B1 )の獲得を行ない、さらに、プリロード処理を行ない且つタグ15を有効とする。従って、第3の場合は、図20(b)に示すように、ページ(B1 )のマッピングを行った後の自バンクの状態は、2つのFREEページを持つ110となり、自バンクが所有する2つのエクストラバンクの状態は、それぞれ、EXTRAページ(A1 )及び(C1 )を持つ112と、EXTRAページ(B1 )及びFREEページを持つ113となる。
4)エクストラバンクにFREEページがない場合
ページ(A1 )の他にページ(B1 )をマッピングする第4の場合について図21(a)及び図21(b)を参照しながら説明する。
図21(a)に示すように、第3の場合とは異なり、新たなエクストラバンクを獲得できなかった場合は、状態が112であるエクストラバンクからではなく、状態が110である自バンクからページ(B1 )の獲得を行ない、その後、プリロード処理を行ない且つタグ15を有効とする。従って、第4の場合は、図21(b)に示すように、ページ(B1 )のマッピングを行なった後の自バンクの状態は、EXTRAページ(B1 )及びFREEページを持つ114となり、自バンクが所有するエクストラバンクの状態は、EXTRAページ(A1 )及び(C1 )を持つ112となる。
以下、エクストラメモリ管理機能に必要となる制御情報について説明する。
エクストラバンクには、バンク属性設定要求によって各バンク16にバンク属性を設定することができる。従って、バンク属性にエクストラ属性が設定されたバンク16に対してエクストラメモリ管理機能が有効となり、エクストラメモリ管理機能を使用できるページの獲得を可能とする。
最大エクストラバンク数は、所有できるエクストラバンクの最大値を表わす。
エクストラページに付与されるページ属性は、ページ14に対するマッピング要求によるページのマッピング時に、エクストラページを構成するページに付与可能な属性である。ページ14にエクストラ属性が設定されると、プリロード属性及びライトバック属性の意味が以下のように変更される。
バンク16に付与するエクストラ属性を設定すると、ページ14にエクストラメモリ管理機能を使用することを宣言する。従って、ページのマッピング時にエクストラバンク属性が設定されていないバンク16を指定するとエラーとなる。
プリロード属性が設定されていると、ページ14に対するマッピング時において、そのページ14がキャッシングされていないページである場合は、マッピングする主記憶メモリ12に格納されている内容をエクストラページであるページ14にプリロードする。ページ14の獲得時にそのページ14がキャッシングされているページである場合は、既にプリロードされているとみなしてDMA転送は行なわない。
ライトバック属性が設定されていると、ページ14に対するアンマッピング時にタグ15を無効とする。ある条件によりアンキャッシュされる時には、ページ14の内容を主記憶メモリ12にライトバックする。エクストラ属性が設定された擬似キャッシュメモリページを構成するページ14はアンキャッシュされるまではライトバックを行なわない。また、キャッシングされている場合はプリロードを行なわない。
以下、エクストラページのページ状態を説明する。
FREE(フリー)状態(ページ状態と共通)とは、スレッドにより確保(獲得)されておらずエクストラページを構成していないページ14の状態をいい、FREEページと呼ぶ。このFREE状態は内部状態であり、外部から確認することはできない。ページ14が確保されるとPRE−EXTRA(プレエクストラ)状態に遷移する。
PRE−EXTRA状態とは、エクストラ属性及びプリロード属性が設定されてページのマッピングが行なわれ、プリロードが終了していないエクストラページを構成するページ14の状態をいう。この状態をPRE−EXTRAページと呼び、プリロード属性が設定されていない場合は、タグ15が有効とされた後に、EXTRA(エクストラ)状態に遷移する。また、プリロード属性が設定されている場合は、プリロードが終了するとタグ15が有効とされた後にEXTRA状態に遷移する。
EXTRA状態とは、エクストラ属性が設定されて、アクセス可能なエクストラページを構成するページの状態をいう。この状態をEXTRAページと呼び、ページのアンマッピングが行なわれると、タグ15が無効とされた後にキャッシングされたEXTRAFREE(エクストラフリー)状態に遷移する。
EXTRAFREE状態とは、エクストラ属性が設定されて、ページのアンマッピングが行なわれたページの状態をいう。この状態をEXTRAFREEページと呼び、ライトバック属性が設定されたEXTRAFREEページがアンキャッシュされるとライトバックが行なわれ、PRE−FREE(プレフリー)状態に遷移する。また、エクストラ属性が設定されていないページのマッピングによってPRE−ALLOC(プレアロック)状態に遷移する。エクストラ属性が設定されたページのマッピング時にキャッシュヒットすると、タグ15が有効化とされた後にEXTRA状態に遷移する。
PRE−FREE状態とは、ページのアンマッピングは行なわれたがライトバックが終了していないエクストラページを構成するページの状態をいう。この状態をPRE−FREEページと呼び、ライトバック属性が設定されていない場合は、ページの解放が行なわれた後にFREE状態に遷移する。また、ライトバック属性が設定されている場合は、ライトバックが終了すると、ページの解放が行なわれた後にFREE状態に遷移する。
ここで、エクストラページ状態は、エクストラページ情報に含まれる。また、自バンクが所有可能なエクストラバンク数とは、エクストラ属性が設定されたバンク数をいう。また、FREEバンクがエクストラバンクとして所有されるものの、エクストラ属性が設定されたバンク16が複数である場合は、それぞれのバンク16に均等に配分される。
エクストラページのキャッシュヒット条件は、ページのマッピング要求を行なった時に指定したアドレスとページ数とが、キャッシングされているページのアドレスとページ数とに一致することである。
前述したように、エクストラページの重みと入れ替え判定とにおいて、エクストラ属性が設定された擬似キャッシュメモリページを構成するページ14はアンキャッシュされるまでライトバックを行なわない。また、キャッシングされている場合はプリロードを行なわない。さらに、DMA転送量を削減するために、プリロード属性又はライトバック属性が設定されたページ14を優先的にキャッシュに残すことが必要となる。そこで、エクストラ属性が設定されたページ14のそれぞれに対して重みを算出する。この重みをキャッシュ入れ替えの判定に用いることにより、キャッシュの最適化を行なう。なお、複数のページ14により構成されたエクストラページの一部のページ14が解放される場合には、エクストラページを構成する残部のすべてがアンキャッシングされる。
主記憶メモリ12とエクストラページとの同期タイミングに関し、エクストラメモリ管理機能を有効にした場合の物理領域とエクストラページとの同期は、ページのマッピング時及びページのアンマッピング時ではなく、プリロードとライトバックとが発生したタイミングとなる。なお、エクストラメモリ管理機能を使用しない場合は、ページのマッピングとページのアンマッピングとを行なった時点でプリロードとライトバックとが発生するが、エクストラメモリ管理機能を使用した場合は、他のページのマッピング又はページのアンキャッシングを行なうことによってキャッシュが無効となる場合に、プリロードとライトバックとが発生する。
エクストラページを確保するバンクの確定方法に関し、ページを獲得する対象となるバンク16を以下のように4種類に分類する。
[A]ページ指定子で指定されたページ
[B]自バンク
[C]自バンクが所有するエクストラバンク
[D]FREEバンク
次に、各バンク16に対して行なう確定条件を5種類に分類する。
[1]物理アドレスとページ数とが一致(キャッシュヒット)
[2]FREEページから必要なページ数を確保可能
[3]FREEページ、及び重み0のEXTRAFREEページから必要なページ数を獲得可能
[4]FREEページ、重み0のEXTRAFREEページ、及び重み1のEXTRAFREEページから必要なページ数を確保可能
[5]なし(必ず確保可能)
上記のように分類されたバンク16に対して確定条件を、例えば図22に示される順に適用することにより、ページ14を確保するバンク16を確定する。
(エクストラバンクの解放方法)
次に、エクストラバンクの解放方法について説明する。
まず、自バンクが所有可能なエクストラバンクのバンク数が減少した場合に、解放するエクストラバンクの選択方法について説明する。
エクストラバンクを解放しなければならない場合とは、スレッドがバンク16を確保する際に、エクストラバンクとして使用されていないFREEバンクだけではバンク数が足りない場合と、エクストラ属性が設定されたバンク数が増加し、各バンク16に対するエクストラバンクの割り当てが変更された場合とである。
これらの場合は、自バンクがそれぞれ所有できるエクストラページの数は再計算される。また、自バンクが所有できるエクストラバンクのバンク数が減少した場合は、各エクストラバンクの重み(以後、バンク重みと呼ぶ。)によって解放するエクストラバンクを決定する。エクストラバンクのバンク重みには、エクストラバンクを構成するページ14の重みを合計した値を用い、このバンク重みが小さいエクストラバンクから解放する。
以下、一例として、自バンクが3つのエクストラバンクを所有する状態から、自バンクが所有可能なエクストラバンク数が1つとなる場合に、解放されるバンクの選択方法について図23(a)及び図23(b)に基づいて説明する。
図23(a)に示すように、状態が120である自バンクは、状態がそれぞれ121、122及び123である3つのエクストラバンクを所有している。状態が121であるエクストラバンク1は、重み2を持つページ(A1 )と重み1を持つページ(B1 )とを含むため、そのバンク重みは3である。状態が122であるエクストラバンク2は、重み1を持つページ(A1 )と重み1を持つページ(B1 )とを含むため、そのバンク重みは2である。また、状態が123であるエクストラバンク3は、重み1を持つページ(A1 )と重み0を持つページ(B1 )とを含むため、そのバンク重みは1である。
ここで、状態が120である自バンクの所有可能なエクストラバンク数が減少して、3から1になったと仮定する。状態が120である自バンクは、それぞれバンク重み3、バンク重み2及びバンク重み1の3つのエクストラバンクを所有しているため、3つのうち重みが小さい2つのエクストラバンク、すなわち状態が122でその重みが2であるエクストラバンク2と、状態が123でその重みが1であるエクストラバンク3とを解放する決定がされる。従って、図23(b)に示すように、エクストラバンク2、3は解放が要求されている状態に遷移し、エクストラバンク2の状態は124となり、エクストラバンク3の状態は125となる。
次に、エクストラバンクの解放方法について説明する。
まず、エクストラバンクに対する解放要求が行なわれる前の動作について図24(a)及び図24(b)を用いて説明する。
ここで、一のスレッドが周期的に動作を行ない、且つその1周期内でページA1 、ページB1 及びページC1 の3つのページ14に対して、マッピング要求及びアンマッピング要求を行なって2つのバンク16を獲得していると仮定する。
図24(a)のタイミングチャートに示すように、一のスレッドがページ(A1 )に対するマッピング要求を行なうと、該ページ(A1 )に対するアンマッピング要求が出されるまでの間は、ページ(A1 )はエクストラ状態となる。その後、ページ(B1 )に対するマッピング要求を行なって、該ページ(B1 )に対するアンマッピング要求が出されるまでの間は、ページ(B1 )はエクストラ状態となる。続いて、ページ(C1 )に対するマッピング要求を行なって、該ページ(C1 )に対するアンマッピング要求が出されるまでの間は、ページ(C1 )はエクストラ状態となる。
ここでは、図24(b)に示すように、各ページ(A1 )〜ページ(C1 )は互いに重複することなく、状態が130である自バンクと、状態が131であるエクストラバンクとに確保されているため、各ページ(A1 )〜ページ(C1 )に対するそれぞれのマッピング要求時にはいずれもキャッシングが有効となるので、アンマッピング要求時にはキャッシングされる。従って、プリロード及びライトバックは実行されない。ここで、図24(b)は、ページ(C1 )に対するアンマッピング要求を行なった後の自バンクの状態を示している。
次に、他のスレッドによってバンク16に対する獲得要求が行なわれ、状態が131であるエクストラバンクを解放するまでの動作について図25(a)及び図25(b)を用いて説明する。
図25(a)に示すように、一のスレッドが、ページ(A1 )及びページ(B1 )に対して順次マッピング要求及びアンマッピング要求を行ない、さらに、ページ(C1 )に対してマッピング要求を行なって、ページ(C1 )がEXTRA状態に遷移する。ここで、ページ(C1 )がEXTRA状態にある期間に、他のスレッドがバンク16に対する獲得要求を行ない、状態が130である自バンクの所有可能なエクストラバンク数が1から0になったとする。この時点で、状態が132であるエクストラバンクにはその解放要求がなされていることが登録される。
次に、他のスレッドによるバンクの獲得要求がなされて以降、解放が要求され且つ状態が132であるエクストラバンク内にあるページは、ページのアンマッピング要求時にライトバックされ、該ライトバックの終了後に解放される。ここで、図25(b)は、ページ(C1 )に対するアンマッピング要求を行なった後の自バンクの状態を示している。
次に、スレッドの動作中にエクストラバンクが解放されるまでの動作について図26(a)及び図26(b)を用いて説明する。
まず、図26(a)において、ページ(A1 )に対するマッピング要求時及びアンマッピング要求時の動作を説明する。ページ(A1 )に対するマッピング要求時には、該ページ(A1 )はキャッシングされているため、キャッシングされているページ14を獲得し、さらに対応するタグ15を有効とするだけで、ページ(A1 )のマッピングが可能となる。次に、ページ(A1 )に対するアンマッピング要求時には、ページ(A1 )が含まれるエクストラバンクに対して解放要求がなされているか否かを判定する。ここでは、解放要求がなされている場合を想定しているため、ページ(A1 )に対するライトバックが期間180で実行され、その結果、ページの状態はFREE状態となる。
同様に、ページ(B1 )に対するアンマッピング要求時には、ページ(B1 )が含まれるエクストラバンクに対して解放要求がなされているか否かを判定する。ここでも解放要求がなされているため、該ページ(B1 )に対するライトバックが期間181で実行され、ページの状態はFREE状態となる。
この時点で、状態が130である自バンクが所有するエクストラバンクの状態は133となり、エクストラバンクを構成するページの状態がすべてFREE状態となるため、バンクの解放を行なう。
ここで、解放要求がなされたページ(A1 )及びページ(B1 )はいずれもエクストラバンクに含まれているため、アンマッピング要求時にはライトバックされてしまうのに対し、ページ(C1 )は自バンクに含まれているため、ページのアンマッピング要求時にもキャッシングされる結果、ライトバックはされない。
ここで、図26(b)において、符号130は、ページ(C1 )に対するアンマッピング要求を行なった後の自バンクの状態を示し、自バンクが所有するエクストラバンクは、ページ(B1 )に対するアンマッピング要求を行なった後に状態が133となるため、解放されており、以後のスレッドの実行は自バンクのみで行なわれることになる。
以上説明したように、本実施形態によると、エクストラメモリとして空きメモリを活用することにより、さらにメモリ転送量を削減することができる。
その上、キャッシングされるメモリ容量が比較的に大きいため、従来のキャッシュメモリと比較して回路規模を削減できる。また、プログラム作成者はキャッシュのスケジューリングが容易となるため、キャッシュミスによる処理効率の低下を回避することができる。
なお、本実施形態においては、タグ比較器17等はハードウェアで構成し、擬似キャッシュマネージャ18はプロセッサ11のプログラムにより構成する例を示したが、同様の機能を実現できれば、ハードウェアかソフトウェアかは問われない。
本発明に係る半導体装置は、メモリの入れ替えに要するメモリ転送量を削減することができると共に、回路規模を削減できるという効果を有し、広義のプロセッサにメモリ入れ替え機構を有する半導体装置等として有用である。ここで、広義のプロセッサとは、基本的にはリアルタイム性を有する電子機器に搭載されるプロセッサを指す。また、具体的な装置の形態としては、DVD(デジタルバーサタイル(ビデオ)ディスク)、CD(コンパクトディスク)及びMD(ミニディスク)等のディスクを記録媒体とした録画(録音)再生装置、DVC(デジタルビデオカメラ)、DSC(デジタルスチルカメラ)等の光学機器、又はSDメモリカード等を記録媒体としたICレコーダ、又は携帯電話機、携帯型情報端末等が挙げられる。
本発明の一実施形態に係る半導体装置を構成するページ、バンク及びメモリエリアの一例を示すブロック図である。 本発明の一実施形態に係る半導体装置を示すブロック図である。 本発明の一実施形態に係る半導体装置における第1のメモリ入れ替え方法を示すフロ図である。 本発明の一実施形態に係る半導体装置における情報転送量の重み付けを登録する判定表である。 本発明の一実施形態に係る半導体装置における第2のメモリ入れ替え方法を示すフロー図である。 本発明の一実施形態に係る半導体装置における第3のメモリ入れ替え方法を示すフロー図である。 (a)及び(b)は本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合に、他の応用プログラムを含め各応用プログラムに対する空きメモリの再配分方法における第1の再配分方法を示し、(a)は新たな空きメモリ要求の発行前の割り当てメモリ数を示す表であり、(b)は新たな空きメモリ要求の発行後の割り当てメモリ数を示す表である。 本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合の第1の再配分方法を示すフロー図である。 (a)及び(b)は本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合に、他の応用プログラムを含め各応用プログラムに対する空きメモリの再配分方法における第2の再配分方法を示し、(a)は新たな空きメモリ要求の発行前の割り当てメモリ数を示す表であり、(b)は新たな空きメモリ要求の発行後の割り当てメモリ数を示す表である。 本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合の第2の再配分方法を示すフロー図である。 (a)及び(b)は本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合に、他の応用プログラムを含め各応用プログラムに対する空きメモリの再配分方法における第3の再配分方法を示し、(a)は新たな空きメモリ要求の発行前の割り当てメモリ数を示す表であり、(b)は新たな空きメモリ要求の発行後の割り当てメモリ数を示す表である。 本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合の第3の再配分方法を示すフロー図である。 (a)及び(b)は本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合に、他の応用プログラムを含め各応用プログラムに対する空きメモリの再配分方法における第4の再配分方法を示し、(a)は新たな空きメモリ要求の発行前の割り当てメモリ数を示す表であり、(b)は新たな空きメモリ要求の発行後の割り当てメモリ数を示す表である。 本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合の第4の再配分方法を示すフロー図である。 (a)〜(c)は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能を説明する概念図であって、(a)はページに対するマッピング要求がなされる前のバンクの状態を示す図であり、(b)はエクストラ属性を有さない場合のページのマッピング後のバンクの状態を示す図であり、(c)はエクストラ属性を有する場合のページのマッピング後のバンクの状態を示す図である。 (a)〜(d)は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能を説明する概念図であって、(a)はエクストラ属性を有さない場合のページに対するアンマッピング要求がなされる前のバンクの状態を示す図であり、(b)は(a)の場合におけるページのアンマッピング要求後のバンクの状態を示す図であり、(c)はエクストラ属性を有する場合のページに対するアンマッピング要求がなされる前のバンクの状態を示す図であり、(d)は(c)の場合におけるページのアンマッピング要求後のバンクの状態を示す図である。 (a)〜(d)は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能を説明する概念図であって、(a)はエクストラ属性を有さない場合のページに対する2回目以降のマッピング要求がなされる前のバンクの状態を示す図であり、(b)は(a)の場合における2回目以降のページのマッピング要求後のバンクの状態を示す図であり、(c)はエクストラ属性を有する場合の2回目以降のページのマッピング要求がなされる前のバンクの状態を示す図であり、(d)は(c)の場合における2回目以降のページのマッピング要求後のバンクの状態を示す図である。 (a)〜(d)は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能で、エクストラバンクにEXTRAFREEページがある場合の概念図であって、(a)はエクストラ属性を有さない場合の他のページに対するマッピング要求がなされる前のバンクの状態を示す図であり、(b)は(a)の場合における他のページのマッピング要求後のバンクの状態を示す図であり、(c)はエクストラ属性を有する場合の他のページに対するマッピング要求がなされる前のバンクの状態を示す図であり、(d)は(c)の場合における他のページのマッピング要求後のバンクの状態を示す図である。 (a)及び(b)は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能で、エクストラバンクにFREEページがある場合の概念図であって、(a)はエクストラ属性を有する場合の他のページに対するマッピング要求がなされる前のバンクの状態を示す図であり、(b)は(a)の場合における他のページのマッピング要求後のバンクの状態を示す図である。 (a)及び(b)は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能で、エクストラバンクにFREEページがない場合の概念図であって、(a)はエクストラ属性を有する場合の他のページに対するマッピング要求がなされる前のバンクの状態を示す図であり、(b)は(a)の場合における他のページのマッピング要求後のバンクの状態を示す図である。 (a)及び(b)は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能で、エクストラバンクにFREEページがない場合の他の概念図であって、(a)はエクストラ属性を有する場合の他のページに対するマッピング要求がなされる前のバンクの状態を示す図であり、(b)は(a)の場合における他のページのマッピング要求後のバンクの状態を示す図である。 本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能であって、エクストラページを確保するバンクの確定方法とその確定条件を示す表である。 (a)及び(b)は発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能のうちエクストラバンクの解放方法を説明する概念図である。 (a)は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能のうちエクストラバンクの解放方法を説明するタイミング図である。(b)は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能のうちエクストラバンクの解放方法を説明する概念図である。 (a)は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能のうちエクストラバンクの解放方法を説明する他のタイミング図である。(b)は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能のうちエクストラバンクの解放方法を説明する他の概念図である。 (a)は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能のうちエクストラバンクの解放方法を説明する他のタイミング図である。(b)は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能のうちエクストラバンクの解放方法を説明する他の概念図である。 従来のキャッシュメモリを有する半導体装置を示すブロック図である。
符号の説明
11 プロセッサ
12 主記憶メモリ(第1の記憶部)
13 DMAコントローラ
14 ページ(第2の記憶部)
15 タグ
16 バンク
17 タグ比較器
18 擬似キャッシュマネージャ(入替制御部/バンク制御部/分配管理部)

Claims (11)

  1. プロセッサと、
    前記プロセッサによりアクセスされる第1の記憶部と、
    数キロバイト以上の記憶容量ごとに分割されてなる複数のページ記憶部からなり、前記第1の記憶部と比べて前記プロセッサによる高速なアクセスが可能で、前記第1の記憶部に記憶される内容の一部を記憶する第2の記憶部と、
    前記第1の記憶部におけるアドレス値を示すタグ情報を前記各ページ記憶部に付加するタグと、
    前記プロセッサからのアクセス要求を受け、前記第1の記憶部におけるアドレス値と前記タグが保持するタグ情報とを比較するタグ比較器と、
    前記タグ比較器による比較結果が一致しなかった場合に、前記第1の記憶部における前記アドレス値の内容で、記ページ記憶部の内容を入れ替える入替制御部とを備え、
    記ページ記憶部は、所定数ごとにまとめられて1つのバンクメモリを構成しており、
    記バンクメモリを管理するバンク制御部を備えていることを特徴とする半導体装置。
  2. 前記プロセッサが実行する応用プログラムの機能ごとに、前記各ページ記憶部を割り当てる割り当て数を管理する分配管理部をさらに備えていることを特徴とする請求項1に記載の半導体装置。
  3. 前記入替制御部は、前記ページ記憶部に対するアクセス要求を受け、該アクセス要求が対象とするデータのアドレス情報が前記タグに保持されているか否かを判定し、該アドレス情報が保持されていない場合には、前記複数のページ記憶部のなかから前記第1の記憶部との間で情報転送量が少ないページ記憶部を選択し、選択されたページ記憶部を解放し、解放されたページ記憶部に要求されたアドレスのデータを読み込むことを特徴とする請求項に記載の半導体装置。
  4. 前記入替制御部は、前記ページ記憶部に対するアクセス要求を受け、該アクセス要求が対象とするデータのアドレス情報が前記タグに保持されているか否かを判定し、該アドレス情報が保持されていない場合には、あらかじめ指定された入れ替え情報に基づいて前記複数のページ記憶部のなかから1つのページ記憶部を選択し、選択されたページ記憶部を解放し、解放されたページ記憶部に要求されたアドレスのデータを読み込むことを特徴とする請求項に記載の半導体装置。
  5. 前記入替制御部は、前記ページ記憶部に対するアクセス要求を受け、該アクセス要求が対象とするデータのアドレス情報が前記タグに保持されているか否かを判定し、該アドレス情報が保持されていない場合には、前記複数のページ記憶部のなかからアクセス周期が長いページ記憶部を選択し、選択されたページ記憶部を解放し、解放されたページ記憶部に要求されたアドレスのデータを読み込むことを特徴とする請求項に記載の半導体装置。
  6. 前記入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムに空きメモリを均等となるように再配分することを特徴とする請求項3〜5のうちのいずれか1項に記載の半導体装置。
  7. 前記タグは、入れ替え優先度を示す優先度情報を有し、
    前記入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムにあらかじめ規定され且つ前記タグに保持された前記優先度情報に従って空きメモリを再配分することを特徴とする請求項3〜5のうちのいずれか1項に記載の半導体装置。
  8. 前記入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムのうち動作周期が短い応用プログラムから順に空きメモリを再配分することを特徴とする請求項3〜5のうちのいずれか1項に記載の半導体装置。
  9. 前記入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムのうち単位時間当たりの転送量が多い応用プログラムから順に空きメモリを再配分することを特徴とする請求項3〜5のうちのいずれか1項に記載の半導体装置。
  10. 前記入替制御部は、新たなメモリ確保要求を受けた場合に、動作中の応用プログラムに割り当てられた空きメモリのうち、前記各ページ記憶部又は前記各バンクメモリと前記第1の記憶部との間の情報転送量が少ない空きメモリを選択して解放することを特徴とする請求項6〜9のうちのいずれか1項に記載の半導体装置。
  11. 前記入替制御部は、応用プログラムの動作周期の1周期分でページ記憶部の確保及び解放を行ない、その周期中は空きメモリの確保を行なわず、1周期後に割り振られた空きメモリを解放できる状態とすることを特徴とする請求項6〜9のうちのいずれか1項に記載の半導体装置。
JP2003409804A 2003-03-26 2003-12-09 半導体装置 Expired - Lifetime JP4713077B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003409804A JP4713077B2 (ja) 2003-03-26 2003-12-09 半導体装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003084894 2003-03-26
JP2003084894 2003-03-26
JP2003409804A JP4713077B2 (ja) 2003-03-26 2003-12-09 半導体装置

Publications (2)

Publication Number Publication Date
JP2004310739A JP2004310739A (ja) 2004-11-04
JP4713077B2 true JP4713077B2 (ja) 2011-06-29

Family

ID=33478279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003409804A Expired - Lifetime JP4713077B2 (ja) 2003-03-26 2003-12-09 半導体装置

Country Status (1)

Country Link
JP (1) JP4713077B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001297037A (ja) * 1999-12-06 2001-10-26 Texas Instr Inc <Ti> スマート・キャッシュ
JP2001297036A (ja) * 1999-12-06 2001-10-26 Texas Instr Inc <Ti> 多重埋めモードを有するキャッシュ

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61271572A (ja) * 1985-05-28 1986-12-01 Toshiba Corp キヤツシユメモリ
JPS6398749A (ja) * 1986-10-16 1988-04-30 Mitsubishi Electric Corp デ−タ処理装置
JPH03127239A (ja) * 1989-10-13 1991-05-30 Matsushita Electric Ind Co Ltd キャッシュメモリ及びその使用方法
JPH03232034A (ja) * 1990-02-08 1991-10-16 Oki Electric Ind Co Ltd キャッシュ制御装置
GB9118312D0 (en) * 1991-08-24 1991-10-09 Motorola Inc Real time cache implemented by dual purpose on-chip memory
JPH086857A (ja) * 1994-06-17 1996-01-12 Mitsubishi Electric Corp キャッシュメモリ
JPH1055308A (ja) * 1996-08-09 1998-02-24 Toshiba Corp キャッシュメモリ
JP3469042B2 (ja) * 1997-05-14 2003-11-25 株式会社東芝 キャッシュメモリ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001297037A (ja) * 1999-12-06 2001-10-26 Texas Instr Inc <Ti> スマート・キャッシュ
JP2001297036A (ja) * 1999-12-06 2001-10-26 Texas Instr Inc <Ti> 多重埋めモードを有するキャッシュ

Also Published As

Publication number Publication date
JP2004310739A (ja) 2004-11-04

Similar Documents

Publication Publication Date Title
US10963387B2 (en) Methods of cache preloading on a partition or a context switch
US7793049B2 (en) Mechanism for data cache replacement based on region policies
US7975107B2 (en) Processor cache management with software input via an intermediary
US6430656B1 (en) Cache and management method using combined software and hardware congruence class selectors
US7991956B2 (en) Providing application-level information for use in cache management
US9256527B2 (en) Logical to physical address mapping in storage systems comprising solid state memory devices
JP2554449B2 (ja) キャッシュ・メモリを有するデータ処理システム
US6604174B1 (en) Performance based system and method for dynamic allocation of a unified multiport cache
US8412907B1 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation
US20020116584A1 (en) Runahead allocation protection (rap)
US20180300258A1 (en) Access rank aware cache replacement policy
JP4829191B2 (ja) キャッシュシステム
US20180232313A1 (en) Cache sector usage prediction
US20100030966A1 (en) Cache memory and cache memory control apparatus
US6421761B1 (en) Partitioned cache and management method for selectively caching data by type
US8874853B2 (en) Local and global memory request predictor
US10152425B2 (en) Cache entry replacement based on availability of entries at another cache
JP2019096309A (ja) メンテナンス動作の実行
US20180113815A1 (en) Cache entry replacement based on penalty of memory access
KR20160029086A (ko) 데이터 스토어 및 데이터 스토어에 데이터를 할당하는 방법
US7721047B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation requests
US7689993B2 (en) Assigning tasks to processors based at least on resident set sizes of the tasks
US7502901B2 (en) Memory replacement mechanism in semiconductor device
US6598124B1 (en) System and method for identifying streaming-data
WO2002027498A2 (en) System and method for identifying and managing streaming-data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100323

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110112

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110324

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250