JP2004005706A - Computing system - Google Patents
Computing system Download PDFInfo
- 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
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明はデータバス幅の異なった2つのバスと、これらを接続してデータの転送を行わせるバスアダプタ装置とを有する計算機システムに係わり、特に高位バス側から低位バス側にデータを書き込む際に効率的な書込作業を可能にする計算機システムに関する。
【0002】
【従来の技術】
膨大なデータを短時間で処理するために、計算機システムの処理速度の向上が強く望まれている。このような要請に応ずるために、計算機システムを構成するCPU(中央処理装置)や主メモリ装置等の回路装置のデータ入出力幅としてのいわゆるデータバス幅が広くなっており、データの転送速度の高速化も著しくなっている。一例を挙げると、ある計算機システムではCPUが64ビットのデータ幅を有しており、データ転送のサイクル時間は15ns(ナノ秒)となっている。
【0003】
このように計算機システムの性能が向上しているが、一方でこれら新しい計算機システムに従来の装置を接続して活用できるという互換性維持も、ハードウェア設計資産の有効活用の上から強く要請されている。例えば前記したような高速の計算機システムに、データバス幅が8ビットあるいは16ビットで、サイクル時間が200nsといった低速なスレーブ装置を接続する必要が生じる。
【0004】
図7は従来提案された計算機システムを表わしたものである。バス11には、CPU12、主メモリ装置13ならびに入出力制御装置14が接続されている。低速のスレーブ装置151、152、……は、データバス幅の差異を吸収するためのバスアダプタ装置161、162、……を介してバス11と接続されている。
【0005】
このような計算機システムでは、低速のスレーブ装置151、152、……の数だけバスアダプタ装置161、162、……が必要となる。したがって、システムを構成するハードウェア量が増大するといった問題がある。そこで、高位バスと低位バスに分けてマスタ装置等の接続を行った計算機システムが提案されている。
【0006】
図8は、高位バスと低位バスが混用された従来の計算機システムの一例を表わしたものである。ここで高位バス17とはデータバス幅が比較的広く、データの転送速度も比較的高速なバスであり、低位バス18とはデータバス幅が比較的狭く、データの転送速度も比較的低速なバスである。この例では、高位バス17にCPU12、主メモリ装置13ならびに入出力制御装置14が接続されており、低位バス18には幾つかのスレーブ装置151、152……が接続されている。また、これら高位バス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に入力され、ここで解読されてスレーブ選択信号560〜5615のいずれかが選択されて低位バス18上に出力されるようになっている。ここでスレーブ選択信号560〜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段のシフトレジスタ711〜714を直列接続した構成となっている。これらのシフトレジスタ711〜714には、第1の制御回路58からロード信号72とクロック信号73が供給されるようになっている。また、イネーブル信号74は、最終段の第4のシフトレジスタ714から出力される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とシフトレジスタ711〜714に送ってサイズ情報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内のシフトレジスタ711〜714にクロック信号73を8個送出して次の転送データを第4のシフトレジスタ714にセットさせる(ステップS109)。この例では、最初の8ビットの転送データ76を転送した後なので、最初に第3のシフトレジスタ713に格納された内容が第4のシフトレジスタ714に格納されることになる。
【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の制御回路内のアドレスデコーダからスレーブ選択信号560〜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)をそれぞれ表わしている。時刻t1から第1のアドレス情報A1と第1のデータD1が高位バス17上に現われ、これらがFIFOメモリ24(図1)に格納されると、高位バススレーブ回路22は高位バス17にアクノリッジ信号を返送する。この時刻t2から高位バス17側のマスタ装置は拘束から開放されて次の処理(A2,D2以降)に移行することが可能になる。
【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】
前記したように時刻t2以降は、これらアドレス情報A1+0〜A1+3ならびにデータB1+0〜B1+3の転送制御にかかわらず、高位バス17上のマスタは他の作業を行うことができる。なお、この図でハッチングはデータのアクセス上、特に意味を持たない部分を示したものであり、これは次の図6についても同様である。
【0053】
図6は、本実施例の計算機システムと比較するために従来における高位バスと低位バスの動作を比較したものである。同図(a)〜(i)はそれぞれ図5の図(a)〜(i)とそれぞれ対応している。従来においては、時刻t1から第1のアドレス情報A1と第1のデータD1が高位バス17上に現われるが、これらは低位バス18上の該当するスレーブ装置にすべて書き込まれ、時刻t3にアクノリッジ信号が返送されてくるまで高位バス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上に送出され、該当するマスタ装置がこれを認識した時点で拘束が開放されることになる。したがって、この拘束時間T2は、図5に示した拘束時間T1に比べて遙かに長くなるのが通常である。
【0056】
以上の説明では、高位バス17上のマスタ装置が1つのスレーブ装置に1回分の書込データを転送する場合について説明したが、同一のマスタ装置が複数の異なったスレーブ装置に書込データを順に連続して転送する場合もある。図5ではこのよう状態を示しており、時刻t4からは第2のアドレス情報A2と第2のデータD2が高位バス17上に現われ、同様にバスアダプタ装置21からのアクノリッジ信号によってこの2番目の書き込みのための制御を終了させる。そして、時刻t5から第3のアドレス情報A3と第3のデータD3が高位バス17上に現われることになる。以下同様である。
【0057】
同一のマスタ装置によるこれらの連続制御を可能にしたのはアドレス情報A1等を順に格納していく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…入出力制御装置、151、152…スレーブ装置、17…高位バス、18…低位バス、21…バスアダプタ装置、22…高位バススレーブ回路、23…低位バスマスタ回路、24…FIFOメモリ、25…アンパック・レジスタ、26…データ・ラッチ回路、27…パック・レジスタ、55…アドレスデコーダ、57…アドレスカウンタ、58…第1の制御回路、63…ダウンカウンタ、711〜714…シフトレジスタ[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
[0005]
In such a computer system, the low-
[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-
[0007]
In such a computer system, the
[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-
[0020]
The
[0021]
In the figure of the
[0022]
Write cycle from high bus to low bus
[0023]
The high-order
[0024]
Subsequent write processing to the
[0025]
The transfer data read from the
[0026]
When the write operation on the low-
[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-
[0029]
The
[0030]
Next, the
[0031]
FIG. 2 specifically shows a main part of the bus adapter device. The
[0032]
The remaining 16 bits of the
[0033]
The
[0034]
After executing the low-order bus cycle a specified number of times, the
[0035]
The
[0036]
The
[0037]
FIG. 3 shows a state of control of the first control circuit. The
[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)
[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
[0040]
Therefore, the address counter 57 is incremented by "1", and the shift register 71 in the
[0041]
In this state, the control returns to step S104 again, and the write cycle is started. Then, the second 8-
[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
[0043]
Incidentally, as shown in FIG. 2, the
[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
[0045]
When the
[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
[0047]
Next, the high-order
[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
[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-
[0050]
6 (f) to 6 (i) show the operation on the
[0051]
After the high-
[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-
[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
[0054]
That is, as shown in FIG.1 + 0And data B1 + 0Is transferred to the low-
[0055]
Similarly, transfer data of a maximum of 32 bits is transferred to the low-
[0056]
In the above description, the case where the master device on the high-
[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-
[0058]
In the embodiment described above, the high-order
[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 ...
Claims (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.
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) |
-
2003
- 2003-06-16 JP JP2003170795A patent/JP3760933B2/en not_active Expired - Fee Related
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 |