ИСПОЛЬЗОВАНИЕ КОНТЕКСТНОГО ИДЕНТИФИКАТОРА В КЭШ-ПАМЯТИ Российский патент 2006 года по МПК G06F12/00 

Описание патента на изобретение RU2285286C2

ОБЛАСТЬ ТЕХНИКИ

Данное изобретение относится к компьютерной технологии. Более конкретно, данное изобретение относится к улучшению характеристик кэш-памяти в вычислительном устройстве.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

Использование одной или нескольких систем кэш-памяти в иерархии памяти компьютера является хорошо известным методом повышения производительности компьютера (см., например, Handy, Jim; The Cache Memory Book; Academic методом повышения Press, 1998). Фиг. 1 иллюстрирует типичный массив 100 кэш-памяти. Массив 100 кэш-памяти включает в себя строки 110 кэш-памяти. Каждая строка кэш-памяти включает в себя тег 120 и блок 130 данных. Примерная строка 140 кэш-памяти включает в себя тег 150 и блок 160 данных. Ссылочная позиция 170 показывает, что примерный тег 150 является частью адреса 170 основной памяти. Адрес 170 основной памяти является адресом основной памяти, соответствующим блоку 160 данных.

Процессоры передают команды и операнды в прямом и обратном направлениях между ядром выполнения процессора и иерархией памяти компьютера во время передач (перемещений данных) памяти. Примерами передач памяти являются загрузка команд/операндов из иерархии памяти в процессор и сохранение команд/операндов от процессора в иерархии памяти. Во время передачи памяти процессор генерирует адрес основной памяти. Часть адреса основной памяти сравнивается с элементами в теге 120 во время просмотра кэша для определения того, содержит ли массив 100 кэша элемент, соответствующий передаче памяти. Как демонстрируется связью между тегом 150 и адресом 170 основной памяти, процесс просмотра кэша ускоряется посредством требования, чтобы процессор сравнивал только часть каждого адреса основной памяти с каждым элементом в теге. Обычно кэш-память использует часть каждого линейного адреса, генерируемого процессором, для индексирования данных, хранимых в массиве 100 кэш-памяти.

Цепочкой (команд) является часть компьютерной программы, которая может выполняться независимо от других частей компьютерной программы. Производительность процессора может быть повышена, если множество цепочек команд выполняется параллельно на процессоре. Параллельное выполнение множества цепочек возможно, если зависимости среди различных команд множества цепочек обнаружены и управляются надлежащим образом.

Фиг.2 показывает, каким образом множество процессоров Intel® используют среду виртуальной памяти для поддержки большого линейного адресного пространства малой величиной физической памяти (например, ОЗУ). Во время передачи памяти процессор генерирует линейный адрес 210. Линейный адрес 210 содержит поле 220 каталога, поле 225 таблицы и поле 230 смещения. База каталога 235 страниц содержится в управляющем регистре CR3 240. Элемент 220 каталога линейного адреса 210 обеспечивает смещение для величины, содержащейся в управляющем регистре CR3 240. Каталог страниц содержит указатель 245 базы таблицы страниц. Поле 225 таблицы обеспечивает смещение, которое сочетается с указателем 245 базы таблицы страниц для идентификации базы страницы, которая содержит физический адрес 255. Поле 230 смещения сочетается с элементом таблицы страниц для идентификации физического адреса 255.

Фиг.3 иллюстрирует недостаток, связанный с выполнением просмотров кэша только с частичным адресом основной памяти. Процессор (не показан) генерирует линейные адреса 304 и 306 в ответ на команды LD0 и LD1 загрузки. 305 и 307 иллюстрируют часть каждого адреса, которая используется для выполнения просмотра кэша. Хотя 305 и 307 представляются идентичными, они являются только частью 304 и 306 соответственно. 304 и 306 отображаются в два различных физических адреса, так как каждый адрес имеет различную запись в соответствующих полях каталога (320 и 325) и полях смещения (330 и 335). Дополнительная сложность обусловлена в случае, когда, как на фиг. 3, процессор поддерживает параллельное выполнение множества цепочек. Цепочка 0 и цепочка 1 могут иметь различные значения для баз их соответствующих каталогов страниц (340 и 345). Таким образом, даже если 304 и 306 были одинаковыми, они бы отображались в два различных физических адреса.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Изобретение иллюстрировано посредством примера, но не в качестве ограничения, на чертежах, в которых одинаковые ссылочные позиции относятся к сходным элементам.

Фиг.1 - схема массива кэш-памяти известного уровня техники.

Фиг.2 - концептуальная иллюстрация преобразования линейного адреса в физический адрес.

Фиг.3 - концептуальная иллюстрация двух подобных тегов, которые отображаются в два различных физических адреса.

Фиг.4А - схема одного варианта осуществления массива кэш-памяти с использованием контекстного идентификатора.

Фиг.4В - концептуальная иллюстрация одного варианта осуществления контекстного идентификатора.

Фиг.5 - упрощенная блок-схема одного варианта осуществления генератора контекстного идентификатора и связанных управляющих схем.

Фиг.6 - блок-схема одного варианта осуществления системы кэш-памяти.

Фиг.7 - блок-схема одного варианта осуществления системы кэш-памяти.

ПОДРОБНОЕ ОПИСАНИЕ

Ниже описано использование контекстного идентификатора в кэш-памяти. В последующем описании приведено множество конкретных деталей для более глубокого понимания вариантов осуществления изобретения. Специалисту в соответствующей области техники, однако, должно быть понятно, что изобретение может быть реализовано без одной или нескольких конкретных деталей или с другими способами, компонентами, материалами и т.д. В других случаях хорошо известные структуры, материалы или операции не показаны или не описаны подробно, чтобы не затемнить сущность изобретения.

Ссылка во всем этом описании на «один вариант» или «какой-либо вариант» означает, что конкретная особенность, структура или характеристика, описанные в связи с этим вариантом, включены по меньшей мере в один вариант осуществления данного изобретения. Таким образом, использование выражений «в одном варианте» или «в каком-либо варианте» в различных местах по всему описанию необязательно относится к одному и тому же варианту осуществления. Кроме того, конкретные особенности, структуры или характеристики могут сочетаться подходящим образом в одном или нескольких вариантах осуществления.

Системы кэш-памяти индексируют строки кэш-памяти частью линейного адреса, называемого тегом. Процессор генерирует линейный адрес во время операции передачи памяти. Часть линейного адреса сравнивается с тегами во время просмотра кэша. Многие процессоры Intel® предусматривают механизм для обеспечения того, что видимое совпадение между частичным адресом и тегом является истинным совпадением. Этот механизм называется определителем попаданий/промахов. Определитель попаданий/промахов работает параллельно процессу просмотра кэш-памяти. Определитель попаданий/промахов преобразует линейный адрес, связанный с выданной командой, в соответствующий физический адрес и сравнивает этот физический адрес с полным адресом, связанным с тегом, который совпадает с частичным линейным адресом. Определитель попаданий/промахов является намного более медленным, чем кэш-память, так как он должен переводить линейные адреса в физические адреса и так как он выполняет сравнения полных адресов. Если определитель попаданий/промахов обнаруживает, что кэш-память вызвала ложное совпадение, он исправляет ошибки, сделанные кэш-памятью. Процесс обнаружения и ответа на ошибки, введенные ложным совпадением в кэш-памяти, может ухудшить производительность процессора. Фиг. 4А иллюстрирует один вариант осуществления массива кэш-памяти, содержащего контекстный идентификатор. Массив 400 кэш-памяти включает в себя множество строк 410 кэш-памяти. Каждая строка 410 кэш-памяти включает в себя контекстный идентификатор 405, тег 420 и блок 430 данных. Таким образом, строка 440А кэш-памяти включает в себя контекстный идентификатор 415А и тег 450А. Подобным же образом строка 440В кэш-памяти включает в себя контекстный идентификатор 415В и тег 450В. Две различные цепочки генерировали контекстные идентификаторы 415А и 415В.

Линейные адреса 470А и 470В соответствуют тегам 450А и 450В. На фиг.4А и 4В линейные адреса содержат контекстные идентификаторы для иллюстрации того, как контекстные идентификаторы могут быть использованы для различения между подобными линейными адресами. Контекстные идентификаторы, однако, не являются частью линейного адреса и генерируются отдельно из линейных адресов.

Системы кэш-памяти, реализуемые согласно известному уровню техники, проводят просмотры кэша путем сравнения частичного линейного адреса, генерируемого процессором (не показан), с каждым тегом 420 в массиве 400 кэш-памяти. Если процессор генерировал частичный линейный адрес 123, то этот адрес совпадал бы как с тегом 450А, так и с тегом 450В. Как утверждалось выше, определитель попаданий/промахов в конечном счете определяет, какая строка кэша, если таковая имеется, совпадает с адресом основной памяти, генерируемым процессором. Системы известного уровня техники испытывают ухудшение рабочих характеристик, когда определитель попаданий/промахов осуществляет управление и коррекцию в отношении ложных совпадений между частичным линейным адресом и тегом 420.

Фиг.4В иллюстрирует использование контекстных идентификаторов для уменьшения частоты ложного совпадения между частичным линейным адресом, генерируемым процессором, и тегом 420. Линейные адреса 470А и 470В связаны со строками 440А и 440В кэш-памяти фиг.4А. Адрес 475 генерируется процессором в ответ на выданную команду. Адрес 475 включает в себя контекстный идентификатор 480 и частичный линейный адрес 485. Кэш-память известного уровня техники идентифицировала ложное совпадение между 475 и 470В, поскольку частичный линейный адрес 485 совпадает с тегом 450В. В одном варианте осуществления контекстный идентификатор 480 сравнивается с контекстным идентификатором 415В. Также в одном варианте осуществления частичный линейный адрес 485 сравнивается с тегом 450В. Таким образом, массив 400 кэша не обнаружит ложное совпадение между 475 и 470В, так как контекстный идентификатор 480 не совпадает с контекстным идентификатором 415В.

Фиг.5 иллюстрирует один вариант осуществления части обработчика пропусков страницы (ОПС). В одном варианте осуществления ОПС 500 генерирует и управляет назначением контекстных идентификаторов. ОПС 500 включает в себя генератор 510 контекстных идентификаторов, компаратор 520, мультиплексор 530 контекстных идентификаторов и инвертор 540. В одном варианте осуществления генератор 510 контекстных идентификаторов генерирует однобитовое двоичное число, соответствующее исполняемой в данный момент цепочке. В других вариантах осуществления изобретения генератор 510 контекстных идентификаторов генерирует двоичное число с несколькими битами. Компаратор 520 сравнивает адреса баз каталогов страниц, используемых двумя цепочками, которые исполняются в процессоре. В другом варианте контекстный идентификатор содержит два или более битов.

Согласно одному варианту осуществления ОПС 500 определяет, приписан или нет один и тот же контекстный идентификатор к командам двух различных цепочек. Для варианта, показанного на фиг. 5, ОПС 500 приписывает первый контекстный идентификатор к первой цепочке, которая выполняется в процессоре. Например, если цепочка 0 является первой цепочкой для выполнения в процессоре, то процессор может приписать 0 как контекстный идентификатор цепочки 0. Не требуется, чтобы контекстный идентификатор совпадал с номером цепочки. Таким образом, цепочка 0 может иметь контекстный идентификатор либо 1, либо 0. В других вариантах осуществления изобретения процессор выполняет более чем две цепочки команд и используются контекстные идентификаторы из более чем одного бита.

Если вторая цепочка начинает выполняться в процессоре (например, цепочка 1), то ОПС 500 определяет, приписать ли командам второй цепочки другой контекстный идентификатор, отличный от приписанного к командам цепочки 0. Возможно, что цепочка 0 и цепочка 1 используют одни и те же страницы в основной памяти. Если это так, то желательно приписать один и тот же контекстный идентификатор к командам двух цепочек, так как ложное совпадение между тегом и линейным адресом является менее вероятным, когда известно, что линейный адрес отображается на ту же самую страницу, что и тег. Компаратор 520 определяет, используют ли цепочка 0 и цепочка 1 одни и те же страницы в основной памяти путем сравнения баз каталогов страниц, используемых двумя цепочками.

Если цепочка 0 и цепочка 1 используют один и тот же адрес, что и база для их соответствующих каталогов страниц, то мультиплексор 530 выберет один и тот же контекстный идентификатор для цепочки 1, что и выбранный для цепочки 0. Напротив, если компаратор 520 указывает, что цепочка 0 и цепочка 1 не используют один и тот же адрес для баз их каталогов страниц, то мультиплексор 530 выбирает выход инвертора 540 как контекстный идентификатор для цепочки 1. Определение того, используют ли совместно две цепочки один и тот же контекстный идентификатор, может быть реализовано другим образом. Например, в некотором варианте осуществления изобретения операционная система определяет, используют ли совместно две цепочки один и тот же контекстный идентификатор, и явным образом сообщает процессору правильный контекстный идентификатор для присоединения к цепочке. В еще одном варианте осуществления изобретения предсказывающее устройство, которое изучает модели доступа к данным для цепочек, предсказывает контекстный идентификатор. Согласно одному варианту осуществления пользователь может выдать команду ОПС 500 всегда выбирать одну и ту же величину для команд двух различных цепочек или всегда выбирать различные величины контекстного идентификатора для команд двух различных цепочек. Также некоторые варианты используют дополнительные критерии, кроме адреса базового каталога, для определения, используют ли совместно цепочки один и тот же контекстный идентификатор.

В другом варианте осуществления изобретения более двух цепочек присутствуют в процессоре. Для варианта, где в процессоре присутствуют n цепочек, контекстные идентификаторы расширены до схемы кодирования, которая позволяет определить n различных контекстных идентификаторов. Специалисту в данной области техники очевидно, что когда используется n-битовый контекстный идентификатор, n битов помещаются в кэш таким же образом, как и единственный бит помещается в кэш. Также специалисту в данной области техники очевидно, что сравнение n-битовых контекстных идентификаторов друг с другом может быть осуществлено по существу таким же образом, что и сравнение двух однобитовых контекстных идентификаторов.

