并行处理执行的设备和方法

文档序号:6543535阅读:142来源:国知局
并行处理执行的设备和方法
【专利摘要】本发明提供一种并行处理执行的设备和方法。一种基于作业的计算属性,通过将作业分配给多个计算器来执行作业的并行处理执行的设备和方法。所述用于并行处理执行的设备可包括:多个计算器,用于计算构成处理的多个任务的作业;分配器,用于基于作业的计算属性将作业分配给多个计算器,其中,所述多个计算器包括用于通过受控计算来处理作业的第一计算器和用于通过大规模计算来处理作业的第二计算器。
【专利说明】并行处理执行的设备和方法
[0001] 本申请要求于2013年4月11日提交到韩国知识产权局的第10-2013-0039740号 韩国专利申请的优先权益,其中,所述专利申请的公开通过引用合并于此。

【技术领域】
[0002] 本公开的一个或更多个实施例涉及一种并行处理执行的设备和方法,更具体地, 涉及一种基于作业的计算属性,通过将作业分配给多个计算器来处理作业的设备和方法。

【背景技术】
[0003] 由于由视频或多媒体应用提供的分辨率上的提高,已经达到了与执行由传统的单 个计算器执行的处理的方法相关的性能极限。
[0004] 因此,近年来,正在采用将处理划分到多个计算器的方法。
[0005] 传统的对处理进行划分的方法可包括按照预定单元来划分构成处理的任务的方 法和划分将由处理进行处理的数据的方法。
[0006] 然而,对任务进行划分的方法限制在于:在处理中仅可划分预定数量的任务,因 此,可能不能使用下述计算器对处理进行划分:对于所述计算器而言,所述预定数量是超出 的。
[0007] 此外,因为需要多个用于处理划分的数据的计算器以执行所有算法,所以划分数 据的方法会具有消耗大量的将被分配给多个计算器的资源的问题。
[0008] 因此,对在不增加资源的消耗的情况下使用多个计算器执行处理的并行处理执行 的方法存在需求。


【发明内容】

[0009] 在一个或更多个实施例的一方面,提供一种用于并行处理执行的设备,所述设备 包括:多个计算器,用于计算构成处理的多个任务的作业;分配器,用于基于作业的计算属 性将作业分配给所述多个计算器,其中,所述多个计算器包括:第一计算器,用于通过受控 计算来处理作业;第二计算器,用于通过大规模计算来处理作业。
[0010] 分配器可基于计算属性对作业进行分类,并将分类的作业映射到第一计算器或第 二计算器。
[0011] 分配器可将作业分配给第一计算器或第二计算器以便第一计算器和第二计算器 的各自的计算结果被提供给彼此。
[0012] 所述用于并行处理执行的设备可还包括:缓冲器,用于对提前完成作业的计算的 第一计算器和第二计算器的计算结果进行存储以使第一计算器和第二计算器的计算结果 同步。
[0013] 当在所述多个任务之间不存在依赖关系时,分配器可基于任务单元分配用于第一 计算器和第二计算器的作业以处理作业。
[0014] 当在所述多个任务之间存在依赖关系时,分配器可基于根据所述依赖关系而分组 的任务组单元分配用于第一计算器和第二计算器的作业以处理作业。
[0015] 分配器可基于任务中的数据流对作业划分,并将划分的作业分配给第一计算器或 第二计算器以避免在划分的作业之间产生反馈。
[0016] 分配器可基于第一计算器和第二计算器中的至少一个计算器中的数据流对作业 进行划分,并可将划分的作业分配给第一计算器或第二计算器以避免产生第一计算器的计 算或第二计算器的计算的反馈。
[0017] 受控计算可包括对用于执行预定图像处理应用的硬件装置、分支和数据地址的控 制;大规模计算可包括多个数学运算;预定图像处理应用可在预定大小的块单元中包括依 赖关系。
[0018] 根据一个或更多个实施例的一方面,提供一种并行处理执行的方法,所述方法包 括:基于构成多个任务的作业的计算属性,将作业分配给多个计算器;通过所述多个计算 器来计算分配的作业,其中,所述多个计算器包括:第一计算器,用于通过受控计算来处理 作业;第二计算器,用于通过大规模计算来处理作业。
[0019] 在一个或更多个实施例的一方面,提供一种用于并行处理执行的设备,所述设备 包括:多个计算器,用于使用至少一个处理器来计算构成处理的多个任务的作业;分配器, 用于基于每个作业的计算属性将作业分配给所述多个计算器,其中,所述多个计算器包括: 第一计算器,用于通过受控计算来处理分配给第一计算器的作业;第二计算器,用于通过大 规模计算来处理分配给第二计算器的作业,其中,每个作业被分配给第一计算器或第二计 算器。
[0020] 所述处理可包括视频解码处理,并且分配器配置用于视频解码处理的预测任务、 变换任务和环路滤波任务。
[0021] 对于预测任务,分配器将模式确定作业和运动矢量预测作业分配给第一计算器, 并将子像素插值作业分配给第二计算器。
[0022] 对于变换任务,分配器将量化参数产生作业和变换模式控制作业分配给第一计算 器,并将反量化作业和反变换作业分配给第二计算器。
[0023] 对于环路滤波任务,分配器将滤波模式确定作业和控制参数产生作业分配给第一 计算器,并将加作业或平均作业和环路滤波作业分配给第二计算器。
[0024] 在一个或更多个实施例的一方面,提供一种并行处理执行的方法,所述方法包括: 基于构成处理的多个任务的每个作业的计算属性将作业分配给多个计算器;使用所述多个 计算器来计算分配的作业,其中,所述多个计算器包括:第一计算器,用于通过受控计算来 处理分配给第一计算器的作业,第二计算器,用于通过大规模计算来处理分配给第二计算 器的作业。
[0025] 根据一个或更多个实施例的一方面,提供存储用于实现一个或更多个实施例的方 法的计算机可读指令的至少一个计算机可读介质。

【专利附图】

【附图说明】
[0026] 从以下结合附图的实施例的描述中,这些和/或其它方面将变得清楚并更容易理 解,其中:
[0027] 图1示出根据示例实施例的用于并行处理执行的设备的结构;
[0028] 图2示出根据示例实施例的任务的示例,其中,所述任务被分类为作业(job);
[0029] 图3示出根据示例实施例的处理的示例,其中,在所述示例中,多个计算器基于任 务单元计算作业;
[0030] 图4示出根据示例实施例的分配作业的示例,其中,在所述示例中,分配器配置视 频解码器的任务;
[0031] 图5示出根据示例实施例的处理的示例,其中,在所述示例中,多个计算器基于任 务组单元计算作业;
[0032] 图6示出根据示例实施例的处理的示例,其中,在所述示例中,多个计算器使用缓 冲器来计算作业;
[0033] 图7示出根据示例实施例的处理的示例,其中,在所述示例中,多个计算器通过接 收外部数据来计算作业;
[0034] 图8示出根据示例实施例的处理的示例,其中,在所述示例中,多个计算器基于图 像的块单元或图像的像素单元计算作业;
[0035] 图9示出根据示例实施例的用于并行处理执行的设备的示例;
[0036] 图10示出根据示例实施例的并行处理执行的方法。

