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

文档序号:8361366阅读:467来源:国知局
用于处理器端设备中的高效缓存方法及输入缓冲装置的制造方法
【技术领域】
[0001]本发明涉及处理器输入缓冲技术领域,尤其涉及用于处理器端设备中的高效缓存方法及输入缓冲装置。
【背景技术】
[0002]处理器的设计随着半导体工艺的不断进步而变得越来越复杂,在当前的处理器中普遍存在着由多个源设备向某个端设备发送请求的情况。当端设备和源设备距离比较远或处于不同时钟域时,端设备的Busy信号则需要多拍才能够传递到源设备中,因而在源设备收到Busy信号之前对已经发出的请求必须能够进行有效地存放和正确地处理。在端设备中添加输入缓冲便是一种常见的解决上述问题做法,高效的端设备中输入缓冲技术也是提高设备间传输效率的重要环节。
[0003]无缓冲片上网络是端设备输入缓冲技术的一项重要应用,如图1所示,假设在无缓冲片上网络中通过端设备A与源设备B、C和D间的请求通路有3、2和3个网络节点,且端设备A与源设备B、C和D间的站间数目分别为I级站出、I级站出和2级站出,则端设备A向源设备B、C和D发出的Busy信号分别需要2、2和3拍才能有效送达。当端设备A中输入缓冲接近阈值时,会向源设备B、C、D同时发送Busy信号,源设备B、C、D接收到Busy信号后将不再发送请求。显然,端设备A发出Busy信号之后需要接收的来自源设备B、C和D的请求数分别为4、3和5,而由于各个网络节点采用无缓冲策略不存储请求,故端设备A中输入缓冲在发出Busy之后需要至少能够接收这12个请求,且必须维护请求中的写访问之间、写访问与读访问之间的数据相关性。
[0004]传统的端设备输入缓冲如图2、3所示,包括为多个请求通路1~T设置的多个子缓冲1~τ,为了维护前后拍请求之间的数据相关性,各子缓冲共享同一套读、写指针1~Τ,请求写入或读出时均以行为单位进行统一控制,因此传统的端设备输入缓冲存在以下问题:
1)由于该输入缓冲中,请求写入或读出时是以行为单位进行统一控制,因此当请求写入时,若某个子缓冲对应的请求通路无请求,则该子缓冲虽然没有写入请求,但其写指针仍然向下移动,导致产生“气泡”现象,造成存储空间的浪费;
2)由于该输入缓冲中,子缓冲和请求通路是一一对应的,则每一个子缓冲的深度需要至少比Busy信号发出后该请求通路所能够发出的请求数目多,因此该类的端设备输入缓冲中每个子缓冲的深度是由Busy信号发出后,某个源设备已经发出和将要发出的总请求数的最大数目决定,会导致存储空间的浪费;
3)由于该输入缓冲中,只要存在子缓冲中请求接近阈值即产生Busy信号,如图3所示,则当某个源设备对应的子缓冲I中包含的未处理的请求接近阈值而其他子缓冲并未接近阈值时,端设备输入缓冲仍会产生Busy信号,这在源设备请求发送不均匀时会导致效率的降低。

【发明内容】

