JP4572480B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP4572480B2 JP4572480B2 JP2001108778A JP2001108778A JP4572480B2 JP 4572480 B2 JP4572480 B2 JP 4572480B2 JP 2001108778 A JP2001108778 A JP 2001108778A JP 2001108778 A JP2001108778 A JP 2001108778A JP 4572480 B2 JP4572480 B2 JP 4572480B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instruction code
- address
- encoded
- code
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30156—Special purpose encoding of instructions, e.g. Gray coding
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の属する技術分野】
本発明は、命令実行処理方法及び情報処理装置及び記録媒体に関する。詳しくは、予め符号化された命令コードを所定の記憶/記録手段に格納し、記憶/記録手段から予め符号化されている命令コードを読み出して復号化し、復号化した命令コードを解読して所定の命令を実行する命令実行処理方法及び情報処理装置及び記録媒体に関する。
【0002】
【従来の技術】
従来技術では、情報処理装置のCPUを動作させるプログラムを構成する命令コードは、命令コード自体を区別する部分と、その命令コードに必要なレジスタやメモリアドレスのそれぞれの表現に必要なビット数を割り当てるという方法で決定されている。
【0003】
例えば、図6の示すように、情報処理装置のCPUを動作させるためのプログラムを構成する命令コードは、メモリ内に格納された命令コードの番地を表すバイトアドレス(H’0〜H’16)と、命令コードの境界を示すビットアドレスと、複数の命令コードによる一連処理を示すラベルと、各処理内容を表した命令と、命令に対応する命令コードとからなっている。尚、各命令コードが格納されたメモリの開始アドレスは、バイト毎の境界になっており、命令コードのデータ長は、全てバイト単位になっている。
【0004】
ラベル「_aaa:」は、(MOV.W L003,R4)、(MOV.W L003+2,R5)、(BRA L002)、(NOP)の4つの命令からなる一連の処理であり、各命令の命令コードは、バイトアドレス「H’0」から2バイト毎に格納され、命令(MOV.W L003,R4)は、バイトアドレス「H’0」から命令コード(B’1001010000001000)、命令(MOV.W L003+2,R5)は、バイトアドレス「H’2」から命令コード(B’1001010100001000)、命令(BRA L002)は、バイトアドレス「H’4」から命令コード(B’1010000000000010)、命令(NOP)は、バイトアドレス「H’6」から命令コード(B’0000000000001001)が2バイト毎に順次格納される。各命令コードの開始アドレスは、それぞれバイト毎の境界となっているので最初のbit0から始まり、「H’0」となる。
【0005】
ラベル「L001:」は、(CMP/GE R5,R4)、(ADD #−1,R4)の2つの命令からなる一連の処理であり、各命令の命令コードは、バイトアドレス「H’8」から2バイト毎に格納され、命令(CMP/GE R5,R4)は、バイトアドレス「H’8」から命令コード(B’0011010001010011)、命令(ADD #−1,R4)は、バイトアドレス「H’a」から命令コード(B’0111010011111111)が2バイト毎に順次格納される。各命令コードの開始アドレスは、前述のラベル「_aaa:」と同じく全ての命令コードがバイト毎に格納されているので最初のbit0から始まり、「H’0」となる。
【0006】
ラベル「L002:」は、(TST R4,R4)、(BF L001)、(RTS)、(NOP)の4つの命令からなる一連の処理であり、各命令の命令コードは、バイトアドレス「H’c」から2バイト毎に格納され、命令(TST R4,R4)は、バイトアドレス「H’c」から命令コード(B’0010010001001000)、命令(BF L001)は、バイトアドレス「H’e」から命令コード(B’1000101111111011)、命令(RTS)は、バイトアドレス「H’10」から命令コード(B’0000000000001011)、命令(NOP)は、バイトアドレス「H’12」から命令コード(B’0000000000001001)が2バイト毎に順次格納される。各命令コードの開始アドレスは、前述の2つのラベル同様に、全ての命令コードがバイト毎に格納されているので最初のbit0から始まり、「H’0」となる。
【0007】
ラベル「L003:」は、(.DATA.W H’0400)、(.DATA.W H’0200)のからなる2つのデータであり、各データを示す命令コードは、バイトアドレス「H’14」から2バイト毎に格納され、(.DATA.W H’0400)は、バイトアドレス「H’14」から命令コード(B’0000010000000000)、(.DATA.W H’0200)は、バイトアドレス「H’16」から命令コード(B’0000001000000000)が2バイト毎に順次格納される。各データの開始アドレスも前述の3つのラベルと同じく、全ての命令コードがバイト毎に格納されているので最初のbit0から始まり、「H’0」となる。
【0008】
このような命令コードによって構成されるプログラムをCPUが実行する実行過程を図7に示す。まず、CPUが所定のアドレス情報の生成を行ってメモリに送り、メモリが指定されたアドレス情報に従い、所定量の命令コード又はデータを取り出してCPUに送る[フェッチ](ST200、201)。CPUは、メモリから(指定したアドレス)の命令コードのデコードを行い、内部の制御信号を生成し、[デコード](ST202)、CPU内の各部はこの制御信号に従いデコードされた命令コードを実行して[実行](ST203)、レジスタに実行結果を書き戻す[ライトバック](ST204)。この[フェッチ]→[デコード]→[実行]→[ライトバック](ST200〜ST204)を繰り返すことによりプログラムが実行される。
【0009】
【発明が解決しようとする課題】
しかしながら、図6に示すように、従来の方法では、全ての命令コードがバイト単位になっており、所定のバイト毎に命令コードを読み込んで解読を行い、命令を実行すればよいが、データ長(ビット数)が同じであるため、命令コードの読み込みや、命令を解読して実行する時に、CPUのキャッシュのヒット率が悪化する、読み込み及び解読/実行時の時間が遅くなってしまうという問題がある。
【0010】
従って、プログラムを構成する命令コードのコード長(ビット数)を低減し、命令コードの読み込みや解読/実行時間を短縮することに解決しなければならない課題を有する。
【0011】
【課題を解決するための手段】
前記課題を解決するため、本発明に係る命令実行処理方法及び情報処理装置及び記録媒体は次のような構成にすることである。
【0012】
(1)予め符号化された命令コードを所定の記憶/記録手段に格納し、該記憶/記録手段から前記予め符号化されている命令コードを読み出して復号化し、該復号化した命令コードを解読して所定の命令を実行することを特徴とする命令実行処理方法。
(2)前記命令コードの符号化は、ハフマン符号方式によることを特徴とする請求項1に記載の命令実行処理方法。
(3)前記命令コードの符号化は、算術符号方式によることを特徴とする請求項1に記載の命令実行処理方法。
【0013】
(4)動作を行うのに必要最低限且つ十分な命令コードを組み合わせて構成されたプログラムに従い動作する情報処理装置において、単一又は複数個の前記命令コードは、予め所定の方式に基づいて符号化されていると共に、この符号化されている命令コードで用いるデータは1バイトの整数倍で形成されていることを特徴とする情報処理装置。
(5)前記命令コードの符号化は、ハフマン符号方式によることを特徴とする請求項4に記載の情報処理装置。
(6)ハフマン符号方式で符号化された前記命令コードが分岐命令である場合、該分岐命令の分岐アドレスで指定する分岐先のアドレスは、1バイトの整数倍の位置から開始することを特徴とする請求項4に記載の情報処理装置。
(7)ハフマン符号方式で符号化された前記命令コードが分岐命令である場合、分岐先のアドレス位置をビット単位で示すことを特徴とする請求項4に記載の情報処理装置。
(8)ハフマン符号方式で符号化された前記命令コードのコード長は、前記プログラムにおける命令コードの出現回数に依存することを特徴とする請求項4に記載の情報処理装置。
(9)ハフマン符号方式で符号化された前記命令コードのコード長は、前記プログラムにおける命令コードの実行回数に依存することを特徴とする請求項4に記載の情報処理装置。
(10)前記命令コードの符号化は、算術符号方式によることを特徴とする請求項4に記載の情報処理装置。
(11)算術符号方式により符号化された前記命令コードが分岐命令である場合、該分岐命令の分岐アドレスで指定する分岐先のアドレスは、1ビットの整数倍の位置から開始することを特徴とする請求項4に記載の情報処理装置。
(12)算術符号方式により符号化された前記命令コードが分岐命令である場合、分岐先のアドレス位置をビット単位で示すことを特徴とする請求項4に記載の情報処理装置。
(13)算術符号方式で符号化された前記命令コードのコード長は、前記プログラムにおける命令コードの出現回数に依存することを特徴とする請求項4に記載の情報処理装置。
(14)算術符号方式で符号化された前記命令コードのコード長は、前記プログラムにおける命令コードの実行回数に依存することを特徴とする請求項4に記載の情報処理装置。
【0014】
(15)動作を行うのに必要最低限且つ十分な命令コードを組み合わせて構成されたプログラムが記録された記録媒体であって、単一又は複数個の前記命令コードは、予め所定の方式に基づいて符号化されていると共に、この符号化されている命令コードで用いるデータは1バイトの整数倍で形成されているプログラムが記録されていることを特徴とする記録媒体。
(16)前記命令コードの符号化は、ハフマン符号方式によることを特徴とする請求項15に記載の記録媒体。
(17)ハフマン符号方式で符号化された前記命令コードが分岐命令である場合、該分岐命令の分岐アドレスで指定する分岐先のアドレスは、1バイトの整数倍の位置から開始することを特徴とする請求項15に記載の記録媒体。
(18)ハフマン符号方式で符号化された前記命令コードが分岐命令である場合、分岐先のアドレス位置をビット単位で示すことを特徴とする請求項15に記載の記録媒体。
(19)ハフマン符号方式で符号化された前記命令コードのコード長は、前記プログラムにおける命令コードの出現回数に依存することを特徴とする請求項15に記載の記録媒体。
(20)ハフマン符号方式で符号化された前記命令コードのコード長は、前記プログラムにおける命令コードの実行回数に依存することを特徴とする請求項15に記載の記録媒体。
(21)前記命令コードの符号化は、算術符号方式によることを特徴とする請求項15に記載の記録媒体。
(22)算術符号方式により符号化された前記命令コードが分岐命令である場合、該分岐命令の分岐アドレスで指定する分岐先のアドレスは、1ビットの整数倍の位置から開始することを特徴とする請求項15に記載の記録媒体。
(23)算術符号方式により符号化された前記命令コードが分岐命令である場合、分岐先のアドレス位置をビット単位で示すことを特徴とする請求項22に記載の記録媒体。
(24)算術符号方式で符号化された前記命令コードのコード長は、前記プログラムにおける命令コードの出現回数に依存することを特徴とする請求項15に記載の記録媒体。
(25)算術符号方式で符号化された前記命令コードのコード長は、前記プログラムにおける命令コードの実行回数に依存することを特徴とする請求項15に記載の記録媒体。
【0015】
このような命令実行処理方法及び情報処理装置及び記録媒体を用いることにより、予めハフマン符号方式や算術符号方式により符号化され、コード長が短縮された命令コードによって構成されたプログラム従って命令実行処理が行われるので、命令コードの読み込み及び解読/実行時間が短縮される。
【0016】
【発明の実施の形態】
次に、本発明に係る命令実行処理方法及び情報処理装置及び記録媒体の実施の形態を図面を参照して説明する。
【0017】
図1に示す命令コード群(プログラム)は、従来技術の説明で図6に示した命令コードに対して、予めハフマン符号化(又は算術符号化)を行った場合の命令コードであり、メモリ200内の命令コードを格納した番地を示すバイトアドレス(H’0〜H’a)と、命令コードの境界を示すビットアドレスと、複数の命令コードによる一連処理単位を示すラベルと、各処理を表す命令と、この命令に対応するハフマン符号化(又は算術符号化)された命令コードとからなっている。
【0018】
又、図2は、図1に示した命令コードが予め符号化され、メモリに格納された状態におけるビット配列を示したものであり、図1に示されている命令に順次1〜13の命令番号を付与した対象表(図2(b))と、この対照表の命令番号と、バイトアドレス(H’0〜H’a)における命令コードの各ビットの格納状態と命令コードの境界を示した配置表(図2(a))である。
【0019】
このような図1と図2を参照しながら、予めハフマン符号化(又は算術符号化)された命令コードのメモリ内の配置についての説明を行う。
【0020】
ラベル「_aaa:」は、(MOV.W L003,R4)、(MOV.W L003+2,R5)、(BRA L002)、(NOP)の4つの命令からなり、命令(MOV.W L003,R4)で、ラベル「LOO3:」に格納されているデータ(.DATA.W H’0400)をレジスタR4に格納し、命令(MOV.W L003+2,R5)でラベル「L003:」のバイトアドレスを2バイトすすめ、格納されているデータ(.DATA.W H’0200)をレジスタR5を格納し、命令(BRA)は、ラベル「L002:」に分岐する分岐命令で、命令(NOP)でラベル「_aaa:]終了となる一連の処理であり、各命令コードは、バイトアドレスH’0、H’1の順に格納される。
【0021】
命令(MOV.W L003,R4)は、バイトアドレス「H’0」のbit0〜bit3に命令コード(B’1001)として格納され、命令コードの開始アドレスの境界を示すビットアドレスは、バイトアドレス「H’0」の最初のbit0から始まるので、「H’0」となる。命令(MOV.W L003+2,R5)は、引き続いてバイトアドレス「H’0」のbit4〜bit7に命令コード(B’1010)として格納され、命令コードの開始アドレスの境界を示すビットアドレスはバイトアドレス「H’0」の4ビット目から始まるので「H’4」となる。命令(BRA L002)は、バイトアドレス「H’1」のbit0〜bit4に命令コード(B’11101)として格納され、命令コードの開始アドレスの境界を示すビットアドレスは、バイトアドレス「H’1」の最初のbit0から始まるので、「H’0」となる。命令(NOP)は、同じバイトアドレス「H’1」のbit5〜bit7及びバイトアドレス「H’2」のbit0に命令コード(B’0001)として格納され、命令コードの開始アドレスの境界を示すビットアドレスは、バイトアドレス「H’1」の5ビット目から始まるので、「H’5」となる。
【0022】
ラベル「L001:」は、(CMP/GE R5,R4)、(ADD #−1,R4)の2つの命令からなり、命令(CMP/GE R5,R4)で、レジスタR5とレジスタR4に格納されたデータを比較し、比較結果に基づいて命令(ADD #−1,R4)で、レジスタR4の値から演算(−1)を行い、この演算結果をレジスタR4に格納する一連の処理であり、命令コードは、バイトアドレスH’2へ順に格納される。
【0023】
命令(CMP/GE R5,R4)は、前述の命令(NOP)に引き続いて、バイトアドレス「H’2」のbit1〜bit4へ命令コード(B’0011)として格納され、命令コードの開始アドレスの境界を示すビットアドレスは、バイトアドレス「H’2」の1ビット目から始まるので、「H’1」となる。命令(ADD #−1,R4)は、同じくバイトアドレス「H’2」へ命令コード(B’01110100)として格納される。命令コードの開始アドレスの境界を示すビットアドレスは、バイトアドレス「H’2」の5ビット目から始まるので、「H’5」となる。
【0024】
ラベル「L002:」は、(TST R4,R4)、(BF L001)、(RTS)、(NOP)の4つの命令からなり、 命令(TST R4,R4)は、アドレスR4に格納された値の真偽を行い、命令(BF L001)は、命令(TST R4,R4)が”偽”の場合にラベル「L001:」に分岐し、命令(RTS)は、命令(TST R4,R4)が”真”の場合に「L002:」を抜ける処理を行い、命令(NOP)で処理が終了する一連の処理であり、命令コードは、バイトアドレス「H’3」から順に格納される。
【0025】
命令(TST R4,R4)は、前述の命令(ADD #−1,R4)に引き続いて、バイトアドレス「H’3」のbit5〜bit7及びバイトアドレス「H’4」のbit0〜bit5に命令コード(B’001001000)として格納され、命令コードの開始アドレスの境界を示すビットアドレスは、バイトアドレス「H’3」の5ビット目から始まるので、「H’5」となる。命令(BFL001)は、バイトアドレス「H’4」のbit6〜bit7及びバイトアドレス「H’5」のbit0〜bit6に命令コード(B’100010111)として格納され、命令コードの開始アドレスの境界を示すビットアドレスは、バイトアドレス「H’4」の6ビット目から始まるので「H’6」となる。命令(RTS)は、バイトアドレス「H’5」のbit7及び「H’6」のbit0〜bit7、「H’7」のbit0〜bit3に命令コード(B’100000000000)として格納され、命令コードの開始アドレスの境界を示すビットアドレスは、バイトアドレス「H’5」の7ビット目から始まるので「H’7」となる。命令(NOP)は、バイトアドレス「H’7」のbit3〜bit6に命令コード(B’0001)として格納され、命令コードの開始アドレスの境界を示すビットアドレスは、バイトアドレス「H’7」の3ビット目から始まるので「H’3」となる。ここで、バイトアドレス「H’7」のbit7に、命令番号11の境界調整データ(図2(b)参照)として、1ビットの調整ビットを挿入し、以後続くプログラムで用いるデータとの境界とする。
【0026】
ラベル「L003:」は、プログラム内で用いられるデータ(.DATA.WH’0400)、(.DATA.W H’0200)の2つからなり、プログハフマン符号化(又は算術符号化)等の符号化処理は行われずにメモリ200に格納する。(.DATA.W H’0400)は、バイトアドレス「H’8」のbit0〜bit7及びバイトアドレス「H’9」のbit0〜bit7に命令コード(B’0000010000000000)として格納し、命令コードの開始アドレスの境界を示すビットアドレスは、バイトアドレス「H’8」の最初のbit0から始まるので、「H’0」となる。(.DATA.W H’0200)は、バイトアドレス「H’a」のbit0〜bit7及び「H’b」のbit0〜bit7に命令コード(B’0000001000000000)として格納し、命令コードの開始アドレスの境界を示すビットアドレスは、バイトアドレス「H’a」の最初のbit0から始まるので、「H’0」となる。
【0027】
各命令コードの開始アドレスは必ずしもバイト境界ではなく、命令コード長もバイト単位であるとは限らない。又、命令コードのハフマン符号化(又は算術符号化)は、プログラム内における出現頻度や実行回数に基づいて(依存して)符号化を行う場合もある。尚、命令コードが用いるデータは符号化を行わず、従来と同様にバイトの整数倍のコード長であり、また、開始アドレスもバイトの整数倍のアドレスで開始する。又、分岐処理を指示する命令コードによって指定される分岐先のアドレスは、1ビットの整数倍のアドレスから開始される。又、分岐先のアドレス位置はビット単位で示されているので、分岐先命令コードに直接分岐する。
【0028】
次に、このように予め符号化された命令コードによって動作する情報処理装置について説明する。
【0029】
図3は、情報処理装置のCPUとメモリの構成を簡略化したブロック図であり、制御部110と、データパス120と、外部インターフェイス130とからなるCPU100と、予めハフマン符号化(又は算術符号化)された命令(コード)210及びデータ220を記憶しているメモリ200とから構成されており、CPU100とメモリ200は、アドレスバス300とデータバス400で接続されている。
【0030】
CPU100の制御部110は、メモリ200に格納されている命令コード210及びデータ220を読み出すためのアドレス情報を生成するアドレス生成器111と、アドレス生成器112からのアドレス情報や外部バスインターフェイス130を介してメモリ200から送られてくるハフマン符号化(又は算術符号化)された命令コード210を復号化して命令デコーダ113や外部バスインターフェイス130へ送る復号器112と、復号器112で復号された命令コード210を解読してアドレス生成器111やデータパス120へ送る命令デコーダ113とから構成されている。
【0031】
CPU100のデータパス120は、制御部110の命令デコーダ113からの指示に従い、汎用レジスタ122に一時格納してあるデータ220等の演算を行う演算器121と、演算器121を介して送られてくる命令デコーダ113からの指示に従い、外部バスインターフェイス130(データバス400)を介してメモリ200と演算器121との間のデータ220等のやり取りや、演算器121で演算されたデータ220等の一時格納を行う複数の汎用レジスタ122とから構成されている。
【0032】
外部パスインターフェイス部130は、CPU100の制御部110やデータパス120とメモリ200との間でアドレスバス300及びデータバス400を介してやり取りされる命令コード210やデータ220等の入出力制御を行う。
【0033】
メモリ200は、所定のアドレスに予めハフマン符号化(又は算術符号化)された命令コード210とデータ220とが格納されており、CPU100の外部インターフェイス130とアドレスバス300及びデータバス400と接続され、CPU100の指示に従ってハフマン符号化(又は算術符号化)された命令コード210やデータ220を送り、CPU100からの演算データを記憶する。
尚、ハフマン符号化(又は算術符号化)された命令コード210やデータ220は、情報処理装置が読みとり可能な記録媒体に記録しておき、この記録媒体から情報処理装置のRAM等に命令コード210やデータ220を読み出して処理を行うようにしても良い。
【0034】
このようなCPU100とメモリ200を備えた情報処理装置により予めハフマン符号化(又は算術符号化)した命令コードに従い命令を実行した場合の実行過程を図4を用いて説明する。
【0035】
まず、アドレス生成器111は、メモリ200に格納されている予めハフマン符号化(又は算術符号化)された命令コード210やデータ220を読み出す為のアドレス情報の生成を行い、生成したアドレス情報を復号器112に送る。復号器112は、アドレス生成器111からのアドレス情報を外部バスインターフェイス130→アドレスバス300を介し、メモリ200に送る(ST100)。
【0036】
メモリ200は、アドレスバス300を介してCPU100から送られてくるアドレス情報で指定されているメモリ200内のアドレスにある予めハフマン符号化(又は算術符号化)された命令コード210を取り出し、データバス400を介してCPU100へ送る(ST101)。
【0037】
CPU100の復号器112は、データバス400→外部バスインターフェイス130を介して送られてくるハフマン符号化(又は算術符号化)された命令コード210を復号化し、命令デコーダ113に送る(ST103)。命令デコーダ113は、復号化された命令コード210を解読し、CPU100の各部が解読された命令コード210に従ってそれぞれの処理を実行し(ST104)、実行結果を所定の汎用レジスタに書き戻す(ST105)。これを順次繰り返すことにより所定の処理を実行する(ST100〜ST105)。
【0038】
例えば、メモリ200に格納されているデータ220に対して、ある演算処理を行う場合は、まず、制御部110において、アドレス生成器111が、演算処理するデータ220をCPU100に取り出すための予め符号化された命令コード210が格納されているメモリ200のアドレス情報を生成する。生成されたアドレス情報は、復号器112→外部バスインターフェイス130→アドレスバス300を介してメモリ200に送られる。
【0039】
メモリ200は、CPU100からのアドレス情報に従い、メモリ200内のアドレスにあるデータ220を取り出し、CPU100に送る。尚、データ220は従来と同様に符号化されていない(1バイトの整数倍のデータ長)。CPU100は、メモリ200からのデータ220をデータバス400→外部バスインターフェイス130を介してデータパス120の汎用レジスタ122に格納する。
【0040】
続いて、CPU100は、制御部110のアドレス生成器111により、演算処理の実行命令となる予めハフマン符号化(又は算術符号化)された命令コード210を取り出すため、この命令コード210が格納されているメモリ200のアドレス情報を生成する。生成されたアドレス情報は、復号器112→外部バスインターフェイス130→アドレスバス300を介してメモリ200に送られる。メモリ200は、CPU100からのアドレス情報に従い、メモリ200内のアドレスにある予めハフマン符号化(又は算術符号化)された命令コード210(演算実行命令)を取り出し、CPU100に送る。
【0041】
CPU100は、メモリ200からの命令コード210(演算実行命令)をデータバス400→外部バスインターフェイス130を介して制御部10の復号器112に取り込み、復号化を行い、命令デコーダ113に送る。命令デコーダ113は、復号化された命令コード210’を解読する。解読された命令コード210’=演算処理の実行命令に従い、命令デコーダ113がデータパス120の演算器121に演算実行要求を送る。演算器121は、命令デコーダ113からの演算実行要求に従い汎用レジスタ122に格納されているデータ220に対して所定の演算を行い、その演算結果を再び汎用レジスタ122に格納する。
【0042】
このように、CPU100の制御部110が予め符号化された命令コード210やデータ220のアドレス情報を生成して、メモリ200に送り、メモリ200が指定されたアドレス情報に従って予めハフマン符号化(又は算術符号化)された命令コード210、データ220を取り出してCPU100に送り、CPU100が受け取った命令コード210を解読して、CPU100内の各部が解読された命令に従い所定の処理を実行するということを繰り返す。
【0043】
次に、このような符号化された命令コードで動作する情報処理装置500Aと情報処理装置500Bとがネットワーク600で接続されている場合について図5を用いて説明する。
【0044】
図5の情報処理装置500Aは、CPU510aと、このCPU520aとバス上に接続されているキーボード521aからの入力制御を行うキーボードIF520aと、データ処理の一時格納を行うRAM530a、各種制御情報が予め記録されているROM540aと、各種データを記録する記録媒体であるディスク550aの入出力を制御するディスクI/F551aと、ネットワーク600と接続し、入出力を制御するネットワークI/F560aと、キーボードI/F560aを介してCPU510aに指示/入力を行うキーボード521aと、ディスクI/F550aを介して各種データを記録するディスク551aとから構成される。
【0045】
一方、情報制御装置500Bは、情報制御装置500Aと同様に、CPU510bと、このCPU520bとバス上に接続されているキーボード521bからの入力制御を行うキーボードIF520bと、データ処理の一時格納を行うRAM530b、各種制御情報が予め記録されているROM540bと、各種データを記録する記録媒体であるディスク550bの入出力を制御するディスクI/F551bと、ネットワーク600と接続し、入出力を制御するネットワークI/F560bと、キーボードI/F560bを介してCPU510bに指示/入力を行うキーボード521bと、ディスクI/F550bを介して各種データを記録するディスク551bとから構成される。
【0046】
このような情報処理装置500Aと情報処理装置500Bとがネットワーク(通信回線)600を介して接続されている場合において、例えば、情報処理装置500のCPU510aが動作するための予めハフマン符号化(又は算術符号化)された命令コードで構成されたプログラムやデータは、、記録媒体であるディスク551aやROM540a等に格納されおり、このプログラムやデータをRAM530a等にコピーして実行すると同時に、ネットワーク600を介して、情報処理装置500Bの記録媒体ディスク551bやROM540bに送り、情報処理装置600が、このプログラムやデータをRAM530bに一時格納して、CPU510bにより情報処理装置500Aからのプログラムやデータを実行し、その実行結果を情報処理装置500Aに送るということも可能である。ネットワーク600を介して相互の情報処理装置がやり取りを行う場合でも予めハフマン符号化(又は算術符号化)された命令コードであればデータ量(ビット数)が少ないので伝送速度が速く、各装置内における命令コードの実行処理も速くなる。
【0047】
【発明の効果】
以上説明したように、CPUを動作させる為のプログラムの命令コードを予め符号化することによりデータ量を削減し、CPUの命令コードの読み込みにかかる時間や命令コードの解読にかかる時間を低減し、CPU実行速度の向上、即ち、情報処理装置内の命令伝達速度の向上を図ることができる。
【図面の簡単な説明】
【図1】本発明に係る情報処理装置を動作させるプログラムの命令コードの一例を示した説明図である。
【図2】本発明に係る情報処理装置を動作させるプログラムの命令コード(図1参照)のメモリ内におけるビット配置の一例を示した説明図である。
【図3】本発明に係る情報処理装置におけるCPU構成を略示的に示した構成図である。
【図4】本発明に係る情報処理装置の命令コードの実行処理過程示したフローチャートである。
【図5】本発明に係る情報処理装置間でネットワークを介して命令コードを実行する場合のネットワーク構成を略示的に示した構成図である。
【図6】従来の情報処理装置を動作させるプログラムの命令コードの一例を示した説明図である。
【図7】従来の情報処理装置の命令コードの実行処理の過程示したフローチャートである。
【符号の説明】
100;CUP、110;制御部、111;アドレス生成器、112;復号器、113;命令デコーダ、120;データパス、121;演算器、122;汎用レジスタ、130;外部バスインターフェイス、200;メモリ、210;命令コード、220;データ、300;アドレスバス、400;データバス、500A;情報処理装置、510a;CPU、520a;キーボードI/F、521a;キーボード、530a;RAM、540a;ROM、550a;ディスクI/F、551a;ディスク、560a;ネットワークI/F、500B;情報処理装置、510b;CPU、520b;キーボードI/F、521b;キーボード、530b;RAM、540b;ROM、550b;ディスクI/F、551b;ディスク、560b;ネットワークI/F、600;ネットワーク
Claims (5)
- 動作を行うのに必要最低限且つ十分な命令コードを組み合わせて構成されたプログラムに従い動作する情報処理装置において、単一又は複数個の前記命令コードは、予め所定の方式に基づいて符号化されていると共に、この符号化されている命令コードで用いるデータは1バイトの整数倍で形成されており、
ハフマン符号方式で符号化された前記命令コードが分岐命令である場合、分岐先のアドレス位置をビット単位で示す、情報処理装置。 - ハフマン符号方式で符号化された前記命令コードのコード長は、前記プログラムにおける命令コードの出現回数に依存することを特徴とする請求項1に記載の情報処理装置。
- 動作を行うのに必要最低限且つ十分な命令コードを組み合わせて構成されたプログラムに従い動作する情報処理装置において、単一又は複数個の前記命令コードは、予め所定の方式に基づいて符号化されていると共に、この符号化されている命令コードで用いるデータは1バイトの整数倍で形成されており、
算術符号方式により符号化された前記命令コードが分岐命令である場合、該分岐命令の分岐アドレスで指定する分岐先のアドレスは、1ビットの整数倍の位置から開始する、情報処理装置。 - 動作を行うのに必要最低限且つ十分な命令コードを組み合わせて構成されたプログラムに従い動作する情報処理装置において、単一又は複数個の前記命令コードは、予め所定の方式に基づいて符号化されていると共に、この符号化されている命令コードで用いるデータは1バイトの整数倍で形成されており、
算術符号方式により符号化された前記命令コードが分岐命令である場合、分岐先のアドレス位置をビット単位で示す、情報処理装置。 - 算術符号方式で符号化された前記命令コードのコード長は、前記プログラムにおける命令コードの出現回数に依存することを特徴とする請求項4に記載の情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001108778A JP4572480B2 (ja) | 2001-04-06 | 2001-04-06 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001108778A JP4572480B2 (ja) | 2001-04-06 | 2001-04-06 | 情報処理装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002304290A JP2002304290A (ja) | 2002-10-18 |
JP2002304290A5 JP2002304290A5 (ja) | 2008-03-21 |
JP4572480B2 true JP4572480B2 (ja) | 2010-11-04 |
Family
ID=18960855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001108778A Expired - Fee Related JP4572480B2 (ja) | 2001-04-06 | 2001-04-06 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4572480B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007226615A (ja) * | 2006-02-24 | 2007-09-06 | Matsushita Electric Ind Co Ltd | 情報処理装置、圧縮プログラム生成方法及び情報処理システム |
JP5770534B2 (ja) * | 2011-06-01 | 2015-08-26 | 富士通株式会社 | プロセッサ、圧縮プログラム、圧縮装置、および圧縮方法 |
CN116347077A (zh) * | 2016-11-21 | 2023-06-27 | 松下电器(美国)知识产权公司 | 计算机可读介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08328817A (ja) * | 1995-05-29 | 1996-12-13 | Toshiba Corp | コンピュータシステム及びそれに用いるデータ伸張器 |
JPH10320172A (ja) * | 1997-05-15 | 1998-12-04 | Seiko Epson Corp | プログラム圧縮方法およびプログラム復号方法ならびにプログラム格納装置 |
JP2001043082A (ja) * | 1999-07-30 | 2001-02-16 | Nec Corp | 情報処理装置並びに命令コーディング方法及び命令デコーディング方法 |
-
2001
- 2001-04-06 JP JP2001108778A patent/JP4572480B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08328817A (ja) * | 1995-05-29 | 1996-12-13 | Toshiba Corp | コンピュータシステム及びそれに用いるデータ伸張器 |
JPH10320172A (ja) * | 1997-05-15 | 1998-12-04 | Seiko Epson Corp | プログラム圧縮方法およびプログラム復号方法ならびにプログラム格納装置 |
JP2001043082A (ja) * | 1999-07-30 | 2001-02-16 | Nec Corp | 情報処理装置並びに命令コーディング方法及び命令デコーディング方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2002304290A (ja) | 2002-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101266746B1 (ko) | 프로그램 가능한 crc 계산을 위한 명령어 집합 구조 | |
US7424665B2 (en) | Device and method for selecting opcode values with maximum hamming distance to minimize latency and buffering requirements | |
US6301702B1 (en) | Program execution apparatus and program conversion method | |
TWI514270B (zh) | 有效零基解壓縮 | |
JP5840741B2 (ja) | 複数のコード・タイプをプログラマブル復号する方法および装置 | |
US20140375483A1 (en) | High throughput decoding of variable length data symbols | |
JP4572480B2 (ja) | 情報処理装置 | |
US6003124A (en) | Electronic circuit and method for time saving use of a coprocessor | |
JP4574994B2 (ja) | メモリ外付けマイコン | |
EP1087534A1 (en) | Method and apparatus for calculation of cyclic redundancy check | |
CN113890540A (zh) | 一种并行加速lz77解码方法及装置 | |
JP3861452B2 (ja) | プロセッサおよびプログラム生成装置 | |
CN113839679B (zh) | 一种哈夫曼解码系统、方法、设备及计算机可读存储介质 | |
JP2011209859A (ja) | 情報処理装置 | |
JP7183657B2 (ja) | プロセッサ、情報処理方法、プログラム | |
JP2010517153A (ja) | 回避分岐を使わずに、短いレア・コード・シーケンスをホット・コードの中に埋め込む方法、システム、コンピュータ・プログラム | |
JP2812501B2 (ja) | パイプライン制御方式 | |
JPH0946240A (ja) | ビタビ復号機能を有するデータ処理装置 | |
KR100246642B1 (ko) | 디지털 브이씨알의 디포맷팅 및 가변길이 복호화장치 | |
JP2904236B2 (ja) | ハフマン符号解読装置 | |
JPH11203106A (ja) | プロセッサ | |
CN113608785A (zh) | 处理器核、处理器及指令处理方法 | |
JPH0128416B2 (ja) | ||
JPH08263263A (ja) | データ処理装置および圧縮プログラム作成装置 | |
JPH05250156A (ja) | Riscプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080129 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080129 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20091214 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100217 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100406 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100413 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100528 |
|
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: 20100720 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100802 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130827 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |