JP2004005706A - Computing system - Google Patents

Computing system Download PDF

Info

Publication number
JP2004005706A
JP2004005706A JP2003170795A JP2003170795A JP2004005706A JP 2004005706 A JP2004005706 A JP 2004005706A JP 2003170795 A JP2003170795 A JP 2003170795A JP 2003170795 A JP2003170795 A JP 2003170795A JP 2004005706 A JP2004005706 A JP 2004005706A
Authority
JP
Japan
Prior art keywords
bus
data
order
low
order bus
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.)
Granted
Application number
JP2003170795A
Other languages
Japanese (ja)
Other versions
JP3760933B2 (en
Inventor
Tetsuya Toi
戸井 哲也
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2003170795A priority Critical patent/JP3760933B2/en
Publication of JP2004005706A publication Critical patent/JP2004005706A/en
Application granted granted Critical
Publication of JP3760933B2 publication Critical patent/JP3760933B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To facilitate a bus master device of a high-order bus side, quickly migrating to a next process, when an successive write cycle from a high-order bus to a low-order bus is executed. <P>SOLUTION: A high-order bus slave circuit 22, which is connected to the high-order bus 17, and a low-order bus master circuit 23, which is connected to the low-order bus 18, are allocated in a bus adapter device 21 allocated between the high-order bus 17 and the low-order bus 18, and a FIFO memory 24 and an unpacked register 25 are connected between them. The low-order bus master circuit 23 independently transfers data sequentially to the low-order bus 18, when the data for writing are stored in the FIFO memory 24. Thus, a master device at the high-order bus 17 side is removed of the restrictions, at the time the information is stored in the FIFO memory 24. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明はデータバス幅の異なった2つのバスと、これらを接続してデータの転送を行わせるバスアダプタ装置とを有する計算機システムに係わり、特に高位バス側から低位バス側にデータを書き込む際に効率的な書込作業を可能にする計算機システムに関する。
【0002】
【従来の技術】
膨大なデータを短時間で処理するために、計算機システムの処理速度の向上が強く望まれている。このような要請に応ずるために、計算機システムを構成するCPU(中央処理装置)や主メモリ装置等の回路装置のデータ入出力幅としてのいわゆるデータバス幅が広くなっており、データの転送速度の高速化も著しくなっている。一例を挙げると、ある計算機システムではCPUが64ビットのデータ幅を有しており、データ転送のサイクル時間は15ns(ナノ秒)となっている。
【0003】
このように計算機システムの性能が向上しているが、一方でこれら新しい計算機システムに従来の装置を接続して活用できるという互換性維持も、ハードウェア設計資産の有効活用の上から強く要請されている。例えば前記したような高速の計算機システムに、データバス幅が8ビットあるいは16ビットで、サイクル時間が200nsといった低速なスレーブ装置を接続する必要が生じる。
【0004】
図7は従来提案された計算機システムを表わしたものである。バス11には、CPU12、主メモリ装置13ならびに入出力制御装置14が接続されている。低速のスレーブ装置15、15、……は、データバス幅の差異を吸収するためのバスアダプタ装置16、16、……を介してバス11と接続されている。
【0005】
このような計算機システムでは、低速のスレーブ装置15、15、……の数だけバスアダプタ装置16、16、……が必要となる。したがって、システムを構成するハードウェア量が増大するといった問題がある。そこで、高位バスと低位バスに分けてマスタ装置等の接続を行った計算機システムが提案されている。
【0006】
図8は、高位バスと低位バスが混用された従来の計算機システムの一例を表わしたものである。ここで高位バス17とはデータバス幅が比較的広く、データの転送速度も比較的高速なバスであり、低位バス18とはデータバス幅が比較的狭く、データの転送速度も比較的低速なバスである。この例では、高位バス17にCPU12、主メモリ装置13ならびに入出力制御装置14が接続されており、低位バス18には幾つかのスレーブ装置15、15……が接続されている。また、これら高位バス17と低位バス18の間にはバスアダプタ装置16が接続されている。
【0007】
このような計算機システムで、バスアダプタ装置16は高位バス17と低位バス18の間のデータバス幅の差異を吸収する必要がある。そこで、バスアダプタ装置16内には、データの分解と組み立てを行う機構が組み込まれている。例えば特開昭61−151769号公報には、高位バス1が16ビットのデータバス幅で、低位バス18が8ビットのデータバス幅の場合の機構が開示されている。また、特開平1−161561号公報には高位バス17と低位バス18のデータ転送サイズの比がm対1の場合の機構が開示されている。ここで符号“m”は2以上の正の整数である。
【0008】
これらの従来技術では、アクセス対象を表わしたアドレス情報をバスアダプタ装置内に1つラッチしておき、低位バス側で実行される複数回のバスサイクル(後の例ではm回のバスサイクル)に応じて下位のアドレスの更新を順に行うようにしている。先に示した従来技術では、CPUの書き込み操作時にデータをバスアダプタ装置内にラッチすることで、このCPUを下位アドレスの更新作業に先駆けて先行開放を行うことができることが示されている。
【0009】
【発明が解決しようとする課題】
しかしながら、このような従来技術によれば、バスアダプタ内に保持することのできるバスサイクルは、高位バス側での1サイクル分のみとなっている。したがって、前記した先行開放についても、これができるのはCPUの1バスサイクルに対してのみであり、引き続く書込サイクルまでも有効とされるものではない。
【0010】
特開平1−161463号公報ではこのような問題点の解決を図っている。この提案では、複数のチャネル装置それぞれに独立したデータバッファを設けるようにしている。したがって、複数の低位バス装置のそれぞれに対してデータバッファが設けられることになり、異なった低位バス装置に対して書込サイクルが実行されるような場合には、バスアダプタ内に実質的に複数サイクル分のアドレスを格納することができる。
【0011】
しかしながら、この提案でも同一の低位バス装置に対してたまたま連続した書込サイクルが実行されるような場合には、対応するデータバッファが高位バス側での1サイクル分であることに変わりがない。したがって、同一低位バス装置に対する連続した書込サイクルに対しては問題点を解決することができない。更に、この提案ではチャネル装置ごとに独立したデータバッファを用意する必要がある。このため、ハードウェア量が増大するという問題点もあった。
【0012】
そこで本発明の目的は、高位バスから低位バスへ連続した書込サイクルを実行する場合であっても、高位バス側のバスマスタ装置が次の処理に迅速に移行することができるバスアダプタ装置を備えた計算機システムを提供することにある。
【0013】
本発明の他の目的は、低位バス側の異なるスレーブ装置に対する書き込みをバスアダプタ装置内に単一のバッファを設けることで可能にする計算機システムを提供することにある。
【0014】
本発明の更に他の目的は、低位バス側の異なるスレーブ装置に対する書き込みをバスアダプタ装置内の単一のバッファを用いて行なう際に低位バス上のスレーブ装置からのデータの読み出しを支障なく行うことのできる計算機システムを提供することにある。
【0015】
【課題を解決するための手段】
請求項1記載の発明では、(イ)第1の単位量を一回の転送量としてデータの転送を行う高位バスと、(ロ)第1の単位量よりも小さな第2の単位量でデータの転送を行う低位バスと、(ハ)これらのバスを接続し、高位バス上のマスタ装置から低位バス上の複数のスレーブ装置のうちの該当するものを択一的に選択してこれらにデータを書き込むときその転送データの内容や宛先、転送データのサイズからなる格納情報を低位バスにアクセスする順序で第1の単位量ずつ順次複数回分格納可能な容量の格納手段と、この格納手段に第1の単位量だけ格納情報を格納するたびにマスタ装置に対してスレーブ装置にデータの書き込みが完了したことを示すアクノリッジ信号を擬似的に送出するアクノリッジ信号送出手段と、格納手段に格納された第1の単位量のデータを第2の単位量のデータに順次組み換えるデータ組替え手段と、組み換えられたデータを低位バス上のスレーブ装置に転送する転送手段と、格納手段に前記した情報が格納されているか否かを判別する格納有無判別手段と、高位バス上のマスタ装置が低位バス上のスレーブ装置からデータを読み出すとき格納有無判別手段が格納無しの判別を行うまでこれを待機させる読出待機手段とを備えたバスアダプタ装置とを計算機システムに具備させる。
【0016】
すなわち請求項1記載の発明では、例えば32ビット単位でデータの転送を行う高位バスと8ビット単位でデータの転送を行う低位バスを接続するバスアダプタ装置に、高位バス上のマスタ装置から低位バス上のスレーブ装置に第1の単位量を一回の転送量としてデータを書き込むときこれに必要な情報を一時的に格納する第1の単位量ずつ順次複数回分格納可能な容量の格納手段を用意し、これに取敢えず必要な情報を第1の単位量ずつ格納し、第1の単位量だけ格納情報を格納するたびに低位バスに対するデータの書き込みを待つことなくアクノリッジ信号送出手段によってアクノリッジ信号を擬似的に該当するマスタ装置に送出するようにしている。また、格納手段に前記した情報が格納されているか否かを判別する格納有無判別手段を用意しておき、これに前記した情報が格納されていないときに限って高位バスからのデータの読み出しの要求に応ずることにして、スレーブ装置に書き込まれていない情報が読み出される事態の発生を防止してデータの読み出しを支障なく行えるようにしている。
【0017】
【発明の実施の形態】
【0018】
【実施例】
以下実施例につき本発明を詳細に説明する。
【0019】
図1は本発明の一実施例における計算機システムの概要を表わしたものである。本実施例の計算機システムは、高位バス17と低位バス18ならびにこれらを接続するバスアダプタ装置21とで構成されている。本実施例で高位バス17のデータバス幅は32ビットであり、低位バス18のデータバス幅は8ビットとなっている。
【0020】
バスアダプタ装置21には、高位バス17と接続されそのスレーブ装置として機能する高位バススレーブ回路22と、低位バス18と接続されそのマスタ装置として機能する低位バスマスタ回路23が配置されている。高位バススレーブ回路22は高位バス17側の図示しないCPUやDMA(ダイレクト・メモリ・アクセス)装置に代表されるマスタ装置からアクセスを受け付けるようになっている。低位バスマスタ回路23は、低位バス18側に配置された各種スレーブ装置に対して所定の回数だけ書込あるいは読出サイクルを起動するようになっている。
【0021】
バスアダプタ装置21の図で左半分が高位バス17から低位バス18への書込サイクル時に機能する回路部分であり、ここにはFIFO(先入れ先出し)メモリ24とアンパック・レジスタ25とが配置されている。また、バスアダプタ装置21の図で右半分が低位バス18を高位バス17から読み出すサイクルのときに機能する回路部分であり、ここにはデータ・ラッチ回路26とパック・レジスタ27とが配置されている。以下、高位バス17から低位バス18への書込サイクルと読出サイクルとに分けて説明を行う。
【0022】
高位バスから低位バスへの書込サイクル
【0023】
高位バススレーブ回路22は、高位バス17のスレーブ装置として機能し、この高位バス17上のマスタ装置からの書込要求を受け付ける。受け付けた要求のアドレス情報と、転送データのサイズ情報ならびに転送データは、FIFOメモリ24の最後尾に格納される。この格納を終えると、現実にこれらを低位バス18に転送することなく高位バススレーブ回路22は高位バス17に転送の完了を示す転送完了応答を返す。これにより、高位バス17上の前記したCPU等の該当するマスタ装置はウエイト状態から開放され、次の処理に進むことができる。
【0024】
これ以後の低位バス18への書込処理は、バスアダプタ装置21が高位バス17側とは非同期に実行する。まず、低位バスマスタ回路23はFIFOメモリ24の先頭に格納されている時間的に最も古い格納項目としてのアドレス情報、転送データのサイズ情報および転送データを取り出す。そして、アドレス情報については、必要ならばその上位ビットをデコードして、低位バス18の該当するスレーブ装置を選択するためのスレーブ選択信号を生成する。下位ビットについては、そのまま低位バスマスタ回路23を介して低位バス18側に出力する。
【0025】
FIFOメモリ24から読み出した転送データは、アンパック・レジスタ25に入力され、ここで分解されて8ビットごとに低位バスマスタ回路23に送られる。低位バスマスタ回路23は、FIFOメモリ24から転送データのサイズ情報を受けており、これに示される回数だけ低位バス18上で書込サイクルを起動する。そして、アンパック・レジスタ25から排出される8ビットずつのデータを低位バス18上に順に送り出すことによってFIFOメモリ24内の転送データをすべて送り出す。
【0026】
このようにしてFIFOメモリ24の1つのエントリについての低位バス18に対する書込操作が終了すると、次のエントリにシフトされて、次の格納情報についての書込サイクルが起動される。このようにして、FIFOメモリ24内の格納情報がすべて空になるまで低位バスマスタ回路23は動作する。
【0027】
高位バスから低位バスへの読出サイクル
【0028】
次に、高位バス17側から低位バス18に対して読出要求が行われた場合の動作を説明する。読出要求を受けた高位バススレーブ回路22は、高位バス17側のマスタ装置をウエイト状態で拘束し、アドレス情報および転送データのサイズ情報41を送って低位バスマスタ回路23を起動する。低位バスマスタ回路23は、アドレス情報によって指定されたスレーブ装置に対して下位アドレスを順に更新しながら転送データのサイズ情報で示される回数だけ読出サイクルを起動する。これによって低位バス18上の該当するスレーブ装置からデータの読み出しが8ビットずつ順に行われることになる。
【0029】
パック・レジスタ27は、読み出されたこれらのデータを整列させる。そしてこれらを順にデータ・ラッチ回路26に保持させる。要求されているサイズのデータがデータ・ラッチ回路26にすべて揃ったら、高位バススレーブ回路22はその整列データを受け取って高位バス17上に送り出すと共に、転送完了応答信号を出力する。拘束されていたマスタ装置はデータを受け取ると共に、この転送完了応答信号によって拘束を開放される。
【0030】
次に、本実施例の計算機システムで特徴的な回路としてのFIFOメモリ24とその制御について更に詳しく説明する。なお、低位バス18側での下位アドレスの更新操作や、アンパック・レジスタ25によるデータのアンパック操作、ならびにパック・レジスタ27によるデータのパック操作については、例えば特開平1−161561号公報にも記載があるようにそれらの技術が特に目新しいものではないので、説明を省略する。
【0031】
図2はバスアダプタ装置の要部を具体的に表わしたものである。FIFOメモリ24は20ビット構成のアドレス情報51と、2ビット構成のサイズ情報52と、32ビット構成の転送データ53を1エントリの格納情報として出力するようになっている。このうちアドレス情報51の上位4ビットはアドレスデコーダ55に入力され、ここで解読されてスレーブ選択信号56〜5615のいずれかが選択されて低位バス18上に出力されるようになっている。ここでスレーブ選択信号56〜5615は、低位バス18に接続された図示しないスレーブ装置に1本ずつ接続されており、出力されたスレーブ選択信号56xに対応するスレーブの選択が行われるようになっている。
【0032】
アドレス情報51の残りの16ビットは、アドレスカウンタ57に供給されるようになっている。アドレスカウンタ57は第1の制御回路58からロード信号59とクロック信号61の供給を受けるようになっている。そして、ロード信号59によってアドレス情報51の下位ビットをロードすると共に、クロック信号61でこれを“1”ずつインクリメントするようになっている。
【0033】
サイズ情報52はダウンカウンタ63に供給される。第1の制御回路58はダウンカウンタ63にロード信号64とクロック信号65を入力するようになっている。このうちのロード信号64によってサイズ情報52がダウンカウンタ63にロードされる。そして、クロック信号65によってその内容が“1”ずつデクリメントされる。この結果としてカウント値がアンダーフローすると、アンダーフロー信号66が第1の制御回路58に供給されるようになっている。
【0034】
第1の制御回路58は低位バスサイクルを規定回数実行した後、シフト信号69をFIFOメモリ24に対して出力し、ポインタを1つだけ進めさせるようになっている。FIFOメモリ24は、格納情報のすべてを送るとエンプティ信号68を第1の制御回路58に送出するようになっている。転送データ53は最大32ビットまで8ビット単位でパラレルに出力される。
【0035】
アンパック・レジスタ25は、8ビットずつデータを入力し次段にシフトさせる4段のシフトレジスタ71〜71を直列接続した構成となっている。これらのシフトレジスタ71〜71には、第1の制御回路58からロード信号72とクロック信号73が供給されるようになっている。また、イネーブル信号74は、最終段の第4のシフトレジスタ71から出力される8ビット単位の転送データ76の出力を行うための出力バッファ77に供給されるようになっている。
【0036】
なお、第1の制御回路58は低位バス18に対してそのバスサイクルを起動するために、アドレスストローブ(AS)信号78およびリード(Read)信号79を供給し、低位バス18からはアクノリッジ信号(ACK)81を受け取るようになっている。
【0037】
図3は、第1の制御回路の制御の様子を表わしたものである。第1の制御回路58はFIFOメモリ24がエンプティであるかどうかを監視している(ステップS101)。これはエンプティ信号68の信号状態で判別することができる。FIFOメモリ24がエンプティでなくなったら(N)、アドレスカウンタ57にロード信号59を送ってアドレス情報51の下位16ビットをこれにロードさせる。また、同様にロード信号64、72をダウンカウンタ63とシフトレジスタ71〜71に送ってサイズ情報52と32ビットの転送データ53をそれぞれロードさせる(ステップS102)。
【0038】
このようにして格納情報のロードが行われたら、クロック信号65によってダウンカウンタ63のセットされているカウント値が“1”だけデクリメントされる(ステップS103)。そして、アドレスストローブ(AS)信号78、リード(Read)信号79ならびにイネーブル(Enable)信号74の論理レベルをそれぞれL(ロー)レベルに設定して、書込サイクルを起動させる(ステップS104)。そして、アクノリッジ(ACK)信号81がLレベルになるのを待機し(ステップS105)、なったら低位バス18に転送データ76の書き込みが行われたことが確認されたので、アドレスストローブ(AS)信号78とイネーブル(Enable)信号74をH(ハイ)レベルに変化させて書込サイクルを終結させる(ステップS106)。
【0039】
この後、クロック信号65によってダウンカウンタ63のセットされているカウント値が“1”だけ更にデクリメントされる(ステップS107)。この結果として、アンダーフロー信号66が出なければ(ステップS108;N)、アンパック・レジスタ25にセットされた転送データ53がまだ全部転送されていない。
【0040】
そこで、アドレスカウンタ57を“1”だけインクリメントすると共に、アンパック・レジスタ25内のシフトレジスタ71〜71にクロック信号73を8個送出して次の転送データを第4のシフトレジスタ71にセットさせる(ステップS109)。この例では、最初の8ビットの転送データ76を転送した後なので、最初に第3のシフトレジスタ71に格納された内容が第4のシフトレジスタ71に格納されることになる。
【0041】
この状態で制御は再びステップS104に戻り、書込サイクルが起動される。そして、2回目の8ビットの転送データ76が低位バス18上に転送されることになる。以後同様にして最大32ビットまで8ビットずつ転送データ76が低位バス18上に送り出される。
【0042】
ダウンカウンタ63のセットされているカウント値が“1”だけデクリメントされた結果としてアンダーフロー(値が“−1”)になったら(ステップS108;Y)、1エントリの格納情報のすべてが転送されたことになる。そこでシフト信号69がFIFOメモリ24に送出され、ポインタを1つだけ進めさせて次の転送データ53の転送に備えることになる(リターン)。
【0043】
ところで、図2に示したようにエンプティ信号68は高位バススレーブ回路22にも供給されるようになっている。高位バススレーブ回路22はこのエンプティ信号68がFIFOメモリ24のエンプティ(空)を示すまで高位バス17上の読出要求を受け付けないようになっている。これは、読み出そうとしているアドレスのデータがバスアダプタ装置21内のFIFOメモリ24内にまだ存在する場合に発生する矛盾を解決するためである。
【0044】
図4は、高位バスから低位バスを読み出す場合の高位バススレーブ回路の制御の様子を表わしたものである。高位バススレーブ回路22は高位バス17のアドレスストローブ(AS)信号がLレベルになるのを監視している(ステップS201)。Lレベルになったら(Y)、そのとき低位バス18がリード(Read)アクセスであるかどうかをチェックする(ステップS202)。そうであれば(Y)、アイドル状態を脱してFIFOメモリ24がエンプティになるのを待機する(ステップS203)。これは前記した理由からである。
【0045】
FIFOメモリ24がエンプティになったら(Y)、低位バスマスタ回路23にアドレス情報および転送データのサイズ情報41を送出する(ステップS204)。これにより、低位バスマスタ回路23内の図示しない第2の制御回路内のアドレスデコーダからスレーブ選択信号56〜5615のうちの該当するものが出力され、また、リード信号79がHレベルに、アドレスストローブ信号78がLレベルに設定される。
【0046】
この状態で第2の制御回路は低位バス18からアクノリッジ(ACK)信号81が送られてくるのを待機する(ステップS205)。アクノリッジ信号81が送られてきたら読み出されたデータが低位バス18上に存在するので、パック・レジスタ27を介して、これをデータ・ラッチ回路26にラッチさせる(ステップS206)。そして、低位バス18のアドレスストローブ信号78をHレベルに設定して読み出しのためのバスサイクルを終結させる(ステップS207)。
【0047】
次に、高位バススレーブ回路22はデータ・ラッチ回路26に読み込んだデータ数がサイズ情報に示す8ビット単位のサイズに合致しているかどうかをチェックする(ステップS208)。合致していなければ(N)、更に8ビットのデータを読み出してデータ・ラッチ回路26に追加する必要がある。そこで、ステップS203に戻ってこの操作を必要な回数だけ繰り返す。
【0048】
ステップS208で読み込んだデータ数がサイズ情報に示す8ビット単位のサイズに合致したら(Y)、高位バス17上にデータ・ラッチ回路26にラッチされているデータを送出すると共に、高位バス17のマスタ装置に対してデータの読み出しが行われた旨の応答を行って(ステップS209)、制御を終了させる(エンド)。
【0049】
図5は本実施例における高位バスと低位バスの動作を比較したものである。同図(a)〜(e)は高位バス17側を表わしたものであり、このうち同図(a)はクロック信号(CLK)を、同図(b)はアドレスストローブ信号(AS)を、同図(c)はアドレス情報(Adr)を、同図(d)はデータ信号(Data)を、同図(e)はアクノリッジ信号(ACK)をそれぞれ表わしている。時刻tから第1のアドレス情報Aと第1のデータDが高位バス17上に現われ、これらがFIFOメモリ24(図1)に格納されると、高位バススレーブ回路22は高位バス17にアクノリッジ信号を返送する。この時刻tから高位バス17側のマスタ装置は拘束から開放されて次の処理(A,D以降)に移行することが可能になる。
【0050】
同図(f)〜(i)は低位バス18側の動作を表わしたものであり、同図(f)はアドレス情報(Adr)を、同図(g)はアドレスストローブ信号(AS)を、同図(h)はデータ信号(Data)を、同図(i)はアクノリッジ信号(ACK)をそれぞれ表わしている。
【0051】
高位バス17側がFIFOメモリ24に転送データ等の情報を格納した後、まず最初の8ビットのアドレス情報A1+0とデータB1+0が低位バス18に転送され、アドレスストローブ信号がLレベルにセットされる。この状態で低位バス18から書込完了を示すアクノリッジ信号が送られてきた段階で次の2番目の8ビットのアドレス情報A1+1とデータB1+1が低位バス18に転送される。以下同様にして最大で32ビットの転送データが最大で4回に分けて低位バス18上に転送されることになる。
【0052】
前記したように時刻t以降は、これらアドレス情報A1+0〜A1+3ならびにデータB1+0〜B1+3の転送制御にかかわらず、高位バス17上のマスタは他の作業を行うことができる。なお、この図でハッチングはデータのアクセス上、特に意味を持たない部分を示したものであり、これは次の図6についても同様である。
【0053】
図6は、本実施例の計算機システムと比較するために従来における高位バスと低位バスの動作を比較したものである。同図(a)〜(i)はそれぞれ図5の図(a)〜(i)とそれぞれ対応している。従来においては、時刻tから第1のアドレス情報Aと第1のデータDが高位バス17上に現われるが、これらは低位バス18上の該当するスレーブ装置にすべて書き込まれ、時刻tにアクノリッジ信号が返送されてくるまで高位バス17上の該当するマスタ装置は拘束状態を開放されない。
【0054】
すなわち、同図(f)に示すように最初の8ビットのアドレス情報A1+0とデータB1+0が低位バス18に転送され、アドレスストローブ信号がLレベルにセットされた後、低位バス18から書込完了を示すアクノリッジ信号が送られてきた段階で次の2番目の8ビットのアドレス情報A1+1とデータB1+1が低位バス18に転送される。
【0055】
以下同様にして最大で32ビットの転送データが最大で4回に分けて低位バス18上に転送され、低位バス18上におけるデータ転送がすべて終了した状態で同図(e)に示すアクノリッジ信号が高位バス17上に送出され、該当するマスタ装置がこれを認識した時点で拘束が開放されることになる。したがって、この拘束時間Tは、図5に示した拘束時間Tに比べて遙かに長くなるのが通常である。
【0056】
以上の説明では、高位バス17上のマスタ装置が1つのスレーブ装置に1回分の書込データを転送する場合について説明したが、同一のマスタ装置が複数の異なったスレーブ装置に書込データを順に連続して転送する場合もある。図5ではこのよう状態を示しており、時刻tからは第2のアドレス情報Aと第2のデータDが高位バス17上に現われ、同様にバスアダプタ装置21からのアクノリッジ信号によってこの2番目の書き込みのための制御を終了させる。そして、時刻tから第3のアドレス情報Aと第3のデータDが高位バス17上に現われることになる。以下同様である。
【0057】
同一のマスタ装置によるこれらの連続制御を可能にしたのはアドレス情報A等を順に格納していくFIFOメモリ24によることは当然であり、これにより同一のマスタ装置がより短時間で複数のデータを低位バス18側に転送することができることが了解される。もちろん、FIFOメモリ24には、同一のマスタ装置ばかりでなく異なったマスタ装置がそれぞれの書込アクセス用の情報を格納していけることは当然である。
【0058】
以上説明した実施例ではバスアダプタ装置21内に書き込みと読み出しに共用する高位バススレーブ回路22と低位バスマスタ回路23を配置したが、これらがそれぞれの用途ごとに分離された回路構成となっていてもよい。また、書き込み用のアドレス情報等を格納するメモリはFIFOメモリに限る必要はなく、その段数の範囲も複数段であれば特に限定されるものではないことは当然である。
【0059】
更に実施例ではFIFOメモリに先に入力されたデータから先に読み出して低位バス上のスレーブ装置に書き込みを行うことにしたが、同一のスレーブ装置に対する転送データを一括して抽出して、これらを時間的に先のものから順に転送するようにしてもよい。これにより、低位バスをより効率的に使用することができる。
【0060】
また、実施例では高位バスから低位バスに対してデータの読み出しを要求したときFIFOメモリ内のデータがすべて転送されるのを待ってデータの読み出しを行うことにしたが、同一スレーブ装置を宛先とする転送データがFIFOメモリ等の格納手段に格納されているかどうかを判別し、格納されていなければ格納手段に他のスレーブ装置を宛先とする格納情報が格納されていてもデータの読み出しを実行させるようにしてもよい。
【0061】
【発明の効果】
以上説明したように請求項1記載の発明によれば、高位バスと低位バスを接続するバスアダプタ装置に、高位バス上のマスタ装置から低位バス上のスレーブ装置に第1の単位量を一回の転送量としてデータを書き込むときこれに必要な情報を一時的に格納する第1の単位量ずつ順次複数回分格納可能な容量の格納手段を用意した。このため、複数のスレーブ装置に宛てたデータをこれに格納し分配することができ、全体的な処理効率の向上を図ることができる。しかもデータの書き込みが完了したことを示すアクノリッジ信号は、第1の単位量のデータが格納手段に格納されるたびに擬似的に送出される。したがって、格納手段にデータがフルに格納されるまで待つ必要がなく、高位バス上のマスタ装置はより早くウエイト状態から開放され、次の処理に進むことができるという効果が発生する。更に格納手段には低位バスにアクノリッジする順序で格納情報を格納し、この順番でデータの転送を行うことにしているので、データの処理を時系列的に行うことができ、処理の正確化を期することができる。また、格納手段に取敢えず必要な情報を格納するだけでなく、この格納手段が空になったかどうかを判別する判別手段を用意し、空になった状態で高位バスから低位バスへのデータの読み出しを許可することにしたので、低位バス側のスレーブ装置で更新される以前の情報が読み出される事態を防止することができる。
【図面の簡単な説明】
【図1】本発明の一実施例における計算機システムの概要を表わしたシステム構成図である。
【図2】本実施例のバスアダプタ装置の要部を具体的に表わしたブロック図である。
【図3】本実施例における第1の制御回路の制御の様子を表わした流れ図である。
【図4】本実施例における高位バスから低位バスを読み出す場合の高位バススレーブ回路の制御の様子を表わした流れ図である。
【図5】本実施例における高位バスと低位バスの動作を比較したタイミング図である。
【図6】本実施例の計算機システムと比較するために従来における高位バスと低位バスの動作を比較したタイミング図である。
【図7】1つのバスからなる従来提案された計算機システムを表わしたシステム構成図である。
【図8】高位バスと低位バスが混用された従来の計算機システムのシステム構成図である。
【符号の説明】
12…CPU、13…主メモリ装置、14…入出力制御装置、15、15…スレーブ装置、17…高位バス、18…低位バス、21…バスアダプタ装置、22…高位バススレーブ回路、23…低位バスマスタ回路、24…FIFOメモリ、25…アンパック・レジスタ、26…データ・ラッチ回路、27…パック・レジスタ、55…アドレスデコーダ、57…アドレスカウンタ、58…第1の制御回路、63…ダウンカウンタ、71〜71…シフトレジスタ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a computer system having two buses having different data bus widths and a bus adapter device connecting these buses to transfer data, and particularly when writing data from a high-order bus to a low-order bus. The present invention relates to a computer system that enables an efficient writing operation.
[0002]
[Prior art]
In order to process a huge amount of data in a short time, it is strongly desired to improve the processing speed of a computer system. In order to respond to such a demand, a so-called data bus width as a data input / output width of a circuit device such as a CPU (central processing unit) and a main memory device constituting a computer system has been widened, and a data transfer speed has been increased. Speeding up has also become remarkable. As an example, in a certain computer system, the CPU has a data width of 64 bits, and the cycle time of data transfer is 15 ns (nanosecond).
[0003]
Although the performance of computer systems has been improved in this way, maintaining compatibility, in which existing devices can be connected to these new computer systems and used, has been strongly demanded from the viewpoint of effective utilization of hardware design resources. I have. For example, it is necessary to connect a low-speed slave device having a data bus width of 8 bits or 16 bits and a cycle time of 200 ns to the high-speed computer system described above.
[0004]
FIG. 7 shows a conventionally proposed computer system. To the bus 11, a CPU 12, a main memory device 13, and an input / output control device 14 are connected. Low-speed slave device 151, 152,... Are bus adapter devices 16 for absorbing differences in data bus width.1, 162,... Are connected to the bus 11.
[0005]
In such a computer system, the low-speed slave device 151, 152,..., The number of bus adapter devices 161, 162,……Is required. Therefore, there is a problem that the amount of hardware configuring the system increases. Therefore, there has been proposed a computer system in which a high-level bus and a low-level bus are connected to connect a master device or the like.
[0006]
FIG. 8 shows an example of a conventional computer system in which a high-order bus and a low-order bus are mixed. Here, the high-order bus 17 has a relatively wide data bus width and a relatively high data transfer speed, and the low-order bus 18 has a relatively narrow data bus width and a relatively low data transfer speed. It is a bus. In this example, a CPU 12, a main memory device 13, and an input / output control device 14 are connected to a high-order bus 17, and some slave devices 15 are connected to a low-order bus 18.1, 152... are connected. A bus adapter device 16 is connected between the high-order bus 17 and the low-order bus 18.
[0007]
In such a computer system, the bus adapter device 16 needs to absorb the difference in the data bus width between the high-order bus 17 and the low-order bus 18. Therefore, a mechanism for disassembling and assembling data is incorporated in the bus adapter device 16. For example, Japanese Patent Application Laid-Open No. S61-15169 discloses a mechanism in which the high-order bus 1 has a data bus width of 16 bits and the low-order bus 18 has a data bus width of 8 bits. Further, Japanese Patent Application Laid-Open No. 1-161561 discloses a mechanism in the case where the ratio of the data transfer size between the high-order bus 17 and the low-order bus 18 is m: 1. Here, the symbol “m” is a positive integer of 2 or more.
[0008]
In these prior arts, one piece of address information indicating an access target is latched in a bus adapter device, and the address information is stored in a plurality of bus cycles (m bus cycles in the following example) executed on the lower bus side. The lower addresses are updated accordingly. The above-described prior art shows that by latching data in the bus adapter device during a write operation of the CPU, the CPU can be pre-opened prior to the work of updating the lower address.
[0009]
[Problems to be solved by the invention]
However, according to such a conventional technique, the bus cycle that can be held in the bus adapter is only one cycle on the high-order bus side. Therefore, the preceding release can be performed only for one bus cycle of the CPU, and is not valid even for a subsequent write cycle.
[0010]
Japanese Unexamined Patent Publication No. 1-161463 attempts to solve such a problem. In this proposal, an independent data buffer is provided for each of a plurality of channel devices. Therefore, a data buffer is provided for each of the plurality of low-order bus devices, and when a write cycle is executed for a different low-order bus device, substantially a plurality of data buffers are provided in the bus adapter. Cycle addresses can be stored.
[0011]
However, even in this proposal, when a continuous write cycle happens to be performed on the same low-order bus device, the corresponding data buffer is still one cycle on the high-order bus side. Therefore, the problem cannot be solved for successive write cycles to the same low-order bus device. Further, in this proposal, it is necessary to prepare an independent data buffer for each channel device. For this reason, there is a problem that the amount of hardware increases.
[0012]
Therefore, an object of the present invention is to provide a bus adapter device that enables the bus master device on the high-order bus to quickly shift to the next process even when a continuous write cycle is performed from the high-order bus to the low-order bus. To provide a computer system.
[0013]
Another object of the present invention is to provide a computer system which enables writing to different slave devices on the lower bus side by providing a single buffer in the bus adapter device.
[0014]
Still another object of the present invention is to perform reading of data from a slave device on a low-order bus when writing to a different slave device on the low-order bus using a single buffer in the bus adapter device. It is to provide a computer system capable of performing the following.
[0015]
[Means for Solving the Problems]
According to the first aspect of the present invention, (a) a high-order bus for transferring data using the first unit amount as one transfer amount, and (b) a second unit amount smaller than the first unit amount. And (c) connecting these buses, and selectively selecting a corresponding one of a plurality of slave devices on the low-order bus from the master device on the high-order bus to transfer data to them. Means for storing storage information including the contents and destination of the transfer data and the size of the transfer data when writing the data, in order of accessing the low-order bus, in order of a first unit amount for a plurality of times. An acknowledge signal sending means for sending an acknowledgment signal indicating that the writing of data to the slave device is completed to the master device every time the storage information is stored by the unit amount of 1; Data rearranging means for sequentially rearranging the data of the first unit amount into data of the second unit amount; transfer means for transferring the rearranged data to a slave device on a low-order bus; Storage presence / absence determination means for determining whether or not data has been stored, and a read standby in which when the master device on the high-order bus reads data from the slave device on the low-order bus, the storage presence / absence determination means waits until the storage presence / absence determination determines no storage. And a bus adapter device provided with means.
[0016]
That is, according to the first aspect of the present invention, for example, a bus adapter device that connects a high-order bus that transfers data in 32-bit units and a low-order bus that transfers data in 8-bit units is connected to a low-order bus from a master device on the high-order bus. When writing data in the upper slave device with the first unit amount as a single transfer amount, a storage unit having a capacity capable of temporarily storing a plurality of times in a first unit amount for temporarily storing information necessary for the data is prepared. Then, the necessary information is first stored in the first unit amount, and each time the stored information is stored in the first unit amount, the acknowledgment signal transmitting means does not wait for writing of data to the lower-order bus. The signal is sent to the corresponding master device in a pseudo manner. Further, storage presence / absence determination means for determining whether or not the above-mentioned information is stored in the storage means is prepared, and only when the above-mentioned information is not stored in the storage means, is data read out from the high-order bus. By responding to the request, it is possible to prevent a situation in which information not written in the slave device is read out, so that data can be read without any trouble.
[0017]
BEST MODE FOR CARRYING OUT THE INVENTION
[0018]
【Example】
Hereinafter, the present invention will be described in detail with reference to examples.
[0019]
FIG. 1 shows an outline of a computer system according to an embodiment of the present invention. The computer system according to the present embodiment includes a high-order bus 17 and a low-order bus 18 and a bus adapter device 21 for connecting these. In this embodiment, the data bus width of the high-order bus 17 is 32 bits, and the data bus width of the low-order bus 18 is 8 bits.
[0020]
The bus adapter device 21 includes a high-order bus slave circuit 22 connected to the high-order bus 17 and functioning as a slave device, and a low-order bus master circuit 23 connected to the low-order bus 18 and functioning as a master device. The high-order bus slave circuit 22 receives an access from a CPU (not shown) or a master device such as a DMA (Direct Memory Access) device on the high-order bus 17 side. The low-order bus master circuit 23 starts a write or read cycle a predetermined number of times for various slave devices arranged on the low-order bus 18 side.
[0021]
In the figure of the bus adapter device 21, the left half is a circuit portion that functions during a write cycle from the high-order bus 17 to the low-order bus 18, in which a FIFO (first in first out) memory 24 and an unpack register 25 are arranged. . In the figure of the bus adapter device 21, the right half is a circuit portion functioning in the cycle of reading the low-order bus 18 from the high-order bus 17, where a data latch circuit 26 and a pack register 27 are arranged. I have. In the following, description will be made separately for a write cycle and a read cycle from the high-order bus 17 to the low-order bus 18.
[0022]
Write cycle from high bus to low bus
[0023]
The high-order bus slave circuit 22 functions as a slave device of the high-order bus 17 and receives a write request from a master device on the high-order bus 17. The address information of the received request, the size information of the transfer data, and the transfer data are stored at the end of the FIFO memory 24. When this storage is completed, the high-order bus slave circuit 22 returns a transfer completion response indicating the completion of the transfer to the high-order bus 17 without actually transferring them to the low-order bus 18. As a result, the corresponding master device such as the CPU on the high-order bus 17 is released from the wait state, and can proceed to the next processing.
[0024]
Subsequent write processing to the lower bus 18 is performed by the bus adapter device 21 asynchronously with the higher bus 17 side. First, the low-order bus master circuit 23 extracts address information, transfer data size information, and transfer data stored at the head of the FIFO memory 24 as the earliest storage items. Then, as for the address information, if necessary, the upper bits thereof are decoded to generate a slave selection signal for selecting the corresponding slave device on the lower bus 18. The lower bits are directly output to the lower bus 18 via the lower bus master circuit 23.
[0025]
The transfer data read from the FIFO memory 24 is input to the unpack register 25, where it is decomposed and sent to the low-order bus master circuit 23 every 8 bits. The low-order bus master circuit 23 receives the size information of the transfer data from the FIFO memory 24 and activates a write cycle on the low-order bus 18 by the number of times indicated by the information. Then, all the transfer data in the FIFO memory 24 is sent out by sequentially sending out 8-bit data from the unpack register 25 onto the low-order bus 18.
[0026]
When the write operation on the low-order bus 18 for one entry of the FIFO memory 24 is completed in this way, the operation is shifted to the next entry and a write cycle for the next storage information is started. In this manner, the low-order bus master circuit 23 operates until all the information stored in the FIFO memory 24 becomes empty.
[0027]
Read cycle from high bus to low bus
[0028]
Next, an operation in the case where a read request is issued from the high-order bus 17 to the low-order bus 18 will be described. Upon receiving the read request, the high-order bus slave circuit 22 restrains the master device on the high-order bus 17 side in a wait state, sends address information and size information 41 of transfer data, and activates the low-order bus master circuit 23. The low-order bus master circuit 23 activates a read cycle the number of times indicated by the size information of the transfer data while sequentially updating the lower address for the slave device specified by the address information. As a result, data is read from the corresponding slave device on the low-order bus 18 in order of 8 bits.
[0029]
The pack register 27 aligns the read data. These are sequentially held in the data latch circuit 26. When all the data of the requested size is stored in the data latch circuit 26, the high-order bus slave circuit 22 receives the aligned data, sends it out to the high-order bus 17, and outputs a transfer completion response signal. The locked master device receives the data and releases the lock by the transfer completion response signal.
[0030]
Next, the FIFO memory 24 as a characteristic circuit in the computer system of this embodiment and its control will be described in more detail. The operation of updating the lower address on the low-order bus 18 side, the operation of unpacking data by the unpack register 25, and the operation of packing data by the pack register 27 are described in, for example, Japanese Patent Application Laid-Open No. 1-161561. As described above, these techniques are not particularly novel, and thus description thereof is omitted.
[0031]
FIG. 2 specifically shows a main part of the bus adapter device. The FIFO memory 24 outputs 20-bit address information 51, 2-bit size information 52, and 32-bit transfer data 53 as storage information of one entry. Of these, the upper 4 bits of the address information 51 are input to an address decoder 55, where they are decoded and output to a slave selection signal 56.0~ 56FifteenIs selected and output to the low-order bus 18. Here, the slave selection signal 560~ 56FifteenAre connected one by one to slave devices (not shown) connected to the low-order bus 18 so that a slave corresponding to the output slave selection signal 56x is selected.
[0032]
The remaining 16 bits of the address information 51 are supplied to the address counter 57. The address counter 57 receives a load signal 59 and a clock signal 61 from the first control circuit 58. Then, the lower bit of the address information 51 is loaded by the load signal 59, and is incremented by "1" by the clock signal 61.
[0033]
The size information 52 is supplied to the down counter 63. The first control circuit 58 inputs a load signal 64 and a clock signal 65 to the down counter 63. The size information 52 is loaded into the down counter 63 by the load signal 64 among them. Then, the content is decremented by “1” by the clock signal 65. As a result, when the count value underflows, an underflow signal 66 is supplied to the first control circuit 58.
[0034]
After executing the low-order bus cycle a specified number of times, the first control circuit 58 outputs a shift signal 69 to the FIFO memory 24 to advance the pointer by one. The FIFO memory 24 sends an empty signal 68 to the first control circuit 58 when all the stored information is sent. The transfer data 53 is output in parallel in units of 8 bits up to a maximum of 32 bits.
[0035]
The unpack register 25 is a four-stage shift register 71 for inputting data by 8 bits and shifting to the next stage.1~ 714Are connected in series. These shift registers 711~ 714, A load signal 72 and a clock signal 73 are supplied from the first control circuit 58. The enable signal 74 is output from the fourth shift register 71 in the final stage.4The data is supplied to an output buffer 77 for outputting transfer data 76 in units of 8 bits output from.
[0036]
The first control circuit 58 supplies an address strobe (AS) signal 78 and a read (Read) signal 79 in order to start the bus cycle for the lower bus 18, and an acknowledge signal (read) from the lower bus 18. ACK) 81 is received.
[0037]
FIG. 3 shows a state of control of the first control circuit. The first control circuit 58 monitors whether the FIFO memory 24 is empty (step S101). This can be determined by the state of the empty signal 68. When the FIFO memory 24 is no longer empty (N), a load signal 59 is sent to the address counter 57 to load the lower 16 bits of the address information 51 into it. Similarly, load signals 64 and 72 are transmitted to down counter 63 and shift register 71.1~ 714To load the size information 52 and the 32-bit transfer data 53 (step S102).
[0038]
When the stored information is loaded in this manner, the count value set in the down counter 63 is decremented by "1" by the clock signal 65 (step S103). Then, the logic levels of the address strobe (AS) signal 78, the read (Read) signal 79, and the enable (Enable) signal 74 are set to L (low) level, respectively, and a write cycle is started (step S104). Then, it waits for the acknowledge (ACK) signal 81 to go to the L level (step S105). When this happens, it is confirmed that the transfer data 76 has been written to the low-order bus 18, so the address strobe (AS) signal The write cycle is terminated by changing the signal 78 and the enable signal 74 to H (high) level (step S106).
[0039]
Thereafter, the count value set by the down counter 63 is further decremented by "1" by the clock signal 65 (step S107). As a result, if the underflow signal 66 is not output (step S108; N), all the transfer data 53 set in the unpack register 25 has not been transferred yet.
[0040]
Therefore, the address counter 57 is incremented by "1", and the shift register 71 in the unpack register 25 is incremented.1~ 714To transmit the next transfer data to the fourth shift register 71.4(Step S109). In this example, since the first 8-bit transfer data 76 has been transferred, first the third shift register 713Is stored in the fourth shift register 71.4Will be stored.
[0041]
In this state, the control returns to step S104 again, and the write cycle is started. Then, the second 8-bit transfer data 76 is transferred onto the low-order bus 18. Thereafter, similarly, the transfer data 76 is sent out to the low-order bus 18 in units of 8 bits up to a maximum of 32 bits.
[0042]
If the count value set in the down counter 63 is decremented by "1" and becomes an underflow (the value is "-1") (step S108; Y), all the storage information of one entry is transferred. It will be. Then, the shift signal 69 is sent to the FIFO memory 24, and the pointer is advanced by one to prepare for the transfer of the next transfer data 53 (return).
[0043]
Incidentally, as shown in FIG. 2, the empty signal 68 is also supplied to the high-order bus slave circuit 22. The high-order bus slave circuit 22 does not accept a read request on the high-order bus 17 until the empty signal 68 indicates that the FIFO memory 24 is empty (empty). This is to solve the inconsistency that occurs when the data of the address to be read still exists in the FIFO memory 24 in the bus adapter device 21.
[0044]
FIG. 4 shows a state of control of the high-order bus slave circuit when reading the low-order bus from the high-order bus. The high-order bus slave circuit 22 monitors that the address strobe (AS) signal of the high-order bus 17 becomes L level (step S201). When the level becomes L level (Y), it is checked whether or not the low-order bus 18 is a read access at that time (step S202). If so (Y), the process exits the idle state and waits until the FIFO memory 24 becomes empty (step S203). This is for the reason described above.
[0045]
When the FIFO memory 24 becomes empty (Y), the address information and the size information 41 of the transfer data are sent to the low-order bus master circuit 23 (step S204). As a result, the slave select signal 56 from the address decoder in the second control circuit (not shown) in the low-order bus master circuit 23 is output.0~ 56FifteenAre output, and the read signal 79 is set at the H level and the address strobe signal 78 is set at the L level.
[0046]
In this state, the second control circuit waits for an acknowledgment (ACK) signal 81 to be sent from the lower bus 18 (step S205). When the acknowledgment signal 81 is sent, the read data is present on the low-order bus 18, and the read data is latched by the data latch circuit 26 via the pack register 27 (step S206). Then, the address strobe signal 78 of the low-order bus 18 is set to the H level to terminate the bus cycle for reading (step S207).
[0047]
Next, the high-order bus slave circuit 22 checks whether the number of data read into the data latch circuit 26 matches the 8-bit unit size indicated in the size information (step S208). If they do not match (N), it is necessary to further read 8-bit data and add it to the data latch circuit 26. Therefore, the process returns to step S203, and this operation is repeated a required number of times.
[0048]
If the number of data read in step S208 matches the size in 8-bit units indicated in the size information (Y), the data latched by the data latch circuit 26 is sent out onto the high-order bus 17 and the master of the high-order bus 17 is sent out. A response to the effect that the data has been read is sent to the device (step S209), and the control is terminated (END).
[0049]
FIG. 5 compares the operation of the high-order bus and the operation of the low-order bus in this embodiment. 5A to 5E show the high-order bus 17 side, in which FIG. 5A shows the clock signal (CLK), FIG. 5B shows the address strobe signal (AS), and FIG. FIG. 3C shows the address information (Adr), FIG. 4D shows the data signal (Data), and FIG. 4E shows the acknowledge signal (ACK). Time t1To first address information A1And the first data D1Appear on the high bus 17, and when they are stored in the FIFO memory 24 (FIG. 1), the high bus slave circuit 22 sends an acknowledge signal back to the high bus 17. This time t2The master device on the high-order bus 17 side is released from the restraint and the next processing (A2, D2Later).
[0050]
6 (f) to 6 (i) show the operation on the lower bus 18 side, FIG. 6 (f) shows the address information (Adr), FIG. 6 (g) shows the address strobe signal (AS), FIG. 1H shows the data signal (Data), and FIG. 1I shows the acknowledge signal (ACK).
[0051]
After the high-order bus 17 stores information such as transfer data in the FIFO memory 24, the first 8-bit address information A1 + 0And data B1 + 0Is transferred to the lower bus 18, and the address strobe signal is set to L level. In this state, when the acknowledge signal indicating the completion of writing is transmitted from the low-order bus 18, the next second 8-bit address information A1 + 1And data B1 + 1Is transferred to the lower bus 18. In the same manner, transfer data of a maximum of 32 bits is transferred to the low-order bus 18 at a maximum of four times in the same manner.
[0052]
As described above, time t2Hereinafter, these address information A1 + 0~ A1 + 3And data B1 + 0~ B1 + 3Irrespective of the transfer control, the master on the high-order bus 17 can perform other operations. In this figure, the hatching indicates a part that has no particular meaning in terms of data access, and the same applies to the following FIG.
[0053]
FIG. 6 compares the operation of the conventional high-order bus and the operation of the low-order bus for comparison with the computer system of this embodiment. 5A to 5I respectively correspond to FIGS. 5A to 5I in FIG. Conventionally, at time t1To first address information A1And the first data D1Appear on the high bus 17, which are all written to the appropriate slave devices on the low bus 18 and at time t.3The corresponding master device on the high-order bus 17 is not released from the locked state until an acknowledge signal is returned.
[0054]
That is, as shown in FIG.1 + 0And data B1 + 0Is transferred to the low-order bus 18, the address strobe signal is set to L level, and when the acknowledge signal indicating the completion of writing is sent from the low-order bus 18, the next second 8-bit address information A1 + 1And data B1 + 1Is transferred to the lower bus 18.
[0055]
Similarly, transfer data of a maximum of 32 bits is transferred to the low-order bus 18 at a maximum of four times in a similar manner, and when all data transfer on the low-order bus 18 is completed, the acknowledge signal shown in FIG. It is sent out on the high-order bus 17 and the constraint is released when the corresponding master device recognizes this. Therefore, this restraint time T2Is the constraint time T shown in FIG.1It is usually much longer than.
[0056]
In the above description, the case where the master device on the high-order bus 17 transfers one-time write data to one slave device has been described, but the same master device sequentially transfers write data to a plurality of different slave devices. In some cases, the data is transferred continuously. FIG. 5 shows such a state, and at time t4From the second address information A2And the second data D2Appears on the high-order bus 17, and the control for the second write is similarly terminated by an acknowledge signal from the bus adapter device 21. And time t5To the third address information A3And the third data D3Appears on the high-order bus 17. The same applies hereinafter.
[0057]
The same master device enables these continuous controls because the address information A1It should be understood that the same master device can transfer a plurality of data to the low-order bus 18 in a shorter time. Of course, in the FIFO memory 24, not only the same master device but also different master devices can store their respective write access information.
[0058]
In the embodiment described above, the high-order bus slave circuit 22 and the low-order bus master circuit 23 which are shared for writing and reading are arranged in the bus adapter device 21. However, even if these have a circuit configuration separated for each application. Good. Further, the memory for storing the write address information and the like need not be limited to the FIFO memory, and the range of the number of stages is not particularly limited as long as it is a plurality of stages.
[0059]
Further, in the embodiment, the data input first to the FIFO memory is read out first and the data is written to the slave device on the lower bus, but the transfer data to the same slave device is collectively extracted and these are extracted. The transfer may be performed in order from the temporally earlier one. As a result, the low-order bus can be used more efficiently.
[0060]
Further, in the embodiment, when the data read is requested from the high-order bus to the low-order bus, the data read is performed after all the data in the FIFO memory is transferred. It is determined whether the transfer data to be transferred is stored in a storage unit such as a FIFO memory, and if not, the data is read even if the storage unit stores storage information addressed to another slave device. You may do so.
[0061]
【The invention's effect】
As described above, according to the first aspect of the present invention, the first unit amount is transferred from the master device on the high-order bus to the slave device on the low-order bus once in the bus adapter device connecting the high-order bus and the low-order bus. A storage means having a capacity capable of sequentially storing a plurality of times by a first unit amount for temporarily storing information necessary for writing data as the transfer amount is prepared. For this reason, data addressed to a plurality of slave devices can be stored and distributed therein, and overall processing efficiency can be improved. Moreover, an acknowledgment signal indicating that the data writing has been completed is simulated every time the first unit of data is stored in the storage means. Therefore, there is no need to wait until the data is completely stored in the storage means, and the master device on the high-order bus is released from the wait state earlier, and can proceed to the next processing. Further, the storage means stores the storage information in the order of acknowledgment to the lower bus, and the data is transferred in this order, so that the data processing can be performed in time series, and the processing can be performed accurately. Can be expected In addition to storing necessary information in the storage means, a determination means for determining whether or not the storage means is empty is prepared. Since reading of data is permitted, it is possible to prevent a situation in which information before being updated by the slave device on the lower bus side is read.
[Brief description of the drawings]
FIG. 1 is a system configuration diagram showing an outline of a computer system according to an embodiment of the present invention.
FIG. 2 is a block diagram specifically showing a main part of the bus adapter device of the present embodiment.
FIG. 3 is a flowchart showing a state of control of a first control circuit in the embodiment.
FIG. 4 is a flowchart showing a state of control of a high-order bus slave circuit when reading a low-order bus from a high-order bus in the embodiment.
FIG. 5 is a timing chart comparing operation of a high-order bus and a low-order bus in the embodiment.
FIG. 6 is a timing chart comparing the operation of a conventional high-order bus and the operation of a low-order bus for comparison with the computer system of the present embodiment.
FIG. 7 is a system configuration diagram showing a conventionally proposed computer system including one bus.
FIG. 8 is a system configuration diagram of a conventional computer system in which a high-order bus and a low-order bus are mixed.
[Explanation of symbols]
12 CPU, 13 main memory device, 14 input / output control device, 151, 152... Slave device, 17 ... Higher bus, 18 ... Lower bus, 21 ... Bus adapter device, 22 ... Higher bus slave circuit, 23 ... Lower bus master circuit, 24 ... FIFO memory, 25 ... Unpack register, 26 ... Data latch circuit 27, a pack register, 55, an address decoder, 57, an address counter, 58, a first control circuit, 63, a down counter, 711~ 714… Shift register

