通过易失性影子存储器访问非易失性存储器的制造方法
【专利摘要】本发明涉及通过易失性影子存储器访问非易失性存储器。提供一种装置,其包括经配置在多个位置存储数据的非易失性(设备储存)存储器。所述装置还包括设备接口,其耦合于非易失性存储器,并且包括易失性(设备储存)影子存储器,该影子存储器经配置将非易失性存储器的多个位置的映像存储在易失性影子存储器的对应的多个位置。设备接口经配置,通过网络总线接收来自于总线控制器的命令,并且响应于该命令,设备接口经配置将来自于网络总线的数据写入非易失性存储器中的位置。这个写入包括,接口设备经配置将数据写入易失性影子存储器中的对应位置,并且然后将来自于易失性影子存储器中对应位置的数据写入非易失性存储器中的位置。
【专利说明】通过易失性影子存储器访问非易失性存储器
【技术领域】
[0001]本公开一般涉及网络通信,并且具体地,涉及通过易失性影子存储器访问非易失性存储器。
【背景技术】
[0002]许多应用,如航空航天、汽车和工业控制利用网络系统,如多媒体娱乐、通信,过程控制和诊断系统。随着这些系统变得更加复杂,需要额外的设备来使这些系统相互通信或者与中央控制器等通信。已开发网络系统来提供网络设备之间的公共通信路径。在航空航天和汽车应用中,例如,网络系统可被用于监控各种组件,并收集例如关于应变、加速度、压力和/或温度的诊断信息和状态信息。在另一个示例中,网络系统可以用来在航空航天或汽车应用中支持通信和对乘客传送多媒体信息,或者用于可以应用到系统(如交通工具)的过程控制应用中。
[0003]许多传统的系统具有较长的模拟布线,其容易受到不期望的噪声和信号退化影响。即使是被开发以缩短模拟布线的当前网络系统仍然使用需要高级别处理器的复杂协议,其限制小型化,从而限制设备位置,这仍然会导致长的模拟布线。此外,高级别的协议会引入开销到总线上的消息中,其严重限制可以在总线上传输的数据样本的数量、数据可以被传输或传送的等待时间、或数据采样和传送的时间确定性。这些网络也一般不支持采集和控制,通常只支持在相对较短长度扩展的网络。此外,这些网络通常具有庞大的网络设备接口、慢的网络数据速率和/或低网络设备数量。另外,包括数字网络的许多计算机系统不以时间确定的方式运行,并且因此,对于重复的或者以任何精密计时被解释并且执行的网络组件缺乏安排触发命令的能力。
[0004]开发一种协议和数字网络结构以解决传统数字网络的多个缺点。这种协议和数字网络结构被描述在,例如,于2004年3月16日授权、标题为:Network Device Interfacefor Digitally Interfacing Data Channels to a Controller via a Network 的美国专利 N0.6,708,239,以及于 2002 年 8 月 15 日公开、标题为:Bus Controller for DigitallyControlling Remote Devices via a Common Bus 的美国专利申请公开N0.2002/0112070。尽管这种协议和网络结构提供优于许多传统数字网络的许多优势,但是通常期望作出进一步的改善。
【发明内容】
[0005]本公开的示例实现一般涉及用于通过易失性影子存储器访问非易失性存储器的装置和方法,其能够使得所存储的数据以网络总线可以接收数据的速度可用。根据示例实现的一方面,提供包括非易失性(设备储存)存储器的一种装置,该存储器经配置在多个位置存储数据。装置还包括设备接口,其耦合于非易失性存储器并包括易失性影子存储器,易失性影子存储器经配置将非易失性存储器中的多个位置的映像存储在易失性影子存储器的对应多个位置。在一个示例中,非易失性存储器可包括基本存储器和扩展存储器,并且易失性影子存储器可包括基本影子存储器和扩展影子存储器。在该示例中,基本影子存储器可以经配置存储基本存储器的映像,并且扩展影子存储器可以经配置存储扩展存储器的唯一可选子集的映像。
[0006]根据示例实现的上述方面,设备接口可以通过数字网络总线耦合于总线控制器,并且经配置通过网络总线接收来自于总线控制器的命令,并且响应该命令,设备接口经配置将来自于网络总线的数据写入非易失性存储器中的位置。该写入包括,设备接口经配置将数据写入易失性影子存储器中的对应位置,并且之后,将来自于易失性影子存储器中的对应位置的数据写入非易失性存储器中的位置。
[0007]在一个示例中,命令是写入命令。在该示例中,设备接口可以经配置,仅在未收到另一个写入命令的情况下经过超时时间之后,将来自于易失性影子存储器中对应位置的数据,写入非易失性存储器中的位置。
[0008]在一个示例中,设备接口经配置执行从易失性影子存储器至非易失性存储器的写入循环,包括设备接口经配置将来自于易失性影子存储器中的对应位置的数据写入非易失性存储器中的位置。在一个示例中,设备接口可以经配置对非易失性存储器的每个位置执行写入循环,易失性影子存储器经配置在其中的对应位置存储非易失性存储器的每个位置的映像。
[0009]在一个示例中,写入循环可以进一步包括设备接口经配置检查非易失性存储器中的位置的受保护或者不受保护的状态,设备接口经配置而仅当位置是未受保护位置的情况下,将数据写入非易失性存储器中的位置。
[0010]另外或可选地,例如,在易失性影子存储器中的对应位置的数据是第二数据。写入循环可以进一步包括,设备接口经配置读取来自于非易失性存储器中的(未受保护的)位置的第一数据,并且比较第一数据与第二数据。然后,设备接口可以经配置而仅当第一数据与第二数据不同的情况下,将第二数据写入非易失性存储器中的(未受保护的)位置。
[0011]在示例实现的其他方面,提供一种用于通过易失性影子存储器访问非易失性存储器的方法。本文所讨论的特征、功能和优势可以在多个示例实现中独立地实现,或者在其他示例实现中组合,其他示例实现的更多细节可以参见以下描述和附图。
【专利附图】
【附图说明】
[0012]因此,已经概括地描述了本公开的示例实现,现将参考附图,附图不一定按比例绘制,并且其中:
[0013]图1示出一般性的网络系统,在其中可以实现本公开的示例实现;
[0014]图2示出在本公开的多个示例实现中的远程设备的一般性框图,其中远程设备可对应于图1中示出的远程设备;
[0015]图3示出根据一个示例实现的方法中的各个操作,其中远程设备可包括或者耦合于外设,如传感器和/或致动器;
[0016]图4示出根据本公开的示例实现的远程设备的存储器体系结构;以及
[0017]图5示出根据本公开的一个示例实现的设备储存存储器的示意性框图。
【具体实施方式】
[0018]现在参考附图对本公开的一些实现进行更全面地描述,其中示出本公开的一些实现,而非所有实现。实际上,本公开的各种实现可以以多种不同的形式体现,并且不应该被解释为受限于本文所阐述的实现;相反地,提供这些示例实现是为了使本公开将是彻底的和完整的,并且将本公开的范围充分地传达至本领域技术人员。根据本公开的示例实现,术语“数据”、“内容”、“信息”及类似术语可以互换使用,以指示能够被传输、接收、操作、解释、存储等的数据。在全文中类似的参考标号指代类似的元件。
[0019]首先,值得注意的是,本公开的示例实现可以在任意类型的网络系统中实现。网络系统可以驻留在飞机、航天器、车辆、建筑物、工厂、或任何其它包装(package)、结构或环境中。作为示例,系统、网络设备和方法可以在驻留于旋转翼飞机上的网络系统中实现,在其中网络包括网络设备,如总线控制器和一个或多于一个连接于公共网络总线的远程设备。每个远程设备可包括或者耦合于一个或多于一个外设,如换能器(例如,传感器、致动器)、子系统等,远程设备经配置通过公共网络总线与总线控制器通信,例如从而确定与飞机的各种组件有关的性能、状态等。换能器可包括,例如,用于监控飞机的主旋系统的应力、加速度和压力的传感器。
[0020]本公开的示例实现还可以在车辆(如汽车)中的网络系统中实现,其中网络系统包括连接于车辆的不同组件的外设。例如,外设可包括传感器,用于监控节气门位置、油压、水温、传输流体压力、座椅位置、防锁制动系统、悬架、被动约束系统和转向系统等等。在其他示例中,外设可包括致动器,用于响应来自于总线控制器的命令以执行特定的功能。在汽车应用中,例如,外设可包括致动器,用于控制节气门位置、防锁制动系统、悬架、被动约束系统和主动悬架系统等等,仅仅举例说明几个。
[0021]更进一步地,外设可包括音频或视频源。例如,外设可包括无线接收器、盒式磁带播放器、CD播放器、MP3播放器、移动电话接收器或者用于向网络总线提供音频信号的其他音频源,在一些情况下,音频信号包括流式音频信号。相应地,外设可包括扬声器、耳机插孔等,用于接收来自于网络总线的音频信号,并用于提供对应的音频输出。类似地,外设可包括电视接收器、视频带播放器、DVD播放器或者用于向网络总线提供包括流式视频信号的视频信号的其他视频源。相应地,外设可包括视频监视器等等,用于接收视频信号,并显示基于视频信号的图像。
[0022]还应理解,本公开的示例实现可以基于任何特定的协议和网络结构。在一个示例中,系统、网络设备和方法可以基于在上述’ 239专利和’ 070公布物中描述的协议和网络结构。其他相关参考文献包括美国专利N0.6,938,106,7, 082,485,7, 096,285,7, 111,100、7,174,402,7, 277,970,7, 346,719,7, 552,256,7, 581,031,7, 630,431 和 7,894,562。
[0023]前述协议和网络结构可以提供优于许多传统数字网络的许多优势。如在背景部分描述的,许多以前的数字网络根据复杂的协议进行操作,这需要每个网络设备具有相对高级别的处理器。这进而增加网络设备的成本。进一步地,高级别的协议会引入开销到总线上的消息中,这严重限制可以在总线上传输的数据样本的数量。这些网络通常也不支持采集和控制,其通常只支持在相对较短的长度扩展的网络。此外,这些网络通常具有庞大的网络设备接口、慢网络数据传输速率和/或低网络设备数量。另外,包括数字网络的许多计算机系统,不以时间确定的方式运行,并且因此对于以任何精密计时来重复或者被解释和执行的网络组件,缺乏安排触发命令的能力。
[0024]鉴于这些缺点,前述’ 239专利和’ 070公布物的数字网络结构和协议利用允许不太复杂的设备来实现的低级别的指令集。网络结构和协议也可以允许提高数据速率,并利用允许在网络总线上的精确定时的数据采集/获取或其他行动的命令结构。
[0025]尽管本公开的示例实现可以基于多种网络架构,但是可以添加示例实现的功能到上述网络结构和协议的现有命令结构中。也就是说,本公开的各个示例可以基于’239专利和’ 070公布物的数字网络结构和协议。具体地,以下描述的命令可以通过与这些协议相同或类似的结构实现,并且通信结构可以是相同或者类似的。
[0026]参考图1,示出一般性的网络系统,在其中可以实现本公开的示例实现。具体地,图1示出网络系统100,其具有主计算机或总线控制器102、网络总线104,以及一个或多于一个远程设备106 (示例示出两个),每一个远程设备106可包括或者耦合于一个或多于一个外设108,如传感器、致动器等(示例示出五个)。在这种配置中,总线控制器可以提供网络系统的配置和控制。各个远程设备可包括唯一地定义总线上的远程设备的分配的标识符或地址。在一个示例中,每个远程设备可包括一个或多于一个数据信道,用于其各自的一个或多于一个外设,并且每个数据信道可以被单独寻址,以允许经由每个数据信道的单独的通信。
[0027]在操作中,总线控制器102可以通过网络总线104发送命令至一个或更多远程设备106。由各自的(一个或更多)地址或其(一个或更多)外设指定的(一个或更多)远程设备可以执行与命令关联的操作,并且可以通过将数据放置在网络总线上以被发送至总线控制器或者一个或更多其他远程设备来做出响应。另外或者可选地,例如,(一个或更多)远程设备可以通过在外设(如传感器)中发起传入数据测量,或者将值移入外设(如致动器)中的输出来响应例如触发命令的命令。
[0028]在一些示例中,远程设备106可以提供信号调节,并且可包括内置设备接口,用于使外设与总线控制器102接合。在一些示例中设备接口(有时指的是网络设备接口 -NDI)可与外设一起使用,否则外设不能与总线控制器直接通信。基于来自于总线控制器的命令和数据,设备接口可以接收并解释来自于总线控制器的命令并控制信号调节,如接收来自于传感器的数据或者激活致动器。
[0029]如上面所建议的,在各个实施例中,网络系统100可与使用低级别指令集的数据协议共同工作,该指令集允许不太复杂的网络设备,如总线控制器102和//或远程设备106。这样可以允许控制器通过网络总线104—次与一个或更多远程设备通信。由于协议的简单性,网络设备可以不要求高级别的处理器。替代地,在各种示例中,网络设备可包括基于硬件的状态机,其可以实现为低级别的处理器,如专用集成电路(ASIC)、现场可编程逻辑门阵列(FPGA)等等。在各种示例中,通过利用状态机代替微控制器或处理器,示例实现可允许多过程同时进行,这可以帮助网络设备的时间确定和快速性能。
[0030]由于总线控制器102可通过公共的网络总线104连接于远程设备106,所以总线控制器可以不需要到每个远程设备或其外设的专用连接来控制网络系统100。总线控制器可以改用寻址方案,以分配并控制远程设备和其外设。为了操作网络系统,每个远程设备或者远程设备的每个信道可以被分配一个或更多地址,包括一个或更多逻辑地址、全局地址和/或组地址。在各种示例中,这些逻辑、组和/或全局地址中的一个或更多个可以根据使用与每个远程设备关联的通用唯一标识符(UUID)的过程确定。UUID码是80位码,其对于每个远程设备是唯一的,并且基于设备被制造的位置和日期。对于一种这样的方法的示例,参见上述’ 070公布物。
[0031]逻辑地址可以由单个远程设备106识别,或者通过远程设备的单个数据信道识另|J,总线控制器102可以利用它引导命令(或请求)至特定的网络设备/信道。另一方面,全局地址可被所有的远程设备识别,总线控制器可以使用全局地址来交换通用数据和命令,以全体初始化或者复位所有的远程设备。组地址可以被网络上远程设备的特定组识别,总线控制器可以利用组地址来交换组数据和命令。例如,组地址方案可以允许总线控制器在各种采样速率为远程设备组设置时间确定的触发。在另一示例中,组地址方案可以允许远程设备组在网络总线104上建立对等通信,而没有来自总线控制器的阻断。
[0032]图2示出远程设备200的一般性的框图,其中在本公开的多个示例实现中远程设备可对应于图1中示出的远程设备106。如图所示,远程设备可包括设备接口 202 (例如,ASIC,FPGA),其耦合于并且定义用于一个或更多外设的数据信道204。设备接口可包括各种组件,用于执行根据本公开的示例实现的功能。例如,设备接口可包括端口,如串行或并行端口,它们可将设备接口连接于相应数据信道,并且可通过相应端口控制逻辑来控制。设备接口可包括各种类型的易失性存储器,其中至少一些可以由一个或更多数据寄存器、数据寄存器堆栈等组成。设备接口还可包括各种其他的寄存器(例如,堆栈-深度寄存器、状态寄存器、设备清单寄存器、配置寄存器、信道服务寄存器、包定义寄存器),多路复用器(例如,数据选择多路复用器、输出数据多路复用器),解码器(例如,地址解码器、命令解码器),控制逻辑等等。与设备接口的合适组件相关的进一步地细节可以在上述’239专利中找到。
[0033]如图所示,设备接口 202可以通过相应电路206耦合于数据信道204。对于每个数据信道,该电路可包括信号调节设备208,如一个或更多放大器、滤波器、衰减器等等,其经配置调节到达/来自于外设的模拟信号。该电路也可包括适当的模拟数字转换器(ADC)和/或数字模拟转换器(DAC)210。在一个示例中,ADC可连接在设备接口 202与传感器之间,并且可经配置将来自于传感器信道的模拟信号转换成数字信号,用于输入到设备接口。类似地,例如,DAC可以连接在设备接口与致动器之间,并且可以经配置将来自于设备接口的数字信号转换成模拟信号,用于输入到致动器信道。一些传感器或致动器可以直接产生或者接收数字信号是可能的,从而电路可以不需要ADC或DAC。
[0034]设备接口 202可以连接于网络总线,如图1的网络总线104,并且可以被连接使得能够与总线控制器(如图1的总线控制器102)通信。关于此点,远程设备可包括发送器212,其经配置将数据发送至总线控制器,和/或接收器214,其经配置接收来自于总线控制器的命令和数据。远程设备200还可包括第二接收器216,其经配置当网络以同步模式操作时,接收来自于总线控制器的可选的同步时钟信号。同样地,远程设备可包括本地振荡器218,其可以支持网络以同步模式或异步模式操作。更进一步地,远程设备可包括非易失性存储器220。虽然被示出为耦合于设备接口,但是设备接口的不同实现可以反而整合一个或更多接收器、发送器、本地振荡器、存储设备等等。
[0035]图3示出根据一个示例实现的方法300中的各种操作,其中远程设备106 (例如,远程设备200)可包括或者耦合于外设,如传感器和/或致动器。如在方框302中示出的,方法可包括总线控制器102通过网络总线104数字地发送命令和数据到远程设备,其中命令和数据可以被指定用于在远程设备上的一个或更多数据信道。命令和数据可以利用数据协议通过网络传输,并且远程设备可以如方框304中示出的利用数据协议的结构来接收并解释数据命令。
[0036]在一个示例中,命令字可以反映在消息中,消息可包括同步部分、消息体和奇偶校验位。消息体可包括用于寻址命令的地址字段,以及操作码(opcode)字段,其用于指定将被执行的命令或操作。在一个示例中,结构上,消息可包括多个位,每一个位具有由第一状态和第二状态之间的过渡定义的值,如由低到高过渡定义的二进制“0”,以及由高到低过渡定义的二进制“I”。远程设备106可以确定命令和数据是否被指定用于任意一个其数据信道,如在方框306中示出的;并且如果是这样,相应远程设备可以获得来自于被指定的数据信道的数据(如果远程设备是传感器),或者命令数据信道执行转换(如果远程设备是致动器),如在方框308中示出的。从传感器信道取回的模拟数据可以被转换成数字数据,然后可以根据数据协议被转换成正确的格式,如在方框310中示出的。并且任何适当的数字数据可以被传输至控制器,如在方框312中示出的。
[0037]如在图2中建议的,远程设备106可包括各种类型的易失性和非易失性存储器。图4示出远程设备402的存储器体系结构400,在各种示例中,远程设备402可以对应于图2的远程设备200。通常,远程设备可包括基于信道的存储器和基于设备的存储器。
[0038]如图4所示,例如,远程设备402可包括基于信道的存储器,如用于每个信道的一种或更多种类型的易失性存储器。这种基于信道的存储器可包括,例如,先进先出(FIFO)存储器404,和/或随机存取存储器(RAM),如表格存储器406、配置存储器408等等。远程设备还可包括基于设备的存储器,如带有非易失性存储器的设备储存存储器410,并且可选地进一步包括易失性RAM,如设备配置存储器412。在一个示例中,易失性存储器可以通过设备接口 202实现在(一个或更多)数据寄存器或数据寄存器的(一个或更多)堆栈中,并且非易失性设备储存存储器可以对应于非易失性存储器218。
[0039]FIFO存储器404可以是按照先进先出可访问的,从而,被放置在相应存储器中的第一值可以是从其中取出的第一值。信道的表格存储器406和配置存储器408可以利用相应信道的逻辑地址来访问,并且在示出的示例中,每个信道可以在OOOOh开始。设备储存存储器410和设备配置存储器412可以利用远程设备402中的任何信道地址来访问,并且与可寻址的基于信道的表格存储器和配置存储器类似,可寻址的基于设备的存储器可以在OOOOh开始。也就是说,可寻址的基于信道的存储器可以在一地址开始,该地址针对每个信道具有相同值并且具有与可寻址的基于设备的存储器可以开始的地址相同的值。
[0040]简言之,FIFO存储器404和表格存储器406可用于各种目的,如用于实时数据流的数据获取缓冲(这里定义的“实时”包括“接近实时”)。FIFO存储器也可用于配置。设备储存存储器410可旨在用于信息存储。设备配置存储器412和配置存储器408可旨在用于易失性设备和远程设备402中的信道设置,并且可以被填充,或者另外从设备储存存储器加载。在各种示例实现中,然后,设备储存存储器和大多数配置存储器不旨在用于实时数据获取和控制模式。
[0041]FIFO存储器404可以允许到外设的数据流或来自外设的数据流,并且在各种示例中,可以提供外围数据获取或控制信道与网络总线(例如,总线104)之间的“暂存区”。每个FIFO存储器可包括进FIF0404a和出FIF0404b,并且可以进一步包括进缓冲器404c。进FIFO可在外设和网络总线之间缓存数据,而出FIFO可在网络总线和外设之间缓存数据。在各种示例中,进FIFO和出FIFO中的一个或两个可以是双端口的,以便数据可以被读出或者接收到相应FIFO中,同时数据从相应外设输出或者输入相应外设。同样地,在各种示例中,进FIFO和出FIFO中的一个或两个是可配置的,以便以直接模式或缓冲模式操作。
[0042]在直接模式中,进FIF0404a可以直接获得来自于外设的数据。在一个示例中,数据可以被接收到进缓冲器404c中,并且直接通过到达进FIFO,准备好通过适当的命令被取回。在直接模式中的出FIF0404b可以接收来自于总线的数据,并且可以立即将数据传输至外设。在缓冲模式中,进FIF0404a和进缓冲器404c可以独立地行动。从外设接收的数据可以被带入进缓冲器中,并且存储在那里。然后,通过适当的命令,数据可以从进缓冲器移动至进FIFO。在缓冲模式中的出FIFO可以存储来自于总线的数据,并且根据命令将数据从出FIFO移动至外设。
[0043]与FIFO存储器404类似,单独的信道可以配备有表格存储器406,其包含以可寻址的方式存储的信息。该存储器本质上是易失性的,并且可用于其中多个逻辑地址的值可以动态改变的应用。在各种示例中,该表格存储器可以被称为当前值表格(CVT)。该数据可以同步或者异步更新。存储在表格存储器中的消息可以跨越一个或更多地址位置,在一个实例中,每个位置可包括16位宽的字。在一个示例中,表格存储器寻址和消息大小可由设备制造商定义。
[0044]设备储存存储器410可以被远程设备402用于存储数据,如UUID、协议版本、数据信道的数量、逻辑地址、组掩码,设备和/或信道配置信息、设备储存存储器指针、外围引导信息、制造商定义的装置和信道信息、以及制造商或用户可以定义的任何其他数据。更进一步地,例如,设备储存存储器也可以用于存储用户定义的信息,如远程设备安装位置、校准数据等等。在各种示例中,至少一部分该数据可以形成电子数据表(EDS)。
[0045]如上面所解释的,设备储存存储器410可包括非易失性存储器。在一个示例中,设备储存存储器可以同时包括非易失性设备储存存储器和易失性设备储存影子存储器(有时简称为影子存储器),其经配置存储至少一部分非易失性设备储存存储器的映像。与其他易失性存储器类似,影子存储器可以通过设备接口 202在(一个或更多)数据寄存器或数据寄存器的(一个或更多)堆栈中实现。在各种示例中,设备存储器命令可用于访问易失性影子存储器,并且因此间接访问非易失性设备储存存储器。
[0046]图5示出根据一个示例实现的设备储存存储器500,其可对应于设备储存存储器410。如图所示,设备储存存储器可包括非易失性设备储存存储器502和易失性设备储存影子存储器504。同样如图所示,在一个示例中,非易失性设备储存存储器502可以被划分为多个(Ts)小的可选择存储器部分(称作段)。第一段至一些确定数量的段(η)可以形成基本存储器502a,并且任何(如果存在的话)剩余的段(Ts-n)可以形成扩展存储器502b。基本存储器的大小(BMS)可以是每个段的大小(MSS)的若干整数倍。关于此点,扩展存储器开始的段号可以由BMS除以MSS确定,这可以得出整数解。
[0047]基本存储器可以在基于设备的存储器地址OOOOh开始(非易失性存储器地址0000_0000h),并且存储数据,如UUID、逻辑地址、指针、存储器属性、共同配置、EDS、校准系数、引导码等等。在一个示例中,影子存储器504可包括基本影子存储器504a,在此,非易失性设备储存存储器502的基本存储器502a可以被完全隐藏。存储在影子存储器中数据,进而基本影子存储器,可以是以线速度可用的。
[0048]扩展存储器502b可以存储数据,如额外的配置信息、默认设置等等。与基本存储器502a类似,扩展存储器可以被分成存储器段,其段号从最后的基本存储器段开始逐渐增加。在一个示例中,影子存储器504可包括扩展影子存储器504b,在此,扩展存储器可以被完全隐藏。在另一个示例中,只有可选部分的扩展存储器,如扩展存储器段的子集(例如,一个子集),可以在任何给定时间隐藏在扩展影子存储器中。关于此点,当基本存储器段可以被直接加载到基本影子存储器504a中时,扩展存储器段的子集可以通过命令来选择,并被加载到扩展影子存储器中。并且再次地,存储在影子存储器中的数据,进而扩展影子存储器,可以是以线速度可用的。
[0049]在各种示例中,非易失性设备储存存储器502 (当断电时,保留其数据)可以在操作上比易失性影子存储器504 (当断电时,丢失其数据)的慢很多。在这些示例中,非易失性存储器不能以线速度执行,这意味着其不能跟上到达或者来自于网络总线(例如,总线104)的数据流量。根据示例实现,然后,非易失性设备储存存储器可以通过使用易失性影子存储器来扩展,易失性影子存储器可以以更快的速度操作,并且“暂存”将被读取或编程到非易失性存储器中的数据。
[0050]回到图4,在远程设备402通电或复位时,远程设备可以执行引导序列,这可包括设备初始化阶段和设备和/或信道配置引导阶段。在设备初始化的过程中,设备储存存储器410的数据可以被加载到易失性存储器(例如,表格存储器406、配置存储器408、设备配置存储器412)或者其他寄存器空间中,以便其可以被实时或接近实时地访问。在一个示例中,这可包括从设备储存存储器项读取,设备储存存储器项如为UUID、实施掩码、逻辑和组地址、设备储存存储器指针等等。然后,启动/引导阶段可以是配置设备、信道和各个外设用于操作的过程。
[0051]根据示例实现,网络系统的协议可包括不同的、独特的命令集,用于基于信道的存储器和基于设备的存储器。在一个示例中,协议可包括用于访问远程设备402的基于信道的存储器的一组信道命令,和用于访问远程设备的基于设备的存储器的不同的、独特的设备存储器命令集。
[0052]信道命令可包括各种FIFO和独特的信道存储器命令,通过这些命令可以访问FIFO存储器404、表格存储器406和/或配置存储器408。信道命令可包括基于时间的命令,用于每个信道与其各自的基于信道的存储器之间的数据的约线速度移动。这些命令可包括,例如,被设计用于获得来自于传感器端口的数据并将数据提供至致动器端口的命令,和/或设计用于给信号调节器(例如,信号调节器208)提供高效和“瞬时”的配置设置的命令。
[0053]设备存储器命令可包括这样的命令,通过这些命令可以访问设备储存存储器410和设备配置存储器412。这些命令旨在提供对基本静态信息、操作信息、配置、校准和目录信息的访问,和/或提供对将来应用的映射存储器访问,微处理器存储器可以针对访问而隐藏。
[0054]现在,将在下文中对与各种信道命令和设备存储器命令相关的进一步的信息做出描述。
[0055]1.示例信道命令说明
[0056]一个或更多远程设备402可以被装备以执行时间确定的动作,用于数据获取或者控制应用和信道配置。这种设备可以使用一些基于时间的命令中的一个,以将数据移动到进FIF0404a中、从出FIF0404b移出、移进或移出表格存储器406、或者移进或移出信道配置存储器408。远程设备中的每个可寻址信道可以包含一个或更多不同的易失性存储器选项。信道命令的性质可以是实时的,以便每个命令和响应的执行时间可以得到很好的理解,并且可以被预测、定义等等。每个信道命令与其响应的执行时间可以比每个设备存储器命令的执行时间更可预测,因此可导致各命令的不同定时要求。
[0057]信道命令可包括用于移动实时、连续获得的数据的信道FIFO命令,该数据例如分别通过进FIFO存储器404a或出FIFO存储器404b来自于ADC或DAC(例如,ADC/DAC210)。这些FIFO命令可以提供单数据字和/或数据字的明确定义块的传送。FIFO命令也可以允许远程设备402在非易失性设备储存存储器410中预配置,非易失性设备储存存储器410可以利用包来预定义数据传输大小。利用这种包命令可以消除读取和写入命令中的块大小字。包的大小可以隐含地定义要从进FIFO和出FIFO移出的数据块的大小。
[0058]信道命令也可包括用于将实时、连续获取的数据移动通过表格存储器406,或者将针对每个信道的配置信息缓存进合适的配置存储器408的信道存储器命令。关于此点,表格存储器可被用于将传入(数据获取)或传出(控制)数据保持在可寻址的存储器空间中,该空间可以用于移动存储在易失性可寻址的存储器位置中的实时连续获得的数据。
[0059]配置存储器408可用于对信道的用户可配置属性立即编程。改变这个存储器的值可以是暂时的和不稳定/易失的。设备储存存储器410可以不存储易失性信道存储器中的配置设置。但是在各种示例中,易失性信道存储器中的任何改变都需要在设备储存存储器中的对等空间中做出,如在当远程设备402复位或在电力循环之后需要设置的情况下。在信道配置值存储在设备储存存储器中并且信道启动进度表存在的情况下,在通电或复位时,远程设备可以加载信道配置存储,并且以存储在非易失性设备储存存储器中的值来配置信道。相反地,在信道配置值没有存储在设备储存存储器中的情况下,当远程设备复位或者电力循环时,可以用存储在设备储存存储器中存储的值代替信道配置值。
[0060]1.1.触发
[0061]触发命令可被用于利用触发命令字内的过渡将数据精确地锁进或出远程设备402。此特征可用于建立全局时间基准。
[0062]被配置作为传感器的远程设备信道可以利用进FIF0404a。在一个示例中,当接收到触发命令时,可以立即生成转换信号,其导致外设开始样本转换。当由外设产生样本时,进FIFO可以获得预编程的数据量。
[0063]被配置作为致动器的远程设备信道可以利用出FIF0404b。在一个示例中,当接收至_发命令时,可以立即生成转换信号,其导致到达外设(例如,DAC210)的输出组件更新其输出。然后,出FIFO可以发送预编程的数据量。对于触发操作,出FIFO可以一直处于缓冲模式(直接模式可以在数据一被接收时就将数据移出比如致动器的外设)。
[0064]1.2.同步
[0065]同步命令可用于精确地同步远程设备402,以及执行与上述类似的触发操作。这个命令可以同时产生同步信号和触发信号。
[0066]在一个示例中,同步命令可以是同步操作,其中在同步命令消息中的奇偶校验位的变化中心边缘可以产生同步和触发事件。除了产生同步信号,在远程设备402中,同步命令可以具有与上述触发命令相同的或类似的定时和行为。在一个示例中,利用触发信号对同步命令的响应可以是强制性的,但是根据应用,同步信号的提供和使用是可选的。
[0067]1.3.获得信道状态
[0068]获得信道状态命令可以在单个信道被引导通过信道来取回该信道的状态。在一个示例中,状态可以被反映在多位状态寄存器(例如,在设备接口 202中)中,并且获得信道状态命令可以被引导以取回状态寄存器的内容。状态寄存器的内容可包括多个位,一些位可以被锁定,而其他的位可以不被锁定。在一个示例中,当状态字被这个命令读取时,锁定的位可以被清除。
[0069]对获得信道状态命令的响应可以反映多个不同的组件中任何一个的状态或者远程设备402的工作能力。对于多位状态寄存器的情况,例如,每个位可以指示被设置时的特定状态。寄存器可包括指示错误的位,在试图访问进FIF0404a、出FIF0404b或表格存储器406,和/或试图写入各个存储器时出现该错误。
[0070]状态寄存器可包括指示错误的其他位,或者与进出FIF0404a、404b的数据传送相关的其他通知,如进FIFO的过早清除、没有用于传输至进FIFO的所请求的外设数据、中断或暂停所请求的信道传输操作等等。寄存器可包括表示信道的主故障标志的位,和/或指示内部逻辑状态、忙碌状态等等的位。寄存器可包括连接于各个外部外设并且指示各个设备的状态的位。寄存器可包括指示信道处于测试模式,或者指示在信道内置测试(BIT)中出现错误的位。在更进一步的示例中,其中信道被启用以执行宏进程,寄存器可包括指示程序进程被启用的位。
[0071]1.4.设置信道服务
[0072]设置信道服务命令可用于执行输出型离散服务和操作码操作,如通过每个信道的信道服务寄存器(例如,在设备接口 202中)。在各种示例中,设置信道服务命令可包括用于指示操作码操作的部分(例如,最低有效-LS-字节),和用于指示服务操作的另一部分(例如,最高有效-MS-字节)。
[0073]信道服务操作码可以暂时地将远程设备402设置为测试模式,如BIT或另一测试模式。信道服务操作码可以重写远程设备的另一操作码,直到远程设备基本复位,或者复位到其正常的操作模式(例如,通过另一操作码),或者电力循环时。这些测试模式中的一些并不适用于所有的设备。如果信道不支持操作码,则其可以被忽略。
[0074]用于指示服务操作的设置信道服务命令的部分可包括信道服务复位位字段,其可用于在信道内复位易失性存储器和/或各种寄存器。在一个示例中,字段可以是多位字段,其中每个位可被设置以选择存储器来复位或者清除。字段可包括清除信道的进FIF0404a和/或出FIF0404b的位,并且在各种示例中,还可以清除与各个输入和/或输出端口关联的任何其他缓存器。字段也可包括位,从而例如通过将选定存储器的内容清除为OOOOh来清除信道的表格存储器406,并且其中在各种示例中,也可以清除任何累加器或者复位任何定时器。这可以仅复位选定的存储器,并且不会影响配置寄存器408中的内容。在接收该命令之后,远程设备402可以准备好立即接受新的命令。可以不支持一些选项。如果信道不支持位选择,则其可以被忽略。
[0075]1.5.获得进FIFO/出FIFO的计数
[0076]获得进FIFO计数命令可用于确定被包含在处于缓冲模式的进FIF0404a中,或者处于直接模式的进缓冲器404c和进FIFO中的字的数量。类似地,获得出FIFO计数命令可用于确定被包含在出FIF0404b中的字的数量。命令可导致远程设备402返回多位值,该多位值表示被包含在各个进FIFO或出FIFO中的字的数量。
[0077]1.6.外设到FIF0/FIF0到外设的传输
[0078]FIFO传输命令可用于将数据从出FIF0404b移动至远程设备的外设,和/或将数据从外设移动至进缓冲器404c。命令可包括相应自变量或参数(argument),其指定要从出FIFO传输至外设的字节数,和/或要从外设传输至进缓冲器的字节数。然而,参数中的任何一个可以是零。在各种示例中,尽管命令可以指定字节数,但是数据可以在字边界内被传输。例如,当有奇数个字节时,从出FIFO发送的或者在进缓冲器404c中接收的最后一个字,可包含有效的低字节和无效的高字节。
[0079]接收这个命令的远程设备402可以针对若干不同的条件以若干不同的方式做出响应。例如,对于来自出FIF0404b的传输,只要出FIFO中有字要传输,远程设备就可以传输指定的字节数。在所定义的传输完成之前,如果出FIFO耗尽其内容,该命令会中止。如果进缓冲器参数大于进FIF0404a能够在单个请求中产生的字节数,则FIFO可以产生的最大字节数可以被传输至进缓冲器404c,并且可以忽略剩余的请求。这样可以避免故障,并且确保只有目的数据被输出至外设。
[0080]当进缓冲器参数大于零时,进FIF0404a可以在直接模式操作,并且当出FIFO参数大于零时,出FIF0404b可被设置成缓冲模式。在任一种情况下,无论信道的设置怎样,直接/缓冲模式操作都会发生,尽管如果与信道的配置设置不同,这可以是暂时的。
[0081]当出FIFO参数大于进缓冲器参数时,进缓冲器内容可以在参数的差值之后开始被接收。另一方面,当出FIFO参数小于或者等于进缓冲器参数时,传输可以同时开始。如果除例如为全双工FIFO规定的之外,仍然需要输出数据,则FIF0404可以插入预定值。
[0082]1.7.读取进FIFO字/块/包
[0083]这些读取进FIFO命令可用于从远程设备402信道的进FIF0404a读取数据字、块或若干字的预定义包,并将(一个或更多)字传输至总线(例如,总线104)。在一个示例中,可以在命令中指定数据字的数量。并且在一个示例中,在字包的背景下,包中的数据字的数量可以在远程设备(例如,在设备接口 202中)的包定义寄存器中预定义。
[0084]1.8.写出 FIFO 字 / 块 / 包
[0085]这些写出FIFO命令可用于接收来自于总线(例如,总线104)的数据字、字块或字的预定义包,并且将(一个或更多)字写出FIF0404b。与读取命令类似,在一个示例中,可以在命令中指定数据字的数量。同样地,例如,包中的数据字数量可以在远程设备的包定义寄存器中预定义。
[0086]1.9.获取时写出FIFO字/块/包
[0087]这些获取时写出FIFO命令可用于,接收来自于总线(例如,总线104)的数据字、字块或字的预定义包,并将(一个或更多)字写出FIF0404b。然后,出FIFO可以直接发送数据至外设,同时立即从外设获取一个数据字,存入进FIF0404a。与之前的类似,在一个示例中,可以在命令中指定数据字的数量,或者,对于包,可以在包定义寄存器中预定义数据字的数量。进FIFO和出FIFO可被设置成直接或缓冲模式。但是这些命令可被意图用于当出FIFO被设置成直接模式时。然后,在一个示例中,如果远程设备402接收到命令,同时出FIFO处于缓冲模式,则远程设备402可以将命令处理为写出FIFO命令。
[0088]1.10.读取/写入信道内存块
[0089]这些命令可用于从设备的信道存储器读取数据字块,或者将数据字块写入设备的信道存储器。命令可包括指示存储器位置指针值的参数,并且读取/写入操作可以开始于由相应参数指示的信道存储器中的位置。命令可包括额外的数据参数,其告知远程设备402将从其存储器读取的并且在总线(例如,总线104)上传输的数据字的数量,以及将从总线接收的并且写入其存储器中的数据字的数量。远程设备可以读取/写入在经过的指针值处开始的数据,并且顺序读取/写入递增地址。
[0090]2.示例设备存储器命令说明
[0091]除了信道命令,协议可包括设备存储器命令。这些命令可包括用于寻址基于设备的存储器的命令,基于设备的存储器被用于配置远程设备402。如上面所指出的,在各种示例中,该存储器空间可不意图用于实时的数据获取操作。
[0092]通常,设备存储器命令寻址非易失性设备储存存储器410,其用于存储针对初始化过程和运行操作的配置信息和控制信息,但是还可以寻址易失性设备配置存储器412。如上面所建议的,设备储存存储器可包括用户提供的信息和制造商存储的信息。用户提供的信息可包括,例如,在设备级和信道级的远程设备应用特定的信息,并且可包括信道参数信息、校准系数等等。制造商存储的信息可包括,例如,引导例程、设备特定的调整系数、其他的用户不可改变的信息等等。在各种示例中,设备储存存储器中的空间可以被保留,用于易失性设备和信道配置存储器的非易失性存储。
[0093]成功读取并写入存储器位置的能力,可以取决于远程设备402的硬件实现。在各种不例中,可以指定通过设备接口(例如,在设备接口 202中)的制造商的存储器访问时间,其对于从非易失性存储器中读取和写入非易失性存储器都是必要的。在一些示例中。非易失性设备储存存储器502的部分可被遮蔽/隐藏在可寻址的易失性影子存储器504中。然后,设备存储器命令可以访问该易失性存储器空间,该空间为非易失性空间的映像。
[0094]示例实现的远程设备402可支持大的或有限的易失性存储器空间,该空间可以被全部隐藏或者仅部分隐藏。在一些示例中,设备储存存储器500可被划分成存储器段,这些存储器段可被分成基本和扩展存储器502a、502b。在一些示例中,整个基本存储器可以被加载到可直接寻址的基本影子存储器504a中,但是只有扩展存储器段的子集可以被类似地加载到可直接寻址的扩展影子存储器504b中。因此,设备储存存储器可以适应更大的非易失性存储器(更受限的易失性存储器)。
[0095]2.1.设置/获得扩展存储器段指针
[0096]这些段指针命令可以设置或读取远程设备402中的多位设备存储器段指针。对于置位命令,一个或更多远程设备可以通过将扩展存储器502b的表示段的内容加载到其各自的扩展影子存储器504b,对该命令做出响应。然后,其他的设备存储器命令可以读取或者写入各自当前加载的段中。对于获得(读取)命令,远程设备可以用来自其扩展影子存储器的当前加载的段做出响应。
[0097]2.2.获得设备存储器指针
[0098]该设备存储器指针命令可以读取远程设备402中的多位设备存储器地址指针。一个或更多远程设备,可以用其各自的设备存储器地址指针(一个或更多)的当前位置响应该命令。
[0099]2.3.读取/写入设备存储器块
[0100]这些命令可用于从设备储存存储器410读取数据字块或者将数据字块写入设备储存存储器410。命令可包括指示存储器位置指针值的参数,并且读取/写入操作可以开始于由相应参数指示的设备储存存储器中的位置。命令可包括额外的数据参数,其可以告知远程设备402将从其设备储存存储器读取并在总线(例如,总线104)传输的数据字的数量,或者将从总线接收并写入其设备储存存储器的数据字的数量。远程设备可以读取/写入在经过的指针值处开始的数据,并且顺序读取/写入递增地址。
[0101]2.4.设置存储器保护模式
[0102]该命令可用于解锁或锁定设备储存存储器410的部分。该命令可包括参数,其包括适当的解锁码。
[0103]再次转到图5的示例,设备存储器读取命令可以访问影子存储器504,影子存储器504可以以线速度返回数据。在一些示例中,影子存储器的大小可小于非易失性设备储存存储器502的大小。在这些示例中,影子存储器可以定义可能来自非易失性设备储存存储器的设备存储器读取命令的范围和块大小。因此,基本存储器502a的内容可以通过从其在基本影子存储器504a中的影子直接读取而以线速度被读取。并且一旦扩展存储器502b的子集被加载到扩展影子存储器504b中,相应子集的内容也可以通过从扩展影子存储器直接读取而以线速度被读取。
[0104]在一个示例中,当远程设备通电或者复位时,扩展影子存储器504b可以被子集填充,该子集包括扩展存储器502b (在基本存储器502a之后)中的第一或更多段。为了将段的另一子集加载到扩展影子存储器中,可以利用设置段指针命令来用段的其他子集填充扩展影子存储器,该子集可以重写扩展影子存储器中的前一个子集。段填充时间可以定义远程设备在接收适当的设置段指针命令后填充扩展影子存储器需要的时间。一旦扩展影子存储器被填充,其可以以线速度被读取。
[0105]设备存储器写入命令可用于更新影子存储器504 (基本504a和扩展504b两者)中的数据,其在经过写入开始超时时间之后,可以开始返回至非易失性设备储存存储器502的写入循环。在一个示例中,写入开始超时时间可以在有效的写入命令完成之后开始。在一个示例中,写入开始超时时间可以在有效的设备储存存储器写入命令完成之后开始。当写入开始超时时间过去,并且远程设备没有接收另一个有效的写入命令(例如,不包括数据字)时,从影子存储器到非易失性设备储存存储器的写入可开始其写入循环。在一个示例中,数据可被写入影子存储器,直到所有要写入的数据被接收,并且超时时间表示数据接收已经停止。在各种示例中,一旦写入循环开始,将整个影子存储器写入非易失性设备储存存储器的尝试可以开始。在一个示例中,只有非易失性设备储存存储器502中的未受保护的(未锁定的)位置可以被写入,也许更近一步地,只有其内容已经改变的位置可以被写入。
[0106]在各种示例中,在经过接收设置段指针命令后的某个定义的延迟(例如,一个字时间的延迟)之后,远程设备可以开始将扩展存储器502b中的段的子集加载到扩展影子存储器504b中。但是,在一些示例中,在所定义的延迟内,设备写入命令可以紧跟设置段指针命令,该命令要被写入扩展影子存储器。在这些示例中,来自扩展存储器的加载可以被暂停,并且来自于设备写入命令的数据可以反而被写入扩展影子存储器中。然后,在写入开始超时时间到期之后,影子存储器504可以开始到非易失性设备储存存储器502的写入循环。
[0107]从影子存储器504传输数据至非易失性设备储存存储器502的最大写入循环时间(Max WCT),可以是写入开始超时时间(WSTT)、用字来衡量的写入页大小(WPS)、写入页循环时间(WPCT)和组成影子存储器的页数的函数,其中:
[0108]Max WCT=WSTT+ (WPSXWPCTX 影子存储器页数)
[0109]在各种示例中,写入循环时间可以基于改变的“未锁定”位置的数量而改进,其中未改变的位置可以不被写入,因此减少写入时间。在一个示例中,当设备储存存储器500在写入循环中时远程设备可以脱机,并且不能接收来自于网络总线(例如,总线104)的命令。
[0110]通常有益的是,尽最大可能防止存储器内容损坏,这可以通过任意数量的不同的方式实现。复杂的数据传输保护可以是强制性的,以确保数据传输是保证无差错的,和/或可以实现其他机制以减小存储器损坏的风险。例如,当存储器被写入以验证其正确性和/或检查来确定写入存储器的适当循环冗余校验(CRC)是否匹配为相同的存储器空间计算的CRC时,存储器可以被读回。
[0111]如上面所建议的,在各种示例中,非易失性设备储存存储器502中的受保护的存储器位置,或者其内容在影子存储器504中和非易失性设备储存存储器中相同的位置,可以被跳过并且因此没有被写入。然后,在写入循环期间,远程设备(例如,设备接口 202)可以首先检查非易失性设备储存存储器中位置的保护状态。当位置被锁定时,远程设备可跳过相应位置,而不写入相应位置。当位置未被锁定时,或者在不包括检查保护状态的其他示例中,远程设备可以首先读取来自于相应位置的数据,然后比较在相应位置的第一数据与在影子存储器的对应位置的第二数据。当第一数据不同于第二数据时,远程设备可以将影子存储器中的第二数据写入非易失性设备储存存储器中的相应位置。否则,当第一数据与第二数据相同时,远程设备可以跳过相应位置,而不将影子存储器中的第二数据写入非易失性设备储存存储器中的相应位置。在写入循环期间,以上可以发生在非易失性设备储存存储器中的每个位置。
[0112]根据本公开的示例实现,包括其主机计算机或总线控制器102、网络总线104、以及一个或更多远程设备106的网络系统100,可以通过各种方式执行如图4示出的操作。这些方式可包括单独的硬件或处在数据、程序指令、程序代码、计算机程序代码、计算机可读的程序代码、可执行的计算机可读程序代码等等(一般是“计算机程序”,例如,软件、固件等)指导下的硬件。如上面所解释的,在各种示例中,该硬件可包括ASIC、FPGA等等,其执行存储在非临时性计算机可读存储介质(如FIFO存储器404、表格存储器406、配置存储器408、设备储存存储器410和/或设备配置存储器412)中的程序指令。
[0113]更一般地,根据示例实现,任何合适的(一个或更多)计算机程序可以被更一般地从计算机可读存储介质(如FIFO存储器404、表格存储器406、配置存储器408、设备储存存储器410、设备配置存储器412)加载到计算机或其他可编程的装置(例如,ASIC、FPGA),以产生特定的机器,使得这种特定的机器成为用于实现本文所指定的一个或更多功能的装置。(一个或更多)计算机程序也可以存储在计算机可读存储介质中,其可以命令计算机、处理器或其他可编程的装置以特定方式工作,因此产生特定的机器或特定制造物/产品。存储在计算机可读存储介质中的指令可以生产一种产品,该产品成为用于实现本文所描述的功能的装置。程序代码指令可以从计算机可读存储介质取回,并且可以被加载到计算机、处理器或其他可编程的装置中,以配置计算机、处理器或其他可编程的装置来执行将要在其上执行或通过其执行的操作。
[0114]程序代码指令的取回、加载和执行可以按顺序执行,使得一次取回、加载并执行一个命令。在一些示例实施例中,取回、加载和/或执行可以并行执行,使得多个指令被一起取回、加载和/或执行。程序代码指令的执行可以产生计算机实现的过程,使得由计算机、处理器或其他可编程的装置执行的指令提供操作以实现本文所描述的功能。
[0115]通过处理器执行指令或计算机可读存储介质中的指令存储支持用于执行指定功能的操作的组合。也应理解,一个或更多功能以及功能的组合,可以通过特殊用途的基于硬件的计算机系统和/或执行指定功能的处理器实现,或通过特殊用途的硬件和程序代码指令的组合实现。
[0116]进一步地,本公开包括根据以下条款的实施例:
[0117]条款1.一种装置,其包括:
[0118]非易失性存储器(502),其经配置在多个位置存储数据;以及
[0119]设备接口(202),其耦合于所述非易失性存储器(502),并且包括易失性影子存储器(504),其经配置将所述非易失性存储器的所述多个位置的映像存储在所述易失性影子存储器(504)的对应的多个位置,
[0120]其中,所述设备接口(202)可以通过数字网络总线(104)耦合于总线控制器
(102),并且经配置通过所述网络总线(104)接收来自于所述总线控制器(102)的命令,并且响应所述命令,所述设备接口(202)经配置将来自于所述网络总线的数据写入所述非易失性存储器(502)中的位置,包括设备接口(202)经配置将所述数据写入所述易失性影子存储器(504)中的所述对应位置,并且然后,将来自于所述易失性影子存储器(504)中的所述对应位置的数据写入所述非易失性存储器(502)中的所述位置。
[0121]条款2.如条款I所述的装置,其中所述设备接口(202)经配置接收命令包括,经配置接收写入命令,并且
[0122]其中所述设备接口(202)经配置仅在未收到另一个写入命令的情况下经过超时时间之后,将来自于所述易失性影子存储器(504)的所述对应位置的数据写入所述非易失性存储器(502)中的所述位置。
[0123]条款3.如条款I所述的装置,其中所述设备接口(202)经配置执行从所述易失性影子存储器(504 )至所述非易失性存储器(502 )的写入循环,其包括所述设备接口( 202 )经配置将来自于所述易失性影子存储器(504)中的所述对应位置的所述数据写入所述非易失性存储器(502)中的所述位置,并且
[0124]其中所述写入循环进一步包括,所述设备接口(202)经配置检查所述非易失性存储器(502)中的所述位置的受保护或者不受保护的状态,所述设备接口(202)经配置而仅在所述位置是未受保护位置的情况下,将所述数据写入所述非易失性存储器(502)中的所述位置。
[0125]条款4.如条款3所述的装置,其中在所述易失性影子存储器(504)中的所述对应位置的所述数据是第二数据,并且
[0126]其中所述写入循环进一步包括,所述设备接口(202)经配置读取来自于所述非易失性存储器(502)中的所述未受保护的位置的第一数据,并且比较所述第一数据与所述第二数据,所述设备接口(202)经配置而仅当所述第一数据与所述第二数据不同的情况下,将所述第二数据写入所述非易失性存储器(502)中的所述未受保护位置。
[0127]条款5.如条款3所述的装置,其中所述设备接口(202)经配置执行所述写入循环,其包括所述非易失性存储器(502)中每个所述位置的所述检查和写入,所述易失性影子存储器(504)经配置将所述非易失性存储器(502)中每个所述位置的映像存储在所述易失性影子存储器(504)中的对应位置。
[0128]条款6.如条款I所述的装置,其中所述设备接口(202)经配置执行从所述易失性影子存储器(504 )至所述非易失性存储器(502 )的写入循环,其包括所述设备接口( 202 )经配置将来自于所述易失性影子存储器(504)中所述对应位置的所述数据写入所述非易失性存储器(502)中的所述位置,在所述易失性影子存储器(504)中的所述对应位置的所述数据是第二数据,并且
[0129]其中所述写入循环进一步包括,所述设备接口(202)经配置读取来自于所述非易失性存储器(502 )中的所述位置的第一数据,并且比较所述第一数据与所述第二数据,所述设备接口(202)经配置而仅在所述第一数据与所述第二数据不同的情况下,将所述第二数据写入所述非易失性存储器(502)中的所述位置。
[0130]条款7.如条款6所述的装置,其中所述设备接口(202)经配置执行所述写入循环,其包括所述非易失性存储器(502)的每个所述位置的所述读取、比较和写入,所述易失性影子存储器(504)经配置将所述非易失性存储器(502)的每个所述位置的映像存储在所述易失性影子存储器(504)的对应位置。
[0131]条款8.如条款I所述的装置,其中所述非易失性存储器(502)包括基本存储器(502a)和扩展存储器(502b),并且所述易失性影子存储器(504)包括基本影子存储器(504a)和扩展影子存储器(504b),并且
[0132]其中所述基本影子存储器(504a)经配置存储所述基本存储器(502a)的映像,并且所述扩展影子存储器(504b)经配置存储所述扩展存储器(502b)的唯一可选子集的映像。
[0133]条款9.一种方法,其包括:
[0134]在远程设备(106)通过数字网络总线(104)接收来自于总线控制器(102)的命令,所述远程设备(106)包括非易失性存储器(502),其经配置在多个位置存储数据,和易失性影子存储器(504),其经配置将所述非易失性存储器(502)中的所述多个位置的映像存储在所述易失性影子存储器(504)中的对应的多个位置;并且响应于所述命令的接收,
[0135]将来自于所述网络总线(104)的数据写入所述非易失性存储器(502)中的位置,其包括将所述数据写入所述易失性影子存储器(504)中的所述对应位置,并且然后,将来自于所述易失性影子存储器(504)中的所述对应位置的所述数据写入所述非易失性存储器(502)中的所述位置。
[0136]条款10.如条款9所述的方法,其中接收命令包括接收写入命令,并且
[0137]其中写入来自所述对应位置的数据包括,仅在未收到另一个写入命令的情况下经过超时时间之后,将来自于所述易失性影子存储器(504)的所述对应位置的数据写入所述非易失性存储器(502)中的所述位置。
[0138]条款11.如条款9所述的方法,其进一步包括:
[0139]执行从所述易失性影子存储器(504)至所述非易失性存储器(502)的写入循环,其包括将来自于所述易失性影子存储器(504)中的所述对应位置的所述数据,写入所述非易失性存储器(502)中的所述位置,并且
[0140]其中所述写入循环进一步包括,检查所述非易失性存储器(502)中所述位置的受保护或者不受保护的状态,仅在所述位置是未受保护位置的情况下,所述数据被写入所述非易失性存储器(502)中的所述位置。
[0141]条款12.如条款11所述的方法,其中在所述易失性影子存储器(504)中的所述对应位置的所述数据是第二数据,并且
[0142]其中所述写入循环进一步包括,读取来自于所述非易失性存储器(502)中的所述未受保护的位置的第一数据,并且比较所述第一数据与所述第二数据,仅在所述第一数据与所述第二数据不同的情况下,所述第二数据被写入所述非易失性存储器(502)中的所述未受保护的位置。
[0143]条款13.如条款11所述的方法,其中所述写入循环包括对所述非易失性存储器(502)的每个所述位置执行所述检查和写入,所述易失性影子存储器(504)经配置在所述易失性影子存储器(504)的对应位置中存储所述非易失性存储器(502)的每个所述位置的映像。
[0144]条款14.如条款9所述的方法,其进一步包括:
[0145]执行从所述易失性影子存储器(504)至所述非易失性存储器(502)的写入循环,其包括将来自于所述易失性影子存储器(504)中所述对应位置的所述数据写入所述非易失性存储器(502)中的所述位置,在所述易失性影子存储器(504)中的所述对应位置的所述数据是第二数据,并且
[0146]其中所述写入循环进一步包括,读取来自于所述非易失性存储器(502)中的所述位置的第一数据,并且比较所述第一数据与所述第二数据,仅当所述第一数据与所述第二数据不同时,所述第二数据被写入所述非易失性存储器(502)中的所述位置。
[0147]条款15.如条款14所述的方法,其中所述写入循环包括对所述非易失性存储器(502)的每个所述位置执行所述读取、比较和写入,所述易失性影子存储器(504)经配置在所述易失性影子存储器(504)的对应位置中存储所述非易失性存储器(502)的每个所述位置的映像。
[0148]条款16.如条款9所述的方法,其中所述非易失性存储器(502)包括基本存储器(502a)和扩展存储器(502b),并且所述易失性影子存储器(504)包括基本影子存储器(504a)和扩展影子存储器(504b),并且
[0149]其中所述基本影子存储器(504a)经配置存储所述基本存储器(502a)的映像,并且所述扩展影子存储器(504b)经配置存储所述扩展存储器(502b)的唯一可选子集的映像。
[0150]获益于前面的描述和相关附图呈现的教导的本领域技术人员将会想到在本文中阐述的本公开的许多修改和其他实现。例如,本文所阐述的本公开的示例实现可以代替其他映像处理技术使用,或者作为其他映像处理技术的附加,其他映像处理技术如为超分辨率、后处理图像增强等等。因此,应理解,本公开不限制于所公开的特定实现,并且修改和其他实施旨在包括在所附权利要求的范围内。另外,尽管前面的描述和相关附图描述了在元件和/或功能的某些示例组合背景下的示例实现,应理解,通过替代实现可以提供元件和/或功能的不同组合,而不脱离所附权利要求的范围。关于此点,例如,与上文明确描述的内容不同的元件和/或功能的组合也被认为是可被阐述在某些所附权利要求书中。尽管本文中采用了特定的词语,它们仅用于通用的和描述性的意义,而不是用于限制的目的。
【权利要求】
1.一种装置,其包括: 非易失性存储器(502),其经配置在多个位置存储数据;以及 设备接口(202),其耦合于所述非易失性存储器(502),并且包括易失性影子存储器(504),该易失性影子存储器经配置将所述非易失性存储器(502)的所述多个位置的映像存储在所述易失性影子存储器(504)的对应的多个位置, 其中,所述设备接口(202)通过数字网络总线(104)可耦合于总线控制器(102),并且经配置通过所述网络总线(104)接收来自于所述总线控制器(102)的命令,并且响应于所述命令,所述设备接口(202)经配置将来自于所述网络总线(104)的数据写入所述非易失性存储器(502)中的位置,其包括设备接口(202)经配置将所述数据写入所述易失性影子存储器(504)中的对应位置,并且然后,将来自于所述易失性影子存储器(504)中的所述对应位置的数据写入所述非易失性存储器(502)中的所述位置。
2.如权利要求1所述的装置,其中所述设备接口(202)经配置接收命令包括,经配置接收写入命令,并且 其中所述设备接口(202)经配置仅在未收到另一个写入命令的情况下经过超时时间之后,将来自于所述易失性影子存储器(504)的所述对应位置的数据写入所述非易失性存储器(502)中的所述位置。
3.如权利要求1所述的装置,其中所述设备接口(202)经配置执行从所述易失性影子存储器(504 )至所述非易失性存储器(502 )的写入循环,其包括所述设备接口( 202 )经配置将来自于所述易失性影子存储器(504)中的所述对应位置的所述数据写入所述非易失性存储器(502)中的所述位置, 并且 其中所述写入循环进一步包括,所述设备接口(202)经配置检查所述非易失性存储器(502 )中的所述位置的受保护或者不受保护的状态,所述设备接口( 202 )经配置而仅在所述位置是未受保护位置的情况下,将所述数据写入所述非易失性存储器(502)中的所述位置。
4.如权利要求3所述的装置,其中在所述易失性影子存储器(504)中的所述对应位置的所述数据是第二数据,并且 其中所述写入循环进一步包括,所述设备接口(202)经配置读取来自于所述非易失性存储器(502 )中的所述未受保护位置的第一数据,并且比较所述第一数据与所述第二数据,所述设备接口(202)经配置而仅当所述第一数据与所述第二数据不同的情况下,将所述第二数据写入所述非易失性存储器(502)中的所述未受保护位置。
5.如权利要求3所述的装置,其中所述设备接口(202)经配置执行所述写入循环,其包括所述非易失性存储器(502)中每个所述位置的所述检查和写入,所述易失性影子存储器(504)经配置将所述非易失性存储器(502)中每个所述位置的映像存储在所述易失性影子存储器(504)中的对应位置。
6.如权利要求1所述的装置,其中所述设备接口(202)经配置执行从所述易失性影子存储器(504)至所述非易失性存储器(502)的写入循环,其包括,所述设备接口(202)经配置将来自于所述易失性影子存储器(504)中所述对应位置的所述数据写入所述非易失性存储器(502)中的所述位置,在所述易失性影子存储器(504)中的所述对应位置的所述数据是第二数据,并且 其中所述写入循环进一步包括,所述设备接口(202)经配置读取来自于所述非易失性存储器(502 )中的所述位置的第一数据,并且比较所述第一数据与所述第二数据,所述设备接口(202)经配置而仅在所述第一数据与所述第二数据不同的情况下,将所述第二数据写入所述非易失性存储器(502)中的所述位置。
7.如权利要求6所述的装置,其中所述设备接口(202)经配置执行所述写入循环,其包括所述非易失性存储器(502)的每个所述位置的所述读取、比较和写入,所述易失性影子存储器(504)经配置将所述非易失性存储器(502)的每个所述位置的映像存储在所述易失性影子存储器(504)的对应位置。
8.如权利要求1所述的装置,其中所述非易失性存储器(502)包括基本存储器(502a)和扩展存储器(502b ),并且所述易失性影子存储器(504 )包括基本影子存储器(504a)和扩展影子存储器(504b),并且 其中所述基本影子存储器(504a)经配置存储所述基本存储器(502a)的映像,并且所述扩展影子存储器(504b)经配置存储所述扩展存储器(502b)的唯一可选子集的映像。
9.一种方法,其包括: 在远程设备(106)通过数字网络总线(104)接收来自于总线控制器(102)的命令,所述远程设备(106)包括经配置在多个位置存储数据的非易失性存储器(502),和易失性影子存储器(504),其经配置将所述非易失性存储器(502)中的所述多个位置的映像存储在所述易失性影子存储器(504)中的对应的多个位置;并且响应于所述命令的接收, 将来自于所述网络总线(104)的数据写入所述非易失性存储器(502)中的位置,包括将所述数据写入所述易失性影子存储器(504)中的对应位置,并且然后,将来自于所述易失性影子存储器(504)中的 所述对应位置的所述数据写入所述非易失性存储器(502)中的所述位置。
10.如权利要求9所述的方法,其中接收命令包括接收写入命令,并且 其中写入来自所述对应位置的数据包括仅在未收到另一个写入命令的情况下经过超时时间之后,将来自于所述易失性影子存储器(504)的所述对应位置的数据写入所述非易失性存储器(502)中的所述位置。
11.如权利要求9所述的方法,其进一步包括: 执行从所述易失性影子存储器(504)至所述非易失性存储器(502)的写入循环,其包括将来自于所述易失性影子存储器(504)中的所述对应位置的所述数据写入所述非易失性存储器(502)中的所述位置,并且 其中所述写入循环进一步包括,检查所述非易失性存储器(502)中所述位置的受保护或者不受保护的状态,仅在所述位置是未受保护位置的情况下,将所述数据写入所述非易失性存储器(502)中的所述位置。
12.如权利要求11所述的方法,其中在所述易失性影子存储器(504)中的所述对应位置的所述数据是第二数据,并且 其中所述写入循环进一步包括,读取来自于所述非易失性存储器(502)中的所述未受保护位置的第一数据,并且比较所述第一数据与所述第二数据,仅在所述第一数据与所述第二数据不同的情况下,将所述第二数据写入所述非易失性存储器(502)中的所述未受保护位置。
13.如权利要求11所述的方法,其中所述写入循环包括对所述非易失性存储器(502)的每个所述位置执行所述检查和写入,所述易失性影子存储器(504)经配置在所述易失性影子存储器(504)的对应位置中存储所述非易失性存储器(502)的每个所述位置的映像。
14.如权利要求9所述的方法,其进一步包括: 执行从所述易失性影子存储器(504)至所述非易失性存储器(502)的写入循环,包括将来自于所述易失性影子存储器(504)中所述对应位置的所述数据写入所述非易失性存储器(502)中的所述位置,在所述易失性影子存储器(504)中的所述对应位置的所述数据是第二数据,并且 其中所述写入循环进一步包括,读取来自于所述非易失性存储器(502)中的所述位置的第一数据,并且比较所述第一数据与所述第二数据,仅在所述第一数据与所述第二数据不同的情况下,所述第二数据被写入所述非易失性存储器(502 )中的所述位置。
15.如权利要求9所述的方法,其中所述非易失性存储器(502)包括基本存储器(502a)和扩展存储器(502b ),并且所述易失性影子存储器(504 )包括基本影子存储器(504a)和扩展影子存储器(504b),并且 其中所述基本影子存储器(504a)经配置存储所述基本存储器(502a)的映像,并且所述扩展影子存储器(504b) 经配置存储所述扩展存储器(502b)的唯一可选子集的映像。
【文档编号】G06F3/06GK104050113SQ201410098790
【公开日】2014年9月17日 申请日期:2014年3月17日 优先权日:2013年3月15日
【发明者】P·J·埃勒布罗克, R·N·扎特沃, J·P·维克曼 申请人:波音公司