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

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

Info

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
Application number
RU2009131714/08A
Other languages
English (en)
Other versions
RU2009131714A (ru
Inventor
Майкл Скотт МАКИЛВЕЙН (US)
Майкл Скотт МАКИЛВЕЙН
Джеймс Норрис ДИФФЕНДЕРФЕР (US)
Джеймс Норрис ДИФФЕНДЕРФЕР
Натан Самьюэл НЬЮНАМЕЙКЕР (US)
Натан Самьюэл НЬЮНАМЕЙКЕР
Томас Эндрю САРТОРИУС (US)
Томас Эндрю САРТОРИУС
Родни Уэйн СМИТ (US)
Родни Уэйн СМИТ
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 RU2009131714A publication Critical patent/RU2009131714A/ru
Application granted granted Critical
Publication of RU2431887C2 publication Critical patent/RU2431887C2/ru

Links

Images

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

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении надежной передачи промежуточных результатов между составными командами и расширенной командой. В способе выполнения расширенной команды в системе, содержащей таблицу переименования, свободный список и таблицу переименования составной команды, преобразуют расширенную команду во множество отдельно выполняемых составных команд, включающих в себя первую составную команду и вторую составную команду; назначают номер физического регистра, связанный с физическим регистром первой составной команды, с помощью преобразования идентификатора первой составной команды в номер физического регистра в таблице переименования составной команды, причем первая составная команда генерирует промежуточный результат; и связывают назначенный номер физического регистра со второй составной командой, принимающей промежуточный результат. 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, в котором элемент таблицы переименования составной команды удаляется из таблицы переименования составной команды после того, как вторая составная команда примет промежуточные результаты.
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 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 (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9697002B2 (en) 2011-10-03 2017-07-04 International Business Machines Corporation Computer instructions for activating and deactivating operands
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
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
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
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
ATE481676T1 (de) 2010-10-15
MX2009007939A (es) 2009-08-07
EP2126689A1 (en) 2009-12-02
ES2352586T3 (es) 2011-02-21
KR20090100448A (ko) 2009-09-23
WO2008092037A1 (en) 2008-07-31
CA2674872C (en) 2013-06-25
CA2674872A1 (en) 2008-07-31
EP2126689B1 (en) 2010-09-15
BRPI0806737A8 (pt) 2018-04-10
JP2010517180A (ja) 2010-05-20
RU2009131714A (ru) 2011-02-27
DE602008002568D1 (de) 2010-10-28
CN101601008B (zh) 2013-05-08
BRPI0806737B1 (pt) 2023-11-28
EP2126689B8 (en) 2010-12-29
JP5275253B2 (ja) 2013-08-28
KR101154628B1 (ko) 2012-06-08
US20080177987A1 (en) 2008-07-24
CN101601008A (zh) 2009-12-09
US7669039B2 (en) 2010-02-23
BRPI0806737A2 (pt) 2011-09-13

Similar Documents

Publication Publication Date Title
JP6009608B2 (ja) 条件付き命令が無条件で出力を提供するシステム及び方法
RU2431887C2 (ru) Использование системы переименования регистра для передачи промежуточных результатов между составными командами и расширенной командой
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
CZ9602771A3 (cs) Způsob operace systému zpracování
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