【具体实施方式】
[0037] 现在将详细参照实施例,实施例的示例在附图中被示出,其中,相同的标号始终指 示相同的元件。以下参照附图对实施例进行描述以解释本公开。
[0038] 图1示出根据示例实施例的用于并行处理执行的设备100的结构。
[0039] 参照图1,用于并行处理执行的设备100可包括多个计算器110、分配器120和缓 冲器130。
[0040] 多个计算器110可计算构成处理的多个任务的作业。
[0041] 在这种情况下,多个计算器110可包括:第一计算器111,用于通过受控计算 (controlled calculation)来处理作业;和第二计算器112,用于通过大规模计算(a large volume calculation)来处理作业。例如,第一计算器111可指精简指令集计算(RISC)处 理器,第二计算器112可指单指令多数据(SMD)处理器或多指令多数据(MMD)处理器。
[0042] 这里,多个计算器110可包括多个第一计算器111和多个第二计算器112。例如, 当处理包括大量的具有大规模计算属性的作业时,用于并行处理执行的设备100可包括多 个第二计算器112。
[0043] 此外,当作业的计算属性不是受控计算或大规模计算之一时,多个计算器110可 还包括与作业的计算属性相应的附加计算器。
[0044] 此外,第一计算器111和第二计算器112可相互提供各自的计算结果。例如,第一 计算器111可将计算结果提供给第二计算器112或缓冲器130,并使用从第二计算器112提 供的计算结果或存储在缓冲器130中的计算结果来计算后续任务的作业。第二计算器112 可将计算结果提供给第一计算器111或缓冲器130,并使用由第一计算器111提供的计算结 果或存储在缓冲器130中的计算结果来计算后续任务的作业。
[0045] 分配器120可基于作业的计算属性将作业分配到多个计算器110。
[0046] 这里,分配器120可基于计算属性对作业进行分类,并将分类的作业映射到第一 计算器111或第二计算器112。更具体地,分配器120可基于计算属性是受控计算还是大规 模计算来对作业进行分类。在这种情况下,受控计算可指包括调度的计算属性,或指包括对 用于执行预定应用的硬件装置、分支和数据地址的控制的计算属性。大规模计算可指用于 执行多个数学运算(诸如,快速傅里叶变换(FFT))的计算属性。
[0047] 此外,当在多个任务之间缺少依赖关系时,分配器120可基于任务单元划分用于 第一计算器111和第二计算器112的作业以进行计算。
[0048] 将参照图3详细描述多个计算器110基于任务单元计算作业的处理。
[0049] 当在多个任务之间存在依赖关系时,分配器120可基于根据依赖关系将被分组的 任务组单元来划分用于第一计算器111和第二计算器112的作业以计算作业。
[0050] 当在多个任务之间存在依赖关系,并且使用第一计算器111的计算结果的第二计 算器112的计算结果被反馈给第一计算器111时,第一计算器111和第二计算器112可能 不能并行计算作业。
[0051] 因此,当在多个任务之间存在依赖关系时,分配器120可基于依赖关系对多个任 务分组,并基于分组的任务组单元分配用于多个计算器110的作业以计算作业。
[0052] 将参照图5详细地描述多个计算器110基于任务组单元计算作业的处理。
[0053] 此外,包括视频应用的图像处理应用可能在预定大小的块单元或像素单元中包括 依赖关系。这里,分配器120可基于图像的块单元或像素单元分配用于第一计算器111和 第二分配器112的作业以计算作业。
[0054] 将参照图8详细描述多个计算器110基于图像的块单元或像素单元计算作业的处 理。
[0055] 分配器120可基于数据流将作业划分为多个作业。这里,分配器120可划分作业 使得在分配给第一计算器111的作业之间不会发生计算结果的反馈,并且在分配给第二计 算器112的作业之间不会发生计算结果的反馈。
[0056] 随后,分配器120可设置划分的作业的分层。在这种情况下,分层可表示计算器 110用于计算划分的作业的依赖关系。例如,当分配给第二计算器112的作业使用分配给第 一计算器111的作业的计算结果时,第一计算器111可以是主机,第二计算器112可以是第 一计算器111的从设备。这里,第二计算器112可根据需要使用第二计算器112的从计算 器以计算分配给第二计算器112的作业。例如,用于并行处理执行的设备100还可包括第 三计算器,并可将第三计算器设置为第二计算器112的从计算器。当需要附加计算的加速 时,第三计算器可使用第二计算器112的结果来执行后续计算。例如,第三计算器可指硬件 加速器(例如,协处理器)。
[0057] 分配器120可将作业分配给第一计算器111或第二计算器112,使得第一计算器 111和第二计算器112可相互提供各自的计算结果。更具体地,分配器120可在第一计算 器111和第二计算器112之间创建传输通道,使得第一计算器111和第二计算器112可相 互提供各自的计算结果。
[0058] 分配器120可以以流水线的形式并行执行分配给第一计算器111和第二计算器 112的作业。
[0059] 多个计算器110执行构成任务的作业的计算的时间段可基于任务属性、分配给多 个计算器110的作业的数量和作业所需的计算量而不同。
[0060] 例如,在第一计算器111完成预定任务的计算的时间点第二计算器112可执行另 一任务的计算。这里,由于当第二计算器112计算预定任务时需要第一计算器111的计算 结果,所以当第一计算器等待第二计算器112计算所述预定任务时,会发生同步开销。
[0061] 缓冲器130可对首先完成作业的计算的第一计算器111或第二计算器112的计算 结果进行存储,从而防止用于使第一计算器111的计算结果和第二计算器112的计算结果 同步的同步开销。较晚完成计算的第一计算器111或第二计算器112可基于由缓冲器130 存储的计算结果来计算作业。
[0062] 缓冲器130可包括用于暂时地存储完成计算的第一计算器111或第二计算器112 的计算结果。此外,缓冲器130可包括与多个计算器110相应的存储器。这里,存储器可存 储将在相应的多个计算器110中被使用的数据和计算结果。
[0063] 将参照图6详细地描述缓冲器130的操作。
[0064] 当在外部存在用于视频解码的数据时,多个计算器110中的至少一个计算器可从 外部数据发送器接收用于计算的外部数据。这里,因为在与用于接收外部数据的时间段相 应的时间段内,接收外部数据的计算器可能需要延迟相关任务的计算,所以接收外部数据 的计算器可能与没有接收外部数据的计算器具有不同的用于执行任务的时间段。
[0065] 因此,在接收外部数据的计算器和没有接收外部数据的计算器之间会发生用于同 步的同步开销。
[0066] 结果,当第一计算器111或第二计算器112需要从外部数据发送器接收用于计算 的外部数据时,缓冲器130可存储没有接收外部数据的计算器的计算结果,从而防止同步 开销。缓冲器130可将存储的计算结果提供给接收外部数据的计算器。
[0067] 将参照图7详细地描述针对计算器需要接收外部数据的情况的缓冲器130的操 作。
[0068] 图2示出根据示例实施例的任务的示例,其中,所述任务被分类为作业。
[0069] 可由图2中示出的多个任务来构成处理。可由调度的作业或对用于执行预定应用 的硬件装置、分支和数据地址的控制的作业以及执行多个数学运算(诸如,FFT)的作业来构 成所述多个任务。
[0070] 这里,在构成或规格中,对计算属性为受控计算(诸如,调度或对用于执行预定应 用的硬件装置、分支以及数据地址的控制)的作业最优化的计算器可不同于对计算属性为 大规模计算(包括多个数学运算)的作业最优化的计算器。
[0071] 例如,当针对对受控计算最优化的第一计算器111请求大规模计算时,计算速度 会比对大规模计算最优化的第二计算器112以及没有对预定计算最优化的用于执行全部 计算的一般计算器更慢。相反地,当针对第一计算器111请求受控计算时,计算速度会比其 它计算器更快。
[0072] 当计算具有受控计算属性的作业和具有大规模计算属性的作业时,对受控计算最 优化的第一计算器111和对大规模计算最优化的第二计算器112可比一般用计算器用更少 的资源执行更有效的作业。
[0073] 因此,用于并行处理执行的设备100可将包括在单个任务(例如,图2中的任务1) 中的作业分类为计算属性为受控计算的作业210和计算属性为大规模计算的作业220。
[0074] 用于并行处理执行的设备100可将作业210分配给第一计算器111,并将作业220 分配给第二计算器112,使得第一计算器111计算作业210,第二计算器112计算作业220。
[0075] 这里,当第一计算器111和第二计算器112分别计算具有受控计算属性的作业210 和具有大规模计算属性的作业220时,第一计算器111和第二计算器112可比一般计算器 用更少的资源执行更有效的作业。因此,用于并行处理执行的设备100可基于计算器的数 量的增加来提高计算速度同时防止使用的资源的增加。
[0076] 图3示出根据示例实施例的处理的示例,其中,在所述示例中,多个计算器110基 于任务单元计算作业。
[0077] 由于用于并行处理执行的设备100的分配器120可基于计算属性将单个任务映射 到多个计算器110,所以当多个计算器110并行执行作业的计算时需要进行调度。
[0078] 更具体地,分配器120可在构成多个任务的作业之中将计算属性为受控计算的作 业310分配给第一计算器111,并将计算属性为大规模计算的作业320分配给第二计算器 112。
[0079] 这里,分配器120可在第一计算器111完成预定任务的计算之后使第二计算器112 能够执行预定任务的计算,并且第一计算器111可调度执行作业的顺序以执行后续任务的 计算。
[0080] 例如,第一计算器111可在构成图3的任务1的作业之中执行计算属性为受控计 算的作业310的计算。
[0081] 当第一计算器111完成计算时,第二计算器112可使用第一计算器111的计算结 果,在构成任务1的作业之中执行计算属性为大规模计算的作业320的计算。在这种情况 下,第一计算器111可在构成任务2的作业之中执行计算属性为受控计算的作业的计算。
[0082] 具体地,由于第一计算器111和第二计算器112分别计算构成多个任务的作业中 的仅一部分,所以第一计算器111和第二计算器112计算任务的时间段可被减少。此外,由 于第一计算器111和第二计算器112对各自的计算属性是最优化的,所以第一计算器111 和第二计算器112可比用于执行全部计算的通用计算器更快速地执行计算。可选地,比通 用计算器具有更低规格的第一计算器111和第二计算器112可以以与通用计算器的速度相 近的速度计算作业。
[0083] 图4示出根据示例实施例的分配作业的示例,其中,在所述示例中,分配器配置视 频解码器的任务。
[0084] 视频解码器可包括如图4中示出的例如预测、变换和环路滤波三个任务。
[0085] 这里,在预测任务中,分配器120可基于计算属性将模式确定作业和运动矢量预 测作业分配给第一计算器111,并将子像素插值作业分配给第二计算器112。
[0086] 此外,在变换任务中,分配器120可基于计算属性将量化参数产生作业和变换模 式控制作业分配给第一计算器111,并将反量化作业和反变换作业分配给第二计算器112。 [0087] 在环路滤波任务中,分配器120可基于计算属性将滤波模式确定作业和控制参数 产生作业分配给第一计算器111,并将加作业或平均作业和环路滤波作业分配给第二计算 器 112。
[0088] 这里,分配给第一计算器111的作业可指产生用于大规模计算的数据、操作模式 和参数的作业,分配给第二计算器112的作业可指使用由第一计算器111产生的参数来执 行大规模计算的作业。
[0089] 因此,在构成相同任务的作业中,分配器120可安排首先执行分配给第一计算器 111的作业,并安排使用第一计算器111的计算结果来执行分配给第二计算器112的作业。
[0090] 在操作410中,第一计算器111可针对预测执行模式确定作业和运动矢量预测作 业 410。
[0091] 这里,当使用参考图像数据执行预测时,运动矢量预测作业的计算结果可指示位 置信息。此外,模式确定作业的计算结果可包括基于例如在宏块单元中划分的预测单元(诸 如,16X16、16X8、8X 16、8X8)、单向预测和双向预测以及运动矢量位置的组合来确定模 式。
[0092] 在操作420中,第一计算器111可将操作410的计算结果传送给第二计算器112, 并执行量化参数产生作业和变换模式控制作业420以执行变换。这里,第二计算器112可 执行操作415。
[0093] 在操作415中,第二计算器112可使用从第一计算器111传送的计算结果来执行 预测任务的作业(诸如,子像素插值作业)。
[0094] 因为第一计算器111和第二计算器112分别执行操作420和操作415,并且并行计 算构成变换任务的作业和构成预测任务的作业,所以整个系统的效率可提高。
[0095] 在操作430,第一计算器111可将在操作420中产生的参数传送给第二计算器 112,并执行用于环路滤波的作业。这里,第二计算器112可执行操作425。
[0096] 在操作425中,第二计算器112可使用从第一计算器111传送的计算结果来执行 反量化作业和反变换作业。
[0097] 当第一计算器111将在操作430中产生的参数传送给第二计算器112时,第二计 算器112可执行操作435。
[0098] 在操作435中,第二计算器112可使用从第一计算器111传送的计算结果来执行 加作业或平均作业和环路滤波作业。
[0099] 这里,由于通过划分作业在计算器之间进行同步以使第二计算器112的计算结果 被反馈给第一计算器111的情况最小化,所以分配器120可使性能退化最小化。
[0100] 图5示出根据示例实施例的处理的示例,其中,在所述示例中,多个计算器基于任 务组单元计算作业。
[0101]由于在多个任务之间存在依赖关系,所以当使用第一计算器111的计算结果的第 二计算器112的计算结果被反馈给第一计算器111时,第一计算器111和第二计算器112 可能不能并行计算作业。
[0102] 因此,当在多个任务之间存在依赖关系时,用于并行处理执行的设备100可基于 依赖关系对多个任务分组,并基于分组的任务组单元针对多个计算器110划分作业以计算 作业。
[0103] 这里,用于并行处理执行的设备100的分配器120可对多个任务分组,使得在任务 组之间不出现计算结果的依赖关系。
[0104] 例如,分配器120可将任务1到任务7分组为图5中示出的单个任务组500。
[0105] 这里,第一计算器111可在构成包括在任务组500中的任务的作业之中首先执行 计算属性为受控计算的作业510的计算。
[0106] 此外,当第一计算器111完成计算时,第二计算器112可使用第一计算器111的计 算结果,在构成包括在任务组500中的任务的作业之中执行计算属性为大规模计算的作业 520的计算。这里,第一计算器111可在构成包括在后续任务组中的任务的作业之中执行计 算属性为受控计算的作业的计算。
[0107] 具体地,用于并行处理执行的设备100可将具有依赖关系的任务分组为单个任务 组,并防止计算结果被反馈,使得第一计算器111和第二计算器112可并行计算作业。
[0108] 图6示出根据示例实施例的处理的示例,其中,在所述示例中,多个计算器110使 用缓冲器130来计算作业。
[0109] 图4示出多个计算器110分别具有用于执行构成处理的多个任务的计算的相同时 间段的情况。然而,实际上,用于执行构成任务的作业的计算的时间段可基于任务的属性、 在任务中分配给多个计算器110的作业的数量和作业所需的计算量而不同。
[0110] 图6是当对于多个任务,用于执行构成任务的作业的计算的时间段分别不同时使 用缓冲器130使同步开销最小化的操作的示例。更具体地,图6是当与用于执行预测任 务610的计算的时间和用于执行环路滤波任务630的计算的时间相比较时,用于执行变换 (TR)任务620的计算的时间段非常短的示例。
[0111] 这里,第一计算器111可在第二计算器112完成预测任务615之前完成TR任务 620的计算。这里,由于第二计算器112正在执行用于预测任务615的计算,所以第二计算 器112可能不能接收将从第一计算器111传送的TR任务620的计算结果。因此,当直到第 二计算器112接收到TR任务620的计算结果之前第一计算器111在不执行计算的情况下 等待后续任务(例如,环路滤波任务630的计算)时,会发生同步开销。
[0112] 因此,当在TR任务620的计算被完成的时间点第二计算器112没有完成预测任务 615的计算时,第一计算器111可将TR任务620的计算结果存储在缓冲器130中,并执行环 路滤波任务630的计算。
[0113] 这里,第二计算器112可在完成预测任务615的计算之后使用存储在缓冲器130 中的TR任务620的计算结果来执行TR任务625的计算。
[0114] 具体地,当首先完成计算的计算器等待将被完成的另一计算器的计算时,缓冲器 130可暂时地存储首先完成计算的计算器的计算结果,随后提供完成计算的计算器中的计 算结果,并且使发生同步开销最小化。
[0115] 图7示出根据示例实施例的处理的示例,其中,在所述示例中,多个计算器110通 过接收外部数据来计算作业。
[0116] 当在外部存在用于视频解码的数据时,多个计算器110中的至少一个计算器可从 外部数据发送器接收用于计算的外部数据。
[0117] 这里,因为在与用于接收外部数据的时间段相应的时间段内,接收外部数据的计 算器可能需要延迟相关任务的计算,所以接收外部数据的计算器可能与没有接收外部数据 的计算器具有不同的用于执行任务的时间段。
[0118] 图7是当接收到外部数据700时使用缓冲器来使同步开销最小化的操作的示例。 更具体地,图7示出第二计算器112从数据发送器接收外部数据700,并且当第二计算器 112执行预测任务710的计算时将环路滤波任务的计算结果发送到数据发送器。
[0119] 在这种情况下,第二计算器112可从数据发送器接收用于执行预测任务710的外 部数据700,并使用外部数据700计算预测任务710。这里,可基于由第一计算器111计算 的预测任务710的计算结果来确定外部数据700。
[0120] 这里,因为第二计算器112在接收到外部数据700之后计算预测任务710,所以第 一计算器111可能在第二计算器112完成预测任务710的计算之前完成TR任务720的计 算。当如图7中所示用于执行TR任务720的计算的时间段比用于接收外部数据700的时 间段少时,第一计算器111可能在第二计算器112开始预测任务710的计算之前完成TR任 务720的计算。
[0121] 这里,因为第二计算器112没有完成预测任务700的计算,所以第二计算器112不 能接收将从第一计算器111传送的TR任务720的计算结果。
[0122] 因此,当在第一计算器111完成TR任务720的计算的时间点,第二计算器112没 有完成预测任务720的计算时,第一计算器111可将TR任务720的计算结果存储到缓冲器 130,并执行环路滤波任务730的计算。
[0123] 这里,第二计算器112可在完成TR任务710的计算之后使用存储在缓冲器130中 的TR任务720的计算结果来执行预测任务740的计算。
[0124] 图8示出根据示例实施例的处理的示例,在所述示例中,多个计算器基于图像的 块单元或图像的像素单元计算作业。
[0125] 在包括视频应用的图像处理应用中,在预定的块单元或像素单元中可能存在依赖 关系。
[0126] 具体地,图8示出在置于预定块的左边、左上和上边的块之间存在依赖关系的情 况。更具体地,第(nK+3)块800可与第(nK+2)块803、第((n-l)K+2)块801和第((n-2) K+3)块802具有依赖关系。这里,当前块可使用与当前块具有依赖关系的块的预定计算的 结果来执行计算。因此,当完成与当前块具有依赖关系的块的预定计算时,可执行当前块的 计算。
[0127] 例如,分配器120可将帧内预测任务的计算分配给第一计算器111,并且帧内预测 任务可通过接收环路滤波任务的计算结果的反馈来对由第二计算器12计算的环路滤波任 务的计算结果进行计算。这里,为了第一计算器111计算第(nK+3)块的帧内预测任务,第 二计算器112可能需要完成第(nK+2)块的环路滤波任务的计算。
[0128] 具体地,当第二计算器112计算第(nK+2)块的环路滤波任务时,第一计算器111可 能不能并行计算第(nK+3)块的帧内预测任务。
[0129] 因此,分配器120可通过计算块上的流水线来执行第一计算器111和第二计算器 112的并行化。
[0130] 更具体地,分配器120可将第(nK+m)块的受控计算810分配给第一计算器111,并 将第(ηΚ+m-l)块的大规模计算分配给第二计算器112。
[0131] 分配器120可将第(ηΚ+m+l)块的受控计算811分配给第一计算器111,并将 第(nK+m)块的大规模计算820分配给第二计算器112。这里,第一计算器111可使用第 (nK+m-Ι)块的大规模计算的计算结果来执行第(ηΚ+m+l)块的受控计算811。
[0132] 分配器120可将第(nK+m+2)块的受控计算分配给第一计算器111,并将第 (ηΚ+m+l)块的大规模计算821分配给第二计算器112。这里,第一计算器111可使用第 (nK+m)块的大规模计算821的计算结果来执行第(nK+m+2)块的受控计算811。
[0133] 具体地,分配器120可通过对与当前块800具有依赖关系的块的计算进行分组并 将块的计算分配给第一计算器111和第二计算器112来并行处理图像处理应用。
[0134] 图9示出根据示例实施例的用于并行处理执行的设备的示例。
[0135] 具体地,图9示出由两个核、通信通道和多个存储器构成的用于并行处理执行的 设备的示例。这里,第一核可包括第一计算器111和分配器120,第二核可包括第二计算器 112和分配器120。此外,协处理器可指将被设置为第一计算器111或第二计算器112的从 计算器的第三计算器。
[0136] 这里,第一核和第二核可使用通信通道分别接收第一核和第二核的多个操作所需 的数据和参数。此外,第一存储器可被用于存储第一核中使用的数据和第一核的计算结果, 第二存储器和第三存储器可存储第二核中使用的数据和第二核的计算结果。第一核和第二 核可共享第一存储器、第二存储器、第三存储器和第四存储器中的部分。这里,包括在第一 核中的分配器120和包括在第二核中的分配器120可使用相同的设置来划分任务,并将由 包括在第一核中的分配器120分配给第一计算器111的作业与由包括在第二核中的分配器 120分配给第一计算器111的作业进行匹配。
[0137] 第一核的第一计算器111可计算由分配器120分配的作业,并使用通信通道将计 算结果发送到第二核。更具体地,第一核的第一计算器111可在计算结果之中选择分配给 第二核的作业所需的信息,并将需要的信息发送到第二核。这里,需要的信息可包括相关参 数、数据和包括数据的存储器地址。
[0138] 第一核的第一计算器111可在不等待第二核的计算结果的情况下计算后续作业。 这里,第二核的第二计算器112可使用从第一核传送的需要的信息来执行计算并等待从第 一核传送的信息。
[0139] 当第二核的计算结果需要反馈给第一核时,第二核的第二计算器112可将计算结 果经由通信通道发送到第一核。
[0140] 图10示出根据示例实施例的并行处理执行的方法。
[0141] 在操作1010中,分配器120可基于计算属性对构成处理的多个任务的作业进行分 类。这里,分配器120可将分类的作业映射到第一计算器111和第二计算器112。更具体 地,当作业的计算属性为受控计算时,分配器120可将分类的作业映射到第一计算器111, 当计算属性为大规模计算时,分配器120可将分类的作业映射到第二计算器112。
[0142] 此外,分配器120可基于数据流将任务划分为多个作业,并将划分的多个作业分 配给第一计算器111或第二计算器112,使得在划分的多个作业之间不会发生反馈。
[0143] 在操作1020中,分配器120可验证在多个任务之间是否存在依赖关系。当在多个 任务之间确定存在依赖关系时,分配器120可通过执行操作1030来产生任务组。此外,当 不存在依赖关系时,分配器120可执行操作1050。
[0144] 在操作1030中,分配器120可基于依赖关系产生任务组。更具体地,分配器120 可对多个任务分组使得在任务组之间不存在计算结果的依赖关系。
[0145] 在操作1040中,分配器120可将在操作1010中映射的作业分配给第一计算器111 和第二计算器112,使得多个计算器110基于任务组单元进行计算。
[0146] 在操作1050中,分配器120可将在操作1010中映射的作业分配给第一计算器111 和第二计算器112,使得第一计算器111和第二计算器112基于任务单元来计算作业。
[0147] 在操作1060中,第一计算器111和第二计算器112可计算在操作1040或操作1050 中分配的作业。
[0148] 这里,为了使第一计算器111和第二计算器112的计算结果同步,缓冲器130可对 首先完成作业的计算的第一计算器111或第二计算器112的计算结果进行存储。较晚完成 计算的第一计算器111或第二计算器112可使用由缓冲器130存储的计算结果来计算作 业。
[0149] 当在外部存在用于视频解码的数据时,多个计算器110中的至少一个计算器可从 外部数据发送器接收用于计算的外部数据。这里,缓冲器130可存储没有接收外部数据的 计算器的计算结果,并且当接收外部数据的计算器完成计算时,缓冲器130可将存储的计 算结果提供给接收外部数据的计算器,因此,接收外部数据的计算器可计算后续任务的作 业。
[0150] 贯穿本说明书所使用的便携式装置包括移动通信装置(诸如,个人数字蜂窝(PDC) 电话、个人通信服务(PCS)电话、个人手持电话系统(PHS)电话、码分多址(CDMA) -2000 (IX、 3X)电话、宽带CDMA电话、双频/双模电话、全球移动通信系统(GSM)电话、移动宽带系统 (MBS)电话、卫星/地面数字多媒体广播(DMB)电话、智能电话、蜂窝电话、个人数字助理 (PDA)、MP3播放器、便携式媒体播放器(PMP)、汽车导航系统(例如,全球定位系统)等)。此 夕卜,贯穿本说明书所使用的便携式装置包括数码相机、等离子显示面板等。
[0151] 根据上述实施例的并行处理执行的方法可被记录在非暂时性计算机可读介质中, 其中,所述非暂时性计算机可读介质包括用于实现由计算机实施的各种操作的程序指令 (计算机可读指令)以使一个或更多个处理器运行或执行程序指令。所述介质也可包括单 独的或与程序指令组合的数据文件、数据结构等。非暂时性计算机可读介质的示例包括磁 介质(诸如硬盘、软盘和磁带)、光学介质(诸如⑶ROM盘和DVD)、磁光介质(诸如光盘)和 专门被配置为存储并执行程序指令的硬件装置(诸如,只读存储器(ROM)、随机存取存储器 (RAM)、闪存等)。程序指令的示例包括机器代码(诸如,由编译器产生的机器代码)和包含可 由计算机使用解释器来执行的更高级代码的文件两者。为了执行上述实施例的操作,所述 硬件装置可被配置为充当一个或更多个软件模块,或者反之亦然。此外,非暂时性计算机可 读存储介质可被分布在通过网络连接的计算机系统中,并且计算机可读代码或程序指令可 以以分散的方式被存储和执行。此外,计算机可读存储介质也可在至少一个专用集成电路 (ASIC)或现场可编程门阵列(FPGA)中被实施。
[0152] 虽然已经示出并描述了实施例,但是本领域技术人员应理解:在不脱离本公开的 原理和精神的情况下,可在这些实施例中进行改变,其中,本公开的范围由权利要求和它们 的等同物限定。
【权利要求】
1. 一种用于并行处理执行的设备,所述设备包括: 多个计算器,用于使用至少一个处理器计算构成处理的多个任务的作业; 分配器,用于基于作业的计算属性将作业分配给多个计算器, 其中,所述多个计算器包括:第一计算器,被配置为通过受控计算来处理作业;第二计 算器,被配置为通过大规模计算来处理作业。
2. 如权利要求1所述的设备,其中,分配器基于计算属性对作业进行分类,并将分类的 作业映射到第一计算器或第二计算器。
3. 如权利要求1所述的设备,其中: 受控计算包括调度,或者受控计算包括对用于执行预定应用的硬件装置、分支和数据 地址的控制, 大规模计算包括多个数学运算。
4. 如权利要求1所述的设备,其中,分配器将作业分配给第一计算器或第二计算器以 便第一计算器和第二计算器的各自的计算结果被提供给彼此。
5. 如权利要求1所述的设备,还包括: 缓冲器,用于对提前完成作业的计算的第一计算器或第二计算器的计算结果进行存储 以使第一计算器和第二计算器的计算结果同步。
6. 如权利要求1所述的设备,其中,当在所述多个任务之间不存在依赖关系时,分配器 基于任务单元分配用于第一计算器和第二计算器的作业以处理作业。
7. 如权利要求1所述的设备,其中,当在所述多个任务之间存在依赖关系时,分配器基 于根据所述依赖关系而分组的任务组单元分配用于第一计算器和第二计算器的作业以处 理作业。
8. 如权利要求1所述的设备,其中,分配器基于第一计算器和第二计算器中的至少一 个计算器中的数据流对作业进行划分,并将划分的作业分配给第一计算器或第二计算器以 避免产生第一计算器的计算或第二计算器的计算的反馈。
9. 如权利要求7所述的设备,其中: 受控计算包括对用于执行预定图像处理应用的硬件装置、分支和数据地址的控制; 大规模计算包括多个数学运算; 预定图像处理应用在预定大小的块单元中包括依赖关系。
10. 如权利要求7所述的设备,其中: 受控计算包括对用于执行预定图像处理应用的硬件装置、分支和数据地址的控制; 大规模计算包括多个数学运算; 预定图像处理应用在预定大小的像素单元中包括依赖关系。
11. 一种并行处理执行的方法,所述方法包括: 基于构成多个任务的作业的计算属性,将作业分配给多个计算器; 使用所述多个计算器来计算分配的作业, 其中,所述多个计算器包括:第一计算器,被配置为通过受控计算来处理作业;第二计 算器,被配置为通过大规模计算来处理作业。
12. 如权利要求11所述的方法,其中,分配的步骤包括: 基于计算属性对作业进行分类,并将分类的作业映射到第一计算器或第二计算器。
13. 如权利要求11所述的方法,其中,受控计算包括调度,或者受控计算包括对用于执 行预定应用的硬件装置、分支和数据地址的控制, 大规模计算包括多个数学运算。
14. 如权利要求11所述的方法,其中,分配的步骤包括:将作业分配给第一计算器或第 二计算器以便第一计算器和第二计算器的各自的计算结果被提供给彼此。
15. 如权利要求11所述的方法,其中,分配的步骤包括: 当在所述多个任务之间不存在依赖关系时,基于任务单元分配用于第一计算器和第二 计算器的作业以处理作业。
16. 如权利要求11所述的方法,其中,分配的步骤包括:当在所述多个任务之间存在依 赖关系时,基于根据所述依赖关系而分组的任务组单元分配用于第一计算器和第二计算器 的作业以处理作业。
17. 如权利要求11所述的方法,其中,分配的步骤包括: 基于任务中的数据流对作业进行划分,并将划分的作业分配给第一计算器或第二计算 器以避免在划分的作业之间产生反馈。
18. -种用于并行处理执行的设备,所述设备包括: 多个计算器,用于使用至少一个处理器来计算构成处理的多个任务的作业; 分配器,用于基于每个作业的计算属性将作业分配给所述多个计算器, 其中,所述多个计算器包括:第一计算器,用于通过受控计算来处理分配给第一计算器 的作业;第二计算器,用于通过大规模计算来处理分配给第二计算器的作业, 其中,每个作业被分配给第一计算器或第二计算器。
19. 如权利要求18所述的设备,其中,所述处理为视频解码处理,并且分配器配置用于 视频解码处理的预测任务、变换任务和环路滤波任务。
20. 如权利要求19所述的设备,其中,对于预测任务,分配器将模式确定作业和运动矢 量预测作业分配给第一计算器,并将子像素插值作业分配给第二计算器。
21. 如权利要求19所述的设备,其中,对于变换任务,分配器将量化参数产生作业和变 换模式控制作业分配给第一计算器,并将反量化作业和反变换作业分配给第二计算器。
22. 如权利要求19所述的设备,其中,对于环路滤波任务,分配器将滤波模式确定作业 和控制参数产生作业分配给第一计算器,并将加作业或平均作业和环路滤波作业分配给第 二计算器。
23. -种并行处理执行的方法,所述方法包括: 基于构成处理的多个任务的每个作业的计算属性将作业分配给多个计算器; 使用所述多个计算器来计算分配的作业, 其中,所述多个计算器包括:第一计算器,用于通过受控计算来处理分配给第一计算器 的作业;第二计算器,用于通过大规模计算来处理分配给第二计算器的作业。
24. 如权利要求23所述的方法,其中,所述处理为视频解码处理,多个任务的构成包括 用于视频解码处理的预测任务、变换任务和环路滤波任务。
25. 如权利要求24所述的方法,其中,对于预测任务,将模式确定作业和运动矢量预测 作业分配给第一计算器,并将子像素插值作业分配给第二计算器。
26. 如权利要求24所述的方法,其中,对于变换任务,将量化参数产生作业和变换模式 控制作业分配给第一计算器,并将反量化作业和反变换作业分配给第二计算器。
27.如权利要求24所述的方法,其中,对于环路滤波任务,将滤波模式确定作业和控制 参数产生作业分配给第一计算器,并将加作业或平均作业和环路滤波作业分配给第二计算 器。
【文档编号】G06F9/46GK104102472SQ201410145966
【公开日】2014年10月15日 申请日期:2014年4月11日 优先权日:2013年4月11日
【发明者】宋准镐, 金度亨, 李时和 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1