説明

キャッシュ・フラッシュ装置

【目的】 無駄なテーブルウォークを省くことにより効率の良いキャッシュ・フラッシュアクセスを可能とする。
【構成】 アドレス生成ユニット12は、キャッシュ・フラッシュ対象とする論理アドレスを生成する。D−TLB14aは、上記論理アドレスをデータバス13aを介して受取り、物理アドレス変換を実行すると共にヒット/ミス信号を出力する。同様に、I−TLB14bは、上記論理アドレスを命令バス13bを介して受取り、物理アドレス変換を実行すると共にヒット/ミス信号を出力する。マルチプレクサ16a及び16bは、上記各TLBからのヒット/ミス信号に従って上記各TLBのどちらか一方がミスであった場合、他方のTLBの物理アドレスをD−CACHE15a及びI−CACHE15bに供給する。

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、TLB(Translation Look-ahead Buffer )及びキャッシュメモリを内蔵する1チップマイクロプロセッサ(MPU)のキャッシュ・フラッシュ装置に関する。
【0002】
【従来の技術】ハーバードアーキテクチャで構成されたMPUは、命令バスとデータバスとを個別に有している。このMPUが、データ用TLB(D−TLB)、命令用TLB(I−TLB)及びデータ用キャッシュメモリ(D−CACHE)、命令用キャッシュメモリ(I−CACHE)を有している場合のキャッシュ・フラッシュ動作を図3、図4及び図5を用いて説明する。
【0003】上記MPUにおけるアドレス変換機構及びキャッシュメモリ機構の概略構成を図3に示す。MPU1内のアドレス生成ユニット2からキャッシュ・フラッシュの対象とするデータ又は命令の論理アドレスがデータバス3a及び命令バス3b各々に与えられる。データバス3aに与えられた論理アドレスの上位ビット(DADH)は、D−TLB4aにおいて、タグ比較用物理アドレスに変換される。このD−TLB4aにおけるアドレス変換の基本的な一例を図4を用いて説明する。
【0004】図4の構成では、上記アドレス生成ユニット2において生成された論理アドレスの上位ビット(DADH)は、更にDADHaとDADHbとに分類される。一方、上記D−TLB4aは、アドレス変換テーブル41を有している。このアドレス変換テーブル41には、論理アドレス(LA)と物理アドレス(PA)との組が予め定められた数(m)だけ格納されており、上記DADHbによっていずれかの一組にアクセスすることができる。
【0005】D−TLB4aに入力された上記DADHbに対応し、上記アドレス変換テーブル41から論理アドレス及び物理アドレスが選択される(同図ではLA1とPA1)。選択された論理アドレスLA1はコンパレータ42に送られ、上記DADHaと比較される。上記論理アドレスLA1と上記DADHaとが等しい場合、コンパレータ42の出力は“1”となる。又、上記選択された物理アドレスPA1は、上記DADHbと共にゲート43に送られる。ゲート43は、上記コンパレータ42の比較結果を入力し、この入力が“1”であった場合、即ち、上記DADHaと上記LA1とが等しい場合、物理アドレスPA1を上位ビット、DADHbを下位ビットにし、タグ比較用アドレスとして出力する。
【0006】これにより、アドレス生成ユニット2から出力される論理アドレスの上位ビットDADHは、D−TLB4aによって、物理アドレスであるタグ比較用アドレスに変換されて出力される。
【0007】図5に一例として示すようにD−CACHE5aは、このタグ比較用アドレスと、上記アドレス生成ユニット2によって生成された論理アドレスの下位ビットDADLを入力する。D−CACHEにはテーブル51が設けられており、タグ、バリットビット及びデータのセットが予め定められた数(n)だけ格納されており、上記DADL(エントリー)によっていずれかの一セットにアクセスすることができる。上記テーブル51のタグは、DADLによって指定されるデータが上記論理アドレスの指定するデータであるか否かを確認するためにタグ比較用アドレス(物理アドレス)と比較する情報であり、上記バリットビットはこのDADLによって指定されるデータが有効であるか無効であるを確認するための情報であり、“1”は有効、“0”は無効を意味する。
【0008】図5では、DADLによってTAG1,V1及びDATA1が指定される。上記TAG1はコンパレータ52に送られ、上記D−TLB4aから出力されたタグ比較用アドレス(PA1,DADHb)と比較される。コンパレータ52は、上記タグ比較用アドレスとTAG1とが等しい場合、“1”をAND回路53に出力する。AND回路53は、上記コンパレータ52の出力とV1とのANDを取る。このAND回路53の出力が“1”の時、バリットビットV1を“0”としてキャッシュ・フラッシュを行なう。
【0009】上述したD−TLB4a及びD−CACHE5aのキャッシュ・フラッシュ動作と同様に、I−TLB4b及びI−CACHE5bとにも同様なキャッシュ・フラッシュ動作が行なわれる。
【0010】
【発明が解決しようとする課題】しかし、上記従来の方法では、キャッシュ・フラッシュを行なうための論理アドレスがアドレス生成ユニット2から送られ、D−TLB4a及びI−TLB4bで物理アドレスに変換される際、いずれか一方のTLBにおいて、物理アドレスへの変換が失敗した場合(TLBミスヒット)、即ち、TLBの有するアドレス変換テーブルで変換が出来なかった場合、テーブルウォークが行なわれる。
【0011】テーブルウォークとは、TLBミスが発生した場合、主メモリに格納されている変換テーブルにアクセスすることにより物理アドレスを得ることである。アドレス変換をミスした方のTLBに入力された論理アドレスは、これによって物理アドレスに変換され、上記TLBに対応するキャッシュメモリに送られてキャッシュ・フラッシュが実行される。このため、上記テーブルウォークが行なわれている時間、キャッシュメモリへのアクセスが遅れ、キャッシュ・フラッシュ命令の終了が遅れる。
【0012】この発明は上記実情に鑑みてなされたもので、効率の良いキャッシュ・フラッシュ命令が実行可能なキャッシュ・フラッシュ装置を提供することを目的とする。
【0013】
【課題を解決するための手段】この発明に係るキャッシュ・フラッシュ装置は、データバスと命令バスとが分離され、データ用キャッシュメモリと命令用キャッシュメモリとを有するマイクロプロセッサ(MPU)のキャッシュ・フラッシュ装置であって、キャッシュ・フラッシュ対象とする論理アドレスを生成し、これを上記命令バス及びデータバスに出力するアドレス生成手段と、データ用アドレス変換テーブルを有し、上記アドレス生成手段によって生成された論理アドレスを上記データバスを介して入力し、上記データ用アドレス変換テーブルを用いて物理アドレスに変換する際、上記データ用アドレス変換テーブルに上記論理アドレスの対象となる物理アドレスがある場合はヒット信号を、ない場合はミス信号を出力するデータ用TLB(Translation Look-ahead Buffer )と、命令用アドレス変換テーブルを有し、上記アドレス生成手段によって生成された論理アドレスを上記データバスを介して入力し、上記命令用アドレス変換テーブルを用いて物理アドレスに変換する際、上記命令用アドレス変換テーブルに上記論理アドレスの対象となる物理アドレスがある場合はヒット信号を、ない場合はミス信号を出力する命令用TLBと、上記データ用TLB又は命令用TLBのいずれか一方からミス信号が出力され、他方からヒット信号が出力された場合、ヒット信号を出力した上記データ用TLB又は命令用TLBによって変換された物理アドレスを上記データ用キャッシュメモリ及び命令用キャッシュメモリに供給する制御手段とを具備することを特徴とする。
【0014】
【作用】キャッシュ・フラッシュ命令が実行される際、アドレス生成手段によってキャッシュ・フラッシュ対象とする論理アドレスが生成され、データバス及び命令バスに出力される。データバスに送られた論理アドレスは、データ用TLBによって物理アドレスに変換され、データ用TLBはヒット信号を出力する。しかし、上記論理アドレスが、データ用TLBによって物理アドレスに変換できなかった場合、データ用TLBは、ミス信号を出力する。
【0015】一方、命令バスに送られた論理アドレスは、命令用TLBによって物理アドレスに変換され、命令用TLBはヒット信号を出力する。しかし、上記論理アドレスが、命令用TLBによって物理アドレスに変換できなかった場合、命令用TLBは、ミス信号を出力する。
【0016】制御手段は、上記データ用TLBから出力されるヒット信号又はミス信号と上記命令用TLBから出力されるヒット信号又はミス信号と基づき、上記データ用TLB又は命令用TLBのどちらか一方が物理アドレスに変換できなかった場合、他方のTLBにおいて変換された物理アドレスを上記データ用キャッシュメモリ及び命令用キャッシュメモリに供給する。
【0017】
【実施例】以下、図面を参照してこの発明の一実施例を説明する。
【0018】この発明に係るキャッシュ・フラッシュ装置の構成及び関連する接続を図1に示す。MPU11内に設けられたアドレス生成ユニット12は、キャッシュ・フラッシュの対象とするデータ又は命令の論理アドレスを生成し、データバス13a及び命令バス13bに出力する。データバス13aに供給された上記論理アドレスは、上位ビットDADHと下位ビットDADLとに分類され、命令バス13bに供給された上記論理アドレスは、上位ビットIADHと下位ビットIADLとに分類される。上記データバス13aには、D−TLB14a及びD−CACHE15aが接続されており、命令バス13bには、I−TLB14b及びI−CACHE15bが接続されている。
【0019】上記D−TLB14aはアドレス変換テーブル(図示せず)を有し、これを用いてデータバス13aを介して受け取った論理アドレスを物理アドレスに変換し、変換ができたか否か(ヒット/ミス)を示すDTLBHIT信号(ミスは“0”,ヒットは“1”)を出力する。上記アドレステーブルを用いて変換ができた場合(DTLBHIT=“1”)には変換された物理アドレスPDADHをマルチプレクサ16a及び16bに出力する。上記I−TLB14bも上記D−TLB14aと同様にアドレス変換テーブル(図示せず)を有し、命令バス13bを介して受け取った論理アドレスを物理アドレスに変換する。更に、変換されたか否か(ヒット/ミス)を示すITLBHIT信号(ミスは“0”,ヒットは“1”)を出力すると共に、変換ができた場合には(ITLBHIT=“1”)物理アドレスPIADHをマルチプレクサ16a及び16bに出力する。
【0020】マルチプレクサ16aは、上記DTLBHIT,ITLBHIT信号に従って、D−TLB14aにおいて変換された物理アドレスPDADH(入力0)又はI−TLB14bにおいて変換された物理アドレスPIADH(入力1)のいずれかをCPDADHとしてD−CACHE15aに出力し、マルチプレクサ16bは、上記DTLBHIT,ITLBHIT信号に従って、上記PIADH(入力0)又は上記PDADH(入力1)のいずれかをCPIADHとしてI−CACHE15bに出力する。上述したDTLBHIT信号及びITLBHIT信号と、マルチプレクサ16a及び16bによって出力されるCPDADH及びCPIDHとの関係を図2に示す。
【0021】D−CACHE15a及びI−CACHE15bはライト(コピー)バック方式のキャッシュメモリであり、各々テーブル(図示せず)が設けられている。このテーブルにはタグ、バリットビット、モディファイビット及びデータのセットが予め定められた数だけ格納されている。上記モディファイビットは、キャッシュ・フラッシュの対象とするアドレスのデータが、主メモリ21内に格納されている上記アドレスのデータと一致しているか否か(一致“0”、不一致は“1”)を示すビットである。上記D−CACHE15aは、上記DADLと、上記マルチプレクサ16aを介して入力されるCPDADHとに基づいてキャッシュ・フラッシュの対象とするデータが有効(バリットビット=“1”)であるか又は無効(バリットビット=“0”)であるかを判断し、有効であればこれを無効とする(バリットビットを“0”とする)。上記I−CACHE15bは、上記IADLと、上記マルチプレクサ16bを介して入力されるCPIDHとに基づいてキャッシュ・フラッシュの対象とするデータが有効(バリットビット=“1”)であるか又は無効(バリットビット=“0”)であるかを判断し、有効であればこれを無効とする(バリットビットを“0”とする)。
【0022】又、D−CACHE15a及びI−CACHE15bはライトバック方式であるため、キャッシュ・フラッシュの対象とするデータを無効とすると共に、物理アドレスに対応する主メモリ21内のデータを更新する必要がある。このため、マルチプレクサ16cは、D−CACHE15a又はI−CACHE15bにおいてキャッシュ・フラッシュの対象とするデータが無効とされた際、キャッシュ・フラッシュが実行されたキャッシュメモリ側の物理アドレス(PDADH,DADL又はPIADH,IADL)を選択する。MPU11は、上記選択された物理アドレスに基づいて主メモリ21内のデータを上記キャッシュメモリ内のデータに更新する。
【0023】次に同実施例の動作を説明する。MPU11内においてキャッシュ・フラッシュ命令が実行される際、まず、データ若しくは命令の論理アドレスがアドレス生成ユニット12において生成される。生成された論理アドレスは、データバス13a及び命令バス13bに送られる。
【0024】データバス13aの論理アドレスの下位ビットDADLは、D−TLB14aに送られてヒット/ミスのチェックが行なわれ、この結果はDTLBHIT信号として出力される。又、命令バス13bの論理アドレスの下位ビットIADLは、I−TLB14bに送られてヒット/ミスのチェックが行なわれ、この結果はITLBHIT信号として出力される。
【0025】ここで、上記図2に示すように、D−TLB14a及びI−TLB14b共にミスであった場合(DTLBHIT=“0”,ITLBHIT=“0”)、上記D−TLB14aは、テーブルウォークを行なう。即ち、上記D−TLB14aは、入力したDADHより主メモリへのアクセス用の論理アドレスを生成し、図示せぬ出力用バスを介して主メモリ21をアクセスする。主メモリ21には、論理アドレスと物理アドレスとの対がテーブル状態で格納されており、上記アクセスによりD−TLB14aにおいて生成された論理アドレスに対応する物理アドレスが得られる。この物理アドレスは、MPU11内の図示せぬ入力用バス(データ及び命令が共通)を介してD−TLB14aに供給される。D−TLB14aは、供給された物理アドレスをPDADHとしてD−TLB14aよりマルチプレクサ16a及び16bに出力する。マルチプレクサ16aは、PDADH(入力0)を選択し、これをCPDADHとしてD−CACHE15aに出力する。マルチプレクサ16bもPDADH(入力1)を選択し、これをCPIADHとしてI−CACHE15bに出力する。これにより、上記D−CACHE15a及びI−CACHE15b各々にタグ比較用アドレスとして物理アドレスPDADHが供給される。上記D−CACHE15a及びI−CACHE15bは、各入力に従って各々のテーブルを参照し、テーブルにキャッシュ・フラッシュの対象とするデータが存在し、そのデータの対応するバリットビットが“1”であれば、これを“0”としてデータを無効とする。更に、モディファイビットが“1”であれば、主メモリ21内に格納された上記物理アドレスに対応するデータを上記ヒットしたキャッシュメモリ内のデータに更新する。
【0026】又、D−TLB14aではミスで、I−TLB14bではヒットした場合(DTLBHIT=“0”,ITLBHIT=“1”)、マルチプレクサ16aは、PIADH(入力1)を選択し、これをCPDADHとしてD−CACHE15aに出力する。又、マルチプレクサ16bもPIADH(入力0)を選択し、これをCPIADHとしてI−CACHE15bに出力する。これにより、上記D−CACHE15a及びI−CACHE15b各々にタグ比較用アドレスとして物理アドレスPIADHが供給される。上記D−CACHE15a及びI−CACHE15bは、各入力に従って各々のテーブルを参照し、テーブルにキャッシュ・フラッシュの対象とするデータが存在し、そのデータの対応するバリットビットが“1”であれば、これを“0”としてデータを無効とする。更に、モディファイビットが“1”であれば、主メモリ21内に格納された上記物理アドレスに対応するデータを上記ヒットしたキャッシュメモリ内のデータに更新する。
【0027】又、D−TLB14aではヒットで、I−TLB14bではミスの場合(DTLBHIT=“1”,ITLBHIT=“0”)、マルチプレクサ16aは、PDADH(入力0)を選択し、これをCPDADHとしてD−CACHE15aに出力する。又、マルチプレクサ16bもPDADH(入力1)を選択し、これをCPIADHとしてI−CACHE15bに出力する。これにより、上記D−CACHE15a及びI−CACHE15b各々にタグ比較用アドレスとして物理アドレスが供給される。上記D−CACHE15a及びI−CACHE15bは、各入力に従って各々のテーブルを参照し、テーブルにキャッシュ・フラッシュの対象とするデータが存在し、そのデータの対応するバリットビットが“1”であれば、これを“0”としてデータを無効とする。更に、モディファイビットが“1”であれば、主メモリ21内に格納された上記物理アドレスに対応するデータを上記ヒットしたキャッシュメモリ内のデータに更新する。
【0028】又、D−TLB14a及びI−TLB14b共にヒットである場合(DTLBHIT=“1”,ITLBHIT=“1”)、マルチプレクサ16aは、PDADH(入力0)を選択し、これをCPDADHとしてD−CACHE15aに出力する。又、マルチプレクサ16bは、PIADH(入力0)を選択し、これをCPIADHとしてI−CACHE15bに出力する。これにより、上記D−CACHE15a及びI−CACHE15b各々にタグ比較用アドレスとして物理アドレスが供給される。上記D−CACHE15a及びI−CACHE15bは、各入力に従って各々のテーブルを参照し、テーブルにキャッシュ・フラッシュの対象とするデータが存在し、そのデータの対応するバリットビットが“1”であれば、これを“0”としてデータを無効とする。更に、モディファイビットが“1”であれば、主メモリ21内に格納された上記物理アドレスに対応するデータを上記ヒットしたキャッシュメモリ内のデータに更新する。
【0029】上述したマルチプレクサ16a及び16bの動作によって、無駄なテーブルウォークを省略することができ、各TLB14a,14bから出力される物理アドレスを適切にD−CACHE15a,I−CACHE15bに供給することができる。これにより、効率の良いキャッシュ・フラッシュサイクルが行なえる。
【0030】尚、同実施例においては、キャッシュメモリがライト(コピー)バック方式であったが、この発明はキャッシュメモリの種類には関係せず、例えばキャッシュメモリがライトスルー方式であっても適用できる。
【0031】
【発明の効果】以上詳記したようにこの発明によれば、マルチプレクサを用いてデータ用TLB又は命令用TLBにおいて変換された物理アドレスを有効にデータ用キャッシュメモリ、命令用キャッシュメモリに供給することにより、無駄なテーブルウォークを省くことができ、これによって効率の良いキャッシュ・フラッシュアクセスを行なうことができる。
【図面の簡単な説明】
【図1】この発明に係るキャッシュ・フラッシュ装置の概略構成及び接続を示すブロック図。
【図2】同実施例における、各TLBのヒット/ミス信号とマルチプレクサの制御関連表。
【図3】従来のキャッシュ・フラッシュ装置の構成を示すブロック図。
【図4】上記従来のキャッシュ・フラッシュ装置のTLBの構成の一例を示すブロック図。
【図5】上記従来のキャッシュ・フラッシュ装置のキャッシュメモリの構成の一例を示すブロック図。
【符号の説明】
11…MPU、12…アドレス生成ユニット、13a…データバス、13b…命令バス、14a…データ用TLB、14b…命令用TLB、15a…データ用キャッシュメモリ、15b…命令用キャッシュメモリ、16a,16b,16c…マルチプレクサ、21…主メモリ。

【特許請求の範囲】
【請求項1】 データバスと命令バスとが分離され、データ用キャッシュメモリと命令用キャッシュメモリとを有するマイクロプロセッサ(MPU)のキャッシュ・フラッシュ装置において、キャッシュ・フラッシュ対象とする論理アドレスを生成し、これを上記命令バス及びデータバスに出力するアドレス生成手段と、データ用アドレス変換テーブルを有し、上記アドレス生成手段によって生成された論理アドレスを上記データバスを介して入力し、上記データ用アドレス変換テーブルを用いて物理アドレスに変換する際、上記データ用アドレス変換テーブルに上記論理アドレスのに対応する物理アドレスが存在する場合はヒット信号を、存在しない場合はミス信号を出力するデータ用変換バッファと、命令用アドレス変換テーブルを有し、上記アドレス生成手段によって生成された論理アドレスを上記データバスを介して入力し、上記命令用アドレス変換テーブルを用いて物理アドレスに変換する際、上記命令用アドレス変換テーブルに上記論理アドレスに対応する物理アドレスが存在する場合はヒット信号を、存在しない場合はミス信号を出力する命令用変換バッファと、上記データ用変換バッファ又は命令用変換バッファのいずれか一方からミス信号が出力され、他方からヒット信号が出力された場合、ヒット信号を出力した上記データ用変換バッファ又は命令用変換バッファによって変換された物理アドレスを上記データ用キャッシュメモリ及び命令用キャッシュメモリの両方に供給する制御手段とを具備することを特徴とするキャッシュ・フラッシュ装置。

【図1】
image rotate


【図2】
image rotate


【図3】
image rotate


【図4】
image rotate


【図5】
image rotate


【公開番号】特開平6−75854
【公開日】平成6年(1994)3月18日
【国際特許分類】
【出願番号】特願平4−228346
【出願日】平成4年(1992)8月27日
【出願人】(000003078)株式会社東芝 (54,554)