一种协议处理器Cache控制单元的设计方法

文档序号:6519031阅读:190来源:国知局
一种协议处理器Cache控制单元的设计方法
【专利摘要】本发明提供一种协议处理器Cache控制单元的设计方法,协议处理器Cache控制单元用于CC-NUMA系统中协议处理器对高速缓存的访问控制,通过对不同Cache访问指令的调度和挂起,实现Cache读写操作时序与协议处理器的流水线全同步,在Cache空闲且命中的前提下实现高速缓存无缝隙访问和协议报文处理完全流水,系统按照功能划分为若干个子模块,包括:流水线指令挂起队列,调度模块,标签阵列,数据阵列,回填模块,接口通信模块和失效缓存,以同步Cache操作的方式取代异步操作,消除了异步操作带来的Cache访问的延迟。Cache命中时,协议处理流水线能同步操作Cache上的数据,提高了协议处理的效率。
【专利说明】一种协议处理器Cache控制单元的设计方法
【技术领域】
[0001]本发明涉及计算机领域和集成电路设计领域,具体涉及到一种协议处理器Cache控制单元的设计方法。
【背景技术】
[0002]Cache,即高速缓存,通常指介于处理器和主存之间的高速小容量存储器,访问速度比主存快得多,匹配处理器的存取速度。Cache通常基于静态随机存储器SRAM实现,SRAM相对动态随机存取存储器DRAM的优点是速度快,缺点是成本高,面积大。Cache以主存几百分之一的容量映射一部分主存地址上的内容,当处理器访问的数据地址正好位于其映射之内时,处理器可直接对Cache进行操作,省却了访问主存的步骤,计算机的处理速度大大提升。
[0003]在支持双处理器通过HT总线直连构成的16核CC-NUMA系统中,数据按照地址划分均匀分布在各个结点的主存上,结点和结点之间按照Cache —致性协议进行数据通信,以发包收包的形式完成通信过程。结点和结点之间的通信包以协议报文的形式存在。结点从端口上接收到协议报文后需要通过协议处理器对其进行解析和处理。协议处理器中存在一定容量的Cache,用于存储最近使用的协议信息。若Cache命中,协议处理器直接对Cache进行操作,若Cache未命中,则向下一级存储器发起访问。协议处理器中的Cache控制单元用于接收其发出的Cache访问指令,对指令进行解析后向Cache发起对应的操作。
[0004]通常实现协议处理器时将Cache控制单元与协议处理流水线设计成异步模式,即两者之间数据操作流程和时序不存在关联。协议处理流水线向Cache发出访问指令后就将该指令相关的协议报文挂起,等待Cache控制单元响应返回后再重新取出被挂起的协议报文,进入流水线重新进行协议解析和处理。这种实现方式的弊端是协议处理流水线无论Cache命中与否都不能同步操作Cache上的数据,每一条协议报文的处理均需等待若干个时钟周期的Cache访问时间,降低了协议处理的效率,增大了系统延迟。

【发明内容】

