JP2002007213A - キャッシュメモリ制御方法及びプログラム処理方法 - Google Patents

キャッシュメモリ制御方法及びプログラム処理方法

Info

Publication number
JP2002007213A
JP2002007213A JP2000190642A JP2000190642A JP2002007213A JP 2002007213 A JP2002007213 A JP 2002007213A JP 2000190642 A JP2000190642 A JP 2000190642A JP 2000190642 A JP2000190642 A JP 2000190642A JP 2002007213 A JP2002007213 A JP 2002007213A
Authority
JP
Japan
Prior art keywords
cache
cache memory
access
address
memory control
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.)
Pending
Application number
JP2000190642A
Other languages
English (en)
Inventor
Keisuke Kaneko
圭介 金子
Tetsuya Tanaka
哲也 田中
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 Holdings Corp
Original Assignee
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2000190642A priority Critical patent/JP2002007213A/ja
Publication of JP2002007213A publication Critical patent/JP2002007213A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 CPUが複数の情報処理をキャッシュアクセ
スを行いながら処理するとき、キャッシュアクセスの最
適化を図り、システム性能を向上させること。 【解決手段】 情報処理装置として、CPU1に対して
構造の異なる第1のキャッシュメモリ2と第2のキャッ
シュメモリ3とを設ける。CPU1からアクセス要求7
と選択情報8が与えられると、キャッシュ制御部4は選
択情報8に基づいてアクセス要求9又は10を出力す
る。選択情報8は、アクセス先のアドレス、CPUの行
う情報処理内容、又はCPUが実行する転送命令とす
る。また高級言語プログラムのコンパイル処理におい
て、ソースプログラム内でアクセスするキャッシュメモ
リの選択情報を記述することもできる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報処理装置に用
いるキャッシュメモリの制御方法とプログラム処理方法
とに関する。
【0002】
【従来の技術】中央処理部(以下、CPUという)とキ
ャッシュメモリとを有する情報処理装置(システムとも
いう)において、従来は単一の構成、例えばキャッシュ
メモリサイズが固定、又はキャッシュメモリのラインサ
イズが固定のキャッシュメモリを1個用いて、キャッシ
ュアクセスの効率を高める手法が取られてきた。この場
合、キャッシュメモリの総容量や、キャッシュメモリの
ブロックデータのサイズである1ラインサイズは、情報
処理装置において一定である。このような情報処理装置
において、キャッシュメモリにアクセスするCPUが一
つの処理しか行わないことが前提になっている。キャッ
シュメモリサイズなどの物理的な構成を決定する際、あ
る想定した一つの処理に適するように、キャッシュメモ
リの構成が決定される。
【0003】このような情報処理装置において、従来の
技術においては単一のキャッシュメモリのキャッシュ制
御方法を変更することによって、キャッシュアクセスの
効率を向上させてきた。この一例として、連続してキャ
ッシュアクセスするときに後続するキャッシュアクセス
のアドレス変化を予測し、キャッシュミスが発生した際
に、主記憶領域からのデータ転送においてアドレスの変
化方法を動的に変更する手法がある。
【0004】従来は、キャッシュの制御方法を主に変更
し、メモリの物理的なパラメータであるメモリ容量や、
WAY数(ウェイ数)、1ラインサイズは変更しなかっ
た。メモリの物理的なパラメータは、システム開発時に
おいて想定している一種類の処理に対して最適なものが
選択されていた。
【0005】
【発明が解決しようとする課題】しかしながら、複数の
処理を行うアプリケーションや複数のプログラムを、マ
ルチタスクとしてOS上で動作させる場合、CPUは様
々な処理を行うことになる。ある1つの処理においてキ
ャッシュアクセスを最適化できても、それ以外の処理に
おいてキャッシュアクセスを行う場合、必ずしも最適な
キャッシュアクセスができるとは限らない。
【0006】例えば、あるメモリ空間において、アドレ
スが一定の条件で増加又は減少するのではなく、ランダ
ムなメモリアクセスを行う場合は、キャッシュメモリの
理論的性質から判断して、キャッシュメモリの1ライン
サイズは小さい方が効率が良いと言える。
【0007】一方、画像データなどのように、大きなサ
イズの配列データを扱うとき、メモリアクセスはアドレ
スを昇順又は降順に順次変化させて連続的に行う。この
ような場合、キャッシュ1ラインのラインサイズは大き
い方が効率が良いと言える。また、キャッシュミスが発
生した場合には、アプリケーションが配列アクセスを行
う際のアドレスの変化方向(昇順又は降順)と、キャッ
シュミス時のブロックデータの転送順序とを同じにした
方が、CPUの動作効率が良くなる。
【0008】また、情報処理装置で複数ウェイを有する
単一のキャッシュメモリを実装しているとする。プログ
ラム内でランダムにメモリアクセスする処理と、ある連
続したメモリブロックを確保する配列データを扱う処理
とが存在する場合、ランダムにメモリアクセスする処理
に適するようにキャッシュの物理的パラメータを決定し
てシステムを構成すると、配列データのアクセス時のキ
ャッシュアクセス効率が悪くなる。一方、配列アクセス
データに適するように物理的パラメータを決定すると、
ランダムアクセスの効率が悪くなる。
【0009】このように単一の処理のみに適したキャッ
シュメモリを実装しているために、複数の処理を行うア
プリケーションに対してアプリケーションの実行が最適
化できない問題が生じる。キャッシュヒット率の向上の
ため、実装するキャッシュメモリの容量を増大させる方
法もあるが、単に大容量の単一のキャッシュメモリを実
装するだけでは、複数の処理を行う場合のキャッシュア
クセス効率を向上させることができず、結果として情報
処理装置としての十分な性能向上が図れないことにな
る。
【0010】また、CPUの動作周波数が向上し、キャ
ッシュヒット時のアクセスペナルティー(無駄時間の発
生)が少なくなっても、キャッシュミス時には主記憶部
へのアクセスに膨大なサイクル数を必要とする。キャッ
シュミス時においてもCPUが処理している処理内容に
最適なキャッシュメモリへのブロックデータ転送の手法
が必要である。単一のキャッシュメモリを実装した情報
処理装置において、単一のキャッシュメモリへのブロッ
クデータ転送手法のみでは、複数の処理を行う場合にシ
ステム性能を十分に向上させることができない。
【0011】単一のキャッシュメモリで構成される情報
処理装置において、複数の処理を行った場合、複数の処
理のうちどれか一つにしかキャッシュメモリを最適化で
きない。更に複数の処理を行うアプリケーションにおい
て、必ずしもシステムに最適なキャッシュメモリアクセ
スを実現できず、十分なシステム性能向上が図れない。
【0012】このような従来の問題点に鑑みてなされた
ものであって、請求項1〜8及び請求項14,15記載
の発明は、構造の異なるキャッシュメモリを複数個設
け、複数の情報処理に適したキャッシュメモリを選択的
にアクセスすることにより、情報処理速度を向上させる
キャッシュメモリ制御方法を実現することを目的とす
る。
【0013】また請求項9〜13記載の発明は、上記の
キャッシュメモリ制御方法において、キャッシュメモリ
の選択をプログラム上で記載可能なプログラム処理方法
を実現することを目的とする。
【0014】
【課題を解決するための手段】本願の請求項1の発明
は、複数のキャッシュメモリ、 及び前記キャッシュメモ
リを制御するキャッシュメモリ制御部を有するシステム
において、キャッシュアクセス要求と動作すべきキャッ
シュメモリを特定するための付加情報とが与えられる
と、前記キャッシュメモリ制御部は前記付加情報を用い
てアクセスすべきキャッシュメモリを選択することを特
徴とするものである。
【0015】本願の請求項2の発明は、請求項1のキャ
ッシュメモリ制御方法において、前記複数のキャッシュ
メモリは、互いに構成が異なることを特徴とするもので
ある。
【0016】本願の請求項3の発明は、請求項1のキャ
ッシュメモリ制御方法において、前記複数のキャッシュ
メモリは、互いにキャッシュメモリの制御の方法が異な
ることを特徴とするものである。
【0017】本願の請求項4の発明は、請求項1〜3の
いずれか1項のキャッシュメモリ制御方法において、前
記付加情報は、キャッシュアクセスのアドレスであるこ
とを特徴とするものである。
【0018】本願の請求項5の発明は、請求項4のキャ
ッシュメモリ制御方法において、前記キャッシュメモリ
制御部は、夫々のキャッシュメモリ毎にアクセスを許可
するアドレス空間範囲を自由に設定するアクセス許可ア
ドレス設定手段を有し、前記アクセス許可アドレス設定
手段の内容と前記付加情報として与えられたアドレス値
との比較結果によって、アクセスすべきキャッシュメモ
リを選択することを特徴とするものである。
【0019】本願の請求項6の発明は、複数のキャッシ
ュメモリ、前記キャッシュメモリを制御するキャッシュ
メモリ制御部、及びメモリアクセスによって情報処理を
行う中央処理部を有するシステムにおいて、前記中央処
理部がメモリアクセスを行う場合、前記キャッシュメモ
リ制御部に対してキャッシュアクセス要求を与えると共
に、キャッシュアクセスの付加情報として前記中央処理
部が行う情報処理内容を与え、前記キャッシュメモリ制
御部は前記情報処理内容に基づいてアクセスすべきキャ
ッシュメモリを選択することを特徴とするものである。
【0020】本願の請求項7の発明は、複数のキャッシ
ュメモリ、前記キャッシュメモリを制御するキャッシュ
メモリ制御部、及びメモリアクセスによって情報処理を
行う中央処理部を有するシステムにおいて、前記中央処
理部がメモリアクセスにより複数の実行レベルで情報処
理を行うとき、前記キャッシュメモリ制御部に対してキ
ャッシュアクセス要求を与えると共に、キャッシュアク
セスの付加情報として前記実行レベルを通知し、前記キ
ャッシュメモリ制御部は前記実行レベルに基づいてアク
セスすべきキャッシュメモリを選択することを特徴とす
るものである。
【0021】本願の請求項8の発明は、複数のキャッシ
ュメモリ、前記キャッシュメモリを制御するキャッシュ
メモリ制御部、及びメモリアクセスによって情報処理を
行う中央処理部を有するシステムにおいて、前記中央処
理部がメモリアクセスを発生させる複数の転送命令を発
行して情報処理を行うとき、前記キャッシュメモリ制御
部に対してキャッシュアクセス要求を与えると共に、キ
ャッシュアクセスの付加情報として前記中央処理部で発
行中の前記転送命令の種類を与え、前記キャッシュメモ
リ制御部は前記転送命令の種類に基づいてアクセスすべ
きキャッシュメモリを選択することを特徴とするもので
ある。
【0022】本願の請求項9の発明は、複数のキャッシ
ュメモリ、 及び前記キャッシュメモリを制御するキャッ
シュメモリ制御部を有するシステムにおいて、キャッシ
ュアクセス要求と動作すべきキャッシュメモリを特定す
るための付加情報とをプログラム言語を用いて記載する
ことにより、前記キャッシュメモリ制御部が前記付加情
報に基づいて特定のキャッシュメモリを選択するための
プログラム処理方法であって、前記プログラム言語は、
高級言語で記述された複数のソースコードからなるプロ
グラムを与えると、前記キャッシュメモリ制御部の実行
形式コードに変換される言語であり、前記高級言語は、
ソースコード内で宣言された変数に対応するメモリ空間
へのアクセスにおいて、前記複数のキャッシュメモリの
うち特定のキャッシュメモリを指定する記述手段を有
し、前記ソースコードから前記実行形式コードに変換す
るとき、前記ソースコード内の前記記述手段からアクセ
ス情報を抽出し、前記実行形式コードに変換することを
特徴とするものである。
【0023】本願の請求項10の発明は、複数のキャッ
シュメモリ、 及び前記キャッシュメモリを制御するキャ
ッシュメモリ制御部を有するシステムにおいて、キャッ
シュアクセス要求と動作すべきキャッシュメモリを特定
するための付加情報とをプログラム言語を用いて記載す
ることにより、前記キャッシュメモリ制御部が前記付加
情報に基づいて特定のキャッシュメモリを選択するため
のプログラム処理方法であって、前記プログラム言語
は、高級言語で記述された複数のソースコードからなる
プログラムが与えられると、前記キャッシュメモリ制御
部の実行形式コードに変換されるものであり、前記高級
言語は、ソースコード内で宣言された変数に対して実行
形式コードに変換する際に特定のアドレス空間に割り当
てるよう指定する記述手段を有し、前記記述手段の指定
情報に基づいて前記ソースコード内で宣言された変数に
対応するアドレス空間を確保するアドレス空間範囲を決
定し、前記実行形式コードに変換することを特徴とする
ものである。
【0024】本願の請求項11の発明は、複数のキャッ
シュメモリ、 前記キャッシュメモリを制御するキャッシ
ュメモリ制御部、及びメモリアクセスによって情報処理
を行う中央処理部を有するシステムにおいて、キャッシ
ュアクセス要求と動作すべきキャッシュメモリを特定す
るための付加情報とをプログラム言語を用いて記載する
ことにより、前記キャッシュメモリ制御部が前記付加情
報に基づいて特定のキャッシュメモリを選択するための
プログラム処理方法であって、前記中央処理部は、複数
の転送命令を発行して情報処理を行うものであり、前記
キャッシュメモリ制御部は、前記付加情報として前記転
送命令の種類を用いるものであり、前記プログラム言語
は、高級言語で記述された複数のソースコードからなる
プログラムが与えられると、前記キャッシュメモリ制御
部の実行形式コードに変換されるものであり、前記高級
言語は、ソースコード内で宣言された変数に対して実行
形式コードに変換する際に特定のキャッシュメモリを選
択するように指定する記述手段を有し、前記実行形成コ
ードに変換する際には、前記記述手段によって前記複数
の転送命令のうちのいずれかを選択して前記実行形式コ
ードに変換するすることを特徴とするものである。
【0025】本願の請求項12の発明は、複数のキャッ
シュメモリ、 前記キャッシュメモリを制御するキャッシ
ュメモリ制御部、及びメモリアクセスによって情報処理
を行う中央処理部を有するシステムにおいて、キャッシ
ュアクセス要求と動作すべきキャッシュメモリを特定す
るための付加情報とをプログラム言語を用いて記載する
ことにより、前記キャッシュメモリ制御部が前記付加情
報に基づいて特定のキャッシュメモリを選択するための
プログラム処理方法であって、前記プログラム言語は、
高級言語で記述された複数のソースコードからなるプロ
グラムを与えると、前記キャッシュメモリ制御部の実行
形式コードに変換されるものであり、前記高級言語は、
ソースコード内で宣言された変数がどのような情報処理
をプログラム内で行うのかを解析する解析手段を有し、
前記中央処理部は、前記解析手段の解析結果に基づいて
前記ソースコードから前記実行形式コードに変換するこ
とを特徴とするものである。
【0026】本願の請求項13の発明は、請求項12の
プログラム処理方法において、前記解析手段は、前記ソ
ースプログラム内で宣言された配列変数の配列要素の指
定方法を解析することを特徴とするものである。
【0027】本願の請求項14の発明は、複数のキャッ
シュメモリ、前記キャッシュメモリを制御するキャッシ
ュメモリ制御部、メモリアクセスによって情報処理を行
う中央処理部、及び前記中央処理部から出力された論理
アドレスを物理アドレスに変換するアドレス変換部を有
するシステムにおいて、前記中央処理部がメモリアクセ
スを行う際、メモリアクセスのアドレスにより前記アド
レス変換部のエントリが指定されると、前記アドレス変
換部は前記指定エントリ内の変換後のアドレスを出力す
ると共に、前記エントリに基づいて特定のキャッシュメ
モリを指定することを特徴とするものである。
【0028】本願の請求項15の発明は、複数のキャッ
シュメモリ、前記キャッシュメモリを制御するキャッシ
ュメモリ制御部、メモリアクセスによって情報処理を行
う中央処理部、及び前記中央処理部から出力された論理
アドレスを物理アドレスに変換するアドレス変換部を有
するシステムにおいて、前記アドレス変換部は、エント
リ毎にキャッシュメモリを特定する対応情報保持手段を
有し、前記中央処理部がメモリアクセスを行う際、出力
アドレスにより前記アドレス変換部のエントリを指定し
て変換後のアドレスを出力すると共に、前記エントリ内
に保持された対応情報を出力することにより、特定のキ
ャッシュメモリを指定することを特徴とするものであ
る。
【0029】
【発明の実施の形態】以下、本発明の各実施の形態にお
けるキャッシュメモリ制御方法及びプログラム処理方法
について、図面を用いて説明する。
【0030】図1は、後述する実施の形態1〜5におけ
るキャッシュメモリ制御方法及びプログラム処理方法を
実現するために用いられる情報処理装置の構成図であ
る。この情報処理装置には2種類のキャッシュメモリが
設けられ、第1のキャッシュメモリ2であるキャッシュ
Aと、第2のキャッシュメモリ3であるキャッシュBと
が中央処理部(CPU)1に接続されている。キャッシ
ュ制御部4はキャッシュA、キャッシュBを制御するも
のである。
【0031】アドレスバス5はCPU1からアクセスア
ドレスを出力し、第1のキャッシュメモリ2及び第2の
キャッシュメモリ3に与えるバスである。データバス6
はCPU1から第1,第2のキャッシュメモリ2,3に
データを与えると共に、第1,第2のキャッシュメモリ
2,3からCPU1へデータを転送するバスである。ア
クセス要求7は、CPU1からメモリアクセスが発生し
たときに、キャッシュ制御部4に対して出力される信号
である。選択情報8はCPU1からメモリアクセスが発
生したとき、キャッシュAにアクセスするか、キャッシ
ュBにアクセスするかを決定するために用いる信号であ
り、キャッシュ制御部4に対して出力される。キャッシ
ュAアクセス要求9は、キャッシュ制御部4から第1の
キャッシュメモリ2に対して出力される信号である。キ
ャッシュBアクセス要求10は、キャッシュ制御部4か
ら第2のキャッシュメモリ3に対して出力される信号で
ある。
【0032】キャッシュAとキャッシュBとは物理的に
互いに構成の異なるキャッシュメモリでも良い。例え
ば、図示しない主記憶部からのブロックデータ転送サイ
ズである1ラインサイズや、総容量、WAY数が互いに
異なるキャッシュメモリであるとする。
【0033】CPU1がメモリアクセスを行う際、シス
テムにおいてキャッシュアクセスが許可されている状態
(キャッシュオン状態)であれば、アクセス要求7を出
力すると同時に、キャッシュA、キャッシュBのどちら
のキャッシュメモリにアクセスするかの判定基準となる
選択情報8を付加情報として生成し、キャッシュメモリ
制御部4に出力する。この選択情報8に基づきキャッシ
ュメモリ制御部4はアクセスするキャッシュメモリを判
定し、キャッシュAへのアクセスであればキャッシュA
アクセス要求9を出力し、キャッシュBへのアクセスで
あればキャッシュBアクセス要求10を出力する。
【0034】CPU1から出力される付加情報(選択情
報8)は、CPU及びシステムに適したものでよい。例
えばCPUからのアクセスアドレス、CPUの行うアク
セスの種別、実行レベル(OSレベルかプログラムレベ
ルかを示す優先度)等がある。キャッシュメモリの性質
からして、あるアドレス範囲においてアドレスがランダ
ムに変化するランダムアクセスの場合は、1ラインサイ
ズが小さく、WAY数が多いキャッシュメモリが適す
る。
【0035】一方、配列データ処理のように、ある連続
したメモリ空間へアドレスを順次昇順又は降順に変化さ
せるような処理を行う場合、1WAYの容量は配列のデ
ータサイズにし、1ラインサイズを多めにとった方が効
率が良い。また、配列データを連続処理するようなプロ
グラムにおいて、キャッシュミス時にはその配列データ
をアクセスする順序を次のように設定する。即ちアドレ
スを順次増加させながらアクセスする場合は、アドレス
をインクリメントしながらのリフィルを行う。そしてア
ドレスを減少させながらのアクセスであるならば、アド
レスをデクリメントさせてリフィルを行った方が、効率
のよいキャッシュアクセスとなる。
【0036】図2は、図1の情報処理装置において、キ
ャッシュメモリを選択してアクセスする場合の動作の一
例を示す説明図である。CPU1には図2(a)に示す
ようなスタック領域が確保され、図2(b)に示すよう
なアドレスブロック内で配列データがアクセスされるも
のとする。
【0037】図2(a)に示すようにCPU1のスタッ
ク領域は、PC(プログラムカウンタ)の領域21、P
SW(プロセッサ状態語)の領域22、内部レジスタデ
ータの4ワード分の領域23を含んで構成され、アドレ
スを順次減少させながら順次に読み出される。PCは矢
印24で示すaddress Pでアクセスされる。内蔵レジス
タの退避が完了した際にはスタックポインタは矢印25
のaddress Qを指す。address Qの値はaddress Pから
6ワード分小さなアドレス値となる。CPU1からはス
タック形成の際にワードアクセスが6連続で行われる。
【0038】一方、図2(b)に図示するデータ空間へ
のアクセスは、CPU1が配列内の4ワード分をリード
し、データ処理を行うものとする。図中のブロック26
のaddress Rのデータからaddress R+3ワードのアド
レスであるブロック27のaddress Sまでの4ワード
を、順次アドレスをインクリメントさせながらアクセス
される。そして上記4ワードのデータを処理後、次の4
ワードのデータがアクセスされる。
【0039】今、本システムにおいてキャッシュメモリ
は単一の物理構成のものしか実装していないとし、その
キャッシュメモリは1ラインサイズが4ワードであると
する。この場合、図2(c)のスタック領域28はキャ
ッシュ内の2ラインに跨がってしまい、2エントリとな
る。一方、配列データの1ブロック分は図2(c)のス
タック領域29に示すように、1エントリに格納可能と
なる。この意味でこの構造を有するキャッシュメモリ
は、4ワードの配列データへのアクセスに適したもので
あると言える。
【0040】図3に示すように、1ラインが4ワードの
キャッシュメモリを実装しているシステムにおいて、キ
ャッシュミスが発生した際に、主記憶部からのデータ転
送(リフィル)の準備に10サイクル要し、その後デー
タが2サイクル毎に転送されてくるとする。また、シス
テムにおいてリフィル中にCPU1は次のキャッシュア
クセス要求を発生させ、可能であればキャッシュ制御部
4はリフィル中でもデータ転送を行うものとする。CP
U1からのキャッシュアクセスにおいて、更にリフィル
中にキャッシュミスが発生した場合、先のリフィルが完
了してからリフィルを開始するものとする。
【0041】図2(a)に示すスタック形成のためにキ
ャッシュアクセスを行い、キャッシュミスが発生する
と、スタック最後のアドレスへのアクセスまでに2回の
キャッシュミスが発生することになる。図3(a)に示
すように、時刻31でスタックアクセスが開始した場
合、スタック全てのアクセスが完了するのは、図3
(a)の時刻32となり、開始から合計28サイクル要
する。
【0042】今、図1の第1のキャッシュメモリ2が1
ライン6ワード、第2のキャッシュメモリ3が1ライン
4ワードで構成されているとする。この場合、スタック
アクセスを第1のキャッシュメモリ2に行うように選択
すると、スタックアクセスでキャッシュミスが発生した
際に、図3(b)に示すように、スタックアクセス完了
は時刻33となり、開始から合計20サイクルで完了す
る。
【0043】一方、図2(c)に示す配列データに対し
ては、図1の第2のキャッシュメモリ3にアクセスする
ように選択させればよい。このようにスタックアクセス
の場合は第1のキャッシュメモリ2を選択し、配列デー
タアクセスの場合は第2のキャッシュメモリ3を選択す
ることにより、夫々のアクセス内容に適したキャッシュ
アクセスが行える。
【0044】単一の大容量のキャッシュメモリを実装す
るよりも、合計容量が単一のキャッシュメモリと同じで
あり、且つ異なる構成のキャッシュメモリを2つ実装
し、それらをユーザーが選択的に使用する手段を設けた
方が、同じチップ面積でもアプリケーションの実行をよ
り最適化することができ、システム性能を向上させるこ
とができる。
【0045】次に本発明の実施の形態1におけるキャッ
シュメモリ制御方法について説明する。図4は本実施の
形態のキャッシュメモリ制御方法を示す説明図である。
CPU1の出力する付加情報としてメモリアクセスのア
ドレス空間を設定し、このアドレス空間によってキャッ
シュA又はキャッシュBへのアクセスを行う。図5は本
実施の形態の情報処理装置に用いられるキャッシュ制御
部4の内部構成図である。
【0046】CPU1がアクセスする全アドレス空間
は、図4に示すようにキャッシュアクセスが許可(キャ
ッシュオン状態)の場合、キャッシュアクセスを行うア
ドレス空間であるキャッシャブル空間41と、キャッシ
ュオン状態でも主記憶領域(主記憶部)へのアクセスの
み行うアンキャッシャブル空間42とに分けられる。本
実施の形態では、キャッシャブル空間41を更にキャッ
シュAアクセス空間43と、キャッシュBアクセス空間
44とに分ける。このようなアドレス空間の定義は予め
システムに固定的に決めておいてもよいし、システム上
の回路として自由に設定可能な手段を装備することによ
り、その機能を実現してもよい。CPU1が行うメモリ
アクセスのアドレスによって、キャッシュメモリが選択
される。この場合、図1に示す選択情報8として、アク
セスアドレスがCPU1から出力される。
【0047】図5に示すキャッシュ制御部51(図1の
キャッシュ制御部4)は、キャッシュA又はキャッシュ
Bのアクセスを許可するため、アドレス空間を設定する
アクセス許可アドレス設定手段である。このキャッシュ
制御部51は、キャッシュへの許可アドレスの先頭番地
を保持するアクセス許可先頭アドレス保持部52と、許
可アドレスの最終番地を保持するアクセス許可終端アド
レス保持部53とを有している。またキャッシュ制御部
51には、アドレス判定器55とキャッシュアクセス要
求生成部57とが設けられている。
【0048】図4を用いて説明したように、キャッシャ
ブル空間はキャッシュAへのアクセスを許可するアドレ
ス空間と、キャッシュBへのアクセスを許可するアドレ
ス空間の2つに分割される。言い換えれば、キャッシュ
Aにアクセス許可されているアドレス空間以外のキャッ
シャブル空間は、キャッシュBへのアクセスを許可する
アドレス空間となる。図5に示すアクセス許可先頭アド
レス保持部52及びアクセス許可終端アドレス保持部5
3はCPU1からバスによって接続され、プログラムで
自由に書きこみ可能である。
【0049】キャッシュ制御部51にはCPU1からア
クセスアドレス54が入力される。このアクセスアドレ
ス54は図1の選択情報8に相当する。次にアクセス許
可先頭アドレス保持部52及びアクセス許可終端アドレ
ス保持部53のアドレス情報と、CPU1からのアクセ
スアドレス54とがアドレス判定器55に入力される。
アドレス判定器55は入力された各アドレスを比較し、
キャッシュAへのアクセスか否かを判定する。アドレス
判定器55の判定結果56は、キャッシュアクセス要求
生成部57に与えられ、キャッシュAアクセス要求9又
はキャッシュBアクセス要求10が生成される。
【0050】図6は、図4で示すアドレス空間が定義さ
れたとき、CPU1がメモリからの読み出しアクセスを
行う場合、キャッシュA又はキャッシュBの選択の手順
を示すフローチャートである。CPU1が読み出しアク
セスを開始すると、ステップS61では先ずキャッシュ
オン状態であり、且つアクセス先のアドレスがキャッシ
ャブル空間か否かの判定を行う。キャッシュオン状態
で、且つアクセス先アドレスがキャッシャブル空間でな
い場合は、ステップS69に分岐し、主記憶領域へのア
クセスを行い、主記憶領域からデータを読み出す(デー
タロード)。ステップS61においてキャッシャブル空
間であると判定された場合は、ステップS62に進み、
キャッシュAに許可されているアドレスか否かを判定す
る。
【0051】キャッシュAにアクセスが許可されている
アドレスである場合は、ステップS63に進み、キャッ
シュAへのアクセスを行う。ステップS63の処理後は
ステップS65に進み、キャッシュAがキャッシュヒッ
トしたか否かを判定する。キャッシュヒットであればス
テップS67に進み、キャッシュAからデータを読み出
す(データロード)。ステップS65においてキャッシ
ュミスであれば、ステップS69に分岐し、主記憶領域
からデータ読み出す。ステップS62においてキャッシ
ュAに許可されているアドレスでないと判定された場合
は、キャッシュBへのアクセスと判断し、ステップS6
4に進んでキャッシュBをアクセスする。ステップS6
4の処理後はステップS66に進み、キャッシュヒット
か否かの判定を行う。キャッシュヒットであればステッ
プS68に進み、キャッシュBからデータを読み出す
(データロード)。ステップS66においてキャッシュ
ミスと判定されたら、ステップS69に分岐し、主記憶
領域からのデータを読み出す。
【0052】ステップS65及びステップS66におい
てキャッシュミスである場合、主記憶領域からのデータ
読み出しと同時に、主記憶領域からキャッシュメモリへ
のデータ転送(リフィル)を開始する。図1に示す第1
のキャッシュメモリ2(キャッシュA)、第2のキャッ
シュメモリ3(キャッシュB)の制御において、キャッ
シュミス時は、夫々個別の手法によってリフィル制御が
可能である。例えば、キャッシュAはアドレスを降順に
ラップアラウンドしながら主記憶領域から転送する。こ
れに対して、キャッシュBはアドレスを昇順にラップア
ラウンドしながら主記憶領域から転送する。このように
キャッシュA、キャッシュBとで必ずしも同じようなリ
フィル制御を行う必要はない。
【0053】次に本発明の実施の形態2におけるキャッ
シュメモリ制御方法について説明する。図7は本実施の
形態のキャッシュメモリ制御方法において、アドレス空
間が定義されたCPU1が、メモリからの読み出しアク
セスを行う場合、キャッシュA又はキャッシュBの選択
の手順を示すフローチャートである。本実施の形態は図
1に示す情報処理装置において、CPU1からのアクセ
スがスタックアクセスか否か、即ちCPU1の行ってい
る処理内容の種別によってキャッシュA又はキャッシュ
Bへのアクセスを切り替えることを特徴とする。
【0054】CPU1が例えば割込み処理を行った後
に、図2(a)に示すスタック領域からのデータ読み出
しを行うとする。CPU1がスタック領域からデータを
読み出す場合、先ず図7のステップS71において、ス
タック領域のアドレス空間がキャッシャブル空間か否か
の判定を行う。このステップS71の処理は図6のステ
ップS61の処理と同じである。
【0055】キャッシャブル空間と判定された場合はス
テップS72に進み、アクセスがスタックアクセスか否
かの判定を行う。本実施の形態のシステムにおいて、キ
ャッシュAがスタックアクセスに適したキャッシュメモ
リであるとする。例えばこのキャッシュメモリは、1ラ
インサイズがスタックアクセスで退避する退避データ量
と同じであり、キャッシュミス時に主記憶領域からのブ
ロックデータの転送がアドレスを順次デクリメントして
行われるものとする。ステップS72においてスタック
アクセスであると判定された場合には、ステップS73
に進み、キャッシュAにアクセスを行う。ステップS7
2においてスタックアクセスでないと判定された場合に
は、ステップS74に分岐し、キャッシュBへのアクセ
スを行う。このように本実施の形態では、図1のCPU
1からの選択情報8(付加情報)として、スタックアク
セスか否かの論理値が出力される。これより以降の処理
は、図6と同一であるので説明を省略する。
【0056】次に本発明の実施の形態3におけるキャッ
シュメモリ制御方法及びプログラム処理方法について説
明する。図8は本実施の形態のプログラム処理方法とし
て、アセンブラプログラム例を示す説明図である。また
図9は本実施の形態のキャッシュメモリ制御方法におい
て、アドレス空間が定義されたCPU1が、メモリから
の読み出しアクセスを行う場合、キャッシュA又はキャ
ッシュBを選択する手順を示すフローチャートである。
これらの図において、CPU1は3種の転送命令を有
し、夫々がキャッシュオン状態においてキャッシュA、
キャッシュB、主記憶領域のみのアクセスに対応する転
送命令が夫々出力される場合を示す。
【0057】図8において、第1文字列81はアセンブ
ラ形式での転送命令である。第2文字列82は転送アド
レスである。第3文字列83は転送データを格納するレ
ジスタ名である。アセンブラプログラムにおいて転送命
令mov Aは、CPU1が命令実行時にキャッシュオン状
態の場合にキャッシュAにアクセスする命令とする。同
様にmov BはキャッシュBにアクセスする命令とする。
mov を用いた場合には、キャッシュオン状態であって
も、主記憶領域のみにアクセスする命令とする。従って
図8のASM0と記されたアセンブラ記述では、addres
s 0からの読み出しアクセスを示し、キャッシュオン状
態の場合にキャッシュAにアクセスし、読み出しデータ
をreg 0に格納する動作を表している。同様にASM1
はaddress1からの読み出しアクセスであり、キャッシ
ュBにキャッシュアクセスを行い、読み出しデータをre
g 1に格納する動作を表している。ASM2は、キャッ
シュA又はキャッシュBにはアクセスを行わず、主記憶
領域のみにアクセスを行い、読み出しデータをreg 2に
格納する動作を表している。
【0058】図9を用いて本実施の形態におけるキャッ
シュ選択のフローを説明する。ステップS91におい
て、キャッシュオン状態で且つアクセスアドレスがキャ
ッシャブル空間か否かを判定する。キャッシャブル空間
の場合はステップS92に進み、CPU1が発行する転
送命令がmov Aか否かの判定を行う。mov Aであると判
定された場合にはステップS94に進み、キャッシュA
のアクセスを行う。movAではない場合はステップS9
3に進み、mov Bであるか否かの判定を行う。mov Bで
ある場合にはステップS95に進み、キャッシュBへの
アクセスを行う。mov Bではない場合はmov 命令と判定
し、ステップS96に分岐し、主記憶領域へのアクセス
を行う。これ以外のステップSの処理は、図6又は図7
に示すフローと同一である。
【0059】このように本実施の形態では、図1に示す
選択情報8(付加情報)として、転送命令の種別を示す
情報が出力される。アセンブラ記述によりアクセスする
キャッシュメモリを選択できるため、システム上のアプ
リケーションを作成後、プログラマがシステム実行状況
に適したキャッシュアクセスを実行できるようにソフト
ウェアを最適化できる特徴がある。
【0060】次に本発明の実施の形態4におけるキャッ
シュメモリ制御方法及びプログラム処理方法について説
明する。図10は高級言語から実行形式コードへの変換
処理を示す説明図である。図11は本実施の形態のプロ
グラム処理方法に用いるソースプログラム例である。図
12は本実施の形態のキャッシュメモリ制御方法におい
て、アドレス空間が定義されたCPU1が、メモリから
の読み出しアクセスを行う場合、キャッシュA又はキャ
ッシュBの選択の手順を示すフローチャートである。
【0061】本実施の形態のシステムは、図4に示すよ
うなアドレス空間が定義されており、図10に示すフロ
ーによってキャッシュ選択が実行される。図10のステ
ップS101において、高級言語で記述された複数のソ
ースプログラムは、ステップS102でコンパイラ処理
が行われ、アセンブラコードが生成される。次のステッ
プS103では、生成されたアセンブラコードは最適化
処理等を含めたアセンブラコード処理が行われる。ステ
ップS104に進むと、ステップS103で処理された
アセンブラコードに対して実行コード生成処理が行わ
れ、実行形式コードが生成される。
【0062】図10のステップS101におけるソース
プログラムの記載例を図11に示す。高級言語は32ビ
ットのデータ幅を持ち、int という型を持つものとす
る。図11中のP110及びP111で示す記述は、変
数定義に用いる型に対して特定のアドレス空間に宣言さ
れた変数を割り当てる際に、どのアドレス空間に割り当
てるかを付加定義するための指定記述が記載される。
【0063】この付加定義はP110、P111の第2
文字列で表される。第1文字列であるmemoryは、第2文
字列である付加定義記述に対してメモリ空間を定義する
という宣言子である。第3文字列以降の記号は、定義す
るアドレス空間を記述するものである。例えば図中のP
110は、キャッシュAにアクセスするように、chAと
いう付加定義名を定義している。このような付加定義が
指定されると、宣言された変数に対応するメモリアドレ
ス空間は、アドレス0x00000000〜0x1fffffffの空間に割
り当てられる。
【0064】同様に図中の2行目のASMであるP11
1は、chBという付加定義名を定義している。このよう
な付加定義が指定されると、宣言された変数に対応する
メモリアドレス空間は、0x20000000〜0x2fffffffに割り
当てられる。実際にソースプログラム内で変数を定義す
る場合、図中のP112、P113、P114のように
記述する。図中ではdata0というint 型の変数をchAと
いう付加定義付きで宣言し、data1というint 型の変数
をchBという付加定義付きで宣言する。そして、data2
という変数をint という型で付加定義無しで宣言する。
このようなソースコードで記述されたプログラムは、図
10のフローによって実行形式コードへと変換される。
ソースプログラムを読み込み、コンパイラ処理によって
アセンブラコードを生成する段階で、付加定義の記述と
して図11のP110、P111が現れると、図5に示
すアクセス許可先頭アドレス保持部52及びアクセス許
可終端アドレス保持部53への設定を行うために、実行
形式コードへと変換される。
【0065】ソースコード内の変数が実行形式コードに
変換されるときのフローを図12に示す。ソースプログ
ラムを読み込み、コンパイラ処理によってアセンブラコ
ードを生成する段階で、変数の宣言の記述が現れると、
ステップS121では変数宣言において付加定義がされ
ているか否かの判定を行う。ここで(chA) と付加情報が
与えられている場合はステップS122に進み、その変
数に割り当てる実際のアドレス空間として、キャッシュ
Aにアクセス許可されたアドレス空間へ割り当てる。ま
た(chB) と付加情報が与えられている場合はステップS
123に進み、キャッシュBにアクセス許可されたアド
レス空間へ割り当てる。それ以外であればステップS1
24に進み、デフォルトの空間へ割り当てる。このデフ
ォルトの空間は、付加定義されていない場合の型、即ち
図11の例においてはint という型に対してコンパイラ
が割り当てる空間である。
【0066】次に本発明の実施の形態5におけるキャッ
シュメモリ制御方法及びプログラム処理方法について説
明する。図13は本実施の形態のプログラム処理方法に
おけるプログラムの記載例である。本実施の形態は、図
1に示す情報処理装置において、高級言語で記述された
ソースプログラムをアセンブラコードに変換することを
特徴とする。プログラム処理のフローは図10に示す処
理と同じである。
【0067】高級言語でのソースプログラム記述例をP
RG130として示し、アセンブラ変換後のアセンブラ
コード例をASM130として示す。ソースプログラム
においては、int(chA)はint 型の変数で、キャッシュオ
ン状態の場合キャッシュAにアクセスを行う変数であ
る。int(chB)はint 型の変数で、キャッシュオン状態の
場合キャッシュBにアクセスを行う変数を宣言してい
る。このように本実施の形態の高級言語は、int という
型をもつ高級言語において、キャッシュオン状態でキャ
ッシュA又はキャッシュBのどちらをアクセスするかを
識別するキーワードをint の後の( ) で記述することに
より、高級言語内で予め宣言できる。
【0068】図13のP134は、P131、P13
2、P133で宣言された変数の高級言語での加算プロ
グラムの記述である。変数dataCに変数dataAと変数da
taBの値の加算結果を代入する。このソースプログラム
PRG130を図10のフローにてアセンブラコードに
変換したアセンブラコード例が、図13のASM130
である。dataAはキャッシュAへのアクセスを行う変数
として宣言されているので、ASM131ではキャッシ
ュAアクセスを行うmov A命令に変換される。ASM1
31のmov A命令によって、アドレスaddress Aへのリ
ードアクセスが行われ、結果がreg 0に格納される。こ
うしてキャッシュAへのキャッシュアクセスが行われ
る。P132のdataBはキャッシュBへのアクセスを行
う変数として宣言されているので、ASM132ではキ
ャッシュBへのアクセスを行うmov B命令に変換され
る。ASM132のmov B命令によって、アドレスaddr
ess Bへのリードアクセスが行われ、結果がreg 1に格
納される。こうしてキャッシュBへのアクセスが行われ
る。reg 0、reg 1に格納されたデータを基に、高級言
語のソースコードP134に対応する加算が行われる。
【0069】図13のアセンブラコードASM133
は、ソースプログラム内のP134の記述に相当する。
加算命令add によってreg 0とreg 1の加算が行われ、
加算結果がreg 2に格納される。最後にソースプログラ
ム内のdataCに相当するメモリ空間に演算結果が格納さ
れる。高級言語から実行形式コードに変換されるときin
t 型の変数がデフォルトであり、アンキャッシャブル空
間に確保される場合、ソースコード内のdataCは実際の
実行形式コードではアンキャッシャブル空間に確保され
る。そして変換後のアセンブラコードは、ASM134
に示すように、mov 命令によってreg 2のデータをaddr
ess Cに格納するアセンブラコードに変換される。
【0070】このように高級言語のプログラムにおい
て、変数毎にキャッシュ選択情報を与えることが可能と
なる。また、変数の宣言時にキャッシュ選択情報を与え
るのみであるため、ソースコード内で変数がどのように
処理されるかをプログラム記述後に調べ、その処理内容
によって変数宣言時の付加情報内容を変更することによ
り、容易にシステム上のアプリケーションの実行最適化
を図ることができる。
【0071】次に本発明の実施の形態6におけるキャッ
シュメモリ制御方法及びプログラム処理方法について説
明する。実施の形態4及び実施の形態5においては高級
言語記述のソースプログラムにおいて、変数宣言時に付
加情報を与える手法を示したが、本実施の形態のプログ
ラム処理方法は、これら付加情報を与えず、高級言語を
処理する段階でコンパイラが宣言された変数がどのよう
に処理されるかを判断する手法である。
【0072】ソースプログラム内で宣言された変数、例
えばdataAはソースプログラム内でどのように演算処理
されるかがコンパイラ処理の段階で解析される。そして
解析結果がアセンブラコードを生成する際に反映され
る。本実施の形態の情報処理装置の構成は実施の形態3
で示すものと同一とする。ソースプログラム内で変数da
taAの演算処理内容を解析し、解析結果においてキャッ
シュAへのアクセスが最適と判断された場合は、ソース
プログラム内の変数dataAに対するアドレス空間へのア
クセスの実行形式コードは、mov Aの実行形式コードへ
と変換される。キャッシュBへのアクセスの方が適する
と解析された場合には、dataAの変数に対するアドレス
空間へのアクセスの実行形式コードは、mov Bの実行形
式コードに変換される。
【0073】解析の方法は、高級言語で記述されたソー
スプログラム内で変数が配列変数かどうかで選択する。
また、高級言語の記述の一つであるC言語の構造体のよ
うに、ある変数郡を一つにまとめにして記述し、高級言
語の変数宣言で宣言された変数か否かで判断してもよ
い。情報処理装置においてキャッシュAがランダム変数
に適したキャッシュメモリ、キャッシュBが配列アクセ
スに適したキャッシュメモリである場合、高級言語で記
述されたソースプログラムにおいて変数が配列宣言され
ている場合には、その変数に相当するアドレス空間への
アクセスはmov B命令によってアクセスし、配列変数で
はない場合はmov A命令によってアクセスする。
【0074】また、変数の演算処理方法によっても選択
することもできる。ソースプログラム内で記述された変
数が配列変数である場合、その配列変数を用いて演算す
るときは、配列の要素を順次指定して処理を行う。高級
言語で記述されたソースプログラムにおいて、配列内の
要素指定がプログラム内でどのように行われていくかを
コンパイラ処理において解析し、解析結果によって適し
たキャッシュメモリにアクセスするように実行形式コー
ドを生成する。
【0075】図14に本実施の形態のプログラム処理方
法における簡単なプログラム例を示す。12個の要素を
もつint 型の配列dataA、dataBが高級言語の記述でP
RG140で宣言されている。int 型は32ビットの幅
をもつデータである。配列dataA及びdataBは、図15
のメモリ割り当て150、151に示すように、連続し
たアドレス空間において配列の要素分をまとめてメモリ
空間に割り当てられるとする。割り当て150に示すよ
うにdataAの配列全体に対しては、dataA[0]に対する
アドレスから順次アドレスを増加させてdata[11]までの
メモリ空間を割り当てられる。同様に割り当て151に
示すように、dataBの配列全体は、dataB[0] から順次
アドレスを増加させてdataB[11]までのメモリ空間を割
り当てる。
【0076】図14のプログラム例において変数aが
0、bが9のとき、PRG141はdataAの要素0から
3までを順次加算して、dataBの要素9に格納すること
を表す。PRG142はdataAの要素4から要素7まで
を順次加算して、dataBの要素8に格納することを表
す。
【0077】図14のプログラム例において、dataAは
配列の要素指定が昇順に行われている。即ちdataAの配
列に割り当てられているメモリブロックのdataA[0] に
相当するメモリアドレスから順次昇順にアドレスを変化
させ、メモリからデータをリードすることになる。一方
dataBはソースプログラム内では配列要素が順次降順に
アドレスを変化させての実行となる。即ちdataBの配列
に割り当てられているメモリブロック内のdataB[9] か
ら順次アドレスを降順に変化させてのメモリアクセスと
なる。
【0078】今演算結果をdataB[9] からdataBへ格納
する場合において、実際の実行形式コードの実行におい
てキャッシュメモリへのアクセスを行い、キャッシュミ
スが発生したする。この場合、ソースプログラム内にお
いて配列の要素指定の解析から、リフィルがアドレスを
降順に変化させてのリフィルを行った方が、次にdataB
[8] に相当するメモリデータがキャッシュ内部に存在す
る確率が高くなる。一方dataA[0] からdataA[3] まで
をアクセスする場合においては、dataA[0] でキャッシ
ュミスが発生した場合、リフィルを昇順に行った方が、
次にdataA[1]にアクセスする場合に、キャッシュ内部
にデータが存在する確率が高くなる。
【0079】即ち、高級言語で記述されたプログラム内
の配列の要素指定の順序を解析し、dataAに相当するメ
モリブロックへのアクセスは、キャッシュAにアクセス
するようにし、一方dataBに相当するメモリブロックへ
のアクセスは、キャッシュBにアクセスするようにした
方が、処理内容に適したキャッシュメモリへのアクセス
となる。
【0080】図14に示すようにプログラム内の局所的
な解析でもよいし、プログラム全体で同様の解析を行
い、コンパイラ処理にてプログラム内で配列指定方法の
統計をとっての実行形式のコード生成に反映してもよ
い。
【0081】高級言語において変数の解析方法は、上記
のように配列の要素指定方法の解析以外の方法でもよ
い。関数を呼び出すべくCPUが内部資源をメモリに退
避又は復帰させる場合のスタックアクセスにおいては、
キャッシュメモリに対してスタックアクセスに適した割
り当てを行ってもよい。
【0082】高級言語で記述したソースプログラムから
コンパイラ処理をするとき、コンパイラが自動的にシス
テムに適したキャッシュメモリへのアクセスを選択して
実行形式コードを生成するため、プログラムの記述者は
特にどのキャッシュメモリへのアクセスを選択するかを
指定しなくてもよい。
【0083】次に本発明の実施の形態7におけるキャッ
シュメモリ制御方法について説明する。図16は本実施
の形態におけるキャッシュメモリ制御方法を実現するた
めに用いられる情報処理装置の構成図である。この情報
処理装置には図1に示す構成要素に加えて、アドレス変
換器161を含むメモリ管理ユニット160が設けられ
ている。アドレス変換器161はCPU1から出力され
た論理アドレスを物理アドレスに変換して第1のキャッ
シュメモリ(キャッシュA)2又は第2のキャッシュメ
モリ(キャッシュB)3に与えるものである。
【0084】CPU1から出力されるアドレスはアドレ
スバス5によって、メモリ管理ユニット160に与えら
れる。メモリ管理ユニット160は入力されたアドレス
バスがアクセス可能な空間か否かを識別すると共に、論
理アドレスから物理アドレスへの変換を行う。変換後の
アドレスは物理アドレスバス162によってキャッシュ
A及びキャッシュBに出力される。更にメモリ管理ユニ
ット160はキャッシュ制御部4に対し、キャッシュ
A、キャッシュBのどちらのキャッシュをアクセスする
のかを示す判定情報163を付加情報として出力する。
キャッシュ制御部4はこの判定情報163を用いてキャ
ッシュAへのアクセスを行うのか、キャッシュBへのア
クセスを行うのかを選択する。
【0085】図17は図16のアドレス変換器161の
内部構成を具体化したアドレス変換器170(TLB)
の構成図である。このアドレス変換器170は、論理ア
ドレス保持部178、キャッシュ選択情報保持部171
を備える物理アドレス保持部179、比較器176を含
んで構成される。アドレス変換器170は論理アドレス
172を物理アドレスに変換する機能と共に、キャッシ
ュ選択情報保持部171を用いて各エントリ毎にキャッ
シュA、キャッシュBのどちらをアクセスするかの選択
情報を保持する。
【0086】図16のCPU1から論理アドレス172
が出力されると、論理アドレスバスを介してアドレス変
換器170に入力される。論理アドレス172のエント
リフィールド174で指定される論理アドレス保持部1
78のエントリをアクセスすると、アドレス変換器17
0はCPU1からの論理アドレスの変換フィールド17
4と、エントリアドレスで指定される論理アドレス保持
部178のエントリ内の論理アドレス値175とを比較
器176で比較する。比較結果はCPU1へのTLBヒ
ット信号177として出力される。比較器176での比
較結果が一致、即ちTLBヒットの場合、物理アドレス
保持部179から物理アドレス180が出力される。こ
の物理アドレス180によってキャッシュA又はキャッ
シュBにアクセスが行われる。またTLBヒットの場
合、物理アドレスの出力と同時にキャッシュ選択情報1
81が図16のキャッシュ制御部4に対して出力され
る。キャッシュ制御部4はこのキャッシュ選択情報18
1を基に、キャッシュA又はキャッシュBを選択する。
【0087】この手法によれば、アドレス空間のページ
毎にキャッシュA、キャッシュBのどちらにアクセスを
するのかを選択できる。OSによってページ管理を行う
場合、各ページ毎にキャッシュA、キャッシュBの選択
が可能となり、例えば、複数のタスクに対して互いに異
なるページでアクセスする場合、各タスク毎にキャッシ
ュメモリを割り当てることが可能となり、各タスク毎に
最適なキャッシュアクセスを行うことができる。また、
各タスク毎にそれぞれ独自のキャッシュメモリを割り当
てることになるため、一方のタスクのキャッシュ内のデ
ータを、現在実行しているタスクによってキャッシュ内
から追い出すこともなくなり、システム上のキャッシュ
ヒット率が向上する。
【0088】
【発明の効果】請求項1〜8及び請求項14,15記載
の発明によれば、複数の情報処理に対してそれらの処理
に適したキャッシュメモリに選択的にアクセスすること
ができる。特に大規模なシステムプログラムにおいて、
各種の情報処理を行う場合、夫々の処理に最適なキャッ
シュメモリを選択してキャッシュアクセスを行うことに
より、システム全体のアクセスを最適化でき、システム
性能を向上させることができる。
【0089】また請求項9〜13記載の発明によれば、
複数の情報処理に対してそれらの処理に適したキャッシ
ュメモリをプログラム上で選択することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1〜5のキャッシュメモリ
制御方法が用いられる情報処理装置の全体構成図であ
る。
【図2】(a)はCPUのスタック領域の構成図、
(b)はアドレスブロック内の配列図、(c)はキャッ
シュメモリの構成例である。
【図3】キャッシュメモリに対するキャッシュ方法を示
すタイミング図である。
【図4】本発明の実施の形態1によるキャッシュメモリ
制御方法において、CPUから見たアドレスマップの一
例を示す説明図である。
【図5】実施の形態1〜5の情報処理装置に用いられる
キャッシュメモリ制御部の内部構成図である。
【図6】実施の形態1のキャッシュメモリ制御方法に用
いられるキャッシュ選択のフローチャートである。
【図7】本発明の実施の形態2のキャッシュメモリ制御
方法に用いられるキャッシュ選択のフローチャートであ
る。
【図8】本発明の実施の形態3のキャッシュメモリ制御
方法に用いられるアセンブラプログラム例である。
【図9】実施の形態3のキャッシュメモリ制御方法に用
いられるキャッシュ選択のフローチャートである。
【図10】本発明の実施の形態4によるキャッシュメモ
リ制御方法において、高級言語から実行形式コードへの
変換処理を示す説明図である。
【図11】実施の形態4のキャッシュメモリ制御方法に
用いられるソースプログラム例である。
【図12】実施の形態4のキャッシュメモリ制御方法に
用いられるキャッシュ選択のフローチャートである。
【図13】本発明の実施の形態5のキャッシュメモリ制
御方法に用いられ、ソースプログラムからアセンブラコ
ードの変換例を示す説明図である。
【図14】本発明の実施の形態6のキャッシュメモリ制
御方法に用いられるプログラム例である。
【図15】実施の形態6のキャッシュメモリ制御方法に
用いられ、メモリ割り当て例を示す説明図である。
【図16】本発明の実施の形態7に用いる情報処理装置
の全体構成図である。
【図17】実施の形態7の情報処理装置に用いられるア
ドレス変換器の内部構成図である。
【符号の説明】
1 CPU 2 第1のキャッシュメモリ(キャッシュA) 3 第2のキャッシュメモリ(キャッシュB) 4,51 キャッシュ制御部 52 アクセス許可先頭アドレス保持部 53 アクセス終端先頭アドレス保持部 55 アドレス判定器 57 キャッシュアクセス要求生成部 160 メモリ管理ユニット 161,170 アドレス変換器 178 論理アドレス保持部 179 物理アドレス保持部 176 比較器

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 複数のキャッシュメモリ、 及び前記キャ
    ッシュメモリを制御するキャッシュメモリ制御部を有す
    るシステムにおいて、 キャッシュアクセス要求と動作すべきキャッシュメモリ
    を特定するための付加情報とが与えられると、前記キャ
    ッシュメモリ制御部は前記付加情報を用いてアクセスす
    べきキャッシュメモリを選択することを特徴とするキャ
    ッシュメモリ制御方法。
  2. 【請求項2】 前記複数のキャッシュメモリは、互いに
    構成が異なることを特徴とする請求項1記載のキャッシ
    ュメモリ制御方法。
  3. 【請求項3】 前記複数のキャッシュメモリは、互いに
    キャッシュメモリの制御の方法が異なることを特徴とす
    る請求項1記載のキャッシュメモリ制御方法。
  4. 【請求項4】 前記付加情報は、キャッシュアクセスの
    アドレスであることを特徴とする請求項1〜3のいずれ
    か1項記載のキャッシュメモリ制御方法。
  5. 【請求項5】 前記キャッシュメモリ制御部は、夫々の
    キャッシュメモリ毎にアクセスを許可するアドレス空間
    範囲を自由に設定するアクセス許可アドレス設定手段を
    有し、前記アクセス許可アドレス設定手段の内容と前記
    付加情報として与えられたアドレス値との比較結果によ
    って、アクセスすべきキャッシュメモリを選択すること
    を特徴とする請求項4記載のキャッシュメモリ制御方
    法。
  6. 【請求項6】 複数のキャッシュメモリ、前記キャッシ
    ュメモリを制御するキャッシュメモリ制御部、及びメモ
    リアクセスによって情報処理を行う中央処理部を有する
    システムにおいて、 前記中央処理部がメモリアクセスを行う場合、前記キャ
    ッシュメモリ制御部に対してキャッシュアクセス要求を
    与えると共に、キャッシュアクセスの付加情報として前
    記中央処理部が行う情報処理内容を与え、前記キャッシ
    ュメモリ制御部は前記情報処理内容に基づいてアクセス
    すべきキャッシュメモリを選択することを特徴とするキ
    ャッシュメモリ制御方法。
  7. 【請求項7】 複数のキャッシュメモリ、前記キャッシ
    ュメモリを制御するキャッシュメモリ制御部、及びメモ
    リアクセスによって情報処理を行う中央処理部を有する
    システムにおいて、 前記中央処理部がメモリアクセスにより複数の実行レベ
    ルで情報処理を行うとき、前記キャッシュメモリ制御部
    に対してキャッシュアクセス要求を与えると共に、キャ
    ッシュアクセスの付加情報として前記実行レベルを通知
    し、前記キャッシュメモリ制御部は前記実行レベルに基
    づいてアクセスすべきキャッシュメモリを選択すること
    を特徴とするキャッシュメモリ制御方法。
  8. 【請求項8】 複数のキャッシュメモリ、前記キャッシ
    ュメモリを制御するキャッシュメモリ制御部、及びメモ
    リアクセスによって情報処理を行う中央処理部を有する
    システムにおいて、 前記中央処理部がメモリアクセスを発生させる複数の転
    送命令を発行して情報処理を行うとき、前記キャッシュ
    メモリ制御部に対してキャッシュアクセス要求を与える
    と共に、キャッシュアクセスの付加情報として前記中央
    処理部で発行中の前記転送命令の種類を与え、前記キャ
    ッシュメモリ制御部は前記転送命令の種類に基づいてア
    クセスすべきキャッシュメモリを選択することを特徴と
    するキャッシュメモリ制御方法。
  9. 【請求項9】 複数のキャッシュメモリ、 及び前記キャ
    ッシュメモリを制御するキャッシュメモリ制御部を有す
    るシステムにおいて、キャッシュアクセス要求と動作す
    べきキャッシュメモリを特定するための付加情報とをプ
    ログラム言語を用いて記載することにより、前記キャッ
    シュメモリ制御部が前記付加情報に基づいて特定のキャ
    ッシュメモリを選択するためのプログラム処理方法であ
    って、 前記プログラム言語は、高級言語で記述された複数のソ
    ースコードからなるプログラムを与えると、前記キャッ
    シュメモリ制御部の実行形式コードに変換される言語で
    あり、 前記高級言語は、ソースコード内で宣言された変数に対
    応するメモリ空間へのアクセスにおいて、前記複数のキ
    ャッシュメモリのうち特定のキャッシュメモリを指定す
    る記述手段を有し、 前記ソースコードから前記実行形式コードに変換すると
    き、前記ソースコード内の前記記述手段からアクセス情
    報を抽出し、前記実行形式コードに変換することを特徴
    とするプログラム処理方法。
  10. 【請求項10】 複数のキャッシュメモリ、 及び前記キ
    ャッシュメモリを制御するキャッシュメモリ制御部を有
    するシステムにおいて、キャッシュアクセス要求と動作
    すべきキャッシュメモリを特定するための付加情報とを
    プログラム言語を用いて記載することにより、前記キャ
    ッシュメモリ制御部が前記付加情報に基づいて特定のキ
    ャッシュメモリを選択するためのプログラム処理方法で
    あって、 前記プログラム言語は、高級言語で記述された複数のソ
    ースコードからなるプログラムが与えられると、前記キ
    ャッシュメモリ制御部の実行形式コードに変換されるも
    のであり、 前記高級言語は、ソースコード内で宣言された変数に対
    して実行形式コードに変換する際に特定のアドレス空間
    に割り当てるよう指定する記述手段を有し、 前記記述手段の指定情報に基づいて前記ソースコード内
    で宣言された変数に対応するアドレス空間を確保するア
    ドレス空間範囲を決定し、前記実行形式コードに変換す
    ることを特徴とするプログラム処理方法。
  11. 【請求項11】 複数のキャッシュメモリ、 前記キャッ
    シュメモリを制御するキャッシュメモリ制御部、及びメ
    モリアクセスによって情報処理を行う中央処理部を有す
    るシステムにおいて、キャッシュアクセス要求と動作す
    べきキャッシュメモリを特定するための付加情報とをプ
    ログラム言語を用いて記載することにより、前記キャッ
    シュメモリ制御部が前記付加情報に基づいて特定のキャ
    ッシュメモリを選択するためのプログラム処理方法であ
    って、 前記中央処理部は、複数の転送命令を発行して情報処理
    を行うものであり、 前記キャッシュメモリ制御部は、前記付加情報として前
    記転送命令の種類を用いるものであり、 前記プログラム言語は、高級言語で記述された複数のソ
    ースコードからなるプログラムが与えられると、前記キ
    ャッシュメモリ制御部の実行形式コードに変換されるも
    のであり、 前記高級言語は、ソースコード内で宣言された変数に対
    して実行形式コードに変換する際に特定のキャッシュメ
    モリを選択するように指定する記述手段を有し、 前記実行形成コードに変換する際には、前記記述手段に
    よって前記複数の転送命令のうちのいずれかを選択して
    前記実行形式コードに変換することを特徴とするプログ
    ラム処理方法。
  12. 【請求項12】 複数のキャッシュメモリ、 前記キャッ
    シュメモリを制御するキャッシュメモリ制御部、及びメ
    モリアクセスによって情報処理を行う中央処理部を有す
    るシステムにおいて、キャッシュアクセス要求と動作す
    べきキャッシュメモリを特定するための付加情報とをプ
    ログラム言語を用いて記載することにより、前記キャッ
    シュメモリ制御部が前記付加情報に基づいて特定のキャ
    ッシュメモリを選択するためのプログラム処理方法であ
    って、 前記プログラム言語は、高級言語で記述された複数のソ
    ースコードからなるプログラムを与えると、前記キャッ
    シュメモリ制御部の実行形式コードに変換されるもので
    あり、 前記高級言語は、ソースコード内で宣言された変数がど
    のような情報処理をプログラム内で行うのかを解析する
    解析手段を有し、 前記中央処理部は、前記解析手段の解析結果に基づいて
    前記ソースコードから前記実行形式コードに変換するこ
    とを特徴とするプログラム処理方法。
  13. 【請求項13】 前記解析手段は、前記ソースプログラ
    ム内で宣言された配列変数の配列要素の指定方法を解析
    するものであることを特徴とする請求項12記載のプロ
    グラム処理方法。
  14. 【請求項14】 複数のキャッシュメモリ、前記キャッ
    シュメモリを制御するキャッシュメモリ制御部、メモリ
    アクセスによって情報処理を行う中央処理部、及び前記
    中央処理部から出力された論理アドレスを物理アドレス
    に変換するアドレス変換部を有するシステムにおいて、 前記中央処理部がメモリアクセスを行う際、メモリアク
    セスのアドレスにより前記アドレス変換部のエントリが
    指定されると、前記アドレス変換部は前記指定エントリ
    内の変換後のアドレスを出力すると共に、前記エントリ
    に基づいて特定のキャッシュメモリを指定することを特
    徴とするキャッシュメモリ制御方法。
  15. 【請求項15】 複数のキャッシュメモリ、前記キャッ
    シュメモリを制御するキャッシュメモリ制御部、メモリ
    アクセスによって情報処理を行う中央処理部、及び前記
    中央処理部から出力された論理アドレスを物理アドレス
    に変換するアドレス変換部を有するシステムにおいて、 前記アドレス変換部は、エントリ毎にキャッシュメモリ
    を特定する対応情報保持手段を有し、前記中央処理部が
    メモリアクセスを行う際、出力アドレスにより前記アド
    レス変換部のエントリを指定して変換後のアドレスを出
    力すると共に、前記エントリ内に保持された対応情報を
    出力することにより、特定のキャッシュメモリを指定す
    ることを特徴とするキャッシュメモリ制御方法。
