[go: up one dir, main page]

JP4002151B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP4002151B2
JP4002151B2 JP2002224074A JP2002224074A JP4002151B2 JP 4002151 B2 JP4002151 B2 JP 4002151B2 JP 2002224074 A JP2002224074 A JP 2002224074A JP 2002224074 A JP2002224074 A JP 2002224074A JP 4002151 B2 JP4002151 B2 JP 4002151B2
Authority
JP
Japan
Prior art keywords
instruction
configuration information
memory
configuration
predetermined
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
Application number
JP2002224074A
Other languages
English (en)
Other versions
JP2004062821A (ja
Inventor
佳生 廣瀬
美寿 齋藤
クーゼイン ヴァウター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002224074A priority Critical patent/JP4002151B2/ja
Priority to US10/627,709 priority patent/US7114061B2/en
Publication of JP2004062821A publication Critical patent/JP2004062821A/ja
Application granted granted Critical
Publication of JP4002151B2 publication Critical patent/JP4002151B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Stored Programmes (AREA)
  • Electronic Switches (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、パーソナルコンピュータや各種の通信機器、AV機器、あるいは家電などの情報処理装置、より詳細には当該装置に搭載されるプロセッサに関する。
【0002】
【従来の技術】
半導体の微細加工技術の進展とともに、LSIチップに搭載される回路規模が大きくなり、プロセッサ(CPU)とともにユーザ独自の回路を1チップに集積したシステムLSIの開発が従来から行われている。
【0003】
そして、ユーザのアプリケーションに適したシステムLSIを開発する方式として、(1)プロセッサとは独立にアプリケーションに応じた回路ブロックを搭載する方法と、(2)プロセッサ自体をアプリケーションに応じて修正する方法とがある。
【0004】
このうち、(1)はごく一般のシステムLSIの実現方法である。(2)はTensilca社やARC社のコンフィギャラブルプロセッサに見られる手法であり、ユーザのアプリケーションに適した専用命令(カスタム命令)を命令セットに追加するとともに、当該命令を実行するための演算器をプロセッサに追加するというものである。
【0005】
【発明が解決しようとする課題】
しかしながらプロセスの微細化に伴って、マスク代などのプロセスコストは非常に高額となる。そしてその費用にペイするのは、非常に大量に生産される一部のシステムLSIに限られてしまい、そうでないものはプロセス費用がチップ単価に大きく跳ね返る結果、経済的に引き合わないものになってしまう。すなわち、上記(1)(2)は大量生産されるシステムLSIについては有効であるが、少量しか必要とされないシステムLSIにはコスト的に適用できない。
【0006】
上記に対し近年になって、(3)プロセッサとFPGAとをチップ上に混載する方法が現れ、実際に製品化されてきている。この手法によると、ユーザのアプリケーションに応じた様々な回路をFPGAブロックで実現できるが、FPGAの面積効率は通常の回路に対して1/10〜1/20と低く、やはりコスト高になってしまうという問題点があった。さらにFPGA部分は動作周波数が高くできないので、性能を引き上げるためには並列化する必要があり、これに伴って回路規模が大きくなってしまうという問題点があった。
【0007】
この発明は上記従来技術による問題を解決するため、個々に回路を作り替えたり大規模な回路を搭載したりしなくても、ユーザが定義する様々な命令を高速に処理することが可能な情報処理装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、この発明にかかる情報処理装置は与えられた命令が所定の命令セット内の命令であるか否かを判定し、そうであると判定された場合には第1演算器(従来型の演算器)により当該命令を実行するとともに、そうでないと判定された場合には、第2演算器(本発明による演算器)に当該命令を実行するための回路構成を決定する構成情報を出力し、当該回路構成となった第2演算器により当該命令を実行することを特徴とする。
【0009】
また、この発明にかかる情報処理装置は、第2演算器を複数備えたことを特徴とする。
【0010】
また、この発明にかかる情報処理装置は、前記命令が所定の命令セット内の命令でないと判定された場合に、複数の構成情報の中から当該命令を実行するための回路構成を決定する構成情報を選択して出力することを特徴とする。
【0011】
また、この発明にかかる情報処理装置は、前記命令が所定の命令セット内の命令でないと判定された場合に、当該命令で指定されたアドレスおよび/または所定のレジスタに保持されたアドレスにもとづいて、複数の構成情報の中から当該命令を実行するための回路構成を決定する構成情報を選択して出力することを特徴とする。
【0012】
また、この発明にかかる情報処理装置は、前記構成情報が書き換え可能なメモリに保持されることを特徴とする。
【0013】
また、この発明にかかる情報処理装置は、前記構成情報がメモリのほか命令内の所定のフィールドあるいは所定のレジスタにも保持されることを特徴とする。
【0014】
また、この発明にかかる情報処理装置は、前記第2の演算器により命令が実行される都度、前記メモリに保持された構成情報にもとづいて、前記レジスタが値を更新することを特徴とする。
【0015】
また、この発明にかかる情報処理装置は、前記命令が所定の命令セット内の命令でないと判定された場合に、当該命令が前記メモリに前記構成情報をロードする命令であるか否かを判定し、そうであった場合には前記メモリに前記構成情報をロードする命令を複数発行して、第1演算器で各々の命令を実行することを特徴とする。
【0016】
また、この発明にかかる情報処理装置は、前記命令が所定の命令セット内の命令でないと判定された場合に、当該命令が前記メモリに前記構成情報をロードする命令であるか否かを判定し、そうであった場合には前記メモリが割り当てられた所定のレジスタに前記構成情報を転送する命令を発行して、第1演算器で当該命令を実行することを特徴とする。
【0017】
また、この発明にかかる情報処理装置は、前記構成情報中所定のビット位置にある情報のみを出力することを特徴とする。
【0018】
これらの発明により実現されるプロセッサを搭載した情報処理装置は、与えられた命令が命令セット内に用意されていないような命令(たとえば入力データ中のビットを入れ替える処理や、1の個数を係数する処理など)であっても、メモリから読み出した構成情報により自らの演算器の構成を変化させることで、高速に当該命令を実行できる。逆に言えば、適切な構成情報さえ用意してやれば、上記装置は原理上は無限の種類の命令を処理することができる。
【0019】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施の形態を詳細に説明する。
【0020】
(本発明の基本構成)
具体的な実施例の説明に入る前に、本発明の基本構成について説明する。図1は、従来技術によるプロセッサの内部構成を模式的に示すブロック図である。命令キャッシュ100に蓄積された命令は、命令フェッチ部101により読み出され、命令デコーダ102で解釈されて、その解釈に応じてレジスタファイル103や演算器104に信号が送られる。
【0021】
この演算器104は、プロセッサの設計時にあらかじめ定義された命令セット内の命令しか実行できない。そのため、一般的なプロセッサの命令セットには用意されていないような複雑な処理、たとえばデータ中のビットの入れ替えなどを行うには、命令セット内の命令をいくつか組み合わせてやる必要がある。そして、組み合わせる命令の個数が多いほど全体の処理時間も長くかかってしまう。
【0022】
もっとも逆に言えば、あらかじめ想定されていない処理でも1つのカスタム命令として定義し、当該命令を実行するような演算器をプロセッサに組み込むことができれば、処理を高速化することができる。
【0023】
図2は、本発明によるプロセッサの内部構成を模式的に示す説明図である。図示するように本発明によるプロセッサは、図1に示した従来技術のプロセッサに、その内部構成を外部からの構成情報の入力により変化させることができる第2演算器205、および当該構成情報を蓄積・供給するコンフィギュレーションメモリ206を追加した構成である。
【0024】
第2演算器205は、具体的には複数のAND回路、OR回路、加算器、セレクタ、マルチプレクサなどから構成されている。なお、図示する例では一個のみであるが、プロセッサ内に第2演算器205を複数設ける構成にしてもよい。この場合、演算器ごとにコンフィギュレーションメモリ206を用意してもよいが、複数の演算器でメモリを共有する、すなわち読み出しポートを第2演算器205の数だけ持たせるようにして、メモリの節約をはかることもできる。
【0025】
また、図3はコンフィギュレーションメモリ206の内容を模式的に示す説明図である。図示するように、コンフィギュレーションメモリ206には第2演算器205に供給するための複数の構成情報が蓄積されている。
【0026】
この構成情報とは具体的には、どのカスタム命令が入力したときは第2演算器205内のどのマルチプレクサで何番目のビットを選択すればよいか、などといったパラメータを定義したものである。1つのエントリに格納された構成情報が1つのカスタム命令に対応し、構成情報の読み出し元のアドレスを変化させる、すなわち供給する構成情報を変化させることで、第2演算器205に個々のカスタム命令に応じた処理を行わせることができる。
【0027】
(出力する構成情報の切り替え処理)
次に、出力する構成情報の切り替え処理について説明する。第2演算器205に供給する構成情報を切り替えるには、たとえば下記のようにして当該情報の格納されたアドレスを指定してやればよい。
【0028】
(1)命令コードによる指定
図4に示すように、命令コード中の何ビットかをコンフィギュレーションメモリ206のアドレス指定のために割り当てておけば、当該メモリ内のどの構成情報を第2演算器205に出力するか、すなわち第2演算器205にどのカスタム命令を実行させるかを指定できる。
【0029】
なお、カスタム命令ごとに異なるオペコードを割り当ててもよいが、そうすると定義できるカスタム命令の数がオペコードの種類の上限に制限されてしまうので、ここではカスタム命令であればオペコードは共通(1種類だけ)で、それに続くアドレスで個々のカスタム命令を区別している。
【0030】
(2)特定用途レジスタによる指定
上記のように命令コード中でメモリアドレスを指定すると、標準的な32ビット長の命令の場合、アドレスの指定用にはせいぜい5ビット程度しか取れないため、指定できるエントリは32個程度に限定されてしまう。
【0031】
そこで別の方法として、コンフィギュレーションメモリ206のアドレスを保持する特定用途レジスタ(SPR)を用意し、当該レジスタに、カスタム命令の実行に先立って当該命令に対応する構成情報のアドレスをセットするようにしてもよい。特定用途レジスタは通常は32ビットなので、命令コード中の数ビットを使うよりも多くのアドレスを指定できる。逆に言えば、より大規模なコンフィギュレーションメモリ206を搭載することが可能である。
【0032】
もっとも特定用途レジスタを利用する場合は、コンフィギュレーションメモリ206のアドレスを当該レジスタにセットするステップと、当該アドレスの構成情報を第2演算器205に供給して、命令を実際に実行するステップとの2段階でカスタム命令が実行されることになる。ただし同一のカスタム命令を続けて実行する場合は、特定用途レジスタへのアドレス設定は毎回行う必要はないので、このオーバーヘッドは発生しない。
【0033】
(3)命令コードおよび特定用途レジスタによる指定
上記(1)および(2)を組み合わせて、メモリアドレスの一部(たとえば上位アドレス)を特定用途レジスタで、残りの一部(たとえば下位アドレス)を命令コードで指定すれば、欠点を相互に補い合い、大規模なメモリを搭載しつつ効率的にカスタム命令を実行してゆくことができる。
【0034】
(メモリ内の構成情報の切り替え処理)
次に、メモリ内の構成情報の切り替え処理について説明する。コンフィギュレーションメモリ206としてROMのような読み出し専用メモリを使うと、第2演算器205で実行可能なカスタム命令の種類は、上記メモリのエントリの個数に制限される。
【0035】
一方、コンフィギュレーションメモリ206としてRAMを使うと、プログラム実行中にメモリ内の情報を書き換えることで、エントリの個数以上の(理論上は無限の)カスタム命令を実行させることができる。コンフィギュレーションメモリ206への構成情報のロードは、たとえば下記のようにして実現すればよい。
【0036】
(1)実現方法1:命令セットにコンフィギュレーションメモリ206へのロード命令を追加する。
命令セット中に、コンフィギュレーションメモリ206へのロード命令を新たに追加し、当該命令を実行できるように演算器204を拡張する。演算器204は、上記ロード命令を命令デコーダ202から供給されると、当該命令で指定されたアドレスの構成情報をコンフィギュレーションメモリ206の指定されたエントリにロードする。
【0037】
(2)実現方法2:コンフィギュレーションメモリ206へのロード命令を複数のロード命令で代替する。
あるいは命令フェッチ部201がコンフィギュレーションロード命令を検出すると、命令デコーダ202には上記命令の代わりに、必要な数のロード命令を供給するようにし、ロードされたデータをコンフィギュレーションメモリ206に格納するようにしてもよい。たとえばロードする構成情報が256ビットの場合は、コンフィギュレーションロード命令の代わりに、8個のロード命令あるいは4個のダブルワードロード命令を命令デコーダ202に供給する。
【0038】
(3)実現方法3:コンフィギュレーションメモリ206を特定用途レジスタにマッピングする。
命令セットに含まれている、特定用途レジスタへのデータの転送命令を利用してもよい。すなわち、コンフィギュレーションメモリ206を特定用途レジスタにマッピングし、汎用レジスタへのロード命令と、当該汎用レジスタから上記特定用途レジスタへの転送命令とを実行することでコンフィギュレーションメモリ206へ構成情報をロードする。プログラム中でこれらの命令を組み合わせることでコンフィギュレーションメモリ206へのロードを実現できるので、あえて命令セット中にコンフィギュレーションロード命令を用意する必要はない。ただ、プログラマの負担を軽減する意味では命令セットに上記命令を追加し、命令デコーダ202で当該命令を汎用レジスタへのロード命令と、特定用途レジスタへの転送命令とに置換するようにしてもよい。
【0039】
(4)実現方法4:コンフィギュレーションメモリ206を通常のアドレス空間にマッピングする。
コンフィギュレーションメモリ206を通常のアドレス空間にマッピングし、レジスタへのロード命令に続けて上記メモリが割り当てられた領域へのストア命令を実行するか、DMAコントローラを起動して、外部メモリからコンフィギュレーションメモリ206へ直接データを転送させることで構成情報をロードすることもできる。プログラム中でロード命令とストア命令とを組み合わせることで、あるいはDMAを起動することで、コンフィギュレーションメモリ206へのロードを実現できるので、あえて命令セット中にコンフィギュレーションロード命令を用意する必要はない。ただ、プログラマの負担を軽減する意味では命令セットに上記命令を追加し、命令デコーダ202で当該命令をロード命令とストア命令、あるいはDMAの起動命令に置換するようにしてもよい。
【0040】
(実施の形態1)
次に、実施の形態1、すなわち、ビットの入れ替え処理について説明する。図5は本発明の実施の形態1による第2演算器205の内部構成を模式的に示す説明図である。第2演算器205内の32個のマルチプレクサ(同図には3個しか示していないが実際には32個)に、それぞれ異なる位置のビットを出力するよう選択信号を与えてやると、レジスタファイル203からの入力データ(32ビットであるものとする)の任意のビットを、出力データの任意のビットに持ってゆくことができる。すなわち、あらゆるパターンのビットシャッフリングが可能である。
【0041】
このとき、32ビット中の1ビットを指定するには少なくとも5ビットが必要なので、コンフィギュレーションメモリ206から第2演算器205に供給される選択信号、すなわち構成情報は最低でも5ビット×32個=160ビットとなる。
【0042】
またレジスタファイル203からの入力データとして、1と0とを少なくとも1つ含むデータ、すなわちオール0(「000・・・000」)やオール1(「111・・・111」)以外のビット列を与えてやると、選択信号を適当に作ってやれば、あらゆるビットパターンの出力データを生成することができる。すなわち、任意のマスクパターンを出力するパターンジェネレータが実現できる。
【0043】
上記の入力データとしては、たとえばLSBのみに1が立っているデータを使用する。このような入力データは汎用レジスタに、ユーザがプログラムで明示的に設定しておくこともできるが、汎用レジスタのいずれかをこのデータ専用に割り当てておくこともできる。たとえば、一般的なプロセッサの0番レジスタ(GR0)には固定値0が設定されているが、同様にたとえば1番レジスタ(GR1)には固定値として1(LSBのみに1が立っているデータ)を設定しておけば、わざわざ値を設定してやる必要がない。
【0044】
(実施の形態2)
次に、実施の形態2、すなわち、1が立っているビットの計数処理について説明する。図6は本発明の実施の形態2による第2演算器205の内部構成を模式的に示す説明図である。実施の形態2では、第2演算器205内の右シフタ600、パターンジェネレータ601、AND回路602・603および加算器(ALUでもよい)604を用いて、図7に示す処理を所定回数だけ繰り返すことで、入力データ中で1が立っているビットの個数をカウントする。
【0045】
説明の便宜上、ここでは入力データとして8ビットのデータ、たとえば「abcdefgh」を考える。ここで「a」「b」などは、そのビット位置にある0または1を表すものとする。
【0046】
(1)1回目の処理
図8において、まず、右シフタ600により入力データを右に所定ビット(1回目では1ビット)だけシフトする(ステップS701)。次にパターンジェネレータ601により、所定のマスクパターン(1回目では「01010101」すなわち0x55)を生成する(ステップS702)。さらに、一方のAND回路602で入力データと上記マスクパターンとの論理積を(ステップS703)、もう一方のAND回路603で右シフト後の入力データと上記マスクパターンとの論理積をそれぞれ取った後(ステップS704)、これら2つのAND結果を加算器604で加算する(ステップS705)。
【0047】
上記処理の結果、加算器604からの出力データでは、図8に示すようにその最上位の2ビットが入力データ中のaとbとの加算結果、次の2ビットがcとdとの加算結果、次の2ビットがeとfとの加算結果、最下位の2ビットがgとhとの加算結果となっている(偶数ビット(2n)と奇数ビット(2n+1)の和が計算されたと言ってもよい)。そして、ステップS701〜S705の繰り返し回数が所定の回数(入力データが8ビットの場合は3回)に達しない間は(ステップS706:No)、再度ステップS701に移行する。
【0048】
(2)2回目の処理
図9において、2回目の処理では、その直前の1回目の処理で得られた出力データが入力データとなる。まず、右シフタ600により上記入力データを右に所定ビット(2回目では2ビット)だけシフトする(ステップS701)。次にパターンジェネレータ601により、所定のマスクパターン(2回目では「00110011」すなわち0x33)を生成する(ステップS702)。そして、これらの入力データとマスクパターンとの間で、1回目と同様論理積とその和とを計算する(ステップS703〜S705)。
【0049】
上記処理の結果、加算器604からの出力データでは、図9に示すようにその上位4ビットが入力データ中のa・b・c・dの加算結果、下位4ビットがe・f・g・hの加算結果となっている。そして、ステップS701〜S705の繰り返し回数がまだ所定回数(3回)に達しないので(ステップS706:No)、再びステップS701に戻る。
【0050】
(3)3回目の処理
図10において、3回目の処理では、その直前の2回目の処理で得られた出力データが入力データとなる。まず、右シフタ600により上記入力データを右に所定ビット(3回目では4ビット)だけシフトする(ステップS701)。次にパターンジェネレータ601により、所定のマスクパターン(3回目では「00001111」すなわち0x0F)を生成する(ステップS702)。そして、これらの入力データとマスクパターンとの間で、1回目や2回目と同様論理積とその和とを計算する(ステップS703〜S705)。
【0051】
上記処理の結果、加算器604からの出力データには、図10に示すように入力データ中の各ビットの加算結果、すなわち入力データ中で1が立っているビットの個数が格納されている。なお、上記データの最下位ビットは入力データのパリティビットにもなっている。そして、この時点でステップS701〜S705の繰り返し回数が所定回数(3回)に達したので(ステップS706:Yes)、上記フローチャートによる処理を終了する。
【0052】
なお、この繰り返しの回数は入力データのビット数に依存し、8ビットの場合は上述のように3サイクル、32ビットの場合は5サイクルである。ビットの増加に伴って繰り返しの回数が増え、右シフタ600によるシフト量やパターンジェネレータ601により生成されるマスクパターンも変化してゆくが、図7に示した処理の手順は同一である。図11に、入力データが8ビットである場合と32ビットである場合のシフト量およびマスクパターンをそれぞれ示す。
【0053】
また、パターンジェネレータ601の生成パターンを変えることによって、上記のような1のカウント処理以外にも様々な処理を実現できる。また、上記ではマスクパターンをパターンジェネレータ601で生成しているが、コンフィギュレーションメモリ206にマスクパターンを格納しておいて、それを直接使うようにしてもよい。
【0054】
(パラメータの指定方法)
次に、パラメータの指定方法について説明する。上述のように各回の処理ごとに異なるのは、右シフタ600でのシフト量とパターンジェネレータ601で生成されるマスクパターンのみである。そこで、コンフィギュレーションメモリ206内に各回ごとの構成情報を用意し(各回ごとに異なるカスタム命令を用意し、と言ってもよい)、これらを順次第2演算器205に与えることで上記一連の処理を実現してもよいが、一部のパラメータが異なるだけの複数の構成情報でメモリを占有するのは無駄である。
【0055】
そこで、各回ともコンフィギュレーションメモリ206から読み出す構成情報は共通とし(命令中で指定する上記メモリのアドレスは同一とし、と言ってもよい)、ただ各回ごとに異なるパラメータのみを、以下に例示するように所定のレジスタにロードしておいたり、命令中に当該パラメータ用のフィールドを設けたりすることで、別途指定するようにしてもよい。第2演算器205の回路構成を決定するためのパラメータが、コンフィギュレーションメモリ206のほか、所定のレジスタや命令中に分散していると見ることもできる。
【0056】
(1)特定用途レジスタによる指定
右シフタ600用のパラメータ指定用、パターンジェネレータ601用のパラメータ指定用の特定用途レジスタをそれぞれ用意しておき、構成情報中では当該レジスタを指定する。この場合、右シフタ600用の特定用途レジスタにシフト量をセット→パターンジェネレータ601用の特定用途レジスタにマスクパターン生成のためのパラメータをセット→カスタム命令を実行、という3ステップの処理を3セット繰り返すことで、上述のカウント処理を実現できる。
【0057】
(2)自動更新機能を有する特定用途レジスタによる指定
上記(1)では、構成情報を保持するためのメモリは少なくて済む一方、3ステップ×3セット=9ステップの処理が必要になってしまう。メモリを節約しながら処理時間を短縮するには、たとえば図12に示すような回路で、右シフタ600用・パターンジェネレータ601用の特定用途レジスタに自動更新機能を具備することが考えられる。
【0058】
図示する例ではレジスタ内の現在の値と、コンフィギュレーションメモリ206内の値との和を更新後の値としている。もっとも加算値が固定、たとえば1の場合は、特にコンフィギュレーションメモリ206から当該値を供給してやる必要はない。なお、図示する例ではこの(2)の方式と、後述する(3)の方式のいずれか一方をセレクタで選択できるようになっている。どちらを選択するかはコンフィギュレーションメモリ206内の構成情報により決定される。
【0059】
この(2)の方式では、特定用途レジスタへの設定は最初の1回だけ行えばよい(2回目以降は自動更新される)ので、必要なステップを(1)の9ステップから5ステップに減らすことができる。
【0060】
(3)命令コードによる指定
別の方法として、メモリを節約しながら処理時間を短縮するには、たとえば命令コード中で右シフタ600やパターンジェネレータ601のパラメータを直接指定することも考えられる。これにより、毎回特定用途レジスタを設定する必要がなくなるので、同じカスタム命令(ただしパラメータはそれぞれ異なる)を3回実行するだけで上述のカウント処理を実現できる。もっとも、命令長は通常32ビットに制限されることから、パラメータの指定のために10数ビット確保するのは難しい場合が多い。
【0061】
(4)汎用レジスタによる指定
実施の形態2で扱う入力データは1つなので、命令のフォーマットが図4のようなものであった場合、もう1つソースレジスタを指定することができる。ここで指定される汎用レジスタの特定フィールドに、右シフタ600やパターンジェネレータ601に与えるパラメータをロードしておくこともできる。
【0062】
(実施の形態3)
次に、DESのIP転置処理について説明する。図13は本発明の実施の形態3による第2演算器205の内部構成を模式的に示す説明図である。実施の形態3では、第2演算器205内の右シフタ1300、パターンジェネレータ1301、反転回路1302、AND回路1303・1304、OR回路1305およびビット入れ替え器1306を用いて、図14に示す手順により、64ビットの入力データについてDESのIP転置処理を行う。
【0063】
暗号化アルゴリズムのDESではビットの入れ替え操作を多用するが、その中のIP転置操作では図15のような64ビットのデータに対して、図16に示すようなビット入れ替えを行う。なお、各数字はビット位置を示している。
【0064】
図15の転置前の入力データは、汎用レジスタ上では2つのレジスタに分割されて、たとえば30番(GR30)に1〜32ビット目まで(1,2,・・・,32)が、31番(GR31)に33〜64ビット目まで(33,34,・・・,64)が、それぞれ格納される。また、図16の転置後の出力データは前半の32ビット(58,50,・・・,8)が28番(GR28)、後半の32ビット(57,49,・・・,7)が29番(GR29)というように、2分割されて汎用レジスタに格納される。
【0065】
図13に示した第2演算器205では、コンフィギュレーションメモリ206からの構成情報(あるいは特定用途レジスタからのパラメータ、など)により、右シフタ1300はデータを4ビットだけ右シフトするように、パターンジェネレータ1301はマスクパターン0xF0F0F0F0を出力するように、それぞれ設定されている。
【0066】
また、ビット入れ替え器1306は図17に示すような規則で各ビットの順序を入れ替える。図中「*」は任意のビット位置のデータでよいことを示し、たとえば最上位ビットの値を一律に埋めるようにする。
【0067】
上記を前提として、図14に示した手順を具体的に説明する。まず、第2演算器205で図18に示すように、入力1側にGR0(一般のプロセッサでよく使われるゼロレジスタで、読み出し値が常にオール0になる特殊なレジスタ)、入力2側にGR30を選択すると、出力レジスタ(ここではGR28とする)には図16に示した転置後のデータで、右上隅の4×4ビットにあたる部分が左詰めで出力される(ステップS1401)。
【0068】
次に、図19に示すように、入力1側にステップS1401による処理後のGR28、入力2側にGR31を選択すると、出力レジスタ(ここではGR28とする)には図16に示した転置後のデータで、上半分の8×4ビットにあたる部分が出力される(ステップS1402)。
【0069】
次に、演算器204に通常の命令(すなわち命令セット内の命令)である右シフト命令を与えて、GR30のデータを右に1ビットシフトし、結果をGR30に出力する(ステップS1403)。また、同様に右シフト命令を使って、GR31のデータを右に1ビットシフトし、結果をGR31に出力する(ステップS1404)。
【0070】
次に、図20に示すように、入力1側にGR0、入力2側にステップS1403による処理後のGR30を選択すると、出力レジスタ(ここではGR29とする)には図16に示した転置後のデータで、右下隅の4×4ビットにあたる部分が左詰めで出力される(ステップS1405)。
【0071】
次に、図21に示すように、入力1側にステップS1405による処理後のGR29を、入力2側にステップS1404による処理後のGR31を選択すると、出力レジスタ(ここではGR29とする)には図16に示した転置後のデータで、下半分の8×4ビットにあたる部分が出力される(ステップS1406)。
【0072】
以上により、GR30およびGR31に分割して格納されていた64ビットの入力データが、ビット入れ替えの上でGR28およびGR29に出力されたことになり、図15から図16へのIP転置処理が終了する。従来のプロセッサでは1ビットずつデータを操作していたので、全体の入れ替えに多くの命令を実行する必要があったが、上述した実施の形態3ではIP転置処理を6命令で実現することができ、実行速度の大幅な向上がはかれる。
【0073】
なお、64ビットデータを一挙に扱うことのできるビット入れ替え器を用いれば、1命令で上記処理を実現できるが、その分回路規模が大きくなることは避けられない。
【0074】
以上説明した実施の形態1〜3によれば、ユーザが求める種々のカスタム命令をコンフィギュレーションメモリ206からの構成情報を切り替えるだけで、すなわちLSIを個々に作り替えたり大規模なFPGAを搭載したりしなくても定義することができるので、ユーザのアプリケーションに適したカスタムプロセッサを非常に容易、かつ安価に実現できる。
【0075】
また、従来の演算器204なら多数の命令の組み合わせで実現しなければならなかった処理を、第2演算器205ではごく少数の命令で実現できるので、プロセッサそのものの処理速度の向上だけでなく、当該プロセッサで実行されるプログラムのサイズの縮小も同時に実現することができる。
【0076】
なお、上述した実施の形態1〜3の第2演算器205は、コンフィギュレーションメモリ206からの情報をもっぱら自己の内部構成を決定するために用いたが、コンフィギュレーションメモリ206をダイレクトにテーブルメモリとして扱い、第2演算器205はメモリ内の任意の情報を読み出すだけにすることもできる。
【0077】
すなわち、コンフィギュレーションメモリ206の1エントリ分の情報が256ビットだとすると、これを1ビット×256、2ビット×128、4ビット×64のようなテーブルと見なし、与えられた命令の特定のフィールドを当該テーブルのアドレスと見なして、そのアドレスのデータを読み出し出力する。
【0078】
この場合の第2演算器205は、実施の形態1〜3で上述した種々のカスタム命令を処理する演算器部分(コンフィギュレーションメモリ206からの構成情報によりその内部構成が変化する部分、と言ってもよい)と、コンフィギュレーションメモリ206内の任意のデータを抽出するための選択器部分とからなる。
【0079】
図22は、この選択器部分の回路構成を示す説明図である。図示する例では、コンフィギュレーションメモリ206から入力した256ビットのデータから、32対1の8個のマルチプレクサにより8ビットのデータのみが選択(抽出)されている。なお、個々のマルチプレクサが必要とする選択信号(32ビット中のどのビットを選択すればよいかを示す信号であり、長さは5ビットである)は、汎用レジスタや特定用途レジスタ、あるいは命令内の特定のフィールドなどから供給する。
【0080】
上記はコンフィギュレーションメモリ206を8ビット×32のテーブルとして使用する例であるが、4ビット×64のテーブルとして使用するのであれば、図23に示すように選択信号を1ビット増やして、32対1の8個のマルチプレクサから出力された8ビットを、さらに2対1の4個のマルチプレクサで4ビットに絞ればよい。
【0081】
また、コンフィギュレーションメモリ206を2ビット×128のテーブルとして使用するのであれば、さらに選択信号を1ビット増やし、2対1の2個のマルチプレクサで2ビットに絞ればよい。もう一段2対1のマルチプレクサを通せば最終的に1ビットの出力となり、1ビット×256のテーブルとして使うこともできる。
【0082】
なお、選択器の構成を図24のようにすると出力データの幅が2のべき乗に制限されるため、テーブルの作り方は複雑になる一方、図23よりも回路量を削減しつつ同一の機能を実現することができる。
【0083】
(付記1)与えられた命令が所定の命令セット内の命令であるか否かを判定する判定手段と、
前記判定手段により前記命令が所定の命令セット内の命令であると判定された場合に、当該命令を実行する第1の演算手段と、
前記判定手段により前記命令が所定の命令セット内の命令でないと判定された場合に、当該命令を実行するための回路構成を決定する構成情報を出力する構成情報出力手段と、
前記構成情報出力手段から出力された構成情報により決定される回路構成で前記命令を実行する第2の演算手段と、
を備えたことを特徴とする情報処理装置。
【0084】
(付記2)前記第2の演算手段を複数備えたことを特徴とする付記1に記載の情報処理装置。
【0085】
(付記3)前記構成情報出力手段は、前記判定手段により前記命令が所定の命令セット内の命令でないと判定された場合に、複数の構成情報の中から当該命令を実行するための回路構成を決定する構成情報を選択して出力することを特徴とする付記1または2に記載の情報処理装置。
【0086】
(付記4)前記構成情報出力手段は、前記命令で指定されたアドレスおよび/または所定のレジスタに保持されたアドレスにもとづいて、複数の構成情報の中から当該命令を実行するための回路構成を決定する構成情報を選択して出力することを特徴とする付記3に記載の情報処理装置。
【0087】
(付記5)前記構成情報は書き換え可能なメモリに保持されることを特徴とする付記1〜4のいずれか一つに記載の情報処理装置。
【0088】
(付記6)前記構成情報は前記メモリのほか、前記命令内の所定のフィールドあるいは所定のレジスタにも保持されることを特徴とする付記5に記載の情報処理装置。
【0089】
(付記7)前記所定のレジスタは、前記第2の演算手段により前記命令が実行される都度、前記メモリに保持された構成情報にもとづいて値を更新することを特徴とする付記6に記載の情報処理装置。
【0090】
(付記8)前記所定の命令セット内の命令には、前記メモリに前記構成情報をロードする命令が含まれることを特徴とする付記5〜7のいずれか一つに記載の情報処理装置。
【0091】
(付記9)さらに、前記判定手段により前記命令が所定の命令セット内の命令でないと判定された場合に、当該命令が前記メモリに前記構成情報をロードする命令であるか否かを判定する第2の判定手段と、
前記第2の判定手段により、前記命令が前記メモリに前記構成情報をロードする命令であると判定された場合に、前記メモリに前記構成情報をロードする命令を複数発行する命令発行手段と、を備え、
前記第1の演算手段は、前記命令発行手段により発行された命令を実行することを特徴とする付記5〜7のいずれか一つに記載の情報処理装置。
【0092】
(付記10)さらに、前記判定手段により前記命令が所定の命令セット内の命令でないと判定された場合に、当該命令が前記メモリに前記構成情報をロードする命令であるか否かを判定する第2の判定手段と、
前記第2の判定手段により、前記命令が前記メモリに前記構成情報をロードする命令であると判定された場合に、前記メモリが割り当てられた所定のレジスタに前記構成情報を転送する命令を発行する命令発行手段と、を備え、
前記第1の演算手段は、前記命令発行手段により発行された命令を実行することを特徴とする付記5〜7のいずれか一つに記載の情報処理装置。
【0093】
(付記11)さらに、前記判定手段により前記命令が所定の命令セット内の命令でないと判定された場合に、当該命令が前記メモリに前記構成情報をロードする命令であるか否かを判定する第2の判定手段と、
前記第2の判定手段により、前記命令が前記メモリに前記構成情報をロードする命令であると判定された場合に、前記メモリが割り当てられたアドレス空間内の所定の領域に前記構成情報をストアする命令を発行する命令発行手段と、を備え、
前記第1の演算手段は、前記命令発行手段により発行された命令を実行することを特徴とする付記5〜7のいずれか一つに記載の情報処理装置。
【0094】
(付記12)さらに、前記判定手段により前記命令が所定の命令セット内の命令でないと判定された場合に、当該命令が前記メモリに前記構成情報をロードする命令であるか否かを判定する第2の判定手段と、
前記第2の判定手段により、前記命令が前記メモリに前記構成情報をロードする命令であると判定された場合に、前記メモリが割り当てられたアドレス空間内の所定の領域に前記構成情報を転送するようDMAコントローラに指示する指示手段と、
を備えたことを特徴とする付記5〜7のいずれか一つに記載の情報処理装置。
【0095】
(付記13)前記第2の演算手段は、前記構成情報出力手段から出力された構成情報により決定される回路構成で、与えられたデータ中の任意のビットを入れ替えることを特徴とする付記1〜12のいずれか一つに記載の情報処理装置。
【0096】
(付記14)前記第2の演算手段は、前記構成情報出力手段から出力された構成情報により決定される回路構成で、与えられたデータ中の1の個数を計数することを特徴とする付記1〜12のいずれか一つに記載の情報処理装置。
【0097】
(付記15)さらに、前記構成情報出力手段により出力された構成情報中所定のビット位置にある情報のみを出力する選択手段を備えたことを特徴とする付記1〜14のいずれか一つに記載の情報処理装置。
【0098】
(付記16)与えられた命令が所定の命令セット内の命令であるか否かを判定する判定工程と、
前記判定工程で前記命令が所定の命令セット内の命令であると判定された場合に、当該命令を実行する第1の演算工程と、
前記判定工程で前記命令が所定の命令セット内の命令でないと判定された場合に、当該命令を実行するための回路構成を決定する構成情報を出力する構成情報出力工程と、
前記構成情報出力工程で出力された構成情報により決定される回路構成で前記命令を実行する第2の演算工程と、
を含んだことを特徴とする情報処理方法。
【0099】
(付記17)前記構成情報出力工程では、前記判定工程で前記命令が所定の命令セット内の命令でないと判定された場合に、複数の構成情報の中から当該命令を実行するための回路構成を決定する構成情報を選択して出力することを特徴とする付記16に記載の情報処理方法。
【0100】
(付記18)前記構成情報出力工程では、前記命令で指定されたアドレスおよび/または所定のレジスタに保持されたアドレスにもとづいて、複数の構成情報の中から当該命令を実行するための回路構成を決定する構成情報を選択して出力することを特徴とする付記17に記載の情報処理方法。
【0101】
(付記19)前記構成情報は書き換え可能なメモリに保持されることを特徴とする付記16〜18のいずれか一つに記載の情報処理方法。
【0102】
(付記20)前記構成情報は前記メモリのほか、前記命令内の所定のフィールドあるいは所定のレジスタにも保持されることを特徴とする付記19に記載の情報処理方法。
【0103】
(付記21)前記所定のレジスタは、前記第2の演算工程で前記命令が実行される都度、前記メモリに保持された構成情報にもとづいて値を更新することを特徴とする付記20に記載の情報処理方法。
【0104】
(付記22)さらに、前記判定工程で前記命令が所定の命令セット内の命令でないと判定された場合に、当該命令が前記メモリに前記構成情報をロードする命令であるか否かを判定する第2の判定工程と、
前記第2の判定工程で、前記命令が前記メモリに前記構成情報をロードする命令であると判定された場合に、前記メモリに前記構成情報をロードする命令を複数発行する命令発行工程と、を含み、
前記第1の演算工程では、前記命令発行工程で発行された命令を実行することを特徴とする付記19〜21のいずれか一つに記載の情報処理方法。
【0105】
(付記23)さらに、前記判定工程で前記命令が所定の命令セット内の命令でないと判定された場合に、当該命令が前記メモリに前記構成情報をロードする命令であるか否かを判定する第2の判定工程と、
前記第2の判定工程で、前記命令が前記メモリに前記構成情報をロードする命令であると判定された場合に、前記メモリが割り当てられた所定のレジスタに前記構成情報を転送する命令を発行する命令発行工程と、を含み、
前記第1の演算工程では、前記命令発行工程で発行された命令を実行することを特徴とする付記19〜21のいずれか一つに記載の情報処理方法。
【0106】
(付記24)さらに、前記構成情報出力工程で出力された構成情報中所定のビット位置にある情報のみを出力する選択工程を含んだことを特徴とする付記16〜23のいずれか一つに記載の情報処理方法。
【0107】
【発明の効果】
以上説明したように本発明により実現されるプロセッサは、与えられた命令が命令セット内に用意されていないような命令(たとえば入力データ中のビットを入れ替える処理や、1の個数を係数する処理など)であっても、メモリから読み出した構成情報により自らの演算器の構成を変化させることで、高速に当該命令を実行できるので、個々に回路を作り替えたり大規模な回路を搭載したりしなくても、ユーザが定義する様々な命令を高速に処理することが可能な情報処理装置が得られるという効果を奏する。
【図面の簡単な説明】
【図1】従来技術によるプロセッサの内部構成を模式的に示すブロック図である。
【図2】本発明によるプロセッサの内部構成を模式的に示す説明図である。
【図3】本発明によるコンフィギュレーションメモリ206の内容を模式的に示す説明図である。
【図4】本発明によるプロセッサに与えられる命令コードの、フォーマットの一例を模式的に示す説明図である。
【図5】本発明の実施の形態1による第2演算器205の内部構成を模式的に示す説明図である。
【図6】本発明の実施の形態2による第2演算器205の内部構成を模式的に示す説明図である。
【図7】本発明の実施の形態2による第2演算器205で実行される、入力データ中の1の個数の計数処理の手順を示すフローチャートである。
【図8】図7に示すフローの1回目の処理を具体例により示す説明図である。
【図9】図7に示すフローの2回目の処理を具体例により示す説明図である。
【図10】図7に示すフローの3回目の処理を具体例により示す説明図である。
【図11】本発明の実施の形態2による第2演算器205でのシフト量およびマスクパターンを示す説明図である。
【図12】自動更新機能を具備する特定用途レジスタの回路構成の一例を示す説明図である。
【図13】本発明の実施の形態3による第2演算器205の内部構成を模式的に示す説明図である。
【図14】本発明の実施の形態3による第2演算器205で実行される、入力データのIP転置処理の手順を示すフローチャートである。
【図15】IP転置前のデータの一例を示す説明図である。
【図16】IP転置後のデータの一例を示す説明図である。
【図17】本発明の実施の形態3による第2演算器205内の、ビット入れ替え器1306におけるビットの入れ替え規則を示す説明図である。
【図18】図14に示すステップS1401の処理を具体例により示す説明図である。
【図19】図14に示すステップS1402の処理を具体例により示す説明図である。
【図20】図14に示すステップS1405の処理を具体例により示す説明図である。
【図21】図14に示すステップS1406の処理を具体例により示す説明図である。
【図22】コンフィギュレーションメモリ206をテーブルメモリとして使用する場合の、第2演算器205の回路構成の一例を示す説明図である。
【図23】コンフィギュレーションメモリ206をテーブルメモリとして使用する場合の、第2演算器205の回路構成の他の一例を示す説明図である。
【図24】コンフィギュレーションメモリ206をテーブルメモリとして使用する場合の、第2演算器205の回路構成の他の一例を示す説明図である。
【符号の説明】
100,200 命令キャッシュ
101,201 命令フェッチ部
102,202 命令デコーダ
103,203 レジスタファイル
104,204 演算器
205 第2演算器
206 コンフィギュレーションメモリ
600,1300 右シフタ
601,1301 パターンジェネレータ
602,603,1303,1304 AND回路
604 加算器
1302 反転回路
1305 OR回路
1306 ビット入れ替え器

Claims (12)

  1. 与えられた命令が所定の命令セット内の命令であるか否かを判定する判定手段と、
    前記判定手段により前記命令が所定の命令セット内の命令であると判定された場合に、当該命令を実行する第1の演算手段と、
    前記判定手段により前記命令が所定の命令セット内の命令でないと判定された場合に、当該命令を実行するための回路構成を決定する構成情報を出力する構成情報出力手段と、
    前記構成情報出力手段から出力された構成情報により決定される回路構成で前記命令を実行する第2の演算手段と、
    を備え
    前記構成情報は書き換え可能なメモリに保持されるほか、前記命令内の所定のフィールドあるいは所定のレジスタにも保持され、
    前記所定のレジスタは、前記第2の演算手段により前記命令が実行される都度、前記メモリに保持された構成情報にもとづいて値を更新することを特徴とする情報処理装置。
  2. 与えられた命令が所定の命令セット内の命令であるか否かを判定する判定手段と、
    前記判定手段により前記命令が所定の命令セット内の命令であると判定された場合に、当該命令を実行する第1の演算手段と、
    前記判定手段により前記命令が所定の命令セット内の命令でないと判定された場合に、前記命令で指定されるアドレスに基づいて、当該命令を実行するための回路構成を決定する構成情報を出力する構成情報出力手段と、
    前記構成情報出力手段から出力された構成情報により決定される回路構成で前記命令を実行する第2の演算手段と、を備え、
    前記第2の演算手段は、前記命令で指定されるレジスタに格納されるデータを、前記アドレスで指定された前記回路構成によって処理することを特徴とする情報処理装置。
  3. 前記構成情報は書き換え可能なメモリに保持されることを特徴とする請求項に記載の情報処理装置。
  4. 前記構成情報は前記メモリのほか、前記命令内の所定のフィールドあるいは所定のレジスタにも保持されることを特徴とする請求項に記載の情報処理装置。
  5. 前記所定のレジスタは、前記第2の演算手段により前記命令が実行される都度、前記メモリに保持された構成情報にもとづいて値を更新することを特徴とする請求項に記載の情報処理装置。
  6. 前記第2の演算手段を複数備えたことを特徴とする請求項1〜5のいずれか一つに記載の情報処理装置。
  7. 前記構成情報出力手段は、前記判定手段により前記命令が所定の命令セット内の命令でないと判定された場合に、複数の構成情報の中から当該命令を実行するための回路構成を決定する構成情報を選択して出力することを特徴とする請求項1〜6のいずれか一つに記載の情報処理装置。
  8. 前記構成情報出力手段は、前記命令で指定されたアドレスおよび/または所定のレジスタに保持されたアドレスにもとづいて、複数の構成情報の中から当該命令を実行するための回路構成を決定する構成情報を選択して出力することを特徴とする請求項に記載の情報処理装置。
  9. さらに、前記判定手段により前記命令が所定の命令セット内の命令でないと判定された場合に、当該命令が前記メモリに前記構成情報をロードする命令であるか否かを判定する第2の判定手段と、
    前記第2の判定手段により、前記命令が前記メモリに前記構成情報をロードする命令であると判定された場合に、前記メモリに前記構成情報をロードする命令を複数発行する命令発行手段と、を備え、
    前記第1の演算手段は、前記命令発行手段により発行された命令を実行することを特徴とする請求項1〜8のいずれか一つに記載の情報処理装置。
  10. さらに、前記判定手段により前記命令が所定の命令セット内の命令でないと判定された場合に、当該命令が前記メモリに前記構成情報をロードする命令であるか否かを判定する第2の判定手段と、
    前記第2の判定手段により、前記命令が前記メモリに前記構成情報をロードする命令であると判定された場合に、前記メモリが割り当てられた所定のレジスタに前記構成情報を転送する命令を発行する命令発行手段と、を備え、
    前記第1の演算手段は、前記命令発行手段により発行された命令を実行することを特徴とする請求項1〜8のいずれか一つに記載の情報処理装置。
  11. さらに、前記構成情報出力手段により出力された構成情報中所定のビット位置にある情報のみを出力する選択手段を備えたことを特徴とする請求項1〜10のいずれか一つに記載の情報処理装置。
  12. 前記第2の演算手段は、前記構成情報出力手段から出力された構成情報により決定される回路構成で、与えられたデータ中の任意のビットを入れ替えることを特徴とする請求項1〜11のいずれか一つに記載の情報処理装置。
JP2002224074A 2002-07-31 2002-07-31 情報処理装置 Expired - Fee Related JP4002151B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002224074A JP4002151B2 (ja) 2002-07-31 2002-07-31 情報処理装置
US10/627,709 US7114061B2 (en) 2002-07-31 2003-07-28 Information processing apparatus with configurable processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002224074A JP4002151B2 (ja) 2002-07-31 2002-07-31 情報処理装置

Publications (2)

Publication Number Publication Date
JP2004062821A JP2004062821A (ja) 2004-02-26
JP4002151B2 true JP4002151B2 (ja) 2007-10-31

Family

ID=31184994

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002224074A Expired - Fee Related JP4002151B2 (ja) 2002-07-31 2002-07-31 情報処理装置

Country Status (2)

Country Link
US (1) US7114061B2 (ja)
JP (1) JP4002151B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4594666B2 (ja) * 2004-07-12 2010-12-08 富士通株式会社 再構成可能な演算装置
JP4841861B2 (ja) * 2005-05-06 2011-12-21 ルネサスエレクトロニクス株式会社 演算処理装置及びデータ転送処理の実行方法
US7685405B1 (en) * 2005-10-14 2010-03-23 Marvell International Ltd. Programmable architecture for digital communication systems that support vector processing and the associated methodology
US7707136B2 (en) * 2006-03-31 2010-04-27 Amazon Technologies, Inc. System and method for providing high availability data
US8281111B2 (en) * 2008-09-23 2012-10-02 Qualcomm Incorporated System and method to execute a linear feedback-shift instruction
JP5617282B2 (ja) * 2010-03-09 2014-11-05 富士通セミコンダクター株式会社 データ処理システム
US20150129479A1 (en) * 2012-04-26 2015-05-14 International Engine Intellectual Property Company Llc Rotational filter assembly with orientation structure
US9698790B2 (en) * 2015-06-26 2017-07-04 Advanced Micro Devices, Inc. Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces
US10977033B2 (en) * 2016-03-25 2021-04-13 Micron Technology, Inc. Mask patterns generated in memory from seed vectors
JP6819166B2 (ja) * 2016-09-13 2021-01-27 富士通株式会社 演算処理装置および演算処理装置の制御方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848289A (en) * 1992-11-27 1998-12-08 Motorola, Inc. Extensible central processing unit
US6128720A (en) * 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
CA2348261C (en) * 1999-08-30 2006-02-14 Ip Flex Inc. Program product and data processor
ATE498158T1 (de) * 2000-11-06 2011-02-15 Broadcom Corp Umkonfigurierbares verarbeitungssystem und - verfahren

Also Published As

Publication number Publication date
US7114061B2 (en) 2006-09-26
US20040025121A1 (en) 2004-02-05
JP2004062821A (ja) 2004-02-26

Similar Documents

Publication Publication Date Title
JP4277042B2 (ja) 演算処理装置
US6539467B1 (en) Microprocessor with non-aligned memory access
EP1073950B1 (en) Method and apparatus for performing shift operations on packed data
CN107851013B (zh) 数据处理装置和方法
JP2007531072A (ja) プログラム可能なプロセッサ及び拡張演算を伴う方法
JP2001516916A (ja) デジタル信号処理能力を有するデータ処理装置
US6574724B1 (en) Microprocessor with non-aligned scaled and unscaled addressing
JP2005525651A (ja) 拡張可能なプロセッサアーキテクチャ中にアドバンスド命令を追加するための方法および装置
CN113924550B (zh) 直方图运算
JP4002151B2 (ja) 情報処理装置
CN102884505A (zh) 数据处理装置、和数据处理方法
US6728741B2 (en) Hardware assist for data block diagonal mirror image transformation
US6889320B1 (en) Microprocessor with an instruction immediately next to a branch instruction for adding a constant to a program counter
CN103268218A (zh) 数据处理器
JP2004013519A (ja) 演算方法および演算回路
JP2001216136A (ja) 加算回路およびプロセッサ
JP5157129B2 (ja) 情報処理装置およびその回路設計方法
KR100343467B1 (ko) 자바 프로세서
KR100315303B1 (ko) 디지탈 신호 처리기
JP3541776B2 (ja) マイクロコンピュータ
JP2003084972A (ja) 条件付減算命令の実行速度を改善し、命令が正しく実行されるオペランドの範囲を拡大する方法
KR930003410B1 (ko) 스택영역의 데이터참조를 고속으로 행하는 데이터처리장치
KR100246472B1 (ko) 디지탈신호처리기
KR100251546B1 (ko) 디지탈신호처리기
JP2007072857A (ja) 演算処理装置および情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070327

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070528

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: 20070814

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070816

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 3

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: 20110824

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130824

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees