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

マイクロプロセッサ

Info

Publication number
JP2003029967A
JP2003029967A JP2001216223A JP2001216223A JP2003029967A JP 2003029967 A JP2003029967 A JP 2003029967A JP 2001216223 A JP2001216223 A JP 2001216223A JP 2001216223 A JP2001216223 A JP 2001216223A JP 2003029967 A JP2003029967 A JP 2003029967A
Authority
JP
Japan
Prior art keywords
address
write
data
read
register
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.)
Pending
Application number
JP2001216223A
Other languages
English (en)
Inventor
Hitoshi Yoda
斉 依田
Sukeyuki Uchiumi
祐之 内海
Yasuhiro Yamazaki
恭啓 山崎
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001216223A priority Critical patent/JP2003029967A/ja
Priority to US10/095,568 priority patent/US6823406B2/en
Priority to TW091104977A priority patent/TWI222567B/zh
Priority to EP02251945A priority patent/EP1278121B1/en
Priority to DE60216016T priority patent/DE60216016T2/de
Priority to KR1020020017909A priority patent/KR100764581B1/ko
Publication of JP2003029967A publication Critical patent/JP2003029967A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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
    • 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/3834Maintaining memory consistency

Landscapes

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

Abstract

(57)【要約】 【課題】 マイクロプロセッサにおいて、ハードウェア
でアクセスの順序を保障すること。 【解決手段】 シリアル・アドレス・レジスタ81に、
アクセス順序を保障する必要のあるアドレスを格納す
る。CPU2から供給されたアドレスと、シリアル・ア
ドレス・レジスタ81に格納されているアドレスとを、
シリアル・アドレス比較器82により比較する。比較の
結果、アドレス一致の場合には、先行するアクセス要求
がバス・コントロール部5に受け付けられて動作を完了
するまで、後続のアクセス要求を待機させる。先行する
アクセス要求が完了した後、後続のアクセス要求を実行
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラムのリー
ドおよびライトの順序を入れ替えて実行するマイクロプ
ロセッサに関する。
【0002】画像処理プロセッサなどの、プログラムの
リードおよびライトの順序を入れ替えて実行するマイク
ロプロセッサでは、CPUが主記憶装置または周辺シス
テムに対してプログラムの順序通りに発行したリード命
令およびライト命令を、処理性能を上げるために順序を
入れ替えて実行することがある。このようなマイクロプ
ロセッサでは、CPUが、周辺システムのコントロール
・レジスタなどの中でアクセスの順番により意味が変わ
るレジスタにアクセスする場合には、アクセス順序を保
障する必要がある。
【0003】
【従来の技術】一般に、CPUは、主記憶装置(メイン
・メモリ)に格納されているマシン命令やデータにアク
セスして処理(演算)をおこなう。しかし、主記憶装置
の動作速度はCPUに比べて著しく低速であるため、主
記憶装置に対するリードやライトには処理時間がかか
る。そこで、CPUと主記憶装置との間に、主記憶装置
よりも高速に動作するキャッシュ・メモリを設け、その
キャッシュ・メモリに命令やデータを一時的に格納する
ことにより、主記憶装置へのアクセスを減らし、リード
やライトに要する処理時間の短縮を図っている。
【0004】図6は、CPUが主記憶装置にデータを書
き込む際のデータの流れを模式的に示す概略図である。
マイクロプロセッサ1はCPU2およびキャッシュ・シ
ステム3を有している。CPU2は、キャッシュ・シス
テム3にライト・データおよびライト・アドレス・デー
タ(以下、アドレス・データを単にアドレスとする)を
出力する。ライト・データおよびライト・アドレスはバ
ス・コントロール部(BUSC)5を介して主記憶装置
6に送られ、そこに書き込まれる。このデータの流れは
図6において黒矢印で示されている。
【0005】図7は、CPUが主記憶装置からデータを
読み出す際のデータの流れを模式的に示す概略図であ
る。CPU2は、キャッシュ・システム3に読み出し対
象データのアドレス、すなわちリード・アドレスを出力
する。リード・アドレスはバス・コントロール部5を介
して主記憶装置6に送られる。主記憶装置6では、リー
ド・アドレスに対応するデータが読み出される。その読
み出されたデータはバス・コントロール部5およびキャ
ッシュ・システム3を介してCPU2に送られる。この
データの流れは図7において黒矢印で示されている。
【0006】図8は、CPUが周辺システムにデータを
書き込む際のデータの流れを模式的に示す概略図であ
る。CPU2は、キャッシュ・システム3にライト・デ
ータおよびライト・アドレスを出力する。ライト・デー
タおよびライト・アドレスはバス・コントロール部5を
介して周辺システム7に送られ、そこのコントロール・
レジスタ等に書き込まれる。このデータの流れは図8に
おいて黒矢印で示されている。
【0007】図9は、CPUが周辺システムのレジスタ
等からデータを読み出す際のデータの流れを模式的に示
す概略図である。CPU2は、キャッシュ・システム3
にリード・アドレスを出力する。リード・アドレスはバ
ス・コントロール部5を介して周辺システム7に送られ
る。周辺システム7では、リード・アドレスに対応する
データが読み出される。その読み出されたデータはバス
・コントロール部5およびキャッシュ・システム3を介
してCPU2に送られる。このデータの流れは図9にお
いて黒矢印で示されている。
【0008】図10は、従来のマイクロプロセッサのキ
ャッシュ・システムの構成を詳細に示すブロック図であ
る。図10に示すように、キャッシュ・システム3は、
キャッシュ・ブロックの識別アドレスを保持するタグR
AM31、およびデータを保持するキャッシュRAM3
2を有する。
【0009】また、キャッシュ・システム3は、アドレ
スを保持するレジスタとして、ウェイト・アドレス・レ
ジスタ(WAR)33、リード・アドレス・レジスタ
(RAR)34、キャッシュ・ライト・バッファ・アド
レス(CWBA)35およびストア・バッファ・アドレ
ス(STBA)36を有する。また、キャッシュ・シス
テム3は、データを保持するレジスタとしてウェイト・
データ・レジスタ(WDR)37、キャッシュ・ライト
・バッファ(CWB)38およびストア・バッファ(S
TB)39を有する。また、キャッシュ・システム3
は、5個のセレクタ41,43,44,45,46およ
びタグ・アドレス比較器42を有する。また、キャッシ
ュ・システム3は、キャッシュ・システム3の制御をお
こなう図示しないキャッシュ制御部を有する。
【0010】図10に示すマイクロプロセッサの動作に
ついて説明する。図11は、図10に示すマイクロプロ
セッサにおいてリード・アクセスがキャッシュ・ヒット
したときのアドレスおよびリード・データの流れを示す
図である。図11においては、アドレスおよびデータの
経路を太線で示す(図12〜図22および図2〜図5に
おいても同じ)。CPU2はセレクタ41を介してタグ
RAM31およびキャッシュRAM32にリード・アド
レスを供給する。タグ・アドレス比較器42はタグ・ア
ドレスとリード・アドレスとを比較する。比較の結果、
それらが一致していれば(キャッシュ・ヒット)、CP
U2は、セレクタ45,46を介してキャッシュRAM
32の、アドレスが一致していたウェイから読み出され
たデータを受け取る。また、キャッシュ・ヒット信号が
アサートされる。
【0011】図12は、図10に示すマイクロプロセッ
サにおいてリード・アクセスがキャッシュ・ミスしたと
きのアドレスおよびリード・データの流れを示す図であ
る。CPU2はセレクタ41を介してタグRAM31に
リード・アドレスを供給する。タグ・アドレス比較器4
2はタグ・アドレスとリード・アドレスとを比較する。
比較の結果、それらが一致していなければ(キャッシュ
・ミス)、リード・アドレスはリード・アドレス・レジ
スタ34に格納される。格納されたリード・アドレス
は、バス・コントロール部5に受け付けられるまで、リ
ード要求とともにバス・コントロール部5に出力され
る。
【0012】バス・コントロール部5がリード要求とア
ドレスを受け付けた結果、バス・コントロール部5から
リード・データが供給されたら、そのリード・データは
セレクタ46を介してCPU2に送られるとともに、セ
レクタ44を介してキャッシュRAM32にデータが格
納される。キャッシュ・ヒット信号はネゲートされる。
厳密にいえばキャッシュRAM32にもCPU2からリ
ード・アドレスが供給されるが、ここではキャッシュ・
ミスの場合であるので、図12ではセレクタ41とキャ
ッシュRAM32との間を、アドレスの供給経路を示す
太線ではなく、細線で示した(図20においても同
じ)。
【0013】図13は、図10に示すマイクロプロセッ
サにおいてライト・アクセスがキャッシュ・ヒットした
ときのアドレスおよびデータの流れを示す図である。C
PU2はセレクタ41を介してタグRAM31およびキ
ャッシュRAM32にライト・アドレスを供給する。タ
グ・アドレス比較器42はタグ・アドレスとライト・ア
ドレスとを比較する。比較の結果、それらが一致してい
れば(キャッシュ・ヒット)、ライト・アドレスはキャ
ッシュ・ライト・バッファ・アドレス35およびストア
・バッファ・アドレス36に格納される。
【0014】また、ライト・データはセレクタ43を介
してキャッシュ・ライト・バッファ38およびストア・
バッファ39に格納される。ストア・バッファ・アドレ
ス36に格納されたライト・アドレスおよびストア・バ
ッファ39に格納されたライト・データはライト要求と
ともにバス・コントロール部5に供給される。一方、キ
ャッシュ・ライト・バッファ・アドレス35に格納され
たライト・アドレスはタグRAM31およびキャッシュ
RAM32に供給される。キャッシュRAM32の、そ
のライト・アドレスに対応する領域に、キャッシュ・ラ
イト・バッファ38に格納されたライト・データが書き
込まれる。また、キャッシュ・ヒット信号がアサートさ
れる。
【0015】図14は、図10に示すマイクロプロセッ
サにおいてライト・アクセスがキャッシュ・ミスしたと
きのアドレスおよびデータの流れを示す図である。CP
U2はセレクタ41を介してタグRAM31にライト・
アドレスを供給する。タグ・アドレス比較器42はタグ
・アドレスとライト・アドレスとを比較する。比較の結
果、それらが一致していなければ(キャッシュ・ミ
ス)、ライト・アドレスはストア・バッファ・アドレス
36に格納され、一方、ライト・データはセレクタ43
を介してストア・バッファ39に格納される。
【0016】そして、バス・コントロール部5が受け付
けるまで、バス・コントロール部5にライト要求とライ
ト・アドレスとライト・データが出力される。キャッシ
ュ・ヒット信号はネゲートされる。厳密にいえばキャッ
シュRAM32にもCPU2からライト・アドレスが供
給されるが、ここではキャッシュ・ミスの場合であるの
で、図14ではセレクタ41とキャッシュRAM32と
の間を細線で示した(図2、図15および図19におい
ても同じ)。
【0017】つぎに、図10に示すマイクロプロセッサ
においてライト・アクセスにつづいてリード・アクセス
が起こり、かつライトとリードとの間にアドレス依存が
ある場合の動作について説明する。図15〜図18は、
この場合のアドレスおよびデータの流れを順に示す図で
ある。CPU2はキャッシュ・システム3に対してライ
ト要求をおこない、タグRAM31にライト・アドレス
を出力する。タグ・アドレス比較器42でタグ・アドレ
スとライト・アドレスを比較した結果、キャッシュ・ミ
スであれば、ストア・バッファ・アドレス36およびス
トア・バッファ39にそれぞれライト・アドレスおよび
ライト・データが格納される。そして、バス・コントロ
ール部5にライト要求が出力される(図15参照)。
【0018】つづいて、CPU2はキャッシュ・システ
ム3に対してリード要求をおこなう。このリード要求に
よって、リード・アドレスは、ストア・バッファ・アド
レス36に格納されているアドレスと比較され、一致す
る場合にはウェイト・アドレス・レジスタ33に格納さ
れる。そして、先行するライト要求がバス・コントロー
ル部5に受け付けられて動作を完了するまで、リード・
アドレスはウェイト・アドレス・レジスタ33に保持さ
れる(図16参照)。
【0019】先行のライト要求が完了すると、再度後続
のリード要求が実行される。キャッシュ・ミスであれ
ば、リード・アドレスはリード・アドレス・レジスタ3
4に格納され、バス・コントロール部5へリード要求と
アドレスが出力される(図17参照)。バス・コントロ
ール部5はリード要求を受け付けて、要求されたデータ
をキャッシュ・システム3に返す。その返されたデータ
はキャッシュ・システム3からCPU2に出力される
(図18参照)。このように、ライト・アクセスとリー
ド・アクセスとの間にアドレス依存がある場合には、ラ
イト要求やリード要求の順序が入れ替わることはない。
【0020】つぎに、図10に示すマイクロプロセッサ
においてライト・アクセスにつづいてリード・アクセス
が起こり、かつライトとリードとの間にアドレス依存が
ない場合の動作について説明する。図19〜図22は、
この場合のアドレスおよびデータの流れを順に示す図で
ある。CPU2はキャッシュ・システム3に対してライ
ト要求をおこない、タグRAM31にライト・アドレス
を出力する。タグ・アドレス比較器42でタグ・アドレ
スとライト・アドレスを比較した結果、キャッシュ・ミ
スであれば、ストア・バッファ・アドレス36およびス
トア・バッファ39にそれぞれライト・アドレスおよび
ライト・データが格納される。そして、バス・コントロ
ール部5にライト要求が出力される(図19参照)。
【0021】つづいて、CPU2はキャッシュ・システ
ム3に対してリード要求をおこない、タグRAM31に
リード・アドレスを供給する。タグ・アドレス比較器4
2でのアドレス比較の結果、キャッシュ・ミスであれ
ば、リード・アドレスはリード・アドレス・レジスタ3
4に格納される。そして、バス・コントロール部5が受
け付けるまで、バス・コントロール部5にリード要求と
アドレスが出力される(図20参照)。
【0022】ここで先行のライト要求と後続のリード要
求との間にはアドレス依存がないので、ライト要求とリ
ード要求は同時にバス・コントロール部5に出力される
ことになる。通常、リード要求とライト要求とでは、C
PU2が演算に使用する可能性があるリード要求が優先
されるため、バス・コントロール部5はまずリード要求
を受け付ける。そして、バス・コントロール部5は、要
求されたデータをキャッシュ・システム3に返し、その
返されたデータはそのままCPU2に供給される(図2
1参照)。つづいて、バス・コントロール部5はライト
要求を受け付ける(図22参照)。このように、ライト
・アクセスとリード・アクセスとの間にアドレス依存が
ない場合には、処理能力を上げるためにライト要求やリ
ード要求の順序が入れ替わることがある。
【0023】
【発明が解決しようとする課題】上述したように、アド
レス依存のないアクセスに対しては、アクセス順序を保
障する必要はない。しかしながら、アドレス依存の有無
に関らず、アクセスの順番により意味が変わるレジスタ
にアクセスする場合には、アクセス順序を保障する必要
がある。たとえば、インテル社の8254互換のタイマ
ーに設けられているタイマー・コントロール・ワード・
レジスタ(TCTR)に対して書き込みをおこなった
後、まったく別のアドレスを持つタイマー・コントロー
ル・ステータス・レジスタ(TCSR0〜3)のデータ
を読み出すと、データが変わることがある。
【0024】このタイマー・コントロール・ワード・レ
ジスタ(TCTR)は、SC(Select Counter)1およ
びSC0の値が11のときに、リード・バック・コマン
ドとなる。リード・バック・コマンドのときにタイマー
・コントロール・ステータス・レジスタ(TCSR0〜
3)の値を読み出すと、ステータス・ラッチされたカウ
ント値となる。それに対して、リード・バック・コマン
ドでないとき、すなわちSC1およびSC0の値が11
ではないときにタイマー・コントロール・ステータス・
レジスタ(TCSR0〜3)の値を読み出すと、そのと
きのカウント値となる。
【0025】したがって、このようなレジスタにアクセ
スするときは、アクセス順序を保障するため、たとえ
ば、図23に示すように、タイマー・コントロール・ワ
ード・レジスタ(TCTR)へのアクセスと、タイマー
・コントロール・ステータス・レジスタ(TCSR0〜
3)へのアクセスとの間に、membar命令のように
本命令以前に実行されたロード/ストア命令の完了を待
つような命令を挿入する必要がある。このような場合、
従来は、ソフトウェアによりアクセス順序を保障してい
る。しかしながら、コンパイラではこのようなコードを
出力することが困難であるため、人手によりアクセス順
序を保障するようなプログラムを記述する必要がある。
そのため、従来はプログラミング効率が悪いという問題
点があった。
【0026】本発明は、上記問題点に鑑みてなされたも
のであって、ハードウェアでアクセスの順序を保障する
ことができる構成のマイクロプロセッサを提供すること
を目的とする。
【0027】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、アクセス順序を保障する必要のあるアド
レスを保持するレジスタ、およびこのレジスタに保持さ
れている、アクセス順序を保障する必要のあるアドレス
と、CPUからのアクセス要求のアドレスとを比較する
アドレス比較器を設け、CPUから供給されたアドレス
と、前記レジスタに格納されているアドレスとを比較し
て、それらが一致していれば、先行するアクセス要求を
先に実行し、それが完了した後に後続のアクセス要求を
実行することを特徴とする。
【0028】この発明によれば、CPUから供給された
アドレスと、アクセス順序を保障する必要のあるアドレ
スとを比較して、それらが一致していれば、先行するア
クセス要求を先に実行し、それが完了した後に後続のア
クセス要求を実行するため、アクセス順序を保障する必
要のあるアクセス要求に対して、アクセス順序を保障す
ることができる。
【0029】
【発明の実施の形態】以下に、本発明の実施の形態につ
いて図面を参照しつつ詳細に説明する。図1は、本発明
にかかるマイクロプロセッサのキャッシュ・システムの
構成例を示すブロック図である。図1に示すように、キ
ャッシュ・システム8はシリアル・アドレス・レジスタ
(SAR)81およびシリアル・アドレス比較器82を
有する。
【0030】また、キャッシュ・システム8は、タグR
AM31、キャッシュRAM32、ウェイト・アドレス
・レジスタ(WAR)33、リード・アドレス・レジス
タ(RAR)34、キャッシュ・ライト・バッファ・ア
ドレス(CWBA)35、ストア・バッファ・アドレス
(STBA)36、ウェイト・データ・レジスタ(WD
R)37、キャッシュ・ライト・バッファ(CWB)3
8およびストア・バッファ(STB)39を有する。ま
た、キャッシュ・システム8は、5個のセレクタ41,
43,44,45,46およびタグ・アドレス比較器4
2を有する。また、キャッシュ・システム8は、キャッ
シュ・システム8の制御をおこなう図示しないキャッシ
ュ制御部を有する。
【0031】シリアル・アドレス・レジスタ81は、ア
クセス順序を保障する必要のあるアドレスを保持するた
めのレジスタである。たとえばCPU2が、アクセス順
序を保障する必要のあるアドレスの値をシリアル・アド
レス・レジスタ81にデータとして書き込むことによ
り、シリアル・アドレス・レジスタ81にアドレスが格
納される。
【0032】シリアル・アドレス比較器82は、後述す
るセレクタ41で選択されたアドレスと、シリアル・ア
ドレス・レジスタ81に保持されているアドレスとの比
較をおこなう。その比較の結果、アドレス一致の場合に
は、図示しないキャッシュ制御部に供給されるシリアラ
イズ・ヒット信号がアサートされる。シリアライズ・ヒ
ット信号がアサートされると、図示しないキャッシュ制
御部は、アクセス順序が保障されるような制御をおこな
う。シリアル・アドレス比較器82でのアドレス比較の
結果が不一致の場合には、シリアライズ・ヒット信号が
ネゲートされる。この場合には、アクセス順序は保障さ
れない。
【0033】ウェイト・アドレス・レジスタ33は、何
らかの要因で実行を待たされるときにアドレスを保持す
るレジスタである。リード・アドレス・レジスタ34
は、バス・コントロール部5へのリード・アドレスを保
持するレジスタである。キャッシュ・ライト・バッファ
・アドレス35は、キャッシュ・システム8へのライト
・アドレスを保持するレジスタである。
【0034】ストア・バッファ・アドレス36は、バス
・コントロール部5へのライト・アドレスを保持するレ
ジスタである。ウェイト・データ・レジスタ37は、何
らかの要因で実行を待たされるときにデータを保持する
レジスタである。キャッシュ・ライト・バッファ38
は、キャッシュ・システム8へのライト・データを保持
するレジスタである。ストア・バッファ39は、バス・
コントロール部5へのライト・データを保持するレジス
タである。
【0035】第1のセレクタ41は、CPU2から供給
されたアドレス、ウェイト・アドレス・レジスタ33に
保持されたアドレス、リード・アドレス・レジスタ34
に保持されたアドレス、およびキャッシュ・ライト・バ
ッファ・アドレス35に保持されたアドレスの中から一
つを選択する。セレクタ41で選択されたアドレスは、
ウェイト・アドレス・レジスタ33、リード・アドレス
・レジスタ34、キャッシュ・ライト・バッファ・アド
レス35またはストア・バッファ・アドレス36に供給
されるとともに、タグRAM31およびキャッシュRA
M32、並びにタグ・アドレス比較器42に供給され
る。
【0036】タグ・アドレス比較器42は、ウェイの数
だけ比較器を有し、各比較器はセレクタ41で選択され
たアドレスと、各ウェイのタグRAM31に保持されて
いるアドレスとの比較をおこなう。その比較の結果、ア
ドレス一致の場合には図示しないキャッシュ制御部に供
給されるキャッシュ・ヒット信号がアサートされる。ア
ドレスが不一致の場合にはキャッシュ・ヒット信号がネ
ゲートされる。
【0037】第2のセレクタ43は、CPU2から供給
されたデータ、およびウェイト・データ・レジスタ37
に保持されたデータのうちのいずれか一方を選択する。
セレクタ43で選択されたデータは、ウェイト・データ
・レジスタ37、キャッシュ・ライト・バッファ38ま
たはストア・バッファ39に供給される。
【0038】第3のセレクタ44は、バス・コントロー
ル部5から供給されたリードデータ、およびキャッシュ
・ライト・バッファ38に保持されたデータのうちのい
ずれか一方を選択する。このセレクタ44で選択された
データはキャッシュRAM32に供給される。
【0039】第4のセレクタ45は、タグ・アドレス比
較器42の比較結果に基づいて、いずれかのウェイのキ
ャッシュRAM32からの出力データを選択する。第5
のセレクタ46は、第4のセレクタ45で選択されたデ
ータ、およびバス・コントロール部5から供給されたリ
ードデータのいずれか一方を選択する。この第5のセレ
クタ46で選択されたデータはCPU2に供給される。
【0040】つぎに、図1に示すマイクロプロセッサに
おいてライト・アクセスにつづいてリード・アクセスが
起こり、かつライトとリードとの間にアドレス依存がな
い場合の動作について説明する。図2〜図5は、この場
合のアドレスおよびデータの流れを順に示す図である。
シリアル・アドレス・レジスタ81には、アクセス順序
を保障する必要のあるアドレスがあらかじめ格納されて
いる。
【0041】CPU2はキャッシュ・システム8に対し
てライト要求をおこない、ライト・アドレスを出力す
る。このライト・アドレスは第1のセレクタ41を介し
てタグRAM31およびタグ・アドレス比較器42に供
給される。タグ・アドレス比較器42でタグ・アドレス
とライト・アドレスを比較した結果、キャッシュ・ミス
であれば、ライト・アドレスはストア・バッファ・アド
レス36に格納される。また、CPU2から供給された
ライト・データは、第2のセレクタ43を介してストア
・バッファ39に格納される。そして、バス・コントロ
ール部5にライト要求が出力される(図2参照)。
【0042】つづいて、CPU2はキャッシュ・システ
ム8に対してリード要求をおこない、リード・アドレス
を出力する。このリード・アドレスはシリアル・アドレ
ス比較器82に供給される。シリアル・アドレス比較器
82は、リード・アドレスとシリアル・アドレス・レジ
スタ81に格納されているアドレスとを比較する。比較
の結果、アドレスが一致していれば、リード・アドレス
はウェイト・アドレス・レジスタ33に格納される。そ
して、先行するライト要求がバス・コントロール部5に
受け付けられて動作を完了するまで、リード・アドレス
はウェイト・アドレス・レジスタ33に保持される(図
3参照)。また、キャッシュ・システム8は、これ以後
のCPU2からの要求を受け付けない。
【0043】先行のライト要求が完了すると、再度後続
のリード要求が実行される。タグ・アドレス比較器42
でのアドレス比較の結果、キャッシュ・ミスであれば、
リード・アドレスはリード・アドレス・レジスタ34に
格納される。そして、バス・コントロール部5にリード
要求とアドレスが出力される(図4参照)。バス・コン
トロール部5はリード要求を受け付けて、要求されたデ
ータをキャッシュ・システム8に返す。その返されたデ
ータはキャッシュ・システム8からCPU2に出力され
る(図5参照)。
【0044】なお、ライト・アクセスでキャッシュ・ヒ
ットの場合、リード・アクセスでキャッシュ・ヒットの
場合、あるいはライトとリードとの間にアドレス依存が
ある場合については、従来同様であるため、説明を省略
する。
【0045】上述した実施の形態によれば、シリアル・
アドレス・レジスタ81およびシリアル・アドレス比較
器82を有し、シリアル・アドレス・レジスタ81に、
アクセス順序を保障する必要のあるアドレスを格納し、
CPU2から供給されたアドレスと、シリアル・アドレ
ス・レジスタ81に格納されているアドレスとを比較し
て、それらが一致していれば、先行するアクセス要求が
バス・コントロール部5に受け付けられて動作を完了す
るまで、後続のアクセス要求は待機する状態となるの
で、アクセス順序を保障する必要のあるアクセス要求に
対して、アクセス順序を保障することができる。したが
って、ハードウェアでアクセスの順序を保障することが
できるので、プログラマはアクセス順序等の制限を考慮
せずに、効率よくプログラミングすることができる。
【0046】以上において本発明は、上述した実施の形
態の説明に限らず、種々変更可能であるのはいうまでも
ない。たとえば、シリアル・アドレス・レジスタ81を
複数有する構成としてもよい。そうすれば、複数のアド
レスに対してアクセス順序を保障することができる。ま
た、シリアル・アドレス・レジスタ81で順序を保障す
べきアドレス領域の大きさを設定することができる構成
としてもよい。また、シリアル・アドレス・レジスタ8
1の格納値をあらかじめ設定してなる固定値としてもよ
い。シリアル・アドレス・レジスタ81の格納値を固定
する場合には、キャッシュ・システム8の制御が容易と
なる。
【0047】
【発明の効果】本発明によれば、CPUから供給された
アドレスと、アクセス順序を保障する必要のあるアドレ
スとを比較して、それらが一致していれば、先行するア
クセス要求を先に実行し、それが完了した後に後続のア
クセス要求を実行するため、アクセス順序を保障する必
要のあるアクセス要求に対して、アクセス順序を保障す
ることができる。したがって、ハードウェアでアクセス
の順序を保障することができるので、プログラマはアク
セス順序等の制限を考慮せずに、効率よくプログラミン
グすることができる。
【図面の簡単な説明】
【図1】本発明にかかるマイクロプロセッサのキャッシ
ュ・システムの構成例を詳細に示すブロック図である。
【図2】図1に示すマイクロプロセッサにおいてライト
・アクセスにつづいてリード・アクセスが起こるとき
(アドレス依存なし)のアドレスおよびデータの流れを
示す図である。
【図3】図1に示すマイクロプロセッサにおいてライト
・アクセスにつづいてリード・アクセスが起こるとき
(アドレス依存なし)のアドレスおよびデータの流れを
示す図である。
【図4】図1に示すマイクロプロセッサにおいてライト
・アクセスにつづいてリード・アクセスが起こるとき
(アドレス依存なし)のアドレスおよびデータの流れを
示す図である。
【図5】図1に示すマイクロプロセッサにおいてライト
・アクセスにつづいてリード・アクセスが起こるとき
(アドレス依存なし)のアドレスおよびデータの流れを
示す図である。
【図6】CPUが主記憶装置にデータを書き込む際のデ
ータの流れを模式的に示す概略図である。
【図7】CPUが主記憶装置からデータを読み出す際の
データの流れを模式的に示す概略図である。
【図8】CPUが周辺システムにデータを書き込む際の
データの流れを模式的に示す概略図である。
【図9】CPUが周辺システムからデータを読み出す際
のデータの流れを模式的に示す概略図である。
【図10】従来のマイクロプロセッサのキャッシュ・シ
ステムの構成を詳細に示すブロック図である。
【図11】図10に示すマイクロプロセッサにおいてリ
ード・アクセスがキャッシュ・ヒットしたときのアドレ
スおよびデータの流れを示す図である。
【図12】図10に示すマイクロプロセッサにおいてリ
ード・アクセスがキャッシュ・ミスしたときのアドレス
およびデータの流れを示す図である。
【図13】図10に示すマイクロプロセッサにおいてラ
イト・アクセスがキャッシュ・ヒットしたときのアドレ
スおよびデータの流れを示す図である。
【図14】図10に示すマイクロプロセッサにおいてラ
イト・アクセスがキャッシュ・ミスしたときのアドレス
およびデータの流れを示す図である。
【図15】図10に示すマイクロプロセッサにおいてラ
イト・アクセスにつづいてリード・アクセスが起こると
き(アドレス依存あり)のアドレスおよびデータの流れ
を示す図である。
【図16】図10に示すマイクロプロセッサにおいてラ
イト・アクセスにつづいてリード・アクセスが起こると
き(アドレス依存あり)のアドレスおよびデータの流れ
を示す図である。
【図17】図10に示すマイクロプロセッサにおいてラ
イト・アクセスにつづいてリード・アクセスが起こると
き(アドレス依存あり)のアドレスおよびデータの流れ
を示す図である。
【図18】図10に示すマイクロプロセッサにおいてラ
イト・アクセスにつづいてリード・アクセスが起こると
き(アドレス依存あり)のアドレスおよびデータの流れ
を示す図である。
【図19】図10に示すマイクロプロセッサにおいてラ
イト・アクセスにつづいてリード・アクセスが起こると
き(アドレス依存なし)のアドレスおよびデータの流れ
を示す図である。
【図20】図10に示すマイクロプロセッサにおいてラ
イト・アクセスにつづいてリード・アクセスが起こると
き(アドレス依存なし)のアドレスおよびデータの流れ
を示す図である。
【図21】図10に示すマイクロプロセッサにおいてラ
イト・アクセスにつづいてリード・アクセスが起こると
き(アドレス依存なし)のアドレスおよびデータの流れ
を示す図である。
【図22】図10に示すマイクロプロセッサにおいてラ
イト・アクセスにつづいてリード・アクセスが起こると
き(アドレス依存なし)のアドレスおよびデータの流れ
を示す図である。
【図23】従来のソフトウェアでアクセス順序を保障す
るためのプログラム構成の一部を示す図である。
【符号の説明】
81 シリアル・アドレス・レジスタ(アクセス順序を
保障する必要のあるアドレス領域を保持するレジスタ) 82 シリアル・アドレス比較器(比較器)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山崎 恭啓 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B005 JJ01 KK12 MM01 NN72 5B013 AA01 AA02 CC01 CC03 5B062 AA03 CC04 DD01

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 アクセス順序を保障する必要のあるアド
    レス領域を保持するレジスタと、 前記レジスタに保持されている、アクセス順序を保障す
    る必要のあるアドレス領域と、CPUからのアクセス要
    求のアドレス領域とを比較して、前記両アドレス領域の
    アドレスが一致しているときに、先行するアクセス要求
    を先に実行させた後に後続のアクセス要求を実行させる
    ための信号を出力する比較器と、 を具備することを特徴とするマイクロプロセッサ。
  2. 【請求項2】 前記レジスタに格納される、アクセス順
    序を保障する必要のあるアドレス領域は固定であること
    を特徴とする請求項1に記載のマイクロプロセッサ。
  3. 【請求項3】 前記レジスタに格納される、アクセス順
    序を保障する必要のあるアドレス領域の大きさは設定可
    能であることを特徴とする請求項1に記載のマイクロプ
    ロセッサ。
  4. 【請求項4】 前記レジスタに格納される、アクセス順
    序を保障する必要のあるアドレス領域の大きさは設定可
    能であることを特徴とする請求項2に記載のマイクロプ
    ロセッサ。
  5. 【請求項5】 前記レジスタに格納される、アクセス順
    序を保障する必要のあるアドレス領域は複数設定可能で
    あることを特徴とする請求項1に記載のマイクロプロセ
    ッサ。
  6. 【請求項6】 前記レジスタに格納される、アクセス順
    序を保障する必要のあるアドレス領域を複数有すること
    を特徴とする請求項2に記載のマイクロプロセッサ。
  7. 【請求項7】 前記レジスタに格納される、アクセス順
    序を保障する必要のあるアドレス領域は複数設定可能で
    あることを特徴とする請求項3に記載のマイクロプロセ
    ッサ。
  8. 【請求項8】 前記レジスタに格納される、アクセス順
    序を保障する必要のあるアドレス領域を複数有すること
    を特徴とする請求項4に記載のマイクロプロセッサ。
