JP2007094579A - メモリ制御装置 - Google Patents
メモリ制御装置 Download PDFInfo
- Publication number
- JP2007094579A JP2007094579A JP2005280788A JP2005280788A JP2007094579A JP 2007094579 A JP2007094579 A JP 2007094579A JP 2005280788 A JP2005280788 A JP 2005280788A JP 2005280788 A JP2005280788 A JP 2005280788A JP 2007094579 A JP2007094579 A JP 2007094579A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- read
- stored
- storage means
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】 メモリアクセスの際の特定の条件において、バス利用の優先権を制御して選択することにより、安定した処理を行うメモリ制御装置を提供する。
【解決手段】
PCIバスやホストバスを介してメモリに書き込みを行うデータを一時的に保存するライトバッファと、メモリからリードしたデータを一時的に保存するリードバッファと、リードバッファに保存したデータをホストバスを介して一時的に保存する残量検出用メモリを有し、残量検出用バッファのデータの残量を監視し、予め設定した残量値と残量を比較し、比較結果とリード要求信号とライト要求信号に基づいて、メモリとライトバッファとリードバッファへのアクセスの優先度を遷移させる。
【選択図】 図1
【解決手段】
PCIバスやホストバスを介してメモリに書き込みを行うデータを一時的に保存するライトバッファと、メモリからリードしたデータを一時的に保存するリードバッファと、リードバッファに保存したデータをホストバスを介して一時的に保存する残量検出用メモリを有し、残量検出用バッファのデータの残量を監視し、予め設定した残量値と残量を比較し、比較結果とリード要求信号とライト要求信号に基づいて、メモリとライトバッファとリードバッファへのアクセスの優先度を遷移させる。
【選択図】 図1
Description
本発明は、プリンタ機能を有する複合印刷機(MFP:マルチファンクションプリンタ)等に使用するメモリ制御装置に関する。
最近、印刷機能にファクシミリ機能や複写機能等を付加した複合印刷機が広く市販されている。このような複合印刷機は複数の機能を単一のメモリやCPUを使用して実現できるため、極めて有利である。
例えば、スキャナで読み取ったデータをプリンタ出力する場合、スキャナから読み取った1画面分の画像データを一旦画像メモリに展開し、画像メモリからデータを順次読み出して印刷出力する。また、複合印刷機に接続されたパーソナルコンピュータ等のホスト機器から転送される画像データを、対応するインターフェースを介してメモリに展開し、同様に画像メモリからデータを順次読み出して印刷出力する。
一方、今日スキャナやプリンタ機能が高速化し、またライトバッファやリードキャッシュ等の技術により、それぞれの瞬間転送レートよりメモリアクセスが遅れる場合がある。この為、メモリに対するライトアクセスとリードアクセスが競合する機会も多くなり、適切なアービトレーションが要求される。
しかし、ライトアクセスを優先すれば、印字ヘッドヘのデータ転送が遅れる。例えば、印字ムラを避けるため一定速度で動作する必要がある場合、データの準備が間に合わず、データの取りこぼしによる印字不良が発生する。一方、リードアクセスを優先すれば、例えばスキャナからメモリへのデータ書き込みが滞ることになる。特に、1ラインスキャンする毎にデータを送出するタイプのスキャナの場合、データ読み取りを待たせることになり、スキャナをスムーズに駆動することができない。
この点、特許文献1によれば、メモリに対するライト回数とリード回数を比較し、優先度を変更する提案がされている。また、特許文献2によれば、リフレッシュ未実行回数によってリフレッシュ及びメモリアクセスの優先度を変更する提案もなされている。さらに、関連する発明として、特許文献3にはメモリコストを下げる発明も開示されている。
特開2001−249770号公報
特開平11−219585号公報
特開平05−344298号公報
しかしながら、特許文献1及び2は、アクセスの優先度を変更する方法であり、優先度の判断とリードの必要性とは直接関係しない為、必ずしもアクセス効率を改善するものではない。
また、特許文献3はメモリコストを下げる目的であり、スキャナ動作を優先させる目的には適さない。また、複合印刷機に内蔵されるプリンタがページプリンタのように一定速度でデータをリードする必要がある場合については説明されていない。
本発明は上記のような実情に鑑みてなされたものであり、メモリアクセスの際の特定の条件において、バス利用の優先権を制御して選択することにより、スキャナをスムーズに駆動できると共に、一定速度で印刷処理を行うことができるメモリ制御装置を提供するものである。
上記課題は本発明によれば、データを記憶する記憶手段と、該記憶手段に書き込むデータを一時保存する第1の保存手段と、前記記憶手段から読み出すデータを一時保存する第2の保存手段と、該第2の保存手段から読み出したデータを印刷部に送信する際一時データを保管するデータ保管手段と、該データ保管手段に保管するデータが所定量以上保管されている時、前記記憶手段へのデータの書き込み処理を優先して行わせ、前記データ保管手段に保管するデータが所定量以下の時、前記記憶手段からのデータの読み出し処理を優先して行わせる制御手段とを有するメモリ制御装置を提供することによって達成できる。
例えば、データが所定量以上、データ保管手段に保管されている時、データのリード要求とライト要求が競合すれば、ライト要求を優先して実行し、記憶手段へのデータの書き込み処理を優先する。一方、データが所定量以下時、リード要求とライト要求が競合すれば、リード要求を優先して実行し、記憶手段からデータを読み出し、データ保管手段にデータを送信し、データ保管手段に保管するデータ量を確保し、印刷処理を一定速度で行うことを可能とする。
また、前記記憶手段に記憶するデータは画像データであり、スキャナ装置から読み取られた画像データを前記第1の保存手段に保存した後、前記記憶手段に記憶し、該記憶手段に記憶された画像データを、前記第2の保存手段に保存した後、前記データ保管手段に保管し、該データ保管手段に保管された画像データは印刷部の印字ヘッドに供給する。
このように構成することにより、スキャナ装置を有し、該スキャナ装置から画像データを読み出して印刷部によって印刷処理を行う複合印刷機に本発明のメモリ制御装置を適用することができる。
また、前記制御手段は、前記データ保管手段に保管するデータが所定量以上の時、前記記憶手段からのデータの読み出し処理をリトライ指示によってキャンセルさせ、前記データ保管手段に保管するデータが所定量以下の時、前記記憶手段へのデータの書き込み処理をリトライ指示によってキャンセルさせる構成である。
このように構成することによっても、スキャナ等の読み取り装置が行う原稿データの読み取り処理をスムーズに行い、一定速度で読み取り装置を駆動すると共に、データ保管手段に保管するデータ量を常に確保し、一定速度で用紙への印刷処理を行うことができる。
また、前記データ読み出し処理の際、データ読み出し指示が行われた後、実際にデータが読み出されるまでの時間をリトライ回数で計数し、該計数結果に基づいて、PCIバスを他のデバイスに開放する構成である。
このように構成することにより、記憶手段からデータを読み出す際、PCIバスを有効利用することができる。
また、記憶手段を含む複数のデバイスが接続されたPCIバスと、リトライ指示が連続して行われる回数をPCIバスに接続されたデバイス毎に計数する計数手段と、該計数結果が予め設定された設定値以上である時、PCIバスの使用権を前記リトライ回数が設定値以上であるデバイスに変更する制御手段とを有するメモリ制御装置を提供することによって達成できる。
また、記憶手段を含む複数のデバイスが接続されたPCIバスと、リトライ指示が連続して行われる回数をPCIバスに接続されたデバイス毎に計数する計数手段と、該計数結果が予め設定された設定値以上である時、PCIバスの使用権を前記リトライ回数が設定値以上であるデバイスに変更する制御手段とを有するメモリ制御装置を提供することによって達成できる。
例えば、PCIバスに接続されるデバイスとして、スキャナや、ビデオ転送コントローラ、LANインターフェース等があり、例えば制御手段であるバスアービタはそれぞれのデバイスのリトライ回数を計数し、該計数結果が予め設定された設定値以上である時、PCIバスの使用権を上記設定値以上のリトライ回数のデバイスに移す。このように構成することにより、PCIバスに接続されたデバイスを効率よく駆動することができ、記憶手段に記憶されたデータの印刷処理も一定速度で行うことが可能となる。
本発明によれば、記憶手段にデータを書き込む際、スキャナ等の原稿読み取り装置をスムーズに駆動することができる。また、記憶手段からデータを読み出す際、データを取りこぼすことなく印刷部に送り、印刷部を一定速度で駆動することができる。
また、リトライ連続回数が一定値以上になると、PCIバスに接続されたデバイスに対して優先権を与え、デバイス全体を効率よく駆動することができる。したがって、記憶手段からデータを読み出す際、PCIバスを有効利用することができる。
以下図面に基づいて、本発明の実施形態について詳細を説明する。
(実施形態1)
図1はスキャナから原稿データを読み取り、原稿データに基づいて印刷出力を行う複合印刷機の一部の回路を示す回路ブロック図である。尚、同図は本例のメモリ制御装置の説明上必要の回路を示すものであり、複合印刷機として有する、例えばファクシミリ機能や通信機能等の構成は省略している。
(実施形態1)
図1はスキャナから原稿データを読み取り、原稿データに基づいて印刷出力を行う複合印刷機の一部の回路を示す回路ブロック図である。尚、同図は本例のメモリ制御装置の説明上必要の回路を示すものであり、複合印刷機として有する、例えばファクシミリ機能や通信機能等の構成は省略している。
同図に示すように、本例のメモリ制御装置は記憶手段であるメモリ1、メモリアクセスコントローラ2、第2の保存手段であるリードバッファ3、CPU4、ビデオ転送コントローラ5、第1の保存手段であるライトバッファ6、データ保管手段であるビデオ用FIFO(First-In First-Out)7、スキャナコントローラ8、スキャナ9、及びプリンタエンジン10で構成されている。
メモリ1は、例えばSDRAM(Synchronous DRAM)で構成され、メモリアクセスコントローラ2がバーストアクセスを行うことにより、効率良くデータのリード、ライトが可能である。また、リードバッファ3、及びライトバッファ6とデータの遣り取りを行うバスは、例えば、32ビット幅で8ワード単位としている。すなわち、64バイト単位でアクセスを可能にしている。
したがって、64バイト幅のリードバッファ3をリード用に設け、リードバッファ3には2段のリードバッファを用意する。そして、リードアクセスがあった場合、メモリアクセスコントローラ2は該当するアドレスのメモリ1の内容をバーストリードし、1段目のリードバッファ3に保存する。
リードバッファ3にデータが貯まるまで、メモリアクセスコントローラ2は、メモリアクセスをしたデバイスを、ウエイト信号やレディー信号により待たせる。そして、リードバッファ3にデータが蓄積されると、リードアクセスしたデバイスビデオ転送コントローラ5は、リードバッファ3のデータをリードする。
一方、ライトバッファ6も64バイトの容量を有し、例えばスキャナ9から読み出されたデータを保存する。すなわち、スキャナコントローラ8からライト要求が行われると、メモリコントローラ2は該当するアドレスを記憶すると共に、データをライトバッファ6に保存する。そして、ライトバッファ6が満杯になりと、メモリアクセスを行ったデバイスを待たせるため、ウエイト信号やレディー信号を出力すると共に、ライトバッファ6の内容をメモリ1に書き込む。
ビデオ転送コントローラ5は、ビデオ用FIFO7に一定量以下の画像データが保管されている時、メモリ1に対するリードアクセスとライトアクセスが競合すると、リードアクセスを優先する。例えば、この処理により、ビデオ用FIFO7にデータを貯える行為が滞ることなく行われ、ビデオ用FIFO7が空になることを避けることができる。
一方、ビデオ転送コントローラ5は、ビデオ用FIFO7に一定量以上の画像データが保管されている時、メモリ1に対するリードアクセスとライトアクセスが競合すると、ライト処理を優先する。これにより、メモリ1にデータを書き込むスキャナコントローラ8及びスキャナ9の動作をできる限りスムーズに行う。
次に、図2は上記メモリアクセスコントローラ2の動作シーケンスを示す。メモリアクセスコントローラ2は、メモリ1からリードバッファ3へのデータ読み出し制御、及びライトバッファ6からメモリ1へのデータ書き込み制御を行う。
先ず、待機状態からステップ(以下、Sで示す)1への遷移条件について説明する。処理(S1)はメモリ1からデータをリードバッファ3に読み出す処理であり、この処理への移行は、アドレスが不一致であり、ビデオ用FIFO7に貯えられるデータ残量が所定量より多く、リード要求があり、ライト要求がない場合である。また、ビデオ用FIFO7に貯えられたデータ残量が所定の量より少なく、リード要求がある場合である。この場合、メモリ1からデータを読み出し、リードバッファ3に保存する。
また、処理(S2)はリードバッファ3に保存したデータをビデオ用FIFO7に出力する処理であり、この移行条件は、アドレスが一致し、ビデオ用FIFO7に貯えられるデータ残量が多いとき、リード要求があり、ライト要求がない場合である。また、ビデオ用FIFO7に貯えられたデータ残量が少ない場合で、リード要求がある場合である。この場合、リードバッファ3のデータを読み出し、ビデオ用FIFO7に出力する。
また、処理(S3)はスキャナ9から読み出したデータをライトバッファ6に書き込む処理であり、この移行条件は、ビデオ用FIFO7に貯えられたデータ残量が少なく、リード要求がなく、ライト要求がある場合である。また、ビデオ用FIFO7に貯えられたデータ残量が多く、ライト要求がある場合である。この場合、スキャナ9から読み出したデータをライトバッファ6に書き込む。
さらに、処理(S4)はライトバッファ6に保存されたデータをメモリ1に書き込む処理であり、この移行条件は、アドレスが異なる場合、又はライトバッファ6がデータで満たされている場合である。この場合、ライトバッファ6に保存されたデータをメモリ1に書き込む。
次に、本例の処理動作を図3及び図4に示すタイムチャートに従って説明する。
尚、図3はスキャナとビデオ転送が競合する時のタイムチャートを示し、図4はスキャナとビデオ転送が競合しない時のタイムチャートを示す。また、図3及び図4に示す波形の意味は以下の通りである。
尚、図3はスキャナとビデオ転送が競合する時のタイムチャートを示し、図4はスキャナとビデオ転送が競合しない時のタイムチャートを示す。また、図3及び図4に示す波形の意味は以下の通りである。
先ず、(1)はスキャナコントローラ8からのライト要求を示す信号であり、スキャナ9が読み出したデータを、ライトバッファ6に保存する際出力される信号である。尚、(1)の波形はハイアクティブである。
また、(2)はスキャナ許可を示す信号であり、スキャナコントローラ8経由で転送されるデータのライトバッファ6への書き込み許可を示す信号である。
また、(3)はビデオ転送部からのリード要求を示し、ビデオ転送部(具体的には、ビデオ転送コントローラ5とビデオ用FIFO7)からメモリ1に読み込み許可を求める信号である。また、(4)はビデオ転送許可を示し、メモリ1からリードバッファ3にデータの読み込みを許可する信号である。
また、(3)はビデオ転送部からのリード要求を示し、ビデオ転送部(具体的には、ビデオ転送コントローラ5とビデオ用FIFO7)からメモリ1に読み込み許可を求める信号である。また、(4)はビデオ転送許可を示し、メモリ1からリードバッファ3にデータの読み込みを許可する信号である。
また、(5)はホストバスの使用権を示し、(6)はライトバッファ6に保存されるデータを示す。さらに、(7)はリードバッファ3に保存されるデータを示し、(8)はメモリ1のアドレス指示(SDRAM−RAS(Row Address Strobe Signal))を示し、(9)はメモリ1のアドレス指示(SDRAM−CAS(column address))を示す。
また、(10)はメモリ1に記憶されるデータを示し、(11)はFIFOの残量を示し、(12)はリードバッファ3に保存されるデータのアドレスを示し、(13)はライトバッファ6に保存されるデータのアドレスを示す。
以下、図3に示す処理をタイムチャートに従って処理動作を説明する。先ず、同図に示すスキャナ優先範囲(ホストバスをスキャナの処理で使用する範囲)は、ビデオ用FIFO7のデータ残量が多く、ライト要求が発生した範囲である。この場合、スキャナコントローラ8からライト要求がT1、T2、・・・のタイミングで出力され、スキャナ許可がハイアクティブになる毎にホストバスの使用権がスキャナ側に開放される。
また、上記ライト要求により、ライトバッファ6にはアドレス「A0100」、「A0140」、「A0180」、「A01C0」、「A0200」、「A0240」に対応するデータ(W1〜W6)が書き込まれる。例えば、タイミングT1に対応して「A0100」番地のデータW1がスキャナ9から転送されライトバッファ6に保存される。また、タイミングT2に対応して「A0140」番地のデータW2がライトバッファ6に保存され、以下タイミングT3で「A0180」番地のデータW3、タイミングT4で「A01C0」番地のデータW4、タイミングT5で「A0200」番地のデータW5、タイミングT6で「A0240」番地のデータW6がそれぞれライトバッファ6に保存される。
またこの間、ライトバッファ6が満杯(フル)になると(図2に示すS2の処理を実行するための条件)、メモリアクセスを行ったデバイス(スキャナ9)を待たせるため、ウエイト信号やレディー信号を出力すると共に、ライトバッファ6に保存されたデータをメモリ1に書き込む。すなわち、ライトバッファ6に保存されたデータW1〜W6を、メモリ1に書き込む。この時、前述のSDRAM−RASとSDRAM−CASが、アクティブ(ローアクティブ)となり(T8のタイミングの時)、W1+W2のデータをメモリ1に書き込む。以下、タイミングT9においてW3+W4のデータをメモリ1に書き込み、タイミングT10においてW5+W6のデータをメモリ1に書き込む。その後、前述の待機状態に戻る。
一方、上記スキャナ9で読み取ったデータの書き込み処理を繰り返す間、ビデオ用FIFO7に保管されたデータはプリンタエンジン側に順次読み出され、ビデオ用FIFO7に保管されるデータ残量が少なくなると、メモリアクセスコントローラ2の制御はビデオ転送を優先する処理に移行する(図3に示すビデオ転送優先範囲)。
先ず、T11のタイミングで、アドレス「A0000」を先頭アドレスとしてR1とR2のデータをメモリ1から読み出し、リードバッファ3に保存する。このデータR1、R2は、T12、T13のタイミングでビデオ用FIFO7に転送される。
次に、T16、T17のタイミングで、「A0080」のデータR3と「A00C0」のデータR4を、リードバッファ3に格納する。そして、T14、T15のタイミングで、R3、R4のデータをビデオ用FIFO7に転送する。その後、前述の待機状態に戻る。
以上のように、メリモリアクセスコントローラ2は、ビデオ転送用FIFO7のデータ残量が多い時、メモリ1へのデータ書き込みを優先し、スキャナ9からデータの読み取り処理を行い、スムーズにスキャナ9を駆動する。一方、ビデオ転送用FIFO7のデータ残量が少なくなると、メモリ1からのデータ読み出しを優先的させ、データの取りこぼしを無くし、プリンタエンジン10への安定したデータ供給を行う。
一方、ライト要求とリード要求が競合しないとき、図4に示す処理が行われる。この場合、前述と同様、ライト要求が発生すると(図2に示すS3の条件)、スキャナコントローラ8からのライト要求を示すT41、T42、・・・のタイミングに従って、アドレス「A0100」、「A0140」、「A0180」、「A01C0」、「A0200」、「A0240」のデータ(W41〜W46)がライトバッファ6に保存される。すなわち、タイミングT41において「A0100」番地のデータW41がスキャナから転送され、タイミングT42において「A0140」番地のデータW42がスキャナから転送され、以下タイミングT43で「A0180」番地のデータW43が転送され、タイミングT44で「A01C0」番地のデータW44が転送され、タイミングT45で「A0200」番地のデータW45が転送され、タイミングT46で「A0240」番地のデータW46が転送され、ライトバッファ6に保存される。
その後、ライトバッファ6が満杯(フル)になると、ライトバッファ6に保存されたデータをメモリ1に書き込む。すなわち、ライトバッファ6に書き込まれたデータW41〜W46を、メモリ1に書き込む。
次に、ビデオ転送優先の範囲では、T411のタイミングで、アドレス「A0000」を先頭アドレスとしてデータR41とR42をメモリ1から読み出し、リードバッファ3に保存する。そして、ビデオ転送許可により、リードバッファ3からT412、T413のタイミングでデータR1、R2をビデオ用FIFO7に転送する。以下、T416、T417のタイミングで、「A0080」のデータR3、「A00C0」のデータR44をメモリ1からリードバッファ3に保存し、更にT414、T415のタイミングで、R43、R44のデータをビデオ用FIFO7に転送する。その後、S21待機状態に遷移する。
尚、上記実施形態1では、ビデオ用FIFO7のデータ残量を「多い」、「少ない」の2種類で判定したが、ビデオ用FIFO7の残量を示す信号を複数用意し、例えば残量レベル毎に(レベル1〜n毎に)、リードまたはライトを待機させる割合を調節する構成としてもよい。この場合、ビデオ用FIFO7の残量が徐々に減っていく場合、ライト2回ごとにリードを1回優先されるなど、段階的に優先度を変更することができ、より効率の良い処理を行うことが可能になる。
さらに、実施形態1では、ライトバッファ6がフル、またはライトアドレスが異なると、ライトバッファ6のデータをメモリ1に書き込むようにしたが、メモリ1のアイドル時間を検出してデータを書き込む構成としてもよい。また、ライトバッファ6にデータを書き込む毎にライトバッファ6のデータをメモリ1に書き込む構成としてもよい。
(実施形態2)
次に、本発明の実施形態2について説明する。
(実施形態2)
次に、本発明の実施形態2について説明する。
図5は実施形態2の構成を示す図である。本例ではスキャナコントローラ8、ビデオ用FIFO7、及びPCI−メモリコントローラ11はPCIバスに接続されており、メモリ1のアクセスはPCIバスを経由する。
同図において、PCI−メモリコントローラ11はライトバッファ6、及びリードバッファ3に接続されている。また、スキャナコントローラ8がメモリ1に対して、データを書き込むためにライト要求を行うとき、スキャナコントローラ8はライト要求するバスマスタとなる。また、ビデオ転送コントローラ5はメモリ1に対してリード要求を行うとき、ビデオ転送コントローラ5はリード要求するバスマスタとなる。尚、このビデオ用FIFO7は、データ量が一定以上であるかを検出する機能を有する。
ビデオ用FIFO7に保管されたデータが一定量未満の時、メモリ1に対するリードアクセスとライトアクセスとが競合すると、リードを優先させる為、ライトを要求するバスマスタ、すなわちスキャナ9に対してリトライを発行する。
図6に、メモリ制御に関するPCI−メモリコントローラ11の動作シーケンスを示す。以下、各シーケンスを説明する。尚、上記シーケンスにおいて、リトライ処理以外の処理については前述の図2と同様であり、説明を省略する。
同図に示すように、リトライ処理はビデオ用FIFO7のデータ残量が少なく、直前リード要求がなく、ライト要求があればリトライ処理を行う。また、ビデオ用FIFO7のデータ残量が多く、リード要求があり、かつ直前ライト要求があればリトライ処理を行う。さらに、ビデオ用FIFO7のデータ残量が少なく、直前リード要求があり、かつライト要求があればリトライ処理を行う。
次に、本例の処理動作を説明する。
図7はスキャナとビデオ転送が競合した際、スキャナ処理を優先するタイムチャートを示し、図8はスキャナとビデオ転送が競合した際、ビデオ転送を優先する処理を示すタイムチャートである。
図7はスキャナとビデオ転送が競合した際、スキャナ処理を優先するタイムチャートを示し、図8はスキャナとビデオ転送が競合した際、ビデオ転送を優先する処理を示すタイムチャートである。
先ず、図7に示すスキャナ優先の場合の処理を説明する。尚、同図に示すスキャナ優先は、前述の条件の中で、ビデオ用FIFO7のデータ残量が多く、リード要求があり、かつ直前ライト要求がある場合である。
この場合、先ずT71のタイミングで、スキャナ9からデータが供給され、PCI−FRAME#がローアクティブとなり、PCI−ADのアドレスフェーズからアドレスデータAD71をPCI−メモリコントローラ11に供給する。
次に、T72のタイミングでデータフェーズのデータW71を連続してライトバッファ6に書き込む。その後、T73に示すタイミングでSDRAM−RAS、及びSDRAM−CASがアクティブとなり、メモリ1にデータW71を書き込む。
次に、T74のタイミングで、PCI−FRAME#がローアクティブとなり、PCI−ADリード要求が発生する。この時、ビデオ用FIFO7のデータ残量が多く、リードの要求は入力するが、リード要求直前に上記ライト要求が存在するため、直ちにリトライ処理を行う(PCI−STOP#がローレベルとなる)。
次に、T75のタイミングで再度PCI−FRAME#がローアクティブとなり、PCI−ADのアドレスフェーズからアドレスデータAD72をPCI−メモリコントローラ11に供給する。そして、上記と同様、SDRAM−RAS、及びSDRAM−CASをアクティブとし、メモリ1にデータW72を書き込む。
以下、上記処理を繰り返すことにより、データW73、W74、・・・がメモリ1に書き込まれる。この間、同図に示すタイミングでリトライ処理が行われる。ここで、本例においては、ライトバッファ6のデータ幅を32ビット、メモリ1のデータ幅を64ビットとし、1回の転送にて、両者とも64バイト分をアクセスしている。
次に、図8のタイムチャートを使用して、ビデオ転送優先時の処理を説明する。尚、この場合、ビデオ用FIFO7のデータ残量が少ない場合である。
先ず、T81のタイミングでPCI−FRAME#はローアクティブとなり、データリードの指示が行われる。この場合、リードアクセスを検知し、PCI−ADのアドレスフェーズからアドレスデータをPCI−メモリコントローラ11に記録する。そして、メモリ1のデータを順次リードバッファ3に保存する。
先ず、T81のタイミングでPCI−FRAME#はローアクティブとなり、データリードの指示が行われる。この場合、リードアクセスを検知し、PCI−ADのアドレスフェーズからアドレスデータをPCI−メモリコントローラ11に記録する。そして、メモリ1のデータを順次リードバッファ3に保存する。
リードバッファ3へのデータ保存は64ビット幅、リードバッファ3からのリードは32ビット幅とする。リードバッファ3のデータが半分(4ダブルワード)、PCI−ADより転送されたら(PCI−ADでは8ワード)、メモリ1にアクセスを開始して、順次リードバッファ3にデータを保存する。
PCI−ADでの転送終了時、リードバッファ3に空きが生じ、その時点で、メモリ1へのアクセスを開始し、順次リードバッファ3にデータを保存する。以下同様に、PCI−AD#に8ワードごとに上記処理を繰り返す。
以上のように、本例はビデオ用FIFO7の残量が多い場合、リードアクセスに対してリトライを発行し、ライトアクセスを優先させスキャナ9の駆動をスムーズに行う。一方、ビデオ用FIFO7の残量が少ない場合、ライトアクセスに対してリトライを発行し、リードアクセスを優先させメモリ1からデータを供給し、データを取りこぼすことなく一定速度でプリンタエンジン10を駆動させる。
尚、上記例ではメモリ1からデータをリードして、リードバッファ3にデータを貯えるまで、単純にTRDY♯を遅らせて、イニシエータを待たせていたが、メモリ1へのアクセスクロックが遅い場合など、メモリアクセスに時間がかかる場合、メモリ1をリードしてからリードバッファ3にデータを貯え終わるまでは、PCIバスを開放させるため、リード要求に対してリトライトで応答してもよい。
(実施形態3)
次に、本発明の実施形態3について説明する。
(実施形態3)
次に、本発明の実施形態3について説明する。
本実施形態3について、全体構成は上記実施形態2と同様であるが、本例は図6に示すAのリトライ処理を説明するものであり、上記尚書き部分の具体的な実施例である。
先ず、本例の動作原理を説明する。最初、適当なメモリエリアをリードする。この時、リトライ処理によってターゲットが応答すると、引き続き同じアドレスをリードする。また、同時に、リトライ回数のカウントを開始する。そして、正常なリードアクセスが行われるまで、リトライサイクルを繰り返す。
先ず、本例の動作原理を説明する。最初、適当なメモリエリアをリードする。この時、リトライ処理によってターゲットが応答すると、引き続き同じアドレスをリードする。また、同時に、リトライ回数のカウントを開始する。そして、正常なリードアクセスが行われるまで、リトライサイクルを繰り返す。
その後、正常なリードアクセスが行われると、前回のアクセスと連続性のある次のアドレスについてリードアクセスを行う。その時にも、リトライ処理での応答があれば計数する。連続リトライ回数はメモリに保存されるので、何度かリード処理を繰り返すと、リトライ回数の平均値を算出でき、連続性のあるアクセス時のリトライ予測回数として保存できる。
さらに、前回のアクセスと連続性がない、例えば数キロバイト以上離れたアドレスにリードアクセスを行う。この時にも、リトライ処理での応答があれば計数処理を行う。そして、前述と同様メモリに保存した値から平均値を算出し、非連続なアドレスでのアクセス時におけるリトライ予測回数として保存する。
図9は、本例の処理を説明するフローチャートである。先ず、他のPCIデバイスとの競合が無いとき、例えばメモリ1にリード要求し、PCIアイドル状態を監視する(ステップ(以下、STで示す)1)。ここで、リトライ応答があると、このリトライを検出し、連続回数をカウンタによりカウントアップする(ST2、ST3)。尚、リトライ処理が発生せず、アクセスを終了する場合、再びアイドル状態の監視に戻る(ST3)。
次に、連続してリトライ指示がある場合、連続回数を計数し、PCIアイドル状態を監視する(ST4)。そして、リトライ検出又はアクセス終了であるか判断し、リトライ指示を検出した場合、再度連続リトライ回数を計数する。一方、アクセス終了指示であれば、計数した連続リトライ回数のデータをメモリ1に記憶する(ST6)。また、カウンタに計数された連続リトライ回数のデータをクリアする(ST7)。
以上の処理により、例えばリードアクセスが行われ、実際にデータが読み出されるまでの時間がリトライ回数の情報として記録することができる。したがって、次に上記リトライ回数をもとに、再びリトライが連続して発生しそうな回数を、図10に示す手順で予測する。
先ず、前述の処理により、リトライが連続して何回発生するのか測定する。例えば、PCIアドレスを変更する毎に、前述の図9に示すシーケンスを動作させ、カウンタのチェックを行う。また、2回目は連続した次のアドレスをアクセスする。そして、図9に示すカウンタのチェックを行う。そして、3回目も連続した次の次のアドレスをアクセスする。そして、図9に示すカウンタのチェックを行う。
この処理を繰り返し、図10に示す「想定した連続アドレスにおけるリトライ回数」を求める(チェックした図9のカウンタ値)。そして、改めて1回目のアクセスを行い、図9のカウンタをチェックする。2回目は全く異なるアドレスをアクセスする。そして、図9のカウンタをチェックする。
さらに、3回目も異なるアドレスをアクセスする。そして、図9のカウンタをチェックする。これを繰り返し、図10に示す「想定した非連続アドレスにおけるリトライ回数」を求める。
先ず、PCIバスに接続されたPCIデバイスが、メモリ1にアクセスを開始する(ST8)。ここで、PCIアクセスを行わない場合、上記処理(ST8)に戻る。一方、リトライが発生すると(ST9がY)、リトライ回数の予想情報を取得する(ST10)。
すなわち、異なるアドレスをリードすると、必ずリトライになる場合、リードデータを用意するのに一定時間かかると判断し、この特性(予想したリトライ回数に対応した値)を記憶しておく。また、例えばリード時に必ず4回リトライすると、この4回分の特性を記憶しておき、リード時に続いて3回のリトライが発生すると考えられるので、リードアクセスを3回分の時間だけ実行せず、他のPCIデバイスのためにPCIバスを開放する。
次に、連続したアドレスか非連続なアドレスかを判定する(ST11)。そして、連続したアドレスであると判断すると、想定する連続したアドレスにおけるリトライ回数に相当する分の時間だけ待機する(ST12)。一方、非連続なアドレスであると判断すると、想定する非連続したアドレスにおけるリトライ回数に相当する分の時間だけ待機する(ST13)。
図11にリトライ期間の長いターゲットに対して、連続したアドレスのアクセスを行った時のタイミングチャートを示す。同図において、T111のタイミングにおいて、PCI−FRAME#のリード要求に基づいてロー信号を出力する。この時、最初のリード要求なので非連続なアドレスである。尚、その後は連続したアドレスでリード要求を行う。
例えば、T111〜T113のタイミングの間、リード処理が4回行われ、非連続なアドレスのシーケンス(図9のフローチャート)に基づいて、リトライ予測回数を4回として保存する。一方、T114〜T116のタイミングの間、及びT117〜T119の間、連続したアドレスのシーケンスにより(図9のフローチャート)に基づいて、リトライ回数を2回として保存する。
図12にリトライ期間の長いターゲットに対して、リトライ回数予測後に、連続したアドレスのアクセスを行った時のタイミングチャートを示す。図11で示した図10のシーケンスにより処理することで、連続アドレスのT115〜T116と、T118〜T119の期間にアイドルサイクルを設けることができるようになり、アイドルサイクルが増えるので、他のPCIデバイスがPCIバスを使用しやすくなる。また、非連続なアドレスのT112〜T113の期間にもアイドルサイクルが設けることができる。
図13にリトライ期間の長いターゲットに対して、非連続なアドレスのアクセスを行った時のタイミングチャートを示す。先ず、T131のタイミングでは、PCI−FRAME#のリード要求のため、ローパルスを出力する。このとき、最初のリード要求なので非連続なアドレスである。T131〜T133の期間では4回行われているので、非連続なアドレスのシーケンス(図9のフローチャート)により、リトライ予測回数を4回として保存する。同様に、T134〜T136の期間でもリトライ予測回数を4回分保存する。
図14にリトライ期間の長いターゲットに対して、リトライ回数予測後に、非連続なアドレスのアクセスを行った時のタイミングチャートを示す。図13で示した図10のシーケンスにより処理することにより、非連続なアドレスのT132〜T133の期間と、T135〜T136の期間に、アイドルサイクルを設けることができるようになり、アイドルサイクルが増え、他のPCIデバイスがPCIバスを使用しやすくなる。
(実施形態4)
次に、本発明の実施形態4について説明する。
(実施形態4)
次に、本発明の実施形態4について説明する。
PCIバスアービタは、各PCIデバイスからPCIバス使用権の要求信号REQ#を受け取り、設定された優先順位に従ってPCIバスの制御権を認めてバスを開放するとき、認めたPCIデバイスに対してGNT♯を出力する、PCIバスの調停を行うものである。
図15に実施形態4のシステム構成を示す。スキャナ9はスキャナコントローラ8や、ビデオ転送コントローラ5はビデオ用FIFO7を、介してPCIバスに接続されており、それらがメモリ1をアクセスするためには、PCIバスを経由する。そして、メモリ1へのアクセスはPCI−メモリコントローラ11を介して行われる。PCI−メモリコントローラ11はライトバッファ6、リードバッファ3と接続される。さらに、PCIバスアービタ12、PCIホストブリッジ13、リトライ検出回路14、及び連続リトライカウンタ15を有する。ホストPCIブリッジ13は、CPUの外部バス等、所謂ホスト側のバスをPCIバスと接続し、相互に通信できるようにする。CPUの外部バスとPCIバスでは、電気的特性からデータ転送のプロトコルや仕様等が大きく異なるため用いられている。
本例のシステムは、基本的には図5と同じであるが以下の点で異なる。すなわち、図5に示す例では、PCIバスに接続されているPCIデバイスのうちのどれか、例えばPCI−メモリコントローラ11に、PCIバスアービタ12が含まれていると想定していた。しかし、本例では、PCIバスアービタ12の存在を明確にするため、独立して表記している。そして、本例のPCIバスアービタ12は、連続したリトライを一定値以上検出すると、他のPCIデバイスでリトライが発生していないことを確認したうえで、そのPCIデバイスのバスマスタに対して優先権を与える構成である。
リトライで止められてしまう例としては、例えばライトはデータを更新する必要があるという理由に基づいて、リードよりもライトを固定優先にしているメモリコントローラが存在するが、このメモリコントローラに接続されたメモリ対して、連続にライトを実行するバスマスタが存在すると、同じメモリをリードしたいバスマスタに対してはリトライとされてしまい、ライトしているバスマスタのアクセスが終了するまで待機せざるを得ない状態になってしまう。もしも、リードするバスマスタが、ページプリンタのビデオ転送コントローラ5だった場合には、データを取りこぼすなどの不具合が発生する。
本例のPCIバスアービタ12によれば、リトライが一定回数以上連続するとそのバスマスタに優先権が与えられるので、リトライの原因となっていた他のバスマスタからのアクセスを中断させることができ、リトライさせられていたバスマスタのアクセスが正常に実行されることができる。
ここで、リトライ検出回路14は、デバイス毎にリトライを検出し、リトライサイクルが発生したときのGNT#により、どのバスマスタがリトライさせられたかを知る。バスマスタの数だけ、連続リトライ回数を管理する連続リトライカウンタ15を用意し、それぞれの連続リトライ回数を加算する。リトライが解消、即ち当該バスマスタが正常アクセスできれば、リトライの連続性は途切れることになり、連続リトライカウンタ15は再度ゼロからスタートする。
PCIバスアービタ12と連続リトライカウンタ15の動作シーケンスを図16に示す。この場合、バスマスタは4つあるものとする。例えば、スキャナ、ビデオ転送、LANインターフェース等に対応する。尚、以下の説明において、便宜上連続リトライカウンタ0〜4とする。
先ず、バスマスタ0がPCIバスアービタ12に対し、PCIバスの使用権を要求するため、REQ0#を発行する(ステップ(以下、STPで示す)1)。このリクエストに対し、PCIバスアービタ12はバスの制御権を認めるためにGNT0#を出力する(STP2)。その時、デバイス0に対応する連続リトライカウンタ0をリセットする。
次に、他のデバイスの連続リトライカウンタを確認し、例えばデバイス1に対応する連続リトライカウンタ1が一定値以上であれば(STP3がY)、処理(STP4)に進む。一方、連続リトライカウンタ1が一定値以下であれば(STP3がN)、判断(STP5)に進み、次のデバイス2に対応する連続リトライカウンタ2が一定値以上でるか判断する。
ここで、連続リトライカウンタ2が一定値以上であれば(STP5がY)、処理(STP6)に進む。一方、連続リトライカウンタ2が一定値以下であれば(STP5がN)、判断(STP7)に進み、次の連続リトライカウンタ3が一定値以上でるか判断する。
以下、同様にして処理を行い(STP8、STP9、・・・)、リトライ連続回数が一定値以上になったら、該当するバスマスタであるPCIデバイスに対して優先権を与える。このように構成することにより、PCIバスアービタ12により、メモリ1にデータをライトするスキャナ9をできる限り速く動作させる一方、印字するプリンタはデータを取りこぼすことなくメモリ1からデータをリードすることができる。
例えば、図17に示すタイムチャートは本例の処理を使用するものである。先ず、T171のタイミングでバスマスタ0がPCI−REQ0#信号をアサート(ローアクティブ)し、PCI−GNT0をローアクティブとし、PCIバスの制御権をバスマスタ0(スキャナ)に設定する。そして、PCI−FRAME#にメモリ1に対するライトアクセスを行う。
次に、T172のタイミングでPCI−REQ1#がアサート(ローアクティブ)になり、PCI−GNT1#にPCIバス制御を行う要求を行うが、T173のタイミングで再びPCI−REQ0#がアサートされる為、PCI−STOP#において、PCI−REQ1#の処理を中断する(リトライを要求する)。例えば、デバイス1(例えば、ビデオ転送)の要求はリトライ処理により待たされる。この時、バスマスタ1用のリトライカウンタ1がこのリトライ(PCI−STOP#のローアクティブ)をカウントする。
続いて、T173とT176で、バスマスタ0のライトアクセスが行われ、T175から始まった、バスマスタ1のライトアクセスは中断される。このとき、T177のローを検出してリトライカウンタ1のカウントをアップする(2回になる)。さらに、T178でもPCI−STOP#でローを検出しカウントアップし(3回)、この値が予め設けた設定値以上になればバスマスタ1のPCI−REQ1#のアサートが優先されるようになる。T179のタイミングのPCI−REQ1#のローへの変化点をトリガとして、バスマスタ1のライトアクセスが開始される。
以上のように、本例ではリトライ連続回数が一定値以上になると、該当するバスマスタであるPCIデバイスに対して優先権を与えることができ、PCIバスアービタ12により、複数のデバイスを効率よく駆動することができる。
尚、本例では、優先するPCIデバイスの判断を、連続してリトライされた回数を基準にしたが、実施形態2、3と同様にビデオ転送制御部のビデオ用FIFO7の残量の情報を利用して、その残量情報をPCIバスアービタ12が直接受け取り、ビデオ転送制御部のビデオ用FIFO7の残量が少なくなったときに、ビデオ転送制御部を優先してPCIバスを使用させるアービトレーションを行ってもよい。
さらに、本発明は上記各実施形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。
1・・・メモリ、2・・・メモリコントローラ、3・・・リードバッファ、
4・・・CPU、5・・・ビデオ転送コントローラ、6・・・ライトバッファ、
7・・・ビデオ用FIFO、8・・・スキャナコントローラ、9・・・スキャナ、
10・・・プリンタエンジン、11・・・PCI−メモリコントローラ、
12・・・PCIバスアービタ、13・・・ホストPCIブリッジ、
14・・・リトライ検出回路、15・・・連続リトライカウンタ(0〜4)、
4・・・CPU、5・・・ビデオ転送コントローラ、6・・・ライトバッファ、
7・・・ビデオ用FIFO、8・・・スキャナコントローラ、9・・・スキャナ、
10・・・プリンタエンジン、11・・・PCI−メモリコントローラ、
12・・・PCIバスアービタ、13・・・ホストPCIブリッジ、
14・・・リトライ検出回路、15・・・連続リトライカウンタ(0〜4)、
Claims (5)
- データを記憶する記憶手段と、
該記憶手段に書き込むデータを一時保存する第1の保存手段と、
前記記憶手段から読み出すデータを一時保存する第2の保存手段と、
該第2の保存手段から読み出したデータを印刷部に送信する際一時データを保管するデータ保管手段と、
該データ保管手段に保管するデータが所定量以上保管されている時、前記記憶手段へのデータの書き込み処理を優先して行わせ、前記データ保管手段に保管するデータが所定量以下の時、前記記憶手段からのデータの読み出し処理を優先して行わせる制御手段と、
を有することを特徴とするメモリ制御装置。 - 前記記憶手段に記憶するデータは画像データであり、スキャナ装置から読み取られた画像データを前記第1の保存手段に保存した後、前記記憶手段に記憶し、該記憶手段に記憶された画像データを、前記第2の保存手段に保存した後、前記データ保管手段に保管し、該データ保管手段に保管された画像データは印刷部の印字ヘッドに供給することを特徴とする請求項1記載のメモリ制御装置。
- 前記制御手段は、前記データ保管手段に保管するデータが所定量以上の時、前記記憶手段からのデータの読み出し処理をリトライ指示によってキャンセルさせ、前記データ保管手段に保管するデータが所定量以下の時、前記記憶手段へのデータの書き込み処理をリトライ指示によってキャンセルさせることを特徴とする請求項1記載のメモリ制御装置。
- 前記データ読み出し処理の際、データ読み出し指示が行われた後、実際にデータが読み出されるまでの時間をリトライ回数で計数し、該計数結果に基づいて、PCIバスを他のデバイスに開放することを特徴とする請求項3記載のメモリ制御装置。
- 記憶手段を含む複数のデバイスが接続されたPCIバスと、
リトライ指示が連続して行われる回数をPCIバスに接続されたデバイス毎に計数する計数手段と、
該計数結果が予め設定された設定値以上である時、PCIバスの使用権を前記リトライ回数が設定値以上であるデバイスに変更する制御手段と、
を有することを特徴とするメモリ制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005280788A JP2007094579A (ja) | 2005-09-27 | 2005-09-27 | メモリ制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005280788A JP2007094579A (ja) | 2005-09-27 | 2005-09-27 | メモリ制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007094579A true JP2007094579A (ja) | 2007-04-12 |
Family
ID=37980256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005280788A Withdrawn JP2007094579A (ja) | 2005-09-27 | 2005-09-27 | メモリ制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007094579A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023226497A1 (zh) * | 2022-05-26 | 2023-11-30 | 上海美仁半导体有限公司 | 总线仲裁方法和装置、计算机可读存储介质及主控芯片 |
-
2005
- 2005-09-27 JP JP2005280788A patent/JP2007094579A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023226497A1 (zh) * | 2022-05-26 | 2023-11-30 | 上海美仁半导体有限公司 | 总线仲裁方法和装置、计算机可读存储介质及主控芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050102456A1 (en) | Command transmission method and command transmission apparatus in pipeline bus system | |
US7702841B2 (en) | Semiconductor integrated circuit and image processing apparatus having the same | |
US7725621B2 (en) | Semiconductor device and data transfer method | |
CN1975702A (zh) | 控制时钟信号的输出的装置和方法和包括该装置的系统 | |
US20120047299A1 (en) | Data transfer device, method of transferring data, and image forming apparatus | |
JP2004318340A (ja) | データ転送制御装置 | |
JP5734034B2 (ja) | 情報処理装置、情報処理装置の制御方法、およびプログラム | |
US7774513B2 (en) | DMA circuit and computer system | |
JP5741245B2 (ja) | 画像処理装置、画像処理制御方法及び画像処理制御プログラム | |
JP2007094579A (ja) | メモリ制御装置 | |
US20080320178A1 (en) | DMA transfer apparatus | |
KR20050075642A (ko) | 효율적으로 버스를 사용하는 방법 | |
KR19990072646A (ko) | 정보처리장치용프로세서 | |
US20060047866A1 (en) | Computer system having direct memory access controller | |
JP4151362B2 (ja) | バス調停方式、データ転送装置、及びバス調停方法 | |
JP5623150B2 (ja) | 電子機器及びその制御方法 | |
US20070198730A1 (en) | Embedded system with a bus and arbitration method for same | |
JPS60534A (ja) | 印字制御方式 | |
KR100845527B1 (ko) | 메모리 장치 및 메모리 컨트롤러의 클럭 싸이클 제어방법 | |
US20080104286A1 (en) | Data transfer apparatus and data transfer method | |
JP2019153203A (ja) | 画像形成装置 | |
JP5146675B2 (ja) | 画像処理装置、その制御方法及び制御プログラム、並びに画像形成装置 | |
JP2011019148A (ja) | 画像処理装置及び画像形成装置 | |
JP2933039B2 (ja) | 通信用コントローラ | |
JP2008102609A (ja) | バス・ブリッジ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20081202 |