(57)【要約】【課題】  演算器の実行コード数を削減し、命令格納メモリの容量を物理的に削減することができる演算処理装置のメモリ回路を提供する。【解決手段】  複数の入力データを保持する入力メモリ２と、加減乗除、論理演算および数値比較などを行うための１つ以上の演算器１と、演算器１からの演算結果を保持する出力メモリ３と、演算器１にて実行する処理を決定するための１つ以上の命令格納メモリ４と、演算器１の実行サイクル毎にカウントアップするプログラムカウンタ９とを備えた演算処理装置において、演算処理で多用されるある特定の命令コードを格納するレジスタ７と、レジスタ７に格納された特定命令が実行されるステップの情報を格納するための特定命令情報格納メモリ６と、特定命令情報格納メモリ６からの出力データをカウント禁止信号としてカウント動作を制御できるアドレス生成カウンタ５と、命令格納メモリ４からの出力命令と特定命令コードを格納したレジスタ７からの出力命令を切替えるセレクタ回路８を備えた。【選択図】  図１
2006072961.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力データを保持するための入力メモリ（２）と、
加減乗除、論理演算および数値比較などを行うための１つ以上の演算器（１）と、
前記演算器（１）からの演算結果を保持する出力メモリ（３）と、
前記演算器（１）にて実行する処理を決定するための１つ以上の命令格納メモリ（４）と、
前記演算器（１）の実行サイクル毎にカウントアップするプログラムカウンタ（９）と、
を備えた演算処理装置において、
演算処理で多用されるある特定の命令コードを格納するレジスタ（７）と、
前記レジスタ（７）に格納された特定命令が実行されるステップの情報を格納するための特定命令情報格納メモリ（６）と、
前記特定命令情報格納メモリ（６）からの出力データをカウント禁止信号としてカウント動作を制御できるアドレス生成カウンタ（５）と、
前記命令格納メモリ（４）からの出力命令と前記特定命令コードを格納したレジスタ（７）からの出力命令を切替える第１のセレクタ回路（８）と、
を備えたことを特徴とする演算処理装置のメモリ回路。
【請求項２】
前記レジスタ（７）および前記特定命令情報格納メモリ（６）が複数設置されており、
前記複数の特定命令情報格納メモリ（６）から出力される特定命令有効信号（Ｓ１０〜Ｓ１２）を論理ＯＲすると共に、該論理ＯＲされた信号をカウント禁止信号として前記アドレス生成カウンタ（１）に出力するための論理ＯＲ回路（１０）と、
前記特定命令コードを格納した複数のレジスタ（７）からの出力命令を選択して各演算器に出力する第２のセレクタ回路（１１）と、
前記第２のセレクタ回路（１１）を制御するためのデコード回路（１２）と、
を備えたことを特徴とする請求項１記載の演算処理装置のメモリ回路。
【請求項３】
同一の命令コードを連続して前記特定命令情報格納メモリ（６）から出力することを示す情報が格納された連続命令情報格納メモリ（２１）と、
前記特定命令情報格納メモリ（６）から出力される特定命令有効信号（Ｓ２０〜Ｓ２２）と前記連続命令情報格納メモリ（２１）から出力される連続命令有効信号（Ｓ２３〜Ｓ２５）とを論理ＯＲすると共に、該論理ＯＲされた信号をカウント禁止信号として前記アドレス生成カウンタ（１）に出力する論理ＯＲ回路（２０）と、
を備えたことを特徴とする請求項１記載の演算処理装置のメモリ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサやディジタルシグナルプロセッサ（ＤＳＰ）の演算処理装置のメモリ回路に関するものである。
【背景技術】
【０００２】
従来のマイクロプロセッサやディジタルシグナルプロセッサ（ＤＳＰ）において、ＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）方式の演算処理装置のメモリ回路は図１３に示すようになっている。（例えば、特許文献１参照）
図１３において、１００は演算のステップ毎にインクリメントするプログラムカウンタ、１０１は演算器を動作させるための命令が格納された命令格納メモリ、１０２は複数の演算器に命令を分割処理するデコーダ、１０３は演算を行うための演算器である。
従来のＶＬＩＷ方式の演算処理装置のメモリ回路は、プログラムカウンタ１００の値を命令格納メモリ１０１のアドレスとして入力し、そのアドレスが指定するメモリ領域のデータを複数の演算器用命令として読み出すようになっている。その読み出された命令は、複数の演算器毎に分割デコードされて入力され、演算器１０３は各命令に応じた演算処理を行う。これら一連の処理は、プログラムカウンタ１００がカウントアップする毎に実行される。
図１４は、従来の演算処理装置のメモリ回路における、命令格納メモリのメモリ使用状況を示す図であり、命令コードはＯＰ１〜９の９種類を使用して示している。ここでは、３つの演算器を内蔵している演算処理装置のメモリ回路について示しており、命令格納メモリは各演算器に対応した３つのメモリが必要になる。演算器１に対応する命令は、命令コード１として命令格納メモリ１に格納され、演算器２に対応する命令は、命令コード２として命令格納メモリ２に格納され、演算器３に対応する命令は、命令コード３として命令格納メモリ３に格納されている。格納されたＯＰ１〜９の命令コードを利用して、プログラムカウンタが示す演算ステップ毎に演算処理を行うものである。
図１５は、図１４の命令格納メモリ内での命令コード使用状況について示している。命令格納メモリ内の命令コード使用状況として、ＯＰ３の使用頻度が高いことを示している。
【特許文献１】特開平５−２５７６８７（３０頁）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところが、従来技術のようなＶＬＩＷ方式の演算処理装置のメモリ回路を利用して演算処理を行う場合、ＮＯＰ（Ｎｏ  Ｏｐｅｒａｔｉｏｎ）のような命令を数多く含んだ実行コードを処理することがある。これは、並列に配置された演算器間のデータ受け渡しが必要な際に生じるものである。このように、ＮＯＰのような命令を数多く含む場合、実行コード数の増加と命令格納メモリの容量増加となり、回路規模の増大につながる。これは、発熱やＬＳＩのパッケージ小型化の点で問題となる。
【０００４】
本発明は上記課題を解決するためになされたものであり、演算器の実行コード数を削減し、命令格納メモリの容量を物理的に削減することができる演算処理装置のメモリ回路を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記問題を解決するため、請求項１に係る演算処理装置のメモリ回路の発明は、複数の入力データを保持するための入力メモリと、加減乗除、論理演算および数値比較などを行うための１つ以上の演算器と、前記演算器からの演算結果を保持する出力メモリと、前記演算器にて実行する処理を決定するための１つ以上の命令格納メモリと、前記演算器の実行サイクル毎にカウントアップするプログラムカウンタと、を備えた演算処理装置において、演算処理で多用されるある特定の命令コードを格納するレジスタと、前記レジスタ７に格納された特定命令が実行されるステップの情報を格納するための特定命令情報格納メモリと、前記特定命令情報格納メモリからの出力データをカウント禁止信号としてカウント動作を制御できるアドレス生成カウンタと、前記命令格納メモリからの出力命令と前記特定命令コードを格納したレジスタからの出力命令を切替える第１のセレクタ回路と、を備えたものである。
【０００６】
請求項２の発明は、請求項１記載の演算処理装置のメモリ回路において、前記レジスタおよび前記特定命令情報格納メモリが複数設置されており、前記複数の特定命令情報格納メモリから出力される特定命令有効信号を論理ＯＲすると共に、該論理ＯＲされた信号をカウント禁止信号として前記アドレス生成カウンタに出力するための論理ＯＲ回路と、前記特定命令コードを格納した複数のレジスタからの出力命令を選択して各演算器に出力する第２のセレクタ回路と、前記第２のセレクタ回路を制御するためのデコード回路と、を備えたものである。
【０００７】
請求項３記載の本発明は、請求項１記載の演算処理装置のメモリ回路においＴ、同一の命令コードを連続して前記特定命令情報格納メモリから出力することを示す情報が格納された連続命令情報格納メモリと、前記特定命令情報格納メモリから出力される特定命令有効信号と前記連続命令情報格納メモリから出力される連続命令有効信号とを論理ＯＲすると共に、該論理ＯＲされた信号をカウント禁止信号として前記アドレス生成カウンタに出力する論理ＯＲ回路と、を備えたものである。
【発明の効果】
【０００８】
請求項１記載の演算処理装置のメモリ回路によれば、特定命令情報格納メモリに、演算処理で多用されるある特定の命令であるか否かを示すビット情報を格納し、このビット情報をカウント禁止信号として利用することで、複数の演算器用に設置された命令格納メモリ用アドレス生成カウンタの動作を制御することができる。これと同時に、カウント禁止信号は、演算器へ命令を引き渡す直前に設置されたセレクタ回路に入力されており、カウント禁止信号が有効の場合は、特定命令コードを格納したレジスタ値を選択するようになっている。一方、無効の場合は、命令格納メモリからのデータを選択する。
すなわち、従来のように多用されるある特定の命令コードを命令格納メモリに格納する必要はなくなり、メモリ容量を削減する効果を持っている。これは、ＶＬＩＷ方式の演算処理装置の場合、効率よく並列演算できる実行コードの生成が難しいため、ＮＯＰ命令を多く含んだ実行コードとなっている。このため、命令格納メモリの物理的な容量削減の効果は非常に大きいことになる。
また、演算処理にて多用される命令コードがＮＯＰ以外の場合でも、請求項１記載の演算処理装置のメモリ回路を利用することで、前記同様の命令格納メモリの物理的な容量削減効果が得られる。
さらに、考え方を逆にして、命令格納メモリの容量を物理的に削減しない場合は、現状より多くの実行コードを命令格納メモリに格納することが可能となる。これにより、現状の演算処理より高度で複雑な演算処理を実行することが可能となる。
【０００９】
請求項２記載の演算処理装置のメモリ回路によれば、多用される命令コードを格納するためのレジスタを複数準備しているため、ＮＯＰ命令以外に一般的な演算処理に多用される命令コードについても格納することができる。前記複数のレジスタに格納された命令コードを、いつ使用するかを示すための特定命令情報格納メモリを設置している。また、セレクタ回路の制御を行うデコード回路を設置し、前記複数のレジスタに格納された命令コードをセレクタ回路にて切り替え、必要とされる演算器に出力することができる。
すなわち、請求項１の演算処理装置のメモリ回路による効果に追加して、多用される命令コードを格納するレジスタを複数設置しているため、従来のように全ての命令コードを命令格納メモリに格納する必要はなくなり、さらにメモリ容量を削減する効果を持っている。
【００１０】
請求項３記載の演算処理装置のメモリ回路によれば、連続命令情報格納メモリに、命令格納メモリに連続して同じ命令コードを格納しているか否かを示すビット情報を格納し、このビット情報をカウント禁止信号として利用することで、複数の演算器用に設置された命令格納メモリ用アドレス生成カウンタの動作を制御することができる。ここで、カウント禁止信号は、特定命令情報格納メモリからのビット情報との論理ＯＲにより生成するものとする。
すなわち、請求項１の演算処理装置のメモリ回路による効果に追加して、連続して同じ命令コードを命令格納メモリに格納する必要がなくなるため、さらにメモリ容量を削減する効果を持っている。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施例を図に基づいて説明する。
【実施例１】
【００１２】
図１は本発明の第１実施例を示す演算処理装置のメモリ回路のブロックである。
１は演算器、２は入力メモリ、３は出力メモリ、４は命令格納メモリ、５はアドレス生成カウンタ、６は特定命令情報格納メモリ、７はレジスタ、８はセレクタ回路、９はプログラムカウンタである。
本発明が従来技術と異なる点は以下のとおりである。
すなわち、演算処理で多用されるある特定の命令コードを格納するレジスタ７と、前記レジスタ７に格納された特定命令が実行されるステップの情報を格納するための特定命令情報格納メモリ６と、前記特定命令情報格納メモリ６からの出力データをカウント禁止信号としてカウント動作を制御できるアドレス生成カウンタ５と、命令格納メモリ４からの出力命令と前記特定命令コードを格納したレジスタ７からの出力命令を切替えるセレクタ回路８を備えた点である。
【００１３】
次に動作について説明する。
演算処理装置のメモリ回路は、システム動作の基準となるクロックＳ１と、演算開始信号Ｓ２がプログラムカウンタ９に入力され、演算開始信号が有効となるとプログラムカウンタはカウント動作を開始する。
プログラムカウンタからの出力データはＰＣとして、特定命令情報格納メモリ６のアドレスとして入力される。これにより、ＰＣにて指定された領域に格納されたビット情報が特定命令情報格納メモリから出力される。
特定命令情報格納メモリから出力されるビット情報１〜ｍは、カウント禁止信号１〜ｍとしてアドレス生成カウンタ５に入力される。このアドレス生成カウンタには、プログラムカウンタと同様に、クロックＳ１と、演算開始信号Ｓ２が入力され、演算開始信号が有効となるとアドレス生成カウンタ１〜ｍはカウント動作を開始する。
アドレス生成カウンタ１〜ｍから出力されるデータは、命令格納メモリ１〜ｍのアドレスとして入力され、そのメモリ出力が演算器１〜ｍの命令コード用として出力される。この命令コードと、特定命令コード用のレジスタ７に格納された命令コードはセレクタ回路８に入力され、前記カウント禁止信号１〜ｍにより、切り替えが行われる。
最終的にセレクタ回路の出力データが、命令コードとして演算器１〜ｍへ入力され、その命令に応じて入力メモリから入力されるデータを演算処理することになる。
【００１４】
上記演算器にて実行される演算命令の例として、以下のようなものがある。ここでは、入力されるデータをＡとＢとした場合について記述する。
・Ａ  ＋  Ｂ  （加算）
・Ａ  −  Ｂ  （減算）
・Ａ  ×  Ｂ  （乗算）
・Ａ  ÷  Ｂ  （除算）
・｜Ａ  ＋  Ｂ｜  （加算絶対値）
・Ａ  ＆  Ｂ  （論理ＡＮＤ）
・Ａ  ｜  Ｂ  （論理ＯＲ）
・Ａ  ＾  Ｂ  （論理ＥＸ−ＯＲ）
・Ａ  ＜  Ｂ、Ａ  ＞  Ｂ  （数値の大小比較）
・Ａ  ＝  Ｂ、Ａ  ！＝  Ｂ  （数値の一致、不一致）
・ＮＯＰ（Ｎｏ  Ｏｐｅｒａｔｉｏｎ）
などが各演算器にて実行できる。
本発明では、アプリケーションにより多用される演算命令を特定命令としている。
【００１５】
図２は、本発明の演算処理装置のメモリ回路における、特定命令情報格納メモリ６と命令格納メモリ４のメモリ使用状況を示す図である。図３は、命令格納メモリ内に特定命令コードを残した状態のメモリ使用状況を示す図である。また、ここでは説明を分かり易くするため、演算器を３つ内蔵した場合の演算処理装置のメモリ回路として説明する。さらに、演算器の命令コードには、ＯＰ１〜ＯＰ９の種類があり、各演算器ではこれら９種類の命令を利用して演算するものとして説明する。
図３から説明すると、ここでは図２で示した命令格納メモリ１〜３に命令コードが格納されており、使用頻度の高いＯＰ３を特定命令と設定し、本発明で設置した特定命令情報格納メモリにどのようにその情報が格納されるかを示したものである。特定命令情報格納メモリのｂｉｔ１は命令格納メモリ１に、ｂｉｔ２は命令格納メモリ２に、ｂｉｔ３は命令格納メモリ３にそれぞれ対応している。プログラムカウンタが示す演算ステップ毎に、ＯＰ３が利用される特定命令情報格納メモリの各ｂｉｔに“１”が入るようになっている。
本発明のメモリ回路にて実際に使用する場合、図２のような命令格納メモリの使用状況となる。図２では、使用頻度の高いＯＰ３の命令コードを、特定命令コード用レジスタ７に格納することで、命令格納メモリにその命令コードを格納する必要がなくなることを示している。
【００１６】
よって、図２に示すように、本来ならＯＰ３の命令コードが格納されるメモリ領域に、ＯＰ３の命令コードは存在しないことになり、使用するメモリが削減できることが分かる。
【００１７】
図４は、本発明の演算処理装置のメモリ回路における、タイミングチャートを示す図である。ここでは、図２に示す命令コードが特定命令情報格納メモリ６、および命令格納メモリ４に格納されているものとして説明している。尚、説明を分かり易くするため、特定命令情報格納メモリと命令格納メモリは、アドレスを入力するとデータを非同期で出力するメモリとしてタイミングチャートに示している。
図４のタイミングチャートについて、図１の回路におけるデータの流れと合わせて説明する。
まず、プログラムカウンタ９に、クロックＳ１と演算開始信号Ｓ２が入力される。プログラムカウンタは、演算開始信号が“１”になっている時、クロックの立ち上がりに同期してカウント動作を開始する。このプログラムカウンタからの出力データであるＰＣは、特定命令情報格納メモリのアドレスとして入力される。特定命令情報格納メモリからは、ＰＣにて指定された領域に格納されたビット情報が出力される。
特定命令情報格納メモリから出力されるビット情報１〜３は、カウント禁止信号１〜３としてアドレス生成カウンタ５に入力される。アドレス生成カウンタは、プログラムカウンタと同様に、クロックＳ１と、演算開始信号Ｓ２が入力され、演算開始信号が“１”になるとカウント動作を開始する。ここで、カウント禁止信号１が“１”のときは、アドレス生成カウンタ１のカウント動作は停止する。タイミングチャートで示すように、プログラムカウンタが“２”と“６”のとき、カウント禁止信号１は“１”になっているので、この期間ではアドレス生成カウンタ１は、“２”と“５”のカウント値を保持した状態となる。アドレス生成カウンタ２についても同様に、プログラムカウンタが“１”と“２”のとき、カウント禁止信号２は“１”になっているので、この期間ではアドレス生成カウンタ２は、“１”のカウント値を連続して保持した状態となる。アドレス生成カウンタ３については、プログラムカウンタが“３”と“７”と“９”のとき、カウント禁止信号３は“１”になっているので、この期間ではアドレス生成カウンタ３は、“３”と“６”と“７”のカウント値を保持した状態となる。
各アドレス生成カウンタから出力されるデータは、命令格納メモリ１〜３のアドレスとして入力され、そのメモリ出力が演算器１〜３の命令コードとして出力される。タイミングチャートにおいて、命令格納メモリ１〜３から出力される命令コードは、図２に示すプログラムカウンタ値と命令コード１〜３に対応していることが分かる。また、この時点では、特定命令コードとして設定したＯＰ３が存在していないことが確認できる。
命令格納メモリ１〜３から出力される命令コードは、直接演算器に入力されるのではなく、セレクタ回路を介して入力される。セレクタ回路では、特定命令コード用のレジスタ７に設定された、ＯＰ３の命令コードを出力し、カウント禁止信号が“０”のとき、命令格納メモリ１〜３からの出力値を選択し、カウント禁止信号が“１”のとき、特定命令コード用のレジスタの出力値を選択する。
最終的にセレクタ回路１の出力データは、カウント禁止信号１が“１”のとき、特定命令コードとして設定したＯＰ３が命令コードとして選択される。これは、セレクタ回路２、セレクタ回路３についても同様であり、カウント禁止信号２、カウント禁止信号３が“１”のとき、特定命令コードとして設定したＯＰ３が命令コードとして選択される。これらセレクタ回路１〜３から出力される命令コードは、図３に示す命令コードの並びと一致していることが分かる。演算器１〜３では、セレクタ回路１〜３から出力される命令コードにより、入力メモリから入力されるデータを演算処理することになる。
【００１８】
よって、従来の命令格納メモリは、図３に示すようにプログラムカウンタ値が９までの命令コードを格納するメモリ領域が必要であったものを、本発明の演算処理装置のメモリ回路を利用した命令格納メモリでは、図２に示すようにプログラムカウンタ値が７以下のメモリ容量となる。
【００１９】
したがって、本発明の第１実施例に係る演算処理装置は、演算処理で多用される命令を事前にレジスタ７へ格納しておき、本来実行コードが格納されるべきメモリには、多用される命令を格納しないようにすると共に、さらに、多用される命令が使われるプログラムカウンタの位置を、特定命令情報格納メモリ６に格納し、その情報を使って事前にレジスタ７へ格納した命令を演算器へ入力するためのセレクタ回路８を設置するようにしたので、演算器の実行コード数を削減し、命令格納メモリの物理的なメモリ容量の削減を実現することができる。その結果、発熱やＬＳＩのパッケージ小型化の問題を解消することができる。
【実施例２】
【００２０】
図５は本発明の第２実施例を示す演算処理装置のメモリ回路のブロック図である。なお、第２実施例の構成要素が第１実施例と同じものついてはその説明を省略し、異なる点について説明する。
図において、１０は論理ＯＲ回路、１１はセレクタ回路、１２はデコード回路である。
第２実施例が第１実施例と異なる点は以下のとおりである。
すなわち、演算処理で多用される特定の命令コードを格納するレジスタ７が複数設置されており、レジスタに格納された特定命令が実行されるステップの情報を格納するための特定命令情報格納メモリ６も同様に複数設置されており、複数の特定命令情報格納メモリから出力される特定命令有効信号Ｓ１０〜Ｓ１２を論理ＯＲすると共に、該論理ＯＲされた信号をカウント禁止信号としてアドレス生成カウンタ１に出力するための論理ＯＲ回路１０と、特定命令コードを格納した複数のレジスタ７からの出力命令を選択して各演算器に出力するセレクタ回路１１と、セレクタ回路１１を制御するためのデコード回路１２を備えたものとなっている。
【００２１】
次に動作について説明する。
第１実施例と同様に、演算処理装置のメモリ回路は、システム動作の基準となるクロックＳ１と、演算開始信号Ｓ２がプログラムカウンタ９に入力され、演算開始信号が有効となるとプログラムカウンタはカウント動作を開始する。
プログラムカウンタからの出力データはＰＣとして、複数（１〜Ｐ個）の特定命令情報格納メモリ６のアドレスとして入力される。これにより、ＰＣにて指定された領域に格納されたビット情報が各特定命令情報格納メモリ６から出力される。
特定命令情報格納メモリ６から出力されるビット情報１〜ｍは、設置された特定命令情報格納メモリの個数分（１〜Ｐ個）出力される。ここで、特定命令情報格納メモリ１のビット情報ｍの信号Ｓ１０と、特定命令情報格納メモリ２のビット情報ｍの信号Ｓ１１と、特定命令情報格納メモリＰのビット情報ｍの信号Ｓ１２とは、論理ＯＲ回路１０によりカウント禁止信号ｍとしてアドレス生成カウンタ５に入力される。このカウント禁止信号は、ビット情報１〜ｍ−１についても同様に生成されるものとする。このアドレス生成カウンタには、プログラムカウンタと同様に、クロックＳ１と、演算開始信号Ｓ２が入力され、演算開始信号が有効となるとアドレス生成カウンタ１〜ｍはカウント動作を開始する。
複数の特定命令コード用のレジスタ７に格納された命令コードはセレクタ回路１１に入力される。このセレクタ回路１１は、特定命令情報格納メモリ１〜Ｐに格納されたビット情報１〜ｍのデータによりデコード回路１２により制御される。
アドレス生成カウンタ１〜ｍから出力されるデータは、命令格納メモリ１〜ｍのアドレスとして入力され、そのメモリ出力が演算器１〜ｍの命令コード用として出力される。この命令コードと、複数の特定命令コード用のレジスタ７に格納された命令コードはセレクタ回路８に入力され、前記カウント禁止信号１〜ｍにより、切り替えが行われる。
最終的にセレクタ回路の出力データが、命令コードとして演算器１〜ｍへ入力され、その命令に応じて入力メモリから入力されるデータを演算処理することになる。
【００２２】
図６は、第２実施例の演算処理装置のメモリ回路における、複数の特定命令情報格納メモリ６と命令格納メモリ４のメモリ使用状況を示す図である。図７は、命令格納メモリ内に、複数の特定命令コードを残した状態のメモリ使用状況を示す図である。また、ここでは説明を分かり易くするため、特定命令情報格納メモリと特定命令コードを格納するレジスタ、演算器を各３個使用した場合の演算処理装置のメモリ回路として説明する。さらに、演算器の命令コードには、ＯＰ１〜ＯＰ９の種類があり、各演算器ではこれら９種類の命令を利用して演算するものとする。
図７から説明すると、ここでは図１４で示した命令格納メモリ１〜３に命令コードが格納されており、使用頻度の高いＯＰ３、ＯＰ４、ＯＰ５を特定命令と設定し、本発明で設置した特定命令情報格納メモリにどのようにその情報が格納されるかを示したものである。特定命令情報格納メモリのｂｉｔ１は命令格納メモリ１に、ｂｉｔ２は命令格納メモリ２に、ｂｉｔ３は命令格納メモリ３にそれぞれ対応している。プログラムカウンタが示す演算ステップ毎に、ＯＰ３、ＯＰ４、ＯＰ５が利用される特定命令情報格納メモリの各ｂｉｔに“１”が入るようになっている。
本発明のメモリ回路にて実際に使用する場合、図６のような命令格納メモリの使用状況となる。図６では、使用頻度の高いＯＰ３、ＯＰ４、ＯＰ５の各命令コードを、３個の特定命令コード用レジスタ７に格納することで、命令格納メモリにその命令コードを格納する必要がなくなることを示している。
【００２３】
よって、図６に示すように、本来ならＯＰ３、ＯＰ４、ＯＰ５の命令コードが格納されるメモリ領域に、各命令コードは存在しないことになり、使用するメモリが削減できることが分かる。
【００２４】
図８は、第２実施例の演算処理装置のメモリ回路における、タイミングチャートを示す図である。ここでは、図６に示す命令コードが複数の特定命令情報格納メモリ６、および命令格納メモリ４に格納されているものとして説明している。なお、説明を分かり易くするため、特定命令情報格納メモリと命令格納メモリは、アドレスを入力するとデータを非同期で出力するメモリとしてタイミングチャートに示している。
図８のタイミングチャートについて、図５の回路におけるデータの流れと合わせて説明する。
まず、プログラムカウンタ９に、クロックＳ１と演算開始信号Ｓ２が入力される。プログラムカウンタは、演算開始信号が“１”になっている時、クロックの立ち上がりに同期してカウント動作を開始する。このプログラムカウンタからの出力データであるＰＣは、特定命令情報格納メモリのアドレスとして入力される。特定命令情報格納メモリからは、ＰＣにて指定された領域に格納されたビット情報が出力される。
特定命令情報格納メモリ１〜３から出力される各ビット情報１は、論理ＯＲされてカウント禁止信号１としてアドレス生成カウンタ１に入力される。これと同様に、各ビット情報２、３においても、論理ＯＲされてカウント禁止信号２、３としてアドレス生成カウンタ２、３に入力される。各アドレス生成カウンタは、プログラムカウンタと同様に、クロックＳ１と、演算開始信号Ｓ２が入力され、演算開始信号が“１”になるとカウント動作を開始する。ここで、カウント禁止信号１が“１”のときは、アドレス生成カウンタ１のカウント動作は停止する。タイミングチャートで示すように、プログラムカウンタが“１”〜“３”と“６”と“９”のとき、カウント禁止信号１は“１”になっているので、この期間のアドレス生成カウンタ１は、“１”と“３”と“５”のカウント値を保持した状態となる。アドレス生成カウンタ２についても同様に、プログラムカウンタが“０”〜“３”のとき、カウント禁止信号２は“１”になっているので、この期間のアドレス生成カウンタ２は、“０”のカウント値を連続して保持した状態となる。アドレス生成カウンタ３については、プログラムカウンタが“０”〜“３”と“７”と“９”のとき、カウント禁止信号３は“１”になっているので、この期間のアドレス生成カウンタ３は、“０”と“３”と“４”のカウント値を保持した状態となる。
各アドレス生成カウンタから出力されるデータは、命令格納メモリ１〜３のアドレスとして入力され、そのメモリ出力が演算器１〜３の命令コードとして出力される。タイミングチャートにおいて、命令格納メモリ１〜３から出力される命令コードは、図６に示すプログラムカウンタ値と命令コード１〜３に対応していることが分かる。また、この時点では、特定命令コードとして設定したＯＰ３、ＯＰ４、ＯＰ５が存在していないことが確認できる。
命令格納メモリ１〜３から出力される命令コードは、直接演算器に入力されるのではなく、セレクタ回路８を介して入力される。特定命令コード用のレジスタ７に設定された、ＯＰ３、ＯＰ４、ＯＰ５の命令コードは、セレクタ回路１１を介して前記セレクタ回路８へ出力される。セレクタ回路１１を制御するために、デコード回路１２が設置されており、このデコード回路では特定命令コード用のレジスタに対応した、特定命令情報格納メモリ６のビット情報により制御される。セレクタ回路８では、カウント禁止信号が“０”のとき、命令格納メモリ１〜３からの出力値を選択し、カウント禁止信号が“１”のとき、特定命令コード用のレジスタの出力値を選択する。
最終的にセレクタ回路１の出力データは、カウント禁止信号１が“１”のとき、特定命令コードとして設定したＯＰ３、ＯＰ４、ＯＰ５が命令コードとして選択される。これは、セレクタ回路２、セレクタ回路３についても同様であり、カウント禁止信号２、カウント禁止信号３が“１”のとき、特定命令コードとして設定したＯＰ３、ＯＰ４、ＯＰ５が命令コードとして選択される。これらセレクタ回路１〜３から出力される命令コードは、図７に示す命令コードの並びと一致していることが分かる。演算器１〜３では、セレクタ回路１〜３から出力される命令コードにより、入力メモリから入力されるデータを演算処理することになる。
【００２５】
したがって、本発明の第２実施例に係る演算処理装置は、レジスタ７および特定命令情報格納メモリ６を複数設置し、複数の特定命令情報格納メモリ６から出力される特定命令有効信号Ｓ１０〜Ｓ１２を論理ＯＲすると共に、該論理ＯＲされた信号をカウント禁止信号としてアドレス生成カウンタ１に出力するための論理ＯＲ回路１０と、特定命令コードを格納した複数のレジスタ７からの出力命令を選択して各演算器に出力するセレクタ回路１１と、セレクタ回路１１を制御するためのデコード回路１２と、を備えたので、従来の命令格納メモリが、図７に示すようにプログラムカウンタ値が９までの命令コードを格納するメモリ領域が必要であったものを、本発明の第２実施例による演算処理装置のメモリ回路を利用した命令格納メモリでは、図６に示すようにプログラムカウンタ値を５以下のメモリ容量にすることができる。すなわち、第２実施例は命令格納メモリの物理的なメモリ容量の削減を実現することができる。
【実施例３】
【００２６】
図９は本発明の第３実施例を示す演算処理装置のメモリ回路のブロック図である。なお、第３実施例の構成要素が第１実施例と同じものついてはその説明を省略し、異なる点について説明する。
図において、２０は論理ＯＲ回路、２１は連続命令情報格納メモリである。
第３実施例が第１実施例と異なる点は以下のとおりである。
すなわち、同一の命令コードを連続して前記特定命令情報格納メモリ６から出力することを示す情報が格納された連続命令情報格納メモリ２１と、前記特定命令情報格納メモリ６から出力される特定命令有効信号Ｓ２０〜Ｓ２２と前記連続命令情報格納メモリ２１から出力される連続命令有効信号Ｓ２３〜Ｓ２５とを論理ＯＲすると共に、該論理ＯＲされた信号をカウント禁止信号として前記アドレス生成カウンタ１に出力する論理ＯＲ回路２０とを備えた点である。
【００２７】
次に動作について説明する。
第１実施例と同様に、演算処理装置のメモリ回路は、システム動作の基準となるクロックＳ１と、演算開始信号Ｓ２がプログラムカウンタ９に入力され、演算開始信号が有効となるとプログラムカウンタはカウント動作を開始する。
プログラムカウンタからの出力データはＰＣとして、特定命令情報格納メモリ６と連続命令情報格納メモリ２１のアドレスとして入力される。これにより、ＰＣにて指定された領域に格納されたビット情報が特定命令情報格納メモリと連続命令情報格納メモリから出力される。
特定命令情報格納メモリから出力されるビット情報１〜ｍと、連続命令情報格納メモリから出力されるビット情報１〜ｍとは、各ビット毎に論理ＯＲ回路２０に入力される。論理ＯＲ回路２０では、カウント禁止信号１〜ｍとしてアドレス生成カウンタ５に入力される。このアドレス生成カウンタには、プログラムカウンタと同様に、クロックＳ１と、演算開始信号Ｓ２が入力され、演算開始信号が有効となるとアドレス生成カウンタ１〜ｍはカウント動作を開始する。
アドレス生成カウンタ１〜ｍから出力されるデータは、命令格納メモリ１〜ｍのアドレスとして入力され、そのメモリ出力が演算器１〜ｍの命令コード用として出力される。この命令コードと、特定命令コード用のレジスタ７に格納された命令コードはセレクタ回路８に入力され、特定命令情報格納メモリから出力されるビット情報１〜ｍＳ２０、Ｓ２１、Ｓ２２により、切り替えが行われる。
最終的にセレクタ回路の出力データが、命令コードとして演算器１〜ｍへ入力され、その命令に応じて入力メモリから入力されるデータを演算処理することになる。
【００２８】
図１０は、第３実施例の演算処理装置のメモリ回路における、特定命令情報格納メモリ６と連続命令情報格納メモリ２１と命令格納メモリ４のメモリ使用状況を示す図である。図１１は、命令格納メモリ内に、特定命令コードと連続命令コードを残した状態のメモリ使用状況を示す図である。また、ここでは説明を分かり易くするため、演算器を各３個使用した場合の演算処理装置のメモリ回路として説明する。さらに、演算器の命令コードには、ＯＰ１〜ＯＰ９の種類があり、各演算器ではこれら９種類の命令を利用して演算するものとする。
図１１から説明すると、ここでは図１４で示した命令格納メモリ１〜３に命令コードが格納されており、使用頻度の高いＯＰ３を特定命令と設定し、本発明で設置した特定命令情報格納メモリにどのようにその情報が格納されるかを示したものである。特定命令情報格納メモリのｂｉｔ１は命令格納メモリ１に、ｂｉｔ２は命令格納メモリ２に、ｂｉｔ３は命令格納メモリ３にそれぞれ対応している。プログラムカウンタが示す演算ステップ毎に、ＯＰ３が利用される特定命令情報格納メモリの各ｂｉｔに“１”が入るようになっている。また、命令格納メモリにおいてＯＰ３を取り除いた際、命令コードが連続して配置される、ＯＰ５、ＯＰ４、ＯＰ１について、連続命令情報格納メモリにどのように配置されているか示している。連続命令情報格納メモリのｂｉｔ１は命令格納メモリ１に、ｂｉｔ２は命令格納メモリ２に、ｂｉｔ３は命令格納メモリ３にそれぞれ対応している。プログラムカウンタが示す演算ステップ毎に、命令格納メモリに同一の命令コードが連続している際、先頭部分の連続命令情報格納メモリの各ｂｉｔに“１”が入るようになっている。
本発明のメモリ回路にて実際に使用する場合、図１０のような命令格納メモリの使用状況となる。図１０では、使用頻度の高いＯＰ３の命令コードを、特定命令コード用レジスタ７に格納することで、命令格納メモリにその命令コードを格納する必要がなくなることを示している。これとともに、命令格納メモリに連続して配置された同一の命令コードを格納する必要がなくなることも示している。
【００２９】
よって、図１０に示すように、本来ならＯＰ３の命令コードが格納されるメモリ領域と、連続で配置されるＯＰ５、ＯＰ４、ＯＰ１の各命令コードは存在しないことになり、使用するメモリが削減できることが分かる。
【００３０】
図１２は、第３実施例の演算処理装置のメモリ回路における、タイミングチャートを示す図である。ここでは、図１０に示す命令コードが特定命令情報格納メモリ６、および命令格納メモリ４に格納されているものとして説明している。尚、説明を分かり易くするため、特定命令情報格納メモリと命令格納メモリは、アドレスを入力するとデータを非同期で出力するメモリとしてタイミングチャートに示している。
図１２のタイミングチャートについて、図９の回路におけるデータの流れと合わせて説明する。
まず、プログラムカウンタ９に、クロックＳ１と演算開始信号Ｓ２が入力される。プログラムカウンタは、演算開始信号が“１”になっている時、クロックの立ち上がりに同期してカウント動作を開始する。このプログラムカウンタからの出力データであるＰＣは、特定命令情報格納メモリのアドレスとして入力される。特定命令情報格納メモリからは、ＰＣにて指定された領域に格納されたビット情報が出力される。
特定命令情報格納メモリから出力されるビット情報と、連続命令情報格納メモリから出力されるビット情報は、論理ＯＲされてカウント禁止信号１〜３としてアドレス生成カウンタ１〜３に入力される。各アドレス生成カウンタは、プログラムカウンタと同様に、クロックＳ１と、演算開始信号Ｓ２が入力され、演算開始信号が“１”になるとカウント動作を開始する。ここで、カウント禁止信号１が“１”のときは、アドレス生成カウンタ１のカウント動作は停止する。タイミングチャートで示すように、プログラムカウンタが“１”と“２”と“６”のとき、カウント禁止信号１は“１”になっているので、この期間のアドレス生成カウンタ１は、“１”と“４”のカウント値を保持した状態となる。アドレス生成カウンタ２についても同様に、プログラムカウンタが“０”〜２”と“６”のとき、カウント禁止信号２は“１”になっているので、この期間のアドレス生成カウンタ２は、“０”と“３”のカウント値を連続して保持した状態となる。アドレス生成カウンタ３については、プログラムカウンタが“１”と“３”と“７”と“９”のとき、カウント禁止信号３は“１”になっているので、この期間のアドレス生成カウンタ３は、“１”と“２”と“５”と“６”のカウント値を保持した状態となる。
各アドレス生成カウンタから出力されるデータは、命令格納メモリ１〜３のアドレスとして入力され、そのメモリ出力が演算器１〜３の命令コードとして出力される。タイミングチャートにおいて、命令格納メモリ１〜３から出力される命令コードは、図１０に示すプログラムカウンタ値と命令コード１〜３に対応していることが分かる。また、この時点では、特定命令コードとして設定したＯＰ３が存在していないことが確認できる。さらに、ＯＰ３を取り除いた際に、命令格納メモリ１に連続して配置されたＯＰ５と、命令格納メモリ２に連続して配置されたＯＰ４、ＯＰ１と、命令格納メモリ３に連続して配置されたＯＰ４も先頭の命令コードのみ存在していることが確認できる。
命令格納メモリ１〜３から出力される命令コードは、直接演算器に入力されるのではなく、セレクタ回路８を介して入力される。セレクタ回路８では、カウント禁止信号が“０”のとき、命令格納メモリ１〜３からの出力値を選択し、カウント禁止信号が“１”のとき、特定命令コード用のレジスタの出力値を選択する。
最終的にセレクタ回路１の出力データは、カウント禁止信号１が“１”のとき、特定命令コードとして設定したＯＰ３が命令コードとして選択される。これは、セレクタ回路２、セレクタ回路３についても同様であり、カウント禁止信号２、カウント禁止信号３が“１”のとき、特定命令コードとして設定したＯＰ３が命令コードとして選択される。これらセレクタ回路１〜３から出力される命令コードは、図１１に示す命令コードの並びと一致していることが分かる。演算器１〜３では、セレクタ回路１〜３から出力される命令コードにより、入力メモリから入力されるデータを演算処理することになる。
【００３１】
したがって、本発明の第３実施例に係る演算処理装置は、同一の命令コードを連続して前記特定命令情報格納メモリ６から出力することを示す情報が格納された連続命令情報格納メモリ２１と、前記特定命令情報格納メモリ６から出力される特定命令有効信号Ｓ２０〜Ｓ２２と前記連続命令情報格納メモリ２１から出力される連続命令有効信号Ｓ２３〜Ｓ２５とを論理ＯＲすると共に、該論理ＯＲされた信号をカウント禁止信号として前記アドレス生成カウンタ１に出力する論理ＯＲ回路２０とを備えたので、従来の命令格納メモリが、図１１に示すようにプログラムカウンタ値が９までの命令コードを格納するメモリ領域が必要であったものを、本発明の第３実施例による演算処理装置のメモリ回路を利用した命令格納メモリでは、図１０に示すようにプログラムカウンタ値を６以下のメモリ容量にすることができる。すなわち、本発明は命令格納メモリの物理的なメモリ容量の削減を実現することができる。
【産業上の利用可能性】
【００３２】
ＶＬＩＷ方式の演算処理装置において、より少ない命令格納メモリで並列演算を実行することができるため、ＦＡ用途の制御装置や信号処理装置の命令格納メモリの容量削減手法として利用することができる。
また、命令格納メモリの容量を物理的に削減しない場合は、現状より多くの実行コードを命令格納メモリに格納することが可能となるため、ＦＡ用途の制御装置や信号処理装置の演算処理において、より高度で複雑な演算処理を実行するために利用することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の第１実施例を示す演算処理装置のメモリ回路のブロック図
【図２】本発明の第１実施例の特定命令情報格納メモリと命令格納メモリのメモリ使用状況を示す図
【図３】本発明の第１実施例を説明するための命令格納メモリ内に、特定命令コードを残した状態のメモリ使用状況を示す図
【図４】本発明の第１実施例を説明するためのタイミングチャートを示す図
【図５】本発明の第２実施例を示す演算処理装置のメモリ回路のブロック図
【図６】本発明の第２実施例の特定命令情報格納メモリと命令格納メモリのメモリ使用状況を示す図
【図７】本発明の第２実施例を説明するための命令格納メモリ内に、特定命令コードを残した状態のメモリ使用状況を示す図
【図８】本発明の第２実施例を説明するタイミングチャートを示す図
【図９】本発明の第３実施例を示す演算処理装置のメモリ回路のブロック図
【図１０】本発明の第３実施例の特定命令情報格納メモリと連続命令情報格納メモリと命令格納メモリのメモリ使用状況を示す図
【図１１】本発明の第３実施例を説明するための命令格納メモリ内に、特定命令コードと連続する命令コードを残した状態のメモリ使用状況を示す図
【図１２】本発明の第３実施例を説明するタイミングチャートを示す図
【図１３】従来例を示す演算処理装置のブロック図
【図１４】従来例の演算処理装置のメモリ回路における、命令格納メモリのメモリ使用状況を示す図
【図１５】図１４に示す命令格納メモリ内での命令コード使用状況について示す図
【符号の説明】
【００３４】
１：演算器
２：入力メモリ
３：出力メモリ
４：命令格納メモリ
５：アドレス生成カウンタ
６：特定命令情報格納メモリ
７：レジスタ
８：セレクタ回路
９：プログラムカウンタ
１０：論理ＯＲ回路
１１：セレクタ回路
１２：デコード回路
２０：論理ＯＲ回路
２１：連続命令情報格納メモリ
Ｓ１：クロック
Ｓ２：演算開始信号
Ｓ１０〜１２、Ｓ２０〜２２：特定命令有効信号
Ｓ２３〜２５：連続命令有効信号
【図１】
2006072961.tif 000003
【図２】
2006072961.tif 000004
【図３】
2006072961.tif 000005
【図４】
2006072961.tif 000006
【図５】
2006072961.tif 000007
【図６】
2006072961.tif 000008
【図７】
2006072961.tif 000009
【図８】
2006072961.tif 000010
【図９】
2006072961.tif 000011
【図１０】
2006072961.tif 000012
【図１１】
2006072961.tif 000013
【図１２】
2006072961.tif 000014
【図１３】
2006072961.tif 000015
【図１４】
2006072961.tif 000016
【図１５】
2006072961.tif 000017