JPH11327798A - データ転送制御装置 - Google Patents

データ転送制御装置

Info

Publication number
JPH11327798A
JPH11327798A JP10138095A JP13809598A JPH11327798A JP H11327798 A JPH11327798 A JP H11327798A JP 10138095 A JP10138095 A JP 10138095A JP 13809598 A JP13809598 A JP 13809598A JP H11327798 A JPH11327798 A JP H11327798A
Authority
JP
Japan
Prior art keywords
data
bus
memory
transfer
data transfer
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
Application number
JP10138095A
Other languages
English (en)
Inventor
Yasuhiro Mori
康浩 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP10138095A priority Critical patent/JPH11327798A/ja
Publication of JPH11327798A publication Critical patent/JPH11327798A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 一の外部デバイスから主メモリにデータを転
送し、かつ必要に応じて前記一の外部デバイスから他の
外部デバイスにデータを転送するような処理を複数回行
う場合に、高速に処理することができるデータ転送制御
装置を提供する。 【解決手段】 I/Oデバイス19からメインメモリ2
にデータを転送する際に、I/Oキャッシュメモリ7に
も当該データを格納しておき、後にメインメモリ2から
I/Oデバイス20に当該データを転送する必要が生じ
た場合に、メインメモリ2ではなくI/Oキャッシュメ
モリ7の方からI/Oデバイス20にデータの転送を行
う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータと外
部デバイスとの間のデータ転送技術に関し、特にコンピ
ュータと複数の外部デバイスとの間に接続されてデータ
転送の制御を行うデータ転送制御装置に関する。
【0002】
【従来の技術】近年、マルチメディア化を背景として、
パーソナルコンピュータ(PC)と、これに接続された
光ディスクドライブ装置、ビデオ出力装置、室内回線終
端装置(DSU)等の各種周辺機器との間で大量のデー
タが転送されることが多くなってきている。以下、図9
を用いて従来におけるPCと各種周辺機器との間でのデ
ータ入出力について説明する。図8は、従来のPCと周
辺機器との一般的な接続関係を示す構成図である。CP
U901とメモリ902とは、CPUバス903により
接続されており、CPUバス903とPCI(Peri
pheral Component Intercon
nect)バス905との間はCPU−PCIブリッジ
904によって接続されている。PCIバス905に
は、デバイスインタフェースであるIDEインタフェー
ス909を介してCD−ROMドライブ906が、SC
SIインタフェース910を介してハードディスク90
7が、またGraphicインタフェース911を介し
てモニタ908が接続されている。
【0003】ここで、CPU901は、メモリ902中
に格納されたオペレーティングシステム(OS)及びア
プリケーションプログラム(AP)を実行するものであ
る。以下、CD−ROMドライブ906からIDEイン
タフェース909を介してメモリ902にデータを読み
込んだ後にメモリ902からSCSIインタフェース9
10を介してハードディスク907にデータを転送する
処理を実現するためのAPをCPU901が実行した場
合の動作について説明する。まず、APは、CD−RO
Mドライブ906からメモリ902にデータを読み込む
ためにReadシステムコールを発行する。Readシ
ステムコールを受けると、OSは、内部のプログラムで
あるデバイスドライバによりIDEインタフェース90
6を制御するための制御コードをIDEインタフェース
909に転送することにより、CD−ROMに記録され
ている所定バイト数のデータを読み出しメモリ902上
の所定のアドレスに書き込む。
【0004】所定バイト数分のデータの読み出しが終っ
た場合、OSはデバイスドライバの実行を終了し、AP
に制御を戻す。APは、Readシステムコールに続い
て、メモリ902からハードディスク907にデータを
出力するためにWriteシステムコールを発行する。
Writeシステムコールを受けると、OSは、デバイ
スドライバによりSCSIインタフェース910を制御
するための制御コードをSCSIインタフェース910
に転送することにより、上述のReadシステムコール
によってメモリ902に格納されてた所定バイト数のデ
ータを、ハードディスク907に転送する。上述のAP
の実行の結果、CD−ROMに記録されていた所定バイ
ト数分のデータは、CD−ROMドライブ906からメ
モリ902を経由して、ハードディスク907にコピー
される。
【0005】従来、通常は上述のようなメモリを介在さ
せる手順によって、一の外部デバイスから他の外部デバ
イスへデータを転送していた。一方、一の外部デバイス
から他の外部デバイスへデータを高速に転送する技術と
して、特開平8−305658に示された技術がある。
図9は、特開平8−305658に示されたPCと周辺
機器との接続関係を示す構成図である。この技術は、C
PU951と、メモリ952とを接続するCPUバス9
53と、外部デバイス959と接続されたI/Oバス9
57と、外部デバイス960と接続されたI/Oバス9
58とを、CPU−I/Oブリッジ954、CPU−I
/Oブリッジ955及びI/O−I/Oブリッジ956
によりループ状に接続したことを特徴とし、メモリ95
2に格納されCPU951に実行されるAPがRead
_and_Writeシステムコールを発行することに
より、外部デバイス間で直接的にデータ転送を実行させ
るものである。
【0006】まず、APがRead_and_Writ
eシステムコールを発行すると、OSはデバイスドライ
バによりI/O−I/Oブリッジ956を制御しI/O
バス957とI/Oバス958との間のパスを開放し、
外部デバイス間のデータ転送を行わせる。外部デバイス
間のデータ転送が終了した後、OSはデバイスドライバ
によりI/O−I/Oブリッジ956を制御し前記パス
を閉鎖させ、APに制御を戻す。これによれば、外部デ
バイス間でのデータ転送に、メモリを介在させないた
め、データ転送が高速に行える。また、データ転送にC
PUバスを使用しないため、データ転送と同時にもCP
U951はメモリ952にアクセスすることもできる。
【0007】
【発明が解決しようとする課題】特開平8−30565
8に示された技術は、一の外部デバイスから他の外部デ
バイスへ無条件にデータを転送する必要がある場合にお
いては有効な技術であるが、一の外部デバイスから主メ
モリにデータを転送し、その主メモリに転送されたデー
タの内容に基づいてCPUが当該データを他の外部デバ
イスに転送するか否かを判断し、判断結果に応じて他の
外部デバイスに当該データを転送する必要がある場合に
おいては、対応できない。例えば、CD−ROMに記録
されている複数の所定量のデータのうち、それぞれのデ
ータ内に含まれているエラー検出用コードに基づいて当
該データが正常であると判断されたもの全てをハードデ
ィスクに転送する必要があるような場合には、メモリを
介在させずに外部デバイス間で直接的にデータ転送を行
うことを特徴とする上述の技術では対応できない。
【0008】マルチメディア化の進展に伴い、動画・音
声といったデータの処理についてリアルタイム性が要求
されるようになった今日では、複数のデバイス間でのデ
ータの授受を含む様々なデータ処理の高速化が望まれて
おり、先に例示したような場合についても同様である。
そこで、本発明は、かかる要求に対応すべく、一の外部
デバイスから主メモリにデータを転送し、かつ必要に応
じて前記一の外部デバイスから他の外部デバイスにデー
タを転送するような処理を複数回行う場合に、高速に処
理することができるデータ転送制御装置を提供すること
を目的とする。
【0009】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、メモリと、第1デバイスと、第2デバイ
スとの間に接続されたデータ転送制御装置であって、前
記第1デバイス及び前記第2デバイスとのみデータの授
受が可能であり、データを格納するためのデータ格納手
段と、前記第1デバイスから前記メモリへ第1データが
転送されるべきことを検出した場合に、前記第1デバイ
スから出力された第1データを、前記メモリに供給する
とともに前記データ格納手段に格納する第1データ転送
手段と、前記第2デバイスへ前記メモリから第2データ
が転送されるべきことを検出した場合であって、前記第
2データと同一内容の第3データが前記データ格納手段
に格納されているときには、前記データ格納手段から前
記第3データを取り出して前記第2デバイスに前記第3
データを供給し、前記第2データと同一内容のデータが
前記データ格納手段に格納されていないときには、前記
メモリから前記第2データを取り出して前記第2デバイ
スに前記第2データを供給する第2データ転送手段とを
備え、第1データ転送手段と第2データ転送手段とは同
時に動作可能であることを特徴とする。これにより、メ
モリから外部デバイスへのデータの転送が必要な場合に
おいても、当該データのコピーを前記データ格納手段か
ら外部デバイスに転送することでこれを代替することが
できるときがあり、このときは前記メモリに別途アクセ
スが可能となるため、並行して他の外部デバイスから当
該メモリへのデータの転送も行い得る。従って、上記構
成により、一の外部デバイスからメモリにデータを転送
し、かつ必要に応じて前記一の外部デバイスから他の外
部デバイスにデータを転送するような処理を複数回行う
ような処理にかかる時間は、上述の並行してのデータ転
送が可能な分だけ短縮され、全体的にみれば当該処理を
高速に実行できることとなる。
【0010】
【発明の実施の形態】以下、本発明の実施の形態に係る
データ転送装置について、図面を用いて説明する。 (実施の形態1)実施の形態1に係るデータ転送装置
は、PCと外部デバイスとを含むコンピュータシステム
において、PCと外部デバイスとの間に接続されてい
る。図1は、本発明の実施の形態1に係るコンピュータ
システム100の構成図である。コンピュータシステム
100は、PC101と、データ転送装置102と、デ
バイスインタフェース17及びデバイスインタフェース
18と、I/Oデバイス19及びI/Oデバイス20と
からなる。ここで、I/Oデバイス19及びI/Oデバ
イス20は、CD−ROMドライブやハードディスク等
の外部デバイスである。PC101は、CPU1と、メ
インメモリ2と、CPUバス3と、I/Oバス5と、C
PUバス3とI/Oバス5とを接続するCPU−I/O
バスブリッジ4とを有する一般的なPCである。ここ
で、CPU1とメインメモリ2とはCPUバス3と接続
されている。また、I/Oバス5は、PC101にとっ
て外部のデバイスと接続するためのバスであり、データ
転送装置102と、デバイスインタフェース17又はデ
バイスインタフェース18とを介して、I/Oデバイス
19又はI/Oデバイス20と接続されている。CPU
1は、メインメモリ2に格納されたプログラムを逐次解
釈実行するものであり、メインメモリ2には、OSの機
能を実現するプログラム及びAPが格納されている。ま
た、データ転送装置102は、I/Oバスブリッジ6及
びI/Oバスブリッジ8と、I/Oキャッシュメモリ7
と、制御部11と、メモリバス9及びメモリバス10
と、I/Oバス15及びI/Oバス16とを有する。な
お、全てのバスのバス幅は32ビットである。
【0011】制御部11は、I/Oバス15及びI/O
バス16上に乗ったデータを監視し、I/Oバスブリッ
ジ6及びI/Oバスブリッジ8を制御する。また、制御
部11は、アドレステーブル14を含み、このアドレス
テーブル14によりI/Oキャッシュメモリ7内のデー
タを管理する。I/Oバスブリッジ6は、I/Oバス5
とI/Oバス15とメモリバス9と接続され、制御部1
1の制御の下でバス間のデータ転送を行う。I/Oバス
ブリッジ8は、I/Oバス5とI/Oバス16とメモリ
バス10と接続され、制御部11の制御の下でバス間の
データ転送を行う。I/Oキャッシュメモリ7は、メモ
リバス9及びメモリバス10と接続されており、メモリ
バス9を介してI/Oバスブリッジ6及び制御部11か
らアクセスされ、メモリバス10を介してI/Oバスブ
リッジ8及び制御部11からアクセスされるものであ
り、内部の異なるアドレスで示される領域に格納された
データそれぞれについては、同時にI/Oバスブリッジ
6及びI/Oバスブリッジ8の両方からアクセスされ得
るメモリである。以下、上記構成を備えるコンピュータ
システム100におけるデータ転送を説明する。まず、
CPU1がメインメモリ2に格納されているAP中のR
ead命令を実行する場合の動作について図2を用いて
説明する。図2は、実施の形態1におけるRead命令
の実行動作を示すフローチャートである。Read命令
は、PCの外部に存在するI/Oデバイス19からメイ
ンメモリ2へデータを読み込むべき旨の命令であり、O
Sの機能を呼び出すシステムコールである。ここでは、
Read命令が、メインメモリ2の8000番地から連
続する80バイトにI/Oデバイス19から読み出した
データを格納する旨として用いられていることとして説
明する。
【0012】CPU1は、AP中のRead命令を解読
するとAPからOSに制御を移行し(ステップS20
1)、OSは、デバイスドライバを介してデータ転送装
置にDMA転送を指示する(ステップS202)。この
指示は、転送元、転送先及び転送バイト数の情報をとも
なってなされるものであり、ここでは、転送元としてI
/Oデバイス19のアドレス情報と、転送先としてメイ
ンメモリ2の8000番地と、転送するバイト数として
80バイトという情報がデータ転送装置102の制御部
11に渡される。データ転送装置102の制御部11
は、DMA転送の指示を受け付けると、転送先であるメ
インメモリ2の8000番地という情報を、I/Oキャ
ッシュメモリ7についてのアドレス情報と対応づけて、
アドレステーブル14に登録する(ステップS20
3)。図3は、アドレステーブル14の内容例を示す図
である。同図に示す例は、メインメモリ2の8000番
地から80バイト分は、I/Oキャッシュメモリ7の1
000番地から80バイト分と対応づけられた様子を示
している。なお、同図は、さらに前にRead命令が実
行されたことにより、既にメインメモリ2の4000番
地から80バイト分がI/Oキャッシュメモリ7の0番
地から80バイト分と対応づけられている様子も示して
いる。データ転送装置102の制御部11が、メインメ
モリ2の8000番地とI/Oキャッシュメモリ7の1
000番地とを対応づけることにした後、制御部11に
よるDMA転送制御の下で、デバイスインタフェース1
7を介してI/Oデバイス19からI/Oバス15上に
出力されたデータを、I/Oバスブリッジ6は、I/O
バス5を介してメインメモリ2に供給するとともに、メ
モリバス9を介してI/Oキャッシュメモリ7にも格納
する(ステップS204)。
【0013】データ転送装置102は、80バイトのデ
ータ転送を終えると、CPU1に割込みをかけてDMA
転送の終了を通知する(ステップS205)。CPU1
はDMA転送の終了を検知すると、OSはRead命令
についての処理を終了してAPに制御を戻す(ステップ
S206)。このような動作によって、I/Oデバイス
19からのデータは、I/Oバス15、I/Oバスブリ
ッジ6、I/Oバス5、CPU−I/Oバスブリッジ
4、CPUバス3を経由してメインメモリ2に格納され
るとともに、I/Oバス15、I/Oバスブリッジ6、
メモリバス9を経由して、I/Oキャッシュメモリ7に
格納される。なお、この場合のデータの経路を図1中に
矢符21で示している。次に、CPU1がメインメモリ
2に格納されているAP中のWrite命令を実行する
場合の動作について図4を用いて説明する。図4は、実
施の形態1におけるWrite命令の実行動作を示すフ
ローチャートである。Write命令は、メインメモリ
2からPCの外部に存在するI/Oデバイス20へデー
タを書き出すべき旨の命令であり、OSの機能を呼び出
すシステムコールである。ここでは、Write命令
が、メインメモリ2の8000番地から連続する80バ
イトから読み出したデータをI/Oデバイス20に書き
出す旨として用いられていることとして説明する。CP
U1は、AP中のWrite命令を解読するとAPから
OSに制御を移行し(ステップS301)、OSは、デ
バイスドライバを介してデータ転送装置にDMA転送を
指示する(ステップS302)。この指示は、転送元、
転送先及び転送バイト数の情報をともなってなされるも
のであり、ここでは、転送元としてメインメモリ2の8
000番地と、転送先としてI/Oデバイス19のアド
レス情報と、転送するバイト数として80バイトという
情報がデータ転送装置102の制御部11に渡される。
【0014】データ転送装置102は、アドレステーブ
ル14を参照し、転送元であるメインメモリ2中のデー
タと同一内容のデータがI/Oキャッシュメモリ7に既
に格納されているか否かを検査する(ステップS30
3)。ここで、同一内容か否かについての検査とは、メ
インメモリ2とI/Oキャッシュメモリ7のデータ内容
を直接比較するのではなく、アドレステーブル14中に
登録してあるメインメモリ2内におけるアドレス情報の
みを参照して行う検査をいう。例えば、アドレステーブ
ル14が図3に示すような内容である状態においては、
メインメモリ2の8000番地から80バイト分のデー
タと同一内容のデータがI/Oキャッシュメモリ7に存
在するか否かの検査の結果は、存在すると判断すること
になる。なお、この判断はアドレスとサイズとの計算に
基づくものであり、アドレステーブル14の内容と、転
送すべきアドレスとが全く一致している場合に限って存
在すると判断するものではない。即ち、アドレステーブ
ル14に8000番地から80バイトと記録されてお
り、転送すべきアドレス及びサイズが、8040番地か
ら20バイトであったような場合も、I/Oキャッシュ
メモリ7に転送すべきデータが存在すると判断する。こ
の検査の結果、I/Oキャッシュメモリ7に転送元のデ
ータと同一内容のデータがあることが判断されたならば
(ステップS304)、データ転送装置102は、メイ
ンメモリ2からのDMA転送をしないにもかかわらずC
PU1に割込みによりDMA転送の終了を通知し(ステ
ップS305)、I/Oバスブリッジ8を制御部11に
よって制御し、I/Oキャッシュメモリ7からデバイス
インタフェース18を介してI/Oデバイス20にデー
タを転送する(ステップS306)。なお、データ転送
装置102によるCPU1へのDMA転送終了通知のた
めの割込みは、I/Oデバイス20へのI/Oキャッシ
ュメモリ7からのデータの転送に先行してなされる。
【0015】また、I/Oキャッシュメモリ7からのデ
ータの転送において、データ転送装置102は、CPU
1によって転送元としてアドレスが指定されたメインメ
モリ2内のデータと同一内容のデータが格納されている
I/Oキャッシュメモリ7内のアドレスを、アドレステ
ーブル14に基づき算出して、このアドレスをデータの
転送に用いる。従って、データ転送装置102は、アド
レステーブル14の内容が図3に示す状態であれば、I
/Oキャッシュメモリ7の1000番地からの80バイ
トのデータをI/Oデバイス20に転送する。データ転
送装置102がI/Oキャッシュメモリ7からI/Oデ
バイス20にデータを転送しているのと並行して、CP
U1はDMA転送の終了を検知すると、OSはWrit
e命令についての処理を終了してAPに制御を戻す(ス
テップS309)。また、ステップS304における検
査の結果、転送すべきデータがI/Oキャッシュメモリ
7内に存在しないと判断された場合には、データ転送装
置102は、メインメモリ2からI/Oデバイス20に
データをDMA転送し(ステップS307)、転送終了
後に、CPU1にDMA転送の終了を割込みにより通知
する(ステップS308)。この場合も、CPU1はD
MA転送の終了を検知すると、OSはWrite命令に
ついての処理を終了してAPに制御を戻す(ステップS
309)。このような動作によって、メインメモリ2の
データと同一内容のデータがI/Oキャッシュメモリ7
に存在する場合は、I/Oキャッシュメモリ7からのデ
ータは、メモリバス10、I/Oバスブリッジ8、I/
Oバス16を経由して、I/Oデバイス20に格納され
る。なお、この場合のデータの経路を図1中に矢符22
で示している。この場合、Write命令を実行するの
に使用する資源が、データ転送装置102内のI/Oキ
ャッシュメモリ7とメモリバス10とI/Oバスブリッ
ジ8とI/Oバス16のみであるため、例えば、全く同
時にI/Oデバイス19からメインメモリ2へのデータ
読み出し、即ちRead命令を実行することも可能とな
る。これは、I/Oキャッシュメモリ7が2つのメモリ
バス9及びメモリバス10のいずれからもアクセス可能
であることと、I/Oデバイス19からメインメモリ2
へデータを読み込む旨のRead命令の実行に必要なバ
ス及びバスブリッジはいずれも上述のWrite命令の
実行において使用していないことによる。
【0016】以下、例えばセクタ単位等の所定量毎に数
回、I/Oデバイス19からの前記所定量のデータをメ
インメモリ2及びI/Oデバイス20にコピーする処理
を行わせるためのAP、即ち、Read命令とWrit
e命令との組を複数実行させるような内容で構成される
APを実行する場合における上述のコンピュータシステ
ム100の有効性を処理時間の面から考察する。図5
は、Read命令とWrite命令との動作を連続的に
行う場合における各バスの使用タイミングを示す図であ
る。同図中、Read命令及びWrite命令と表して
いるタイミングは、DMA転送指示がPC101からデ
ータ転送装置102になされているタイミングである。
同図に示したように、Write命令によるデータの転
送の実行と同じタイミングにおいて、前記データ転送と
並行してRead命令に基づくDMA転送指示とRea
d命令によるデータの転送が実行される。これは、上述
のように、Write命令によるデータ転送に先行して
データ転送装置102が、CPU1にWrite命令に
よるDMA転送が終了した旨の通知を行うため、CPU
1は即座に次のRead命令に基づくDMA転送の指示
を行い、それに応じてデータ転送装置102は、Rea
d命令のためのDMA転送の制御を開始することによる
ものである。この結果、Write命令とRead命令
とが連続する処理の処理時間は短縮される。従って、R
ead命令によって外部デバイスからメインメモリ2に
読み込んだデータをCPU1が判断して、その結果に応
じてWrite命令を実行して他の外部デバイスに当該
データを書き込むような一連の処理が繰り返されている
場合においても、コンピュータシステム100は、全体
の処理時間を短縮する。
【0017】(実施の形態2)実施の形態2に係るデー
タ転送装置は、実施の形態1に係るデータ転送装置と同
様に、PCと外部デバイスとを含むコンピュータシステ
ムにおいて、PCと外部デバイスとの間に接続されてお
り、構成は図1に示すものと同様であるが、実施の形態
2では、データ転送が、データ転送装置の制御により行
うDMA転送でなく、外部デバイス主導の制御によるデ
ータ転送である点で実施の形態1とは相違する。即ち、
実施の形態2は、実施の形態1で示したコンピュータシ
ステム100の変形例である。以下、図1に付した符号
を用いて、データ転送動作について説明する。まず、C
PU1がメインメモリ2に格納されているAP中のRe
ad命令を実行する場合の動作について図6を用いて説
明する。図6は、実施の形態2におけるRead命令の
実行動作を示すフローチャートである。実施の形態1と
同様に、Read命令は、PCの外部に存在するI/O
デバイス19からメインメモリ2へデータを読み込むべ
き旨の命令であり、OSの機能を呼び出すシステムコー
ルである。ここでは、Read命令が、メインメモリ2
の8000番地から連続する80バイトにI/Oデバイ
ス19から読み出したデータを格納する旨として用いら
れていることとして説明する。CPU1は、AP中のR
ead命令を解読するとAPからOSに制御を移行し
(ステップS401)、OSは、デバイスドライバを介
してデバイスインタフェース17にデータ転送を指示す
る(ステップS402)。この指示は、メインメモリ2
内のアドレス及び転送すべきデータのバイト数の情報を
ともなってなされるものであり、ここでは、8000番
地と、バイト数として80バイトという情報がデバイス
インタフェース17に渡される。
【0018】ここでバスを介してのデータ転送は、例え
ばPCIバスにおけるデータ転送のプロトコルのよう
に、所定のプロトコルに則って行われるものである。ま
たここでは、メインメモリ2へのデータ転送におけるバ
スサイクルは、バス上にバスコマンド及びアドレス情報
を乗せるアドレスフェーズと、バス上にデータを乗せる
データフェーズとに分けられるとし、同一バスをアドレ
ス情報及びデータが共用することとして説明する。ここ
でバスコマンドとは、メモリアクセスかI/Oアクセス
かや読み出しか書込みか等を指定するコマンドである。
デバイスインタフェース17は、データ転送の指示を受
け付けると、アドレスフェーズにおいてメインメモリ2
にデータを書き込む旨のバスコマンドと、メインメモリ
2のアドレス情報とをI/Oバス15に出力する(ステ
ップS403)。データ転送装置102は、I/Oバス
15上を監視しており、I/Oバスブリッジ6によって
I/Oバス15上のバスコマンド及びアドレス情報をP
C101のI/Oバス5に渡すが、同時に、バスコマン
ドを解読し、メモリにデータを書き込む旨であることを
検知すると、制御部11により、アドレス情報をアドレ
ステーブル14に登録する(ステップS404)。な
お、制御部11は、登録に際して当該アドレス情報とI
/Oキャッシュメモリ7内部のアドレスの対応づけを行
う。ここで、メインメモリ2の8000番地とI/Oキ
ャッシュメモリ7の1000番地が対応づけられたと
し、登録の結果、アドレステーブル14は図3に示すよ
うになったものとする。但し、図3に示すものと異な
り、サイズは未だ定まっていないためサイズはこの段階
では登録しない。PC101においては、I/Oバス5
からCPU−I/Oバスブリッジ4及びCPUバス3を
経由してバスコマンド及びアドレス情報を受け取ったメ
インメモリ2は、データが転送されることを知る。ここ
で、メインメモリ2はメモリコントローラを包含してお
り、当該メモリコントローラがメインメモリ2のアドレ
ス制御やデータ入出力制御を行うものとする。なお、メ
インメモリ2は、データが転送されることを知り、例え
ば、バス上に制御信号を乗せて自己がこのバスサイクル
に応答する旨を宣言するが、ここでは詳しくは触れな
い。
【0019】デバイスインタフェース17は、アドレス
フェーズに続くデータフェーズにおいて、I/Oデバイ
ス19からデータをI/Oバス15に出力させるが、デ
ータ転送装置102は、I/Oバスブリッジ6によりI
/Oバス15上のデータをPC101のI/Oバス5に
渡しつつ、同時に当該データをメモリバス9にも渡し、
制御部11の制御によって当該データをI/Oキャッシ
ュメモリ7に格納する(ステップS405)。なお、制
御部11は、ステップS404におけるアドレステーブ
ル14へのアドレス情報の登録の際に決定したI/Oキ
ャッシュメモリ7のアドレスに基づいて、I/Oキャッ
シュメモリ7にデータを格納する。バス幅が32ビット
であるため、デバイスインタフェース17は、データフ
ェーズにおいて、I/Oデバイス19から連続的に80
バイトのデータをI/Oバス15に出力するが、これに
応じて、ステップS405の動作はなされる。デバイス
インタフェース17は、80バイトのデータ転送の終了
をバス上に制御信号を送出することで、メインメモリ2
に通知する(ステップS406)。この時、データ転送
装置102における制御部11は、I/Oキャッシュメ
モリ7に格納したデータ量を算出してアドレステーブル
14のサイズに関する情報部分を更新する。この結果、
アドレステーブル14は、図3に示す内容と同一の状態
となる。このとき、PC101においては、メインメモ
リ2に全てのデータが格納され、システムコールである
Read命令の処理が終了したので、CPU1は、OS
からAPに制御を戻す(ステップS407)。このよう
な動作によって、I/Oデバイス19からのデータは、
I/Oバス15、I/Oバスブリッジ6、I/Oバス
5、CPU−I/Oバスブリッジ4、CPUバス3を経
由してメインメモリ2に格納されるとともに、I/Oバ
ス15、I/Oバスブリッジ6、メモリバス9を経由し
て、I/Oキャッシュメモリ7に格納される。なお、こ
の場合のデータの経路は、実施の形態1と同様であり、
図1において矢符21で示す経路となる。
【0020】次に、CPU1がメインメモリ2に格納さ
れているAP中のWrite命令を実行する場合の動作
について図7を用いて説明する。図7は、実施の形態2
におけるWrite命令の実行動作を示すフローチャー
トである。実施の形態1と同様に、Write命令は、
メインメモリ2からPCの外部に存在するI/Oデバイ
ス20へデータを書き出すべき旨の命令であり、OSの
機能を呼び出すシステムコールである。ここでは、Wr
ite命令が、メインメモリ2の8000番地から連続
する80バイトから読み出したデータをI/Oデバイス
20に書き出す旨として用いられていることとして説明
する。CPU1は、AP中のWrite命令を解読する
とAPからOSに制御を移行し(ステップS501)、
OSは、デバイスドライバを介してデバイスインタフェ
ース18にデータ転送を指示する(ステップS50
2)。この指示により、データの転送元はメインメモリ
2の8000番地であり、転送するバイト数は80バイ
トであるという情報がデバイスインタフェース18に渡
される。データ転送の指示を受けたデバイスインタフェ
ース18は、バスサイクルのアドレスフェーズにおい
て、データ転送元であるメインメモリ2の8000番地
のアドレス情報及びメモリからの読み出し指示を示すバ
スコマンドをI/Oバス16に出力する(ステップS5
03)。データ転送装置102は、I/Oバス16上を
監視しており、I/Oバスブリッジ8によってI/Oバ
ス16上のバスコマンド及びアドレス情報をPC101
のI/Oバス5に渡すが、同時に、バスコマンドを解読
し、メモリからデータを読み出す旨であることを検知す
ると、制御部11により、アドレス情報を参照して、ア
ドレステーブル14に登録されているアドレスに基づ
き、読み出されるべきデータがI/Oキャッシュメモリ
7に存在するか検査する(ステップS504)。ここで
の検査も、実施の形態1と同様に、データ内容同士の比
較を行うのではなく、アドレステーブル14を参照して
のアドレスに基づく計算のみによって行う。
【0021】この検査の結果、I/Oキャッシュメモリ
7内に読み出されるべきデータが存在するならば(ステ
ップS505)、データ転送装置102は、I/Oバス
5に対してデータ転送の終了を示す制御信号を出力する
(ステップS506)。これにより、メインメモリ2は
データを送り出す必要がない旨を検知し、CPU1は、
Write命令の実行を終了したと判断して、OSから
APに制御を戻す(ステップS511)。また、データ
転送装置102は、アドレステーブル14に基づき、読
み出されるべきデータが、例えばI/Oキャッシュメモ
リ7の1000番地から格納されていることを知ったと
すると、I/Oキャッシュメモリ7の1000番地から
のデータを、アドレスフェーズに続くデータフェーズに
おいてデバイスインタフェース18に転送する(ステッ
プS507)。この転送は、制御部11の制御下で、I
/Oキャッシュメモリ7からメモリバス10に出力され
たデータがI/Oバスブリッジ8によってI/Oバス1
6に渡されることによってなされる。なお、デバイスイ
ンタフェース18には、メインメモリ2ではなくI/O
キャッシュメモリ7からデータが送られてきているとい
うことは認識されない。80バイトのデータが転送され
た後、デバイスインタフェース18は、データ転送の終
了を示す制御信号をバスに出力する(ステップS50
8)。この制御信号はデータ転送装置102の制御部1
1に検知され、I/Oキャッシュメモリ7からのデータ
送出を終了する。このとき、データ転送装置102は、
I/Oバス16上のデータ転送の終了を示す制御信号
は、PC101側には渡さない。
【0022】また、ステップS505における検査の結
果、I/Oキャッシュメモリ7内に転送すべきデータが
存在しない場合には、データ転送装置102は、I/O
バス5に置かれているデータをI/Oバスブリッジ8に
よってI/Oバス16に転送する(ステップS50
9)。この場合、I/Oバスブリッジ8は、一般的なバ
スブリッジ回路の動作を行うことになる。これによっ
て、メインメモリ2の8000番地から80バイトの内
容が、デバイスインタフェース18に転送され、I/O
デバイス20に渡される。デバイスインタフェース18
は、80バイト分の転送が完了したとき、データ転送の
終了を示す制御信号をI/Oバス16上に出力する(ス
テップS510)。データ転送装置102はI/Oバス
ブリッジ8によって、データ転送の終了を示す制御信号
をPC101のI/Oバス5に渡し、これによってPC
101は、Write命令の処理が終了したと判断し、
OSからAPに制御を戻す(ステップS511)。この
ような動作によって、メインメモリ2のデータと同一内
容のデータがI/Oキャッシュメモリ7に存在する場合
は、I/Oキャッシュメモリ7からのデータは、メモリ
バス10、I/Oバスブリッジ8、I/Oバス16を経
由して、I/Oデバイス20に格納される。なお、この
場合のデータの経路は、実施の形態1と同様であり、図
1において矢符22で示す経路となる。この場合、Wr
ite命令の実行において、バスサイクルのデータフェ
ーズで使用する資源が、データ転送装置102内のI/
Oキャッシュメモリ7とメモリバス10とI/Oバスブ
リッジ8とI/Oバス16のみであるため、このデータ
フェーズと同時の期間において、例えば、I/Oデバイ
ス19からメインメモリ2へのデータ読み出し、即ちR
ead命令を実行することも可能となる。
【0023】以上、本発明に係るデータ転送制御装置に
ついて、実施の形態に基づいて説明したが、本発明はこ
れら実施の形態に限られないことは勿論である。即ち、 (1)実施の形態では、I/Oキャッシュメモリ7は、
メモリバス9からとメモリバス10からとの両方からア
クセス可能なメモリとしたが、I/Oキャッシュメモリ
7が2つに分かれて存在することとして、制御部でそれ
ぞれの内容を管理してI/Oキャッシュメモリ7へのア
クセスを制御することとしてもよい。 (2)メインメモリ2とI/Oキャッシュメモリ7との
内容に不整合が生じた場合について対応するために、P
C101とデータ転送装置間102とでメインメモリ2
の更新に関する情報を交換することとしてもよい。この
場合、前記不整合を示す情報に基づき、制御部11は、
アドレステーブル14に登録されている情報のうち、デ
ータが不整合のため利用不可能となった情報を抹消する
ものとする。 (3)実施の形態では、外部デバイスからメインメモリ
2へデータの転送を行う際には、そのデータ全てをI/
Oキャッシュメモリ7にも格納することとしたが、これ
に限定されることはなく、例えば、転送すべきデータが
所定量以上の場合のみに格納することとしてもよい。ま
た、I/Oキャッシュメモリ7は、例えば1024バイ
ト等の所定量の領域を複数有することとし、転送すべき
データが1024バイト以上の場合に1024バイトの
倍数分だけを格納することとしてもよく、この場合に
は、アドレステーブル14には、データのサイズに関す
る情報は不要となり、アドレステーブル14は、I/O
キャッシュメモリ7内の複数の領域それぞれが、メイン
メモリ2内のあるアドレスと対応づけられた内容を含ん
でいるか否かの情報と、含んでいる場合にはメインメモ
リ2内の当該アドレスの情報とを記録するものとしても
よい。
【0024】(4)実施の形態2では、ステップS50
5の検査の結果、I/Oキャッシュメモリ7内に転送す
べきデータが存在すると判断された場合には、制御部1
1は、I/Oキャッシュメモリ7からデータの転送を開
始し、I/Oキャッシュメモリ内にデータが存在してい
る分を超えてもまだ転送の必要がある場合は想定してい
ないが、制御部11が予め転送サイズをデバイスインタ
フェース又はPCから転送するサイズに関する情報を獲
得することにしてこれを予め回避することとしてもよ
い。また、ステップS506の処理を削除し、I/Oキ
ャッシュメモリ内にデータが存在している分を超えても
まだ転送の必要がある場合には、データ転送装置102
が、データを要求するデバイスインタフェース18にリ
トライをすべき旨の制御信号を送り、その後デバイスイ
ンタフェース18がメインメモリ2からデータを受ける
ようにすることとしてもよい。なお、ステップS506
やステップS305におけるデータ転送の終了の旨の先
行通知、即ち実際のデータの転送に先駆けて行う通知
は、行わないようにし、実際にデータの転送が終了した
段階で通知するようにしてもよい。このようにすると、
通常、同一AP内における後続処理には実行待ちが生ず
るが、OSがマルチタスク機能を有するものであれば本
発明の有効性を損なうことはない。マルチタスクOSの
制御下では、例えば、あるAP中のWrite命令に基
づきI/Oキャッシュメモリ7から一の外部デバイスに
データを転送している時に、他の外部デバイスからメイ
ンメモリ2にデータを読み込むタスクを実行させること
は可能であり、当該タスクの実行に必要なバスは前記W
rite命令に基づくデータ転送に使用されていないた
め、当該タスクは現実に迅速に実行され得るものとな
る。
【0025】(5)実施の形態では、PC101は、C
PUバス3及びI/Oバス5の2つのバスを備えること
としたが、これに限定されることはなく、データ転送装
置102と接続されるバスが備えられており、当該バス
と直接的又は間接的にメインメモリ2が接続されている
構成であればPC101は他の構成であってもよい。ま
た、実施の形態では、データ転送装置102内のI/O
バスブリッジ6及びI/Oバスブリッジ8は別個に存在
することとしたが、I/Oバス15とメモリバス9とI
/Oバス5との間のデータ転送と、I/Oバス16とメ
モリバス10とI/Oバス5との間のデータ転送との2
系統の転送経路を制御することができれば、一体化され
ていてもよい。また、実施の形態では、外部デバイスで
あるI/Oデバイス19及びI/Oデバイス20はそれ
ぞれデバイスインタフェース17及びデバイスインタフ
ェース18を含まないこととしたが、外部デバイスがデ
バイスインタフェースの機能を有し、デバイスインタフ
ェースと一体となっていてもよい。 (6)実施の形態では、I/Oバス15及びI/Oバス
16は、それぞれ1つの外部デバイスと接続されている
こととしたが、これに限定されることはなく、それぞれ
複数の外部デバイスと接続可能としてもよい。 (7)実施の形態では、データ転送装置102は、I/
Oキャッシュメモリ7の内容について特段の加工は行わ
ないこととしたが、これに限定されることはない。例え
ば、データ転送装置102の制御部11を、プログラム
実行可能なものとし、当該プログラムの実行により、所
定の演算によって算出した値とI/Oキャッシュメモリ
7に格納されたデータとの排他的論理和をとり当該デー
タにスクランブルをかける等の加工を行うこととしても
よい。このような加工は、PC101からの指示に基づ
いて行うようにすることとしてもよく、また、予めデー
タ転送装置で行える加工の種類を複数種類用意しPC1
01から加工の種類を指定することとしてもよい。な
お、I/Oキャッシュメモリ7の内容についてデータ転
送装置102が加工を行うこととする場合には、PC1
01は、メインメモリ2の内容そのものを外部デバイス
に転送する場合と、加工後のI/Oキャッシュメモリ7
の内容を外部デバイスに転送する場合とを区別してデー
タ転送装置に転送指示をする必要がある。
【0026】(8)実施の形態では、Write命令に
基づくコンピュータシステム100の動作としてI/O
キャッシュメモリ7から外部デバイスへのデータ転送が
行われることとしたが、データ転送装置102の制御部
11が、外部デバイスからメインメモリ2へのデータ転
送に対応してI/Oキャッシュメモリ7にデータを格納
した後に、無条件でデバイスインタフェースを制御して
I/Oキャッシュメモリ7から外部デバイスへのデータ
転送を実行するようにしてもよい。この場合は、PC1
01が、予め出力側となる外部デバイスに関する情報を
データ転送装置102に渡すようにし、データ転送装置
102は、前記情報に示された外部デバイスにI/Oキ
ャッシュメモリ7からデータを転送することとすればよ
い。これにより一の外部デバイスから他の外部デバイス
にデータの転送がなされるが、I/Oキャッシュメモリ
7が転送速度の相違を吸収するため、2つの外部デバイ
スそれぞれが異なるデータ転送速度でしか転送できない
場合にも対応できる。また、データ転送装置102は、
外部デバイスからメインメモリ2へのデータ転送に対応
してI/Oキャッシュメモリ7にデータを格納した後、
無条件でI/Oキャッシュメモリ7内のデータに上述し
たような加工を行い、加工後のデータを無条件で外部デ
バイスに供給することとしてもよい。この場合、加工は
I/Oキャッシュメモリ7内のデータに対する圧縮、伸
張、エラー訂正コードの付加等の結果的にデータサイズ
を変更する処理であってもよい。
【0027】
【発明の効果】以上の説明から明らかなように、本発明
に係るデータ転送制御装置は、メモリと、第1デバイス
と、第2デバイスとの間に接続されたデータ転送制御装
置であって、前記第1デバイス及び前記第2デバイスと
のみデータの授受が可能であり、データを格納するため
のデータ格納手段と、前記第1デバイスから前記メモリ
へ第1データが転送されるべきことを検出した場合に、
前記第1デバイスから出力された第1データを、前記メ
モリに供給するとともに前記データ格納手段に格納する
第1データ転送手段と、前記第2デバイスへ前記メモリ
から第2データが転送されるべきことを検出した場合で
あって、前記第2データと同一内容の第3データが前記
データ格納手段に格納されているときには、前記データ
格納手段から前記第3データを取り出して前記第2デバ
イスに前記第3データを供給し、前記第2データと同一
内容のデータが前記データ格納手段に格納されていない
ときには、前記メモリから前記第2データを取り出して
前記第2デバイスに前記第2データを供給する第2デー
タ転送手段とを備え、第1データ転送手段と第2データ
転送手段とは同時に動作可能であることを特徴とする。
これにより、メモリから外部デバイスへのデータの転送
が必要な場合においても、当該データのコピーを前記デ
ータ格納手段から外部デバイスに転送することでこれを
代替することができるときがあり、このときは前記メモ
リに別途アクセスが可能となるため、並行して他の外部
デバイスから当該メモリへのデータの転送も行い得る。
従って、上記構成により、一の外部デバイスからメモリ
にデータを転送し、かつ必要に応じて前記一の外部デバ
イスから他の外部デバイスにデータを転送するような処
理を複数回行うような処理にかかる時間は、上述の並行
してデータ転送が可能な分だけ短縮され、全体的にみれ
ば当該処理を高速に実行できることとなる。
【0028】ここで、前記メモリは、コンピュータの内
部に存在し、当該コンピュータは前記メモリに接続され
たI/Oバスを有しており、前記データ転送制御装置
は、前記コンピュータと、第1デバイスと、第2デバイ
スとの間に接続されたデータ転送制御装置であって、前
記第1データ転送手段は、前記第1デバイスと接続され
た第1バスと、前記データ格納手段と接続された第1メ
モリバスと、前記第1デバイスから前記第1バスに出力
された前記第1データを前記I/Oバスに与えるととも
に前記第1メモリバスに与える第1バスブリッジ部とを
有し、前記第1データ転送手段は、前記第1ブリッジ部
を制御して、前記第1データの前記メモリへの供給と前
記データ格納手段への格納とを行い、前記第2データ転
送手段は、前記第2デバイスと接続された第2バスと、
前記データ格納手段と接続された第2メモリバスと、前
記データ格納手段から前記第2メモリバスに取り出した
前記第3データを前記第2バスに与える第2バスブリッ
ジ部とを有し、前記第2データ転送手段は、前記第2バ
スブリッジ部を制御して、前記第2デバイスへの前記第
3データの供給を行い、前記データ格納手段は、前記第
1メモリバスと前記第2メモリバスとの双方から同時に
アクセス可能であることとすることもできる。これによ
り、メモリから第2デバイスへのデータの転送が必要な
場合に、当該データのコピーを前記データ格納手段から
当該第2デバイスに転送するが、この転送に使用するバ
スは第2メモリバス及び第2バスであるため、前記の転
送と並行して、第1バス、I/Oバスを使用することに
よって第1デバイスから前記メモリへのデータ転送を行
うことが可能となる。従来の一般的なデータ転送技術に
おいては、1つのメモリについて、第1デバイスからデ
ータを転送することと、第2デバイスへデータを転送す
ることとを、並行したとしても、メモリに接続されたバ
スが時分割等によって利用されるだけであり全体の処理
は、高速化できないが、本発明によれば、メモリから第
2デバイスへ転送すべきところを前記データ格納手段か
ら第2デバイスへ転送することで代替するため、メモリ
に接続されたバスの共用が起こり得ないので全体的な処
理を高速化できる。
【0029】また、メモリを介在させて外部デバイス間
でデータをコピーするための処理を実現するためのAP
の構成として、同一のメモリアドレスを指定したRea
d命令とWrite命令をこの順で実行可能とした構成
は従来から用いられているが、本発明に係るデータ転送
制御装置を利用する際に、コンピュータ側のAPとし
て、そのまま利用可能である。即ち、本発明に係るデー
タ転送制御装置によるデータ格納手段を用いてのデータ
転送を、コンピュータにおけるAPやOS等のプログラ
ムで特に意識する必要はないため、従来からのコンピュ
ータにおけるプログラムを基本的に書換えなくても利用
できる。また、前記データ転送制御装置は、前記データ
格納手段と前記メモリとに格納された同一内容のデータ
に関して、前記データ格納手段におけるアドレス情報
と、前記メモリにおけるアドレス情報とを対応付けて記
憶するためのアドレス情報テーブル手段を備え、前記第
1データ転送手段は、前記第1データが格納されるべき
前記メモリにおけるアドレスに関する情報を取得し、当
該第1データを格納した前記データ格納手段におけるア
ドレスに関する情報と対応付けて前記アドレス情報テー
ブル手段に格納し、前記第2データ転送手段は、前記ア
ドレス情報テーブル手段を参照することにより、前記第
2データと同一内容の前記第3データが前記データ格納
手段に格納されているか否かを判断するデータ存否判断
部を有し、前記第2データ転送手段は、前記第2デバイ
スへ前記メモリから前記第2データが転送されるべきこ
とを検出した場合において、前記データ存否判断部の前
記判断の結果が肯定的であるときには、前記データ格納
手段から前記第3データを取り出して前記第2デバイス
に前記第3データを供給し、前記データ存否判断部の前
記判断の結果が否定的であるときには、前記メモリから
前記第2データを取り出して前記第2デバイスに前記第
2データを供給することとすることもできる。これによ
り、メモリから第2デバイスへのデータの転送が必要な
場合、前記データ格納手段内に前記データと同一内容の
データが格納されているかを、簡易に確認することがで
き、全体的な処理の高速化をもたらす。
【0030】また、前記第1データ転送手段は、前記第
1デバイスから前記メモリに前記第1データを転送すべ
き旨の前記コンピュータからの指示であって、前記メモ
リ内の転送先アドレス及び転送サイズを伴った第1指示
を受け付けることによって前記検出を行い、前記検出を
した場合に、前記第1デバイスに前記第1データを出力
させ、当該第1データを前記メモリに供給するとともに
前記データ格納手段に格納し、前記転送先アドレス及び
前記転送サイズを前記第1データを格納した前記データ
格納手段におけるアドレスに関する情報と対応付けて前
記アドレス情報テーブル手段に格納し、前記第2データ
転送手段は、前記メモリから前記第2デバイスに前記第
2データを転送すべき旨の前記コンピュータから指示で
あって、前記メモリ内における前記第2データのアドレ
ス及びサイズを伴った第2指示を受け付けることによっ
て前記検出を行い、前記検出をした場合であって、前記
データ存否判断部の前記判断の結果が肯定的であるとき
には、前記データ格納手段から前記第3データを取り出
して前記第2デバイスに供給し、前記データ存否判断部
の前記判断の結果が否定的であるときには、前記コンピ
ュータを制御し前記メモリから前記第2データを取り出
して出力させ、前記第2デバイスに前記第2データを供
給し、前記データ存否判断部は、前記第2指示に付随す
る前記アドレス及び前記サイズに基づいて前記アドレス
情報テーブル手段を参照することにより、前記第2デー
タと同一内容の前記第3データが前記データ格納手段内
に存在するか否かを判断することとすることもできる。
これにより、コンピュータは、データ転送制御装置に対
し、データ転送の指示を行うのみで、外部デバイスとメ
モリとの間でのデータ転送を行わせることができ、外部
デバイスからメモリに転送させたデータと同一のデータ
を他の外部デバイスに転送させている最中にもメモリと
接続されたバスは当該転送に用いられないので、このと
きにもコンピュータはメモリを参照更新等する各種処理
を実行することができる。
【0031】また、前記第1データ転送手段は、前記第
1デバイスからの前記メモリに対する前記第1データの
転送を行う旨の通知であって前記メモリ内における前記
第1データの格納先のアドレス情報を伴う第1通知が、
前記第1バスに出力されたのを認識することによって前
記検出を行い、前記検出をした場合に、前記第1通知を
前記コンピュータの前記I/Oバスに与えるとともに前
記第1通知に付随する前記アドレス情報を、前記第1デ
ータを格納する前記データ格納手段におけるアドレスに
関する情報と対応付けて前記アドレス情報テーブル手段
に格納し、その後に前記第1デバイスから前記第1バス
に出力される前記第1データを前記コンピュータの前記
I/Oバスに与えるとともに前記データ格納手段に格納
し、前記第2データ転送手段は、前記第2デバイスから
の前記メモリに対する前記第2データの転送を要求する
旨の通知であって前記メモリ内における前記第2データ
のアドレス情報を伴う第2通知が、前記第2バスに出力
されたのを認識することによって前記検出を行い、前記
検出をした場合であって、前記データ存否判断部の前記
判断の結果が肯定的であるときには、前記データ格納手
段から前記第3データを取り出して前記第2バスに与
え、前記データ存否判断部の前記判断の結果が否定的で
あるときには、前記第2通知を前記コンピュータの前記
I/Oバスに与え、その後に前記コンピュータの前記I
/Oバスに出力される前記メモリからの前記第2データ
を前記第2バスに与え、前記データ存否判断部は、前記
第2通知に付随する前記アドレス情報に基づいて前記ア
ドレス情報テーブル手段を参照することにより、前記第
2データと同一内容の前記第3データが前記データ格納
手段内に存在するか否かを判断することとすることもで
きる。これにより、外部デバイス主導による外部デバイ
スとコンピュータ内部のメモリとの間でのデータ転送に
ついても、メモリに転送されたデータと同一データのメ
モリからの転送が必要となる場合には、メモリからでは
なくデータ格納手段から外部デバイスへ転送することが
でき、当該転送と全く同時にメモリへの他の外部デバイ
スからのデータ転送を行うことも可能となる。
【0032】また、本発明に係るデータ転送制御装置
は、メモリと前記メモリに接続されたI/Oバスとを有
するコンピュータと、第1デバイスと、第2デバイスと
の間に接続されたデータ転送制御装置であって、第1メ
モリバス及び第2メモリバスと、前記第1デバイス及び
前記第2デバイスとのみデータの授受が可能であり、前
記第1メモリバス及び前記第2メモリバスと接続されて
おり、前記第1メモリバスと前記第2メモリバスとの双
方から同時にアクセス可能であり、データを格納するた
めのデータ格納手段と、前記第1デバイスと接続された
第1バスと、前記第2デバイスと接続された第2バス
と、前記第1デバイスから前記メモリへ第1データが転
送されるべきことを検出した場合に、前記第1デバイス
から前記第1バスに出力された前記第1データを前記I
/Oバスに与えるとともに前記第1メモリバスに与える
第1バスブリッジ部を制御して、前記第1データを前記
メモリに供給するとともに前記データ格納手段に格納す
る第1データ転送手段と、前記第1データ転送手段によ
り前記データ格納手段に前記第1データが格納された後
に、前記データ格納手段から前記第1データを前記第2
メモリバスに取り出して、前記第2メモリバスに取り出
した前記第1データを前記第2バスに与える第2バスブ
リッジ部を制御して、前記第2デバイスに前記第1デー
タを供給する第2データ転送手段とを備えることとする
こともできる。これにより、第1デバイスからメモリに
データを転送した後に、当該データを無条件で第2デバ
イスに転送するものであり、第2デバイスへの転送中に
は、第1デバイスからメモリにデータを転送することも
可能であるため、第1デバイスから第2デバイスにデー
タをコピーする必要があって、かつ、当該データをメモ
リにも格納する必要があるような場合には、当該データ
を複数に分割して転送を行えば、高速に転送ができる。
【0033】また、前記データ転送制御装置はさらに、
前記第1データ転送手段によって前記データ格納手段に
格納された前記第1データに対し、所定の加工を行い当
該第1データの値を更新するデータ加工手段を備えるこ
ととすることもできる。これにより、第1デバイスから
メモリにデータを転送する必要があり、かつ、当該デー
タに所定の加工を行った後に第2デバイスにデータを転
送する必要がある場合に、当該データを複数に分割して
転送を行えば、高速に転送ができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1に係るコンピュータシス
テム100の構成図である。
【図2】実施の形態1におけるRead命令の実行動作
を示すフローチャートである。
【図3】アドレステーブル14の内容例を示す図であ
る。
【図4】実施の形態1におけるWrite命令の実行動
作を示すフローチャートである。
【図5】Read命令とWrite命令との動作を連続
的に行う場合における各バスの使用タイミングを示す図
である。
【図6】実施の形態2におけるRead命令の実行動作
を示すフローチャートである。
【図7】実施の形態2におけるWrite命令の実行動
作を示すフローチャートである。
【図8】従来のPCと周辺機器との一般的な接続関係を
示す構成図である。
【図9】特開平8−305658に示されたPCと周辺
機器との接続関係を示す構成図である。
【符号の説明】
1 CPU 2 メインメモリ 3 CPUバス 4 CPU−I/Oバスブリッジ 5 I/Oバス 6 I/Oバスブリッジ 7 I/Oキャッシュメモリ 8 I/Oバスブリッジ 9 メモリバス 10 メモリバス 11 制御部 14 アドレステーブル 15 I/Oバス 16 I/Oバス 17 デバイスインタフェース 18 デバイスインタフェース 19 I/Oデバイス 20 I/Oデバイス 100 コンピュータシステム 101 PC 102 データ転送装置

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 メモリと、第1デバイスと、第2デバイ
    スとの間に接続されたデータ転送制御装置であって、 前記第1デバイス及び前記第2デバイスとのみデータの
    授受が可能であり、データを格納するためのデータ格納
    手段と、 前記第1デバイスから前記メモリへ第1データが転送さ
    れるべきことを検出した場合に、前記第1デバイスから
    出力された第1データを、前記メモリに供給するととも
    に前記データ格納手段に格納する第1データ転送手段
    と、 前記第2デバイスへ前記メモリから第2データが転送さ
    れるべきことを検出した場合であって、前記第2データ
    と同一内容の第3データが前記データ格納手段に格納さ
    れているときには、前記データ格納手段から前記第3デ
    ータを取り出して前記第2デバイスに前記第3データを
    供給し、前記第2データと同一内容のデータが前記デー
    タ格納手段に格納されていないときには、前記メモリか
    ら前記第2データを取り出して前記第2デバイスに前記
    第2データを供給する第2データ転送手段とを備え、 第1データ転送手段と第2データ転送手段とは同時に動
    作可能であることを特徴とするデータ転送制御装置。
  2. 【請求項2】 前記メモリは、コンピュータの内部に存
    在し、当該コンピュータは前記メモリに接続されたI/
    Oバスを有しており、 前記データ転送制御装置は、前記コンピュータと、第1
    デバイスと、第2デバイスとの間に接続されたデータ転
    送制御装置であって、 前記第1データ転送手段は、 前記第1デバイスと接続された第1バスと、 前記データ格納手段と接続された第1メモリバスと、 前記第1デバイスから前記第1バスに出力された前記第
    1データを前記I/Oバスに与えるとともに前記第1メ
    モリバスに与える第1バスブリッジ部とを有し、 前記第1データ転送手段は、前記第1ブリッジ部を制御
    して、前記第1データの前記メモリへの供給と前記デー
    タ格納手段への格納とを行い、 前記第2データ転送手段は、 前記第2デバイスと接続された第2バスと、 前記データ格納手段と接続された第2メモリバスと、 前記データ格納手段から前記第2メモリバスに取り出し
    た前記第3データを前記第2バスに与える第2バスブリ
    ッジ部とを有し、 前記第2データ転送手段は、前記第2バスブリッジ部を
    制御して、前記第2デバイスへの前記第3データの供給
    を行い、 前記データ格納手段は、前記第1メモリバスと前記第2
    メモリバスとの双方から同時にアクセス可能であること
    を特徴とする請求項1記載のデータ転送制御装置。
  3. 【請求項3】 前記データ転送制御装置は、 前記データ格納手段と前記メモリとに格納された同一内
    容のデータに関して、前記データ格納手段におけるアド
    レス情報と、前記メモリにおけるアドレス情報とを対応
    付けて記憶するためのアドレス情報テーブル手段を備
    え、 前記第1データ転送手段は、前記第1データが格納され
    るべき前記メモリにおけるアドレスに関する情報を取得
    し、当該第1データを格納した前記データ格納手段にお
    けるアドレスに関する情報と対応付けて前記アドレス情
    報テーブル手段に格納し、 前記第2データ転送手段は、前記アドレス情報テーブル
    手段を参照することにより、前記第2データと同一内容
    の前記第3データが前記データ格納手段に格納されてい
    るか否かを判断するデータ存否判断部を有し、 前記第2データ転送手段は、前記第2デバイスへ前記メ
    モリから前記第2データが転送されるべきことを検出し
    た場合において、前記データ存否判断部の前記判断の結
    果が肯定的であるときには、前記データ格納手段から前
    記第3データを取り出して前記第2デバイスに前記第3
    データを供給し、前記データ存否判断部の前記判断の結
    果が否定的であるときには、前記メモリから前記第2デ
    ータを取り出して前記第2デバイスに前記第2データを
    供給することを特徴とする請求項2記載のデータ転送制
    御装置。
  4. 【請求項4】 前記第1データ転送手段は、 前記第1デバイスから前記メモリに前記第1データを転
    送すべき旨の前記コンピュータからの指示であって、前
    記メモリ内の転送先アドレス及び転送サイズを伴った第
    1指示を受け付けることによって前記検出を行い、 前記検出をした場合に、前記第1デバイスに前記第1デ
    ータを出力させ、当該第1データを前記メモリに供給す
    るとともに前記データ格納手段に格納し、 前記転送先アドレス及び前記転送サイズを前記第1デー
    タを格納した前記データ格納手段におけるアドレスに関
    する情報と対応付けて前記アドレス情報テーブル手段に
    格納し、 前記第2データ転送手段は、 前記メモリから前記第2デバイスに前記第2データを転
    送すべき旨の前記コンピュータから指示であって、前記
    メモリ内における前記第2データのアドレス及びサイズ
    を伴った第2指示を受け付けることによって前記検出を
    行い、 前記検出をした場合であって、前記データ存否判断部の
    前記判断の結果が肯定的であるときには、前記データ格
    納手段から前記第3データを取り出して前記第2デバイ
    スに供給し、前記データ存否判断部の前記判断の結果が
    否定的であるときには、前記コンピュータを制御し前記
    メモリから前記第2データを取り出して出力させ、前記
    第2デバイスに前記第2データを供給し、 前記データ存否判断部は、前記第2指示に付随する前記
    アドレス及び前記サイズに基づいて前記アドレス情報テ
    ーブル手段を参照することにより、前記第2データと同
    一内容の前記第3データが前記データ格納手段内に存在
    するか否かを判断することを特徴とする請求項3記載の
    データ転送制御装置。
  5. 【請求項5】 前記第1データ転送手段は、 前記第1デバイスからの前記メモリに対する前記第1デ
    ータの転送を行う旨の通知であって前記メモリ内におけ
    る前記第1データの格納先のアドレス情報を伴う第1通
    知が、前記第1バスに出力されたのを認識することによ
    って前記検出を行い、 前記検出をした場合に、前記第1通知を前記コンピュー
    タの前記I/Oバスに与えるとともに前記第1通知に付
    随する前記アドレス情報を、前記第1データを格納する
    前記データ格納手段におけるアドレスに関する情報と対
    応付けて前記アドレス情報テーブル手段に格納し、その
    後に前記第1デバイスから前記第1バスに出力される前
    記第1データを前記コンピュータの前記I/Oバスに与
    えるとともに前記データ格納手段に格納し、 前記第2データ転送手段は、 前記第2デバイスからの前記メモリに対する前記第2デ
    ータの転送を要求する旨の通知であって前記メモリ内に
    おける前記第2データのアドレス情報を伴う第2通知
    が、前記第2バスに出力されたのを認識することによっ
    て前記検出を行い、 前記検出をした場合であって、前記データ存否判断部の
    前記判断の結果が肯定的であるときには、前記データ格
    納手段から前記第3データを取り出して前記第2バスに
    与え、前記データ存否判断部の前記判断の結果が否定的
    であるときには、前記第2通知を前記コンピュータの前
    記I/Oバスに与え、その後に前記コンピュータの前記
    I/Oバスに出力される前記メモリからの前記第2デー
    タを前記第2バスに与え、 前記データ存否判断部は、前記第2通知に付随する前記
    アドレス情報に基づいて前記アドレス情報テーブル手段
    を参照することにより、前記第2データと同一内容の前
    記第3データが前記データ格納手段内に存在するか否か
    を判断することを特徴とする請求項3記載のデータ転送
    制御装置。
  6. 【請求項6】 メモリと前記メモリに接続されたI/O
    バスとを有するコンピュータと、第1デバイスと、第2
    デバイスとの間に接続されたデータ転送制御装置であっ
    て、 第1メモリバス及び第2メモリバスと、 前記第1デバイス及び前記第2デバイスとのみデータの
    授受が可能であり、前記第1メモリバス及び前記第2メ
    モリバスと接続されており、前記第1メモリバスと前記
    第2メモリバスとの双方から同時にアクセス可能であ
    り、データを格納するためのデータ格納手段と、 前記第1デバイスと接続された第1バスと、 前記第2デバイスと接続された第2バスと、 前記第1デバイスから前記メモリへ第1データが転送さ
    れるべきことを検出した場合に、前記第1デバイスから
    前記第1バスに出力された前記第1データを前記I/O
    バスに与えるとともに前記第1メモリバスに与える第1
    バスブリッジ部を制御して、前記第1データを前記メモ
    リに供給するとともに前記データ格納手段に格納する第
    1データ転送手段と、 前記第1データ転送手段により前記データ格納手段に前
    記第1データが格納された後に、前記データ格納手段か
    ら前記第1データを前記第2メモリバスに取り出して、
    前記第2メモリバスに取り出した前記第1データを前記
    第2バスに与える第2バスブリッジ部を制御して、前記
    第2デバイスに前記第1データを供給する第2データ転
    送手段とを備えることを特徴とするデータ転送制御装
    置。
  7. 【請求項7】 前記データ転送制御装置はさらに、 前記第1データ転送手段によって前記データ格納手段に
    格納された前記第1データに対し、所定の加工を行い当
    該第1データの値を更新するデータ加工手段を備えるこ
    とを特徴とする請求項1〜6のいずれか1項に記載のデ
    ータ転送制御装置。
