用于处理器端设备中的高效缓存方法及输入缓冲装置的制造方法_3

文档序号:8361366阅读:来源:国知局
使能控制电路的输出端连接;请求排序电路用于请求写入各子缓冲中时,将请求按照对应的使能信号进行排序,按照排序后的请求输出至各子缓冲,使得使能信号为高的请求按照规定的顺序进彳T排序。
[0049]参见图6,请求排序电路包括依次连接的请求统计部分、加法器以及排序部分,请求统计部分用于依据请求的使能信号按照规定的请求顺序统计出位于各个请求之前的有效请求个数。如对于A0、A1、A2、A3四个请求,在某一拍其使能信号为4 ‘blOlO,则AO之前有效请求的个数为0,A1之前有效的请求个数为I (只有AO有效),A2之前有效的请求个数为2 (A0和A2有效),A3之前有效的请求个数为3 (A0、A2和A3有效)。加法器用于将统计出的请求数和指针控制电路传递来的指针L进行加法操作,排序部分则根据各个请求的使能信号和加法器得出的结果从大到小对请求进行排序,若出现两个或多个请求进行完加法操作后值相等的情况,则按照规定的请求顺序选出位于高顺序位的请求。
[0050]如图8所示,Busy产生模块包括请求数判断单元以及Busy产生器,请求数判断单元用于判断请求缓冲模块中请求数的总和是否超过预设阈值,若为是,启动Busy产生器产生Busy信号并发送至各请求通路。当读、写请求分离存储时,则需要同时设置读缓冲判断电路和写缓冲判断电路,Busy产生器为一个或逻辑,将读缓冲判断电路和写缓冲判断电路产生出的信号值进行逻辑或操作,产生Busy信号。
[0051]由于请求通路并不必须是同时包含读写缓冲,则还可根据实际需求将读、写缓冲独立或分离设置。与输入缓冲相连的多条请求通路中,若均为可以同时传送读请求和写请求的混合通路,则可只设置写请求缓冲;若请求通路均为只传送读请求的通路,则可只设置读请求缓冲;若请求通路中一部分为只传递读请求、另一部分为只传递写请求的通路,则可设置分离的读请求、写请求缓冲,使读请求全部存放在读请求缓冲中、写请求全部存放在写请求缓冲中。
[0052]如图9所示,本实施例请求缓冲模块具体包括用于缓冲读请求的读请求缓冲单元、用于缓冲写请求的写请求缓冲单元;请求管理模块包括请求识别与统计单元以及管理FIFO单元,请求识别与统计单元用于识别源设备发送的请求类型并统计其中读请求、写请求的个数,通过管理FIFO单元存储每拍统计得到的读请求、写请求的个数。管理FIFO单元通过先入先出FIFO序列的行数据高位存放读请求个数、低位存放写请求个数。。
[0053]本实施例中,读请求缓冲单元包括依次设置的M个子缓冲1~M,写请求缓冲单元2包括依次设置的N个子缓冲1~N,M和N均为2的幂次方,通过分离的读请求缓冲单元1、写请求缓冲单元2分别缓冲读、写请求。请求写入控制单元分别对应于读请求、写请求设置读请求写入电路、写请求写入电路,请求读出控制单元分别对应于读请求、写请求设置读请求读出电路、写请求读出电路。请求识别与统计单元分别与读请求写入电路、写请求写入电路连接,将读请求、读请求个数发送至读请求写入电路,以及将写请求、写请求个数发送至写请求写入电路。管理FIFO单元7分别将存储的每拍读请求、写请求的个数发送至读请求读出电路、写请求读出电路。
[0054]本实施例中,读请求写入电路、写请求写入电路、读请求读出电路以及写请求读出电路均包括上述指针控制电路、使能控制电路、彳丁控制电路。指针控制电路中存储有起始子缓冲位置指针L以及各子缓冲存储位置所在的行位置指针H构成的全局指针,使能控制电路根据起始子缓冲位置指针L,生成使能信号,行控制电路根据行位置指针H更新目标子缓冲的存储位置指针。
[0055]本实施例中,读请求读出电路由指针控制电路、使能控制电路以及行控制电路三部分构成,通过指针控制电路首先把读缓冲的全局读指针发送给使能旋转电路和行控制电路,然后计算出进行请求读出操作结束后的全局读指针,即将读请求数加上进行请求读出操作前的全局读指针得到更新后的全局读指针值。使能控制电路根据指针控制电路传递过来的指针L的值,得到进行请求读出操作的各个子缓冲的读使能信号。行控制电路根据指针控制电路传递过来的指针H的值更新存储位置指针,得到读指针。写请求读出电路与读请求读出电路的结构相同,所不同的是写请求读出电路是控制写请求的读出操作。
[0056]将源设备的请求写入请求缓冲模块中时,读请求写入电路和写请求写入电路接收到待写入的请求和请求数后,进行写入的预处理操作,产生写入使能信号、写入存储位置指针并输出排序后的请求,根据写入使能信号、写入存储位置指针控制将当拍到达的排序后的请求写入到对应的子缓冲中;在进行请求写入操作的同时,若缓冲不空且下一站要求请求流出,则开始进行请求的读出操作,首先在从管理FIFO单元中取出当拍需要读出的请求数后,由读请求读出电路、读请求读出电路进行读出的预处理操作,产生读出使能信号、读出存储位置指针,根据读出使能信号、读出存储位置指针控制将请求读出对应的子缓冲。Busy产生模块对读请求缓冲单元、写请求缓冲单元进行实时监控,一旦判读到读缓冲或写缓冲出现存放的请求数超过阈值的情况,即读请求总数或写请求总数超过阈值时,产生Busy信号并输出至各请求通路。
[0057]如图10所示,本实施例输入缓冲装置执行请求写入流程,包括:
①进行写入判断,若有请求到达输入缓冲,则开始进行写入操作,转入步骤②,否则转入步骤⑤;
②从请求识别与统计电路中取数据,包括请求和请求数,转入步骤③;
③在写入电路中进行写入的预处理操作,产生写使能信号、写指针以及排序后的请求,转入步骤④;
④利用写使能信号、写指针以及排序后的请求对缓冲进行写入操作,转入步骤⑤;
⑤当拍写入操作完成,开始下一拍的写入操作,转入步骤①;
如图11所示,本实施例输入缓冲装置执行请求读出流程,包括:
①进行读出判断,若满足缓冲不空且下一站要求请求流出,则开始进行读出操作,转入步骤②,否则转入步骤⑤;
②从管理FIFO单元中取数据,转入步骤③;
③由读出电路中进行读出的预处理操作,产生读使能信号和读指针,转入步骤④;
④利用读使能信号和读指针对缓冲进行读出操作,转入步骤⑤;
⑤当拍读出操作完成,开始下一拍的读出操作,转入步骤①。
[0058]由于读、写缓冲分离,则在读请求缓冲单元或写请求缓冲单元的总深度接近预设阈值时才控制发送Busy信号。如图8所示,本实施例中Busy产生模块的请求数判断单元包括读缓冲判断电路以及写缓冲判断电路,读缓冲判断电路、写缓冲判断电路分别连接Busy产生器。读缓冲判断电路将读请求缓冲单元存放的请求总深度和读请求缓冲单元非溢出时存储空间阈值进行比较,产生一位信号标志读缓冲是否有溢出的危险,若读缓冲存放请求总深度大于读缓冲非溢出时存储空间阈值,则产生的信号为高电平,反之为低电平。写缓冲判断电路将写请求缓冲单元存放请求总深度和写请求缓冲单元非溢出时存储空间阈值进行比较,并产生一位信号标志写缓冲是否有溢出的危险,若写缓冲存放请求总深度大于写缓冲非溢出时存储空间阈值,则产生的信号为高电平,反之为低电平。Busy产生器为一个或逻辑,将读缓冲判断电路和写缓冲判断电路产生出的信号值进行逻辑或操作,产生Busy信号,若产生的Busy信号为高,则将Busy信号传递到源设备,使得暂停源设备发送请求。
[0059]本发明具体实施例中写入请求如图12所示,缓冲中包含有T个子缓冲,当T等于M时,表示的是读缓冲的写入操作;当T等于N时,表示的是写缓冲的写入操作。与传统的输入缓冲不同的是,本实施例输入缓冲装置所包含的子缓冲没有与请求通路一一对应,而是分离开来。进行写入操作前,请求写入电路进行写入预处理操作,产生出对应于各个子缓冲的写使能、写指针以及排好序的请求通路中的请求。根据起始子缓冲位置指针L的位置不同,各个子缓冲的写指针位置也不一样,可能位于同一行也可能位于相邻的两行,如图中各个子缓冲对应的写指针位于相邻的两行。从全局写指针指向的位置处开始,结合各个子缓冲对应的写使能信号和写指针将排好序的请求依次写入到缓冲中。写入操作结束后,全局写指针根据实际写入缓冲中的请求数进行移动,如图中的起始子缓冲位置指针L指向了子缓冲2而行位置指针H指向了下一行。更新得到的全局写指针会保存在请求写入电路的指针控制电路中,方便下一次写入操作的进行。各个子缓冲对应的写指针在得到新全局写指针信号后,迅速进行移动。如图中填充部分所示,写指针1、写指针Q+1到T都下移一行,其余的写指针没有变化。按照上述假设写入3个(RP、RP+1、Rp+2)请求时,各请求是按顺序依次紧密的存储,因而没有“气泡”现象,存储空间利用率得到了较大提高。
[0060]传统的输入缓冲写入机制如图2所示,请求通路I到T分别与子缓冲I到T直接相连,进行写
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1