RU2431887C2 - Использование системы переименования регистра для передачи промежуточных результатов между составными командами и расширенной командой - Google Patents
Использование системы переименования регистра для передачи промежуточных результатов между составными командами и расширенной командой Download PDFInfo
- Publication number
- RU2431887C2 RU2431887C2 RU2009131714/08A RU2009131714A RU2431887C2 RU 2431887 C2 RU2431887 C2 RU 2431887C2 RU 2009131714/08 A RU2009131714/08 A RU 2009131714/08A RU 2009131714 A RU2009131714 A RU 2009131714A RU 2431887 C2 RU2431887 C2 RU 2431887C2
- Authority
- RU
- Russia
- Prior art keywords
- command
- compound
- physical register
- register number
- instruction
- Prior art date
Links
- 239000000470 constituent Substances 0.000 title abstract 11
- 238000000034 method Methods 0.000 claims abstract description 20
- 150000001875 compounds Chemical class 0.000 claims description 78
- 239000002131 composite material Substances 0.000 claims description 33
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000013507 mapping Methods 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 238000012546 transfer Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- KRKNYBCHXYNGOX-UHFFFAOYSA-N citric acid Chemical compound OC(=O)CC(O)(C(O)=O)CC(O)=O KRKNYBCHXYNGOX-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
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
-
- 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)
- Electrotherapy Devices (AREA)
- Organic Low-Molecular-Weight Compounds And Preparation Thereof (AREA)
Abstract
Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении надежной передачи промежуточных результатов между составными командами и расширенной командой. В способе выполнения расширенной команды в системе, содержащей таблицу переименования, свободный список и таблицу переименования составной команды, преобразуют расширенную команду во множество отдельно выполняемых составных команд, включающих в себя первую составную команду и вторую составную команду; назначают номер физического регистра, связанный с физическим регистром первой составной команды, с помощью преобразования идентификатора первой составной команды в номер физического регистра в таблице переименования составной команды, причем первая составная команда генерирует промежуточный результат; и связывают назначенный номер физического регистра со второй составной командой, принимающей промежуточный результат. 2 н. и 17 з.п. ф-лы, 3 ил.
Description
Уровень техники
Изобретение в целом относится к процессорам, в частности к системе и способу, предназначенным для использования существующих ресурсов переименования регистра, чтобы выполнять расширенные команды, которые передают частичные результаты.
Команды процессора работают по данным, полученным из памяти, и записывают свои результаты в память. Современные процессоры используют иерархическую структуру памяти, содержащую некоторые быстрые, дорогие элементы памяти, такие как регистры, на верхнем уровне. Затем иерархия памяти содержит последовательно более медленные, но эффективные по стоимости технологии памяти на нижних уровнях, такие как кэш-памяти (SRAM), твердотельная основная память (DRAM) и диски (магнитные или оптические носители) соответственно. Для применений, таких как портативные электронные устройства, DRAM часто является самым медленным уровнем иерархии памяти.
Большинство архитектур набора команд (ISA) процессора включают в себя множество регистров общего назначения (GPR), которые являются архитектурными регистрами, используемыми для того, чтобы передавать данные между командами в память и из памяти. Команды, которые выполняют логические и арифметические операции по данным, считывают свои операнды из определенных GPR и записывают свои результаты в определенные GPR. Подобным образом команды доступа к памяти считывают данные, сохраняемые в памяти, из GPR и записывают данные, загруженные из памяти, в GPR. Компилятор назначает идентификаторы исходного и целевого GPR каждой команде и упорядочивает команды таким образом, что вычисляют соответствующие результаты. То есть команды располагают в “последовательности программы”, что гарантирует правильные результаты с помощью управления более ранними командами таким образом, чтобы хранить результаты в определенных GPR, и управления более поздними командами таким образом, чтобы считывать эти GPR, чтобы получать операнды для дальнейшей обработки. Идентификаторы GPR являются логическими метками (например, r0-r15).
Некоторые современные процессоры поддерживают “расширенные” команды, то есть команды, которые выполняют более одной арифметической или логической операции. Например, команда ADD r1, r2, r3 LSL r4 осуществляет уравнение r1=r3+(r3<<[r4]), то есть сдвигает влево значение в регистре r3 на величину, сохраненную в r4, прибавляет этот результат к значению в r2 и хранит сумму в регистре r1. В процессоре, сумматор которого требует полного времени цикла, эта расширенная команда может быть осуществлена как две отдельные составные команды, команда сдвига, которая сдвигает влево значение в r3, генерирующая промежуточный результат, и команда суммирования, которая прибавляет промежуточный результат к значению в r2 и хранит сумму в r1. В некоторых процессорах, т.е. процессорах, которые поддерживают передачу операнда и выполняют только расширенные команды в последовательности программы, передача промежуточных результатов из команды сдвига в команду суммирования является прямой. Однако обычно, в частности в суперскалярных процессорах, которые поддерживают неупорядоченное выполнение команд, дополнительные ресурсы, такие как не архитектурные “временные” регистры и сложная управляющая логика, должны быть добавлены к процессору, чтобы надежно осуществлять передачу промежуточных результатов между составными командами и расширенной командой.
Сущность изобретения
В соответствии с одним или более вариантами осуществления, описанными и представленными в формуле изобретения в настоящей заявке, передачу промежуточных результатов между составными командами расширенной команды выполняют с использованием ресурсов переименования регистра и управляющей логики. Первая составная команда генерирует промежуточные результаты, и ей назначают PRN в таблице переименования составной команды, и записывает промежуточные результаты в физический регистр. Вторая составная команда выполняет поиск в таблице переименования составной команды и считывает промежуточные результаты из физического регистра. Логика переименования составной команды отслеживает составные команды через конвейер, удаляет элемент таблицы переименования составной команды и возвращает PRN в свободный список, когда вторая составная команда считала промежуточные результаты.
Один вариант осуществления относится к способу выполнения расширенной команды. Расширенную команду преобразуют в две или более отдельно выполняемые составные команды. Номер физического регистра назначают первой составной команде, генерирующей промежуточный результат. Назначенный номер физического регистра связывают со второй составной командой, принимающей промежуточный результат.
Другой вариант осуществления относится к процессору. Процессор включает в себя один или более конвейеров выполнения команд, действующих с возможностью выполнения расширенной команды с помощью генерации первой составной команды, генерирующей промежуточные результаты, и второй составной команды, принимающей промежуточные результаты. Процессор также включает в себя пул физических регистров, причем каждый регистр имеет номер физического регистра, и таблицу переименования составной команды, действующую с возможностью преобразования идентификаторов команд в номера физических регистров. Процессор дополнительно включает в себя управляющую логику, действующую с возможностью создания элемента в таблице переименования составной команды для первой составной команды и дополнительно действующую с возможностью выполнения поиска в таблице переименования составной команды для второй составной команды. Промежуточные результаты передают из первых во вторые составляющие команды через физические регистры, идентифицированные с помощью номеров физических регистров.
Краткое описание чертежей
Фиг.1 - функциональная блок-схема процессора, использующего ресурсы переименования регистра, чтобы осуществить передачу промежуточного результата между составными командами расширенной команды.
Фиг.2 - функциональная блок-схема конвейера процессора фиг.1.
Фиг.3 - блок-схема последовательности этапов способа выполнения расширенной команды.
Подробное описание изобретения
Фиг.1 изображает функциональную блок-схему процессора 10, имеющего логику, чтобы использовать ресурсы переименования регистра, чтобы отслеживать передачу промежуточных результатов между составными командами, сгенерированными с помощью расширенной команды. Процессор 10 выполняет команды в конвейере 12 выполнения команд в соответствии с управляющей логикой 14. Конвейер 12 может быть суперскалярной конструкцией с множеством параллельных нижних конвейеров 12а, 12b. Конвейер 12 включает в себя различные регистры или схемы-защелки 16, организованные в каскадах конвейера, а также логические и вычислительные схемы, такие как арифметико-логические устройства (ALU) (не показаны). Файл 18 регистра общего назначения (GPR) обеспечивает регистры, содержащие вершину иерархии памяти. Как обсуждено в настоящей заявке, GPR 18 может включать в себя таблицу переименования (RT) 20, свободный список 22 и таблицу переименования составной команды (CITR) 24, чтобы позволить использование ресурсов переименования регистра, чтобы эффективно и надежно передавать промежуточные результаты между составными командами расширенных команд.
Конвейер 12 выбирает команды из кэша команд (I-кэша, или I$) 26, причем адресацией памяти и полномочиями управляют с помощью буфера ассоциативной трансляции стороны команд (ITLB) 28. Данные выбирают из кэша данных (D-кэша, или D$), причем адресацией и полномочиями памяти управляют с помощью главного буфера ассоциативной трансляции (TLB) 32. В разных вариантах осуществления ITLB 28 может содержать копию части TLB 32. В качестве альтернативы ITLB 28 и TLB 32 могут быть интегрированы. Подобным образом в разных вариантах осуществления процессор 10, I-кэш 26 и D-кэш 30 могут быть интегрированы или объединены.
Потери в I-кэше 26 и/или D-кэше 30 являются причиной доступа к главной (вне кристалла) памяти 34 под управлением интерфейса 36 памяти (другие кэши, не изображенные, могут быть помещены между процессором 10 и главной памятью 34). Процессор 10 может включать в себя интерфейс 38 ввода/вывода (I/O), управляющий доступом к различным периферийным устройствам 40, 42. Специалисты в данной области техники поймут, что возможны многочисленные варианты процессора 10. Например, процессор 10 может включать в себя кэш второго уровня (L2) либо для каждого, либо для обоих кэшей I и D 26, 30. Кроме того, один или более из функциональных блоков, изображенных в процессоре 10, могут быть не включены в конкретный вариант осуществления.
Многие современные процессоры 10 выполняют команды “непоследовательно”, то есть в последовательности, отличной от программной последовательности команд, чтобы полностью использовать множество конвейеров 12а, 12b и улучшить общую производительность. Непоследовательное выполнение команд вызывает многочисленные зависимости между командами, известные как “опасности”. Опасности данных возникают, когда переупорядочивание команд изменяет последовательность доступа к операнду, включенному в зависимость. Опасности данных могут быть классифицированы в три типа: считывание после записи (RaW), запись после записи (WaW) и запись после считывания (WaR). Следует заметить, что считывание после считывания (RaR) не является опасностью данных, считывания могут быть выполнены в любой последовательности. Опасности данных, такие как RaW, также могут случаться, когда команды являются не переупорядоченными, но просто должны храниться в конкретной стадии до тех пор, пока их результаты не будут записаны обратно или не будут готовы для передачи.
Известной системой, предназначенной для оперирования опасностями данных в процессорах 10, которые поддерживают непоследовательное выполнение команд, является переименование регистра. В системе переименования регистра большим набором или пулом физических регистров, причем каждый регистр имеет номер физического регистра (PRN), управляют с помощью динамического назначения логических номеров регистров (LRN) физическим регистрам. LRN могут содержать, например, логические идентификаторы GRP (r0, r1, r2, …). Число физических регистров больше, чем число LRN или архитектурных GPR. Таблица переименования (RT) 20 поддерживает динамическое преобразование между LRN и PRN, и имеющиеся PRN поддерживаются в свободном списке 22.
Фиг.2 изображает более подробно функциональную блок-схему конвейера 12 и различные ресурсы переименования регистра. Стадия 50 выборки конвейера 12 выбирает команды из кэша 26 команд. Команды декодируют на стадии 52 декодирования, и они могут поступать в буфер 54 выдачи. Команды выдают из буфера 54 выдачи в конвейер 12а, 12b. Логика 56 переименования инспектирует характеристики доступа к регистру команд и транслирует LRN (например, идентификаторы GPR), связанные с командой, в PRN, когда необходимо, через таблицу 20 переименования и свободный список 22. Для команд, которые записывают регистр, новый физический регистр выбирают из свободного списка 22 и новое преобразование LRN в PRN вводят в таблицу 20 переименования. Оно преобразует LRN в неиспользованный PRN таким образом, что запись направляют в связанный физический регистр (то есть LRN является “переименованным”). Команды, которые считывают регистр на стадии 58а, 58b конвейера доступа к регистру, транслируют свой LRN в PRN посредством поиска в таблице 20 преобразования. PRN остается связанным с командой считывания регистра на всем протяжении ее времени прохождения через конвейер 12а, 12b.
Команды записи регистра не “портят” предыдущие значения, записанные в тот же самый LRN, запись направляют в новый неиспользованный PRN (когда LRN переименовывают в новый PRN). Команды, которые следуют за командой записи в последовательности программы, будут направлены в тот же самый PRN, чтобы получить записанное значение. Команды, предшествующие команде записи в последовательности программы, были бы преобразованы с помощью таблицы 20 переименования в другой физический регистр (до операции переименования) и будут продолжать осуществлять доступ к этому физическому регистру. Таким образом, команды, которые записывают данный LRN, могут быть выполнены раньше команд, которые считывают предыдущее значение из LRN (WaR) или записывают предыдущий результат в LRN (WaW).
Когда команду записи регистра передают для выполнения на стадии 60а, 60b конвейера, то есть когда команда устанавливает, что ни она, ни любая команда перед ней в последовательности программы не вызовет исключения, PRN, назначенный ей, становится соответственным архитектурным GPR. Команда будет записывать свои результаты в этот PRN на стадии 62а, 62b конвейера обратной записи (возможно, после буфера 64а, 64b записи). В этот момент любое более старое переименование того же LRN (идентификатора GPR) в другие PRN удаляют из таблицы 20 переименования. Когда все команды, считывающие GRP, завершат выполнение, PRN возвращают в свободный список 22 как доступный ресурс для другой операции переименования. Оперативная логика 66 переименования выполняет эти функции с помощью мониторинга конвейера 12, когда команды передают для выполнения, и посылает соответственные управляющие сигналы в таблицу 20 переименования и свободный список 22.
В соответствии с одним или более вариантами осуществления систему переименования регистра используют для того, чтобы предусмотреть передачу промежуточных результатов между составными командами, сгенерированными из расширенных команд. Когда расширенную команду декодируют на стадии 52 конвейера, две или более составных команд могут быть сгенерированы и переданы в буфер 54 выдачи команды. Составные команды могут быть отмечены относительно того, какие команды генерируют один или более промежуточных результатов, а какие принимают промежуточные результаты в качестве операндов. Логика 56 переименования инспектирует составные команды и назначает один или более PRN из свободного списка 22 составным командам, которые генерируют промежуточные результаты. Логика 56 переименования дополнительно создает элемент в таблице 24 переименования составной команды, который преобразует указатель, идентифицирующий составную команду, генерирующую промежуточный результат, в назначенный PRN. Логика 56 переименования дополнительно отмечает составные команды, которые принимают промежуточные результаты с помощью указателя, идентифицирующего составную команду, генерирующую промежуточные результаты.
Когда составные команды, принимающие промежуточные результаты, достигают стадии 58а, 58b конвейера, команды осуществляют доступ к таблице 24 переименования составной команды, чтобы выбрать PRN, идентифицирующий регистр, который содержит их промежуточные результаты. Когда составные команды, принимающие промежуточные результаты, передают для выполнения на стадии 60а, 60b конвейера, логика 68 переименования составной команды удаляет соответственный элемент из таблицы 24 переименования составной команды и возвращает PRN в свободный список 22. Следует заметить, что несмотря на то что таблица 24 переименования составной команды изображена на фиг.2 как независимый функциональный элемент, в некоторых вариантах осуществления функциональные возможности могут быть включены в таблицу 20 переименования. В этом случае составные команды расширенных команд, которые генерируют и принимают промежуточные результаты, рассматривают как специальный случай переименования регистра, причем переименовывают идентификатор команды, а не LRN. В других вариантах осуществления переименование регистра составной команды может быть отделено от переименования регистра с отдельным пулом физических регистров и отдельным свободным списком 22, выделенными расширенным командам.
Фиг.3 изображает способ выполнения расширенной команды. Расширенную команду преобразуют в две или более отдельно выполняемых составных команд (блок 100). Первой составной команде, генерирующей промежуточный результат, назначают PRN (блок 102). В одном варианте осуществления PRN выбирают из пула переименования регистра. Назначенный PRN связывают со второй составной командой, принимающей промежуточный результат (блок 104). Связь может быть через элемент в таблице 24 переименования составной команды или таблице 20 переименования системы переименования регистра.
Затем выполняют первую составную команду (блок 106), и промежуточный результат, который она генерирует, хранится в регистре, идентифицированном с помощью назначенного PRN. Выполняют вторую составную команду (блок 108), выбирающую промежуточный результат из регистра, идентифицированного с помощью назначенного PRN. Специалисты в данной области техники поймут, что блок 106 и 108 может быть осуществлен с помощью передачи операнда с использованием назначенного PRN, чтобы идентифицировать команды, без фактической записи промежуточных результатов в физический регистр.
После того как вторая составная команда приняла промежуточный результат, отменяют связь PRN со второй составной командой (блок 110) таким образом, как с помощью удаления соответственного элемента из таблицы 24 переименования составной команды (или таблицы 20 переименования регистра). Затем PRN возвращают в пул переименования регистра (блок 112) таким образом, как с помощью возвращения PRN в свободный список 22. Связь PRN со второй составной командой может быть отменена, и PRN может быть возвращен в свободный список 22, как только вторая составная команда считает промежуточный результат во время своего выполнения или в любое время позднее.
С помощью использования ресурсов и методологии существующих систем переименования регистра, как описано в настоящей заявке, расширенные команды могут быть выполнены как две или более составных команд без потребности в экстенсивных дополнительных ресурсах процессора и логики, чтобы осуществлять передачу промежуточных результатов между составными командами. Несмотря на то что описано с точки зрения двух составных команд, передающих один промежуточный результат, специалисты в данной области техники поймут, что настоящее изобретение не ограничено этим вариантом осуществления. Обычно большое число составных команд может быть сгенерировано из расширенной команды, и составные команды могут передавать большое число промежуточных результатов между собой с использованием системы переименования регистра, как описано в настоящей заявке.
Конечно, настоящее изобретение может быть выполнено другими способами, отличными от способов, разъясненных в настоящей заявке, не выходя за рамки существенных характеристик изобретения. Настоящие варианты осуществления должны быть рассмотрены во всех аспектах как иллюстративные, а не ограничительные, и подразумевают, что все изменения, относящиеся к диапазону смысла и эквивалентности прилагаемой формулы изобретения, должны быть включены в нее.
Claims (19)
1. Способ выполнения расширенной команды в системе, содержащей таблицу переименования, свободный список и таблицу переименования составной команды, способ содержит этапы, на которых:
преобразуют расширенную команду во множество отдельно выполняемых составных команд, включающих в себя первую составную команду и вторую составную команду;
назначают номер физического регистра, связанный с физическим регистром первой составной команды, с помощью преобразования идентификатора первой составной команды в номер физического регистра в таблице переименования составной команды, причем первая составная команда генерирует промежуточный результат; и
связывают назначенный номер физического регистра со второй составной командой, принимающей промежуточный результат.
преобразуют расширенную команду во множество отдельно выполняемых составных команд, включающих в себя первую составную команду и вторую составную команду;
назначают номер физического регистра, связанный с физическим регистром первой составной команды, с помощью преобразования идентификатора первой составной команды в номер физического регистра в таблице переименования составной команды, причем первая составная команда генерирует промежуточный результат; и
связывают назначенный номер физического регистра со второй составной командой, принимающей промежуточный результат.
2. Способ по п.1, дополнительно содержащий этап, на котором выполняют первую составную команду, чтобы сгенерировать промежуточный результат.
3. Способ по п.2, дополнительно содержащий этап, на котором используют назначенный номер физического регистра для направления промежуточного результата в качестве операнда второй составной команды без сохранения промежуточного результата в физическом регистре.
4. Способ по п.3, в котором этап, на котором назначают номер физического регистра первой составной команде, содержит этап, на котором создают элемент в таблице переименования составной команды, преобразующей идентификатор первой составной команды в номер физического регистра, и дополнительно содержит этап, на котором принимают промежуточный результат с помощью второй составной команды без выполнения поиска в таблице переименования составной команды.
5. Способ по п.2, дополнительно содержащий этап, на котором сохраняют промежуточный результат в физическом регистре.
6. Способ по п.5, дополнительно содержащий этап, на котором выполняют вторую составную команду, причем выполнение второй составной команды включает в себя извлечение промежуточного результата из физического регистра.
7. Способ по п.1, в котором этап, на котором назначают номер физического регистра первой составной команде, содержит этап, на котором создают элемент в таблице переименования составной команды, который преобразует идентификатор первой составной команды в номер физического регистра.
8. Способ по п.7, в котором номер физического регистра выбирают из списка доступных физических регистров.
9. Способ по п.1, дополнительно содержащий этап, на котором выполняют вторую составную команду, причем выполнение второй составной команды дополнительно содержит этап, на котором выполняют поиск в таблице переименования составной команды с использованием идентификатора первой составной команды.
10. Способ по п.1, дополнительно содержащий этап, на котором отпускают номер физического регистра от назначения первой составной команде после того, как вторая составная команда считает промежуточный результат.
11. Способ по п.10, в котором этап, на котором отпускают номер физического регистра, содержит этап, на котором добавляют номер физического регистра к списку доступных физических регистров.
12. Способ по п.1, в котором этап, на котором связывают назначенный номер физического регистра со второй составной командой, содержит этап, на котором отмечают вторую составную команду с идентификатором первой составной команды.
13. Процессор, содержащий
таблицу переименования, свободный список и таблицу переименования составной команды,
конвейер выполнения команд, действующих с возможностью выполнения расширенной команды с помощью преобразования расширенной команды в первую составную команду и вторую составную команду, причем первая составная команда генерирует промежуточные результаты, и вторая составная команда принимает промежуточные результаты; и
физический регистр для хранения промежуточных результатов, сгенерированных первой составной командой, причем физический регистр имеет связанный номер физического регистра, и
логику переименования для назначения номера физического регистра первой составной команде с помощью преобразования в таблице переименования составной команды идентификатора первой составной команды в номер физического регистра и связывания номера физического регистра со второй составной командой, причем вторая составная команда принимает промежуточные результаты.
таблицу переименования, свободный список и таблицу переименования составной команды,
конвейер выполнения команд, действующих с возможностью выполнения расширенной команды с помощью преобразования расширенной команды в первую составную команду и вторую составную команду, причем первая составная команда генерирует промежуточные результаты, и вторая составная команда принимает промежуточные результаты; и
физический регистр для хранения промежуточных результатов, сгенерированных первой составной командой, причем физический регистр имеет связанный номер физического регистра, и
логику переименования для назначения номера физического регистра первой составной команде с помощью преобразования в таблице переименования составной команды идентификатора первой составной команды в номер физического регистра и связывания номера физического регистра со второй составной командой, причем вторая составная команда принимает промежуточные результаты.
14. Процессор по п.13, дополнительно содержащий управляющую логику, действующую с возможностью возвращать номер физического регистра свободному списку после того, как вторая составная команда принимает промежуточные результаты.
15. Процессор по п.13, в котором элемент таблицы переименования составной команды преобразует идентификатор первой составной команды, связанный с первой составной командой в номер физического регистра.
16. Процессор по п.13, в котором первая составная команда записывает промежуточные результаты в физический регистр.
17. Процессор по п.13, в котором вторая составная команда считывает промежуточные результаты из физического регистра.
18. Процессор по п.15, в котором вторая составная команда извлекает номер физического регистра посредством поиска в таблице переименования составной команды с использованием идентификатора первой составной команды.
19. Процессор по п.15, в котором элемент таблицы переименования составной команды удаляется из таблицы переименования составной команды после того, как вторая составная команда примет промежуточные результаты.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 |
US11/626,424 | 2007-01-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2009131714A RU2009131714A (ru) | 2011-02-27 |
RU2431887C2 true 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 EP EP08713989A patent/EP2126689B8/en active Active
- 2008-01-24 CN CN2008800028974A patent/CN101601008B/zh active Active
- 2008-01-24 MX MX2009007939A patent/MX2009007939A/es active IP Right Grant
- 2008-01-24 AT AT08713989T patent/ATE481676T1/de not_active IP Right Cessation
- 2008-01-24 DE DE602008002568T patent/DE602008002568D1/de active Active
- 2008-01-24 KR KR1020097016741A patent/KR101154628B1/ko active IP Right Grant
- 2008-01-24 WO PCT/US2008/051958 patent/WO2008092037A1/en active Application Filing
- 2008-01-24 BR BRPI0806737-6A patent/BRPI0806737B1/pt active IP Right Grant
- 2008-01-24 ES ES08713989T patent/ES2352586T3/es active Active
- 2008-01-24 CA CA2674872A patent/CA2674872C/en not_active Expired - Fee Related
- 2008-01-24 RU RU2009131714/08A patent/RU2431887C2/ru not_active IP Right Cessation
- 2008-01-24 JP JP2009547427A patent/JP5275253B2/ja active Active
Non-Patent Citations (1)
Title |
---|
Mark Smotherman, et al, "Improving CISC Instruction Decoding Performance Using a Fill Unit" in Proceedings of the 28th Annual International Symposium on Ann Arbor, 18.11.2004, c.219-229 [найдено 31.08.2010]. Найдено в Интернет по адресу URL: http://www.ece.umd.edu/~manoj/ papers, факсимильное изображение текста этой статьи найдено по адресу URL: http://www.ece.umd.edu/~manoj/papers/micro28.fill.pdf. * |
Also Published As
Publication number | Publication date |
---|---|
BRPI0806737B1 (pt) | 2023-11-28 |
JP5275253B2 (ja) | 2013-08-28 |
RU2009131714A (ru) | 2011-02-27 |
CA2674872C (en) | 2013-06-25 |
US20080177987A1 (en) | 2008-07-24 |
CN101601008B (zh) | 2013-05-08 |
KR101154628B1 (ko) | 2012-06-08 |
DE602008002568D1 (de) | 2010-10-28 |
WO2008092037A1 (en) | 2008-07-31 |
KR20090100448A (ko) | 2009-09-23 |
MX2009007939A (es) | 2009-08-07 |
CA2674872A1 (en) | 2008-07-31 |
EP2126689A1 (en) | 2009-12-02 |
CN101601008A (zh) | 2009-12-09 |
BRPI0806737A8 (pt) | 2018-04-10 |
US7669039B2 (en) | 2010-02-23 |
JP2010517180A (ja) | 2010-05-20 |
BRPI0806737A2 (pt) | 2011-09-13 |
ES2352586T3 (es) | 2011-02-21 |
ATE481676T1 (de) | 2010-10-15 |
EP2126689B1 (en) | 2010-09-15 |
EP2126689B8 (en) | 2010-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2431887C2 (ru) | Использование системы переименования регистра для передачи промежуточных результатов между составными командами и расширенной командой | |
JP6009608B2 (ja) | 条件付き命令が無条件で出力を提供するシステム及び方法 | |
TWI507980B (zh) | 最佳化暫存器初始化操作 | |
US8032734B2 (en) | Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor | |
US20080059771A1 (en) | Out-of-order processor having an in-order coprocessor, and applications thereof | |
US9424036B2 (en) | Scalable decode-time instruction sequence optimization of dependent instructions | |
US6192461B1 (en) | Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle | |
US8078846B2 (en) | Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated | |
US7747840B2 (en) | Method for latest producer tracking in an out-of-order processor, and applications thereof | |
EP0924603A2 (en) | Compiler controlled dynamic scheduling of program instructions | |
US10599431B2 (en) | Managing backend resources via frontend steering or stalls | |
KR20230038799A (ko) | 전력 절약을 위한 레지스터 리네이밍 | |
JPH06236274A (ja) | スーパースカラ・プロセッサ・システム内でスカラ命令を追跡する方法およびシステム | |
JiongYao et al. | Recovery Scheme to Reduce Latency of Miss-Prediction for Superscalar Processor using L1 Recovery Cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20200125 |