Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7092555B2 - Arithmetic logic unit and interruption method - Google Patents
[go: Go Back, main page]

JP7092555B2 - Arithmetic logic unit and interruption method - Google Patents

Arithmetic logic unit and interruption method Download PDF

Info

Publication number
JP7092555B2
JP7092555B2 JP2018099978A JP2018099978A JP7092555B2 JP 7092555 B2 JP7092555 B2 JP 7092555B2 JP 2018099978 A JP2018099978 A JP 2018099978A JP 2018099978 A JP2018099978 A JP 2018099978A JP 7092555 B2 JP7092555 B2 JP 7092555B2
Authority
JP
Japan
Prior art keywords
arithmetic unit
executed
unit
processor
processing
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.)
Active
Application number
JP2018099978A
Other languages
Japanese (ja)
Other versions
JP2019204365A (en
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.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
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 Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2018099978A priority Critical patent/JP7092555B2/en
Publication of JP2019204365A publication Critical patent/JP2019204365A/en
Application granted granted Critical
Publication of JP7092555B2 publication Critical patent/JP7092555B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、演算装置および中断方法に関する。 The present invention relates to an arithmetic unit and an interruption method.

従来、演算装置による異常な処理を防ぐための対策が実施されている。このような技術の一例として、マイクロプロセッサが異常な分岐命令を実行した場合は、分岐命令後の数値データの読み込みを禁止することで、暴走を防ぐ技術が知られている。 Conventionally, measures have been taken to prevent abnormal processing by the arithmetic unit. As an example of such a technique, there is known a technique for preventing runaway by prohibiting reading of numerical data after a branch instruction when a microprocessor executes an abnormal branch instruction.

特開平11-212828号公報Japanese Unexamined Patent Publication No. 11-21428

“FPGAのしくみと開発に使うソフトとハード”,丹下 昌彦<インターネット>http://toragi.cqpub.co.jp/Portals/0/backnumber/2009/03/p096-097.pdf(平成30年5月1日検索)"Mechanism of FPGA and software and hardware used for development", Masahiko Tange <Internet> http://toragi.cqpub.co.jp/Portals/0/backnumber/2009/03/p096-097.pdf (May 2018) Search on the 1st of the month)

しかしながら、上述した技術では、異常な処理を適切に防ぐことができない場合がある。 However, the above-mentioned technique may not be able to appropriately prevent abnormal processing.

例えば、上述した技術では、デジタル回路を用いてマイクプロセッサの動作を監視する。しかしながら、このようなデジタル回路がウイルスやハッカーにより操作された場合、適切にマイクロプロセッサの動作を監視することができなくなる。 For example, in the technique described above, the operation of the microphone processor is monitored by using a digital circuit. However, if such a digital circuit is manipulated by a virus or a hacker, it will not be possible to properly monitor the operation of the microprocessor.

本願は、上記に鑑みてなされたものであって、演算装置による異常な処理の防止をより適切に行うことを目的とする。 The present application has been made in view of the above, and an object thereof is to more appropriately prevent abnormal processing by an arithmetic unit.

本願に係る演算装置は、アナログ回路を含む論理回路の組み合わせを変更することで所定の処理を実行可能な第1演算部と、所定の命令セットを実行可能な第2演算部とを有する演算装置であって、前記第1演算部は、前記論理回路を組み合わせることで、前記第2演算部が実行する処理を監視する監視処理と、前記第2演算部が実行する処理が所定の条件を満たした場合は、前記第2演算部による処理の実行を中断させる中断処理とを実行することを特徴とする。 The arithmetic unit according to the present application has a first arithmetic unit capable of executing a predetermined process by changing a combination of logic circuits including an analog circuit, and a second arithmetic unit capable of executing a predetermined instruction set. The first arithmetic unit satisfies a predetermined condition in the monitoring process for monitoring the process executed by the second arithmetic unit and the process executed by the second arithmetic unit by combining the logic circuits. If this is the case, it is characterized in that an interruption process for interrupting the execution of the process by the second arithmetic unit is executed.

実施形態の一態様によれば、演算装置による異常な処理の防止をより適切に行うことができる。 According to one aspect of the embodiment, it is possible to more appropriately prevent the abnormal processing by the arithmetic unit.

図1は、実施形態に係る演算装置の一例を示す図である。FIG. 1 is a diagram showing an example of an arithmetic unit according to an embodiment. 図2は、実施形態に係る演算装置の構成例を示す図である。FIG. 2 is a diagram showing a configuration example of the arithmetic unit according to the embodiment. 図3は、実施形態に係る処理の流れの一例を説明するフローチャートである。FIG. 3 is a flowchart illustrating an example of the flow of processing according to the embodiment.

以下に、本願に係る演算装置および中断方法を実施するための形態(以下、「実施形態」と記載する。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る演算装置および中断方法が限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。 Hereinafter, an embodiment for carrying out the arithmetic unit and the interruption method according to the present application (hereinafter, referred to as “embodiment”) will be described in detail with reference to the drawings. It should be noted that this embodiment does not limit the arithmetic unit and the interruption method according to the present application. Further, in each of the following embodiments, the same parts are designated by the same reference numerals, and duplicate explanations are omitted.

〔1-1.演算装置の一例〕
まず、図1を用いて、演算装置の一例について説明する。図1は、実施形態に係る演算装置の一例を示す図である。
[1-1. Example of arithmetic unit]
First, an example of an arithmetic unit will be described with reference to FIG. FIG. 1 is a diagram showing an example of an arithmetic unit according to an embodiment.

演算装置100は、以下に説明する演算処理を実行する演算装置である。ここで、演算装置100は、製造後に利用者が内部の論理回路を定義あるいは変更することができる集積回路であり、所謂PLD(Programmable Logic Device)である。 The arithmetic unit 100 is an arithmetic unit that executes the arithmetic processing described below. Here, the arithmetic unit 100 is an integrated circuit in which a user can define or change an internal logic circuit after manufacturing, and is a so-called PLD (Programmable Logic Device).

例えば、演算装置100は、所定の命令セットを実行可能なプロセッサ110と、FPGA(Field-Programmable Gate Array)150とを有する。プロセッサ110は、演算装置100が有するプロセッサであり、例えば、ARMアーキテクチャやPOWERアーキテクチャを採用したプロセッサ若しくはマイクロプロセッサである。すなわち、プロセッサ110は、デジタル回路により構成される。そして、プロセッサ110は、FPGAと連携することで、各種の演算処理を実行する。 For example, the arithmetic unit 100 has a processor 110 capable of executing a predetermined instruction set and an FPGA (Field-Programmable Gate Array) 150. The processor 110 is a processor included in the arithmetic unit 100, and is, for example, a processor or a microprocessor that employs an ARM architecture or a POWER architecture. That is, the processor 110 is composed of a digital circuit. Then, the processor 110 executes various arithmetic processes in cooperation with the FPGA.

例えば、プロセッサ110は、プロセッサコア111とキャッシュメモリ112とを有する。プロセッサコア111は、論理演算や四則演算を実現する所謂コアであり、ALU(Arithmetic Logic Unit)から構成される算術論理演算装置により実現される。キャッシュメモリ112は、プロセッサ110が有する補助記憶装置である。より具体的には、キャッシュメモリ112は、演算装置100がアクセス可能な主記憶装置200(例えば、図2参照)よりもプロセッサコア111が高速にアクセスすることができる記憶装置であり、所謂キャッシュメモリである。 For example, the processor 110 has a processor core 111 and a cache memory 112. The processor core 111 is a so-called core that realizes logical operations and four rules operations, and is realized by an arithmetic logic unit composed of an ALU (Arithmetic Logic Unit). The cache memory 112 is an auxiliary storage device included in the processor 110. More specifically, the cache memory 112 is a storage device that can be accessed by the processor core 111 at a higher speed than the main storage device 200 (see, for example, FIG. 2) that can be accessed by the arithmetic unit 100, and is a so-called cache memory. Is.

FPGA150は、外部装置OAからの指示に従って、回路構成を変更可能な演算装置である。例えば、FPGAは、アナログ回路要素を含む。例えば、FPGAには、プログラム可能な論理コンポ―ネットである複数の論理ブロックであって、アナログ回路により構成される論理ブロック、もしくは、アナログ回路とデジタル回路とを組み合わせた論理ブロックを有し、論理ブロック間が再構成可能な配線により相互接続されている。そして、FPGA150は、外部装置OAから受付けたハードウェア記述言語(HDL:Hardware Description Language)により、このような配線の接続を変更することで、各種の処理をハードウェアにより実現することができる。 The FPGA 150 is an arithmetic unit whose circuit configuration can be changed according to an instruction from the external device OA. For example, FPGAs include analog circuit elements. For example, an FPGA has a plurality of logic blocks that are programmable logic components, a logic block composed of an analog circuit, or a logic block in which an analog circuit and a digital circuit are combined, and is logical. The blocks are interconnected by reconfigurable wiring. Then, the FPGA 150 can realize various processes by hardware by changing the connection of such wiring by the hardware description language (HDL: Hardware Description Language) received from the external device OA.

すなわち、演算装置100は、アナログ回路を含む論理回路の組み合わせを変更することで所定の処理を実行可能な第1演算部であるFPGA150と、所定の命令セットを実行可能な第2演算部であるプロセッサ110とを有する。 That is, the arithmetic unit 100 is an FPGA 150 which is a first arithmetic unit that can execute a predetermined process by changing a combination of logic circuits including an analog circuit, and a second arithmetic unit that can execute a predetermined instruction set. It has a processor 110.

〔1-2.中断処理の一例〕
ここで、従来のプロセッサとFPGAとを含む演算装置においては、デジタル回路により構成されるプロセッサ側がアナログ回路により構成されるFPGA側の制御を実行していた。しかしながら、制御側をデジタル回路により構成した場合、ハッキングやウイルスの影響を受けやすくなる。この結果、プロセッサ側がFPGA側の制御を実行した場合、FPGA側の処理の暴走を防ぐことができなくなる結果、演算装置100による処理の暴走を許してしまう恐れがある。
[1-2. Example of interruption processing]
Here, in the arithmetic unit including the conventional processor and the FPGA, the processor side composed of the digital circuit executes the control on the FPGA side composed of the analog circuit. However, when the control side is configured by a digital circuit, it is easily affected by hacking and viruses. As a result, when the processor side executes the control on the FPGA side, the runaway of the processing on the FPGA side cannot be prevented, and as a result, the runaway of the processing by the arithmetic unit 100 may be allowed.

そこで、演算装置100は、アナログ回路により構成されるFPGA150により、デジタル回路により構成されるプロセッサ110の制御を行う。より具体的には、FPGA150は、外部装置OAから受付けたHDLに従って回路を構成することで、プロセッサ110が実行する処理を監視する監視処理と、プロセッサ110が実行する処理が所定の条件を満たした場合は、プロセッサ110による処理の実行を中断させる中断処理とを実行する。例えば、FPGA150は、プロセッサ110による処理の実行をモニタリングする。そして、FPGA150は、プロセッサ110により実行される処理の内容が通常の処理とは異なる場合、プロセッサ110による処理の実行を中断させる。 Therefore, the arithmetic unit 100 controls the processor 110 configured by the digital circuit by the FPGA 150 configured by the analog circuit. More specifically, the FPGA 150 satisfies a predetermined condition in the monitoring process for monitoring the process executed by the processor 110 and the process executed by the processor 110 by configuring the circuit according to the HDL received from the external device OA. In that case, the interruption process for suspending the execution of the process by the processor 110 is executed. For example, the FPGA 150 monitors the execution of processing by the processor 110. Then, when the content of the process executed by the processor 110 is different from the normal process, the FPGA 150 interrupts the execution of the process by the processor 110.

また、FPGA150は、論理回路を組み合わせることで、プロセッサ110が実行する処理が所定の条件を満たした場合は、監視処理と中断処理とを実行するための論理回路の組み合わせを変更する変更処理を実行する。例えば、FPGA150は、プロセッサ110が実行する処理が所定の条件を満たす度に、論理回路の組み合わせを変更する。すなわち、FPGA150は、プロセッサ110により実行させる処理の内容が通常の処理とは異なる場合は、プロセッサ110が実行する処理を中断させ、ワンタイムパスワード的にFPGA150の回路構成を変更する。 Further, the FPGA 150 executes a change process for changing the combination of logic circuits for executing the monitoring process and the interruption process when the process executed by the processor 110 satisfies a predetermined condition by combining the logic circuits. do. For example, the FPGA 150 changes the combination of logic circuits every time the process executed by the processor 110 satisfies a predetermined condition. That is, when the content of the process executed by the processor 110 is different from the normal process, the FPGA 150 interrupts the process executed by the processor 110 and changes the circuit configuration of the FPGA 150 as a one-time password.

このように、演算装置100は、アナログ回路により構成されるFPGA150により、デジタル回路により構成されるプロセッサ110の制御を行う。ここで、アナログ回路は、デジタル回路と比較して、ハッキングやウイルスによる影響を受け辛い。この結果、演算装置100は、異常な処理の実行をより適切に防ぐことができる。 In this way, the arithmetic unit 100 controls the processor 110 configured by the digital circuit by the FPGA 150 configured by the analog circuit. Here, analog circuits are less susceptible to hacking and viruses than digital circuits. As a result, the arithmetic unit 100 can more appropriately prevent the execution of abnormal processing.

〔1-3.処理の流れの一例〕
以下、図1を用いて、演算装置100が実行する処理の一例を説明する。まず、演算装置100は、外部装置OAから所定内容を受付ける(ステップS1)。このような場合、FPGA150は、以下の処理を実行するように論理回路の組み合わせを構成する。まず、FPGA150は、プロセッサ110に実行させる処理を構成する(ステップS2)。そして、FPGA150は、プロセッサ110に処理を実行させる(ステップS3)。このような場合、プロセッサ110は、FPGA150から受付けた処理を実行する(ステップS4)。
[1-3. Example of processing flow]
Hereinafter, an example of the processing executed by the arithmetic unit 100 will be described with reference to FIG. First, the arithmetic unit 100 receives a predetermined content from the external device OA (step S1). In such a case, the FPGA 150 configures a combination of logic circuits so as to execute the following processing. First, the FPGA 150 configures a process to be executed by the processor 110 (step S2). Then, the FPGA 150 causes the processor 110 to execute the process (step S3). In such a case, the processor 110 executes the process received from the FPGA 150 (step S4).

ここで、FPGA150は、所定の時間間隔で、プロセッサ110による処理の状態を監視する(ステップS5)。そして、FPGA150は、プロセッサ110が想定した処理とは異なる処理を実行しているか否かを判定する(ステップS6)。例えば、FPGA150は、通常の処理として予め定められた処理とは異なる処理を実行しているか否かを判定する。そして、FPGA150は、プロセッサ110が想定した処理とは異なる処理を実行していると判定した場合は、プロセッサ110に対して、処理の中断命令を出力する(ステップS7)。例えば、FPGA150は、プロセッサ110に対して、処理の終了を指示する割り込み命令を出力することで、処理を中断させる。 Here, the FPGA 150 monitors the processing status by the processor 110 at predetermined time intervals (step S5). Then, the FPGA 150 determines whether or not a process different from the process assumed by the processor 110 is being executed (step S6). For example, the FPGA 150 determines whether or not a process different from a predetermined process is executed as a normal process. Then, when the FPGA 150 determines that the processing different from the processing assumed by the processor 110 is being executed, the FPGA 150 outputs a processing interruption instruction to the processor 110 (step S7). For example, the FPGA 150 interrupts the processing by outputting an interrupt instruction instructing the processor 110 to end the processing.

そして、FPGA150は、処理を中断させた場合は、回路構成を変更する(ステップS8)。すなわち、FPGA150は、プロセッサ110が異常な処理を実行した場合は、回路構成を変更することで、ハッキングやウイルスによる影響を最小限にとどめる。このような処理を実行することで、演算装置100は、異常な処理の防止をより適切に行うことができる。 Then, when the processing is interrupted, the FPGA 150 changes the circuit configuration (step S8). That is, when the processor 110 executes an abnormal process, the FPGA 150 minimizes the influence of hacking and viruses by changing the circuit configuration. By executing such processing, the arithmetic unit 100 can more appropriately prevent abnormal processing.

〔2.演算装置の構成〕
以下、上記した演算処理を実現する演算装置100が有する機能構成の一例について説明する。図2は、実施形態に係る演算装置の構成例を示す図である。
[2. Arithmetic logic unit configuration]
Hereinafter, an example of the functional configuration of the arithmetic unit 100 that realizes the above-mentioned arithmetic processing will be described. FIG. 2 is a diagram showing a configuration example of the arithmetic unit according to the embodiment.

例えば、演算装置100は、プロセッサ110、入出力装置120、メモリコントローラ130、およびFPGA150を有する。また、プロセッサ110は、プロセッサコア111とキャッシュメモリ112とを有する。 For example, the arithmetic unit 100 includes a processor 110, an input / output device 120, a memory controller 130, and an FPGA 150. Further, the processor 110 has a processor core 111 and a cache memory 112.

入出力装置120は、演算装置100と外部装置OAとの間の通信を中継する装置であり、所謂I/O(Input Output)装置である。例えば、入出力装置120は、USB(Universal Serial Bus)、イーサーネット、SD(Secure Digital)、UART(Universal Asynchronous Receiver/Transmitter)、SPI(Serial Peripheral Interface)、I2C、GPIO(General-purpose input/output)等、各種の通信規格に沿って外部装置OAとの間の通信を制御する各種の入出力装置により実現される。 The input / output device 120 is a device that relays communication between the arithmetic unit 100 and the external device OA, and is a so-called I / O (Input Output) device. For example, the input / output device 120 includes USB (Universal Serial Bus), Ethernet, SD (Secure Digital), UART (Universal Asynchronous Receiver / Transmitter), SPI (Serial Peripheral Interface), I2C, GPIO (General-purpose input / output). ) Etc., which is realized by various input / output devices that control communication with the external device OA according to various communication standards.

メモリコントローラ130は、演算装置100による主記憶装置200へのメモリアクセスを制御する。より具体的には、メモリコントローラ130は、ページング方式により主記憶装置200に格納されたデータの読み出しや書込みを行う。なお、主記憶装置200は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子等の記憶装置によって実現される。 The memory controller 130 controls the memory access to the main storage device 200 by the arithmetic unit 100. More specifically, the memory controller 130 reads and writes data stored in the main storage device 200 by a paging method. The main storage device 200 is realized by a storage device such as a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory (Flash Memory).

FPGA150は、外部装置OAから受付けたHDLに従ってアナログ回路により構成される論理回路の組み合わせを変更することで、以下の機能を実現する。そして、FPGA150は、以下の機能を発揮することで、プロセッサ110による演算処理の制御を行う。 The FPGA 150 realizes the following functions by changing the combination of logic circuits composed of analog circuits according to the HDL received from the external device OA. Then, the FPGA 150 controls the arithmetic processing by the processor 110 by exerting the following functions.

例えば、FPGA150は、受付部151、変更部152とともに、制御ユニット160を構成するように、論理回路を組み合わせる。また、制御ユニット160には、演算制御部161、監視部162、および中断部163が含まれる。例えば、FPGA150は、外部装置OAから受付けたHDLに従い、受付部151、変更部152、演算制御部161、監視部162、および中断部163を構成するように、論理回路の組み合わせを行う。 For example, the FPGA 150 combines a logic circuit together with the reception unit 151 and the change unit 152 so as to form the control unit 160. Further, the control unit 160 includes an arithmetic control unit 161, a monitoring unit 162, and an interruption unit 163. For example, the FPGA 150 combines logic circuits so as to constitute a reception unit 151, a change unit 152, an arithmetic control unit 161, a monitoring unit 162, and an interruption unit 163 according to the HDL received from the external device OA.

受付部151は、プロセッサ110に実行させる処理を受付ける。例えば、受付部151は、外部装置OAから、プロセッサ110に実行させる処理、すなわち、演算処理の内容を示す処理情報を受付ける。このような場合、受付部151は、受付けた処理情報を演算制御部161に引き渡す。 The reception unit 151 receives a process to be executed by the processor 110. For example, the reception unit 151 receives from the external device OA the processing to be executed by the processor 110, that is, the processing information indicating the content of the arithmetic processing. In such a case, the reception unit 151 delivers the received processing information to the calculation control unit 161.

変更部152は、第2演算部であるプロセッサ110が実行する処理が所定の条件を満たした場合は、監視処理と中断処理とを実行するための論理回路の組み合わせを変更する変更処理を実行する。また、変更部152は、第2演算部であるプロセッサ110が実行する処理が所定の条件を満たす度に、論理回路の組み合わせを変更する。 When the process executed by the processor 110, which is the second arithmetic unit, satisfies a predetermined condition, the change unit 152 executes a change process for changing the combination of logic circuits for executing the monitor process and the interruption process. .. Further, the change unit 152 changes the combination of logic circuits every time the process executed by the processor 110, which is the second calculation unit, satisfies a predetermined condition.

例えば、変更部152は、中断部163によりプロセッサ110による処理の実行が中断された場合は、制御ユニット160を構成する論理回路の組み合わせを解除する。より具体的には、変更部152は、制御ユニット160を構成する論理回路間の接続を解除する。そして、変更部152は、制御ユニット160を構成する論理回路の組み合わせであって、前回とは異なる組み合わせを構成するように、論理回路間の接続を設定する。なお、変更部152は、このような新たな接続をプロセッサ110に特定させてもよく、外部装置OAに特定させてもよい。 For example, when the execution of the process by the processor 110 is interrupted by the interruption unit 163, the change unit 152 releases the combination of the logic circuits constituting the control unit 160. More specifically, the changing unit 152 disconnects the connection between the logic circuits constituting the control unit 160. Then, the changing unit 152 sets the connection between the logic circuits so as to form a combination of logic circuits constituting the control unit 160 and different from the previous combination. The change unit 152 may have the processor 110 specify such a new connection, or the external device OA may specify it.

演算制御部161は、プロセッサ110に所定の演算処理を実行させる。例えば、演算制御部161は、受付部151から実行対象となる演算処理の内容を示す処理情報を受付けた場合、処理情報が示す演算処理をプロセッサ110に実行させる。 The arithmetic control unit 161 causes the processor 110 to execute a predetermined arithmetic processing. For example, when the arithmetic control unit 161 receives the processing information indicating the content of the arithmetic processing to be executed from the reception unit 151, the arithmetic control unit 161 causes the processor 110 to execute the arithmetic processing indicated by the processing information.

監視部162は、第2演算部であるプロセッサ110が実行する処理を監視する。例えば、監視部162は、所定の時間間隔で、プロセッサコア111が有するレジスタのうち所定のレジスタに格納されている値や、キャッシュメモリ112に登録されている情報を収集する。なお、監視部162による監視対象は、演算制御部161がプロセッサ110に実行させる演算処理の内容に応じて適宜変更されてもよい。例えば、演算制御部161は、処理情報が示す処理の内容に基づいて、監視対象となるレジスタのアドレスや、キャッシュメモリ112に保持されるデータのアドレス(所謂仮想アドレス)を設定する。そして、監視部162は、演算制御部161により設定されたアドレスのレジスタを監視対象としてもよく、キャッシュメモリ112に登録されたデータのうち、演算制御部161により設定されたアドレスのデータを監視対象としてもよい。 The monitoring unit 162 monitors the processing executed by the processor 110, which is the second arithmetic unit. For example, the monitoring unit 162 collects the values stored in the predetermined registers among the registers of the processor core 111 and the information registered in the cache memory 112 at predetermined time intervals. The monitoring target by the monitoring unit 162 may be appropriately changed according to the content of the arithmetic processing to be executed by the arithmetic control unit 161 in the processor 110. For example, the arithmetic control unit 161 sets the address of the register to be monitored and the address of the data held in the cache memory 112 (so-called virtual address) based on the processing content indicated by the processing information. Then, the monitoring unit 162 may target the register of the address set by the arithmetic control unit 161 as a monitoring target, and among the data registered in the cache memory 112, the monitoring unit 162 monitors the data of the address set by the arithmetic control unit 161. May be.

中断部163は、第2演算部であるプロセッサ110が実行する処理が所定の条件を満たした場合は、プロセッサ110による処理の実行を中断させる。例えば、中断部163は、監視部162が監視対象とするレジスタに登録されたデータや、キャッシュメモリ112に保持されたデータを取得する。そして、中断部163は、取得したデータが所定の条件を満たすか否かを判定する。すなわち、中断部163は、取得したデータが所定の条件を満たすか否かを判定することで、プロセッサ110が想定された処理とは異なる処理を実行しているか否かを判定する。例えば、中断部163は、定期的に取得されたデータの変遷が所定の条件を満たすか否かを判定する。 When the process executed by the processor 110, which is the second arithmetic unit, satisfies a predetermined condition, the interrupt unit 163 suspends the execution of the process by the processor 110. For example, the interruption unit 163 acquires the data registered in the register to be monitored by the monitoring unit 162 and the data held in the cache memory 112. Then, the interruption unit 163 determines whether or not the acquired data satisfies a predetermined condition. That is, the interruption unit 163 determines whether or not the acquired data satisfies a predetermined condition, thereby determining whether or not the processor 110 is executing a process different from the expected process. For example, the interruption unit 163 determines whether or not the transition of the periodically acquired data satisfies a predetermined condition.

そして、中断部163は、取得したデータが所定の条件を満たす場合は、プロセッサ110による処理の実行を中断させる。例えば、中断部163は、プロセッサ110に対して処理を中断させる割り込み命令を出力する。この結果、プロセッサ110は、想定していない処理、すなわち、異常な処理の実行を中断することができる。 Then, when the acquired data satisfies a predetermined condition, the interruption unit 163 suspends the execution of the process by the processor 110. For example, the interruption unit 163 outputs an interrupt instruction for interrupting the processing to the processor 110. As a result, the processor 110 can interrupt the execution of an unexpected process, that is, an abnormal process.

なお、中断部163が判定に用いる条件は、プロセッサ110に実行させる処理の内容に応じて任意の条件が設定可能である。例えば、演算制御部161は、処理情報が示す処理の内容に基づいて、監視対象となるレジスタに登録されるデータの変化や、キャッシュメモリ112に保持されるデータの変化に関する情報を条件として設定する。そして、中断部163は、監視対象となるデータが演算制御部161により設定された条件を満たすか否かを判定してもよい。 As the condition used for the determination by the interruption unit 163, any condition can be set according to the content of the process to be executed by the processor 110. For example, the arithmetic control unit 161 sets the information regarding the change of the data registered in the register to be monitored and the change of the data held in the cache memory 112 as a condition based on the content of the process indicated by the process information. .. Then, the interruption unit 163 may determine whether or not the data to be monitored satisfies the condition set by the calculation control unit 161.

より具体的な例を挙げると、演算制御部161は、第1のアドレスで示されるレジスタに保持されるデータが変化し、第2のアドレスで示されるレジスタに保持されるデータが変化しない旨を条件として設定する。このような場合、監視部162は、第1のアドレスで示されるレジスタに保持されるデータと、第2のアドレスで示されるレジスタに保持されるデータとを所定の時間間隔で取得する。また、中断部163は、監視部162が所定の時間間隔で取得したデータを参照し、第1のアドレスで示されるレジスタに保持されるデータが変化し、第2のアドレスで示されるレジスタに保持されるデータが変化していないか否かを判定する。そして、中断部163は、第1のアドレスで示されるレジスタに保持されるデータが変化していない場合や、第2のアドレスで示されるレジスタに保持されるデータが変化した場合は、異常な処理が実行されているものとして、プロセッサ110による処理を中断させてもよい。 To give a more specific example, the arithmetic control unit 161 indicates that the data held in the register indicated by the first address changes and the data held in the register indicated by the second address does not change. Set as a condition. In such a case, the monitoring unit 162 acquires the data held in the register indicated by the first address and the data held in the register indicated by the second address at predetermined time intervals. Further, the interruption unit 163 refers to the data acquired by the monitoring unit 162 at a predetermined time interval, changes the data held in the register indicated by the first address, and holds the data in the register indicated by the second address. It is determined whether or not the data to be generated has changed. Then, the interruption unit 163 performs an abnormal process when the data held in the register indicated by the first address has not changed or when the data held in the register indicated by the second address has changed. May be interrupted by the processor 110, assuming that is being executed.

〔3.演算装置が実行する処理の流れの一例〕
次に、図3を用いて、FPGA150が実行する処理の流れの一例について説明する。図3は、実施形態に係る処理の流れの一例を説明するフローチャートである。
[3. An example of the flow of processing executed by the arithmetic unit]
Next, an example of the flow of processing executed by the FPGA 150 will be described with reference to FIG. FIG. 3 is a flowchart illustrating an example of the flow of processing according to the embodiment.

まず、FPGA150は、外部装置OAから処理内容を受付ける(ステップS101)。このような場合、FPGA150は、プロセッサ110に実行させる処理を構成し(ステップS102)、プロセッサ110に処理を実行させる(ステップS103)。ここで、FPGA150は、想定外の処理が実行されているか否かを判定し(ステップS104)、想定外の処理が実行されている場合は(ステップS104:Yes)、プロセッサ110の処理を停止させる(ステップS105)。続いて、FPGA150は、制御ユニット160の回路構成を変更し(ステップS106)、処理を終了する。 First, the FPGA 150 receives the processing content from the external device OA (step S101). In such a case, the FPGA 150 configures a process to be executed by the processor 110 (step S102), and causes the processor 110 to execute the process (step S103). Here, the FPGA 150 determines whether or not an unexpected process is being executed (step S104), and if an unexpected process is being executed (step S104: Yes), the processor 110 is stopped. (Step S105). Subsequently, the FPGA 150 changes the circuit configuration of the control unit 160 (step S106), and ends the process.

一方、FPGA150は、想定外の処理が実行されていない場合は(ステップ104:No)、プロセッサ110による処理が完了したか否かを判定し(ステップS107)、処理が完了した場合は(ステップS107:Yes)、処理結果を出力する(ステップS108)。その後。FPGA150は、ステップS106を実行する。一方、FPGA150は、処理が完了していない場合は(ステップS107:No)、ステップS103を実行する。 On the other hand, the FPGA 150 determines whether or not the processing by the processor 110 is completed (step S107) when the unexpected processing is not executed (step 104: No), and when the processing is completed (step S107). : Yes), the processing result is output (step S108). after that. The FPGA 150 executes step S106. On the other hand, if the processing is not completed (step S107: No), the FPGA 150 executes step S103.

