数据访问方法及设备的制造方法

文档序号:8445500阅读:294来源:国知局
数据访问方法及设备的制造方法
【技术领域】
[0001]本发明涉及计算机领域,特别涉及一种数据访问方法及设备。
【背景技术】
[0002]随着芯片复杂度的不断增加,单个芯片内HAC(英文:Hardware Accelerator ;中文:硬件加速器)的数量越来越多,且HAC对SOC (英文!System On Chip ;中文:片上系统)的存储资源进行数据访问是HAC执行业务过程中比不可少的环节。
[0003]目前,HAC对SOC的存储资源进行数据访问的具体过程可以为:如图1所示,每个HAC分别连接一个HAC-1F(英文:Hardware Accelerator Interface ;中文:硬件加速器接口),当每个HAC接收到数据访问请求时,该HAC将该数据访问请求发送给与其连接的HAC-1F,该HAC-1F基于指定数据量和该数据访问请求携带的数据量,在每个时钟周期,从该数据访问请求中拆分出一个子数据访问请求,子数据访问请求携带的子数据量小于或等于指定数据量。其中,指定数据量小于或等于SOC数据总线要求的最大数据量。之后,该HAC-1F将该子数据访问请求进行协议转化,得到数据访问命令,使该数据访问命令满足SOC数据总线的协议。该HAC-1F将该数据访问命令发送给SOC数据总线,当SOC数据总线检测到多个HAC-1F发送的数据访问命令时,基于每个HAC-1F接收的数据访问请求的优先级,接收优先级最高的数据访问请求拆分后的数据访问命令,并基于该数据访问命令,对SOC的存储资源进行数据访问。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]SOC数据总线为每个HAC-1F均提供一个访问接口,当HAC的数量增加时,SOC数据总线需要提供的访问接口也会增加;并且在每个HAC-1F内均需布置相同的拆分数据访问请求的逻辑和协议转化的逻辑,资源浪费较多。

【发明内容】

[0006]为了解决现有技术的问题,本发明实施例提供了一种数据访问方法及设备。所述技术方案如下:
[0007]第一方面,提供了一种数据访问方法,所述方法包括:
[0008]在每个时钟周期,当检测到多个硬件加速器HAC通过与所述多个HAC分别连接的硬件加速器接口 HAC-1F发送的数据访问请求时,基于多个数据访问请求的优先级,接收优先级最高的数据访问请求;
[0009]基于接收的数据访问请求的类型,将所述接收的数据访问请求存储在逻辑主接口LMI的数据队列中;
[0010]基于所述LMI的数据队列中的目标数据访问请求携带的数据量、所述目标数据访问请求携带的起始地址和片上系统SOC数据总线的最大数据量,对SOC的存储资源进行数据访问。
[0011]结合第一方面,在上述第一方面的第一种可能的实现方式中,所述基于接收的数据访问请求的类型,将所述接收的数据访问请求存储在逻辑主接口 LMI的数据队列中,包括:
[0012]如果接收的数据访问请求的类型为数据写请求,则将所述接收的数据访问请求存储在LMI的第一数据队列中最后一个数据访问请求之后,所述第一数据队列用于存储数据写请求;
[0013]如果接收的数据访问请求的类型为数据读请求,则将所述接收的数据访问请求存储在所述LMI的第二数据队列中最后一个数据访问请求之后,所述第二数据队列用于存储数据读请求。
[0014]结合第一方面,在上述第一方面的第二种可能的实现方式中,所述基于所述LMI的数据队列中的目标数据访问请求携带的数据量、所述目标数据访问请求携带的起始地址和片上系统SOC数据总线的最大数据量,对SOC的存储资源进行数据访问,包括:
[0015]从LMI的第一数据队列中,获取目标数据写请求,以及从所述LMI的第二数据队列中,获取目标数据读请求;
[0016]基于所述目标数据写请求携带的第一数据量、所述目标数据写请求携带的第一起始地址和SOC数据总线的最大数据量,将所述目标数据写请求的写数据写入SOC的存储资源中;
[0017]基于所述目标数据读请求携带的第二数据量、所述目标数据读请求携带的第二起始地址和所述SOC数据总线的最大数据量,从所述SOC的存储资源中读取所述目标数据读请求的读数据。
[0018]结合第一方面的第二种可能的实现方式,在上述第一方面的第三种可能的实现方式中,所述基于所述目标数据写请求携带的第一数据量、所述目标数据写请求携带的第一起始地址和SOC数据总线的最大数据量,将所述目标数据写请求的写数据写入SOC的存储资源中,包括:
[0019]基于所述目标数据写请求携带的第一数据量、所述目标数据写请求携带的第一起始地址和芯片数据总线的位宽,从目标HAC中获取写数据,并对获取写数据的次数进行统计,得到第一次数,所述目标HAC为发送所述目标数据写请求的HAC ;
[0020]当所述第一次数达到第一指定次数时,从所述目标HAC中获取所述第一指定次数的下一次写数据的过程中,基于所述第一数据量、所述第一起始地址和所述SOC数据总线的最大数据量,从所述目标数据写请求中拆分出一个子数据写请求,并将所述子数据写请求进行协议转化,得到数据写命令,所述数据写命令携带第一子数据量和第一子起始地址;
[0021]当所述第一次数达到第二指定次数时,从所述目标HAC中获取所述第二指定次数的下一次写数据的过程中,将所述数据写命令发送给所述SOC数据总线,并将所述第一次数清零,重新统计第一次数,返回上一步骤,直至将所述目标数据写请求拆分完毕;
[0022]当接收到所述SOC数据总线返回的数据写响应时,将多次从所述目标HAC中获取所述数据写命令的写数据,逐次发送给所述SOC数据总线,使所述SOC数据总线按照所述第一子数据量和所述第一子起始地址,将接收的写数据写入SOC的存储资源中。
[0023]结合第一方面的第二种可能的实现方式,在上述第一方面的第四种可能的实现方式中,所述基于所述目标数据写请求携带的第一数据量、所述目标数据写请求携带的第一起始地址和SOC数据总线的最大数据量,将所述目标数据写请求的写数据写入SOC的存储资源中,包括:
[0024]基于所述目标数据写请求携带的第一数据量、所述目标数据写请求携带的第一起始地址和芯片数据总线的位宽,从目标HAC中获取写数据,并对获取写数据的次数进行统计,得到第一次数,所述目标HAC为发送所述目标数据写请求的HAC ;
[0025]当所述第一次数达到第一指定次数时,从所述目标HAC中获取所述第一指定次数的下一次写数据的过程中,基于所述第一数据量、所述第一起始地址和所述SOC数据总线的最大数据量,从所述目标数据写请求中拆分出一个子数据写请求,将所述子数据写请求进行协议转化,得到数据写命令,返回本步骤,直至将所述目标数据写请求拆分完毕;
[0026]将所述数据写命令发送给所述SOC数据总线,所述数据写命令携带第一子数据量和第一子起始地址;
[0027]当接收到所述SOC数据总线返回的数据写响应时,将多次从所述目标HAC中获取的写数据,逐次发送给所述SOC数据总线,使所述SOC数据总线按照所述第一子数据量和所述第一子起始地址,将接收的写数据写入SOC的存储资源中。
[0028]结合第一方面的第三种可能的实现方式或者第一方面的第四种可能的实现方式,在上述第一方面的第五种可能的实现方式中,所述基于所述目标数据写请求携带的第一数据量、所述目标数据写请求携带的第一起始地址和芯片数据总线的位宽,从目标HAC中获取写数据,并对获取写数据的次数进行统计,得到第一次数,包括:
[0029]基于所述目标数据写请求携带的第一数据量、所述目标数据写请求携带的第一起始地址和芯片数据总线的位宽,计算从目标HAC中获取写数据的获取次数,所述芯片数据总线为与所述LMI连接的数据总线;
[0030]基于所述获取次数,向所述目标HAC发送指示信息,所述指示信息用于指示所述目标HAC将所述目标数据写请求的写数据划分为所述获取次数次进行发送;
[0031]接收所述目标HAC发送的写数据,并对接收写数据的次数进行统计,得到第一次数。
[0032]结合第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式或者第一方面的第四种可能的实现方式,在上述第一方面的第六种可能的实现方式中,所述基于所述目标数据读请求携带的第二数据量、所述目标数据读请求携带的第二起始地址和所述SOC数据总线的最大数据量,从所述SOC的存储资源中读取所述目标数据读请求的读数据,包括:
[0033]基于所述目标数据读请求携带的第二数据量、所述目标数据读请求携带的第二起始地址和所述SOC数据总线的最大数据量,从所述目标数据读请求中拆分出一个子数据读请求,并将所述子数据读请求进行协议转化,得到数据读命令;
[0034]将所述数据读命令发送给所述SOC数据总线,使所述SOC数据总线将所述数据读命令发送给SOC的存储资源,所述数据读命令中携带第二子数据量和第二子起始地址;
[0035]接收所述SOC的存储资源通过所述SOC数据总线发送的读数据,对接收读数据的次数进行统计,得到第二次数;
[0036]当所述第二次数达到第三指定次数时,接收所述SOC的存储资源通过所述SOC数据总线发送所述第三指定次数的下一次读数据的过程中,基于所述第二数据量、所述第二起始地址和所述SOC数据总线的最大数据量,从所述目标数据读请求中拆分出下一个子数据读请求,并将所述下一个子数据读请求进行协议转化,得到下一个数据读命令;
[0037]当所述第二次数达到第四指定次数时,接收所述SOC的存储资源通过所述SOC数据总线发送所述第四指定次数的下一次读数据的过程中,将所述下一个数据读命令发送给所述SOC数据总线,并将所述第二次数清零,重新统计第二次数,返回上一步骤,直至将所述目标数据读请求拆分完毕。
[0038]结合第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式或者第一方面的第四种可能的实现方式,在上述第一方面的第七种可能的实现方式中,所述基于所述目标数据读请求携带的第二数据量、所述目标数据读请求携带的第二起始地址和所述SOC数据总线的最大数据量,从所述SOC的存储资源中读取所述目标数据读请求的读数据,包括:
[0039]基于所述目标数据读请求携带的第二数据量、所述目标数据读请求携带的第二起始地址和所述SOC数据总线的最大数据量,从所述目标数据读请求中拆分出一个子数据读请求;
[0040]将所述子数据读请求进行协议转化,得到数据读命令,返回上一步骤,直至将所述目标数据读请求拆分完毕;
[0041]将所述数据读命令发送给所述SOC数据总线,使所述SOC数据总线将所述数据读命令发送给SOC的存储资源,所述数据读命令中携带第二子数据量和第二子起始地址;
[0042]逐次接收所述SOC的存储资源通过所述SOC数据总线发送的读数据。
[0043]结合第一方面,在上述第一方面的第八种可能的实现方式中,所述方法还包括:
[0044]对于每个HAC,当向所述SOC数据总线发送属于所述HAC的数据写命令和数据读命令时,对发送的数据写命令个数进行统计,得到第一命令个数,以及对发送的数据读命令个数进行统计,得到第二命令个数;
[0045]当所述第一命令个数等于第一个数阈值时,停止接收所述HAC发送的类型为数据写请求的数据访问请求,直至所述第一命令个数小于所述第一个数阈值;
[0046]当所述第二命令个数等于第二个数阈值时,停止接收所述HAC发送的类型为数据读请求的数据访问请求,直至所述第二命令个数小于所述第二个数阈值。
[0047]第二方面,提供了一种数据访问设备,所述设备包括:
[0048]接收模块,用于在每个时钟周期,当检测到多个硬件加速器HAC通过与所述多个HAC分别连接的硬件加速器接口 HAC-1F发送的数据访问请求时,基于多个数据访问请求的优先级,接收优先级最高的数据访问请求;
[0049]存储模块,用于基于接收的数据访问请求的类型,将所述接收的数据访问请求存储在逻辑主接口 LMI的数据队列中;
[0050]数据访问模块,用于基于所述LMI的数据队列中的目标数据访问请求携带的数据量、所述目标数据访问请求携带的起始地址和片上系统SOC数据总线的最大数据量,对SOC的存储资源进行数据访问。
[0051]结合第二方面,在上述第二方面的第一种可能的实现方式中,所述存储模块包括:
[0052]存储单元,用于如果接收的数据访问请求的类型为数据写请求,则将所述接收的数据访问请求存储在LMI的第一数据队列中最后一个数据访问请求之后,所述第一数据队列用于存储数据写请求;
[0053]所述存储单元,还用于如果接收的数据访问请求的类型为数据读请求,则将所述接收的数据访问请求存储在所述LMI的第二数据队列中最后一个数据访问请求之后,所述第二数据队列用于存储数据读请求。
[0054]结合第二方面,在上述第二方面的第二种可能的实现方式中,所述数据访问模块包括:
[0055]获取单元,用于从LMI的第一数据队列中,获取目标数据写请求,以及从所述LMI的第二数据队列中,获取目标数据读请求;
[0056]写入单元,用于基于所述目标数据写请求携带的第一数据量、所述目标数据写请求携带的第一起始地址和SOC数据总线的最大数据量,将所述目标数据写请求的写数据写入SOC的存储资源中;
[0057]读取单元,用于基于所述目标数据读请求携带的第二数据量、所述目标数据读请求携带的第二起始地址和所述SOC数据总线的最大数据量,从所述SOC的存储资源中读取所述目标数据读请求的读数据。
[0058]结合第二方面的第二种可能的实现方式,在上述第二方面的第三种可能的实现方式中,所述写入单元包括:
[0059]获取子单元,用于基于所述目标数据写请求携带的第一数据量、所述目标数据写请求携带的第一起始地址和芯片数据总线的位宽,从目标HAC中获取写数据,并对获取写数据的次数进行统计,得到第一次数,所述目标HAC为发送所述目标数据写请求的HAC ;
[0060]拆分子单元,用于当所述第一次数达到第一指定次数时,从所述目标HAC中获取所述第一指定次数的下一次写数据的过程中,基于所述第一数据量、所述第一起始地址和所述SOC数据总线的最大数据量,从所述目标数据写请求中拆分出一个子数据写请求,并将所述子数据写请求进行协议转化,得到数据写命令,所述数据写命令携带第一子数据量和第一子起始地址;
[0061]发送子单元,用于当所述第一次数达到第二指定次数时,从所述目标HAC中获取所述第二指定次数的下一次写数据的过程中,将所述数据写命令发送给所述SOC数据总线,并将所述第一次数清零,重新统计第一次数,返回上一拆分子单元,直至将所述目标数据写请求拆分完毕;
[0062]所述发送子单元,还用于当接收到所述SOC数据总线返回的数据写响应时,将多次从所述目标HAC中获取所述数据写命令的写数据,逐次发送给所述SOC数据总线,使所述SOC数据总线按照所述第一子数据量和所述第一子起始地址,将接收的写数据写入SOC的存储资源中。
[0063]结合第二方面的第二种可能的实现方式,在上述第二方面的第四种可能的实现方式中,所述写入单元包括:
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1