Design as You See FIT

作者及会议名称:DATE 2009, Daniel Holcomb, UC Berkeley

本文的重点贡献:提出了一种新方法计算时序电路发生系统级故障对输出产生影响的概率。

  • CFIT: 计算组合单元的故障率,结合逻辑屏蔽、时序屏蔽和电气屏蔽。组合单元对整个电路故障率的贡献可由 FIT Rate 和 该单元发生软错误导致系统级故障的概率 计算得到。
  • SFIT: 计算时序单元的故障率,时序单元对整个电路故障率的贡献定义为 其FIT Rate 与 该单元发生信号翻转导致系统级故障的概率(\(P_{l_i}\)) 的乘积。
  • 方法的输出是一个节点和锁存器的列表,根据它们对整个电路的 FIT 贡献排序

Overview of Approach

时序电路 \(C_s\) 形式化地建模为一个元组 \(<I, O, L, \delta, \rho, \theta>\)

  • \(I \rightarrow Input Signals\)
  • \(O \rightarrow OutputSignals\)
  • $L \rightarrow $ 状态变量集合(锁存器)
  • $\delta \rightarrow $ 确定锁存器下一状态的函数(\(2^I × 2^L \Rightarrow 2^L\))
  • \(\rho \rightarrow OutputFunction\)
  • \(\theta \rightarrow InitialState\)

三个输入

  • 时序电路 \(C_s\)
  • 电路规范 \(S\) (一组断言或者一个参考模型)
  • \(Workload\ W\),电路在工作负载 W 上满足电路规范

输出

  • 模拟过程中锁存器的状态集合
  • 输入向量集合

Circuit-Level Soft Error Analysis

\[\begin{cases}
g_{i} \rightarrow struck\ gate \\
E \rightarrow set\ of\ flipped\ latches \\
CFIT_{g_{i} \rightarrow E}: 产生于g_{i},\ 被\ E\ 捕获的软错误
\end{cases} \\
\]

CFIT 依赖于电气、逻辑和时序掩盖,所以也依赖于电路的输入向量。

\[\begin{cases}
CFIT_{g_{i} \rightarrow E} = \frac{1}{|L_s|} \sum_{v \in L_{s}}{(CFIT_{g_{i \rightarrow E}}^v)} \qquad (2-1)\\
FIT_{l_{i}} = LFIT_{l_{i}} + \sum_{\forall g_{i}}{(CFIT_{g_{i} \rightarrow l_{i}})} \qquad (2-2)
\end{cases}
\]
  • 公式2-1:某个逻辑门被粒子轰击产生瞬态脉冲被下游锁存器捕获的概率 \(\Leftrightarrow CFIT\)
  • 公式2-2:某个锁存器自身被粒子轰击产生状态翻转 + 捕获上游故障瞬态脉冲的概率 \(\Leftrightarrow SFIT\)

粒子轰击用一个元组 (q, t) 表示,q 代表轰击产生的电荷量,t 代表轰击产生的时间(0表示时钟到来),\(\pi\) 代表从\(g_i\) 到 \(l_i\) 的敏化路径。

\[bool\ function: \quad N_{g_{i} \rightarrow l_{i}}^{\pi}{(q, t)}
\]

当给定输入向量时,\(g_{j}\) 被粒子轰击产生瞬态脉冲被下游锁存器锁存的概率。

\[CFIT_{g_{i} \rightarrow E}^{v}\ =\ \textstyle \int_{q = 0}^{\infty} \textstyle \int_{t = 0}^{t_{cycle}} {R(q, t) * N_{g_i \rightarrow E}^{v} {(q, t)} dtdq}
\]
  • \(R(q, t)\): 粒子轰击逻辑门产生电荷量为q,产生时间为t 的瞬态脉冲的概率
  • 粒子轰击逻辑门产生软错误的两个关键因素:引起信号翻转所需要的电荷量;该门产生大于此电荷量的概率。这两个因素都依赖于门的输入状态。

Pre-characterizing gates

收集到的电荷要产生error,它必须要能够对电容充电以产生和传播电压毛刺。

\[I(t) \propto \frac{1}{\tau} \sqrt{\frac{t}{\tau}}\ exp(\frac{-t}{\tau})
\]

Path-Based Analysis

基于一个前提:路径不会显著衰减毛刺,逻辑门的 FIT 只依赖于它的输入、负载电容和敏化路径延迟。

\[N_{g_{i} \rightarrow l_{i}}^{\pi} {(q, t)} = \hat{N}_{g}^{s} {(q, t - d_{\pi})}
\]
  • \(\pi: g_{i} \rightarrow l_{i} \text{的一条敏化路径}\)
  • \(s: \text{Input state}\)
  • \(\hat{N}: \text{pre-characterized gate}\)

BFIT Implementation

整体设计:BFIT工具读入一个网表和预表征的门库(gate library),从网表中创建DAG(有向无环图),最后通过C++模型输出一个可执行的仿真程序。

  • 输入向量:从相同电路的时序仿真采样得到
  • FIT:计算所有输入向量得到的 FIT,然后取均值
  • 每个输入向量经过3个步骤处理:
    1. 电路状态变量采样值\(l \text{ from } L_{S}\),随机输入状态\(i \text{ to circuit inputs } I\),共同构成组合逻辑的输入向量。输入向量通过DAG传播。
    2. 一旦输入向量传播完毕,通过DAG的回溯确定每一条敏化路径的延迟。
    3. 对于电路中的每一个门,其敏化路径和终止锁存器列表已知,计算其 FIT。