Вариант осуществления изобретения с множеством цепочек использует пул (буферную область) неиспользуемых контекстных идентификаторов. Когда цепочка изменяет свою базу таблицы страниц (CR3), она сравнивает новое значение со значением базы таблицы страниц, используемой другими активными цепочками, или с любой допустимой базой таблицы страниц контекстного идентификатора в пуле. Если имеется совпадение, она берет значение контекстного идентификатора цепочки, которая вызвала это совпадение. Если с другой активной цепочкой совпадения нет, то она берет неиспользуемый контекстный идентификатор из пула. Контекстные идентификаторы возвращаются в неиспользуемый пул, когда цепочка изменяет свое значение базы страниц, либо когда освобождена последняя строка кэша с данным контекстным идентификатором. Последняя конфигурация позволяет цепочке обращаться к данным, которые внесла предыдущая цепочка. Специалисту в данной области техники очевидно, что может быть использовано много схем для предсказания значения контекстного идентификатора для цепочки.

Фиг. 6 иллюстрирует считывание из системы кэш-памяти, имеющей контекстный идентификатор. Массив 610 кэша включает в себя строки 605 кэша. Каждая строка 605 кэша включает в себя контекстный идентификатор 610А, тег 610В и блок 610С данных. Массив 610 кэша связан с контроллером 620 кэша. Контроллер 620 кэша управляет доступом к данным, содержащимся в массиве 610 кэша.

Контроллер 620 кэша связан с определителем 670 попаданий/промахов и компараторами 675 и 680. Работа определителя 670 попаданий/промахов и компараторов 675 и 680 обсуждается ниже. В одном варианте компаратор связан с блоком генерации адреса (БГА) 630, а также с элементом И 685. БГА 630 генерирует линейные адреса для выданных команд, которые запрашивают передачу памяти (т.е. команды LOAD - загрузить и STORE - сохранить). В одном варианте компаратор 680 связан с элементом И 685 и ОПС 640 через мультиплексор 650. ОПС 640 содержит управляющую логику, используемую для определения того, какой контекстный идентификатор приписан к какой выданной команде.

Цикл считывания обычно инициируется выданной командой LOAD - загрузить (LD) 660. LD 660 посылается к ОПС 640 и БГА 630. ОПС 640 определяет, среди других вещей, какая цепочка является источником LD 660. ОПС 640 приписывает контекстный идентификатор к LD 660 частично на основе того, какая цепочка является источником LD 660. ОПС 640 выдает контекстный идентификатор, связанный с LD 660, к компаратору 680 через мультиплексор 650. Подобным же образом БГА 630 выдает частичный линейный адрес к компаратору 675.

Компараторы 675 и 680 используют частичный линейный адрес и контекстный идентификатор LD 660 для определения того, содержит ли массив 610 кэша информацию, которую запрашивает LD 660. Если массив 610 кэша содержит требуемую информацию, то имеет место кэш-попадание. Если массив 610 кэша не содержит требуемой информации, то имеет место кэш-промах.

Кэш-попадание требует, чтобы конкретная строка кэша содержала контекстный идентификатор, который совпадает с контекстным идентификатором LD 660, и тег, который совпадает с частичным линейным адресом, соответствующим LD 660. Компараторы 675 и 680 сравнивают поле тега и поле контекстного идентификатора каждой строки кэша с контекстным идентификатором и частичным линейным адресом LD 660. Согласно одному варианту имеется столько компараторов, сколько имеется строк кэша, так что сравнения могут осуществляться в единственной параллельной операции. Если единственная строка кэша содержит контекстный идентификатор и тег, который совпадает с контекстным идентификатором и частичным линейным адресом LD 660, то элемент И 685 сигнализирует кэш-попадание. Существует, однако, возможность того, что кэш-попадание основано на ложном совпадении, так как компаратор 675 сравнивает только часть адреса LD 660 с каждым тегом в массиве 610А кэша.

Определитель 670 попаданий/промахов детектирует, основано ли кэш-попадание на ложном совпадении. Определитель попаданий/промахов принимает полный линейный адрес местонахождения в основной памяти, из которого LD 660 запрашивает команду/операнд. Согласно одному варианту определитель 670 попаданий/промахов транслирует линейный адрес, переданный ему БГА, в физический адрес. Определитель 670 попаданий/промахов определяет физический адрес, соответствующий тегу, совпадающему с частичным линейным адресом LD 660. Определитель 670 попаданий/промахов сравнивает оба полных физических адреса для определения того, основано ли кэш-попадание на ложном совпадении.

Фиг.7 иллюстрирует запись в кэш-память с использованием контекстного идентификатора. Массив 710 кэша включает в себя множество строк 705 кэша. Каждая строка 705 кэша включает в себя контекстный идентификатор 710А, тег 710В и блок данных 710С. Массив 710 кэша связан с контроллером 720 кэша. Контроллер 720 кэша выполняет множество функций, включая определение того, в какую строку кэша будет записан блок данных. Контроллер 720 кэша связан с БГА 730 и ОПС 740 через мультиплексор 750.

Выданные команды 760 посылаются от процессора (не показан) к ОПС 740 и БГА 730. В одном варианте БГА 730 генерирует линейный адрес, когда выданная команда 760 требует передачу памяти. БГА 730 обычно является частью ядра выполнения процессора. В других вариантах БГА 730 может генерировать физический адрес. В одном варианте ОПС 740 генерирует по меньшей мере два контекстных идентификатора и управляющие сигналы, которые управляют мультиплексором 750. В других вариантах ОПС 740 может генерировать любое количество контекстных идентификаторов.

Цикл записи обычно инициируется выданной командой сохранения (ST) (например, ST 760). ST 760 посылается к ОПС 740 и БГА 730. ОПС 740 определяет, какая цепочка является источником ST 760. ОПС 740 далее определяет, какой контекстный идентификатор приписать к ST 760. Согласно одному варианту ОПС 740 имеет три режима работы: «выключено», «не используется совместно» и «адаптивный». Если ОПС 740 работает в режиме «выключено», то ОПС 740 может записать одно и то же значение для каждого контекстного идентификатора. Строка кэша используется совместно командами двух или более цепочек, если эти цепочки имеют один и тот же контекстный идентификатор, что и контекстный идентификатор, хранимый в строке кэша.

При работе в режиме «не используется совместно» ОПС 740 может приписать особый контекстный идентификатор к цепочке, которая содержит выданную команду. В одном варианте режим «адаптивный» позволяет ОПС 740 динамически определить, приписать ли одни и те же или различные контекстные идентификаторы для команд, происходящих из различных цепочек. В одном варианте если цепочки совместно используют один и тот же адрес для базы их каталогов страниц, то ОПС 740 динамически приписывает один и тот же контекстный идентификатор для команд, содержащихся в цепочках. Если это не так в одном варианте, то ОПС 740 динамически приписывает различные контекстные идентификаторы к командам, содержащимся в цепочках.

В одном варианте ОПС 740 учитывает, находится ли компьютер в режиме множества цепочек и задействован ли страничный обмен при определении того, записать ли один и тот же контекстный идентификатор для команд двух различных цепочек. Любое количество критериев может использоваться для определения значения контекстного идентификатора, которое приписывается к выданной команде. Далее генератор контекстных идентификаторов и связанная управляющая логика могут быть помещены во множество мест в пределах электронной системы и не обязательно должны содержаться в ОПС или подобном блоке.

ОПС 740 посылает контекстный идентификатор, подходящий для ST 760 к контроллеру 720 кэша, через мультиплексор 750. БГА 730 генерирует линейный адрес, соответствующий местонахождению основной памяти, в которое ST 760А пытается сохранить данные. БГА 730 снабжает контроллер 720 кэша и определитель 770 попаданий/промахов линейным адресом, соответствующим ST 760. Контроллер 720 кэша применяет стратегию замены строк кэш-памяти для определения того, какая строка кэша будет использована для сохранения данных для ST 760. Стратегии замены строк кэш-памяти хорошо известны в данной области техники (см., например, Handy, Jim; The Cache Memory Book; Academic Press, 1998).

После выбора подходящей строки кэша контроллер 720 кэша записывает контекстный идентификатор в поле 780А контекстного идентификатора выбранной строки 780 кэша. Контроллер 720 кэша записывает часть линейного адреса ST 760 в поле 780В тега строки 780 кэша. В одном варианте тег содержит биты 23-12 32-битового линейного адреса. Имеется много комбинаций адресных битов, которые могут быть использованы для тега. Контроллер кэша записывает данные, связанные с ST 760, в поле 780С блока данных выбранной строки 780 кэша.

Управление кэш-памятью может выполняться командами от доступного электронного носителя, который может использоваться для программирования компьютера (или других электронных устройств) для выполнения описываемого здесь процесса. Доступный электронный носитель может включать в себя, но не ограничен этим, флоппи-дискеты, оптические диски, CD-ROM, магнитно-оптические диски, ПЗУ, ОЗУ, электрически программируемое ПЗУ, ЭСППЗУ, магнитные или оптические карточки, флэш-память или другой тип носителя/считываемого машиной носителя, подходящего для сохранения электронных команд. Кроме того, команды могут также загружаться как компьютерный программный продукт, в котором программа может переноситься от удаленного компьютера к запрашивающему компьютеру посредством информационных сигналов, воплощенных в несущей волне или в другой среде распространения через линию связи (например, модем или подключение к сети).

Вышеприведенное описание иллюстрированных вариантов изобретения не предназначено быть исчерпывающим или ограничивающим изобретение точными раскрытыми формами. Хотя конкретные варианты осуществления и примеры изобретения описаны здесь с иллюстративными целями, возможны различные эквивалентные модификации в рамках объема изобретения, как должно быть понятно специалистам в соответствующей области техники.

Такие модификации могут быть сделаны в изобретении в свете вышеприведенного подробного описания. Термины, использованные в следующей формуле изобретения, не должны толковаться как ограничивающие изобретение конкретными вариантами осуществления, раскрытыми в описании и формуле изобретения. Объем изобретения должен быть полностью задан следующей формулой изобретения, которая должна толковаться в соответствии с установленными доктринами интерпретации формулы изобретения.

Похожие патенты RU2285286C2

название год авторы номер документа
СИСТЕМНЫЙ КОГЕРЕНТНЫЙ КЭШ С ВОЗМОЖНОСТЬЮ ФРАГМЕНТАЦИИ/ДЕФРАГМЕНТАЦИИ 2013
  • Кокер Алтуг
  • Пьяцца Томас А.
  • Сундаресан Мурали
RU2635255C2
ФИЛЬТРАЦИЯ ОТСЛЕЖИВАНИЯ С ИСПОЛЬЗОВАНИЕМ КЭША ЗАПРОСОВ ОТСЛЕЖИВАНИЯ 2008
  • Диффендерфер Джеймс Норрис
RU2443011C2
ГРАФИЧЕСКАЯ СИСТЕМА С КОНФИГУРИРУЕМЫМИ КЭШАМИ 2007
  • Юй Чунь
  • Цзяо Гофан
  • Ду Юнь
RU2412469C2
ЭФФЕКТИВНОЕ УПРАВЛЕНИЕ ИЕРАРХИЕЙ ПАМЯТИ 2007
  • Морроу Майкл Уилльям
  • Сарториус Томас Эндрю
RU2397534C2
ТОЧКИ ОСТАНОВА ВОСПРОИЗВЕДЕНИЯ ТРАССИРОВКИ НА ОСНОВЕ КЭША, ИСПОЛЬЗУЮЩИЕ ЗАРЕЗЕРВИРОВАННЫЕ БИТЫ ПОЛЯ ТЕГА 2019
  • Мола, Джорди
RU2769785C1
УСТРОЙСТВО И СПОСОБЫ ДЛЯ УМЕНЬШЕНИЯ ВЫТЕСНЕНИЙ В МНОГОУРОВНЕВОЙ ИЕРАРХИИ КЭША 2008
  • Спейер Томас Филип
  • Диффендерфер Джеймс Норрис
  • Сарториус Томас Эндрю
RU2438165C2
ВИРТУАЛЬНО МАРКИРОВАННЫЙ КЭШ КОМАНД С ПОВЕДЕНИЕМ ФИЗИЧЕСКИ МАРКИРОВАННОГО 2007
  • Сарториус Томас Эндрю
  • Смит Родни Уэйн
  • Стритт Дарен Юджин
RU2433456C2
УСТРОЙСТВО УПРАВЛЕНИЯ БУФЕРНОЙ ПАМЯТЬЮ 1990
  • Зайцев А.И.
  • Коваленко С.С.
  • Пентковский В.М.
  • Фельдман В.М.
RU2010317C1
СПОСОБ ФИЛЬТРАЦИИ МЕЖПРОЦЕССОРНЫХ ЗАПРОСОВ В МНОГОПРОЦЕССОРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ И УСТРОЙСТВО ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ 2001
  • Бабаян Б.А.
  • Сахин Ю.Х.
  • Тихорский В.В.
  • Ким А.К.
  • Чудаков М.Л.
RU2189630C1
СПОСОБ И УСТРОЙСТВО ДЛЯ УСТАНОВКИ ПОЛИТИКИ КЭШИРОВАНИЯ В ПРОЦЕССОРЕ 2008
  • Морроу Майкл Уилльям
RU2427892C2

Иллюстрации к изобретению RU 2 285 286 C2

Реферат патента 2006 года ИСПОЛЬЗОВАНИЕ КОНТЕКСТНОГО ИДЕНТИФИКАТОРА В КЭШ-ПАМЯТИ

Изобретение относится к компьютерной технологии, в частности к способам и устройствам управления кэш-памятью с использованием контекстного идентификатора. Техническим результатом является улучшение характеристик кэш-памяти в вычислительном устройстве. Один из вариантов устройства содержит генератор контекстных идентификаторов для их генерирования, управляющий блок для приписывания контекстных идентификаторов к строкам кэша и кэш. Второй вариант устройства содержит блок генерации адреса, кэш, по меньшей мере, три компаратора, управляющий блок для генерирования двух или более контекстных идентификаторов и для выбора одного из них, два регистра для хранения адреса базы каталога страниц каждой из цепочек исполняющихся компьютерных программ, генератор контекстных идентификаторов и мультиплексор. Третий вариант устройства содержит кэш, логические схемы для сравнения запрашиваемого тега и запрашиваемого контекстного идентификатора, определитель попаданий/промахов для определения, имеется ли ложное совпадение между запрошенным контекстным идентификатором и связанным контекстным идентификатором. Способы описывают работу указанных устройств. 5 н. и 15 з.п. ф-лы, 8 ил.

Формула изобретения RU 2 285 286 C2

1. Способ управления кэш-памятью с использованием контекстного идентификатора, содержащий

сохранение первого контекстного идентификатора, связанного с тегом, в кэш-памяти;

генерирование адреса, который связан с выданной командой;

сравнение части адреса с тегом для определения того, совпадает ли адрес с тегом;

сравнение второго контекстного идентификатора, связанного с выданной командой, с первым контекстным идентификатором, хранимым в кэш-памяти, для определения того, совпадает ли второй контекстный идентификатор, связанный с выданной командой, с первым контекстным идентификатором, хранимым в кэше,

определение того, не является ли совпадение между первым контекстным идентификатором и вторым контекстным идентификатором ложным совпадением, и

передачу блока данных из кэш-памяти в процессор, если часть адреса совпадает с тегом и если второй контекстный идентификатор, связанный с выданной командой, совпадает с первым контекстным идентификатором, хранимым в кэш-памяти.

2. Способ по п.1, дополнительно содержащий замену блока данных строки кэша в кэш-памяти, который выбран стратегией замены, блоком данных, определенным адресом, если часть адреса не совпадает с тегом; и

сохранение первого контекстного идентификатора в строке кэша.

3. Способ по п.1, дополнительно содержащий замену блока данных строки кэша в кэш-памяти, который выбран стратегией замены, блоком данных, определенным адресом, если часть адреса не совпадает с тегом и второй контекстный идентификатор, связанный с командой, не совпадает с первым контекстным идентификатором, хранимым с тегом; и

сохранение первого контекстного идентификатора в строке кэша.

4. Способ управления кэш-памятью с использованием контекстного идентификатора, включающий в себя

сравнение адреса базы каталога страниц, используемого первой цепочкой команд, с адресом базы каталога страниц, используемым второй цепочкой, для определения того, совпадает ли адрес базы каталога страниц, используемый первой цепочкой, с адресом базы каталога страниц, используемым второй цепочкой;

приписывание контекстного идентификатора как к первой цепочке, так и ко второй цепочке, если адрес базы каталога страниц, используемый первой цепочкой, совпадает с адресом базы каталога страниц, используемым второй цепочкой;

приписывание различного контекстного идентификатора к первой цепочке и второй цепочке, если адрес базы каталога страниц, используемый первой цепочкой, не совпадает с адресом базы каталога страниц, используемым второй цепочкой,

сохранение адреса базы каталога страниц первой цепочки в первом регистре;

сохранение адреса базы каталога страниц второй цепочки во втором регистре;

считывание первого регистра для определения адреса базы каталога страниц первой цепочки и

считывание второго регистра для определения адреса базы каталога страниц второй цепочки.

5. Способ по п.4, в котором первый регистр и второй регистр являются одним и тем же регистром.6. Способ по п.4, в котором один и тот же контекстный идентификатор приписывается к первой цепочке и второй цепочке.7. Способ по п.4, в котором различный контекстный идентификатор приписывается к первой цепочке и второй цепочке.8. Устройство для управления кэш-памятью с использованием контекстного идентификатора, содержащее

генератор контекстных идентификаторов для генерирования контекстных идентификаторов;

управляющий блок, связанный с генератором контекстных идентификаторов, для приписывания контекстных идентификаторов к строкам кэша и

кэш, связанный с управляющим блоком, имеющий множество участков кэша для хранения множества строк кэша, причем каждая из строк кэша включает в себя, по меньшей мере, контекстный идентификатор, тег и блок данных.

9. Устройство по п.8, в котором управляющий блок дополнительно содержит

один или более регистров для сохранения адресов одной или более баз одного или более каталогов страниц и

компаратор, связанный с регистром, для сравнения адреса базы каталога страниц, используемого первой цепочкой, с адресом базы каталога страниц, используемым второй цепочкой.

10. Устройство по п.9, дополнительно содержащее мультиплексор, связанный с компаратором и с генератором контекстных идентификаторов для выбора контекстных идентификаторов.11. Устройство по п.10, в котором каждый контекстный идентификатор содержит один или более битов, соответствующих указателю базы каталога страниц, который является физическим адресом базы каталога страниц.12. Устройство по п.11, в котором контекстный идентификатор содержит один или несколько битов тега.13. Устройство для управления кэш-памятью с использованием контекстного идентификатора, содержащее

блок генерации адреса (БГА) для генерирования адресов в ответ на команду, выданную процессором;

кэш для сохранения множества строк кэша, причем каждая из множества строк кэша включает в себя, по меньшей мере, контекстный идентификатор, тег и блок данных;

по меньшей мере, один компаратор, связанный с БГА и связанный с кэшем, для сравнения части адреса, генерируемой БГА, с каждым из тегов в каждой из множества строк кэша;

управляющий блок для генерирования двух или более контекстных идентификаторов и для выбора одного из двух или более контекстных идентификаторов;

по меньшей мере, один компаратор, связанный с управляющим блоком и связанный с кэшем, для сравнения контекстного идентификатора, выбранного управляющим блоком, с каждым из контекстных идентификаторов в каждой из множества строк кэша;

первый регистр для хранения адреса базы каталога страниц, связанного с первой цепочкой исполняющихся компьютерных команд;

второй регистр для хранения адреса базы каталога страниц, связанного со второй цепочкой исполняющихся компьютерных команд;

компаратор, связанный с первым регистром и вторым регистром, для сравнения значения, хранимого в первом регистре, со значением, хранимым во втором регистре;

генератор контекстных идентификаторов для генерирования, по меньшей мере, двух контекстных идентификаторов и

мультиплексор, связанный с генератором контекстных идентификаторов и компаратором, для выбора одного из, по меньшей мере, двух контекстных идентификаторов.

14. Устройство по п.13, в котором

мультиплексор обеспечивает выбор первого контекстного идентификатора, если адрес базы каталога страниц, связанный с первой цепочкой исполняющихся компьютерных команд, совпадает с адресом базы каталога страниц, связанным со второй цепочкой исполняющихся компьютерных команд; и

мультиплексор обеспечивает выбор второго контекстного идентификатора, если адрес базы каталога страниц, связанный с первой цепочкой исполняющихся компьютерных команд, не совпадает с адресом базы каталога страниц, связанным со второй цепочкой исполняющихся компьютерных команд.

15. Устройство для управления кэш-памятью с использованием контекстного идентификатора, содержащее

кэш-память для хранения множества строк кэша, причем каждая строка кэша имеет связанный тег и связанный контекстный идентификатор; и

логические схемы сравнения для сравнения запрашиваемого тега и запрашиваемого контекстного идентификатора со связанным тегом и связанным контекстным идентификатором для каждой из множества строк кэша и

определитель попаданий/промахов для определения, имеется ли ложное совпадение между запрошенным контекстным идентификатором и связанным контекстным идентификатором.

16. Устройство по п.15, в котором связанный контекстный идентификатор содержит идентификатор цепочки.17. Устройство по п.15, в котором в первом режиме связанный контекстный идентификатор содержит идентификатор цепочки, а во втором режиме связанный контекстный идентификатор является предсказанным контекстным идентификатором.18. Устройство по п.17, в котором во втором режиме предсказанный контекстный идентификатор определяется, по меньшей мере, частично путем сравнения базы каталога страниц, используемой первой цепочкой, с базой каталога страниц, используемой второй цепочкой, для определения того, совпадает ли база каталога страниц, используемая первой цепочкой, с базой каталога страниц, используемой второй цепочкой.19. Устройство по п.18, в котором во втором режиме предсказанный контекстный идентификатор определяется, по меньшей мере, частично путем сравнения базы каталога страниц, используемой первой цепочкой, с базой каталога страниц, используемой второй цепочкой, и базой каталога страниц, используемой третьей цепочкой, для определения того, совпадает ли база каталога страниц, используемая первой цепочкой, с базой каталога страниц, используемой либо второй, либо третьей цепочкой.20. Устройство по п.15, в котором логические схемы сравнения обеспечивают генерирование сигнала совпадения, только если имеет место совпадение контекстных идентификаторов и совпадение тегов.

Документы, цитированные в отчете о поиске Патент 2006 года RU2285286C2

МНОГОПРОЦЕССОРНАЯ КОМПЬЮТЕРНАЯ СИСТЕМА С КОГЕРЕНТНОЙ КЭШ С УМЕНЬШЕННЫМ ЭНЕРГОПОТРЕБЛЕНИЕМ 1995
  • Кармин Дуглас М.
  • Кроуфорд Джон
RU2171490C2
СПОСОБ ДВУХТАКТНОЙ АССОЦИАТИВНОЙ МАРШРУТИЗАЦИИ 1999
  • Валов С.Г.
  • Евсюков С.Г.
RU2140132C1
Топчак-трактор для канатной вспашки 1923
  • Берман С.Л.
SU2002A1
Перекатываемый затвор для водоемов 1922
  • Гебель В.Г.
SU2001A1

RU 2 285 286 C2

Авторы

Хаммарлунд Пер

Венкатраман К. С.

Бактха Аравиндх

Аптон Майкл

Даты

2006-10-10Публикация

2003-03-13Подача