[0005]本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种能够实现无缝隙存储请求的用于处理器端设备中的高效缓存方法及输入缓冲装置,具有实现方法简单、成本低廉、缓存效率与硬件利用率高、硬件开销小且功耗低的优点。
[0006]为解决上述技术问题,本发明提出的技术方案为:
一种用于处理器端设备中的高效缓存方法,步骤包括:
1)在端设备中依次设置多个相同结构的用于缓冲请求的子缓冲;
2)接收各源设备发送的请求并统计每拍接收到的请求数;每拍根据请求数控制将接收到的各请求按行顺序分别依次循环的写入或读出各子缓冲中;当各子缓冲中请求数总和大于预设阈值时,产生Busy信号发送至各源设备。
[0007]作为本发明方法的进一步改进:所述步骤2)中每拍将接收到的各请求按行顺序分别依次循环的写入或读出各子缓冲中的具体实施步骤为:
2.1)每拍执行时,控制将上一拍执行结束位置的下一个子缓冲作为起始子缓冲,并从起使子缓冲开始依次循环的取η个目标子缓冲执行写入或读出请求操作,其中η为所述请求数;
2.2)各目标子缓冲按照当前对应的存储位置指针写入或读出请求后,更新各目标子缓冲的存储位置指针。
[0008]作为本发明方法的进一步改进:所述步骤2.1)的具体实施步骤为:
2.11)获取当前拍的起始子缓冲位置指针,根据所述起始子缓冲位置指针以及当前拍的请求数生成控制各子缓冲的使能信号,使从起始子缓冲开始依次循环的共η个子缓冲使能有效,其中η为所述请求数;
2.12)控制使能有效的子缓冲执行写入或读出请求,并更新起始子缓冲位置指针为当前拍执行结束位置的下一个子缓冲以用于下一拍执行。
[0009]作为本发明方法的进一步改进:所述步骤2.11)中生成控制各子缓冲的使能信号的具体实施步骤为:
2.111)产生一个各数据位与各子缓冲一一对应的使能信号,并初始化所述使能信号的各数据位中高位为0、低位为1,且其中为I的数据位的个数与所述请求数相等,得到初始使能信号;
2.112)对初始使能信号循环移位M位,所述M为将最低位移至起始子缓冲所对应的数据位所需要移动的次数,得到最终使能信号,所述最终使能信号中为I的数据位对应的子缓冲为使能有效。
[0010]作为本发明方法的进一步改进:所述步骤2.2)中更新各目标子缓冲的存储位置指针的具体实施步骤为:获取当前拍各子缓冲所处的行位置指针,将所述行位置指针增加I更新得到各目标子缓冲的存储位置指针。
[0011]一种利用上述高效缓存方法的输入缓冲装置,包括:
请求缓冲模块,包括依次设置的多个相同结构的用于缓冲请求的子缓冲;
请求管理模块,用于接收各源设备发送的请求并统计每拍接收到的请求数,输出至写入与读出控制模块;
写入与读出控制模块,用于每拍根据请求数控制将接收到的各请求按行顺序分别依次循环的写入或读出各子缓冲中; Busy产生模块,用于当各子缓冲中请求数总和大于预设阈值时,产生Busy信号发送至各源设备。
[0012]作为本发明装置的进一步改进:所述写入与读出控制模块包括用于执行写入控制的请求写入控制单元、以及用于执行读出控制的请求读出控制单元;所述请求写入控制单元、请求读出控制单元均包括一个使能控制电路以及一个行控制电路,所述使能控制电路用于每拍执行时,控制将上一拍执行结束位置的下一个子缓冲作为起始子缓冲,并从起使子缓冲开始依次循环的取η个目标子缓冲执行写入或读出请求操作,其中η为所述请求数;所述行控制电路用于各目标子缓冲按照当前对应的存储位置指针写入或读出请求后,更新各目标子缓冲的存储位置指针。
[0013]作为本发明装置的进一步改进:所述请求写入控制单元、请求读出控制单元均还包括一个分别与使能控制电路以及行控制电路连接的指针控制电路,所述指针控制电路用于每拍执行时将当前存储的起始子缓冲位置指针以及各子缓冲存储位置所在的行位置指针分别输出至所述使能控制电路、行控制电路,并根据请求数更新所述起始子缓冲位置指针为当前拍执行结束位置的下一个子缓冲以用于下一拍执行、更新所述行位置指针为当前拍执行结束位置的下一个子缓冲中存储位置指针所在的行。
[0014]作为本发明装置的进一步改进:所述请求写入控制单元还包括请求排序电路,所述请求排序电路与所述使能控制电路的输出端连接;所述请求排序电路用于将源设备发送的各请求按照对应的使能信号进行排序,得到排序后的请求序列输出至各子缓冲。
[0015]作为本发明装置的进一步改进:所述请求缓冲模块包括用于缓冲读请求的读请求缓冲单元、用于缓冲写请求的写请求缓冲单元;所述请求管理模块包括请求识别与统计单元以及管理FIFO单元,所述请求识别与统计单元用于识别源设备发送的请求类型并统计其中读请求、写请求的个数,通过管理FIFO单元存储每拍统计得到的读请求、写请求的个数。
[0016]与现有技术相比,本发明的优点在于:
I)本发明通过按每拍到达的读写请求数,将源设备的请求依次循环的写入各子缓冲中,使得子缓冲与各请求通路分离,实现无间隙地缓存,避免了请求存储至输入缓冲时产生空存储的“气泡”情况,提高硬件利用率,因而也降低了子缓冲的深度,显著的减少了输入缓冲的面积同时降低功耗。
[0017]2)本发明在只有缓冲存放请求的总深度接近阈值时才会产生Busy信号,相比较传统的输入缓冲需要在任意子缓冲接近阈值就会产生Busy信号,Busy信号产生时机晚,能够有效提高缓存效率。
[0018]3)本发明进一步通过起始子缓冲位置指针以及各子缓冲存储位置所在的行位置指针构成全局指针,由全局指针带动各子缓冲的存储位置局部指针,各子缓冲在局部指针的控制下执行读写操作,能够有效的实现请求的无间隙地存储。
【附图说明】
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1