JP3878097B2 - バス制御方式及びコンピュータシステム - Google Patents
バス制御方式及びコンピュータシステム Download PDFInfo
- Publication number
- JP3878097B2 JP3878097B2 JP2002262224A JP2002262224A JP3878097B2 JP 3878097 B2 JP3878097 B2 JP 3878097B2 JP 2002262224 A JP2002262224 A JP 2002262224A JP 2002262224 A JP2002262224 A JP 2002262224A JP 3878097 B2 JP3878097 B2 JP 3878097B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- processor
- read request
- system bus
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Bus Control (AREA)
Description
【産業上の利用分野】
本発明は、パーソナルコンピュータ、ワークステーション等の情報処理装置に係わり、特に、システムバスとしてアドレスとデータが多重化され、リードアクセス動作の起動サイクルと応答サイクルが、間に別の転送を挿入することで分離が可能であるスプリット転送プロトコルをサポートしたバス制御方式、および、これを用いたコンピュータシステムに関する。
【0002】
【従来の技術】
上記技術分野においては従来、システムバスとして、例えば、「Futurebus+ P896.1 Logical Layer Specifications」(1990,IEEE)などのように、リードアクセス動作の起動サイクルと応答サイクルが、間に別の転送を挿入することで分離が可能であるスプリット転送プロトコルをサポートしたバスが多く用いられている。その理由としては、リードアクセス動作の起動サイクルと応答サイクルの間に他のモジュールの転送の挿入を可能とすることで、バスの使用効率および応答性を向上させることが挙げられる。スプリット転送の典型的なタイミング例を図13に示す。図13は従来のスプリットリードアクセスタイミング例で、ADDT[0:63]は8バイト幅の多重化されたアドレス/データバス、ADRVはアドレス/データバスADDT[0:63]上に有効なアドレスが出力されていることを示すアドレスバリッド信号、DATAVはアドレス/データバスADDT[0:63]上に有効なデータが出力されていることを示すデータバリッド信号である。Futurebus+などの従来のバスでスプリットリードアクセスを行う場合には、まず起動元のモジュールがバス使用権を獲得した後、アドレスバリッド信号ADRVを有効にし、アクセス先のアドレスをADDT[0:63]で指定する。そのとき同時に、モード指定制御信号線により現在起動中のアクセスがスプリットリードアクセスであることをアクセス先モジュールに伝える(1301のタイミング)。この後、バス使用権を放棄し、起動サイクルを終了する。一方、この起動を受け取ったアクセス先のモジュールはリードデータが準備できた時点で、バス使用権を獲得し、アドレスバリッド信号ADRVを有効にし、アクセス先のアドレスをADDT[0:63]で指定する。そのとき同時に、モード指定制御信号線により現在起動中の転送がスプリットリードアクセスの応答であることを起動元モジュールに伝える(1302のタイミング)。次に、データバリッド信号DATAVを有効にし、ADDT[0:63]上に有効なリードデータを出力する。この後、アクセス先のモジュールはバス使用権を放棄し、応答サイクルを終了する。起動元のモジュールは、アクセス先のモジュールが出力するモード指定制御信号線およびアクセス先のアドレスにより、自分の起動したアクセスに対する応答であることを判断し、その応答データを取り込むという一連の制御を行っていた。
【0003】
【発明が解決しようとする課題】
近年、小型化、低価格化のため、バスの信号線を削減を図り、アドレスとデータを多重化したバスが多くなってきている。この場合、図13の従来例のように、スプリットリードアクセスの応答転送時に、アクセス先のアドレスを出力するサイクルを設けると、アドレスとデータの多重化により、アドレスサイクル分だけ余計にバスを占有することになり、バスの使用効率低下や応答時間の増大を招くという問題が生じる。
【0004】
本発明の目的は、このような問題を解決し、バスの使用効率を向上、応答時間を減少させることにより、高性能なバス制御方式を提供することにある。
【0005】
【課題を解決するための手段】
上記目的を達成するため本発明は、バスに接続できる各モジュールにモジュールIDを指定する手段を設ける。さらに、少なくとも2つ以上階層的に接続した複数バス構造のシステムにおいては、モジュールIDを他の階層のバス上に存在する個々のモジュールに対しても割り付ける。そして、他の階層のバス上に存在するモジュールからのアクセスをシステムバス上に流す場合、インタフェースをとるアダプタに、そのモジュールに対して割り付けられたシステムバス上のモジュールIDを付加してリードアクセスの起動をかける手段を設ける。一方、起動をかけたモジュールが応答を受け取る場合、付加されたモジュールIDに従い、他の階層のバス上に存在するモジュールにさかのぼって応答を返す手段を設ける。
【0006】
【作用】
他の階層のバス上に存在する個々のモジュールに対して割り付けられたモジュールIDをシステムバス上に流すことにより、たとえシステムバスのインタフェースとしては同一のアダプタであっても、システムバスに対して異なるモジュールIDでリード要求を発行することで、リード応答の入れ替わりも、応答サイクルのモジュールIDによりアダプタが見分けることができる。すなわち、マルチプロセッサシステム等において、それぞれのプロセッサが行うI/Oアクセスを1つずつまでなら並行してシステムバス上に発行することができるので、システムバスのアクセスの応答時間が低減される。
【0007】
【実施例】
図1は、本発明の第1の実施例におけるスプリットリードアクセスタイミングを示す図である。本実施例においては、アクセス先のアドレスを出力するサイクルを削除し、それをリードデータを受取る識別子(モジュールID)で代用している。起動サイクルは図13の従来例と同様、まず起動元のモジュールがバス使用権を獲得した後、アドレスバリッド信号ADRVを有効にし、アクセス先のアドレスをADDT[0:63]で指定する。そのとき同時に、モード指定制御信号線により現在起動中のアクセスがスプリットリードアクセスであることをアクセス先モジュールに伝える(105のタイミング)。この後、バス使用権を放棄し、起動サイクルを終了する。一方、この起動を受け取ったアクセス先のモジュールはリードデータが準備できた時点で、バス使用権を獲得した後、いきなりデータバリッド信号DATAVを有効にし、ADDT[0:63]上に有効なリードデータを出力する。そのとき同時に、モード指定制御信号線により現在起動中の転送がスプリットリードアクセスの応答であることを起動元モジュールに伝える(106のタイミング)。この後、アクセス先のモジュールはバス使用権を放棄し、応答サイクルを終了する。起動元のモジュールは、アクセス先のモジュールが出力するモード指定制御信号線およびアクセス元のモジュールを表すモジュールID(SINKMOD:スプリットリードの応答先モジュールの識別子)により、自分の起動したアクセスに対する応答であることを判断し、その応答データを取り込むという一連の制御を行う。本実施例のように、SINKMODが4ビットあれば16モジュールを指定できる。具体的には、図2に示すように、バスに接続されるバスアダプタ毎に1つずつモジュールIDが割り当てられる。図2は、階層バス構造をとったシステム構成例で、201、202は高速プロセッサバス、203、204は高速プロセッサバスとのインタフェースを行うバスアダプタ、205はシステムバス、206、207、208はIOバスとのインタフェースを行うバスアダプタ、209、210、211はIOバスである。本実施例ではバスアダプタ203、204、206、207、208にそれぞれ”0”、”1”、”2”、”3”、”4”のようにバスアダプタ毎に1つずつモジュールIDが割り当てられている。
【0008】
ところで、第1の実施例のような制御を行うバスがシステムに応用されるとき、多くの場合は、階層バス構造をとったシステム構成になる。図3は、このときのスプリットリードアクセスのデータの流れ図を示した図で、301、302、303はプロセッサ(P1、P2、P3)、304はマルチプロセッサ対応のプロセッサバス、305はプロセッサバス304とシステムバス307のインタフェースを行うバスアダプタ、306はメインメモリ、307はシステムバス、308はシステムバス307とIOバス311のインタフェースを行うバスアダプタ、309はシステムバス307とIOバス312のインタフェースを行うバスアダプタ、310はシステムバス307とIOバス313のインタフェースを行うバスアダプタ、311、312、313はIOバス、314、315はIOバス311上のIO、316、317は3IOバス312上のIO、318、319はIOバス313上のIOである。ここで、バスアダプタ毎に1つずつモジュールIDが割り当てると、例えば、バスアダプタ305には”0”、バスアダプタ308には”1”、バスアダプタ309には”2、”バスアダプタ310には”3”のようになる。このとき、プロセッサ1、プロセッサ2、プロセッサ3は独立にシステムバスにつながっているIOに対して独立にリード要求を発行する。このとき、図3のようなバスシステムにおいては、モジュールIDを無制限にシステムバス307上に発行していくと、もしアクセスしようとしているIOバス311がスプリット転送をサポートしているとアクセス時間の早いIOからの応答が先に返ってくる可能性があり、モジュールIDを参照しただけでは、アクセスの順序が保証できないという問題がある(本例では応答サイクルのSINKMODはすべて”0”で返ってくる)。すなわち、他の階層のバスが上記従来のバスと同様にスプリット転送プロトコルをサポートしていると、応答データの順序を保証するために、1つのバスアダプタから1つのリード要求しか発行できなくなる。これは特にマルチプロセッサシステムの場合などに生じる。
【0009】
本発明の第2の実施例は、マルチプロセッサシステムにおいて、それぞれのプロセッサが行うI/Oアクセスを連続してシステムバス上に発行し、並列化することで、このような問題をさらに解決するものである。以下、本発明の第2の実施例について説明する。
【0010】
図4は本実施例のシステム構成のブロック図で、401、402、403はプロセッサ(P1、P2、P3)、404はマルチプロセッサ対応のプロセッサバス、405はプロセッサバス404とシステムバス407のインタフェースを行うバスアダプタ、406はメインメモリ、407はシステムバス、408はシステムバス407とIOバス411のインタフェースを行うバスアダプタ、409はシステムバス407とIOバス412のインタフェースを行うバスアダプタ、410はシステムバス407とIOバス413のインタフェースを行うバスアダプタ、411、412、413はIOバス、414、415はIOバス411上のIO、416、417はIOバス412上のIO、418、419はIOバス413上のIOである。ここで、本実施例のシステムバス接続可能なバスアダプタ数を4とする。ただし、本発明では、モジュール識別子として、4ビット割り付けるとする。これにより、論理的には、16のモジュールを識別できることになる。本発明では、プロセッサ401には”0”、プロセッサ402には”1”、プロセッサ403には”2”、メインメモリ406には”3”、バスアダプタ408には”4”、バスアダプタ409には”5”、バスアダプタ410には”6”のようにモジュールIDを割り振る。アダプタ405は、プロセッサ401から403からのIOアクセス要求を、各プロセッサ1つ以内なら並列してシステムバス407上に発行する。
【0011】
図5は、図4のシステム構成でのアクセスタイムチャートを示すもので、プロセッサ401から403からのアクセス先がすべてモジュール408とし、プロセッサ401から403からのアクセス先のIOのアクセスタイムがそれぞれ12、9、6サイクルであると仮定したときのものである。サイクル501はリードの起動サイクルで、バスマスタはバスアダプタ405、リードデータの応答先であるSINKMODは”0”(起動元はプロセッサ401であることを示す)を示している。サイクル502はリードの起動サイクルで、バスマスタはバスアダプタ5、リードデータの応答先であるSINKMODは”1”(起動元はプロセッサ402であることを示す)を示している。
【0012】
サイクル503はリードの起動サイクルで、バスマスタはバスアダプタ405、リードデータの応答先であるSINKMODは”2”(起動元はプロセッサ403であることを示す)を示している。サイクル504はリードの応答サイクルで、バスマスタはバスアダプタ408、リードデータの応答先であるSINKMODは”2”を示している。このとき、バスアダプタ405はSINKMODの”2”をみて、取り込んだデータをプロセッサ403に返すような制御を行う。このときのデータの流れを図8に示す。サイクル505はリードの応答サイクルで、バスマスタはバスアダプタ408、リードデータの応答先であるSINKMODは”1”を示している。このとき、バスアダプタ405はSINKMODの”1”をみて、取り込んだデータをプロセッサ402に返すような制御を行う。このときのデータの流れを図7に示す。サイクル506はリードの応答サイクルで、バスマスタはバスアダプタ408、リードデータの応答先であるSINKMODは”0”を示している。このとき、バスアダプタ405はSINKMODの”0”をみて、取り込んだデータをプロセッサ401に返すような制御を行う。このときのデータの流れを図6に示す。また、メインメモリにモジュールIDを割り振れば、DMA(ダイレクトメモリアクセス)の指定も容易になる(図9)。
【0013】
ここで本発明の第1、第2の実施例によるスプリットリード競合時のサイクル数を図10に示す。(a)は第1の実施例のプロトコルを用いた場合のサイクル数、(b)は第2の実施例のプロトコルを用いた場合のサイクル数である。1001、1007はプロセッサ1のIOアクセスの起動サイクル、1002、1008はプロセッサ1のIOアクセスの応答サイクル、1003、1009はプロセッサ1のIOアクセスの起動サイクル、1004、1010はプロセッサ1のIOアクセスの応答サイクル、1005、1011はプロセッサ1のIOアクセスの起動サイクル、1006、1012はプロセッサ1のIOアクセスの応答サイクルである。このように、第1の実施例のように、同一アダプタからの複数リードの起動が許さないと、すべてのリードアクセスがシリアライズされ、合計27サイクルかかる。一方、第2の実施例のように、並列起動が行えば、12サイクルとなり、リードアクセスの応答性がさらに向上する。
【0014】
ところで、上記第1、第2の実施例の説明においては、スプリットリードアクセスの応答先をSINKMODという識別子で示したが、第3の実施例として、スプリットリードアクセスの応答元の識別子を本発明の応答先と同様に指定できるようにすると、応答先の識別子(SINKMOD)が同一であっても識別子の異なる複数の応答元に対して、同時にスプリットリード要求を発行することも可能となる。その場合の応答元識別子は、図11、図12に示すように、IO414、IO415にそれぞれモジュールID”7”、”8”を割付け、その応答元識別子の情報により、バスアダプタ405が順序保証をする制御を行えば良い。
【0015】
【発明の効果】
本発明によれば、それぞれのモジュールが行うアクセスを、アクセスの順序が保証をしながら、連続してシステムバス上に発行し、並列処理することができ、システムバスのアクセスの応答時間の低減が図れるという効果がある。さらに、マルチプロセッサシステム等においても、それぞれのプロセッサが行うI/Oアクセスを少ないピン数で同様に処理できる。また、本発明によれば、転送時に指定するモジュールIDは、物理的なアダプタと全く切り離して設定することができるため、必要度の高いモジュールに集中的にモジュールIDを割り当てることができ、システムに対応できる柔軟性を高めるという効果がある。
【図面の簡単な説明】
【図1】本発明の第1の実施例のバスプロトコルによるスプリットリードアクセスのデータの流れ図。
【図2】階層バスシステムの構成例。
【図3】第1の実施例をそのまま階層バスシステムに用いたときのバスプロトコルによるスプリットリードアクセスのデータの流れ図。
【図4】本発明の第2の実施例のシステム構成のブロック図。
【図5】本発明の第2の実施例のスプリットリードアクセス競合タイムチャート。
【図6】本発明の第2の実施例のデータの流れ図(1)。
【図7】本発明の第2の実施例のデータの流れ図(2)。
【図8】本発明の第2の実施例のデータの流れ図(3)。
【図9】本発明の第2の実施例のデータの流れ図(4)。
【図10】スプリットリード競合時のサイクル数を示す図。
【図11】本発明の第3の実施例のデータの流れ図(1)。
【図12】本発明の第3の実施例のデータの流れ図(2)。
【図13】従来のバスプロトコルによるスプリットリードアクセスのデータの流れ図。
【符号の説明】
401,402,403…プロセッサ、
404…プロセッサバス、
405…バスアダプタ、
406…メインメモリ
407…システムバス、
408,409,410…バスアダプタ、
411,412,413…IOバス、
414,415…IOバス11上のIO、
416、417…IOバス12上のIO、
418、419…IOバス13上のIO。
Claims (3)
- 情報処理を実行する情報処理装置であって、
入出力装置と、
該入出力装置が接続され、スプリット転送プロトコルをサポートするシステムバスと、
前記入出力装置へのリード要求を発行するプロセッサと、
前記プロセッサが接続され、スプリット転送プロトコルをサポートし前記システムバスとは異なる転送速度であるプロセッサバスと、
前記プロセッサバスと前記システムバスとの間に設けられ、前記プロセッサバスと前記システムバスのインターフェースを行うバスアダプターとを有し、
前記バスアダプターは、
前記プロセッサバスから、前記入出力装置への第1のリード要求を受信し、
受信した前記第1のリード要求を前記システムバスへ送信し、
前記第1のリード要求に応答して、前記入出力装置から前記システムバスを介して受信した第1のデータを、前記第1のリード要求に対する応答データとして前記プロセッサバスへ送信し、
前記第1のデータが前記システムバスを介して前記入出力装置から送信される前に、前記プロセッサバスから前記入出力装置への第2のリード要求を、前記システムバスへ送信するよう制御することを特徴とする情報処理装置。 - 情報処理を実行する情報処理装置であって、
入出力装置と、
該入出力装置が接続され、スプリット転送プロトコルをサポートするシステムバスと、
前記入出力装置へのリード要求を発行するプロセッサと、
前記プロセッサが接続され、スプリット転送プロトコルをサポートし前記システムバスとは異なる転送速度であるプロセッサバスと、
前記プロセッサバスと前記システムバスとの間に設けられ、前記プロセッサバスと前記システムバスのインターフェースを行うバスアダプターとを有し、
前記バスアダプターは、
前記プロセッサバスから、前記入出力装置への第1のリード要求を受信し、
受信した前記第1のリード要求を前記システムバスへ送信し、
前記第1のリード要求に応答して、前記入出力装置から前記システムバスを介して受信した第1のデータを、前記第1のリード要求に対する応答データとして前記プロセッサバスへ送信し、
前記システムバスを介して前記第1のデータを受信する前に、前記プロセッサバスから前記入出力装置への第2のリード要求を、前記システムバスへ送信するよう制御することを特徴とする情報処理装置。 - 請求項1ないし2のいずれかに記載の情報処理装置であって、
前記プロセッサバスには、第1と第2のプロセッサが接続され、
前記第1のプロセッサと前記第2のプロセッサとは、それぞれ第1の識別子と第2の識別子とを持ち、
前記バスアダプターは、
前記第1のリード要求を、前記第 1 の識別子と共に前記第1のプロセッサから、受信し、
前記第2のリード要求を、前記第2の識別子と共に前記第2のプロセッサから、受信し、
前記第1のリード要求に対する応答データを、前記システムバスから前記第1の識別子と共に受信し、前記第1の識別子と共に前記プロセッサバスへ送信することを特徴とする情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002262224A JP3878097B2 (ja) | 2002-09-09 | 2002-09-09 | バス制御方式及びコンピュータシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002262224A JP3878097B2 (ja) | 2002-09-09 | 2002-09-09 | バス制御方式及びコンピュータシステム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03973899A Division JP3866873B2 (ja) | 1999-02-18 | 1999-02-18 | 情報処理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003393264A Division JP2004078998A (ja) | 2003-11-25 | 2003-11-25 | バス制御方式及びコンピュータシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003114869A JP2003114869A (ja) | 2003-04-18 |
JP3878097B2 true JP3878097B2 (ja) | 2007-02-07 |
Family
ID=19196760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002262224A Expired - Lifetime JP3878097B2 (ja) | 2002-09-09 | 2002-09-09 | バス制御方式及びコンピュータシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3878097B2 (ja) |
-
2002
- 2002-09-09 JP JP2002262224A patent/JP3878097B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2003114869A (ja) | 2003-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3411300B2 (ja) | 情報処理装置 | |
JP2547424B2 (ja) | デジタルデータ処理システム | |
US5125093A (en) | Interrupt control for multiprocessor computer system | |
US5682551A (en) | System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto | |
EP1012734B1 (en) | Address translation in computer bus bridge devices | |
JPH11513150A (ja) | Pci間ブリッジを統合する入出力プロセッサ用アーキテクチャ | |
JP2001142842A (ja) | Dmaハンドシェークプロトコル | |
JPH04227557A (ja) | 情報処理装置 | |
JP2000222346A (ja) | インテリジェントi/oコントロ―ラにおけるpci―pciブリッジに対する結合デバイスに関する装置及び方法 | |
WO2015169054A1 (zh) | 一种实现数据一致性的方法、装置及计算机存储介质 | |
US6892266B2 (en) | Multicore DSP device having coupled subsystem memory buses for global DMA access | |
JPH04246745A (ja) | 情報処理装置及びその方法 | |
US5796979A (en) | Data processing system having demand based write through cache with enforced ordering | |
US6701387B1 (en) | Adaptive data fetch prediction algorithm | |
JP2831083B2 (ja) | マルチプロセッサシステムおよび割り込み制御装置 | |
TWI245222B (en) | Accessing configuration registers by automatically changing an index | |
JP3878097B2 (ja) | バス制御方式及びコンピュータシステム | |
JP3866873B2 (ja) | 情報処理装置 | |
JPH08314854A (ja) | データ転送システムおよびこれに関連する装置 | |
JPH11232213A (ja) | 入出力装置におけるデータ転送方式 | |
JP2006331452A (ja) | バス制御方式及びコンピュータシステム | |
JP2004078998A (ja) | バス制御方式及びコンピュータシステム | |
JP3411520B2 (ja) | 情報処理装置 | |
JP3466728B2 (ja) | 情報処理システム及びその方法 | |
JPH08272754A (ja) | マルチプロセッサシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20031125 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040203 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040302 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20050204 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060427 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061101 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101110 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101110 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111110 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111110 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121110 Year of fee payment: 6 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121110 Year of fee payment: 6 |