JP2006072961A - 演算処理装置のメモリ回路 - Google Patents
演算処理装置のメモリ回路 Download PDFInfo
- Publication number
- JP2006072961A JP2006072961A JP2005064818A JP2005064818A JP2006072961A JP 2006072961 A JP2006072961 A JP 2006072961A JP 2005064818 A JP2005064818 A JP 2005064818A JP 2005064818 A JP2005064818 A JP 2005064818A JP 2006072961 A JP2006072961 A JP 2006072961A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- memory
- storage memory
- output
- information storage
- 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.)
- Pending
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
【課題】 演算器の実行コード数を削減し、命令格納メモリの容量を物理的に削減することができる演算処理装置のメモリ回路を提供する。
【解決手段】 複数の入力データを保持する入力メモリ2と、加減乗除、論理演算および数値比較などを行うための1つ以上の演算器1と、演算器1からの演算結果を保持する出力メモリ3と、演算器1にて実行する処理を決定するための1つ以上の命令格納メモリ4と、演算器1の実行サイクル毎にカウントアップするプログラムカウンタ9とを備えた演算処理装置において、演算処理で多用されるある特定の命令コードを格納するレジスタ7と、レジスタ7に格納された特定命令が実行されるステップの情報を格納するための特定命令情報格納メモリ6と、特定命令情報格納メモリ6からの出力データをカウント禁止信号としてカウント動作を制御できるアドレス生成カウンタ5と、命令格納メモリ4からの出力命令と特定命令コードを格納したレジスタ7からの出力命令を切替えるセレクタ回路8を備えた。
【選択図】 図1
【解決手段】 複数の入力データを保持する入力メモリ2と、加減乗除、論理演算および数値比較などを行うための1つ以上の演算器1と、演算器1からの演算結果を保持する出力メモリ3と、演算器1にて実行する処理を決定するための1つ以上の命令格納メモリ4と、演算器1の実行サイクル毎にカウントアップするプログラムカウンタ9とを備えた演算処理装置において、演算処理で多用されるある特定の命令コードを格納するレジスタ7と、レジスタ7に格納された特定命令が実行されるステップの情報を格納するための特定命令情報格納メモリ6と、特定命令情報格納メモリ6からの出力データをカウント禁止信号としてカウント動作を制御できるアドレス生成カウンタ5と、命令格納メモリ4からの出力命令と特定命令コードを格納したレジスタ7からの出力命令を切替えるセレクタ回路8を備えた。
【選択図】 図1
Description
本発明は、マイクロプロセッサやディジタルシグナルプロセッサ(DSP)の演算処理装置のメモリ回路に関するものである。
従来のマイクロプロセッサやディジタルシグナルプロセッサ(DSP)において、VLIW(Very Long Instruction Word)方式の演算処理装置のメモリ回路は図13に示すようになっている。(例えば、特許文献1参照)
図13において、100は演算のステップ毎にインクリメントするプログラムカウンタ、101は演算器を動作させるための命令が格納された命令格納メモリ、102は複数の演算器に命令を分割処理するデコーダ、103は演算を行うための演算器である。
従来のVLIW方式の演算処理装置のメモリ回路は、プログラムカウンタ100の値を命令格納メモリ101のアドレスとして入力し、そのアドレスが指定するメモリ領域のデータを複数の演算器用命令として読み出すようになっている。その読み出された命令は、複数の演算器毎に分割デコードされて入力され、演算器103は各命令に応じた演算処理を行う。これら一連の処理は、プログラムカウンタ100がカウントアップする毎に実行される。
図14は、従来の演算処理装置のメモリ回路における、命令格納メモリのメモリ使用状況を示す図であり、命令コードはOP1〜9の9種類を使用して示している。ここでは、3つの演算器を内蔵している演算処理装置のメモリ回路について示しており、命令格納メモリは各演算器に対応した3つのメモリが必要になる。演算器1に対応する命令は、命令コード1として命令格納メモリ1に格納され、演算器2に対応する命令は、命令コード2として命令格納メモリ2に格納され、演算器3に対応する命令は、命令コード3として命令格納メモリ3に格納されている。格納されたOP1〜9の命令コードを利用して、プログラムカウンタが示す演算ステップ毎に演算処理を行うものである。
図15は、図14の命令格納メモリ内での命令コード使用状況について示している。命令格納メモリ内の命令コード使用状況として、OP3の使用頻度が高いことを示している。
特開平5−257687(30頁)
図13において、100は演算のステップ毎にインクリメントするプログラムカウンタ、101は演算器を動作させるための命令が格納された命令格納メモリ、102は複数の演算器に命令を分割処理するデコーダ、103は演算を行うための演算器である。
従来のVLIW方式の演算処理装置のメモリ回路は、プログラムカウンタ100の値を命令格納メモリ101のアドレスとして入力し、そのアドレスが指定するメモリ領域のデータを複数の演算器用命令として読み出すようになっている。その読み出された命令は、複数の演算器毎に分割デコードされて入力され、演算器103は各命令に応じた演算処理を行う。これら一連の処理は、プログラムカウンタ100がカウントアップする毎に実行される。
図14は、従来の演算処理装置のメモリ回路における、命令格納メモリのメモリ使用状況を示す図であり、命令コードはOP1〜9の9種類を使用して示している。ここでは、3つの演算器を内蔵している演算処理装置のメモリ回路について示しており、命令格納メモリは各演算器に対応した3つのメモリが必要になる。演算器1に対応する命令は、命令コード1として命令格納メモリ1に格納され、演算器2に対応する命令は、命令コード2として命令格納メモリ2に格納され、演算器3に対応する命令は、命令コード3として命令格納メモリ3に格納されている。格納されたOP1〜9の命令コードを利用して、プログラムカウンタが示す演算ステップ毎に演算処理を行うものである。
図15は、図14の命令格納メモリ内での命令コード使用状況について示している。命令格納メモリ内の命令コード使用状況として、OP3の使用頻度が高いことを示している。
ところが、従来技術のようなVLIW方式の演算処理装置のメモリ回路を利用して演算処理を行う場合、NOP(No Operation)のような命令を数多く含んだ実行コードを処理することがある。これは、並列に配置された演算器間のデータ受け渡しが必要な際に生じるものである。このように、NOPのような命令を数多く含む場合、実行コード数の増加と命令格納メモリの容量増加となり、回路規模の増大につながる。これは、発熱やLSIのパッケージ小型化の点で問題となる。
本発明は上記課題を解決するためになされたものであり、演算器の実行コード数を削減し、命令格納メモリの容量を物理的に削減することができる演算処理装置のメモリ回路を提供することを目的とする。
上記問題を解決するため、請求項1に係る演算処理装置のメモリ回路の発明は、複数の入力データを保持するための入力メモリと、加減乗除、論理演算および数値比較などを行うための1つ以上の演算器と、前記演算器からの演算結果を保持する出力メモリと、前記演算器にて実行する処理を決定するための1つ以上の命令格納メモリと、前記演算器の実行サイクル毎にカウントアップするプログラムカウンタと、を備えた演算処理装置において、演算処理で多用されるある特定の命令コードを格納するレジスタと、前記レジスタ7に格納された特定命令が実行されるステップの情報を格納するための特定命令情報格納メモリと、前記特定命令情報格納メモリからの出力データをカウント禁止信号としてカウント動作を制御できるアドレス生成カウンタと、前記命令格納メモリからの出力命令と前記特定命令コードを格納したレジスタからの出力命令を切替える第1のセレクタ回路と、を備えたものである。
請求項2の発明は、請求項1記載の演算処理装置のメモリ回路において、前記レジスタおよび前記特定命令情報格納メモリが複数設置されており、前記複数の特定命令情報格納メモリから出力される特定命令有効信号を論理ORすると共に、該論理ORされた信号をカウント禁止信号として前記アドレス生成カウンタに出力するための論理OR回路と、前記特定命令コードを格納した複数のレジスタからの出力命令を選択して各演算器に出力する第2のセレクタ回路と、前記第2のセレクタ回路を制御するためのデコード回路と、を備えたものである。
請求項3記載の本発明は、請求項1記載の演算処理装置のメモリ回路においT、同一の命令コードを連続して前記特定命令情報格納メモリから出力することを示す情報が格納された連続命令情報格納メモリと、前記特定命令情報格納メモリから出力される特定命令有効信号と前記連続命令情報格納メモリから出力される連続命令有効信号とを論理ORすると共に、該論理ORされた信号をカウント禁止信号として前記アドレス生成カウンタに出力する論理OR回路と、を備えたものである。
請求項1記載の演算処理装置のメモリ回路によれば、特定命令情報格納メモリに、演算処理で多用されるある特定の命令であるか否かを示すビット情報を格納し、このビット情報をカウント禁止信号として利用することで、複数の演算器用に設置された命令格納メモリ用アドレス生成カウンタの動作を制御することができる。これと同時に、カウント禁止信号は、演算器へ命令を引き渡す直前に設置されたセレクタ回路に入力されており、カウント禁止信号が有効の場合は、特定命令コードを格納したレジスタ値を選択するようになっている。一方、無効の場合は、命令格納メモリからのデータを選択する。
すなわち、従来のように多用されるある特定の命令コードを命令格納メモリに格納する必要はなくなり、メモリ容量を削減する効果を持っている。これは、VLIW方式の演算処理装置の場合、効率よく並列演算できる実行コードの生成が難しいため、NOP命令を多く含んだ実行コードとなっている。このため、命令格納メモリの物理的な容量削減の効果は非常に大きいことになる。
また、演算処理にて多用される命令コードがNOP以外の場合でも、請求項1記載の演算処理装置のメモリ回路を利用することで、前記同様の命令格納メモリの物理的な容量削減効果が得られる。
さらに、考え方を逆にして、命令格納メモリの容量を物理的に削減しない場合は、現状より多くの実行コードを命令格納メモリに格納することが可能となる。これにより、現状の演算処理より高度で複雑な演算処理を実行することが可能となる。
すなわち、従来のように多用されるある特定の命令コードを命令格納メモリに格納する必要はなくなり、メモリ容量を削減する効果を持っている。これは、VLIW方式の演算処理装置の場合、効率よく並列演算できる実行コードの生成が難しいため、NOP命令を多く含んだ実行コードとなっている。このため、命令格納メモリの物理的な容量削減の効果は非常に大きいことになる。
また、演算処理にて多用される命令コードがNOP以外の場合でも、請求項1記載の演算処理装置のメモリ回路を利用することで、前記同様の命令格納メモリの物理的な容量削減効果が得られる。
さらに、考え方を逆にして、命令格納メモリの容量を物理的に削減しない場合は、現状より多くの実行コードを命令格納メモリに格納することが可能となる。これにより、現状の演算処理より高度で複雑な演算処理を実行することが可能となる。
請求項2記載の演算処理装置のメモリ回路によれば、多用される命令コードを格納するためのレジスタを複数準備しているため、NOP命令以外に一般的な演算処理に多用される命令コードについても格納することができる。前記複数のレジスタに格納された命令コードを、いつ使用するかを示すための特定命令情報格納メモリを設置している。また、セレクタ回路の制御を行うデコード回路を設置し、前記複数のレジスタに格納された命令コードをセレクタ回路にて切り替え、必要とされる演算器に出力することができる。
すなわち、請求項1の演算処理装置のメモリ回路による効果に追加して、多用される命令コードを格納するレジスタを複数設置しているため、従来のように全ての命令コードを命令格納メモリに格納する必要はなくなり、さらにメモリ容量を削減する効果を持っている。
すなわち、請求項1の演算処理装置のメモリ回路による効果に追加して、多用される命令コードを格納するレジスタを複数設置しているため、従来のように全ての命令コードを命令格納メモリに格納する必要はなくなり、さらにメモリ容量を削減する効果を持っている。
請求項3記載の演算処理装置のメモリ回路によれば、連続命令情報格納メモリに、命令格納メモリに連続して同じ命令コードを格納しているか否かを示すビット情報を格納し、このビット情報をカウント禁止信号として利用することで、複数の演算器用に設置された命令格納メモリ用アドレス生成カウンタの動作を制御することができる。ここで、カウント禁止信号は、特定命令情報格納メモリからのビット情報との論理ORにより生成するものとする。
すなわち、請求項1の演算処理装置のメモリ回路による効果に追加して、連続して同じ命令コードを命令格納メモリに格納する必要がなくなるため、さらにメモリ容量を削減する効果を持っている。
すなわち、請求項1の演算処理装置のメモリ回路による効果に追加して、連続して同じ命令コードを命令格納メモリに格納する必要がなくなるため、さらにメモリ容量を削減する効果を持っている。
以下、本発明の実施例を図に基づいて説明する。
図1は本発明の第1実施例を示す演算処理装置のメモリ回路のブロックである。
1は演算器、2は入力メモリ、3は出力メモリ、4は命令格納メモリ、5はアドレス生成カウンタ、6は特定命令情報格納メモリ、7はレジスタ、8はセレクタ回路、9はプログラムカウンタである。
本発明が従来技術と異なる点は以下のとおりである。
すなわち、演算処理で多用されるある特定の命令コードを格納するレジスタ7と、前記レジスタ7に格納された特定命令が実行されるステップの情報を格納するための特定命令情報格納メモリ6と、前記特定命令情報格納メモリ6からの出力データをカウント禁止信号としてカウント動作を制御できるアドレス生成カウンタ5と、命令格納メモリ4からの出力命令と前記特定命令コードを格納したレジスタ7からの出力命令を切替えるセレクタ回路8を備えた点である。
1は演算器、2は入力メモリ、3は出力メモリ、4は命令格納メモリ、5はアドレス生成カウンタ、6は特定命令情報格納メモリ、7はレジスタ、8はセレクタ回路、9はプログラムカウンタである。
本発明が従来技術と異なる点は以下のとおりである。
すなわち、演算処理で多用されるある特定の命令コードを格納するレジスタ7と、前記レジスタ7に格納された特定命令が実行されるステップの情報を格納するための特定命令情報格納メモリ6と、前記特定命令情報格納メモリ6からの出力データをカウント禁止信号としてカウント動作を制御できるアドレス生成カウンタ5と、命令格納メモリ4からの出力命令と前記特定命令コードを格納したレジスタ7からの出力命令を切替えるセレクタ回路8を備えた点である。
次に動作について説明する。
演算処理装置のメモリ回路は、システム動作の基準となるクロックS1と、演算開始信号S2がプログラムカウンタ9に入力され、演算開始信号が有効となるとプログラムカウンタはカウント動作を開始する。
プログラムカウンタからの出力データはPCとして、特定命令情報格納メモリ6のアドレスとして入力される。これにより、PCにて指定された領域に格納されたビット情報が特定命令情報格納メモリから出力される。
特定命令情報格納メモリから出力されるビット情報1〜mは、カウント禁止信号1〜mとしてアドレス生成カウンタ5に入力される。このアドレス生成カウンタには、プログラムカウンタと同様に、クロックS1と、演算開始信号S2が入力され、演算開始信号が有効となるとアドレス生成カウンタ1〜mはカウント動作を開始する。
アドレス生成カウンタ1〜mから出力されるデータは、命令格納メモリ1〜mのアドレスとして入力され、そのメモリ出力が演算器1〜mの命令コード用として出力される。この命令コードと、特定命令コード用のレジスタ7に格納された命令コードはセレクタ回路8に入力され、前記カウント禁止信号1〜mにより、切り替えが行われる。
最終的にセレクタ回路の出力データが、命令コードとして演算器1〜mへ入力され、その命令に応じて入力メモリから入力されるデータを演算処理することになる。
演算処理装置のメモリ回路は、システム動作の基準となるクロックS1と、演算開始信号S2がプログラムカウンタ9に入力され、演算開始信号が有効となるとプログラムカウンタはカウント動作を開始する。
プログラムカウンタからの出力データはPCとして、特定命令情報格納メモリ6のアドレスとして入力される。これにより、PCにて指定された領域に格納されたビット情報が特定命令情報格納メモリから出力される。
特定命令情報格納メモリから出力されるビット情報1〜mは、カウント禁止信号1〜mとしてアドレス生成カウンタ5に入力される。このアドレス生成カウンタには、プログラムカウンタと同様に、クロックS1と、演算開始信号S2が入力され、演算開始信号が有効となるとアドレス生成カウンタ1〜mはカウント動作を開始する。
アドレス生成カウンタ1〜mから出力されるデータは、命令格納メモリ1〜mのアドレスとして入力され、そのメモリ出力が演算器1〜mの命令コード用として出力される。この命令コードと、特定命令コード用のレジスタ7に格納された命令コードはセレクタ回路8に入力され、前記カウント禁止信号1〜mにより、切り替えが行われる。
最終的にセレクタ回路の出力データが、命令コードとして演算器1〜mへ入力され、その命令に応じて入力メモリから入力されるデータを演算処理することになる。
上記演算器にて実行される演算命令の例として、以下のようなものがある。ここでは、入力されるデータをAとBとした場合について記述する。
・A + B (加算)
・A − B (減算)
・A × B (乗算)
・A ÷ B (除算)
・|A + B| (加算絶対値)
・A & B (論理AND)
・A | B (論理OR)
・A ^ B (論理EX−OR)
・A < B、A > B (数値の大小比較)
・A = B、A != B (数値の一致、不一致)
・NOP(No Operation)
などが各演算器にて実行できる。
本発明では、アプリケーションにより多用される演算命令を特定命令としている。
・A + B (加算)
・A − B (減算)
・A × B (乗算)
・A ÷ B (除算)
・|A + B| (加算絶対値)
・A & B (論理AND)
・A | B (論理OR)
・A ^ B (論理EX−OR)
・A < B、A > B (数値の大小比較)
・A = B、A != B (数値の一致、不一致)
・NOP(No Operation)
などが各演算器にて実行できる。
本発明では、アプリケーションにより多用される演算命令を特定命令としている。
図2は、本発明の演算処理装置のメモリ回路における、特定命令情報格納メモリ6と命令格納メモリ4のメモリ使用状況を示す図である。図3は、命令格納メモリ内に特定命令コードを残した状態のメモリ使用状況を示す図である。また、ここでは説明を分かり易くするため、演算器を3つ内蔵した場合の演算処理装置のメモリ回路として説明する。さらに、演算器の命令コードには、OP1〜OP9の種類があり、各演算器ではこれら9種類の命令を利用して演算するものとして説明する。
図3から説明すると、ここでは図2で示した命令格納メモリ1〜3に命令コードが格納されており、使用頻度の高いOP3を特定命令と設定し、本発明で設置した特定命令情報格納メモリにどのようにその情報が格納されるかを示したものである。特定命令情報格納メモリのbit1は命令格納メモリ1に、bit2は命令格納メモリ2に、bit3は命令格納メモリ3にそれぞれ対応している。プログラムカウンタが示す演算ステップ毎に、OP3が利用される特定命令情報格納メモリの各bitに“1”が入るようになっている。
本発明のメモリ回路にて実際に使用する場合、図2のような命令格納メモリの使用状況となる。図2では、使用頻度の高いOP3の命令コードを、特定命令コード用レジスタ7に格納することで、命令格納メモリにその命令コードを格納する必要がなくなることを示している。
図3から説明すると、ここでは図2で示した命令格納メモリ1〜3に命令コードが格納されており、使用頻度の高いOP3を特定命令と設定し、本発明で設置した特定命令情報格納メモリにどのようにその情報が格納されるかを示したものである。特定命令情報格納メモリのbit1は命令格納メモリ1に、bit2は命令格納メモリ2に、bit3は命令格納メモリ3にそれぞれ対応している。プログラムカウンタが示す演算ステップ毎に、OP3が利用される特定命令情報格納メモリの各bitに“1”が入るようになっている。
本発明のメモリ回路にて実際に使用する場合、図2のような命令格納メモリの使用状況となる。図2では、使用頻度の高いOP3の命令コードを、特定命令コード用レジスタ7に格納することで、命令格納メモリにその命令コードを格納する必要がなくなることを示している。
よって、図2に示すように、本来ならOP3の命令コードが格納されるメモリ領域に、OP3の命令コードは存在しないことになり、使用するメモリが削減できることが分かる。
図4は、本発明の演算処理装置のメモリ回路における、タイミングチャートを示す図である。ここでは、図2に示す命令コードが特定命令情報格納メモリ6、および命令格納メモリ4に格納されているものとして説明している。尚、説明を分かり易くするため、特定命令情報格納メモリと命令格納メモリは、アドレスを入力するとデータを非同期で出力するメモリとしてタイミングチャートに示している。
図4のタイミングチャートについて、図1の回路におけるデータの流れと合わせて説明する。
まず、プログラムカウンタ9に、クロックS1と演算開始信号S2が入力される。プログラムカウンタは、演算開始信号が“1”になっている時、クロックの立ち上がりに同期してカウント動作を開始する。このプログラムカウンタからの出力データであるPCは、特定命令情報格納メモリのアドレスとして入力される。特定命令情報格納メモリからは、PCにて指定された領域に格納されたビット情報が出力される。
特定命令情報格納メモリから出力されるビット情報1〜3は、カウント禁止信号1〜3としてアドレス生成カウンタ5に入力される。アドレス生成カウンタは、プログラムカウンタと同様に、クロックS1と、演算開始信号S2が入力され、演算開始信号が“1”になるとカウント動作を開始する。ここで、カウント禁止信号1が“1”のときは、アドレス生成カウンタ1のカウント動作は停止する。タイミングチャートで示すように、プログラムカウンタが“2”と“6”のとき、カウント禁止信号1は“1”になっているので、この期間ではアドレス生成カウンタ1は、“2”と“5”のカウント値を保持した状態となる。アドレス生成カウンタ2についても同様に、プログラムカウンタが“1”と“2”のとき、カウント禁止信号2は“1”になっているので、この期間ではアドレス生成カウンタ2は、“1”のカウント値を連続して保持した状態となる。アドレス生成カウンタ3については、プログラムカウンタが“3”と“7”と“9”のとき、カウント禁止信号3は“1”になっているので、この期間ではアドレス生成カウンタ3は、“3”と“6”と“7”のカウント値を保持した状態となる。
各アドレス生成カウンタから出力されるデータは、命令格納メモリ1〜3のアドレスとして入力され、そのメモリ出力が演算器1〜3の命令コードとして出力される。タイミングチャートにおいて、命令格納メモリ1〜3から出力される命令コードは、図2に示すプログラムカウンタ値と命令コード1〜3に対応していることが分かる。また、この時点では、特定命令コードとして設定したOP3が存在していないことが確認できる。
命令格納メモリ1〜3から出力される命令コードは、直接演算器に入力されるのではなく、セレクタ回路を介して入力される。セレクタ回路では、特定命令コード用のレジスタ7に設定された、OP3の命令コードを出力し、カウント禁止信号が“0”のとき、命令格納メモリ1〜3からの出力値を選択し、カウント禁止信号が“1”のとき、特定命令コード用のレジスタの出力値を選択する。
最終的にセレクタ回路1の出力データは、カウント禁止信号1が“1”のとき、特定命令コードとして設定したOP3が命令コードとして選択される。これは、セレクタ回路2、セレクタ回路3についても同様であり、カウント禁止信号2、カウント禁止信号3が“1”のとき、特定命令コードとして設定したOP3が命令コードとして選択される。これらセレクタ回路1〜3から出力される命令コードは、図3に示す命令コードの並びと一致していることが分かる。演算器1〜3では、セレクタ回路1〜3から出力される命令コードにより、入力メモリから入力されるデータを演算処理することになる。
図4のタイミングチャートについて、図1の回路におけるデータの流れと合わせて説明する。
まず、プログラムカウンタ9に、クロックS1と演算開始信号S2が入力される。プログラムカウンタは、演算開始信号が“1”になっている時、クロックの立ち上がりに同期してカウント動作を開始する。このプログラムカウンタからの出力データであるPCは、特定命令情報格納メモリのアドレスとして入力される。特定命令情報格納メモリからは、PCにて指定された領域に格納されたビット情報が出力される。
特定命令情報格納メモリから出力されるビット情報1〜3は、カウント禁止信号1〜3としてアドレス生成カウンタ5に入力される。アドレス生成カウンタは、プログラムカウンタと同様に、クロックS1と、演算開始信号S2が入力され、演算開始信号が“1”になるとカウント動作を開始する。ここで、カウント禁止信号1が“1”のときは、アドレス生成カウンタ1のカウント動作は停止する。タイミングチャートで示すように、プログラムカウンタが“2”と“6”のとき、カウント禁止信号1は“1”になっているので、この期間ではアドレス生成カウンタ1は、“2”と“5”のカウント値を保持した状態となる。アドレス生成カウンタ2についても同様に、プログラムカウンタが“1”と“2”のとき、カウント禁止信号2は“1”になっているので、この期間ではアドレス生成カウンタ2は、“1”のカウント値を連続して保持した状態となる。アドレス生成カウンタ3については、プログラムカウンタが“3”と“7”と“9”のとき、カウント禁止信号3は“1”になっているので、この期間ではアドレス生成カウンタ3は、“3”と“6”と“7”のカウント値を保持した状態となる。
各アドレス生成カウンタから出力されるデータは、命令格納メモリ1〜3のアドレスとして入力され、そのメモリ出力が演算器1〜3の命令コードとして出力される。タイミングチャートにおいて、命令格納メモリ1〜3から出力される命令コードは、図2に示すプログラムカウンタ値と命令コード1〜3に対応していることが分かる。また、この時点では、特定命令コードとして設定したOP3が存在していないことが確認できる。
命令格納メモリ1〜3から出力される命令コードは、直接演算器に入力されるのではなく、セレクタ回路を介して入力される。セレクタ回路では、特定命令コード用のレジスタ7に設定された、OP3の命令コードを出力し、カウント禁止信号が“0”のとき、命令格納メモリ1〜3からの出力値を選択し、カウント禁止信号が“1”のとき、特定命令コード用のレジスタの出力値を選択する。
最終的にセレクタ回路1の出力データは、カウント禁止信号1が“1”のとき、特定命令コードとして設定したOP3が命令コードとして選択される。これは、セレクタ回路2、セレクタ回路3についても同様であり、カウント禁止信号2、カウント禁止信号3が“1”のとき、特定命令コードとして設定したOP3が命令コードとして選択される。これらセレクタ回路1〜3から出力される命令コードは、図3に示す命令コードの並びと一致していることが分かる。演算器1〜3では、セレクタ回路1〜3から出力される命令コードにより、入力メモリから入力されるデータを演算処理することになる。
よって、従来の命令格納メモリは、図3に示すようにプログラムカウンタ値が9までの命令コードを格納するメモリ領域が必要であったものを、本発明の演算処理装置のメモリ回路を利用した命令格納メモリでは、図2に示すようにプログラムカウンタ値が7以下のメモリ容量となる。
したがって、本発明の第1実施例に係る演算処理装置は、演算処理で多用される命令を事前にレジスタ7へ格納しておき、本来実行コードが格納されるべきメモリには、多用される命令を格納しないようにすると共に、さらに、多用される命令が使われるプログラムカウンタの位置を、特定命令情報格納メモリ6に格納し、その情報を使って事前にレジスタ7へ格納した命令を演算器へ入力するためのセレクタ回路8を設置するようにしたので、演算器の実行コード数を削減し、命令格納メモリの物理的なメモリ容量の削減を実現することができる。その結果、発熱やLSIのパッケージ小型化の問題を解消することができる。
図5は本発明の第2実施例を示す演算処理装置のメモリ回路のブロック図である。なお、第2実施例の構成要素が第1実施例と同じものついてはその説明を省略し、異なる点について説明する。
図において、10は論理OR回路、11はセレクタ回路、12はデコード回路である。
第2実施例が第1実施例と異なる点は以下のとおりである。
すなわち、演算処理で多用される特定の命令コードを格納するレジスタ7が複数設置されており、レジスタに格納された特定命令が実行されるステップの情報を格納するための特定命令情報格納メモリ6も同様に複数設置されており、複数の特定命令情報格納メモリから出力される特定命令有効信号S10〜S12を論理ORすると共に、該論理ORされた信号をカウント禁止信号としてアドレス生成カウンタ1に出力するための論理OR回路10と、特定命令コードを格納した複数のレジスタ7からの出力命令を選択して各演算器に出力するセレクタ回路11と、セレクタ回路11を制御するためのデコード回路12を備えたものとなっている。
図において、10は論理OR回路、11はセレクタ回路、12はデコード回路である。
第2実施例が第1実施例と異なる点は以下のとおりである。
すなわち、演算処理で多用される特定の命令コードを格納するレジスタ7が複数設置されており、レジスタに格納された特定命令が実行されるステップの情報を格納するための特定命令情報格納メモリ6も同様に複数設置されており、複数の特定命令情報格納メモリから出力される特定命令有効信号S10〜S12を論理ORすると共に、該論理ORされた信号をカウント禁止信号としてアドレス生成カウンタ1に出力するための論理OR回路10と、特定命令コードを格納した複数のレジスタ7からの出力命令を選択して各演算器に出力するセレクタ回路11と、セレクタ回路11を制御するためのデコード回路12を備えたものとなっている。
次に動作について説明する。
第1実施例と同様に、演算処理装置のメモリ回路は、システム動作の基準となるクロックS1と、演算開始信号S2がプログラムカウンタ9に入力され、演算開始信号が有効となるとプログラムカウンタはカウント動作を開始する。
プログラムカウンタからの出力データはPCとして、複数(1〜P個)の特定命令情報格納メモリ6のアドレスとして入力される。これにより、PCにて指定された領域に格納されたビット情報が各特定命令情報格納メモリ6から出力される。
特定命令情報格納メモリ6から出力されるビット情報1〜mは、設置された特定命令情報格納メモリの個数分(1〜P個)出力される。ここで、特定命令情報格納メモリ1のビット情報mの信号S10と、特定命令情報格納メモリ2のビット情報mの信号S11と、特定命令情報格納メモリPのビット情報mの信号S12とは、論理OR回路10によりカウント禁止信号mとしてアドレス生成カウンタ5に入力される。このカウント禁止信号は、ビット情報1〜m−1についても同様に生成されるものとする。このアドレス生成カウンタには、プログラムカウンタと同様に、クロックS1と、演算開始信号S2が入力され、演算開始信号が有効となるとアドレス生成カウンタ1〜mはカウント動作を開始する。
複数の特定命令コード用のレジスタ7に格納された命令コードはセレクタ回路11に入力される。このセレクタ回路11は、特定命令情報格納メモリ1〜Pに格納されたビット情報1〜mのデータによりデコード回路12により制御される。
アドレス生成カウンタ1〜mから出力されるデータは、命令格納メモリ1〜mのアドレスとして入力され、そのメモリ出力が演算器1〜mの命令コード用として出力される。この命令コードと、複数の特定命令コード用のレジスタ7に格納された命令コードはセレクタ回路8に入力され、前記カウント禁止信号1〜mにより、切り替えが行われる。
最終的にセレクタ回路の出力データが、命令コードとして演算器1〜mへ入力され、その命令に応じて入力メモリから入力されるデータを演算処理することになる。
第1実施例と同様に、演算処理装置のメモリ回路は、システム動作の基準となるクロックS1と、演算開始信号S2がプログラムカウンタ9に入力され、演算開始信号が有効となるとプログラムカウンタはカウント動作を開始する。
プログラムカウンタからの出力データはPCとして、複数(1〜P個)の特定命令情報格納メモリ6のアドレスとして入力される。これにより、PCにて指定された領域に格納されたビット情報が各特定命令情報格納メモリ6から出力される。
特定命令情報格納メモリ6から出力されるビット情報1〜mは、設置された特定命令情報格納メモリの個数分(1〜P個)出力される。ここで、特定命令情報格納メモリ1のビット情報mの信号S10と、特定命令情報格納メモリ2のビット情報mの信号S11と、特定命令情報格納メモリPのビット情報mの信号S12とは、論理OR回路10によりカウント禁止信号mとしてアドレス生成カウンタ5に入力される。このカウント禁止信号は、ビット情報1〜m−1についても同様に生成されるものとする。このアドレス生成カウンタには、プログラムカウンタと同様に、クロックS1と、演算開始信号S2が入力され、演算開始信号が有効となるとアドレス生成カウンタ1〜mはカウント動作を開始する。
複数の特定命令コード用のレジスタ7に格納された命令コードはセレクタ回路11に入力される。このセレクタ回路11は、特定命令情報格納メモリ1〜Pに格納されたビット情報1〜mのデータによりデコード回路12により制御される。
アドレス生成カウンタ1〜mから出力されるデータは、命令格納メモリ1〜mのアドレスとして入力され、そのメモリ出力が演算器1〜mの命令コード用として出力される。この命令コードと、複数の特定命令コード用のレジスタ7に格納された命令コードはセレクタ回路8に入力され、前記カウント禁止信号1〜mにより、切り替えが行われる。
最終的にセレクタ回路の出力データが、命令コードとして演算器1〜mへ入力され、その命令に応じて入力メモリから入力されるデータを演算処理することになる。
図6は、第2実施例の演算処理装置のメモリ回路における、複数の特定命令情報格納メモリ6と命令格納メモリ4のメモリ使用状況を示す図である。図7は、命令格納メモリ内に、複数の特定命令コードを残した状態のメモリ使用状況を示す図である。また、ここでは説明を分かり易くするため、特定命令情報格納メモリと特定命令コードを格納するレジスタ、演算器を各3個使用した場合の演算処理装置のメモリ回路として説明する。さらに、演算器の命令コードには、OP1〜OP9の種類があり、各演算器ではこれら9種類の命令を利用して演算するものとする。
図7から説明すると、ここでは図14で示した命令格納メモリ1〜3に命令コードが格納されており、使用頻度の高いOP3、OP4、OP5を特定命令と設定し、本発明で設置した特定命令情報格納メモリにどのようにその情報が格納されるかを示したものである。特定命令情報格納メモリのbit1は命令格納メモリ1に、bit2は命令格納メモリ2に、bit3は命令格納メモリ3にそれぞれ対応している。プログラムカウンタが示す演算ステップ毎に、OP3、OP4、OP5が利用される特定命令情報格納メモリの各bitに“1”が入るようになっている。
本発明のメモリ回路にて実際に使用する場合、図6のような命令格納メモリの使用状況となる。図6では、使用頻度の高いOP3、OP4、OP5の各命令コードを、3個の特定命令コード用レジスタ7に格納することで、命令格納メモリにその命令コードを格納する必要がなくなることを示している。
図7から説明すると、ここでは図14で示した命令格納メモリ1〜3に命令コードが格納されており、使用頻度の高いOP3、OP4、OP5を特定命令と設定し、本発明で設置した特定命令情報格納メモリにどのようにその情報が格納されるかを示したものである。特定命令情報格納メモリのbit1は命令格納メモリ1に、bit2は命令格納メモリ2に、bit3は命令格納メモリ3にそれぞれ対応している。プログラムカウンタが示す演算ステップ毎に、OP3、OP4、OP5が利用される特定命令情報格納メモリの各bitに“1”が入るようになっている。
本発明のメモリ回路にて実際に使用する場合、図6のような命令格納メモリの使用状況となる。図6では、使用頻度の高いOP3、OP4、OP5の各命令コードを、3個の特定命令コード用レジスタ7に格納することで、命令格納メモリにその命令コードを格納する必要がなくなることを示している。
よって、図6に示すように、本来ならOP3、OP4、OP5の命令コードが格納されるメモリ領域に、各命令コードは存在しないことになり、使用するメモリが削減できることが分かる。
図8は、第2実施例の演算処理装置のメモリ回路における、タイミングチャートを示す図である。ここでは、図6に示す命令コードが複数の特定命令情報格納メモリ6、および命令格納メモリ4に格納されているものとして説明している。なお、説明を分かり易くするため、特定命令情報格納メモリと命令格納メモリは、アドレスを入力するとデータを非同期で出力するメモリとしてタイミングチャートに示している。
図8のタイミングチャートについて、図5の回路におけるデータの流れと合わせて説明する。
まず、プログラムカウンタ9に、クロックS1と演算開始信号S2が入力される。プログラムカウンタは、演算開始信号が“1”になっている時、クロックの立ち上がりに同期してカウント動作を開始する。このプログラムカウンタからの出力データであるPCは、特定命令情報格納メモリのアドレスとして入力される。特定命令情報格納メモリからは、PCにて指定された領域に格納されたビット情報が出力される。
特定命令情報格納メモリ1〜3から出力される各ビット情報1は、論理ORされてカウント禁止信号1としてアドレス生成カウンタ1に入力される。これと同様に、各ビット情報2、3においても、論理ORされてカウント禁止信号2、3としてアドレス生成カウンタ2、3に入力される。各アドレス生成カウンタは、プログラムカウンタと同様に、クロックS1と、演算開始信号S2が入力され、演算開始信号が“1”になるとカウント動作を開始する。ここで、カウント禁止信号1が“1”のときは、アドレス生成カウンタ1のカウント動作は停止する。タイミングチャートで示すように、プログラムカウンタが“1”〜“3”と“6”と“9”のとき、カウント禁止信号1は“1”になっているので、この期間のアドレス生成カウンタ1は、“1”と“3”と“5”のカウント値を保持した状態となる。アドレス生成カウンタ2についても同様に、プログラムカウンタが“0”〜“3”のとき、カウント禁止信号2は“1”になっているので、この期間のアドレス生成カウンタ2は、“0”のカウント値を連続して保持した状態となる。アドレス生成カウンタ3については、プログラムカウンタが“0”〜“3”と“7”と“9”のとき、カウント禁止信号3は“1”になっているので、この期間のアドレス生成カウンタ3は、“0”と“3”と“4”のカウント値を保持した状態となる。
各アドレス生成カウンタから出力されるデータは、命令格納メモリ1〜3のアドレスとして入力され、そのメモリ出力が演算器1〜3の命令コードとして出力される。タイミングチャートにおいて、命令格納メモリ1〜3から出力される命令コードは、図6に示すプログラムカウンタ値と命令コード1〜3に対応していることが分かる。また、この時点では、特定命令コードとして設定したOP3、OP4、OP5が存在していないことが確認できる。
命令格納メモリ1〜3から出力される命令コードは、直接演算器に入力されるのではなく、セレクタ回路8を介して入力される。特定命令コード用のレジスタ7に設定された、OP3、OP4、OP5の命令コードは、セレクタ回路11を介して前記セレクタ回路8へ出力される。セレクタ回路11を制御するために、デコード回路12が設置されており、このデコード回路では特定命令コード用のレジスタに対応した、特定命令情報格納メモリ6のビット情報により制御される。セレクタ回路8では、カウント禁止信号が“0”のとき、命令格納メモリ1〜3からの出力値を選択し、カウント禁止信号が“1”のとき、特定命令コード用のレジスタの出力値を選択する。
最終的にセレクタ回路1の出力データは、カウント禁止信号1が“1”のとき、特定命令コードとして設定したOP3、OP4、OP5が命令コードとして選択される。これは、セレクタ回路2、セレクタ回路3についても同様であり、カウント禁止信号2、カウント禁止信号3が“1”のとき、特定命令コードとして設定したOP3、OP4、OP5が命令コードとして選択される。これらセレクタ回路1〜3から出力される命令コードは、図7に示す命令コードの並びと一致していることが分かる。演算器1〜3では、セレクタ回路1〜3から出力される命令コードにより、入力メモリから入力されるデータを演算処理することになる。
図8のタイミングチャートについて、図5の回路におけるデータの流れと合わせて説明する。
まず、プログラムカウンタ9に、クロックS1と演算開始信号S2が入力される。プログラムカウンタは、演算開始信号が“1”になっている時、クロックの立ち上がりに同期してカウント動作を開始する。このプログラムカウンタからの出力データであるPCは、特定命令情報格納メモリのアドレスとして入力される。特定命令情報格納メモリからは、PCにて指定された領域に格納されたビット情報が出力される。
特定命令情報格納メモリ1〜3から出力される各ビット情報1は、論理ORされてカウント禁止信号1としてアドレス生成カウンタ1に入力される。これと同様に、各ビット情報2、3においても、論理ORされてカウント禁止信号2、3としてアドレス生成カウンタ2、3に入力される。各アドレス生成カウンタは、プログラムカウンタと同様に、クロックS1と、演算開始信号S2が入力され、演算開始信号が“1”になるとカウント動作を開始する。ここで、カウント禁止信号1が“1”のときは、アドレス生成カウンタ1のカウント動作は停止する。タイミングチャートで示すように、プログラムカウンタが“1”〜“3”と“6”と“9”のとき、カウント禁止信号1は“1”になっているので、この期間のアドレス生成カウンタ1は、“1”と“3”と“5”のカウント値を保持した状態となる。アドレス生成カウンタ2についても同様に、プログラムカウンタが“0”〜“3”のとき、カウント禁止信号2は“1”になっているので、この期間のアドレス生成カウンタ2は、“0”のカウント値を連続して保持した状態となる。アドレス生成カウンタ3については、プログラムカウンタが“0”〜“3”と“7”と“9”のとき、カウント禁止信号3は“1”になっているので、この期間のアドレス生成カウンタ3は、“0”と“3”と“4”のカウント値を保持した状態となる。
各アドレス生成カウンタから出力されるデータは、命令格納メモリ1〜3のアドレスとして入力され、そのメモリ出力が演算器1〜3の命令コードとして出力される。タイミングチャートにおいて、命令格納メモリ1〜3から出力される命令コードは、図6に示すプログラムカウンタ値と命令コード1〜3に対応していることが分かる。また、この時点では、特定命令コードとして設定したOP3、OP4、OP5が存在していないことが確認できる。
命令格納メモリ1〜3から出力される命令コードは、直接演算器に入力されるのではなく、セレクタ回路8を介して入力される。特定命令コード用のレジスタ7に設定された、OP3、OP4、OP5の命令コードは、セレクタ回路11を介して前記セレクタ回路8へ出力される。セレクタ回路11を制御するために、デコード回路12が設置されており、このデコード回路では特定命令コード用のレジスタに対応した、特定命令情報格納メモリ6のビット情報により制御される。セレクタ回路8では、カウント禁止信号が“0”のとき、命令格納メモリ1〜3からの出力値を選択し、カウント禁止信号が“1”のとき、特定命令コード用のレジスタの出力値を選択する。
最終的にセレクタ回路1の出力データは、カウント禁止信号1が“1”のとき、特定命令コードとして設定したOP3、OP4、OP5が命令コードとして選択される。これは、セレクタ回路2、セレクタ回路3についても同様であり、カウント禁止信号2、カウント禁止信号3が“1”のとき、特定命令コードとして設定したOP3、OP4、OP5が命令コードとして選択される。これらセレクタ回路1〜3から出力される命令コードは、図7に示す命令コードの並びと一致していることが分かる。演算器1〜3では、セレクタ回路1〜3から出力される命令コードにより、入力メモリから入力されるデータを演算処理することになる。
したがって、本発明の第2実施例に係る演算処理装置は、レジスタ7および特定命令情報格納メモリ6を複数設置し、複数の特定命令情報格納メモリ6から出力される特定命令有効信号S10〜S12を論理ORすると共に、該論理ORされた信号をカウント禁止信号としてアドレス生成カウンタ1に出力するための論理OR回路10と、特定命令コードを格納した複数のレジスタ7からの出力命令を選択して各演算器に出力するセレクタ回路11と、セレクタ回路11を制御するためのデコード回路12と、を備えたので、従来の命令格納メモリが、図7に示すようにプログラムカウンタ値が9までの命令コードを格納するメモリ領域が必要であったものを、本発明の第2実施例による演算処理装置のメモリ回路を利用した命令格納メモリでは、図6に示すようにプログラムカウンタ値を5以下のメモリ容量にすることができる。すなわち、第2実施例は命令格納メモリの物理的なメモリ容量の削減を実現することができる。
図9は本発明の第3実施例を示す演算処理装置のメモリ回路のブロック図である。なお、第3実施例の構成要素が第1実施例と同じものついてはその説明を省略し、異なる点について説明する。
図において、20は論理OR回路、21は連続命令情報格納メモリである。
第3実施例が第1実施例と異なる点は以下のとおりである。
すなわち、同一の命令コードを連続して前記特定命令情報格納メモリ6から出力することを示す情報が格納された連続命令情報格納メモリ21と、前記特定命令情報格納メモリ6から出力される特定命令有効信号S20〜S22と前記連続命令情報格納メモリ21から出力される連続命令有効信号S23〜S25とを論理ORすると共に、該論理ORされた信号をカウント禁止信号として前記アドレス生成カウンタ1に出力する論理OR回路20とを備えた点である。
図において、20は論理OR回路、21は連続命令情報格納メモリである。
第3実施例が第1実施例と異なる点は以下のとおりである。
すなわち、同一の命令コードを連続して前記特定命令情報格納メモリ6から出力することを示す情報が格納された連続命令情報格納メモリ21と、前記特定命令情報格納メモリ6から出力される特定命令有効信号S20〜S22と前記連続命令情報格納メモリ21から出力される連続命令有効信号S23〜S25とを論理ORすると共に、該論理ORされた信号をカウント禁止信号として前記アドレス生成カウンタ1に出力する論理OR回路20とを備えた点である。
次に動作について説明する。
第1実施例と同様に、演算処理装置のメモリ回路は、システム動作の基準となるクロックS1と、演算開始信号S2がプログラムカウンタ9に入力され、演算開始信号が有効となるとプログラムカウンタはカウント動作を開始する。
プログラムカウンタからの出力データはPCとして、特定命令情報格納メモリ6と連続命令情報格納メモリ21のアドレスとして入力される。これにより、PCにて指定された領域に格納されたビット情報が特定命令情報格納メモリと連続命令情報格納メモリから出力される。
特定命令情報格納メモリから出力されるビット情報1〜mと、連続命令情報格納メモリから出力されるビット情報1〜mとは、各ビット毎に論理OR回路20に入力される。論理OR回路20では、カウント禁止信号1〜mとしてアドレス生成カウンタ5に入力される。このアドレス生成カウンタには、プログラムカウンタと同様に、クロックS1と、演算開始信号S2が入力され、演算開始信号が有効となるとアドレス生成カウンタ1〜mはカウント動作を開始する。
アドレス生成カウンタ1〜mから出力されるデータは、命令格納メモリ1〜mのアドレスとして入力され、そのメモリ出力が演算器1〜mの命令コード用として出力される。この命令コードと、特定命令コード用のレジスタ7に格納された命令コードはセレクタ回路8に入力され、特定命令情報格納メモリから出力されるビット情報1〜mS20、S21、S22により、切り替えが行われる。
最終的にセレクタ回路の出力データが、命令コードとして演算器1〜mへ入力され、その命令に応じて入力メモリから入力されるデータを演算処理することになる。
第1実施例と同様に、演算処理装置のメモリ回路は、システム動作の基準となるクロックS1と、演算開始信号S2がプログラムカウンタ9に入力され、演算開始信号が有効となるとプログラムカウンタはカウント動作を開始する。
プログラムカウンタからの出力データはPCとして、特定命令情報格納メモリ6と連続命令情報格納メモリ21のアドレスとして入力される。これにより、PCにて指定された領域に格納されたビット情報が特定命令情報格納メモリと連続命令情報格納メモリから出力される。
特定命令情報格納メモリから出力されるビット情報1〜mと、連続命令情報格納メモリから出力されるビット情報1〜mとは、各ビット毎に論理OR回路20に入力される。論理OR回路20では、カウント禁止信号1〜mとしてアドレス生成カウンタ5に入力される。このアドレス生成カウンタには、プログラムカウンタと同様に、クロックS1と、演算開始信号S2が入力され、演算開始信号が有効となるとアドレス生成カウンタ1〜mはカウント動作を開始する。
アドレス生成カウンタ1〜mから出力されるデータは、命令格納メモリ1〜mのアドレスとして入力され、そのメモリ出力が演算器1〜mの命令コード用として出力される。この命令コードと、特定命令コード用のレジスタ7に格納された命令コードはセレクタ回路8に入力され、特定命令情報格納メモリから出力されるビット情報1〜mS20、S21、S22により、切り替えが行われる。
最終的にセレクタ回路の出力データが、命令コードとして演算器1〜mへ入力され、その命令に応じて入力メモリから入力されるデータを演算処理することになる。
図10は、第3実施例の演算処理装置のメモリ回路における、特定命令情報格納メモリ6と連続命令情報格納メモリ21と命令格納メモリ4のメモリ使用状況を示す図である。図11は、命令格納メモリ内に、特定命令コードと連続命令コードを残した状態のメモリ使用状況を示す図である。また、ここでは説明を分かり易くするため、演算器を各3個使用した場合の演算処理装置のメモリ回路として説明する。さらに、演算器の命令コードには、OP1〜OP9の種類があり、各演算器ではこれら9種類の命令を利用して演算するものとする。
図11から説明すると、ここでは図14で示した命令格納メモリ1〜3に命令コードが格納されており、使用頻度の高いOP3を特定命令と設定し、本発明で設置した特定命令情報格納メモリにどのようにその情報が格納されるかを示したものである。特定命令情報格納メモリのbit1は命令格納メモリ1に、bit2は命令格納メモリ2に、bit3は命令格納メモリ3にそれぞれ対応している。プログラムカウンタが示す演算ステップ毎に、OP3が利用される特定命令情報格納メモリの各bitに“1”が入るようになっている。また、命令格納メモリにおいてOP3を取り除いた際、命令コードが連続して配置される、OP5、OP4、OP1について、連続命令情報格納メモリにどのように配置されているか示している。連続命令情報格納メモリのbit1は命令格納メモリ1に、bit2は命令格納メモリ2に、bit3は命令格納メモリ3にそれぞれ対応している。プログラムカウンタが示す演算ステップ毎に、命令格納メモリに同一の命令コードが連続している際、先頭部分の連続命令情報格納メモリの各bitに“1”が入るようになっている。
本発明のメモリ回路にて実際に使用する場合、図10のような命令格納メモリの使用状況となる。図10では、使用頻度の高いOP3の命令コードを、特定命令コード用レジスタ7に格納することで、命令格納メモリにその命令コードを格納する必要がなくなることを示している。これとともに、命令格納メモリに連続して配置された同一の命令コードを格納する必要がなくなることも示している。
図11から説明すると、ここでは図14で示した命令格納メモリ1〜3に命令コードが格納されており、使用頻度の高いOP3を特定命令と設定し、本発明で設置した特定命令情報格納メモリにどのようにその情報が格納されるかを示したものである。特定命令情報格納メモリのbit1は命令格納メモリ1に、bit2は命令格納メモリ2に、bit3は命令格納メモリ3にそれぞれ対応している。プログラムカウンタが示す演算ステップ毎に、OP3が利用される特定命令情報格納メモリの各bitに“1”が入るようになっている。また、命令格納メモリにおいてOP3を取り除いた際、命令コードが連続して配置される、OP5、OP4、OP1について、連続命令情報格納メモリにどのように配置されているか示している。連続命令情報格納メモリのbit1は命令格納メモリ1に、bit2は命令格納メモリ2に、bit3は命令格納メモリ3にそれぞれ対応している。プログラムカウンタが示す演算ステップ毎に、命令格納メモリに同一の命令コードが連続している際、先頭部分の連続命令情報格納メモリの各bitに“1”が入るようになっている。
本発明のメモリ回路にて実際に使用する場合、図10のような命令格納メモリの使用状況となる。図10では、使用頻度の高いOP3の命令コードを、特定命令コード用レジスタ7に格納することで、命令格納メモリにその命令コードを格納する必要がなくなることを示している。これとともに、命令格納メモリに連続して配置された同一の命令コードを格納する必要がなくなることも示している。
よって、図10に示すように、本来ならOP3の命令コードが格納されるメモリ領域と、連続で配置されるOP5、OP4、OP1の各命令コードは存在しないことになり、使用するメモリが削減できることが分かる。
図12は、第3実施例の演算処理装置のメモリ回路における、タイミングチャートを示す図である。ここでは、図10に示す命令コードが特定命令情報格納メモリ6、および命令格納メモリ4に格納されているものとして説明している。尚、説明を分かり易くするため、特定命令情報格納メモリと命令格納メモリは、アドレスを入力するとデータを非同期で出力するメモリとしてタイミングチャートに示している。
図12のタイミングチャートについて、図9の回路におけるデータの流れと合わせて説明する。
まず、プログラムカウンタ9に、クロックS1と演算開始信号S2が入力される。プログラムカウンタは、演算開始信号が“1”になっている時、クロックの立ち上がりに同期してカウント動作を開始する。このプログラムカウンタからの出力データであるPCは、特定命令情報格納メモリのアドレスとして入力される。特定命令情報格納メモリからは、PCにて指定された領域に格納されたビット情報が出力される。
特定命令情報格納メモリから出力されるビット情報と、連続命令情報格納メモリから出力されるビット情報は、論理ORされてカウント禁止信号1〜3としてアドレス生成カウンタ1〜3に入力される。各アドレス生成カウンタは、プログラムカウンタと同様に、クロックS1と、演算開始信号S2が入力され、演算開始信号が“1”になるとカウント動作を開始する。ここで、カウント禁止信号1が“1”のときは、アドレス生成カウンタ1のカウント動作は停止する。タイミングチャートで示すように、プログラムカウンタが“1”と“2”と“6”のとき、カウント禁止信号1は“1”になっているので、この期間のアドレス生成カウンタ1は、“1”と“4”のカウント値を保持した状態となる。アドレス生成カウンタ2についても同様に、プログラムカウンタが“0”〜2”と“6”のとき、カウント禁止信号2は“1”になっているので、この期間のアドレス生成カウンタ2は、“0”と“3”のカウント値を連続して保持した状態となる。アドレス生成カウンタ3については、プログラムカウンタが“1”と“3”と“7”と“9”のとき、カウント禁止信号3は“1”になっているので、この期間のアドレス生成カウンタ3は、“1”と“2”と“5”と“6”のカウント値を保持した状態となる。
各アドレス生成カウンタから出力されるデータは、命令格納メモリ1〜3のアドレスとして入力され、そのメモリ出力が演算器1〜3の命令コードとして出力される。タイミングチャートにおいて、命令格納メモリ1〜3から出力される命令コードは、図10に示すプログラムカウンタ値と命令コード1〜3に対応していることが分かる。また、この時点では、特定命令コードとして設定したOP3が存在していないことが確認できる。さらに、OP3を取り除いた際に、命令格納メモリ1に連続して配置されたOP5と、命令格納メモリ2に連続して配置されたOP4、OP1と、命令格納メモリ3に連続して配置されたOP4も先頭の命令コードのみ存在していることが確認できる。
命令格納メモリ1〜3から出力される命令コードは、直接演算器に入力されるのではなく、セレクタ回路8を介して入力される。セレクタ回路8では、カウント禁止信号が“0”のとき、命令格納メモリ1〜3からの出力値を選択し、カウント禁止信号が“1”のとき、特定命令コード用のレジスタの出力値を選択する。
最終的にセレクタ回路1の出力データは、カウント禁止信号1が“1”のとき、特定命令コードとして設定したOP3が命令コードとして選択される。これは、セレクタ回路2、セレクタ回路3についても同様であり、カウント禁止信号2、カウント禁止信号3が“1”のとき、特定命令コードとして設定したOP3が命令コードとして選択される。これらセレクタ回路1〜3から出力される命令コードは、図11に示す命令コードの並びと一致していることが分かる。演算器1〜3では、セレクタ回路1〜3から出力される命令コードにより、入力メモリから入力されるデータを演算処理することになる。
図12のタイミングチャートについて、図9の回路におけるデータの流れと合わせて説明する。
まず、プログラムカウンタ9に、クロックS1と演算開始信号S2が入力される。プログラムカウンタは、演算開始信号が“1”になっている時、クロックの立ち上がりに同期してカウント動作を開始する。このプログラムカウンタからの出力データであるPCは、特定命令情報格納メモリのアドレスとして入力される。特定命令情報格納メモリからは、PCにて指定された領域に格納されたビット情報が出力される。
特定命令情報格納メモリから出力されるビット情報と、連続命令情報格納メモリから出力されるビット情報は、論理ORされてカウント禁止信号1〜3としてアドレス生成カウンタ1〜3に入力される。各アドレス生成カウンタは、プログラムカウンタと同様に、クロックS1と、演算開始信号S2が入力され、演算開始信号が“1”になるとカウント動作を開始する。ここで、カウント禁止信号1が“1”のときは、アドレス生成カウンタ1のカウント動作は停止する。タイミングチャートで示すように、プログラムカウンタが“1”と“2”と“6”のとき、カウント禁止信号1は“1”になっているので、この期間のアドレス生成カウンタ1は、“1”と“4”のカウント値を保持した状態となる。アドレス生成カウンタ2についても同様に、プログラムカウンタが“0”〜2”と“6”のとき、カウント禁止信号2は“1”になっているので、この期間のアドレス生成カウンタ2は、“0”と“3”のカウント値を連続して保持した状態となる。アドレス生成カウンタ3については、プログラムカウンタが“1”と“3”と“7”と“9”のとき、カウント禁止信号3は“1”になっているので、この期間のアドレス生成カウンタ3は、“1”と“2”と“5”と“6”のカウント値を保持した状態となる。
各アドレス生成カウンタから出力されるデータは、命令格納メモリ1〜3のアドレスとして入力され、そのメモリ出力が演算器1〜3の命令コードとして出力される。タイミングチャートにおいて、命令格納メモリ1〜3から出力される命令コードは、図10に示すプログラムカウンタ値と命令コード1〜3に対応していることが分かる。また、この時点では、特定命令コードとして設定したOP3が存在していないことが確認できる。さらに、OP3を取り除いた際に、命令格納メモリ1に連続して配置されたOP5と、命令格納メモリ2に連続して配置されたOP4、OP1と、命令格納メモリ3に連続して配置されたOP4も先頭の命令コードのみ存在していることが確認できる。
命令格納メモリ1〜3から出力される命令コードは、直接演算器に入力されるのではなく、セレクタ回路8を介して入力される。セレクタ回路8では、カウント禁止信号が“0”のとき、命令格納メモリ1〜3からの出力値を選択し、カウント禁止信号が“1”のとき、特定命令コード用のレジスタの出力値を選択する。
最終的にセレクタ回路1の出力データは、カウント禁止信号1が“1”のとき、特定命令コードとして設定したOP3が命令コードとして選択される。これは、セレクタ回路2、セレクタ回路3についても同様であり、カウント禁止信号2、カウント禁止信号3が“1”のとき、特定命令コードとして設定したOP3が命令コードとして選択される。これらセレクタ回路1〜3から出力される命令コードは、図11に示す命令コードの並びと一致していることが分かる。演算器1〜3では、セレクタ回路1〜3から出力される命令コードにより、入力メモリから入力されるデータを演算処理することになる。
したがって、本発明の第3実施例に係る演算処理装置は、同一の命令コードを連続して前記特定命令情報格納メモリ6から出力することを示す情報が格納された連続命令情報格納メモリ21と、前記特定命令情報格納メモリ6から出力される特定命令有効信号S20〜S22と前記連続命令情報格納メモリ21から出力される連続命令有効信号S23〜S25とを論理ORすると共に、該論理ORされた信号をカウント禁止信号として前記アドレス生成カウンタ1に出力する論理OR回路20とを備えたので、従来の命令格納メモリが、図11に示すようにプログラムカウンタ値が9までの命令コードを格納するメモリ領域が必要であったものを、本発明の第3実施例による演算処理装置のメモリ回路を利用した命令格納メモリでは、図10に示すようにプログラムカウンタ値を6以下のメモリ容量にすることができる。すなわち、本発明は命令格納メモリの物理的なメモリ容量の削減を実現することができる。
VLIW方式の演算処理装置において、より少ない命令格納メモリで並列演算を実行することができるため、FA用途の制御装置や信号処理装置の命令格納メモリの容量削減手法として利用することができる。
また、命令格納メモリの容量を物理的に削減しない場合は、現状より多くの実行コードを命令格納メモリに格納することが可能となるため、FA用途の制御装置や信号処理装置の演算処理において、より高度で複雑な演算処理を実行するために利用することができる。
また、命令格納メモリの容量を物理的に削減しない場合は、現状より多くの実行コードを命令格納メモリに格納することが可能となるため、FA用途の制御装置や信号処理装置の演算処理において、より高度で複雑な演算処理を実行するために利用することができる。
1:演算器
2:入力メモリ
3:出力メモリ
4:命令格納メモリ
5:アドレス生成カウンタ
6:特定命令情報格納メモリ
7:レジスタ
8:セレクタ回路
9:プログラムカウンタ
10:論理OR回路
11:セレクタ回路
12:デコード回路
20:論理OR回路
21:連続命令情報格納メモリ
S1:クロック
S2:演算開始信号
S10〜12、S20〜22:特定命令有効信号
S23〜25:連続命令有効信号
2:入力メモリ
3:出力メモリ
4:命令格納メモリ
5:アドレス生成カウンタ
6:特定命令情報格納メモリ
7:レジスタ
8:セレクタ回路
9:プログラムカウンタ
10:論理OR回路
11:セレクタ回路
12:デコード回路
20:論理OR回路
21:連続命令情報格納メモリ
S1:クロック
S2:演算開始信号
S10〜12、S20〜22:特定命令有効信号
S23〜25:連続命令有効信号
Claims (3)
- 複数の入力データを保持するための入力メモリ(2)と、
加減乗除、論理演算および数値比較などを行うための1つ以上の演算器(1)と、
前記演算器(1)からの演算結果を保持する出力メモリ(3)と、
前記演算器(1)にて実行する処理を決定するための1つ以上の命令格納メモリ(4)と、
前記演算器(1)の実行サイクル毎にカウントアップするプログラムカウンタ(9)と、
を備えた演算処理装置において、
演算処理で多用されるある特定の命令コードを格納するレジスタ(7)と、
前記レジスタ(7)に格納された特定命令が実行されるステップの情報を格納するための特定命令情報格納メモリ(6)と、
前記特定命令情報格納メモリ(6)からの出力データをカウント禁止信号としてカウント動作を制御できるアドレス生成カウンタ(5)と、
前記命令格納メモリ(4)からの出力命令と前記特定命令コードを格納したレジスタ(7)からの出力命令を切替える第1のセレクタ回路(8)と、
を備えたことを特徴とする演算処理装置のメモリ回路。 - 前記レジスタ(7)および前記特定命令情報格納メモリ(6)が複数設置されており、
前記複数の特定命令情報格納メモリ(6)から出力される特定命令有効信号(S10〜S12)を論理ORすると共に、該論理ORされた信号をカウント禁止信号として前記アドレス生成カウンタ(1)に出力するための論理OR回路(10)と、
前記特定命令コードを格納した複数のレジスタ(7)からの出力命令を選択して各演算器に出力する第2のセレクタ回路(11)と、
前記第2のセレクタ回路(11)を制御するためのデコード回路(12)と、
を備えたことを特徴とする請求項1記載の演算処理装置のメモリ回路。 - 同一の命令コードを連続して前記特定命令情報格納メモリ(6)から出力することを示す情報が格納された連続命令情報格納メモリ(21)と、
前記特定命令情報格納メモリ(6)から出力される特定命令有効信号(S20〜S22)と前記連続命令情報格納メモリ(21)から出力される連続命令有効信号(S23〜S25)とを論理ORすると共に、該論理ORされた信号をカウント禁止信号として前記アドレス生成カウンタ(1)に出力する論理OR回路(20)と、
を備えたことを特徴とする請求項1記載の演算処理装置のメモリ回路。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005064818A JP2006072961A (ja) | 2004-08-04 | 2005-03-09 | 演算処理装置のメモリ回路 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004228167 | 2004-08-04 | ||
| JP2005064818A JP2006072961A (ja) | 2004-08-04 | 2005-03-09 | 演算処理装置のメモリ回路 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2006072961A true JP2006072961A (ja) | 2006-03-16 |
Family
ID=36153484
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005064818A Pending JP2006072961A (ja) | 2004-08-04 | 2005-03-09 | 演算処理装置のメモリ回路 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2006072961A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007316900A (ja) * | 2006-05-25 | 2007-12-06 | Sanyo Electric Co Ltd | 制御情報供給装置、制御情報圧縮方法 |
| JP2007316901A (ja) * | 2006-05-25 | 2007-12-06 | Sanyo Electric Co Ltd | 制御情報供給装置、制御情報圧縮方法 |
| JP2009026106A (ja) * | 2007-07-20 | 2009-02-05 | Oki Electric Ind Co Ltd | 命令コード圧縮方法と命令フェッチ回路 |
| CN110383259A (zh) * | 2017-01-26 | 2019-10-25 | 索尼半导体解决方案公司 | 计算处理装置和信息处理系统 |
-
2005
- 2005-03-09 JP JP2005064818A patent/JP2006072961A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007316900A (ja) * | 2006-05-25 | 2007-12-06 | Sanyo Electric Co Ltd | 制御情報供給装置、制御情報圧縮方法 |
| JP2007316901A (ja) * | 2006-05-25 | 2007-12-06 | Sanyo Electric Co Ltd | 制御情報供給装置、制御情報圧縮方法 |
| JP2009026106A (ja) * | 2007-07-20 | 2009-02-05 | Oki Electric Ind Co Ltd | 命令コード圧縮方法と命令フェッチ回路 |
| CN110383259A (zh) * | 2017-01-26 | 2019-10-25 | 索尼半导体解决方案公司 | 计算处理装置和信息处理系统 |
| CN110383259B (zh) * | 2017-01-26 | 2023-05-16 | 索尼半导体解决方案公司 | 计算处理装置和信息处理系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3592230B2 (ja) | データ処理装置 | |
| JP3711422B2 (ja) | 情報処理回路 | |
| JPH0470662B2 (ja) | ||
| EP0913764B1 (en) | Method and apparatus for shifting data | |
| US9015216B2 (en) | Fast static rotator/shifter with non two's complemented decode and fast mask generation | |
| JPH1185507A (ja) | 中央処理装置およびマイクロコンピュータシステム | |
| JP2006072961A (ja) | 演算処理装置のメモリ回路 | |
| JP3556252B2 (ja) | オフセット合計を計算するデータ処理システムとその方法 | |
| JP3570287B2 (ja) | マイクロコンピュータ | |
| JPH03204718A (ja) | 情報処理装置 | |
| JP4686435B2 (ja) | 演算装置 | |
| US20040024992A1 (en) | Decoding method for a multi-length-mode instruction set | |
| KR100188374B1 (ko) | 연산처리장치 | |
| JPH08221257A (ja) | データ処理装置用除算器 | |
| US7543135B2 (en) | Processor and method for selectively processing instruction to be read using instruction code already in pipeline or already stored in prefetch buffer | |
| JP2014164659A (ja) | プロセッサ | |
| JP4873546B2 (ja) | データ処理装置、データ処理方法 | |
| JP2812610B2 (ja) | パイプライン制御方式 | |
| JP3019818B2 (ja) | データ処理方法 | |
| JP2003099250A (ja) | レジスタ読み出し回路及びマイクロプロセッサ | |
| JP3088956B2 (ja) | 演算装置 | |
| JP2013161325A (ja) | Simd型マイクロプロセッサ、プロセッサシステムおよびsimd型マイクロプロセッサのデータ処理方法 | |
| JPH04195629A (ja) | 演算フラグ生成装置 | |
| US20050251658A1 (en) | Processing unit | |
| JP2003084972A (ja) | 条件付減算命令の実行速度を改善し、命令が正しく実行されるオペランドの範囲を拡大する方法 |