JP3578735B2 - 情報処理装置及び情報処理方法 - Google Patents
情報処理装置及び情報処理方法 Download PDFInfo
- Publication number
- JP3578735B2 JP3578735B2 JP2001235378A JP2001235378A JP3578735B2 JP 3578735 B2 JP3578735 B2 JP 3578735B2 JP 2001235378 A JP2001235378 A JP 2001235378A JP 2001235378 A JP2001235378 A JP 2001235378A JP 3578735 B2 JP3578735 B2 JP 3578735B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- program
- information processing
- code
- control signal
- 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 - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の属する技術分野】
本発明は、回路構成を変更することができるリコンフィギュアラブル回路を有する情報処理装置に関する。
【0002】
【従来の技術】
近年、ディジタル信号処理分野の拡大に伴い、携帯通信機器等の機器にディジタル信号処理プロセッサ(以下ではDSPと称する)が広く用いられるようになっている。このような機器は、電池によって駆動されるので、DSPを低消費電力化することが強く望まれている。一般にDSPは、予めプログラムを格納させた内蔵メモリ又はDSP外部に接続したメモリから命令を読み出し、命令デコーダがこの命令を解読(デコード)し、算術論理演算回路(ALU)等の演算器に各種制御信号を出力する。
【0003】
図13は、従来のDSPにおける命令デコードに係る部分の構成を示したブロック図である。内蔵のメモリ92から命令を読み出し実行する場合、プログラムカウンタ91は、アドレスをメモリ92に出力する。メモリ92は、入力されたアドレスに格納されている命令を命令デコーダ93に出力する。命令デコーダ93は、入力された命令をデコードし、デコード結果DCとして各種制御信号を生成して演算器94に出力する。演算器94は、デコード結果DCに従って、例えば加算や減算などの演算を実行する。
【0004】
また、外部に接続したメモリ97から命令を読み出す場合、プログラムカウンタ91は、パッド95を経由してメモリ97にアドレスを出力する。メモリ97は、入力されたアドレスに格納されている命令を命令デコーダ93に出力する。命令は、パッド96を経由して命令デコーダ93に入力され、命令デコーダ93は、メモリ92から命令を読み出す場合と同様に、命令をデコードし、デコード結果DCを演算器94に出力する。
【0005】
図2は、命令デコーダ93に入力される命令の構成の例を示す説明図である。最上位のフィールドには、演算又はデータ転送の種類を指定し、その次のフィールドではデータを書き込むレジスタの種類を指定する。また、その次の2フィールドでは、データを読み出すレジスタの種類を指定する(例えば、「MN1920シリーズLSI説明書」p.2-2、1990年、松下電子工業(株)刊参照)。
【0006】
【発明が解決しようとする課題】
しかしながら、このような構成のDSPにおいてプログラムを実行する場合、異なった命令が順次命令デコーダ93に入力される度に、メモリ92,97から命令デコーダ93に至る経路の配線及びパッド96の電位が低電位“L”から高電位“H”、又は“H”から“L”に変化する。一般にCMOS(complementary metal oxide semiconductor)構造のLSIにおいては、信号の電位が変化するときに動作電流が最大となるので、命令デコーダ93への入力のうち値が変化するビットの数が多いと、命令をデコードする際の消費電力が大きい。
【0007】
一方、機器に組み込まれて用いられるDSP等の情報処理装置においては、処理内容が一旦決まって機器に組み込まれれば、プログラムが変更されることは通常はない。DSPは、プログラムに従って処理を順次行うが、ある処理を行う際に実行する命令の種類は限られていることが多い。このような場合においても、DSPは全ての命令を実行することができるようになっており、命令フィールドの幅や命令コードの割り当ては変更されることがなかった。
【0008】
本発明は、DSP等の情報処理装置が命令をデコードする際に消費する電力を低減することを目的とする。
【0009】
【課題を解決するための手段】
前記課題を解決するため、請求項1の発明が講じた手段は、記憶手段に格納されたプログラムを読み出して実行する情報処理装置であって、前記プログラムを読み出すためのアドレスを前記記憶手段に出力するプログラムカウンタと、前記プログラム中の命令を構成するフィールドのうち少なくともいずれかにおいて、使用されるコードの種類が所定の数以下に限定される期間を示す制御信号に応じて、前記記憶手段から読み出した命令をデコードする命令デコーダと、前記命令デコーダが出力するデコード結果に応じた処理を行う被制御手段とを備え、前記命令デコーダは、使用されるコードの種類が限定されるフィールドのビットの値が変化する回数が少なくなるように設定された、当該フィールドのコードとデコード結果との関係に従ってデコードを行うように、前記制御信号に応じて回路構成の変更を行うリコンフィギュアラブル回路を有し、かつ、前記プログラムの実行が開始されてからの時間がカウントされて得られたカウント値が、前記期間の開始時刻及び終了時刻に相当する値になったことを示す信号を、前記制御信号として用いるものである。
【0010】
請求項1の発明によると、あるフィールドに関して、使用されるコードの種類が所定の数以下に限定される期間においては、命令を構成するフィールドのビットの値が変化する回数が少なくなるので、情報処理装置の消費電力を低減することができる。
【0011】
また、請求項2の発明は、記憶手段に格納されたプログラムを読み出して実行する情報処理方法であって、前記プログラムを読み出すためのアドレスを前記記憶手段に出力するステップと、前記プログラム中の命令を構成するフィールドのうち少なくともいずれかにおいて、使用されるコードの種類が所定の数以下に限定される期間を示す制御信号に応じて、前記記憶手段から読み出した命令をデコードするステップと、前記命令をデコードして得られたデコード結果に応じた処理を行うステップと、前記プログラムの実行が開始されてからの時間をカウントし、得られたカウント値が前記期間の開始時刻及び終了時刻に相当する値になったことを示す信号を、前記制御信号として求めるステップとを備え、前記命令をデコードするステップでは、前記制御信号に応じてリコンフィギュアラブル回路の回路構成の変更を行って、使用されるコードの種類が限定されるフィールドのビットの値が変化する回数が少なくなるように設定された、当該フィールドのコードとデコード結果との関係に従ってデコードを行うものである。
【0012】
また、請求項3の発明は、リコンフィギュアラブル回路を有する命令デコーダを備えた情報処理装置でプログラムを実行させるために、プログラムをコード化する情報処理方法であって、プログラム実行をシミュレートし、実行される命令の履歴を求めるステップと、前記履歴に基づき、前記プログラムにおいて、命令を構成するフィールドのうち少なくともいずれかに関して、使用されるコードの種類が所定の数以下に限定されるルーチンを抽出するステップと、前記ルーチンの前後に、前記リコンフィギュアラブル回路の回路構成を変更させる命令を挿入するステップと、使用されるコードの種類が限定されるフィールドのビットの値が変化する回数が少なくなるように、前記ルーチンにおけるコードの割り当てを行うステップと、前記命令を挿入するステップで得られたプログラムを、前記ルーチンにおいては前記割り当てに従ってコードに変換するステップとを備えたものである。
【0013】
請求項3の発明によると、プログラムをコード化する際に、リコンフィギュアラブル回路の回路構成を変更させる命令を自動的に挿入することができる。
【0014】
また、請求項4の発明は、請求項3に記載の情報処理方法において、前記コードの割り当てを行うステップでは、前記ルーチンでの命令の実行順序に基づき、コードの割り当てを行うものである。
【0015】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【0016】
(第1の実施形態)
図1は、本発明の第1の実施形態に係る情報処理装置のブロック図である。図1の情報処理装置100は、プログラムカウンタ11と、メモリ12と、命令デコーダ13と、被制御手段としての演算器14とを備えている。また、情報処理装置100には、パッド41,42を介してメモリ61が接続されている。情報処理装置100は、具体的にはDSPを始めとするプロセッサ等である。プログラムカウンタ11、メモリ12、命令デコーダ13、及び演算器14は、1チップ上に形成されている。
【0017】
プログラムカウンタ11は、メモリ12又は61に格納されたプログラム中の命令を読み出すためのアドレスを生成し、メモリ12及び61に出力する。この際、プログラムカウンタ11は、メモリ61にはパッド41を介してアドレスを出力する。メモリ12又は61は、プログラムカウンタ11が出力するアドレスに応じて、格納された命令を読み出し、命令デコーダ13に出力する。この際、メモリ61は、読み出した命令をパッド42を介して命令デコーダ13に出力する。パッド41,42は、配線を駆動するバッファを有している。
【0018】
命令デコーダ13は、制御信号CNに応じて回路構成を変更し得るリコンフィギュアラブル回路を有している。命令デコーダ13は、入力された命令を制御信号CNに応じてデコードし、デコード結果DCを演算器14に出力する。
【0019】
図2は、図1の命令デコーダ13に入力される命令の構成の例を示す説明図である。命令全体のビット長は16ビットである。図2の命令は、命令フィールドF1、格納先フィールドF2、及び読み出しフィールドF3,F4を備えている。最上位の3ビットは命令フィールドF1であり、この命令フィールドF1には、実行する演算命令又は転送命令の命令コードが格納される。格納先フィールドF2にはデータの格納先のレジスタのコード等、読み出しフィールドF3,F4にはデータが読み出されるレジスタのコード等が格納される。
【0020】
図3は、図1の命令デコーダ13がデコードする命令の命令コード、及びそれぞれに対応する命令名の例を示す説明図である。図3は、8種類の演算等について、3ビットで表された命令コードと、これらのそれぞれに対応する命令名、演算内容、及び演算種別を示している。
【0021】
図4は、図1の命令デコーダ13がデコードする命令の命令コード、及びそれぞれに対応する命令名の他の例を示す説明図である。図4は、3種類の演算等について、3ビットで表された命令コードと、これらのそれぞれに対応する命令名、及び演算内容を示している。特に図示しないが、格納先フィールドF2、及び読み出しフィールドF3,F4についても、指定されるレジスタ等とそれに対するコードとの関係が定義されている。
【0022】
命令デコーダ13は、制御信号CNが“0”(すなわち、例えば“L”)のときには、図3に示された対応関係に基づいて図2の命令フィールドF1の命令コードをデコードし、そのデコード結果を演算器14に出力する。一方、命令デコーダ13は、制御信号CNが“1”(すなわち、例えば“H”)のときにはリコンフィギュアラブル回路の回路構成を変更し、図4に示された対応関係に基づいて命令フィールドF1の命令コードをデコードし、そのデコード結果を演算器14に出力する。ここで、“H”及び“L”は、信号レベルが論理的にそれぞれ高電位及び低電位であることを表している。
【0023】
命令デコーダ13は、図2の格納先フィールドF2、及び2つの読み出しフィールドF3,F4のコードもデコードし、そのデコード結果を演算器14に出力する。この際、各フィールドのコードを常に同じ対応関係に基づいてデコードしてもよいし、命令フィールドの場合と同様に、制御信号CNに応じて各フィールドのコードとデコード結果との関係を変更してもよい。
【0024】
図5は、図1の情報処理装置100が行う処理の内容の例を説明する説明図である。ここでは、携帯電話の受信データを処理する場合を例として示している。
【0025】
時刻T0〜T1では、情報処理装置100は、外部のLSI(図示せず)からデータを受信し、処理Aを行う。処理Aは、復調、誤り訂正などの処理を含む。情報処理装置100は、処理Aを行う際には、算術演算及び論理演算を行う。
【0026】
時刻T1〜T2では、情報処理装置100は、処理Aの結果に基づいて処理Bを行う。処理Bは、音声デコード処理を含む。情報処理装置100は、処理Bを行う際には、算術演算を行う。
【0027】
時刻T2〜T3では、情報処理装置100は、処理Bの結果に基づいて処理Cを行う。処理Cは、処理Bで得られた音声データを外部に転送する等の処理を含む。処理Cでは転送処理が主であるが、他の様々な処理をも行うものとする。情報処理装置100は、処理Cを行う際には、算術演算、論理演算、及び転送命令を実行する。
【0028】
図5の処理を実行する前に、図5の処理を行うためのプログラムを、予めシミュレータ等で解析し、実行される命令とその実行時刻の記録をしておく。この記録から、このプログラムにおいて、命令フィールドで使用される命令コードの種類が所定の数以下に限定される期間を知ることができる。他のフィールドで使用されるコードについても同様に知ることができる。ここでは、時刻T1〜T2において、すなわち、処理Bを行う際には、情報処理装置100は、図4に示された3種類の算術演算のみを行うということが明らかになっているとする。
【0029】
また、命令の実行順序を記録しておくと、図5の処理を行うためのプログラムにおいて、ある命令コードの後には特定の命令コードが実行されることが多いということを知ることができる。これは、命令の実行時刻の記録からも知ることができる。ここでは、処理Bを行う際には、MAC命令に続いてADD命令を実行し、かつ、ADD命令に続いてMOV命令を実行する頻度が高いということが明らかになっているとする。
【0030】
処理Bを行う期間においては、使用される命令の種類が限られ、命令フィールドF1で使用されるコードの種類が3種類に限定されている。そこで、命令フィールドF1のコードとデコード結果との関係を、命令フィールドF1のビットの値が変化する回数が少なくなるように設定している。
【0031】
具体的には、図4においては、例えば命令コードの最上位ビットのように、命令コードの一部のビットを固定値とするように命令コードとデコード結果との関係を設定している。このため、処理Bを行う際には、この固定値としたビットの電位を変化させるための電力を削減することができるようになる。
【0032】
また、図4では、命令の実行順序に基づいて、コードとデコード結果との関係を設定している。すなわち、MAC命令に続いてADD命令を実行する頻度が高いので、MAC命令からADD命令に変化するときにおける命令フィールドのビットの変化ができるだけ小さくなるように、すなわち、1ビットのみが変化するようにしている。また、ADD命令からMOV命令に変化するときにおける命令フィールドのビットの変化も同様に、1ビットのみが変化するようにしている。
【0033】
処理A,Cでは、使用する命令の種類が多いため、処理A,Cを実行するためのプログラムは、予めアセンブラ、コンパイラ等により図3の対応関係に従って命令コードに変換しておく。また、処理Bを実行するためのプログラムは、予めアセンブラ、コンパイラ等により、図4の対応関係に従って命令コードに変換しておく。
【0034】
次に、情報処理装置100の動作について説明する。制御信号CNは、情報処理装置100の外部から与えることとしてもよいし、情報処理装置100の内部で生成することとしてもよい。
【0035】
時刻T0〜T1では、情報処理装置100は、処理Aを実行する。時刻T0では、命令デコーダ13に制御信号CNとして“0”が与えられる。このとき、制御信号CNは、命令フィールドにおいて使用されるコードの種類が限定される期間ではないことを示しており、命令デコーダ13は、入力された命令コードを図3の対応関係に従ってデコードする。例えば、入力された命令の命令フィールドF1が“000”である場合、命令デコーダ13は、演算器14がAND命令を実行するように、デコード結果DCを演算器14に出力する。また、入力された命令の命令フィールドが“101”である場合、命令デコーダ13は、演算器14がSUB命令を実行するように、デコード結果DCを演算器14に出力する。
【0036】
時刻T1〜T2では、情報処理装置100は、処理Bを実行する。時刻T1では、命令デコーダ13に制御信号CNとして“1”が与えられる。このとき、制御信号CNは、命令フィールドにおいて使用されるコードの種類が限定される期間であることを示しており、命令デコーダ13は、リコンフィギュアラブル回路の回路構成を変更し、入力された命令コードを図4の対応関係に従ってデコードする。例えば、入力された命令の命令フィールドF1が“100”である場合、命令デコーダ13は、演算器14がMAC命令を実行するように、デコード結果DCを演算器14に出力する。また、入力された命令の命令フィールドが“101”である場合、命令デコーダ13は、演算器14がADD命令を実行するように、デコード結果DCを演算器14に出力する。
【0037】
命令デコーダ13に入力される命令がMAC命令からADD命令に変化するとき、及びADD命令からMOV命令に変化するときに、命令デコーダ13に入力される命令の命令フィールドにおいては、1ビットが変化するのみである。
【0038】
時刻T2〜T3では、情報処理装置100は、処理Cを実行する。時刻T2では、命令デコーダ13に制御信号CNとして“0”が与えられる。このとき、命令デコーダ13は、リコンフィギュアラブル回路の回路構成を再び変更し、入力された命令コードを図3の対応関係に従ってデコードし、デコード結果DCを演算器14に出力する。
【0039】
このように、処理Bを実行する期間においては、命令デコーダ13はリコンフィギュアラブル回路の回路構成を変更し、入力された命令コードを図4の対応関係に従ってデコードするので、命令デコーダ13に入力される命令コードのビットの値が変化する回数を少なくすることができる。すると、メモリ12,61と命令デコーダ13との間の配線やパッド42の電位を変化させる回数を少なくすることができるので、情報処理装置100の消費電力を大幅に低減することができる。
【0040】
特に、情報処理装置が機器に組み込まれて用いられる場合には、プログラムが変更されることは通常はないので、命令フィールドで使用される命令コードの種類が所定の数以下に限定される期間を予め求めておくことが容易にできる。
【0041】
以下では、情報処理装置100の内部で制御信号CNを生成する場合のいくつかの例について説明する。
【0042】
(第1の変形例)
図6は、第1の実施形態の第1の変形例に係る情報処理装置200のブロック図である。図6の情報処理装置200は、図1の情報処理装置100においてタイマー15を更に備え、タイマー15の出力を制御信号CNとして命令デコーダ13に与えるものである。
【0043】
タイマー15には、処理Aが開始される前に、処理Bの開始時刻T1及び終了時刻T2が設定される。この設定は、情報処理装置200が、メモリ12に予め格納された時刻設定のためのプログラムを実行することにより行われる。
【0044】
設定終了後、処理Aが開始されると、タイマー15は、プロセッサの動作クロック(図示せず)の立ち上がりエッジ毎に、カウント値を値“0”から順次増加させる。タイマー15は、カウント値が時刻T1に相当する値になったときに、制御信号CNとして“1”を出力し、その後、カウント値が時刻T2に相当する値になったときに、制御信号CNとして“0”を出力する。
【0045】
命令デコーダ13は、入力された命令コードを、制御信号CNが“0”のときには図3に示す対応関係に従ってデコードし、制御信号CNが“1”のときには図4に示す対応関係に従ってデコードする。
【0046】
このように、図6の情報処理装置200によると、制御信号CNを外部から与えることなく、プログラム実行時の命令コードのビット変化を少なくすることができ、消費電力を大幅に低減することができる。
【0047】
(第2の変形例)
図7は、第1の実施形態の第2の変形例に係る情報処理装置300のブロック図である。図7の情報処理装置300は、図1の情報処理装置100において比較部16を更に備え、比較部16の出力を制御信号CNとして命令デコーダ13に与えるものである。
【0048】
比較部16には、処理Aが開始される前に、メモリ12又は61に格納されたプログラムにおける処理Bの先頭アドレスPC1及び処理Cの先頭アドレスPC2が設定される。この設定は、情報処理装置300が、メモリ12に予め格納されたアドレス設定のためのプログラムを実行することにより行われる。
【0049】
アドレス設定終了後、比較部16は、プログラムカウンタ11の出力とアドレスPC1,PC2とを比較する。比較部16は、プログラムカウンタ11の出力がPC1になったとき(処理Bの開始時)、制御信号CNとして“1”を出力し、その後、プログラムカウンタ11の出力がPC2になったとき(処理Bの終了時)、制御信号CNとして“0”を出力する。
【0050】
命令デコーダ13は、入力された命令コードを、制御信号CNが“0”のときには図3に示す対応関係に従ってデコードし、制御信号CNが“1”のときには図4に示す対応関係に従ってデコードする。
【0051】
このように、図7の情報処理装置300によると、制御信号CNを外部から与えることなく、プログラム実行時の命令コードのビット変化を少なくすることができ、消費電力を大幅に低減することができる。
【0052】
(第3の変形例)
図8は、第1の実施形態の第3の変形例に係る情報処理装置400のブロック図である。図8の情報処理装置400は、図1の情報処理装置100において、命令デコーダ13に代えて第1の命令デコーダ23を備え、更に第2の命令デコーダ21を備えたものである。メモリ12,61は、読み出した命令を命令デコーダ21及び23に出力する。命令デコーダ21は、デコード結果を制御信号CNとして命令デコーダ23に出力する。デコード部20は、命令デコーダ21及び23を備えている。
【0053】
図9は、図8のデコード部20がデコードする命令の命令コード、及びそれぞれに対応する命令名の例を示す説明図である。図9は、MUL命令に代えて命令デコーダ23の回路構成を変更(リコンフィギュア)させるRCNFG命令を割り当てている点の他は、図3と同様である。
【0054】
命令デコーダ21は、RCNFG命令をデコードすると、制御信号CNとして一旦“1”を出力し、その後、“0”を出力する。命令デコーダ21は、RCNFG命令以外はデコードする必要はない。また、命令デコーダ21は、リコンフィギュアラブル回路を有していない。
【0055】
命令デコーダ23は、制御信号CNに応じて回路構成を変更し得るリコンフィギュアラブル回路を有している。命令デコーダ23は、入力された命令を制御信号CNに応じてデコードし、デコード結果を演算器14に出力する。命令デコーダ23は、通常は図9に示す対応関係に従ってデコードを行う。但し、RCNFG命令はデコードする必要はない。このとき、制御信号CNが“0”から“1”に変化すると、命令デコーダ23は、その回路構成を変更し、図4に示す対応関係に従ってデコードを行う。またこのとき、制御信号CNが再び“0”から“1”に変化すると、命令デコーダ23は、その回路構成を変更し、再び図9に示す対応関係に従ってデコードを行う。
【0056】
以下、図8の情報処理装置400が図5の処理を実行する場合の動作を説明する。処理Aのプログラムの最後、及び処理Bのプログラムの最後に、RCNFG命令を予め加えておくこととする。
【0057】
まず、命令デコーダ23は、処理Aにおいて、入力された命令コードを図9に示す対応関係に従ってデコードする。命令デコーダ21は、制御信号CNとして“0”を出力している。
【0058】
処理Aの終了時、命令デコーダ21は、RCNFG命令をデコードするので、制御信号CNとして“1”を命令デコーダ23に出力する。命令デコーダ23は、制御信号CNが“1”に変化したので、その回路構成を変更する。すると、命令デコーダ23は、その後の処理Bにおいて、入力された命令コードを図4に示す対応関係に従ってデコードするようになる。命令デコーダ21は、RCNFG命令をデコードした後、制御信号CNを“0”にする。
【0059】
処理Bの終了時、命令デコーダ21は、再びRCNFG命令をデコードするので、制御信号CNとして“1”を出力する。命令デコーダ23は、制御信号CNが“1”に変化したので、その回路構成を変更する。すると、命令デコーダ23は、その後の処理Cにおいて、再び図9に示す対応関係に従ってデコードを行うようになる。命令デコーダ21は、RCNFG命令をデコードした後、制御信号CNを“0”にする。
【0060】
このように、図8の情報処理装置400によると、命令デコーダ23の構成を変更させるRCNFG命令をプログラムに予め記述しておくと、プログラム実行時の命令コードのビット変化を少なくすることができ、消費電力を大幅に低減することができる。
【0061】
(第4の変形例)
図10は、第1の実施形態の第4の変形例に係る情報処理装置500のブロック図である。図10の情報処理装置500は、図1の情報処理装置100において、命令デコーダ13に代えて第1の命令デコーダ33を備え、更に第2の命令デコーダ31とレジスタ17とを備えたものである。メモリ12,61は、読み出した命令を命令デコーダ31及び33に出力する。命令デコーダ31は、デコード結果をレジスタ17に出力する。レジスタ17は、格納している値を制御信号CNとして命令デコーダ33に出力する。デコード部30は、命令デコーダ31及び33を備えている。
【0062】
図10のデコード部30は、MUL命令に代えてSETREG命令をデコードする点の他は、図3に従ってデコードを行うものである。SETREG命令は、レジスタ17に値をセットする命令である。
【0063】
命令デコーダ31は、オペランドとして“1”が指定されたSETREG命令をデコードすると、値“1”をレジスタ17に出力して格納させる。また、命令デコーダ31は、オペランドとして“0”が指定されたSETREG命令をデコードすると、値“0”をレジスタ17に出力して格納させる。命令デコーダ31は、SETREG命令以外はデコードする必要はない。また、命令デコーダ31は、リコンフィギュアラブル回路を有していない。
【0064】
命令デコーダ33は、制御信号CNに応じて回路構成を変更し得るリコンフィギュアラブル回路を有している。命令デコーダ33は、入力された命令を制御信号CNに応じてデコードし、デコード結果を演算器14に出力する。命令デコーダ33は、制御信号CNが“0”のときは図3に示す対応関係に従ってデコードを行う(MUL命令は除く)。制御信号CNが“1”であるときは、命令デコーダ33は、その回路構成を変更し、図4に示す対応関係に従ってデコードを行う。
【0065】
図10の情報処理装置500が図5の処理を実行する場合は、処理Aのプログラムの最後、及び処理Bのプログラムの最後に、オペランドとしてそれぞれ“1”及び“0”が指定されたSETREG命令を予め加えておくこととする。
【0066】
このように、図10の情報処理装置500によると、レジスタ17に値をセットするSETREG命令をプログラムに予め記述しておくと、プログラム実行時の命令コードのビット変化を少なくすることができ、消費電力を大幅に低減することができる。
【0067】
(第2の実施形態)
図8の情報処理装置400では、命令デコーダ23の回路構成を変更する場合には、プログラマが、アセンブリ言語で記述されたプログラムにRCNFG命令を明示的に記述する必要があった。本実施形態では、プログラムに自動的にRCNFG命令を挿入する情報処理方法について説明する。
【0068】
図11は、本発明の第2の実施形態に係る情報処理方法の処理の流れを示すフローチャートである。ここでは、図8の情報処理装置400において図5の処理を実行するプログラムを対象として説明する。
【0069】
ステップS1では、処理A、処理B、処理Cを行うためのプログラムを、図8の情報処理装置400の動作を模擬するシミュレータ等に入力し、プログラム実行をシミュレートする。この際、実行される命令の履歴を記録しておく。
【0070】
ステップS2では、この履歴に基づき、使用される命令の種類、命令の実行順序の依存関係を解析し、プログラムにおいて、使用される命令コードの種類が所定の数以下に限定される部分(ルーチン)を求める。例えば、ADD命令、MAC命令等の算術演算が多用され、命令の種類が4以下に限定されるルーチン(ここではルーチンAと称する)がここで抽出される。
【0071】
ステップS3では、ルーチンAの前後に、リコンフィギュアラブル回路の回路構成を変更させるRCNFG命令を挿入する。
【0072】
ステップS4では、ステップS2で得られたルーチンAで用いられる命令コードの種類に基づき、命令コードのビット変化が少なくなるように、命令コードの割り当てを行う。すなわち、命令コードとそのデコード結果との間の関係を設定する。例えば、図4のように、命令コードの一部のビットの値を固定するようにする。
【0073】
また、ルーチンAでの命令実行順序に基づき、命令コードのビット変化が少なくなるように、命令コードの割り当てを行ってもよい。すなわち、例えばMAC命令に続きADD命令が実行され、ADD命令に続きMOV命令が実行される頻度が高い場合、続けて用いられる頻度が高い2つの命令コードの間でのビットの値の違いが小さくなるように、例えば図4のような命令コードが割り当てられる。
【0074】
ステップS5では、ステップS3で得られたプログラムを命令コード等に変換する(アセンブルを行う)。この際、プログラムのうち、RCNFG命令で挟まれたルーチンAは、ステップS4で求めた命令コードの割り当て、すなわち、例えば図4に示す対応関係に従って命令コードに変換する。それ以外の部分は図9に示す対応関係に従って命令コードに変換するようにする。
【0075】
このように、図11の情報処理方法によると、プログラムにおいて、使用される命令の種類が限定されるルーチンの前後にRCNFG命令が自動的に挿入される。すると、図8の情報処理装置400においてプログラムを実行する際に、命令コードのビット変化を少なくすることができ、消費電力を大幅に低減することができる。
【0076】
(第3の実施形態)
図12は、第3の実施形態において、処理Bを実行するプログラムに用いる命令の命令コード、及びそれぞれに対応する命令名の例を示す説明図である。第1の実施形態で説明したように、図2の命令フィールドF1のビット長は3ビットである。これは図3に示す8種類の命令コードの判別に必要なビット数である。ところが、図5の処理Bにおいては、MAC命令、ADD命令、及びMOV命令の3種類の命令のみが使用されている。そこで、本実施形態では、処理Bにおいては、命令フィールドF1のビット長を2ビットとし、命令デコーダは図12の関係に従ってデコードを行う。
【0077】
このとき、命令のビット長は、16ビットではなく、15ビットとなる。したがって、処理Bのプログラムを格納するメモリ12、61の1ワードの長さを15ビットとすることができる。以下では、図1の情報処理装置100において、命令デコーダ13に代えて、処理Bにおいては図12の関係に従ってデコードを行う命令デコーダを備えた情報処理装置が図5の処理を実行する際の動作を説明する。
【0078】
時刻T0〜T1において、情報処理装置が処理Aを実行する際の動作は、第1の実施形態と同様である。このとき、命令デコーダには、制御信号CNとして“0”が与えられる。命令デコーダは、入力された命令コードを図3の対応関係に従ってデコードする。メモリ12,61は、16ビットの命令を命令デコーダに出力する。
【0079】
時刻T1〜T2において、情報処理装置が処理Bを実行する際には、メモリ12,61は、15ビットの命令を命令デコーダに出力する。時刻T1で制御信号CNとして“1”が与えられると、命令デコーダは回路構成を変更し、入力された命令コードを図12の対応関係に従ってデコードする。
【0080】
時刻T2〜T3において、情報処理装置が処理Cを実行する際の動作は、第1の実施形態と同様である。このとき、命令デコーダには、制御信号CNとして“0”が与えられる。命令デコーダは回路構成を再び変更し、入力された命令コードを図3の対応関係に従ってデコードする。メモリ12,61は、16ビットの命令を命令デコーダに出力する。
【0081】
このように、各処理で実行される命令の命令コードをビット長ができるだけ短くなるように割り当てるので、プログラムを格納するメモリに必要な容量を少なくすることができる。特に、処理Bのプログラムを、処理A及びCのプログラムとは異なるバンクに属するメモリに格納すると、処理Bのプログラムを格納するメモリの面積を小さくすることができ、同時に消費電力を低減することができる。
【0082】
以上の実施形態においては、図2の命令フィールドF1に格納される命令コードとデコード結果との関係を変更する場合について説明したが、他のフィールドに格納されるコードについても、同様にコードとデコード結果との関係を変更することができる。
【0083】
例えば、図2の格納先フィールドF2に指定することができるレジスタが4本あり(それぞれをレジスタr1,r2,r3,r4とする)、処理Bにおいてレジスタr0が使用された後にレジスタr2が使用される頻度が高いとする。この場合、処理Bにおいては、レジスタr0に割り当てるコードと、レジスタr2に割り当てるコードとの間のビットの違いが他の処理A,C等におけるよりも小さくなるように、例えばビットの違いが1ビットとなるようにする。
【0084】
これに対応するように、処理Bの実行時においては、命令デコーダのリコンフィギュアラブル回路の回路構成を変更する。すると、処理Bにおいて格納先フィールドF2のビットが変化する回数が減少するので、消費電力を低下させることができる。読み出しフィールドF3,F4についても同様である。
【0085】
また、フィールド毎ではなく、命令全体についてのビット変化を考慮して、同様にコード割り当てを変更してもよい。すなわち、例えば、処理Bにおいて、命令“ADD r0,r1,r2”が実行された後に命令“MAC r1,r3,r2”が実行される頻度が高いとする。この場合、処理Bにおいては、これらの命令に割り当てられる16ビットコードの間のビットの違いが他の処理A,C等におけるよりも小さくなるように、命令コード及びレジスタr0〜r3のコードを割り当てるようにする。
【0086】
なお、情報処理装置が処理する命令数、命令ビット長、命令フィールド等の各フィールドの形式、命令フィールド等の各フィールドの長さ、命令の種類、命令コード等は、以上の実施形態で説明したもの以外であってもよい。
【0087】
また、情報処理装置は、メモリ12を備えるのみとし、これにプログラムを格納させてもよいし、メモリ12を備えずメモリ61を接続するのみとし、これにプログラムを格納させてもよい。
【0088】
【発明の効果】
以上のように、本発明によると、主に組み込み用途で用いられるDSP等の情報処理装置が消費する電力を小さくすることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る情報処理装置のブロック図である。
【図2】図1の命令デコーダに入力される命令の構成の例を示す説明図である。
【図3】図1の命令デコーダがデコードする命令の命令コード、及びそれぞれに対応する命令名の例を示す説明図である。
【図4】図1の命令デコーダがデコードする命令の命令コード、及びそれぞれに対応する命令名の他の例を示す説明図である。
【図5】図1の情報処理装置が行う処理の内容の例を説明する説明図である。
【図6】第1の実施形態の第1の変形例に係る情報処理装置のブロック図である。
【図7】第1の実施形態の第2の変形例に係る情報処理装置のブロック図である。
【図8】第1の実施形態の第3の変形例に係る情報処理装置のブロック図である。
【図9】図8のデコード部がデコードする命令の命令コード、及びそれぞれに対応する命令名の例を示す説明図である。
【図10】第1の実施形態の第4の変形例に係る情報処理装置のブロック図である。
【図11】本発明の第2の実施形態に係る情報処理方法の処理の流れを示すフローチャートである。
【図12】第3の実施形態において、処理Bを実行するプログラムに用いる命令の命令コード、及びそれぞれに対応する命令名の例を示す説明図である。
【図13】従来のDSPにおける命令デコードに係る部分の構成を示したブロック図である。
【符号の説明】
11 プログラムカウンタ
12,61 メモリ
13 命令デコーダ
14 演算器(被制御手段)
15 タイマ
16 比較部
17 レジスタ
21,31 命令デコーダ(第2の命令デコーダ)
23,33 命令デコーダ(第1の命令デコーダ)
100,200,300,400,500 情報処理装置
Claims (4)
- 記憶手段に格納されたプログラムを読み出して実行する情報処理装置であって、
前記プログラムを読み出すためのアドレスを前記記憶手段に出力するプログラムカウンタと、
前記プログラム中の命令を構成するフィールドのうち少なくともいずれかにおいて、使用されるコードの種類が所定の数以下に限定される期間を示す制御信号に応じて、前記記憶手段から読み出した命令をデコードする命令デコーダと、
前記命令デコーダが出力するデコード結果に応じた処理を行う被制御手段とを備え、
前記命令デコーダは、
使用されるコードの種類が限定されるフィールドのビットの値が変化する回数が少なくなるように設定された、当該フィールドのコードとデコード結果との関係に従ってデコードを行うように、前記制御信号に応じて回路構成の変更を行うリコンフィギュアラブル回路を有し、かつ、前記プログラムの実行が開始されてからの時間がカウントされて得られたカウント値が、前記期間の開始時刻及び終了時刻に相当する値になったことを示す信号を、前記制御信号として用いるものである
情報処理装置。 - 記憶手段に格納されたプログラムを読み出して実行する情報処理方法であって、
前記プログラムを読み出すためのアドレスを前記記憶手段に出力するステップと、
前記プログラム中の命令を構成するフィールドのうち少なくともいずれかにおいて、使用されるコードの種類が所定の数以下に限定される期間を示す制御信号に応じて、前記記憶手段から読み出した命令をデコードするステップと、
前記命令をデコードして得られたデコード結果に応じた処理を行うステップと、
前記プログラムの実行が開始されてからの時間をカウントし、得られたカウント値が前記期間の開始時刻及び終了時刻に相当する値になったことを示す信号を、前記制御信号として求めるステップとを備え、
前記命令をデコードするステップでは、
前記制御信号に応じてリコンフィギュアラブル回路の回路構成の変更を行って、使用されるコードの種類が限定されるフィールドのビットの値が変化する回数が少なくなるように設定された、当該フィールドのコードとデコード結果との関係に従ってデコードを行う
情報処理方法。 - リコンフィギュアラブル回路を有する命令デコーダを備えた情報処理装置でプログラムを実行させるために、プログラムをコード化する情報処理方法であって、
プログラム実行をシミュレートし、実行される命令の履歴を求めるステップと、
前記履歴に基づき、前記プログラムにおいて、命令を構成するフィールドのうち少なくともいずれかに関して、使用されるコードの種類が所定の数以下に限定されるルーチンを抽出するステップと、
前記ルーチンの前後に、前記リコンフィギュアラブル回路の回路構成を変更させる命令を挿入するステップと、
使用されるコードの種類が限定されるフィールドのビットの値が変化する回数が少なくなるように、前記ルーチンにおけるコードの割り当てを行うステップと、
前記命令を挿入するステップで得られたプログラムを、前記ルーチンにおいては前記割り当てに従ってコードに変換するステップとを備えた
情報処理方法。 - 請求項3に記載の情報処理方法において、
前記コードの割り当てを行うステップでは、
前記ルーチンでの命令の実行順序に基づき、コードの割り当てを行う
ことを特徴とする情報処理方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001235378A JP3578735B2 (ja) | 2001-08-02 | 2001-08-02 | 情報処理装置及び情報処理方法 |
PCT/JP2002/007881 WO2003014918A1 (fr) | 2001-08-02 | 2002-08-01 | Appareil et procede de traitement d'informations |
CNB028151569A CN100543668C (zh) | 2001-08-02 | 2002-08-01 | 信息处理装置及信息处理方法 |
US10/485,547 US7058792B2 (en) | 2001-08-02 | 2002-08-01 | Information processing apparatus and information processing method |
US11/304,818 US7287149B2 (en) | 2001-08-02 | 2005-12-16 | Inserting decoder reconfiguration instruction for routine with limited number of instruction types recoded for reduced bit changes |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001235378A JP3578735B2 (ja) | 2001-08-02 | 2001-08-02 | 情報処理装置及び情報処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003044271A JP2003044271A (ja) | 2003-02-14 |
JP3578735B2 true JP3578735B2 (ja) | 2004-10-20 |
Family
ID=19066835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001235378A Expired - Fee Related JP3578735B2 (ja) | 2001-08-02 | 2001-08-02 | 情報処理装置及び情報処理方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US7058792B2 (ja) |
JP (1) | JP3578735B2 (ja) |
CN (1) | CN100543668C (ja) |
WO (1) | WO2003014918A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4412905B2 (ja) * | 2003-01-28 | 2010-02-10 | パナソニック株式会社 | 低電力動作制御装置、およびプログラム最適化装置 |
GB2409061B (en) * | 2003-12-09 | 2006-09-13 | Advanced Risc Mach Ltd | Table lookup operation within a data processing system |
US7480809B2 (en) * | 2004-10-15 | 2009-01-20 | Genesis Microchip Inc. | Reducing power consumption of a microprocessor |
JP5183279B2 (ja) * | 2008-04-03 | 2013-04-17 | ルネサスエレクトロニクス株式会社 | 情報処理装置、命令コードの暗号化方法および暗号化命令コードの復号化方法 |
US20110216247A1 (en) * | 2008-05-06 | 2011-09-08 | Hideshi Nishida | Signal processing device, signal processing method, integrated circuit for signal processing, and television receiver |
KR20110044855A (ko) * | 2008-06-26 | 2011-05-02 | 캠브리언 에너지 디벨롭먼트 엘엘씨 | 비연료 유체 분사에 의해 엔진을 작동시키기 위한 장치 및 방법 |
US8988536B2 (en) * | 2010-12-23 | 2015-03-24 | Samsung Electronics Co., Ltd. | Image processing circuit, method of operation thereof, and digital camera including same |
CN108509013B (zh) * | 2017-02-28 | 2020-06-26 | 华为技术有限公司 | 一种处理指令的方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63111533A (ja) * | 1986-10-29 | 1988-05-16 | Nec Corp | ワンチツプマイクロコンピユ−タ |
JPH06149563A (ja) | 1992-11-05 | 1994-05-27 | Toshiba Corp | データ処理装置 |
JPH07306782A (ja) * | 1994-05-12 | 1995-11-21 | Matsushita Electric Ind Co Ltd | プロセッサ制御装置及びプロセッサ制御方法 |
GB2307072B (en) * | 1994-06-10 | 1998-05-13 | Advanced Risc Mach Ltd | Interoperability with multiple instruction sets |
JP3335782B2 (ja) * | 1994-09-30 | 2002-10-21 | 株式会社東芝 | 情報処理装置 |
US5790874A (en) * | 1994-09-30 | 1998-08-04 | Kabushiki Kaisha Toshiba | Information processing apparatus for reducing power consumption by minimizing hamming distance between consecutive instruction |
JPH09330219A (ja) * | 1996-06-12 | 1997-12-22 | Matsushita Electric Ind Co Ltd | 命令解読器切替型プロセッサ及び翻訳装置 |
JP3340343B2 (ja) | 1997-03-13 | 2002-11-05 | 株式会社東芝 | プロセッサ及び情報処理装置 |
JP3781519B2 (ja) * | 1997-08-20 | 2006-05-31 | 富士通株式会社 | プロセッサの命令制御機構 |
DE69838374T2 (de) * | 1997-12-23 | 2008-05-29 | Texas Instruments Inc., Dallas | Prozessor und Verfahren zum Verringern von dessen Energieverbrauch |
JP2001005675A (ja) * | 1999-06-21 | 2001-01-12 | Matsushita Electric Ind Co Ltd | プログラム変換装置及びプロセッサ |
JP2001125785A (ja) * | 1999-10-25 | 2001-05-11 | Matsushita Electric Ind Co Ltd | 命令コード割り当て方法及び命令解読装置 |
-
2001
- 2001-08-02 JP JP2001235378A patent/JP3578735B2/ja not_active Expired - Fee Related
-
2002
- 2002-08-01 US US10/485,547 patent/US7058792B2/en not_active Expired - Fee Related
- 2002-08-01 CN CNB028151569A patent/CN100543668C/zh not_active Expired - Fee Related
- 2002-08-01 WO PCT/JP2002/007881 patent/WO2003014918A1/ja active Application Filing
-
2005
- 2005-12-16 US US11/304,818 patent/US7287149B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003044271A (ja) | 2003-02-14 |
CN100543668C (zh) | 2009-09-23 |
US20060095727A1 (en) | 2006-05-04 |
WO2003014918A1 (fr) | 2003-02-20 |
US20040172547A1 (en) | 2004-09-02 |
US7058792B2 (en) | 2006-06-06 |
CN1537268A (zh) | 2004-10-13 |
US7287149B2 (en) | 2007-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4986431B2 (ja) | プロセッサ | |
US7287149B2 (en) | Inserting decoder reconfiguration instruction for routine with limited number of instruction types recoded for reduced bit changes | |
US4954943A (en) | Data processing system | |
JPH09512652A (ja) | 多重命令セットによるデータ処理 | |
US7546442B1 (en) | Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions | |
KR100983135B1 (ko) | 패킷의 의존성 명령을 그룹핑하여 실행하는 프로세서 및 방법 | |
JP3781519B2 (ja) | プロセッサの命令制御機構 | |
US7509478B1 (en) | Program memory space expansion for particular processor instructions | |
JP3570287B2 (ja) | マイクロコンピュータ | |
JP3472504B2 (ja) | 命令解読方法、命令解読装置及びデータ処理装置 | |
US20010023481A1 (en) | Processor that executes control signals included in operand section of control instruction | |
JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
JP3901670B2 (ja) | データ処理装置 | |
US5463747A (en) | Microprogram data processor processing operand address calculation and instruction execution with common hardware | |
US20040162965A1 (en) | Information processing unit | |
JP2001125785A (ja) | 命令コード割り当て方法及び命令解読装置 | |
JP2002297376A (ja) | プログラマブルコントローラ | |
US20050108698A1 (en) | Assembler capable of reducing size of object code, and processor for executing the object code | |
JP2000099329A (ja) | プロセッサ | |
KR100233289B1 (ko) | 레지스터 파일의 데이터 디펜던시 체크를 위한 장치 | |
JP3753572B2 (ja) | シミュレーションシステムおよび命令シミュレーション方法 | |
JP2004005738A5 (ja) | ||
JP2006092158A (ja) | デジタル信号処理回路 | |
JPH0962504A (ja) | 命令処理装置 | |
JPH10111704A (ja) | プログラマブルコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040224 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040426 |
|
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: 20040706 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040713 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070723 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080723 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090723 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090723 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100723 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110723 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110723 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120723 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |