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. 记一次因为关键字OUT 导致的后台"sql injection violation" 报错的问题

    在navicat和mssm中执行用字段别名'out'均没有问题,但是在mybatis里使用就会报 "sql injection violation, syntax error: ERROR. ...

  2. 字符流---->字符过滤流 缓冲流 : -----> printWrite用法:和BufferedReader用法

    printWrite用法:1.创建字符节点流FileWriter fw = new FileWriter("Files\\bufchar.txt");2创建字符过滤流 PrintW ...

  3. POJ3723 Conscription 题解

    start: 2021-08-04 16:56:50 题目链接: http://poj.org/problem?id=3723 题目内容: Description Windy has a countr ...

  4. AT ARC092F Two Faced Edges

    题意:给定一个有向图,保证无重边自环,求将图中的每条边反向后强联通分量的个数是否会改变. 数据范围:$n$ $≤$ $1e3$,$m$ $≤$ $2e5$. 首先考虑一条边的影响. 因为一条边只能连接 ...

  5. IDEA设置编码为UTF-8编码

    IntelliJ IDEA 统一设置编码为utf-8编码 问题一: File->Settings->Editor->File Encodings 网上的方法大部分都是错的,上图的单选 ...

  6. 转载·Charles4.2.8 开启macOS Proxy ,MacOS10.15 Catalina版本提示APP权限为只读

    转载地址:https://superuser.com/questions/1490116/charles-4-2-8-cannot-configure-your-proxy-settings-whil ...

  7. 更改windows powershell默认路径

    查看配置文件位置 $profile 修改配置文件 code $profile 加上 Set-Location C:\Users\zzy81\Desktop

  8. porps传参

    porps传参(最常用的 布尔传值)(基于前面的步骤进行修改) ①index.js //定义动态路由 props:trueconst routes =[ {path:"/user/:id/: ...

  9. java 线程池 带返回值

    import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import ja ...

  10. C/C++ 顺序表的初始化、添加、插入、删除(删除顺序表中指定的所有元素)

    #include <iostream> #include <stdlib.h> #define MAX_SIZE 100 using namespace std; typede ...