JPH09212421A - データ処理装置及びデータ処理システム - Google Patents

データ処理装置及びデータ処理システム

Info

Publication number
JPH09212421A
JPH09212421A JP8038976A JP3897696A JPH09212421A JP H09212421 A JPH09212421 A JP H09212421A JP 8038976 A JP8038976 A JP 8038976A JP 3897696 A JP3897696 A JP 3897696A JP H09212421 A JPH09212421 A JP H09212421A
Authority
JP
Japan
Prior art keywords
data
cache
control unit
cache memory
arithmetic
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.)
Withdrawn
Application number
JP8038976A
Other languages
English (en)
Inventor
Hiroshi Takeda
博 武田
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP8038976A priority Critical patent/JPH09212421A/ja
Publication of JPH09212421A publication Critical patent/JPH09212421A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 データキャッシュメモリを利用したデータ処
理効率を向上させる。 【解決手段】 データキャッシュメモリ(4)を有する
マイクロコンピュータ(1)は、そのデータキャッシュ
メモリに予め演算処理に必要とされるデータをCPU
(2)とは独立して多量に読込むプリフェッチ機能を持
たせる制御部(25)を有するので、画像情報やオーデ
ィオ情報のように多量だが再利用性の低いデータをCP
Uによる演算処理直前に、高い確率でデータキャッシュ
メモリに保持させ、かつ一旦演算処理が完了したデータ
を優先してデータキャッシュメモリから追い出すことが
でき、小容量のデータキャッシュメモリにおいてもCP
Uの演算処理性能の向上に大きな効果を得る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データキャッシュ
メモリ装置を備えたデータ処理装置に係り、特に中央処
理装置のような演算制御装置による初期設定にて自立的
にデータプリフェッチ又はデータ書き戻しを可能にする
技術に関し、例えばデータキャッシュメモリを内蔵した
半導体集積回路化されて成るマイクロコンピュータ、さ
らには、イメージデータのようにデータ量は大量だが再
利用性の低いデータを演算処理するデータ処理システム
などに適用して有効な技術に関するものである。
【0002】
【従来の技術】中央処理装置によるデータ処理効率を向
上させるために、RAM(ランダム・アクセス・メモ
リ)、ROM(リード・オンリ・メモリ)、ハードディ
スク装置、フロッピーディスク装置などの大容量記憶装
置の一部の情報を読込む比較的小容量だが大容量記憶装
置に比べて命令やデータを高速にアクセスできるキャッ
シュメモリを内蔵または中央処理装置に密接に外付けす
ることが一般的に行われている。キャッシュメモリを内
蔵したマイクロコンピュータとしては、例えば「日立3
2ビットRISCプロセッサPA/50M ハードウェ
アマニュアル(平成6年3月株式会社日立製作所発
行)」に記載されたものがあり、その文献の第6章キャ
ッシュ(第117頁〜第135頁)にはキャッシュメモ
リの説明が記載されている。
【0003】中央処理装置は、キャッシュメモリに情報
が存在するうちはキャッシュメモリ中の命令やデータを
参照しながら命令実行を継続し、また、命令実行結果を
一時的にキャッシュメモリに格納することで、外部大容
量記憶装置をアクセスしながら命令を実行するのに比べ
て飛躍的にデータ処理能率を向上させることができる。
但し、キャッシュメモリに中央処理装置が必要とする情
報が存在しない場合、キャッシュメモリは、中央処理装
置に命令の実行を停止させて外部大容量記憶装置より必
要な情報を読込んで保持する動作を行い、その後中央処
理装置に中断していた命令の実行を再開させる。この命
令実行停止時間をミスヒットペナルティと称する。この
状態が多発すると逆に中央処理装置の性能が低下するこ
とになる。したがって、中央処理装置の性能を最大限に
引き出すには、命令実行の中断が無いように、命令実行
に必要な情報を極力キャッシュメモリに存在させること
が得策である。
【0004】そこで、中央処理装置が外部大容量記憶装
置との間でデータのやりとりを行っていない期間を利用
して、中央処理装置が将来必要とするであろうデータ
を、中央処理装置の演算処理に先行してキャッシュメモ
リに読込むという、プリフェッチの手法が提案されてい
る。
【0005】
【発明が解決しようとする課題】しかしながら、キャッ
シュメモリのプリフェッチは現在のところ命令に対して
積極的に行われれているのが現状である。命令の場合、
プログラムの流れが、下位アドレスから上位アドレスに
向かって連続している時には、プリフェッチは、常に現
在の実行アドレスに対し単純に次のキャッシュメモリの
1ライン分の複数ワードの情報を先取りするだけでも確
実に効果があるなど比較的単純に制御できるからであ
る。それに比べデータの場合は、アドレシングモードに
おいてもレジスタ間接アドレシングなど種々のモードが
あるために、次に使われるデータのアドレスを確定する
ことが難しく、しかも命令とは異なりアドレス空間に離
散的に分布するという性質から、プリフェッチを行うこ
とが困難なわりには効果が得られにくかった。
【0006】但し、前述の「日立32ビットRISCプ
ロセッサPA/50M ハードウェアマニュアル」にも
記載のように、ミスヒットペナルティを軽減するため
に、外部記憶装置からのラインフェッチが全て完了する
前に中央処理装置の命令実行中断状態を解除するため
に、データの読み込みポートにリードバッファをキャッ
シュ1ライン分以上備えたり、キャッシュラインのリプ
レース(データ置換)を速やかに行うため、書き戻しポ
ートに外部記憶装置へのコピーバックを外部バスの空き
サイクルまで待たせるための、コピーバックバッファを
キャッシュメモリの1ライン分以上備えるといったデー
タキャッシュメモリのノンブロッキング化を行っている
構成は既に提供されている。
【0007】このように、マイクロコンピュータ等のデ
ータ処理装置の高性能化のために内蔵もしくは外付けし
たキャッシュ・メモリに対しては、予測できる範囲で命
令をプリフェッチしたり、或いは前記リードバッファに
よって極く一部のデータを先取りしているに留まり、デ
ータ全般に対するプリフェッチ手段の提供は実質的に断
念されていた。これにより、高速化のために備えられた
データキャッシュメモリの性能は十分に生かされていな
かった。
【0008】日経エレクトロニクス95/09/04 pp87-pp10
3 『次世代マルチメディアパソコンMPUでデジタル信号
処理へ』や日経バイト 95/08 pp117-pp140 『来るべき
マルチメディアPCの世界』などを参照するに、今後、マ
イクロプロセッサ若しくはマイクロコンピュータにイメ
ージデータ(静止画/動画)などの処理を行わせようとす
る動きが激しくなると予想され、このとき、データキャ
ッシュメモリへのプリフェッチ機構は、マイクロプロセ
ッサやマイクロコンピュータの性能を引き出す上で益々
その必要性が高まってくると考えられる。
【0009】本発明者は、データキャッシュメモリのデ
ータプリフェッチについて検討するに当たり、例えば、
イメージデータに着目した。イメージデータの構造に着
眼すると、イメージデータは、色や濃淡に対して深さを
持ったデータが2次元に配置されていることに気づく。
また、イメージデータの演算処理手順に着眼すれば、シ
ステムリソースの効率的な利用という観点から、データ
全体を一括して演算処理するのではなく、この2次元に
配置されたデータを小さく枡目に分割し、その分割され
た小さな2次元配列のデータごとに演算処理を施し、こ
の演算処理を全ての枡目に施すことでイメージデータ全
体を演算処理することが行われる。また、イメージデー
タはその性格上、全体を一度にデータキャッシュメモリ
に格納できるほど小さな容量であることは稀で、かつ一
度演算処理が完了したデータが再び用いられる可能性も
低い。つまり、データキャッシュメモリから見れば、演
算処理が開始され処理が終了されるまでの間だけ、該当
する枡目のデータがキャッシュメモリに存在すればマイ
クロコンピュータの処理性能は高い値を維持できること
が、本発明者によって見出された。言い換えれば、中央
処理装置がイメージデータの演算処理を実行している間
に、中央処理装置の演算処理(中央処理装置の命令実
行)とは独立して、現在、処理を実行している枡目のデ
ータの次の枡目のデータを外部記憶装置からデータキャ
ッシュメモリにプリフェッチし、演算処理が完了された
前の枡目のデータをデータキャッシュメモリから外部記
憶装置へ効率良くコピーバックができれば、小容量のデ
ータキャッシュメモリにおいても、中央処理装置の演算
処理性能向上に多大な効果を発揮するであろうことが本
発明者によって見出された。
【0010】本発明の目的は、中央処理装置などの演算
制御装置による初期設定にてデータキャッシュメモリが
自立的にデータプリフェッチ又はデータ書き戻しを行う
ことができるデータ処理装置を提供することにある。
【0011】本発明の別の目的は、イメージデータのよ
うにデータ量は大量だが再利用性の低いデータについて
もプリフェッチと積極的なコピーバックを行ってデータ
キャッシュメモリを利用したデータ処理効率を向上させ
ることができる技術を提供することにある。
【0012】本発明の更に別の目的は、上記データ処理
装置を、ノンブロッキング機能を有するキャッシュメモ
リ装置の構成を極く僅か変えるだけで、換言すれば、コ
ストアップを抑えて実現することにある。
【0013】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0014】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0015】すなわち、データ処理装置(1)は、命令
をフェッチして実行する演算制御装置(2)と、演算制
御装置がフェッチした命令の実行に必要なデータを一時
的に保持するためのデータキャッシュメモリ(4)とを
含む。前記データキャッシュメモリは、複数語のデータ
とそれらに共通の実効アドレス情報とを対応させて格納
する複数の記憶領域(20,21,22)と、演算制御
装置の命令実行によって利用された一定のデータを再利
用可能に前記記憶領域に保持させる第1のキャッシュ制
御部(23,24)、演算制御装置の命令実行によって
初期設定された制御情報に従ってデータを前記記憶領域
に保持させる第2のキャッシュ制御部(25)とを備え
る。
【0016】このように、命令を自身で取り込むことで
一連の動作を行う演算制御装置と共にデータキャッシュ
メモリを有するデータ処理装置は、予め演算処理に必要
とされるデータを演算制御装置とは独立して前記データ
キャッシュメモリに多量に読込むプリフェッチ機能を、
前記第2のキャッシュ制御部を有することによって実現
する。これにより、画像情報やオーディオ情報のように
多量だが再利用性の低いデータなどを演算制御装置によ
る演算処理直前に、高い確率でデータキャッシュメモリ
に保持させ、かつ一旦演算処理が完了したデータを優先
してデータキャッシュメモリから追い出すことができ、
小容量でもデータキャッシュメモリのヒット率を高める
ことができる。したがって、データキャッシュメモリの
本来持つ機能が発揮でき、演算制御装置などの演算処理
性能を最大限に引き出して、演算処理の高速化を実現す
ることができる。
【0017】具体的な態様においては、前記複数個の記
憶領域は、複数語のデータとそれらに共通の実効アドレ
ス情報とを対応させて格納するためのキャッシュライン
(CLINE)を複数ライン備えたキャッシュメモリ部
(20)と、前記キャッシュメモリ部のデータ入力ポー
ト側に配置されたリードデータバッファ(21)と、前
記キャッシュメモリ部のデータ出力ポート側に配置され
たコピーバックバッファ(22)とから構成できる。
【0018】上記リードデータバッファとコピーバック
バッファを備えるとき、前記第1のキャッシュ制御部
(23,24)は、アクセスされるべきデータのアクセ
スアドレス情報に対応される実効アドレス情報を持った
キャッシュラインの存否を判定し、存在する場合にはそ
のキャッシュラインに対して(データ)アクセスを行
い、存在しない場合には前記アクセスアドレス情報に応
ずるデータを含む複数語のデータを外部記憶装置からリ
ードデータバッファに取り込んで(バーストリード)空
き状態のキャッシュラインに格納し、キャッシュライン
から追い出すべきデータが変化されているときはそのキ
ャッシュラインのデータをコピーバックバッファに内部
転送して外部に書き戻し制御(コピーバック)する。す
なわち、データキャッシュメモリは、ノンブロッキング
構造とされる。
【0019】ノンブロッキング構造を有するデータキャ
ッシュメモリにおいて、前記第2のキャッシュ制御部
(25)は、前記キャッシュメモリ部に保持すべきデー
タのアドレス範囲が前記演算制御装置によって初期設定
される第1のレジスタ手段(30,31)と、当該第1
のレジスタ手段に初期設定されたアドレス範囲のアクセ
スアドレス情報を順次生成するアドレス生成手段(3
7)と、当該アドレス生成手段によって生成されたアク
セスアドレス情報を前記第1のキャッシュ制御部に与
え、前記第1のキャッシュ制御部に対し、与えた前記ア
クセスアドレス情報に対応される実効アドレス情報を持
ったキャッシュラインの存否を判定させ、存在しない場
合には前記アクセスアドレス情報に応ずるデータを含む
複数語のデータを外部記憶装置からリードデータバッフ
ァに取り込んで空き状態のキャッシュラインに格納さ
せ、キャッシュラインから追い出すべきデータが変化さ
れているときはそのキャッシュラインのデータをコピー
バックバッファに内部転送して外部に書き戻しさせるロ
ードキャッシュの制御を行うプリフェッチ制御手段(3
4)を備えて構成することができる。
【0020】ロードキャッシュの制御は専らキャッシュ
メモリ部にデータをプリフェッチするための制御であ
る。データプリフェッチのための空き領域を専らキャッ
シュメモリ部に確保するための処理として、ストアキャ
ッシュの制御を前記プリフェッチ制御手段に採用でき
る。このストアキャッシュの制御は、前記アドレス生成
手段によって生成されたアクセスアドレス情報を前記第
1のキャッシュ制御部に与え、前記第1のキャッシュ制
御部に対し、与えた前記アクセスアドレス情報に対応さ
れる実効アドレス情報を持ったキャッシュラインの存否
を判定させ、存在する場合にはそのキャッシュラインが
変化されているかを判定し、変化されている場合には当
該キャッシュラインのデータをコピーバックバッファに
内部転送して外部記憶装置に書き戻しさせる制御であ
る。
【0021】上記具体的な態様に代表されるデータキャ
ッシュメモリは、リードデータバッファとコピーバック
バッファを有するノンブロッキング構造を有するものに
対し、データのバーストリード/コピーバックの制御に
対して若干の制御を追加するプリフェッチ制御手段やプ
リフェッチアドレス生成用のレジスタ類を加えること
で、コストアップを抑えて、上記した演算制御装置など
による演算処理性能を向上されることができる。
【0022】前記第2のキャッシュ制御部は更に、前記
アドレス生成手段が次のアクセスアドレス情報を生成す
るときに用いるアドレスオフセット情報を保持し、それ
が前記演算制御装置によって初期設定される第2のレジ
スタ手段(33)を備えることができる。第2のレジス
タ手段に設定された値によって、データプリフェッチや
コピーバックに際して外部記憶装置に対するアクセス態
様を任意に決定できるから、画像データのように2次元
配列(X−Y座標)される性質のデータに対するアドレス
割り付けの如何に関わらず、任意の態様でデータプリフ
ェッチとコピーバックを行うことができる。
【0023】前記第1及び第2のレジスタ手段を複数組
供え、アドレス生成手段によるアドレス生成に利用する
第1及び第2のレジスタ手段を演算制御装置によって指
定するようにできる。すなわち、ロードキャッシュ又は
ストアキャッシュ制御を多チャンネル化することがでぃ
る。
【0024】前記演算制御装置は、前記プリフェッチ制
御手段に対して、前記ロードキャッシュの制御又はスト
アキャッシュの制御を起動する起動要求信号(35A,
35B)を出力することにより、初期設定動作の後、任
意のタイミングでロードキャッシュ又はストアキャッシ
ュの制御を開始させることができる。
【0025】前記プリフェッチ制御手段は、前記起動要
求信号によって起動されたところの、前記第1のレジス
タ手段に設定されたアドレス範囲の一連のアクセスアド
レス情報に対する前記ロードキャッシュの制御又はスト
アキャッシュの制御を完了した状態を前記演算制御装置
に通知する完了通知信号(36)を出力することによ
り、演算制御装置は次に初期設定動作可能なタイミング
などをいち早く知ることができる。
【0026】前記演算制御装置がフェッチする命令を一
時的に保持するための命令キャッシュメモリ(3)を前
記データキャッシュメモリ(4)とは別に備えることに
より、前記ロードキャッシュ/ストアキャッシュの制御
で外部記憶手段をアクセス可能な機会が演算制御装置に
よる命令フェッチ動作によって少なくなる虞を排除でき
る。データ処理装置は、中央処理装置のような演算制御
装置と共に前記データキャッシュメモリと命令キャッシ
ュメモリを単一の半導体基板に備えてマイクロコンピュ
ータ化することができる。
【0027】前記データ処理装置(1)は、このデータ
処理装置の動作プログラムを保有するための第1の記憶
手段(PRG)と、前記データ処理装置に含まれるデー
タキャッシュメモリによるキャッシュの対象とされる第
2の記憶手段(DATA)とを供え、第2の記憶手段が
保持する画像情報又は音声情報から選ばれた一方又は双
方の情報を、前記第1の記憶手段が保有する動作プログ
ラムに従って符号化又は復号化するデータ処理システム
に適用することができる。例えば画像情報に着目すれ
ば、それに対する演算処理手順はデータ全体を一括して
演算処理するのではなく、2次元に配置されたデータを
小さく枡目に分割し、その分割された小さな2次元配列
のデータごとに演算処理を施し、この演算処理を全ての
枡目に施すことで画像情報全体を演算処理する。また、
画像情報の性格上、全体を一度にデータキャッシュメモ
リに格納できるほど小さな容量であることは稀で、かつ
一度演算処理が完了したデータが再び用いられる可能性
も低い。つまり、データキャッシュメモリから見れば、
演算処理が開始され処理が終了されるまでの間だけ、該
当する枡目のデータがデータキャッシュメモリに存在す
るので、演算制御装置による画像データの演算処理性能
が向上する。
【0028】
【発明の実施の形態】図2には本発明の一実施例に係る
マイクロコンピュータのブロック図が示される。本実施
例に係るマイクロコンピュータ1は、代表的に示された
演算制御装置の一例である中央処理装置(以下単にCP
Uとも記す)2、命令キャッシュメモリ3及びデータキ
ャッシュメモリ4を、単結晶シリコンのような1個の半
導体基板に備え、データキャッシュメモリ4と命令キャ
ッシュメモリ3が分離されたハーバードアーキテクチャ
を有する。また、本実施例のマイクロコンピュータ1
は、外部バスインタフェースとして、代表的に示された
アドレス出力回路5とデータ入出力回路6を有する。ア
ドレス出力回路5は、外部のアドレスバスABUSに結
合され、データ入出力回路6は外部のデータバスDBU
Sに結合されることになる。尚、図2においてはリード
信号、ライト信号、データストローブ信号などのバスア
クセス制御信号などのための外部コントロールバスにつ
いては図示を省略してある。図2において7は、マイク
ロコンピュータ1の外部に配置されたメインメモリや補
助記憶装置などの大容量の外部記憶装置を代表する外部
メモリであり、命令キャッシュメモリ3とデータキャッ
シュメモリ4によるキャッシュの対象とされる。DAT
Aはデータ格納領域、PRGはプログラム格納領域であ
る。
【0029】前記中央処理装置2は、命令キャッシュメ
モリ3を介してフェッチした命令を命令デコーダ10で
デコードし、そのデコード結果に従って、代表的に図示
されたロード/ストア制御部11及び演算制御部12等
にデコード信号を供給する。ロード/ストア制御部11
はロード命令やストア命令に代表されるデータ転送命令
を実行するためのアドレス生成や制御信号(データの方
向を指示するロード/ストア信号LD/ST)の生成を
行う。演算制御部12は、前記デコード信号に基づいて
演算回路13に含まれるレジスタの指定や演算器の操作
を行う。演算対象とされるデータは、CPU2がロード
命令を実行することによってデータキャッシュメモリ4
のセレクタ15からロードデータバスLDBを介して前
記演算回路13のレジスタにロードされ、外部メモリ7
にストアすべきデータは、CPU2がストア命令を実行
することによって、ストアデータバスSTBを介してデ
ータキャッシュメモリ4に供給される。尚、命令フェッ
チのためのプログラムカウンタや命令レジスタ等につい
ては図示していないが、そのプログラムカウンタの値は
命令キャッシュメモリ3に与えられ、それに応ずる命令
を命令キャッシュメモリ3が保有している場合には当該
命令は命令キャッシュメモリ3から命令レジスタに与え
られ、必要な命令を命令キャッシュメモリ3が保有して
いない場合には外部メモリ7のプログラム格納領域PR
Gからその命令を命令キャッシュメモリ3が読込んで命
令レジスタに与える。命令キャッシュメモリ3は、例え
ばプログラムカウンタの値に基づいて、将来利用される
であろうと予想される命令アドレスに対して命令プリフ
ェッチを行う場合もある。
【0030】《データキャッシュメモリのノンブロッキ
ング構造》 データキャッシュメモリ4は、複数語のデ
ータとそれらに共通の実効アドレス情報との格納領域を
有するキャッシュラインを複数ライン備えたキャッシュ
メモリ部20と、前記キャッシュメモリ部20のデータ
入力ポート側に配置されたリードデータバッファ21
と、前記キャッシュメモリ部20のデータ出力ポート側
に配置されたコピーバックバッファ(ライトデータバッ
ファとも称する)22と、キャッシュ制御部23、バー
ストリード/コピーバック制御部24、及びロードキャ
ッシュ/ストアキャッシュ制御部25を主体に構成され
る。前記キャッシュ制御部23及びバーストリード/コ
ピーバック制御部24は、CPU2の命令実行によって
利用された(リードデータバッファ21内の)一定のデ
ータを再利用可能にキャッシュメモリ部20に保持させ
る第1のキャッシュ制御部とされる。前記ロードキャッ
シュ/ストアキャッシュ制御部25はCPU2の命令実
行によって初期設定された制御情報に従ってデータを前
記キャッシュメモリ部20に保持させる第2のキャッシ
ュ制御部とされる。
【0031】キャッシュメモリ部20は、特に制限され
ないが、nワードのデータDW0〜DWn-1を格納するデ
ータ部CDATAと、前記データ部CDATAに格納さ
れたデータに共通の実効アドレス情報を格納するキャッ
シュタグ部CTAGと、ダーティービットDと、バリッ
ドビットVとを有するキャッシュラインCLINEを複
数ライン備える。図においてキャッシュメモリ部20は
ダイレクトマップ形式のように図示されているが、イン
デックスアドレス情報AIDXを共通化してダイレクト
マップを並列配置したようなセットアソシアティブ形式
であってもよい。キャッシュ制御部23のアドレスレジ
スタに格納されたアドレス情報に代表されるように、一
つのキャッシュラインに含まれる複数のワードデータD
W0〜DWn-1から一つのワードデータを選択するための
アドレス情報をワードアドレス情報AW、キャッシュラ
インを選択するためのアドレス情報をインデックスアド
レス情報AIDX、キャッシュタグ部CTAGに格納さ
れるアドレス情報をタグアドレス情報ATAGと称す
る。
【0032】前記バリッドビットVはそれを含むキャッ
シュラインの有効(実在又は確定)性をその論理値によ
って示し、例えば論理値”1”が有効、”0”が無効を
意味する。ダーティービットDは、外部メモリ7とのア
クセスを極力少なくするコピーバック方式のデータキャ
ッシュメモリにおいて、キャッシュメモリ部20の内容
が更新され外部メモリ7の内容に対し、キャッシュメモ
リ部20のみが最新情報を記憶しているとき、適時(キ
ャッシュ・ラインの入れ替え時(リプレース))に外部メ
モリ7に書き戻し(コピーバック)が必要であることをそ
の論理値によって示し、例えば論理値”1”がコピーバ
ック必要、”0”がコピーバック不要を意味する。キャ
ッシュメモリ部は、例えばSRAM(スタティック・ラ
ンダム・アクセス・メモリ)によって構成することがで
き、また、データ部CDATAとキャッシュタグ部CT
AGは別々のSRAMによって構成される場合が多い。
【0033】前記リードデータバッファ21は、所定の
キャッシュラインCLINEにエントリとして新たなデ
ータを格納するためのバッファ、若しくはデータをプリ
フェッチするときのバッファとして機能される。このリ
ードデータバッファ21は、概略的には少なくとも一つ
のキャッシュラインCLINEに相当するデータ記憶領
域を有し、キャッシュラインと同様にnワードのデータ
部RBDATA、バリッドビットV及びリードバッファ
タグ部RBTAGを有する。ダーティービットDは不要
である。リードバッファタグ部RBTAGはタグアドレ
ス情報ATAGの格納領域を有する。更に、リードデー
タバッファ21の内容を書き込むべきキャッシュライン
を選択するために必要なインデックスアドレス情報AI
DXを、リードデータバッファが保有しなければならな
い場合には、リードバッファタグ部RBTAGはタグア
ドレス情報ATAGと共にインデックスアドレス情報A
IDXも保有する。更に、ロードキャッシュビットLC
及びリード完了ビットRCを有する。リード完了ビット
RCは、外部メモリ7からデータ部RBDATAにnワ
ードのデータDW0〜DWn-1を読込み完了したことを示
すビットであり、読込み開始してから完了するまでの間
は例えば論理値”0”にされる。ロードキャッシュビッ
トLCは、リードデータバッファ21に読込んだデータ
を無条件にキャッシュメモリ部20に転送許可か否かを
示すビットであり、”1”は転送可、”0”は不可を意
味する。
【0034】リードデータバッファ21のデータ部RB
DATAには、外部メモリ7からリードデータバスRD
Bに読込まれたデータがセレクタ17を介して供給され
る。リードデータバッファ21のデータ部RBDATA
が保有するデータは、キャッシュメモリ部21のデータ
入力ポートを介してそのデータ部CDATAに並列的に
内部転送可能にされる。リードバッファタグ部RBTA
Gが保有するタグアドレス情報はキャッシュタグ部CT
AGに内部転送可能にされる。
【0035】前記コピーバックバッファ22は、コピー
バック制御に利用されるバッファであり、概略的には少
なくとも一つのキャッシュライン分のデータ記憶領域を
有し、キャッシュラインと同様にnワードのデータ部C
BDATA、バリッドビットV、コピーバックバッファ
タグCBTAG、及びコピー完了ビットCCを有する。
ダーティービットDは不要である。コピーバックバッフ
ァタグCBTAGはタグアドレス情報ATAGとインデ
ックスアドレス情報AIDXの格納領域を含み、これに
格納されたアドレス情報によってコピーバック先のアド
レスを特定する。コピー完了ビットCCは、コピーバッ
クバッファ22に所定のキャッシュラインの情報が転送
されてから、それが外部メモリ7に書き戻し完了される
まで論理値”0”に保たれる。バリッドビットVは、書
込み完了された後に無効を意味する論理値に変更され
る。
【0036】コピーバックバッファ22のデータ部CB
DATAは、キャッシュメモリ部20のデータ部CDA
TAから並列的にデータの転送を受ける。コピーバック
バッファ22が保有するデータは、セレクタ19を介し
てライトデータバスWDBに供給可能にされる。
【0037】前記キャッシュ制御部23は、ヒット判定
とキャッシュラインのリプレースを制御する。CPU2
がロード命令又はストア命令を実行するとき、そのアク
セスアドレス情報及びロード/ストア信号LD/STが
キャッシュ制御部23に供給される。キャッシュ制御部
23は、供給されたアドレス情報に含まれるタグアドレ
ス情報ATAGによってキャッシュメモリ部20をイン
デックスする。それによって選択されたキャッシュライ
ンCLINEのキャッシュタグ部CTAGの情報と前記
タグアドレス情報ATAGがコンパレータ26で比較さ
れ、その比較結果信号26Aがヒット判定/リプレース
制御部27に与えられる。更にインデックスされたキャ
ッシュラインのバリッドビットV及びダーティービット
Dがヒット判定/リプレース制御回路27に与えられ
る。同様にリードバッファタグ部RBTAGの情報と前
記タグアドレス情報ATAGがコンパレータ28で比較
され、その比較結果信号28Aがヒット判定/リプレー
ス制御部27に与えられ、更に、リードデータバッファ
21のリード完了ビットRC、ロードキャッシュビット
LC及びバリッドビットVもヒット判定/リプレース制
御部27に与えられる(その伝送経路は図2には図示を
省略している)。
【0038】これによってヒット判定/リプレース制御
部27は、コンパレータ24,28の比較結果信号24
A、28Aによって、そのときのCPU2からのアクセ
スアドレス情報に対応されるデータがキャッシュメモリ
部20又はリードデータバッファ21が保有しているか
否かを判定する。必要なデータがキャッシュメモリ4に
格納されている場合、それが有効か否かはバリッドビッ
トVによって判定される。また、リードデータバッファ
21が現在読込み動作中であるか否かはリード完了ビッ
トRCによって判定される。
【0039】必要なデータがキャッシュラインCLIN
E又はリードデータバッファ21に有効な状態で存在す
る場合をヒットと称する。ヒットの状態がキャッシュメ
モリ部20で得られたとき、ロードの指示に対しては、
前記インデックスされたキャッシュラインのデータ部C
DATAのデータがワードアドレス情報AWによりセレ
クタ15で選択されて演算回路13にロードされる。ス
トアが指示されている場合、ヒットの状態がキャッシュ
メモリ部20で得られたときは、前記インデックスされ
たキャッシュラインのデータ部CDATAの対応するワ
ードに演算回路13から出力されるデータがストアされ
る。このとき当該キャッシュラインのダーティービット
Dを”1”にして、当該ラインのデータが変更されたこ
とを明示する。尚、図示を省略するが、ストアバスST
Bとキャッシュメモリ部20の入力ポートとの間には、
17と同様のワードアドレス情報AWにて出力経路が選
択されるセレクタが設けられている。
【0040】ヒットの状態がリードデータバッファ21
で得られたとき、ロードの指示に対しては図示を省略す
る経路を介してそのデータ部RBDATAのデータがセ
レクタ15に供給され、ワードアドレス情報AWによっ
て選択されて演算回路13にロードされる。その後、リ
ードデータバッファ21の情報は後述のリプレース制御
を介してキャッシュメモリ部20に格納される。このと
き前記ロードキャッシュビットLCは”1”にされてい
る。ストアが指示されている場合に、ヒットの状態がリ
ードデータバッファ21で得られたときは、図示を省略
する経路を介して演算回路13のデータがセレクタ17
に供給され、セレクタ17がワードアドレス情報AWで
制御されることにより、そのデータがリードバッファデ
ータ部RBDATAの所要のワードに格納される。その
後、後述のリプレース制御が行われ、リードデータバッ
ファ21の情報は新たなエントリとしてキャッシュメモ
リ部21に追加される。このときロードキャッシュビッ
トLCは同じく”1”にされている。
【0041】必要なデータがキャッシュラインCLIN
Eとリードデータバッファ21の何れにも存在しない場
合、或いは存在しても無効な状態で存在する場合をミス
ヒットと称する。キャッシュ制御部23は、ミスヒット
を検出すると、そのときのアクセスアドレスをバースト
リード/コピーバック制御部24に与え、外部メモリ7
から、必要なデータをリードデータバッファ21に読込
むバーストリード制御を起動させる。リードデータバッ
ファ21へのバーストリード制御の詳細については後で
説明するが、ロードが指示されているときは、リードデ
ータバッファ21へのバーストリードが完了されるのを
待つことなく、リードデータバスRDBに読込まれたデ
ータをセレクタ15で選択してロードすべきデータが演
算回路13に供給されるようになっている。ストアが指
示されているときは、リードデータバッファ21にデー
タが読込まれると、読込まれたデータは、後述のリプレ
ース制御を介してキャッシュメモリ部20の所定のキャ
ッシュラインに格納される。そしてこのキャッシュライ
ンに対しては、ストアすべきデータの入れ替えが行われ
る。キャッシュミスに際して前記ロードキャッシュビッ
トLCは”1”に設定されている。
【0042】前記リプレース制御は、リードデータバッ
ファ21が保持する情報をキャッシュメモリ部20に格
納する制御であり、キャッシュ制御部23は、キャッシ
ュミス等によってリードデータバッファ21へのデータ
読込みが完了されると、キャッシュメモリ部20におい
て、バリッドビットVが無効を明示しているキャッシュ
ラインがあるかを調べ、それが存在する場合には、当該
キャッシュラインにリードデータバッファ21の内容を
書き込み制御する。バリッドビットVが無効を明示して
いるキャッシュラインが存在しない場合は、LRU(Le
ast Recentry Used)等のアルゴリズムに従って、優先
度の低いキャッシュラインを選択し、当該キャッシュラ
インにリードデータバッファ21の内容を書き込み制御
する。このとき、書込み対象キャッシュラインのダーテ
ィービットDがコピーバックの必要性を明示している場
合には、当該キャッシュラインを書き換える前に、その
キャッシュラインの情報をコピーバックバッファ22に
内部転送しておく。尚、データのプリフェッチを前提に
していない場合には、リードデータバッファに読み込ん
だデータは、必ずキャッシュにリプレースされるため、
予め決めたラインがダーティーなら、リードデータバッ
ファへの読み込み開始以前か並行してコピーバックバッ
ファにデータを内部転送するのが一般的である。
【0043】バーストリード/コピーバック制御部24
は、外部メモリ7からリードデータバッファ21へのバ
ーストリード制御と、コピーバックバッファ22から外
部メモリ7へのコピーバック制御を行う。
【0044】バーストリード/コピーバック制御部24
は、キャッシュ制御部23からバーストリードが指示さ
れると、キャッシュ制御部23から転送されるアドレス
情報を受け取る。このときのワードアドレス情報AWは
ワードカウンタWCNTにプリセットされる。ワードカ
ウンタWCNTはデータ部RBDATAのワード数に応
ずるビット数を有するカウンタであり、それにプリセッ
トされた値を初期値とし、順次ワードカウンタWCNT
の値を更新しながら、タグアドレス情報ATAG、イン
デックスアドレス情報AIDX及びワードカウンタWC
NTの値をアクセスアドレス情報として外部メモリ7を
リードアクセスする。例えばワード単位でアクセスされ
たデータは、ワードカウンタWCNTの値によって選択
制御されるセレクタ17によってリードデータバッファ
21の対応するワードに順次格納され、ワードカウンタ
WCNTが一巡されることによって、リードデータバッ
ファ21へのデータDW0〜DWn-1のバーストリードが
完了される。前記ミスヒットに起因して指示されたバー
ストリードの場合、それが完了されると、キャッシュ制
御部23は、リードデータバッファ21の内容をキャッ
シュメモリ部20に転送制御する。
【0045】前記バーストリードは、キャッシュミスに
起因して起動される他、特に制限されないが、第1のデ
ータプリフェッチ又は第2のデータプリフェッチの指示
によっても起動される。第1のデータプリフェッチは、
キャッシュヒットの状態に続けてキャッシュ制御部23
から指示される。第2のデータプリフェッチは、後述す
るロードキャッシュ/ストアキャッシュ制御部25から
の指示に基づいて起動される。第1のデータプリフェッ
チは、特に制限されないが、キャッシュヒットが検出さ
れたとき、ヒットに係るキャッシュラインが保有してい
るデータに対してアドレスが連続するデータを別のキャ
ッシュラインやリードデータバッファ21が保有せず、
且つ、リードデータバッファ21が有効なデータを保有
せず現在動作されていないことを条件に、上記ヒットに
係るキャッシュラインが保有するデータに対してアドレ
スが連続する次のデータをバーストリードによってリー
ドデータバッファ21にプリフェッチする動作である。
第1のプリフェッチ動作の起動によってリードデータバ
ッファ21にプリフェッチされたデータは、それが1度
利用されることを条件に、キャッシュメモリ部20に格
納される。即ち、第1のデータプリフェッチに際して、
前記ロードキャッシュビットLCは”0”に設定され、
プリフェッチされたデータは無条件でキャッシュメモリ
部20に転送されず、一度利用されて初めてキャッシュ
メモリ部20に転送される。第1のプリフェッチ動作に
よってリードデータバッファ21にプリフェッチされた
データはそれが利用されなければリードデータバッファ
21残ることになるが、キャッシュミスヒットが検出さ
れた場合におけるバーストリードは、リードデータバッ
ファ21が動作されていない限り、そのバリッドビット
VやロードキャッシュビットLCに関係なく強制的に行
われるため、第1のプリフェッチにてプリフェッチされ
たデータがいつまでもリードデータバッファ21に残る
不都合はないように考慮されている。第2のプリフェッ
チについての詳細は後述する。
【0046】バーストリード/コピーバック制御部24
は、コピーバックバッファ22の格納データが有効であ
ることをバリッドビットVによって検出し、且つ、コピ
ーバックバッファ22へのデータ転送が完了しているこ
とをコピー完了ビットCCによって検出すると、外部バ
ス(DBUS,ABUS)が空いているタイミングを利
用して、コピーバックバッファ22のデータ部CBDA
TAに格納されているデータを順次セレクタ19で選択
して外部メモリ7に書込み制御を行う。書込みアドレス
は、コピーバックバッファ22のコピーバックバッファ
タグ部CBTAGが保有しているタグアドレス情報AT
AGとインデックスアドレス情報AIDXがバーストリ
ード/コピーバック制御部に24に与えられて特定され
る。ワードアドレス情報はワードカウンタWCNTを一
巡させて順次生成される。セレクタ19の選択制御はワ
ードカウンタWCNTの出力によって行われる。コピー
バックが完了した後、コピーバックバッファ22のバリ
ッドビットVが”0”にされ、それが保有するデータが
無効であることを表明する。
【0047】《ロードキャッシュ/ストアキャッシュ制
御》 次に、前記ロードキャッシュ/ストアキャッシュ
制御部25について詳細を説明する。図2はノンブロッ
キング化のための構成を主体としてキャッシュメモリ装
置を図示してあり、前記ロードキャッシュ/ストアキャ
ッシュ制御部25については簡略化されて図示されてい
る。図1は図2では簡略化されて図示されているところ
のロードキャッシュ/ストアキャッシュ制御部25を主
体として図2と同じマイクロコンピュータを示してい
る。
【0048】ロードキャッシュ/ストアキャッシュ制御
部25は、前述の通り、リードデータバッファ21とコ
ピーバックバッファ22を備えることによって実現され
るノンブロッキング機構を有するデータキャッシュメモ
リ4にCPU2の動作とは独立してデータキャッシュメ
モリ4へのロード/ストアを行う一種のデータキャッシ
ュメモリへのダイレクトメモリアクセス(DMA)制御
手段のように機能されるものである。CPU2は、ロー
ドキャッシュ/ストアキャッシュ制御部25にデータ転
送の開始ならびに終了アドレス等を動作開始時ならびに
任意のタイミングで書き替え可能にされ、バスが空いて
いる適時に外部メモリ7からデータキャッシュメモリ4
への必要なデータのプリフェッチ、そして、データキャ
ッシュメモリ4のヒット率を高めるために、演算処理が
完了したデータをデータキャッシュメモリ4から外部メ
モリ7へコピーバックさせる制御を行う。
【0049】ロードキャッシュ/ストアキャッシュ制御
部25は、図1に例示されるように、キャッシュライン
アドレスレジスタ30、エンドアドレスレジスタ31、
アドレスコンパレータ32、オフセットアドレスレジス
タ33、アドレス加算器37及びプリフェッチ制御回路
34を備えている。前記キャッシュラインアドレスレジ
スタ30、エンドアドレスレジスタ31及びオフセット
アドレスレジスタ33は、CPU2によって初期設定さ
れる。キャッシュラインアドレスレジスタ30には、プ
リフェッチすべきデータの先頭アドレスが設定され、エ
ンドアドレスレジスタ31にはプリフェッチすべきデー
タの最終アドレス(エンドアドレス)が設定される。設
定されるアドレス情報は、CPU2が管理するアドレス
空間におけるフルアドレス(アドレス情報の全ビット)
であっても、或いはワードアドレス情報を除いた上位側
のアドレス情報即ちタグアドレス情報ATAGとインデ
ックスアドレス情報AIDX(単にキャッシュラインア
ドレス情報とも称する)だけであってもよい。以下の実
施例では、キャッシュラインアドレス情報の場合につい
て説明する。オフセットアドレスレジスタ33には、一
つのキャッシュラインCLINEに含まれるキャッシュ
データ部CDATAの先頭ワードと終端ワードとの間の
データ語数を単位とするアドレスオフセット情報が格納
される。例えば、外部メモリ7のアドレスがワードを単
位とするアドレス(ワードアドレス)であって一つのリ
ードバッファデータ部RBDATAの語数が8ワードで
ある(キャッシュデータ部CDATAのデータ語数でも
ある)とするならば、前記オフセット情報が”1”であ
る場合は、1キャッシュライン分のキャッシュデータ部
CDATAに相当するアドレスオフセットを意味し、前
記オフセット情報が”2”である場合は、2キャッシュ
ライン分のキャッシュデータ部CDATAに相当するア
ドレスオフセットを意味する。キャッシュラインアドレ
スレジスタ30はテンポラリなアドレスレジスタとして
機能され、それに初期設定されたアドレス情報は、アド
レス加算器37によって順次オフセットアドレスレジス
タ33に設定されたオフセット情報が加算されて更新さ
れる。したがって、1キャッシュライン分のアドレスオ
フセット情報(“1”)が設定されている場合には、キ
ャッシュラインアドレスレジスタ30の値に従って連続
したアドレスのデータがプリフェッチされることにな
る。2キャッシュライン分のアドレスオフセット情報
(“2”)が設定されている場合には、1キャッシュラ
イン飛びのデータプリフェッチ、すなわち、1キャッシ
ュライン分のデータをプリフェッチした後は、次の1キ
ャッシュライン分のデータアドレスを飛び越えて、その
次の1キャッシュライン分のデータがプリフェッチされ
ることになる。更新された前記キャッシュラインアドレ
スレジスタ30のアドレス情報は、アドレスコンパレー
タ32によりエンドアドレスレジスタ31の設定値と比
較される。
【0050】前記プリフェッチ制御部34は、CPU2
からロードキャッシュ/ストアキャッシュの起動要求が
あると、前記キャッシュラインアドレスレジスタ30の
出力によって、データプリフェッチ(第2のデータプリ
フェッチ)及び書き戻しの制御を前記キャッシュ制御部
及びバーストリード/コピーバック制御部24を利用し
て行う。35Aはロードキャッシュの起動要求信号、3
5Bはストアキャッシュの起動要求信号であり、CPU
2の命令デコーダ10で生成されて供給される。また、
前記プリフェッチ制御部34はリードデータバッファ2
1とコピーバックバッファ22のフル/エンプティーの
状態を検出する。リードデータバッファ21のエンプテ
ィー状態とは、外部メモリ7からのデータ読込み動作が
行われておらず、また、キャッシュミスに起因して読込
まれたデータがキャッシュメモリ部20に転送完了され
ている状態である。この状態はリード完了ビットRC
=”1”及びバリッドビットV=”0”(ロードキャッ
シュビットLCは不問)又は、リード完了ビットRC
=”1”、バリッドビットV=”1”及びロードキャッ
シュビットLC=”0”によって検出される。後者は前
記第1のプリフェッチによってリードデータバッファ2
1にデータがプリフェッチされたままになっている状態
である。その他の状態がリードデータバッファ21のフ
ル状態である。コピーバックバッファ22のエンプティ
ー状態とは、コピー完了ビットCCが”1”でバリッド
ビットVが”0”の状態によって検出される。その他の
状態がコピーバックバッファ22のフル状態である。
【0051】前記ロードキャッシュ/ストアキャッシュ
制御部25は、キャッシュラインアドレスレジスタ3
0、エンドアドレスレジスタ31及びオフセットアドレ
スレジスタ33をそれぞれ備えた制御チャネルを複数チ
ャネル備えることができる。この場合に、ロードキャッ
シュ/ストアキャッシュの起動は制御チャネルを指定し
て行われることになる。例えば起動要求信号35A,3
5Bを制御チャネル毎に設けることができる。
【0052】ロードキャッシュ/ストアキャッシュ起動
前には、レジスタ間データ転送命令(MOV命令など)
によってキャッシュラインアドレスレジスタ30、エン
ドアドレスレジスタ31、及びオフセットアドレスレジ
スタ33の初期設定が行われる。キャッシュラインアド
レスレジスタ30には転送開始キャッシュラインアドレ
ス、エンドアドレスレジスタ31には転送終了キャッシ
ュラインアドレス、オフセットアドレスレジスタ33に
はキャッシュラインアドレスへの加算値がそれぞれ初期
設定される。制御チャネルが複数存在する場合には各レ
ジスタは制御チャネル毎に別々のアドレスが割り当てら
れている。そのような初期設定は、処理に必要な単数又
は複数の制御チャネルに対して行われる。データの転
送、即ち、データプリフェッチを行うロードキャッシュ
(LDC)又は専らコピーバックを行うストアキャッシ
ュ(STC)が完了した制御チャネルには適宜のタイミ
ングで再設定を行うことで、次の転送のための初期設定
が行われる。
【0053】上記の設定が完了した制御チャネルに対し
ては、任意の時点でCPU2はLDCまたはSTCを起
動する命令を実行し、LDC又はSTCの起動要求信号
35A又は35Bを活性化する。制御チャネルの指定
は、制御チャネル毎に設けられた起動要求信号35A、
35Bで行えばよく、LDCまたはSTCを起動する命
令には、制御チャネルの識別子を設けておけばよい。
【0054】図3にはLDCが起動されたときに行われ
るプリフェッチ制御回路34での制御手順のフローチャ
ートが示される。LDCが起動されると、プリフェッチ
制御回路34はリードデータバッファ21がエンプティ
状態であるか否かを、RC,V,LCの各ビットから判
定する(ステップS1)。プリフェッチ制御回路34
は、エンプティ状態であることを検出すると、今度は、
キャッシュメモリ部20のキャッシュラインCLINE
単位で、以下の処理を行う。先ず、キャッシュラインア
ドレスレジスタ30から出力されるキャッシュラインア
ドレスに対応されるキャッシュラインが有効な状態で存
在するか否かが判定される(ステップS2)。即ち、そ
のキャッシュラインアドレス情報をキャッシュ制御部2
3に与え、それに含まれるインデックスアドレス情報A
IDXにてキャッシュメモリ部20をインデックスさ
せ、それによってコンパレータ26から得られる信号2
6Aと、インデックスされたキャッシュラインCLIN
EのバリッドビットVとから、判定する。
【0055】有効なキャッシュラインが存在する場合に
は、そのキャッシュラインアドレスに対して外部メモリ
7からリードデータバッファ21へのデータプリフェッ
チ動作を含むデータロードの処理は必要ない。この場合
には、前記アドレス加算器37が、キャッシュラインア
ドレスレジスタ30の値にオフセットアドレスレジスタ
33のオフセット値を加算してキャッシュラインアドレ
ス情報を更新する。
【0056】有効なキャッシュラインが存在しない場合
にはキャッシュメモリ部20にキャッシュラインの空き
があるかを判定する(ステップS4)。この判定は、キ
ャッシュメモリ部20でインデックスされたキャッシュ
ラインCLINEが含むバリッドビットVとダーティー
ビットDを参照することによって判定される。尚、前記
キャッシュラインの空きの判定において、クリーンの場
合(D=”0”、V=”1”)には、すでに読み込んだ
にもかかわらず、更新される前に無効になったキャッシ
ュラインが存在することをCPUに(プログラムに)知
らせるために、警告を発生するようにしてもよい。この
警告は、データ処理のパフォーマンスを解析する場合に
利用することができる。
【0057】有効なキャッシュラインが存在せず、キャ
ッシュラインが空いている場合には、そのときのキャッ
シュラインアドレス情報をバーストリード/コピーバッ
ク制御部24に与え、そのキャッシュラインアドレス情
報に従って外部メモリ7からリードデータバッファ21
へのバーストリード動作をさせる。このときロードキャ
ッシュ/ストアキャッシュ制御部25はロードキャッシ
ュビットLCを”1”に設定することにより、バースト
リード/コピーバック制御部24は、リードデータバッ
ファ21にバースト転送されたデータを、すぐに前記空
いているキャッシュラインに内部転送し、その後、リー
ドデータバッファ21のバリッドビットVを”0”に変
更する(ステップS5)。即ちこの処理は、図3のステ
ップS5においてLDと記載され、CPU2がキャッシ
ュメモリ2をアクセスしていない間隙を縫って行われる
ところの、外部メモリ7からリードデータバッファ21
への1キャッシュライン分のバーストリードと、同じく
CPU2によってキャッシュメモリ部20がアクセスさ
れていない間隙を縫って行われるところの、リードデー
タバッファ21からキャッシュラインへの書込みの一連
の動作を意味する。その後、前記ステップS3の処理を
行ってキャッシュラインアドレスを更新する。
【0058】有効なキャッシュラインが存在せず、しか
もキャッシュラインが空いていない場合には、コピーバ
ックバッファ22がエンプティー状態であるか否かをコ
ピーバック完了ビットCCなどを参照し、外部メモリ7
への転送完了かつキャッシュメモリ部20からの読み込
みがなされていないかを判定する(ステップS6)。コ
ピーバックバッファ22がエンプティー状態であるなら
ば、ダーティなキャッシュライン(D=”1”のキャッ
シュライン)に対し、LRU等の論理に従って優先度の
低いものをコピーバックバッファ22に内部転送させる
(ステップS7)。内部転送制御はキャッシュ制御部2
3が行う。コピーバックバッファ22への内部転送によ
って空いたキャッシュラインには、前記ステップS1の
判定に戻った後、リードデータバッファ21のデータが
書き込まれる。その後、前記ステップS3の処理にてキ
ャッシュラインアドレスの更新が行われる。コピーバッ
クバッファ22に送られたデータは、外部バスが空いた
時点で、バーストリード/コピーバック制御部24が外
部メモリ7に書込み制御する。前記有効なキャッシュラ
インが存在せず、しかもキャッシュラインが空いていな
い場合に、コピーバックバッファ22がフル状態である
ならば、それがエンプティー状態になるまで待って、上
記動作が行われることになる。
【0059】上記動作は、キャッシュラインアドレス>
エンドキャッシュラインアドレスがアドレスコンパレー
タ32で判定されるまで繰り返される(ステップS
8)。アドレスコンパレータ32はその条件を検出する
と、LDC完了通知信号36(LDC-END発行)によって
LDC動作の完了をCPU2に通知し(ステップS
9)、LDC動作を完了する。このLDC完了通知信号
36は例えば割込み信号とされ、これによってCPU2
は、別の制御チャネルに対するLDC/STCの起動、
或いは制御チャネルに対する新たな制御情報の初期設定
が可能であることを直接的に認識する。
【0060】図4にはSTCが起動されたときに行われ
るプリフェッチ制御回路34での制御手順のフローチャ
ートが示される。STCが起動されると、プリフェッチ
制御回路34はコピーバックバッファ22がエンプティ
ー状態であるか否かを判定する(ステップS10)。コ
ピーバックバッファ22がエンプティー状態の時、制御
回路34は、キャッシュメモリ部20のキャッシュライ
ンCLINE単位で、以下の処理を行う。先ず、キャッ
シュラインアドレスレジスタ30から出力されるキャッ
シュラインアドレスに対応されるキャッシュラインが有
効な状態で存在するか否かが判定される(ステップS1
1)。有効なキャッシュラインが存在しない場合には、
外部メモリ7へのストア処理を行わず、キャッシュライ
ンアドレスレジスタ30の値にオフセットレジスタ33
のオフセット値を加算してキャッシュラインアドレス情
報を更新する(ステップS12)。
【0061】有効なキャッシュラインが存在する場合に
は、そのキャッシュラインがダーティーかクリーンかを
判定する(ステップS13)。有効なキャッシュライン
は存在するが、当該キャッシュラインがクリーンである
場合にも、外部メモリ7へのストア処理を行わず、前記
ステップS12の処理にてキャッシュラインアドレスを
更新する。クリーンの場合には、そのキャッシュライン
を無効にする処理又は前記と同様に警告を発生する処理
を加えても良い。
【0062】有効なキャッシュラインが存在し、しか
も、当該キャッシュラインがダーティーの場合には、コピ
ーバックバッファ22が保有しているデータを外部メモ
リ7にバースト転送してコピーバックを行う(ステップ
S14)。ここで言うコピーバックとは、CPU2がキ
ャッシュメモリにアクセスしていない間隙をぬってキャ
ッシュメモリ部からコピーバックバッファへのデータロ
ードと、外部バスが空いた時点でコピーバックバッファ
22から外部メモリへの1キャッシュライン分のデータ
のコピーバックとの一連の動作を意味するものである。
コピーバック処理の後は、ステップS12の処理にてキ
ャッシュラインアドレスを次のアドレスに更新する。
【0063】上記動作は、キャッシュラインアドレス>
エンドキャッシュラインアドレスがアドレスコンパレー
タ32で判定されるまで繰り返される(ステップS1
5)。アドレスコンパレータ32はその条件を検出する
と、STC完了通知信号36(STC-END発行)によって
STC動作の完了をCPU2に通知し(ステップS1
6)、STC動作を完了する。この信号36は例えば割
込み信号とされ、これによってCPU2は、別の制御チ
ャネルに対するSTC又はLDCの起動、或いは制御チ
ャネルに対する新たな制御情報の初期設定などが可能で
あることを直接的に認識する。
【0064】本実施例では、CPU2による演算処理を
最優先にするために、ロードキャッシュ/ストアキャッ
シュ(LDC/STC)に対して、CPU2の命令実行
によるロード/ストアを優先させるものとされる。その
制御のためには、キャッシュ制御部23が、CPU2か
らのアクセス要求とロードキャッシュ・ストアキャッシ
ュ制御部25からのアクセス要求とをそのように調停す
る。CPU2による命令フェッチとの関係においては、
命令キャッシュメモリ4の制御部とデータキャッシュメ
モリ3の制御部との間では相互に外部バスアクセスが競
合しないように排他的にバーストリード及びコピーバッ
クが認められるようになっている。
【0065】前記ロードキャッシュの制御は専らキャッ
シュメモリ部20にデータをプリフェッチするための制
御である。この制御において、データプリフェッチのた
めの空き領域の確保を、データプリフェッチに並行する
コピーバックの制御で実現している。前記ストアキャッ
シュの制御は、データプリフェッチのための空き領域を
専らキャッシュメモリ部20に確保するための処理とさ
れ、新たなデータプリフェッチは行わない制御とされ
る。
【0066】《JPEGへの応用》 次に、上記実施例
のデータキャッシュメモリ4における前記LDCやST
Cによるデータプリフェッチの適用例を説明する。画像
情報や音声情報等のマルチメディア情報の通信を効率的
に実現するための情報符号化(情報圧縮)技術の国際標
準として例えばDCT(Discrete Cosine Transfer=離
散コサイン変換)方式によるJPEG(Joint Photogra
phic Expert Group)がある。図5にはJPEGに対応
する符号化系と復号化系の基本的なブロック図が示され
る。符号化器40は原画像の情報を離散コサイン変換
(DCT)し、これを量子化した後に、例えばハフマン
符号化して、パラメータと共に符号化されたデータを伝
送路41に出力可能にする。復号化器42は、パラメー
タと共に符号化されたデータが伝送路41から供給され
たとき、それをハフマン復号化し、逆量子化を行った
後、逆離散コサイン変換(IDCT)を施して再生画像
を生成する。量子化及び逆量子化にはその規則が格納さ
れた量子化テーブル43が参照され、また、ハフマン符
号化及びハフマン復号化にはその規則が格納された符号
化テーブル44が参照される。
【0067】前記符号化器40及び復号化器42は上記
実施例に係るマイクロコンピュータ1で実現される。換
言すれば、高い演算処理能力を有するCPU2により、
符号化及び復号化の処理をソフトウェアを介して実現す
る。このとき、符号化及び復号化のためのプログラムは
前記外部メモリ7から命令キャッシュメモリ3に読込ま
れて利用される。原画像や再生画像のデータは、上記実
施例に従えば外部メモリ7が保持することになるが、演
算処理の過程においては、前記データキャッシュメモリ
4に一時的に読込まれCPU2によって利用される。
【0068】上述の符号化及び復号化の処理は、システ
ムリソースの効率的な利用という観点から、画像データ
全体を一括して演算処理するのではなく、データをブロ
ック分割し、分割されたデータ毎に行われ、順次この処
理が分割されたデータの全てに対して施されることで画
像データ全体を演算処理することができる。例えば画像
データのブロック分割は、図6に示された一つのフレー
ムに着目すると、2次元配列された8×8ピクセル単位
でブロック分割することができる。このとき、画像がフ
ルカラーであれば、1ピクセル当たりのデータ量は24
ビット(例えばR:8ビット、G:8ビット、B:8ビ
ットなど)とされ、前記一つのブロックのデータバイト
数は、8×8×3=192byte(バイト)とされ
る。
【0069】また、画像データの性格上、その全体を一
度に前記データキャッシュメモリ4に格納できるほど小
さな容量であることは稀で、かつ一度演算処理が完了し
たデータが再び用いられる可能性も低い。すなわち、デ
ータキャッシュメモリ4から見れば、演算処理が開始さ
れ処理が終了されるまでの間のみ、該当する枡目のブロ
ックのデータがキャッシュメモリに存在すればCPU2
は外部メモリ7をアクセスするための命令の実行を一時
的に中断することなく、CPU2の演算処理性能は高い
値を維持できることになる。言い換えれば、CPU2が
特定のブロックの画像データに対して演算処理を実行し
ている間に、CPU2の演算処理とは独立して、現在処
理を実行している次の枡目のブロックのデータを外部メ
モリ7からデータキャッシュメモリ4にプリフェッチ
し、かつ演算処理を完了した前のブロックのデータをデ
ータキャッシュメモリ4から外部メモリ7へ効率良くコ
ピーバックができれば、小容量のデータキャッシュメモ
リ4においても性能向上に多大な効果がある。このよう
な観点から、前記データキャッシュメモリ4におけるロ
ードキャッシュ/ストアキャッシュ(LDC/STC)
制御を利用する。LDC/STC制御によるデータプリ
フェッチは、上記実施例の説明から明らかなように、C
PU2の命令実行によってデータキャッシュメモリ4が
動作されず且つ外部バスが利用されない間隙を縫って行
われることになる。したがって、CPU2の命令実行に
よってデータキャッシュメモリ4が間段なく動作されて
いなければ、LDC/STC制御によるデータプリフェ
ッチ及びコピーバックが可能になる。
【0070】図5の例において前記DCT及びIDCT
では、ブロックに分割された各ピクセルのデータに対し
て積和演算が繰り返し行われる。このアルゴリズムの詳
細についてはここでは言及しないが、その内容は例えば
株式会社CQ出版社から発行されたインタフェース(1
991年11月号)の第160頁〜第173頁に記載さ
れた「カラー静止画像の国際標準符号化方式−JPEG
アルゴリズム−」等によって公知である。
【0071】前記積和演算は、演算対象とされるピクセ
ルのデータやパラメータがレジスタに読込まれた後、演
算ルーチンに入って行われる。データキャッシュメモリ
は演算対象とされるピクセルデータをレジスタにロード
するときに利用され、計算ルーチンでは毎回データキャ
ッシュメモリ4が利用されることはなく、それに並行し
てデータキャッシュメモリ4では前記LDC/STC制
御による処理を行うことができる。
【0072】図7〜図10には、DCTやIDCTの演
算を一般化した行列演算のための命令記述の一例が示さ
れる。演算内容は図7の(A)に示される行列演算であ
る。x1,x3,x5,x7は代表的に示されたピクセ
ルのデータ、C1,C3,C5,C7等の行列データは
パラメータである。図7の(B)に示される記述は演算
に必要なパラメータのテーブル(図10の(G)に示さ
れるidctbl)の所在等を特定する情報をレジスタに設定
するための記述である。図7の(C)は演算結果aを求
めるための演算ステップの記述を示し、図8の(D)は
演算結果bを求めるための演算ステップの記述を示し、
図9の(E)は演算結果cを求めるための演算ステップ
の記述を示し、図10の(F)は演算結果dを求めるた
めの演算ステップの記述を示し、図10の(G)はパラ
メータテーブル等の記述を示す。ピクセルデータx1,
x3,x5,x7は、CPU2がロード命令を実行し
て、データキャッシュメモリ4からCPU2の内蔵レジ
スタbuf[1],buf[3],buf[5],buf[7]((C)〜(F)参
照)にロードされる。ロードされたデータに対する個々
の命令記述の詳細については説明を省略するが、要は、
(C)〜(F)に示されるところのピクセルデータx
1,x3,x5,x7に対する演算ステップでは、CP
U2はロードやストア命令を頻繁に実行しないというこ
とである。演算結果a,b,c,dは、CPU2がスト
ア命令を実行してデータキャッシュメモリ4に与えられ
る。この例からも明らかなように、データキャッシュメ
モリ4は演算対象とされるピクセルデータをCPU2の
内部レジスタへロードし、そして演算結果を上記レジス
タからメモリにストアするときに利用され、計算ルーチ
ンでは毎回データキャッシュメモリ4が利用されること
はなく、この計算ルーチンに並行してデータキャッシュ
メモリ4では前記LDC制御やSTC制御の処理を行う
ことができ、かつCPU2の性能が低下することもな
い。
【0073】次に、ブロック分割した画像データに対し
前記DCT、IDCT演算等を行うときのデータキャッ
シュメモリ4におけるLDC制御動作の一例を図11を
も参照しながら説明する。図11には画像データがビッ
トマップイメージで示されており、理解を容易化するた
めに、画像データを8×8ピクセルの大きさのブロック
に4分割し、各ピクセルのデータは1ワードとする。外
部メモリ7における画像データのアドレス配置は、図1
1の(A)では図の左上から右下に向く順番とされ、
(B)ではブロック単位で図の左上から右下に向く順番
とされている。このとき、データキャッシュメモリ4の
1キャッシュラインDLINEにおけるキャッシュデー
タ部CDATAのデータ記憶領域を8ワードとする。
【0074】例えばCPU2は、第1ブロックBLK1
に含まれるピクセルPiの画像データに対するDCT演
算を次に行うものとする。このとき、当該第1ブロック
BLK1の全ての画像データは既にデータキャッシュメ
モリ4に読込まれているものとする。CPU2は既に、
ロードキャッシュ/ストアキャッシュ制御部25に、次
のDCT演算の対象とするデータブロックBLK2に対
するLDCのためのレジスタ設定を行っているものとす
る。図11の(A)の場合、レジスタ30にはスタート
キャッシュラインアドレスとしてピクセルPmのデータ
アドレスが設定され、レジスタ31にはピクセルPm+6
3のデータアドレスが設定され、レジスタ33には加算
数2(2キャッシュラインアドレス分のオフセット)が
設定されている。図11の(B)の場合にはレジスタ3
3には加算数1(1キャッシュラインアドレス分のオフ
セット)が設定されている。そしてCPU2から制御部
25にLDCの起動要求が与えられている。
【0075】今、CPU2はピクセルPiのデータをフ
ェッチするためにロード命令を実行すると、当該データ
がCPU2の演算回路13に含まれるレジスタにロード
される。ロードされたデータは、前述のような演算ルー
チンによってDCT演算などに供される。演算ルーチン
の期間において、CPU2はキャッシュメモリ2を動作
させていない。ロードキャッシュ/ストアキャッシュ制
御部25は、図3で説明した制御を行っており、次にプ
リフェッチすべきキャッシュラインアドレスに対応され
る有効なキャッシュラインが存在せず、リードデータバ
ッファ21がエンプティー状態で、しかも無効若しくは
クリーンなキャッシュラインが存在する場合には、その
演算ルーチンの期間に、当該キャッシュラインアドレス
に対応される画像データのバーストリードを実行させ、
それによってリードデータバッファ21に読込んだ画像
データを当該空きのキャッシュラインにセットする。ま
た、CPU2はピクセルPiの画像データに対してDC
T演算等を完了すると、CPU2は演算完了された画像
データを元のメモリアドレスにストアする命令を実行す
る。これによって当該演算されたピクセルデータは元の
キャッシュラインに書き込まれ、そのキャッシュライン
のダーティービットDが”1”にされる。このようにし
てキャッシュラインのデータが更新されると、その後の
LDC制御処理においてキャッシュラインに空きがない
ような場合に、当該更新されたキャッシュラインがコピ
ーバックバッファ22に転送され、プリフェッチ可能な
キャッシュラインが確保されることになる。本実施例の
マイクロコンピュータ1はハーバードアーキテクチャー
とされ、命令キャッシュメモリ3を備えているから、演
算ルーチンのためのCPU2による命令フェッチによっ
て前記LDC制御によるデータプリフェッチが完全に妨
げられることはない。
【0076】図12は上記実施例のマイクロコンピュー
タ1をSTB(Set Top Box)に適用した場合のブロッ
ク図である。図に示されるSTBは、人工衛星から配信
された動画像を再生するためのコントローラであり、チ
ューナ50で受信した信号をQPSK復調回路51で復
調し、FEC(Forward Error Correction)52で誤り
訂正を行い、その結果に対し、PIDフィルタ53によ
りフィルタリングを施し、また、伝送情報暗号化のため
のスクランブルをデスクランブラ54で解除しする。そ
れらの処理を経たデータがマイクロコンピュータ1で復
号化される。復号化されたビデオデータは、PAL(Ph
ase Alternation Line)或いNTCS(National Telev
ision System Committee)のようなカラーテレビの国際
標準に適合するようにエンコーダ55にて復号(ビデオ
信号)ならびにアナログ信号に変換される。復合化され
たオーディオデータはディジタル・アナログ・コンバー
タ56によってアナログ信号に変換される。図12にお
いて、マイクロコンピュータ1は、システム制御(Syst
em cnt.)、受信データに対するデマルチプレクス(Dem
ultiplex)、文字やグラフィックスの描画や表示制御を
行うテレテキスト処理(Teletext by soft)、メディア
統合系の画像圧縮に関する国際標準の一つであるMPE
G(Moving Picture Exparts Group)に対応されたビデ
オ情報の復号化若しくは伸張処理(MPEG2 Video by sof
t)、及び、MPEGに対応されたオーディオ情報の復
号化若しくは伸張(MPEG Audio by soft)処理を実現す
る。本実施例において、テレテキスト処理、ビデオ情報
の復号化処理及びオーディオ情報の復号化処理は、マイ
クロコンピュータ1が内蔵する前記CPU2、命令キャ
ッシュメモリ3、及びデータキャッシュメモリ4によっ
て実現される。それらのためのソフトウェア即ち動作プ
ログラムは外部メモリ7が保持する。図12において外
部メモリ7は、書換不可能なマスクROM(Mask RO
M)、電気的に書き換え可能なフラッシュメモリ(Flash
EEP ROM)、及びシンクロナスDRAM(SDRAM)によ
って構成されるように図示されている。プログラムはマ
スクROM又はフラッシュメモリに、データはシンクロ
ナスDRAM等に格納される。
【0077】前記テレテキスト処理、ビデオ情報の復号
化処理及びオーディオ情報の復号化処理のための専用ハ
ードウェアを搭載してマイクロコンピュータ若しくはシ
ステムを実現した場合に比べ、図12のマイクロコンピ
ュータ1若しくはシステムはその回路規模を小さくで
き、小型/軽量化が促進される。このように従来、専用
のハードウェアを必要としていた処理をCPU2の能力
で行おうとする傾向は、CPU2の性能向上によって実
現することができる。例えば、MPEG2で圧縮された
ビデオ情報を再生(復調)するには、CPU2には30
0vMIPS程度の処理能力が必要であるとされる。こ
のとき、上記実施例のデータキャッシュメモリ4は、画
像情報を代表とするマルチメディア情報の符号化や復号
化に際してCPU性能を最大限に引き出せるよう作用
し、CPU2の高性能化を要求するシステムの実現に寄
与する。
【0078】図13は本実施例に係るマイクロコンピュ
ータ1のチップイメージでのブロック図を示す。同図に
示す例は、マルチメディア対応のマイクロコンピュータ
を想定するものであり、図2、図1で説明した回路モジ
ュール以外の回路モジュールも図示されている。60は
マルチメディア・ファンクション・ユニット(MFU)
であり、浮動小数点演算若しくはディジタル信号処理演
算など、マルチメディア情報の処理に必要な演算処理ユ
ニットとされる。61はコプロセッサ(Co-processor)
である。メモリコントローラ(Memory cont.)62はシ
ンクロナスDRAMやフラッシュメモリなどの外部メモ
リを直接制御するためのアクセス制御信号を生成する回
路モジュールである。65は仮想記憶のためのアドレス
変換テーブルの一部を保有するアドレス変換バッファ
(TLB)である。63A〜63Cは、シリアルポー
ト、パラレルポート、タイマ・カウンタ等の周辺回路
(Peripherals)である。64はマイクロコンピュータ
内部の動作クロック信号を生成するためのクロック・パ
ルス・ジェネレータ(CPG)である。
【0079】図13のマイクロコンピュータ1におい
て、前記マルチメディア・ファンクション・ユニット6
0及びコプロセッサ61は、CPU2の負担を軽減する
ものであるが、それら回路モジュールのための命令はC
PU2がフェッチし、フェッチした命令がそれら回路モ
ジュールのための命令である場合、そのデコード信号を
マルチメディア・ファンクション・ユニット60やコプ
ロセッサ61に与え、それらは、与えられたデコード信
号に基づいて各種の演算処理を行う。また、それらによ
る演算処理のためのオペランドフェッチのためのアドレ
ス演算や内部バスのアクセス制御はCPU2が行う。こ
のとき、データキャッシュメモリ4における前記LD
C,STC処理は上記同様、CPU2の性能を最大限に
発揮させることができる。
【0080】上記実施例によれば以下の作用効果を得る
ことができる。〔1〕ノンブロッキング機構を有するデ
ータキャッシュメモリ4にCPU2の動作と独立してデ
ータキャッシュメモリ4へのロード/ストアを行う一種
のキャッシュメモリへのダイレクトメモリアクセス制御
手段として動作するロードキャッシュ/ストアキャッシ
ュ制御部25設け、CPU2がこの制御部25へデータ
転送の開始ならびに終了アドレス等の設定をCPU2の
動作開始時ならびに任意の時点での書き替えを可能にす
ることで、適時に外部メモリ7からデータキャッシュメ
モリ4への必要なデータのプリフェッチ、ならびに小容
量のデータキャッシュメモリ4のヒット率を高めるため
に、演算処理が完了したデータのデータキャッシュメモ
リ4から外部メモリ7へのコピーバックを実行する。し
たがって、データキャッシュメモリ4の本来持つ機能が
発揮でき、CPU2が持つ性能を最大限に引き出し、演
算処理の高速化を実現することができる。
【0081】〔2〕データキャッシュメモリ4を有する
マイクロコンピュータ1は、そのデータキャッシュメモ
リ4に予め演算処理に必要とされるデータをCPU2と
は独立して多量に読込むプリフェッチ機能を持たせる制
御部25を有するので、画像情報やオーディオ情報のよ
うに多量だが再利用性の低いデータをCPU2による演
算処理直前に、高い確率でデータキャッシュメモリ4に
保持させ、かつ一旦演算処理が完了したデータを優先し
てデータキャッシュメモリ4から追い出すことができ、
小容量でもデータキャッシュメモリ4のヒット率を高め
ることができる(使用効率を向上させることができる)。
すなわち、CPU2がイメージデータの演算処理を実行
している間にCPU2の演算処理とは独立して、現在、
処理を実行している枡目のデータの次の枡目のデータを
外部メモリ7からデータキャッシュメモリ4にプリフェ
ッチし、かつ演算処理を完了した枡目のデータをデータ
キャッシュメモリ4から外部メモリ7へ効率良くコピー
バックでき、小容量のデータキャッシュメモリ4におい
てもCPU2の演算処理性能の向上に大きな効果を得
る。
【0082】〔3〕データキャッシュメモリ4は、リー
ドデータバッファ21とコピーバックバッファ22を有
するノンブロッキング構造を有するものに対して、デー
タのバーストリード/コピーバック制御とデータキャッ
シュメモリの構造に若干の工夫を加えることで、コスト
アップを抑えて上記効果を得ることができる。
【0083】〔4〕OS(Operating System)の機能が高
まり(マルチタスク、マルチメディア、並列処理)、CP
Uの処理速度向上がこれまで以上に必要になっている現
状において、データキャッシュメモリの効率的な利用と
いう観点からCPUのデータ処理性能を向上させること
ができる。
【0084】〔5〕CPU命令で直接データキャッシュ
メモリへデータをプリフェッチしたり或いはコピーバッ
クを行う手法に比べ、CPU2の動作プログラムには制
御部25のレジスタに対する初期設定やLDC/STC
起動のための記述等を追加すれば済み、プログラム記述
が簡単であり、その上、プログラム記述も大幅に増えな
い。しかも、CPU2による命令実行に並行してデータ
プリフェッチなどを行えるので、CPU2のデータ処理
性能の低下もない。また、ダイレクト・メモリ・アクセ
ス・コントローラそれ自体を用いる場合に比べ、CPU
2のバス権を奪うこともなく、この点においても、CP
U2の演算処理性能の低下をもたらさない。
【0085】〔6〕レジスタ33に設定した値によって
データプリフェッチやコピーバックに際して外部メモリ
7に対するアクセス態様を自由に決定できるから、画像
データのように2次元配列(X−Y座標)される性質のデ
ータに対するアドレス割り付けの如何に拘らず、任意の
態様でデータプリフェッチとコピーバックを行うことが
でき、大変便利である。
【0086】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。
【0087】例えば、リードデータバッファとコピーバ
ックバッファはFIFO(First-inFirst-out)の様な
キューイング構造を採用することも可能である。また、
データキャッシュメモリはロードキャッシュ/ストアキ
ャッシュ以外のデータプリフェッチを行わない構成にす
ることも可能である。この場合には、前記LCビットは
実質的に不要である。また、上記実施例では、CPU2
による演算処理を最優先にするために、ロードキャッシ
ュ/ストアキャッシュに対して、CPU2の命令実行に
よるロード/ストアを優先させるものとして説明した
が、それに限定されない。また、データ処理装置の名称
は上記実施例で使用したマイクロコンピュータの語に限
定されず、マイクロプロセッサやデータプロセッサとし
ても同じである。
【0088】また上記実施のデータ処理装置の適用例と
してDVB用のSTBについて説明したが同様の応用例
としては、CATV用STB、DVD(Digital Video
Disk)等がある。また、上記実施例で説明したJPEG
の応用例としてはディジタル・スチル・カメラなどがあ
る。音声情報やその他のマルチメディア情報の圧縮・伸
張若しくは伝送など、その適用可能範囲は無限である。
【0089】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0090】すなわち、命令を自身で取り込むことで一
連の動作を行う演算制御装置と共に、外部記憶装置の記
憶容量に比べて小容量でかつ高速にアクセス可能なデー
タキャッシュメモリを有するマイクロコンピュータは、
そのデータキャッシュメモリに予め演算処理に必要とさ
れるデータを演算制御装置とは独立して多量に読込むプ
リフェッチ機能を持たせる制御手段を有するので、画像
情報やオーディオ情報のように多量だが再利用性の低い
データなどを演算制御装置による演算処理直前に、高い
確率でデータキャッシュメモリに保持させ、かつ一旦演
算処理が完了したデータを優先してデータキャッシュメ
モリから追い出すことができ、小容量でもデータキャッ
シュメモリのヒット率を高めることができる(使用効率
を向上させることができる)。
【0091】これによって演算制御装置による演算処理
の実質的な実行時間を短縮することができる。換言すれ
ば、演算制御装置の性能を最大限に発揮させることがで
きる。
【0092】データキャッシュメモリは、リードデータ
バッファとコピーバックバッファを有するノンブロッキ
ング構造を有するものに対し、データのバーストリード
/コピーバック制御とデータキャッシュメモリの構造に
若干の工夫を加えることで、コストアップを抑えて上記
効果を得ることができる。
【0093】演算制御装置が個々に命令を実行して直接
データキャッシュメモリへのデータをプリフェッチした
り或いはコピーバックを行う手法に比べ、演算制御装置
の動作プログラムにはLDC/STC制御のための初期
設定やLDC/STC起動のための記述等を追加すれば
済み、プログラム記述が簡単であり、その上プログラム
記述も大幅に増えない。しかも、演算制御装置の命令実
行に並行してデータプリフェッチなどを行えるので、演
算制御装置のデータ処理性能の低下もない。また、ダイ
レクト・メモリ・アクセス・コントローラそれ自体を用
いる場合に比べ、演算制御装置のバス権を奪うこともな
く、この点においても、演算制御装置の演算処理性能の
低下をもたらさない。
【0094】LDC/STC制御のために設定した値に
よってデータプリフェッチやコピーバックに際して外部
記憶装置に対するアクセス態様を自由に決定できるか
ら、画像データのように2次元配列(X−Y座標)される
性質のデータに対するアドレス割り付けの如何に関わら
ず、LDC/STC制御において任意の態様でデータプ
リフェッチとコピーバックを行うことができ、大変便利
である。
【図面の簡単な説明】
【図1】本発明の一実施例に係るマイクロコンピュータ
をロードキャッシュ/ストアキャッシュ制御部を主体と
して示したブロック図である。
【図2】図1のマイクロコンピュータをデータキャッシ
ュメモリのノンブロッキング化のための構成を主体とし
て示したブロック図である。
【図3】LDCが起動されたときに行われる制御回路で
の制御手順の一例フローチャートである。
【図4】STCが起動されたときに行われる制御回路で
の制御手順の一例フローチャートである。
【図5】JPEGに対応する符号化系と復号化系の基本
的なブロック図である。
【図6】画像データに対するデータ処理の際のデータブ
ロック分割の説明図である。
【図7】CPUによるDCT,IDCTの演算を一般化
した行列演算のための命令記述の一部を示す第1の説明
図である。
【図8】CPUによるDCT,IDCTの演算を一般化
した行列演算のための命令記述の一部を示す第2の説明
図である。
【図9】CPUによるDCT,IDCTの演算を一般化
した行列演算のための命令記述の一部を示す第3の説明
図である。
【図10】CPUによるDCT,IDCTの演算を一般
化した行列演算のための命令記述の一部を示す第4の説
明図である。
【図11】ブロック分割した画像データに対しDCT,
IDCT演算等を行うときのデータキャッシュメモリに
おけるLDC動作の概略説明図である。
【図12】図1に示されるマイクロコンピュータをST
Bに適用した場合のブロック図である。
【図13】図1に示されるマイクロコンピュータとして
マルチメディア対応のマイクロコンピュータを想定した
場合における当該マイクロコンピュータのチップイメー
ジでのブロック図である。
【符号の説明】
1 マイクロコンピュータ 2 中央処理装置(CPU) 3 命令キャッシュメモリ 4 データキャッシュメモリ 7 外部メモリ 10 命令デコーダ 13 演算回路 20 キャッシュメモリ部 CDATA キャッシュデータ部 CTG キャッシュタグ部 D ダーティービット 21 リードデータバッファ RBDATA リードバッファデータ部 RBTAG リードバッファタグ部 LC ロードキャッシュビット RC リード完了ビット 22 コピーバックバッファ CBDATA コピーバックバッファデータ部 CBTAG コピーバックバッファタグ部 CC コピー完了ビット LDB ロードバス STB ストアバス RDB リードデータバス WDB ライトデータバス V バリッドビット 23 キャッシュ制御部 ATAG タグアドレス情報 AIDX インデックスアドレス情報 AW ワードアドレス情報 24 バーストリード/コピーバック制御部 WCNT ワードカウンタ 25 ロードキャッシュ/ストアキャッシュ制御部 30 キャッシュラインアドレスレジスタ 31 エンドアドレスレジスタ 32 アドレスコンパレータ 33 オフセットアドレスレジスタ 34 プリフェッチ制御回路 35A ロードキャッシュ起動要求信号 35B ストアキャッシュ起動要求信号 36 完了通知信号 37 アドレス加算器

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 命令をフェッチして実行する演算制御装
    置と、演算制御装置がフェッチした命令の実行に必要な
    データを一時的に保持するためのデータキャッシュメモ
    リとを含むデータ処理装置であって、 前記データキャッシュメモリは、複数語のデータとそれ
    らに共通の実効アドレス情報とを対応させて格納する複
    数の記憶領域と、演算制御装置の命令実行によって利用
    された一定のデータを再利用可能に前記記憶領域に保持
    させる第1のキャッシュ制御部と、演算制御装置の命令
    実行によって初期設定された制御情報に従ってデータを
    前記記憶領域に保持させる第2のキャッシュ制御部と、
    を備えて成るものであることを特徴とするデータ処理装
    置。
  2. 【請求項2】 前記複数個の記憶領域は、複数語のデー
    タとそれらに共通の実効アドレス情報とを対応させて格
    納するためのキャッシュラインを複数ライン備えたキャ
    ッシュメモリ部と、前記キャッシュメモリ部のデータ入
    力ポート側に配置されたリードデータバッファと、前記
    キャッシュメモリ部のデータ出力ポート側に配置された
    コピーバックバッファとから成るものであることを特徴
    とする請求項1記載のデータ処理装置。
  3. 【請求項3】 前記第1のキャッシュ制御部は、アクセ
    スされるべきデータのアクセスアドレス情報に対応され
    る実効アドレス情報を持ったキャッシュラインの存否を
    判定し、存在する場合にはそのキャッシュラインに対し
    てデータアクセスを行い、存在しない場合には前記アク
    セスアドレス情報に応ずるデータを含む複数語のデータ
    を前記リードデータバッファに取り込んで空き状態のキ
    ャッシュラインに格納し、キャッシュラインから追い出
    すべきデータが変化されているときはそのキャッシュラ
    インのデータをコピーバックバッファに内部転送して外
    部に書き戻し制御するものであることを特徴とする請求
    項2記載のデータ処理装置。
  4. 【請求項4】 前記第2のキャッシュ制御部は、前記キ
    ャッシュメモリ部に保持すべきデータのアドレス範囲が
    前記演算制御装置によって初期設定される第1のレジス
    タ手段と、当該第1のレジスタ手段に初期設定されたア
    ドレス範囲のアクセスアドレス情報を順次生成するアド
    レス生成手段と、当該アドレス生成手段によって生成さ
    れたアクセスアドレス情報を前記第1のキャッシュ制御
    部に与え、前記第1のキャッシュ制御部に対し、与えた
    前記アクセスアドレス情報に対応される実効アドレス情
    報を持ったキャッシュラインの存否を判定させ、存在し
    ない場合には前記アクセスアドレス情報に応ずるデータ
    を含む複数語のデータをリードデータバッファに取り込
    んで空き状態のキャッシュラインに格納させ、キャッシ
    ュラインから追い出すべきデータが変化されているとき
    はそのキャッシュラインのデータをコピーバックバッフ
    ァに内部転送して外部に書き戻しさせるロードキャッシ
    ュの制御を行うプリフェッチ制御手段を有するものであ
    ることを特徴とする請求項3記載のデータ処理装置。
  5. 【請求項5】 前記第2のキャッシュ制御部は更に、前
    記アドレス生成手段が次のアクセスアドレス情報を生成
    するときに用いるアドレスオフセット情報を保持し、そ
    れが前記演算制御装置によって初期設定される第2のレ
    ジスタ手段を備えて成るものであることを特徴とする請
    求項4記載のデータ処理装置。
  6. 【請求項6】 前記第1及び第2のレジスタ手段を複数
    組供え、前記演算制御装置は、アドレス生成手段がアド
    レス生成に利用する第1及び第2のレジスタ手段を指定
    可能であることを特徴とする請求項5記載のデータ処理
    装置。
  7. 【請求項7】 前記プリフェッチ制御手段は更に、前記
    アドレス生成手段によって生成されたアクセスアドレス
    情報を前記第1のキャッシュ制御部に与え、前記第1の
    キャッシュ制御部に対し、与えた前記アクセスアドレス
    情報に対応される実効アドレス情報を持ったキャッシュ
    ラインの存否を判定させ、存在する場合にはそのキャッ
    シュラインが変化されているかを判定させ、変化されて
    いる場合には当該キャッシュラインのデータをコピーバ
    ックバッファに内部転送して外部に書き戻しさせるスト
    アキャッシュの制御を行うものであることを特徴とする
    請求項4乃至6の何れか1項記載のデータ処理装置。
  8. 【請求項8】 前記演算制御装置は、前記プリフェッチ
    制御手段に対して、前記ロードキャッシュの制御又はス
    トアキャッシュの制御を起動する起動要求信号を出力す
    るものであることを特徴とする請求項7記載のデータ処
    理装置。
  9. 【請求項9】 前記プリフェッチ制御手段は、前記起動
    要求信号によって起動されたところの、前記第1のレジ
    スタ手段に設定されたアドレス範囲の一連のアクセスア
    ドレス情報に対する前記ロードキャッシュの制御又はス
    トアキャッシュの制御を完了した状態を前記演算制御装
    置に通知する完了通知信号を出力するものであることを
    特徴とする請求項8記載のキャッシュメモリ装置。
  10. 【請求項10】 前記演算制御装置がフェッチする命令
    を一時的に保持するための命令キャッシュメモリを前記
    データキャッシュメモリとは別に備えて成るものである
    ことを特徴とする請求項1乃至9の何れか1項記載のデ
    ータ処理装置。
  11. 【請求項11】 前記演算制御装置は中央処理装置であ
    り、この中央処理装置と、前記データキャッシュメモリ
    と、前記命令キャッシュメモリとを単一の半導体基板に
    備えてマイクロコンピュータ化されて成るものであるこ
    とを特徴とする請求項10記載のデータ処理装置。
  12. 【請求項12】 請求項1乃至11の何れか1項記載の
    データ処理装置と、このデータ処理装置の動作プログラ
    ムを保有するための第1の記憶手段と、前記データ処理
    装置に含まれるデータキャッシュメモリによるキャッシ
    ュの対象とされる第2の記憶手段とを供え、第2の記憶
    手段が保持する画像情報又は音声情報から選ばれた一方
    又は双方の情報を、前記第1の記憶手段が保有する動作
    プログラムに従って符号化又は復号化するものであるこ
    とを特徴とするデータ処理システム。
