CN103886546A - 用标准处理单元的图形处理单元和图形处理单元构建方法 - Google Patents
用标准处理单元的图形处理单元和图形处理单元构建方法 Download PDFInfo
- Publication number
- CN103886546A CN103886546A CN201310138563.2A CN201310138563A CN103886546A CN 103886546 A CN103886546 A CN 103886546A CN 201310138563 A CN201310138563 A CN 201310138563A CN 103886546 A CN103886546 A CN 103886546A
- Authority
- CN
- China
- Prior art keywords
- unit
- general porcess
- interface
- accelerator
- graphics pipeline
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 30
- 238000004519 manufacturing process Methods 0.000 claims abstract description 5
- 230000006870 function Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 12
- 238000004088 simulation Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3888—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K13/00—Apparatus or processes specially adapted for manufacturing or adjusting assemblages of electric components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10T—TECHNICAL SUBJECTS COVERED BY FORMER US CLASSIFICATION
- Y10T29/00—Metal working
- Y10T29/49—Method of mechanical manufacture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Manufacturing & Machinery (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Advance Control (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
公开了采用通用处理单元作为图形管线的可编程功能单元以及制造图形处理单元的方法。在一个实施例中,图形管线包括:(1)加速器,(2)耦连到加速器中的每一个的输入输出接口和(3)耦连到输入输出接口并配置为图形管线的可编程功能单元的通用处理单元,通用处理单元配置为经由输入输出接口发出矢量指令到用于可编程功能单元的矢量数据路径。
Description
技术领域
本申请总地针对图形处理单元(GPU),并且更具体地,针对GPU的部件。
背景技术
在传统的GPU中,固定功能单元静态地连接在一起以形成固定功能图形管线。每个固定功能单元或固定功能级的输出数据包设计为与下游的固定功能单元的输入数据包相匹配。更灵活的方法是在软件中定义图形管线为运行在可编程处理器上的程序。在这类管线中,利用经由规则的通用存储器系统所移动的数据而在软件中实现功能级。
发明内容
一方面,公开了一种图形管线。在一个实施例中,图形管线包括:(1)加速器,(2)耦连到加速器中的每一个的输入输出接口以及(3)耦连到输入输出接口并配置为图形管线的可编程功能单元的通用处理单元,该通用处理单元配置为经由输入输出接口发出矢量指令到用于可编程功能单元的矢量数据路径。
另一方面,公开了一种装置。在一个实施例中,该装置包括:(1)标量处理核心,其编程为仿真图形管线的功能单元以及(2)存储器,其直接耦连到标量处理核心并且包括配置为存储用于图形管线的加速器的输入和输出操作数的图形寄存器。
在又一方面,公开了一种制造图形处理单元的方法。在一个实施例中,该方法包括:(1)将固定功能单元耦连到输入输出接口,(2)将通用处理单元耦连到输入输出接口,(3)对通用处理单元进行编程以仿真图形管线的功能单元以及(4)将矢量数据路径耦连到输入输出接口,其中矢量数据路径与通用处理单元功能单元相关联。
附图说明
现在结合附图参考以下描述,其中:
图1是在其中可以实现本公开的一个或多个方面的计算系统的实施例的框图;
图2示出了根据本公开的原理所构建的图形管线的实施例的框图;以及
图3示出了根据本公开的原理所实行的制造图形管线的方法的流程图。
具体实施方式
在具有软件定义的功能单元的管线中,定制处理器通常用来实现可编程功能级以及经建立以处理并行代码。因此,定制处理器要求必要的修改和关联的代价以实现具体配置为处理并行代码的处理器。虽然专用处理器非常适合于高度并行的代码,但是其不适合于标量代码。
因此,本文所公开的是采用通用处理单元来实现管线的功能级的可编程图形管线。可编程图形管线有利地将功能级的矢量数据路径作为加速器并且将矢量数据路径附加到在图形管线的级间提供可编程的、非静态的连接的输入输出接口。通用处理单元是具有适合于处理标量代码的标量核心的标准处理单元。例如,通用处理单元可以是标准CPU,诸如ARM A9/A15。如本文所公开的,通用处理单元还包括处理器存储器。
加速器是用来对图形管线中的处理进行加速的硬件实现单元。加速器的示例是固定功能光栅器或纹理单元。因此,本公开提供具有通用处理单元的图形管线架构,该通用处理单元将矢量指令作为规则图形请求发出到输入输出接口中。请求是将由加速器之一所实施的工作请求。因此,可以经由将通用处理单元连接到输入输出接口的控制总线来发出矢量指令。在一个实施例中,输入输出接口是如由Albert Meixner所发明的、申请号为13/722,901、题目为“AN INPUT OUTPUT CONNECTOR FOR ACCESSINGGRAPHICS FIXED FUNCTION UNITS IN A SOFTWARE-DEFINEDPIPELINE AND A METHOD OF OPERATING A PIPELINE”的专利申请中所公开的输入输出连接器,其与本公开同日提交并作为参考并入本文。
通用处理单元包括并入本文的、具有图形寄存器的处理器存储器,该图形寄存器配置为包括用于矢量数据路径的输入和输出操作数以及图形管线的其他加速器。在一个实施例中,处理器存储器是L2高速缓存。L2或2级高速缓存是通用处理单元的多级存储架构的一部分。在一些实施例中将处理器存储器建立在通用处理单元的主板中。处理器存储器可以是随机存取存储器(RAM)或另一类型的非易失性存储器。处理器存储器用来最小化通用处理单元上的延迟损失用于在仍然在处理单元的处理核心和矢量路径之间提供大量带宽的同时,共享将通用处理单元连接到输入输出接口的数据路径。
处理器L2高速缓存的大小允许其中所包括的图形寄存器具有大数目的活动矢量寄存器。在一些实施例中,L2高速缓存的大小在大约256KB到大约2MB。在这些实施例中,大约一半的高速缓存用于寄存器,这样64K到512K的寄存器。在一个实施例中,在矢量数据路径237和239中每快速存储器访问(FMA)单元至少32个寄存器的最小值。因此,所公开的可编程图形管线使得大数目的图形线程能够容忍延迟。
通用处理单元不需要是大规模地多线程的。在一个实施例中,通用处理单元设计为支持每协作线程阵列(CTA)一个硬件线程上下文(总共4-8个)以运行每CTA管线仿真代码而不需要软件上下文切换。
在一个实施例中,由输入输出接口按块访问存储在处理器存储器上的数据,例如输入和输出操作数,来以低成本最大化带宽。在一个实施例中,块大小在64字节到256字节的范围内。
在本文所公开的一个实施例中,用于可编程图形管线的处理单元的暂存(scratch)RAM还实现为加速器。因此,多库存储器作为附加加速器提供以支持用于处理单元的暂存RAM,该处理单元要求高度发散的访问。在一些实施例中,图形管线的纹理级可以通过使用用于其数据库的暂存RAM加速器来最小化成本,该数据库也要求高度发散的访问。
本文所提供的图形管线架构有益地允许建立GPU的较低进入障碍。因为采用通用处理单元,所以避免了建立定制处理器所涉及的细节。此外,所创建的加速器大多数是无状态的并且比全定制处理器更容易设计和检验。
考虑可编程方面,管线仿真代码的大部分将运行在标准标量核心上,该标准标量核心降低所需的诸如编译器、调试器和分析器的基础设施的量并且使得比在定制标量核心上更容易达到可接受的性能。
此外,所公开的架构移除或至少减少在通用处理单元和GPU之间的障碍。因为通用处理单元具有对存储在处理器存储器中的所有矢量寄存器的直接访问权,所以可以在几个周期中进行在标量和数据并行部分之间的切换。作为附加的优势,通用处理单元将具有对耦连到输入输出接口的所有加速器的访问权并且可以将它们直接用在其他的标量代码中。
在描述新颖的可编程功能单元的各实施例和与其相关联的方法之前,将描述在其内可以将通用处理单元用在GPU中的计算系统。
图1是在其中可以实现本发明的一个或多个方面的计算系统100的一个实施例的框图。计算系统100包括系统数据总线132、中央CPU102、输入设备108、系统存储器104、图形处理子系统106和显示设备110。在替代实施例中,CPU102、图形处理子系统106的一部分、系统数据总线132或其任意组合可以集成到单个处理单元中。进一步地,图形处理子系统106的功能可以包括在芯片集中或在一些其他类型的专用处理单元或协处理器中。
如所示的,系统数据总线132连接CPU102、输入设备108、系统存储器104和图形处理子系统106。在替代实施例中,系统存储器100可以直接连接到CPU102。CPU102接收来自输入设备108的用户输入、执行存储在系统存储器104中的编程指令、对存储在系统存储器104中的数据进行操作以及将指令和/或数据(即,待完成的工作或任务)发送到图形处理单元116以完成。系统存储器104通常包括用来存储用于由CPU102和图形处理子系统106处理的编程指令和数据的动态随机存取存储器(DRAM)。图形处理子系统106从CPU102接收所传送的工作并采用其图形处理单元(GPU)116处理工作。在该实施例中,GPU116完成工作以渲染并在显示设备110上显示图形图像。在其他实施例中,GPU116或图形处理子系统106作为整体可以用于非图形处理。
还如所示的,系统存储器104包括应用程序112、应用编程接口(API)114和图形处理单元(GPU)驱动程序115。应用程序112生成对API114的调用以通常以图形图像序列的形式产生期望的结果集。
图形处理子系统106包括GPU116、片上GPU存储器122、片上GPU数据总线136、GPU本地存储器120和GPU数据总线134。GPU116配置为经由片上GPU数据总线136与片上GPU存储器122通信以及经由GPU数据总线134与GPU本地存储器120通信。GPU116可以接收由CPU102所传送的指令、处理指令以渲染图形数据和图像、以及将这些图像存储在GPU本地存储器120中。随后,GPU116可以在显示设备110上显示存储在GPU本地存储器120中的某些图形图像。
GPU116包括加速器117、IO接口118和通用处理单元119。加速器117是加速通用处理单元119的处理的、硬件实现的处理块或单元。加速器117包括具有配置为实施专用功能的电路的、常规的固定功能单元。加速器117还包括与通用处理单元119相关联的矢量数据路径和多库存储器。
IO接口118配置为将通用处理单元119耦连到加速器117中的每一个并提供在软件和硬件格式之间的必要转换以允许在通用处理单元119和加速器117之间的请求和响应的通信。IO接口118提供具有动态定义的级间连接而非静态连接的可编程管线。IO接口118可以在通用处理单元119和加速器117之间传达各状态。输入和输出也在通用处理单元119的软件友好格式和加速器的硬件友好格式之间转译。此外,IO接口118在软件友好格式和硬件友好格式之间转译状态。在一个实施例中,IO接口有利地在跨所有加速器117和通用处理单元119而共享的单个处理块中提供所有上述功能。因此,IO接口有利地提供包括将通用处理单元119动态连接到加速器117所必要的逻辑的单个接口以形成图形管线并管理其间的指令级通信。IO连接器包括提供双向连接的多个部件,双向连接包括到通用处理单元119的标量处理器核心的双向控制连接和到通用处理单元119的处理器存储器的双向数据连接。
通用处理单元119是具有适合于处理标量代码的标量核心的标准处理器。通用处理单元119还包括直接连接到标量处理器核心的处理器存储器。通过直接连接,处理器存储器实现为通用处理单元119的一部分使得标量处理器核心可以在不采用IO接口118的情况下与其通信。因此,暂时转向图2,处理器存储器214和CPU210二者均是通用处理单元119的一部分并且CPU210不通过IO接口118访问处理器存储器214。在一个实施例中,CPU102可以实现为用于GPU116的通用处理单元并且经由系统数据总线132和IO接口118与加速器通信。因此,CPU102可以与通用处理单元119一起使用或者代替通用处理单元119使用。
在一些实施例中通用处理单元119完全取代CPU102而不是如所示出的共存。在该配置中,在GPU本地存储器120和系统存储器104之间没有区别。其用一个共享存储器所取代。例如,可以移除CPU102和系统存储器104并且应用程序112、API114和GPU驱动程序115驻留在GPU本地存储器120中并且由通用处理单元119执行。以下关于图2来论述根据本公开的原理的图形管线的实施例的更多细节。
GPU116可以配备任意量的片上GPU存储器122和GPU本地存储器120,包括一个也没有,并且可以以任意组合使用片上GPU存储器122、GPU本地存储器120和系统存储器104来进行存储器操作。
片上GPU存储器122配置为包括GPU编程代码128和片上缓冲区130。可以经由系统数据总线132将GPU编程128从GPU驱动程序115传送到片上GPU存储器122。
GPU本地存储器120通常包括比较便宜的片外动态随机存取存储器(DRAM)并且还用来存储由GPU116所使用的数据和编程。如所示的,GPU本地存储器120包括帧缓冲区126。帧缓冲区126存储用于可以用来驱动显示设备110的至少一个二维表面的数据。此外,帧缓冲区126可以包括多于一个的二维表面以使得GPU116可以渲染到一个二维表面,同时第二二维表面用来驱动显示设备110。
显示设备110是能够播送与输入数据信号相对应的可视图像的一个或多个输出设备。例如,可以使用阴极射线管(CRT)监视器、液晶显示器或任意其他合适的显示系统来建立显示设备。通常通过扫描出存储在帧缓冲区126中的图像数据的一帧或多帧的内容来生成到显示设备110的输入数据信号。
已经描述了在其内可以体现或实行所公开的可编程图形管线和方法的计算系统,将在GPU200的环境下描述可编程图形管线的特定实施例。
图2示出了根据本公开的原理所构建的可编程图形管线200的实施例的框图。可编程图形管线200包括通用处理单元210、IO接口220和加速器230。
通用处理单元210是具有处理核心212和处理器存储器214的标准处理单元。处理器核心212是配置为处理标量代码的标量核心。处理器存储器214并入为通用处理单元210的一部分。处理器存储器214配置为存储将由处理核心212所处理的数据或将发送到加速器230用于处理的数据。在一个实施例中,处理器存储器214是L2高速缓存。在不同实施例中,处理器存储器214是随机存取存储器(RAM)或暂存器。
处理器存储器214包括图形寄存器堆215。图形寄存器堆215配置为包括加速器数据,该加速器数据包括用于加速器230的输入和输出操作数。图形寄存器堆215配置为包括加速器230的活动矢量堆。活动矢量是目前正在图形管线200中加以处理的矢量或矢量数据。
通用处理单元210经由两个双向连接而连接到IO接口220。如图2所示,处理核心212经由双向控制连接213连接到IO接口220并且处理器存储器214经由双向数据连接217连接到IO接口220。在一个实施例中,双向控制连接213和双向数据连接217是大小确定的、位置确定的并且端接的以至少提供本文所描述的与其相关联的通信的常规连接器。
IO接口220是将通用处理单元210连接到加速器230以形成图形管线的单个接口。IO接口220包括配置为在通用处理单元210和加速器230之间提供非永久性的连接并且提供适当转换以允许对其间的请求和响应进行通信和处理的多个部件。在一个实施例中,IO接口220提供在通用处理单元210和加速器230之间的动态连接用于由通用处理单元210所生成的每个请求。请求是对数据实施动作或工作的指令或命令。由处理核心212生成请求用于加速器230之一实施。作为请求的结果由特定加速器230之一生成或提供响应。与每个请求相关联的是加速器230用来处理请求的参数和状态信息。在一些实施例中,IO接口220是图1的IO接口118。
加速器230是配置为加速图形管线200的处理的硬件实现的单元。加速器230包括三个固定功能单元231、232和233。固定功能单元231、232、233是通常在GPU中所找到的固定功能单元。固定功能单元231、232、233中的每一个配置有专用于实施图形管线的特定功能的必要电路。在一个实施例中,固定功能单元231、232和233分别是几何协助级、表面协助级和纹理级。本领域技术人员将理解可以采用其他类型的固定功能单元作为加速器。
加速器230还包括多库存储器235、表示为237的矢量数据路径A和表示为239的矢量数据路径B。与实现在配置为操作高度并行代码的专用处理器上的可编程功能单元相反,通用处理单元210不包括矢量数据路径或暂存RAM。相反,这些部件的功能已经放置在可编程处理器之外并且作为加速器以固定格式进行放置。因此,处理核心212将矢量指令作为规则图形请求发出到特定矢量数据路径,即矢量数据路径A237或矢量数据路径B239。经由双向控制连接213将矢量指令传达到IO接口220。IO接口220将软件格式矢量指令转译为用于适当矢量数据路径的硬件格式并且经由具体专用于单独一个加速器230的加速器连接来向其传达矢量指令。专用加速器连接在图2中一般表示为元件240并且具体表示为元件241、242、243、244、245和246。
在图2中,加速器中的两个,即固定功能单元233和多库存储器235经由单元连接器248和单元连接器249直接耦连在一起。单元连接器248、249提供在两个不同加速器230之间的访问。对于可编程图形管线200,单元连接器248、249提供通信路径以用多库存储器235传送和接收数据。因此,单元连接器248、249可以用来通过允许由固定功能单元233共享多库存储器235来减少或最小化图形管线的成本。例如,如上所述,固定功能单元233可以是通常要求存储器允许高度发散的访问的纹理级。利用单元连接器248、249,纹理级可以将多库存储器235用于其纹理高速缓存数据库。在一个实施例中,多库存储器235可以是配置为用于高度发散的访问的暂存RAM。在一个实施例中,单元连接器248、249和专用加速器连接240是大小确定的、位置确定的并且端接的以至少提供本文所描述的与其相关联的通信的常规连接器。
图3示出了根据本公开的原理所实行的制造图形管线的方法300的流程图。产生的图形管线可以是例如图2的可编程图形管线200或GPU116的图形管线。方法300始于步骤305。
在步骤310,固定功能单元耦连到输入输出接口。输入输出接口可以是IO接口118或IO接口220。在一个实施例中,多个固定功能单元耦连到输入输出接口。固定功能单元中的每一个可以是常规的固定功能单元。
在步骤320中,通用处理单元耦连到输入输出接口。在步骤330中,对通用处理单元进行编程以仿真图形管线的功能单元。通用处理单元包括处理核心和处理器存储器。在一个实施例中,处理核心是标量核心并且处理器存储器是L2高速缓存。双向控制和数据连接可以用来将输入输出接口耦连到通用处理单元。
在步骤340中,处理器存储器配置为用于图形管线的图形寄存器。在一个实施例中,仅处理器存储器的一部分配置为图形寄存器。
在步骤350中,矢量数据路径耦连到输入输出接口。矢量数据路径是与通用处理单元功能单元相关联的硬件实现的加速器。从可编程处理单元的处理器核心移出矢量处理允许现成的CPU用于可编程功能单元。因此,可以用CPU取代流多处理器。之后方法300在步骤330结束。
所公开的架构提供许多优势,包括建立GPU的较低进入障碍。因为架构可以采用现有的CPU,所以可以避免建立定制处理器所涉及的许多并发情况和细节。加速器大多是无状态的并且比全处理器更容易设计和检验。在软件方面,管线仿真代码的大部分可以运行在标准标量核心上,该标准标量核心降低所需的基础设施(编译器/调试器/分析器)的量并使得比定制标量核心更容易达到可接受的性能。
在更加技术的方面,所建议的架构可以移除或至少减少在CPU和GPU之间的障碍。因为CPU具有对所有矢量寄存器的直接访问权,所以将在几个周期中进行在标量和数据并行部分之间的切换。作为附带优势,CPU将具有对所有加速器的访问权并且可以将它们直接用在其他的标量代码中。
由于在所公开的架构中部件的松散耦连,所以设计是高度模块化的。对除相同的图形部件之外的CPU部分的一些修改(增加控制总线)和对除相同的图形部件之外的存储器系统的一些修改(增加数据总线到L2),可以连接到不同的CPU实现方案以命中不同的性能比。所公开的架构提供具有松散耦连的矢量和固定功能加速器的未经修改的或大部分未经修改的核心。在一些实施例中,修改包括增加控制总线以发送命令到加速器并接收响应。可以使用现有存储器实现该功能。然而专用控制总线可提高性能。修改还可以包括将高速缓存的寄存器钉住在合适的位置并阻止其被驱逐。
虽然已经对本文所公开的方法进行描述并且参考按特定顺序所实施的特定步骤加以示出,但是应该理解这些步骤可以合并、细分或重新排序以形成等价的方法,而不脱离本公开的教导。因此,除非本文特别指示,步骤的顺序或分组不是本公开的限制。
上述装置、系统或方法的一部分可以由诸如常规的各种数字数据处理器或计算机所体现或实施,其中计算机可以经编程或存储软件指令序列的可执行程序以实施方法步骤中的一个或多个。这类程序的软件指令可以代表算法并且以机器可执行的形式在非暂时性数字数据存储介质上被编码,非暂时性数字数据存储介质例如磁盘或光盘、随机存取存储器(RAM)、磁性硬盘、闪存、和/或只读存储器(ROM),以使得各种类型的数字数据处理器或计算机能够实施上述方法的一个或多个中的一个、多个或所有步骤或者能够实施本文所述的装置的功能。如关于所公开的实施例所论述的,采用具有适合于处理标量代码的标量核心的通用处理单元。
所公开的实施例的一部分可以与具有非暂时性计算机可读介质的计算机存储产品相关,非暂时性计算机可读介质其上具有程序代码用于实施体现装置、系统的一部分或实行本文所阐述的方法步骤的各种计算机实现的操作。本文所使用的非暂时性是指除暂时的、传播的信号之外的所有计算机可读介质。非暂时性计算机可读介质的示例包括但不限于:诸如硬盘、软盘和磁带的磁性介质;诸如CD-ROM盘的光学介质;诸如软光盘的磁光介质;以及特别配置为存储并执行程序代码的硬件设备,诸如ROM和RAM设备。程序代码的示例既包括机器代码又包括文件,该机器代码诸如由编译器所产生,该文件包含可以由计算机使用解译器所执行的较高级代码。
与本申请相关的本领域技术人员应该理解可以对所描述的实施例做出其他和进一步的增加、删除、替代和修改。
Claims (10)
1.一种图形管线,包含:
加速器;
输入输出接口,其耦连到所述加速器中的每一个;以及
通用处理单元,其耦连到所述输入输出接口并且配置为所述图形管线的可编程功能单元,所述通用处理单元配置为经由所述输入输出接口发出矢量指令到用于所述可编程功能单元的矢量数据路径。
2.根据权利要求1所述的图形管线,其中所述通用处理单元包括具有配置为存储用于所述矢量数据路径的输入和输出操作数的图形寄存器的存储器。
3.根据权利要求2所述的图形管线,其中所述存储器是二级高速缓存。
4.根据权利要求2所述的图形管线,其中所述通用处理单元具有对所述图形寄存器的直接访问权。
5.根据权利要求1所述的图形管线,其中所述通用处理单元发出所述矢量指令作为请求。
6.根据权利要求1所述的图形管线,其中所述加速器包括所述矢量数据路径并且所述通用处理单元具有标准标量核心。
7.一种装置,包含:
标量处理核心,其编程为仿真图形管线的功能单元;以及
存储器,其直接耦连到所述标量处理核心并且包括配置为存储用于所述图形管线的加速器的输入和输出操作数的图形寄存器。
8.根据权利要求7所述的装置,其中所述标量处理核心不包括与所述功能单元相关联的矢量数据路径。
9.根据权利要求7所述的装置,其中所述标量处理核心支持每协作线程阵列一个硬件线程上下文。
10.一种采用通用处理单元制造图形处理单元的方法,包含:
将固定功能单元耦连到输入输出接口;
将通用处理单元耦连到所述输入输出接口;
对所述通用处理单元进行编程以仿真图形管线的功能单元;以及
将矢量数据路径耦连到所述输入输出接口,其中所述矢量数据路径与所述通用处理单元功能单元相关联。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/724,233 US9123128B2 (en) | 2012-12-21 | 2012-12-21 | Graphics processing unit employing a standard processing unit and a method of constructing a graphics processing unit |
US13/724,233 | 2012-12-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103886546A true CN103886546A (zh) | 2014-06-25 |
Family
ID=50878756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310138563.2A Pending CN103886546A (zh) | 2012-12-21 | 2013-04-19 | 用标准处理单元的图形处理单元和图形处理单元构建方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9123128B2 (zh) |
CN (1) | CN103886546A (zh) |
DE (1) | DE102013006396A1 (zh) |
TW (1) | TWI550547B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701757A (zh) * | 2016-01-13 | 2016-06-22 | 华南理工大学 | 基于数字水印和图形码的产品防伪方法及装置 |
CN111587407A (zh) * | 2017-11-10 | 2020-08-25 | 辉达公司 | 用于安全且可靠的自主车辆的系统和方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9019284B2 (en) | 2012-12-20 | 2015-04-28 | Nvidia Corporation | Input output connector for accessing graphics fixed function units in a software-defined pipeline and a method of operating a pipeline |
US9417873B2 (en) | 2012-12-28 | 2016-08-16 | Intel Corporation | Apparatus and method for a hybrid latency-throughput processor |
US9361116B2 (en) * | 2012-12-28 | 2016-06-07 | Intel Corporation | Apparatus and method for low-latency invocation of accelerators |
US10140129B2 (en) | 2012-12-28 | 2018-11-27 | Intel Corporation | Processing core having shared front end unit |
US10346195B2 (en) | 2012-12-29 | 2019-07-09 | Intel Corporation | Apparatus and method for invocation of a multi threaded accelerator |
US11768689B2 (en) * | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
US9910675B2 (en) * | 2013-08-08 | 2018-03-06 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for low power computational imaging |
US10001993B2 (en) | 2013-08-08 | 2018-06-19 | Linear Algebra Technologies Limited | Variable-length instruction buffer management |
US9934043B2 (en) | 2013-08-08 | 2018-04-03 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for providing computational imaging pipeline |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6385632B1 (en) * | 1999-06-18 | 2002-05-07 | Advanced Micro Devices, Inc. | Fast CORDIC algorithm with sine governed termination |
US20050237337A1 (en) * | 2000-08-23 | 2005-10-27 | Nintendo Co., Ltd | Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system |
US7158141B2 (en) * | 2002-01-17 | 2007-01-02 | University Of Washington | Programmable 3D graphics pipeline for multimedia applications |
CN101118645A (zh) * | 2006-08-02 | 2008-02-06 | 图诚科技股份有限公司 | 多重图形处理器系统 |
US20080291208A1 (en) * | 2007-05-24 | 2008-11-27 | Gary Keall | Method and system for processing data via a 3d pipeline coupled to a generic video processing unit |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6919896B2 (en) * | 2002-03-11 | 2005-07-19 | Sony Computer Entertainment Inc. | System and method of optimizing graphics processing |
US7146486B1 (en) * | 2003-01-29 | 2006-12-05 | S3 Graphics Co., Ltd. | SIMD processor with scalar arithmetic logic units |
US7213136B2 (en) * | 2003-07-30 | 2007-05-01 | Intel Corporation | Apparatus and method for redundant zero micro-operation removal |
US7324106B1 (en) | 2004-07-27 | 2008-01-29 | Nvidia Corporation | Translation of register-combiner state into shader microcode |
US7788468B1 (en) * | 2005-12-15 | 2010-08-31 | Nvidia Corporation | Synchronization of threads in a cooperative thread array |
US7568189B2 (en) * | 2006-05-03 | 2009-07-28 | Sony Computer Entertainment Inc. | Code translation and pipeline optimization |
US8106914B2 (en) | 2007-12-07 | 2012-01-31 | Nvidia Corporation | Fused multiply-add functional unit |
US7945768B2 (en) * | 2008-06-05 | 2011-05-17 | Motorola Mobility, Inc. | Method and apparatus for nested instruction looping using implicit predicates |
US8539204B2 (en) | 2009-09-25 | 2013-09-17 | Nvidia Corporation | Cooperative thread array reduction and scan operations |
US8966477B2 (en) * | 2011-04-18 | 2015-02-24 | Intel Corporation | Combined virtual graphics device |
JP5829684B2 (ja) | 2011-04-28 | 2015-12-09 | 株式会社ディジタルメディアプロフェッショナル | ヘテロジニアスグラフィックスプロセッサおよびその構成方法 |
US9349209B2 (en) * | 2011-05-27 | 2016-05-24 | Arm Limited | Graphics processing systems |
US8578129B2 (en) * | 2011-12-14 | 2013-11-05 | Advanced Micro Devices, Inc. | Infrastructure support for accelerated processing device memory paging without operating system integration |
US9019284B2 (en) | 2012-12-20 | 2015-04-28 | Nvidia Corporation | Input output connector for accessing graphics fixed function units in a software-defined pipeline and a method of operating a pipeline |
-
2012
- 2012-12-21 US US13/724,233 patent/US9123128B2/en active Active
-
2013
- 2013-04-15 DE DE102013006396.5A patent/DE102013006396A1/de not_active Ceased
- 2013-04-19 CN CN201310138563.2A patent/CN103886546A/zh active Pending
- 2013-04-23 TW TW102114415A patent/TWI550547B/zh not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6385632B1 (en) * | 1999-06-18 | 2002-05-07 | Advanced Micro Devices, Inc. | Fast CORDIC algorithm with sine governed termination |
US20050237337A1 (en) * | 2000-08-23 | 2005-10-27 | Nintendo Co., Ltd | Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system |
US7158141B2 (en) * | 2002-01-17 | 2007-01-02 | University Of Washington | Programmable 3D graphics pipeline for multimedia applications |
CN101118645A (zh) * | 2006-08-02 | 2008-02-06 | 图诚科技股份有限公司 | 多重图形处理器系统 |
US20080291208A1 (en) * | 2007-05-24 | 2008-11-27 | Gary Keall | Method and system for processing data via a 3d pipeline coupled to a generic video processing unit |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701757A (zh) * | 2016-01-13 | 2016-06-22 | 华南理工大学 | 基于数字水印和图形码的产品防伪方法及装置 |
CN105701757B (zh) * | 2016-01-13 | 2020-04-21 | 华南理工大学 | 基于数字水印和图形码的产品防伪方法及装置 |
CN111587407A (zh) * | 2017-11-10 | 2020-08-25 | 辉达公司 | 用于安全且可靠的自主车辆的系统和方法 |
CN111587407B (zh) * | 2017-11-10 | 2024-01-23 | 辉达公司 | 用于安全且可靠的自主车辆的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US9123128B2 (en) | 2015-09-01 |
US20140176569A1 (en) | 2014-06-26 |
TW201426630A (zh) | 2014-07-01 |
TWI550547B (zh) | 2016-09-21 |
DE102013006396A1 (de) | 2014-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103886546A (zh) | 用标准处理单元的图形处理单元和图形处理单元构建方法 | |
US10372428B1 (en) | Dynamic computational acceleration using a heterogeneous hardware infrastructure | |
US10417732B2 (en) | Architecture for high performance, power efficient, programmable image processing | |
US10387989B2 (en) | Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform | |
US10216487B2 (en) | Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure | |
KR101564815B1 (ko) | 다중-프로세서 컴퓨팅 플랫폼에서의 프로세서간 통신 기법들 | |
DE102018126650A1 (de) | Einrichtung, verfahren und systeme für datenspeicherkonsistenz in einem konfigurierbaren räumlichen beschleuniger | |
DE102018005172A1 (de) | Prozessoren, verfahren und systeme mit einem konfigurierbaren räumlichen beschleuniger | |
US20120017066A1 (en) | Low latency massive parallel data processing device | |
US10685423B2 (en) | Determination of per line buffer unit memory allocation | |
EP4071619A1 (en) | Address generation method, related device and storage medium | |
KR20220038694A (ko) | 가속기 회로의 조작을 위한 명령어 | |
CN110427337A (zh) | 基于现场可编程门阵列的处理器内核及其运行方法 | |
CN115658323A (zh) | 基于软硬件协同的fpga潮流计算加速架构和方法 | |
US20160371061A1 (en) | Read-only communication operator | |
Abdelhamid et al. | A scalable many-core overlay architecture on an HBM2-enabled multi-die FPGA | |
CN101751356B (zh) | 用于改进直接存储器存取传送效率的方法、系统和装置 | |
CN114080598A (zh) | 具有数据连接器组件的点对点连接的处理元件 | |
CN105718421B (zh) | 一种面向多个粗粒度动态可重构阵列的数据缓存更新系统 | |
US12111779B2 (en) | Node identification allocation in a multi-tile system with multiple derivatives | |
KR101592375B1 (ko) | 클러스터 시스템 및 클러스터 시스템에서의 통신 방법 | |
CN111966399A (zh) | 指令处理方法、装置及相关产品 | |
Stornaiuolo et al. | FIDA: a framework to automatically integrate FPGA kernels within Data-Science applications | |
US11416960B2 (en) | Shader accessible configurable binning subsystem | |
JP2018206195A (ja) | 演算システム、演算システムの制御方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140625 |
|
WD01 | Invention patent application deemed withdrawn after publication |