Power Saving & Data Protection via SUSI v2.0

来源:百度文库 编辑:神马文学网 时间:2024/04/28 05:43:36
Date: 10/19/2007
Advantech‘s Secure and Unified Smart Interface (SUSI) has been widely adopted and used in many successful applications. SUSI is a unified suite of Application Programming Interface (API) designed specifically for ease of use and integration with Advantech‘s hardware in mind. Now, Advantech is releasing SUSI v2.0, with two brand new additional API categories and features for Advantech hardware products. Advantech‘s new SUSI v2.0 offers the best embedded software solution for Power Saving & Security application development.
Two Brand New Categories: Power Saving & Security

Advantech SUSI v2.0 package focuses on power consumption by changing the CPU Speed and System Throttling, forcing the system to enter hibernation and save power. Another focus is security, we have implemented the Advanced Encryption Standard (AES), Random Number Generator (RNG) and SRAM functions, now customers can use RNG and AES to generate random numbers, securely encrypt them, and save them to SRAM.
Power Saving
Advantech platforms are widely used in the industrial marketplace and this new "Power Saving" utility helps customers choose and setup the best power scheme. An added benefit is that if each application can save +1% on power, than all of us can save on power consumption. With Advantech, we can all play our small but important part in working towards a more sustainable future.
1. CPU Speed: Via the CPU Speed Utility, the CPU speed will be automatically adjusted depending on the system load.
2. System Throttling: Refers to a series of methods for reducing power consumption in computers by lowering the clock frequency. These API allow the user to lower the clock from between 87.5% to 12.5%.
3. Smart Hibernation: Allows the system to be completely powered off while in hibernate modes. We provide an API for customers to easily enable Hibernation.
Security
In the Gaming and Medical markets, the system is highly confidential and the data is critical. It is important to securely protect the system and the data. With Advantech‘s security features, you can call the RNG API to generate a random number, call the AES API to encrypt the data, then call the SRAM API to save it.
1. SRAM: With battery backup SRAM module, the programmer can use this external memory to store important data.
2. AES: With AES_Key and AES_Data, customers can use either one to encrypt their data easily.
3. RNG: A Random Number Generator is at the core of every gaming platform. It is sophisticated software that functions as the dealer in all games, shuffling the deck of cards, spinning the roulette wheel, dealing the hand, etc.
SUSI v2.0
SUSI is a unified API library designed to help clients develop, customize and program applications for hardware monitoring and control. In SUSI v2.0, we‘ve added "Power Saving" & Security utilities. "Power Saving" is a ready-to-run utility, for easy power scheme settings. The “Security” utility provides APIs for permitting quick, easy and unified coding for gaming and medical hardware control. For more details, please download SUSI v2.0 and the whitepaper at:http://www.advantech.com.tw/ess/download.asp
单片机应用系统断电时的数据保护方法
发布时间:2006年8月8日
来源:中电网   作者:平原大学 苏明强 邝涛
在测量、控制等领域的应用中,常要求单片机内部和外部RAM中的数据在电源掉电时不丢失,重新加电时,RAM中的数据能够保存完好,这就要求对单片机系统加接掉电保护电路。掉电保护通常可采用以下三种方法:一是加接不间断电源,让整个系统在掉电时继续工作,二是采用备份电源,掉电后保护系统中全部或部分数据存储单元的内容;三是采用EEPROM来保存数据。由于第一种方法体积大、成本高,对单片机系统来说,不宜采用。第二种方法是根据实际需要,掉电时保存一些必要的数据,使系统在电源恢复后,能够继续执行程序,因而经济实用,故大量采用[1]。EEPROM既具有ROM掉电不丢失数据的特点,又有RAM随机读写的特点。但由于其读写速度与读写次数的限制,使得EEPROM不能完全代替RAM。下面将介绍最常用的一些掉电保护的处理方法,希望能对相关设计人员在实际工作中有所帮助。
1 简单的RAM数据掉电保护电路
在具有掉电保护功能的单片机系统中,一般采用CMOS单片机和CMOS RAM。CMOS型RAM存储器静态电源小,在正常工作状态下一般由电源向片外RAM供电,而在断电状态下由小型蓄电池向片外RAM供电,以保存有用数据,采用这种方法保存数据,时间一般在3-5个月[2]。然而,系统在上电及断电过程中,总线状态的不确定性往往导致RAM内某些数据的变化,即数据受到冲失。因此对于断电保护数据用的RAM存储器,除了配置供电切换电路外,还要采取数据防冲失措施,当电源突然断电时,电压下降有个过程,CPU在此过程中会失控,可能会误发出写信而冲失RAM中的数据,仅有电池是不能有效完成数据保护的,还需要对片选信号加以控制,保证整个切换过程中CS引脚的信号一直保持接近VCC。通常,采用在RAM的CS和VCC引脚之间接一个电阻来实现COMS RAM的电源切换,然而,如果在掉电时,译码器的输出出现低电平,就可能出现问题,图1给出一种简单的电路设计,它能够避免上述问题的产生。
图1中,4060开关电路起到对CS控制的作用。当电压小于等于4.5V时就使开关断开,CS线上拉至"1",这样,RAM中的数据就不会冲失;当电压大于4.5V时,4060开关接通,使RAM能正常进行读写。

2 可靠的RAM掉电保护电路
上述的电路虽然简单,但有时可能起不到RAM掉电保护的作用,原因是在电源掉电和重新加电的过程中,电源电压跃变的干扰可能使RAM瞬间处于读写状态,使原来RAM中的数据遭到破坏,因此,在掉电刚刚开始以及重新加电直到电源电压保持稳定下来之前,RAM应处于数据保持状态,6264 RAM、5101 RAM等RAM芯片上都有一个CE2引脚,在一般情况下需将此引脚拉高,当把该引脚拉至小于或等于0.2V时,RAM就进入数据保持状态。
实用的静态RAM掉电保护电路如图2所示,图2中U1、U2为电压比较器,稳压管D3提供一个基准电压Vr(Vr=3.5V)。当Vcc为5V时,在R4上得到的分压大于Vr,U2输出高电平,又因为U4输出也为高电平,故CE2输出为高电位,单片机此时可对RAM进行存取,当电源掉电时,Vcc开始下降,当满足如下条件时:
R4×Vcc/[(R4+R3)/(R5+R6)]≥Vr


U2输出低电平,通过U5和U6使CE2输出小于等于0.2V,RAM进入数据保持状态(按图2中元件参数代入上式,当Vcc降到4.7V时,U2输出为低电位)。若Vcc继续下降使U3翻转,再通过D4、U4和U6进一步保证CE2为低电平。此外,当Vcc下降到小于E时,D2截止,D1导通,这时E作为RAM的备份电源,当单片机重新加电时,Vcc由0跃变到5V时,U2的输出端会出现瞬间的干扰脉冲,由于U3和U4间电路的积分延迟(约0.7RC),CE2并不立即升到高电平,因而阻止了U2的干扰脉冲,当延时结束时,电源电压已稳定在5V,此后CE2升高,单片机便可对RAM进行存取。图2中U3和U6为一块四施秘特与非门(CD4
093),该电路直接由E供电,这样才能保证掉电后使CE2≤0.2V,并在重新加电时CE2不受电源电压跃变的干扰,比较器U1和U2为电源供电,Vcc为后备电源U1的电压监视电路,当后备电池快用完时(小于3.5V),发光管会发出亮光,表明要换上新电池,备份电源可用3节5号干电池,也可以采用锂电池或镍电池。
3 利用TL7705对现场数据进行保护
单片机构成的应用系统在突然断电时,往往使片内RAM数据遭到破坏,下面介绍一种利用TL7705构成的电源监控电路,使单片机系统在掉电时自动保护现场数据。
3.1 TL7705的工作原理
TL7705是电源监控用集成电路,采用8脚双列直插式封装,其内部结构图3所示。图3中,基准电压发生器具有较高的稳定性,可由1脚输出2.5V基准电压,为了吸收电源的同脉冲干扰,通常在1脚上接一个0.1μF的滤波电容来提高其抗干扰能力,被监控的电源电压由SENSE端7脚引入,经过R1和R2分压后送入比较器CMP1,与基准电压进行比较,当其值小于基准电压时,T1导通,定时电容CT通过T1放电,使CMP2比较器翻转,T2和T3导通,输出脚RESET为高电平,SESET反为低电平,当送入CMP1比较器的电压高于基准电压时,T1截止100μA恒流源给CT充电,当CT上的电压高于2.5V时,CMP2比较器翻转,T2和T3截止,RESET和RESET反输出关断。
3.2 TL7705与80C51单片机的接法
在某些单片机应用系统中需要在系统掉电时记忆当前现场状态,以使电源恢复后能继续从断电处运行,图4是以80C51单片机为例采用其空闲方式或掉电方式,在备用电池支持下实现掉电后的数据保护。

图4中,R1、C1和74LSO4构成单片机的上电自动复位和手动按钮复位电路,备用电池P1及D1、D2实现掉电时备用电池的切换。电源正常时D1不导通,+5V直接给单片机供电,并为电池P1充电,为了减小电池耗电,备用电池只给单片机供电,保护片内RAM中的数据,电源掉电后,其他外围电路的工作电压仅靠电源电容维持很短的时间,电位器RW用来调节检测电压,范围为4.5-4.75V,当掉电时,外围电路的电压下降到门限设定电压时,可将片外RAM中需要保护的数据写入片内RAM中,并使单片机进入掉电工作方式以完成数据保护,为了保证单片机有足够的处理时间,取检测电压为4.75V,当电源电压降至4.75V时,TL7705由RESET反向单片机发出中断请求信号(INTO反)。单片机运行到一个可断断点后,相应中断,在中断服务程序中保护现场数据,使单片机进入掉电工作状态。
4 采用软件冗余措施保证数据的准确性
最常用的一种方法是采用软件冗余措施,即将欲保护的数据写入RAM中的不同区域,如0000H-00FFH、0100H-01FFH和0200H-02FFH这三个区域存储同样一组数据,当使用这些数据前,先对各组进行检查,对于正确的数据方可应用,同时将错误的数据进行修正,在上电与断电过程中,总线不确写性是随机的,不可将所有数据完全冲失。采用硬件对数据进行断电保护,同时在软件上采用冗余的措施是最常用的数据保护方法,在断电突然发生时可保证数据的准确无误。
NAND Flash上均匀损耗与掉电恢复在线测试
来源:单片机及嵌入式系统应用   作者:同济大学 胡一飞 徐中伟 谢世环
字体大小:[大][中][小]
摘要 NAND Flash以其大容量、低价格等优势迅速成为嵌入式系统存储的新宠,因此其上的文件系统研究也日益广泛,本文简要介绍了常用的NAND Flash文件系统YAFFS,并针对YAFFS在均匀损耗和掉电恢复方面进行在线测试。在给出测试结果的同时,着重研究嵌入式软件测试方案和方法;对测试结果进行分析,并提出改进方案和适用环境。
关键词 NAND Flash 均匀损耗 软件测试 YAFFS
引 言
随着嵌入式技术在各种电子产品中的广泛应用,嵌入式系统中的数据存储和管理已经成为一个重要的研究课题。Flash存储器具有速度快、容量大、成本低等很多优点,因此在嵌入式系统中被广泛用作外存储器件。嵌入式系统中的Flash存储器需要有自己的文件系统,而不能直接移植通用文件系统,主要有两个原因:第一,嵌入式系统的应用条件恶劣,电源电压不稳定,突发性断电以及非法插拔都容易造成灾难性的影响,通用文件系统对于可靠性的设计考虑不足;第二,通用文件系统的记录信息(如FAT表)需要被多次修改,而记录信息放在Flash存储器固定的区块中,将导致该区块的频繁操作,从而缩短Flash器的使用寿命。这样就对软件技术提出了更高的要求。
为了管理复杂的存储硬件,同时提供可靠高效的存储环境,出现了基于NAND和NOR的文件系统。目前主流的FFS(Flash File System)有如下3种:TrueFFS、JFFSx以及YAFFS。YAFFS(Yet Another Flash File System)是专门为NAND Flash设计的嵌入式文件系统,适用于大容量的存储设备。它是日志结构的文件系统,提供了损耗平衡和掉电保护等机制,可以有效地减小上述原因对文件系统一致性和完整性的影响。本文正是基于这样的前提,介绍了关于嵌入式YAFFS文件系统测试方案,针对文件系统中损耗平衡和掉电保护两个重要的系统性能指标进行实时在线的测试与分析,不同的应用环境使用该文件系统应进行相应的修改。
1 YAFFS文件系统概述
YAFFS文件系统类似于JFFS/JFFS2文件系统。不同的是,JFFSl/2文件系统最初是针对NOR Flash的应用场合设汁的,而NOR Flash和NAND Flash本质上有较大的区别。尽管JFFSl/2文件系统也能应用于NANDFlash,但由于它在内存占用和启动时间方面针对NOR的特性做了一些取舍,所以对NAND来说通常并不是最优的方案。
1.1 NOR和NAND的比较
基本上NOR比较适合存储程序代码,其容量一般较小(比如小于32 MB),且价格较高;而NAND容量可达lGB以上,价格也相对便宜,适合存储数据。一般来说,128 MB以下容量NAND Flash芯片的一页大小为512字节,用来存放数据,每一页还有16字节的备用空间(SpareData),充当OOB(Out Of Band)区域,用来存储ECC(Error Correction Codc)校验/坏块标志等信息;再由若干页组成一个块,通常一块为32页(16 KB)。与NOR相比,NAND不是完全可靠的。每块芯片出厂时允许有一定比例的坏块存在,对数据的存取不是使用线性地址映射,而是通过寄存器的操作串行存取数据。
1.2 YAFFs数据在NAND上的存储方式
YAFFS根据NAND闪存以页为单位存取的特点,将文件组织成固定大小的数据段。利用NAND闪存提供的每页16字节的备用空间来存放ECC检验信息和文件系统的组织信息,不仅能够实现错误检测和坏块处理,而且能够提高文件系统的加载速度。
YAFFS将文件组织成固定大小(512字节)的数据段。每个文件都有一个页面专门存放文件头,文件头保存了文件的模式、所有者id、组id、长度、文件名等信息。为了提高文件数据块的查找速度,文件的数据段组织成树形结构。YAFFS在文件进行改写时,总是先写入新的数据块,然后将旧的数据块从文件中删除。YAFFS使用存放在页面备用空间中的ECC进行错误检测,出现错误后会进行一定次数的重试;多次重试失败后,该页面就被停止使用。以(512+16)字节为一页的NAND Flash芯片为例,YAFFS文件系统数据的存储布局如图1所示。

2 YAFFS文件系统测
2.1 测试总体说明
YAFFS文件系统是开源的,测试基于白盒测试。在所关心的代码段中,插入测试代码。为保证测试代码不对原代码造成影响,测试后可立即恢复为原代码,所有测试代码(包括测试用变量和函数)均嵌入到#define FS_TEST宏定义中。
2.2 模拟文件的生成
嵌入式环境下对文件系统进行大量、长时间的测试存在很多问题,不易实现,对测试代码的插入和数据的监视也比较困难。这里采用PC模拟测试的形式,用文件的读/写模拟NAND器件,并在PC上对模拟文件监视,以达到测试的目的。代码定义了各种NAND器件的类型,以适应不同的器件。模拟器件时,也用这些信息生成相应的模拟文件。
指明要模拟的NAND器件的大小(FILE_SIZE_IN_MEG)和结构(BLOCKS_PER_MEG,BLOCK_SIZE)后,按照相应的大小和结构生成文件g_filedisk。
3 均匀损耗测试
3.1 测试目的
NAND Flash器件每个Block区块的擦写次数有限。在需要实时记录的应用环境中,为保证器件寿命,应尽量使每个区块的擦写次数相对平均.以最大程度地延长NAND Flash器件的使用寿命。此项测试记录每个Block区块的擦写次数,以测试YAFFS文件系统在均匀损耗方面的性能。
3.2 测试方法
测试代码在器件模拟文件的每一页的Spare区后,增加了字节,用于记录该页的擦写次数。由于擦写是以Block为单位进行的,因此每个Block各页的擦写记录数是相同的。在以后的测试中,可以只使用第一页的该Block空间记录擦写次数,其他空间作其他测试用。
测试代码插入到CheckInit()和yaffs_FEEraseBlockInNAND()(yaffs_fileem.cpp)中,在初始化器件模拟文件时,生成(新模拟文件)或读取(己有模拟文件)擦写次数;并在程序执行擦写函数时,对擦写次数进行累加和保存。
测试程序甩到的测试变量;记录擦写次数的数组-g_ersNumArray[FILE_SIZE_IN_MEG*BLOCKS_PER_MEG]、指向擦写的最大值-g_pErsMax和指向擦写的最小值-g_pErsMin。
测试程序用WireOut0.log和WireOutl.log两个文件记录每个Block区块的擦写次数,查看这两个文件,可以看到每个区块的擦写次数以及最大/最小值。两个文件是等同的,因测试时间比较长,取两个文件以避免系统在写记录文件时出错,而丢失所有的记录;两个文件轮流写,保证至少有一个文件的内容是系统出错前最近的记录。
3.3 测试结果
YAFFS文件系统按“顺序”使用未分配的空间用于新的写入操作,并以同样“顺序”擦除废弃的区块。写入和擦除操作,均按顺序在未分配的空间或废弃的空间中进行。当系统未用空间小于某一预设值后,系统将对存在废弃页的区块进行回收。这种写入和擦除策略在一定程度上保证了损耗的均匀性。
这种机制虽然在一定程度上满足均匀损耗的要求,但还是存在问题,并不适用于所有的嵌入式应用环境。假设在一块16MB的NAND器件上,有10MB空间用来存放相对固定、不经常修改的数据文件,则经常修改的文件只能在剩下的6 MB空间上重复擦写,在这6 MB空间上做到“均匀损耗”。对整个器件来说,系统并没有合适的搬移策略对固定文件进行搬移,整个器件做不到均匀损耗。在实时记录信息量比较大的应用环境中,应编写相应的搬移策略函数,对固定文件进行定期的搬移,以确保整个NAND器件的均匀损耗。
4 掉电恢复性能测试
4.1 测试目的
文件系统应能保证在系统突然断电的情况下,最大限度地恢复(保护)有用数据。如果在修改一个文件时掉电,那么掉电后的文件保护方式根据实际情况可分为3种:
①用旧文件完全代替新写文件,新写文件(没写完)被忽略。这种保护方式应用比较多,比如在更新设置时掉电,使用掉电前的设置,用户是可以接受的。
②用新文件完全代替旧文件(新文件写了多少就保留多少)。这种保护方式适合应用于文本的情况,比如短信。新短信虽然不完整,但根据情况用户可以得到部分信息,如果发送方信息完整或属于可猜测的情况,则可以要求发送方重发。
③己写部分用新文件,未写部分用老文件,所谓“新加旧”的保护方式。这种保护方式可以应用在动态更新的文件上。但是,对于使用偏移量进行的文件读写操作,采用这种保护方式,会产生乱码。
4.2 测试方法
测试代码随机产生掉电消息,模拟一次掉电行为。测试代码插入到yaffs_FEWriteChunkToNAND()(yaffs_fileem.cpp)中,在写Data区和Spare区时分别产生随机掉电位置,模拟掉电行为。掉电后,程序重新挂接文件系统,并读取掉电时正在更新的文件,与原文件相比给出判定结果。
程序用到的测试变量:掉电类别-g_tstPowerOff,1为Data区掉电,2为Spare区掉电。在完全模拟时,掉电类别随机产生。程序用TestLog.log记录掉电后判定的结果。TestLog.log为增加方式打开,新记录写在最后,不影响原有的记录结果。
4.3 测试手段
模拟一次“掉电”行为,需要进行特殊的处理。实际的掉电行为在电源重新供给后,整个系统会重新开始,包括重薪启动文件系统。掉电前系统的所有参数、系统堆栈以及现场均失效。在测试中模拟掉电行为有一定的难度,直接断电既不安全,也不现实,可用exit()函数中止程序来模拟。在执行写操作时,写入随机的字节数后,用exit()函数立即中止程序的运行;再重新启动程序,读取掉电时写入的文件,分析文件以检查文件系统新的掉电保护功能。
上述测试手段不适用于自动测试,也不可能手工进行大量的测试。笔者在该项测试中,巧妙地使用了try{}和catch(}结构,既模拟了实际的掉电行为,又保证了自动测试的顺利进行。
模拟掉电行为的核心代码如下:

4.4 测试结果
YAFFS-NAND文件系统,只提供上述的②和③两种文件保护方式。在打开文件时,若以“截短为0”的方式打开已有文件,则保护方式为第②种,使用新文件完全代替旧文件。若以修改的方式打开己有文件,则保护方式为第③种,使用新加旧的保护方式。
需要注意的是:在数据区掉电的情况下,以上两种保护方式完好,测试通过。但在Spare区掉电的情况下,文件系统有很大的概率读不出掉电时的文件,几乎不能正常使用。在实际掉电情况中,按Data区和Spare区的比例关系(512:16),写操作掉电时发生在Spare区的概率为3.03%,不可接受。另外,文件系统不提供旧文件的保护方式,对于这类应用(还是比较多的)需要另外实现。
4.5 对Yaffs-NAND在掉电保护方面的改进
4.5.1 增加保护方式
Yaffs-NAND文件系统在原理上决定了只能有上述的②和③两种文件保护方式。要提供第一种保护方式,需要对文件系统进行扩展,增加2个函数和2个结构体:

EOnlyOld、EOnlyNew、ENewOld和EDefault分别表示3种不同的保护方式和默认保护方式(由原文件系统提供)。SProInfo结构不仅记录保护方式,还记录了该文件名,供关闭文件时使用。
yaffs_openEx()根据传入的保护方式,修改打开文件的标志,以显式地设置原有的②、③两种保护方式。当保护方式为EOnIyold时,yaffs—openEx()将打开另一个新的临时文件,并返回给用户使用。传入的SProlnfo结构的指针,将带回文件名和文件句柄,供关闭文件时用。yaffs_closeEx()函数在关闭文件时,检查文件的保护方式。若为第②、③种情况,则直接关闭;若为第一种情况,则先删除原文件,再把新文件重新命名,以达到文件保护的目的。
使用方法如下:
①使用默认方式,则与原文件系统使用方法相同。新参数默认为NULL,可以直接兼容己有代码。
②使用扩展方式,则要先生成一个SProInfo的对象,但将其指针传给yafffs_openEx()。关闭时同样要将其指针传给yaffs_closeEx()。例如:

对进行上述改进后的扩展方法进行测试,结果同改进前;但增加了只保留旧文件的第一种保护方式,程序运行良好。
4.5.2 Spare区掉电不能恢复的修改
对源代码进行深入研究,发现在Spare区掉电不能恢复的问题出在Spare区的Tag信息自检验部分。yaffs_GetTagsFromSpare()函数从Spare区读取Tag信息的过程中,调用yaffs_CheckECCOnTags()检验Tag信息。但是,原代码对ECC校验错误的Spare区,只是将错误修正,并返回到}层函数;上层函数仅记录’Fag出错次数,并不做处理。因此,在SpareⅨ掉电时.会出现不可恢复的错误。
修改yaffs_GetTagsFromSpare()函数的返回类型为int,以返回Spare区的ECC校验错误信息。当yaffs_CheckECCOnTags()返回Tag校验错误时,yaffs_Get-TagsFromSpare()函数将此错误返回。在调用此函数的地方,进行相应的修改:当Spare区ECC出错时,调用yaffs_DeleteChunk(),删除该页。因掉电引发的Spare错误不可恢复的问题,经修改后运行良好。
结语
YAFFS文件系统是专门为NAND闪存而设计的,它使得价格低廉的NAND闪存芯片具有了高效性和健壮性;但YAFFS文件系统在性能上还存在着问题,并不完全适用于对性能苛求的嵌入式系统。本文针对YAFFS文件系统中均匀损耗和掉电恢复两个重要指标进行测试,给出了测试结果,并针对测试过程中存在的部分问题提出了改进方案。实际测试表明,改进后系统性能有明显改善,能适应更多的应用环境。
彻底看穿双核CPU Intel与AMD多核处理器剖解
来源:中电网   作者:
字体大小:[大][中][小]
一、双核心的由来
所谓双核心处理器,简单地说就是在一块CPU基板上集成两个处理器核心,并通过并行总线将各处理器核心连接起来。双核心并不是一个新概念,而只是 CMP(Chip Multi Processors,单芯片多处理器)中最基本、最简单、最容易实现的一种类型。其实在RISC处理器领域,双核心甚至多核心都早已经实现。CMP最早是由美国斯坦福大学提出的,其思想是在一块芯片内实现SMP(Symmetrical Multi-Processing,对称多处理)架构,且并行执行不同的进程。早在上个世纪末,惠普和IBM就已经提出双核处理器的可行性设计。IBM 在2001年就推出了基于双核心的POWER4处理器,随后是Sun和惠普公司,都先后推出了基于双核架构的UltraSPARC以及PA-RISC芯片,但此时双核心处理器架构还都是在高端的 RISC领域,直到前不久Intel和AMD相继推出自己的双核心处理器,双核心才真正走入了主流的X86领域。
MCM模块内封装了4个Power4芯片,共有8个CPU核心
Intel和AMD之所以推出双核心处理器,最重要的原因是原有的普通单核心处理器的频率难于提升,性能没有质的飞跃。由于频率难于提升,Intel在发布3.8GHz的产品以后只得宣布停止4GHz的产品计划;而AMD在实际频率超过2GHz以后也无法大幅度提升,3GHz成为了AMD无法逾越的一道坎。正是在这种情况下,为了寻找新的卖点,Intel和AMD都不约而同地祭起了双核心这面大旗。

Sun UltraSPARC IV双核处理器
二、AMD双核心处理器的简介
AMD目前的桌面平台双核心处理器代号为Toledo和Manchester,基本上可以简单看作是把两个Athlon 64所采用的Venice核心整合在同一个处理器内部,每个核心都拥有独立的512KB或1MB二级缓存,两个核心共享Hyper Transport,从架构上来说相对于目前的Athlon 64架构并没有任何改变。
与Intel的双核心处理器不同的是,由于AMD的Athlon 64处理器内部整和了内存控制器,而且在当初Athlon 64设计时就为双核心做了考虑,但是仍然需要仲裁器来保证其缓存数据的一致性。AMD在此采用了SRQ(System Request Queue,系统请求队列)技术,在工作的时候每一个核心都将其请求放在SRQ中,当获得资源之后请求将会被送往相应的执行核心,所以其缓存数据的一致性不需要通过北桥芯片,直接在处理器内部就可以完成。与Intel的双核心处理器相比,其优点是缓存数据延迟得以大大降低。
AMD目前的桌面平台双核心处理器是Athlon 64 X2,其型号按照PR值分为3800+至4800+等几种,同样采用0.09微米制程,Socket 939接口,支持1GHz的Hyper Transport,当然也都支持双通道DDR内存技术。

Athlon 64 X2
由于AMD双核心处理器的仲裁器是在CPU内部而不是在北桥芯片上,所以在主板芯片组的选择上要比Intel双核心处理器要宽松得多,甚至可以说与主板芯片组无关。理论上来说,任何Socket 939的主板通过更新BIOS都可以支持Athlon 64 X2。对普通消费者而言,这样可以保护已有的投资,而不必象Intel双核心处理器那样需要同时升级主板。
三、Intel双核心构架剖析
AMD的“真伪双核论”虽无法立足,但它点出的英特尔双核处理器可能出现前端总线资源争抢的问题是否真是实情呢?对此,英特尔表示:AMD并不了解我们的产品和我们将来产品的技术走向,对自己的竞争对手及其产品妄加猜测和评论的行为是不值得赞赏的。AMD曾经指出奔腾至尊版是两个核心共享一个二级缓存,这就是一个非常明显的错误。事实上,奔腾至尊版和奔腾D都是每个核心配有独享的一级和二级缓存,不同的是英特尔将双核争用前端总线的任务仲裁功能放在了芯片组的北桥芯片中。

图1:基于Smithfield衍生出的奔腾至尊版和奔腾D,主要区别就在于奔腾至尊版支持超线程,而奔腾D屏蔽了超线程功能。
按照“离得越近、走得越快”的集成电路设计原则,把这些功能组件集成在处理器中确实可以提高效率,减少延迟。不过,在台式机还不可能在短期内就支持4个内核和更多内核的现实情况下,只要有高带宽的前端系统总线,就算把这些任务仲裁组件外置,对于双核处理器的台式机来说带来的延迟和性能损失也是微乎其微的。
英特尔945和955系列芯片组目前可提供800MHz(用于目前的奔腾D)和1066MHz(用于奔腾至尊版)前端总线,如果是供一个四核处理器使用,那肯定会造成资源争抢,但对于双核来说,这个带宽已经足够了。英特尔认为目前双核系统中的主要瓶颈还是内存、I/O总线和硬盘系统,提升这些模块的速度才能使整个系统的计算平台更加均衡。
基于这种设计思路,英特尔在945和955系列芯片组中加强了对PCI-Express总线的支持,增加了对更高速DDR2内存的支持,对SATA(串行ATA)的支持速度增加了一倍由1.5Gb/s升级3Gb/s,进一步增加了磁盘阵列RAID 5 和 RAID 10的支持。

