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
JP7477486B2 - DESIGN APPARATUS, OPERATION CIRCUIT, DESIGN METHOD, AND DESIGN PROGRAM - Google Patents
[go: Go Back, main page]

JP7477486B2 - DESIGN APPARATUS, OPERATION CIRCUIT, DESIGN METHOD, AND DESIGN PROGRAM - Google Patents

DESIGN APPARATUS, OPERATION CIRCUIT, DESIGN METHOD, AND DESIGN PROGRAM Download PDF

Info

Publication number
JP7477486B2
JP7477486B2 JP2021142126A JP2021142126A JP7477486B2 JP 7477486 B2 JP7477486 B2 JP 7477486B2 JP 2021142126 A JP2021142126 A JP 2021142126A JP 2021142126 A JP2021142126 A JP 2021142126A JP 7477486 B2 JP7477486 B2 JP 7477486B2
Authority
JP
Japan
Prior art keywords
critical path
processes
delay
registers
register
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
JP2021142126A
Other languages
Japanese (ja)
Other versions
JP2023035342A (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.)
KDDI Corp
Original Assignee
KDDI 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 KDDI Corp filed Critical KDDI Corp
Priority to JP2021142126A priority Critical patent/JP7477486B2/en
Priority to PCT/JP2022/031506 priority patent/WO2023032727A1/en
Publication of JP2023035342A publication Critical patent/JP2023035342A/en
Application granted granted Critical
Publication of JP7477486B2 publication Critical patent/JP7477486B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/10Buffer insertion
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Description

本発明は、暗号処理の高速実行のためのハードウェア実装方法に関する。 The present invention relates to a hardware implementation method for high-speed execution of cryptographic processing.

従来、所定の処理手順を実行するための演算回路に実装された各演算は、入力及び出力にレジスタが設けられ、入力側のレジスタから受け取ったデータによる演算結果が出力側のレジスタに格納される。このようなレジスタ間で実行される演算(パス)に対して、演算回路のクロック周期が短いと、演算結果がレジスタに格納されることなく破棄されてしまう。
したがって、処理性能を向上させるために動作周波数を高くする場合、クリティカルパスの遅延(演算時間)を抑制する必要があった。
Conventionally, in each operation implemented in an arithmetic circuit for executing a predetermined processing procedure, registers are provided at the input and output, and the operation result based on the data received from the input register is stored in the output register. If the clock period of the arithmetic circuit is short for such an operation (path) executed between registers, the operation result is discarded without being stored in the register.
Therefore, when the operating frequency is increased to improve processing performance, it is necessary to suppress the delay (computation time) of the critical path.

そこで、例えば、特許文献1では、ハードウェア量を抑制してクリティカルパスの遅延を抑制する加減算器が提案されている。また、特許文献2では、2進数の複数のビットを順次X進数に変換していく処理において、クリティカルパスの遅延が小さい演算回路が提案されている。 For example, Patent Document 1 proposes an adder-subtractor that reduces the amount of hardware required to reduce delays in the critical path. Patent Document 2 proposes an arithmetic circuit that reduces delays in the critical path in a process of sequentially converting multiple bits of a binary number into an X-ary number.

特開2016-224596号公報JP 2016-224596 A 特開2012-209755号公報JP 2012-209755 A

しかしながら、従来技術は、加減算又は基数変換といった特定の処理におけるクリティカルパスの遅延を低減することを目的とし、例えば任意の暗号処理の性能向上に利用することはできなかった。 However, the conventional technology was intended to reduce delays in the critical path in specific processes such as addition/subtraction or base conversion, and could not be used to improve the performance of any cryptographic process, for example.

本発明は、任意の処理のハードウェア実装においてスループットを向上できる設計装置、演算回路、設計方法及び設計プログラムを提供することを目的とする。 The present invention aims to provide a design device, an arithmetic circuit, a design method, and a design program that can improve throughput in the hardware implementation of any process.

本発明に係る演算回路の設計装置は、順次実行される複数の処理のうち、遅延が最大の処理をクリティカルパスとして選択するクリティカルパス選択部と、前記複数の処理のいずれかの間にレジスタを挿入し、レジスタ間の処理の遅延を前記クリティカルパス以下に調整するレジスタ挿入部と、を備え、前記レジスタ挿入部は、レジスタ間の処理の遅延が全て前記クリティカルパス以下となる条件を満たす最小数のレジスタを挿入する。 The design device for an arithmetic circuit according to the present invention includes a critical path selection unit that selects, from among multiple processes executed in sequence, the process with the longest delay as the critical path, and a register insertion unit that inserts a register between any of the multiple processes and adjusts the delay of the process between the registers to be equal to or less than the critical path, and the register insertion unit inserts the minimum number of registers that satisfy the condition that all delays of the process between the registers are equal to or less than the critical path.

前記クリティカルパス選択部は、並列可能な処理手順が複数存在する場合、当該複数の処理手順に含まれる全ての処理のうち、遅延が最大の処理を前記クリティカルパスとして選択し、前記レジスタ挿入部は、前記複数の処理手順それぞれについて、レジスタ間の処理の遅延を前記クリティカルパス以下に調整してもよい。 When there are multiple processing procedures that can be performed in parallel, the critical path selection unit may select, as the critical path, the processing procedure with the longest delay among all the processing procedures included in the multiple processing procedures, and the register insertion unit may adjust the processing delay between registers for each of the multiple processing procedures to be equal to or less than the critical path.

前記レジスタ挿入部は、前記複数の処理のうち、実行順の先頭から遅延の合計がTを超えない最大数を選択し、直後にレジスタを挿入することを繰り返してもよい。 The register insertion unit may select the maximum number of processes from the beginning of the execution order whose total delay does not exceed T, and repeatedly insert a register immediately after the selection.

本発明に係る演算回路は、順次実行される複数の処理のいずれかの間にレジスタを備え、前記レジスタは、遅延が最大の処理をクリティカルパスとし、前記レジスタ間の処理の遅延が全て前記クリティカルパス以下となる条件を満たす最小数だけ設けられる。 The arithmetic circuit according to the present invention includes a register between any of a number of processes executed in sequence, and the registers are provided in the minimum number that satisfies the condition that the process with the greatest delay is the critical path, and all process delays between the registers are equal to or less than the critical path.

本発明に係る演算回路の設計方法は、順次実行される複数の処理のうち、遅延が最大の処理をクリティカルパスとして選択するクリティカルパス選択ステップと、前記複数の処理のいずれかの間にレジスタを挿入し、レジスタ間の処理の遅延を前記クリティカルパス以下に調整するレジスタ挿入ステップと、をコンピュータが実行し、前記レジスタ挿入ステップにおいて、レジスタ間の処理の遅延が全て前記クリティカルパス以下となる条件を満たす最小数のレジスタを挿入する。 The design method of the arithmetic circuit according to the present invention is carried out by a computer to execute a critical path selection step of selecting, from among a number of processes executed in sequence, the process with the longest delay as the critical path, and a register insertion step of inserting a register between any of the plurality of processes to adjust the delay of the process between the registers to be equal to or less than the critical path, and in the register insertion step, the minimum number of registers are inserted that satisfy the condition that all delays of the process between the registers are equal to or less than the critical path.

本発明に係る演算回路の設計プログラムは、前記設計装置としてコンピュータを機能させるためのものである。 The arithmetic circuit design program of the present invention is intended to cause a computer to function as the design device.

本発明によれば、任意の処理のハードウェア実装においてスループットを向上できる。 The present invention can improve throughput in hardware implementation of any process.

実施形態における設計装置の機能構成を示す図である。FIG. 2 is a diagram illustrating a functional configuration of a design apparatus according to an embodiment. 実施形態における、暗号処理のハードウェア実装の設計手順を例示するフローチャートである。1 is a flowchart illustrating a design procedure for hardware implementation of cryptographic processing in an embodiment.

以下、本発明の実施形態の一例について説明する。
本実施形態の演算回路は、暗号処理等の任意の処理の性能向上を対象とし、スループットを向上させたハードウェア実装が実現されたものである。
An example of an embodiment of the present invention will now be described.
The arithmetic circuit of this embodiment is a hardware implementation that improves throughput, with the aim of improving the performance of any process such as cryptographic processing.