JP10138095A 1998-05-20 1998-05-20 データ転送制御装置 Pending JPH11327798A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10138095A JPH11327798A (ja) 1998-05-20 1998-05-20 データ転送制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10138095A JPH11327798A (ja) 1998-05-20 1998-05-20 データ転送制御装置

Publications (1)

Publication Number Publication Date
JPH11327798A true JPH11327798A (ja) 1999-11-30

Family

ID=15213840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10138095A Pending JPH11327798A (ja) 1998-05-20 1998-05-20 データ転送制御装置

Country Status (1)

Country Link
JP (1) JPH11327798A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195990A (ja) * 2005-01-11 2006-07-27 Samsung Electronics Co Ltd 半導体ディスク制御装置
JP2014211801A (ja) * 2013-04-19 2014-11-13 株式会社東芝 インターフェース制御装置、データ記憶装置及びインターフェース制御方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195990A (ja) * 2005-01-11 2006-07-27 Samsung Electronics Co Ltd 半導体ディスク制御装置
US8159889B2 (en) 2005-01-11 2012-04-17 Samsung Electronics Co., Ltd. Solid state disk controller apparatus
US8917565B2 (en) 2005-01-11 2014-12-23 Samsung Electronics Co., Ltd. Solid state disk controller apparatus
US9223650B2 (en) 2005-01-11 2015-12-29 Samsung Electronics Co., Ltd. Solid state disk controller apparatus
US9652324B2 (en) 2005-01-11 2017-05-16 Samsung Electronics Co., Ltd. Solid state disk controller apparatus
JP2014211801A (ja) * 2013-04-19 2014-11-13 株式会社東芝 インターフェース制御装置、データ記憶装置及びインターフェース制御方法

