JPH0789340B2 - バス間インターフェースにおいてアドレス・ロケーションの判定を行なう方法及び装置 - Google Patents

バス間インターフェースにおいてアドレス・ロケーションの判定を行なう方法及び装置

Info

Publication number
JPH0789340B2
JPH0789340B2 JP4323145A JP32314592A JPH0789340B2 JP H0789340 B2 JPH0789340 B2 JP H0789340B2 JP 4323145 A JP4323145 A JP 4323145A JP 32314592 A JP32314592 A JP 32314592A JP H0789340 B2 JPH0789340 B2 JP H0789340B2
Authority
JP
Japan
Prior art keywords
bus
address
memory
data
interface device
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
JP4323145A
Other languages
English (en)
Other versions
JPH05282197A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05282197A publication Critical patent/JPH05282197A/ja
Publication of JPH0789340B2 publication Critical patent/JPH0789340B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、デュアル・バス・アー
キテクチャを採用したコンピュータ・システムにおける
バス間(バス−バス)インターフェースに関するもので
あり、より詳しくは、あるメモリ・ロケーションが、シ
ステム・バスに接続されたシステム・メモリの中のメモ
リ・ロケーションであるのか、それともI/Oバスに接
続されたデバイスの中のメモリ・ロケーションであるの
かの判定を、バス間インターフェースを利用して行なう
ようにした、バス間インターフェース装置及びその方法
に関するものである。
【0002】
【従来の技術】一般にコンピュータ・システムにおいて
は、また特にパーソナル・コンピュータ・システムにお
いては、中央処理装置(CPU)、メモリ・デバイス、
それにダイレクト・メモリ・アクセス制御機構(DMA
制御機構)等の、様々なシステム・デバイスどうしの間
でデータ転送が行なわれる。データ転送は更に、入出力
デバイス(I/Oデバイス)等の、拡張要素どうしの間
でも行なわれ、また、I/Oデバイスと様々なシステム
・デバイスとの間でも行なわれる。I/Oデバイスやシ
ステム・デバイスが互いの間で通信をするときに、その
通信はコンピュータのバスを介して行なわれる。コンピ
ュータのバスは、一連の複数本の導線から成り、それら
複数本の導線を介して、任意の情報送信元から任意の情
報送信先への情報転送を行なうことができる。システム
・デバイスやI/Oデバイスの多くは、バス・コントロ
ーラ(即ち、コンピュータ・システムを制御できるデバ
イス)として機能する能力と、バス・スレーブ(即ち、
バス・コントローラによって制御される要素)として機
能する能力とを備えている。
【0003】パーソナル・コンピュータ・システムであ
って2つ以上のバスを備えたものが公知となっている。
典型的な例としては、先ず第1に、ローカル・バスを備
えており、このローカル・バスは、例えば、CPUがキ
ャッシュ・メモリやメモリ制御機構と通信する場合等に
使用するバスである。第2には、システムI/Oバスを
備えており、このシステムI/Oバスは、例えば、シス
テム・バス・デバイス(DMA制御機構等)やI/Oデ
バイスが、メモリ制御機構を介してシステム・メモリと
通信する場合等に使用するバスである。システムI/O
バスは、システム・バスとI/Oバスとから成り、それ
ら双方のバスはバス・インターフェース装置を介して互
いに接続されている。I/Oデバイスどうしが互いの間
で通信をするときには、I/Oバスを使用してその通信
が行なわれる。また、一般的に、I/Oデバイスがシス
テム・メモリ等のシステム・バス・デバイスとの間で通
信を行なうことも必要になる。このような、I/Oデバ
イスとシステム・バス・デバイスとの間の通信は、バス
・インターフェース装置を介して、I/Oバスとシステ
ム・バスとの両方を使用して行なわれることになる。
【0004】I/Oバスに接続されているデバイスは、
同じくそのI/Oバスに接続されている別のデバイスの
中のあるアドレス・ロケーションに対して、データの読
取りないし書込みを行なうことが必要になることもあ
り、また、ローカル・バスに接続されているシステム・
メモリの中のあるアドレスに対して、データの読取りな
いし書込みを行なうことが必要になることもある。この
種のシステムでは、システム・バスと、CPU複合体の
ローカル・バスとの、両方のバスに接続されているメモ
リ制御機構の中に、メモリ・アドレスのリストを記憶さ
せておくようにしている。
【0005】
【発明が解決しようとする課題】従って、I/Oバスに
接続されているデバイスが、あるメモリ・アドレスに対
する読取り動作ないし書込み動作を実行する必要が生じ
た場合には、そのアドレスを表わす信号が、バス・イン
ターフェース装置を介してメモリ制御機構へ受け渡され
ねばならない。そして更に、メモリ制御機構の中のロジ
ックが、そのアドレスがシステム・メモリの中のアドレ
スであるのか、それともI/Oバスに接続されたデバイ
スの中のアドレスであるのかを判定した上で、その判定
結果の情報を、I/Oバスに接続されたそのデバイスへ
通信した後でなければ、そのデバイスが読取りないし書
込みのための情報転送を開始することはできない。しか
しながら、このように、バス・インターフェース装置を
介して通信が行なわれるときには、バス・インターフェ
ース装置は、先ず、システム・バスを使用することにつ
いての仲裁を求めねばならず、その後に、要求アドレス
についての情報をメモリ制御機構に書き込まねばならな
い。そして、メモリ制御機構がその要求アドレスのロケ
ーションを判定し終ったときには、システム・バスの解
放が既に随分と遅れていることになる。また、システム
・バスをさっさと解放していたのであれば、システム・
バスの使用権を取り戻すために再度仲裁を求めねばなら
ず、そしてその後に、その判定したアドレスのロケーシ
ョンを、バス・インターフェース装置へ書き戻すように
しなければならない。
【0006】これらの仲裁動作や「ハンドシェイキング
動作」は、いずれも時間のかかる動作であって、非効率
的であり、特に、要求された読取りないし書込みが、I
/Oバスに接続されたデバイスが、同じくI/Oバスに
接続された別のデバイスの中のアドレスに対して行なう
書込みないし読取りである場合には、ことさら非能率的
であると言わざるを得ない。実際に、システムによって
は、I/Oバスに接続されたデバイスがメモリへの読取
りないし書込みを必要としたときには、アドレスの比較
を行なった後に、更にその比較によって判定したアドレ
スのロケーションを要求元デバイスへ書き戻すのに必要
な、充分な時間を確保するために、プログラミングによ
って、その動作のサイクルの中に余分な時間遅れを導入
するようにしたものもある。
【0007】従って本発明の目的は、I/Oバスに接続
されたデバイスがデータの書込みないし読取りを行なお
うとしているアドレスのロケーションの判定を、効率的
に行なえるようにすることにある。
【0008】
【課題を解決するための手段】本発明が提供する、シス
テム・バスとI/Oバスとを接続するバス・インターフ
ェース装置は、I/Oバスに接続されたデバイスから読
取り要求ないし書込み要求が発せられたときに、このバ
ス・インターフェース装置の中で、その読取り要求ない
し書込み要求に関するアドレスの、メモリ・アドレス比
較動作を実行する機能を備えている。そして、その比較
の結果、そのアドレスが、I/Oバスに接続されたデバ
イスの中のアドレスであることが判明した場合には、I
/Oバス上のそのアドレスに対する読取りないし書込み
を、同じくI/Oバスに接続された要求元デバイスに、
バス・インターフェース装置を介することなく直接行な
わせるようにする。一方、そのアドレスが、システム・
メモリの中のアドレスであった場合には、その読取りな
いし書込みに関するデータないし要求を、このバス・イ
ンターフェース装置を介してシステム・バスへ受け渡す
ようにする。従って、メモリ・アドレス比較の機能は全
て、このバス・インターフェース装置で実行させるた
め、このバス・インターフェース装置を経由してメモリ
制御機構へ行き、そこでメモリ・アドレス比較機能を実
行し、その後に、比較によって得られた情報と共に、I
/Oバスに接続された要求元デバイスへ戻るという動作
のために、時間が無駄に費消されることがない。
【0009】
【実施例】先ず第1図について説明すると、その全体を
引用符号10で表わしたコンピュータ・システムは、シ
ステム・ボード12とプロセッサ複合体14とを含んで
いる。プロセッサ複合体14はプロセッサ部分16とベ
ース部分18とを含んでおり、それらの部分16と18
とは、ローカル・バス・コネクタ22を介して、プロセ
ッサのローカル・バス20によって互いに接続されてい
る。プロセッサ部分16は50メガヘルツで動作し、ベ
ース部分18は40メガヘルツで動作する。
【0010】システム・ボード12は、インターリーブ
型のシステム・メモリ24及び26と、複数の入出力デ
バイス(I/Oデバイス)28とを含んでいる。メモリ
24ないし26とプロセッサ複合体14との間の通信は
メモリ・バス30で取り扱い、一方、複数のI/Oデバ
イス28とプロセッサ複合体14との間の通信はI/O
バス32を介して行なわれる。また、I/Oデバイス2
8とメモリ24ないし26との間の通信は、I/Oバス
32と、システム・バス76と、メモリ・バス30とを
介して行なわれる。I/Oバス32は、例えば「マイク
ロ・チャネル(MICRO CHANNEL:これは登録商標であ
る)」という名のコンピュータ・アーキテクチャに即し
た構成のものとすることができる。メモリ・バス30及
びI/Oバス32は、プロセッサ複合体コネクタ34を
介して、プロセッサ複合体14のベース部分18に接続
されている。複数のI/Oデバイス28は、例えばメモ
リ拡張デバイス等であり、それらは、I/Oバス32を
介してコンピュータ・システム10に接続することがで
きるようにしてある。システム・ボード12は更に、こ
のコンピュータ・システム10が通常の動作を実行する
際に使用する、例えばビデオ回路、タイミング回路、キ
ーボード制御回路、及び割込み回路等の、様々な一般的
な回路も含んでいるが、ただしそれらの回路はいずれも
図には示していない。
【0011】プロセッサ複合体14のプロセッサ部分1
6は、中央処理装置(CPU)38を含んでいる。この
CPU38には、この好適実施例では、インテル社(In
tel,Inc. )が商品番号「i486」として供給してい
る、32ビットのマイクロプロセッサを使用している。
プロセッサ部分16には更に、スタティック・ランダム
・アクセス・メモリ(SRAM)40と、キャッシュ制
御モジュール42と、周波数制御モジュール44と、ア
ドレス・バッファ46と、データ・バッファ48とが含
まれている。ローカル・バス20は、データ情報経路5
0とアドレス情報経路52と制御情報経路54とを含ん
でいる。データ情報経路50は、CPU38と、SRA
M40と、データ・バッファ48との間に設けられてい
る。アドレス情報経路52は、CPU38と、キャッシ
ュ制御モジュール42と、アドレス・バッファ46との
間に設けられている。制御情報経路54は、CPU38
と、キャッシュ制御モジュール42と、周波数制御モジ
ュール44との間に設けられている。また更に、アドレ
ス情報経路52と制御情報経路54とはキャッシュ制御
モジュール42とSRAM40との間にも設けられてい
る。
【0012】SRAM40は、システム・メモリ24な
いし26から読み出されたメモリ情報や、I/Oデバイ
ス28に備えられている拡張メモリから読み出されたメ
モリ情報を、短期間記憶することによって、キャッシュ
機能を提供する。キャッシュ制御モジュール42にはラ
ンダム・アクセス・メモリ(RAM)56が組み込まれ
ており、このRAM56は、メモリ24ないし26のア
ドレス・ロケーションを記憶させておくメモリである。
CPU38は、SRAM40の中にキャッシュされてい
る情報には、ローカル・バス20を介して、直接にアク
セスすることができる。周波数制御モジュール44は、
50メガヘルツのプロセッサ部分16の動作と、40メ
ガヘルツのベース部分18の動作とを、同期させると共
に、バッファ46及び48の動作を制御している。従っ
てこの周波数制御モジュール44は、バッファ46及び
48に情報を取り込むタイミングや、それらバッファに
既に記憶されている情報の上に上書きするタイミングを
決定するものである。バッファ46及び48は、メモリ
24と26とからの2つの書込み動作によるデータを、
同時にそれらバッファに記憶させることができるように
構成してある。バッファ46及び48は両方向性バッフ
ァであり、即ち、それらバッファは、CPU38から送
られてくる情報と、CPU38へ向けて送り出す情報と
の、いずれの情報をもラッチすることのできる機能を備
えている。このように、バッファ46及び48を両方向
性バッファとしてあるため、このプロセッサ複合体14
においては、そのベース部分18には標準的な同じ構成
のものを使用したままで、そのプロセッサ部16だけを
交換してアップグレードすることが可能となっている。
【0013】ベース部分18には、メモリ制御機構58
と、ダイレクト・メモリ・アクセス(DMA)制御機構
60と、集中仲裁制御ポイント(CACP)回路62
と、バス・インターフェース装置64と、バッファ/誤
り訂正コード(バッファ/ECC)回路66とが含まれ
ている。更にまた、このベース部分18には、ドライバ
回路68と、リード・オンリ・メモリ(ROM)70
と、セルフ・テスト回路72と、バッファ74とが含ま
れている。システム・バス76は、データ情報経路78
と、アドレス情報経路80と、制御情報経路82とを含
んでいる。データ情報経路78は、バッファ74をバス
・インターフェース装置64に接続すると共に、このバ
ス・インターフェース装置64をDMA制御機構60と
バッファ/ECC回路66とに接続し、更に、バッファ
/ECC回路66をシステム・メモリ24及び26に接
続している。アドレス情報経路80と制御情報経路82
とは、その各々が、メモリ制御機構58をDMA制御機
構60とバス・インターフェース装置64とに接続する
と共に、このバス・インターフェース装置64をバッフ
ァ74に接続している。
【0014】メモリ制御機構58は、CPU38のロー
カル・バス20と、システム・バス76との、双方のバ
スの上に位置しており、このメモリ制御機構58は、C
PU38と、DMA制御機構60と、(I/Oデバイス
28の代理として機能している)バス・インターフェー
ス装置64とのいずれかに対して、メモリ・バス30を
介してシステム・メモリ24ないし26へアクセスする
場合のアクセス権を付与する機能を果たすものである。
このメモリ制御機構58は、メモリ・バス30を使用し
て行なうシステム・メモリ24及び26へのシステム・
メモリ・サイクルを開始する。1回のシステム・メモリ
・サイクルの間に、CPU38と、DMA制御機構60
と、(I/Oデバイス28の代理として機能している)
バス・インターフェース装置64とのうちの、いずれか
1つだけが、このメモリ制御機構58を介してシステム
・メモリ24ないし26にアクセスすることができる。
そして、CPU38がシステム・メモリとの間で通信を
行なうときには、そのアクセスは、ローカル・バス20
と、メモリ制御機構58と、メモリ・バス30とを介し
て行なわれ、一方、DMA制御機構60、または(I/
Oデバイス28の代理として機能している)バス・イン
ターフェース装置64が、システム・メモリにアクセス
する場合には、そのアクセスは、システム・バス76
と、メモリ制御機構58と、メモリ・バス30とを介し
て行なわれる。
【0015】CPU38からI/Oバス32への読取り
サイクルないし書込みサイクルが実行されるときには、
そのためのアドレス情報が、システム・メモリのアドレ
ス境界と比較対照される。それによって、そのアドレス
情報が、I/O拡張メモリ・アドレスまたはI/Oポー
ト・アドレスに該当していることが判明したならば、メ
モリ制御機構58は、I/Oバス32を使用して(従っ
てバス・インターフェース装置64を介して)、I/O
デバイス28との間での、I/Oメモリ・サイクルない
しI/Oポート・サイクルを開始する。このように、C
PU38からI/OメモリへのI/Oメモリ・サイク
ル、またはCPU38からI/OポートへのI/Oポー
ト・サイクルが実行されるときには、先ず、メモリ制御
機構58へ供給されているアドレスが、システム・バス
76からI/Oバス32へ、それら2つのバスの間に位
置しているバス・インターフェース装置64を介して転
送される。そして、そのアドレスに対応している拡張メ
モリを含んでいるI/Oデバイス28が、I/Oバス3
2からそのメモリ・アドレスを受け取る。更に、DMA
制御機構60とバス・インターフェース装置64とが、
システム・メモリ24ないし26と、I/Oデバイス2
8の中に組み込まれている拡張メモリとの間の、情報交
換を制御する。DMA制御機構60は更に、プロセッサ
複合体14の代理としての、3つの機能を提供してい
る。即ち、第1に、DMA制御機構60は、小型コンピ
ュータ用のサブシステム制御ブロック(subsystem cont
rol block:SCB)アーキテクチャを用いて、DMAチ
ャネルの構成(コンフィギュレーション)を行なう機能
を提供している。これによって、プログラム式I/Oを
使用することなくDMAチャネルの構成を行なうことが
可能にされている。第2に、DMA制御機構60は、低
速で動作しているメモリ拡張デバイスと、通常それより
も高速で動作しているシステム・メモリとの間の転送を
最適化する、バッファとしての機能を提供している。第
3に、DMA制御機構60は、システム・メモリに対す
る、8チャネルで32ビットの、ダイレクト・アクセス
機能を提供している。更に、DMA制御機構60は、こ
の、システム・メモリに対するダイレクト・アクセス機
能を提供する際には、2通りのモードで機能することが
できるようになっている。そのうちの第1のモードは、
DMA制御機構60が、プログラム式I/Oモードで機
能するというものであり、この第1のモードにおいて
は、このDMA制御機構60が、機能上、CPU38の
スレーブとなる。第2のモードは、このDMA制御機構
60そのものが、システム・バス76のバス・マスター
として機能するというものであり、このときには、DM
A制御機構60は、I/Oバス32のための仲裁を行な
い、このI/Oバス32を制御する。また、この第2の
モードにあるときには、このDMA制御機構60は、先
入れ先出し式(FIFO)レジスタ回路を使用する。
【0016】CACP回路62は、DMA制御機構60
と、複数のI/Oデバイスの夫々のバス制御機構と、C
PU38(ただし、CPU38がI/Oデバイスをアク
セスしようとしている場合)との間の、仲裁機構として
機能する回路である。このCACP回路62は、DMA
制御機構60と、メモリ制御機構58と、I/Oデバイ
スとから、夫々の仲裁制御信号を受け取った上で、それ
らのうちのいずれのデバイスにI/Oバス32の制御を
渡すかということと、その特定のデバイスがI/Oバス
32の制御を保持し続ける時間の長さとを決定するもの
である。
【0017】ドライバ回路68は、メモリ制御機構58
からシステム・メモリ24及び26へ、制御情報とアド
レス情報とを供給する回路である。このドライバ回路6
8は、システム・メモリ24及び26を構成するのに使
用しているシングル・インライン・メモリ・モジュール
(single in-line memory module:SIMM)の個数に
合わせて、それら情報をドライブする。従って、このド
ライバ回路68は、システム・メモリ24及び26へ供
給する制御情報及びアドレス情報の信号強度をそれらメ
モリのサイズに合わせて変化させる。
【0018】バッファ回路74は、プロセッサ複合体1
4のベース部分18とシステム・ボード12との間での
増幅の機能を提供すると共に、それらを互いに絶縁する
機能をも提供している。このバッファ回路74は、複数
のバッファで構成してあり、それらバッファによって、
I/Oバス32とバス・インターフェース装置64との
間の境界情報をリアルタイムで取り込むことができるよ
うにしてある。そのため、コンピュータ・システム10
に障害状況が発生した場合には、コンピュータ修理要員
は、このバッファ回路74にアクセスすれば、コンピュ
ータ・システム10にその障害状況が発生した時点でコ
ネクタ34に存在していた情報を知ることができる。
【0019】ROM70は、このコンピュータ・システ
ム10の電源投入時に、拡張メモリからシステム・メモ
リへのデータの初期配置を行なうことによって、このコ
ンピュータ・システム10の構成(コンフィギュレーシ
ョン)を行なう。セルフ・テスト回路72は、ベース部
分18の中の様々なロケーションに接続されており、様
々なセルフ・テスト機能を提供している。このセルフ・
テスト回路72は、コンピュータ・システム10の電源
投入時に、バッファ回路74にアクセスして障害状況が
発生しているか否かを判断すると共に、ベース部分18
の中のその他の主要構成要素のテストも行ない、それら
によって、コンピュータ・システム10が動作可能な状
態にあるか否かを判断する。
【0020】続いて図2について説明すると、この図2
に示したのは、図1のコンピュータ・システム10の中
の、バス・インターフェース装置64のブロック図であ
る。バス・インターフェース装置64は、システム・バ
ス76とI/Oバス32との間の、両方向高速インター
フェースの機能を提供している装置であり、本発明を実
現する上での基礎を成し装置である。
【0021】バス・インターフェース装置64には、シ
ステム・バス・ドライバ/レシーバ回路102と、I/
Oバス・ドライバ/レシーバ回路104と、それら2つ
のドライバ/レシーバ回路の間に接続された複数の制御
ロジック回路とが含まれている。システム・バス・ドラ
イバ/レシーバ回路102はステアリング・ロジックを
含んでおり、このステアリング・ロジックは、システム
・バス76から受け取った信号を、バス・インターフェ
ース装置64の中の複数の制御ロジック回路のうちの該
当する制御ロジック回路へ配送すると共に、バス・イン
ターフェース装置64の中の複数の制御ロジック回路か
ら信号を受け取って、その受け取った信号をシステム・
バス76へ送出するためのロジックである。I/Oバス
・ドライバ/レシーバ回路104もまたステアリング・
ロジックを含んでおり、このステアリング・ロジック
は、I/Oバス32から受け取った信号を、バス・イン
ターフェース装置64の中の複数の制御ロジック回路の
うちの該当する制御ロジック回路へ配送すると共に、バ
ス・インターフェース装置64の中の複数の制御ロジッ
ク回路から信号を受け取って、その受け取った信号をI
/Oバス32へ送出するためのロジックである。
【0022】バス・インターフェース装置64の中の複
数の制御ロジック回路としては、システム・バス−I/
Oバス変換ロジック106と、I/Oバス−システム・
バス変換ロジック108と、メモリ・アドレス比較ロジ
ック110と、誤り回復支援ロジック112と、キャッ
シュ・スヌープ・ロジック114とがある。また、シス
テム・バス・ドライバ/レシーバ回路102には更に、
プログラム式I/O回路116が接続されている。
【0023】システム・バス−I/Oバス変換ロジック
106について説明すると、先ず、DMA制御機構60
や、(CPU38の代理として機能している)メモリ制
御機構58が、I/Oバス32上のスレーブ・デバイス
として動作しているI/Oデバイス28と通信をするた
めには、それらDMA制御機構60ないしメモリ制御機
構58は、システム・バス76のバス・コントローラと
して動作してI/Oバス32にアクセスする必要があ
る。このシステム・バス−I/Oバス変換ロジック10
6は、それらDMA制御機構60ないしメモリ制御機構
58がその動作を実行する上で必要な手段を提供するも
のである。即ち、この変換ロジック106は、システム
・バス76の、複数本の制御ライン、複数本のアドレス
・ライン、及び複数本のデータ・ラインを、それらの合
計本数よりも少ない本数のI/Oバス32の複数本のラ
インへ変換する。この変換に際しては、制御信号はその
大部分が、またアドレス信号はその全てが、システム・
バス76からI/Oバス32へ流れるようにしており、
一方、データ情報は、両方向性としており、即ち、いず
れのバスから、いずれのバスへも流れるようにしてい
る。また、この変換ロジック106は、システム・バス
76のバス・スレーブとして動作し、システム・バス7
6をモニタして、I/Oバス32を対象としたサイクル
が発生したときにそのサイクルを検出する。この変換ロ
ジック106は、その種のサイクルを検出したならば、
システム・バス76上の信号のタイミングをI/Oバス
32のタイミングへ変換し、I/Oバス32上のサイク
ルを開始し、その開始したI/Oバス32上のサイクル
が完了するのを待ち、そしてそのI/Oバス32上のサ
イクルが完了したならば、システム・バス76上のサイ
クルを終了させる。
【0024】I/Oバス−システム・バス変換ロジック
108には、システム・バス・アドレス発生回路118
と、I/Oバス予期アドレス発生回路120と、システ
ム・バス・コントローラ・インターフェース122と、
FIFOバッファ124と、I/Oバス・スレーブ・イ
ンターフェース126と、バス−バス歩調合せ制御ロジ
ック128とが含まれている。システム・バス・コント
ローラ・インターフェース122は、40メガヘルツで
動作する、高性能の32ビット(4バイト)の「i48
6」のバースト・プロトコルをサポートしている。デー
タの転送方式としては、4バイト、8バイト、及び16
バイトのデータをバースト・モードで転送する方式と、
1バイトないし4バイトのデータを非バースト・モード
で転送する方式とが可能である。I/Oバス・スレーブ
・インターフェース126は、I/Oバス32をモニタ
して、システム・バス76上のスレーブ・デバイスを対
象とした動作がI/Oバス32上に発生したときに、そ
れを検出するためのものであり、I/Oバス32を対象
とした動作は無視するようにしている。このI/Oバス
・スレーブ・インターフェース126によって検出され
たサイクルは全て、FIFOバッファ124へ受け渡さ
れ、そこから更にシステム・バス・コントローラ・イン
ターフェース122へ受け渡される。
【0025】あるI/Oデバイス28が、システム・メ
モリ24ないし26に対する読取りないし書込みを実行
するためには、そのI/Oデバイス28は、I/Oバス
32のバス・コントローラとして動作してシステム・バ
ス76へアクセスする必要がある。I/Oバス−システ
ム・バス変換ロジック108は、I/Oバス28がその
動作を行なうために必要な手段を提供するものである。
その種の読取り動作と書込み動作とのいずれが行なわれ
ている場合にも、I/Oバス32は、いずれかのI/O
デバイス28によって制御されている。このとき、非同
期式の装置であるI/Oバス・スレーブ・インターフェ
ース126が、I/Oバス32を制御しているそのI/
Oデバイスの動作速度で動作しており、このI/Oバス
・スレーブ・インターフェース126の働きによって、
バス・インターフェース装置64は、I/Oバス32の
コントローラとして動作しているそのI/Oデバイスに
対するスレーブとして動作して、メモリ・アドレスの復
号化と、そのときの読取りサイクルないし書込みサイク
ルがシステム・メモリ24ないし26を対象としたもの
であるか否かの判断とを行なうことができるのである。
更にこれと同時に、バス・インターフェース装置64
は、システム・バス・コントローラ・インターフェース
122の働きによって、システム・バス76のバス・コ
ントローラとしての動作も行なうことができるようにな
っている。それによって、メモリ制御機構58(図1)
が、このバス・インターフェース装置64に対するスレ
ーブとして動作して、システム・メモリ24ないし26
から読み取ったデータをバス・インターフェース装置6
4へ供給する動作と、システム・メモリ24ないし26
へデータを書き込む動作とのいずれかを行なう。システ
ム・メモリに対する読取りないし書込みはFIFOバッ
ファ124を介して行なわれ、このFIFOバッファ1
24のブロック図を示したのが、図3である。
【0026】図3に示したように、FIFOバッファ1
24は、デュアル・ポートで、両方向性で、しかも非同
期式装置として構成した記憶装置である。FIFOバッ
ファ124は、システムバス76とI/Oバス32との
間でやり取りされるデータ情報を一時的に記憶する、一
時記憶装置としての機能を提供している。FIFOバッ
ファ124は、4つの16バイトのバッファ125A〜
125Dと、FIFO制御回路123とを含んでいる。
4つのバッファ125A〜125Dは、I/Oバス32
のバス・コントローラ並びにシステム・バス76のバス
・スレーブとの間でやり取りするデータをバッファし、
それによって、I/Oバス32の動作とシステム・バス
76の動作とが同時に行われることを可能にしている。
FIFOバッファ124は、物理的には、2つの32バ
イトのバッファ(125A/125C、125B/12
5D)で構成してある。そして、システム・バス・コン
トローラ・インターフェース122と、I/Oバス・ス
レーブ・インターフェース126との各々が、それら3
2バイトのバッファの1つずつを制御しており、しか
も、それらインターフェース122、126の各々は、
みずからが制御しているのではない方の32バイトのバ
ッファの動作によって、みずからの動作が影響を受ける
ことはない。また、いずれの32バイトのバッファも、
読取り動作と書込み動作との両方に使用される。
【0027】FIFO125A、125B、125C、
125Dの各々にはアドレス・レジスタ・セクションを
設けてあり、このアドレス・レジスタ・セクションは、
夫々のFIFOに物理的に付随させたセクションとして
も良く、また、論理的に付随させたセクションとしても
良い。I/Oバス32からFIFO125Aへ、データ
が次々と転送されてきているときには、それらデータの
アドレスが連続しているならば、16バイトのバッファ
であるこのFIFO125Aに16バイト分のデータが
入れられてこのFIFO125Aが満杯になるまで、デ
ータの蓄積を行なう。一方、アドレス検出動作によっ
て、不連続なアドレスが検出されたならば、FIFO1
25Aは、それまでに記憶した分のデータをFIFO1
25Cへ転送し、またそれと同時にFIFO125B
が、その新たな不連続アドレスからのデータの受け取り
を開始する。FIFO125Bは、FIFO125Aが
それまで行なっていたのと同じように動作し、即ち、1
6バイト分のデータで満杯になるか、或いは更に別の不
連続アドレスが検出されるまで、そのデータの蓄積を続
行する。それらのいずれかの事象が発生した時点で、F
IFO125Bは、それまでに記憶したデータをFIF
O125Dへ転送し、これ以後再びFIFO125Aが
データの記憶動作を開始する。従って全体としては、最
大で、16バイト分の連続アドレスのデータから成るデ
ータ・ブロックの4個分に相当する量のデータを記憶す
ることができる。
【0028】更には、2つの32バイトのバッファを並
列にしてあるため、データの読取りにせよ書込みにせ
よ、それら2つのバッファの間で交互に切り替えること
ができることから、実質的に連続的な、読取りないし書
込みの機能が得られるようになっている。
【0029】更には、1つの32バイトのバッファを2
つの16バイトのバッファ・セクションに分割し、分割
したそれらバッファ・セクションを、I/Oバス32
と、システム・バス76とに、即ち互いに別々のバスに
接続してあるため、記憶用のバッファの個数を増やす場
合にも、データをクロッキングして記憶用レジスタに出
し入れする信号の容量負荷に関するFIFOの性能に、
非常に僅かな影響しか及ばないようになっている。この
ことは、2つのバッファを(並列に)追加するごとに増
加する、各々のバス上のクロック信号の容量負荷の増加
分が、2分の1で済むことによって達成されている。
【0030】更には、各々の枝部(即ち、125A/1
25C、ないしは125B/125D)を、2つの16
バイトのバッファを直列に接続した構成としてあるた
め、例えば読取り動作の実行中に、ある枝部の、2つの
16バイトのバッファのうちの一方にデータが満杯に蓄
積されたならば、その蓄積したデータを、そのバッファ
に対して直列に接続されている、その枝部の他方の16
バイトのバッファへ転送しつつ、それと同時に、その枝
部に対して並列な他方の枝部において、データの蓄積を
続行することができる。そのため、データの蓄積にも、
また一方のバスから他方のバスへのデータの転送にも、
タイム・ロスが生じることがない。
【0031】FIFO124の動作を制御するためのロ
ジックは、FIFO制御回路123から供給されてい
る。
【0032】複数のI/Oデバイスのうちのある1つの
I/Oデバイス28が、I/Oバス32を介してシステ
ム・メモリ24ないし26へ書込みを行なう際の帯幅
は、1バイト、2バイト、ないしは4バイト(即ち、8
ビット、16ビット、ないしは32ビット)のうちのい
ずれかである。あるI/Oデバイス28がシステム・メ
モリへの書込みを行なうときには、先ず最初に、第1回
目の転送分の書込みデータがFIFOバッファ125A
または125Bに記憶される。すると、I/Oバス予期
アドレス発生回路120が、予期される次のアドレス、
即ち連続する次のアドレスを算出する。そして、こうし
て算出された連続する次のアドレスを、後続の転送のI
/Oアドレスと比較対照することによって、その後続の
転送が、連続したアドレスからの転送か否かを検証す
る。もしそれが実際に、連続したアドレスからの転送で
あったならば、第2回目の転送分の1バイト分ないし複
数バイト分のデータを、第1回目の転送分のデータを記
憶したものと同じFIFOバッファ125Aまたは12
5Bへ供給する。尚、FIFOバッファは、I/Oバス
32からデータを受け取る際には、最高で40メガバイ
ト/秒までの速度で非同期的にそのデータを受け取るこ
とができる。
【0033】以上のプロセスは、バッファ125Aまた
は125Bが、16バイトのパケット1つ分の情報で満
杯になるか、或いは、不連続のアドレスが検出されるま
で続ける。そして、バッファ125Aが満杯になった場
合には、それに続く次のクロック・サイクルにおいて、
このバッファ125Aの中のデータを、バッファ125
Cへ転送する。同様に、バッファ125Bが満杯になっ
たときには、このバッファ125Bの内容の全てを、1
回のクロック・サイクルの間にバッファ125Dへ転送
する。こうしてバッファ125Cやバッファ125Dに
記憶されたデータは、次に、「i486」のバースト転
送によって、システム・バスの動作速度でシステム・メ
モリの中へ書き込む。I/Oデバイスによるシステム・
メモリへの書込みが行なわれている間中、FIFOバッ
ファ124のこの動作は連続して行ない、その際にバッ
ファ125Aと125Bとは交互に動作して、それらバ
ッファの一方が、みずからの内容をみずからに接続した
バッファ125Cまたは125Dに転送して再び空の状
態にしているとき、他方のバッファが、システム・メモ
リへ書き込むべきデータの受け取り中となる。更にこの
とき、FIFOバッファ124は、システム・メモリへ
のデータ書込み速度を最適化する。この書込み速度の最
適化は、(1)システム・メモリへ次に書き込む可能性
の大きいデータのバイトのアドレスを、FIFOバッフ
ァ124が予測することと、(2)FIFOバッファ1
24からシステム・バス76を介してシステム・メモリ
へデータを書き込むときの可能な最大のデータ書込み速
度に、FIFOバッファ124が対応し得るようにして
あることとによって達成している。
【0034】一方、システム・メモリからI/Oデバイ
ス28へのデータ読取りが行なわれるときのFIFOバ
ッファ124の動作は、書込みのときの動作とは異なっ
た、次のような動作となる。先ず、システム・バス・ア
ドレス発生回路118が、最初の読取りアドレスに基づ
いて後続の読取りデータの読取りアドレスを発生し、そ
れに従って、バッファ125Cないし125Dの中にデ
ータを蓄積して行く。システム・バス76がサポートし
ているデータ転送動作は、その帯幅が16バイト幅の転
送動作であるため、システム・バス・コントローラ・イ
ンターフェース122は、連続したデータを、16バイ
トのパケットの形でシステム・メモリから事前取出しし
てバッファ125Cないし125Dに記憶させることが
でき、この事前取出しはI/Oバス32から実際に後続
のアドレスが送られてこなくても行なえるため、これに
よって転送と転送との間の待ち時間が短縮できる。こう
して事前取出しをしたデータによって、例えばバッファ
125Cが満杯になったときには、バッファ125C
は、みずからの内容を1回のクロック・サイクルの間に
バッファ125Aへ転送する。バッファ125Dの場合
も同様であって、データで満杯になったときには、みず
からの内容をバッファ125Bへ転送して空の状態に戻
る。この後、こうして転送されたバッファ125Aない
し125Bの中のデータは、そのデータを読み取るべき
特定のI/Oデバイス制御機構によって読み取られ、こ
の読取りの際の帯幅は、1バイト、2バイト、または4
バイトである。以上のようにして、システム・バス・ア
ドレス発生回路118は、その特定のI/Oデバイス制
御機構から、データの事前取出しを停止することを命じ
る命令を受け取るまで、増分カウンタとして機能し続け
る。
【0035】バス−バス歩調合せ制御ロジック128
は、高速で動作するI/Oデバイスのために、システム
・メモリへの、より高速のアクセスを可能にするロジッ
クである。即ち、バス−バス歩調合せ制御ロジック12
8は、このコンピュータ・システム10の通常の仲裁方
式である、メモリ制御機構58による仲裁をオーバーラ
イドする。このオーバーライドは、高速のI/Oデバイ
スが複数のサイクルを必要とするデータ転送を行なって
いる間は、そのI/OデバイスとCPU38とが交互に
メモリ制御機構58にアクセスするのではなくて、I/
Oバス32の制御を保持しているそのI/Oデバイス
に、システム・メモリへの連続的なアクセスを許可する
というものである。これによれば、あるI/Oデバイス
が複数のサイクルに亙る転送を行なっている間、例えば
CPU38等のローカル・デバイスがメモリ・バスの制
御の要求を出し続けていたとしても、このバス−バス歩
調合せ制御ロジック128の働きによって、そのI/O
デバイスに対して、メモリ・バスの制御を連続して付与
し続けることになる。
【0036】プログラム式I/O回路116は、バス・
インターフェース装置64のうちの一部分であって、こ
のバス・インターフェース装置64の中のレジスタのう
ち、プログラム可能なレジスタの全てを包含している部
分である。それらプログラム可能なレジスタには、個々
のレジスタが、活動状態にあるかそれとも非活動状態に
あるかを判定するためのビットを付随させてある。ま
た、それらプログラム可能なレジスタは、特に以下の諸
々の事項を規定するためのレジスタである。それら事項
とは、システム・メモリのアドレス範囲及び拡張メモリ
のアドレス範囲のうちバス・インターフェース装置64
が応答すべきアドレス範囲、キャッシュ可能であったり
キャッシュ不可能であったりする拡張メモリのアドレ
ス、システム・メモリないしキャッシュのアドレス範
囲、それに、バス・インターフェース装置64がパリテ
ィ・チェック即ち誤り検査をサポートするか否かという
こと等である。従って、プログラム式I/O回路116
は、バス・インターフェース装置64のために、このバ
ス・インターフェース装置64が住んでいる環境と、こ
のバス・インターフェース装置64の構成(コンフィギ
ュレーション)を設定しているオプションとを特定す
る。このプログラム式I/O回路116に包含されてい
るレジスタは、I/Oバス32を介して直接プログラム
することができないようにしてある。従って、CPUレ
ベルでシステム・バス76を介してこのプログラム式I
/O回路116と通信することのできるI/Oデバイス
への、アクセス権を有するユーザでなければ、このコン
ピュータ・システム10をプログラムすることはできな
い。
【0037】メモリ・アドレス比較ロジック110は、
あるメモリ・アドレスが、システム・メモリに該当する
メモリ・アドレスであるのか、それともI/Oバス32
に接続されているいずれかのI/Oデバイス28に設け
られた拡張メモリに該当するメモリ・アドレスであるの
かを判定するロジックである。システム・メモリにして
も、また拡張メモリにしても、連続していない複数のア
ドレス・ブロックから構成されることがあり得るため、
このメモリ・アドレス比較ロジック110は、複数の比
較器を含む構成としてあり、そしてそれら複数の比較器
に、プログラム式I/O回路116の中の複数のレジス
タから得られる、どの境界がどのメモリに対応している
のかを示す境界情報をロードしてある。このメモリ・ア
ドレス比較ロジック110によって、あるメモリ・アド
レスが境界情報と比較されたならば、その後には、バス
・インターフェース装置64は、その比較結果に応じた
動作を行なえるようになる。例えば、そのときI/Oバ
ス32を制御しているI/Oデバイスが読取りないし書
込みを実行しており、その読取りないし書込みの対象が
拡張メモリであるならば、バス・インターフェース装置
64は、その読取りないし書込みに伴うアドレスをメモ
リ制御機構58へ受け渡す必要はないのであるから、そ
れをしないことによって時間とメモリの帯幅とを節約す
ることができる。
【0038】誤り回復支援ロジック112は、データの
パリティ誤りが検出された場合であっても、コンピュー
タ・システム10が動作を続行できるようにするための
ロジックである。いずれかのI/Oデバイス28がシス
テム・メモリ24ないし26に対して読取りないし書込
みのアクセスを行なうときには、常に、そのデータのパ
リティをチェックするようにしている。この誤り回復支
援ロジック112は、そのチェックによってパリティ誤
りが検出されたならば、プログラム式I/O回路116
の中の1つのレジスタと対話して、その検出されたパリ
ティ誤りに関するアドレスと時刻とをそのレジスタに取
り込ませる。続いて、そのレジスタの内容に対して、適
当なシステム・ソフトウェアを作用させる。例えば、C
PU38を適宜プログラムして、パリティ誤りが検出さ
れたときにはいつでもハイレベルの割込みがかかるよう
にし、また、その割込みに応答して、そのレジスタから
そのアドレスを引き出してくるようにしておく。その上
で、CPU38が、そのシステム・ソフトウェアの命令
に基づいて、コンピュータ・システムの動作をそのまま
続行すべきか、或いは、既に特定されているそのパリテ
ィ誤りの発生源の動作だけを停止すべきか等の、判断を
するようにしておけば良い。
【0039】次にキャッシュ・スヌープ・ロジック11
4について説明する。バス・インターフェース装置64
は、このキャッシュ・スヌープ・ロジック114を備え
ているために、I/Oバス32をモニタして、いずれか
のI/Oデバイスが拡張メモリへの書込みを行なうとい
う種類の書込み動作がこのI/Oバス32上に発生した
ときには、それを検出することができる。このキャッシ
ュ・スヌープ・ロジック114は、拡張メモリへの書込
み動作がI/Oバス32上に発生したならば、先ず、書
込みが行なわれているその拡張メモリが、SRAM40
へキャッシュすることのできるキャッシュ可能な拡張メ
モリであるか否かを判定する。もしその拡張メモリが、
キャッシュ可能な拡張メモリではなかったならば、破壊
されたデータがキャッシュされているという事態が発生
するおそれはない。一方、それを判定するための比較の
結果、比較肯定信号が発生して、書込みが行なわれてい
るその拡張メモリが、キャッシュ可能な拡張メモリであ
るということが指示されたならば、システム・バス76
上においてキャッシュ無効化サイクルを開始する。この
サイクルを開始したならば、CPU38に対して、SR
AM40の中の対応するアドレスを無効化することを命
じる。更に、このキャッシュ・スヌープ・ロジック11
4は、その比較肯定信号の発生原因となったアドレスを
記憶するための手段を提供しており、そのアドレスを記
憶することによって、I/Oバス32に対するスヌープ
の動作を、最初の比較肯定信号が検出された直後から間
を置かずに続行できるようにしており、更にそれによっ
て、I/Oバス32を連続的にモニタし続けられるよう
にしている。
【0040】I/Oバス32に接続されているあるデバ
イスは、同じくI/Oバス32に接続されている別のデ
バイスの中のアドレス・ロケーションに対して、データ
の読取りないし書込みを行なうことが必要になることも
あり、また、ローカル・バス20とシステム・バス76
とに接続されているシステム・メモリ24、26の中の
アドレスに対して、データの読取りないし書込みを行な
うことが必要になることもある。一方、以上に説明した
システムでは、全てのアドレスのロケーションをメモリ
制御機構58の中に記憶させてある。そのため、所与の
アドレスに対する読取りないし書込みを行なうことを必
要としているデバイスが、例えばCPU38等のよう
に、ローカル・バス20に接続されているデバイスであ
れば、そのデータの読取りないし書込みを行なうべきア
ドレスを、メモリ制御機構58が、ローカル・バス20
から読み取るようにすれば良い。そのアドレスを読み取
ったなら、続いて、このメモリ制御機構58の中のロジ
ックにより、そのアドレスがシステム・メモリ24、2
6の中のアドレスであるのか、それともI/Oバス32
に接続されたデバイス28に備えられているメモリの中
のアドレスであるのかを判定した上で、該当する方のバ
スへのアクセスを許可する。しかしながら、あるアドレ
スに対する読取り動作ないし書込み動作の実行を必要と
しているデバイスが、ローカル・バス20に接続された
デバイスではなくて、I/Oバス32に接続されたデバ
イスであるという場合には、そのI/Oバス32に接続
されているデバイスが、上と同じように、メモリ制御機
構58への問合せをしなければならないとしたならば、
それは、非効率的なものとならざるを得ない。なぜなら
ば、その場合には、アドレスのロケーションの照会を、
I/Oバス32からバス・インターフェース装置64を
介してメモリ制御機構58へ受け渡す必要があるからで
ある。そして更に、メモリ制御機構58が、そのアドレ
スのロケーションを判定した上で、判定したそのロケー
ションを、その照会を受け取ったときと同じ経路を逆に
たどって要求元デバイスへ返すことが必要である。この
ようにバス・インターフェース装置64を介して行なわ
れる受け渡しの動作には時間がかかり、そのため非効率
的であり、また、その読取りないし書込みが、I/Oバ
ス32上のアドレスに対するものである場合には、こと
さらに非効率的と言わざるを得ない。実際に、そのよう
な場合には、バス・インターフェース装置64における
アクセス・タイムの中に、プログラムによって余分な保
留時間を組み込んでおくことが必要であったり、別にハ
ンドシェイキング動作を実行することが必要であったり
する。
【0041】以上のような事情から、バス・インターフ
ェース装置64の中に、ロジック機能140(図4)を
備えるようにしており、I/Oバス32に接続されてい
るデバイスから、書込み要求ないし読取り要求が発せら
れたときには、このロジック機能140によって、バス
・インターフェース装置64の中でメモリ・アドレス比
較機能を実行できるようにする。そして、その比較の結
果、その書込みないし読取りの対象アドレスが、I/O
バス32に接続されているデバイス28の中のアドレス
であることが判明した場合には、I/Oバス32上のそ
の対象アドレスへの読取りないし書込みを、同じくI/
Oバス32に接続されている要求元デバイスに、バス・
インターフェース装置64を介することなく直接行なわ
せるようにする。一方、その書込みないし読取りの対象
アドレスが、システム・メモリ24、26の中のアドレ
スであった場合には、その書込みないし読取りに関する
データを、バス・インターフェース装置64を介してシ
ステム・バス76へ受け渡すようにする。従ってこの方
式では、バス・インターフェース装置64を経由してシ
ステム・バス76へ行き、更にそこからメモリ制御機構
58へ行き、そこでアドレス比較機能を実行し、その後
に、その比較によって得られた情報をI/Oバス32上
の要求元デバイスへ返すという動作によって、時間が無
駄に費消されることがない。
【0042】図4は、以上のアドレス比較機能140
を、バス・インターフェース装置64内に包含された形
で図示したものである。バス・インターフェース装置6
4は、アドレス空間142を記憶するためのレジスタを
含んでおり、システム・メモリ24、26内のアドレス
空間と、I/Oバス32に接続されているデバイス28
内のアドレス空間とを規定している。図5は、システム
内で利用可能なアドレス範囲の具体例を模式的に示した
ものであり、図中に書き込んである数字は、0〜16メ
ガバイトを表わしている。図中の複数のアドレス範囲の
うちの幾つか、即ち、0〜1メガバイトを表わしている
アドレス範囲144と、4〜6メガバイトを表わしてい
るアドレス範囲146と、8〜10メガバイトを表わし
ているアドレス範囲148とは、システム・メモリのた
めのアドレス範囲として指定されたアドレス範囲であ
る。システムの中に、これらのアドレス範囲を構成する
のは、プログラム式I/O回路116である。尚、図示
したアドレス範囲は、あくまでも説明のための1例に過
ぎず、図示例とは異なったアドレス範囲の設定も無論可
能である。
【0043】以上のアドレス比較機能を実行するための
ロジックは、バス・インターフェース装置64の中に組
み込んである。あるI/Oデバイス28が、I/Oバス
32並びにシステム・バス76の制御を獲得したなら
ば、メモリに対する読取り動作ないし書込み動作を行な
おうとしているそのI/Oデバイス28(即ち、I/O
バス32に接続されている要求元デバイス)から、バス
・インターフェース装置64のアドレス比較機能140
へ入力が供給される。バス・インターフェース装置64
のアドレス比較機能140は、読取りないし書込みを行
なおうとしているそのデータのアドレス(即ち、要求ア
ドレス)を、みずからが記憶している複数のアドレスの
ロケーションと比較する。そして、その要求アドレス
が、システム・バス76上のアドレスであったならば、
バス・インターフェース装置64がシステム・バス76
に対してデータの書込みないし読取りを行なうことを示
す信号を、システム・バス76上へ送出する。一方、そ
の要求アドレスが、I/Oバス32上のメモリの中のア
ドレスであったならば、I/Oバス上の要求元デバイス
を、I/Oバスを介して直接、そのI/Oメモリ・ロケ
ーションに接続する。この場合には、バス・インターフ
ェース装置64は、その要求アドレスのロケーションが
I/Oバス上にあることを識別した後には、何の機能も
実行しない。
【0044】図6は、メモリ・アドレスの比較を行な
う、以上のアドレス比較機能140のハイレベルのロジ
ック図である。メモリ・アドレス比較機能150、15
2、及び154の各々へは、アドレス範囲144、14
6、及び148を表示している比較のための夫々の信号
の全てが入力している。各々のメモリ・アドレス比較機
能150、152、154は、入力してくるアドレス
が、システム・メモリに対応しているそれらアドレス範
囲144、146、148のうちの、いずれかのアドレ
ス範囲の中のアドレスであるか否かを判定する。そし
て、その入力アドレスが、それらシステム・バスのアド
レス範囲のうちのいずれかの範囲の中のアドレスであっ
たならば、「ハイ」信号を発生して、その入力アドレス
がシステム・メモリ内のものであり、システム・バスを
介してアクセスすることができるものであることを示
す。一方、その入力アドレスが、それらアドレス範囲の
うちのいずれの範囲の中のアドレスでもなかったなら
ば、「ロー」信号を発生して、その入力アドレスがシス
テム・バス76上のアドレスではなく、従ってI/Oバ
ス32上のアドレスであることを示す。
【0045】メモリ・アドレス比較機能152は、メモ
リ・アドレス比較機能150と略々同様に動作するもの
であるが、ただし、I/Oバス上の現在アドレス158
と、この現在アドレス158に続く、連続する次のアド
レス160との、双方をマルチプレクサ162を介して
このメモリ・アドレス比較機能152へ供給できるよう
にしてある点が異なっている。マルチプレクサ162の
いずれの入力が活動状態であるかに応じて、それら現在
アドレス158と連続する次のアドレス160とのいず
れかが比較され、そして、それがシステム・メモリ内の
アドレスであったならば、このメモリ・アドレス比較機
能152は、その出力として「ハイ」信号を発生する。
これは、データ・ストリーミング方式の動作を可能にす
るためのものであり、即ち、一連の連続したメモリ・ロ
ケーションに対するデータの書込みないし読取りを、そ
れら各々のアドレスごとにアクセスに先立ってアドレス
比較機能を実行することなしに、行なえるようにするた
めのものである。そして、それを行なっているときに、
連続する次のアドレスが、システム・メモリとI/Oメ
モリとの間の境界を越えてしまうことがないようにする
ために、このメモリ・アドレス比較機能152が、その
連続する次のアドレスの比較を行なっているのである。
【0046】一方、メモリ・アドレス比較機能154へ
の入力は、システム・バス76からの入力である。この
入力が利用されるのは、DMA制御機構60が、システ
ム・メモリ24、26の中のメモリ・ロケーションか
ら、データをパケットの形で事前取出ししているときで
ある。マルチプレクサ168へは、DMA制御機構60
から、システム・バス上のアドレス164が供給され、
そしてこのシステム・バス上のアドレス164は、要求
されているロケーションがシステム・メモリ内のロケー
ションであるか否かの、判断材料となるものである。更
にこのマルチプレクサ168へは、バス・インターフェ
ース装置64から、連続する次のパケットのアドレスが
システム・メモリに対応したアドレス範囲の中のアドレ
スか否かの判断材料となる信号166が供給されてい
る。そして、その連続する次パケット・アドレスがシス
テム・メモリに対応したアドレス範囲の中のアドレスで
あったならば、そのパケットの事前取出しを行なって、
そのデータ・ストリーミング、即ち、連続バースト読取
りを続行する。このデータ読取りのためのストリーミン
グ・モードは、システム・メモリからバス・インターフ
ェース装置64の中へデータを読み込む際に、連続した
アドレス・ロケーションから、容量が16バイトのデー
タ・パケットの形で次々とデータを読み取って行くため
のモードであり、このデータの読取りは、その読取りの
ために許可された時間が経過してしまうまで、或いは、
システム・メモリとI/Oメモリとの間の境界を越える
直前まで、或いは、I/Oデバイス28がそのストリー
ミング・モードを終了させるまで、続けて行なわれる。
【0047】従って、メモリ・アドレス比較機能150
と152とは、I/Oバス32上に送出されているアド
レスに反応する比較機能であり、一方、メモリ・アドレ
ス比較機能154は、システム・バス76上に送出され
ているアドレスに反応する比較機能である。そして、こ
のロジック140は、実際にI/Oバス32とシステム
・バス76との両方から同時に動作させることのできる
ものとなっている。
【0048】以上のメモリ・アドレス比較機能150、
152、及び154の各々のロジックを示したのが、図
7である。この図から分るように、同じ1つのアドレス
が、6つの比較器170、172、174、176、1
78、180の各々へ供給されるようにしてある。比較
器へ供給されるそのアドレスは、メモリ・アドレス比較
機能150へ供給されるアドレス156、ないしはマル
チプレクサ162からメモリ・アドレス比較機能152
へ供給されるアドレス、ないしはマルチプレクサ168
から比較機能154へ供給されるアドレスである。比較
器170は、入力されたアドレスをアドレス範囲144
の始点アドレスと比較し、比較器172は、入力された
アドレスをアドレス範囲144の終点アドレスと比較
し、比較器174は、入力されたアドレスをアドレス範
囲146の始点アドレスと比較し、比較器176は、入
力されたアドレスをアドレス範囲146の終点アドレス
と比較し、比較器178は、入力されたアドレスをアド
レス範囲148の始点アドレスと比較し、比較器180
は、入力されたアドレスをアドレス範囲148の終点ア
ドレスと比較する。それらのアドレス比較結果は、比較
器170と172とから出力されるものはANDゲート
182へ入力され、比較器174と176とから出力さ
れるものはANDゲート184へ入力され、比較器17
8と180とから出力されるものはANDゲート186
へ入力される。そして、それら3つのANDゲート18
2、184、及び186からの出力は全て、ORゲート
188へ入力するようにし、これによって、比較を行な
ったそのアドレスが、アドレス範囲144、146、及
び148のうちの、いずれかのアドレス範囲の中のアド
レスであった場合には「ハイ」信号を発生させる。この
「ハイ」信号は、そのアドレスのメモリ・ロケーション
が、システム・バス上のメモリ・ロケーションであるこ
とを示す信号となる。
【0049】
【発明の効果】以上に述べた本発明によれば、I/Oバ
スに接続されたデバイスがデータの書込みまたは読取り
を行なおうとしているアドレスのロケーション判定を、
効率的に行なうことができる。
【図面の簡単な説明】
【図1】本発明の基本概念に従って構成したバス・イン
ターフェース装置を組み込んだコンピュータ・システム
のブロック図である。
【図2】図1のコンピュータ・システムのバス・インタ
ーフェース装置のブロック図である。
【図3】図2のバス・インターフェース装置のFIFO
バッファのブロック図である。
【図4】メモリ・アドレス比較による仲裁機能のブロッ
ク図である。
【図5】システム・メモリと、I/Oバスに接続された
デバイスの中のメモリとの、いずれかに割当てるように
した、メモリのアドレス・ロケーションの具体例の模式
図である。
【図6】図2のバス・インターフェース装置の中の、ア
ドレス比較機能の動作のロジック図である。
【図7】図5のアドレス比較機能の中の、各々のメモリ
・アドレス比較機能の動作のロジック図である。
【符号の説明】
10 コンピュータ・システム 14 CPU複合体 24、26 システム・メモリ 28 入出力(I/O)デバイス 30 メモリ・バス 32 入出力(I/O)バス 38 中央処理装置(CPU) 58 メモリ制御機構 60 ダイレクト・メモリ・アクセス(DMA)制御機
構 64 バス・インターフェース装置 76 システム・バス 106 システム・バス−I/Oバス変換ロジック 108 I/Oバス−システム・バス変換ロジック 116 プログラム式I/O回路 140 アドレス比較機能 144、146、148 アドレス範囲 150、152、154 メモリ・アドレス比較機能 170〜180 比較器 182〜186 ANDゲート 188 ORゲート
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチャード・ルイス・ホーン アメリカ合衆国33437、フロリダ州 ボー イントン・ビーチ、シダー・レイク・ロー ド 5289番地、アパートメント・ナンバー 8−23 (56)参考文献 特開 平2−62642(JP,A) 特開 平1−263737(JP,A)

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータ・システムにおいて、 CPU複合体と、 前記CPU複合体に接続したシステム・バスと、 前記システム・バス及び前記CPU複合体に接続したシ
    ステム・メモリとI/Oバス、及び該I/Oバスに接続
    した少なくとも1つのメモリ・デバイスと、 前記システム・バスと前記I/Oバスとの間に接続した
    バス・インターフェース装置と、を備えており、 前記バス・インターフェース装置が、 前記システム・バスに接続したデバイスの中のメモリ・
    ロケーションを識別するための手段と、 前記I/Oバスに接続した要求元デバイスが読取りまた
    は書込みを行なおうとしているメモリ・ロケーションの
    アドレスを比較する、アドレス比較手段と、 比較したアドレスが前記システム・メモリの中のアドレ
    スであった場合に、前記要求元デバイスが、前記バス・
    インターフェース装置を介して前記システム・メモリの
    中のアドレスに対するデータの書込みまたはデータの読
    取りを行なえるようにする手段と、を含んでいること、
    を特徴とするコンピュータ・システム。
  2. 【請求項2】 前記アドレス比較手段が、前記システム
    ・バスと前記I/Oバスとの、いずれから供給されるア
    ドレスをも比較することのできる手段を含んでいるこ
    と、を特徴とする請求項1記載のコンピュータ・システ
    ム。
  3. 【請求項3】 ストリーミング・モードでデータ転送を
    行なう手段を含んでいること、を特徴とする請求項1記
    載のコンピュータ・システム。
  4. 【請求項4】 前記アドレス比較手段が、読取りまたは
    書込みを行なっているデータのアドレス・ロケーション
    の、連続した次のアドレス・ロケーションのアドレスを
    比較する手段を含んでいること、を特徴とする請求項3
    記載のコンピュータ・システム。
  5. 【請求項5】 前記システム・メモリの中の前記アドレ
    スが少なくとも2つの互いに不連続のアドレス範囲の中
    に置かれていること、を特徴とする請求項1記載のコン
    ピュータ・システム。
  6. 【請求項6】 CPU複合体と、 前記CPU複合体に接続したシステム・バスと、 前記システム・バス及び前記CPU複合体に接続したシ
    ステム・メモリとI/Oバス、及び該I/Oバスに接続
    した少なくとも1つのメモリ・デバイスと、 前記システム・バスと前記I/Oバスとの間に接続した
    バス・インターフェース装置と、 を備えているコンピュータ・システムにおけるバス・イ
    ンターフェース装置の作動方法において、前記バス・インターフェース装置は、 前記システム・バスに接続したデバイスの中のメモリ・
    ロケーションを識別するステップと、 前記I/Oバスに接続した要求元デバイスが読取りまた
    は書込みを行なおうとしているメモリ・ロケーションの
    アドレスを比較するステップと、 比較したアドレスが前記システム・メモリの中のアドレ
    スであった場合に、前記要求元デバイスによって、前記
    バス・インターフェース装置を介して前記システム・メ
    モリの中のアドレスに対するデータの書込みまたはデー
    タの読取りを行なうようにするステップと、 を含んでいることを特徴とするバス・インターフェース
    装置の作動方法。
