JPH05242015A - コンピュータシステムと、そのシステムメモリと入力/出力デバイス間の転送データを記憶する方法 - Google Patents

コンピュータシステムと、そのシステムメモリと入力/出力デバイス間の転送データを記憶する方法

Info

Publication number
JPH05242015A
JPH05242015A JP4317365A JP31736592A JPH05242015A JP H05242015 A JPH05242015 A JP H05242015A JP 4317365 A JP4317365 A JP 4317365A JP 31736592 A JP31736592 A JP 31736592A JP H05242015 A JPH05242015 A JP H05242015A
Authority
JP
Japan
Prior art keywords
bus
data
memory
input
interface unit
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
JP4317365A
Other languages
English (en)
Inventor
Aldereguia Alfred
アルフレード・アルデレギア
Amini Nader
ナダー・アミニ
Richard Louis Horne
リチャード・ルイス・ホーン
Terence J Lohman
テレンス・ジョセフ・ローマン
Ngokku Toran Kang
カング・ンゴック・トラン
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 JPH05242015A publication Critical patent/JPH05242015A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 異なる速度と異なるデータ転送帯域幅で相互
に通信する装置を補償するためにシステムバスとI/O
バスとの動作を同期化する変換ロジックを設けたバスイ
ンタフェースユニットを提供する。 【構成】 バスインタフェースユニット64に設けた変
換ロジックは、バスインタフェースユニット64がシス
テムバス76に応答しており、かつ所定セットの動作条
件に応答して、システムバスからバスインタフェースユ
ニットを介してI/Oバス32に転送されたデータを一
時的に記憶しているときシステムバスを保持し、またデ
ータがバッファ74からI/Oバスへ完全に転送された
か否かとは無関係にシステムバスからバッファへのデー
タの転送が完了するときシステムバスへの応答を終了す
るよう動作する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータシステムに
おけるバス対バス・インタフェースに関し特に、異なる
速度で、かつ異なるデータ転送帯域幅において相互に通
信するデバイスを補償するためにコンピュータシステム
のバスの動作を同期化するバス対バス・インタフェース
に関する。
【0002】
【従来の技術】一般的にコンピュータシステムにおい
て、特にパーソナルコンピュータシステムにおいては、
データは、例えば中央処理装置(CPU)、メモリデバ
イス、直接メモリアクセス(DMA)制御装置のような
種々のシステムデバイスの間で転送される。さらに、デ
ータは入力/出力(I/O)デバイスのような拡張要素
の間や、これらI/Oデバイスと種々のシステムデバイ
スの間で転送される。I/Oデバイスとシステムデバイ
スとは、それに沿って情報が数個のソースのいずれから
数個の宛先のいずれかまで伝送される一連の導体を備え
るコンピュータバス上を相互に、かつそれらの間で通信
する。システムデバイスとI/Oデバイスの多くはバス
制御装置(即ちコンピュータシステムを制御するデバイ
ス)やバススレーブ(即ちバス制御装置によって制御さ
れる要素)として動作することができる。
【0003】2個以上のバスを有するパーソナルコンピ
ュータシステムが公知である。典型的には、ローカルバ
スが設けられ、そのローカルバスを介してCPUがキャ
ッシュメモリあるいはメモリ制御装置と通信する。そし
て、I/Oバスが設けられ、例えばDMA制御装置のよ
うなシステムバスデバイス、あるいはシステムI/Oデ
バイスがメモリ制御装置を介してシステムメモリと通信
する。システムI/Oバスはバス・インタフェースユニ
ットによって接続されたシステムバスとI/Oバスとを
備える。I/Oデバイスは、I/Oバスにおいて相互に
通信する。I/Oバスはまた典型的には、システムメモ
リのようなシステムバスデバイスとの通信を要求され
る。そのような通信は、バス・インタフェースユニット
を介してI/Oバスとシステムバスの双方にわたって進
行する必要がある。
【0004】二重バスアーキテクチャ・コンピュータシ
ステムにおけるシステムデバイスとI/Oデバイスと、
はしばしば異なる速度と異なるデータ転送帯域幅で相互
に通信する。例えば、システムデバイスは32ビットの
データバス帯域幅においてシステムバスで通信しうる
が、I/Oデバイスは8ビット、16ビットあるいは3
2ビットのデータバス幅において通信しうる。従って、
システムバスとI/Oバスの双方を制御するシステムデ
バイスがより遅いI/Oデバイスから読取ったり、ある
いはそれへ書込む場合に全体システムの性能が支障を受
ける。これは、8ビットI/Oスレーブに対しては16
ビットのトランザクションで、そして16ビットおよび
8ビットのI/Oスレーブに対しては32ビットのトラ
ンザクションで複合化(compound)される。書込みサイ
クルの場合、システムデバイスは、データが遅いI/O
デバイスに書込まれている間システムバスでデータを書
込むに要する以上の長い時間システムバスの制御を持続
する必要がある。読出しサイクルの場合、遅いI/Oデ
バイスはシステムデバイスによってI/Oデバイスが読
み出されうる速さでI/Oバスを介してシステムデバイ
スにデータを提供することができない。
【0005】
【発明が解決しようとする課題】本発明の目的は、異な
る速度でかつ異なるデータ転送帯域幅で相互に通信して
いるデバイスの補償を行うためにシステムバスとI/O
バスの動作を同期化するに要する変換ロジックを設け
た、二重バスアーキテクチャ・コンピュータにおけるバ
スインタフェースユニットを提供することである。
【0006】
【課題を解決するための手段】本発明は、二重アーキテ
クチャ・コンピュータシステムにおけるバスインタフェ
ース用変換ロジックを提供する。変換ロジックは、コン
ピュータシステムにおいてシステムバスとI/Oバスと
の中間に位置するバスインタフェースユニットのハード
ウェアに構築されたアルゴリズムによって実行される。
バスインタフェースユニットにおける変換ロジックは、
システムバスとI/Oバスとの動作を同期化することに
よりコンピュータシステムの性能を向上させる。バスを
同期化することにより、異なる速度で、かつ異なるデー
タ転送帯域幅で相互に通信するシステムバスデバイスと
入力/出力デバイスとを補償する。
【0007】変換ロジックは2つの条件下で動作する。
第1の条件は、速いシステムデバイスがデータを遅いI
/Oデバイスに書込んでいる場合に発生する。システム
デバイスが、ほとんどのI/Oデバイスより速い速度で
システムバスを介してデータを書込むので、遅いI/O
デバイスは、システムデバイスがI/Oデバイスにデー
タを書込む速さでデータを受け取ることができない。こ
のように、本発明は、速いシステムデバイスから遅いI
/Oデバイスに書込まれるデータが一時的に記憶される
バッファを提供する。このように、バッファに記憶され
た(あるいはポスト(post)された)書込みデータはI
/Oバスを介してI/Oデバイスに書込みデータの全て
がまだ書込まれていないとしても後続の動作のためにシ
ステムバスを解放する。
【0008】変換ロジックが動作する第2の条件は、シ
ステムバスを制御しているシステムデバイスがI/Oバ
ス上のスレーブとして作用するI/Oデバイスに向けら
れた読取りあるいは書込みサイクルを開始したい場合、
かつシステムデバイスのデータバス幅がI/Oデバイス
のデータバス幅より大きい場合に発生する。典型的に
は、システムデバイスのデータバス幅が、バスインタフ
ェースユニットのシステムバス側とI/Oバス側との双
方でサポートされる32ビットであり、I/Oデバイス
のデータバス幅は8ビット、16ビットあるいは32ビ
ットである。システムバスを介して、I/Oバス上の8
ビットI/Oデバイスあるいは16ビットI/Oデバイ
スと通信しているシステムデバイスは、システムデバイ
スがシステムバスの制御を放棄しうる前に完全な読取
り、あるいは書込みリクエストをI/Oバスが受け取る
まで待機する必要がある。したがって8ビットI/Oデ
バイスによって読み出されるか、あるいは該デバイスに
書込まれることになっている32ビットのデータバス幅
システムデバイスからのデータは一時的に変換ロジック
内のバッファに記憶される。好適実施例におけるバッフ
ァはデータおよびアドレスの32ビット分を保持する能
力がある。変換ロジックは、システムバスにおいて開始
された単一の32ビットの読取りおよび書込みサイクル
を4個の8ビットあるいは2個の16ビットサイクルに
変換し、あるいは単一の16ビットの読取りおよび書込
みサイクルを2個の8ビットサイクルに変換する手段を
提供し、ポストされた書込みサイクルを、例えばリフレ
ッシュのような時間が問題のバスの作用を阻害すること
なく発生させることができる。
【0009】
【実施例】図1において、全体的に10で示すコンピュ
ータシステムはシステムボード12とプロセッサ複合体
14とを含む。プロセッサ複合体14は、プロセッサ部
分16と、ローカルバスコネクタ22を介してプロセッ
サローカルバス20に接続されたベース部分18とを含
む。プロセッサ部分16は50MHzで動作し、ベース
部分18は40MHzで動作する。
【0010】システムボード12は、インタリーブした
システムメモリ24,26と入力/出力(I/O)デバ
イス28とを含む。メモリ24,26とプロセッサ複合
体14との間の通信はメモリバス30によって扱われ、
I/Oデバイス28とプロセッサ複合体14との間の通
信はI/Oバス32によってなされる。I/Oデバイス
28とメモリ24,26との間の通信はI/Oバス3
2、システムバス76およびメモリバス30によって扱
われる。I/Oバス32はMICRO CHANNEL
(登録商標)コンピュータアーキテクチャに適合すれば
よい。メモリバス30とI/Oバス32とはプロセッサ
複合体のコネクタ34を介してプロセッサ複合体のベー
ス部分18に接続されている。メモリ拡張デバイスのよ
うなI/Oデバイスは、I/Oバス32を介してコンピ
ュータシステム10に接続することができる。システム
ボード12も、通常の動作の間コンピュータシステム1
0によって用いることのできる従来のビデオ回路、タイ
ミング回路、キーボード制御回路および割込み回路(そ
れらはいずれも図示していない)を含んでもよい。
【0011】プロセッサ複合体14のプロセッサ部分1
6は、好適実施例においては商品番号i486としてイ
ンテル社(Intel,Inc.)から市販されている
32ビットのマイクロプロセッサである中央処理装置
(CPU)38を含む。プロセッサ部分16はまた、ス
タテイックランダムアクセスメモリ(SRAM)40、
キャッシュ制御モジュール42、周波数制御モジュール
44、アドレスバッファ46およびデータバッファ48
を含む。ローカルバス20は、データ情報パス50、ア
ドレス情報パス52および制御情報パス54を含む。デ
ータ情報パス50は、CPU 38、SRAM 40お
よびデータバッファ48の間に設けられている。アドレ
ス情報パス52は、CPU 38、キャッシュ制御モジ
ュール42およびアドレスバッファ46の間に設けられ
ている。制御情報パス54は、CPU 38、キャッシ
ュ制御モジュール42、および周波数制御モジュール4
4の間に設けられている。さらに、アドレス情報パス5
2および制御情報パス54はキャッシュ制御モジュール
42とSRAM 40との間に設けられている。
【0012】SRAM 40は、システムメモリ24あ
るいは26のいずれかから、あるいはI/Oデバイス2
8に位置した拡張メモリからのメモリ情報を短時間記憶
することによりキャッシュ機能を提供する。キャッシュ
制御モジュール42は、メモリ24,26のアドレス位
置を記憶するランダムアクセスメモリ(RAM)56を
組み入れている。CPU 38は、SRAM 40にキ
ャッシュされた情報をローカルバス20を介して直接ア
クセスすることができる。周波数制御モジュール44
は、50MHzプロセッサ部分16の動作を40MHz
ベース部分18のそれと同期化し、またバッファ46,
48の動作を制御する。したがって、周波数制御モジュ
ール44は、バッファ46,48によって情報が捕捉さ
れるとき、あるいはこれらのバッファに記憶された情報
が重ね書きされるときを検出する。バッファ46,48
は、メモリ24,26からの2個の書込みが同時にそこ
に記憶されるように構成されている。バッファ46,4
8は、双方向性、即ち、CPU 38によって提供され
る情報やCPUに提供される情報をラッチすることがで
きる。バッファ46,48が双方向性であるので、プロ
セッサ複合体14のプロセッサ部分16は標準的なベー
ス部分18を保ちながら交換あるいはアップグレードす
ることができる。
【0013】ベース部分18は、メモリ制御装置58、
直接メモリアクセス(DMA)制御装置60、中央調停
制御点(CACP)回路62、バスインタフェースユニ
ット64、およびバッファ/エラー修正コード(EC
C)回路66を含む。ベース部分18はまた、ドライバ
回路68、読出し専用メモリ(ROM)70、自己検査
回路72およびバッファ74を含む。システムバス76
は、データ情報パス78、アドレス情報パス80および
制御情報パス82を含む。データ情報パスは、バッファ
74をバスインタフェースユニット64と、バスインタ
フェースユニット64をDMA制御装置60並びにバッ
ファ/ECC回路66と、バッファ/ECC回路66を
システムメモリ24,26に接続する。アドレス情報パ
スと制御情報パスとは、それぞれメモリ制御装置58を
DMA制御装置60およびバスインタフェースユニット
64に、バスインタフェースユニット64をバッファ7
4に接続する。
【0014】メモリ制御装置58は、CPUローカルバ
ス20とシステムバス76の双方に位置し、CPU 3
8、DMA制御装置60あるいは(I/Oデバイス28
の代りに)バスインタフェースユニット64に、メモリ
バス30を介してシステムメモリ24,26へのアクセ
スを提供する。メモリ制御装置58はメモリバス30を
介してシステムメモリサイクルをシステムメモリ24,
26へ開始させる。システムメモリサイクルの間、CP
U 38、DMA制御装置60および(I/Oデバイス
28の代りに)バスインタフェースユニット64のいず
れかはメモリ制御装置58を介してシステムメモリ2
4,26へのアクセスを有する。CPU38は、ローカ
ルバス20、メモリ制御装置58およびメモリバス30
を介してシステムメモリと通信し、一方DMA制御装置
60あるいは(I/Oデバイス28の代りに)バスイン
タフェースユニット64はシステムバス76、メモリ制
御装置58およびメモリバス30を介してシステムメモ
リにアクセスする。
【0015】CPU 38からI/Oバス32への読出
し、あるいは書込みサイクルに対して、アドレス情報は
システムメモリアドレス境界に対してチェックされる。
もしアドレス情報がI/O拡張メモリアドレスあるいは
I/Oポートアドレスに対応するとすれば、メモリ制御
装置58は、I/Oバス32にわたって(バスインタフ
ェースユニット64を介して)I/Oデバイス28によ
りI/OメモリサイクルあるいはI/Oポートサイクル
を開始する。CPUからI/Oメモリサイクルあるいは
I/Oポートサイクルの間、メモリ制御装置58に提供
されたアドレスが、システムバス76からI/Oバス3
2まで、これら2個のバスの中間に位置するバスインタ
フェースユニット64を介して伝送される。アドレスが
対応する拡張メモリを含むI/Oデバイス28がメモリ
アドレスをI/Oバス32から受け取る。DMA制御装
置60とバスインタフェースユニット64とが、システ
ムメモリ24,26と、I/Oデバイス28に組み込ま
れた拡張メモリとの間の情報の交換を制御する。DMA
制御装置60はまた、プロセッサ複合体14の代りに3
種類の機能を提供する。まず、DMA制御装置60は、
DMAチャンネルを構成するために小さいコンピュータ
サブシステムの制御ブロック(SCB)アーキテクチャ
を用いることにより、DMAチャンネルを構成するため
のプログラム化されたI/Oの使用の必要性を回避す
る。第2に、DMA制御装置は、遅いメモリ拡張装置と
典型的に高速のシステムメモリとの間の転送を最適化す
るためのバッファリング機能を提供する。第3に、DM
A制御装置60は、8チャンネル、32ビットの直接シ
ステムメモリアクセス機能を提供する。直接システムメ
モリアクセス機能を提供する場合、DMA制御装置60
は2モードのいずれかで機能しうる。第1のモードにお
いて、DMA制御装置60は、それが機能的にCPU
38に対するスレーブであるプログラム化されたI/O
モードにおいて機能する。第2のモードにおいて、DM
A制御装置60自体は、それがI/Oバス32を調停
し、かつ制御するシステムバスマスタとして機能する。
この第2モードの間、DMA制御装置60は先入れ先出
し(FIFO)レジスタ回路を用いている。
【0016】CACP回路62は、DMA制御装置、I
/Oデバイス制御装置および(もしI/Oデバイスをア
クセスするのであれば)CPUのアービタとして機能す
る。CACP回路62は、DMA制御装置60、メモリ
制御装置58並びにI/Oデバイスから調停制御信号を
受け取り、どのデバイスがI/Oバス32を制御しうる
か、および特定のデバイスがI/Oバスの制御し続ける
時間の長さを決定する。
【0017】ドライバ回路68は、メモリ制御装置58
からシステムメモリ24,26へ制御情報およびアドレ
ス情報を提供する。ドライバ回路68は、システムメモ
リ24,26を構築するために使用されるシングルイン
ライン・メモリモジュール(SIMM)の数に基きこの
情報をドライブする。このように、ドライバ回路68
は、システムメモリ24,26のサイズに基きこれらの
システムメモリ24,26に提供される制御情報とアド
レス情報との信号強度を変える。
【0018】バッファ回路74は、プロセッサ複合体の
ベース部分18とシステムボード12との間の増幅と分
離とを行う。バッファ回路74は、I/Oバス24とバ
スインタフェースユニット64との間の境界情報をリア
ルタイムで捕捉できるようにするバッファを用いてい
る。従って、もしコンピュータシステム10が故障する
と、バッファ回路74は、コンピュータの補修作業員に
よりアクセスされて、システムが故障していたときコネ
クタ34に存在していた情報を決定することができる。
【0019】ROM70は、パワーアップの際、拡張メ
モリからのデータをシステムにまず位置させることによ
りシステム10を形成させる。ベース部分18内の複数
の位置に接続された自己検査回路72が複数の自己検査
の特徴を提供する。自己検査回路72はバッファ回路7
4にアクセスして、故障状態が存在しているか否か決定
し、また、システム10のパワーアップ時ベース部分1
8のその他の主要な要素を検査してシステムが動作しう
る状態になっているか決定する。
【0020】図2には、図1に示すシステムのバスイン
タフェースユニット64の概略ブロック図が示されてい
る。バスインタフェースユニット64は、システムバス
76とI/Oバス32との間で双方向の高速インタフェ
ースを提供することにより本発明実行のための基盤を提
供する。
【0021】バスインタフェースユニット64は、シス
テムバスドライバ/レシーバ回路102、I/Oバスド
ライバ/レシーバ回路104、およびそれらの間で電気
的に接続された複数の制御ロジック回路を含んでいる。
ドライバ/レシーバ回路102は、システムバス76か
ら受け取った信号を適当なバスインタフェースユニット
制御ロジック回路まで導き、かつバスインタフェースユ
ニット制御ロジック回路から信号を受け取り、その信号
をシステムバス76まで導くステアリングロジックを含
む。I/Oバスドライバ/レシーバ回路104は、I/
Oバス32から受け取った信号を適当なバスインタフェ
ースユニット制御ロジック回路まで導き、かつバスイン
タフェースユニット制御ロジック回路から信号を受け取
り、その信号をI/Oバス32まで導くステアリングロ
ジックを含む。
【0022】バスインタフェースユニット制御ロジック
回路はシステムバスからI/Oバスへの変換ロジック1
06、I/Oバスからシステムバスへの変換ロジック1
08、メモリアドレス比較ロジック110、エラー回復
支援ロジック112、およびキャッシュ・スヌーピング
(snooping)ロジック114を含む。プログラ
ム化されたI/O回路116はまた、システムドライバ
/レシーバ回路102に電気的に結合されている。
【0023】システムバスからI/Oバスへの変換ロジ
ック106は、DMA制御装置60あるいは(CPU
38の代りの)メモリ制御装置58が、システムバスと
して作用してI/Oバス32にアクセスすることにより
I/Oバス上でスレーブデバイスとして作用するI/O
デバイス28と通信するに要する手段を提供する。変換
ロジック106は、システムバス76の制御ライン、ア
ドレスラインおよびデータラインをI/Oバス32上の
同様のラインに変換する。殆んどの制御信号および全て
のアドレス信号はシステムバス76からI/Oバス32
へ流れ、一方データ情報の流れは双方向性である。シス
テムバススレーブとして作用するロジックは、システム
バス76をモニタし、I/Oバス32に対して予定して
いるサイクルを検出する。そのようなサイクルを検出す
ると、システムバススレーブは、システムバス上の信号
のタイミングをI/Oバスタイミングに変換し、I/O
バス32上でサイクルを開始し、サイクルが完了するの
を待機し、システムバス76でのサイクルを終了する。
【0024】I/Oバスからシステムバスへの変換ロジ
ック108は、システムバスアドレス発生回路118、
I/Oバス予期アドレス発生回路120、システムバス
制御装置インタフェース122、FIFOバッファ12
4、I/Oバススレーブインタフェース126およびバ
ス対バス・ペーシング制御ロジック128を含む。シス
テムバス制御装置インタフェース122は、40MHz
で動作する高性能の32ビット(4バイト)i486バ
ーストプロトコルを支援する。バーストモードにおいて
4,8および16バイトのデータ転送と、非バーストモ
ードにおいて1から4バイトまでのデータ転送とが行わ
れる。I/Oバススレーブインタフェース126は、シ
ステムバス76のスレーブデバイス向けの動作について
I/Oバス32をモニタし、I/Oバス32向けの動作
を無視する。I/Oバススレーブインタフェース126
がピックアップした全てのサイクルは、FIFOバッフ
ァ124およびシステムバス制御装置インタフェース1
22まで通される。
【0025】I/Oバスからシステムバスへの変換ロジ
ック108はI/Oデバイス28が、システムバス76
をアクセスすることによりシステムメモリ24,26か
ら読み出したり、あるいはそれらへ書込むI/Oバス制
御装置として作用するに要する手段を提供する。これら
の動作のいずれかにおいて、I/OデバイスがI/Oバ
スを制御する。I/Oデバイスの速度で動作している非
同期I/Oバスインタフェース126により、バスイン
タフェースユニット64は、メモリアドレスを復号化す
るため、かつ読取りあるいは書込みサイクルがシステム
メモリ24あるいは26用のものであることを決定する
ため、I/Oバス32上のI/Oデバイス制御装置に対
するスレーブとして作用しうるようにされる。同時に、
システムバス制御装置インタフェース122は、バスイ
ンタフェースユニット64がシステムバス74での制御
装置として作用しうるようにする。メモリ制御装置58
(図2)は、バスインタフェースユニット64に対する
スレーブとして作用し、インタフェース64にシステム
メモリから読み出したデータを提供するか、あるいはデ
ータをシステムメモリに書込む。システムメモリからの
読取り、あるいはそこへの書込みは、FIFOバッファ
124を介して達成される。そのFIFOバッファ12
4のブロック図を図3に示す。
【0026】図3に示すように、FIFOバッファ12
4は、二重ポートを備える非同期性の双方向記憶装置で
あって、システムと、I/Oバス76および32との間
でデータ情報を一時的に記憶する。FIFOバッファ1
24は、4個の16バイトバッファ125A〜125D
と、FIFO制御回路123とを有する。4個のバッフ
ァ125A〜125Dは、データをI/Oバス制御装置
およびシステムバススレーブへ、かつそこからバッファ
することによりI/Oバス32とシステムバス76とを
同時に動作させることができるようにする。FIFOバ
ッファ124は、2個の32バイトのバッファ(125
A/125Bと125C/125D)として物理的に構
成されている。システムバス制御装置インタフェース1
22とI/Oバススレーブインタフェース126とはそ
れぞれ一方の32バイトのバッファを制御し、一方他方
の32バイトのバッファはそれらに対してトランスペア
レントに動作する。32バイトのバッファの双方共読取
り、および書込み動作に使用される。
【0027】各FIFO 124A,125B,125
C,125Dは、各FIFOに物理的に関連している
か、あるいは論理的に関連しているアドレスレジスタ・
セクションを有する。データがI/Oバス32からFI
FO 125Aまで転送されるにつれて、アドレスが隣
接しているとして、16バイトのバッファが16バイト
のデータで一杯になるまでデータは累積される。もし非
隣接アドレスがアドレス動作により検出されるとすれ
ば、FIFO 125Aは記憶されたデータをFIFO
125Cまで転送し、同時にFIFO 125Bは新
しい非隣接アドレスからこのデータを受け取り始める。
FIFO 125Bは、16バイトのデータで一杯とな
るか、あるいは別の非隣接アドレスが検出されるまで丁
度FIFO125Aのように継続する。次に、FIFO
125Bは記憶されたデータをFIFO 125Dま
で転送し、FIFO 125Aは再びデータを記憶し始
める。このように、非隣接アドレスデータの4個の16
バイトブロックまで記憶することができる。
【0028】さらに、2個の32バイトのバッファを並
列に置くことにより、それらの間でデータの読取り、書
込みがトグルでき、そのため基本的に連続した読取り、
あるいは書込み機能を提供する。
【0029】さらに、32バイトのバッファを、他のI
/Oバス32あるいはシステムバス26に結合された2
個の16バイトのバッファセクションに分割することに
より、クロッキングして記憶レジスタに出し入れする信
号に対する容量性ローディングに関連したFIFOの性
能に対するインパクトを最小にして記憶バッファの数を
増すことができる。このことが可能なのは、(並列に)
追加した2個のバッファ毎に容量性ローディングの半分
のみを各バスのクロック信号のローディングに追加する
からである。
【0030】さらに、各レッグ(leg)において2個の
16バイトのバッファを直列に置くことにより、例えば
読取り動作において16バイトのバッファの一方がデー
タで一杯になると、他の平行のレッグがデータを累積し
ている間にデータをシリーズに他方の16バイトのバッ
ファまで転送できる。従って、データの累積、あるいは
一方のバスから他方のバスまでのデータの転送のいずれ
においても時間の損失がない。
【0031】FIFO 124の動作を制御するための
ロジックはFIFO制御回路123によって供給され
る。
【0032】特定のI/Oデバイス28は、1,2ある
いは4バイト(即ち、8,16あるいは32ビット)の
いずれかの帯域幅においてI/Oバスを介してシステム
メモリ24または26へ書込むことができる。I/Oデ
バイス28によるシステムメモリへの書込みの間、書込
みデータの最初の転送分はまずFIFOバッファ125
Aあるいは125Bに記憶される。I/Oバス予期アド
レス発生回路120は次に予期される、即ち隣接するア
ドレスを計算する。次の隣接するアドレスは後続のI/
Oアドレスに対してチェックされ、後続の転送分が隣接
しているか否か確認する。もし隣接しているとすれば、
第2のバイトの書込みデータが同じFIFOバッファ1
25Aあるいは125Bまで送られる。FIFOはI/
Oバス32から毎秒40メガバイトまでの非同期速度で
データを受け取る。
【0033】このプロセスは、バッファ125Aあるい
は125Bのいずれかが16バイトの情報パケットで一
杯になるか、あるいは非隣接アドレスが検出されるまで
継続する。次のクロックサイクルにおいて、バッファ1
25Aが一杯であると想定すれば、バッファ125Aの
データはバッファ125Aまで転送される。同様に、バ
ッファ125Bが一杯である場合、その中味の全ては単
一のクロックサイクルでバッファ125Dまで転送され
る。次に、バッファ125Cおよび125Dに記憶され
たデータは、システムバスの動作速度でi486バース
ト転送を介してシステムメモリに書込まれる。I/Oデ
バイスによるシステムメモリへの書込みの間FIFOバ
ッファ124の動作はこのように連続的であり、バッフ
ァ125Aと125Bとの間で交番し、一方がシステム
メモリに書込むべきデータを受け取っている間にバッフ
ァ125Aと125Bの各々は、それぞれデータを隣接
するバッファ125Cあるいは125Dに移し空にされ
る。次に、FIFOバッファ124は、(i)メモリに
書込まれる次にありうるバイトのデータのアドレスを予
測し、(ii)システムバス76を介するFIFOバッフ
ァからシステムメモリまでの書込みデータの最大速度に
適合することによりシステムメモリへのデータ書込み速
度を最適化する。
【0034】システムメモリからI/Oデバイス28へ
のデータの読取りの間、FIFOバッファ124は差動
的に動作する。システムバスアドレス発生回路118
は、初期の読取りアドレスを使用して読取りデータの後
続の読取りアドレスを発生させ、バッファ125Cまた
は125Dにおいてデータを累積する。システムバスが
16バイトの帯域幅での転送を支援するので、システム
制御インタフェース122は16バイトパケットの隣接
データを先取りし、I/Oバス32が実際に後続のアド
レスを提供しなくともバッファ125Cまたは125D
にデータを記憶することにより転送間の待ち時間を低減
させる。バッファ125Cが先取りしたデータで一杯と
なると、その中味を1クロックサイクルでバッファ12
5Aへ転送する。同様に、バッファ125Dは一杯とな
るとバッファ125Bにデータを移し空となる。次に、
バッファ125Aおよび125B内のデータは、1,2
または4バイトの帯域幅で特定のI/Oデバイス制御装
置により読取ることができる。このように、システムバ
スアドレス発生回路118は、I/O制御装置によりデ
ータの先取りを停止するよう命令されるまで増分カウン
タとして機能する。
【0035】バス対バス・ペーシング制御ロジック12
8は、高速I/Oデバイスに対してシステムメモリへの
より速いアクセスを生じる。I/OデバイスとCPUと
の間のメモリ制御装置58へのアクセスを交番するより
もむしろ、多数回のサイクルを要するより速いデバイス
によるデータの転送の間、I/Oバス32を制御してい
るI/Oデバイスにシステムメモリへの割込みのないア
クセスを許容することにより、バス対バス・ペーシング
制御ロジック128はシステム10の通常のメモリ制御
装置調停スキームをオーバライドする。このように、例
えばCPUのようなローカルデバイスが、I/Oデバイ
スによる多数回サイクル伝送の間メモリバスの制御に対
して保留のリクエストを有しているとしても、バス対バ
ス・ペーシング制御ロジック128は、I/Oデバイス
に対してメモリバスを引続き制御することを許容する。
【0036】プログラム化I/O回路116は、バスイ
ンタフェースユニット64内でプログラム可能であるレ
ジスタの全てを包含しているバスインタフェースユニッ
ト64の一部である。レジスタは、特定のレジスタが活
動状態か非活動状態かを決定するのに関連したビットを
有している。とりわけ、これらのレジスタは、バスイン
タフェースユニット64が応答するシステムメモリおよ
び拡張メモリアドレス範囲、キャシュ可能か、あるいは
キャシュ不可能かのいずれかである拡張メモリアドレ
ス、システムメモリあるいはキャシュメモリ範囲、およ
びパリティあるいはエラーチェックがバスインタフェー
スユニットにより支援されているか否かを定義する。し
たがって、プログラム化I/O回路116はバスインタ
フェースユニット64に対して、それが位置している環
境や、それが形成されているオプションを識別する。プ
ログラム化I/O回路116におけるレジスタは、I/
Oバス32を介して直接プログラム化できない。したが
って、システム10をプログラムするために、ユーザ
は、CPUレベルでプログラム化I/O回路116へシ
ステムバスを介して通信しうるI/Oデバイスへのアク
セスを有する必要がある。
【0037】メモリアドレス比較ロジック110は、メ
モリアドレスがシステムメモリに対応するか、あるいは
I/Oバス32に結合されたI/Oデバイス28に位置
している拡張メモリに対応するか否かを決定する。シス
テムメモリ並びに拡張メモリはアドレスの非隣接ブロッ
クに存在しうるので、メモリアドレス比較ロジック11
0は、プログラム化I/O回路116のレジスタからの
境界情報をロードされた複数の比較器を含み、いずれの
境界がいずれのメモリに対応するかを指示する。メモリ
アドレス比較ロジックにより特定のメモリアドレスが境
界情報と比較された後、バスインタフェースユニットは
そのように再活動状態(react)となる。例えば、もし
I/Oバス32を制御しているI/Oデバイス32が拡
張メモリからデータを読み出したり、あるいはそこへ書
込んでいるとすれば、バスインタフェース回路はそのア
ドレスをメモリ制御装置58へ通す必要はなく、そのた
め時間とメモリ帯域幅とを節約する。
【0038】エラー回復支援ロジック116は、たとえ
データパリティエラーが検出されたとしてもシステム1
0が動作を続行できるようにする。I/Oデバイス28
のシステムメモリ24または26へのいずれかの読取
り、あるいは書込みアクセス時データのパリティがチェ
ックされる。支援ロジック112は、プログラム化I/
O回路112のレジスタと対活し、検出されたパリティ
エラーのアドレスと時間とを捕捉する。次いで、このレ
ジスタの中味は、適当なシステムソフトウェアにより活
用することができる。例えば、CPU 38を高レベル
割込みに対してプログラム化して、パリティエラーが検
出されるといつでもレジスタからアドレスを引き出すこ
とができる。その場合、CPUは、システムソフトウェ
アの命令に基き、システム動作を継続するか、あるいは
パリティエラーの識別されたソースの動作を単に終了さ
せるべきか判断しうる。
【0039】キャッシュ・スヌーピングロジック114
は、I/Oバス32にI/Oデバイスを位置させること
により拡張メモリへのいずれかの書込みにつきバスイン
タフェースユニット64がI/Oバス32をモニタする
ことができるようにする。スヌーピングロジックはま
ず、拡張メモリへの書込みが、SRAM 40において
キャッシュ可能である拡張メモリにおいて発生したかを
まず決定する。もしそれがキャッシュ可能の拡張メモリ
でないとすれば、確認されたデータがキャッシュされる
危険性はない。しかしながら、もし、肯定的な比較結果
が、書込みがキャッシュ可能拡張メモリにおいて発生し
たことを示すとすれば、システムバス76にわたってキ
ャッシュ無効サイクルが開始される。このようにCPU
は、SRAM 40における対応するアドレスを無効に
するように命令される。キャッシュ・スヌーピングロジ
ック114は、肯定的比較結果のアドレスを記憶する手
段を提供する。そのため、I/Oバスのスヌーピングが
最初の肯定的比較結果の検出の直後に続行し、それによ
りI/Oバス32の連続的なモニタ作業を許容する。
【0040】本発明は一般的には前述したバスインタフ
ェースユニット64に関し、特に、コンピュータシステ
ム10においてシステムバス76と入力/出力バス32
の中間に位置するバスインタフェースユニット64内に
含まれたシステムバスからI/Oバスへの変換ロジック
106に関する。変換ロジック106は、バスインタフ
ェースユニット64のハードウェアに構築されたアルゴ
リズムによって実行される。バスインタフェースユニッ
ト64の変換ロジック106は、システムバス76とI
/Oバス32の動作を同期化する。バス32とバス76
の同期化により、異なる速度でかつ異なるデータ転送帯
域幅で相互に通信しているシステムバスデバイスと入力
/出力デバイスとを補償する。
【0041】変換ロジック106は、システムの重要な
プロセスを阻害することなく2つのサイクル条件を最適
化し、かつ組み合わせることによりシステムバス76か
らI/Oバス32への転送性能を向上させる。第1の条
件は、速いシステムデバイスがデータを遅いI/Oデバ
イス28に書込んでいる場合に発生する。(CPU38
の代りの)メモリ制御装置58のようなシステムデバイ
スが、I/Oデバイスがデータを受け取ることができな
い以上の速い速度でシステムバス76にわたりデータを
書込む。このように、本発明は、速いシステムデバイス
から遅いI/Oデバイスへ書込まれたデータを一時的に
記憶することができるバッファ、並びにシステムバスサ
イクルを終了するロジックとを提供する。このように、
バッファにポストされた書込みデータは、たとえ書込み
データの全てがまだI/Oデバイス28に書込まれてい
ない場合でもシステムバス76を後続の動作に対して解
放する。第1の条件に応答した変換ロジック106のこ
の動作を以下ポストされた書込みサイクルと称すること
にする。
【0042】変換ロジック106が動作する第2の条件
は、(CPU 38の代りの)メモリ制御装置58のよ
うなシステムデバイスが、システムバス76を制御し、
I/Oバス32上でスレーブとして作用するI/Oデバ
イス28向けの読取りあるいは書込みサイクルを開始し
たく、かつシステムデバイスのデータバス幅がI/Oデ
バイス28のデータバス幅より大きい場合に発生する。
(典型的には、システムデバイスのデータバス幅は32
ビットで、これはバスインタフェースユニット64のシ
ステムバス側およびI/Oバス側の双方においてサポー
トされ、I/Oデバイスのデータバス幅は8ビット、1
6ビット、あるいは32ビットである。)8ビットスレ
ーブに対する16ビットのアクセスあるいは8ビットあ
るいは16ビットのI/Oスレーブに対する32ビット
のアクセスの場合、データバス幅が不適合の結果、シス
テムバス76を介してI/Oバス上の8ビットあるいは
16ビットI/Oデバイス32と通信しているメモリ制
御装置58は、該メモリ制御装置58がシステムバス7
6の制御を放棄しうる前にI/Oデバイスが完全な読取
り、あるいは書込みリクエストを受け取るのを待機する
必要がある。CPUは32ビットデータバス幅でシステ
ムバス76を介してデータを転送することができるの
で、もしデータが8ビットのI/Oデバイスから読み出
すか、あるいはそこへ書込むことになっているとすれ
ば、32ビットの読取りあるいは書込みデータは変換ロ
ジック106内のバッファ(図示せず)に一時的に記憶
される。好適実施例におけるバッファは、32ビットの
データやアドレスを保持する容量を有している。変換ロ
ジック106は、システムバス76上に開始された単一
の32ビットの読取りおよび書込みサイクルを、I/O
デバイス28によって扱いうる4個の8ビットサイクル
あるいは2個の16ビットサイクルに変換する手段を提
供する。第2の条件に応答した変換ロジック106のこ
の動作を以下変換サイクルと称することにする。
【0043】変換ロジック106は、調停サイクルT
ARBと許可サイクルTGNT(図4参照)との間で交番する
CACP回路62の動作に影響を与える。調停サイクル
ARBの間、CACP回路62はI/Oデバイス28と
CPU 38との間で調停し、I/Oデバイス28とC
PU 38のいずれにI/Oバス32の制御を許可すべ
きか決定する。許可サイクルTGNTの間、CACP回路
62は、I/Oバス32の制御を許可し、前記システム
バス28の制御をI/Oデバイス28あるいはCPU
38の一方まで拡張する。ポストされた書込みサイクル
と変換サイクルの双方におけるデータのバッファリング
によりCACP回路62が、一連のI/Oサイクルの中
間でI/Oバス32を新しいI/Oデバイスに許可する
のを阻止する。
【0044】変換サイクルとポストされた書込みサイク
ルの動作を以下詳細に説明する。図5はバスインタフェ
ースユニット64における変換ロジック106による変
換サイクルの実行の結果のタイミング図を示す。図5の
タイミング図は、(CPUの代りの)メモリ制御装置5
8による8ビットI/Oデバイス28への32ビットの
読取り、あるいは書込み転送に関する。勿論、本発明の
原理は16ビットのI/Oデバイスにも適用される。図
5の上の線に示すように、全体の転送は以下のように進
行する。コンピュータシステム10において、CPU
38がI/Oデバイスへ読取りあるいは書込みサイクル
を開始するとき、CPUは周波数制御モジュール44、
メモリ制御装置58およびバスインタフェースユニット
64を介して通信する必要がある。周波数制御モジュー
ル44とメモリ制御装置58とは、読取りあるいは書込
みサイクルにおいて少なくとも1クロックサイクル(そ
れぞれ、図5におけるTFCMおよびTMC)の遅延を発生
させる。これらの遅延はまた、転送の終りでの遅延T
EDTと共にサイクルの終りにおいて発生し、サイクルに
対してさらに1あるいは2クロック時間を付加する。読
取りあるいは書込みサイクルの開始と終了時におけるこ
れらの遅延の中間において、バスインタフェースユニッ
ト64の変換ロジック106は、メモリ制御装置58か
らの32ビットの読取り、あるいは書込みデータを4個
のバック・ツー・バックI/O読取り、あるいは書込み
サイクル(TI/O)に変換する。
【0045】そのためバスインタフェースユニット64
の変換ロジック106は、CPU38の代りに変換サイ
クルを実行する。このように、CPU 38は、それぞ
れTFCMおよびTMCの遅延を伴った4個の8ビットのデ
ータ転送サイクルを実行する必要がない。その結果、図
5の下の線に示すように、CACP回路62が許可モー
ドにある間であって他のアクティビティがI/Oバス3
2で起こりえない間の時間(TGNT)が減少する。もし
CPU 38がそれ自身の変換サイクルを実行する必要
があるとすれば、各TI/O時間の後TFCMおよびTMCの遅
延があり、そのためCPU 38がバスを制御しなけれ
ばならない時間を増加させる。
【0046】I/Oバス仕様においては、I/Oスレー
ブは、それらがI/Oデバイスを遅延させてもよい時間
の長さが制限されている。これは、ダイナミックシステ
ムメモリのリフレッシュのようなI/Oバスあるいはシ
ステムバスに対する、時間が重要なプロセスを阻害させ
ないためである。典型的には、好適実施例においては、
3.5マイクロ秒がI/Oスレーブが読取り、あるいは
書込みサイクルを遅延させることが許容される最大の時
間(TI/O)である。これらのサイクルの4つをバック
・ツー・バックでバッファリングするには大体14マイ
クロ秒を要する。CACP回路62による調停は遅延時
間TFCMとTMCとの間に発生する。調停の間DMA制御
装置60はシステムメモリ24,26をリフレッシュす
ることができる。好適実施例においては、システムメモ
リ24,26は15.6マイクロ秒のリフレッシュ間隔
を有している。もしリフレッシュが先のリフレッシュの
3回のリフレッシュ間隔(46.3マイクロ秒)内に発
生しないとすれば、システムのタイムアウトとダイナミ
ックRAMメモリのロスが発生する。しかしながら、い
つ先のリフレッシュが行われたか不明のため、デバイス
は、最大2回のリフレッシュ間隔(31.2マイクロ
秒)に対してI/Oバス32を安全に所有できる。した
がって、変換サイクルによる後続の調停の期間と期間の
中間の最大14マイクロ秒の時間はリフレッシュ動作に
悪影響を与えない。
【0047】ポストされた書込みサイクルに関しては、
変換ロジック106におけるバッファはまた、I/Oデ
バイス28に書込まれる前に32ビットの書込みデータ
をバッファする手段を提供する。そのような動作によ
り、例えばCPUメモリサイクルあるいはキャッシュサ
イクルのようなI/Oバス32に関係しないアクティビ
ティに対してシステムバスを解放する。しかしながら、
次のCPU動作がI/Oデバイス28に対する別の書込
みであるとすれば、ポストされた書込みサイクルは時間
の節約をも提供する。図6はCPU 38によるI/O
デバイス28への一連の書込み動作の結果のタイミング
図を示す。図6の上の線で示すように、書込み転送は、
周波数制御モジュール44によって導入された遅延(T
FCM)およびメモリ制御装置58によって導入された遅
延(TMC)によって生じた遅延TFC MおよびTMCを伴っ
て開始する。TI/O1は、変換ロジック106においてポ
スト(バッファ)されたデータであってI/Oバス32
を介してのCPU 38からI/Oデバイス28へのデ
ータの最初の書込みサイクルを表す。TI/O2はI/Oバ
ス32を介しての書込みデータの第2の書込みサイクル
を表す。TRは、I/Oバス32での書込みアクティビ
ティの完了時にCPUに提供される作動可能信号であ
る。
【0048】最初の書込みサイクルデータがポストされ
ているので、TR作動可能信号はポスティング時直ちに
CPUに提供しうる。このように、周波数制御モジュー
ル44とメモリ制御装置58とを介するCPU通信に固
有の遅延TFCMとTMCとは、I/Oバス32上で書込み
サイクルが完了すると同時にシステムバス76において
発生しうる。第2の書込みサイクルTI/O2は、最初の書
込みサイクルTI/O1の直後I/Oバスを進行しうる。も
し最初の書込みサイクルデータがポストされていないと
すれば、作動可能信号TR、および遅延TFCMおよびTMC
に対して要する時間は、第1の書込みサイクルTI/O1
第2の書込みサイクルTI/O2の中間で発生しなければな
らない。この時間は、図6の上の線で示すように最初の
書込みサイクルTI/O1の下でマスクされておらず、CP
UからI/Oデバイスへの後続の書込みサイクルを完了
させるにはより長い時間がかかる。さらに、TI/O1とT
I/ O2とは、図7の条件によって定義されるような変換サ
イクルでありうる。
【0049】本発明の好適実施例においてはポストされ
た書込みサイクルと変換サイクルとは同時に起こりう
る。変換ロジック106は、変換動作およびポストされ
た書込み動作の双方に対してバッファとして使用され
る。しかしながら、図7に列挙した条件は、システムタ
イムアウトを発生させないためにバッファされたサイク
ルの数に課する必要がある。したがってリフレッシュサ
イクルはCACP調停モードの間にのみシステムメモリ
の要求により発生する。そして、CACPがリフレッシ
ュサイクルを実行するよう要求される直前にI/Oデバ
イス28あるいはCPU 38がバスの制御を獲得しう
るので、一連の調停モードの間の時間は31.2マイク
ロ秒を上回ってはならない。図5および図6に示すよう
に、I/Oバスのアクティビティが連続しており、初期
接続手順の遅延TFCMおよびTMCによって割り込まれな
いのでCACP回路62はバッファされたデータの後続
のI/Oサイクルの中間では調停モードへは入らない。
したがって、バッファされた3.5マイクロ秒のI/O
サイクルの数は、一連の調停サイクルの中間で31.2
マイクロ秒が経過しないよう保証するために制限する必
要がある。
【0050】ポストされた書込み/変換サイクル(T
FCM,TMC)が始まる時に発生する初期接続手続の遅延
は約0.2マイクロ秒である。最大6個のI/Oサイク
ルをバッファリングすることにより、図7に示す条件下
では、CACP調停サイクルは少なくとも[(6×3.
5マイクロ秒)+(0.2マイクロ秒)=21.2マイ
クロ秒]毎に発生する。そのように6個のバッファされ
たI/Oサイクルに制限したことにより、最後のI/O
サイクルの終りと、システムメモリをリフレッシュでき
なかったことによりシステムタイムアウトの発生する時
間との間に最小10.0マイクロ秒(31.2マイクロ
秒−21.2マイクロ秒)が許容される。この最小1
0.0マイクロ秒はDMA制御装置が調停モードへ入
り、システムバスの制御を獲得し、リフレッシュサイク
ルを開始するに十分な時間を提供する。
【0051】
【発明の効果】本発明は、以上説明したように構成され
ているので、バスインタフェースユニットにおける変換
ロジックによりステムバスとI/Oバスとの動作が同期
化されることにより、異なる速度でかつ異なるデータ転
送帯域幅で相互に通信するシステムバスデバイスと入力
/出力デバイスとを補償し、コンピュータシステムの性
能を向上させることができる。
【図面の簡単な説明】
【図1】本発明の原理に従って構成されたバスインタフ
ェースユニットを組み入れたコンピュータシステムの概
略ブロック図。
【図2】図1に示すコンピュータシステムのバスインタ
フェースユニットの概略ブロック図。
【図3】図2に示すバスインタフェースユニットのFI
FOバッファの概略ブロック図。
【図4】図1のCACP回路の動作サイクルを示すタイ
ミング図。
【図5】図2に示す変換ロジックの動作の結果のタイミ
ング図。
【図6】図2に示す変換ロジックの動作の結果のタイミ
ング図。
【図7】サイクルをポストする条件を列挙した図。
フロントページの続き (72)発明者 ナダー・アミニ アメリカ合衆国33434、フロリダ州 ボ カ・ラトン、ノース・ウエスト・サーティ ース・ストリート 2878番地 (72)発明者 リチャード・ルイス・ホーン アメリカ合衆国33437、フロリダ州 ボー イントン・ビーチ、シダー・レイク・ロー ド 5289番地、アパートメント・ナンバー 8−23 (72)発明者 テレンス・ジョセフ・ローマン アメリカ合衆国33486、フロリダ州 ボ カ・ラトン、サウスウエスト・フィフス・ ストリート 1069番地 (72)発明者 カング・ンゴック・トラン アメリカ合衆国33486、フロリダ州 ボ カ・ラトン、ノース・ウエスト・サーティ ーンス・ストリート 624番地、ナンバー 34

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 システムメモリと、 前記システムメモリへのアクセスを制御するメモリ制御
    装置であって、メモリバスによって前記システムメモリ
    と接続されているメモリ制御装置と、 前記メモリ制御装置に電気的に接続され、前記メモリバ
    スを介して前記システムメモリからデータを読取った
    り、そこへデータを書込むことのできる中央処理装置
    と、 システムバスによって前記メモリ制御装置に電気的に接
    続され、かつ入力/出力バスによって入力/出力デバイ
    スに電気的に接続されているバスインタフェースユニッ
    トとを備え、 前記バスインタフェースユニットは、当該バスインタフ
    ェースユニットが前記システムバスに応答しており、か
    つ所定セットの動作条件に応答して、前記システムバス
    から前記バスインタフェースユニットを介して前記入力
    /出力バスに転送されたデータを一時的に記憶している
    とき前記システムバスを保持する変換ロジックであっ
    て、データがバッファから前記入力/出力バスへ完全に
    転送されたか否かとは無関係に前記システムバスから前
    記バッファへのデータの転送が完了するとき前記システ
    ムバスへの応答を終了する変換ロジックを含むことを特
    徴とするコンピュータシステム。
  2. 【請求項2】 前記変換ロジックが、前記バスインタフ
    ェースユニットのハードウェアに組み込まれたアルゴリ
    ズムによって実行されることを特徴とする請求項1に記
    載のコンピュータシステム。
  3. 【請求項3】 前記所定のセットの動作条件の中の1つ
    の条件は、前記中央処理装置の代りに前記メモリ制御装
    置が前記入力/出力デバイスにデータを書込むとき発生
    することを特徴とする請求項1に記載のコンピュータシ
    ステム。
  4. 【請求項4】 前記所定のセットの動作条件の中の1つ
    の条件は、前記中央処理装置の代りの前記メモリ制御装
    置が、前記入力/出力バスのスレーブとして作用する前
    記入力/出力デバイスに向けられた読取り、あるいは書
    込みサイクルを開始し、かつ前記メモリ制御装置のデー
    タバス幅が前記入力/出力デバイスの対応するデータバ
    ス幅より大きいときに発生することを特徴とする請求項
    1に記載のコンピュータシステム。
  5. 【請求項5】 コンピュータシステムにおいてシステム
    メモリと入力/出力デバイスとの間で転送されたデータ
    を記憶する方法において、 システムメモリと、メモリバスにより前記システムメモ
    リに接続されかつ前記システムメモリへのアクセスを制
    御するメモリ制御装置とを設けるステップと、 前記メモリ制御装置に電気的に接続され、前記メモリバ
    スを介して前記システムメモリからデータを読取り、か
    つそこへデータを書込むことのできる中央処理装置を設
    けるステップと、 システムバスにより前記メモリ制御装置に電気的に接続
    され、かつ入力/出力バスにより前記入力/出力デバイ
    スに電気的に接続されたバスインタフェースユニットを
    設けるステップと、 前記バスインタフェースユニットが、それが前記システ
    ムバスに応答しているとき前記システムバスを保持する
    ステップと、 所定の一連の動作条件に応答して、前記バスインタフェ
    ースユニットのバッファに、前記システムバスから前記
    バスインタフェースユニットを介して前記入力/出力バ
    スに転送されたデータを記憶するステップと、 データが前記バッファから前記入力/出力バスへ完全に
    転送されたか否かとは無関係に、前記システムバスから
    前記バッファへのデータの転送が完了すると前記システ
    ムバスに対する前記バスインタフェースユニットの応答
    を終了するステップとを備えることを特徴とする方法。
  6. 【請求項6】 前記システムバスが、16バイトまでの
    データ転送において前記バスインタフェースユニットと
    前記システムメモリとの間で読取りあるいは書込みデー
    タを転送し、前記入力/出力デバイスが、1,2あるい
    は4バイトのデータバス幅において前記入力/出力デバ
    イスと前記バスインタフェースユニットの間で読取り、
    あるいは書込みデータを転送することを特徴とする請求
    項5に記載の方法。
  7. 【請求項7】 前記所定の一連の動作条件の1つが、前
    記中央処理装置の代りの前記メモリ制御装置が前記入力
    /出力デバイスにデータを書込むとき発生することを特
    徴とする請求項5に記載の方法。
  8. 【請求項8】 前記所定の一連の動作条件の1つが、前
    記中央処理装置の代りの前記メモリ制御装置が、前記入
    力/出力バス上のスレーブとして作用する前記入力/出
    力デバイスに向けられた読取り、あるいは書込みサイク
    ルを開始し、かつ前記メモリ制御装置のデータ転送バス
    幅が前記入力/出力デバイスの対応するデータバス幅よ
    り大きいときに発生することを特徴とする請求項5に記
    載の方法。
