RU2009131714A - Использование системы переименования регистра для передачи промежуточных результатов между составными командами и расширенной командой - Google Patents
Использование системы переименования регистра для передачи промежуточных результатов между составными командами и расширенной командой Download PDFInfo
- 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
Links
- 239000002131 composite material Substances 0.000 title claims abstract 20
- 150000001875 compounds Chemical class 0.000 claims abstract 24
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result 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, в котором таблица переименования составной команды является таблицей переименования регистра.
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)
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)
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 |
-
2007
- 2007-01-24 US US11/626,424 patent/US7669039B2/en active Active
-
2008
- 2008-01-24 CN CN2008800028974A patent/CN101601008B/zh active Active
- 2008-01-24 JP JP2009547427A patent/JP5275253B2/ja active Active
- 2008-01-24 EP EP08713989A patent/EP2126689B8/en active Active
- 2008-01-24 KR KR1020097016741A patent/KR101154628B1/ko active IP Right Grant
- 2008-01-24 AT AT08713989T patent/ATE481676T1/de not_active IP Right Cessation
- 2008-01-24 RU RU2009131714/08A patent/RU2431887C2/ru not_active IP Right Cessation
- 2008-01-24 CA CA2674872A patent/CA2674872C/en not_active Expired - Fee Related
- 2008-01-24 DE DE602008002568T patent/DE602008002568D1/de active Active
- 2008-01-24 WO PCT/US2008/051958 patent/WO2008092037A1/en active Application Filing
- 2008-01-24 MX MX2009007939A patent/MX2009007939A/es active IP Right Grant
- 2008-01-24 ES ES08713989T patent/ES2352586T3/es active Active
- 2008-01-24 BR BRPI0806737-6A patent/BRPI0806737B1/pt active IP Right Grant
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 |