〔4.その他〕
上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
[4. others〕
Of each of the processes described in the above embodiments, all or part of the processes described as being automatically performed may be performed manually, or all or part of the processes described as being performed manually. Some can be done automatically by a known method. In addition, the processing procedure, specific name, and information including various data and parameters shown in the above text and drawings can be arbitrarily changed unless otherwise specified. For example, the various information shown in each figure is not limited to the information shown in the figure.

また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 Further, each component of each of the illustrated devices is a functional concept, and does not necessarily have to be physically configured as shown in the figure. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or part of them may be functionally or physically distributed / physically in any unit according to various loads and usage conditions. Can be integrated and configured.

また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。 In addition, the above-described embodiments can be appropriately combined as long as the processing contents do not contradict each other.

〔5.効果〕
上述したように、演算装置100は、アナログ回路を含む論理回路の組み合わせを変更することで所定の処理を実行可能な第1演算部(例えば、FPGA150)と、所定の命令セットを実行可能な第2演算部(例えば、プロセッサ110)とを有する演算装置100であって、第1演算部は、論理回路を組み合わせることで、第2演算部が実行する処理を監視する監視処理と、第2演算部が実行する処理が所定の条件を満たした場合は、第2演算部による処理の実行を中断させる。
[5. effect〕
As described above, the arithmetic unit 100 has a first arithmetic unit (for example, FPGA 150) capable of executing a predetermined process by changing a combination of logic circuits including an analog circuit, and a first arithmetic unit capable of executing a predetermined instruction set. In the arithmetic unit 100 having two arithmetic units (for example, a processor 110), the first arithmetic unit is a monitoring process for monitoring the process executed by the second arithmetic unit by combining logic circuits, and a second arithmetic unit. When the process executed by the unit satisfies a predetermined condition, the execution of the process by the second arithmetic unit is interrupted.

また、演算装置100が有する第1演算部は、論理回路を組み合わせることで、第2演算部が実行する処理が所定の条件を満たした場合は、監視処理と中断処理とを実行するための論理回路の組み合わせを変更する。例えば、第1演算部は、第2演算部が実行する処理が所定の条件を満たす度に、論理回路の組み合わせを変更する。 Further, the first arithmetic unit included in the arithmetic unit 100 combines logic circuits to execute logic for executing monitoring processing and interruption processing when the processing executed by the second arithmetic unit satisfies a predetermined condition. Change the circuit combination. For example, the first arithmetic unit changes the combination of logic circuits every time the processing executed by the second arithmetic unit satisfies a predetermined condition.

これらの処理の結果、演算装置100は、例えば、ハッキングやウイルスによる影響が少ないアナログ回路により、プロセッサ110による演算処理を制御することができるので、異常な処理の防止をより適切に行うことができる。 As a result of these processes, the arithmetic unit 100 can control the arithmetic processing by the processor 110 by, for example, an analog circuit less affected by hacking or a virus, so that it is possible to more appropriately prevent abnormal processing. ..

以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。 Although some of the embodiments of the present application have been described in detail with reference to the drawings, these are examples, and various modifications are made based on the knowledge of those skilled in the art, including the embodiments described in the disclosure column of the invention. It is possible to carry out the present invention in other modified forms.

また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、生成部は、生成手段や生成回路に読み替えることができる。 Further, the above-mentioned "section, module, unit" can be read as "means" or "circuit". For example, the generation unit can be read as a generation means or a generation circuit.

100 演算装置
110 プロセッサ
111 プロセッサコア
112 キャッシュメモリ
120 入出力装置
130 メモリコントローラ
150 FPGA
151 受付部
152 変更部
160 制御ユニット
161 演算制御部
162 監視部
163 中断部
200 主記憶装置
OA 外部装置
100 Arithmetic logic unit 110 Processor 111 Processor core 112 Cache memory 120 Input / output device 130 Memory controller 150 FPGA
151 Reception unit 152 Change unit 160 Control unit 161 Arithmetic control unit 162 Monitoring unit 163 Interruption unit 200 Main storage device OA External device

Claims (4)

アナログ回路を含む論理回路の組み合わせを変更することで所定の処理を実行可能なFPGA(Field-Programmable Gate Array)である第1演算部と、所定の命令セットを実行可能なプロセッサである第2演算部とを有する演算装置であって、
前記第1演算部は、前記論理回路を組み合わせることで、
前記第2演算部が実行する処理を監視する監視処理と、
前記第2演算部が実行する処理が通常の処理として予め定められた処理とは異なる場合は、異常な処理が実行されているものとして前記第2演算部による実行中の当該処理の実行を中断させる中断処理と
を実行することを特徴とする演算装置。
The first arithmetic unit, which is an FPGA (Field-Programmable Gate Array) that can execute predetermined processing by changing the combination of logic circuits including analog circuits, and the second arithmetic unit, which is a processor that can execute a predetermined instruction set. It is an arithmetic unit having a unit and
The first arithmetic unit can be combined with the logic circuit.
A monitoring process for monitoring the process executed by the second arithmetic unit, and
When the process executed by the second arithmetic unit is different from the predetermined process as a normal process, it is assumed that an abnormal process is being executed, and the execution of the process being executed by the second arithmetic unit is interrupted. An arithmetic unit characterized by performing interruption processing and execution.
前記第1演算部は、前記論理回路を組み合わせることで、
前記第2演算部が実行する処理が所定の条件を満たした場合は、前記監視処理と前記中断処理とを実行するための論理回路の組み合わせを変更する変更処理
を実行することを特徴とする請求項1に記載の演算装置。
The first arithmetic unit can be combined with the logic circuit.
When the process executed by the second arithmetic unit satisfies a predetermined condition, the claim is characterized in that a change process for changing the combination of the logic circuit for executing the monitoring process and the interruption process is executed. Item 1. The arithmetic unit according to Item 1.
前記変更処理は、前記第2演算部が実行する処理が所定の条件を満たす度に、前記論理回路の組み合わせを変更する
ことを特徴とする請求項2に記載の演算装置。
The arithmetic unit according to claim 2, wherein the change processing changes the combination of the logic circuits each time the processing executed by the second arithmetic unit satisfies a predetermined condition.
アナログ回路を含む論理回路の組み合わせを変更することで所定の処理を実行可能なFPGA(Field-Programmable Gate Array)である第1演算部と、所定の命令セットを実行可能なプロセッサである第2演算部とを有する演算装置が、前記第1演算部が有する前記論理回路を組み合わせることで実行する中断方法であって、
前記第2演算部が実行する処理を監視する監視工程と、
前記第2演算部が実行する処理が通常の処理として予め定められた処理とは異なる場合は、異常な処理が実行されているものとして前記第2演算部による実行中の当該処理の実行を中断させる中断工程と
を含むことを特徴とする中断方法。
The first arithmetic unit, which is an FPGA (Field-Programmable Gate Array) that can execute predetermined processing by changing the combination of logic circuits including analog circuits, and the second arithmetic unit, which is a processor that can execute a predetermined instruction set. It is an interruption method executed by the arithmetic unit having the unit by combining the logic circuit possessed by the first arithmetic unit.
A monitoring process for monitoring the processing executed by the second arithmetic unit, and
When the process executed by the second arithmetic unit is different from the predetermined process as a normal process, it is assumed that an abnormal process is being executed, and the execution of the process being executed by the second arithmetic unit is interrupted. A method of interruption, characterized in that it comprises an interruption step.
JP2018099978A 2018-05-24 2018-05-24 Arithmetic logic unit and interruption method Active JP7092555B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018099978A JP7092555B2 (en) 2018-05-24 2018-05-24 Arithmetic logic unit and interruption method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018099978A JP7092555B2 (en) 2018-05-24 2018-05-24 Arithmetic logic unit and interruption method

Publications (2)

Publication Number Publication Date
JP2019204365A JP2019204365A (en) 2019-11-28
JP7092555B2 true JP7092555B2 (en) 2022-06-28

Family

ID=68727001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018099978A Active JP7092555B2 (en) 2018-05-24 2018-05-24 Arithmetic logic unit and interruption method

Country Status (1)

Country Link
JP (1) JP7092555B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204032A (en) 2007-02-19 2008-09-04 Fujitsu Ltd Data processing device
JP2013178736A (en) 2012-02-01 2013-09-09 Renesas Electronics Corp Watchdog circuit, power source ic, and watchdog monitoring system
JP2016146618A (en) 2015-02-02 2016-08-12 株式会社リコー Information processing device
JP2017063228A (en) 2011-08-19 2017-03-30 アルテラ コーポレイションAltera Corporation Device for enhancing performance of field programmable gate array and related method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204032A (en) 2007-02-19 2008-09-04 Fujitsu Ltd Data processing device
JP2017063228A (en) 2011-08-19 2017-03-30 アルテラ コーポレイションAltera Corporation Device for enhancing performance of field programmable gate array and related method
JP2013178736A (en) 2012-02-01 2013-09-09 Renesas Electronics Corp Watchdog circuit, power source ic, and watchdog monitoring system
JP2016146618A (en) 2015-02-02 2016-08-12 株式会社リコー Information processing device

Also Published As

Publication number Publication date
JP2019204365A (en) 2019-11-28

Similar Documents

Publication Publication Date Title
US8504752B2 (en) Virtual machine control device, virtual machine control program, and virtual machine control circuit for managing interrupts of plural virtual machines
Dodiu et al. Custom designed CPU architecture based on a hardware scheduler and independent pipeline registers—Concept and theory of operation
JP7004712B2 (en) Programmable clock monitor
US7752592B2 (en) Scheduler design to optimize system performance using configurable acceleration engines
JP2007179358A (en) Information processor and method of using reconfiguration device
WO2016069176A1 (en) Methods and circuits for deadlock avoidance
JP2018531457A (en) Interactive multi-step physical synthesis
JP2018531457A6 (en) Interactive multi-step physical synthesis
KR101697446B1 (en) Protection scheme for embedded code
JP7092555B2 (en) Arithmetic logic unit and interruption method
JP6433191B2 (en) Microcomputer
JP2006171952A (en) Semiconductor integrated circuit device
JP4457047B2 (en) Multiprocessor system
CN106293958B (en) Channel resizing for inter-kernel communication
US20150089101A1 (en) Managing network interface controller-generated interrupts
JP6913312B2 (en) Data processing device and data transfer method
Pereira et al. Co-designed FreeRTOS deployed on FPGA
JP5644197B2 (en) Computer system and interrupt request processing method
JP7313123B2 (en) Computing system and computing method
CN114691339A (en) Process scheduling method and computing device
Wächter et al. An open-source framework for heterogeneous MPSoC generation
JP4758538B2 (en) Data processing apparatus and control method
KR100599539B1 (en) Reconfigurable digital signal processor based on task engine
JPH11306044A (en) Data processor
JP6580815B2 (en) Bus access timing control circuit

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20191101

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20191108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200917

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211018

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220419

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220419

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220427

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220510

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220616

R150 Certificate of patent or registration of utility model

Ref document number: 7092555

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250