RU2461870C2 - Способ и устройство трансляции адреса - Google Patents
Способ и устройство трансляции адреса Download PDFInfo
- Publication number
- RU2461870C2 RU2461870C2 RU2009133295/08A RU2009133295A RU2461870C2 RU 2461870 C2 RU2461870 C2 RU 2461870C2 RU 2009133295/08 A RU2009133295/08 A RU 2009133295/08A RU 2009133295 A RU2009133295 A RU 2009133295A RU 2461870 C2 RU2461870 C2 RU 2461870C2
- Authority
- RU
- Russia
- Prior art keywords
- address
- physical address
- page
- memory
- physical
- Prior art date
Links
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
-
- 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/04—Addressing variable-length words or parts of words
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/655—Same page detection
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
Abstract
Изобретение относится к трансляции адреса, и в частности относится к трансляции виртуальных адресов, которые создают условия пересечения границы страницы памяти. Технический результат - осуществление доступа к данным в процессе, при исключении выполнения множества трансляций виртуальных адресов в процессоре. Трансляция адреса, которая выполняется внутри процессора, улучшена идентификацией адреса, который вызывает пересечение границы между различными страницами в памяти и связывание информации трансляции адреса, ассоциированной с обеими страницами памяти. В соответствии с одним вариантом осуществления процессора, процессор содержит схему, выполненную с возможностью распознавания доступа к зоне памяти, пересекающей границу страницы между первой и второй страницами памяти. Схема также выполнена с возможностью связывания информации трансляции адреса, ассоциированной с первой и второй страницами памяти. Таким образом, в ответ на последующий доступ к такой же зоне памяти, информация трансляции адреса, ассоциированная с первой и второй страницами памяти, извлекается, основываясь на единичной трансляции адреса. 4 н. и 17 з.п. ф-лы, 5 ил.
Description
Область техники, к которой относится изобретение
Настоящее изобретение, в общем, относится к трансляции адреса, и в частности относится к трансляции виртуальных адресов, которые создают условия пересечения границы страницы памяти.
Уровень техники
Виртуальная память - это методика управления памятью, посредством которой возможно фрагментированную физическую память (физическое адресное пространство) представить процессу (программному обеспечению) как непрерывную память (виртуальное адресное пространство). Даже если размещенная физическая память не всегда последовательно организована (или даже в одинаковых носителях, на пример SDRAM и ROM), процессы видят память как линейную последовательность, потому что они имеют дело с непрерывным виртуальным адресным пространством. Более того, программы обычно не знают, как размещена физическая память. Взамен процессор или другое устройство условно управляет размещением виртуальной памяти.
Управление памятью разделяет физическую память на страницы (или сегменты) и обеспечивает отображение виртуальных адресов на фактические страницы физической памяти, которые прозрачны для процессов, осуществляющих доступ к памяти. Процессы видят только виртуальное адресное пространство, в то время как физическое адресное пространство является местом, где соответствующие данные фактически постоянно находятся в памяти. Процессор условно отображает виртуальное адресное пространство на физическое адресное пространство, используя трансляцию адреса. Трансляция адреса затрагивает поиск физического адреса на основе данного виртуального адреса. Виртуальный адрес условно разделен на, по меньшей мере, две части - номер виртуальной страницы и смещение страницы. Номер виртуальной страницы идентифицирует конкретную страницу виртуальной памяти. Смещение страницы идентифицирует требуемую зону (или блок) внутри страницы.
Таблица страниц, поддерживаемая в основной памяти, обычно хранит список номеров виртуальных страниц и соответствующих номеров физических страниц. Таблица страниц просматривается, используя часть виртуального адреса номера виртуальной страницы. Если номер виртуальной страницы совпадает с элементом таблицы страниц, соответствующий номер физической страницы извлекается из таблицы. В противном случае, имеет место ошибка таблицы страниц. Извлеченный номер физической страницы, наряду со смещением страницы, формирует физический адрес, используемый для извлечения информации из памяти. Номер страницы идентифицирует правильную страницу физической памяти. К требуемой зоне памяти в странице затем осуществляется доступ, используя смещение страницы.
Для улучшения производительности часто запрашиваемые элементы таблицы страниц локально сохраняются в процессоре, например в буфере ассоциативной трансляции (TLB). TLB может поддерживать единственный уровень локальной кэш-памяти или множественные кэш-уровни, например кэши данных и команд первого уровня и кэш второго уровня. Так или иначе, TLB выполняет трансляцию адреса почти тем же способом, как делает таблица страниц. Если возникает совпадение во время просмотра TLB, используя номер виртуальной страницы, соответствующий номер физической страницы извлекается из TLB и предоставляется вместе со смещением страницы в физически меченый кэш. Если физический адрес попадает в кэш, строка кэша, соответствующая физическому адресу, извлекается из кэша. В противном случае, может иметь место просмотр кэша более высоко уровня.
Виртуальная память позволяет исполнять программы, не требуя того, чтобы их полное адресное пространство постоянно находилось в физической памяти. Таким образом, программа может быть исполнена, используя меньше физической памяти, чем фактически необходимо. Вдобавок, виртуальная память изолирует программы одну от другой, потому что каждое виртуальное адресное пространство программы может быть независимо отображено на одной или более страницах физической памяти, размещенных исключительно для той программы. Также прикладные программы упрощаются, потому что они не ответственны за управление памятью. Однако определенные типы доступа памяти требуют дополнительной обработки трансляции адреса для успешного завершения.
Например, когда возникает смещенный доступ к памяти, требуемое слово находится частично в одной строке и частично в другой. Если две строки размещаются в различных страницах памяти, возникает пересечение границы страницы. Команда, которая относится к зоне памяти, пересекающей границу между двух страниц памяти, условно дублируется и исполняется в двух частях. Часть первой страницы дублированной команды завершает исполнение, основываясь на физическом адресе, ассоциированном с первой страницей памяти, и часть второй страницы дублированной команды завершает исполнение, основываясь на адресе, ассоциированном со второй страницей памяти. Таким образом, к различным страницам памяти осуществляется доступ отдельно посредством дублирования команды.
Множественные трансляции адреса обычно требуются для получения адресов физической памяти, ассоциированных с различными страницами памяти. Первая трансляция адреса выполняется для извлечения физического адреса, ассоциированного с первой страницей памяти, и вторая трансляция адреса выполняется для извлечения физического адреса, ассоциированного со второй страницей памяти. Дополнительная обработка трансляции адреса, требуемая для команды, которая создает условия пересечения границы, уменьшает производительность процессора и увеличивает затраты мощности, особенно если необходим доступ к таблице страниц, обслуживающейся в основной памяти.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В соответствии со способами и устройством, раскрываемыми в данном документе, выполнение трансляции адреса внутри процессора улучшено идентификацией виртуальных и физических адресов, которые вызывают пересечение границ между различными страницами в памяти. То есть команда идентифицируется в случае, если она вызовет смещенный доступ к памяти, который также пересекает границу страницы. Когда такое условие распознается, информация трансляции адреса, ассоциированная с обеими страницами в памяти, связывается вместе воедино и сохраняется в процессоре. Информация трансляции адреса, ассоциированного с обеими страницами, может быть получена, используя единственную трансляцию адреса, отвечающую за такую же зону пересечения страницы в памяти, к которой впоследствии осуществляют доступ. Таким образом, избегают множественных трансляций адреса.
В соответствии с одним вариантом осуществления процессора, процессор содержит схему, выполненную с возможностью распознавать доступ к зоне памяти, пересекающей границы страницы между первой и второй страницами памяти. Схема также выполнена с возможностью связывать информацию трансляции адреса, ассоциированную с первой и второй страницами памяти. Таким образом, отвечающая за последующее обращение к той же зоне памяти, информация трансляции адреса, ассоциированная с первой и второй страницами памяти, извлекается, основываясь на единственной трансляции адреса.
Когда впоследствии к такой же зоне в памяти осуществляется доступ, схема процессора распознает соответствующую команду и транслирует виртуальный адрес, представленный командой, в физический адрес, ассоциированный с первой страницей памяти. Схема извлекает физический адрес, ассоциированный со второй страницей памяти, основываясь на ранее установленной информации, связывающей виртуальный адрес с физическим адресом, ассоциированным со второй страницей памяти. Таким образом, информация трансляции адреса, ассоциированная с первой и второй страницами памяти, извлекается, основываясь на единственной трансляции адреса.
Конечно, настоящее изобретение не ограничено вышеуказанными признаками и преимуществами. Специалистам в данной области техники будут понятны дополнительные признаки и преимущества после прочтения следующего подробного описания и просмотра сопроводительных чертежей.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 представляет собой блок-схему, иллюстрирующую вариант осуществления процессора, имеющего схему для отслеживания пересечений границы страницы, во время трансляции адреса.
Фиг.2 представляет собой блок-схему, иллюстрирующую вариант осуществления схемы отслеживания пересечения страницы фиг.1.
Фиг.3 представляет собой логическую схему последовательности действий, иллюстрирующую вариант осуществления программной логики для хранения информации трансляции адреса в схеме отслеживания пересечения страниц фиг.1.
Фиг.4 представляет собой логическую схему последовательности действий, иллюстрирующую вариант осуществления программной логики для извлечения информации трансляции адреса из схемы отслеживания пересечения страницы фиг.1.
Фиг.5 представляет собой блок-схему, иллюстрирующую другой вариант осуществления схемы отслеживания пересечения страницы фиг.1.
ПОДРОБНОЕ ОПИСАНИЕ
Фиг.1 иллюстрирует вариант осуществления процессора 10, включающего в себя модуль 12 команд, модуль 14 исполнения, кэши 16 и 18 данных и команд, кэш 20 второго уровня и модуль 22 шинного интерфейса. Модуль 12 команд обеспечивает централизованное управление потоком команд в модуль 14 исполнения. Модуль 14 исполнения исполняет команды, отправленные модулем 12 команд, включающим в себя загрузку и сохранение информации в кэше 16 данных. Кэши 16 и 18 данных и команд хранят данные и команды, соответственно. Кэш 20 второго уровня обеспечивает высокоскоростной буфер памяти между кэшами 16 и 18 данных и команд и основной памятью, внешней к процессору, такой как DRAM 24 и/или одним или более жестким диском (HDD) 26. Модуль 22 шинного интерфейса обеспечивает механизм передачи данных, команд, адресов и сигналов управления между процессором 10 и устройствами, внешними к процессору, такими как периферия 28 и основная память.
Основная память представлена как виртуальная память в процессах, запущенных на процессоре 10. То есть страницы основной памяти размещаются как виртуальная память для пользования процессами во время исполнения программы. Управление памятью разделяет физическую память на страницы и обеспечивает отображение виртуальных адресов на страницы физической памяти, то есть прозрачно для процессов, осуществляющих доступ к памяти. Таблица страниц (не показана) обслуживается в основной памяти, чтобы сделать возможным отображение между адресами виртуальной и физической памяти. Модуль управления памятью (MMU) 30 или подобное устройство, входящее в состав процессора 10, обслуживает часто или недавно запрашиваемые элементы таблицы страниц, размещенные в процессоре 10 для улучшения выполнения трансляции адреса.
Остается добавить, что буфер ассоциативной трансляции (TLB) 32, входящий в состав или ассоциированный с MMU 30, хранит элементы таблицы страниц, к которым наиболее часто или недавно осуществлялся доступ. Трансляция адреса выполняется локально внутри процессора 10 посредством TLB. Если элемент TLB совпадает с данным номером виртуальной страницы, соответствующий номер физической страницы предоставляется TLB 32. Иначе выполняется высокоуровневая трансляция адреса, обычно программным обеспечением операционной системы, через таблицу страниц, обслуживаемую в основной памяти. Устройство 34 слежения пересечения страниц, входящее в состав или ассоциированное с MMU 30, улучшает выполнение трансляции адреса посредством уменьшения количества трансляций адреса, выполняемых для подгонки смещенного доступа к памяти, который пересекает границу страницы памяти.
Устройство 34 слежения пересечения страниц хранит информацию трансляции адреса, ассоциированную с одним или более виртуальными или физическими адресами, которые создают условие пересечения границы страницы. То есть если команда, исполняемая процессором 10, ссылается на зону памяти, пересекающую границу между двумя страницами физической памяти, то устройство 34 слежения пересечения страниц хранит информацию трансляции адреса, ассоциированную со второй страницей памяти, например физический адрес или номер страницы, идентифицирующий вторую страницу памяти, и связывает с виртуальным адресом. В этом случае, если последующая команда ссылается на такой же адрес, то устройство 34 слежения пересечения страницы может распознать адрес и предоставить соответствующую информацию о физическом адресе. Соответственно, TLB 32 выполняет только одну трансляцию адреса для извлечения номера физической страницы, ассоциированного с первой страницей памяти. Номер физической страницы, ассоциированный со второй страницей памяти, извлекается без трансляции из устройства 34 слежения пересечения страниц. То есть номер физической страницы, ассоциированный со второй страницей памяти, извлекается из устройства 34 слежения пересечения страниц вместо необходимости выполнения второго преобразования адреса. Команда дублируется и исполняется в двух частях, основываясь на соответствующих физических адресах. Команда может дублироваться множество раз, если команда вызывает пресечение нескольких строк кэша в одном из кэшей 16, 18, 22.
Фиг.2 иллюстрирует один способ осуществления устройства 34 слежения пересечения страниц и несколько этапов модуля загрузки-сохранения (то есть один из исполнительных модулей 14), входящий в состав процессора 10. В соответствии со способом осуществления, устройство 34 слежения пересечения страниц содержит регистр для сохранения информации трансляции адреса, ассоциированной с адресом, который создает условие пересечения границы страницы. В качестве альтернативы, устройство слежения пересечения границы может быть таблицей, имеющей множество элементов. В любом случае устройство 34 слежения пересечения страницы уменьшает обработку трансляции адреса посредством хранения информации трансляции адреса, ассоциированной с по меньшей мере одним виртуальным или физическим адресом, который вызывает пересечение границы страницы.
Работа устройства 34 слежения пересечения страницы в дальнейшем описывается, ссылаясь на программную логику фиг.3, и виртуальным адресом, представленным командой, который первоначально не совпадал ни с каким элементом из TLB 32. По существу, высокоуровневая трансляция адреса выполняется для получения физического адреса, соответствующего виртуальному адресу. Более детально, виртуальный адрес может содержать номер виртуальной страницы и смещение. Номер виртуальной страницы идентифицирует отдельную страницу памяти, в то время как смещение страницы идентифицирует положение внутри страницы. Так как не имеющий совпадения в TLB элемент первоначально существует в этом примере, этап 36 трансляции адреса первого уровня указывает необходимость высокоуровневой трансляции адреса, например, как проиллюстрировано блоком 100 фиг.3. Этап 38 высокоуровневой трансляции адреса требует трансляции виртуального адреса, например, посредством доступа к более высокоуровневой TLB (не показан), входящего в состав процессора 10 или таблицу страниц, обслуживаемую в основной памяти. В любом случае, в итоге будет получен физический адрес, связанный с виртуальным адресом.
Информация трансляции адреса хранится в элементе TLB, например, как проиллюстрировано блоком 102 фиг.3. В этом случае информация трансляции адреса более легкодоступна, в случае если такой же виртуальный адрес впоследствии запрошен. В одном варианте осуществления этап 40 выбора физического адреса, такой как схема мультиплексора или любой другой этап, в котором известен виртуальный адрес, также определяет, транслируется ли виртуальный адрес в физическую зону памяти, которая пересекает границу между двух страниц, например, как проиллюстрировано блоком 104 фиг.3. Например, часть смещения страницы виртуального адреса сравнивается с установочными параметрами размера страницы памяти, чтобы определить, возникнет ли пересечение границы страницы. Если адрес транслируется в зону памяти, расположенную внутри единственной страницы памяти, то исполнение инструкции завершается, основываясь на преобразованном физическом адресе, например, как проиллюстрировано блоком 106 фиг.3. Например, этап 42 доступа к кэшу определяет, содержит ли кэш 16 данных или кэш 20 L2 строку, помеченную физическим адресом, и если нет, то он извлекает ее из внешней памяти.
Однако если виртуальный адрес ссылается на зону памяти, охватывающую множество страниц памяти, этап 44 дублирования команды дублирует команду, например, как проиллюстрировано блоком 108 фиг.3. Например, если адрес ссылается на четверное слово, имеющее четыре байта, расположенных в одной странице физической памяти, и четыре байта, расположенных на другой странице, то ранее транслированный физический адрес используется для извлечения четырех байтов, постоянно находящихся в первой странице памяти. Для извлечения четырех байтов, расположенных во второй странице памяти, физический адрес, идентифицирующий вторую страницу, получают на этапе 38 высокоуровневой трансляции адреса, например, как проиллюстрировано блоком 110 фиг.3. Часть первой страницы дублированной команды завершает исполнение, основываясь на физическом адресе, идентифицирующем первую страницу памяти, например, как проиллюстрировано блоком 112 фиг.3. Часть второй страницы дублированной команды завершает исполнение, основываясь на физическом адресе, идентифицирующем вторую страницу памяти, например, как проиллюстрировано блоком 114 фиг.3. Этап 46 обратной записи гарантирует правильное хранение результатов исполнения команды.
Так как пересечение границы страницы обнаружено, то информация трансляции адреса, полученная для второй страницы памяти, хранится для последующего использования. Однако вместо хранения информации в различных элементах TLB, она хранится в поле 48 физического адреса устройства 34 слежения пересечения страницы, например, как проиллюстрировано блоком 116 фиг.3. Значение указателя хранится в поле 50 указателя. Значение указателя связывает элемент в устройстве слежения пересечения границы, содержащий информацию трансляции адреса второй страницы с элементом TLB, содержащим информацию трансляции адреса первой страницы.
В одном варианте осуществления поле 50 указателя хранит значение индекса элемента TLB, содержащего информацию трансляции адреса, ассоциированную с первой страницей памяти. В другом варианте осуществления поле 50 указателя хранит физический адрес или номер страницы, ассоциированный с первой страницей памяти. В еще одном варианте осуществления поле 50 указателя хранит виртуальный адрес, который создает условие пересечения границы. Специалисты в данной области техники легко признают, что широкое множество значений может храниться в поле 50 указателя для того, чтобы связать информацию 48 физического адреса с элементом TLB, ассоциированным с первой страницей памяти. Более того, этап 44 дублирования команды может идентифицировать пересечение границы страницы вместо этапа 40 выбора физического адреса, например, идентифицируя физические адреса, которые вызывают пересечения границ страницы. Безотносительно, если к такой же зоне памяти впоследствии осуществляется доступ, устройство 34 слежения пересечения страниц распознает условие пересечения границы, проверяя поле 50 указателя. В ответ устройство 34 слежения предоставляет информацию трансляции адреса, ассоциированную со второй страницей.
Работа устройства 34 слежения пересечения страниц описана ниже со ссылкой на программную логику фиг.4 и последующей командой, которая представляет такой же виртуальный адрес, который вызвал условие пересечения границы, ранее рассмотренное. Так как TLB 32 содержит элемент совпадения в этом примере, то физический адрес или номер страницы, ассоциированный с виртуальным адресом, предоставляется посредством TLB 32, например, как проиллюстрировано блоком 200 фиг.4. Этап 40 выбора физического адреса определяет, ссылается ли виртуальный адрес на зону в памяти, которая пересекает границу страницы, например, как проиллюстрировано блоком 202 фиг.4. В качестве альтернативы, этап 44 дублирования команды определяет, вызывает ли соответствующий физический адрес условие пересечения границы страницы. Безотносительно, если условие пересечения границы не обнаружено, команда завершает исполнение, основанное на информации физического адреса, предоставленного TLB 32, например, как проиллюстрировано блоком 204 фиг.4.
Однако в настоящем примере известно, что виртуальный адрес вызывает пересечение границы страницы между первой и второй страницами памяти. Таким образом, команда дублируется, как и ранее описано, например, как проиллюстрировано блоком 206 фиг.4. Более того, проверяется поле 50 указателя устройства 34 слежения пересечения страницы для определения, сформирована ли связь с виртуальным адресом. В одном варианте осуществления индекс элемента TLB совпадения сравнивается с одним или более значениями, хранящимися в поле 50 указателя. В другом варианте осуществления виртуальный адрес или соответствующий физический адрес (или номер страницы), предоставленный посредством TLB 32, сравнивается с одним или более значениями адресов, хранящимися в поле 50 указателя.
Безотносительно, информация, хранящаяся в поле 50 указателя, указывает, содержит ли устройство 34 слежения требуемую информацию физического адреса. Пока поле 52 действительности не указывает, что элемент недействительный, информация о физическом адресе, ассоциированная со второй страницей, извлекается из устройства 34 слежения пересечения страницы, например, как проиллюстрировано блоком 208 фиг.4. Поле 52 действительности указывает недействительность, когда соответствующий элемент в TLB объявлен недействительным.
Часть первой страницы дублированной команды завершает исполнение, основанное на физическом адресе, идентифицирующем первую страницу памяти, как предоставленным TLB 32, например, как проиллюстрировано блоком 210 фиг.4. Часть второй страницы дублированной команды завершает исполнение, основываясь на физическом адресе, идентифицирующем вторую страницу памяти, как извлеченную из устройства 34 слежения пересечения страницы, например, как проиллюстрированным блоком 212 фиг.4. Схема (не показана) предотвращает возникновение последующей трансляции адреса в случае, когда устройство 34 слежения пересечения страницы содержит информацию трансляции адреса для второй страницы. Таким образом, выполняется только единственная трансляция адреса, когда устройство 34 слежения пересечения страницы распознает условие пересечения границы страницы.
Фиг.5 иллюстрирует другой вариант осуществления устройства 34 слежения пересечения страницы. В соответствии с эти вариантом осуществления устройство 34 слежения реализуется как часть TLB 32. Каждый элемент TLB 32 имеет поле 54 действительности, поле 56 указателя, индекс 58, поле 60 метки и два поля физических адресов 62 и 64. Поле 60 метки хранит виртуальный адрес (или номер страницы) тех виртуальных адресов, чья информация физического адреса обслуживается TLB 32. По существу, поле 60 метки перебирается в течение выборки TLB для определения, хранится ли в TLB 32 запись, совпадающая с данным виртуальным адресом.
Первое поле 62 физического адреса содержит информацию физического адреса, такую как полный адрес или номер физической страницы, соответствующий каждому виртуальному адресу, имеющему запись, обслуживаемую TLB 32. Если известно, что конкретный виртуальный адрес вызывает пересечение границы между двумя страницами памяти, то второе поле 64 физического адреса содержит информацию физического адреса, ассоциированную со второй страницей памяти. Поле 56 указателя содержит один или более битов, связывающих два поля 62 и 64 физических адресов, в то время как соответствующий элемент TLB ассоциирован с виртуальным адресом, который создает условие пересечения границы.
Работа устройства 34 слежения пересечения страницы, реализованная как часть TLB 32, ниже описана со ссылкой на виртуальный адрес, представленный командой, который первоначально не совпадает ни с каким элементом из TLB 32. Высокоуровневая трансляция адреса выполняется для получения физического адреса, соответствующего виртуальному адресу, например, как проиллюстрировано блоком 100 фиг.3. Поле 62 физического адреса в соответствующем элементе TLB обновляется результатами трансляции, например, как проиллюстрировано блоком 102 фиг.3. Если этап 40 выбора физического адреса определяет то, что виртуальный адрес вызовет пересечение границы между двумя страницами памяти в течении доступа к памяти, то выполняется вторая высокоуровневая трансляция адреса. В качестве альтернативы, этап 44 дублирования команды может обнаружить условие пересечения границы страницы, основываясь на соответствующем физическом адресе. Безотносительно, физический адрес, идентифицирующий вторую страницу памяти, получают в течение второй высокоуровневой трансляции адреса, например, как проиллюстрировано блоком 110 фиг.3. В этом случае информация физического адреса для обеих страниц доступна для завершения исполнения команды.
Команда дублируется, и исполнение завершается, используя два адреса физической памяти, как ранее описано, например, как проиллюстрировано блоками 108, 112 и 114 фиг.3. В дополнение, информация физического адреса, ассоциированная со второй страницей памяти, хранится в таком же элементе TLB, содержащем информацию физического адреса, ассоциированную с первой страницей, например, как проиллюстрировано блоком 116 фиг.3. То есть в одном и том же элементе TLB информация физического адреса, ассоциированная с первой страницей, хранится в первом поле 62 адреса, а информация физического адреса, ассоциированная со второй страницей, хранится во втором поле 64 адреса. Поле 56 указателя в элементе TLB устанавливается для указания того, что два физических адреса связаны и ассоциированы с виртуальным адресом, который создает условие пересечения границы страницы. В этом случае, если последующая команда ссылается на такой же виртуальный или физический адрес, необходима только единственная трансляция адреса для получения информации физического адреса, ассоциированной с первой и второй страницами памяти.
Работа устройства 34 слежения пересечения страницы, выполненная как часть TLB 32, ниже описана со ссылкой на последующую команду, осуществляющую доступ к такому же виртуальному адресу, который создает условие пересечения границы страницы, которое ранее описано. Когда осуществляется доступ к TLB 32, элемент совпадения идентифицируется сравнением виртуального адреса со значением метки, хранящимся в TLB 32, например, как проиллюстрировано блоком 200 фиг.4. В настоящем примере известно, что виртуальный адрес вызывает пересечение границы страницы между первой и второй страницами памяти. Таким образом, команда дублируется, как ранее описано, например, как проиллюстрировано блоком 206 фиг.4. Более того, поле 62 первого адреса элемента TLB совпадения предоставляет информацию физического адреса, ассоциированную с первой страницей памяти. Исполнение части первой страницы дублированной команды завершается, основываясь на информации физического адреса, полученного из поля 62 первого адреса, например, как проиллюстрировано блоком 210 фиг.4.
В дополнение поле 56 указателя в элементе TLB совпадения указывает, что связаны первое и второе поля 62 и 64 физического адреса. Соответственно информация физического адреса, хранящаяся во втором поле 64 адреса, извлекается, например, как проиллюстрировано блоком 208 фиг.4. Информация физического адреса, извлеченная из второго поля 64 адреса, идентифицирует вторую страницу памяти. Исполнение части второй страницы дублированной команды завершается, основываясь на информации физического адреса, полученной из второго поля 64 адреса, например, как проиллюстрировано блоком 212 фиг.4. В этом случае выполняется только единственная трансляция адреса в течение исполнения последующей команды.
Если поле 54 действительности указывает, что элемент TLB недействителен, то трансляция адреса не выполняется, и этап 38 высокоуровневой трансляции адреса получает необходимые физические адреса, как ранее описано, например, как проиллюстрировано блоками 100 и 110 фиг.3. Более того, поле 56 указателя может также указывать, что связь между двумя страницами памяти недействительна в ответ на сконфигурированный регистр, что повлияет на то, что трансляция адреса будет обновлена или элемент TLB будет перезаписан. Когда встречается недействительное соединение пересечения страницы, информация трансляции адреса, ассоциированная со связанной страницей, не используется. Вместо этого выполняется последующая трансляция адреса.
Принимая во внимание вышеописанные варианты и применения, должно быть понятно, что настоящее изобретение не ограничено вышеупомянутым описанием, так же не ограничено сопроводительными чертежами. Вместо этого настоящее изобретение ограничено только следующей формулой изобретения и ее законными эквивалентами.
Claims (21)
1. Способ доступа к данным, осуществляемый в процессоре, содержащий этапы, на которых:
получают представление виртуального адреса данных на этапе трансляции адреса первого уровня, причем данные сохраняют в физической памяти, причем данные имеют первую часть данных и вторую часть данных, причем первую часть данных сохраняют в первом физическом адресе на первой странице в физической памяти, причем вторую часть данных сохраняют во втором физическом адресе на второй странице в физической памяти, причем виртуальный адрес данных соответствует первому физическому адресу и второму физическому адресу;
извлекают первый физический адрес на этапе трансляции адреса первого уровня;
предоставляют первый физический адрес;
извлекают второй физический адрес посредством доступа к этапу трансляции адреса второго уровня;
предоставляют второй физический адрес;
создают связь между вторым физическим адресом и первым физическим адресом;
получают второе представление виртуального адреса данных на этапе трансляции адреса первого уровня;
извлекают первый физический адрес на этапе трансляции адреса первого уровня; и
извлекают на этапе трансляции адреса первого уровня второй физический адрес из регистра, используя связь между вторым физическим адресом и первым физическим адресом.
получают представление виртуального адреса данных на этапе трансляции адреса первого уровня, причем данные сохраняют в физической памяти, причем данные имеют первую часть данных и вторую часть данных, причем первую часть данных сохраняют в первом физическом адресе на первой странице в физической памяти, причем вторую часть данных сохраняют во втором физическом адресе на второй странице в физической памяти, причем виртуальный адрес данных соответствует первому физическому адресу и второму физическому адресу;
извлекают первый физический адрес на этапе трансляции адреса первого уровня;
предоставляют первый физический адрес;
извлекают второй физический адрес посредством доступа к этапу трансляции адреса второго уровня;
предоставляют второй физический адрес;
создают связь между вторым физическим адресом и первым физическим адресом;
получают второе представление виртуального адреса данных на этапе трансляции адреса первого уровня;
извлекают первый физический адрес на этапе трансляции адреса первого уровня; и
извлекают на этапе трансляции адреса первого уровня второй физический адрес из регистра, используя связь между вторым физическим адресом и первым физическим адресом.
2. Способ по п.1, дополнительно содержащий этап, на котором сохраняют информацию трансляции адреса первой части данных в буфере ассоциативной трансляции (TLB), причем информация трансляции адреса включает в себя виртуальный адрес и первый физический адрес.
3. Способ по п.2, дополнительно содержащий этап, на котором сохраняют второй физический адрес в устройстве слежения пересечения страниц, которое может осуществлять доступ к TLB.
4. Способ по п.1, дополнительно содержащий этап, на котором дублируют команду, ассоциированную с виртуальным адресом, посредством извлечения первой части данных и второй части данных.
5. Способ по п.3, в котором этап, на котором создают связь между вторым физическим адресом и первым физическим адресом, содержит этап, на котором ассоциируют информацию трансляции адреса второй части данных с информацией трансляции адреса первой части данных посредством сохранения значения указателя в поле индикатора устройства слежения пересечения страниц, причем поле указателя ассоциировано со второй частью данных.
6. Способ по п.5, в котором значение указателя включает в себя значение индекса элемента TLB, причем элемент TLB включает в себя информацию трансляции адреса первой части данных.
7. Способ по п.5, в котором значение указателя включает в себя первый физический адрес.
8. Способ по п.1, дополнительно содержащий этап, на котором обрывают связь, установленную в ответ на первое представление, причем обрыв связи включает в себя этап, на котором объявляют недействительной информацию, связывающую информацию о физическом адресе, ассоциированную со второй страницей, с информацией о виртуальном адресе, ассоциированной с первой страницей.
9. Способ по п.8, в котором связь обрывают в ответ на перезапись элемента буфера ассоциативной трансляции (TLB).
10. Процессор для доступа к данным, причем процессор выполнен с возможностью:
получения первого представления виртуального адреса данных на этапе трансляции адреса первого уровня, причем данные сохранены в физической памяти, причем данные имеют первую часть данных и вторую часть данных, причем первая часть данных сохранена в первом физическом адресе на первой странице в физической памяти, причем вторая часть данных сохранена во втором физическом адресе на второй странице в физической памяти, причем виртуальный адрес данных соответствует первому физическому адресу и второму физическому адресу;
извлечения первого физического адреса на этапе трансляции адреса первого уровня;
предоставления первого физического адреса;
извлечения второго физического адреса посредством доступа к этапу трансляции адреса второго уровня;
предоставления второго физического адреса;
сохранения второго физического адреса в таблице устройства слежения пересечения страниц; создания связи между вторым физическим адресом и первым физическим адресом;
получения второго представления виртуального адреса данных на этапе трансляции адреса первого уровня;
извлечения первого физического адреса на этапе трансляции адреса первого уровня; и извлечения на этапе трансляции адреса первого уровня второго физического адреса из таблицы устройства слежения пересечения страниц, используя связь между вторым физическим адресом и первым физическим адресом.
получения первого представления виртуального адреса данных на этапе трансляции адреса первого уровня, причем данные сохранены в физической памяти, причем данные имеют первую часть данных и вторую часть данных, причем первая часть данных сохранена в первом физическом адресе на первой странице в физической памяти, причем вторая часть данных сохранена во втором физическом адресе на второй странице в физической памяти, причем виртуальный адрес данных соответствует первому физическому адресу и второму физическому адресу;
извлечения первого физического адреса на этапе трансляции адреса первого уровня;
предоставления первого физического адреса;
извлечения второго физического адреса посредством доступа к этапу трансляции адреса второго уровня;
предоставления второго физического адреса;
сохранения второго физического адреса в таблице устройства слежения пересечения страниц; создания связи между вторым физическим адресом и первым физическим адресом;
получения второго представления виртуального адреса данных на этапе трансляции адреса первого уровня;
извлечения первого физического адреса на этапе трансляции адреса первого уровня; и извлечения на этапе трансляции адреса первого уровня второго физического адреса из таблицы устройства слежения пересечения страниц, используя связь между вторым физическим адресом и первым физическим адресом.
11. Процессор по п.10, причем процессор дополнительно выполнен с возможностью дублирования команды, ассоциированной с виртуальным адресом посредством извлечения первой части данных и второй части данных.
12. Процессор по п.10, причем процессор дополнительно выполнен с возможностью хранения информации о виртуальном адресе и информации о физическом адресе, ассоциированной с первой страницей памяти в элементе буфера ассоциативной трансляции.
13. Процессор по п.12, причем процессор дополнительно выполнен с возможностью хранения информации о физическом адресе, ассоциированной со второй страницей памяти, и информации, идентифицирующей элемент буфера ассоциативной трансляции.
14. Способ выполнения трансляции адреса, осуществляемый в процессоре, содержащий этапы, на которых:
определяют, что виртуальный адрес, ассоциированный с командой, соответствует зоне памяти, причем эта зона памяти охватывает границу страницы между первой страницей памяти и второй страницей памяти;
транслируют виртуальный адрес в первый физический адрес, ассоциированный с первой страницей памяти; и
извлекают второй физический адрес, ассоциированный со второй страницей памяти на основании ранее установленной информации, связывающей виртуальный адрес со вторым физическим адресом без выполнения второй трансляции адреса.
определяют, что виртуальный адрес, ассоциированный с командой, соответствует зоне памяти, причем эта зона памяти охватывает границу страницы между первой страницей памяти и второй страницей памяти;
транслируют виртуальный адрес в первый физический адрес, ассоциированный с первой страницей памяти; и
извлекают второй физический адрес, ассоциированный со второй страницей памяти на основании ранее установленной информации, связывающей виртуальный адрес со вторым физическим адресом без выполнения второй трансляции адреса.
15. Способ по п.14, дополнительно содержащий этап, на котором дублируют команду, причем дублированная команда завершает исполнение, основываясь на первом физическом адресе и основываясь на втором физическом адресе.
16. Способ по п.14, в котором этап, на котором транслируют виртуальный адрес, содержит этапы, на которых:
идентифицируют элемент буфера ассоциативной трансляции (TLB) в TLB, причем элемент TLB соответствует виртуальному адресу; и
извлекают первый физический адрес из элемента TLB.
идентифицируют элемент буфера ассоциативной трансляции (TLB) в TLB, причем элемент TLB соответствует виртуальному адресу; и
извлекают первый физический адрес из элемента TLB.
17. Способ по п.14, в котором извлечение второго физического адреса включает в себя этапы, на которых:
определяют, содержит ли первый элемент буфера ассоциативной трансляции (TLB) в TLB указание на связь между первой страницей памяти и второй страницей памяти; и
извлекают второй физический адрес из первого элемента TLB, если первый элемент TLB содержит указание на связь между первой страницей памяти и второй страницей памяти.
определяют, содержит ли первый элемент буфера ассоциативной трансляции (TLB) в TLB указание на связь между первой страницей памяти и второй страницей памяти; и
извлекают второй физический адрес из первого элемента TLB, если первый элемент TLB содержит указание на связь между первой страницей памяти и второй страницей памяти.
18. Процессор для выполнения трансляции адреса, причем процессор выполнен с возможностью:
определения, что виртуальный адрес, ассоциированный с командой, соответствует зоне памяти, причем эта зона памяти охватывает границу страницы между первой страницей памяти и второй страницей памяти;
трансляции виртуального адреса в первый физический адрес, ассоциированный с первой страницей памяти; и
извлечения второго физического адреса, ассоциированного со второй страницей памяти на основании ранее установленной информации, связывающей виртуальный адрес со вторым физическим адресом без выполнения второй трансляции адреса.
определения, что виртуальный адрес, ассоциированный с командой, соответствует зоне памяти, причем эта зона памяти охватывает границу страницы между первой страницей памяти и второй страницей памяти;
трансляции виртуального адреса в первый физический адрес, ассоциированный с первой страницей памяти; и
извлечения второго физического адреса, ассоциированного со второй страницей памяти на основании ранее установленной информации, связывающей виртуальный адрес со вторым физическим адресом без выполнения второй трансляции адреса.
19. Процессор по п.18, причем процессор дополнительно выполнен с возможностью дублирования команды и исполнения дублированной команды, причем дублированная команда завершает исполнение, основываясь на первом физическом адресе, и основываясь на втором физическом адресе.
20. Процессор по п.18, причем процессор дополнительно выполнен с возможностью идентификации элемента буфера ассоциативной трансляции (TLB) в TLB, причем элемент TLB соответствует виртуальному адресу, и извлечения первого физического адреса из элемента TLB.
21. Процессор по п.18, причем процессор дополнительно выполнен с возможностью определения, содержит ли первый элемент буфера ассоциативной трансляции (TLB) в TLB указание на связь между первой страницей памяти и второй страницей памяти, и извлечения второго физического адреса из первого элемента TLB, если первый элемент TLB содержит указание на связь между первой страницей памяти и второй страницей памяти.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/672,066 US8239657B2 (en) | 2007-02-07 | 2007-02-07 | Address translation method and apparatus |
US11/672,066 | 2007-02-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2009133295A RU2009133295A (ru) | 2011-03-20 |
RU2461870C2 true RU2461870C2 (ru) | 2012-09-20 |
Family
ID=39495104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2009133295/08A RU2461870C2 (ru) | 2007-02-07 | 2008-02-07 | Способ и устройство трансляции адреса |
Country Status (12)
Country | Link |
---|---|
US (1) | US8239657B2 (ru) |
EP (1) | EP2118753B1 (ru) |
JP (2) | JP2010518519A (ru) |
KR (1) | KR101057526B1 (ru) |
CN (1) | CN101606134B (ru) |
BR (1) | BRPI0806994A2 (ru) |
CA (1) | CA2675702A1 (ru) |
IN (1) | IN2014MN01739A (ru) |
MX (1) | MX2009007982A (ru) |
RU (1) | RU2461870C2 (ru) |
TW (1) | TWI381275B (ru) |
WO (1) | WO2008098140A1 (ru) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8626989B2 (en) * | 2011-02-02 | 2014-01-07 | Micron Technology, Inc. | Control arrangements and methods for accessing block oriented nonvolatile memory |
WO2013085518A1 (en) * | 2011-12-08 | 2013-06-13 | Intel Corporation | A method, apparatus, and system for efficiently handling multiple virtual address mappings during transactional execution |
US9460018B2 (en) | 2012-05-09 | 2016-10-04 | Qualcomm Incorporated | Method and apparatus for tracking extra data permissions in an instruction cache |
RU2504000C1 (ru) * | 2012-07-20 | 2014-01-10 | Открытое акционерное общество "КОНСТРУКТОРСКОЕ БЮРО "КОРУНД-М" (ОАО КБ "КОРУНД-М") | Способ копирования данных в кэш-памяти и устройство для его осуществления |
US8819342B2 (en) | 2012-09-26 | 2014-08-26 | Qualcomm Incorporated | Methods and apparatus for managing page crossing instructions with different cacheability |
US9348757B2 (en) | 2012-10-08 | 2016-05-24 | International Business Machines Corporation | System supporting multiple partitions with differing translation formats |
US9355040B2 (en) | 2012-10-08 | 2016-05-31 | International Business Machines Corporation | Adjunct component to provide full virtualization using paravirtualized hypervisors |
US9600419B2 (en) | 2012-10-08 | 2017-03-21 | International Business Machines Corporation | Selectable address translation mechanisms |
US9280488B2 (en) | 2012-10-08 | 2016-03-08 | International Business Machines Corporation | Asymmetric co-existent address translation structure formats |
US9740624B2 (en) | 2012-10-08 | 2017-08-22 | International Business Machines Corporation | Selectable address translation mechanisms within a partition |
US9355032B2 (en) | 2012-10-08 | 2016-05-31 | International Business Machines Corporation | Supporting multiple types of guests by a hypervisor |
US9804969B2 (en) | 2012-12-20 | 2017-10-31 | Qualcomm Incorporated | Speculative addressing using a virtual address-to-physical address page crossing buffer |
KR102002900B1 (ko) | 2013-01-07 | 2019-07-23 | 삼성전자 주식회사 | 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법 |
US20140310500A1 (en) * | 2013-04-11 | 2014-10-16 | Advanced Micro Devices, Inc. | Page cross misalign buffer |
US9632948B2 (en) * | 2014-09-23 | 2017-04-25 | Intel Corporation | Multi-source address translation service (ATS) with a single ATS resource |
US11442760B2 (en) | 2016-07-01 | 2022-09-13 | Intel Corporation | Aperture access processors, methods, systems, and instructions |
US11106596B2 (en) * | 2016-12-23 | 2021-08-31 | Advanced Micro Devices, Inc. | Configurable skewed associativity in a translation lookaside buffer |
US20190163642A1 (en) | 2017-11-27 | 2019-05-30 | Intel Corporation | Management of the untranslated to translated code steering logic in a dynamic binary translation based processor |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5060137A (en) * | 1985-06-28 | 1991-10-22 | Hewlett-Packard Company | Explicit instructions for control of translation lookaside buffers |
US5765022A (en) * | 1995-09-29 | 1998-06-09 | International Business Machines Corporation | System for transferring data from a source device to a target device in which the address of data movement engine is determined |
US5768575A (en) * | 1989-02-24 | 1998-06-16 | Advanced Micro Devices, Inc. | Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions |
US5784707A (en) * | 1994-01-12 | 1998-07-21 | Sun Microsystems, Inc. | Method and apparatus for managing virtual computer memory with multiple page sizes |
RU2004123622A (ru) * | 2001-12-31 | 2005-03-27 | Интел Корпорейшн (Us) | Способ и устройство для приостановки исполнения потока до момента осуществления определенного доступа к памяти |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05298186A (ja) * | 1992-04-20 | 1993-11-12 | Nec Corp | 情報処理装置 |
US5734881A (en) * | 1995-12-15 | 1998-03-31 | Cyrix Corporation | Detecting short branches in a prefetch buffer using target location information in a branch target cache |
JP2000010863A (ja) * | 1998-06-24 | 2000-01-14 | Sony Computer Entertainment Inc | 情報処理装置および方法、並びに提供媒体 |
US6681311B2 (en) * | 2001-07-18 | 2004-01-20 | Ip-First, Llc | Translation lookaside buffer that caches memory type information |
CN100495319C (zh) * | 2003-12-23 | 2009-06-03 | 凌阳科技股份有限公司 | 处理器中读取未对齐资料的方法与装置 |
US7340582B2 (en) | 2004-09-30 | 2008-03-04 | Intel Corporation | Fault processing for direct memory access address translation |
US7334107B2 (en) | 2004-09-30 | 2008-02-19 | Intel Corporation | Caching support for direct memory access address translation |
US20060174066A1 (en) * | 2005-02-03 | 2006-08-03 | Bridges Jeffrey T | Fractional-word writable architected register for direct accumulation of misaligned data |
US7366869B2 (en) * | 2005-03-17 | 2008-04-29 | Qualcomm Incorporated | Method and system for optimizing translation lookaside buffer entries |
US20060248279A1 (en) * | 2005-05-02 | 2006-11-02 | Al-Sukhni Hassan F | Prefetching across a page boundary |
US7404042B2 (en) * | 2005-05-18 | 2008-07-22 | Qualcomm Incorporated | Handling cache miss in an instruction crossing a cache line boundary |
-
2007
- 2007-02-07 US US11/672,066 patent/US8239657B2/en active Active
-
2008
- 2008-02-07 WO PCT/US2008/053338 patent/WO2008098140A1/en active Application Filing
- 2008-02-07 CN CN2008800043245A patent/CN101606134B/zh not_active Expired - Fee Related
- 2008-02-07 MX MX2009007982A patent/MX2009007982A/es active IP Right Grant
- 2008-02-07 EP EP08729314.8A patent/EP2118753B1/en not_active Not-in-force
- 2008-02-07 RU RU2009133295/08A patent/RU2461870C2/ru not_active IP Right Cessation
- 2008-02-07 IN IN1739MUN2014 patent/IN2014MN01739A/en unknown
- 2008-02-07 BR BRPI0806994-8A2A patent/BRPI0806994A2/pt not_active IP Right Cessation
- 2008-02-07 KR KR1020097018613A patent/KR101057526B1/ko active IP Right Grant
- 2008-02-07 CA CA002675702A patent/CA2675702A1/en not_active Abandoned
- 2008-02-07 JP JP2009549240A patent/JP2010518519A/ja active Pending
- 2008-02-12 TW TW097104973A patent/TWI381275B/zh not_active IP Right Cessation
-
2012
- 2012-11-09 JP JP2012247186A patent/JP5373173B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5060137A (en) * | 1985-06-28 | 1991-10-22 | Hewlett-Packard Company | Explicit instructions for control of translation lookaside buffers |
US5768575A (en) * | 1989-02-24 | 1998-06-16 | Advanced Micro Devices, Inc. | Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions |
US5784707A (en) * | 1994-01-12 | 1998-07-21 | Sun Microsystems, Inc. | Method and apparatus for managing virtual computer memory with multiple page sizes |
US5765022A (en) * | 1995-09-29 | 1998-06-09 | International Business Machines Corporation | System for transferring data from a source device to a target device in which the address of data movement engine is determined |
RU2004123622A (ru) * | 2001-12-31 | 2005-03-27 | Интел Корпорейшн (Us) | Способ и устройство для приостановки исполнения потока до момента осуществления определенного доступа к памяти |
Also Published As
Publication number | Publication date |
---|---|
TWI381275B (zh) | 2013-01-01 |
JP5373173B2 (ja) | 2013-12-18 |
MX2009007982A (es) | 2009-08-07 |
US20080189506A1 (en) | 2008-08-07 |
CN101606134A (zh) | 2009-12-16 |
WO2008098140A1 (en) | 2008-08-14 |
JP2010518519A (ja) | 2010-05-27 |
RU2009133295A (ru) | 2011-03-20 |
IN2014MN01739A (ru) | 2015-07-03 |
EP2118753A1 (en) | 2009-11-18 |
BRPI0806994A2 (pt) | 2014-04-08 |
TW200842580A (en) | 2008-11-01 |
JP2013065325A (ja) | 2013-04-11 |
US8239657B2 (en) | 2012-08-07 |
KR20090117798A (ko) | 2009-11-12 |
EP2118753B1 (en) | 2013-07-10 |
CN101606134B (zh) | 2013-09-18 |
KR101057526B1 (ko) | 2011-08-17 |
CA2675702A1 (en) | 2008-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2461870C2 (ru) | Способ и устройство трансляции адреса | |
RU2427892C2 (ru) | Способ и устройство для установки политики кэширования в процессоре | |
KR101019266B1 (ko) | 물리적으로-태그된 동작을 사용하는 가상으로-태그된 명령 캐시 | |
US6651132B1 (en) | System and method for emulating the operation of a translation look-aside buffer | |
US7426626B2 (en) | TLB lock indicator | |
KR100372293B1 (ko) | 가상및물리인덱스캐시에서가상번지용캐시가능속성 | |
US6047357A (en) | High speed method for maintaining cache coherency in a multi-level, set associative cache hierarchy | |
US9086987B2 (en) | Detection of conflicts between transactions and page shootdowns | |
US10545879B2 (en) | Apparatus and method for handling access requests | |
US20180101480A1 (en) | Apparatus and method for maintaining address translation data within an address translation cache | |
US7243192B2 (en) | Cache memory architecture with system controller device that compares cache tags to memory addresses received from microprocessor | |
JPWO2007094046A1 (ja) | コヒーレンシ維持装置およびコヒーレンシ維持方法 | |
US20070094476A1 (en) | Updating multiple levels of translation lookaside buffers (TLBs) field | |
TW201617886A (zh) | 指令快取記憶體轉譯管理 | |
US7472227B2 (en) | Invalidating multiple address cache entries | |
US9086986B2 (en) | Detection of conflicts between transactions and page shootdowns | |
JP4666511B2 (ja) | データ処理におけるメモリキャッシング | |
US4648033A (en) | Look-aside buffer LRU marker controller | |
US6574698B1 (en) | Method and system for accessing a cache memory within a data processing system | |
RU2433456C2 (ru) | Виртуально маркированный кэш команд с поведением физически маркированного | |
JPH0991199A (ja) | 階層記憶システムにおけるデバイスアクセス方法 | |
JPH031250A (ja) | キャッシュメモリ検索装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20190208 |