RU2583744C2 - Устройство и способ связывания операций в памяти - Google Patents

Устройство и способ связывания операций в памяти Download PDF

Info

Publication number
RU2583744C2
RU2583744C2 RU2014108851/08A RU2014108851A RU2583744C2 RU 2583744 C2 RU2583744 C2 RU 2583744C2 RU 2014108851/08 A RU2014108851/08 A RU 2014108851/08A RU 2014108851 A RU2014108851 A RU 2014108851A RU 2583744 C2 RU2583744 C2 RU 2583744C2
Authority
RU
Russia
Prior art keywords
memory
operations
access
criteria
linking
Prior art date
Application number
RU2014108851/08A
Other languages
English (en)
Other versions
RU2014108851A (ru
Inventor
Ранганатхан СУДХАКАР
Original Assignee
ЭмАйПиЭс ТЕКНОЛОДЖИС, ИНК.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ЭмАйПиЭс ТЕКНОЛОДЖИС, ИНК. filed Critical ЭмАйПиЭс ТЕКНОЛОДЖИС, ИНК.
Publication of RU2014108851A publication Critical patent/RU2014108851A/ru
Application granted granted Critical
Publication of RU2583744C2 publication Critical patent/RU2583744C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Devices For Executing Special Programs (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в оптимизации операций в памяти. Процессор, выполненный с возможностью выборки команд из кэша команд, причем каждая команда задает частный доступ к памяти; декодирования каждой из команд для формирования декодированных команд; оценки декодированных команд с использованием критериев связывания операций в памяти, чтобы выборочно идентифицировать возможности связывания операций в памяти в рамках плана доступа к памяти, ассоциированного с декодированными командами; и создания комбинированных операций в памяти в соответствии с возможностями связывания операций в памяти, чтобы формировать исправленный план доступа к памяти с ускоренным доступом к памяти, при этом исправленный план доступа к памяти включает в себя одну команду, которая объединяет множество частных декодированных команд и задает выровненный адрес. 2 н. и 18 з.п. ф-лы, 1 ил.

Description

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Настоящая заявка испрашивает приоритет согласно патентной заявке США № 13/789394, поданной 7 марта 2013 года, содержимое которой включено в настоящий документ посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится, в общем, к архитектурам вычислительных машин. Более конкретно, изобретение относится к архитектурам процессоров со связыванием операций в памяти.
УРОВЕНЬ ТЕХНИКИ
Высокопроизводительным процессорам обычно требуется подавать более одной команды на загрузку или сохранение за цикл. Для этого требуется много аппаратных ресурсов, таких как диспетчеры команд, буферы данных, буферы быстрого преобразования адреса (TLB) и копии тегированной памяти и памяти данных в кэше данных, что увеличивает требования к пространству и энергопотреблению и является проблематичным. Это проблематично для любого микропроцессора, но особенно проблематично в применениях с ограниченной мощностью, например встроенных процессорах или серверах.
Большинство суперскалярных процессоров имеют три или четыре канала обработки, т.е. они могут посылать три или четыре команды каждый цикл. Около 40% команд могут быть операциями в памяти. Таким образом, оптимизация операций в памяти между многочисленными каналами обработки может приводить к значительной эффективности.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Процессор выполнен с возможностью оценки критериев связывания операций в памяти, чтобы выборочно идентифицировать возможности связывания операций в памяти в рамках плана доступа к памяти. В соответствии с возможностями связывания операций в памяти создаются комбинированные операции в памяти, чтобы формировать исправленный план доступа к памяти с ускоренным доступом к памяти.
Энергонезависимый машиночитаемый носитель данных включает в себя исполняемые команды для определения процессора, выполненного с возможностью оценки критериев связывания операций в памяти, чтобы выборочно идентифицировать возможности связывания операций в памяти в рамках плана доступа к памяти. В соответствии с возможностями связывания операций в памяти создаются комбинированные операции в памяти, чтобы формировать исправленный план доступа к памяти с ускоренным доступом к памяти.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Изобретение будет более понятно в связи с нижеследующим подробным описанием, взятым вместе с прилагаемыми чертежами.
Фиг. 1 иллюстрирует процессор, выполненный в соответствии с вариантом осуществления этого изобретения.
Одинаковые ссылочные позиции относятся к соответствующим деталям на нескольких видах чертежей.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Фиг. 1 иллюстрирует процессор 100, выполненный в соответствии с вариантом осуществления этого изобретения. Процессор 100 осуществляет операции связывания памяти, описанные в этой заявке. В частности, процессор осуществляет связывание времени выполнения соседних операций в памяти для эффективного формирования одной команды для множества данных (SIMD-команды) из набора команд, не являющегося набором SIMD-команд. Это обеспечивает более широкий и менее частый доступ к памяти.
Процессор 100 включает в себя блок 102 интерфейса шины, соединенный с блоком 104 выборки команды. Блок 104 выборки команды извлекает команды из кэша 110 команд. Блок 108 управления памятью обеспечивает для блока 104 выборки команд преобразование виртуального адреса в физический адрес. Блок 108 управления памятью обеспечивает также преобразование ссылок на данные для загрузки и сохранение для программного канала 120 памяти (блока загрузки-сохранения).
Выбранные команды направляются в буферы 106 команд. Декодер 112 осуществляет доступ к буферам 106 команд. Декодер 112 выполнен с возможностью осуществления динамического связывания операций в памяти. Декодер 112 направляет декодированную команду в функциональный блок, такой как сопроцессор 114, блок 116 вычислений с плавающей точкой, арифметико-логическое устройство (АЛУ) 118 или программный канал памяти 120, который обрабатывает адреса загрузки и сохранения для доступа к кэшу 122 данных.
Декодер 112 выполнен таким образом, что многочисленные операции в памяти (в соседних местоположениях) "связываются" или соединяются вместе после декодирования команды. Связанные операции в памяти исполняются как одно целое в течение их времени жизни в ядре машины. К примеру, две 32-разрядные загрузки могут быть связаны в одну 64-разрядную загрузку. Связанная операция требует более широких трактов данных (например, 64-разрядных, а не 32-разрядных), которые уже могут присутствовать в машине. Даже если более широкий канал не доступен, то два 32-разрядных конвейера памяти занимают намного меньше пространства и потребляют намного меньше энергии, чем одна 64-разрядная операция. Таким образом, в результате изобретения формируется исправленный план доступа к памяти с ускоренным доступом к памяти. Ускоренный доступ может получаться в результате более широкого канала передачи данных, чем канал передачи данных, применяемый в первоначальном плане доступа к памяти. В качестве альтернативы, ускоренный доступ может получаться в результате конвейерного доступа к памяти. Например, в программном канале 120 памяти может применяться 64-разрядный канал для доступа к кэшу 122 данных. В качестве альтернативы, в программном канале 120 памяти может применяться конвейерный доступ к памяти к кэшу 122 данных.
Таким образом, изобретение обеспечивает создание высокопроизводительных машин, которые более эффективны по сравнению с известным уровнем техники. В некотором смысле о связывании многочисленных операций в памяти в одну более широкую операцию можно думать как о динамическом создании SIMD-команд из потока не SIMD-команд. Другими словами, SIMD-функциональность не подразумевается набором команд или архитектурой вычислительной машины. Напротив, возможности для SIMD идентифицируются в базе исходных текстов, которая не имеет SIMD-команд и не подразумевает иным образом SIMD-функциональность.
Как указано выше, около 40% команд могут быть операциями в памяти. Это предполагает, что около 1,2-1,6 команды на загрузку/сохранение могут входить в цикл для четырехканального процессора. Таким образом, операции по связыванию памяти согласно изобретению могут широко применяться. Кроме того, многие подпрограммы программ общего назначения, такие как копирование памяти, сравнения строк или нулевых байтов, требуют при загрузке/сохранении высокоскоростного доступа к кэшу данных первого уровня, обеспечивая дополнительные возможности использования методов по изобретению.
Обеспечение более одного порта загрузки/сохранения к кэшу является весьма дорогостоящим предложением, требующим большего количества ресурсов диспетчера, портов на чтение и запись в регистровый файл, генераторов адресов, массивов тегов, блоков сравнения тегов, буферов быстрого преобразования адресов, массивов данных, буферов сохранения, логики устранения неоднозначности и переадресации памяти. Однако во многих ситуациях, когда нужно выполнить более одной загрузки (или сохранения) за цикл, обнаруживается, что данные, к которым осуществляется доступ, расположены в памяти рядом, и, более того, доступ к ним осуществляется при помощи соседних команд в памяти программ (части кода). Процессор 100 выполнен с возможностью распознавания и использования этого путем преобразования большинства таких критических последовательных доступов к памяти в менее частный, но более широкий доступ, который может исполняться с минимальными издержками в отношении пространства и мощности благодаря минимальному дополнительному аппаратному обеспечению. В результате этого процессор 100 обеспечивает существенное улучшение производительности (50% - 100%) на ключевых процедурах.
Рассмотрим следующий код:
LW r5, 0ffset_1(r20) //32-разрядная загрузка из регистра 5 в
// первую позицию в регистре 20
LW r6, 0ffset_2(r20) //соседняя 32-разрядная загрузка из
// регистра 6 во вторую позицию в регистре //20
Этот код составляет план доступа к памяти. Как используется здесь, план доступа к памяти - это детализация операций доступа к памяти. План доступа к памяти подразумевает один канал доступа к памяти. Этот код оценивается динамически для создания связанной операции в памяти. То есть критерии связывания операций в памяти используются для оценки кода, чтобы выборочно идентифицировать возможности связывания операций в памяти в рамках плана доступа к памяти. Если возможность связывания операций в памяти существует, то формируются объединенные операции в памяти, чтобы устанавливать исправленный план доступа к памяти с ускоренным доступом к памяти. В этом случае код исправленного плана доступа к памяти выглядит следующим образом:
LW2 (r5, r6), 0ffset_1(r20) //связанная 64-разрядная загрузка из
//регистра 5 и регистра 6 в первую
//позицию в регистре
//20
В этом примере каждая соседняя пара 32-разрядных команд в памяти связывается в одну 64-разрядную операцию. Большинство 32-разрядных процессоров уже имеют 64-разрядные тракты данных к кэшу данных, поскольку одни должны поддерживать 64-разрядные операции загрузки, и запоминая с плавающей точкой. Тем не менее сравнительно просто расширить конвейер памяти с 64-разрядного на 32-разрядный для тех 32-разрядных процессоров, которые еще не имеют 64-разрядных трактов данных к/из кэша.
В общем, методика не ограничена связыванием двух 32-разрядных операций в 64-разрядные операции. Она может в равной степени хорошо применяться для связывания двух 64-разрядных операций в одну 128-разрядную операцию или четырех 32-разрядных операций в памяти в одну 128-разрядную операцию с сопутствующими выигрышами в производительности, пространстве и мощности.
Можно задавать различные критерии связывания операций в памяти. Например, критерии связывания операций в памяти могут включать в себя: соседние команды загрузки или сохранения, один и тот же тип памяти для двух операций в памяти, один и тот же регистр базового адреса для двух операций в памяти, следующие друг за другом местоположения в памяти, смещение, отличающееся на размер доступа, а в случае загрузок, место назначения первой операции не является источником для второй операции. В другом условии после связывания может требоваться выровненный адрес.
Аппаратные решения проблемы масштабирования ширины конвейера памяти без больших издержек в части пространства/мощности являются иллюзорными. Программные подходы к проблеме требуют новых команд, делая преимущества недостижимыми для существующего кода. Это также требует изменений в программной экосистеме; такие изменения затруднительно вводить в действие. К тому же потенциально возможное программное решение могло бы требовать, чтобы аппаратным обеспечением выполнялся не выровненный доступ к памяти, поскольку программному обеспечению не известно выравнивание всех операций во время компиляции. Метод связывания может использоваться вместе со связывающим предиктором, чтобы гарантировать, что все связанные операции доступа выровнены, что является важной и желательной особенностью чистых RISC-архитектур. Таким образом, такая схема может хорошо работать во время выполнения, когда аппаратному обеспечению известны фактические адреса, сгенерированные операциями в памяти. Процессорах, которые обрабатывают невыровненные адреса в аппаратном обеспечении, могут все еще использовать этот метод и получать большие выигрыши в производительности.
Специалистам в данной области техники будет понятно, что изобретение элегантно решает неприятную проблему в проектировании процессоров и имеет широкую применимость в любом процессоре общего назначения независимо от ширины конвейера, глубины конвейера или степени исполнения по предположению. Преимущественно, методы по изобретению не требуют изменения в наборе команд. Поэтому методы применимы ко всем существующим двоичным кодам.
Хотя выше были описаны различные варианты осуществления изобретения, следует понимать, что они были представлены для примера, а не ограничения. Специалистам в соответствующих областях техники, связанных с вычислительными машинами, будет очевидно, что различные изменения могут быть сделаны в форме и деталях, не выходя за пределы объема изобретения. К примеру, помимо использования аппаратного обеспечения (например, находящегося в или связанного с центральным процессором ("CPU"), микропроцессором, микроконтроллером, цифровым процессором сигналов, ядром процессора, системой на кристалле ("SOC") или любым другим устройством), варианты исполнения могут быть также осуществлены в программном обеспечении (например, машиночитаемом коде, программном коде и/или командах в любой форме, как на исходном, объектном или машинном языке), находящемся, например, на пригодном для использования машиной (например, читаемом) носителе, выполненном с возможностью хранения программного обеспечения. Такое программное обеспечение может делать возможным, например, функционирование, производство, моделирование, симуляцию, описание и/или тестирование описанных здесь устройства и способов. К примеру, этого можно достичь при помощи использования общих языков программирования (например, C, C++), языков описания аппаратных средств (HDL), в том числе Verilog HDL, VHDL и так далее или других доступных программ. Такое программное обеспечение может располагаться на любом известном энергонезависимом пригодном для использования машиной носителе, например полупроводнике, магнитном диске или оптическом диске (н-р, CD-ROM, DVD-ROM и т.п.). Понятно, что для обеспечения функциональных возможностей, указанных в программном обеспечении, может применяться CPU, ядро процессора, микроконтроллер или любой другой подходящий элемент электронного аппаратного обеспечения.
Понятно, что устройства и способ, описанные в этой заявке, могут быть включены в состав ядра полупроводниковой интеллектуальной собственности, как, например, ядро микропроцессора (например, осуществленное на языке HDL), и преобразованы в аппаратное обеспечение при производстве интегральных схем. Кроме того, описанные устройство и способы могут быть осуществлены посредством сочетания аппаратных средств и программного обеспечения. Таким образом, настоящее изобретение не должно ограничиваться каким-либо из описанных выше примерных вариантов осуществления, а должно определяться только в соответствии со следующими пунктами формулы изобретения и их эквивалентами.

Claims (20)

1. Процессор, выполненный с возможностью:
выборки команд из кэша команд, причем каждая команда задает частный доступ к памяти;
декодирования каждой из команд для формирования декодированных команд;
оценки декодированных команд с использованием критериев связывания операций в памяти, чтобы выборочно идентифицировать возможности связывания операций в памяти в рамках плана доступа к памяти, ассоциированного с декодированными командами; и
создания комбинированных операций в памяти в соответствии с возможностями связывания операций в памяти, чтобы формировать исправленный план доступа к памяти с ускоренным доступом к памяти, при этом исправленный план доступа к памяти включает в себя одну команду, которая объединяет множество частных декодированных команд и задает выровненный адрес.
2. Процессор по п. 1, в котором исправленный план доступа к памяти использует более широкий канал передачи данных, чем канал передачи данных, применяемый в плане доступа к памяти.
3. Процессор по п. 1, в котором исправленный план доступа к памяти использует конвейерный доступ к памяти.
4. Процессор по п. 1, в котором критерии связывания операций в памяти определяют соседние команды загрузки или сохранения.
5. Процессор по п. 1, в котором критерии связывания операций в памяти определяют общий тип памяти для двух операций в памяти.
6. Процессор по п. 1, в котором критерии связывания операций в памяти определяют общий регистр базового адреса для двух операций в памяти.
7. Процессор по п. 1, в котором критерии связывания операций в памяти определяют следующие друг за другом местоположения в памяти.
8. Процессор по п. 1, в котором критерии связывания операций в памяти определяют смещение, отличающееся на размер доступа.
9. Процессор по п. 8, в котором критерии связывания операций в памяти определяют, что в случае загрузок место назначения первой операции в памяти не является источником для второй операции в памяти.
10. Процессор по п. 1, в котором критерии связывания операций в памяти определяют выровненный адрес после связывания.
11. Энергонезависимый машиночитаемый носитель данных, содержащий исполняемые команды для конфигурирования процессора выполненным с возможностью:
выборки команд из кэша команд, причем каждая команда задает частный доступ к памяти;
декодирования каждой из команд для формирования декодированных команд;
оценки декодированных команд с использованием критериев связывания операций в памяти, чтобы выборочно идентифицировать возможности связывания операций в памяти в рамках плана доступа к памяти, ассоциированного с декодированными командами, и
создания комбинированных операций в памяти в соответствии с возможностями связывания операций в памяти, чтобы формировать исправленный план доступа к памяти с ускоренным доступом к памяти, при этом исправленный план доступа к памяти включает в себя одну команду, которая объединяет множество частных декодированных команд и задает выровненный адрес.
12. Энергонезависимый машиночитаемый носитель данных по п. 11, при этом исправленный план доступа к памяти использует более широкий канал передачи данных, чем канал передачи данных, используемый планом доступа к памяти.
13. Энергонезависимый машиночитаемый носитель данных по п. 11, при этом исправленный план доступа к памяти использует конвейерный доступ к памяти.
14. Энергонезависимый машиночитаемый носитель данных по п. 11, при этом критерии связывания операций в памяти определяют соседние команды загрузки или сохранения.
15. Энергонезависимый машиночитаемый носитель данных по п. 11, при этом критерии связывания операций в памяти определяют общий тип памяти для двух операций в памяти.
16. Энергонезависимый машиночитаемый носитель данных по п. 11, при этом критерии связывания операций в памяти определяют общий регистр базового адреса для двух операций в памяти.
17. Энергонезависимый машиночитаемый носитель данных по п. 11, при этом критерии связывания операций в памяти определяют следующие друг за другом местоположения в памяти.
18. Энергонезависимый машиночитаемый носитель данных по п. 11, при этом критерии связывания операций в памяти определяют смещение, отличающееся на размер доступа.
19. Энергонезависимый машиночитаемый носитель данных по п. 18, в котором критерии связывания операций в памяти определяют, что в случае загрузок место назначения первой операции в памяти не является источником для второй операции в памяти.
20. Энергонезависимый машиночитаемый носитель данных по п. 11, при этом критерии связывания операций в памяти определяют выровненный адрес после связывания.
RU2014108851/08A 2013-03-07 2014-03-06 Устройство и способ связывания операций в памяти RU2583744C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/789,394 2013-03-07
US13/789,394 US20140258667A1 (en) 2013-03-07 2013-03-07 Apparatus and Method for Memory Operation Bonding

Publications (2)

Publication Number Publication Date
RU2014108851A RU2014108851A (ru) 2015-09-20
RU2583744C2 true RU2583744C2 (ru) 2016-05-10

Family

ID=50440332

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014108851/08A RU2583744C2 (ru) 2013-03-07 2014-03-06 Устройство и способ связывания операций в памяти

Country Status (5)

Country Link
US (1) US20140258667A1 (ru)
CN (1) CN104035895B (ru)
DE (1) DE102014002840A1 (ru)
GB (1) GB2512472B (ru)
RU (1) RU2583744C2 (ru)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170249144A1 (en) * 2016-02-26 2017-08-31 Qualcomm Incorporated Combining loads or stores in computer processing
US10430115B2 (en) * 2017-06-20 2019-10-01 Reduxio Systems Ltd. System and method for optimizing multiple packaging operations in a storage system
US10459726B2 (en) 2017-11-27 2019-10-29 Advanced Micro Devices, Inc. System and method for store fusion
US11593117B2 (en) * 2018-06-29 2023-02-28 Qualcomm Incorporated Combining load or store instructions
US10901745B2 (en) 2018-07-10 2021-01-26 International Business Machines Corporation Method and apparatus for processing storage instructions
EP3812892B1 (en) * 2019-10-21 2022-12-07 ARM Limited Apparatus and method for handling memory load requests
GB2594732B (en) 2020-05-06 2022-06-01 Advanced Risc Mach Ltd Adaptive load coalescing
US20220374237A1 (en) * 2021-05-21 2022-11-24 Telefonaktiebolaget Lm Ericsson (Publ) Apparatus and method for identifying and prioritizing certain instructions in a microprocessor instruction pipeline

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2292581C2 (ru) * 2001-12-20 2007-01-27 Интел Корпорейшн Команды загрузки/перемещения и копирования для процессора

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643765B1 (en) * 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5835972A (en) * 1996-05-28 1998-11-10 Advanced Micro Devices, Inc. Method and apparatus for optimization of data writes
US5956503A (en) * 1997-04-14 1999-09-21 International Business Machines Corporation Method and system for front-end and back-end gathering of store instructions within a data-processing system
US6349383B1 (en) * 1998-09-10 2002-02-19 Ip-First, L.L.C. System for combining adjacent push/pop stack program instructions into single double push/pop stack microinstuction for execution
US6209082B1 (en) * 1998-11-17 2001-03-27 Ip First, L.L.C. Apparatus and method for optimizing execution of push all/pop all instructions
US6334171B1 (en) * 1999-04-15 2001-12-25 Intel Corporation Write-combining device for uncacheable stores
US6587929B2 (en) * 2001-07-31 2003-07-01 Ip-First, L.L.C. Apparatus and method for performing write-combining in a pipelined microprocessor using tags
US7340495B2 (en) * 2001-10-29 2008-03-04 Intel Corporation Superior misaligned memory load and copy using merge hardware
US20040073773A1 (en) * 2002-02-06 2004-04-15 Victor Demjanenko Vector processor architecture and methods performed therein
JP4841861B2 (ja) * 2005-05-06 2011-12-21 ルネサスエレクトロニクス株式会社 演算処理装置及びデータ転送処理の実行方法
US8904151B2 (en) * 2006-05-02 2014-12-02 International Business Machines Corporation Method and apparatus for the dynamic identification and merging of instructions for execution on a wide datapath
US8219786B1 (en) * 2007-03-20 2012-07-10 Nvidia Corporation Request coalescing for instruction streams
CN100507885C (zh) * 2007-09-04 2009-07-01 北京中星微电子有限公司 存储器访问的仲裁方法、系统和设备
US8756374B2 (en) * 2010-11-05 2014-06-17 Oracle International Corporation Store queue supporting ordered and unordered stores
US9292291B2 (en) * 2012-03-28 2016-03-22 International Business Machines Corporation Instruction merging optimization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2292581C2 (ru) * 2001-12-20 2007-01-27 Интел Корпорейшн Команды загрузки/перемещения и копирования для процессора

Also Published As

Publication number Publication date
US20140258667A1 (en) 2014-09-11
DE102014002840A1 (de) 2014-09-11
GB2512472B (en) 2015-09-30
RU2014108851A (ru) 2015-09-20
CN104035895B (zh) 2018-01-02
GB201402832D0 (en) 2014-04-02
CN104035895A (zh) 2014-09-10
GB2512472A (en) 2014-10-01

Similar Documents

Publication Publication Date Title
RU2583744C2 (ru) Устройство и способ связывания операций в памяти
TWI599949B (zh) 實施動態無序處理器管線的方法與設備
US10768930B2 (en) Processor supporting arithmetic instructions with branch on overflow and methods
CN107918546B (zh) 利用经掩码的全寄存器访问实现部分寄存器访问的处理器、方法和系统
US20190042269A1 (en) Apparatus and method for gang invariant operation optimizations
KR101772299B1 (ko) 스트라이딩된 액세스 패턴을 가진 벡터 레지스터에서 성분들을 축소하기 위한 명령어
US10379861B2 (en) Decoding instructions that are modified by one or more other instructions
KR20150038408A (ko) 가속된 레인 간 벡터 감축 명령어들
KR101966713B1 (ko) 마스크 레지스터에서의 비트들을 반전 및 치환하기 위한 장치 및 방법
TW201403472A (zh) 最佳化暫存器初始化操作
JP2018500657A5 (ru)
US10915328B2 (en) Apparatus and method for a high throughput parallel co-processor and interconnect with low offload latency
JP5941488B2 (ja) 条件付きショート前方分岐の計算的に等価な述語付き命令への変換
US10831505B2 (en) Architecture and method for data parallel single program multiple data (SPMD) execution
CN115686633A (zh) 用于实现链式区块操作的系统和方法
TW201741867A (zh) 記憶體複製指令、處理器、方法及系統
KR20130064797A (ko) 범용 논리 연산 방법 및 장치
KR101016257B1 (ko) 프로세서 및 정보 처리 장치
US10579378B2 (en) Instructions for manipulating a multi-bit predicate register for predicating instruction sequences
US9880839B2 (en) Instruction that performs a scatter write
KR20170001578A (ko) 상태 의존 계산들의 성능을 개선하기 위한 시스템들, 방법들, 및 장치들
CN109416635B (zh) 针对使用多个架构寄存器的指令的架构寄存器替换
Bansal Reduced Instruction Set Computer (RISC): A Survey
Capella et al. A multiple-ISA reconfigurable architecture
US20210200551A1 (en) Apparatus and method for speculative execution information flow tracking

Legal Events

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

Effective date: 20200307