Claims (1)

第1の単位量を一回の転送量としてデータの転送を行う高位バスと、
前記第1の単位量よりも小さな第2の単位量でデータの転送を行う低位バスと、
これらのバスを接続し、高位バス上のマスタ装置から低位バス上の複数のスレーブ装置のうちの該当するものを択一的に選択してこれらにデータを書き込むときその転送データの内容や宛先、転送データのサイズからなる格納情報を低位バスにアクセスする順序で前記第1の単位量ずつ順次複数回分格納可能な容量の格納手段と、この格納手段に前記第1の単位量だけ前記格納情報を格納するたびに前記マスタ装置に対してスレーブ装置にデータの書き込みが完了したことを示すアクノリッジ信号を擬似的に送出するアクノリッジ信号送出手段と、前記格納手段に格納された第1の単位量のデータを第2の単位量のデータに順次組み換えるデータ組替え手段と、組み換えられたデータを低位バス上の前記スレーブ装置に転送する転送手段と、前記格納手段に前記情報が格納されているか否かを判別する格納有無判別手段と、高位バス上のマスタ装置が低位バス上のスレーブ装置からデータを読み出すとき格納有無判別手段が格納無しの判別を行うまでこれを待機させる読出待機手段とを備えたバスアダプタ装置
とを具備することを特徴とする計算機システム。
A high-order bus for transferring data using the first unit amount as a single transfer amount;
A lower-order bus for transferring data in a second unit amount smaller than the first unit amount;
When these buses are connected and the master device on the high-order bus selects one of a plurality of slave devices on the low-order bus and writes data to them, the contents and destination of the transfer data, A storage unit having a capacity capable of sequentially storing the storage information having the size of the transfer data a plurality of times in units of the first unit amount in the order of accessing the low-order bus; and storing the storage information in the storage unit by the first unit amount. Acknowledge signal sending means for artificially sending an acknowledge signal indicating completion of data writing to the slave device with respect to the master device each time the data is stored; and a first unit amount of data stored in the storage device Data rearranging means for sequentially rearranging the data into a second unit amount of data; transfer means for transmitting the rearranged data to the slave device on a low-order bus; Storage presence / absence determination means for determining whether or not the information is stored in the storage means; and storage presence / absence determination means for determining whether there is no storage when the master device on the higher bus reads data from the slave device on the lower bus. A bus adapter device comprising: a read standby unit that waits until the operation is performed.
JP2003170795A 2003-06-16 2003-06-16 Computer system Expired - Fee Related JP3760933B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003170795A JP3760933B2 (en) 2003-06-16 2003-06-16 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003170795A JP3760933B2 (en) 2003-06-16 2003-06-16 Computer system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP08206693A Division JP3528198B2 (en) 1993-04-08 1993-04-08 Computer system

