未来物联网系统中的无故障数据存储

本文作者:Nilesh Badodekar       点击: 2018-08-28 14:47
前言:
几十年来,远程控制节点的基本架构都是由控制器、传感器、本地存储器、网络连接接口和电池组成。这一架构广泛应用于实际操作所控制的系统中。在工业自动化系统中,控制器以不同速率监控多个传感器,将已标记时间的传感器数据保存在本地或扩展存储器内,然后通过ProfiBus等工业标准总线传输数据。在高级驾驶辅助系统(ADAS)或车辆事件记录器(EDR)中,多个MCU能够同时采集、控制汽车电子系统的数据,从而提供优质的驾驶体验与无故障的数据保障。医疗系统也有类似的应用:通过传感器获得的关键患者数据,将被存储在本地,或者定期上传进行集中存储。

这些系统都在试图解决数据采集、关键数据存储以及基于数据分析采取相应行动过程中的核心和基础问题。但是,不同系统解决问题的侧重点也有所不同。工业系统倾向于在很短的时间间隔内,从众多不同的传感器中采集海量数据,同时必须在本地和远程留存详细的日志记录。汽车系统数据生成速率较低,但数据重要性高。在某些情况下,数据的丢失或将会威胁驾乘人员的生命安全。大多数汽车的使用寿命都超过十年,因此在选择存储器时,其使用寿命与可靠性便成为了十分重要的考量标准。便携式医疗系统在选择理想的数据存储时,则注重功耗的表现。由于植入式医疗器械、助听器等设备都是由电池进行驱动,因此它们更倾向于选择能耗低同时数据存储精确度高的存储器。兼具长期可靠性和低能耗的无故障数据存储,往往成为系统设计师选择存储产品的重大挑战。

随着物联网的逐步兴起,所有设备都开始通过网络实现互联。保守估计,2020年将有100亿台设备实现联网,其中包括汽车、工业自动化设备、植入式医疗器械、可穿戴设备和智能家居等新一代产品。下一代5G网络已经开始在某些地区部署并有望承担上述设备产生的大部分流量。但是,数据科学家和系统设计师仍有几个尚未解决的问题:

哪些设备需要与云连接?需要传播多少信息?有多少信息能在本地处理?谁来支付云的费用?

一个方案是把所有信息都上传到云,远程对信息进行处理。但这一方案只适用于规模小而分散的系统。随着世界互联的程度不断提高,将会有大量甚至过剩的系统进行信息的上传,在这样的情况下我们需要考虑网络和本地两种存储和处理的成本差异。在行驶过程中,一辆自动驾驶汽车每小时将会生成数G的数据。因此为了预测未来的需求,我们现在必须决定哪些信息需要实时传送、哪些可以在本地存储,从而日后再进行压缩传送。工业和医疗领域的系统设计师面临着同样的问题。在“工业4.0”的进程中,“上传所有数据到云”的方式正在逐步转变成为“本地处理,智能上传”的方式。因此,如何选择最好的本地数据存储对未来的系统发展极为重要。

为了保存重要数据,这些系统均需要高可靠、低能耗、高安全性的存储器。一个方法是使用现有的闪存来记录数据。闪存技术具有高效读取的能力,因此已经被广泛用于启动代码和固件的存储。对于现有系统的设备,在执行写入操作时,设计师无需了解闪存的技术限制,即可使用闪存来记录数据。闪存单元只有在事先已被擦除的情况下才能存储新数据。对闪存单元进行编程时,可将逻辑值由“1”变为“0”。在下一次升级中,如果存储单元需要保持逻辑值“1”,就需要擦除数据。为了加快擦除速度、缩短程序时间,闪存制造商设计了各种页、块和扇区架构。页是能够一次编程写入闪存的最小数据存储单位。闪存设备设有内部的页容量缓冲区,用于临时数据存储。当外部接口的数据传输完成时,设备将立即对主阵列中被擦除的页执行页程序。如果该页包含旧数据,则必须在程序启动前予以擦除。每次执行擦除时,闪存单元都会退化。这一现象通常作为在闪存的耐久性指标进行量化记录。耐久性最好的闪存设备一般可以承受10万次的擦除程序循环,在达到这一限值后将无法保证存储的稳定性。尽管这一数字看起来很巨大,但这一数字甚至连低端的数据记录系统的需求都很难满足。

某些制造商则采用字节编程,并且把编程由缓冲区推到闪存进行。尽管这一设计可以简化设备内的程序运行,但却不能使闪存摆脱潜在的耐久性限制。为了抵消上述限制,系统设计师被迫采用一种复杂的文件系统来保证闪存单元的耗损均衡(wear levelling)。文件系统的软件会减缓系统的运行速度。

设想一种情况,设计师考虑使用一种基于闪存的存储器来记录数据。在工业自动化和资产管理系统中,传感器节点会以每秒数次的速度抓取数据,并定期对各种传感器进行取样,然后整理数据包上传网络。一般来说,数据包的取样数从16字节到128字节不等。由于停电的风险不可能完全避免,为了防止数据丢失,设计师使用非易失性存储器来存储数据。振动传感器或步进电机位置传感器每几毫秒都会发送脉冲式数据,而温度或湿度传感器则每隔几秒才发送一次数据,数据包则存储众多传感器的数据。
  


下表为数据包容量与取样率的比较分析,以及数据记录时耗损闪存的规律。分析使用了10万次耐久循环的8兆闪存 
 

Packet size of Sample (in Bytes)

Sampling rate (in ms)

Days in field with no failure

Years in field with no failure

1

1

9709.04

26.60

2

1

4854.52

13.30

4

1

2427.26

6.65

8

1

1213.63

3.33

16

1

606.81

1.66

32

1

303.41

0.83

64

1

151.70

0.42

128

1

75.85

0.21

 

Packet size of Sample (in Bytes)

Sampling rate (in ms)

Days

Years

1

10

97090.37

266.00

2

10

48545.19

133.00

4

10

24272.59

66.50

8

10

12136.30

33.25

16

10

6068.15

16.63

32

10

3034.07

8.31

64

10

1517.04

4.16

128

10

758.52

2.08

 

Packet size of Sample (in Bytes)

Sampling rate (in ms)

Days

Years

1

0.1

970.90

2.66

2

0.1

485.45

1.33

4

0.1

242.73

0.67

8

0.1

121.36

0.33

16

0.1

60.68

0.17

32

0.1

30.34

0.08

64

0.1

15.17

0.04

128

0.1

7.59

0.02

 

Packet size of Sample (in Bytes)

Sampling rate (in ms)

Days

Years

1

0.01

97.09

0.27

2

0.01

48.55

0.13

4

0.01

24.27

0.07

8

0.01

12.14

0.03

16

0.01

6.07

0.02

32

0.01

3.03

0.01

64

0.01

1.52

0.00

128

0.01

0.76

0.00

 
以下图表对这一数据进行了明确解读。我们发现,对于每1毫秒记录8-16字节数据的低端系统,8兆闪存会在5年内损耗。但是,汽车或工业系统的损耗期限应当超过10年。
 

 
如果采用简单增加闪存这种低成本、高风险的的方式,则需要复杂的文件系统对损耗均衡进行管理。如果没有部署文件系统,系统则需要在替换整个存储器之后,定期执行芯片擦除循环。在今天的物联网世界中,随着数据采集终端的持续激增,这一问题正在不断恶化。对于存储产品寿命期内写入循环次数不超过1000次的启动代码和固件程序来说,基于闪存的存储器是非常合适的。解决这种数据记录问题的一个理想方法是:使用高耐久性和非易失性的存储器,它们不会由于程序和擦除的延迟而造成数据风险。F-RAM具备承受高达1014次擦除循环的耐久性,具备瞬间非易失性,且无需编程和擦除操作,实时存储进入设备接口的所有数据。例如,一个4兆的 F-RAM存储能够在每10微秒处理128字节的数据流,在1000多年的时间内都不会损耗完毕。

F-RAM存储器单元只有在写入或读取时才会耗电,待机能耗只有几微安培,因此F-RAM是那些依仗电池驱动产品的最佳解决方案。F-RAM适用于对能耗要求较高的助听器和用于心率采样的高端可穿戴医疗设备。此外,汽车系统中的数据会持续不断地了录入存储器,基于闪存的系统无法在闪存“编程”期间抓取数据。只有基于F-RAM的数据存储,可以为该系统提供高可靠性。

具备近乎无限的耐久性、超低功耗和瞬间非易失性的F-RAM非常适合用于互联世界中的重要数据存储。了解关于F-RAM技术和赛普拉斯半导体有限公司的F-RAM解决方案,请登录
www.cypress.com/fram