获取器的数据发送方法和获取器与流程

文档序号:30507266发布日期:2022-06-25 00:44阅读:75来源:国知局
获取器的数据发送方法和获取器与流程
获取器的数据发送方法和获取器
1.本技术要求于2020年12月22日在韩国知识产权局提交的第10-2020-0180967号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
2.下面的描述涉及缓冲管理设备,更具体地,涉及用于神经加速器的数据重用的高效缓冲管理设备。


背景技术:

3.深度学习技术是用于基于大量训练数据来训练包括多个层的神经网络的技术,每个层包括多个神经元。为了提高神经网络的推断的准确性,需要大量训练数据,并且训练数据可包括图像、声音或文本信息。
4.卷积神经网络(cnn)有助于通过卷积运算显著提高图像分类和识别的准确性。然而,基于cnn的模型需要大量的计算操作,并且随着训练数据量的增大,所需的资源也增大。
5.各种研究正在被进行以加速卷积运算,硬件加速通过硬件改进来加速卷积运算。例如,神经处理器(npu)是被设计为针对矩阵运算(诸如,卷积运算)的并行处理进行优化的处理器,并且表现出比一般处理器更高的运算速度。


技术实现要素:

6.提供本发明内容以便以简化的形式介绍以下在具体实施方式中进一步描述的构思的选择。本发明内容不意在确定要求权利的主题的关键特征或必要特征,也不意在用于帮助确定要求权利的主题的范围。
7.在一个总体方面,一种获取器的数据发送方法,所述获取器包括加载器、至少一个发送器、缓冲控制器和重用缓冲器,所述数据发送方法包括:由加载器基于存储在重用缓冲器中的输入数据、将用于卷积运算的内核的形状和内核的权重的二维(2d)零值信息,根据加载次序来加载存储在存储器中的输入特征映射的输入数据;由缓冲控制器将加载的输入数据存储在根据加载次序循环地分配地址的重用缓冲器中;和由所述至少一个发送器中的每个基于权重的一维(1d)零值信息,在存储在重用缓冲器中的输入数据之中选择与卷积运算的每个输出数据对应的输入数据,并且将选择的输入数据发送到执行器。
8.内核可具有矩形形状。2d零值信息可包括指示权重之中的各自具有零值的一个或多个权重的位置的2d位置信息。
9.内核可具有除矩形形状之外的形状。2d零值信息可包括指示在与内核重叠的最小矩形中的不与内核重叠的一个或多个权重的位置的2d位置信息。
10.内核可具有矩形形状。2d零值信息可包括指示权重之中的通过修剪而删除的一个或多个权重的位置的2d位置信息。
11.加载输入数据的步骤可包括:基于内核的形状和2d零值信息来选择权重之中的具有非零值的权重的位置;在与具有非零值的权重的位置对应的输入特征图的输入数据之中
选择不与存储在重用缓冲器中的输入数据重叠的输入数据;和加载选择的输入数据。
12.选择输入数据的步骤可包括:基于1d零值信息在权重之中选择具有非零值的权重的位置;在存储在重用缓冲器中的输入数据之中选择与具有非零值的权重的位置对应的输入数据;和将选择的输入数据发送到执行器。
13.一种非暂时性计算机可读存储介质可存储指令,所述指令在由处理器执行时,使所述处理器执行数据共享方法。
14.在另一总体方面,一种设备包括:加载器;至少一个发送器;缓冲控制器;和重用缓冲器,其中,加载器被配置为:基于存储在重用缓冲器中的输入数据、将用于卷积运算的内核的形状和内核的权重的2d零值信息,根据加载次序来加载存储在存储器中的输入特征图的输入数据,缓冲控制器被配置为:将加载的输入数据存储在根据加载次序循环地分配地址的重用缓冲器中,并且所述至少一个发送器中的每个被配置为:基于权重的1d零值信息,在存储在重用缓冲器中的输入数据之中选择与卷积运算的每个输出数据对应的输入数据,并且将选择的输入数据发送到执行器。
15.内核可具有矩形形状。2d零值信息可包括指示权重之中的各自具有零值的一个或多个权重的位置的2d位置信息。
16.内核可具有除矩形形状之外的形状。2d零值信息可包括指示在与内核重叠的最小矩形中的不与内核重叠的一个或多个权重的位置的2d位置信息。
17.内核可具有矩形形状。2d零值信息可包括指示权重之中的通过修剪而删除的一个或多个权重的位置的2d位置信息。
18.加载器可被配置为:基于内核的形状和2d零值信息选择权重之中的具有非零值的权重的位置;在与具有非零值的权重的位置对应的输入特征图的输入数据之中选择不与存储在重用缓冲器中的输入数据重叠的输入数据;和加载选择的输入数据。
19.所述至少一个发送器可被配置为:基于1d零值信息选择权重之中的具有非零值的权重的位置;在存储在重用缓冲器中的输入数据之中选择与具有非零值的权重的位置对应的输入数据;和将选择的输入数据发送到执行器。
20.所述设备可包括:存储器,被配置为存储输入特征图;和执行器,被配置为对从所述至少一个发送器输出的选择的输入数据执行并行卷积运算。
21.在另一总体方面,一种设备包括一个或多个处理器,所述一个或多个处理器被配置为:通过加载与将用于卷积运算的内核的权重的非零值的位置对应的输入特征图的特征值并且跳过与内核的权重的零值的位置对应的输入特征图的特征值,来加载存储在存储器中的输入特征图的输入数据;将输入数据存储在重用缓冲器中;和基于内核的权重的一维(1d)零值信息来选择存储在重用缓冲器中的将被输出的输入数据的一部分。
22.在内核具有非矩形形状的情况下,所述一个或多个处理器可被配置为:将零值分配给在完全包含内核的最小矩形中的不与内核重叠的任何权重。
23.从下面的具体实施方式、附图以及权利要求,其它特征和方面将是清楚的。
附图说明
24.图1示出卷积运算设备的配置的示例。
25.图2示出用于卷积运算的数据发送方法的操作的示例。
26.图3示出用于卷积运算的数据发送方法的示例。
27.图4示出由卷积运算设备加载的输入数据的示例。
28.图5示出由卷积运算设备使用的一维(1d)零值信息和二维(2d)零值信息的示例。
29.图6示出获取器的配置的示例。
30.图7示出卷积运算设备的配置的另一示例。
31.贯穿附图和具体实施方式,除非另外描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对尺寸、比例和描绘可被夸大。
具体实施方式
32.提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本技术的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且不限于在此阐述的那些顺序,而是除了必须以特定的次序发生的操作之外,可如在理解本技术的公开之后将是清楚的那样被改变。此外,为了更加清楚和简明,可省略本领域已知的特征的描述。
33.在此描述的特征可以以不同的形式来实现,而不应被解释为限于在此描述的示例。相反,在此描述的示例已被提供,以仅示出在理解本技术的公开之后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式。
34.在本公开中公开的示例的以下结构性或功能性的描述仅意在出于描述示例的目的,并且示例可以以各种形式来实现。示例不意味着成为限制,而是意在各种修改、等同物和替换物也被覆盖在权利要求的范围内。
35.尽管使用“第一”或“第二”的术语来解释各种组件,但是组件不被术语所限制。这些术语应仅被用于将一个组件与另一组件进行区分。例如,在根据本公开的构思的权利的范围内,“第一”组件可被称为“第二”组件,或者类似地,“第二”组件可被称为“第一”组件。
36.将理解,当组件被称为“连接到”另一组件时,该组件可直接连接或结合到该另一组件,或者可存在中间组件。
37.如在此使用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。如在此使用的,术语“和/或”包括相关联的所列项中的任何一个和任何两个或更多个的任何组合。如在此使用的,术语“包括”、“包含”和“具有”说明存在叙述的特征、数量、操作、元件、组件和/或它们的组合,但不排除存在或添加一个或多个其它特征、数量、操作、元件、组件和/或它们的组合。
38.除非另有定义,否则在此使用的所有术语(包括技术术语或科学术语)具有与示例所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的术语)应被解释为具有与它们在相关领域中的上下文中的含义一致的含义,并且将不以理想化或过于形式化的含义被解释。
39.在下文中,将参照附图详细描述示例。关于分配给附图中的元件的参考标号,应注意,相同的元件将由相同的参考标号指定,并且其冗余描述将被省略。
40.图1示出卷积运算设备的配置的示例。
41.卷积运算可包括内核与输入特征图(ifm)之间的乘积和(product-sum)运算。内核
可在输入特征图上滑动的同时执行与输入特征图的乘积和运算。内核滑动的间隔可被称为“步长”。作为卷积运算的结果的输出特征图的每个像素可以是内核关于输入特征图的预定区域的卷积运算的结果。卷积运算会占用用于处理图像的神经网络的操作之中的相对大的部分。内核也可被称为“窗口”。
42.在一个示例中,卷积运算设备可通过基于内核的零值重用输入数据来加速卷积运算。当内核的权重具有零值时,用于高效卷积运算的获取器100的加载器110和发送器140可存储权重的零值信息,并且可基于存储的零值信息来执行卷积运算。卷积运算设备可在加载输入数据和将输入数据从发送器140发送到执行器150时执行零跳过(zero skip)。
43.为此,卷积运算设备可包括存储器(未示出)、获取器100和执行器150。获取器100可包括加载器110、至少一个发送器140、缓冲控制器(未示出)和重用缓冲器130。执行器150也可被称为“执行单元”。
44.存储器可存储输入特征图101。输入特征图101可以是输入图像的特征值的多维向量。在二维(2d)的情况下,输入特征图101可包括针对每个像素的输入图像的特征值。
45.卷积运算设备可执行从存储器获取输入数据、分析获取的输入数据和对分析的数据执行操作的处理。获取输入数据的功能可由获取器100的加载器110执行。获取器100也可被称为“获取单元(fu)”。
46.加载器110可执行存储器访问,以加载存储在存储器中的输入数据。加载器110可基于包括在内核中的多个权重之中的具有零值的权重的位置来加载将实际用于卷积运算的输入数据,并且可将输入数据存储在重用缓冲器130中。由于零值未被加载,因此加载器110可减少存储器访问的次数并且节省重用缓冲器130中的空间。
47.关于存储在加载器110中的权重的零值的信息可被称为“2d零值信息”。2d零值信息可包括关于内核中的具有零值的权重的2d位置信息。2d位置信息可由高度和宽度表示。
48.参照图1,加载器110可基于2d零值信息171加载输入特征图101的输入数据。内核可包括权重,其中,a、b、c和i是零值,d、e、f、g和h是非零值。2d零值信息171可包括内核的形状和关于a、b、c和i的位置的信息。
49.加载器110可基于2d零值信息171,跳过输入特征图101的与内核的零值的位置对应的特征值。内核可在从上到下以步长进行滑动的同时执行与输入特征图101的特征值的卷积运算。
50.例如,当内核对应于0至8时,加载器110可跳过与a、b和c对应的0、1和2,并且可加载与d、e、f、g和h对应的3至7。内核可向下滑动步长“1”,加载器110可跳过与a、b和c对应的3、4和5,并且可通过跳过在与d、e、f、g和h对应的6至10之中的已经被加载的6和7来加载8至10。加载器110可跳过与i对应的11。当如上所述重复加载时,加载器110可跳过与a、b和c对应的0、1和2以及与i对应的17。加载器110可加载与d、e、f、g和h对应的3至16一次。加载的输入数据可被存储在重用缓冲器130中。
51.获取器100可通过重用数据来减少存储器访问的次数。获取器100可与一个或多个执行器150共享存储器带宽资源,从而减轻存储器瓶颈现象。重用缓冲器130可以是存储从加载器110读取的输入数据的空间。输入数据可包括输入特征图101。
52.缓冲控制器可计算输入数据将被存储的地址,可将输入数据写入计算的地址上,并且可冲刷分配的地址。例如,缓冲控制器可基于加载计数器、加载单元、重用缓冲器130的
大小和将被共享的数据量来计算将被分配的重用缓冲器130的地址。缓冲控制器可基于每个发送器140的发送计数器来计算将被执行冲刷的地址。
53.发送器140可将存储在重用缓冲器130中的输入数据发送到执行器150。发送器140可从重用缓冲器130获取与卷积运算的每个输出数据对应的输入数据,并且可将输入数据发送到执行器150。发送器140可基于包括在内核中的多个权重之中具有零值的权重的位置来选择重用缓冲器130所需的输入数据,并且可将选择的输入数据发送到执行器150。通过选择用于卷积运算的输入数据,可提高执行器150的发送效率和操作速度。
54.关于存储在发送器140中的权重的零值的信息可被称作“一维(1d)零值信息”。1d零值信息可包括内核的零值关于重用缓冲器130的1d地址系统中的输入数据的相对位置信息。
55.发送器140可发送输出数据所需的输入数据,同时将发送计数器增加一。发送的输入数据可被称为“发送输入数据102、发送输入数据103和发送输入数据104”。可预先计算将由发送器140读取的缓冲器的地址。可基于发送计数器计算存储有发送输入数据102、发送输入数据103和发送输入数据104的重用缓冲器130的地址。发送输入数据102、发送输入数据103和发送输入数据104可彼此重叠。
56.例如,当使用至少一个发送器时,至少一个发送器中的每个可对应于用于输出相应的输出数据的发送输入数据102、发送输入数据103和发送输入数据104中的每个。在这个示例中,至少一个发送器可共享存储在重用缓冲器130中的数据。
57.例如,在1d零值信息172中,由“1”指示的位置可以是具有零值的权重的位置,由“0”指示的位置可以是具有非零值的权重的位置。1d零值信息172可对应于2d零值信息171。1d零值信息172的从下到上的前三个“1”可对应于2d零值信息171的a、b和c,1d零值信息172的最后的“1”可对应于2d零值信息171的i。
58.发送器140可跳过由“1”指示的位置,并且可将存储在重用缓冲器130中的与由“0”指示的位置对应的输入数据发送到执行器150。发送器140可响应于每个卷积运算,将与由“0”指示的位置对应的发送输入数据102、发送输入数据103和发送输入数据104中的每个发送到执行器150。
59.执行器150可并行地执行卷积运算。例如,当获取器100中包括“n”个发送器时,执行器150可对从“n”个发送器输入的输入数据并行执行卷积运算。输出数据可被存储在存储装置(未示出)中。存储装置可被称为“存储单元”。
60.在一个示例中,卷积运算设备可被应用于具有为零的权重的矩形形状的内核。内核可具有矩形形状,并且包括在内核中的权重的一部分可具有零值。
61.在另一示例中,内核可具有除矩形形状之外的形状。在这个示例中,零值可被假设为在与内核重叠的最小矩形中的不与内核重叠的位置处的权重的值。
62.在另一示例中,内核可包括通过修剪从其删除一部分权重的内核。在这个示例中,零值可被假设为在与内核重叠的最小矩形中的不与内核重叠的位置处的权重的值。
63.因此,卷积运算设备可不用不必要地加载或发送输入数据。卷积运算设备可通过减少执行的加载和发送的次数来加速计算并降低功耗。因此,卷积运算设备可节省重用缓冲器中的空间。
64.图2示出用于卷积运算的数据发送方法的操作的示例。
65.在一个示例中,获取器(例如,图1的获取器100)可包括加载器(图1的加载器110)、至少一个发送器(例如,图1的发送器140)、缓冲控制器(未示出)和重用缓冲器(图1的重用缓冲器130)。
66.在操作201中,加载器可基于存储在重用缓冲器中的输入数据、将用于卷积运算的内核的形状和内核的权重的2d零值信息,根据加载次序来加载存储在存储器中的输入特征图的输入数据。
67.加载器可基于内核的形状和2d零值信息来选择权重之中的具有非零值的权重的位置。加载器可在与具有非零值的权重的位置对应的输入特征图的输入数据之中选择不与存储在重用缓冲器中的输入数据重叠的输入数据。加载器可加载选择的输入数据。
68.在一个示例中,内核可具有矩形形状,2d零值信息可包括指示权重之中的具有零值的权重的位置的2d位置信息。在另一示例中,内核可具有除矩形形状之外的形状,2d零值信息可包括指示在与内核重叠的最小矩形中的不与内核重叠的权重的位置的2d位置信息。在另一示例中,内核可具有矩形形状,2d零值信息可包括指示权重之中的通过修剪而删除的权重的位置的2d位置信息。
69.在操作203中,缓冲控制器可将加载的输入数据存储在根据加载次序循环地分配地址的重用缓冲器中。
70.在操作205中,至少一个发送器中的每个可基于权重的1d零值信息,在存储在重用缓冲器中的输入数据之中选择与卷积运算的每个输出数据对应的输入数据,并且可将选择的输入数据发送到执行器。
71.发送器可基于1d零值信息在权重之中选择具有非零值的权重的位置。发送器可在存储在重用缓冲器中的输入数据之中选择与具有非零值的权重的位置对应的输入数据。发送器可将选择的输入数据发送到执行器。
72.图3示出用于卷积运算的数据发送方法的示例。
73.图3示出获取器(例如,图1的获取器100)针对卷积运算的数据发送的每个循环执行操作的示例。
74.在操作301中,确定获取器的操作是否被完成。当在操作301中确定获取器的操作未被完成时,可执行操作302。
75.在操作302中,可确定发送器(例如,图1的发送器140)的发送是否可行。发送器可检查执行器(例如,图1的执行器150)的状态,并且可基于检查的结果来确定发送器的发送是否可行。
76.在操作303中,发送器可基于1d零值信息选择接下来将被发送的输入数据。发送器可基于1d零值信息在存储在重用缓冲器(例如,图1的重用缓冲器130)中的输入数据之中选择与具有非零值的权重的位置对应的输入数据。发送器可将选择的输入数据发送到执行器。
77.在操作304中,可确定重用缓冲器是否已满。例如,当重用缓冲器具有用于存储的空间时,可执行操作305。
78.在操作305中,加载器(例如,图1的加载器110)可基于2d零值信息选择接下来将被加载的输入数据。加载器可基于内核的形状和具有零值的权重的位置信息来选择输入数据。加载器可选择不与存储在重用缓冲器中的输入数据重叠的输入数据。加载器可将选择
的输入数据存储在重用缓冲器中。
79.在操作306中,可执行下一循环。
80.图4示出由卷积运算设备加载的输入数据的示例。
81.内核411、输入特征图421和输出特征图431对应于不考虑零跳过的一般情况。内核412、输入特征图422和输出特征图432对应于卷积运算设备执行零跳过的示例。
82.内核411中的1至9的所有权重可具有非零值。可通过内核411和输入特征图421的卷积运算来输出输出特征图431的每个输出值。例如,可通过内核411和与内核411对应的0至8的输入值之间的卷积运算来输出输出值0。当内核411向下滑动一个步长时,可通过内核411和与内核411对应的3至11的输入值之间的卷积运算来输出输出值1。
83.在内核412中,1至3和9的权重可具有零值,4至8的权重可具有非零值。可通过内核412和输入特征图422的卷积运算来输出输出特征图432的每个输出值。例如,可通过内核412和与内核412的具有非零值的权重的位置对应的0至4的输入值之间的卷积运算来输出输出值0。当内核412向下滑动一个步长时,可通过内核412和与内核412的具有非零值的权重的位置对应的3至7的输入值之间的卷积运算来输出输出值1。
84.如上所述,卷积运算设备可不用不必要地加载或发送输入数据。卷积运算设备可通过减少执行的加载和发送的次数来加速计算并降低功耗。卷积运算设备可节省重用缓冲器中的空间。
85.图5示出由卷积运算设备使用的2d零值信息和1d零值信息的示例。
86.参照图5,内核510可包括具有零值的权重。在内核510中,a、b、c、d、e、f、g、h和i的权重可具有非零值,其它权重可具有零值。在一个示例中,内核510可具有矩形形状,包括在内核510中的权重的一部分可具有零值。在另一示例中,内核510可具有除矩形形状之外的形状。在这个示例中,零值可被假设为在与内核510重叠的最小矩形中的不与内核510重叠的位置处的权重的值。在另一示例中,内核510可包括通过修剪从其删除一部分权重的内核。在这个示例中,零值可被假设为在与内核510重叠的最小矩形中的不与内核510重叠的位置处的权重的值。
87.2d零值信息520(例如,图1的2d零值信息171)可以以2d表示包括在内核510中的权重的位置。2d零值信息520可包括宽度和高度,并且指示具有零值的权重521、522、523、524、525和526的位置。加载器(例如,图1的加载器110)可存储2d零值信息520,并且可基于2d零值信息520选择性地加载输入特征图的输入数据。
88.1d零值信息530(例如,图1的1d零值信息172)可以以1d表示包括在内核510中的权重的位置。发送器(例如,图1的发送器140)可能需要选择存储在重用缓冲器(例如,图1的重用缓冲器130)的1d地址系统的存储空间中的输入数据,因此表示为1d位置的1d零值信息530可比2d零值信息520更有利。
89.1d零值信息530可指示具有零值的权重531、532、533、534、535和536的位置。在图5中,“1”可指示权重具有零值,“0”可指示权重具有非零值。具有零值的权重531、532、533、534、535和536可分别对应于具有零值的权重521、522、523、524、525和526。发送器可存储1d零值信息530,并且可基于1d零值信息530选择将被发送到执行器(例如,图1的执行器150)的输入数据。
90.图6示出获取器的配置的示例。
91.参照图6,获取器100可包括加载器110、缓冲控制器120、重用缓冲器130和至少一个发送器(例如,发送器141、发送器142和发送器143)。
92.加载器110可基于存储在重用缓冲器130中的输入数据、将用于卷积运算的内核的形状和内核的权重的2d零值信息,根据加载次序来加载存储在存储器中的输入特征图的输入数据。
93.加载器110可基于内核的形状和2d零值信息来选择权重之中的具有非零值的权重的位置。加载器110可在与具有非零值的权重的位置对应的输入特征图的输入数据之中选择与存储在重用缓冲器130中的输入数据不重叠的输入数据。加载器110可加载选择的输入数据。
94.缓冲控制器120可将加载的输入数据存储在根据加载次序循环地分配地址的重用缓冲器130中。
95.发送器141、发送器142和发送器143中的每个可基于权重的1d零值信息,在存储在重用缓冲器130中的输入数据之中选择与卷积运算的每个输出数据对应的输入数据,并且可将选择的输入数据发送到执行器。
96.发送器141、发送器142和发送器143中的每个可基于1d零值信息,在权重之中选择具有非零值的权重的位置。发送器141、发送器142和发送器143中的每个可在存储在重用缓冲器130中的输入数据之中选择与具有非零值的权重的位置对应的输入数据。发送器141、发送器142和发送器143中的每个可将选择的输入数据发送到执行器。
97.在一个示例中,内核可具有矩形形状,2d零值信息可包括指示权重之中的具有零值的权重的位置的2d位置信息。在另一示例中,内核可具有除矩形形状之外的形状,2d零值信息可包括指示在与内核重叠的最小矩形中的不与内核重叠的权重的位置的2d位置信息。在另一示例中,内核可具有矩形形状,2d零值信息可包括指示权重之中的通过修剪而删除的权重的位置的2d位置信息。
98.图7示出卷积运算设备的配置的示例。
99.参照图7,卷积运算设备可包括存储器710、获取器100、执行器150和存储装置730。获取器100可包括加载器110、缓冲控制器120、重用缓冲器130和至少一个发送器(例如,发送器141、发送器142和发送器143)。
100.加载器110可基于存储在重用缓冲器130中的输入数据、将用于卷积运算的内核的形状和内核的权重的2d零值信息,根据加载次序来加载存储在存储器710中的输入特征图的输入数据。
101.缓冲控制器120可将加载的输入数据存储在根据加载次序循环地分配地址的重用缓冲器130中。
102.发送器141、发送器142和发送器143中的每个可基于权重的1d零值信息,在存储在重用缓冲器130中的输入数据之中选择与卷积运算的每个输出数据对应的输入数据,并且可将选择的输入数据发送到执行器150。
103.在此针对图1、图6和图7描述的设备、单元、模块、装置以及其它组件(诸如,获取器100、加载器110、缓冲控制器120、重用缓冲器130、发送器140、发送器141、发送器142、发送器143、执行器150、存储器710以及存储装置730)通过硬件组件来实现。可用于执行在本技术中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、
存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器以及被配置为执行在本技术中描述的操作的任何其它电子组件。在其它示例中,执行在本技术中描述的操作的硬件组件中的一个或多个通过计算硬件(例如,通过一个或多个处理器或计算机)来实现。处理器或计算机可通过一个或多个处理元件(诸如,逻辑门的阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其它装置或装置的组合)来实现。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行指令或软件(诸如,操作系统(os)和在os上运行的一个或多个软件应用),以执行本技术中描述的操作。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简单起见,单数术语“处理器”或“计算机”可用于本技术中描述的示例的描述中,但是在其它示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件或多种类型的处理元件或二者。例如,单个硬件组件或者两个或更多个硬件组件可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可通过一个或多个处理器、或者处理器和控制器来实现,并且一个或多个其它硬件组件可通过一个或多个其它处理器、或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(sisd)多处理、单指令多数据(simd)多处理、多指令单数据(misd)多处理以及多指令多数据(mimd)多处理。
104.图2至图5中示出的执行在本技术中描述的操作的方法通过计算硬件(例如,通过一个或多个处理器或计算机)来执行,该计算硬件被实现为如上所述地执行指令或软件,以执行本技术中描述的由所述方法执行的操作。例如,单个操作或者两个或更多个操作可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可通过一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其它操作可通过一个或多个其它处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作或者两个或更多个操作。
105.用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或计算机如机器或专用计算机那样进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的高级代码。可基于附图中示出的框图和流程图以及说明书中的相应描述,使用任何编程语言编写指令或软件,附图中示出的框图和流程图以及说明书中的相应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
106.用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中或一个或多个非暂时性计算机可读
存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(rom)、随机存取可编程只读存储器(prom)、电可擦除可编程只读存储器(eeprom)、随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、非易失性存储器、cd-rom、cd-r、cd+r、cd-rw、cd+rw、dvd-rom、dvd-r、dvd+r、dvd-rw、dvd+rw、dvd-ram、bd-rom、bd-r、bd-r lth、bd-re、蓝光或光盘存储器、硬盘驱动器(hdd)、固态驱动器(ssd)、卡式存储器(诸如,多媒体卡或者微型卡(例如,安全数字(sd)或者极限数字(xd)))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘、以及任何其它装置,任何其它装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器和计算机可执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令和软件以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式的方式被存储、访问和执行。
107.虽然本公开包括特定的示例,但是在理解本技术的公开之后将清楚,在不脱离权利要求和它们的等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。在此描述的示例应仅被认为是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述将被认为可适用于其它示例中的类似特征或方面。如果描述的技术以不同的次序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合,和/或由其它组件或它们的等同物替换或补充,则可实现合适的结果。因此,公开的范围不是由具体实施方式限定,而是由权利要求和它们的等同物限定,并且在权利要求和它们的等同物的范围内的所有变化应被解释为包括在公开中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1