图2:单核奔腾4处理器(左)和双核奔腾D处理器(右)微架构示意图
此外,英特尔奔腾至尊版有一个独门“绝活”,那就是双核心加超线程的架构,这种架构可同时处理四个线程,这让它在多任务多线程的应用中具有明显优势。而且CMP与SMT(同时多线程,英特尔超线程就是一种SMT技术)的结合是业界公认的处理器重要发展趋势,最早推出双核处理器的IBM也是这一趋势的推动者。

图3:奔腾至尊版的双核+超线程架构让它具备同时四线程处理能力
英特尔之所以在奔腾至尊版和奔腾D上采用共享前端总线的双核架构,还是出于双核架构自身的紧凑设计和生产进程方面的考虑,这种架构使英特尔能够迅速推出全系列的双核处理器家族,加快双核处理器的产品化,而且它带来的成本优势也大大降低了奔腾至尊版、奔腾D与现有主流单核处理器——奔腾4系列的差价,有利于双核处理器在PC市场上的迅速普及。
四、AMD双核心架构剖析
从架构上来看,Athlon 64 X2除了多个“芯”外与目前的Athlon 64并没有任何区别。Athlon 64 X2的大多数技术特征、功能与目前市售的、基于AMD64架构的处理器是一样的,而且这些双核心处理器仍将使用1GHz HyperTransport总线与芯片组连接及支持双通道DDR内存技术。

实际上Toledo核心就相当于是两个San Diego核心的Athlon 64处理器的集成,至于Manchester自然就相当于两个Venice核心了—这也就是说,双核心的Athlon 64 X2处理器均将支持SSE3指令集。
另外我们不难发现的是,AMD的台式双核心处理器的频率与其单核心产品基本上处于同一水平上—这一点与Intel非常不一样(Intel目前频率最高的桌面单核心处理器达到了3.8GHz,而其最高频率的双核心处理器只不过3.2GHz)。当然这并不难理解,因为Athlon 64处理器,特别是采用了90nm SOI工艺的Athlon 64处理器的发热量要比Intel的高频率的Prescott核心处理器要低不少,所以自然可以采用比较高的工作频率了(当然从频率的角度来看,Athlon 64 X2也还是低于Pentium D              的)                。
由于Intel受发热量限制目前的双核心处理器最高只有3.2GHz,因此在性能上肯定要比AMD的 Athlon 64 X2要低一些——不过Pentium D不如Athlon64 X2的地方并不仅仅只有这方面而已。在处理器的架构上AMD也有其独到之处,下图所示就是AMD的双核心处理器的架构示意图。
AMD的双核心方案面临一个重要的问题,就是随着第二核心的出现,对内存与I/O带宽的资源将会出现争夺,如何解决好这个问题是AMD双核心处理器的性能的关键问题之一。与Pentium D不同的是,Athlon 64 X2的两个内核并不需要通过外部FSB通信这一途径。Athlon 64 X2内部整合了一个System Request Queue(SRQ)仲裁装备,每一个核心将其请求放在SRQ中,当获得资源之后请求将会被送往相应的执行核心,所有的过程都在CPU核心范围之内完成。
AMD双核心强调是真正将两个核心崁入整合在一个硅晶内核上,可以真正发挥双核心效率,不像对手的产品事实上为两个Packet的设计,会有两个核心之间传输瓶颈的问题。因此Athlon 64 X2的架构要优于Pentium D架构,尤其是在高负载的多线程/多任务的环境下,AMD的处理器将会表现出比Intel的处理器更好的性能。
此外,随着第二核心的出现,对内存与I/O带宽的资源将会出现争夺,如何解决好这个问题是AMD双核心处理器的性能的关键问题之一。AMD信引入了Crossbar控制器,这个全新的控制器结合优化的系统请求队列,可以有效的降低这个问题的危害性。