JP8038976A 1996-02-01 1996-02-01 データ処理装置及びデータ処理システム Withdrawn JPH09212421A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8038976A JPH09212421A (ja) 1996-02-01 1996-02-01 データ処理装置及びデータ処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8038976A JPH09212421A (ja) 1996-02-01 1996-02-01 データ処理装置及びデータ処理システム

Publications (1)

Publication Number Publication Date
JPH09212421A true JPH09212421A (ja) 1997-08-15

Family

ID=12540193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8038976A Withdrawn JPH09212421A (ja) 1996-02-01 1996-02-01 データ処理装置及びデータ処理システム

Country Status (1)

Country Link
JP (1) JPH09212421A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009251998A (ja) * 2008-04-08 2009-10-29 Renesas Technology Corp データプロセッサ
JP2010079535A (ja) * 2008-09-25 2010-04-08 Mitsubishi Electric Corp データアクセス装置
US9852082B2 (en) 2015-10-07 2017-12-26 Fujitsu Limited Information processing apparatus and cache control method
EP3388935A4 (en) * 2016-01-06 2018-12-19 Huawei Technologies Co., Ltd. Cache management method, cache controller and computer system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009251998A (ja) * 2008-04-08 2009-10-29 Renesas Technology Corp データプロセッサ
JP2010079535A (ja) * 2008-09-25 2010-04-08 Mitsubishi Electric Corp データアクセス装置
US9852082B2 (en) 2015-10-07 2017-12-26 Fujitsu Limited Information processing apparatus and cache control method
EP3388935A4 (en) * 2016-01-06 2018-12-19 Huawei Technologies Co., Ltd. Cache management method, cache controller and computer system
US10831677B2 (en) 2016-01-06 2020-11-10 Huawei Technologies Co., Ltd. Cache management method, cache controller, and computer system

