CN107038020A - 支持端序不可知simd指令的处理器和方法 - Google Patents
支持端序不可知simd指令的处理器和方法 Download PDFInfo
- Publication number
- CN107038020A CN107038020A CN201610959252.6A CN201610959252A CN107038020A CN 107038020 A CN107038020 A CN 107038020A CN 201610959252 A CN201610959252 A CN 201610959252A CN 107038020 A CN107038020 A CN 107038020A
- Authority
- CN
- China
- Prior art keywords
- register
- instruction
- byte
- processor system
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title abstract description 24
- 238000003860 storage Methods 0.000 claims abstract description 46
- 238000011068 loading method Methods 0.000 claims description 72
- 238000012545 processing Methods 0.000 claims description 14
- 230000006399 behavior Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 241001269238 Data Species 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000003756 stirring Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000002071 nanotube Substances 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- 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/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- 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/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- 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/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/30098—Register arrangements
-
- 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/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- 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
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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/3824—Operand accessing
-
- 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/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
Claims (20)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/930,740 | 2015-11-03 | ||
US14/930,740 US20170123792A1 (en) | 2015-11-03 | 2015-11-03 | Processors Supporting Endian Agnostic SIMD Instructions and Methods |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107038020A true CN107038020A (zh) | 2017-08-11 |
Family
ID=57389185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610959252.6A Pending CN107038020A (zh) | 2015-11-03 | 2016-11-03 | 支持端序不可知simd指令的处理器和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170123792A1 (zh) |
EP (1) | EP3166014B1 (zh) |
CN (1) | CN107038020A (zh) |
GB (1) | GB2545081A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835842A (zh) * | 2021-03-05 | 2021-05-25 | 深圳市汇顶科技股份有限公司 | 端序处理方法、电路、芯片以及电子终端 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10671387B2 (en) | 2014-06-10 | 2020-06-02 | International Business Machines Corporation | Vector memory access instructions for big-endian element ordered and little-endian element ordered computer code and data |
US10691453B2 (en) | 2015-11-13 | 2020-06-23 | International Business Machines Corporation | Vector load with instruction-specified byte count less than a vector size for big and little endian processing |
US10691456B2 (en) * | 2015-11-13 | 2020-06-23 | International Business Machines Corporation | Vector store instruction having instruction-specified byte count to be stored supporting big and little endian processing |
US10101997B2 (en) | 2016-03-14 | 2018-10-16 | International Business Machines Corporation | Independent vector element order and memory byte order controls |
US10459700B2 (en) * | 2016-03-14 | 2019-10-29 | International Business Machines Corporation | Independent vector element order and memory byte order controls |
US20200264877A1 (en) * | 2019-02-19 | 2020-08-20 | International Business Machines Corporation | Load/store elements reversed instructions |
US20200264883A1 (en) * | 2019-02-19 | 2020-08-20 | International Business Machines Corporation | Load/store bytes reversed elements instructions |
GB2582785A (en) * | 2019-04-02 | 2020-10-07 | Graphcore Ltd | Compiling a program from a graph |
US11886377B2 (en) | 2019-09-10 | 2024-01-30 | Cornami, Inc. | Reconfigurable arithmetic engine circuit |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040030856A1 (en) * | 2002-08-07 | 2004-02-12 | Qureshi Shiraz A. | System and method for operating in endian independent mode |
US6728874B1 (en) * | 2000-10-10 | 2004-04-27 | Koninklijke Philips Electronics N.V. | System and method for processing vectorized data |
US20050125647A1 (en) * | 2003-12-09 | 2005-06-09 | Arm Limited | Endianess compensation within a SIMD data processing system |
US20050125476A1 (en) * | 2003-12-09 | 2005-06-09 | Arm Limited | Data processing apparatus and method for performing arithmetic operations in SIMD data processing |
CN1987827A (zh) * | 2005-12-22 | 2007-06-27 | 国际商业机器公司 | 用来实现高效和灵活存储器复制操作的方法和系统 |
WO2007103195A2 (en) * | 2006-03-06 | 2007-09-13 | Analog Devices. Inc. | Improved permutable address processor and method |
US20100031007A1 (en) * | 2008-02-18 | 2010-02-04 | Sandbridge Technologies, Inc. | Method to accelerate null-terminated string operations |
US20110072170A1 (en) * | 2009-09-21 | 2011-03-24 | Brian King Flachs | Systems and Methods for Transferring Data to Maintain Preferred Slot Positions in a Bi-endian Processor |
CN103827815A (zh) * | 2011-09-26 | 2014-05-28 | 英特尔公司 | 用于提供利用跨越和掩码功能的向量加载和存储的指令和逻辑 |
CN104834503A (zh) * | 2014-02-12 | 2015-08-12 | 想象技术有限公司 | 具有粒度的增加立即数能力的处理器和方法 |
US20150248290A1 (en) * | 2014-02-28 | 2015-09-03 | International Business Machines Corporation | Virtualization in a bi-endian-mode processor architecture |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0236615B1 (en) * | 1986-02-06 | 1992-11-11 | Mips Computer Systems, Inc. | Functional units for computers |
US5687337A (en) * | 1995-02-24 | 1997-11-11 | International Business Machines Corporation | Mixed-endian computer system |
US7047383B2 (en) * | 2002-07-11 | 2006-05-16 | Intel Corporation | Byte swap operation for a 64 bit operand |
US20110082999A1 (en) * | 2009-10-07 | 2011-04-07 | Andes Technology Corporation | Data processing engine with integrated data endianness control mechanism |
JP5622429B2 (ja) * | 2010-04-20 | 2014-11-12 | ルネサスエレクトロニクス株式会社 | マイクロコンピュータ |
US9336072B2 (en) * | 2014-02-07 | 2016-05-10 | Ralph Moore | Event group extensions, systems, and methods |
US9507595B2 (en) * | 2014-02-28 | 2016-11-29 | International Business Machines Corporation | Execution of multi-byte memory access instruction specifying endian mode that overrides current global endian mode |
US9619214B2 (en) * | 2014-08-13 | 2017-04-11 | International Business Machines Corporation | Compiler optimizations for vector instructions |
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 |
US9569190B1 (en) * | 2015-08-04 | 2017-02-14 | International Business Machines Corporation | Compiling source code to reduce run-time execution of vector element reverse operations |
-
2015
- 2015-11-03 US US14/930,740 patent/US20170123792A1/en not_active Abandoned
-
2016
- 2016-10-31 EP EP16196647.8A patent/EP3166014B1/en active Active
- 2016-10-31 GB GB1618384.0A patent/GB2545081A/en not_active Withdrawn
- 2016-11-03 CN CN201610959252.6A patent/CN107038020A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728874B1 (en) * | 2000-10-10 | 2004-04-27 | Koninklijke Philips Electronics N.V. | System and method for processing vectorized data |
US20040030856A1 (en) * | 2002-08-07 | 2004-02-12 | Qureshi Shiraz A. | System and method for operating in endian independent mode |
US20050125647A1 (en) * | 2003-12-09 | 2005-06-09 | Arm Limited | Endianess compensation within a SIMD data processing system |
US20050125476A1 (en) * | 2003-12-09 | 2005-06-09 | Arm Limited | Data processing apparatus and method for performing arithmetic operations in SIMD data processing |
CN1987827A (zh) * | 2005-12-22 | 2007-06-27 | 国际商业机器公司 | 用来实现高效和灵活存储器复制操作的方法和系统 |
WO2007103195A2 (en) * | 2006-03-06 | 2007-09-13 | Analog Devices. Inc. | Improved permutable address processor and method |
US20100031007A1 (en) * | 2008-02-18 | 2010-02-04 | Sandbridge Technologies, Inc. | Method to accelerate null-terminated string operations |
US20110072170A1 (en) * | 2009-09-21 | 2011-03-24 | Brian King Flachs | Systems and Methods for Transferring Data to Maintain Preferred Slot Positions in a Bi-endian Processor |
CN103827815A (zh) * | 2011-09-26 | 2014-05-28 | 英特尔公司 | 用于提供利用跨越和掩码功能的向量加载和存储的指令和逻辑 |
CN104834503A (zh) * | 2014-02-12 | 2015-08-12 | 想象技术有限公司 | 具有粒度的增加立即数能力的处理器和方法 |
US20150248290A1 (en) * | 2014-02-28 | 2015-09-03 | International Business Machines Corporation | Virtualization in a bi-endian-mode processor architecture |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835842A (zh) * | 2021-03-05 | 2021-05-25 | 深圳市汇顶科技股份有限公司 | 端序处理方法、电路、芯片以及电子终端 |
CN112835842B (zh) * | 2021-03-05 | 2024-04-30 | 深圳市汇顶科技股份有限公司 | 端序处理方法、电路、芯片以及电子终端 |
Also Published As
Publication number | Publication date |
---|---|
GB201618384D0 (en) | 2016-12-14 |
US20170123792A1 (en) | 2017-05-04 |
EP3166014A1 (en) | 2017-05-10 |
GB2545081A (en) | 2017-06-07 |
EP3166014B1 (en) | 2020-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107038020A (zh) | 支持端序不可知simd指令的处理器和方法 | |
CN104050026B (zh) | 使对共享存储器存取的同步松弛的处理器、方法及系统 | |
CN104919416B (zh) | 用于提供矢量地址冲突检测功能的方法、装置、指令和逻辑 | |
CN111868702A (zh) | 用于可配置空间加速器中的远程存储器访问的装置、方法和系统 | |
CN109313556A (zh) | 可中断和可重启矩阵乘法指令、处理器、方法和系统 | |
CN105302543A (zh) | 在64位机器上运行32位操作系统 | |
CN107408036A (zh) | 用户级分叉与结合处理器、方法、系统和指令 | |
CN107368286A (zh) | 用于多精度算术的simd整数乘法累加指令 | |
CN106575218A (zh) | 持久性存储屏障处理器、方法、系统和指令 | |
CN108292215A (zh) | 用于加载-索引和预取-聚集操作的指令和逻辑 | |
US9575763B2 (en) | Accelerated reversal of speculative state changes and resource recovery | |
CN105453030B (zh) | 向较宽的寄存器进行依赖于模式的部分宽度加载的处理器、方法和系统 | |
CN107430508A (zh) | 用于提供原子范围操作的指令和逻辑 | |
CN108369516A (zh) | 用于加载-索引和预取-分散操作的指令和逻辑 | |
CN104011666B (zh) | 具有独立进位链的加法指令 | |
US9471326B2 (en) | Method and apparatus for differential checkpointing | |
CN105247479B (zh) | 指令次序实施指令对、处理器、方法和系统 | |
CN108885551A (zh) | 存储器复制指令、处理器、方法和系统 | |
CN108292293A (zh) | 用于得到多个向量元素操作的指令和逻辑 | |
CN107003854A (zh) | 提供向量包装元组交叉比较功能的方法、装置、指令和逻辑 | |
CN108431770A (zh) | 用于加速集合运算的硬件内容关联数据结构 | |
US20180217840A1 (en) | An apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank | |
CN108228234A (zh) | 用于聚集-更新-分散操作的加速器 | |
CN103946797B (zh) | 用于转换矢量指令的系统、装置和方法 | |
CN108369571A (zh) | 用于偶数和奇数向量get操作的指令和逻辑 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Hertfordshire Applicant after: Mex Technology Co.,Ltd. Address before: Hertfordshire Applicant before: Harrow Software Co.,Ltd. |
|
CB02 | Change of applicant information | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190821 Address after: Hertfordshire Applicant after: Harrow Software Co.,Ltd. Address before: Hertfordshire Applicant before: Imagination Technologies Ltd. Effective date of registration: 20190821 Address after: California, USA Applicant after: Imagination Technologies Ltd. Address before: Hertfordshire Applicant before: Mex Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170811 |
|
WD01 | Invention patent application deemed withdrawn after publication |