| 【発明の名称】 |
データ処理システム |
| 【発明者】 |
【氏名】佐藤 潤
【氏名】山岸 一繁
【氏名】中島 啓介
【氏名】桂 晃洋
【氏名】宮本 崇
【氏名】大村 賢一郎
【氏名】渡部 満
|
| 【要約】 |
【課題】
【解決手段】 |
【特許請求の範囲】
【請求項1】 中央処理装置と、クロック信号に同期してデータの入出力を行うメモリと、上記中央処理装置に接続されるホストインタフェース部と、上記メモリに接続されるメモリインタフェース部と、制御部とを有するメモリ制御装置とを有し、上記ホストインタフェース部は、上記中央処理装置から所定の制御信号を受け、又は上記中央処理装置との間でデータの受け渡しを行い、上記制御部は、上記中央処理装置からの制御信号に応じて上記メモリインタフェース部を介して上記メモリにデータの格納又は読み出しを行い、上記メモリインタフェース部は、上記メモリに供給する複数の制御信号と上記メモリとの間でデータの受け渡しを行うための複数の端子を有し、上記メモリへのデータの格納を示す上記複数の制御信号の第1の信号状態を出力し、又は読み出しを示す上記複数の制御信号の第2の信号状態を出力し、上記メモリに供給されるクロック信号に同期して上記複数の端子を介してデータを供給し又は受け取ることを特徴とするデータ処理システム。 【請求項2】 上記メモリに供給されるクロック信号を供給するクロックドライバとクロック供給端子を更に有することを特徴とする請求項1記載のデータ処理システム。 【請求項3】 上記メモリはモードレジスタを有し、上記メモリインタフェース部は上記モードレジスタの設定を示す上記複数の制御信号の第3の信号状態を出力し、上記複数の端子を介して上記モードレジスタに設定する情報を上記メモリに供給することを特徴とする請求項1記載のデータ処理システム。 【請求項4】 上記第3の信号状態は複数回数出力することが出来ることを特徴とする請求項3記載のデータ処理システム。 【請求項5】 上記中央処理装置と上記メモリ制御装置とを接続する第1のバスと、上記メモリと上記メモリ制御装置とを接続する第2のバスとを有することを特徴とする請求項1記載のデータ処理システム。
|
【発明の詳細な説明】【0001】 【産業上の利用分野】本発明は、パーソナルコンピュータやワークステーションなどの情報端末機器分野における、メモリ上に割り付けられた画像データなどを加工するデータ処理システム、更には画像処理システムに係り、特にクロックに同期して高速にメモリをアクセスする高速画像処理システムに適用して有効な技術に関するものである。 【0002】 【従来の技術】画像処理システムにおいて、描画表示処理プロセッサは、CPUから転送される描画コマンドやパラメータに従いフレームバッファに描画処理を実行する。この描画表示処理プロセッサは、フレームバッファあるいは専用のローカルメモリに予じめ配置された描画コマンド及びパラメータに従い描画処理を実行する場合もある。描画表示処理プロセッサはまた、モニタの水平、垂直同期タイミングならびにドットレートに合わせ、必要な表示データをフレームバッファから読出し、ドットシフタを介してモニタに表示する。クロック発生部は水晶発振子の基準周波数を基に基本クロック、ドットクロックを作成し、描画表示処理プロセッサ及びドットシフタに供給する。このような画像処理システムのフレームバッファとしては、表示データをビットマップ配置したりする必要性から記憶容量の大きなDRAM(ダイナミック・ランダム・アクセス・メモリ)やマルチポートDRAMを採用することができる。 【0003】また、従来ファクシミリやプリンタ,グラフィックス装置で用いられている画像処理システムは、特開昭61−261969号で記載されているように周辺画素を参照する局所的な処理用として高速のSRAM(スタティック・ランダム・アクセス・メモリ)、符号データやフォントデータ格納用の大容量メモリとしてDRAMを使用している。 【0004】 【発明が解決しようとする課題】近年のビジネス用パーソナルコンピュータやワークステーションなどの情報端末機器分野の画像処理システムの動向としては、高画質化、高速処理、大容量化が進み、フレームバッファとして標準的なDRAMで構成する場合データバス幅を大きくした構成が多くなっており、またマルチポートDRAMで構成することにより描画処理効率を向上させた構成も採用されている。これに伴い、装置コストが上昇するという問題点があった。 【0005】一方、高速で、大容量のメモリとしてシンクロナスDRAMが注目され始めている。このシンクロナスDRAMは、従来のDRAMに比べ、クロックに同期してデータ、アドレス、及び制御信号を入出力できるため、DRAMと同様の大容量メモリをSRAM(スタティック・ランダム・アクセス・メモリ)に匹敵する高速動作が可能に実現でき、従来のDRAM以上の高速アクセスと大容量を低価格で実現可能となるメモリである。このシンクロナスDRAMは、選択された1本のワード線に対して幾つのデータをアクセスするかを例えばバーストレングスによって指定できるようになっており、バーストレングスがNである場合には内蔵カラムアドレスカウンタによってカラム系の選択状態を順次切換えていってN個のデータを連続的にリード又はライトできるようになっている。尚、シンクロナスDRAMをメインメモリやグラフィックスに応用することについて記載された文献の例としては電子技術(1993−10)の第24頁〜28頁に記載の「高速DRAMのメインメモリ、グラフィックスなどへの応用」がある。 【0006】本発明者は、高速処理用メモリと大容量メモリを統合し、低コストに大容量、且つ高速のメモリのアクセスを実現する画像処理システムを提供することについて検討した。具体的にはクロックに同期してアドレス、データおよび制御信号をラッチする機能を有するメモリとしてシンクロナスDRAMを用いてシステムを構成する場合について検討し、代表的に以下の点が明らかにされた。 【0007】第1に、クロックに同期してデータ、アドレス、制御信号を入出力するシンクロナスDRAMの性質上、アクセス動作の信頼性を保ち且つ高速アクセスを実現するには、回路モジュールが出力するデータ、アドレス、制御信号とクロック信号とのスキューを小さくしなければならない。 【0008】第2に、任意方向への直線描画ではメモリアドレスが同じロウアドレス内で連続しない描画処理になり、バーストレングスは1が望ましく、それに対しメモリクリヤなどの矩形の塗りつぶし描画ではメモリアドレスが同じロウアドレス内で連続する描画処理になるため、バーストレングスはN(N>1)が望ましく、描画処理内容に応じてバーストレングスを変更する処理を表示制御システム側で行うことが望ましい。 【0009】第3に、シンクロナスDRAM(シンクロナスDRAM)を用いてシステムを構成した場合を検討している。シンクロナスDRAMを利用することで、アクセスしたいアドレスを発行してから、例えばリードデータが出力されるクロックタイミングを指定できるため、リード処理を完結する前に、次のアドレスを発行することが可能になるが、続けてアドレスを発行する場合は同じロウアドレス内に限られており、同じバンクで異なるロウアドレスにアクセスするためには、プリチャージ処理などのミスヒット処理が必要となる。 【0010】本発明の目的は、シンクロナスDRAMのような高速動作と大容量を兼ね備えたクロック同期型のメモリを画像処理システムなどに適用する際に発生する上記諸問題を解決し、低価格で高性能な画像処理システムさらにはデータ処理システムならびにそのためのデータプロセッサを実現するための技術を提供することにある。 【0011】さらに詳しくは、本発明はシンクロナスDRAMを用いてメモリを統合したシステムを構成する上で課題となる、処理内容に応じてバーストレングスを変更する処理を実現することを目的とする。また、バーストレングスに合わせてメモリのバススループットを低コストに向上させることを目的とする。さらに、ミスヒット処理を低コストに且つ高速に実現することを目的とする。そして、シンクロナスDRAMのような高速動作と大容量を兼ね備えたクロック同期型のメモリをアクセス制御するに最適なデータプロセッサを提供することを目的とする。 【0012】本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。 【0013】 【課題を解決するための手段】本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。すなわち、本願発明は、シンクロナスDRAMのようなメモリに対するクロック信号の供給、その動作モードが指定されるためのモードレジスタの設定、及びミスヒットに関する処理に大別される。 【0014】《クロックの供給》外部から供給されるクロック信号(CLK)に同期してアドレス入力、データ入出力及び制御信号入力が可能にされるシンクロナスDRAMのようなメモリ(22)にインタフェースされるバス制御手段(14)と、上記バス制御手段に結合され、上記メモリをアクセスするためのデータ及びアドレスを夫々が生成する複数個のデータ処理モジュール(12,13)と、上記データ処理モジュールに夫々固有の動作クロック信号を供給すると共に、それによって動作されるデータ処理モジュールの動作に同期して上記メモリをアクセスするためのクロック信号を外部に供給するためのクロック供給手段と、を備えてデータプロセッサを構成する。 【0015】複数個のデータ処理モジュールの動作速度が相違される場合にも容易に対処できるようにするには、上記クロック供給手段は、上記複数個のデータ処理モジュールの動作速度毎に設けられた複数個のクロックドライバ(16c,16s)と、夫々のクロックドライバの出力の中から、アクセス主体とされるデータ処理モジュールに対応されるものを選択して外部に供給するクロックセレクタ(25)と、から構成できる。 【0016】複数個のデータプロセッサがメモリを共有する場合においてクロック信号の競合を回避するには、上記クロック供給手段からのクロック信号を外部に出力すると共に選択的に高出力インピーダンス状態に制御可能なクロックバッファ(160)を採用することができる。 【0017】データ処理のためのパラメータなどを格納したROMなどを上記メモリのバスに共通接続して利用可能にするには、上記バス制御手段は、それに結合される上記メモリよりもアクセス速度の遅いROMのような別のメモリに対するアクセスをそのアクセスアドレスから判定して上記メモリに比べてメモリサイクルを引き延ばすものとされる。 【0018】上記バス制御手段は上記データ処理モジュールから上記メモリに対するアクセスの指示を受けて当該メモリの動作モードを決定するためのコマンドを制御信号として出力する手段(143,144,1495c)を備えることができる。 【0019】上記データプロセッサは1個の半導体基板に形成することができる。また、上記データプロセッサは、クロック信号に同期してアドレス入力、データ入出力及び制御信号入力が可能にされ上記データプロセッサのバスインタフェース手段に結合されたメモリと、上記データプロセッサのクロック供給手段に結合されたクロック発生手段と、共にデータ処理システムを構成することができる。 【0020】《モードレジスタ設定》クロック信号(CLK)に同期してアドレス入力、データ入出力及び制御信号入力が可能であると共に内蔵アドレスカウンタ(207)にプリセットされたアドレスをモードレジスタ(30)の設定値に応じた回数更新してデータのリード・ライトが可能にされた書換え可能なメモリと、上記メモリをアクセスするためのデータ及びアドレスを生成すると共に当該メモリを少なくともフレームバッファに利用して画像用データ処理を行い、そのデータ処理条件に応じて上記モードレジスタを設定するためのコマンドとレジスタ設定値とを発行するデータプロセッサ(11)と、を備えてデータ処理システムを構成することができる。 【0021】このシステムにおいて上記データプロセッサ(11)には、上記モードレジスタを設定するためのコマンド発行タイミングを規定するための外部信号(135)の入力端子を設けることができる。また、上記モードレジスタを設定するためのコマンドの発行に割り当てられた命令を実行可能な命令制御手段(51〜57)を採用できる。さらにまた、上記モードレジスタを設定するためのコマンドの発行に割り当てられたアドレスに対する内部アクセスを検出するアドレスデコーダ(1481)と、このアドレスデコーダによる検出結果に従って上記モードレジスタ設定用コマンドを発行させ、且つ当該内部アクセスの対象とされるデータをコマンドレジスタに対する設定値として外部に出力させるシーケンサ(143)と、を備えた構成を採用できる。 【0022】メモリアクセスを伴うデータ処理のスループットを向上されると言う点に着目したデータ処理システムは、メモリ((22)と、このメモリをアクセスして画像用データ処理を行うデータプロセッサ(11)とを供え、上記メモリは、複数個のメモリバンク(200A,200B)を備え、クロック信号(CLK)に同期してアドレス入力、データ入出力及び制御信号入力が可能にされると共に、内蔵アドレスカウンタ(207)にプリセットされたアドレスを更新しながらアクセスされるバーストモードを有し、バーストモードで動作中のメモリバンクの動作に並行して別のメモリバンクにそのアクセスアドレスを設定するアドレスアクティブコマンドを受け付け可能にされて成り、上記データプロセッサは、上記メモリをアクセスするためのデータ及びアドレスを生成すると共に当該メモリを少なくともフレームバッファに利用して画像用データ処理を行うためのデータ処理モジュール(12,13)と、バーストモードにてアクセス動作中のメモリバンクとは異なるメモリバンクに対するデータ処理モジュールからのアクセスの指示に対しては当該メモリバンクのために上記アクティブアドレスコマンドを発行してそのアクセスアドレスを予じめ設定可能にするバス制御手段(14)とを備えて成る。 【0023】《ミスヒットの処理》複数個のメモリを並列的にリード・ライトしながらパイプライン的にデータ処理を行うシステムは、ロウアドレスをラッチし、一旦ラッチされたロウアドレスと同一ロウアドレスのアクセスはカラムアドレスの更新によって連続的にアクセス可能にされると共に、クロック信号に同期してアドレス入力、データ入出力及び制御信号入力が可能にされる第1及び第2のメモリ(82a,82b)と、第1及び第2のメモリに個別的に割り当てられたメモリバス(821a,822a、821b,822b、)と、上記メモリバスに各別に割り当てられたバス制御手段(74a,74b)と、上記夫々のバス制御手段に結合され、上記第1及び第2のメモリをアクセスするためのデータ及びアドレスを生成するものであって、第1のメモリから読み出したデータに対してデータ処理を行いそのデータ処理結果を第2のメモリに格納するための当該第1及び第2のメモリのアクセスアドレスを並列的に生成して出力可能にされたデータ処理モジュール(71)と、データ処理モジュールから出力される第2のメモリのためのアクセスアドレスを上記データ処理の時間に相当する遅延時間を以て第2のメモリに伝達するための遅延手段(731,732)とから成る。要するに第1及び第2のメモリの夫々に個別化されたメモリバスを介して並列的に情報をやりとりするようにし、そのための双方のメモリに対するアクセスアドレスはデータ処理モジュールが並列的に出力し、並列的に出力された双方のアクセスアドレスが対応メモリへ入力されるタイミングは遅延手段で一義的に決定されるようになっている。 【0024】このシステムにおいてパイプライン的なデータ処理の乱れを防止するために、上記データ処理モジュールから第1及び第2のメモリに向けて並列的に出力される夫々のアクセスアドレスのロウアドレスにつき前回供給されたロウアドレスと不一致であるか否かを実質的に同じタイミングを以て検出するミスヒット検出手段と、上記ミスヒット検出手段にて上記ロウアドレスの不一致が検出されたとき当該ミスヒットに係るロウアドレスの更新期間中にデータ処理モジュールの動作を停止させる手段とを採用することができる。さらに詳述するならば、複数個のメモリを並列的にリード・ライトして実現されるパイプラインの乱れ防止に着目したデータ処理システムは、ロウアドレスをラッチし、一旦ラッチされたロウアドレスと同一ロウアドレスのアクセスはカラムアドレスの更新によって連続的にアクセス可能にされると共に、クロック信号に同期してアドレス入力、データ入出力及び制御信号入力が可能にされる第1及び第2のメモリ(82a,82b)と、第1及び第2のメモリに個別的に割り当てられたメモリバス(821a,822a、821b,822b、)と、上記メモリバスに各別に割り当てられたバス制御手段(74a,74b)と、上記夫々のバス制御手段に結合され、上記第1及び第2のメモリをアクセスするためのデータ及びアドレスを生成するものであって、第1のメモリから読み出したデータに対してデータ処理を行いそのデータ処理結果を第2のメモリに格納するための当該第1及び第2のメモリのアクセスアドレスを並列的に生成して出力可能にされたデータ処理モジュール(71)と、データ処理モジュールから出力される第2のメモリのためのアクセスアドレスを上記データ処理の時間に相当する遅延時間を以て第2のメモリに伝達するための遅延手段(731,732)と、上記データ処理モジュールから第1のメモリに向けて出力されるロウアドレスが前回供給されたロウアドレスと不一致であるか否かを検出するために設けられた第1のミスヒット検出手段(72b)と、上記データ処理モジュールから第2のメモリに向けて出力されるロウアドレスが前回供給されたロウアドレスと不一致であるか否かを検出するために設けられ、その検出タイミングが第1のミスヒット検出手段による検出タイミングと実質的に同時とされる第2のミスヒット検出手段(72a)と、上記第1及び第2のミスヒット検出手段のうちの何れかで不一致が検出されたとき当該ミスヒットに係るロウアドレスの更新期間中にデータ処理モジュールの動作を停止させる手段(76)と、を備えて構成される。 【0025】メモリアクセス主体の変更に伴うミスヒット時の処理の信頼性を向上させる点に着目したデータ処理システムは、ロウアドレスをラッチし、一旦ラッチされたロウアドレスと同一ロウアドレスのアクセスはカラムアドレスの更新によって連続的にアクセス可能にされると共に、クロック信号に同期してアドレス入力、データ入出力及び制御信号入力が可能にされるメモリ(182a)と、上記メモリをアクセスするためのデータ及びアドレスを生成する複数個のデータ処理モジュール(71,75)と、上記夫々のデータ処理モジュールからメモリに向けて出力されるロウアドレスが前回供給されたロウアドレスと不一致であるか否かを検出するために設けられたミスヒット検出手段(72a)と、上記メモリをアクセスするデータ処理モジュールの変更を検出する手段(725)と、上記ミスヒット検出手段による不一致の検出と上記検出手段によるアクセス主体変更の検出との何れの場合においても当該アクセスのためのロウアドレスの更新処理を上記メモリに対して指示するバス制御手段(74a)と、を備えて構成される。 【0026】 【作用】上記した手段によれば、上記メモリ例えばシンクロナスDRAMには、クロックに同期してデータ、アドレス、制御信号を入出力する必要があるため、シンクロナスDRAMにアクセスするデータプロセッサと同一クロック、逓倍クロック、あるいは分周クロックを供給する必要がある。しかし、クロック発生器の出力を、データプロセッサとシンクロナスDRAMに並列に供給した場合、クロックのスキューやプロセッサの内部遅延により、クロックに対してのデータ、アドレス、制御信号のセットアップ、ホールドタイムなどのマージンが取れなくなってしまう。この点を解決するため、データプロセッサから、シンクロナスDRAMに同期クロック信号を供給する。これによって、シンクロナスDRAMに供給するクロックとデータ、アドレス、制御信号のディレーを合わせ込むことが可能となり、マージンのある設計が可能となる。 【0027】上記データプロセッサの内部に異なる周波数で動作するデータ処理モジュールが存在する場合、バスマスターになるデータ処理モジュールのクロックをデータプロセッサの内部で選択し、シンクロナスDRAMにクロックを供給する構成を採用する。これにより、シンクロナスDRAMに供給するクロックとデータ、アドレス、制御信号のディレーをバスマスターになるデータ処理モジュール単位で合わせ込むことが可能となり、マージンのある設計が可能となる。 【0028】外部システムに対しシンクロナスDRAMを解放する方式としてデータプロセッサのシンクロナスDRAMに対するデータ、アドレス、制御信号並びに供給するクロック端子をハイインピーダンスにする制御する。このため外部システムがシンクロナスDRAMを直接アクセスする場合にマージンのある設計が可能となる。 【0029】シンクロナスDRAMに内蔵されているモードレジスタは、シンクロナスDRAMの動作モードを指定するためのレジスタである。プロセッサの内部アーキテクチャおよび処理内容に応じたモードレジスタの設定方式を採用して、最適なモードレジスタの設定が可能になる。例えば任意方向への直線描画ではメモリアドレスが同じロウアドレス内で連続しない描画処理になり、モードレジスタに設定するバーストレングスは1が望ましく、それに対しメモリクリヤなどの矩形の塗りつぶし描画ではメモリアドレスが同じロウアドレス内で連続する描画処理になり、バーストレングスはN(N>1)が望ましく、描画処理内容に応じてバーストレングスを変更する処理が必要となる。このため本発明では、多様な処理内容に応じてモードレジスタをダイナミックに変更する処理を行う。バーストレングスに合わせてメモリのバススループットが低コストに向上される。 【0030】高速転送が可能な条件は、同一ロウアドレス内に限られ、異なるロウアドレスに移動する場合には、プリチャージコマンド、ロウアドレスの活性化コマンドを発行する必要がある。このため本発明では物理的なメモリアドレスと論理的な座標のマッピングとして、例えばX方向の同一ロウアドレスのとなり合うアドレスとして必ず異なるバンクアドレス配置した。バーストレングスをN(N>1)として設定した場合、シンクロナスDRAMに対し現在データをアクセス中に上記アクセス中のバンクとは異なるバンクに対し、プリチャージコマンドおよびアクティブコマンドを発生することが可能となり、バススループットを向上させる。描画処理モジュール、表示処理モジュールまたはバス制御部内にあらかじめアドレスを演算する手段とロウアドレスの切り換えを判定する手段を設け、ロウアドレスの変化を検出するとバス制御部内のシーケンサにて、プリチャージコマンド、ロウアドレスの活性化コマンドを発行し、続いて列アドレスを発行する。これによって、リード・ライト動作の高速化を実現する。 【0031】シンクロナスDRAMのうちラインメモリとして利用しているアドレス範囲を高速に参照し、画像処理した結果を、シンクロナスDRAMのうちページバッファとして利用しているアドレス範囲に書き込む際、読み出し・書き込みで独立してミスヒットが発生すると画像処理部内のパイプラインが崩れ、処理が連続しなくなる。そこで、読み出し時と書き込み時の何れにおいてもミスヒットが発生すれば両方のミスヒットが起こったものとして扱うことでパイプラインにおけるメモリリードとライトの同期化を実現する。そのために、書き込み側のミスヒットを読み出し側のミスヒットと実質的に同じタイミングを以て検出可能な書き込みアドレスのミスヒットの検出手段が採用されている。 【0032】メモリに対するアクセス主体変更時において強制的にミスヒットを生じさせることは、メモリアクセス主体の変更に伴って動作が停止されたデータ処理モジュールの動作再開時点などにおけるミスヒット判定の不確定性に対処することができ、ミスヒット時の処理の信頼性を向上させる。 【0033】 【実施例】《シンクロナスDRAM》図2にはシンクロナスDRAMの一例ブロック図が示される。同図に示されるシンクロナスDRAM22は特に制限されないが、公知の半導体集積回路製造技術によって単結晶シリコンなどの一つの半導体基板に形成される。このシンクロナスDRAM22は、メモリバンクA(BANKA)を構成するメモリアレイ200AとメモリバンクB(BANKB)を構成するメモリアレイ200Bを備える。夫々のメモリアレイ200A,200Bは、マトリクス配置されたダイナミック型のメモリセルを備え、図にしたがえば、同一列に配置されたメモリセルの選択端子は列毎に対応ワード線(図示せず)に結合され、同一行に配置されたメモリセルのデータ入出力端子は行毎に対応相補データ線(図示せず)に結合される。 【0034】上記メモリアレイ200Aの図示しないワード線はロウデコーダ201Aによるロウアドレス信号のデコード結果に従って1本が選択レベルに駆動される。メモリアレイ200Aの図示しない相補データ線はセンスアンプ及びカラム選択回路202Aに結合される。センスアンプ及びカラム選択回路202Aにおけるセンスアンプは、メモリセルからのデータ読出しによって夫々の相補データ線に現れる微小電位差を検出して増幅する増幅回路である。それにおけるカラムスイッチ回路は、相補データ線を各別に選択して相補共通データ線204に導通させるためのスイッチ回路である。カラムスイッチ回路はカラムデコーダ203Aによるカラムアドレス信号のデコード結果に従って選択動作される。メモリアレイ200B側にも同様にロウデコーダ201B,センスアンプ及びカラム選択回路202B,カラムデコーダ203Bが設けられる。上記相補共通データ線204は入力バッファ210の出力端子及び出力バッファ211の入力端子に接続される。入力バッファ210の入力端子及び出力バッファ211の出力端子は16ビットのデータ入出力端子I/O0〜I/O15に接続される。尚、ロウアドレス信号の所定の1ビットはメモリバンク200A,200Bの何れかを選択する信号とされる。 【0035】アドレス入力端子A0〜A9から供給されるロウアドレス信号とカラムアドレス信号はカラムアドレスバッファ205とロウアドレスバッファ206にアドレスマルチプレクス形式で取り込まれる。供給されたアドレス信号はそれぞれのバッファが保持する。ロウアドレスバッファ206はリフレッシュ動作モードにおいてはリフレッシュカウンタ208から出力されるリフレッシュアドレス信号をロウアドレス信号として取り込む。カラムアドレスバッファ205の出力はカラムアドレスカウンタ207のプリセットデータとして供給され、カラムアドレスカウンタ207は後述のコマンドなどで指定される動作モードに応じて、上記プリセットデータとしてのカラムアドレス信号、又はそのカラムアドレス信号を順次インクリメントした値を、カラムデコーダ203A,203Bに向けて出力する。 【0036】コントローラ212は、特に制限されないが、クロック信号CLK、クロックイネーブル信号CKE、チップセレクト信号CS*(記号*はこれが付された信号がローイネーブルの信号であることを意味する)、カラムアドレスストローブ信号CAS*、ロウアドレスストローブ信号RAS*、及びライトイネーブル信号WE*などの外部制御信号と、アドレス入力端子A0〜A9からの制御データとが供給され、それら信号のレベルや変化のタイミングなどに基づいてシンクロナスDRAMの動作モード及び上記回路ブロックの動作を制御するための内部タイミング信号を形成するもので、そのためのコントロールロジック(図示せず)とモードレジスタ30を備える。 【0037】クロック信号CLKはシンクロナスDRAMのマスタクロックとされ、その他の外部入力信号は当該クロック信号CLKの立ち上がりエッジに同期して有意とされる。チップセレクト信号CS*はそのローレベルによってコマンド入力サイクルの開始を指示する。チップセレクト信号CS*がハイレベルのとき(チップ非選択状態)その他の入力は意味を持たない。但し、後述するメモリバンクの選択状態やバースト動作などの内部動作はチップ非選択状態への変化によって影響されない。RAS*,CAS*,WE*の各信号は通常のDRAMにおける対応信号とは機能が相違され、後述するコマンドサイクルを定義するときに有意の信号とされる。 【0038】クロックイネーブル信号CKEは次のクロック信号の有効性を指示する信号であり、当該信号CKEがハイレベルであれば次のクロック信号CLKの立ち上がりエッジが有効とされ、ローレベルのときは無効とされる。更に、図示はしないがリードモードにおいて出力バッファ211に対するアウトプットイネーブルの制御を行う外部制御信号もコントローラ30に供給され、その信号が例えばハイレベルのときは出力バッファ211は高出力インピーダンスイ状態にされる。 【0039】上記ロウアドレス信号は、クロック信号CLKの立ち上がりエッジに同期する後述のロウアドレスストローブ・バンクアクティブコマンドサイクルにおけるA0〜A8のレベルによって定義される。 【0040】A9からの入力は、上記ロウアドレスストローブ・バンクアクティブコマンドサイクルにおいてメモリバンクの選択信号とみなされる。即ち、A9の入力がローレベルの時はメモリバンク200Aが選択され、ハイレベルの時はメモリバンク200Bが選択される。メモリバンクの選択制御は、特に制限されないが、選択メモリバンク側のロウデコーダのみの活性化、非選択メモリバンク側のカラムスイッチ回路の全非選択、選択メモリバンク側のみの入力バッファ210及び出力バッファ211への接続などの処理によって行うことができる。 【0041】後述のプリチャージコマンドサイクルにおけるA8の入力は相補データ線などに対するプリチャージ動作の態様を指示し、そのハイレベルはプリチャージの対象が双方のメモリバンク200A,200Bであることを指示し、そのローレベルは、A9で指示されている一方のメモリバンクがプリチャージ対象であることを指示する。 【0042】上記カラムアドレス信号は、クロック信号CLKの立ち上がりエッジに同期するリード又はライトコマンド(後述のカラムアドレス・リードコマンド、カラムアドレス・ライトコマンド)サイクルにおけるA0〜A7のレベルによって定義される。そして、この様にして定義されたカラムアドレスはバーストアクセスのスタートアドレスとされる。 【0043】次にコマンドによって指示されるシンクロナスDRAMの主な動作モードを説明する。 (1)モードレジスタセットコマンド(Mo) 上記モードレジスタ30をセットするためのコマンドであり、CS*,RAS*,CAS*,WE*=ローレベルによって当該コマンド指定され、セットすべきデータ(レジスタセットデータ)はA0〜A9を介して与えられる。レジスタセットデータは、特に制限されないが、バーストレングス、CASレイテンシー、ライトモードなどとされる。特に制限されないが、設定可能なバーストレングスは、1,2,4,8,フルページ(256)とされ、設定可能なCASレイテンシーは1,2,3とされ、設定可能なライトモードは、バーストライトとシングルライトとされる。上記CASレイテンシーは、後述のカラムアドレス・リードコマンドによって指示されるリード動作においてCAS*の立ち下がりから出力バッファ211の出力動作までにクロック信号CLKの何サイクル分を費やすかを指定するものである。読出しデータが確定するまでにはデータ読出しのための内部動作時間が必要とされ、それをクロック信号CLKの使用周波数に応じて設定するためのものである。換言すれば、周波数の高いクロック信号CLKを用いる場合にはCASレイテンシーを相対的に大きな値に設定し、周波数の低いクロック信号CLKを用いる場合にはCASレイテンシーを相対的に小さな値に設定する。 【0044】(2)ロウアドレスストローブ・バンクアクティブコマンド(Ac) これは、ロウアドレスストローブの指示とA9によるメモリバンクの選択を有効にするコマンドであり、CS*,RAS*=ローレベル、CAS*,WE*=ハイレベルによって指示され、このときA0〜A8に供給されるアドレスがロウアドレス信号として、A9に供給される信号がメモリバンクの選択信号として取り込まれる。取り込み動作は上述のようにクロック信号CLKの立ち上がりエッジに同期して行われる。例えば、当該コマンドが指定されると、それによって指定されるメモリバンクにおけるワード線が選択され、当該ワード線に接続されたメモリセルが夫々対応する相補データ線に導通される。 【0045】(3)カラムアドレス・リードコマンド(Re) このコマンドは、バーストリード動作を開始するために必要なコマンドであると共に、カラムアドレスストローブの指示を与えるコマンドであり、CS*,CAS*,=ロウレベル、RAS*,WE*=ハイレベルによって指示され、このときA0〜A7に供給されるアドレスがカラムアドレス信号として取り込まれる。これによって取り込まれたカラムアドレス信号はバーストスタートアドレスとしてカラムアドレスカウンタ207に供給される。これによって指示されたバーストリード動作においては、その前にロウアドレスストローブ・バンクアクティブコマンドサイクルでメモリバンクとそれにおけるワード線の選択が行われており、当該選択ワード線のメモリセルは、クロック信号CLKに同期してカラムアドレスカウンタ207から出力されるアドレス信号に従って順次選択されて連続的に読出される。連続的に読出されるデータ数は上記バーストレングスによって指定された個数とされる。また、出力バッファ211からのデータ読出し開始は上記CASレイテンシーで規定されるクロック信号CLKのサイクル数を待って行われる。 【0046】(4)カラムアドレス・ライトコマンド(Wr) ライト動作の態様としてモードレジスタ30にバーストライトが設定されているときは当該バーストライト動作を開始するために必要なコマンドとされ、ライト動作の態様としてモードレジスタ30にシングルライトが設定されているときは当該シングルライト動作を開始するために必要なコマンドとされる。更に当該コマンドは、シングルライト及びバーストライトにおけるカラムアドレスストローブの指示を与える。当該コマンドは、CS*,CAS*,WE*,=ロウレベル、RAS*=ハイレベルによって指示され、このときA0〜A7に供給されるアドレスがカラムアドレス信号として取り込まれる。これによって取り込まれたカラムアドレス信号はバーストライトにおいてはバーストスタートアドレスとしてカラムアドレスカウンタ207に供給される。これによって指示されたバーストライト動作の手順もバーストリード動作と同様に行われる。但し、ライト動作にはCASレイテンシーはなく、ライトデータの取り込は当該カラムアドレス・ライトコマンドサイクルから開始される。 【0047】(5)プリチャージコマンド(Pr) これは、A8,A9によって選択されたメモリバンクに対するプリチャージ動作の開始コマンドとされ、CS*,RAS*,WE*,=ロウレベル、CAS*=ハイレベルによって指示される。 【0048】(6)オートリフレッシュコマンドこのコマンドはオートリフレッシュを開始するために必要とされるコマンドであり、CS*,RAS*,CAS*=ロウレベル、WE*,CKE=ハイレベルによって指示される。 【0049】(7)バーストストップ・イン・フルページコマンドフルページに対するバースト動作を全てのメモリバンクに対して停止させるために必要なコマンドであり、フルページ以外のバースト動作では無視される。このコマンドは、CAS*,WE*=ローレベル、RAS*,CAS*=ハイレベルによって指示される。 【0050】(8)ノーオペレーションコマンド(Nop) これは実質的な動作を行わないことを指示するコマンドであり、CS*=ローレベル、RAS*,CAS*,WE*=ハイレベルによって指示される。 【0051】シンクロナスDRAMにおいては、一方のメモリバンクでバースト動作が行われているとき、その途中で別のメモリバンクを指定して、ロウアドレスストローブ・バンクアクティブコマンドが供給されると、当該実行中の一方のメモリバンクでの動作には何等影響を与えることなく、当該別のメモリバンクにおけるロウアドレス系の動作が可能にされる。例えば、シンクロナスDRAMは外部から供給されるデータ、アドレス、及び制御信号を内部に保持する手段を有し、その保持内容、特にアドレス及び制御信号は、特に制限されないが、メモリバンク毎に保持されるようになっている。或は、ロウアドレスストローブ・バンクアクティブコマンドサイクルによって選択されたメモリブロックにおけるワード線1本分のデータがカラム系動作の前に予じめ読み出しのために図示しないラッチ回路にラッチされるようなっている。したがって、データ入出力端子I/O0〜I/O15においてデータが衝突しない限り、処理が終了していないコマンドの実行中に、当該実行中のコマンドが処理対象とするメモリバンクとは異なるメモリバンクに対するプリチャージコマンド、ロウアドレスストローブ・バンクアクティブコマンドを発行して、内部動作を予じめ開始させることが可能である。 【0052】以上により、シンクロナスDRAM22はクロック信号CLKに同期してデータ、アドレス、制御信号を入出力できるため、DRAMと同様の大容量メモリをSRAMに匹敵する高速動作させることが可能であり、また、選択された1本のワード線に対して幾つのデータをアクセスするかをバーストレングスによって指定することによって、内蔵カラムアドレスカウンタ207で順次カラム系の選択状態を切換えていって複数個のデータを連続的にリード又はライトできることが理解されよう。 【0053】《描画表示処理プロセッサ》図1には本発明の一実施例に係る描画表示処理プロセッサ11とそれを適用した画像処理システムのブロック図が示される。同図に示される画像処理システムは、全体の制御を司るCPU(中央処理装置)15、CPU15のワーク領域やデータに一時記憶領域などに利用されるシステムメモリ151、描画表示処理プロセッサ(データプロセッサ)11、クロック発生部18、描画表示処理プロセッサ11によってアクセス制御される上記シンクロナスDRAM22、及び描画表示処理プロセッサ11によって表示制御されるモニタ20によって構成される。 【0054】特に制限されないが、図1のシステムにおいてSDARM22は、描画処理モジュール12や表示処理モジュール13のためのコマンドやパラメータの格納領域とされる。それらは、特に制限されないが、予じめCPU15から転送される。さらにシンクロナスDRAM22はフレームバッファや描画処理のためのデータ一時記憶領域もしくは作業領域としても利用される。 【0055】上記描画表示処理プロセッサ11における描画処理モジュール12は、シンクロナスDRAM22から、上記コマンドやパラメータをバス制御部14を介して読出し、コマンドの指示に従いシンクロナスDRAM22に描画処理を実行する。描画表示処理プロセッサ11における表示処理モジュール13は、内部の水平、垂直アドレスカウンタを、モニタ20の水平、垂直同期タイミングに合わせて更新し、バス制御部14を介して必要な表示データをシンクロナスDRAM22から読出し、モニタ20の表示速度すなわちドットレートに合わせて出力する。モニタ20は表示処理モジュール13から出力される上記表示データを垂直、水平の各同期信号に同期して表示する。 【0056】クロックドライバ16はクロック発生部18からの基本クロック181を受け、描画処理モジュール12、表示処理モジュール13、バス制御部14に供給すると共に、外部のシンクロナスDRAM22に対してもクロック信号を供給する。クロックドライバ16からシンクロナスDRAM22に供給されるクロック信号は図2で説明したクロック信号CLKとされる。 【0057】本実施例の描画表示処理プロセッサ11はシンクロナスDRAM22に対するアクセス制御の点において、(1)クロック供給、(2)モードレジスタの設定、(3)データアクセスのパイプライン化、(4)複数モジュールからのバス競合対策などの点をそれぞれ考慮して構成されている。次に夫々の内容を順次説明する。 【0058】《シンクロナスDRAMへのクロック供給》描画表示処理プロセッサ11は、クロック信号CLKに同期動作されるシンクロナスDRAM22をアクセスするときに当該シンクロナスDRAM22に対し、クロック信号CLKに同期するタイミングを以てデータ、アドレス、及び制御信号を入出力する必要がある。したがってシンクロナスDRAM22にアクセス制御する描画表示処理プロセッサ11と同一クロック、逓倍クロック、あるいは分周クロックが当該シンクロナスDRAM22に供給される必要がある。このとき、水晶発振子17などの発振子を用いるクロック発生器18で生成されたクロック信号181を、その実装ボード上で描画表示処理プロセッサ11とシンクロナスDRAM22に並列に供給した場合には、クロック配線の負荷や遅延成分の偏りなどによってクロックのスキューが生じたり、プロセッサ11の内部で動作遅延を生じたりすると、クロック信号のサイクルに対してデータ、アドレス、及び制御信号のセットアップ、ホールドタイムなどの所要の動作マージンを保証できなくなる虞がある。この点を解決するため、シンクロナスDRAM22に対するアクセス主体である描画表示処理プロセッサ11がシンクロナスDRAM22にクロック信号を供給する構成を採用している。このためシンクロナスDRAM22に供給すべきクロック信号CLKとデータ、アドレス、及び制御信号とのディレーを当該描画表示処理プロセッサの設計段階で合わせ込むことが可能となり、PLL回路などを用いて対策する場合に比べて低コストで、しかも充分なマージンの確保が容易になる。 【0059】また、図21に代表的に示されるように、描画表示処理プロセッサ11cの内部に異なる周波数で動作するモジュール例えば描画処理モジュール12cと表示処理モジュール13cが存在する場合、それぞれバスマスターとされるモジュール12c,13cのクロック信号を個別化し、シンクロナスDRAM22へのクロック信号もそのアクセス主体に応じて描画表示処理プロセッサ11cのバス制御部14cがクロックセレクタ25で選択し、アクセス主体の動作とシンクロナスDRAM22の動作が上記同様に完全同期可能に構成することができる。このためシンクロナスDRAM22に供給するクロック信号とデータ、アドレス、及び制御信号とのディレーをバスマスターになるモジュール単位で合わせ込むことが可能となり、そのような場合にも充分な動作マージンの確保が容易になる。 【0060】図21の構成をさらに説明すれば、複数の周波数のクロック発生部18c,18sと、クロックドライバ16c,16sと、上記周波数に応じて動作する複数のモジュール12c,13cと、上記複数のモジュールの上記メモリに対するアクセスを調停するバス制御部14cと、調停信号251に応じて上記メモリへのクロックを選択するクロックセレクタ25とを有し、シンクロナスDRAM22に対し描画表示処理プロセッサ11から直接複数の周波数のクロックCLKを供給する画像処理システム構成を示している。尚、図21においてCPUインタフェースは図示されていない。例えばある一定の表示を繰り返し行う場合には当該描画表示処理プロセッサ11cはスタンドアロンで動作され、CPUインタフェースを必要としない。図1と同様にCPUインタフェースを設けて構成することも当然可能である。 【0061】図22に示される構成はシンクロナスDRAM22に対するクロックセレクタ25dが描画表示処理プロセッサ11dの外部に配置される点が図21の構成と相違される。すなわち、クロック発生部18d,18tから描画表示処理プロセッサ11dに供給されるクロック信号とは別系統を介して夫々からクロックセレクタ25dにクロック信号が供給され、シンクロナスDRAM22のアクセス主体が描画処理モジュール12dか表示処理モジュール13dかに従ってバス制御部14dがクロックセレクタ25dに出力クロック信号周波数を選択させる。そのための制御信号は252として図示されている。16d,16tはクロックドライバ、25tはクロックセレクタである。 【0062】尚、図23に示されるようにプロセッサ11i内部のモジュールが単一モジュール13i(表示処理モジュール)であってもプロセッサ11iからシンクロナスDRAM22にクロック信号CLKを供給する構成が適用可能である。図22において、14iはバス制御部、16iはクロックドライバ、18iはクロック発生部である。さらに、図24に示されるように、単一モジュール(表示処理モジュール)13kで複数の周波数のクロック信号を選択するクロックセレクタ25kを内蔵する形式のプロセッサにおいても当該プロセッサ11kが直接シンクロナスDRAM22にクロック信号を供給することができる。18k,18Lはクロック発生部、16kはクロックドライバ、14kはバス制御部である。 【0063】《複数モジュールからのバス競合対策》図32には複数個例えば2個の描画表示処理プロセッサ11−1,11−2がシンクロナスDRAM22を共有する場合の一例システムが示される。このシステムにおいて、シンクロナスDRAM22へクロック信号CLKを供給するための夫々の描画表示処理プロセッサに内蔵されたクロックドライバ16の出力はクロックバッファ160を介してワイヤードオア結合されてシンクロナスDRAM22のクロック入力端子に結合される。このとき、相互に一方の描画表示処理プロセッサが他方の描画表示処理プロセッサのためにシンクロナスDRAM22を解放する方式として、シンクロナスDRAM22に対するデータ、アドレス、制御信号はもとよりクロック信号CLKを供給する端子をもハイインピーダンスに制御する。本実施例に従えば、クロックドライバ16の出力すなわちクロックバッファ160がハイインピーダンス状態に制御される。これにより、他の描画表示処理プロセッサがシンクロナスDRAM22を直接アクセスする場合にも、当該他の描画表示処理プロセッサは同様に充分な動作マージンを確保して、換言すれば、当該他の描画表示処理プロセッサの動作速度に応じてシンクロナスDRAM22をアクセス制御することができる。 【0064】図18及び図19には上述の複数モジュールからのバス競合対策のための一例回路が示される。図18に示される例は、描画処理プロセッサ11の内部レジスタにスリーステートコントロールビット149を備え、その値は例えばCPU15から設定される。このスリーステートコントロールビット149の出力1491により、バス制御部14におけるアドレス、データ、及び制御信号のためのバスバッファ1495A,1495D,1495C及びクロック端子がハイインピーダンスにされる。クロック端子のハイインピーダンスはクロックドライバ160にて実現される。図19に示される例は、描画表示処理プロセッサ11の外部端子からの供給される制御信号105のレベルもしくは変化タイミングによって、アドレス、データ、制御信号のためのバスバッファ1495a,1495D,1495C及びクロックドライバ16のクロック端子(クロックバッファ160の出力端子)をハイインピーダンスにする構成とされる。 【0065】《モードレジスタの設定》シンクロナスDRAM22に内蔵されているモードレジスタ30は、シンクロナスDRAM22の動作モードを指定するためのレジスタである。既存の標準的なメモリは、モードレジスタ30の様にスタティック動作モードを指定するためのレジスタは無く、それに対応するアクセス主体はメモリの読出し、書込み、リフレッシュのアクセスサイクル以外に特別なコマンドを発行する必要はなかった。本発明では、描画表示処理プロセッサ11はその内部アーキテクチャ及び処理内容に応じてモードレジスタ30を設定するようになっている。モードレジスタの設定方式については以下に説明する各種方式を適宜採用可能である。 【0066】図3には上記バス制御部14の一例ブロック図が示される。アービタ141は各モジュール12,13におけるコマンド実行結果として当該モジュールから出力されるシンクロナスDRAM22へのバス要求信号1411を受け付けてバス権の調停を行い、一つのモジュールに対してバスアクノリッジ信号1412にて動作許可を行う。また、同時にセレクタ142にモジュールのセレクト信号1413を与える。セレクタ142は、上記セレクト信号1413により各モジュールからの制御情報1421をセレクトし、シーケンサ143に与える。シンクロナスDRAM22に対する制御情報1421は、例えばデータ読み出し、データ書込み、リフレッシュ、モードレジスタ30の設定などを指示するための制御コードとされる。この制御コードは当該モジュールが外部からフェッチしたコマンドを実行した結果出力することになる。ミスヒット検出部147は、アドレスバス148のロウアドレスが現在アクティブになっているロウアドレスと一致しているかを比較し、ミスヒット情報1471をシーケンサ143に与える。シーケンサ143は、制御情報1421及びミスヒット情報1471に従って後述する図4の状態遷移図に基づいて当該制御情報1421で指定されるバス制御処理を実行するための一連の情報をデコーダ144に与える。デコーダ144はシーケンサ143から与えられる各種情報をデコードし、シンクロナスDRAM22へのコマンド1441、バスバッファ1495Dの制御信号1442、アービタ141への制御信号1443等を出力する。シンクロナスDRAM22へ発行されるコマンド1441が上記モードレジスタ30を設定するコマンド(モードレジスタセットコマンドMo)である場合、当該モードレジスタ30に設定すべき値は、特に制限されないが、リテラル発生部146がデコーダ144の出力1445に従って選択して出力する。シンクロナスDRAM22のコマンドレジスタ値はアドレスバスを介して供給されるので、そのとき、デコーダ144が出力する制御信号1444にてアドレスセレクタ145がリテラル発生部146の出力を選択し、それによってコマンドレジスタ30への設定値はバスバッファ1495Aからアドレスバスを経由してシンクロナスDRAM22に供給される。尚、リテラル発生部146はデコーダ144の出力1445に従って所定の値を出力する論理回路又は記憶回路によって構成することができる。 【0067】モードレジスタセットコマンドMoの発行タイミングについては外部信号に同期させることができる。例えば図26に示されるように、表示ブランキング情報135を外部端子により入力する。例えば表示ブランキング情報とは垂直同期信号における垂直帰線期間であり、表示処理モジュール13は、このタイミングにより、次の表示データをシンクロナスDRAM22から取り込むために、モードレジスタセットコマンドをバス制御部14から発行させて、例えばバーストレングスを変更する。 【0068】モードレジスタ30に対する設定値はコマンドそれ自体もしくはコマンドのパラメータに含めておくことができる。その様なコマンドは、上述の各種描画処理モジュール12や表示処理モジュール13が実行するコマンドの一つとされる。図27にはそのような処理モジュールによるコマンド実行フローが概略的に示される。すなわち、コマンドフェッチ(M1)が行われて、そのコマンドが解釈(M2)され、解釈の結果がモードレジスタ30の設定コマンドであるかが判定され(M3)、モードレジスタセットコマンドである場合には当該コマンドが実行され(M1)、それ以外のコマンドに対してはそのコマンドで指示される処理が実行され(M4)、さらに次のコマンドフェッチが行われて(M6)上記同様の処理が繰り返される。同図におけるM5は次のコマンドフェッチサイクルにおけるM1と等価なステップである。図28にはそのような各種コマンドのフォーマット例が示される。図28の(A)は一つのコマンドがコマンド指定フィールドCOMCと属性コードフィールドCOMDとから成るコマンドフォーマットの場合を示し、その場合にモードレジスタセットコマンドにおけるモードレジスタ30の設定値は属性コードフィールドCOMDに配置される。図28の(B)は一つのコマンドがコマンド指定フィールドCOMCから成り、これに続くパラメータPARに各種属性が含まれるフォーマットを示し、その場合にモードレジスタセットコマンドにおけるモードレジスタ30の設定値はパラメータPARに配置することができる。 【0069】図29に示される構成はモードレジスタ30に対する設定値をモジュール12,13が実行すべきコマンドに付随させる場合のバス制御部の構成例である。図3のリテラル発生部146に代えてデータバスの値をアドレスセレクタ145の一方の入力に結合した点が相違される。アドレスセレクタ145の選択制御は図3の場合と同様と理解されたい。アドレスセレクタ145の入力としてデータバスを選択することができるので、シンクロナスDRAM22のアドレス入力端子に供給すべきモードレジスタ30の設定値を、描画処理モジュール12や表示処理モジュールが結合される内部データバスから直接指定できる。例えば描画処理モジュール12又は表示処理モジュール13は、図28のようなコマンドフォーマットのコマンドによってモードレジスタ30の設定処理を認識すると、その処理のための制御情報1421をバス制御部14に供給すると共に、モードレジスタ30の設定値を上記内部データバスに出力する。これによって、シンクロナスDRAM22に対するモードレジスタの設定が行われる。 【0070】また、モードレジスタ30の設定処理はI/Oマッピングの手法によって実現することも可能である。その一例を示す図30の場合、描画処理モジュール12及び表示処理モジュール13がアクセス可能な内部I/O空間に特定のレジスタ1482をマッピングする。すなわち、アドレスデコーダ1481は当該レジスタ1482のアクセスを内部アドレスバス情報から検出してそれを制御信号1483でレジスタ1482及びシーケンサ143に通知する。これによってレジスタ1482はそのときデータバスに供給されてくるモードレジスタ設定値をラッチし、且つ、シーケンサ143はその通知をコマンドレジスタ設定のための指示として認識する。シーケンサ143はバスバッファ1495Cを介してシンクロナスDRAM22にモードレジスタセットコマンドを発行すると共に、レジスタ1482にラッチされている設定値をアドレスセレクタ145にて選択させてバスバッファ1495AからシンクロナスDRAM22に供給する。また、特に図示はしないが、I/Oマッピング方式においては、物理的なレジスタを省くことができ、上記特定のアドレスだけを確保して当該アドレスに対するアクセスをデコーダ1481で検出可能に構成できる。 【0071】図31には表示処理モジュールなどの内蔵モジュール13がマイクロプログラム制御を利用する場合における制御系のブロック図が示される。マクロROM51は所定のマイクロプログラムが記述されている。それに対するアクセスアドレスはマイクロアドレスレジスタ56が保有し、マイクロROM51から読出されたマイクロインストラクションはマクロインストラクションレジスタ52に保持され、その出力がマイクロインストラクションデコーダ54で解読されることによって当該マイクロインストラクションを実行するための制御信号がエグゼキューションユニット58に供給される。マイクロ命令にはネクストアドレス情報が含まれ、それがマイクロアドレスコントローラ55に供給されることによりマイクロアドレスレジスタ56の値が順次更新されていく。マイクロ命令系列の先頭マイクロアドレスはマイクロレジスタ57にフェッチされたコマンドによって与えられる。これにフェッチされたコマンドが描画処理モジュール12や表示処理モジュール13の動作を基本的に決定する。マイクロアドレスコントローラ55はマイクロ分岐のためのマイクロアドレスも制御する。例えばモードレジスタ30を設定するためのコマンドがマイクロレジスタ57にフェッチされると、マイクロインストラクションレジスタ52にはメモリコントロールインフォメーション53として代表的に示されたマイクロ命令がラッチされることになる。このマイクロ命令がデコードされることにより、例えば上記図3、図26、図29、及び図30の態様でのモードレジスタ30を設定するための制御動作が開始される。 【0072】《モードレジスタのダイナミックな設定》本実施例の描画表示処理プロセッサ11は上述の各種方式で設定可能にされるモードレジスタ30を処理内容に応じてダイナミックに設定できるようになっている。例えば任意方向への直線描画ではメモリアドレスが同じロウアドレス内で連続しない描画処理になり、モードレジスタ30に設定するバーストレングスは1が望ましく、それに対しメモリクリヤなどの矩形の塗りつぶし描画ではメモリアドレスが同じロウアドレス内で連続する描画処理になり、バーストレングスはN(N>1)が望ましく、描画処理内容に応じてバーストレングスを変更する処理が必要となる。このため本発明では、多様な処理内容に応じてモードレジスタ30をダイナミックに変更する処理を行って、バーストレングスに合わせてシンクロナスDRAM22のバススループットを低コストに向上させることができるようになっている。 【0073】図4は図3におけるバス制御部14のシーケンサ143の状態遷移を示したものである。電源投入時にはシンクロナスDRAM22を初期化するため、アイドルS1からプリチャージS3、モードレジスタ設定S7、NOP(ノンオペレーション)S2が実行され、これに加えてダミーサイクルとしてリフレッシュシーケンスS8が2回繰り返される。リフレッシュ処理は、アイドルS1からプリチャージS3、リフレッシュS8、NOPS2の処理によって構成される。直線描画のようにバーストレングスが1の場合のデータの読み出しは、アイドルS1からプリチャージS3、ロウアドレス活性化(ロウアドレスストローブ・バンクアクティブコマンドにて指示)S4、読み出し(カラムアドレス・リードコマンドにて指示)S6によって実行される。これに引き続き同じロウアドレスであれば、読み出しS6を継続して発行することで、次々にデータ読み出しが実行される(バーストリード動作)。データの書き込みは、アイドルS1からプリチャージS3、ロウアドレス活性化S4、書き込み(カラムアドレス・ライトコマンドにて指示)S5によって実行される。これに引き続き同じロウアドレスであれば、書き込みS5を継続して発行することで、次々にデータ書き込みが実行される(バーストライト動作)。連続読出し、又は連続書き込み中に、ロウアドレスが変化したら、NOPS2、プリチャージS3、ロウアドレス活性化S4のステートを経て再び読出し、書き込みが行われる。リードモディファイライトはCASレイテンシーが1の場合、上記読出しS6からNOPS2、書き込みS5を1つのサイクルとみなして実行することもできる。表示処理モジュール13からアービタ141に対しバス要求があった場合、バスアクノリッジ1421が返されると表示処理モジュール13はモードレジスタ30を設定するための制御情報をシーケンサ143に与え、これによってプリチャージS3、モードレジスタ設定(モードレジスタセットコマンドにて指示)S7、NOPS2が実行されてバーストレングが8に設定される。その後、8ワード毎に読み出しS6が発行される。その期間中に、現在アクセスしていないバンクに対しプリチャージS3、予め求められている隣り合う次のロウアドレス活性化S4を実行することができる。表示処理モジュール13は、必要な表示データを読み出した時点で、モードレジスタ30の設定指示をシーケンサ143に与え、これによって、プリチャージS3、モードレジスタ設定S7、NOPS2が実行されてバーストレングスが1に設定される。その後にバス要求信号がネゲートされてバスが開放される。 【0074】図5乃至図13にはシンクロナスDRAM22に対する表示、描画サイクルでのアクセスタイミングの一例が示されている。ここで、読出されたデータは所定のクロック経過(レイテンシー)後、データバスに出力される。このレイテンシーは可変でありシンクロナスDRAM22のモードレジスタ30にセットされる。図5乃至図13の例ではこのレイテンシーは全て1にされているが特に限定されるものではない。 【0075】図5には、描画処理における1ドットリードモディファイライトの例が示されている。この例はランダムな画素似たいして1ドットづつ描画する場合である。T1では、モードレジスタ30にバーストレングスを1として設定している(Mo)。T3に描画処理モジュール12は、1ドットリードモディファイライトのための制御情報1421を発行する。ミスヒット検出部147は、そのときのアクセスアドレスが前回のロウアドレスと同位置でないことを検出する。これによってシーケンサ143はプリチャージS3(T3のPr−ab)、ロウアドレス活性化S4(T4のAc−a)、読出しS6(T5のRe−a)、NOPS2(T6のNop)、書き込みS5(T7のWr−a)のためのコマンドをクロック信号CLKに同期してシンクロナスDRAM22に供給する。リード時におけるCASレイテンシーは1とされるのでT6にデータが読出され、データの書込みはT7に行われる。それに続く次の1ドット描画はメモリバンクBとされる。T8において、そのための制御情報1421が発行され、プリチャージS3(T8のPr−b)、ロウアドレス活性化S4(T9のAc−b)、読出しS6(T10のRe−b)、NOPS2(T11のNop)、書き込みS5(T12のWr−b)のための各コマンドがクロック信号CLKに同期してシンクロナスDRAM22に供給される。 【0076】図6及び図7は、表示処理モジュール13からの割込み処理を示すタイミングチャートである。同図においてシンクロナスDRAM22はT10までの間はランダムなカラムアドレスに対して1ドットリード、1ドットライトが行われて描画対象とされている。このとき、表示処理モジュール13からバス要求の割り込みがあるとする。図7にはそのようなバス要求によって表示データとして一括して16ワード読み出す例が示されている。表示処理モジュール13からバス要求があると、アービタ141はバス調停を行い、表示処理モジュール13にバスを開放する。表示処理モジュール13はそのような16ワード読み出しのための制御情報1421をシーケンサ143に供給する。これにより、モードレジスタ30のバーストレングスが8に設定される(T11のMo)。読み出しコマンドは8ワードごとに発行される(T15のRe−a,T23のRe−b)。T15のリードコマンド発行前にはプリチャージS3(T13のPr−ab)、ロウアドレス(ロウアドレス)活性化S4(T14のAc−a)の各コマンドがシンクロナスDRAM22に発行される。最初の1ワードの読み出しはT16に同期して開始される。その期間中に、現在アクセスされていないバンクに対しプリチャージS3(T21のPr−b)、予め求められている隣り合う次のロウアドレス活性化S4(T22のAc−b)のコマンドがシンクロナスDRAM22に発行されて予じめその処理がメモリバンクB(b)側で行われる。これにより、データ処理をパイプライン化することができ、バススループットを向上させることができる。換言すれば、アクセス対象メモリバンクの切り替わり目においても間断なくデータの読み出しが可能にされる。表示処理モジュール13は、必要な表示データを読み出した時点で、モードレジスタ30の設定指示を与え、プリチャージS3(T32のPr−ab)、モードレジスタ設定S7(T33のMo)、NOPS2(T34のNop)を実行してバーストレングスを1に設定後、バス要求信号をネゲートし、バスを開放することになる。 【0077】図8及び図9は表示データのバーストリード動作例を示す。シンクロナスDRAM22の表示アクセスサイクルの割合を短くするためには、できるだけ多くの表示データを連続して読み出すのがよき、そのためバーストレングスをフルページに設定して連続して読み出す用にすることが望ましい。但し、表示処理モジュール13内に、あらかじめ読出した表示データを一旦蓄積するためのFIFOあるいはRAM等が必要で、そのようなFIFOなどの記憶容量との関係によって連続読み出し語数を決定することになる。バーストストップコマンド(Stop)は、特に限定はされないが、表示処理モジュール13内の読み出し語数のカウンタ出力値と読み出しすべきデータ語数との比較結果の一致を以てその発生タイミングを制御できる。図8においてT1でバースレングスをフルページとするようにコマンドレジスタ30が設定され(Mo)、T3でプリチャージ(Pr−ab)、T4でロウアドレス活性化(Ac−a)、T5で読み出し(Re−a)の各コマンドが発行され、T6に同期してデータが順次読出される。 【0078】図10及び図11は、描画処理におけるBitBLT(ビットブロック転送)の一例を示す。この場合もバーストレングスをフルページに設定して連続して読出し、書き込みを実行している。このときのアクセスアドレスは同一ロウアドレスとされている。この例に従えば、リード、ライトのデータ個数はそれぞれ12個とされ、バーストストップコマンド(T17,T30のStop)によってバーストリード、バーストライトを終了している。表示処理モジュール13はBitBLTにおける転送元データとされる読み出しデータを内部に蓄積するための手段を有している。 【0079】図12及び図13は、表示処理モジュール13がシンクロナスDRAM22からの表示データを一時的に蓄積するための手段を持たない場合の動作例である。このときには表示処理と描画処理とをインタリーブする方式を採用する。この場合には、表示データをドットレートに合わせて決められたサイクルで読み出す必要があり、ここではクロック信号CLKの4サイクルに1回の例を示している。クロック信号CLKの4サイクルに1回の割合で読み出しを可能にするために、表示領域と描画領域のメモリバンクを分けて、モニタ20のフレームの切り換えタイミングで表示領域と描画領域のメモリバンクを切り換え、また、表示のロウアドレスが切り替わるタイミングでは、プリチャージS3と次のロウアドレス活性化S4を描画処理に優先して実行させる。図12及び13の例ではメモリマットA(a)が表示領域、メモリマットB(b)が描画領域とされている。メモリ間ttA(a)に対するプリチャージはT3(Pr−ab)で行われ、T4(Ac−a)においてロウアドレスが指定される。同図に示される表示のためのリード動作はT4で指定された同一ロウアドレスに対して行われる。このとき、メモリバンクB(b)に対する描画は、T14(Pr−b)、T15(Ac−b)で選択されたロウアドレスがT24(Pr−b)、T26(Ac−b)で変更され、ランダムに行われている。 【0080】図14は、BitBLT(ビットブロック転送)の描画処理方式の1実施例を示している。描画処理モジュール12は、特に限定はされないが、描画アルゴリズムに従いアドレスやデータの転送語数を演算するブロックと1ドットの色演算を行なうブロック等から構成される。BitBLT(ビットブロック転送)の描画処理は、X方向の1ライン分の演算をY方向に繰り返し処理することで実現することができる。X方向の1ライン分の演算では、まず最初にアドレスカウンタ121をリセットし、転送元の転送語数を転送語数レジスタ122に設定する。バーストレングスはフルページに設定され、描画処理モジュール12がバス制御部14に転送元開始アドレスを出力して、連続読み出しを開始する。バス制御部14からのアクノリッジ信号1412によりアドレスカウンタ121はインクリメントされ、転送元データをソースRAM124に一旦蓄積する。アドレスカウンタ121の値と転送語数レジスタ122の値は比較器123で比較され、一致したら停止信号1231により描画処理モジュール12からバス制御部14に対し、バーストストップの制御情報を発行する。BitBLT(ビットブロック転送)の描画処理で下地データとのと演算を要する場合、下地データは予じめ転送元データと同様にデスティネーションRAM126に一旦蓄積される。最後に転送元データがシフタ125で位置合わせされ、これが演算器127で下地データと演算され、その演算結果データが再びシンクロナスDRAM22に連続的に書き込まれる。 【0081】《ROMアクセスへの切換え》図20及び図25に示されるようにバス制御部14aはシンクロナスDRAM22と共に、それよりも低速なメモリとしてROM26をアクセス可能に構成することができる。図20に従えば、シンクロナスDRAM22と同一のバスにROM26が接続される。ROM26のアドレス空間はフレームバッファアドレス空間にマッピッングされ、換言すれば、それを選択するための信号を形成するアドレスデコーダは描画表示処理プロセッサ11が有する。描画処理モジュール12aが当該アドレスデコーダを有する場合、ROM26のアドレス空間へのアクセスは、制御情報1421によりバス制御部14に通知される。シーケンサ143は、アイドルS1から読み出しS6を実行し、ROM26からのデータが確定するまでNOPS2を実行する。NOPS2の実行回数は、ROM26の動作速度に従って予じめ決定された値に固定することもできるが、採用可能なROM26の選択の余地を広げられると言う意味においては専用のレジスタに指定できるようにすることが望ましい。また、図30のアドレスデコーダ1481のようにバス制御部14にアドレスデコーダが配置される場合、当該デコーダの出力が直接シーケンサ143に入力されてROM26がアクセス制御されることになる。このときのNOPS2の挿入回数も上記専用レジスタで指定することが可能である。 【0082】図25の例はモジュール12,13とバス制御部14との接続が専用バスを利用する点で図20の例と相違される。ROM26を持たない実施例においてもそのような専用バスによる接続を採用することができる。 【0083】《データアクセスのパイプライン化》シンクロナスDRAM22を用いることにより、いつでも従来のSRAMに匹敵する高速転送が実現できるとは限らない。つまり、高速転送が可能な条件は、同一ロウアドレス内に限られ、異なるロウアドレスに移動する場合(ミスヒット)には、プリチャージコマンド、ロウアドレスの活性化コマンド(ロウアドレスストローブ・バンクアクティブコマンド)を発行したりするミスヒット処理の必要がある。このためフレームバッファの論理的な画素座標に対する物理的なメモリアドレスのマッピングとして、例えば同一ロウアドレスの領域に隣り合う別の領域にマッピングされた別のロウアドレスは必ず異なるメモリバンクのロウアドレスとするような配置を採用する。これによりバーストレングスをN(N>1)として設定した場合、上述の図7から図13のタイミングチャートの説明からも明らかなように、シンクロナスDRAM22に対し現在データをアクセス中に上記アクセス中のメモリバンクとは異なるメモリバンクに対し、プリチャージコマンドおよびロウアドレスストローブ・バンクアクティブコマンドを発行することが可能となり、バススループットを向上させることができる。描画処理モジュール12、表示処理モジュール13またはバス制御部14内に予じめアドレスを演算する手段とロウアドレスの切り換えを判定する手段(ミスヒット検出部147)が設けられ、ロウアドレスの変化が検出されるとバス制御部14内のシーケンサ143にて、プリチャージコマンド、ロウアドレスの活性化コマンドを発行し、続いて列アドレスを発行するようにされている。これによって、例えば最高10ナノ秒ごとにデータを読出すこと、および書き込むことも可能となる。 【0084】図15乃至図17は、本実施例システムにおけるシンクロナスDRAM22の物理的なメモリアドレスと論理的な座標のマッピング(表示フェレーム上におけるマッピング)の例を示している。換言すれば、フレームバッファのビットマップ座標領域におけるシンクロナスDARM22のロウアドレス毎のデータ配置が示される。本実施例においてシンクロナスDRAM22における同一のロウアドレスは256ドット分のピクセルデータに相当する。各図において縦×横=16ドット×16ドットの領域、縦×横=1ドット×256ドットの領域は一つのロウアドレスに相当する画素データの領域である。図15はロウアドレス同一の16ドット×16ドットの矩形領域は図の横方向に隣り合うもの同士メモリバンクが相違するようにマッピングされる。図16は1ドット×256ドットの矩形領域が図の縦方向に隣り合うもの同士メモリバンクが相違するようにマッピングされる。図17はロウアドレス同一の16ドット×16ドットの矩形領域は図の縦及び横の双方で隣り合うもの同士メモリバンクが相違するようにマッピングされる。図15のマッピングは、ビットマップ座標上で横方向及び斜め方向に進められる描画処理においてもアクセス対象メモリバンクを交互に切り換えることができるようになるので、一方のメモリバンクに対する読み出し又は書込み中に他方のメモリバンクに対してプリチャージなどの処理を予じめ行って処理のスループットを向上させることができる。図17のマッピングは特にフレームバッファに対するアクセスが縦及び横方向に集中する場合に最適なマッピングを想定したものである。図16のマッピングは描画又は表示がビットマップ座標上で横方向に進められる処理においてアクセス対象メモリバンクが交互に切り換えられることになるので、一方のメモリバンクに対する読み出し又は書込み中に他方のメモリバンクに対してプリチャージなどの処理を予じめ行って処理のスループットを向上させることができる。図16のマッピングは矩形領域のクリアなどのようにスキャンアドレスを一方向に変化させて不都合がないような場合である。 【0085】例えば図15、図17のマッピングにおいて、フレームバッファ配置の横方向にメモリアクセスが行われる場合、メモリバンクAとBとの境界部分でのアクセス態様は図7のT24におけるアクセス態様とされる。また、図16において横256ドット分のメモリアクセスの態様は図8、図9のアクセスタイミングに対応される。 【0086】《ミスヒット処理に伴うパイプラインの乱れ防止》シンクロナスDRAMをアクセスして行われるデータ処理のスループットをさらに向上させるためのミスヒット処理について別の実施例を参照しながら説明する。以下の実施例説明では、本発明の別の実施例に係るデータプロセッサとそれを適用したファクシミリ用画像処理システムを一例として説明する。 【0087】図33には本発明の別の実施例に係るデータプロセッサ70を備えた画像処理システムの一例ブロック図が示される。同図においてセンサ80は原稿の光学的濃淡情報を読み取り、これを光電変換して画像データを出力する。センサ80は現在のファクシミリではCCDラインセンサが用いられることが多いが、密着センサも使われ始めており、エリアセンサなども今後適用されていく。画像処理部71では、画像データに含まれる歪みを除去し、画質向上、さらには符号化等も実行する。本実施例では2個のシンクロナスDRAM82a,82bが設けられている。これらは、注目画素と周辺画素を演算するために、高速にデータの読み出し及び書き込みが行われるラインメモリとして、且つ画像処理,符号化されたデータを通信処理部79を介して送信するために記憶する符号ページバッファとして利用される。2個のシンクロナスDRAM82a,82bはそれぞれ固有のバス制御部74a,74bとインタフェースされ、並列的にアクセス可能にされている。CPU75はシステム全体の制御を司り、また、画像処理,符号化したデータをシンクロナスDRAM82a,82bの上記ページバッファ領域に格納させて、通信処理部79を介して、送信制御する。通信処理部79は、受信側のファクシミリとの接続,通信プロトコル手順を実行し、CPU75からのデータを通信路で電送するための変換を行う。クロック発生部78は水晶発振子77の基準周波数を基に基本クロック781を作成し、画像処理部71,CPU75,通信処理部79に供給する。受信時は通信処理部79,CPU75,画像処理部71と、送信時の逆をたどり、記録部81で記録する。記録部81は、感熱ヘッドやインクジェット,電子写真技術を用いたレーザープリンタなどが実用化されている。 【0088】シンクロナスDRAM82a,82bは、従来のDRAMに比べ、クロックに同期してデータ,アドレス,制御信号を入出力できるため、従来のSRAMに匹敵する高速転送が実現でき、かつ従来のDRAM以上の大容量を低価格で実現可能となるメモリである。すなわち、シンクロナスDRAMを用いることでメモリのバス速度を向上させることができ、画像処理用SRAMとページバッファ用DRAMを統合することができる。ここでシンクロナスDRAM82a,82bは上記図2で説明した回路構成と同様の回路構成を有するものと理解されたい。そしてシンクロナスDRAM82a,82bに対するクロック信号CLKも上記実施例と同様にデータプロセッサ70から出力される。 【0089】図33において画像処理部71はセンサ80から読み込んだ画像データに対して歪み補正処理、高画質化処理、符号化処理などを実行する。これらの処理は読み出しアドレスRDADRを用いてバス制御部74aにシンクロナスDRAM82aをリード動作させてデータ821aを出力させ、それによって得られたデータ751aを画像処理部71が取り込み、画像処理部71は取り込んだデータ751aを画像処理し、画像処理後のデータ751bを書き込みアドレスWRADRを用いてシンクロナスDRAM82bに書き込むことで実現している。 【0090】ここで、上記シンクロナスDRAM82aからデータを読み出し、これを画像処理部71で補正などの処理を行い、その結果をシンクロナスDRAM82bに書き込むという処理は表示データ全体に対し、且つ画像処理部71の動作クロックに同期して順次複数の処理ステップを一単位として繰り返し行われる。画像処理のパイプラインとは、そのような複数処理ステップからなる単位画像処理を複数並列的に且つ夫々の処理ステップをずらしながら行い、例えば一単位の画像処理が見かけ上1処理ステップのサイクルタイムで行われるような処理方式とされる。本実施例に従えば、画像処理部71はあるデータに対するリードアドレスRDADRと当該リードデータに対してデータ処理を施したデータの書込みアドレスWRADRとを並列的に出力する。このとき、読み出しデータにデータ処理を施して書き込み可能にされるまでのデータ処理時間は、図33において2段のラッチ731,732によるアドレス伝達遅延時間によって確保される。したがって、リードアドレスRDADRとライトアドレスWRADRが並列的に画像処理部71から出力されたとき、当該リードアドレスRDADRによって読出されたデータがデータ処理されて書き込まれるのは、ライトアドレスWRADRがラッチ回路731,732を通過する遅延時間を待って有効とされるアドレス信号WRADR3にて行われることになる。 【0091】画像処理部71の構成がパイプライン処理可能にされているとき、読み出したデータを取り込んでから、処理後のデータを書き込むまでの時間は一定でなければ、部分的にクロックを停止させて待ち合わせることになり、待ち合わせにはタイミング上複雑な処理を要する。例えば、シンクロナスDRAM82aから連続的にデータを読み出し、それに対するデータ処理の結果をシンクロナスDRAM82bに連続的に書き込みを行うようにして画像処理のパイプラインを実現するとき、シンクロナスDRAMに対する読み出し又は書込みの何れかにおいてミスヒットが生ずると、パイプラインが崩れ、部分的にデーター破壊が発生する。このため、ミスヒットが発生すると画像処理演算を一時的に停止し、パイプライン内のデータを止めておくことでデーターを保持しなければならない。また、読み出し側、書き込み側のいずれでミスヒットが起こっても止める必要があるため、書込み側と読み出し側のミスヒット判定を同時に行う。本実施例に従えば、シンクロナスDRAM82aに対して読み出しアドレスを発行し、データを読み出し、それに対してデータ処理を施し、書込みアドレスをシンクロナスDRAM82bに発行して当該データをシンクロナスDRAM82bに書き込むという一連の処理の流れにおいて、その最終段階のデータ書き込みを行う時点で初めて当該書込みロウアドレスのミスヒットが判明するならば、そのときには最早次のデータ処理のためのデータがシンクロナスDRAM82aから次々と読出されているので、その段階で書き込みミスヒット処理を挿入すると、パイプラインが乱れ、それを修復するには複雑な処理を要することになる。 【0092】そこで図33の実施例においては画像処理部71が出力するリードアドレスRDADRとライトアドレスWRADRに対してミスヒット検出を行うようにされている。リードアドレスRDADRのミスヒット検出部72bはバス制御部74aに配置されるが、ライトアドレスWRADRのミスヒット検出部72aはラッチ回路731の前段に配置され、書き込みアドレスWRADR3がミスヒットするかどうかは読み出しアドレスRDADRの発行時点で検出するようになっている。すなわち、上記書き込みアドレスWRADRはミスヒット検出部72a、ラッチ731、732を経由して内部アドレスWRADR3とされてバス制御部74bに接続されている。ラッチ731,732は、読み出しアドレスRDADRによって読出されたデータを処理、加工して、書き込みデータを作成するまでの処理遅延時間を保証している。バス制御部74a,74bはそれぞれ独立したアドレスバス、データバス、及びコントロールバスを介してシンクロナスDRAM82a,82bに接続されている。基本的に各バス制御部74a,74bは独立に動作するが、本実施例では、書き込みアドレスで発生するミスヒット情報を前もって読み出しアドレスのミスヒット処理時に参照することで反映している。換言すれば、書き込みアドレスWRADR3でミスヒットする状態を、読み出しアドレスRDADR発行時点における書き込みアドレスWRADRで検出しておき、書込みアドレスWRADR3でのミスヒットを読み出しアドレスRDADRがミスヒットしたと同じように扱う。本実施例に従えば、ミスヒット検出部72aで検出されたミスヒット信号WRMHTをバス制御部74aに与え、これを受けるバス制御部74aはミスヒット信号RDMHTをクロックドライバ76に供給して画像処理部71に対するクロック信号760の供給を一定期間停止させる。停止期間はミスヒットに応ずるシンクロナスDRAMに対するプリチャージ及びロウドレス活性化のための処理期間とされる。リードアドレスRDADRによってミスヒットが検出される場合には直接ミスヒット信号RDMTHがクロックドライバ76に供給されて同様に作用される。このようなミスヒットの同期化により、ミスヒットに伴う無効データの処理を統一化でき、画像処理のパイプラインの簡素化を行なうことができる。すなわち、画像処理のパイプラインの乱れを極力防止することができる。尚、ここでは簡単のためクロックドライバ76から画像処理部71へのクロック信号760を全て停止するように図示されているが、画像処理部71のパイプライン保持に関するものに限定してもよいし、またノンオーバーラップ多相クロックを用いるクロック体系であれば何れかの相に限定して停止させてもよい。 【0093】図35には図33のシステムでパイプライン処理途上において読み出し時にミスヒットが発生した場合の一例動作タイミングチャートが示される。画像処理部71からT1で発行されたリードアドレスRDADRはバス制御部74aに送られ、T2においてバス制御部74aは、それに含まれるシーケンサのステータスRDBSTを第1データ読み込みR1に変更する。これによりT3においてシンクロナスDRAM82aからデータDR1が出力される。データDR1は画像処理部71で加工処理されて書き込みデータDW1とされる。書き込みアドレスWRADRは、遅延手段としてのラッチ回路731,732などで遅延されて内部ライトアドレスWRADR3とされ、T4においてバス制御部74bのシーケンサのステータスWRBSTが第1データ書込みW1に変更され、当該データDW1がシンクロナスDRAM82bに書き込まれる。このとき、次に読み出し対象とされる読み出しアドレスRDADRのロウアドレスがR1の時のロウアドレスと異なっていた場合、再度ロウアドレスのプリチャージ及びロウアドレスの活性化処理を行なうミスヒット処理が必要とされる。T2において画像処理部71からリードアドレスRDADRとしてR2が発行されると、バス制御部内74aのミスヒット検出部72bにて、R1のロウアドレスと比較処理が行なわれ、異なることが判明するとミスヒット信号RDMTHが発行される。これにより、クロックドライバ76はクロック信号760の供給を停止して画像処理部71の動作を停止させ、T4〜T6の期間においてアドレスRDADR,WRADR3,WRADRの更新が停止されて停止前のアドレスをその期間保持する。この間にバス制御部74aはシンクロナスDRAM82aにプリチャージ(Pre)及びR2に対応されるロウアドレス活性化(Act)の各コマンドを発行してミスヒット処理を行う。ミスヒット処理が行われている期間は新たなデータの読み出しが行われず、これに呼応して有効な書き込みデータも途切れるため、書き込みバス制御部74bはミスヒット信号RDMTHを受けてT5〜T7の期間アイドル状態とされる。 【0094】図36は書き込み時にミスヒットが発生した場合の一例タイミングチャートが示される。画像処理部71からT2で発行された書き込みアドレスWRADRがミスヒットする場合を想定する。仮に、書き込みアドレスWRADR3のミスヒットをバス制御部74b内で検知したとすると、ミスヒットが判明するのはT4ステートであり、T5ステートからアドレスの更新などを停止しても、それまでの間には別のリードアドレスに対応するデータや書込みアドレスが既に発行されているため、ミスヒット処理期間中にそれらの情報は消失してしまう。本実施例においては読み出しアドレスRDADRと同じタイミングで書き込みアドレスWRADRのミスヒット検出を行い、書込みミスヒットを検出すると、読み出し時点から画像処理及びアドレス更新をアイドルさせることで書き込みミスヒットの処理期間にデータやアドレスが消失する事態が阻止される。 【0095】図36においてライトアドレスW2でミスヒットが生じた場合のパイプラインの流れと、図35においてリードアドレスR2でミスヒットは生じた場合のパイプラインの流れとは相互に等しくされている。さらに詳述すれば、、図35と図36の双方において代表的に示されたステートT1からT10において、画像処理部71が出力するリードアドレスRDADRとライトアドレスWRADRとの出力状態は途中で書き込みミスヒットが生じても読み出しミスヒットが生じても乱れることなく一定の順番を保つことができる。すなわち、シンクロナスDRAM82a,82bに対するリード・ライト時にミスヒット処理が介在されることになっても1ステート1サイクルでの画像処理のパイプラインの乱れを完全に防止することができる。 【0096】《ミスヒット処理と割り込み処理との競合》シンクロナスDRAM82a,82bは、画像処理部71からのアクセスのみならず、CPU75 からのアクセスも可能である。シンクロナスDRAM82a,82bには画像処理部71のコマンドやパラメータも格納されるからである。CPU75がシンクロナスDRAM82a,82bをアクセスするときは当該CPU75はミスヒットの場合と同様に画像処理部71の処理を中断させ且つミスヒット処理を実行させるため、割り込み要求信号SDCACKをクロックドライバ76とバス制御部74aへ発行する。特に制限されないが、割り込み要求信号SDCACKは割り込み期間においてローレベルのようなアクティブレベルに維持されるものとする。クロックドライバ76はその割り込み信号SDCACKを受けると、画像処理部71へのクロック信号760の供給を停止させる。このときのクロック信号760の供給停止期間は当該割り込み信号SDCACKがハイレベルのようなインアクティブレベルにネゲートされるまでの任意期間とすることができる。また、割り込み時点におけるミスヒット処理はシンクロナスDRAM82a,82bに対するアクセス主体がCPU75に変更されることを以て一義的に行われるようにするものであり、割り込み信号SDCACKのアクティブレベルへのレベル変化を検出して1ショットパルスを発生する回路の出力によって強制的にミスヒットを発生される。CPU75の割り込みが終了すると、再度画像処理部71が動作を再開するが、ミスヒット検出部72aで検出したミスヒット信号は画像処理部71が停止している期間では、正しい動作を保証できない。したがって、CPU75の割り込みが終了されて再び画像処理部71が動作されたときには、上記同様に割り込み信号SDCACKのインアクティブレベルへのレベル変化を検出して1ショットパルスを発生する回路の出力によって強制的にミスヒットを発生される。 【0097】《内部回路の詳細例》図39には画像処理部71の一例ブロック図が示される。グラフィックパイプラインマネージャGPMはシンクロナスDRAM82aからコマンドを読み出し、読み出しアドレス発生部301、書き込みアドレス発生部302、データ生成部303にパラメータを設定し起動をかける。読み出しアドレス発生部301、書き込みアドレス発生部302、データ生成部303は内部にシーケンサSEQを持ちそれぞれリードアドレスDRADR,ライトアドレスWRADR,データGDATを発生する。入力データ751aは、データ生成部303で作成したデータGDATと算術論理演算器などの演算器308で合成され、タイミング調整ラッチ309を経由し出力データ751bに加工される。クロックドライバ76から供給されるクロック信号760はクロックドライバ311で内部回路の各部に分配され、各内部回路は分配されたクロック信号に同期動作される。したがって、クロック信号760の供給が停止されると画像処理部71の動作は停止される。 【0098】図40にはクロックドライバ76の一例が示される。クロック発生部78から入力されたクロック信号781はドライバ(DRV)761を駆動し、さらにドライバ(DRV)762,763,764分配される。ドライバ762の出力はシンクロナスDRAM82a,82bへのクロック信号CLKとされる。論理和ゲート(OR)767はそれぞれローイネーブル信号とされる上記割り込み信号SDCACK及びミスヒット信号RDMTHの論理和信号MTHを出力する。論理積ゲート(AND)766は上記ドライバ761の出力クロック信号と論理和ゲート767の出力を受け、双方の論理積信号をドライバ(DRV)765に供給して上記クロック信号760を生成する。したがって、ミスヒット又はCPU割り込みによって論理積ゲート766の出力はローレベルに固定され、画像処理部71へのクロック信号760の供給が停止される。クロック信号Cb,Ccはバス制御部74a,74bに供給される動作基準クロック信号である。 【0099】図41にはバス制御部74aの一例ブロック図が示される。画像処理部71からの読み出しアドレスRDADRとCPU75からのアドレス752はセレクタ900で選択され、ミスヒット検出部72bとマルチプレクサ903に供給される。ミスヒット検出部72bでは、分離回路722にてロウアドレスの抽出が行われる。アドレスバスのうちどのビットがロウアドレスに相当するかは、その時のモードに依存するため、CPU75から供給されるモード指定情報749により判定する。抽出されたロウアドレスはラッチ721に格納され、今回アクセスされるロウアドレス(分離回路722の出力)と前回アクセスされたロウアドレス(ラッチ721の出力)が比較器723にて比較される。特に制限されないが比較結果の一致出力はハイレベルとされる。比較器の723の出力は2入力型の論理和ゲート724の一方の入力に結合される。他方の入力には1ショットパルス発生回路725の出力が供給される。1ショットパルス発生回路725は割り込み信号SDCACKのアクティブからインアクティブへのレベル変化及びその逆の変化を検出して所定期間ハイレベルとされる1ショットパルスを出力する。したがって、割り込み要求が有ったと、割り込み要求が解除されたとき何れの場合にもミスヒット検出と同様の状態が強制的に作り出される。論理和ゲート724の出力信号908は論理和ゲート(OR)907及びシーケンサ905に供給される。論理和ゲート907の他方の入力にはミスヒット検出回路72aからのミスヒット信号WRMTHが供給される。したがって、ミスヒット検出回路72aと72bの何れかにおいてミスヒットが検出されれば論理和ゲート907から出力されるミスヒット信号RDMTHがアクティブにされる。シーケンサ905は内部信号908にて比較結果の不一致が通知されると、ミスヒット処理を実行する。シーケンサ144の出力はラッチ906を経由し、シンクロナスDRAM82aへのアドレスを選択するマルチプレクサ903のセレクト端子に接続され、またラッチ904の入力にも接続され、当該ラッチ904を介してシーケンサ905に現在のステータスを与えることができるようになっている。マルチプレクサ903はそれに供給されるどのアドレスビットをシンクロナスDRAMに供給するかをラッチ906の出力に従って選択する。マルチプレクサ903の出力はシンクロナスDRAM82aへのアドレスバスに接続される。CPU75のデータバス751と画像処理部71へのデータバス751aはセレクタ905で選択可能にされてバスバッファ902を経由しシンクロナスDRAM82aのデータバスに接続される。セレクタ900,901は指示信号SELにより制御される。指示信号SELは遅延回路920から出力される。遅延回路920は、割り込み信号SDCACKが変化されたときその変化がクロックドライバ76のクロック信号760に反映されるタイミングを以て変化された指示信号SEL(割り込み信号SDCACKの遅延信号)を出力する。指示信号SELがローレベルのとき、すなわちCPU割り込みがアクティブにされているときにセレクタ900,901はCPU75側との接続を選択する。バスバッファ902はシーケンサ905の出力により制御される。尚、バス制御部74bは図41のバス制御部74aに対してミスヒット検出のための回路構成が省かれた構成を有するものと理解されたい。また、ミスヒット検出部72aは図41のミスヒット検出部72bに対して入出力信号が相違される点を除いて同様の構成を有するものと理解されたい。 【0100】《リード・ライト時分割による画像処理システム》図34には一つのシンクロナスDRAM82を時分割的にリードライトして上述の画像処理を行う場合の実施例が示される。センサ80から画像データを読み込み画像処理部71にて、歪み補正処理、高画質化処理、符号化処理などを実行する。これらの処理は読み出しアドレスRDADRを用いてバス制御部74に入力し、シンクロナスDRAM82からデータをバス751を用いて読み出し、画像処理後のデータを同じバス751を用いて書き込みアドレスWRADRで書き込むことで実現している。821,822はシンクロナスDRAM82とバス制御部74とを結合するデータバス,アドレスバスである。 【0101】図42にはバス制御部74の一例ブロック図が示される。このバス制御部74はCPU75と画像処理部71が双方に共通のバス752、751で結合され、また、ミスヒット信号908はそれに含まれるミスヒット検出回路72bによって形成される点が図41の構成と相違される。図41と同一の機能を有する回路要素には同一符号を付してその詳細な説明を省略する。尚、図示はしないがこの実施例のクロックドライバ76cも基本的な構成は図40のクロックドライバ76と同様に構成される。図40におけるRDMHTは908に置き換えられ、クロック信号Cbは不要とされる。したがって、上記実施例同様にミスヒットが生ずると画像処理部71へのクロック信号760の供給が停止され、また、CPU75の割り込みに対しても画像処理部71へのクロック信号760の供給が強制的に停止され且つ最初に強制的なミスヒットが作り出され、割り込み解除に時点においても強制的なミスヒットが作り出される。 【0102】図37及び図38には単一メモリを時分割でリードライト利用する図34のシステムに於ける一例動作タイミングチャートが示される。T1で発行された読みだしアドレスR1はバス制御部74によりシンクロナスDRAM82からデータDR1を読み出す。画像処理部71で加工されたデータDW1は書き込みアドレスW1に書き込まれる。読み出しデータは、CASレイテンシーを1と仮定すると(書き込みデータのレイテンシーは0)、読み出しから書き込みに遷移する際は、1サイクルの空きを作る必要がある。これがバスステータスRWBSTのT3ステータスのNOPとされる。図37は読み出し時のミスヒット処理、図38は書き込み時のミスヒット処理のタイミングを示している。読み出しと書き込みは時分割的に実行されるため、リード・ライトの何れかにおいてミスヒットが生じた時点でアドレス更新および画像処理が停止される。リード・ライトが時分割に行われる場合にはそれによって画像処理の流れが乱れることは防止される。 【0103】《画像処理部の応用例》図43は画像処理部71をファクシミリに適応した場合のブロック図を示している。データ制御部1110にてシンクロナスDRAM82からシリアルに取り出した信号を分離し、ライン毎のデータに分けている。エッジ強調部112では、センサ80からのデータと制御部1110からの出力を用いて周辺画素を参照し注目点と周辺画素の濃度差を強調している。ラッチ1121〜1129は、注目点とその周辺画素の値を記憶するレジスタである。これらのレジスタの出力を演算することよりエッジ強調出力1130が形成される。誤差拡散部113では、多値データを高画質に2値化するため、注目画素1135を二値化する際の誤差データを周辺画素1131〜1134に分配している。次ラインのための誤差データはセレクタ115を介してメモリバス752へ、現在のラインの誤差データはデータ制御部1110から供給している。誤差拡散部113の出力は、二値データとなるため、パック処理部114にてパックされ、セレクタ115を介してメモリバス751へ供給され、それがシンクロナスDRAM82に書き込まれる。セレクタ115には、現在入力中のデータも次ライン処理時のデータとして書き込めるよう選択可能とされている。 【0104】一方、読み出し及び書き込みアドレスは読み出しカウンタ116,書き込みカウンタ117で生成している。なおカウンタの制御はクロックドライバ76の出力761で制御され、ミスヒットやCPU75からの割り込みにて停止するように制御される。クロックドライバ76からのクロック信号761が今日急停止されると、内部のラッチやレジスタの動作も停止され、処理が先に進まないように制御される。 【0105】図44の(a)にはシンクロナスDRAM82をタイムスロット方式で利用する際の例が示される。これはシンクロナスDRAM82とデータプロセッサ70aのデータバスが1つの場合、時分割で処理する必要があるため、データバスの使用順序の一例が示される。この例では、前ラインの読み込みL1R,前々ラインの読み込みL2R,現ラインの誤差データ読み込みLER,ミスヒット時のプリチャージ処理PRE,ロウアドレス活性化ACT,現ラインデータの書き込みLOW,現ラインの誤差データ書き込みLEW,パックした二値化結果データの書き込みLKWの順番でシンクロナスDRAM82のアクセスを行っている。 【0106】図44の(b)にはアドレスマップの一例が示されている。L0は現ライン,L1前ライン,L2前々ラインのデータ,LEは誤差データ,LKは結果データの各エリアである。これらはシンクロナスDRAM82におけるラインメモリ領域のエリアであり、シンクロナスDRAM82のページバッファエリアと同一メモリアドレス上にマッピングされている。 【0107】図45は画像処理部をグラフィックス処理に適用した際のブロック図を示している。ファクシミリへの適用例に比べ、上記エッジ強調部と誤差拡散部が合成データ作成部118に変更され、ソースデータと他の値1186とを合成して出力データを作成し、その結果をディレー素子1183,1184,1185で遅延させて位相保証を行ってバス752に出力する用になっている。 【0108】図46は画像処理部をプリンタへ適用した場合の一例ブロック図である。シンクロナスDRAM82から読み込んだデータが座標演算部1191に供給され、そこで演算されたデータが直線発生部1192で演算され、最後にベクトル描画部1193でベクトル演算され、その演算結果がバス752をてシンクロナスDRAM82書き込まれる。基本的な動作はファクシミリに適用した例と同様である。 【0109】以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。 【0110】例えば、例えば画像データはモニタに表示されるべき画像データに限定されず、ページプリンタで印刷されるべき画像データであってもよい。また本発明は画像表示装置に適用されるだけでなく、大量のデータをメモリを用いて処理すべき各種データ処理システムにも同様に適用できることは言うまでもない。 【0111】 【発明の効果】本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。 【0112】すなわち、メモリへのクロックを処理手段から供給することにより、クロックとアドレス、データ、制御信号のスキューを最小化しデータプロセッサからのコマンド(制御信号)をシンクロナスDRAMのようなメモリに確実に実行させること、換言すればクロック信号に同期したシンクロナスDRAMのアクセスを確実に行うことができる。 【0113】動作周波数の異なる複数のデータ処理モジュールから同一メモリにアクセスするときに、バスアクセス権が認められたデータ処理モジュールに対応される周波数のクロック信号を選択する手段を設けることによりクロックとデータやアドレスとのスキューを最小化して、データ処理モジュールからのコマンドを確実に実行させることができる。 【0114】メモリへのアドレス、データ、制御信号と共にクロック端子をハイインピーダンスにする手段を設けることにより、メモリを外部バスに開放した場合、別のデータプロセッサによる当該シンクロナスDRAMのようなメモリに対してはそれに最適なクロック信号を当該別のデータプロセッサから供給することが許容され、これにより、シンクロナスDRAMのようなメモリを複数のデータプロセッサが共有する場合にも夫々にデータプロセッサの動作速度に応じてアドレス、データ、制御信号のスキューを最小化した当該メモリへのアクセスを実現することができる。 【0115】データ処理条件に応じてメモリに対してモードレジスタの設定コマンドを発行する処理手段を設け、画像データ処理内容に最適なバーストレングスを設定することによって、効率の良いメモリアクセスを実現できる。 【0116】上記メモリに対し現在データをアクセス中に上記アクセス中のメモリバンクとは異なるメモリバンクに対し、プリチャージコマンドおよびアクティブコマンドを発生するバス制御部を設けることにより、メモリのバスをパイプライン化して利用でき、メモリアクセスのスループットを向上できる。 【0117】前回のロウアドレスと現在のロウアドレスを比較することで、ミスヒットの有無を判定し、プリチャージ,ロウアドレスの活性化を実行することで、所望のアドレスのアクセスが可能になる。 【0118】読み込み・書き込みアドレスのミスヒット検知により所定期間画像処理演算を停止する手段を設けることにより画像処理のパイプライン内のデーターを破壊することなく保持できる。 【0119】書き込みアドレスのミスヒット検知を読み込みアドレスのミスヒット検知と実質的に同じタイミングで検出することにより、書き込み時のミスヒットを、読み込み時のミスヒットにフィードバックすることができ、書き込みミスヒット時のデータ溢れ防止のためのバッファなどを設けて複雑な処理を行わなくても、ミスヒットに伴うパイプラインの乱れを防止することができる。 【0120】シンクロナスDRAMのようなメモリに対するアクセス主体が複数あるときに、アクセス主体が変更されることに応じて一義的にミスヒットを発生させることにより、例えば書き込みミスヒットを検知する手段を含むデータ処理モジュールの動作に代えて別のデータ処理モジュールがシンクロナスDRAMをアクセスした後(その間における当該書込みミスヒット検出手段の動作は不確定になっている)その書き込みミスヒットを検知する手段を含むデータ処理モジュールが動作を開始しても、このとき当該書込みミスヒット検出手段の動作に頼ると発生する虞のあるミスヒット処理ぬけを確実に防止することができる。換言すれば、メモリに対するアクセス主体変更時において強制的にミスヒットを生じさせることにより、メモリアクセス主体の変更に伴って動作が停止されたデータ処理モジュールの動作再開時点などにおけるミスヒット判定の不確定性に対処することができ、ミスヒット時の処理の信頼性を向上させることができる。 【0121】上記効果によって、シンクロナスDRAMを画像処理システムに適用する際に起こるミスヒット処理を低コストに実現することで、メモリの統合が可能になり低コストで高性能な装置を提供できる。
|
| 【出願人】 |
【識別番号】000005108 【氏名又は名称】株式会社日立製作所
|
| 【出願日】 |
平成6年8月10日(1994.8.10) |
| 【代理人】 |
【識別番号】100089071 【弁理士】 【氏名又は名称】玉村 静世
|
| 【公開番号】 |
特開2002−132578(P2002−132578A) |
| 【公開日】 |
平成14年5月10日(2002.5.10) |
| 【出願番号】 |
特願2001−243069(P2001−243069) |
|