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

文档序号:9375642阅读:来源:国知局
求或第二读数据一致性请求Read Once确定未查找到对应的标记存储器tag_ram时,向所述互连单元23发送读数据操作指示,以获取读数据;确定查找到对应的标记存储器tag_ram时,向查找到的标记存储器tag_ram所对应的主设备单元发起监听,以获取读数据;这里,因为所述监听控制单元12在同一时刻只能处理一个一致性请求,所以所述监听控制单元12需要对第一从接口单元111发送的第一读数据一致性请求和第二从接口单元112发送的第二读数据一致性请求Read Once的执行进行仲裁。
[0072]如果所述监听控制单元12仲裁后的请求是所述第一读数据一致性请求时,则对所述第一读数据一致性请求处理完毕之后,还需对第二读数据一致性请求Read Once进行处理;或者,如果所述监听控制单元12仲裁后的请求是所述第二读数据一致性请求ReadOnce时,则对所述第二读数据一致性请求Read Once处理完毕之后,还需对第一读数据一致性请求进行处理。
[0073]这里,所述监听控制单元12对所述第一读数据一致性请求及第二读数据一致性请求Read Once的执行进行仲裁的具体实现方式有很多种,比如:可以根据轮询仲裁的方式对所述第一读数据一致性请求及第二读数据一致性请求Read Once的执行进行仲裁,还可以根据最近最少访问或伪随机的仲裁方式进行仲裁等等。
[0074]实际应用时,如图3所示,所述互连单元23可以包括五个主接口单元,六个从接口单元;其中,六个从接口单元分别连接第一主设备单元21对应的第一从接口单元111、第二主设备单元22对应的第二从接口单元112及监听控制单元12 ;—个主接口单元用于连接各寄存器,其余四个主接口单元作为输出,连接从设备单元31 ;其中,所述各寄存器包括:无效标记存储器tag_ram寄存器、early wresp控制寄存器、超时阈值寄存器、中断状态寄存器、调试debug控制寄存器及中断屏蔽寄存器;
[0075]实际应用时,本实施例提供的装置是在各个寄存器的使能下进行工作的;比如:在装置初始化时,所述无效标记存储器tag_ram寄存器向监听控制单元12提供无效使能信号,以便所述监听控制单元根据无效使能信号将相应标记存储器tag_ram预设成无效状态;所述early wresp控制寄存器向所述第一从接口单元111提供控制信号,以使所述第一从接口单元111根据所述控制信号选择写响应提前返回early response或写响应正常返回normal response的方式;所述超时阈值寄存器向所述第一从接口单元111提供计数阈值周期,以使所述第一从接口单元111通过计数检测来判断数据传输的各阶段是否超时;当判断为超时时,所述第一从接口单元111根据所述中断状态寄存器提供的超时中断信号产生超时中断;所述调试debug控制寄存器用于对实现数据一致性的装置中的相应模块的状态信号进行调试;所述中断屏蔽寄存器用于屏蔽掉实现数据一致性的装置中相应模块的中断状态信号。
[0076]其中,所述调试debug控制寄存器的具体作用不是本发明实施例关心的内容。
[0077]相应地,所述第一主设备单元21可以至少包括两个设备单元cluster,所述cluster可以为支持ACE协议的主设备ACE master ;比如,可以为ARM公司的ARM CortexA15 及 ARM Cortex A7。
[0078]所述第二主设备单元22可以至少包括一个主设备,可以为支持ACE_Lite协议的主设备ACE_Lite master,或者是支持AXI协议的主设备AXI master ;比如可以为10主设备、图形处理器(GPU, Graphic Processing Unit)、直接内存存取(DMA, Direct MemoryAccess)以及AXI子系统等。
[0079]所述从设备单元31可以至少包括一个从设备,可以为支持AXI协议的从设备AXIslave,所述从设备也可以包括外部存储器memory。
[0080]实际应用时,所述第二主设备单元22及所述从设备单元31的个数可根据系统需要进行扩展或剪裁。
[0081]所述第二从接口单元112,还用于:对接收的来自第二主设备单元22的第二写数据一致性请求Write Unique进行协议转换处理,根据协议转换后的第二写数据一致性请求Write Unique,向监听控制单元12发送无效请求invalidate,并接收监听控制单元12返回的无效请求响应后,向所述互连单元23发起写操作。
[0082]这里,如4所示,所述第二从接口单元112包括:协议转换子单元1121、读操作转换子单元1122、读接口子单元1123、写操作转换子单元1124、写接口子单元1125、仲裁子单元1126 ;其中,
[0083]所述协议转换子单元1121,用于将接收的第二主设备单元22发送的支持AXI协议的数据一致性请求转换成支持ACE_Lite协议的数据一致性请求;
[0084]所述读操作转换子单元1122,用于当第二主设备单元发送的数据一致性请求为第二读数据一致性请求时,将协议转换后的第二读数据一致性请求Read Once的字节数转换成完整缓存数据行Full Cache Line字节数;
[0085]所述读接口子单元1123,用于为所述字节数转换后的第二读数据一致性请求ReadOnce分发第二读数据一致性请求Read Once通道,复用读数据通道,并将字节数转换后的第二读数据一致性请求Read Once发送给所述仲裁子单元1126 ;
[0086]所述写操作转换子单元1124,用于当第二主设备单元发送的数据一致性请求为第二写数据一致性请求Write Unique时,将协议转换后的第二写数据一致性请求WriteUnique的字节数转换成完整缓存数据行Full Cache Line字节数;
[0087]所述写接口子单元1125,用于为所述字节数转换后的第二写数据一致性请求Write Unique分发第二写数据一致性请求Write Unique通道,缓存写数据响应通道,并根据字节数转换后的第二写数据一致性请求Write Unique向所述仲裁子单元1126发送无效请求 invalidate ;
[0088]所述仲裁子单元1126,用于当同时收到所述读接口子单元1123与所述写接口子单元1125发送的数据一致性请求时,对所述字节数转换后的第二读数据一致性请求ReadOnce及所述字节数转换后的第二写数据一致性请求Write Unique的执行进行仲裁,并根据仲裁后的第二读数据一致性请求Read Once或第二写数据一致性请求Write Unique向所述监听控制单元12发送相应的数据一致性请求;具体地,当仲裁后的数据一致性请求为第二读数据一致性请求Read Once时,将字节数转换后的第二读数据一致性请求Read Once发送给所述监听控制单元12 ;当仲裁后的数据一致性请求为第二写数据一致性请求WriteUnique时,向所述监听控制单元12发送无效请求invalidate。其中,所述字节数转换后的第二读数据一致性请求Read Once是指读共享数据且读出的共享数据不被缓存的请求。
[0089]这里,当所述仲裁子单元1126同时收到所述读接口子单元1123与所述写接口子单元1125发送的数据一致性请求时,若所述仲裁子单元1126仲裁后的请求是第二读数据一致性请求Read Once时,将第二读数据一致性请求Read Once发送至所述监听控制单元12后,还需根据所述第二写数据一致性请求Write Unique向所述监听控制单元12发送无效请求invalidate ;或者,
[0090]当所述仲裁子单元1126仲裁后的请求是第二写数据一致性请求Write Unique时,根据第二写数据一致性请求Write Unique向所述监听控制单元12发送无效请求invalidate后,还需将所述第二读数据一致性请求Read Once发送至所述监听控制单元12。
[0091]具体地,当所述第二主设备单元22包括AXI master时,所述协议转换子单元1121,具体用于:根据AXI master中不同的AXI地址产生不同的ACE_Lite传输类型,将支持AXI协议的第二读或写数据一致性请求转换成支持ACE_Lite协议的第二读或写数据一致性请求,以使AXI master发送的第二读或写数据一致性请求可以有效发送,换句话说,以使AXI master发送的第二读或写数据一致性请求得到所述监听控制单元12相应的响应;其中,所述传输类型包括:写地址通道的监听请求AWSN00P、读地址通道的监听请求ARSN00P ;所述AXI地址与ACE_Lite传输类型之间的映射关系可预先配置。
[0092]当所述第二主设备单元22发送的第二数据一致性请求是第二读数据一致性请求Read Once时,所述读操作转换子单元1121,具体用于:利用内容寻址存储器(CAM, ContentAddressable Memory)、拆分算法及控制逻辑将协议转换后的第二读数据一致性请求ReadOnce的字节数转换成完整缓存数据行Full Cache Line字节数;具体地,所述读操作转换子单元1122将收到的协议转换后的第二读数据一致性请求Read Once进行字节合并,过滤掉多余字节,以满足原始命令数据量burst的要求;这里,因为所述监听控制单元12要求读数据一致性请求的字节数与缓存数据行完整缓存数据行Full Cache Line字节数相同,而所述协议转换后的第二读数据一致性请求Read Once的字节数却无类似的限制,所以需要进行字节数的转换;
[0093]其中,所述完整缓存数据行Full Cache Line字节数通常为32byte或64byte ;所述原始命令数据量burst包括:数据位宽、数据类型及数据长度,所述数据位宽一般为32bit、64bit或128bit ;所述数据类型包括:固定型fixed、增加型incr及回绕型wrap ;所述数据长度至少包括一笔数据,所述CAM的存储单元个数可根据系统要求进行配置。
[0094]比如,假设完整缓存数据行Full Cache Line字节数要求为32byte,数据位宽为128bit,则对应的原始命令数据量burst的数据位宽也为128bit,数据类型为回绕型、回绕长度为2(wrap2);则第二读数据一致性请求Read Once转换时的接口时序如图5所示。
[0095]由图5可以获知,可将字节转换后的第二读数据一致性请求Read Once中低位地址为12’ hl8、数据位宽为64bit、数据类型为incr4的burst拆成低位地址为12’ hlO、数据位宽为128bit、wrap2及低位地址为12’ h20、数据位宽为128bit、wrap2这两个原始命令数据量burst ;其中,当不需要第一个原始命令数据量burst数据的第二笔数据时,则跳过skip第二笔数据,第二个原始命令数据量burst的第一笔数据保持了两个周期,对应着s侧中地址分别为12’ h20及12’ h28的数据;并且,s侧在收到第四笔数据时将rlast_s拉闻;
[0096]这里,还可将字节转换后的第二读数据一致性请求Read Once中低位地址为12’ hl8、数据位宽为64bit, wrap4的burst拆成两个低位地址都为12’ hlO,数据位宽为128bit, wrap2的原始命令数据量burst。其中,第一个原始命令数据量burst的第二笔数据保持了两个周期,对应s侧中地址分别为12’ h00及12’ h08的数据;8侧收到第四笔数据时将rlast_s拉高,其中,当不需要第二个原始命令数据量burst的第二笔数据时,则跳过skip第二笔数据;所述s侧是指从设备slave的接口信号,所述m侧是指第二主设备单元22的接口信号,所述s侧的信息对应读操作转换子单元1122转换后输出的m侧的信息。
[0097]所述 s 侧的信息包括:araddr_s、arvalid_s、arready_s、rdata_s、rlast_s、rvalid_s、rready_s ;所述rlast_s是指s侧最后一笔读数据一致性请求信号,所述araddr_s是指s侧读地址通道的地址;所述arvalid_S是指s侧读址址通道的请求;所述arready_s是指s侧读地址通道请求响应;所述rdata_s是指s侧读数据通道的读数据;所述rlast_s是指s侧最后一笔读数据的指示信号;所述rvalid_S是指s侧读数据通道的请求;所述rready_s是指s侧读数据通道的请求响应;
[0098]所述m侧的信息包括:araddr_ _m、arvalid_m> arready_m> rdata_m、rlast_m、rvalid_m>rready_m ;所述araddr_m是指m侧读地址通道的地址;所述arval id_m是指m侧读地址通道的请求;所述arready_m是指m侧读地址通道的请求响应;所述rdata_m是指m侧读数据通道的读数据;所述rlast_m是指m侧最后一笔读数据的指示信号;所述rvalid_m是指m侧读数据通道的请求;所述rready_m是指m侧读数据通道的请求响应;所述beat_complete是指当前一笔数据结束;所述last_match是指最后一笔数据;上述araddr_s、arvalid_s> arready_s> rvalid_s> rlast_s、rdata_s、rready_s> araddr_m、arvalid_m>arready_m> rvalid_m、rlast_m、rdata_m、rready_m 分别对应 AXI 协议中的标准信号。
[0099]当所述读操作转换子单元1122将协议转换子单元1121转换后的第二读数据一致性请求Read Once字节数转换完成之后,所述读接口子单元1123,具体用于:利用缓存器buffer缓存所述读操作转换子单元1122字节数转换后
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1