JP7402240B2 - スレッドの実行順序を維持する同期デジタル回路を生成する言語およびコンパイラ - Google Patents
スレッドの実行順序を維持する同期デジタル回路を生成する言語およびコンパイラ Download PDFInfo
- Publication number
- JP7402240B2 JP7402240B2 JP2021540807A JP2021540807A JP7402240B2 JP 7402240 B2 JP7402240 B2 JP 7402240B2 JP 2021540807 A JP2021540807 A JP 2021540807A JP 2021540807 A JP2021540807 A JP 2021540807A JP 7402240 B2 JP7402240 B2 JP 7402240B2
- Authority
- JP
- Japan
- Prior art keywords
- pipeline
- thread
- threads
- stages
- code
- 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
Links
- 230000001360 synchronised effect Effects 0.000 title claims description 12
- 238000003860 storage Methods 0.000 claims description 31
- 238000000034 method Methods 0.000 claims description 29
- 238000010276 construction Methods 0.000 claims description 27
- 239000000872 buffer Substances 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 3
- 230000000903 blocking effect Effects 0.000 claims 1
- 102000015779 HDL Lipoproteins Human genes 0.000 description 19
- 108010010234 HDL Lipoproteins Proteins 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000000844 transformation Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001152 differential interference contrast microscopy Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/445—Exploiting fine grain parallelism, i.e. parallelism at instruction level
- G06F8/4452—Software pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
[0087]条項1:コンピュータ実施方法であって、マルチスレッドプログラミング言語で表現されたソースコードを受け取ることであって、ソースコードは、複数のソースコードパスのうちの1つに実行を指示する分岐ステートメントを含む、受け取ることと、ソースコードを、パイプラインを含む回路記述にコンパイルすることであって、パイプラインは、複数のソースコードパスに関連付けられた複数のコードパスを含み、複数のコードパスが同じ数のパイプラインステージを有するように、1つまたは複数のパイプラインステージが、複数のコードパスのうちの1つまたは複数に追加される、コンパイルすることと、回路記述に基づいて、回路実装を備える同期デジタル回路を生成することとを備える、コンピュータ実施方法。
[0089]条項3:複数のコードパスのうちの1つまたは複数にパイプラインステージを追加することは、最長のコードパスにおけるパイプラインステージの数を決定することと、そのコードパスにおけるパイプラインステージの数を、最長のコードパスにおけるパイプラインステージの数から引いたものに等しい数のパイプラインステージを、各コードパスに追加することとを含む、条項1または2のコンピュータ実施方法。
[0093]条項7:パイプラインは、順に実行されるステージを備え、ステージを順に通過することによって、複数のスレッドが、実行順序を維持する、条項1から6のいずれかのコンピュータ実施方法。
[0099]条項13:スレッドは、実行のために第1のパイプラインに提供されるローカルスレッド変数の集合を備える、条項8から12のいずれかのコンピューティングデバイス。
Claims (19)
- コンピュータ実施方法であって、
マルチスレッドプログラミング言語で表現されたソースコードを受け取るステップであって、前記ソースコードは、複数のソースコードパスのうちの1つに実行を指示する分岐ステートメントを含む、受け取るステップと、
前記ソースコードを、パイプラインを含む回路記述にコンパイルするステップであって、前記パイプラインは、前記複数のソースコードパスに関連付けられた複数のコードパスを含み、前記コンパイルするステップは、
最大数のパイプラインステージを有する前記複数のコードパスのうち1つのコードパスにおけるパイプラインステージの数を決定するステップと、
前記複数のコードパスの各々がパイプラインステージの前記数を有するまで、パイプラインステージを前記複数のコードパスの少なくとも1つに追加するステップとを含み、
前記回路記述に基づいて、回路実装を備える同期デジタル回路を生成するステップとを備える、コンピュータ実施方法。 - 複数のスレッドは、第1の順序で前記パイプラインに入り、前記複数のスレッドは、前記第1の順序で前記パイプラインを出る、請求項1に記載のコンピュータ実施方法。
- 前記複数のコードパスのうちの1つまたは複数にパイプラインステージを追加するステップは、最長のコードパスにおけるパイプラインステージの数を決定するステップと、そのコードパスにおける前記パイプラインステージの数を、前記最長のコードパスにおける前記パイプラインステージの数から引いたものに等しい数のパイプラインステージを、各コードパスに追加するステップとを含む、請求項1に記載のコンピュータ実施方法。
- 前記パイプラインは、第1のパイプラインを備え、前記回路記述は、第2のパイプラインを含み、前記第1のパイプラインを実行するスレッドは、ローカル変数を先入れ先出しキューにプッシュすることによって、実行を前記第2のパイプラインに渡し、前記第2のパイプラインは、プッシュされた順序で先入れ先出しキューからローカル変数を読み取ることにより、パイプライン全体でスレッドの実行順序を維持する、請求項1に記載のコンピュータ実施方法。
- 前記ソースコードは、スレッドの実行順序を維持しないプログラミング構築をラップする並べ替えブロック構築を含み、前記並べ替えブロック構築は、
到来するスレッドの実行順序を記録し、
スレッドが、スレッドの実行順序を維持しない構築を実行できるようにし、
すべての下位スレッドが再開するまでスレッドの再開をブロックする回路実装にマッピングする、請求項1に記載のコンピュータ実施方法。 - 追加された前記パイプラインステージの少なくとも1つは、計算ユニットを備え、前記計算ユニットによって生成される結果をレジスタに格納するよう構成されている、請求項1に記載のコンピュータ実施方法。
- 前記パイプラインは、順に実行されるステージを備え、前記ステージを前記順に通過することによって、複数のスレッドが、実行順序を維持する、請求項1に記載のコンピュータ実施方法。
- コンピューティングデバイスであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行された場合、前記コンピューティングデバイスに対して、
マルチスレッドプログラミング言語で表現されたソースコードを受け取らせ、
前記ソースコードを、第1のパイプライン、第2のパイプライン、および前記第1のパイプラインから前記第2のパイプラインに渡されるローカルスレッド変数のセットを格納する先入れ先出し(FIFO)キューを含む回路記述にコンパイルさせ、前記第1のパイプラインは、ローカルスレッド変数のセットを、スレッドの実行順序で前記FIFOキューに格納し、前記第2のパイプラインは、前記スレッドの実行順序で前記FIFOキューからローカルスレッド変数のセットを取得することによって前記スレッドの実行順序を維持し、前記ソースコードは、複数のソースコードパスのうちの1つに実行を指示する分岐ステートメントを含み、前記第1のパイプラインは、前記複数のソースコードパスに関連付けられた複数のコードパスを含み、前記複数のコードパスが同じ数のパイプラインステージを有するように、1つまたは複数のパイプラインステージが、前記複数のコードパスのうちの1つまたは複数に追加され、前記追加されたパイプランステージの少なくとも1つは、計算ユニットを含み、前記計算ユニットによって生成される結果をレジスタに格納するように構成され、
前記回路記述に基づいて、回路実装を備える同期デジタル回路を生成させる、コンピュータ実行可能命令を格納した少なくとも1つのコンピュータ記憶媒体と
を備える、コンピューティングデバイス。 - 前記複数のコードパスのうちの1つまたは複数にパイプラインステージを追加することは、最長のコードパスにおけるパイプラインステージの数を決定することと、そのコードパスにおける前記パイプラインステージの数を、前記最長のコードパスにおけるパイプラインステージの数から引いたものに等しい数のパイプラインステージを、各コードパスに追加することとを含む、請求項8に記載のコンピューティングデバイス。
- 前記ソースコードは、スレッドの実行順序を維持しないプログラミング構築をラップする並べ替えブロック構築を含み、前記並べ替えブロック構築が、
到来するスレッドの実行順序を記録し、
スレッドが、スレッドの実行順序を維持しない構築を実行できるようにし、
すべての下位スレッドが再開するまでスレッドの再開をブロックする回路実装にマッピングする、請求項8に記載のコンピューティングデバイス。 - スレッドは、入った順序で前記並べ替えブロックを出る、請求項10に記載のコンピューティングデバイス。
- スレッドは、実行のために前記第1のパイプラインに提供されるローカルスレッド変数の集合を備える、請求項8に記載のコンピューティングデバイス。
- 前記第1のパイプラインは、順に実行されるステージを備え、前記ステージを順に通過することによって、複数のスレッドが、実行順序を維持する、請求項8に記載のコンピューティングデバイス。
- 1つまたは複数のプロセッサによって実行された場合、コンピューティングデバイスに対して、
マルチスレッドプログラミング言語で表現されたソースコードを受け取らせ、前記ソースコードは、回路実装にマッピングする構築を備え、前記構築は、並べ替えブロックと、スレッドの実行順序を維持しない構築とを備え、前記回路実装は、
複数のスレッドを受信した順序でスレッド識別子を登録する並べ替えバッファと、
前記複数のスレッドの各々について、未知の数のクロックサイクルのために実行する回路とを備え、前記並べ替えバッファは、実行順序の低いすべてのスレッドが再開されるまで、スレッドの再開をブロックし、
前記構築を、回路記述へコンパイルさせ、
前記回路記述に基づいて、前記回路実装を備える同期デジタル回路を生成させる、コンピュータ実行可能命令を格納した少なくとも1つのコンピュータ記憶媒体。 - 前記ソースコードは、複数のソースコードパスのうちの1つに実行を指示する分岐ステートメントを含み、前記回路記述は、複数のコードパスを含むパイプラインを含み、前記複数のコードパスが同じ数のパイプラインステージを有するように、1つまたは複数のパイプラインステージが、前記複数のコードパスのうちの1つまたは複数に追加される、請求項14に記載の少なくとも1つのコンピュータ記憶媒体。
- 前記複数のコードパスのうちの1つまたは複数にパイプラインステージを追加することは、最長のコードパスにおけるパイプラインステージの数を決定することと、そのコードパスにおけるパイプラインステージの数を、前記最長のコードパスにおける前記パイプラインステージの数から引いたものに等しい数のパイプラインステージを、各コードパスに追加することとを含む、請求項15に記載の少なくとも1つのコンピュータ記憶媒体。
- スレッドは、実行のために前記パイプラインの第1のパイプラインに提供されるローカルスレッド変数の集合を備える、請求項15に記載の少なくとも1つのコンピュータ記憶媒体。
- 前記パイプラインの第1のパイプラインは、順に実行されるステージを備え、前記ステージを前記順に通過することによって、複数のスレッドが、実行順序を維持する、請求項15に記載の少なくとも1つのコンピュータ記憶媒体。
- 前記パイプラインは第1のパイプラインを含み、前記回路記述は第2のパイプラインを含み、前記第1のパイプラインを実行するスレッドは、ローカル変数を先入れ先出しキューにプッシュすることによって、実行を前記第2のパイプラインに渡し、前記第2のパイプラインは、プッシュされた順序で先入れ先出しキューからローカル変数を読み取ることにより、パイプライン全体でスレッドの実行順序を維持する、請求項15に記載の少なくとも1つのコンピュータ記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/247,269 | 2019-01-14 | ||
US16/247,269 US11093682B2 (en) | 2019-01-14 | 2019-01-14 | Language and compiler that generate synchronous digital circuits that maintain thread execution order |
PCT/US2020/012278 WO2020150013A1 (en) | 2019-01-14 | 2020-01-04 | Language and compiler that generate synchronous digital circuits that maintain thread execution order |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2022518209A JP2022518209A (ja) | 2022-03-14 |
JPWO2020150013A5 JPWO2020150013A5 (ja) | 2023-01-04 |
JP7402240B2 true JP7402240B2 (ja) | 2023-12-20 |
Family
ID=69400654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021540807A Active JP7402240B2 (ja) | 2019-01-14 | 2020-01-04 | スレッドの実行順序を維持する同期デジタル回路を生成する言語およびコンパイラ |
Country Status (13)
Country | Link |
---|---|
US (1) | US11093682B2 (ja) |
EP (1) | EP3912025B1 (ja) |
JP (1) | JP7402240B2 (ja) |
KR (1) | KR20210112330A (ja) |
CN (1) | CN113316762A (ja) |
AU (1) | AU2020209446A1 (ja) |
BR (1) | BR112021010345A2 (ja) |
CA (1) | CA3123903A1 (ja) |
IL (1) | IL284548A (ja) |
MX (1) | MX2021008474A (ja) |
SG (1) | SG11202107262RA (ja) |
WO (1) | WO2020150013A1 (ja) |
ZA (1) | ZA202103821B (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11113176B2 (en) | 2019-01-14 | 2021-09-07 | Microsoft Technology Licensing, Llc | Generating a debugging network for a synchronous digital circuit during compilation of program source code |
US11144286B2 (en) | 2019-01-14 | 2021-10-12 | Microsoft Technology Licensing, Llc | Generating synchronous digital circuits from source code constructs that map to circuit implementations |
US10810343B2 (en) | 2019-01-14 | 2020-10-20 | Microsoft Technology Licensing, Llc | Mapping software constructs to synchronous digital circuits that do not deadlock |
US11106437B2 (en) | 2019-01-14 | 2021-08-31 | Microsoft Technology Licensing, Llc | Lookup table optimization for programming languages that target synchronous digital circuits |
US11275568B2 (en) | 2019-01-14 | 2022-03-15 | Microsoft Technology Licensing, Llc | Generating a synchronous digital circuit from a source code construct defining a function call |
US11366647B2 (en) * | 2020-04-30 | 2022-06-21 | Intel Corporation | Automatic compiler dataflow optimization to enable pipelining of loops with local storage requirements |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004036463A1 (ja) | 2002-10-15 | 2004-04-29 | Renesas Technology Corp. | コンパイラ及び論理回路の設計方法 |
JP2006185423A (ja) | 2004-11-30 | 2006-07-13 | Tokyo Electron Ltd | カスタムlsi開発プラットフォーム、命令セット・アーキテクチャ及び論理回路構成情報の生成方法、並びにプログラム |
US7315991B1 (en) | 2005-02-23 | 2008-01-01 | Xilinx, Inc. | Compiling HLL into massively pipelined systems |
US8671371B1 (en) | 2012-11-21 | 2014-03-11 | Maxeler Technologies Ltd. | Systems and methods for configuration of control logic in parallel pipelined hardware |
Family Cites Families (112)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5343554A (en) | 1988-05-20 | 1994-08-30 | John R. Koza | Non-linear genetic process for data encoding and for solving problems using automatically defined functions |
US5642304A (en) | 1991-08-16 | 1997-06-24 | Simpson; John Richard | Apparatus for high-speed solution of arbitrary mathematical expressions with logic code generator and programmable logic circuit |
US5416719A (en) | 1992-12-17 | 1995-05-16 | Vlsi Technology, Inc. | Computerized generation of truth tables for sequential and combinatorial cells |
US8487653B2 (en) | 2006-08-05 | 2013-07-16 | Tang System | SDOC with FPHA and FPXC: system design on chip with field programmable hybrid array of FPAA, FPGA, FPLA, FPMA, FPRA, FPTA and frequency programmable xtaless clockchip with trimless/trimfree self-adaptive bandgap reference xtaless clockchip |
US6112019A (en) | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
US5761483A (en) | 1995-08-18 | 1998-06-02 | Xilinx, Inc. | Optimizing and operating a time multiplexed programmable logic device |
US6212601B1 (en) | 1996-08-30 | 2001-04-03 | Texas Instruments Incorporated | Microprocessor system with block move circuit disposed between cache circuits |
US5909572A (en) | 1996-12-02 | 1999-06-01 | Compaq Computer Corp. | System and method for conditionally moving an operand from a source register to a destination register |
US6061521A (en) | 1996-12-02 | 2000-05-09 | Compaq Computer Corp. | Computer having multimedia operations executable as two distinct sets of operations within a single instruction cycle |
US6784903B2 (en) | 1997-08-18 | 2004-08-31 | National Instruments Corporation | System and method for configuring an instrument to perform measurement functions utilizing conversion of graphical programs into hardware implementations |
US6275508B1 (en) | 1998-04-21 | 2001-08-14 | Nexabit Networks, Llc | Method of and system for processing datagram headers for high speed computer network interfaces at low clock speeds, utilizing scalable algorithms for performing such network header adaptation (SAPNA) |
US6597664B1 (en) * | 1999-08-19 | 2003-07-22 | Massachusetts Institute Of Technology | Digital circuit synthesis system |
US7203718B1 (en) | 1999-10-29 | 2007-04-10 | Pentomics, Inc. | Apparatus and method for angle rotation |
US8095508B2 (en) | 2000-04-07 | 2012-01-10 | Washington University | Intelligent data storage and processing using FPGA devices |
US6988192B2 (en) | 2002-02-11 | 2006-01-17 | Hewlett-Packard Development Company, L.P. | Method and apparatus for compiling source code to configure hardware |
US7516446B2 (en) | 2002-06-25 | 2009-04-07 | International Business Machines Corporation | Method and apparatus for efficient and precise datarace detection for multithreaded object-oriented programs |
US7028281B1 (en) | 2002-07-12 | 2006-04-11 | Lattice Semiconductor Corporation | FPGA with register-intensive architecture |
US7305582B1 (en) | 2002-08-30 | 2007-12-04 | Availigent, Inc. | Consistent asynchronous checkpointing of multithreaded application programs based on active replication |
EP1627284B1 (en) | 2003-05-23 | 2018-10-24 | IP Reservoir, LLC | Intelligent data storage and processing using fpga devices |
US7805638B2 (en) | 2003-06-18 | 2010-09-28 | Nethra Imaging, Inc. | Multi-frequency debug network for a multiprocessor array |
US7111273B1 (en) | 2003-07-03 | 2006-09-19 | Xilinx, Inc. | Softpal implementation and mapping technology for FPGAs with dedicated resources |
EP1654819B1 (en) | 2003-08-15 | 2013-05-15 | Napatech A/S | A data merge unit, a method of producing an interleaved data stream, a network analyser and a method of analysing a network |
KR100626368B1 (ko) | 2003-08-25 | 2006-09-20 | 삼성전자주식회사 | 가비지 콜렉션 벤치마킹 방법 |
JP4562136B2 (ja) | 2003-11-19 | 2010-10-13 | 財団法人北九州産業学術推進機構 | グラフ幅削減装置及びグラフ幅削減方法、並びに論理回路合成装置及び論理回路合成方法 |
US7415681B2 (en) | 2003-12-29 | 2008-08-19 | Sicronic Remote Kg, Llc | Optimal mapping of LUT based FPGA |
DE102005005073B4 (de) | 2004-02-13 | 2009-05-07 | Siemens Ag | Rechnereinrichtung mit rekonfigurierbarer Architektur zur parallelen Berechnung beliebiger Algorithmen |
US7620917B2 (en) | 2004-10-04 | 2009-11-17 | Synopsys, Inc. | Methods and apparatuses for automated circuit design |
US7584449B2 (en) * | 2004-11-22 | 2009-09-01 | Fulcrum Microsystems, Inc. | Logic synthesis of multi-level domino asynchronous pipelines |
US7386820B1 (en) * | 2004-12-10 | 2008-06-10 | Synopsys, Inc. | Method and apparatus for formally checking equivalence using equivalence relationships |
US7647567B1 (en) * | 2005-01-31 | 2010-01-12 | Bluespec, Inc. | System and method for scheduling TRS rules |
US7375550B1 (en) | 2005-07-15 | 2008-05-20 | Tabula, Inc. | Configurable IC with packet switch configuration network |
US8285972B2 (en) | 2005-10-26 | 2012-10-09 | Analog Devices, Inc. | Lookup table addressing system and method |
US7389479B2 (en) * | 2005-12-20 | 2008-06-17 | Synopsys, Inc. | Formally proving the functional equivalence of pipelined designs containing memories |
US7735050B2 (en) | 2006-02-09 | 2010-06-08 | Henry Yu | Managing and controlling the use of hardware resources on integrated circuits |
US8209580B1 (en) | 2006-05-08 | 2012-06-26 | Marvell International Ltd. | Error correction coding for varying signal-to-noise ratio channels |
US7496866B2 (en) * | 2006-06-22 | 2009-02-24 | International Business Machines Corporation | Method for optimizing of pipeline structure placement |
US20080005357A1 (en) | 2006-06-30 | 2008-01-03 | Microsoft Corporation | Synchronizing dataflow computations, particularly in multi-processor setting |
US7801299B2 (en) | 2006-09-22 | 2010-09-21 | Intel Corporation | Techniques for merging tables |
US7545293B2 (en) | 2006-11-14 | 2009-06-09 | Qualcomm Incorporated | Memory efficient coding of variable length codes |
US7573407B2 (en) | 2006-11-14 | 2009-08-11 | Qualcomm Incorporated | Memory efficient adaptive block coding |
TWI331278B (en) | 2007-03-14 | 2010-10-01 | Ind Tech Res Inst | Debug method |
WO2008120367A1 (ja) | 2007-03-29 | 2008-10-09 | Fujitsu Limited | 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム |
US7908574B2 (en) | 2007-05-09 | 2011-03-15 | Synopsys, Inc. | Techniques for use with automated circuit design and simulations |
US7471104B1 (en) | 2007-07-27 | 2008-12-30 | Xilinx, Inc. | Lookup table with relatively balanced delays |
US7735047B1 (en) | 2007-11-29 | 2010-06-08 | Xilinx, Inc. | Method for technology mapping considering boolean flexibility |
US7823117B1 (en) | 2007-12-21 | 2010-10-26 | Xilinx, Inc. | Separating a high-level programming language program into hardware and software components |
US8468510B1 (en) * | 2008-01-16 | 2013-06-18 | Xilinx, Inc. | Optimization of cache architecture generated from a high-level language description |
WO2009097162A1 (en) | 2008-02-01 | 2009-08-06 | The Oliver Group | A method for searching and indexing data and a system for implementing same |
US8930926B2 (en) | 2008-02-08 | 2015-01-06 | Reservoir Labs, Inc. | System, methods and apparatus for program optimization for multi-threaded processor architectures |
WO2009138490A1 (en) | 2008-05-15 | 2009-11-19 | Universiteit Gent | Parameterized configuration for a programmable logic device |
US8392885B2 (en) | 2008-12-19 | 2013-03-05 | Microsoft Corporation | Low privilege debugging pipeline |
JP5773502B2 (ja) | 2010-01-12 | 2015-09-02 | フラウンホーファーゲゼルシャフトツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. | オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化するための方法、オーディオ情報を復号するための方法、および上位状態値と間隔境界との両方を示すハッシュテーブルを用いたコンピュータプログラム |
JP5735503B2 (ja) | 2010-06-24 | 2015-06-17 | 太陽誘電株式会社 | 半導体装置 |
EP2596494B1 (en) | 2010-07-20 | 2020-08-05 | Fraunhofer-Gesellschaft zur Förderung der Angewandten Forschung e.V. | Audio decoder, audio decoding method and computer program |
US8812285B2 (en) * | 2010-08-31 | 2014-08-19 | The Regents Of The University Of California | Designing digital processors using a flexibility metric |
TWI420830B (zh) | 2010-12-31 | 2013-12-21 | Ind Tech Res Inst | 動態解碼查詢表之產生方法與應用其之電子裝置 |
US20130054939A1 (en) * | 2011-08-26 | 2013-02-28 | Cognitive Electronics, Inc. | Integrated circuit having a hard core and a soft core |
US8607249B2 (en) | 2011-09-22 | 2013-12-10 | Oracle International Corporation | System and method for efficient concurrent queue implementation |
US8806410B2 (en) * | 2011-10-28 | 2014-08-12 | The Board Of Trustees Of The University Of Illinois | Power balanced pipelines |
US8752036B2 (en) * | 2011-10-31 | 2014-06-10 | Oracle International Corporation | Throughput-aware software pipelining for highly multi-threaded systems |
US8966457B2 (en) * | 2011-11-15 | 2015-02-24 | Global Supercomputing Corporation | Method and system for converting a single-threaded software program into an application-specific supercomputer |
US8631380B2 (en) | 2011-11-28 | 2014-01-14 | Maxeler Technologies, Ltd. | Method of, and apparatus for, data path optimisation in parallel pipelined hardware |
US8959469B2 (en) * | 2012-02-09 | 2015-02-17 | Altera Corporation | Configuring a programmable device using high-level language |
US9122523B2 (en) * | 2012-05-03 | 2015-09-01 | Nec Laboratories America, Inc. | Automatic pipelining framework for heterogeneous parallel computing systems |
US9047148B2 (en) | 2012-06-15 | 2015-06-02 | Lsi Corporation | Pipelined vectoring-mode CORDIC |
US9081583B2 (en) | 2012-08-23 | 2015-07-14 | National Instruments Corporation | Compile time execution |
US9484874B2 (en) | 2012-11-16 | 2016-11-01 | Nokia Solutions And Networks Oy | Input amplitude modulated outphasing with an unmatched combiner |
CN103023842B (zh) | 2012-11-26 | 2016-08-24 | 大唐移动通信设备有限公司 | 一种多频段预失真系数查找表更新方法和系统 |
US9779195B2 (en) | 2012-12-04 | 2017-10-03 | The Mathworks, Inc. | Model-based retiming with functional equivalence constraints |
US8924901B2 (en) | 2013-02-15 | 2014-12-30 | Synopsys, Inc. | Look-up based fast logic synthesis |
US8775986B1 (en) | 2013-02-25 | 2014-07-08 | Xilinx, Inc. | Software debugging of synthesized hardware |
US8881079B1 (en) * | 2013-03-12 | 2014-11-04 | Xilinx, Inc. | Dataflow parameter estimation for a design |
US9824756B2 (en) | 2013-08-13 | 2017-11-21 | Globalfoundries Inc. | Mapping a lookup table to prefabricated TCAMS |
WO2015051105A1 (en) | 2013-10-02 | 2015-04-09 | The Penn State Research Foundation | Techniques and devices for performing arithmetic |
US9251300B2 (en) * | 2013-10-25 | 2016-02-02 | Altera Corporation | Methods and tools for designing integrated circuits with auto-pipelining capabilities |
JP5842255B2 (ja) * | 2013-12-12 | 2016-01-13 | 国立大学法人東京工業大学 | プログラミング言語による論理回路記述から論理回路を生成するための装置及び方法 |
US9158882B2 (en) | 2013-12-19 | 2015-10-13 | Netspeed Systems | Automatic pipelining of NoC channels to meet timing and/or performance |
US9471307B2 (en) | 2014-01-03 | 2016-10-18 | Nvidia Corporation | System and processor that include an implementation of decoupled pipelines |
US9690278B1 (en) * | 2014-04-10 | 2017-06-27 | Altera Corporation | Method and apparatus for high-level programs with general control flow |
US10090864B2 (en) | 2014-09-22 | 2018-10-02 | Samsung Display Co., Ltd. | System and method for decoding variable length codes |
WO2016049327A1 (en) | 2014-09-26 | 2016-03-31 | Dolby Laboratories Licensing Corporation | Encoding and decoding perceptually-quantized video content |
US10254369B2 (en) | 2014-10-29 | 2019-04-09 | Heartvista, Inc. | Pipeline engine for specifying, visualizing, and analyzing MRI image reconstructions |
CA2965988A1 (en) | 2014-11-21 | 2016-05-26 | Research Institute At Nationwide Children's Hospital | Parallel-processing systems and methods for highly scalable analysis of biological sequence data |
US9680459B2 (en) * | 2014-12-11 | 2017-06-13 | Intel Corporation | Edge-aware synchronization of a data signal |
US9727679B2 (en) | 2014-12-20 | 2017-08-08 | Intel Corporation | System on chip configuration metadata |
US9971858B1 (en) * | 2015-02-20 | 2018-05-15 | Altera Corporation | Method and apparatus for performing register retiming in the presence of false path timing analysis exceptions |
US9858373B2 (en) * | 2015-07-15 | 2018-01-02 | International Business Machines Corporation | In-cycle resource sharing for high-level synthesis of microprocessors |
US9846623B2 (en) | 2015-08-20 | 2017-12-19 | Qsigma, Inc. | Simultaneous multi-processor apparatus applicable to acheiving exascale performance for algorithms and program systems |
US10542186B2 (en) | 2015-09-30 | 2020-01-21 | Dolby Laboratories Licensing Corporation | 2D LUT color transforms with reduced memory footprint |
US10698916B1 (en) | 2015-10-16 | 2020-06-30 | Dr Holdco 2, Inc. | Data preparation context navigation |
US10311558B2 (en) | 2015-11-16 | 2019-06-04 | Dolby Laboratories Licensing Corporation | Efficient image processing on content-adaptive PQ signal domain |
CN107112996B (zh) | 2015-11-20 | 2021-06-18 | 京微雅格(北京)科技有限公司 | 一种基于fpga的查找表工艺映射方法及查找表 |
US9817747B2 (en) | 2015-12-28 | 2017-11-14 | Juniper Networks, Inc. | Systems and methods for unit testing of functions on remote kernels |
US10445271B2 (en) | 2016-01-04 | 2019-10-15 | Intel Corporation | Multi-core communication acceleration using hardware queue device |
US10359832B2 (en) | 2016-03-22 | 2019-07-23 | The Board Of Regents Of The University Of Texas System | Method and apparatus for reducing power and cycle requirement for FFT of ECG signals |
US10162918B1 (en) | 2016-04-27 | 2018-12-25 | Altera Corporation | Integrated circuit retiming with selective modeling of flip-flop secondary signals |
US10275219B2 (en) | 2016-11-08 | 2019-04-30 | Embry-Riddle Aeronautical University, Inc. | Bit-serial multiplier for FPGA applications |
US10248498B2 (en) | 2016-11-21 | 2019-04-02 | Futurewei Technologies, Inc. | Cyclic redundancy check calculation for multiple blocks of a message |
US10235272B2 (en) | 2017-03-06 | 2019-03-19 | Xilinx, Inc. | Debugging system and method |
US10579762B2 (en) | 2017-05-15 | 2020-03-03 | LegUp Computing Inc. | High-level synthesis (HLS) method and apparatus to specify pipeline and spatial parallelism in computer hardware |
US10521877B2 (en) | 2017-05-23 | 2019-12-31 | Samsung Electronics Co., Ltd | Apparatus and method for speculative buffer reservations with cancellation mechanism |
US11454188B2 (en) | 2017-06-02 | 2022-09-27 | The Mathworks, Inc. | Systems and methods for rescaling executable simulation models |
US10331836B1 (en) | 2017-10-11 | 2019-06-25 | Xilinx, Inc. | Loop optimization for implementing circuit designs in hardware |
US20190114548A1 (en) * | 2017-10-17 | 2019-04-18 | Xilinx, Inc. | Static block scheduling in massively parallel software defined hardware systems |
US11755382B2 (en) | 2017-11-03 | 2023-09-12 | Coherent Logix, Incorporated | Programming flow for multi-processor system |
US11307873B2 (en) | 2018-04-03 | 2022-04-19 | Intel Corporation | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging |
US10768916B2 (en) | 2018-11-28 | 2020-09-08 | Red Hat, Inc. | Dynamic generation of CPU instructions and use of the CPU instructions in generated code for a softcore processor |
US11144286B2 (en) | 2019-01-14 | 2021-10-12 | Microsoft Technology Licensing, Llc | Generating synchronous digital circuits from source code constructs that map to circuit implementations |
US11106437B2 (en) | 2019-01-14 | 2021-08-31 | Microsoft Technology Licensing, Llc | Lookup table optimization for programming languages that target synchronous digital circuits |
US11275568B2 (en) | 2019-01-14 | 2022-03-15 | Microsoft Technology Licensing, Llc | Generating a synchronous digital circuit from a source code construct defining a function call |
US11113176B2 (en) | 2019-01-14 | 2021-09-07 | Microsoft Technology Licensing, Llc | Generating a debugging network for a synchronous digital circuit during compilation of program source code |
US10810343B2 (en) | 2019-01-14 | 2020-10-20 | Microsoft Technology Licensing, Llc | Mapping software constructs to synchronous digital circuits that do not deadlock |
-
2019
- 2019-01-14 US US16/247,269 patent/US11093682B2/en active Active
-
2020
- 2020-01-04 KR KR1020217021969A patent/KR20210112330A/ko unknown
- 2020-01-04 JP JP2021540807A patent/JP7402240B2/ja active Active
- 2020-01-04 WO PCT/US2020/012278 patent/WO2020150013A1/en unknown
- 2020-01-04 CN CN202080008950.2A patent/CN113316762A/zh active Pending
- 2020-01-04 SG SG11202107262RA patent/SG11202107262RA/en unknown
- 2020-01-04 MX MX2021008474A patent/MX2021008474A/es unknown
- 2020-01-04 EP EP20702950.5A patent/EP3912025B1/en active Active
- 2020-01-04 CA CA3123903A patent/CA3123903A1/en active Pending
- 2020-01-04 AU AU2020209446A patent/AU2020209446A1/en active Pending
- 2020-01-04 BR BR112021010345-7A patent/BR112021010345A2/pt unknown
-
2021
- 2021-06-03 ZA ZA2021/03821A patent/ZA202103821B/en unknown
- 2021-07-01 IL IL284548A patent/IL284548A/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004036463A1 (ja) | 2002-10-15 | 2004-04-29 | Renesas Technology Corp. | コンパイラ及び論理回路の設計方法 |
JP2006185423A (ja) | 2004-11-30 | 2006-07-13 | Tokyo Electron Ltd | カスタムlsi開発プラットフォーム、命令セット・アーキテクチャ及び論理回路構成情報の生成方法、並びにプログラム |
US7315991B1 (en) | 2005-02-23 | 2008-01-01 | Xilinx, Inc. | Compiling HLL into massively pipelined systems |
US8671371B1 (en) | 2012-11-21 | 2014-03-11 | Maxeler Technologies Ltd. | Systems and methods for configuration of control logic in parallel pipelined hardware |
Also Published As
Publication number | Publication date |
---|---|
MX2021008474A (es) | 2021-08-19 |
CA3123903A1 (en) | 2020-07-23 |
ZA202103821B (en) | 2022-08-31 |
AU2020209446A1 (en) | 2021-06-17 |
US11093682B2 (en) | 2021-08-17 |
IL284548A (en) | 2021-08-31 |
EP3912025B1 (en) | 2024-05-29 |
JP2022518209A (ja) | 2022-03-14 |
SG11202107262RA (en) | 2021-07-29 |
KR20210112330A (ko) | 2021-09-14 |
EP3912025A1 (en) | 2021-11-24 |
US20200226228A1 (en) | 2020-07-16 |
CN113316762A (zh) | 2021-08-27 |
BR112021010345A2 (pt) | 2021-08-24 |
WO2020150013A1 (en) | 2020-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7402240B2 (ja) | スレッドの実行順序を維持する同期デジタル回路を生成する言語およびコンパイラ | |
US11106437B2 (en) | Lookup table optimization for programming languages that target synchronous digital circuits | |
Jia et al. | TASO: optimizing deep learning computation with automatic generation of graph substitutions | |
US10810343B2 (en) | Mapping software constructs to synchronous digital circuits that do not deadlock | |
EP3912074B1 (en) | Generating a synchronous digital circuit from a source code construct defining a function call | |
US8893080B2 (en) | Parallelization of dataflow actors with local state | |
US11144286B2 (en) | Generating synchronous digital circuits from source code constructs that map to circuit implementations | |
US11113176B2 (en) | Generating a debugging network for a synchronous digital circuit during compilation of program source code | |
CN113614752A (zh) | 量子算法的验证和估计运行时间 | |
Huang et al. | A fast input/output library for high-resolution climate models | |
US11762677B1 (en) | High-level vectorization and scalarization of Java vector API library methods | |
US11740869B2 (en) | Scheduling atomic field operations in jacobian coordinates used in elliptic curve cryptography scalar multiplications | |
Czappa et al. | Design-time performance modeling of compositional parallel programs | |
US20220350570A1 (en) | Pipelined hardware to accelerate modular arithmetic operations | |
Zhang et al. | Implementing MapReduce with MSVL | |
Adoni et al. | Multi-path Coverage of All Final States for Model-Based Testing Theory Using Spark In-memory Design | |
Youse | High performance exact linear algebra |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221220 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221220 |
|
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: 20231120 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231208 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7402240 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |