JPH0711793B2 - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH0711793B2
JPH0711793B2 JP2176362A JP17636290A JPH0711793B2 JP H0711793 B2 JPH0711793 B2 JP H0711793B2 JP 2176362 A JP2176362 A JP 2176362A JP 17636290 A JP17636290 A JP 17636290A JP H0711793 B2 JPH0711793 B2 JP H0711793B2
Authority
JP
Japan
Prior art keywords
internal
bus
data
memory
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2176362A
Other languages
English (en)
Other versions
JPH03135641A (ja
Inventor
治隆 後藤
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Publication of JPH03135641A publication Critical patent/JPH03135641A/ja
Publication of JPH0711793B2 publication Critical patent/JPH0711793B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches

Description

【発明の詳細な説明】 〔発明の目的〕 (産業上の利用分野) 本発明は、汎用マイクロプロセッサに関するもので、特
に詳細にはキャッシュメモリを内蔵したマイクロプロセ
ッサの構成に関する。
(従来の技術) 第4図は従来におけるマイクロプロセッサ、即ちCPUの
構造図である。従来のCPU10は、主として演算処理装置2
0、即ちPU、メモリマネジメントユニット13、即ちMMU、
命令キャッシュメモリ12、データキャッシュメモリ11、
外部バスインターフェースユニット、即ち外部バス制御
ユニット14(BIU)から構成されている。そして、PU20
とMMU13とは、論理バス、即ち命令論理アドレスバス15
およびデータ論理アドレスバス16を介して接続されてお
り、MMU13とBIU14とは論理アドレスバス18を介して接続
されている。また、PU20とBIU14との間は、内部データ
バス17を介して持続されている。上記構成を有する従来
のCPU10の動作について説明する。例えば、PU20がオペ
ランドデータの読み込みを行なう場合、まず、データ論
理アドレスバス16に論理アドレスを出力する。データキ
ャッシュ11は、このアドレスがデータキャッシュ11内に
記憶されているか、即ちこのアドレスがデータキャッシ
ュ11内のアドレス値と一致するかどうかをチェックす
る。一致した場合、目的とするオペランドデータがデー
タキャッシュ11内にキャッシングされていることになる
ので、データキャッシュ11はそのデータを内部データバ
ス17を介してPU20へ転送する。もし、一致しなかった場
合、オペランドデータはデータキャッシュ11内にキャッ
シングされていないことになりMMU13は、バス16上の論
理アドレスを物理アドレスに変換し、物理バス18を介し
てBIU14に転送する。BIU14は外部アドレスバス30に目的
とするデータのアドレスを出力する。その結果、図示し
ない外部メモリ内のデータは、外部データバス31および
内部データバス17を介しPU20へ転送される。同時に、こ
のデータはデータキャッシュ11内へも書き込まれる。以
上で、オペランドデータの読み込みの動作は終了する。
ところで、PU20およびBIU14は内部データバス17を共用
している。このため、例えば外部メモリから内部データ
バス17を介してCPU20へデータが転送されている間、BIU
14は内部データバス17を使用することができない。よっ
てBIU14は内部データバス17を介してデータキャッシュ
メモリ11あるいは命令キャッシュメモリ12へデータを転
送することができない。
また、BIU14が内部データバス17を介してデータキャッ
シュ11あるいは命令キャッシュ12を更新している間は、
PU20は内部データバス17を使用することができない。特
にこれらのキャッシュ11および12のラインサイズが大き
い場合、BIU14は内部データバス17を長時間占有するこ
とになる。この間PU20は、実行待ちの状態となりCPU10
全体のスループットが著しく低下するという問題点があ
った。以上は、オペランドデータの読み込みの場合を例
にとり説明したが、他の動作、例えば命令フェッチ等の
場合においても物理データバス17はPU20およびBIU14に
よって共用されるため同様の問題が生じていた。
(発明が解決しようとする課題) 以上説明したように従来のCPUは、PUおよびBIUが物理バ
スを共用する構成になっている。よって、例えばPUが物
理バスを使用する間、BIUは物理バスを要することがで
きない。逆にBIUが物理バスを使用する間、PUは物理バ
スを使用できない。このためCPU全体のスループットが
低下するという問題があった。
また、従来のマイクロプロセッサの構成では、キャッシ
ュメモリ等を増設する場合、この増設キャッシュメモリ
の動作をコントロールする為のメモリマネジメントユニ
ット(MMU)や内部データバス等も合せて増設する必要
があり、そのため構成が複雑となっていた。また、複数
のプロセッサから構成されるマルチプロセッサの場合も
同様の問題があった。
本発明は上記の問題を解決するため、PUとそれ以外の構
成要素、例えば外部バス制御手段とが独立して実行でき
るような構造を有するスループットの高いマイクロプロ
セッサを提供することを目的とする。
〔発明の構成〕
(課題を解決するための手段) 本発明のマイクロプロセッサは主として命令の解読およ
び演算を行なう演算処理装置と、論理アドレスから物理
アドレスに変換する情報を記憶したアドレス変換テーブ
ルおよびキャッシュメモリの各要素から構成される内部
メモリ群と、前記内部メモリ群の動作を制御する内部メ
モリ制御手段と、外部メモリを主な構成要素とする外部
メモリ群と前記内部メモリ群との間のデータの入出力を
制御する外部バス制御手段と、前記演算処理装置と前記
内部メモリ群および前記内部メモリ制御手段とを接続
し、論理アドレス、オペランド、命令等のデータおよび
前記内部メモリ群内のデータを転送する第1内部バス
と、前記内部メモリ群および前記内部メモリ制御手段と
前記外部バス制御手段とを接続し、前記外部メモリ群内
のデータを転送する第2内部バスとを具備し、前記内部
メモリ群の各構成要素および前記内部メモリ制御手段
は、前記第1内部バスおよび前記第2内部バスに対し並
列に接続され、前記演算処理装置は前記第1内部バスの
使用を制御し、前記内部メモリ制御手段は前記第2内部
バスの使用を制御し、該演算処理装置および該内部メモ
リ制御手段は独立して動作することを特徴としており、
請求項(2)記載のマイクロプロセッサは、請求項
(1)記載のマイクロプロセッサにおいて前記外部バス
制御手段は、前記内部メモリ制御手段からの指示を受け
て前記外部メモリ群への書き込み要求時に該書き込みア
ドレスをモニタし、そのアドレスと同一アドレスを有す
る前記内部メモリ群内のデータを消去させる機能を有す
ることを特徴としており、請求項(3)記載のマイクロ
プロセッサは、請求項(1)記載のマイクロプロセッサ
において前記演算処理装置および前記内部メモリ群を構
成要素とするプロセッサを複数個具備し該複数のプロセ
ッサは前記第2内部バスに対し並列に接続されているこ
とを特徴としており、請求項(4)記載のマイクロプロ
セッサは、請求項(1)記載のマイクロプロセッサにお
いて前記内部メモリ群は、前記キャッシュメモリ群およ
び前記外部メモリ群へ転送するデータを一時的に蓄積す
るためのライトバッファを含み、該ライトバッファは前
記第1内部バスおよび前記第2内部バスに対し並列に接
続されていることを特徴としており、請求項(5)記載
のマイクロプロセッサは請求項(1)記載のマイクロプ
ロセッサにおいて前記キャッシュメモリは、命令キャッ
シュメモリおよびデータキャッシュメモリから構成され
各々のキャッシュメモリに対応した前記アドレス変換テ
ーブルを備え、該命令キャッシュメモリおよび前記デー
タキャッシュメモリは前記第1内部バスおよび前記第2
内部バスに対し並列に接続されていることを特徴として
いる。
(作用) 本発明のマイクロプロセッサは、第1内部バスと第2内
部バスとを完全に分離した構造にする。演算処理装置
は、第1内部バスを介して内部メモリ群へのアクセスを
行なう。内部メモリ制御手段および外部バス制御手段
は、第2内部バスを介して内部メモリ群および外部メモ
リ群をアクセスする。そして内部メモリ制御手段および
外部バス制御手段の動作は、演算処理装置の動作とは独
立して実行されるので、マイクロプロセッサ全体として
のスループットが向上する。また、内部メモリ群は第1
内部バスおよび第2内部バスに対し並行に配置したの
で、増設が簡単にでき内部メモリ群間のデータ内容の一
貫性を保つことができる。
(実施例) 以下本発明の実施例図面を参照して説明する。第1図
は、本発明の第一の実施例を示すマイクロプロセッサの
構成図である。同図において、従来例と同一の構成要素
には、同一の符号を付して説明する。演算処理装置20、
即ちPUは命令デコーダ21、アドレス生成ユニット22およ
び演算ユニット23から構成されている。内部メモリ群
は、ライトバッファ102、即ちWBF、キャッシュメモリお
よび変換テーブルから構成されている。
WBF102は、キャッシュメモリあるいは外部メモリへの書
き込みのデータを一時的に記憶する。すなわち、PU20の
演算器の出力と第2内部バス204,205および206との間で
書き込みデータバッファリングをする。本実施例では、
WBF102は2組のバッファからなりFIFO(First In First
Out)の構成をしている。1組のバッファは書き込みア
ドレス、データおよびデータサイズ等の属性情報を記憶
するエリアから構成される。
キャッシュメモリは、データキャッシュメモリ103およ
び命令キャッシュメモリ106から構成される。本実施例
では4Kバイト×2の2wayのセットアソシアティブ構成
で、ラインサイズは16バイト、ストアアルゴリズムはラ
イトスルー方式をとる。キャッシュはアドレスタグ、デ
ータの2つから構成され、アドレスタグには物理アドレ
スを格納する。
変換テーブルは、命令フェッチ時において、論理アドレ
スを物理アドレスに変換するために用いられる。この変
換テーブルは、オペランドデータリードライト時または
命令フェッチ時において論理アドレスをメモリ上の具体
的なアドレス値である物理アドレスに変換するために用
いられるデータアドレス変換テーブル104、即ちデータ
アドレス変換TLB(Translation Lookaside Buffer)お
よび命令アドレス変換テーブル105、即ち命令アドレス
変換TLBから構成されている。
内部メモリ制御手段101,すなわちIMC(INTERNAL MEMORY
CONTROL UNIT)は、第2内部バスの制御や、内部メモ
リ群の制御、例えばキャッシュメモリの入出力の制御、
アドレス変換テーブルの更新などの制御をマイクロプロ
グラム制御および専用制御回路により実行する。IMC101
はPU20の動作と独立して上記の制御を行うことが出来
る。IMC101内には、制御に必要なコマンドレジスタ、ワ
ーキングレジスタ、制御レジスタ、アドレス変換を行う
ためのアドレス加算器、アドレス変換のエラー検出回
路、マイクロプログラム制御回路、マイクロROM、専用
制御回路等が設けられてある。
外部バス制御手段、即ち、外部バスインターフェースユ
ニット(BIU)14は、図示しない外部メモリ群等とのデ
ータの入出力動作を制御する。マイクロプロセッサ300
のバスは、主としてR,L,O,D,AおよびMバスの6バスで
構成されている。Rバス207はPU内部のレジスタ間およ
び、演算器間のデータ転送に用いられる。Lバス202
は、Rバスとほぼ同様の目的で用いられるが、加えてメ
モリデータをデータキャッシュメモリ103等からPU20へ
転送する際にも用いられる。Oバス203は、データアド
レスを転送するためのバスであり、アドレス変換時は論
理アドレスが転送される。Dバス201は演算器23におけ
る演算結果を転送するためのバスであり、Dバスを介し
てライトオペランドが転送される。上記のO,LおよびD
バスは論理アドレス、データの転送を行うバス、即ち第
1内部バスである。Aバス205は、キャッシュ更新ある
いはキャッシングされない領域のバスアクセス時の物理
アドレスが転送される。さらにTLBの内容を更新する場
合には、上記物理アドレスだけでなくTLBを更新するた
めに必要なメモリ保護情報、エラー情報も転送される。
Mバス206は、主に外部メモリ群より読み込まれたデー
タまたは外部メモリ群に書込むデータを転送するための
バスである。TLB更新時はAバスと同様に様々な情報が
このバスを介して転送される。制御線204は、IMC101と
各々の内部メモリ群間の制御に用いられる。
上記の制御線204,AおよびMバスは物理アドレス、デー
タの転送を行うバス、即ち第2内部バスである。上記し
た第1内部バスおよび第2内部バスに対し、IMC101およ
び内部メモリ群は並列に接続されている。
このように、本実施例のマイクロプロセッサ300におい
て、PU20は第1内部バスに接続されており、第2内部バ
スと完全に分離されている。PU20はこの第1内部バスを
介し内部メモリ群内のデータをアクセスすることができ
る。またBIU14は、第2内部バスに接続されており、第
1内部バスとは接続されていない。本実施例のマイクロ
プロセッサ300は、主として上記したPU20、内部メモリ
群、IMC101、BIU14、およびこれらを接続するR,L,Oおよ
びDの第1内部バス、AおよびMの第2内部バスにより
構成されており、特に演算処理装置20および内部メモリ
群をまとめてプロセッサ100と称し1チップ内に形成さ
れている。
以下、本実施例のマイクロプロセッサ300の動作につい
て説明する。例えば、命令フェッチを行う場合、PU20は
命令キャッシュメモリ106および命令アドレス変換TLB10
5に対し制御線209を介して命令アドレスを出力する。こ
れにより、命令アドレス変換TLB105におけるテーブル検
索および命令キャッシュメモリ106のアドレスタグの検
索が並行して実行される。検索の結果、目的とする命令
アドレスが、命令アドレス変換TLB105内にあり、そのア
ドレスと命令キャッシュ106のアドレスタグが一致した
場合(キャッシュヒット)目的とする命令データは命令
キャッシュ106内にキャッシングされていることにな
る。そして命令キャッシュメモリ106内の命令データはP
U20へ転送される。もし、検索の結果、目的とする命令
アドレスと命令アドレス変換TLB105を検索して得られた
アドレスとが一致しなかった場合、またはアドレスタグ
の検索の結果が無効であった場合は(キャッシュ・ミ
ス)、目的とする命令データは命令キャッシュメモリ10
6内にキャッシングされていないことになる。この場
合、命令キャッシュメモリ106は、IMC101に対しキャッ
シングの要求を指示する。
このキャッシングの要求は、第2内部バスの制御線204
を介して行われる。要求後、IMC101が要求を受け入れる
と、キャッシングすべきアドレスをAバス205に出力す
るように命令キャッシュメモリ106に対して制御線204を
介して指示する。同時にBIU14に対しAバスに出力され
たアドレスを用いて外部メモリ(図示せず)をアクセス
するように指示する。キャッシュメモリの更新はライン
単位で行うためBIU14は外部メモリから1ライン(=4
ワード=16バイト)のデータを1ワード(=4バイト)
毎に4回に分けてMバス206に転送する。1ワードの転
送が行われる度に、BIUは制御線204を介してMバス206
上にデータが転送されていることを示す信号を出力す
る。命令キャッシュメモリはその信号を利用して順にキ
ャッシュメモリにデータを書きこむ。4回の転送が終了
するとBIU14は終了信号をIMC101に送る。IMC101はそれ
を命令キャッシュメモリ106に制御線204を介して出力す
る。
IMC101およびBIU14が内部メモリ群および外部メモリ群
へデータアクセス要求を出し、第2内部バスが使用され
ている間、PU20は独自に第1内部バスを介して内部メモ
リ群へのアクセスを行なうことができ、またRバス207
を介して他の演算器間とデータの転送を行なうことがで
きる。
一方、命令キャッシュメモリ106の機能がソフトウェア
によって利用できないように指定された場合、またはI/
Oの領域のようにキャッシングが出来ないような特殊な
アドス領域に対してアクセスをする場合は、次のように
命令フェッチが行われる。まず同様にPU20は命令キャッ
シュメモリ106および命令アドレス変換TLB105に対し制
御線209を介して命令アドレスを出力する。TLB105でア
ドレス変換,キャッシュメモリ106でタグ検索が行なわ
れるが、変換された物理アドレスが特殊アドレス領域に
含まれている場合や、キャッシュが利用不可の場合は、
キャッシュの検索結果は無効になり、IMC101に対して1W
ORDの命令フェッチを要求する。IMC101は要求を受け入
れると、命令フェッチを行うべきアドレスをAバス205
に出力するようにTLB105に要求する。同時に、BIU14に
対しAバス205に出力されたアドレスで命令データのフ
ェッチを要求する。この要求は全て制御線204を介して
行なわれる。BIU14は外部メモリより命令データをフェ
ッチしMバス206に出力する。命令キャッシュメモリ106
はそれを取り込みPU20に伝送する。終了の通知はキャシ
ングと同様に行われる。
次にPU20が、オペランドデータのリード、即ちメモリデ
ータリードを行なう場合について説明する。まず、PU20
は、データキャッシュメモリ103および、データアドレ
ス変換TLB104に対しOバス203を介してオペランドデー
タアドレスを出力する。同時にPUが必要とするオペラン
ドのサイズ、R/W等の属性もデータキャッシュ103に対し
て指定される。前記した命令フェッチの場合と同様に、
データアドレス変換TLB104内およびデータキャッシュメ
モリ103内でアドレス検索が行なわれる。キャッシュ・
ヒットの場合、データキャッシュメモリ103から目的と
するデータがPU20へLバス202またはOバス203を介して
転送される。キャッシュミスの場合、命令キャッシュと
同様の手順で、データキャッシュメモリ103はIMC101に
対して外部メモリ群へのデータのアクセス要求を行な
い、目的とするデータをBIU14、Mバスを介しデータキ
ャッシュメモリ103内へ転送させる。さらに、読み込ま
れた1ラインのデータ中より、PU20が必要とするデータ
をOおよびLバス202を介してPU20へ転送される。この
ように、データキャッシュメモリ103内のデータを第1
内部バスである。LおよびOバス201,202を介してPU20
へ転送することができる。
また2つのページにまたがるようなオペランドの場合、
それぞれのページに対してアドレス変換、キャッシュ検
索が行われる。
一方、データキャッシュメモリ103の機能がソフトウェ
アによって利用できないように指定された場合、または
I/Oの領域のようにキャッシングが出来ないような特殊
アドレス領域へのアクセスの場合は、命令フェッチの場
合と同様の手順でオペランドフェッが行われる。またBI
U14にアドレスが送られると同時に制御線204を介してサ
イズ等の属性が転送され、それに従ってメモリアクセス
が行なわれる。
メモリデータライトの場合、PU20は書き込みデータをD
バス201を介してWBF102に転送する。書き込みの物理ア
ドレスは演算前にオペランドリードと同じタイミングで
アドレス変換され、図示しない専用線を用いてWBFの1
つのバッファに予め転送される。その状態ではバッファ
にはまだ演算結果が格納されていないので、そのバッフ
ァはリザーブ状態にあるという。アドレス変換はオペラ
ンドリードとほぼ同じ手順で行われる。PU20で該当する
演算が終了後、PU20は、リザーブされたバッファにDバ
ス201を介してデータを書き込む。そして、WBF102内に
データが格納されると、WBF102は、IMC101およびBIU14
へ制御線204を介して書き込み要求を出す。IMC101は、
AおよびMバス205,206を介し、データをキャッシュメ
モリおよび外部メモリ群へ転送する(ライトスルー方
式)。また、キャッショメモリへの書き込みと、外部メ
モリ群への書き込みは、必らずしも同時に行なわれなく
ても良い。書き込み終了信号がキャッシュメモリ、BIU
の両方より出力された後、バッファが空き状態となる。
WBFはPU20の演算ユニット23の出力と第2内部バス(A,M
バス205,206)の間に入れるが、これはPU20の演算の速
度と、第2内部バスのデータ転送速度の差を吸収するこ
とが狙いである。また本来目的とするPU20の演算時間と
外部メモリの書き込み時間との差を吸収する機能に加
え、キャッシュメモリへの書き込みもバッファリングす
ることが可能となる。これによりPU20からのキャッシュ
メモリ読み出しが、第2内部バスからの書き込みよりも
優先することができ、その結果PU20内のパイプラインを
止める頻度が低下するためプロセッサの演算性能が向上
する。
ところで、命令フェッチまたはデータフェッチを行う場
合、論理アドレスから物理アドレスに変換を行うためデ
ータアドレス変換TLB104または命令アドレス変換TLB105
を検索するが、TLB104または105内に、目的とするアド
レスがない場合、まず次の動作を行う。
TLB104または105は、制御線204を介して、IMC101にアド
レス変換に必要な情報をTLB104または105に格納するよ
うに指示する。IMC101は変換すべき論理アドレスをAバ
スを介してTLB104または105よりIMC101内部のレジスタ
に転送し、マイクロプログラム制御の下でアドレス変換
を行う。アドレス変換終了後、物理アドレスと論理アド
レス、ページ保護情報をA,Mバス205,206を介してTLB104
または105に格納する。本実施例の仮想記憶の方法はペ
ージセグメント方式である。アドレス変換は外部メモリ
におかれたセグメントテーブル、ページテーブルを、A,
Mバスを介してBIU14がIMC101に転送し、IMC101はそれに
基づいて物理アドレス、ページ保護情報を求める。セグ
メントテーブル、ページテーブルの先頭アドレスはソフ
トウェアの指定によりPU20がIMC101の制御レジスタに格
納する。またアドレス変換中にエラーを検出した場合に
は、エラーの内容を示すエラーコードをMバス206を介
してTLB104,105内のエラーレジスタに転送し、同時に制
御線204を介してエラーであったことをTLB104または105
に通知する。
以上の動作は、PU20とは独立に行われる。転送が終了
後、IMC101は、制御線204を介してTLB104または105に終
了を伝える。それにより前記命令フェッチ、またはデー
タフェッチ動作をTLB104または105とキャッシュメモリ1
03または106は再開することができる。
ところで、IMC101が外部バス30および31の使用権を放棄
した場合、即ち外部バス30および31を使用しない場合、
IMC101は、BIU14に対し外部バス30および31をモニター
するように指令を出す。この指令に従って、BIU14は、
外部メモリ群に外部マスター(例えば、他のプロセッ
サ)からの書き込み信号が入った場合、その外部アドレ
スをAバス205に出力される。またその外部アドレスと
同一アドレスのデータがキャッシュメモリにキャッシン
グされている場合、BIU14はキャッシュメモリに対し、
制御線204を介して制御信号を出力し、キャッシュメモ
リ内の同一アドレスのデータを無効にする。キャッシュ
メモリの無効化は1ライン(16バイト)単位で行われ
る。
一方、前述の手段が利用できないような場合、例えば外
部マスタが特殊なハードウェア構成をしており、BIU14
が外部バスの状態をモニターできない場合は、ソフトウ
ェアから指定したアドレスまたはページについてキャッ
シュメモリ内のデータを無効にする必要がある。本実施
例ではページ単位(4096バイト)で、その範囲内に含ま
れるアドレスのデータを無効にする手段を用意する。具
体的には、PU20が内部キャッシュメモリのページ単位の
無効化を指定する命令を実行すると、PU20はバス201を
介してIMC101内のレジスタに、無効化するページ番号と
無効化の指令を出力する。IMC101は指令を受けるとキャ
ッシュメモリ103,106の無効化を行う。手順を以下に示
す。
IMC内部のレジスタ(エントリ番号)に0をセットす
る。
指定されたページ番号とキャッシュのエントリ番号を
合わせてアドレスとしAバス205に出力する。
同時に無効化する制御信号を制御線204を介して出力
する。
エントリ番号を1増加させる。
キャッシュメモリ103,106の全エントリ(256entry)
終了するまでの〜を繰り返す。
キャッシュメモリの全エントリ同時に無効化できないた
めこのように繰り返して行う。本実施例ではキャッシュ
メモリ103,106の構成が同じであるため256回の繰り返し
でよい。異なるキャッシュの構成の場合は、各キャッシ
ュメモリの構成に合わせて繰り返す回数を変更する必要
がある。
一方、ソフトウェアのデバッグの補助を行う目的でキャ
ッシュメモリの内容を外部メモリに転送する機能があ
る。PU20がこの機能を指定する命令を実行すると実際に
転送を行うキャッシュメモリと外部メモリの転送先アド
レスをIMC101に対して指定する。IMC101は次の手順でキ
ャッシュ内のデータを外部メモリに転送する。
指定されたキャッシュメモリに対して転送の要求を制
御線204を介して出力する。
IMC101はBIU14に対して外部メモリの転送先をAバス2
05を介して送る。
IMC101は指定されたキャッシュメモリに対して転送要
求制御信号を制御線204を介して出力する。
指定されたキャッシュメモリではの制御信号に合わ
せてダクメモリ、データメモリの内容を順番にMバス20
6に転送する。
同時にIMC101はBIU14に対してMバス206から転送され
てくる内容を外部メモリに順番に書き込むように制御信
号を制御線204を介して出力する。
BIU14はの制御信号に従い外部メモリにデータを転
送する。
全内容を転送し終わるまでからを繰り返す。終了
すると指定されたキャッシュメモリがIMC101に対して終
了信号を制御線204を介して出力する。
以上のようにA,Mバス205,206のデータの入出力は全てIM
C101が制御を行う。また以上の動作の要求が同時に生じ
た場合、すなわち例えばデータキャッシュメモリの張り
替えと命令TLBの更新が同時に生じた場合等は、IMC101
はこれらの要求をを調停し、決められた優先順位に従い
実行する。
以上のIMC101の動作はPU20の動作と関係なく第2内部バ
スを介して独立して実行される。従って、IMC101とPU20
との動作がかち合い一方が実行待ちになりスループット
が低下することはない。
また特殊な例として第2内部バス(A,Mバス205,206)と
IMC101を利用した機能として次に例を挙げる。
通常マイクロプロセッサのような大規模なLSIになる
と、その機能が正常に動作しているかどうかを検査する
テスト回路が内蔵される。キャッシュメモリ、TLB等の
内部メモリなども正しく読み書きできるか等のテストが
必要になる。この場合、一般的には専用の回路が組み込
まれるが、本実施例ではIMC101とAバス205,Mバス206,
制御線204を利用することによりテスト回路を簡単化す
る。例えばIMC101がテストシーケンスの制御を行い、キ
ャッシュメモリに対してA、Mバス205,206を介してテ
ストパターンを転送する。そして逆にその内容をA,Mバ
ス205,206を利用して読み出し、書き込んだパターンと
比較することにより、キャッシメモリが正常に動作して
いるかを検出できる。
このように第1内部バスとは別の第2内部バスと、第2
内部バスを制御するIMC101を持つ構成をとったため、以
上のような機能がIMC101内のマイクロプログラムと少量
のハードウェアの追加を行うだけで簡単に実現すること
が可能となる。
ところでIMC101の動作を変更や、IMC101内のレジスタの
変更をする場合には、PU20がLバスまたはDバス201,20
2を介して行う。コマンドレジスタはIMC101の動作を決
めるレジスタであり、またワーキングレジスタはIMC101
が動作するときに利用する補助のレジスタである。制御
レジスタはアドレス変換時のアドレス変換テーブルの外
部メモリ上のアドレスやI/O領域を示すアドレスが格納
される。これらレジスタを変更することにより動作モー
ド変更等の指定が行われる。
第2図は、本発明の第二の実施例を示すマイクロプロセ
ッサ400の構成図である。同図において第一の実施例と
同一の構成要素には同一の符号を付しその説明を省略す
る。本実施例では、第一の実施例のマイクロプロセッサ
において、データキャッシュメモリ111およびデータア
ドレス変換TLB110が新たに構成要素として増設されてい
る。そして、演算処理装置PU,内部メモリ制御手段IMC,
内部メモリ群などは簡略化のため省略している。これら
の増設された構成要素は、第一の実施例におけるキャッ
シュメモリや変換テーブルと同様に第1内部および第2
内部バスに対し並行に接続されている。そして、キャッ
シュメモリおよびアドレス変換TLBは必要に応じ増設す
ることができる。そして、これら内部メモリ群および増
設したメモリ群に対し1個のIMC101およびBIU14が設け
られている。IMC101およびBIU14の動作は第一の実施例
と同様である。本実施例は、チップ内にキャッシュメモ
リおよびアドレス変換TLBを分散して増設する必要があ
る場合に有効であり、これによりマイクロプロセッサの
高速化を達成することができる。
第3図は、本発明の第三の実施例を示すマイクロプロセ
ッサ500の構成図である。同図において、第一の実施例
と同一の構成要素には同一の符号を付しその説明を省略
する。本実施例では、1チップのマイクロプロセッサ50
0内に複数個のプロセッサPn(nは自然数)が設けられ
ている。各々のプロセッサPnは第2内部バスに対し並列
に接続されている。これらの複数のプロセッサPnに対し
てIMC101およびBIUが1つ設けられている。上記構成を
有するマイクロプロセッサ500において、例えばプロセ
ッサP1がメモリデータライト動作を行なった場合、IMC1
01は、第2内部バスであるAおよびMバスを介してBIU1
4へデータを送信し、同時に他のプロセッサP2〜Pnに対
しこのデータを送信する。これにより各プロセッサ間に
おいてデータ内容の一貫性を保つことができる。また、
複数個のプロセッサを設けてマイクロプロセッサを構成
したことにより処理の高速化に対応することができる。
〔発明の効果〕
以上説明したように、本発明のマイクロプロセッサは、
第1内部バスと第2内部バスとを完全に分離した構成に
した。演算処理装置は第1内部バスに接続され第2内部
バスとは接続されない。つまり、演算処理装置は直接第
2内部バスを使用できない。従って、外部バス制御手段
および内部メモリ制御手段は、演算処理装置に対し独自
に第2内部バスを介して内部メモリ群をアクセスできる
ので、演算処理装置の動作とかち合い一方が実行待ちに
なることはない。さらに内部メモリ制御手段は演算処理
装置の介入なしに第2内部バスを介して、内部メモリ群
のデータを相互に転送させることができる。また、外部
バス権を放棄した場合、内部メモリ制御手段は、外部バ
ス制御手段に対し外部バスに転送されたデータをモニタ
ーし第2内部バスを介して内部メモリ群へ転送させるの
で内部メモリ群と外部メモリとのデータの一貫性を保つ
ことが可能となる。以上の処理は、演算処理装置の動作
とは全く独立に並行して実行することができるので、装
置全体のスループットが向上する。
【図面の簡単な説明】
第1図は第一の実施例のマイクロプロセッサのブロック
図、第2図は第二の実施例のマイクロプロセッサのブロ
ック図、第3図は第三の実施例のマイクロプロセッサの
ブロック図、第4図は従来例のマイクロプロセッサのブ
ロック図である。 14……外部バス制御手段(BIU)、 20……演算処理装置(PU)、 100……プロセッサ、 101……内部メモリ制御手段(IMC)、 102……ライトバッファ(WBF)、 103……データキャッシュメモリ、 104……データアドレス変換テーブル、 105……命令アドレス変換テーブル、 106……命令キャッシュメモリ、 201,202,203……第1内部バス、 204,205,206……第2内部バス、 300,400,500……マイクロプロセッサ。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】主として命令の解読および演算を行う演算
    処理装置と、 論理アドレスから物理アドレスに変換する情報を記憶し
    たアドレス変換テーブルおよびキャッシュメモリの各要
    素から構成される内部メモリ群と、 前記内部メモリ群の動作を制御する内部メモリ制御手段
    と、 外部メモリを主な構成要素とする外部メモリ群と前記内
    部メモリ群との間のデータの入出力を制御する外部バス
    制御手段と、 前記演算処理装置と前記内部メモリ群および前記内部メ
    モリ制御手段とを接続し、論理アドレス、論理データを
    転送する第1内部バスと、 前記内部メモリ群および前記内部メモリ制御手段と前記
    外部バス制御手段とを接続し、前記外部メモリ群内のデ
    ータを転送する第2内部バスとを具備し、 前記内部メモリ群の各構成要素および前記内部メモリ制
    御手段は、前記第1内部バスおよび前記第2内部バスに
    対し並列に接続され、 前記演算処理装置は前記第1内部バスの使用を制御し、
    前記内部メモリ制御手段は前記第2内部バスの使用を制
    御し、該演算処理装置および該内部メモリ制御手段は独
    立して動作することを特徴とするマイクロプロセッサ。
  2. 【請求項2】前記外部バス制御手段は、前記内部メモリ
    制御手段からの指示を受けて前記外部メモリ群への書き
    込み要求時に該書き込みアドレスをモニタし、そのアド
    レスと同一アドレスを有する前記内部メモリ群内のデー
    タを消去させる機能を有することを特徴とする請求項
    (1)記載のマイクロプロセッサ。
  3. 【請求項3】前記演算処理装置および前記内部メモリ群
    を構成要素とするプロセッサを複数固具備し該複数のプ
    ロセッサは前記第2内部バスに対し並列に接続されてい
    ることを特徴とする請求項(1)記載のマイクロプロセ
    ッサ。
  4. 【請求項4】前記内部メモリ群は、前記内部メモリ群お
    よび前記外部メモリ群へ転送するデータを一時的に蓄積
    するためのライトバッファを含み、該ライトバッファは
    前記第1内部バスおよび前記第2内部バスに対し並列に
    接続されていることを特徴とする請求項(1)記載のマ
    イクロプロセッサ。
  5. 【請求項5】前記キャッシュメモリは、命令キャッシュ
    メモリおよびデータキャッシュメモリから構成され各々
    のキャッシュメモリに対応した前記アドレス変換テーブ
    ルを備え、該命令キャッシュメモリおよび該データキャ
    ッシュメモリは前記第1内部バスおよび前記第2内部バ
    スに対し並列に接続されていることを特徴とする請求項
    (1)記載のマイクロプロセッサ。
JP2176362A 1989-07-13 1990-07-05 マイクロプロセッサ Expired - Fee Related JPH0711793B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP17906689 1989-07-13
JP1-179066 1989-07-13

Publications (2)

Publication Number Publication Date
JPH03135641A JPH03135641A (ja) 1991-06-10
JPH0711793B2 true JPH0711793B2 (ja) 1995-02-08

Family

ID=16059509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2176362A Expired - Fee Related JPH0711793B2 (ja) 1989-07-13 1990-07-05 マイクロプロセッサ

Country Status (5)

Country Link
US (1) US5379394A (ja)
EP (1) EP0408058B1 (ja)
JP (1) JPH0711793B2 (ja)
KR (1) KR920008427B1 (ja)
DE (1) DE69029173T2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336180B1 (en) 1997-04-30 2002-01-01 Canon Kabushiki Kaisha Method, apparatus and system for managing virtual memory with virtual-physical mapping
US6006302A (en) * 1990-06-04 1999-12-21 Hitachi, Ltd. Multiple bus system using a data transfer unit
US5557766A (en) * 1991-10-21 1996-09-17 Kabushiki Kaisha Toshiba High-speed processor for handling multiple interrupts utilizing an exclusive-use bus and current and previous bank pointers to specify a return bank
KR100294105B1 (ko) * 1992-04-29 2001-09-17 썬 마이크로시스템즈, 인코포레이티드 멀티 프로세서 컴퓨터 시스템의 일관성 카피-백 버퍼용 방법 및 장치
JP3619532B2 (ja) * 1993-11-08 2005-02-09 株式会社ルネサステクノロジ 半導体集積回路装置
US5557743A (en) * 1994-04-05 1996-09-17 Motorola, Inc. Protection circuit for a microprocessor
US5822550A (en) * 1994-12-22 1998-10-13 Texas Instruments Incorporated Split data path fast at-bus on chip circuits systems and methods
US5867726A (en) * 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
FR2736482B1 (fr) * 1995-07-07 1997-09-12 Sextant Avionique Dispositif de communication entre une pluralite de modules fonctionnels installes dans une unite locale et un bus externe de type arinc 629
JP2976850B2 (ja) * 1995-07-13 1999-11-10 日本電気株式会社 データ処理装置
JP4312272B2 (ja) * 1995-10-06 2009-08-12 モトローラ・インコーポレイテッド 内部メモリへのアクセスを制限するマイクロコントローラ
JP3655403B2 (ja) 1995-10-09 2005-06-02 株式会社ルネサステクノロジ データ処理装置
US5890011A (en) * 1997-01-27 1999-03-30 International Business Machines Corporation Method and system for dynamically translating bus addresses within a computer system
AUPO648397A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Improvements in multiprocessor architecture operation
US6311258B1 (en) 1997-04-03 2001-10-30 Canon Kabushiki Kaisha Data buffer apparatus and method for storing graphical data using data encoders and decoders
JP3790323B2 (ja) 1997-04-16 2006-06-28 株式会社ルネサステクノロジ データ転送制御装置、マイクロコンピュータ及びデータ処理システム
US6259456B1 (en) 1997-04-30 2001-07-10 Canon Kabushiki Kaisha Data normalization techniques
US6707463B1 (en) 1997-04-30 2004-03-16 Canon Kabushiki Kaisha Data normalization technique
US6507898B1 (en) 1997-04-30 2003-01-14 Canon Kabushiki Kaisha Reconfigurable data cache controller
US6289138B1 (en) 1997-04-30 2001-09-11 Canon Kabushiki Kaisha General image processor
AUPO647997A0 (en) * 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
JP2000021193A (ja) * 1998-07-01 2000-01-21 Fujitsu Ltd メモリ試験方法及び装置並びに記憶媒体
US6618777B1 (en) 1999-01-21 2003-09-09 Analog Devices, Inc. Method and apparatus for communicating between multiple functional units in a computer environment
US6701432B1 (en) * 1999-04-01 2004-03-02 Netscreen Technologies, Inc. Firewall including local bus
US6457100B1 (en) 1999-09-15 2002-09-24 International Business Machines Corporation Scaleable shared-memory multi-processor computer system having repetitive chip structure with efficient busing and coherence controls
JP3940539B2 (ja) * 2000-02-03 2007-07-04 株式会社日立製作所 半導体集積回路
US7269704B2 (en) * 2005-03-30 2007-09-11 Atmel Corporation Method and apparatus for reducing system inactivity during time data float delay and external memory write
FR2884629B1 (fr) * 2005-04-15 2007-06-22 Atmel Corp Dispositif d'amelioration de la bande passante pour des circuits munis de controleurs memoires multiples
US7836258B2 (en) * 2006-11-13 2010-11-16 International Business Machines Corporation Dynamic data cache invalidate with data dependent expiration

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4467414A (en) * 1980-08-22 1984-08-21 Nippon Electric Co., Ltd. Cashe memory arrangement comprising a cashe buffer in combination with a pair of cache memories
US4488256A (en) * 1981-11-23 1984-12-11 Motorola, Inc. Memory management unit having means for detecting and preventing mapping conflicts
US5097413A (en) * 1983-09-20 1992-03-17 Mensch Jr William D Abort circuitry for microprocessor
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
IT1175678B (it) * 1984-08-31 1987-07-15 Mangnaghi Oleodinamica Spa Gruppo servoattuatore ridondante particolarmente per l'azionamento di organi di controllo di volo in velivoli
CA1269176A (en) * 1985-02-22 1990-05-15 Fairchild Camera And Instrument Corporation Multiple bus system including a microprocessor having separate instruction and data interfaces and caches
US4916603A (en) * 1985-03-18 1990-04-10 Wang Labortatories, Inc. Distributed reference and change table for a virtual memory system
US4953073A (en) * 1986-02-06 1990-08-28 Mips Computer Systems, Inc. Cup chip having tag comparator and address translation unit on chip and connected to off-chip cache and main memories
US4837739A (en) * 1986-07-25 1989-06-06 Ford Aerospace & Communications Corporation Telemetry data processor
GB2200483B (en) * 1987-01-22 1991-10-16 Nat Semiconductor Corp Memory referencing in a high performance microprocessor
DE3740834A1 (de) * 1987-01-22 1988-08-04 Nat Semiconductor Corp Aufrechterhaltung der kohaerenz zwischen einem mikroprozessorenintegrierten cache-speicher und einem externen speicher
US5163133A (en) * 1987-02-17 1992-11-10 Sam Technology, Inc. Parallel processing system having a broadcast, result, and instruction bus for transmitting, receiving and controlling the computation of data
US4912636A (en) * 1987-03-13 1990-03-27 Magar Surendar S Data processing device with multiple on chip memory buses
US5073969A (en) * 1988-08-01 1991-12-17 Intel Corporation Microprocessor bus interface unit which changes scheduled data transfer indications upon sensing change in enable signals before receiving ready signal
JPH02122346A (ja) * 1988-11-01 1990-05-10 Fujitsu Ltd キャッシュメモリ制御方式
US5117350A (en) * 1988-12-15 1992-05-26 Flashpoint Computer Corporation Memory address mechanism in a distributed memory architecture
US5067078A (en) * 1989-04-17 1991-11-19 Motorola, Inc. Cache which provides status information

Also Published As

Publication number Publication date
EP0408058A3 (en) 1992-09-02
DE69029173D1 (de) 1997-01-02
US5379394A (en) 1995-01-03
DE69029173T2 (de) 1997-04-10
KR920008427B1 (ko) 1992-09-28
EP0408058A2 (en) 1991-01-16
KR910003498A (ko) 1991-02-27
JPH03135641A (ja) 1991-06-10
EP0408058B1 (en) 1996-11-20

Similar Documents

Publication Publication Date Title
JPH0711793B2 (ja) マイクロプロセッサ
US5091846A (en) Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
US4899275A (en) Cache-MMU system
JP3285644B2 (ja) キャッシュメモリを有するデータプロセッサ
US6226695B1 (en) Information handling system including non-disruptive command and data movement between storage and one or more auxiliary processors
US6681311B2 (en) Translation lookaside buffer that caches memory type information
US6631447B1 (en) Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed
US5996048A (en) Inclusion vector architecture for a level two cache
JP3158161B2 (ja) 集積キャッシュユニットおよび集積キャッシュユニットにおいてインターロック変数をキャッシュする方法
US4884197A (en) Method and apparatus for addressing a cache memory
US5666509A (en) Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof
JP3016575B2 (ja) 複数キャッシュ・メモリ・アクセス方法
US7003630B1 (en) Mechanism for proxy management of multiprocessor storage hierarchies
JPH03142644A (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
JPH0997214A (ja) 補助プロセッサのためのアドレス変換を含む情報処理システム
US5269009A (en) Processor system with improved memory transfer means
US7017025B1 (en) Mechanism for proxy management of multiprocessor virtual memory
JPH0997230A (ja) データ転送方法及びシステム
JPH09237223A (ja) バスブリッジを用いたコンピュータシステム
JPH04251352A (ja) マイクロプロセサのオンチップキャッシュ内のメモリ位置の選択的ロック
US5619673A (en) Virtual access cache protection bits handling method and apparatus
JP2000339221A (ja) 変換装置のエントリを無効化するシステム及び方法
JPH1091521A (ja) 二重ディレクトリー仮想キャッシュ及びその制御方法
US5649155A (en) Cache memory accessed by continuation requests
US11314657B1 (en) Tablewalk takeover

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees