RU2656727C1 - Поверхности управления сжатием, поддерживаемые виртуальной памятью - Google Patents

Поверхности управления сжатием, поддерживаемые виртуальной памятью Download PDF

Info

Publication number
RU2656727C1
RU2656727C1 RU2016146352A RU2016146352A RU2656727C1 RU 2656727 C1 RU2656727 C1 RU 2656727C1 RU 2016146352 A RU2016146352 A RU 2016146352A RU 2016146352 A RU2016146352 A RU 2016146352A RU 2656727 C1 RU2656727 C1 RU 2656727C1
Authority
RU
Russia
Prior art keywords
compression
memory
processor
module
data
Prior art date
Application number
RU2016146352A
Other languages
English (en)
Inventor
Йим К. НИЛЬССОН
Томас Г. АКЕНИНЕ-МОЛЛЕР
Original Assignee
Интел Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Интел Корпорейшн filed Critical Интел Корпорейшн
Application granted granted Critical
Publication of RU2656727C1 publication Critical patent/RU2656727C1/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0061Embedding of the watermark in each block of the image, e.g. segmented watermarking

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Between Computers (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

Группа изобретений относится к области вычислительной техники и может быть использована для управления сжатием данных. Техническим результатом является улучшение рабочих характеристик и эффективности потребления энергии. Способ содержит этапы, на которых определяют, было ли сжатие успешным; и записывают, было ли сжатие успешным, на поверхности управления в памяти, доступ к которой может осуществляться модулем обработки графики и модулем центральной обработки посредством предоставления битов управления сжатием (L/M) x log2M для каждого входа, где L представляет собой общее количество строк памяти на странице и М представляет собой количество строк памяти в сжимаемом модуле. 3 н. и 19 з.п. ф-лы, 7 ил.

Description

Уровень техники
В современных компьютерных системах трафик данных внутри интегральной схемы и за ее пределами во внешнюю память представляет собой основной сдерживающий фактор для рабочих характеристик и потребляет существенную часть энергии, рассеиваемой системой. Таким образом, требования к полосе пропускания памяти могут ограничивать тепловую конструктивную точку (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:N один бит для каждых двух строк памяти представляет собой сигнал о том, является ли данный сжимаемый модуль сжатым (вплоть до 50 %) или нет. Для сжатия 4:N, четыре строки памяти могут быть сжаты до 1, 2, 3 или 4 строк памяти, например, где 4 означает несжатый. Таким образом, для сжатия 4:N, 2 бита используются для каждых из четырех строк памяти для передачи сигнала о степени сжатия. Аналогично, для сжатия M:N, используются log2M битов, для передачи сигнала о степени сжатия для каждых М строк памяти.
Общее количество строк памяти на странице составляет L (например, для страницы 1 Кбайт с 64B строками памяти, L=1,024/64 = 16). Теперь требуемое количество битов управления сжатия на вход страничной таблицы (PTE) или вход TLB составляет:
#bits = (L/M) x log2M
Предположим страницу размером 1 килобайт со строками памяти 64 байта и степенью сжатия 8:N, количество битов составляет ((1 024 / 64) / 8) x 3 = 6. Для страницы размером 4 килобайта и строками памяти размером 64 байта, и степенью сжатия 4:N, количество битов = ((4 096 / 64) / 4) x 2 = 32, и так далее.
Помимо управления сжатием, для определения, являются ли данные на странице памяти сжатыми и в какой степени, также требуется обозначать определенный кодер/декодер (кодек) для сжатых данных. Здесь предполагается, что один и тот же кодек используется для всей отображаемой страницы. Одиночный малый идентификатор используется для каждого входа страничной таблицы и TLB. Если существуют четыре типа кодека (например, цвет, глубина, видео, отсутствует), необходимы log24 = 2 бита, для обозначения, какой кодек использовался.
В одном варианте осуществления информация маршрутизации устанавливается один раз, когда данные ассоциированы. Во время выделения известно, какой тип данных должен быть сохранен в буфере. Другой вариант выбора состоит в том, что пользователю предоставляется установить кодек, ассоциированный с определенным буфером или даже определенную страницу памяти. Если кодек для буфера изменяется в течение срока работы буфера, данные вначале распаковывают, используя старый кодек, и затем сжимают, используя новый кодек.
Информация маршрутизации требуется только в системе, где данные совместно используются между разными подсистемами таким образом, что контекст, в котором выполняется доступ к данным, не обозначает в явной форме определенный кодек. Пример ситуации, когда информация маршрутизации является ненужной, представляет собой статические текстуры, доступ к которым осуществляется, только используя сэмплер в GPU. Следовательно, нет необходимости обозначать кодек, поскольку доступ ко всем данным статической текстуры выполняется только с помощью сэмплера.
Эффективное расположение данных управления сжатием выполняется непосредственно в TLB. Другие варианты выбора включают в себя сохранение данных в другом аппаратном модуле на кристалле. То же относится к страничной таблице, которая содержит все отображение памяти, что делает ее наиболее соответствующим местоположением для управления сжатием. И снова, однако, другой вариант выбора состоит в сохранении управления сжатием в отдельных буферах.
На фиг. 1 показан пример поверхности управления сжатием для размера страницы памяти 4 килобайта и размера для строки памяти 64 байта. При сжатии 2:N, 16 битов необходимы для сигнализации о состоянии сжатия (то есть, были ли 128 байтов сжаты до 64 байтов или нет), и в этом примере 3 бита используются для маршрутизации кодека, что обеспечивает 23=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), устройство для передачи сообщений, устройство передачи данных и т.д.
Примеры мобильного вычислительного устройства также могут включать в себя компьютеры, которые выполнены с возможностью их ношения человеком, такие как компьютер на запястье, компьютер на пальце, компьютер в виде кольца, компьютер в стекле очков, компьютер в застежке ремня, компьютер в наручном ремешке, компьютеры в ботинках, компьютеры в одежде и другие переносные компьютеры. В вариантах осуществления, например, вычислительное мобильное устройство может быть воплощено, как смартфон, выполненный с возможностью выполнения компьютерных приложений, а также голосовой передачи данных и/или передачи данных. Хотя некоторые варианты осуществления могут быть описаны с мобильным вычислительным устройством, воплощенным, в качестве примера, как смартфон, следует понимать, что другие варианты осуществления могут быть воплощены, используя также другие беспроводные мобильные вычислительные устройства. Варианты осуществления не ограничены в данном контексте.
Ниже представлены приложения и/или примеры, относящиеся к дополнительным вариантам осуществления:
Один пример варианта осуществления может представлять собой способ, содержащий запись, было ли сжатие выполнено успешно, и если это так, запись кодека, используемого для сжатия данных на поверхности управления, и запись данных в память. Способ также может включать в себя считывание данных путем доступа к поверхности управления. Способ может также включать в себя использование побитно сжимаемого модуля для обозначения, является ли модуль сжатым. Способ может также включать в себя использование определенного кодирования поверхности управления, как для модулей центральной обработки, так и для модулей обработки графики. Способ может также включать в себя предоставление битов управления сжатием (L/M) x log2M для каждого входа, где L представляет собой общее количество строк в памяти на странице, и М представляет собой количество строк в памяти в сжимаемом модуле. Способ может также включать в себя кодирование кодека на упомянутой поверхности по типу, включающему в себя один или больше из кодеков цвета, глубины или видеокодека. Способ может также включать в себя: сохраняют поверхность в буфере быстрого преобразования адреса.
Другой примерный вариант осуществления может представлять собой один или больше непереходных, считываемых компьютером носителей информации, на которых содержатся инструкции, выполняемые процессором для выполнения последовательности, содержащей записи, было ли сжатие выполнено успешным и, если так, записи кодека, используемого для сжатия данных на поверхности управления и записи данных в память. Носитель информации может дополнительно содержать последовательность, включающую в себя данные, считываемые путем доступа к поверхности управления. Носитель информации может дополнительно содержать последовательность, включающую в себя использование одного бита на каждый сжимаемый модуль для обозначения, был ли модуль сжат. На носителях информации может дополнительно содержаться последовательность, включающая в себя использование того же кодирования поверхности управления, как для модулей центральных обработки, так и для модулей обработки графики. На носителях информации может дополнительно содержаться последовательность, включающая в себя предоставление битов управления сжатием (L/M) x log2M на каждый вход, где L представляет собой общее количество строк памяти на странице, и М представляет собой количество строк памяти в сжимаемом модуле. Носители информации могут дополнительно содержать последовательность, включающую в себя кодирование кодека на упомянутой поверхности по типу, включающему в себя один или больше из кодеков цвета, глубины или видеокодеков. Носители информации могут дополнительно содержать последовательность, включающую в себя сохранение поверхности в буфере быстрого преобразования адреса.
В другом примерном варианте осуществления устройство может содержать процессор для записи, было ли сжатие выполнено успешно, и если так, записи кодека, используемого для сжатия данных, на поверхности управления, и записи данных в память, и память, соединенную с упомянутым процессором. Устройство может включать в себя упомянутый процессор для считывания данных путем доступа к поверхности управления. Устройство может включать в себя упомянутый процессор для использования одного бита на каждый сжимаемый модуль, для обозначения, был ли модуль сжат. Устройство может включать в себя упомянутый процессор для использования того же кодирования поверхности управления, как для центральных модулей обработки, так и для модулей обработки графики. Устройство может включать в себя упомянутый процессор для обеспечения сжатия битов управления (L/M) x log2M на каждый вход, где L представляет собой общее количество строк памяти на странице, и М представляет собой количество строк памяти в сжимаемом модуле. Устройство может включать в себя упомянутый процессор для кодирования кодека на упомянутой поверхности по типу, включающему в себя один или больше из кодеков цвета, глубины или видеокодеков. Устройство может включать в себя упомянутый процессор для сохранения поверхности в буфере быстрого преобразования адреса. Устройство может включать в себя дисплей, соединенный с возможностью обмена данными с процессором. Устройство может включать в себя аккумуляторную батарею, соединенную с процессором.
Ссылки в данном описании на “один вариант осуществления” или “вариант осуществления” означают, что конкретное свойство, структура или характеристика, описанная в связи с вариантом осуществления, включена, по меньшей мере, в один вариант осуществления, охватываемый настоящим раскрытием. Таким образом, появление фразы “один вариант осуществления” или “в одном варианте осуществления” не обязательно относится к одному и тому же варианту осуществления. Кроме того, конкретные свойства, структуры или характеристики могут быть введены в других соответствующих формах, чем определенный представленный вариант осуществления, и все такие формы могут быть охвачены в формуле изобретения настоящей заявки.
В то время, как было описано ограниченное количество вариантов осуществления, для специалиста в данной области техники будет понятно, как выполнить множество его модификаций и вариантов. Предполагается, что приложенная формула изобретения охватывает все такие модификации и варианты, как попадающие в пределы истинной сущности и объема данного раскрытия.

Claims (29)

1. Способ управления сжатием, содержащий:
определяют, было ли сжатие успешным; и
записывают, было ли сжатие успешным, на поверхности управления в памяти, доступ к которой может осуществляться модулем обработки графики и модулем центральной обработки посредством предоставления битов управления сжатием (L/M) x log2M для каждого входа, где L представляет собой общее количество строк памяти на странице и М представляет собой количество строк памяти в сжимаемом модуле.
2. Способ по п. 1, включающий в себя, если сжатие было успешным, записывают кодек, используемый для сжатия на поверхности управления.
3. Способ по п. 1, включающий в себя: считывают данные путем получения доступа к поверхности управления.
4. Способ по п. 1, включающий в себя: используют один бит на каждый сжимаемый модуль для обозначения, был ли модуль сжат.
5. Способ по п. 1, включающий в себя: используют то же кодирование поверхности управления как для модулей центральной обработки, так и для модулей обработки графики.
6. Способ по п. 1, включающий в себя: кодеки кодирования на упомянутой поверхности по типу, включающему в себя один или больше из кодеков цвета, глубины или видеокодеков.
7. Способ по п. 1, включающий в себя: сохраняют поверхность в буфере быстрого преобразования адреса.
8. Способ по п. 1, включающий в себя: сохраняют поверхность для управления страничной таблицей.
9. Способ по п. 8, включающий в себя: сохраняют поверхность в страничной таблице.
10. Один или больше постоянных, считываемых компьютером носителей информации, содержащих инструкции, выполняемые процессором, для выполнения последовательности, содержащей:
записывают, было ли сжатие успешным, и
записывают, было ли сжатие успешным, на поверхности управления в памяти, доступ к которой может осуществляться модулем обработки графики и модулем центральной обработки посредством предоставления битов управления сжатием (L/M) x log2M для каждого входа, где L представляет собой общее количество строк памяти на странице и М представляет собой количество строк памяти в сжимаемом модуле.
11. Носитель информации по п. 10, упомянутая последовательность, включающая в себя: считывают данные путем доступа к поверхности управления.
12. Носитель информации по п. 10, упомянутая последовательность, включающая в себя: используют один бит на сжимаемый модуль, для обозначения, был ли этот модуль сжат.
13. Носитель информации по п. 10, упомянутая последовательность, включающая в себя: используют то же кодирование поверхности управления как для модулей центральной обработки, так и для модулей обработки графики.
14. Носитель информации по п. 10, упомянутая последовательность, включающая в себя кодирование кодека на упомянутой поверхности по типу, включающему в себя один или больше кодеков цвета, глубины или видеокодеков.
15. Носитель информации по п. 10, упомянутая последовательность, включающая в себя: сохраняют поверхность в буфере быстрого преобразования адреса.
16. Устройство управления сжатием, содержащее:
процессор для записи, было ли сжатие успешным, и
записи, было ли сжатие успешным, на поверхности управления в памяти, доступ к которой может осуществляться модулем обработки графики и модулем центральной обработки посредством предоставления некоторого количества битов управления сжатием для каждого входа страничной таблицы, при этом количество определяется на основании четного количества строк памяти на странице и количества строк памяти в сжимаемом модуле для предоставления битов управления сжатием (L/M) x log2M для каждого входа, где L представляет собой общее количество строк памяти на странице и М представляет собой количество строк памяти в сжимаемом модуле; и
память, соединенную с упомянутым процессором.
17. Устройство по п. 16, в котором упомянутый процессор предназначен для считывания данных путем доступа к поверхности управления.
18. Устройство по п. 16, в котором упомянутый процессор предназначен для использования одного бита на сжимаемый модуль для обозначения, является ли модуль сжатым.
19. Устройство по п. 16, в котором упомянутый процессор предназначен для использования той же поверхности управления кодированием как для модулей центральной обработки, так и для модулей обработки графики.
20. Устройство по п. 16, в котором упомянутый процессор предназначен для кодирования кодека на упомянутой поверхности по типу, включающему в себя один или больше из кодеков цвета, глубины или видеокодеков.
21. Устройство по п. 16, в котором упомянутый процессор предназначен для сохранения поверхности в буфере быстрого преобразования адреса.
22. Устройство по п. 16, включающее в себя дисплей, соединенный с возможностью обмена данными с процессором.
RU2016146352A 2014-06-26 2015-06-18 Поверхности управления сжатием, поддерживаемые виртуальной памятью RU2656727C1 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/315,435 US9940733B2 (en) 2014-06-26 2014-06-26 Virtual memory supported compression control surfaces
US14/315,435 2014-06-26
PCT/US2015/036343 WO2015200083A1 (en) 2014-06-26 2015-06-18 Virtual memory supported compression control surfaces

Publications (1)

Publication Number Publication Date
RU2656727C1 true RU2656727C1 (ru) 2018-06-06

Family

ID=54931109

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016146352A RU2656727C1 (ru) 2014-06-26 2015-06-18 Поверхности управления сжатием, поддерживаемые виртуальной памятью

Country Status (9)

Country Link
US (1) US9940733B2 (ru)
EP (1) EP3161644A4 (ru)
JP (1) JP6386099B2 (ru)
KR (1) KR102192812B1 (ru)
CN (1) CN106415655B (ru)
RU (1) RU2656727C1 (ru)
SG (1) SG11201608976YA (ru)
TW (1) TWI569141B (ru)
WO (1) WO2015200083A1 (ru)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996461B1 (en) * 2014-09-24 2018-06-12 Marvell International Ltd. Dynamic differential compression for storage device look-up table
KR102535825B1 (ko) * 2015-06-03 2023-05-23 삼성전자주식회사 시스템 온 칩 및 시스템 온 칩의 동작 방법
US10453169B2 (en) 2016-03-28 2019-10-22 Intel Corporation Method and apparatus for multi format lossless compression
US10262388B2 (en) * 2017-04-10 2019-04-16 Intel Corporation Frequent data value compression for graphics processing units
US11200112B1 (en) 2020-08-24 2021-12-14 International Business Machines Corporation Method and apparatus to reduce bandwidth overhead of CRC protection on a memory channel

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020101367A1 (en) * 1999-01-29 2002-08-01 Interactive Silicon, Inc. System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
RU2341036C2 (ru) * 2004-06-22 2008-12-10 Сони Корпорейшн Устройство обработки сжатия изображения, способ обработки сжатия изображения и программа обработки сжатия изображения
US20100077133A1 (en) * 2008-09-11 2010-03-25 Samsung Electronics Co., Ltd Flash Memory Integrated Circuit with Compression/Decompression CODEC
US20110243469A1 (en) * 2009-10-07 2011-10-06 Mcallister David Kirk Selecting and representing multiple compression methods

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748342A (en) * 1994-04-18 1998-05-05 Canon Kabushiki Kaisha Image processing apparatus and method
AU5924796A (en) * 1995-05-22 1996-12-11 Syncronys Softcorp Virtual memory management system with adaptive knowledge bas e
US6266753B1 (en) * 1997-07-10 2001-07-24 Cirrus Logic, Inc. Memory manager for multi-media apparatus and method therefor
US6879266B1 (en) * 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
US6557083B1 (en) * 2000-06-30 2003-04-29 Intel Corporation Memory system for multiple data types
EP1225704A1 (en) * 2001-01-12 2002-07-24 STMicroelectronics S.r.l. "A process and system for compressing and decompressing digital information and computer program product therefor
US7212974B2 (en) 2001-07-11 2007-05-01 Daniel Kilbank System and method for compressing and encoding data
US6985853B2 (en) 2002-02-28 2006-01-10 Broadcom Corporation Compressed audio stream data decoder memory sharing techniques
US8001294B2 (en) * 2004-09-28 2011-08-16 Sony Computer Entertainment Inc. Methods and apparatus for providing a compressed network in a multi-processing system
US7616218B1 (en) * 2005-12-05 2009-11-10 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives
US7545382B1 (en) * 2006-03-29 2009-06-09 Nvidia Corporation Apparatus, system, and method for using page table entries in a graphics system to provide storage format information for address translation
US20080212130A1 (en) 2007-02-21 2008-09-04 Samsung Electronics Co., Ltd. Data file compression apparatus and method thereof
US9665951B2 (en) 2007-12-20 2017-05-30 Telefonaktiebolaget Lm Ericsson (Publ) Unified compression/decompression graphics architecture
EP2128822B1 (en) * 2008-05-27 2012-01-04 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Index-based pixel block processing
US8862823B1 (en) * 2008-12-19 2014-10-14 Nvidia Corporation Compression status caching
US8341380B2 (en) * 2009-09-22 2012-12-25 Nvidia Corporation Efficient memory translator with variable size cache line coverage
US8627041B2 (en) * 2009-10-09 2014-01-07 Nvidia Corporation Efficient line and page organization for compression status bit caching
KR20110093258A (ko) * 2010-02-12 2011-08-18 삼성전자주식회사 맵 데이터 송수신 장치 및 방법
US8880851B2 (en) * 2011-04-07 2014-11-04 Via Technologies, Inc. Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9208082B1 (en) * 2012-03-23 2015-12-08 David R. Cheriton Hardware-supported per-process metadata tags
US20150242432A1 (en) * 2014-02-21 2015-08-27 Microsoft Corporation Modified Memory Compression

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020101367A1 (en) * 1999-01-29 2002-08-01 Interactive Silicon, Inc. System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
RU2341036C2 (ru) * 2004-06-22 2008-12-10 Сони Корпорейшн Устройство обработки сжатия изображения, способ обработки сжатия изображения и программа обработки сжатия изображения
US20100077133A1 (en) * 2008-09-11 2010-03-25 Samsung Electronics Co., Ltd Flash Memory Integrated Circuit with Compression/Decompression CODEC
US20110243469A1 (en) * 2009-10-07 2011-10-06 Mcallister David Kirk Selecting and representing multiple compression methods

Also Published As

Publication number Publication date
JP6386099B2 (ja) 2018-09-05
CN106415655B (zh) 2020-11-27
US9940733B2 (en) 2018-04-10
CN106415655A (zh) 2017-02-15
TWI569141B (zh) 2017-02-01
KR102192812B1 (ko) 2020-12-18
JP2017525020A (ja) 2017-08-31
EP3161644A4 (en) 2018-03-07
US20150379737A1 (en) 2015-12-31
KR20160148631A (ko) 2016-12-26
SG11201608976YA (en) 2016-11-29
TW201610678A (zh) 2016-03-16
EP3161644A1 (en) 2017-05-03
WO2015200083A1 (en) 2015-12-30

Similar Documents

Publication Publication Date Title
US11531623B2 (en) Memory sharing via a unified memory architecture
US9779472B2 (en) Shared virtual memory
RU2656727C1 (ru) Поверхности управления сжатием, поддерживаемые виртуальной памятью
US9323684B2 (en) Dynamic cache and memory allocation for memory subsystems
US9478000B2 (en) Sharing non-page aligned memory
JP6182225B2 (ja) カラーバッファ圧縮
US9336561B2 (en) Color buffer caching
EP3014456A1 (en) Page management approach to fully utilize hardware caches for tiled rendering
BR102014029498A2 (pt) compressão de deslocamento adaptativo de profundidade
US10168985B2 (en) Dynamic audio codec enumeration

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20190619