AMD处理器集成的内存控制器在进化到双核心时代表现出来的优势更加明显,低延时的内存控制器使得对CPU的缓存的依赖也大幅减少,在这样的情况下,在日后过渡到多核心的时候,需要考虑的问题更多的是基于各个核心之间的连接。我们可以看到,两个核心所采用的L2缓存也是分别独享的,也就是两个L2缓存中保存的数据是一致的。
实际的可利用容量和一个核心的L2缓存容量是 相同的—这一点和Intel一样。与Intel有所不同的是,AMD方案的两个核心之间的通信是通过处理器内部的Crossbar实现的。相比之下Intel的Pentium D处理器的核心之间的通信则是需要通过芯片组的MCH来进行—这显然比AMD的方案要带来更多的延迟时间。不过AMD的架构也并非十全十美,双核心处理器仍然只支持双通道DDR400内存无疑是一个有些令人遗憾的地方—两个处理器核心自然需要更大的内存带宽。要解决这个矛盾,只能使用全新的针脚设计,DDR2或许是一个不错的选择。
Athlon 64 X2这样的设计还有一个好处,那就是如果打算支持新的双内核处理器的话,对旧平台而言唯一的要求就是升级到最新BIOS就OK了,这将大大降低平台的应用、升级成本。当然AMD沿用以前的内存控制器也是有很大的好处的,那就是双核心的Athlon 64 X2处理器可以在目前几乎所有的Socket 939主板上使用。这方面AMD有着Intel无可比拟的优势—因为以前的915/925主板并不能支持Intel的双核心处理器。
此外,与Pentium D是通过降低频率来降低功耗不同,同样采用0.09微米生产技术的Athlon 64 X2似乎并不需要面临这样的问题。这都得益于AMD在Athlon 64 X2处理器上所采用的“Dual Stress Liner”应变硅技术。Dual Stress Liner技术是由AMD和IBM联合开发的,据称可以将半导体晶体管的响应速度提高24%。
事实上,DSL很类似于英特尔在90nm生产技术中引入的应变硅技术。我们都知道,晶体管越微细化,运行速度就越高,但同时也会引发泄漏电流增加、开关效率降低,从而导致耗电和发热量的增加。而DSL通过向晶体管的硅层施加应力,同时实现了速度的提高与耗电量的降低。
与Intel使用的应变硅不同,来自AMD和IBM的DSL能够被用于两种类型的晶体管:NMOS和PMOS(具有n和p通道)而无需使用极难获得的硅锗层,硅锗层会增加成本,并且有可能影响芯片的产量。 DSL这种双重性,让它比英特尔的应变硅更有效—DSL可以将晶体管的响应速度提升24%,而应变硅能提供的最大改进在15-20%。
并且更重要的是,AMD和IBM 这项新技术对产量及生产成本并没有任何负面影响。由于在生产时无需使用新的生产方法,所以使用标准生产设备和材料便可迅速展开量产。另外,配合使用硅绝缘膜构造(SOI,绝缘体上硅)与应变硅,还可生产性能更高、耗电更低的晶体管。AMD工程师们表示,DSL和SOI一起结合可以让Athlon 64处理器的频率潜力有大约16%的增长。而Athlon 64 X2的初始频率与目前Athlon 64持平上也可以看到DSL技术的确很有效。
当然,AMD也将在未来转移更先进的65nm生产线上,改进他们的内存控制器来对DDR2,DDR3和FB-DIMM等高性能内存提供支持,也将开始使用更快的HyperTransport 2.0总线,及更有效的节能降耗技术。
五、双核心技术与超线程技术的区别
超线程技术已经不是什么新鲜事物了,但普通用户可能与双核心技术区分不开。例如开启了超线程技术的Pentium 4 530与Pentium D 530在操作系统中都同样被识别为两颗处理器,它们究竟是不是一样的呢?这个问题确实具有迷惑性。
其实,可以简单地把双核心技术理解为两个物理处理器,是一种硬的方式;而超线程技术只是两个逻辑处理器,是一种软的方式。
从原理上来说,超线程技术属于Intel版本的多线程技术。这种技术可以让单CPU拥有处理多线程的能力,而物理上只使用一个处理器。超线程技术为每个物理处理器设置了两个入口-AS(Architecture State,架构状态)接口,从而使操作系统等软件将其识别为两个逻辑处理器。这两个逻辑处理器像传统处理器一样,都有独立的IA-32架构,它们可以分别进入暂停、中断状态,或直接执行特殊线程,并且每个逻辑处理器都拥有APIC(Advanced Programmable Interrupt Controller,高级可编程中断控制器)。
虽然支持超线程的Pentium 4能同时执行两个线程,但不同于传统的双处理器平台或双内核处理器,超线程中的两个逻辑处理器并没有独立的执行单元、整数单元、寄存器甚至缓存等等资源。它们在运行过程中仍需要共用执行单元、缓存和系统总线接口。在执行多线程时两个逻辑处理器均是交替工作,如果两个线程都同时需要某一个资源时,其中一个要暂停并要让出资源,要待那些资源闲置时才能继续。因此,超线程技术所带来的性能提升远不能等同于两个相同时钟频率处理器带来的性能提升。可以说Intel的超线程技术仅可以看做是对单个处理器运算资源的优化利用。
而双核心技术则是通过硬的物理核心实现多线程工作:每个核心拥有独立的指令集、执行单元,与超线程中所采用的模拟共享机制完全不一样。在操作系统看来,它是实实在在的双处理器,可以同时执行多项任务,能让处理器资源真正实现并行处理模式,其效率和性能提升要比超线程技术要高得多,不可同日而语。
六、双核心处理器的适用范围
目前,Windows XP专业版等操作系统支持双物理核心和四个逻辑核心,但这并不意味着所有软件对此都有优化。
事实上大量的测试已经证明,无论是Intel还是AMD的双核心处理器,相对于其各自的同频率的单核心处理器而言,对于目前的普通应用例如多媒体软件、游戏和办公软件等等都没有任何性能提升,甚至可能还稍有降低,因为这些普通应用目前都还只是单线程程序,在处理器执行指令时实际上只有一个核心在工作,而另外一个核心则处于空闲状态帮不上忙。
所以对普通用户而言,只要日常应用的程序仍然是单线程的话,双核心处理器实际上没有任何意义,反而还增大了购买成本。除非经常执行大运算量的多任务处理,例如在游戏的同时进行音视频处理等等,这时双核心处理器才能真正发挥作用。
目前最适合双核心处理器发挥威力的平台是服务器和工作站,这是因为其经常进行多任务处理,而且日常运行的大量程序都是多线程程序,例如图形工作站所使用的Adobe Photoshop和3D MAX等都是多线程程序。一般来说,在执行多任务处理和多线程程序时,双核心处理器要比同频率的单核心处理器的性能要高大约50%-70%,甚至在某些应用下性能几乎能提升100%。
当然,随着双核心处理器的强势推出和逐渐普及,日后支持多线程的普通应用程序也会逐渐增多,对普通用户而言那时双核心处理器才会真正发挥作用。
七、双核心处理器目前所存在的问题
无论是Intel的Pentium D和Pentium EE,还是AMD的Athlon 64 X2处理器,都是简单地将两个物理内核叠加在一起,这必然带来晶体管数量的大幅度增加,双方都已经达到了两亿三千万个以上的晶体管;带来的直接后果就是由泄漏电流引起的功耗大幅度增加,就算是采用了节能技术其发热量也居高不下,从而导致双核心处理器相对于单核心处理器而言频率提升更加困难。
而且由于目前的制造工艺的限制,双核心处理器的良品率要比单核心处理器的低,这必然会带来成本的居高不下,所以目前的双核心处理器的价格都太贵了,距离普及还差得很远。当然,随着处理器核心架构和制造技术的发展,今后必然会解决目前所遇到的问题。
Intel® Matrix Storage Technology
Is Your PC Optimized for Storage Performance and Reliability?
Storage in the Digital World
The RAID Solution
Performance with Protection: Intel® Matrix RAID Technology
The Desktop Storage Solution: Intel Chipsets with Matrix Storage Technology
Intel Matrix Storage Technology Benefits
Simplified Upgrade
Choose Intel Matrix Storage Technology

Storage in the Digital World

We live in a digital world. We digitally create, record, edit, share, and save practically everything from the movies we watch, to the pictures we take, to the documents we store. Today‘s digital home demands we protect this data against loss. Intel® Matrix Storage Technology provides improved performance and reliability for systems equipped with Serial ATA* hard disk drives, today‘s proven storage solution. Intel® Matrix Storage Technology provides support for features that enable lower power consumption. For mobile systems this provides a longer battery life.
The Intel® Matrix Storage Solution

Intel Matrix Storage Technology provides new levels of protection, performance, and expandability in 2008 for desktop and mobile platforms. Whether using one or multiple hard drives, users can take advantage of enhanced performance and lower power consumption. When using more than one drive the user can have additional protection against data loss in the event of hard drive failure.
Valuable digital memories are protected against a hard drive failure when the system is configured for any one of three fault-tolerant RAID levels: RAID 1, 5 or 10. By seamlessly storing copies of data on one or more additional hard drives, any hard drive can fail without data loss or system downtime. When the failed drive is removed and a replacement hard drive is installed, data fault tolerance is easily restored. In this way, Intel Matrix Storage Technology provides the level of data protection necessary for today‘s digital computing platforms. In the digital office the increased redundancy reduces costly downtime and maintains employee productivity involving the PC.
Intel Matrix Storage Technology can also improve the performance of disk intensive retrieval applications such as editing home video. By combining from two to six drives in a RAID 0 configuration, data can be accessed on each drive simultaneously, speeding up response time on data-intensive applications. Also, due to drive load balancing, even systems with RAID 1 can take advantage of faster boot times and data reads. In the office there are more background tasks such as virus scans, data backup, e-mail, and data processing consuming storage resources. Implementing a basic RAID 1 configuration helps alleviate the bottleneck encountered by running these added tasks.
Intel Matrix Storage Technology provides benefits to users of a single drive as well. Storage performance is improved through Native Command Queuing (NCQ), harnessing the quad DMA controllers in the hardware, and optimized hardware & software tuning. For mobile systems, longer battery life is enabled through Link Power Management (LPM) which can reduce the power consumption of the chipset and SATA* hard drive. To warn of possible hard drive failures, SMART alerting is provided, notifying users when the drive detects potential oncoming failure. For those who wish to later upgrade to RAID capabilities, a system with Intel Matrix Storage Technology pre-installed allows a simplified upgrade to any supported RAID level from a single drive without having to reinstall the operating system or incur any downtime.
Intel® Rapid Recover Technology (Intel® RRT): With the ability to instantly boot off a clone, Intel Rapid Recover Technology (part of Intel Matrix Storage Technology) provides a fast, easy-to-use method for the end user to recover their data and return their system to an operational status.
Performance with Protection: Matrix RAID

