基于指令读取数据中的目标数据的方法及其设备技术

技术编号:39800873 阅读:7 留言:0更新日期:2023-12-22 02:31
本发明专利技术涉及基于指令读取数据中的目标数据的方法及其设备,其中本发明专利技术的计算装置包括在集成电路装置中,该集成电路装置包括通用互联接口和其他处理装置

【技术实现步骤摘要】
基于指令读取数据中的目标数据的方法及其设备


[0001]本专利技术一般地涉及计算机领域

更具体地,本专利技术涉及基于指令读取数据中的目标数据的方法及其设备


技术介绍

[0002]在图像识别或图像分类的领域中,图像的局部区域通常具有强相关性,也就是邻近的小片像素区域相关性较强,而距离较远的像素区域相关性较弱

[0003]图像一般是以二维或三维的方式进行存储的,当图像数据在存储器中存储时,图像数据在同一列上的连续两个像素点之间有固定的步长
(stride)。
当处理器在处理图像数据时,会将一部分的数据从一般存储器
(

DRAM)
预先搬运到缓存上,缓存的
I/O
速度快,从缓存取出数据来处理,可以提高处理效率

处理器读取数据会涉及到两种指令:
[0004]1.
预载指令
(prefetch)
:由软件给出

在软件中指定的触发条件或时间,将数据从一个存储器搬运到另一个存储器中

在一种情况下,是将数据从片外搬运到片上

[0005]2.
加载指令
(load)
:读访问操作,当处理器需要基于数据执行任务时,自片上内存中取出搬运到缓存,准备基于该数据进行运算

[0006]利用上述两种指令读取数据时,每次都是搬运连续的数据片段
(
最小搬运单元
)
,即数据搬运必然连续的

图1示出一个图像数据在存储器中被摆放的示意图,该图像数据是8×8的二维矩阵,图中粗线方框为感兴趣的局部区域,例如该图像数据为人像半身照,而局部区域为脸部区域

当系统欲针对局部区域进行运算时,如前所述,不论利用预载指令或是加载指令均为连续读取,因此系统将读取缓存行
(cache line)1
至缓存行
26
,才能获得感兴趣的局部区域进行运算,换言之,虽然系统仅需要8个缓存行的数据,却搬运了
26
个缓存行,近7成的
I/O
是无谓的,造成带宽的浪费


技术实现思路

[0007]为了至少部分地解决
技术介绍
中提到的技术问题,本专利技术的方案提供了一种基于指令读取数据中的目标数据的方法及其设备

[0008]在一个方面中,本专利技术揭露一种处理器核,电性连接至片上内存,片上内存存储有数据

处理器核包括控制模块及运算模块,其中控制模块用以:根据指令中的第一步长值设定第一步长;根据指令中的第一数量值设定第一数量;自片上内存读取数据中对应第一步长与第一数量的目标数据至缓存

第一步长为沿第一维方向读取目标数据时以数据片段为单位的读取间隔,第一数量为以数据片段为单位的读取数量

运算模块基于缓存中的目标数据进行运算

[0009]在另一个方面,本专利技术揭露一种计算装置,包括上述的处理器核

[0010]在另一个方面,本专利技术揭露另一种计算装置,电性连接至片外内存,片外内存存储有数据

计算装置包括片上内存与处理器核,处理器核用以:根据指令中的第一步长值设定第一步长;根据指令中的第一数量值设定第一数量;自片外内存读取数据中对应第一步长
与第一数量的目标数据至片上内存

其中,第一步长为沿第一维方向读取目标数据时以数据片段为单位的读取间隔,第一数量为以数据片段为单位的读取数量

处理器核基于片上内存中的目标数据进行运算

[0011]在另一个方面,本专利技术揭露一种集成电路装置,包括上述的计算装置,并揭露一种板卡,包括上述集成电路装置

[0012]在另一个方面,本专利技术揭露一种基于指令读取数据中的目标数据的方法,包括:根据指令中的第一步长值设定第一步长;根据指令中的第一数量值设定第一数量;自第一内存读取数据中对应第一步长与第一数量的目标数据至第二内存;基于第二内存中的目标数据进行运算

其中,第一步长为沿第一维方向读取目标数据时以数据片段为单位的读取间隔,第一数量为以数据片段为单位的读取数量

[0013]在另一个方面,本专利技术揭露一种计算机可读存储介质,其上存储有基于指令读取数据中的目标数据的方法的计算机程序代码,当所述计算机程序代码由处理装置运行时,执行上述的方法

[0014]在另一个方面,本专利技术揭露一种计算机程序产品,包括基于指令读取数据中的目标数据的计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述方法的步骤

[0015]在另一个方面,本专利技术揭露一种计算机装置,包括存储器

处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现上述方法的步骤

[0016]本专利技术通过设定至少一个步长值及至少一个数量值,以决定读取数据的步长与数量,进而略过不感兴趣的数据片段,仅取出感兴趣的局部数据,以节省
I/O
带宽

附图说明
[0017]通过参考附图阅读下文的详细描述,本专利技术示例性实施方式的上述以及其他目的

特征和优点将变得易于理解

在附图中,以示例性而非限制性的方式示出了本专利技术的若干实施方式,并且相同或对应的标号表示相同或对应的部分

其中:
[0018]图1是示出图像数据在存储器中被摆放的示意图;
[0019]图2是示出本专利技术实施例的板卡的结构图;
[0020]图3是示出本专利技术实施例的集成电路装置的结构图;
[0021]图4是示出本专利技术实施例的计算装置的内部结构示意图;
[0022]图5是示出本专利技术实施例的处理器核的内部结构示意图;
[0023]图6是示出本专利技术实施例自二维数据读取目标数据的示意图;
[0024]图7是示出本专利技术实施例自二维数据中读取目标数据的另一个示意图;
[0025]图8是示出本专利技术实施例自二维数据中读取目标数据的另一个示意图;
[0026]图9是示出本专利技术实施例自二维数据中读取目标数据的另一个示意图;
[0027]图
10
是示出本专利技术实施例自二维数据中读取目标数据的另一个示意图;
[0028]图
11
是示出本专利技术另一个实施例的流程图;
[0029]图
12
是示出本专利技术另一个实施例的流程图

具体实施方式
[0030]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚


整地描述,显然,所描述的实施例是本专利技术一部分实施例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种处理器核,电性连接至片上内存,所述片上内存存储有数据,所述处理器核包括控制模块及运算模块,其特征在于所述控制模块用以:根据指令中的第一步长值设定第一步长;根据所述指令中的第一数量值设定第一数量;自所述片上内存读取所述数据中对应所述第一步长与所述第一数量的目标数据至缓存;其中,所述第一步长为沿第一维方向读取所述目标数据时以数据片段为单位的读取间隔,所述第一数量为以所述数据片段为单位的读取数量,所述运算模块基于所述缓存中的所述目标数据进行运算
。2.
根据权利要求1所述的处理器核,其中所述指令包括第一步长域及第一数量域,所述控制模块自所述第一步长域中获取所述第一步长值,并自所述第一数量域中获取第一数量值
。3.
根据权利要求1所述的处理器核,其中当所述第一步长值为图像步长减一时,所述目标数据为沿着第二维方向连续读取所述第一数量值个数据片段,其中所述图像步长为所述数据沿所述第一维方向的长度
。4.
根据权利要求1所述的处理器核,其中当所述第一步长值为图像步长减二时,所述目标数据为在所述第一维与第二维组成的平面中沿着斜率为1的方向连续读取所述第一数量值个数据片段,其中所述图像步长为所述数据沿所述第一维方向的长度
。5.
根据权利要求1所述的处理器核,其中当所述第一步长值为图像步长时,所述目标数据为在所述第一维与第二维组成的平面中沿着斜率为
‑1的方向连续读取所述第一数量值个数据片段,其中所述图像步长为所述数据沿所述第一维方向的长度
。6.
根据权利要求2所述的处理器核,其中所述控制模块还用以:根据所述指令中的第
N
步长值设定第
N
步长;根据所述指令中的第
N
数量值设定第
N
数量;自所述片上内存读取所述数据中对应所述第一至第
N
步长与所述第一至第
N
数量的所述目标数据至所述缓存;其中,由第
N
‑1步长值与第
N
‑1数量值决定
N
‑1维子数据组,所述第
N
步长为所述
N
‑1维子数据组沿所述第一维方向以所述数据片段为单位的读取间隔,所述第
N
数量值为所述
N
‑1维子数据组的读取数量,
N
为大于1的正整数
。7.
根据权利要求6所述的处理器核,其中当以下表达式满足且所述第一步长值为0时,二维子数据组为沿着第二维方向连续读取一维子数据组:第2步长值=所述图像步长

所述第一数量值
。8.
根据权利要求6所述的处理器核,其中当所述第一步长值为0,所述第二步长域为空字符串或是特殊字符时,所述第二步长值为图像步长减去第一数量值,其中所述图像步长为所述数据沿所述第一维方向的长度
。9.
根据权利要求6所述的处理器核,其中所述指令包括第
N
步长域及第
N
维数量域,所述控制模块自所述第
N
步长域中获取所述第
N
步长值,并自所述第
N
维数量域中获取第
N
数量值
。10.
根据权利要求1所述的处理器核,还包括存储模块,所述存储模块包括所述数据缓

。11.
根据权利要求
10
所述的处理器核,其中所述存储模块还包括神经元存储单元,当所述运算模块进行运算时,所述目标数据自所述数据缓存搬移至所述神经元存储单元,所述运算模块自所述神经元存储单元读取所述目标数据
。12.
根据权利要求1所述的处理器核,其中所述指令为加载指令
。13.
根据权利要求1所述的处理器核,其中所述数据片段为缓存行
。14.
根据权利要求1至
13
任一项所述的处理器核,其中所述指令还包括起始地址域,所述控制模块自所述起始地址域获取读取所述目标数据的起始地址
。15.
一种计算装置,包括根据权利要求1至
14
所述的处理器核
。16.
一种集成电路装置,包括根据权利要求
15
所述的计算装置
。17.
一种板卡,包括根据权利要求
16
所述的集成电路装置
。18.
一种计算装置,电性连接至片外内存,所述片外内存存储有数据,所述计算装置包括片上内存与处理器核,其特征在于处理器核用以:根据指令中的第一步长值设定第一步长;根据所述指令中的第一数量值设定第一数量;自所述片外内存读取所述数据中对应所述第一步长与所述第一数量的目标数据至所述片上内存;其中,所述第一步长为沿第一维方向读取所述目标数据时以数据片段为单位的读取间隔,所述第一数量为以所述数据片段为单位的读取数量,所述处理器核基于所述片上内存中的所述目标数据进行运算
。19.
根据权利要求
18
所述的计算装置,其中所述指令包括第一步长域及第一数量域,所述控制模块自所述第一步长域中获取所述第一步长值,并自所述第一数量域中获取第一数量值
。20.
根据权利要求
18
所述的计算装置,其中当所述第一步长值为图像步长减一时,所述目标数据为沿着第二维方向连续读取所述第一数量值个数据片段,其中所述图像步长为所述数据沿所述第一维方向的长度
。21.
根据权利要求
...

【专利技术属性】
技术研发人员:请求不公布姓名请求不公布姓名
申请(专利权)人:中科寒武纪科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1