RU2009131714A - Использование системы переименования регистра для передачи промежуточных результатов между составными командами и расширенной командой - Google Patents

Использование системы переименования регистра для передачи промежуточных результатов между составными командами и расширенной командой Download PDF

Info

Publication number
RU2009131714A
RU2009131714A RU2009131714/08A RU2009131714A RU2009131714A RU 2009131714 A RU2009131714 A RU 2009131714A RU 2009131714/08 A RU2009131714/08 A RU 2009131714/08A RU 2009131714 A RU2009131714 A RU 2009131714A RU 2009131714 A RU2009131714 A RU 2009131714A
Authority
RU
Russia
Prior art keywords
command
physical register
composite
compound
physical
Prior art date
Application number
RU2009131714/08A
Other languages
English (en)
Other versions
RU2431887C2 (ru
Inventor
Майкл Скотт МАКИЛВЕЙН (US)
Майкл Скотт МАКИЛВЕЙН
Джеймс Норрис ДИФФЕНДЕРФЕР (US)
Джеймс Норрис ДИФФЕНДЕРФЕР
Натан Самьюэл НЬЮНАМЕЙКЕР (US)
Натан Самьюэл НЬЮНАМЕЙКЕР
Томас Эндрю САРТОРИУС (US)
Томас Эндрю САРТОРИУС
Родни Уэйн СМИТ (US)
Родни Уэйн СМИТ
Original Assignee
Квэлкомм Инкорпорейтед (US)
Квэлкомм Инкорпорейтед
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 Квэлкомм Инкорпорейтед (US), Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед (US)
Publication of RU2009131714A publication Critical patent/RU2009131714A/ru
Application granted granted Critical
Publication of RU2431887C2 publication Critical patent/RU2431887C2/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
    • 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/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/3856Reordering of instructions, e.g. using queues or age tags
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Organic Low-Molecular-Weight Compounds And Preparation Thereof (AREA)
  • Electrotherapy Devices (AREA)

Abstract

1. Способ выполнения расширенной команды, содержащий этапы, на которых: ! преобразуют расширенную команду в две или более отдельно выполняемые составные команды; ! назначают номер физического регистра из пула первой составной команде, генерирующей промежуточный результат; и ! связывают назначенный номер физического регистра со второй составной командой, принимающей промежуточный результат. ! 2. Способ по п.1, дополнительно содержащий этап, на котором выполняют первую составную команду, чтобы сгенерировать промежуточный результат. ! 3. Способ по п.2, дополнительно содержащий этап, на котором выполняют вторую составную команду, причем промежуточный результат является операндом, переданным из первой составной команды во вторую составную команду. ! 4. Способ по п.2, дополнительно содержащий этап, на котором сохраняют промежуточный результат в регистре, идентифицированном с помощью номера физического регистра. ! 5. Способ по п.4, дополнительно содержащий этап, на котором выполняют вторую составную команду и извлекают промежуточный результат из регистра, идентифицированного с помощью номера физического регистра. ! 6. Способ по п.1, в котором этап, на котором назначают номер физического регистра из пула первой составной команде, содержит этап, на котором создают элемент в таблице переименования составной команды, преобразующей идентификатор первой составной команды в номер физического регистра. ! 7. Способ по п.6, в котором номер физического регистра выбирают из списка доступных физических регистров и удаляют из списка. ! 8. Способ по п.7, в котором этап, на котором связывают назначенный номер физического регистра со вт

Claims (19)

1. Способ выполнения расширенной команды, содержащий этапы, на которых:
преобразуют расширенную команду в две или более отдельно выполняемые составные команды;
назначают номер физического регистра из пула первой составной команде, генерирующей промежуточный результат; и
связывают назначенный номер физического регистра со второй составной командой, принимающей промежуточный результат.
2. Способ по п.1, дополнительно содержащий этап, на котором выполняют первую составную команду, чтобы сгенерировать промежуточный результат.
3. Способ по п.2, дополнительно содержащий этап, на котором выполняют вторую составную команду, причем промежуточный результат является операндом, переданным из первой составной команды во вторую составную команду.
4. Способ по п.2, дополнительно содержащий этап, на котором сохраняют промежуточный результат в регистре, идентифицированном с помощью номера физического регистра.
5. Способ по п.4, дополнительно содержащий этап, на котором выполняют вторую составную команду и извлекают промежуточный результат из регистра, идентифицированного с помощью номера физического регистра.
6. Способ по п.1, в котором этап, на котором назначают номер физического регистра из пула первой составной команде, содержит этап, на котором создают элемент в таблице переименования составной команды, преобразующей идентификатор первой составной команды в номер физического регистра.
7. Способ по п.6, в котором номер физического регистра выбирают из списка доступных физических регистров и удаляют из списка.
8. Способ по п.7, в котором этап, на котором связывают назначенный номер физического регистра со второй составной командой, содержит этап, на котором выполняют поиск в таблице переименования составной команды с использованием идентификатора первой составной команды.
9. Способ по п.8, дополнительно содержащий этап, на котором отпускают номер физического регистра в пул после того, как вторая составная команда считает промежуточный результат.
10. Способ по п.9, в котором этап, на котором отпускают номер физического регистра в пул, содержит этап, на котором добавляют номер физического регистра к списку доступных физических регистров.
11. Способ по п.1, в котором пул физического регистра является пулом переименования регистра.
12. Процессор, содержащий
один или более конвейеров выполнения команд, действующих с возможностью выполнения расширенной команды с помощью генерации первой составной команды, генерирующей промежуточные результаты, и второй составной команды, принимающей промежуточные результаты;
пул физических регистров, причем каждый регистр имеет номер физического регистра;
таблицу переименования составной команды, действующую с возможностью преобразования идентификаторов команд в номера физических регистров; и
управляющую логику, действующую с возможностью создания элемента в таблице переименования составной команды для первой составной команды, и дополнительно действующие с возможностью выполнения поиска в таблице переименования составной команды для второй составной команды;
причем промежуточные результаты передают из первых во вторые составляющие команды через физические регистры, идентифицированные с помощью номеров физических регистров.
13. Процессор по п.12, дополнительно содержащий свободный список номеров доступных физических регистров, и в котором управляющая логика дополнительно действует с возможностью удаления элементов таблицы переименования составной команды и возвращения номеров физических регистров в свободный список после того, как вторая составная команда примет промежуточные результаты.
14. Процессор по п.12, в котором элемент таблицы переименования составной команды преобразует идентификатор первой составной команды в номер первого физического регистра.
15. Процессор по п.14, в котором первая составная команда записывает промежуточные результаты в физический регистр, идентифицированный с помощью номера первого физического регистра.
16. Процессор по п.15, в котором вторая составная команда считывает промежуточные результаты из физического регистра, идентифицированного с помощью номера первого физического регистра.
17. Процессор по п.16, в котором вторая составная команда извлекает номер первого физического регистра посредством поиска в таблице переименования составной команды с использованием идентификатора первой составной команды.
18. Процессор по п.12, в котором пул физических регистров дополнительно используют для переименования регистра.
19. Процессор по п.12, в котором таблица переименования составной команды является таблицей переименования регистра.
RU2009131714/08A 2007-01-24 2008-01-24 Использование системы переименования регистра для передачи промежуточных результатов между составными командами и расширенной командой RU2431887C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/626,424 2007-01-24
US11/626,424 US7669039B2 (en) 2007-01-24 2007-01-24 Use of register renaming system for forwarding intermediate results between constituent instructions of an expanded instruction

Publications (2)

Publication Number Publication Date
RU2009131714A true RU2009131714A (ru) 2011-02-27
RU2431887C2 RU2431887C2 (ru) 2011-10-20

Family

ID=39323615

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009131714/08A RU2431887C2 (ru) 2007-01-24 2008-01-24 Использование системы переименования регистра для передачи промежуточных результатов между составными командами и расширенной командой

Country Status (13)

Country Link
US (1) US7669039B2 (ru)
EP (1) EP2126689B8 (ru)
JP (1) JP5275253B2 (ru)
KR (1) KR101154628B1 (ru)
CN (1) CN101601008B (ru)
AT (1) ATE481676T1 (ru)
BR (1) BRPI0806737B1 (ru)
CA (1) CA2674872C (ru)
DE (1) DE602008002568D1 (ru)
ES (1) ES2352586T3 (ru)
MX (1) MX2009007939A (ru)
RU (1) RU2431887C2 (ru)
WO (1) WO2008092037A1 (ru)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690583B2 (en) * 2011-10-03 2017-06-27 International Business Machines Corporation Exploiting an architected list-use operand indication in a computer system operand resource pool
US9697002B2 (en) 2011-10-03 2017-07-04 International Business Machines Corporation Computer instructions for activating and deactivating operands
US9513915B2 (en) * 2012-03-28 2016-12-06 International Business Machines Corporation Instruction merging optimization
US9395988B2 (en) * 2013-03-08 2016-07-19 Samsung Electronics Co., Ltd. Micro-ops including packed source and destination fields
US10565670B2 (en) * 2016-09-30 2020-02-18 Intel Corporation Graphics processor register renaming mechanism
CN111638911A (zh) * 2019-03-01 2020-09-08 阿里巴巴集团控股有限公司 一种处理器、指令执行设备及方法
CN111506347B (zh) * 2020-03-27 2023-05-26 上海赛昉科技有限公司 一种基于指令写后读相关假设的重命名的方法
CN112416434B (zh) * 2020-12-03 2023-02-17 海光信息技术股份有限公司 物理寄存器分配方法、物理寄存器分配装置和电子设备
CN114168197B (zh) * 2021-12-09 2023-05-23 海光信息技术股份有限公司 指令执行方法、处理器以及电子装置
CN116662006B (zh) * 2023-06-06 2024-02-23 北京市合芯数字科技有限公司 多线程处理器重命名资源管理方法、系统、装置及介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5627985A (en) * 1994-01-04 1997-05-06 Intel Corporation Speculative and committed resource files in an out-of-order processor
US5586278A (en) * 1994-03-01 1996-12-17 Intel Corporation Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor
US5771366A (en) * 1995-06-09 1998-06-23 International Business Machines Corporation Method and system for interchanging operands during complex instruction execution in a data processing system
US5758117A (en) * 1995-12-14 1998-05-26 International Business Machines Corporation Method and system for efficiently utilizing rename buffers to reduce dispatch unit stalls in a superscalar processor
US6279102B1 (en) 1997-12-31 2001-08-21 Intel Corporation Method and apparatus employing a single table for renaming more than one class of register
US6212619B1 (en) * 1998-05-11 2001-04-03 International Business Machines Corporation System and method for high-speed register renaming by counting
US7055021B2 (en) 2002-02-05 2006-05-30 Sun Microsystems, Inc. Out-of-order processor that reduces mis-speculation using a replay scoreboard
US7185182B2 (en) * 2003-02-04 2007-02-27 Via Technologies, Inc. Pipelined microprocessor, apparatus, and method for generating early instruction results
US7219218B2 (en) 2003-03-31 2007-05-15 Sun Microsystems, Inc. Vector technique for addressing helper instruction groups associated with complex instructions
JP3752493B2 (ja) * 2003-03-31 2006-03-08 東芝マイクロエレクトロニクス株式会社 レジスタ・リネーミング機能を有するプロセッサ
US7373486B2 (en) * 2005-08-29 2008-05-13 P.A. Semi, Inc. Partially decoded register renamer

Also Published As

Publication number Publication date
RU2431887C2 (ru) 2011-10-20
CN101601008A (zh) 2009-12-09
MX2009007939A (es) 2009-08-07
US20080177987A1 (en) 2008-07-24
CA2674872A1 (en) 2008-07-31
ES2352586T3 (es) 2011-02-21
KR101154628B1 (ko) 2012-06-08
EP2126689A1 (en) 2009-12-02
WO2008092037A1 (en) 2008-07-31
ATE481676T1 (de) 2010-10-15
CA2674872C (en) 2013-06-25
JP5275253B2 (ja) 2013-08-28
BRPI0806737A2 (pt) 2011-09-13
EP2126689B8 (en) 2010-12-29
KR20090100448A (ko) 2009-09-23
BRPI0806737B1 (pt) 2023-11-28
US7669039B2 (en) 2010-02-23
JP2010517180A (ja) 2010-05-20
EP2126689B1 (en) 2010-09-15
CN101601008B (zh) 2013-05-08
DE602008002568D1 (de) 2010-10-28
BRPI0806737A8 (pt) 2018-04-10

Similar Documents

Publication Publication Date Title
RU2009131714A (ru) Использование системы переименования регистра для передачи промежуточных результатов между составными командами и расширенной командой
JP2017027636A5 (ru)
JP2016537724A5 (ru)
RU2012133437A (ru) Система управления связью и способ управления связью
TWI658407B (zh) 管理處理器流水線中的指令順序
JP2016537725A5 (ru)
CN101147125A (zh) 用于直接累积未调准数据的可写入分段字的架构型寄存器
JP2008515064A5 (ru)
Topiwala et al. Implementation of a 32-bit MIPS based RISC processor using Cadence
CN104516726B (zh) 一种指令处理的方法及装置
TW201423579A (zh) 指令碼轉譯的自訂鏈結存根
CN109313639A (zh) Dbms中进行查询执行的系统和方法
WO2013101114A1 (en) Later stage read port reduction
CN105094941A (zh) 一种实现多语言的方法及装置
JP2012521047A5 (ru)
TWI613589B (zh) 處理器流水線中的靈活的指令執行
JP2004272922A5 (ru)
RU2004106717A (ru) Компьютерная эмуляция команд с прямым преобразованием
KR20220065048A (ko) 대기열 압축 해제
US9213547B2 (en) Processor and method for processing instructions using at least one processing pipeline
CN102830976B (zh) 一种基于关联矩阵的软件体系结构动态演化方法
Aasaraai et al. Towards a viable out-of-order soft core: Copy-free, checkpointed register renaming
US9495316B2 (en) System and method for an asynchronous processor with a hierarchical token system
GB2546560A (en) Execution of load instructions in a processor
TW200615771A (en) System and methods for increasing register addressing space in instruction-width limited processors

Legal Events

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

Effective date: 20200125