掌桥专利:专业的专利平台
掌桥专利
首页

用于电路设计验证的机器学习技术

文献发布时间:2024-04-18 19:58:53


用于电路设计验证的机器学习技术

技术领域

本申请实施例涉及用于电路设计验证的机器学习技术。

背景技术

现代集成电路(IC)、包括模拟的和数字的集成电路,都非常复杂,单个IC上有数万个部件至数十亿个部件。这样的IC通常是通过多步骤设计周期来设计的,这可能花费大量的时间,通常是几年。作为这个IC设计周期的一部分,可以创建原型IC,以便对照预期的设计/规格进行测试和表征。

这种测试和表征通常包括等效性检查,它将被测的模拟或模拟/数字混合IC响应于外部刺激而产生的模拟波形与预期的模拟波形进行比较。这些预期的模拟波形可以例如由仿真生成。为了生成这些预期的波形,针对被测IC可以接收输入的每个时间尺度对该IC进行详细建模。例如,如果IC能以稳态并且以100MHz的速率接收输入,则可以在1Hz到1+GHz的频率范围上对该IC进行建模,以获得足够的时间尺度来检测例如模拟波形中可能有问题的瞬时尖峰或骤降,这是因为该模拟波形是连续信号。另外,由于模拟功能通常被指定为极限值而不是严格意义上的二进制值,因此对于单个输入而言,可能有许多输出是有效的。进一步地,这些模型很难在这些时间尺度上都与被测IC准确同步,或者要利用需要耗费很多时间才能生成的详细建模。预测IC在任何时间尺度上的输出波形值的技术可能是有用的。此外,这种技术对于被测IC的表征和验证以及在IC的设计期间可能是有用的。

发明内容

在一个示例中,一种方法包括:获得集成电路的一组仿真信号值,将所获得的该组仿真信号值提供给机器学习模型,以及从该机器学习模型中获得该集成电路的一个或多个预测输出信号值。该方法还包括将这些预测输出信号值与该集成电路的实际输出信号值进行比较,以验证该集成电路。

在另一个示例中,一种非暂态程序存储设备包括存储在其上的指令,这些指令用于使一个或多个处理器:获得集成电路的一组仿真信号值,将所获得的该组仿真信号值提供给机器学习模型,从该机器学习模型中获得该集成电路的一个或多个预测输出信号值,以及将这些预测输出信号值与该集成电路的实际输出信号值进行比较,以验证该集成电路。

在又另一个示例中,一种用于调试集成电路的系统包括存储器以及操作性地耦合到该存储器的一个或多个处理器。这些处理器被配置为执行指令,以使所述一个或多个处理器:获得集成电路的一组仿真信号值,将所获得的该组仿真信号值提供给机器学习模型,从该机器学习模型中获得该集成电路的一个或多个预测输出信号值,以及将这些预测输出信号值与该集成电路的实际输出信号值进行比较,以验证该集成电路。

附图说明

为了详细描述各种示例,现在将参考附图,在附图中:

图1A是图示了根据本披露的各方面的电路仿真模型的输出的示例可视化的信号图。

图1B图示了根据本披露的各方面的示例FSM模型和对应的电路。

图2是图示了根据本披露的各方面的用于选择信号值数据和权重的技术的流程图。

图3A是图示了根据本披露的各方面的IC的示例ML模型的框图。

图3B是图示了根据本披露的各方面的ML模型的层的示例结构的框图。

图4是图示了根据本披露的各方面的IC的级联ML模型的框图。

图5是根据本披露的各方面的示例电路块级级联ML模型的框图。

图6是图示了根据本披露的各方面的使用IC的反演模型进行调试的框图。

图7是图示了根据本披露的各方面的用于调试集成电路的技术的流程图。

图8是图示了根据本披露的各方面的用于验证IC的技术的流程图。

图9是根据本披露的各方面的示例计算设备的框图。

附图中使用相同的附图标号或其他附图标记来指代(在功能和/或结构方面)相同或相似的特征。

具体实施方式