Similar Documents

Publication Publication Date Title
US6185629B1 (en) Data transfer controller employing differing memory interface protocols dependent upon external input at predetermined time
US5487146A (en) Plural memory access address generation employing guide table entries forming linked list
US5524265A (en) Architecture of transfer processor
US5560030A (en) Transfer processor with transparency
US7630388B2 (en) Software defined FIFO memory for storing a set of data from a stream of source data
JP4426099B2 (ja) 共有メモリを有するマルチプロセッサ装置
EP0671718B1 (en) Data processor for guided transfer line drawing
US7565462B2 (en) Memory access engine having multi-level command structure
US5724599A (en) Message passing and blast interrupt from processor
US5651127A (en) Guided transfers with variable stepping
US5493646A (en) Pixel block transfer with transparency
JP2004531841A (ja) 時間アロケータを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム
JP2004536395A (ja) グラフィックコンテキストマネージャを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム
JPH0954832A (ja) デジタル・データ及びビデオ信号の処理デバイス及びシステム
US9430393B2 (en) System and method for managing cache
JP3518788B2 (ja) デジタル・データ及びビデオ信号の処理デバイス及びシステム
JP2001216194A (ja) 演算処理装置
US11947477B2 (en) Shared buffer for multi-output display systems
US9916251B2 (en) Display driving apparatus and cache managing method thereof
TWI471011B (zh) 視訊處理方法及系統
JP2005346168A (ja) キャッシュメモリ、システムおよびデータ格納方法
US6459737B1 (en) Method and apparatus for avoiding redundant data retrieval during video decoding
JPH09212421A (ja) データ処理装置及びデータ処理システム
EP0671719B1 (en) Transfer processor with transparency
JPH1185969A (ja) 画像処理装置及びその方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030401