处理器和数据收集方法

文档序号:9564399阅读:624来源:国知局
处理器和数据收集方法
【专利说明】
[0001] 相关申请的交叉引用
[0002] 本申请是基于并且要求2014年5月27日提交的日本专利申请No. 2014-108852 的优先权的权益,本申请的公开的全部内容以引用方式并入本文中。
技术领域
[0003] 本发明涉及处理器和数据收集方法,例如,涉及用于读取或写入存储在存储器中 的多个数据集合的处理器、数据处理装置、数据收集方法和数据写入方法。
【背景技术】
[0004] 近年来,已经开发了能够执行矢量运算的处理器。矢量运算对矢量数据元素执行 的多个标量运算是一个运算。专利申请No. 2014-504418的PCT国际公开的公开日文翻译 公开了在执行矢量运算之前和之后执行的收集指令和分散指令。
[0005] 收集指令是用于从存储器的对应区域收集与数据阵列的多个指定索引对应的数 据值的指令。通过收集指令收集的多个数据值被用作后续矢量运算的输入矢量。分散指令 是用于将矢量数据的数据值存储在存储器的与数据阵列的指定索引对应的区域中的指令。 通过矢量运算产生的输出矢量的各个元素可被用作受支配于分散指令的矢量数据。

【发明内容】

