(57)【要約】【課題】メモリを占有することなくデータ転送に要する時間を短縮し、さらにLSIなどへの適用時におけるレイアウト上の面積を最小限にする、DMA転送を用いたコンピュータシステムを提供。【解決手段】コンピュータシステム10は、バス16を介して接続される中央処理装置12および主記憶装置14を有し、送受信データを記憶する主記憶装置14に対して、外部装置20と送受信データ転送を行うI/Oモジュール18を直接的に接続することにより、主記憶装置14のメモリマクロ22にアクセス可能な最小単位のサイクルでデータ転送を行うことができ、バスを介したDMA転送より高速なデータ転送を実現することができる。【選択図】図１
2006031227.tif 000002
【特許請求の範囲】
【請求項１】
外部装置と接続して送受信されるデータの転送をやりとりする入出力手段と、
前記送受信データを記憶する主記憶手段と、
バスを介して前記主記憶手段と接続して、前記主記憶手段に記憶された受信データを読み出し、また前記主記憶手段に記憶する送信データを書き込む制御手段を含むコンピュータシステムにおいて、
前記入出力手段は、前記主記憶手段と直接的に接続して、前記外部装置から転送される受信データを直接的に前記主記憶手段に書き込み、また前記主記憶手段から送信データを直接的に読み出して前記外部装置へ転送することによりDMA転送を行うことを特徴とするコンピュータシステム。
【請求項２】
請求項１に記載のコンピュータシステムにおいて、前記主記憶手段は、前記送受信データを格納するメモリ手段と、該メモリ手段へのアクセスを占有するアクセス権の許可を調停する調停手段とを含み、
該調停手段は、前記アクセス権の許可を要求する要求信号に応じて前記アクセス権を切り替え可能とし、
前記入出力手段は、前記DMA転送を行うために前記アクセス権要求信号を前記調停手段に供給し、前記アクセス権が許可されたときに前記メモリ手段に対して前記DMA転送を行うことを特徴とするコンピュータシステム。
【請求項３】
請求項２に記載のコンピュータシステムにおいて、前記調停手段は、前記アクセス権をメモリアクセスサイクルごとに切り替え可能とし、前記アクセス権要求信号の受信時点における前記メモリアクセスサイクル、またはその後所定数のメモリアクセスサイクルが終了する切れ目まで待って、その次のメモリアクセスサイクルが開始するときに該アクセス権要求信号に応じてアクセス権を許可することを特徴とするコンピュータシステム。
【請求項４】
請求項３に記載のコンピュータシステムにおいて、前記メモリアクセスサイクルは、前記メモリ手段にアクセス可能な最小単位のサイクルであり、またはそのサイクルを所定数含むことを特徴とするコンピュータシステム。
【請求項５】
請求項２ないし４のいずれかに記載のコンピュータシステムにおいて、前記調停手段は、前記制御手段および前記入出力手段のうち、いずれか一つに前記アクセス権を許可するように調停することを特徴とするコンピュータシステム。
【請求項６】
請求項５に記載のコンピュータシステムにおいて、前記調停手段は、通常は前記制御手段に前記アクセス権を許可し、前記入出力手段から前記アクセス権要求信号を受信した場合には、前記制御手段および前記入出力手段に対して、前記メモリアクセスサイクルごとに交互に前記アクセス権を許可するように調停することを特徴とするコンピュータシステム。
【請求項７】
請求項６に記載のコンピュータシステムにおいて、前記調停手段は、前記アクセス権要求信号の受信に応じて、該受信時点における前記メモリアクセスサイクルの期間中に、前記制御手段が前記メモリ手段にアクセス中であるか否かを判定する判定手段を含み、
前記入出力手段から該アクセス権要求信号を受信したときに、前記判定手段の結果がアクセス中である場合、該メモリアクセスサイクルの切れ目まで待って、前記制御手段に対して前記アクセス権を待ち状態にしてアクセス待ち指示信号を供給し、前記入出力手段に対して前記アクセス権を許可してアクセス権許可信号を供給し、
前記入出力手段は、前記DMA転送が終了したときに、前記調停手段に対してアクセス権解放信号を供給し、さらに前記制御手段に対してデータ転送終了通知を供給し、
前記調停手段は、前記アクセス権解放信号に応じて、前記制御手段に対して前記アクセス権の待ち状態を解除してアクセス待ち解除信号を供給することを特徴とするコンピュータシステム。
【請求項８】
請求項７に記載のコンピュータシステムにおいて、前記入出力手段は、前記外部装置からのデータ受信に応じて、前記調停手段に前記アクセス権要求信号を供給し、前記アクセス権が許可されたときに、前記受信データを前記メモリ手段に書き込んでDMA転送を行い、該DMA転送が終了したときに前記制御手段に対して前記データ転送終了通知を供給することを特徴とするコンピュータシステム。
【請求項９】
請求項８に記載のコンピュータシステムにおいて、前記制御手段は、前記データ転送終了通知に応じて、前記メモリ手段から前記受信データを読み出すことを特徴とするコンピュータシステム。
【請求項１０】
請求項７に記載のコンピュータシステムにおいて、前記制御手段は、送信データ転送を制御し、前記アクセス権を有するときに前記メモリ手段に前記送信データを格納し、前記入出力手段に対して送信要求信号を供給し、
前記入出力手段は、前記送信要求信号に応じて、前記調停手段に前記アクセス権要求信号を供給し、前記アクセス権が許可されたときに、前記メモリ手段から前記送信データを読み出してDMA転送を行うことを特徴とするコンピュータシステム。
【請求項１１】
請求項１ないし１０のいずれかに記載のコンピュータシステムにおいて、前記入出力手段は、前記送受信データを一時蓄積するレジスタ手段を含むことを特徴とするコンピュータシステム。
【請求項１２】
請求項５ないし１１のいずれかに記載のコンピュータシステムにおいて、該システムは、複数の外部装置とそれぞれ接続する複数の前記入出力手段を含み、
前記調停手段は、前記制御手段および前記複数の入出力手段のうち、いずれか一つに前記アクセス権を許可するように調停することを特徴とするコンピュータシステム。
【請求項１３】
請求項１２に記載のコンピュータシステムにおいて、前記調停手段は、受信データ転送のための第１のアクセス権要求信号と、送信データ転送のための第１のアクセス権要求信号とを受信して、少なくとも、第１のアクセス権要求信号を供給した第１の入出力手段と、第２のアクセス権要求信号を供給した第２の入出力手段とに対して、アクセス権の許可を調停することを特徴とするコンピュータシステム。
【請求項１４】
送受信データを記憶する記憶手段に対して、バスを介して接続する制御手段が前記送受信データの読み出しおよび書き込みを行い、外部装置と接続する入出力手段が前記送受信データの転送を行うコンピュータシステムにおけるデータ転送方法において、該方法は、
前記記憶手段に入出力する前記送受信データを制御する記憶制御工程と、
前記入出力手段と前記記憶手段との間で、前記送受信データの転送を制御する入出力制御工程と、
前記制御手段において、前記記憶手段に記憶された受信データを読み出し、また前記記憶手段に記憶するための送信データを書き込む制御工程とを含み、
前記入出力制御工程は、前記入出力手段において前記外部装置から転送される受信データを、直接的に前記記憶手段に書き込み、また前記記憶手段から直接的に送信データを読み出して前記外部装置へ転送することによりDMA転送を行うことを特徴とするデータ転送方法。
【請求項１５】
請求項１４に記載のデータ転送方法において、前記記憶制御工程は、前記記憶手段へのアクセスを占有するアクセス権の許可を調停する調停工程を含み、
該調停工程は、前記アクセス権を要求する要求信号に応じて前記アクセス権を切り替え可能とし、
前記入出力制御工程は、前記DMA転送を行うために前記アクセス権要求信号を前記調停工程に供給し、前記アクセス権が許可されたときに前記記憶手段に対して前記DMA転送を行うことを特徴とするデータ転送方法。
【請求項１６】
請求項１５に記載のデータ転送方法において、前記調停工程は、前記アクセス権をメモリアクセスサイクルごとに切り替え可能とし、前記アクセス権要求信号の受信時点における前記メモリアクセスサイクル、またはその後所定数のメモリアクセスサイクルが終了する切れ目まで待って、その次のメモリアクセスサイクルが開始するときに該アクセス権要求信号に応じてアクセス権を許可することを特徴とするデータ転送方法。
【請求項１７】
請求項１６に記載のデータ転送方法において、前記メモリアクセスサイクルは、前記記憶手段にアクセス可能な最小単位のサイクルであり、またはそのサイクルを所定数含むことを特徴とするデータ転送方法。
【請求項１８】
請求項１５ないし１７のいずれかに記載のデータ転送方法において、前記調停工程は、前記制御工程および前記入出力制御工程のうち、いずれか一つに対して前記アクセス権を許可するように調停することを特徴とするデータ転送方法。
【請求項１９】
請求項１８に記載のデータ転送方法において、前記調停工程は、通常は前記制御工程に対して前記アクセス権を許可し、前記入出力制御工程から前記アクセス権要求信号を受信した場合には、前記制御工程および前記入出力制御工程に対して、前記メモリアクセスサイクルごとに交互に前記アクセス権を許可するように調停することを特徴とするデータ転送方法。
【請求項２０】
請求項１９に記載のデータ転送方法において、前記調停工程は、前記アクセス権要求信号の受信に応じて、該受信時点における前記メモリアクセスサイクルの期間中に、前記制御工程による前記記憶手段へのアクセスが動作中であるか否かを判定する判定工程を含み、
前記入出力制御工程から該アクセス権要求信号を受信したときに、前記判定工程の結果が動作中である場合、該メモリアクセスサイクルの切れ目まで待って、前記制御工程に対して前記アクセス権を待ち状態にしてアクセス待ち指示信号を供給し、前記入出力制御工程に対して前記アクセス権を許可してアクセス権許可信号を供給し、
前記入出力制御工程は、前記DMA転送が終了したときに、前記調停工程に対してアクセス権解放信号を供給し、さらに前記制御工程に対してデータ転送終了通知を供給し、
前記調停工程は、前記アクセス権解放信号に応じて、前記制御工程に対して前記アクセス権の待ち状態を解除してアクセス待ち解除信号を供給することを特徴とするデータ転送方法。
【請求項２１】
請求項２０に記載のデータ転送方法において、前記入出力制御工程は、前記外部装置からのデータ受信に応じて、前記調停工程に前記アクセス権要求信号を供給し、前記アクセス権が許可されたときに、前記受信データを前記記憶手段に書き込んでDMA転送を行い、該DMA転送が終了したときに前記制御工程に対して前記データ転送終了通知を供給することを特徴とするデータ転送方法。
【請求項２２】
請求項２１に記載のデータ転送方法において、前記制御工程は、前記データ転送終了通知に応じて、前記記憶手段から前記受信データを読み出すことを特徴とするデータ転送方法。
【請求項２３】
請求項２０に記載のデータ転送方法において、前記制御工程は、送信データ転送を制御し、前記アクセス権を有するときに前記記憶手段に前記送信データを格納し、前記入出力制御工程に対して送信要求信号を供給し、
前記入出力制御工程は、前記送信要求信号に応じて、前記調停工程に前記アクセス権要求信号を供給し、前記アクセス権が許可されたときに、前記記憶手段から前記送信データを読み出してDMA転送を行うことを特徴とするデータ転送方法。
【請求項２４】
請求項１４ないし２３のいずれかに記載のデータ転送方法において、前記入出力制御工程は、前記入出力手段におけるレジスタに対して、前記外部装置からの前記受信データや前記記憶手段から読み出した前記送信データを一時蓄積することを特徴とするデータ転送方法。
【請求項２５】
請求項１８ないし２４のいずれかに記載のデータ転送方法において、該システムは、複数の外部装置とそれぞれ接続する複数の前記入出力制御工程を含み、
前記調停工程は、前記制御工程および前記複数の入出力制御工程のうち、いずれか一つに対して前記アクセス権を許可するように調停することを特徴とするデータ転送方法。
【請求項２６】
請求項２５に記載のデータ転送方法において、前記調停工程は、受信データ転送のための第１のアクセス権要求信号と、送信データ転送のための第１のアクセス権要求信号とを受信して、少なくとも、第１のアクセス権要求信号を供給した第１の入出力制御工程と、第２のアクセス権要求信号を供給した第２の入出力制御工程とに対して、アクセス権の許可を調停することを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大規模集積回路（LSI：Large Scale Integration）などに搭載される、DMA（Direct Memory Access）転送を用いたコンピュータシステムに関するものである。
【背景技術】
【０００２】
従来から、コンピュータシステムは、DMAコントローラを搭載するものがあり、外部装置からの受信データを主記憶装置に書き込み、また主記憶装置から送信データを読み出して外部装置に出力するなどのデータ転送をする際に、低速なシステムでは中央処理装置（CPU：Central Processing Unit）がバス権を有して、CPUと主記憶装置との間でデータ転送を実行するが、高速なシステムでは、CPUによる転送では時間がかかるために、DMAコントローラがバス権を有して外部装置のインタフェースである入出力（I/O）モジュールを制御し、主記憶装置とのデータ転送を、CPUを介さず直接的に実行してDMA転送を実現している。
【０００３】
たとえば、図７に示すように、DMAコントローラを搭載したコンピュータシステム700は、CPU 702で統括的に制御されて、プログラムやデータを格納する主記憶装置704が、バス706を介して、CPU 702およびI/Oモジュール708と接続してデータ転送を実行するもので、DMAコントローラ712を用いることにより、I/Oモジュール708と主記憶装置704との間のデータ転送を、CPU 702を介さず直接的に実行し、バス調停回路714により、CPU 702とDMAコントローラ712との間でバス706を使用する権利を調停する。
【０００４】
ここで、I/Oモジュール708は、外部装置710がコンピュータシステム700に接続して送受信データ転送を実行するためのインタフェースであり、この送受信データを一時格納するバッファメモリ716を有する。
【０００５】
このI/Oモジュール708では、受信データを主記憶装置704へ転送するとき、低速なシステムでは、CPU 702を介して主記憶装置704へデータ書き込みを実行するが、高速なシステムでは、CPU 702を用いたデータ転送に時間がかかるため、DMAコントローラ712を用いることにより、バス706を介して主記憶装置704へ直接的にデータ転送を実行する。
【０００６】
バス調停回路714は、バス権を許可する一周期をバスアクセスサイクルとして、バス権要求信号に応じて、バスアクセスサイクルごとにバス権を移行させるもので、バス権要求信号が受信されない場合バス権を移行させなくてもよい。
【０００７】
このコンピュータシステム700の動作について、外部装置710からの受信データを主記憶装置704に記憶する動作を図８のフローチャートを参照しながら説明する。
【０００８】
コンピュータシステム700では、まず、外部装置710からの受信データがI/Oモジュール708に供給される（ステップ802）。
【０００９】
I/Oモジュール708では、このデータ受信に応じて、データ転送を要求する要求信号が生成されて、DMAコントローラ712に供給される（ステップ804）。
【００１０】
DMAコントローラ712では、データ転送要求信号に応じて、バス706を使用する権利を要求するバス権要求信号が生成されて、バス調停回路714に供給される（ステップ806）。
【００１１】
バス調停回路714では、たとえば、バス権要求信号受信の際にCPU 702にバス権を許可している場合、このバス権に対応するバスアクセスサイクルが終了する切れ目まで待ってから、CPU 702に与えたバス権が解放される（ステップ808）。
【００１２】
次に、バス調停回路714では、バス権がDMAコントローラ712に与えられるように、バス権解放を示す応答信号が生成されて、DMAコントローラ712に供給される（ステップ810）。
【００１３】
DMAコントローラ712では、この応答信号に応じてバス権が行使されて、I/Oモジュール708から受信データが転送されて主記憶装置704へと書き込まれ、このようにしてDMA転送が実行される（ステップ812）。
【００１４】
このDMA転送が終了すると、DMAコントローラ712では、バス権の解放を示す解放信号が生成されて、バス調停回路714に供給され、バス調停回路714では、DMAコントローラ712に対するバス権が解放されて、再度CPU 702にバス権が与えられる（ステップ814）。
【００１５】
他方、I/Oモジュール708において、受信データの転送が終了すると、データ転送終了を示す通知が、割り込みでCPU 702に供給されて感知される（ステップ816）。ここで、CPU 702は、たとえば、データ転送終了通知に応じて主記憶装置704から受信データの内容を読み出すことができる。
【００１６】
このように、コンピュータシステム700は、DMAコントローラ712を用いることにより、I/Oモジュール708から転送されるデータを、主記憶装置704に対してCPU 702を介さずに直接的に転送し、かつ、バス調停回路714を用いてCPU 702およびDMAコントローラ712の間でバス権を調停することができる。
【００１７】
他方、特許文献１に記載のデータ処理システムは、メインメモリをCPUに直接接続し、かつ、CPUとメインメモリとの間の接続を制御する第１のスイッチングメカニズムと、システムバスとメインメモリとの間の接続を制御する第２スイッチングメカニズムを設け、第１および第２スイッチングメカニズムを相互接続し、２つのスイッチングメカニズムの一方のみが、CPUまたはシステムバスと、メインメモリとの間の接続をリリースすることができるように構成することにより、データ処理システムの性能を向上させ、できる限り多くのタスクを同時に処理し、システムバスの待ち時間を減少させることができる。また、このデータ処理システムにおいて、一般的な方法でシステムバスに接続されるCPUまたはI/Oユニットは、DMA[ユニットを用いて、システムバスを介して、同時にメインメモリにアクセスすることができる。
【００１８】
【特許文献１】特公平6-105447号
【発明の開示】
【発明が解決しようとする課題】
【００１９】
しかしながら、図７に示すようなDMAコントローラ712を用いたコンピュータシステム700では、I/Oモジュール708は、主記憶装置704とバス706を介して接続されるが、主記憶装置704へのアクセスにはバス権の調停が不可欠であり、バス権解放要求、データ転送およびバス権解放などのように複数の処理段階を含むため、データの転送に時間がかかることは妨げられない。
【００２０】
また、このようなシステム700では、I/Oモジュール708は、多量のデータでも一回のバスアクセスサイクルで主記憶装置704へ転送するため、バス706は、数十回ものデータ転送サイクルの間、占有されて、たとえば、CPU 702は、主記憶装置704だけでなく、バス706を介する他の回路（ペリフェラル）にアクセスすることができなくなる。
【００２１】
さらに、このコンピュータシステム700では、複数個備えられたI/Oモジュール708が、主記憶装置704に対して同時にアクセス権を要求する場合には、これらのI/Oモジュール708に対して順次バス権が渡され、I/Oモジュール708ごとにデータ転送が行われるため、主記憶装置704が占有される時間がより長くなる。
【００２２】
また、このようなコンピュータシステム700に備わるバス706には、通常同期バスが用いられるが、クロックに同期する転送プロトコルによりデータ転送が行われるため、バス706へのデータ出力や、バス706からのデータ入力などの際に、１クロック以上の同期損などのオーバーヘッドが生じる。
【００２３】
また、このコンピュータシステム700において、高速なデータ転送が要求されるI/Oモジュール708は、送受信データを一時蓄積するバッファメモリ716を有している。しかし、このコンピュータシステム700をLSIなどに適用すると、バッファメモリ716は、LSIのレイアウトの都合上、その周囲に幅の広い電源配線や多数のバス配線などが必要となり、バッファメモリ716は、主記憶装置704に対してサイズが小さいものではあるが、電源配線やバス配線の領域を考慮するとサイズが倍以上に増加することがある。
【００２４】
本発明はこのような従来技術の欠点を解消し、メモリを占有することなくデータ転送に要する時間を短縮し、さらにLSIなどへの適用時におけるレイアウト上の面積を最小限にする、DMA転送を用いたコンピュータシステムを提供することを目的とする。
【課題を解決するための手段】
【００２５】
本発明は上述の課題を解決するために、外部装置と接続して送受信されるデータの転送をやりとりする入出力手段と、この送受信データを記憶する主記憶手段と、バスを介してこの主記憶手段と接続して、この主記憶手段に記憶された受信データを読み出し、またこの主記憶手段に記憶する送信データを書き込む制御手段を含むコンピュータシステムは、この入出力手段により、この主記憶手段と直接的に接続して、この外部装置から転送される受信データを直接的にこの主記憶手段に書き込み、またこの主記憶手段から送信データを直接的に読み出してこの外部装置へ転送することによりDMA転送を行うことを特徴とする。
【００２６】
また、送受信データを記憶する記憶手段に対して、バスを介して接続する制御手段がこの送受信データの読み出しおよび書き込みを行い、外部装置と接続する入出力手段がこの送受信データの転送を行うコンピュータシステムにおけるデータ転送方法は、この記憶手段に入出力するこの送受信データを制御する記憶制御工程と、この入出力手段とこの記憶手段との間で、この送受信データの転送を制御する入出力制御工程と、この制御手段において、この記憶手段に記憶された受信データを読み出し、またこの記憶手段に記憶するための送信データを書き込む制御工程とを含み、この入出力制御工程は、この入出力手段においてこの外部装置から転送される受信データを、直接的にこの記憶手段に書き込み、またこの記憶手段から直接的に送信データを読み出してこの外部装置へ転送することによりDMA転送を行うことを特徴とする。
【発明の効果】
【００２７】
本発明のコンピュータシステムによれば、I/Oモジュールが、主記憶装置と直接的に接続することにより、最小のメモリアクセスサイクル、たとえば一回分のデータ転送サイクルごとに主記憶装置とアクセスするデータ転送を実現することができ、他の回路からの割り込みを妨げずに、より高速なDMA転送を可能する。
【００２８】
このようなコンピュータシステムでは、主記憶装置に対して、CPUからのアクセスと、I/Oモジュールからのアクセスとが競合する場合でも、最小メモリアクセスサイクルごとに、交互にアクセスを切り替えてデータ転送を実行することができ、バスや主記憶装置は、多量のデータ転送を目的としてアクセスする回路がある場合でも、数十回分ものデータ転送サイクルの間、占有されることはない。このコンピュータシステムでは、バスが占有されないため、たとえばCPUは、I/Oモジュールと同時に主記憶装置にアクセスすることができ、さらに主記憶装置以外の回路にもアクセスすることを可能とし、自由なデータ転送を行うことができる。
【００２９】
また、このコンピュータシステムにおいて、I/Oモジュールは、データが多量に蓄積される前に主記憶装置に転送することができるため、レジスタなどの小容量のバッファが備えられればよく、本システムが搭載されるLSIなどのレイアウトの面積を最小限に抑えることができる。
【００３０】
さらに、本発明のコンピュータシステムでは、主記憶装置に対して複数のI/Oモジュールから同時にアクセス権要求がある場合でも、最小メモリアクセスサイクルごとにI/Oモジュールにアクセス権を渡してデータ転送を実行することができる。このとき、主記憶装置に対して、CPUなどの他の回路が、同時にアクセスすることをも可能とし、CPUやI/Oモジュールを含む複数の回路が、交互にデータ転送を実行することができ、システム全体の性能向上が期待できる。
【発明を実施するための最良の形態】
【００３１】
次に添付図面を参照して、本発明によるコンピュータシステムの実施例を詳細に説明する。たとえば、本発明のコンピュータシステム10は、図１に示すように、システム全体を統括して制御するCPU 12と、データを記憶する主記憶装置14とが、バス16を介して接続され、バス16に接続された入出力（I/O）モジュール18を主記憶装置14と直接的に接続することにより、I/Oモジュール18に接続した外部装置20、および主記憶装置14の両者間で、直接的に、送受信データの転送を行うものである。なお、本発明の理解に直接関係のない部分は、図示を省略し、冗長な説明を避ける。
【００３２】
本実施例におけるコンピュータシステム10において、主記憶装置14以外の各部は、同期する所定のメモリアクセスサイクル単位で主記憶装置14へのアクセスを実行するものでよく、このメモリアクセスサイクルは、たとえば一回分のデータ転送サイクルを示す可能な限り最小のサイクルでよい。
【００３３】
本実施例において、CPU 12は、本システム10全体の動作を制御、統括する制御機能部である。本実施例では、CPU 12は、バス16を介して主記憶装置14とデータの読み出しおよび書き込みをすることができ、たとえば、主記憶装置14におけるメモリマクロ22へのアクセス権を常に有してデータの読み出しおよび書き込みを実行し、主記憶装置14からアクセス待ちが指示された場合に限り、アクセス待ちが解除されるまでメモリマクロ22へのアクセスを停止するものでよい。
【００３４】
たとえば、CPU 12では、I/Oモジュール18から主記憶装置14への受信データの書き込みが終了すると、主記憶装置14によりアクセス待ち解除信号を受け取り、さらにI/Oモジュール18からデータ転送終了通知を割り込みで受け取る。CPU 12は、このデータ転送終了通知に応じて、この受信データを読み出してもよく、受信データの内容を確認し、加工して再び主記憶装置14に送信して書き込み、または受信データを他の処理動作に移行してもよい。また、CPU 12は、この受信データのエラー検出を行い、エラーが検出された場合には、その受信データを無視して廃棄してもよい。
【００３５】
また、CPU 12は、外部装置20に対してデータを送信する場合、送信データを主記憶装置14に書き込み、さらにI/Oモジュール18に対してデータ送信要求を示す要求信号を供給するものでよい。
【００３６】
主記憶装置14は、メモリマクロ22に送受信データを記憶するもので、メモリマクロ22をバス16と接続し、本実施例では特に、I/Oモジュール18とも直接的に接続して、バス16およびI/Oモジュール18のいずれか一方がメモリマクロ22とアクセスすることを許可するようにアクセス調停回路24で制御してデータを入出力するものでよい。
【００３７】
メモリマクロ22は、たとえば、多数のメモリセルで構成されるもので、アドレス信号112で指定されたアドレスのメモリセルに対して、入力するデータ118を書き込み、またはデータ120もしくは122を読み出して出力するものでよい。
【００３８】
アクセス調停回路24は、メモリマクロ22へアクセスする権利をアクセス権要求信号に応じて制御するもので、本実施例では、このアクセス権をCPU 12およびI/Oモジュール18間で調停する機能を有して、このアクセス権の対象に基づいて制御信号104および106を生成してマルチプレクサ26および28を制御する。たとえば、アクセス調停回路24は、アクセス権を通常はCPU 12に許可しておき、I/Oモジュールからのアクセス権要求信号があった場合にこの要求を最優先してアクセス権の調停をするとよい。
【００３９】
本実施例において、アクセス調停回路24は、所定のメモリアクセスサイクルごとにアクセス権を切り替えるものでよく、たとえばI/Oモジュール18などからのアクセス権要求信号に応じてアクセス権を調停するものでよい。このとき、アクセス調停回路24は、アクセス権要求信号の受信時点で許可されているアクセス権に対するメモリアクセスサイクル、またはその後所定数のメモリアクセスサイクルが終了する切れ目を検出して、次のメモリアクセスサイクルが開始するタイミングでアクセス権を切り替えるとよい。
【００４０】
また、本実施例のマルチプレクサ26および28は、バス16やI/Oモジュール18などと接続して、それぞれ供給されるアドレス信号およびデータ出力を、アクセス調停回路24からの制御信号104および106に応じて選択するものでよく、それぞれ、アドレス信号108および110のいずれかを選択してアドレス信号112としてメモリマクロ22に供給し、ならびにデータ出力114および116のいずれかを選択してデータ出力118としてメモリマクロ22に供給するものでよい。
【００４１】
I/Oモジュール18は、本システム10と外部装置20とを接続するインタフェースの機能を有し、本実施例では、本システム10における主記憶装置14およびバス16と接続する。本実施例のI/Oモジュール18は、主記憶装置14と外部装置20との間で送受信データの転送を制御するもので、このデータを一時蓄積するバッファメモリ30を含む。バッファメモリ30は、４Byteまたは８Byte程度のデータを記憶する、たとえばレジスタなどの小容量の記憶回路でよい。
【００４２】
本実施例において、I/Oモジュール18は、たとえば、外部装置20からのデータ受信、またはCPU 12からのデータ送信要求信号に応じて、主記憶装置14にアクセス権要求信号を供給して、主記憶装置14からのアクセス権許可信号に応じて受信データ116を主記憶装置14に書き込み、または主記憶装置14から送信データ122を読み出すものでよい。また、I/Oモジュール18は、受信データ116を主記憶装置14に書き込む場合には、メモリマクロ22における書き込み先アドレスを、また主記憶装置14から送信データ122を読み出す場合には、メモリマクロ22における読み出し先アドレスを指定してアドレス信号110を主記憶装置14に供給するとよい。
【００４３】
外部装置20は、本システム10が適用される電子機器によって異なる入出力装置で、たとえば、ユーザや外部機器から本システム10に情報を与えるキーボード、マウスもしくはCD-ROMなどの入力装置、本システム10の保持する情報を外部に取り出すディスプレイ、プリンタもしくはスピーカなどの出力装置、または入力および出力の両方に用いられるフロッピーディスクもしくはハードディスクなどがある。
【００４４】
次に、本実施例におけるコンピュータシステム10の動作について、外部装置20からデータを受信する動作を図２のフローチャートを参照しながら説明する。
【００４５】
本実施例では、まず、I/Oモジュール18において、外部装置20から受信されるデータがバッファメモリ30に一時蓄積され（ステップ202）、このデータ受信に応じて、メモリマクロ22へのアクセス権を要求する要求信号が生成されて主記憶装置14へと供給される（ステップ204）。
【００４６】
主記憶装置14において、このアクセス権要求信号は、アクセス調停回路24に供給され、アクセス調停回路24では、このようなアクセス権要求信号に応じて、メモリマクロ22へのアクセス権の調停が制御される。ここで、アクセス調停回路24では、I/Oモジュール18からのアクセス権要求信号が最優先とされて、この要求信号の受信時点において、アクセス権が許可されている回路を検出し、I/Oモジュール18以外の回路、たとえばCPU 12がメモリマクロ22にアクセス中であるか否かを判定する（ステップ206）。
【００４７】
アクセス調停回路24では、この要求信号の受信時点におけるアクセス権に対するメモリアクセスサイクルの切れ目まで待って、この切れ目が検出されたときに、ステップ206の判定結果から判断して、CPU 12がアクセス中である場合、CPU 12のアクセス権が待ち状態にされてCPU 12にアクセス待ち指示信号が供給され（ステップ208）、さらにI/Oモジュール18に対してアクセス権が許可されて、アクセス権許可信号が供給される（ステップ210）。他方、ステップ206において、CPU 12がアクセス中でない場合には、そのままステップ210に進む。
【００４８】
ところで、ステップ208に示すような、アクセス調停回路24におけるメモリアクセスサイクルの切れ目の検出では、このメモリアクセスサイクルの後、所定数のメモリアクセスサイクルが終了する切れ目を検出してもよい。
【００４９】
次に、I/Oモジュール18では、メモリマクロ22へのアクセス権が行使されて、受信データが主記憶装置14へと転送される（ステップ212）。このとき、I/Oモジュール18において、書き込むアドレスを示すアドレス信号110がマルチプレクサ26へと供給され、そのアドレスに対応するデータがデータ出力116からマルチプレクサ28へと供給される。
【００５０】
ここで、マルチプレクサ26および28では、アクセス調停回路24からI/Oモジュール18にアクセス権を許可することを示す制御信号104および106がそれぞれ供給されて、アドレス信号110およびデータ出力116がアドレス信号112およびデータ出力118としてメモリマクロ22に供給される。メモリマクロ22では、アドレス信号112で指定されるアドレスにデータ出力118が書き込まれる。
【００５１】
このようにして、I/Oモジュール18からメモリマクロ22への受信データの転送が終了すると、I/Oモジュール18では、アクセス調停回路24に対してアクセス権解放を示す信号が出力される。アクセス調停回路24では、このアクセス権解放信号に応じて、CPU 12へのアクセス待ち状態が解除されてCPU 12にアクセス待ち解除信号が供給される（ステップ214）。
【００５２】
さらに、I/Oモジュール18では、CPU 12に対して、受信データ転送終了を示す通知が出力される。この受信データ転送終了通知に応じて、たとえば、本実施例におけるCPU 12では、主記憶装置14における受信データが読み出される。
【００５３】
次に、本実施例におけるコンピュータシステム10の動作について、外部装置20にデータを送信する動作を図３のフローチャートを参照しながら説明する。
【００５４】
本実施例のコンピュータシステム10では、CPU 12により制御されて外部装置20へのデータ送信が開始され（ステップ302）、この送信データは、主記憶装置14のメモリマクロ22に書き込まれる。
【００５５】
次に、CPU 12では、送信要求を示す要求信号が生成されて、I/Oモジュール18に供給される（ステップ304）。
【００５６】
I/Oモジュール18では、この送信要求信号に応じて、主記憶装置14に対してメモリマクロ22へのアクセス権要求信号が供給される（ステップ306）
主記憶装置14では、ステップ206と同様に、アクセス調停回路24において、このアクセス権要求信号に応じて、CPU 12がアクセス中であるか否かが判定される（ステップ308）。
【００５７】
アクセス調停回路24では、このときのアクセス権に対するメモリアクセスサイクルの切れ目が検出されたときに、ステップ308の判定結果から判断して、CPU 12がアクセス中である場合、ステップ208と同様に、CPU 12にアクセス待ち指示信号が供給され（ステップ310）、ステップ210と同様に、I/Oモジュール18にアクセス権許可信号が供給される（ステップ312）。他方、ステップ308において、CPU 12がアクセス中でない場合には、そのままステップ312に進む。
【００５８】
次に、I/Oモジュール18では、メモリマクロ22へのアクセス権が行使されて、メモリマクロ22から送信データを読み出して外部装置20に転送する（ステップ314）。このとき、I/Oモジュール18において、読み出すアドレスを示すアドレス信号110がマルチプレクサ26へと供給される。マルチプレクサ26では、アクセス調停回路24からのI/Oモジュール18がアクセス権を有することを示す制御信号104に応じて、アドレス信号110がアドレス信号112としてメモリマクロ22に供給される。メモリマクロ22では、アドレス信号112で指定されるアドレスのデータが、送信データ122としてI/Oモジュール18へと出力される。
【００５９】
このようにして、メモリマクロ22からI/Oモジュール18への送信データの転送が終了すると、ステップ214と同様に、アクセス調停回路24にアクセス権解放信号が供給され、このアクセス権解放に応じてCPU 12のアクセス権の待ち状態が解除される（ステップ316）。
【００６０】
さらに、I/Oモジュール18では、CPU 12に対して、送信データ転送終了を示す通知が供給される。このように、送信データ転送が完了すると、主記憶装置14におけるメモリマクロ22へのアクセス権はCPU 12に移行する。
【００６１】
また、他の実施例として、コンピュータシステム10は、図４に示すように、主記憶装置１4に直接的に接続する複数のI/Oモジュールを備えて、複数の外部装置とデータ転送を実行するもので、たとえば、第１の外部装置46および第２の外部装置48とそれぞれ接続する第１のI/Oモジュール42および第２のI/Oモジュール44に対して、メモリマクロ22へのアクセス権をアクセス調停回路50で調停するものである。
【００６２】
本実施例のコンピュータシステム10は、実際には多数の外部装置と接続することができるが、図４では複雑化を避けるため、少数の外部装置しか図示せず、また図示した少数の外部装置に対応するI/Oモジュールしか図示しない。
【００６３】
本実施例のコンピュータシステム10において、アクセス調停回路50は、CPU 12、第１のI/Oモジュール42および第２のI/Oモジュール44のいずれかに対して、メモリマクロ22へのアクセス権を許可するように調停して、このアクセス権の対象に基づいてマルチプレクサ26ならびに28を制御するものである。本実施例では、アクセス調停回路50は、少数のI/Oモジュールに対してアクセス権を調停するが、多数のI/Oモジュールがコンピュータシステム10と接続する場合には、これら多数のI/Oモジュールに対してアクセス権を調停してもよい。
【００６４】
たとえば、本実施例のアクセス調停回路50は、メモリアクセスサイクルごとにアクセス権を許可するもので、通常はCPU 12にアクセス権を許可しているが、第１のI/Oモジュール42または第２のI/Oモジュール44からのアクセス要求があった場合には、CPU 12、第１のI/Oモジュール42および第２のI/Oモジュール44の間で交互にアクセス権を許可するものでよい。本実施例では、第１のI/Oモジュール42を最優先とし、第２のI/Oモジュール44を第二優先としてもよい。また、アクセス調停回路50は、アクセス権要求をいつでも受け取って調停に加えることができ、アクセス権解放信号を受け取った場合には調停から外すこともできる。
【００６５】
また、本実施例のマルチプレクサ26および28は、それぞれ、アクセス調停回路50からの制御信号410および412に応じて、バス16、第１のI/Oモジュール42または第２のI/Oモジュール44からのアクセスを選択して、アドレス信号108、402または404を選択してアドレス信号112とし、およびデータ出力114、406または408を選択してデータ出力118としてメモリマクロ22に供給するものでよい。
【００６６】
本実施例の第１のI/Oモジュール42および第２のI/Oモジュール44は、それぞれ、本システム10と、第１の外部装置46および第２の外部装置48とを接続するインタフェースの機能を有し、主記憶装置14と、第１の外部装置46および第２の外部装置48との間で送受信データの転送を制御するもので、このデータを一時蓄積するバッファメモリ52および54を含んでよい。
【００６７】
第１の外部装置46および第２の外部装置48は、本システム10が適用される電子機器によって異なる入出力装置で、たとえば、ユーザや外部機器から本システム10に情報を与える入力装置、本システム10の保持する情報を外部に取り出す出力装置、または入力および出力の両方に用いられるフロッピーディスクもしくはハードディスクなどでよい。
【００６８】
次に、本実施例におけるコンピュータシステム10の動作について、第１の外部装置46および第２の外部装置48からデータを受信する動作を図５のフローチャートを参照しながら説明する。
【００６９】
本実施例では、まず、第１のI/Oモジュール42において、第１の外部装置46から受信されるデータは、バッファメモリ50に一時蓄積され、このデータ受信に応じて、第１のアクセス権要求信号が生成されて主記憶装置14に供給される（ステップ502）。
【００７０】
次に、同様に、第２のI/Oモジュール44において、第２の外部装置48から受信されるデータは、バッファメモリ52に一時蓄積され、このデータ受信に応じて、第２のアクセス権要求信号が生成されて主記憶装置14に供給される（ステップ504）。
【００７１】
主記憶装置14において、第１のアクセス権要求信号および第２のアクセス権要求信号は、アクセス調停回路50に供給され、アクセス調停回路50では、これらのアクセス権要求信号に応じて、メモリマクロ22へのアクセス権は、CPU 12、第１のI/Oモジュール42および第２のI/Oモジュール44に対して、メモリアクセスサイクルごとに、交互に許可されるように調停される。アクセス調停回路50では、ステップ206と同様に、CPU 12がアクセス中であるか否かが判定される（ステップ506）。
【００７２】
アクセス調停回路50では、アクセス権に対するメモリアクセスサイクルの切れ目が検出されたときに、ステップ506の判定結果から判断して、CPU 12がアクセス中である場合、ステップ208と同様に、CPU 12にアクセス待ち指示信号が供給され（ステップ508）、次に、第１のアクセス権要求信号に応じて第１のI/Oモジュール42にアクセス権許可信号が供給される（ステップ510）。他方、ステップ506において、CPU 12がアクセス中でない場合には、そのままステップ510に進む。
【００７３】
このステップ510において、第１のI/Oモジュール42では、アクセス権が行使されて受信データが主記憶装置14に転送される。このとき、第１のI/Oモジュール42において、書き込むアドレスを示すアドレス信号402がマルチプレクサ26へと供給され、そのアドレスに対応するデータがデータ出力406からマルチプレクサ28へと供給され、マルチプレクサ26および28では、それぞれ、制御信号410および412に応じて、アドレス信号402およびデータ出力406がアドレス信号112およびデータ出力118としてメモリマクロ22に供給される。メモリマクロ22では、アドレス信号112で指定されるアドレスにデータ出力118が書き込まれる。
【００７４】
次に、第１のI/Oモジュール42のアクセスに対するメモリアクセルサイクルが経過すると、アクセス調停回路50では、第１のI/Oモジュール42にアクセス権解放信号が供給され、第２のアクセス権要求信号に応じて第２のI/Oモジュール44にアクセス権が移行されて、第２のI/Oモジュール44にアクセス権許可信号が供給される（ステップ512）。
【００７５】
このステップ512において、第２のI/Oモジュール44では、アクセス権が行使されて受信データが主記憶装置14に転送され、ステップ510と同様に、アドレス信号404およびデータ出力408が、それぞれ、マルチプレクサ26および28へと供給され、制御信号410および412に応じて、アドレス信号112およびデータ出力118としてメモリマクロ22に供給される。
【００７６】
次に、第２のI/Oモジュール44のアクセスに対するメモリアクセルサイクルが経過すると、アクセス調停回路50では、第２のI/Oモジュール44にアクセス権解放信号が供給され、CPU 12のアクセス待ち状態が解除されてCPU 12にアクセス権が移行され、CPU 12へとアクセス待ち解除信号が供給される（ステップ514）。
【００７７】
次に、CPU 12のアクセスに対するメモリアクセルサイクルが経過すると、アクセス調停回路50では、ステップ510に戻って、再度、第１のI/Oモジュール44にアクセス権が移行する。このように、アクセス調停回路50では、CPU 12、第１のI/Oモジュール42および第２のI/Oモジュール44の間でアクセス権の移行が繰り返されるが、第１のI/Oモジュール42または第２のI/Oモジュール44における受信データ転送が終了した場合、そのI/Oモジュールは調停の対象から外される。
【００７８】
たとえば、第１のI/Oモジュール42または第２のI/Oモジュール44では、受信データ転送が終了したか否かを判断することができ（ステップ516）、転送終了である場合には、アクセス調停回路50にアクセス権解放信号が供給され、さらにCPU 12にデータ転送終了通知が出力される（ステップ518）。他方、転送終了でない場合には、ステップ510、512、514および516で示されるようなループが繰り返される。
【００７９】
なお、本実施例では、図５において、ステップ510、512、514および516で示されるループが動作中でも、他のI/Oモジュールがアクセス調停回路50にアクセス要求をすることができる。また、ステップ516は、I/Oモジュールごとに判定されてよく、受信データ転送が終了したI/Oモジュールごとにステップ518に進んで図５に示すフローを終了することができる。
【００８０】
次に、本実施例におけるコンピュータシステム10の動作について、第１の外部装置46および第２の外部装置48にデータを送信する動作を図６のフローチャートを参照しながら説明する。
【００８１】
本実施例のコンピュータシステム10では、CPU 12により制御されて第１の外部装置46へのデータ送信が開始され、この送信データは、主記憶装置14のメモリマクロ22に書き込まれる。CPU 12では、送信要求を示す要求信号が生成されて、第１の外部装置46に対応する第１のI/Oモジュール42に供給される（ステップ602）。
【００８２】
同様にして、CPU 12により制御されて第２の外部装置48へのデータ送信が開始されてメモリマクロ22に書き込まれ、CPU 12では、送信要求を示す要求信号が第２の外部装置48に対応する第２のI/Oモジュール44に供給される（ステップ604）。
【００８３】
次に、第１のI/Oモジュール42では、送信要求信号に応じて、第１のアクセス権要求信号が生成されて主記憶装置14へと供給される（ステップ606）。
【００８４】
同様にして、第２のI/Oモジュール44において、送信要求信号に応じて、第２のアクセス権要求信号が生成されて主記憶装置14へと供給される（ステップ608）。
【００８５】
主記憶装置14において、第１のアクセス権要求信号および第２のアクセス権要求信号は、アクセス調停回路50に供給され、アクセス調停回路50では、ステップ506と同様に、これらのアクセス権要求信号に応じて、メモリマクロ22へのアクセス権が、CPU 12、第１のI/Oモジュール42および第２のI/Oモジュール44の間で調停される。アクセス調停回路50では、ステップ206と同様に、CPU 12がアクセス中であるか否かが判定される（ステップ610）。
【００８６】
アクセス調停回路50では、アクセス権に対するメモリアクセスサイクルの切れ目が検出されたときに、ステップ610の判定結果から判断して、CPU 12がアクセス中である場合、ステップ208と同様に、CPU 12にアクセス待ち指示信号が供給され（ステップ612）、次に、第１のアクセス権要求信号に応じて第１のI/Oモジュール42にアクセス権許可信号が供給される（ステップ614）。他方、ステップ506において、CPU 12がアクセス中でない場合には、そのままステップ614に進む。
【００８７】
このステップ614において、第１のI/Oモジュール42では、アクセス権が行使されてメモリマクロ22から送信データが読み出されて第１の外部装置46に転送される。このとき、第１のI/Oモジュール42において、読み出すアドレスを示すアドレス信号402がマルチプレクサ26へと供給され、制御信号410に応じてアドレス信号112としてメモリマクロ22に供給される。メモリマクロ22では、アドレス信号112で指定されるアドレスのデータが読み出されて、送信データ122として第１のI/Oモジュール42を介して第１の外部装置46に転送される。
【００８８】
次に、第１のI/Oモジュール42のアクセスに対するメモリアクセルサイクルが経過すると、アクセス調停回路50では、ステップ512と同様に、第１のI/Oモジュール42にアクセス権解放信号が供給され、第２のI/Oモジュール44にアクセス権が移行されてアクセス権許可信号が供給される（ステップ616）。
【００８９】
このステップ616において、第２のI/Oモジュール44では、メモリマクロ22から送信データが読み出されて第２の外部装置48に転送され、ステップ614と同様に、アドレス信号402がマルチプレクサ26へと供給され、制御信号410に応じてアドレス信号112としてメモリマクロ22に供給される。メモリマクロ22では、アドレス信号112に応じた送信データ122が第２のI/Oモジュール46を介して第２の外部装置48に転送される。
【００９０】
次に、第２のI/Oモジュール44のアクセスに対するメモリアクセルサイクルが経過すると、アクセス調停回路50では、ステップ514と同様に、第２のI/Oモジュール44にアクセス権解放信号が供給され、CPU 12のアクセス待ち状態が解除されてCPU 12にアクセス権が移行され、CPU 12へとアクセス待ち解除信号が供給される（ステップ618）。
【００９１】
アクセス調停回路50では、送信データ転送時においても、CPU 12、第１のI/Oモジュール42および第２のI/Oモジュール44の間でアクセス権の移行が繰り返すことができ、第１のI/Oモジュール42または第２のI/Oモジュール44における送信データ転送が終了した場合、そのI/Oモジュールは調停の対象から外される。
【００９２】
たとえば、第１のI/Oモジュール42または第２のI/Oモジュール44では、ステップ516と同様に、送信データ転送が終了したか否かを判断することができ（ステップ620）、転送終了である場合には、アクセス調停回路50にアクセス権解放信号が供給され、さらにCPU 12にデータ転送終了通知が出力される（ステップ622）。他方、転送終了でない場合には、ステップ614、616、618および620で示されるループが繰り返される。
【００９３】
なお、本実施例では、図６において、ステップ614、616、618および620で示されるループが動作中でも、他のI/Oモジュールがアクセス調停回路50にアクセス要求をすることができる。また、ステップ620は、I/Oモジュールごとに判定されてよく、送信データ転送が終了したI/Oモジュールごとにステップ622に進んで図６に示すフローを終了することができる。
【００９４】
また、本実施例では、受信データ転送は、図５に示すように、ステップ510、512、514および516を一つのループとして動作し、送信データ転送処理は、図６に示すように、ステップ614、616、618および620を一つのループとして動作しているが、アクセス調停回路24は、I/Oモジュールからのアクセス権要求信号に応じて、複数のI/OモジュールおよびCPUの間でアクセス権を調停するものであるため、受信データ転送に基づくアクセス要求と、送信データ転送に基づくアクセス要求とを調停して、受信データ転送および送信データ転送を一つのループ内で動作するようにアクセス権を調停することもできる。
【００９５】
また、本発明のコンピュータシステムは、LSIへの搭載に適用されるだけでなく、一般的なコンピュータシステムにおけるI/Oモジュールを用いたデータ転送装置として適用することもできる。
【図面の簡単な説明】
【００９６】
【図１】本発明に係るコンピュータシステムの一実施例を示すブロック図である。
【図２】図１に示す実施例のコンピュータシステムにおけるデータ受信動作を説明するフローチャートである。
【図３】図１に示す実施例のコンピュータシステムにおけるデータ送信動作を説明するフローチャートである。
【図４】本発明に係るコンピュータシステムの他の実施例を示すブロック図である。
【図５】図４に示す他の実施例のコンピュータシステムにおけるデータ受信動作を説明するフローチャートである。
【図６】図４に示す他の実施例のコンピュータシステムにおけるデータ送信動作を説明するフローチャートである。
【図７】従来のコンピュータシステムを示すブロック図である。
【図８】図７に示す従来のコンピュータシステムにおけるデータ受信動作を説明するフローチャートである。
【符号の説明】
【００９７】
10  コンピュータシステム
12  中央処理装置
14  主記憶装置
16  バス
18  I/Oモジュール
20  外部装置
22  メモリマクロ
24  アクセス調停回路
26、28  マルチプレクサ
30  バッファメモリ
【図１】
2006031227.tif 000003
【図２】
2006031227.tif 000004
【図３】
2006031227.tif 000005
【図４】
2006031227.tif 000006
【図５】
2006031227.tif 000007
【図６】
2006031227.tif 000008
【図７】
2006031227.tif 000009
【図８】
2006031227.tif 000010