RU2014118857A - Команда векторного типа для поиска неравнозначного элемента - Google Patents
Команда векторного типа для поиска неравнозначного элемента Download PDFInfo
- Publication number
- RU2014118857A RU2014118857A RU2014118857/08A RU2014118857A RU2014118857A RU 2014118857 A RU2014118857 A RU 2014118857A RU 2014118857/08 A RU2014118857/08 A RU 2014118857/08A RU 2014118857 A RU2014118857 A RU 2014118857A RU 2014118857 A RU2014118857 A RU 2014118857A
- Authority
- RU
- Russia
- Prior art keywords
- operand
- zero
- index
- result
- register
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract 17
- 230000015572 biosynthetic process Effects 0.000 claims 1
- 238000004590 computer program Methods 0.000 claims 1
- 238000001514 detection method Methods 0.000 claims 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/3001—Arithmetic instructions
-
- 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
-
- 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
-
- 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/30018—Bit or string 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/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/30047—Prefetch instructions; cache control 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- 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/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
1. Способ выполнения машинной команды в центральном процессорном устройстве, включающий следующие шаги:получение процессором машинной команды для выполнения, которая определена для выполнения компьютером в соответствии с архитектурой компьютера и содержит:по меньшей мере одно поле кода операции для указания кода операции, идентифицирующего команду векторного типа для поиска неравнозначного элемента,поле расширения, используемое для обозначения одного или более регистров,поле первого регистра, объединяемое с первой частью указанного поля расширения для обозначения первого регистра, причем указанный первый регистр содержит первый операнд,поле второго регистра, объединяемое со второй частью указанного поля расширения для обозначения второго регистра, причем указанный второй регистр содержит второй операнд,поле третьего регистра, объединяемое с третьей частью указанного поля расширения для обозначения третьего регистра, причем указанный третий регистр содержит третий операнд,поле маски, которое содержит один или более управляющих флагов, предназначенных для использования во время выполнения машинной команды,выполнение машинной команды, включающее:принятие решения о том, содержит ли поле маски флаг поиска нуля, указывающий на необходимость выполнить поиск равного нулю элемента,на основе поля маски, содержащего флаг поиска нуля, указывающий на необходимость выполнить поиск равного нулю элемента, выполнение поиска во втором операнде равного нулю элемента, причем в результате поиска предоставляется индекс равного нулю элемента, содержащий либо индекс найденного в результате поиска равного нулю
Claims (13)
1. Способ выполнения машинной команды в центральном процессорном устройстве, включающий следующие шаги:
получение процессором машинной команды для выполнения, которая определена для выполнения компьютером в соответствии с архитектурой компьютера и содержит:
по меньшей мере одно поле кода операции для указания кода операции, идентифицирующего команду векторного типа для поиска неравнозначного элемента,
поле расширения, используемое для обозначения одного или более регистров,
поле первого регистра, объединяемое с первой частью указанного поля расширения для обозначения первого регистра, причем указанный первый регистр содержит первый операнд,
поле второго регистра, объединяемое со второй частью указанного поля расширения для обозначения второго регистра, причем указанный второй регистр содержит второй операнд,
поле третьего регистра, объединяемое с третьей частью указанного поля расширения для обозначения третьего регистра, причем указанный третий регистр содержит третий операнд,
поле маски, которое содержит один или более управляющих флагов, предназначенных для использования во время выполнения машинной команды,
выполнение машинной команды, включающее:
принятие решения о том, содержит ли поле маски флаг поиска нуля, указывающий на необходимость выполнить поиск равного нулю элемента,
на основе поля маски, содержащего флаг поиска нуля, указывающий на необходимость выполнить поиск равного нулю элемента, выполнение поиска во втором операнде равного нулю элемента, причем в результате поиска предоставляется индекс равного нулю элемента, содержащий либо индекс найденного в результате поиска равного нулю элемента, либо указание на то, что равных нулю элементов не найдено,
сравнение одного или более элементов второго операнда с одним или более элементами третьего операнда на предмет неравенства их значений, причем в результате сравнения предоставляется индекс сравнения, содержащий либо индекс найденного в результате сравнения неравнозначного элемента второго операнда, либо указание на то, что неравнозначных элементов в результате сравнения не найдено,
формирование результата, причем в зависимости от того, выполнялся ли поиск равного нулю элемента, результат содержит одно из двух:
если поиск равного нулю элемента не выполнялся, то результат содержит индекс сравнения,
если поиск равного нулю элемента выполнялся, то результат содержит либо индекс сравнения, либо индекс равного нулю элемента.
2. Способ по п. 1, в котором результат соответствует равному нулю или неравнозначному элементу, причем способ дополнительно включает следующие шаги:
обработка результата, включающая выполнение по меньшей мере одной операции над результатом для формирования обработанного результата, который, в свою очередь, содержит индекс первого байта указанного элемента,
сохранение обработанного результата в указанном первом операнде.
3. Способ по п. 2, в котором машинная команда также содержит еще одно, другое поле маски, содержащее спецификатор длины элемента, определяющий длину элементов по меньшей мере одного из первого, второго и третьего операндов, причем длина элемента используется при указанной обработке результата.
4. Способ по п. 1, в котором результат содержит величину, указывающую длину второго операнда, причем способ также включает сохранение результата в указанном первом операнде.
5. Способ по п. 1, в котором поле маски содержит флаг установки кода условия, причем способ также включает:
определение того, установлен ли флаг установки кода условия,
установку кода условия для выполнения указанной машинной команды, если флаг установки кода условия установлен.
6. Способ по п. 5, в котором указанная установка кода условия включает одно из следующего:
присвоение коду условия значения, указывающего на обнаружение равного нулю элемента, индекс которого меньше, чем индекс сравнения любого из неравнозначных элементов, выявленных в результате сравнения,
присвоение коду условия значения, указывающего на выявленный неравнозначный элемент, причем значение неравнозначного элемента второго операнда меньше значения неравнозначного элемента третьего операнда,
присвоение коду условия значения, указывающего на выявленный неравнозначный элемент, причем значение неравнозначного элемента второго операнда больше значения неравнозначного элемента третьего операнда,
присвоение коду условия значения, указывающего на то, что различий нет, и, в зависимости от того, был ли установлен флаг поиска равного нулю элемента, что равных нулю элементов не найдено.
7. Способ по п. 1, в котором указанное выполнение включает определение в ходе выполнения направления сравнения, представляющее собой направление слева направо или справа налево, и указанное определение направления сравнения содержит обращение машинной команды к спецификатору направления для определения направления.
8. Способ по п. 1, в котором указанные второй операнд и третий операнд состоят из N байтов, в котором указанное сравнение содержит сравнение в параллельном режиме N байтов второго операнда с N байтами третьего операнда, и в котором длина элемента составляет один байт, либо два байта, либо четыре байта.
9. Способ по п. 1, в котором указанный индекс равного нулю элемента содержит индекс байта, и этот индекс байта является индексом первого байта равного нулю элемента.
10. Способ по п. 1, в котором указанный индекс неравнозначного элемента содержит индекс байта, и этот индекс байта является индексом байта найденного неравнозначного элемента.
11. Способ по п. 1, в котором указание на то, что равный нулю элемент не найден, и/или указание на то, что различий не найдено, содержит включение в состав индекса равного нулю элемента и/или индекса сравнения числа, представляющего длину второго операнда.
12. Система, содержащая средства, приспособленные для выполнения всех шагов способа по любому из пп. 1-11.
13. Компьютерная программа, содержащая команды для выполнения всех шагов способа по любому из пп. 1-11 при ее выполнении в компьютерной системе.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/421,442 | 2012-03-15 | ||
US13/421,442 US9588762B2 (en) | 2012-03-15 | 2012-03-15 | Vector find element not equal instruction |
PCT/IB2013/051810 WO2013136232A1 (en) | 2012-03-15 | 2013-03-07 | Vector find element not equal instruction |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2014118857A true RU2014118857A (ru) | 2015-11-20 |
RU2598814C2 RU2598814C2 (ru) | 2016-09-27 |
Family
ID=49158806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2014118857/08A RU2598814C2 (ru) | 2012-03-15 | 2013-03-07 | Команда векторного типа для поиска неравнозначного элемента |
Country Status (15)
Country | Link |
---|---|
US (2) | US9588762B2 (ru) |
EP (1) | EP2756415B1 (ru) |
JP (1) | JP6238242B2 (ru) |
KR (1) | KR101625315B1 (ru) |
CN (1) | CN104169906B (ru) |
AU (1) | AU2013233992B2 (ru) |
CA (1) | CA2866878C (ru) |
HU (1) | HUE027938T2 (ru) |
IL (1) | IL232813A (ru) |
PT (1) | PT2756415E (ru) |
RU (1) | RU2598814C2 (ru) |
SG (1) | SG11201404862RA (ru) |
TW (1) | TWI550510B (ru) |
WO (1) | WO2013136232A1 (ru) |
ZA (1) | ZA201407243B (ru) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10318291B2 (en) * | 2011-11-30 | 2019-06-11 | Intel Corporation | Providing vector horizontal compare functionality within a vector register |
US9280347B2 (en) | 2012-03-15 | 2016-03-08 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
US9715383B2 (en) | 2012-03-15 | 2017-07-25 | International Business Machines Corporation | Vector find element equal instruction |
US9454367B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Finding the length of a set of character data having a termination character |
US9459864B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Vector string range compare |
US9710266B2 (en) | 2012-03-15 | 2017-07-18 | International Business Machines Corporation | Instruction to compute the distance to a specified memory boundary |
US9459867B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a specified memory boundary indicated by the instruction |
US9588762B2 (en) | 2012-03-15 | 2017-03-07 | International Business Machines Corporation | Vector find element not equal instruction |
US9454366B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Copying character data having a termination character from one memory location to another |
US9459868B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a dynamically determined memory boundary |
US9268566B2 (en) | 2012-03-15 | 2016-02-23 | International Business Machines Corporation | Character data match determination by loading registers at most up to memory block boundary and comparing |
US9804840B2 (en) | 2013-01-23 | 2017-10-31 | International Business Machines Corporation | Vector Galois Field Multiply Sum and Accumulate instruction |
US9778932B2 (en) | 2013-01-23 | 2017-10-03 | International Business Machines Corporation | Vector generate mask instruction |
US9471308B2 (en) | 2013-01-23 | 2016-10-18 | International Business Machines Corporation | Vector floating point test data class immediate instruction |
US9823924B2 (en) | 2013-01-23 | 2017-11-21 | International Business Machines Corporation | Vector element rotate and insert under mask instruction |
US9715385B2 (en) | 2013-01-23 | 2017-07-25 | International Business Machines Corporation | Vector exception code |
US9513906B2 (en) | 2013-01-23 | 2016-12-06 | International Business Machines Corporation | Vector checksum instruction |
US9703721B2 (en) | 2014-12-29 | 2017-07-11 | International Business Machines Corporation | Processing page fault exceptions in supervisory software when accessing strings and similar data structures using normal load instructions |
US9569127B2 (en) | 2014-12-29 | 2017-02-14 | International Business Machines Corporation | Computer instructions for limiting access violation reporting when accessing strings and similar data structures |
US9715420B2 (en) | 2015-01-21 | 2017-07-25 | International Business Machines Corporation | String dataflow error detection |
US10540512B2 (en) * | 2015-09-29 | 2020-01-21 | International Business Machines Corporation | Exception preserving parallel data processing of string and unstructured text |
US10409613B2 (en) * | 2015-12-23 | 2019-09-10 | Intel Corporation | Processing devices to perform a key value lookup instruction |
CN107315563B (zh) * | 2016-04-26 | 2020-08-07 | 中科寒武纪科技股份有限公司 | 一种用于执行向量比较运算的装置和方法 |
CN106201440B (zh) * | 2016-06-28 | 2018-10-23 | 上海兆芯集成电路有限公司 | 字符串比较指令优化的中央处理单元以及其操作方法 |
US10175946B2 (en) * | 2016-09-30 | 2019-01-08 | International Business Machines Corporation | Perform sign operation decimal instruction |
US9785435B1 (en) * | 2016-10-27 | 2017-10-10 | International Business Machines Corporation | Floating point instruction with selectable comparison attributes |
EP3428792B1 (en) * | 2017-07-10 | 2022-05-04 | Arm Ltd | Testing bit values inside vector elements |
CN109299018B (zh) * | 2018-08-15 | 2023-12-29 | 深圳拓邦股份有限公司 | 一种Flash存储器中历史数据的读取方法及装置 |
US11182165B2 (en) * | 2018-11-19 | 2021-11-23 | International Business Machines Corporation | Skip-over offset branch prediction |
US11327862B2 (en) | 2019-05-20 | 2022-05-10 | Micron Technology, Inc. | Multi-lane solutions for addressing vector elements using vector index registers |
US11340904B2 (en) | 2019-05-20 | 2022-05-24 | Micron Technology, Inc. | Vector index registers |
US11403256B2 (en) | 2019-05-20 | 2022-08-02 | Micron Technology, Inc. | Conditional operations in a vector processor having true and false vector index registers |
US11507374B2 (en) * | 2019-05-20 | 2022-11-22 | Micron Technology, Inc. | True/false vector index registers and methods of populating thereof |
TWI721715B (zh) * | 2019-12-17 | 2021-03-11 | 英業達股份有限公司 | 基板管理控制器的壓力測試方法、系統、儲存媒體及裝置 |
Family Cites Families (96)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62276668A (ja) | 1985-07-31 | 1987-12-01 | Nec Corp | ベクトルマスク演算制御ユニツト |
US5073864A (en) | 1987-02-10 | 1991-12-17 | Davin Computer Corporation | Parallel string processor and method for a minicomputer |
US5222225A (en) | 1988-10-07 | 1993-06-22 | International Business Machines Corporation | Apparatus for processing character string moves in a data processing system |
JPH0831032B2 (ja) | 1990-08-29 | 1996-03-27 | 三菱電機株式会社 | データ処理装置 |
US5465374A (en) | 1993-01-12 | 1995-11-07 | International Business Machines Corporation | Processor for processing data string by byte-by-byte |
WO1994027215A1 (en) | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
EP0704073A1 (en) | 1993-06-14 | 1996-04-03 | Apple Computer, Inc. | Method and apparatus for finding a termination character within a variable length character string or a processor |
JPH0721034A (ja) | 1993-06-28 | 1995-01-24 | Fujitsu Ltd | 文字列複写処理方法 |
US5509129A (en) | 1993-11-30 | 1996-04-16 | Guttag; Karl M. | Long instruction word controlling plural independent processor operations |
US6185629B1 (en) | 1994-03-08 | 2001-02-06 | Texas Instruments Incorporated | Data transfer controller employing differing memory interface protocols dependent upon external input at predetermined time |
US5551013A (en) | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
DE69520350T2 (de) | 1994-09-27 | 2001-08-09 | Nippon Kokan Kk | Galvanisiertes stahlblech und verfahren zur herstellung |
US5790825A (en) | 1995-11-08 | 1998-08-04 | Apple Computer, Inc. | Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions |
US5812147A (en) | 1996-09-20 | 1998-09-22 | Silicon Graphics, Inc. | Instruction methods for performing data formatting while moving data between memory and a vector register file |
TW343318B (en) * | 1996-09-23 | 1998-10-21 | Advanced Risc Mach Ltd | Register addressing in a data processing apparatus |
US5931940A (en) | 1997-01-23 | 1999-08-03 | Unisys Corporation | Testing and string instructions for data stored on memory byte boundaries in a word oriented machine |
AU746743B2 (en) * | 1997-11-24 | 2002-05-02 | British Telecommunications Public Limited Company | Information management and retrieval |
US6009261A (en) | 1997-12-16 | 1999-12-28 | International Business Machines Corporation | Preprocessing of stored target routines for emulating incompatible instructions on a target processor |
US6094695A (en) | 1998-03-11 | 2000-07-25 | Texas Instruments Incorporated | Storage buffer that dynamically adjusts boundary between two storage areas when one area is full and the other has an empty data register |
US6334176B1 (en) | 1998-04-17 | 2001-12-25 | Motorola, Inc. | Method and apparatus for generating an alignment control vector |
US6308255B1 (en) | 1998-05-26 | 2001-10-23 | Advanced Micro Devices, Inc. | Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system |
US7100026B2 (en) | 2001-05-30 | 2006-08-29 | The Massachusetts Institute Of Technology | System and method for performing efficient conditional vector operations for data parallel architectures involving both input and conditional vector values |
US6463582B1 (en) | 1998-10-21 | 2002-10-08 | Fujitsu Limited | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
JP3564395B2 (ja) | 1998-11-27 | 2004-09-08 | 松下電器産業株式会社 | アドレス生成装置および動きベクトル検出装置 |
US6192466B1 (en) | 1999-01-21 | 2001-02-20 | International Business Machines Corporation | Pipeline control for high-frequency pipelined designs |
US8127121B2 (en) | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
US6189088B1 (en) | 1999-02-03 | 2001-02-13 | International Business Machines Corporation | Forwarding stored dara fetched for out-of-order load/read operation to over-taken operation read-accessing same memory location |
US6499116B1 (en) | 1999-03-31 | 2002-12-24 | International Business Machines Corp. | Performance of data stream touch events |
US6802056B1 (en) | 1999-06-30 | 2004-10-05 | Microsoft Corporation | Translation and transformation of heterogeneous programs |
US6381691B1 (en) | 1999-08-13 | 2002-04-30 | International Business Machines Corporation | Method and apparatus for reordering memory operations along multiple execution paths in a processor |
US6513109B1 (en) | 1999-08-31 | 2003-01-28 | International Business Machines Corporation | Method and apparatus for implementing execution predicates in a computer processing system |
US6449706B1 (en) | 1999-12-22 | 2002-09-10 | Intel Corporation | Method and apparatus for accessing unaligned data |
JP2001236249A (ja) | 2000-02-24 | 2001-08-31 | Nec Corp | メモリ管理装置およびメモリ管理方法 |
US6625724B1 (en) | 2000-03-28 | 2003-09-23 | Intel Corporation | Method and apparatus to support an expanded register set |
US6349361B1 (en) | 2000-03-31 | 2002-02-19 | International Business Machines Corporation | Methods and apparatus for reordering and renaming memory references in a multiprocessor computer system |
US6701424B1 (en) | 2000-04-07 | 2004-03-02 | Nintendo Co., Ltd. | Method and apparatus for efficient loading and storing of vectors |
US6408383B1 (en) | 2000-05-04 | 2002-06-18 | Sun Microsystems, Inc. | Array access boundary check by executing BNDCHK instruction with comparison specifiers |
EP1368732B1 (en) | 2000-10-18 | 2008-01-23 | Koninklijke Philips Electronics N.V. | Digital signal processing apparatus |
US7487330B2 (en) | 2001-05-02 | 2009-02-03 | International Business Machines Corporations | Method and apparatus for transferring control in a computer system with dynamic compilation capability |
JP3900863B2 (ja) | 2001-06-28 | 2007-04-04 | シャープ株式会社 | データ転送制御装置、半導体記憶装置および情報機器 |
US6839828B2 (en) | 2001-08-14 | 2005-01-04 | International Business Machines Corporation | SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode |
CA2356805A1 (en) * | 2001-09-07 | 2003-03-07 | International Business Machines Corporation | Converting short branches to predicated instructions |
US6907443B2 (en) | 2001-09-19 | 2005-06-14 | Broadcom Corporation | Magnitude comparator |
US6570511B1 (en) | 2001-10-15 | 2003-05-27 | Unisys Corporation | Data compression method and apparatus implemented with limited length character tables and compact string code utilization |
US20100274988A1 (en) | 2002-02-04 | 2010-10-28 | Mimar Tibet | Flexible vector modes of operation for SIMD processor |
US7089371B2 (en) | 2002-02-12 | 2006-08-08 | Ip-First, Llc | Microprocessor apparatus and method for prefetch, allocation, and initialization of a block of cache lines from memory |
US7441104B2 (en) | 2002-03-30 | 2008-10-21 | Hewlett-Packard Development Company, L.P. | Parallel subword instructions with distributed results |
US7373483B2 (en) | 2002-04-02 | 2008-05-13 | Ip-First, Llc | Mechanism for extending the number of registers in a microprocessor |
US7376812B1 (en) | 2002-05-13 | 2008-05-20 | Tensilica, Inc. | Vector co-processor for configurable and extensible processor architecture |
US6918010B1 (en) | 2002-10-16 | 2005-07-12 | Silicon Graphics, Inc. | Method and system for prefetching data |
US7103754B2 (en) | 2003-03-28 | 2006-09-05 | International Business Machines Corporation | Computer instructions for having extended signed displacement fields for finding instruction operands |
US20040215924A1 (en) | 2003-04-28 | 2004-10-28 | Collard Jean-Francois C. | Analyzing stored data |
US7035986B2 (en) | 2003-05-12 | 2006-04-25 | International Business Machines Corporation | System and method for simultaneous access of the same line in cache storage |
US20040250027A1 (en) | 2003-06-04 | 2004-12-09 | Heflinger Kenneth A. | Method and system for comparing multiple bytes of data to stored string segments |
US7610466B2 (en) | 2003-09-05 | 2009-10-27 | Freescale Semiconductor, Inc. | Data processing system using independent memory and register operand size specifiers and method thereof |
US7904905B2 (en) | 2003-11-14 | 2011-03-08 | Stmicroelectronics, Inc. | System and method for efficiently executing single program multiple data (SPMD) programs |
GB2411973B (en) | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | Constant generation in SMD processing |
US20060095713A1 (en) | 2004-11-03 | 2006-05-04 | Stexar Corporation | Clip-and-pack instruction for processor |
JP4837305B2 (ja) | 2005-05-10 | 2011-12-14 | ルネサスエレクトロニクス株式会社 | マイクロプロセッサ及びマイクロプロセッサの制御方法 |
US7421566B2 (en) * | 2005-08-12 | 2008-09-02 | International Business Machines Corporation | Implementing instruction set architectures with non-contiguous register file specifiers |
US7571269B2 (en) * | 2005-08-25 | 2009-08-04 | Silicon Image, Inc. | Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices |
US9436468B2 (en) | 2005-11-22 | 2016-09-06 | Intel Corporation | Technique for setting a vector mask |
US8010953B2 (en) | 2006-04-04 | 2011-08-30 | International Business Machines Corporation | Method for compiling scalar code for a single instruction multiple data (SIMD) execution engine |
US7565514B2 (en) * | 2006-04-28 | 2009-07-21 | Freescale Semiconductor, Inc. | Parallel condition code generation for SIMD operations |
CN101097488B (zh) | 2006-06-30 | 2011-05-04 | 2012244安大略公司 | 从接收的文本中学习字符片段的方法及相关手持电子设备 |
US9069547B2 (en) | 2006-09-22 | 2015-06-30 | Intel Corporation | Instruction and logic for processing text strings |
JP2008077590A (ja) | 2006-09-25 | 2008-04-03 | Toshiba Corp | データ転送装置 |
US7536532B2 (en) | 2006-09-27 | 2009-05-19 | International Business Machines Corporation | Merge operations of data arrays based on SIMD instructions |
US7991987B2 (en) | 2007-05-10 | 2011-08-02 | Intel Corporation | Comparing text strings |
WO2008142669A1 (en) | 2007-05-21 | 2008-11-27 | Incredimail Ltd. | Interactive message editing system and method |
US20090063410A1 (en) | 2007-08-29 | 2009-03-05 | Nils Haustein | Method for Performing Parallel Data Indexing Within a Data Storage System |
US8001316B2 (en) * | 2007-12-27 | 2011-08-16 | Sandisk Il Ltd. | Controller for one type of NAND flash memory for emulating another type of NAND flash memory |
US7870339B2 (en) | 2008-01-11 | 2011-01-11 | International Business Machines Corporation | Extract cache attribute facility and instruction therefore |
US7895419B2 (en) | 2008-01-11 | 2011-02-22 | International Business Machines Corporation | Rotate then operate on selected bits facility and instructions therefore |
US7739434B2 (en) | 2008-01-11 | 2010-06-15 | International Business Machines Corporation | Performing a configuration virtual topology change and instruction therefore |
US7877582B2 (en) | 2008-01-31 | 2011-01-25 | International Business Machines Corporation | Multi-addressable register file |
EP2245529A1 (en) | 2008-02-18 | 2010-11-03 | Sandbridge Technologies, Inc. | Method to accelerate null-terminated string operations |
DK176835B1 (da) | 2008-03-07 | 2009-11-23 | Jala Aps | Fremgangsmåde til skanning, medium indeholdende et program til udövelse af fremgangsmåden samt system til udövelse af fremgangsmåden |
US8386547B2 (en) | 2008-10-31 | 2013-02-26 | Intel Corporation | Instruction and logic for performing range detection |
WO2010087144A1 (ja) | 2009-02-02 | 2010-08-05 | 日本電気株式会社 | 並列比較選択演算装置、プロセッサ及び並列比較選択演算方法 |
JP5471082B2 (ja) | 2009-06-30 | 2014-04-16 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US8595471B2 (en) | 2010-01-22 | 2013-11-26 | Via Technologies, Inc. | Executing repeat load string instruction with guaranteed prefetch microcode to prefetch into cache for loading up to the last value in architectural register |
JP2011212043A (ja) | 2010-03-31 | 2011-10-27 | Fujifilm Corp | 医用画像再生装置および方法並びにプログラム |
US20110314263A1 (en) | 2010-06-22 | 2011-12-22 | International Business Machines Corporation | Instructions for performing an operation on two operands and subsequently storing an original value of operand |
US8972698B2 (en) | 2010-12-22 | 2015-03-03 | Intel Corporation | Vector conflict instructions |
US9009447B2 (en) * | 2011-07-18 | 2015-04-14 | Oracle International Corporation | Acceleration of string comparisons using vector instructions |
US9459867B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a specified memory boundary indicated by the instruction |
US9454367B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Finding the length of a set of character data having a termination character |
US9715383B2 (en) | 2012-03-15 | 2017-07-25 | International Business Machines Corporation | Vector find element equal instruction |
US9280347B2 (en) | 2012-03-15 | 2016-03-08 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
US9454366B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Copying character data having a termination character from one memory location to another |
US9588762B2 (en) | 2012-03-15 | 2017-03-07 | International Business Machines Corporation | Vector find element not equal instruction |
US9459868B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a dynamically determined memory boundary |
US9710266B2 (en) | 2012-03-15 | 2017-07-18 | International Business Machines Corporation | Instruction to compute the distance to a specified memory boundary |
US9268566B2 (en) | 2012-03-15 | 2016-02-23 | International Business Machines Corporation | Character data match determination by loading registers at most up to memory block boundary and comparing |
US9459864B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Vector string range compare |
-
2012
- 2012-03-15 US US13/421,442 patent/US9588762B2/en active Active
-
2013
- 2013-03-01 TW TW102107405A patent/TWI550510B/zh active
- 2013-03-04 US US13/783,789 patent/US9588763B2/en active Active
- 2013-03-07 RU RU2014118857/08A patent/RU2598814C2/ru active
- 2013-03-07 PT PT137610457T patent/PT2756415E/pt unknown
- 2013-03-07 CN CN201380014392.0A patent/CN104169906B/zh active Active
- 2013-03-07 SG SG11201404862RA patent/SG11201404862RA/en unknown
- 2013-03-07 AU AU2013233992A patent/AU2013233992B2/en active Active
- 2013-03-07 JP JP2014561557A patent/JP6238242B2/ja active Active
- 2013-03-07 KR KR1020147017919A patent/KR101625315B1/ko active IP Right Grant
- 2013-03-07 HU HUE13761045A patent/HUE027938T2/en unknown
- 2013-03-07 CA CA2866878A patent/CA2866878C/en active Active
- 2013-03-07 WO PCT/IB2013/051810 patent/WO2013136232A1/en active Application Filing
- 2013-03-07 EP EP13761045.7A patent/EP2756415B1/en active Active
-
2014
- 2014-05-27 IL IL232813A patent/IL232813A/en active IP Right Grant
- 2014-10-06 ZA ZA2014/07243A patent/ZA201407243B/en unknown
Also Published As
Publication number | Publication date |
---|---|
KR101625315B1 (ko) | 2016-05-27 |
JP2015514244A (ja) | 2015-05-18 |
RU2598814C2 (ru) | 2016-09-27 |
US20130246751A1 (en) | 2013-09-19 |
US9588762B2 (en) | 2017-03-07 |
CA2866878A1 (en) | 2013-09-19 |
ZA201407243B (en) | 2021-05-26 |
AU2013233992B2 (en) | 2016-05-26 |
CA2866878C (en) | 2020-04-14 |
AU2013233992A1 (en) | 2014-09-11 |
US20130246759A1 (en) | 2013-09-19 |
IL232813A (en) | 2017-07-31 |
EP2756415B1 (en) | 2015-10-07 |
KR20140107339A (ko) | 2014-09-04 |
TWI550510B (zh) | 2016-09-21 |
HUE027938T2 (en) | 2016-11-28 |
TW201401167A (zh) | 2014-01-01 |
WO2013136232A1 (en) | 2013-09-19 |
US9588763B2 (en) | 2017-03-07 |
SG11201404862RA (en) | 2014-09-26 |
CN104169906A (zh) | 2014-11-26 |
IL232813A0 (en) | 2014-07-31 |
CN104169906B (zh) | 2017-03-29 |
EP2756415A4 (en) | 2014-09-03 |
JP6238242B2 (ja) | 2017-11-29 |
PT2756415E (pt) | 2015-11-19 |
EP2756415A1 (en) | 2014-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2014118857A (ru) | Команда векторного типа для поиска неравнозначного элемента | |
RU2014118858A (ru) | Команда векторного типа для поиска равнозначного элемента | |
RU2012148582A (ru) | Команда для загрузки данных до заданной границы памяти, указанной командой | |
RU2015109474A (ru) | Код векторного исключения | |
JP2015522196A5 (ru) | ||
RU2012149548A (ru) | Команды для выполнения операции с операндом в памяти и последующего сохранения оригинального значения указанного операнда в регистре | |
US9021233B2 (en) | Interleaving data accesses issued in response to vector access instructions | |
US9256427B2 (en) | Tracking multiple conditions in a general purpose register and instruction therefor | |
KR102453594B1 (ko) | 데이터 추론 실행을 위한 시스템, 장치 및 방법 | |
RU2012148584A (ru) | Команда рассчитать расстояние до заданной границы памяти | |
IL227476A (en) | Control the execution of tight instructions that depend on the same data conditions | |
JP2016509716A5 (ru) | ||
WO2013136214A4 (en) | Finding the length of a set of character data having a termination character | |
RU2012147699A (ru) | Средство виртуализации функций для запроса функции процессора | |
KR102453086B1 (ko) | 데이터 추론 실행을 위한 시스템, 장치 및 방법 | |
JP2013254484A5 (ru) | ||
JP2018531467A (ja) | ベクトル演算命令の例外条件処理 | |
JP2018531467A6 (ja) | ベクトル演算命令の例外条件処理 | |
RU2012148402A (ru) | Преобразование из зонного формата в десятичный формат с плавающей точкой | |
US9158562B2 (en) | Method and apparatus for supporting virtualization of loadable module | |
JP2018537800A5 (ru) | ||
RU2012149006A (ru) | Средство функциональной виртуализации для блокировки командной функции многофункциональной команды виртуального процесса | |
CN104731560A (zh) | 支持多线程处理的功能单元、处理器及其操作方法 | |
TWI630550B (zh) | 用於資料推測執行之系統設備及方法 | |
US10545763B2 (en) | Detecting data dependencies of instructions associated with threads in a simultaneous multithreading scheme |