JP4323145A 1992-01-02 1992-12-02 バス間インターフェースにおいてアドレス・ロケーションの判定を行なう方法及び装置 Expired - Lifetime JPH0789340B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US81669892A 1992-01-02 1992-01-02
US816698 1992-01-02

Publications (2)

Publication Number Publication Date
JPH05282197A JPH05282197A (ja) 1993-10-29
JPH0789340B2 true JPH0789340B2 (ja) 1995-09-27

Family

ID=25221376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4323145A Expired - Lifetime JPH0789340B2 (ja) 1992-01-02 1992-12-02 バス間インターフェースにおいてアドレス・ロケーションの判定を行なう方法及び装置

Country Status (2)

Country Link
US (1) US5659696A (ja)
JP (1) JPH0789340B2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5960179A (en) * 1996-07-01 1999-09-28 Sun Microsystems, Inc. Method and apparatus extending coherence domain beyond a computer system bus
US5838631A (en) 1996-04-19 1998-11-17 Integrated Device Technology, Inc. Fully synchronous pipelined ram
US5850571A (en) * 1996-04-22 1998-12-15 National Instruments Corporation System and method for converting read cycles into write cycles for improved system performance
US6108741A (en) * 1996-06-05 2000-08-22 Maclaren; John M. Ordering transactions
US5872941A (en) * 1996-06-05 1999-02-16 Compaq Computer Corp. Providing data from a bridge to a requesting device while the bridge is receiving the data
US6052513A (en) * 1996-06-05 2000-04-18 Compaq Computer Corporation Multi-threaded bus master
US5872939A (en) * 1996-06-05 1999-02-16 Compaq Computer Corporation Bus arbitration
US6075929A (en) * 1996-06-05 2000-06-13 Compaq Computer Corporation Prefetching data in response to a read transaction for which the requesting device relinquishes control of the data bus while awaiting data requested in the transaction
US6021480A (en) * 1996-06-05 2000-02-01 Compaq Computer Corporation Aligning a memory read request with a cache line boundary when the request is for data beginning at a location in the middle of the cache line
US5903906A (en) * 1996-06-05 1999-05-11 Compaq Computer Corporation Receiving a write request that allows less than one cache line of data to be written and issuing a subsequent write request that requires at least one cache line of data to be written
US6055590A (en) * 1996-06-05 2000-04-25 Compaq Computer Corporation Bridge circuit comprising independent transaction buffers with control logic adapted to store overflow data in second buffer when transaction size exceeds the first buffer size
US6035362A (en) * 1996-06-05 2000-03-07 Goodrum; Alan L. Storing data associated with one request while continuing to store data associated with a previous request from the same device
US5987539A (en) * 1996-06-05 1999-11-16 Compaq Computer Corporation Method and apparatus for flushing a bridge device read buffer
US5815675A (en) * 1996-06-13 1998-09-29 Vlsi Technology, Inc. Method and apparatus for direct access to main memory by an I/O bus
US5867673A (en) * 1996-10-07 1999-02-02 Honeywell Inc. Universal operator station module for a distributed process control system
US5838932A (en) * 1996-12-23 1998-11-17 Compaq Computer Corporation Transparent PCI to PCI bridge with dynamic memory and I/O map programming
US6138192A (en) * 1996-12-31 2000-10-24 Compaq Computer Corporation Delivering a request to write or read data before delivering an earlier write request
US5890011A (en) * 1997-01-27 1999-03-30 International Business Machines Corporation Method and system for dynamically translating bus addresses within a computer system
US6047349A (en) * 1997-06-11 2000-04-04 Micron Electronics, Inc. System for communicating through a computer system bus bridge
US5974239A (en) * 1997-06-11 1999-10-26 Micron Electronics, Inc. Data transfer method for a bus device in a computer system by placing first and second addresses corresponding to a bridge and with the bus device respectively on a bus
US6115320A (en) * 1998-02-23 2000-09-05 Integrated Device Technology, Inc. Separate byte control on fully synchronous pipelined SRAM
US6199118B1 (en) * 1998-08-18 2001-03-06 Compaq Computer Corporation System and method for aligning an initial cache line of data read from an input/output device by a central processing unit
US6397295B1 (en) 1999-01-04 2002-05-28 Emc Corporation Cache mechanism for shared resources in a multibus data processing system
US6381684B1 (en) 1999-04-26 2002-04-30 Integrated Device Technology, Inc. Quad data rate RAM
US6742073B1 (en) * 2000-12-26 2004-05-25 Intel Corporation Bus controller technique to control N buses
JP2005128963A (ja) * 2003-10-27 2005-05-19 Toshiba Information Systems (Japan) Corp 記憶制御装置及びdma転送が可能な制御システム
US8966132B2 (en) 2012-11-16 2015-02-24 International Business Machines Corporation Determining a mapping mode for a DMA data transfer
US8984179B1 (en) * 2013-11-15 2015-03-17 International Business Machines Corporation Determining a direct memory access data transfer mode
JP2017091048A (ja) * 2015-11-05 2017-05-25 富士通株式会社 中継装置、中継方法および中継制御プログラム
CN114465966B (zh) * 2022-01-23 2024-05-28 山东云海国创云计算装备产业创新中心有限公司 一种数据包重组控制***和数据包重组方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3469241A (en) * 1966-05-02 1969-09-23 Gen Electric Data processing apparatus providing contiguous addressing for noncontiguous storage
IT1151351B (it) * 1982-01-19 1986-12-17 Italtel Spa Disposizione circuitale atta a realizzare lo scambio di dati tra una coppia di elaboratori operanti secondo il principio master-slave
US4466098A (en) * 1982-06-11 1984-08-14 Siemens Corporation Cross channel circuit for an electronic system having two or more redundant computers
US4695948A (en) * 1985-02-28 1987-09-22 International Business Machines Corporation Bus to bus converter using a RAM for multiple address mapping
US5077656A (en) * 1986-03-20 1991-12-31 Channelnet Corporation CPU channel to control unit extender
DE3788721T2 (de) * 1986-10-17 1994-06-09 Fujitsu Ltd Datenübertragungssystem mit übertragunsdiskriminierungsschaltung.
JPH0724029B2 (ja) * 1988-04-13 1995-03-15 日本電気株式会社 エミュレーション装置
JPH0697437B2 (ja) * 1988-08-30 1994-11-30 日本電気株式会社 バス切替方式
US4964036A (en) * 1988-12-21 1990-10-16 International Business Machines Corporation Channel hardware diagnostic apparatus and method

