Системный когерентный кэш с возможностью фрагментации/дефрагментации



Системный когерентный кэш с возможностью фрагментации/дефрагментации
Системный когерентный кэш с возможностью фрагментации/дефрагментации
Системный когерентный кэш с возможностью фрагментации/дефрагментации
Системный когерентный кэш с возможностью фрагментации/дефрагментации
Системный когерентный кэш с возможностью фрагментации/дефрагментации
Системный когерентный кэш с возможностью фрагментации/дефрагментации

 


Владельцы патента RU 2635255:

ИНТЕЛ КОРПОРЕЙШН (US)

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

 

Уровень техники

Настоящее изобретение, в общем, относится к использованию фрагментированного/дефрагментированного доступа к памяти.

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

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

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

Краткое описание чертежей

Некоторые варианты осуществления описаны в отношении следующих фигур:

на фиг. 1 показано описание аппаратного обеспечения для одного варианта осуществления;

на фиг. 2 приведена блок-схема последовательности операций блока генерации адреса в соответствии с одним вариантом осуществления;

на фиг. 3 приведена блок-схема последовательности операций для структуры тега в соответствии с одним вариантом осуществления;

на фиг. 4 приведена блок-схема последовательности операций для когерентности системы в соответствии с одним вариантом осуществления;

на фиг. 5 приведено изображение поиска адреса в соответствии с одним вариантом осуществления;

на фиг. 6 приведено изображение системы для одного варианта осуществления;

на фиг. 7 приведена проекция спереди одного варианта осуществления.

Подробное описание изобретения

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

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

В соответствии с одним вариантом осуществления кэш с возможностью фрагментации/дефрагментации может быть расположен между вычислительными элементами, включающими в себя блок генерации адресов и память, обладающими возможностью увеличить необходимую пропускную способность не только для последовательного доступа, но также для произвольного доступа или доступа с шагом. Кэш с возможностью фрагментации/дефрагментации может сопрягаться с блоком генерации адресов, который уже размещен в тракте передачи сообщений вычислительных элементов. Кэш с возможностью фрагментации/дефрагментации может быть способен обслуживать несколько адресов за такт. Блоком генерации адресов могут быть выработано несколько адресов различных строк кэша с активациями линий. Активации линий представляют собой расширения битов адресов, где строки кэша разбивают на более мелкие элементы. Например, в случае линий из двойных слов можно выработать до 16 адресов с активациями из двойных слов для строки кэша из 64 байтов. Если несколько адресов находятся на одних и тех же линиях из двойных слов, то такие случаи могут быть сериализованы или фрагментированы самим блоком генерации адресов. Такая сериализация может быть полезной, если кэш с возможностью фрагментации/дефрагментации имеет ограничение, заключающееся в том, что за такт возможно не более одного обращения на линию. Тег кэша возможностью фрагментации/дефрагментации может быть организован в виде нескольких блоков, каждый с несколькими портами для чтения, работающих на более высокой базовой частоте. Тег представляет собой уникальный идентификатор группы данных. Так как различные области памяти могут быть отображены на один блок, тег используют для того, чтобы их различать. Чтобы снизить расходы на оборудование, разбиение тегов на блоки можно увеличить, при этом несколько адресов хешируют на блоки тега, чтобы ограничить необходимость в дополнительных портах для чтения для более быстрого доступа на чтение.

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

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

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

Таким образом, в некоторых вариантах осуществления блок генерации адресов фрагментации/дефрагментации использует теги с системным резервированием вместо собственной памяти. Кроме того, кэш с возможностью фрагментации/дефрагментации достигает согласованности данных посредством аппаратной когерентности. Использование аппаратной когерентности устраняет требование программной синхронизации структур данных, что является тяжелым бременем в случае прикладных программных интерфейсов (API) с собственной памятью с возможностью фрагментации/дефрагментации. Это не только устраняет необходимость программно перемещать данные по системе, но также устраняет требование избыточного сброса кэшей низкого уровня для синхронизации непосредственно разделяемых структур данных.

Со ссылкой на фиг. 1, блок 12 генерации адресов (AGU) подает данные на несколько входных суперочередей 20. В одном варианте осуществления к одной суперочереди обращаются 1-2 (или больше) раз за такт. В одном варианте осуществления блок генерации адресов выдает 16 адресов за такт. Блок генерации адресов может производить N-адреса параллельно (например, 16, 32, 64, …), где N может быть масштабируемым на структуру. Эти адреса могут быть мультиплексированы с выходом от кэша более высокого уровня, например, от кэша 14 второго уровня (L2). Входные суперочереди соединяются с конвейерами 24 тегов, которые, в свою очередь, соединяются в этом примере с хешированным тегом на четыре блока 22. Концепция блока также зависит от конструкции и оптимизации издержек. Технически возможно, чтобы блок поддерживал несколько обращений за цикл.

Обращение к блокам осуществляют через мультиплекс 34 адресов, который соединен линией 36 с элементом 26 управления конвейера данных. Элемент управления конвейера данных связан с кэшем 28 данных и очередями 30 данных. Выход из очередей 30 данных направляют на собирающий буфер в системной памяти 18.

Каждый запрос на заполнение выдается суперочередью 32 промахов, которая также принимает промахи из различных конвейеров тегов. Суперочередь промахов связана с обращением 16 к памяти, которая в одном варианте осуществления может представлять собой кэш следующего уровня (например, уровня 2, 3, 4, …), уровня 3 или L3.

Кэш 10 с возможностью фрагментации/дефрагментации, показанный на фиг. 1, может предоставлять 16 или более двойных слов за такт, при этом каждое двойное слово возвращают на свою линию, по которой оно было запрошено, с соответствующими тегами или идентификаторами, чтобы блок генерации адресов мог пересобрать содержимое сообщения вычислительного элемента посредством собирающих буферов. Очередь 32 промахов представляет собой общий ресурс для обработки промахов тегов и планирует заполнения по мере обработки данных структурой памяти. Правила когерентности системы обрабатываются той же структурой.

Тег может быть хеширован на несколько блоков 22, где каждый блок работает с более высокой базовой частотой и/или с несколькими портами для чтения, обеспечивая множество одновременных просмотров за такт вычислений. Каждый запрос тега может быть дополнен ссылкой, обозначающей, что смежные линии данных будут обрабатываться с ее адресом в качестве основы. Некоторые просмотры адреса в строке кэша не приведут к нескольким просмотрам в той же строке. Таким образом, в качестве простого примера, если мы возьмем случай рассеянного двойного слова, как показано на фиг. 5, то сообщение начинается с двойного слова номер 9 строки х и требует 16 двойных слов. Блок генерации адресов отправляет адрес строки х линии DW#9 длиной 7 и адрес строки х+1 DW#0 длиной 9. При обработке тега выполняют два просмотра и подают на конвейер данных требуемое число запрашиваемых двойных слов.

Адреса из блока генерации должны попасть в структуру тега, чтобы выяснить, находятся ли данные в кэше. Можно использовать 16 портов для чтения в структуре тега, но это слишком затратно. В одном варианте осуществления структура тега может быть разделена на четыре блока, причем у каждого уникальный адрес и хеш-адрес. Если совпадающие адреса находятся в блоке тега, то адрес перенаправляют на соответствующий блок тега. В одном варианте осуществления, если все 16 адресов ведут в один и тот же блок или банк, то автоматически выделяют дополнительные такты, чтобы обработать попадания и промахи. Кэш содержит заполнение строки кэша для каждого тега. Промах может быть сохранен, а затем может быть опять заполнен в теги. Система следит, чтобы все 16 линий содержали валидные данные. Другие альтернативы включают в себя 8 блоков с одним портом или 2 блока с 4 портами.

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

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

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

Последовательность 40 действий начинается с генерирования единственного адреса, как обозначено в блоке 42. Затем, как показано в блоке 44, добавляют теги. Наконец, содержимое резервируют в системную память, как показано в блоке 46.

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

Последовательность 50 действий начинается с приема адреса, как обозначено в блоке 52. Проверка в ромбе 54 определяет, имеется ли в блоке тега совпадающий адрес. Если имеет место промах, то последовательность действий завершается. Наоборот, если имеет место попадание, то адреса перенаправляют на соответствующий блок тега, как показано в блоке 56. Проверка в ромбе 58 определяет, не слишком ли много адресов приходится на блок. Если нет, то последовательность действий завершается, а в противном случае используют дополнительные такты для обработки попаданий и промахов (блок 60).

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

Последовательность 70 действий начинается с определения в ромбе 72 того, выполняет ли программное обеспечение приложение. Если так, то приложение перехватывают, используя цикл слежения из кэшей более высокого уровня. Выход блока генерации адресов мультиплексируют с внешним адресом из L2-кэша, как показано в блоке 74.

Структура тега принимает адрес слежения и сравнивает его со структурой тега, как показано в блоке 76. L2-кэш делает данные (блок 78) видимыми остальной части системы посредством сброса кэшей (блок 80).

На фиг. 6 показан вариант осуществления системы 700. В вариантах осуществления система 700 может представлять собой медиасистему, хотя система 700 не ограничена этим контекстом. Например, система 700 может быть встроена в персональный компьютер (ПК), ноутбук, ультрабук, планшет, сенсорную панель, портативный компьютер, карманный компьютер, наладонный компьютер, персональный цифровой помощник (PDA), сотовый телефон, сочетание сотового телефона/PDA, телевизор, интеллектуальное устройство (например, смартфон, смарт-планшет или смарт-телевизор), мобильное интернет-устройство (MID), устройство обмена сообщениями, устройство передачи данных и т.д.

В вариантах осуществления система 700 содержит платформу 702, связанную с дисплеем 720. Платформа 702 может принимать содержимое от контент-устройства, такого как устройство(а) 730 контентных служб или устройство(а) 740 доставки контента или из аналогичных источников контента. Контроллер 750 навигации, содержащий один или несколько навигационных признаков, может использоваться для взаимодействия, например, с платформой 702 и/или дисплеем 720. Каждый из этих компонентов более подробно описан ниже.

В вариантах осуществления платформа 702 может содержать любое сочетание чипсета 705, процессора 710, памяти 712, запоминающего устройства 714, графической подсистемы 715, приложений 716 и/или радио 718. Чипсет 705 может обеспечивать взаимную связь между процессором 710, памятью 712, запоминающим устройством 714, графической подсистемой 715, приложениями 716 и/или радио 718. Например, чипсет 705 может включать в себя адаптер запоминающего устройства (не показан), способный обеспечивать взаимосвязь с запоминающим устройством 714.

Процессор 710 может быть реализован в виде процессора с полным набором команд (CISC) или с сокращенным набором команд (RISC), процессора, совместимого с набором команд х86, многоядерным процессора или любого другого микропроцессора или центрального процессора (CPU). В вариантах осуществления процессор 710 может представлять собой двухъядерный процессор(ы), двухъядерный мобильный процессор и т.д. Процессор вместе с памятью 712 может реализовывать последовательности действий, показанных на фиг. 2-4,

Память 712 может быть реализована в виде энергозависимого запоминающего устройства, такого как память произвольного доступа (RAM), динамическая память произвольного доступа (DRAM) или статическая RAM (SRAM), но, не ограничиваясь этим.

Запоминающее устройство 714 может быть реализовано в виде энергонезависимого запоминающего устройства, такого как накопитель на магнитных дисках, накопитель на оптических дисках, ленточный накопитель, внутреннее запоминающее устройство, съемное запоминающее устройство, флэш-память, SDRAM на батарее (синхронная DRAM) и/или сетевое запоминающее устройство. В вариантах осуществления запоминающее устройство 714 может содержать технологию усиления защиты для ценных цифровых носителей, например, если имеется несколько жестких дисков.

Графическая подсистема 715 может выполнять обработку изображений, таких как неподвижные изображения или видео, для отображения. Графическая подсистема 715 может представлять собой, например, графический процессор (GPU) или процессор обработки видео (VPU). Для соединения графической подсистемы 715 и дисплея 720 может использоваться аналоговый или цифровой интерфейс. Например, интерфейс может быть любым из следующих: мультимедийный интерфейс высокого разрешения, интерфейс DisplayPort, беспроводной HDMI и/или беспроводные технологии высокой четкости. Графическая подсистема 715 может быть интегрирована в процессор 710 или чипсет 705. Графическая подсистема 715 может быть отдельной картой, соединенной с чипсетом 705.

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

Радио 718 может включать в себя одно или несколько радио, способных передавать и принимать сигналы, используя различные подходящие технологии беспроводной связи. Такие технологии могут включать в себя осуществление связи по одной или нескольким беспроводным сетям. Примеры беспроводных сетей включают в себя (но, не ограничиваясь) беспроводные локальные сети (WLAN), беспроводные персональные сети (WPAN), беспроводные городские сети (WMAN), сотовые сети и спутниковые сети. При осуществлении связи по таким сетям радио 718 может работать в соответствии с одним или несколькими применимыми стандартами любой версии.

В вариантах осуществления дисплей 720 может представлять собой любой телевизионный монитор или дисплей. Дисплей 720 может представлять собой, например, компьютерный экран, сенсорный экран, видеомонитор, телевизионное устройство и/или телевизор. Дисплей 720 может быть цифровым и/или аналоговым. В вариантах осуществления дисплей 720 может представлять собой голографический дисплей. Также, дисплей 720 может представлять собой прозрачную поверхность, которая может принимать визуальную проекцию. Такие проекции могут передавать различные формы информации, изображения и/или объекты. Например, такие проекции могут быть визуальным наложением для мобильного приложения дополненной реальности (MAR). Под управлением одного или нескольких программных приложений 716 платформа 702 может отображать на дисплее 720 пользовательский интерфейс 722.

В вариантах осуществления устройство(а) 730 контентных служб может быть размещено любой национальной, международной и/или независимой службой, и, таким образом, оно может быть доступно платформе 702, например, через интернет. Устройство(а) 730 контентных служб может быть связано с платформой 702 и/или с дисплеем 720. Платформа 702 и/или устройство(а) 730 контентных служб может быть связано с сетью 760 для передачи (например, отправки и/или приема) медиаинформации через сеть 760. Устройство(а) 740 доставки контента также могут быть связаны с платформой 702 и/или с дисплеем 720.

В вариантах осуществления устройство(а) 730 доставки контента могут представлять собой кабельную телевизионную приставку, персональный компьютер, сеть, телефон, интернет-устройством или прибором, способным доставлять цифровую информацию и/или контент, и любое другое аналогичное устройство, способное однонаправлено или двунаправлено передавать контент между провайдером контента и платформой 702 и/или дисплеем 720 через сеть 760 или непосредственно. Понятно, что контент может передаваться однонаправлено и/или двунаправлено к или от любого компонента в системе 700 провайдеру контента через сеть 760. Примеры контента могут включать в себя любую медиаинформацию, включая, например, видео, музыку, медицинскую или игровую информацию и так далее.

Устройство(а) 730 контентных служб принимает контент, такой как телевизионная программа, включающая в себя медиаинформацию, цифровую информацию и/или другой контент. Примеры провайдеров контента могут включать в себя любых провайдеров спутникового телевидения или радио, или интернет. Не подразумевается, что приведенные примеры ограничивают объем этого описания.

В вариантах осуществления платформа 702 может принимать сигналы управления от навигационного контроллера 750, имеющего один или несколько навигационных признаков. Навигационные признаки контроллера 750 могут использоваться, например, для взаимодействия с пользовательским интерфейсом 722. В вариантах осуществления навигационный контроллер 750 может представлять собой указательное устройство, которое может быть компьютерным аппаратным компонентом (в частности, устройством с человеко-машинным интерфейсом), который позволяет пользователю вводить пространственные (например, непрерывные или многомерные) данные в компьютер. Многие системы, такие как графические пользовательские интерфейсы (GUI), и телевизоры, и мониторы позволяют пользователю управлять и вводить данные в компьютер или телевизор, используя физические жесты.

Движения навигационных признаков контроллера 750 могут отражаться на дисплее (например, на дисплее 720) посредством движений указателя, курсора, кольца фокуса или других визуальных индикаторов, отображаемых на дисплее. Например, под управлением программных приложений 716 навигационные признаки, расположенные на навигационном контроллере 750, могут быть отображены на виртуальные навигационные признаки, отображаемые, например, на пользовательском интерфейсе 722. В вариантах осуществления контроллер 750 может не быть отдельным компонентом, а может быть интегрирован в платформу 702 и/или дисплей 720. Тем не менее, варианты осуществления не ограничены элементами или контекстом, показанными или описанными в этом документе.

В вариантах осуществления драйверы (не показаны) могут содержать технологию для того, чтобы пользователи могли мгновенно включать и выключать платформу 702, как, например, телевизор при касании кнопки после начальной загрузки, если возможно. Программная логика может позволить платформе 702 передавать поток контента на медиаадаптеры или другие устройства 730 контентных служб, или устройства 740 доставки контента, когда платформа выключена. Кроме того, чипсет 705 может содержать, например, аппаратную и/или программную поддержку звука 5.1 и/или звука 7.1 высокой четкости. Драйверы могут включать в себя графические драйверы для интегрированных графических платформ. В вариантах осуществления графический драйвер может содержать графическую карту межсоединения периферийных компонентов (РСI) типа экспресс.

В различных вариантах осуществления любой один или несколько компонентов, показанных в системе 700, могут быть интегрированными. Например, могут быть интегрированы платформа 702 и устройство(а) 730 контентных служб, или интегрированными могут быть платформа 702 и устройство(а) 740 доставки контента, либо, например, платформа 702, устройство(а) 730 контентных служб и устройство(а) 740 доставки контента могут быть интегрированы. В различных вариантах осуществления платформа 702 и дисплей 720 могут представлять собой единый блок. Дисплей 720 и устройство(а) 730 контентных служб могут быть интегрированы, либо, например, дисплей 720 и устройство(а) 740 доставки контента могут быть интегрированы. Не подразумевается, что эти примеры ограничивают объем этого описания.

В различных вариантах осуществления система 700 может быть реализована в виде беспроводной системы, проводной системы или их сочетания. Если система 700 реализована в виде беспроводной системы, то она может включать в себя компоненты и интерфейсы, пригодные для осуществления связи через беспроводной доступ к среде передачи, например, через одну или несколько антенн, передатчиков, приемников, трансиверов, усилителей, фильтров, управляющей логики и так далее. Пример беспроводной среды передачи может включать в себя участки беспроводного спектра, такого как радиочастотный спектр и т.д. Если система 700 реализована в виде проводной системы, то она может включать в себя компоненты и интерфейсы, пригодные для осуществления связи по проводной среде передачи, такой как адаптеры ввода/вывода (I/O), физические разъемы для соединения I/O адаптера с соответствующей проводной средой передачи, сетевая интерфейсная плата (NIC), дисковый контроллер, видеоконтроллер, аудиоконтроллер и т.д. Примеры проводной среды передачи могут включать в себя провод, кабель, металлические дорожки, печатные платы (РСВ), системные платы, коммутационную матрицу, полупроводник, витую пару, коаксиальный кабель, оптоволокно и т.д.

Платформа 702 может устанавливать один или несколько логических или физических каналов для передачи информации. Информация может включать в себя медиаинформацию и управляющую информацию. Медиаинформация может относиться к любым данным, представляющим контент, предназначенный для пользователя. Примеры контента могут включать в себя, например, данные голосовых разговоров, видеоконференцию, потоковое видео, сообщения электронной почты ("email"), сообщение голосовой почты, алфавитно-цифровые символы, графику, изображение, видео, текст и так далее. Данные голосового разговора, например, могут представлять собой речевую информацию, периоды тишины, фоновый шум, комфортный шум, тоновые сигналы и т.д. Управляющая информация может относиться к любым данным, представляющим команды, инструкции или управляющие слова, предназначенные для автоматизированной системы. Например, управляющая информация может использоваться для маршрутизации медиаинформации через систему, или для сообщения узлу команды на обработку медиаинформации предварительно заданным образом. Тем не менее, варианты осуществления не ограничены элементами или контекстом, показанными или описанными на фиг. 6.

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

Как описано выше, примеры мобильного вычислительного устройства могут включать в себя персональный компьютер (ПК), ноутбук, ультрабук, планшет, сенсорную панель, портативный компьютер, карманный компьютер, наладонный компьютер, персональный цифровой помощник (PDA), сотовый телефон, сочетание сотового телефона/PDA, телевизор, интеллектуальное устройство (например, смартфон, смарт-планшет или смарт-телевизор), мобильное интернет-устройство (МID), устройство обмена сообщениями, устройство передачи данных и т.д.

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

В некоторых вариантах осуществления процессор 710 может осуществлять связь с камерой 722 и датчиком 720 глобальной системы позиционирования. Память 712, соединенная с процессором 710, может хранить машинные инструкции для реализации последовательностей действий показанных на фиг. 2-4 в программной и/или аппаратной реализации.

