CN101783184B - 基于fpga的ddr2内存故障注入工具及注入方法 - Google Patents

基于fpga的ddr2内存故障注入工具及注入方法 Download PDF

Info

Publication number
CN101783184B
CN101783184B CN 201010300357 CN201010300357A CN101783184B CN 101783184 B CN101783184 B CN 101783184B CN 201010300357 CN201010300357 CN 201010300357 CN 201010300357 A CN201010300357 A CN 201010300357A CN 101783184 B CN101783184 B CN 101783184B
Authority
CN
China
Prior art keywords
data
state
fault
result
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 201010300357
Other languages
English (en)
Other versions
CN101783184A (zh
Inventor
左德承
杨孝宗
张展
钱军
周海鹰
刘宏伟
董剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN 201010300357 priority Critical patent/CN101783184B/zh
Publication of CN101783184A publication Critical patent/CN101783184A/zh
Application granted granted Critical
Publication of CN101783184B publication Critical patent/CN101783184B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Retry When Errors Occur (AREA)

Abstract

基于FPGA的DDR2内存故障注入工具及注入方法,它涉及信息技术领域。它解决了目前在进行容错计算机评测时,缺乏对内存相关的容错机制进行验证的问题,本发明的注入工具包括宿主机和注入器,所述注入器包括通讯模块、主控模块、同步控制模块和注入及结果回收模块;本发明的注入方法包括宿主机软件工作过程和注入器工作过程,所述注入器工作过程包括串口数据接收状态机工作过程、串口数据发送状态机工作过程、命令执行状态机工作过程、内存状态监控状态机工作过程、地址触发状态机工作过程、时间触发控制状态机工作过程和注入及结果回收工作过程。本发明适用于高端容错计算机评测。

Description

基于FPGA的DDR2内存故障注入工具及注入方法
技术领域
本发明涉及信息技术领域,具体涉及基于FPGA的DDR2内存故障注入工具及注入方法。
硬件故障注入已经成为一种被广泛认可的对容错机制进行验证的重要方法,但自从硬件故障注入方法被提出以来,大多数的研究者都将注意力集中在计算机系统的处理器上,设计出了许多关于处理器的硬件故障注入工具,而计算机系统中的其他部件却很少被关注。一台容错性能优异的计算机系统,尤其是高端容错计算机系统,容错机制应该是全面的,不仅有与处理器相关的容错机制,也应该有与其他部件相关的容错机制。
内存是计算机系统中仅次于处理器的重要部件,内存一旦出现问题将会影响整个计算机系统的工作。但目前在进行容错计算机评测时,缺乏对内存相关的容错机制进行验证。
对内存相关的容错机制进行验证的意义在于:内存存储着系统即将执行的程序和相关的数据,以及各种运算结果,尽管内存本身并不对它们进行任何的处理,但内存是处理器最主要的数据来源,对内存进行故障注入完全可以达到对处理器进行管脚级故障注入的效果;计算机系统的外设同样需要与内存进行数据交换,对内存进行故障注入在某种程度上也可以模拟外设的故障;此外,计算机厂商大多执行美国电子器件工程联合会JEDEC
(Joint Electron Device Engineering Council)
的内存标准,这使得内存的通用性比处理器要好得多,内存的硬件故障注入工具也就比处理器的硬件注入工具有更好的通用性。
发明内容
为了解决目前在进行容错计算机评测时,缺乏对内存相关的容错机制进行验证的问题,本发明提供了基于FPGA的DDR2内存故障注入工具及注入方法
本发明的基于FPGA的DDR2内存故障注入工具,它包括宿主机和注入器,所述注入器包括通讯模块、主控模块、同步控制模块和注入及结果回收模块,宿主机的信号通讯口连接通讯模块的信号通讯口,所述通讯模块的信号输出端连接主控模块的信号输入端,所述主控模块的一个信号输出端连接同步控制模块的信号输入端,所述同步控制模块的信号输出端连接注入及结果回收模块的一个信号输入端,所述注入及结果回收模块的另一个信号输入端连接主控模块的另一个信号输出端,所述注入及结果回收模块的信号输出端连接通讯模块的信号输入端,同步控制模块还设有一个与DDR2内存目标系统进行通讯的信号通讯口,注入及结果回收模块亦设有一个与DDR2内存目标系统进行通讯的信号通讯口;
宿主机,包含宿主机软件,用于提供人机交互方式,实现用户对故障参数的选择,发送故障注入命令,还用于接收注入结果,并对注入结果进行存储和管理;
注入器,由硬件FPGA实现,用于根据接收的故障注入命令,进行故障注入,并实时返回给宿主机注入结果,其中,
通讯模块,用于接收宿主机发送的故障注入命令,还用于向宿主机发送注入结果,所述通讯模块采用RS-232异步通讯方式,所述通讯模块内部固化有串口数据接收状态机、接收缓冲区、串口数据发送状态机和发送缓冲区,
主控模块,用于接收通讯模块输出的命令数据,还用于向同步控制模块注入时间控制命令和开始命令,并向注入及结果回收模块注入通道控制命令,
同步控制模块,用于内存状态监控、地址触发和计时,同步控制模块内部固化有内存状态监控状态机、地址触发状态机和时间触发控制状态机,
注入及结果回收模块,用于对DQS数据进行截获,同时根据截获的DQS数据向DDR2内存目标系统进行故障注入,并将注入结果通过通讯模块发送给宿主机。
本发明的基于FPGA的高端容错计算机评测用DDR2内存故障注入方法,它包括宿主机软件工作过程和注入器工作过程,所述注入器工作过程包括串口数据接收状态机工作过程、串口数据发送状态机工作过程、命令执行状态机工作过程、内存状态监控状态机工作过程、地址触发状态机工作过程、时间触发控制状态机工作过程和注入及结果回收工作过程。
本发明的有益效果:本发明的注入器由硬件FPGA实现,具有较高的灵活性;本发明选用内存故障注入代替传统的处理器故障注入,提高了硬件注入工具的通用性;本发明提供了一种能够用于容错计算机评测的内存故障注入工具和注入方法。
附图说明
图1是本发明的基于FPGA的DDR2内存故障注入工具的系统示意图,图2是本发明的主控模块22原理结构示意图,图3是本发明的注入单元241的原理结构示意图,图4是本发明的结果回收单元242的原理结构示意图,图5是本发明的宿主机软件U的模型示意图,图6是本发明的宿主机软件工作过程流程图,图7是本发明的串口数据接收状态机工作过程示意图,图8是本发明的串口数据发送状态机工作过程示意图,图9是本发明的命令执行状态机工作过程示意图,图10是本发明的内存状态监控状态机工作过程示意图,图11是本发明的地址触发状态机工作过程示意图,图12是本发明的时间触发控制状态机工作过程示意图。
具体实施方式
具体实施方式一:根据说明书附图1具体说明本实施方式,本实施方式所述的基于FPGA的DDR2内存故障注入工具,它包括宿主机1和注入器2,所述注入器2包括通讯模块2-1、主控模块2-2、同步控制模块2-3和注入及结果回收模块2-4,宿主机1的信号通讯口连接通讯模块2-1的信号通讯口,所述通讯模块2-1的信号输出端连接主控模块2-2的信号输入端,所述主控模块2-2的一个信号输出端连接同步控制模块2-3的信号输入端,所述同步控制模块2-3的信号输出端连接注入及结果回收模块2-4的一个信号输入端,所述注入及结果回收模块24的另一个信号输入端连接主控模块2-2的另一个信号输出端,所述注入及结果回收模块2-4的信号输出端连接通讯模块2-1的信号输入端,同步控制模块2-3还设有一个与DDR2内存目标系统3进行通讯的信号通讯口,注入及结果回收模块2-4亦设有一个与DDR2内存目标系统3进行通讯的信号通讯口;
宿主机1,包含宿主机软件U,用于提供人机交互方式,实现用户对故障参数的选择,发送故障注入命令,还用于接收注入结果,并对注入结果进行存储和管理;
注入器2,由硬件FPGA实现,用于根据接收的故障注入命令,进行故障注入,并实时返回给宿主机1注入结果,其中,
通讯模块2-1,用于接收宿主机1发送的控制命令,还用于向宿主机1发送注入结果,所述通讯模块2-1采用RS-232异步通讯方式,所述通讯模块2-1内部固化有串口数据接收状态机、接收缓冲区、串口数据发送状态机和发送缓冲区2,
主控模块2-2,用于接收通讯模块2-1输出的命令数据,还用于向同步控制模块2-3注入时间控制命令和开始命令,并向注入及结果回收模块2-4注入通道控制命令,
同步控制模块2-3,用于内存状态监控、地址触发和计时,同步控制模块2-3内部固化有内存状态监控状态机、地址触发状态机和时间触发控制状态机,
注入及结果回收模块2-4,用于对DQS数据进行截获,同时根据截获的DQS数据向DDR2内存目标系统进行故障注入,并将注入结果通过通讯模块2-1发送给宿主机1。
具体实施方式二:根据说明书附图2具体说明本实施方式,本实施方式是对具体实施方式一的进一步说明,具体实施方式一中所述的主控模块2-2包括命令执行器2-21和锁存器组2-22,所述命令执行器2-21内部固化有命令执行状态机,所述锁存器组2-22包括通道锁存器2-221、故障类型锁存器2-222、通道方向锁存器2-223、条件锁存器2-224、条件通道锁存器2-225、注入间隔锁存器2-226、开始延时锁存器2-227、任务时间锁存器2-228和持续时间锁存器2-229,
命令执行器2-21的命令输出端连接锁存器组2-22的命令输入端;
命令执行器2-21,用于接收通讯模块2-1输出的命令数据,并发送注入开始命令至注入及结果回收模块2-4,同时设置锁存器命令至锁存器组2-22;
锁存器组2-22,用于接收设置锁存器命令进行存储,并向同步控制模块2-3注入时间控制命令和开始命令,还向注入及结果回收模块2-4注入通道控制命令,其中,
通道锁存器2-221,用于存储故障注入的通道选择信息,还用于将所述通道选择信息送往注入及结果回收模块2-4;
故障类型锁存器2-222,用于存储每个通道的故障类型信息,还用于将所述故障类型信息送往注入及结果回收模块2-4;
通道方向锁存2-223,用于存储故障注入的方向信息,还用于将所述方向信息送往注入及结果回收模块2-4,所述方向信息包括读方向、写方向和双向;
条件锁存器2-224,用于存储目标触发条件,还用于将所述目标触发条件送往同步控制模块2-3;
条件通道锁存器2-225,用于存储触发通道的选择信息,还用于将所述选择信息送往同步控制模块2-3;
注入间隔锁存器2-226,用于锁存每次注入结束与下次注入开始之间的时间间隔,还用于将所述时间间隔送往同步控制模块2-3;
开始延时锁存器2-227,用于锁存注入器2开始工作的延迟时间,还用于将所述延迟时间送往同步控制模块2-3;
任务时间锁存器2-228,用于锁存注入器2的全局工作时间,还用于将所述全局工作时间送往同步控制模块2-3;
持续时间锁存器2-229,用于锁存持续时间,还用于将所述持续时间送往同步控制模块2-3。
具体实施方式三:根据说明书附图3具体说明本实施方式,本实施方式是对具体实施方式一或二的进一步说明,具体实施方式一或二所述的注入及结果回收模块2-4包括64个基本单元,每个基本单元包括一个注入单元2-41和一个结果回收单元2-42,
所述注入单元2-41包括第一方向控制开关2-411、读方向触发开关2-412、读数据截获器2-413、读故障产生器2-414、写方向触发开关2-415、写数据截获器2-416、写故障产生器2-417和第二方向控制开关2-418,
第一方向控制开关2-411的数据选通信号输出端连接读方向触发开关2-412的读数据触发输入端,所述第一方向控制开关2-411的待截获读数据输出端连接到读数据截获器2-413的读数据截获输入端,所述第一方向控制开关2-411的写故障数据输入端连接写故障产生器2-417的写故障数据输出端,读方向触发开关2-412的读数据触发输出端连接读数据截获器2-413的截获数据触发输入端,所述读数据截获器2-413的截获数据输出端连接读故障产生器2-414的读故障数据输入端,写故障产生器2-417的写故障数据输入端连接写数据截获器2-416的写数据截获输出端,读故障产生器2-414的读故障数据输出端连接第二方向控制开关2-418的读故障数据输入端,所述第二方向控制开关2-418的待截获写数据输出端连接到写数据截获器2-416的写数据截获输入端,所述第二方向控制开关2-418的数据选通信号输出端连接写方向触发开关2-415的写数据触发输入端,所述写方向触发开关2-415的写数据触发输出端连接写数据截获器2-416的截获数据触发输入端;
结果回收单元2-42包括延迟器2-421、比较器2-422和结果锁存器2-423,
延迟器2-421的延迟数据输出端连接比较器2-422的一个数据输入端,所述比较器2-422的数据输出端连接结果锁存器2-423的结果数据输入端。
具体实施方式四:根据说明书附图5说明本实施方式,本实施方式是对具体实施方式一、二或三的进一步说明,具体实施方式一、二或三所述的宿主机软件U包括用户界面U1、故障注入命令生成模块U2、故障注入进度计算模块U3、故障注入帮助模块U4、故障注入结果回收模块U5、故障注入结果管理模块U6、故障数据库U7和通讯软件模块U8,
用户界面U1,用于实现故障参数输入和检测,并用于显示注入器2的注入进度和注入结果,还用于显示和管理历史注入结果;
通讯软件模块U8,用于实现与注入器2通讯,即接收故障注入命令生成模块U2生成的故障注入命令和发送注入器2返回的故障注入结果;
故障注入命令生成模块U2,用于根据用户界面U1的故障参数生成相应的故障注入命令,还用于输出所述故障注入命令至通讯软件模块U8;
故障注入进度计算模块U3,用于根据故障注入命令计算故障注入进度,还用于将所述故障注入进度反馈给用户界面U1;
故障注入帮助模块U4,用于与用户界面U1链接,并提供DDR2内存故障注入工具使用指南;
故障注入结果回收模块U5,用于接收注入器2经通讯软件模块U8返回的故障注入结果,还用于将所述故障注入结果反馈给用户界面U1;
故障注入结果管理模块U6,用于将从用户界面U1获得的每次故障注入结果存储到故障数据库U7中,还用于故障注入结果的查找和删除;
故障数据库U7,用于存储故障注入参数及故障注入结果。
具体实施方式五:本实施方式所述的基于具体实施方式四所述的基于FPGA的DDR2内存故障注入工具的基于FPGA的高端容错计算机评测用DDR2内存故障注入方法,所述方法包括宿主机软件工作过程和注入器工作过程,所述注入器工作过程包括串口数据接收状态机工作过程、串口数据发送状态机工作过程、命令执行状态机工作过程、内存状态监控状态机工作过程、地址触发状态机工作过程、时间触发控制状态机工作过程和注入及结果回收工作过程。
具体实施方式六:根据说明书5和6具体说明本实施方式,本实施方式是对具体实施方式五的进一步说明,具体实施方式五中所述的宿主机软件工作过程具体为:
步骤一:打开用户界面U1,向所述用户界面U1输入故障参数;
步骤二:用户界面U1判断故障参数是否正确,如果是,执行步骤三,否则返回步骤一;
步骤三:利用故障注入命令生成模块U2生成故障注入命令,并发送故障注入命令给通讯软件模块U8;
步骤四:通讯软件模块U8对故障参数进行确认,如果同意,执行步骤五,否则返回步骤一;
步骤五:启动注入器2,并利用故障注入进度计算模块U3计算故障注入进度,同时反馈给用户界面U1;
步骤六:利用故障注入结果回收模块U5回收故障注入结果,同时反馈给用户界面U1;
步骤七:故障注入结果管理模块U6判断故障注入结果是否存储,如果是,执行步骤八,否则执行步骤九;
步骤八:存储故障注入结果至故障数据库U7,进入步骤九;
步骤九:结束对DDR2内存进行故障注入。
具体实施方式七:根据说明书附图7和8具体说明本实施方式,本实施方式是对具体实施方式五的进一步说明,具体实施方式五中所述的串口数据接收状态机工作过程包括三个逻辑状态:空闲状态、移位接收8位数据状态和接收停止位状态,
在空闲状态,通讯模块2-1检测串口数据帧开始位,当检测到串口数据帧开始位时,进入移位接收8位数据状态;
在移位接收8位数据状态,接收串口数据位,并对所述串口数据位加1,当串口数据位加1后为第8个串口数据位时,输出第8个串口数据位,进入接收停止位状态;
在接收停止位状态,等待第8个串口数据位到达,当第8个串口数据位到达时,停止检测并将8位串口数据写入接收缓冲区,返回空闲状态;
串口数据发送状态机工作过程包括三个逻辑状态:空闲状态、移位发送8位数据状态和发送停止位状态,
在空闲状态,通讯模块2-1检测发送缓冲区不空,当检测到发送缓冲区不空时,进入移位发送8位数据状态;
在移位发送8位数据状态,发送串口数据位,并对所述串口数据位加1,当串口数据位加1后为第8个串口数据位时,输出第8个串口数据位,进入发送停止位状态;
在发送停止位状态,等待第8个串口数据位到达,当第8个串口数据位到达时,停止检测,返回空闲状态。
具体实施方式八:根据说明书附图2和9具体说明本实施方式,本实施方式是对具体实施方式五的进一步说明,具体实施方式五中所述的命令执行状态机工作过程包括空闲状态、注入开始状态、写方向状态、读方向状态、双向状态、通道状态、故障类型状态、条件状态、条件通道状态、持续时间状态、注入间隔状态、开始延时状态和任务时间状态,
在空闲状态,等待接收缓冲区出现数据,当接收缓冲区出现的数据为00000000时,进入注入开始状态,当接收缓冲区出现的数据为00000001时,进入写方向状态,当接收缓冲区出现的数据为00000010时,进入读方向状态,当接收缓冲区出现的数据为00000011时,进入双向状态,当接收缓冲区出现的数据为00000100时,进入通道状态,当接收缓冲区出现的数据为00000101时,进入故障类型状态,当接收缓冲区出现的数据为00000110时,进入条件状态,当接收缓冲区出现的数据为00000111时,进入条件通道状态,当接收缓冲区出现的数据为00001000时,进入持续时间状态,当接收缓冲区出现的数据为00001001时,进入注入间隔状态,当接收缓冲区出现的数据为00001010时,进入开始延时状态,当接收缓冲区出现的数据为00001011时,进入任务时间状态;
在注入开始状态,命令执行器2-21向注入及结果回收模块2-4发出注入开始信号,当向注入及结果回收模块2-4发出注入开始信号完毕,返回空闲状态;
在写方向状态,命令执行器2-21将01送到通道方向锁存器2-223进行锁存,当锁存完毕,返回空闲状态;
在读方向状态,命令执行器2-21将10送到通道方向锁存器2-223进行锁存,当锁存完毕,返回空闲状态;
在双向状态,命令执行器2-21将11送到通道方向锁存器2-223进行锁存,当锁存完毕,返回空闲状态;
在持续时间状态,命令执行器2-21重新从接收缓冲区取出8位数据00001000,并将所述8位数据00001000锁存至持续时间锁存器2-229,当锁存完毕,返回空闲状态;
在注入间隔状态,命令执行器2-21重新从接收缓冲区取出8位数据00001001,并将所述8位数据00001001锁存至注入间隔锁存器2-226,当锁存完毕,返回空闲状态;
在开始延时状态,命令执行器2-21重新从接收缓冲区取出8位数据00001010,并将所述8位数据00001010锁存至开始延时锁存器2-227,当锁存完毕,返回空闲状态;
在条件状态,命令执行器2-21重复4次从接收缓冲区取出8位数据00000110,组成32位数据,并将所述32位数据锁存至条件锁存器2-224,当锁存完毕,返回空闲状态;
在条件通道状态,命令执行器2-21重复4次从接收缓冲区取出8位数据00000111,组成32位数据,并将所述32位数据锁存至条件通道锁存器2-225,当锁存完毕,返回空闲状态;
在通道状态,命令执行器2-21重复8次从接收缓冲区取出8位数据00000100,组成64位数据,并将所述64位数据锁存至通道锁存器2-221,当锁存完毕,返回空闲状态;
在任务时间状态,命令执行器2-21重复8次从接收缓冲区取出8位数据00001011,组成64位数据,并将所述64位数据锁存至任务时间锁存器2-228,当锁存完毕,返回空闲状态;
在故障类型状态,命令执行器2-21重复16次从接收缓冲区取出8位数据00000101,组成128位数据,并将所述128位数据锁存至故障类型锁存器2-222,当锁存完毕,返回空闲状态。
具体实施方式九:根据说明书附图10、11和12说明本实施方式,本实施方式是对具体实施方式五的进一步说明,具体实施方式五中所述的内存状态监控状态机工作过程包括三个状态:读状态、写状态和无操作状态,
在读状态,读出命令,当读出写命令时,进入写状态,当读出激活命令时,进入无操作状态;
在写状态,读出命令,当读出读命令时,进入读状态,当读出激活命令时,进入无操作状态;
在无操作状态,读出命令,当读出读命令时,进入读状态,当读出写命令时,进入写状态;
地址触发状态机工作过程包括四个状态:行地址同状态、行地址异状态、列地址同状态和列地址异状态,
在行地址同状态,判断读/写命令列地址相同,当读/写命令列地址相同时,进入列地址同状态,否则,进入列地址异状态;
在列地址同状态,判断读/写命令列地址不同,当读/写命令列地址不同时,进入列地址异状态,并判断激活命令行地址相同,当激活命令行地址相同同时,返回行地址同状态,否则进入行地址异状态;
在列地址异状态,判断激活命令行地址是否相同,当激活命令行地址相同时,返回行地址同状态,当激活命令行地址不同时,进入行地址异状态;
在行地址异状态,判读激活命令行地址相同,当激活命令行地址相同,返回行地址同状态;
时间触发控制状态机工作过程包括四个状态:停止状态、延时触发状态、持续注入状态和注入间隔状态,
在停止状态,等待注入开始命令到达,当注入开始命令到达时,进入延时触发状态;
在延时触发状态,对注入数据开始延时,当延时时间与开始延时锁存器2-227中数据相等时,进入持续注入状态;
在持续注入状态,判断注入数据持续时间,当持续时间与持续时间锁存器2-229中数据相等时,进入注入间隔状态,当持续时间与任务时间锁存器2-228中数据相等时,进入停止状态;
在注入间隔状态,判断两次注入数据的间隔时间,当间隔时间与注入间隔锁存器2-226中数据相等时,返回持续注入状态,当间隔时间与任务时间锁存器2-228中数据相等时,进入停止状态。
具体实施方式十:根据说明书附图3和4具体说明本实施方式,本实施方式是对具体实施方式五的进一步说明,具体实施方式五中所述的注入及结果回收工作过程包括注入过程和结果回收过程,所述注入过程具体为:
第二方向控制开关2-418接收同步控制模块2-3送来的内存写状态,将DQS信号送入写方向触发开关2-415,然后将DQ信号送入写数据截获器2-416,写数据截获器2-416根据经写方向触发开关2-415延迟处理后的DQS信号对DQ信号进行截取,截取后送入写故障产生器2-417,所述写故障产生器2-417根据主控模块2-2提供的信号和同步控制模块2-3提供的信号决定注入故障类型,所述写故障产生器2-417将故障注入类型信号经第一方向控制开关2-411送出至DDR2内存;第一方向控制开关2-411接收同步控制模块2-3送来的内存读状态,将DQS信号送入读方向触发开关2-412,然后将DQ信号送入读数据截获器2-413,读数据截获器2-413根据经读方向触发开关2-412延迟处理后的DQS信号对DQ信号进行截取,截取后送入读故障产生器2-414,所述读故障产生器2-414根据主控模块2-2提供的信号和同步控制模块2-3提供的信号决定注入故障类型,所述读故障产生器2-414将故障注入类型信号经第二方向控制开关2-418送入DDR2内存控制器;
结果回收过程具体为:延迟器2-421接收来自第一\第二方向控制开关的原始数据,进行延迟后送入比较器2-422,所述比较器2-422接收来自读\写触发开关的回收信号和来自读\写故障产生器的注入数据,在接收到注入数据、回收信号和原始数据后,比较器2-422对所述数据进行注入前后数据对比,当注入前后数据对比结果为不同时,将所述对比结果经结果锁存器2-423锁存后送入通讯模块2-1。

Claims (5)

1.基于FPGA的DDR2内存故障注入工具,其特征在于它包括宿主机(1)和注入器(2),所述注入器(2)包括通讯模块(2-1)、主控模块(2-2)、同步控制模块(2-3)和注入及结果回收模块(2-4),
宿主机(1)的信号通讯口连接通讯模块(2-1)的信号通讯口,所述通讯模块(2-1)的信号输出端连接主控模块(2-2)的信号输入端,所述主控模块(2-2)的一个信号输出端连接同步控制模块(2-3)的信号输入端,所述同步控制模块(2-3)的信号输出端连接注入及结果回收模块(2-4)的一个信号输入端,所述注入及结果回收模块(2-4)的另一个信号输入端连接主控模块(2-2)的另一个信号输出端,所述注入及结果回收模块(2-4)的信号输出端连接通讯模块(2-1)的信号输入端,同步控制模块(2-3)还设有一个与DDR2内存目标系统(3)进行通讯的信号通讯口,注入及结果回收模块(2-4)亦设有一个与DDR2内存目标系统(3)进行通讯的信号通讯口,
宿主机(1),包含宿主机软件(U),用于提供人机交互方式,实现用户对故障参数的选择,发送故障注入命令,还用于接收注入结果,并对注入结果进行存储和管理;
注入器(2),由硬件FPGA实现,用于根据接收的故障注入命令,进行故障注入,并实时返回给宿主机(1)注入结果,其中,
通讯模块(2-1),用于接收宿主机(1)发送的故障注入命令,还用于向宿主机(1)发送注入结果,所述通讯模块(2-1)采用RS-232异步通讯方式,所述通讯模块(2-1)内部固化有串口数据接收状态机、接收缓冲区、串口数据发送状态机和发送缓冲区;
主控模块(2-2),用于接收通讯模块(2-1)输出的命令数据,还用于向同步控制模块(2-3)注入时间控制命令和开始命令,并向注入及结果回收模块(2-4)注入通道控制命令;
同步控制模块(2-3),用于内存状态监控、地址触发和计时,同步控制模块(2-3)内部固化有内存状态监控状态机、地址触发状态机和时间触发控制状态机;
注入及结果回收模块(2-4),用于对DQS数据进行截获,同时根据截获的DQS数据向DDR2内存目标系统(3)进行故障注入,并将注入结果通过通讯模块(2-1)发送给宿主机(1)。
2.根据权利要求1所述的基于FPGA的DDR2内存故障注入工具,其特征在于主控模块(2-2)包括命令执行器(2-21)和锁存器组(2-22),所述命令执行器(2-21)内部固化有命令执行状态机,所述锁存器组(2-22)包括通道锁存器(2-221)、故障类型锁存器(2-222)、通道方向锁存器(2-223)、条件锁存器(2-224)、条件通道锁存器(2-225)、注入间隔锁存器(2-226)、开始延时锁存器(2-227)、任务时间锁存器(2-228)和持续时间锁存器(2-229),
命令执行器(2-21)的命令输出端连接锁存器组(2-22)的命令输入端;
命令执行器(2-21),用于接收通讯模块(2-1)输出的命令数据,并发送注入开始命令至注入及结果回收模块(2-4),同时设置锁存器命令至锁存器组(2-22);
锁存器组(2-22),用于接收设置锁存器命令进行存储,并向同步控制模块(2-3)注入时间控制命令和开始命令,还向注入及结果回收模块(2-4)注入通道控制命令,其中,
通道锁存器(2-221),用于存储故障注入的通道选择信息,还用于将所述通道选择信息送往注入及结果回收模块(2-4);
故障类型锁存器(2-222),用于存储每个通道的故障类型信息,还用于将所述故障类型信息送往注入及结果回收模块(2-4);
通道方向锁存器(2-223),用于存储故障注入的方向信息,还用于将所述方向信息送往注入及结果回收模块(2-4),所述方向信息包括读方向、写方向和双向;
条件锁存器(2-224),用于存储目标触发条件,还用于将所述目标触发条件送往同步控制模块(2-3);
条件通道锁存器(2-225),用于存储触发通道的选择信息,还用于将所述选择信息送往同步控制模块(2-3);
注入间隔锁存器(2-226),用于锁存每次注入结束与下次注入开始之间的时间间隔,还用于将所述时间间隔送往同步控制模块(2-3);
开始延时锁存器(2-227),用于锁存注入器(2)开始工作的延迟时间,还用于将所述延迟时间送往同步控制模块(2-3);
任务时间锁存器(2-228),用于锁存注入器(2)的全局工作时间,还用于将所述全局工作时间送往同步控制模块(2-3);
持续时间锁存器(2-229),用于锁存持续时间,还用于将所述持续时间送往同步控制模块(2-3)。
3.根据权利要求1或2所述的基于FPGA的DDR2内存故障注入工具,其特征在于注入及结果回收模块(2-4)包括64个基本单元,每个基本单元包括一个注入单元(2-41)和一个结果回收单元(2-42),
所述注入单元(2-41)包括第一方向控制开关(2-411)、读方向触发开关(2-412)、读数据截获器(2-413)、读故障产生器(2-414)、写方向触发开关(2-415)、写数据截获器(2-416)、写故障产生器(2-417)和第二方向控制开关(2-418),
第一方向控制开关(2-411)的数据选通信号输出端连接读方向触发开关(2-412)的读数据触发输入端,所述第一方向控制开关(2-411)的待截获读数据输出端连接到读数据截获器(2-413)的读数据截获输入端,所述第一方向控制开关(2-411)的写故障数据输入端连接写故障产生器(2-417)的写故障数据输出端,读方向触发开关(2-412)的读数据触发输出端连接读数据截获器(2-413)的截获数据触发输入端,所述读数据截获器(2-413)的截获数据输出端连接读故障产生器(2-414)的读故障数据输入端,写故障产生器(2-417)的写故障数据输入端连接写数据截获器(2-416)的写数据截获输出端,读故障产生器(2-414)的读故障数据输出端连接第二方向控制开关(2-418)的读故障数据输入端,所述第二方向控制开关(2-418)的待截获写数据输出端连接到写数据截获器(2-416)的写数据截获输入端,所述第二方向控制开关(2-418)的数据选通信号输出端连接写方向触发开关(2-415)的写数据触发输入端,所述写方向触发开关(2-415)的写数据触发输出端连接写数据截获器(2-416)的截获数据触发输入端;
结果回收单元(2-42)包括延迟器(2-421)、比较器(2-422)和结果锁存器(2-423),
延迟器(2-421)的延迟数据输出端连接比较器(2-422)的一个数据输入端,所述比较器(2-422)的数据输出端连接结果锁存器(2-423)的结果数据输入端。
4.根据权利要求3所述的基于FPGA的DDR2内存故障注入工具,其特征在于宿主机软件(U)包括用户界面(U1)、故障注入命令生成模块(U2)、故障注入进度计算模块(U3)、故障注入帮助模块(U4)、故障注入结果回收模块(U5)、故障注入结果管理模块(U6)、故障数据库(U7)和通讯软件模块(U8),
用户界面(U1),用于实现故障参数输入和检测,并用于显示注入器(2)的注入进度和注入结果,还用于显示和管理历史注入结果;
通讯软件模块(U8),用于实现与注入器(2)通讯,即接收故障注入命令生成模块(U2)生成的故障注入命令和发送注入器(2)返回的故障注入结果;
故障注入命令生成模块(U2),用于根据用户界面(U1)的故障参数生成相应的故障注入命令,还用于输出所述故障注入命令至通讯软件模块(U8);
故障注入进度计算模块(U3),用于根据故障注入命令计算故障注入进度,还用于将所述故障注入进度反馈给用户界面(U1);
故障注入帮助模块(U4),用于与用户界面(U1)链接,并提供DDR2内存故障注入工具使用指南;
故障注入结果回收模块(U5),用于接收注入器(2)经通讯软件模块(U8)返回的故障注入结果,还用于将所述故障注入结果反馈给用户界面(U1);
故障注入结果管理模块(U6),用于将从用户界面(U1)获得的每次故障注入结果存储到故障数据库(U7)中,还用于故障注入结果的查找和删除;
故障数据库(U7),用于存储故障注入参数及故障注入结果。
5.采用权利要求4所述的基于FPGA的DDR2内存故障注入工具实现基于FPGA的高端容错计算机评测用DDR2内存故障注入方法,其特征在于所述方法包括宿主机软件工作过程和注入器工作过程,所述注入器工作过程包括串口数据接收状态机工作过程、串口数据发送状态机工作过程、命令执行状态机工作过程、内存状态监控状态机工作过程、地址触发状态机工作过程、时间触发控制状态机工作过程和注入及结果回收工作过程,
宿主机软件工作过程具体为:
步骤一:打开用户界面(U1),向所述用户界面(U1)输入故障参数;
步骤二:用户界面(U1)判断故障参数是否正确,如果是,执行步骤三,否则返回步骤一;
步骤三:利用故障注入命令生成模块(U2)生成故障注入命令,并发送故障注入命令给通讯软件模块(U8);
步骤四:通讯软件模块(U8)对故障参数进行确认,如果同意,执行步骤五,否则返回步骤一;
步骤五:启动注入器(2),并利用故障注入进度计算模块(U3)计算故障注入进度,同时反馈给用户界面(U1);
步骤六:利用故障注入结果回收模块(U5)回收故障注入结果,同时反馈给用户界面(U1);
步骤七:故障注入结果管理模块(U6)判断故障注入结果是否存储,如果是,执行步骤八,否则执行步骤九;
步骤八:存储故障注入结果至故障数据库(U7),进入步骤九;
步骤九:结束对DDR2内存进行故障注入,
串口数据接收状态机工作过程包括三个逻辑状态:空闲状态、移位接收8位数据状态和接收停止位状态,
在空闲状态,通讯模块(2-1)检测串口数据帧开始位,当检测到串口数据帧开始位时,进入移位接收8位数据状态;
在移位接收8位数据状态,接收串口数据位,并对所述串口数据位加1,当串口数据位加1后为第8个串口数据位时,输出第8个串口数据位,进入接收停止位状态;
在接收停止位状态,等待第8个串口数据位到达,当第8个串口数据位到达时,停止检测并将8位串口数据写入接收缓冲区,返回空闲状态;
串口数据发送状态机工作过程包括三个逻辑状态:空闲状态、移位发送8位数据状态和发送停止位状态,
在空闲状态,通讯模块(2-1)检测发送缓冲区不空,当检测到发送缓冲区不空时,进入移位发送8位数据状态;
在移位发送8位数据状态,发送串口数据位,并对所述串口数据位加1,当串口数据位加1后为第8个串口数据位时,输出第8个串口数据位,进入发送停止位状态;
在发送停止位状态,等待第8个串口数据位到达,当第8个串口数据位到达时,停止检测,返回空闲状态,
命令执行状态机工作过程包括空闲状态、注入开始状态、写方向状态、读方向状态、双向状态、通道状态、故障类型状态、条件状态、条件通道状态、持续时间状态、注入间隔状态、开始延时状态和任务时间状态,
在空闲状态,等待接收缓冲区出现数据,当接收缓冲区出现的数据为00000000时,进入注入开始状态,当接收缓冲区出现的数据为00000001时,进入写方向状态,当接收缓冲区出现的数据为00000010时,进入读方向状态,当接收缓冲区出现的数据为00000011时,进入双向状态,当接收缓冲区出现的数据为00000100时,进入通道状态,当接收缓冲区出现的数据为00000101时,进入故障类型状态,当接收缓冲区出现的数据为00000110时,进入条件状态,当接收缓冲区出现的数据为00000111时,进入条件通道状态,当接收缓冲区出现的数据为00001000时,进入持续时间状态,当接收缓冲区出现的数据为00001001时,进入注入间隔状态,当接收缓冲区出现的数据为00001010时,进入开始延时状态,当接收缓冲区出现的数据为00001011时,进入任务时间状态;
在注入开始状态,命令执行器(2-21)向注入及结果回收模块(2-4)发出注入开始信号,当向注入及结果回收模块(2-4)发出注入开始信号完毕,返回空闲状态;
在写方向状态,命令执行器(2-21)将01送到通道方向锁存器(2-223)进行锁存,当锁存完毕,返回空闲状态;
在读方向状态,命令执行器(2-21)将10送到通道方向锁存器(2-223)进行锁存,当锁存完毕,返回空闲状态;
在双向状态,命令执行器(2-21)将11送到通道方向锁存器(2-223)进行锁存,当锁存完毕,返回空闲状态;
在持续时间状态,命令执行器(2-21)重新从接收缓冲区取出8位数据00001000,并将所述8位数据00001000锁存至持续时间锁存器(2-229),当锁存完毕,返回空闲状态;
在注入间隔状态,命令执行器(2-21)重新从接收缓冲区取出8位数据00001001,并将所述8位数据00001001锁存至注入间隔锁存器(2-226),当锁存完毕,返回空闲状态;
在开始延时状态,命令执行器(2-21)重新从接收缓冲区取出8位数据00001010,并将所述8位数据00001010锁存至开始延时锁存器(2-227),当锁存完毕,返回空闲状态;
在条件状态,命令执行器(2-21)重复4次从接收缓冲区取出8位数据00000110,组成32位数据,并将所述32位数据锁存至条件锁存器(2-224),当锁存完毕,返回空闲状态;
在条件通道状态,命令执行器(2-21)重复4次从接收缓冲区取出8位数据00000111,组成32位数据,并将所述32位数据锁存至条件通道锁存器(2-225),当锁存完毕,返回空闲状态;
在通道状态,命令执行器(2-21)重复8次从接收缓冲区取出8位数据00000100,组成64位数据,并将所述64位数据锁存至通道锁存器(2-221),当锁存完毕,返回空闲状态;
在任务时间状态,命令执行器(2-21)重复8次从接收缓冲区取出8位数据00001011,组成64位数据,并将所述64位数据锁存至任务时间锁存器(2-228),当锁存完毕,返回空闲状态;
在故障类型状态,命令执行器(2-21)重复16次从接收缓冲区取出8位数据00000101,组成128位数据,并将所述128位数据锁存至故障类型锁存器(2-222),当锁存完毕,返回空闲状态,
内存状态监控状态机工作过程包括三个状态:读状态、写状态和无操作状态,
在读状态,读出命令,当读出写命令时,进入写状态,当读出激活命令时,进入无操作状态;
在写状态,读出命令,当读出读命令时,进入读状态,当读出激活命令时,进入无操作状态;
在无操作状态,读出命令,当读出读命令时,进入读状态,当读出写命令时,进入写状态;
地址触发状态机工作过程包括四个状态:行地址同状态、行地址异状态、列地址同状态和列地址异状态,
在行地址同状态,判断读/写命令列地址相同,当读/写命令列地址相同时,进入列地址同状态,否则,进入列地址异状态;
在列地址同状态,判断读/写命令列地址不同,当读/写命令列地址不同时,进入列地址异状态,并判断激活命令行地址相同,当激活命令行地址相同时,返回行地址同状态,否则进入行地址异状态;
在列地址异状态,判断激活命令行地址是否相同,当激活命令行地址相同时,返回行地址同状态,当激活命令行地址不同时,进入行地址异状态;
在行地址异状态,判读激活命令行地址相同,当激活命令行地址相同,返回行地址同状态;
时间触发控制状态机工作过程包括四个状态:停止状态、延时触发状态、持续注入状态和注入间隔状态,
在停止状态,等待注入开始命令到达,当注入开始命令到达时,进入延时触发状态;
在延时触发状态,对注入数据开始延时,当延时时间与开始延时锁存器(2-227)中数据相等时,进入持续注入状态;
在持续注入状态,判断注入数据持续时间,当持续时间与持续时间锁存器(2-229)中数据相等时,进入注入间隔状态,当持续时间与任务时间锁存器(2-228)中数据相等时,进入停止状态;
在注入间隔状态,判断两次注入数据的间隔时间,当间隔时间与注入间隔锁存器(2-226)中数据相等时,返回持续注入状态,当间隔时间与任务时间锁存器(2-228)中数据相等时,进入停止状态,
注入及结果回收工作过程包括注入过程和结果回收过程,所述注入过程具体为:
第二方向控制开关(2-418)接收同步控制模块(2-3)送来的内存写状态,将DQS信号送入写方向触发开关(2-415),然后将DQ信号送入写数据截获器(2-416),写数据截获器(2-416)根据经写方向触发开关(2-415)延迟处理后的DQS信号对DQ信号进行截取,截取后送入写故障产生器(2-417),所述写故障产生器(2-417)根据主控模块(2-2)提供的信号和同步控制模块(2-3)提供的信号决定注入故障类型,所述写故障产生器(2-417)将故障注入类型信号经第一方向控制开关(2-411)送出至DDR2内存;第一方向控制开关(2-411)接收同步控制模块(2-3)送来的内存读状态,将DQS信号送入读方向触发开关(2-412),然后将DQ信号送入读数据截获器(2-413),读数据截获器(2-413)根据经读方向触发开关(2-412)延迟处理后的DQS信号对DQ信号进行截取,截取后送入读故障产生器(2-414),所述读故障产生器(2-414)根据主控模块(2-2)提供的信号和同步控制模块(2-3)提供的信号决定注入故障类型,所述读故障产生器(2-414)将故障注入类型信号经第二方向控制开关(2-418)送入DDR2内存控制器;
结果回收过程具体为:延迟器(2-421)接收来自第一\第二方向控制开关的原始数据,进行延迟后送入比较器(2-422),所述比较器(2-422)接收来自读\写触发开关的回收信号和来自读\写故障产生器的注入数据,在接收到注入数据、回收信号和原始数据后,比较器(2-422)对所述数据进行注入前后数据对比,当注入前后数据对比结果为不同时,将所述对比结果经结果锁存器(2-423)锁存后送入通讯模块(2-1)。
CN 201010300357 2010-01-15 2010-01-15 基于fpga的ddr2内存故障注入工具及注入方法 Expired - Fee Related CN101783184B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010300357 CN101783184B (zh) 2010-01-15 2010-01-15 基于fpga的ddr2内存故障注入工具及注入方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010300357 CN101783184B (zh) 2010-01-15 2010-01-15 基于fpga的ddr2内存故障注入工具及注入方法

Publications (2)

Publication Number Publication Date
CN101783184A CN101783184A (zh) 2010-07-21
CN101783184B true CN101783184B (zh) 2013-10-16

Family

ID=42523120

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010300357 Expired - Fee Related CN101783184B (zh) 2010-01-15 2010-01-15 基于fpga的ddr2内存故障注入工具及注入方法

Country Status (1)

Country Link
CN (1) CN101783184B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222032B (zh) * 2011-05-20 2013-10-30 哈尔滨工业大学 一种1394总线的故障注入装置的故障注入方法
CN102354298A (zh) * 2011-07-27 2012-02-15 哈尔滨工业大学 基于staf的高端容错机故障注入自动化测试平台及方法
CN102768642B (zh) * 2012-06-25 2016-08-03 浪潮电子信息产业股份有限公司 一种基于源码分析的linux内核可靠性评测系统及其方法
CN104657247B (zh) * 2015-02-10 2017-12-15 上海创景计算机系统有限公司 基于jtag调试方式实现通用型故障注入系统和故障注入方法
CN107102915A (zh) * 2017-04-21 2017-08-29 中国船舶工业综合技术经济研究院 一种机电产品软件环境故障注入设备
CN109889743B (zh) * 2019-03-05 2020-09-01 长光卫星技术有限公司 一种高低增益联合存贮的夜光遥感相机大动态范围图像获取方法
CN113064782B (zh) * 2021-03-22 2023-03-24 山东英信计算机技术有限公司 一种内存注错自动化系统、使用方法及介质
CN113270137B (zh) * 2021-04-29 2024-06-14 北京航天飞腾装备技术有限责任公司 一种基于fpga嵌入式软核的ddr2测试方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436224A (zh) * 2008-12-19 2009-05-20 北京时代民芯科技有限公司 单粒子故障注入模拟的蒙特卡罗随机信号产生装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1421975A (zh) * 2001-11-23 2003-06-04 成都世能科技有限责任公司 自适应充电控制芯片
CN100350390C (zh) * 2006-11-29 2007-11-21 哈尔滨工业大学 容错计算机系统的搭接式故障注入装置及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436224A (zh) * 2008-12-19 2009-05-20 北京时代民芯科技有限公司 单粒子故障注入模拟的蒙特卡罗随机信号产生装置

Also Published As

Publication number Publication date
CN101783184A (zh) 2010-07-21

Similar Documents

Publication Publication Date Title
CN101783184B (zh) 基于fpga的ddr2内存故障注入工具及注入方法
CN107563761B (zh) 基于区块链的游戏账户管理方法
CN103729288B (zh) 一种嵌入式多核环境下应用程序的调试方法
CN100468286C (zh) 具有多个处理级的集成电路及其操作方法
CN100405343C (zh) 一种异步数据缓存装置
CN101452745A (zh) 一种编程器及其编程方法
CN1889046A (zh) 多核并行先进先出队列处理系统及方法
CN108197699A (zh) 针对卷积神经网络硬件加速器的调试模块
CN109634846A (zh) 一种etl软件测试方法和装置
Segala Quiescence, fairness, testing, and the notion of implementation
CN108958997A (zh) 串行总线故障模拟系统及模拟方法
Philippou et al. Reversible computation in nets with bonds
CN103020551A (zh) 一种内存架构
CN1949396B (zh) 半导体存储器件的修复电路
CN100390904C (zh) 用于测试半导体存储器的方法及装置
CN102012874A (zh) 带有资源管理器的usb存储设备
CN105159611B (zh) 一种具有数据抽取加密功能的微控制器芯片
CN100431055C (zh) 用于测试半导体存储器的方法和装置
CN106528364A (zh) 基于存储器访问驱动的自动化协同验证平台的搭建方法
CN101996244A (zh) 一种批量数据入库装置、系统及方法
Ouimet et al. The timed abstract state machine language: An executable specification language for reactive real-time systems
Wang et al. High bandwidth memory interface design based on DDR3 SDRAM and FPGA
CN109582226A (zh) 一种高速存储访问逻辑结构及其控制方法
CN102833288A (zh) 通信桥接系统、方法及通信桥接装置
Hufnagel et al. The architecture and operation of the CMS Tier-0

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131016