一般来说,设计模拟电路首先要有一套电路应该支持的规格和/或特征。根据这些规格和/或特征,可以创建电路设计,从而描述电路的电气部件的物理参数。基于该设计,可以为电路和/或电路的子部分创建一个或多个模型。例如,可以例如用硬件描述语言(HDL)对电路进行建模,并且可以在电路仿真软件(比如集成电路专用仿真程序(SPICE)建模软件)上对电路进行仿真,并对照IC规格对其进行建模。这些仿真可以生成详细的日志和其他信息。

图1A是图示了根据本披露的各方面的电路仿真模型的输出的示例可视化的信号图100。在信号图100所示的示例中,电路可以具有N个输入和输出信号102A...102N。这些信号可以包括去往电路的输入信号和来自电路的输出信号,以及电路内部的信号。每个信号都具有可以变化的连续值。例如,来自电路的输出信号值可能会随着一个或多个输入信号值的变化而发生变化。电路仿真软件对这些信号值和对应的变化建模,以生成对应的预期信号值的日志。这些信号值在信号图100中以图形方式示出。

另外,可以为电路开发有限状态机(FSM)模型。作为示例,可以基于管理电路的逻辑来创建Verilog FSM模型。FSM模型描述了电路可能处于的状态以及管理状态之间的转变的逻辑。图1B图示了根据本披露的各方面的示例FSM模型150和对应的电路160。在这个示例中,FSM模型150包括四种状态152A、152B、152C和152D,以及可能导致状态之间的转变的条件。可以理解,虽然FSM模型150是FSM的图形表示,但FSM模型150也可以比如通过使用二进制、格雷、独热、独冷等编码方案被编码为一组值。

在IC设计期间,可以在电路仿真模型上仿真输入/输出信号的多种不同组合,例如以验证IC的设计是否对应于规格和/或特征。可以基于用于验证设计的一组测试用例来定义这些不同组合。作为测试IC设计的一部分,可以使用电路仿真器的覆盖率工具来确定测试用例对IC设计的锻炼程度。覆盖率工具可以返回测试用例对IC设计和/或FSM状态转变的覆盖程度的指示。另外,代码覆盖率工具可以被配置为生成按照每个测试用例对IC设计和/或FSM状态转变的覆盖程度进行排名的测试用例列表。

这种每个测试用例的覆盖率度量可以用于识别出可以从中提取预期信号值的较高优先级的测试用例。例如,覆盖率工具可以能够确定覆盖IC设计和/或FSM状态转变的一组优化的测试用例。可以以各种方式选择多个测试用例,例如,基于由覆盖率工具确定的优化的测试用例组、覆盖率阈值目标、设定数量的测试用例、或从测试用例生成的目标量的测试数据、其一些组合等。可以存储从对测试用例的仿真中得到的预期信号值数据,并将其用于训练IC的机器学习(ML)模型。

因为仿真可以几乎以任何时间步长运行,因此从仿真生成的该组预期信号值可能非常广泛,所以并非使用所有测试用例,而是可以使用从对测试用例的子集的仿真得到的预期信号值数据来训练IC的ML模型。还可以对仿真使用多个时间步长(因为模拟IC本质上是连续的,而不是离散的(比如数字信号)),并且多个时间步长实现了仿真的准确性与仿真的速度之间的平衡。在多个时间步长上执行所有这些测试用例可能会为预期信号值生成大量数据,并且这些数据可能过于广泛,而无法用作IC的机器学习(ML)模型的训练数据。另外,完整的测试用例集可能是相对不平衡的数据集,因为完整的测试套件可能包括例如错误用例、开机自检、重置操作、回归测试用例等,这些用例可能对训练ML模型没有用处。选择较少的测试用例还有助于将生成的数据量减少到更容易管理的水平。基于测试用例对IC设计/FSM状态的覆盖程度来选择测试用例有助于在限制测试用例的数量和冗余的同时最大限度地覆盖IC设计,同时有助于保持平衡的数据集。

在一些情况下,可以基于IC的输出信号来选择用于训练IC的ML模型的预期信号值数据。图2是图示了根据本披露的各方面的用于选择信号值数据和权重的技术的流程图200。如上文所指示的,可以在正在开发的IC上仿真完整的测试用例集,以生成预期信号值的测试数据集202。该测试数据集包括预期的顶层信号值(例如,输入到/输出自IC的信号)以及内部信号值(例如,IC内部的电路的信号值)。在框204,从预期信号值中随机选择一定百分比的信号值数据。例如,从所有预期信号值(顶层信号和内部信号二者)中随机选择这些预期信号值中百分之四十的信号值数据。通过随机选择信号值数据的子集,大大减少了所有信号的所有数据值的集合,同时仍保留了一组相对具有代表性的数据值。