[0005]本发明的目的是提供一种协议处理器Cache控制单元的设计方法。
[0006]本发明的目的是按以下方式实现的,协议处理器Cache控制单元用于CC-NUMA系统中协议处理器对高速缓存的访问控制,通过对不同Cache访问指令的调度和挂起,实现Cache读写操作时序与协议处理器的流水线全同步,在Cache空闲且命中的前提下实现高速缓存无缝隙访问和协议报文处理完全流水,系统按照功能划分为若干个子模块,包括:流水线指令挂起队列,调度模块,标签阵列,数据阵列,回填模块,接口通信模块和失效缓存,其中:
流水线指令挂起队列,用于被挂起的流水线Cache访问指令的存储,以实现FIFO的同步,FIFO数据宽度等同于Cache指令长度,FIFO深度等同于流水线流水站数量的2倍,当协议处理流水线向Cache控制单元发出的访问指令未获得处理权限时,FIFO写使能有效,该指令被写入流水线指令挂起队列,当其重新获得处理权限时,FIFO读使能有效,该指令从队列中读出,进行相应的Cache操作,当队列中存储的指令个数大于等于流水线数量时,阻塞来源,即停止接收协议处理流水线发出的Cache访问指令,等待队列中被挂起的指令处理完毕再重新打开该来源;
调度模块,用于对Cache控制单元接收的不同来源的访问指令的调度和仲裁,当多个访问指令同时有效时,按照规定优先级选通优先级最高的指令做Cache操作,优先级较低的指令则被写入响应的挂起队列或缓存;
标签阵列,用于标签的读出和比较,先对调度模块选通的访问指令进行译码,使用译码后的地址对8路标签同时发起读操作,各路读出的标签内容分别与译码数据进行比较,两者相等的那一路即命中路,标签阵列将各路的命中信息进行组合输出,用于Cache的数据选通;
数据阵列,用于数据的读出和多路选通,先对调度模块选通的访问指令进行译码,使用译码后的地址对8路数据阵列同时发起读操作,各路数据读出后,等待标签阵列输出的标签命中信息有效,使用标签的命中信息对8路数据进行数据选通,得到命中的那一路数据,完成数据选通后输出Cache命中结果和命中数据,整个Cache读操作都在协议流水线的发射站和执行站之间进行,与协议处理器的流水线同步,不产生额外的间隙或系统延迟,执行站得到Cache的命中结果和命中数据将作为输入,进行ALU运算;
回填模块,用于Cache的数据回填,当下一级存储器访问操作结束,数据响应返回时,回填模块向调度模块发出Cache回填指令,当回填指令获得处理权限时,进行相应的Cache数据回填,否则将回填指令写入回填挂起队列,回填挂起队列与FIFO同步,原理与流水线指令挂起队列相同;
接口通信模块,用于本级Cache与下一级存储器之间的指令和数据通信,当本级Cache未命中时,接口通信模块向下一级存储器发起异步访问指令,若干个时钟周期后,下一级存储器访问操作结束,数据响应返回时,接口通信模块接收返回的数据并通知回填模块;
失效缓存,用于对Cache访问未命中的指令进行缓存,Cache控制单元在执行站之前返回Cache未命中信息,并且将未命中的访问指令写入失效缓存中,等待接口通信模块接收到返回的数据,且回填某块完成回填后,激活失效缓存中相应地址的访问指令,向调度模块发出。
[0007]协议处理流水线Cache控制单元的功能模块划分步骤如下:
调度模块接收不同来源的Cache访问指令,包括:流水线访问指令,流水线指令挂起队列,回填指令,回填指令挂起队列,失效缓冲指令,对其进行仲裁和调度,失效缓冲模块对脱靶指令进行缓冲,等待回填后重新激活,回填指令挂起队列对未获得处理权限的回填指令进行存储,等待冲裁成功重新被处理,标签阵列进行多路组相连Cache的索引,根据译码地址和数据计算出Cache的命中信息和多路选择信号,数据阵列进行Cache数据的读出和写入,并根据标签阵列输出的多路选择信号对各路数据阵列读出的数据进行选通,输出命中的那一路数据,接口通信模块接收标签阵列和数据阵列输出的命中信息和命中数据,组成标准格式向协议流水线返回,当脱靶时,该模块向下一级存储器发出异步访问指令,接口上有响应返回时,通知回填模块向调度模块发起回填指令;
Cache控制单元的指令处理流程如下: 协议流水线的发射站发出Cache访问指令,控制单元做完指令译码后进行多指令仲裁和调度,调度成功获得仲裁权限的指令得到处理,使用指令译码得到的地址和数据发起数据阵列和标签阵列的读操作,标签阵列读出结果进行数据比较,计算出Cache是否命中,命中则进行数据选通,得到命中的那一路数据,脱靶则输出Cache脱靶信号,向下一级存储器发出异步读指令,得到命中结果后,若处理指令类型为流水线,则输出Cache命中和命中数据,等待流水线执行站完成后发起Cache写操作,否则输出Cache脱靶,将流水线指令写入挂起队列,协议流水线在写回站发起Cache写操作,控制单元分别驱动标签阵列和数据阵列的写端口将数据写入对应地址,一个完整的与Cache相关的协议报文处理流程结束。
[0008]所描述的Cache控制单元对不同Cache访问指令的调度,实现调度模块对多个不同来源的Cache访问指令按照优先级进行调度,调度成功的来源获得处理权限,调度失败的来源被挂起。
[0009]所描述的Cache控制单元对不同Cache访问指令的挂起,实现两条挂起队列分别对未获得处理权限的协议处理器Cache访问指令和未获得处理权限的Cache回填指令进行管理。
[0010]所描述的协议处理器Cache访问指令挂起队列,遵循先进先出原则,该队列的输出也作为Cache控制单元待处理指令的来源之一,当其获得处理权限,即调度成功时,被挂起的协议处理器Cache访问指令从该队列中读出,进行相应的Cache访问操作。
[0011]所描述的Cache回填指令挂起队列,遵循先进先出原则,该队列的输出也作为Cache控制单元待处理指令的来源之一,当其获得处理权限,即调度成功时,被挂起的Cache回填指令从该队列中读出,进行相应的Cache回填操作。
[0012]所描述的高速缓存无缝隙访问和协议报文处理完全流水,基于报文处理先读,命中后写的Cache操作原则,协议处理器的流水线在发射站发出Cache读指令,在执行站进行协议处理,Cache控制单元在上述两个流水站之间的时间内完成指令接收,指令调度,Cache读,输出结果四个操作,保证在Cache命中的前提下,数据无延迟到达执行站。
[0013]所描述的协议报文处理命中后写的Cache操作原则,协议处理器的流水线在写回站发出Cache写指令,Cache控制单元接收该指令,无延迟完成Cache写操作,保证数据按照写回站的指令同步写入Cache。
[0014]所描述的高速缓存无缝隙访问,实现失效缓存模块缓存Cache访问未命中的指令,当进行Cache回填时从失效缓存中激活对应的指令,失效缓存的输出也作为Cache控制单元待处理指令的来源之一,当其获得处理权限,即调度成功时,被挂起的Cache访问未命中指令从该缓存中读出,重新进行相应的Cache访问操作。
[0015]所描述的Cache访问未命中情况,实现接口通信模块在本级Cache未命中时向下一级Cache发起异步的访问指令,若干个时钟周期后,下一级Cache访问操作结束,数据响应返回时,回填模块向调度模块发出回填指令。
[0016]本发明的有益效果是:以同步Cache操作的方式取代异步操作,消除了异步操作带来的Cache访问的延迟。Cache命中时,协议处理流水线能同步操作Cache上的数据,提高了协议处理的效率。对各种指令以最优策略进行调度,减少了系统中的阻塞。该Cache控制单元实现的Cache同步操作方式完成了 Cache读写操作时序与协议处理器的流水线的全同步,实现高速缓存无缝隙访问和协议报文处理完全流水,减少了系统的延迟,提高了吞 吐率。
【专利附图】

