(57)【特許請求の範囲】
【請求項１】
第１記憶装置と第２記憶装置とメモリバスとバス制御部とデータ処理部と遅延回路部とを有するデータ処理システムであって、
上記第１記憶装置と第２記憶装置とは、クロックに同期してアドレス信号入力、データ信号入出力、制御信号入力が行われ、ロウアドレスをラッチし、同一ロウアドレスのアクセスではカラムアドレスの更新により連続的にアクセス可能であり、
上記メモリバスは上記第１記憶装置と第２記憶装置のそれぞれに割り当てられ、
上記バス制御部は、それぞれのメモリバスに割り当てられ、
上記データ処理部は上記バス制御部に接続され、上記第１記憶装置と第２記憶装置にアクセスするためのデータ及びアドレスを生成し、上記第１記憶装置からデータを読み出して処理し、上記第２記憶装置に上記処理の結果を格納するための上記第１記憶装置及び第２記憶装置のアクセスアドレスを並列に生成し、
上記遅延回路部は、データ処理部が出力した上記第２記憶装置のアクセスアドレスを、データ処理時間に相当する時間遅延させて、上記第２記憶装置に伝達することを特徴とするデータ処理システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、パーソナルコンピュータやワークステーションなどの情報端末機器分野における、メモリ上に割り付けられた画像データなどを加工するデータ処理システム、更には画像処理システムに係り、特にクロックに同期して高速にメモリをアクセスする高速画像処理システムに適用して有効な技術に関するものである。
【０００２】
【従来の技術】
画像処理システムにおいて、描画表示処理プロセッサは、ＣＰＵから転送される描画コマンドやパラメータに従いフレームバッファに描画処理を実行する。この描画表示処理プロセッサは、フレームバッファあるいは専用のローカルメモリに予じめ配置された描画コマンド及びパラメータに従い描画処理を実行する場合もある。描画表示処理プロセッサはまた、モニタの水平、垂直同期タイミングならびにドットレートに合わせ、必要な表示データをフレームバッファから読出し、ドットシフタを介してモニタに表示する。クロック発生部は水晶発振子の基準周波数を基に基本クロック、ドットクロックを作成し、描画表示処理プロセッサ及びドットシフタに供給する。このような画像処理システムのフレームバッファとしては、表示データをビットマップ配置したりする必要性から記憶容量の大きなＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）やマルチポートＤＲＡＭを採用することができる。
【０００３】
また、従来ファクシミリやプリンタ，グラフィックス装置で用いられている画像処理システムは、特開昭６１−２６１９６９号で記載されているように周辺画素を参照する局所的な処理用として高速のＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）、符号データやフォントデータ格納用の大容量メモリとしてＤＲＡＭを使用している。
【０００４】
【発明が解決しようとする課題】
近年のビジネス用パーソナルコンピュータやワークステーションなどの情報端末機器分野の画像処理システムの動向としては、高画質化、高速処理、大容量化が進み、フレームバッファとして標準的なＤＲＡＭで構成する場合データバス幅を大きくした構成が多くなっており、またマルチポートＤＲＡＭで構成することにより描画処理効率を向上させた構成も採用されている。これに伴い、装置コストが上昇するという問題点があった。
【０００５】
一方、高速で、大容量のメモリとしてシンクロナスＤＲＡＭが注目され始めている。このシンクロナスＤＲＡＭは、従来のＤＲＡＭに比べ、クロックに同期してデータ、アドレス、及び制御信号を入出力できるため、ＤＲＡＭと同様の大容量メモリをＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）に匹敵する高速動作が可能に実現でき、従来のＤＲＡＭ以上の高速アクセスと大容量を低価格で実現可能となるメモリである。このシンクロナスＤＲＡＭは、選択された１本のワード線に対して幾つのデータをアクセスするかを例えばバーストレングスによって指定できるようになっており、バーストレングスがＮである場合には内蔵カラムアドレスカウンタによってカラム系の選択状態を順次切換えていってＮ個のデータを連続的にリード又はライトできるようになっている。尚、シンクロナスＤＲＡＭをメインメモリやグラフィックスに応用することについて記載された文献の例としては電子技術（１９９３−１０）の第２４頁〜２８頁に記載の「高速ＤＲＡＭのメインメモリ、グラフィックスなどへの応用」がある。
【０００６】
本発明者は、高速処理用メモリと大容量メモリを統合し、低コストに大容量、且つ高速のメモリのアクセスを実現する画像処理システムを提供することについて検討した。具体的にはクロックに同期してアドレス、データおよび制御信号をラッチする機能を有するメモリとしてシンクロナスＤＲＡＭを用いてシステムを構成する場合について検討し、代表的に以下の点が明らかにされた。
【０００７】
第１に、クロックに同期してデータ、アドレス、制御信号を入出力するシンクロナスＤＲＡＭの性質上、アクセス動作の信頼性を保ち且つ高速アクセスを実現するには、回路モジュールが出力するデータ、アドレス、制御信号とクロック信号とのスキューを小さくしなければならない。
【０００８】
第２に、任意方向への直線描画ではメモリアドレスが同じロウアドレス内で連続しない描画処理になり、バーストレングスは１が望ましく、それに対しメモリクリヤなどの矩形の塗りつぶし描画ではメモリアドレスが同じロウアドレス内で連続する描画処理になるため、バーストレングスはＮ（Ｎ＞１）が望ましく、描画処理内容に応じてバーストレングスを変更する処理を表示制御システム側で行うことが望ましい。
【０００９】
第３に、シンクロナスＤＲＡＭ（シンクロナスＤＲＡＭ）を用いてシステムを構成した場合を検討している。シンクロナスＤＲＡＭを利用することで、アクセスしたいアドレスを発行してから、例えばリードデータが出力されるクロックタイミングを指定できるため、リード処理を完結する前に、次のアドレスを発行することが可能になるが、続けてアドレスを発行する場合は同じロウアドレス内に限られており、同じバンクで異なるロウアドレスにアクセスするためには、プリチャージ処理などのミスヒット処理が必要となる。
【００１０】
本発明の目的は、シンクロナスＤＲＡＭのような高速動作と大容量を兼ね備えたクロック同期型のメモリを画像処理システムなどに適用する際に発生する上記諸問題を解決し、低価格で高性能な画像処理システムさらにはデータ処理システムならびにそのためのデータプロセッサを実現するための技術を提供することにある。
【００１１】
さらに詳しくは、本発明はシンクロナスＤＲＡＭを用いてメモリを統合したシステムを構成する上で課題となる、処理内容に応じてバーストレングスを変更する処理を実現することを目的とする。また、バーストレングスに合わせてメモリのバススループットを低コストに向上させることを目的とする。さらに、ミスヒット処理を低コストに且つ高速に実現することを目的とする。そして、シンクロナスＤＲＡＭのような高速動作と大容量を兼ね備えたクロック同期型のメモリをアクセス制御するに最適なデータプロセッサを提供することを目的とする。
【００１２】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１３】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。すなわち、本願発明は、シンクロナスＤＲＡＭのようなメモリに対するクロック信号の供給、その動作モードが指定されるためのモードレジスタの設定、及びミスヒットに関する処理に大別される。
【００１４】
《クロックの供給》
外部から供給されるクロック信号（ＣＬＫ）に同期してアドレス入力、データ入出力及び制御信号入力が可能にされるシンクロナスＤＲＡＭのようなメモリ（２２）にインタフェースされるバス制御手段（１４）と、上記バス制御手段に結合され、上記メモリをアクセスするためのデータ及びアドレスを夫々が生成する複数個のデータ処理モジュール（１２，１３）と、上記データ処理モジュールに夫々固有の動作クロック信号を供給すると共に、それによって動作されるデータ処理モジュールの動作に同期して上記メモリをアクセスするためのクロック信号を外部に供給するためのクロック供給手段と、を備えてデータプロセッサを構成する。
【００１５】
複数個のデータ処理モジュールの動作速度が相違される場合にも容易に対処できるようにするには、上記クロック供給手段は、上記複数個のデータ処理モジュールの動作速度毎に設けられた複数個のクロックドライバ（１６ｃ，１６ｓ）と、夫々のクロックドライバの出力の中から、アクセス主体とされるデータ処理モジュールに対応されるものを選択して外部に供給するクロックセレクタ（２５）と、から構成できる。
【００１６】
複数個のデータプロセッサがメモリを共有する場合においてクロック信号の競合を回避するには、上記クロック供給手段からのクロック信号を外部に出力すると共に選択的に高出力インピーダンス状態に制御可能なクロックバッファ（１６０）を採用することができる。
【００１７】
データ処理のためのパラメータなどを格納したＲＯＭなどを上記メモリのバスに共通接続して利用可能にするには、上記バス制御手段は、それに結合される上記メモリよりもアクセス速度の遅いＲＯＭのような別のメモリに対するアクセスをそのアクセスアドレスから判定して上記メモリに比べてメモリサイクルを引き延ばすものとされる。
【００１８】
上記バス制御手段は上記データ処理モジュールから上記メモリに対するアクセスの指示を受けて当該メモリの動作モードを決定するためのコマンドを制御信号として出力する手段（１４３，１４４，１４９５ｃ）を備えることができる。
【００１９】
上記データプロセッサは１個の半導体基板に形成することができる。また、上記データプロセッサは、クロック信号に同期してアドレス入力、データ入出力及び制御信号入力が可能にされ上記データプロセッサのバスインタフェース手段に結合されたメモリと、上記データプロセッサのクロック供給手段に結合されたクロック発生手段と、共にデータ処理システムを構成することができる。
【００２０】
《モードレジスタ設定》
クロック信号（ＣＬＫ）に同期してアドレス入力、データ入出力及び制御信号入力が可能であると共に内蔵アドレスカウンタ（２０７）にプリセットされたアドレスをモードレジスタ（３０）の設定値に応じた回数更新してデータのリード・ライトが可能にされた書換え可能なメモリと、上記メモリをアクセスするためのデータ及びアドレスを生成すると共に当該メモリを少なくともフレームバッファに利用して画像用データ処理を行い、そのデータ処理条件に応じて上記モードレジスタを設定するためのコマンドとレジスタ設定値とを発行するデータプロセッサ（１１）と、を備えてデータ処理システムを構成することができる。
【００２１】
このシステムにおいて上記データプロセッサ（１１）には、上記モードレジスタを設定するためのコマンド発行タイミングを規定するための外部信号（１３５）の入力端子を設けることができる。また、上記モードレジスタを設定するためのコマンドの発行に割り当てられた命令を実行可能な命令制御手段（５１〜５７）を採用できる。さらにまた、上記モードレジスタを設定するためのコマンドの発行に割り当てられたアドレスに対する内部アクセスを検出するアドレスデコーダ（１４８１）と、このアドレスデコーダによる検出結果に従って上記モードレジスタ設定用コマンドを発行させ、且つ当該内部アクセスの対象とされるデータをコマンドレジスタに対する設定値として外部に出力させるシーケンサ（１４３）と、を備えた構成を採用できる。
【００２２】
メモリアクセスを伴うデータ処理のスループットを向上されると言う点に着目したデータ処理システムは、メモリ（（２２）と、このメモリをアクセスして画像用データ処理を行うデータプロセッサ（１１）とを供え、上記メモリは、複数個のメモリバンク（２００Ａ，２００Ｂ）を備え、クロック信号（ＣＬＫ）に同期してアドレス入力、データ入出力及び制御信号入力が可能にされると共に、内蔵アドレスカウンタ（２０７）にプリセットされたアドレスを更新しながらアクセスされるバーストモードを有し、バーストモードで動作中のメモリバンクの動作に並行して別のメモリバンクにそのアクセスアドレスを設定するアドレスアクティブコマンドを受け付け可能にされて成り、上記データプロセッサは、上記メモリをアクセスするためのデータ及びアドレスを生成すると共に当該メモリを少なくともフレームバッファに利用して画像用データ処理を行うためのデータ処理モジュール（１２，１３）と、バーストモードにてアクセス動作中のメモリバンクとは異なるメモリバンクに対するデータ処理モジュールからのアクセスの指示に対しては当該メモリバンクのために上記アクティブアドレスコマンドを発行してそのアクセスアドレスを予じめ設定可能にするバス制御手段（１４）とを備えて成る。
【００２３】
《ミスヒットの処理》
複数個のメモリを並列的にリード・ライトしながらパイプライン的にデータ処理を行うシステムは、ロウアドレスをラッチし、一旦ラッチされたロウアドレスと同一ロウアドレスのアクセスはカラムアドレスの更新によって連続的にアクセス可能にされると共に、クロック信号に同期してアドレス入力、データ入出力及び制御信号入力が可能にされる第１及び第２のメモリ（８２ａ，８２ｂ）と、第１及び第２のメモリに個別的に割り当てられたメモリバス（８２１ａ，８２２ａ、８２１ｂ，８２２ｂ、）と、上記メモリバスに各別に割り当てられたバス制御手段（７４ａ，７４ｂ）と、上記夫々のバス制御手段に結合され、上記第１及び第２のメモリをアクセスするためのデータ及びアドレスを生成するものであって、第１のメモリから読み出したデータに対してデータ処理を行いそのデータ処理結果を第２のメモリに格納するための当該第１及び第２のメモリのアクセスアドレスを並列的に生成して出力可能にされたデータ処理モジュール（７１）と、データ処理モジュールから出力される第２のメモリのためのアクセスアドレスを上記データ処理の時間に相当する遅延時間を以て第２のメモリに伝達するための遅延手段（７３１，７３２）とから成る。要するに第１及び第２のメモリの夫々に個別化されたメモリバスを介して並列的に情報をやりとりするようにし、そのための双方のメモリに対するアクセスアドレスはデータ処理モジュールが並列的に出力し、並列的に出力された双方のアクセスアドレスが対応メモリへ入力されるタイミングは遅延手段で一義的に決定されるようになっている。
【００２４】
このシステムにおいてパイプライン的なデータ処理の乱れを防止するために、上記データ処理モジュールから第１及び第２のメモリに向けて並列的に出力される夫々のアクセスアドレスのロウアドレスにつき前回供給されたロウアドレスと不一致であるか否かを実質的に同じタイミングを以て検出するミスヒット検出手段と、上記ミスヒット検出手段にて上記ロウアドレスの不一致が検出されたとき当該ミスヒットに係るロウアドレスの更新期間中にデータ処理モジュールの動作を停止させる手段とを採用することができる。さらに詳述するならば、複数個のメモリを並列的にリード・ライトして実現されるパイプラインの乱れ防止に着目したデータ処理システムは、ロウアドレスをラッチし、一旦ラッチされたロウアドレスと同一ロウアドレスのアクセスはカラムアドレスの更新によって連続的にアクセス可能にされると共に、クロック信号に同期してアドレス入力、データ入出力及び制御信号入力が可能にされる第１及び第２のメモリ（８２ａ，８２ｂ）と、第１及び第２のメモリに個別的に割り当てられたメモリバス（８２１ａ，８２２ａ、８２１ｂ，８２２ｂ、）と、上記メモリバスに各別に割り当てられたバス制御手段（７４ａ，７４ｂ）と、上記夫々のバス制御手段に結合され、上記第１及び第２のメモリをアクセスするためのデータ及びアドレスを生成するものであって、第１のメモリから読み出したデータに対してデータ処理を行いそのデータ処理結果を第２のメモリに格納するための当該第１及び第２のメモリのアクセスアドレスを並列的に生成して出力可能にされたデータ処理モジュール（７１）と、データ処理モジュールから出力される第２のメモリのためのアクセスアドレスを上記データ処理の時間に相当する遅延時間を以て第２のメモリに伝達するための遅延手段（７３１，７３２）と、上記データ処理モジュールから第１のメモリに向けて出力されるロウアドレスが前回供給されたロウアドレスと不一致であるか否かを検出するために設けられた第１のミスヒット検出手段（７２ｂ）と、上記データ処理モジュールから第２のメモリに向けて出力されるロウアドレスが前回供給されたロウアドレスと不一致であるか否かを検出するために設けられ、その検出タイミングが第１のミスヒット検出手段による検出タイミングと実質的に同時とされる第２のミスヒット検出手段（７２ａ）と、上記第１及び第２のミスヒット検出手段のうちの何れかで不一致が検出されたとき当該ミスヒットに係るロウアドレスの更新期間中にデータ処理モジュールの動作を停止させる手段（７６）と、を備えて構成される。
【００２５】
メモリアクセス主体の変更に伴うミスヒット時の処理の信頼性を向上させる点に着目したデータ処理システムは、ロウアドレスをラッチし、一旦ラッチされたロウアドレスと同一ロウアドレスのアクセスはカラムアドレスの更新によって連続的にアクセス可能にされると共に、クロック信号に同期してアドレス入力、データ入出力及び制御信号入力が可能にされるメモリ（１８２ａ）と、上記メモリをアクセスするためのデータ及びアドレスを生成する複数個のデータ処理モジュール（７１，７５）と、上記夫々のデータ処理モジュールからメモリに向けて出力されるロウアドレスが前回供給されたロウアドレスと不一致であるか否かを検出するために設けられたミスヒット検出手段（７２ａ）と、上記メモリをアクセスするデータ処理モジュールの変更を検出する手段（７２５）と、上記ミスヒット検出手段による不一致の検出と上記検出手段によるアクセス主体変更の検出との何れの場合においても当該アクセスのためのロウアドレスの更新処理を上記メモリに対して指示するバス制御手段（７４ａ）と、を備えて構成される。
【００２６】
【作用】
上記した手段によれば、上記メモリ例えばシンクロナスＤＲＡＭには、クロックに同期してデータ、アドレス、制御信号を入出力する必要があるため、シンクロナスＤＲＡＭにアクセスするデータプロセッサと同一クロック、逓倍クロック、あるいは分周クロックを供給する必要がある。しかし、クロック発生器の出力を、データプロセッサとシンクロナスＤＲＡＭに並列に供給した場合、クロックのスキューやプロセッサの内部遅延により、クロックに対してのデータ、アドレス、制御信号のセットアップ、ホールドタイムなどのマージンが取れなくなってしまう。この点を解決するため、データプロセッサから、シンクロナスＤＲＡＭに同期クロック信号を供給する。これによって、シンクロナスＤＲＡＭに供給するクロックとデータ、アドレス、制御信号のディレーを合わせ込むことが可能となり、マージンのある設計が可能となる。
【００２７】
上記データプロセッサの内部に異なる周波数で動作するデータ処理モジュールが存在する場合、バスマスターになるデータ処理モジュールのクロックをデータプロセッサの内部で選択し、シンクロナスＤＲＡＭにクロックを供給する構成を採用する。これにより、シンクロナスＤＲＡＭに供給するクロックとデータ、アドレス、制御信号のディレーをバスマスターになるデータ処理モジュール単位で合わせ込むことが可能となり、マージンのある設計が可能となる。
【００２８】
外部システムに対しシンクロナスＤＲＡＭを解放する方式としてデータプロセッサのシンクロナスＤＲＡＭに対するデータ、アドレス、制御信号並びに供給するクロック端子をハイインピーダンスにする制御する。このため外部システムがシンクロナスＤＲＡＭを直接アクセスする場合にマージンのある設計が可能となる。
【００２９】
シンクロナスＤＲＡＭに内蔵されているモードレジスタは、シンクロナスＤＲＡＭの動作モードを指定するためのレジスタである。プロセッサの内部アーキテクチャおよび処理内容に応じたモードレジスタの設定方式を採用して、最適なモードレジスタの設定が可能になる。例えば任意方向への直線描画ではメモリアドレスが同じロウアドレス内で連続しない描画処理になり、モードレジスタに設定するバーストレングスは１が望ましく、それに対しメモリクリヤなどの矩形の塗りつぶし描画ではメモリアドレスが同じロウアドレス内で連続する描画処理になり、バーストレングスはＮ（Ｎ＞１）が望ましく、描画処理内容に応じてバーストレングスを変更する処理が必要となる。このため本発明では、多様な処理内容に応じてモードレジスタをダイナミックに変更する処理を行う。バーストレングスに合わせてメモリのバススループットが低コストに向上される。
【００３０】
高速転送が可能な条件は、同一ロウアドレス内に限られ、異なるロウアドレスに移動する場合には、プリチャージコマンド、ロウアドレスの活性化コマンドを発行する必要がある。このため本発明では物理的なメモリアドレスと論理的な座標のマッピングとして、例えばＸ方向の同一ロウアドレスのとなり合うアドレスとして必ず異なるバンクアドレス配置した。バーストレングスをＮ（Ｎ＞１）として設定した場合、シンクロナスＤＲＡＭに対し現在データをアクセス中に上記アクセス中のバンクとは異なるバンクに対し、プリチャージコマンドおよびアクティブコマンドを発生することが可能となり、バススループットを向上させる。描画処理モジュール、表示処理モジュールまたはバス制御部内にあらかじめアドレスを演算する手段とロウアドレスの切り換えを判定する手段を設け、ロウアドレスの変化を検出するとバス制御部内のシーケンサにて、プリチャージコマンド、ロウアドレスの活性化コマンドを発行し、続いて列アドレスを発行する。これによって、リード・ライト動作の高速化を実現する。
【００３１】
シンクロナスＤＲＡＭのうちラインメモリとして利用しているアドレス範囲を高速に参照し、画像処理した結果を、シンクロナスＤＲＡＭのうちページバッファとして利用しているアドレス範囲に書き込む際、読み出し・書き込みで独立してミスヒットが発生すると画像処理部内のパイプラインが崩れ、処理が連続しなくなる。そこで、読み出し時と書き込み時の何れにおいてもミスヒットが発生すれば両方のミスヒットが起こったものとして扱うことでパイプラインにおけるメモリリードとライトの同期化を実現する。そのために、書き込み側のミスヒットを読み出し側のミスヒットと実質的に同じタイミングを以て検出可能な書き込みアドレスのミスヒットの検出手段が採用されている。
【００３２】
メモリに対するアクセス主体変更時において強制的にミスヒットを生じさせることは、メモリアクセス主体の変更に伴って動作が停止されたデータ処理モジュールの動作再開時点などにおけるミスヒット判定の不確定性に対処することができ、ミスヒット時の処理の信頼性を向上させる。
【００３３】
【実施例】
《シンクロナスＤＲＡＭ》
図２にはシンクロナスＤＲＡＭの一例ブロック図が示される。同図に示されるシンクロナスＤＲＡＭ２２は特に制限されないが、公知の半導体集積回路製造技術によって単結晶シリコンなどの一つの半導体基板に形成される。このシンクロナスＤＲＡＭ２２は、メモリバンクＡ（ＢＡＮＫＡ）を構成するメモリアレイ２００ＡとメモリバンクＢ（ＢＡＮＫＢ）を構成するメモリアレイ２００Ｂを備える。夫々のメモリアレイ２００Ａ，２００Ｂは、マトリクス配置されたダイナミック型のメモリセルを備え、図にしたがえば、同一列に配置されたメモリセルの選択端子は列毎に対応ワード線（図示せず）に結合され、同一行に配置されたメモリセルのデータ入出力端子は行毎に対応相補データ線（図示せず）に結合される。
【００３４】
上記メモリアレイ２００Ａの図示しないワード線はロウデコーダ２０１Ａによるロウアドレス信号のデコード結果に従って１本が選択レベルに駆動される。メモリアレイ２００Ａの図示しない相補データ線はセンスアンプ及びカラム選択回路２０２Ａに結合される。センスアンプ及びカラム選択回路２０２Ａにおけるセンスアンプは、メモリセルからのデータ読出しによって夫々の相補データ線に現れる微小電位差を検出して増幅する増幅回路である。それにおけるカラムスイッチ回路は、相補データ線を各別に選択して相補共通データ線２０４に導通させるためのスイッチ回路である。カラムスイッチ回路はカラムデコーダ２０３Ａによるカラムアドレス信号のデコード結果に従って選択動作される。メモリアレイ２００Ｂ側にも同様にロウデコーダ２０１Ｂ，センスアンプ及びカラム選択回路２０２Ｂ，カラムデコーダ２０３Ｂが設けられる。上記相補共通データ線２０４は入力バッファ２１０の出力端子及び出力バッファ２１１の入力端子に接続される。入力バッファ２１０の入力端子及び出力バッファ２１１の出力端子は１６ビットのデータ入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ１５に接続される。尚、ロウアドレス信号の所定の１ビットはメモリバンク２００Ａ，２００Ｂの何れかを選択する信号とされる。
【００３５】
アドレス入力端子Ａ０〜Ａ９から供給されるロウアドレス信号とカラムアドレス信号はカラムアドレスバッファ２０５とロウアドレスバッファ２０６にアドレスマルチプレクス形式で取り込まれる。供給されたアドレス信号はそれぞれのバッファが保持する。ロウアドレスバッファ２０６はリフレッシュ動作モードにおいてはリフレッシュカウンタ２０８から出力されるリフレッシュアドレス信号をロウアドレス信号として取り込む。カラムアドレスバッファ２０５の出力はカラムアドレスカウンタ２０７のプリセットデータとして供給され、カラムアドレスカウンタ２０７は後述のコマンドなどで指定される動作モードに応じて、上記プリセットデータとしてのカラムアドレス信号、又はそのカラムアドレス信号を順次インクリメントした値を、カラムデコーダ２０３Ａ，２０３Ｂに向けて出力する。
【００３６】
コントローラ２１２は、特に制限されないが、クロック信号ＣＬＫ、クロックイネーブル信号ＣＫＥ、チップセレクト信号ＣＳ＊（記号＊はこれが付された信号がローイネーブルの信号であることを意味する）、カラムアドレスストローブ信号ＣＡＳ＊、ロウアドレスストローブ信号ＲＡＳ＊、及びライトイネーブル信号ＷＥ＊などの外部制御信号と、アドレス入力端子Ａ０〜Ａ９からの制御データとが供給され、それら信号のレベルや変化のタイミングなどに基づいてシンクロナスＤＲＡＭの動作モード及び上記回路ブロックの動作を制御するための内部タイミング信号を形成するもので、そのためのコントロールロジック（図示せず）とモードレジスタ３０を備える。
【００３７】
クロック信号ＣＬＫはシンクロナスＤＲＡＭのマスタクロックとされ、その他の外部入力信号は当該クロック信号ＣＬＫの立ち上がりエッジに同期して有意とされる。チップセレクト信号ＣＳ＊はそのローレベルによってコマンド入力サイクルの開始を指示する。チップセレクト信号ＣＳ＊がハイレベルのとき（チップ非選択状態）その他の入力は意味を持たない。但し、後述するメモリバンクの選択状態やバースト動作などの内部動作はチップ非選択状態への変化によって影響されない。ＲＡＳ＊，ＣＡＳ＊，ＷＥ＊の各信号は通常のＤＲＡＭにおける対応信号とは機能が相違され、後述するコマンドサイクルを定義するときに有意の信号とされる。
【００３８】
クロックイネーブル信号ＣＫＥは次のクロック信号の有効性を指示する信号であり、当該信号ＣＫＥがハイレベルであれば次のクロック信号ＣＬＫの立ち上がりエッジが有効とされ、ローレベルのときは無効とされる。更に、図示はしないがリードモードにおいて出力バッファ２１１に対するアウトプットイネーブルの制御を行う外部制御信号もコントローラ３０に供給され、その信号が例えばハイレベルのときは出力バッファ２１１は高出力インピーダンスイ状態にされる。
【００３９】
上記ロウアドレス信号は、クロック信号ＣＬＫの立ち上がりエッジに同期する後述のロウアドレスストローブ・バンクアクティブコマンドサイクルにおけるＡ０〜Ａ８のレベルによって定義される。
【００４０】
Ａ９からの入力は、上記ロウアドレスストローブ・バンクアクティブコマンドサイクルにおいてメモリバンクの選択信号とみなされる。即ち、Ａ９の入力がローレベルの時はメモリバンク２００Ａが選択され、ハイレベルの時はメモリバンク２００Ｂが選択される。メモリバンクの選択制御は、特に制限されないが、選択メモリバンク側のロウデコーダのみの活性化、非選択メモリバンク側のカラムスイッチ回路の全非選択、選択メモリバンク側のみの入力バッファ２１０及び出力バッファ２１１への接続などの処理によって行うことができる。
【００４１】
後述のプリチャージコマンドサイクルにおけるＡ８の入力は相補データ線などに対するプリチャージ動作の態様を指示し、そのハイレベルはプリチャージの対象が双方のメモリバンク２００Ａ，２００Ｂであることを指示し、そのローレベルは、Ａ９で指示されている一方のメモリバンクがプリチャージ対象であることを指示する。
【００４２】
上記カラムアドレス信号は、クロック信号ＣＬＫの立ち上がりエッジに同期するリード又はライトコマンド（後述のカラムアドレス・リードコマンド、カラムアドレス・ライトコマンド）サイクルにおけるＡ０〜Ａ７のレベルによって定義される。そして、この様にして定義されたカラムアドレスはバーストアクセスのスタートアドレスとされる。
【００４３】
次にコマンドによって指示されるシンクロナスＤＲＡＭの主な動作モードを説明する。
（１）モードレジスタセットコマンド（Ｍｏ）
上記モードレジスタ３０をセットするためのコマンドであり、ＣＳ＊，ＲＡＳ＊，ＣＡＳ＊，ＷＥ＊＝ローレベルによって当該コマンド指定され、セットすべきデータ（レジスタセットデータ）はＡ０〜Ａ９を介して与えられる。レジスタセットデータは、特に制限されないが、バーストレングス、ＣＡＳレイテンシー、ライトモードなどとされる。特に制限されないが、設定可能なバーストレングスは、１，２，４，８，フルページ（２５６）とされ、設定可能なＣＡＳレイテンシーは１，２，３とされ、設定可能なライトモードは、バーストライトとシングルライトとされる。
上記ＣＡＳレイテンシーは、後述のカラムアドレス・リードコマンドによって指示されるリード動作においてＣＡＳ＊の立ち下がりから出力バッファ２１１の出力動作までにクロック信号ＣＬＫの何サイクル分を費やすかを指定するものである。読出しデータが確定するまでにはデータ読出しのための内部動作時間が必要とされ、それをクロック信号ＣＬＫの使用周波数に応じて設定するためのものである。換言すれば、周波数の高いクロック信号ＣＬＫを用いる場合にはＣＡＳレイテンシーを相対的に大きな値に設定し、周波数の低いクロック信号ＣＬＫを用いる場合にはＣＡＳレイテンシーを相対的に小さな値に設定する。
【００４４】
（２）ロウアドレスストローブ・バンクアクティブコマンド（Ａｃ）
これは、ロウアドレスストローブの指示とＡ９によるメモリバンクの選択を有効にするコマンドであり、ＣＳ＊，ＲＡＳ＊＝ローレベル、ＣＡＳ＊，ＷＥ＊＝ハイレベルによって指示され、このときＡ０〜Ａ８に供給されるアドレスがロウアドレス信号として、Ａ９に供給される信号がメモリバンクの選択信号として取り込まれる。取り込み動作は上述のようにクロック信号ＣＬＫの立ち上がりエッジに同期して行われる。例えば、当該コマンドが指定されると、それによって指定されるメモリバンクにおけるワード線が選択され、当該ワード線に接続されたメモリセルが夫々対応する相補データ線に導通される。
【００４５】
（３）カラムアドレス・リードコマンド（Ｒｅ）
このコマンドは、バーストリード動作を開始するために必要なコマンドであると共に、カラムアドレスストローブの指示を与えるコマンドであり、ＣＳ＊，ＣＡＳ＊，＝ロウレベル、ＲＡＳ＊，ＷＥ＊＝ハイレベルによって指示され、このときＡ０〜Ａ７に供給されるアドレスがカラムアドレス信号として取り込まれる。これによって取り込まれたカラムアドレス信号はバーストスタートアドレスとしてカラムアドレスカウンタ２０７に供給される。これによって指示されたバーストリード動作においては、その前にロウアドレスストローブ・バンクアクティブコマンドサイクルでメモリバンクとそれにおけるワード線の選択が行われており、当該選択ワード線のメモリセルは、クロック信号ＣＬＫに同期してカラムアドレスカウンタ２０７から出力されるアドレス信号に従って順次選択されて連続的に読出される。連続的に読出されるデータ数は上記バーストレングスによって指定された個数とされる。また、出力バッファ２１１からのデータ読出し開始は上記ＣＡＳレイテンシーで規定されるクロック信号ＣＬＫのサイクル数を待って行われる。
【００４６】
（４）カラムアドレス・ライトコマンド（Ｗｒ）
ライト動作の態様としてモードレジスタ３０にバーストライトが設定されているときは当該バーストライト動作を開始するために必要なコマンドとされ、ライト動作の態様としてモードレジスタ３０にシングルライトが設定されているときは当該シングルライト動作を開始するために必要なコマンドとされる。更に当該コマンドは、シングルライト及びバーストライトにおけるカラムアドレスストローブの指示を与える。当該コマンドは、ＣＳ＊，ＣＡＳ＊，ＷＥ＊，＝ロウレベル、ＲＡＳ＊＝ハイレベルによって指示され、このときＡ０〜Ａ７に供給されるアドレスがカラムアドレス信号として取り込まれる。これによって取り込まれたカラムアドレス信号はバーストライトにおいてはバーストスタートアドレスとしてカラムアドレスカウンタ２０７に供給される。これによって指示されたバーストライト動作の手順もバーストリード動作と同様に行われる。但し、ライト動作にはＣＡＳレイテンシーはなく、ライトデータの取り込は当該カラムアドレス・ライトコマンドサイクルから開始される。
【００４７】
（５）プリチャージコマンド（Ｐｒ）
これは、Ａ８，Ａ９によって選択されたメモリバンクに対するプリチャージ動作の開始コマンドとされ、ＣＳ＊，ＲＡＳ＊，ＷＥ＊，＝ロウレベル、ＣＡＳ＊＝ハイレベルによって指示される。
【００４８】
（６）オートリフレッシュコマンド
このコマンドはオートリフレッシュを開始するために必要とされるコマンドであり、ＣＳ＊，ＲＡＳ＊，ＣＡＳ＊＝ロウレベル、ＷＥ＊，ＣＫＥ＝ハイレベルによって指示される。
【００４９】
（７）バーストストップ・イン・フルページコマンド
フルページに対するバースト動作を全てのメモリバンクに対して停止させるために必要なコマンドであり、フルページ以外のバースト動作では無視される。このコマンドは、ＣＡＳ＊，ＷＥ＊＝ローレベル、ＲＡＳ＊，ＣＡＳ＊＝ハイレベルによって指示される。
【００５０】
（８）ノーオペレーションコマンド（Ｎｏｐ）
これは実質的な動作を行わないことを指示するコマンドであり、ＣＳ＊＝ローレベル、ＲＡＳ＊，ＣＡＳ＊，ＷＥ＊＝ハイレベルによって指示される。
【００５１】
シンクロナスＤＲＡＭにおいては、一方のメモリバンクでバースト動作が行われているとき、その途中で別のメモリバンクを指定して、ロウアドレスストローブ・バンクアクティブコマンドが供給されると、当該実行中の一方のメモリバンクでの動作には何等影響を与えることなく、当該別のメモリバンクにおけるロウアドレス系の動作が可能にされる。例えば、シンクロナスＤＲＡＭは外部から供給されるデータ、アドレス、及び制御信号を内部に保持する手段を有し、その保持内容、特にアドレス及び制御信号は、特に制限されないが、メモリバンク毎に保持されるようになっている。或は、ロウアドレスストローブ・バンクアクティブコマンドサイクルによって選択されたメモリブロックにおけるワード線１本分のデータがカラム系動作の前に予じめ読み出しのために図示しないラッチ回路にラッチされるようなっている。したがって、データ入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ１５においてデータが衝突しない限り、処理が終了していないコマンドの実行中に、当該実行中のコマンドが処理対象とするメモリバンクとは異なるメモリバンクに対するプリチャージコマンド、ロウアドレスストローブ・バンクアクティブコマンドを発行して、内部動作を予じめ開始させることが可能である。
【００５２】
以上により、シンクロナスＤＲＡＭ２２はクロック信号ＣＬＫに同期してデータ、アドレス、制御信号を入出力できるため、ＤＲＡＭと同様の大容量メモリをＳＲＡＭに匹敵する高速動作させることが可能であり、また、選択された１本のワード線に対して幾つのデータをアクセスするかをバーストレングスによって指定することによって、内蔵カラムアドレスカウンタ２０７で順次カラム系の選択状態を切換えていって複数個のデータを連続的にリード又はライトできることが理解されよう。
【００５３】
《描画表示処理プロセッサ》
図１には本発明の一実施例に係る描画表示処理プロセッサ１１とそれを適用した画像処理システムのブロック図が示される。同図に示される画像処理システムは、全体の制御を司るＣＰＵ（中央処理装置）１５、ＣＰＵ１５のワーク領域やデータに一時記憶領域などに利用されるシステムメモリ１５１、描画表示処理プロセッサ（データプロセッサ）１１、クロック発生部１８、描画表示処理プロセッサ１１によってアクセス制御される上記シンクロナスＤＲＡＭ２２、及び描画表示処理プロセッサ１１によって表示制御されるモニタ２０によって構成される。
【００５４】
特に制限されないが、図１のシステムにおいてＳＤＡＲＭ２２は、描画処理モジュール１２や表示処理モジュール１３のためのコマンドやパラメータの格納領域とされる。それらは、特に制限されないが、予じめＣＰＵ１５から転送される。さらにシンクロナスＤＲＡＭ２２はフレームバッファや描画処理のためのデータ一時記憶領域もしくは作業領域としても利用される。
【００５５】
上記描画表示処理プロセッサ１１における描画処理モジュール１２は、シンクロナスＤＲＡＭ２２から、上記コマンドやパラメータをバス制御部１４を介して読出し、コマンドの指示に従いシンクロナスＤＲＡＭ２２に描画処理を実行する。描画表示処理プロセッサ１１における表示処理モジュール１３は、内部の水平、垂直アドレスカウンタを、モニタ２０の水平、垂直同期タイミングに合わせて更新し、バス制御部１４を介して必要な表示データをシンクロナスＤＲＡＭ２２から読出し、モニタ２０の表示速度すなわちドットレートに合わせて出力する。モニタ２０は表示処理モジュール１３から出力される上記表示データを垂直、水平の各同期信号に同期して表示する。
【００５６】
クロックドライバ１６はクロック発生部１８からの基本クロック１８１を受け、描画処理モジュール１２、表示処理モジュール１３、バス制御部１４に供給すると共に、外部のシンクロナスＤＲＡＭ２２に対してもクロック信号を供給する。クロックドライバ１６からシンクロナスＤＲＡＭ２２に供給されるクロック信号は図２で説明したクロック信号ＣＬＫとされる。
【００５７】
本実施例の描画表示処理プロセッサ１１はシンクロナスＤＲＡＭ２２に対するアクセス制御の点において、（１）クロック供給、（２）モードレジスタの設定、（３）データアクセスのパイプライン化、（４）複数モジュールからのバス競合対策などの点をそれぞれ考慮して構成されている。次に夫々の内容を順次説明する。
【００５８】
《シンクロナスＤＲＡＭへのクロック供給》
描画表示処理プロセッサ１１は、クロック信号ＣＬＫに同期動作されるシンクロナスＤＲＡＭ２２をアクセスするときに当該シンクロナスＤＲＡＭ２２に対し、クロック信号ＣＬＫに同期するタイミングを以てデータ、アドレス、及び制御信号を入出力する必要がある。したがってシンクロナスＤＲＡＭ２２にアクセス制御する描画表示処理プロセッサ１１と同一クロック、逓倍クロック、あるいは分周クロックが当該シンクロナスＤＲＡＭ２２に供給される必要がある。このとき、水晶発振子１７などの発振子を用いるクロック発生器１８で生成されたクロック信号１８１を、その実装ボード上で描画表示処理プロセッサ１１とシンクロナスＤＲＡＭ２２に並列に供給した場合には、クロック配線の負荷や遅延成分の偏りなどによってクロックのスキューが生じたり、プロセッサ１１の内部で動作遅延を生じたりすると、クロック信号のサイクルに対してデータ、アドレス、及び制御信号のセットアップ、ホールドタイムなどの所要の動作マージンを保証できなくなる虞がある。この点を解決するため、シンクロナスＤＲＡＭ２２に対するアクセス主体である描画表示処理プロセッサ１１がシンクロナスＤＲＡＭ２２にクロック信号を供給する構成を採用している。このためシンクロナスＤＲＡＭ２２に供給すべきクロック信号ＣＬＫとデータ、アドレス、及び制御信号とのディレーを当該描画表示処理プロセッサの設計段階で合わせ込むことが可能となり、ＰＬＬ回路などを用いて対策する場合に比べて低コストで、しかも充分なマージンの確保が容易になる。
【００５９】
また、図２１に代表的に示されるように、描画表示処理プロセッサ１１ｃの内部に異なる周波数で動作するモジュール例えば描画処理モジュール１２ｃと表示処理モジュール１３ｃが存在する場合、それぞれバスマスターとされるモジュール１２ｃ，１３ｃのクロック信号を個別化し、シンクロナスＤＲＡＭ２２へのクロック信号もそのアクセス主体に応じて描画表示処理プロセッサ１１ｃのバス制御部１４ｃがクロックセレクタ２５で選択し、アクセス主体の動作とシンクロナスＤＲＡＭ２２の動作が上記同様に完全同期可能に構成することができる。このためシンクロナスＤＲＡＭ２２に供給するクロック信号とデータ、アドレス、及び制御信号とのディレーをバスマスターになるモジュール単位で合わせ込むことが可能となり、そのような場合にも充分な動作マージンの確保が容易になる。
【００６０】
図２１の構成をさらに説明すれば、複数の周波数のクロック発生部１８ｃ，１８ｓと、クロックドライバ１６ｃ，１６ｓと、上記周波数に応じて動作する複数のモジュール１２ｃ，１３ｃと、上記複数のモジュールの上記メモリに対するアクセスを調停するバス制御部１４ｃと、調停信号２５１に応じて上記メモリへのクロックを選択するクロックセレクタ２５とを有し、シンクロナスＤＲＡＭ２２に対し描画表示処理プロセッサ１１から直接複数の周波数のクロックＣＬＫを供給する画像処理システム構成を示している。尚、図２１においてＣＰＵインタフェースは図示されていない。例えばある一定の表示を繰り返し行う場合には当該描画表示処理プロセッサ１１ｃはスタンドアロンで動作され、ＣＰＵインタフェースを必要としない。図１と同様にＣＰＵインタフェースを設けて構成することも当然可能である。
【００６１】
図２２に示される構成はシンクロナスＤＲＡＭ２２に対するクロックセレクタ２５ｄが描画表示処理プロセッサ１１ｄの外部に配置される点が図２１の構成と相違される。すなわち、クロック発生部１８ｄ，１８ｔから描画表示処理プロセッサ１１ｄに供給されるクロック信号とは別系統を介して夫々からクロックセレクタ２５ｄにクロック信号が供給され、シンクロナスＤＲＡＭ２２のアクセス主体が描画処理モジュール１２ｄか表示処理モジュール１３ｄかに従ってバス制御部１４ｄがクロックセレクタ２５ｄに出力クロック信号周波数を選択させる。そのための制御信号は２５２として図示されている。１６ｄ，１６ｔはクロックドライバ、２５ｔはクロックセレクタである。
【００６２】
尚、図２３に示されるようにプロセッサ１１ｉ内部のモジュールが単一モジュール１３ｉ（表示処理モジュール）であってもプロセッサ１１ｉからシンクロナスＤＲＡＭ２２にクロック信号ＣＬＫを供給する構成が適用可能である。図２２において、１４ｉはバス制御部、１６ｉはクロックドライバ、１８ｉはクロック発生部である。さらに、図２４に示されるように、単一モジュール（表示処理モジュール）１３ｋで複数の周波数のクロック信号を選択するクロックセレクタ２５ｋを内蔵する形式のプロセッサにおいても当該プロセッサ１１ｋが直接シンクロナスＤＲＡＭ２２にクロック信号を供給することができる。１８ｋ，１８Ｌはクロック発生部、１６ｋはクロックドライバ、１４ｋはバス制御部である。
【００６３】
《複数モジュールからのバス競合対策》
図３２には複数個例えば２個の描画表示処理プロセッサ１１−１，１１−２がシンクロナスＤＲＡＭ２２を共有する場合の一例システムが示される。このシステムにおいて、シンクロナスＤＲＡＭ２２へクロック信号ＣＬＫを供給するための夫々の描画表示処理プロセッサに内蔵されたクロックドライバ１６の出力はクロックバッファ１６０を介してワイヤードオア結合されてシンクロナスＤＲＡＭ２２のクロック入力端子に結合される。このとき、相互に一方の描画表示処理プロセッサが他方の描画表示処理プロセッサのためにシンクロナスＤＲＡＭ２２を解放する方式として、シンクロナスＤＲＡＭ２２に対するデータ、アドレス、制御信号はもとよりクロック信号ＣＬＫを供給する端子をもハイインピーダンスに制御する。本実施例に従えば、クロックドライバ１６の出力すなわちクロックバッファ１６０がハイインピーダンス状態に制御される。これにより、他の描画表示処理プロセッサがシンクロナスＤＲＡＭ２２を直接アクセスする場合にも、当該他の描画表示処理プロセッサは同様に充分な動作マージンを確保して、換言すれば、当該他の描画表示処理プロセッサの動作速度に応じてシンクロナスＤＲＡＭ２２をアクセス制御することができる。
【００６４】
図１８及び図１９には上述の複数モジュールからのバス競合対策のための一例回路が示される。図１８に示される例は、描画処理プロセッサ１１の内部レジスタにスリーステートコントロールビット１４９を備え、その値は例えばＣＰＵ１５から設定される。このスリーステートコントロールビット１４９の出力１４９１により、バス制御部１４におけるアドレス、データ、及び制御信号のためのバスバッファ１４９５Ａ，１４９５Ｄ，１４９５Ｃ及びクロック端子がハイインピーダンスにされる。クロック端子のハイインピーダンスはクロックドライバ１６０にて実現される。図１９に示される例は、描画表示処理プロセッサ１１の外部端子からの供給される制御信号１０５のレベルもしくは変化タイミングによって、アドレス、データ、制御信号のためのバスバッファ１４９５ａ，１４９５Ｄ，１４９５Ｃ及びクロックドライバ１６のクロック端子（クロックバッファ１６０の出力端子）をハイインピーダンスにする構成とされる。
【００６５】
《モードレジスタの設定》
シンクロナスＤＲＡＭ２２に内蔵されているモードレジスタ３０は、シンクロナスＤＲＡＭ２２の動作モードを指定するためのレジスタである。既存の標準的なメモリは、モードレジスタ３０の様にスタティック動作モードを指定するためのレジスタは無く、それに対応するアクセス主体はメモリの読出し、書込み、リフレッシュのアクセスサイクル以外に特別なコマンドを発行する必要はなかった。本発明では、描画表示処理プロセッサ１１はその内部アーキテクチャ及び処理内容に応じてモードレジスタ３０を設定するようになっている。モードレジスタの設定方式については以下に説明する各種方式を適宜採用可能である。
【００６６】
図３には上記バス制御部１４の一例ブロック図が示される。アービタ１４１は各モジュール１２，１３におけるコマンド実行結果として当該モジュールから出力されるシンクロナスＤＲＡＭ２２へのバス要求信号１４１１を受け付けてバス権の調停を行い、一つのモジュールに対してバスアクノリッジ信号１４１２にて動作許可を行う。また、同時にセレクタ１４２にモジュールのセレクト信号１４１３を与える。セレクタ１４２は、上記セレクト信号１４１３により各モジュールからの制御情報１４２１をセレクトし、シーケンサ１４３に与える。シンクロナスＤＲＡＭ２２に対する制御情報１４２１は、例えばデータ読み出し、データ書込み、リフレッシュ、モードレジスタ３０の設定などを指示するための制御コードとされる。この制御コードは当該モジュールが外部からフェッチしたコマンドを実行した結果出力することになる。ミスヒット検出部１４７は、アドレスバス１４８のロウアドレスが現在アクティブになっているロウアドレスと一致しているかを比較し、ミスヒット情報１４７１をシーケンサ１４３に与える。シーケンサ１４３は、制御情報１４２１及びミスヒット情報１４７１に従って後述する図４の状態遷移図に基づいて当該制御情報１４２１で指定されるバス制御処理を実行するための一連の情報をデコーダ１４４に与える。デコーダ１４４はシーケンサ１４３から与えられる各種情報をデコードし、シンクロナスＤＲＡＭ２２へのコマンド１４４１、バスバッファ１４９５Ｄの制御信号１４４２、アービタ１４１への制御信号１４４３等を出力する。シンクロナスＤＲＡＭ２２へ発行されるコマンド１４４１が上記モードレジスタ３０を設定するコマンド（モードレジスタセットコマンドＭｏ）である場合、当該モードレジスタ３０に設定すべき値は、特に制限されないが、リテラル発生部１４６がデコーダ１４４の出力１４４５に従って選択して出力する。シンクロナスＤＲＡＭ２２のコマンドレジスタ値はアドレスバスを介して供給されるので、そのとき、デコーダ１４４が出力する制御信号１４４４にてアドレスセレクタ１４５がリテラル発生部１４６の出力を選択し、それによってコマンドレジスタ３０への設定値はバスバッファ１４９５Ａからアドレスバスを経由してシンクロナスＤＲＡＭ２２に供給される。尚、リテラル発生部１４６はデコーダ１４４の出力１４４５に従って所定の値を出力する論理回路又は記憶回路によって構成することができる。
【００６７】
モードレジスタセットコマンドＭｏの発行タイミングについては外部信号に同期させることができる。例えば図２６に示されるように、表示ブランキング情報１３５を外部端子により入力する。例えば表示ブランキング情報とは垂直同期信号における垂直帰線期間であり、表示処理モジュール１３は、このタイミングにより、次の表示データをシンクロナスＤＲＡＭ２２から取り込むために、モードレジスタセットコマンドをバス制御部１４から発行させて、例えばバーストレングスを変更する。
【００６８】
モードレジスタ３０に対する設定値はコマンドそれ自体もしくはコマンドのパラメータに含めておくことができる。その様なコマンドは、上述の各種描画処理モジュール１２や表示処理モジュール１３が実行するコマンドの一つとされる。図２７にはそのような処理モジュールによるコマンド実行フローが概略的に示される。すなわち、コマンドフェッチ（Ｍ１）が行われて、そのコマンドが解釈（Ｍ２）され、解釈の結果がモードレジスタ３０の設定コマンドであるかが判定され（Ｍ３）、モードレジスタセットコマンドである場合には当該コマンドが実行され（Ｍ１）、それ以外のコマンドに対してはそのコマンドで指示される処理が実行され（Ｍ４）、さらに次のコマンドフェッチが行われて（Ｍ６）上記同様の処理が繰り返される。同図におけるＭ５は次のコマンドフェッチサイクルにおけるＭ１と等価なステップである。図２８にはそのような各種コマンドのフォーマット例が示される。図２８の（Ａ）は一つのコマンドがコマンド指定フィールドＣＯＭＣと属性コードフィールドＣＯＭＤとから成るコマンドフォーマットの場合を示し、その場合にモードレジスタセットコマンドにおけるモードレジスタ３０の設定値は属性コードフィールドＣＯＭＤに配置される。図２８の（Ｂ）は一つのコマンドがコマンド指定フィールドＣＯＭＣから成り、これに続くパラメータＰＡＲに各種属性が含まれるフォーマットを示し、その場合にモードレジスタセットコマンドにおけるモードレジスタ３０の設定値はパラメータＰＡＲに配置することができる。
【００６９】
図２９に示される構成はモードレジスタ３０に対する設定値をモジュール１２，１３が実行すべきコマンドに付随させる場合のバス制御部の構成例である。図３のリテラル発生部１４６に代えてデータバスの値をアドレスセレクタ１４５の一方の入力に結合した点が相違される。アドレスセレクタ１４５の選択制御は図３の場合と同様と理解されたい。アドレスセレクタ１４５の入力としてデータバスを選択することができるので、シンクロナスＤＲＡＭ２２のアドレス入力端子に供給すべきモードレジスタ３０の設定値を、描画処理モジュール１２や表示処理モジュールが結合される内部データバスから直接指定できる。例えば描画処理モジュール１２又は表示処理モジュール１３は、図２８のようなコマンドフォーマットのコマンドによってモードレジスタ３０の設定処理を認識すると、その処理のための制御情報１４２１をバス制御部１４に供給すると共に、モードレジスタ３０の設定値を上記内部データバスに出力する。これによって、シンクロナスＤＲＡＭ２２に対するモードレジスタの設定が行われる。
【００７０】
また、モードレジスタ３０の設定処理はＩ／Ｏマッピングの手法によって実現することも可能である。その一例を示す図３０の場合、描画処理モジュール１２及び表示処理モジュール１３がアクセス可能な内部Ｉ／Ｏ空間に特定のレジスタ１４８２をマッピングする。すなわち、アドレスデコーダ１４８１は当該レジスタ１４８２のアクセスを内部アドレスバス情報から検出してそれを制御信号１４８３でレジスタ１４８２及びシーケンサ１４３に通知する。これによってレジスタ１４８２はそのときデータバスに供給されてくるモードレジスタ設定値をラッチし、且つ、シーケンサ１４３はその通知をコマンドレジスタ設定のための指示として認識する。シーケンサ１４３はバスバッファ１４９５Ｃを介してシンクロナスＤＲＡＭ２２にモードレジスタセットコマンドを発行すると共に、レジスタ１４８２にラッチされている設定値をアドレスセレクタ１４５にて選択させてバスバッファ１４９５ＡからシンクロナスＤＲＡＭ２２に供給する。また、特に図示はしないが、Ｉ／Ｏマッピング方式においては、物理的なレジスタを省くことができ、上記特定のアドレスだけを確保して当該アドレスに対するアクセスをデコーダ１４８１で検出可能に構成できる。
【００７１】
図３１には表示処理モジュールなどの内蔵モジュール１３がマイクロプログラム制御を利用する場合における制御系のブロック図が示される。マクロＲＯＭ５１は所定のマイクロプログラムが記述されている。それに対するアクセスアドレスはマイクロアドレスレジスタ５６が保有し、マイクロＲＯＭ５１から読出されたマイクロインストラクションはマクロインストラクションレジスタ５２に保持され、その出力がマイクロインストラクションデコーダ５４で解読されることによって当該マイクロインストラクションを実行するための制御信号がエグゼキューションユニット５８に供給される。マイクロ命令にはネクストアドレス情報が含まれ、それがマイクロアドレスコントローラ５５に供給されることによりマイクロアドレスレジスタ５６の値が順次更新されていく。マイクロ命令系列の先頭マイクロアドレスはマイクロレジスタ５７にフェッチされたコマンドによって与えられる。これにフェッチされたコマンドが描画処理モジュール１２や表示処理モジュール１３の動作を基本的に決定する。マイクロアドレスコントローラ５５はマイクロ分岐のためのマイクロアドレスも制御する。例えばモードレジスタ３０を設定するためのコマンドがマイクロレジスタ５７にフェッチされると、マイクロインストラクションレジスタ５２にはメモリコントロールインフォメーション５３として代表的に示されたマイクロ命令がラッチされることになる。このマイクロ命令がデコードされることにより、例えば上記図３、図２６、図２９、及び図３０の態様でのモードレジスタ３０を設定するための制御動作が開始される。
【００７２】
《モードレジスタのダイナミックな設定》
本実施例の描画表示処理プロセッサ１１は上述の各種方式で設定可能にされるモードレジスタ３０を処理内容に応じてダイナミックに設定できるようになっている。例えば任意方向への直線描画ではメモリアドレスが同じロウアドレス内で連続しない描画処理になり、モードレジスタ３０に設定するバーストレングスは１が望ましく、それに対しメモリクリヤなどの矩形の塗りつぶし描画ではメモリアドレスが同じロウアドレス内で連続する描画処理になり、バーストレングスはＮ（Ｎ＞１）が望ましく、描画処理内容に応じてバーストレングスを変更する処理が必要となる。このため本発明では、多様な処理内容に応じてモードレジスタ３０をダイナミックに変更する処理を行って、バーストレングスに合わせてシンクロナスＤＲＡＭ２２のバススループットを低コストに向上させることができるようになっている。
【００７３】
図４は図３におけるバス制御部１４のシーケンサ１４３の状態遷移を示したものである。電源投入時にはシンクロナスＤＲＡＭ２２を初期化するため、アイドルＳ１からプリチャージＳ３、モードレジスタ設定Ｓ７、ＮＯＰ（ノンオペレーション）Ｓ２が実行され、これに加えてダミーサイクルとしてリフレッシュシーケンスＳ８が２回繰り返される。リフレッシュ処理は、アイドルＳ１からプリチャージＳ３、リフレッシュＳ８、ＮＯＰＳ２の処理によって構成される。直線描画のようにバーストレングスが１の場合のデータの読み出しは、アイドルＳ１からプリチャージＳ３、ロウアドレス活性化（ロウアドレスストローブ・バンクアクティブコマンドにて指示）Ｓ４、読み出し（カラムアドレス・リードコマンドにて指示）Ｓ６によって実行される。これに引き続き同じロウアドレスであれば、読み出しＳ６を継続して発行することで、次々にデータ読み出しが実行される（バーストリード動作）。データの書き込みは、アイドルＳ１からプリチャージＳ３、ロウアドレス活性化Ｓ４、書き込み（カラムアドレス・ライトコマンドにて指示）Ｓ５によって実行される。これに引き続き同じロウアドレスであれば、書き込みＳ５を継続して発行することで、次々にデータ書き込みが実行される（バーストライト動作）。連続読出し、又は連続書き込み中に、ロウアドレスが変化したら、ＮＯＰＳ２、プリチャージＳ３、ロウアドレス活性化Ｓ４のステートを経て再び読出し、書き込みが行われる。リードモディファイライトはＣＡＳレイテンシーが１の場合、上記読出しＳ６からＮＯＰＳ２、書き込みＳ５を１つのサイクルとみなして実行することもできる。表示処理モジュール１３からアービタ１４１に対しバス要求があった場合、バスアクノリッジ１４２１が返されると表示処理モジュール１３はモードレジスタ３０を設定するための制御情報をシーケンサ１４３に与え、これによってプリチャージＳ３、モードレジスタ設定（モードレジスタセットコマンドにて指示）Ｓ７、ＮＯＰＳ２が実行されてバーストレングが８に設定される。その後、８ワード毎に読み出しＳ６が発行される。その期間中に、現在アクセスしていないバンクに対しプリチャージＳ３、予め求められている隣り合う次のロウアドレス活性化Ｓ４を実行することができる。表示処理モジュール１３は、必要な表示データを読み出した時点で、モードレジスタ３０の設定指示をシーケンサ１４３に与え、これによって、プリチャージＳ３、モードレジスタ設定Ｓ７、ＮＯＰＳ２が実行されてバーストレングスが１に設定される。その後にバス要求信号がネゲートされてバスが開放される。
【００７４】
図５乃至図１３にはシンクロナスＤＲＡＭ２２に対する表示、描画サイクルでのアクセスタイミングの一例が示されている。ここで、読出されたデータは所定のクロック経過（レイテンシー）後、データバスに出力される。このレイテンシーは可変でありシンクロナスＤＲＡＭ２２のモードレジスタ３０にセットされる。図５乃至図１３の例ではこのレイテンシーは全て１にされているが特に限定されるものではない。
【００７５】
図５には、描画処理における１ドットリードモディファイライトの例が示されている。この例はランダムな画素似たいして１ドットづつ描画する場合である。Ｔ１では、モードレジスタ３０にバーストレングスを１として設定している（Ｍｏ）。Ｔ３に描画処理モジュール１２は、１ドットリードモディファイライトのための制御情報１４２１を発行する。ミスヒット検出部１４７は、そのときのアクセスアドレスが前回のロウアドレスと同位置でないことを検出する。これによってシーケンサ１４３はプリチャージＳ３（Ｔ３のＰｒ−ａｂ）、ロウアドレス活性化Ｓ４（Ｔ４のＡｃ−ａ）、読出しＳ６（Ｔ５のＲｅ−ａ）、ＮＯＰＳ２（Ｔ６のＮｏｐ）、書き込みＳ５（Ｔ７のＷｒ−ａ）のためのコマンドをクロック信号ＣＬＫに同期してシンクロナスＤＲＡＭ２２に供給する。リード時におけるＣＡＳレイテンシーは１とされるのでＴ６にデータが読出され、データの書込みはＴ７に行われる。それに続く次の１ドット描画はメモリバンクＢとされる。Ｔ８において、そのための制御情報１４２１が発行され、プリチャージＳ３（Ｔ８のＰｒ−ｂ）、ロウアドレス活性化Ｓ４（Ｔ９のＡｃ−ｂ）、読出しＳ６（Ｔ１０のＲｅ−ｂ）、ＮＯＰＳ２（Ｔ１１のＮｏｐ）、書き込みＳ５（Ｔ１２のＷｒ−ｂ）のための各コマンドがクロック信号ＣＬＫに同期してシンクロナスＤＲＡＭ２２に供給される。
【００７６】
図６及び図７は、表示処理モジュール１３からの割込み処理を示すタイミングチャートである。同図においてシンクロナスＤＲＡＭ２２はＴ１０までの間はランダムなカラムアドレスに対して１ドットリード、１ドットライトが行われて描画対象とされている。このとき、表示処理モジュール１３からバス要求の割り込みがあるとする。図７にはそのようなバス要求によって表示データとして一括して１６ワード読み出す例が示されている。表示処理モジュール１３からバス要求があると、アービタ１４１はバス調停を行い、表示処理モジュール１３にバスを開放する。表示処理モジュール１３はそのような１６ワード読み出しのための制御情報１４２１をシーケンサ１４３に供給する。これにより、モードレジスタ３０のバーストレングスが８に設定される（Ｔ１１のＭｏ）。読み出しコマンドは８ワードごとに発行される（Ｔ１５のＲｅ−ａ，Ｔ２３のＲｅ−ｂ）。Ｔ１５のリードコマンド発行前にはプリチャージＳ３（Ｔ１３のＰｒ−ａｂ）、ロウアドレス（ロウアドレス）活性化Ｓ４（Ｔ１４のＡｃ−ａ）の各コマンドがシンクロナスＤＲＡＭ２２に発行される。最初の１ワードの読み出しはＴ１６に同期して開始される。その期間中に、現在アクセスされていないバンクに対しプリチャージＳ３（Ｔ２１のＰｒ−ｂ）、予め求められている隣り合う次のロウアドレス活性化Ｓ４（Ｔ２２のＡｃ−ｂ）のコマンドがシンクロナスＤＲＡＭ２２に発行されて予じめその処理がメモリバンクＢ（ｂ）側で行われる。これにより、データ処理をパイプライン化することができ、バススループットを向上させることができる。換言すれば、アクセス対象メモリバンクの切り替わり目においても間断なくデータの読み出しが可能にされる。表示処理モジュール１３は、必要な表示データを読み出した時点で、モードレジスタ３０の設定指示を与え、プリチャージＳ３（Ｔ３２のＰｒ−ａｂ）、モードレジスタ設定Ｓ７（Ｔ３３のＭｏ）、ＮＯＰＳ２（Ｔ３４のＮｏｐ）を実行してバーストレングスを１に設定後、バス要求信号をネゲートし、バスを開放することになる。
【００７７】
図８及び図９は表示データのバーストリード動作例を示す。シンクロナスＤＲＡＭ２２の表示アクセスサイクルの割合を短くするためには、できるだけ多くの表示データを連続して読み出すのがよき、そのためバーストレングスをフルページに設定して連続して読み出す用にすることが望ましい。但し、表示処理モジュール１３内に、あらかじめ読出した表示データを一旦蓄積するためのＦＩＦＯあるいはＲＡＭ等が必要で、そのようなＦＩＦＯなどの記憶容量との関係によって連続読み出し語数を決定することになる。バーストストップコマンド（Ｓｔｏｐ）は、特に限定はされないが、表示処理モジュール１３内の読み出し語数のカウンタ出力値と読み出しすべきデータ語数との比較結果の一致を以てその発生タイミングを制御できる。図８においてＴ１でバースレングスをフルページとするようにコマンドレジスタ３０が設定され（Ｍｏ）、Ｔ３でプリチャージ（Ｐｒ−ａｂ）、Ｔ４でロウアドレス活性化（Ａｃ−ａ）、Ｔ５で読み出し（Ｒｅ−ａ）の各コマンドが発行され、Ｔ６に同期してデータが順次読出される。
【００７８】
図１０及び図１１は、描画処理におけるＢｉｔＢＬＴ（ビットブロック転送）の一例を示す。この場合もバーストレングスをフルページに設定して連続して読出し、書き込みを実行している。このときのアクセスアドレスは同一ロウアドレスとされている。この例に従えば、リード、ライトのデータ個数はそれぞれ１２個とされ、バーストストップコマンド（Ｔ１７，Ｔ３０のＳｔｏｐ）によってバーストリード、バーストライトを終了している。表示処理モジュール１３はＢｉｔＢＬＴにおける転送元データとされる読み出しデータを内部に蓄積するための手段を有している。
【００７９】
図１２及び図１３は、表示処理モジュール１３がシンクロナスＤＲＡＭ２２からの表示データを一時的に蓄積するための手段を持たない場合の動作例である。このときには表示処理と描画処理とをインタリーブする方式を採用する。この場合には、表示データをドットレートに合わせて決められたサイクルで読み出す必要があり、ここではクロック信号ＣＬＫの４サイクルに１回の例を示している。クロック信号ＣＬＫの４サイクルに１回の割合で読み出しを可能にするために、表示領域と描画領域のメモリバンクを分けて、モニタ２０のフレームの切り換えタイミングで表示領域と描画領域のメモリバンクを切り換え、また、表示のロウアドレスが切り替わるタイミングでは、プリチャージＳ３と次のロウアドレス活性化Ｓ４を描画処理に優先して実行させる。図１２及び１３の例ではメモリマットＡ（ａ）が表示領域、メモリマットＢ（ｂ）が描画領域とされている。メモリ間ｔｔＡ（ａ）に対するプリチャージはＴ３（Ｐｒ−ａｂ）で行われ、Ｔ４（Ａｃ−ａ）においてロウアドレスが指定される。同図に示される表示のためのリード動作はＴ４で指定された同一ロウアドレスに対して行われる。このとき、メモリバンクＢ（ｂ）に対する描画は、Ｔ１４（Ｐｒ−ｂ）、Ｔ１５（Ａｃ−ｂ）で選択されたロウアドレスがＴ２４（Ｐｒ−ｂ）、Ｔ２６（Ａｃ−ｂ）で変更され、ランダムに行われている。
【００８０】
図１４は、ＢｉｔＢＬＴ（ビットブロック転送）の描画処理方式の１実施例を示している。描画処理モジュール１２は、特に限定はされないが、描画アルゴリズムに従いアドレスやデータの転送語数を演算するブロックと１ドットの色演算を行なうブロック等から構成される。ＢｉｔＢＬＴ（ビットブロック転送）の描画処理は、Ｘ方向の１ライン分の演算をＹ方向に繰り返し処理することで実現することができる。Ｘ方向の１ライン分の演算では、まず最初にアドレスカウンタ１２１をリセットし、転送元の転送語数を転送語数レジスタ１２２に設定する。バーストレングスはフルページに設定され、描画処理モジュール１２がバス制御部１４に転送元開始アドレスを出力して、連続読み出しを開始する。バス制御部１４からのアクノリッジ信号１４１２によりアドレスカウンタ１２１はインクリメントされ、転送元データをソースＲＡＭ１２４に一旦蓄積する。アドレスカウンタ１２１の値と転送語数レジスタ１２２の値は比較器１２３で比較され、一致したら停止信号１２３１により描画処理モジュール１２からバス制御部１４に対し、バーストストップの制御情報を発行する。ＢｉｔＢＬＴ（ビットブロック転送）の描画処理で下地データとのと演算を要する場合、下地データは予じめ転送元データと同様にデスティネーションＲＡＭ１２６に一旦蓄積される。最後に転送元データがシフタ１２５で位置合わせされ、これが演算器１２７で下地データと演算され、その演算結果データが再びシンクロナスＤＲＡＭ２２に連続的に書き込まれる。
【００８１】
《ＲＯＭアクセスへの切換え》
図２０及び図２５に示されるようにバス制御部１４ａはシンクロナスＤＲＡＭ２２と共に、それよりも低速なメモリとしてＲＯＭ２６をアクセス可能に構成することができる。図２０に従えば、シンクロナスＤＲＡＭ２２と同一のバスにＲＯＭ２６が接続される。ＲＯＭ２６のアドレス空間はフレームバッファアドレス空間にマッピッングされ、換言すれば、それを選択するための信号を形成するアドレスデコーダは描画表示処理プロセッサ１１が有する。描画処理モジュール１２ａが当該アドレスデコーダを有する場合、ＲＯＭ２６のアドレス空間へのアクセスは、制御情報１４２１によりバス制御部１４に通知される。シーケンサ１４３は、アイドルＳ１から読み出しＳ６を実行し、ＲＯＭ２６からのデータが確定するまでＮＯＰＳ２を実行する。ＮＯＰＳ２の実行回数は、ＲＯＭ２６の動作速度に従って予じめ決定された値に固定することもできるが、採用可能なＲＯＭ２６の選択の余地を広げられると言う意味においては専用のレジスタに指定できるようにすることが望ましい。また、図３０のアドレスデコーダ１４８１のようにバス制御部１４にアドレスデコーダが配置される場合、当該デコーダの出力が直接シーケンサ１４３に入力されてＲＯＭ２６がアクセス制御されることになる。このときのＮＯＰＳ２の挿入回数も上記専用レジスタで指定することが可能である。
【００８２】
図２５の例はモジュール１２，１３とバス制御部１４との接続が専用バスを利用する点で図２０の例と相違される。ＲＯＭ２６を持たない実施例においてもそのような専用バスによる接続を採用することができる。
【００８３】
《データアクセスのパイプライン化》
シンクロナスＤＲＡＭ２２を用いることにより、いつでも従来のＳＲＡＭに匹敵する高速転送が実現できるとは限らない。つまり、高速転送が可能な条件は、同一ロウアドレス内に限られ、異なるロウアドレスに移動する場合（ミスヒット）には、プリチャージコマンド、ロウアドレスの活性化コマンド（ロウアドレスストローブ・バンクアクティブコマンド）を発行したりするミスヒット処理の必要がある。このためフレームバッファの論理的な画素座標に対する物理的なメモリアドレスのマッピングとして、例えば同一ロウアドレスの領域に隣り合う別の領域にマッピングされた別のロウアドレスは必ず異なるメモリバンクのロウアドレスとするような配置を採用する。これによりバーストレングスをＮ（Ｎ＞１）として設定した場合、上述の図７から図１３のタイミングチャートの説明からも明らかなように、シンクロナスＤＲＡＭ２２に対し現在データをアクセス中に上記アクセス中のメモリバンクとは異なるメモリバンクに対し、プリチャージコマンドおよびロウアドレスストローブ・バンクアクティブコマンドを発行することが可能となり、バススループットを向上させることができる。描画処理モジュール１２、表示処理モジュール１３またはバス制御部１４内に予じめアドレスを演算する手段とロウアドレスの切り換えを判定する手段（ミスヒット検出部１４７）が設けられ、ロウアドレスの変化が検出されるとバス制御部１４内のシーケンサ１４３にて、プリチャージコマンド、ロウアドレスの活性化コマンドを発行し、続いて列アドレスを発行するようにされている。これによって、例えば最高１０ナノ秒ごとにデータを読出すこと、および書き込むことも可能となる。
【００８４】
図１５乃至図１７は、本実施例システムにおけるシンクロナスＤＲＡＭ２２の物理的なメモリアドレスと論理的な座標のマッピング（表示フェレーム上におけるマッピング）の例を示している。換言すれば、フレームバッファのビットマップ座標領域におけるシンクロナスＤＡＲＭ２２のロウアドレス毎のデータ配置が示される。本実施例においてシンクロナスＤＲＡＭ２２における同一のロウアドレスは２５６ドット分のピクセルデータに相当する。各図において縦×横＝１６ドット×１６ドットの領域、縦×横＝１ドット×２５６ドットの領域は一つのロウアドレスに相当する画素データの領域である。図１５はロウアドレス同一の１６ドット×１６ドットの矩形領域は図の横方向に隣り合うもの同士メモリバンクが相違するようにマッピングされる。図１６は１ドット×２５６ドットの矩形領域が図の縦方向に隣り合うもの同士メモリバンクが相違するようにマッピングされる。図１７はロウアドレス同一の１６ドット×１６ドットの矩形領域は図の縦及び横の双方で隣り合うもの同士メモリバンクが相違するようにマッピングされる。図１５のマッピングは、ビットマップ座標上で横方向及び斜め方向に進められる描画処理においてもアクセス対象メモリバンクを交互に切り換えることができるようになるので、一方のメモリバンクに対する読み出し又は書込み中に他方のメモリバンクに対してプリチャージなどの処理を予じめ行って処理のスループットを向上させることができる。図１７のマッピングは特にフレームバッファに対するアクセスが縦及び横方向に集中する場合に最適なマッピングを想定したものである。図１６のマッピングは描画又は表示がビットマップ座標上で横方向に進められる処理においてアクセス対象メモリバンクが交互に切り換えられることになるので、一方のメモリバンクに対する読み出し又は書込み中に他方のメモリバンクに対してプリチャージなどの処理を予じめ行って処理のスループットを向上させることができる。図１６のマッピングは矩形領域のクリアなどのようにスキャンアドレスを一方向に変化させて不都合がないような場合である。
【００８５】
例えば図１５、図１７のマッピングにおいて、フレームバッファ配置の横方向にメモリアクセスが行われる場合、メモリバンクＡとＢとの境界部分でのアクセス態様は図７のＴ２４におけるアクセス態様とされる。また、図１６において横２５６ドット分のメモリアクセスの態様は図８、図９のアクセスタイミングに対応される。
【００８６】
《ミスヒット処理に伴うパイプラインの乱れ防止》
シンクロナスＤＲＡＭをアクセスして行われるデータ処理のスループットをさらに向上させるためのミスヒット処理について別の実施例を参照しながら説明する。以下の実施例説明では、本発明の別の実施例に係るデータプロセッサとそれを適用したファクシミリ用画像処理システムを一例として説明する。
【００８７】
図３３には本発明の別の実施例に係るデータプロセッサ７０を備えた画像処理システムの一例ブロック図が示される。同図においてセンサ８０は原稿の光学的濃淡情報を読み取り、これを光電変換して画像データを出力する。センサ８０は現在のファクシミリではＣＣＤラインセンサが用いられることが多いが、密着センサも使われ始めており、エリアセンサなども今後適用されていく。画像処理部７１では、画像データに含まれる歪みを除去し、画質向上、さらには符号化等も実行する。本実施例では２個のシンクロナスＤＲＡＭ８２ａ，８２ｂが設けられている。これらは、注目画素と周辺画素を演算するために、高速にデータの読み出し及び書き込みが行われるラインメモリとして、且つ画像処理，符号化されたデータを通信処理部７９を介して送信するために記憶する符号ページバッファとして利用される。２個のシンクロナスＤＲＡＭ８２ａ，８２ｂはそれぞれ固有のバス制御部７４ａ，７４ｂとインタフェースされ、並列的にアクセス可能にされている。ＣＰＵ７５はシステム全体の制御を司り、また、画像処理，符号化したデータをシンクロナスＤＲＡＭ８２ａ，８２ｂの上記ページバッファ領域に格納させて、通信処理部７９を介して、送信制御する。通信処理部７９は、受信側のファクシミリとの接続，通信プロトコル手順を実行し、ＣＰＵ７５からのデータを通信路で電送するための変換を行う。クロック発生部７８は水晶発振子７７の基準周波数を基に基本クロック７８１を作成し、画像処理部７１，ＣＰＵ７５，通信処理部７９に供給する。受信時は通信処理部７９，ＣＰＵ７５，画像処理部７１と、送信時の逆をたどり、記録部８１で記録する。記録部８１は、感熱ヘッドやインクジェット，電子写真技術を用いたレーザープリンタなどが実用化されている。
【００８８】
シンクロナスＤＲＡＭ８２ａ，８２ｂは、従来のＤＲＡＭに比べ、クロックに同期してデータ，アドレス，制御信号を入出力できるため、従来のＳＲＡＭに匹敵する高速転送が実現でき、かつ従来のＤＲＡＭ以上の大容量を低価格で実現可能となるメモリである。すなわち、シンクロナスＤＲＡＭを用いることでメモリのバス速度を向上させることができ、画像処理用ＳＲＡＭとページバッファ用ＤＲＡＭを統合することができる。ここでシンクロナスＤＲＡＭ８２ａ，８２ｂは上記図２で説明した回路構成と同様の回路構成を有するものと理解されたい。そしてシンクロナスＤＲＡＭ８２ａ，８２ｂに対するクロック信号ＣＬＫも上記実施例と同様にデータプロセッサ７０から出力される。
【００８９】
図３３において画像処理部７１はセンサ８０から読み込んだ画像データに対して歪み補正処理、高画質化処理、符号化処理などを実行する。これらの処理は読み出しアドレスＲＤＡＤＲを用いてバス制御部７４ａにシンクロナスＤＲＡＭ８２ａをリード動作させてデータ８２１ａを出力させ、それによって得られたデータ７５１ａを画像処理部７１が取り込み、画像処理部７１は取り込んだデータ７５１ａを画像処理し、画像処理後のデータ７５１ｂを書き込みアドレスＷＲＡＤＲを用いてシンクロナスＤＲＡＭ８２ｂに書き込むことで実現している。
【００９０】
ここで、上記シンクロナスＤＲＡＭ８２ａからデータを読み出し、これを画像処理部７１で補正などの処理を行い、その結果をシンクロナスＤＲＡＭ８２ｂに書き込むという処理は表示データ全体に対し、且つ画像処理部７１の動作クロックに同期して順次複数の処理ステップを一単位として繰り返し行われる。画像処理のパイプラインとは、そのような複数処理ステップからなる単位画像処理を複数並列的に且つ夫々の処理ステップをずらしながら行い、例えば一単位の画像処理が見かけ上１処理ステップのサイクルタイムで行われるような処理方式とされる。本実施例に従えば、画像処理部７１はあるデータに対するリードアドレスＲＤＡＤＲと当該リードデータに対してデータ処理を施したデータの書込みアドレスＷＲＡＤＲとを並列的に出力する。このとき、読み出しデータにデータ処理を施して書き込み可能にされるまでのデータ処理時間は、図３３において２段のラッチ７３１，７３２によるアドレス伝達遅延時間によって確保される。したがって、リードアドレスＲＤＡＤＲとライトアドレスＷＲＡＤＲが並列的に画像処理部７１から出力されたとき、当該リードアドレスＲＤＡＤＲによって読出されたデータがデータ処理されて書き込まれるのは、ライトアドレスＷＲＡＤＲがラッチ回路７３１，７３２を通過する遅延時間を待って有効とされるアドレス信号ＷＲＡＤＲ３にて行われることになる。
【００９１】
画像処理部７１の構成がパイプライン処理可能にされているとき、読み出したデータを取り込んでから、処理後のデータを書き込むまでの時間は一定でなければ、部分的にクロックを停止させて待ち合わせることになり、待ち合わせにはタイミング上複雑な処理を要する。例えば、シンクロナスＤＲＡＭ８２ａから連続的にデータを読み出し、それに対するデータ処理の結果をシンクロナスＤＲＡＭ８２ｂに連続的に書き込みを行うようにして画像処理のパイプラインを実現するとき、シンクロナスＤＲＡＭに対する読み出し又は書込みの何れかにおいてミスヒットが生ずると、パイプラインが崩れ、部分的にデーター破壊が発生する。このため、ミスヒットが発生すると画像処理演算を一時的に停止し、パイプライン内のデータを止めておくことでデーターを保持しなければならない。また、読み出し側、書き込み側のいずれでミスヒットが起こっても止める必要があるため、書込み側と読み出し側のミスヒット判定を同時に行う。本実施例に従えば、シンクロナスＤＲＡＭ８２ａに対して読み出しアドレスを発行し、データを読み出し、それに対してデータ処理を施し、書込みアドレスをシンクロナスＤＲＡＭ８２ｂに発行して当該データをシンクロナスＤＲＡＭ８２ｂに書き込むという一連の処理の流れにおいて、その最終段階のデータ書き込みを行う時点で初めて当該書込みロウアドレスのミスヒットが判明するならば、そのときには最早次のデータ処理のためのデータがシンクロナスＤＲＡＭ８２ａから次々と読出されているので、その段階で書き込みミスヒット処理を挿入すると、パイプラインが乱れ、それを修復するには複雑な処理を要することになる。
【００９２】
そこで図３３の実施例においては画像処理部７１が出力するリードアドレスＲＤＡＤＲとライトアドレスＷＲＡＤＲに対してミスヒット検出を行うようにされている。リードアドレスＲＤＡＤＲのミスヒット検出部７２ｂはバス制御部７４ａに配置されるが、ライトアドレスＷＲＡＤＲのミスヒット検出部７２ａはラッチ回路７３１の前段に配置され、書き込みアドレスＷＲＡＤＲ３がミスヒットするかどうかは読み出しアドレスＲＤＡＤＲの発行時点で検出するようになっている。すなわち、上記書き込みアドレスＷＲＡＤＲはミスヒット検出部７２ａ、ラッチ７３１、７３２を経由して内部アドレスＷＲＡＤＲ３とされてバス制御部７４ｂに接続されている。ラッチ７３１，７３２は、読み出しアドレスＲＤＡＤＲによって読出されたデータを処理、加工して、書き込みデータを作成するまでの処理遅延時間を保証している。バス制御部７４ａ，７４ｂはそれぞれ独立したアドレスバス、データバス、及びコントロールバスを介してシンクロナスＤＲＡＭ８２ａ，８２ｂに接続されている。基本的に各バス制御部７４ａ，７４ｂは独立に動作するが、本実施例では、書き込みアドレスで発生するミスヒット情報を前もって読み出しアドレスのミスヒット処理時に参照することで反映している。換言すれば、書き込みアドレスＷＲＡＤＲ３でミスヒットする状態を、読み出しアドレスＲＤＡＤＲ発行時点における書き込みアドレスＷＲＡＤＲで検出しておき、書込みアドレスＷＲＡＤＲ３でのミスヒットを読み出しアドレスＲＤＡＤＲがミスヒットしたと同じように扱う。本実施例に従えば、ミスヒット検出部７２ａで検出されたミスヒット信号ＷＲＭＨＴをバス制御部７４ａに与え、これを受けるバス制御部７４ａはミスヒット信号ＲＤＭＨＴをクロックドライバ７６に供給して画像処理部７１に対するクロック信号７６０の供給を一定期間停止させる。停止期間はミスヒットに応ずるシンクロナスＤＲＡＭに対するプリチャージ及びロウドレス活性化のための処理期間とされる。リードアドレスＲＤＡＤＲによってミスヒットが検出される場合には直接ミスヒット信号ＲＤＭＴＨがクロックドライバ７６に供給されて同様に作用される。このようなミスヒットの同期化により、ミスヒットに伴う無効データの処理を統一化でき、画像処理のパイプラインの簡素化を行なうことができる。すなわち、画像処理のパイプラインの乱れを極力防止することができる。尚、ここでは簡単のためクロックドライバ７６から画像処理部７１へのクロック信号７６０を全て停止するように図示されているが、画像処理部７１のパイプライン保持に関するものに限定してもよいし、またノンオーバーラップ多相クロックを用いるクロック体系であれば何れかの相に限定して停止させてもよい。
【００９３】
図３５には図３３のシステムでパイプライン処理途上において読み出し時にミスヒットが発生した場合の一例動作タイミングチャートが示される。画像処理部７１からＴ１で発行されたリードアドレスＲＤＡＤＲはバス制御部７４ａに送られ、Ｔ２においてバス制御部７４ａは、それに含まれるシーケンサのステータスＲＤＢＳＴを第１データ読み込みＲ１に変更する。これによりＴ３においてシンクロナスＤＲＡＭ８２ａからデータＤＲ１が出力される。データＤＲ１は画像処理部７１で加工処理されて書き込みデータＤＷ１とされる。書き込みアドレスＷＲＡＤＲは、遅延手段としてのラッチ回路７３１，７３２などで遅延されて内部ライトアドレスＷＲＡＤＲ３とされ、Ｔ４においてバス制御部７４ｂのシーケンサのステータスＷＲＢＳＴが第１データ書込みＷ１に変更され、当該データＤＷ１がシンクロナスＤＲＡＭ８２ｂに書き込まれる。このとき、次に読み出し対象とされる読み出しアドレスＲＤＡＤＲのロウアドレスがＲ１の時のロウアドレスと異なっていた場合、再度ロウアドレスのプリチャージ及びロウアドレスの活性化処理を行なうミスヒット処理が必要とされる。Ｔ２において画像処理部７１からリードアドレスＲＤＡＤＲとしてＲ２が発行されると、バス制御部内７４ａのミスヒット検出部７２ｂにて、Ｒ１のロウアドレスと比較処理が行なわれ、異なることが判明するとミスヒット信号ＲＤＭＴＨが発行される。これにより、クロックドライバ７６はクロック信号７６０の供給を停止して画像処理部７１の動作を停止させ、Ｔ４〜Ｔ６の期間においてアドレスＲＤＡＤＲ，ＷＲＡＤＲ３，ＷＲＡＤＲの更新が停止されて停止前のアドレスをその期間保持する。この間にバス制御部７４ａはシンクロナスＤＲＡＭ８２ａにプリチャージ（Ｐｒｅ）及びＲ２に対応されるロウアドレス活性化（Ａｃｔ）の各コマンドを発行してミスヒット処理を行う。ミスヒット処理が行われている期間は新たなデータの読み出しが行われず、これに呼応して有効な書き込みデータも途切れるため、書き込みバス制御部７４ｂはミスヒット信号ＲＤＭＴＨを受けてＴ５〜Ｔ７の期間アイドル状態とされる。
【００９４】
図３６は書き込み時にミスヒットが発生した場合の一例タイミングチャートが示される。画像処理部７１からＴ２で発行された書き込みアドレスＷＲＡＤＲがミスヒットする場合を想定する。仮に、書き込みアドレスＷＲＡＤＲ３のミスヒットをバス制御部７４ｂ内で検知したとすると、ミスヒットが判明するのはＴ４ステートであり、Ｔ５ステートからアドレスの更新などを停止しても、それまでの間には別のリードアドレスに対応するデータや書込みアドレスが既に発行されているため、ミスヒット処理期間中にそれらの情報は消失してしまう。本実施例においては読み出しアドレスＲＤＡＤＲと同じタイミングで書き込みアドレスＷＲＡＤＲのミスヒット検出を行い、書込みミスヒットを検出すると、読み出し時点から画像処理及びアドレス更新をアイドルさせることで書き込みミスヒットの処理期間にデータやアドレスが消失する事態が阻止される。
【００９５】
図３６においてライトアドレスＷ２でミスヒットが生じた場合のパイプラインの流れと、図３５においてリードアドレスＲ２でミスヒットは生じた場合のパイプラインの流れとは相互に等しくされている。さらに詳述すれば、、図３５と図３６の双方において代表的に示されたステートＴ１からＴ１０において、画像処理部７１が出力するリードアドレスＲＤＡＤＲとライトアドレスＷＲＡＤＲとの出力状態は途中で書き込みミスヒットが生じても読み出しミスヒットが生じても乱れることなく一定の順番を保つことができる。すなわち、シンクロナスＤＲＡＭ８２ａ，８２ｂに対するリード・ライト時にミスヒット処理が介在されることになっても１ステート１サイクルでの画像処理のパイプラインの乱れを完全に防止することができる。
【００９６】
《ミスヒット処理と割り込み処理との競合》
シンクロナスＤＲＡＭ８２ａ，８２ｂは、画像処理部７１からのアクセスのみならず、ＣＰＵ７５  からのアクセスも可能である。シンクロナスＤＲＡＭ８２ａ，８２ｂには画像処理部７１のコマンドやパラメータも格納されるからである。ＣＰＵ７５がシンクロナスＤＲＡＭ８２ａ，８２ｂをアクセスするときは当該ＣＰＵ７５はミスヒットの場合と同様に画像処理部７１の処理を中断させ且つミスヒット処理を実行させるため、割り込み要求信号ＳＤＣＡＣＫをクロックドライバ７６とバス制御部７４ａへ発行する。特に制限されないが、割り込み要求信号ＳＤＣＡＣＫは割り込み期間においてローレベルのようなアクティブレベルに維持されるものとする。クロックドライバ７６はその割り込み信号ＳＤＣＡＣＫを受けると、画像処理部７１へのクロック信号７６０の供給を停止させる。このときのクロック信号７６０の供給停止期間は当該割り込み信号ＳＤＣＡＣＫがハイレベルのようなインアクティブレベルにネゲートされるまでの任意期間とすることができる。また、割り込み時点におけるミスヒット処理はシンクロナスＤＲＡＭ８２ａ，８２ｂに対するアクセス主体がＣＰＵ７５に変更されることを以て一義的に行われるようにするものであり、割り込み信号ＳＤＣＡＣＫのアクティブレベルへのレベル変化を検出して１ショットパルスを発生する回路の出力によって強制的にミスヒットを発生される。ＣＰＵ７５の割り込みが終了すると、再度画像処理部７１が動作を再開するが、ミスヒット検出部７２ａで検出したミスヒット信号は画像処理部７１が停止している期間では、正しい動作を保証できない。したがって、ＣＰＵ７５の割り込みが終了されて再び画像処理部７１が動作されたときには、上記同様に割り込み信号ＳＤＣＡＣＫのインアクティブレベルへのレベル変化を検出して１ショットパルスを発生する回路の出力によって強制的にミスヒットを発生される。
【００９７】
《内部回路の詳細例》
図３９には画像処理部７１の一例ブロック図が示される。グラフィックパイプラインマネージャＧＰＭはシンクロナスＤＲＡＭ８２ａからコマンドを読み出し、読み出しアドレス発生部３０１、書き込みアドレス発生部３０２、データ生成部３０３にパラメータを設定し起動をかける。読み出しアドレス発生部３０１、書き込みアドレス発生部３０２、データ生成部３０３は内部にシーケンサＳＥＱを持ちそれぞれリードアドレスＤＲＡＤＲ，ライトアドレスＷＲＡＤＲ，データＧＤＡＴを発生する。入力データ７５１ａは、データ生成部３０３で作成したデータＧＤＡＴと算術論理演算器などの演算器３０８で合成され、タイミング調整ラッチ３０９を経由し出力データ７５１ｂに加工される。クロックドライバ７６から供給されるクロック信号７６０はクロックドライバ３１１で内部回路の各部に分配され、各内部回路は分配されたクロック信号に同期動作される。したがって、クロック信号７６０の供給が停止されると画像処理部７１の動作は停止される。
【００９８】
図４０にはクロックドライバ７６の一例が示される。クロック発生部７８から入力されたクロック信号７８１はドライバ（ＤＲＶ）７６１を駆動し、さらにドライバ（ＤＲＶ）７６２，７６３，７６４分配される。ドライバ７６２の出力はシンクロナスＤＲＡＭ８２ａ，８２ｂへのクロック信号ＣＬＫとされる。論理和ゲート（ＯＲ）７６７はそれぞれローイネーブル信号とされる上記割り込み信号ＳＤＣＡＣＫ及びミスヒット信号ＲＤＭＴＨの論理和信号ＭＴＨを出力する。論理積ゲート（ＡＮＤ）７６６は上記ドライバ７６１の出力クロック信号と論理和ゲート７６７の出力を受け、双方の論理積信号をドライバ（ＤＲＶ）７６５に供給して上記クロック信号７６０を生成する。したがって、ミスヒット又はＣＰＵ割り込みによって論理積ゲート７６６の出力はローレベルに固定され、画像処理部７１へのクロック信号７６０の供給が停止される。クロック信号Ｃｂ，Ｃｃはバス制御部７４ａ，７４ｂに供給される動作基準クロック信号である。
【００９９】
図４１にはバス制御部７４ａの一例ブロック図が示される。画像処理部７１からの読み出しアドレスＲＤＡＤＲとＣＰＵ７５からのアドレス７５２はセレクタ９００で選択され、ミスヒット検出部７２ｂとマルチプレクサ９０３に供給される。ミスヒット検出部７２ｂでは、分離回路７２２にてロウアドレスの抽出が行われる。アドレスバスのうちどのビットがロウアドレスに相当するかは、その時のモードに依存するため、ＣＰＵ７５から供給されるモード指定情報７４９により判定する。抽出されたロウアドレスはラッチ７２１に格納され、今回アクセスされるロウアドレス（分離回路７２２の出力）と前回アクセスされたロウアドレス（ラッチ７２１の出力）が比較器７２３にて比較される。特に制限されないが比較結果の一致出力はハイレベルとされる。比較器の７２３の出力は２入力型の論理和ゲート７２４の一方の入力に結合される。他方の入力には１ショットパルス発生回路７２５の出力が供給される。１ショットパルス発生回路７２５は割り込み信号ＳＤＣＡＣＫのアクティブからインアクティブへのレベル変化及びその逆の変化を検出して所定期間ハイレベルとされる１ショットパルスを出力する。したがって、割り込み要求が有ったと、割り込み要求が解除されたとき何れの場合にもミスヒット検出と同様の状態が強制的に作り出される。論理和ゲート７２４の出力信号９０８は論理和ゲート（ＯＲ）９０７及びシーケンサ９０５に供給される。論理和ゲート９０７の他方の入力にはミスヒット検出回路７２ａからのミスヒット信号ＷＲＭＴＨが供給される。したがって、ミスヒット検出回路７２ａと７２ｂの何れかにおいてミスヒットが検出されれば論理和ゲート９０７から出力されるミスヒット信号ＲＤＭＴＨがアクティブにされる。シーケンサ９０５は内部信号９０８にて比較結果の不一致が通知されると、ミスヒット処理を実行する。シーケンサ１４４の出力はラッチ９０６を経由し、シンクロナスＤＲＡＭ８２ａへのアドレスを選択するマルチプレクサ９０３のセレクト端子に接続され、またラッチ９０４の入力にも接続され、当該ラッチ９０４を介してシーケンサ９０５に現在のステータスを与えることができるようになっている。マルチプレクサ９０３はそれに供給されるどのアドレスビットをシンクロナスＤＲＡＭに供給するかをラッチ９０６の出力に従って選択する。マルチプレクサ９０３の出力はシンクロナスＤＲＡＭ８２ａへのアドレスバスに接続される。ＣＰＵ７５のデータバス７５１と画像処理部７１へのデータバス７５１ａはセレクタ９０５で選択可能にされてバスバッファ９０２を経由しシンクロナスＤＲＡＭ８２ａのデータバスに接続される。セレクタ９００，９０１は指示信号ＳＥＬにより制御される。指示信号ＳＥＬは遅延回路９２０から出力される。遅延回路９２０は、割り込み信号ＳＤＣＡＣＫが変化されたときその変化がクロックドライバ７６のクロック信号７６０に反映されるタイミングを以て変化された指示信号ＳＥＬ（割り込み信号ＳＤＣＡＣＫの遅延信号）を出力する。指示信号ＳＥＬがローレベルのとき、すなわちＣＰＵ割り込みがアクティブにされているときにセレクタ９００，９０１はＣＰＵ７５側との接続を選択する。バスバッファ９０２はシーケンサ９０５の出力により制御される。尚、バス制御部７４ｂは図４１のバス制御部７４ａに対してミスヒット検出のための回路構成が省かれた構成を有するものと理解されたい。また、ミスヒット検出部７２ａは図４１のミスヒット検出部７２ｂに対して入出力信号が相違される点を除いて同様の構成を有するものと理解されたい。
【０１００】
《リード・ライト時分割による画像処理システム》
図３４には一つのシンクロナスＤＲＡＭ８２を時分割的にリードライトして上述の画像処理を行う場合の実施例が示される。センサ８０から画像データを読み込み画像処理部７１にて、歪み補正処理、高画質化処理、符号化処理などを実行する。これらの処理は読み出しアドレスＲＤＡＤＲを用いてバス制御部７４に入力し、シンクロナスＤＲＡＭ８２からデータをバス７５１を用いて読み出し、画像処理後のデータを同じバス７５１を用いて書き込みアドレスＷＲＡＤＲで書き込むことで実現している。８２１，８２２はシンクロナスＤＲＡＭ８２とバス制御部７４とを結合するデータバス，アドレスバスである。
【０１０１】
図４２にはバス制御部７４の一例ブロック図が示される。このバス制御部７４はＣＰＵ７５と画像処理部７１が双方に共通のバス７５２、７５１で結合され、また、ミスヒット信号９０８はそれに含まれるミスヒット検出回路７２ｂによって形成される点が図４１の構成と相違される。図４１と同一の機能を有する回路要素には同一符号を付してその詳細な説明を省略する。尚、図示はしないがこの実施例のクロックドライバ７６ｃも基本的な構成は図４０のクロックドライバ７６と同様に構成される。図４０におけるＲＤＭＨＴは９０８に置き換えられ、クロック信号Ｃｂは不要とされる。したがって、上記実施例同様にミスヒットが生ずると画像処理部７１へのクロック信号７６０の供給が停止され、また、ＣＰＵ７５の割り込みに対しても画像処理部７１へのクロック信号７６０の供給が強制的に停止され且つ最初に強制的なミスヒットが作り出され、割り込み解除に時点においても強制的なミスヒットが作り出される。
【０１０２】
図３７及び図３８には単一メモリを時分割でリードライト利用する図３４のシステムに於ける一例動作タイミングチャートが示される。Ｔ１で発行された読みだしアドレスＲ１はバス制御部７４によりシンクロナスＤＲＡＭ８２からデータＤＲ１を読み出す。画像処理部７１で加工されたデータＤＷ１は書き込みアドレスＷ１に書き込まれる。読み出しデータは、ＣＡＳレイテンシーを１と仮定すると（書き込みデータのレイテンシーは０）、読み出しから書き込みに遷移する際は、１サイクルの空きを作る必要がある。これがバスステータスＲＷＢＳＴのＴ３ステータスのＮＯＰとされる。図３７は読み出し時のミスヒット処理、図３８は書き込み時のミスヒット処理のタイミングを示している。読み出しと書き込みは時分割的に実行されるため、リード・ライトの何れかにおいてミスヒットが生じた時点でアドレス更新および画像処理が停止される。リード・ライトが時分割に行われる場合にはそれによって画像処理の流れが乱れることは防止される。
【０１０３】
《画像処理部の応用例》
図４３は画像処理部７１をファクシミリに適応した場合のブロック図を示している。データ制御部１１１０にてシンクロナスＤＲＡＭ８２からシリアルに取り出した信号を分離し、ライン毎のデータに分けている。エッジ強調部１１２では、センサ８０からのデータと制御部１１１０からの出力を用いて周辺画素を参照し注目点と周辺画素の濃度差を強調している。ラッチ１１２１〜１１２９は、注目点とその周辺画素の値を記憶するレジスタである。これらのレジスタの出力を演算することよりエッジ強調出力１１３０が形成される。誤差拡散部１１３では、多値データを高画質に２値化するため、注目画素１１３５を二値化する際の誤差データを周辺画素１１３１〜１１３４に分配している。次ラインのための誤差データはセレクタ１１５を介してメモリバス７５２へ、現在のラインの誤差データはデータ制御部１１１０から供給している。誤差拡散部１１３の出力は、二値データとなるため、パック処理部１１４にてパックされ、セレクタ１１５を介してメモリバス７５１へ供給され、それがシンクロナスＤＲＡＭ８２に書き込まれる。セレクタ１１５には、現在入力中のデータも次ライン処理時のデータとして書き込めるよう選択可能とされている。
【０１０４】
一方、読み出し及び書き込みアドレスは読み出しカウンタ１１６，書き込みカウンタ１１７で生成している。なおカウンタの制御はクロックドライバ７６の出力７６１で制御され、ミスヒットやＣＰＵ７５からの割り込みにて停止するように制御される。クロックドライバ７６からのクロック信号７６１が今日急停止されると、内部のラッチやレジスタの動作も停止され、処理が先に進まないように制御される。
【０１０５】
図４４の（ａ）にはシンクロナスＤＲＡＭ８２をタイムスロット方式で利用する際の例が示される。これはシンクロナスＤＲＡＭ８２とデータプロセッサ７０ａのデータバスが１つの場合、時分割で処理する必要があるため、データバスの使用順序の一例が示される。この例では、前ラインの読み込みＬ１Ｒ，前々ラインの読み込みＬ２Ｒ，現ラインの誤差データ読み込みＬＥＲ，ミスヒット時のプリチャージ処理ＰＲＥ，ロウアドレス活性化ＡＣＴ，現ラインデータの書き込みＬＯＷ，現ラインの誤差データ書き込みＬＥＷ，パックした二値化結果データの書き込みＬＫＷの順番でシンクロナスＤＲＡＭ８２のアクセスを行っている。
【０１０６】
図４４の（ｂ）にはアドレスマップの一例が示されている。Ｌ０は現ライン，Ｌ１前ライン，Ｌ２前々ラインのデータ，ＬＥは誤差データ，ＬＫは結果データの各エリアである。これらはシンクロナスＤＲＡＭ８２におけるラインメモリ領域のエリアであり、シンクロナスＤＲＡＭ８２のページバッファエリアと同一メモリアドレス上にマッピングされている。
【０１０７】
図４５は画像処理部をグラフィックス処理に適用した際のブロック図を示している。ファクシミリへの適用例に比べ、上記エッジ強調部と誤差拡散部が合成データ作成部１１８に変更され、ソースデータと他の値１１８６とを合成して出力データを作成し、その結果をディレー素子１１８３，１１８４，１１８５で遅延させて位相保証を行ってバス７５２に出力する用になっている。
【０１０８】
図４６は画像処理部をプリンタへ適用した場合の一例ブロック図である。シンクロナスＤＲＡＭ８２から読み込んだデータが座標演算部１１９１に供給され、そこで演算されたデータが直線発生部１１９２で演算され、最後にベクトル描画部１１９３でベクトル演算され、その演算結果がバス７５２をてシンクロナスＤＲＡＭ８２書き込まれる。基本的な動作はファクシミリに適用した例と同様である。
【０１０９】
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１１０】
例えば、例えば画像データはモニタに表示されるべき画像データに限定されず、ページプリンタで印刷されるべき画像データであってもよい。また本発明は画像表示装置に適用されるだけでなく、大量のデータをメモリを用いて処理すべき各種データ処理システムにも同様に適用できることは言うまでもない。
【０１１１】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【０１１２】
すなわち、メモリへのクロックを処理手段から供給することにより、クロックとアドレス、データ、制御信号のスキューを最小化しデータプロセッサからのコマンド（制御信号）をシンクロナスＤＲＡＭのようなメモリに確実に実行させること、換言すればクロック信号に同期したシンクロナスＤＲＡＭのアクセスを確実に行うことができる。
【０１１３】
動作周波数の異なる複数のデータ処理モジュールから同一メモリにアクセスするときに、バスアクセス権が認められたデータ処理モジュールに対応される周波数のクロック信号を選択する手段を設けることによりクロックとデータやアドレスとのスキューを最小化して、データ処理モジュールからのコマンドを確実に実行させることができる。
【０１１４】
メモリへのアドレス、データ、制御信号と共にクロック端子をハイインピーダンスにする手段を設けることにより、メモリを外部バスに開放した場合、別のデータプロセッサによる当該シンクロナスＤＲＡＭのようなメモリに対してはそれに最適なクロック信号を当該別のデータプロセッサから供給することが許容され、これにより、シンクロナスＤＲＡＭのようなメモリを複数のデータプロセッサが共有する場合にも夫々にデータプロセッサの動作速度に応じてアドレス、データ、制御信号のスキューを最小化した当該メモリへのアクセスを実現することができる。
【０１１５】
データ処理条件に応じてメモリに対してモードレジスタの設定コマンドを発行する処理手段を設け、画像データ処理内容に最適なバーストレングスを設定することによって、効率の良いメモリアクセスを実現できる。
【０１１６】
上記メモリに対し現在データをアクセス中に上記アクセス中のメモリバンクとは異なるメモリバンクに対し、プリチャージコマンドおよびアクティブコマンドを発生するバス制御部を設けることにより、メモリのバスをパイプライン化して利用でき、メモリアクセスのスループットを向上できる。
【０１１７】
前回のロウアドレスと現在のロウアドレスを比較することで、ミスヒットの有無を判定し、プリチャージ，ロウアドレスの活性化を実行することで、所望のアドレスのアクセスが可能になる。
【０１１８】
読み込み・書き込みアドレスのミスヒット検知により所定期間画像処理演算を停止する手段を設けることにより画像処理のパイプライン内のデーターを破壊することなく保持できる。
【０１１９】
書き込みアドレスのミスヒット検知を読み込みアドレスのミスヒット検知と実質的に同じタイミングで検出することにより、書き込み時のミスヒットを、読み込み時のミスヒットにフィードバックすることができ、書き込みミスヒット時のデータ溢れ防止のためのバッファなどを設けて複雑な処理を行わなくても、ミスヒットに伴うパイプラインの乱れを防止することができる。
【０１２０】
シンクロナスＤＲＡＭのようなメモリに対するアクセス主体が複数あるときに、アクセス主体が変更されることに応じて一義的にミスヒットを発生させることにより、例えば書き込みミスヒットを検知する手段を含むデータ処理モジュールの動作に代えて別のデータ処理モジュールがシンクロナスＤＲＡＭをアクセスした後（その間における当該書込みミスヒット検出手段の動作は不確定になっている）その書き込みミスヒットを検知する手段を含むデータ処理モジュールが動作を開始しても、このとき当該書込みミスヒット検出手段の動作に頼ると発生する虞のあるミスヒット処理ぬけを確実に防止することができる。換言すれば、メモリに対するアクセス主体変更時において強制的にミスヒットを生じさせることにより、メモリアクセス主体の変更に伴って動作が停止されたデータ処理モジュールの動作再開時点などにおけるミスヒット判定の不確定性に対処することができ、ミスヒット時の処理の信頼性を向上させることができる。
【０１２１】
上記効果によって、シンクロナスＤＲＡＭを画像処理システムに適用する際に起こるミスヒット処理を低コストに実現することで、メモリの統合が可能になり低コストで高性能な装置を提供できる。
【図面の簡単な説明】
【図１】本発明の一実施例に係る画像処理システムのブロック図である。
【図２】シンクロナスＤＲＡＭの一例ブロック図である。
【図３】バス制御部の一例ブロック図である。
【図４】バス制御部のシーケンサの状態遷移を示した説明図である。
【図５】描画処理における１ドットリードモディファイライトの例を示したタイミングチャートである。
【図６】表示処理モジュールの割込み処理を示す前半のタイミングチャートである。
【図７】図６に続く後半のタイミングチャートである。
【図８】表示データのバーストリードを示す前半のタイミングチャートである。
【図９】図８に続く後半のタイミングチャートである。
【図１０】描画処理におけるビットブロック転送を示す前半のタイミングチャートである。
【図１１】図１０に続く後半のタイミングチャートである。
【図１２】表示と描画処理をインタリーブする形式のアクセス動作を示す前半のタイミングチャートである。
【図１３】図１２に続く後半のタイミングチャートである。
【図１４】ビットブロック転送による描画制御のための一実施例を示すブロック図である。
【図１５】本実施例システムにおける物理的なメモリアドレスと論理的な座標の一例マッピング図である。
【図１６】本実施例システムにおける物理的なメモリアドレスと論理的な座標の他の例を示すマッピング図である。
【図１７】本実施例システムにおける物理的なメモリアドレスと論理的な座標のその他の例を示すマッピング図である。
【図１８】シンクロナスＤＲＡＭへのアドレス、データ、制御信号およびクロック端子をハイインピーダンスにするための一実施例ブロック図である。
【図１９】シンクロナスＤＲＡＭへのアドレス、データ、制御信号およびクロック端子をハイインピーダンスにするための他の実施例ブロック図である。
【図２０】シンクロナスＤＲＡＭと同一データバスにＲＯＭを接続した画像処理システムのブロック図である。
【図２１】シンクロナスＤＲＡＭに対し描画表示処理プロセッサから直接複数の周波数のクロックを供給する画像処理システムのブロック図である。
【図２２】シンクロナスＤＲＡＭに対し供給する複数の周波数のクロックを外部から供給する形式の画像処理システムのブロック図である。
【図２３】描画表示処理プロセッサが描画処理モジュールを含まない場合のように単一モジュールを含んで構成される画像処理システムの実施例ブロック図である。
【図２４】単一モジュールで複数の周波数のクロックを選択するクロックセレクタを有する画像処理システムの実施例ブロック図である。
【図２５】モジュールとバス制御部間のアドレスバスまたはデータバスを専用バスに下場合の実施例ブロック図である。
【図２６】外部端子からの入力タイミングによりメモリに対してモードレジスタの設定コマンドを発行する実施例のブロック図である。
【図２７】モードレジスタの設定コマンドを発行する専用命令による実行シーケンスを示すフローチャートである。
【図２８】モードレジスタの設定コマンドを発行する専用命令のフォーマットを示す説明図である。
【図２９】シンクロナスＤＲＡＭのモードレジスタの設定値を内部のデータバスから直接指定できるようにした実施例のブロック図である。
【図３０】アドレスデコーダにより専用にマッピングされた内部レジスタを書き換えることに同期してシンクロナスＤＲＡＭのモードレジスタの設定コマンドを発行する実施例を示すブロック図である。
【図３１】マイクロプログラム制御によってＳＤＡＲＭのモードレジスタの設定コマンドを発行する実施例のブロック図である。
【図３２】複数の描画表示処理プロセッサが単一のシンクロナスＤＲＡＭを共有するシステムの一例ブロック図である。
【図３３】本発明の別の実施例に係るデータプロセッサを備えた画像処理システムの一例ブロック図である。
【図３４】一つのシンクロナスＤＲＡＭを時分割的にリードライトして画像処理を行う場合の実施例システムブロック図である。
【図３５】図３３のシステムでパイプライン処理途上において読み出し時にミスヒットが発生した場合の一例動作タイミングチャートである。
【図３６】図３３のシステムで書き込み時にミスヒットが発生した場合の一例タイミングチャートである。
【図３７】図３４のシステムにおいて読み出し時にミスヒットが発生した場合の一例動作タイミングチャートである。
【図３８】図３４のシステムにおいて書込み時にミスヒットが発生した場合の一例動作タイミングチャートである。
【図３９】図３３のデータプロセッサにおける画像処理部の一例ブロック図である。
【図４０】図３３のデータプロセッサにおけるクロックドライバの一例ブロック図である。
【図４１】図３３のデータプロセッサにおけるバス制御部の一例ブロック図である。
【図４２】図３４のデータプロセッサにおけるバス制御部の一例ブロック図である。
【図４３】画像処理部をファクシミリに適応した場合のブロック図である。
【図４４】シンクロナスＤＲＡＭをタイムスロット方式で利用する場合の動作説明図である。
【図４５】画像処理部をグラフィックス処理に適用した場合の一例ブロック図である。
【図４６】画像処理部をプリンタへ適用した場合の一例ブロック図である。
【符号の説明】
１１  描画表示処理プロセッサ
１２  描画処理モジュール
１３  表示処理モジュール
１４  バス制御部
１６  クロックドライバ
１６０  クロックバッファ
１７  クロック発生部
２２  シンクロナスＤＲＡＭ
ＣＬＫ  クロック信号
２２ａ，２２ｂ  シンクロナスＤＲＡＭ
３０  モードレジスタ
ＢＡＮＫＡ，ＢＡＮＫＢ  メモリバンク
１２１  アドレスカウンタ
１２２  転送語数カウンタ
１２３  比較器
１２４  ソースＲＡＭ
１２６  ディスティネーションＲＡＭ
１２７  演算器
１４１  アービタ
１４２  セレクタ
１４３  シーケンサ
１４５  アドレスセレクタ
１４９  スリーステートコントロールビット
１４９５  バスバッファ
７０  データプロセッサ
７１  画像処理部
７２ａ，７２ｂ  ミスヒット検出部
ＷＲＭＴＨ，ＲＤＭＴＨ  ミスヒット信号
７４ａ，７４ｂ  バス制御部
７５  ＣＰＵ
ＳＤＣＡＣＫ  割り込み信号
【図１】
0003610029.tif 000002
【図２】
0003610029.tif 000003
【図３】
0003610029.tif 000004
【図４】
0003610029.tif 000005
【図５】
0003610029.tif 000006
【図６】
0003610029.tif 000007
【図７】
0003610029.tif 000008
【図８】
0003610029.tif 000009
【図９】
0003610029.tif 000010
【図１０】
0003610029.tif 000011
【図１１】
0003610029.tif 000012
【図１２】
0003610029.tif 000013
【図１３】
0003610029.tif 000014
【図１４】
0003610029.tif 000015
【図１５】
0003610029.tif 000016
【図１６】
0003610029.tif 000017
【図１７】
0003610029.tif 000018
【図１８】
0003610029.tif 000019
【図１９】
0003610029.tif 000020
【図２０】
0003610029.tif 000021
【図２１】
0003610029.tif 000022
【図２２】
0003610029.tif 000023
【図２３】
0003610029.tif 000024
【図２４】
0003610029.tif 000025
【図２５】
0003610029.tif 000026
【図２６】
0003610029.tif 000027
【図２７】
0003610029.tif 000028
【図２８】
0003610029.tif 000029
【図２９】
0003610029.tif 000030
【図３０】
0003610029.tif 000031
【図３１】
0003610029.tif 000032
【図３２】
0003610029.tif 000033
【図３３】
0003610029.tif 000034
【図３４】
0003610029.tif 000035
【図３５】
0003610029.tif 000036
【図３６】
0003610029.tif 000037
【図３７】
0003610029.tif 000038
【図３８】
0003610029.tif 000039
【図３９】
0003610029.tif 000040
【図４０】
0003610029.tif 000041
【図４１】
0003610029.tif 000042
【図４２】
0003610029.tif 000043
【図４３】
0003610029.tif 000044
【図４４】
0003610029.tif 000045
【図４５】
0003610029.tif 000046
【図４６】
0003610029.tif 000047