JPH0895899A - Dma転送制御装置 - Google Patents
Dma転送制御装置Info
- Publication number
- JPH0895899A JPH0895899A JP22758794A JP22758794A JPH0895899A JP H0895899 A JPH0895899 A JP H0895899A JP 22758794 A JP22758794 A JP 22758794A JP 22758794 A JP22758794 A JP 22758794A JP H0895899 A JPH0895899 A JP H0895899A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- request
- read
- control circuit
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Bus Control (AREA)
Abstract
(57)【要約】
【目的】 高性能のスプリット方式のI/Oバスに接続さ
れるI/O装置に於いて、高スループット、低レイテンシ
ーDMA転送制御機能を提供する。 【構成】 I/O装置上に、スプリットバスに対して同時
に出力するバス要求をサービスするための複数のコント
ローラ123,124、リード要求に対する応答パケッ
トを一時的に保持するバッファ112、前記複数のコン
トローラの出力から要求パケットを生成する要求パケッ
ト生成回路111、応答パケットのサービスを該当リー
ドコントローラに分配する応答パケット処理回路110
を有し、コントローラを要求パケットをサービスする機
能と応答パケットをサービスする機能に分割して構成す
ることにより、コントローラ内部の並列処理を可能とす
る。 【効果】 本発明によれば、TID毎に割り当てられた、
バストランザクションをサービスするコントローラの並
列動作のみならず、コントローラ内部の並列動作が可能
になるので従来よりも高性能DMA転送制御装置を実現
することができる。
れるI/O装置に於いて、高スループット、低レイテンシ
ーDMA転送制御機能を提供する。 【構成】 I/O装置上に、スプリットバスに対して同時
に出力するバス要求をサービスするための複数のコント
ローラ123,124、リード要求に対する応答パケッ
トを一時的に保持するバッファ112、前記複数のコン
トローラの出力から要求パケットを生成する要求パケッ
ト生成回路111、応答パケットのサービスを該当リー
ドコントローラに分配する応答パケット処理回路110
を有し、コントローラを要求パケットをサービスする機
能と応答パケットをサービスする機能に分割して構成す
ることにより、コントローラ内部の並列処理を可能とす
る。 【効果】 本発明によれば、TID毎に割り当てられた、
バストランザクションをサービスするコントローラの並
列動作のみならず、コントローラ内部の並列動作が可能
になるので従来よりも高性能DMA転送制御装置を実現
することができる。
Description
【0001】
【産業上の利用分野】本発明はパーソナルコンピータ、
ワークステーション等の計算機システムに於いて、スプ
リットバスに接続されるI/O装置内の高速DMA転送制
御方式に関わる。特に、メモリ装置とI/O装置間の低レ
イテンシ、高スループットDMA 転送装置の実現に適
している。
ワークステーション等の計算機システムに於いて、スプ
リットバスに接続されるI/O装置内の高速DMA転送制
御方式に関わる。特に、メモリ装置とI/O装置間の低レ
イテンシ、高スループットDMA 転送装置の実現に適
している。
【0002】
【従来の技術】高性能バスとして従来のインタロック方
式のバスの代わりにスプリットバス方式が採用されつつ
ある。この動きは特に、密結合マルチプロセッサシステ
ムに於いて顕著である。従来のインタロック方式のバス
は一つのバストランザクションが完結するまで次のバス
トランザクションを開始することができない。一方スプ
リットバスはバストランザクションを要求フェーズと応
答フェーズに分離することによりバスのロックを可能な
限り避けることによりバスの帶域を有効利用することが
可能である。このためインタロック方式のバスと比較す
ると低レイテンシ、高スループットデータ転送を行うこ
とができる。
式のバスの代わりにスプリットバス方式が採用されつつ
ある。この動きは特に、密結合マルチプロセッサシステ
ムに於いて顕著である。従来のインタロック方式のバス
は一つのバストランザクションが完結するまで次のバス
トランザクションを開始することができない。一方スプ
リットバスはバストランザクションを要求フェーズと応
答フェーズに分離することによりバスのロックを可能な
限り避けることによりバスの帶域を有効利用することが
可能である。このためインタロック方式のバスと比較す
ると低レイテンシ、高スループットデータ転送を行うこ
とができる。
【0003】スプリットバスの例としてXDBusと呼ばれ
るバスがある。(日経エレクトロニクス1993.10.25(pp.9
7-114)参照) XDBusでは情報はパケットの形で転送され
る。トランザクションは、要求パケットと応答パケット
が対になって完結する。XDBusでは、I/O装置に割り当て
られているIDが一個に限定されており、XDBusに接続さ
れる全ての装置は要求パケットと応答パケットの対応付
けを応答パケットの出し側で保証しなければならないと
いう制限がある。XDBusのようにI/O装置あたり1個のID
しか持たないスプリットバスでは、応答パケットの出し
側で一つのI/O装置からの要求パケットの到着順序を記
憶し、その順序通りに応答パケットを出す必要があると
いう問題がある。この問題を解決するために、I/O装置
に複数のIDを割り当て、連続する要求パケットに異なる
ID(以降、TID(Transaction ID)と呼ぶ))を付けて要求を
出し、応答側では応答パケットを返す準備ができた時点
で、要求パケットに付けられていたTIDを応答パケット
に付けて要求元に返すことにより任意の順序で応答パケ
ットを返すことができる。また、複数のTIDを使用する
ことによりスプリットバスの処理速度を上げるための技
術として、以下に示す2つの手段を用いていた。
るバスがある。(日経エレクトロニクス1993.10.25(pp.9
7-114)参照) XDBusでは情報はパケットの形で転送され
る。トランザクションは、要求パケットと応答パケット
が対になって完結する。XDBusでは、I/O装置に割り当て
られているIDが一個に限定されており、XDBusに接続さ
れる全ての装置は要求パケットと応答パケットの対応付
けを応答パケットの出し側で保証しなければならないと
いう制限がある。XDBusのようにI/O装置あたり1個のID
しか持たないスプリットバスでは、応答パケットの出し
側で一つのI/O装置からの要求パケットの到着順序を記
憶し、その順序通りに応答パケットを出す必要があると
いう問題がある。この問題を解決するために、I/O装置
に複数のIDを割り当て、連続する要求パケットに異なる
ID(以降、TID(Transaction ID)と呼ぶ))を付けて要求を
出し、応答側では応答パケットを返す準備ができた時点
で、要求パケットに付けられていたTIDを応答パケット
に付けて要求元に返すことにより任意の順序で応答パケ
ットを返すことができる。また、複数のTIDを使用する
ことによりスプリットバスの処理速度を上げるための技
術として、以下に示す2つの手段を用いていた。
【0004】(1) 複数のパケット制御回路をTID毎に用
意し、それらを並列に動作させる。但し、パケット制御
回路は要求パケット処理と要求パケットに対応する応答
パケット処理を順番に制御するための回路である。
意し、それらを並列に動作させる。但し、パケット制御
回路は要求パケット処理と要求パケットに対応する応答
パケット処理を順番に制御するための回路である。
【0005】(2) 要求パケットの出し側が要求パケッ
トを可能な限り連続的にバスに出力する。これを実現す
るためには、I/O装置内部のバス要求受付処理とバス上
でのバス要求受付処理を非同期に実行する必要がある
が、これは予めバスリクエスタからのバス要求の受付順
序をI/O装置内部のキューに記憶しておき、予め生成し
ておいた要求パケットをバスからバスグラント信号をも
らった時にバスに出力することにより実現できる。
トを可能な限り連続的にバスに出力する。これを実現す
るためには、I/O装置内部のバス要求受付処理とバス上
でのバス要求受付処理を非同期に実行する必要がある
が、これは予めバスリクエスタからのバス要求の受付順
序をI/O装置内部のキューに記憶しておき、予め生成し
ておいた要求パケットをバスからバスグラント信号をも
らった時にバスに出力することにより実現できる。
【0006】
【発明が解決しようとする課題】スプリットバスの処理
速度を上げるための手段としてI/O装置内部で複数のパ
ケット制御回路を並列動作させる(1)の方法については
考慮されていたが、一つのパケット制御回路内で要求パ
ケット処理と応答パケット処理をオーバラップして実行
する方法については余り考慮されていなかった。
速度を上げるための手段としてI/O装置内部で複数のパ
ケット制御回路を並列動作させる(1)の方法については
考慮されていたが、一つのパケット制御回路内で要求パ
ケット処理と応答パケット処理をオーバラップして実行
する方法については余り考慮されていなかった。
【0007】
【課題を解決するための手段】上記の課題を解決するた
めに、従来はシリアルにしか実行されていなかった要求
パケット処理と応答パケット処理を一つのパケット制御
回路内で並列実行する。
めに、従来はシリアルにしか実行されていなかった要求
パケット処理と応答パケット処理を一つのパケット制御
回路内で並列実行する。
【0008】図4に上記の課題を解決するパケット制御
回路の構成を示す。図4の構成では、装置には3個のTID
が割り当てられており、各々のTIDに対してパケット制
御回路が存在し、最大2つのリードバストランザクショ
ン、1つのライトバストランザクションの並列動作が可
能である。但し、リードバストランザクションは要求パ
ケットと応答パケットからなるが、ライトバストランザ
クションは要求パケットのみからなるとする。上記の課
題を解決するために、リードコントローラ内には要求パ
ケットを出す要因となるバス要求を出したバスリクエス
タのID情報を第一のタグIDとして、応答パケットデータ
を受け取るべきバスリクエスタのID情報を第二のタグID
として記憶する。なお、要求パケットのみでバストラン
ザクションが完結するライトコントローラは第一のタグ
IDのみを持つ。第一のタグIDは第一のバス要求を受け付
けてから次に第二のバス要求を受け付けるまでの間第一
のバス要求を出したバスリクエスタIDを記憶し、第二の
タグIDは第一のバス要求に対応するバスグラントをもら
ってから、第二のバス要求に対するバスグラントをもら
うまでの間第一のバス要求を出したバスリクエスタIDを
記憶する。
回路の構成を示す。図4の構成では、装置には3個のTID
が割り当てられており、各々のTIDに対してパケット制
御回路が存在し、最大2つのリードバストランザクショ
ン、1つのライトバストランザクションの並列動作が可
能である。但し、リードバストランザクションは要求パ
ケットと応答パケットからなるが、ライトバストランザ
クションは要求パケットのみからなるとする。上記の課
題を解決するために、リードコントローラ内には要求パ
ケットを出す要因となるバス要求を出したバスリクエス
タのID情報を第一のタグIDとして、応答パケットデータ
を受け取るべきバスリクエスタのID情報を第二のタグID
として記憶する。なお、要求パケットのみでバストラン
ザクションが完結するライトコントローラは第一のタグ
IDのみを持つ。第一のタグIDは第一のバス要求を受け付
けてから次に第二のバス要求を受け付けるまでの間第一
のバス要求を出したバスリクエスタIDを記憶し、第二の
タグIDは第一のバス要求に対応するバスグラントをもら
ってから、第二のバス要求に対するバスグラントをもら
うまでの間第一のバス要求を出したバスリクエスタIDを
記憶する。
【0009】
【作用】このように要求パケットと応答パケットが対に
なって完結するバストランザクションのサービスを制御
するパケット制御回路に於て、連続する2つのバス要求
元のバスリクエスタIDを2つのタグIDに記憶することが
できるので、応答パケットを期待しているバスリクエス
タに対するサービスを実行しながら別のバスリクエスタ
からのバス要求を受付けることができ、要求パケットの
処理と応答パケットの処理を同一パケット制御回路内で
オーバラップ動作させることが可能になり、スプリット
バスの処理速度を上げることができる。
なって完結するバストランザクションのサービスを制御
するパケット制御回路に於て、連続する2つのバス要求
元のバスリクエスタIDを2つのタグIDに記憶することが
できるので、応答パケットを期待しているバスリクエス
タに対するサービスを実行しながら別のバスリクエスタ
からのバス要求を受付けることができ、要求パケットの
処理と応答パケットの処理を同一パケット制御回路内で
オーバラップ動作させることが可能になり、スプリット
バスの処理速度を上げることができる。
【0010】
【実施例】以下、図1〜6を用いて本発明のDMA転送制
御方式に基づいて動作するDMA転送処理装置の実施例
について詳細に説明する。
御方式に基づいて動作するDMA転送処理装置の実施例
について詳細に説明する。
【0011】図1にDMA転送処理装置のブロック図を
示す。100はバスに接続されたDMA転送処理装置であ
る。ここでは、スプリットバス101は、バストランザク
ションがDMAリードの場合には、要求パケットをスプ
リットバスに出力する要求フェーズ、及び応答パケット
をスプリットバスから受け取る応答フェーズからなり、
DMAライトの場合には要求パケットをバスに出力する
要求フェーズのみからなるバスであるとする。従って、
DMAリード要求パケットにはリードアドレスが要求パ
ケットデータとして、DMAライト要求パケットには同
様にライトアドレス、及びライトデータが要求パケット
データとして含まれる。またDMAリード応答パケット
にはリードデータが応答パケットデータとして含まれ
る。102はバスインタフェイス回路である。107は応答パ
ケットの到着を示すタイミング信号であり、108は応答
パケットに含まれるトランザクションID値であり、応答
パケットに対応するリード要求パケットに含まれるトラ
ンザクションID値と同一値である。但し、トランザクシ
ョンID値は、要求パケットを出した装置のIDを示すバス
上の制御信号である。106は内部データバスである。
示す。100はバスに接続されたDMA転送処理装置であ
る。ここでは、スプリットバス101は、バストランザク
ションがDMAリードの場合には、要求パケットをスプ
リットバスに出力する要求フェーズ、及び応答パケット
をスプリットバスから受け取る応答フェーズからなり、
DMAライトの場合には要求パケットをバスに出力する
要求フェーズのみからなるバスであるとする。従って、
DMAリード要求パケットにはリードアドレスが要求パ
ケットデータとして、DMAライト要求パケットには同
様にライトアドレス、及びライトデータが要求パケット
データとして含まれる。またDMAリード応答パケット
にはリードデータが応答パケットデータとして含まれ
る。102はバスインタフェイス回路である。107は応答パ
ケットの到着を示すタイミング信号であり、108は応答
パケットに含まれるトランザクションID値であり、応答
パケットに対応するリード要求パケットに含まれるトラ
ンザクションID値と同一値である。但し、トランザクシ
ョンID値は、要求パケットを出した装置のIDを示すバス
上の制御信号である。106は内部データバスである。
【0012】応答パケット処理回路110は、リード要求
をサービスするコントローラに対する応答データ到着タ
イミング信号117を生成すると同時に、応答パケットを
バスリクエスタに正しく転送する機能を有する。なお、
応答パケットデータはバスリクエスタに引き渡される前
にタイミング信号129に従ってデータバッファ112に書き
込まれた後、適当なタイミングでバスリクエスタがデー
タバッファの内容をリード要求の順序通りに読みだすこ
とにより応答パケットの到着順序が逆転したとしても要
求順序通りにバスリクエスタにデータを引き渡すことが
可能である。
をサービスするコントローラに対する応答データ到着タ
イミング信号117を生成すると同時に、応答パケットを
バスリクエスタに正しく転送する機能を有する。なお、
応答パケットデータはバスリクエスタに引き渡される前
にタイミング信号129に従ってデータバッファ112に書き
込まれた後、適当なタイミングでバスリクエスタがデー
タバッファの内容をリード要求の順序通りに読みだすこ
とにより応答パケットの到着順序が逆転したとしても要
求順序通りにバスリクエスタにデータを引き渡すことが
可能である。
【0013】図2に応答パケット処理回路の一実施例を
示す。比較器201は応答パケットの中に含まれるトラン
ザクションID値108と自装置のID値206との一致比較を行
う。応答パケットの中に含まれるトランザクションID値
は、自装置宛のパケットであればリード要求パケットを
出した装置のID値と等しいので、この比較器によりスプ
リットバス上の応答パケットが自装置宛のパケットであ
るかどうかの判定を行うことができる。比較器202はリ
ードコントローラA123がサービスする応答パケットであ
るかどうかの判定を行い、比較器203はリードコントロ
ーラB124がサービスする応答パケットであるかどうかの
判定を行う。208はリードコントローラAがサービスする
要求パケットに付けたトランザクションID値のLSBビッ
トを、209はリードコントローラBがサービスする要求パ
ケットに付けたトランザクションID値のLSBビットを示
す。本実施例ではリードコントローラは2個しかないの
で、応答パケットをサービスするリードコントローラを
区別するためのビットは1ビットで十分であるが、リー
ドコントローラが3個以上ある場合には、2ビット以上必
要である。213は、リードコントローラAがサービスすべ
き応答パケットが到着しているタイミングを示すデータ
バリッド信号であり、214も同様に、リードコントロー
ラBがサービスすべき応答パケットが到着しているタイ
ミングを示すデータバリッド信号である。215はデコー
ダであり、応答パケットを期待しているバスリクエスタ
に対応する第二のタグID値128、及び前記データバリッ
ド信号からリード要求を出したバスリクエスタに対する
データ書き込みタイミング信号129を生成する。
示す。比較器201は応答パケットの中に含まれるトラン
ザクションID値108と自装置のID値206との一致比較を行
う。応答パケットの中に含まれるトランザクションID値
は、自装置宛のパケットであればリード要求パケットを
出した装置のID値と等しいので、この比較器によりスプ
リットバス上の応答パケットが自装置宛のパケットであ
るかどうかの判定を行うことができる。比較器202はリ
ードコントローラA123がサービスする応答パケットであ
るかどうかの判定を行い、比較器203はリードコントロ
ーラB124がサービスする応答パケットであるかどうかの
判定を行う。208はリードコントローラAがサービスする
要求パケットに付けたトランザクションID値のLSBビッ
トを、209はリードコントローラBがサービスする要求パ
ケットに付けたトランザクションID値のLSBビットを示
す。本実施例ではリードコントローラは2個しかないの
で、応答パケットをサービスするリードコントローラを
区別するためのビットは1ビットで十分であるが、リー
ドコントローラが3個以上ある場合には、2ビット以上必
要である。213は、リードコントローラAがサービスすべ
き応答パケットが到着しているタイミングを示すデータ
バリッド信号であり、214も同様に、リードコントロー
ラBがサービスすべき応答パケットが到着しているタイ
ミングを示すデータバリッド信号である。215はデコー
ダであり、応答パケットを期待しているバスリクエスタ
に対応する第二のタグID値128、及び前記データバリッ
ド信号からリード要求を出したバスリクエスタに対する
データ書き込みタイミング信号129を生成する。
【0014】要求パケット処理回路111は、パケット制
御回路119からの制御信号に基づいてDMAリード、又
はDMAライト等の要求パケットを生成し、バスインタ
フェイス回路102に引き渡すと同時にパケット制御回路
内のコントローラに対する動作タイミング信号、及びラ
イト要求を出したバスリクエスタ130からのデータ読み
出しタイミング信号139を生成する。
御回路119からの制御信号に基づいてDMAリード、又
はDMAライト等の要求パケットを生成し、バスインタ
フェイス回路102に引き渡すと同時にパケット制御回路
内のコントローラに対する動作タイミング信号、及びラ
イト要求を出したバスリクエスタ130からのデータ読み
出しタイミング信号139を生成する。
【0015】図3に要求パケット処理回路の一実施例を
示す。まず最初にバスリクエストアービタ制御回路116
からリード要求信号126、又はライト要求信号137を受け
取ることによりバスリクエスト信号103をアサートす
る。次にバスグラント信号105を受けとった時まだバス
に出力していない要求パケットをバスリクエストアービ
タ制御回路116が出すバス要求順序をバスリクエストキ
ュー制御回路304で記憶することによりバスリクエスト
アービタ制御回路116からの要求順序通りにバスに出力
する。バスグラント信号のアサートにより、次にバスに
出力すべき要求パケットがリード要求パケットであれば
リード要求バスグラント信号115を、ライト要求パケッ
トであればライト要求バスグラント信号118を返す。バ
スリクエストキュー制御回路304は、バスリクエストキ
ューの制御を行うステートマシンである。但し、バスリ
クエストキューとは各コントローラに対する起動要求信
号の生起順序を記憶するキューのことである。このステ
ートマシンは起動要求信号の生起順序を記憶するために
各コントローラに対する起動要求信号のアサートにより
エンキュー処理を行い、バスグラント信号105がアサー
トされると、リクエストキューの先頭に位置する起動要
求信号を受け付けたコントローラに対してバスグラント
信号をアサートすると同時にデキュー処理を行う。ま
た、キューの先頭に位置するバス要求をサービスするコ
ントローラに対してバス要求順位TOP信号をアサートす
る。バスリクエストを出してからバスグラントをもらう
までの期間、リード要求パケットの要求順位TOP信号12
5、リード要求を出したバスリクエスタに対応する第一
のタグID値128、ライト要求パケットの要求順位TOP信号
134、ライト要求を出したバスリクエスタに対応するタ
グID値138は変化しないので、これをエンコーダ301でエ
ンコードすることにより要求パケットの属性を示す制御
信号104を生成する。但し、リードコントローラのバス
要求順位TOP信号125とライトコントローラのバス要求順
位TOP信号134は排他信号であり、ライト要求パケットの
データ有効信号を生成するためにライトデータバリッド
信号135を入力する。要求パケットの属性を示す制御信
号は、アドレス有効信号、データ有効信号、自装置のID
値206から作られるトランザクションID値、バストラン
ザクションコマンド等の情報を含む。同様に、ライトコ
ントローラがサービスすべきライト要求パケットに含ま
れるデータをバスに出力するためのタイミング信号135
とタグID値138をデコーダ302でデコードすることにより
実際にバス要求を出した一つのバスリクエスタに対する
データ読み出しタイミング信号139を生成する。バスリ
クエスト制御回路303は、リードコントローラに対する
起動要求信号126、ライトコントローラに対する起動要
求信号137を論理的にORした信号によりバスリクエスト
信号108をアサートしバスグラント信号105のアサートに
よりバスリクエスト信号108をネゲートする。
示す。まず最初にバスリクエストアービタ制御回路116
からリード要求信号126、又はライト要求信号137を受け
取ることによりバスリクエスト信号103をアサートす
る。次にバスグラント信号105を受けとった時まだバス
に出力していない要求パケットをバスリクエストアービ
タ制御回路116が出すバス要求順序をバスリクエストキ
ュー制御回路304で記憶することによりバスリクエスト
アービタ制御回路116からの要求順序通りにバスに出力
する。バスグラント信号のアサートにより、次にバスに
出力すべき要求パケットがリード要求パケットであれば
リード要求バスグラント信号115を、ライト要求パケッ
トであればライト要求バスグラント信号118を返す。バ
スリクエストキュー制御回路304は、バスリクエストキ
ューの制御を行うステートマシンである。但し、バスリ
クエストキューとは各コントローラに対する起動要求信
号の生起順序を記憶するキューのことである。このステ
ートマシンは起動要求信号の生起順序を記憶するために
各コントローラに対する起動要求信号のアサートにより
エンキュー処理を行い、バスグラント信号105がアサー
トされると、リクエストキューの先頭に位置する起動要
求信号を受け付けたコントローラに対してバスグラント
信号をアサートすると同時にデキュー処理を行う。ま
た、キューの先頭に位置するバス要求をサービスするコ
ントローラに対してバス要求順位TOP信号をアサートす
る。バスリクエストを出してからバスグラントをもらう
までの期間、リード要求パケットの要求順位TOP信号12
5、リード要求を出したバスリクエスタに対応する第一
のタグID値128、ライト要求パケットの要求順位TOP信号
134、ライト要求を出したバスリクエスタに対応するタ
グID値138は変化しないので、これをエンコーダ301でエ
ンコードすることにより要求パケットの属性を示す制御
信号104を生成する。但し、リードコントローラのバス
要求順位TOP信号125とライトコントローラのバス要求順
位TOP信号134は排他信号であり、ライト要求パケットの
データ有効信号を生成するためにライトデータバリッド
信号135を入力する。要求パケットの属性を示す制御信
号は、アドレス有効信号、データ有効信号、自装置のID
値206から作られるトランザクションID値、バストラン
ザクションコマンド等の情報を含む。同様に、ライトコ
ントローラがサービスすべきライト要求パケットに含ま
れるデータをバスに出力するためのタイミング信号135
とタグID値138をデコーダ302でデコードすることにより
実際にバス要求を出した一つのバスリクエスタに対する
データ読み出しタイミング信号139を生成する。バスリ
クエスト制御回路303は、リードコントローラに対する
起動要求信号126、ライトコントローラに対する起動要
求信号137を論理的にORした信号によりバスリクエスト
信号108をアサートしバスグラント信号105のアサートに
よりバスリクエスト信号108をネゲートする。
【0016】パケット制御回路119は、リードコントロ
ーラA123、及びリードコントローラB124、ライトコント
ローラ135からなり、リード要求のサービスとライト要
求のサービスは各々のコントローラで独立制御すること
により並列動作を可能にしている。各コントローラはス
プリットバスの仕様に依存しないプリミティブなDMA
制御機能のみを提供する。
ーラA123、及びリードコントローラB124、ライトコント
ローラ135からなり、リード要求のサービスとライト要
求のサービスは各々のコントローラで独立制御すること
により並列動作を可能にしている。各コントローラはス
プリットバスの仕様に依存しないプリミティブなDMA
制御機能のみを提供する。
【0017】バスリクエストアービタ制御回路116はリ
ード要求を出した複数のバスリクエスタ120、及びライ
ト要求を出した複数のバスリクエスタ130からのバス要
求をシリアライズした後、シリアライズしたバス要求を
サービスすべきコントローラを選択して起動すると同時
に、要求を受け付けたバスリクエスタに対してグラント
信号を返すことにより次の要求の出力を許可する機能を
有する。シリアライズしたバス要求がリード要求の場合
にはリードコントローラ起動信号126を、ライト要求の
場合にはライトコントローラ起動信号137をアサートす
る。バス要求のシリアライズのアルゴリズムは例えば以
下の通りである。
ード要求を出した複数のバスリクエスタ120、及びライ
ト要求を出した複数のバスリクエスタ130からのバス要
求をシリアライズした後、シリアライズしたバス要求を
サービスすべきコントローラを選択して起動すると同時
に、要求を受け付けたバスリクエスタに対してグラント
信号を返すことにより次の要求の出力を許可する機能を
有する。シリアライズしたバス要求がリード要求の場合
にはリードコントローラ起動信号126を、ライト要求の
場合にはライトコントローラ起動信号137をアサートす
る。バス要求のシリアライズのアルゴリズムは例えば以
下の通りである。
【0018】まず第一に、レディ状態にあるコントロー
ラに対してサービスを要求するバスリクエスタのみがシ
リアライズの調停に参加する資格を有する。ここで、レ
ディ状態とはバス要求に対するバストランザクションの
制御を実行していない状態のことを指す。例えば、リー
ドコントローラのレディ信号127がネゲートされている
場合には、たとえリード要求信号121がアサートれてい
てもリード要求は受け付けられない。従って、この場
合、リード要求を行っているバスリクエスタに対して要
求を受け付けたことを示すグラント信号122はアサート
されない。この時、ライトコントローラがレデイ状態、
かつバスリクエスタからのライト要求信号131がアサー
トされている場合には、シリアライズの結果としてライ
ト要求を受け付ける。具体的には、ライトコントローラ
起動要求信号137をアサートすることによりライトコン
トローラ135を起動すると同時に、ライト要求を出した
バスリクエスタに対して要求を受け付けたことを示すグ
ラント信号132をアサートする。グラント信号132のアサ
ートによりライト要求信号131はネゲートされる。
ラに対してサービスを要求するバスリクエスタのみがシ
リアライズの調停に参加する資格を有する。ここで、レ
ディ状態とはバス要求に対するバストランザクションの
制御を実行していない状態のことを指す。例えば、リー
ドコントローラのレディ信号127がネゲートされている
場合には、たとえリード要求信号121がアサートれてい
てもリード要求は受け付けられない。従って、この場
合、リード要求を行っているバスリクエスタに対して要
求を受け付けたことを示すグラント信号122はアサート
されない。この時、ライトコントローラがレデイ状態、
かつバスリクエスタからのライト要求信号131がアサー
トされている場合には、シリアライズの結果としてライ
ト要求を受け付ける。具体的には、ライトコントローラ
起動要求信号137をアサートすることによりライトコン
トローラ135を起動すると同時に、ライト要求を出した
バスリクエスタに対して要求を受け付けたことを示すグ
ラント信号132をアサートする。グラント信号132のアサ
ートによりライト要求信号131はネゲートされる。
【0019】逆に、ライトコントローラのレディ信号13
6がネゲートされていてリードコントローラのレディ信
号127がアサートされている場合には、リード要求を受
け付ける。具体的には、リード要求信号126をアサート
することによりリードコントローラA123、又はリードコ
ントローラB124を起動すると同時に、リード要求を出し
たバスリクエスタに対して要求を受け付けたことを示す
グラント信号122をアサートする。グラント信号122のア
サートによりリード要求信号126はネゲートされるが、
次のリード要求がある場合にはリード要求信号126は再
びアサートされる。このように複数のリードコントロー
ラを有することにより応答パケットの到着を待たずにレ
ディ状態のリードコントローラを次々に起動することが
できのでリード要求を連続発行することができる。ま
た、リードコントローラ、ライトコントローラ共にレデ
ィ状態の場合には、優先順位に従って一つのコントロー
ラのみを起動する。例えば、ラウンドロビンに基づく優
先順位アルゴリズムでは、前回シリアライズした要求が
リード要求であった場合には、次回リード要求とライト
要求が同時にアサートされた場合にはライト要求を優先
して受け付けるようにする。また、バスリクエストアー
ビタ制御回路116は、上記シリアライズの結果選択した
コントローラを起動する際に、サービスを要求したバス
リクエスタのID値をタグID値114に変換するが、次のバ
ス要求を受け付けるとこの値は変化してしまうためにタ
グID 値114は起動されたコントローラ内部にバストラン
ザクションが完結するまで記憶する。なお、タグID 値
は選択されたバスリクエスタID値と一意に対応する。
6がネゲートされていてリードコントローラのレディ信
号127がアサートされている場合には、リード要求を受
け付ける。具体的には、リード要求信号126をアサート
することによりリードコントローラA123、又はリードコ
ントローラB124を起動すると同時に、リード要求を出し
たバスリクエスタに対して要求を受け付けたことを示す
グラント信号122をアサートする。グラント信号122のア
サートによりリード要求信号126はネゲートされるが、
次のリード要求がある場合にはリード要求信号126は再
びアサートされる。このように複数のリードコントロー
ラを有することにより応答パケットの到着を待たずにレ
ディ状態のリードコントローラを次々に起動することが
できのでリード要求を連続発行することができる。ま
た、リードコントローラ、ライトコントローラ共にレデ
ィ状態の場合には、優先順位に従って一つのコントロー
ラのみを起動する。例えば、ラウンドロビンに基づく優
先順位アルゴリズムでは、前回シリアライズした要求が
リード要求であった場合には、次回リード要求とライト
要求が同時にアサートされた場合にはライト要求を優先
して受け付けるようにする。また、バスリクエストアー
ビタ制御回路116は、上記シリアライズの結果選択した
コントローラを起動する際に、サービスを要求したバス
リクエスタのID値をタグID値114に変換するが、次のバ
ス要求を受け付けるとこの値は変化してしまうためにタ
グID 値114は起動されたコントローラ内部にバストラン
ザクションが完結するまで記憶する。なお、タグID 値
は選択されたバスリクエスタID値と一意に対応する。
【0020】次に、図4にバスリクエストキュー制御回
路304を各コントローラの内部に分散して持つ場合のパ
ケット制御回路の実施例を示す。本実施例では、図1に
示したパケット制御回路119と同様に2個のリードコント
ローラ、及び1個のライトコントローラが並列動作す
る。図3に示したバスリクエストキュー制御回路304をス
レーブシーケンサとして各コントローラ内に分散して持
つ点で図1に示したパケット制御回路119と異なる。まず
最初にシーケンサ動作に必要となるシーケンサ以外の論
理について説明する。403、413はリード要求を出したバ
スリクエスタのタグID値を記憶する二つのラッチと応答
パケットの最後のデータを検出するためのカウンタ等か
ら構成する。タグID値として要求パケットに対応するタ
グID値と応答パケットに対応するタグID値があり、応答
パケットの受信処理中に次の要求パケットを出力する準
備をする場合には、二つのタグID値は異なる値を持つ。
423も同様にライト要求を出したバスリクエスタのタグI
D値を記憶するラッチと要求パケットの最後のデータを
検出するためのカウンタから構成する。
路304を各コントローラの内部に分散して持つ場合のパ
ケット制御回路の実施例を示す。本実施例では、図1に
示したパケット制御回路119と同様に2個のリードコント
ローラ、及び1個のライトコントローラが並列動作す
る。図3に示したバスリクエストキュー制御回路304をス
レーブシーケンサとして各コントローラ内に分散して持
つ点で図1に示したパケット制御回路119と異なる。まず
最初にシーケンサ動作に必要となるシーケンサ以外の論
理について説明する。403、413はリード要求を出したバ
スリクエスタのタグID値を記憶する二つのラッチと応答
パケットの最後のデータを検出するためのカウンタ等か
ら構成する。タグID値として要求パケットに対応するタ
グID値と応答パケットに対応するタグID値があり、応答
パケットの受信処理中に次の要求パケットを出力する準
備をする場合には、二つのタグID値は異なる値を持つ。
423も同様にライト要求を出したバスリクエスタのタグI
D値を記憶するラッチと要求パケットの最後のデータを
検出するためのカウンタから構成する。
【0021】次に、図5A、図5B、図5Cに示す状態遷移図
を用いて図4に示した各コントローラ内部のシーケンサ
動作について詳細に説明する。図5Aはリードコントロー
ラ内のマスタシーケンサ401、411の状態遷移図を、図5B
はライトコントローラ内のマスタシーケンサ422の状態
遷移図を示す。図5Cは各コントローラ内のスレーブシー
ケンサ402、412、422の状態遷移図を示す。
を用いて図4に示した各コントローラ内部のシーケンサ
動作について詳細に説明する。図5Aはリードコントロー
ラ内のマスタシーケンサ401、411の状態遷移図を、図5B
はライトコントローラ内のマスタシーケンサ422の状態
遷移図を示す。図5Cは各コントローラ内のスレーブシー
ケンサ402、412、422の状態遷移図を示す。
【0022】例としてバスリクエストアービタ制御回路
116がリード、ライト、リードの順にバス要求を受け付
けた場合の各部の動作を順を追って説明する。以下の説
明に対する理解を容易にするために図6に各コントロー
ラの内部信号のタイミング図を示す。最初に各コントロ
ーラは全てレディ状態にいると仮定する。レディ状態で
は、マスタシーケンサ、及びスレーブシーケンサは共に
アイドル状態にいる。最初のリード要求126Aを受け付け
ると同時に要求を受け付けたリードコントローラA123内
のマスタシーケンサ401はバスグラント待ち状態502に遷
移する。このバスグラント待ち状態に於いて、要求パケ
ットセット信号404がアサートされ続ける。要求パケッ
トセット信号404のアサートにより、他のコントローラ
から入力される要求パケットセット信号(414、424)がこ
の時点ではまだアサートされていないためにスレーブシ
ーケンサ402は、バスグラント待ち順位TOP状態522に遷
移する。このバスグラント待ち順位TOP状態に於いて要
求パケットTOP順位信号125がアサートされ続ける。その
後バスグラント信号105が到着すると、バスグラント待
ち順位TOP状態にいるスレーブシーケンサ402はマスタシ
ーケンサ401に対するバスグラント信号405をアサートす
ることによりマスタシーケンサ401を応答パケット待ち
状態503に遷移させる。一方、バスグラント待ち順位TOP
状態にいるスレーブシーケンサ402はバスグラント信号
の到着と同時にアイドル状態521に遷移する。なお、マ
スタシーケンサ401に対するバスグラント信号405のアサ
ートによりマスタシーケンサ、スレーブシーケンサ共に
状態遷移するので要求パケットセット信号404、バス要
求順位TOP信号125Aは共にネゲートされる。第一のリー
ド要求に対する応答パケットが到着すると応答パケット
到着信号117Aがアサートされ、その結果適当なタイミン
グで信号406がアサートされマスタシーケンサ401は次の
要求を受け付けない場合にはアイドル状態501に、次の
要求を受け付けた場合にはバスグラント待ち状態502に
遷移する。以上のシーケンスを辿って第一のリード要求
に対する要求パケット出力フェーズ、応答パケット受信
処理フェーズが終了する。応答パケット受信処理フェー
ズに於いて、応答パケットの最初のデータが到着した時
点で信号406をアサートする方式を採ると応答パケット
の受信処理中に次のリード要求パケットの出力処理を開
始することが可能になるのでリードスループット性能が
向上する。
116がリード、ライト、リードの順にバス要求を受け付
けた場合の各部の動作を順を追って説明する。以下の説
明に対する理解を容易にするために図6に各コントロー
ラの内部信号のタイミング図を示す。最初に各コントロ
ーラは全てレディ状態にいると仮定する。レディ状態で
は、マスタシーケンサ、及びスレーブシーケンサは共に
アイドル状態にいる。最初のリード要求126Aを受け付け
ると同時に要求を受け付けたリードコントローラA123内
のマスタシーケンサ401はバスグラント待ち状態502に遷
移する。このバスグラント待ち状態に於いて、要求パケ
ットセット信号404がアサートされ続ける。要求パケッ
トセット信号404のアサートにより、他のコントローラ
から入力される要求パケットセット信号(414、424)がこ
の時点ではまだアサートされていないためにスレーブシ
ーケンサ402は、バスグラント待ち順位TOP状態522に遷
移する。このバスグラント待ち順位TOP状態に於いて要
求パケットTOP順位信号125がアサートされ続ける。その
後バスグラント信号105が到着すると、バスグラント待
ち順位TOP状態にいるスレーブシーケンサ402はマスタシ
ーケンサ401に対するバスグラント信号405をアサートす
ることによりマスタシーケンサ401を応答パケット待ち
状態503に遷移させる。一方、バスグラント待ち順位TOP
状態にいるスレーブシーケンサ402はバスグラント信号
の到着と同時にアイドル状態521に遷移する。なお、マ
スタシーケンサ401に対するバスグラント信号405のアサ
ートによりマスタシーケンサ、スレーブシーケンサ共に
状態遷移するので要求パケットセット信号404、バス要
求順位TOP信号125Aは共にネゲートされる。第一のリー
ド要求に対する応答パケットが到着すると応答パケット
到着信号117Aがアサートされ、その結果適当なタイミン
グで信号406がアサートされマスタシーケンサ401は次の
要求を受け付けない場合にはアイドル状態501に、次の
要求を受け付けた場合にはバスグラント待ち状態502に
遷移する。以上のシーケンスを辿って第一のリード要求
に対する要求パケット出力フェーズ、応答パケット受信
処理フェーズが終了する。応答パケット受信処理フェー
ズに於いて、応答パケットの最初のデータが到着した時
点で信号406をアサートする方式を採ると応答パケット
の受信処理中に次のリード要求パケットの出力処理を開
始することが可能になるのでリードスループット性能が
向上する。
【0023】なお、要求パケット処理に係わる第一のタ
グID値407はリードコントローラA123が起動されてから
バスグラントが到着するまで保持されており、応答パケ
ット処理に係わる第二のタグID値408は、バスグラント
が到着してから次のバスグラントが到着するまでの間保
持される。従って、応答パケットが到着している期間、
第二のタグID値408の値は変化しないことが保証され
る。従って第二のタグID値408を応答パケット処理回路1
10でデコードすることにより応答パケットに含まれる応
答データを実際にリード要求を出したバスリクエスタに
正しく書き込むことが可能になる。なお、信号406を応
答パケットの最後のデータが到着した時点でアサートす
る方式を採ると第一のタグID値407と第二のタグID値408
は同一ラッチの出力とすることができハードウェアが簡
素化される反面、応答パケットの受信処理中に次の要求
パケットを出力することができないので他のリードコン
トローラがレディでない場合には、応答パケットの受信
と同時に次のリード要求を受け付けることができないの
でリード性能が低下する。
グID値407はリードコントローラA123が起動されてから
バスグラントが到着するまで保持されており、応答パケ
ット処理に係わる第二のタグID値408は、バスグラント
が到着してから次のバスグラントが到着するまでの間保
持される。従って、応答パケットが到着している期間、
第二のタグID値408の値は変化しないことが保証され
る。従って第二のタグID値408を応答パケット処理回路1
10でデコードすることにより応答パケットに含まれる応
答データを実際にリード要求を出したバスリクエスタに
正しく書き込むことが可能になる。なお、信号406を応
答パケットの最後のデータが到着した時点でアサートす
る方式を採ると第一のタグID値407と第二のタグID値408
は同一ラッチの出力とすることができハードウェアが簡
素化される反面、応答パケットの受信処理中に次の要求
パケットを出力することができないので他のリードコン
トローラがレディでない場合には、応答パケットの受信
と同時に次のリード要求を受け付けることができないの
でリード性能が低下する。
【0024】次のライト要求によりライトコントローラ
起動要求信号137を受け付けたライトコントローラ133内
のマスタシーケンサ421はバスグラント待ち状態512に遷
移する。一方、スレーブシーケンサ422は、以前に出し
たリード要求に対するバスグラントが到着していない場
合には、リードコントローラA123の要求パケットセット
信号404が既にアサートされているためにバスグラント
待ち優先順位2番目状態523に遷移し、以前に出したリー
ド要求に対するバスグラントが既に到着している場合に
は、リードコントローラA123の要求パケットセット信号
404が既にネゲートされているために直ちにバスグラン
ト待ち順位TOP状態522に遷移する。この状態に於いてバ
ス要求順位TOP信号134がアサートされ続ける。その後バ
スグラント信号105の到着によりスレーブシーケンサ422
はマスタシーケンサ421に対するバスグラント信号426を
アサートすることによりマスタシーケンサ421をライト
データ出力終了待ち状態513に遷移させると同時にスレ
ーブシーケンサ422はアイドル状態521に遷移する。ライ
トデータ出力終了待ち状態513ではライトデータバリッ
ド信号135がアサートされる。なお、マスタシーケンサ4
21に対するバスグラント信号426のアサートにより要求
パケットセット信号424、バス要求順位TOP信号134は共
にネゲートされる。ライトデータの最後のデータをバス
に出力するタイミングで信号427がアサートされマスタ
シーケンサ401は次のライト要求を受け付けない場合に
はアイドル状態511に、次のライト要求を受け付けた場
合にはバスグラント待ち状態512に遷移する。
起動要求信号137を受け付けたライトコントローラ133内
のマスタシーケンサ421はバスグラント待ち状態512に遷
移する。一方、スレーブシーケンサ422は、以前に出し
たリード要求に対するバスグラントが到着していない場
合には、リードコントローラA123の要求パケットセット
信号404が既にアサートされているためにバスグラント
待ち優先順位2番目状態523に遷移し、以前に出したリー
ド要求に対するバスグラントが既に到着している場合に
は、リードコントローラA123の要求パケットセット信号
404が既にネゲートされているために直ちにバスグラン
ト待ち順位TOP状態522に遷移する。この状態に於いてバ
ス要求順位TOP信号134がアサートされ続ける。その後バ
スグラント信号105の到着によりスレーブシーケンサ422
はマスタシーケンサ421に対するバスグラント信号426を
アサートすることによりマスタシーケンサ421をライト
データ出力終了待ち状態513に遷移させると同時にスレ
ーブシーケンサ422はアイドル状態521に遷移する。ライ
トデータ出力終了待ち状態513ではライトデータバリッ
ド信号135がアサートされる。なお、マスタシーケンサ4
21に対するバスグラント信号426のアサートにより要求
パケットセット信号424、バス要求順位TOP信号134は共
にネゲートされる。ライトデータの最後のデータをバス
に出力するタイミングで信号427がアサートされマスタ
シーケンサ401は次のライト要求を受け付けない場合に
はアイドル状態511に、次のライト要求を受け付けた場
合にはバスグラント待ち状態512に遷移する。
【0025】2番目のリード要求は、最初のリード要求
に対する応答パケットが到着していない場合には、リー
ドコントローラA123はレディ状態にいないために必ずリ
ードコントローラB124によりサービスされるが、最初の
リード要求に対する応答パケット処理が終了している場
合には、既にリードコントローラA123はレディ状態にな
っているのでリードコントローラA123によりサービスし
てもよい。但し、図6では2番目のリード要求は1番目の
リード要求とは異なりリードコントローラBによってサ
ービスされるものとする。リードコントローラB124内の
マスタシーケンサ411の動作はリードコントローラA123
内のマスタシーケンサの動作と全く同じである。一方、
スレーブシーケンサ412の状態遷移は、バスグラント信
号105の到着タイミングによって以下の3つのケースがあ
る。(図6には(2)のケースを示した。) (1)2番目のリード要求を受け付けた時点で最初のリード
要求、及び 次のライト要求に対するバスグラントがま
だ到着していない場合には、まずバスグラント待ち順位
3番目状態524に遷移し、次に最初のリード要求に対する
バスグラントが到着した時点でバスグラント待ち優先順
位2番目状態523に遷移し、次にライト要求に対するバス
グラントが到着した時点でバスグラント待ち順位TOP状
態522に遷移する。
に対する応答パケットが到着していない場合には、リー
ドコントローラA123はレディ状態にいないために必ずリ
ードコントローラB124によりサービスされるが、最初の
リード要求に対する応答パケット処理が終了している場
合には、既にリードコントローラA123はレディ状態にな
っているのでリードコントローラA123によりサービスし
てもよい。但し、図6では2番目のリード要求は1番目の
リード要求とは異なりリードコントローラBによってサ
ービスされるものとする。リードコントローラB124内の
マスタシーケンサ411の動作はリードコントローラA123
内のマスタシーケンサの動作と全く同じである。一方、
スレーブシーケンサ412の状態遷移は、バスグラント信
号105の到着タイミングによって以下の3つのケースがあ
る。(図6には(2)のケースを示した。) (1)2番目のリード要求を受け付けた時点で最初のリード
要求、及び 次のライト要求に対するバスグラントがま
だ到着していない場合には、まずバスグラント待ち順位
3番目状態524に遷移し、次に最初のリード要求に対する
バスグラントが到着した時点でバスグラント待ち優先順
位2番目状態523に遷移し、次にライト要求に対するバス
グラントが到着した時点でバスグラント待ち順位TOP状
態522に遷移する。
【0026】(2)2番目のリード要求を受け付けた時点で
最初のリード要求に対するバスグラントが既に到着して
いて、次のライト要求に対するバスグラントが到着して
いない場合には、まずバスグラント待ち優先順位2番目
状態523に遷移し、次にライト要求に対するバスグラン
トが到着した時点でバスグラント待ち順位TOP状態522に
遷移する。
最初のリード要求に対するバスグラントが既に到着して
いて、次のライト要求に対するバスグラントが到着して
いない場合には、まずバスグラント待ち優先順位2番目
状態523に遷移し、次にライト要求に対するバスグラン
トが到着した時点でバスグラント待ち順位TOP状態522に
遷移する。
【0027】(3)2番目のリード要求を受け付けた時点で
最初のリード要求、及び 次のライト要求に対するバス
グラントが既に到着している場合には、直ちにバスグラ
ント待ち順位TOP状態522に遷移する。
最初のリード要求、及び 次のライト要求に対するバス
グラントが既に到着している場合には、直ちにバスグラ
ント待ち順位TOP状態522に遷移する。
【0028】上記いずれのケースもスレーブシーケンサ
412はバスグラント待ち順位TOP状態522に状態遷移した
時点でバスグラント信号を受け付けることによりマスタ
シーケンサを応答パケット待ち状態503に遷移させ次に
応答パケットが到着した時点で応答パケットの処理を行
う。
412はバスグラント待ち順位TOP状態522に状態遷移した
時点でバスグラント信号を受け付けることによりマスタ
シーケンサを応答パケット待ち状態503に遷移させ次に
応答パケットが到着した時点で応答パケットの処理を行
う。
【0029】以上の説明から分かるように、バスリクエ
ストキュー制御回路を各コントローラ内のスレーブシー
ケンサに分散して記憶する分散制御方式では、マスタシ
ーケンサは各コントローラが並列動作せずに自コントロ
ーラのみが単独で動作すると仮定した場合の、いわゆ
る"シーケンサ"としての動作を行い、スレーブシーケン
サは各コントローラが多重動作する時に発生する競合動
作を調停するためのシーケンサとしての動作を行うもの
と考えることができる。
ストキュー制御回路を各コントローラ内のスレーブシー
ケンサに分散して記憶する分散制御方式では、マスタシ
ーケンサは各コントローラが並列動作せずに自コントロ
ーラのみが単独で動作すると仮定した場合の、いわゆ
る"シーケンサ"としての動作を行い、スレーブシーケン
サは各コントローラが多重動作する時に発生する競合動
作を調停するためのシーケンサとしての動作を行うもの
と考えることができる。
【0030】なお、本実施例ではリード要求をサービス
するリードコントローラとライト要求をサービスするコ
ントローラは物理的に異なる回路により構成している
が、上記の説明から分かるようにマスタシーケンサの状
態遷移はリードとライトで異なることはないので兼用す
ることが可能である。即ち、トランザクションIDを3個
使用することができるI/O装置のパケット制御回路をリ
ードコントローラ2個、ライトコントローラ1個から構成
することもリードライトコントローラ3個から構成する
ことも可能である。
するリードコントローラとライト要求をサービスするコ
ントローラは物理的に異なる回路により構成している
が、上記の説明から分かるようにマスタシーケンサの状
態遷移はリードとライトで異なることはないので兼用す
ることが可能である。即ち、トランザクションIDを3個
使用することができるI/O装置のパケット制御回路をリ
ードコントローラ2個、ライトコントローラ1個から構成
することもリードライトコントローラ3個から構成する
ことも可能である。
【0031】
【発明の効果】本発明によれば、TID毎に割り当てられ
た、バストランザクションをサービスするコントローラ
の並列動作のみならず、コントローラ内部の並列動作が
可能になるので従来よりも性能の高いDMA転送制御装
置を実現することができるという効果がある。また、コ
ントローラをリードライト兼用コントローラとして構成
することにより、局所的にコントローラの並列動作度を
高めることができるので、リード専用コントローラ、ラ
イト専用コントローラとして構成するよりも高いDMA
転送性能を実現することができる。
た、バストランザクションをサービスするコントローラ
の並列動作のみならず、コントローラ内部の並列動作が
可能になるので従来よりも性能の高いDMA転送制御装
置を実現することができるという効果がある。また、コ
ントローラをリードライト兼用コントローラとして構成
することにより、局所的にコントローラの並列動作度を
高めることができるので、リード専用コントローラ、ラ
イト専用コントローラとして構成するよりも高いDMA
転送性能を実現することができる。
【0032】また、TID毎に割り当てられているコント
ローラは独立動作するので、バスが飽和しない限りTID
の数を増やすことによりDMA転送性能をスケーラブル
に向上させることができるという効果もある。
ローラは独立動作するので、バスが飽和しない限りTID
の数を増やすことによりDMA転送性能をスケーラブル
に向上させることができるという効果もある。
【0033】さらに、TIDの数を増やした場合に必要と
なるコントローラの内部論理変更はスレーブシーケンサ
に限定されており、しかもスレーブシーケンサの状態数
をリニヤに増やすだけでよいので変更が容易である。ま
た、応答パケットの中のデータを一時的に記憶しておく
ためのデータバッファを装置に割り当てられたTIDの個
数以上持ち、バッファIDをリクエスタID情報に含ませて
バス要求を出すことにより応答パケットの到着順序が逆
転したとしても、バスリクエスタ側に正しい順番でデー
タを引き渡すことができる。
なるコントローラの内部論理変更はスレーブシーケンサ
に限定されており、しかもスレーブシーケンサの状態数
をリニヤに増やすだけでよいので変更が容易である。ま
た、応答パケットの中のデータを一時的に記憶しておく
ためのデータバッファを装置に割り当てられたTIDの個
数以上持ち、バッファIDをリクエスタID情報に含ませて
バス要求を出すことにより応答パケットの到着順序が逆
転したとしても、バスリクエスタ側に正しい順番でデー
タを引き渡すことができる。
【図1】DMA転送制御装置のブロック図。
【図2】応答パケット処理回路の構成ブロック図。
【図3】要求パケット処理回路の構成ブロック図。
【図4】リードコントローラ、ライトコントローラの構
成ブロック図。
成ブロック図。
【図5】リードコントローラ、ライトコントローラ内部
のシーケンサの状態遷移図。
のシーケンサの状態遷移図。
【図6】リード、ライト、リードの順番でバス要求を受
け付けた場合のパケット制御回路のタイミング図。
け付けた場合のパケット制御回路のタイミング図。
100…DMA転送制御装置 101…スプリットバス 102…バスインタフェイス回路 103…バスリクエスト信号 104…要求パケットの属性を指定する信号 105…バスグラント信号 106…内部データバス 107…応答パケットのデータ有効信号 108…応答パケットののトランザクションID値 110…応答パケット処理回路 111…要求パケット処理回路 112…リードトランザクションに対する応答データバッ
ファ 114…バスリクエスタのタグID値 115…リードコントローラに対するバスグラント信号 116…バスリクエストアービタ制御回路 117…117A、117Bからなる束信号 117A…リードコントローラAに対する応答データ有効信
号 117B…リードコントローラBに対する応答データ有効信
号 118…ライトコントローラに対するバスグラント信号 119…パケット制御回路 120…リード要求バスリクエスタ 121…リード要求信号 122…リード要求に対するグラント信号 123…リードコントローラA 124…リードコントローラB 125…125A、125Bからなる束信号 125A…リードコントローラAがサービスするバス要求が
リクエストキューの先頭にあることを示す信号 125B…リードコントローラBがサービスするバス要求が
リクエストキューの先頭にあることを示す信号 126…126A、126Bからなる束信号 126A…リードコントローラAに対するリードコントロー
ラ起動要求信号 126B…リードコントローラBに対するリードコントロー
ラ起動要求信号 127…127A、127Bからなる束信号 127A…リードコントローラAレディ信号 127B…リードコントローラBレディ信号 128…リードコントローラ内に記憶しているタグID値(要
求ハ゜ケットのタク゛ID値と応答ハ゜ケットのタク゛ID値からなる) 129…リード要求バスリクエスタに対する動作タイミン
グ信号 130…ライト要求バスリクエスタ 131…ライト要求信号 132…ライト要求に対するグラント信号 133…ライトコントローラ 134…ライトコントローラがサービスするバス要求がリ
クエストキューの先頭にあることを示す信号 135…ライト要求パケットのデータに対するデータ有効
信号 136…ライトコントローラレディ信号 137…ライトコントローラ起動要求信号 138…ライトコントローラ内に記憶しているタグID値 139…ライト要求バスリクエスタに対する動作タイミン
グ信号 201、202、203…比較器 204、205…AND回路 206…DMA転送制御装置のID値 207…応答パケットがDMA転送制御装置宛であること
を示す信号 208…リードコントローラAがサービスする要求パケット
に含まれるTIDのLSB値 209…リードコントローラBがサービスする要求パケット
に含まれるTIDのLSB値 210、211…比較器の一致出力信号 213…リードコントローラAがサービスする応答パケット
が有効であることを示す信号 214…リードコントローラBがサービスする応答パケット
が有効であることを示す信号 215…デコーダ 301…エンコーダ 302…デコーダ 303…バスリクエスト制御回路 304…バスリクエストキュー制御回路 305…OR回路 401…リードコントローラA内のマスタシーケンサのステ
ートマシン 402…リードコントローラA内のスレーブシーケンサのス
テートマシン 403…リードコントローラA内のシーケンサ以外の論理 404…リードコントローラAがサービスする要求パケット
セット信号 405…リードコントローラAに対するバスグラント信号 406…リードコントローラAがサービスする応答パケット
の受信処理タイミング信号 407…リードコントローラAがサービスする要求パケット
に対応するタグID値 408…リードコントローラAがサービスする応答パケット
に対応するタグID値 411…リードコントローラB内のマスタシーケンサのステ
ートマシン 412…リードコントローラB内のスレーブシーケンサのス
テートマシン 413…リードコントローラB内のシーケンサ以外の論理 414…リードコントローラBがサービスする要求パケット
のセット信号 415…リードコントローラBに対するバスグラント信号 416…リードコントローラBがサービスする応答パケット
受信処理タイミング信号 417…リードコントローラBがサービスする要求パケット
に対応するのタグID値 418…リードコントローラBがサービスする応答パケット
に対応するタグID値 421…ライトコントローラ内のマスタシーケンサのステ
ートマシン 422…ライトコントローラ内のスレーブシーケンサのス
テートマシン 423…ライトコントローラ内のシーケンサ以外の論理 424…ライトコントローラがサービスする要求パケット
のセット信号 425…ライトコントローラがサービスする要求パケット
データバリッド信号 426…ライトコントローラに対するバスグラント信号 427…ライトコントローラがサービスする要求パケット
データのラストタイミング信号 428…ライトコントローラ内に記憶しているタグID値 500…リードコントローラ内のマスタシーケンサの状態
遷移図 510…ライトコントローラ内のマスタシーケンサの状態
遷移図 520…スレーブシーケンサの状態遷移図 501…リードコントローラ内のマスタシーケンサのアイ
ドル状態 502…リードコントローラ内のマスタシーケンサのバス
グラント待ち状態 503…リードコントローラ内のマスタシーケンサの応答
パケット待ち状態 511…ライトコントローラ内のマスタシーケンサのアイ
ドル状態 512…ライトコントローラ内のマスタシーケンサのバス
グラント待ち状態 513…ライトコントローラ内のマスタシーケンサのラス
トデータ待ち状態 521…スレーブシーケンサのアイドル状態 522…スレーブシーケンサがバスグラント待ち行列の先
頭にいる状態 523…スレーブシーケンサがバスグラント待ち行列の2番
目にいる状態 524…スレーブシーケンサがバスグラント待ち行列の3番
目にいる状態
ファ 114…バスリクエスタのタグID値 115…リードコントローラに対するバスグラント信号 116…バスリクエストアービタ制御回路 117…117A、117Bからなる束信号 117A…リードコントローラAに対する応答データ有効信
号 117B…リードコントローラBに対する応答データ有効信
号 118…ライトコントローラに対するバスグラント信号 119…パケット制御回路 120…リード要求バスリクエスタ 121…リード要求信号 122…リード要求に対するグラント信号 123…リードコントローラA 124…リードコントローラB 125…125A、125Bからなる束信号 125A…リードコントローラAがサービスするバス要求が
リクエストキューの先頭にあることを示す信号 125B…リードコントローラBがサービスするバス要求が
リクエストキューの先頭にあることを示す信号 126…126A、126Bからなる束信号 126A…リードコントローラAに対するリードコントロー
ラ起動要求信号 126B…リードコントローラBに対するリードコントロー
ラ起動要求信号 127…127A、127Bからなる束信号 127A…リードコントローラAレディ信号 127B…リードコントローラBレディ信号 128…リードコントローラ内に記憶しているタグID値(要
求ハ゜ケットのタク゛ID値と応答ハ゜ケットのタク゛ID値からなる) 129…リード要求バスリクエスタに対する動作タイミン
グ信号 130…ライト要求バスリクエスタ 131…ライト要求信号 132…ライト要求に対するグラント信号 133…ライトコントローラ 134…ライトコントローラがサービスするバス要求がリ
クエストキューの先頭にあることを示す信号 135…ライト要求パケットのデータに対するデータ有効
信号 136…ライトコントローラレディ信号 137…ライトコントローラ起動要求信号 138…ライトコントローラ内に記憶しているタグID値 139…ライト要求バスリクエスタに対する動作タイミン
グ信号 201、202、203…比較器 204、205…AND回路 206…DMA転送制御装置のID値 207…応答パケットがDMA転送制御装置宛であること
を示す信号 208…リードコントローラAがサービスする要求パケット
に含まれるTIDのLSB値 209…リードコントローラBがサービスする要求パケット
に含まれるTIDのLSB値 210、211…比較器の一致出力信号 213…リードコントローラAがサービスする応答パケット
が有効であることを示す信号 214…リードコントローラBがサービスする応答パケット
が有効であることを示す信号 215…デコーダ 301…エンコーダ 302…デコーダ 303…バスリクエスト制御回路 304…バスリクエストキュー制御回路 305…OR回路 401…リードコントローラA内のマスタシーケンサのステ
ートマシン 402…リードコントローラA内のスレーブシーケンサのス
テートマシン 403…リードコントローラA内のシーケンサ以外の論理 404…リードコントローラAがサービスする要求パケット
セット信号 405…リードコントローラAに対するバスグラント信号 406…リードコントローラAがサービスする応答パケット
の受信処理タイミング信号 407…リードコントローラAがサービスする要求パケット
に対応するタグID値 408…リードコントローラAがサービスする応答パケット
に対応するタグID値 411…リードコントローラB内のマスタシーケンサのステ
ートマシン 412…リードコントローラB内のスレーブシーケンサのス
テートマシン 413…リードコントローラB内のシーケンサ以外の論理 414…リードコントローラBがサービスする要求パケット
のセット信号 415…リードコントローラBに対するバスグラント信号 416…リードコントローラBがサービスする応答パケット
受信処理タイミング信号 417…リードコントローラBがサービスする要求パケット
に対応するのタグID値 418…リードコントローラBがサービスする応答パケット
に対応するタグID値 421…ライトコントローラ内のマスタシーケンサのステ
ートマシン 422…ライトコントローラ内のスレーブシーケンサのス
テートマシン 423…ライトコントローラ内のシーケンサ以外の論理 424…ライトコントローラがサービスする要求パケット
のセット信号 425…ライトコントローラがサービスする要求パケット
データバリッド信号 426…ライトコントローラに対するバスグラント信号 427…ライトコントローラがサービスする要求パケット
データのラストタイミング信号 428…ライトコントローラ内に記憶しているタグID値 500…リードコントローラ内のマスタシーケンサの状態
遷移図 510…ライトコントローラ内のマスタシーケンサの状態
遷移図 520…スレーブシーケンサの状態遷移図 501…リードコントローラ内のマスタシーケンサのアイ
ドル状態 502…リードコントローラ内のマスタシーケンサのバス
グラント待ち状態 503…リードコントローラ内のマスタシーケンサの応答
パケット待ち状態 511…ライトコントローラ内のマスタシーケンサのアイ
ドル状態 512…ライトコントローラ内のマスタシーケンサのバス
グラント待ち状態 513…ライトコントローラ内のマスタシーケンサのラス
トデータ待ち状態 521…スレーブシーケンサのアイドル状態 522…スレーブシーケンサがバスグラント待ち行列の先
頭にいる状態 523…スレーブシーケンサがバスグラント待ち行列の2番
目にいる状態 524…スレーブシーケンサがバスグラント待ち行列の3番
目にいる状態
Claims (6)
- 【請求項1】バスに接続されるI/O装置に接続された複
数のバスリクエスタが発行するリード要求、及びライト
要求を連続してバスに出力するための第一の手段、及び
前記リード要求に対してバスから到着する応答データの
バスリクエスタへの書き込みを次のリード要求、又はラ
イト要求に対するバストランザクション動作と並行して
行うための第二の手段を有することを特徴とする、DM
A転送制御装置。 - 【請求項2】前記第一の手段に於いて、複数のバスリク
エスタが非同期に出力するバス要求を調停してシリアラ
イズするためのバスリクエストアービタ制御回路、該バ
スリクエストアービタ制御回路で受け付けられたが、バ
スではまだ受け付けられていないバス要求を出したバス
リクエスタのバス要求順序を記憶するためのリクエスト
キュー制御回路、同時にバスに対して出力するリード要
求バストランザクション、又はライト要求バストランザ
クションのサービスを行うための複数のシーケンス制御
回路、該バスリクエストアービタ制御回路からのバス要
求に従ってバスリクエスト信号をアサートするためのバ
スリクエスト制御回路、及びバスに出力すべきパケット
を予め生成しておくための要求パケット制御回路を有
し、バスリクエストアービタ制御回路で調停したバス要
求によりバスリクエスト信号をアサートすると同時に該
バス要求をサービスするシーケンス制御回路をバスグラ
ント待ち状態に待機させておき、バスグラント信号のア
サートにより該リクエストキューの先頭に位置するバス
要求をサービスするシーケンス制御回路を特定し、バス
の使用許可権を得た該シーケンス制御回路からの指示に
従って要求パケット制御回路が該バス要求パケットをバ
スに出力することを特徴とする、請求項1記載のDMA
転送制御装置。 - 【請求項3】前記第二の手段に於いて、同時にバスで行
われるリードバストランザクション、又はライトバスト
ランザクションのサービスを行うための複数のシーケン
ス制御回路、及び応答パケットの内容から該応答パケッ
トをサービスすべき該シーケンス制御回路を特定するた
めの応答パケット処理回路を有し、バスから応答パケッ
トを受け取ると同時に該応答パケットをサービスすべき
シーケンス制御回路を特定し、応答パケット待ち状態に
いる該シーケンス制御回路の指示に従って該応答パケッ
トを期待しているバスリクエスタに対する書き込みを行
うことを特徴とする、請求項1記載のDMA転送制御装
置。 - 【請求項4】前記リード要求をサービスするシーケンス
制御回路に於いて、リード要求を出したバスリクエスタ
に関する第一の識別情報を該リード要求に対する要求受
付許可信号を受け取ってから次のリード要求要求に対す
る要求受付許可信号を受け取るまでの期間記憶保持し、
該リード要求に対する応答データをバスリクエスタに書
き込むために必要となるバスリクエスタに関する第二の
識別情報を該リード要求に対するバスグラント信号を受
け取ってから次のリード要求に対するバスグラント信号
を受け取るまでの期間記憶保持し、リード要求に対応す
る応答データの到着と同時に該リードバストランザクシ
ョンをサービスすべきシーケンス制御回路を次のリード
要求を受付可能な状態に遷移させ、応答データのテバイ
スへの書き込みと次のリード要求の受付を同一シーケン
ス制御回路内でオーバラップして行うことことを特徴と
する、請求項3記載のDMA転送制御装置。 - 【請求項5】前記シーケンス制御回路に於いて、バスリ
クエスタからリード要求があればリードバストランザク
ションの制御を、ライト要求があれびライトバストラン
ザクションの制御を行うことを特徴とする、請求項1記
載のDMA転送制御装置。 - 【請求項6】前記シーケンス制御回路内にリクエストキ
ュー制御回路を分散して有し、バスから到着するバスグ
ラント信号が自シーケンス制御回路に対するバスグラン
ト信号であるかどうかを各シーケンス制御回路で個別に
判定することを特徴とする、請求項2〜5のうちいずれ
かに記載のDMA転送制御装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22758794A JPH0895899A (ja) | 1994-09-22 | 1994-09-22 | Dma転送制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22758794A JPH0895899A (ja) | 1994-09-22 | 1994-09-22 | Dma転送制御装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0895899A true JPH0895899A (ja) | 1996-04-12 |
Family
ID=16863261
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22758794A Pending JPH0895899A (ja) | 1994-09-22 | 1994-09-22 | Dma転送制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0895899A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005235197A (ja) * | 2004-02-20 | 2005-09-02 | Samsung Electronics Co Ltd | 複数のマスタを含むサブシステムをオープンコアプロトコルを基盤とするバスに連結するためのバスシステム |
| JP2009093536A (ja) * | 2007-10-11 | 2009-04-30 | Yokogawa Electric Corp | データ転送装置及び半導体試験装置 |
| US7930445B2 (en) | 2006-09-06 | 2011-04-19 | Hitachi, Ltd. | Computer system using remote I/O and I/O data transfer method |
-
1994
- 1994-09-22 JP JP22758794A patent/JPH0895899A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005235197A (ja) * | 2004-02-20 | 2005-09-02 | Samsung Electronics Co Ltd | 複数のマスタを含むサブシステムをオープンコアプロトコルを基盤とするバスに連結するためのバスシステム |
| US7930445B2 (en) | 2006-09-06 | 2011-04-19 | Hitachi, Ltd. | Computer system using remote I/O and I/O data transfer method |
| JP2009093536A (ja) * | 2007-10-11 | 2009-04-30 | Yokogawa Electric Corp | データ転送装置及び半導体試験装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6393506B1 (en) | Virtual channel bus and system architecture | |
| US5901295A (en) | Address and data bus arbiter for pipelined transactions on a split bus | |
| US6651148B2 (en) | High-speed memory controller for pipelining memory read transactions | |
| AU687627B2 (en) | Multiprocessor system bus protocol for optimized accessing of interleaved storage modules | |
| US5649209A (en) | Bus coupling information processing system for multiple access to system bus | |
| CN100341012C (zh) | 总线系统及其存取命令的执行调度方法 | |
| US5978879A (en) | Bus bridge apparatus | |
| US6681270B1 (en) | Effective channel priority processing for transfer controller with hub and ports | |
| JPH0728758A (ja) | ダイナミックタイムループ調停及び装置 | |
| USRE40261E1 (en) | Apparatus and method of partially transferring data through bus and bus master control device | |
| EP1187029B1 (en) | Peripheral component interconnect arbiter implementation with dynamic priority scheme | |
| US5627968A (en) | Data transfer apparatus which allows data to be transferred between data devices without accessing a shared memory | |
| US5887195A (en) | Bus arbitration between an I/O device and processor for memory access using FIFO buffer with queue holding bus access flag bit | |
| JPH0895899A (ja) | Dma転送制御装置 | |
| US7730247B2 (en) | Information processing apparatus | |
| JPH04134551A (ja) | 複数のデータ処理エージェントの間でデータを転送するバスにおいて、第1のエージェントがサービスの必要を第2のエージェントへ知らせる方法 | |
| US5815676A (en) | Address bus arbiter for pipelined transactions on a split bus | |
| JP2718702B2 (ja) | メモリアクセス制御方法 | |
| JPH09223103A (ja) | 情報処理システム | |
| EP0923031B1 (en) | Method for reading data from a shared memory in a multiprocessor computer system | |
| EP1380960B1 (en) | Memory access from different clock domains | |
| JPH10301897A (ja) | アービトレーション方法及びその装置 | |
| US6839820B1 (en) | Method and system for controlling data access between at least two memory arrangements | |
| JPH08180027A (ja) | 調停回路 | |
| JPH08278939A (ja) | データ転送方法及びデータ転送装置 |