Publications (2)

Publication Number Publication Date
JP2004005706A true JP2004005706A (en) 2004-01-08
JP3760933B2 JP3760933B2 (en) 2006-03-29

Family

ID=30438309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003170795A Expired - Fee Related JP3760933B2 (en) 2003-06-16 2003-06-16 Computer system

Country Status (1)

Country Link
JP (1) JP3760933B2 (en)

Also Published As

Publication number Publication date
JP3760933B2 (en) 2006-03-29

Similar Documents

Publication Publication Date Title
US6341318B1 (en) DMA data streaming
US6047339A (en) Buffering data that flows between buses operating at different frequencies
US5586299A (en) Systems and methods for accessing multi-port memories
WO2000026799A1 (en) Cross-clock domain data transfer method and apparatus
US20020184453A1 (en) Data bus system including posted reads and writes
US20050160202A1 (en) Direct memory access device
US6272583B1 (en) Microprocessor having built-in DRAM and internal data transfer paths wider and faster than independent external transfer paths
JP4060097B2 (en) Self-synchronous FIFO memory device and asynchronous information processing device
US6058439A (en) Asynchronous first-in-first-out buffer circuit burst mode control
KR100288177B1 (en) Memory access control circuit
US7774513B2 (en) DMA circuit and computer system
US20050066135A1 (en) Memory control apparatus and memory control method
JP4215417B2 (en) Method and apparatus for bus optimization in a processor local bus system
JP3191302B2 (en) Memory circuit
US20080320178A1 (en) DMA transfer apparatus
US10853123B2 (en) Memory module
JP3760933B2 (en) Computer system
US20080209085A1 (en) Semiconductor device and dma transfer method
JP3528198B2 (en) Computer system
JP2005235216A (en) Direct memory access control
US6175518B1 (en) Remote register hierarchy accessible using a serial data line
JP3467188B2 (en) Multiplexing bus order guarantee system.
JP2006024134A (en) Dma transfer device and dma transfer method
JP3082384B2 (en) First in, first out storage
JP5929600B2 (en) Information processing system, information processing apparatus, and electronic apparatus

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051128

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060102

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100120

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110120

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120120

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees