トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 マイクロコンピュータ及びデータ処理装置
【発明者】 【氏名】高橋 宏徳

【要約】 【課題】システムの性能低下を軽減する。

【解決手段】オペレーティングシステムによって管理されるタスクが実行されていない期間に、ダーティビットが有効なブロックについてバリッドビットを有効とした状態でキャッシュメモリのデータをメモりにライトバック可能な中央処理装置(3)を設け、タスクが実行されていない期間にライトバック処理を実行することで、キャッシングの直前において、前回使用したキャッシュ内容をライトバックするケースを減少させ、システムの性能低下の軽減を図る。
【特許請求の範囲】
【請求項1】 データの記憶エリアと、そのデータに関連するアドレス情報を記憶するタグエリアと、上記データの内容が更新されたことを示すダーティビットと、上記データの有効性を示すバリッドビットとを含んで一つのキャッシュブロックが形成され、上記データが格納されたメモリのリードキャッシュ及びライトキャッシュを可能とするキャッシュシステムと、オペレーティングシステムによって管理されるタスクが実行されていない期間に、上記ダーティビットが有効なブロックについてバリッドビットを有効とした状態でキャッシュシステムのデータを上記メモリにライトバック可能な中央処理装置と、を含むこと特徴とするマイクロコンピュータ。
【請求項2】 中央処理装置と、上記中央処理装置によってアクセス可能なメモリのリードキャッシュ及びライトキャッシュが可能とされるキャッシュシステムと、を含むマイクロコンピュータであって、キャッシュシステムは、上記メモリアクセスに使用されるバスの監視を行うことで、上記中央処理装置によって上記メモリがアクセスされていない期間を検出可能なバス状態監視回路と、上記バス状態監視回路の検出結果に基づいて、上記メモリがアクセスされていない期間にライトバック処理の開始を指示するライトバック制御回路と、を含んで成ることを特徴とするマイクロコンピュータ。
【請求項3】 上記ライトバック制御回路は、上記キャッシュシステムにダーティなブロックが存在することを示すフラグを設定可能なレジスタを含み、上記ライトバック制御回路は、上記レジスタに設定されたフラグの状態に従ってライトバック制御を開始する請求項2記載のマイクロコンピュータ。
【請求項4】 請求項1乃至3の何れか1項記載のマイクロコンピュータと、上記マイクロコンピュータの外部に配置され、上記マイクロコンピュータによってアクセス可能なメモリとを含んで成るデータ処理装置。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、データ処理技術、さらにはキャッシュシステムの改良技術に関し、例えばシングルチップマイクロコンピュータ(単に「マイクロコンピュータ」という)及びそれを含むデータ処理装置に適用して有効な技術に関する。
【0002】
【従来の技術】近年の制御用マイクロコンピュータにおいては、取り扱うデータ量の増加に伴い、大量データの高速処理を可能とするキャッシュメモリシステムが搭載されている。このキャッシュシステムによれば、前回の外部メモリアクセスによってキャッシュメモリに残されているデータについては、それを利用することにより、目的とするデータを高速に得ることができるので、システムの処理性能の向上を図ることができる。
【0003】また、ユーザが実メモリを意識せずに、オペレーティングシステムがメモリ管理を行う分野では、データ処理装置が、アドレス変換機構をサポートする必要がある。アドレス変換機構とは、仮想記憶を実現するために仮想アドレスを物理アドレスに変換する機構である。さらに、アドレス変換機構を高速に実行するために、仮想アドレスと物理アドレスの変換対を保持するアドレス変換バッファ(Translation lookaside buffer「TLB」と略記される)をマイクロコンピュータに内蔵する技術も採用されている尚、キャッシュシステムについて記載された文献の例としては、1995年11月5日に朝倉書店から発行された「計算機アーキテクチャと構成方式(第273頁から第308頁)がある。
【0004】
【発明が解決しようとする課題】キャッシュメモリシステムは、マイクロコンピュータの外部に配置された半導体メモリ(「外部メモリ)という)より高速である反面、記憶容量が小さいため、外部メモリの一部しか代替できない。キャッシュメモリシステムによる外部メモリの代替の要因には次の二つが考えられる。すなわち、(1)命令、定数値など、読み出しにのみ使用される場合、及び(2)読み出したデータに対して行われた演算の結果(中間結果をも含む)を保存する場合である。
【0005】上記(1)の場合は、外部メモリにある使用頻度の高いデータをキャッシュメモリにコピーし(これを「キャッシング」という)し、2回目以降の参照を高速化する。この場合は、データの参照しか行わないため、キャッシュメモリの情報は外部メモリの記憶情報に整合している。これに対して、上記(2)の場合には、キャッシュメモリのデータの内容変更を伴うため、キャッシュメモリの情報は外部メモリの記憶情報に整合しなくなる。そのため、キャッシュメモリにおいて更新された内容を外部メモリに書き戻す作業(ライトバック)が必要になる。
【0006】キャッシングや、ライトバックは、比較的低速な外部メモリとのデータ交換なので、システムの性能低下の大きな要因となる。これら性能低下を軽減するため、プリフェッチ、ライトバックバッファなどの技術がある。プリフェッチは、実際にデータ必要となる前にキャッシングしておく技術である。ライトバックバッファは、ライトバックしてキャッシングする過程において、ライトバックを後回しにしてキャッシングを高速化する技術である。
【0007】マイクロコンピュータ応用システム、特に機器組み込み制御装置では、ある事象(Event)を発端として、演算を開始するイベント駆動システムが一般的である。例えばイベント駆動型の処理には、装置を操作する人の指示により何らかの動作をするというものがある。イベント駆動システムでは、例えば図6に示されるように、イベントが発生するまでの間は、CPU(中央処理装置)の待機状態であり、この状態では、演算が不要であるが、イベント発生からは高速演算のための即時性が要求される。また、連続する二つのイベントが互いに等しい場合には、図7に示されるように、キャッシュメモリは、CPUのアイドル状態ではアクセスされず、イベント発生後の高速演算の際に頻繁にアクセスされる。それに対して、連続する二つのイベントが互いに異なる場合には、図8に示されるように、イベント発生後の処理が異なる。すなわち、イベント■発生により外部メモリの第1ブロックへのアクセスが行われ、イベント■発生により、外部メモリの第1ブロックへのライトバック及び外部メモリの第2ブロックへのアクセスが行われる。このように連続する二つのイベントが互いに異なる場合には、前回使用した第1ブロックのデータとは異なる第2ブロックについてのキャッシングが必要になるが、この際、前回使用したキャッシュ内容をライトバックする必要があり、このことが、システムの性能低下の要因とされていることが、本願発明者によって見いだされた。
【0008】本発明の目的は、システムの性能低下を軽減することにある。
【0009】本発明の上記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0010】
【課題を解決するための手段】本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0011】すなわち、データの記憶エリアと、そのデータに関連するアドレス情報を記憶するタグエリアと、上記データの内容が更新されたことを示すダーティビットと、上記データの有効性を示すバリッドビットとを含んで一つのキャッシュブロックが形成され、上記データが格納されたメモリのリードキャッシュ及びライトキャッシュを可能とするキャッシュシステムを設け、さらに、オペレーティングシステムによって管理されるタスクが実行されていない期間に、上記ダーティビットが有効なブロックについてバリッドビットを有効とした状態でキャッシュシステムのデータを上記メモリにライトバック可能な中央処理装置を設ける。
【0012】上記の手段によれば、中央処理装置は、オペレーティングシステムによって管理されるタスクが実行されていない期間に、上記ダーティビットが有効なブロックについてバリッドビットを有効とした状態でキャッシュシステムのデータを上記メモリにライトバックする。連続する二つのイベントが互いに異なる場合には、前回使用した第1ブロックのデータとは異なる第2ブロックについてのキャッシングが必要になるが、上記のようにオペレーティングシステムによって管理されるタスクが実行されていない期間にライトバック処理が実行されるようになっているため、上記第2ブロックについてのキャッシングの直前において、前回使用したキャッシュ内容をライトバックするケースが減少され、このことが、システムの性能低下を軽減する。
【0013】また、上記メモリアクセスに使用されるバスの監視を行うことで、上記中央処理装置によって上記メモリがアクセスされていない期間を検出可能なバス状態監視回路と、上記検出段の検出結果に基づいて、上記メモリがアクセスされていない期間にライトバック処理の開始を指示するライトバック制御回路とを含んでマイクロコンピュータを構成することができる。
【0014】
【発明の実施の形態】図10には本発明にかかるマイクロコンピュータが適用されるデータ処理装置が示される。
【0015】このデータ処理装置200は、特に制限されないが情報端末機器とされ、システムバスBUSを介して、マイクロコンピュータ231、SDRAM232、ROM(リード・オンリ・メモリ)234、周辺装置制御部235、表示制御部236などが互いに信号のやり取り可能に結合され、予め定められたプログラムに従って所定のデータ処理を行う。上記マイクロコンピュータ231は、本システムの論理的中核とされ、主として、アドレス指定、情報の読み出しと書き込み、データの演算、命令のシーケンス、割り込の受付け、記憶装置と入出力装置との情報交換の起動等の機能を有し、演算制御や、バス制御、メモリアクセス制御などを行う。上記SDRAM232及びROM234はマイクロコンピュータ231の外部メモリとして位置付けられている。SDRAM232は、マイクロコンピュータ231で実行されるオペレーティングシステムソフトや、アプリケーションソフト、さらにはマイクロコンピュータの演算処理において必要とされる各種データが外部記憶装置238などからロードされる。ここで、外部記憶装置238は、特に制限されないが、記憶素子としてフラッシュメモリ素子を含んでカード状に形成された半導体メモリカードなどとされる。ROM234には読み出し専用のプログラムが格納される。周辺装置制御部235によって、外部憶装置238の動作制御や、キーボード239などからの情報入力制御が行われる。また、上記表示制御部236によって液晶ディスプレイ240への情報表示制御が行われる。この表示制御部236には描画処理のための半導体チップや画像メモリなどが含まれる。
【0016】図1には、上記マイクロコンピュータ231の構成例が示される。同図に示されるマイクロコンピュータ231は、特に制限されないが、単結晶シリコンのようなの1個の半導体基板に集積回路化されて構成される。マイクロコンピュータ231は浮動小数点ユニット(FPUとも称する)2を持つ。更に、マイクロコンピュータ231は、整数を操作することができる中央処理装置(CPUとも称する)3を備える。マイクロコンピュータ231は、特に制限されないが、16ビット固定長命令セットを備えた32ビットRISC(Reduced Instruction Set Computer:縮小命令セットコンピュータ)アーキテクチャを有する。
【0017】図1において参照符号4で示されるものはアドレス変換・キャッシュユニット(CCN)である。CPU3による命令アクセスとデータアクセスを並列化できるように、上記アドレス変換・キャッシュユニット4は、命令用の命令アドレス変換バッファ(命令TLBとも称する)40と、データ用のユニファイドアドレス変換バッファ(ユニファイドTLBとも称する)41を別々に持ち、また、命令キャッシュメモリ42とデータキャッシュメモリ43もそれぞれ個別化されている。キャッシュ・アドレス変換バッファコントローラ(キャッシュTLBコントローラとも称する)44はアドレス変換・キャッシュユニット4を全体的に制御する。
【0018】図1において参照符号5で示されるものはバスステートコントローラであり、32ビットのデータバス50及び29ビットのアドレスバス51を介して上記アドレス変換・キャッシュユニット4に接続されている。このバスステートコントローラ5にはデータバス54及びアドレスバス55を介してDMAC8が接続されている。
【0019】マイクロコンピュータ231において上記CPU3及びDMAC8がバスマスタモジュールを構成する。マイクロコンピュータ231による外部アクセスは、64ビットのデータバス52及びアドレスバス53を介して上記バスステートコントローラ5に接続された外部バスインタフェース回路(PAD)6で行う。外部バスインタフェース回路6は外部データバス60及び外部アドレスバス61に接続される。
【0020】マイクロコンピュータ231は、16ビットの周辺データバス56及び周辺アドレスバス57に接続された内蔵周辺回路として、クロックパルスジェネレータ(CPGとも称する)70、割り込み制御回路71、シリアルコミュニケーションインタフェースコントローラ(SCI1,SCI2)72、リアルタイムクロック回路73及びタイマ74を有する。それら周辺回路は上記バスステートコントローラ5を介してCPU3又はDMAC8によってアクセスされる。
【0021】上記DMAC8は、例えば4個のデータ転送チャネルを有し、各データ転送チャネル毎に、転送元アドレスが設定されるソースアドレスレジスタ、転送先アドレスが設定されるディスティネーションアドレスレジスタ、転送回数を計数するためのトランスファカウントレジスタ、及びデータ転送制御態様等が設定されるチャネルコントロールレジスタを有する。上記レジスタに対するデータ転送制御情報の初期設定はCPU3等が行なう。DMAC8の制御部は、マイクロコンピュータ231の外部からのデータ転送要求DREQ、マイクロコンピュータ内部の周辺回路(タイマ74など)からのデータ転送要求PDREQ、又はCPUからのデータ転送要求があったとき、チャネルコントロールレジスタのチャネルイネーブルビットなどを参照して、そのデータ転送要求に応答して起動すべきデータ転送チャネルが動作可能かを判定する。更に、データ転送要求が競合する場合には予め決められている優先順位に従って、起動すべき一つのデータ転送チャネルを判定する。データ転送要求に応答すべき一つのデータ転送チャネルを決定すると、バスステートコントローラ5に対してバス権要求信号BREQをアサートしてバス権を要求する。バスステートコントローラ5がバス権承認信号BACKをアサートすると、これによってDMAC8はバス権を獲得し、DMAC8は、データ転送要求に応答するデータ転送制御をバスステートコントローラ5を介して行う。バスステートコントローラ5は、DMAC8から供給されるアドレス信号のアドレスエリアなどに応じたメモリサイクル数でバスサイクルを起動する。
【0022】DMAC8は、デュアルアドレスモードとシングルアドレスモードのデータ転送モードを有する。双方の動作モードは、よく知られているように、デュアルアドレスモードは転送先及び転送元の双方のデバイスにアドレスを指定してデータ転送を行なう動作であり、シングルアドレスモードは転送先又は転送元の一方のデバイスだけアドレス指定を行なってデータ転送を行なう動作である。前者はメモリマップドデバイス同士のデータ転送であり、後者はメモリマップドデバイスとI/Oデバイスとの間のデータ転送である。
【0023】上記バスステートコントローラ5は、CPU3やDMAC8によるアクセス対象とされる回路のアドレスエリアに応じて、アクセスデータサイズ、アクセスタイム、後述する内部ウェイトステート数及びアイドルウェイトステート数を決定し、周辺バスバス56,57、そして外部バス60,61に対するバスアクセスを制御する。更にバスステートコントローラ5は、キャッシュTLBコントローラ44及びDMAC8からのバス使用要求の競合を調停したりする。バスステートコントローラ5はデータバッファ58を有する。データバッファ58は、内部バス50,51、周辺バス56,57、外部バス60,61に接続される回路の動作速度の差を吸収するために転送データを一時的にラッチする。更に、DMAC8によるデータ転送制御では、DMAC8はデータバッファ58にラッチされたデータを採り込まず、データバッファ58から転送先にデータを転送し、DMAC8とデータバッファ58との間の無駄なデータ転送を省くようにデータ転送を行なう。
【0024】上記CPU3は、命令をフェッチするとき32ビットの命令アドレスバス30に命令アドレスを出力し、命令データバス31に出力された命令をフェッチする。また、CPU3は、32ビットのデータアドレスバス32にデータアドレスを出力し、32ビットのデータバス33を介してデータのリード(ロード)を行い、32ビットのデータバス34を介してデータのライト(ストア)を行う。上記命令アドレス及びデータアドレスは論理アドレスである。
【0025】上記FPU2は、特に制限されないが、データキャッシュメモリ42などをアクセスするためのメモリアドレシング能力を備えていない。CPU3がFPU2に代わってデータをアクセスするためのアドレシング動作を行う。これは、FPU2のメモリアドレシング回路の必要性を取り除いてチップ面積を節約するためである。FPU2へのデータのロードは32ビットのデータバス33と32ビットのデータバス35を介して行い、FPU2からのデータのストアは64ビットのデータバス36を介して行う。FPU2からCPU3へのデータ転送は上記64ビットデータバス36の下位32ビットを用いて行われる。
【0026】CPU3はFPU2のためにデータフェッチを行なうだけでなく、FPU2のための浮動小数点命令を含む全ての命令をフェッチする。CPU3がフェッチした浮動小数点命令は32ビットのデータバス34を介してCPU3からFPU2に与えられる。
【0027】マイクロコンピュータ231は、特に制限されないが、32ビットの仮想アドレスで規定される仮想アドレス空間と29ビットの物理アドレスで規定される物理アドレス空間を扱う。仮想アドレスを物理アドレスに変換するためのアドレス変換情報は仮想ページ番号とそれに対応される物理ページ番号を含んでいる。アドレス変換テーブルはマイクロコンピュータ231の外部に配置されたSDRAM232に形成される。アドレス変換テーブルのアドレス変換情報のうち、最近利用されたものが上記命令TLB40とユニファイドTLB41に格納されることになる。その制御は、例えばオペレーティングシステム(OS)が行う。
【0028】上記データ用のユニファイドTLB41はデータ及び命令のアドレス変換情報を最大64エントリ格納する。このユニファイドTLB41は、データフェッチのためにCPU3がデータアドレスバス32に出力する仮想アドレスの仮想ページ番号に応ずる物理ページ番号をアドレス変換情報から連想検索して、その仮想アドレスを物理アドレスに変換する。
【0029】上記命令用の命令TLB40は命令専用のアドレス変換情報を最大4エントリ格納する。特に命令TLB40が保有するエントリは、ユニファイドTLB41が保有する命令アドレスのアドレス変換情報の一部とされる。すなわち、連想検索により命令TLB40に目的とするアドレス変換情報がないことが分かると、そのアドレス変換情報はユニファイドTLB41から命令TLB40へ供給される。この命令TLB40は、命令フェッチのためにCPU3が命令アドレスバス30に出力する仮想アドレスの仮想ページ番号に応ずる物理ページ番号をアドレス変換情報から連想検索する。検索の結果、目的とするアドレス変換情報がある場合(TLBヒット)、そのアドレス変換情報を用いて、当該仮想アドレスを物理アドレスに変換する。上記検索の結果、目的とするアドレス変換情報がない場合(TLBミス)、上記ユニファイドTLB41から目的とするアドレス変換情報を得るための動作をキャッシュTLBコントローラ44が制御する。
【0030】データキャッシュメモリ43においては、データの記憶エリアと、そのデータに関連するアドレス情報を記憶するタグエリアと、上記データの内容が更新されたことを示すダーティビットと、上記データの有効性を示すバリッドビットとを含んで一つのキャッシュブロックが形成される。
【0031】オペレーティングシステムによって管理されるタスクがCPU3によって実行されている場合において、上記データキャッシュメモリ43は、データフェッチに際してユニファイドTLB41で変換された物理アドレスを受け取り、これに基づいてキャッシュエントリの連想検索を行う。検索結果がリードヒットであれば、ヒットに係るキャッシュブロックからその物理アドレスに応ずるデータがデータバス33又は35に出力される。検索結果がリードミスであれば、ミスに係るデータを含む1キャッシュブロック分のデータがバスステートコントローラ5を介してSDRAM232から読み込まれて、キャッシュフィルが行われる。これによってキャッシュミスに係るデータが上記バス33又は35に読み出される。検索結果がライトヒットした場合、キャッシュ動作モードがライトバックモードならばヒットしたエントリにデータを書き込み、当該エントリのダーティビットをセットする。セット状態のダーティビットによりSDRAM232のデータとの不整合状態が分かり、上記キャッシュフィル動作で当該ダーティなキャッシュエントリがキャッシュメモリから追い出されるとき、SDRAM232へのライトバックが行われる。ライトスルーモードではヒットしたエントリにデータを書き込むと共にSDRAM232へのデータの書き込みも併せて行われる。検索結果がライトミスである場合、コピーバックモードならキャッシュフィルを行うと共にダーティビットをセットしてタグアドレスを更新し、フィルを行ったキャッシュブロックにデータを書き込む。ライトスルーモードの場合にはSDRAM232に対してのみ書き込みを行う。
【0032】オペレーティングシステムによって管理されるタスクがCPU3によって実行されていない場合には、後に詳述するように、上記ダーティビットが有効なブロックについてバリッドビットを有効とした状態でデータキャッシュメモリ43のデータを上記SDRAM232にライトバックする。
【0033】上記命令キャッシュメモリ42は、命令フェッチに際して命令TLB40で変換された物理アドレスを受け取り、これに基づいてキャッシュエントリの連想検索を行う。検索結果がリードヒットであれば、ヒットに係るキャッシュブロックからその物理アドレスに応ずる命令が命令データバス31に出力される。検索結果がリードミスであれば、ミスに係る命令を含む1キャッシュブロック分のデータがバスステートコントローラ5を介してSDRAM232から読み込まれて、キャッシュフィルが行われる。これによってミスに係る命令が命令データバス31を介してCPU3に与えられる。
【0034】上記命令TLB40、ユニファイドTLB41及びキャッシュTLBコントローラ44はメモリマネージメントユニットを構成する。このメモリマネージメントユニットは、特権モード及びユーザモードのそれぞれにおいて、仮想アドレス空間へのアクセス権を設定して、記憶保護を行うことができる。例えばアドレス変換情報は仮想アドレスページ番号毎に保護キーデータを有する。保護キーデータはページのアクセス権をコードで表した2ビットのデータであり、特権モードでのみ読み出し可能、特権モードで読み出し及び書き込み可能、特権及びユーザモードの双方で読み出しのみ可能、そして、特権モード及びユーザモードの双方で読み出し及び書き込み可能の何れかのアクセス権が設定可能にされる。実際のアクセスタイプが上記保護キーデータで設定されたアクセス権に違反する場合には、TLB保護違反例外が発生される。TLB保護違反例外が発生された場合、例えば、その保護違反を例外処理にて解決した後、例外処理からの復帰命令を実行して、中断された通常処理命令を再実行することになる。
【0035】図3(a)には、オペレーティングシステムによって管理されるタスクが実行されていない場合の主要処理の流れが示される。
【0036】CPUの処理単位(タスク)を効率良く実行管理するプログラムをスケジューラといい、これが起動されることによりスケジューリング処理が可能になる。このスケジューリング処理が開始された後に実行できるタスクがあるか否かの判別が行われる(S31,S32)。この判別において、実行できるタスクがある(YES)と判断された場合には当該タスクが実行される(S33)。また、上記ステップS32の判別において、実行できるタスクが無い(NO)と判断された場合には、アイドル状態に入る前に、ライトバック処理が行われる(S34)。そしてこのライトバック処理が行われた後に、アイドル処理が行われ、この処理によりCPU3は、消費電力低減のため低消費電力モードに移行される(S35)。この低消費電力モードにおいてイベントが発生した場合には、対応するタスクが実行される(S36)。ここで、従来技術に従えば、実行すべきタスクが無い場合には、CPUは消費電力低減のためにアイドル状態に移行されるが、本例においては、このアイドル状態に移行される前に、SDRAM232へのライトバックが行われ、しかる後に、アイドル状態に移行される。これは、CPU3によってメモリアクセスが行われていない期間を利用してライトバック処理を行うことにより、キャッシングにおけるシステム性能低下を軽減するためである。
【0037】図3(b)には上記ライトバック処理(S34)の流れが示される。
【0038】ライトバック処理(S34)においては、先ず1ブロック分のダーティビットがチェックされる(S341)。このチェックにおいて、ダーティビットの論理状態からダーティか否かの判別が行われる(S342)。上記ステップS342の判別において、ダーティである(YES)と判断された場合には、バリッドビットを有効とした状態でそのブロックについてSDRAM232へライトバックし、その後、当該ブロックにおけるダーティビットをクリアする(S343)。そして、全てのブロックについての処理を完了したか否かの判別が行われる(S344)。この判別において全てのブロックについての処理が完了していない(NO)と判断された場合には、上記ステップS341の判別に戻る。また、上記ステップS344の判別において全てのブロックについての処理が完了した(YES)と判断された場合には当該ライトバック処理が終了される。尚、上記ステップS342の判別においてダーティではない(NO)と判断された場合には、それはデータキャッシュメモリ43のデータが更新されていないことを意味するから、上記ステップS343のライトバック処理を行うことなしに、上記ステップS344の判別に移行される。
【0039】図2には、上記ステップS33においてタスクが実行されている場合の主要処理の流れが示される。
【0040】CPU3から、あるアドレスに対する読み出し、又は書き込みが要求されると(S11)、該当アドレスのデータがデータキャッシュメモリ43上にあるか否かの判別が行われる(S12)。この判別において、該当アドレスのデータがデータキャッシュメモリ43上にある(YES)と判断された場合には、読み出しか書き込みかの判別が行われる。この判別において、「読み出し」であると判断された場合にはデータキャッシュメモリ43上のデータがCPU3に渡される。また、上記ステップS13の判別において書き込みであると判断された場合には、データキャッシュメモリ43上のデータをCPU3から受け取ったデータに変更する(S15)。そして、該当ブロックに対してダーティビットをセットし(S16)、CPU3からの要求待ち状態になる(S24)。
【0041】また、上記ステップS12の判別において、該当アドレスのデータがデータキャッシュメモリ43上には無い(NO)と判断された場合には、入れ替えを行うキャッシュメモリブロックの選択が行われる(S17)。そして、該当ブロックはダーティか否かの判別が行われる(S18)。この判別において、該当ブロックはダーティである(YES)と判断された場合には、該当ブロックのデータがSDRAM232に書き戻される(S19)。そして、SDRAM232から該当アドレスデータがキャッシュメモリブロック分読み出され(S20)、上記ステップS13の判別に移行される。
【0042】図9には上記マイクロコンピュータ231でのメモリアクセスの様子が示される。
【0043】図9に示されるように、CPU3によってSDRAM232における第1ブロックへのアクセスが行われ、このとき、データキャッシュメモリ43のデータが変更されたものとすると、実行できるタスクが無くなったときに、アイドル状態に入る前にライトバックが行われる。このようにライトバックが行われることから、次のイベント■が発生した場合には、SDRAM232における第1ブロックへのライトバックを行うことなしにSDRAM232における第2ブロックへのアクセスが可能とされるので、ライトバックに起因する性能低下を軽減することができる。
【0044】上記した例によれば、以下の作用効果を得ることができる。
【0045】(1)CPU3によってSDRAM232における第1ブロックへのアクセスが行われ、このとき、データキャッシュメモリ43のデータが変更されたものとすると、実行できるタスクが無くなったときに、アイドル状態に入る前にライトバックが行われるため、次のイベント■が発生した場合には、SDRAM232における第1ブロックへのライトバックを行うことなしにSDRAM232における第2ブロックへのアクセスが可能とされるので、ライトバックに起因するシステム性能低下を軽減することができる。つまり、CPU3によって実行できるタスクが無くなったとき、直ぐにアイドル状態に移行させるのではなく、先ず、SDRAM232へのライトバックを行い、しかる後にアイドル状態に移行させることにより、イベント■の発生においてSDRAM232のライトバックを行うこと無しに、SDRAM232の新たなキャッシングが行われるため、ライトバックに起因するシステム性能低下を軽減することができる。
【0046】(2)オペレーティングシステムによって上記ライトバックが制御されるので、オペレーティングシステムを変更すれば良く、マイクロコンピュータ231のハードウェアの構成変更を伴わずに済む。
【0047】以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0048】例えば、ハードウェアによってライトバック処理を行うことができる。図4には、ハードウェアによってライトバック処理を行う場合のマイクロコンピュータの主要構成が示される。尚、図4においてはキャッシュTLBコントローラ44以外の構成は、図1に示されるのと同様とされる。
【0049】図4に示されるマイクロコンピュータ231においては、キャッシュコントローラ44として、ライトバック制御回路44a、バス状態制御回路44b、キャッシュ制御回路44cとを含んで成るものが適用されている。
【0050】バス状態監視回路44bはバスコントローラ5のコントロール状態からバスの状態を監視することにより、CPU3によってSDRAM232がアクセスされていない期間を検出する。ライトバック制御回路44aは、データキャッシュメモリ43にダーティブロックが存在する場合に、上記バス状態監視回路44bによるバス監視結果に基づいて、SDRAM232がアクセスされていない期間にキャッシュ制御回路44cに対してライトバック指令信号を与える。キャッシュ制御回路44cには、データキャッシュメモリ43に一つでもダーティなブロックがあることを示すフラグを保持するためのレジスタが含まれる。キャッシュメモリ43内のブロックがダーティにされる際、上記フラグがセットされる。従って、上記ダーティブロックが存在するか否かは、キャッシュ制御回路44c内の上記フラグの状態によって知ることができる。ライトバック制御回路44aは、上記キャッシュ制御回路44c内の上記フラグ状態に従って、ライトバック制御を開始する。このライトバック制御において、バス状態監視回路44bによるバス監視結果に基づいてライトバック指示信号をアサートする。キャッシュ制御回路44cは、キャッシュTLBコントローラとしての基本的な制御機能を備えている。キャッシュ制御回路44cは、上記ライトバック制御回路44aから与えられたライトバック指示信号に基づいてデータキャッシュメモリ43のライトバックを制御する。
【0051】図5には、図4に示されるキャッシュコントローラ44の動作の流れが示される。
【0052】CPU3から、あるアドレスに対する読み出し、又は書き込みが要求されると(S11)、該当アドレスのデータがデータキャッシュメモリ43上にあるか否かの判別が行われる(S12)。この判別において、該当アドレスのデータがデータキャッシュメモリ43上にある(YES)と判断された場合には、読み出しか書き込みかの判別が行われる。この判別において、「読み出し」であると判断された場合にはデータキャッシュメモリ43上のデータがCPU3に渡される。また、上記ステップS13の判別において書き込みであると判断された場合には、データキャッシュメモリ43上のデータをCPU3から受け取ったデータに変更する(S15)。そして、該当ブロックに対してダーティビットをセットし(S16)、CPU3からの要求待ち状態になる(S24)。
【0053】また、上記ステップS12の判別において、該当アドレスのデータがデータキャッシュメモリ43上には無い(NO)と判断された場合には、入れ替えを行うキャッシュメモリブロックの選択が行われる(S17)。そして、該当ブロックはダーティか否かの判別が行われる(S18)。この判別において、該当ブロックはダーティである(YES)と判断された場合には、該当ブロックのデータがSDRAM232に書き戻される(S19)。そして、SDRAM232から該当アドレスデータがキャッシュメモリブロック分読み出され(S20)、上記ステップS13の判別に移行される。
【0054】一方、バス状態監視回路44bによって外部アドレスバス60の状態が監視されており、それによってSDRAM232がCPU3によってアクセスされていない期間を把握することができる。ライトバック制御回路44aは、バス状態監視回路44bによって、SDRAM232がアクセス中でないことが確認された場合にライトバック指示信号をアサートする。これにより、キャッシュ制御回路44cは、ダーティブロックは存在するか否かの判別を行う(S22)。この判別においてダーティブロックは存在する(Yes)と判断された場合には、キャッシュブロックのバリッドビットを有効とした状態のままSDRAM232にライトバックし、その後、対応するダーティビットのフラグをクリアする(S23)。また、上記ステップS22の判別において、ダーティなブロックは存在しないと判断された場合には、上記ステップS23のライトバックを行わずに、CPU3からの次の要求待ち状態に移行される(S23)。
【0055】このようにSDRAM232がアクセスされていない期間を利用してライトバックが行われるため、例えば図9に示されるようにイベント■が発生された際に、ライトバックを行わずに済むので、ライトバックに起因するシステムの性能低下を軽減することができる。
【0056】以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるRISCアーキテクチャを有するマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種マイクロコンピュータに広く適用することができる。
【0057】本発明は、少なくともキャッシュシステムを有することを条件に適用することができる。
【0058】
【発明の効果】本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0059】すなわち、オペレーティングシステムによって管理されるタスクが実行されていない期間に、ダーティビットが有効なブロックについてバリッドビットを有効とした状態でキャッシュメモリのデータをメモりにライトバックする。連続する二つのイベントが互いに異なる場合には、前回使用した第1ブロックのデータとは異なる第2ブロックについてのキャッシングが必要になるが、上記のようにオペレーティングシステムによって管理されるタスクが実行されていない期間にライトバック処理が実行されるようになっているため、上記第2ブロックについてのキャッシングの直前において、前回使用したキャッシュ内容をライトバックするケースが減少され、それによってシステムの性能低下が軽減される。
【0060】また、メモリアクセスに使用されるバスの監視を行うことで、中央処理装置によってメモリがアクセスされていない期間を検出し、上記メモリがアクセスされていない期間にライトバック処理を行うことにより、前回使用した第1ブロックのデータとは異なる第2ブロックについてのキャッシングが必要になる場合において、前回使用したキャッシュ内容を当該キャッシングの直前にライトバックするケースが減少されるから、その分、システムの性能低下が軽減される。
【出願人】 【識別番号】000005108
【氏名又は名称】株式会社日立製作所
【出願日】 平成12年10月3日(2000.10.3)
【代理人】 【識別番号】100089071
【弁理士】
【氏名又は名称】玉村 静世
【公開番号】 特開2002−108702(P2002−108702A)
【公開日】 平成14年4月12日(2002.4.12)
【出願番号】 特願2000−303491(P2000−303491)