nvme1.3 Feature - Telemetry

8.14 Telemetry

遥测技术使制造商能够收集内部数据日志,以改善产品的功能和可靠性。遥测数据的收集可以由Host或者Controller进行发起。遥测数据以Telemetry Host-Initiated log page or the Telemetry Controller-Initiated log page (refer to section5.14.1.7 and 5.14.1.8)的形式被返回到Host。抓取的数据由厂商自定义。遥测功能定义了收集厂商特定数据的机制。Controller可以Identify Controller中的Log Page Attribute中声明此支持。

通过收集遥测数据来发现问题的一个非常重要的方面是有能力限定不同的问题。建立问题到数据的一对一映射时最基本的。如果未建立一对一映射,则存在以下风险:几个有效负载集合看起来是不同的,但实际上都是由同一问题引起的。相反,单个有效载荷集合可能具有由多个问题混合在一起而导致的有效载荷,从而在确定根本原因方面造成了额外的复杂性。因此,在手机遥测数据的大小上时非常灵活的,通常使用三段数据。

第一个阶段确定问题存在并通过收集最少的数据来完成不同问题的区分。一旦实际问题数量得到确定,另一个阶段就很有必要取收集实际信息。在第二阶段,收集并分析有针对性的更深入的中等大小的数据,以找出问题的根源。对于不常见问题,无法通过第一第二阶段的遥测数据得出原因的,可以使用第三阶段遥测数据来诊断这个问题。

对于这两种遥测数据的定义,每种遥测数据Log由一组Telemetry Data Blocks组成。每个Telemetry Data Block为512Byte。每个遥测数据Log被分为三个遥测数据区域。所有的遥测数据区域起始都在Telemetry Data Block 1。每个遥测数据区域都应当代表了在获取遥测数据时Controller的内部状态。

每个遥测数据区都旨在捕获更丰富的数据集,以帮助解决问题。遥测数据区域1旨在具有较小的有效载荷(即第一阶段),遥测数据区域2旨在具有中等尺寸的有效载荷(即第二阶段),而遥测数据区域3旨在具有较大有效载荷(即第三阶段)。每个遥测数据区域的大小在收集遥测数据时根据厂商自定义的。也有可能Host会检索出所有三个遥测数据区域来进行更好的分析问题。

Host-Initiated和Controller-initiated遥测数据的准备,收集和提交是相似的。 主要区别在于触发收集的因素。对于遥测数据收集的操作过程如下:

  1. Host使用Identifies Controller Data中的数据判断Temeletry是否支持。
  2. 如果需要的话,Host准备一块区域去存放Telemetry数据。
  3. 接收Controller-Initiated Telemetry Data的通知信息,Host使能异步事件配置中的Telemetry Log Notices(参见5.21.1.11节)。
  4. 如果Host决定去收集Host-Initiated遥测数据或者Controller通知Host Controller-Initiated遥测数据是可获得的:
  1. Host读Telemetry Data Area。也可能host会收集Telemetry Data Area 1,2和3。当读到Controller-Initiated Log的最后一部分时,Host会将Get Log Page中的Retain Asynchronous Event清0。
  2. 如果是Controller-Initiated Log,Host会重读Log Page的Header来确信Telemetry Controller-initiated Data Generation Number和读到的原始值匹配。如果不匹配,那么数据获取是不连贯,需要重读Log。
  3. 当所有遥测数据都被保存后,这个数据应当被发送给Controller的厂商。

 

典型的Host-Initiated数据收集的触发条件是System Crash。但也可能是在正常的操作期间发起的。Host下发Get Log Page - Host-Initiated命令时,会将Create Telemetry  Host-Initiated Data bit置为1.Controller应当快速完成这个命令(例如:小于1秒)来避免在收集到Telemetry Data之前用户重启了系统。

Controller会使用异步事件通知Host去收集Controller-Initiated遥测数据。Host也可以通过Telemetry Host-initiated或者Telemetry Controller-initiated中的Telemetry Controller-initiated Data Available字段来决定可不可以获取Telemetry Controller-initiated Data。一旦Host开始读取Telemetry Data,Controller应当避免修改Controller-initiated数据,知道host完成了所有Controller-Initiated数据的读取。

当Controller替代了新的Controller-Initiated Data时,Controller应当增加Telemetry Controller-Initiated Data Generation Number字段。Host需要确认Telemetry Controller-Initiated Data Generation Number字段在开始获取数据和结束获取之间没有更改,以保证数据的连续性。

8.14.1 Telemetry Data Collection Examples (Informative)

This section includes several examples of Telemetry Host-Initiated Data Areas for illustration. The same

concepts apply to the Telemetry Controller-Initiated Data Areas.

If a Telemetry Host-Initiated log page has no data for collection, then the following fields are all cleared to 0h:

  1. Telemetry Host-Initiated Data Area 1 Last Block = 0;
  2. Telemetry Host-Initiated Data Area 2 Last Block = 0; and
  3. Telemetry Host-Initiated Data Area 3 Last Block = 0.

When all three telemetry data areas are populated, then the Telemetry Host-Initiated log page has different

values in each of the Telemetry Host-Initiated Data Area n Last Block fields. For example, the following values correspond to the layout shown in Figure 478:

  1. Telemetry Host-Initiated Data Area 1 Last Block = 65;
  2. Telemetry Host-Initiated Data Area 2 Last Block = 1,000; and
  3. Telemetry Host-Initiated Data Area 3 Last Block = 30,000.

As a result of telemetry data areas being made up of a single set of Telemetry Data Blocks starting at

Telemetry Data Block 1, the telemetry data contained in Telemetry Data Block 1 through Telemetry Data

Block 65 of data area 1, data area 2, and data area 3 is the same. In addition, the telemetry data contained

in Telemetry Data Block 66 through Telemetry Data Block 1,000 of data area 2 and data area 3 is the same.

 

 

When only the second data areas is populated, then the Telemetry Host-Initiated log page has no data in

Telemetry Data Area 1 shown by having its corresponding last block value cleared to 0h, and no additional

data in Telemetry Data Area 3 shown by having its corresponding last block value set to the same value as

the last block value for Telemetry Data Area 2. For example, the following values correspond to the layout

shown in Figure 479:

  1. Telemetry Host-Initiated Data Area 1 Last Block = 0;
  2. Telemetry Host-Initiated Data Area 2 Last Block = 1,000; and
  3. Telemetry Host-Initiated Data Area 3 Last Block = 1,000.

As a result of telemetry data areas being made up of a single set of Telemetry Data Blocks starting at

Telemetry Data Block 1, the telemetry data contained in Telemetry Data Block 1 through Telemetry Data

Block 1,000 of data area of data area 2 and data area 3 is the same.

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值