JP3973129B2 - キャッシュメモリ装置及びそれを用いた中央演算処理装置 - Google Patents
キャッシュメモリ装置及びそれを用いた中央演算処理装置 Download PDFInfo
- Publication number
- JP3973129B2 JP3973129B2 JP2000219685A JP2000219685A JP3973129B2 JP 3973129 B2 JP3973129 B2 JP 3973129B2 JP 2000219685 A JP2000219685 A JP 2000219685A JP 2000219685 A JP2000219685 A JP 2000219685A JP 3973129 B2 JP3973129 B2 JP 3973129B2
- Authority
- JP
- Japan
- Prior art keywords
- cache memory
- cache
- memory device
- information
- address
- 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 - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 42
- 230000015654 memory Effects 0.000 claims description 76
- 238000000034 method Methods 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 13
- 230000036316 preload Effects 0.000 claims description 6
- 230000002093 peripheral effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 6
- 238000013519 translation Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の属する技術分野】
本発明は、キャッシュメモリ装置及びそれを用いた中央演算処理装置を有するデータ処理装置に係り、特にシステム制御情報を格納するキャッシュメモリ装置を有するデータ処理装置に関する。
【0002】
【従来の技術】
従来のマイクロプロセッサ等のデータ処理装置は、命令とデータの両情報を記憶する単一のキャッシュメモリを有するアーキテクチャを採用していた。従来のデータ処理装置は、単一のキャッシュメモリのために、データ処理装置が実行するアプリケーションプログラムの命令アクセスの順序やデータの容量により、キャッシュ内容の更新が頻繁に発生するためにキャッシュのヒット率が低く、速度の遅い外部記憶装置にアクセスする頻度が増えるために、システムの性能が低かった。
【0003】
近年のマイクロプロセッサ等のデータ処理装置は、キャッシュのヒット率の向上を狙って、命令用キャッシュメモリとデータ用キャッシュメモリを独立に有するものが増えてきた。また、キャッシュを階層化することで、ヒット率の向上を狙うものもある。
【0004】
従来の技術として、例えば、特開平6−242951号公報及び、特開平8−16390号公報及び、米国特許第5375216号に記載があるように、キャッシュメモリ装置を命令用とデータ用との2つ分けてそれぞれ設けているものが知られている。
【0005】
また、キャッシュメモリ装置を高速化するために、特開平5−324317号公報に記載されているように、メモリの逐次先読み手段を設けたり、特開平6−110681号公報に記載されているように、該命令用のメモリ装置と該データ用のメモリ装置それぞれに独立した情報伝達経路を設けているものが知られている。
【0006】
さらに「パターソン&ヘネシー コンピュータの構成と設計 ハードウェアとソフトウェアのインタフェース(ISBN4−8222−8057−8)」第498頁から第576頁に記載されているように、キャッシュ検索の高速化のために、いくつかのマッピング方式がある。
【0007】
また、キャッシュメモリ装置ではないが、CPUのシステムにおいて、通常命令とシーケンス命令を分けて実行するものが、特開平3−223931号公報に記載されている。また、パイプラインの実装方法として、プリロードする命令データのアドレスごとに処理を分けるものが特開昭62−231340号公報に記載されている。
【0008】
【発明が解決しようとする課題】
上記キャッシュメモリ装置に関する従来技術は、キャッシュメモリのヒット率を上げるために、命令用とデータ用に分けているが、アプリケーションプログラムの命令アクセスの順序や、該アプリケーションプログラムが操作するデータの容量によるキャッシュメモリ内容の変化を考慮していないため、該アプリケーションプログラムの実行を管理する命令群及び、データ群のヒット率が低くなり、システム全体の性能が低下するという問題がある。
【0009】
このようなシステム性能に影響を及ぼす、前記アプリケーションプログラムの実行を管理する命令群及び、データ群の一例として、システム制御情報がある。該システム制御情報の一例として、該アプリケーションプログラムの基盤となるオペレーティングシステムに係る命令群及び、データ群がある。
【0010】
特開平5−324317号公報等の前記従来技術では、該オペレーティングシステムにおける命令群及び、データ群例えばTCB(タスクコントロールブロック)は、前記アプリケーションプログラムの命令群及び、データ群と同様に扱われるので、該アプリケーションの実行状況によってキャッシュ内容が変化すると、該オペレーティングシステムの命令群及び、データ群にも影響がおよび、最悪キャッシュから削除されるため、キャッシュヒット率が変動し、システム全体の挙動の予測が困難である。
【0011】
そのため、厳密なタイミング制御を要求される組込み制御システムでは、前記オペレーティングシステムとしてリアルタイム・オペレーティングシステムを導入し、この命令群及び、データ群は、キャッシュ対象外で利用されることが多い。リアルタイム・オペレーティングシステムがキャッシュ対象外で利用されるため、キャッシュメモリに比べて、アクセス速度が非常に遅い外部メモリにアクセスしなければならず、システム全体の性能が劣化する。
【0012】
本発明の第1の目的は、アプリケーションプログラムの挙動に影響されずにシステム制御データをキャッシュしシステム全体の性能を上げることができるメモリ装置を提供することである。
【0013】
本発明の第2の目的は、キャッシュメモリ装置における、システム制御情報へのアクセスの高速化及び、キャッシュヒット率の向上を図ることにある。
【0014】
また、本発明の第3の目的は、システム制御情報群を操作するための命令群を有する中央演算処理装置におけるキャッシュ制御のアクセス性を改善することである。
【0015】
【課題を解決するための手段】
本発明の第1の目的は、メモリに記憶されている情報の一部もしくは全部を記憶するキャッシュメモリ装置において、システム制御に係る命令群又はデータ群の情報の少なくとも一方を記憶するキャッシュメモリと、該情報が記憶されている前記メモリ上のアドレスと範囲を管理するアドレス管理テーブルと、該アドレス管理テーブルへのアクセスにより前記キャッシュメモリを選択する選択回路とを設けたことで達成される。すなわち、上記目的を達成するために、本発明は、システム制御に係る命令群及び、データ群の情報を記憶するキャッシュメモリ装置を設けたものである。また、該キャッシュメモリ装置を選択するために、該情報が記憶されているメモリ上のアドレスと範囲を管理する、アドレス管理テーブルを設けたものである。そして、このアドレス管理テーブルを基に、前記キャッシュメモリ装置を選択するための選択回路を設けたものである。これにより、従来キャッシュ装置へ該情報を登録する必要がなくなり、該システム制御情報へのアクセスの高速化及び、キャッシュヒット率の向上の効果がある。
【0016】
本発明の第2の目的は、前記キャッシュメモリ装置において、システム制御情報を構成する項目が記憶されるオフセット値を管理するオフセット管理テーブルと、該オフセット値を操作する命令をデコードする命令制御装置を設けることで達成される。すなわち、上記目的を達成するために、本発明は、前記システム制御に係る命令群及び、データ群の情報を効率良くアクセスするために、該情報を構成する項目毎の、記憶位置となるオフセット値を管理するオフセット管理テーブルと、該オフセット値を操作する命令をデコードする命令制御装置を設けたものである。これにより、キャッシュメモリ装置における、システム制御情報へのアクセスの高速化及び、キャッシュヒット率の向上を図ることができる。
【0017】
本発明の第3の目的は、キャッシュメモリ装置を備えた中央演算処理装置において、前記オフセット管理テーブルのエントリを指定することで、該エントリのオフセット値に存在する情報を解釈して、実行アドレスを出力する手段を設け、該実行アドレスをプログラムカウンタに設定することで達成される。これにより、中央演算処理装置におけるキャッシュ制御のアクセス性が改善される。
【0018】
【発明の実施の形態】
以下、本発明の実施例を図により説明する。
図1は、本発明の一実施例になるキャッシュメモリ装置の全体構成を示すブロック図である。図1において、1はキャッシュメモリ装置であり、アドレス10、キャッシュメモリ20、比較器30、アドレス管理テーブル40、及び選択回路100を備えている。キャッシュメモリ20は、例えばSRAM、CPUの内蔵RAMなどで実装される。
【0019】
図の実施例では、CPUやCPUコアと組み合わせられるキャッシュメモリを例にとって説明する。但し、キャッシュメモリに代えて、バッファメモリとし、ASICとして内蔵する場合もある。以下、バッファメモリ等の他のメモリも含めて、キャッシュメモリとして説明する。
【0020】
キャッシュメモリ装置1のアドレス10は、少なくとも、タグ・ビット群12と、インデックス・ビット群14からなるビット列である。キャッシュメモリ20は、タグ情報22とデータ25を記録するキャッシュブロック21を複数有するメモリ装置である。比較器30は、アドレス10のタグ・ビット群12と、選択されたキャッシュブロックのタグ情報22を比較する装置である。アドレス管理テーブル40は、システム制御情報にかかわる命令群及び、データ群が記憶されているアドレス42と、その範囲45を管理するテーブルである。選択回路100はアドレス10と、アドレス管理テーブル40のアドレス42及び、範囲45とを比較し、キャッシュメモリ20を選択する回路である。
【0021】
次に、本発明の一実施例におけるアドレス10とキャッシュ20の読み込みの対応付けの手順について、図2により説明する。
アドレス10は、上位部分のタグ・ビット群12と下位部分のインデックス・ビット群14に分割される。選択回路100は、テーブル40に格納されているアドレス42、範囲45と、タグ・ビット群12、インデックス・ビット群14を比較し、該キャッシュブロック21のデータ25が、設定されたテーブル40に格納されているアドレス範囲に入っているかどうかを判定する(ステップ10)。
【0022】
判定結果よりキャッシュセットが選択される(ステップ12)。さらに、アドレス10のインデックス・ビット群14に基づいて、対応するキャッシュブロック21が選択される(ステップ14)。そして、アドレス10のタグ・ビット群12と、選択されたキャッシュブロック21のタグ情報22が比較器30で比較され、該キャッシュブロック21のデータ25が要求されたアドレス10のものかどうかが判定される(ステップ16)。
【0023】
なお、キャッシュブロック21のデータの有効無効を示すための有効ビットをキャッシュブロック21が有し、上記2つの判定結果に加えて、該有効ビットの真偽情報により、データ25の有効無効を決定する場合もある。
【0024】
本実施例によれば、キャッシュメモリ20と、システム制御情報にかかわる命令群及び、データ群が記憶されているアドレス42及び、範囲45を管理するテーブル40と、選択回路100とを独立して設けているため、キャッシュメモリ装置の選択が高速化され、システム制御情報へのアクセス速度の高速化及び、キャッシュヒット率の向上が図れるという効果がある。
【0025】
次に、図3において、本発明の一実施例におけるアドレス10とキャッシュメモリ20の書き込みの対応付けの手順について説明する。
アドレス10は、選択回路100に読み込まれる(ステップ20)。該選択回路はアドレス管理テーブル40を参照し、前記アドレスが、該テーブルに管理されているアドレス42と範囲45の領域の、内外かを判定し(ステップ22)、キャッシュメモリ20を選択する(ステップ24)。
【0026】
本実施例によれば、キャッシュメモリ20と、システム制御情報にかかわる命令群及び、データ群が記憶されているアドレス42及び、範囲45を管理するテーブル40を設けているため、システム制御情報へのアクセス速度の高速化及び、キャッシュヒット率の向上の効果がある。
【0027】
次に、図4により、本発明の一実施例における、キャッシュブロック上のシステム制御情報の例、すなわち、キャッシュブロック21のデータ25の構成例を説明する。図4はタスク、プロセス、スレッド等のシステム動作を管理するための前記システム制御情報を、(図1の)キャッシュメモリ20のキャッシュブロック21に記憶した例であり、該システム制御情報は少なくとも、システム動作の優先度200、システム動作の状態情報210、システム動作の実行エントリ220、システム制御情報の関連情報を記憶するための前ブロック230と後ブロック240の情報を記憶するものである。
【0028】
このように、システム制御情報をキャッシュメモリ20に記憶することで、該システム制御情報へのアクセス速度を高めることができる。本実施例では、システム制御情報としてタスク、プロセス、スレッド等と管理するタスクコントロールブロックを例としてあげているが、本例のように項目のまとまりをシステム制御情報として実装されている、各種のヘッダ情報もシステム情報として本発明では利用可能である。
【0029】
次に、本発明の一実施例におけるオフセット管理テーブル50の例を図5に示す。オフセット管理テーブル50は、キャッシュメモリ20のキャッシュブロック21のデータ25内部の、システム動作の優先度200に対応する優先度オフセット300とその値310、システム動作の状態情報210に対応する優先度オフセット320とその値330、システム動作の実行エントリ220に対応する実行エントリオフセット340とその値350、システム制御情報の関連情報を記憶するための前ブロック230に対応する前ブロックオフセット360とその値370、後ブロック240に対応する後ブロックオフセット380とその値390を管理するものである。
【0030】
このようにオフセット値を管理するオフセット管理テーブル50を設けることにより、キャッシュメモリ20内のデータの位置関係が明確になるので、データ25内部へのアクセス位置を自由に設定することができるようになり、アクセス性がよくなる。
【0031】
次に、本発明の一実施例におけるオフセットによるデータアクセスの構成例を図6に示す。図6において、命令制御ユニット60は、命令セットをデコードし、該命令に係るデータ25の中の項目に対応する、オフセットテーブル50のインデックスを生成するユニットである。マルチプレクサ70は、データ25と、前記命令制御ユニット60から出力される該インデックスを基に、オフセットテーブル60から該インデックスのオフセット値を読み込み、該インデックスのオフセット値に基づいて該データ25の一部分を出力する。
【0032】
このようにすることで、バイトアライメントによらずデータへアクセスすることができ、高速化が図れる。
【0033】
次に、本発明の一実施例におけるキャッシュから命令実行するプログラムカウンタ設定の例を図7に示す。
命令制御ユニット60に、システム制御情報に基づく実行命令セットがフェッチされると、該ユニットは、該命令セットに対応するオフセット管理テーブル50のエントリ番号を、情報解釈ユニット70に発行する。前記情報解釈ユニット70は、データ25から該エントリ番号に相当するオフセット位置に記憶されている実行エントリ220を読み込み、該実行エントリの情報を解釈する。実行エントリの情報はオペレーティングシステムによって異なるが、単純なオペレーティングシステムでは、該実行エントリが物理アドレスになり、複雑なオペレーティングシステムでは、実行エントリの情報は、実行ファイルに係る情報へのエントリとなる。前記複雑なオペレーティングシステムでは、タスク及び、プロセス等の処理実行単位は、ファイルシステム上のファイルとして管理されている。このため、該ファイルを実行するためには、このファイルをメモリ上に展開して実行する必要がある。実行ファイルエントリは、メモリ上に展開されたファイルのメモリイメージの情報となる。メモリイメージには、実行ファイルとしての識別情報及び、実行環境設定のためのヘッダ情報がついている。この場合、情報解釈ユニット90は、該ヘッダ情報を解釈し、実行環境つまり実行アドレスを生成することになる。実行アドレスが生成されると情報解釈ユニットはプログラムカウンタ80を設定し、あらたな処理単位の実行を開始する。
【0034】
このように、オフセット管理テーブル50と情報解釈ユニット70を設けることにより、処理起動を高速化することができる。
【0035】
次に、本発明の一実施例におけるキャッシュメモリ20のプリロードの例を図8に示し、その処理ステップを図9に示す。
命令制御ユニット60は、キャッシュメモリ20のプリロード命令をフェッチすると、アドレス管理テーブル40を参照し(ステップ30)、該テーブルのエントリからアドレス42と範囲45を読み出し、アドレス10を生成する(ステップ32)。選択回路100において、生成されたアドレス10は、アドレス管理テーブル40のエントリのアドレス42と範囲45と比較されて(ステップ34)、判定結果によりキャッシュメモリ20が選択される(ステップ36)。選択されたキャッシュメモリ20に、アドレス42から範囲45までのデータが、前記判定結果により選択されたキャッシュメモリ20に記憶される(ステップ38)。この動作が、命令制御ユニット50がアドレス管理テーブル40の全てのエントリを読み出すまで続けられる(ステップ40)。
【0036】
このように、アドレス管理テーブル40に基づいて任意のアドレス領域に記憶されているデータをキャッシュメモリ20に記憶することができるので、該データのキャッシュミスを防ぐことができる。
【0037】
次に、図10に、本発明の一実施例におけるキャッシュメモリブロック21をクリアする時に該ブロック21に係る関連情報を更新するキャッシュブロック関連更新の構成例を示す。
命令制御ユニット60は、命令をデコードし、キャッシュメモリブロック21の、キャッシュブロック間の関連付け情報が記憶されている項目を示す選択エントリ330を生成し、クリアするキャッシュメモリブロックを関連更新回路400に指示するユニットである。関連更新回路400は、命令制御ユニット60に指示されたクリアするキャッシュメモリブロック及び、該選択エントリ330を読み込み、関連の更新を実行する回路である。
【0038】
図11に、上記関連更新回路400の動作について説明する。関連更新回路400は、命令制御ユニット60に指示されたクリアするキャッシュメモリブロック及び、該選択エントリ330を読み込み(ステップ50)、クリアするキャッシュメモリブロックにおける該選択エントリ330に記憶されている情報、前ブロック230及び、次ブロック240に記憶されている情報を読み込む(ステップ52、ステップ53)。
【0039】
前ブロック230に記憶されているキャッシュブロックの、次ブロックの情報を読み出し(ステップ54)、前記次ブロック240に記憶されているキャッシュブロックの、前ブロックに書込む(ステップ56)。
次ブロック240に記憶されているキャッシュブロックの、前ブロックの情報を読み出し(ステップ55)、前記前ブロック230に記憶されているキャッシュブロックの、次ブロックに書込む(ステップ57)。
【0040】
図12は、本発明のキャッシュ命令装置を用いた中央演算処理装置の一実施例である。
本実施例の中央演算処理装置では、命令キャッシュ900、データキャッシュ950、システム制御情報を格納するキャッシュメモリ20を有する。該命令キャッシュ900及び、該データキャッシュ950は、記憶しているメモリの内容が有効であるか無効であるかを示す有効ビット27を持つ。なお、該命令キャッシュ900及び、データキャッシュ950は、従来のキャッシュメモリ装置と同等であり、従来の中央演算処理装置が有するキャッシュメモリ装置としては、前記命令とデータでキャッシュメモリ装置を分離するハーバードアーキテクチャと、命令とデータを統合してキャッシングするユニファイドアーキテクチャがある。本発明は、従来のキャッシュシステム構成には依存せず、いずれのアーキテクチャでもよい。
【0041】
次に、図12の実施例の動作として、図13により、アドレス10と、システム制御情報を記憶するキャッシュメモリ20と命令キャッシュ900とデータキャッシュ950の、読み込みの対応付けの手順について説明する。
アドレス10は、上位部分のタグ・ビット群12と下位部分のインデックス・ビット群14に分割される。
【0042】
アドレス10は、選択回路100に読み込まれ、選択回路100はアドレス管理テーブル40に管理されているアドレス42と範囲45の領域に、該アドレス10が収まっているかどうかを判断し(ステップ100)、収まっている場合にはシステム制御情報キャッシュメモリ20を(ステップ110)、収まっていない場合には従来の中央演算処理装置と同等に命令かデータを判断し(ステップ120)、命令キャッシュ900(ステップ130)もしくはデータキャッシュ950(ステップ140)を選択することを比較器30に指示する。このようにキャッシュセットを複数持つ場合、従来はすべてのキャッシュセットのタグの比較を実施していた。本発明のように、アドレス管理テーブル40と選択回路100を設けることによりアクセスが速くなり、キャッシュセットの選択が、タグを引く前に実施できるために実行時間の短縮を図れる。
【0043】
次に、図14において、図12の実施例におけるアドレス10と、システム制御情報を記憶するキャッシュメモリ20と命令キャッシュ900とデータキャッシュ950の、書き込みの対応付けの手順について説明する。
アドレス10は、選択回路100に読み込まれ、選択回路100はアドレス管理テーブル40に管理されているアドレス42と範囲45の領域に、該アドレス10が収まっているかどうかを判断し(ステップ200)、収まっている場合にはシステム制御情報キャッシュメモリ20を選択し(ステップ210)、タグ12とタグ22の一致するキャッシュブロック21にデータを書き込む(ステップ220)。収まっていない場合には従来の中央演算処理装置と同等に命令かデータを判断し(ステップ230)、命令キャッシュ900(ステップ240)もしくはデータキャッシュ950(ステップ250)を選択し、選択されたキャッシュの書き込み位置を算出し(ステップ260)、データと書き込む(ステップ270)。なお、前記書き込み位置の算出には、公知の技術としてLRU(Least Recent Used)アルゴリズムがある。
【0044】
本実施例によれば、キャッシュメモリ20と、システム制御情報にかかわる命令群及び、データ群が記憶されているアドレス42及び、範囲45を管理するアドレス管理テーブル40を設けることにより、システム制御情報へのアクセス速度の高速化及び、キャッシュヒット率の向上の効果がある。
【0045】
図15は、図12に示した中央演算処理装置の命令セットの一実施例である。
【0046】
アドレス管理テーブル設定命令900は、アドレス管理テーブル40の内容を設定する命令である。
領域選択キャッシュプリロード命令910は、キャッシュ40のプリロードを実施する命令である。
領域選択キャッシュクリア命令920は、アドレス管理テーブル40の領域を指定してキャッシュをクリアする命令である。
【0047】
システム制御情報による処理実行命令930は、アドレス管理テーブル40の領域と、オフセットエントリを指定して、処理の起動をする命令である。
キャッシュラインクリア命令940は、キャッシュ40のライン及び、エントリを指定して、キャッシュブロック21のクリア及び、該キャッシュブロックの関連を更新する命令である。
【0048】
図16に、本発明のキャッシュメモリ装置1を用いたシステム設計方式の一実施例について説明する。
関数型言語等のプログラム記述言語によって記述されたアプリケーションソースコード1000は、コンパイラ等の機械語翻訳手段1010により、実行形式1020に変換される。該機械語翻訳手段1010は、アプリケーションソースコード1000内の処理単位、本実施例の関数形言語によるソースコードでは関数、と該処理単位が機械語に翻訳されたアドレスおよび範囲の対応を示す処理単位アロケーションマップ1030を生成する。また、該機械語翻訳手段1010は、リアルタイムオペレーティングシステムを使用しているシステムでは、システム制御情報として、タスクコントロールブロックについての構造及びメモリサイズの情報を示すメモリマップ情報1040も生成する。
【0049】
実行形式1020をリアルタイムオペレーティングシステム下で実行すると、前記処理単位アロケーションマップ1030に記憶さている処理単位、本実施例では関数の呼び出し頻度についてのプロファイル情報1050が生成される。
【0050】
前記処理単位アロケーションマップ1030と、メモリマップ情報1040と、プロファイル情報1040より、システム制御情報を記憶するキャッシュメモリ20の、キャッシュブロック21の容量および個数、アドレス管理テーブル40のエントリ数を決定することができる。キャッシュブロック21の容量および個数、アドレス管理テーブル40のエントリ数と、本発明のシステム制御情報を記憶するキャッシュメモリ装置1のソフトウェアIP1060を、論理合成ツール1070で処理することにより、ゲート情報1080が生成され、該ゲート情報1080をレイアウトツール1090で処理することにより、マスクパターン1100が生成される。このマスクパターンを利用することで半導体としてのシステム制御情報を記憶するキャッシュメモリ装置1を製造できる。
【0051】
図17は、本発明のシステム制御情報を記憶するキャッシュメモリ装置1を搭載する、通信手段2010を有する携帯端末システムの一実施例を示すものである。
携帯端末システム2000は、アプリケーション等の情報を送受信するための通信手段2010と、該アプリケーションを実行する実行手段2020と、該アプリケーションを記憶するメモリ2030と、システム制御情報を記憶するキャッシュメモリ装置1及び入出力手段(図示略)から構成される。なお、アプリケーション2040は、通信負荷を軽減するために、圧縮されている場合が多い。またアプリケーション2040は、処理の単位としてのインスタンス2050から構成される。インスタンス2050は、キャッシュメモリ装置1に記憶すべきか否かの優先度情報2060を有する。この実施例によれば、携帯端末システム2000は、通信手段2010によりアプリケーションを受信し、該アプリケーションを実行することによりシステムのアプリケーションの起動性能が改善される。
【0052】
図18により、17の実施例におけるキャッシュに係るフローを説明する。まず、通信手段2010は、アプリケーション2040を受信し(ステップ2000)、メモリ2030に書き込む(ステップ2010)。通信手段2010は該アプリケーション2040を書き込んだアドレスと範囲2031を、キャッシュメモリ装置1にキャッシュプリロード命令910により通知し、該アプリケーション2040をキャッシュメモリ装置1にプリロードする(ステップ2020)。次に通信手段2010は、書き込んだ該アプリケーション2040のアドレスを実行手段2020に通知する(ステップ2030)。通知を受けた実行手段2020は、該アドレスを参照し、該アプリケーション2040を、インスタンス2050に展開した実行形式2070に変換してメモリ2030に書き込む(ステップ2040)。実行手段2020は、該インスタンス2050の優先度情報2060を読み込み(ステップ2050)、優先度が設定されているインスタンス2050のアドレスと範囲を、キャッシュメモリ装置1にキャッシュプリロード命令910により通知する(ステップ2060)。
【0053】
このような方式にすることで、通信手段を有し、該通信手段によりアプリケーションを受信し、該アプリケーションを実行するシステムにおいて、アプリケーションを受信した時の起動性能を向上させることができる。また、通信手段を設けることにより、アドレス管理テーブル40の内容を、他局へ送信受信することが可能になるため、該アドレス管理テーブル内容の他局への送信によりシステム状態の報告が可能になり、他局からの該アドレス管理テーブル内容を他局からの受信しキャッシュプリロード命令によりキャッシュ内容の変更をすることが可能になり、システム性能を外部からの調整ができるようになる。
【0054】
なお、通信手段としては、インターネットを利用した有線通信を用いても良い。
【0055】
また、本発明のキャッシュメモリ装置と、演算処理や周辺機器を備えた演算処理システムを構成することにより、同様に、アクセスの高速化やキャッシュヒット率の向上を図れるという効果がある。
【0056】
【発明の効果】
本発明によれば、システム制御情報に係る命令群及び、データ群を記憶するキャッシュメモリ装置を設けることにより、従来キャッシュ装置へ該情報を登録をする必要がなくなり、該システム制御情報へのアクセスの高速化及び、キャッシュヒット率の向上の効果がある。
また、リアルタイムオペレーティングシステムにおけるシステム制御情報の命令群としてのスケジューリングコード及び、データ群としてのタスクコントロールブロックの局所性及び普遍性により、キャッシュヒット率が100%のため、システムの性能が事前に予測可能になる、という効果がある。
従って、システム制御情報として、システム性能を左右するアプリケーションの命令群及び、データ群を、システム制御情報として、キャッシュメモリ装置に記憶できるので、システム全体の性能を上げることができる。
【0057】
また、システム制御情報として、上記アプリケーション以外のシステム性能のボトルネックとなるユーザモードドライバの命令群及びデータ群を、キャッシュメモリ装置に記憶できるので、システム全体の性能を上げることができる。
【図面の簡単な説明】
【図1】本発明の一実施例になるキャッシュメモリ装置の基本構成図。
【図2】図1のキャッシュメモリ装置における読込み時のフロー。
【図3】図1のキャッシュメモリ装置における書込み時のフロー。
【図4】図1のキャッシュブロック上のシステム制御情報の一実施例を示す図。
【図5】オフセット管理テーブルの構成図。
【図6】オフセットによるデータアクセスの構成図。
【図7】キャッシュから命令実行する構成図。
【図8】キャッシュロードの構成図。
【図9】キャッシュロードのフロー。
【図10】キャッシュブロックの関連更新の構成図。
【図11】キャッシュブロックの関連更新のフロー。
【図12】本発明のキャッシュ命令装置を用いた中央演算処理装置の実施例を示す図。
【図13】読込み時のキャッシュ選択のフロー。
【図14】書込み時のキャッシュ選択のフロー。
【図15】本発明のキャッシュ制御命令セットの一実施例の構成図。
【図16】本発明によるシステム・オン・チップの開発方法の一例を示す図。
【図17】本発明を携帯端末に応用した一実施例の構成図。
【図18】図17の実施例におけるキャッシュに係るフロー。
【符号の説明】
1…キャッシュメモリ装置、10…アドレス、20…キャッシュメモリ、12…タグ・ビット群、22…タグ情報、23…キャッシュブロック、30…比較器、40…アドレス管理テーブル、100…選択回路。
Claims (10)
- メモリに記憶されている情報の一部もしくは全部を記憶するキャッシュメモリ装置において、システム制御に係る命令群又はデータ群の情報の少なくとも一方と、システムの動作単位となるタスク、プロセス、スレッド等を管理するためのシステム制御情報を記憶するキャッシュメモリと、該システム制御に係る命令群又はデータ群の情報が記憶されている前記メモリ上のアドレスと範囲を管理するアドレス管理テーブルと、該アドレス管理テーブルへのアクセスにより前記キャッシュメモリを選択する選択回路と、前記キャッシュメモリに記憶されるシステム制御情報を構成する情報の、項目毎のオフセット値を、管理するオフセット管理テーブルを設けたことを特徴とするキャッシュメモリ装置。
- 請求項1のキャッシュメモリ装置において、前記キャッシュメモリに、システムの動作単位となるタスク、プロセス、スレッド等を管理するためのシステム制御情報を操作するスケジューリング命令群を記憶することを特徴とするキャッシュメモリ装置。
- 請求項1のキャッシュメモリ装置において、前記オフセット管理テーブルのエントリ番号を指定することで、該エントリのオフセット値に記憶されているデータを入出力することを特徴とするキャッシュメモリ装置。
- 請求項1のキャッシュメモリ装置において、前記アドレス管理テーブルに基づいて、該アドレス管理テーブルに登録されているアドレス及び範囲に記憶されているデータを、該キャッシュメモリにロードすることを特徴とするキャッシュメモリ装置。
- 請求項4のキャッシュメモリ装置を備えた中央演算処理装置において、前記情報を該キャッシュメモリ装置に事前にロードするための、プリロード命令を有することを特徴とする中央演算処理装置。
- 請求項1のキャッシュメモリ装置を備えた中央演算処理装置において、前記オフセット管理テーブルのエントリを指定することで、該エントリのオフセット値に存在する情報を解釈して、実行アドレスを出力する手段を設け、該実行アドレスをプログラムカウンタに設定することを特徴とする中央演算処理装置。
- 請求項1のキャッシュメモリ装置を備えた中央演算処理装置において、前記オフセット管理テーブル内から、比較のためのエントリと、選択のためのエントリの、2つのエントリを指定することで、該比較のためのエントリのオフセット値が示すデータについて、全キャッシュブロックの該当エントリの値の、比較を行う比較ユニットを設け、比較結果により決定されたキャッシュブロックの、該選択のためのエントリのオフセット値が示すデータを、入出力することを特徴とする中央演算処理装置。
- 請求項1のキャッシュメモリ装置を備えた中央演算処理装置において、キャッシュメモリブロックをクリアする時に、該ブロックに格納されているシステム制御情報に係るシステム制御情報間の関係づけを、更新するための関連更新手段を設けたことを特徴とする中央演算処理装置。
- 請求項1〜4のいずれかに記載のキャッシュメモリ装置と、通信手段とを備えたことを特徴とする携帯端末装置。
- 請求項1〜4のいずれかに記載のキャッシュメモリ装置と演算処理手段及び周辺機器とを備えたことを特徴とする演算処理システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000219685A JP3973129B2 (ja) | 2000-07-19 | 2000-07-19 | キャッシュメモリ装置及びそれを用いた中央演算処理装置 |
US09/791,855 US6718426B2 (en) | 2000-07-19 | 2001-02-26 | Cache memory apparatus and central processor, hand-held device and arithmetic processor using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000219685A JP3973129B2 (ja) | 2000-07-19 | 2000-07-19 | キャッシュメモリ装置及びそれを用いた中央演算処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002032264A JP2002032264A (ja) | 2002-01-31 |
JP3973129B2 true JP3973129B2 (ja) | 2007-09-12 |
Family
ID=18714426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000219685A Expired - Fee Related JP3973129B2 (ja) | 2000-07-19 | 2000-07-19 | キャッシュメモリ装置及びそれを用いた中央演算処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6718426B2 (ja) |
JP (1) | JP3973129B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961804B2 (en) * | 2001-07-20 | 2005-11-01 | International Business Machines Corporation | Flexible techniques for associating cache memories with processors and main memory |
US6931492B2 (en) * | 2001-11-02 | 2005-08-16 | International Business Machines Corporation | Method for using a portion of the system cache as a trace array |
US6688561B2 (en) * | 2001-12-27 | 2004-02-10 | General Electric Company | Remote monitoring of grade crossing warning equipment |
US7330954B2 (en) * | 2002-04-18 | 2008-02-12 | Intel Corporation | Storing information in one of at least two storage devices based on a storage parameter and an attribute of the storage devices |
KR100486259B1 (ko) * | 2002-09-09 | 2005-05-03 | 삼성전자주식회사 | 컴퓨터 시스템의 동작 속도를 향상시키는 캐쉬 구조를 가지는 프로세서 및 캐쉬 관리 방법 |
US7930484B2 (en) * | 2005-02-07 | 2011-04-19 | Advanced Micro Devices, Inc. | System for restricted cache access during data transfers and method thereof |
US8949551B2 (en) | 2011-02-23 | 2015-02-03 | Freescale Semiconductor, Inc. | Memory protection unit (MPU) having a shared portion and method of operation |
US9116845B2 (en) | 2011-02-23 | 2015-08-25 | Freescale Semiconductor, Inc. | Remote permissions provisioning for storage in a cache and device therefor |
EP2541404B1 (en) * | 2011-06-30 | 2014-08-13 | Telefonaktiebolaget LM Ericsson (publ) | Technique for task sequence execution |
US8639895B2 (en) | 2011-07-14 | 2014-01-28 | Freescale Semiconductor, Inc. | Systems and methods for memory region descriptor attribute override |
US20180052779A1 (en) * | 2016-08-19 | 2018-02-22 | Advanced Micro Devices, Inc. | Data cache region prefetcher |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62231340A (ja) * | 1986-03-31 | 1987-10-09 | Toshiba Corp | 計算機 |
JPH0769826B2 (ja) * | 1989-12-11 | 1995-07-31 | 三菱電機株式会社 | データ処理装置 |
EP0436341B1 (en) * | 1990-01-02 | 1997-05-07 | Motorola, Inc. | Sequential prefetch method for 1, 2 or 3 word instructions |
US5375216A (en) * | 1992-02-28 | 1994-12-20 | Motorola, Inc. | Apparatus and method for optimizing performance of a cache memory in a data processing system |
JP2912099B2 (ja) * | 1992-09-29 | 1999-06-28 | 日本電気アイシーマイコンシステム株式会社 | マイクロコンピュータシステム |
JPH06242951A (ja) * | 1992-12-22 | 1994-09-02 | Toshiba Corp | キャッシュメモリシステム |
JPH0816390A (ja) * | 1994-07-01 | 1996-01-19 | Hitachi Ltd | マイクロプロセッサ |
US5721874A (en) * | 1995-06-16 | 1998-02-24 | International Business Machines Corporation | Configurable cache with variable, dynamically addressable line sizes |
-
2000
- 2000-07-19 JP JP2000219685A patent/JP3973129B2/ja not_active Expired - Fee Related
-
2001
- 2001-02-26 US US09/791,855 patent/US6718426B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6718426B2 (en) | 2004-04-06 |
US20020013877A1 (en) | 2002-01-31 |
JP2002032264A (ja) | 2002-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3739491B2 (ja) | プリフェッチ命令を用いるハーバードアーキテクチャキャッシュメモリの調和したソフトウェア制御 | |
JP3816586B2 (ja) | 先取り命令を生成する方法とシステム | |
US7895399B2 (en) | Computer system and control method for controlling processor execution of a prefetech command | |
US6578111B1 (en) | Cache memory system and method for managing streaming-data | |
US20180300258A1 (en) | Access rank aware cache replacement policy | |
US8566564B2 (en) | Method and system for caching attribute data for matching attributes with physical addresses | |
US20110167224A1 (en) | Cache memory, memory system, data copying method, and data rewriting method | |
JP3973129B2 (ja) | キャッシュメモリ装置及びそれを用いた中央演算処理装置 | |
CN111201518A (zh) | 用于管理能力元数据的设备和方法 | |
JP4009306B2 (ja) | キャッシュメモリおよびその制御方法 | |
US7769954B2 (en) | Data processing system and method for processing data | |
US20090276575A1 (en) | Information processing apparatus and compiling method | |
JP5157424B2 (ja) | キャッシュメモリシステム及びキャッシュメモリの制御方法 | |
EP1880276B1 (en) | Memory caching in data processing | |
JPWO2010024071A1 (ja) | キャッシュメモリ、そのシステム、その利用方法及びその利用プログラム | |
US6851010B1 (en) | Cache management instructions | |
US6598124B1 (en) | System and method for identifying streaming-data | |
JP2007272681A (ja) | キャッシュメモリ装置及びそのキャッシュラインの入れ替え方法 | |
JP2001249846A (ja) | キャッシュメモリ装置及びデータ処理システム | |
WO2002027498A2 (en) | System and method for identifying and managing streaming-data | |
JP2004103012A (ja) | プロセッサの動作速度を向上させるキャッシュ構造及びキャッシュ管理方法を有するプロセッサ | |
JP3284508B2 (ja) | データ先読み制御装置 | |
JP2004303232A (ja) | データメモリキャッシュ装置及びデータメモリキャッシュシステム | |
KR20040047398A (ko) | 캐쉬 메모리를 이용한 데이터 억세스 방법 | |
JP2000194602A (ja) | 情報処理装置、マイクロプロセッサ及び外部キャッシュメモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040521 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070227 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070425 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070515 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070608 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100622 Year of fee payment: 3 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070425 |
|
LAPS | Cancellation because of no payment of annual fees |