【附图说明】
[0017]图1是Cache控制单元功能模块逻辑结构示意图;
图2是Cache访问流程图;
图3是协议处理程图;
图4是Cache指令译码结构图。
【具体实施方式】
[0018]参照说明书附图对本发明的方法作以下详细地说明。
[0019]附图1描述了协议处理流水线Cache控制单元的功能模块划分,其中调度模块(Command Scheduler)接收5个不同来源(流水线访问指令,流水线指令挂起队列,回填指令,回填指令挂起队列,失效缓冲指令)的Cache访问指令,对其进行仲裁和调度。失效缓冲模块(Miss Buffer)对脱靶(Miss)指令进行缓冲,等待回填后重新激活。回填指令挂起队列(Fi 11-back Queue )对未获得处理权限的回填指令进行存储,等待冲裁成功重新被处理。标签阵列(Tag Array)进行多路组相连Cache的索引,根据译码地址和数据计算出Cache的命中信息和多路选择信号。数据阵列(Data Array)进行Cache数据的读出和写入,并根据标签阵列输出的多路选择信号对各路数据阵列读出的数据进行选通,输出命中的那一路数据。接口通信模块(Interface Unit)接收标签阵列和数据阵列输出的命中信息和命中数据,组成标准格式向协议流水线返回。当脱靶(Miss)时,该模块向下一级存储器发出异步访问指令,接口上有响应返回时,通知回填模块向调度模块发起回填(Fi 11 -back )指令。
[0020]附图2描述了 Cache控制单元的指令处理流程。协议流水线的发射站(SD)发出Cache访问指令,控制单元做完指令译码后进行多指令仲裁和调度,调度成功获得仲裁权限的指令得到处理。使用指令译码得到的地址和数据发起数据阵列和标签阵列的读操作,标签阵列读出结果进行数据比较,计算出Cache是否命中(Hit),命中则进行数据选通,得到命中的那一路数据。脱靶(Miss)则输出Cache脱靶信号,向下一级存储器发出异步读指令。得到命中结果后,若处理指令类型为流水线,则输出Cache命中和命中数据,等待流水线执行站(EX)完成后发起Cache写操作,否则输出Cache脱靶,将流水线指令写入挂起队列。协议流水线在写回站(WB)发起Cache写操作,控制单元分别驱动标签阵列和数据阵列的写端口将数据写入对应地址,一个完整的与Cache相关的协议报文处理流程结束。
[0021]附图3描述了协议处理流水线的各级流水站。Cache控制单元在发射站(SD)和执行站(EX)之间进行多个不同来源指令的调度仲裁以及选通指令相应的Cache读操作。在写回站(WB)之后进行对应的Cache写操作。整个过程与协议流水线同步,不占用额外的延迟。协议报文能够以数据流(Packets Flow)的方式在系统中处理,报文与报文之间无需插入气泡。
[0022]附图4描述了 Cache的指令译码格式。Cache访问指令分为5段,第一段为协议信息索引域(Packetlnfo Index),作为Cache Line中协议信息的选择信号。第二段为标签数据域(Tag Data),用于标签阵列内容的比较和回填时标签的写入。第三段为标签地址域(Tag Addr),作为标签阵列和数据阵列的读操作地址。第四段为空洞(Hole),作为缺省域。第五段为指令类型域(Cmd),按照不同的指令对其进行编码,控制单元根据编码类型做出相应操作。
[0023]除说明书所述的技术特征外,均为本专业技术人员的已知技术。
【权利要求】
1.一种协议处理器Cache控制单元的设计方法,其特征在于协议处理器Cache控制单元用于CC-NUMA系统中协议处理器对高速缓存的访问控制,通过对不同Cache访问指令的调度和挂起,实现Cache读写操作时序与协议处理器的流水线全同步,在Cache空闲且命中的前提下实现高速缓存无缝隙访问和协议报文处理完全流水,系统按照功能划分为若干个子模块,包括:流水线指令挂起队列,调度模块,标签阵列,数据阵列,回填模块,接口通模块和失效缓存,其中: 流水线指令挂起队列,用于被挂起的流水线Cache访问指令的存储,以实现FIFO的同步,FIFO数据宽度等同于Cache指令长度,FIFO深度等同于流水线流水站数量的2倍,当协议处理流水线向Cache控制单元发出的访问指令未获得处理权限时,FIFO写使能有效,该指令被写入流水线指令挂起队列,当其重新获得处理权限时,FIFO读使能有效,该指令从队列中读出,进行相应的Cache操作,当队列中存储的指令个数大于等于流水线数量时,阻塞来源,即停止接收协议处理流水线发出的Cache访问指令,等待队列中被挂起的指令处理完毕再重新打开该来源; 调度模块,用于对Cache控制单元接收的不同来源的访问指令的调度和仲裁,当多个访问指令同时有效时,按照规定优先级选通优先级最高的指令做Cache操作,优先级较低的指令则被写入响应的挂起队列或缓存; 标签阵列,用于标签的读出和比较,先对调度模块选通的访问指令进行译码,使用译码后的地址对8路标签同时发起读操作,各路读出的标签内容分别与译码数据进行比较,两者相等的那一路即命中路,标签阵列将各路的命中信息进行组合输出,用于Cache的数据选通; 数据阵列,用于数据的读出和多路选通,先对调度模块选通的访问指令进行译码,使用译码后的地址对8路数据阵列同时发起读操作,各路数据读出后,等待标签阵列输出的标签命中信息有效,使用标签的 命中信息对8路数据进行数据选通,得到命中的那一路数据,完成数据选通后输出Cache命中结果和命中数据,整个Cache读操作都在协议流水线的发射站和执行站之间进行,与协议处理器的流水线同步,不产生额外的间隙或系统延迟,执行站得到Cache的命中结果和命中数据将作为输入,进行ALU运算; 回填模块,用于Cache的数据回填,当下一级存储器访问操作结束,数据响应返回时,回填模块向调度模块发出Cache回填指令,当回填指令获得处理权限时,进行相应的Cache数据回填,否则将回填指令写入回填挂起队列,回填挂起队列与FIFO同步,原理与流水线指令挂起队列相同; 接口通信模块,用于本级Cache与下一级存储器之间的指令和数据通信,当本级Cache未命中时,接口通信模块向下一级存储器发起异步访问指令,若干个时钟周期后,下一级存储器访问操作结束,数据响应返回时,接口通信模块接收返回的数据并通知回填模块; 失效缓存,用于对Cache访问未命中的指令进行缓存,Cache控制单元在执行站之前返回Cache未命中信息,并且将未命中的访问指令写入失效缓存中,等待接口通信模块接收到返回的数据,且回填某块完成回填后,激活失效缓存中相应地址的访问指令,向调度模块发出,其中: 协议处理流水线Cache控制单元的功能模块划分步骤如下: 调度模块接收不同来源的Cache访问指令,包括:流水线访问指令,流水线指令挂起队列,回填指令,回填指令挂起队列,失效缓冲指令,对其进行仲裁和调度,失效缓冲模块对脱靶指令进行缓冲,等待回填后重新激活,回填指令挂起队列对未获得处理权限的回填指令进行存储,等待冲裁成功重新被处理,标签阵列进行多路组相连Cache的索引,根据译码地址和数据计算出Cache的命中信息和多路选择信号,数据阵列进行Cache数据的读出和写入,并根据标签阵列输出的多路选择信号对各路数据阵列读出的数据进行选通,输出命中的那一路数据,接口通信模块接收标签阵列和数据阵列输出的命中信息和命中数据,组成标准格式向协议流水线返回,当脱靶时,该模块向下一级存储器发出异步访问指令,接口上有响应返回时,通知回填模块向调度模块发起回填指令; Cache控制单元的指令处理流程如下: 协议流水线的发射站发出Cache访问指令,控制单元做完指令译码后进行多指令仲裁和调度,调度成功获得仲裁权限的指令得到处理,使用指令译码得到的地址和数据发起数据阵列和标签阵列的读操作,标签阵列读出结果进行数据比较,计算出Cache是否命中,命中则进行数据选通,得到命中的那一路数据,脱靶则输出Cache脱靶信号,向下一级存储器发出异步读指令,得到命中结果后,若处理指令类型为流水线,则输出Cache命中和命中数据,等待流水线执行站完成后发起Cache写操作,否则输出Cache脱靶,将流水线指令写入挂起队列,协议流水线在写回站发起Cache写操作,控制单元分别驱动标签阵列和数据阵列的写端口将数据写入对应地址,一个完整的与Cache相关的协议报文处理流程结束。
2.根据权利要求1所述的方法,其特征在于所描述的Cache控制单元对不同Cache访问指令的调度,实现调度模块对多个不同来源的Cache访问指令按照优先级进行调度,调度成功的来源获得处理权限,调度失败的来源被挂起。
3.根据权利要求1所述的方法,其特征在于所描述的Cache控制单元对不同Cache访问指令的挂起,实现两条挂起队列分别对未获得处理权限的协议处理器Cache访问指令和未获得处理权限的Cache回填指令进行管理。
4.根据权利要求3所述的方法,其特征在于所描述的协议处理器Cache访问指令挂起队列,遵循先进先出原则,该队列的输出也作为Cache控制单元待处理指令的来源之一,当其获得处理权限,即调度成功时,被挂起的协议处理器Cache访问指令从该队列中读出,进行相应的Cache访问操作。
5.根据权利要求3所述的方法,其特征在于所描述的Cache回填指令挂起队列,遵循先进先出原则,该队列的输出也作为Cache控制单元待处理指令的来源之一,当其获得处理权限,即调度成功时,被挂起的Cache回填指令从该队列中读出,进行相应的Cache回填操作。
6.根据权利要求1所述的方法,其特征在于所描述的高速缓存无缝隙访问和协议报文处理完全流水,基于报文处理先读,命中后写的Cache操作原则,协议处理器的流水线在发射站发出Cache读指令,在执行站进行协议处理,Cache控制单元在上述两个流水站之间的时间内完成指令接收,指令调度,Cache读,输出结果四个操作,保证在Cache命中的前提下,数据无延迟到达执行站。
7.根据权利要求6所述的方法,其特征在于所描述的协议报文处理命中后写的Cache操作原则,协议处理器的流水线在写回站发出Cache写指令,Cache控制单元接收该指令,无延迟完成Cache写操作,保证数据按照写回站的指令同步写入Cache。
8.根据权利要求1所述的方法,其特征在于所描述的高速缓存无缝隙访问,实现失效缓存模块缓存Cache访问未命中的指令,当进行Cache回填时从失效缓存中激活对应的指令,失效缓存的输出也作为Cache控制单元待处理指令的来源之一,当其获得处理权限,即调度成功时,被挂起的Cache访问未命中指令从该缓存中读出,重新进行相应的Cache访问操作。
9.根据权利要求8所述的方法,其特征在于所描述的Cache访问未命中情况,实现接口通信模块在本级Cache未命中时向下一级Cache发起异步的访问指令,若干个时钟周期后,下一级Cache访问操作结束,数据响应返回时,回填模块向调度模块发出回填指令。
【文档编号】G06F12/08GK103593306SQ201310569312
【公开日】2014年2月19日 申请日期:2013年11月15日 优先权日:2013年11月15日
【发明者】周恒钊, 陈继承 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1