暗号処理をハードウェア実装する際に、スループットを向上させる方法としては、処理の途中にレジスタを挿入する方法がある。レジスタの挿入により、クリティカルパスが解消するため、動作周波数を高めることで、スループットが向上する。
一方で、レジスタを過剰に挿入すると、処理が完了するまでのクロック数が増加するため、スループットの低下につながる。そこで、本実施形態では、暗号処理のハードウェア実装に際し、クリティカルパスの遅延時間に基づきレジスタの挿入位置を決定し、スループットを最適化する手法を示す。
When implementing cryptographic processing in hardware, one method for improving throughput is to insert a register into the middle of the processing. Inserting a register eliminates the critical path, and therefore increases the operating frequency, thereby improving throughput.
On the other hand, inserting an excessive number of registers increases the number of clocks required to complete processing, leading to a decrease in throughput. Therefore, in this embodiment, a method is shown for optimizing throughput by determining the position to insert a register based on the delay time of the critical path when implementing cryptographic processing in hardware.

図1は、本実施形態における設計装置1の機能構成を示す図である。
設計装置1は、制御部10及び記憶部20の他、各種の入出力インタフェース等を備えた情報処理装置(コンピュータ)である。
FIG. 1 is a diagram showing the functional configuration of a design apparatus 1 according to this embodiment.
The design apparatus 1 is an information processing apparatus (computer) including a control unit 10, a storage unit 20, and various input/output interfaces.

制御部10は、設計装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。 The control unit 10 is a part that controls the entire design device 1, and realizes each function in this embodiment by appropriately reading and executing various programs stored in the storage unit 20. The control unit 10 may be a CPU.

記憶部20は、ハードウェア群を設計装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)等であってよい。
具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(設計プログラム)等を記憶する。
The storage unit 20 is a storage area for various programs for causing the hardware group to function as the design device 1, various data, etc., and may be a ROM, a RAM, a flash memory, a hard disk drive (HDD), etc.
Specifically, the storage unit 20 stores a program (design program) for causing the control unit 10 to execute each function of the present embodiment.

制御部10は、クリティカルパス選択部11と、レジスタ挿入部12とを備え、これらの機能部により、演算回路の適切な箇所にレジスタを適切な数だけ挿入し、スループットを最適化する。 The control unit 10 includes a critical path selection unit 11 and a register insertion unit 12, and these functional units insert an appropriate number of registers into appropriate locations in the arithmetic circuit to optimize throughput.

クリティカルパス選択部11は、順次実行される複数の処理のうち、遅延が最大の処理をクリティカルパスとして選択する。
このとき、クリティカルパス選択部11は、並列可能な処理手順が複数存在する場合に、これら複数の処理手順に含まれる全ての処理のうち、遅延が最大の処理をクリティカルパスとして選択する。
The critical path selection unit 11 selects, from among a plurality of processes executed in sequence, the process with the greatest delay as the critical path.
At this time, when there are a plurality of processing procedures that can be executed in parallel, the critical path selection unit 11 selects, as the critical path, the processing procedure with the maximum delay among all the processing procedures included in the plurality of processing procedures.

レジスタ挿入部12は、順次実行される複数の処理のいずれかの間にレジスタを挿入し、レジスタ間の処理による遅延をクリティカルパス以下に調整する。
このとき、レジスタ挿入部12は、1つ又は複数存在する処理手順のそれぞれについて、レジスタ間の処理の遅延が全てクリティカルパス以下となる条件を満たす最小数のレジスタを挿入する。
The register insertion unit 12 inserts a register between any of a plurality of processes executed in sequence, and adjusts the delay caused by the processes between the registers to be equal to or smaller than the critical path.
At this time, the register insertion unit 12 inserts the minimum number of registers that satisfies the condition that all processing delays between registers are equal to or less than the critical path for each of one or more existing processing procedures.

図2は、本実施形態における、暗号処理のハードウェア実装の設計手順を例示するフローチャートである。
暗号処理のハードウェア実装において、異なる回路により並列して実行できる処理をA,Bとする。なお、並列可能な処理が3つ以上存在する場合も同様であるため、ここでは、一般性を失わずに、並列化可能な処理は2つとして説明する。
FIG. 2 is a flowchart illustrating a design procedure for hardware implementation of cryptographic processing in this embodiment.
In hardware implementation of cryptographic processing, processes that can be executed in parallel by different circuits are designated as A and B. Note that the same applies when there are three or more processes that can be executed in parallel, so here, without loss of generality, the description will be given assuming that there are two processes that can be executed in parallel.

