| 一、3D图形硬件
市场的巨大推动作用和技术的进步使得高端图形工作站的需求相对迅速缩小,而低端的3D图形应用市场迅速膨胀,成为众多研究者和商家竞争的新战场。
简单来说硬件支持的3D图形绘制可以划分成几何处理和光栅化处理两个阶段。几何处理阶段包括了坐标变换、裁剪、光照计算等,光栅化处理则包含了扫描转换、采用Z-Buffer算法的隐藏面移去、纹理映射等。显然,要使系统的性能最佳就必须使这两个处理阶段具有相匹配的处理能力。3D图形生成的计算量非常巨大,即使最快的通用CPU也难以胜任。对于几何处理中包含的大量的浮点运算,早期的PC中常用浮点协处理器来加速这一部分的计算,如采用RISC处理器或DSP(数字信号处理器)来加速浮点计算。早期的图形卡是由某些具有图形处理特征的处理器和控制器、一个帧缓存以及必要的连接显示器的视频逻辑组成。这些处理器主要支持Bit-BLT位块操作、画2D线段。它不支持明暗处理(shading)计算和隐藏面消除等3D功能,因而这些图形卡无法与具有浮点协处理器的几何处理阶段相匹配。后来出现的3D芯片用硬件流水线实现了对多边形内部的Gouraud明暗着色计算,用Z-Buffer算法实现了隐藏面消除,其性能不断提高,几何处理反而成为某些系统的性能瓶颈。3D芯片主要完成3D图形处理流程中图象空间的处理即屏幕空间的光栅化处理。
本文从三个方面,即一个最简单的3D芯片、一个正处于研究阶段的3D芯片及一组已投入市场的3D芯片,对面向PC应用的3D图形硬件作了细致剖析。文末对图形硬件的发展历史作了简要总结。
二、3D芯片的功能解析
一个典型的3D 芯片具有如下功能特征:
1)3D芯片的处理对象为屏幕空间的三角形或上边平行于扫描线的四边形。
2)象素采样算法可选择精确的点采样(24位寻址空间)或象素区域随机/平均采样。如每个象素区域可有16个随机/平均分布的采样点和多达4个的面片。
3)支持的象素操作包括等亮度明暗处理(flat shading);Gouraud明暗处理;Z-Buffer算法;用于透明效果等的alpha混合;纹理映射及其透视矫正;每象素可选择1个、4个(双线性插值混合)、8个(三线性插值混合)采样点的密集纹理采样;支持MIP-mapping纹理映射方法;支持多种混合模式的纹理光照效果;支持A-Buffer反走样算法。
4)可以实现芯片一级的并行操作。例如在一种隔行扫描的体系结构中可有多达32个3D芯片对同一组处理对象进行并行操作。要做到这一点芯片就必须设计成可伸缩的体系结构。
5)应提供与工作环境交互的丰富而强大的接口。它们包括用于传输处理对象数据的接口,芯片内部微处理器与外部的接口,象素缓存接口,纹理接口等。由于存储器技术,特别是面向图形应用的存储器技术在不断取得进步,因而3D芯片的接口设计必须有利于不断采用新出现的存储器技术。特别是颜色、深度、纹理存储器的接口,应在它们的访问协议相互独立的前提下,为每一个系统的特殊需求建立专用和优化的存储器系统。例如SGRAM(同步图形RAM)先进的块写特征适合深度存储器的清“0”操作,而新的WRAM(窗口RAM)的先进的Bit-BLT功能和块写功能非常有利于颜色存储器的设计。因而这些接口必须面向一类情况设计成可编程的。这样无须对芯片的设计作更改就可及时采用新的存储器技术。
6)具备调试和测试诊断功能。这些功能为3D芯片的应用开发提供手段。
上述功能具体到某个芯片时会有一些出入和不同的表述方式。而且新功能和新算法还在不断研究发展并及时反映到产品上。
三、3D芯片的体系结构
1.一个简单的3D芯片
与其它多边形相比,三角形是最简单的平面多边形。沿着扫描线方向一个屏幕空间三角形内部各点颜色(r,g,b)和深度(z)的变化是线性的,即相临象素点的这些值仅相差一个固定的常数。这样就使得三角形的明暗计算非常适合于硬件实现。而其他多边形都可以通过预处理分解成三角形,因而三角形是一种最合适的图形处理基元。我们首先以一个仅完成Gouraud明暗计算功能的芯片为例,解释3D芯片的基本体系结构。一个三角形的明暗计算可分为三个步骤:初始化;沿着三角形边的插值计算;沿着三角形内扫描线段(span)的插值计算。
(1)初始化
经过几何处理阶段之后三角形被变换到了屏幕坐标空间,这时三角形由其三个顶点的(x,y,z)坐标及顶点的颜色(r,g,b)来定义,其中坐标z就是所谓的深度值。假设屏幕空间的原点在屏幕的左上角,则y坐标最小的顶点称为三角形的顶点,y坐标最大的顶点为三角形的底点,另一顶点为中点。连接顶点和底点的边为三角形的长边,连接顶点和中点的边为短边,连接中点和底点的边为其它边。三角形的这些数据必须转换成适于做Gouraud明暗计算的数据格式。为了以后在芯片上增加对纹理映射和透明效果的支持,就必须实现精确的点采样。另外在边的插值中应保证没有象素被遗漏或重画。要满足这些要求,三角形的数据就必须转换成包含以下成分的数据结构:
顶点的坐标数据x,y;颜色数据r,g,b; 深度数据z 。沿长边y坐标增加方向的坐标变化量de.x,
de.y;颜色变化量de.r, de.g ,de.b ;深度变化量de.z 。在三角形内沿扫描线从长边到短边(包括其它边)的坐标变化量ds.x,ds.y
;颜色变化量ds.r, ds.g,ds.b;深度变化量ds.z。中点y坐标,底点y坐标。沿短边和其它边的y坐标增加方向的x坐标变化量dx1,dx2。
其坐标空间的数据定义如图1 所示。颜色空间和深度空间的数据也可比照该图理解。以上数据可以很容易地从三角形的初始定义数据得到。这一初始化过程既可以放在几何处理阶段,也可以放在3D芯片的前端作为一个独立的数据准备阶段,又可以放在3D芯片之上。
具体实现时插值计算总是从三角形的长边开始,这时沿三角形内部扫描段的插值计算既可能沿x轴(扫描线)的正向进行,也可能沿x轴的负向进行。在这一实现方案中仅考虑象素中心处的插值计算,为保证速度和精度,所有数据分为整数部分和小数部分存储。
(2)沿着三角形边的插值
通过以上数据就可以分别求出三角形的长边和短边(或其它边)与扫描线的交点坐标,交点处的颜色值和深度值。如三角形长边与与它相交的第一条扫描线的交点坐标为(x+de.x,y+(de.y=1)),短边与第一条相交的扫描线的交点坐标为(x+dx1,y+1),这两点定义了三角形内的一条扫描线段。长边与第一条扫描线交点处的颜色为(r+
de.r ,g+de.g,b+de.b),深度为(z+ de.z )。类似地可以得到所有三角形内扫描线段两端点处的相关信息。
(3)沿三角形内扫描线段的插值计算
得到三角形内扫描线段两端点处的坐标之后,就可以用其控制三角形内颜色和深度的插值计算。这一计算过程总是从三角形的长边向短边方向进行,因而插值增量可正可负。三角形内扫描线段上各象素的颜色和深度值,在得到长边上端点处的初始值之后通过简单的累加沿扫描线段的变化量就可以得到。这时恒有ds.y=0,ds.x=1或-1。
(4)体系结构
至此,一个不包括初始化阶段的最简单的3D芯片的体系结构可设计如图 2 所示。
该芯片与几何处理部分的接口是一个先进先出缓冲存储器,它以一个三角形为单位用上文所述的适于明暗计算的数据结构存储三角形数据。缓冲存储器的大小应使几何处理和光栅化处理的性能尽量达到匹配。三角形处理控制器控制整个三角形的明暗着色计算过程。它控制三角形寄存器每次从三角形缓冲器中取出一个三角形的数据,然后锁定,再启动轮廓部件和插值部件开始沿着三角形的长边和三角形内的扫描线段进行插值。所有插值部件之间都是并行处理的。轮廓部件辅助三角形控制器完成三角形轮廓上各种数据的计算,决定三角形内扫描段插值何时到达端点,是否需要开始下一个扫描段的计算,何时将轮廓从短边调整为其它边,何时三角形的处理结束需要更换为下一个三角形等。轮廓部件还产生颜色和深度存储器的访问地址,其地址空间取决于屏幕的分辨率。插值得到的颜色值是否要写入帧缓存(颜色缓存)取决于插值得到的同一屏幕地址的当前深度值与已存储在该位置的深度值的比较结果,如果新得到的深度值离视点更近,则容许新的颜色值覆盖旧值,否则插值计算结果被丢弃。以上处理过程将对每个需处理的三角形重复一遍。帧缓存的访问控制逻辑以及Z-Buffer的实现逻辑既可以做在3D芯片上,也可以用独立的模块加以实现。无论采用哪种方案,都应以有利于及时应用更新的存储器技术为目标。图
2(b)是一个插值部件的流水线实现结构。该芯片中的所有插值部件都具有类似的结构。这一结构可在每一个时钟周期处理一个象素。
为了加速明暗计算的速度,可以将上述每次仅插值计算一个扫描段的结构设计成一次两个扫描段同时进行计算。这时需要为z、r、g、b各增加一个插值部件,同时对三角形控制器的设计加以调整。这种双扫描段的插值结构可以在每个时钟周期同时输出两个象素的值。当三角形很大时,多个扫描段同时处理可以显著提高处理性能。但当要绘制的物体非常精细时,其三角形网格非常小,每个三角形仅含有一两个扫描段,在这种情况下多个扫描段同时处理将变得没有意义。
多个扫描段同时计算的结构是将三角形内部的处理并行化。如果将三角形先进先出缓冲器之后的结构重新并行地设置一套或多套,就可以实现多个三角形的并行插值处理。这时FIFO缓冲器就必须允许多重访问。而后面帧缓存和深度缓存的访问冲突、存取速度将成为提高性能的主要障碍。这也是面向图形处理的存储器技术成为研究及市场争夺热点的一个重要原因。可以看到,通过适当的设计3D芯片的外围结构和3D芯片本身的接口,就可以实现多个3D芯片的并行绘制结构,从而获得性能的显著提高。
2.典型3D芯片的体系结构
有了上一节的基础,就可以理解实现了本文第二部分所罗列的功能特征的更加复杂的3D芯片。这样一个芯片的体系结构如图3所示。
图中的层次控制部件由一组相互作用的时序机实现。所有数据处理部件设计成并行的具有不同长度的流水线,使用移位寄存器实现流水线之间的同步,从而使不同长度流水线的数据能够在同一时钟周期到达所要求的汇合点。当不能在一个时钟周期内以流水线方式完成对外部接口的访问时,部分流水线或整个流水线将暂停。为减少象素缓存较长的操作周期对系统性能的影响,在象素缓存接口中对象素缓存字的不同逻辑部分设置有FIFO先进先出存储器。下面就芯片各部分的详细功能分别进行剖析。
(1)控制结构
对3D芯片的控制和初始化是通过微处理控制器接口进行的。在正常操作开始之前,应先通过该接口加载用于控制操作方式的内部状态寄存器和用于查表计算的几个RAM存储表。可通过该接口提供的数据线和地址线直接访问芯片上一些重要的控制和状态寄存器以及存储统计信息的寄存器。这些统计数据对于判别实时模拟系统中视景子系统的过载情况很有用。芯片中的时序机以地址/数据寄存器逻辑方式控制芯片中所有其它存储位置及存储器接口的访问,时序机自动完成地址的增量操作和数据的格式转换。3D芯片还可以以调试模式运行,在外部控制器的控制下芯片可以以每次一个象素、一个扫描段、一个三角形等运行方式工作。
几何接口的控制部分控制FIFO存储器向3D芯片加载数据。在单芯片模式下,芯片的工作状态取决于FIFO中是否有可用数据及其下一级流水线的工作状态。在多个3D芯片协同工作的模式下,主控芯片的几何控制部分监测所有从属芯片是否已可接受新的几何数据。
三角形控制部分完成处理一个三角形所要求的所有控制。它最主要的任务是从几何接口的初始数据建立寄存器中向内部工作寄存器读取三角形处理所需的数据。在上一个三角形的最后一个扫描段仍在处理的时候,下一个三角形的有关数据就可以开始独立加载,使流水线开始准备新三角形的处理。三角形控制还启动分割过程,以决定当前扫描段是在三角形的哪一部分。扫描段初始化过程为扫描段控制产生开始数据。扫描段控制的主要任务是产生实际象素的x地址,标识那些在某些条件下已无需作进一步处理的象素数据,防止不必要的性能损失。几何部件必须保证三角形的处理不重叠,从而避免数据的不一致。
在所有流水线部件中没有被立即使用的中间结果和参数都存储在扫描段数据移位寄存器中。如果使用DRAM作象素缓存FIFO,其刷新周期将导致流水线暂停;在进行象素区域采样时如果访问扩展缓存也会导致流水线暂停;如果需要多次访问纹理缓存(如三线性滤波时),或由于纹理缓存刷新而未准备好,则与纹理映射无关的其它流水线部分一个时钟周期一个时钟周期地进行等待。
(2)几何接口
几何接口存储从外部FIFO存储器读入的数据,这些数据是具有不同类型的数据组。在几何接口和处理部件中对参数进行了缓冲,因而初始化和处理可以并行进行。如果要进行A-Buffer反走样操作,顶点的x
, y地址还需加上从查表得到的伪统计子象素偏量。
(3)光栅化处理部件
光栅化处理部件确定三角形内象素的地址,它可以工作在点采样模式和区域采样模式下。三角形光栅化沿着扫描线坐标上升的顺序从上到下进行,总是从具有最小y值的顶点开始,y坐标差值最大的边为主动边并决定扫描段插值的方向。扫描段初始化部件通过递增边的斜率来确定扫描段的起点和终点坐标。在点采样模式下,仅考虑其中心位于三角形几何边界之内的象素。对位于三角形边界或共享边上的象素仅处理一次。这既可以防止在alpha混合期间发生错误,还可以减少对帧缓存的访问次数。在区域采样模式下情况将复杂的多。为避免图形走样,所有仅被三角形部分覆盖的象素都必须做更细致的处理。必须确定它们被三角形所覆盖的区域。采用精确的算法其计算代价太大。通常采用近似的方法,如在一个象素内定义16个随机分布的采样点,并测试那些采样点被三角形所覆盖。
在区域采样时,柔性查表部件(FUP部件)分析将要处理的扫描段类型,根据扫描段包含顶点的多少(一个、两个或没有)可以将其分为七个不同的类型。这些信息连同扫描段的插值方向以及边的斜率的符号决定象素内实际的采样点。采样点的坐标传送给r、g、b、alpha、z产生器以计算该点相应的颜色、alpha及深度值。FUP部件可以处理多达150多种不同的情况,它的绝大部分功能以查表实现,共有8张表。这种实现方式使算法保持了某种程度的灵活性(柔性)。求交部件决定象素边界与正被处理的三角形边之间的交点,其公式和参数由FUP部件确定并传送给求交部件。交点的x
, y坐标的小数部分分别被截断为3个二进制位,将其连接成6位去查一个包含64个16位掩模字的表,掩模字中每一位的位置决定相应的采样点是否被覆盖。根据扫描段的处理方向和边的斜率的符号,掩模字中的位有时必须求反以获得所覆盖的采样点。当一个象素中有几条边经过时,将为每条边产生的掩模通过逻辑“与”运算得到最终的该象素的掩模。由于三角形边上象素的存在,相邻象素之间的距离在区域采样时并不总是等于1,这时简单的给r、g、b、alpha、z累加固定的变化量就会产生错误。当扫描段的起点和终点不在象素中心时就需要用乘法操作求得较精确的位置。为使这些值的计算能采用一致的公式从而简化设计,可选择平面方程这一通用形式。这样r、g、b、alpha产生器将具有相同的流水线结构。z产生器则稍有不同,它的数据宽度更大,需处理的情况更复杂。
在光栅化过程中,颜色或纹理地址的线性插值会引起透视失真。一种解决方法是将三角形细分成更小的三角形,但这会加重几何处理的负担。纹理映射是以适中的几何处理代价得到非常自然的物体外观,小的三角形会使纹理映射的这一优点大打折扣。为避免上述情况,就应实现真正的透视纹理映射(或称纹理的透视矫正),这需要为每个象素做一次除法。除法操作是用乘以z倒数部件所产生的倒数值来实现的。z值在进入求倒部件时要求规格化的浮点表示,这一浮点表示也同时传送给LOD部件,LOD部件用该值决定对应的MIP-map纹理细节层次。
(4)纹理部件
纹理部件是3D芯片中最复杂的部分,它由UV产生器、LOD部件、纹理地址部件、纹理缓存接口及纹理混合部件组成。纹理部件要处理的纹理是一个经过预滤波处理的MIP-map纹理图。该图中除了原始分辨率的图像之外还包括较低分辨率的称作细节层次(LOD:Level
Of Detail)的滤波图像。在较高分辨率的图像中将相邻四个象素的颜色值相加并做平均计算就可以得到较低分辨率的一个细节层次的滤波图象。一个1024×1024的原始图象经过如此处理最多可有11个LOD的滤波图像,LOD0
便是原始图像。并不是任何纹理的任何LOD都是有意义的,带有纹理的三角形将在其数据中包含有两个值以指明可用的纹理层次的范围。选择哪一个细节层次的纹理取决于采样点的深度坐标值。使用MIP-map可以避免采样不足而导致的走样现象。观察者和物体在纹理映射环境中的水平或垂直移动会产生失真现象。采用双线性插值混合来代替对纹理的点采样就可以消除这一现象。在双线性插值模式下,与采样点的u,v坐标最近的四个纹理象素按照它们到采样点的距离进行加权求和,其结果调整到颜色的表示范围后赋给该象素,这四个最近的纹理象素选自与采样点最近的细节层次。当逐渐接近场景时,细节层次间的切换会明显的感觉到。可用三线性插值混合来消除这一现象,具体来说就是在距采样点最近的两个细节层次中分别进行双线性混合,其结果再根据采样点的深度坐标加权混合。上面计算中用到的权值是预先计算好之后存放在一张表中,计算时通过查表直接获得权值。UV部件使用实际采样点的x,y坐标、z的倒数值及预计算的一组参数产生用于纹理映射的u
,v值。LOD部件在点采样和双线性插值混合时确定离采样点最近的细节层次滤波图象;在三线性插值时确定包围采样点的两个细节层次滤波纹理。纹理地址部件根据u,v
值、当前LOD、纹理颜色深度、纹理寻址空间等确定访问纹理存储器的物理地址。
纹理缓存接口有两组独立的数据总线和地址总线,其外接存储器的组织应满足一次访问可以读出任意四个相邻的32位纹理象素。选择不同的外接存储器,如DRAM、SRAM等会有不同的访问速度。DRAM由于有刷新周期而存在等待状态,SRAM则无等待状态,可减少由于存储器访问而导致的流水线暂停。随应用纹理的目的不同,可选择颜色(r,g,b)、光强(I)、或alpha值作为纹理。根据选择的纹理格式,纹理混合部件中的多路选择器将纹理字的各组成部分连接到相应的计算部件,各成分的计算并行进行并按双线性或三线性插值要求进行混合计算。
(5)融合部件
融合部件将r、g、b、alpha产生器流水线的结果同纹理流水线的结果结合在一起从而产生纹理映射表面的光照效果。也可以用三角形数据中的第二组颜色数据进行融合处理以产生淡入淡出效果。
(6)象素缓存接口
象素缓存是线性编址的,其字的宽度为80位,并由两个逻辑部分组成,一个真正的象素缓存和一个扩展缓存。在点采样模式下,象素缓存的每个地址存储了与象素有关的所有数据,它们包括颜色、alpha、深度及一些状态信息。在区域采样模式下,r、g、b、alpha分别被扩展4位以存储累加的中间值,另外还要存储16位象素区域掩模,还要为每个象素在动态寻址的扩展缓存中存储最多达四个的小数部分,这些小数部分是相关地址值的小数部分,用于与掩模和混合有关的计算。象素缓存接口从三个FIFO中读取数据:第一个FIFO仅包含完整的象素信息和第一个小数部分信息;第二个FIFO包含其余的小数信息及相关指针;第三个FIFO由独立的奇、偶地址存储块组成,包含扩展缓存的数据。
四、一个实例
上节我们从简单到复杂详细地剖析了一个3D芯片的硬件体系结构。本节我们对当前市场上有名的Voodoo芯片组做一简单分析,以建立3D芯片的完整印象。这里介绍的Voodoo芯片组是3Dfx公司的产品,支持PCI工业标准,可以对三角形数据进行实时明暗计算、纹理映射和光照计算。3Dfx公司为开发者提供了一个完整的应用驱动器库,他支持3Dfx的接口Glide以及标准接口如Direct3D、
OpenGL、 Heidi等。 Voodoo芯片组由两个芯片组成,一个是称为帧缓存接口的Pixelfx,一个是称为纹理映射部件的Texelfx,这是一个可扩展的体系结构。一个基本的Voodoo图形系统由一个Pixelfx芯片和一个Texelfx芯片组成。Voodoo图形体系结构的扩展配置会增加系统的功能和性能。Pixelfx
芯片配有自己的帧缓存,Texelfx芯片配有自己的纹理缓存,存储器选用EDO RAM,它们都采用多路交叉存储技术以提高系统的性能。Pixelfx连接PCI总线并完成所有与主机CPU的通信,它实现的3D绘制功能包括Gouraud明暗处理、alpha混合、高分辨率深度缓冲、高色调技术、子象素矫正(象素区域采样),它还包括可编程的雾化功能,并负责处理对帧缓存的连续地址访问。Pixelfx
还包括视频控制器,并负责将其输出的象素与Texelfx纹理映射部件的输出结合在一起以产生最后的输出象素。Texelfx芯片实现Voodoo系统的所有纹理功能,包括为每个象素做一次透视除法从而支持真正的透视纹理映射、多重纹理绘制、多细节层次的MIP-mapping、纹理反走样和反射(铬)纹理映射等。
Texelfx 的体系结构在许多方面与Pixelfx相似,两个芯片都有三角形绘制部件和三角形建立部件,并用三角形坐标计算绘制处理的参数。在Pixelfx
的三角形处理部件为源三角形内的每一个象素计算z、r、g、b、alpha等值的同时,Texelfx的三角形处理部件则将象素纹理从纹理空间映射到源三角形内的每个象素。然后,用计算得到的纹理象素坐标从纹理缓存器中读入一块纹理象素值,使用点采样或MIP-mapping方法得到最后的纹理值。这一结果送回Pixelfx以与其Gouraud明暗处理部件输出的结果合并。图4是Voodoo图形系统的框图。
五、未来技术趋势
图形硬件的研究历史可以划分为两个阶段。八十年代以前主要在军事领域研究发展,其应用目标是各类军用运输工具仿真模拟器的视景生成系统。八十年代早期,斯坦福大学教授Jim
Clark产生了用专用集成电路技术实现3D图形绘制处理器的设想,然后与其学生创立了SGI公司,并於1984年开发出了世界上第一个通用图形工作站IRIS
1400(可称为第一代高端通用图形系统)。第二代高端通用图形工作站的功能特征包括三角形的Gouraud明暗处理、Phong光照模型和硬件Z-Buffer算法。图象的真实感显著改善,几何变换及扫描转换性能大幅提高。代表性产品有HP公司的SRX和SGI
公司的GT系统,GT系统是第一个突破每秒10万个三角形的系统。第三代出现于1992年下半年,代表产品是SGI的Reality
Engine。它增加了纹理映射及全屏幕反走样,为通用图形工作站用于户外视景模拟打开了大门。虽然SGI新的Infinite
Reality在性能上比之于Reality Engine 有了很大的改进,但其基础依然是绘制纹理反走样的多边形。美国北卡大学研究的PixelFlow系统于去年发表了样机,它得到了HP公司的支持,是第一个对明暗处理语言提供实时支持的系统,但其硬件功能尚未超出第三代的范围。
即使是最快的可生成高质量图象的工作站如Infinite Reality图形加速系统仍是基于Gouraud明暗处理结合普通的纹理技术。作为通向更高真实感图形的重要一步,实时Phong明暗处理(Phong
Shading )以及凸凹纹理(Bump-mapping)是硬件目前研究的一个重点。已提出了许多Phong
明暗处理及凸凹纹理的硬件实现方案,但尚未取得突破。改进的环境映照、反射映照及更复杂的反射模型也是目前的一个研究重点,预计不久将出现在新推出的硬件当中。
当前PC图形正将上述第二代功能以低价推向市场,某些加速芯片和加速卡还提供一些第三代的功能特征。PC图形仍将继续继承由高端工作站所开创的新功能。由于绝大多数PC图形的解决方案是围绕一个ASIC芯片来设计,因而它与半导体技术的发展紧密相关。 |