CN108139870A - 模块化设备和操作方法 - Google Patents

模块化设备和操作方法 Download PDF

Info

Publication number
CN108139870A
CN108139870A CN201680058846.8A CN201680058846A CN108139870A CN 108139870 A CN108139870 A CN 108139870A CN 201680058846 A CN201680058846 A CN 201680058846A CN 108139870 A CN108139870 A CN 108139870A
Authority
CN
China
Prior art keywords
tile
data
equipment
control
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680058846.8A
Other languages
English (en)
Other versions
CN108139870B (zh
Inventor
蒂莫西·马修·伯克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aoki Systems
Arch Systems LLC
Original Assignee
Aoki Systems
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aoki Systems filed Critical Aoki Systems
Publication of CN108139870A publication Critical patent/CN108139870A/zh
Application granted granted Critical
Publication of CN108139870B publication Critical patent/CN108139870B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/08Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
    • G06F5/085Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register in which the data is recirculated
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C21/00Digital stores in which the information circulates continuously
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/02Constructional features of telephone sets
    • H04M1/0202Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets
    • H04M1/0254Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets comprising one or a plurality of mechanically detachable modules

Abstract

一种模块化系统,包括控制瓦片和一组功能瓦片,该控制瓦片存储存储结构、初始化文件和操作指令。用于操作使用模块化系统制造的定制设备的方法包括:在设备初始化时将用于每个瓦片的操作设置发送到相应的瓦片;基于操作设置操作每个瓦片;将来自每个瓦片的输出写入存储结构;针对触发事件监测存储结构内的数据流;响应于触发事件的发生从存储结构读取数据;以及根据通过操作指令指定的处理功能来处理读取的数据。

Description

模块化设备和操作方法
相关申请的交叉引用
本申请要求于2015年10月09日提交的美国临时申请第62/239,446号和于2016年09月06日提交的美国临时申请第62/383,894号的权益,以上申请全部内容通过引用并入本文。
技术领域
本发明总体上涉及模块化设备领域,并且更具体地涉及一种用于在模块化设备领域中进行模块化设备操作的新的且有用的系统和方法。
附图简述
图1是模块化系统的示意性表示。
图2A-2D分别是功能瓦片(functionality tile)的第一、第二、第三和第四示例的示意性表示。
图3是示例定制设备的示意性表示。
图4是设备操作逻辑的示例的示意性表示。
图5是使用图4的设备操作逻辑和所得存储结构的数据流生成的示例的示意性表示。
图6是用流助步器(stream walker)从存储结构读取出数据的示意性表示。
图7是方法的示意性表示;以及
图8是设备操作的示例的示意性表示,包括根据设备操作逻辑操作瓦片和将瓦片输出存储在存储结构中。
图9是设备操作的示例的示意性表示,包括记录超过存储结构数据大小限制的测量结果和发送所述测量结果。
优选实施方式的描述
本发明的优选实施方式的以下描述并非旨在将本发明限制于这些优选实施方式,而是旨在使本领域的任何技术人员能够制造并且使用本发明。
1.概要
如图1所示,模块化系统10包括:一组功能瓦片100和存储存储结构300、初始化文件400和操作指令500的控制瓦片200。模块化系统10提供了一种易于可重新配置的系统,该易于可重新配置的系统能够使用同一组构建块来创建定制设备,每个定制设备具有大不相同的功能。例如,功能瓦片的第一子集可以被组合以构建远程监测井的水输出的流量监测设备,而功能瓦片的第二子集可以被组合以构建安全相机。操作方法提供了跨越构建块的标准化通信协议和控制范例,使得可以以任何方式使用任何数量的构建块。
该系统和方法优选地被设备供应商使用来创建定制设备20,其示例在图3中被示出。定制设备优选地是周期性地将一些或全部传感器测量结果或派生数据(derivatorydata)发送到远程计算系统(例如,服务器系统)的远程监测设备。然而,定制设备可以是任何其他合适的设备。
2.益处
该系统和方法可以赋予几个益处。
首先,在一些实施方式中,每个瓦片是自给自足的(self-contained)设备。具体来说,每个瓦片都包括运行定义瓦片的操作的一组独立代码的独立处理系统。与瓦片的设备交互可以限制于一组标准化的瓦片接口类型(例如,配置变量和远程处理调用),其中每个瓦片可以以任何内部方式(例如,使用任何方法、机器语言等)解释标准输入,只要它以标准化的输出形式输出瓦片输出即可。通过将瓦片的功能与瓦片的内部编程分离,该系统和方法使瓦片能够跨越符合标准化接口范例的任何定制设备进行移植。这种分离还允许不同的瓦片制造商独立开发他们的瓦片,而不需要关于共享的语法或库的合作。
其次,该系统和方法提供了简单的设备逻辑创建过程,其将不同的瓦片的功能与处理功能链接在一起以创建用于所得到的定制设备的操作逻辑(传感器图)。在一些实施方式中,操作逻辑以图形数据结构的形式存储在定制设备上(例如,控制瓦片中)。当处理要求不改变数据集大小时,图形数据结构在模块化系统中可以是特别有用的,其使任意数量的瓦片能够接合到中央控制系统(例如,控制瓦片),因为处理要求不会随着数据集大小而缩放。换句话说,图形数据结构允许控制瓦片的处理要求对连接到控制瓦片的功能瓦片的数量是基本上不可知论的。图形数据结构还使得能够容易地将节点(例如,瓦片、处理功能等)添加和移除到设备,而不需要对设备逻辑的其余部分进行代码改变。
此外,将操作逻辑构造为图形数据结构可以使系统操作规范(例如,功率要求、运行时间要求、存储器要求等)能够容易地自动确定,特别是当每个瓦片的操作要求(例如静态功率消耗、运行瓦片功能所需的功率、执行瓦片功能的时间、存储瓦片输出所需的设备存储器等)是已知的时候。特别地,可以在逐个边的基础上分析图形数据结构以估计虚拟设备的资源需求,其中估计的需求可以用于确定用户为该设备选择的组件(例如,电源和控制瓦片)是否可以支持操作逻辑描述的功能。当所选资源被确定为不足或者在接近其能力的极限操作时,可以向用户通知缺陷,可以推荐在设备中包括次级资源(例如,具有更高的能力等),可以推荐替代操作逻辑,或者可以自动采取其他动作。由于这都可以基于虚拟计划阶段的图形数据结构和瓦片规范来完成,因此这允许在构建和测试任何物理设备原型之前确定故障排除和设备规范。这反过来使更快的设备开发时间成为可能。
第三,该系统和方法的实施方式基于设备操作逻辑利用单个集中控制系统,其既管理瓦片之间的交互又执行大部分设备操作。这允许不同的瓦片容易从设备进行添加或移除,因为唯一需要重新编程的组件是集中控制系统。这也可以允许定制设备是现场可编程的(例如,被原地更新或完全重新编程)。此外,该系统和方法可以利用控制所有瓦片的初始化的集中初始化文件。集中初始化信息可以在需要对设备进行改变时使全部数量的瓦片同时重新配置,而不是单独地重新配置每个瓦片。这也可以允许定制设备是现场可编程的(例如,被原地更新或完全重新编程)。
第四,该系统和方法的实施方式利用存储来自所有瓦片和处理功能的输出的单个集中输出缓冲器。集中缓冲器为所有输出创建一个中央存储库,使得设备逻辑中的下游功能和瓦片不需要知道源瓦片地址来检索瓦片输出。将输出聚合到单个缓冲器中允许系统根据需要动态地将存储器重新分配给不同的瓦片,这去除了对划分存储器和将特定的存储器分区分派给不同的瓦片的需要。在一些变型中,可以将所有瓦片输出写入缓冲器,而不管哪些下游过程使用瓦片。这允许下游逻辑具有最大的灵活性。如果下游逻辑中没有过程使用瓦片输出,它就只能被忽略并最终被覆盖(例如,当缓冲器是循环缓冲器时)。在一些变型中,下游过程具有仅读取缓冲器的能力(例如,下游过程不能消耗或从缓冲器删除瓦片输出),这允许相同瓦片输出保持可用于可能在不同时间需要瓦片输出的多个下游过程。
第五,该系统和方法的实施方式利用具有固定大小的标准数据输出格式。这实现了集中存储器管理,使得大测量结果(例如,图像、音频文件)不消耗有限的可用存储器。在一些变型中,该系统和方法可以通过将测量结果存储在瓦片处并将测量结果参考存储在集中缓冲器中来处理大测量结果。
然而,该系统和方法可以赋予其他益处。
3.系统
模块化系统10包括:一组功能瓦片100和存储存储结构300、初始化文件400和操作指令500的控制瓦片200。功能瓦片的不同组合可以容易被组合来创建多个定制设备20。
功能瓦片的组合优选地由用户(例如,设备供应商)选择,但可以被自动确定(例如,其中用户选择期望的设备功能或类型)或以其他方式确定。设备内的每个瓦片优选与其他瓦片(例如,物理上或概念上)分离和/或离散,但可选地可以与一个或更多个瓦片合并。在第一示例中,定制设备包括通过公共总线连接并安装到公共板的多个物理上离散的瓦片。在第二示例中,定制设备包括在同一电路板上制造的多个概念上离散的子电路,其中每个子电路具有与物理上离散的瓦片相同的组件和/或功能。然而,定制设备和瓦片可以以其他方式进行配置。
所得到的定制设备可以与远程计算系统(例如,远程服务器系统、远程用户设备等)、外部设备(例如,泵、致动器、外部传感器等)或任何其他合适的外部系统一起使用。
系统10的功能瓦片100(瓦片)用于执行预定功能,并且优选地用作(例如,一旦提供电力)能够执行所述功能的基本上独立的设备。预定功能的示例可以包括:感测(例如,采样图像、环境温度、环境压力、流量率等)、通信、致动或任何其他合适的功能。该瓦片优选由瓦片制造商设计、编程和/或制造,其中,不同的瓦片可以由相同或不同的瓦片制造商制造。在一个变型中,可以使用不同的(例如,不兼容的)编程库或语言对在相同的定制设备内的不同瓦片进行编程。然而,在相同的定制设备内的不同瓦片可以共享编程结构或以其他方式相关联。
每个功能瓦片100包括有源组件和处理系统110。每个功能瓦片可以可选地包括通信系统、板上存储器或任何其他合适的组件。
瓦片的有源组件提供瓦片的预定功能。有源组件可以是输入装置(例如,如图2A和2B所示的传感器120)、输出装置(例如,如图2C所示的致动器140、马达控制器、如图2D所示的通信系统130)或者可以是任何其他合适的组件。输入装置的示例包括:相机、麦克风、加速度计、陀螺仪、IMU、磁力计、高度计、触摸屏、光学传感器、压力传感器、流量传感器、霍尔效应传感器、电压表、GPS或任何其他合适的输入装置。输出装置的示例包括:通信无线电,例如,WiFi、蓝牙、蜂窝、NFC或Zigbee无线电;制动器,例如,阀门、活塞或马达;扬声器;加热元件;电磁波发射元件(例如,LED);或任何其他合适的输出装置。每个瓦片可以包括一个或更多个相同或不同类型的有源组件。例如,成像瓦片可以包括相机(例如,CMOS阵列)、蓝牙无线电和通信总线控制模块。
瓦片100的处理系统110用于控制瓦片操作,包括有源组件操作(例如,信号采样)。处理系统可以可选地控制瓦片与外部组件(诸如控制瓦片和/或其他瓦片)的交互。在一个变型中,处理系统从次级瓦片(例如,控制瓦片)接收远程处理调用,确定与远程处理调用相关联的内部功能(例如,一组操作指令、代码块等),以及执行远程处理调用引用的内部功能。处理系统优选地包括一个或更多个处理器(例如,微处理器、CPU、GPU等),并且可以可选地包括处理存储器(例如,诸如RAM的易失性存储器、诸如闪存的非易失性存储器等)。处理存储器可以存储瓦片操作指令或逻辑(例如,远程处理调用和相关联的功能)、瓦片操作设置(例如,配置变量值)或其他瓦片操作数据。处理系统优选地针对每个瓦片,并且优选地可操作地连接到瓦片的每个有源组件。每个瓦片可以包括一个或更多个处理系统。
瓦片的板上存储器150用于存储由有源组件产生或消耗的数据。板上存储器的示例包括非易失性存储器(例如闪存)、易失性存储器(例如RAM)或任何其他合适的计算机存储器。产生或使用高于(例如,超过)阈值数据大小的数据格式的瓦片优选地包括辅助板上存储器,而产生或使用低于阈值数据大小的数据格式的瓦片优选地不包括辅助板上存储器。例如,对高于阈值大小的测量结果(例如,图像)进行采样的成像瓦片和需要对大量数据进行缓存的通信瓦片都可以包括板上存储器,而对低于阈值大小的温度测量结果进行采样的温度瓦片可以没有板上存储器。阈值大小可以通过存储结构协议设置,并且可以是可写入存储结构内的每个数据条目的大小(例如,32位、64位)。然而,可以以其他方式设置阈值大小。在操作中,包括板上存储器的瓦片可以将产生的数据存储在板上存储器上,并且将满足数据大小阈值的瓦片输出写入设备存储器(例如中央瓦片存储器)。由这样的瓦片产生的瓦片输出可以包括对存储在板上存储器上的数据的引用,诸如用于瓦片的标识符、用于数据的标识符(例如瓦片存储器上的数据地址)、用于远程处理调用以检索数据(例如,数据返回调用)的RPC标识符或任何其他合适的引用信息。当需要使用数据时,可以基于瓦片输出信息从瓦片存储器中检索数据(例如,通过控制瓦片、通信瓦片等)。然而,所有瓦片都可以包括或不包括板上存储器。板上存储器可以大于设备存储器、小于设备存储器或以其他方式与设备存储器相关联。
瓦片的通信模块160用于与外部组件收发(例如,发送和/或接收)数据。例如,通信模块可以与控制瓦片、与同一设备内的其他瓦片、与远程计算系统或与任何其他合适的组件进行通信。通信模块优选地将数据广播到公共通信信道(例如,总线、局部无线网络等),但是可以可选地通过专用信道将数据发送到特定端点或以其他方式发送数据。通信模块优选地从公共通信信道读取寻址到相应瓦片的数据,但是可以可选地从外部组件请求数据或以其他方式接收数据。通信模块可以是有线的或无线的。通信模块可以支持短程协议或远程协议。通信模块的示例包括:通信总线模块(例如,被配置为连接到通信总线)、WiFi无线电、Zigbee无线电、蜂窝无线电、NFC无线电、蓝牙无线电或任何其他合适的通信系统。通信模块优选连接到处理系统,但可以附加地或可选地连接到任何其他合适的组件。每个瓦片可以包括一个或更多个通信模块。在一个示例中,所有瓦片可以包括通信总线模块和短程或低功率协议无线电(例如,蓝牙)。然而,瓦片可以包括任何合适数量的上述通信模块的任何合适的组合。
然而,功能瓦片可以可选地包括电源管理系统、时钟或任何其他合适的组件。
每个功能瓦片优选地与一组瓦片接口相关联,该一组瓦片接口使得外部组件能够与瓦片交互。瓦片接口可以包括配置变量、远程处理调用或任何其他合适的瓦片接口。
瓦片接口的配置变量优选地是在瓦片操作中使用的变量,诸如单位、采样频率或其他变量,但可以是任何其他合适的变量。每个瓦片可以包括所需变量,所需变量必须在瓦片操作之前进行设置(例如,所需的变量、关键变量),并且可以可选地包括不需要为瓦片操作设置的可选变量。所需变量可以附加地或可选地进一步细分为设备特定的变量和默认变量,设备特定的变量必须总是在瓦片操作之前从控制瓦片(例如,从初始化文件)被接收到,并且默认变量的默认值(由控制瓦片或瓦片本身存储的)都可以被使用。然而,所需变量或默认变量可以以其他方式进行细分,并且所需变量或默认变量的值可以以其他方式通过任何合适的处理系统来确定。然而,瓦片可以使用任何其他合适的配置变量组。
瓦片接口的远程处理调用(RPC)用于产生具有值的瓦片输出。RPC的示例包括:数据采样调用(例如,记录图像、采样温度、操作有源组件)、数据传输调用、瓦片子组件使用调用或其他调用。远程处理调用可以与瓦片存储器存储的瓦片功能(例如,执行指令、代码块)相关联,其中当瓦片接收到远程处理调用时瓦片功能被执行(例如,通过瓦片处理器)。远程处理调用可以可选地接受由请求组件(例如,控制瓦片)设置的参数,其中参数值可以在执行相关联的功能时被瓦片使用。然而,可以以其他方式使用远程处理调用。与远程处理调用相关联的功能优选地在远程处理调用在瓦片处被接收时执行,但是可以可选地自动执行(例如,以由配置变量设置的预定频率)或者在任何其他适当的时间执行。
每个远程处理调用可以可选地与已知的执行持续时间(或范围)、已知的功耗或范围(例如,执行调用所需的功率消耗量或电流量)、已知的存储器要求或范围(例如,存储RPC输出将需要的设备存储器的量)或其他RPC操作参数值相关联。瓦片可以附加地与已知的启动或初始化持续时间、静态功率消耗(例如,初始化瓦片的功率量、将瓦片保持在待机状态每单位时间消耗的功率量)或者其他瓦片操作参数值相关联。这些操作参数值可以由制造商设置,通过瓦片测试确定或以其他方式确定。
可用的瓦片接口(例如,可以被配置的配置变量、可以被调用的RPC)优选由瓦片制造商预先确定,但是可以可选地是用户指定的或以其他方式确定的。可用的瓦片接口优选地是固定的(例如,其中终端用户不能改变用于瓦片的指定瓦片接口),但是可以可选地是可调整的。瓦片接口的值(例如,配置变量的值、馈送给RPC的参数值)优选是可调节的,并且可以由用户手动设置(例如,通过初始化文件)、自动确定(例如,通过控制瓦片、基于设备操作逻辑等)或以其他方式确定。响应于在编程环境内用户将相应的瓦片添加到虚拟设备,可用瓦片接口的虚拟表示可以在编程环境内自动进行填充,或以其他方式进行使用。
在第一具体示例中,成像瓦片可以包括:成像系统(例如相机)、通信总线模块、板上存储器以及控制成像系统、通信总线模块和板上存储器操作的处理系统。成像瓦片可以与一组配置变量相关联,该配置变量包括:图像大小、采样频率、开始时间戳和/或其他变量。成像瓦片可以与一组远程处理调用相关联,该远程处理调用包括:采样图像、发送图像、比较序列图像和/或其他功能。在一个示例中,成像瓦片操作可以包括:在成像瓦片处接收采样RPC,响应于采样RPC接收而利用图像传感器对图像进行采样,将采样图像存储在板上存储器中,以及将包括对成像瓦片上的采样图像的引用的瓦片输出(例如,包括成像瓦片标识符或地址,发送图像的RPC标识符以及板上存储器上的图像地址)传输(例如,至通信总线)到控制系统。
在第二具体示例中,温度监测瓦片可以包括:温度传感器(例如,热敏电阻)、通信总线模块和控制温度传感器和通信总线模块操作的处理系统。温度监测瓦片可以与一组配置变量相关联,该配置变量包括:温度单位(例如,摄氏度或华氏度)、采样频率和/或其他变量。温度监测瓦片可以与一组远程处理调用相关联,该远程处理调用包括:对温度测量结果进行采样和/或其他功能。在一个示例中,温度监测瓦片操作可以包括:在温度监测瓦片处接收采样RPC,响应于采样RPC接收而利用温度传感器对温度进行采样,以及将包括温度值的瓦片输出传输(例如,至通信总线)到控制系统。
在第三具体示例中,通信瓦片可以包括:无线通信系统(例如,蜂窝系统)、通信总线模块和控制无线通信系统和通信总线模块操作的处理系统。通信瓦片可以附加地包括缓存用于后续传输的数据的板上存储器。通信瓦片可以与一组配置变量相关联,该配置变量包括:远程端点地址、安全密钥值和/或其他变量。通信瓦片可以与一组远程处理调用相关联,该远程处理调用包括:数据传输(例如,其中对数据的引用和/或数据存储的位置可以作为RPC参数被接收)和/或其他功能。在一个示例中,通信瓦片操作可以包括:在通信瓦片处接收传输RPC,响应于采样RPC接收来检索所引用的数据,可选地在板上存储器中缓存所检索的数据,以及将所检索的数据传输到由远程端点地址所标识的端点。
模块化系统的控制瓦片200用于控制设备操作。控制瓦片优选用作协调设备子组件的操作(例如,功能瓦片操作)的集中式控制系统,但是可以可选地用作下游处理系统或执行任何其他合适的功能。在一个变型中,控制瓦片可以通过调用根据设备操作逻辑指定的连接的功能瓦片(或其自身)上的RPC、管理写入到存储结构的瓦片输出、监测关于触发事件的存储结构、执行流助步器以从存储结构读取值以及执行与在设备操作逻辑中的触发事件相关联的处理功能来执行设备操作逻辑。每个设备优选地包括单个控制瓦片,但是可以可选地包括多个控制瓦片。在后一种情况下,每个控制瓦片可以控制单独的一组功能瓦片,或控制重叠的功能瓦片组。该系统可以包括单个控制瓦片类型或者包括多个控制瓦片类型。在后一种情况下,控制瓦片可能因处理能力、板上存储器的量而变化或以其他方式变化。选择用于包括在设备中的控制瓦片可以由用户确定(例如,手动选择),基于设备功能瓦片和设备操作逻辑(例如,基于所计算的所需的资源)自动确定,或以其他方式确定。
控制瓦片可以包括处理系统210和板上存储器220。控制瓦片200可以附加地包括时钟、通信模块230、传感器或任何其他合适的组件。
控制瓦片的处理系统210用于执行上面讨论的控制瓦片功能。控制瓦片处理系统可以与功能瓦片处理系统相同(例如,具有相同的规范、相同的芯片线或类型等),可以功能更强大(例如,具有更快的时钟速率,具有更多的核芯,具有更多的处理能力等),可以功能更弱,或者以其他方式与功能瓦片处理系统相关联。处理系统的示例包括CPU(例如,单核、多核等)、GPU、微处理器或任何其他合适的处理系统。控制瓦片优选包括单个处理系统,但是可以可选地包括多个,其中可以将任务预先分派给不同的控制瓦片或自动分配(例如,基于可用资源)。
控制瓦片的板上存储器220充当整个设备的存储器。特别是,板上存储器用作所有瓦片输出的中央存储库。然而,板上存储器可以存储瓦片输出的子集或执行任何其他合适的功能。控制瓦片的存储器的大小优选地被限制,并且可以小于功能瓦片的总的存储器占用空间,小于或少于存储在连接到远程计算系统之间的时间间隔(如,24小时)内由任何瓦片组合产生的所有读数所需的存储量的预定倍数。瓦片的存储器占用空间可以是存储在预定时间段(例如,24小时、在调度的无线传输事件之间的持续时间等)内由瓦片产生的所有数据所需的存储量、在运行(例如,用于功能执行、测量结果存储等)时瓦片使用或引用的存储量,或以其他方式定义。总的存储器占用空间优选地是在设备中的所有瓦片的总存储器占用空间(例如,存储在预定时间内由所有瓦片产生的所有数据所需的存储量等),但是可选地可以是瓦片子集的总存储器占用空间,或以其他方式定义。然而,板上存储器可以以其他方式定义大小。板上存储器的大小可以是固定的(例如,对于所有设备是标准的),由设备操作逻辑和瓦片或RPC操作要求确定,或以其他方式确定。
板上存储器220优选地是非易失性的(例如,闪存),但是可以可选地是易失性的(例如,RAM)。非易失性存储器优选地存储初始化文件、设备操作逻辑和用于所有功能瓦片的瓦片输出(例如读数、对读数的引用、错误等),但是可以可选地存储任何其他合适的信息。非易失性存储器可以是未分区的;被分区为长期存储区(例如,存储初始化文件、设备操作逻辑等)和短期存储区(例如,存储瓦片输出或瓦片读数、瓦片错误等);被分区为包括中期存储区(例如,存储需要保留比缓冲周期更长的数据);被分区并分派给各瓦片;或以其他方式分区。板上存储器优选地包括有限数量的非易失性存储器(例如,2MB、4MB等),但是可以可选地包括大量的非易失性存储器(例如,2G)。易失性存储器可以存储已经初始化的瓦片的列表、用于流对象的值、用于流助步器的地址、瓦片输出或任何其他合适的信息。板上存储器优选地包括有限数量的易失性存储器(例如,32kb、64kb等),但是可以可选地包括大量的易失性存储器(例如,2G)。
模块化系统10可以可选地包括电源600,该电源600用于向设备的功能瓦片和控制瓦片提供电力。系统可以包括单个电源选项、多个电源选项(例如,针对不同电压额定值、不同安培数电路、便携式或非便携式、不同容量等)或任何适当数量的电源选项。设备中使用的电源可以由用户选择,基于设备操作逻辑和瓦片或RPC操作参数自动选择,使用优化功能自动选择,或以其他方式确定。可以使用的电源的示例包括二次电池和相关联的管理电路(例如,Li离子化学、NiCd化学等)、电网适配器或任何其他合适的电源。
设备可以可选地包括用于在端点(例如,瓦片)之间转移数据的通信信道。通信通道也可以将电力从电源传输到设备的被供电的组件。通信信道可以是有线的(例如,数据总线、电路板中的引线等)或无线的(例如,是由控制系统或其他瓦片托管的局部网络)。然而,电源和数据可以通过其他方式分布在整个设备中。
系统10的存储结构300用于存储瓦片输出。存储结构优选地使得多个过程能够在不同时间重新使用相同的瓦片输出并且在不同瓦片之间动态分配存储器(例如,基于需要)。然而,可以以其他方式配置存储结构。存储结构优选地存储在控制瓦片存储器(例如,非易失性存储器或易失性存储器)中,但是可以可选地存储在存储器瓦片中或任何其他合适的存储器中。
存储结构300优选地用作集中式存储(例如,全局的、通用的、所有瓦片共用的),并且优选地存储由设备瓦片产生的所有数据流(例如,瓦片输出、处理功能输出等),其示例如图5所示。可选地,存储结构可以存储来自设备中的瓦片的子集的瓦片输出。
存储结构300优选地是循环缓冲器,但是可选地可以是可变长度的缓冲器或者可以是任何其他合适的缓冲器或者具有任何其他合适的结构。存储结构优选地是按照到达顺序(例如按时间顺序)将数据写入缓冲器的FIFO结构,但是可选地可以为LIFO结构、LILO结构、FILO结构,或以任何其他合适的方式处理数据。尽管FIFO循环缓冲器中的数据最终可能会被随后的数据条目覆盖,但是发明人已经发现,由于数据条目的高频特性,并且由于设备应用并不要求所有数据用于可接受的操作,某些数据丢失是可接受的。
存储在存储结构中的数据条目优选地具有固定大小(例如,每个条目32位、64位),但是可以可选地具有可变大小。数据条目可以是瓦片输出、处理功能输出、设备错误或任何其他合适的数据。瓦片输出可以包括指示由瓦片采样的测量结果的数据(例如,测量结果值本身、对瓦片存储器中的测量结果的引用等)、瓦片错误(例如,高频错误、低频错误等)或者任何其他合适的瓦片输出。瓦片输出可以可选地包括用于源瓦片的标识符(例如瓦片标识符)、数据检索RPC标识符或任何其他合适的信息。存储在存储结构中的数据的类型可以是用户确定的(例如,通过设备操作逻辑),自动确定的或以其他方式确定。例如,当用户指定要记录高频错误时,可以将高频错误(例如,数据包丢失)写入存储结构,但是可以自动将低频错误(例如,设备重置)写入到存储结构。可选地,可以总是将与制造商相关的错误(诸如,硬件或瓦片运行时间错误)写入存储结构(例如,其中在发送用户期望的数据时将错误打包并发送到远程计算系统)。这可以启用远程设备运行状况监测、远程瓦片调试和远程瓦片测试。
模块化系统可以可选地包括用于针对触发事件监测存储结构内的一个或更多个数据流30的流对象(例如,流传输器)。流对象可以可选地监测流助步器或任何其他合适的虚拟构造。在第一种变型中,流对象是计数器,其对来自给定数据流的条目数进行计数并在确定了预定数量的条目时触发下游处理功能。在第二种变型中,流对象是当遇到预定数量的条目时触发下游处理功能的监测器。然而,流对象可以查找任何其他合适的触发条件。
每个流对象优选地与数据流相关联。在多个数据流在单个存储结构中混合的变型中,流对象可以与表征数据流的输出条件相关联。输出条件的示例包括输出类型、测量结果类型、源瓦片ID、条目产生时间、以上的组合或任何其他合适的条件。每个数据流可以与一个或更多个流对象相关联。每个流对象可以附加地与处理功能相关联,其中流对象在触发事件发生时触发处理功能执行。流对象优选地由控制瓦片执行,更优选地由控制瓦片的处理系统执行,但是可以可选地由初始化瓦片或由任何其他合适的处理系统来执行。流对象值(例如,计数值)可以存储在易失性控制瓦片存储器、非易失性控制瓦片存储器中,或以其他方式存储。
模块化系统可以可选地包括用于遍历存储结构并记住关于满足预定输出条件的数据条目的参数的一个或更多个虚拟流助步器(读取模块)。换句话说,流助步器可遍历通用缓冲器,拾取特定的瓦片输出流,并跟踪瓦片输出流的参数以用于设备逻辑中的后续处理功能,例如图6所示。流助步器可以特定于每个瓦片输出——处理功能组合。例如,如果多个处理功能使用相同的瓦片输出流作为输入,则设备可以维持用于瓦片输出流的多个流助步器(例如,每个处理功能一个),每个助步器以不同的步幅(paces)遍历缓冲器(例如因为不同的处理功能在不同的时间被触发)。如果处理功能将多个数据流作为输入,则设备可以为该处理功能维持多个流助步器,每个处理功能都监视存储结构内其自己的数据流。然而,设备可以可选地包括用于每个瓦片输出的流助步器、用于每个处理功能的流助步器(例如,其中流助步器可以监测多个瓦片输出流),或者包括任何其他合适数量的流助步器。流助步器优选基于设备操作逻辑自动被产生,但可以可选地手动指定。
流助步器可以是只读的,使得基础数据条目在存储结构内保持完整,以供其他处理功能后续使用。这样允许源瓦片与使用瓦片输出的下游过程分离。可选地,流助步器可以从存储结构读取数据并删除读取的数据,更改数据条目,或以其他方式与数据条目交互。流助步器优选地由控制瓦片执行,但是可以可选地由任何其他合适的处理系统执行。
当发生触发事件时(例如,根据由流对象所确定的),可以执行流助步器。当设备(例如,控制瓦片)执行流助步器时,流助步器从其在存储结构中读取的最后位置处开始,并且递增地遍历存储结构中的每个顺序位置,直到遇到满足输出条件的下一个数据条目。然后流助步器读取该条目(例如,到RAM,到使用条目的处理功能,到存储结构,等),并重复该过程直到缓冲器耗尽或满足停止条件(例如,预定数量的读数已被读取)。流助步器然后存储指向其停止读取的存储结构位置的指针。然而,流助步器可以以任何其他合适的方式进行操作。
可由流助步器确定的数据条目参数包括:测量结果的值、存储结构中的条目的位置或地址、满足输出条件的条目的数量或任何其他合适的参数。在第一种变型中,流助步器对存储结构内满足输出条件的数据条目的数量计数。在第二种变型中,流助步器确定满足输出条件的最近的条目(例如,通过每次遇到后续条目时覆盖由流助步器存储的值)。在第三种变型中,流助步器可以读取条目值。
预定的输出条件可以是输出类型、测量结果类型、源瓦片ID、条目产生时间、以上的组合或任何其他合适的条件。例如,第一流助步器可以查找温度测量结果,而第二流助步器可以查找来自特定瓦片的温度测量结果。每个流助步器优选地读取单个类型(例如,与单个输出条件相关联)的数据条目,但是可以可选地读取多个数据条目类型(例如,每个与不同的输出条件相关联)。输出条件优选地基于设备操作逻辑自动确定,更优选地基于馈送到设备操作逻辑中定义的下游处理功能中的瓦片输出(或产生瓦片输出的RPC)自动确定,但可以以其他方式进行确定。
设备的初始化文件400充当用于设备操作的集中式的真源,其可以赋予简单的原地设备重新配置。这也可以赋予简单的设备原型设计;当新的功能瓦片被添加到原型设备时,用户只需要将该新的瓦片的值添加到初始化文件以使该瓦片可操作。每个设备优选地包括单个初始化文件,其中初始化文件优选地与设备操作指令配对,但可以可选地包括任何合适数量的初始化文件。初始化文件优选地由控制瓦片存储,更优选地由控制瓦片的非易失性存储器存储,但是可选地由任何其他合适的存储器存储。初始化文件可以在制造期间存储在设备上,被远程更新,或以其他方式定义。
初始化文件300优选地存储用于设备的每个瓦片的操作设置。操作设置优选地包括用于每个瓦片的配置变量值,但是可以可选地包括在每个瓦片的设备操作期间将被使用的远程处理调用、调用频率或任何其他合适的信息。在设备操作的一个变型中,在各瓦片初始化之前,每个瓦片在设备初始化时从初始化文件接收其相应的操作设置。在一个实施方式中,每个瓦片将不初始化,直到接收到相应的操作设置(例如,每个瓦片可以防止瓦片初始化,直到其从初始化文件接收到至少所需的配置变量值)。可选地,可以使用存储在瓦片上的操作设置,使用过去的操作设置,使用默认设置或使用任何其他合适的设置集合来初始化每个瓦片。在第一变型中,可以将用于所有瓦片的操作设置广播到设备中的所有瓦片,其中每个瓦片从通信通道读取其相应的操作设置。在第二变型中,每个瓦片从控制瓦片请求或检索相应的操作设置。然而,操作设置可以以其他方式被发送到相应的瓦片。
设备的设备操作逻辑500(操作指令、传感器图)用于通过将多个不同的节点(这里,瓦片)的功能拼接在一起成为统一的整体来定义整个设备的功能。设备操作逻辑与初始化文件结合,控制瓦片的操作。设备操作逻辑可以定义哪些瓦片被操作,瓦片上的哪些RPC被调用(例如,为瓦片群定义的RPC的全部或子集),何时调用RPC,以及哪一些得到的数据流何时及如何被处理。例如,设备操作逻辑可以确定如何处理传感器读数,何时唤醒通信模块进行传输,发送什么数据,错误条件何时触发带外通知时,何时应该操作输出瓦片,和/或输出瓷砖应该如何操作。设备操作逻辑可以可选地确定传感器读数何时被采用;可选地,传感器读数可以以预定的频率(例如,由相应配置变量设置或由瓦片制造商预先确定)采用。尽管设备操作逻辑控制瓦片间的交互(例如,当瓦片操作时,调用哪些瓦片RPC,如何处理瓦片输出),设备操作逻辑优选地不改变瓦片的操作逻辑或内部功能。可选地,设备操作逻辑可以重新配置瓦片的操作逻辑或内部功能。
设备操作逻辑500可以包括设备的功能瓦片的虚拟表示、数据流的虚拟表示(例如,瓦片输出)、触发事件的虚拟表示以及处理功能的虚拟表示。处理功能用于将一个或更多个数据流的值处理成可被写入存储结构、被写入易失性控制瓦片存储器或存储在任何其他合适的位置中的处理功能输出(例如,派生数据)。处理功能输出可以被设备操作逻辑中的后续处理功能使用,或者被传送到远程计算系统,或以其他方式被使用。处理功能可以是预定义的(例如,诸如添加、求平均等的标准功能)、用户定义的(例如,由用户写入)或以其他方式定义的。每个边可以与父节点的输出(例如,瓦片输出、处理功能输出等)相关联,与触发事件(例如,控制应该何时将输出提供给子节点)相关联,和/或与任何其他合适的信息相关联。
设备操作逻辑优选地完全或部分地存储在设备上(例如,在控制瓦片上、在控制瓦片存储器上在初始化瓦片上等)、在远程计算系统上或在任何其他合适的系统上。
设备操作逻辑优选地是图形数据结构,但是可选地可以是堆栈数据结构、地图数据结构、队列数据结构或任何其他合适的数据结构。可以使用深度优先搜索,广度优先搜索遍历图形数据结构或以任何其他适当的方式遍历图形数据结构。可选地,可以将设备操作逻辑存储为NoSQL数据库,更优选存储为图形数据库,但也可以可选地作为关系数据库、对象数据库、表格数据库、Tuble存储数据库(Tuble store database)、RDF数据库、多模型数据库、面向对象的数据库、面向文档的数据库、NewSQL数据库、链接数据的数据库或者任何种类的语义查询构造。设备操作逻辑可以被编码(例如,使用编程语法),使用可视编程系统(例如,通过创建状态图)产生,或以其他方式产生。
当设备操作逻辑是图形数据结构(图4所示的示例)时,图形数据结构可以包括一组节点和一组边,每个边将父节点连接到子节点。节点可以包括代表功能瓦片的瓦片节点、代表处理功能的处理功能节点或者任何其他合适的节点集合。每个瓦片节点可以与一组操作设置(例如,配置变量)、瓦片输出(例如,和/或生成输出的RPC调用)或瓦片输入(例如,用于输出瓦片)相关联,或与任何其他合适的数据集合相关联。
图形数据结构可以包括设备操作逻辑和远程操作逻辑两者(例如,包括要在设备上执行的过程以及要由远程计算系统执行的过程两者)。可选地,图形数据结构可以仅包括设备操作逻辑。设备操作逻辑可以包括要在设备上执行的过程,而远程操作逻辑可以包括需要来自单个设备的输入的过程、需要来自多个设备的输入的过程(例如,全局分析(fleetwide analyses))、需要大量处理资源的过程或者任何其他适合的过程的集合。
在一个变型中,设备可以与包括设备和远程操作逻辑两者的主图形数据结构相关联,其中只有操作逻辑的设备部分被存储在设备上。在操作中,设备执行图形数据结构直到设备操作逻辑和远程操作逻辑之间的分界线,并将父节点输出传输到远程计算系统,其中远程计算系统执行图形数据结构的其余部分。该分界线可以由用户确定、自动确定或以其他方式确定。分界线所在的边可以是资源密集型处理功能(例如,电力、处理功率等)的上游的边、具有最小带宽需求的边(例如,因为带宽可能是昂贵的)、使下游设备上功耗最小化的边、使下游值存储最小化的边、优化一组参数(例如,处理功率、功耗、带宽等)的边或者是任何其他合适的边的集合。在第一变型的实施方式中,图形数据结构的部分可以在设备和远程部分之间重叠,使得设备和远程计算系统都可以执行相同的操作逻辑。在该实施方式中,可以在设备和远程计算系统之间动态地重新分配操作逻辑执行。在示例中,当设备在阈值数量的尝试之后不能连接到远程计算系统时,或者当满足任何其他合适的事件时,设备可以执行通常由远程计算系统执行的逻辑的部分。然而,操作逻辑性能可以以其他方式重新分配。在第二变型中,整个主图形数据结构存储在设备上。在第三变型中,设备与设备图形数据结构和远程图形数据结构相关联,其中只有设备图形数据结构存储在设备上。然而,操作逻辑可以以其他方式被划分和存储。
图形数据结构可以被编写、使用可视化编程进行编程,或以其他方式创建。例如,图形数据结构可以在可视编程环境中创建。在该示例中,可视编程环境可以接收与功能瓦片相关联的第一节点选择,接收与处理功能相关联的第二节点选择(例如,配置为执行处理功能的控制瓦片上的虚拟过程);接收从第一节点延伸到第二节点的转换(或边);接收与转换相关联的瓦片输出选择;以及接收与转换相关联的转换触发事件,其中一系列这样的链协作地形成图形数据结构。然而,可以以其他方式产生图形数据结构。可选地,可使用一组块(例如,表示瓦片、节点和/或处理功能)、图标或任何其他合适的可视编程组件的集合来产生图形数据结构(或其他形式的设备操作逻辑)。
图形数据结构可用于自动产生其他系统组件。在一个变型中,可以为与边相关联的每个触发事件产生流对象,其中可以根据父节点输出确定与流对象相关联的输出条件,并且由流对象触发的下游过程可以是由连接到边的子节点所表示的过程。在第二变型中,可以针对每个边产生流助步器,其中可以根据父节点输出确定与流助步器相关联的输出条件,并且流助步器端点可以是由连接到边的子节点表示的过程。在第三变型中,可以根据分派给瓦片节点的操作设置产生初始化文件。在第四变型中,可以根据与边相关联的瓦片输出产生要调用的RPC列表。在第四变型的第一实施方式中,RPC的列表可以被包括在初始化文件中,其中瓦片可以自动产生瓦片输出而不需要另外的控制瓦片干预。在第四变型的第二实施方式中,RPC链接到流对象,其中控制瓦片在发生相应的触发事件时调用RPC。
可以使用图形数据结构来模拟设备操作,该设备操用于确定物理设备的规范和/或在没有设备原型和物理测试的情况下识别性能约束。例如,图形数据结构可用于确定设备的功率要求、设备的存储器要求、设备的运行时间或确定任何其他合适的设备性能参数。这是可能的,因为每个瓦片的操作参数值(例如,RPC操作参数值、待机操作参数值)是已知的。在一个示例中,模拟环境可以确定可以同时运行的图形数据结构的分支,计算运行每个识别的分支所需的资源量,确定运行识别的分支所需的最大资源(例如,通过为所有可能同时发生的分支添加所需的资源),以及确定所选资源(例如,电源和控制瓦片)是否可以支持(例如超过)所需的最大资源。响应于所需资源超过设备资源的确定,系统可以自动产生警告用户设备资源可能不足的通知,自动产生对替换组件的推荐,自动选择替换组件(例如,具有更多存储器的控制瓦片、具有更高额定值或容量的电源等),自动识别能够将资源需求带入可用设备能力内的边或节点,或执行任何其他合适的功能。在第二示例中,模拟环境可以确定图形数据结构的每个分支的运行时间并估计产生给定输出所需的时间量(例如,基于输出的每个上游分支的运行时间)。然而,模拟可以以其他方式进行使用。
4.方法
如图4所示,用于操作定制设备的方法可以包括:用操作指令填充控制系统S100;在设备初始化时将用于每个瓦片的操作设置发送到相应的瓦片S200;操作每个瓦片S300;将来自每个瓦片的输出写入存储结构S400;针对触发事件监测存储结构内的数据流S500;响应于触发事件的发生从存储结构读取数据S600;以及根据处理功能处理读取的数据S700。该方法可以可选地包括将数据发送到远程计算系统S800。该方法用于提供足够的灵活性以使用完全不同的操作逻辑来操作多个不同的定制设备。
该方法优选由使用上面讨论的模块化系统创建的设备来执行,但是可以可选地由任何其他合适的设备来执行。
使用操作指令填充控制系统S100用于向设备提供操作指令。控制系统优选是集中式的(例如,其中整个设备由单个控制系统控制),但是可以可选地分布在多个控制系统中。控制系统优选为控制瓦片,但可以可选地为任何其他合适的控制系统。操作指令可以包括:操作设置(例如,配置变量值)、初始化文件、操作逻辑(例如,设备的图形数据结构)或任何其他合适的指令集。操作指令优选地由控制系统的板上存储器存储,但是可以存储在单独的瓦片上(例如,从其读取初始化和/或设备操作信息的初始化瓦片),或者存储在任何其他适合的系统上。控制系统可以由制造商、由远程计算系统(例如,当用新的操作逻辑远程更新设备时)、由用户设备(例如,连接到设备的智能电话)或由任何其他合适的系统利用操作指令类进行填充。控制系统可以在制造设施处、原地(例如在现场)填充,或以任何其他合适的方式填充。在一个变型中,方法可以包括:在计算系统处接收来自用户账户的设备操作改变,基于设备操作改变产生更新的操作逻辑,以及用更新的操作逻辑覆盖存储在控制瓦片上的设备操作逻辑。设备操作改变可以包括:向设备添加新的瓦片(并且将相应的操作设置添加到初始化文件);新设备操作逻辑或任何其他合适的设备操作改变。
在设备初始化时将用于每个瓦片的操作设置发送到相应的瓦片S200用于配置功能瓦片。设备初始化可以是:首次使用特定的一组操作指令开启设备,每次设备开启时,每次设备(例如控制系统)从待机状态切换到操作状态,或以其他方式定义。发送操作设置可以包括:将操作设置广播到通信信道(例如,总线或局部网络)上,从每个相应瓦片接收操作设置请求并返回相应的操作设置,或者以其他方式发送操作设置。优选地,在检测到初始化事件(例如,对设备的电力供应,对控制瓦片的电力供应,对开关已被翻转的确定,等等)时,自动发送操作设置,但是可以可选地在发生任何其他合适的事件时进行发送。操作设置优选地由控制瓦片发送(例如,从初始化文件检索),但是可以可选地由初始化瓦片发送(例如,其中初始化瓦片处理设备初始化,而之后,控制瓦片控制设备操作)或者由任何其他合适的组件发送。操作设置可以包括:配置变量值(例如,必需和/或默认值)、RPC、RPC调用频率或任何其他合适设置的值。
瓦片(更优选地为瓦片处理器,但是可选地为另一瓦片控制系统)优选地防止瓦片初始化(例如,瓦片操作、从待机状态切换到操作状态的瓦片操作),直到接收到相应的操作设置。在接收之后(优选地通过瓦片处理器,但是可选地通过另一瓦片控制系统),瓦片优选地使用相应的操作设置来被初始化和被操作,但是操作设置可以以其他方式被使用。这可以防止瓦片在关于设备其余部分的信息不足的情况下运行。然而,可以使用默认值(例如,通过瓦片存储的,通过初始化文件存储的等)来初始化和操作瓦片,直到接收到操作设置,或者以任何其他合适的方式进行操作。
操作每个瓦片S300用于产生设备输入,该设备输入随后可以由设备逻辑进行处理。瓦片优选地使用相应的操作设置来操作,但是可以以其他方式操作。瓦片操作控制优选地在控制系统和瓦片本身之间分开,但是设备操作可以可选地集中在控制系统处(例如,其中控制系统控制瓦片子系统)、分布在瓦片上(例如,其中每个瓦片可以存储和执行设备操作逻辑的一部分),或以其他方式进行分布。
在第一变型中,控制系统基于设备操作逻辑来确定要调用哪些RPC以及何时调用所述RPC,并且当相关联的触发事件发生时调用RPC(例如,通过将RPC调用通过共享通信信道发送到相关联的瓦片),其示例在图8中示出。与RPC相关联的瓦片接收RPC调用,在内部识别由RPC引用的瓦片功能(例如,代码块),实现(例如,执行)瓦片功能,并且输出由瓦片功能产生的瓦片输出值(例如,输出到共享通信信道)。
在第二变型中,瓦片自动执行瓦片功能并输出瓦片功能产生的瓦片输出值(例如,输出到共享通信信道)。响应执行事件被满足或在任何其他适当的时间,瓦片功能可以以预定的频率自动执行。预定的频率可以是默认频率,由初始化文件(例如,通过相关联的RPC的参数,通过配置变量)设置,或以其他方式被确定。执行事件可以是外部事件(例如,瓦片从外部控制系统接收命令或输入)、内部事件(例如,时间阈值被满足,传感器输出实质上匹配预定值,等),或者是任何其他合适的事件。然而,瓦片可以以其他方式进行操作。
将来自每个瓦片的输出写入存储结构S400用于存储(例如缓存)瓦片输出以供后续使用。输出优选地由控制瓦片写入存储结构,但可以由源瓦片或通过任何其他合适的系统写入。输出优选地从通信信道读出并存储在存储结构中,但可以以其他方式转移到存储结构。存储结构优选地由控制系统(例如控制瓦片)存储,更优选地由控制系统的板上存储器(例如,非易失性存储器)存储,但是可选地由存储瓦片或通过任何其他合适的存储系统存储。存储结构优选地是存储来自所有功能片的瓦片输出的公共缓冲器(例如,循环缓冲器、FIFO缓冲器等),但是可以可选地是特定于给定功能瓦片的缓冲器。
针对触发事件监测存储结构内的数据流S500用于确定何时应该执行后续处理功能。存储结构优选地由控制系统(例如,由控制瓦片处理器)执行的虚拟监测器(例如,流对象)监测,但是可以可选地由源瓦片监测,由存储存储结构的系统监测,或通过任何其他合适的组件监测。监测的数据流和触发事件优选通过设备操作逻辑指定,但可以以其他方式指定。在设备操作逻辑是图形数据结构的变型中,数据流可以是与图形数据结构的边相关联的瓦片输出,并且触发事件可以是与边和/或连接到边的子节点相关联的事件。然而,数据流和触发事件可以以其他方式定义。
响应于触发事件的发生而从存储结构读取数据S600用于确定用于处理功能的输入值。从存储结构读出的数据优选是来自被监测的数据流的数据(例如,被设备操作逻辑指定为处理功能的输入的数据流),但是可以可选地是任何其他合适的数据。数据优选通过由控制系统(例如,由控制瓦片处理器)执行的流助步器(例如,读取模块)从存储结构读取,但是可以可选地通过源瓦片读取,通过存储存储结构的系统读取,或通过任何其他合适的组件读取。流助步器优选地与数据流相关联。更优选地,流助步器与表征流助步器将要读取的数据流的一组输出条件(例如,数据类型、源瓦片ID等)相关联,但是可以以其他方式进行定义。当存储结构是图形数据结构时,输出条件可以由图形数据结构的边(例如,由边传递的数据)、产生由边传递的数据的RPC、父节点定义,或以其他方式进行定义。流助步器可以附加地与流对象(例如,其中流对象响应于相关联的触发事件的发生而触发流助步器操作)、处理功能(例如,将流助步器输出作为输入)、或者任何其他合适的构造相关联。每个流助步器优选地与单个边、流对象和/或处理功能相关联,但是可以可选地与任何合适数量的以上事物相关联。
数据优选地仅从存储结构读取(例如,其中数据不被流助步器修改),但是可以可选地从存储结构移除,在存储结构内编辑或以其他方式进行管理。读取的数据(或其参数)的值可以存储在易失性存储器中,存储在存储器的存储存储结构的不同分区中,存储在存储结构中(例如,其中第二流助步器可以跟踪由第一流助步器输出的值),或以其他方式进行存储。后续的处理功能然后可以消耗流流助步器输出,而不会影响存储在存储结构中的值。这可以允许多个功能在不同的时间使用相同的数据流。
在第一变型中,从存储结构的末端读取数据(例如从缓冲器的开始或结束处)。在该变型中,存储结构优选专用于数据流(例如,专用于瓦片输出),但是可以可选地是全局的(例如,跨越多个瓦片共享)。
在第二变型中,流助步器递增地逐步遍历存储结构中的每段数据,确定当前的数据段是否满足输出条件,如果数据不满足输出条件则跳过当前的数据段,以及在数据确实满足输出条件时对当前的数据段采取动作,如图6所示的示例。对当前的数据段采取动作可以包括:从流中复制数据,对满足输出条件的数据条目的数量计数,确定数据状态(例如,真或假),或以其他方式对数据采取动作。流助步器可以从其在存储结构内被分析的最后位置处开始(例如,读取,考虑等),在存储结构中的预定位置处(例如,特定地址、开始处、结束处等)开始,或者在存储结构内的任何其他合适的位置处开始。当满足终止事件时,流助步器可以停止读取。终止事件可以是:预定数量的数据读取被满足,时间阈值被满足,确定数据流中没有新条目,或者任何其他合适的终止事件。
当数据值被存储在辅助存储装置上(例如,存储在存储结构之外)时,该方法可以附加地包括从辅助存储装置检索数据值。这对于大测量结果(例如,超过存储结构条目的数据大小限制的测量结果)可能特别有用,但也可以用于小测量结果(例如,落入存储结构条目的数据大小限制内的测量结果)。当数据值存储在辅助存储装置中时,存储结构用作跟踪器,其跟踪测量结果是否已经被添加到存储在辅助存储装置上的数据流中。特别地,存储结构可以存储对存储在辅助存储装置上的数据和/或数据流的引用,其中引用可以包括:瓦片标识符和数据检索信息。数据检索信息可以包括:用于瓦片的检索RPC调用,用于辅助存储装置内的数据的标识符和/或任何其他合适的信息。数据值可以由控制系统(例如,由控制瓦片处理器)来检索,但是可以可选地由源瓦片来检索,由存储存储结构的系统来检索,或者由任何其他合适的组件来检索。检索到的数据可以视为流助步器输出,或以其他方式进行处理。
根据处理功能处理读取的数据S700用于将数据流转换为派生数据。这可以用于从数据流中提取有用的信息(例如,趋势、平均值、关系等),当数据流包括大量的高频数据时这可能是有用的。这可以进一步用于减少最终发送到远程计算系统的数据量,从而降低带宽成本。数据优选地响应于触发事件的发生而被处理,更优选地在数据已经从存储结构读出之后被处理,但是可选地在任何其他适当的时间处被处理。数据可以在流助步器从存储结构中读取数据值时而被处理,在流助步器完成从存储结构读取数据值之后或在任何其他适当的时间而被处理。数据优选地由控制系统(例如,由控制瓦片处理器)处理,但是可以可选地由源瓦片处理,由存储存储结构的系统来处理或者通过任何其他合适的组件来处理。优选地,数据是基于与触发事件相关联的处理功能(例如,与触发事件相关联的边的子节点)而被处理,但是可以可选地以任何其他合适的方式而被处理。处理功能的输出(处理功能输出)优选地被写入到存储结构,更优选地被写入公共缓冲器,但是可选地被写入到被特别分派给处理功能的单独的存储结构分区,但是可以可选地被写入辅助存储装置,被发送到远程计算系统,或以其他方式进行存储。
处理功能输出优选地被视为另一数据流,但是可以可选地以任何其他合适的方式进行处理。例如,当设备操作逻辑包括将处理功能输出作为输入的次级处理功能时,该方法可以附加地包括:重复S500用于与次级处理功能关联的第二触发事件,用配置成响应于第二触发事件发生从存储结构读取处理功能输出的流助步器重复S600,并且利用次级处理功能重复S700。但是,处理功能输出可以以其他方式进行使用。
该方法可以附件地包括将数据发送到远程计算系统S800。数据优选地由设备的通信系统(例如,通信瓦片)发送,但是可以可选地由控制瓦片或由设备的任何其他合适的瓦片发送。远程计算系统优选地是远程服务器系统(例如,由设备存储的通用资源标识符来标识),但是可以可选地是连接到设备(例如,经由NFC、蓝牙、WiFi或其他外部通信通道)的用户设备(例如,智能电话),或者是任何其他合适的远程端点。数据优选地响应于传输事件的发生而被发送,但是可以可选地在任何其他合适的时间被发送。传输事件可以是触发事件(例如,如S500中所讨论的那样监测的,但可选地以其他方式进行监测的)、资源事件(例如,其中控制系统上的资源监测过程监测系统资源参数,诸如剩余存储器的量、电池充电状态等),或者是任何其他合适的事件。
向远程计算系统发送数据优选地由设备的控制系统(例如,控制瓦片)控制和协调,但是可选地可以部分地或完全地由通信系统控制。在第一示例中,控制系统可以确定与远程数据传输相关联的触发事件已经发生,启动从存储结构读取数据,并且向通信瓦片发送RPC以传输读取的数据(例如,带有用于读取的数据的标识符),其中通信瓦片根据RPC接收并发送读取的数据。在第二示例中,控制系统可以确定与远程数据传输相关联的传输事件已经发生并且将RPC发送到通信瓦片以传输数据流,其中通信瓦片控制数据从存储结构的提取以及数据到远程计算系统的传输。在第三示例中,控制系统可以确定传输事件已经发生,向通信瓦片发送RPC以开始读取数据用于从通信信道传输离开(例如,还包括数据标识符,诸如源瓦片ID),以及将RPC发送到存储数据的源瓦片(例如,存储辅助存储装置上的数据的瓦片,支持主存储结构的瓦片,等)以开始将指定的数据流传输到通信信道上,其中通信瓦片自动从通信信道读取数据并将数据从通信信道传输离开。然而,数据到远程计算系统的传输可以以其他方式进行控制。
将数据发送到远程计算系统可以包括从存储结构读取数据值,将数据值缓存在临时存储装置中,将数据值发送到通信系统,以及将数据从通信系统发送到远程计算系统。然而,数据可以以其他方式发送到远程计算系统。
读取数据值用于过滤要发送到远程计算系统的数据流的存储结构。数据优选以S600中讨论的方式从存储结构读出,但是可以可选地由通信系统读取(例如,其中通信系统可以包括专用于要传输的数据的类型的读取模块),或者可以以任何其他适当的方式读取。响应于传输事件的发生,在控制系统已经向通信系统发送传输命令(例如,传输RPC)之后,响应于从控制系统接收到传输命令,在数据流正在被产生时,或者在任何其他合适的时间,可以以预定频率从存储结构读取数据值。
当数据值包括对辅助存储装置中数据的引用(例如,对于大测量结果)时,可以将数据值直接从辅助存储装置读取到通信系统。在第一变型中,在图9所示的示例中,读取数据值可以包括:从存储结构读取引用(例如,利用控制系统);以及,响应于传输事件的发生,利用引用和通信系统的地址(例如,通信瓦片标识符)向辅助存储装置(例如,向具有辅助存储装置的瓦片)发送检索RPC。然后辅助存储装置可以直接将数据发送到寻址的通信系统,绕过控制系统存储器。在第二变型中,读取数据值可以包括:从存储结构读取引用(例如,利用控制系统),并将全部或部分引用发送到通信系统(例如,作为通信瓦片RPC调用的参数)。通信系统然后可以通过使用用于具有辅助存储装置的瓦片的检索RPC调用或者以任何其他合适的方式请求数据来使用引用以从辅助存储装置检索数据值。然而,存储在辅助存储装置中的数据可以以其他方式转移到通信系统。
缓存数据值用于暂时存储要发送的值。在与远程计算系统的连接不可靠的情况下,这可能特别有用。在第一变型中,可以将数据值缓存在与用于处理功能的数据值相同的存储介质中(例如,复制到存储介质),其中通信系统可以在需要时从存储介质读取数据值。在第二变型中,数据值可以被缓存在通信系统存储器中(例如,被复制到通信系统存储器)。在该变型中,可以将数据值从存储结构读取到通信信道中,其中通信系统从通信信道读取数据并将数据写入通信系统存储器中。通信系统存储器可以是易失性的(例如RAM)或非易失性的(例如闪存)。在第三变型中,存储结构用作缓存。在该变型中,该方法可以包括确定在存储结构内的数据的地址并将该地址发送到通信系统,其中通信系统在传输到远程计算系统期间使用地址从存储结构读取数据值。然而,数据或其标识符可以以任何其他合适的方式被缓存。缓存数据可以附加地包括打包数据、压缩数据、保护数据(例如,使用安全密钥)或以其他方式处理数据。
将数据值发送到通信系统用于将数据值从缓存转移到通信系统用于传输。数据值可以在传输事件发生之前、传输事件发生之后、响应于控制系统向通信系统发送传输命令(例如传输RPC)、响应于从控制系统接收到传输命令、响应于与远程计算系统的通信信道的建立被发送到通信系统,或者在任何其他合适的时间进行发送。数据值优选通过通信信道(例如总线)进行发送,但是可以可选地以其他方式进行发送。
从通信系统向远程计算系统发送数据值用于将设备产生的数据传送给外部源。发送数据值可以包括:使用远程计算系统标识符(例如,URI)连接到远程计算系统并将数据值传输到远程计算系统。当连接无法被建立或中断时,该方法可以包括重新尝试传输,直到数据被发送或已进行了阈值次数的尝试为止。传输的重新尝试优选地由通信系统(例如,由通信瓦片的处理器)控制,但是可以可选地由控制系统(例如,控制瓦片)来控制或通过任何其他合适的控制系统来控制。
系统和/或方法的实施方式可以包括各种系统组件和各种方法过程的每种组合和排列,其中方法过程可以以任何合适的次序、顺序地或同时地被执行。
如本领域中的技术人员将从先前的详细描述以及从附图和权利要求中认识到的,可在不偏离在所附权利要求中限定的本发明的范围的情况下对本发明的优选的实施方式进行修改和改变。

Claims (20)

1.一种用于设备操作的方法,所述设备包括控制瓦片,所述控制瓦片连接到物理上不同于所述控制瓦片的多个瓦片,所述方法包括:
·用所述设备的操作指令填充控制瓦片,所述操作指令包括用于所述多个瓦片中的每一个瓦片的操作设置;
·在每次设备初始化时将所述操作设置发送到相应的瓦片,其中,每个瓦片防止相应的瓦片的操作直到接收到相应的操作设置;
·基于所述相应的操作设置操作所述多个中的每一个瓦片;
·将来自瓦片的瓦片输出值按照到达顺序写入到通过所述控制瓦片存储的公共循环缓冲器中;
·使用通过所述控制瓦片执行的虚拟监测器来针对触发事件监测所述循环缓冲器;
·使用读取模块递增地逐步遍历所述循环缓冲器,所述读取模块选择性地读取满足与所述触发事件相关联的瓦片输出参数的瓦片输出值;和
·根据与所述触发事件相关联的处理功能处理通过所述读取模块读取的所述瓦片输出值。
2.根据权利要求1所述的方法,其中,所述多个中的瓦片还包括非易失性瓦片存储器,其中,存储在所述循环缓冲器内的每条数据具有固定大小,其中,操作所述瓦片包括:
·对超过所述固定大小的测量结果进行采样;和
·将所述测量结果存储在所述非易失性瓦片存储器中;
其中,所述瓦片输出值包括用于所述瓦片的瓦片标识符、用于所述瓦片的远程处理调用标识符以及用于所述测量结果的测量结果标识符,其中,处理所述瓦片输出值包括基于所述瓦片标识符、所述远程处理调用标识符和所述测量结果标识符从所述非易失性瓦片存储器检索所述测量结果。
3.根据权利要求1所述的方法,其中,所述操作指令包括:
·定义所述操作设置的初始化文件;
·图形数据结构,所述图形数据结构包括与所述图形数据结构的边相关联的所述触发事件和所述瓦片输出参数以及作为节点的所述处理功能。
4.根据权利要求3所述的方法,其中,操作所述多个中的瓦片还包括:
·在所述控制瓦片处,基于所述图形数据结构调用用于所述瓦片的远程处理调用,所述远程处理调用与所述瓦片输出相关联;和
·在所述瓦片处,执行与所述远程处理调用相关联的功能,其中,所述功能的输出包括所述瓦片输出值。
5.根据权利要求4所述的方法,其中,用于每个瓦片的每个远程处理调用与预定输出存储器要求相关联,所述方法还包括:
·基于所述图形数据结构和用于每个瓦片的所述预定输出存储器来计算所述设备的最大输出存储器;和
·响应于所述最大输出存储器超过所述非易失性存储器大小,向用户推荐包括更多非易失性存储器的第二个控制瓦片用于所述设备。
6.根据权利要求3所述的方法,还包括,在图形编程界面处:
·接收与所述多个中的瓦片相关联的第一节点选择;
·接收与所述处理功能相关联的第二节点选择;
·接收从所述第一节点到所述第二节点的转换;
·接收与所述转换相关联的瓦片输出参数选择,所述瓦片输出参数选择包括与所述瓦片相关联的瓦片输出类型;
·接收与所述转换相关联的转换触发事件;和
·自动产生所述操作指令,包括:
·将所选择的瓦片输出参数分派作为所述瓦片输出参数;
·产生所述图形数据结构,其中,父节点包括所述瓦片,子节点包括所述控制瓦片上的被配置为执行所述处理功能的虚拟过程,以及将所述父节点连接到所述子节点的边包括所述转换触发事件。
7.根据权利要求1所述的方法,还包括将由所述处理功能输出的处理功能输出写入所述公共循环缓冲器。
8.一种方法,包括:
·提供包括电连接到控制瓦片的多个物理瓦片的设备,其中,每个物理瓦片包括处理系统,并且所述控制瓦片包括处理系统和分区为长期存储区和短期存储区的非易失性存储器,其中,每个物理瓦片与预定的一组配置变量和远程处理调用相关联;
·将初始化文件存储在所述长期存储区中,所述初始化文件包括每个瓦片的每个配置变量的值;
·响应于在所述控制瓦片处检测到初始化事件,将每个配置值的值发送到相应的瓦片;
·在每个瓦片的处理器处,基于从所述控制瓦片接收的配置值来初始化所述相应的瓦片;
·在每个瓦片处,对测量结果进行采样并将指示该测量结果的数据发送到所述控制瓦片;
·按照时间顺序将所述数据存储在所述短期存储区中的公共循环缓冲器内;
·在所述控制瓦片处针对触发事件监测所述循环缓冲器;
·响应于所述触发事件的发生:
·识别与所述触发事件相关联的测量结果类型;和
·从所述循环缓冲器连续地读取与所述测量结果类型相关联的数据;和
·根据与所述触发事件相关联的处理功能来处理与读取的数据相关联的测量结果。
9.根据权利要求8所述的方法,其中,每个瓦片的所述处理器防止所述相应的瓦片的初始化,直到接收到所述相应的操作设置。
10.根据权利要求8所述的方法,其中,所述控制瓦片存储定义设备操作的图形数据结构,所述图形数据结构包括所述触发事件、与所述触发事件相关联的所述测量结果类型以及与所述触发事件相关联的所述处理功能。
11.根据权利要求10所述的方法,还包括:
·从用户账户接收设备操作改变;
·基于所述设备操作改变来产生更新的图形数据结构;和
·用更新后的图形数据结构覆盖存储在所述控制瓦片上的图形数据结构。
12.根据权利要求8所述的方法,其中,在所述循环缓冲器内的每条数据具有固定大小。
13.根据权利要求12所述的方法,其中,所述数据包括用于所述测量结果的值。
14.根据权利要求12所述的方法,其中,所述测量结果的大小超过所述固定大小,其中,指示所述测量结果的所述数据包括瓦片标识符、远程处理调用标识符和测量结果标识符,其中,所述瓦片还包括存储所述测量结果的非易失性瓦片存储器,所述方法还包括在处理之前基于所述瓦片标识符、所述远程处理调用标识符和所述测量结果标识符从所述非易失性瓦片存储器检索所述测量结果。
15.一种模块化设备,包括:
·控制瓦片,包括控制处理器和非易失性存储器;
·不同于所述控制瓦片的多个瓦片,每个瓦片包括瓦片处理器并且与一组配置变量和一组远程处理调用相关联,每个远程处理调用产生瓦片输出;
·由所述非易失性存储器存储的通用循环缓冲器,所述通用循环缓冲器按照到达顺序存储来自所述多个瓦片中的每个瓦片的瓦片输出的值;
·由所述控制瓦片存储的图形数据结构,所述图形数据结构包括通过边连接的一组节点,其中,所述多个中的每个瓦片被表示为在所述一组节点内的瓦片节点,其中,连接到瓦片节点的每个边与触发事件、与由所述瓦片节点表示的瓦片相关联的远程处理调用以及被配置为读取由所述远程处理调用产生的所述瓦片输出的值的读取模块相关联;和
·由所述控制瓦片存储的初始化文件,所述初始化文件包括用于所述配置变量的值,其中,所述多个瓦片中的每一个瓦片在各瓦片初始化之前从所述初始化文件接收用于所述配置变量的相应的值。
16.根据权利要求15所述的系统,其中,所述非易失性存储器小于所述多个瓦片的总的存储器占用空间。
17.根据权利要求15所述的系统,其中,所述控制处理器针对所述触发事件监测所述通用循环缓冲器,执行所述读取模块以利用所述读取模块读取与所述边相关联的瓦片输出的值,并且根据由连接到所述瓦片节点的子节点表示的处理功能来处理所述值。
18.根据权利要求17所述的系统,其中,所述控制处理器还将所述处理功能的输出写入所述通用循环缓冲器。
19.根据权利要求15所述的系统,其中,所有瓦片输出的值具有固定数据大小,其中,所述多个瓦片包括成像瓦片,其中,与所述成像瓦片相关联的所述一组远程处理调用包括图像采样调用和图像返回调用,所述成像瓦片还包括:
·成像传感器,所述成像传感器对超过所述固定数据大小的测量结果进行采样;和
·成像存储器,所述成像存储器存储所述测量结果;
其中,由所述图像采样调用产生的瓦片输出包括数据包,所述数据包包括:用于所述成像瓦片的标识符、用于所述图像返回调用的标识符以及用于所述成像存储器内的所述测量结果的标识符。
20.根据权利要求15所述的系统,其中,每一个瓦片与一组所需的配置变量相关联,其中,所述瓦片处理器被配置为保持待机模式,直到所有所需的配置变量的值从所述初始化文件被接收到。
CN201680058846.8A 2015-10-09 2016-10-06 模块化设备和操作方法 Active CN108139870B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562239446P 2015-10-09 2015-10-09
US62/239,446 2015-10-09
US201662383894P 2016-09-06 2016-09-06
US62/383,894 2016-09-06
PCT/US2016/055734 WO2017062612A1 (en) 2015-10-09 2016-10-06 Modular device and method of operation

Publications (2)

Publication Number Publication Date
CN108139870A true CN108139870A (zh) 2018-06-08
CN108139870B CN108139870B (zh) 2021-08-06

Family

ID=58488483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680058846.8A Active CN108139870B (zh) 2015-10-09 2016-10-06 模块化设备和操作方法

Country Status (3)

Country Link
US (3) US9632726B1 (zh)
CN (1) CN108139870B (zh)
WO (1) WO2017062612A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111539176A (zh) * 2019-03-29 2020-08-14 成都海光集成电路设计有限公司 集成电路设计与制造的多实例时间预算
CN112373215A (zh) * 2020-11-13 2021-02-19 深圳市凯沃尔电子有限公司 一种心电信号的热敏打印方法
CN116484591A (zh) * 2023-04-04 2023-07-25 中煤科工集团北京华宇工程有限公司 选煤厂全流程数字化工程设计的模型构建方法及系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9749232B2 (en) 2012-09-20 2017-08-29 Masimo Corporation Intelligent medical network edge router
US10832818B2 (en) 2013-10-11 2020-11-10 Masimo Corporation Alarm notification system
US20190073238A1 (en) * 2017-11-02 2019-03-07 Nri R&D Patent Licensing, Llc Software controlled transport and operation processes for fluidic and microfluidic systems, temporal and event-driven control sequence scripting, functional libraries, and script creation tools
EP3782165A1 (en) 2018-04-19 2021-02-24 Masimo Corporation Mobile patient alarm display
US11263170B1 (en) * 2021-03-29 2022-03-01 SambaNova Systems, Inc. Lossless tiling in convolution networks—padding before tiling, location-based tiling, and zeroing-out

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103244A1 (en) * 2002-11-26 2004-05-27 Hitachi, Ltd. System and Managing method for cluster-type storage
US6753873B2 (en) * 2001-01-31 2004-06-22 General Electric Company Shared memory control between detector framing node and processor
CN1950760A (zh) * 2004-05-04 2007-04-18 费舍-柔斯芒特系统股份有限公司 用于过程控制系统的集成图像运行期界面
CN102571904A (zh) * 2011-10-11 2012-07-11 浪潮电子信息产业股份有限公司 一种模块化设计的nas集群系统构建方法
CN103688529A (zh) * 2011-07-22 2014-03-26 惠普发展公司,有限责任合伙企业 环形缓冲器上的可视媒体

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1065611A3 (en) * 1995-10-23 2006-05-10 Interuniversitair Microelektronica Centrum Vzw A design environment for hardware/software co-design
EP0992916A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. Digital signal processor
EP1872242A4 (en) * 2005-04-19 2009-10-21 Fairlight Au Pty Ltd SYSTEM AND METHOD FOR PROCESSING MEDIA
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
US9055011B2 (en) 2010-08-31 2015-06-09 Intel Corporation Methods and apparatus for linked-list circular buffer management
US8726084B2 (en) 2011-10-14 2014-05-13 Honeywell International Inc. Methods and systems for distributed diagnostic reasoning
US20160152211A1 (en) * 2013-03-29 2016-06-02 Mobile Intelligent Alerts, Llc Information processing system, method, apparatus, computer readable medium, and computer readable program for information exchange in vehicles
US20160225562A1 (en) * 2015-01-29 2016-08-04 Unilectric, Llc Enhanced circuit breakers and circuit breaker panels and systems and methods using the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6753873B2 (en) * 2001-01-31 2004-06-22 General Electric Company Shared memory control between detector framing node and processor
US20040103244A1 (en) * 2002-11-26 2004-05-27 Hitachi, Ltd. System and Managing method for cluster-type storage
CN1950760A (zh) * 2004-05-04 2007-04-18 费舍-柔斯芒特系统股份有限公司 用于过程控制系统的集成图像运行期界面
CN103688529A (zh) * 2011-07-22 2014-03-26 惠普发展公司,有限责任合伙企业 环形缓冲器上的可视媒体
CN102571904A (zh) * 2011-10-11 2012-07-11 浪潮电子信息产业股份有限公司 一种模块化设计的nas集群系统构建方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111539176A (zh) * 2019-03-29 2020-08-14 成都海光集成电路设计有限公司 集成电路设计与制造的多实例时间预算
CN112373215A (zh) * 2020-11-13 2021-02-19 深圳市凯沃尔电子有限公司 一种心电信号的热敏打印方法
CN112373215B (zh) * 2020-11-13 2021-10-26 深圳市凯沃尔电子有限公司 一种心电信号的热敏打印方法
CN116484591A (zh) * 2023-04-04 2023-07-25 中煤科工集团北京华宇工程有限公司 选煤厂全流程数字化工程设计的模型构建方法及系统
CN116484591B (zh) * 2023-04-04 2024-04-02 中煤科工集团北京华宇工程有限公司 选煤厂全流程数字化工程设计的模型构建方法及系统

Also Published As

Publication number Publication date
US20170102901A1 (en) 2017-04-13
US9632726B1 (en) 2017-04-25
WO2017062612A1 (en) 2017-04-13
US20190182314A1 (en) 2019-06-13
US10250676B2 (en) 2019-04-02
US20170187786A1 (en) 2017-06-29
CN108139870B (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
CN108139870A (zh) 模块化设备和操作方法
TWI704740B (zh) 提供置於裝置交換站的複數個能源儲存裝置的方法、裝置交換站及伺服器
CN109684054A (zh) 信息处理方法及装置、电子设备及存储器
CN109697153A (zh) 监控方法、监控系统及计算机可读存储介质
US8897804B2 (en) System and method for providing customer support using a location-aware portable device
US10200240B2 (en) Method for configuring an M2M system
CN109684071A (zh) 任意工作负载在超融合节点之间的分配
CN109496330A (zh) 用于身体可安装设备的使能无源无线电的功率门控的系统和方法
CN111128153B (zh) 一种语音交互方法及装置
CN107257383B (zh) 一种信息推送方法、装置及存储介质、电子设备
US20190266666A1 (en) Vehicle management device, vehicle management method, and non-transitory computer-readable medium
CN111192143A (zh) 数据处理方法、装置、存储介质及区块链节点
KR20080053022A (ko) 유비쿼터스 컴퓨팅 환경에서의 다목적 최적화 기법을이용한 착용형 컴퓨터 및 그 방법
CN111091825B (zh) 一种构建交互引擎簇的方法及装置
CN105324728A (zh) 用于监控自动化工厂的工业控制系统
US20180011704A1 (en) Development platform for multi-wireless transmission capabilities
CN111128154B (zh) 一种聚合形成交互引擎簇的方法及装置
CN109284095B (zh) 基于开放型机器人系统的用户自开发应用的方法
US10250034B2 (en) Distributed utility resource planning and forecast
KR20210066265A (ko) 위치 정보에 기반한 사용자 추천 서비스를 제공하기 위한 예측 모델을 구축하는 방법 및 시스템
EP2400431A1 (en) Device for managing and controlling behavioural routines
US20230367284A1 (en) Power tracking using a soldier network middleware system
JP7032957B2 (ja) 対象状態情報報管理システム及び対象状態情報管理方法
US11751273B2 (en) Activation or deactivation of a virtual subset of a network dedicated to a service for a terminal
KR20180058642A (ko) 네트워크 슬라이스를 관리하는 방법 및 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1253824

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant