ПОВЕРХНОСТИ УПРАВЛЕНИЯ СЖАТИЕМ, ПОДДЕРЖИВАЕМЫЕ ВИРТУАЛЬНОЙ ПАМЯТЬЮ
COMPRESSION CONTROL SURFACES SUPPORTED BY VIRTUAL MEMORY

Уровень техники
В современных компьютерных системах трафик данных внутри интегральной схемы и за ее пределами во внешнюю память представляет собой основной сдерживающий фактор для рабочих характеристик и потребляет существенную часть энергии, рассеиваемой системой. Таким образом, требования к полосе пропускания памяти могут ограничивать тепловую конструктивную точку (TDP) системы и повышение рабочих характеристик. Путем использования иерархий кэш большая часть этого трафика памяти исключается, и самые последние используемые данные могут быть найдены рядом с процессором (например, центральным процессорным устройством (CPU) или модулем обработки графики (GPU)). Однако, даже при использовании кэш бесконечного объема, у обязательного кэш не хватает вывода для трафика памяти.
Современные системы могут сжимать данные только из некоторых кэш, и сжатые данные не обрабатываются однородным CPU и GPU. Например, если GPU может сжимать части цели рендеринга, и если CPU позже потребуется считать эту цель рендеринга, тогда всю цель рендеринга необходимо распаковать и передать в кэш в CPU.
Предыдущие способы основаны на определенной обработке сжатия для конкретных типов данных. Это необходимо в связи со свойством сжатия - разные типы данных по-разному ведут себя при использовании разных способов сжатия. Однако предыдущие способы также обрабатывают управление сжатием специфично и по-отдельности, что затрудняет (с точки зрения конструкции и удостоверения) ввод сжатия в новых местах расположения системы.
Краткое описание чертежей
Некоторые варианты осуществления описаны со ссылкой на следующие чертежи:
на фиг. 1 представлено управление сжатием для одного варианта осуществления;
на фиг. 2 показана компоновка TLB для одного варианта осуществления;
на фиг. 3 схематично представлено описание одного варианта осуществления;
на фиг. 4 показана блок-схема последовательности операций для считывания памяти, в соответствии с одним вариантом осуществления;
на фиг. 5 показана блок-схема последовательности операций для записи в память, в соответствии с одним вариантом осуществления;
на фиг. 6 представлено описание системы одного варианта осуществления; и
на фиг. 7 показан вид спереди одного варианта осуществления.
Подробное описание изобретения
Данные, предназначенные для хранения в памяти, а именно, данные, которые были выведены на определенный уровень в иерархии кэш, перехватывают и подвергают сжатию перед подачей в память. Когда сжатие выполняется успешно, требование к полосе пропускания памяти уменьшается, что потенциально приводит к улучшению рабочих характеристик и/или эффективности потребления энергии в некоторых вариантах осуществления.
Существующие структуры данных и механизмы аппаратных средств, (то есть, буферы быстрого преобразования адреса (TLB)), которые представляют собой часть системы виртуальной памяти, увеличиваются в результате сжатия данных управления. Структуры данных могут быть увеличены в операционной системе, например, в страничных таблицах и в других местах. Данные управления сжатием в одной простой форме могут включать в себя следующий вход для каждой страничной таблицы и TLB: (i) битовый вектор с одним битом на сжимаемый модуль (описан ниже) для передачи сигнала, является ли соответствующий модуль сжатым или нет, и (ii) информацию маршрутизации кодека, то есть, идентификацию, в соответствии с которой компрессор использовался для сжатия данных. Если определенные данные используются таким образом, что они неявно идентифицирует кодек для использования, тогда информация маршрутизации кодека не требуется.
Общий единый механизм, называемый управлением сжатия, может использоваться для сжатия сигнала. При наличии такого механизма новые типы сжатия могут обрабатываться путем ввода новых кодеков в соответствующих местах расположения. Используя общее управление сжатием, также легко поддерживать сжатие в системе совместно используемой памяти, например, когда данные совместно используются между CPU и GPU. В этом случае управление сжатием сопровождает отображение адресов, и только данные, к которым осуществляется доступ, должны быть распакованы. При этом, в некоторых вариантах осуществления, нет необходимости распаковывать все данные перед их распределением с другим объектом, как в существующих архитектурах.
Размеры страницы памяти и размеры строки в памяти, описанные ниже, не являются ограничительным, и другие размеры также можно использовать. Кроме того, предполагается, что сжатие работает с целым числом транзакций памяти (строк памяти), например, сжатие 2:N, 4:N или 8:N (M:N в общем случае), что означает, что две, четыре или восемь строк памяти, соответственно, могут быть сжаты для получения меньшего количества строк в памяти. М строк памяти могут рассматриваться, как сжимаемый модуль.
2
Для простого случая, сжатие 2:N один бит для каждых двух строк памяти представляет собой сигнал о том, является ли данный сжимаемый модуль сжатым (вплоть до 50 %) или нет. Для сжатия 4:N, четыре строки памяти могут быть сжаты до 1, 2, 3 или 4 строк памяти, например, где 4 означает несжатый. Таким образом, для сжатия 4:N, 2 бита используются для каждых из четырех строк памяти для передачи сигнала о степени сжатия. Аналогично, для сжатия M:N, используются logM битов, для передачи сигнала о степени сжатия для каждых М строк памяти.
Общее количество строк памяти на странице составляет L (например, для страницы 1 Кбайт с 64B строками памяти, L=1,024/64 = 16). Теперь требуемое количество битов управления сжатия на вход страничной таблицы (PTE) или вход TLB составляет:
2
#bits = (L/M) x logM
Предположим страницу размером 1 килобайт со строками памяти 64 байта и степенью сжатия 8:N, количество битов составляет ((1 024 / 64) / 8) x 3 = 6. Для страницы размером 4 килобайта и строками памяти размером 64 байта, и степенью сжатия 4:N, количество битов = ((4 096 / 64) / 4) x 2 = 32, и так далее.
2
Помимо управления сжатием, для определения, являются ли данные на странице памяти сжатыми и в какой степени, также требуется обозначать определенный кодер/декодер (кодек) для сжатых данных. Здесь предполагается, что один и тот же кодек используется для всей отображаемой страницы. Одиночный малый идентификатор используется для каждого входа страничной таблицы и TLB. Если существуют четыре типа кодека (например, цвет, глубина, видео, отсутствует), необходимы log4 = 2 бита, для обозначения, какой кодек использовался.
В одном варианте осуществления информация маршрутизации устанавливается один раз, когда данные ассоциированы. Во время выделения известно, какой тип данных должен быть сохранен в буфере. Другой вариант выбора состоит в том, что пользователю предоставляется установить кодек, ассоциированный с определенным буфером или даже определенную страницу памяти. Если кодек для буфера изменяется в течение срока работы буфера, данные вначале распаковывают, используя старый кодек, и затем сжимают, используя новый кодек.
Информация маршрутизации требуется только в системе, где данные совместно используются между разными подсистемами таким образом, что контекст, в котором выполняется доступ к данным, не обозначает в явной форме определенный кодек. Пример ситуации, когда информация маршрутизации является ненужной, представляет собой статические текстуры, доступ к которым осуществляется, только используя сэмплер в GPU. Следовательно, нет необходимости обозначать кодек, поскольку доступ ко всем данным статической текстуры выполняется только с помощью сэмплера.
Эффективное расположение данных управления сжатием выполняется непосредственно в TLB. Другие варианты выбора включают в себя сохранение данных в другом аппаратном модуле на кристалле. То же относится к страничной таблице, которая содержит все отображение памяти, что делает ее наиболее соответствующим местоположением для управления сжатием. И снова, однако, другой вариант выбора состоит в сохранении управления сжатием в отдельных буферах.
3
На фиг. 1 показан пример поверхности управления сжатием для размера страницы памяти 4 килобайта и размера для строки памяти 64 байта. При сжатии 2:N, 16 битов необходимы для сигнализации о состоянии сжатия (то есть, были ли 128 байтов сжаты до 64 байтов или нет), и в этом примере 3 бита используются для маршрутизации кодека, что обеспечивает 2=8 разных кодеков.
На фиг. 2 показан пример компоновки TLB с 8 входами. TLB может быть расширен путем добавления самого правого столбца, используя озаглавленное сжатие и маршрутизацию. Как показано на фиг. 1, управление сжатием представляет собой вектор из битов, обозначающий, является ли сжимаемый модуль сжимаемым или нет, в то время, как информация маршрутизации обозначает, какой кодек должен использоваться, когда эти данные распаковывают.
На фиг. 3 показан пример системы с CPU и/или GPU 10, которое выполняет доступ к памяти 12, заданный виртуальным адресом 14. Виртуальный адрес разделяют на виртуальный номер 16 страницы и смещение 18, где номер страницы используется для поиска соответствующего номера физической страницы в TLB 20. После того, как он будет найден, физический номер 22 страницы, вместе со смещением 18, формирует физический адрес 24, который передают в систему 26 кэш.
Прежде, чем данные будет получены из памяти, эти данные распаковывают в кодеке 28, если поверхность управления сжатием обозначает, что соответствующие данные действительно были сжаты. Аналогично, перед записью данных, кодек 28 может попытаться сжать данные и записать данные в сжатой форме (если сжатие выполнено успешно, в противном случае, будет выполнен возврат до записи несжатых данных). Успешное выполнение алгоритма сжатия, с точки зрения полученного количества строк памяти, записывают в битах управления сжатием.
Последовательности фиг. 4 и 5 применимы для считывания памяти и записи в память, соответственно, используя поверхности управления сжатием. Они могут быть выполнены в аппаратных средствах, программных средствах и/или во встроенном программном обеспечении. В вариантах осуществления и программных средствах и во встроенном программном обеспечении могут использоваться инструкции, воплощенные к компьютере, сохраненные на одном или больше непереходных считываемых компьютером носителях информации. Например, последовательности могут представлять собой часть центрального процессорного устройства или модуля обработки графики или их обоих.
Последовательность 30, показанная на фиг. 4, может использоваться для считывания памяти. Виртуальный адрес получают, как обозначено в блоке 32. Затем виртуальный адрес разделяют на виртуальный номер страницы и смещение, как обозначено в блоке 34. Эта информация используется для поиска физического адреса и передачи его в кэш, как обозначено блоком 36.
Затем выполняют доступ к поверхности управления доступом, как обозначено в блоке 38. Если поверхность управления доступом обозначает, что данные были сжаты, как определено в ромбе 40, тогда данные могут быть распакованы, используя кодек, обозначенный поверхностью управления, как обозначено в блоке 42.
Последовательность 50 записи, показанная на фиг. 5, начинается путем приема виртуальных адресов, как обозначено в блоке 52, разделения виртуальных адресов, как обозначено в блоке 54, и поиска физических адресов, как обозначено в блоке 56. Затем предпринимают попытку сжатия, как обозначено в блоке 58. В случае успешного сжатия, успешный результат сжатия записывают на поверхности управления, вместе с кодеком, который использовали для сжатия, и затем данные записывают, как обозначено в блоке 60.
Технологии обработки графики, представленные здесь, могут быть воплощены в различных аппаратных архитектурах. Например, графическая функция может быть интегрирована с набором микросхем. В качестве альтернативы, может использоваться дискретный графический процессор. В еще одном, другом варианте осуществления, функции графики могут быть воплощены в процессоре общего назначения, включая в себя многоядерный процессор.
На фиг. 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), процессоры, совместимые с набором инструкций x86, многоядерный, или любой другой микропроцессор или центральное процессорное устройство (CPU). В вариантах осуществления процессор 710 может содержать двухъядерный процессор (процессоры), двухъядерный мобильный процессор (процессоры) и т.д. Процессор может воплощать последовательности фиг. 4 и 5 вместе с запоминающим устройством 712.
Запоминающее устройство 712 может быть воплощено, как энергозависимого запоминающее устройство, такое как, но без ограничений, оперативное запоминающее устройство (RAM), динамическое оперативное запоминающее устройство (DRAM) или статическое RAM (SRAM).
Накопитель 714 может быть воплощен, как энергонезависимое устройство накопитель, такое как, но без ограничений, привод магнитного диска, привод оптического диска, ленточный привод, внутреннее устройство накопитель, присоединяемое устройство накопитель, запоминающее устройство типа флэш, SDRAM (синхронное DRAM) с аварийным питанием от аккумулятора и/или устройство накопитель с сетевым доступом. В вариантах осуществления накопитель 714 может содержать технологию для повышения улучшенной защиты характеристик, например, для сохранения данных для ценных цифровых мультимедийных данных, когда включено множество приводов жестких дисков.
Графическая подсистема 715 может выполнять обработку изображений, таких как неподвижные или видеоизображения для отображения. Графическая подсистема 715 может представлять собой, например, модуль обработки графики (GPU) или модуль визуальной обработки (VPU). Аналоговый или цифровой интерфейс может использоваться для соединения с возможностью обмена данными графической подсистемы 715 и дисплея 720. Например, интерфейс может представлять собой любую из технологии, в соответствии с мультимедийным интерфейсом высокой четкости, DisplayPort, беспроводным HDMI и/или беспроводным HD. Графическая подсистема 715 может быть интегрирована в процессор 710 или в набор микросхем 705. Графическая подсистема 715 может представлять собой отдельную карту, соединенную с возможностью обмена данными с набором 705 микросхем.
Технологии обработки графики и/или видеоданных, описанные здесь, могут быть воплощены в различных аппаратных архитектурах. Например, графическая функция и/или видеофункция могут быть интегрированы в набор микросхем. В качестве альтернативы, может использоваться дискретный процессор графики и/или видеоизображения. В качестве еще одного, другого варианта осуществления, функции графики и/или видеоизображения могут быть воплощены на основе процессора общего назначения, включая в себя многоядерный процессор. В дополнительном варианте осуществления функции могут быть воплощены в бытовом электронном устройстве.
Радиоустройство 718 может включать в себя одно или больше радиоустройств, выполненных с возможностью передачи и приема сигналов, используя различные соответствующие технологии беспроводной передачи данных. В таких технологиях может использоваться передача данных через одну или больше беспроводных сетей. Примеры беспроводных сетей включают в себя (но без ограничений), беспроводные локальные вычислительные сети (WLAN), беспроводные персональные вычислительные сети (WPAN), беспроводные городские вычислительные сети (WMAN), сотовые сети и спутниковые сети. При передаче данных через такие сети радиоустройство 718 может работать в соответствии с одним или больше применимыми стандартами в любой версии.
В вариантах осуществления, дисплей 720 может содержать любой монитор телевизионного типа или дисплей. Дисплей 720 может содержать, например, дисплей компьютерного экрана, дисплей сенсорного экрана, видеомонитор, устройство типа телевизора и/или телевизионное устройство. Дисплей 720 может быть цифровым и/или аналоговым. В вариантах осуществления дисплей 720 может представлять собой голографический дисплей. Кроме того, дисплей 720 может представлять собой прозрачную поверхность, которая может принимать визуальную проекцию. Такие проекции могут передавать различные формы информации, изображений и/или объектов. Например, такие проекции могут представлять собой визуальное наложение для приложения мобильной добавленной реальности (MAR). Под управлением одного или больше программных приложений 716 платформа 702 может отображать интерфейс 722 пользователя на дисплее 720.
В вариантах осуществления устройство (устройства) 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 surround sound audio (аудиоданные окружающего звука) и/или high definition 7.1 surround sound audio (аудиоданные окружающего звука высокой четкости). Драйверы могут включать в себя графический драйвер для интегрированных графических платформ. В вариантах осуществления графический драйвер может содержать графический адаптер в соответствии со стандартом взаимодействия периферийных компонентов (PCI) экспресс.
В различных вариантах осуществления любой один или больше из компонентов, показанных в системе 700, могут быть интегрированы. Например, платформа 702 и устройство 730 (устройства) услуг содержания могут быть интегрированы, или платформа 702 и устройство (устройства) 740 предоставления содержания могут быть интегрированы, или платформа 702 устройство (устройств) 730 услуги содержания, и, например, устройство (устройства) 740 предоставления содержания могут быть интегрированы. В различных вариантах осуществления платформа 702 и дисплей 720 могут представлять собой интегрированный модуль. Например, дисплей 720 и устройство (устройства) 730 услуги содержания могут быть интегрированы, или дисплей 720 и устройство (устройства) 740 предоставления содержания могут быть интегрированы. Эти примеры не предназначены для ограничения объема.
В различных вариантах осуществления система 700 может быть воплощена в беспроводной системе, проводной системе или используя комбинацию этих подходов. Будучи воплощенной, как беспроводная система, система 700 может включать в себя компоненты и интерфейсы, пригодные для обмена данными через беспроводную совместно используемую среду, такую как одна или больше антенн, передатчиков, приемников, приемопередатчиков, усилителей, фильтров, логики управления и т.д.
Пример беспроводной, совместно используемой среды может включать в себя части беспроводного спектра, такого, как RF спектр и т.д. Будучи воплощенной, как проводная система, система 700 может включать в себя компоненты и интерфейсы, выполненные с возможностью передачи данных через проводные среды передачи данных, такие как адаптеры ввода/вывода (I/O), физические соединители для соединения адаптеров I/O с соответствующими проводными средами передачи данных, карту сетевого интерфейса (NIC), контроллер диска, видеоконтроллер, аудиоконтроллер и т.д. Примеры проводных сред передачи данных могут включать в себя проводной кабель, металлические выводы, печатные платы (PCB), объединительную плату, многоходовую структуру коммутации, полупроводниковый материал, провод в виде витой пары, коаксиальный кабель, оптоволокно и т.д.
Платформа 702 может устанавливать один или больше логических или физических каналов для передачи информации. Информация может включать в себя мультимедийную информацию и информацию управления. Мультимедийная информация может относиться к любым данным, представляющим содержание, имеющее значение для пользователя. Примеры содержания могут включать в себя, например, данные голосовых разговоров, видеоконференции, потоковые передачи видеоданных, сообщения электронной почты ("e-mail"), сообщение голосовой почты, цифро-буквенные символы, графические данные, изображение, видеоизображение, текст и т.д. Данные голосовых разговоров могут, например, представлять собой речевую информацию, периоды молчания, фоновый шум, успокаивающий шум, тоны и т.д. Информация управления может относиться к любым данным, представляющим команды, инструкции или слова управления, предназначенные для автоматизированной системы. Например, информация управления может использоваться для направления мультимедийной информации через систему, или инструктирования узла для обработки мультимедийной информации заданным образом. Варианты осуществления, однако, не ограничены элементами или контекстом, представленным или описанным на фиг. 6.
Как описано выше, система 700 может быть воплощена в различных физических стилях или форм-факторах. На фиг. 7 иллюстрируются варианты осуществления устройства 800 с малым форм-фактором, в котором может быть воплощена система 700. В вариантах осуществления, например, устройство 800 может быть воплощено, как мобильное вычислительное устройство, имеющее возможности беспроводной передачи данных. Мобильное вычислительное устройство может относиться к любому устройству, имеющему систему обработки и мобильный источник питания или подвод питания, такую как, например, одна или больше аккумуляторных батарей.
Как описано выше, примеры мобильного вычислительного устройства могут включать в себя персональный компьютер (ПК), переносной компьютер, сверхлегкий переносной компьютер, планшетный компьютер, сенсорную панель, портативный компьютер, карманный компьютер, портативный карманный компьютер, карманный персональный компьютер (PDA), сотовый телефон, комбинацию сотового телефона/PDA, телевизор, интеллектуальное устройство (например, смартфон, интеллектуальный планшет или интеллектуальный телевизор), мобильное интернет-устройство (MID), устройство для передачи сообщений, устройство передачи данных и т.д.
Примеры мобильного вычислительного устройства также могут включать в себя компьютеры, которые выполнены с возможностью их ношения человеком, такие как компьютер на запястье, компьютер на пальце, компьютер в виде кольца, компьютер в стекле очков, компьютер в застежке ремня, компьютер в наручном ремешке, компьютеры в ботинках, компьютеры в одежде и другие переносные компьютеры. В вариантах осуществления, например, вычислительное мобильное устройство может быть воплощено, как смартфон, выполненный с возможностью выполнения компьютерных приложений, а также голосовой передачи данных и/или передачи данных. Хотя некоторые варианты осуществления могут быть описаны с мобильным вычислительным устройством, воплощенным, в качестве примера, как смартфон, следует понимать, что другие варианты осуществления могут быть воплощены, используя также другие беспроводные мобильные вычислительные устройства. Варианты осуществления не ограничены в данном контексте.
Ниже представлены приложения и/или примеры, относящиеся к дополнительным вариантам осуществления:
2
Один пример варианта осуществления может представлять собой способ, содержащий запись, было ли сжатие выполнено успешно, и если это так, запись кодека, используемого для сжатия данных на поверхности управления, и запись данных в память. Способ также может включать в себя считывание данных путем доступа к поверхности управления. Способ может также включать в себя использование побитно сжимаемого модуля для обозначения, является ли модуль сжатым. Способ может также включать в себя использование определенного кодирования поверхности управления, как для модулей центральной обработки, так и для модулей обработки графики. Способ может также включать в себя предоставление битов управления сжатием (L/M) x logM для каждого входа, где L представляет собой общее количество строк в памяти на странице, и М представляет собой количество строк в памяти в сжимаемом модуле. Способ может также включать в себя кодирование кодека на упомянутой поверхности по типу, включающему в себя один или больше из кодеков цвета, глубины или видеокодека. Способ может также включать в себя: сохраняют поверхность в буфере быстрого преобразования адреса.
2
Другой примерный вариант осуществления может представлять собой один или больше непереходных, считываемых компьютером носителей информации, на которых содержатся инструкции, выполняемые процессором для выполнения последовательности, содержащей записи, было ли сжатие выполнено успешным и, если так, записи кодека, используемого для сжатия данных на поверхности управления и записи данных в память. Носитель информации может дополнительно содержать последовательность, включающую в себя данные, считываемые путем доступа к поверхности управления. Носитель информации может дополнительно содержать последовательность, включающую в себя использование одного бита на каждый сжимаемый модуль для обозначения, был ли модуль сжат. На носителях информации может дополнительно содержаться последовательность, включающая в себя использование того же кодирования поверхности управления, как для модулей центральных обработки, так и для модулей обработки графики. На носителях информации может дополнительно содержаться последовательность, включающая в себя предоставление битов управления сжатием (L/M) x logM на каждый вход, где L представляет собой общее количество строк памяти на странице, и М представляет собой количество строк памяти в сжимаемом модуле. Носители информации могут дополнительно содержать последовательность, включающую в себя кодирование кодека на упомянутой поверхности по типу, включающему в себя один или больше из кодеков цвета, глубины или видеокодеков. Носители информации могут дополнительно содержать последовательность, включающую в себя сохранение поверхности в буфере быстрого преобразования адреса.
2
В другом примерном варианте осуществления устройство может содержать процессор для записи, было ли сжатие выполнено успешно, и если так, записи кодека, используемого для сжатия данных, на поверхности управления, и записи данных в память, и память, соединенную с упомянутым процессором. Устройство может включать в себя упомянутый процессор для считывания данных путем доступа к поверхности управления. Устройство может включать в себя упомянутый процессор для использования одного бита на каждый сжимаемый модуль, для обозначения, был ли модуль сжат. Устройство может включать в себя упомянутый процессор для использования того же кодирования поверхности управления, как для центральных модулей обработки, так и для модулей обработки графики. Устройство может включать в себя упомянутый процессор для обеспечения сжатия битов управления (L/M) x logM на каждый вход, где L представляет собой общее количество строк памяти на странице, и М представляет собой количество строк памяти в сжимаемом модуле. Устройство может включать в себя упомянутый процессор для кодирования кодека на упомянутой поверхности по типу, включающему в себя один или больше из кодеков цвета, глубины или видеокодеков. Устройство может включать в себя упомянутый процессор для сохранения поверхности в буфере быстрого преобразования адреса. Устройство может включать в себя дисплей, соединенный с возможностью обмена данными с процессором. Устройство может включать в себя аккумуляторную батарею, соединенную с процессором.
Ссылки в данном описании на “один вариант осуществления” или “вариант осуществления” означают, что конкретное свойство, структура или характеристика, описанная в связи с вариантом осуществления, включена, по меньшей мере, в один вариант осуществления, охватываемый настоящим раскрытием. Таким образом, появление фразы “один вариант осуществления” или “в одном варианте осуществления” не обязательно относится к одному и тому же варианту осуществления. Кроме того, конкретные свойства, структуры или характеристики могут быть введены в других соответствующих формах, чем определенный представленный вариант осуществления, и все такие формы могут быть охвачены в формуле изобретения настоящей заявки.
В то время, как было описано ограниченное количество вариантов осуществления, для специалиста в данной области техники будет понятно, как выполнить множество его модификаций и вариантов. Предполагается, что приложенная формула изобретения охватывает все такие модификации и варианты, как попадающие в пределы истинной сущности и объема данного раскрытия.