改进内存系统性能的页面收集器的制作方法

文档序号:6655764阅读:233来源:国知局
专利名称:改进内存系统性能的页面收集器的制作方法
技术领域
本发明关于一计算机系统的内存存取,更具体而言,是关于一计算机系统中用以改进内存存取操作性能的页面收集器。
计算机系统依靠内存系统以贮存处理器所处理的指令以及数据,内存装置的贮存容量以及速度二者都有惊人的进展。然而,内存装置的速度尚未能够跟上现行微处理器速度增加的脚步,结果导致最先进计算机系统的速度受限于数据以及指令从内存装置存取的速度。
于一典型的计算机系统中,处理器经由处理器总线以及内存控制器与内存通信,典型体内存系统包括单列直插式内存模块(singlein-line memory module,SIMM)以及双列直插式内存模块(dualin-line memory module,DIMM)。内存模块典型包括一或多组(bank)并行连接的内存芯片,并于存储器组(memory bank)的每一个内存地址储存一个字符组数据。
典型内存模块中存取延迟的理由之一,是每一个内存芯片包括一或多个数据线,处理数据写入至内存芯片以及从内存芯片读取数据。同样地,相对应的内存控制器包括一数据总线,处理从每一个内存芯片的数据写入以及读取,或者,内存芯片的数据总线可以直接连接到处理器数据总线的一部份。因此,每一次内存转换的存取,无论从读取操作转换至写入操作,或者从写入操作转换至读取操作,数据均以相反方向从数据总线传输。等待内存总线完成、以及可能相对应于前一次存取的内存控制器总线所需要的时间,一般称作总线反转时间(bus turn-around time),通常延迟至少一个工作时脉周期(clockcycle)。
于一典型动态随机存取内存(DRAM)之内存系统中,每一个内存芯片包含一内存存储单元(memory cell)数组,藉由水平线(行)以及垂直线(列)而互相连接。每一个内存存储单元贮存单一的位(bit),并且藉由内存地址存取,内存地址包含索引内存数组之一列的列地址、以及索引内存数组之一行的行地址。因此,每一个内存地址指向由列地址所指定的列与由行地址所指定的行所交叉处的内存存储单元。
为了要限制大小,每一个内存芯片通常只包括足够的地址接脚(pin),以于不同的时间,也就是并非同时,指定列地址以及行地址。因此,典型的内存控制器是先传输行地址,然后传输列地址,以依序存取一内存位置。具体而言,内存地址控制器将行地址放置到内存地址总线上触发一行地址选择(row address select,RAS)信号然后将列地址放置到内存地址总线上以及触发一列地址选择(column address select,CAS)信号。为了确保适当的时间安排,内存控制器于触发RAS与触发CAS之间延迟一短暂时间,也就是RAS/CAS延迟(RAS/CAS delay)。
一种被称为页面模式(page mode)的技术被开发出来,以消除连续存取相同内存行时的RAS/CAS延迟。因为大多数的程序执行本质上是连续的,程序执行常常沿着内存的一行进行。当在页面模式中时,内存控制器中的行比较器将现行存取中之内存位置的行地址,与下一次内存存取的行地址做比较,如果行地址相同,称为页面命中(page hit),则行比较器使得内存控制器继续在现行总线周期的结束处继续触发RAS信号。由于被存取的内存是由正确的行地址所导引,新的列地址立即转移到内存,而不会有RAS/CAS延迟。
另一种内存延迟,称为预充电延迟(pre-charge delay),通常发生在每一次内存读取操作之后。一动态随机存取内存位置的内存读取,是将内存存储单元部分充电或放电、然后将内存存储单元完全再次充电或放电。预充电延迟指的是完成这些充电以及放电周期所需要的时间。
预充电延迟的次数可以藉由将一记忆系统分开成为二个存储器组、以及将连续的内存位置交错(interleave)安排于这二存储器组中而降低。交错意指将连续的数据字贮存于交替的存储器组中,例如,将所有偶数地址的数据字贮存于第一存储器组,以及将所有奇数地址的数据字贮存于第二存储器组。当使用一交错的内存结构(interleaved memory architecture)来连贯读取被连贯地寻址之数据字时,第二数据字可以在当第一存储器组于第一数据字从第一存储器组读取之后预充电时,从第二存储器组读取出来。因此,预充电延迟于每一次一数据字从不同于前一次数据字所存取之存储器组的存储器组读取时被隐藏起来。
虽然上述讨论的先有技术降低于内存中存取数据的延迟,然而延迟依然经常发生。特别是,从读取转换至写入时仍然会发生读取/写入转换延迟,反之亦然。RAS/CAS延迟在存取的记忆行改变时也会发生,而且于连贯读取相同的存储器组时也依然会发生预充电延迟。当一或多个内存要求同时从一图形控制器以及系统处理器提交内存请求时,情况会更加恶化。先有技术内存控制器只是利用一种轮流的优先权方法,其中能够提出内存请求的内存存取请求器在每一个内存请求之后转换,这样的轮流的优先权方法降低接收连贯读取或写入请求至相同记忆列的机会,但是增加读取/写入转换的数量以及连贯请求至相同存储器组的数目,因此增加一些情况下的内存存取延迟。
通常的内存系统包括

图1所例示的动态随机存取内存11,通过内存控制器15由处理器13存取。处理器13通过第一总线12发出请求至内存控制器15,而这些内存请求若非读取请求即是写入请求。内存控制器15透过第二总线14连接至动态随机存取内存11。
本发明的页面收集器暂时保留写入请求并且传送读取请求,以便使得读取请求预先发出以增进系统性能。
页面收集器置于内存控制器以及处理单元之间。页面收集器接收一连串的内存请求,并且能够保留写入请求。每一个写入请求包括一具有页面标记的地址。页面收集器包括一用以重新编排写入请求顺序的控制器,将具有相同页面的写入请求分组归类在一起。换句话说,具有相符合的行部分的写入请求被保留且分组归类在一起。所产生的重新编排过的写入请求接着被提供至内存控制器。藉助将具有相同页面的写入请求分组归类在一起,可以减少内存存取时页面丢失的不利结果。
页面收集器具有三个特征以增进内存存取的性能。第一是其暂时保留写入请求并且立即通过读取请求,这使得处理器单元更早读取回数据。第二是其将写入请求分组归类至相同的页面,然后当符合一预设的标准时将它们依序传送。第三是其保持数据的连贯性,从而提供如同高速缓存那样的功能以降低内存存储单元存取的次数。
图1为一简化的方框图,说明与内存控制器一起的通常内存系统。
图2为说明一内存系统的方框图,一内存控制器带有一本发明所提供之页面收集器。
图3详细说明组合有一接口电路之页面收集器。
图4详细说明图3所示之收集装置。
图5详细说明图4所示之缓冲器与一比较电路合作。
图6显示页面收集器的控制器如何运作。
本发明之一优选实施例如图2所示,将一独立的页面收集器24置于一处理器22与一内存控制器26之间。或者,页面收集器24的功能可以并入内存控制器26或设计于处理器22中。
页面收集器24,如同以下所述会更加明显,在内存请求顺序进入内存控制器26之前重新安排其顺序,此重新安排的操作加速内存存取。尤其,页面收集器24的功能之一是尽可能久地保留写入请求,并且将读取请求尽可能快地送至内存控制器26。页面收集器24的另一功能是,使用多个缓冲器以便将写入请求分组归类至相同的页面,使得页面丢失的不利结果降低。再者,页面收集器24同时提供如同高速缓存那样的机制以维持数据的连贯性。
如同图3所例示,页面收集器24包括一接口电路30、一页面收集器控制器32、以及一收集装置34。接口电路30分别经由一第一总线31以及一第二总线33连接至处理器电路22以及内存控制器电路26。接口电路30从处理器电路22处收到一内存读取请求之后,页面收集器24检查其能否提供数据。如果页面收集器24具有需要的数据,接口电路30藉由收集装置34以及控制器32的协助,将所需要的数据反送回处理器电路22。另一方面,如果页面收集器24没有该数据,读取请求被基本上立即且无延迟地传送至内存控制器电路26。在内存控制器电路26存取动态随机存取内存28且获得该数据后,接口电路30接着将该数据传送到处理器电路22。
如果有空间贮存对应于请求的地址以及数据,则写入请求被贮存于页面收集器24中,否则,页面控制器24必须送出一些悬而未决且已经贮存于收集装置34中的写入请求。这些悬而未决的写入请求,其被个别地分组归类至相同的页面,依序被送到内存控制器电路26。
除了介于接口控制器30与控制器32间之信号线39上的一些接口信号以外,REQ、ADDR、以及DATA信号也被用来进行接口电路30与页面控制器32间的通信。从接口电路30来的内存请求包括例如请求类型(REQ)、存储地址(ADDR)以及数据(DATA)等信息。其它用在信号线39上的接口信号全部视设计选择以及设计的复杂程度而定,例如,于一双组内存系统中(dual-bank memorysystem),记忆地址(ADDR)信号可能包括一具有十五位的行地址值、一具有一位的组值(bank value)、以及一具有八位的列地址值,且行地址值与组值共同组成存取内存的页面值。
当页面收集器控制器32送出command信号以控制收集装置34的动作时,控制器32同样也送出地址以及数据信息。从控制器32的地址输出分成二个信号,index以及tag。而index的功能是选取收集装置34中所提供的所有缓冲器40中的其中之一,其在后文叙述中会更加清楚。也就是,页面收集器24的控制器32,响应REQ、ADDR以及DATA信号,产生包括command、index、tagin以及datain等信号以操作收集装置34。例如,控制器32可能使用行地址值的二低位,以及ADDR信号线上的信号值,也就是对于前文所述之双组内存系统而言总共三个位,以构成index信号。其余的位,也就是21位,一起构成tag信号。当采用这样的方法时,收集装置34具有八个缓冲器。控制器32从收集装置34接收状态信号,包括hit、full、tagout以及dataout信号。于一优选实施例中,command包括MATCH、APPEND、UPDATE、或OUTPUT信号。如后所述,每一个缓冲器包括多个存储单元,每一个存储单元具有一卷标字段(tag field)以及一数据字段(data field),以分别对应于一写入请求而贮存一卷标值以及一数据值。内存请求的分组归类系通过index信号的安排而达成。每一次控制器32发出一指令,从控制器32之地址输出中进入的tagin信号,与贮存于由index信号所选取之缓冲器的每一个存储单元中的卷标值进行比较,如果比较结果是相符合,则触发(assert)一对应于该存储单元的命中位(hit-bit)。接着将这命中位输入到对应的存储单元,以根据指令的类型启动对存储单元的操作。所有的命中位一起进行“或”逻辑运算以产生命中信号输入到控制器32。从收集装置34来的full信号表示,收集装置34的每一个缓冲器内所有的存储单元贮存着有效的数据,而且没有存储单元可以用来作为更进一步的贮存。
图4说明收集装置34的一优选实施例,其包括数个缓冲器40。信号command、tagin以及datain被输入到所有的缓冲器40。如前所述,index信号只选取其中之一缓冲器40,被index选取的缓冲器40根据command的类型处理tagin以及datain。每一个缓冲器40输出多数个有效位,分别对应于缓冲器40中的多数个存储单元,并且输出一full信号、一tagout以及一dataout信号。每一个缓冲器40中的存储单元输出其中的卷标值到比较电路42,比较电路42同样也输入tagin信号。每一个存储单元的卷标值与tagin信号的比较结果以命中位代表,输入到每一个对应的存储单元。如前所述,所有的命中位一起作“或”逻辑运算以产生命中信号输入到控制器32,将tagout以及dataout信号输入到控制器32。在一优选实施例中,command包括MATCH、APPEND、UPDATE或OUTPUT信号。MATCH指令使得缓冲器40检查存储单元中是否有一卷标与信号线tagin上进入的卷标相符合,如果有一符合者,则触发一对应的命中位信号以及hit信号,且当其为一读取(READ)请求时从缓冲器40读取数据,否则,使命中位信号失效(de-asserted)。当触发hit信号时,命中位信号的值被转换成地址值以贮存至一Update指针寄存器53,以下会进一步说明Update指针寄存器53。根据hit信号,MATCH指令选择性地使用刚提到的地址值设定Update指针寄存器53,并且在如果有一命中情况时将数据送回。APPEND指令使一组卷标(地址)以及数据以附加的方式储存于缓冲器中。UPDATE指令指明取代或更新存储单元中的数据,该存储单元藉以datain信号上的值由Update指针寄存器53指明。OUTPUT指令使得一组数据以及卷标从缓冲器输出。所要注明的是,由指令所操作的存储单元,是具有与tagin信号上进入的卷标值相同地址值的存储单元。
图5说明缓冲器40的一优选实施例、连同比较电路42。缓冲器40包括复数个存储单元50,以及指明缓冲器中要进行存取之存储单元的位置的三个指针寄存器。在该优选实施例中,该复数个存储单元50是以一环状缓冲器结构(ring buffer structure)的形式安排,每一个存储单元50包括一数据字段以及一卷标(地址)字段,且缓冲器40中之存储单元50的位置是分别由前端指针寄存器(Head pointer register)51、尾端指针寄存器(Tail pointer register)55以及更新指针寄存器(Update pointer register)53所表示。前端指针寄存器51指向要在下一次将数据以及地址读取出来的存储单元,尾端指针寄存器55指向地址以及数据要被附加至其中的存储单元,更新指针寄存器53指向数据以及地址值可以被更新的存储单元。如同稍前所述,当hit信号被触发时,命中位信号被转换成一地址值,以便贮存到更新指针寄存器53,且UPDATE指令以datain信号上的值取代存储单元中的数据,该存储单元由更新指针寄存器53所表明。这三个指针寄存器对从控制器32来的command信号操作。
缓冲器40中具有二个有效位以及命中位的数组,有效位表示相对应的存储单元是否贮存一有效数据,且命中位表示相对应的存储单元是否贮存一卷标值与出现在tagin信号线上进入的卷标值相同。所有的命中位信号一起进行“或(OR)”逻辑运算,以形成命中信号,而所有的有效信号进行“或(OR)”的逻辑运算,以形成full信号。
比较电路42包括数个AND、OR电路以及相较(Compare)电路54。每一个比较电路54用以比较从一个相对应存储单元所输出之卷标值与tagin信号线上的卷标值,比较结果输入至一个相对应的AND电路,另一个AND电路的输入是一相对应于存储单元50的有效位(valid bit)。AND线路的输出是前述的命中(hit)位信号。
当控制器32发出一MATCH指令时,每一个由index所选取之缓冲器中的卷标,只要相对应于存储单元的有效位被触发的(asserted),即分别与进入的卷标值进行比较。比较结果可能是命中或者未命中(miss),这个结果在必要时用来控制UPDATE动作。如果控制器32发出一UPDATE指令,进入的数据被写入至其命中位被触发的存储单元50。当控制器32发出一APPEND指令,缓冲器40将datain信号线上的数据值、以及tagin信号线上的卷标值,贮存到由尾端指针寄存器55所指向的存储单元50,并且,尾端指针寄存器55接着增加或者减少来指向下一个存储单元。当控制器32发出一OUTPUT指令,缓冲器40将前端指针寄存器51所指向之存储单元50中所储存的数据以及卷标送出,并且,前端指针寄存器51接着增加或者减少以指向下一个存储单元。
图6说明本发明之页面收集器24操作所依据之流程图。总而言之,当页面收集器24从处理器22收到一内存请求之后,页面收集器24首先检查其中所储存的地址值,是否有与内存请求所指定的地址值相等。如果有符合者而且牵涉到读取运算,页面收集器24从本身取得数据并且将数据送回处理器22。否则,也就是请求系为写入时,页面收集器24藉助发出一如上所述之UPDATE指令以更新储存于相对应存储单元中的值。
当没有相符合的地址、且请求为读取时,页面收集器24仅将读取请求送到(发出至)内存控制器26而没有任何内部动作。另一方面,如果内存请求为写入,且收集装置34中的缓冲器并未装满(full)时,页面收集器24将对应于该请求的数据以及地址(卷标)值,附加至一存储单元中,其中该存储单元是尾端指针寄存器55值所指向的且具有一失效的(de-asserted)有效位。另一方面,如果缓冲器已经装满,页面收集器24首先将缓冲器中所有的写入请求发送至内存控制器26,然后将相对应于现行写入请求的数据以及地址值附加至一存储单元中。
权利要求
1.一页面收集器电路,与一处理器电路以及一内存控制器电路共同工作,其特征是包括一接口电路,分别经由一第一总线以及一第二总线连接至该处理器电路以及该内存控制器电路,该接口电路响应该第一总线上的一个内存请求信号,选择性地发出一内存请求类型信号、一地址信号以及一数据信号,且该内存请求信号选择性地包含写入请求以及读取请求;一收集装置,具有N个缓冲器,每一个缓冲器贮存M组地址信息及数据信息于其中,该收集装置选择性地比较该地址信息与该地址信号,以及选择性地输出M组中之一组地址信息以及数据信息,N为大于一的整数,M为大于一的整数;以及一控制器装置,经由一第一地址总线以及一第一数据总线连接至该接口电路,该控制器装置经由一第二地址总线以及一第二数据总线连接至该收集装置,该控制器装置响应该内存请求类型信号,并根据一预定的方法而操作,以便将从该处理器电路发出的一第一系列内存请求重新排序成一第二系列内存请求、并发出该第二系列内存请求至该内存控制器电路。
2.根据权利要求1的页面收集器电路,其中该收集装置包含一比较电路,用以比较该地址信号与贮存于每一个缓冲器中的地址信息。
3.根据权利要求2的页面收集器电路,其中每一个该缓冲器包含M个存储单元,每一个存储单元贮存一组地址以及数据信息;寄存器,个别地用以指向缓冲器中要存取的存储单元的位置;M个有效位,每一个有效位指令贮存于一相对应存储单元中的数据是否有效;以及M个命中位,每一个命中位表示对于一相对应存储单元的比较电路的比较结果。
4.根据权利要求3的页面收集器电路,其中该寄存器包含一前端指针寄存器,用以指出一用于读取操作的存储单元;一尾端指针寄存器,用以指出一用于附加操作的存储单元;以及一更新指针寄存器,用以指出一用于置换操作的存储单元。
5.根据权利要求3的页面收集器电路,其中该比较电路包含一比较电路,用以藉助比较地址信号与贮存于该收集装置中之地址信息产生一第一输出信号;以及一“与”电路,用以藉助对于从该比较电路的输出信号与M个有效位中之一进行“与”逻辑运算,而产生M个命中位之一。
6.根据权利要求1的页面收集器电路,其中该页面收集器电路暂时保留该写入请求,并且即刻通过该读取请求,和该页面收集器电路将内存写入请求分组归类至相同的页面,然后当符合一预设的准则时将该内存写入请求依序传送。
全文摘要
一种3D图像数字编码方法,将传统的立体隔行扫描视频图像,经特定软件转换成为具上、下分割画面的图像后,即形成一个上半部为一左(或右)眼图像及下半部为右(或左)另一眼图像的分割画面的视频图像文件,再以MPEG进行数字图像数据压缩,而此上、下分割画面的视频图像压缩文件经MPEG播放器或MPEG解码器,输出至3D立体图像产生器处理后,即可让使用者戴上3D立体眼镜,在CRT显示器上,观赏3D立体动态视频图像,而无任何闪烁现象。
文档编号G06F12/00GK1332411SQ0110995
公开日2002年1月23日 申请日期2001年3月26日 优先权日2000年6月29日
发明者吕忠晏 申请人:矽统科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1