RU2412469C2 - Графическая система с конфигурируемыми кэшами - Google Patents

Графическая система с конфигурируемыми кэшами Download PDF

Info

Publication number
RU2412469C2
RU2412469C2 RU2008146519/08A RU2008146519A RU2412469C2 RU 2412469 C2 RU2412469 C2 RU 2412469C2 RU 2008146519/08 A RU2008146519/08 A RU 2008146519/08A RU 2008146519 A RU2008146519 A RU 2008146519A RU 2412469 C2 RU2412469 C2 RU 2412469C2
Authority
RU
Russia
Prior art keywords
caches
processor
cache
processor units
graphics
Prior art date
Application number
RU2008146519/08A
Other languages
English (en)
Other versions
RU2008146519A (ru
Inventor
Чунь ЮЙ (US)
Чунь ЮЙ
Гофан ЦЗЯО (US)
Гофан ЦЗЯО
Юнь ДУ (US)
Юнь ДУ
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 Квэлкомм Инкорпорейтед
Publication of RU2008146519A publication Critical patent/RU2008146519A/ru
Application granted granted Critical
Publication of RU2412469C2 publication Critical patent/RU2412469C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Processing (AREA)

Abstract

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

Description

Уровень техники
I. Область техники
Изобретение в целом относится к схемам, более конкретно к графической системе.
II. Уровень техники
Графические системы широко используются для того, чтобы воспроизводить 2-мерные (2D) и 3-мерные (3D) изображения для различных приложений, таких как видеоигры, графика, системы автоматизированного проектирования (CAD), инструментальные средства моделирования и визуализации, создание изображений и т.д. 3D-изображение может моделироваться с помощью поверхностей, и каждая поверхность может быть аппроксимирована с помощью полигонов (многоугольников) (в типичном варианте треугольников). Число треугольников, используемых для того, чтобы представить 3D-изображение, зависит от сложности поверхностей, так же как и от желаемого разрешения изображения и может быть довольно большим, например исчисляться миллионами. Каждый треугольник определен тремя вершинами, и каждая вершина ассоциативно связана с различными атрибутами, такими как пространственные координаты, значения цвета и координаты текстуры. Каждый атрибут может иметь до четырех компонентов. Например, пространственные координаты в типичном варианте заданы горизонтальной и вертикальной координатами (x и y) и глубиной (z), значения цвета в типичном варианте заданы красным, зеленым и синим (r, g, b), а координаты текстуры в типичном варианте заданы горизонтальной и вертикальной координатами (u и v).
Графический процессор в графической системе может выполнять различные графические операции, чтобы визуализировать 2D- и 3D-изображение. Изображение состоит из множества треугольников, и каждый треугольник состоит из элементов изображения (пикселей). Графический процессор визуализирует каждый треугольник, определяя значения компонентов каждого пикселя внутри треугольника. Графические операции включают в себя растеризацию, тесты трафарета и глубины, наложение текстуры, затенение и т.д. Так как графический процессор выполняет различные графические операции по пиксельным данным, которые могут быть любыми данными, ассоциативно связанными с пикселями, возможность быстрого доступа к пиксельным данным имеет большое влияние на производительность.
Сущность изобретения
Графические системы с конфигурируемыми кэшами, имеющие хорошую производительность, описываются в данном документе. Графическая система включает в себя графический процессор и систему кэш-памяти. Графический процессор включает в себя процессорные блоки, которые выполняют различные графические операции, чтобы визуализировать графические изображения. Система кэш-памяти может включать в себя полностью конфигурируемые кэши, частично конфигурируемые кэши или комбинацию конфигурируемых и специализированных кэшей. Кэш является полностью конфигурируемым, если он может быть назначен любому из процессорных блоков, которым могут быть назначены кэши. Кэш является частично конфигурируемым, если он может быть назначен любому из поднабора процессорных блоков. Кэш является специализированным, если он назначен конкретному процессорному блоку. Кэши являются быстрыми запоминающими устройствами, которые хранят данные (например, пиксельные данные и/или инструкции) для процессорных блоков.
Система кэш-памяти может дополнительно включать в себя блок управления, коммутатор и схему разрешения конфликтов. Блок управления может определять использование памяти процессорными блоками и назначать конфигурируемые кэши процессорным блокам на основе коэффициента использования памяти. Конфигурируемые кэши могут быть назначены, чтобы достичь хорошего использования этих кэшей и избежать узкого места при обращении к памяти в любой момент в графическом процессоре. Коммутатор связывает процессорные блоки с их назначенными кэшами. Схема разрешения конфликтов облегчает обмены данными между кэшами и основной памятью.
Далее подробно описаны различные аспекты и варианты осуществления изобретения.
Краткое описание чертежей
Признаки и природа настоящего изобретения станут более очевидными из изложенного ниже подробного описания, рассматриваемого вместе с чертежами, на которых одинаковые символы ссылок идентифицируют соответственно по всему документу.
Фиг.1 показывает графическую систему со специализированными кэшами.
Фиг.2 показывает графическую систему с полностью конфигурируемыми кэшами.
Фиг.3 показывает коммутатор в графической системе на фиг.2.
Фиг.4 показывает кэш и конечный автомат для процессорного блока.
Фиг.5 показывает графическую систему с конфигурируемыми и специализированными кэшами.
Фиг.6 показывает процесс работы графической системы с конфигурируемыми кэшами.
Фиг.7 показывает беспроводное устройство в системе беспроводной связи.
Подробное описание
Слово "примерный" используется в данном документе, чтобы обозначать "служащий в качестве примера, отдельного случая или иллюстрации". Любой вариант осуществления или структура, описанные в данном документе как "примерные", не обязательно должны быть истолкованы как предпочтительные или выгодные по сравнению с другими вариантами осуществления или структурами.
Фиг.1 показывает блок-схему графической системы 100 со специализированными кэшами. Графическая система 100 включает в себя графический процессор 110 и систему 130 кэш-памяти. Графический процессор 110 включает в себя различные процессорные блоки, размещенные в конвейере и используемые, чтобы визуализировать 2D- и 3D-изображения. Командный механизм 120a принимает и декодирует входящие команды, которые определяют графические операции, которые должны быть выполнены. Механизм 120b установки позиции треугольника и координаты z вычисляет необходимые параметры для последующего процесса растеризации. Например, механизм 120b может вычислить коэффициенты линейных уравнений для трех ребер каждого треугольника, коэффициенты для глубины (z), градиента и т.д. Механизм 120c растеризации раскладывает каждый треугольник или линию на пиксели и формирует экранную координату для каждого пикселя.
Механизм 120d теста трафарета и глубины выполняет тест трафарета (шаблона) по каждому пикселю, если позволено, чтобы определить, должен ли пиксель быть отображен или отброшен. Трафаретный буфер (не показан на фиг.1) хранит текущее значение трафарета для каждого пикселя в визуализируемом изображении. Механизм 120d сравнивает сохраненное значение трафарета для каждого пикселя с контрольным значением и сохраняет или отбрасывает пиксель на основе результата сравнения. Механизм 120d также выполняет тест глубины (который также называется z-тест) по каждому пикселю, если применимо, чтобы определить, должен ли пиксель быть отображен или отброшен. Z-буфер (не показан на фиг.1) хранит текущее z-значение для каждого пикселя в визуализируемом изображении. Механизм 120d сравнивает z-значение каждого пикселя (текущее z-значение) с соответствующим z-значением в z-буфере (сохраненным z-значением), отображает пиксель и обновляет z-буфер и, возможно, трафаретный буфер, если текущее z-значение ближе, чем сохраненное z-значение, и отбрасывает пиксель, если текущее z-значение дальше, чем сохраненное z-значение.
Механизм 120c установки атрибутов вычисляет необходимые параметры для последующей интерполяции атрибутов пикселя. Например, механизм 120c может вычислить коэффициенты линейных уравнений для интерполяции атрибутов. Механизм 120f интерполяции пикселей вычисляет значения компонентов атрибутов для каждого пикселя в треугольнике на основе экранной координаты пикселя и с помощью информации из механизма 120e. Механизм 120g наложения текстур выполняет наложение текстуры, если это разрешено, чтобы применить текстуру к каждому треугольнику. Изображение текстуры может быть сохранено в буфере текстур (не показан на фиг.1). Три вершины каждого треугольника могут быть ассоциативно связаны с тремя (u, v) координатами в изображении текстур, и каждый пиксель треугольника может затем быть ассоциативно связан с конкретными координатами текстуры в изображении текстуры. Текстурирование достигается посредством модификации каждого пикселя с помощью цвета изображения текстуры в местоположении, указанном координатами текстуры этого пикселя.
Каждый пиксель ассоциативно связан с информацией, такой как цвет, глубина, текстура и т.д. Фрагментом является пиксель и ассоциативно связанная с ним информация. Средство 120h создания эффектов фрагмента применяет программу системы программного обеспечения, которая может быть составлена из последовательности инструкций, к каждому фрагменту. Средство 120h создания эффектов фрагмента может также отправлять запросы текстур механизму 120g наложения текстур. Механизм 120i фрагментирования выполняет функции, такие как альфа-тест, смешивание с туманом, альфа-смешивание, логическая операция и операция имитации градаций серого, по каждому фрагменту и предоставляет результаты в цветовой буфер.
Графические операции, показанные на фиг.1, известны в данной области техники. Графический процессор может осуществлять программный интерфейс, такой как открытая графическая библиотека (OpenGL), Direct3D и т.д. OpenGL описывается в документе, озаглавленном "The OpenGL® Graphics System: A Specification", версия 2.0, датированном 22 октября 2004 года, который открыто доступен.
Вообще, графический процессор может включать в себя любое число процессорных блоков для любого набора графических операций. Каждый процессорный блок может быть механизмом, который реализован с помощью специализированных аппаратных средств, процессора или комбинации обоих. Например, механизмы, показанные на фиг.1, могут быть реализованы с помощью специализированных аппаратных средств, тогда как механизм создания эффектов фрагмента может быть реализован с помощью программируемого центрального процессора (CPU). Процессорные блоки могут быть размещены в различных порядках в зависимости от желаемой оптимизации. Например, чтобы сберечь энергию, может быть желательно выполнить тесты трафарета и глубины заблаговременно на конвейере, так что пиксели, которые не видны, отбрасываются заранее, как показано на фиг.1. Процессорные блоки могут также быть размещены в других порядках, например механизм 120d теста трафарета и глубины может быть расположен после механизма 120g наложения текстур.
Система 130 кэш-памяти включает в себя специализированные кэши 150a-150f для некоторых из процессорных блоков 120 в графическом процессоре 110. В конструкции, показанной на фиг.1, кэш 150a трафарета хранит значения трафарета (шаблона) для пикселей в области воспроизводимого изображения, а кэш 150b глубины хранит значения глубины для пикселей в той же или другой области. Механизм 120d теста трафарета и глубины обращается к значениям трафарета, сохраненным в кэше 150a, и выполняет тесты трафарета с помощью этих значений трафарета. Механизм 120d также обращается к z-значениям, сохраненным в кэше 150b, и выполняет тесты глубины с помощью этих z-значений. Кэш 150c текстур хранит таблицу наложения текстур, которая используется механизмом 120g наложения текстур, чтобы наложить текстуру на треугольники. Кэш 150d инструкций механизма создания эффектов хранит инструкции для средства 120h создания эффектов фрагмента, а кэш 150e данных механизма создания эффектов хранит данные для средства 120h создания эффектов фрагмента. Кэш 150f цвета хранит значения цвета (например, красного, зеленого и синего) для пикселей.
Схема 160 разрешения конфликтов связывается и облегчает обмены данными между кэшами 150a-150f и основной памятью 170. Неудачное обращение в кэш признается всякий раз, когда процессорный блок 120 обращается в ассоциативно связанный кэш 150 за данными, а запрошенные данные не сохранены в кэше. Результаты неудачного обращения в кэш в текущем содержимом кэша сохраняются обратно в основную память 170, если необходимо, и новая область данных выбирается из основной памяти 170 и загружается в кэш. Запрошенные данные могут затем быть получены из кэша и предоставлены процессорному блоку. Схема 160 разрешения конфликтов позволяет одному кэшу в момент времени обмениваться данными с основной памятью 170.
Система 130 кэш-памяти на фиг.1 улучшает производительность обращения к памяти для графической системы 100. Кэши 150 являются небольшими, быстрыми запоминающими устройствами, расположенными близко к графическому процессору 110. Быстрая кэш-память улучшает скорость обработки, так как процессорные блоки 120 могут извлекать данные и сохранять результаты быстрее. Основная память 170 является большой, более медленной памятью, расположенной дальше (например, вне микросхемы) от графического процессора 110. Основная память 170 хранит данные и инструкции, которые могут быть загружены в кэши 150. Кэши 150 уменьшают число выборок из основной памяти 170 и в целом улучшают производительность графической системы 100.
Фиг.1 показывает использование специализированных кэшей. Каждый кэш 150 хранит данные или инструкции для конкретного процессорного блока 120. Использование каждого кэша 150 зависит от выполняемого графического приложения. Например, приложение 3D-графики может выполнять только z-проход, который может включать только тест глубины и/или трафарета (шаблона). Для этого приложения может использоваться только трафаретный кэш 150a и/или кэш 150b глубины, а оставшиеся кэши 150c-150f могут быть свободны. В качестве другого примера, простое приложение создания эффектов может не использовать кэш 150d инструкций механизма создания эффектов или кэш 150e данных механизма создания эффектов, и эти кэши могут быть свободны. В качестве еще одного примера, графическое приложение может отключить наложение текстур, в таком случае кэш 150c текстур может быть не нужен. Как видно посредством этих примеров, использование специализированных кэшей может приводить в результате к плохому коэффициенту использования кэшей некоторыми графическими приложениями. Использование специализированных кэшей может также при обращении к памяти приводить в результате к узкому месту, возникающему в разных местах для разных графических приложений. Узкое место ограничивает производительность графической системы 100.
Фиг.2 показывает вариант осуществления графической системы 200 с полностью конфигурируемыми кэшами. Графическая система 200 включает в себя графический процессор 210 и систему 230 кэш-памяти. Графический процессор 210 включает в себя процессорные блоки 220a-220i, которые могут работать, как описано выше для процессорных блоков 120a-120i соответственно на фиг.1. Как показано на фиг.2, только некоторые из процессорных блоков могут использовать кэши, чтобы хранить данные и/или инструкции. В частности, кэши могут использоваться, чтобы хранить значения трафарета и/или значения глубины для механизма 220d теста трафарета и глубины, данные текстуры для механизма 220g наложения текстур, инструкции и/или данные для средства 220h создания эффектов фрагмента и цветовые значения для механизма 220i фрагментирования.
Система 230 кэш-памяти включает в себя N полностью конфигурируемых кэшей 250a-250n, которые могут быть предназначены для хранения данных и/или инструкций для процессорных блоков 220 в графическом процессоре 210, где, как правило, N>1. Кэши являются полностью конфигурируемыми в том, что каждый кэш может быть выделен для любого процессорного блока, которому могут быть назначены кэши. В варианте осуществления каждый кэш 250 может быть назначен только одному процессорному блоку 220, но данному процессорному блоку 220 может быть назначено ноль, один или множество кэшей 250. Блок 232 управления назначает доступные кэши 250a-250n механизму 220d теста трафарета и глубины, механизму 220g наложения текстур, средству 220h создания эффектов фрагмента и/или механизму 220i фрагментирования на основе коэффициента использования памяти этими процессорными блоками. Коммутатор 240 связывает процессорные блоки 220d, 220g, 220h и 220i с их назначенными кэшами 250a-250n. Коммутатор 240 также может называться перекрестным переключателем или некоторой другой терминологией. Схема 260 разрешения конфликтов связывает кэши 250a-250n с основной памятью 270 и облегчает обмены данными между кэшами и основной памятью. Схема 260 разрешения конфликтов также может называться селектором, интерфейсом памяти или некой другой терминологией.
Как правило, система кэш-памяти может включать в себя любое число кэшей, которые могут быть любого размера. Число кэшей и их размеры могут выбираться на основе компромисса между производительностью обращения к памяти и площадью схемы. Более крупные размеры кэшей ведут к более высоким коэффициентам попаданий и большей вероятности того, что запрошенные данные сохранены в кэшах. Однако более объемные размеры кэшей также требуют больше площади схемы, что может увеличить стоимость. В одном конкретном варианте осуществления система 230 кэш-памяти включает в себя двенадцать кэшей 250, и каждый кэш равен четырем килобайтам. В других вариантах осуществления меньше кэшей или добавочные кэши, так же как и другие размеры кэшей, могут использоваться для системы кэш-памяти.
Фиг.3 показывает блок-схему варианта осуществления коммутатора 240 на фиг.2. В этом варианте осуществления коммутатор 240 включает в себя K интерфейсных блоков 310a-310k, где, как правило, K может быть любым целым числом. Интерфейсные блоки могут также называться главными блоками или некоторой другой терминологией. В варианте осуществления, показанном на фиг.2, K равно шести, и шесть интерфейсных блоков существуют для трафарета, глубины, текстуры, инструкции средства создания эффектов, данных механизма создания эффектов и цвета. Данный процессорный блок 220 может взаимодействовать с одним или более интерфейсными блоками 310 в зависимости от требований данных процессорного блока. Коммутатор 240 дополнительно включает в себя K мультиплексоров (Mux) 340a-340k для K интерфейсных блоков 310a-310k соответственно и N мультиплексоров 350a-350n для N кэшей 250a-250n соответственно.
Каждый интерфейсный блок 310 связывается с ассоциативно связанным процессорным блоком 220 через соответствующий набор линий 302 связи. Каждый интерфейсный блок 310 включает в себя конечный автомат 320 и блок 330 ввода/вывода (I/O). Для каждого интерфейсного блока 310 I/O-блок 330 принимает адрес и/или выходные данные от ассоциативно связанного процессорного блока 220 через линии 302 связи и выдает адрес/данные на один вход каждого из N мультиплексоров 350a-350n. I/O-блок 330 также принимает входные данные или инструкции от ассоциативно связанного мультиплексора 340 и выдает данные/инструкции ассоциативно связанному процессорному блоку 220 через линии 302 связи.
Каждый мультиплексор 350 принимает адрес/данные от всех K I/O-блоков 330a-330k на K входах. Каждый мультиплексор 350 также принимает соответствующий управляющий сигнал Cn от блока 232 управления и выдает адрес/данные с одного входа, как определено управляющим сигналом Cn, ассоциативно связанному кэшу 250. Каждый мультиплексор 350, таким образом, связывает один интерфейсный блок 310 с ассоциативно связанным кэшем 250.
Каждый мультиплексор 340 принимает входные данные или инструкции из всех N кэшей 250a-250n на N входах. Каждый мультиплексор 340 также принимает соответствующий управляющий сигнал Pk от блока 232 управления и выдает данные/инструкции с одного входа, как определено управляющим сигналом Pk, ассоциативно связанному I/O-блоку 330. Каждый мультиплексор 340, таким образом, связывает один кэш 250 с ассоциативно связанным интерфейсным блоком 310.
Каждый кэш 250 принимает адрес от ассоциативно связанного мультиплексора 350 и определяет, сохранены ли в кэше запрошенные данные/инструкции по этому адресу. Каждый кэш 250 выдает индикатор попадания/промаха (h/m), который указывает попадание в кэш (например, высокий логический уровень), если запрошенные данные/инструкция сохранены в кэше, или промах в кэше (например, низкий логический уровень), если запрошенные данные/инструкция не сохранены в кэше. Каждый кэш 250 выдает запрошенные данные/инструкцию, если существует попадание в кэш. Каждый кэш 250 ожидает выборку из основной памяти 270 и затем выдает запрошенные данные/инструкцию, если они отсутствуют в кэше.
Для каждого интерфейсного блока 310 конечный автомат 320 принимает индикаторы попадания/промаха из всех N кэшей 250a-250n и управляющий сигнал Mk, который указывает, какие кэши, если есть в наличии, были назначены этому интерфейсному блоку. Конечный автомат 320 определяет, сохранены ли запрошенные данные/инструкция в каком-либо из назначенных кэшей, на основе индикаторов попадания/промаха для назначенных кэшей. Конечный автомат 320 формирует команду выборки, если запрошенные данные/инструкция не сохранены в каком-либо из назначенных кэшей.
Блок 232 управления формирует управляющие сигналы M1-MK для конечных автоматов 320a-320k соответственно, управляющие сигналы P1-PK для мультиплексоров 340a-340k соответственно и управляющие сигналы C1-CN для мультиплексоров 350a-350n соответственно. Эти управляющие сигналы определяют, какие кэши, если есть в наличии, назначены каждому интерфейсному блоку 310.
Фиг.3 показывает вариант осуществления коммутатора 240 для полностью конфигурируемых кэшей. Как правило, полная конфигурируемость кэшей может быть достигнута посредством использования мультиплексоров с достаточным числом входов, проектирования конечных автоматов, чтобы оценить любое возможное назначение кэша, и формирования правильных управляющих сигналов для конечных автоматов и мультиплексоров. Коммутатор 240 может также быть осуществлен с помощью других схем, которые могут установить соответствие процессорных блоков с доступными кэшами.
Фиг.4 показывает блок-схему варианта осуществления кэша 250n и конечного автомата 320 для интерфейсного блока 310k на фиг.3. Кэш 250n включает в себя контроллер 410 кэша, ОЗУ 420 тегов и ОЗУ 430 данных. Контроллер 410 кэша выполняет проверку адреса для каждого обращения к кэшу 250n и гарантирует, что доступ осуществляется к корректным данным/инструкции. ОЗУ 420 тегов хранит путь, по которому данные/инструкции в настоящее время хранятся в кэше 250n. ОЗУ 430 данных хранит данные/инструкции. Каждая строка ОЗУ 430 данных может хранить данные для одного или более пикселей или одной или более инструкций в зависимости от того, сконфигурирован ли кэш 250n хранить данные или инструкции.
Кэш 250n может быть осуществлен со структурой кэша с прямым соответствием или со структурой кэша с М-образно установленной ассоциативной связью. Для структуры кэша с прямым соответствием каждая строка памяти на следующем уровне (например, основной памяти 270) может быть сопоставлена только с одной строкой ОЗУ 430 данных. Каждая строка ОЗУ 430 данных (или каждая строка кэша) ассоциативно связана с тегом в ОЗУ 420 тегов, которое идентифицирует конкретную строку основной памяти 270, сохраненную в этой строке кэша. В качестве примера, если основная память 270 имеет 256k строк, а ОЗУ 430 данных имеет 4k строк, тогда каждая строка кэша ассоциативно связывается с конкретным 12-битным адресом и 32 строки основной памяти 270 устанавливаются в соответствие с каждой строкой кэша. Конкретная строка основной памяти 270, хранящаяся в каждой строке кэша, может быть затем идентифицирована по 12-битному адресу для строки кэша и 5-битному тегу, который указывает, какая из 32 строк основной памяти 270 сохранена в строке кэша. Для структуры кэша с M-образно установленной ассоциативной связью каждая строка основной памяти 270 может быть сопоставлена с любой из M возможных линий ОЗУ 430 данных. Как правило, структура тега может зависеть от размера основной памяти, размера кэша, структуры кэша, размера каждой строки кэша и/или других факторов.
ОЗУ 420 тегов хранит тег для каждой строки ОЗУ 430 данных и обновляется всякий раз, когда любая строка в ОЗУ 430 данных заменяется. Тег для каждой строки кэша указывает строку основной памяти 270, хранящейся в этой строке кэша. В блоке 410 управления синтаксический анализатор 412 адреса принимает от мультиплексора 350n адрес для обращения к памяти процессорным блоком 220, делает синтаксический анализ (разбор) адреса, чтобы получить целевой тег и адрес строки кэша, выдает адрес строки кэша в ОЗУ 420 тегов и выдает целевой тег логической схеме 414 сравнения. ОЗУ 420 тегов предоставляет сохраненный тег для адреса строки кэша из синтаксического анализатора 412. Логическая схема 414 сравнения сравнивает сохраненный тег с целевым тегом, указывает попадание в кэш, если теги эквивалентны, и указывает промах в кэше, если теги разные. Доступ к ОЗУ 420 тегов может быть осуществлен множество раз, если кэш 250n осуществляет структуру кэша с M-образно установленной ассоциативной связью.
Блок 416 доступа к памяти управляет доступом к ОЗУ 430 данных, когда существует попадание в кэш. Если доступом к памяти является чтение, тогда осуществляется доступ в ОЗУ 430 данных, чтобы прочитать данные/инструкцию, сохраненную по адресу строки кэша. Если доступом в память является запись, тогда ОЗУ 430 данных записывается по адресу строки кэша и "грязный бит" кэша обновляется, чтобы указать, что строка кэша была записана, так что стока будет записана обратно в основную память 270 перед заменой.
Конечный автомат 320 для блока 310k интерфейса определяет, сохранены ли запрошенные данные/инструкция в каком-либо кэше, назначенном этому интерфейсному блоку. В конечном автомате 320 устройство 450 сопоставления принимает управляющий сигнал MK от блока 232 управления и формирует N разрешающих сигналов для N кэшей 250a-250n. Каждый разрешающий сигнал устанавливается в высокий логический уровень, если ассоциативно связанный кэш 250 назначается интерфейсному блоку 310k. N логических элементов 452a-452n И принимают N разрешающих сигналов и N индикаторов попадания/промаха от N кэшей 250a-250n соответственно. Каждый логический элемент 452 И предоставляет либо (1) низкий логический уровень, если его разрешающий сигнал находится на низком логическом уровне, который указывает, что ассоциативно связанный кэш 250 не назначен интерфейсному блоку 310k, либо (2) индикатор попадания/промаха из ассоциативно связанного кэша 250, если разрешающий сигнал находится на высоком логическом уровне, который указывает, что кэш назначен интерфейсному блоку 310k. Логический элемент 454 ИЛИ принимает выходные данные логических элементов 452a-452n И и формирует индикатор попадания для интерфейсного блока 310k.
Блок 460 заполнения кэша управляет заполнением одного из кэшей, назначенных интерфейсному блоку 310k, когда имеется промах кэша. В варианте осуществления назначенный кэш, который является наиболее давно использовавшимся (LRU), т.е. неиспользованный в течение самого длительного времени, выбирается для заполнения кэша. Блок 460 заполнения кэша может заполнить весь или часть выбранного кэша новыми данными/инструкциями из основной памяти 270. Интерфейсный блок 310k может быть остановлен, пока строка целевого кэша заполняется из основной памяти 270, а ОЗУ тегов выбранного кэша обновляется, чтобы отразить новые данные/инструкции, загруженные в ОЗУ данных.
Графическая система с полностью конфигурируемыми кэшами обеспечивает большую гибкость с точки зрения назначения кэшей процессорным блокам. Данному процессорному блоку может быть назначено ноль, один, множество или даже все из доступных кэшей в зависимости от требований данных процессорных блоков. Доступные кэши могут быть назначены процессорным блокам таким способом, чтобы достичь хорошего использования кэшей и избежать узкого места при обращении к памяти в любом месте в графическом процессоре невзирая на выполняющееся графическое приложение. Доступные кэши могут интеллектуально назначаться процессорным блокам, как описано ниже.
Во многих случаях хорошая производительность может быть достигнута с частично конфигурируемыми кэшами. Кэши являются частично конфигурируемыми в том, что каждый кэш может быть назначен одному из поднабора процессорных блоков. Были выполнены исследования на различных графических приложениях, чтобы установить выгоды использования кэшей для разных графических операций. Эти исследования указывают, что кэши являются очень полезными в увеличении производительности тестов трафарета и глубины и наложении текстур многих графических приложений и только отчасти полезны для цвета и механизма создания эффектов. Следовательно, система кэш-памяти может быть спроектирована с большинством из доступных кэшей, являющихся конфигурируемыми для тестов трафарета и глубины и наложения текстур, и только с несколькими из кэшей, являющихся конфигурируемыми для цвета и механизма создания эффектов. Применение частично конфигурируемых кэшей может упростить схемы блока управления, который назначает конфигурируемые кэши, так же как и коммутатора, который связывает процессорные блоки с их назначенными кэшами.
Фиг.5 показывает вариант осуществления графической системы 500 с конфигурируемыми и специализированными кэшами. Графическая система 500 включает в себя графический процессор 510 и систему 530 кэш-памяти. Графический процессор 510 может включать в себя процессорные блоки, которые работают, как описано выше для процессорных блоков 120a-120i на фиг.1. В частности, графический процессор 510 может включать в себя механизм теста трафарета и глубины, механизм наложения текстур, механизм создания эффектов фрагмента и механизм фрагментирования, которые могут использовать данные и/или инструкции, сохраненные в кэшах.
В варианте осуществления, показанном на фиг.5, система 530 кэш-памяти включает в себя R частично конфигурируемых кэшей 550a-550r и один специализированный кэш 550s, где, как правило, R≥1. Таблица показывает возможные назначения каждого из кэшей 550a-550s, где каждый "X" указывает правильное назначение кэша. Как показано в таблице, каждый из P частично конфигурируемых кэшей 550a-550p может быть назначен для теста трафарета, теста глубины или наложения текстуры. Частично конфигурируемый кэш 550q может быть назначен для инструкций механизма создания эффектов, теста трафарета, теста глубины или наложения текстуры. Частично конфигурируемый кэш 550r может быть назначен для данных механизма создания эффектов, теста трафарета, теста глубины или наложения текстуры. Специализированный кэш 550s используется, чтобы хранить значения цвета для механизма фрагментирования. В варианте осуществления P=8, и до 10 кэшей может быть назначено для теста трафарета, теста глубины и/или наложения текстуры, предполагая, что кэши 550q и 550r не используются для инструкций и данных механизма создания эффектов. Меньшее число или дополнительные кэши также могут использоваться для системы 530 кэш-памяти.
Процессорный блок Кэш 550a ... Кэш 550p Кэш 550q Кэш 550r Кэш 550s
Тест трафарета X ... X X X
Тест глубины X ... X X X
Наложение текстуры X ... X X X
Инструкция механизма создания эффектов X
Данные механизма создания эффектов X
Цвет X
Блок 532 управления назначает конфигурируемые кэши 550a-550r механизму теста трафарета и глубины, механизму наложения текстур и/или механизму создания эффектов фрагмента на основе коэффициента использования памяти этими процессорными блоками. Коммутатор 540 связывает процессорные блоки с их назначенными кэшами 550a-550r. Схема 560 разрешения конфликтов связывает кэши 550a-550s с основной памятью 570.
Фиг.5 также показывает вариант осуществления коммутатора 540. В этом варианте осуществления коммутатор 540 включает в себя интерфейсные блоки 580a-580e для теста трафарета, теста глубины, наложения текстуры, инструкции механизма создания эффектов и данных механизма создания эффектов соответственно. Интерфейсный блок 580a связывает механизм теста трафарета и глубины с кэшами, назначенными для теста трафарета, если предусмотрены, среди кэшей 550a-550r. Интерфейсный блок 580b связывает механизм теста трафарета и глубины с кэшами, назначенными для теста глубины, если предусмотрены, среди кэшей 550a-550r. Интерфейсный блок 580c связывает механизм наложения текстур с назначенными кэшами, если предусмотрены, среди кэшей 550a-550r. Интерфейсный блок 580d связывает механизм создания эффектов фрагмента с кэшем 550q, если назначен. Интерфейсный блок 580e связывает механизм создания эффектов фрагмента с кэшем 550r, если назначен. Каждый интерфейсный блок 580 может включать в себя конечный автомат и I/O-блок, например, как показано на фиг.3. Для простоты мультиплексоры для интерфейсных блоков и мультиплексоры для кэшей не показаны на фиг.5.
Фиг.5 показывает конкретный вариант осуществления системы кэш-памяти с конфигурируемыми и специализированными кэшами. Как правило, система кэш-памяти может включать в себя любое число конфигурируемых кэшей и любое число специализированных кэшей. Конфигурируемые кэши могут использоваться для любого набора графических операций, и специализированные кэши могут также использоваться для любого набора графических операций. Использование как конфигурируемых, так и специализированных кэшей может упростить схемы блока управления и коммутатора.
В вариантах осуществления, показанных на фиг.2 и 5, блок управления может назначать конфигурируемые кэши процессорным блокам различными способами. В одном варианте осуществления блок управления назначает кэши для каждого графического изображения или кадра, который должен быть визуализирован, на основе коэффициента использования памяти в предыдущем изображении/кадре. Блок управления может установить использование памяти, подсчитывая число обращений к памяти, сделанных каждым процессорным блоком, число попаданий в кэш для каждого кэша, число промахов кэша для каждого кэша и т.д. Блок управления может затем назначить больше кэшей процессорным блокам с высоким использованием памяти и меньше или не назначить кэши процессорным блокам с низким использованием памяти.
В другом варианте осуществления блок управления назначает конфигурируемые кэши процессорным блокам на основе связности графических изображений/кадров. Связность ссылается на количество изменений в последовательных 2D/3D-кадрах. Меньше кэшей может быть назначено для большей связности, когда кадры, более вероятно, должны отображать похожее содержимое, и больше кэшей может быть назначено для меньшей связности.
Еще в одном варианте осуществления блок управления назначает конфигурируемые кэши процессорным блокам на основе характеристик выполняемого графического приложения. Например, если графическая система выполняет приложение 2D-графики, тогда тест глубины не нужен и кэш может не назначаться для теста глубины. С другой стороны, если приложение 3D-графики использует только z-обход, тогда все конфигурируемые кэши могут быть назначены тесту глубины. В качестве другого примера, если выполняется простая программа создания эффектов и все из инструкций механизма создания эффектов могут быть сохранены в механизме создания эффектов фрагмента, то кэш может не назначаться механизму создания эффектов фрагмента.
Еще в одном варианте осуществления блок управления динамически назначает конфигурируемые кэши. Например, блок управления может назначить один или более кэшей процессорному блоку, когда запросы данных отправляются процессорным блоком. Блок управления может регулировать число кэшей, назначенных процессорному блоку, на основе числа запросов, статистики попаданий/промахов в кэше и/или других факторов, которые могут быть определены на лету. Операции сброса и задания недействительности могут быть выполнены на лету для кэша, который переключается или переназначается от одного процессорного блока другому процессорному блоку.
Еще в одном варианте осуществления блок управления назначает кэши с помощью комбинации статических и динамических назначений. Например, блок управления может предварительно назначить один или более кэшей данному процессорному блоку в начале воспроизведения кадра, изображения или пакета, например, на основе текущей статистики по использованию памяти процессорным блоком. Блок управления может регулировать назначение кэша этому процессорному блоку во время воспроизведения кадра, изображения или пакета, например, периодически. Новое назначение кэша для каждого периода воспроизведения может быть определено на основе статистики, полученной для предыдущего периода воспроизведения.
Блок управления может также назначать конфигурируемые кэши на основе других критериев. Блок управления может назначать кэши в каждом изображении/кадре всякий раз, когда обнаруживаются изменения в использовании памяти, когда графическое приложение выполняется первый раз и/или в другие моменты времени.
Для простоты фиг.1-5 показывают системы кэш-памяти, включающие в себя банк кэшей. Кэш может быть реализован с блоком памяти. Кэш или система кэш-памяти может также быть реализована с иерархической структурой, имеющей множество уровней, например уровень 1, уровень 2, уровень 3 и т.д. Кэши на более низком уровне (например, уровне 1) имеют тенденцию быть быстрее, но меньше, чем кэши на более высоком уровне (например, уровне 2). Кэши на каждом уровне могут заполняться кэшами на следующем более высоком уровне всякий раз, когда случается промах в кэше. Число уровней, число кэшей на каждом уровне и размеры кэшей для разных уровней могут быть фиксированными или конфигурируемыми. Например, число уровней, число кэшей на каждом уровне и/или размеры кэшей могут выбираться, чтобы достичь хорошей производительности, и могут быть конфигурируемыми на основе характеристик графических приложений.
Фиг.6 показывает вариант осуществления процесса 600 работы графической системы с конфигурируемыми кэшами. Определяется коэффициент использования памяти множеством процессорных блоков, выполненных с возможностью выполнять графические операции, чтобы визуализировать графические изображения (блок 612). Коэффициент использования памяти может определяться посредством наблюдения за обращениями к памяти, выполненными процессорными блоками, установления характеристик выполняющегося графического приложения и/или другими способами. Множество кэшей назначаются, по меньшей мере, одному процессорному блоку среди множества процессорных блоков на основе коэффициента использования памяти (блок 614). Каждому процессорному блоку может быть назначено ноль, один, множество или все из кэшей в зависимости от (1) коэффициента использования памяти этим процессорным блоком, так же как и другими процессорными блоками, и (2) кэшей, доступных для назначения этому процессорному блоку. Коэффициент использования памяти может быть установлен на основе различной статистики, такой как запросы данных процессорным блоком, статистика попаданий/промаха в кэше и т.д. Назначение кэша может выполняться периодически (например, в каждом графическом изображении/кадре), всякий раз, когда обнаружено изменение в коэффициенте использования памяти и т.д. Кэши могут также быть переназначены во время воспроизведения изображения/кадра на основе обнаруженных изменений в коэффициенте использования памяти. Каждый из по меньшей мере одного процессорного блока связывается с соответствующим набором кэшей, назначенных процессорному блоку, например, через соответствующий интерфейсный блок (блок 616).
Графические системы и конфигурируемые кэши, описанные в данном документе, могут использоваться для беспроводной связи, вычислений, работы в сети, персональных электронных устройств и т.д. Примерное использование графической системы с конфигурируемыми кэшами для беспроводной связи описывается ниже.
Фиг.7 показывает блок-схему варианта осуществления беспроводного устройства 700 в системе беспроводной связи. Беспроводное устройство 700 может быть сотовым телефоном, терминалом, телефонной трубкой, персональным цифровым помощником (PDA) или некоторым другим устройством. Система беспроводной связи может быть системой множественного доступа с кодовым разделением каналов (CDMA), системой глобальной мобильной связи (GSM) или некоторой другой системой.
Беспроводное устройство 700 способно обеспечить двунаправленную связь через путь приема и путь передачи. В пути приема сигналы, переданные базовыми станциями, принимаются антенной 712 и выдаются приемнику (RCVR) 714. Приемник 714 приводит к требуемым условиям и преобразует в цифровую форму принятый сигнал и выдает дискретные данные в цифровую секцию 720 для дальнейшей обработки. В пути передачи передатчик (TMTR) 716 принимает данные, которые должны быть переданы, из цифровой секции 720, обрабатывает и приводит к требуемым условиям данные и формирует модулированный сигнал, который передается через антенну 712 базовым станциям.
Цифровая секция 720 включает в себя различные процессорные и интерфейсные блоки, такие как, например, процессор 722 модема, видеопроцессор 724, процессор 726 приложения, процессор 728 отображения, контроллер/процессор 730, графический процессор 740 и интерфейс 760 с внешней шиной (EBI). Процессор 722 модема выполняет обработку для передачи и приема данных (например, кодирование, модуляцию, демодуляцию и декодирование). Видеопроцессор 724 выполняет обработку в отношении видеосодержимого (например, неподвижные изображения, движущееся видео и движущиеся тексты) для видеоприложений, таких как записывающая видеокамера, воспроизведение видео и видеоконференция. Процессор 726 приложений выполняет обработку для различных приложений, таких как многосторонние вызовы, веб-просмотр, мультимедийный проигрыватель и пользовательский интерфейс. Процессор 728 отображения выполняет обработку, чтобы облегчить отображение видеоданных, графики и текстов в блоке 780 отображения. Контроллер/процессор 730 может управлять работой различных процессорных и интерфейсных блоков в цифровой секции 720.
Графический процессор 740 выполняет обработку для графических приложений и может быть осуществлен, как описано выше. Система 750 кэш-памяти хранит данные и/или инструкции для графического процессора 740 и может быть реализована с конфигурируемыми кэшами и, возможно, специализированными кэшами. Система 750 кэш-памяти может дополнительно включать в себя коммутатор, который связывает конфигурируемые кэши с процессорными блоками в графическом процессоре 740, и схему разрешения конфликтов, которая связывает кэши с основной памятью 770 через шину 732 и EBI 760. EBI 760 облегчает передачу данных между цифровой секцией 720 (например, кэшами) и основной памятью 770.
Цифровая секция 720 может быть осуществлена с одним или более цифровыми сигнальными процессорами (DSP), микропроцессорами, компьютерами с сокращенным набором команд (RISC) и т.д.
Цифровая секция 720 может также быть изготовлена на одной или более специализированных интегральных микросхемах (ASIC) или некотором другом типе интегральных схем (IC).
Графические системы и конфигурируемые кэши, описанные в данном документе, могут быть осуществлены в различных аппаратных блоках. Например, графические системы и конфигурируемые кэши могут быть осуществлены в ASIC, устройствах обработки цифровых сигналов (DSPD), устройствах с программируемой логикой (PLD), программируемых пользователем матричных БИС (FPGA), процессорах, контроллерах, микроконтроллерах, микропроцессорах и других электронных устройствах.
Некоторые части графических систем могут быть осуществлены в программно-аппаратных средствах и/или программном обеспечении. Например, блок управления может быть осуществлен с помощью программно-аппаратных и/или программных модулей (например, процедур, функций и т.д.), которые выполняют функции, описанные в данном документе. Коды программно-аппаратных средств и/или программного обеспечения могут быть сохранены в памяти (например, памяти 770 на фиг.7) и выполняться процессором (например, процессором 730). Память может быть осуществлена внутри процессора или снаружи по отношению к процессору.
Предшествующее описание раскрытых вариантов осуществления предоставлено, чтобы позволить любому специалисту в данной области техники создавать или использовать настоящее изобретение. Различные модификации в этих вариантах осуществления будут явными для специалистов в данной области техники, а описанные в данном документе общие принципы могут быть применены к другим вариантам осуществления без отступления от духа и цели изобретения. Таким образом, настоящее изобретение не предназначено, чтобы быть ограниченным показанными в данном документе вариантами осуществления, а должно удовлетворять самой широкой области применения, согласованной с принципами и новыми признаками, раскрытыми в данном документе.

Claims (32)

1. Устройство для обработки графики, содержащее:
множество процессорных блоков, выполненных с возможностью выполнять графические операции, чтобы визуализировать графические изображения;
множество кэшей, выполненных с возможностью хранить данные для, по меньшей мере, одного процессорного блока из множества процессорных блоков;
коммутатор, выполненный с возможностью соединять множество кэшей с упомянутыми, по меньшей мере, одним процессорным блоком;
блок управления, выполненный с возможностью определять коэффициент использования памяти упомянутым множеством процессорных блоков и назначать множество кэшей, по меньшей мере, одному процессорному блоку на основе коэффициента использования памяти.
2. Устройство по п.1, в котором каждый из множества кэшей является назначаемым любому одному из множества процессорных блоков.
3. Устройство по п.1, в котором каждый из множества кэшей является назначаемым любому одному из соответствующего поднабора из множества процессорных блоков.
4. Устройство по п.1, в котором множество кэшей содержат один или более специализированных кэшей, назначенных одному или более процессорным блокам и, по меньшей мере, один конфигурируемый кэш, назначаемый оставшимся процессорным блокам.
5. Устройство по п.4, в котором каждый конфигурируемый кэш
является назначаемым любому одному из соответствующего поднабора оставшихся процессорных блоков.
6. Устройство по п.4, в котором оставшиеся процессорные блоки содержат механизм теста глубины и механизм наложения текстур.
7. Устройство по п.1, в котором блок управления выполнен с возможностью назначать множество кэшей для каждого графического изображения, которое должно быть визуализировано, на основе коэффициента использования памяти для предыдущего графического изображения.
8. Устройство по п.1, в котором блок управления выполнен с возможностью определять коэффициент использования памяти на основе запросов данных процессорными блоками, статистики попаданий/промахов в кэше или их комбинации.
9. Устройство по п.1, в котором блок управления выполнен с возможностью обнаруживать изменения в коэффициенте использования памяти множеством процессорных блоков во время визуализации изображения и переназначать множество кэшей на основе обнаруженных изменений в коэффициенте использования памяти.
10. Устройство по п.1, в котором:
блок управления дополнительно выполнен с возможностью назначать множество кэшей, по меньшей мере, одному процессорному блоку на основе коэффициента использования памяти выполняемым графическим приложением.
11. Устройство по п.1, в котором коммутатор содержит множество интерфейсных блоков, каждый интерфейсный блок выполнен с возможностью соединять ассоциативно связанный процессорный блок с набором кэшей, назначенных процессорному блоку.
12. Устройство по п.11, в котором каждый интерфейсный блок содержит конечный автомат, выполненный с возможностью определять, сохранены ли данные, запрошенные ассоциативно связанным процессорным блоком, в каком-либо одном из набора кэшей, назначенных процессорному блоку.
13. Устройство по п.12, в котором конечный автомат для каждого интерфейсного блока принимает индикаторы попадания/промаха в кэше из множества кэшей и управляющий сигнал, указывающий набор кэшей, назначенных ассоциативно связанному процессорному блоку.
14. Устройство по п.12, в котором конечный автомат для каждого интерфейсного блока выполнен с возможностью заполнять один из набора кэшей, назначенных ассоциативно связанному процессорному блоку, когда имеет место промах в кэше.
15. Устройство по п.1, в котором множество кэшей размещены в иерархической структуре с, по меньшей мере, двумя уровнями кэшей.
16. Устройство по п.15, в котором, по меньшей мере, один уровень в иерархической структуре имеет конфигурируемое число кэшей.
17. Устройство по п.15, в котором, по меньшей мере, один уровень в иерархической структуре имеет конфигурируемые размеры кэшей.
18. Устройство по п.1, в котором множество кэшей размещены в конфигурируемом числе уровней в иерархической структуре.
19. Устройство по п.1, в котором множество кэшей имеют конфигурируемые размеры кэшей.
20. Устройство по п.1, дополнительно содержащее:
схему разрешения конфликтов, соединенную с множеством кэшей и выполненную с возможностью облегчать обмены данными между множеством кэшей и основной памятью.
21. Устройство по п.1, в котором множество процессорных блоков содержат механизм теста глубины и механизм наложения текстур.
22. Устройство по п.21, в котором множество процессорных блоков размещены в конвейере, и при этом механизм теста глубины расположен раньше в конвейере, чем механизм наложения текстур.
23. Интегральная схема для обработки графики, содержащая:
множество процессорных блоков, выполненных с возможностью выполнять графические операции, чтобы визуализировать графические изображения;
множество кэшей, выполненных с возможностью хранить данные для, по меньшей мере, одного процессорного блока из множества процессорных блоков;
коммутатор, выполненный с возможностью соединять множество кэшей с, по меньшей мере, одним процессорным блоком, и блок управления, выполненный с возможностью определять коэффициент использования памяти множеством процессорных блоков и назначать множество кэшей, по меньшей мере, одному процессорному блоку на основе коэффициента использования памяти.
24. Интегральная схема по п.23, в которой каждый из множества кэшей является назначаемым любому из соответствующего поднабора из множества процессорных блоков.
25. Беспроводное устройство для обработки графики, содержащее:
графический процессор, содержащий множество процессорных блоков, выполненных с возможностью выполнять графические операции, чтобы визуализировать графические изображения;
систему кэш-памяти, содержащую
множество кэшей, выполненных с возможностью хранить данные для, по меньшей мере, одного процессорного блока из множества процессорных блоков;
коммутатор, выполненный с возможностью соединять множество кэшей с, по меньшей мере, одним процессорным блоком;
блок управления, выполненный с возможностью определять коэффициент использования памяти множеством процессорных блоков и назначать множество кэшей, по меньшей мере, одному процессорному блоку на основе коэффициента использования памяти.
26. Беспроводное устройство по п.25, в котором система кэш-памяти дополнительно содержит схему разрешения конфликтов, соединенную с множеством кэшей и выполненную с возможностью облегчать обмены данных между множеством кэшей и основной памятью.
27. Способ обработки графики, содержащий этапы, на которых:
определяют коэффициент использования памяти множеством процессорных блоков, выполненных с возможностью выполнять графические операции, чтобы визуализировать графические изображения;
назначают множество кэшей, по меньшей мере, одному процессорному блоку из множества процессорных блоков на основе коэффициента использования памяти множеством процессорных блоков; и соединяют каждый из, по меньшей мере, одного процессорного блока с соответствующим набором кэшей, назначенным процессорному блоку.
28. Способ по п.27, дополнительно содержащий этап, на котором:
соединяют один или более кэшей непосредственно с одним или более процессорными блоками среди множества процессорных блоков.
29. Способ по п.27, в котором назначение множества кэшей содержит этап, на котором назначают множество кэшей, по меньшей мере, одному процессорному блоку для каждого графического изображения, которое должно быть визуализировано, на основе коэффициента использования памяти для предыдущего графического изображения.
30. Устройство для обработки графики, содержащее:
средство определения коэффициента использования памяти множеством процессорных блоков, выполненных с возможностью выполнять графические операции, чтобы визуализировать графические изображения;
средство назначения множества кэшей, по меньшей мере, одному процессорному блоку из множества процессорных блоков на основе коэффициента использования памяти множеством процессорных блоков; и
средство соединения каждого из, по меньшей мере, одного процессорного блока с соответствующим набором кэшей, назначенных процессорному блоку.
31. Устройство по п.30, дополнительно содержащее:
средство соединения одного или более кэшей непосредственно с одним или более процессорными блоками из множества процессорных блоков.
32. Устройство по п.30, в котором средство назначения множества кэшей содержит средство назначения множества кэшей, по меньшей мере, одному процессорному блоку для каждого графического изображения, которое должно быть визуализировано, на основе коэффициента использования памяти для предыдущего графического изображения.
RU2008146519/08A 2006-04-26 2007-04-24 Графическая система с конфигурируемыми кэшами RU2412469C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/412,678 2006-04-26
US11/412,678 US8766995B2 (en) 2006-04-26 2006-04-26 Graphics system with configurable caches

Publications (2)

Publication Number Publication Date
RU2008146519A RU2008146519A (ru) 2010-06-10
RU2412469C2 true RU2412469C2 (ru) 2011-02-20

Family

ID=38457539

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2008146519/08A RU2412469C2 (ru) 2006-04-26 2007-04-24 Графическая система с конфигурируемыми кэшами

Country Status (9)

Country Link
US (1) US8766995B2 (ru)
EP (1) EP2011079B1 (ru)
JP (1) JP4938843B2 (ru)
KR (1) KR101018999B1 (ru)
CN (1) CN101427282B (ru)
BR (1) BRPI0712834A2 (ru)
CA (1) CA2649567C (ru)
RU (1) RU2412469C2 (ru)
WO (1) WO2007127745A1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2604985C2 (ru) * 2014-11-11 2016-12-20 Федеральное государственное бюджетное образовательное учреждение высшего образования "Воронежский государственный технический университет" (ФГБОУ ВО "ВГТУ", ВГТУ) Способ организации вычислений на графических процессорах для моделирования помехоустойчивости низкоплотностных кодеков

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070268289A1 (en) * 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8884972B2 (en) 2006-05-25 2014-11-11 Qualcomm Incorporated Graphics processor with arithmetic and elementary function units
US8869147B2 (en) 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) * 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
KR20080014402A (ko) * 2006-08-11 2008-02-14 삼성전자주식회사 컴퓨터 그래픽스 데이터 처리방법과 데이터 처리장치
JP2008090673A (ja) * 2006-10-03 2008-04-17 Mitsubishi Electric Corp キャッシュメモリ制御装置
US20080133836A1 (en) * 2006-11-30 2008-06-05 Magid Robert M Apparatus, system, and method for a defined multilevel cache
JP4748609B2 (ja) * 2008-06-06 2011-08-17 株式会社アクセル 画像処理システム
US8688911B1 (en) * 2008-11-25 2014-04-01 Marvell Israel (M.I.S.L) Ltd. Transparent processing core and L2 cache connection
US9142057B2 (en) * 2009-09-03 2015-09-22 Advanced Micro Devices, Inc. Processing unit with a plurality of shader engines
US8766988B2 (en) * 2009-10-09 2014-07-01 Nvidia Corporation Providing pipeline state through constant buffers
EP2513860B1 (en) * 2009-12-16 2018-08-01 Intel Corporation A graphics pipeline scheduling architecture utilizing performance counters
US9058675B2 (en) * 2010-05-29 2015-06-16 Intel Corporation Non-volatile storage for graphics hardware
CN102455885A (zh) * 2010-10-19 2012-05-16 李笑非 有外部存取单元的网络显卡
US9304933B2 (en) 2011-02-18 2016-04-05 Intel Corporation Techniques to request stored data from a memory
US9734548B2 (en) * 2012-10-26 2017-08-15 Nvidia Corporation Caching of adaptively sized cache tiles in a unified L2 cache with surface compression
CN107833268B (zh) 2012-11-02 2021-05-14 想象技术有限公司 用于图形渲染的几何图形处理方法和图形渲染系统
CN103810742B (zh) * 2012-11-05 2018-09-14 正谓有限公司 图像渲染方法和系统
US8736629B1 (en) * 2012-11-21 2014-05-27 Ncomputing Inc. System and method for an efficient display data transfer algorithm over network
CN103247068B (zh) * 2013-04-03 2016-03-30 上海晨思电子科技有限公司 一种渲染方法和装置
KR102079657B1 (ko) * 2013-05-23 2020-02-20 에스케이플래닛 주식회사 캐시 데이터와 현재 데이터의 실시간 처리 현황 및 처리 순위를 보여주기 위한 장치 및 방법
US9507961B2 (en) * 2013-07-01 2016-11-29 Qualcomm Incorporated System and method for providing secure access control to a graphics processing unit
US9224187B2 (en) * 2013-09-27 2015-12-29 Apple Inc. Wavefront order to scan order synchronization
KR102147356B1 (ko) 2013-09-30 2020-08-24 삼성전자 주식회사 캐시 메모리 시스템 및 그 동작방법
KR102101834B1 (ko) 2013-10-08 2020-04-17 삼성전자 주식회사 영상 처리 장치 및 방법
KR102258100B1 (ko) * 2014-11-18 2021-05-28 삼성전자주식회사 텍스쳐 처리 방법 및 장치
US10558460B2 (en) 2016-12-14 2020-02-11 Qualcomm Incorporated General purpose register allocation in streaming processor
US10726519B2 (en) * 2017-09-25 2020-07-28 Arm Limited Cache arrangement for graphics processing systems
US11205243B2 (en) 2020-01-14 2021-12-21 Arm Limited Data processing systems
US11625332B2 (en) 2020-01-14 2023-04-11 Arm Limited Cache miss handling for read operations in data processing systems
US11789867B2 (en) 2020-01-14 2023-10-17 Arm Limited Cache arrangement for data processing systems
US20230206559A1 (en) * 2021-12-27 2023-06-29 Advanced Micro Devices, Inc. Graphics discard engine

Family Cites Families (131)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3304418A (en) * 1964-03-02 1967-02-14 Olivetti & Co Spa Binary-coded decimal adder with radix correction
US4079452A (en) * 1976-06-15 1978-03-14 Bunker Ramo Corporation Programmable controller with modular firmware for communication control
NL7807314A (nl) * 1978-07-06 1980-01-08 Philips Nv Inrichting voor het vergroten van de lengte van een logisch computeradres.
US7006881B1 (en) * 1991-12-23 2006-02-28 Steven Hoffberg Media recording device with remote graphic user interface
US5903454A (en) * 1991-12-23 1999-05-11 Hoffberg; Linda Irene Human-factored interface corporating adaptive pattern recognition based controller apparatus
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
EP0627682B1 (en) * 1993-06-04 1999-05-26 Sun Microsystems, Inc. Floating-point processor for a high performance three dimensional graphics accelerator
JPH0784851A (ja) 1993-09-13 1995-03-31 Toshiba Corp 共有データ管理方法
JP3579461B2 (ja) * 1993-10-15 2004-10-20 株式会社ルネサステクノロジ データ処理システム及びデータ処理装置
US5509129A (en) * 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations
GB2285524B (en) 1994-01-11 1998-02-04 Advanced Risc Mach Ltd Data memory and processor bus
EP0676691A3 (en) 1994-04-06 1996-12-11 Hewlett Packard Co Device for saving and restoring registers in a digital computer.
US6279099B1 (en) * 1994-04-29 2001-08-21 Sun Microsystems, Inc. Central processing unit with integrated graphics functions
US5694143A (en) 1994-06-02 1997-12-02 Accelerix Limited Single chip frame buffer and graphics accelerator
US5598546A (en) * 1994-08-31 1997-01-28 Exponential Technology, Inc. Dual-architecture super-scalar pipeline
US5798770A (en) 1995-03-24 1998-08-25 3Dlabs Inc. Ltd. Graphics rendering system with reconfigurable pipeline sequence
US5777629A (en) * 1995-03-24 1998-07-07 3Dlabs Inc. Ltd. Graphics subsystem with smart direct-memory-access operation
US5872729A (en) 1995-11-27 1999-02-16 Sun Microsystems, Inc. Accumulation buffer method and apparatus for graphical image processing
US5794016A (en) 1995-12-11 1998-08-11 Dynamic Pictures, Inc. Parallel-processor graphics architecture
US5793385A (en) * 1996-06-12 1998-08-11 Chips And Technologies, Inc. Address translator for a shared memory computing system
US6226604B1 (en) * 1996-08-02 2001-05-01 Matsushita Electric Industrial Co., Ltd. Voice encoder, voice decoder, recording medium on which program for realizing voice encoding/decoding is recorded and mobile communication apparatus
US5949920A (en) * 1996-08-13 1999-09-07 Hewlett-Packard Co. Reconfigurable convolver circuit
JP2970553B2 (ja) * 1996-08-30 1999-11-02 日本電気株式会社 マルチスレッド実行方法
TW360823B (en) * 1996-09-30 1999-06-11 Hitachi Ltd Data processor and graphic processor
US6614847B1 (en) * 1996-10-25 2003-09-02 Texas Instruments Incorporated Content-based video compression
US5870579A (en) * 1996-11-18 1999-02-09 Advanced Micro Devices, Inc. Reorder buffer including a circuit for selecting a designated mask corresponding to an instruction that results in an exception
US5913925A (en) * 1996-12-16 1999-06-22 International Business Machines Corporation Method and system for constructing a program including out-of-order threads and processor and method for executing threads out-of-order
US5831640A (en) * 1996-12-20 1998-11-03 Cirrus Logic, Inc. Enhanced texture map data fetching circuit and method
US5991865A (en) * 1996-12-31 1999-11-23 Compaq Computer Corporation MPEG motion compensation using operand routing and performing add and divide in a single instruction
US6697063B1 (en) * 1997-01-03 2004-02-24 Nvidia U.S. Investment Company Rendering pipeline
US6549209B1 (en) * 1997-05-22 2003-04-15 Kabushiki Kaisha Sega Enterprises Image processing device and image processing method
US5958041A (en) * 1997-06-26 1999-09-28 Sun Microsystems, Inc. Latency prediction in a pipelined microarchitecture
US6195734B1 (en) * 1997-07-02 2001-02-27 Micron Technology, Inc. System for implementing a graphic address remapping table as a virtual register file in system memory
JP4634548B2 (ja) 1997-11-04 2011-02-16 ヒューレット・パッカード・カンパニー マルチプロセッサコンピュータシステム及びその動作方法
US6654428B1 (en) * 1998-01-13 2003-11-25 Massachusetts Institute Of Technology Systems and methods for wireless communications
US6092175A (en) * 1998-04-02 2000-07-18 University Of Washington Shared register storage mechanisms for multithreaded computer systems with out-of-order execution
US6188411B1 (en) * 1998-07-02 2001-02-13 Neomagic Corp. Closed-loop reading of index registers using wide read and narrow write for multi-threaded system
US7068272B1 (en) * 2000-05-31 2006-06-27 Nvidia Corporation System, method and article of manufacture for Z-value and stencil culling prior to rendering in a computer graphics processing pipeline
JP3869947B2 (ja) * 1998-08-04 2007-01-17 株式会社日立製作所 並列処理プロセッサ、および、並列処理方法
JP3279260B2 (ja) 1998-08-07 2002-04-30 日本電気株式会社 3次元グラフィックス描画装置
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6693719B1 (en) * 1998-09-16 2004-02-17 Texas Instruments Incorporated Path to trapezoid decomposition of polygons for printing files in a page description language
US6163839A (en) * 1998-09-30 2000-12-19 Intel Corporation Non-stalling circular counterflow pipeline processor with reorder buffer
GB2343601B (en) 1998-11-06 2002-11-27 Videologic Ltd Shading and texturing 3-dimensional computer generated images
US7088865B2 (en) 1998-11-20 2006-08-08 Nikon Corporation Image processing apparatus having image selection function, and recording medium having image selection function program
US6219769B1 (en) * 1998-12-09 2001-04-17 Advanced Micro Devices, Inc. Method and system for origin-sensitive memory control and access in data processing systems
US7904187B2 (en) * 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US6480941B1 (en) 1999-02-23 2002-11-12 International Business Machines Corporation Secure partitioning of shared memory based multiprocessor system
US7130443B1 (en) * 1999-03-18 2006-10-31 British Broadcasting Corporation Watermarking
US6493741B1 (en) 1999-10-01 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit
US6964009B2 (en) * 1999-10-21 2005-11-08 Automated Media Processing Solutions, Inc. Automated media delivery system
US6792575B1 (en) * 1999-10-21 2004-09-14 Equilibrium Technologies Automated processing and delivery of media to web servers
US6577762B1 (en) * 1999-10-26 2003-06-10 Xerox Corporation Background surface thresholding
US6574725B1 (en) * 1999-11-01 2003-06-03 Advanced Micro Devices, Inc. Method and mechanism for speculatively executing threads of instructions
US6417851B1 (en) * 1999-12-06 2002-07-09 Nvidia Corporation Method and apparatus for lighting module in a graphics processor
JP3485052B2 (ja) * 1999-12-16 2004-01-13 日本電気株式会社 参照画像作成方法、パターン検査装置及び参照画像作成プログラムを記録した記録媒体
US6516443B1 (en) * 2000-02-08 2003-02-04 Cirrus Logic, Incorporated Error detection convolution code and post processor for correcting dominant error events of a trellis sequence detector in a sampled amplitude read channel for disk storage systems
JP2001222712A (ja) 2000-02-08 2001-08-17 Sega Corp 画像処理装置、畳み込み積分回路及びその方法
US6807620B1 (en) * 2000-02-11 2004-10-19 Sony Computer Entertainment Inc. Game system with graphics processor
JP2001236221A (ja) 2000-02-21 2001-08-31 Keisuke Shindo マルチスレッドを利用するパイプライン並列プロセッサ
US6738510B2 (en) * 2000-02-22 2004-05-18 Olympus Optical Co., Ltd. Image processing apparatus
US6940545B1 (en) * 2000-02-28 2005-09-06 Eastman Kodak Company Face detecting camera and method
US6988008B2 (en) 2000-03-10 2006-01-17 Adept Technology, Inc. Smart camera
US6891533B1 (en) 2000-04-11 2005-05-10 Hewlett-Packard Development Company, L.P. Compositing separately-generated three-dimensional images
US6952440B1 (en) * 2000-04-18 2005-10-04 Sirf Technology, Inc. Signal detector employing a Doppler phase correction system
WO2002015000A2 (en) 2000-08-16 2002-02-21 Sun Microsystems, Inc. General purpose processor with graphics/media support
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6636214B1 (en) * 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
JP3580789B2 (ja) 2000-10-10 2004-10-27 株式会社ソニー・コンピュータエンタテインメント データ通信システム及び方法、コンピュータプログラム、記録媒体
GB2369016B (en) * 2000-11-09 2004-06-09 Sony Uk Ltd Receiver
US6907520B2 (en) * 2001-01-11 2005-06-14 Sun Microsystems, Inc. Threshold-based load address prediction and new thread identification in a multithreaded microprocessor
US6950927B1 (en) * 2001-04-13 2005-09-27 The United States Of America As Represented By The Secretary Of The Navy System and method for instruction-level parallelism in a programmable multiple network processor environment
US6515443B2 (en) 2001-05-21 2003-02-04 Agere Systems Inc. Programmable pulse width modulated waveform generator for a spindle motor controller
US20040172631A1 (en) * 2001-06-20 2004-09-02 Howard James E Concurrent-multitasking processor
US6744433B1 (en) * 2001-08-31 2004-06-01 Nvidia Corporation System and method for using and collecting information from a plurality of depth layers
US8342935B1 (en) 2001-09-28 2013-01-01 Bally Gaming, Inc. Integrated display and input system
US6999076B2 (en) * 2001-10-29 2006-02-14 Ati Technologies, Inc. System, method, and apparatus for early culling
US20030167379A1 (en) * 2002-03-01 2003-09-04 Soltis Donald Charles Apparatus and methods for interfacing with cache memory
US6871264B2 (en) * 2002-03-06 2005-03-22 Hewlett-Packard Development Company, L.P. System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits
WO2003083680A1 (en) * 2002-03-22 2003-10-09 Deering Michael F Scalable high performance 3d graphics
US6825843B2 (en) * 2002-07-18 2004-11-30 Nvidia Corporation Method and apparatus for loop and branch instructions in a programmable graphics pipeline
US6931489B2 (en) * 2002-08-12 2005-08-16 Hewlett-Packard Development Company, L.P. Apparatus and methods for sharing cache among processors
US7633506B1 (en) 2002-11-27 2009-12-15 Ati Technologies Ulc Parallel pipeline graphics system
US7268785B1 (en) * 2002-12-19 2007-09-11 Nvidia Corporation System and method for interfacing graphics program modules
US7268779B2 (en) 2002-12-24 2007-09-11 Intel Corporation Z-buffering techniques for graphics rendering
US7146486B1 (en) 2003-01-29 2006-12-05 S3 Graphics Co., Ltd. SIMD processor with scalar arithmetic logic units
KR100510131B1 (ko) * 2003-01-29 2005-08-26 삼성전자주식회사 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법
US7145565B2 (en) * 2003-02-27 2006-12-05 Nvidia Corporation Depth bounds testing
US7612803B2 (en) 2003-06-10 2009-11-03 Zoran Corporation Digital camera with reduced image buffer memory and minimal processing for recycling through a service center
US7372484B2 (en) 2003-06-26 2008-05-13 Micron Technology, Inc. Method and apparatus for reducing effects of dark current and defective pixels in an imaging device
US7015913B1 (en) * 2003-06-27 2006-03-21 Nvidia Corporation Method and apparatus for multithreaded processing of data in a programmable graphics processor
US7088371B2 (en) * 2003-06-27 2006-08-08 Intel Corporation Memory command handler for use in an image signal processor having a data driven architecture
US7239322B2 (en) * 2003-09-29 2007-07-03 Ati Technologies Inc Multi-thread graphic processing system
US7702817B2 (en) * 2003-10-28 2010-04-20 Microsoft Corporation Wireless network access technologies for retrieving a virtual resource via a plurality of wireless network interfaces
GB2409061B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd Table lookup operation within a data processing system
US7015914B1 (en) * 2003-12-10 2006-03-21 Nvidia Corporation Multiple data buffers for processing graphics data
US7027062B2 (en) * 2004-02-27 2006-04-11 Nvidia Corporation Register based queuing for texture requests
US20050195198A1 (en) * 2004-03-03 2005-09-08 Anderson Michael H. Graphics pipeline and method having early depth detection
US7030878B2 (en) * 2004-03-19 2006-04-18 Via Technologies, Inc. Method and apparatus for generating a shadow effect using shadow volumes
US7196708B2 (en) * 2004-03-31 2007-03-27 Sony Corporation Parallel vector processing
US7330988B2 (en) * 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US7873776B2 (en) * 2004-06-30 2011-01-18 Oracle America, Inc. Multiple-core processor with support for multiple virtual processors
US7339592B2 (en) * 2004-07-13 2008-03-04 Nvidia Corporation Simulating multiported memories using lower port count memories
US7355603B2 (en) * 2004-08-04 2008-04-08 Nvidia Corporation Filtering unit for floating-point texture data
US7538765B2 (en) * 2004-08-10 2009-05-26 Ati International Srl Method and apparatus for generating hierarchical depth culling characteristics
US6972769B1 (en) 2004-09-02 2005-12-06 Nvidia Corporation Vertex texture cache returning hits out of order
US7388588B2 (en) * 2004-09-09 2008-06-17 International Business Machines Corporation Programmable graphics processing engine
JP2006099422A (ja) 2004-09-29 2006-04-13 Konica Minolta Medical & Graphic Inc 画像処理装置、およびプログラム
US7576737B2 (en) 2004-09-24 2009-08-18 Konica Minolta Medical & Graphic, Inc. Image processing device and program
US7684079B2 (en) * 2004-12-02 2010-03-23 Canon Kabushiki Kaisha Image forming apparatus and its control method
US20060136919A1 (en) * 2004-12-17 2006-06-22 Sun Microsystems, Inc. System and method for controlling thread suspension in a multithreaded processor
US7358502B1 (en) 2005-05-06 2008-04-15 David Appleby Devices, systems, and methods for imaging
US20070030280A1 (en) * 2005-08-08 2007-02-08 Via Technologies, Inc. Global spreader and method for a parallel graphics processor
US7557832B2 (en) 2005-08-12 2009-07-07 Volker Lindenstruth Method and apparatus for electronically stabilizing digital images
US7508396B2 (en) * 2005-09-28 2009-03-24 Silicon Integrated Systems Corp. Register-collecting mechanism, method for performing the same and pixel processing system employing the same
US7447873B1 (en) 2005-11-29 2008-11-04 Nvidia Corporation Multithreaded SIMD parallel processor with loading of groups of threads
JP4920966B2 (ja) 2005-12-21 2012-04-18 キヤノン株式会社 画像形成装置
CN101359284B (zh) * 2006-02-06 2011-05-11 威盛电子股份有限公司 处理数个不同数据格式的乘法累加单元及其方法
US8860721B2 (en) * 2006-03-28 2014-10-14 Ati Technologies Ulc Method and apparatus for processing pixel depth information
US8933933B2 (en) 2006-05-08 2015-01-13 Nvidia Corporation Optimizing a graphics rendering pipeline using early Z-mode
US20070268289A1 (en) 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8884972B2 (en) 2006-05-25 2014-11-11 Qualcomm Incorporated Graphics processor with arithmetic and elementary function units
US8869147B2 (en) 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
JP4675854B2 (ja) * 2006-07-25 2011-04-27 株式会社東芝 パターン評価方法と評価装置及びパターン評価プログラム
US8345053B2 (en) * 2006-09-21 2013-01-01 Qualcomm Incorporated Graphics processors with parallel scheduling and execution of threads
JP2008219523A (ja) * 2007-03-05 2008-09-18 Canon Inc 撮像装置及びその制御方法
US7683962B2 (en) * 2007-03-09 2010-03-23 Eastman Kodak Company Camera using multiple lenses and image sensors in a rangefinder configuration to provide a range map
WO2009079094A1 (en) 2007-12-14 2009-06-25 Lsi Corporation Systems and methods for fly-height control using servo address mark data
JP5255068B2 (ja) * 2007-12-14 2013-08-07 エルエスアイ コーポレーション 記憶デバイスにおける適応cbd推定のためのシステムおよび方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2604985C2 (ru) * 2014-11-11 2016-12-20 Федеральное государственное бюджетное образовательное учреждение высшего образования "Воронежский государственный технический университет" (ФГБОУ ВО "ВГТУ", ВГТУ) Способ организации вычислений на графических процессорах для моделирования помехоустойчивости низкоплотностных кодеков

