RU2438165C2 - Устройство и способы для уменьшения вытеснений в многоуровневой иерархии кэша - Google Patents
Устройство и способы для уменьшения вытеснений в многоуровневой иерархии кэша Download PDFInfo
- Publication number
- RU2438165C2 RU2438165C2 RU2009132554/08A RU2009132554A RU2438165C2 RU 2438165 C2 RU2438165 C2 RU 2438165C2 RU 2009132554/08 A RU2009132554/08 A RU 2009132554/08A RU 2009132554 A RU2009132554 A RU 2009132554A RU 2438165 C2 RU2438165 C2 RU 2438165C2
- Authority
- RU
- Russia
- Prior art keywords
- cache
- line
- level
- higher level
- placement
- 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
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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
-
- 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
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- 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
Изобретение относится к области кэш-памяти, и, более конкретно, к системам памяти с кэшем "жертвенных" данных, данных и команд. Техническим результатом является обеспечение сокращений требований по питанию в системах памяти для мобильных приложений и сокращения требований по питанию в обрабатывающих системах. Используются оборудование и способы для сокращения размещений в кэше более высокого уровня строк кэша, смещенных из кэша более низкого уровня. Когда определено, что смещенные строки были уже размещены на более высоком уровне, предотвращается размещение смещенных строк кэша в кэш следующего уровня, соответственно, с уменьшением вытеснений. С этой целью выбирается строка для смещения в кэше более низкого уровня. Идентифицируется информация, связанная с выбранной строкой, которая указывает, что выбранная строка присутствует в кэше более высокого уровня. Размещение выбранной строки в кэше более высокого уровня предотвращается на основе идентифицированной информации. Предотвращение размещения выбранной строки сохраняет энергию, которая была бы связана с размещением. 3 н. и 17 з.п. ф-лы, 3 ил.
Description
Область техники, к которой относится изобретение
Настоящее раскрытие в целом относится к области кэш-памяти и, более конкретно, к системам памяти с кэшем «жертвенных» данных, данных и команд.
Предшествующий уровень техники
Многие мобильные продукты, например, сотовые телефоны, ноутбуки, "карманные" компьютеры и т.п. используют исполняемые процессором программы, например, программы связи и мультимедийные программы. Система обработки для таких продуктов включает в себя комплекс процессора и памяти для сохранения команд и данных. Оперативная память большой емкости обычно имеет большие времена доступа по сравнению с временем цикла процессора. Как следствие, комплекс памяти традиционно организован в иерархию на основе емкости и производительности кэшей, причем кэш с самой большой производительностью и самой маленькой емкостью расположен ближе всех к процессору. Например, кэш команд первого уровня и кэш данных первого уровня, как правило, непосредственно присоединены к процессору. В то время как унифицированный кэш второго уровня связан с кэшами данных и команд первого уровня (L1). Кроме того, системная память связана с унифицированным кэшем второго уровня (L2). Кэш команд первого уровня обычно функционирует со скоростью процессора, а унифицированный кэш второго уровня функционирует медленнее, чем кэш первого уровня, но имеет меньшее время доступа, чем системная память. Существует много альтернативных организаций памяти, например, иерархий памяти, имеющих кэш третьего уровня в дополнение к кэшу L1 и L2. Другая организация памяти может использовать только кэш первого уровня и системную память.
Организация памяти может состоять из иерархии кэшей, функционирующих как включающие (inclusive) кэши, строго включающие кэши, исключающие (exclusive) кэши, или комбинации этих типов кэшей. По определению в этом документе любые два уровня кэша, которые являются исключающими по отношению друг к другу, не могут содержать идентичную строку кэша. Любые два уровня кэша, которые являются включающими друг друга, могут содержать идентичную строку кэша. Любые два уровня кэша, которые являются строго включающими друг друга, подразумевают, что больший кэш, обычно кэш более высокого уровня, должен содержать все строки, которые находятся в меньшем кэше, обычно в кэше более низкого уровня. В многоуровневой организации кэш-памяти с тремя или большим количеством уровней любые два или большее количество уровней кэша могут функционировать как один тип кэша, например, исключающий, и оставшиеся уровни кэша могут функционировать как один из альтернативных типов кэша, например, включающий.
Кэш команд, как правило, создается для поддержания множества команд, расположенных по одному адресу в кэше команд. Кэш данных, как правило, создается для поддержания множества элементов данных, расположенных по одному адресу в кэше данных, где элемент данных может быть переменным количеством байтов, зависящим от процессора. Это множество команд или элементов данных, как правило, называют строкой кэша или просто строкой. Например, процессор выбирает команду или элемент данных из кэша L1, и если команда или элемент данных присутствуют в кэше, то происходит "попадание", и команда или элемент данных обеспечивается в процессор. Если команда или элемент данных отсутствуют в кэше L1, то происходит "промах". Промах может произойти по обращению к команде или элементу данных во всей строке кэша. Когда происходит промах, строка в кэше заменяется новой строкой, содержащей отсутствующую команду. Для определения того, какую строку кэша заменять, используется политика замены. Например, выбор или вытеснение строки-«жертвы» кэша, которая использовалась меньше всего, представляет политику с наиболее длительным отсутствием обращений (LRU). Строка кэша, выбранная для вытеснения, является строкой-«жертвой» кэша.
Строка кэша также может объединяться с несколькими битами состояния, например, битом достоверности и битом очистки. Бит достоверности указывает, что команды или данные находятся в строке кэша. Бит очистки указывает на то, имела ли место модификация строки кэша. В кэше с обратной записью бит очистки указывает, что, когда строка кэша должна быть заменена, модификации должны быть записаны обратно на следующий более высокий уровень памяти в иерархии системы памяти.
Кэш-память «жертвенных» данных может быть отдельным буфером, связанным с кэшем, например, кэшем первого уровня или интегрирована в смежный кэш более высокого уровня. Строки кэш-памяти «жертвенных» данных могут размещаться в кэш-памяти «жертвенных» данных согласно предположениям о том, что строка-«жертва» может потребоваться через относительно короткое время после вытеснения, и что доступ к строке-«жертве», когда необходимо, из кэша «жертвенных» данных быстрее, чем доступ к этой строке-«жертве» из более высокого уровня иерархии памяти. С кэш-памятью «жертвенных» данных, интегрированной в смежный кэш более высокого уровня, вытеснение происходит, когда строка смещается из кэша более низкого уровня и размещается в кэше более высокого уровня, соответственно, с кэшированием «жертв» кэша более низкого уровня. Кэш более низкого уровня посылает все смещенные строки, и модифицированные, и немодифицированные, в кэш более высокого уровня. В некоторых случаях, строка-"жертва" может уже существовать в кэш-памяти «жертвенных» данных и при перезаписи уже существующих строк растрачивается энергия и уменьшается ширина полосы до кэш-памяти «жертвенных» данных.
Сущность изобретения
В настоящем раскрытии признается важность сокращения требований по питанию в системе памяти для мобильных приложений и, в целом, для сокращения требований по питанию в обрабатывающих системах. Для этих целей предназначен вариант осуществления изобретения способа отслеживания для сокращения размещения смещенных строк кэша. Выбирается строка для смещения в кэш более низкого уровня. Идентифицируется информация, связанная с выбранной строкой, которая указывает, что выбранная строка присутствует в кэше более высокого уровня. Размещение выбранной строки в кэше более высокого уровня предотвращается на основе идентифицированной информации. Предотвращение размещения выбранной строки сохраняет энергию, которая была бы связана с размещением.
Другой вариант осуществления изобретения предназначен для способа для уменьшения вытеснения. В ответ на промах кэша уровня X, сохраняется информация размещения в кэше уровня X в теге строки кэша, связанной с промахом. Эта информация размещения указывает, была ли строка кэша размещена в кэше уровня X+1. Выбирается строка для вытеснения в кэш уровня X. Вытеснение выбранной строки из кэша уровня X в кэш уровня X+1 предотвращается в зависимости от информации размещения выбранной строки, указывающей, что строка кэша была размещена в кэше уровня X+1.
Другой вариант осуществления изобретения предназначен для системы памяти, имеющей множество уровней кэша. Конфигурируется кэш более низкого уровня для сохранения множества первых строк кэша, каждая с битом размещения. Бит размещения, связанный с одной из множества первых строк кэша, указывает на то, была ли эта строка из множества первых строк кэша размещена в кэше более высокого уровня. Логическая схема вытеснения сконфигурирована для определения того, является ли первая строка кэша, выбранная для смещения из множества первых строк кэша, строкой кэша, которая является избыточной со строкой кэша в кэше более высокого уровня, на основе бита размещения, связанного с выбранной первой строкой кэша. Вытеснение выбранной первой строки кэша в кэш более высокого уровня предотвращается в зависимости от бита размещения выбранной первой строки кэша.
Понятно, что другие варианты осуществления настоящего изобретения станут очевидны специалистам в данной области техники из следующего подробного описания, в котором различные варианты осуществления изобретения изображены и описаны для иллюстрации. Как будет понятно, изобретение можно применять для различных других вариантов осуществления, и можно модифицировать некоторые его детали в различных других отношениях, и все это не отступая от настоящего изобретения. Соответственно, чертежи и подробное описание должны рассматриваться как иллюстративные по природе, а не как ограничительные.
Краткое описание чертежей
На фиг.1 изображена система радиосвязи.
Фиг.2 - функциональная блок-схема иллюстративного комплекса процессора и памяти, в котором сокращаются вытеснения.
Фиг.3 - блок-схема, иллюстрирующая процесс сокращения вытеснений.
Подробное описание
Подробное описание, изложенное ниже согласно приложенным чертежам, предназначено для описания различных иллюстративных вариантов осуществления настоящего изобретения, и нет намерения представлять единственно возможные варианты осуществления настоящего изобретения. Для обеспечения полного понимания настоящего изобретения это подробное описание содержит конкретные детали. Однако специалистам в данной области техники будет очевидно, что настоящее изобретение может быть осуществлено на практике без этих конкретных деталей. В некоторых случаях, общеизвестные структуры и компоненты представлены в форме блочной диаграммы во избежание затруднения понимания концепций настоящего изобретения.
На фиг.1 изображена иллюстративная система 100 радиосвязи, в которой преимущественно может применяться вариант осуществления изобретения. С целью иллюстрации, на фиг.1 изображено три удаленных устройства 120, 130 и 150 и две базовых станции 140. Следует понимать, что общепринятые системы радиосвязи могут иметь намного больше удаленных устройств и базовых станций. Удаленные устройства 120, 130 и 150 включают в себя аппаратные компоненты, программные компоненты или и те и другие, как представлено компонентами 125A, 125C и 125B, соответственно, которые были адаптированы для осуществления изобретения, как обсуждается ниже. На фиг.1 изображены сигналы 180 прямой линии связи из базовых станций 140 в удаленные устройства 120, 130 и 150, и сигналы 190 обратной линии связи из удаленных устройств 120, 130 и 150 в базовые станции 140.
На фиг.1, удаленное устройство 120 изображено как мобильный телефон, удаленное устройство 130 изображено как переносной компьютер и удаленное устройство 150 изображено как удаленное устройство с фиксированным местоположением в системе беспроводного локального шлейфа. Например, удаленные устройства могут в качестве альтернативы быть сотовыми телефонами, пейджерами, портативными дуплексными радиостанциями, малогабаритными устройствами комплектов персональной связи (PCS), портативными устройствами данных, например, "карманными" компьютерами, или устройствами данных с фиксированным местоположением, например, оборудованием с показаниями измерительного прибора. Хотя на фиг.1 изображены удаленные устройства согласно идеям раскрытия, раскрытие не ограничено этими иллюстративными изображенными устройствами. Варианты осуществления изобретения могут соответственно применяться в любом устройстве, имеющем процессор, по меньшей мере, с двумя уровнями иерархии памяти, например, кэшем первого уровня и кэшем второго уровня.
Фиг.2 является функциональной блок-схемой иллюстративного комплекса 200 процессора и памяти, в котором сокращаются вытеснения. Иллюстративный комплекс 200 процессора и памяти включает в себя процессор 202, кэш первого уровня (кэш L1) 203, содержащий массив 204 строк кэша L1, и устройство 206 управления кэшем L1, включающий кэш второго уровня (кэш L2) 208 и системную память 210. Устройство 206 управления кэшем L1 включает в себя логическую схему 212 вытеснения и ассоциативную память первого уровня (CAM L1) 214 для согласования тегов, которые могут использоваться в различных типах кэшей, например, наборно-ассоциативном кэше или полностью ассоциативном кэше. Периферийные устройства, которые могут соединяться с комплексом процессора, не изображены для ясности обсуждения. Иллюстративный комплекс 200 процессора и памяти может соответственно использоваться в различных вариантах осуществления изобретения в компонентах 125 A-C для исполнения программного кода, который хранится в кэшах 203 и 208 и системной памяти 210.
Массив 204 строк кэша L1 может включать в себя множество строк, например, строки 215-217 кэша. В одном варианте осуществления, кэш 203 L1 является кэшем данных, причем каждая строка состоит из множества элементов данных. В другом варианте осуществления, кэш 203 L1 является кэшем команд, причем каждая строка состоит из множества команд. В еще одном варианте осуществления, кэш 203 L1 является унифицированным кэшем, причем каждая строка состоит из множества команд или элементов данных. Например, каждая строка состоит из множества элементов (U0, U1,..., U7) 218-225, соответственно, соответствующих иллюстративному варианту осуществления кэша. С каждой строкой связан тег 226, бит очистки (D) 228 и бит вытеснения принудительной замены (FRC) 230, которые будут обсуждаться более подробно ниже. Строки 215-217 кэша находятся в массиве 204 строк кэша L1 по адресам 231-233 строк, соответственно. Устройство 206 управления кэшем L1 содержит логику управления адресами, чувствительную к адресу команды или адресу данных (I/DA) 234, принятому по интерфейсу 235 I/DA для обращения к строкам кэша. I/DA 234 может состоять из тега 236, поля 238 адреса строки, поля 240 команда/данные "U" и поля 242 байта "B".
Для выборки команды или элемента данных в иллюстративном комплексе 200 процессора и памяти, процессор 202 формирует адрес команды/данных (I/DA) 234 требуемой команды/данных, которые будут выбираться, и посылает адрес выборки в устройство 206 управления кэшем L1. На основе принятого I/DA 234, устройство 206 управления кэшем L1 проверяет, присутствуют ли команда или данные в массиве 204 строк кэша L1. Эта проверка выполняется, например, посредством использования логики сравнения, которая ищет соответствующий тег 244, связанный со строкой 215, которая была выбрана посредством I/DA 234. Если команда или данные присутствуют, то имеет место соответствие или попадание, и устройство 206 управления кэшем L1 указывает, что команда или данные присутствуют в кэше 203 L1. Если команда или данные отсутствуют, то обнаружится несоответствие или промах, и устройство 206 управления кэшем L1 обеспечит индикатор промаха, что команда или данные отсутствуют в кэше 203 L1.
Если команда или данные присутствуют, то команда или данные по адресу выборки команды/данных выбираются из массива 204 строк кэша L1. После этого команда или данные посылаются по шине 246 команд/данных в процессор 202.
Если команда/данные отсутствуют в кэше, то в кэш 208 L2 обеспечивается информация о промахе посредством сигнала 248 промаха, указывающего, что произошел промах. После обнаружения промаха кэша 203 L1, делается попытка выбрать требуемые команда/данные из кэша 208 L2. Если требуемые команда/данные присутствует в кэше 208 L2, то они обеспечиваются в интерфейс 250 шины памяти. Если требуемые команда/данные отсутствуют в кэше 208 L2, то они выбираются из системной памяти 210.
Из кэша 208 L2 посылается сигнал 254 вытеснения принудительной замены (FRC) в кэш 203 L1 нижнего уровня, при этом требуемые команда/данные посылаются по интерфейсу 250 шины памяти. Сигнал 254 FRC указывает, были или не были получены обеспечиваемые команда/данные вследствие попадания кэша 208 L2 верхнего уровня. Например, сигнал 254 FRC в состоянии "0" указывает, что требуемые команда/данные были обеспечены из кэша 208 L2. Сигнал 254 FRC в состоянии "1" указывает, что требуемые команда/данные были обеспечены из памяти другого уровня, выше кэша 208 L2, например, из системной памяти 210. Сигнал 254 FRC сохраняется в кэше 203 L1, например, как биты 256-258 FRC вместе с тегом, связанным с соответствующей строкой кэша, например, строки 215-217. Когда запрошенная строка отсутствует в кэше 208 L2 и кэше 203 L1, кэш 203 L1 обеспечивается посредством следующего уровня памяти, выше кэша 208 L2, тогда как кэш 208 L2 не размещает строку во время этого промаха.
Когда кэш более низкого уровня должен сместить строку, эта строка может быть размещена в кэше следующего уровня, в зависимости от информации, хранящейся со строкой в кэше более низкого уровня. Например, когда кэш более низкого уровня, например, кэш 203 L1, выбирает строку для смещения, например, строку 215 кэша, с индикатором очистки, как обозначено битом 259 очистки в состоянии "1", логическая схема 212 вытеснения принимает решение, что строка 215 кэша должна быть размещена на следующем уровне иерархии памяти. Если для смещения выбрана строка кэша, которая не является модифицированной, например, строка 216 кэша с битом 260 очистки в состоянии "0", и ассоциированный с ней бит 256 FRC установлен активным, например, в состояние "1", то строка 216 кэша также размещается на следующем уровне иерархии памяти. Бит 256 FRC устанавливается активным, в зависимости от индикатора сигнала 254 FRC, обеспечиваемого следующим уровнем иерархии памяти, что строка не была найдена в его директории. Если строка кэша, которая выбрана для вытеснения, не является модифицированной, например, строка 217 кэша со своим битом 261 очистки в состоянии "0", и ассоциированный с ней бит 258 FRC установлен неактивным, например, в состояние "0", то строка 217 кэша не размещается на следующем уровне иерархии памяти. Вытеснение не требуется из-за того, что строка не модифицирована и бит 258 FRC указывает своим неактивным состоянием, что эта строка 217 кэша присутствует на следующем уровне иерархии памяти. Одним словом, кэш более высокого уровня в ответ на смещение строки кэша размещает строку кэша на более низком уровне, когда установлен бит очистки или установлен бит FRC. Посредством такого использования бита FRC подавляются избыточные вытеснения, тем самым сохраняя энергию и циклы доступа посредством ухода от ненужных обращений к верхним уровням иерархии памяти.
Фиг.3 является блок-схемой, иллюстрирующей процесс 300 для сокращения вытеснений. В процессе 300, уровень памяти обозначен индексами (X), (X+1) или (X+2), где, например, посредством X=1 может быть обозначен уровень памяти L1, L2 и L3. Кроме того, описания этапов процесса 300 включают в себя ссылочные позиции для функциональных элементов по фиг.2.
Процесс 300 начинается посредством процессора, например, процессора 202, который выбирает команду или элемент данных на этапе 302. На этапе 304 принятия решения, определяется, могут ли запрошенные команда/данные быть размещены в кэше L(X), например, кэше 203 L1. Если команда/данные могут быть размещены, то запрошенные команда/данные выбираются из кэша L(X), на этапе 306, и команда/данные возвращаются в процессор на этапе 308.
Если команда/данные не могут быть размещены в кэше L(X), то формируется индикатор промаха, и на этапе 310 принятия решения определяется, могут ли запрашиваемые команда/данные быть размещены в кэше L(X+1), например, кэше 208 L2. Если команда/данные могут быть размещены, то запрашиваемые команда/данные выбираются из кэша L(X+1) на этапе 316. На этапе 318, бит вытеснения принудительной замены (FRC), например, бит 258 FRC, устанавливается в состояние "0" в строке тега, например, связанной со строкой 217 кэша 203 L1, для предотвращения посылки этих команды/данных кэшем 203 L1 в кэш 208 L2. Процесс 300 далее переходит к этапу 320 принятия решения.
Возвращаясь к этапу 310, если команда/данные не могут быть размещены в кэше L(X+1), то формируется индикатор промаха. На этапе 312, из уровня иерархии памяти, который больше или равен уровню L(X+2), например, кэша L3 или системной памяти 210 комплекса 200 процессора и памяти, выбираются запрошенные команда/данные. На этапе 314, бит FRC, например, бит 256 FRC, устанавливается в состояние "1" и сохраняется с тегом, связанным с выбранной строкой, например, строкой 216 кэша.
На этапе 320 принятия решения, определяется, должна ли быть заменена строка в кэше L(X), например, кэше 203 L1. Если определено, что строка должна быть заменена в кэше L(X), то также определяется на этапе 322 принятия решения, является ли выбранная строка, строка-"жертва", модифицированной, например, обозначенной битом 259 очистки в состоянии "1". Если выбранная строка-"жертва" является модифицированной, то строка-"жертва" размещается на этапе 324 в кэше L(X+1), например, кэше 208 L2. Если выбранная строка-"жертва" не является модифицированной, например, обозначенной битами 260 и 261 очистки, то на этапе 326 принятия решения проверяется бит FRC для определения того, установлен ли он активным. Если на этапе 326 принятия решения определяется, что бит FRC является активным, например, как в случае бита 256 FRC, то на этапе 324 строка-"жертва" размещается в кэше L(X+1), например, кэше 208 L2.
Если на этапе 320 принятия решения определяется, что строка не должна быть заменена, или, если на этапе 326 принятия решения определяется, что бит FRC не является активным, например, в состоянии "0", как в случае бита 258 FRC, то на этапе 328 запрошенные команда/данные размещаются в кэше L(X), например, кэше 203 L1. На этапе 330 запрошенные команда/данные также возвращаются в запрашивающий процессор, например, процессор 202. Соответственно, избегают избыточное вытеснение в кэш L(X+1), тем самым сохраняют энергию и улучшают ширину полосы доступа кэша в иерархии памяти.
Различные иллюстративные логические блоки, модули, схемы, элементы и/или компоненты, описанные согласно раскрытым здесь вариантам осуществления, могут быть реализованы или выполнены с универсальным процессором, цифровым сигнальным процессором (DSP), специализированной интегральной схемой (ASIC), программируемой пользователем вентильной матрицей (FPGA) или другими программируемыми логическими компонентами, дискретным вентилем или транзисторной логикой, дискретными аппаратными компонентами или любой их комбинацией, предназначенной для выполнения описанных здесь функций. Универсальный процессор может быть микропроцессором, но в качестве альтернативы, процессор может быть любым общепринятым процессором, контроллером, микроконтроллером или конечным автоматом. Процессор также может быть реализован как комбинация вычислительных компонентов, например, комбинация DSP и микропроцессора, множества микропроцессоров, одного или нескольких микропроцессоров вместе с ядром DSP или как любая другая такая конфигурация, подходящая для требуемого применения.
Способы, описанные согласно раскрытым здесь вариантам осуществления, могут быть воплощены непосредственно в аппаратных средствах, в исполнимом процессором программном модуле, или в комбинации их обоих. Программный модуль может находиться в памяти RAM, флэш-памяти, памяти ROM, памяти EPROM, памяти EEPROM, регистрах, жестком диске, сменном диске, CD-ROM или любом другом виде носителя информации, известном в данной области техники. Носитель информации может быть соединен с процессором так, что процессор может считывать информацию из носителя информации и записывать информацию на него. В качестве альтернативы, носитель информации может быть неотъемлемой частью процессора.
Несмотря на то, что изобретение раскрыто в контексте иллюстративных вариантов осуществления для кэшей команд, кэшей данных и других типов кэшей, следует понимать, что специалистами в данной области техники может применяться широкое разнообразие реализаций, соответствующих вышеизложенному обсуждению и формуле изобретения, которая следует ниже.
Claims (20)
1. Способ отслеживания для сокращения размещения смещенных строк кэша, причем этот способ отслеживания содержит:
выбор строки для смещения в кэше более низкого уровня, идентификацию информации, связанной с выбранной строкой, которая указывает, что выбранная строка присутствует в кэше более высокого уровня, и
предотвращение размещения выбранной строки в кэше более высокого уровня на основе идентифицированной информации.
выбор строки для смещения в кэше более низкого уровня, идентификацию информации, связанной с выбранной строкой, которая указывает, что выбранная строка присутствует в кэше более высокого уровня, и
предотвращение размещения выбранной строки в кэше более высокого уровня на основе идентифицированной информации.
2. Способ отслеживания по п.1, также содержащий:
сохранение, в ответ на промах кэша более низкого уровня, информации размещения с тегом строки кэша, размещаемой в кэше более низкого уровня из-за промаха, причем эта информация размещения указывает, была ли строка кэша размещена в кэше более высокого уровня.
сохранение, в ответ на промах кэша более низкого уровня, информации размещения с тегом строки кэша, размещаемой в кэше более низкого уровня из-за промаха, причем эта информация размещения указывает, была ли строка кэша размещена в кэше более высокого уровня.
3. Способ отслеживания по п.1, также содержащий:
идентификацию выбранной строки как являющейся модифицированной, и размещение выбранной строки в кэше более высокого уровня.
идентификацию выбранной строки как являющейся модифицированной, и размещение выбранной строки в кэше более высокого уровня.
4. Способ отслеживания по п.1, также содержащий:
определение того, что идентифицированная информация, связанная с выбранной строкой, означает, что выбранная строка отсутствует в кэше более высокого уровня, и размещение выбранной строки в кэше более высокого уровня.
определение того, что идентифицированная информация, связанная с выбранной строкой, означает, что выбранная строка отсутствует в кэше более высокого уровня, и размещение выбранной строки в кэше более высокого уровня.
5. Способ отслеживания по п.1, также содержащий:
идентификацию выбранной строки как являющейся немодифицированной.
идентификацию выбранной строки как являющейся немодифицированной.
6. Способ отслеживания по п.2, также содержащий:
выборку элемента данных из кэша более высокого уровня, и
установку индикатора размещения в состояние, которое означает, что элемент данных присутствует в кэше более высокого уровня.
выборку элемента данных из кэша более высокого уровня, и
установку индикатора размещения в состояние, которое означает, что элемент данных присутствует в кэше более высокого уровня.
7. Способ отслеживания по п.2, также содержащий:
выборку элемента данных из уровня иерархии памяти, выше кэша более высокого уровня, и
установку индикатора размещения в состояние, которое означает, что элемент данных отсутствует в кэше более высокого уровня.
выборку элемента данных из уровня иерархии памяти, выше кэша более высокого уровня, и
установку индикатора размещения в состояние, которое означает, что элемент данных отсутствует в кэше более высокого уровня.
8. Способ отслеживания по п.1, в котором кэш более высокого уровня функционирует как кэш «жертвенных» данных.
9. Способ сокращения вытеснений, причем этот способ содержит:
сохранение в кэше уровня X, в ответ на промах кэша уровня X, информации размещения в теге строки кэша, связанной с этим промахом, причем эта информация размещения указывает, была ли строка кэша размещена в кэше уровня Х+1,
выбор строки для смещения в кэше уровня X, и
предотвращение вытеснения выбранной строки из кэша уровня Х в кэш уровня Х+1 в ответ на информацию размещения выбранной строки, указывающей, что строка кэша была размещена в кэше уровня Х+1.
сохранение в кэше уровня X, в ответ на промах кэша уровня X, информации размещения в теге строки кэша, связанной с этим промахом, причем эта информация размещения указывает, была ли строка кэша размещена в кэше уровня Х+1,
выбор строки для смещения в кэше уровня X, и
предотвращение вытеснения выбранной строки из кэша уровня Х в кэш уровня Х+1 в ответ на информацию размещения выбранной строки, указывающей, что строка кэша была размещена в кэше уровня Х+1.
10. Способ по п.9, также содержащий:
идентификацию выбранной строки как являющейся модифицированной, и размещение выбранной строки в кэше уровня Х+1.
идентификацию выбранной строки как являющейся модифицированной, и размещение выбранной строки в кэше уровня Х+1.
11. Способ по п.9, также содержащий:
определение того, что информация размещения, связанная с выбранной строкой указывает, что выбранная строка отсутствует в кэше уровня Х+1, и
размещение выбранной строки в кэше уровня Х+1.
определение того, что информация размещения, связанная с выбранной строкой указывает, что выбранная строка отсутствует в кэше уровня Х+1, и
размещение выбранной строки в кэше уровня Х+1.
12. Способ по п.9, также содержащий:
идентификацию выбранной строки как являющейся немодифицированной.
идентификацию выбранной строки как являющейся немодифицированной.
13. Способ по п.9, также содержащий:
выборку элемента данных из кэша уровня Х+1, и
установку информации размещения в состояние, которое означает, что элемент данных присутствует в кэше уровня Х+1.
выборку элемента данных из кэша уровня Х+1, и
установку информации размещения в состояние, которое означает, что элемент данных присутствует в кэше уровня Х+1.
14. Способ по п.9, также содержащий:
выборку элемента данных из уровня иерархии памяти, выше кэша уровня Х+1, и
установку информации размещения в состояние, которое означает, что элемент данных отсутствует в кэше уровня Х+1.
выборку элемента данных из уровня иерархии памяти, выше кэша уровня Х+1, и
установку информации размещения в состояние, которое означает, что элемент данных отсутствует в кэше уровня Х+1.
15. Способ по п.9, в котором кэш уровня Х является кэшем команд уровня X.
16. Система памяти, имеющая множество уровней кэша, содержащая:
кэш более низкого уровня, сконфигурированный для сохранения множества первых строк кэша, каждая с битом размещения, причем каждый бит размещения указывает, была ли первая строка кэша, связанная с битом размещения, размещена в кэше более высокого уровня, и
логическую схему вытеснения, сконфигурированную для определения того, является ли первая строка кэша, выбранная для смещения из множества первых строк кэша, строкой кэша, которая является избыточной по отношению к строке кэша в кэше более высокого уровня, на основе бита размещения, связанного с выбранной первой строкой кэша, и во избежание вытеснения выбранной первой строки кэша в кэш более высокого уровня, в зависимости от бита размещения выбранной первой строки кэша.
кэш более низкого уровня, сконфигурированный для сохранения множества первых строк кэша, каждая с битом размещения, причем каждый бит размещения указывает, была ли первая строка кэша, связанная с битом размещения, размещена в кэше более высокого уровня, и
логическую схему вытеснения, сконфигурированную для определения того, является ли первая строка кэша, выбранная для смещения из множества первых строк кэша, строкой кэша, которая является избыточной по отношению к строке кэша в кэше более высокого уровня, на основе бита размещения, связанного с выбранной первой строкой кэша, и во избежание вытеснения выбранной первой строки кэша в кэш более высокого уровня, в зависимости от бита размещения выбранной первой строки кэша.
17. Система памяти по п.16, в которой кэш более высокого уровня содержит:
множество строк второго кэша, и
логическую схему, в ответ на промах кэша более низкого уровня, сконфигурированную для формирования сигнала размещения на основе того, была ли строка кэша, связанная с промахом, размещена в кэше более высокого уровня, причем сигнал размещения передается в кэш более низкого уровня для сохранения в виде бита размещения в строке кэша, связанной с упомянутым промахом.
множество строк второго кэша, и
логическую схему, в ответ на промах кэша более низкого уровня, сконфигурированную для формирования сигнала размещения на основе того, была ли строка кэша, связанная с промахом, размещена в кэше более высокого уровня, причем сигнал размещения передается в кэш более низкого уровня для сохранения в виде бита размещения в строке кэша, связанной с упомянутым промахом.
18. Система памяти по п.17, в которой логическая схема вытеснения также содержит установку бита размещения в состояние сигнала размещения.
19. Система памяти по п.16, в которой кэш более низкого уровня является кэшем данных.
20. Система памяти по п.17, в которой кэш более высокого уровня является унифицированным кэшем.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/669,245 | 2007-01-31 | ||
US11/669,245 US8078803B2 (en) | 2008-01-30 | 2008-01-30 | Apparatus and methods to reduce castouts in a multi-level cache hierarchy |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2009132554A RU2009132554A (ru) | 2011-03-10 |
RU2438165C2 true RU2438165C2 (ru) | 2011-12-27 |
Family
ID=39512778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2009132554/08A RU2438165C2 (ru) | 2007-01-31 | 2008-01-30 | Устройство и способы для уменьшения вытеснений в многоуровневой иерархии кэша |
Country Status (10)
Country | Link |
---|---|
US (2) | US8078803B2 (ru) |
EP (2) | EP2118754B1 (ru) |
JP (4) | JP2010518487A (ru) |
KR (1) | KR101165132B1 (ru) |
CN (2) | CN102693187B (ru) |
BR (1) | BRPI0806865A2 (ru) |
CA (1) | CA2675046C (ru) |
MX (1) | MX2009008092A (ru) |
RU (1) | RU2438165C2 (ru) |
WO (1) | WO2008095025A1 (ru) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008095025A1 (en) * | 2007-01-31 | 2008-08-07 | Qualcomm Incorporated | Apparatus and methods to reduce castouts in a multi-level cache hierarchy |
JP2010113593A (ja) | 2008-11-07 | 2010-05-20 | Sony Corp | 情報処理装置、情報処理方法及び情報処理プログラム |
EP2354953B1 (en) * | 2008-11-10 | 2014-03-26 | Fujitsu Limited | Information processing device and memory control device |
US20110202727A1 (en) * | 2010-02-18 | 2011-08-18 | Qualcomm Incorporated | Apparatus and Methods to Reduce Duplicate Line Fills in a Victim Cache |
US9201794B2 (en) | 2011-05-20 | 2015-12-01 | International Business Machines Corporation | Dynamic hierarchical memory cache awareness within a storage system |
US9021206B2 (en) | 2011-08-25 | 2015-04-28 | International Business Machines Corporation | Use of cache statistics to ration cache hierarchy access |
KR101862785B1 (ko) * | 2011-10-17 | 2018-07-06 | 삼성전자주식회사 | 타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법 |
JP6046748B2 (ja) | 2013-01-17 | 2016-12-21 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置およびファイル管理方法 |
US10127154B2 (en) | 2013-03-20 | 2018-11-13 | Hewlett Packard Enterprise Development Lp | Caching data in a memory system having memory nodes at different hierarchical levels |
US9854052B2 (en) * | 2013-09-27 | 2017-12-26 | Sap Se | Business object attachments and expiring URLs |
JP2015088146A (ja) * | 2013-11-01 | 2015-05-07 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置 |
JP2015176245A (ja) | 2014-03-13 | 2015-10-05 | 株式会社東芝 | 情報処理装置及びデータ構造 |
US10216640B2 (en) | 2014-03-21 | 2019-02-26 | Samsung Electronics Co., Ltd. | Opportunistic cache injection of data into lower latency levels of the cache hierarchy |
CN104932989B (zh) * | 2014-03-21 | 2020-05-19 | 三星电子株式会社 | 数据到高速缓冲层次低延迟层级中的机会性高速缓冲注入 |
JP2016057763A (ja) | 2014-09-08 | 2016-04-21 | 株式会社東芝 | キャッシュ装置、及びプロセッサ |
US9684602B2 (en) | 2015-03-11 | 2017-06-20 | Kabushiki Kaisha Toshiba | Memory access control device, cache memory and semiconductor device |
KR101697515B1 (ko) * | 2015-12-15 | 2017-01-18 | 전남대학교산학협력단 | 캐시 라인의 태그 거리 상관관계를 이용한 캐시 교체 방법 및 임베디드 시스템 |
CN109074320B (zh) * | 2017-03-08 | 2023-11-17 | 华为技术有限公司 | 一种缓存替换方法,装置和*** |
JP7139719B2 (ja) * | 2018-06-26 | 2022-09-21 | 富士通株式会社 | 情報処理装置、演算処理装置及び情報処理装置の制御方法 |
US11782919B2 (en) * | 2021-08-19 | 2023-10-10 | International Business Machines Corporation | Using metadata presence information to determine when to access a higher-level metadata table |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5564035A (en) * | 1994-03-23 | 1996-10-08 | Intel Corporation | Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein |
US5737751A (en) | 1996-03-26 | 1998-04-07 | Intellectual Business Machines Corporation | Cache memory management system having reduced reloads to a second level cache for enhanced memory performance in a data processing system |
US5787478A (en) * | 1997-03-05 | 1998-07-28 | International Business Machines Corporation | Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy |
US6374330B1 (en) | 1997-04-14 | 2002-04-16 | International Business Machines Corporation | Cache-coherency protocol with upstream undefined state |
US6202129B1 (en) | 1998-03-31 | 2001-03-13 | Intel Corporation | Shared cache structure for temporal and non-temporal information using indicative bits |
TW451132B (en) * | 1998-12-15 | 2001-08-21 | Nippon Electric Co | System and method for cache processing |
US6564301B1 (en) | 1999-07-06 | 2003-05-13 | Arm Limited | Management of caches in a data processing apparatus |
US6282615B1 (en) * | 1999-11-09 | 2001-08-28 | International Business Machines Corporation | Multiprocessor system bus with a data-less castout mechanism |
US7024519B2 (en) * | 2002-05-06 | 2006-04-04 | Sony Computer Entertainment Inc. | Methods and apparatus for controlling hierarchical cache memory |
US6941421B2 (en) * | 2002-10-29 | 2005-09-06 | International Business Machines Corporation | Zero delay data cache effective address generation |
JP2006155080A (ja) * | 2004-11-26 | 2006-06-15 | Fujitsu Ltd | メモリ制御装置およびメモリ制御方法 |
US20060155934A1 (en) * | 2005-01-11 | 2006-07-13 | Ramakrishnan Rajamony | System and method for reducing unnecessary cache operations |
US7330941B2 (en) | 2005-03-23 | 2008-02-12 | Qualcomm Incorporated | Global modified indicator to reduce power consumption on cache miss |
DE102005015116A1 (de) | 2005-04-01 | 2006-10-05 | Webasto Ag | Kraftfahrzeugheizung |
WO2008095025A1 (en) | 2007-01-31 | 2008-08-07 | Qualcomm Incorporated | Apparatus and methods to reduce castouts in a multi-level cache hierarchy |
US20110202727A1 (en) | 2010-02-18 | 2011-08-18 | Qualcomm Incorporated | Apparatus and Methods to Reduce Duplicate Line Fills in a Victim Cache |
-
2008
- 2008-01-30 WO PCT/US2008/052507 patent/WO2008095025A1/en active Application Filing
- 2008-01-30 CN CN201210029539.0A patent/CN102693187B/zh not_active Expired - Fee Related
- 2008-01-30 RU RU2009132554/08A patent/RU2438165C2/ru not_active IP Right Cessation
- 2008-01-30 US US11/669,245 patent/US8078803B2/en not_active Expired - Fee Related
- 2008-01-30 EP EP08728594.6A patent/EP2118754B1/en not_active Not-in-force
- 2008-01-30 BR BRPI0806865-8A patent/BRPI0806865A2/pt not_active IP Right Cessation
- 2008-01-30 MX MX2009008092A patent/MX2009008092A/es active IP Right Grant
- 2008-01-30 KR KR1020097018158A patent/KR101165132B1/ko active IP Right Grant
- 2008-01-30 JP JP2009548426A patent/JP2010518487A/ja active Pending
- 2008-01-30 CA CA2675046A patent/CA2675046C/en not_active Expired - Fee Related
- 2008-01-30 EP EP12177727A patent/EP2527987A1/en not_active Withdrawn
- 2008-01-30 CN CN2008800033756A patent/CN101595462B/zh not_active Expired - Fee Related
-
2011
- 2011-11-09 US US13/292,651 patent/US8386716B2/en active Active
-
2012
- 2012-11-19 JP JP2012253468A patent/JP2013069322A/ja active Pending
-
2015
- 2015-01-16 JP JP2015006866A patent/JP6009589B2/ja not_active Expired - Fee Related
-
2016
- 2016-09-15 JP JP2016180526A patent/JP6392286B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101595462B (zh) | 2012-04-25 |
EP2527987A1 (en) | 2012-11-28 |
CN102693187A (zh) | 2012-09-26 |
CN101595462A (zh) | 2009-12-02 |
KR20090115799A (ko) | 2009-11-06 |
US8386716B2 (en) | 2013-02-26 |
JP6009589B2 (ja) | 2016-10-19 |
BRPI0806865A2 (pt) | 2014-04-29 |
EP2118754B1 (en) | 2013-07-03 |
CA2675046C (en) | 2013-07-30 |
JP2015111435A (ja) | 2015-06-18 |
JP6392286B2 (ja) | 2018-09-19 |
KR101165132B1 (ko) | 2012-07-12 |
RU2009132554A (ru) | 2011-03-10 |
JP2010518487A (ja) | 2010-05-27 |
MX2009008092A (es) | 2009-08-12 |
JP2013069322A (ja) | 2013-04-18 |
US20080183967A1 (en) | 2008-07-31 |
JP2017033584A (ja) | 2017-02-09 |
CN102693187B (zh) | 2016-03-30 |
CA2675046A1 (en) | 2008-08-07 |
US20120059995A1 (en) | 2012-03-08 |
EP2118754A1 (en) | 2009-11-18 |
WO2008095025A1 (en) | 2008-08-07 |
US8078803B2 (en) | 2011-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2438165C2 (ru) | Устройство и способы для уменьшения вытеснений в многоуровневой иерархии кэша | |
US8930625B2 (en) | Weighted history allocation predictor algorithm in a hybrid cache | |
US8949544B2 (en) | Bypassing a cache when handling memory requests | |
US9798655B2 (en) | Managing a cache on storage devices supporting compression | |
US20080086599A1 (en) | Method to retain critical data in a cache in order to increase application performance | |
US20050251630A1 (en) | Preventing storage of streaming accesses in a cache | |
US8060701B2 (en) | Apparatus and methods for low-complexity instruction prefetch system | |
US20150143045A1 (en) | Cache control apparatus and method | |
WO2012135429A2 (en) | Method and system for optimizing prefetching of cache memory lines | |
CN115794682A (zh) | 缓存替换方法及装置、电子设备、存储介质 | |
US7007135B2 (en) | Multi-level cache system with simplified miss/replacement control | |
US20110202727A1 (en) | Apparatus and Methods to Reduce Duplicate Line Fills in a Victim Cache | |
US8661169B2 (en) | Copying data to a cache using direct memory access | |
US20180052778A1 (en) | Increase cache associativity using hot set detection | |
US20230297382A1 (en) | Cache line compression prediction and adaptive compression | |
JP2003510685A (ja) | キャッシュ置換方法および装置 | |
US20040024970A1 (en) | Methods and apparatuses for managing memory | |
US10942859B2 (en) | Computing system and method using bit counter | |
CN117971731A (zh) | Lru近似算法的硬件实现装置、lru值的更新方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20200131 |