RU2292581C2 - Команды загрузки/перемещения и копирования для процессора - Google Patents
Команды загрузки/перемещения и копирования для процессора Download PDFInfo
- Publication number
- RU2292581C2 RU2292581C2 RU2004122101/09A RU2004122101A RU2292581C2 RU 2292581 C2 RU2292581 C2 RU 2292581C2 RU 2004122101/09 A RU2004122101/09 A RU 2004122101/09A RU 2004122101 A RU2004122101 A RU 2004122101A RU 2292581 C2 RU2292581 C2 RU 2292581C2
- Authority
- RU
- Russia
- Prior art keywords
- bits
- source
- register
- destination register
- groups
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 12
- 210000000352 storage cell Anatomy 0.000 claims abstract 12
- 210000004027 cell Anatomy 0.000 claims 7
- 230000004044 response Effects 0.000 claims 3
- 239000000126 substance Substances 0.000 abstract 1
- 230000007704 transition Effects 0.000 description 9
- 101100285899 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SSE2 gene Proteins 0.000 description 7
- 238000007781 pre-processing Methods 0.000 description 7
- 239000000872 buffer Substances 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
Изобретение относится к вычислительной технике. Техническим результатом является обеспечение возможности использования единой команды перемещения/загрузки, которая обеспечивает загрузку и последующее копирование совокупности битов операнда источника в регистр назначения. Процессор содержит первое логическое средство для сохранения совокупности групп бит в несмежные группы ячеек хранения и второе логическое средство для сохранения копии совокупности несмежных групп битов. Согласно способу сохраняют совокупность групп битов в совокупность несмежных групп ячеек хранения и копируют совокупность несмежных групп битов в остальные группы ячеек хранения битов. Система содержит память и процессор для сохранения первой группы битов в первой и второй группах ячеек хранения и сохранения второй группы битов в третьей и четвертой группах ячеек хранения. Устройство содержит модуль исполнения для сохранения битов [31-0] в положениях [31-0] и [62-32], битов [95-64] в положениях [95-64] и [127-96] битов регистра назначения. 4 н. и 16 з.п. ф-лы, 5 ил.
Description
Область техники, к которой относится изобретение
Настоящее изобретение относится к командам загрузки/перемещения и копирования для процессора.
Предшествующий уровень техники
В системной архитектуре предусмотрены режимы работы процессора и механизмы, предназначенные для поддержки операционной системы, и она включает системно-ориентированные регистры и структуры данных, а также системно-ориентированные команды. Системная архитектура также предоставляет механизмы, необходимые для переключения между режимами реальной адресации и защищенными режимами.
Введение в системную архитектуру технологии одного потока команд и множества потоков данных (SIMD) обеспечивает возможность проведения параллельных вычислений в отношении упакованных целочисленных данных, содержащихся в 64-битовых регистрах. SIMD обеспечивает повышение производительности процессора, например, в усовершенствованной среде обработки информации, в прикладных программах, предназначенных для обработки изображений и сжатия данных.
Перечень фигур чертежей
Фиг.1 - блок-схема процессора.
Фиг.2 - блок-схема среды выполнения.
Фиг.3 - схема порядка расположения байтов в данных фундаментального типа.
Фиг.4 - формат данных с плавающей запятой.
Фиг.5 - таблица, в которой сведены различные расширения SIMD, типы данных и то, каким образом типы данных упакованы в регистры.
Подробное описание изобретения
На фиг.1 показан процессор 10. Процессор 10 представляет собой процессор тройной суперскалярной конвейерной архитектуры. Благодаря использованию технологий параллельной обработки данных процессор 10 обычно позволяет декодировать, осуществлять диспетчеризацию и завершать выполнение (пересылать результаты в регистры) трех команд за цикл тактовой частоты. Для обеспечения возможности обработки команд с такой пропускной способностью в процессоре 10 используют несвязанный, двенадцатиэтапный конвейер, который обеспечивает выполнение команд с изменением их очередности. Микроархитектура конвейера процессора 10 разделена на четыре секции, то есть кэш 12 первого уровня и кэш 14 второго уровня, процессор 16 предварительной обработки, ядро 18 выполнения команд с изменением их очередности и секцию 20 пересылки результатов в регистры. Команды и данные поступают на эти блоки через блок 22 интерфейса шины, который обеспечивает сопряжение с системной шиной 24. Процессор 16 предварительной обработки передает команды в порядке, заданном программой, в ядро 18 выполнения команд с изменением их очередности, которое имеет очень большую пропускную способность исполнения и позволяет выполнять основные операции с целыми числами с задержкой, равной половине цикла такта частоты. Процессор 16 предварительной обработки производит выборку команд и выполняет их декодирование в простые операции, называемые микрооперациями (μ-ops). Процессор 16 предварительной обработки позволяет генерировать множество микроопераций в течение цикла в исходном порядке следования, заданном программой, подавая их в ядро 18 выполнения команд с изменением их очередности. Процессор 16 предварительной обработки выполняет несколько основных функций. Например, процессор 16 предварительной обработки выполняет команды упреждающей выборки, для которых существует вероятность выполнения, команды выборки, для которых еще не была проведена упреждающая выборка, команды декодирования в микрооперации, генерирует микрокод для комплексных команд и код специального назначения, передает декодированные команды из кэша 26 трассирования выполнения и выполняет прогнозирование переходов с использованием современных алгоритмов в блоке 28 прогнозирования переходов.
Процессор 16 предварительной обработки из состава процессора 10 разработан для решения некоторых общих проблем в высокоскоростных микропроцессорах с конвейерной обработкой. Две из этих проблем, например, составляют основной источник задержек. К этим источникам относятся время, требуемое для декодирования команд, выбранных из адреса перехода, и неэффективное использование пропускной способности декодирования из-за расположения перехода или адреса перехода в середине строки кэша.
Кэш 26 трассировки выполнения позволяет решить обе эти проблемы путем сохранения декодированных команд. Средство преобразования (не показано) производит выборку и декодирование команд, которые встраиваются в последовательности микроопераций, называемые трассами. Эти трассы микроопераций записывают в кэш 26 трассирования. Команды наиболее вероятного адреса перехода немедленно следуют по этому переходу, безотносительно непрерывности адресов команд. После того как трасса будет построена, в кэше 26 трассирования выполняют поиск команды, которая следует по этой трассе. Если этой командой оказывается первая команда в существующей трассе, то выборку и декодирование команд 30 из иерархии памяти прекращают и кэш 26 трассирования становится новым источником команд.
Кэш 18 трассирования выполнения и средство преобразования (не показано) содержат взаимодействующее с ними аппаратное средство прогнозирования переходов. При этом адреса переходов прогнозируют на основе их линейных адресов с использованием буферов 28 адресов перехода (BTB) и их выборку выполняют при первой возможности. Выборку адресов перехода выполняют из кэша 26 трассирования, если они действительно содержатся в нем; в противном случае, их выборку выполняют из иерархии памяти. Информацию прогнозирования перехода, соответствующую средству преобразования, используют для формирования трасс вместе с наиболее вероятными путями.
Ядро 18 выполняет команды с изменением их очередности, что позволяет процессору 10 изменять порядок следования команд так, что если одна микрооперация будет задержана на время ожидания данных или из-за конкуренции с исполнительным ресурсом, выполнение других микроопераций, которые в соответствии с порядком выполнения программы следуют после нее, может быть продолжено в обход этой микрооперации. В процессоре 10 используется несколько буферов, предназначенных для сглаживания потоков T-операций (T-ops). Это подразумевает, что когда в одной части конвейера происходит задержка, эта задержка может быть компенсирована параллельным выполнением других операций или выполнением микроопераций, которые ранее были поставлены в очередь в буфере.
Ядро 18 разработано так, что оно обеспечивает параллельное выполнение операций. Ядро 18 позволяет передавать до шести микроопераций за цикл; следует отметить, что это превышает возможности кэша 26 трассирования и требования в отношении обеспечения пропускной способности для 20 микроопераций. Большинство конвейеров могут начинать выполнение новой микрооперации в каждом цикле так, что для каждого конвейера в любое время обеспечивается возможность обработки нескольких команд. В течение цикла могут начинаться две команды арифметико-логического устройства (АЛУ, ALU), и многие команды, связанные с вычислениями с плавающей запятой, могут начинаться через каждые два цикла. Наконец, выполнение микроопераций может начинаться в произвольном порядке, как только для них будут готовы входные данные и будут доступны соответствующие ресурсы.
Секция 20 пересылки результатов в регистры принимает результаты выполненных микроопераций из ядра 18 выполнения и обрабатывает эти результаты так, что требуемое состояние архитектуры обновляется в соответствии с исходным порядком выполнения программы. Для семантически правильного выполнения операций результаты выполнения команд передают в исходном порядке программы перед отправкой результатов в регистры. При этом при пересылке результатов в регистры команд могут возникнуть исключения. Таким образом, исключения не могут возникать произвольно. Они возникают в правильном порядке, и процессор 10 может правильно возобновить свою работу после их выполнения.
Когда микрооперация заканчивается и ее результат записан в место назначения, выполняют пересылку ее результатов в регистры. За один цикл может быть выполнена пересылка в регистры результатов до трех микроопераций. Буфер переупорядочения (ROB) (не показан) в секции 20 пересылки результатов в регистры представляет собой блок в процессоре 10, который выполняет буферизацию завершенных микроопераций, обновляет состояние архитектуры в требуемом порядке и управляет упорядочением исключений.
Секция 20 пересылки результатов в регистры также поддерживает трассирование переходов и отправляет обновленную информацию об адресе перехода в BTB 28 для обновления хронологии переходов. Таким образом, ненужные больше трассы могут быть удалены из кэша 26 трассирования и может быть выполнена выборка новых путей переходов на основе обновленной информации хронологии переходов.
На фиг.2 показана среда 50 выполнения. Для любой программы или задачи, выполняемой в процессоре 10 (по фиг.1), выделяют набор ресурсов для выполняемых команд и для сохранения кода, данных и информации о состоянии. Эти ресурсы составляют среду 50 выполнения для процессора 10. Прикладные программы и операционная система или исполняемые программы, выполняемые в процессоре 10, совместно используют среду 50 выполнения. Среда 50 выполнения включает в себя базовые регистры 52 выполнения программы, пространство 54 адресов, регистры 56 блока для выполнения операций с плавающей запятой (FPU), регистры 58 мультимедийного расширения (MMX) и регистры 60 расширения SIMD (SSE (расширение SIMD для обработки потоков данных) и SSE2).
Любое задание или программа, выполняемая в процессоре 10, может обращаться к базе 54 линейных адресов, имеющей объем до четырех гигабайт (232 байт), и пространству физических адресов, имеющему объем до 64 гигабайт (236 байт). Пространство 54 адресов может быть построено со сплошной адресацией или сегментированным. Благодаря использованию механизма расширения физических адресов можно осуществлять адресацию в пространстве физических адресов 236-1.
Базовые регистры 52 выполнения программы включают в себя восемь регистров 62 общего назначения, шесть сегментных регистров 64, регистр 66 EFLAGS и регистр 68 EIP (указатель команды). Базовые регистры 52 выполнения программы образуют базовую среду выполнения, в которой выполняется набор команд общего назначения. Эти команды обеспечивают выполнение основных арифметических действий с целыми числами длиной байт, слово и слово двойной длины, выполняют управление потоком данных программы, оперируют численностью битов и байтов и выполняют адресацию памяти.
Регистры 56 FPU включают в себя восемь регистров 70 данных FPU, регистр 72 управления FPU, регистр 74 статуса, регистр 76 указателя команды FPU, регистр 78 указателя операнда данных FPU, регистр 80 дескриптора FPU и регистр 82 кода операции FPU. Регистры 56 FPU образуют среду выполнения для работы с величинами с плавающей запятой одинарной точности, двойной точности и расширенной двойной точности, с целыми числами, состоящими из одного слова, двойного слова и учетверенного слова, и двоично-десятичными числами (BCD).
Восемь регистров 58 мультимедийного расширения поддерживают выполнение одиночных команд, операций с множеством потоков данных (SIMD) над 64-битными упакованными целыми числами размером один байт, одно слово и одно двойное слово.
Регистры 60 расширения SIMD (SSE и SSE2) включают в себя восемь регистров 84 расширенных мультимедийных данных (XMM) и регистр 86 MXCSR. Регистры 60 расширения SIMD (SSE и SSE2) поддерживают выполнение операций SIMD над 128-битовыми упакованными значениями с плавающей запятой одинарной точности и двойной точности и над 128-битовыми упакованными целыми числами размером один байт, одно слово, одно двойное слово и одно учетверенное слово.
Стек (не показан) поддерживает вызовы процедур или подпрограмм и передачу параметров между процедурами или подпрограммами.
Регистры 62 общего назначения доступны для записи операндов и указателей. Сегментные регистры 64 содержат до шести селекторов сегмента. Регистры 66 EFLAGS (статус программы и управления) представляют информацию о статусе выполняемой программы и позволяют выполнять ограниченное (на уровне программного приложения) управление процессором. Регистр 68 EIP (указателя команды) содержит 32-битный указатель на следующую выполняемую команду.
32-битовые регистры 62 общего назначения предназначены для записи операндов, необходимых для выполнения логических и арифметических операций, операндов для вычислений адреса и указателей памяти. Сегментные регистры 64 содержат 16-битовые селекторы сегментов. Селектор сегмента представляет собой специальный указатель, который идентифицирует сегмент в памяти. Для осуществления доступа к конкретному сегменту в памяти селектор сегмента для этого сегмента должен присутствовать в соответствующем сегментном регистре 64.
При написании кода приложения программисты обычно получают селекторы сегментов с помощью директив и символов ассемблера. Ассемблер и другие инструментальные средства затем генерируют действительные значения селектора сегмента, связанные с этими директивами и символами. При написании системного кода программистам может понадобиться непосредственно генерировать селекторы сегментов.
Способ использования сегментных регистров 64 зависит от типа модели управления памятью, которую использует операционная система или исполняемая программа. При использовании модели памяти со сплошной (несегментированной) адресацией в сегментные регистры 64 загружают селекторы сегментов, которые указывают на перекрывающиеся сегменты, каждый из которых начинается с нулевого адреса линейного пространства линейных адресов. Эти перекрывающиеся сегменты, кроме того, включают пространство линейных адресов для программы. Обычно определены два перекрывающихся сегмента: один для кода и другой для данных и стеков. Сегментный регистр CS (не показан) сегментных регистров 64 указывает на сегмент кода, и все другие сегментные регистры указывают на сегмент данных и сегмент стека.
При использовании модели сегментированной памяти в каждый сегментный регистр 64 обычно загружают различные селекторы сегментов так, что каждый сегментный регистр 64 указывает на отличающийся сегмент в пределах пространства линейных адресов. В любой момент времени при этом для программы обеспечивается доступ до шести сегментов в пространстве линейных адресов. Для осуществления доступа к сегменту, на который не указывает ни один из сегментных регистров 64, программа вначале загружает селектор сегмента, к которому осуществляется доступ, в сегментный регистр 64.
32-битовый регистр 66 EFLAGS содержит группу флагов статуса, флаг управления и группу системных флагов. Некоторые из флагов в регистре 66 EFLAGS могут быть непосредственно изменены при использовании команд специального назначения. Эти команды не позволяют непосредственно проверять или модифицировать весь регистр 66. Однако нижеследующие команды можно использовать для перемещения группы флагов в процедурные стеки или в регистр общего назначения и из них: LAHF, SAHF, push-F, push-FD, pop-F и pop-FD. После того, как содержимое регистра 66 EFLAGS будет передано в процедурный стек или регистр общего назначения, флаги могут быть проверены и модифицированы с использованием команд процессора 10, предназначенных для манипуляции битами.
При приостановке выполнения задания процессор 10 автоматически сохраняет состояние регистра 66 EFLAGS в сегменте (TSS) (не показан) для задания, выполнение которого было приостановлено. В начале выполнения нового задания процессор 10 загружает в регистр 66 EFLAGS данные из регистра (PSS) (не показан) состояния программы нового задания.
Когда выполняют вызов процедур прерывания или обработки исключений, процессор 10 автоматически сохраняет состояние регистра 66 EFLAGS в процедурном стеке.
Когда прерывание или исключение обрабатывают с использованием переключателя заданий, состояние регистра 66 EFLAGS сохраняется в TSS для задания, выполнение которого было приостановлено.
Фундаментальными типами данных, используемыми в процессоре 10, являются байт, слово, двойное слово, учетверенное слово и двойное учетверенное слово. Байт содержит восемь битов, слово состоит из двух байтов (16 битов), двойное слово состоит из четырех байтов (32 битов), учетверенное слово состоит из восьми байтов (64 битов) и двойное учетверенное слово состоит из шестнадцати байтов (128 битов).
На фиг.3 показан порядок байтов для каждого из фундаментальных типов данных, когда они представляют собой операнды в памяти. Младший байт (биты 0-7) каждого типа данных занимает самый младший адрес в памяти, и этот адрес также представляют собой адрес операнда.
Слова, двойные слова и учетверенные слова не требуется размещать в памяти с совмещением по естественным границам. Естественные границы для слов, двойных слов и учетверенных слов представляют собой адреса с четными номерами, адреса, делящиеся без остатка на 4, и адреса, делящиеся без остатка на 8, соответственно. Однако для повышения эффективности выполнения программ всегда, когда это возможно, структуры данных (в особенности стеки) должны быть размещены с совмещением по естественным границам. Причина этого состоит в том, что для выполнения доступа к данным, размещенным в памяти без совмещения, процессор 10 должен выполнять два доступа к памяти, в то время как для выполнения доступа к данным, размещенным в памяти с совмещением, требуется выполнять один доступ. Операнд размером одно слово или двойное слово, который пересекает границу 4 байтов, или операнд размером четыре слова, который пересекает границу 8 байтов, считается несовмещенным и доступ к нему требуется выполнять за два отдельных цикла тактовой частоты шины памяти. Слово, которое начинается с нечетного адреса, но не пересекает границу слова, считается совмещенным и доступ к нему может быть обеспечен за один цикл тактовой частоты шины.
Для выполнения некоторых команд, которые оперируют двойными учетверенными словами, требуется обеспечить совмещение операндов в памяти по естественным границам. Эти команды генерируют общее исключение защиты (#GP), если задан несовмещенный операнд. Естественная граница для двойного учетверенного слова представляет собой любой адрес, делящийся без остатка на 16. Другие команды, оперирующие двойными учетверенными словами, позволяют выполнять доступ в случае отсутствия совмещения без генерирования общего исключения защиты, однако при этом требуются дополнительные циклы тактовой частоты шины памяти для обеспечения доступа к данным, размещенным без совмещения в памяти.
Хотя байты, слова и двойные слова представляют собой данные фундаментальных типов процессора 10, некоторые команды поддерживают дополнительную интерпретацию этих типов данных, для обеспечения возможности выполнения операций с числовыми типами данных. Например, для процессора 10 определены два типа целых чисел: числа без знака и со знаком. Целые числа без знака представляют собой обычные двоичные значения в диапазоне от нуля до максимального положительного числа, которое может быть закодировано в выбранном размере операнда. Целые числа со знаком представляют собой двоичные значения, представляющие поразрядное дополнение до двух, которые можно использовать для представления как положительных, так и отрицательных целочисленных значений.
Для процессора 10 определены три типа данных с плавающей запятой, которыми он оперирует: число с плавающей запятой однократной точности, число с плавающей запятой двойной точности и число с плавающей запятой с расширенной двойной точностью. Форматы данных этих типов непосредственно соответствуют формату, определенному стандартом IEEE 754 для двоичной арифметики с плавающей запятой.
Указатели представляют собой адреса ячеек памяти. Для процессора 10 определены два типа указателей: ближний указатель (32-битовый) и дальний указатель (48-битовый). Ближний указатель представляет собой 32-битовое смещение (также называемое эффективным адресом) в пределах сегмента. Ближние указатели используют для всех ссылок в памяти для модели памяти со сплошной адресацией или для ссылок для модели с сегментированной адресацией, когда подразумевается уникальность сегмента, к которому осуществляют доступ. Дальний указатель представляет собой 48-битовый логический адрес, состоящий из 16-битового селектора сегмента и 32-битового смещения. Дальние указатели используют для ссылок в памяти и для модели памяти с сегментированной адресацией, где уникальность сегмента, доступ к которому производится, должна быть указана явным образом.
Поле битов представляет собой непрерывную последовательность битов. Оно может начинаться в любом положении бита любого байта в памяти и может содержать до 32 битов. Строки представляют собой непрерывные последовательности битов, байтов, слов или двойных слов. Строка битов может начинаться в любом положении бита любого байта и может содержать до 232-1 битов. Строка байтов может содержать байты, слова или двойные слова и может содержать от нуля до 232-1 байтов (четыре гигабайта).
Двоично-десятичные целые числа (целые BCD числа) представляют собой четырехбитовые целые числа без знака с разрешенными значениями в диапазоне от 0 до 9. Для процессора 10 определены операции над целыми BCD числами, размещенными в одном или нескольких регистрах 62 общего назначения или в одном или нескольких регистрах 56 FPU.
Как показано на фиг.4, вещественные числа представлены в формате 100 с плавающей запятой в регистрах 70 с плавающей запятой FPU 56. Формат с плавающей запятой содержит три части, а именно знак 102, значащую часть 104 числа и экспоненту 106. Знак 102 представляет собой двоичное значение, которое показывает, является ли число положительным (0) или отрицательным (1). Значащая часть 104 числа содержит две части: 1-битовое двоичное целое число 108 (также называемое J-битом) и двоичную дробь 110. Целочисленный бит 108 часто не представлен и вместо него используется подразумеваемое значение. Экспонента 106 представляет собой двоичное целое число, которое представляет степень основания 2, на которое следует умножать значимую часть 104 числа.
Для процессора 10 определен набор 64-битных и 128-битных типов упакованных данных, которыми он оперирует, предназначенный для использования в операциях SIMD. Эти типы данных включают в себя фундаментальные типы данных (упакованные байты, слова, двойные слова и учетверенные слова) и числовые интерпретации фундаментальных типов данных для использования в операциях с упакованными целыми числами и упакованными числами с плавающей запятой.
64-битовыми типами данных SIMD оперируют, прежде всего, в 64-битовых регистрах 58 мультимедийного расширения. Фундаментальные 64-битовые типы упакованных данных представляют собой упакованные байты, упакованные слова и упакованные двойные слова. При выполнении цифровых операций SIMD над этими типами данных в регистрах 58 мультимедийного расширения данные этих типов интерпретируют как содержащие целочисленные значения размером байт слово или двойное слово.
128-битовые типы упакованных данных SIMD используются, прежде всего, в 128-битовых регистрах 84 расширенных мультимедийных данных (XMM) и в памяти 54. Фундаментальные 128-битовые упакованные типы данных представляют собой упакованные байты, упакованные слова, упакованные двойные слова и упакованные слова учетверенной длины. При выполнении операций SIMD над этими фундаментальными типами данных в регистрах 84 расширенных мультимедийных данных (XMM) эти типы данных интерпретируют как содержащие упакованные или скалярные величины с плавающей запятой с однократной точностью или с плавающей запятой с двойной точностью, или как содержащие упакованные целые значения размером байт слово, двойное слово или слово учетверенной длины.
На фиг.5 показана таблица 120, представляющая краткое содержание различных расширений SIMD, типов данных, над которыми выполняются операции, и каким образом эти типы данных упакованы в регистры 58 мультимедийного расширения и регистры 84 расширенных мультимедийных данных (XMM).
Как описано выше, команды мультимедийного расширения оперируют упакованными целочисленными операндами размером байт, слово, двойное слово или слово учетверенной длины, содержащимися в памяти 54, в регистрах 58 мультимедийного расширения и/или в регистрах 62 общего назначения. Команды мультимедийного расширения включают в себя команды передачи данных, команды преобразования, упакованные арифметические команды, команды сравнения, логические команды, команды сдвига и циклического сдвига и команды управления состоянием.
Команды расширения SIMD (SSE и SSE2) разделяют на несколько групп, например на четыре группы: команды SIMD однократной точности с плавающей запятой, которые оперируют с регистрами 84 расширенных мультимедийных данных (XMM), команды MXSCR, которые работают с регистром 86 MXCSR, 64-битовые целочисленные команды SIMD, которые работают с регистрами 58 MXX, и команды управления занесением данных в кэш, упреждающей выборки и команды определения порядка команд.
Один из классов команд представляет команды типа перемещения/загрузки и копирования. Эти команды называются "комбинированными" командами, поскольку они устраняют необходимость выполнения явно заданной операции над загруженным значением для получения, например, копии битов. Данная архитектура включает в себя команду MOVDDUP, команду MOVSHDUP и команду MOVSLDUP. Эти команды поддерживают выполнение сложных арифметических действий с типами упакованных данных с плавающей запятой с однократной и двойной точностью. Эти команды можно использовать для различных целей. Например, эти команды позволяют повысить эффективность работы прикладных программ обработки сигналов, которые обеспечивают обработку естественных типов данных.
Команда MOVDDUP представляет собой команду SSE2, по которой выполняется перемещение и копирование одного числа с плавающей запятой двойной точности, которая загружает/перемещает 64-бита (биты [63-0], если источник представляет собой регистр). Выполнение команды MOVDDUP возвращает одни и те же 64 бита, как в нижнюю, так и в верхнюю половины одного и того же регистра результата, то есть копирует 64 бита источника. Таким образом, если источник содержит компоненты 1/0, то адресат информации будет содержать 1/0/1/0. Команда MOVEDDUP имеет следующий формат:
MOVEDDUP назначение, источник
где операндом источника является ячейка 54 памяти или второй регистр 84 расширенных мультимедийных данных (XMM), и операндом назначения является первый регистр 84 расширенных мультимедийных данных (XMM). Источник содержит данные типа числа с плавающей запятой двойной точности.
При выполнении работы, если операндом источника является адрес в памяти, то биты [63-0] первого регистра расширенных мультимедийных данных (XMM) загружают битами [63-0], соответствующими этому адресу в памяти, а биты [127-64] первого регистра расширенных мультимедийных данных (XMM) загружают битами [63-0] ячейки памяти. Если операнд источника находится во втором регистре расширенных мультимедийных данных (XMM), то биты [63-0] первого регистра расширенных мультимедийных данных (XMM) устанавливают равными битам [63-0] второго регистра расширенных мультимедийных данных (XMM) и биты [127-64] первого регистра расширенных мультимедийных данных (XMM) устанавливают равными битам [63-0] второго регистра расширенных мультимедийных данных (XMM).
Линейный адрес соответствует адресу младшего значимого байта данных в памяти, к которым обращаются. Когда указан адрес в памяти, то загружают или записывают 16 байтов данных в соответствующую ячейку памяти. Когда используют операцию в форме регистр-регистр, то содержимое 128-битового регистра источника копируют в 128-битовый регистр назначения.
Команда MOVSHDUP представляет собой команду SSE2, по которой выполняется перемещение и копирование старшей значимой части упакованного числа с плавающей запятой однократной точности, которая загружает/перемещает 128 битов и копирует компоненты 1 и 3 в регистр результата. В примере регистра источника шириной 128-битов каждый компонент составляет 32 бита. В частности, когда источник содержит компоненты 3/2/1/0 (0 представляет младший значимый компонент с однократной точностью и 3 представляет старший значимый компонент с однократной точностью), в регистр результата после выполнения команды MOVSHDUP будут записаны дублированные компоненты 3 и 1 для получения компонентов 3/3/1/1. Команда MOVSHDUP имеет следующий формат:
MOVSHDUP назначение, источник
где операндом источника является ячейка 54 памяти или второй регистр 84 расширенных мультимедийных данных (XMM), и операндом назначения является первый регистр 84 расширенных мультимедийных данных (XMM). Операнд источника содержит данные типа упакованного числа с плавающей запятой однократной точности.
При выполнении работы, если операндом источника является адресом в памяти, то биты [31-0] первого регистра расширенных мультимедийных данных (XMM) загружают битами [63-32], соответствующими этому адресу в памяти, биты 63-32 первого регистра расширенных мультимедийных данных (XMM) загружают битами [63-32], соответствующими этому адресу в памяти, биты [95-64] первого регистра расширенных мультимедийных данных (XMM) загружают битами [127-96], соответствующими этому адресу в памяти и биты [127-96] первого регистра расширенных мультимедийных данных (XMM) загружают битами [127-96], соответствующими этому адресу в памяти.
Если операндом является второй регистр расширенных мультимедийных данных (XMM), то биты [31-0] первого регистра расширенных мультимедийных данных (XMM) устанавливают равными битам [63-32] второго регистра расширенных мультимедийных данных (XMM), биты [63-32] первого регистра расширенных мультимедийных данных (XMM) устанавливают равными битам [83-32] второго регистра расширенных мультимедийных данных (XMM), биты [95-64] первого регистра расширенных мультимедийных данных (XMM) устанавливают равными битам [127-96] второго регистра расширенных мультимедийных данных (XMM) и биты [127-96] первого регистра расширенных мультимедийных данных (XMM) устанавливают равными битам [127-96] второго регистра расширенных мультимедийных данных (XMM).
Линейный адрес соответствует адресу младшего значимого байта данных в памяти, к которым обращаются. Когда указан адрес в памяти, загружают или записывают 16 байтов данных в соответствующую ячейку памяти. Когда используют операцию в форме регистр-регистр, содержимое 128-битового регистра источника копируют в 128-битовый регистр назначения.
Команда MOVSLDUP представляет собой команду SSE2, по которой выполняется перемещение и копирование младшей значимой части упакованного числа с плавающей запятой однократной точности, которая загружает/перемещает 128 битов и копирует компоненты 0 и 2. В частности, когда источник содержит компоненты 3/2/1/0 (0 представляет младший значимый компонент с однократной точностью), в регистр результата будут записаны компоненты 2/2/0/0. Команда MOVSLDUP имеет следующий формат:
MOVSLDUP назначение, источник
где операндом источника является ячейка 54 памяти или второй регистр 84 расширенных мультимедийных данных (XMM), и операндом назначения является первый регистр 84 расширенных мультимедийных данных (XMM). Операнд источника содержит данные типа упакованного числа с плавающей запятой однократной точности.
При выполнении работы, если операндом источника является адрес в памяти, то биты [31-0] первого регистра расширенных мультимедийных данных (XMM) загружают битами [31-0], соответствующими этому адресу в памяти, биты [63-32] первого регистра расширенных мультимедийных данных (XMM) загружают битами [31-0], соответствующими этому адресу в памяти, биты [95-64] первого регистра расширенных мультимедийных данных (XMM) загружают битами [95-64], соответствующими этому адресу в памяти, и биты [127-96] первого регистра расширенных мультимедийных данных (XMM) загружают битами [95-64], соответствующими этому адресу в памяти. Если операндом источника является регистр, то биты [31-0] первого регистра расширенных мультимедийных данных (XMM) устанавливают равными битам [31-0] второго регистра расширенных мультимедийных данных (XMM), биты [63-32] первого регистра расширенных мультимедийных данных (XMM) устанавливают равными битам [31-0] второго регистра расширенных мультимедийных данных (XMM), биты [95-64] первого регистра расширенных мультимедийных данных (XMM) устанавливают равными битам [95-64] второго регистра расширенных мультимедийных данных (ХММ) и биты [127-96] первого регистра расширенных мультимедийных данных (ХММ) устанавливают равными битам [95-64] второго регистра расширенных мультимедийных данных (ХММ).
Линейный адрес соответствует адресу младшего значимого байта данных в памяти, к которым обращаются. Когда указан адрес в памяти, загружают или записывают 16 байтов данных в соответствующую ячейку памяти. Когда используют операцию в форме регистр-регистр, содержимое 128-битового регистра источника копируют в 128-битовый регистр назначения.
Таким образом, из вышеизложенного следует, что настоящее изобретение предоставляет возможность использовать единую команду перемещения/загрузки, которая обеспечивает загрузку и последующее копирование совокупности битов операнда источника в регистр назначения.
Соответственно, другие варианты выполнения находятся в пределах объема, определяемого следующей формулой изобретения.
Claims (20)
1. Процессор, предназначенный для загрузки и копирования битов источника и содержащий
первое логическое средство для сохранения совокупности групп битов из источника в совокупность несмежных групп ячеек хранения битов регистра назначения в качестве реакции на выполнение первой команды,
второе логическое средство для сохранения копии упомянутой совокупности несмежных групп битов в регистре назначения в остальные группы ячеек хранения битов регистра назначения в качестве реакции на выполнение первой команды.
2. Процессор по п.1, в котором упомянутая совокупность групп битов источника представляет данные типа числа с плавающей запятой двойной точности.
3. Процессор по п.1, в котором регистром назначения является регистр расширенных мультимедийных данных (ХММ).
4. Процессор по п.1, в котором группы битов из источника содержат 64 бита.
5. Способ загрузки и копирования битов источника, содержащий этапы, на которых
сохраняют совокупность групп битов из источника в совокупность несмежных групп ячеек хранения битов регистра назначения и
копируют упомянутую совокупность несмежных групп битов в регистре назначения в остальные группы ячеек хранения битов в регистре назначения.
6. Способ по п.5, в котором упомянутая совокупность групп битов источника представляет данные типа числа с плавающей запятой двойной точности, подлежащие сохранению в ячейке памяти.
7. Способ по п.5, в котором регистром назначения является регистр расширенных мультимедийных данных (ХММ).
8. Способ по п.5, в котором группы битов источника хранятся в регистре-источнике, содержащем 64 бита.
9. Система для загрузки и дублирования битов источника, содержащая
память для хранения первой команды и
процессор для осуществления выборки первой команды из памяти и сохранения первой группы битов источника в первой и второй группах ячеек хранения битов регистра назначения и сохранения второй группы битов источника в третьей и четвертой группах ячеек хранения битов регистра назначения в качестве реакции на выполнение процессором первой команды, причем первая группа ячеек хранения битов и третья группа ячеек хранения битов регистра назначения являются несмежными.
10. Система по п.9, в которой источник содержит 128 битов, при этом первая группа битов источника включает в себя биты [63-32] источника, а вторая группа битов источника содержит биты [127-96] источника.
11. Система по п.10, в которой первая группа ячеек хранения битов регистра назначения включает в себя положения [31-0] битов регистра назначения, вторая группа ячеек хранения битов регистра назначения включает в себя положения [63-32] битов регистра назначения, третья группа ячеек хранения битов регистра назначения включает в себя положения [95-64] битов регистра назначения и четвертая группа ячеек хранения битов регистра назначения включает в себя положения [127-96] битов регистра назначения.
12. Система по п.11, в которой источник представляет данные типа упакованного числа с плавающей запятой одинарной точности.
13. Система по п.10, в которой источником является 128-битовый регистр-источник.
14. Система по п.9, в которой регистром назначения является регистр расширенных мультимедийных данных (ХММ).
15. Устройство, предназначенное для загрузки и копирования битов источника и содержащее модуль исполнения для выполнения первой команды с целью сохранения битов [31-0] источника в положениях [31-0] битов регистра назначения, битов [31-0] источника в положениях [63-32] битов регистра назначения, битов [95-64] источника в положениях [95-64] битов регистра назначения и битов [95-64] источника в положениях [127-96] битов регистра назначения.
16. Устройство по п.15, в котором первая команда включает в себя поле адреса источника и адрес регистра назначения.
17. Устройство по п.16, в котором источник является ячейкой памяти.
18. Устройство по п.17, в котором источник представляет данные типа упакованного числа с плавающей запятой одинарной точности.
19. Устройство по п.15, в котором источником является 128-битовый регистр-источник.
20. Устройство по п.15, в котором регистром назначения является регистр расширенных мультимедийных данных (ХММ).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/032,144 | 2001-12-20 | ||
US10/032,144 US7853778B2 (en) | 2001-12-20 | 2001-12-20 | Load/move and duplicate instructions for a processor |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2004122101A RU2004122101A (ru) | 2005-03-27 |
RU2292581C2 true RU2292581C2 (ru) | 2007-01-27 |
Family
ID=21863332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2004122101/09A RU2292581C2 (ru) | 2001-12-20 | 2002-12-12 | Команды загрузки/перемещения и копирования для процессора |
Country Status (9)
Country | Link |
---|---|
US (6) | US7853778B2 (ru) |
JP (3) | JP2006502464A (ru) |
KR (1) | KR100806408B1 (ru) |
CN (2) | CN100492281C (ru) |
AU (1) | AU2002357263A1 (ru) |
DE (1) | DE10297581T5 (ru) |
RU (1) | RU2292581C2 (ru) |
TW (1) | TW594569B (ru) |
WO (1) | WO2003054692A1 (ru) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2583744C2 (ru) * | 2013-03-07 | 2016-05-10 | ЭмАйПиЭс ТЕКНОЛОДЖИС, ИНК. | Устройство и способ связывания операций в памяти |
RU2713709C1 (ru) * | 2019-06-20 | 2020-02-06 | Федеральное государственное унитарное предприятие "Научно-производственный центр автоматики и приборостроения имени академика Н.А. Пилюгина" (ФГУП "НПЦАП") | Устройство преобразования информации |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7853778B2 (en) | 2001-12-20 | 2010-12-14 | Intel Corporation | Load/move and duplicate instructions for a processor |
US7392368B2 (en) * | 2002-08-09 | 2008-06-24 | Marvell International Ltd. | Cross multiply and add instruction and multiply and subtract instruction SIMD execution on real and imaginary components of a plurality of complex data elements |
US6986023B2 (en) * | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
AU2003256870A1 (en) * | 2002-08-09 | 2004-02-25 | Intel Corporation | Multimedia coprocessor control mechanism including alignment or broadcast instructions |
EP1508853A1 (en) * | 2003-08-19 | 2005-02-23 | STMicroelectronics Limited | Computer system and method for loading non-aligned words |
WO2006018822A1 (en) * | 2004-08-20 | 2006-02-23 | Koninklijke Philips Electronics, N.V. | Combined load and computation execution unit |
US8321872B2 (en) * | 2006-06-28 | 2012-11-27 | Nvidia Corporation | Reusable, operating system aware hardware mutex |
US8996152B2 (en) * | 2006-06-28 | 2015-03-31 | Nvidia Corporation | Operating system aware hardware mutex |
US20080077772A1 (en) * | 2006-09-22 | 2008-03-27 | Ronen Zohar | Method and apparatus for performing select operations |
US8112675B2 (en) * | 2006-09-28 | 2012-02-07 | Nvidia Corporation | Filesystem directory debug log |
US8538015B2 (en) | 2007-03-28 | 2013-09-17 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US8060724B2 (en) * | 2008-08-15 | 2011-11-15 | Freescale Semiconductor, Inc. | Provision of extended addressing modes in a single instruction multiple data (SIMD) data processor |
US9911008B2 (en) | 2010-05-25 | 2018-03-06 | Via Technologies, Inc. | Microprocessor with on-the-fly switching of decryption keys |
US9967092B2 (en) | 2010-05-25 | 2018-05-08 | Via Technologies, Inc. | Key expansion logic using decryption key primitives |
US9798898B2 (en) | 2010-05-25 | 2017-10-24 | Via Technologies, Inc. | Microprocessor with secure execution mode and store key instructions |
US9892283B2 (en) | 2010-05-25 | 2018-02-13 | Via Technologies, Inc. | Decryption of encrypted instructions using keys selected on basis of instruction fetch address |
US8683225B2 (en) | 2010-05-25 | 2014-03-25 | Via Technologies, Inc. | Microprocessor that facilitates task switching between encrypted and unencrypted programs |
US9552206B2 (en) * | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
US8656139B2 (en) * | 2011-03-11 | 2014-02-18 | Telefonaktiebolaget L M Ericsson (Publ) | Digital processor for processing long and short pointers and converting each between a common format |
US10866807B2 (en) | 2011-12-22 | 2020-12-15 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in numerical order that differ by a constant stride |
WO2013095555A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Packed data rearrangement control indexes generation processors, methods, systems, and instructions |
US10223112B2 (en) | 2011-12-22 | 2019-03-05 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset |
CN104011646B (zh) | 2011-12-22 | 2018-03-27 | 英特尔公司 | 用于产生按照数值顺序的连续整数的序列的处理器、方法、系统和指令 |
US9639354B2 (en) | 2011-12-22 | 2017-05-02 | Intel Corporation | Packed data rearrangement control indexes precursors generation processors, methods, systems, and instructions |
WO2013101119A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Method and apparatus for controlling a mxcsr |
US9459867B2 (en) * | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a specified memory boundary indicated by the instruction |
US20140095847A1 (en) * | 2012-09-28 | 2014-04-03 | Doron Orenstein | Instruction and highly efficient micro-architecture to enable instant context switch for user-level threading |
US10540179B2 (en) | 2013-03-07 | 2020-01-21 | MIPS Tech, LLC | Apparatus and method for bonding branch instruction with architectural delay slot |
CN103186363B (zh) * | 2013-03-26 | 2015-09-30 | 北京经纬恒润科技有限公司 | 一种数值编辑方法及系统 |
US10228941B2 (en) * | 2013-06-28 | 2019-03-12 | Intel Corporation | Processors, methods, and systems to access a set of registers as either a plurality of smaller registers or a combined larger register |
US10423413B2 (en) * | 2013-07-09 | 2019-09-24 | Texas Instruments Incorporated | Vector load and duplicate operations |
US9336047B2 (en) | 2014-06-30 | 2016-05-10 | International Business Machines Corporation | Prefetching of discontiguous storage locations in anticipation of transactional execution |
US9600286B2 (en) | 2014-06-30 | 2017-03-21 | International Business Machines Corporation | Latent modification instruction for transactional execution |
US9448939B2 (en) | 2014-06-30 | 2016-09-20 | International Business Machines Corporation | Collecting memory operand access characteristics during transactional execution |
US9710271B2 (en) | 2014-06-30 | 2017-07-18 | International Business Machines Corporation | Collecting transactional execution characteristics during transactional execution |
US9348643B2 (en) | 2014-06-30 | 2016-05-24 | International Business Machines Corporation | Prefetching of discontiguous storage locations as part of transactional execution |
US9529653B2 (en) * | 2014-10-09 | 2016-12-27 | International Business Machines Corporation | Processor register error correction management |
US20160179521A1 (en) * | 2014-12-23 | 2016-06-23 | Intel Corporation | Method and apparatus for expanding a mask to a vector of mask values |
US20160224252A1 (en) * | 2015-01-30 | 2016-08-04 | Intel Corporation | Hybrid memory architecture |
EP3336691B1 (en) | 2016-12-13 | 2022-04-06 | ARM Limited | Replicate elements instruction |
EP3336692B1 (en) * | 2016-12-13 | 2020-04-29 | Arm Ltd | Replicate partition instruction |
JP6995059B2 (ja) | 2017-03-14 | 2022-01-14 | 株式会社トクヤマ | フライアッシュの使用方法 |
US10409614B2 (en) * | 2017-04-24 | 2019-09-10 | Intel Corporation | Instructions having support for floating point and integer data types in the same register |
US10915421B1 (en) | 2019-09-19 | 2021-02-09 | Intel Corporation | Technology for dynamically tuning processor features |
KR102307691B1 (ko) | 2020-11-19 | 2021-10-05 | 주식회사 우드메탈 | 원적외선 및 음이온 방출 기능을 갖는 가구용 엣지마감재 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4141005A (en) * | 1976-11-11 | 1979-02-20 | International Business Machines Corporation | Data format converting apparatus for use in a digital data processor |
JPS61294550A (ja) | 1985-06-21 | 1986-12-25 | Nec Corp | 電子計算機におけるデ−タ読取書込制御方式 |
US5522082A (en) | 1986-01-23 | 1996-05-28 | Texas Instruments Incorporated | Graphics display processor, a graphics display system and a method of processing graphics data with control signals connected to a central processing unit and graphics circuits |
US5268995A (en) * | 1990-11-21 | 1993-12-07 | Motorola, Inc. | Method for executing graphics Z-compare and pixel merge instructions in a data processor |
US6116768A (en) * | 1993-11-30 | 2000-09-12 | Texas Instruments Incorporated | Three input arithmetic logic unit with barrel rotator |
US5613121A (en) | 1994-10-19 | 1997-03-18 | International Business Machines Corporation | Method and system of generating combined storage references |
GB9509988D0 (en) | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Matrix transposition |
US5673321A (en) | 1995-06-29 | 1997-09-30 | Hewlett-Packard Company | Efficient selection and mixing of multiple sub-word items packed into two or more computer words |
US7085795B2 (en) | 2001-10-29 | 2006-08-01 | Intel Corporation | Apparatus and method for efficient filtering and convolution of content data |
US5936872A (en) | 1995-09-05 | 1999-08-10 | Intel Corporation | Method and apparatus for storing complex numbers to allow for efficient complex multiplication operations and performing such complex multiplication operations |
US5983253A (en) | 1995-09-05 | 1999-11-09 | Intel Corporation | Computer system for performing complex digital filters |
JP3735438B2 (ja) * | 1997-02-21 | 2006-01-18 | 株式会社東芝 | Risc計算機 |
US6041404A (en) | 1998-03-31 | 2000-03-21 | Intel Corporation | Dual function system and method for shuffling packed data elements |
US6115812A (en) * | 1998-04-01 | 2000-09-05 | Intel Corporation | Method and apparatus for efficient vertical SIMD computations |
US6560667B1 (en) * | 1999-12-28 | 2003-05-06 | Intel Corporation | Handling contiguous memory references in a multi-queue system |
US6820190B1 (en) * | 2000-02-02 | 2004-11-16 | Hewlett-Packard Development Company, L.P. | Method and computer system for decomposing macroinstructions into microinstructions and forcing the parallel issue of at least two microinstructions |
US7155601B2 (en) | 2001-02-14 | 2006-12-26 | Intel Corporation | Multi-element operand sub-portion shuffle instruction execution |
US7631025B2 (en) | 2001-10-29 | 2009-12-08 | Intel Corporation | Method and apparatus for rearranging data between multiple registers |
US7853778B2 (en) | 2001-12-20 | 2010-12-14 | Intel Corporation | Load/move and duplicate instructions for a processor |
JP4112946B2 (ja) * | 2002-10-31 | 2008-07-02 | 株式会社東芝 | 非鉛系接合材、ソルダーペースト及び接合方法 |
JP2009016397A (ja) | 2007-06-29 | 2009-01-22 | Toshiba Corp | プリント配線板 |
JP5229819B2 (ja) | 2009-04-01 | 2013-07-03 | 株式会社レヨーン工業 | 除塵装置 |
-
2001
- 2001-12-20 US US10/032,144 patent/US7853778B2/en not_active Expired - Lifetime
-
2002
- 2002-12-12 CN CNB028253272A patent/CN100492281C/zh not_active Expired - Fee Related
- 2002-12-12 AU AU2002357263A patent/AU2002357263A1/en not_active Abandoned
- 2002-12-12 DE DE10297581T patent/DE10297581T5/de not_active Ceased
- 2002-12-12 JP JP2003555340A patent/JP2006502464A/ja active Pending
- 2002-12-12 CN CN2009101331655A patent/CN101520723B/zh not_active Expired - Fee Related
- 2002-12-12 WO PCT/US2002/040166 patent/WO2003054692A1/en active Application Filing
- 2002-12-12 RU RU2004122101/09A patent/RU2292581C2/ru not_active IP Right Cessation
- 2002-12-12 KR KR1020047009869A patent/KR100806408B1/ko active IP Right Grant
- 2002-12-19 TW TW091136652A patent/TW594569B/zh not_active IP Right Cessation
-
2010
- 2010-02-25 JP JP2010039897A patent/JP2010152919A/ja active Pending
- 2010-11-05 US US12/940,782 patent/US8032735B2/en not_active Expired - Fee Related
-
2011
- 2011-04-15 US US13/088,198 patent/US8200941B2/en not_active Expired - Fee Related
-
2012
- 2012-06-12 US US13/494,764 patent/US8539202B2/en not_active Expired - Lifetime
- 2012-09-14 US US13/620,194 patent/US8650382B2/en not_active Expired - Fee Related
-
2013
- 2013-03-15 US US13/843,815 patent/US9043583B2/en not_active Expired - Fee Related
- 2013-12-13 JP JP2013257903A patent/JP5960115B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2583744C2 (ru) * | 2013-03-07 | 2016-05-10 | ЭмАйПиЭс ТЕКНОЛОДЖИС, ИНК. | Устройство и способ связывания операций в памяти |
RU2713709C1 (ru) * | 2019-06-20 | 2020-02-06 | Федеральное государственное унитарное предприятие "Научно-производственный центр автоматики и приборостроения имени академика Н.А. Пилюгина" (ФГУП "НПЦАП") | Устройство преобразования информации |
Also Published As
Publication number | Publication date |
---|---|
CN100492281C (zh) | 2009-05-27 |
US20130013896A1 (en) | 2013-01-10 |
US7853778B2 (en) | 2010-12-14 |
US20110258418A1 (en) | 2011-10-20 |
DE10297581T5 (de) | 2004-11-11 |
US8650382B2 (en) | 2014-02-11 |
JP5960115B2 (ja) | 2016-08-02 |
WO2003054692A1 (en) | 2003-07-03 |
JP2014089730A (ja) | 2014-05-15 |
TW594569B (en) | 2004-06-21 |
US20030120903A1 (en) | 2003-06-26 |
CN101520723A (zh) | 2009-09-02 |
KR20040068333A (ko) | 2004-07-30 |
US20120317401A1 (en) | 2012-12-13 |
CN1605062A (zh) | 2005-04-06 |
AU2002357263A1 (en) | 2003-07-09 |
US8539202B2 (en) | 2013-09-17 |
JP2006502464A (ja) | 2006-01-19 |
US8200941B2 (en) | 2012-06-12 |
TW200304091A (en) | 2003-09-16 |
US20110047361A1 (en) | 2011-02-24 |
RU2004122101A (ru) | 2005-03-27 |
CN101520723B (zh) | 2011-01-12 |
KR100806408B1 (ko) | 2008-02-21 |
US20130219153A1 (en) | 2013-08-22 |
JP2010152919A (ja) | 2010-07-08 |
US9043583B2 (en) | 2015-05-26 |
US8032735B2 (en) | 2011-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2292581C2 (ru) | Команды загрузки/перемещения и копирования для процессора | |
JP6456867B2 (ja) | 密結合ヘテロジニアスコンピューティングのためのハードウェアプロセッサ及び方法 | |
CN107077329B (zh) | 用于实现和维持判定值的栈的方法和设备 | |
JPH0135366B2 (ru) | ||
CN112148251A (zh) | 跳过无意义的矩阵运算的系统和方法 | |
CN114662048A (zh) | 用于共轭转置和乘法的装置和方法 | |
EP4109247A1 (en) | Apparatuses, methods, and systems for instructions for matrix multiplication instructions | |
CN114691211A (zh) | 从fp16转换到bf8的指令 | |
US20240220323A1 (en) | Apparatuses, methods, and systems for instructions for loading a tile of a matrix operations accelerator | |
JPH04260929A (ja) | データ処理装置 | |
US20240103865A1 (en) | Vector multiply-add/subtract with intermediate rounding | |
US20230205685A1 (en) | Read all zeros or random data upon a first read from volatile memory | |
US20230205522A1 (en) | Conversion instructions | |
JPH04260928A (ja) | データ処理装置 | |
CN116339683A (zh) | 零周期存储器初始化 | |
CN116431221A (zh) | 转换指令 | |
CN118605939A (zh) | Bfloat16比较指令 | |
CN117083595A (zh) | 用于对片行进行下转换并与寄存器进行交织的指令的装置、方法和系统 | |
CN116339831A (zh) | 转换指令 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20191213 |