For those users who wish to combine the benefits of two RAID levels, matrix RAID is the solution. When using two hard drives, matrix RAID allows RAID 0 and RAID 1 functions to be combined, where critical files can be stored on RAID 1, and RAID 0 can be used for non-critical items such as software. In 2005, the matrix RAID capability was expanded to include RAID 5 and RAID 10. For instance, RAID 5 and RAID 0 can be combined to provide higher performance, capacity, and fault tolerance. A user can edit digital video on a high-performance 4-drive RAID 0 array, then transfer it to RAID 5 for protected storage when completed.

Intel Matrix Storage Technology extends its performance and protection capabilities outside of the PC through native support of eSATA*.
The Desktop Storage Solution:
Intel Chipsets with Intel Matrix Storage Technology

By providing integrated hardware and software solutions, Intel makes RAID and advanced storage features an affordable reality for desktop and mobile platforms. Based upon technology from Intel‘s enterprise products and Intel desktop and mobile hardware, Intel continues to provide a leading RAID solution that is both affordable and usable in the digital home and office.
Intel Matrix Storage Technology continues its support of hardware storage features. 3Gb/s support doubles the hard drive to chipset transfer rate, providing additional responsiveness and headroom, eSATA support extends this high performance interface outside of the desktop and mobile systems and provides expanded connectivity. By including support for Serial ATA Advanced Host Controller Interface (AHCI), Native Command Queuing (NCQ) provides additional performance & faster boot times, hot plug capability to allow drives to be added or removed with the PC running, and staggered spin up to reduce power loads on machines with multiple drives.
Intel Matrix Storage Technology can be found on select platforms based on the Intel® 4 Series chipsets, Intel® 3 Series chipsets, 965, 975X, 955X, 945G ,945P, 945PM and 945GM Express chipsets. Contact the platform manufacturers directly to verify which of their products offer Intel Matrix Storage Technology.
Intel Matrix Storage Technology Benefits

In today‘s digital age, safekeeping of digital content such as photographs, video, audio and personal records, is extremely important. Should a PC‘s hard drive fail, these digital memories can be lost forever. Additionally, high-speed storage capabilities improve the performance of demanding applications and games. Whether users want to load huge files into Adobe Photoshop* faster, create large CD/DVD images with Nero* in record time, or want to be the first on the map in a Doom* ‘frag‘ tournament, Intel Matrix Storage Technology is a key part of the solution for these and many other disk-intensive applications.
Video content, digital photos, music libraries, realistic 3-D gaming environments and even TV programs recorded live from satellite can all be stored on today‘s desktop and mobile PCs. With gigabytes of data being transferred to and from the hard drive, storage performance counts. Intel Matrix Storage Technology helps deliver results in this media-rich computing environment.
Simplified Upgrade

Building or buying a PC with a single Serial ATA hard drive, then upgrading to RAID at a later date is typically not a simple task, as it requires the reinstallation of the OS and applications. However, an Intel Express chipset with Intel Matrix Storage Technology** can be more easily upgraded to RAID capabilities when adding one or more additional Serial ATA hard drive(s). The Intel® Matrix Storage Manager software (included with platforms supporting Intel Matrix Storage Technology) handles the configuration and migration while running in the background, allowing users to surf the Web or read e-mail during the process. Once the migration is complete, dramatic increases in data protection or storage performance are available.
Choose Intel Matrix Storage Technology

When looking for a desktop or mobile PC system designed to protect your digital memories, be sure to look for an Intel Express chipset with Intel Matrix Storage Technology.
Features Benefits
Intel® ICH10R, ICH9R, ICH9DO Six port SATA controller with RAID, eSATA, and port multiplier support, providing storage benefits of Intel® Matrix Storage Technology, Intel® Rapid Recover Technology, and Intel® Turbo Memory
Intel® ICH8R, ICH8DH, ICH8DO
Intel® ICH7M-DH
Intel® ICH7M Six port SATA controller with RAID and eSATA support, providing storage benefits of Intel® Matrix Storage Technology.
Two port SATA RAID controller, providing storage benefits of Intel® Matrix Storage Technology.
Two port SATA controller, providing AHCI support (NCQ, LPM)
Matrix RAID Exceptional storage performance with increased data protection on a RAID-enabled multi hard drive array.
RAID BIOS ROM Integrated into system BIOS, enables pre-OS RAID creation, naming and deletion of RAID arrays.
Intel® RAID Migration Technology Seamless migration from a single hard drive to a RAID 0 or RAID 1 dual hard drive array without requiring OS reinstallation. Additional migrations to higher levels of RAID are also supported.
Serial ATA AHCI Software interface providing advanced storage interface for Serial ATA, including native command queuing, link power management and native hot plug.
Intel® Matrix Storage Manager Software solution with full management and status reporting of RAID array, including detailed reporting of storage devices.
Developer‘s Sitehttp://developer.intel.com/
Motherboard & Barebones Selector Guidehttp://www.intel.com/go/boards
Other Intel Support:
Intel Literature Center
General Information Hotlinehttp://support.intel.com
(800) 548-4725 7 a.m. to 7 p.m. CST (U.S. and Canada)
International locations please contact your local sales office.
(800) 628-8686 or (916) 356-3104 5 a.m. to 5 p.m. PST
* other brands and names may be claimed as the property of others.
单片机系统软件抗干扰方法
在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。下面以MCS-51单片机系统为例,对微机系统软件抗干扰方法进行研究。
1  软件抗干扰方法的研究
在工程实践中,软件抗干扰研究的内容主要是: 一、消除模拟输入信号的嗓声(如数字滤波技术);二、程序运行混乱时使程序重入正轨的方法。本文针对后者提出了几种有效的软件抗干扰方法。
1.1 指令冗余
CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当乱飞到某双字节指令,若取指令时刻落在操作数上,误将操作数当作操作码,程序将出错。若“飞” 到了三字节指令,出错机率更大。
在关键地方人为插入一些单字节指令,或将有效单字节指令重写称为指令冗余。通常是在双字节指令和三字节指令后插入两个字节以上的NOP。这样即使乱飞程序飞到操作数上,由于空操作指令NOP的存在,避免了后面的指令被当作操作数执行,程序自动纳入正轨。
此外,对系统流向起重要作用的指令如RET、 RETI、LCALL、LJMP、JC等指令之前插入两条NOP,也可将乱飞程序纳入正轨,确保这些重要指令的执行。
1.2 拦截技术
所谓拦截,是指将乱飞的程序引向指定位置,再进行出错处理。通常用软件陷阱来拦截乱飞的程序。因此先要合理设计陷阱,其次要将陷阱安排在适当的位置。
1.2.1 软件陷阱的设计
当乱飞程序进入非程序区,冗余指令便无法起作用。通过软件陷阱,拦截乱飞程序,将其引向指定位置,再进行出错处理。软件陷阱是指用来将捕获的乱飞程序引向复位入口地址0000H的指令。通常在EPROM中非程序区填入以下指令作为软件陷阱:
NOP
NOP
LJMP 0000H
其机器码为0000020000。
1.2.2 陷阱的安排
通常在程序中未使用的EPROM空间填0000020000。最后一条应填入020000,当乱飞程序 落到此区,即可自动入轨。在用户程序区各模块之间的空余单元也可填入陷阱指令。当使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,能及时捕获错误的中断。如某应用系统虽未用到外部中断1,外部中断1的中断服务程序可为如下形式:
NOP
NOP
RETI
返回指令可用“RETI”,也可用“LJMP 0000H”。如果故障诊断程序与系统自恢复程序的设计可靠、 完善,用“LJMP 0000H”作返回指令可直接进入故障诊断程序,尽早地处理故障并恢复程序的运行。
考虑到程序存贮器的容量,软件陷阱一般1K空间有2-3个就可以进行有效拦截。
1.3 软件“看门狗”技术
若失控的程序进入“死循环”,通常采用“看门狗”技术使程序脱离“死循环”。通过不断检测程序循环运行时间,若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”,需进行出错处理。
“看门狗”技术可由硬件实现,也可由软件实现。 在工业应用中,严重的干扰有时会破坏中断方式控制字,关闭中断。则系统无法定时“喂狗”,硬件看门狗电路失效。而软件看门狗可有效地解决这类问题。
笔者在实际应用中,采用环形中断监视系统。用定时器T0监视定时器T1,用定时器T1监视主程序,主程序监视定时器T0。采用这种环形结构的软件“看门狗”具有良好的抗干扰性能,大大提高了系统可靠性。对于需经常使用T1定时器进行串口通讯的测控系统,则定时器T1不能进行中断,可改由串口中断进行监控(如果用的是MCS-52系列单片机,也可用T2代替T1进行监视)。这种软件“看门狗”监视原理是:在主程序、T0中断服务程序、T1中断服务程序中各设一运行观测变量,假设为MWatch、T0Watch 、T1Watch,主程序每循环一次,MWatch加1,同样T0、T1中断服务程序执行一次,T0Watch、 T1Watch加1。在T0中断服务程序中通过检测T1Watch的变化情况判定T1运行是否正常,在T1中断服务程序中检测MWatch的变化情况判定主程序是否正常运行,在主程序中通过检测T0Watch的变化情况判别T0是否正常工作。若检测到某观测变量变化不正常,比如应当加1而未加1,则转到出错处理程序作排除故障处理。当然,对主程序最大循环周期、定时器T0和T1定时周期应予以全盘合理考虑。限于篇幅不赘述。
2  系统故障处理、自恢复程序的设计
单片机系统因干扰复位或掉电后复位均属非正常复位,应进行故障诊断并能自动恢复非正常复位前的状态。
2.1 非正常复位的识别
程序的执行总是从0000H开始,导致程序从 0000H开始执行有四种可能:一、系统开机上电复位;二、软件故障复位;三、看门狗超时未喂狗硬件复位; 四、任务正在执行中掉电后来电复位。四种情况中除第一种情况外均属非正常复位,需加以识别。
2.1.1 硬件复位与软件复位的识别
此处硬件复位指开机复位与看门狗复位,硬件复位对寄存器有影响,如复位后PC=0000H, SP=07H,PSW=00H等。而软件复位则对SP、SPW无影响。故对于微机测控系统,当程序正常运行时,将SP设置地址大于07H,或者将PSW的第5位用户标志位在系统正常运行时设为1。那么系统复位时只需检测PSW.5标志位或SP值便可判此是否硬件复位。图1是采用PSW.5作上电标志位判别硬、软件复位的程序流程图。
图1 硬、软件复位识别流程图
此外,由于硬件复位时片内RAM状态是随机的,而软件复位片内RAM则可保持复位前状态,因此可选取片内某一个或两个单元作为上电标志。设 40H用来做上电标志,上电标志字为78H,若系统复位后40H单元内容不等于78H,则认为是硬件复位,否则认为是软件复位,转向出错处理。若用两个单元作上电标志,则这种判别方法的可靠性更高。
2.1.2 开机复位与看门狗故障复位的识别
开机复位与看门狗故障复位因同属硬件复位, 所以要想予以正确识别,一般要借助非易失性RAM或者EEROM。当系统正常运行时,设置一可掉电保护的观测单元。当系统正常运行时,在定时喂狗的中断服务程序中使该观测单元保持正常值(设为 AAH),而在主程中将该单元清零,因观测单元掉电可保护,则开机时通过检测该单元是否为正常值可判断是否看门狗复位。
2.1.3 正常开机复位与非正常开机复位的识别
识别测控系统中因意外情况如系统掉电等情况引起的开机复位与正常开机复位,对于过程控制系统尤为重要。如某以时间为控制标准的测控系统,完成一次测控任务需1小时。在已执行测控50分钟的情况下,系统电压异常引起复位,此时若系统复位后又从头开始进行测控则会造成不必要的时间消耗。因此可通过一监测单元对当前系统的运行状态、系统时间予以监控,将控制过程分解为若干步或若干时间段,每执行完一步或每运行一个时间段则对监测单元置为关机允许值,不同的任务或任务的不同阶段有不同的值,若系统正在进行测控任务或正在执某时间段,则将监测单元置为非正常关机值。那么系统复位后可据此单元判系统原来的运行状态,并跳到出错处理程序中恢复系统原运行状态。
2.2 非正常复位后系统自恢复运行的程序设计
对顺序要求严格的一些过程控制系统,系统非正常复位否,一般都要求从失控的那一个模块或任务恢复运行。所以测控系统要作好重要数据单元、参数的备份,如系统运行状态、系统的进程值、当前输入、输出的值,当前时钟值、观测单元值等,这些数据既要定时备份,同时若有修改也应立即予以备份。
当在已判别出系统非正常复位的情况下,先要恢复一些必要的系统数据,如显示模块的初始化、片外扩展芯片的初始化等。其次再对测控系统的系统状态、运行参数等予以恢复,包括显示界面等的恢复。之后再把复位前的任务、参数、运行时间等恢复, 再进入系统运行状态。
应当说明的是,真实地恢复系统的运行状态需 要极为细致地对系统的重要数据予以备份,并加以数据可靠性检查,以保证恢复的数据的可靠性。
其次,对多任务、多进程测控系统,数据的恢复需考虑恢复的次序问题,笔者实际应用的数据恢复过程流程图如图2所示。
图2 系统自恢复程序流程图
图中恢复系统基本数据是指取出备份的数据覆盖当前的系统数据。系统基本初始化是指对芯片、显示、输入输出方式等进行初始化,要注意输入输出的初始化不应造成误动作。而复位前任务的初始化是指任务的执行状态、运行时间等。
3  结束语
对于软件抗干扰的一些其它常用方法如数字滤波、RAM数据保护与纠错等,限于篇幅,本文未作讨论。在工程实践中通常都是几种抗干扰方法并用,互相补充完善,才能取得较好的抗干扰效果。从根本上来说,硬件抗干扰是主动的,而软件是抗干扰是被动的。细致周到地分析干扰源,硬件与软件抗干扰相结合,完善系统监控程序,设计一稳定可靠的单片机系统是完全可行的。
欢迎光临游戏机破解联盟!!http://www.dingweiqi.net  请保留链接,以免侵犯了他人的版权!