一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于具有全局部存储的基于模拟存储器的神经网络的流水线的制作方法

2023-06-15 21:06:39 来源:中国专利 TAG:

用于具有全局部存储的基于模拟存储器的神经网络的流水线


背景技术:

1.本公开的实施例涉及神经网络电路,并且更具体地涉及用于具有全局部存储的基于模拟存储器的神经网络的流水线(pipelining)。


技术实现要素:

2.根据本公开的实施例,提供了人工神经网络。在各个实施例中,人工神经网络包括多个突触阵列。多个突触阵列中的每个突触阵列包括多个有序输入线、多个有序输出线以及多个突触。每个突触可操作地耦合到多个输入线之一和多个输出线之一。多个突触中的每个突触包括被配置为存储权重的电阻元件。该多个突触阵列被配置在多个层中,该多个层包括至少一个输入层、一个隐藏层、以及一个输出层。至少一个隐藏层中的至少一个突触阵列中的第一突触阵列被配置为在前馈操作期间接收并存储来自先前层的输入阵列。至少一个隐藏层中的至少一个突触阵列中的第二突触阵列被配置为从前层接收输入阵列,并且在前馈操作期间基于第二突触阵列的权重来计算来自至少一个隐藏层的输出。至少一个突触阵列中的第一突触阵列被配置为在反向传播操作期间向至少一个突触阵列中的第二突触阵列提供所存储的输入阵列。至少一个突触阵列中的第二突触阵列被配置为在反向传播操作期间接收校正值,并且基于校正值和所存储的输入阵列,更新其权重。
3.根据本公开的实施例,提供了包括第一和第二突触阵列的设备。第一和第二突触阵列中的每个突触阵列包括多个有序输入线、多个有序输出线以及多个突触。多个突触中的每个突触操作性地耦合到多个输入线中的一者和多个输出线中的一者。多个突触中的每个突触包括被配置为存储权重的电阻元件。第一突触阵列被配置为在前馈操作期间接收并存储来自人工神经网络的先前层的输入阵列。第二突触阵列被配置为从先前层接收输入阵列,并在前馈操作期间基于第二突触阵列的权重来计算输出。第一突触阵列被配置为在反向传播操作期间将所存储的输入阵列提供给第二突触阵列。第二突触阵列被配置为在反向传播操作期间接收校正值,并且基于校正值和所存储的输入阵列,更新其权重。
4.根据本公开的实施例,提供了用于操作神经网络电路的方法和计算机程序产品。在前馈操作期间,通过隐藏层中的第一突触阵列从先前层接收输入阵列。在前馈操作期间由第一突触阵列存储输入阵列。在前馈操作期间通过隐藏层中的第二突触阵列接收输入阵列。第二突触阵列在前馈操作期间基于第二突触阵列的权重来计算来自输入阵列的输出。在反向传播操作期间将存储的输入阵列从第一突触阵列提供给第二突触阵列。在反向传播操作期间通过第二突触阵列接收校正值。基于校正值和所存储的输入阵列,更新第二突触阵列的权重。
附图说明
5.图1示出了根据本公开的实施例的示例性的基于非易失性存储器的交叉式(crossbar)阵列或交叉式存储器。
6.图2示出了根据本公开的实施例的神经网络内的示例性突触。
7.图3示出了根据本公开的实施例的示例性神经核阵列。
8.图4示出了根据本公开的实施例的示例性神经网络。
9.图5a-e示出了根据本公开的实施例的前向传播的步骤。
10.图6a-e示出了根据本公开的实施例的后向传播的步骤。
11.图7a-e示出了根据本公开的实施例的用于向前和向后传播的同时步骤。
12.图8示出了根据本公开的实施例的操作神经网络的方法。
13.图9示出了根据本公开的实施例的计算节点。
具体实施方式
14.人工神经网络(ann)是分布式计算系统,其包括通过被称为突触的连接点互连的多个神经元。每个突触编码一个神经元的输出与另一神经元的输入之间的连接的强度。每个神经元的输出是由从连接到该神经元的其他神经元接收到的聚集输入来确定的。由此,给定神经元的输出基于来自前一层的连接神经元的输出以及由突触权重确定的连接强度。ann被训练以通过调整突触的权重以使得特定类别的输入产生期望的输出来解决特定问题(例如,模式识别)。
15.ann可以在不同类型的硬件上实现,包括交叉式阵列,也称为交叉点阵列或交叉线阵列。基本交叉式阵列配置包括一组导电行线和一组导电列线,该组导电列线被形成为与该组导电行线相交。两组线之间的交叉点由交叉点设备分开。交叉点设备用作ann在神经元之间的加权连接。
16.在不同实施例中,提供了基于非易失性存储器的交叉式阵列或交叉式存储器。由行线与列线交叉形成多个结点。电阻式存储器元件(例如非易失性存储器)与在行线中的一者与列线中的一者之间耦合的结中的每一者处的选择器串联。选择器可以是易失性开关或晶体管,各种类型的易失性开关或晶体管在本领域中是已知的。将理解,各种电阻式存储器元件适用于如本文中所描述的使用,包括忆阻器、相变存储器、导电桥接ram、以及自旋转移矩ram。
17.可以在核上提供固定数量的突触,并且然后连接多个核以提供完整的神经网络。在该实施例中,提供核之间的互连性,以例如经由分组交换或电路交换网络将一个核上的神经元的输出传递到另一核。在分组交换网络中,由于需要传输、读取和作用于地址位,可以以功率和速度成本实现互连的更大的灵活性。在电路交换网络中,不需要地址比特,因此必须通过其他手段来实现灵活性和重新可配置性。
18.在不同示例性网络中,多个核被布置在芯片上的阵列中。在该实施例中,核的相对位置可以由基本方向(北、南、东、西)指代。由神经信号携带的数据可以使用适合于缓冲的数字电压电平或其他形式的数字信号恢复在由每条线携带的脉冲持续时间中进行编码。
19.路由的一种方法是在每个核的输出边缘处提供模拟到数字转换器,模拟到数字转换器与用于快速路由分组至任何其他核的芯片上数字网络配对,并且在每个核的输入边缘处提供数字到模拟转换器。
20.深度神经网络(dnn)的训练涉及三个不同的步骤:1)通过整个网络将训练示例前向推断到输出;2)基于该训练示例的猜测输出与已知真值(ground-truth)输出之间的差异来反向传播增量(delta)或校正;以及3)通过将与刚好在突触权重上游的神经元相关联的
原始前向激励(x)与刚好在突触权重下游的神经元相关联的反向传播的增量相组合来对网络中的每个权重进行权重更新。
21.由于对权重更新所需的这两条数据是在大幅不同的时间处产生的事实,该训练过程的流水线化是复杂的。在前向传递期间产生传入的激励值(x向量),而直到整个前向传递完成且反向传递已返回到同一神经网络层为止不产生传入的增量值(增量向量)。对于位于神经网络早期的层,这意味着必须同时存储稍后将需要的x向量数据,并且必须存储以及稍后取得的该向量的数量可能是非常大的。
22.具体地,为了在层q进行权重更新,需要与在某个时间步t产生的输入m(例如,图像)相对应的激励。此外,需要层q的增量,其在时间步长t 2l之前不可用,其中,l是在q和网络的输出之间的层的数量。
23.同时,仅前向推断流水线方法(其不需要x向量的长期存储)可以将这些向量从实现神经网络层的一个阵列核高效地传递到具有极其局部路由的下一个阵列核,从而使得所有层可以同时处理数据。例如,与第n个dnn层相关联的(多个)阵列核可工作于第n数据示例,而第n-1层的(多个)阵列核工作于第n-1数据示例。这种方法(其中多个数据块通过硬件系统逐级进行)被称为流水线。这是特别有效的,因为每个组件持续保持繁忙,即使相邻组件可能在相同问题或数据示例的不同部分上工作,或者甚至在完全不同的数据示例上工作。
24.描述了用于将所有x向量和增量向量数字化并将它们存储在芯片上的其他位置的流水线式训练的方法。该方法需要数字化、数字数据的长距离路由、以及大量存储器,并且随着神经网络层的数量变大,这些元件中的任何一个都可能成为瓶颈。
25.因此,需要一种允许深度神经网络训练的流水线化的技术,该技术通过消除所有远程数据流量来为大型网络提供相同的可扩展性。
26.本公开提供了5步序列,其中,两个或更多个逻辑阵列核被分配给每个神经网络层。这些阵列核可以唯一地供应或者可以在其他方面相同。一个阵列核负责对在前向传递期间产生的x向量的极其局部的短期存储;另一阵列核以前向传播(产生下一个x向量)、反向传播(产生增量向量)和权重更新的通常的交叉式阵列或rpu(电阻处理单元)模式中操作。
27.在一些实施例中,短期存储可以分布在多个阵列核上,而rpu/交叉式功能也可以分布在多个阵列核上。在分布频谱的另一端,短期存储和交叉式功能性的两个作用可在一个物理阵列核或片状材料(tile)上实现。
28.参见图1,示出了示例性基于非易失性存储器的交叉式阵列或交叉式存储器。多个结101由行线102与列线103交叉形成。在耦接在行线102中的一者与列线103中的一者之间的结101中的每一者处电阻式存储器元件104(例如,非易失性存储器)与选择器105串联。选择器可以是易失性开关或晶体管,各种类型的开关或晶体管在本领域中是已知的。
29.将理解的是,多种电阻式存储器元件适用于如在此所描述的使用,包括忆阻器、相变存储器、导电桥接ram、自旋转移矩ram。
30.参见图2,示出了神经网络内的示例性突触。来自节点201的多个输入x1…
xn乘以对应的权重w
ij
。在节点202处,向函数f(
·
)提供权重和σxiw
ij
,以获得值可以理解,神经网络将包括层之间的多个此类连接,并且这仅仅是示例性的。
31.现在参见图3,根据本公开的实施例示出了示例性神经核阵列。阵列300包括多个核301。阵列300中的核通过线302互连,如下文进一步描述的。在此示例中,阵列为二维的。然而,可以理解,本公开可应用于一维或三维核阵列。核301包括非易失性存储器阵列311,其实现如上所述的突触。核301包括西侧和南侧,西侧和南侧中的每者可用作输入,而另一侧用作输出。可以理解,采用西/南命名法仅仅是为了便于参考相对定位,而不意味着限制输入和输出的方向。
32.在不同示例性实施例中,西侧包括支持电路312(专用于核301的整个侧)、共享电路313(专用于行的子集)和每行电路314(专用于单独的行)。在不同实施例中,南侧同样包括专用于核301的整个侧的支持电路315、专用于列的子集的共享电路316和专用于单个列的每列电路317。
33.参见图4,示出了示例性神经网络。在该示例中,多个输入节点401与多个中间节点402互连。进而,中间节点402与输出节点403互连。应当理解,该简单的前馈网络仅出于说明性目的而呈现,并且本公开可应用而与特定神经网络布置无关。
34.参见图5a-e,根据本公开的实施例示出了前向传播的步骤。图5a-e中的每一者说明时间片处的一对阵列的操作。
35.在第一步骤中,在图5a中所示,跨阵列核501、502传播包含图像m的层q的x向量的并行数据向量,以到达负责层q计算的rpu阵列核502。x向量也被保存在负责层q存储的阵列核501的东侧外围中。乘法累加运算发生,建立下一个x向量。
36.在每个交叉的西边缘处的框503

