CN1571991A - 并行分担的单个块变换 - Google Patents

并行分担的单个块变换 Download PDF

Info

Publication number
CN1571991A
CN1571991A CNA018164730A CN01816473A CN1571991A CN 1571991 A CN1571991 A CN 1571991A CN A018164730 A CNA018164730 A CN A018164730A CN 01816473 A CN01816473 A CN 01816473A CN 1571991 A CN1571991 A CN 1571991A
Authority
CN
China
Prior art keywords
graphics
controller
blt
graphics controller
source
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.)
Granted
Application number
CNA018164730A
Other languages
English (en)
Other versions
CN100395734C (zh
Inventor
布里安·朗根多夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1571991A publication Critical patent/CN1571991A/zh
Application granted granted Critical
Publication of CN100395734C publication Critical patent/CN100395734C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2352/00Parallel handling of streams of display data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)

Abstract

一种计算机系统,具有多个图形控制器和多个本地存储器的,用于分担图形和视频功能,包括其每一个并行执行单个块转换“BLT”操作的一部分以便把像素数据块从源转移到图形表面上的目标,以及多个本地存储器,连接到图形控制器并且用于以分配给各图形控制器的指定模式存储源像素数据,其中,每一个都包括一个高速暂存,在请求执行单个BLT操作之时用于存储处于另一图形控制器控制的区域中并且从另一本地存储器中复制来的所有源像素数据。

Description

并行分担的单个块变换
技术领域
本发明涉及计算机系统结构,更具体地,涉及一种使两个图形控制器能够在计算机系统中各自并行执行一部分单块变换(BLT)的装置和方法。
技术背景
计算机图象应用中最常见的操作之一是块变换(通常称为“BLT”或“像素BLT”),用于将一块像素数据从显示存储器的图象表面10的一部分(Asource@12)转移到另一部分(Adestination@14),如图1所示。一系列源地址连同一系列相应的目标地址一同产生。源数据(像素)从源地址读出,然后写入目标地址。除了简单地转移数据,BLT操作还可以在源数据(像素)上执行逻辑操作和其它OPERAND(通常称为光栅操作,或ROP)。在1993年Addison-Wesley出版公司的Foley,VanDam,Feiner和Hughes的《计算机图形原理和实践》(Computer Graphics Principles and Practice)第二版第56-60页中论述了ROP和BLT。BLT操作通常用于在计算机系统中创建或操作图象,例如色彩变换,图象的拉伸和裁剪。结合BLT操作的ROP的实施典型地通过将源和/或目标数据耦合到一个或多个按照所请求的ROP命令执行逻辑操作的逻辑电路中来执行。有许多用于合并源数据、图案和目标数据的可能类型的ROP。参见1994年Addison-Wesley出版公司的Richard F.Ferraro的《EGA,VGA和超级VGA卡程序设计员指南》(Programer’s Guide to the EGA,VGA and Super VGA Cards)第三版第707-712页。除了标准逻辑ROP以外,算术加或减也已经在计算机系统中实现。类似地,除了目标数据以外,也可以包括通常的AWindows@图案,即画笔(brush)。画笔图案典型地是一方块以行排列的像素,用于显示屏幕上的背景填充窗口。画笔图案可以复制到目标数据,或者可以以其它方式与目标数据合并,由指定的ROP类型决定。
BLT和有关的操作典型地由计算机系统的专门硬件例如图形控制器连同其它图形操作一起执行。承担BLT和有关操作的特定硬件通常称为图形引擎,位于图形控制器中。基本BLT操作(具有ROP)可以包括下列一般步骤:将源12的源数据读到临时数据存储器,从其位置随意读取目标数据或其它OPERAND数据,对数据执行ROP,以及将结果写到目标14。
源12和目标14可以允许在重叠区16重叠,如图2所示。但是,BLT操作之前的源像素和目标像素的值必须用于计算目标像素的新值。换句话说,BLT操作以后的图形表面10的状态必须是好象对于整个目标14首先计算结果并存储在临时数据存储器中然后复制到目标14。
传统的计算机系统通过将源12的Aleading edge@复制到目标14来处理重叠源12和目标14。结果在被写为目标14之前所有像素作为源12被读取。但是,如果加入附加图形控制器或者插入现有计算机系统的扩展板用于高级图形应用,只是为了得到正确结果,工作在相同表面上的两个图象控制器就存在同步和一致问题,即使性能不是问题。如果使操作串行化来保证既是源又是目标的像素在作为目标写之前作为源被读取,那么将降低单个计算机系统中多图形控制器的性能优点。
因此,需要为混合型计算机系统中的多图形控制器建立正确的同步,并有效地分配和分担同一图像绘出(rendering)任务以保证一致性,特别在BLT和有关操作期间处理重叠源和目标区时。
附图简述
在考虑结合相应附图时通过参考以下详细说明更好地理解的同时,本发明典型实施例的更全面了解和本发明的许多附带优点将更明显,其中相同的标号表示相同或类似的部件:
图1示出了在图形表面上将像素数据块从源转移到目标的实例块变换(BLT)操作;
图2示出了在源和目标之间有重叠的图形表面上将像素数据块从源转移到目标的实例块变换(BLT)操作;
图3示出了具有实例图形/多媒体平台的实例计算机系统的框图;
图4示出了按照本发明实施例的具有内部图形控制器的主机芯片组的实例计算机系统的框图;
图5示出了按照本发明实施例的具有内部图形控制器和外部图形控制器的混合主机芯片组的实例计算机系统的框图;
图6示出了按照本发明实施例的在内部图形控制器和外部图形控制器之间划分的实例图形表面;
图7示出了按照本发明实施例的使两个(内部和外部)图形控制器能够各自并列执行一部分单块变换(BLT)操作的装置;和
图8示出了按照本发明实施例的实例图形控制器的框图。详述
本发明适用于所有类型的计算机系统、处理器、视频源和芯片组,包括改进型(follow-on)芯片设计,其将工作站例如计算机、服务器、外围设备、存储设备和计算机图形应用的消费者电子(CE)设备连接到一起。但是,为了简单起见,讨论将主要集中在具有并列执行来提供高性能视频能力的多媒体图形引擎的基本图形/多媒体平台结构的计算机系统,虽然本发明的范围不限于此。术语Agraphics@可以包括但不限于计算机产生的图象、符号、自然和/或合成对象和场景的视觉表示、图画和文本。
例如,图3示出了具有用于执行BLT操作的基本图形/多媒体平台的实例计算机系统100。如图3所示,计算机系统100(可以是通称为个人计算机或PC的系统)可以包括一个或多个处理器或中央处理单元(CPU)110,例如Intel7 i386,i486,Celeron J或Pentium7处理器,经前侧总线20连接一个或多个处理器110的存储控制器120,经存储总线30连接存储控制器120的主存储器130,经图形总线40(例如高级图形接口AAGP@总线)连接存储控制器120的图形控制器140,以及连接存储控制器120来访问各种I/O设备例如外设部件互连(PCI)总线50等的IO控制器集线器(ICH)170。PCI总线50可以是具有自动可配置性和复用地址的高性能32或64比特同步总线,如PCI专业组(SIG)在1995年6月1日提出的A《PCI局域总线规范2.1版》(PCI Local BusSpecification,Revision 2.1)”最新版本所述的控制和数据线,用于具有新视频、网络或盘存储能力的外接附加装置(例如扩展卡)。
图形控制器140可以用于执行BLT和有关操作以及控制显示监视器150(例如阴极射线管、液晶显示器和平板显示器)上的图形和/或视频图象的视觉显示。本地存储器160(即帧缓冲器)可以是专门用于图形应用的单独存储器。这样的本地存储器160可以连接到图形控制器140,用于存储来自计算机系统100内的图形控制器140、一个或多个处理器110或其它设备的,用于显示监视器150上的视频图象的视觉显示的像素数据。
可选地,存储控制器120和图形控制器140可以结合为一个图形和存储器控制器集线器(GMCH),其包括并行执行以提供高性能3D、2D和运动补偿视频能力的专用多媒体引擎。GMCH可以实现为PCI芯片,例如Intel公司制造的PIIX47芯片和PIIX67芯片。此外,这样的GMCH还可以连同例如Intel7 870和8XX系列芯片中所述的I/O控制器集线器(ICH)和固件集线器(FWH)一起实现为主机芯片组的一部分。
图4示出了包括这种主机芯片组200的实例计算机系统100。计算机系统100基本上包括图3所示相同的部件,除了主机芯片组200,它提供高度集成的三芯片方案,由图形和存储器控制器集线器(GMCH)210、输入/输出(I/O)控制器集线器(ICH)220和固件集线器(FWH)230组成。
GMCH 210在其中合并了内部图形控制器212,用于图形应用和视频功能并用于连接一个或多个存储器设备到系统总线20。GMCH 210的内部图形控制器212可以包括用于执行包括从3D对象的表示创建光栅化2D显示图象在内的各种3D图形功能的3D(纹理映射)引擎(未示出),和用于执行包括块变换(BLT)操作在内的2D功能的图形引擎(未示出),BLT操作在图形表面上的存储位置之间转移像素数据,用于显示视频或图形图象的显示引擎(未示出),和用于输出数字视频信号并提供与传统显示监视器150或新的节省空间的数字平板显示器(FPD)的连接的数字视频输出接口。
GMCH 210可以经存储总线30、本地存储器160、显示监视器150与任何主存储器130互联,并可以经编码器和数字视频输出信号与电视机(TV)互联。GMCH 210可以例如是Intel782810或82810-DC100芯片。GMCH 210还可以用作为一个或多个处理器110和可以连接ICH 220的一个或多个I/O设备之间通信或发送的信号的桥路或接口。
ICH 220连接一个或多个I/O设备到GMCH 210。FWH 230连接到ICH 220并提供用于附加系统控制的固件。ICH 220可以例如是Intel782801芯片,而FWH 230可以例如是Intel782802芯片。
ICH 220可以连接各种I/O设备及类似设备,例如:外设部件互连(PCI)总线50(PCI局域总线规范2.2版,PCI Local Bus SpecificationRevision 2.2),其可以具有一个或多个I/O设备,连接到PCI插槽194,工业标准结构(ISA)总线选项(option)196和局域网(LAN)选项198;用于连接鼠标、键盘和其它外围设备(未示出)的超级I/O芯片192;音频编/解码器(Codec)和调制解调器Codec;多个通用串行总线(USB)接口(USB规范,修订本1.0);和多个Ultra/66 AT附件(ATA)2端口(X3T9.2 948D规范;通常也称为集成驱动电路(IDE)端口),用于接受一个或多个磁硬盘驱动器或其它I/O设备。
USB端口和IDE端口可用来提供与硬盘驱动器(HDD)和光盘只读存储器(CD-ROM)的接口。I/O设备和一个闪存(例如,EPROM)还可以被连接到用于扩展I/O支持和功能的主机芯片组的ICH。那些I/O设备例如可以包含:一个键盘控制器,用于控制字母数字键盘的操作;一个诸如鼠标、轨道球、触摸屏、游戏杆等等之类的一个光标控制设备;诸如磁带、硬盘驱动器(HDD)和软盘驱动器(FDD)之类的一个大容量存储器设备;以及与打印机和扫描仪的串行和并行端口。闪存可以通过低插脚计数(LDC)总线被连接到主机芯片组的ICH。闪存可以在计算机系统100启动时存储一组系统基础的输入输出启动(BIOS)例程。超级I/O芯片192可以提供与另一组I/O设备的一个接口。
在如图3和4所示的一个示例计算机系统的任一实施例中,图3的图形控制器140或者图4的内部图形控制器212可以被单独用于图形应用,包括控制″BLT″和相关操作,以便把像素数据块从图形表面的一部分(源)转移到另外一部分(目标)。当正如参考图2所描述的在源和目标之间有重叠时,图3的图形控制器140或者图4的内部图形控制器212被配置来首先复制重叠区域的Aleading edge@。例如,在源12的右边缘的像素列可以首先被复制到目标14的右边缘,然后是右边的第二列像素等等。结果,全部像素在被写为目标14之前作为源12被读取。
可是,如果附加的图形控制器240和相关的本地存储器260被引入,或者插到如图5所示一个现有计算机系统的扩展卡(即,PCI槽194)用于高级和加速的图形应用以及用于减少处理BLT操作所需要的时间,则不仅图形表面10需要在内部(主机)图形控制器212和外部(远端)图形控制器240之间被共享用于BLT和相关操作,如图6所示,而且内部(主机)图形控制器212和外部(远端)图形控制器240之间的同步和一致性问题也被引入。
例如,附加的图形控制器240可以是,但是不要求是,即插即用设备。另外,第二图形引擎还可以从开始时,也许在工作站产品的情况下,内建在该系统中。可应用本发明所需要的全部是:系统具有彼此异步执行BLT操作的两个图形引擎。换言之,虽然两个图形引擎可以使用一个公共时钟并因此在时钟级同步地操作,但是每一图形引擎并不详细了解另一引擎在执行一个命令时的进展或者甚至可能是其在一个命令列表中的进展。同步和一致性问题被引入只因为有两个独立的图形引擎合作来执行BLT操作。如果两个图形引擎都被使用而不是仅用或仅有一个图形引擎,则BLT操作可以被执行得更快。
图6说明了在用于执行BLT和相关操作的内部(主机)图形控制器212和外部(远端)图形控制器240之间共享的跳棋盘图形中的一个图形表面10的分配示例。内部(主机)图形控制器212和主机本地存储器160可以被分配来处理跳棋盘上所有花体的(squiggled)区域。同样,外部(远端)图形控制器240和远端本地存储器260可以分配来处理跳棋盘上所有非花体的区域,或者反之亦然。跳棋盘图形只用来说明在内部(主机)图形控制器212和外部(远端)图形控制器240之间的划分。诸如散列模式(hash patterns)之类的其他模式也可以被使用,只要图形表面10在内部图形控制器212和外部图形控制器240之间被划分。
当一个BLT操作要在Ahorizontal@_区域中的一个给定源像素上被执行时,可能与在Avertical@_区域中的一个目标像素相关或者反之亦然。在这些情形中,必须判断哪一图形控制器212和240可以执行这个像素的BLT操作。可以采取目标主导策略,即,由负责包含了目标像素的图形表面10的区域的图形控制器来负责执行该像素的BLT操作。可是,不管像素如何划分,同步和一致性问题仍然存在。
有这样的BLT操作,即对于这些BLT操作,一个像素将成为外部图形控制器240的一个目标并且成为内部图形控制器212的一个源。外部图形控制器240不能写该像素,直到这样一个像素已经被内部图形控制器212读取为止。对于成为内部图形控制器212的一个目标并且成为外部图形控制器240的的一个源的那些像素将出现类似的情形。如果操作被串行化来确保既是源12又是目标14的像素在被写为一个目标之前被读取作为一个源,那么在混合型计算机系统100中的多个图形控制器212和240的性能优点将无效。
现在参见图7,显示了一种根据本发明的实施例用于在混合型计算机系统中使两个(内部和外部)图形控制器212和240每一个都能够并行执行一部分单个BLT操作的装置和方法。一般来说,每一图形控制器212或240首先复制处于另一图形控制器240或212控制的区域中的所有源像素,并且通知另一图形控制器已经进行复制。一般来说,一个图形控制器212或240必须用信号通知另一图形控制器240或212已经进行复制。传送此信息的可能方式包括:1)写到另一图形控制器中的I/O位置的存储器映像;2)该位置被写可以传达信息而写入的数据值没有含意;3)被写的位置可以有几个用途而写入的数值指示正在通信的是BLT复制同步;4)写到另一个图形控制器可以轮询的一个实际存储位置;5)声明一个特定信号,用于用信号通知另一个图形控制器已经进行复制;和6)在一总线(比如PCI或AGP总线)上发送一个专用特定循环(private special cycle)。
然后每个图形控制器212或240在开始更新它的任何目标像素(是另一个图形控制器240或212的源)之前必须等待一个同步写。是一个图形控制器212或240的目标并且不是另一个图形控制器240或212的源的任何像素可以被随时更新。结果,两个(内部和外部)图形控制器212和240,以及混合型计算机系统100中的各本地存储器160和260能够建立适当的同步并且能够有效地分配和分担同一图像绘出任务以保证一致性——特别是当在BLT和相关操作期间处理重叠源和目标区域时。
如图7所示,装置700可以包括内部图形控制器212和外部图形控制器240以及各本地存储器160和260。内部(主机)图形控制器212具有它自己的本地存储器160,它自己的本地存储器160包含一个高速暂存(Scratch Pad,SP)162,其是被另外留出来用于存储从外部(远程)图形控制器240和源12以及目标14的存储器区域中复制的像素数据的一组存储器地址。同样,外部(远程)图形控制器240具有它自己的本地存储器260,它自己的本地存储器260包含一个高速暂存(SP)262,其是被另外留出来用于存储从内部(主机)图形控制器212和源12以及目标14的存储器区域中复制的像素数据的一组存储器地址。可替代地,高速暂存162和262可以位于系统中的任意位置,而不只是在各本地存储器160和160中。例如,高速暂存可以位于主存储器130(参见图3)以及另一个图形控制器的本地存储器中的电路小片中。只要它是在BLT期间专用于此目的的存储器。当没执行合作的BLT时该存储器甚至可以被用于其他目的。另外,专用于图形的单个本地存储器甚至可以在两个(内部和外部)图形控制器之间被共享。可是,分别的高速暂存可能需要是独立的。
由于图形表面10在内部(主机)图形控制器212和外部(远程)图形控制器240之间被划分,所以每一图形控制器212和240可以从源中读取远程像素到各自的高速暂存(SP)162和262中。换言之,每一图形控制器212和240可以扫描同一源12,确定非本地的源12中的所有像素它需要通往另一个图形控制器并且从另一个图形控制器的本地存储器中获得那些像素。
更明确地,在BLT操作开始的时候,每个图形控制器例如扫描源矩形,确定远程的那些像素,把那些远程源像素从远程本地存储器中复制到本地高速暂存(SP)。作为选择,只有那些同时也是目标像素的远端源像素需要被复制以便减少合作的开销。例如,如果源和目标没有重叠,则BLT可以继续进行而不必在最初复制到高速暂存区(SP)。内部(主机)图形控制器212然后扫描源12,找到源12中要用来计算目标14的所有像素,包括那些位于附在外部(远端)图形控制器240上的远端本地存储器260中的所有像素,并且发送一个请求把所有那些远端源像素复制到主机高速暂存(SP)162中,如图7的步骤#1所示。同样地,外部(远端)图形控制器240也扫描同一源矩形12,找到要用来计算目标14的所有像素,包括那些位于附在内部(远端)图形控制器212上的主机本地存储器160中的所有像素,并且发送一个请求把所有那些主机源像素复制到远端高速暂存(SP)262中,如图7的步骤#1所示。内部(主机)图形控制器212和外部(远端)图形控制器240可以把远端像素或者按顺序或者同时从源中读取到各自的高速暂存区(SP)162和262中。
在内部(主机)图形控制器212和外部(远端)图形控制器240已经把远端源像素复制到各自的高速暂存(SP)162和262中之后,一个同步写可以被分别发布给内部(主机)图形控制器212和外部(远端)图形控制器240来指示已经在步骤#2进行复制。例如,当内部(主机)图形控制器212已经把远端源像素复制到它的本地存储器160的高速暂存(SP)162中时,内部(远端)图形控制器212在外部(远端)图形控制器240处实行一个同步写。同样地,当外部(远端)图形控制器240已经把远端源像素复制到它的本地存储器260的高速暂存(SP)262中时,外部(远端)图形控制器240在内部(主机)图形控制器212处实行一个同步写。同步写可以表示一个用于读取和/或写入像素数据到本地存储器中的存储周期。在同步写发生以前,图形控制器212和240两者都不能继续进行BLT操作。可是,如果源和目标没有重叠则这样一个同步写可以被跳过。如果源和目标重叠,则只需要调用整个机制。为了简易,对于每个BLT都可以调用该装置,但是代价是开销某些不必需的性能(复制到高速暂存和同步写)。
一收到同步写,已经完成对要用来计算目标14的远端源像素的复制的图形控制器212或240也知道另一个图形控制器也已经复制了要用来计算目标14的远端源像素。结果,或者图形控制器212或者240能够更新它的任何作为另一个图形控制器240或212的源的目标像素。是一个图形控制器的目标并且不是另一个图形控制器的源的任何像素可以随时被更新。
在图7的步骤#3,图形控制器212或者240都可以用于远端源像素,其或者是被储存在本地存储器160和260中的那些像素,或者是被复制到各自本地存储器160和260的高速暂存(SP)162和262中的那些像素,以便计算目标14的新数值然后在图形表面10上写目标14。如果被包括在目标中,则来自远端图形存储器中的像素也可以被使用。例如,内部(主机)图形控制器212可用于源像素,其或者是被储存在本地存储器160中的那些像素,或者是被复制到本地存储器160的高速暂存(SP)162中的那些像素,以便计算目标像素,在一个像素一个像素的基础上以目标14在图形表面10上从源12移动的相反方向扫描。例如,如果源12向右向上移到目标14,如图6所示,内部(主机)图形控制器212可以在左上角开始扫描然后向下向左扫描像素。同样地,如果源12往上比往右更多地移到目标14,则内部(主机)图形控制器212可以首先垂直地开始扫描然后向左移动。
如果如图2所示在源12和目标14之间有一个重叠,重叠的区域问题可以简单地通过通常的扫描技术来解决:标记目标14相对于源12已经移动的一个特定方向并且以相反的方向扫描源矩形。结果,在内部(主机)图形控制器212和外部(远端)图形控制器240之间的同步和一致性问题可以被有利消除。
图8显示了根据本发明实施例的一个示例图形控制器212或240以及相关本地存储器160或260的框图。如图8所示,图形控制器212或240可以包括:一个本地存储器控制器310,其控制对本地存储器160或260的访问;一个3D(纹理映射)引擎312,其完成各种3D图形功能,包括从3D对象的表示中创建一个光栅化2D显示图象;一个图形BLT引擎314,其执行2D功能,包括BLT及其在图形表面10上的存储位置之间转移像素数据的相关操作;一个显示引擎316,其控制视频或图形图象的可见显示;一个路由器318,其与一个操作系统(OS)和即插即用设备交互作用以便把请求变换成为本地存储器或260的存储器地址用于执行BLT及其相关操作;一个命令解码器320,其解码包括BLT命令在内的用户命令并且发起对本地存储器控制器310和所有各种引擎312,314和316的控制线程;以及一个接口322,其提供一个接口用于通信或通过AGP总线40去往/来自一个或多个处理器110的信号。
图形BLT引擎314可以被配置来在命令解码器320的控制之下请求并执行BLT及其相关操作的请求。BLT操作的一个请求可以被路由到路由器318,路由器318具有能力把那个请求变换成作为计算机系统100统一地址空间一部分的一个存储器地址。该存储器地址可能是指附在图形控制器212或240上的本地存储器160或260中的某些特定的存储位置,或者是指计算机系统100中的不同的存储位置。如果该存储器地址是指本地存储器160或260中的特定的存储位置,那么路由器318可以通过本地存储器控制器310把存储器地址路由来访问本地存储器160或260。或者,如果存储器地址是指计算机系统100中的不同的存储位置,那么路由器318可以通过接口322来路由存储器地址。
更明确地,图形BLT引擎314可以扫描本地存储器160或260处的源12,得到要用来计算目标14的所有源像素,并且发送一个请求来把所有的源像素复制到本地存储器160或260中。图形BLT引擎314然后可以等待指示已经进行复制的一个同步写,以便计算目标像素并且按照参考图7所述的方式在图形表面10上写入目标14。
如前所述,本发明有利地提供了一种装置和一种方法,用于使得两个图形控制器能各自在计算机系统中以适当的同步和一致性并行执行单个BLT操作的一部分——特别是当在BLT操作期间处理重叠源和目标区域时。
虽然这里已经说明并描述了本发明的示例实施例的内容,但是本领域技术人员应该理解,可以做出各种改变和修改以及等价物可以被它的元件替代而不偏离本发明的实际范围。可以进行许多修改来使本发明适应一个特定情形而不偏离它的范围。例如,用于使得两个图形控制器能各自并行执行单个BLT操作的一部分的装置也可以由软件模块或者具有一个驱动软件的广泛的硬件/软件模块来实现,所述驱动软件被配置来在各自的图形控制器处产生远端源像素的高速暂存复制、发出一个同步写以及执行BLT及其相关操作。因此,本发明不局限于所公开的各种示例实施例,而是本发明包括落在权利要求范围内的所有实施例。

Claims (24)

1.一种图形装置,包括:
第一和第二图形控制器,用于分担图形和视频功能,各自并行执行一个块变换″BLT″操作以在显示屏的图形表面上将像素数据块从源转移到目标;
存储设备,连接到所述第一和第二图形控制器并用于以分配给所述第一图形控制器和所述第二图形控制器的指定模式来存储图形表面上的所述源的像素数据;以及
高速暂存,其每一个都用于在请求执行所述BLT操作时存储所述源的所有像素数据,这些像素数据处于另一图形控制器控制的区域中并且从所述存储设备中被复制。
2.如权利要求1所述的图形装置,其特征在于,所述存储设备包括:
第一本地存储器,连接到所述第一图形控制器并且被用于存储所述图形表面上的所述源的像素数据;以及
第二本地存储器,连接到所述第二图形控制器并且被用于以分配给所述第二图形控制器的指定模式存储所述图形表面上的所述源的像素数据。
3.如权利要求2所述的图形装置,其特征在于,所述高速暂存被包括在各自的第一和第二本地存储器中,用于在请求执行所述BLT操作之时存储所述源的所有像素数据,这些像素数据处于另一图形控制器控制的区域中并且从另一本地存储器中被复制。
4.如权利要求1所述的图形装置,其特征在于,所述BLT操作包括在所述源的像素数据上的一个逻辑操作和另外的OPERAND(s)以获得所述图形表面上所述目标的像素数据。
5.如权利要求1所述的图形装置,其特征在于,所述BLT操作包括在所述源的像素数据上的一个逻辑操作和另外的OPERAND(s)以获得所述图形表面上所述目标的像素数据。
6.如权利要求1所述的图形装置,其特征在于,所述第一图形控制器被集成在一个芯片组中,并且所述第二图形控制器被插在用于高级图形应用的扩展卡中。
7.如权利要求6所述的图形装置,其特征在于,所述第一和第二图形控制器每一个都包括被用来执行BLT及其相关操作的一个BLT图形引擎。
8.如权利要求6所述的图形装置,其特征在于,所述第一和第二图形控制器的每一个都首先把处于另一图形控制器控制的区域中的所述源的所有像素数据复制到各自的高速暂存中,发出一个同步写给另一图形控制器以便指示该复制已经完成,并且一旦收到来自另一图形控制器中的同步写,就开始更新对另一图形控制器而言是源的所述目标的任何像素数据。
9.如权利要求8所述的图形装置,其特征在于,所述第一和第二图形控制器的任何一个可以随时更新对另一图形控制器而言不是源的所述目标的任何像素数据。
10.如权利要求8所述的图形装置,其特征在于,所述第一和第二图形控制器的任一个,以分别分配给所述第一和第二图形控制器的所述指定模式使用所述源的像素数据,或者使用在所述指定模式的图形表面上被复制和写入所述目标的所述源的像素数据,来计算所述目标的一个新数值。
11.如权利要求8所述的图形装置,其特征在于,所述第一和第二图形控制器每一个包括:
一个本地存储器控制器,其控制对各本地存储器的访问;
一个3D(纹理映射)引擎,其执行各种3D图形功能,包括从3D对象的表示中创建一个光栅化2D显示图象;
一个图形BLT引擎,其执行包括所述BLT操作的2D功能以在所述图形表面上把像素数据块从所述源转移到所述目标;
一个显示引擎,其控制视频或图形图象的可见显示;
一个路由器,联接到所述本地存储控制器、所述3D引擎、所述图形BLT引擎以及所述显示引擎,它与操作系统(OS)交互作用来把请求变换成为所述本地存储器的存储器地址用于执行所述BLT操作;
一个命令解码器,它解码包括BLT命令在内的用户命令,并且发起对所述本地存储器控制器、所述3D引擎、所述图形BLT引擎以及所述显示引擎的控制线程;以及
一个接口,其提供一个接口用于通信或者去往/来自一个或多个处理器的信号。
12.如权利要求1所述的图形装置,其特征在于,所述图形表面的指定模式对应一个跳棋盘,所述跳棋盘具有分配给所述第一图形控制器的所述跳棋盘的2格以及分配给所述第二图形控制器的所述跳棋盘的另外2格。
13.一个计算机系统,包括:
一个或多个处理器;
具有显示屏的一个显示监视器;
一个芯片组,连接到所述一个或多个处理器,并且包括一个内部图形控制器和一个本地存储器,所述内部图形控制器处理用于在所述显示监视器上可见显示的视频数据,所述本地存储器被附到所述内部图形控制器;以及
一个外部图形控制器和一个本地存储器,通过扩展卡联接到所述芯片组,用于与所述芯片组的所述内部图形控制器分担图形和视频功能,包括并行执行一部分块变换″BLT″操作以便把像素数据块从源转移到所述显示屏的图形表面上的一个目标;
其中,所述内部和外部图形控制器的每一本地存储器被用于以分配给各自的图形控制器的指定模式存储所述图形表面上的所述源的像素数据,并且包括一个高速暂存,用于在请求执行所述BLT操作之时存储所述源的所有像素数据,这些像素数据处于另一图形控制器控制的区域中并且从另一本地存储器中被复制。
14.如权利要求13所述的计算机系统,其特征在于,所述BLT操作包括在所述源的像素数据上的一个逻辑操作和另外的OPERAND(s)以获得所述图形表面上所述目标的像素数据。
15.如权利要求13所述的计算机系统,其特征在于,所述内部和外部图形控制器每一个都包括被用来执行BLT及其相关操作的一个BLT图形引擎。
16.如权利要求13所述的计算机系统,其特征在于,所述内部和外部图形控制器的每一个都首先把处于另一图形控制器控制的区域中的所述源的所有像素数据复制到各自的高速暂存中,发出一个同步写给另一图形控制器以便指示该复制已经完成,并且一旦收到来自另一图形控制器的同步写,就开始更新对另一图形控制器而言是源的所述目标的任何像素数据。
17.如权利要求16所述的计算机系统,其特征在于,所述内部和外部图形控制器的任何一个可以随时更新对另一图形控制器而言不是源的所述目标的任何像素数据。
18.如权利要求17所述的计算机系统,其特征在于,所述内部和外部图形控制器的任一个,以分别分配给所述内部和外部图形控制器的所述指定模式使用所述源的像素数据,或者使用在所述指定模式的图形表面上被复制和写入所述目标的所述源的像素数据,来计算所述目标的一个新数值。
19.如权利要求18所述的计算机系统,其特征在于,所述内部和外部图形控制器每一个包括:
一个本地存储器控制器,其控制对各本地存储器的访问;
一个3D(纹理映射)引擎,其执行各种3D图形功能,包括从3D对象的表示中创建一个光栅化2D显示图象;
一个图形BLT引擎,其执行包括所述BLT操作的2D功能以在所述图形表面上把像素数据块从所述源转移到所述目标;
一个显示引擎,其控制视频或图形图象的可见显示;
一个路由器,联接到所述本地存储控制器、所述3D引擎、所述图形BLT引擎以及所述显示引擎,它与操作系统(OS)交互作用来把请求变换成为所述本地存储器的存储器地址用于执行所述BLT操作;
一个命令解码器,它解码包括BLT命令在内的用户命令,并且发起对所述本地存储器控制器、所述3D引擎、所述图形BLT引擎以及所述显示引擎的控制线程;以及
一个接口,其提供一个接口用于通信或者去往/来自一个或多个处理器的信号。
20.如权利要求13所述的计算机系统,其特征在于,所述图形表面的指定模式对应一个跳棋盘,所述跳棋盘具有分配给所述内部图形控制器的所述跳棋盘的2格以及分配给所述外部图形控制器的所述跳棋盘的另外2格。
21.一种使得一个计算机系统中的多个图形控制器能并行执行一部分块变换″BLT″操作的方法,包括:
一旦收到执行所述BLT操作的请求,就使每一图形控制器能把像素数据块从源转移到指定模式的图形表面上的目标,以将处于另一图形控制器控制的区域中的所有源像素复制到一个本地存储器中;
使得每一图形控制器能发出一个同步写以便指示所述复制已经完成;以及
一旦从另一图形控制器收到所述同步写,就使每一图形控制器来更新对另一图形控制器而言是源的任何目标像素并且执行所述BLT操作。
22.如权利要求21所述的方法,其特征在于,所述BLT操作包括在所述源的像素数据上的一个逻辑操作和另外的OPERAND(s)以获得所述图形表面上所述目标的像素数据。
23.如权利要求21所述的方法,其特征在于,所述多个图形控制器的任何一个可以随时更新对另一图形控制器不是源的所述目标的任何像素数据。
24.如权利要求21所述的方法,其特征在于,所述图形表面的指定模式对应一个跳棋盘,所述跳棋盘具有分配给一个图形控制器的所述跳棋盘的2格以及分配给所述另一图形控制器的的所述跳棋盘的另外2格。
CNB018164730A 2000-09-28 2001-09-20 并行分担的单个块变换 Expired - Fee Related CN100395734C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/671,237 US6630936B1 (en) 2000-09-28 2000-09-28 Mechanism and method for enabling two graphics controllers to each execute a portion of a single block transform (BLT) in parallel
US09/671,237 2000-09-28
PCT/US2001/029605 WO2002027658A2 (en) 2000-09-28 2001-09-20 Shared single block transform in parallel