[0006] 然而,当将收集或分散指令用于矢量运算时,处理时间会增加并且处理效率会降 低。这是因为,在一个存储器访问中只可访问存储器中存储有数据阵列的连续区域。由此, 多个存储器访问目标数据值的存储目的地中的存储器区域是不连续的(离散的),需要在 连续区域的各个簇中执行存储器访问。也就是说,尽管收集和分散指令均是单个指令,但存 储器访问的数目会根据数据值的存储目的地而增加。由此,矢量运算的预处理或后处理时 间增加。
[0007] 根据本说明书的描述和附图,其它目的和新特征将变得清楚。
[0008] 根据本发明的实施例,通过改变数据元素的存储次序,处理器加载或存储存储器 和处理器中的存储单元之间的多个数据集合中包含的多个数据元素。
[0009] 被替换了根据实施例的处理器的方法和系统、致使计算机执行装置的处理或装置 的一部分的程序、包括该装置的成像设备等也有效地作为本发明的方面。
[0010] 根据实施例,可有效执行存储器和处理器中的存储单元之间的加载或存储数据的 过程。
【附图说明】
[0011] 根据下面结合附图对某些实施例的描述,以上和其它方面、优点和特征将更清楚, 其中:
[0012] 图1是示出包括根据实施例1的处理器的数据处理装置的构造的框图;
[0013] 图2是示出根据实施例1的数据收集方法的流程的流程图;
[0014] 图3是示出包括根据实施例1的处理器的数据处理装置的另一个构造的框图;
[0015] 图4是示出包括根据实施例2的处理器的数据处理装置的构造的框图;
[0016] 图5是示出根据实施例2的数据写入方法的流程的流程图;
[0017] 图6是示出包括根据实施例2的处理器的数据处理装置的另一个构造的框图;
[0018] 图7是示出包括根据实施例3的处理器的数据处理装置的构造的框图;
[0019] 图8是示出根据实施例3的收集指令的流程的流程图;
[0020] 图9是用于描述根据实施例3的针对多个矢量寄存器的收集指令的操作构思的示 图;
[0021] 图10是示出包括根据实施例4的处理器的数据处理装置的构造的框图;
[0022] 图11是示出根据实施例4的分散指令的流程的流程图;
[0023] 图12是用于描述根据实施例4的针对多个矢量寄存器的分散指令的操作构思的 示图;
[0024] 图13是用于描述根据现有技术的收集指令的构思的示图;
[0025] 图14是用于描述根据现有技术的分散指令的构思的示图;
[0026] 图15是用于描述根据现有技术的针对多个矢量寄存器的收集指令的操作构思的 示图;
[0027] 图16是用于描述根据现有技术的针对多个矢量寄存器的收集指令的操作构思的 示图;
[0028] 图17是用于描述根据现有技术的加载多个字的加载指令的操作构思的示图;以 及
[0029] 图18是用于描述根据现有技术的在矢量寄存器中重排数据的过程的操作构思的 示图。
【具体实施方式】
[0030] 下文中,将参照附图详细描述采用用于解决以上问题的装置的具体实施例。在各 个附图中,用相同的参考符号表示具有相同功能的组件,为了清楚说明,将酌情省略对其的 冗余描述。
[0031] 在下述的实施例中,为了方便起见,将在需要时在多个部分或实施例中描述本发 明。然而,除非另外阐述,否则这些部分或实施例彼此是不相关的,作为修改例、应用例、细 节或其补充说明,一个与另一个的整体或部分相关。此外,在下述的实施例中,当参照元素 的数目(包括件数、值、量、范围等)时,元素的数目不限于特定数目,除非另外说明,或者除 了原理上数目显然限于具体数目之外。也可应用数目更大或更小的具体数目。
[0032] 〈实施例1>
[0033] 图1是示出包括根据实施例1的处理器20的数据处理装置1000的构造的框图。 数据处理装置1000包括存储器10和处理器20。存储器10是其中存储有数据集合11和 12等的存储装置。存储器10对应于所谓的主存储装置并且存在于处理器20外部。存储器 10通过存储器总线(未示出)连接到处理器20。
[0034] 数据集合11包括诸如数据元素 a 101和数据元素 b 102的多个数据元素。这里, 假设数据元素 a 101和数据元素 b 102被存储在存储器10中的相邻存储区中。此外,数据 集合12包括诸如数据元素 c 103和数据元素 d 104的多个数据元素。这里,假设数据元素 c 103和数据元素 d 104被存储在存储器10中的相邻存储区中。
[0035] 处理器20包括存储单元21、存储单元22和控制单元23。存储单元21和22是诸 如寄存器、高速缓冲存储器或缓冲器的存储装置。存储单元21被划分成至少区域201和 203。存储单元21与数据元素 a 101和数据元素 c 103关联。此外,存储单元22被划分成 至少区域202和204。存储单元22与数据元素 b 102和数据元素 d 104关联。
[0036] 控制单元23针对每个数据集合共同地从存储器10读取存储在相邻存储区中的多 个数据元素。这里,"共同地…读取"相当于在从控制单元23到存储器10的一个存储器访 问过程中读取多个字。例如,在一个存储器访问过程中,控制单元23从存储器10读取数据 集合11中包括的数据元素 a 101和数据元素 b 102。在另一个存储器访问过程中,控制单 元23从存储器10读取数据集合12中包括的数据元素 c 103和数据元素 d 104。
[0037] 控制单元23将读取的数据元素分类到多个存储单元21和22之中的对应于数据 元素的存储单元并且将数据元素写入各个数据集合。例如,控制单元23将针对数据集合11 读取的数据元素 a 101和数据元素 b 102分别分类到并且写入存储单元21和22。此外,控 制单元23将针对数据集合12读取的数据元素 c 103和数据元素 d 104分别分类到并且写 入存储单元21和22。
[0038] 图2是示出根据实施例1的数据收集方法的流程的流程图。首先,处理器20的控 制单元23从存储器10共同读取存储在存储器10的相邻区域中的第一数据元素和第二数 据元素(例如,数据元素 a 101和数据元素 b 102) (Sll)。
[0039] 随后,控制单元23将读取的第一数据元素写入第一存储单元(例如,存储单元21) 的第一区域(例如,区域201) (S12)。此外,控制单元23将读取的第二数据元素写入第二 存储单元(例如,存储单元22)的第一区域(例如,区域202) (S13)。区域202可以是对应 于区域201的区域。此外,控制单元23可将读取的第二数据元素写入存储单元22的区域 204〇
[0040] 随后,控制单元23从存储器10共同读取存储在存储器10的相邻区域中的第三数 据元素和第四数据元素(例如,数据元素 c 103和数据元素 d 104) (S14)。
[0041] 控制单元23将读取的第三数据元素写入第一存储单元的第二区域(例如,区域 203) (S15)。此外,控制单元23将读取的第四数据元素写入第二存储单元的第二区域(例 如,区域204) (S16)。区域204可以是对应于区域203的区域。这里,控制单元23可将读取 的第三数据元素写入第一存储单元的区域之中的除了至少在步骤S12中被写入数据的区 域之外的区域中。类似地,控制单元23可将读取的第四数据元素写入第二存储单元的区域 之中的除了至少在步骤S13中被写入数据的区域之外的区域中。
[0042] 图3是示出包括根据实施例1的处理器20a的数据处理装置1000 a的构造的框图。 当针对下述情况而应用如图1的处理器20的构造时,使用处理器20a,所述情况是指:从三 个或更多个数据集合中的每个共同地读取N个字(N是2或更大的自然数),并且存储目的 地存储单元的区域作为道(way)是关联的。Q数据阵列(array [0]至array [Q-l]) (Q是2 或更大的自然数)存储在存储器IOa中。每个数据阵列包括数据元素 a、b、…、和p。
[0043] 处理器20a包括控制单元23a和寄存器rgk、rgk+1、…和rg k+N i (k是自然数并且N 是2或更大的自然数)。这里,假设寄存器rgk至rg k+N i中的每个被划分成作为区域的多个 道wO、wl、…和wQ-1,各个寄存器的相同道彼此对应。处理器20a从数据阵列array [0]共 同读取N个字并且将各个数据元素写入各个寄存器找,至rg k+N i的道wO。此外,处理器20a 从数据阵列array[l]共同读取N个字并且将各个数据元素写入各个寄存器rgk至rg k+N ^勺 道wl。处理器20a对数据阵列array[2]至array[Q_l]执行相同处理。例如,处理器20a 从数据阵列array [Q-1]共同读取N个字并且将各个数据元素写入各个寄存器找,至rg k+N i 的道wQ-1。
[0044] 以此方式,根据实施例1,当收集存储器10的不连续区域中存储的多个数据组(诸 如,例如,由数据元素 a 101和数据元素 c 103形成的组和由数据元素 b 102和数据元素 d 104形成的组)时,进行数据加载过程所需的时间可减少。这是因为,访问连续(相邻)存 储器区域的结果被分类并且存储在处理器中的第一存储单元和第二存储单元中,因此,不 必单独执行存储器访问。此外,由于读取的数据组被分类和存储于对应的存储单元,因此不 必另外执行将读取的数据组重排的过程。因此,可有效执行在存储器和处理器中的存储单 元之间加载数据的过程。
[0045] 〈实施例2>
[0046] 图4是示出包括根据实施例2的处理器20b的数据处理装置2000的构造的框图。 数据处理装置2000包括存储器10和处理器20b。存储器10与图1的存储器相同,将不再 重复对其的冗余描述。
[0047] 处理器20b包括存储单元21、存储单元22和控制单元23b。存储单元21和22具 有与图1的构造相同的构造。也就是说,存储单元21被划分成至少区域201和203。此外, 存储单元22被划分成至少区域202和204。假设后续数据元素被预先存储在存储单元21 和22中。也就是说,数据元素 a和数据元素 c被分别存储在存储单元21的区域201和203 中。此外,数据元素 b和数据元素 d被分别存储在存储单元22的区域202和204中。
[0048] 控制单元23b从多个存储单元21和22读取存储单元21和22中的对应区域中存 储的各个数据元素。这里,"对应区域"意指例如存储单元21的区域201对应于存储单元 22的区域202,存储单元21的区域203对应于存储单元22的区域204。因此,例如,控制单 元23b分别从区域201和202读取数据元素 a和数据元素 b。此外,控制单元23b将
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1