Also Published As

Publication number Publication date
BRPI0712834A2 (pt) 2012-07-24
CA2649567C (en) 2012-01-17
CN101427282B (zh) 2013-02-13
JP4938843B2 (ja) 2012-05-23
KR20090026124A (ko) 2009-03-11
US20070252843A1 (en) 2007-11-01
EP2011079A1 (en) 2009-01-07
CA2649567A1 (en) 2007-11-08
US8766995B2 (en) 2014-07-01
KR101018999B1 (ko) 2011-03-04
WO2007127745A1 (en) 2007-11-08
EP2011079B1 (en) 2019-02-13
RU2008146519A (ru) 2010-06-10
CN101427282A (zh) 2009-05-06
JP2009535710A (ja) 2009-10-01

Similar Documents

Publication Publication Date Title
RU2412469C2 (ru) Графическая система с конфигурируемыми кэшами
US9214007B2 (en) Graphics processor having unified cache system
US8089486B2 (en) Tiled prefetched and cached depth buffer
US7944441B2 (en) Compression and decompression of data using plane equations
US6630933B1 (en) Method and apparatus for compression and decompression of Z data
McCormack et al. Neon: a single-chip 3d workstation graphics accelerator
CN105556487B (zh) 对页驻留的条件性页错误控制
EP3108452B1 (en) Shader pipeline with shared data channels
US10055883B2 (en) Frustum tests for sub-pixel shadows
US20080117221A1 (en) Early kill removal graphics processing system and method
US6674443B1 (en) Memory system for accelerating graphics operations within an electronic device
EP3350766B1 (en) Storing bandwidth-compressed graphics data
US9349210B2 (en) Methods of and apparatus for using textures in graphics processing systems
US20070268289A1 (en) Graphics system with dynamic reposition of depth engine
KR20190005766A (ko) 그래픽 처리
US6587113B1 (en) Texture caching with change of update rules at line end
WO2006007127A2 (en) A kill bit graphics processing system and method
US20060007234A1 (en) Coincident graphics pixel scoreboard tracking system and method
US6744438B1 (en) Texture caching with background preloading
US20140152684A1 (en) Methods of and apparatus for using textures in graphics processing systems
CN112734897A (zh) 一种图元光栅化触发的图形处理器深度数据预取方法
US8687010B1 (en) Arbitrary size texture palettes for use in graphics systems
WO2023094829A1 (en) Cache arrangements in data processing systems
Park et al. A mid-texturing pixel rasterization pipeline architecture for 3D rendering processors

Legal Events

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

Effective date: 20190425