Experiment Result

ISCAS'89 Benchmarks

本文做的一些前提假设:

  • 假设每个锁存器都已经被加固了,即不会由于粒子轰击直接导致锁存器翻转 \(\Leftrightarrow LFIT = 0\)
  • 假设系统故障是由一个或多个锁存器捕获任一错误引起的,即锁存器捕获的任何错误信号都会导致系统错误 \(\Leftrightarrow P_{l_{i}} = 1\)

总结

这篇文章本质上是在分析 gate cell 被粒子轰击产生瞬态脉冲被下游锁存器捕获的概率,而锁存器捕获到瞬态脉冲传播到输出的概率是没有分析的(默认所有捕获的瞬态脉冲都能传播到输出端,即\(P_{l_{i}} = 1\))。

使用这个方法可以得到时序电路中每个门和锁存器对整个电路软错误率的贡献。如果对于纯组合电路(把输出看成锁存器),就可以得到每个门的软错误率数据。

Design as You See FIT 阅读笔记的更多相关文章

  1. 《大象Think in UML》阅读笔记(三)

    Think in UML 阅读笔记(三) 把从现实世界中记录下来的原始需求信息,再换成一种可以知道开发的表达方式.UML通过被称为之概念化的过程来建立适合计算机理解和实现的模型,这个模型被称为分析模型 ...

  2. Keras 文档阅读笔记(不定期更新)

    目录 Keras 文档阅读笔记(不定期更新) 模型 Sequential 模型方法 Model 类(函数式 API) 方法 层 关于 Keras 网络层 核心层 卷积层 池化层 循环层 融合层 高级激 ...

  3. 阅读笔记——《How a Facebook rejection pushed me to start and grow a profitable business in 12 months》

    阅读笔记——<How a Facebook rejection pushed me to start and grow a profitable business in 12 months> ...

  4. 阅读笔记 1 火球 UML大战需求分析

    伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本   <火球 UML大战需求分析>,首先 ...

  5. [阅读笔记]Software optimization resources

    http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++   7. The efficiency of differe ...

  6. 《uml大战需求分析》阅读笔记05

    <uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...

  7. <<UML大战需求分析>>阅读笔记(2)

    <<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...

  8. uml大战需求分析阅读笔记01

    <<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...

  9. Hadoop阅读笔记(七)——代理模式

    关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Ha ...

  10. Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable

    酒,是个好东西,前提要适量.今天参加了公司的年会,主题就是吃.喝.吹,除了那些天生话唠外,大部分人需要加点酒来作催化剂,让一个平时沉默寡言的码农也能成为一个喷子!在大家推杯换盏之际,难免一些画面浮现脑 ...

随机推荐

  1. error: You must be logged in to the server (Unauthorized) 问题处理

    故障现象: 执行kubectl 命令时: 提示"error: You must be logged in to the server (Unauthorized)" 分析: 权限问 ...

  2. EF OwnsOne 主键不自增

    menu public class Menu { /// <summary> /// id /// </summary> [Key, DatabaseGeneratedAttr ...

  3. AD使用积累 - 板子上开孔的方法

    有时候画板子时需要需要在板子上开一些槽孔,可以参考如下两种方法: 第一种方法:封闭曲线转换为槽孔. 1.在机械层画一个封闭图形或者画一根线: 2.选中这个图形或线,选择工具 - 转换 - 以选中的元素 ...

  4. 树莓派3B+ wifi设置

    环境: 硬件:树莓派 3b+ 固件:2018-04-18-raspbian-stretch.img 一.树莓派配置 1.1.wifi配置方法一(已测试,ok) 参考: https://www.cnbl ...

  5. 一、Basic CSS 知识整理

    一.编写CSS的几种方式 <style> /* id选择器 */ #id_test { color: red; } /* 标签选择器 */ h2 { color: blue !import ...

  6. centos下vi 命令用法

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...

  7. 关于QT编译程序找不到MSVCRT.DLL和其他动态链接库的解决办法

    先上图(一大堆无法解析的外部符号): 解决办法分两个步骤: 1.系统环境变量设置,把这些dll文件所在目录加入到PATH中.比如C:\Windows\SysWOW64, C:\Windows\Syst ...

  8. python之自动化连连看脚本-第一关不动-小记

    (如想转载,请联系博主或贴上本博地址) 仅供学习python之用,勿用做商业用途.运行环境为1920*1080屏幕,python3.7,win7,谷歌浏览器版本 75.0.3770.100. 参考ht ...

  9. appium之元素定位方法

    做App UI自动化的时候,appium使用最频繁的应该就是定位元素了. Appium常用的元素属性值: resource-id:resource-id属性一般ID是唯一的,如果元素中有ID的话,优先 ...

  10. 9. 实现包括前端后台的预约洗狗功能 - 使用Power Automate发送预约邮件 - 使用Power Automate发送带选择按钮(option)的邮件

    ​ 除了发送普通的电子邮件外,我们还可以选择发送带选项的电子邮件来得到客户的反馈,下面我们就一起来创建带有选择功能的电子邮件吧. 1. 打开我们的Power Portal,在左侧导航栏选择流,点击左上 ...