RU2483347C2 - Установка, способ и система кэширования - Google Patents
Установка, способ и система кэширования Download PDFInfo
- Publication number
- RU2483347C2 RU2483347C2 RU2010104040/08A RU2010104040A RU2483347C2 RU 2483347 C2 RU2483347 C2 RU 2483347C2 RU 2010104040/08 A RU2010104040/08 A RU 2010104040/08A RU 2010104040 A RU2010104040 A RU 2010104040A RU 2483347 C2 RU2483347 C2 RU 2483347C2
- Authority
- RU
- Russia
- Prior art keywords
- cache
- access
- memory
- address
- request
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 15
- 238000013519 translation Methods 0.000 claims abstract description 20
- 230000004044 response Effects 0.000 claims abstract 6
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 239000012723 sample buffer Substances 0.000 claims 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 239000000126 substance Substances 0.000 abstract 1
- 239000003795 chemical substances by application Substances 0.000 description 15
- 230000014616 translation Effects 0.000 description 12
- 230000006854 communication Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 230000007175 bidirectional communication Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Изобретение относится к вычислительной технике. Технический результат заключается в улучшении кэширования трансляции адресов при виртуализации для направленного ввода/вывода (VTd). Устройство кэширования содержит: кэш-память для хранения одной или нескольких записей, в которой каждая запись соответствует запросу на доступ к памяти ввода-вывода и каждая запись должна содержать физический адрес гостя (GPA), соответствующий запросу на доступ к памяти ввода/вывода, и соответствующий физический адрес хозяина (НРА); и первую логику, которая получает первый запрос на доступ к памяти ввода/вывода от оконечного устройства и определяет, включает ли первый запрос на доступ к памяти ввода/вывода подсказку будущего доступа, связанную с адресом, причем подсказка будущего доступа должна указывать хозяину, может ли выполняться доступ к адресу в будущем, и записи в кэш-памяти, которые не содержат подсказку, соответствующую предыдущим запросам на доступ к памяти ввода/вывода, содержащим подсказки на будущий доступ, должны быть заменены раньше записей, которые содержат подсказку; и первая логика должна обеспечить обновление одного или нескольких битов, соответствующее адресу, как записи в кэш-памяти, так и в записи в буфере опережающей выборки трансляции ввода/вывода (IOTLB), в ответ на определение, что первый запрос на доступ к памяти ввода/вывода включает подсказку будущего доступа. 3 н. и 16 з.п. ф-лы, 4 ил.
Description
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
Настоящее раскрытие в целом относится к области электроники. Более конкретно пример воплощения изобретения относится к улучшенному кэшированию трансляции адресов и/или характеристик ввода-вывода кэш-памяти в виртуализированных средах.
Виртуализация ввода/вывода - технология, разрабатываемая для обеспечения эффективной работы устройств ввода/вывода в виртуализированной среде. В целом, виртуализированная среда может быть средой, в которой одновременно могут работать несколько операционных систем (OS). В некоторых вариантах выполнения для повышения эффективности виртуализации ввода/вывода могут быть использованы аппаратные средства. Однако такое выполнение может потребовать реализации относительно большого количества транзисторных переключателей, что, в свою очередь, делает устройство более дорогостоящим и/или более сложным для осуществления.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Подробное описание имеет ссылки на сопроводительные чертежи. На чертежах крайняя левая цифра позиции обозначает фигуру, на которой впервые появилась эта позиция. Использование тех же самых позиций на различных фигурах указывает на аналогичные или идентичные компоненты.
Фигуры 1-3 иллюстрируют блок-схемы примеров воплощения вычислительных систем, которые могут быть использованы, чтобы реализовать различные обсуждаемые здесь варианты изобретения.
Фигура 4 иллюстрирует схему выполнения способа согласно одному примеру воплощения изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
В последующем описании приведены многочисленные подробности, чтобы обеспечить полное понимание различных примеров воплощения изобретения. Однако некоторые примеры воплощения могут быть приведены без конкретных деталей. В других примерах известные способы, процедуры, компоненты и микросхемы подробно не описываются, чтобы не затенять сущность изобретения. Различные аспекты примеров воплощения изобретения могут быть выполнены, используя различные средства, такие как интегральные полупроводниковые микросхемы (аппаратные средства), считываемые компьютером команды, организованные в виде одной или нескольких программ (программное обеспечение), или определенную комбинацию аппаратных средств и программного обеспечения. При этом ссылки на "логику" должны означать аппаратные средства, программное обеспечение или некоторые их комбинации.
Некоторые из обсуждаемых здесь примеров воплощения могут улучшить кэширование трансляции адресов (при виртуализации для направленного ввода/вывода (VTd)) и/или работу кэш-памяти ввода/вывода в виртуализированных средах. Более конкретно, некоторые услуги виртуализации могут быть осуществлены в структурах аппаратных средств, которые используются для перевода физического адреса гостя (GPA) в физический адрес хозяина (НРА). Соответственно, такие структуры могут оказать поддержку кэширования, например, в виде буфера опережающей выборки ввода/вывода (IOTLB) при трансляциях из GPA в НРА. В некоторых примерах воплощения эти кэш-структуры могут обеспечить более низкую латентность для запросов, которые имеют целью ту же самую трансляцию адреса. Кроме того, некоторые из методик могут быть использованы в различных типах вычислительных сред, например, обсужденных со ссылками на фигуры 1-4.
На фигуре 1 показана блок-схема вычислительной системы 100 согласно одному примеру воплощения изобретения. Система 100 может включать одно или несколько средств 102-1 - 102-М (все вместе называемые здесь как "агенты 102" или в общем смысле "агент 102"). В примере воплощения агенты 102 могут быть компонентами вычислительной системы, например системы, обсужденные со ссылками на фигуры 2-4.
Как показано на фигуре 1, агенты 102 могут общаться через сетевую матрицу 104. В одном примере воплощения сетевая матрица 104 может включать компьютерную сеть, которая позволяет различным агентам (таким как вычислительные устройства) передавать данные. В одном примере воплощения сетевая матрица 104 может включать одно или несколько соединений (или соединительных сетей), которые общаются через последовательную линию связи (например, от точки к точке) и/или через сеть связи общего доступа. В частности, некоторые примеры воплощения могут облегчить отладку компонентов или проверку линий связи, которые обеспечивают связь с полностью буферизованными совместно работающими двойными модулями памяти (FBD), например, там, где линия FBD является последовательной линией связи, используемой для соединения модулей памяти с хост-контроллером (такими как процессор или ядро памяти). Информация отладки может быть передана от хост-линии FBD таким образом, чтобы информация отладки могла бы контролироваться вдоль линии приборами проверки трафика (например, одним или несколькими логическими анализаторами).
В одном примере воплощения система 100 может поддерживать схему многослойного протокола, которая может включать физический слой, слой связи, слой маршрутизации, транспортный слой и/или слой протокола. Матрица 104 может также облегчить передачу данных (например, в виде пакетов) из одного протокола (например, кэширующего процессора или кэширующего процессора памяти) к другому протоколу для двухточечной или общедоступной сети. Кроме того, в некоторых примерах воплощения сетевая матрица 104 может обеспечить связь для одного или нескольких устройств буферной памяти по соответствующим протоколам.
Кроме того, как показано стрелками на фигуре 1, агенты 102 могут передавать и/или получать данные через сетевую матрицу 104. Следовательно, некоторые агенты могут использовать однонаправленную линию связи, в то время как другие могут использовать двунаправленную линию связи. Например, один или несколько агентов (таких как агент 102-М) могут передавать данные (например, через однонаправленную линию связи 106), другие агенты (такие как агент 102-2) могут получать данные (например, через однонаправленную линию связи 108), в то время как некоторое агенты (такие как агент 102-1) могут и передавать и получать данные (например, через двунаправленную линию связи 110).
На фигуре 2 представлена блок-схема частей вычислительной системы 200 согласно одному примеру воплощения изобретения. В таком примере воплощения могут быть выполнены различные компоненты системы 200 в виде агентов 102-1 и/или 102-М, обсужденные со ссылкой на фигуру 1. Дальнейшие детали некоторых операций вычислительной системы 200 будут обсуждены со ссылкой на фигуру 4.
Система 200 может включать один или несколько процессоров 202-1 - 202-N (все вместе называемые здесь как "процессоры 202" или в общем смысле "процессор 202"). Каждый из процессоров 202-1 - 202-N может включать различные компоненты, такие как собственная или общедоступная кэш-память, исполнительные модули, одно или несколько ядер и т.д. Кроме того, каждый из процессоров 202 может иметь доступ к памяти 204 (например, к модулям памяти 204-1 - 204-N). Кроме того, система 200 может включать дополнительную системную память 206, которая может быть разделена между различными компонентами системы 200, включая, например, один или несколько процессоров 202, неядерную часть процессора или наборы микросхем (CS) 208 или компоненты, соединенные с набором микросхем 208, и т.д. Один или несколько модулей памяти 204 и/или 206 могут быть использованы для хранения одной или нескольких операционных систем. Следовательно, система 200 в некоторых примерах воплощения может выполнять множество операционных программ (в частности, одновременно).
Как показано на фигуре 2, неядерная часть 208 может включать различные компоненты, такие как основная кэш-память RC 210 (которая может быть разделена среди различных компонентов вычислительной системы, такой как система 200). В некоторых примерах воплощения кэш-память RC 210 может присутствовать в хабе управления памятью (МСН) и/или в графической части МСН (GMCH) набора микросхем или части неядра (например, CS/неядро 208). Кэш-память RC 210 может общаться с другими компонентами по линии данных 212 (которая может включать дополнительную схему межсоединений 214, например, для того, чтобы облегчить связь между одним или несколькими ядрами процессоров 202 и другими компонентами системы 200). Система 200 может дополнительно включать логику предварительной выборки 216, например предварительной выборки данных (включая команды или микрокоманды) от различных местоположений (таких как один или несколько модулей памяти 204, системная память 206, другие устройства памяти, включая, например, энергозависимые или энергонезависимые запоминающие устройства и т.д.) в блок IOTLB 220 (например, через виртуализированную или трансляционную логику 222-1 - 222-Р (называемую здесь как "логические схемы 222" или в общем смысле "логика 222")).
Как показано на фигуре 2, по меньшей мере, в одном примере воплощения путь данных 212 может быть связан с одним или несколькими устройствами ввода/вывода. Может быть использован любой тип устройства ввода/вывода. В иллюстративных целях в примере воплощения, показанном на фигуре 2, устройства ввода/вывода могут включать одно или несколько устройств 224-1 - 224-Р (все вместе называемые здесь "оконечными устройствами 224" или в общем смысле "оконечное устройство 224"). Оконечные устройства 224 могут быть периферическим соединительным устройством (например, шиной PCI) в одном примере воплощения.
Например, оконечные устройства 224 могут общаться с CS/неядром 208 по протоколу соединения через местную шину PCI, с дополнением от 3.0 от 9 марта 2004 года, опубликованную Специальной группой PCI, Портленд, Орегон, США (в дальнейшем именуемая "шиной PCI"). Альтернативно, может быть использована Спецификация PCI-X с дополнением 3.0а, в дальнейшем называемая "шина PCI-X" (2 октября 2006 года), опубликованная вышеуказанной Специальной группой PCI, Портленд, Орегон, США. Кроме того, другие периферийные устройства, связанные с CS/неядром 208, могут включать в различных примерах воплощения изобретения дисковод со встроенным контроллером (IDE) или жесткий диск интерфейса малых вычислительных систем (SCSI), устройство универсальной последовательной шины (USB), клавиатуру, мышь, параллельные порты, последовательные порты, дисководы, поддержку цифрового вывода (например, в виде интерактивное цифровое видео (DVI)) и т.д.
Как показано на фигуре 2, оконечные устройства 224 могут общаться через корневые порты 226-1 - 226-Р (все вместе именуемые здесь как "порты 226" или в общем смысле "порт 226") с другими компонентами системы 200, такими как логические схемы 222. В примере воплощения логика 222 может выполнять трансляцию адреса для виртуализированных сред, в частности трансляцию виртуальных адресов в физические адреса, например, типа IOTLB 220. Физические адреса могут соответствовать местоположениям (например, записям) в системной памяти 206. Логика 222 может дополнительно выполнять другие действия, такие как обсужденные со ссылками на фигуры 3 и 4, которые могут включить трансляцию записей GPA и НРА в устройстве памяти, соединенном с системой 200 и/или 300 (такой как системная память 206). Кроме того, логика 222 может быть корневым каталогом в соответствии со спецификацией PCI.
Кроме того, процессоры 202 могут быть процессором любого типа, таким как универсальный процессор, сетевой процессор (который может обработать данные из компьютерной сети 250) и т.д. (включая процессор компьютера с сокращенным набором команд (RISC) или процессор с полным набором команд (CISC)). Кроме того, процессоры 202 могут иметь одноядерную или многоядерную конструкцию. Процессоры 202 с многоядерной конструкцией могут включать различные типы ядер процессора на одной и той же интегральной схеме (IC). Кроме того, процессоры 202 многоядерного типа могут быть осуществлены как симметричные или асимметричные мультипроцессоры. Также, как показано на фигуре 2, по меньшей мере, одно или несколько оконечных устройств 224 в одном примере воплощения могут быть соединены с сетью 250.
Далее, процессоры 202 могут включать одно или несколько устройств кэш-памяти (не показаны), которые могут быть скрытыми и/или общедоступным в различных примерах воплощения. В целом, кэш-память хранит данные, соответствующие оригинальным данным, хранившимся в другом месте или полученным ранее. Чтобы уменьшить латентность доступа к памяти, когда данные хранятся в кэш-памяти, будущее использование может быть основано на получении доступа к кэшированной копии вместо повторного доступа или повторного вычисления оригинальных данных. Обсуждаемая здесь кэш-память (включая, например, кэш-память RC 210, IOTLB 220, их комбинации и т.д.) может быть любым типом кэш-памяти, такой как кэш-память уровня 1 (L1), кэш-память уровня 2 (L2), уровня 3 (L3), кэш-память среднего уровня, кэш-память последнего уровня (LLC), их комбинации и т.д., чтобы хранить электронные данные (например, команды), которые используется одним или несколькими компонентами системы 200.
Пример воплощения системы 200 и/или 300 может также включать другие устройства, например один или несколько дисплеев (например, подключенных к CS/неядру 208 и используемых для отображения изображений), звуковое устройство (например, подключенное к CS/неядру 208, чтобы обрабатывать звуковые сигналы) и т.д. В некоторых примерах воплощения такие устройства могут быть выполнены как оконечные устройства 224 (которые могут общаться с CS/неядром 208 через корневые порты 226).
На фигуре 3 показана блок-схема частей вычислительной системы 300 согласно другому примеру воплощения изобретения. В этом примере воплощения различные компоненты системы 300 могут быть интегрированы в одном из агентов 102-1 и/или 102-М, обсужденных со ссылкой на фигуру 1. Подробное описание некоторых действий вычислительной системы 300 будет приведено здесь со ссылкой на фигуру 4.
Как показано на фигуре 3, система 300 может включать один или несколько процессоров 202, блоки памяти 204, системную память 206, кэш-память RC 210, путь данных 212, дополнительную схему межсоединений 214, логику предварительной выборки 216, IOTLB 220, логику 222, оконечные устройства 224 и корневые порты 226. Кроме того, как показано на чертеже, в одном примере воплощения кэш-память RC 210 и IOTLB 220 могут быть объединены в один модуль кэш-памяти.
На фигуре 4 показана схема последовательности операций выполнения способа 400, чтобы обновить информацию, хранившуюся в кэш-памяти ввода/вывода, и улучшить кэширование трансляции адресов и/или работу кэш-памяти ввода/вывода в виртуализированных средах, согласно одному примеру воплощения. В одном примере воплощения обсуждены различные компоненты со ссылками на фигуры 1-3 и 5 для пояснения одной или нескольких стадий выполнения, обсужденных со ссылкой на фигуру 4.
На фигурах 1-4 стадия 402 способа 400 начинается с получения запроса на доступ к памяти. Например, запрос на доступ к памяти (например, доступ к чтению или записи) может быть сформирован одним из оконечных устройств 224 и получен соответствующей логикой виртуализации 222 через один из портов 226 на стадии 402. На стадии 404 может быть определено, существует ли запись, соответствующая запросу на доступ к кэш-памяти. В примере воплощения логика виртуализации 222 может получать доступ к IOTLB 220, кэш-памяти RC 210 и/или их комбинации (такой, как показана на фигуре 3) на стадии 404. Если соответствующая запись отсутствует, данные могут быть занесены в кэш-память на стадии 406 (например, логикой виртуализации 222 и/или логикой предварительной выборки 216).
В примере воплощения соответствующие данные могут быть предварительно внесены в кэш-память логикой 216 до стадии 402. В одном примере воплощения запрос на предварительную выборку выдается одним из оконечных устройств 224, которое выполняет упреждающую выборку и поддерживает когерентные копии целевого местоположения адреса. Эти запросы на предварительную выборку также позволяют обновить IOTLB 220, кэш-память RC 210 и/или их комбинации; входы распределяются и кэшируются до тех пор, пока запрос не будет передан устройству. Будут определены параметры настройки АСН, если вход в IOTLB 220, кэш-памяти RC 210 и/или их комбинацию должен быть поддержан или тегирован для замены.
На стадии 408 может быть определено (например, логикой виртуализации 222), включает ли запрос на доступ к памяти подсказку (в виде одной или нескольких подсказок в запросе на доступ к памяти). Если нет никакой подсказки, запрос на доступ к памяти может быть обработан на стадии 410, например, трансляцией адреса НРА и GPA и/или физического/виртуального адреса на вход IOTLB 220, кэш-память RC 210 и/или их комбинацию. В одном примере воплощения кэширование трансляции адресов и/или работа кэш-памяти ввода/вывода в виртуализированных средах могут быть улучшены на основе подсказок трафика устройства ввода/вывода (которые здесь также могут быть упомянуты как подсказки блока управления доступом (АСН)). Блок (или блоки) АСН может быть снабжен устройством ввода/вывода (например, одним из оконечных устройств 224) в запросе памяти (например, по шине PCI), чтобы определить, получило ли бы устройство доступ к одному и тому же адресу снова. Соответственно, на стадии 412 можно определить, указывает ли подсказка на будущий доступ к тому же самому адресу. Эта информация может храниться в виде одного или нескольких битов, соответствующих записи в кэш-памяти (например, запись в IOTLB 220, кэш-памяти RC 210 и/или их комбинации), что было бы полезно для алгоритма замены линии кэш-памяти, например, там, где кэшированные трансляции без намеченного повторного использования набора битов (или очищенные в зависимости от выполнения) могли бы быть кандидатами на замену. В одном примере воплощения логика 222 может выполнить операцию 412. Если не указано никакого будущего доступа, способ 400 возобновляется со стадии 410. В противном случае соответствующая информация записи может быть обновлена на стадии 414 (например, один или несколько битов для соответствующей записи в IOTLB 220, кэш-памяти RC 210 и/или их комбинации могут быть обновлены соответствующей логикой 222). После стадии 414 способ 400 возвращается на стадию 410.
В некоторых примерах воплощения консолидирование структуры IOTLB 220 и кэш-памяти RC 210 в комбинированную структуру кэш-памяти IOTLB и кэш-памяти RC (которая также называется здесь кэш-памятью ввода/вывода) может улучшить рабочие характеристики (например, уменьшить латентность для трансляций ввода/вывода) и/или обеспечить более эффективное использование полезной площади кристалла или пластины кремния (например, уменьшить общее количество затворов). В одном примере прикладные программы, формируемые процессором (например, одним или несколькими процессорами 202), будут просматривать содержимое кэш-памяти RC 210 (или комбинированной кэш-памяти ввода/вывода), используя физический адрес, а доступы ввода/вывода будут искать адрес в кэш-памяти RC 210 (или комбинированной кэш-памяти ввода/вывода) на основе GPA.
В некоторых примерах воплощения различные алгоритмы замены кэш-памяти могут быть применены к кэш-памяти RC 210, IOTLB 220 и/или их комбинации. Например, алгоритм замены может быть алгоритмом случайной замены, тогда как в другом случае может осуществляться последний использованный алгоритм (LRU).
Соответственно, в некоторых примерах воплощения латентность трансляции адреса и/или латентность, связанная с обслуживанием запросов ввода/вывода, могут быть восстановлены. Кроме того, консолидация структур хранения (например, адреса или данных), используемых для кэш-памяти RC 210 и IOTLB 220 (например, в один модуль кэш-памяти ввода/вывода), может привести к повышению эффективности кремния и лучшей работе кремниевой подложки (например, путем снижения количества транзисторных переключателей).
В различных примерах воплощения изобретения обсужденные здесь операции, например со ссылками на фигуры 1-4, могут быть осуществлены с помощью аппаратных средств (например, схем), программного обеспечения, программируемого оборудования, набора набор микрокоманд или их комбинации, которые могут быть обеспечены как продукт в виде компьютерной программы, например, включая машиночитаемую среду, сохраняющую команды (или программные продукты), используемые для программирования компьютера, чтобы выполнить обсужденный здесь процесс. Кроме того, термин "логика" может включать, например, программное обеспечение, аппаратные средства или комбинацию программного обеспечения и аппаратных средств. Машиночитаемая среда может включать устройство хранения данных, подобное устройству, обсужденному здесь.
Например, обсужденное здесь устройство хранения данных может включать энергозависимую и/или энергонезависимую память (или хранилище). Энергонезависимая память может включать одно из следующих: постоянную память (ROM), программируемую память ROM (PROM), стираемую память PROM (EPROM), электрически стираемую постоянную память (EEPROM), дисковод, дискету, ROM компакт-диска (CD-ROM), цифровой универсальный диск (DVD), флеш-память, оптический магнитный диск или другие типы энергонезависимой машиночитаемой среды, способной хранить электронные данные (например, команды). Энергозависимое хранилище (или память) может включать такие устройства, как память с произвольным доступом (RAM), динамическую RAM (DRAM), синхронную динамическую DRAM (SDRAM), статическую RAM (SRAM) и т.д.
Дополнительно, такая машиночитаемая среда может быть загружена как компонент компьютерной программы, в которой программа может быть передана от удаленного компьютера (например, сервера) на запрашиваемый компьютер (например, клиент) путем передачи сигналов данных, внедренных в несущую или другую передающую среду через линию связи (например, шину, модем или сетевое соединение).
Ссылка в описании на "один пример воплощения" или "пример воплощения" означает, что конкретный признак, структура или характеристика, описанная в связи с примером воплощения, могут быть включены, по меньшей мере, в выполнение операции. Появления фразы "в одном примере воплощения" в различных местах в описании могут или, возможно, не могут быть отнесены к одному и тому же примеру воплощения.
Кроме того, в описании и формуле изобретения могут использоваться термины "соединены" и "связаны" вместе с их производными. В некоторых примерах воплощения изобретения термин "связаны" может обозначать, что два или несколько элементов находятся в прямом физическом или электрическом контакте друг с другом. Термин "соединены" может означать, что два или несколько элементов находятся в прямом физическом или электрическом контакте. Однако "соединенный" может также означать, что два или несколько элементов, возможно, не находятся в прямом контакте друг с другом, но могут быть во взаимодействии друг с другом.
Таким образом, хотя примеры воплощения изобретения были описаны на языке, определенном для структурных признаков и/или методологических действий, следует понимать, что заявленный объект не может быть ограничен определенными признаками или описанными действиями. Скорее, определенные признаки и действия раскрыты как типичные формы осуществления заявленного объекта.
Claims (19)
1. Устройство кэширования, содержащее:
кэш-память для хранения одной или нескольких записей, в котором каждая запись соответствует запросу на доступ к памяти ввода-вывода, и каждая запись должна содержать физический адрес гостя (GPA), соответствующий запросу на доступ к памяти ввода/вывода, и соответствующий физический адрес хозяина (НРА); и
первую логику, которая получает первый запрос на доступ к памяти ввода/вывода от оконечного устройства и определяет, включает ли первый запрос на доступ к памяти ввода/вывода подсказку будущего доступа, связанную с адресом, причем подсказка будущего доступа должна указывать хозяину, может ли выполняться доступ к адресу в будущем, и записи в кэш-памяти, которые не содержат подсказку, соответствующую предыдущим запросам на доступ к памяти ввода/вывода, содержащим подсказки на будущий доступ, должны быть заменены раньше записей, которые содержат подсказку;
и первая логика должна обеспечить обновление одного или нескольких битов, соответствующее адресу, как записи в кэш-памяти, так и в записи в буфере опережающей выборки трансляции ввода/вывода (IOTLB), в ответ на определение, что первый запрос на доступ к памяти ввода/вывода включает подсказку будущего доступа.
кэш-память для хранения одной или нескольких записей, в котором каждая запись соответствует запросу на доступ к памяти ввода-вывода, и каждая запись должна содержать физический адрес гостя (GPA), соответствующий запросу на доступ к памяти ввода/вывода, и соответствующий физический адрес хозяина (НРА); и
первую логику, которая получает первый запрос на доступ к памяти ввода/вывода от оконечного устройства и определяет, включает ли первый запрос на доступ к памяти ввода/вывода подсказку будущего доступа, связанную с адресом, причем подсказка будущего доступа должна указывать хозяину, может ли выполняться доступ к адресу в будущем, и записи в кэш-памяти, которые не содержат подсказку, соответствующую предыдущим запросам на доступ к памяти ввода/вывода, содержащим подсказки на будущий доступ, должны быть заменены раньше записей, которые содержат подсказку;
и первая логика должна обеспечить обновление одного или нескольких битов, соответствующее адресу, как записи в кэш-памяти, так и в записи в буфере опережающей выборки трансляции ввода/вывода (IOTLB), в ответ на определение, что первый запрос на доступ к памяти ввода/вывода включает подсказку будущего доступа.
2. Устройство по п.1, в котором оконечное устройство должно формировать запрос на доступ к памяти.
3. Устройство по п.1, дополнительно содержащее логику предварительной выборки к данным предварительной выборки в кэш-памяти в ответ на запрос, выданный оконечным устройством.
4. Устройство по п.1, в котором оконечное устройство включает периферическое соединительное устройство (PCI).
5. Устройство по п.1, в котором одна или несколько схем первой логики, одно или несколько ядер процессора или кэш-памяти находится в одном и том же кристалле интегральной схемы.
6. Устройство по п.1, в котором кэш-память включает один или несколько корневых блоков кэш-памяти, буфер опережающей выборки трансляции ввода/вывода (IOTLB) или их комбинации.
7. Устройство по п.1, в котором кэш-память является общедоступной или собственной кэш-памятью.
8. Устройство по п.1, в котором кэш-память содержит один или несколько блоков кэш-памяти уровня 1 (L1), уровня 2 (L2), уровня 3 (L3), кэш-память среднего уровня, кэш-память последнего уровня (LLC) или их комбинации.
9. Устройство по п.1, дополнительно содержащее корневой порт, используемый для соединения первой логики с оконечным устройством.
10. Устройство по п.1, в котором кэш-память должна объединять корневой блок кэш-памяти и буфер опережающей выборки трансляции ввода/вывода (IOTLB).
11. Устройство по п.1, в котором при формировании процессором прикладных программ должен осуществляться поиск в кэш-памяти с использованием физического адреса, и запрос на доступ к памяти ввода/вывода необходимо искать в кэш-памяти с использованием физического адреса гостя (GPA).
12. Способ кэширования, содержащий следующие стадии:
получение первого запроса на доступ к памяти ввода-вывода от оконечного устройства;
сохранение одного или нескольких записей в кэш-памяти, в котором каждая запись соответствует запросу на доступ к памяти ввода-вывода между физическим адресом гостя (GPA) и физическим адресом хозяина (НРА); и
определение, включает ли первый запрос на доступ к памяти ввода/вывода подсказку будущего доступа, связанную с адресом, причем подсказка будущего доступа должна указывать хозяину, может ли выполняться доступ к адресу в будущем, и записи в кэш-памяти, которые не содержат подсказку, соответствующую предыдущим запросам на доступ к памяти ввода/вывода, содержащим подсказки на будущий доступ, должны быть заменены раньше записей, которые содержат подсказку; и
обновление одного или нескольких битов, соответствующее адресу, как записи в кэш-памяти, так и в записи в буфере опережающей выборки трансляции ввода/вывода (IOTLB), в ответ на определение, что первый запрос на доступ к памяти ввода/вывода включает подсказку будущего доступа.
получение первого запроса на доступ к памяти ввода-вывода от оконечного устройства;
сохранение одного или нескольких записей в кэш-памяти, в котором каждая запись соответствует запросу на доступ к памяти ввода-вывода между физическим адресом гостя (GPA) и физическим адресом хозяина (НРА); и
определение, включает ли первый запрос на доступ к памяти ввода/вывода подсказку будущего доступа, связанную с адресом, причем подсказка будущего доступа должна указывать хозяину, может ли выполняться доступ к адресу в будущем, и записи в кэш-памяти, которые не содержат подсказку, соответствующую предыдущим запросам на доступ к памяти ввода/вывода, содержащим подсказки на будущий доступ, должны быть заменены раньше записей, которые содержат подсказку; и
обновление одного или нескольких битов, соответствующее адресу, как записи в кэш-памяти, так и в записи в буфере опережающей выборки трансляции ввода/вывода (IOTLB), в ответ на определение, что первый запрос на доступ к памяти ввода/вывода включает подсказку будущего доступа.
13. Способ по п.12, дополнительно содержащий адреса трансляции, соответствующие первому доступу к памяти ввода/вывода.
14. Способ по п.12, в котором при выполнении процессором поиска должен осуществляться поиск в кэш-памяти с использованием физического адреса, и запрос на доступ к памяти ввода/вывода необходимо искать в кэш-памяти с использованием физического адреса гостя (GPA).
15. Система кэширования, содержащая:
память для хранения одной или нескольких записей;
кэш-память для хранения одной или нескольких записей, соответствующих одной или нескольким записям, хранящихся в памяти, в которой каждая запись в кэш-памяти должна соответствовать запросу на доступ к памяти ввода-вывода между физическим адресом гостя (GPA) и физическим адресом хозяина (НРА); и
первую логику, которая получает первый запрос на доступ к памяти ввода-вывода от оконечного устройства и определяет, включает ли первый запрос на доступ к памяти ввода/вывода подсказку будущего доступа, связанную с адресом, причем подсказка будущего доступа должна указывать хозяину, может ли выполняться доступ к адресу в будущем, и записи в кэш-памяти, которые не содержат подсказку, соответствующую предыдущим запросам на доступ к памяти ввода/вывода, содержащим подсказки на будущий доступ, должны быть заменены раньше записей, которые содержат подсказку;
и первая логика должна вызвать обновление одного или несколько битов, соответствующее адресу, как записи в кэш-памяти, так и в записи в буфере опережающей выборки трансляции ввода/вывода (IOTLB), в ответ на определение, что первый запрос на доступ к памяти ввода/вывода включает подсказку будущего доступа.
память для хранения одной или нескольких записей;
кэш-память для хранения одной или нескольких записей, соответствующих одной или нескольким записям, хранящихся в памяти, в которой каждая запись в кэш-памяти должна соответствовать запросу на доступ к памяти ввода-вывода между физическим адресом гостя (GPA) и физическим адресом хозяина (НРА); и
первую логику, которая получает первый запрос на доступ к памяти ввода-вывода от оконечного устройства и определяет, включает ли первый запрос на доступ к памяти ввода/вывода подсказку будущего доступа, связанную с адресом, причем подсказка будущего доступа должна указывать хозяину, может ли выполняться доступ к адресу в будущем, и записи в кэш-памяти, которые не содержат подсказку, соответствующую предыдущим запросам на доступ к памяти ввода/вывода, содержащим подсказки на будущий доступ, должны быть заменены раньше записей, которые содержат подсказку;
и первая логика должна вызвать обновление одного или несколько битов, соответствующее адресу, как записи в кэш-памяти, так и в записи в буфере опережающей выборки трансляции ввода/вывода (IOTLB), в ответ на определение, что первый запрос на доступ к памяти ввода/вывода включает подсказку будущего доступа.
16. Система по п.15, в которой оконечное устройство должно формировать запрос на доступ к памяти.
17. Система по п.15, дополнительно содержащая логику предварительной выборки для опережающей выборки данных в кэш-памяти в ответ на запрос, выданный оконечным устройством.
18. Система по п.15, в которой оконечное устройство включает периферическое соединительное устройство (PCI).
19. Система по п.15, дополнительно содержащая дисплей, подключенный к неядру, которое содержит кэш-память.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/906,176 US8161243B1 (en) | 2007-09-28 | 2007-09-28 | Address translation caching and I/O cache performance improvement in virtualized environments |
US11/906,176 | 2007-09-28 | ||
PCT/US2008/077819 WO2009045884A2 (en) | 2007-09-28 | 2008-09-26 | Address translation caching and i/o cache performance improvement in virtualized environments |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2010104040A RU2010104040A (ru) | 2011-08-20 |
RU2483347C2 true RU2483347C2 (ru) | 2013-05-27 |
Family
ID=40418368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2010104040/08A RU2483347C2 (ru) | 2007-09-28 | 2008-09-26 | Установка, способ и система кэширования |
Country Status (5)
Country | Link |
---|---|
US (2) | US8161243B1 (ru) |
CN (2) | CN101868786A (ru) |
DE (1) | DE102008048421A1 (ru) |
RU (1) | RU2483347C2 (ru) |
WO (1) | WO2009045884A2 (ru) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7707383B2 (en) | 2006-11-21 | 2010-04-27 | Intel Corporation | Address translation performance in virtualized environments |
US8161243B1 (en) | 2007-09-28 | 2012-04-17 | Intel Corporation | Address translation caching and I/O cache performance improvement in virtualized environments |
US9389895B2 (en) | 2009-12-17 | 2016-07-12 | Microsoft Technology Licensing, Llc | Virtual storage target offload techniques |
CN104636274B (zh) * | 2010-03-29 | 2018-01-26 | 威盛电子股份有限公司 | 数据预取方法以及微处理器 |
AT510716B1 (de) * | 2011-04-08 | 2012-06-15 | Albrecht Dipl Ing Kadlec | Reiner allokations-cache für echtzeitsysteme |
WO2013048943A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Active state power management (aspm) to reduce power consumption by pci express components |
US8904113B2 (en) * | 2012-05-24 | 2014-12-02 | International Business Machines Corporation | Virtual machine exclusive caching |
CN104077171B (zh) * | 2013-03-28 | 2017-12-15 | 华为技术有限公司 | 调度虚拟机时的处理方法和设备 |
US9983893B2 (en) | 2013-10-01 | 2018-05-29 | Red Hat Israel, Ltd. | Handling memory-mapped input-output (MMIO) based instructions using fast access addresses |
US9916173B2 (en) * | 2013-11-25 | 2018-03-13 | Red Hat Israel, Ltd. | Facilitating execution of MMIO based instructions |
US20150286529A1 (en) * | 2014-04-08 | 2015-10-08 | Micron Technology, Inc. | Memory device having controller with local memory |
GB2528842B (en) * | 2014-07-29 | 2021-06-02 | Advanced Risc Mach Ltd | A data processing apparatus, and a method of handling address translation within a data processing apparatus |
US9846610B2 (en) | 2016-02-08 | 2017-12-19 | Red Hat Israel, Ltd. | Page fault-based fast memory-mapped I/O for virtual machines |
US10310547B2 (en) * | 2016-03-05 | 2019-06-04 | Intel Corporation | Techniques to mirror a command/address or interpret command/address logic at a memory device |
US10324857B2 (en) * | 2017-01-26 | 2019-06-18 | Intel Corporation | Linear memory address transformation and management |
US10324858B2 (en) * | 2017-06-12 | 2019-06-18 | Arm Limited | Access control |
CN107341115B (zh) * | 2017-06-30 | 2021-07-16 | 联想(北京)有限公司 | 虚拟机内存访问方法、系统和电子设备 |
CN108021518B (zh) * | 2017-11-17 | 2019-11-29 | 华为技术有限公司 | 一种数据交互方法和计算设备 |
US10929310B2 (en) | 2019-03-01 | 2021-02-23 | Cisco Technology, Inc. | Adaptive address translation caches |
KR20230105441A (ko) | 2022-01-04 | 2023-07-11 | 삼성전자주식회사 | 스토리지 시스템과 장치 및 그 동작 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2004119842A (ru) * | 2003-08-01 | 2005-03-27 | Майкрософт Корпорейшн (Us) | Разреженное кэширование для потоковой аудиовизуальной информации |
US6886085B1 (en) * | 2000-04-19 | 2005-04-26 | International Business Machines Corporation | Method and apparatus for efficient virtual memory management |
US20060075285A1 (en) * | 2004-09-30 | 2006-04-06 | Rajesh Madukkarumukumana | Fault processing for direct memory access address translation |
WO2006041471A2 (en) * | 2004-10-06 | 2006-04-20 | Thomson Licensing | Method and system for caching data |
US20070088915A1 (en) * | 2005-10-13 | 2007-04-19 | Roch Archambault | Method and apparatus for software-assisted data cache and prefetch control |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128703A (en) * | 1997-09-05 | 2000-10-03 | Integrated Device Technology, Inc. | Method and apparatus for memory prefetch operation of volatile non-coherent data |
US6009488A (en) | 1997-11-07 | 1999-12-28 | Microlinc, Llc | Computer having packet-based interconnect channel |
US6542968B1 (en) * | 1999-01-15 | 2003-04-01 | Hewlett-Packard Company | System and method for managing data in an I/O cache |
US6789168B2 (en) * | 2001-07-13 | 2004-09-07 | Micron Technology, Inc. | Embedded DRAM cache |
US6981099B2 (en) * | 2002-12-16 | 2005-12-27 | Sun Microsystems, Inc. | Smart-prefetch |
US20040123278A1 (en) * | 2002-12-23 | 2004-06-24 | Murthi Nanja | Persistent cache apparatus and methods |
US6978351B2 (en) * | 2002-12-30 | 2005-12-20 | Intel Corporation | Method and system to improve prefetching operations |
US20040233146A1 (en) * | 2003-05-21 | 2004-11-25 | Nguyen Don J. | Selective window display |
US20050149562A1 (en) | 2003-12-31 | 2005-07-07 | International Business Machines Corporation | Method and system for managing data access requests utilizing storage meta data processing |
US20050160229A1 (en) * | 2004-01-16 | 2005-07-21 | International Business Machines Corporation | Method and apparatus for preloading translation buffers |
US7930503B2 (en) * | 2004-01-26 | 2011-04-19 | Hewlett-Packard Development Company, L.P. | Method and apparatus for operating multiple security modules |
US7330940B2 (en) * | 2005-02-02 | 2008-02-12 | Hewlett-Packard Development Company, L.P. | Method and system for cache utilization by limiting prefetch requests |
US20060288130A1 (en) | 2005-06-21 | 2006-12-21 | Rajesh Madukkarumukumana | Address window support for direct memory access translation |
US7395407B2 (en) * | 2005-10-14 | 2008-07-01 | International Business Machines Corporation | Mechanisms and methods for using data access patterns |
US7389400B2 (en) | 2005-12-15 | 2008-06-17 | International Business Machines Corporation | Apparatus and method for selectively invalidating entries in an address translation cache |
US7653803B2 (en) * | 2006-01-17 | 2010-01-26 | Globalfoundries Inc. | Address translation for input/output (I/O) devices and interrupt remapping for I/O devices in an I/O memory management unit (IOMMU) |
US7739474B2 (en) * | 2006-02-07 | 2010-06-15 | International Business Machines Corporation | Method and system for unifying memory access for CPU and IO operations |
US7716423B2 (en) * | 2006-02-07 | 2010-05-11 | International Business Machines Corporation | Pseudo LRU algorithm for hint-locking during software and hardware address translation cache miss handling modes |
US7669028B2 (en) * | 2006-02-07 | 2010-02-23 | International Business Machines Corporation | Optimizing data bandwidth across a variable asynchronous clock domain |
TW200802175A (en) * | 2006-06-28 | 2008-01-01 | Giga Byte Tech Co Ltd | Hot-pluggable video display card and computer system using the same |
US7707383B2 (en) | 2006-11-21 | 2010-04-27 | Intel Corporation | Address translation performance in virtualized environments |
US8161243B1 (en) | 2007-09-28 | 2012-04-17 | Intel Corporation | Address translation caching and I/O cache performance improvement in virtualized environments |
-
2007
- 2007-09-28 US US11/906,176 patent/US8161243B1/en not_active Expired - Fee Related
-
2008
- 2008-09-23 DE DE102008048421A patent/DE102008048421A1/de not_active Withdrawn
- 2008-09-26 CN CN200880110445.8A patent/CN101868786A/zh active Pending
- 2008-09-26 RU RU2010104040/08A patent/RU2483347C2/ru not_active IP Right Cessation
- 2008-09-26 WO PCT/US2008/077819 patent/WO2009045884A2/en active Application Filing
- 2008-09-27 CN CN200810161925.9A patent/CN101398787A/zh active Pending
-
2012
- 2012-04-17 US US13/449,302 patent/US8407422B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6886085B1 (en) * | 2000-04-19 | 2005-04-26 | International Business Machines Corporation | Method and apparatus for efficient virtual memory management |
RU2004119842A (ru) * | 2003-08-01 | 2005-03-27 | Майкрософт Корпорейшн (Us) | Разреженное кэширование для потоковой аудиовизуальной информации |
US20060075285A1 (en) * | 2004-09-30 | 2006-04-06 | Rajesh Madukkarumukumana | Fault processing for direct memory access address translation |
WO2006041471A2 (en) * | 2004-10-06 | 2006-04-20 | Thomson Licensing | Method and system for caching data |
US20070088915A1 (en) * | 2005-10-13 | 2007-04-19 | Roch Archambault | Method and apparatus for software-assisted data cache and prefetch control |
Non-Patent Citations (1)
Title |
---|
DARREN ABRAMSON et al, INTEL® VIRTUALIZATION TECHNOLOGY FOR DIRECTED I/O, Intel Technology Journal, Volume 10, Issue 3, 2006, 10.08.2006. * |
Also Published As
Publication number | Publication date |
---|---|
DE102008048421A1 (de) | 2009-04-09 |
US8407422B2 (en) | 2013-03-26 |
US8161243B1 (en) | 2012-04-17 |
RU2010104040A (ru) | 2011-08-20 |
US20120203950A1 (en) | 2012-08-09 |
WO2009045884A2 (en) | 2009-04-09 |
CN101398787A (zh) | 2009-04-01 |
WO2009045884A3 (en) | 2009-06-25 |
CN101868786A (zh) | 2010-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2483347C2 (ru) | Установка, способ и система кэширования | |
KR102518095B1 (ko) | 스토리지 장치 및 시스템 | |
US8423715B2 (en) | Memory management among levels of cache in a memory hierarchy | |
US8250254B2 (en) | Offloading input/output (I/O) virtualization operations to a processor | |
US7383374B2 (en) | Method and apparatus for managing virtual addresses | |
US8230179B2 (en) | Administering non-cacheable memory load instructions | |
US8924648B1 (en) | Method and system for caching attribute data for matching attributes with physical addresses | |
US20080120487A1 (en) | Address translation performance in virtualized environments | |
US10169247B2 (en) | Direct memory access between an accelerator and a processor using a coherency adapter | |
US9176888B2 (en) | Application-managed translation cache | |
WO2023125524A1 (zh) | 数据存储方法、系统、存储访问配置方法及相关设备 | |
US10210131B2 (en) | Synchronous data input/output system using prefetched device table entry | |
CN114328295A (zh) | 存储管理装置、处理器、相关装置和相关方法 | |
JP2015504205A (ja) | プロセッサによるメモリの共有のための方法、システム、およびコンピュータ・プログラム | |
US8661169B2 (en) | Copying data to a cache using direct memory access | |
US10528418B2 (en) | Hardware accelerator address translation fault resolution | |
US10372622B2 (en) | Software controlled cache line replacement within a data property dependent cache segment of a cache using a cache segmentation enablement bit and cache segment selection bits | |
US9720830B2 (en) | Systems and methods facilitating reduced latency via stashing in system on chips | |
US11556475B2 (en) | Power optimized prefetching in set-associative translation lookaside buffer structure | |
US11157285B2 (en) | Dynamic modification of instructions that do not modify the architectural state of a processor | |
US20230401160A1 (en) | Address translation prefetching for input/output devices | |
TW202347150A (zh) | 用於排清加重新加載快取側通道攻擊緩解的系統和方法 | |
CN115080464A (zh) | 数据处理方法和数据处理装置 | |
CN115827512A (zh) | 数据处理装置、方法、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FA92 | Acknowledgement of application withdrawn (lack of supplementary materials submitted) |
Effective date: 20111003 |
|
FZ9A | Application not withdrawn (correction of the notice of withdrawal) |
Effective date: 20121002 |
|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20160927 |