Publications (2)

Publication Number Publication Date
CN1571991A true CN1571991A (zh) 2005-01-26
CN100395734C CN100395734C (zh) 2008-06-18

Family

ID=24693676

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018164730A Expired - Fee Related CN100395734C (zh) 2000-09-28 2001-09-20 并行分担的单个块变换

Country Status (11)

Country Link
US (1) US6630936B1 (zh)
EP (1) EP1325470A2 (zh)
JP (1) JP3996054B2 (zh)
KR (1) KR100528955B1 (zh)
CN (1) CN100395734C (zh)
AU (1) AU2001296282A1 (zh)
DE (1) DE10196696T1 (zh)
GB (1) GB2384151B (zh)
HK (1) HK1053895A1 (zh)
TW (1) TW541507B (zh)
WO (1) WO2002027658A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103946823A (zh) * 2011-11-18 2014-07-23 英特尔公司 棋盘多gpu配置内的可缩放几何形状处理
CN104424661A (zh) * 2013-08-23 2015-03-18 联想(北京)有限公司 三维对象显示方法和装置
US10217270B2 (en) 2011-11-18 2019-02-26 Intel Corporation Scalable geometry processing within a checkerboard multi-GPU configuration

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6819440B1 (en) * 2000-05-15 2004-11-16 International Business Machines Corporation System, method, and program for automatically switching operational modes of a printer between direct and print-on-demand (POD) modes
US6724389B1 (en) * 2001-03-30 2004-04-20 Intel Corporation Multiplexing digital video out on an accelerated graphics port interface
TW512277B (en) * 2001-06-22 2002-12-01 Silicon Integrated Sys Corp Core logic of a computer system and control method of the same
US6731292B2 (en) * 2002-03-06 2004-05-04 Sun Microsystems, Inc. System and method for controlling a number of outstanding data transactions within an integrated circuit
US7076669B2 (en) * 2002-04-15 2006-07-11 Intel Corporation Method and apparatus for communicating securely with a token
US20040083311A1 (en) * 2002-06-05 2004-04-29 James Zhuge Signal processing system and method
TW577229B (en) * 2002-09-18 2004-02-21 Via Tech Inc Module and method for graphics display
US7474312B1 (en) * 2002-11-25 2009-01-06 Nvidia Corporation Memory redirect primitive for a secure graphics processing unit
US20040205254A1 (en) * 2003-04-11 2004-10-14 Orr Stephen J. System for media capture and processing and method thereof
US7292235B2 (en) * 2003-06-03 2007-11-06 Nec Electronics Corporation Controller driver and display apparatus using the same
US6952217B1 (en) * 2003-07-24 2005-10-04 Nvidia Corporation Graphics processing unit self-programming
US8411093B2 (en) * 2004-06-25 2013-04-02 Nvidia Corporation Method and system for stand alone graphics independent of computer system form factor
US8941668B2 (en) * 2004-06-25 2015-01-27 Nvidia Corporation Method and system for a scalable discrete graphics system
US8446417B2 (en) * 2004-06-25 2013-05-21 Nvidia Corporation Discrete graphics system unit for housing a GPU
US9087161B1 (en) 2004-06-28 2015-07-21 Nvidia Corporation Asymmetrical scaling multiple GPU graphics system for implementing cooperative graphics instruction execution
US20060012602A1 (en) * 2004-07-15 2006-01-19 George Lyons System and method for efficiently performing automatic partial transfers of image data
JP4049136B2 (ja) * 2004-08-10 2008-02-20 ブラザー工業株式会社 画像処理装置及びプログラム
US7598958B1 (en) * 2004-11-17 2009-10-06 Nvidia Corporation Multi-chip graphics processing unit apparatus, system, and method
US7633505B1 (en) 2004-11-17 2009-12-15 Nvidia Corporation Apparatus, system, and method for joint processing in graphics processing units
US7502947B2 (en) * 2004-12-03 2009-03-10 Hewlett-Packard Development Company, L.P. System and method of controlling a graphics controller
KR101110624B1 (ko) * 2004-12-15 2012-02-16 삼성전자주식회사 그래픽 처리 기능을 갖는 메모리 컨트롤러
US20060198175A1 (en) * 2005-03-03 2006-09-07 Badawi Ashraf H Method, system, and apparatus high speed interconnect to improve data rates of memory subsystems
US20060282604A1 (en) * 2005-05-27 2006-12-14 Ati Technologies, Inc. Methods and apparatus for processing graphics data using multiple processing circuits
US8893016B2 (en) * 2005-06-10 2014-11-18 Nvidia Corporation Using a graphics system to enable a multi-user computer system
US10026140B2 (en) * 2005-06-10 2018-07-17 Nvidia Corporation Using a scalable graphics system to enable a general-purpose multi-user computer system
US20070067517A1 (en) * 2005-09-22 2007-03-22 Tzu-Jen Kuo Integrated physics engine and related graphics processing system
US8266232B2 (en) 2005-10-15 2012-09-11 International Business Machines Corporation Hardware processing of commands within virtual client computing environment
US7525548B2 (en) 2005-11-04 2009-04-28 Nvidia Corporation Video processing with multiple graphical processing units
US8462164B2 (en) * 2005-11-10 2013-06-11 Intel Corporation Apparatus and method for an interface architecture for flexible and extensible media processing
US7948497B2 (en) * 2005-11-29 2011-05-24 Via Technologies, Inc. Chipset and related method of processing graphic signals
US8212832B2 (en) * 2005-12-08 2012-07-03 Ati Technologies Ulc Method and apparatus with dynamic graphics surface memory allocation
US7477257B2 (en) * 2005-12-15 2009-01-13 Nvidia Corporation Apparatus, system, and method for graphics memory hub
JP5111797B2 (ja) * 2006-06-29 2013-01-09 株式会社東芝 情報処理装置及び情報処理方法
US20080030510A1 (en) * 2006-08-02 2008-02-07 Xgi Technology Inc. Multi-GPU rendering system
US20080259023A1 (en) * 2007-04-19 2008-10-23 Aten International Co., Ltd. Method and System of Making a Computer as a Console for Managing Another Computer
US20080259556A1 (en) * 2007-04-20 2008-10-23 Tracy Mark S Modular graphics expansion system
US8564598B2 (en) * 2007-08-15 2013-10-22 Nvidia Corporation Parallelogram unified primitive description for rasterization
US8634695B2 (en) * 2010-10-27 2014-01-21 Microsoft Corporation Shared surface hardware-sensitive composited video
CN103984669A (zh) 2013-02-07 2014-08-13 辉达公司 一种用于图像处理的系统和方法
US9734546B2 (en) 2013-10-03 2017-08-15 Nvidia Corporation Split driver to control multiple graphics processors in a computer system
US11069022B1 (en) * 2019-12-27 2021-07-20 Intel Corporation Apparatus and method for multi-adapter encoding

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3350043B2 (ja) 1990-07-27 2002-11-25 株式会社日立製作所 図形処理装置及び図形処理方法
US5640578A (en) * 1993-11-30 1997-06-17 Texas Instruments Incorporated Arithmetic logic unit having plural independent sections and register storing resultant indicator bit from every section
EP0747859B1 (en) * 1995-06-06 2005-08-17 Hewlett-Packard Company, A Delaware Corporation Interrupt scheme for updating a local memory
US6008823A (en) 1995-08-01 1999-12-28 Rhoden; Desi Method and apparatus for enhancing access to a shared memory
US5919256A (en) * 1996-03-26 1999-07-06 Advanced Micro Devices, Inc. Operand cache addressed by the instruction address for reducing latency of read instruction
TW335472B (en) * 1996-06-20 1998-07-01 Cirus Logic Inc Method and apparatus for transferring pixel data stored in a memory circuit
JPH1074073A (ja) * 1996-08-30 1998-03-17 Nec Corp 表示制御装置
US5929872A (en) * 1997-03-21 1999-07-27 Alliance Semiconductor Corporation Method and apparatus for multiple compositing of source data in a graphics display processor
US5995121A (en) 1997-10-16 1999-11-30 Hewlett-Packard Company Multiple graphics pipeline integration with a windowing system through the use of a high speed interconnect to the frame buffer
US5943064A (en) * 1997-11-15 1999-08-24 Trident Microsystems, Inc. Apparatus for processing multiple types of graphics data for display
US6091432A (en) * 1998-03-31 2000-07-18 Hewlett-Packard Company Method and apparatus for improved block transfers in computer graphics frame buffers

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103946823A (zh) * 2011-11-18 2014-07-23 英特尔公司 棋盘多gpu配置内的可缩放几何形状处理
CN103946823B (zh) * 2011-11-18 2017-04-05 英特尔公司 棋盘多gpu配置内的可缩放几何形状处理
US9619855B2 (en) 2011-11-18 2017-04-11 Intel Corporation Scalable geometry processing within a checkerboard multi-GPU configuration
US10217270B2 (en) 2011-11-18 2019-02-26 Intel Corporation Scalable geometry processing within a checkerboard multi-GPU configuration
CN104424661A (zh) * 2013-08-23 2015-03-18 联想(北京)有限公司 三维对象显示方法和装置

Also Published As

Publication number Publication date
TW541507B (en) 2003-07-11
WO2002027658A2 (en) 2002-04-04
CN100395734C (zh) 2008-06-18
HK1053895A1 (en) 2003-11-07
GB0306045D0 (en) 2003-04-23
GB2384151A (en) 2003-07-16
AU2001296282A1 (en) 2002-04-08
US6630936B1 (en) 2003-10-07
EP1325470A2 (en) 2003-07-09
KR20030036822A (ko) 2003-05-09
KR100528955B1 (ko) 2005-11-15
GB2384151B (en) 2004-04-28
DE10196696T1 (de) 2003-08-28
JP3996054B2 (ja) 2007-10-24
WO2002027658A3 (en) 2002-07-18
JP2004510269A (ja) 2004-04-02

Similar Documents

Publication Publication Date Title
CN100395734C (zh) 并行分担的单个块变换
US8073990B1 (en) System and method for transferring updates from virtual frame buffers
US7383412B1 (en) On-demand memory synchronization for peripheral systems with multiple parallel processors
US6911984B2 (en) Desktop compositor using copy-on-write semantics
JP4071196B2 (ja) ゾーン・レンダリング用の自動メモリ管理
US6911983B2 (en) Double-buffering of pixel data using copy-on-write semantics
JP5529748B2 (ja) 高速周辺相互接続バスにおけるビデオレンダリング
US5727192A (en) Serial rendering system with auto-synchronization on frame blanking
US5701444A (en) Three-dimensional graphics subsystem with enhanced support for graphical user interface
US5877741A (en) System and method for implementing an overlay pathway
US5764228A (en) Graphics pre-processing and rendering system
US5801717A (en) Method and system in display device interface for managing surface memory
US5241656A (en) Depth buffer clipping for window management
US5299309A (en) Fast graphics control system capable of simultaneously storing and executing graphics commands
JP3233343B2 (ja) 圧縮フレーム・バッファによりグラフィックス画像データを二重バッファするためのシステムおよび方法
US20080297525A1 (en) Method And Apparatus For Reducing Accesses To A Frame Buffer
US5754170A (en) Transparent blocking of CRT refresh fetches during video overlay using dummy fetches
JPH0877347A (ja) 画像/グラフィックス処理用のデータ処理装置およびその操作方法
US6952217B1 (en) Graphics processing unit self-programming
Voorhies et al. Virtual graphics
US6833831B2 (en) Synchronizing data streams in a graphics processor
US5513365A (en) Display adapter interface layer
JPS6365953B2 (zh)
US7710425B1 (en) Graphic memory management with invisible hardware-managed page faulting
US6253261B1 (en) System and method for direct memory access in a computer system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080618

Termination date: 20100920