JP3723807B2 - 図形処理装置およびその使用方法ならびにマイクロプロセッサ - Google Patents
図形処理装置およびその使用方法ならびにマイクロプロセッサ Download PDFInfo
- Publication number
- JP3723807B2 JP3723807B2 JP2003206882A JP2003206882A JP3723807B2 JP 3723807 B2 JP3723807 B2 JP 3723807B2 JP 2003206882 A JP2003206882 A JP 2003206882A JP 2003206882 A JP2003206882 A JP 2003206882A JP 3723807 B2 JP3723807 B2 JP 3723807B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- port
- register
- address
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Image Generation (AREA)
- Memory System (AREA)
- Executing Machine-Instructions (AREA)
- Image Input (AREA)
Description
【産業上の利用分野】
本発明は、図形処理方式に係り、特にバス分離されたメモリ間の図形データの転送に好適な処理方式に関する。
【0002】
【従来の技術】
従来、アドレス、データ、制御信号の各バスを2組有するマイクロプロセッサの方式としては、ハーバードアーキテクチャが知られており、この方式は命令バスとデータバスとを分離することにより命令フェッチとデータアクセスとの競合を避けるようにしたものである。
【0003】
また、図形処理用のLSIとしては、東芝レビュー43巻12号(1988年)第932頁から第935頁において論じられているビットマップコントロールプロセッサBMCPがある。このBMCPは、CPUおよびシステムメモリが接続されるシステムバスに8ビットのデータバスを有し、これとは別に64本のローカルメモリデータバスと24本のアドレスバスを有し、このアドレスバスおよびローカルメモリデータバスにより8面のプレーン方式のローカルメモリ(画像メモリ)をアクセスする。また、アドレスをラッチすることによりBMCPがシステムメモリをアクセスすることも可能である。
【0004】
【発明が解決しようとする課題】
上記従来技術のうち、ハーバードアーキテクチャは命令バスとデータバスが専用化されており、図形処理の中で最も頻繁に行われるシステムメモリとフレームメモリとの間の図形転送のように、2組のバスを共にデータアクセスに使用する点については配慮がされていない。
【0005】
一方、前記BMCPは2組のバスをデータアクセスに使用できるが、アドレスバスが1つであり、2つのメモリを同時にアクセスできるかどうかは不明である。
【0006】
また、あるメモリ番地のデータを読みだして処理を施した後、元の番地に書き戻すという図形処理でよく用いられるいわゆるリードモディファイライト処理の実行において、従来の汎用マイクロプロセッサでは、以下のような問題があった。
【0007】
すなわち、まず、CISC(Complexed Instruction Set Computer)型の汎用プロセッサでは、演算命令のソースオペランドとデステイネーションオペランドにメモリアドレスを指定でき、1命令でリードモディファイライト処理を記述することが可能であるが、命令長が長くなるという問題があり、また、リードサイクルとライトサイクルの間にウエイトサイクルを入れずに実行できるか否かは明らかでない。グラフィックス処理専用のプロセッサには、リードモディファイライト処理を連続2メモリサイクルで実行するものがあるが、モディファイの機能は限られたものである。RISC(Reduced Instruction Set Computer)型のプロセッサでは、固定長命令が基本であり、オペランドの対象をメモリにできるのはロード命令とストア命令である。したがって、リードモディファイライト処理を実行するには、ロード命令、演算命令、ストア命令の3つの命令が必要であり、ロードとストアとを連続2メモリサイクルで実行することができなかった。
【0008】
本発明の目的は、図形処理装置あるいは情報処理装置において、分離したバス上のメモリアクセスを同時に行ない、2つのメモリ間の図形あるいはデータ転送を高速化することにある。
【0009】
また、本発明の他の目的は、RISC型プロセッサにおいて、図形処理で多用されるリードモディファイライトの処理を、リードサイクルとライトサイクルとの間に空きサイクルを入れずに実行可能とすることにある。
【0010】
【課題を解決するための手段】
上記目的を達成するために、本発明による図形処理装置は、アドレス、データ、制御の各バスからなるシステムバスにそれぞれ接続されたCPUおよびシステムメモリと、アドレス、データ、制御の各バスからなるローカルバスにそれぞれ接続されたローカルメモリおよびフレームメモリと、上記システムバスに接続される第1のポートおよび上記ローカルバスに接続される第2のポートを有する図形処理用プロセッサとを具備し、該図形処理用プロセッサは、上記第1および第2のポートを介して上記第1のメモリおよび第2のメモリに同時にアクセス可能としたものである。
【0011】
この図形処理装置の使用方法としては、上記システムメモリまたはローカルメモリ上に図形転送プログラムを格納しておくとともに、上記システムメモリ上に各種図形データを格納しておき、上記システムメモリ上の図形データを上記フレームメモリへ転送する際には、上記CPUにより当該図形転送プログラムの先頭アドレスおよびパラメータの先頭アドレスを上記システムメモリまたは上記ローカルメモリに書き込み、上記図形処理用プロセッサに、上記図形転送プログラムおよびパラメータに従い、上記第1及び第2のポートを介して上記システムメモリ上の図形データを上記フレームメモリ上へ転送させることが考えられる。この図形データの転送の際に上記図形処理用プロセッサは、システムメモリの転送元領域の図形データに対応するフレームメモリの転送先領域のデータを読みだして両データに論理演算を施し、当該論理演算結果を上記フレームメモリの転送先領域に書き込むことができる。
【0012】
上記図形処理装置の他の使用方法としては、上記システムメモリまたはローカルメモリ上に各種図形描画プログラムを格納しておき、上記フレームメモリへの図形描画時には、上記CPUにより当該図形描画プログラムの先頭アドレスとパラメータの先頭アドレスとからなるワークリストを上記システムメモリまたは上記ローカルメモリ上に作成し、上記CPUの指令により上記図形処理用プロセッサに上記ワークリストの内容を読み込ませ、上記図形処理用プロセッサに上記ワークリストにより指示された図形描画プログラムおよびパラメータに従って上記フレームメモリ上に図形描画を行わせる方法が考えられる。
【0013】
本発明による図形処理装置は、他の見地によれば、アドレス、データ、制御の各バスからなるシステムバスにそれぞれ接続されたCPUおよび第1のメモリと、アドレス、データ、制御の各バスからなるローカルバスに接続された第2のメモリと、上記システムバスに接続される第1のポート、上記ローカルバスに接続される第2のポートおよび複数の内部レジスタを有する図形処理用プロセッサとを具備し、該図形処理用プロセッサは、上記第1のポートを介して上記第1および第2のメモリの一方から一の内部レジスタに図形データをロードする処理と、他の内部レジスタから上記第1および第2のメモリの他方へデータをストアする処理とを並行して実行可能である。
【0014】
また、本発明による情報処理装置は、アドレス、データ、制御の各バスからなるシステムバスにそれぞれ接続されたCPUおよび第1のメモリと、アドレス、データ、制御の各バスからなるローカルバスに接続された第2のメモリと、上記システムバスに接続される第1のポート、上記ローカルバスに接続される第2のポート、および複数の内部レジスタを有する特定処理専用プロセッサとを具備し、該特定処理専用プロセッサは、上記第1のポートを介して上記第1および第2のメモリの一方から一の内部レジスタにデータをロードする処理と、他の内部レジスタから上記第1および第2のメモリの他方へデータをストアする処理とを並行して実行可能であることを特徴とするものである。
【0015】
本発明によるマイクロプロセッサは、命令の解読、実行を行うプロセッサ部と、アドレス、データ、制御信号をメモリとの間で授受する2つのポートと、上記プロセッサ部からの書き込みおよび2つのポートへの読み出しが可能なアドレスバッファと、2つのポートからの読み出し、書き込みおよび上記プロセッサ部による命令読み出しが可能なデータバッファと、上記プロセッサ部からのメモリアクセス要求およびポート指定信号により、指定されたポートを介して上記アドレスバッファからメモリへのアドレス転送、およびデータバッファとメモリとの間のデータ転送を制御する手段とを備え、命令フェッチおよびデータアクセスを2つのメモリに対して行えることを特徴とするものである。上記プロセッサ部からも上記データバッファを読み出し書き込み可能としてもよい。
【0016】
上記プロセッサ部は、例えば、ビットマップメモリのX方向のワード数(メモリ幅)を記憶するレジスタと、ビットマップメモリ上に定義した3つの矩形領域(転送元領域、パターン領域、転送先領域)のワードアドレスを記憶するレジスタ(転送元アドレスレジスタ、パターンアドレスレジスタ、転送先アドレスレジスタ)と、転送元領域と転送先領域のビット位置の差を記憶する転送元シフト数レジスタと、パターン領域と転送先領域のビット位置の差を記憶するパターンシフト数レジスタと、転送元データを転送元シフト数レジスタに基いてシフトし、またはパターンデータをパターンシフト数レジスタに基いてシフトする手段と、該シフト後の転送元データ、パターンデータと転送先データとの論理演算を行う手段と、転送先領域の左端、右端で、書き込み禁止領域を指定するマスク手段と、該マスク手段に基いて、演算結果と転送先データとを合成する手段を備え、3オペランドの矩形領域転送をポート間で任意に行うことを特徴とするものである。
【0017】
上記ポート指定信号を生成する手段として、メモリアドレスに基づいて当該信号を生成するポート指定手段を設けてもよい。
【0018】
本発明によるマイクロプロセッサは、他の見地によれば、命令の解読、実行を行うプロセッサ部と、アドレス、データ、制御信号をメモリとの間で授受する2つのポートと、各ポートに専用のアドレスバッファ、データバッファと、各ポートの動作状況を管理する手段と、メモリより読みだしたデータを上記プロセッサ部内のレジスタに書き込む手段とを備え、上記2つのポートを介して2つのメモリに同時にアクセスを行なえることを特徴とするものである。
【0019】
本発明による他のマイクロプロセッサは、固定長命令を実行するマイクロプロセッサにおいて、プログラムから読みだされた主命令を保持する第1の命令保持手段と、上記主命令に付随する従命令を保持する第2の命令保持手段と、上記主命令および従命令を解読する解読手段と、上記主命令の解読の結果、当該主命令が従命令を使用する命令である場合に、上記従命令保持手段に保持された従命令を解読して実行することを特徴とするものである。
【0020】
このマイクロプロセッサにおいて、リードモディファイライト命令を上記主命令および従命令で表わし、主命令により、従命令を保持するレジスタの指定およびメモリアドレスを保持するレジスタの指定を行い、従命令により、メモリから読みだされたデータを格納するレジスタの指定および演算内容の指定を行い、主命令に従ってメモリからデータが読み出されると直ちに上記従命令を実行し、該実行結果をメモリに書き込むことにより、連続する2回のメモリサイクルでリードモディファイライト処理を行なえるようにすることができる。
【作用】
上記2ポートを有するマイクロプロセッサは、命令の読み出し、解読、実行、データの格納を好ましくはパイプライン処理し、メモリアクセス命令の場合は、メモリアクセス処理専用のユニットに処理を委託した後、次の命令実行を行なう。メモリアクセスを処理するユニットは、2つのポートの動作状態を管理しておくことによって、ポートに既に処理の委託がなされている場合は、ポートが使用可能になるまで、命令を実行するユニットに次の命令実行を待たせる。したがって、1つのポートが動作中でも、他のポートを使用するメモリアクセスは受付けられる。
【0021】
2ポートマイクロプロセッサは2組のバスを任意に命令フェッチおよびデータアクセスに使用でき、かつ、同時にメモリのアクセスができるので、メモリアクセス効率が向上し、特に図形処理装置に適用した場合にシステムメモリとフレームメモリとの間の図形転送が高速化される。
【0022】
また、リードライトの命令はメモリ中のプログラムに置き、演算処理命令は、通常の命令バッファとは別の従命令バッファに入れておき、リードデータが用意されたタイミングで上記バッファから演算命令を取りだし実行することにより、読みだしデータの演算をライトサイクルに間にあわせ、連続2メモリサイクルのリードモディファイライト処理が可能になる。
【0023】
CPUから2ポートマイクロプロセッサへの図形描画、論理演算付き矩形領域転送等のパラメータは、直接CPUが2ポートマイクとプロセッサに与えるのではなく、CPUがメモリ上に連続して書き込むとともに、その先頭アドレスをメモリ上のワークリスト内に含ませておくことにより、以後の図形描画、転送等の図形処理はすべて2ポートマイクロプロセッサに委任することができる。すなわち、2ポートマイクロプロセッサは、CPUから図形処理の起動を受けると、ワークリストに指定された処理を、順次、当該処理プログラムおよびパラメータを参照して実行する。CPUは、複数の図形処理をワークリストとして予め作成しておくことにより、各図形処理ごとに2ポートマイクロプロセッサにパラメータを与える必要がないので、その負担が軽減される。
【0024】
【実施例】
以下、本発明の実施例について、添付図面を参照して詳細に説明する。
【0025】
第1図に、本発明の一実施例の図形表示装置のブロック図を示す。
【0026】
図中、8は、装置全体の制御を行なう中央処理装置(CPU)である。
【0027】
1は、図形描画およびCRT6への図形表示を指示するマイクロプロセッサであり、マイクロ命令を実行するプロセッサ部101と2組のポート102、103を内部に有する。
【0028】
3は、図形描画を行なうためのマイクロ命令およびデータを記憶するローカルメモリである。
【0029】
4は、図形データを記憶するフレームメモリである。
【0030】
5は、マイクロプロセッサ1がフレームメモリ4へ図形表示アクセスを行なうことにより読み出された複数画素分の表示データを、CRT6に1画素ずつ出力するシフト回路である。
【0031】
7は、2ポートマイクロプロセッサ1、ローカルメモリ3、フレームメモリ4、シフト回路5が動作するためのクロックを供給する回路である。
【0032】
10は、CPU8が実行するマイクロ命令およびデータの記憶と、マイクロプロセッサ1が処理する図形描画コマンドおよびデータの記憶を行なうシステムメモリである。
【0033】
11は、マイクロプロセッサ1がシステムメモリ10にアクセスを行うに先立って出力するシステムバス9の使用要求信号を受けて、CPU8にバスを要求し、バス使用許可が与えられた場合、これをマイクロプロセッサ1に通知するバス調停回路である。
【0034】
12は、CPU8がプロセッサ部101内のレジスタをアクセスする場合およびローカルバス2に接続されるローカルメモリ3またはフレームメモリ4をアクセスする場合に、CPU8が出力するアドレスをデコードしてマイクロプロセッサ1に割込み要求および割込み処理内容を出力するデコーダである。
【0035】
13は、マイクロプロセッサ1のシステムバス9への入出力タイミングの調整、およびCPU8、システムメモリ10、バス調停回路11が動作するためのクロックを出力する回路である。
【0036】
次に、第1図におけるシステムメモリ、ローカルメモリおよびフレームメモリの番地割り付け方法について第2図を用いて説明する。
【0037】
2ポートマイクロプロセッサは、自身がアドレス指定可能なメモリ空間を2分割して、第1のシステムメモリ空間20とローカルメモリ空間フレームメモリ空間40に割り付ける。
【0038】
第2のシステムメモリ空間30は、CPUのみがアクセス可能である。
【0039】
301は、2ポートマイクロプロセッサが内蔵するレジスタであり、CPUのメモリ空間に番地割り付けして、CPUからアクセスすることができる。このレジスタ301の中で、R0レジスタとR1レジスタは専用目的に使用するものであり、第3図を用いてこれらを説明する。
【0040】
第3図において、R0レジスタはコントロールレジスタと呼び、2ポートマイクロプロセッサの動作制御に関する情報を記憶する。すなわち、R0レジスタの最上位ビットは動作制御ビットと呼び、"0"が記憶されていれば停止状態、"1"が記憶されていれば動作状態すなわち、マイクロ命令の実行状態にある。0ビットから23ビットまではワークリストアドレスを記憶するフィールドであり、ワークリストとは、2ポートマイクロプロセッサが実行する描画プログラムと図形パラメータとのメモリアドレスを記述したものである。2ポートマイクロプロセッサがワークリストを読み出したい場合に、R0レジスタをアドレスレジスタとして使用する。ただし、アドレスとして有効なのは0ビットから23ビットまでである。R0レジスタは、CPUのアクセス、または2ポートマイクロプロセッサの命令実行によって読み出し、書き込みが可能である。
【0041】
R1レジスタはプログラムカウンタと呼び、2ポートマイクロプロセッサが読み出すマイクロ命令のメモリアドレスを記憶し、命令読み出しがなされると自動的に値を増加させるカウンタである。R1レジスタでは、0ビットから23ビットまでが有効であり、2ポートマイクロプロセッサの全メモリ空間をプログラム領域に使用できる。
【0042】
次に、第1図の実施例装置の図形描画方式について説明する。
【0043】
本実施例装置は、CPUがメモリ上にワークリストと図形パラメータとを生成し、2ポートマイクロプロセッサがこのワークリスト等を参照して図形描画等を行うものである。
【0044】
第4図は、2ポートマイクロプロセッサが図形描画を行うに必要なコマンドとプログラムのメモリマップを表わしたものである。
【0045】
ワークリスト10-1は、2ポートマイクロプロセッサがCPUから与えられるコマンド列であり、描画したい図形のパラメータが格納されたメモリの先頭アドレスとその描画プログラムが格納されたメモリの先頭アドレスとを、描画する図形の分だけ連続して有するものである。
【0046】
10-1-1は図形"c"のパラメータが格納されたメモリの先頭アドレスを表わし、10-1-2は、図形"c"の描画プログラムが格納されたメモリの先頭アドレスを表わす。10-1-2に続く部分は別の図形のパラメータおよびプログラムの先頭アドレスが記憶されている。10-1-3は最後の図形"h"のパラメータ先頭アドレスを、10-1-4はその描画プログラム先頭アドレスを表わす。10-1-5はワークリストの最後を表わしており、リストエンドと呼ぶ。リストエンドの値は、任意に決定することができる。
【0047】
10-2は図形"c"のパラメータであり、パラメータの数と順番は、図形"c"の描画プログラムに対応している。
【0048】
同様に10-3は、図形"h"のパラメータである。
【0049】
以上、ワークリスト10-1、図形パラメータ10-2,10-3はシステムメモリ10上に定義したが、これをローカルメモリ3上に定義することもできる。
【0050】
3-1はワークリスト参照プログラムであり、ワークリストから図形パラメータ先頭アドレスを読みだして、図形描画プログラムへ実行を移すプログラムである。3-2-1,3-2-2,3-2-3は、図形描画プログラムである。
【0051】
以上、プログラム3-1,3-2-1,3-2-2,3-2-3はローカルメモリ3上に定義したが、これをシステムメモリ10上に定義することもできる。
【0052】
2ポートマイクロプロセッサ1は、R0レジスタ1101-1内にワークリストのアドレスを記憶し、ワークリスト参照時にアドレスレジスタとして使用する。R1レジスタ1101-2は、プログラムアドレスを記憶する。R2レジスタ1101-3は、図形パラメータの読み出し時にアドレスレジスタとして使用する。
【0053】
次に、2ポートマイクロプロセッサの図形描画方法を第5図を用いて説明する。
【0054】
50は、CPUが2ポートマイクロプロセッサに図形描画処理を開始させる手順を示したフローチャートである。
【0055】
まず、CPUがメモリ上にワークリストと図形パラメータとを生成する(50-1)。次に、CPUは、2ポートマイクロプロセッサのR1レジスタ(プログラムカウンタ)に、ワークリスト参照プログラムの先頭アドレスを書き込む(50-2)。続いて、CPUは2ポートマイクロプロセッサのR0レジスタ(コントロールレジスタ)中の動作制御ビットを"1"に、また同じくR0レジスタ中のワークリストアドレスフィールドにワークリストの先頭アドレスを書き込む(50-3)。CPUの処理は以上で終了する。以後の図形描画処理は2ポートマイクロプロセッサに任されるので、その間、CPUは他の処理を実行することができる。
【0056】
2ポートマイクロプロセッサは、R0レジスタ中の動作制御ビットが"1"になることで動作を開始する。
【0057】
第5図中、60は、2ポートマイクロプロセッサの処理を示したものである。2ポートマイクロプロセッサは、前記ステップ50-2でR1レジスタを設定されたことによりワークリスト参照プログラムを実行する。まず、R0レジスタのワークリストアドレスフィールドをメモリアドレスとしてデータを読み出し、R2レジスタに書き込む(60-1)。同時にR0レジスタのワークリストアドレスの値に"1"を加える。次に、R2レジスタの内容とワークリストの最後を意味するリストエンド値とを比較する(60-2)。等しければ、R0レジスタの動作制御ビットを"0"に書き換え(60-3-b)、2ポートマイクロプロセッサは動作停止状態となる(60-6)。R2レジスタの内容とリストエンド値とが等しくなければ、R0レジスタのワークリストアドレスフィールドをメモリアドレスとしてデータを読み出し、R1レジスタに書き込む(60-3-a)。同時に、R0レジスタのワークリストアドレスの値に"1"を加える。このステップ60-3-aで書き換えられたR1レジスタの値に従って、2ポートマイクロプロセッサの処理はステップ60-4-a,60-4-b,60-4-cに示す図形描画プログラムのいずれかへ移る。この各プログラムでは、R2レジスタをアドレスレジスタとして使用することによりパラメータをメモリから読み出すことができる。描画プログラムが終了すると、R1レジスタをワークリスト参照プログラムの先頭アドレスに書き換えることにより(60-5)、再びステップ60-1の処理に移る。2ポートマイクロプロセッサは、ワークリスト中からリストエンドを検出するまで上記の処理を実行する。
【0058】
次に、第6図を用いて2ポートマイクロプロセッサの内部構成を説明する。
【0059】
1101は命令フェッチユニットであり、マイクロ命令のフェッチを行う。キャッシュメモリを内蔵し、キャッシュメモリに該当する命令が存在しない場合には外部メモリから命令を取り込む。
【0060】
1102はデコーダであり、命令フェッチユニットから与えられた命令コードを解読し、演算制御を行う。
【0061】
1103は演算ユニットであり、レジスタと演算器とを有し、演算の実行を行う。
【0062】
1104はメモリアクセス管理ユニットであり、2ポートマイクロプロセッサ内で発生するメモリアクセス要求と、CPU8の割り込みを処理する。
【0063】
102はポート1であり、CPU8からのアクセス応答およびシステムメモリ10へのアクセスを行う。
【0064】
103はポート2であり、ローカルメモリ3、フレームメモリ4へのアクセスを行う。
【0065】
1105はバススイッチであり、演算ユニット1103とポート1(102)およびポート2(103)との間のバス接続を行う。
【0066】
以下、各ユニットの詳細な説明を行う。
【0067】
命令フェッチユニット1101は、キャッシュコントロール部1101-1、命令フェッチ制御部1101-2、命令バッファ1101-3から成る。動作制御の中心となるのは命令フェッチ制御部1101-2であり、演算ユニット1103内のR0レジスタ1103-1の動作制御ビットの状態によって、命令フェッチの実行の可否を決定する。すなわち、動作制御ビットが"0"であれば命令フェッチを実行せず、"1"であれば命令フェッチを実行する。
【0068】
命令フェッチ制御部1101-2は、キャッシュコントロール部1101-1にフェッチ要求を出す。キャッシュコントロール部1101-1は、演算ユニット1103内のR1レジスタ1103-2をプログラムアドレスとして、キャッシュコントロール部1101-1内のキャッシュメモリを検索する。キャッシュメモリ中に命令が存在すれば、キャッシュコントロール部1101-1は、命令フェッチ制御部1101-2に命令コードと共に応答信号を返す。命令フェッチ制御部1101-2は、命令バッファ1101-3に命令を格納すると共に演算ユニット1103内のR1レジスタ1103-2のプログラムアドレスをインクリメントさせる。キャッシュメモリ中に命令が存在しない場合は、キャッシュコントロール部1101-1はメモリアクセス管理ユニット1104に命令フェッチ要求を出す。
【0069】
デコーダ1102は、命令フェッチユニットから与えられる命令を解読し、演算ユニット1103内のレジスタの読み出し制御、書き込み制御と、演算器の制御を行う他、ロードまたはストア(以下、総称してロード/ストア)命令の場合には、メモリアクセス管理ユニット1104に、ロード/ストア信号、ポート番号、およびロードの場合にはロードしたデータを書き込むレジスタの番号(ロードレジスタ番号)(以上図面符号A)を与える。ポート番号とは、アクセスするメモリがポート1(102)上にあるか、ポート2(103)上にあるかを指定する信号である。ポートの指定方法について図を用いて説明する。
【0070】
第7図に、デコーダ1102内のポート番号指定回路を示す。1102-1がポート番号指定回路であり、ロード/ストア命令を解読すると、演算ユニット内のn個のレジスタの中からアドレスレジスタ番号で指定されるレジスタの値を選択回路1102-1-aで選び、比較器1102-1-dに入力する。比較器1102-1-dの他の入力には比較データ1102-1-cが入力され、条件ビット1102-1-bに従って両入力値が比較され、その結果がポート番号として出力される。比較データは、第2図に示した2ポートマイクロプロセッサのシステム空間20とローカルメモリ空間40との境界のアドレスに対応し、条件ビットはその境界のいずれの側をシステムメモリに割当てるかを決定するものである。
【0071】
条件ビット1102-1-bとポート番号指定方法との対応表を第8図に示す。条件ビットが"0"の場合は、アドレスレジスタのデータが比較データより大きいか等しい場合にポート1を指定し、それ以外はポート2を指定する。逆に条件ビットが"1"の場合は、アドレスレジスタのデータが比較データより大きいか等しい場合にポート2を指定し、それ以外はポート1を指定する。比較データと条件ビットとは任意に設定でき、これにより2ポートマイクロプロセッサのアクセスできるメモリ空間のメモリマップを任意に定めることができる。
【0072】
第6図に戻ってデコーダ1102の説明を続ける。
【0073】
デコーダ1102がメモリアクセス管理ユニット1104にロード/ストアを要求すると、もしそのポートが使用中あるいは予約済みの場合はウエイト信号(D)が返され、命令フェッチユニット1101およびデコーダ1102はウエイト状態になる。ロード/ストア要求が受け付けられると、デコーダ1102は続く命令の解読を行う。
【0074】
ロード命令の場合には、メモリからデータが読み込まれると、メモリアクセス管理ユニット1104からデコーダ1102にウエイト信号(D)、強制レジスタ書き込み信号およびそのレジスタ番号が与えられ、デコーダ1102はデコード中の命令実行を保留し、メモリから読み出されたデータのレジスタ書き込みを優先して行う。この回路を第9図に示す。
【0075】
第9図の回路において、命令によるレジスタの読み出し、書き込みは、命令解読回路1102-2が制御回路1102-3,1102-4,1102-5,1102-6,1102-7にレジスタ番号を与えて実行させる。メモリアクセス管理ユニット1104から強制的なレジスタアクセス信号とウエイト信号を受けると、命令解読回路1102-2は命令実行を停止し、レジスタ読み出し制御回路4(1102-6)またはレジスタ書き込み制御回路1102-7が強制アクセスレジスタ番号で指定されるレジスタに読み出し、書き込みを実行する。
【0076】
なお、ロード命令がメモリアクセス管理ユニットに受け付けられた後、メモリからレジスタにデータが書き込まれるまでに、後続の命令実行によってそのレジスタが読み出しレジスタとして使用される可能性がある。この場合には、メモリからデータがレジスタにロードされるまで、その命令の実行を待たせる必要がある。そこで、デコーダ1102は、読み出しレジスタの番号を命令実行より早くメモリアクセス管理ユニット1104に与え、ロードレジスタ番号との比較を行わせる。もし一致した場合にはウエイト信号(D)が返され、その命令実行にウエイトをかける。
【0077】
次に、第6図に戻り、演算ユニット1103の説明を行う。
【0078】
前述したように、n個のレジスタのうちR0レジスタ1103-1とR1レジスタ1103-2とは専用レジスタであり、R2レジスタからRn-1レジスタは汎用レジスタ1103-3である。バレルシフタ1103-4は、32ビットのデータを連結して64ビットにし、6ビットのシフト数で指定された分だけシフトして生成した32ビットデータを出力する。3オペランドLU1103-5は、3つの入力データ間で256種の論理演算を行う。ALU1103-6は、2つの入力データ間で算術論理演算を行う。内部バスは、読み出し用が4本(R3B,R2B,R1B,R0B)と、書き込み用が1本(WB)であり、このうちR1Bはバレルシフタ1103-4のシフト数および3オペランドLU1103-5の演算モードを与えるのに使用する。ストア命令実行時には、R2Bはアドレス転送に、R3Bはデータ転送に使用する。ロード命令実行時には、R2Bは同じくアドレス転送に、WBをデータ転送に使用する。
【0079】
次に、メモリアクセス管理ユニット1104について第10図を用いて説明する。
【0080】
まず、ロード/ストア管理回路1104-2を説明する。1104-2-aは、ポート1で実行中の状態を示す3ビットの状態レジスタ1であり、F1は命令フェッチ、L1はロード、S1はストアを意味する。"1"が設定されていればその動作中であることを意味する。1104-2-bは、ロード命令実行によりデータを書き込むレジスタの番号を記憶するレジスタである。
【0081】
ポート2についても同様に状態レジスタ2(1104-2-c)とロードレジスタ番号レジスタ2(1104-2-d)とを有している。ただし、状態レジスタ2(1104-2-c)は4ビットのレジスタであり、F2,L2,S2の各ビットに加えてさらにインタフェース実行中を意味するビットIを持つ。
【0082】
デコーダ1102からロード/ストア要求とポート番号とが与えられると、指定されたポートの状態レジスタ1104-2-a、1104-2-cを調べ、ポートが動作中であれば直ちにポート使用中を意味する信号をオア回路1104-5に与える。その結果ウエイト信号が出力され、実行しようとしているロード/ストア命令の実行にウエイトをかける。状態レジスタ1104-2-a、1104-2-cが全ビット"0"の場合には、ロードあるいはストアのビットを"1"にセットする。またロード要求の場合には、デコーダが出力するロードレジスタ番号を指定されたポートのロードレジスタ番号レジスタ1104-2-b、1104-2-dに書き込む。
【0083】
ロード/ストア管理回路1104-2は、指定されたポートにロードまたはストアの指示を与える。また、ポート内のアドレスバッファにアドレスを書き込む制御信号を出力する。ストアの場合には、ポート内のデータバッファにデータを書き込む制御信号も出力する。
【0084】
メモリアクセスはロード/ストア命令だけでなく、命令フェッチユニットで命令キャッシュのミスヒットが起きた場合にも生じる。命令フェッチユニットは命令フェッチ要求とポート番号とを出力する。ロード/ストア管理回路1104-2は、指定されたポートの状態レジスタ1104-2-a、1104-2-cを調べる。ポートが未使用であれば、命令フェッチユニットにプログラムアドレスの読み出し信号を与え、ポート内のアドレスバッファに書き込みを行う。
【0085】
該当するポートからアクノリッジが返ると、ストア命令の場合にはそのポートの状態レジスタ1104-2-a、1104-2-cのストアビットS1またはS2を"0"にクリアする。ロード命令の場合には、レジスタ強制アクセス回路1104-3に処理を指示して、そのポートの状態レジスタ1104-2-a、1104-2-cのロードビットL1またはL2を"0"にクリアする
また、ロード/ストア管理回路1104-2は、CPUによるローカルバスアクセス時にも動作する。ポート1からバスインタフェース要求を受けると、ポート2が未使用になり次第、状態レジスタ2(1104-2-c)のビットIをセットし、ポート1にバスインタフェースレディを返す。CPUのローカルバス使用が終了し、バスインタフェース要求が取り下げられると状態レジスタ1104-2-cのインタフェースビットIをクリアする。
【0086】
1104-3はレジスタ強制アクセス回路であり、ロード命令の実行によってメモリからポート内のデータバッファにデータが書き込まれた後、前記ロード/ストア管理回路1104-2からロードレジスタ要求およびロードレジスタ番号を受けて、デコーダ1102に強制レジスタ書き込みを実行させる。このときポート内にあるデータバッファの読み出し制御も行う。
【0087】
レジスタ強制アクセス回路1104-3は、CPUが2ポートマイクロプロセッサ内のレジスタをアクセスする場合にも動作する。CPUのレジスタ書き込み信号または読み出し信号とレジスタ番号とを受け取ると、デコーダ1102に強制レジスタ書き込みまたは読み出しを実行させる。このとき、ポート1内にあるCPUの読み出しデータまたは書き込みデータを一時蓄えるデータバッファ1202-1の書き込み、読み出し制御も行う。
【0088】
1104-4はバススイッチ制御回路であり、ロード/ストア実行時に演算ユニットと各ポートとの間のデータ転送のためのバス接続制御を行う。
【0089】
1104-1はレジスタ読み出し禁止回路であり、デコーダ1102から読み出しが行われるレジスタ番号を実行より早いタイミングで受け、ロード/ストア管理回路1104-2で保持しているロードレジスタ番号と比較する。演算ユニット1103には4つの読み出しバスがあるため、最大で4つの読み出しレジスタ番号とロードレジスタ番号とを比較する。一致する番号があれば、これから実行しようとする命令実行にウエイトをかける。
【0090】
次に、第6図に戻り、ポート1(102)の説明を行う。
【0091】
ポート1(102)は、メモリアクセスユニット1201、CPU応答ユニット1202、アドレスラッチ1203、データラッチ1204、端子1205から成る。
【0092】
メモリアクセスユニット1201は、前記メモリアクセス管理ユニット1104のロード/ストア指示(G-1)を受けて、システムメモリ10へのアクセスを実行する。演算ユニット1103から与えられるアドレスおよびストアデータを保持するために、アドレスバッファ1(1201-1)とWデータバッファ1(1201-2)とを有する。また、システムメモリ10から読み出したデータを保持するためにRデータバッファ1(1201-3)を有する。
【0093】
メモリアクセスユニット1201は、メモリアクセスに先立って、まずシステムバス9の使用権を獲得する。バス使用権を得て、アクセスを開始した後、システムメモリ10から応答が来ると、メモリアクセス管理ユニット1104にアクノリッジ(G-2)を返す。ロードの場合には、メモリアクセス管理ユニット1104からRデータバッファ1(1201-3)の読み出し(G-3)が行われる。
【0094】
CPU応答ユニット1202は、CPU8が2ポートマイクロプロセッサ内のレジスタ1103-1〜1103-3をアクセスする場合、およびローカルメモリ3またはフレームメモリ4をアクセスする場合に動作する。
【0095】
レジスタアクセスの場合は、メモリアクセス管理ユニット1104にレジスタアクセス信号およびレジスタ番号(H-1)を出力する。レジスタ書き込みの場合は、メモリアクセス管理ユニット1104が命令フェッチユニット1101およびデコーダ1102にウエイトをかけ、CPUデータバッファ1202-1のデータをバスMRBに読み出し(H-2)、指定されたレジスタに強制書き込みを行う。レジスタ読み出しの場合は、メモリアクセス管理ユニット1104がやはり命令フェッチユニット1101およびデコーダ1102にウエイトをかけ、レジスタを強制的に読み出し、CPUデータバッファ1202-1に書き込む(H-3)。CPU応答ユニット1202は、データをラッチ1204に書き込み、アクノリッジをCPUに返して、データ読み出しを行わせる。
【0096】
CPUがローカルメモリ3、フレームメモリ4をアクセスする場合は、CPU応答ユニットがメモリアクセス管理ユニット1104にバスインタフェース要求(I-1)を出力する。次のメモリサイクルでローカルバス2が空くことがわかると、メモリアクセス管理ユニット1104は、バスインタフェースレディ(I-2)を返す。CPU応答ユニット1202は、ポート2(103)のメモリアクセスユニット1301にロードまたはストア信号を出力し、アドレスをポート1(102)内のラッチ1203からポート2(103)内のラッチ1302に転送する。ストアの場合は、データをポート1(102)内のラッチ1204からポート2(103)内のラッチ1303に転送する。ローカルメモリ3、フレームメモリ4のアクセスは、メモリアクセスユニット2(1301)が実行する。CPU応答ユニット1202は、ストアの場合はメモリアクセスが開始されると、CPU8にアクノリッジを返し、CPU8のバスサイクルを終了させる。ロードの場合はメモリアクセス終了後、ラッチ1303に読み込まれたデータをポート1(102)内のラッチ1204に転送し、CPU8にアクノリッジを返してシステムバス9からデータの読み出しを行わせる。
【0097】
次に、ポート2(103)の説明を行う。
【0098】
ポート2(103)は、メモリアクセスユニット2(1301)、アドレスラッチ1302、データラッチ1303、端子1304から成る。
【0099】
メモリアクセスユニット2(1301)は、前記メモリアクセス管理ユニット1104または前記CPU応答ユニット1202の指示を受けて、ローカルメモリ3、フレームメモリ4へのアクセスを実行する。演算ユニット1103から与えられるアドレスおよびストアデータを保持するために、アドレスバッファ2(1301-1)およびWデータバッファ2(1301-2)を有する。また、ローカルメモリ3、フレームメモリ4から読み出したデータを保持するためにRデータバッファ2(1301-3)を有する。ローカルバス2は同期式のバスであり、内部クロックの6倍を1回のメモリサイクルとして使用する。
【0100】
次に、第11図を用いて、2ポートマイクロプロセッサの2つのメモリへの同時アクセスについて説明する。
【0101】
内部クロックkで命令キャッシュからフェッチされた命令nをデコードした結果、その命令がロード命令でありポート1が指定されたとする。メモリアクセス管理ユニットは、ポート1の動作状況を調べ、空きと判断した場合、メモリアクセスユニット1にロード1(第11図中、符号1)を出力する。また、演算ユニットは、アドレスレジスタに指定されたレジスタの内容をバスに読み出し、メモリアクセス管理ユニットはバススイッチを接続して、アドレスバッファ1にバス上のアドレスを書き込む(2)。
【0102】
メモリアクセスユニット1はシステムバス獲得を要求し、バス権が与えられると矢印3に示すように、アドレスバッファ1からメモリアドレスをシステムバスに出力し、システムメモリに対して読み出しアクセスを実行する。システムメモリから応答が返ると、メモリアクセス管理ユニットにアクノリッジ1(4)を返す。また、システムバスからは、矢印5が示すように、Rデータバッファ1にデータを読み込む。アクノリッジ1(4)を受けたメモリアクセス管理ユニットは演算ユニット内のレジスタに強制書き込みを行い、ロード1を取り下げる(6)。
【0103】
一方、内部クロックk+1でフェッチされた命令n+1は、ポート2へのロード命令であるとする。メモリアクセス管理ユニットは、ポート2の動作状況を調べ、メモリアクセスユニット2にロード2(11)を出力する。また演算ユニットはアドレスレジスタに指定されたレジスタの内容をバスに読み出し、メモリアクセス管理ユニットがこれをメモリアクセスユニット2のアドレスバッファに書き込む(12)。メモリアクセスユニット2は、クロックk+7で開始するメモリサイクルでメモリアドレスを出力し(13)、クロックk+11でデータをRデータバッファ2に読み込む(15)。メモリアクセス管理ユニットは、クロックk+10のアクノリッジ2(14)に応じてRデータバッファ2を読み出し、演算ユニット内のレジスタに強制書き込みを行う。
【0104】
このように、2ポートマイクロプロセッサは、メモリアクセス管理ユニットが2つのポートの動作状態を管理し、メモリから読み出したデータのレジスタ強制書き込みを行う機能を有することによって、2つのポートを同時に使用したメモリアクセスを行うことができる。
【0105】
次に、CPUの2ポートマイクロプロセッサ内のレジスタアクセスについて説明する。
【0106】
第12図は、CPUが2ポートマイクロプロセッサ内のR0レジスタの内容を読み出して、モディファイし、再びR0レジスタに書き込むタイムチャートを示している。外部デコーダ12によってCPUからのレジスタ読み出し要求を受けると、CPU応答ユニットはメモリアクセス管理ユニットに、CPUレジスタ読み出し信号(第12図中1)およびレジスタ番号を出力する。メモリアクセス管理ユニットは、これに応じて直ちに命令フェッチユニットおよびデコーダにウエイトをかけ(図では命令j+1にウエイトがかかっている)、演算ユニット内のR0レジスタを強制的に読み出し、CPUデータバッファに書き込む(2)。CPU応答ユニットは、CPUデータバッファのデータをシステムバスに出力し、CPUに応答を返す。CPUは読み出したデータをモディファイし、引き続いて書き込みサイクルを開始する。
【0107】
CPUのレジスタ書き込み要求を受けたCPU応答ユニットは、システムバス上のデータをCPUデータバッファに読み込み(11)、メモリアクセス管理ユニットにCPUレジスタ書き込み信号およびレジスタ番号を出力する(12)。メモリアクセス管理ユニットは、直ちに命令フェッチユニットとデコーダにウエイトをかけ(図では命令k+1にウエイトがかかっている)、演算ユニット内のR0レジスタに強制書き込みを行う(13)。
【0108】
図中に示したマイクロ命令の実行ステージからわかるように、強制読み出し(2)はCPUレジスタ読み出し信号(1)が与えられた次のサイクルで実行し、強制書き込み(13)はCPUレジスタ書き込み信号(12)が与えられた2つ後のサイクルで実行する。
【0109】
次に、CPUによるローカルメモリ、フレームメモリへのアクセスについて説明する。
【0110】
第13図は、CPUがローカルメモリをリードアクセスする場合のタイムチャートを示している。外部デコーダによってCPUのローカルメモリアクセス要求を受けると、CPU応答ユニットはメモリアクセス管理ユニットに、バスインタフェース要求(1)を出力する。
【0111】
メモリアクセス管理ユニットは、ポート2の動作状況を調べる。クロックk+4でメモリアクセスユニット2からアクノリッジ2(2)が返り、メモリアクセス管理ユニット内にあるポート2の状態レジスタがクリアされると、バスインタフェース要求を受付け、状態レジスタのビットIをセットし、CPU応答ユニットにバスインタフェースレディを返す(3)。CPU応答ユニットは、バスインタフェース要求を取り下げ(4)、ポート1内のアドレスラッチに読み込まれたメモリアドレスをポート2内のアドレスラッチへ転送し(5)、メモリアクセスユニット2にロード要求を出す。メモリアクセスユニット2は、ローカルメモリからデータを読み出し、CPU応答ユニットにアクノリッジを返す(6)。CPU応答ユニットは、ポート2内のデータラッチに読み込まれたデータをポート1内のデータラッチに転送し、システムバスに出力する(7)。CPUはポート1からの応答を受けて、システムバス上のデータを読み込む。
【0112】
次に、2ポートマイクロプロセッサのリードモディファイライト命令について説明する。
【0113】
この命令は、メモリから読み出したデータに演算を行ない、結果を元のメモリアドレスに書き戻す処理を連続2メモリサイクルで実行するための命令である。まず、使用する図の概略説明を行う。第14図は、リードモディファイライト命令のリードサイクル時の各ユニット間の信号伝達を表わしている。第15図は、続くモディファイライトサイクル時の各ユニット間の信号伝達を表わしている。第16図は、第14図、第15図の動作のタイムチャートである。また、第17図はモディファイバッファを用いる本発明のマイクロプロセッサの概念図である。
【0114】
まず、第14図、第16図を用いて、リードサイクルの説明を行なう。
【0115】
命令デコーダは、内部クロックkでフェッチされたリードモディファイライト命令(第14図、第16図中1)を解読すると、直ちにウエイト信号(2)を命令フェッチユニットに返す。この信号は、モディファイを実行するまで命令フェッチユニットに出力し続ける。命令デコーダは、Riレジスタの内容をメモリアドレスとしてR2Bに出力させ、メモリアクセス管理ユニットにロード要求、ストア要求およびポート番号を与える(3)。また、Rsレジスタの内容をR3Bに出力させ、命令デコーダ内部のモディファイバッファ1102-9に取り込む(4)。一方、ロード/ストア要求を受けたメモリアクセス管理ユニットは、指定されたポートの状態レジスタのロードビットとストアビットとを共に"1"にセットし、ロード信号(7)を出力するとともに、バススイッチを接続制御して(5)、アドレスバッファにメモリアドレスを書き込む(6)。指定されたポートは、アドレスバッファのメモリアドレスをラッチし(8)、メモリに出力して(9)、リードサイクルを開始する。メモリからデータが読み出されると、ポートはこれをラッチし(10)、Rデータバッファに読み込み(11)、メモリアクセス管理ユニットにアクノリッジ(12)を返す。メモリアクセス管理ユニットは、命令デコーダに強制書き込み信号を与え(13)、バススイッチを接続制御して、Rデータバッファから読み出したデータをRqレジスタに書き込ませる(14)。
【0116】
続いての処理は、第15図と第16図を用いて説明する。
【0117】
メモリアクセス管理ユニットは、状態レジスタのロードビットを"0"にリセットし、ポートにストア信号を与える(第15図、第16図中15)。ポートは、アドレスバッファのメモリアドレスをラッチし(16)、メモリに出力して(17)、ライトサイクルを開始する。
【0118】
命令デコーダは、命令フェッチユニットへのウエイト信号を取り下げ(18)、演算ユニットにモディファイバッファの命令を実行させる(19)。この例は、RqレジスタとRrレジスタの両内容についてALUで演算し、結果をRqレジスタに格納する命令である。
【0119】
メモリアクセス管理ユニットは、ALUが演算結果を出力するタイミングでバススイッチを接続制御し(20)、WB上のデータをポート内のWデータバッファに書き込む(21)。
【0120】
ポートは、Wデータバッファのデータをラッチし(22)、メモリに出力する(23)。また、メモリアクセス管理ユニットにアクノリッジ(24)を返し、状態レジスタのストアビットを"0"にクリアさせる。
【0121】
第17図の概念図に示すように、プログラムの命令を保持する通常の命令バッファとは別個に予めいずれかのレジスタに設定した従命令を保持するモディファイバッファを設け、命令バッファの命令デコード結果に応じて、従命令の実行を要する場合には直ちにモディファイバッファの命令をデコードすることにより、第16図のタイムチャートから分かるように、リードサイクルで読み込んだデータのモディファイ結果を次のライトサイクルに間にあわせることができる。また、モディファイバッファに取り込む命令は、R2〜Rn-1の任意のレジスタから読み出すことが可能である。なお、第17図では概念を明確にするためにモディファイバッファをデコーダとは別個のブロックで示してある。
【0122】
次に、第18図を用いてシステムメモリからフレームメモリへの矩形転送方式を説明する。
【0123】
10-1は、システムメモリ10をX−Y座標空間で表したものである。転送元メモリ幅MWSとは、矩形領域の転送元であるシステムメモリのX−Y座標空間10-1の幅である。ORGSとは、転送元のX−Y座標空間10-1の原点であり、その値はシステムメモリ10上のビットアドレスである。10-2は転送元矩形領域であり、Xss、Yssはそれぞれ転送開始位置のX座標及びY座標であり、Xse、Yseはそれぞれ転送終了位置のX座標及びY座標である。
【0124】
4-1は、フレームメモリ4をX−Y座標空間で表したものである。転送先メモリ幅MWDとは、矩形領域の転送先であるフレームメモリのX−Y座標空間4-1の幅である。ORGDとは、転送先のX−Y座標空間4-1の原点であり、その値はフレームメモリ4上のビットアドレスである。4-2は転送先矩形領域であり、Xds、Ydsはそれぞれ転送開始位置のX座標及びY座標である。
【0125】
まず、CPU8は図中符号50に示すように、システムメモリ10上に、図形転送プログラムの先頭アドレスおよび図形パラメータの先頭アドレスからなるワークリストを生成する。また、ワークリスト中のパラメータ先頭アドレスが指すアドレス以降の連続したアドレスに図形転送に必要なパラメータを生成する。
【0126】
次に、CPU8が起動をかけると(60)、2ポートマイクロプロセッサ1は、実行すべきプログラムの先頭アドレスをワークリストから読み込んで、ローカルメモリ3から図形転送プログラムをフェッチする(70)。矩形領域の転送元アドレスは、システムメモリ10から読み込んだ座標値、ORGSおよび転送元メモリ幅(80)から計算する。同様に、矩形領域の転送先アドレスは、フレームメモリ4から読み込んだ座標値、ORGDおよび転送先メモリ幅(80)から計算する。
【0127】
転送元の矩形領域のデータと転送先矩形領域のデータとの間で論理演算を伴うデータ転送を行うには、第14図〜第16図で説明したリードモディファイライト命令を利用して、システムメモリ10から読み込んだ転送元データ(90-1)を転送先であるフレームメモリ上のデータ(90-2)との間でデータ演算を実行し、結果を転送先アドレスに書き込む(90-3)。以上のアドレス計算とデータ演算とを転送する矩形領域について実行することにより、システムメモリ10からフレームメモリ4への矩形領域の転送を高速に行わせることができる。
【0128】
なお、演算ユニットの構成については第6図によりその概略を説明したが、参考のためにこの矩形領域のデータ転送に使用される演算ユニット部の具体的構成を第19図に示す。演算ユニットの具体的構成要素は、ビットマップメモリのX方向のワード数(メモリ幅)を記憶するレジスタと、ビットマップメモリ上に定義した3つの矩形領域(転送元領域、パターン領域、転送先領域)のワードアドレスを記憶するレジスタ(転送元アドレスレジスタ、パターンアドレスレジスタ、転送先アドレスレジスタ)と、転送元領域と転送先領域のビット位置の差を記憶する転送元シフト数レジスタと、パターン領域と転送先領域のビット位置の差を記憶するパターンシフト数レジスタと、転送元データを転送元シフト数レジスタに基いてシフトし、またはパターンデータをパターンシフト数レジスタに基いてシフトするバレルシフタと、シフト後の転送元データ、パターンデータおよび転送先データ間で論理演算を行う3オペランドLUと、転送先領域の左端、右端で、書き込み禁止領域を指定するマスク手段と、このマスク手段に基いて、演算結果と転送先データとを合成する合成回路等からなる。
【0129】
以上、発明の好適な実施例についてのみ説明したが、発明の要旨を逸脱することなく種々の変更を加えることは可能である。例えば、モディファイバッファを用いるマイクロプロセッサの構成は、必ずしも2ポートを必要とするものではなく、従来の1ポートのプロセッサにも適用することができる。また、図形処理装置についてのみ説明したが、分離されたバス間のデータ転送を伴う用途、例えば、プリンタ制御、通信制御等の特定処理専用のプロセッサとして利用することができる。
【0130】
【発明の効果】
本発明によれば、2ポートマイクロプロセッサの2組のバスを任意に命令フェッチおよびデータアクセスに使用でき、かつ、同時にメモリのアクセスができるので、メモリアクセス効率が向上し、特に図形処理装置に適用した場合にはシステムメモリとフレームメモリとの間の図形転送が高速化される。また、図形処理で頻度の高いリードモディファイライト処理もリードサイクルとライトサイクルとの間に空きサイクルなしに実行できるので、図形処理装置の性能が向上する。
【図面の簡単な説明】
【図1】本発明の2ポートマイクロプロセッサを使用した図形処理装置のブロック図である。
【図2】第1図の装置のメモリマップである。
【図3】第1図のプロセッサ1の内部レジスタの説明図である。
【図4】第1図のプロセッサ1のコマンドとプログラムのメモリマップである。
【図5】第1図のプロセッサ1の動作フロー図である。
【図6】第1図のプロセッサ1の内部構成を示すブロック図である。
【図7】第6図内のデコーダ1102内のポート番号指定回路のブロック図である。
【図8】第7図の回路の動作説明図である。
【図9】第6図内のデコーダ1102内のレジスタ強制アクセス実行回路のブロック図である。
【図10】第6図内のメモリアクセス管理ユニット1104の内部構成を示すブロック図である。
【図11】第6図のプロセッサのメモリアクセスタイムチャートである。
【図12】第6図のプロセッサのメモリアクセスタイムチャートである。
【図13】第6図のプロセッサのメモリアクセスタイムチャートである。
【図14】リードモディファイライトの動作説明図である。
【図15】リードモディファイライトの動作説明図である。
【図16】リードモディファイライトの動作説明図である。
【図17】モディファイバッファを使用する本発明の概念図である。
【図18】システムメモリからフレームメモリへの図形転送の説明図である。
【図19】2ポートマイクロプロセッサ内の演算ユニットの詳細を示すブロック図である。
【符号の説明】
1…2ポートマイクロプロセッサ、2…ローカルバス、3…ローカルメモリ、4…フレームメモリ、6…CRT、8…CPU、9…システムバス、101…プロセッサ、102…ポート1、103…ポート2、1101…命令フェッチユニット、1102…デコーダ、1103…演算ユニット、1104…メモリ管理ユニット。
Claims (3)
- 図形処理プロセッサであって、
プログラムを実行するプロセッサ部と、
図形転送プログラム、前記図形転送プログラムの先頭アドレスが記述されたワークリストおよび図形データが記憶されたシステムメモリと、CPUとに接続するシステムバスに接続される第1のポートと、
フレームメモリと接続するローカルバスに接続される第2のポートと、を有し、
前記プロセッサ部は、
前記第1のポートを介して前記ワークリストの先頭アドレスを受け取ると、前記第1のポートを介して前記システムメモリにアクセスし、受け取った前記ワークリストの先頭アドレスに従い、前記システムメモリから前記ワークリストを読み込み、
読み込んだ前記ワークリストに記述されている前記図形転送プログラムの先頭アドレスに従って、前記第1のポートを介して前記システムメモリから前記図形転送プログラムを読み込んで実行し、
実行した前記図形転送プログラムに従い、前記図形データを、前記第1のポートを介して前記システムメモリから読み込んで、前記第2のポートを介して前記フレームメモリへ転送すること
を特徴とする図形処理プロセッサ。 - 請求項1に記載の図形処理プロセッサであって、
前記プロセッサ部は、
前記図形転送プログラムに従い、第1の座標空間における前記図形データの座標値と、前記第1の座標空間の原点の前記システムメモリにおけるアドレスとに基づいて、前記図形データの前記システムメモリにおけるアドレスを計算し、計算したアドレスに従って前記システムメモリから前記図形データを読み込むこと
を特徴とする図形処理プロセッサ。 - 請求項1又は2に記載の図形処理プロセッサであって、
前記プロセッサ部は、
前記図形転送プログラムに従い、第2の座標空間における前記図形データの座標値と、前記第2の座標空間の原点の前記フレームメモリにおけるアドレスとに基づいて、前記図形データの前記フレームメモリにおけるアドレスを計算し、計算したアドレスに従って前記フレームメモリへ前記図形データを転送すること
を特徴とする図形処理プロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003206882A JP3723807B2 (ja) | 2003-08-08 | 2003-08-08 | 図形処理装置およびその使用方法ならびにマイクロプロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003206882A JP3723807B2 (ja) | 2003-08-08 | 2003-08-08 | 図形処理装置およびその使用方法ならびにマイクロプロセッサ |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000062359A Division JP3474143B2 (ja) | 1989-04-20 | 2000-03-07 | 2ポートマイクロプロセッサ |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004323589A Division JP3814283B2 (ja) | 2004-11-08 | 2004-11-08 | マイクロプロセッサ |
JP2005070871A Division JP3834327B2 (ja) | 2005-03-14 | 2005-03-14 | 図形処理装置およびその使用方法ならびにマイクロプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004127266A JP2004127266A (ja) | 2004-04-22 |
JP3723807B2 true JP3723807B2 (ja) | 2005-12-07 |
Family
ID=32290640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003206882A Expired - Lifetime JP3723807B2 (ja) | 2003-08-08 | 2003-08-08 | 図形処理装置およびその使用方法ならびにマイクロプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3723807B2 (ja) |
-
2003
- 2003-08-08 JP JP2003206882A patent/JP3723807B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2004127266A (ja) | 2004-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH03129433A (ja) | 並列処理装置および並列処理方法 | |
EP0395958B1 (en) | Graphics processing apparatus and method | |
JP4226085B2 (ja) | マイクロプロセッサ及びマルチプロセッサシステム | |
JPH10187661A (ja) | コンピュータにおけるスカラ値をベクトルに記入する方法 | |
US6233596B1 (en) | Multiple sum-of-products circuit and its use in electronic equipment and microcomputers | |
JP3797570B2 (ja) | セマフォ命令用のセマフォ・バッファを用いた装置と方法 | |
US20060225060A1 (en) | Code swapping in embedded DSP systems | |
US4821231A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
CA1285654C (en) | Instruction control mechanism for a computing system | |
US20030046358A1 (en) | Multiple image dynamic bind and load procedure for a multi-processor | |
JP3814283B2 (ja) | マイクロプロセッサ | |
JP3723807B2 (ja) | 図形処理装置およびその使用方法ならびにマイクロプロセッサ | |
JP3834327B2 (ja) | 図形処理装置およびその使用方法ならびにマイクロプロセッサ | |
JP2006260590A (ja) | 図形処理装置およびその使用方法ならびにマイクロプロセッサ | |
JP3474143B2 (ja) | 2ポートマイクロプロセッサ | |
US6727903B1 (en) | Microprocessor, and graphics processing apparatus and method using the same | |
JP2565495B2 (ja) | デ−タ処理システム | |
JP4384828B2 (ja) | コプロセッサ装置およびデータ転送を容易にするための方法 | |
JP3841820B2 (ja) | マイクロコンピュータ | |
JP2668987B2 (ja) | データ処理装置 | |
JP3067253B2 (ja) | データ処理装置 | |
JP3147884B2 (ja) | 記憶装置及び情報処理装置 | |
JP2933569B2 (ja) | 中央演算処理装置 | |
US4811274A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
JP3733137B2 (ja) | マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040901 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040907 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041108 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050111 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050210 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050314 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050411 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050913 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050916 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080922 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080922 Year of fee payment: 3 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080922 Year of fee payment: 3 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080922 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080922 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080922 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090922 Year of fee payment: 4 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090922 Year of fee payment: 4 |