JP3274634B2 - リード制御装置 - Google Patents

リード制御装置

Info

Publication number
JP3274634B2
JP3274634B2 JP26404197A JP26404197A JP3274634B2 JP 3274634 B2 JP3274634 B2 JP 3274634B2 JP 26404197 A JP26404197 A JP 26404197A JP 26404197 A JP26404197 A JP 26404197A JP 3274634 B2 JP3274634 B2 JP 3274634B2
Authority
JP
Japan
Prior art keywords
request
read
memory
bus
issued
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
JP26404197A
Other languages
English (en)
Other versions
JPH11110343A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP26404197A priority Critical patent/JP3274634B2/ja
Publication of JPH11110343A publication Critical patent/JPH11110343A/ja
Application granted granted Critical
Publication of JP3274634B2 publication Critical patent/JP3274634B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はコンピュータ・シス
テムのリード制御装置に関し、特に、システム・バスに
リード・スプリット方式を採用したリード制御装置に関
する。ここに、リード・スプリット方式とは、リード・
リクエストに対するレスポンスがリード・リクエスト発
行先に返されるまでの間、バスを解放する方式をいう。
【0002】
【従来の技術】従来、この種のリード制御装置は、リー
ド・リクエストとレスポンスとを対応付けるためにリー
ド管理テーブルを必要とし、これらの技術として例え
ば、特開平8−95905号公報に開示されている方法
がある。この技術はリード・リクエストに対して一意の
番号をテーブルに保存し、レスポンス待ち時間にも、テ
ーブルのエントリの個数内で他のトランザクションを実
行可能とすることを特徴としている。
【0003】本方式では、リード・リクエストとレスポ
ンスを対応付ける番号をバス・インタフェース下に接続
されるデバイスに割り当てており、複数のデバイスが複
数のバス・インタフェースに接続された場合、識別番号
が増大することが考慮されていない。また、プロセッサ
毎にキャッシュを有し、メモリを共有するシンメトリカ
ル・マルチ・プロセッサ・システム(以下SMPシステ
ム)においては、リード・アドレスが管理されないた
め、同一アドレスのトランザクションが発行された場合
など、メモリのコヒーレンシ維持が非常に複雑になると
共にハードウェア量の増大を招き、現実的ではない。
【0004】そこで、最近ではリードに対してシステム
全体で一意に付けられる番号と共にリード・アドレスを
管理テーブルに保存する方式が用いられるようになって
きている。本方式では、バス・トランザクション発行の
際、管理テーブル内のレスポンスを待ちリード・アドレ
スを参照し、一定の処理を行うことにより、SMPシス
テムでのコヒーレンシの維持をハード・ウェア・レベル
で容易に実現することを可能としている。
【0005】
【発明が解決しようとする課題】しかしながら、上述し
た従来のリード・スプリット方式を採用するSMPシス
テムでは、コヒーレンシの維持を必要としないI/Oリ
ードまでが、メモリ・リードと同一の管理テーブルへ登
録されるため、リード・アドレス保存エリアが無駄にな
る等の問題を抱えている。また、メモリ・リードとI/
Oリードの管理テーブルを共有しているため、管理テー
ブルのエントリがメモリに比してレスポンス速度の遅い
I/Oリードに独占され、メモリ・リード・リクエスト
の発行が阻害される原因を生じている。
【0006】このような問題を回避する方法として、管
理テーブルのエントリ数を増やす手段もあるが、多くの
ビットを必要とするリード・アドレスの保持に際して多
大なハード量の増加を招き、また、エントリ数を増やし
てもI/Oリードが頻発した場合には、多くのI/Oリ
ードが管理テーブルのエントリを占拠してしまうため根
本的は解決にはならない。
【0007】本発明の目的は、レスポンス速度の遅いI
/Oリードと比較的レスポンス速度の速いメモリ・リー
ドが混在して発行されるシステム・バスにおいて、バス
の使用効率、特にメモリ・リードに対するバス使用効率
を改善することにある。
【0008】本発明の他の目的は、Out−of−Or
der実行といったプロセッサ上のプログラムの命令順
序に関係なくリクエストを発行する技術を用いたプロセ
ッサを採用した場合、プロセッサ自身が順序性を保つ機
構を内部に有しているため、プロセッサから発行された
リクエストとシステム・バスヘ発行するリクエストは、
大きく逸脱しない限り順序を厳密に必要に保つ必要はな
いため、バス・インタフェースでリクエスト発行順序の
最適化を行いバスの使用効率を改善することにある。
【0009】
【課題を解決するための手段】本発明のリード制御装置
は、リード・リクエストに対するレスポンスがリード・
リクエスト発行元に返されるまでの間、バスを解放する
リード・スプリット方式のシステム・バスに、1個また
は複数のプロセッサと前記システム・バスとの入出力を
制御するCPU制御バス・インタフェースと、I/Oデ
バイスと前記システム・バス間との入出力を制御しバス
・マスタとなりうるI/O制御バス・インタフェース
と、メモリと前記システム・バス間との入出力を制御す
るメモリ制御バス・インタフェースが接続され、プロセ
ッサ、及びI/Oのキャッシュとメモリ間のコヒーレン
シがハードウェア・レベルでサポートされるライト・バ
ック方式を採用するシングル・プロセッサ、及びマルチ
・プロセッサ・システムにおけるリード制御装置におい
て、前記3種のバス・インタフェースは、前記システム
・バスヘ発行されたリード・リクエストの発行アドレス
からメモり・リードとI/Oリードの種別を判断する機
能を有するバス制御部と、メモリに対するリード・リク
エスト毎にシステムに一意に割り当てられるメモリ用I
D番号、自バス・インタフェースが発行したリード・リ
クエストであることを示す自発行識別フラグおよびリー
ド・アドレスを複数個保持し、メモリからのレスポンス
との対応を管理するメモリ・リード用管理テーブルとを
有し、前記CPU制御バス・インタフェースと前記I/
O制御バス・インタフェースは、I/Oに対するリード
・リクエスト毎にシステムに一意に割り当てられるI/
O用ID番号とを複数個保持しI/Oからのレスポンス
との対応を管理するI/Oリード用管理テーブルを有
し、メモリからのレスポンス速度に比してレスポンス速
度の遅いI/Oによって管理テーブルが独占され、メモ
リへのリードが阻害されることのないようにしたことを
特徴とする。
【0010】
【発明の実施の形態】次に本発明にリード制御装置の実
施例について図面を参照して詳細に説明する。
【0011】図1は本発明の第1の実施例のブロック図
であり、CPUノード110,I/Oノード210およ
びメモリノード310がシステム・バス100に接続さ
れている。また、CPUノード110とメモリノード2
10とはI/Oレスポンス通知線101,CPUノード
110とI/Oノード210とメモリ・ノード310と
はID通知線102にもそれぞれ接続されている。
【0012】CPUノード110においては、複数のプ
ロセッサ120.130と、システム・バス100との
入出力を制御するCPUバスインタフェース150とが
クラスタバス140に接続されている。
【0013】CPUバス・インタフェース150は、バ
ス制御部180の他に、メモリ・リード用管理テーブル
160と、I/Oリード用管理テーブル170と、これ
らの両テーブル160,170を制御するテーブル制御
部190を有する。
【0014】メモリ・リード用管理テーブル160は、
(m+1)個のエントリを持ち、各エントリは、リード
とレスポンスを対応付けるためにシステム全体で一意に
付けられたメモリ用ID番号161と、有効フラグ16
2と、自ノードが発行したリクエストかどうかの自発行
識別フラグ163と、リード・アドレス・バッファ16
4からなる。I/Oリード用管理テーブル170は(n
+1)個のエントリを持ち、エントリは、リードとレス
ポンスを対応付けるためにシステム全体で一意に付けら
れたI/O用ID番号171と、有効フラグ172から
なる。
【0015】I/Oノード210もCPUノード110
と類似の構成である。即ち複数のI/Oデバイス22
0,230と、システムバス100との入出力を制御す
るI/O制御バスインタフェース250とがI/Oバス
240に接続され、I/O制御バスインタフェース25
0は、バス制御部280、メモリ・リード用管理テーブ
ル260、I/Oリード用管理テーブル270、これら
の両テーブル260,270を制御するテーブル制御部
290を有する。また、メモリ・リード用管理テーブル
260も(m+1)個のエントリを持ち、各エントリ
は、メモリ用ID番号261、有効フラグ262、自発
行識別フラグ263、リードアドレス・バッファ264
からなり、I/Oノード用管理テーブル270は(n+
1)個のエントリを持ち、各エントリはI/O用ID番
号271と、有効フラグ272からなる。
【0016】メモリ・ノード310は、メインメモリで
あるメモリアレイ312と、システム・バス100との
入出力を制御するメモリバスインタフェース350から
なり、自らシステムバス100へリクエストを発行する
ことがないため、メモリ制御バスインタフェース350
は、バス制御部380、メモリ・リード用管理テーブル
360およびこのテーブル360を制御するテーブル制
御部290からなる。メモリ・リード用管理テーブル3
60は(n+1)個のエントリを持ち、各エントリはメ
モリ用ID番号361と、有効フラグ362を備えてい
る。
【0017】ここで、メモリ・リード用管理テーブル1
60,I/Oリード用管理テーブル170のエントリ数
はシステム・バス100へ発行されたペンディング中の
リード・リクエストの数を示し、システム構成、規模に
よって任意に設定される。メモリ・リード用管理テーブ
ル160とI/Oリード用管理テーブル170の有効フ
ラグ162、172は、システム・バスヘリード発行済
みで、かつ、レスポンス待ち状態であることを示す。ま
た、各バス・インタフェース150,250,350が
システム・バス100に対しリクエストを発行する際に
は、それぞれ管理テーブル160,260,360を参
照し、該当テーブルの全てが埋まっている場合は、該当
テーブル上のエントリが空くまでリクエストの発行は保
留される。
【0018】メモリ・リード用管理テーブル160内の
アドレス・バッファ164に格納されるアドレスは、メ
モリ系リクエスト発行直前に参照され、メモリ・リード
・アドレスが既にメモリ・リード用管理テーブル160
に登録されている場合は、メモリ領域のコヒーレンシの
維持を容易にするため、該エントリが空くまでリクエス
トの発行は保留される。
【0019】プロセッサ120,130によるメモリ領
域をアドレスとするリード・リクエスト発行、またはI
/Oノード210によるメモリ領域に対するDMAリー
ド・リクエスト発行などを契機に、CPU制御バス・イ
ンタフェース150、またはI/O制御用バス・インタ
フェース250がリード・リクエストをシステム・バス
100へ発行すると、全てのノード110,210,3
10のバス・インタフェース150,250,350
は、発行されたアドレスをデコードし、メモリ・リード
と判断されると、テーブル制御部190,290,39
0を介してメモリ・リード用管理テーブル160,26
0,360への登録を行う。この時、テーブル制御部1
90,290,390はメモリ・リード用管理テーブル
160,260,360の有効フラグ162,262,
362の有無を調べ、空いているID番号161,26
1,361を選び、該エントリの有効フラグ162,2
62,362をセットし、リクエスト・アドレスを該エ
ントリのアドレス・バッファ164,264へ格納す
る。
【0020】また、自ノードがリード・リクエストを発
行した場合は、更に自発行識別フラグ163、または2
63をセットする。全ノードのテーブル制御部190,
290,390は同構成となっているため、このメモリ
・リードは、システム全体で同一のID番号が付けられ
ることになる。リード・アドレスのターゲットとなるメ
モリ・ノード310は、リードを受信し、該リードに対
するレスポンスが準備できた時点でバスを獲得し、リー
ドに対応するID通知線102を介してメモリ用ID番
号361をバスヘ通知し、リクエスト発行元のCPUノ
ード110またはI/Oノード210に対してシステム
・バス100を介してレスポンス・データを返す。
【0021】CPUノード110とI/Oノード210
は、ID通知線102を監視し、通知されたID番号か
ら、自発行識別フラグ163,263を参照し、フラグ
がセットされていた場合は自ノードに対するレスポンス
と認識し、レスポンス・データを引き取る。同時に、テ
ーブル制御部190は該テーブルの有効ビット162を
消去する。
【0022】一方、CPUノード110がI/O領域を
アドレスとするリード・リクエストをシステム・バス1
00へ発行すると、テーブル制御部190,290を介
してI/Oリード用管理テーブル170,270への登
録を行う。この時、メモリ・リード時と同様に、テーブ
ル制御部190.290はI/Oリード用管理テーブル
170,270の有効フラグ172,272の有無を調
べ、空いているID番号171,271を選び、該エン
トリの有効フラグ172,272をセットする。I/D
リード・リクエストはコヒーレンシを維持する必要がな
いため、リクエスト・アドレスは保存されない。また、
該I/Oリードはメモリ・リード同様に、システム全体
で同一のID番号が付けられることになる。
【0023】リード・アドレスのターゲットとなるI/
Oノード210は、リードを受信し、該リードに対する
レスポンスが準備できた時点でバスを獲得し、リードに
対応するI/O用番号271を付加してCPUノード1
10に対してレスポンスを返すと共に、I/Oからのレ
スポンスを明示するI/Oレスポンス通知線101をア
サートする。CPUノード110はレスポンス・データ
を引きとると同時に、テーブル制御部190がID通知
線102より通知されたID番号のI/Oリード用管理
テーブル170の有効ビット172を消去する。
【0024】以上の動作により、メモリとI/Oへの各
リード管理を完全に分離することで、メモリに比してレ
スポンス速度の遅いI/Oリードによって、リード管理
テーブルが占有されメモリへのリード・リクエストが妨
げられることがなくなり、メモリへのリード発行をシス
テム・バスが持つ最高許容数まで行うことができる。
【0025】次に、プロセッサがOut−of−Ord
er実行、即ちプロセッサ上のプログラムの命令の順序
に関係なくリクエストを発行し、プログラムの順序性を
プロセッサ自身が内部的に保証する技術を用いている場
合の実施例について図2を用いて説明を行う。図2はO
ut−of−Oeder技術を用いたプロセッサを採用
した場合のブロック図である。
【0026】図2において、システム・バス103は、
図1で示したシステムバス100,I/D通知線102
およびI/Oレスポンス通知線101を含んでいる。シ
ステムバス103には、複数のCPUノード110,1
11と、複数のI/Oノード210,211と、複数の
メモリ・ノード310,311とが接続されてSMPシ
ステムを構成している。
【0027】CPUノード110,111は、Out−
of−Order技術を採用した複数のプロセッサ12
1,131と、システム・バス103との入出力を制御
するCPUバス・インタフェース150からなる。メモ
リノード310,311は、メモリとシステムバス10
3との入出力を制御するメモリ・バス・インタフェース
を含み、I/Oノード210,211は、I/Oデバイ
スとシステム・バス103との入出力を制御するI/O
バス・インタフェースを含む。なお、I/Oノード21
0,211とメモリ・ノード310,311の内部構成
は図1で図示するものと全く同じであるため、その詳細
は省略する。
【0028】CPUノード110,111内のCPUバ
ス・インタフェース150は、バス制御180の他に、
メモリ・リード用管理テーブル160と、I/Oリード
用管理テーブル170と、これらの両テーブル160,
170を制御するテーブル制御部190を備える。メモ
リ・リード用管理テーブル160は(m+1)個のエン
トリを持ち、各エントリは、リードとレスポンスを対応
付けるためにシステム全体で一意に付けられたメモリ用
ID番号161と、有効フラグ162と、自発行識別フ
ラグ163とリード・アドレス・バッファ164を備え
る。I/Oリード用管理テーブル170は(n+1)個
のエントリを持ち、各エントリは、レスポンスを対応付
けるためにシステム全体で一意に付けられたI/O用I
D番号171と、有効フラグ172と、CPUノードが
複数実装された場合を考慮し自発行識別フラグ173を
備える。
【0029】CPUバスインタフェース150は、さら
に、プロセッサ121,131からのリクエスト・アド
レスをデコードし・メモリ系リクエストであれば、メモ
リ・リクエスト・キュー510にリクエストを登録し、
I/O系リクエストであれば、I/Oリクエスト・キュ
ー511にリクエスト登録する制御を行うプロセッサ・
リクエスト制御部500と、両キュー510、511に
登録されるリクエストの順序性を制御するリクエスト・
キュー制御部520を備える。メモリ・リード用管理テ
ーブル160,I/Oリード用管理テーブル170の機
能については先に図1を説明した通りである。
【0030】プロセッサ121,131からリクエスト
か発行されると、プロセッサ・リクエスト制御部500
においてリクエストがメモリ系とI/O系に振り分けら
れ、それぞれメモリ・リクエスト・キュー510に登録
される。リクエスト・キュー制御部520は両キューの
登録順番を記憶し、プロセッサ121,131が発行さ
れたリクエスト順にバス制御部180を介してバスにリ
クエストを発行するが、I/Oリード発行の場合におい
てI/Oリード用管理テーブル170の全エントリの有
効フラグ172を調べI/Oのエントリが全て満たされ
れており、I/Oリードが発行できない場合は、I/O
ノード210,211から何らかのレスポンスが返され
てI/O用エントリが空くまで、メモリ・リクエストキ
ュー510に登録されているリクエストとを先に発行す
る。これにより、プロセッサ121,131から発行さ
れるリクエストの順序性を崩すが前述の通りOut−o
fOrder技術を採用したプロセッサで有れば何ら問
題はなく、I/Oリード用管理テーブル170がフルエ
ントリされ、さらに、I/Oリード・リクエストが存在
する場合、I/Oリード・リクエストが発行できないが
ために後続のメモリ・リクエストが発行できないという
事態を回避することが可能である。
【0031】次に、図3を用いて本発明の第3の実施例
を説明する。なお、本実施例では、システム・バス、複
数のI/Oノード、複数のメモリ・ノード、Out−o
f−Order技術を用いたプロセッサ等、図2で示し
た実施例と全く構成が同じため、CPUバス・インタフ
ェース150のみを抜き出して説明する。
【0032】CPUバス・インタフェース150は、プ
ロセッサからのリクエストを、(x+1)このプロセッ
サ・リクエストを保持可能なFIFO形式のリクエスト
・キュー610へ登録する機能を持つプロセッサ・リク
エスト・制御部600と、リクエスト・キュー610に
登録されているリクエスト・アドレスから、どのメモリ
ノードまたはどのI/Oへ対するリクエストなのかを判
断し、メモリ・ノード数分用意された複数のメモリ・リ
ード用管理テーブル160,165と、I/Oノード数
分用意された複数のI/Oノード用管理テーブル17
0,175を参照し、テーブルの登録状況からシステム
・バスヘのリクエストの発行可能状態を示す発行可能フ
ラグ620をセットする機構を含むリクエストは発行判
断部630と、発行可能フラグ620の状態とリクエス
ト・キュー610の登録順番によりシステム・バスヘ発
行するリクエストを決定する機構を含むリクエスト・キ
ュー制御部640と、システム・バスに発行されたリク
エスト・アドレスからどのメモリ・ノード、またはどの
I/Oノードへ対するリクエストなのかを判断し、該当
するテーブルのエントリにリクエストを登録するテーブ
ル制御部190と、バス制御部180とから構成され
る。
【0033】ここで、メモリ・リード用管理テーブル1
60,165のエントリ数(m+1)個は、1個のメモ
リ・ノードが受け付けることが出来るリードの最大許容
数に等しくすることが望ましいが、ハードウェア量との
兼ね合いで決定される。I/Oリード用管理テーブル1
70,175も同様に、1個のI/Oノードが受け付け
ることが出来るリードの最大許容数に等しくすることが
望ましい。また、リードリクエスト・キューのエントリ
数(x+1)個は接続されるプロセッサのリード・リク
エストの最大発行数に等しくすることが望ましい。
【0034】システム・バス上にリード・リクエストが
発行されるとバス制御部180は、そのリード・アドレ
スから、どのメモリ・ノードまたはどのI/Oノードか
を判断し、テーブル160,165,170,175の
うち該当するテーブルに対し、テーブル制御部190を
介して空いているエントリにリクエストを登録する。一
方、プロセッサからリクエストが発行されると、プロセ
ッサ・リクエスト制御部600を介してリクエスト・キ
ュー610に登録される。
【0035】リクエスト発行判断部630は、常にリク
エスト・キュー610と管理テーブル160,165,
170,175を監視しており、リクエスト・キュー6
10の全エントリのリード・リクエストに対し、そのリ
クエスト・アドレスからどのメモリ・ノードまたはどの
I/Oノードに対するリードかを判断し、メモリ・リク
エストの場合は、該当するメモリ・ノードのメモリ用管
理テーブルの有効フラグ162または167と、全ノー
ドのメモリ用管理テーブル170,175のリード・ア
ドレス・バッファ164,169を参照し、該当ノード
のテーブルがフルエントリ、または全メモリ・リード用
管理テーブル160,165のアドレス・フィールドの
どれかとアドレス一致と判断された場合は発行可能フラ
グ620の対応するエントリに保留ビットをセットす
る。同様に、I/Oリクエストの場合は該当するI/O
用管理テーブルの有効フラグ172または177を参照
し、フルエントリであった場合は発行可能フラグ620
の対応するエントリに保留ビットをセットする。
【0036】リクエスト・キュー制御部640は、発行
可能フラグ620の全エントリを参照し、リクエストが
発行可能状態でかつ、リクエスト発行順序に最も近いエ
ントリを選択し、バス制御部180を介してシステム・
バスに対しリクエストを発行する。
【0037】以上により、メモリ、I/Oのリード受付
状態をノードごとに監視し、さらにリクエストの追い越
し制御を行うことにより、システムに対し最適なリクエ
ストを発行することを可能とし、また無用なリクエスト
をシステム・バスに発行しバスを混雑させるという要因
を取り除くことを可能とし、結果的にシステム・バスの
スループットを向上させることが可能である。
【0038】
【発明の効果】以上の説明で明らかなように、本発明に
よると、メモリ・リードとI/Oの管理テーブルを別々
に分割して制御することにより、レスポンス速度の遅い
I/Oリードがリード管理テーブルを占有しメモリ・リ
ード・リクエストの発行が妨げられることが無くなり、
ごく少量の回路の増加によって、メモリへのリードの発
行をシステム・バスが持つ最高許容数まで行うことがで
き、システム・バスのスループットを向上させることが
可能となる。また、I/Oに対するリードはコヒーレン
シを維持する必要がないため、リード・アドレスの保持
も必要なく、同じ管理テーブル・エントリ数であれば、
管理テーブルをI/O、メモリとも共用した場合に比べ
て、回路規模を縮小させることが可能である。さらに、
プロセッサに動的命令スケジューリング、Out−of
−Order実行といったプロセッサ上のプログラムの
順序に関係なくリクエストを発行し、前記プログラムの
順序性をプロセッサ自身が内部的に保証する技術を用い
たプロセッサを採用した場合、リクエスト発行順序の最
適化を行うことによりI/Oリードの滞りによってメモ
リ・リードの発行が阻害されることがなくなり、バスの
スループット向上が可能である。
【図面の簡単な説明】
【図1】本発明の第1の実施例を示すブロック図。
【図2】本発明の第2の実施例を示すブロック図。
【図3】本発明の第3の実施例を示すブロック図。
【符号の説明】
100 システム・バス 101 I/Oレスポンス通知線 102 ID通知線 103 システム・バス 110 CPUノード 120,130 プロセッサ 140 クラスタ・バス 150 CPUバス・インタフェース 160,165,260,360 メモリ・リード用
管理テーブル 161,166,261,361 メモリ用ID番号 162,167,262,362 有効フラグ 163,168,263 自発行識別フラグ 164,169,264 リード・アドレス・バッフ
ァ 170,175,270 I/Oリード用管理テーブ
ル 171,176,271 I/O用ID番号 172,177,272 有効フラグ 173,178 自発行識別フラグ 180,280,380 バス制御部 190,290,390 テーブル制御部 240 I/Oバス 500 プロセッサ・リクエスト制御部 510 メモリ・リクエスト・キュー 511 I/Oリクエスト・キュー 520 リクエスト・キュー制御部 600 プロセッサ・リクエスト制御部 610 リクエスト・キュー 620 発行可能フラグ 630 リクエスト発行判断部 640 リクエスト・キュー制御部
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平6−149730(JP,A) 特開 平9−244989(JP,A) 特開 平6−177915(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 13/36,13/362,13/38

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 リード・リクエストに対するレスポンス
    がリード・リクエスト発行元に返されるまでの間、バス
    を解放するリード・スプリット方式のシステム・バス
    に、1個または複数のプロセッサと前記システム・バス
    との入出力を制御するCPU制御バス・インタフェース
    と、I/Oデバイスと前記システム・バス間との入出力
    を制御しバス・マスタとなりうるI/O制御バス・イン
    タフェースと、メモリと前記システム・バス間との入出
    力を制御するメモリ制御バス・インタフェースが接続さ
    れ、 プロセッサ、及びI/Oのキャッシュとメモリ間のコヒ
    ーレンシがハードウェア・レベルでサポートされるライ
    ト・バック方式を採用するシングル・プロセッサ、及び
    マルチ・プロセッサ・システムにおけるリード制御装置
    において、 前記3種のバス・インタフェースは、前記システム・バ
    スヘ発行されたリード・リクエストの発行アドレスから
    メモり・リードとI/Oリードの種別を判断する機能を
    有するバス制御部と、メモリに対するリード・リクエス
    ト毎にシステムに一意に割り当てられるメモリ用ID番
    号、自バス・インタフェースが発行したリード・リクエ
    ストであることを示す自発行識別フラグおよびリード・
    アドレスを複数個保持し、メモリからのレスポンスとの
    対応を管理するメモリ・リード用管理テーブルとを有
    し、 前記CPU制御バス・インタフェースと前記I/O制御
    バス・インタフェースは、I/Oに対するリード・リク
    エスト毎にシステムに一意に割り当てられるI/O用I
    D番号とを複数個保持しI/Oからのレスポンスとの対
    応を管理するI/Oリード用管理テーブルを有し、 メモリからのレスポンス速度に比してレスポンス速度の
    遅いI/Oによって管理テーブルが独占され、メモリへ
    のリードが阻害されることのないようにしたことを特徴
    とするリード制御装置。
  2. 【請求項2】 前記システム・バスに複数のCPU制御
    バス・インタフェースが接続されるマルチ・プロセッサ
    ・システムにおけるリード制御装置において、前記CP
    U制御装置バス・インタフェース内のI/Oリード用管
    理テーブルは、自バス・インタフェースが発行したリー
    ド・リクエストであることを示す自発行識別フラグを更
    に有し、前記CPU制御バス・インタフェースがI/O
    リード・リクエストを発行の際該自発行識別フラグをセ
    ットすることにより、I/Oからのレスポンスと複数の
    プロセッサ間との対応を管理することを特徴とする請求
    項1のリード制御装置。
  3. 【請求項3】 前記CPU制御バス・インタフェースに
    接続される複数プロセッサがOut−of−Order
    実行、即ちプロセッサ上のプログラムの命令の順序に関
    係なくリクエストを発行し、前記プログラムの命令の順
    序性を該プロセッサが保証する技術を用いている場合に
    おいて、 前記CPU制御バス・インタフェースは、前記プロセッ
    サが発行するリクエスト・アドレスからI/Oに対する
    リクエストとメモリに対するリクエストを判断する機能
    を有するプロセッサ・リクエスト制御部を有し、前記シ
    ステム・バスへ発行する前記I/Oリクエストを登録す
    るI/Oリクエスト・キューと、前記システム・バスへ
    発行する前記メモリ・リクエストを登録するメモリ・リ
    クエスト・キューと、前記2種類のキューから前記シス
    テム・バスヘのリクエスト発行順序を制御する手段を更
    に有し、 前記I/Oリード用管理テーブルにI/Oリードがフル
    ・エントリされ、I/Oリードが前記システム・バスヘ
    発行出来ない場合は、前記メモリリクエスト・キューの
    リクエストを先に発行し、同様にメモリ・リード用管理
    テーブルにメモリ・リードがフル・エントリ、またはコ
    ヒーレンシ維持のためにメモリ・リード・リクエストが
    発行できない場合は、前記I/Oリクエスト・キューの
    リクエストを先に発行する制御手段を含むことを特徴と
    する請求項2記載のリード制御装置。
  4. 【請求項4】 前記CPU制御バス・インタフェース
    は、 プロセッサから次々と発行されるリクエストを発行順に
    保持するリクエスト・キューと、 前記リクエスト・キューに対応付けられ、リクエストの
    前記システム・バスヘの発行保留を示す発行可能フラグ
    と、 リクエスト・キュー内のリクエストのうち全てのリード
    ・リクエストに関し、そのアドレスからメモリ・リー
    ド、またはI/Oリードの判断を行い、メモリ・リード
    に関しては前記メモリ・リード用管理テーブルを参照
    し、I/Oリードに関しては前記I/Oリード用管理テ
    ーブルを参照し、前記システム・バスヘ発行可能または
    発行保留であるかを判断し、前記発行保留フラグのセッ
    ト/リセットを行う機能を有するリクエスト発行判断部
    と、 前記リクエスト・キューのリクエスト登録順と前記発行
    可能フラグの状態を参照し、前記システム・バス発行す
    るリクエストの決定、前記リクエスト・キューの制御を
    行う機能を含むリクエスト・キュー制御部とを有し、 前記リクエスト・キュー制御部は、前記リクエスト・キ
    ューの登録順に発行可能フラグを参照し、発行可能なリ
    クエストを前記リクエスト・キュー登録順に発行するこ
    とにより、前記リクエスト・キューに先に登録されたリ
    ード・リクエストが、前記システム・バスヘ発行できな
    い場合でも、後続の発行可能リクエストを先に発行す
    る、リクエストの追い越し制御手段を含むことを特徴と
    する請求項2記載のリード制御装置。
  5. 【請求項5】 前記システム・バスに複数のI/O制御
    バス・インタフェースが接続されており、前記各I/O
    バス・インタフェースへのリクエスト先がリクエスト・
    アドレスによって区別される場合において、 前記CPU制御バス・インタフェースは、前記I/Oリ
    ード用管理テーブルを、前記システム・バスに接続可能
    なI/O制御バス・インタフェースの最大数分だけ有
    し、前記プロセッサが発行するI/Oに対するリクエス
    ト・アドレスから、複数のI/O制御バス・インタフェ
    ースのうちどのI/O制御バス・インタフェースに対す
    るリクエストであるかを判断するリクエスト発行判断部
    をさらに有し、 前記複数のI/Oリード用管理テーブルのうち、一つあ
    るいはいくつかのテーブルがフル・エントリされ、I/
    Oリードが前記システム・バスヘ発行できない場合は、
    I/Oリクエストの追い越しを可能とすることにより、
    レスポンス速度の遅いI/Oによって他のI/Oへのリ
    ード・リクエスト発行が阻害されることのないようにし
    たことを特徴とする請求項4記載のリード制御装置。
  6. 【請求項6】 前記システム・バスに複数のメモリ制御
    バス・インタフェースが接続されており、前記各メモリ
    ・バス・インタフェースへのリクエスト先がリクエスト
    ・アドレスによって区別される場合において、 前記CPU制御バス・インタフェースは前記メモリ・リ
    ード用管理テーブルを、前記システム・バスに接続可能
    なメモリ制御バス・インタフェースの最大数分だけを有
    し、前記プロセッサが発行するメモリに対するリクエス
    ト・アドレスから、複数のメモリ制御バス・インタフェ
    ースのうちどのメモリ制御バス・インタフェースに対す
    るリクエストであるかを判断するリクエスト発行判断部
    を更に有し、 前記複数のメモリ・リード用管理テーブルのうち、一つ
    あるいはいくつかのテーブルがフル・エントリされる、
    またはコヒーレンシ維持のためなどでメモリ・リードが
    前記システム・バスヘ発行できない場合は、メモリ・リ
    クエストの追い越しを可能とすることにより、メモリ・
    リード・リクエスト発行が阻害されることのないように
    したことを特徴とする請求項4記載のリード制御装置。
JP26404197A 1997-09-29 1997-09-29 リード制御装置 Expired - Fee Related JP3274634B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26404197A JP3274634B2 (ja) 1997-09-29 1997-09-29 リード制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26404197A JP3274634B2 (ja) 1997-09-29 1997-09-29 リード制御装置

Publications (2)

Publication Number Publication Date
JPH11110343A JPH11110343A (ja) 1999-04-23
JP3274634B2 true JP3274634B2 (ja) 2002-04-15

Family

ID=17397737

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26404197A Expired - Fee Related JP3274634B2 (ja) 1997-09-29 1997-09-29 リード制御装置

Country Status (1)

Country Link
JP (1) JP3274634B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4297969B2 (ja) 2006-02-24 2009-07-15 富士通株式会社 記録制御装置および記録制御方法
JP4469911B2 (ja) * 2006-02-27 2010-06-02 富士通株式会社 リクエスト生成装置、リクエスト処理システム及び制御方法
JP4862593B2 (ja) * 2006-10-04 2012-01-25 富士ゼロックス株式会社 データ転送装置及び画像形成装置

Also Published As

Publication number Publication date
JPH11110343A (ja) 1999-04-23

Similar Documents

Publication Publication Date Title
CN108027804B (zh) 片上原子事务引擎
US6279064B1 (en) System and method for loading commands to a bus, directly loading selective commands while queuing and strictly ordering other commands
US6128711A (en) Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line writes
US7657712B2 (en) Microprocessor architecture capable of supporting multiple heterogeneous processors
US5953538A (en) Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US7890708B2 (en) Prioritization of out-of-order data transfers on shared data bus
JP3699833B2 (ja) メモリアーキテクチャーのための優先符号化及び復号化
US9405696B2 (en) Cache and method for cache bypass functionality
CN102414671B (zh) 对于不同源的分级内存仲裁技术
US6275885B1 (en) System and method for maintaining ownership of a processor bus while sending a programmed number of snoop cycles to the processor cache
US5572703A (en) Method and apparatus for snoop stretching using signals that convey snoop results
US6021456A (en) Method for communicating interrupt data structure in a multi-processor computer system
US6519666B1 (en) Arbitration scheme for optimal performance
JPH1031625A (ja) マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ
US5822765A (en) System and method for resolving contention arising from execution of cache coherency operations in a multiple cache computer system
JP2010501951A (ja) 管理モジュール、生産者及び消費者プロセッサ、その構成、共有メモリを介したインタープロセッサ通信方法
JPH0997184A (ja) 効率的な割込み処理を含む情報処理システム
US6209052B1 (en) System and method for suppressing processor cycles to memory until after a peripheral device write cycle is acknowledged by the memory arbiter
JP3274634B2 (ja) リード制御装置
US20010037426A1 (en) Interrupt handling via a proxy processor
US6502150B1 (en) Method and apparatus for resource sharing in a multi-processor system
JP2002024007A (ja) プロセッサシステム
JP3237569B2 (ja) メモリアクセス制御装置
JPH0423062A (ja) ディジタルデータ処理ユニット調停装置及び方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020108

LAPS Cancellation because of no payment of annual fees