1.本发明涉及目录控制,尤其涉及一种面向多核处理器目录协议的可配置微操作机制。
背景技术:
2.在多核处理器系统中,采用多级cache来平衡访存速度和容量二者之间的冲突。多级cache中,脏数据并不总是直接写入主存,多个cache意味着同一时刻一个数据可能有多个副本,当对数据进行读写操作时,需要维护多个副本的一致性问题。
3.常用的维持一致性方法包括监听总线协议和基于目录的cache一致性协议。监听总线的扩展性差,随着处理器核数的增加,需要进行大量的广播操作,效率低下。因此越来越多采用基于目录的cache一致性协议,其中采用目录表来记录数据在其他cache中的存储状况,对数据进行读写操作时,只需要向少数几个节点发送监听请求。目录表大小和cache容量以及处理器核数有关,随着处理器核数的增加,目录表的增加有限,因此具有良好的可扩展性。
4.在基于目录的cache一致性协议中,报文类型分为请求、应答、监听、响应,不同类型的报文之间含有依赖关系。请求报文的释放依赖于响应报文,监听报文的释放依赖于应答报文。如果报文共用物理通道,可能会产生死锁。通常对不同类型的报文分配单独的物理通道以避免死锁,然而这种情况下,通道的利用率较低,协议的执行效率较低。
技术实现要素:
5.本发明要解决的技术问题:针对现有技术的上述问题,提供一种面向多核处理器目录协议的可配置微操作机制,灵活性好且容错性高。
6.为了解决上述技术问题,本发明采用的技术方案为:
7.一种面向多核处理器目录协议的可配置微操作机制,应用于片上网络,包括以下步骤:
8.目录控制器模块dcu和l2cache交互时,目录控制器模块dcu接受请求报文或者应答报文之后,判断是否进入调试模式,是则通过所述请求报文或应答报文匹配到对应的微操作码进行相应动作,否则将所述请求报文或者应答报文进行流水线处理;
9.目录控制器模块dcu和imu交互时,缓存目录控制器模块dcu已发出的报文并判断发出报文是否超时,是则重发缓存的报文,同时imu无条件接受报文,直到物理链路排空。
10.进一步的,通过所述请求报文或应答报文匹配到对应的微操作码进行相应动作的具体过程包括:根据配置寄存器来判断是否进入调试模式,若进入调试模式,通过对应的请求报文或应答报文的命令编码寻址到微程序的入口地址,获取对应的微操作码进行相应动作,然后根据微程序中的微地址寻址下一条微程序,并获取对应的下一微操作码,直到微程序中的退出位有效时,完成微程序的执行。
11.进一步的,所述微操作码包括tag分配使能、snp使能、请求产生comp使能、dbid响
应使能中的一种或多种。
12.将所述请求报文或者应答报文进行流水线处理的过程包括:
13.目录控制器模块dcu接受l2cache的请求报文,缓存并等待被选取,若被选取的请求报文未命中当前正在进行处理的目录项,对所述请求报文用目录表进行流水操作,若被选取请求报文命中当前正在进行处理的目录项,将所述请求报文缓存并等待被选取,直到未命中当前正在进行处理的目录项;
14.目录控制器模块dcu向l2cache发送监听请求,l2cache处理监听请求并将处理结果封装为应答报文;
15.所述l2cache若为本地l2cache,向目录控制器模块dcu发送应答报文,所述l2cache若为其他l2cache,应答报文发送到片上网络中,目录控制器模块dcu获取本地l2cache或者片上网络的应答报文,缓存并等待被选取,对被选取的应答报文用目录表进行流水操作。
16.进一步的,所述用目录表进行流水操作包括:
17.第一级:目录查找,确认请求或应答报文中的地址目录;
18.第二级:目录读出,本站流水线等待目录读出;
19.第三级:数据校验,确认读出的数据是否正确;
20.第四级:数据纠错,对目录读出数据进行纠错;
21.第五级:目录比较,目录存储器中的内容和报文中的内容进行比较;
22.第六级:目录命中,确认目录是否被替换;
23.第七级:目录产生,根据目录内容、报文信息产生对应的响应和监听操作;
24.第八级:目录写入,将新产生的目录项和校验位写入目录存储器中。
25.进一步的,用目录表进行流水操作之前还包括暂存报文的步骤,具体包括:若存在目录冲突,或者目录忙,或者目录满,或者目录项正在替换缓冲区,将请求报文或者应答报文缓存并等待被选取。
26.进一步的,将请求报文或者应答报文缓存并等待被选取前,还判断已暂存的报文数量是否达到预设阈值,是则目录控制器模块dcu向l2cache发送重试响应,l2cache等到grant后,重新发送对应的报文。
27.进一步的,重发缓存的报文具体包括:目录控制器模块dcu首先向下一imu发出请求报文,直至imu返回dbid号,然后从向下一imu发送封装有具体数据的请求报文
28.进一步的,所述目录控制器模块dcu包含:
29.请求缓冲器,用于接受并存放来自l2cache的请求报文;
30.应答通道,用于接收并存放来自本地l2cache或者片上网络的应答报文,包括连接命令应答缓冲器和数据应答缓冲器;
31.冲突缓冲器,用于存放由于目录冲突导致的暂时不能处理的报文;
32.重试缓冲器,用于暂存目前不能处理的请求;
33.headque,用于记录是当前正在进行处理的目录项;
34.多路选择器,用于在请求缓冲器、重试缓冲器,冲突缓冲器中选择合适的报文进行后续操作;
35.目录表,用于记录cache中数据副本的使用情况,并且根据当前命令和目录状态进
行跟踪与修改。
36.进一步的,所述目录控制器模块dcu还包含:
37.输出缓冲器rspcmdbuf,用于存放到l2cache的命令;
38.输出缓冲器rspdatbuf,用于存放到l2cache的数据响应报文;
39.输出缓冲器reqcmdbuf,用于存放到mcu的命令;
40.输出缓冲器reqdatbuf,用于存放到mcu的数据请求报文;
41.输出缓冲器snpbuf,用于存放到l2c的正常监听操作请求报文
42.输出缓冲器evtbuf,用于存放到l2c的由于目录替换产生的监听操作报文。
43.和现有技术相比,本发明具有下述优点:
44.一是显著增加的设计的容错性。cpu设计难度高、风险大,本发明引入的微操作机制,实现了目录控制器模块dcu功能的灵活配置,可以有效的降低芯片设计中隐藏错误带来的风险。在调试模式下,适当降低了系统的效率,显著提高了系统的容错性。
45.二是有效利用了通道等物理资源,提高了执行效率。维护cache一致性协议需要多条物理通道,正常情况下,这些通道的利用率比较低。本发明引入的机制可以灵活配置协议的具体实现,灵活转换物理通道,有效提高了执行效率。
附图说明
46.图1为本发明实施例的结构示意图。
47.图2为本发明实施例中的dcm结构示意图。
48.图3为本发明实施例中的目录控制器模块dcu结构示意图。
49.图4为本发明实施例的流程图。
50.图5为本发明实施例中的微程序执行过程示意图。
51.图6为基于本发明构建的一个片上网络示意图。
具体实施方式
52.以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
53.本实施例首先提出一种目录与cache一致性管理模块dcm,如图1所示,目录与cache一致性管理模块dcm通过片上网络noc访问io控制器imu,io控制器imu将得到的结果通过片上网络noc发送出去。dcm的具体结构如图2所示,主要包括目录控制器模块dcu、l2cache接口和片上网络noc接口。其中目录控制器模块dcu完成各个l2cache之间cache一致性的维护,l2cache接口模块完成dcu和l2cache的报文缓冲和命令格式的转换,noc接口完成dcu到一致性网络noc直接的命令发送和接收控制。
54.本实施例中,目录控制器模块dcu通过目录与cache一致性管理模块dcm连接l2cache和片上网络noc,跟踪并记录cache内部的数据状态。如图3所示,目录控制器模块dcu中共有四条物理通道,包含两个输入通道(包括请求通道和监听应答通道),两个输出通道(响应通道和监听通道)。主要包括输入缓冲器reqcmd、输入缓冲器ackcmd、输入缓冲器ackdata、冲突请求缓冲器cflbuf、重试缓冲器rtybuf、目录表dirtab以及输出缓冲器rspcmdbuf、输出缓冲器rspdatbuf、输出缓冲器reqcmdbuf、输出缓冲器reqdatbuf、输出缓
冲器snpbuf和输出缓冲器evtbuf等。输入缓冲器ackcmd、输入缓冲器ackdata和l2cache以及存储控制器mcu相连,接收来自l2cache的监听应答和来自存储控制器的响应数据。输入缓冲器reqcmd和l2c以及noc相连,接收来自l2cache或者noc的监听请求;冲突请求缓冲器cflbuf存放由于目录冲突导致的不能处理的请求;重试缓冲器rtybuf存放当前不能处理的请求,等待合适的时间重新调度出来进行处理;目录表dirtab通过目录来记录cache中数据副本的使用情况;输出缓冲器rspcmdbuf、输出缓冲器rspdatbuf分别存放到l2c的命令和数据响应报文;输出缓冲器reqcmdbuf、输出缓冲器reqdatbuf分别存放到mcu的命令和数据请求报文;输出缓冲器snpbuf存放到l2c的正常监听操作请求报文;输出缓冲器evtbuf存放到l2c的由于目录替换产生的监听操作报文。目录控制器模块dcu包含的内容汇总如下:
55.输入缓冲器reqcmd,用于接受并存放来自l2cache的请求报文;
56.应答通道,用于接收并存放来自本地l2cache或者片上网络的应答报文,包括输入缓冲器ackcmd、输入缓冲器ackdata;
57.冲突请求缓冲器cflbuf,用于存放由于目录冲突导致的暂时不能处理的报文;
58.重试缓冲器rtybuf,用于暂存目前不能处理的请求;
59.headque,用于记录是当前正在进行处理的目录项;
60.多路选择器,用于在输入缓冲器reqcmd、冲突请求缓冲器cflbuf、重试缓冲器rtybuf中选择合适的报文进行后续操作;
61.目录表dirtab,用于记录cache中数据副本的使用情况,并且根据当前命令和目录状态进行跟踪与修改;
62.输出缓冲器rspcmdbuf,用于存放到l2cache的命令;
63.输出缓冲器rspdatbuf,用于存放到l2cache的数据响应报文;
64.输出缓冲器reqcmdbuf,用于存放到mcu的命令;
65.输出缓冲器reqdatbuf,用于存放到mcu的数据请求报文;
66.输出缓冲器snpbuf,用于存放到l2c的正常监听操作请求报文
67.输出缓冲器evtbuf,用于存放到l2c的由于目录替换产生的监听操作报文。
68.本实施例中,具体维护一致性的操作由目录控制器模块dcu完成,目录控制器模块dcu与l2cache交互过程中,维持cache一致性的请求的来源有两种,一种是本地l2cache发送,一种是其它l2cache借由片上网络noc网络发送;在接收到请求报文后,目录控制器模块dcu向l2cache发出监听请求;l2cache根据目录处理监听请求,将处理结果封装成响应报文,此时根据请求报文来源的不同,响应报文有两个去处,如果是本地l2cache发出的请求,响应报文返回到目录控制器模块dcu,否则响应报文直接发送到片上网络noc中。
69.本实施例中,冲突缓冲器cflbuf位于请求发送仲裁之后,存放由于目录冲突导致的暂时不能处理的报文;重试缓冲器rtybuf暂存目前不能处理的请求,等待合适的时机重新处理。报文的暂存包含以下三种情况,一是监听导致的目录忙状态,二是目录满,不能接受新的请求,三是目录项正处于替换缓冲区中。headque中记录的是当前正在进行处理的目录项,当一个新的请求到达时,会和headque中的记录进行比较。如果没有命中,请求可以继续进行。如果命中说明当前请求的目录项不能被立即处理,为了节省时间,将请求报文暂存在重试缓冲器rtybuf中,等待合适的时机重试。重试缓冲器rtybuf采用信用预约机制,每个l2cache在重试缓冲器rtybuf中最多存储4个报文。重试缓冲器rtybuf容量有限,因此当没
有空闲项时,目录控制器模块dcu会发送重试响应retryack给请求发送者,发送者等到grant后,重新发送请求;多路选择器会在输入缓冲器reqcmd、冲突请求缓冲器cflbuf、重试缓冲器rtybuf中选择合适的报文进行下一步操作;目录表dirtab记录cache中数据副本的使用情况,并且根据当前命令和目录状态进行跟踪与修改,维护整个cpu中各个l2cache之间的数据一致性;目录表dirtab中的目录项结构包含有效位、忙标志、监听计数器、源节点号、位向量、校验位等。
70.报文进入目录表dirtab后采用流水操作,流水操作包括:
71.第一级是目录查找,确认请求或应答报文中的地址目录;
72.第二级是目录读出,本站流水线等待目录读出;
73.第三级是数据校验,确认读出的数据是否正确;
74.第四级是数据纠错,对目录读出数据进行纠错;
75.第五级是目录比较,目录存储器中的内容和报文中的内容进行比较;
76.第六级是目录命中,确认目录是否被替换;
77.第七级是目录产生,根据目录内容、报文信息等产生各种响应和监听操作;
78.第八级是目录写入,将新产生的目录项和校验位写入目录存储器中。
79.目录表dirtab采用流水操作后,输出缓冲器evtbuf存储准备替换的目录项,目录控制器模块dcu中存储的目录项小于cache的容量,当目录占用到一定量时,目录控制器模块dcu便会将一些目录项清空,同时将l2cache中的数据作废或者写会到存储器。在目录控制器模块dcu中,报文的输入输出采用fifo结构,事物处理采用非阻塞流水线设计,流水线共8级,分别是目录查找、目录读出、数据校验、数据纠错、目录比较、目录命中、目录产生、目录写入。
80.基于本实施例所提出的目录控制器模块dcu的工作原理,如图4所示,本实施例提出一种面向多核处理器目录协议的可配置微操作机制,应用于片上网络,包括以下步骤:
81.dcu和l2cache交互时,dcu接受请求报文或者应答报文之后,判断是否进入调试模式,是则通过所述请求报文或应答报文匹配到对应的微操作码进行相应动作,否则将所述请求报文或者应答报文进行流水线处理;
82.dcu和imu交互时,缓存dcu已发出的报文并判断发出报文是否超时,是则重发缓存的报文,同时imu无条件接受报文,直到物理链路排空。
83.正常情况下,dcu内部以流水线方式处理报文,由硬件实现。考虑到硬件实现的修改复杂,为了增加系统的容错性、灵活性,引入微操作来实现协议的可配置,可以通过修改微命令来实现不同的一致性协议,通过所述请求报文或应答报文匹配到对应的微操作码进行相应动作的具体过程包括:根据配置寄存器来判断是否进入调试模式,若进入调试模式,通过对应的请求报文或应答报文的命令编码寻址到微程序的入口地址,获取对应的微操作码进行相应动作,然后根据微程序中的微地址寻址下一条微程序,并获取对应的下一微操作码,直到微程序中的退出位有效时,完成微程序的执行。
84.为了增加设计的容错性,引入了调试模式。正常情况下,请求在流水线中进行处理,在调试模式下,单步执行,请求处理通过微操作进行控制,微操作通过存储在微操作存储器中的微指令实现。每条微指令由微程序地址和微操作码组成,微程序地址为程序地址指出下一条微程序的地址,微操作码指出当前微程序要进行的动作。在调试模式下,首先通
过该请求或应答的命令编码寻址到微程序的入口地址,然后便根据微程序中的微地址寻址下一条微程序,直到微程序中的退出位有效时,完成本次微程序的执行。微操作码的含义如下:tag分配使能、snp使能、请求产生comp使能、dbid响应使能等等。如图5所示,一个请求或应答,在进行dcu操作时,会根据配置寄存器来判断是否进入调试模式。进入调试模式后,会根据请求或应答的命令编码找到微程序的入口地址,然后根据微程序的微地址寻找下一条微程序,直到微程序的退出位有效。不同功能的实现依赖于不同使能信号的组合。
85.将所述请求报文或者应答报文进行流水线处理的过程按照前文内容所述,具体包括:
86.dcu接受l2cache的请求报文,缓存并等待被选取,若被选取的请求报文未命中当前正在进行处理的目录项,对所述请求报文用目录表进行流水操作,若被选取请求报文命中当前正在进行处理的目录项,将所述请求报文缓存并等待被选取,直到未命中当前正在进行处理的目录项;
87.dcu向l2cache发送监听请求,l2cache处理监听请求并将处理结果封装为应答报文;
88.所述l2cache若为本地l2cache,向dcu发送应答报文,所述l2cache若为其他l2cache,应答报文发送到片上网络中,dcu获取本地l2cache或者片上网络的应答报文,缓存并等待被选取,对被选取的应答报文用目录表进行流水操作。
89.用目录表进行流水操作按照前文所述,包括:
90.第一级:目录查找,确认请求或应答报文中的地址目录;
91.第二级:目录读出,本站流水线等待目录读出;
92.第三级:数据校验,确认读出的数据是否正确;
93.第四级:数据纠错,对目录读出数据进行纠错;
94.第五级:目录比较,目录存储器中的内容和报文中的内容进行比较;
95.第六级:目录命中,确认目录是否被替换;
96.第七级:目录产生,根据目录内容、报文信息产生对应的响应和监听操作;
97.第八级:目录写入,将新产生的目录项和校验位写入目录存储器中。
98.在本实施例的机制中,用目录表进行流水操作之前还包括暂存报文的步骤,具体包括:若存在目录冲突,或者目录忙,或者目录满,或者目录项正在替换缓冲区,将请求报文或者应答报文缓存并等待被选取。
99.在本实施例的机制中,将请求报文或者应答报文缓存并等待被选取前,还判断已暂存的报文数量是否达到预设阈值,是则dcu向l2cache发送重试响应,l2cache等到grant后,重新发送对应的报文。
100.根据图6所构建的片上网络实例结构。目录控制器模块dcu和io控制器imu连接在不同的路由节点上,二者之间的通信需要借助片上网络noc。在一般情况下,目录控制器模块dcu和io控制器imu之间的通信流程如下,目录控制器模块dcu向io控制器imu发出不带数据的请求,io控制器imu根据自身缓冲区情况,向目录控制器模块dcu返回响应号,目录控制器模块dcu根据响应传输具体数据,这是一种可靠通信,可以保证目录控制器模块dcu发送的数据可以被处理。然而当目录控制器模块dcu和io控制器imu挂载在不同的路由节点,双方需要三次通信才能完成一次操作,这种通信就会产生比较大的开销。因此在目录控制器
模块dcu向io控制器imu发送请求时,报文直接封装具体数据,选择响应通道传输。
101.如图6所示,imu5向imu3发送请求报文,按照yx路由策略,请求报文到达dcu6;dcu6向imu发送请求报文,经由响应通道,到达imu3;imu3将处理结果封装成响应报文,通过noc网络直接发送回imu5,当imu5收到响应报文,一次请求操作完成。一种特殊情况下,imu3和imu5之间互相访问,就会形成图6所示环路,当环路中报文数量过多时,就会造成死锁。产生过程如下:imu3和imu5互相发送访存请求,imu5的响应报文经由通道0,通道1,通道2,由于dcu6向imu3发送请求报文,因此二者共用物理通道4;同理imu3的响应报文经由通道5、通道6,通道7,共用物理通道9。io控制器imu中请求报文的释放需要响应报文的发出,正常情况下,io控制器imu的访存请求执行较慢,因此来自目录控制器模块dcu的请求报文会堵塞通道4和通道9,进而影响io控制器imu的响应报文的传输。随着报文在物理通道的积累,最终会形成闭环,导致死锁。
102.借助目录控制器模块dcu中的调试模式来解决以上死锁问题。具体实现为,在目录控制器模块dcu的内部维护一个计数器并且维护一个专用缓冲区,用来记录已经发送的报文,缓冲区的深度和物理通道4或9可以容纳的报文最大数量相同。当目录控制器模块dcu响应通道超时未发出报文,即认为可能死锁,将目录控制器模块dcu进入调试模式,并将缓冲区中的报文重发。同样在io控制器imu中,检测到超时状态,则io控制器imu负责无条件接受报文,但并不具体处理,目的在于将拥堵的物理链路排空。目录控制器模块dcu进入调试模式后,有两个特点,一是报文的处理不再按照流水方式,这样可以减少拥堵。二是目录控制器模块dcu对imu的访问转换成为可靠方式,即目录控制器模块dcu首先向io控制器imu发出请求报文,通过请求通道和片上网络noc,到达io控制器imu,直至io控制器imu返回dbid号,然后从响应通道向io控制器imu发送封装有具体数据的请求报文。两种方式综合作用,可以有效解除死锁,缓解网络的拥堵。
103.上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
技术特征:
1.一种面向多核处理器目录协议的可配置微操作机制,应用于片上网络,其特征在于,包括以下步骤:目录控制器模块dcu和l2cache交互时,目录控制器模块dcu接受请求报文或者应答报文之后,判断是否进入调试模式,是则通过所述请求报文或应答报文匹配到对应的微操作码进行相应动作,否则将所述请求报文或者应答报文进行流水线处理;目录控制器模块dcu和imu交互时,缓存目录控制器模块dcu已发出的报文并判断发出报文是否超时,是则重发缓存的报文,同时imu无条件接受报文,直到物理链路排空。2.根据权利要求1所述的面向多核处理器目录协议的可配置微操作机制,其特征在于,通过所述请求报文或应答报文匹配到对应的微操作码进行相应动作的具体过程包括:根据配置寄存器来判断是否进入调试模式,若进入调试模式,通过对应的请求报文或应答报文的命令编码寻址到微程序的入口地址,获取对应的微操作码进行相应动作,然后根据微程序中的微地址寻址下一条微程序,并获取对应的下一微操作码,直到微程序中的退出位有效时,完成微程序的执行。3.根据权利要求2所述的面向多核处理器目录协议的可配置微操作机制,其特征在于,所述微操作码包括tag分配使能、snp使能、请求产生comp使能、dbid响应使能中的一种或多种。4.根据权利要求1所述的面向多核处理器目录协议的可配置微操作机制,其特征在于,将所述请求报文或者应答报文进行流水线处理的过程包括:目录控制器模块dcu接受l2cache的请求报文,缓存并等待被选取,若被选取的请求报文未命中当前正在进行处理的目录项,对所述请求报文用目录表进行流水操作,若被选取请求报文命中当前正在进行处理的目录项,将所述请求报文缓存并等待被选取,直到未命中当前正在进行处理的目录项;目录控制器模块dcu向l2cache发送监听请求,l2cache处理监听请求并将处理结果封装为应答报文;所述l2cache若为本地l2cache,向目录控制器模块dcu发送应答报文,所述l2cache若为其他l2cache,应答报文发送到片上网络中,目录控制器模块dcu获取本地l2cache或者片上网络的应答报文,缓存并等待被选取,对被选取的应答报文用目录表进行流水操作。5.根据权利要求4所述的面向多核处理器目录协议的可配置微操作机制,其特征在于,所述用目录表进行流水操作包括:第一级:目录查找,确认请求或应答报文中的地址目录;第二级:目录读出,本站流水线等待目录读出;第三级:数据校验,确认读出的数据是否正确;第四级:数据纠错,对目录读出数据进行纠错;第五级:目录比较,目录存储器中的内容和报文中的内容进行比较;第六级:目录命中,确认目录是否被替换;第七级:目录产生,根据目录内容、报文信息产生对应的响应和监听操作;第八级:目录写入,将新产生的目录项和校验位写入目录存储器中。6.根据权利要求4所述的面向多核处理器目录协议的可配置微操作机制,其特征在于,用目录表进行流水操作之前还包括暂存报文的步骤,具体包括:若存在目录冲突,或者目录
忙,或者目录满,或者目录项正在替换缓冲区,将请求报文或者应答报文缓存并等待被选取。7.根据权利要求6所述的面向多核处理器目录协议的可配置微操作机制,其特征在于,将请求报文或者应答报文缓存并等待被选取前,还判断已缓存的报文数量是否达到预设阈值,是则目录控制器模块dcu向l2cache发送重试响应,l2cache等到grant后,重新发送对应的报文。8.根据权利要求1所述的面向多核处理器目录协议的可配置微操作机制,其特征在于,重发缓存的报文的过程包括:目录控制器模块dcu首先向下一imu发出请求报文,直至imu返回dbid号,然后从向下一imu发送封装有具体数据的请求报文。9.根据权利要求1~8任一所述的面向多核处理器目录协议的可配置微操作机制,其特征在于,所述目录控制器模块dcu包含:输入缓冲器reqcmd,用于接受并存放来自l2cache的请求报文;应答通道,用于接收并存放来自本地l2cache或者片上网络的应答报文,包括输入缓冲器ackcmd、输入缓冲器ackdata;冲突请求缓冲器cflbuf,用于存放由于目录冲突导致的暂时不能处理的报文;重试缓冲器rtybuf,用于暂存目前不能处理的请求;headque,用于记录是当前正在进行处理的目录项;多路选择器,用于在输入缓冲器reqcmd、冲突请求缓冲器cflbuf、重试缓冲器rtybuf中选择合适的报文进行后续操作;目录表dirtab,用于记录cache中数据副本的使用情况,并且根据当前命令和目录状态进行跟踪与修改。10.根据权利要求9所述的面向多核处理器目录协议的可配置微操作机制,其特征在于,所述目录控制器模块dcu还包含:输出缓冲器rspcmdbuf,用于存放到l2cache的命令;输出缓冲器rspdatbuf,用于存放到l2cache的数据响应报文;输出缓冲器reqcmdbuf,用于存放到mcu的命令;输出缓冲器reqdatbuf,用于存放到mcu的数据请求报文;输出缓冲器snpbuf,用于存放到l2c的正常监听操作请求报文输出缓冲器evtbuf,用于存放到l2c的由于目录替换产生的监听操作报文。
技术总结
本发明公开了一种面向多核处理器目录协议的可配置微操作机制,应用于片上网络,包括:DCU和L2Cache交互时,DCU接受请求报文或者应答报文之后,判断是否进入调试模式,是则通过请求报文或应答报文匹配到对应的微操作码进行相应动作,否则将请求报文或者应答报文进行流水线处理;DCU和IMU交互时,缓存DCU已发出的报文并判断发出报文是否超时,是则重发缓存的报文,同时IMU无条件接受报文,直到物理链路排空。本发明可以灵活转换不同物理通道中的报文进行后续操作,有效提高了执行效率。有效提高了执行效率。有效提高了执行效率。
技术研发人员:邓让钰 陈志强 冯权友 周宏伟 杨乾明 曾坤 张英 王勇 励楠 张见
受保护的技术使用者:中国人民解放军国防科技大学
技术研发日:2021.12.03
技术公布日:2022/3/8