RU2412469C2 - Графическая система с конфигурируемыми кэшами - Google Patents
Графическая система с конфигурируемыми кэшами Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control 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, в котором средство назначения множества кэшей содержит средство назначения множества кэшей, по меньшей мере, одному процессорному блоку для каждого графического изображения, которое должно быть визуализировано, на основе коэффициента использования памяти для предыдущего графического изображения.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2604985C2 (ru) * | 2014-11-11 | 2016-12-20 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Воронежский государственный технический университет" (ФГБОУ ВО "ВГТУ", ВГТУ) | Способ организации вычислений на графических процессорах для моделирования помехоустойчивости низкоплотностных кодеков |
Families Citing this family (33)
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)
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推定のためのシステムおよび方法 |
-
2006
- 2006-04-26 US US11/412,678 patent/US8766995B2/en active Active
-
2007
- 2007-04-24 KR KR1020087026998A patent/KR101018999B1/ko active IP Right Grant
- 2007-04-24 BR BRPI0712834-7A patent/BRPI0712834A2/pt not_active Application Discontinuation
- 2007-04-24 EP EP07761214.1A patent/EP2011079B1/en active Active
- 2007-04-24 CA CA2649567A patent/CA2649567C/en not_active Expired - Fee Related
- 2007-04-24 WO PCT/US2007/067325 patent/WO2007127745A1/en active Application Filing
- 2007-04-24 JP JP2009507929A patent/JP4938843B2/ja not_active Expired - Fee Related
- 2007-04-24 RU RU2008146519/08A patent/RU2412469C2/ru not_active IP Right Cessation
- 2007-04-24 CN CN2007800146016A patent/CN101427282B/zh active Active
Cited By (1)
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 |