JP4153313B2 - 演算装置 - Google Patents
演算装置 Download PDFInfo
- Publication number
- JP4153313B2 JP4153313B2 JP2002586161A JP2002586161A JP4153313B2 JP 4153313 B2 JP4153313 B2 JP 4153313B2 JP 2002586161 A JP2002586161 A JP 2002586161A JP 2002586161 A JP2002586161 A JP 2002586161A JP 4153313 B2 JP4153313 B2 JP 4153313B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- arithmetic
- arithmetic expression
- output
- data
- 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
- 230000015654 memory Effects 0.000 claims description 129
- 230000014509 gene expression Effects 0.000 claims description 71
- 238000004364 calculation method Methods 0.000 claims description 42
- 238000000034 method Methods 0.000 description 63
- 238000010586 diagram Methods 0.000 description 32
- 238000012544 monitoring process Methods 0.000 description 12
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 3
- ATJFFYVFTNAWJD-UHFFFAOYSA-N Tin Chemical group [Sn] ATJFFYVFTNAWJD-UHFFFAOYSA-N 0.000 description 2
- 230000006870 function Effects 0.000 description 2
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/06—Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30061—Multi-way branch instructions, e.g. CASE
-
- 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/30094—Condition code generation, e.g. Carry, Zero flag
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Programmable Controllers (AREA)
- Advance Control (AREA)
Description
本発明は演算装置に係り、特に、入力条件に応じた演算結果を出力する演算装置に関する。
背景技術
通常、演算装置は、演算器が内蔵されており、入力値に対して演算式に応じたプログラムに基づいて演算器を動作させ、出力値を得るものである。
しかるに、通常の演算装置では、プログラムに基づいて演算式に対応した演算を繰り返す必要があるので、演算が遅かった。
例えば、従来、プログラムなどで、CASE文を処理する場合、CPUで条件文を暫時比較して、入力と一致しているか否かを調べて、一致した結果を出力するようにしていた。よって、n個の条件がある場合には、最大でn回条件文を比較する必要があった。
このため、従来のプログラムを用いた演算方法では、CASE文などをCPUで順次実行する必要があるので、処理時間が長くなるなどの問題点があった。特に、条件式として一貫性のないCASE文が何度も繰り返されると、条件分岐のための比較演算の回数が多くなり、処理速度が大幅に低下するなどの問題点があった。
本発明は上記の点に鑑みてなされたもので、処理速度を高速化できる演算装置を提供することを目的とする。
発明の開示
本発明は、入力値に対応した演算結果を出力する演算装置において、アドレスに前記入力値を対応させ、該アドレスのデータに前記入力値に対応した演算結果が記憶される記憶手段と、演算に同期して、前記記憶手段を書き換える制御手段とを有することを特徴とする。
本発明によれば、アドレスとして入力値を入力することにより直ちに演算結果を出力することができるので、処理速度を高速化できる。また、演算に同期して演算結果が書き換えられるので、小さい記憶容量で多様な演算式に対応できる。
また、本発明は、アドレスに応じたデータを出力する記憶手段に、アドレスに入力を対応させ、データに出力を対応させた演算式を記憶させ、演算式の使用頻度に基づいて記憶させる演算式を選択的に記憶手段に記憶させるものである。
本発明によれば、頻度に応じて演算式をメモリに記憶させるため、学習により選択された演算式で演算処理を実行できる。
発明を実施するための最良の形態
図1に本発明の一実施例のブロック構成図を示す。
本実施例の演算装置1は、メモリ2、書込制御モジュール3、読出制御モジュール4、テーブル5から構成される。本実施例の演算装置1は、入力値が入力される毎にリコンフィグレーション命令が発行され、メモリ2がテーブル5によりリマップされる。このとき、書込制御モジュール3及び読出制御モジュール4によって入力値の条件に応じてリコンフィグレーション命令を抑止し、リマップを禁止するようにする。
メモリ2は、RAMなどの読み書き自在のメモリから構成される。メモリ2には、書込制御モジュール3により演算結果が書き込まれ、読出制御モジュール4により記憶された演算結果が読み出される。
書込制御モジュール3は、読出制御モジュール4からの指示に基づいてテーブル5から演算結果を読み出し、メモリ2に格納する。
読出制御モジュール4には、入力端子Tinから演算式に入力する入力値が供給される。読出制御モジュール4は、入力値をメモリ2のアドレスとして供給する。メモリ2は、読出制御モジュール4からのアドレスに対応するデータを演算結果として読み出す。
なお、書込制御モジュール3及び読出制御モジュール4は、プログラムで構成され、本実施例の演算装置を搭載するコンピュータに格納される。また、テーブル5は、不揮発性記憶装置に形成される。
ここで、入力値について詳細に説明する。
図2に本発明の第1実施例の入力値のデータ構成図を示す。
入力値は、メモリ2のアドレスと一致する。入力値は、例えば、上位アドレスADDi0及び下位アドレスADD0jから構成される。読出モジュール4は、入力値の下位アドレスADD00jをアドレスとしてメモリ2に供給する。また、読出モジュール4は、上位アドレスADDi0により書込制御モジュール3を制御する。
書込制御モジュール3は、読出制御モジュール4からの指示に応じてテーブル5から上位アドレスADDi0に対応した領域Aiのデータを読み出し、メモリ2に書き込む。
ここで、テーブル5のデータ構成について詳細に説明する。
図3に本発明の第1実施例のテーブルのデータ構成図を示す。
テーブル5は、n個の領域A1〜Amから構成される。領域A1〜Amのうちの1つの領域Aiは、メモリ2と同じデータ容量を有する。
領域A1には、上位アドレスADD10に対応するn個のデータD11〜D1nが記憶されている。領域A2には、上位アドレスADD20に対応するn個のデータD21〜D2nが記憶されている。同様にして領域Amまで各領域にデータが格納される。
テーブル5に格納されるデータD11〜D1n、D21〜D2n・・・Dm1〜Dmnは、演算式に入力値を順次入力した演算結果であり、予め求められてテーブル5に格納される。
テーブル5の領域A1〜Amに格納されたデータD11〜D1n、D21〜D2n・・・Dm1〜Dmnのうちいずれかの一つの領域AiのデータDi1〜Dinがメモリ2に記憶される。
次にメモリ2のデータ構成図について詳細に説明する。
図4に本発明の第1実施例のメモリのデータ構成図を示す。
メモリ2は、アドレスADD01〜ADD0nにデータDi1〜Dinが記憶される。メモリ2は、読出制御モジュール4から供給される下位アドレスADD0jに基づいてデータにアクセスする。
次に、読出制御モジュール4の動作を詳細に説明する。
図5に本発明の第1実施例の読出制御モジュールの動作フローチャートを示す。
読出制御モジュール4は、ステップS1−1で、入力端子Tinから入力値ADDijが供給されると、ステップS1−2でメモリ2に記憶されたデータDijが入力値ADDijが要求するデータか否かを判定する。
ステップS1−2で、メモリ2に記憶されたデータに入力値ADDijが要求するデータであれば、ステップS1−5でメモリ2のアドレスADD0jに格納されたデータD0jを読み出す。制御モジュール3は、ステップS1−2でメモリ2に記憶されたデータに入力値ADDijが要求するデータが存在しなければ、ステップS1−3で、書込制御モジュール3に入力値ADDijが要求するデータDijを含むデータ列をメモリ2に書き込む指示を与える。書込制御モジュール3は、読出制御モジュール4からの指示により後述するようにテーブル5から所望のデータ列をメモリ2に書き込む。書込制御モジュール3は、メモリ2へのデータ列の書換えが終了すると、書換終了通知を読出制御モジュール4に供給する。
ステップS1−4は、メモリ2のデータの書換えが終了したか否かを判定するステップである。ステップS1−4の判定は、書込制御モジュール3からの通知により行なわれる。ステップS4−1でメモリ2のデータの書換えが終了すると、ステップS1−5でメモリ2のアドレスADD0jに格納されたデータD0jを読み出す。
以上により所望の入力値に対する演算結果が得られる。
次に書込制御モジュール3の動作を詳細に説明する。
図6に本発明の第1実施例の書込制御モジュールの動作フローチャートを示す。
書込制御モジュール3は、ステップS2−1で読出制御モジュール4からメモリ2の書換え指示の有無を判定する。ステップS2−1で、読出制御モジュール4から書換え指示が無ければ、そのまま処理を終了する。
また、ステップS2−1で、読出制御モジュール4から書換え指示があれば、ステップS2−2で読出制御モジュール4から通知された上位アドレスADDi0に対応するデータ列をテーブル5から読み出し、ステップS2−3で、メモリ2に書き込む。書込制御モジュール3は、メモリ2にデータを書き込むと、読出制御モジュール4に書換終了通知を行なう。
以上により、メモリ2に入力値ADDijに対応するデータが存在するデータ列が書き込まれる。
なお、演算結果の「FALSE」及び「TRUE」を識別し、演算結果が「FALSE」のときには、テーブル5から次のデータ列を読み出し、メモリ2に記憶するようにしてもよい。
ここで、本実施例の運用例について説明する。
図7に本発明の第1実施例の運用例を説明するための図を示す。
本実施例の演算装置1によりM個のプログラムP1〜PMで演算を実行する場合の運用例について説明する。
プログラムP1を実行する場合には、メモリ2にプログラムP1で使用する演算結果を記憶して運用し、プログラムP2を実行する場合には、メモリ2にプログラムP2で使用する演算結果を記憶して運用し、同様にプログラムPMを実行する場合には、メモリ2にプログラムPMで使用する演算結果を記憶して運用を行なう。
なお、本実施例では、一系統のメモリにより演算結果をえるようにしたが、複数系統設けるようにしてもよい。
また、本実施例では、入力値に応じてメモリ2に記憶するデータの書き換えを行なったが、出力される演算結果の統計を取り、最も使用頻度の高い演算式の演算結果を優先的にメモリ2に割り当てるようにしてもよい。このような構成とすることにより、メモリ2のデータの切換を最小限にできる。さらに、書込制御モジュール3、テーブル5を削除して、メモリ2に最も使用頻度の高い演算式の演算結果のみを記憶しておき、他の演算式についてはCPUでプログラム的に処理するようにしてもよい。このような構成にすることにより、少ないメモリ容量で効率よく演算を実行できる。
図8に本発明の第2実施例のブロック構成図を示す。同図中、図1と同一構成部分には同一符号を付し、その説明は省略する。
本実施例の演算装置10は、N個のメモリ2−1〜2−N、書込制御モジュール11、読出制御モジュール12、テーブル5から構成される。書込制御モジュール11は、N個のメモリ2−1〜2−Nへのデータの書き込みを制御する。
読出制御モジュール12は、入力値に応じてN個のメモリ2−1〜2−Nから演算結果であるデータを読み出す。
図9に本発明の第2実施例の運用例を説明するための図を示す。
本実施例では、メモリ2−1にプログラムP1で使用する演算結果を書き込み、メモリ2−2にプログラムP2で使用する演算結果を書き込み、同様にメモリ2−NにプログラムPNで使用する演算結果を書き込む。
プログラムP1が運用されているときには、メモリ2−1から演算結果が出力され、プログラムP2が運用されているときには、メモリ2−2から演算結果が出力される。さらに、プログラムPNが運用されているときには、メモリ2−Nから演算結果が出力される。
このようにメモリ2−1〜2−Nのデータを書き換えることなく、N個のプログラムP1〜PNを実行できる。このため、書換え時間が不要となり、高速に演算を行なえる。
本実施例によれば、複数のプログラムで運用する場合に、並列的に演算結果を出力することができる。
なお、上記第1及び第2実施例では、テーブルを用いてメモリに記憶するデータを取得したが、CPUによりメモリに記憶する演算結果を順次演算を行なって、その演算結果をメモリに記憶するようにしてもよい。このようにすることによりテーブルが不要となる。
なお、ここで、第1及び第2実施例の演算装置1,10の適用例について説明する。
図10に本発明の適用例のブロック図を示す。図10(A)はCPU内に包含した適用例、図10(B)はメモリバスに接続して用いる適用例、図10(C)はPCIバスに接続して用いる適用例を示す。
本実施例の演算装置1,10は、図10(A)に示すようにCPU21の内部に一体的に形成できる。このような構成とすることにより、CPU21の内部バス22に直接接続できるので、高い周波数でリードライトが行なえるので、高速に動作させることができる。
また、演算装置1、10をCPU31とは別のチップで構成して、メモリバス32に接続して動作させてもよい。このような構成とすることにより、チップの面積を大きくとれるので、メモリ2の容量を大きくできる。このため、演算結果の書換えを低減でき、高速動作が可能となる。
さらに、演算装置1,10をCPU41からブリッジ回路42を介して設けられたPCIバス43に接続するようにしてもよい。このような構成とすることにより、演算装置1、10をPCボートとして提供できるので、市販のパーソナルコンピュータに容易に適用できるとともに、ボード化により、メモリ2の容量も大きくできる。なお、PCIボートに搭載する場合についてさらに詳細に説明する。
本実施例の演算装置1を実現するPCIボードは、メモリ及びPCIターゲットバスコントローラから構成される。メモリは、例えば、4096ワードのアドレス空間、12ビットのバス幅を持つRAMで構成される。PCIターゲットコントローラは、PCIバスとメモリとのインタフェースをとる。
PCIボードのメモリに演算アルゴリズムをプログラミングするときには、メモリのアドレスに演算式の右辺(入力)を設定し、メモリに演算式の左辺(演算結果)をデータとして記憶させる。演算アルゴリズムを実行する際には、メモリのアドレスに演算式の右辺(入力)を与えることにより、メモリからデータとして演算式の左辺(演算結果)が出力される。
さらに、具体的な処理について詳細に説明する。
例えば、次のような演算アルゴリズムを処理する場合について説明する。
この場合、case文の条件b[n]と一致するメモリのアドレスAnにデータとしてx[n]をプログラミングする。演算を実行する場合には、メモリのアドレスとして条件文b[n]を入力することによりメモリからその演算結果x[n]を得ることができる。
このような処理により、上記のようなn個の分岐を持つcase文を処理する場合には、条件b[n]をメモリのアドレスに入力するだけで、その演算結果x[n]を出力することができる。よって、高速で演算結果を得ることができる。また、条件分岐にハードウェアを使用して一括実行しているため、レスポンスが一定でリアルタイム処理の可能となる。
上述の如く、本発明によれば、アドレスとして入力値を入力することにより直ちに演算結果を出力することができるので、処理速度を高速化できるまた、演算に同期して演算結果が書き換えられるので、小さい記憶容量で多様な演算式に対応できる。
次に本発明の第3実施例を説明する。
図11に本発明の第3実施例のブロック構成図を示す。
本実施例の演算装置100は、例えば、パーソナルコンピュータにより実現される。演算装置100は、ドライバ102、演算式テーブル103、統計テーブル104、演算ボード105から構成される。
ドライバ102は、ソフトウェアであり、パーソナルコンピュータにインストールされて、パーソナルコンピュータのCPUにより動作する。ドライバ102は、アプリケーション111からの入力に応じて動作する。
図12に本発明の第3実施例のドライバの機能ブロック図を示す。
ドライバ102は、監視処理121、学習処理122、推論処理123、バイパス処理124、帰還処理125から構成される。
監視処理121は、アプリケーション111からの入力を監視する処理である。学習処理122は、学習により演算ボード105に演算式を記憶させる処理である。推論処理123は、入力値に対応する出力値が存在しないときに、出力値を推論する処理である。バイパス処理124は、アプリケーション111により演算ボード105に演算式を記憶させる処理である。帰還処理125は、演算ボード105で出力を入力に帰還させる処理である。
ドライバ102は、アプリケーション111からの入力に応じて演算ボード105にアクセスし、演算ボード105から出力を得て、アプリケーション111に返す。また、ドライバ102は、アプリケーション111からの入力に応じて統計テーブル104を作成するとともに、統計テーブル104に基づいて演算式テーブル103に記憶されたデータを演算ボード105に記憶させる。
演算式テーブル103は、複数の演算式f1〜fn毎に入力値に応じた出力値が記憶されている。
図13に本発明の第3実施例の演算式テーブル103のデータ構成図を示す。
演算式テーブル103は、図13に示されるように複数の演算式f1〜fn毎に入力値A1〜Amに対応する出力値d1〜dmが記憶されている。
統計テーブル104は、複数の演算式f1〜fnの出現度を管理するテーブルである。
図14に本発明の第3実施例の統計テーブル104のデータ構成図を示す。
統計テーブル104は、n種類の演算式f1〜fn毎の出現度e1〜enを管理する。出現度e1〜enは、演算式f1〜fnの出現回数に対応しており、演算が行われる度にその値に「1」が加算される。なお、あまり使用されない演算式には、係数「0.5」、「0.4」などをかけた結果を加算するようにしてもよい。また、頻繁に使用される、或いは重要な演算式には、係数「1.5」、「1.4」などをかけた結果を加算するようにしてもよい。
演算ボード105は、例えば、パーソナルコンピュータのPCIバス、ISAバス、USB、PCMCIAカードポートに接続される装置であり、ドライバ102からの入力値に応じて所望の演算式の演算結果を出力する。
図15に本発明の第3実施例の演算ボード105のブロック構成図を示す。
演算ボード105は、内部インタフェース131、メモリコントローラ132、メモリ133、外部インタフェース134から構成される。内部インタフェース131は、パーソナルコンピュータの前述のバスとのインタフェースをとる。
メモリコントローラ132は、内部インタフェース131からの指示に応じてメモリ133のデータのライト/リードを制御する。メモリ133は、演算式テーブル103に記憶された複数の演算式f1〜fnのうちいずれかの演算式fxのデータを記憶する。また、メモリ133は、アプリケーション111からの入力がアドレスとして指定され、指定されたアドレスから入力に応じた出力としてデータを読み出す。
図16に本発明の第3実施例のメモリ133のデータ構成図を示す。
メモリ133は、図16に示されるようにアドレスA1〜Amに応じてデータd1〜dmが記憶される。アドレスA1〜Amは、演算式fxの入力に対応しており、データd1〜dmは、演算式fxの出力に対応している。
外部インタフェース134は、外部装置とのインタフェースをとる。
次に、ドライバ102の動作について詳細に説明する。
まず、ドライバ102の監視処理121について説明する。
図17に本発明の第3実施例の監視処理121のフローチャートを示す。
監視処理121は、ステップS11−1〜S11−7を含む。
ステップS11−1は、アプリケーション111からの入力を監視するステップである。ステップS11−2は、アプリケーション111からの入力が演算のための入力か否かを判定するステップである。
ステップS11−2で、アプリケーション111からの入力が演算のための入力であると判定された場合には、ステップS11−3が実行される。ステップS11−3は、学習処理122及び推論処理123を起動するステップである。
また、ステップS11−2でアプリケーション111からの入力が演算のための入力ではない場合には、ステップS11−4が実行される。
ステップS11−4は、アプリケーション111からの入力がバイパス処理124のための入力か否かを判定するステップである。ステップS11−4で、アプリケーション111からの入力がバイパス処理124のための入力であると判定された場合には、ステップS11−5が実行される。ステップS11−5は、バイパス処理124を起動するステップである。
また、ステップS11−4でアプリケーション111からの入力がバイパス処理124のための入力でないと判定された場合には、ステップS11−6が実行される。ステップS11−6は、アプリケーション111からの入力が帰還処理125のための入力か否かを判定するステップである。
ステップS11−6で、アプリケーション111からの入力が帰還処理125のための入力である場合には、ステップS11−7が実行される。ステップS11−7は、帰還処理125を起動するステップである。
図18に本発明の第3実施例の学習処理122のフローチャートを示す。
学習処理122は、ステップS12−1〜S12−4を含む。
ステップS12−1は、出力結果を監視するステップである。ステップS12−2は、ステップS12−1の監視結果、出力結果が「TRUE」か否かを判定するステップである。
ステップS12−2で出力結果が「TRUE」であると判定された場合には、ステップS12−3が実行される。ステップS12−3は、出力結果を得るために用いられた演算式がどれかということを統計テーブル104に反映させるステップである。例えば、アプリケーション111からの入力に応じた出力の演算の演算式が図14に示される演算式fxである場合、図14の出現度exを(ex+1)に変更する。
ステップS12−4は、データ更新処理を実行するステップである。データ更新処理は、メモリ133のデータを更新する処理である。
次にデータ更新処理について説明する。
図19に本発明の第3実施例のデータ更新処理のフローチャートを示す。
ステップS12−4のデータ更新処理は、ステップS13−1〜S13−7を含む。
ステップS13−1は、関数fnの右側の添え字に対応する変数nを「1」にするステップである。ステップS13−2は、統計テーブル104を参照するステップである。ステップS13−3は、統計テーブル104のうちの演算式fnの出現度enが所定値D以下か否かを判定するステップである。
ステップS13−3で、演算式fnの出現度enが所定値D以下のとき、すなわち、演算式fnが使用される頻度が少ないときには、ステップS13−4が実行される。ステップS13−4は、演算式fnを統計テーブル104から削除するステップである。
ステップS13−3で、演算式fnの出現度enが所定値Dより大きいときには、直接、ステップS13−5が実行される。ステップS13−5は、変数nを(n+1)にするステップである。
ステップS13−6は、変数nが予め決められた定数N(定数Nは、関数の数と同じかそれよりも大きい自然数である。)か否かを判定するステップである。ステップS13−6で変数nが定数Nでなければ、ステップS13−2に戻って、ステップS13−2〜S13−5が繰り返される。ステップS13−6で変数nが定数Nであれば、ステップS13−7が実行される。
ステップS13−7は、統計テーブル104で出現度exが最も大きい演算式fxmaxのデータをメモリ133にライトするステップである。
以上により次回アプリケーション111から入力があった場合に、メモリ133のデータを書き換える確率が大幅に減少する。
次に推論処理123について説明する。
図20に本発明の第3実施例の推論処理123のフローチャートを示す。
推論処理123は、ステップS14−1〜S14−3を含む。
ステップS14−1は、出力結果を監視するステップである。ステップS14−2は、ステップS14−1での監視結果、出力結果が「FALSE」か否かを判定するステップである。ステップS14−2で、出力結果が「FALSE」の場合には、ステップS14−3が実行される。
ステップS14−3は、推論処理である。推論処理は、出力結果を推論する処理である。
推論処理について説明する。
図21に本発明の第3実施例の推論処理のフローチャートを示す。
推論処理は、ステップS15−1〜S15−7を含む。
ステップS15−1は、他の演算式の入力か否かを判定するステップである。ステップS15−1で他の演算式の入力でない場合には、ステップS15−2が実行される。
ステップS15−2は、出力fx(m+1)がメモリ133に存在するか否かを判定するステップである。ステップS15−2で出力fx(m+1)がメモリ133に存在すると判定された場合には、ステップS15−3が実行される。
ステップS15−3は、出力fx(m−1)がメモリ133に存在するか否かを判定するステップである。ステップS15−3で出力fx(m−1)がメモリ133に存在すると判定、すなわち、出力fx(m+1)及び出力fx(m−1)の両方が存在すると判定された場合には、ステップS15−4が実行される。
ステップS15−4は、補間処理を行なうステップである。補間処理は、出力fx(m+1)及び出力fx(m−1)から出力fx(m)を補間して求める処理である。
ステップS15−2で出力fx(m+1)が存在しないと判定された場合には、ステップS15−5が実行される。ステップS15−5は、出力fx(m−1)が存在するか否かを判定するステップである。
ステップS15−5で出力fx(m−1)が存在すると判定、すなわち、出力fx(m−1)のみが存在すると判定された場合には、ステップS15−6が実行される。また、ステップS15−3で出力fx(m−1)が存在しないと判定、すなわち、出力fx(m+1)のみが存在すると判定された場合には、ステップS15−6が実行される。
ステップS15−6は、近似処理を行なうステップである。近似処理は、出力fx(m)を存在する出力fx(m+1)又は出力fx(m−1)に近似させる処理である。
ステップS15−5で出力fx(m−1)が存在しないと判定された場合には、ステップS15−7が実行される。ステップS15−7は、固定処理を行なうステップである。固定処理は、出力fx(m)を予め決められた固定出力fx(M)として出力する処理である。
次に、ステップS15−4の補間処理について説明する。
図22に本発明の第3実施例の補間処理のフローチャートを示す。
補間処理は、ステップS16−1、S16−2を含む。
ステップS16−1は、出力fx(m−1)及び出力fx(m+1)をメモリ133から読み出すステップである。ステップS16−2は、ステップS16−1でメモリ133から読み出された出力fx(m−1)及び出力fx(m+1)を下記の式(1)に代入して、出力fx(m)を求めるステップである。
{fx(m−1)+fx(m+1)}/2 ・・・(1)
本実施例の補間処理では、式(1)から出力fx(m−1)と出力fx(m+1)との中間値が出力fx(m)とされる。
次にステップS15−6の近似処理について説明する。
図23に本発明の第3実施例の近似処理のフローチャートを示す。
近似処理は、ステップS17−1、S17−2を含む。
ステップS17−1は、メモリ133に存在する出力fx(m+1)又は出力fx(m−1)のいずれか一方をメモリ133から読み出すステップである。ステップS17−2は、メモリ133から読み出された出力fx(m+1)又は出力fx(m−1)のいずれか一方の出力値を出力fx(m)の出力値として出力するステップである。
次にステップS15−7の固定処理について説明する。
図24に本発明の第3実施例の固定処理のフローチャートを示す。
固定処理は、ステップS18−1を含む。
ステップS18−1は、予め設定された固定値fx(M)を出力fx(m)として設定するステップである。
以上により出力fx(m)を固定することができる。
次にバイパス処理124について説明する。
バイパス処理124は、学習処理122をバイパスして、アプリケーション111からの演算式fAを直接メモリ133に書き込む処理である。
図25に本発明の一実施例のバイパス処理124のフローチャートを示す。
バイパス処理124は、ステップS19−1〜S19−3を含む。
ステップS19−1は、アプリケーション111から演算式fAを入力するステップである。ステップS19−2は、アプリケーション111からの演算式fAをメモリ133に書き込むステップである。
ステップS19−3は、アプリケーション111からのデータをメモリ133にアドレスとして入力するとともに、メモリ133からの出力データをアプリケーション111に出力するステップである。なお、このとき、学習処理122は、停止状態とされる。
次に帰還処理125について説明する。
図26に本発明の一実施例の帰還処理125のフローチャートを示す。
帰還処理125は、ステップS20−1〜S20−4を含む。
ステップS20−1は、メモリ133の出力データの全部をメモリ133のアドレスに帰還させるか、メモリ133の出力データの一部をメモリ133のアドレスに帰還させるかを判定するステップである。ステップS20−1の判定は、アプリケーション111からの指示により行なわれる。
ステップS20−1で、アプリケーション111からの指示がメモリ133の出力データの全部をメモリ133のアドレスに帰還させろというものであると判断された場合には、ステップS20−2を実行する。ステップS20−2は、演算ボード105にメモリ133の出力データの全部をメモリ133のアドレスに帰還させる指示を行なうステップである。
ステップS20−1で、アプリケーション111からの指示がメモリ133の出力データの一部をメモリ133のアドレスに帰還させろというものであると判断された場合には、ステップS20−3を実行する。ステップS20−3は、演算ボード105にメモリ133の出力データの一部をメモリ133のアドレスに帰還させる指示を行なうステップである。
ステップS20−2、S20−3でメモリ133の出力データの全部又は一部をメモリ133のアドレスに帰還させる指示が行なわれると、ステップS20−4が実行される。ステップS20−4では、アプリケーション111からのデータを演算ボード105に供給する。
演算ボード105では、ステップS20−2でドライバ102からメモリ133の出力データの全部をメモリ133のアドレスに帰還させる指示があると、メモリコントローラ132が制御され、メモリ133の出力データの全部がメモリ133のアドレスとして入力されるように制御される。これにより動的な演算が高速に可能になる。
なお、本実施例では、メモリ133を1段とした構成について説明したが、メモリを複数段設けるようにしてもよい。
図27に本発明の一実施例の演算ボードの変形例のブロック構成図を示す。同図中、図15と同一構成部分には同一符号を付し、その説明は省略する。
本変形例の演算ボード140は、n個のメモリ133−1〜133−nをメモリコントローラ132に接続し、n個のメモリ133−1〜133−nに並列的に演算式を書き込み可能とされている。
本変形例によれば、n個のメモリ133−1〜133−nに並列的に演算式を記憶させ、並列的に処理を行なえる。
図28に本発明の一実施例の演算ボードの他の変形例のブロック構成図を示す。同図中、図15と同一構成部分には同一符号を付し、その説明は省略する。
本変形例の演算ボード150は、n個のメモリ133−1〜133−nをデータ出力がアドレス入力となるように直列的に接続してなる。
本変形例によれば、n個の演算式の演算結果を一回の入力で出力できる。
上述の如く、本発明によれば、頻度に応じて演算式をメモリに記憶させるため、学習により選択された演算式で演算処理を実行できる。
なお、本発明は上記実施例に限定されるものではなく、本発明の請求の範囲を逸脱することなく種々の変形が可能である。
【図面の簡単な説明】
図1は、本発明の第1実施例のブロック構成図である。
図2は、本発明の第1実施例の入力値のデータ構成図である。
図3は、本発明の第1実施例のテーブルのデータ構成図である。
図4は、本発明の第1実施例のメモリのデータ構成図である。
図5は、本発明の第1実施例の読出制御モジュールの処理フローチャートである。
図6は、本発明の第1実施例の書込制御モジュールの処理フローチャートである。
図7は、本発明の第1実施例の運用例を説明するための図である。
図8は、本発明の第2実施例のブロック構成図である。
図9は、本発明の第2実施例の運用例を説明するための図である。
図10は、本発明の適用例のブロック図である。
図11は、本発明の第3実施例のブロック構成図である。
図12は、本発明の第3実施例のドライバの機能ブロック図である。
図13は、本発明の第3実施例の演算式テーブルのデータ構成図である。
図14は、本発明の第3実施例の統計テーブルのデータ構成図である。
図15は、本発明の第3実施例の演算ボードのブロック構成図である。
図16は、本発明の第3実施例のメモリのデータ構成図である。
図17は、本発明の第3実施例の監視処理のフローチャートである。
図18は、本発明の第3実施例の学習処理のフローチャートである。
図19は、本発明の第3実施例のデータ更新処理のフローチャートである。
図20は、本発明の第3実施例の推論処理のフローチャートである。
図21は、本発明の第3実施例の推論処理のフローチャートである。
図22は、本発明の第3実施例の補間処理のフローチャートである。
図23は、本発明の第3実施例の近似処理のフローチャートである。
図24は、本発明の第3実施例の固定処理のフローチャートである。
図25は、本発明の第3実施例のバイパス処理のフローチャートである。
図26は、本発明の第3実施例の帰還処理のフローチャートである。
図27は、本発明の第3実施例の演算ボードの変形例のブロック構成図である。
図28は、本発明の第3実施例の演算ボードの他の変形例のブロック構成図である。
Claims (4)
- 複数の演算式を記録するとともに、各演算式に異なる複数の値の入力を行った場合それぞれの出力である複数のデータを、各データを出力するために用いた値及び演算式と紐付けて記録する記憶手段と、
前記記憶手段に記憶された演算式それぞれの使用頻度を記録した統計テーブルと、
前記統計テーブルに記録された演算式の使用頻度を監視し、その時点で使用頻度が最大となっている演算式を判定し、当該演算式とそれに紐付けられた前記値及び前記データとを前記記憶手段から読出すようになっている記憶制御手段と、
前記記憶制御手段が読出した前記演算式とそれに紐付けられた前記値及び前記データとを記録するメモリと、
演算に用いる演算式及び当該演算式に入力する値とを特定する情報を含む入力があった場合、当該入力によって特定された演算式及び値と紐付けられたデータを、当該演算式がメモリにある場合にはメモリから、当該演算式がメモリにない場合には前記記憶手段から読出して出力する出力手段と、
を備えている演算装置。 - 前記演算式の演算結果が存在しないときに、前記演算結果を推論する演算結果推論手段を有することを特徴とする請求項1記載の演算装置。
- 外部からの指示に応じた演算式を前記メモリに記憶させるバイパス手段を有することを特徴とする請求項1又は2のいずれか一項記載の演算装置。
- 前記出力手段の出力の一部又は全部を前記記憶手段の入力に帰還させる帰還手段を有することを特徴とする請求項1乃至3のいずれか一項記載の演算装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001126458 | 2001-04-24 | ||
JP2001126460 | 2001-04-24 | ||
JP2001126458 | 2001-04-24 | ||
JP2001126460 | 2001-04-24 | ||
PCT/JP2002/004040 WO2002088929A1 (fr) | 2001-04-24 | 2002-04-23 | Appareil de calcul |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2002088929A1 JPWO2002088929A1 (ja) | 2004-08-19 |
JP4153313B2 true JP4153313B2 (ja) | 2008-09-24 |
Family
ID=26614118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002586161A Expired - Fee Related JP4153313B2 (ja) | 2001-04-24 | 2002-04-23 | 演算装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7496620B2 (ja) |
EP (1) | EP1383038A4 (ja) |
JP (1) | JP4153313B2 (ja) |
KR (1) | KR100915612B1 (ja) |
CN (1) | CN100336013C (ja) |
HK (1) | HK1063227A1 (ja) |
TW (1) | TWI303381B (ja) |
WO (1) | WO2002088929A1 (ja) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247632A (en) * | 1989-01-23 | 1993-09-21 | Eastman Kodak Company | Virtual memory management arrangement for addressing multi-dimensional arrays in a digital data processing system |
CA2074769C (en) * | 1991-08-09 | 2001-03-20 | International Business Machines Corporation | Formula processor |
JPH07295787A (ja) * | 1994-04-21 | 1995-11-10 | Ricoh Co Ltd | 演算処理装置 |
US5774386A (en) * | 1995-09-08 | 1998-06-30 | Eastman Kodak Company | Method and apparatus for performing function evaluation using a cache |
JP3218007B2 (ja) | 1998-03-20 | 2001-10-15 | 富士通株式会社 | インデックスの管理装置,更新方法及び管理方法並びにコンピュータ読取可能な記憶媒体 |
JP2000163151A (ja) * | 1998-11-25 | 2000-06-16 | Sony Corp | 情報処理装置および方法、並びに提供媒体 |
US6553394B1 (en) * | 2000-01-21 | 2003-04-22 | Mitsubishi Electric Research Laboratories, Inc. | Continuous memoization |
US7272621B2 (en) * | 2003-08-08 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Previous calculation reuse in a calculator |
-
2002
- 2002-04-23 WO PCT/JP2002/004040 patent/WO2002088929A1/ja active Application Filing
- 2002-04-23 EP EP02720577A patent/EP1383038A4/en not_active Withdrawn
- 2002-04-23 US US10/475,945 patent/US7496620B2/en not_active Expired - Fee Related
- 2002-04-23 KR KR1020037014021A patent/KR100915612B1/ko active IP Right Grant
- 2002-04-23 JP JP2002586161A patent/JP4153313B2/ja not_active Expired - Fee Related
- 2002-04-23 TW TW091108351A patent/TWI303381B/zh not_active IP Right Cessation
- 2002-04-23 CN CNB02808540XA patent/CN100336013C/zh not_active Expired - Fee Related
-
2004
- 2004-08-03 HK HK04105731A patent/HK1063227A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20040005935A (ko) | 2004-01-16 |
HK1063227A1 (en) | 2004-12-17 |
WO2002088929A1 (fr) | 2002-11-07 |
EP1383038A4 (en) | 2008-10-15 |
US20040215675A1 (en) | 2004-10-28 |
EP1383038A1 (en) | 2004-01-21 |
JPWO2002088929A1 (ja) | 2004-08-19 |
CN100336013C (zh) | 2007-09-05 |
CN1509432A (zh) | 2004-06-30 |
US7496620B2 (en) | 2009-02-24 |
TWI303381B (en) | 2008-11-21 |
KR100915612B1 (ko) | 2009-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080172646A1 (en) | Array transformation in a behavioral synthesis tool | |
CZ9300787A3 (cs) | Způsob dynamického propojování kódových modulů v reálném čase a systém k provádění způsobu | |
JP4831793B2 (ja) | データ制御装置 | |
JP4153313B2 (ja) | 演算装置 | |
JP5153670B2 (ja) | 診断装置、診断方法および試験装置 | |
CN101441551B (zh) | 计算机、外存储器以及处理外存储器中数据信息的方法 | |
CN109656838A (zh) | 处理器系统及其存储器控制方法 | |
JP2002032264A (ja) | キャッシュメモリ装置及びそれを用いた中央演算処理装置 | |
JP2002099498A (ja) | プログラム実行装置およびプログラム開発支援装置 | |
JP5979965B2 (ja) | 回路設計支援装置及び回路設計支援方法及びプログラム | |
JPH043205A (ja) | データ・アクセス・システム | |
CN114492777A (zh) | 一种算力可扩展的多核神经网络张量处理器 | |
JP2001005718A (ja) | プロトコルハンドラ及びその信号処理方法 | |
CN117393046B (zh) | 一种空间转录组测序方法、系统、介质及设备 | |
Ünsalan et al. | Memory Operations | |
WO2021239056A1 (zh) | 计算程序中数据依赖关系的方法及计算机可读存储介质 | |
JP2005190161A (ja) | データ処理装置およびコンパイラ装置 | |
WO2021161978A1 (ja) | 記録媒体、命令生成方法及び命令生成装置 | |
KR20240104867A (ko) | 다중 하드웨어 모듈을 가진 가속장치 및 그 실행 방법 | |
JP2002207633A (ja) | 電子装置 | |
JPH08137521A (ja) | プログラム管理方法 | |
JP2003196087A (ja) | マイクロコントローラのメモリアドレッシング方法及びページマッピング装置 | |
JPH11249961A (ja) | データ転送装置およびデータ転送装置のデータ転送制御方法 | |
JP2002259209A (ja) | 演算処理システム | |
EP1434136A1 (en) | Microprocessor with cache memory and secondary memory, and method for programming such a microprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050307 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080318 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080519 |
|
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: 20080610 |
|
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: 20080703 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4153313 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120711 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130711 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |