RU2015138900A - Системы и способы отслеживания флага в операциях устранения перемещения - Google Patents

Системы и способы отслеживания флага в операциях устранения перемещения

Info

Publication number
RU2015138900A
RU2015138900A RU2015138900A RU2015138900A RU2015138900A RU 2015138900 A RU2015138900 A RU 2015138900A RU 2015138900 A RU2015138900 A RU 2015138900A RU 2015138900 A RU2015138900 A RU 2015138900A RU 2015138900 A RU2015138900 A RU 2015138900A
Authority
RU
Russia
Prior art keywords
data structure
register
elimination
data
flag
Prior art date
Application number
RU2015138900A
Other languages
English (en)
Other versions
RU2628156C2 (ru
Inventor
Виджайкумар Б. КАДГИ
Джереми Р. АНДЕРСОН
Джеймс Д. ХЭДЛИ
Тун ЛИ
Мэтью С. МЕРТЕН
Original Assignee
Интел Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Интел Корпорейшн filed Critical Интел Корпорейшн
Publication of RU2015138900A publication Critical patent/RU2015138900A/ru
Application granted granted Critical
Publication of RU2628156C2 publication Critical patent/RU2628156C2/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Storage Device Security (AREA)

Claims (30)

1. Система обработки, содержащая:
первую структуру данных, включающую в себя множество значений физического регистра;
вторую структуру данных, включающую в себя множество элементов ссылки на указатели первой структуры данных;
третью структуру данных, включающую в себя множество наборов устранения перемещения, при этом каждый из наборов устранения перемещения содержит два или более битов, представляющих два или более логических регистра данных; при этом третья структура данных дополнительно, содержит по меньшей мере один бит, ассоциированный с каждым набором устранения перемещения и по меньшей мере один бит, представляющий собой один или более логических регистров флага;
четвертую структуру данных, включающую в себя идентификатор регистра данных, совместно использующего элемент первой структуры данных с регистром флага; и
логическую схему устранения перемещения, выполненную с возможностью осуществления операции устранения перемещения посредством вызова обращения элементом второй структуры данных к элементу первой структуры данных, причем логическая схема устранения перемещения дополнительно выполнена с возможностью отслеживания, с использованием по меньшей мере одной из третьей структуры данных и четвертой структуры данных, доступность элементов первой структуры данных.
2. Система обработки по п. 1, в которой логическая схема устранения перемещения выполнена с возможностью изменения значения бита флага в третьей структуре данных, в ответ по меньшей мере на одно из: формирования нового набора устранения перемещения, суммирования регистра с набором устранения перемещения, или записи новых данных к регистру флага в первой структуре данных.
3. Система обработки по п. 1, в которой логическая схема устранения перемещения, дополнительно выполнена с возможностью обнаружения и восстановления набора устранения перемещения, имеющего только один ненулевой бит.
4. Система обработки по п. 3, в которой логическая схема устранения перемещения выполнена с возможностью отмены восстановления набора устранения перемещения, имеющего по меньшей мере один ненулевой бит, в ответ на определение, что по меньшей мере один бит, ассоциированный с набором устранения перемещения и представляющий логический регистр флага, имеет ненулевое значение.
5. Система обработки по п. 1, в которой четвертая структура данных содержит: бит, указывающий действительность набора устранения перемещения, бит, указывающий, что логический регистр флага совместно использует вход в первую структуру данных с регистром данных, первый идентификатор, указывающий регистр данных, совместно использующий элемент первой структуры данных с регистром флага, и второй идентификатор, идентифицирующий набор устранения перемещения.
6. Система обработки по п. 5, в которой первый идентификатор и второй идентификатор системы обработки представлены, в качестве общего поля данных.
7. Система обработки по п. 1, в которой логическая схема устранения перемещения, дополнительно выполнена с возможностью генерирования первого сигнала, идентифицирующего набор устранения перемещения, содержащий один или более логических регистров перезаписанных выделенной микрооперацией, и второго сигнала, указывающего совместное использование регистра назначения для микрооперации.
8. Система обработки по п. 7, в которой логическая схема устранения перемещения дополнительно выполнена с возможностью обновления четвертой структуры данных для указания, что регистр флага больше совместно не использует элемент первой структуры данных с регистром данных, в ответ на определение, что логический регистр флага, соответствующий регистру флага, ассоциирован с первым набором устранения перемещения, при этом первый сигнал соответствует идентификатору первого набора устранения перемещения, а второй сигнал имеет значение false.
9. Способ выполнения операции манипулирования данными, содержащий этапы, на которых:
сохраняют, с помощью компьютерной системы, множество значений физического регистра в первой структуре данных;
сохраняют, во второй структуре данных множество элементов ссылки на указатели первой структуры данных;
сохраняют, в третьей структуре данных множество наборов устранения перемещения и по меньшей мере один бит, ассоциированный с каждым набором устранения перемещения, по меньшей мере один бит, представляющий один или более логических регистров флага, при этом каждый набор устранения перемещения, содержит два или более бита, представляющих два или более логических регистра данных;
сохраняют, в четвертой структуре данных, идентификатор регистра данных, совместно использующего элемент первой структуры данных с регистром флага;
выполняют операции устранения перемещения посредством вызова обращения элемента второй структуры данных к элементу первой структуры данных; и
отслеживают, с использованием по меньшей мере одной из третьей структуры данных и четвертой структуры данных, доступность элементов первой структуры данных.
10. Способ по п. 9, дополнительно содержащий этап, на котором: изменяют значение бита флага в третьей структуре данных в ответ на по меньшей мере одно из: формирования нового набора устранения перемещения, добавления регистра к набору устранения перемещения или записи новых данных в регистр флага в первой структуре данных.
11. Способ по п. 9, дополнительно содержащий этапы, на которых: обнаруживают и восстанавливают набор устранения перемещения, имеющий только один ненулевой бит.
12. Способ по п. 11, дополнительно содержащий этап, на котором: отменяют восстановление набора устранения перемещения, имеющего по меньшей мере один ненулевой бит, в ответ на определение, что по меньшей мере один бит, ассоциированный с набором устранения перемещения и представляющий логический регистр флага, имеет ненулевое значение.
13. Способ по п. 9, в котором четвертая структура данных содержит: бит, указывающий действительность набора устранения перемещения, бит, указывающий, что логический регистр флага совместно использует вход первой структуры данных с регистром данных, первый идентификатор, идентифицирующий регистр данных, совместно использующий элемент первой структуры данных, с регистром флага, и второй идентификатор, идентифицирующий набор устранения перемещения.
14. Способ по п. 13, в котором первый идентификатор и второй идентификатор представлены общим полем данных.
15. Способ по п. 9, дополнительно содержащий этап, на котором: генерируют первый сигнал, идентифицирующий набор устранения перемещения, имеющий один или более логических регистров, перезаписанных выделенной микрооперацией, и второй сигнал, указывающий совместное использование регистра назначения для микрооперации.
16. Способ по п. 15, дополнительно содержащий этап, на котором: обновляют четвертую структуру данных для указания, что регистр флага больше совместно не использует элемент первой структуры данных с регистром данных, в ответ на определение, что логический регистр флага, соответствующий регистру флага, ассоциирован с первым набором устранения перемещения, первый сигнал соответствует идентификатору первого набора устранения перемещения и второй сигнал имеет значение false.
17. Устройство содержащее:
запоминающее устройство; и
систему обработки, соединенную с запоминающим устройством, при этом система обработки выполнена с возможностью осуществления способа по любому из пп. 9-16.
RU2015138900A 2013-04-11 2014-04-09 Системы и способы отслеживания флага в операциях устранения перемещения RU2628156C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/861,009 US9292288B2 (en) 2013-04-11 2013-04-11 Systems and methods for flag tracking in move elimination operations
US13/861,009 2013-04-11
PCT/US2014/033486 WO2014169032A1 (en) 2013-04-11 2014-04-09 Systems and methods for flag tracking in move elimination operations

Publications (2)

Publication Number Publication Date
RU2015138900A true RU2015138900A (ru) 2017-03-16
RU2628156C2 RU2628156C2 (ru) 2017-08-15

Family

ID=51687620

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015138900A RU2628156C2 (ru) 2013-04-11 2014-04-09 Системы и способы отслеживания флага в операциях устранения перемещения

Country Status (8)

Country Link
US (1) US9292288B2 (ru)
EP (1) EP2984557B1 (ru)
KR (1) KR101655713B1 (ru)
CN (1) CN105190538B (ru)
BR (1) BR112015022683B1 (ru)
RU (1) RU2628156C2 (ru)
TW (1) TWI528291B (ru)
WO (1) WO2014169032A1 (ru)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9823925B2 (en) * 2014-03-28 2017-11-21 Intel Corporation Instruction and logic for a logical move in an out-of-order processor
US10853077B2 (en) 2015-08-26 2020-12-01 Huawei Technologies Co., Ltd. Handling Instruction Data and Shared resources in a Processor Having an Architecture Including a Pre-Execution Pipeline and a Resource and a Resource Tracker Circuit Based on Credit Availability
US11221853B2 (en) 2015-08-26 2022-01-11 Huawei Technologies Co., Ltd. Method of dispatching instruction data when a number of available resource credits meets a resource requirement
US10198264B2 (en) * 2015-12-15 2019-02-05 Intel Corporation Sorting data and merging sorted data in an instruction set architecture
US20170177336A1 (en) * 2015-12-22 2017-06-22 Intel Corporation Hardware cancellation monitor for floating point operations
US10261790B2 (en) * 2016-03-31 2019-04-16 Intel Corporation Memory copy instructions, processors, methods, and systems
US10114768B2 (en) 2016-08-29 2018-10-30 Intel Corporation Enhance memory access permission based on per-page current privilege level
US10713177B2 (en) 2016-09-09 2020-07-14 Intel Corporation Defining virtualized page attributes based on guest page attributes
WO2018058363A1 (en) * 2016-09-28 2018-04-05 Intel Corporation Measuring per-node bandwidth within non-uniform memory access (numa) systems
US10282296B2 (en) * 2016-12-12 2019-05-07 Intel Corporation Zeroing a cache line
US10949205B2 (en) 2018-12-20 2021-03-16 International Business Machines Corporation Implementation of execution compression of instructions in slice target register file mapper
CN112286577B (zh) * 2020-10-30 2022-12-06 上海兆芯集成电路有限公司 处理器及其操作方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499352A (en) 1993-09-30 1996-03-12 Intel Corporation Floating point register alias table FXCH and retirement floating point register array
US6047369A (en) * 1994-02-28 2000-04-04 Intel Corporation Flag renaming and flag masks within register alias table
US5838941A (en) 1996-12-30 1998-11-17 Intel Corporation Out-of-order superscalar microprocessor with a renaming device that maps instructions from memory to registers
US6341370B1 (en) * 1998-04-24 2002-01-22 Sun Microsystems, Inc. Integration of data prefetching and modulo scheduling using postpass prefetch insertion
US6122656A (en) * 1998-07-31 2000-09-19 Advanced Micro Devices, Inc. Processor configured to map logical register numbers to physical register numbers using virtual register numbers
US6253310B1 (en) * 1998-12-31 2001-06-26 Intel Corporation Delayed deallocation of an arithmetic flags register
US6505293B1 (en) 1999-07-07 2003-01-07 Intel Corporation Register renaming to optimize identical register values
US6625723B1 (en) * 1999-07-07 2003-09-23 Intel Corporation Unified renaming scheme for load and store instructions
US6594754B1 (en) * 1999-07-07 2003-07-15 Intel Corporation Mapping destination logical register to physical register storing immediate or renamed source register of move instruction and using mapping counters
US6591332B1 (en) 2000-04-28 2003-07-08 Hewlett-Packard Development Company, L.P. Apparatus and method for tracking flushes of cache entries in a data processing system
US7155599B2 (en) * 2000-12-29 2006-12-26 Intel Corporation Method and apparatus for a register renaming structure
US6772317B2 (en) * 2001-05-17 2004-08-03 Intel Corporation Method and apparatus for optimizing load memory accesses
US6889344B2 (en) 2001-08-09 2005-05-03 International Business Machines Corporation System and method for exposing hidden events on system buses
US6910121B2 (en) 2002-01-02 2005-06-21 Intel Corporation System and method of reducing the number of copies from alias registers to real registers in the commitment of instructions
US20030217249A1 (en) * 2002-05-20 2003-11-20 The Regents Of The University Of Michigan Method and apparatus for virtual register renaming to implement an out-of-order processor
US20050050310A1 (en) 2003-07-15 2005-03-03 Bailey Daniel W. Method, system, and apparatus for improving multi-core processor performance
US7711898B2 (en) * 2003-12-18 2010-05-04 Intel Corporation Register alias table cache to map a logical register to a physical register
US7895382B2 (en) 2004-01-14 2011-02-22 International Business Machines Corporation Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
WO2009076324A2 (en) 2007-12-10 2009-06-18 Strandera Corporation Strand-based computing hardware and dynamically optimizing strandware for a high performance microprocessor system
US8799882B2 (en) * 2005-12-07 2014-08-05 Microsoft Corporation Compiler support for optimizing decomposed software transactional memory operations
US7721119B2 (en) 2006-08-24 2010-05-18 International Business Machines Corporation System and method to optimize multi-core microprocessor performance using voltage offsets
TWI342498B (en) 2007-01-12 2011-05-21 Asustek Comp Inc Multi-processor system and performance enhancement method thereof
US20090327661A1 (en) * 2008-06-30 2009-12-31 Zeev Sperber Mechanisms to handle free physical register identifiers for smt out-of-order processors
US8914617B2 (en) 2009-12-26 2014-12-16 Intel Corporation Tracking mechanism coupled to retirement in reorder buffer for indicating sharing logical registers of physical register in record indexed by logical register
US20120005459A1 (en) 2010-12-28 2012-01-05 Advanced Micro Devices, Inc. Processor having increased performance and energy saving via move elimination
US8661230B2 (en) * 2011-04-15 2014-02-25 International Business Machines Corporation Allocation of counters from a pool of counters to track mappings of logical registers to physical registers for mapper based instruction executions
US9298460B2 (en) * 2011-11-29 2016-03-29 International Business Machines Corporation Register management in an extended processor architecture
US9454371B2 (en) * 2011-12-30 2016-09-27 Intel Corporation Micro-architecture for eliminating MOV operations
US9733939B2 (en) * 2012-09-28 2017-08-15 Intel Corporation Physical reference list for tracking physical register sharing
US10417001B2 (en) * 2012-12-27 2019-09-17 Intel Corporation Physical register table for eliminating move instructions
US9182986B2 (en) * 2012-12-29 2015-11-10 Intel Corporation Copy-on-write buffer for restoring program code from a speculative region to a non-speculative region
US9256433B2 (en) * 2013-03-15 2016-02-09 Intel Corporation Systems and methods for move elimination with bypass multiple instantiation table
US9823925B2 (en) * 2014-03-28 2017-11-21 Intel Corporation Instruction and logic for a logical move in an out-of-order processor

Also Published As

Publication number Publication date
EP2984557A4 (en) 2017-12-20
BR112015022683B1 (pt) 2021-12-21
US9292288B2 (en) 2016-03-22
WO2014169032A1 (en) 2014-10-16
CN105190538B (zh) 2018-11-09
KR20150119038A (ko) 2015-10-23
US20140310504A1 (en) 2014-10-16
RU2628156C2 (ru) 2017-08-15
KR101655713B1 (ko) 2016-09-07
BR112015022683A2 (pt) 2018-07-31
EP2984557A1 (en) 2016-02-17
TW201506797A (zh) 2015-02-16
EP2984557B1 (en) 2020-03-04
CN105190538A (zh) 2015-12-23
TWI528291B (zh) 2016-04-01

Similar Documents

Publication Publication Date Title
RU2015138900A (ru) Системы и способы отслеживания флага в операциях устранения перемещения
JP2020500365A5 (ru)
JP2019505906A5 (ru)
JP2017533497A5 (ru)
JP2019512804A5 (ru)
GB2582097A (en) Protecting in-memory configuration state registers
JP2016515262A5 (ru)
CN107209702A (zh) 用于在存储器中执行同时读取和写入操作的系统和方法
US20150370541A1 (en) Verification of a model of a gui-based application
KR20160078377A (ko) 부동 소수점 레지스터 앨리어싱을 위한 프로세서 및 방법들
JP2017027149A5 (ru)
RU2015126787A (ru) Унифицированный доступ к совместно используемой и управляемой памяти
US9830218B2 (en) Cache memory with fault tolerance
CN105677755A (zh) 一种处理图数据的方法及装置
JP2016509281A5 (ru)
US20160117221A1 (en) Error detection and correction utilizing locally stored parity information
JP2017527027A5 (ru)
JP2012113691A5 (ru)
US10547536B2 (en) Identifying shortest paths
US8914712B2 (en) Hierarchical error correction
EP3140730A1 (en) Detecting data dependencies of instructions associated with threads in a simultaneous multithreading scheme
RU2011152760A (ru) Оптимизации кода с использованием компилятора с двумя порядками следования байтов
JP2011048681A (ja) プロセッサ
CN103336681A (zh) 针对采用变长指令集的流水线结构处理器的取指方法
CN106156038A (zh) 数据存储方法和装置

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20190410