JP2000190642A 2000-06-26 2000-06-26 キャッシュメモリ制御方法及びプログラム処理方法 Pending JP2002007213A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000190642A JP2002007213A (ja) 2000-06-26 2000-06-26 キャッシュメモリ制御方法及びプログラム処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000190642A JP2002007213A (ja) 2000-06-26 2000-06-26 キャッシュメモリ制御方法及びプログラム処理方法

Publications (1)

Publication Number Publication Date
JP2002007213A true JP2002007213A (ja) 2002-01-11

Family

ID=18690076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000190642A Pending JP2002007213A (ja) 2000-06-26 2000-06-26 キャッシュメモリ制御方法及びプログラム処理方法

Country Status (1)

Country Link
JP (1) JP2002007213A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813684B2 (en) 2002-05-10 2004-11-02 Hitachi, Ltd. Disk drive system and method for controlling a cache memory
JP2007265600A (ja) * 2006-03-27 2007-10-11 Toshiba Corp ディスクドライブ書き込み方法
JP2008525919A (ja) * 2004-12-29 2008-07-17 インテル・コーポレーション プログラマ制御のキャッシュ・ライン追出しポリシーのための方法
US7861040B2 (en) 2006-12-28 2010-12-28 Konica Minolta Business Technologies, Inc. Memory apparatus, cache control method, and cache control program
JP2011170439A (ja) * 2010-02-16 2011-09-01 Nec Corp コンパイラ、コンパイル方法、及びコンパイル実行プログラム
US9734075B2 (en) 2013-08-13 2017-08-15 Fujitsu Limited Cache memory control program, processor incorporating cache memory, and cache memory control method
JP2021018711A (ja) * 2019-07-23 2021-02-15 富士通株式会社 タスク実行管理装置、タスク実行管理方法、および、タスク実行管理プログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813684B2 (en) 2002-05-10 2004-11-02 Hitachi, Ltd. Disk drive system and method for controlling a cache memory
JP2008525919A (ja) * 2004-12-29 2008-07-17 インテル・コーポレーション プログラマ制御のキャッシュ・ライン追出しポリシーのための方法
JP2007265600A (ja) * 2006-03-27 2007-10-11 Toshiba Corp ディスクドライブ書き込み方法
US7861040B2 (en) 2006-12-28 2010-12-28 Konica Minolta Business Technologies, Inc. Memory apparatus, cache control method, and cache control program
JP2011170439A (ja) * 2010-02-16 2011-09-01 Nec Corp コンパイラ、コンパイル方法、及びコンパイル実行プログラム
US9734075B2 (en) 2013-08-13 2017-08-15 Fujitsu Limited Cache memory control program, processor incorporating cache memory, and cache memory control method
JP2021018711A (ja) * 2019-07-23 2021-02-15 富士通株式会社 タスク実行管理装置、タスク実行管理方法、および、タスク実行管理プログラム
JP7367365B2 (ja) 2019-07-23 2023-10-24 富士通株式会社 タスク実行管理装置、タスク実行管理方法、および、タスク実行管理プログラム

Similar Documents

Publication Publication Date Title
JP3698358B2 (ja) 高速プロセッサシステム、これを使用する方法及び記録媒体
JP3816586B2 (ja) 先取り命令を生成する方法とシステム
US7114034B2 (en) Caching of dynamic arrays
US7093258B1 (en) Method and system for managing distribution of computer-executable program threads between central processing units in a multi-central processing unit computer system
KR101039782B1 (ko) 능동 메모리 프로세서를 포함하는 네트워크-온-칩 시스템
JP2001109661A (ja) キャッシュメモリの割当方法及びオペレーティングシステム及びそのオペレーティングシステムを有するコンピュータシステム
KR20040069257A (ko) 다수의 하드웨어 구성들을 가지는 재구성가능한 하드웨어아키텍처의 스케줄링 방법
US20080005473A1 (en) Compiler assisted re-configurable software implemented cache
JP2003099388A (ja) マルチノード・コンピュータ・システムのメモリマップト入出力装置をサポートする方法およびコンピュータシステム
Brown et al. Taming the Memory Hogs: Using {Compiler-Inserted} Releases to Manage Physical Memory Intelligently
US20050268083A1 (en) Method and system for using internal FIFO RAM to improve system boot times
CN112130901A (zh) 基于risc-v的协处理器、数据处理方法及存储介质
CN112667289A (zh) 一种cnn推理加速系统、加速方法及介质
JP2006323844A (ja) ジャバ仮想マシンでバイトコードの実行時間を短縮するシステム及び方法
US6324629B1 (en) Method for determining an optimized data organization
US20070300210A1 (en) Compiling device, list vector area assignment optimization method, and computer-readable recording medium having compiler program recorded thereon
JP2002007213A (ja) キャッシュメモリ制御方法及びプログラム処理方法
EP1103898A2 (en) Microprocessor and memory
JPH07129464A (ja) 情報処理装置
JP2006268753A (ja) Dma回路及びコンピュータシステム
JP2002099498A (ja) プログラム実行装置およびプログラム開発支援装置
JP7225904B2 (ja) ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム
JPH07129518A (ja) 計算機システム
Chang et al. Array allocation taking into account SDRAM characteristics
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット