CN105183433A - 指令合并方法以及具有多数据通道的装置 - Google Patents
指令合并方法以及具有多数据通道的装置 Download PDFInfo
- Publication number
- CN105183433A CN105183433A CN201510521991.2A CN201510521991A CN105183433A CN 105183433 A CN105183433 A CN 105183433A CN 201510521991 A CN201510521991 A CN 201510521991A CN 105183433 A CN105183433 A CN 105183433A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- instruction
- unit
- bypass channel
- channel
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000005070 sampling Methods 0.000 claims abstract description 16
- 238000012805 post-processing Methods 0.000 claims description 16
- 238000005267 amalgamation Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 5
- 238000012545 processing Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000052 comparative effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 102100026693 FAS-associated death domain protein Human genes 0.000 description 1
- 101000911074 Homo sapiens FAS-associated death domain protein Proteins 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 201000008103 leukocyte adhesion deficiency 3 Diseases 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- 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/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/456—Parallelism detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
Abstract
Description
Claims (12)
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510521991.2A CN105183433B (zh) | 2015-08-24 | 2015-08-24 | 指令合并方法以及具有多数据通道的装置 |
US14/855,580 US9904550B2 (en) | 2015-08-24 | 2015-09-16 | Methods for combining instructions and apparatuses having multiple data pipes |
TW104132348A TWI552081B (zh) | 2015-08-24 | 2015-10-01 | 指令合倂方法以及具有多資料通道的裝置 |
EP15189469.8A EP3136228B1 (en) | 2015-08-24 | 2015-10-13 | Methods for combining instructions and apparatuses having multiple data pipes |
EP23181534.1A EP4258110A3 (en) | 2015-08-24 | 2015-10-13 | Methods for combining instructions and apparatuses having multiple data pipes |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510521991.2A CN105183433B (zh) | 2015-08-24 | 2015-08-24 | 指令合并方法以及具有多数据通道的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105183433A true CN105183433A (zh) | 2015-12-23 |
CN105183433B CN105183433B (zh) | 2018-02-06 |
Family
ID=54324852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510521991.2A Active CN105183433B (zh) | 2015-08-24 | 2015-08-24 | 指令合并方法以及具有多数据通道的装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9904550B2 (zh) |
EP (2) | EP3136228B1 (zh) |
CN (1) | CN105183433B (zh) |
TW (1) | TWI552081B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6237086B1 (en) * | 1998-04-22 | 2001-05-22 | Sun Microsystems, Inc. | 1 Method to prevent pipeline stalls in superscalar stack based computing systems |
US20060271738A1 (en) * | 2005-05-24 | 2006-11-30 | Texas Instruments Incorporated | Configurable cache system depending on instruction type |
CN101238454A (zh) * | 2005-08-11 | 2008-08-06 | 科莱索尼克公司 | 包括复数短乘法器和独立的矢量加载单元的具有集群式simd微体系结构的可编程数字信号处理器 |
CN101377736A (zh) * | 2008-04-03 | 2009-03-04 | 威盛电子股份有限公司 | 乱序执行微处理器以及宏指令处理方法 |
US8055883B2 (en) * | 2009-07-01 | 2011-11-08 | Arm Limited | Pipe scheduling for pipelines based on destination register number |
CN103646009A (zh) * | 2006-04-12 | 2014-03-19 | 索夫特机械公司 | 对载明并行和依赖运算的指令矩阵进行处理的装置和方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5333284A (en) * | 1990-09-10 | 1994-07-26 | Honeywell, Inc. | Repeated ALU in pipelined processor design |
KR100584964B1 (ko) * | 1996-01-24 | 2006-05-29 | 선 마이크로시스템즈 인코퍼레이티드 | 스택 메모리 구조에서의 캐싱 장치 |
EP1606706A2 (en) * | 2003-03-19 | 2005-12-21 | Koninklijke Philips Electronics N.V. | Use of bypassing in a pipelined instruction processor |
US7020757B2 (en) | 2003-03-27 | 2006-03-28 | Hewlett-Packard Development Company, L.P. | Providing an arrangement of memory devices to enable high-speed data access |
TWI275994B (en) | 2004-12-29 | 2007-03-11 | Ind Tech Res Inst | Encoding method for very long instruction word (VLIW) DSP processor and decoding method thereof |
US20060195631A1 (en) | 2005-01-31 | 2006-08-31 | Ramasubramanian Rajamani | Memory buffers for merging local data from memory modules |
US8443030B1 (en) * | 2007-03-09 | 2013-05-14 | Marvell International Ltd. | Processing of floating point multiply-accumulate instructions using multiple operand pathways |
US9009686B2 (en) * | 2011-11-07 | 2015-04-14 | Nvidia Corporation | Algorithm for 64-bit address mode optimization |
US9569214B2 (en) * | 2012-12-27 | 2017-02-14 | Nvidia Corporation | Execution pipeline data forwarding |
US9003382B2 (en) * | 2013-02-18 | 2015-04-07 | Red Hat, Inc. | Efficient just-in-time compilation |
US9483266B2 (en) | 2013-03-15 | 2016-11-01 | Intel Corporation | Fusible instructions and logic to provide OR-test and AND-test functionality using multiple test sources |
US9342312B2 (en) * | 2013-06-14 | 2016-05-17 | Texas Instruments Incorporated | Processor with inter-execution unit instruction issue |
US20150186168A1 (en) * | 2013-12-30 | 2015-07-02 | Unisys Corporation | Dedicating processing resources to just-in-time compilers and instruction processors in a dynamic translator |
US9213563B2 (en) * | 2013-12-30 | 2015-12-15 | Unisys Corporation | Implementing a jump instruction in a dynamic translator that uses instruction code translation and just-in-time compilation |
US9524178B2 (en) * | 2013-12-30 | 2016-12-20 | Unisys Corporation | Defining an instruction path to be compiled by a just-in-time (JIT) compiler |
US9477477B2 (en) * | 2014-01-22 | 2016-10-25 | Nvidia Corporation | System, method, and computer program product for executing casting-arithmetic instructions |
US9442706B2 (en) * | 2014-05-30 | 2016-09-13 | Apple Inc. | Combining compute tasks for a graphics processing unit |
US9501269B2 (en) * | 2014-09-30 | 2016-11-22 | Advanced Micro Devices, Inc. | Automatic source code generation for accelerated function calls |
US9864583B2 (en) * | 2014-11-14 | 2018-01-09 | Cavium, Inc. | Algorithm to derive logic expression to select execution blocks for programmable network devices |
US10318292B2 (en) * | 2014-11-17 | 2019-06-11 | Intel Corporation | Hardware instruction set to replace a plurality of atomic operations with a single atomic operation |
US9588746B2 (en) * | 2014-12-19 | 2017-03-07 | International Business Machines Corporation | Compiler method for generating instructions for vector operations on a multi-endian processor |
JP6492943B2 (ja) * | 2015-05-07 | 2019-04-03 | 富士通株式会社 | 計算機、コンパイル方法、コンパイルプログラム、およびパイプライン処理プログラム |
US10564943B2 (en) * | 2015-06-08 | 2020-02-18 | Oracle International Corporation | Special calling sequence for caller-sensitive methods |
US10055208B2 (en) * | 2015-08-09 | 2018-08-21 | Oracle International Corporation | Extending a virtual machine instruction set architecture |
US10140119B2 (en) * | 2016-03-17 | 2018-11-27 | Oracle International Corporation | Modular serialization |
-
2015
- 2015-08-24 CN CN201510521991.2A patent/CN105183433B/zh active Active
- 2015-09-16 US US14/855,580 patent/US9904550B2/en active Active
- 2015-10-01 TW TW104132348A patent/TWI552081B/zh active
- 2015-10-13 EP EP15189469.8A patent/EP3136228B1/en active Active
- 2015-10-13 EP EP23181534.1A patent/EP4258110A3/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6237086B1 (en) * | 1998-04-22 | 2001-05-22 | Sun Microsystems, Inc. | 1 Method to prevent pipeline stalls in superscalar stack based computing systems |
US20060271738A1 (en) * | 2005-05-24 | 2006-11-30 | Texas Instruments Incorporated | Configurable cache system depending on instruction type |
CN101180611A (zh) * | 2005-05-24 | 2008-05-14 | 德克萨斯仪器股份有限公司 | 依赖于指令类型的可配置高速缓存系统 |
CN101238454A (zh) * | 2005-08-11 | 2008-08-06 | 科莱索尼克公司 | 包括复数短乘法器和独立的矢量加载单元的具有集群式simd微体系结构的可编程数字信号处理器 |
CN103646009A (zh) * | 2006-04-12 | 2014-03-19 | 索夫特机械公司 | 对载明并行和依赖运算的指令矩阵进行处理的装置和方法 |
CN101377736A (zh) * | 2008-04-03 | 2009-03-04 | 威盛电子股份有限公司 | 乱序执行微处理器以及宏指令处理方法 |
US8055883B2 (en) * | 2009-07-01 | 2011-11-08 | Arm Limited | Pipe scheduling for pipelines based on destination register number |
Also Published As
Publication number | Publication date |
---|---|
TW201709060A (zh) | 2017-03-01 |
EP4258110A2 (en) | 2023-10-11 |
EP4258110A3 (en) | 2024-01-03 |
TWI552081B (zh) | 2016-10-01 |
EP3136228A1 (en) | 2017-03-01 |
US20170060594A1 (en) | 2017-03-02 |
EP3136228B1 (en) | 2023-08-09 |
US9904550B2 (en) | 2018-02-27 |
CN105183433B (zh) | 2018-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110036368B (zh) | 用于执行算术运算以累加浮点数的装置及方法 | |
US9542154B2 (en) | Fused multiply add operations using bit masks | |
Yu et al. | Vector processing as a soft-core CPU accelerator | |
TWI733798B (zh) | 在執行向量操作時管理位址衝突的設備及方法 | |
TWI514269B (zh) | 用於大整數算術之向量指令的設備與方法 | |
KR20100075588A (ko) | 산술연산용 크기 검출장치 및 방법 | |
US10474427B2 (en) | Comparison of wide data types | |
CN114443559A (zh) | 可重构算子单元、处理器、计算方法、装置、设备及介质 | |
EP3655851A1 (en) | Register-based complex number processing | |
US20100115232A1 (en) | Large integer support in vector operations | |
CN105183433A (zh) | 指令合并方法以及具有多数据通道的装置 | |
Dally | Micro-optimization of floating-point operations | |
US7167889B2 (en) | Decimal multiplication for superscaler processors | |
Yavits et al. | Associative Processor | |
US11768664B2 (en) | Processing unit with mixed precision operations | |
Jezequel et al. | Parallelization of Discrete Stochastic Arithmetic on multicore architectures | |
Mishra et al. | A novel signal processing coprocessor for n-dimensional geometric algebra applications | |
CN108268349B (zh) | 一种基于intel avx指令集的浮点峰值计算吞吐测试方法 | |
US20140372728A1 (en) | Vector execution unit for digital signal processor | |
Odendahl et al. | A next generation digital signal processor for European space missions | |
US5257394A (en) | Logical expression processing pipeline using pushdown stacks for a vector computer | |
CN113064841B (zh) | 一种数据存储方法、处理方法、计算设备及可读存储介质 | |
Mazouz et al. | An efficient real time implementation of a fast IMM for tracking a manoeuvring target | |
RUNCEANU et al. | ALGORITHMS IMPLEMENTING OPERATIONS WITH BIG NUMBERS. | |
Mahalingam et al. | Adapting barrel shifter at compilation level for efficient implementation of multiplications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211206 Address after: Room 201, No. 2557, Jinke Road, pilot Free Trade Zone, Pudong New Area, Shanghai 201203 Patentee after: Gryfield Intelligent Technology Co.,Ltd. Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203 Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd. |
|
CP03 | Change of name, title or address |
Address after: 201203, 11th Floor, Building 3, No. 889 Bibo Road, China (Shanghai) Pilot Free Trade Zone, Shanghai Patentee after: Granfei Intelligent Technology Co.,Ltd. Country or region after: China Address before: Room 201, No. 2557, Jinke Road, pilot Free Trade Zone, Pudong New Area, Shanghai 201203 Patentee before: Gryfield Intelligent Technology Co.,Ltd. Country or region before: China |