(57)【要約】  【課題】  プリフェッチ対象として指定するアドレス範囲を必要以上に広げることなく、また、実メモリの使用上のアドレス制限をなくすことのできるデータ転送方法および装置を提供する。  【解決手段】  データの読み出し元として入力された現在のバスアドレス５００を、予め開始アドレスレジスタ１１３１に記憶している開始アドレス５０３と開始アドレスレジスタ１１３２が記憶している実メモリ上の開始アドレス５０４に基づいて、実メモリアドレス５０６に変換し、変換した実メモリアドレス５０６に基づいてメモリからデータの先読みを行う。【選択図】        図２
2006072473.tif 000002
【特許請求の範囲】
【請求項１】
メモリからデータを読み出してデバイスに転送する際に、先読み処理を行うデータ転送方法であって、
データの読み出し元として入力された入力アドレスを、予め設定した設定情報に基づいてメモリのアドレスに変換し、該変換したアドレスに基づいて前記メモリからデータの先読みを行うことを特徴とするデータ転送方法。
【請求項２】
前記変換は、前記メモリの用途に応じて特定される大きさのブロックを単位として行われることを特徴とする請求項１記載のデータ転送方法。
【請求項３】
前記設定情報は、前記入力アドレスに対応する先読み範囲の開始を示す開始入力アドレスと、前記メモリに対応する先読み範囲の開始を示す開始メモリアドレスとであり、
前記変換は、前記入力アドレスと前記開始入力アドレスとからオフセットを算出し、該算出したオフセットと前記開始メモリアドレスとから前記メモリのアドレスを算出することで行われる
ことを特徴とする請求項２記載のデータ転送方法。
【請求項４】
前記変換は、前記メモリの用途に応じて特定される大きさのブロックを、任意の大きさで任意の数に分割した分割ブロックを単位として行われることを特徴とする請求項１記載のデータ転送方法。
【請求項５】
前記変換は、前記入力アドレスが先読み範囲に含まれていると識別された場合に実行されることを特徴とする請求項１乃至４のいずれかに記載のデータ転送方法。
【請求項６】
前記先読み範囲は、該先読み範囲の開始アドレスとサイズ情報とに基づいて特定されることを特徴とする請求項５記載のデータ転送方法。
【請求項７】
前記先読み範囲は、該先読み範囲の開始アドレスと終了アドレスとに基づいて特定されることを特徴とする請求項５記載のデータ転送方法。
【請求項８】
前記設定情報は、先読み対象となる先読み範囲毎に設定されることを特徴とする請求項１記載のデータ転送方法。
【請求項９】
メモリからデータを読み出してデバイスに転送する際に、先読み処理を行うデータ転送装置において、
データの読み出し元として入力された入力アドレスを、予め設定した設定情報に基づいてメモリのアドレスに変換するアドレス変換手段と、
前記アドレス変換手段が変換したアドレスに基づいて前記メモリからデータの先読みを行う先読み手段と
を具備することを特徴とするデータ転送装置。
【請求項１０】
前記アドレス変換手段は、前記メモリの用途に応じて特定される大きさのブロックを単位として、前記変換を行うことを特徴とする請求項９記載のデータ転送装置。
【請求項１１】
前記設定情報は、前記入力アドレスに対応する先読み範囲の開始を示す開始入力アドレスと、前記メモリに対応する先読み範囲の開始を示す開始メモリアドレスとであり、
前記アドレス変換手段は、前記入力アドレスと前記開始入力アドレスとからオフセットを算出し、該算出したオフセットと前記開始メモリアドレスとから前記メモリのアドレスを算出することで前記変換を行う
ことを特徴とする請求項１０記載のデータ転送装置。
【請求項１２】
前記アドレス変換手段は、前記メモリの用途に応じて特定される大きさのブロックを、任意の大きさで任意の数に分割した分割ブロックを単位として前記変換を行うことを特徴とする請求項９記載のデータ転送装置。
【請求項１３】
前記入力アドレスが予め指定された先読み対象である先読み範囲に含まれるか否かを識別する識別手段をさらに具備し、
前記アドレス変換手段は、前記識別手段により前記入力アドレスが先読み範囲に含まれていると識別された場合に、前記変換を行う
ことを特徴とする請求項９乃至１２のいずれかに記載のデータ転送装置。
【請求項１４】
前記識別手段は、開始アドレスとサイズ情報とに基づいて前記先読み範囲を特定することを特徴とする請求項１３記載のデータ転送装置。
【請求項１５】
前記識別手段は、開始アドレスと終了アドレスとに基づいて前記先読み範囲を特定することを特徴とする請求項１３記載のデータ転送装置。
【請求項１６】
前記設定情報は、先読み対象となる先読み範囲毎に設定されることを特徴とする請求項９記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送方法および装置に関し、特に、ＤＭＡ転送時のメモリからのデータの先読みを行うデータ転送方法および装置に関する。
【背景技術】
【０００２】
入出力デバイスがメモリに記憶されているデータを読み出す場合に、データの転送性能を高めるため、データ転送装置にプリフェッチ（先読み）機構を設けたシステムが従来から知られている。このようなシステムでは、システムバスとメモリとの間に、プリフェッチ機構を有するデータ転送装置を設けている。そして、システムバス上の入出力デバイスからメモリに対し、あるアドレスについてのリードアクセスがあった場合、データ転送装置は、入出力デバイスの要求サイズ以上のデータをメモリから読み込む。データ転送装置は、読み込んだデータのうち要求サイズ分だけを入出力デバイスに転送し、残りの部分はプリフェッチバッファに格納する。このプリフェッチバッファへの格納処理は、バックグラウンドで行われる。そして、入出力デバイスから連続して次のアドレスへのリードアクセスがあった場合、データ転送装置は、プリフェッチバッファ内に格納済みのそのアドレスのデータを入出力デバイスに転送する。
【０００３】
一般的に、メモリからデータを読み出すよりも、プリフェッチバッファからデータを読み出す方が速いので、前述のシステムでは、入出力デバイスから見かけ上高速にリードアクセスを行うことができる。
【０００４】
また、最近では、メモリへのアクセス効率とプリフェッチバッファの有効性を向上させるために、メモリのアドレス範囲を使用してプリフェッチの可否を判断する技術や（例えば、特許文献１参照）、アドレス範囲によりプリフェッチ可否を判断し、さらにシングル、バーストサイクルの判別を行って、バーストサイクルのみをプリフェッチの対象とする技術（例えば、特許文献２参照）、複数の先読み手段の中から、現在のアクセスに適した先読み手段を選択し、識別手段によって識別されたプリフェッチバッファが個別に応答することにより、効率的な先読みを実現する技術（例えば、特許文献３参照）、プリフェッチバッファの先読みデータを置換する技術（例えば、特許文献４参照）等が提案されている。
【０００５】
ところで、プリフェッチバッファを用いてＤＭＡ（Direct Memory Access）転送を行う技術は、印刷出力を行う画像形成装置に適用することができる。画像形成装置は、制御や演算を行うＣＰＵ（Central Processing Unit）、印刷すべき画像データ等を記憶するハードディスク、画像データを圧縮する圧縮装置、画像データ等を一時的に記憶するシステムメモリ、画像データに基づいて画像を用紙上に印刷するプリンタエンジン等のデバイスを有しており、これらのデバイスの間で画像データの転送を行っている。
【０００６】
プリフェッチバッファを用いてＤＭＡ転送を行う技術を画像形成装置に適用した場合、Ｙ（ｙｅｌｌｏｗ）、Ｍ（ｍａｇｅｎｔａ）、Ｃ（ｃｙａｎ）、Ｋ（ｂｌａｃｋ）の各色のデータサイズは、解像度が高くなるにつれて増加し、また、機内枚数の増加やジャムリカバリへの対応等を考慮すると、複数枚数分のプリフェッチバッファを用意する必要がある。例えば、解像度が６００ｄｐｉのＹＭＣＫ色空間で２５６階調（８ｂｉｔ）を表現する場合、Ａ４サイズで６４ＭＢ、Ａ３で１２８ＭＢが必要であり、Ａ４サイズで８面分のデータを処理する場合には、各色のプリフェッチバッファは、それぞれ、５１２ＭＢの容量が必要となる。
【０００７】
この場合、実メモリの空間を各色毎に別の空間とした場合には、図７に示すように実メモリの空間は２ＧＢ以上となってしまい、図８に示すように、各色を同一空間に定義した場合には、同空間に画像データが納まる保証がなくなってしまう。
【特許文献１】特開２００３−１７３２９１号公報
【特許文献２】特開２００１−１５４９７９号公報
【特許文献３】特開２００１−２５６１６９号公報
【特許文献４】特開２００２−１８３０７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前述のように、従来のデータ転送装置では、プリフェッチ対象となるアドレス空間を大きくした場合には、必要とする実メモリの空間も大きくなる。また、これにともなって、アドレスの割り付けも困難となり、例えば、３２ｂｉｔでの対応が困難となる。
【０００９】
これらは、従来のデータ転送装置が、プリフェッチ対象として指定するアドレス範囲や現在アクセスすべきアドレスを、システムメモリと１対１にマッピングしていることに起因するもので、これにより、アドレス等に様々な制限が生じている。
【００１０】
そこで、本発明は、プリフェッチ対象として指定するアドレス範囲を必要以上に広げることなく、また、実メモリの使用上のアドレス制限をなくすことのできるデータ転送方法および装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
前述した目的を達成するため、請求項１の発明は、メモリからデータを読み出してデバイスに転送する際に、先読み処理を行うデータ転送方法であって、データの読み出し元として入力された入力アドレスを、予め設定した設定情報に基づいてメモリのアドレスに変換し、該変換したアドレスに基づいて前記メモリからデータの先読みを行うことを特徴とする。
【００１２】
また、請求項２の発明は、請求項１の発明において、前記変換は、前記メモリの用途に応じて特定される大きさのブロックを単位として行われることを特徴とする。
【００１３】
また、請求項３の発明は、請求項２の発明において、前記設定情報は、前記入力アドレスに対応する先読み範囲の開始を示す開始入力アドレスと、前記メモリに対応する先読み範囲の開始を示す開始メモリアドレスとであり、前記変換は、前記入力アドレスと前記開始入力アドレスとからオフセットを算出し、該算出したオフセットと前記開始メモリアドレスとから前記メモリのアドレスを算出することで行われることを特徴とする。
【００１４】
また、請求項４の発明は、請求項１の発明において、前記変換は、前記メモリの用途に応じて特定される大きさのブロックを、任意の大きさで任意の数に分割した分割ブロックを単位として行われることを特徴とする。
【００１５】
また、請求項５の発明は、請求項１乃至４のいずれかの発明において、前記変換は、前記入力アドレスが先読み範囲に含まれていると識別された場合に実行されることを特徴とする。
【００１６】
また、請求項６の発明は、請求項５の発明において、前記先読み範囲は、該先読み範囲の開始アドレスとサイズ情報とに基づいて特定されることを特徴とする。
【００１７】
また、請求項７の発明は、請求項５の発明において、前記先読み範囲は、該先読み範囲の開始アドレスと終了アドレスとに基づいて特定されることを特徴とする。
【００１８】
また、請求項８の発明は、請求項１の発明において、前記設定情報は、先読み対象となる先読み範囲毎に設定されることを特徴とする。
【００１９】
また、請求項９の発明は、メモリからデータを読み出してデバイスに転送する際に、先読み処理を行うデータ転送装置において、データの読み出し元として入力された入力アドレスを、予め設定した設定情報に基づいてメモリのアドレスに変換するアドレス変換手段と、前記アドレス変換手段が変換したアドレスに基づいて前記メモリからデータの先読みを行う先読み手段とを具備することを特徴とする。
【００２０】
また、請求項１０の発明は、請求項９の発明において、前記アドレス変換手段は、前記メモリの用途に応じて特定される大きさのブロックを単位として、前記変換を行うことを特徴とする。
【００２１】
また、請求項１１の発明は、請求項１０の発明において、前記設定情報は、前記入力アドレスに対応する先読み範囲の開始を示す開始入力アドレスと、前記メモリに対応する先読み範囲の開始を示す開始メモリアドレスとであり、前記アドレス変換手段は、前記入力アドレスと前記開始入力アドレスとからオフセットを算出し、該算出したオフセットと前記開始メモリアドレスとから前記メモリのアドレスを算出することで前記変換を行うことを特徴とする。
【００２２】
また、請求項１２の発明は、請求項９の発明において、前記アドレス変換手段は、前記メモリの用途に応じて特定される大きさのブロックを、任意の大きさで任意の数に分割した分割ブロックを単位として前記変換を行うことを特徴とする。
【００２３】
また、請求項１３の発明は、請求項９乃至１２のいずれかの発明において、前記入力アドレスが予め指定された先読み対象である先読み範囲に含まれるか否かを識別する識別手段をさらに具備し、前記アドレス変換手段は、前記識別手段により前記入力アドレスが先読み範囲に含まれていると識別された場合に、前記変換を行うことを特徴とする。
【００２４】
また、請求項１４の発明は、請求項１３の発明において、前記識別手段は、開始アドレスとサイズ情報とに基づいて前記先読み範囲を特定することを特徴とする。
【００２５】
また、請求項１５の発明は、請求項１３の発明において、前記識別手段は、開始アドレスと終了アドレスとに基づいて前記先読み範囲を特定することを特徴とする。
【００２６】
また、請求項１６の発明は、請求項９の発明において、前記設定情報は、先読み対象となる先読み範囲毎に設定されることを特徴とする。
【発明の効果】
【００２７】
本発明によれば、データの読み出し元として入力された入力アドレスを、予め設定した設定情報に基づいてメモリのアドレスに変換し、変換したアドレスに基づいてメモリからデータの先読みを行うように構成したので、システムバス上の信号以外に特別な信号を追加することなく、プリフェッチを効率良く行うことができる。特に、プリフェッチ対象として指定するアドレス範囲を必要以上に広げることがなく、実メモリの使用上のアドレス制限をなくすこともできる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明に係るデータ転送方法および装置の一実施の形態について、添付図面を参照して詳細に説明する。
【００２９】
図１は、本発明を適用したデータ転送装置の概略構成を示すブロック図である。同図に示すように、データ転送装置１０は、スレーブ制御部１１と、先読み機構識別部１２、先読み機構１３（１３−１〜１３−４）、先読み手法指定部１４、調停部１５、メモリ制御部１６を具備して構成される。
【００３０】
スレーブ制御部１１は、システムバス２０を介して、複数の入出力デバイス３０（３０−１〜３０−４）と接続されている。各入出力デバイス３０は、ＨＤＤやネットワークカード等であり、自らバスマスタとなってメモリ装置４０との間でＤＭＡ転送を行うバスマスタＤＭＡ機能を有する。入出力デバイス３０は、バスマスタとなってバスサイクル動作を起動する場合、アクセス要求するアドレス、メモリ装置４０に対するチップセレクト信号、及びサイクル開始を示す制御信号をシステムバス２０上に送出する。そして、読み出しサイクルであれば、入出力デバイス３０はバス２０からデータを取り込み、書き込みサイクルであればバス２０にデータを供給する。なお、図１においては、入出力デバイス３０として符号３０−１から符号３０−４を付した４つを示しているが、入出力デバイス３０の数は、これに限定されるものではない。
【００３１】
さて、スレーブ制御部１１は、バスマスタである入出力デバイス３０からのチップセレクト信号を認識し、それが自身に対するアクセスを示していれば、そのアクセスに対する応答のための処理を行う。また、そのアクセスがメモリ装置４０に対するリードアクセスであり、先読み機構識別部１２によりいずれかの先読み機構１３が選択された場合は、スレーブ制御部１１は、その選択された先読み機構１３に対してリードサイクルを要求する。そして、その先読み機構１３から応答されたデータを、バスマスタである入出力デバイス３０に転送する。なお、先読み機構識別部１２による先読み機構１３の選択については後述する。
【００３２】
一方、入出力デバイス３０からのアクセスがライトアクセスの場合や、リードアクセスであっても先読み機構識別部１２が先読み機構１３を選択しなかった場合は、スレーブ制御部１１は、メモリ装置４０に対するライト又はリードサイクルを調停部１５に対して要求する。これらの処理は、先読み処理とは関係のない処理であり、先読み機構１３は使用されない。スレーブ制御機構１１は、調停部１５およびメモリ制御部１６を介してメモリ装置４０に対してアクセスし、入出力デバイス２０からの要求に応じてリード又はライト処理を行う。
【００３３】
先読み機構識別部１２は、複数設けられた先読み機構１３の中から、入出力デバイス３０からのアクセス要求に応じたものを選択し、その先読み機構１３に対応した選択信号を出力する。この選択信号によりスレーブ制御部１１は、選択された先読み機構１３を識別する。この先読み機構１３の選択は、後述する各実施例において説明する。
【００３４】
各先読み機構１３は、それぞれ、図示しないプリフェッチバッファを備えるとともに、複数の先読み手法に対応する機能が組み込まれており、それら複数の先読み手法のうち、先読み手法指定部１４で指定された手法で先読み（プリフェッチ）処理を行う。先読み手法には、例えば、アドレスを順次一定値ずつインクリメントして先読みする「インクリメントシーケンシャル」、アドレスを一定値ずつデクリメントして先読みする「デクリメントシーケンシャル」等がある。また、例えば同じインクリメントシーケンシャルでも、アドレスインクリメントの刻みが異なる場合が考えられる。それら各々の場合に対して予めコードを割り当てておけば、そのコードにより先読み手法を指定することができる。
【００３５】
また、先読み機構１３は、マスタであるスレーブ制御部１１から要求されたアドレスのデータがプリフェッチバッファ内になければ、自らマスタとなって調停部１５に対してリードサイクルを要求し、メモリ制御部１６を介してメモリ装置４０からその要求アドレスのデータを読み出し、そのデータを用いてスレーブ制御部１１に対しスレーブ応答を行う。そして、要求されたアドレスのデータをメモリ装置４０からリードし終えた後も、先読み機構１３は、予め指定された先読み手法に従って先読みアドレスを求め、このアドレスのデータを同様にメモリ装置４０から読み出して自身のプリフェッチバッファに蓄える。プリフェッチバッファがいっぱいにならない限り、この先読み・蓄積の処理が繰り返される。
【００３６】
一方、マスタであるスレーブ制御部１１から受け付けたリード要求のアドレスのデータが、自分のプリフェッチバッファ内に既に格納されている場合は、先読み機構１３は、そのデータを用いてマスタの要求に即座にスレーブ応答する。例えば、前述した先読み処理が始まった後で、マスタから前回の要求アドレスの次のアドレスが要求された場合、そのアドレスのデータは既にプリフェッチバッファ内に蓄えられているので、そのデータが出力されることとなる。
【００３７】
なお、図１においては、先読み機構１３は、符号１３−１から符号１３−４を付した４個を示しているが、これはあくまで一例であり、データ転送装置１０に組み込む先読み機構１３の数はこれに限定されるものではない。
【００３８】
先読み手法指定部１４は、各先読み機構１３毎に、先読み手法を指定するためのレジスタを備える。これらレジスタはＣＰＵ等から設定可能なレジスタであり、各先読み機構１３毎に個別に先読み手法を設定することができる。
【００３９】
調停機構部１５は、複数の先読み機構１３およびスレーブ制御部１１からメモリ制御部１６へのアクセスを調停するもので、順次、選択したマスタ（この場合は複数の先読み機構１３、スレーブ制御部１１の中のいずれか）からのサイクル要求を受け付け、その受け付けたサイクル要求の情報をもとに、メモリ制御部１６に対してマスタとしてリードまたはライトサイクルを要求する。
【００４０】
メモリ制御部１６は、調停部１５から受け付けた各種サイクル要求に基づいて、実メモリであるメモリ装置４０に対するアクセスの制御を行う。また、リフレッシュ等、メモリ装置４０に特有の制御が必要ならば、それを実行する。
【００４１】
なお、この図１に示したデータ転送装置１０は、先読み機構識別部１２の構成と、各先読み機構１３の構成以外は、基本的には前述した特許文献３に記載されているデータ転送装置と同様のものである。したがって、以下の各実施例においては、先読み機構識別部１２と各先読み機構１３の構成と動作を中心に説明を行う。
【実施例１】
【００４２】
図２は、実施例１における先読み機構識別部および先読み機構の機能的な構成を示すブロック図である。なお、同図に示す先読み機構識別部１０１２および先読み機構１０１３は、それぞれ、図１に示した先読み機構識別部１２と先読み機構１３に相当するものである。
【００４３】
同図に示すように、先読み機構識別部１０１２は、開始アドレスレジスタ１１２１と、サイズレジスタ１１２２、範囲比較部１１２３を具備して構成される。ここに示した開始アドレスレジスタ１１２１、サイズレジスタ１１２２、範囲比較部１１２３は、それぞれ、１つの先読み機構１０１３に対応するもので、実際には、先読み機構１０１３の数に応じた数の開始アドレスレジスタ１１２１、サイズレジスタ１１２２、範囲比較部１１２３が先読み機構識別部１０１２に配されている。
【００４４】
開始アドレスレジスタ１１２１は、対応する先読み機構１０１３によるプリフェッチ対象のアドレス範囲の開始位置となる開始アドレス５０１を記憶している。この開始アドレス５０１は、バスアドレスに準じたアドレス値である。
【００４５】
サイズレジスタ１１２２は、対応する先読み機構１０１３によるプリフェッチ対象のアドレス範囲の大きさであるサイズ５０２を記憶している。
【００４６】
範囲比較部１１２３は、システムバス（システムバス２０に相当するもの）から入力される現在のバスアドレス５００と、開始アドレスレジスタ１１２１が記憶する開始アドレス５０１、サイズレジスタ１１２２が記憶するサイズ５０２に基づいて、現在のバスアドレス５００がプリフェッチ対象のアドレス範囲内にあるか否かを判断し、プリフェッチ対象のアドレス範囲内にあると判断した場合に、識別信号を出力する。この判断は、バスアドレス５００が、開始アドレス５０１の値以上、かつ、開始アドレス５０１にサイズ５０２を加えた値以下の場合に、プリフェッチ対象のアドレス範囲内にあるとすることで行う。
【００４７】
また、範囲比較部１１２３が出力する識別信号は、スレーブ制御部（スレーブ制御部１１に相当のもの）に入力されるとともに、当該スレーブ制御部を介して先読み機構１０１３に通知され、先読み機構１０１３を動作させる。
【００４８】
一方、先読み機構１０１３は、開始アドレスレジスタ１１３１と、開始アドレスレジスタ１１３２、減算器１１３３、加算器１１３４を具備して構成される。
【００４９】
開始アドレスレジスタ１１３１は、プリフェッチ対象のアドレス範囲の開始位置となる開始アドレス５０３を記憶している。この開始アドレス５０３は、開始アドレス５０１と同じ値である。
【００５０】
開始アドレスレジスタ１１３２は、プリフェッチ対象のアドレス範囲の開始位置となる開始アドレス５０４を記憶している。この開始アドレス５０４は、実メモリ（メモリ装置４０に相当のもの）のアドレスに準じたアドレス値である。
【００５１】
減算器１１３３は、システムバス（システムバス２０に相当するもの）からスレーブ制御部（スレーブ制御部１１に相当のもの）を介して入力される現在のバスアドレス５００の値から、開始アドレスレジスタ１１３１が記憶している開始アドレス５０３の値を減じ、オフセットアドレス５０５を算出する。
【００５２】
加算器１１３４は、開始アドレスレジスタ１１３２が記憶している実メモリ上の開始アドレス５０４の値に、減算器１１３３が算出したオフセットアドレス５０５の値を加え、実メモリアドレス５０６を算出する。
【００５３】
この加算器１１３４が算出した実メモリアドレス５０６は、バスアドレス５００を変換したものとなり、この構成により、プリフェッチ対象として指定するアドレス範囲や現在アクセスすべきアドレスを、システムメモリと１対１にマッピングする必要がなくなり、先読み機構１０１３毎に、実メモリ上の任意のアドレスをマッピングすることが可能となる。これにより、実メモリ上にプリフェッチ対象として必要以上のアドレス範囲を確保する必要がなくなり、実メモリの使用上のアドレス制限をなくすこともできる。
【００５４】
この構成を画像形成装置に適用した場合、Ｙ、Ｍ、Ｃ、Ｋの各色で３２ＭＢのバッファが必要であれば、システムバス上の空間と実メモリ上の空間とを図３に示すようにマッピングすることができる。
【実施例２】
【００５５】
図４は、実施例２における先読み機構識別部および先読み機構の機能的な構成を示すブロック図である。なお、同図に示す先読み機構識別部２０１２および先読み機構２０１３は、それぞれ、図１に示した先読み機構識別部１２と先読み機構１３に相当するものである。
【００５６】
同図に示すように、先読み機構識別部２０１２は、開始アドレスレジスタ２１２１と、終了アドレスレジスタ２１２２、範囲比較部２１２３を具備して構成される。ここに示した開始アドレスレジスタ２１２１、終了アドレスレジスタ２１２２、範囲比較部２１２３は、それぞれ、１つの先読み機構２０１３に対応するもので、実際には、先読み機構２０１３の数に応じた数の開始アドレスレジスタ２１２１、終了アドレスレジスタ２１２２、範囲比較部２１２３が先読み機構識別部２０１２に配されている。
【００５７】
開始アドレスレジスタ２１２１は、対応する先読み機構２０１３によるプリフェッチ対象のアドレス範囲の開始位置となる開始アドレス６０１を記憶している。この開始アドレス６０１は、バスアドレスに準じたアドレス値である。
【００５８】
終了アドレスレジスタ２１２２は、対応する先読み機構２０１３によるプリフェッチ対象のアドレス範囲の終了位置となる終了アドレス６０２を記憶している。この終了アドレス６０２は、バスアドレスに準じたアドレス値である。
【００５９】
範囲比較部２１２３は、システムバス（システムバス２０に相当するもの）から入力される現在のバスアドレス６００と、開始アドレスレジスタ２１２１が記憶する開始アドレス６０１、終了アドレスレジスタ２１２２が記憶する終了アドレス６０２に基づいて、現在のバスアドレス６００がプリフェッチ対象のアドレス範囲内にあるか否かを判断し、プリフェッチ対象のアドレス範囲内にあると判断した場合に、識別信号を出力する。この判断は、バスアドレス６００が、開始アドレス６０１の値以上、かつ、終了アドレス６０２の値以下の場合に、プリフェッチ対象のアドレス範囲内にあるとすることで行う。
【００６０】
また、範囲比較部２１２３が出力する識別信号は、スレーブ制御部（スレーブ制御部１１に相当のもの）に入力されるとともに、当該スレーブ制御部を介して先読み機構２０１３に通知され、先読み機構２０１３を動作させる。
【００６１】
一方、先読み機構２０１３は、開始アドレスレジスタ２１３１と、開始アドレスレジスタ２１３２、減算器２１３３、加算器２１３４を具備して構成される。
【００６２】
開始アドレスレジスタ２１３１は、プリフェッチ対象のアドレス範囲の開始位置となる開始アドレス６０３を記憶している。この開始アドレス６０３は、開始アドレス６０１と同じ値である。
【００６３】
開始アドレスレジスタ２１３２は、プリフェッチ対象のアドレス範囲の開始位置となる開始アドレス６０４を記憶している。この開始アドレス６０４は、実メモリ（メモリ装置４０に相当のもの）のアドレスに準じたアドレス値である。
【００６４】
減算器２１３３は、システムバス（システムバス２０に相当するもの）からスレーブ制御部（スレーブ制御部１１に相当のもの）を介して入力される現在のバスアドレス６００の値から、開始アドレスレジスタ２１３１が記憶している開始アドレス６０３の値を減じ、オフセットアドレス６０５を算出する。
【００６５】
加算器２１３４は、開始アドレスレジスタ２１３２が記憶している実メモリ上の開始アドレス６０４の値に、減算器２１３３が算出したオフセットアドレス６０５の値を加え、実メモリアドレス６０６を算出する。
【００６６】
この加算器２１３４が算出した実メモリアドレス６０６は、バスアドレス６００を変換したものとなり、この構成により、プリフェッチ対象として指定するアドレス範囲や現在アクセスすべきアドレスを、システムメモリと１対１にマッピングする必要がなくなり、先読み機構２０１３毎に、実メモリ上の任意のアドレスをマッピングすることが可能となる。これにより、実メモリ上にプリフェッチ対象として必要以上のアドレス範囲を確保する必要がなくなり、実メモリの使用上のアドレス制限をなくすこともできる。
【００６７】
この構成を画像形成装置に適用した場合、Ｙ、Ｍ、Ｃ、Ｋの各色で３２ＭＢのバッファが必要であれば、実施例１の構成と同様に、システムバス上の空間と実メモリ上の空間とを図３に示すようにマッピングすることができる。
【実施例３】
【００６８】
図５は、実施例３における先読み機構識別部および先読み機構の機能的な構成を示すブロック図である。なお、同図に示す先読み機構識別部３０１２および先読み機構３０１３は、それぞれ、図１に示した先読み機構識別部１２と先読み機構１３に相当するものである。
【００６９】
同図に示すように、先読み機構識別部３０１２は、開始アドレスレジスタ３１２１と、サイズレジスタ３１２２、範囲比較部３１２３を具備して構成される。ここに示した開始アドレスレジスタ３１２１、サイズレジスタ３１２２、範囲比較部３１２３は、それぞれ、１つの先読み機構３０１３に対応するもので、実際には、先読み機構３０１３の数に応じた数の開始アドレスレジスタ３１２１、サイズレジスタ３１２２、範囲比較部３１２３が先読み機構識別部３０１２に配されている。
【００７０】
開始アドレスレジスタ３１２１は、対応する先読み機構３０１３によるプリフェッチ対象のアドレス範囲の開始位置となる開始アドレス７０１を記憶している。この開始アドレス７０１は、バスアドレスに準じたアドレス値である。
【００７１】
サイズレジスタ３１２２は、対応する先読み機構３０１３によるプリフェッチ対象のアドレス範囲の大きさであるサイズ７０２を記憶している。
【００７２】
範囲比較部３１２３は、システムバス（システムバス２０に相当するもの）から入力される現在のバスアドレス７００と、開始アドレスレジスタ３１２１が記憶する開始アドレス７０１、サイズレジスタ３１２２が記憶するサイズ７０２に基づいて、現在のバスアドレス７００がプリフェッチ対象のアドレス範囲内にあるか否かを判断し、プリフェッチ対象のアドレス範囲内にあると判断した場合に、識別信号を出力する。この判断は、バスアドレス７００が、開始アドレス７０１の値以上、かつ、開始アドレス７０１にサイズ７０２を加えた値以下の場合に、プリフェッチ対象のアドレス範囲内にあるとすることで行う。
【００７３】
また、範囲比較部３１２３が出力する識別信号は、スレーブ制御部（スレーブ制御部１１に相当のもの）に入力されるとともに、当該スレーブ制御部を介して先読み機構３０１３に通知され、先読み機構３０１３を動作させる。
【００７４】
一方、先読み機構３０１３は、ＭＭＵ（Memory Management Unit）３１３１を具備して構成される。ＭＭＵ３１３１は、メモリのマッピング等を行う汎用のハードウェアであり、システムバス（システムバス２０に相当するもの）からスレーブ制御部（スレーブ制御部１１に相当のもの）を介して入力される現在のバスアドレス７００の値を実メモリアドレス７０３に変換する。
【００７５】
この構成により、プリフェッチ対象として指定するアドレス範囲や現在アクセスすべきアドレスを、システムメモリと１対１にマッピングする必要がなくなり、先読み機構３０１３毎に、実メモリ上の任意のアドレスをマッピングすることが可能となる。これにより、実メモリ上にプリフェッチ対象として必要以上のアドレス範囲を確保する必要がなくなり、実メモリの使用上のアドレス制限をなくすこともできる。
【００７６】
この構成を画像形成装置に適用した場合、Ｙ、Ｍ、Ｃ、Ｋの各色で３２ＭＢのバッファが必要であれば、システムバス上の空間と実メモリ上の空間とを図６に示すようにマッピングすることができ、実施例１や実施例２の場合と比較し、実メモリ上に連続空間を要することがないといった利点が加わることとなる。
【００７７】
例えば、実施例１および実施例２の場合は、Ｙ色として３２ＭＢのバッファが必要であれば、実メモリにおいては、その先頭アドレスを任意とすることができるが、空間としては、３２ＭＢの連続空間が必要となる。一方、実施例３の構成では、同様の条件下において、４ＫＢ毎の小空間を８０００個利用して、バス上の３２ＭＢに割り当てることが可能となる。
【００７８】
なお、実施例３の構成においては、先読み機構識別部３０１２を、実施例１の先読み機構識別部１０１２と同様に、開始アドレス７０１とサイズ７０２によりプリフェッチ対象のアドレス範囲の判定を行っているが、実施例２の先読み機構識別部２０１２と同様に、開始アドレスと終了アドレスによりプリフェッチ対象のアドレス範囲の判定を行うようにすることもできる。
【図面の簡単な説明】
【００７９】
【図１】本発明を適用したデータ転送装置の概略構成を示すブロック図である。
【図２】実施例１における先読み機構識別部および先読み機構の機能的な構成を示すブロック図である。
【図３】実施例１の構成によるシステムバス上の空間と実メモリ上の空間とのマッピング例を示した図である。
【図４】実施例２における先読み機構識別部および先読み機構の機能的な構成を示すブロック図である。
【図５】実施例３における先読み機構識別部および先読み機構の機能的な構成を示すブロック図である。
【図６】実施例３の構成によるシステムバス上の空間と実メモリ上の空間とのマッピング例を示した図である。
【図７】従来の構成で実メモリの空間を各色毎に別の空間とした場合のシステムバス上の空間と実メモリ上の空間とのマッピング例を示した図である。
【図８】従来の構成で各色を同一空間に定義した場合のシステムバス上の空間と実メモリ上の空間とのマッピング例を示した図である。
【符号の説明】
【００８０】
１０    データ転送装置
１１    スレーブ制御部
１２    先読み機構識別部
１３、１３−１〜１３−４    先読み機構
１４    先読み手法指定部
１５    調停部
１６    メモリ制御部
２０    システムバス
３０、３０−１〜３０−４    入出力デバイス
４０    メモリ装置
５００    バスアドレス
５０１    開始アドレス
５０２    サイズ
５０３    開始アドレス
５０４    開始アドレス
５０５    オフセットアドレス
５０６    実メモリアドレス
６００    バスアドレス
６０１    開始アドレス
６０２    終了アドレス
６０３    開始アドレス
６０４    開始アドレス
６０５    オフセットアドレス
６０６    実メモリアドレス
７００    バスアドレス
７０１    開始アドレス
７０２    サイズ
７０３    実メモリアドレス
１０１２    先読み機構識別部
１０１３    先読み機構
１１２１    開始アドレスレジスタ
１１２２    サイズレジスタ
１１２３    範囲比較部
１１３１    開始アドレスレジスタ
１１３２    開始アドレスレジスタ
１１３３    減算器
１１３４    加算器
２０１２    先読み機構識別部
２０１３    先読み機構
２１２１    開始アドレスレジスタ
２１２２    終了アドレスレジスタ
２１２３    範囲比較部
２１３１    開始アドレスレジスタ
２１３２    開始アドレスレジスタ
２１３３    減算器
２１３４    加算器
３０１２    先読み機構識別部
３０１３    先読み機構
３１２１    開始アドレスレジスタ
３１２２    サイズレジスタ
３１２３    範囲比較部
３１３１    ＭＭＵ
【図１】
2006072473.tif 000003
【図２】
2006072473.tif 000004
【図３】
2006072473.tif 000005
【図４】
2006072473.tif 000006
【図５】
2006072473.tif 000007
【図６】
2006072473.tif 000008
【図７】
2006072473.tif 000009
【図８】
2006072473.tif 000010