JP3639927B2 - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP3639927B2
JP3639927B2 JP24814193A JP24814193A JP3639927B2 JP 3639927 B2 JP3639927 B2 JP 3639927B2 JP 24814193 A JP24814193 A JP 24814193A JP 24814193 A JP24814193 A JP 24814193A JP 3639927 B2 JP3639927 B2 JP 3639927B2
Authority
JP
Japan
Prior art keywords
data
address
storage device
bus
output
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 - Lifetime
Application number
JP24814193A
Other languages
English (en)
Other versions
JPH07105093A (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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP24814193A priority Critical patent/JP3639927B2/ja
Publication of JPH07105093A publication Critical patent/JPH07105093A/ja
Priority to US08/689,115 priority patent/US5708803A/en
Application granted granted Critical
Publication of JP3639927B2 publication Critical patent/JP3639927B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Description

【0001】
【産業上の利用分野】
本発明はデータ処理装置に関し、具体的には内蔵キャッシュメモリ及びパイプライン処理機構を有するデータ処理装置に関し、更に詳述すれば、そのようなデータ処理装置において命令及びデータのアクセス処理を高速化するための技術に関する。
【0002】
【従来の技術】
従来の一般的なデータ処理装置では、メインメモリ上に記憶されているプログラムを処理するために、メインメモリ上の命令及びデータをシステムバスを通じてデータ処理装置内に取り込む。その際、データ処理装置内でのプログラムの処理時間に比してメインメモリに対するアクセス速度が遅い場合にはデータ処理装置からメインメモリへのアクセス回数を減少させてメインメモリのアクセス速度を見掛け上早くする目的で、所謂キャッシュメモリを使用する場合が多い。
【0003】
キャッシュメモリとは、比較的高速なメモリセルで構成された比較的小規模な記憶装置であり、データ処理装置がメインメモリに対して一度アクセスして取り込んだ命令あるいはデータを記憶させておくことにより、同一の命令あるいはデータをデータ処理装置が再度アクセスした場合にはメインメモリをアクセスせずにキャッシュメモリからその命令あるいはデータを得ることにより、メインメモリをその都度アクセスする場合に比して高速に命令あるいはデータを使用することを可能とする。
【0004】
一方、種々の機械装置、たとえば近年急速にエレクトロニクス化が進んでいる家電製品あるいは産業用機械等のための組み込み制御用のデータ処理装置では、使用するプログラム及びデータ量が比較的小さいため、内蔵RAM あるいは内蔵ROM を備え、それらにプログラム及びデータを記憶させておくことにより、高速なアクセスを実現している。
たとえば、三菱電機株式会社製の16ビットマイクロコンピュータM37700M2-XXXFPにおいてはそのユーザーズマニュアル (1989年3月発行) に示されているように、メモリマップ上のアドレス”007F16”〜”027F16”に内蔵RAM が、アドレス”C00016”〜”FFFF16”に内蔵ROM がそれぞれ配置されている。なおここで、”16”は16進数を表している。内蔵RAM は主としてデータの格納, サブルーチンの呼び出し及び割り込み発生時のスタック領域として使用され、内蔵ROM は主としてプログラムの格納に使用される。
【0005】
このような小規模のシステムにおいては、キャッシュメモリを使用してもその効果は充分には発揮されず、キャッシュメモリよりも明示的に操作可能な内蔵RAM の方がシステムの性能向上の面からは有効である。
一方、比較的大規模なシステムでは、膨大なメモリ空間を使用するため、内蔵RAM の容量では処理すべきデータを格納するには不十分である。従って、小規模な内蔵メモリの容量でシステム全体の性能を向上させるには、内蔵メモリをキャッシュメモリとして使用する場合が多い。
【0006】
このようにデータ処理装置の用途に応じて、内蔵メモリをキャッシュメモリとして使用する方が有効である場合と、内蔵データRAM として使用する方が有効である場合とがある。従って、従来のデータ処理装置では、その目的用途に応じて内蔵キャッシュメモリと内蔵RAM とのいずれか一方を備えている場合が多い。
【0007】
また、近年の一般的なデータ処理装置においては、パイプライン処理機構を備え、複数の命令を内部のパイプラインステージで並列処理するとによって性能を向上させている。このパイプライン処理の利点は、メインメモリから命令をフェッチする処理に始まって命令を実行する処理、更には命令実行の結果をメインメモリにストアする処理までの一連の処理がいくつかの機能ブロックに分割されて各ステージで同時に処理されるため、見掛け上は複数の命令が並列処理されて性能が向上することである。しかし、パイプライン処理機構を備えたデータ処理装置により処理される命令の全てが必ずしも並列処理可能であるわけではなく、たとえば条件付き分岐命令を処理する場合、分岐命令が実際に処理されるまでは次にどの命令をパイプラインに取り込めばよいのかが判明しないので、並列処理は出来なくなる。
【0008】
そこで、条件付き分岐命令がパイプライン内に取り込まれた場合には、その分岐命令が実際に分岐を発生するか否か、また分岐するのであればどの命令へ分岐するかを予測(分岐予測)して後続の命令を取り込むような手法が採用されている。しかし、分岐予測の結果は実際の分岐とは異なることもあり、また間違った予測に従ってメモリ等の外部装置をアクセスした場合には、アクセス出来ないアドレス、たとえばメモリ等のハードウェアが実際には接続されていないアドレスをアクセスする可能性もある。そのような場合には、応答速度遅くなる可能性があり、性能が劣化する。このため、分岐予測中に命令を取り込んだり、あるいはパイプラインに取り込まれた命令がメモリ等の外部装置をアクセスしようとした場合には、その時点で一旦処理を中断し、分岐命令が実行されて分岐予測が正しかったことが確定した後に処理を再開する必要があった。
【0009】
【発明が解決しようとする課題】
多目的に使用される汎用データ処理装置では、内蔵キャッシュメモリと内蔵RAM とのいずれがシステムの性能向上に有効であるかはその応用分野によって異なる。内蔵キャッシュメモリのみを有しているデータ処理装置を比較的小規模な内蔵RAM に適したシステムに使用した場合、使用するメモリ空間が小さいため、キャッシュ内に無駄な領域が発生する可能性が高く、明示的に操作可能な内蔵RAM を使用した方がシステム性能は向上する。一方、比較的大規模なメモリ空間を扱うシステムでは使用するメモリ空間が膨大になるため、内蔵RAM の容量では不十分であり、内蔵RAM を有効に利用するためには頻繁に内蔵RAM 内の命令あるいはデータを入れ換える必要が生じる。この場合、プログラムの負担も増加し、そのための処理もまた必要になるため、内蔵キャッシュメモリを備えた方が性能は向上する。
【0010】
また、内蔵キャッシュメモリと内蔵RAM との双方を備えている場合は、メモリとして使用可能なハードウェア量が同じであればそれぞれはいずれか一方のみを備える場合の半分の容量になるため、共に能力が低下する。
また、パイプライン処理を行なうデータ処理装置においては、分岐予測してから実際に分岐が確定するまでの間に、不確定なアドレスの命令あるいはデータをアクセスしようとすると、処理が中断されてパイプライン処理の並列処理が出来なくなり、やはり性能が低下する。
【0011】
本発明はこのような事情に鑑みてなされたものであり、種々の応用分野で高い処理性能を発揮するデータ処理装置を実現することを目的とする。
また、パイプライン処理機構を備えたデータ処理装置において、分岐予測が行なわれている場合にも、処理の中断を可及的に少なくして迅速な処理が可能なデータ処理装置の提供を目的とする。
【0012】
【課題を解決するための手段】
本発明は、パイプライン処理機構において分岐予測が行なわれている場合以外の場合にはキャッシュメモリまたは外部記憶装置へのアクセスが行なわれ、分岐予測が行なわれている場合にはキャッシュメモリへのアクセスのみが行なわれて外部記憶装置へのアクセスは禁じられる。またアクセス先を保持しておくアドレス保持手段を備え、外部記憶装置へのアクセスが可能になった時点でアドレス保持手段に保持されているアドレスにより外部記憶装置へのアクセスが行なわれる。
【0014】
【作用】
本発明では、分岐予測が行なわれている場合には外部記憶装置へのアクセスが禁止されるが、分岐予測が正しかったことが確定して外部記憶装置へのアクセスが可能になった時点で直ちにアクセスがアドレス保持手段に保持されているアドレスにより行なわれる。
また、次に読み込む命令またはデータのアドレスが即値で指定される場合には、分岐予測手段が分岐先を予測しているか否かには拘わらずに制御信号の値を分岐予測手段が分岐先を予測していない場合の値に決定する。
【0016】
【実施例】
以下、本発明をその実施例を示す図面に基づいて詳述する。
図1は本発明のデータ処理装置の一実施例としての32ビットマイクロプロセッサ及びその周辺回路の構成を示すブロック図である。
【0017】
このマイクロプロセッサの内部を機能的に大きく分けると、命令デコード部21, オペランドアドレス計算部22, PC計算部23, マイクロROM 24, 演算部25, 命令フェッチ部26, オペランドアクセス部1, バスインタフェイス部13等に分けられる。
【0018】
バスインタフェイス部13は32ビット幅の外部アドレスバス15と、32ビット幅の外部データバス16と、外部制御信号線17とを介して、主記憶装置(メインメモリ)28, 2次記憶装置29及びその他の入出力装置 (キーボード, ディスプレイ, プリンタ等)30 と接続されている。また、命令フェッチ部26とオペランドアクセス部1とはそれぞれ独立してキャッシュメモリを内蔵している。
【0019】
また、本実施例のマイクロプロセッサは図2の模式図に示されているように6段のパイプライン処理を行なう。
具体的には、本実施例のマイクロプロセッサのパイプラインはパイプラインの上流側から下流側へ、命令フェッチステージ31, 命令デコードステージ32, オペランドアドレス計算ステージ33, オペランドフェッチステージ34, 実行ステージ35, ストアステージ36の6段である。
【0020】
プログラムはまず、命令フェッチステージ31で主記憶装置28からパイプラインに取り込まれ、次段の命令デコードステージ32で命令コードが解読される。解読された命令が条件付き分岐命令である場合は命令デコードステージ32で分岐予測が行なわれ、次の命令は分岐予測先からパイプラインに取り込まれる。そして、命令デコードステージ32で解読された命令がオペランドを有する場合には、オペランドアドレス計算ステージ33でオペランドのアドレスが計算され、更にメモリ等からのデータのフェッチを伴う場合は次段のオペランドフェッチステージ34でデータが取り込まれる。その後、実行ステージ35で命令が実行され、実行結果のストアが必要が場合にはストアステージ36で命令実行結果のデータが主記憶装置28等のメモリにストアされる。
【0021】
図3は本実施例のマイクロプロセッサのキャッシュメモリを内蔵したオペランドアクセス部1の構成例を示すブロック図、図4は同じく内蔵キャッシュモードと内蔵RAM モードとの切り換え及びキャッシュヒット信号の生成に関する回路の構成例を示す回路図、図5はキャッシュアクセスの際のタイミングチャートである。
【0022】
図3において、参照符号2は本実施例のオペランドアクセス部1に内蔵されているキャッシュメモリのタグ部を、3はデータ部を、90はバリッドビット部をそれぞれ示している。
データ部3は4Kバイトの容量を有し、後述する BMCレジスタ900(図9参照) のDMビットの値に応じて決定される内蔵メモリモード信号9の値が”0”であればダイレクトマップ方式の内蔵キャッシュメモリとして、また”1”であれば内蔵RAM としてそれぞれ動作する内蔵キャッシュモードと内蔵RAM モードとに切り換えられる。内蔵キャッシュモード時には、タグ部2が20ビット, バリッドビット部90が1ビットで、データ部3が16バイトを1ブロックとする 256エントリのデータを記憶することが出来る。なお、キャッシュメモリ中のデータが更新された場合には対応する外部メモリ上のデータも同時に書き換えられるライトスルー方式で動作する。
【0023】
上述のような内蔵キャッシュモードと内蔵RAM モードとの切り換えは具体的には後述するセレクタ41で行なわれる。
参照符号4はDMADDRレジスタであり、後述する如く、内蔵RAM モード時に内蔵RAM が割り付けられるメモリ空間のベースアドレスである20ビットの内蔵RAM ベースアドレスを記憶する。このDMADDRレジスタ4に記憶されている内蔵RAM ベースアドレスはセレクタ41へ出力されている。なお、この内蔵RAM ベースアドレスは命令により任意の値をDMADDRレジスタ4に記憶させることが可能である。
【0024】
参照符号5はタグ部2から出力されたタグ情報を一時的に保持するタグ出力レジスタであり、タグ部2と同様に20ビット構成である。また、参照符号91はバリッドビット部90から出力されたバリッドビットの値を一時的に保持するバリッドビットレジスタであり、バリッドビット部90と同様に1ビット構成である。
タグ出力レジスタ5に保持されたタグ情報はセレクタ41へ、バリッドビットレジスタ91に保持されたバリッドビットの値はゲート71へそれぞれ出力される。なお、このゲート71は内蔵メモリモード信号9が”0”である場合、即ち内蔵キャッシュモード時には開路していてバリッドビットの値をバリッド信号43として比較器18へ出力する。
【0025】
参照符号10はデータ出力レジスタであり、内部アドレスバス6から与えられたアドレスに対応するデータ部3のエントリから読み出されるデータを一時的に保持する。このデータ出力レジスタ10はゲート72を介して内部データバス14に接続された出力経路を有している。ゲート72は前述の比較器18からキャッシュヒット信号11が出力された場合(キャッシュヒット信号11の値が”1”)に開路し、データ出力レジスタ10に保持されているデータを内部データバス14へ出力する。
【0026】
また、データ出力レジスタ10はゲート73を介して内部データバス14に接続された入力経路を有している。ゲート73は前述の比較器18からキャッシュヒット信号11が出力された場合に開路し、内部データバス14上のデータをデータ出力レジスタ10に入力させる。
【0027】
参照符号74は3入力の ANDゲートであり、内蔵メモリモード信号9,キャッシュヒット信号11及び後述するバススヌープ信号20が入力される。この ANDゲート74は上述の3入力全てが”1”である場合にその出力信号を”1”にしてバリッドビットレジスタ91の内容をクリアして”0”にする。
【0028】
参照符号75は3入力のORゲートであり、後述する第1プリフェッチ要求信号7, 第2プリフェッチ要求信号8及びバススヌープ信号20が入力され、出力信号をキャッシュリード信号42としてタグ部2及びデータ部3に与えられる。キャッシュリード信号42が与えられている状態(キャッシュリード信号42の値が”1”)で内部アドレスバス6からアドレスが与えられると、タグ部2, バリッドビット部90, データ部3の対応するするエントリからタグ情報がタグ出力レジスタ5へ、バリッドビットがバリッドビットレジスタ91へ、データがデータ出力レジスタ10へそれぞれ出力される。
【0029】
参照符号77はインバータであり、比較器18から出力されたキャッシュヒット信号11を反転して ANDゲート76に入力させる。 ANDゲート76はこのインバータ77の出力の他に第2プリフェッチ要求信号8も入力されており、その出力信号はプリフェッチ中止信号19として出力されてオペランドフェッチステージ34に入力される。
従って、キャッシュヒット信号11が”0”で第2プリフェッチ要求信号8が”1”である場合には、プリフェッチ中止信号19は”1”になる。
【0030】
次に、図4を参照して内蔵キャッシュモードと内蔵RAM モードとの切り換え及びキャッシュヒット信号11の生成に関する回路、具体的にはセレクタ41及び比較器18について説明する。
セレクタ41には内蔵メモリモード信号9と、DMADDRレジスタ4に保持されている20ビットの内蔵RAM ベースアドレスの各ビット(以下、それぞれ4-0, 4-1…4-19という)と、20ビット構成のタグ出力レジスタ5の各ビット(以下、それぞれ5-0, 5-1…5-19という) と、内部アドレスバス6から入力されるフェッチアドレスの上位20ビット(以下、それぞれ6-0, 6-1…6-19という) とが入力されている。内蔵RAM ベースアドレスの各ビット4-0, 4-1…4-19はそれぞれトランスファーゲート87-0, 87-1…87-19 を介して比較器18内のEXORゲート83-0, 83-1…83-19 の一方の入力端子に、タグ出力レジスタ5の各ビット5-0, 5-1…5-19はそれぞれトランスファーゲート86-0, 86-1…86-19 を介してEXORゲート83-0, 83-1…83-19 の一方の入力端子に入力されており、フェッチアドレスの上位20ビット6-0, 6-1…6-19はそれぞれEXORゲート83-0, 83-1…83-19 の他方の入力端子に入力されている。
【0031】
また、図4において、参照符号85はインバータであり、内蔵メモリモード信号9を反転して出力する。
上述の各トランスファーゲート86-0, 86-1…86-19 及び87-0, 87-1…87-19 はいずれも内蔵メモリモード信号9及びそれをインバータ85で反転した信号により開閉制御される。具体的には、内蔵メモリモード信号9が”0”である場合にはトランスファーゲート86-0, 86-1…86-19 が開路してそれぞれタグ出力レジスタ5の各ビット5-0, 5-1…5-19を出力してEXORゲート83-0, 83-1…83-19 の一方の入力端子に入力する。また、内蔵メモリモード信号9が”1”である場合にはトランスファーゲート87-0, 87-1…87-19 が開路してそれぞれ内蔵RAM ベースアドレスの各ビット4-0, 4-1…4-19を出力してEXORゲート83-0, 83-1…83-19 の一方の入力端子に入力する。
【0032】
従って、内蔵メモリモード信号9が”0”である場合にはフェッチアドレスの上位20ビット6-0, 6-1…6-19はそれぞれ対応するタグ出力レジスタ5の各ビット5-0, 5-1…5-19とEXORゲート83-0, 83-1…83-19 で比較され、両者が同一の値であれば各EXORゲート83-0, 83-1…83-19 の出力信号が”0”になる。また、内蔵メモリモード信号9が”1”である場合にはフェッチアドレスの上位20ビット6-0, 6-1…6-19はそれぞれ対応する内蔵RAM ベースアドレスの各ビット4-0, 4-1…4-19とEXORゲート83-0, 83-1…83-19 で比較され、両者が同一の値であれば各EXORゲート83-0, 83-1…83-19 の出力信号が”0”になる。
【0033】
比較器18内には、上述のEXORゲート83-0, 83-1…83-19 の他に、プルアップされた信号線80が入力端子に接続されたインバータ88と、このインバータ82の出力信号を一方の入力端子に入力する2入力がいずれも負論理であ ANDゲート82と、前述の各EXORゲート83-0, 83-1…83-19 の出力信号がゲートに与えられているトランジスタ84-0, 84-1…84-19 と、図3に示されているゲート71の出力信号であるバリッド信号43が入力されるインバータ89とが備えられている。なお、インバータ89の出力信号は上述の ANDゲート82の他方の入力端子に入力されている。各トランジスタ84-0, 84-1…84-19 のソースは前述の信号線80に、ドレインは接地電位にそれぞれ接続されている。従って、いずれかのEXORゲート83-0, 83-1…83-19 への2入力が不一致であればその出力信号は”1”になって信号線80はいずれかのトランジスタ84-0, 84-1…84-19 によって接地電位に接続される。これにより、インバータ88の入力が”0”になってその出力信号が”1”になるので、 ANDゲート82の出力信号であるキャッシュヒット信号11は”0”になる。
一方、全てのEXORゲート83-0, 83-1…83-19 への2入力が一致していればそれぞれの出力信号は”0”になって信号線80はいずれのトランジスタ84-0, 84-1…84-19 によっても接地電位に接続されることはない。これにより、インバータ88の入力が”1”になってその出力信号が”0”にな、バリッド信号43が”1”であれば ANDゲート82の両入力が”0”になるので、その出力信号であるキャッシュヒット信号11は”1”になる。
【0034】
ここで、いずれかのEXORゲート83-0, 83-1…83-19 への2入力が不一致であるということは、内蔵メモリモード信号9が”0”である場合にはフェッチアドレスの上位20ビット6-0, 6-1…6-19とタグ出力レジスタ5の各ビット5-0, 5-1…5-19とのいずれかの対応するビット同士の値が不一致であることを意味しており、それはキャッシュミスしたということである。また、内蔵メモリモード信号9が”1”である場合には、フェッチアドレスの上位20ビット6-0, 6-1…6-19と内蔵RAM ベースアドレスの各ビット4-0, 4-1…4-19とのいずれかの対応するビット同士の値が不一致であることを意味しており、それは内蔵RAM へのアクセスではないということである。
【0035】
図6乃至図9はキャッシュメモリに関係するレジスタの一部のフィールド及びその意味を示す模式図である。
図6に示されているDMADDRレジスタは図3に参照符号4にて示されており、内蔵RAM モード時に内蔵RAM が割り付けられるメモリ空間のベースアドレスである20ビットの内蔵RAM ベースアドレスを記憶するレジスタである。
図7に示されているNCADDRレジスタの各ビットは4Gバイトのメモリ空間を32個の128Mバイトのアドレス空間に分割し、それぞれの128Mバイトのアドレス空間に対応して各アドレス空間のキャッシュ取り込みの禁止を指定する。
【0036】
図8に示されている BMPレジスタはキャッシュのパージを指定するレジスタであり、ビット20であるDPビットまたはビット28であるIPビットに”1”が設定されることによりデータキャッシュまたは命令キャッシュのパージがそれぞれ行なわれる。
図9に示されている BMCレジスタはキャッシュの動作モードとリプレースとを制御する。内蔵メモリモード信号9は BMCレジスタのビット26, 27(DM)の値に応じて生成される。
【0037】
次に、図5のタイミングチャートに則して、まず内蔵キャッシュモード時 (DM=10、即ち内蔵メモリモード信号9が”0”) の動作を説明する。
なお、図5のタイミングチャートにおいて、波形W1は本発明のデータ処理装置の内部クロックを、波形W2は内部アドレスバス6上のアドレスを、波形W3はタグ部2から出力されるタグ情報を、波形W4はデータ部3から出力されるデータを、波形W5はDMADDRレジスタ4から出力される内蔵RAM ベースアドレスを、波形W6は第1プリフェッチ要求信号7または第2プリフェッチ要求信号8を、波形W7はキャッシュヒット信号11を、波形W8は外部バスアクセスのための信号を、波形W9は内部データバス14上のデータをそれぞれ示している。
【0038】
クロックCL1において、第1プリフェッチ要求信号7または第2プリフェッチ要求信号8のいずれかが”1”であり且つ内部アドレスバス6にアドレス値が入力されると、その下位8ビットがデコードされて 256エントリの内のいずれかが指定され、そのエントリに対応するタグ部2のタグ情報がタグ出力レジスタ5へ、バリッドビット部90のバリッドビットがバリッドビットレジスタ91へ、データ部3のデータがデータ出力レジスタ10へそれぞれ出力される。この際、内蔵メモリモード信号9は”0”であるので、比較器18にはタグ5とフェッチアドレス6の上位20ビットとが入力され、両者が一致し且つバリッドビット部90が”1”であれば、クロックCL2においてキャッシュヒット信号11が出力される。
【0039】
上述のようにフェッチアクセスがキャッシュヒットすればゲート72が開路するので、データ部3から出力されてデータ出力レジスタ10に保持されていたデータが内部データバス14へ出力される。データストアの場合はゲート73が開路するので、内部データバス14上の値がデータ出力レジスタ10を通じてデータ部3の対応するエントリに書き込まれ、更に外部メモリ上のデータも書き換える必要があるため、バスインタフェイス部13へ書き込み要求が出力される。
【0040】
一方、クロックCL4において上述同様にデータフェッチが開始されてもキャッシュミスした場合は、外部バスアクセスが有効となってクロックCL7において外部データバス16から内部データバス14へデータが取り込まれる。
【0041】
一方、内蔵RAM モード(DM =01) である場合は、内蔵メモリモード信号9が”1”であるので、DMADDRレジスタ4に保持されている内蔵RAM ベースアドレスの各ビット4-0, 4-1…4-19がフェッチアドレスの上位20ビット6-0, 6-1…6-19とそれぞれ比較器18により比較される。全てのビットが一致すれば、内蔵キャッシュモード時と同様にキャッシュヒット信号11が出力される。また内部アドレスバス6からフェッチアドレスが与えられた時点でデータ部3からは対応するデータが出力されてデータ出力レジスタ 10 保持されているので、キャッシュヒットすれば、データフェッチの場合はデータ出力レジスタ10からデータが内部データバス14へ出力され、データストアの場合は内部データバス14上の値がデータ部3の対応するエントリに書込まれる。但しこの際、バスインタフェイス部13へ書き込み要求が出力されることはない。
【0042】
ところで、複数のマイクロプロセッサを接続したシステムにおいては、一つのマイクロプロセッサの内蔵キャッシュメモリ内のデータが書き換えられた場合には、外部メモリの書換えと共に他のマイクロプロセッサの内蔵キャッシュメモリの同一の領域も書き換えるか、あるいは無効化する必要がある。そのため、キャッシュメモリを内蔵するマイクロプロセッサは外部アドレスを常時監視しており、キャッシュメモリに読み込んでいる領域と同一の領域に他のデータ処理装置が書き込みを行なう場合、キャッシュメモリ内の該当する領域を無効にする機能を備えている。この機能をバススヌープ機能と称する。
但し、内蔵RAM に対しては、各マイクロプロセッサ固有のワーキングレジスタとして使用されるため、バススヌープの対象にはならない。
【0043】
上述のような複数のマイクロプロセッサが共通の外部アドレスバス15, 外部データバス16, 外部制御信号線17を介して主記憶装置28等の外部装置に接続されている構成においては、それぞれのデータ処理装置が外部データバス16を使用して外部装置をアクセスする権利をバス権という。このバス権を本発明のデータ処理装置が解放している場合、即ち他の装置に外部データバス16の使用権を譲っている場合に、他のデータ処理装置が外部データバス16を使用して外部装置 (たとえば主記憶装置28) に対してデータの書き換えを行なっていることを外部制御信号線17へ出力されているメモリライト信号とデータストローブ信号 (外部データバス16上に有効なデータが出力されていることを示す信号) の状態によりバスインタフェイス部13が検出すると、バスインタフェイス部13はバススヌープ信号20を”1”にすると同時に外部アドレスバス15上のデータを内部アドレスバス6へ出力する。
【0044】
そして、オペランドフェッチの場合と同様に、タグ5と内部アドレスバス6の上位20ビットとが一致していて且つバリッドビットレジスタ91が”1”であればキャッシュヒット信号11が出力される。そしてこの際、バススヌープ信号20が”1”であり且つ内蔵キャッシュモード (内蔵メモリモード信号9が”0”) であれば、 ANDゲート74から出力される信号によりバリッドビットレジスタ91の内容が”0”にされ、これがバリッドビット部90へ送られて対応するバリッドビットが”0”にされる。即ち、データ部3の対応するデータが無効にされる。
【0045】
本発明の実施例は従来のダイレクトマップ方式の内蔵キャッシュメモリのシステムに、図4に示されている構成と、データストア時に外部バスに書き込み要求を出力するか否かを選択する回路を付加するのみにて構成されている。しかし、他の実施例として、内蔵RAM モード時には内蔵キャッシュメモリとは独立した回路で内蔵メモリをアクセスする手法、あるいは内蔵RAM 時にはタグ部2に内蔵RAM のアドレスを書き込んでおくという手法もある。この場合、内蔵メモリの一部を内蔵RAM とし、その他の一部を内蔵キャッシュメモリとして分割して使用することも可能である。
【0046】
次に、フェッチリトライ機構について説明する。
図10に本発明のデータ処理装置としての32ビットマイクロプロセッサのオペランドフェッチステージ34とその前後の各ステージとの間で送受される信号及びオペランドフェッチステージ34とオペランドアクセス部1との間で送受される信号を模式的に示す。なお、オペランドフェッチステージ34はパイプライン処理の概念的なステージであるが、ここではオペランドアクセス部1以外のオペランドフェッチのために必要なハードウェア及びソフトウェアを一括した概念として示している。また、図11にオペランドフェッチステージ34内に位置するフェッチリトライ機構60の構成例の回路図を示す。
【0047】
オペランドフェッチステージ34へは、オペランドアドレス計算ステージ33から分岐予測信号53, プリフェッチ要求信号51及びオペランドアドレス52が、実行ステージ35からはフェッチ要求信号57が、またオペランドアクセス部1からはプリフェッチ中止信号19及びアクノリッジ信号55がそれぞれ与えられる。オペランドフェッチステージ34からは、実行ステージ35へはアドレス値56が、オペランドアクセス部1へは第1プリフェッチ要求信号7及び第2プリフェッチ要求信号8が与えられる。
【0048】
なお、参照符号37はストアバッファであり、ストアステージ36によりデータがストアされる際に使用される。
また、オペランドアドレス計算ステージ33からオペランドフェッチステージ34に与えられるプリフェッチ要求信号51, オペランドフェッチステージ34からオペランドアクセス部1に与えられる第1プリフェッチ要求信号7及び第2プリフェッチ要求信号8はオペランドのプリフェッチを指示するための信号であり、実行ステージ35からオペランドフェッチステージ34に与えられるフェッチ要求信号57は次の命令のフェッチを指示するための信号である。
【0049】
図11に示されているように、本発明のデータ処理装置の一実施例としてのマイクロプロセッサのオペランドフェッチステージ34内に位置するフェッチリトライ機構60はその内部にFAレジスタ61A, FBレジスタ61Bの二つのレジスタを備えている。
FAレジスタ61Aは、オペランドアドレス計算ステージ33から与えられるオペランドアドレス52を保持し、ゲート62を介して実行ステージ35へアドレス値56として出力する。また、オペランドアドレス52はゲート64を介して内部アドレスバス6へ出力される。
なお、ゲート 62 及び 64は後述する ANDゲート67の出力信号が”1”である場合にいずれも開路する。
【0050】
FBレジスタ61Bにはゲート63を介してFAレジスタ61Aの出力が入力されるようになっている。ゲート63はオペランドアクセス部1から与えられるアクノリッジ信号55が”1”である場合に開路してFAレジスタ61Aが保持しているオペランドアドレスをFBレジスタ61Bに保持させる。
このFBレジスタ61Bに保持されたオペランドアドレスはゲート65を介して内部アドレスバス6へ出力される。なお、ゲート65は後述する ANDゲート69の出力信号が”1”である場合に開路する。
またFAレジスタ61Aに保持されているオペランドアドレスはゲート66を介して内部アドレスバス6へ出力される。なお、ゲート66は前述の ANDゲート67の出力信号が”1”である場合に開路する。
【0051】
従って、オペランドアドレス計算ステージ33からオペランドフェッチステージ34へ入力されたオペランドアドレス52は、ゲート64を介して内部アドレスバス6へ、FAレジスタ61Aに一旦保持された上でゲート66を介して内部アドレスバス6へ、FAレジスタ61Aからゲート63を介してFBレジスタ61Bに一旦保持された上でゲート65を介して内部アドレスバス6へ、という3通りの内のいずれかの経路で内部アドレスバス6へ出力されてオペランドアクセス部1に与えられる他、FAレジスタ61Aからゲート62を介して実行ステージ35へもアドレス値56として出力される。
【0052】
ANDゲート67は3入力であり、実行ステージ35から出力されるフェッチ要求信号57, オペランドアドレス計算ステージ33から出力されるプリフェッチ要求信号51及びインバータ68の出力信号が入力される。インバータ68の入力信号は、オペランドアクセス部1から出力されるプリフェッチ中止信号19をラッチするラッチ95の出力である。なお、このラッチ95はフェッチ要求信号57が”1”になるとクリアされる。
従って、フェッチ要求信号57, プリフェッチ要求信号51が”1” (有効) であり且つプリフェッチ中止信号19が”0” (無効) である場合に ANDゲート67の出力信号は”1”になる。これは、フェッチ要求信号57により実行ステージ35から次の命令のフェッチが要求されており、プリフェッチ要求信号51によりオペランドアドレス計算ステージ33からオペランドのプリフェッチが要求されており、且つプリフェッチ中止信号19によりオペランドアクセス部1からプリフェッチの中止が要求されていない場合にのみ ANDゲート67の出力信号が”1”になることを意味している。
この ANDゲート67の出力信号は前述の如くゲート62, 64, 66の制御信号となっている他、後述する ANDゲート96, 97にも与えられている。
【0053】
ANDゲート69は2入力であり、ラッチ95の出力及びインバータ99の出力が与えられている。インバータ99はオペランドアドレス計算ステージ33から出力されている分岐予測信号53を反転するために備えられている。従って、 ANDゲート69の出力信号はプリフェッチ中止信号19が”1”で分岐予測信号53が”0”の場合に”1”になる。これは、プリフェッチ中止信号19によりオペランドアクセス部1からプリフェッチの中止が要求されており、且つ分岐予測信号53によりオペランドアドレス計算ステージ33から分岐予測が行なわれていないことが知らされている場合にのみ ANDゲート69の出力信号が”1”になることを意味している。
この ANDゲート69の出力信号は前述のゲート65の制御信号となっている。
【0054】
ANDゲート96及び97の一方の入力端子には前述の如く ANDゲート67の出力信号が入力されているが、 ANDゲート96の他方の入力端子には分岐予測信号53をインバータ98で反転した信号が、 ANDゲート97の他方の入力端子には分岐予測信号53がそのまま入力されている。 ANDゲート96の出力信号は第1プリフェッチ要求信号7として、 ANDゲート97の出力信号は第2プリフェッチ要求信号8としてオペランドアクセス部1へそれぞれ出力されている。従って、 ANDゲート67の出力信号が”1”である場合に、オペランドアドレス計算ステージ33で分岐予測が行なわれている場合 (分岐予測信号53が”1”) には AND ゲート 97 からプリフェッチ要求信号が、分岐予測が行なわれていない場合 (分岐予測信号53が”0”) には AND ゲート 96 からプリフェッチ要求信号がそれぞれオペランドアクセス部1へ出力される。
【0055】
次に、上述のような構成のフェッチリトライ機構60の動作について、図12のタイミングチャートを参照して説明する。ここで、プリフェッチ中止信号19は最初は無効 (”0”) であるとする。
なお、図12のタイミングチャートにおいて、波形W11 は本発明のデータ処理装置の内部クロックを、波形W12 は内部アドレスバス6上のアドレスを、波形W13 はタグ部2から出力されるタグ情報を、波形W14 はデータ部3から出力されるデータを、波形W15 はキャッシュヒット信号11を、波形W16 はプリフェッチ要求信号51を、波形W17 は第1プリフェッチ要求信号7を、波形W18 は第2プリフェッチ要求信号8を、波形W19 はキャッシュヒット信号11を、波形W20 はプリフェッチ中止信号19を、波形W21 は内部データバス14上のデータをそれぞれ示している。
【0056】
図12のクロックCL11において、オペランドアドレス計算ステージ33からオペランドアドレス52と共にプリフェッチ要求信号51がオペランドフェッチステージ34に入力されると、オペランドアドレス52の値がFAレジスタ61Aに入力されて保持される。
この際、実行ステージ35からフェッチ要求信号57が出力されていれば(その値が”1”であれば)、 ANDゲート67の出力信号が”1”になっているためゲート64が開路する。これにより、オペランドアドレス52は内部アドレスバス6へ出力されてオペランドアクセス部1に与えられる。それと共に、プリフェッチ要求信号51もオペランドアクセス部1へ出力されるが、この時点でパイプライン中の先行する命令で分岐予測が実行されていなければ分岐予測信号53が”0”なので第1プリフェッチ要求信号7が、パイプライン中の先行する命令で分岐予測がされていれば分岐予測信号53が”1”になるので第2プリフェッチ要求信号8がそれぞれ出力される。
【0057】
オペランドアドレス計算ステージ33からプリフェッチ要求信号51が入力された時点で実行ステージ35からフェッチ要求信号57が与えられていなければゲート64が開路しないので、オペランドアドレス52は内部アドレスバス6へは出力されずにFAレジスタ61Aに保持されたままとなる。そして、実行ステージ35からフェッチ要求信号57が出力されると ANDゲート67の出力が”1”になってゲート66が開路するので、FAレジスタ61Aからオペランドアドレス52がフェッチアドレスとして内部アドレスバス6へ出力され、同時にパイプライン中の先行する命令で分岐予測が実行されていなければ分岐予測信号53が”0”なので第1プリフェッチ要求信号7がオペランドアクセス部1へ出力される。
【0058】
パイプラインの先行する命令で分岐予測がされていても (分岐予測信号53が”1”であっても) 、たとえばフェッチするアドレスが即値で指定されている場合にはそのアドレス値はプログラム実行中には動的に変化することはなく、プログラマが明示的に指定したアドレス値であるため、必ずアクセス可能な領域を示すと考えられる。そのような場合は、分岐予測が外れて外部装置をアクセスしても問題はないので、第2プリフェッチ要求信号8ではなく、第1プリフェッチ要求信号7が出力される。
【0059】
第1プリフェッチ要求信号7または第2プリフェッチ要求信号8がオペランドアクセス部1に受け付けられてアクノリッジ信号55が返送されてくるとゲート63が開路するので、アクセス要求の対象になっているアドレス値、即ちFAレジスタ61Aに保持されているオペランドアドレス52ががFBレジスタ61Bに入力されて保持され、FAレジスタ61Aは次の命令のオペランドアドレス52を取り込むことが出来るようになる。
【0060】
オペランドアクセス部1は、図3に示されているように、第1プリフェッチ要求信号7または第2プリフェッチ要求信号8が入力されると、フェッチされるべきデータがキャッシュメモリ内にあればキャッシュヒットとしてキャッシュヒット信号11をクロックCL12において出力し、対応するデータをデータ出力レジスタ10から内部データバス14へ出力する。そして、オペランドフェッチステージ34は内部データバス14上のデータを実行ステージ35へ送る。また、第1プリフェッチ要求信号7発生時には、内蔵キャッシュメモリへのアクセスと同時にバスインタフェイス部13にもフェッチ要求が出力される。そして、キャッシュミスすれば外部データバス16からオペランドデータが取り込まれて演算部25へ送られる。キャッシュヒットすれば、キャッシュヒット信号11により外部へのフェッチはキャンセルされる。
【0061】
但し、クロックCL14, CL15において上述同様に動作した後、第2プリフェッチ要求信号8の発生時点でキャッシュミスした場合には、クロックCL15におてAND ゲート76からプリフェッチ中止信号19が出力されてオペランドフェッチステージ34にキャッシュミスしたことが知らされる。
【0062】
プリフェッチ中止信号19が入力されると、オペランドフェッチステージ34はオペランドアドレス計算ステージ33からの入力を止め、パイプラインの先行するステージにある予測段階の分岐命令が確定するまで処理を中断する。その後、実行ステージ35において分岐条件が確定し、分岐が予測通り実行されればクロックCL17において実行ステージ35からフェッチ要求信号57が出力されて処理が再開される。但し、この時点で分岐予測信号53は”0”になっているため今回は第1プリフェッチ要求信号7が出力される。
【0063】
ところで、上述のプリフェッチ中止信号19の出力により処理が中断した時点では既に更に次の命令のオペランドアドレスがFAレジスタ61Aに入力されている可能性があるため、処理を再開した1回目の時点ではまだラッチ95はクリアされておらず、また分岐予測信号53は”0”になっているのでゲート65が開路している。これにより、FBレジスタ61Bに保持されている中断したフェッチのフェッチアドレスが内部アドレスバス6へ出力される。そして、その直後にラッチ95の値がクリアされる。
なお、分岐が予測と異なっていれば、パイプライン中のデータを全てクリアして分岐先の命令から順にパイプラインに取り込んで処理を再開する。
【0064】
本発明のデータ処理装置の一実施例としてのマイクロプロセッサのオペランドフェッチに関する動作のフローを図13のフローチャートに示す。なお、図13のフローチャートは、オペランドアドレス計算ステージ33から出力される1回のプリフェッチ要求に対する動作を示している。
【0065】
まずオペランドアドレス計算ステージ33からプリフェッチ要求信号51が出力され (ステップS1) 、この時点で分岐予測が行なわれていなければ、換言すれば分岐予測信号53が”0”であれば、ステップS8以降ステップS11 の動作が行なわれる。このステップS8乃至ステップS11 は通常のメモリフェッチ動作である。
具体的には、オペランドアクセス部1内のキャッシュメモリ及び外部データバス16がアクセスされ (ステップS8) 、キャッシュヒットすれば、換言すればキャッシュヒット信号11が”1”であればオペランドアクセス部1内のキャッシュメモリがアクセスされてデータがフェッチされ (ステップS10)、キャッシュミスすれば、換言すればキャッシュヒット信号11が”0”であれば外部データバス16がアクセスされてデータがフェッチされる (ステップS11)。
【0066】
一方、ステップS2において分岐予測が行なわれていれば、換言すれば分岐予測信号53が”1”であれば、オペランドアクセス部1内のキャッシュメモリのみがアクセスされる (ステップS3) 。この結果、キャッシュヒットすれば (ステップS4) 、オペランドアクセス部1内のキャッシュメモリからデータフェッチが行なわれる (ステップS10)。
ステップS4においてキャッシュミスすれば、一旦オペランドフェッチが中断される (ステップS5) 。ここで分岐予測の結果が未だ未確定であれば、フェッチ中断の状態になる (ステップS5) 。しかし、分岐予測が正しかった場合には前述のステップS8以降の動作が行なわれる。但し、分岐予測に失敗した場合はパイプラインの各ステージを一旦クリアして分岐先の命令が新たにパイプラインに取り込まれる。
【0067】
従来のマイクロプロセッサであれば、図13に破線にて示されているように、ステップS2において分岐予測が行なわれている場合にはフェッチ中断 (ステップS5) の状態になり、分岐予測が正しかったことが確定した後にステップS8乃至ステップS11 のメモリフェッチ動作が実行されていた。しかし、本発明のデータ処理装置としてのマイクロプロセッサでは、ステップS3及びステップS4の動作を付加することにより、ステップS4でキャッシュヒットした場合には、ステップS5のフェッチ中断ステップS5乃至ステップS6を行なわずに、ステップS10 のメモリフェッチ動作を直ちに行い、ステップS4においてキャッシュミスした場合にのみ外部バスのアクセスを抑止して分岐予測の成功が確定した後に再度アクセスするようにした。
この一連の動作は上述のフェッチリトライ機構により実現される。このようなフェッチリトライ機構により、本発明のデータ処理装置では処理能力が向上する。
【0068】
なお、上記実施例ではデータのフェッチに関して説明したが、命令のフェッチに関しても同様に実施可能であることは言うまでもない。
【0069】
【発明の効果】
以上に詳述したように本発明によれば、分岐予測が行なわれている場合には外部記憶装置へのアクセスが禁止されるが、分岐予測が正しかったことが確定して外部記憶装置へのアクセスが可能になった時点で直ちにアクセスがアドレス保持手段に保持されているアドレスにより行なわれる。このため、分岐予測が行なわれていてもキャッシュミスした場合、換言すれば外部記憶装置へのアクセスが必要な場合にのみ処理が中断されるので、キャッシュメモリを有効に利用することが可能になる。
また、パイプラインの先行する命令で分岐予測がされていても、たとえばフェッチするアドレスが即値で指定されるアドレッシングモード、即ち即値モードである場合にはそのアドレス値はプログラム実行中には動的に変化することはなく、プログラマが明示的に指定したアドレス値であるため、必ずアクセス可能な領域を示すと考えられるので、分岐予測が外れて外部装置をアクセスしても問題はなく、従って外部記憶装置へのアクセスが行なわれる。これにより、内蔵RAM に命令,データがキャッシュされていない場合に所定のアドレッシングモードにおいては外部記憶装置へのアクセスを行なうことが可能になる。
【図面の簡単な説明】
【図1】本発明のデータ処理装置の一実施例としての32ビットマイクロプロセッサ及びその周辺回路の構成を示すブロック図である。
【図2】本発明のデータ処理装置の6段のパイプライン処理機構を示す模式図である。
【図3】本発明に係るデータ処理装置のキャッシュメモリを内蔵したオペランドアクセス部の構成例を示すブロック図である。
【図4】本発明のデータ処理装置の内蔵キャッシュモードと内蔵RAM モードとの切り換え及びキャッシュヒット信号の生成に関する回路の構成例を示す回路図である。
【図5】本発明のデータ処理装置のキャッシュアクセスの際のタイミングチャートである。
【図6】 DMADDRレジスタのフィールド及びその意味を示す模式図である。
【図7】 NCADDRレジスタのフィールド及びその意味を示す模式図である。
【図8】 BMPレジスタのフィールド及びその意味を示す模式図である。
【図9】 BMCレジスタのフィールド及びその意味を示す模式図である。
【図10】本発明のデータ処理装置のオペランドフェッチステージとその前後の各ステージとの間で送受される信号及びオペランドフェッチステージとオペランドアクセス部との間で送受される信号を示す模式図である。
【図11】オペランドフェッチステージ内に位置するフェッチリトライ機構の構成例を示す回路図である。
【図12】 本発明のデータ処理装置のフェッチリトライ機構の動作を示すタイミングチャートである。
【図13】本発明のデータ処理装置のオペランドフェッチに関する動作の手順を示すフローチャートである。
【符号の説明】
1 オペランドアクセス部
4 DMADDRレジスタ
13 バスインタフェイス部
15 外部アドレスバス
16 外部データバス
17 外部制御信号線
18 比較器
19 プリフェッチ中止信号
28 主記憶装置
31 命令フェッチステージ
32 命令デコードステージ
33 オペランドアドレス計算ステージ
34 オペランドフェッチステージ
35 実行ステージ
36 ストアステージ
41 セレクタ
60 フェッチリトライ機構
61B FBレジスタ
74 EXORゲート
75 ANDゲート
900 BMCレジスタ

Claims (2)

  1. 命令及びデータを格納した外部記憶装置と、
    前記外部記憶装置に格納されている命令またはデータのアドレスを出力する外部アドレスバスと、
    バスアクセス制御信号を出力して前記外部データバスをアクセスするバスインタフェイス部と、
    前記バスアクセス制御信号が出力され、前記外部アドレスバスへアドレスが出力された場合に、前記外部記憶装置との間で命令またはデータを入出力する外部データバスと、
    前記外部記憶装置に格納されている命令またはデータの一部または全部を格納する内部記憶装置と、
    分岐命令を処理する場合に分岐先を予測する分岐予測手段を有するパイプライン処理機構と
    を備えたデータ処理装置において、
    次の命令またはデータの読み込みに際して、前記次の命令またはデータが前記内部記憶装置に記憶されている場合はそれを前記内部記憶装置から読み込み、次の命令またはデータが前記内部記憶装置に記憶されていない場合は前記バスインタフェイス部に前記外部記憶装置をアクセスさせて前記次の命令またはデータを読み込むデータ読み込み手段と、
    前記分岐予測手段が分岐先を予測していない場合に第1の値になり、分岐先を予測している場合に第2の値になる制御信号を発生する制御信号発生手段と、
    前記制御信号が第2の値である場合に前記データ読み込み手段が前記バスインタフェイス部に前記外部記憶装置をアクセスさせることを禁じる読み込み禁止手段と
    を備え、
    前記制御信号発生手段は、次に読み込む命令またはデータのアドレスが即値で指定される場合には、前記分岐予測手段が分岐先を予測しているか否かには拘わらずに前記制御信号の値を前記第1の値に決定すべくなしてあることを特徴とするデータ処理装置。
  2. 命令及びデータを格納した外部記憶装置と、
    前記外部記憶装置に格納されている命令またはデータのアドレスを出力する外部アドレスバスと、
    バスアクセス制御信号を出力して前記外部データバスをアクセスするバスインタフェイス部と、
    前記バスアクセス制御信号が出力され、前記外部アドレスバスへアドレスが出力された場合に、前記外部記憶装置との間で命令またはデータを入出力する外部データバスと、
    前記外部記憶装置に格納されている命令またはデータの一部または全部を格納する内部記憶装置と、
    分岐命令を処理する場合に分岐先を予測する分岐予測手段を有するパイプライン処理機構と
    を備えたデータ処理装置において、
    次の命令またはデータの読み込みに際して、前記次の命令またはデータが前記内部記憶装置に記憶されている場合はそれを前記内部記憶装置から読み込み、次の命令またはデータが前記内部記憶装置に記憶されていない場合は前記バスインタフェイス部に前記外部記憶装置をアクセスさせて前記次の命令またはデータを読み込むデータ読み込み手段と、
    前記分岐予測手段が分岐先を予測していない場合に第1の値になり、分岐先を予測している場合に第2の値になる制御信号を発生する制御信号発生手段と、
    前記制御信号が第2の値である場合に前記データ読み込み手段が前記バスインタフェイス部に前記外部記憶装置をアクセスさせることを禁じる読み込み禁止手段と、
    前記読み込み禁止手段により外部記憶装置へのアクセスが禁じられた場合にそのアクセス先のアドレスを記憶するアドレス保持手段と
    を備え、
    前記制御信号発生手段は、次に読み込む命令またはデータのアドレスが即値で指定される場合には前記制御信号の値を前記第1の値に決定すべくなしてあり、
    前記データ読み込み手段は、前記分岐予測手段による分岐先の予測が正しいことが確定した場合に前記アドレス保持手段に記憶されているアドレスで再度命令またはデータの読み込みを行なうべくなしてあること
    を特徴とするデータ処理装置。
JP24814193A 1993-10-04 1993-10-04 データ処理装置 Expired - Lifetime JP3639927B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP24814193A JP3639927B2 (ja) 1993-10-04 1993-10-04 データ処理装置
US08/689,115 US5708803A (en) 1993-10-04 1996-07-30 Data processor with cache memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24814193A JP3639927B2 (ja) 1993-10-04 1993-10-04 データ処理装置

Publications (2)

Publication Number Publication Date
JPH07105093A JPH07105093A (ja) 1995-04-21
JP3639927B2 true JP3639927B2 (ja) 2005-04-20

Family

ID=17173839

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24814193A Expired - Lifetime JP3639927B2 (ja) 1993-10-04 1993-10-04 データ処理装置

Country Status (2)

Country Link
US (1) US5708803A (ja)
JP (1) JP3639927B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1197867A3 (en) * 1996-06-06 2005-12-14 Freescale Semiconductor, Inc. Method for accessing memory
US5995749A (en) * 1996-11-19 1999-11-30 Advanced Micro Devices, Inc. Branch prediction mechanism employing branch selectors to select a branch prediction
US5978906A (en) 1996-11-19 1999-11-02 Advanced Micro Devices, Inc. Branch selectors associated with byte ranges within an instruction cache for rapidly identifying branch predictions
US5954816A (en) * 1996-11-19 1999-09-21 Advanced Micro Devices, Inc. Branch selector prediction
US6253316B1 (en) 1996-11-19 2001-06-26 Advanced Micro Devices, Inc. Three state branch history using one bit in a branch prediction mechanism
FR2762416B1 (fr) * 1997-04-16 1999-05-21 Thomson Multimedia Sa Methode et dispositif d'acces a des ensembles de donnees contenus dans une memoire de masse
US6108774A (en) * 1997-12-19 2000-08-22 Advanced Micro Devices, Inc. Branch prediction with added selector bits to increase branch prediction capacity and flexibility with minimal added bits
US6502188B1 (en) 1999-11-16 2002-12-31 Advanced Micro Devices, Inc. Dynamic classification of conditional branches in global history branch prediction
JP2001236715A (ja) * 2000-02-23 2001-08-31 Pioneer Electronic Corp ディスク再生装置
EP1182565B1 (en) * 2000-08-21 2012-09-05 Texas Instruments France Cache and DMA with a global valid bit
TW477954B (en) * 2000-12-05 2002-03-01 Faraday Tech Corp Memory data accessing architecture and method for a processor
US20050027974A1 (en) * 2003-07-31 2005-02-03 Oded Lempel Method and system for conserving resources in an instruction pipeline
US7167952B2 (en) * 2003-09-17 2007-01-23 International Business Machines Corporation Method and system for performing a memory-mode write to cache
US7373637B2 (en) * 2003-09-30 2008-05-13 International Business Machines Corporation Method and apparatus for counting instruction and memory location ranges
US7937691B2 (en) 2003-09-30 2011-05-03 International Business Machines Corporation Method and apparatus for counting execution of specific instructions and accesses to specific data locations
US7395527B2 (en) 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US8381037B2 (en) * 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US7421681B2 (en) * 2003-10-09 2008-09-02 International Business Machines Corporation Method and system for autonomic monitoring of semaphore operation in an application
US7895382B2 (en) * 2004-01-14 2011-02-22 International Business Machines Corporation Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
US7526757B2 (en) * 2004-01-14 2009-04-28 International Business Machines Corporation Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program
US7415705B2 (en) * 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
US7392370B2 (en) * 2004-01-14 2008-06-24 International Business Machines Corporation Method and apparatus for autonomically initiating measurement of secondary metrics based on hardware counter values for primary metrics
US7496908B2 (en) * 2004-01-14 2009-02-24 International Business Machines Corporation Method and apparatus for optimizing code execution using annotated trace information having performance indicator and counter information
US7421684B2 (en) 2004-03-22 2008-09-02 International Business Machines Corporation Method and apparatus for autonomic test case feedback using hardware assistance for data coverage
US7526616B2 (en) * 2004-03-22 2009-04-28 International Business Machines Corporation Method and apparatus for prefetching data from a data structure
US8135915B2 (en) * 2004-03-22 2012-03-13 International Business Machines Corporation Method and apparatus for hardware assistance for prefetching a pointer to a data structure identified by a prefetch indicator
JP2011028540A (ja) * 2009-07-27 2011-02-10 Renesas Electronics Corp 情報処理システム、キャッシュメモリの制御方法、プログラム及びコンパイラ
US10083135B2 (en) * 2015-08-28 2018-09-25 Macronix International Co., Ltd. Cooperative overlay

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3382350D1 (de) * 1982-11-17 1991-08-29 Nec Corp Anordnung zum vorabholen von befehlen mit vorhersage einer verzweigungszieladresse.
EP0150177A1 (en) * 1983-07-11 1985-08-07 Prime Computer, Inc. Data processing system
US4764861A (en) * 1984-02-08 1988-08-16 Nec Corporation Instruction fpefetching device with prediction of a branch destination for each branch count instruction
EP0258453B1 (en) * 1986-02-28 1993-05-19 Nec Corporation Instruction prefetch control apparatus
EP0378415A3 (en) * 1989-01-13 1991-09-25 International Business Machines Corporation Multiple instruction dispatch mechanism
US5226130A (en) * 1990-02-26 1993-07-06 Nexgen Microsystems Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
JP2678527B2 (ja) * 1991-01-08 1997-11-17 三菱電機株式会社 キャッシュメモリ装置
US5442756A (en) * 1992-07-31 1995-08-15 Intel Corporation Branch prediction and resolution apparatus for a superscalar computer processor

Also Published As

Publication number Publication date
US5708803A (en) 1998-01-13
JPH07105093A (ja) 1995-04-21

Similar Documents

Publication Publication Date Title
JP3639927B2 (ja) データ処理装置
EP0381447B1 (en) Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
US5530825A (en) Data processor with branch target address cache and method of operation
US5617553A (en) Computer system which switches bus protocols and controls the writing of a dirty page bit of an address translation buffer
US5481734A (en) Data processor having 2n bits width data bus for context switching function
US5509137A (en) Store processing method in a pipelined cache memory
US6349383B1 (en) System for combining adjacent push/pop stack program instructions into single double push/pop stack microinstuction for execution
JPS58125148A (ja) 条件付きブランチ命令の予測装置
US5522053A (en) Branch target and next instruction address calculation in a pipeline processor
US6178492B1 (en) Data processor capable of executing two instructions having operand interference at high speed in parallel
JPH08249181A (ja) ブランチ予測式データ処理装置および動作方法
JP2006520964A (ja) 分岐ターゲットに基づいて分岐予測をするための方法および装置
JPH01216427A (ja) データ処理装置
JP2006520964A5 (ja)
JP3590427B2 (ja) 先行読出機能付命令キャッシュメモリ
JPH08320788A (ja) パイプライン方式プロセッサ
JP3606435B2 (ja) モードを変更する分岐命令を制御する命令処理装置および方法
US5361338A (en) Pipelined system for decomposing instruction into two decoding parts and either concurrently generating two operands addresses of merging decomposing decoding codes based upon the second operand
US5197133A (en) Control store addressing from multiple sources
JPH0667981A (ja) アドレス変換バッファの置換えるエントリを選択する回路及び方法
US7472264B2 (en) Predicting a jump target based on a program counter and state information for a process
US6233675B1 (en) Facility to allow fast execution of and, or, and test instructions
US4853889A (en) Arrangement and method for speeding the operation of branch instructions
JP3274859B2 (ja) データ処理装置
JPH07262006A (ja) 分岐ターゲットアドレスキャッシュを備えたデータプロセッサ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040608

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040726

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041228

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080128

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090128

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090128

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100128

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110128

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110128

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110128

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110128

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120128

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130128

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140128

Year of fee payment: 9

EXPY Cancellation because of completion of term