在框206,选择用于建模的目标输出信号。例如,选择IC中的所关注的特定输出信号作为初始输出信号。在框208,基于重要性对候选内部信号进行加权。可以基于候选内部信号被认为对于确定在框206选择的输出信号的重要性来选择候选内部信号,并且为这些选择的内部信号设置权重。例如,设计者认为对于确定输出信号可能更重要的内部信号可以被指派更重的权重。假设内部信号的重要性可以是一种性能增强,有助于指导该技术来确定与确定输出信号值最相关的内部信号。例如,也可以使用随机选择一组内部信号和/或尝试内部信号的所有组合的方式,但计算成本可能更高。在框210,创建输出信号的线性回归模型。在一些情况下,可以使用标准的线性回归算法来基于该组内部信号得出输出信号。例如,线性回归方程可以是Y=a+b

在框214,基于剩余内部信号创建非线性回归模型。例如,可以使用标准的非线性回归算法来将输出信号映射到剩余的内部信号。例如,可以应用等式Y=f(X

根据本披露的各方面,可以训练IC的ML模型以基于数据信号值来预测IC的FSM状态。图3A图示了根据本披露的各方面的IC的示例ML模型300。示例ML模型300是神经网络(NN)ML模型的简化示例,呈现其是为了帮助理解可以如何构造IC的NN ML模型(比如卷积NN)。NN ML模型的示例可以包括VGG、MobileNet、ResNet、EfficientNet、RegNet等。可以理解的是,ML模型的每个实施方式可以执行一种或多种ML算法,并且可以根据各种因素以不同的方式训练或调整ML模型,这些因素包括但不限于所使用的ML模型的类型、用于ML模型的参数、参数之间的关系、期望的训练速度等。在这个简化的示例中,在输入特征值模块302中收集和准备特征值。作为示例,可以通过由输入特征值模块302将从仿真得到的数据信号值(其是如上文所讨论的那样来自选择的测试用例或者是随机选择的)放在例如向量或矩阵中作为输入特征值而将这些数据信号值输入到ML模型中。一般来说,参数可以指数学函数的方面,这些数学函数可以被NN ML模型300的层应用于特征,这些特征是数据点或变量。

每个层(例如,第一层304…第N层306)可以包括多个模块(例如,节点),并且通常表示可以对特征值执行的一组运算,比如一组矩阵乘法、卷积、去卷积等。例如,每个层可以包括一个或多个数学函数,这些数学函数采用来自前一层的输出特征值作为输入(除第一层304以外)。ML模型从最后一层(例如,第N层306)输出输出值308。输入到每个层的模块中的权重可以在ML模型训练期间进行调整,并在ML模型训练后固定。在一些情况下,初始权重可以基于经由图2中讨论的用于选择信号值数据和权重的技术所确定的权重。在其他情况下,初始权重可以是随机指派的、经由模式来设置的,等等。ML模型可以包括任意数量的层。一般来说,每个层将M个输入特征转换为N个输出特征。

在一些情况下,可以基于经标注的输入来训练ML模型。可以用初始权重启动ML模型300,并将代表性的输入传递到ML模型300中以生成预测。代表性的输入(比如从对IC的仿真得到的信号值数据)可以包括标识要预测的数据的标注。例如,ML模型可以被训练为基于从对IC的仿真得到的信号值数据来预测FSM状态。可以用对应编码的FSM状态和转变条件信息来标注该信号数据值数据集,如上文结合图1B讨论的那样。

可以基于预测与标注相比的准确程度来调整节点的权重。由节点应用的权重可以在训练期间基于以下各项进行调整:损失函数,其是描述神经网络的预测与预期结果(例如,标注)相比的准确程度的函数;优化算法,其有助于基于损失函数确定权重设置调整;和/或误差反向传播算法,其将权重调整反向应用于神经网络的各个层。在本披露的范围内可以使用任何优化算法(例如,梯度下降、小批量梯度下降、随机梯度下降、自适应优化器、动量等)、损失函数(例如均方误差、交叉熵、最大似然等)和误差反向传播算法(例如静态或递归反向传播)。

图3B图示了根据本披露的各方面的ML模型300的层350的示例结构。在一些情况下,来自前一层352的输入特征值(或者对于第一层304,来自输入特征值模块302的输入特征值)的一个或多个部分可以被输入到一组模块中。一般来说,该组模块中的模块可以表示要对特征值执行的一组或多组数学运算,并且每个模块可以接受一组权重、缩放值和/或偏置作为输入。例如,第一1×1卷积模块354可以对输入特征值的一个或多个部分和一组权重(和/或偏置/缩放值)执行1×1卷积运算。要注意,该一组或多组模块中的各组模块可以包括不同数量的模块。因此,来自第一1×1卷积模块354的输出可以被输入到串接(concatenation)模块356。作为另一个示例,来自前一层352的输入特征值的一个或多个部分也可以被输入到3×3卷积模块358,该卷积模块358输出到第二1×1卷积模块360,卷积模块360然后输出到串接模块356。该一组或多组模块中的各组模块也可以执行不同的运算。在这个示例中,来自第三1×1卷积模块362的输出可以被输入到池化模块364以进行池化运算。来自池化模块364的输出可以被输入到串接模块356。串接模块356可以接收来自该一组或多组模块中的每一组模块的输出,并将这些输出串接在一起作为输出特征值。这些输出特征值可以被输入到ML模型300的下一层。

根据本披露的各方面,多个ML模型(比如ML模型300)可以被级联,例如,以进行多个预测。图4是图示了根据本披露的各方面的IC的级联ML模型400的框图。在这个示例中,第一ML模型402可以采用如顶层信号值以及内部信号值等信号值数据404(其是如上文所讨论的那样来自选择的测试用例或者是随机选择的)作为输入。第一ML模型402使用信号值数据404预测IC的FSM状态406。然后,IC的该预测FSM状态406可以被输入到第二ML模型408。第二ML模型408可以将IC的预测FSM状态406与所建模IC的输入信号值数据(例如,来自信号值数据404的被输入到IC的信号值)一起作为输入,并预测来自所建模IC的模拟信号值输出410(例如,由IC输出的信号值)。通过级联多个ML模型,与不考虑FSM状态的单个ML模型相比,可以获得对输出信号值的更准确预测。例如,IC的特定内部信号值在一个FSM状态下可能被约束在某个电压范围内,但在另一个FSM状态下则不被约束在该电压范围内。作为另一示例,某个信号的电压可能在某个FSM状态下先迅速增加再达到峰值然后才安定下来,但这个信号在另一个FSM状态下可能更加稳定。将FSM状态纳入考虑有助于整个ML模型考虑信号值的特定于状态的行为,从而对输出信号值做出更好的预测。

在一些情况下,可以使用被建模的IC的电路块级级联ML模型。该电路块级级联ML模型可以用于代替使用所建模IC的FSM状态的ML模型来预测IC的输出信号值,例如在FSM模型可能不可用或在其他方面不理想的情况下。在一些情况下,整个IC可能包括许多电路块。图5是根据本披露的各方面的示例电路块级级联ML模型500的框图。一般来说,电路块是IC的子集,为IC提供某些功能、调节、接口等。电路块的示例包括但不限于低压差稳压器、升压转换器、降压转换器块,模数转换器等。在一些情况下,IC可以包括集成在一起的多个电路块。

电路块级级联ML模型包括被建模的整个IC的一个或多个电路块的ML子模型。在这个示例中,电路块级级联ML模型500包括IC的电路块的四个子模型:电路块1子模型502、电路块2子模型504、电路块3子模型506以及输出电路块子模型508。如同ML模型300一样,电路块级级联ML模型500获取到所建模IC的输入信号值510A-510G,并预测IC的输出信号值512A-512C。

使用从仿真得到的、被输入到IC的所建模电路块的数据信号值(其是如上文所讨论的那样来自选择的测试用例或者是随机选择的)来训练每个电路块子模型,以预测所建模电路块的输出。在这个示例中,所建模电路块的电路块子模型502可以采用作为顶层输入信号的IC输入信号1510A和输入信号3-7510C-510G、以及IC的被输入到所建模电路块的(多个)内部信号514。然后,电路块子模型502预测电路块子模型502的(多个)输出516。电路块的输出可以用作另一个电路块的输入(例如,作为内部输入信号)。在此,电路块子模型502的输出516被输入到输出电路块子模型508。

在一些情况下,IC的内部信号可能不可用。例如,可能没有方便的方法来访问硅内IC的内部信号。因此,在调试制造的IC时,可能无法访问内部信号值以供在调试时提供帮助。在这种情况下,可以使用IC的反演模型以基于输入信号值和输出信号值生成内部信号值。

图6是图示了根据本披露的各方面的使用IC的反演模型进行调试的框图600。在这个示例中,可以监测IC的输入信号值602和输出信号值604。然后,这些输入信号值602和输出信号值604可以作为输入传递给IC的反演模型606。IC的反演模型606基于输入信号值602和输出信号值604来预测IC的内部信号值608。在一些情况下,IC可以包括不同级别的内部信号值608。这些级别可以对应于例如IC的不同组织级别。作为示例,内部信号的第一级别可以对应于电路块之间的内部信号,而第二级别可以对应于输入到某些电路块和从其输出的内部信号,第三级别可以对应于某些电路块内的内部信号,等等。

IC的反演模型606可以基于任何ML模型,包括上文结合图3A/3B、图4和图5所讨论的那些。IC的反演模型606与上文讨论的ML模型的不同之处在于IC的反演模型606获取所建模IC的顶层信号(例如,输入信号值602和输出信号值604)并预测内部信号值608。可以使用从仿真得到的一组数据信号值(其是如上文所讨论的那样来自选择的测试用例或者是随机选择的)来训练IC的反演模型606。例如,来自该组数据信号值的以及针对来自该组数据信号值的内部数据信号值训练的顶层数据信号值。在一些情况下,内部数据信号值对应于内部信号的特定级别。在一些情况下,例如,也可以使用IC的FSM状态信息来训练级联ML模型。例如,可以训练第一ML模型以基于输入顶层数据信号值来预测FSM状态,并且该预测的FSM状态可以与顶层数据信号值一起被输入到第二ML模型中,以预测IC的内部数据信号值608。在一些情况下,可以输出所预测的FSM状态。

然后,可以将所预测的内部数据信号值608与从对IC的仿真得到的该组数据信号值612进行比较610,以确定所预测的内部信号与在IC的开发期间看到的各种条件的一致性程度,以便进行调试。作为示例,通过使用低压差稳压器(LDO),电路的输出电压可以跟随(track)从偏置生成电路生成的内部参考信号。然而,这个内部参考信号值在LDO的输入/输出引脚上是不可用的。通过基于在LDO的输入/输出引脚上可用的信号值来预测内部参考值,可以将所预测的内部参考值与在对LDO电路的仿真期间获得的参考值进行比较,以查看是否存在对应的信号值。如果没有这样的对应信号值,那么可能是电路存在内部故障。在步骤614,可以执行统计分析,以识别出要进一步调试的问题。在一些情况下,IC的反演模型606可以是可分发的或以其他方式可共享的,例如以供IC的客户进行基于客户的调试。例如,IC的反演模型606可以被包装在可以从如MATLAB、Octave、Python等各种诊断工具平台获得的模块中。在一些情况下,IC的反演模型606和/或从仿真得到的该组数据信号值在交付给IC的客户时可以是加密的。

图7是图示了根据本披露的各方面的用于调试集成电路的技术的流程图700。在框702,从集成电路获得输入信号值和输出信号值。例如,当调试集成电路(比如模拟电路或混合模拟/数字电路)时,可以从被调试的IC测量输入信号值(例如,应用到IC的输入上的电压值)和输出信号值(例如,IC的输出上的电压值),并将其输入到调试设备。

在框704,将所获得的输入信号值和输出信号值提供给机器学习模型,并且在框706,从ML模型中获得一组预测的信号值。例如,调试设备可以包括基于输入信号值和输出信号值来预测IC的内部信号值的ML模型。该ML模型可以是如上文关于图3A/3B、图4、和图5所讨论的ML模型。在一些情况下,ML模型可以基于所提供的输入信号值和输出信号值来预测FSM状态。在一些情况下,ML模型可以输出所预测的FSM状态。该FSM状态可以用于调试IC。在一些情况下,ML模型可以包括一个或多个子模型。在一些情况下,该一个或多个子模型中的子模型可以预测IC的电路块的输出。然后,多个电路块的预测输出可以用于预测IC的输出。在一些情况下,子模型可以预测IC的FSM状态。

可以基于通过对IC的仿真而生成的IC的数据信号值来训练ML模型。在一些情况下,仿真信号值是基于集成电路的一组测试用例生成的。可以基于覆盖率度量来例如从一套测试用例中确定这些测试用例,以作为最相关的测试用例。在一些情况下,仿真信号值与基于线性回归模型和非线性回归模型而确定的内部信号相关联。在一些情况下,在应用线性回归模型或非线性回归模型之前,仿真信号值可以随机减少一定数量或百分比。该组预测的信号值对应于集成电路内部的信号。

在框708,将该组预测的信号值与一个或多个预期信号值进行比较,以调试集成电路。例如,可以在该组预测的信号值与从对IC的仿真中获得的数据信号值之间执行统计分析以调试IC,例如通过确定该组预测的信号值是否偏离从仿真中获得的数据信号值以及这种偏离是如何随时间发生的。

图8是图示了根据本披露的各方面的用于验证IC的技术的流程图800。在框802,获得集成电路的一组仿真信号值。例如,在IC开发期间,可以创建ML模型,将其作为例如在原型IC的验证和等效性检查期间用于验证IC操作的参考模型。可以基于(例如使用SPICE模型并且可能利用IC的FSM模型)对IC的仿真来训练ML模型。在一些情况下,仿真信号值是基于集成电路的一组测试用例生成的。可以基于覆盖率度量来例如从一套测试用例中确定这些测试用例,以作为最相关的测试用例。在一些情况下,仿真信号值与基于线性回归模型和非线性回归模型而确定的内部信号相关联。在一些情况下,在应用线性回归模型或非线性回归模型之前,仿真信号值可以随机减少一定数量或百分比。

在框804,将所获得的该组信号值提供给ML模型。例如,可以训练ML模型以基于输入到ML模型的顶层数据信号值和可能地内部数据信号值(如果可用)来预测IC的输出数据信号值。ML模型可以是如上文关于图3A/3B、图4、和图5所讨论的ML模型。在一些情况下,ML模型可以基于所提供的输入信号值和输出信号值来预测FSM状态。在一些情况下,ML模型可以输出所预测的FSM状态。该FSM状态可以用于调试IC。在一些情况下,ML模型可以包括一个或多个子模型。在一些情况下,该一个或多个子模型中的子模型可以预测IC的电路块的输出。然后,多个电路块的预测输出可以用于预测IC的输出。在一些情况下,子模型可以预测IC的FSM状态。在框806,从机器学习模型中获得集成电路的一个或多个预测输出信号值。

在框808,将所预测的输出信号值与集成电路的实际输出信号值进行比较,以验证集成电路。

如图9所图示的,设备900包括处理电路系统,比如包含一个或多个硬件处理器的处理器905,其中,每个硬件处理器可以具有单个或多个处理器核。处理器的示例包括但不限于中央处理单元(CPU)、图像处理器、微控制器(MCU)微处理器(MPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。虽然在图5中没有图示,但构成处理器905的处理电路系统也可以包括一个或多个其他类型的硬件处理部件,比如图形处理单元(GPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或数字信号处理器(DSP)。在某些情况下,处理器905可以被配置为执行结合图7和图8中描述的技术来描述的任务。在一些情况下,处理器905可以被配置为选择信号值数据和/或训练图2、图3A/3B、图4、图5和图6中所描述的ML模型。

图9图示了存储器910可以操作性地和通信地耦合到处理器905。存储器910可以是被配置为存储各种类型的数据的非暂态计算机可读存储介质。例如,存储器910可以包括一个或多个易失性设备,比如随机存取存储器(RAM)、寄存器等。非易失性存储设备920可以包括一个或多个磁盘驱动器、光驱、固态驱动器(SSD)、磁带驱动器、闪存、电可擦除可编程只读存储器(EEPROM)和/或被设计为在断电或关闭操作后的一定持续时间内保持数据的任何其他类型的存储器。非易失性存储设备920也可以用于存储程序,这些程序在执行时被加载到RAM中。在一些情况下,存储在非易失性存储设备920中的程序可以直接从非易失性存储设备920中执行。本领域普通技术人员认识到软件程序可以用各种计算语言针对各种软件平台和/或操作系统进行开发、编码和编译,并随后由处理器905加载和执行。在一个实施例中,软件程序的编译过程可以将用一种编程语言编写的程序代码转换为另一种计算机语言,使得处理器905能够执行编程代码。例如,软件程序的编译过程可以生成可执行程序,其为处理器905提供编码指令(例如,机器代码指令)以完成具体的、非通用的特定计算功能。

在编译过程之后,编码指令然后可以作为计算机可执行指令或处理步骤从存储设备920、从存储器910加载到处理器905中,和/或可以嵌入处理器905内(例如,经由高速缓存或板载ROM)。处理器905可以被配置为执行所存储的指令或处理步骤以执行指令或处理步骤,从而将计算设备转换为非通用的、特定的、专门编程的机器或装置。存储的数据(例如由存储设备920存储的数据)可以由处理器905在执行计算机可执行指令或处理步骤期间访问,以指示计算设备900内的一个或多个部件。存储设备920可以被划分或分割成可由不同的软件程序访问的多个分区。例如,存储设备920可以包括指定用于特定目的(比如存储用于更新计算设备900的软件的程序指令或数据)的分区。在一个实施例中,要更新的软件包括计算设备的ROM或固件。在某些情况下,计算设备900可以包括多个操作系统。例如,计算设备900可以包括用于正常操作的通用操作系统。计算设备900还可以包括另一个操作系统(比如引导加载程序),其用于执行如升级和恢复通用操作系统等特定任务,并允许以通过通用操作系统通常无法实现的级别来访问计算设备900。通用操作系统和另一操作系统二者都可以访问存储设备920的指定用于特定目的的分区。

一个或多个通信接口925可以包括用于与一个或多个无线电通信设备(比如AP(在图9中未示出))进行接口连接的无线电通信接口。在某些情况下,耦合到处理器的元件可以包括在与处理器共享的硬件上。例如,通信接口925、存储设备920和存储器910可以与其他元件(比如数字无线电)一起被包括在单个芯片或封装件中,比如包括在片上系统(SOC)中。计算设备900还可以包括输入设备930和/或输出设备(未示出),其示例包括传感器、相机、人类输入设备(比如鼠标、键盘、触摸屏)、监视器、显示屏幕、触觉或运动发生器、扬声器、灯等。经处理的输入(例如来自图像传感器)可以从计算设备900经由通信接口925输出到一个或多个其他设备。

在本说明书中,术语“耦合”可以涵盖能够实现与本说明书一致的功能关系的连接、通信或信号路径。例如,如果设备A生成信号来控制设备B执行动作,则:(a)在第一示例中,设备A通过直接连接耦合到设备B;或者(b)在第二示例中,设备A通过中间部件C耦合到设备B,条件是中间部件C没有改变设备A与设备B之间的功能关系,因此设备B由设备A经由设备A生成的控制信号来控制。

“被配置为”执行任务或功能的设备可以在制造时由制造商配置(例如,编程和/或硬连线)以执行该功能,和/或可以在制造之后可由用户配置(或可重新配置)以执行该功能和/或其他附加或替代的功能。该配置可以通过对设备进行固件和/或软件编程、通过对设备的硬件部件和互连进行构造和/或布局、或其组合来进行。

虽然所描述示例的某些元件被包括在集成电路中并且其他元件在集成电路外部,但是在其他示例实施例中,集成电路中可以并入附加的或更少的特征。另外,被图示为在集成电路外部的特征中的一些或全部可以被包括在集成电路中,和/或被图示为在集成电路内部的一些特征可以被并入集成电路外部。如本文所使用的,术语“集成电路”是指以下一个或多个电路:(i)并入在半导体衬底中/之上;(ii)并入在单个半导体封装件中;(iii)并入在同一模块中;和/或(iv)并入在同一印刷电路板中/上。

在权利要求的范围内,对所描述的实施例进行修改是可能的,并且其他实施例也是可能的。

技术分类

06120116511017