Design as You See FIT 阅读笔记
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
g_{i} \rightarrow struck\ gate \\
E \rightarrow set\ of\ flipped\ latches \\
CFIT_{g_{i} \rightarrow E}: 产生于g_{i},\ 被\ E\ 捕获的软错误
\end{cases} \\
\]
CFIT 依赖于电气、逻辑和时序掩盖,所以也依赖于电路的输入向量。
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\) 的敏化路径。
\]
当给定输入向量时,\(g_{j}\) 被粒子轰击产生瞬态脉冲被下游锁存器锁存的概率。
\]
- \(R(q, t)\): 粒子轰击逻辑门产生电荷量为q,产生时间为t 的瞬态脉冲的概率
- 粒子轰击逻辑门产生软错误的两个关键因素:引起信号翻转所需要的电荷量;该门产生大于此电荷量的概率。这两个因素都依赖于门的输入状态。
Pre-characterizing gates
收集到的电荷要产生error,它必须要能够对电容充电以产生和传播电压毛刺。
\]
Path-Based Analysis
基于一个前提:路径不会显著衰减毛刺,逻辑门的 FIT 只依赖于它的输入、负载电容和敏化路径延迟。
\]
- \(\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个步骤处理:
- 电路状态变量采样值\(l \text{ from } L_{S}\),随机输入状态\(i \text{ to circuit inputs } I\),共同构成组合逻辑的输入向量。输入向量通过DAG传播。
- 一旦输入向量传播完毕,通过DAG的回溯确定每一条敏化路径的延迟。
- 对于电路中的每一个门,其敏化路径和终止锁存器列表已知,计算其 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 阅读笔记的更多相关文章
- 《大象Think in UML》阅读笔记(三)
Think in UML 阅读笔记(三) 把从现实世界中记录下来的原始需求信息,再换成一种可以知道开发的表达方式.UML通过被称为之概念化的过程来建立适合计算机理解和实现的模型,这个模型被称为分析模型 ...
- Keras 文档阅读笔记(不定期更新)
目录 Keras 文档阅读笔记(不定期更新) 模型 Sequential 模型方法 Model 类(函数式 API) 方法 层 关于 Keras 网络层 核心层 卷积层 池化层 循环层 融合层 高级激 ...
- 阅读笔记——《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> ...
- 阅读笔记 1 火球 UML大战需求分析
伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本 <火球 UML大战需求分析>,首先 ...
- [阅读笔记]Software optimization resources
http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++ 7. The efficiency of differe ...
- 《uml大战需求分析》阅读笔记05
<uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...
- <<UML大战需求分析>>阅读笔记(2)
<<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...
- uml大战需求分析阅读笔记01
<<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...
- Hadoop阅读笔记(七)——代理模式
关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Ha ...
- Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable
酒,是个好东西,前提要适量.今天参加了公司的年会,主题就是吃.喝.吹,除了那些天生话唠外,大部分人需要加点酒来作催化剂,让一个平时沉默寡言的码农也能成为一个喷子!在大家推杯换盏之际,难免一些画面浮现脑 ...
随机推荐
- curl 查看响应时间
curl -o /dev/null -s -w "time_namelookup:%{time_namelookup}\ntime_connect: %{time_connect}\ntim ...
- python题mhy
def save(s): f=open("test.txt","wt") f.write(s["name"]+"\n") ...
- Centos7下搭建部署DoClever接口管理平台
项目地址: github:https://github.com/sx1989827/DOClever 码云:https://gitee.com/sx1989827/SBDoc 1.根据官方文档,先安装 ...
- 服务器安装node
卸载步骤[未安装请忽略] 1.卸载npm sudo npm uninstall npm -g 2.卸载node yum remove nodejs npm -y 安装步骤 1.下载 wget http ...
- 将 Sql Server 表信息 C# 对象化 小工具_ 张光荣 的 正能量
注: a.此程序所得到的结果是根据本人个人习惯生成,所以,肯定不完全适合所有人使用,重在想法...然后个人根据个人需求作出更进...b.程序中可能会出现数据库连接的错误提示[原因概是在sql 连接过程 ...
- MySql创建表遇到的问题
SQL语句如下: CREATE TABLE IF NOT EXISTS `student`{ `id` INT(4) NOT NULL COMMENT '学号', `name` VARCHAR(30) ...
- binom_test
bt <- function(a, b, p = 0.5) {binom.test(a, b+a, 0.5, alternative= c("two.sided"), con ...
- git的回退以及合并,删除什么的
有时候不小心合并了别的分支中的commit.我们需要回退某些提交记录.可以通过reset来操作,reset 会回退到指定commit.这种方式会删除记录,我们最好使用revert命令来操作 git r ...
- ZooKeeper启动报错,未成功开启服务
1.问题示例 (1)启动ZooKeeper服务报错 [Hadoop@master ~]$ zkServer.sh statusZooKeeper JMX enabled by defaultUsing ...
- VSCode 开发Vue + ElementUI
参考 (1)VSCode 开发Vue + ElementUI (2)玩转VSCode-完整构建VSCode开发调试环境 (shuzhiduo.com) (3)使用vscode搭建vue项目并引用ele ...