505指示与交叉阵列的行相关联的以行形式的且共享的外围电路,用于驱动正向激励,用于在反向传播期间对积分电流进行模拟测量,并且用于在加权更新阶段期间应用所取得的正向激励。
37.类似地,在南边缘的框506

508指示与列相关联的以列形式的且共享的外围电路,用于在前向激励期间对积分电流进行模拟测量、用于将反向激励驱动到列上、并且用于在加权更新阶段期间应用这些反向激励。
38.箭头509指示数据向量在经过每个阵列的并行路由线上的传播,而框510、511标记了在此第一步骤期间更新(例如,填充或排空)的电容器。箭头512指示阵列上的电流积分(乘法累加)。在此步骤期间,激励在左手阵列核的东边缘处在其经过时被采集,且这些激励驱动右手阵列核中的行。这导致沿着实施大规模并行乘法累加运算的列的电流积分。在此步骤结束时,表示这些操作的模拟结果的积分电荷位于右手阵列核的南边缘处的电容器中,如框511所指示。
39.在第二步骤中,如图5b所示,将保持在存储阵列核的东侧外围中的x向量数据逐列写入与图像m相关联的数据列513中。在一些实施例中,这将使用高耐久性的nvm或3t1c(三个晶体管一个电容器)或提供近无限耐久性和若干毫秒的存储寿命的类似突触电路元件来完成。
40.框514、515标记电容器,这些电容器保持来自先前时间步长的值——在这种情况下,在左手阵列核的东边缘处,以及在右手阵列核的南边缘处。箭头516指示并行逐行写入到3t1c(三个晶体管 一个电容器)设备或能够以非常高的耐久性快速且精确地写入模拟状态的任何其他设备中。
41.在第三步骤中,如图5c所示,在计算阵列核的南侧处的下一个x向量数据被放置到
路由网络上并且被发送到q 1层。该过程可固有地包括压缩函数(squashing function)运算,或可在最终目的地之前在沿路由路径的点处应用压缩函数。
42.在图5d-5e中所示的第三和第四步骤中,不需要动作。在可以处理下一图像之前,这些时间片将用于其他训练任务。
43.虽然该列表详述了与第q层相关联的阵列核上的操作,但这意味着,q 1层恰好执行相位移位2步的这些相同的操作。这意味着第三步骤(对应于数据离开层q)中的箭头517等同于在针对q 1层(对应于到达q 1层的数据)的第一步骤中看到的箭头509。通过扩展,q 2层再次执行这些相同的操作,从原始层在相位上偏移4步。换言之,在前向传播期间,所有阵列核在5个阶段中的3个上忙碌。
44.现在参见图6a-e,根据本公开的实施例示出了反向传播的步骤。图6a-e中的每一者说明时间片处的一对阵列的操作。
45.在第一步骤期间,如图6a所示,取得先前存储的图像n的x向量的副本,使得其在层q存储阵列核的西侧外围可用。注意,当图像n被处理以用于前向传播时,这可能在过去的某个时间被存储。
46.在图6b所示的第二步骤期间,图像n的层q的并行增量向量通过路由网络传播以到达同一rpu阵列核的南侧,导致转置乘法累加运算(列驱动,沿行积分),导致表示在层q计算阵列核的西侧电容器中的下一个增量向量的存储电荷。得到增量向量的副本被保存在南侧外围电路中(由框601指示)。
47.在第三步骤期间,如图6c所示,先前取得的x向量从存储阵列核传输到计算阵列核,使得其现在可用于层q计算阵列核的西侧外围。
48.在第四步骤期间,如图6d所示,西侧外围处的x向量信息和南侧外围处的增量向量信息被组合以执行交叉兼容权重更新(rpu阵列神经网络权重更新)。
49.在第五步骤期间,如图6e所示,将在西侧外围可用的任何导数信息应用于在第二步骤中产生的下一增量向量。然后,将该信息放在开销路由(overhead routing)网络上,在左手阵列核上传递以到达下一个更早的层q-1。
50.阵列核的每一列之间的相位差与前向传播步骤期间观察到的相位差相一致。因此,网络的每个层在操作的每个时间步长期间进行有用的工作,允许训练的完全流水线化。
51.现在参见图7a-e,示出了根据本公开的实施例的用于前向和后向传播两者的同时步骤。如这些合成图像所示,图5a-e和图6a-e中提供的步骤完全一致,并且可以在五个时间步骤中同时执行。这意味着所有存储都是局部的,并且该机制可以扩展到任意大的神经网络,只要路由路径可以在没有竞争的情况下执行。因为在前向传播期间数据示例的初始传递和反向传播期间该数据示例的增量的最终到达之间的时间段期间,在五个步骤的每个集合上使用中间存储的一列,所以将被支持的网络的最大深度受到可用于存储x向量的列的数量的限制。在第四步骤中取得增量值的列并将其用于权重更新之后,可以将其丢弃,并且将该列重新用于存储下一传入数据示例的前向激励数据。因此,在网络的每个层保持以及更新两个指针,一个指针用于传入现在被前向传播的示例m,一个指针用于传入现在被反向传播的示例n。
52.如以上概述的,第二rpu阵列用于每个层以局部地保持在激励上,并且为每五个时钟周期提供一个数据示例的全连接层上的吞吐量。以这种方式,将吞吐量最大化,同时数据
的远程传输被消除。该技术独立于网络中的层的数量,并且可应用于各种网络,包括lstm和具有非原位(exsitu)权重更新的cnn。
53.参考图8,示出了根据本公开的实施例的操作神经网络的方法。在801,在前馈操作期间由隐藏层中的第一突触阵列从先前层接收输入阵列。在802,在前馈操作期间由第一突触阵列存储该输入阵列。在803,在前馈操作期间由隐藏层中的第二突触阵列接收输入阵列。在804,在前馈操作期间第二突触阵列基于第二突触阵列的权重来从输入阵列计算输出。在805处,在反向传播操作期间将所存储的输入阵列从第一突触阵列提供给第二突触阵列。在806处,在反向传播操作期间由第二突触阵列接收校正值。在807,基于校正值和所存储的输入阵列,更新第二突触阵列的权重。
54.相应地,在各个实施例中,使用一系列任务来处理训练数据,这些任务实现前向传播、后向传播和权重更新。
55.在第一任务中,跨阵列核传播包含用于图像m的层q的x向量的并行数据向量以到达负责层q计算的rpu阵列核,同时该并行数据向量还被保存在负责层q存储的阵列核的东侧外围中。乘法累加运算发生,以建立下一个x向量。
56.在第二任务中,将保持在存储阵列核的东侧外围中的x向量数据逐列写入到与图像m相关联的数据列中。在一些实施例中,这将使用高耐久性的nvm或提供近无限耐久性和若干毫秒的存储寿命的3t1c突触电路元件来完成。
57.在第三任务中,在计算阵列核的南侧处的下一x向量数据被放置到路由网络上并且被发送到q 1层。该过程可固有地包括压缩函数运算,或可在最终目的地之前在沿路由路径的点处应用压缩函数。
58.在通过训练数据的后续迭代的第一任务中,对应于图像m的层q的增量向量准备好被发送的时间点,取得该同一图像m的x向量的先前存储的副本,使得其在层q存储阵列核的西侧外围可用。
59.在随后的迭代的第二任务中,图像m的层q的并行增量向量通过路由网络传播以到达同一rpu阵列核的南侧,导致转置乘法累加运算(列驱动,沿行积分),导致在层q计算阵列核的西侧电容器中表示下一个增量向量的存储电荷。到达的增量向量的副本被保存在南侧外围电路中。
60.在随后的迭代的第三任务中,先前取得的x|向量从存储阵列核发送到计算阵列核,使得其现在可用于层q计算阵列核的西侧外围。
61.在随后的迭代的第四任务中,西侧外围处的x向量信息和南侧外围处的增量向量信息被组合以执行通常用于rpu阵列神经网络权重更新的常规交叉兼容权重更新。
62.在随后的迭代的第五任务中,将在西侧外围可用的任何派生物信息应用于在第二任务中产生的下一增量向量。
63.现在参见图9,示出了计算节点的示例的示意图。计算节点10仅是合适的计算节点的一个示例,并且不旨在对本文所述的实施例的使用或功能的范围提出任何限制。无论如何,计算节点10能够被实现和/或执行上文阐述的任何功能。
64.在计算节点10中,存在计算机系统/服务器12,该计算机系统/服务器可与许多其他通用或专用计算系统环境或配置一起操作。可以适用于计算机系统/服务器12的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客
户机、厚客户机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型计算机系统、大型计算机系统和包括任何上述系统或设备的分布式云计算环境等。
65.计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(如程序模块)的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器12可以在分布式云计算环境中实践,其中由通过通信网络链接的远程处理设备执行任务。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
66.如图9所示,计算节点10中的计算机系统/服务器12以通用计算设备的形式示出。计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16、系统存储器28和将包括系统存储器28的不同系统组件耦合到处理器16的总线18。
67.总线18表示若干类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,此类体系结构包括工业标准体系结构(isa)总线、微通道体系结构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线、外围组件互连(pci)总线、高速外围组件互连(pcie)和高级微控制器总线体系结构(amba)。
68.计算机系统/服务器12典型地包括多种计算机系统可读介质。该介质可以是可由计算机系统/服务器12访问的任何可用介质,并且其包括易失性和非易失性介质、可移动和不可移动介质。
69.系统存储器28可以包括易失性存储器形式的计算机系统可读介质,如随机存取存储器(ram)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅通过示例的方式,存储系统34可以被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)中读取和向其写入。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,以及用于从可移动非易失性光盘(如cd-rom、dvd-rom或其他光学介质)读取或向其写入的光盘驱动器。在该情况下,每一个可以通过一个或多个数据介质接口连接到总线18。如以下将进一步描绘和描述的,存储器28可以包括具有被配置为用于执行本公开的实施例的功能的一组(例如,至少一个)程序模块的至少一个程序产品。
70.具有一组(至少一个)程序模块42的程序/实用程序40连同操作系统、一个或多个应用程序、其他程序模块和程序数据可以通过示例而非限制的方式存储在存储器28中。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。程序模块42通常执行如本文所描述的实施例的功能和/或方法。
71.计算机系统/服务器12也可以与一个或多个外部设备14(如键盘、指向设备、显示器24等)通信;和/或使得计算机系统/服务器12能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可经由输入/输出(i/o)接口22进行。此外,计算机系统/服务器12可以通过网络适配器20与一个或多个网络通信,例如局域网(lan)、通用广域网(wan)和/或公共网络(例如互联网)。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其他组件通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可
以与计算机系统/服务器12结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器和数据归档存储系统等。
72.本公开可以被实施为系统、方法、和/或计算机程序产品。所述计算机程序产品可包含上面具有用于致使处理器执行本发明的方面的计算机可读程序指令的计算机可读存储介质(或介质)。
73.计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式紧凑盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、诸如穿孔卡的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
74.在此所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载至相应的计算/处理设备或下载至外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
75.用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如smalltalk、c 等)和常规的过程式程序设计语言(诸如“c”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户计算机,或者可连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本公开的各方面。
76.在此参照根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本公开的多个方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中各框的组合,都可以由计算机可读程序指令实现。
77.这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,这样使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算
机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的一个或多个方框中规定的功能/动作的方面的指令的制品。
78.该计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置、或其他设备上,以便使得在该计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实现的过程,从而使得在该计算机、其他可编程装置、或其他设备上执行的指令实现流程图和/或框图的一个或多个框中所指定的功能/动作。
79.图中的流程图和框图示出了根据本公开的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替换实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
80.出于说明的目的呈现了对本公开的不同实施例的描述,但并不旨在是详尽的或限于所公开的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表