Also Published As

Publication number Publication date
US5659696A (en) 1997-08-19
JPH05282197A (ja) 1993-10-29

Similar Documents

Publication Publication Date Title
JPH0789340B2 (ja) バス間インターフェースにおいてアドレス・ロケーションの判定を行なう方法及び装置
JP2642027B2 (ja) コンピュータ・システム、アービトレーション方法及びアービトレーション装置
US5644729A (en) Bidirectional data buffer for a bus-to-bus interface unit in a computer system
US5255374A (en) Bus interface logic for computer system having dual bus architecture
JP2988501B2 (ja) パリティエラーを検出するコンピュータシステム及びその動作方法
US5544346A (en) System having a bus interface unit for overriding a normal arbitration scheme after a system resource device has already gained control of a bus
US6202107B1 (en) Host controller interface descriptor fetching unit
US5966728A (en) Computer system and method for snooping date writes to cacheable memory locations in an expansion memory device
JPH05265950A (ja) バス動作の動作速度を制御するようにしたバス・インターフェースを有するコンピュータ・システム
US20030229770A1 (en) Memory hub with internal cache and/or memory access prediction
JPH0628254A (ja) ライトスルーキャッシュおよびパイプラインスヌープサイクルを備えたメモリシステムを有するパーソナルコンピュータ
JPH05241961A (ja) キャッシュ・スヌープ/データ無効化機能を有するコンピュータ・システム
US5809534A (en) Performing a write cycle to memory in a multi-processor system
US6141735A (en) Performing a memory access cycle in a multi-processor computer system