一种实现数据一致性的方法及装置的制造方法_3

文档序号:9375642阅读:来源:国知局
的第二读数据一致性请求ReadOnce,并为所述读操作转换子单元1122字节数转换后的第二读数据一致性请求Read Once分发读数据一致性请求通道,复用读数据通道;其中,所述复用读数据通道为:当所述监听控制单元12及所述互连单元23同时返回读数据时,先返回所述监听控制单元12的读数据。
[0100]为了避免死锁,所述读接口子单元1123还用于阻塞传输事务间顺序ordering ;所述阻塞传输事务间顺序ordering包括:所有一致性传输数据请求全部结束后,当前无一致性传输数据的请求才能发出;或者,所有无一致性传输数据请求全部结束后,当前一致性传输数据的请求才能发出。
[0101]当所述第二主设备单元22发送的第二数据一致性请求是第二写数据一致性请求Write Unique时,所述写操作转换子单元1124,具体用于:利用CAM、拆分算法及控制逻辑将协议转换后的第二写数据一致性请求Write Unique的字节数转换成完整缓存数据行Full Cache Line字节数;这里,因为本发明实施例设计的监听控制单元12要求写数据一致性请求Write Unique的字节数与完整缓存数据行Full Cache Line字节数相同,而所述协议转换后的第二写数据一致性请求Write Unique的字节数却无类似的限制,所以需要进行字节数的转换,将协议转换后的第二写数据一致性请求Write Unique进行拆分,经过拆分后的每个原始命令数据量burst的总字节数都小于或等于完整缓存数据行Full CacheLine字节数,收到的Write Unique合并之后,过滤掉多余字节,以满足原始命令数据量burst的要求;
[0102]具体地,与转换所述第二读数据一致性请求Read Once类似,比如,假设完整缓存数据行Full Cache Line字节数要求为32byte,数据位宽为128bit,则对应的burst的数据位宽也为128bit,数据类型为回绕型、回绕长度为2(wrap2);则写数据一致性请求WriteUnique转换时的接口时序如图6所示。
[0103]由图6可以获知,可将所述字节转换后的第二写数据一致性请求Write Unique的低位地址为12’ hl8、数据位宽为64bit、数据类型为incr4的原始命令数据量burst分别拆成低位地址为12’ hl8、数据位宽为128bit、wrap2及低位地址为12’ h20、数据位宽为128bit、incr8这两个原始命令数据量burst ;并且将m侧返回的两个写通道数据响应bresp合并成一个写通道数据响应bresp后从s侧发出;
[0104]这里,还可将所述字节转换后的第二写数据一致性请求Write Unique中低位地址为12’ hlO、数据位宽为128bit, wrap4的原始命令数据量burst分别拆成低位地址为12’ hlO,数据位宽为128bit,incrl的原始命令数据量burst、低位地址为12’ h20,数据位宽为128bit,incr2的burst及低位地址为12’h00,数据位宽为128bit,incrl的原始命令数据量burst ;并且将m侧返回的三个写通道数据响应bresp合并成一个写通道数据响应bresp后从s侧发出;其中,所述m侧为主设备单元的接口 ;所述awaddr_s是指s侧写地址通道的地址;所述awvalid_s是指s侧写地址通道的请求;所述awready_s是指s侧写地址通道的请求响应;所述wdata_s是指s侧写数据通道的写数据;所述wlast_s是指s侧最后一笔写数据的指示信号;所述bvalid_s是指s侧写响应通道的请求;所述bready_s是指s侧写响应通道的请求响应;所述awaddr_m是指m侧写地址通道的地址;所述awvalid_m是指m侧写地址通道的请求;所述awready_m是指m侧写地址通道的请求响应;所述wdata_m是指m侧写数据通道的写数据;所述WlastJii是指m侧最后一笔写数据指示信号;所述bvalid_m是指m侧写响应通道的请求;所述bready_m是指m侧写响应通道的请求响应;上述 awaddr_s、awvalid_s> awready_s> wdata_s、wlast_s、bvalid_s> bready_s> awaddr_m、awvalid_m> awready_m> wdata_m> wlast_m> bvalid_m、bready_m 分别对应 AXI 协议中的标准信号。
[0105]当所述写操作转换子单元1124将第二写数据一致性请求Write Unique的字节转换完成之后,所述写接口子单元1125,具体用于:首先利用缓存器buffer缓存字节转换后的第二写数据一致性请求Write Unique,并为第二写数据一致性请求Write Unique分发写数据一致性请求通道;再将无效请求invalidate的字节数调整成与所述字节转换后的第二写数据一致性请求Write Unique字节数相等,将无效请求invalidate发送至监听控制单元12,接收监听控制单元12返回的无效请求响应inv_done后,向所述互连单元23发起写操作,缓存写数据响应通道;
[0106]这里,由于监听控制单元12返回的无效请求响应inv_done可能是乱序的,为了保证经所述写操作转换子单元1124字节数转换后的第二写数据一致性请求与第二主设备单元22发送的第二写数据一致性请求Write Unique顺序的一致性,所述写接口子单元1125在无效请求invalidate的标识inv_id中除了添加有第二主设备单元22的写地址通道标识awid外,还要在字节数转换后的第二写数据一致性请求Write Unique中添加buffer号,并保存在buffer中;如果返回的inv_id与保存的buffer号一致,才将对应的经所述写操作转换子单元1124字节数转换后的第二写数据一致性请求Write Unique发送至互连单元23。
[0107]为了避免死锁,所述写接口子单元1125还用于阻塞传输事务间顺序ordering、处理写后写WAW和读后写RAW冲突;其中,
[0108]所述阻塞传输事务间顺序ordering包括:所有一致性传输数据请求全部结束后,当前无一致性传输数据的请求才能发出;或者,所有无一致性传输数据请求全部结束后,当前一致性传输数据的请求才能发出。
[0109]对于WAW冲突,所述写接口子单元1125会将字节转换后的第二写数据一致性请求Write Unique发送至第一从接口单元11中,若与所述第一写数据一致性请求之间存在冲突,所述写接口子单元1125则会阻塞字节转换后的第二写数据一致性请求Write Unique,直至第一从接口单元111的字节转换后的第一写数据一致性请求完成操作;所述WAW冲突是指第一主设备单元21对该地址区域进行写操作之后,第二主设备单元22对该地址区域进行写操作;或者指第二主设备单元22对该地址区域进行写操作之后,第一主设备单元21对该地址区域进行写操作。
[0110]对于RAW冲突,所述写接口子单元1125利用CAM保存未处理的第二写数据一致性请求的写地址通道标识awid地址,所述监听控制单元12将第二写数据一致性请求WriteUnique的miss地址发送至写接口子单元1125,所述写接口子单元1125判断第二写数据一致性请求Write Unique的miss地址与pending地址是否相同,若相同,则向所述监听控制单元12返回冲突信号hazard,以保证字节转换后的第二写数据一致性请求Write Unique完成操作,只有字节数转换后的第二写数据一致性请求Write Unique完成操作后,所述监听控制单元12才会向互连单元23发起读数据一致性操作;其中,所述miss地址是指无命中结果的地址;所述写地址通道标识awid用于查找写响应通道标识bid以及从CAM中读取数据;所述RAW是指第一主设备单元21通过第一从接口单元111对该地址区域进行写操作之后,第二主设备单元22通过第二从接口单元112对该地址区域进行读操作;或者是指第一主设备单元21对该地址区域进行写操作之后,第二主设备单元22对该地址区域进行读操作。
[0111]当所述第二主设备单元22同时发送所述第二读数据一致性请求Read Once和第二写数据一致性请求Write Unique时,所述仲裁子单元1126,具体用于对所述字节转换后的第二读数据一致性请求Read Once和字节转换后的第二写数据一致性请求Write Unique的执行进行仲裁;这里,因为第二从接口单元112与监听控制单元12之间的一致性请求接口只有一个,所以仲裁子单元1126需要对所述第二读数据一致性请求Read Once和第二写数据一致性请求Write Unique进行仲裁后,向监听控制单元12发送第二读数据一致性请求Read Once或第二写数据一致性请求Write Unique。
[0112]另外,当所述从接口单元11确定支持接收的数据一致性请求对应的协议时,则不需要对接收的数据一致性请求进行协议转换处理,直接将接收的数据一致性请求发送至所述监听控制单元12。
[0113]具体地,在有一致性数据传输要求的情况下,所述第一从接口单元11,具体用于:根据先进先出(FIFO, First In First Out)缓存传输类型、数据地址冲突、传输事务间顺序ordering情况,将所述第一主设备单元21的第一读数据一致性请求发送至监听控制单元12,或者将第一主设备单元21的第一写数据一致性请求发送至互连单元23,直接向互连单元23发起写操作;
[0114]这里,所述第一从接口单元111,支持通过early wresp寄存器提供的控制信号选择写响应提前返回early response或写响应正常返回normal response的方式。对于写响应提前返回early response方式,当根据写数据一致性请求完成写操作后,则返回写响应;如果实际写响应有错误error,第一从接口单元111则会记录错误传输的地址和标识ID ;对于写响应正常返回normal response方式,将实际写响应返回给第一主设备单元21。
[0115]这里,当第一主设备单元21进行除读和写外的其它一致性维护性操作时,所述第一从接口单元111,还用于:将改写后的数据dirty数据复本唯一 clean unique请求或复本共有clean shared请求或复本无效clean invalid请求发送至监听控制单元12,以对复本进行清除clean操作或make操作;所述make操作是指:根据复本唯一 clean unique请求或复本共有clean shared请求或复本无效clean invalid请求对复本进行唯一操作或共有操作或无效操作。
[0116]所述第一从接口单元111,还具有数据传输超时检测功能,在数据传输过程中,通过计数检测来判断数据传输的各阶段是否超时;具体地,第一主设备单元21通过握手机制向从设备单元31发送valid信号,当第一从接口单元111判断如果在超时阈值周期内没有接收到接收从设备单元31返回的ready信号时,认为数据传输超时,产生超时中断;所述超时阈值周期可根据实际情况预先配置。
[0117]另外,在无一致性数据传输要求的情况下,所述第一从接口单元111根据先FIFO缓存传输类型、数据地址冲突、传输事务间顺序ordering情况,将第一主设备单元21发送的第一读或写数据一致性请求发送至所述互连单元23;所述第二从接口单元112将第二主设备单元22的第二读或写数据一致性请求直接发送至互连单元23,以访问相应的从设备单元31 ;其中,从设备单元31至少包括一个。
[0118]当所述第一从接口单元21、第二从接口单元112同时向监听控制单元12发送第一读数据一致性请求、第二读或写数据一致性请求时,所述监听控制单元12,具体用于:根据第一读数据一致性请求或字节数转换后的第二读数据一致性请求Read Once,确定查找到标记存储器tag_ram,向所述发送第一读数据一致性请求的第一主设备单元21发送监听请求,获取访问数据;若第一主设备单元21未响应监听请求,监听控制单元12则向互连单元23发送读数据操作,获取读数据;若确定未查找到标记存储器tag_ram,则向所述互连单元23发送读数据操作;或者,
[0119]响应第二从接口单元112发送的无效请求invalidate,以使第二从接口单元112向互连单元23发起写操作。
[0120]具体地,如图7所示,所述监听控制单元12包括:标记控制子单元snoop_tag_ctll21、数据交换子单元snoop_ddil22、仲裁子单元snoop_arbl23 ;其中,
[0121]所述标记控制子单元121,用于:接收第一从接口单元111发送的第一读或写数据一致性请求、第二从接口单元112发送的第二读或写一致性请求及数据交换子单元121发送的无效请求invalidate,并对这些请求的执行进行仲裁;
[0122]当仲裁后的请求是第一读数据一致性请求或第二读数据一致性请求Read Once时,所述标记控制子单元121,具体用于:根据第一读数据一致性请求或第二读数据一致性请求Read Once查找标记存储器tag_ram,如果查找到标记存储器tag_ram,则根据标记存储器七38_作111中的完整缓存数据行?1111 Cache Line信息生成命中结果;其中,若命中结果中的完整缓存数据行Full Cache Line是有效状态,则向数据交换子单元122发送监听请求,以获取读数据;若命中结果中的完整缓存数据行Full Cache Line是无效状态或命中结果中不存在完整缓存数据行Full Cache Line,所述标记控制子单元121则利用互连单元23向外部存储器memory发送读memory请求;所述操作类型为Read Clean,所述ReadClean是指读共享数据并且读出的共享数据不被缓存,所述标
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1