JP4317365A 1992-01-02 1992-11-26 コンピュータシステムと、そのシステムメモリと入力/出力デバイス間の転送データを記憶する方法 Pending JPH05242015A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/816,203 US5255374A (en) 1992-01-02 1992-01-02 Bus interface logic for computer system having dual bus architecture
US816203 1992-01-02

Publications (1)

Publication Number Publication Date
JPH05242015A true JPH05242015A (ja) 1993-09-21

Family

ID=25219957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4317365A Pending JPH05242015A (ja) 1992-01-02 1992-11-26 コンピュータシステムと、そのシステムメモリと入力/出力デバイス間の転送データを記憶する方法

Country Status (10)

Country Link
US (1) US5255374A (ja)
EP (1) EP0553563A1 (ja)
JP (1) JPH05242015A (ja)
KR (1) KR960012356B1 (ja)
CN (1) CN1029169C (ja)
AU (1) AU652707B2 (ja)
MY (1) MY109414A (ja)
NZ (1) NZ245346A (ja)
SG (1) SG44432A1 (ja)
TW (1) TW243508B (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2744154B2 (ja) * 1991-10-24 1998-04-28 株式会社東芝 バスシステム
WO1993019424A1 (en) * 1992-03-18 1993-09-30 Seiko Epson Corporation System and method for supporting a multiple width memory subsystem
US5497466A (en) * 1992-07-17 1996-03-05 Texas Instruments Inc. Universal address generator
US5745791A (en) * 1992-09-16 1998-04-28 Intel Corporation System for interfacing first and second components having different data path width by generating first and second component address to read data into buffer
US5450547A (en) * 1992-10-01 1995-09-12 Xerox Corporation Bus interface using pending channel information stored in single circular queue for controlling channels of data transfer within multiple FIFO devices
US5495585A (en) * 1992-10-16 1996-02-27 Unisys Corporation Programmable timing logic system for dual bus interface
US5442754A (en) * 1992-12-04 1995-08-15 Unisys Corporation Receiving control logic system for dual bus network
US5522050A (en) * 1993-05-28 1996-05-28 International Business Machines Corporation Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus
US5550989A (en) * 1993-05-28 1996-08-27 International Business Machines Corporation Bridge circuit that can eliminate invalid data during information transfer between buses of different bitwidths
US5687371A (en) * 1993-09-27 1997-11-11 Intel Corporation Selection from a plurality of bus operating speeds for a processor bus interface during processor reset
US5551006A (en) * 1993-09-30 1996-08-27 Intel Corporation Low cost writethrough cache coherency apparatus and method for computer systems without a cache supporting bus
US5682498A (en) * 1993-11-12 1997-10-28 Intel Corporation Computer system with dual ported memory controller and concurrent memory refresh
JPH07152721A (ja) * 1993-11-29 1995-06-16 Mitsubishi Electric Corp マイクロコンピュータ
US5446869A (en) * 1993-12-30 1995-08-29 International Business Machines Corporation Configuration and RAM/ROM control of PCI extension card residing on MCA adapter card
US5835960A (en) * 1994-01-07 1998-11-10 Cirrus Logic, Inc. Apparatus and method for interfacing a peripheral device having a ROM BIOS to a PCI bus
US5828856A (en) * 1994-01-28 1998-10-27 Apple Computer, Inc. Dual bus concurrent multi-channel direct memory access controller and method
US5805927A (en) * 1994-01-28 1998-09-08 Apple Computer, Inc. Direct memory access channel architecture and method for reception of network information
US5655151A (en) * 1994-01-28 1997-08-05 Apple Computer, Inc. DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer
US5557757A (en) * 1994-02-02 1996-09-17 Advanced Micro Devices High performance integrated processor architecture including a sub-bus control unit for generating signals to control a secondary, non-multiplexed external bus
US5761450A (en) * 1994-02-24 1998-06-02 Intel Corporation Bus bridge circuit flushing buffer to a bus during one acquire/relinquish cycle by providing empty address indications
TW321744B (ja) * 1994-04-01 1997-12-01 Ibm
US5559969A (en) * 1994-08-09 1996-09-24 Unisys Corporation Method and apparatus for efficiently interfacing variable width data streams to a fixed width memory
US5577230A (en) * 1994-08-10 1996-11-19 At&T Corp. Apparatus and method for computer processing using an enhanced Harvard architecture utilizing dual memory buses and the arbitration for data/instruction fetch
US5524235A (en) * 1994-10-14 1996-06-04 Compaq Computer Corporation System for arbitrating access to memory with dynamic priority assignment
CA2160500C (en) * 1994-11-30 1999-11-09 Amy Kulik Pci/isa bridge having an arrangement for responding to pci bridge address parity errors for internal pci slaves in the pci/isa bridge
US5613162A (en) * 1995-01-04 1997-03-18 Ast Research, Inc. Method and apparatus for performing efficient direct memory access data transfers
US6044166A (en) * 1995-01-17 2000-03-28 Sarnoff Corporation Parallel-pipelined image processing system
US5564027A (en) * 1995-04-20 1996-10-08 International Business Machines Corporation Low latency cadence selectable interface for data transfers between busses of differing frequencies
US5704058A (en) * 1995-04-21 1997-12-30 Derrick; John E. Cache bus snoop protocol for optimized multiprocessor computer system
US5793996A (en) * 1995-05-03 1998-08-11 Apple Computer, Inc. Bridge for interconnecting a computer system bus, an expansion bus and a video frame buffer
US5805843A (en) * 1996-02-01 1998-09-08 Qualcomm Incorporated Microprocessor bus interface unit for interfacing an N-bit microprocessor bus to an M-bit memory device
US5752260A (en) * 1996-04-29 1998-05-12 International Business Machines Corporation High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses
US5758166A (en) * 1996-05-20 1998-05-26 Intel Corporation Method and apparatus for selectively receiving write data within a write buffer of a host bridge
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
US5845107A (en) * 1996-07-03 1998-12-01 Intel Corporation Signaling protocol conversion between a processor and a high-performance system bus
US6523080B1 (en) 1996-07-10 2003-02-18 International Business Machines Corporation Shared bus non-sequential data ordering method and apparatus
US5970253A (en) * 1997-01-09 1999-10-19 Unisys Corporation Priority logic for selecting and stacking data
US5822766A (en) * 1997-01-09 1998-10-13 Unisys Corporation Main memory interface for high speed data transfer
US5915126A (en) * 1997-08-12 1999-06-22 International Business Machines Corporation Computer system memory controller and method of burst data ordering translation
US6032212A (en) * 1997-08-14 2000-02-29 Goode; Jeff Device and method for interfacing PCI and VMEbus with a byte swapping circuit
US6219669B1 (en) 1997-11-13 2001-04-17 Hyperspace Communications, Inc. File transfer system using dynamically assigned ports
KR100290092B1 (ko) * 1997-11-19 2001-05-15 박종섭 지연 응답신호 처리 입출력 버스 인터페이스 장치
US6687865B1 (en) 1998-03-25 2004-02-03 On-Chip Technologies, Inc. On-chip service processor for test and debug of integrated circuits
US6611891B1 (en) * 1998-11-23 2003-08-26 Advanced Micro Devices, Inc. Computer resource configuration mechanism across a multi-pipe communication link
KR100606698B1 (ko) * 1999-03-16 2006-07-31 엘지전자 주식회사 인터페이스 장치
US7051218B1 (en) 2001-07-18 2006-05-23 Advanced Micro Devices, Inc. Message based power management
US7725528B1 (en) * 2002-03-06 2010-05-25 Rockwell Automation Technologies, Inc. System and methodology providing optimized data exchange with industrial controller
KR100449721B1 (ko) * 2002-05-20 2004-09-22 삼성전자주식회사 서로 다른 데이터 버스 폭을 갖는 장치들을 위한인터페이스 및 이를 이용한 데이터 전송방법
KR100450680B1 (ko) * 2002-07-29 2004-10-01 삼성전자주식회사 버스 대역폭을 증가시키기 위한 메모리 컨트롤러, 이를이용한 데이터 전송방법 및 이를 구비하는 컴퓨터 시스템
JP2004164579A (ja) * 2002-09-24 2004-06-10 Sharp Corp データバス幅変換装置およびデータ処理装置
US7152138B2 (en) * 2004-01-30 2006-12-19 Hewlett-Packard Development Company, L.P. System on a chip having a non-volatile imperfect memory
DE602005014737D1 (de) * 2004-02-05 2009-07-16 Research In Motion Ltd System und verfahren zur erkennung der breite eines datenbusses
JP2006251916A (ja) * 2005-03-08 2006-09-21 Fujitsu Ltd Dma転送システム及びdma転送方法
KR100723496B1 (ko) * 2005-08-11 2007-06-04 삼성전자주식회사 통합 fifo 메모리를 사용하는 다중-레이트 입력데이터의 동기화기 및 방법
US8386682B2 (en) * 2010-06-30 2013-02-26 Intel Corporation Method, apparatus and system for maintaining transaction coherecy in a multiple data bus platform
CN102375787A (zh) * 2010-08-12 2012-03-14 鸿富锦精密工业(深圳)有限公司 利用内存窗口实现接口的系统及方法
CN105550145B (zh) * 2015-12-09 2018-05-08 天津国芯科技有限公司 一种用于单芯片系统内双总线间的传输同步器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5697121A (en) * 1979-12-29 1981-08-05 Fujitsu Ltd Bus control system
JPH02140853A (ja) * 1988-11-21 1990-05-30 Yamaha Corp バス幅変換回路

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4371928A (en) * 1980-04-15 1983-02-01 Honeywell Information Systems Inc. Interface for controlling information transfers between main data processing systems units and a central subsystem
IT1206331B (it) * 1983-10-25 1989-04-14 Honeywell Inf Systems Architettura di sistema di elaborazione dati.
JPS61139866A (ja) * 1984-12-11 1986-06-27 Toshiba Corp マイクロプロセツサ
US4703420A (en) * 1985-02-28 1987-10-27 International Business Machines Corporation System for arbitrating use of I/O bus by co-processor and higher priority I/O units in which co-processor automatically request bus access in anticipation of need
US4683534A (en) * 1985-06-17 1987-07-28 Motorola, Inc. Method and apparatus for interfacing buses of different sizes
US4831520A (en) * 1987-02-24 1989-05-16 Digital Equipment Corporation Bus interface circuit for digital data processor
AU598101B2 (en) * 1987-02-27 1990-06-14 Honeywell Bull Inc. Shared memory controller arrangement
EP0288649B1 (en) * 1987-04-22 1992-10-21 International Business Machines Corporation Memory control subsystem
GB2211326B (en) * 1987-10-16 1991-12-11 Hitachi Ltd Address bus control apparatus
US5003465A (en) * 1988-06-27 1991-03-26 International Business Machines Corp. Method and apparatus for increasing system throughput via an input/output bus and enhancing address capability of a computer system during DMA read/write operations between a common memory and an input/output device
US5003463A (en) * 1988-06-30 1991-03-26 Wang Laboratories, Inc. Interface controller with first and second buffer storage area for receiving and transmitting data between I/O bus and high speed system bus
US5146564A (en) * 1989-02-03 1992-09-08 Digital Equipment Corporation Interface between a system control unit and a service processing unit of a digital computer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5697121A (en) * 1979-12-29 1981-08-05 Fujitsu Ltd Bus control system
JPH02140853A (ja) * 1988-11-21 1990-05-30 Yamaha Corp バス幅変換回路

Also Published As

Publication number Publication date
KR960012356B1 (ko) 1996-09-18
NZ245346A (en) 1995-09-26
AU2979592A (en) 1993-07-08
KR930016886A (ko) 1993-08-30
CN1074051A (zh) 1993-07-07
US5255374A (en) 1993-10-19
MY109414A (en) 1997-01-31
EP0553563A1 (en) 1993-08-04
CN1029169C (zh) 1995-06-28
TW243508B (ja) 1995-03-21
SG44432A1 (en) 1997-12-19
AU652707B2 (en) 1994-09-01

Similar Documents

Publication Publication Date Title
JPH05242015A (ja) コンピュータシステムと、そのシステムメモリと入力/出力デバイス間の転送データを記憶する方法
US5265211A (en) Arbitration control logic for computer system having dual bus architecture
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
US5644729A (en) Bidirectional data buffer for a bus-to-bus interface unit in a computer system
US5659696A (en) Method and apparatus for determining address location and taking one of two actions depending on the type of read/write data transfer required
JP2988501B2 (ja) パリティエラーを検出するコンピュータシステム及びその動作方法
US5761533A (en) Computer system with varied data transfer speeds between system components and memory
EP1032880B1 (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple agent processing system
US5966728A (en) Computer system and method for snooping date writes to cacheable memory locations in an expansion memory device
JPH0727494B2 (ja) キャッシュ・スヌープ/データ無効化機能を有するコンピュータ・システム
JP3420114B2 (ja) データ転送方式
EP0439594B1 (en) Device for interfacing a main processor bus connected to a main processor to a peripheral bus having a number of peripheral devices connected thereto
KR100454652B1 (ko) 하이파이버스시스템의주기억장치
JPH11232180A (ja) データ処理装置
HK1031442B (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple agent processing system
JPH09185573A (ja) 入出力バスインタフェース制御方式