また、処理Aを順次実行される処理に分割したものを、a,a,…,aとする。例えば、AをAES(Advanced Encryption Standard)のラウンド関数とした場合、SubBytes,ShiftRows,MixColumns,AddRoundKeyの処理を、それぞれa,a,a,aとすることができる。あるいは、それぞれの処理をさらに細分化することも可能である。
処理Bについても同様に、順次実行されるb,b,…,bに分割される。
Moreover, the process A is divided into processes that are executed sequentially, and these processes are designated as a1 , a2 , ..., am . For example, if A is the round function of AES (Advanced Encryption Standard), the processes of SubBytes, ShiftRows, MixColumns, and AddRoundKey can be designated as a1 , a2 , a3 , and a4 , respectively. Alternatively, each process can be further subdivided.
Similarly, process B is divided into b 1 , b 2 , . . . , b n which are executed in sequence.

ここで、設計装置1は、次のアルゴリズムに従い、レジスタの挿入位置を決定する。
なお、t(a)は、処理aにおける遅延(aの処理時間)を意味する。
Here, the design device 1 determines the position to insert the register according to the following algorithm.
Here, t(a i ) means the delay in processing a i (the processing time of a i ).

ステップS1において、クリティカルパス選択部11は、処理a,a,…,a及び処理b,b,…,bの中から、最も遅延の大きいものを選択する。処理amaxが選ばれたこととすると、T=t(amax)が暗号処理のハードウェア実装におけるクリティカルパスとなる。 In step S1, the critical path selection unit 11 selects the process with the greatest delay from among processes a1 , a2 , ..., am and processes b1 , b2 , ..., bn . If process amax is selected, T = t( amax ) becomes the critical path in the hardware implementation of the cryptographic process.

ステップS2において、レジスタ挿入部12は、t(a)+t(a)+…+t(a)がT以下か否かを判定する。この判定がYESの場合、処理Aに対するレジスタ挿入を完了して処理はステップS5に移る。一方、判定がNOの場合、処理はステップS3に移る。 In step S2, the register insertion unit 12 judges whether t( a1 )+t( a2 )+...+t( am ) is equal to or less than T. If the judgment is YES, the register insertion for process A is completed and the process proceeds to step S5. On the other hand, if the judgment is NO, the process proceeds to step S3.

ステップS3において、レジスタ挿入部12は、t(a)+t(a)+…+t(a)≦T、かつ、t(a)+t(a)+…+t(ai+1)>T、となるiを探索し、処理aと処理ai+1との間にレジスタを挿入して、レジスタ間の処理a~aの遅延をクリティカルパスT以下とする。 In step S3, the register insertion unit 12 searches for i such that t( a1 ) + t( a2 ) + ... + t( ai ) ≦ T and t( a1 ) + t( a2 ) + ... + t( ai+1 ) > T, and inserts a register between process ai and process ai+1 to make the delay of processes a1 to ai between the registers less than or equal to the critical path T.

ステップS4において、レジスタ挿入部12は、ステップS3でレジスタを挿入した以降の処理ai+1~aをa~aと読み替え、処理はステップS2に移る。 In step S4, the register insertion unit 12 replaces the processes a i+1 to a m after the register insertion in step S3 with a 1 to a m , and the process proceeds to step S2.

ステップS5において、レジスタ挿入部12は、処理Bに対しても、処理Aと同様に、ステップS2~S4と同様の手順を実行し、処理Bに対するレジスタ挿入を完了する。
ここで、並列処理が3つ以上の場合、ステップS2~S4の手順が繰り返し実行される。
In step S5, the register insertion unit 12 executes the same procedure as steps S2 to S4 for process B as in process A, and completes register insertion for process B.
If there are three or more parallel processes, steps S2 to S4 are repeatedly executed.

なお、このアルゴリズムは一例であり、レジスタ間の処理による遅延が全てクリティカルパス以下となる条件を満たす、最小数のレジスタを挿入するための手順であればよい。 Note that this algorithm is just one example, and any procedure can be used to insert the minimum number of registers that satisfies the condition that all delays due to processing between registers are below the critical path.

