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

基于物理时序分析的改进型综合布局约束的制作方法

2022-02-24 10:50:46 来源:中国专利 TAG:

definition)或单元列表中的一个或多个。
附图说明
10.从下面给出的具体实施方式部分和从本公开的实施例的附图,将更全面地理解本公开。附图用于提供对本公开的实施例的知识和理解,并且不将本公开的范围限制于这些特定实施例。此外,附图不一定按比例绘制。
11.图1图示与本公开的实施例一起使用的各个处理的流程图;
12.图2a图示根据本公开实施例的基于集成电路版图表示的初始综合的集成电路终点的示例标识。
13.图2b图示根据本公开实施例的与图2a的集成电路版图表示的初始综合相关联的违规的示例标识。
14.图2c图示根据本公开实施例的与图2a的集成电路版图表示的初始综合相关联的群集的示例标识。
15.图2d图示根据本公开实施例的在集成电路版图表示的后续综合期间与多个群集相关的信息一起将布局约束应用于图2a的集成电路版图表示的示例。
16.图3图示与本公开实施例一起使用的各个处理的流程图。
17.图4图示与本公开的实施例一起使用的各种处理的流程图。
18.图5描绘根据本公开一些实施例的在集成电路的设计和制造期间使用的各个处理的流程图。
19.图6描绘本公开实施例可以在其中运行的示例计算机系统的示例图。
具体实施方式
20.本公开的各方面涉及基于物理时序分析改进综合布局约束。
21.在本文的实施例中,无监督机器学习被应用于利用从通过寄存器传输级(rtl)综合到物理约束工具传递初始集成电路(ic)设计版图得到的乐观结果,使得更好的物理约束信息可用于通过该工具对于ic设计版图的后续传递。
22.有多种方式来物理切分数字集成电路(ic)设计以用于专用集成电路(asic)的有效工程化。传统方法需要非常有经验的物理设计专家与非常有经验的数字设计人员交互工作,以符合时序且可布线的物理方式布置ic设计的逻辑块。这需要多次迭代以得出平衡许多折中的版图。没有办法知道是否已经生成了最佳版图,这是因为有太多的布置选项需要详尽分析,因此工程师必须依靠直觉和经验来指导在所分配的时间内缩小尽可能多地进行实验性试验的搜索的处理。这项任务既困难又耗时,因此,在项目期间几乎从不重复,除非发生的变化重大到足以需要从头开始。通常,即使在可以潜在地进行改进的时候,针对整个项目也维持有效的版图。
23.本文中的实施例通过采用机器学习来标识集成电路(ic)设计中满足时序约束条件或要求的终点的组来解决上述以及更多的缺陷。配备这些终点组的知识,rtl综合到物理布局工具可以优化或改进ic设计的后续综合,并做出更好的物理布局选择。无监督机器学习通过收集所有标识出的终点并根据与每个终点关联的特征,基于终点特征之间的相似性对终点进行群集,使得能够对终点的组进行标识。
24.本公开的优点包括但不限于通过由于ic设计透过综合布局工具的第二传递期间对于布局约束的了解而优化的综合所提供的性能改善。即,路径或终点中具有特定亲和性的组或群集的标识提供了对于综合布局工具的捷径,使得可以在集成电路的第二综合中消除对于路径或终点中那些标识出的群集或组的考虑。消除这种考虑使得能够进行更快的综合和布局,这导致计算资源的利用得到改进,并且ic设计的切分得到优化。
25.图1图示与本公开的实施例一起使用的各个处理的流程图。本公开的实施例采用无监督机器学习以便分析与集成电路(ic)设计的数百万个电路终点相关联的数据(例如,在第一通过102期间透过rtl综合到物理布置工具所标识的),以标识满足时序约束条件或要求的终点组或终点群集(例如,其使用无监督群集104创建约束)。所标识的组或群集然后以引导工具进行更好的综合优化和更好的物理布局选择的方式反馈(例如,后续传递106)回到初始综合处理中。这比缓慢的迭代手动处理要显著更加高效,并且比工程师团队更快和更准确。虽然在某些实施例中,出现了rtl综合到物理布局工具的两次传递应用,但本实施例基于时间和效率节省(例如,基于布局和/或布线优化的设计时间、优化时间、资源节省、ic节省),显著地抵消了与通过该工具的两次传递相关联的任何缺陷。
26.布局约束是可以控制集成电路设计内叶单元和分层单元的组的布局的约束条件。布局约束启用综合工具组单元并最小化线路长度,从而使单元能够布局在集成电路设计中最合适、最理想或最有效的位置。
27.术语“机器学习模型”或“机器学习算法”是指机器学习任务。机器学习是一种用于设计使得它们有助于预测的复杂模型和算法的方法。机器学习模型是一种计算机实现的算法,其可以在不依赖基于规则的编程的情况下从数据中学习。这些模型透过基于机器的学习从数据中的历史关系和趋势中实现可靠、可重复的决策和结果,并揭示隐藏的内在性质。机器学习模型最初可能会在训练数据集(例如,用于拟合模型参数的示例的集合)上拟合或训练。可以使用监督或非监督学习在训练数据集上训练模型。该模型使用训练数据集运行,并为训练数据集中的每个输入向量生成后续与目标进行比较的结果。
28.群集分析或群集化是以这样的方式对对象的集合进行分组的任务:同一组(称为群集)中的对象彼此之间比其他组(群集)中的那些对象更相似(在某种意义上)。群集分析本身可能不会与一种特定的算法相关,而是要解决的一般任务。它可以通过各种算法来实现,这些算法在其理解群集的构成以及如何有效地找到它们的方面存在显著差异。因此,群集可以被表述为多目标优化问题。适当的群集算法和参数设置(包括诸如要使用的距离函数、密度阈值或预期群集的数量之类的参数)取决于单个数据集和结果的预期用途。群集或非群集属性可用于训练机器学习模型。应当理解,用于训练机器学习模型的属性或属性群集的选择会影响模型性能。在一些实施方案中,基于统计分析来选择属性和/或属性群集。在一些实施方案中,最重要属性的选择基于一种或多种不同的属性选择方法。
29.基于密度的群集化是指无监督学习方法,其基于以下构思来标识数据中的不同的组/群集:数据空间中的群集是高点密度的连续区域,高点密度的连续区域通过低点密度的连续区域与其他这样的群集分开。具有噪声的应用的基于密度的空间群集(dbscan)是基于密度的群集的基本算法。它可以从正包含噪声和异常值的大量数据中发现不同形状和大小的群集。
30.术语“特征向量”是指表示对象的特征或属性的n维向量。n是数字。机器学习中的
很多算法都需要对象的数值表示,因此特征向量的特征可能是数值表示。术语“向量”是指具有多个单元的数据结构,其中每个单元表示一个值。
31.术语“数据记录”是指数据结构内的电子数据值。在一些实施例中,数据记录可以是聚合数据结构(例如,元组或结构)。在实施例中,数据记录是包含其他值的值。在实施例中,数据记录的元素可以称为字段或成员。
32.本公开的实施例涉及输入数据收集、数据准备、无监督机器学习群集和输出命令产生以结合寄存器传输级(rtl)综合到物理布局工具一起使用。
33.在某些实施例中,可以根据多种方法来执行输入数据收集。最终,输入数据收集的目标是要收集用于无监督机器学习群集化的数据。例如,可以通过在物理版图工具(例如icc2或fusion compiler)中运行脚本来收集此数据。应当理解,收集输入数据以与本文的某些实施例一起使用的任何方式都在本公开的范围内。
34.作为示例,可以收集的关于已经通过综合到物理布局工具传递的给定集成电路(ic)版图的输入数据可以包括组指定。综合工具可以基于终点时钟或使用多种用于将逻辑分配给路径组的技术来分配组指定。
35.作为进一步的示例,可以收集的关于已经通过综合到物理布局工具传递的给定集成电路(ic)版图的输入数据可以包括分层终点名称。分层终点名称可以包括分层终点的完整路径名,包括:模块信息(例如,中央处理单元、输入输出处理单元、数字处理单元、状态机逻辑等)。分层终点名称还可包括指示功能使用的寄存器名称(例如,状态信息、状态描述、运算结果、错误指示等)。此外,分层终点名称可以包括指示特定操作的引脚名称(例如时钟、复位、使能等)。
36.作为进一步的示例,可以收集的关于已经通过综合到物理布局工具传递的给定集成电路(ic)版图的输入数据可以包括所需的路径时间。asic内的每个电路可能具有用于每个标准单元的内部和外部延迟、内部和外部时钟周期时间、以及代工厂专用库时序弧(timing arc)。这些用于计算设计中每条路径所需的时间。
37.作为进一步的示例,可以收集的关于已经通过综合到物理布局工具传递的给定集成电路(ic)版图的输入数据可以包括时间裕量。时间裕量是指计算出的路径延迟与所需路径时间之间的正差或负差。正时间裕量意味着路径中的逻辑运行得快到足以在如此大的时间裕量下满足所需的路径时间。负时间裕量意味着路径中的逻辑太慢而无法以如此大的时间裕量满足所需的路径时间。
38.作为进一步的示例,可以收集的关于已经通过综合到物理布局工具传递的给定集成电路(ic)版图的输入数据可以包括终点位置。终点位置可以是由rtl综合到物理布局工具的物理布局部分所布局的终点的物理位置。在某些实施例中,物理位置可由二维x、y平面网格定义。然而,应当理解,本公开的实施例扩展到三维x、y、z容量测定电路。应当理解,可以使用本公开的实施例处理的维数没有限制。
39.作为进一步的例子,可以收集的关于已经通过综合到物理布局工具传递的给定集成电路(ic)版图的输入数据可以包括启动时钟、起点分层名称、起点物理位置、来自电路路径中的所有逻辑的数据等等。应当理解,为给定的集成电路或工具收集并根据本文实施例使用的任何数据都在本公开的范围内。
40.在某些实施例中,收集的输入数据可以被提取到若干个特征向量(例如,具有多个
数据记录的数据结构,每个数据记录代表唯一的特征或属性)。例如,由此得到的输入数据文件可以包括二进制数据库、ascii文件、共享存储器结构等。
41.与本公开的实施例一起使用的特征向量的示例可以包括:
42.**in2reg_default**
43.bit_secure_4/slice_16/lreset_sync_reset_sync_reg/rstb
44.10.176659 9.969626 4254.9790 1843.8490;或者
45.**in2reg_default**
46.bit_secure_4/slice_16/lreset_sync_t_reset_sync_reg/rstb
47.10.176544 9.978019 4255.5870 1857.5260.
48.在某些实施例中,收集的输入数据是根据与无监督机器学习群集应用相关联的偏好来准备的。应当理解,数据准备或归一化的任何方法都在本公开的范围内。
49.例如,对于将要被分析的每个参数,数值数据可以被归一化为介于0.0和1.0之间的浮点数。
50.在某些实施例中,可以基于数据的物理平面性质选择线性最小-最大算法用于数据归一化。线性最小-最大归一化的示例可以根据以下加以表示:值=(值-最小)/(最大-最小)。
51.在某些示例实施例中,可以分析数据中的所有值以找到最小值和最大值。数据中的每个数值都可以分两步进行归一化。通过减去最小值生成每个数值的中间值。该中间值在0和最大值减去最小值之间的范围内。通过将此中间值除以最大值和最小值之间的差,生成最终的归一化数值。这导致所有数字数据都在0.0到1.0的范围内。
52.在某些实施例中,ascii字符串数据可以转换成数字数据。虽然有许多都处于本公开范围内的可能的方法用于将ascii字符串数据转换为数字数据,但是可以使用ascii字符值的简单总和。也就是说,对于ascii中的每个字符,将字符的ascii值相加以产生最终总数。例如,ascii字符串“status”具有以下字符值:s=83、t=84、a=65、t=84、u=85、s=83,其中,这些值的总和为484。
53.对于无监督机器学习群集算法,可以从0.0到1.0归一化这些由此得到的数值。在某些实施例中,选择了简单的最大归一化(同时所有方法都可以在本公开的范围内)。例如,对于数据中的每个值:值=值/max。即,首先,对数据中的所有值进行分析,以找出最大值。然后每个数值除以这个最大值。这导致所有数字数据都在0.0到1.0的范围内。
54.本公开的实施例使用无监督机器学习群集处理或变换归一化的输入数据(例如,其根据本文的方法加以收集和准备)。尽管存在许多方法可用于处理(例如,本公开范围内的那些),但示例实施例使用dbscan(density-based spatial clustering of applications with noise,具有噪声的应用的基于密度空间群集化),这是因为它具有快速运行时间的存储效率。
55.应当理解,每个无监督机器学习群集算法可能需要以某种格式提供数据。在该实施例中,数据如下所示那样作为特征向量提供给阵列列表。列表中的每一行由特定的终点组成。终点阵列中的每一列由输入数据的归一化数值组成。包括终点阵列列表的特征向量的示例可包括:
56.向量=[阵列([0.89,0.85,0.99,0.40,0.0,0.28,1.0]),阵列([0.89,0.78,0.35,
0.90,0.06,0.16,0.13])]。
[0057]
特征向量连同定义其操作的可选参数一起被传递到无监督机器学习群集算法。
[0058]
无监督机器学习群集算法对该数据进行操作,并返回针对向量中每个数据点的标签的列表。每个群集都被赋予唯一的标签,其标识它已被分配到的群集。
[0059]
在所有数据点已经被无监督机器学习群集算法标记之后,本文的实施例能够以工具专用方式表示数据点以与选取的给定rtl综合工具一起使用。要理解的是,有很多工具和许多方式可以生成输出命令并将输出命令传给工具(例如ascii文件、二进制数据库、工具中的共享存储,等等),所有这些都在本公开的范围之内。
[0060]
在实施例中,布局命令是基于这里收集的输入数据和生成的群集标签而生成的。在某些实施例中,布局命令可以包括:(1)命令、(2)约束名称、(3)边界区域、(4)努力定义,和/或(5)群集中单元的列表。每个rtl综合工具针对该操作具有不同的命令结构-本文描述的实施例使得能够以适当的选项提供适当的命令,以生成单元每个群集的计算的约束。
[0061]
约束名称优选地是唯一的,并且可以像数字计数器一样简单。在示例中,可以采用最大公分母算法来选取每个群集的终点名称中最常见的ascii字符串。
[0062]
边界区域可以指群集的物理布局区域。示例实施例使用简单的平均值 /-标准偏差算法。可以使用其他算法,例如矩形约束框或多边形约束框。
[0063]
单元的列表可以表示没有引脚名称的输入数据的终点名称。
[0064]
要理解,尽管这里描述的各种实施例涉及对集成电路执行综合的工具或者对集成电路执行布局和布线的工具,但是这里的实施例不限于与仅执行综合或仅执行布局和布线的工具一起使用。要理解,这里的实施例涉及在集成电路设计或表示的初始综合和/或初始布局布线处理之后标识群集,然后将标识出的群集用于集成电路设计或表示的后续综合和/或后续布局布线处理。
[0065]
图2a图示根据本公开实施例的基于运行集成电路版图表示的初始综合的多个集成电路终点的示例标识。示出在图2a中,示例集成电路(ic)设计(例如,比特币挖矿机的应用)以0.5的约束条件hclk和0.5的lclk(例如,产生811兆赫(mhz)的f
max
)进行综合。在图2a中,正方形(例如,201)表示存储具体实例,而阴影点(例如,202)表示标准单元组件。图2a图示对于端点的均匀分配,其中一些满足时序要求或约束条件,一些违反时序要求或约束条件。
[0066]
同样示出在图2a中,透过综合工具已经通过设计的结果是-0.733的最差负时间裕量(wns)、-39.409的总负时间裕量(tns)和1183的违规终点数目(nve)。
[0067]
图2b图示根据本公开实施例的与综合图2a的集成电路版图表示相关联的多个违规的示例标识。在图2b中,图2a的集成电路版图表示中成功满足时序约束条件的路径根据它们在集成电路版图表示中的位置(例如,图2b的x轴和y轴)和它们在版图表示的分层结构中的位置(例如,图2b的分层结构或z轴)以图形来表示。在图2b中,用正方形表示的路径与最小成功满足时序约束条件相关联(例如,与关于圆形和三角形的x、y和z轴的较小数字相关联),用圆形表示的那些路径与最大成功满足时序约束条件相关联(例如,与关于三角形和正方形的x、y和z轴的更高的数字相关联)。用三角形表示的路径与处于最小和最大成功之间的成功级别相关联(例如,与介于正方形和圆形的那些之间的x、y和z轴上的数字相关联)。
[0068]
图2c图示根据本公开的实施例的与透过集成电路综合工具运行图2a的集成电路版图表示相关联的多个群集的示例标识。在图2c中,基于路径共享的一个或多个紧密性,诸如组、分层结构、名称、约束条件、违规或位置,标识图2b的那些标识出的路径的群集。示出在图2c中,沿着y轴的0.4和x轴的0.2和0.6之间的一组路径被标识为群集的一部分(例如,用圆圈表示)。图2c的图形内的附加路径与同样在图2c中用圆圈表示的同一群集相关联。作为进一步的例子,图2c中用星形表示的路径可以被认为是同一群集的一部分,如同可以是用三角形表示的路径那样。如本文所讨论的,使用无监督机器学习来执行群集的标识。
[0069]
图2d图示根据本公开实施例的在集成电路版图表示的后续综合期间将布局约束应用于图2a的集成电路版图表示的示例。即,在集成电路表示的后续综合期间,(例如,如图2c中所标识出的)终点或路径的群集的标识使得能够对群集的终点或路径进行类似的应对。例如,终点可以根据每个终点所需的时间裕量的量和每个终点的相应位置来分组。在图2d中,正方形(例如,211)表示存储具体实例,而阴影点(例如,212)表示标准单元组件。最深色的阴影矩形(例如,213)表示根据这里的实施例生成的布局物理边界。
[0070]
意识到在综合期间应当类似地应对多个终点使得能够实现用于切分目的终点的最佳分组,并且导致显著的性能改进。
[0071]
示出在图2d中,图2a的示例集成电路(ic)设计(例如,比特币挖矿机的应用)连同针对图2c标识出的约束一起被再次综合,这导致1.46吉赫(ghz)的f
max
(例如,与图2a相比有显著改进)。同样示出在图2c中,连同约束一起综合设计的结果是最差负时间裕量(wns)为-0.184(例如,对图2a的改进)、总负时间裕量(tns)为-34.96(例如,对图2a的改进)和nve为1224。图2d以182039个点图示256个中等努力约束。
[0072]
图3图示与本公开实施例一起使用的各个处理的流程图。图3图示可以在ic设计处理中从后端提供到前端的反馈。在图3中,可以提供包括时序报告、未分组终点或具有改变名称的终点的反馈或信息,使得根据这里描述的实施例可以一同传递时序信息和名称改变信息以用于布局约束的创建。
[0073]
图4图示与本公开的实施例一起使用的各种处理的流程图。在图4中,示例方法400包括:在402由处理电子电路在没有布局约束或边界的情况下生成集成电路设计的初步版图。在实施例中,生成402包括将ic设计的所有终点布局到物理位置。
[0074]
示例方法400在404继续以下处理:通过使用处理电子电路,产生包括针对ic设计的所有终点的特征向量的时序报告。
[0075]
示例方法400在406继续以下处理:通过使用处理电子电路,使用或应用无监督机器学习以至少部分基于每个集群中终点的特征向量之间的亲和性来确定集群的集合。
[0076]
示例方法400在408继续以下处理:通过使用处理电子电路,至少部分基于集群中所有终点的物理位置,针对集群集合中的每个集群生成优选的物理位置。
[0077]
示例方法400在410继续以下处理:通过使用处理电子电路,生成针对集群组中每个集群的对于布局和布线工具适合的布局组。例如,不同的工具与不同的命令相关联(例如,针对给定工具的tcl命令可不同于针对不同工具的tcl命令;此处上下本中适合的意思是命令能够由执行布局的工具识别)。在实施例中,布局组包括这里描述的布局约束。
[0078]
示例方法400在412继续以下处理:通过使用处理电子电路,至少部分基于布局组或布局约束,生成改进的集成电路设计的版图。基于集成电路设计的后续综合,连同布局组
或约束一起生成改进的版图。
[0079]
图5示出在诸如集成电路的制品的设计、验证和制造期间用于转换和验证表示集成电路的设计数据和指令的示例性处理集合700。这些处理中的每一个都可以结构化或者实现为多个模块或操作。术语“eda”指的是术语“电子设计自动化(electronic design automation)”。这些处理开始于利用设计者提供的信息创建产品构思710,该信息被转换以创建使用了一组eda处理712的制品。当设计最终完成时,设计被流片734,这是当集成电路的原图(例如,几何图案)被发送到制造厂以制造掩模组的时候,掩模组随后被用于制造集成电路。在流片之后,制造半导体管芯736,并且进行封装和组装处理738,以产生成品的集成电路740。
[0080]
电路或电子结构的规格的范围可以从低级晶体管材料版图到高级描述语言。高级别的抽象可用于通过使用诸如vhdl、verilog、systemverilog、systemc、myhdl或openvera之类的硬件描述语言(

hdl’)来设计电路和系统。hdl描述可以转换为逻辑级寄存器传输级(

rtl’)描述、门级描述、版图级描述或掩模级描述。作为更少抽象描述的每个较低的抽象级别向设计描述中添加更多有用的细节,例如,包含描述的模块的更多细节。作为更少抽象描述的更低抽象级别可以由计算机生成、从设计库得到或由另一设计自动化处理进行创建。较低级抽象语言的用于指定更详细描述的规范语言的示例是spice,其用于具有许多模拟组件的电路的详细描述。每个抽象级别上的描述都可以由该层的相应工具(例如,形式验证工具)使用而启用。设计处理可以使用图5中描绘的次序。所描述的处理可以由eda产品(或工具)启用。
[0081]
在系统设计714期间,指定要制造的集成电路的功能。设计可以针对诸如功耗、性能、面积(物理和/或代码行)以及成本降低等所需特征进行优化。将设计切分到不同类型的模块或组件可以发生在该阶段。
[0082]
在逻辑设计和功能验证716期间,以一种或多种描述语言指定电路中的模块或组件,并针对功能准确性检查规范。例如,可以验证电路的组件以生成与所设计的电路或系统的规格要求相匹配的输出。功能验证可以使用仿真器和诸如测试台生成器、静态hdl检查器和形式验证器之类的其他程序。在一些实施方式中,使用被称为“模拟器”或“原型系统”的特殊组件系统来加速功能验证。
[0083]
在综合和可测性设计718期间,hdl代码被转换为网表。在一些实施方式中,网表可以是这样的图形结构:其中图形结构的边表示电路的组件,并且图形结构的节点表示组件如何互连。hdl代码和网表都是分层的制品,其可供eda产品用于验证集成电路在被制造时按照指定的设计执行。可以针对目标半导体制造技术优化网表。另外,可以测试成品集成电路以验证集成电路满足规范的要求。
[0084]
在网表验证720期间,针对与时序约束条件的一致性以及与hdl代码的对应性检查网表。在设计规划722期间,构建和分析集成电路的总体布图规划以用于时序和顶层布线。
[0085]
在版图或物理实现724期间,发生物理布局(诸如晶体管或电容器之类的电路组件的定位)和布线(电路组件通过多个导体的连接),并且可以执行从库中选择单元以使得可以进行特定逻辑功能。如本文所使用的,术语“单元”可以指一组晶体管、其他组件以及提供布尔逻辑功能(例如,与、或、非、异或)或存储功能(例如,触发器或锁存器)的互连。如本文所使用的,电路“块”可以指两个或更多个单元。单元和电路块都可以被称为模块或组件,并
且既可以实现为物理结构也可以在仿真中实现。为所选单元(其基于“标准单元”)指定参数,例如尺寸,并使得可在数据库中访问该参数,以供eda产品使用。
[0086]
在分析和提取726期间,在版图级别验证电路功能,这允许优化版图设计。在物理验证728期间,检查版图设计以确保制造约束条件是正确的,例如drc约束条件、电约束条件、光刻约束条件,并且确保电路功能与hdl设计规范匹配。在分辨率增强730期间,转换版图的几何形状以改进如何制造电路设计。
[0087]
在流片期间,创建数据以便(如果适当的话,在应用光刻增强之后)使用数据生产光刻掩模。在掩模数据准备732期间,使用“流片”数据生产光刻掩模,光刻掩模用于生产成品集成电路。
[0088]
计算机系统(例如,图6的计算机系统900)的存储子系统可用于存储本文描述的一些或全部eda产品所使用的程序和数据结构,以及用于库和使用该库的物理与逻辑设计的单元的开发的产品所使用的程序和数据结构。
[0089]
图6图示计算机系统900的示例机器,其中可执行用于使机器执行本文讨论的方法中的任何一个或多个的指令集。在替代实施方案中,机器可以连接(例如,网络连接)到lan、内联网、外联网和/或因特网中的其他机器。机器可以在客户机-服务器网络环境中以服务器或客户机的身份运行,在对等(或分布式)网络环境中作为对等机运行,或者在云计算基础设施或环境中作为服务器或客户机运行。
[0090]
机器可以是个人计算机(pc,personal computer)、平板pc、机顶盒(stb,set-top box)、个人数字助理(pda,personal digital assistant)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够执行指定由该机器采取的动作的指令集(顺序的或以其他方式)的任何机器。此外,虽然示出了单个机器,但术语“机器”也应被理解为包括单独或联合执行一组(或多组)指令以执行本文讨论的任何一个或多个方法的任何机器集合。
[0091]
示例计算机系统900包括经由总线930彼此通信的处理设备902、主存储器904(例如,只读存储器(rom)、闪存、诸如同步dram(sdram)之类的动态随机存取存储器(dram)、静态存储器906(例如,闪存、静态随机存取存储器(sram)等)和数据存储设备918。
[0092]
处理设备902表示一个或多个处理器,例如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或者实现其他指令集的处理器,或者实现指令集组合的处理器。处理设备902还可以是一个或多个专用处理设备,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理设备902可以配置为运行用于执行本文描述的操作和步骤的指令926。
[0093]
计算机系统900可进一步包括网络接口设备908,以通过网络920进行通信。计算机系统900还可以包括视频显示单元910(例如,液晶显示器(lcd)或阴极射线管(crt))、字母数字输入设备912(例如,键盘)、光标控制设备914(例如,鼠标)、图形处理单元922、信号生成设备916(例如,扬声器)、图形处理单元922、视频处理单元928和音频处理单元932。
[0094]
数据存储设备918可以包括机器可读存储介质924(也称为非暂时性计算机可读介质),其存储一组或多组指令926或实现本文描述的方法或功能中任何一个或多个的软件。在计算机系统900执行指令926期间,指令926还可以完全或至少部分地驻留在主存储器904和/或处理设备902内,所述主存储器904和处理设备902也构成机器可读存储介质。
[0095]
在一些实施方案中,指令926包括用于实施对应于本公开的功能的指令。虽然机器可读存储介质924在示例实施方案中被示为单个介质,但术语“机器可读存储介质”应被理解为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“机器可读存储介质”还应被理解为包括如下这样的任何介质:其能够存储或编码供机器运行的指令集,并且使机器和处理设备902执行本公开任何一个或多个方法。因此,术语“机器可读存储介质”应被理解为包括但不限于固态存储器、光学介质和磁介质。
[0096]
已经在关于计算机存储器中数据位的运算的算法和符号表示方面呈现了前面的具体实施方式的某些部分。这些算法描述和表示是数据处理技术领域的技术人员最有效地将其工作的实质传达给本领域的其他技术人员所使用的方式。算法可以是导致期望结果的一系列操作。该操作是要求物理量的物理操纵的那些操作。这些量可以采取能够被存储、组合、比较和以其他方式操纵的电信号或磁信号的形式。这样的信号可以称为比特、值、元素、符号、字符、术语、数字等。
[0097]
然而,应该记住,所有这些和类似的术语都是与适当的物理量相关联的,并且只是应用于这些量的方便的标签。除非从本公开明确地特别另外说明,否则应理解,在整个说明书中,某些术语指的是计算机系统或类似的电子计算设备的动作和处理,该计算机系统或类似的电子计算设备操纵并将表示为计算机系统寄存器和存储器内的物理(电子)量的数据转换为类似表示为计算机系统存储器或寄存器或其他此类信息存储设备内的物理量的其他数据。
[0098]
本公开还涉及用于执行本文的操作的装置。该装置可以为预定目的而特别构造,或者其可以包括由存储在计算机中的计算机程序选择性地启用或重新配置的计算机。这种计算机程序可以存储在计算机可读存储介质中,例如但不限于每个都耦合到计算机系统总线的任何类型的盘(包括软盘、光盘、cd-rom和磁光盘)、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡、或适合存储电子指令的任何类型的介质。
[0099]
本文提出的算法和显示内在不涉及任何具体计算机或其他装置。各种其他系统可以与根据本文的教导的程序一起使用,或者可以证明构造更专用的装置来执行该方法是方便的。此外,本公开不参考任何特定编程语言来描述。要理解,可以使用各种编程语言来实施本文所述的本公开的教导。
[0100]
本公开可提供为这样的计算机程序产品或软件:其可包括存储有指令的机器可读介质,该指令可用于对计算机系统(或其它电子设备)进行编程以执行根据本公开的处理。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括诸如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光存储介质、闪存设备之类的机器(例如,计算机)可读存储介质。
[0101]
在以上公开中,已经参考本公开的具体示例实施方案描述了本公开的实施方案。显然,在不脱离所附权利要求中阐述的本公开的实施方案的更广泛精神和范围的情况下,可以对其进行各种变型。在本公开涉及单数时态的一些元件的情况下,可以在附图中绘制一个以上的元件,并且用相同的数字标记相同的元件。因此,本公开和附图应被认为是说明性意义而不是限制性意义。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献