JP2015014962A - Arithmetic device, arithmetic method, and program - Google Patents
Arithmetic device, arithmetic method, and program Download PDFInfo
- Publication number
- JP2015014962A JP2015014962A JP2013142020A JP2013142020A JP2015014962A JP 2015014962 A JP2015014962 A JP 2015014962A JP 2013142020 A JP2013142020 A JP 2013142020A JP 2013142020 A JP2013142020 A JP 2013142020A JP 2015014962 A JP2015014962 A JP 2015014962A
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- request
- arithmetic
- hash
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
Description
本発明は、演算装置、演算方法、及びプログラムに関する。 The present invention relates to a calculation device, a calculation method, and a program.
PC(personal computer)やMFP(multifunction peripheral)等の機器は、搭載されているソフトウェアの改ざんや、通信時のデータ改ざんを防止するため、ハッシュ値を使用した改ざんの検知を行う事は既に知られている。 It is already known that devices such as personal computers (MFPs) and multifunction peripherals (MFPs) detect tampering using hash values in order to prevent tampering with installed software and data during communication. ing.
例えば機器の起動時には、ソフトウェアのハッシュ値を計算し、機器の二次記憶装置に予め保存しておく。機器の起動時にはソフトウェアのハッシュ値を再計算し、二次記憶装置に予め保存してあるハッシュ値と比較して不一致であれば改ざんがなされたものと判定し、異常処理が行われる仕組みになっている。 For example, when the device is activated, a hash value of the software is calculated and stored in advance in the secondary storage device of the device. When the device starts up, the software hash value is recalculated, and if it does not match the hash value stored in the secondary storage device in advance, it is determined that it has been tampered with, and abnormal processing is performed. ing.
ハッシュ値の計算は、演算結果を出すために対象となるデータ全てを演算で使用して求められる。このため、演算を開始したら、通常は演算が完了するまでは別のデータの計算を途中で行うような事はしない。
対象となるデータの大きさに比例して演算時間も大きくなるため、CPU(central processing unit)で処理を行うよりも高速化するためにハードウェアを複数搭載しその処理を代行することで起動時間の短縮を図ることは既に知られている。
The calculation of the hash value is obtained by using all the target data in the calculation in order to obtain the calculation result. For this reason, once the calculation is started, another data calculation is not normally performed until the calculation is completed.
Since the computation time increases in proportion to the size of the target data, the startup time can be increased by installing multiple hardware to perform the processing faster than performing processing with a CPU (central processing unit). It is already known to shorten the time.
上記のようなハードウェアが複数存在する構成に加えてシステム上にCPUが複数あり、それぞれが独立にそのハードウェアを使用する場合を考える。その場合、CPUが制御を行おうとすると、まずハードウェアのモジュール1つに対して演算処理が行われているか否かを確認する。演算処理の有無の確認後、演算処理が無い場合、すなわち空いている場合演算要求としてのパラメータを設定の上、実行レジスタを叩くことができる。演算処理が有る場合、すなわち空いていない場合、処理が行われていない別のモジュールを探す、モジュールが使用できるまで待つ必要があった。このようなにハードウェアを使うためにCPUが余計な制御を行わなくてはならず、CPUの処理する負荷が増える問題があった。
また、モジュールが使用できるまで待つ必要がある場合には、その演算結果がクリティカルパス上の処理だとアプリケーションの実行時間が遅くなってしまう問題があった。
この種の問題を解決するための提案がなされている(例えば、特許文献1参照。)。
Consider the case where there are a plurality of CPUs in the system in addition to the above-described configuration having a plurality of hardware, and each of them uses the hardware independently. In this case, when the CPU tries to perform control, it first checks whether or not arithmetic processing is being performed on one hardware module. After confirming the presence / absence of the arithmetic processing, when there is no arithmetic processing, that is, when it is free, the execution register can be hit after setting the parameter as the arithmetic request. When there is an arithmetic processing, that is, when it is not free, it is necessary to search for another module that is not performing processing and wait until the module can be used. In order to use hardware like this, the CPU has to perform extra control, and there is a problem that the processing load of the CPU increases.
Further, when it is necessary to wait until the module can be used, there is a problem that the execution time of the application is delayed if the calculation result is processing on the critical path.
Proposals for solving this type of problem have been made (for example, see Patent Document 1).
特許文献1には、複数のマスタデバイスが一つのスレーブデバイスにアクセス要求が同時刻に発生した場合に、一番効率のよいアクセス要求の調停を行うことが目的で、競合調停装置、マスタスレーブシステム及び競合調停方法が開示されている。
特許文献1に記載の発明は、CPUが使用するスレーブデバイスへのアクセス要求を調停部がアクセス優先度を計算し、アクセス調停の最適化を図っている。しかしながら、スレーブデバイスが複数あり、その中でスレーブデバイスの調停の行い方をどのように最適化するかという問題は解消できていない。
In the invention described in
そこで、本発明の目的は、最適な演算要求の調停をすることにある。 Therefore, an object of the present invention is to arbitrate optimal calculation requests.
上記課題を解決するため、請求項1に記載の発明は、2つ以上のハッシュ演算部と、複数のホストデバイスからの演算要求に応じて実行するハッシュ演算部を決定し、決定されたハッシュ演算部にハッシュ演算を実行させる制御部と、を有することを特徴とする。
In order to solve the above problem, the invention described in
本発明によれば、最適な演算要求の調停をすることができる。 According to the present invention, it is possible to arbitrate optimal calculation requests.
本発明の実施の形態を説明する。
本発明は、複数のマスタが複数のハードウェアを持つ構成に際して、以下の特徴を有する。
<概 要>
複数のCPUが独立にハードウェアを同時で使用しても、制御部が演算装置に演算要求を出し、演算装置に接続されたイーサネット(以下、登録商標)I/Fの給電が停止している時に、他の機器が代理でLANより処理要求を代理で受け取る。待機電力が小さい外部接続I/F経由でイーサネットI/Fの復帰信号を受け省エネ復帰後、代理で処理を受け付けた機器が再び要求を出して通信を確立する。
An embodiment of the present invention will be described.
The present invention has the following characteristics when a plurality of masters have a plurality of hardware.
<Overview>
Even if multiple CPUs use hardware independently at the same time, the control unit issues a calculation request to the calculation device, and power supply to the Ethernet (hereinafter, registered trademark) I / F connected to the calculation device is stopped. Sometimes, another device receives a processing request from the LAN as a proxy. After receiving the Ethernet I / F return signal via the external connection I / F with low standby power, the device that received the process on behalf of the proxy issues a request again to establish communication.
<実施形態>
本実施形態について、以下の図面を用いて詳細に解説する。
[構 成]
図1は、一実施形態としての画像形成装置全体構成についての説明図である。
CPU A(16a)、CPU B(16b)は、画像形成装置を統括制御する回路であり、ソフトウェアの実行、演算処理モジュールA(13a),B(13b)への演算要求、各モジュールへの動作指示が可能である。CPU A(16a)、CPU B(16b)は、割り込み信号の通知により、ハッシュ値を比較するため演算処理モジュールA(13a),B(13b)へ演算結果の確認を行う。また、CPU A(16a)、CPU B(16b)の処理速度は演算モジュールA(16a)、CPU B(16b)に劣るがハッシュ値の計算も自ら行うことができる。CPU A(16a)、CPU B(16b)は、それぞれ独立に動作する。本実施形態ではCPU A(16a)、CPU B(16b)の数は2つであるが、本発明はこれに限定されるものではなく、3つ以上のCPUが接続されていてもよい。
<Embodiment>
The present embodiment will be described in detail with reference to the following drawings.
[Constitution]
FIG. 1 is an explanatory diagram of an overall configuration of an image forming apparatus as an embodiment.
CPU A (16a) and CPU B (16b) are circuits that centrally control the image forming apparatus, execute software, request computations to the arithmetic processing modules A (13a) and B (13b), and operate the modules. Instructions are possible. The CPU A (16a) and the CPU B (16b) confirm the calculation result to the arithmetic processing modules A (13a) and B (13b) in order to compare the hash values by the notification of the interrupt signal. The processing speed of CPU A (16a) and CPU B (16b) is inferior to that of arithmetic module A (16a) and CPU B (16b), but the hash value can be calculated by itself. CPU A (16a) and CPU B (16b) operate independently of each other. In this embodiment, the number of CPUs A (16a) and CPUs B (16b) is two. However, the present invention is not limited to this, and three or more CPUs may be connected.
主記憶装置12は、ソフトウェアやデータの展開場所になる。CPU A(16a)、CPU B(16b)や各モジュールのDMAC(ダイレクトメモリアクセスコントロール)からアクセスを受けメモリ上のデータを読み書きする機能を有する。
The
不揮発性メモリ11は、電源がOFFになっている間にソフトウェアや、データを保存しておくための領域を有する。不揮発性メモリ11は、主記憶装置12より転送速度が遅いため、電源投入後必要に応じて主記憶装置12にデータを展開する。直接CPU A(16a)、CPU B(16b)やDMACにてアクセスも可能である。
The
外部接続I/F(15)は、外部のネットワークに接続されるI/Fである。代表的な例としてはイーサネットI/Fが挙げられる。外部接続I/F(15)は、SDメモリカードやUSBフラッシュメモリ等のデータを記憶しているストレージが接続されてもよい。外部接続I/F(15)は、ハッシュ値を演算する必要のあるものである。 The external connection I / F (15) is an I / F connected to an external network. A typical example is Ethernet I / F. The external connection I / F (15) may be connected to a storage storing data such as an SD memory card or a USB flash memory. The external connection I / F (15) needs to calculate a hash value.
演算処理モジュールA(13a)及び演算処理モジュールB(13b)は、ハッシュ値を演算するモジュールである。ソフトウェア及びデータ全て演算に使って、ハッシュ値を演算し結果を出力する。
演算処理モジュールA(13a)、B(13b)は、他のモジュールと同様にバスライン17に接続され、詳細には図2に示す構成になっている。
The arithmetic processing module A (13a) and the arithmetic processing module B (13b) are modules that calculate hash values. All the software and data are used for calculation, and the hash value is calculated and the result is output.
The arithmetic processing modules A (13a) and B (13b) are connected to the
図2は、演算処理モジュールの概念図である。
レジスタ部23には割り込みの出力先を決定するための割り込みマスクレジスタ処理のパラメータ、割り込みのクリアレジスタ、演算開始レジスタ、演算結果レジスタ、DMACのアクセススタートアドレス、及びデータサイズを設定するレジスタを有する。
演算部22は、CPU A(16a),CPU B(16b)により決定されたハッシュ演算部が演算したデータをカウントするデータカウンタと、ハッシュ演算部の処理能力より推定処理時間を算出する第一の算出回路と、を有する。
FIG. 2 is a conceptual diagram of the arithmetic processing module.
The register unit 23 includes a register for setting an interrupt mask register processing parameter for determining an interrupt output destination, an interrupt clear register, an operation start register, an operation result register, an access start address of a DMAC, and a data size.
The
また、演算部22は、CPU A(16a),CPU B(16b)により決定されたハッシュ演算部に演算を要求すると演算要求内容のデータサイズと演算部の処理能力とを算出する。演算部22は、複数のハッシュ演算部の推定完了時間を集計して最も短時間となる推定完了時間とを併せることで演算の要求が完了する推定時間を算出する第二の算出回路を有してもよい。
Further, when the
演算処理モジュールは、演算の完了後、演算結果レジスタに結果を格納すると割り込み信号をCPUに送る。割り込み信号線はそれぞれのCPUに接続され、要求のあったCPUへ割り込み信号を送る。
ここで、演算装置は、閾値設定が可能であって、演算の要求が複数蓄積された時に、演算の要求が完了する推定時間が閾値以上で、かつ、演算の要求のデータサイズが閾値以下の場合、演算要求を却下する却下回路を有してもよい。
When the operation processing module stores the result in the operation result register after the operation is completed, the operation processing module sends an interrupt signal to the CPU. The interrupt signal line is connected to each CPU and sends an interrupt signal to the requested CPU.
Here, the computing device can set a threshold value, and when a plurality of computation requests are accumulated, the estimated time for completing the computation request is equal to or greater than the threshold value, and the data size of the computation request is equal to or less than the threshold value. In this case, a reject circuit for rejecting the calculation request may be provided.
本実施形態では、CPUとの間に演算制御モジュール22が挿入されている。
演算処理モジュールは、DMAC21を搭載しており、演算開始をすると演算対象となるデータをCPUの介在なしにリードをする。レジスタ部23にアクセススタートアドレスとデータサイズとを設定することで、アクセスするアドレスを順次カウントアップする。このカウントアップと共に、設定サイズからのダウンカウンタを動作させることで0になると設定した範囲のデータをリードできる仕組みを有する。
演算処理モジュールがバスラインと接続するのは上記のレジスタ部23とDMAC21とであり、レジスタ部23はCPUからのアクセスを行い、DMAC21は記憶領域へのリードアクセスを行う。本実施形態ではレジスタ部23とDMAC21との2つであるがそれ以上の数が接続されていてもよい。
In this embodiment, an
The arithmetic processing module is equipped with a
The arithmetic processing module is connected to the bus line between the register unit 23 and the
[動 作]
演算処理モジュールの制御方法をフローチャート図3に示す。
演算処理モジュールは、初めにレジスタ設定、パラメータの設定、DMAC21の設定、及び割り込み先の設定を行う(ステップS1)。
レジスタ設定を終えると演算開始レジスタ設定でDMAが行われ、ハッシュ値演算が開始される(ステップS2)。
演算が完了して、演算結果レジスタにデータが格納されると割り込み信号を設定した先に出力する(ステップS3)。
割り込み信号をクリアして(ステップS4)、演算結果レジスタをリードすれば演算結果が求まり処理が完了となる(ステップS5)。
本実施形態では、レジスタ設定〜演算開始レジスタ設定をするまでを演算要求と呼び、割り込みクリア〜演算結果レジスタリードを結果確認と呼ぶ。
[Operation]
A control method of the arithmetic processing module is shown in the flowchart of FIG.
The arithmetic processing module first performs register setting, parameter setting,
When the register setting is completed, DMA is performed with the calculation start register setting, and hash value calculation is started (step S2).
When the calculation is completed and data is stored in the calculation result register, the interrupt signal is output to the set destination (step S3).
If the interrupt signal is cleared (step S4) and the operation result register is read, the operation result is obtained and the processing is completed (step S5).
In the present embodiment, the process from register setting to operation start register setting is referred to as an operation request, and interrupt clearing to operation result register reading is referred to as a result confirmation.
演算制御モジュール14−1は、CPUからの演算要求を一時的に保存し、空いている演算処理モジュールにその演算要求を出して、演算結果が演算処理モジュールから出てくると、その演算結果を預かり、CPUへ割り込み信号を使って通知する。 The calculation control module 14-1 temporarily stores the calculation request from the CPU, issues the calculation request to an empty calculation processing module, and when the calculation result is output from the calculation processing module, the calculation result is displayed. Deposit and notify the CPU using an interrupt signal.
その機能を実現するため、詳細は図4に示すようになっている。
図4は、演算制御モジュールの他の一例を示す図である。
演算要求管理部32は、演算要求を一時的に保存しておく。具体的にはCPUが演算モジュールへのレジスタアクセスを成立させ、演算要求のレジスタ設定を記憶する。また、受け付けたCPU(CPU AまたはCPU B)と演算要求の通し番号をID情報として付随して記憶しておく。そして演算要求部に演算要求があった事を演算要求調停部31へ通知する。演算要求調停部31より演算要求の通知がきたら保存した設定をクリアする。このとき、一つのCPUが複数演算要求を出した場合にCPUがその演算要求と演算結果が紐づいていないとならない為、複数の演算要求を出す場合、CPUは通し番号をレジスタに書き込む必要がある。
演算要求を一時的に記憶しておく記憶領域は複数もつものとする。
演算要求調停部31は、演算要求の実行と完了の通知から演算処理もしくは演算処理が処理中であるか、待機状態であるかを判断する。演算管理部33から通知があった場合、待機モジュールへ演算管理部33に保存してある演算要求を演算モジュールへ設定する。設定が完了したら演算要求管理部に演算要求が完了したことを通知する。またこのとき何を処理中であるかが解釈できる様、演算要求管理部32よりID情報を受け取りモジュールが処理中のIDを記憶しておく。そして演算処理が完了モジュールから割り込みが入力されると、演算結果管理部33へ完了したモジュールとIDの情報を出力する。
The details are as shown in FIG. 4 in order to realize the function.
FIG. 4 is a diagram illustrating another example of the arithmetic control module.
The calculation
It is assumed that there are a plurality of storage areas for temporarily storing calculation requests.
The calculation
演算結果管理部33は、演算要求管理部32から来たモジュールに対して結果確認を行う。その結果を一時的に保存し、ID情報内のCPUへ対して割り込み信号を出力する。CPUより結果確認のアクセスが完了すると一時的に保存した演算結果及びIDを削除する。このときID情報内の通し番号はレジスタリードを可能としCPUは該当のレジスタをリードしてどの演算要求の結果かが分かるようにしておき、複数の演算要求があった場合の識別に活用する。
「どの演算要求の結果かが分かるようにしておき」とは、結果記憶領域*(*=1,2)毎に通し番号の格納レジスタ*を用意し、結果記憶領域*をリードする際に通し番号の格納レジスタをリードすることでどの演算要求の結果かを分かるようにすることである。
演算要求を一時的に記憶しておく記憶領域は複数もつものとする。
The calculation
`` Make sure that the operation request result is known '' means that a serial number storage register * is prepared for each result storage area * (* = 1, 2), and the serial number is stored when the result storage area * is read. It is to know which operation request result is obtained by reading the storage register.
It is assumed that there are a plurality of storage areas for temporarily storing calculation requests.
図5は、演算処理が行われるフローの一例である。
図5は横軸が時間の推移を表し、各部位が処理中、または記録保持中の使用されている状態を斜線で示し、待機状態、記憶可能時を白で表す。またCPUの演算要求と確認結果とは△の部分で前記のアクセスがA又はBのCPUより来た事を表す。
この処理が行われる例では演算管理部の記憶領域が2つで、演算結果管理部の記憶領域が2つある場合で説明を行う。
FIG. 5 is an example of a flow in which arithmetic processing is performed.
In FIG. 5, the horizontal axis represents the transition of time, the state in which each part is being processed or record-holding is indicated by hatching, and the standby state and the storage possible time are indicated by white. Further, the CPU calculation request and the confirmation result indicate that the access is from the A or B CPU in the portion of Δ.
In the example in which this processing is performed, a case will be described where there are two storage areas for the calculation management unit and two storage areas for the calculation result management unit.
フローとして演算要求管理部、演算モジュールA,B、演算結果管理部への処理調停を行っているのが演算要求調停部となる。
最初にCPU Aから1番の要求(要求A-1)が入ると演算調停部は、演算要求記憶領域1にデータを保持させる。(1)の通り演算モジュールAが空いているため、その演算モジュールAにて演算処理(処理A-1)が行われる。
The calculation request arbitration unit performs processing arbitration to the calculation request management unit, the calculation modules A and B, and the calculation result management unit as a flow.
When the first request (request A-1) is received from CPU A for the first time, the arithmetic arbitration unit holds data in the arithmetic
次にCPU Bから演算要求1番(要求B-1)が入ると、演算要求記憶領域1にデータを保持させ、今度は演算モジュールAが処理中であるため(2)の通り演算モジュールBに演算処理(処理A-1)を行わせる。この処理A-1の間にCPU Aに演算要求の2番(要求B-1)が入ると、演算要求記憶億領域1は保持中であるため演算要求記憶領域2に一時的に保存させ、演算モジュールが空くまで、待機状態となる。この時演算モジュールA,Bが両方空いていなくても要求の記憶領域が一時的に要求を受け付けるため、演算モジュールA,Bの使用状況に関係なくCPU A,CPU Bは演算要求を出せるようになる。
Next, when calculation request No. 1 (request B-1) is input from CPU B, the data is stored in the calculation
次に演算モジュールAの演算が完了すると結果確認をして(3)の通り結果、演算要求記憶領域に移動する。割り込み命令がCPU Aへ出力され、CPU Aが結果確認を終え、CPU Aの要求1番(A-1)の処理が完了する(結果A-1)。この時演算モジュールAが処理を完了するので、(4)の演算要求記憶領域2の演算要求を演算モジュールAで演算開始する。この間に、CPU Aより3番の演算要求(要求A-3)のアクセスがあると演算要求記憶領域1の記憶領域は空いているのでそこにCPU Aの3番の演算要求を保持しておく。
Next, when the calculation of the calculation module A is completed, the result is confirmed, and the result is moved to the calculation request storage area as shown in (3). An interrupt instruction is output to CPU A, CPU A finishes checking the result, and processing of request No. 1 (A-1) of CPU A is completed (result A-1). At this time, since the processing module A completes the processing, the processing request in the processing request storage area 2 (4) is started by the processing module A. During this time, if CPU A accesses the third calculation request (request A-3), the storage area of calculation
次に(5)の通り演算モジュールBより処理が終わり結果演算要求記憶領域に演算結果が移りCPU Bが結果確認を行う。この時、CPU Bの結果確認が完了しない場合は、結果確認領域2を使用し(6)のように演算モジュールAの結果を結果演算要求記憶領域に移動させる。
上記のようなフローで演算要求調停部は演算要求を調停して、演算処理を効率的かつCPUの負荷を減らすことが可能である。
Next, as shown in (5), the processing ends from the operation module B, the operation result is transferred to the result operation request storage area, and the CPU B confirms the result. At this time, if the result confirmation of CPU B is not completed, the
In the flow as described above, the calculation request arbitration unit can arbitrate calculation requests to efficiently perform calculation processing and reduce the load on the CPU.
<比較例>
図6は、本実施形態の演算器と単純に演算モジュールA,Bに演算用要求アクセスを行う場合の差を示す比較例である。
CPU A及びCPU Bが独立に演算モジュールを使用するため、図6のCPU A-2、A-3の要求時には演算モジュールBが使用可能になるのをCPU Aは定期的に確認する必要があり、結果としてCPUの負荷が増大してしまう。
また演算モジュールA,BをそれぞれCPU A、CPU Bの専用とすればCPU A、CPU Bの要求アクセスは、モジュールA,Bが演算処理を行っているかは自己で管理するため本実兄対と同じ回数で実現できる。しかし、他方が演算処理モジュールを使用していないときに処理したい演算要求があっても使用できないため効率が落ちてしまう。
<Comparative example>
FIG. 6 is a comparative example showing a difference between the arithmetic unit of the present embodiment and a calculation request access to the arithmetic modules A and B simply.
Since CPU A and CPU B use computation modules independently, CPU A must periodically check that computation module B can be used when CPUs A-2 and A-3 in Figure 6 are requested. As a result, the CPU load increases.
Also, if calculation modules A and B are dedicated to CPU A and CPU B respectively, the request access of CPU A and CPU B is the same as this actual brother pair because module A and B are performing their own calculation processing. It can be realized by the number of times. However, even if there is an operation request to be processed when the other is not using the operation processing module, it cannot be used and the efficiency is lowered.
<実施形態2>
図7は、図4に示した演算制御モジュール、及び演算処理モジュールに機能を追加した構成を示す実施形態2である。
演算処理モジュールA(13a),B(13b)は、DMACのデータサイズからのダウンカウンタ値を演算制御モジュールへ出力する。
演算制御モジュール14−3は、演算要求管理部32と、処理時間推定部34とを有する。演算要求管理部32は、演算要求のIDとデータサイズを処理時間推定部34へ出力する。また、処理時間推定部34より演算キャンセル要求が来た場合、演算要求をキャンセルし削除する。
処理時間推定部34は、演算処理モジュールからのダウンカウンタから、演算処理モジュールの演算完了推定時間を算出する。ハッシュ値の演算は、データが一定に入力されれば演算器の処理能力は固定であるため、演算要求の転送や演算結果の格納時の固定時間を加えて下記演算にて演算完了推定時間が求まる。
"演算処理モジュールA(13a),B(13b)の推定処理時間"="固定時間"+"ダウンカウンタ(残りのデータサイズ)"÷“演算処理能力”となる。
この値は、データが遅延なくリードできた場合を想定するので予測値は最速値となる。
演算要求管理部32からのIDとデータサイズ値とから、該当するIDの演算完了推定時間を算出する。ハッシュ値の演算は、データが一定に入力されれば演算器の処理能力は固定であるため、演算要求の転送や演算結果の格納時の固定時間を加えて下記演算にて演算完了推定時間が求まる。
"該当するIDの推定処理時間"= "固定時間"+"データサイズ値"÷“演算処理能力”
この値は、データが遅延なくリードできた場合を想定するので予測値は最速値となる。
<
FIG. 7 is
The arithmetic processing modules A (13a) and B (13b) output the down counter value from the DMAC data size to the arithmetic control module.
The calculation control module 14-3 includes a calculation
The processing
“Estimated processing time of arithmetic processing modules A (13a) and B (13b)” = “fixed time” + “down counter (remaining data size)” ÷ “arithmetic processing capacity”.
Since this value assumes that data can be read without delay, the predicted value is the fastest value.
Based on the ID from the calculation
"Estimated processing time for the corresponding ID" = "Fixed time" + "Data size value" ÷ "Calculation processing capacity"
Since this value assumes that data can be read without delay, the predicted value is the fastest value.
上述して二つの演算結果より、演算処理モジュールのスケジュールを予測して演算要求が完了する予測演算完了時間を算出する。理論上の最速値で演算されるため予測完了時間は最速値となる。この値を演算要求取消判定部に出力する。
演算要求取消判定部は、各演算要求の予測演算完了時間をリードアクセス可能なレジスタに保持することでCPUよりリードが可能である。また、演算要求を取消設定可能なレジスタを設け、IDの演算の通し番号を設定の上で演算要求のキャンセル設定ができ、実行されると演算要求管理部の該当の演算要求を取り消す。
ここで、「取り消す」とは、要求中止レジスタを用意してCPUよりそのレジスタにアクセスがあると要求を取り消すことができる機能である。
As described above, from the two calculation results, the calculation processing module schedule is predicted to calculate the predicted calculation completion time for completing the calculation request. Since the calculation is performed with the theoretically fastest value, the predicted completion time is the fastest value. This value is output to the calculation request cancellation determination unit.
The calculation request cancellation determination unit can read from the CPU by holding the predicted calculation completion time of each calculation request in a read accessible register. In addition, a calculation request cancel register can be provided to cancel the calculation request after setting the ID calculation serial number. When the calculation request is executed, the calculation request management unit cancels the corresponding calculation request.
Here, “cancel” is a function that prepares a request cancel register and cancels the request when the CPU accesses the register.
演算処理時間は、演算要求の転送や演算結果の格納時の固定時間が必ずかかるためデータサイズが小さくなると固定時間が支配的になり、時間あたりの演算処理能力が小さくなる。そのため、各CPUに対して推定演算時間閾値レジスタを備えて、順番待ちが発生している時に、推定演算時間閾値レジスタを下回る処理推定時間の演算要求は取消を自動で行い、割り込み信号で取り消した事を対象のCPUへ通知する。取り消された側のCPUは、ハッシュ計算をCPU自身で行う。これは処理待ち等により演算処理モジュールが実行するよりCPU自身で実行した方が早く処理されるためである。 The calculation processing time always takes a fixed time for transferring the calculation request and storing the calculation result. Therefore, when the data size is reduced, the fixed time becomes dominant, and the calculation processing capacity per time is reduced. Therefore, each CPU is equipped with an estimated calculation time threshold register, and when waiting for a turn occurs, the calculation request for the processing estimated time below the estimated calculation time threshold register is automatically canceled and canceled with an interrupt signal. Notify the target CPU of the event. The canceled CPU performs the hash calculation by itself. This is because the processing executed by the CPU itself is processed faster than the arithmetic processing module executes due to processing waiting or the like.
<実施形態3>
図8は、実施形態3を示す図である。
同図は、処理時間推定部の演算処理モジュールのスケジュールの予測についての説明図である。演算処理モジュールがA及びB、演算要求記憶領域が5つあり演算待ちが5ある状態となっている。まず演算中のモジュールで演算完了推定時間が短い方に待ち1の要求を設定し、演算要求A-1の推定完了時間が求まる。
次に演算要求B-1は演算処理モジュールAの演算中の演算完了推定時間と演算処理モジュールBのA-1演算完了推定時間を比べて短い方に推定処理時間を重ね計算する。これを繰り返す事で演算要求の演算完了推定時間を算出する。
<
FIG. 8 is a diagram illustrating the third embodiment.
This figure is an explanatory diagram for predicting the schedule of the arithmetic processing module of the processing time estimation unit. There are arithmetic processing modules A and B, five arithmetic request storage areas, and five arithmetic waits. First, a request of waiting 1 is set to the shorter calculation completion estimated time in the module being calculated, and the estimated completion time of the calculation request A-1 is obtained.
Next, the calculation request B-1 is calculated by superimposing the estimated processing time on the shorter one between the calculation completion estimated time during calculation of the calculation processing module A and the A-1 calculation completion estimated time of the calculation processing module B. By repeating this, the calculation completion estimated time of the calculation request is calculated.
<プログラム>
以上で説明した本発明に係る演算装置は、コンピュータで処理を実行させるプログラムによって実現されている。コンピュータとしては、例えばパーソナルコンピュータやワークステーションなどの汎用的なものが挙げられるが、本発明はこれに限定されるものではない。よって、一例として、プログラムにより本発明の機能を実現する場合の説明を以下で行う。
<Program>
The arithmetic device according to the present invention described above is realized by a program that causes a computer to execute processing. Examples of the computer include general-purpose computers such as personal computers and workstations, but the present invention is not limited to this. Therefore, as an example, a case where the function of the present invention is realized by a program will be described below.
例えば、
2つ以上のハッシュ演算部を有する演算装置の実質的なコンピュータに、
決定手段が、複数のホストデバイスからの演算要求に応じて実行するハッシュ演算部を決定する手順、
決定されたハッシュ演算部が、ハッシュ演算を行う手順、
を実行させるプログラムが挙げられる。
For example,
In a substantial computer of a computing device having two or more hash computing units,
A procedure for determining a hash calculation unit to be executed in response to calculation requests from a plurality of host devices;
The determined hash calculation unit performs a hash calculation procedure,
A program that executes
これにより、プログラムが実行可能なコンピュータ環境さえあれば、どこにおいても本発明にかかる演算装置を実現することができる。
このようなプログラムは、コンピュータに読み取り可能な記憶媒体に記憶されていてもよい。
Thus, the arithmetic device according to the present invention can be realized anywhere as long as there is a computer environment capable of executing the program.
Such a program may be stored in a computer-readable storage medium.
<記憶媒体>
ここで、記憶媒体としては、例えばCD−ROM、フレキシブルディスク(FD)、CD−ROM等のコンピュータで読み取り可能な記憶媒体、フラッシュメモリ、RAM、ROM、FeRAM等の半導体メモリやHDDが挙げられる。
<Storage medium>
Here, examples of the storage medium include a computer-readable storage medium such as a CD-ROM, a flexible disk (FD), and a CD-ROM, a semiconductor memory such as flash memory, RAM, ROM, and FeRAM, and an HDD.
CE−ROMは、Compact Disc Read Only Memoryの略である。フレキシブルディスクは、Flexible Disk:FDを意味する。CD−Rは、CD Recordableの略である。RAMは、Random-Access Memoryの略である。ROMは、Read-Only Memoryの略である。FeRAMは、Ferroelectric RAMの略で、強誘電体メモリを意味する。HDDは、Hard Disc Driveの略である。 CE-ROM is an abbreviation for Compact Disc Read Only Memory. Flexible disk means Flexible Disk (FD). CD-R is an abbreviation for CD Recordable. RAM is an abbreviation for Random-Access Memory. ROM is an abbreviation for Read-Only Memory. FeRAM is an abbreviation for Ferroelectric RAM and means a ferroelectric memory. HDD is an abbreviation for Hard Disc Drive.
<作用効果>
以上において、本実施形態によれば、複数の演算処理モジュールと複数CPUの間に調停モジュールを追加することで、いずれか一方CPUからのレジスタ設定をその調停モジュールに備わったバッファに一時的に溜め込む。調停モジュールによって処理が行われていない演算モジュールへ演算を行わせるため、CPUからの制御は1つの演算モジュールと同じ制御のままで実現できる。
この結果CPUが同一機能のモジュールが複数ある場合にどのモジュールの使用状況を意識しないで処理を行えるように調停用のモジュールが複数同一機能モジュールを管理する事で、CPUの制御負荷を軽くすることができる。
<Effect>
As described above, according to the present embodiment, by adding an arbitration module between a plurality of arithmetic processing modules and a plurality of CPUs, register settings from any one of the CPUs are temporarily stored in a buffer provided in the arbitration module. . Since the arithmetic module that has not been processed by the arbitration module performs the arithmetic operation, the control from the CPU can be realized with the same control as that of one arithmetic module.
As a result, when multiple CPU modules have the same function, the arbitration module manages multiple modules with the same function so that processing can be performed without being aware of which module's usage status, thereby reducing the CPU control load. Can do.
また、演算処理時に処理能力の下がるデータサイズの小さいデータは演算を行わない事で演算器を高効率に動作させることができる。これは、処理するデータに対してオーバヘッドの割合が大きくなると単位時間当たりの演算処理能力が低下する。そのようなデータをここでは小さいデータと呼ぶ。 In addition, it is possible to operate the computing unit with high efficiency by not performing computation on data with a small data size that decreases in processing capacity during computation processing. This is because the processing capacity per unit time decreases as the overhead ratio increases with respect to the data to be processed. Such data is referred to herein as small data.
尚、上述した実施の形態は、本発明の好適な実施の形態の一例を示すものであり、本発明はそれに限定されることなく、その要旨を逸脱しない範囲内において、種々変形実施が可能である。 The above-described embodiment shows an example of a preferred embodiment of the present invention, and the present invention is not limited thereto, and various modifications can be made without departing from the scope of the invention. is there.
1、2 演算要求記憶領域
11 不揮発性メモリ
12 主記憶装置
13a 演算処理モジュール A
13b 演算処理モジュール B
14−1、14−2、14−3 演算制御モジュール
15 外部接続I/F
16a CPU A
16b CPU B
17 バスライン
21 DMAC
22 演算部
23 レジスタ部
31 演算要求調停部
32 演算要求管理部
33 演算結果管理部
34 処理時間推定部
1, 2 Calculation
13b Arithmetic processing module B
14-1, 14-2, 14-3
16a CPU A
16b CPU B
17
22 Calculation Unit 23
Claims (8)
前記決定されたハッシュ演算部が演算したデータをカウントするデータカウンタと、前記ハッシュ演算部の処理能力より、推定処理時間を算出する第一の算出回路と、を有することを特徴とする演算装置。 The arithmetic unit according to claim 1,
An arithmetic apparatus comprising: a data counter that counts data calculated by the determined hash calculation unit; and a first calculation circuit that calculates an estimated processing time based on the processing capability of the hash calculation unit.
前記決定されたハッシュ演算部に演算を要求すると演算要求内容のデータサイズと前記ハッシュ演算部の処理能力とを算出し、複数のハッシュ演算部の推定完了時間を集計して最も短時間となる推定完了時間とを併せることで前記演算の要求が完了する推定時間を算出する第二の算出回路を有することを特徴とする演算装置。 The arithmetic unit according to claim 2,
When an operation is requested to the determined hash calculation unit, the data size of the calculation request content and the processing capability of the hash calculation unit are calculated, and the estimation completion time of a plurality of hash calculation units is aggregated to estimate the shortest time An arithmetic apparatus comprising: a second calculation circuit that calculates an estimated time for completion of the calculation request by combining with a completion time.
閾値設定が可能であって、演算の要求が複数蓄積された時に、演算の要求が完了する推定時間が閾値以上で、かつ、演算の要求のデータサイズが閾値以下の場合、演算要求を却下する却下回路を有することを特徴とする演算装置。 In the arithmetic unit according to claim 3,
If a threshold can be set and multiple calculation requests are accumulated, the calculation request is rejected if the estimated time to complete the calculation request is greater than or equal to the threshold and the data size of the calculation request is less than or equal to the threshold. An arithmetic unit comprising a rejection circuit.
演算の要求が完了する推定時間をホストデバイスに通知する機能を有することを特徴とする演算装置。 In the arithmetic unit according to claim 3,
A computing device having a function of notifying a host device of an estimated time for completion of a computation request.
演算の要求を取り消す機能を有することを特徴とする演算装置。 The arithmetic unit according to claim 5, wherein
A computing device having a function of canceling a computation request.
決定手段が、複数のホストデバイスからの演算要求に応じて実行するハッシュ演算部を決定する手順、
決定された前記ハッシュ演算部が、ハッシュ演算を行う手順、
を実行させることを特徴とするプログラム。 In a substantial computer of a computing device having two or more hash computing units,
A procedure for determining a hash calculation unit to be executed in response to calculation requests from a plurality of host devices;
The determined hash calculation unit performs a hash calculation,
A program characterized by having executed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013142020A JP2015014962A (en) | 2013-07-05 | 2013-07-05 | Arithmetic device, arithmetic method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013142020A JP2015014962A (en) | 2013-07-05 | 2013-07-05 | Arithmetic device, arithmetic method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015014962A true JP2015014962A (en) | 2015-01-22 |
Family
ID=52436648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013142020A Pending JP2015014962A (en) | 2013-07-05 | 2013-07-05 | Arithmetic device, arithmetic method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015014962A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019208230A (en) * | 2019-07-10 | 2019-12-05 | 日本電気株式会社 | User apparatus and method performed by base station |
JP2021190978A (en) * | 2020-05-28 | 2021-12-13 | 杭州燦八科技有限公司 | Method and system for protecting big data network data by edge computing |
-
2013
- 2013-07-05 JP JP2013142020A patent/JP2015014962A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019208230A (en) * | 2019-07-10 | 2019-12-05 | 日本電気株式会社 | User apparatus and method performed by base station |
JP2021190978A (en) * | 2020-05-28 | 2021-12-13 | 杭州燦八科技有限公司 | Method and system for protecting big data network data by edge computing |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2811413B1 (en) | Computer system, access method and apparatus for peripheral component interconnect express endpoint device | |
JP3807250B2 (en) | Cluster system, computer and program | |
JP2009187223A (en) | Processor, electronic equipment, interrupt control method, and interrupt control program | |
JP2011070655A (en) | Information processing apparatus, memory dump system and memory dump method | |
JP2009043256A (en) | Accessing method and arrangement of memory unit | |
US10990544B2 (en) | PCIE root complex message interrupt generation method using endpoint | |
US9170963B2 (en) | Apparatus and method for generating interrupt signal that supports multi-processor | |
JP2010282585A (en) | Power management circuit, power management method and power management program | |
JP2015014962A (en) | Arithmetic device, arithmetic method, and program | |
JP2005293596A (en) | Arbitration of data request | |
JP5981004B2 (en) | Semiconductor device | |
WO2015165055A1 (en) | Data storage method, memory controller and central processing unit | |
JP2010044645A (en) | Data transfer device, and data transfer method | |
US10269194B2 (en) | Multiprocessor system and vehicle control system | |
JP2011090485A (en) | Circuit and method for pipe arbitration | |
JP5783348B2 (en) | Control device, control program, and image forming apparatus | |
JP6632416B2 (en) | Shared memory control circuit and shared memory control method | |
JP5239769B2 (en) | Request order control system, request order control method, and request order control program | |
WO2007039933A1 (en) | Operation processing device | |
US9411758B2 (en) | Semiconductor device | |
US20080307190A1 (en) | System and Method for Improved Virtual Real Memory | |
JP6416488B2 (en) | Semiconductor device | |
JP2014157392A (en) | Semiconductor device and data processing system | |
JP6992295B2 (en) | Electronic device | |
CN109597770B (en) | Semiconductor device and method for use in semiconductor device |