Как показано на фиг. 7, устройство 800 может содержать корпус 802, дисплей 804, устройство 806 ввода-вывода (I/O) и антенну 808. Устройство 800 также может содержать навигационные признаки 812. Дисплей 804 может содержать любой подходящий модуль отображения для отображения информации, подходящей для мобильного вычислительного устройства. I/O устройство 806 может содержать любое подходящее I/O устройство для ввода информации в мобильно вычислительное устройство. Примеры I/O устройства 806 могут включать в себя алфавитно-цифровую клавиатуру, цифровую клавиатуру, сенсорную панель, клавиши ввода, переключатели, тумблеры, микрофоны, громкоговорители, устройство и программное обеспечения распознавания голоса и т.д. Информация может также вводиться в устройство 800 посредством микрофона. Такая информация может быть оцифрована устройством распознавания голоса. Варианты осуществления не ограничены этим контекстом.

Различные варианты осуществления могут быть реализованы с использованием аппаратных элементов, программных элементов или их сочетания. Примеры аппаратных элементов включают в себя процессоры, микропроцессоры, цепи, элементы цепей (например, транзисторы, резисторы, конденсаторы, индукторы и так далее), интегральные схемы, специализированные интегральные схемы (ASIC), программируемые логические устройства (PLD), процессоры цифровых сигналов (DSP), программируемые логические матрицы (FPGA), логические вентили, регистры, полупроводниковые устройства, чипы, микрочипы, наборы микросхем и так далее. Примеры программных элементов включают в себя программные компоненты, компьютерные программы, прикладные программы, системные программы, машинные программы, программное обеспечение операционной системы, промежуточное программное обеспечение, встроенное программное обеспечение, программные модули, стандартные программы, подпрограммы, функции, методы, процедуры, программные интерфейсы, прикладные программные интерфейсы (API), наборы инструкций, вычислительный код, машинный код, сегменты кода, машинные сегменты кода, слова, значения, символы или любые их комбинации. Решение о реализации варианта осуществления с использованием аппаратных элементов и/или программных элементов может меняться в соответствии с любым числом факторов, таких как желаемая скорость вычислений, уровни энергопотребления, теплоустойчивость, ресурсы цикла обработки, скорости шины данных и другие конструктивные ограничения или ограничения на характеристики.

Следующие пункты и/или примеры относятся к дополнительным вариантам осуществления.

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

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

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

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

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

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

1. Способ для фрагментированного/дефрагментированного доступа к памяти, содержащий следующее:

используют кэш для реализации фрагментированного/дефрагментированного доступа к памяти;

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

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

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

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

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

4. Способ по п. 3, включающий в себя генерацию активаций линий из блока генерации адресов.

5. Способ по п. 1, включающий в себя организацию кэша в виде нескольких блоков.

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

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

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

9. Один или несколько машинных носителей информации, на котором хранятся инструкции, выполняемые компьютером для осуществления последовательности действий, содержащей следующее:

используют кэш для реализации фрагментированного/дефрагментированного доступа к памяти;

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

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

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

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

11. Носитель по п. 9, при этом упомянутая последовательность действий включает в себя расположение упомянутого кэша между блоком генерации адресов и памятью.

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

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

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

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

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

17. Устройство для фрагментированного/дефрагментированного доступа к памяти, содержащее:

системную память;

кэш для реализации фрагментированного/дефрагментированного доступа к памяти резервированный в системной памяти; и

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

18. Устройство по п. 17, при этом упомянутый кэш использует теги.

19. Устройство по п. 17, при этом упомянутый кэш расположен между блоком генерации адресов и системной памятью.

20. Устройство по п. 19, включающее в себя блок генерации адресов для генерации активаций линий.

21. Устройство по п. 17, в котором кэш организован в виде нескольких блоков.

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

23. Устройство по п. 17, включающее в себя операционную систему.

24. Устройство по п. 17, включающее в себя батарею.

25. Устройство по п. 17, включающее в себя микропрограммное обеспечение и модуль для обновления упомянутого микропрограммного обеспечения.



 

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

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

Изобретение относится к системе контроля безопасности в зоне проверки багажа. Технический результат заключается в повышении безопасности.

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

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

Изобретение относится к средству подкачки страниц. Технический результат заключается в повышении скорости загрузки страниц.

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

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

Изобретение относится к технологиям пространственного расположения объектов с использованием гибкой иерархической структуры памяти. Техническим результатом является снижение вычислительных затрат на обработку данных за счет перераспределения объектов в элементах n-дерева.

Изобретение предназначено для выполнения запросов процессов к файловой системе. Технический результат – оптимизация работы файловой системы с запросами процессов.

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

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