JP2001216223A 2001-07-17 2001-07-17 マイクロプロセッサ Pending JP2003029967A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2001216223A JP2003029967A (ja) 2001-07-17 2001-07-17 マイクロプロセッサ
US10/095,568 US6823406B2 (en) 2001-07-17 2002-03-13 Microprocessor executing a program to guarantee an access order
TW091104977A TWI222567B (en) 2001-07-17 2002-03-15 Microprocessor
EP02251945A EP1278121B1 (en) 2001-07-17 2002-03-19 Microprocessor maintaining memory consistency
DE60216016T DE60216016T2 (de) 2001-07-17 2002-03-19 Mikroprozessor mit Aufrechterhaltung der Speicherübereinstimmung
KR1020020017909A KR100764581B1 (ko) 2001-07-17 2002-04-02 마이크로프로세서

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001216223A JP2003029967A (ja) 2001-07-17 2001-07-17 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JP2003029967A true JP2003029967A (ja) 2003-01-31

Family

ID=19050728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001216223A Pending JP2003029967A (ja) 2001-07-17 2001-07-17 マイクロプロセッサ

Country Status (6)

Country Link
US (1) US6823406B2 (ja)
EP (1) EP1278121B1 (ja)
JP (1) JP2003029967A (ja)
KR (1) KR100764581B1 (ja)
DE (1) DE60216016T2 (ja)
TW (1) TWI222567B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2339472A2 (en) 2009-12-25 2011-06-29 Fujitsu Limited Arithmetic processing unit, information processing device, and cache memory control method
JP2012523055A (ja) * 2009-04-07 2012-09-27 イマジネイション テクノロジーズ リミテッド データキャッシュとメインメモリ間の一貫性の保証

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201531A1 (en) * 2006-09-29 2008-08-21 Kornegay Marcus L Structure for administering an access conflict in a computer memory cache
US20080082755A1 (en) * 2006-09-29 2008-04-03 Kornegay Marcus L Administering An Access Conflict In A Computer Memory Cache
US8392621B2 (en) * 2010-06-22 2013-03-05 International Business Machines Corporation Managing dataflow in a temporary memory

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000231549A (ja) * 1999-02-08 2000-08-22 Toshiba Corp マイクロプロセッサ

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4237417C2 (de) 1992-03-25 1997-01-30 Hewlett Packard Co Datenverarbeitungssystem
US5467473A (en) * 1993-01-08 1995-11-14 International Business Machines Corporation Out of order instruction load and store comparison
DE69423206T2 (de) 1994-04-28 2000-09-07 Hewlett Packard Co Rechnervorrichtung mit Mitteln zum Erzwingen der Ausführung von Befehlen in regelmässiger Folge
US5666494A (en) * 1995-03-31 1997-09-09 Samsung Electronics Co., Ltd. Queue management mechanism which allows entries to be processed in any order
US5737636A (en) * 1996-01-18 1998-04-07 International Business Machines Corporation Method and system for detecting bypass errors in a load/store unit of a superscalar processor
US6006325A (en) 1996-12-19 1999-12-21 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for instruction and data serialization in a computer processor
WO1999008184A1 (en) 1997-08-06 1999-02-18 Advanced Micro Devices, Inc. An apparatus and method for accessing special registers without serialization
US6148394A (en) 1998-02-10 2000-11-14 International Business Machines Corporation Apparatus and method for tracking out of order load instructions to avoid data coherency violations in a processor
JPH11249959A (ja) 1998-03-02 1999-09-17 Matsushita Electric Ind Co Ltd キャッシュメモリ制御方法および装置
US6266768B1 (en) * 1998-12-16 2001-07-24 International Business Machines Corporation System and method for permitting out-of-order execution of load instructions
JP3525070B2 (ja) * 1999-01-27 2004-05-10 松下電器産業株式会社 アクセス制御装置及びアクセス方法
US6266767B1 (en) * 1999-04-22 2001-07-24 International Business Machines Corporation Apparatus and method for facilitating out-of-order execution of load instructions
JP4588158B2 (ja) * 2000-03-28 2010-11-24 富士通セミコンダクター株式会社 半導体集積回路

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000231549A (ja) * 1999-02-08 2000-08-22 Toshiba Corp マイクロプロセッサ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012523055A (ja) * 2009-04-07 2012-09-27 イマジネイション テクノロジーズ リミテッド データキャッシュとメインメモリ間の一貫性の保証
EP2339472A2 (en) 2009-12-25 2011-06-29 Fujitsu Limited Arithmetic processing unit, information processing device, and cache memory control method
US8856478B2 (en) 2009-12-25 2014-10-07 Fujitsu Limited Arithmetic processing unit, information processing device, and cache memory control method

