判定存储单元存取请求顺序的方法

文档序号:6656446阅读:154来源:国知局
专利名称:判定存储单元存取请求顺序的方法
技术领域
本发明涉及一种判定存储单元存取请求顺序的方法,特别是一种在流水线式(pipeline)结构中判定存储单元存取请求顺序的方法,其为可弹性处理数据,达到减少流水线闲置及拥塞现象。
在目前的集成电路设计中,流水线式的结构设计已经是一种常见的设计方式,借由流水线式的结构,可将信号的处理流程分成数级,每一级都重复固定的动作,此种方法可将好几个动作分开执行,使中央处理器不必为了等待数据的读取、解码而浪费时间,这样,可大大提高中央处理器的效能。
以三维(3D)图像的数字数据处理而言,产生三维图像的处理程序需要相当多的步骤,大致来说,一般是先经由影像拾取后再进行选择,此称为布局阶段,然后再进入几何化阶段,这时的工作是影像旋转,然后,再进入区别明暗,三角形变为扫描线段的构成阶段,最后再进入影像再现阶段,由于在处理上述流程时,常需大量的像素数据搬移及运算处理,为创造一个理想化的数据存取方式,以增进存储单元在下载时的顺畅度,目前的三维加速器也使用流水线结构,如图1所示,其为一个n级流水线式的三维引擎的方块示意图,其包括一个n级三维引擎10、一个控制器11、一个仲裁器110及一个存储单元12,存储单元12存有多笔数据,这些数据包含颜色像素值(R、G、B),透明像素或阿尔发数值(alphavalue),深度数值(Z),网纹影像数据等,一般说来以上数据在下列情况时会被控制器11读出并提取执行,并在需要时再写回存储单元12内(1)由于每一级处理或运算的内容不尽相同,因此,有些级的处理会需要读取存储单元12中的影像数据(如有一级需要提取深度数值(Z)做一比对时,就会读取存在存储单元中的深度数值(Z)的数据),一般而言,为求运作时的顺畅度,一般皆会在此级及前二级(不一定是前二级,可视需要而定)各配置一个数据读取缓冲器130以及一个数据请求缓冲器131,并在一或二级(不一定是前二级,可视需要而定)前就发出一个数据读取请求指令,并先储存在数据请求缓冲器131中,以可使控制器11去存储单元12中提取所欲读取的数据,并将提取的数据先储存在数据读取缓冲器13中,当此级在运作时需要读取该笔数据时,就不用再花时间去存储单元中读取,这种做法可增进引擎10在运作时的顺畅度。以图1而言,在此流水线中的第4级及第n-2级就各配置有一个数据读取缓冲器13,并各在前二级(第2级)及前一级(第n-3级)时就先发出一个读取请求指令,并先预存在数据请求缓冲器131中,并在适当时间传入仲裁器110中,再由控制器11去存储单元12中提取所欲读取的数据,并将该笔数据先储存在数据读取缓冲器13中。
(2)有些级需要将数据存入存储单元中,如图1所示,第n级必须将运算的结果写入,并存至存储单元12中,可是有时存储单元12仍在进行其他运作,无法马上接受写入的数据,因此,为求运作顺畅,一般也会在此级配置一个数据写入缓冲器14,以将要写入的数据先存至此数据写入缓冲器14中,这样,引擎10就可继续运作而不会因无法将数据传出而发生延迟的现象。
另外,有时当两级间的运算相对速度相差太多时,也会在两级间设一个缓冲器,以图1为例,有时第二级的运算速度高出第三级的运算速度很多(或是第三级的运算速度高出第二级的运算速度很多),为防在运作时第二级运算完毕时要将运算结果数据输出至第三级时,第三级因运作速度较慢,无法马上接收第二级的输出数据,进而导致第二级发生拥塞状况,因此,在第二级及第三级之间也会设置一个像素缓冲器15,以储存由第二级所输出的像素数据,这样,可以继续动作,而不至发生拥塞情形。
由上述可知,一个完整的三维引擎(流水线)10大致都会设有一个以上的缓冲器,且这些缓冲器的动作是由控制器11所控制,这些缓冲器中的数据将被处理的顺序则由控制器11中的一仲裁器110决定,因此,当一个引擎10中设有多个缓冲器130、131、14、15,且有一个以上的缓冲器对控制器11发出数据存取的请求时,以往仲裁器110的做法是优先处理位于较大级数缓冲器中的请求(也称为下游的缓冲器),再处理位于较小级数缓冲器的请求(上游的缓冲器),但是此种做法存在下列问题1.若此时存储单元12正处于较忙碌状态,存储单元的频宽有限,无法一次处理多级的存取请求,若依以往仲裁器110的做法是会先处理较下游缓冲器14的数据,再处理较上游缓冲器131、15中的数据,而不考虑每一个缓冲器中的数据数量,因为每一个缓冲器所储存的数据数量不一定相同,且通常不同缓冲器的数据储存在不同的页面(页面为存储单元的单位,通常一个页面为4K比特)中,因此,现有的做法有可能使存储单元在忙碌时仍将时间浪费在转换页面的操作上(此种转换页面的操作一般称为页面失误),而非完全使用在存取数据上,使存储单元在忙碌时仍浪费在往返于各个缓冲器及控制器之间路径的时间也相对较多,这样,会使存储体的利用效能较低,在存储体频宽有限的状态下效率较低,会发生拥塞的问题。2.由于仲裁器110处理的顺序是固定的,也就是先处理较下游的缓冲器再处理较上游的缓冲器,此种顺序主要是考虑到若较下游的数据尚未清掉,而先清除上游的数据,同样会引起流水线拥塞现象,但是,若较上游的缓冲器是空的时,而较下游的缓冲器是满的,此时就会使两缓冲器之间产生泡沫现象,以图1为例,若此时第n-2级的数据读取缓冲器13是空的,而第n级的数据写入缓冲器14中尚存有数据时,按照仲裁器110现有仲裁处理的顺序必会先处理第n级数据写入缓冲器14中的数据直到将需写入缓冲器14中的数据都清空为止。此时,因为第n-2级的数据读取缓冲器13是空的,第n-2级就会产生闲置现象,连带过一段时间后,第n-1级及第n级也因第n-2级因闲置无输出而无法继续工作,连带也会产生闲置状态。
本发明的主要目的在于提供一种弹性地处理数据的判定存储单元存取请求顺序的方法,进而达到减少存储单元拥塞状况。
为达到上述目的,本发明采取如下技术措施本发明的一种判定存储单元存取请求顺序的方法,包括下列步骤a、首先,仲裁器检测目前存储单元的运作状态;b、依据该存储单元的运作状态,将该等待处理的缓冲器分为高优先处理群及低优先处理群;c、仲裁器首先处理高优先处理群的缓冲器,再处理低优先处理群的缓冲器。
其中在所述步骤b中,当仲裁器检测此时存储单元是处于忙碌状态时,先分别检视每一数据请求缓冲器及数据写入缓冲器中的数据数量,若数据数量超过设定的第一设定值,仲裁器即将这些超过第一设定值的缓冲器归类至高优先处理群中,未超过第一设定值的缓冲器则归类在低优先处理群中。
其中在所述步骤b中,当仲裁器检测此时存储单元并不忙碌,接下来仲裁器即分别检视所有待处理的数据请求缓冲器及数据写入缓冲器中,检视每一个缓冲器的数据是否超过我们所设定的等待时间,若超过,则将此缓冲器归类在高优先处理群中,若没有超过,则检查像素缓冲器的像素数目是否超过设定的第二设定值,若超过,则将此一缓冲器归类在高优先处理群中,若没超过,则将此缓冲器归类在低优先处理群中。
其中在所述步骤c中,当将所有的数据都分类完毕后,首先,仲裁器会先检测是否有任何高优先处理的缓冲器,若答案为是,仲裁器就先检查此第一笔待处理的缓冲器中是否为空的,若是空的,就轮替到处理下一个缓冲器,若不是空的,就开始处理此一缓冲器,并检查是否有分页失误的情形发生,若有,亦轮替到处理下一缓冲器,若不会发生页面失误的情形,则继续处理,直到处理完毕为止。
其中若该答案为否,仲裁器就处理归类为低优先处理的缓冲器,首先,先检查第一笔待处理的缓冲器中是否为空的,若是空的,就轮替到处理下一个缓冲器,若不是空的,就开始处理此一缓冲器,直到处理完毕为止。
其中在所述步骤c中,当将缓冲器都分类完毕后,仲裁器会先检测是否有任何高优先处理的缓冲器,若答案为是,仲裁器就先检查此第一笔待处理的缓冲器中是否为空的,若是空的,就轮替到处理下一个缓冲器,若不是空的,就开始处理此一个缓冲器,直到处理完毕为止。
其中若所述答案为否,仲裁器就处理归类为低优先处理的缓冲器,首先,先检查第一个待处理的缓冲器中是否为空的,若是空的,就轮替到处理下一个缓冲器,若不是空的,就开始处理此一个缓冲器,直到处理完毕为止。
其中在处理下一缓冲器的数据之前,所述仲裁器即会进行更新动作,以检查缓冲器的分类是否有改变。
下面结合附图及实施例对本发明进行详细说明


图1是一种具有n级的三维引擎加速器的方块示意图。
图2是本发明实施例的流程示意图。
图3是本发明实施例中当存储单元处于忙碌状态时仲裁器的处理流程图。
图4是本发明实施例中当存储单元并不处于忙碌状态时仲裁器的处理流程图。
图5是本发明实施例中当存储单元并不处于忙碌状态时,在多个流水线状态下,仲裁器的处理流程图。
如图2至图4所示,其为本发明一实施例的流程示意图,其大部结构同如图1所示,图2中,本发明实施例的流程包括如下步骤首先,进行步骤20,仲裁器110先测试目前存储单元12的运作状态,检测此时存储单元12是否忙碌,即步骤21。
若答案为是,代表此时存储单元12处于忙碌状态,若此时有数个数据请求缓冲器131以及数据写入缓冲器14的数据等待处理,此时进行步骤22,先分别检视这些数据请求缓冲器131及数据写入缓冲器14中的数据数量,若数据数量超过所设定的第一设定值,即步骤23,即将这些超过第一设定值的数据请求缓冲器131或数据写入缓冲器14归类至高优先处理群中,步骤24;未超过第一设定值的数据请求缓冲器131或数据写入缓冲器14则归类在低优先处理群中,即步骤25。
若答案为否,代表此时存储单元12并不忙碌,也就是说此时存储单元12内有较大的频宽可以运用,接下来进行步骤26,仲裁器110就先分别检视这些数据请求缓冲器131及数据写入缓冲器14其等待处理的时间,并检视是否已超过所设定的等待时间(步骤27),若超过,表示此一数据请求缓冲器131或数据写入缓冲器14可能已经等待处理较长时间,所以应先处理掉,因此,我们将此数据请求缓冲器131或数据写入缓冲器14归类在高优先处理群中(步骤24),若没有超过,表示可能等待的时间还不至造成延迟,接着就再检查像素缓冲器15中等待处理的像素数目(步骤28)是否超过我们所设定的第二设定值(步骤29),若超过,则将此像素缓冲器15归类在高优先处理群中(步骤24),若没超过,则将此像素缓冲器15归类在低优先处理群中(步骤25)。
如图3所示,本实施例中当图2中存储单元12处于忙碌状态时仲裁器110的处理流程图,当将所有的待处理的缓冲器131、14都分类完毕后,首先,仲裁器110会先检测是否有任何归类至高优先处理的缓冲器(步骤30),若答案为是,代表有至少一高优先处理的缓冲器待处理,仲裁器110就先检查第一个待处理缓冲器中的数据(步骤300)(即最早被归类为高优先处理的缓冲器)中是否为空的(步骤31),若是空的,就轮替到处理下一缓冲器中的数据(步骤32),若不是空的,就通知控制器11开始处理此一缓冲器(步骤33)内的第一个请求,当处理完此一请求后,在处理此一缓冲器下一请求前,仲裁器110会检查是否有页面失误的情形发生,然后再检查是否有页面失误的情形发生(步骤34),若有,即轮替到处理下一缓冲器131中的数据(步骤32),若没有发生页面失误的情形,则继续处理此一缓冲器中的数据,直到处理完毕为止,再轮替到处理下一缓冲器中的数据(步骤32),在处理完下一缓冲器的数据之前,仲裁器110即会进行更新的动作(步骤35),以检查缓冲器的分类是否有改变,例如有些缓冲器原来为高优先处理群,但在更新时更改为低优先处理群。
若答案为否,代表此时并无高优先处理的缓冲器待处理,接下来就处理归类为低优先处理的缓冲器,首先检查第一个待处理的缓冲器(即最早被归类为低优先处理的缓冲器)中是否为空的(步骤36),若是空的,就轮替到处理下一个缓冲器(步骤37),若不是空的,就开始处理此一缓冲器(步骤38),并检查是否有页面失误的情形发生(步骤39),若有页面失误的情形发生,亦轮替到处理下一笔数据(步骤37),若不会发生页面失误的情形,则继续处理,直到处理完毕为止,再处理下一缓冲器中的数据(步骤37),在处理下一缓冲器的数据之前,仲裁器110即会进行更新的动作(步骤40),以检查缓冲器的分类是否有改变。
如图4所示,是在图2中当存储单元12并不处于忙碌状态时仲裁器110的处理流程图,当将所有待处理的缓冲器131、14、15都分类完毕后,首先,仲裁器110会先检测是否有任何高优先处理的缓冲器(步骤41),若答案为是,代表有至少一个的高优先处理的缓冲器待处理,仲裁器110首先会先处理第一待处理缓冲器(即最早被归类为高优先处理的缓冲器)的,并检查缓冲器的数据是否为空的(步骤42),若是空的,就轮替到处理下一个缓冲器(步骤43),若不是空的,就开始处理此一缓冲器内的第一个请求(步骤44),当处理完一个缓冲器就轮替处理下一缓冲器(步骤46),直到处理完毕为止,在处理下一缓冲器的数据之前,仲裁器110即会进行更新的动作,以检查的缓冲器的分类是否有改变。
若答案为否,代表此时并无高优先处理的缓冲器待处理,接下来就处理归类为低优先处理的缓冲器,首先,先处理第一个待处理的缓冲器(即最早被归类为低优先处理的缓冲器)(步骤411),并检查此缓冲器中的数据是否为空的(步骤45),若是空的,就轮替到处理下一个缓冲器(步骤46),若不是空的,就开始处理此一个缓冲器,直到处理完毕为止(步骤47)再轮替处理下一个缓冲器(46),直到处理完毕为止,在处理下一缓冲器的数据之前,仲裁器110即会进行更新的动作(步骤49),以检查缓冲器的分类是否有改变。
值得一提的是,如图5所示,当控制器同时在处理多条流水线时,其控制器大致的控制流程和图4相同,在此不再多述,不同的是,当控制器处理完缓冲器中的一个请求后(步骤44),控制器就会检查这些流水线的处理速度是否相近,若为相近(又称为平衡状态(步骤49)),缓冲器就会继续处理,若不平衡,就会轮替处理下一缓冲器的请求(步骤43)。
藉由上述说明,本发明具有如下效果1、若当存储体忙碌时,仲裁器要判断多级缓冲器中的存取数据顺序时,此时即可藉由上述流程,优先处理数量较多(即超过第一设定值)的缓冲器的数据,再处理数量较少的缓冲器数据,减少页面失误以及往返于各个缓冲器及控制器之间路径的时间浪费,使处理的效能提高,较不易发生延迟的问题。
2.再来,优先处理等待时间较长的缓冲器数据,再处理像素数量较多的数据,如此也可解决现有设计所遇到的问题,以图1为例,若此时第n-2级的数据读取缓冲器13是空的,而第n级的数据写入缓冲器14中尚存有数据时,按照仲裁器110以往的做法是会引发流水线拥塞的问题的,但依照本发明的处理方式,若第n-2级的等待时间较第n级久,因此就先处理第n-2级的请求再处理第n级的请求,解决了现有技术中存在的问题。
权利要求
1.一种判定存储单元存取请求顺序的方法,其特征在于,包括下列步骤a、首先,仲裁器检测目前存储单元的运作状态;b、依据该存储单元的运作状态,将该等待处理的缓冲器分为高优先处理群及低优先处理群;c、仲裁器首先处理高优先处理群的缓冲器,再处理低优先处理群的缓冲器。
2.如权利要求1所述的方法,其特征在于在所述步骤b中,当仲裁器检测此时存储单元是处于忙碌状态时,先分别检视每一数据请求缓冲器及数据写入缓冲器中的数据数量,若数据数量超过设定的第一设定值,仲裁器即将这些超过第一设定值的缓冲器归类至高优先处理群中,未超过第一设定值的缓冲器则归类在低优先处理群中。
3.如权利要求1所述的方法,其特征在于在所述步骤b中,当仲裁器检测此时存储单元并不忙碌,接下来仲裁器即分别检视所有待处理的数据请求缓冲器及数据写入缓冲器中,检视每一个缓冲器的数据是否超过我们所设定的等待时间,若超过,则将此缓冲器归类在高优先处理群中,若没有超过,则检查像素缓冲器的像素数目是否超过设定的第二设定值,若超过,则将此一缓冲器归类在高优先处理群中,若没超过,则将此缓冲器归类在低优先处理群中。
4.如权利要求2所述的方法,其特征在于在所述步骤c中,当将所有的数据都分类完毕后,首先,仲裁器会先检测是否有任何高优先处理的缓冲器,若答案为是,仲裁器就先检查此第一笔待处理的缓冲器中是否为空的,若是空的,就轮替到处理下一个缓冲器,若不是空的,就开始处理此一缓冲器,并检查是否有分页失误的情形发生,若有,亦轮替到处理下一缓冲器,若不会发生页面失误的情形,则继续处理,直到处理完毕为止。
5.如权利要求4所述的在一流水线式结构中判定存储单元存取请求顺序的方法,其特征在于若该答案为否,仲裁器就处理归类为低优先处理的缓冲器,首先,先检查第一笔待处理的缓冲器中是否为空的,若是空的,就轮替到处理下一个缓冲器,若不是空的,就开始处理此一缓冲器,直到处理完毕为止。
6.如权利要求3所述的方法,其特征在于在所述步骤c中,当将缓冲器都分类完毕后,仲裁器会先检测是否有任何高优先处理的缓冲器,若答案为是,仲裁器就先检查此第一笔待处理的缓冲器中是否为空的,若是空的,就轮替到处理下一个缓冲器,若不是空的,就开始处理此一个缓冲器,直到处理完毕为止。
7.如权利要求6所述的方法,其特征在于若所述答案为否,仲裁器就处理归类为低优先处理的缓冲器,首先,先检查第一个待处理的缓冲器中是否为空的,若是空的,就轮替到处理下一个缓冲器,若不是空的,就开始处理此一个缓冲器,直到处理完毕为止。
8.如权利要求4或5或6或7中任一项所述的方法,其特征在于在处理下一缓冲器的数据之前,所述仲裁器即会进行更新动作,以检查缓冲器的分类是否有改变。
全文摘要
一种判定存储单元存取请求顺序的方法,包括下列步骤:a、仲裁器检测目前存储单元的运作状态;b、依据该存储单元的运作状态,将该等待处理的缓冲器分为高优先处理群及低优先处理群;c、仲裁器首先处理高优先处理群的缓冲器,再处理低优先处理群的缓冲器,根据上述步骤;本方法可弹性地处理缓冲器数据,达到减少存储单元拥塞现象,以使存储单元的频宽能有效利用。
文档编号G06F12/08GK1380609SQ0111057
公开日2002年11月20日 申请日期2001年4月11日 优先权日2001年4月11日
发明者廖明豪, 白宏达 申请人:矽统科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1