RU2583744C2 - Устройство и способ связывания операций в памяти - Google Patents
Устройство и способ связывания операций в памяти Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title description 12
- 230000000694 effects Effects 0.000 abstract description 2
- 238000011156 evaluation Methods 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 239000000872 buffer Substances 0.000 description 6
- 238000012545 processing Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1039—Read-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
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/30181—Instruction operation extension or modification
-
- 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/3867—Concurrent 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, при этом критерии связывания операций в памяти определяют выровненный адрес после связывания.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2292581C2 (ru) * | 2001-12-20 | 2007-01-27 | Интел Корпорейшн | Команды загрузки/перемещения и копирования для процессора |
Family Cites Families (15)
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 |
-
2013
- 2013-03-07 US US13/789,394 patent/US20140258667A1/en not_active Abandoned
-
2014
- 2014-02-18 GB GB1402832.8A patent/GB2512472B/en not_active Expired - Fee Related
- 2014-02-25 DE DE102014002840.2A patent/DE102014002840A1/de not_active Withdrawn
- 2014-03-06 RU RU2014108851/08A patent/RU2583744C2/ru not_active IP Right Cessation
- 2014-03-07 CN CN201410082072.5A patent/CN104035895B/zh not_active Expired - Fee Related
Patent Citations (1)
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 |