Also Published As

Publication number Publication date
TWI222567B (en) 2004-10-21
DE60216016T2 (de) 2007-04-05
EP1278121B1 (en) 2006-11-15
EP1278121A2 (en) 2003-01-22
KR100764581B1 (ko) 2007-10-09
EP1278121A3 (en) 2004-06-23
DE60216016D1 (de) 2006-12-28
KR20030006937A (ko) 2003-01-23
US20030018854A1 (en) 2003-01-23
US6823406B2 (en) 2004-11-23

Similar Documents

Publication Publication Date Title
US5293500A (en) Parallel processing method and apparatus
US7991983B2 (en) Register set used in multithreaded parallel processor architecture
EP1236088B1 (en) Register set used in multithreaded parallel processor architecture
US5265236A (en) Method and apparatus for increasing the speed of memory access in a virtual memory system having fast page mode
US20040205747A1 (en) Breakpoint for parallel hardware threads in multithreaded processor
US20020083373A1 (en) Journaling for parallel hardware threads in multithreaded processor
JP2000029780A (ja) メモリ・ペ―ジ管理
JPH0689174A (ja) コンピュータメモリシステム
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
JP3876034B2 (ja) 主メモリへの帯域幅を保持するシステム
US5696939A (en) Apparatus and method using a semaphore buffer for semaphore instructions
EP1030243B1 (en) Optimized hardware cleaning function for virtual index virtual tag data cache
EP0679990A1 (en) A computer apparatus having a means to force sequential instruction execution
US20030196072A1 (en) Digital signal processor architecture for high computation speed
JP4144990B2 (ja) データ処理システム及び初期化方法
JP2003029967A (ja) マイクロプロセッサ
US6389527B1 (en) Microprocessor allowing simultaneous instruction execution and DMA transfer
US6097403A (en) Memory including logic for operating upon graphics primitives
EP0488566A2 (en) Method and apparatus for fast page mode selection
JPH0298776A (ja) 命令実行のシリアライズ制御方式
JP4068828B2 (ja) 統合型分離型切替えキャッシュメモリ及び該キャッシュメモリを備えたプロセッサシステム
JP3169878B2 (ja) メモリ制御回路
JPH04340145A (ja) キャッシュメモリ装置
JPH06202982A (ja) バス制御方法及びその装置並びに情報処理装置
EP0553742A1 (en) A method of operating a first and second cache tag memory array

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080514

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111018