(57)【要約】【課題】  データ転送速度を向上させ、かつ回路の簡素化を図ることのできるデータ転送制御装置を提供する。【解決手段】  バッファリング機構１２の内部ＲＡＭ１２２は、画像データの転送先であるメモリの実アドレスに対応した複数の領域を有し、それぞれの領域に書込制御回路１２１による書き込みと読出制御回路１２４による読み出しを同時に実行することが可能である。書込制御回路１２１は、内部ＲＡＭ１２２に画像データを書き込む際には、内部ＲＡＭ１２２におけるアドレスが画像データの転送先であるメモリの実アドレスに対応するようにして書き込む。【選択図】      図２
2005122376.tif 000002
【特許請求の範囲】
【請求項１】
バスを介して接続されたメモリにデータを転送するデータ転送制御装置において、
転送データに予め割り当てられているアドレスを前記メモリにおいて定義されている実アドレスに変換するアドレス変換手段と、
前記メモリにおけるバウンダリと同じデータ容量毎に区切られた複数の記憶領域であって、前記実アドレスの少なくとも一部がそれぞれの記憶領域において用いられるアドレスとして指定されている記憶領域を有する記憶手段と、
前記実アドレスの少なくとも一部によりアドレス指定される複数の記憶領域のうち転送データが記憶されていない記憶領域に対して、前記アドレス変換手段によって変換された前記実アドレスの少なくとも一部のアドレスを用いて前記転送データを順次記憶させる書込手段と、
前記複数の記憶領域のいずれかの記憶領域において記憶すべき量の転送データが記憶されると、該転送データを該記憶領域から順次読み出し、読み出した転送データを該データに対応する実アドレスと共に前記バスを介して前記メモリに転送する読出・転送手段と
を備えるデータ転送制御装置。
【請求項２】
前記記憶領域に定義されたアドレスは前記実アドレスの一部を用いて定義されており、
前記記憶領域に記憶された該転送データの先頭に当たるデータに対応する実アドレスである先頭アドレスと、該転送データのデータサイズとが対応づけて記述された管理テーブルを備え、
前記読出・転送手段は読み出した転送データに対応する実アドレスを、前記管理テーブルに記述されている前記先頭アドレスと前記データサイズとに基づいて求め、求めた実アドレスを前記転送データと共に前記バスを介して前記メモリに転送する
請求項１記載のデータ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスを介して外部のメモリとのデータ転送を行う技術に関する。
【背景技術】
【０００２】
コンピュータシステムにおいては、ＣＰＵ（Central Processing Unit）の負荷を低減させてデータの転送速度を向上させるために、データの転送先であるメモリとＩ／Ｏ制御部がバスを介して直接データ転送を行うＤＭＡ（Direct Memory Access）転送が一般的に行われている。このようなＤＭＡ転送を行う場合であっても、例えばＰＣＩ（Peripheral Components Interconnect）バスのような汎用バスを用いたデータ転送においては、そのバスによって実現可能なデータ転送速度の上限がボトルネックとなることがある。このような問題を回避するために、データの転送速度を向上させるためのさまざまな技術が考案されている。
【０００３】
このような技術の一例として、バスのバウンダリとメモリのバウンダリを一致させ、データ転送の回数を抑える技術がある。なお、バスのバウンダリとは、そのバス上を一度に転送可能なデータの量を意味し、メモリのバウンダリとは、そのメモリが一度に記憶することが可能なデータの量を意味している。
例えば、バスとメモリのバウンダリが同じ４バイトであるコンピュータシステムにおいて、６バイトのデータをＤＭＡ転送する場合を考える（図８参照）。例えば、転送すべき６バイトのデータの先頭がバスのバウンダリ境界と一致していれば、１回目に４バイトのデータが転送され、そして２回目に残りの２バイトのデータが転送されるので、合計２回のデータ転送で６バイトのデータを転送することができる（図８（１））。なお、ここでバウンダリ境界とは、それぞれのバウンダリ間の区切りを意味している。
しかし、１バイト目のデータと２バイト目のデータの間がバスのバウンダリ境界と一致していると、１回目に１バイトのデータが転送され、２回目に次の４バイトのデータが転送され、更に３回目に残りの１バイトのデータが転送されることになるので、６バイトのデータを転送するのに３回のデータ転送を行う必要がある（図８（２））。つまり、転送すべきデータのどの部分がバウンダリ境界に一致するかによってデータ転送回数が増えてしまうことがあり、その結果バス上のトラフィック増加によるコンピュータシステムの性能低下を招く原因となっていた。
【０００４】
この問題を解決するものとして、例えば特許文献１には、転送データをバッファリングするバッファリング機構とアドレスの変換回路及び復元回路とを備えたメモリ制御回路が開示されている。このメモリ制御回路は、バッファリング機構にバッファリングされたデータがメモリのバウンダリに達する度にこれをバス経由でメモリに転送する用になっている。このようなメモリ制御回路により、転送先であるメモリのバウンダリとバスのバウンダリとが一致しないときに転送速度が低下する問題を解決している。
【０００５】
【特許文献１】特開２０００−２２７８９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上述の特許文献１に記載の技術においては、以下の点が懸念される。
第一に、上述の方法ではバッファリング機構がデータをバウンダリに達するまでバッファリングした後にそのデータを転送し、これを転送し終えたら次に転送すべきデータをバッファリングする、というように、バッファリングと転送処理とをそれぞれ別に行っているため、バッファリングしている期間にはデータ転送を行うことができない。よって、転送速度が制限される点が問題となる。
そして第二に、上述の方法では、アドレスの復元処理を要するので、その処理のための時間を要するとともに、回路全体として複雑化または大型化するという点が問題となる。
本発明はこのような背景の下になされたものであり、その目的は、データ転送速度を向上させ、かつ回路の簡素化を図ることのできるデータ転送制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
上述の課題を解決するために、本発明のデータ転送制御装置は、バスを介して接続されたメモリにデータを転送し、転送データに予め割り当てられているアドレスを前記メモリにおいて定義されている実アドレスに変換するアドレス変換手段と、前記メモリにおけるバウンダリと同じデータ容量毎に区切られた複数の記憶領域であって、前記実アドレスの少なくとも一部がそれぞれの記憶領域において用いられるアドレスとして定義されている記憶領域を有する記憶手段と、前記複数の記憶領域のうち転送データが記憶されていない記憶領域に対して、前記アドレス変換手段によって変換された前記実アドレスの少なくとも一部のアドレスを用いて前記転送データを順次記憶させる書込手段と、前記複数の記憶領域のいずれかの記憶領域において記憶すべき量の転送データが記憶されると、該転送データを該記憶領域から順次読み出し、読み出した転送データを該データに対応する実アドレスと共に前記バスを介して前記メモリに転送する読出・転送手段とを備える。
これにより、データ転送速度を向上させることが可能となる。
【０００８】
また、本発明のデータ転送制御装置は、より好ましい態様においては、前記記憶領域に定義されたアドレスは前記実アドレスの一部を用いて定義されており、前記記憶領域に記憶された該転送データの先頭に当たるデータに対応する実アドレスである先頭アドレスと、該転送データのデータサイズとが対応づけて記述された管理テーブルを備え、前記読出・転送手段は読み出した転送データに対応する実アドレスを、前記管理テーブルに記述されている前記先頭アドレスと前記データサイズとに基づいて求め、求めた実アドレスを前記転送データと共に前記バスを介して前記メモリに転送する。
この態様によれば、転送データは先頭アドレス以降のアドレスを指定することなく連続的にデータの書き込みと読み出しを行うことができ、データ転送速度をより向上させることが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照しながら、本発明の一実施形態について詳細に説明する。
なお、本実施形態においては、アドレス等を表現するために１６進数（hexadecimal）の値を用いるが、これを１０進数の値と区別するために、１６進数の値を例えば「０ＦＦｈ」のように、末尾にアルファベットの「ｈ」を付記して表現する。
【００１０】
（１）構成
図１は、本実施形態に係るコンピュータシステム１００の構成を示すブロック図である。同図に示されるように、コンピュータシステム１００は、データ転送制御装置１と、Ｉ／Ｏ制御部２と、バス３と、メモリ制御部４と、メモリ５とを備える。
Ｉ／Ｏ制御部２はデータ転送制御装置１を介してバス３と接続されており、コンピュータシステム１００内部または外部からのデータ転送を制御する。バス３は例えばＰＣＩバスであり、コンピュータシステム１００内部において各デバイス間でデータを授受するための経路である。メモリ制御部４は主記憶装置であるメモリ５へのデータの入出力を制御する。メモリ５のバウンダリは、本実施形態においては２５６バイトとする。
【００１１】
図２は、データ転送制御装置１の内部構成を示すブロック図である。以下、同図を参照しつつ、データ転送制御装置１の機能を詳説する。
アドレス変換回路１１は、Ｉ／Ｏ制御部２から出力されたデータに対し、当該データにメモリ５において定義されている実アドレスに対応したアドレスを付与する。
バス制御回路１３はデータ転送制御装置１に対するバス３のアクセス権を制御し、バッファリング機構１２にバッファリングされているデータをメモリ５へと転送する。
【００１２】
バッファリング機構１２は、書込制御回路１２１と、内部ＲＡＭ（Random Access Memory）１２２と、管理テーブル１２３と、読出制御回路１２４とを備える。
内部ＲＡＭ１２２はデュアルポートＲＡＭであり、異なる２つのデバイスからの同時アクセスが可能である。同図に示されるように、本実施形態では内部ＲＡＭ１２２は書込制御回路１２１と読出制御回路１２４とにより同時にアクセスされることが可能になっている。このため、本実施形態においては以下に説明するように、メモリ５を２つの記憶領域に分割し、データの格納されている一方の記憶領域からデータが読み出されると同時に、もう一方の記憶領域にデータが書き込まれるようにしている。
【００１３】
内部ＲＡＭ１２２のメモリ空間には「０００ｈ」から「１ＦＦｈ」のアドレスが定義されており、それぞれのアドレスに１バイトのデータが格納される。すなわち、内部ＲＡＭ１２２のメモリ空間は５１２バイトであり、メモリ５のバウンダリのちょうど２倍となっている。以下においては、このメモリ領域を２つの領域に分割し、アドレス「０００ｈ」から「０ＦＦｈ」で表されるメモリ領域を「領域０」と呼び、アドレス「１００ｈ」から「１ＦＦｈ」で表されるメモリ領域を「領域１」と呼ぶこととする。また、上述のアドレスの上位１ビットは「０」或いは「１」のいずれかであり、それぞれが「領域０」と「領域１」に対応している。
【００１４】
管理テーブル１２３は、上述の内部ＲＡＭ１２２の領域に応じた形式で形成されており、領域０に対応した「テーブルＡ」と、領域１に対応した「テーブルＢ」が形成されている。これらのテーブルには、対応するそれぞれの領域に書き込まれるアドレスが連続するデータの先頭位置のアドレスと、そのデータのサイズと、対応するそれぞれの領域からデータを読み出しても良いか否かを示す有効フラグとが記述できるようになっている。
図３は、管理テーブル１２３のテーブルＡを例示した図である。同図を例に説明すると、いまテーブルＡには、領域０にはアドレス「８０００ＣＢ８５ｈ」からデータの書き込みが連続して行われており、領域０内に書き込まれているデータのサイズは合計で「１２３バイト」であり、有効フラグが「ＯＮ」となっていて、読出制御回路１２４による当該データの読み出しが可能な状態であることを示している。
【００１５】
ここで、再び図２を参照し、データ転送制御装置１の説明を続ける。
書込制御回路１２１は、Ｉ／Ｏ制御部２から出力されたデータと、アドレス変換回路１１によりそのデータに付与されたアドレスとを取得し、これらの情報を内部ＲＡＭ１２２及び管理テーブル１２３へ書き込む。書込制御回路１２１は、内部ＲＡＭ１２２にデータを順次書き込んでいき、書き込んだデータのアドレスが「０ＦＦｈ」または「１ＦＦｈ」に達するか、或いはデータが末尾であることを意味する信号（以下、「ＥＮＤ信号」と称する）をＩ／Ｏ制御部２から受信すると、管理テーブル１２３の有効フラグを「ＯＮ」にする。
読出制御回路１２４は管理テーブル１２３の有効フラグの値を監視し、有効フラグが「ＯＮ」となっているテーブルに対応した領域に格納されたデータを内部ＲＡＭ１２２から読み出し、読み出したデータをバス制御回路１３へと出力する。また、データの読み出しが終わったら、読出制御回路１２４は読み出しを行った領域に対応するテーブルの有効フラグの値を「ＯＦＦ」にする。
【００１６】
（２）動作例
以上に示された構成のもと、本実施形態のデータ転送制御装置１が実行する動作について説明する。なお、以下においては、画像形成装置内部に備わっているデータ転送制御装置１が、本装置外部より受け取った画像データをメモリ５へ転送する場合の動作を例として説明する。
【００１７】
図４は、以下の動作例の説明に用いられる画像データを示した図である。この画像データは、ある用紙Ｐの左上端を原点Ｏとして、座標（Ｘ1，Ｙ1）の位置に描画されるべき画像データである。座標の単位はピクセルであり、この画像データは１ピクセル当たり１バイトのデータを有している。データ転送制御装置１は、Ｉ／Ｏ制御部２が受信したこの画像データを、メモリ５へと転送する。なお、以下においては、画像データの各ピクセルの位置を「座標データ」と称する。すなわち、同図に示された画像データの左上端にあるピクセルの座標データは（Ｘ1，Ｙ1）である。
メモリ５においては、この画像データを記憶するために２次元のアドレス空間が定義されている。すなわち、メモリ５には、同図の画像データに対して主走査方向にＸ軸、副走査方向にＹ軸が定義されている。このようにすると、メモリ５におけるビットの並びがそのまま用紙Ｐに印刷されたときのピクセルの並びと一致する。
【００１８】
また、画像データは同図の主走査方向に対して連続したデータであり、通常２５６バイトをひとつの単位として送信される。以下においては、この区切られた画像データの単位のことを「ブロック」と称する。なお、このようにブロックを定義した場合、画像データの主走査方向のピクセル数が２５６の整数倍である場合を除き、連続するブロックの最終端のブロックの画像データは２５６バイトに満たない。また、画像データの総容量が２５６バイトに満たないこともある。このため、１ブロックの画像データが必ずしも２５６バイトであるとは限らない。
【００１９】
図５はデータ書き込み時におけるデータ転送制御装置１の動作を説明するためのフローチャートであり、以下、同図を参照しつつ説明する。
データ転送制御装置１は、まず、Ｉ／Ｏ制御部２よりデータを受信することで本処理を開始する（ステップＳａ１）。Ｉ／Ｏ制御部２はこのとき、ブロックの先頭に当たるピクセル（以下、これを「先頭ピクセル」と称する）の座標データをアドレス変換回路１１に送信し、画像データをブロック単位でバッファリング機構１２内部の書込制御回路１２１に順次送信する。
【００２０】
座標データを受信したアドレス変換回路１１はこの座標データに基づき、当該ブロック（ブロック１とする）の先頭ピクセルの位置を計算し、この計算結果に基づいてメモリ５の実アドレスである３２ビットのアドレスＡｄｄｒを求める（ステップＳａ２）。まずは、先頭ピクセルの位置の計算方法を以下に示す。
図６はアドレス変換回路１１が先頭ピクセルの位置を計算する方法を説明するための図である。同図においては、例として、用紙Ｐは主走査方向（すなわち図中横方向）のピクセル数が「１０００」であるとし、先頭ピクセルの座標データは（１００，５０）であるとする。
このとき、第０行のピクセルについて原点Ｏから主走査方向に見ると、ピクセルｐ0からピクセルｐ999までの１０００個のピクセルが列をなしている。ここで、原点Ｏの部分のピクセルｐ0を「０番目」のピクセル、その右隣のピクセルｐ1を「１番目」のピクセルとし、以下同様にして用紙Ｐの右端のピクセルｐ999を「９９９番目」のピクセルとする。
続いて、第１行のピクセルについて同様に見ると、ピクセルｐ1000からピクセルｐ1999までの１０００個のピクセルが列をなしている。そして、このピクセルｐ1000を「１０００番目」のピクセル、その右隣のピクセルｐ1001を「１００１番目」のピクセルとし、以下同様にしてピクセルｐ1999を「１９９９番目」のピクセルとする。
このようにしてピクセルの位置を定めていくと、（１００，５０）の位置にある先頭ピクセルは、第５２行の左から１０１番目にあることがわかる。この場合の先頭ピクセルの位置を、「５２１０１番目」とする。
【００２１】
アドレス変換回路１１は、上述のようにして求められた先頭ピクセルの位置から、まず先頭ピクセルのアドレスＡｄｄｒの下位２４ビットを決定する。例えば上述のように先頭ピクセルの位置が「５２１０１番目」であれば、この「５２１０１」を１６進数で表した「００ＣＢ８５ｈ」がアドレスＡｄｄｒの下位２４ビットに相当する。
続いてアドレス変換回路１１は、上述の下位２４ビットのアドレスに上位８ビットを付加することで、３２ビットのアドレスＡｄｄｒを完成させる。ここにおいて、上述の上位８ビットはベースアドレスであり、各デバイスを認識するために設定されている固有のアドレスである。ここでは、メモリ５のベースアドレスを「８０ｈ」であるとする。
このようにして、アドレス変換回路１１は先頭ピクセルのアドレスＡｄｄｒを求める。すなわち、上述の例においては、（１００，５０）の位置にある先頭ピクセルのアドレスＡｄｄｒは、「８０００ＣＢ８５ｈ」となる。この先頭ピクセルのアドレスＡｄｄｒを、以下では「先頭アドレス」と称する。１つのブロックの画像データは、主走査方向に連続したピクセルであるので、ブロックの先頭アドレスがわかれば以降のピクセルのアドレスは先頭アドレスにピクセル数を加算した値として求めることができる。
【００２２】
先頭アドレスを算出したら、アドレス変換回路１１はこの先頭アドレスをバッファリング機構１２内部の書込制御回路１２１に供給する。書込制御回路１２１は、この先頭アドレスとステップＳａ１で受信したブロック１の画像データとに基づき、次のような処理を行う。
まず、書込制御回路１２１は、管理テーブル１２３のうちの画像データを書き込むテーブル（この場合テーブルＡ）に、その先頭アドレスを記録する（ステップＳａ３）。
【００２３】
先頭アドレスを記録したら、書込制御回路１２１は、先頭ピクセルの画像データを内部ＲＡＭ１２２の領域０に書き込む（ステップＳａ４）。このとき書込制御回路１２１は、それぞれのピクセルのデータのアドレスＡｄｄｒの下位８ビットを参照し、内部ＲＡＭ１２２のアドレスがアドレスＡｄｄｒの下位８ビットと一致する領域に画像データを書き込む。すなわち、上述の例を用いれば、アドレスＡｄｄｒが「８０００ＣＢ８５ｈ」である先頭ピクセルの画像データは、内部ＲＡＭ１２２の「０８５ｈ」の領域に書き込まれる。
【００２４】
その後、書込制御回路１２１は、画像データが終了しＥＮＤ信号を受信するか、或いは内部ＲＡＭ１２２のアドレス「０ＦＦｈ」に画像データが達するまで、後続の画像データを順次内部ＲＡＭ１２２の領域０に書き込んでいく（ステップＳａ５；ＮＯ，ステップＳａ６；ＮＯ）。
そして、書込制御回路１２１がブロック１の画像データを順次書き込んでいき、内部ＲＡＭ１２２のアドレス「０ＦＦｈ」にアドレスＡｄｄｒが「８０００ＣＢＦＦｈ」であるデータを書き込んだ時点で（ステップＳａ６；ＹＥＳ）、書込制御回路１２１は一旦データの書き込みを停止する。そして、ここまでに書き込んだ画像データのデータサイズ（この場合１２３バイト）を、管理テーブル１２３のうちの画像データを書き込んだアドレスに応じたテーブル（この場合テーブルＡ）に記録し（ステップＳａ７）、このテーブルの有効フラグを「ＯＮ」にする（ステップＳａ８）。つまり、この時点で、内部ＲＡＭ１２２の領域０は読出制御回路１２４によるデータ読み出しが可能な状態となる。この状態になると、読出制御回路１２４は画像データの読み出しを開始するが、これと同時に書込制御回路１２１では、書き込み対象の領域を切り替えて（ステップＳａ９）、残りの画像データを未使用の領域（この場合領域１）に書き込む。読出制御回路１２４の動作説明は後述するとし、まずは書込制御回路１２１の動作について説明する。
【００２５】
上述の例では、アドレスＡｄｄｒが「８０００ＣＢ８５ｈ」であるピクセルから「８０００ＣＢＦＦｈ」であるピクセルまでの合計１２３バイトの画像データが領域０に書き込まれた。ということは、１つのブロック（２５６バイト）の画像データのうち、アドレスＡｄｄｒが「８０００ＣＣ００ｈ」であるピクセルから「８０００ＣＣ８４ｈ」であるピクセルまでの１３３バイトの画像データが、まだ内部ＲＡＭ１２２に書き込まれていないことになる。書込制御回路１２１は、この残りの１３３バイトの画像データを内部ＲＡＭ１２２の領域１に書き込む。具体的な動作は上述の領域０の場合と同様なので省略するが、書込制御回路１２１は、アドレスＡｄｄｒが「８０００ＣＣ００ｈ」であるピクセルの画像データを内部ＲＡＭ１２２のアドレス「１００ｈ」の領域に書き込み、以後、アドレスＡｄｄｒが「８０００ＣＣ８４ｈ」であるピクセルの画像データに至るまで、順次内部ＲＡＭ１２２の領域１に書き込んでいく。このとき管理テーブル１２３のテーブルＢには、先頭アドレスとして「８０００ＣＣ００ｈ」が記録される。
【００２６】
アドレスＡｄｄｒが「８０００ＣＣ８４ｈ」であるピクセルの画像データを書き込んだら、書込制御回路１２１はブロック１の次のブロック（ブロック２とする）の画像データを、ブロック１の場合と同様にして書き込む。ブロック１とブロック２は連続しているので、ブロック２の先頭アドレスは「８０００ＣＣ８５ｈ」である。領域１には、ブロック２の画像データのうち、アドレスＡｄｄｒが「８０００ＣＣ８５ｈ」から「８０００ＣＣＦＦｈ」までの１２３バイトの画像データが書き込まれる。残りの１３３バイトの画像データは、領域０に既に書き込まれている画像データが読出制御回路１２４によって読み出され、領域０が書き込み可能な状態になった後でここに書き込まれる。
この時点で、領域１はアドレス「１ＦＦｈ」までの２５６バイト全てに画像データが書き込まれた状態となる。そのため、管理テーブル１２３のテーブルＢに書き込まれるデータは、先頭アドレスが「８０００ＣＣ００ｈ」でデータサイズが「２５６バイト」である。また、書込制御回路１２１は、この２５６バイトの画像データの書き込みが終了したら、管理テーブル１２３のテーブルＢの有効フラグを「ＯＮ」にする。
【００２７】
以降も同様にして、連続するブロックの画像データが、書き込まれる領域を切り替えながら最終端のブロックまで順次書き込まれていく。そして、最終端のブロックの末尾まで画像データが書き込まれ、ＥＮＤ信号を受信すると（ステップＳａ５；ＹＥＳ）、書込制御回路１２１は、画像データを書き込んでいた領域に対応したテーブルに書き込んだ画像データのデータサイズを記録し（ステップＳａ１０）、有効フラグを「ＯＮ」にする（ステップＳａ１１）ことで、処理を終了させる。
【００２８】
続いて、読出制御回路１２４の動作について説明する。
読出制御回路１２４は管理テーブル１２３の有効フラグを監視しており、この有効フラグが「ＯＮ」になると当該テーブルに対応した領域の画像データの読み出しを開始する。ただし、一方のテーブルに対応した領域の画像データを読み出している間に他方のテーブルの有効フラグが「ＯＮ」になったときには、読出制御回路１２４は既に読み出しを行っている領域の画像データを全て読み出すまでは、他方の領域の画像データの読み出しを行わない。
上述の例ではまずテーブルＡの有効フラグが先に「ＯＮ」となるので、読出制御回路１２４はまずテーブルＡに対応した領域０の画像データを読み出す。領域０の画像データを読み出し、この画像データをバス制御回路１３を介してメモリ５に転送するための処理は以下のように行われる。
【００２９】
図７はデータ読み出し時における読出制御回路１２４の動作を説明するためのフローチャートであり、以下、同図を参照しつつ説明する。なお、以下の説明においては、まず上述の領域０の画像データ、すなわち先頭アドレスが「８０００ＣＢ８５ｈ」であり、対応する内部ＲＡＭ１２２におけるアドレスが「０８５ｈ」である画像データから読み出す場合を例にして説明する。
【００３０】
まず、データ転送制御装置１の読出制御回路１２４は、内部ＲＡＭ１２２のアドレス「０８５ｈ」の画像データ、すなわち先頭ピクセルの画像データを読み出し、これを管理テーブル１２３のテーブルＡに記憶された先頭アドレス「８０００ＣＢ８５ｈ」と対応づける（ステップＳｂ１）。これにより、アドレス「０８５ｈ」の画像データのメモリ５における実アドレスが得られる。そして読出制御回路１２４は、この実アドレス「８０００ＣＢ８５ｈ」の画像データを一時的に記憶する。
上述のように実アドレス「８０００ＣＢ８５ｈ」の画像データを読み出したら、続いて読出制御回路１２４は、アドレス「０８５ｈ」の画像データ以降の画像データを読み出し、順次実アドレスを求めていく（ステップＳｂ２）。アドレス「０８５ｈ」の画像データ以降の実アドレスは、先頭アドレスの値に対して順次「１」を加算することで求められる。
そして、読出制御回路１２４は、このような処理をテーブルＡに記憶されたデータサイズ、すなわち１２３バイト分だけ行う。すなわち、読出制御回路１２４はステップＳｂ２の処理の後にその時点で読み出している画像データのデータサイズが１２３バイトであるかどうかを判断し（ステップＳｂ３）、これが否定的であれば上述のステップＳｂ２の処理を繰り返す。
また、ステップＳｂ３の判断が肯定的、すなわち読み出した画像データがテーブルＡに記憶されたデータサイズ（１２３バイト）に達したら、これは領域０に記憶された画像データをすべて読み出したことを意味しているので、読出制御回路１２４はテーブルＡの有効フラグを「ＯＦＦ」に書き換え、領域０をデータ書き込み可能な状態とする（ステップＳｂ４）。
【００３１】
この時点で、２５６バイトであるブロック１の画像データのうち、領域０に記憶されていた１２３バイト分が読み出されたこととなる。読出制御回路１２４はブロック１の画像データをすべて読み出した状態になってからバス制御回路１３へと画像データを転送するので、続いて読出制御回路１２４はテーブルの切り替えを行い、もう一方の領域１の画像データの読み込みに備える（ステップＳｂ５）。そして、読出制御回路１２４は１ブロック分の画像データが読み出されたか否かを判断するが（ステップＳｂ６）、この時点ではこの判断は否定的である。そのため、読出制御回路１２４はステップＳｂ１からの処理をテーブルＢのデータと領域１の画像データに対して行う。
領域１の読み込みは、上述した領域０の読み込み処理と同様である。すなわち、読出制御回路１２４はアドレス「１００ｈ」の画像データを読み出し、その実アドレス（８０００ＣＣ００ｈ）を求め、アドレス「１００ｈ」以降の画像データについても同様の処理を、読み出した画像データのデータサイズがテーブルＢに記憶されたデータサイズ（ここでは２５６バイト）に達するまで繰り返す。
【００３２】
このような処理を行い、読出制御回路１２４がテーブルＢに記憶されたデータサイズ分の画像データを読み込んだら、ブロック１の画像データがすべて読み出された状態となるから、上述のステップＳｂ６における判断が今度は肯定的になる。すると、続いて読出制御回路１２４は、バス制御回路１３に画像データを出力する旨の通知を行い、ブロック１の画像データをバス制御回路１３に出力する（ステップＳｂ７）。このとき、ブロック１の次のブロックに当たるブロック２の画像データの一部が既に読み込まれているが、この画像データは読出制御回路１２４に一時的に記憶され、上述のブロック１の場合と同様にブロック全体の画像データが読み込まれてからバス制御回路１３に出力される。そして、読出制御回路１２４は、以上のような処理を画像データの全体を転送し終わるまで、つまりＥＮＤ信号を受信するまで繰り返す（ステップＳｂ８）。
【００３３】
このようにして読出制御回路１２４から出力された画像データに対し、バス制御回路１３は次のような処理を行う。
バス制御回路１３は上述の画像データの出力通知を受信すると、画像データの入力に備え、画像データを受信する。そして、画像データを入力されたバス制御回路１３は、バス３のアクセス権を獲得し、メモリ制御部４を介して画像データをメモリ５へと転送する。バス制御回路１３も同様に、以上のような処理を画像データの全体を転送し終わるまで続ける。
【００３４】
以上のような転送を連続したブロックに対して順次行っていくことで、データ転送制御装置１は、転送先アドレスのバウンダリの不一致による転送回数の増加を防ぎ、また、読み出しと書き込みを並列に行うことによって、転送速度を向上させることが可能となる。また、内部ＲＡＭ１２２にメモリ５の実アドレスに対応したアドレスで画像データを書き込むことにより、アドレスの復元を行わずにデータ転送を行うことが可能となる。
さらに、バッファリング時におけるアドレスとメモリ５の実アドレスが一致することから、例えばデータ転送制御装置１が外部からのデータを読み込み、データの一部を書き換えて戻すといったように、キャッシュとして機能させることも可能となる。
【００３５】
（３）変形例
なお、本発明は上述の実施形態に限定されず、以下に示されるような種々の変形が可能である。
【００３６】
本実施形態においては、内部ＲＡＭ１２２はデュアルポートＲＡＭであるとした。しかし、内部ＲＡＭ１２２は必ずしもデュアルポートＲＡＭである必要はなく、例えば単独のポートしか持たないＲＡＭを用いることも可能である。ただしこの場合、ＲＡＭの前段にＲＡＭへのデータ書き込みとデータ読み出しを切り替えるためのスイッチング回路を必要とする。
【００３７】
また、本実施形態においては、メモリ５のバウンダリは２５６バイトであるとしたが、もちろん他のバウンダリのメモリを用いることも可能である。この場合は、メモリのバウンダリに合わせて、内部ＲＡＭ１２２のバウンダリも適宜変更すればよい。
【００３８】
また、本実施形態においては、内部ＲＡＭ１２２の容量を、メモリ５のバウンダリの２倍である５１２バイトとした。しかし、内部ＲＡＭ１２２の容量は、メモリ５のバウンダリの２倍に限らずとも、３倍以上の任意の整数倍の容量を持たせ、３以上の複数の領域を持たせることも可能である。このような内部ＲＡＭを用いると、例えば書込制御回路１２１の書き込み速度が読出制御回路１２４の読み出し速度を上回るような場合に、書込制御回路１２１が書き込み可能な領域が内部ＲＡＭ１２２になく、書き込みを待機する状態を回避することが可能となる。この場合は、管理テーブル１２３のについても、内部ＲＡＭの領域に合わせたテーブルの構成とすればよい。
【図面の簡単な説明】
【００３９】
【図１】本実施形態に係るコンピュータシステムの構成を示すブロック図である。
【図２】同実施形態におけるデータ転送制御装置の内部構成を示すブロック図である。
【図３】同実施形態における管理テーブルのテーブルＡを例示した図である。
【図４】同実施形態の説明に用いられるデータを例示した図である。
【図５】同実施形態のデータ書き込み時におけるデータ転送制御装置の動作を説明するためのフローチャートである。
【図６】同実施形態においてアドレス変換回路が先頭ピクセルの位置を計算する方法を説明するための図である。
【図７】同実施形態のデータ読み出し時におけるデータ転送制御装置の動作を説明するためのフローチャートである。
【図８】従来におけるＤＭＡ転送の問題点を例示した図である。
【符号の説明】
【００４０】
１００…コンピュータシステム、１…データ転送装置、２…Ｉ／Ｏ制御部、３…バス、４…メモリ制御部、５…メモリ、１１…アドレス変換回路、１２…バッファリング機構、１３…バス制御回路、１２１…書き込み制御回路、１２２…内部ＲＡＭ、１２３…管理テーブル、１２４…読み出し制御回路。
【図１】
2005122376.tif 000003
【図２】
2005122376.tif 000004
【図３】
2005122376.tif 000005
【図４】
2005122376.tif 000006
【図５】
2005122376.tif 000007
【図６】
2005122376.tif 000008
【図７】
2005122376.tif 000009
【図８】
2005122376.tif 000010