本実施形態によれば、設計装置1は、順次実行される複数の処理のうち、遅延が最大の処理をクリティカルパスとして選択し、これら複数の処理のいずれかの間にレジスタを挿入することで、レジスタ間の処理の遅延をクリティカルパス以下に調整する。このとき、設計装置1は、レジスタ間の処理の遅延が全てクリティカルパス以下となる条件を満たす最小数のレジスタを挿入する。
したがって、設計装置1は、クリティカルパスを解消し、かつ、レジスタ数の増加によるクロック数の増加を抑制できるので、演算回路の動作周波数を上げることでスループットを向上できる。
According to this embodiment, the design device 1 selects the process with the longest delay as the critical path from among multiple processes executed in sequence, and adjusts the delay of the process between the registers to be equal to or less than the critical path by inserting registers between any of the multiple processes. At this time, the design device 1 inserts the minimum number of registers that satisfy the condition that all delays of the processes between the registers are equal to or less than the critical path.
Therefore, the design apparatus 1 can eliminate the critical path and suppress an increase in the number of clocks due to an increase in the number of registers, thereby improving throughput by increasing the operating frequency of the arithmetic circuit.

これにより、本実施形態は、例えば、ストリーム暗号やFeistel型の共通鍵暗号など、様々な暗号処理のハードウェア実装に適用できる。特に、Beyond5G/6Gへの適用を目的としたストリーム暗号においては、ソフトウェア実装におけるスループットを向上するため、AESのラウンド関数とARX構造(AND,OR,XOR)とを組み合わせた状態更新関数が採用されている。状態更新関数の経路それぞれにおいて、複数の演算が順次実行される場合、最小限のレジスタの挿入により、ハードウェア実装のスループットも向上する。
なお、本実施形態の適用対象は暗号処理には限られない。
As a result, this embodiment can be applied to hardware implementation of various encryption processes, such as stream encryption and Feistel-type common key encryption. In particular, in stream encryption intended for application to Beyond 5G/6G, a state update function that combines the AES round function and an ARX structure (AND, OR, XOR) is adopted to improve the throughput in software implementation. When multiple operations are executed sequentially in each path of the state update function, the throughput of the hardware implementation is also improved by inserting a minimum number of registers.
The application of this embodiment is not limited to encryption processing.

また、設計装置1は、並列可能な処理手順が複数存在する場合、これら複数の処理手順に含まれる全ての処理のうち、遅延が最大の処理をクリティカルパスとして選択し、複数の処理手順それぞれについて、レジスタ間の処理の遅延をクリティカルパス以下に調整する。
したがって、設計装置1は、並列処理可能な複数の処理手順全てについて、遅延を最小限に抑え、スループットを向上できる。
In addition, when there are multiple processing procedures that can be performed in parallel, the design device 1 selects the processing procedure with the longest delay from all the processing procedures included in these multiple processing procedures as the critical path, and adjusts the processing delay between registers for each of the multiple processing procedures to be equal to or less than the critical path.
Therefore, the design apparatus 1 can minimize delays and improve throughput for all of a plurality of processing procedures that can be processed in parallel.

なお、前述の実施形態により、例えば、暗号処理のハードウェア実装においてスループットを向上できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。 The above-mentioned embodiment can improve throughput in hardware implementations of cryptographic processing, which can contribute to the achievement of Goal 9 of the United Nations-led Sustainable Development Goals (SDGs), which is to "build resilient infrastructure, promote sustainable industrialization and foster innovation."

以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。 Although the embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments. Furthermore, the effects described in the above-described embodiments are merely a list of the most favorable effects resulting from the present invention, and the effects of the present invention are not limited to those described in the embodiments.

設計装置1による設計方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。 The design method using the design device 1 is realized by software. When realized by software, the programs that make up this software are installed in an information processing device (computer). These programs may be recorded on removable media such as CD-ROMs and distributed to users, or may be distributed by being downloaded to the user's computer via a network. Furthermore, these programs may be provided to the user's computer as a web service via a network without being downloaded.

1 設計装置
10 制御部
11 クリティカルパス選択部
12 レジスタ挿入部
20 記憶部
REFERENCE SIGNS LIST 1 design device 10 control unit 11 critical path selection unit 12 register insertion unit 20 storage unit

Claims (6)

順次実行される複数の処理のうち、遅延が最大である一つの処理をクリティカルパスとして選択するクリティカルパス選択部と、
連続する処理と処理と間のいずれかにレジスタを挿入し、レジスタ間の一つ以上の処理による合計の遅延を前記クリティカルパスの遅延以下に調整するレジスタ挿入部と、を備え、
前記レジスタ挿入部は、全てのレジスタ間において前記合計の遅延が前記クリティカルパスの遅延以下となる条件を満たす最小数のレジスタを挿入する演算回路の設計装置。
a critical path selection unit that selects, from among a plurality of processes that are executed sequentially, one process having the maximum delay as a critical path;
a register insertion unit that inserts a register between successive processes and adjusts a total delay due to one or more processes between the registers to be equal to or less than a delay of the critical path,
The register insertion unit is an apparatus for designing an arithmetic circuit that inserts a minimum number of registers that satisfies a condition that the total delay between all registers is equal to or less than the delay of the critical path.
前記クリティカルパス選択部は、並列可能な処理手順が複数存在する場合、当該複数の処理手順に含まれる全ての処理のうち、遅延が最大である一つの処理を前記クリティカルパスとして選択し、
前記レジスタ挿入部は、前記複数の処理手順それぞれについて、レジスタ間の一つ以上の処理による合計の遅延を前記クリティカルパスの遅延以下に調整する請求項1に記載の設計装置。
the critical path selection unit, when there are a plurality of processing procedures that can be executed in parallel, selects, as the critical path , one processing procedure having a maximum delay among all processing procedures included in the plurality of processing procedures;
2 . The design device according to claim 1 , wherein the register insertion unit adjusts a total delay due to one or more processes between registers for each of the plurality of processing procedures to be equal to or less than a delay of the critical path.
前記レジスタ挿入部は、前記複数の処理のうち、実行順の先頭から遅延の合計が前記クリティカルパスの遅延を超えない最大数を選択し、直後にレジスタを挿入することを繰り返す請求項1又は請求項2に記載の設計装置。 3. The design device according to claim 1, wherein the register insertion unit selects, from the plurality of processes, a maximum number of processes whose total delay from the beginning of the execution order does not exceed a delay of the critical path , and repeatedly inserts a register immediately after the maximum number of processes. 連続する処理と処理の間のいずれかにレジスタを備え、
前記レジスタは、順次実行される複数の処理のうち、遅延が最大である一つの処理をクリティカルパスとし、レジスタ間の一つ以上の処理による合計の遅延が全て前記クリティカルパスの遅延以下となる条件を満たす最小数だけ設けられた演算回路。
A register is provided between successive processes ,
The registers are provided in a minimum number of arithmetic circuits that satisfy the condition that the critical path is one of multiple processes that are executed sequentially and that the total delay due to one or more processes between the registers is all less than the delay of the critical path.
順次実行される複数の処理のうち、遅延が最大である一つの処理をクリティカルパスとして選択するクリティカルパス選択ステップと、
連続する処理と処理と間のいずれかにレジスタを挿入し、レジスタ間の一つ以上の処理による合計の遅延を前記クリティカルパスの遅延以下に調整するレジスタ挿入ステップと、をコンピュータが実行し、
前記レジスタ挿入ステップにおいて、全てのレジスタ間において前記合計の遅延が前記クリティカルパスの遅延以下となる条件を満たす最小数のレジスタを挿入する演算回路の設計方法。
a critical path selection step of selecting, as a critical path, one process having the maximum delay among a plurality of processes executed sequentially;
a register insertion step of inserting a register between successive processes and adjusting a total delay due to one or more processes between the registers to be equal to or less than the delay of the critical path,
A method for designing an arithmetic circuit, comprising inserting a minimum number of registers that satisfies a condition that the total delay between all registers is equal to or less than the delay of the critical path, in the register insertion step.
請求項1から請求項3のいずれかに記載の設計装置としてコンピュータを機能させるための設計プログラム。 A design program for causing a computer to function as a design device according to any one of claims 1 to 3.
JP2021142126A 2021-09-01 2021-09-01 DESIGN APPARATUS, OPERATION CIRCUIT, DESIGN METHOD, AND DESIGN PROGRAM Active JP7477486B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021142126A JP7477486B2 (en) 2021-09-01 2021-09-01 DESIGN APPARATUS, OPERATION CIRCUIT, DESIGN METHOD, AND DESIGN PROGRAM
PCT/JP2022/031506 WO2023032727A1 (en) 2021-09-01 2022-08-22 Design device, arithmetic circuit, design method, and design program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021142126A JP7477486B2 (en) 2021-09-01 2021-09-01 DESIGN APPARATUS, OPERATION CIRCUIT, DESIGN METHOD, AND DESIGN PROGRAM

Publications (2)

Publication Number Publication Date
JP2023035342A JP2023035342A (en) 2023-03-13
JP7477486B2 true JP7477486B2 (en) 2024-05-01

Family

ID=85412520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021142126A Active JP7477486B2 (en) 2021-09-01 2021-09-01 DESIGN APPARATUS, OPERATION CIRCUIT, DESIGN METHOD, AND DESIGN PROGRAM

Country Status (2)

Country Link
JP (1) JP7477486B2 (en)
WO (1) WO2023032727A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000194738A (en) 1998-12-28 2000-07-14 Matsushita Electric Ind Co Ltd Logic circuit timing analyzer

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2630258B2 (en) * 1994-06-03 1997-07-16 日本電気株式会社 Delay optimization method and logic synthesizer
JPH09102547A (en) * 1995-10-06 1997-04-15 Matsushita Electric Ind Co Ltd Circuit division method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000194738A (en) 1998-12-28 2000-07-14 Matsushita Electric Ind Co Ltd Logic circuit timing analyzer

Also Published As

Publication number Publication date
WO2023032727A1 (en) 2023-03-09
JP2023035342A (en) 2023-03-13

Similar Documents

Publication Publication Date Title
Dang et al. Implementing and benchmarking three lattice-based post-quantum cryptography algorithms using software/hardware codesign
EP2228941A1 (en) Encryption processing apparatus
WO2020219107A1 (en) Optimizing hardware fifo instructions
JP2006018413A (en) Processor and pipeline reconfiguration control method
KR20230131255A (en) Computation system including test circuit, test method and test circuit
Carril et al. Hardware acceleration for high-volume operations of CRYSTALS-kyber and CRYSTALS-dilithium
JP7477486B2 (en) DESIGN APPARATUS, OPERATION CIRCUIT, DESIGN METHOD, AND DESIGN PROGRAM
JP2005100085A (en) Arithmetic device and encryption / decryption arithmetic device
Michail et al. Area-throughput trade-offs for SHA-1 and SHA-256 hash functions’ pipelined designs
Lee et al. Iteration bound analysis and throughput optimum architecture of SHA-256 (384,512) for hardware implementations
Fritzmann et al. Post-quantum key exchange mechanism for safety critical systems
KR100730280B1 (en) Apparatus and Method for Optimizing Loop Buffer in Reconstruction Processor
JP2016122299A (en) State machine dividing program, information processing apparatus, and state machine dividing method
JP2015095786A (en) Logic circuit, logic circuit design support apparatus, logic circuit design support method, and program
Canright et al. A more compact AES
Bailey et al. The certicom challenges ECC2-X
JP4567753B2 (en) Parity generation circuit, counting circuit, and counting method
JP4853026B2 (en) Information processing apparatus and program
Sugier Optimizing the pipelined DES cracker implemented in contemporary popular-grade FPGA devices
KR102950380B1 (en) Method for increasing hash rate and hash computing circuit adopting the same
JP7572922B2 (en) Encryption device, encryption method, and encryption program
Mancillas-López et al. Efficient implementations of some tweakable enciphering schemes in reconfigurable hardware
WO2019239820A1 (en) Parameter optimization device, method and program
Lee et al. Hardware design for Hash functions
Bilgili et al. System on Chip Design with Vivado High-Level Synthesis Tool

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240321

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240418

R150 Certificate of patent or registration of utility model

Ref document number: 7477486

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150