Similar Documents

Publication Publication Date Title
JP3289661B2 (ja) キャッシュメモリシステム
JPS63208963A (ja) デジタルデータ処理システム
JPH11126196A (ja) データ転送方法およびそれに適した計算機システム
JP2008090375A (ja) 割込み制御システム、およびこれを利用した記憶制御システム
JP2695017B2 (ja) データ転送方式
JP2006190257A (ja) データ転送装置およびデータ転送方法
JPS6356747A (ja) デ−タ処理装置
JP2004078683A (ja) コンピュータシステムおよび共有メモリ制御方法
JP2002024162A (ja) データ転送装置および方法
JPH11327798A (ja) データ転送制御装置
JP3061106B2 (ja) バスブリッジおよびそれを備えた計算機システム
JPH10240628A (ja) キャッシュメモリ装置
JPS63208151A (ja) デジタルデータ処理システムのプロセッサと特殊命令プロセッサの間のインターフェイス
JPS63305445A (ja) 電源切断時のデ−タ書込み方式
JP3141948B2 (ja) 計算機システム
JPH11338774A (ja) 情報処理装置及びそのシステムバス最適化方法並びにその制御プログラムを記録した記録媒体
JPH06161891A (ja) コンピュータシステム及びキャッシュ制御手段におけるキャッシュ制御方法
JP2762441B2 (ja) コプロセッサ
JPH0934726A (ja) 割り込み制御方法
JPH11237959A (ja) 多重書き込み記憶装置
JP2665173B2 (ja) プロセッサトラップ回路
JP2004355039A (ja) ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法
JPH01191248A (ja) チャネル制御装置によるエラー・リトライ方式
JPH1027153A (ja) バス転送装置
JPH01292451A (ja) 情報処理装置