版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统设计电子科技大学自动化工程学院主要内容132高速缓存(Cache)存储管理单元(MMU)接口设计高速缓存高速缓存在科研领域,C.J.Conti等人于1968年在描述360/85和360/91系统性能差异时最早引入了高速缓存(cache)一词AlanJaySmith于1982年的一篇论文中引入了空间局部性和时间局部性的概念。最早介绍非阻塞缓存的论文之一来自DavidKroft(1981年)。1990年NormanPaulJouppi在一篇论文中介绍了受害者缓存并研究了使用流缓冲器进行预取的性能。在工业领域,最早的有记载的缓存出现在IBM的360/85系统上Intel的x86架构CPU从386开始引入使用SRAM技术的主板缓存,大小从16KB到64KB不等。486引入两级缓存。其中8KBL1缓存和CPU同片,而L2缓存仍然位于主板上,大小可达268KB。AMD则从K6-III开始引入三级缓存。基于Socket7接口的K6-III拥有64KB和256KB的同片封装两级缓存,以及可达2MB的三级主板缓存。今天的CPU将三级缓存全部集成到CPU芯片上。多核CPU通常为每个核配有独享的一级和二级缓存,以及各核之间共享的三级缓存。高速缓存Cache高速缓冲存储器中存放的是当前使用得最多的程序代码和数据,即主存中部分内容的副本。在嵌入式系统中Cache全部都集成在嵌入式微处理器内。可分为数据Cache、指令Cache或混合Cache。不同的处理器其Cache的大小不一样。一般32位的嵌入式微处理器都内置Cache。高速缓存CacheCache命中:CPU每次读取主存时,Cache控制器都要检查CPU送出的地址,判断CPU要读取的数据是否在Cache中,如果在就称为命中。Cache未命中
读取的数据不在Cache中,则对主存储器进行操作,并将有关内容置入Cache。写入方法:通写(WriteThrough):写Cache时,Cache与对应主存内容同步更新。回写(WriteBack):写Cache时,只有写入Cache内容移出时才更新对应主存内容。CPU地址索引机构置换控制器高速缓冲存储器主存段(页)地址高位地址低位地址地址总线数据总线Cache结构框图高速缓存—结构高速缓存—直接映射内存内存地址0123456789ABCDEF4单元直接映射cache0123指定内存单元映射到一个确定的Cache单元多个内存单元可以映射到同一个Cache单元高速缓存—直接映射高速缓存—组相连高速缓存—组相连12高速缓存—替换策略如果发生Cache未命中事件,必须从内存读取数据,并存储到某个Cache块中究竟存储到哪个Cache块?替换策略直接映射Cache根据内存地址唯一确定全相关/N路集相关有多个可选择的块:如何决策?13高速缓存—替换策略随机法(RAND法)
随机替换存高速缓存储块
简单、易于实现,命中率低先进先出法(FIFO法)最先调入高速缓存的,最先替换命中率较随机法高最近最少使用法(LRU)选择最近最少的存储块替换命中率最高高速缓存—据一致性CPU写高速缓存时,没有立即写主存储器输入输出端口的控制器或输入输出设别写主存储器,不写高速缓存15高速缓存—写操作写直达策略(WriteThrough)同时写到内存和Cache写回策略(WriteBack)临时写到Cache,不马上写到内存需要标志Cache是否已经被写过(Dirty)数据替换或消失前,OS要把Cache内容写到内存写合并策略(WriteCombine)暂存连续数次写操作,再一次写入内存用于多媒体程序:持续写一大块内存,视频解码等高速缓存—性能优化Bytea[1024][4]=...//初始化intsum=...//初始化
for(j=0;
j<4;
j=++)
{
for(i=0;
i<1024;
i=++)
{
sum+
=
a[i][j];
}
}高速缓存—性能优化Bytea[1024][4]=...//初始化intsum=...//初始化
for(i=0;
i<1024;
i=++)
{
for(j=0;
j<4;j=++)
{
sum+
=
a[i][j];
}
}内存管理单元
内存管理系统式嵌入式操作系统内核中重要的功能之一。由于处理器直接运行和处理的程序和数据只能放在内存中,因此内存的管理质量是否优良将直接影响系统。内存管理单元—主要功能虚拟内存空间
操作系统采用虚拟内存功能使系统显得它有比实际大得多得内存空间,虚拟内存可以比系统中的物理内存大好多。内存保护 系统中每个进程都有自己的虚拟地址空间,这些虚拟内存空间相互之间完全分离,因此运行一个应用的进程不会影响其他的进程。同样,硬件的虚拟内存机制允许内存区域被写保护,这样就保护了代码和数据不被恶意应用重写。内存管理单元—主要功能内存映射内存映射用来把映像和数据文件映像到一个进程的地址空间。在内存映射中,文件的内容被直接链接到进程的虚拟地址空间。公平物理内存分配内存管理系统给予系统中运行的每个进程公平的一份系统物理内存。共享虚拟内存尽管虚拟内存允许进程拥有分隔的虚拟地址空间,但有时还需要进程共享内存,如进程间通信需要共享内存。通用输入输出接口(GPIO)接口:是微处理器(CPU)与外界的连接部分(电路),是CPU与外界世界进行信息交换的中转站。接口技术研究的是CPU如何与外部世界进行最佳耦合与匹配,以实现双方高效、可靠地进行信息交换的技术。端口:在接口电路中通常包含若干个寄存器,数据传送时,不同的信息送入不同的寄存器,能够用IN/OUT指令对其进行读/写操作的寄存器称为端口寄存器,简称“端口”端口分类:数据端口、状态端口和控制端口通用输入输出接口—用途CPU接口外设数据数据控制信号控制信号状态信号状态信号可能是单向的接口在计算机系统中的位置和作用通用输入输出接口接口电路基本结构框图这就是端口,接口的核心部分通用输入输出接口25通用输入输出接口—S3C2410输入输出端口是嵌入式系统硬件平台的重要组成部分,通过输入输出端口可以连接各种类型的外部输入输出设备。我们常把在S3C2440A芯片中的输入输出端口称为GPIO端口。S3C2410芯片中共有117个GPIO端口,分为8组,GPA~GPH,这8组GPIO端口均为多功能端口,端口功能可以编程设置,若选定某个GPIO端口的功能,用户应在主程序运行之前编程设置对应的控制寄存器,从而选定所需GPIO端口的功能。如果某个GPIO引脚不用于特定功能,那么该引脚就可以设置为普通的输入输出引脚。通用输入输出接口—功能定义引脚名称功能1功能2功能3GPA22输出nFCE—GPA21输出nRSTOUT—GPA20输出nFRE—GPA19输出nFWE—GPA18输出ALE—GPA17输出CLE—GPA16输出nGCS5—GPA15输出nGCS4—GPA14输出nGCS3—GPA13输出nGCS2—GPA12输出nGCS1—引脚名称功能1功能2功能3GPA11输出ADDR26—GPA10输出ADDR25—GPA9输出ADDR24—GPA8输出ADDR23—GPA7输出ADDR22—GPA6输出ADDR21—GPA5输出ADDR20—GPA4输出ADDR19—GPA3输出ADDR18—GPA2输出ADDR17—GPA1输出ADDR16—GPA0输出ADDR0—端口A的引脚有两种功能:第1种功能是作为普通的输出口;第2种功能主要用作外接存储器的地址信号和存储块选择信号。27通用输入输出接口—功能定义引脚名称功能1功能2功能3GPF7输入/输出EINT7—GPF6输入/输出EINT6—GPF5输入/输出EINT5—GPF4输入/输出EINT4—GPF3输入/输出EINT3—GPF2输入/输出EINT2GPF1输入/输出EINT1GPF0输入/输出EINT0端口F的GPIO引脚功能端口F的I/O引脚共有8个通用输入输出接口—S3C2410通用输入输出接口—接口控制GPFCON为通用端口F组的管脚工作状态配置寄存器。GPFDAT――端口数据寄存器GPFDAT寄存中的每一位的值代表管脚上的信号,如GPF0管脚为低电平,则GPFDAT[0]为0。管脚内部上拉电阻使能!!GPFUP――端口上拉电阻使能寄存器表示GPFCON的第0、1位决定GPF组的第0跟管脚,例如为00时,该管脚用于输入,01时表示该管脚用于输出,10时表示外部中断0输入,11则为保留。GPFCON—模式控制寄存器通用输入输出接口—S3C2410通用输入输出接口—上拉电阻上拉电阻Vcc(高电平)GPIO引脚下拉电阻接地端GPIO引脚GPIO引脚Vcc(高电平)内部上拉电阻通用输入输出接口—上拉电阻输入输出1KΩ1KΩ+5VBECCBE通用输入输出接口—上拉电阻输入输出1KΩ1KΩ+5VBECCBE+5V上拉电阻通用输入输出接口—推挽(push-pull)驱动能力强,可直接输出高电平电平转换速度快功耗大通用输入输出接口—开漏(open-drain)需外加上拉电阻输出高电平电平转换速度慢可实现“线与”功能端口E的GPE3位输出控制一个LED指示灯,GPE4位输出控制一个蜂鸣器,如图所示:端口F用作一个并行数据的输入,即作为一个普通的并行输入口。通用输入输出接口—实例通用输入输出接口—实例reg2410.h中关于GPIO的定义如下:
…#definerGPECON(*(volatileunsigned*)0x56000040)/*端口E控制寄存器*/#definerGPEDAT(*(volatileunsigned*)0x56000044)/*端口E数据寄存器*/#definerGPEUP(*(volatileunsigned*)0x56000048)/*端口E上拉控制寄存器*/#definerGPFCON(*(volatileunsigned*)0x56000050)/*端口F控制寄存器*/#definerGPFDAT(*(volatileunsigned*)0x56000054)/*端口F控制寄存器*/#definerGPFUP(*(volatileunsigned*)0x56000058)/*端口F上拉控制寄存器*/…#include“S3C2410.h”/*端口E的GPE4用作蜂鸣器输出控制端,宏定义蜂鸣器的开、关,高电平为鸣叫*/#definebeepon(){rGPEDAT=rGPEDAT|0x0010;}#definebeepoff(){rGPEDAT=rGPEDAT&0xffef;}/**端口E的GPE3用作LED输出控制端,宏定义LED的亮、灭,低电平为亮/#defineledlight(){rGPEDAT=rGPEDAT&0xfff7;}#defineledclear(){rGPEDAT=rGPEDAT|0x0008;}通用输入输出接口—实例voidmain(){INT16Utemp;//定义变量用来判断并口输入是否有效INT8Uoldportf=0xff,newportf;rGPECON=((rGPECON|0x00000140)&0xfffffd7f);//初始化端口E,使GPE4、GPE3为输出beepoff();//关蜂鸣器rGPFCON=rGPFCON&0x0000;//初始化端口F,使所有位均为输入Newportf=rGPFDAT;//读端口F,用于判断输入的变化}通用输入输出接口—实例while(1){if(newportf!=oldportf)//若端口F的引脚有一位为低电平{ledlight();//LED指示灯亮beepon();//蜂鸣器发声Delay(3000);//延时beepoff();//关蜂鸣器ledclear();//LED指示灯灭}}通用输入输出接口—实例定时器/计数器—clock定时器/计数器—PLL鉴频鉴相器(PFD)(鉴相器:PD):对输入的参考信号和反馈回路的信号进行频率和相位的比较,输出一个代表两者差异的信号至低通滤波器低通滤波器(LPF):将输入信号中的高频成分滤除,保留直流部分送至压控振荡器。压控振荡器(VCO):输出一个周期信号,其频率由输入电压所控制。反馈回路:将压控振荡器输出的信号送回至鉴频鉴相器。通常压控振荡器的输出信号的频率大于参考信号的频率,因此需在此加入分频器(DIV)以降低频率。定时器/计数器—原理定时器/计数器—S3C2410定时器/计数器—定时器实例计数器初值=定时器时间间隔/(1/(PCLK/(预分频系数+1)/(分割器值)))定时器计数脉冲频率=PCLK/(预分频系数+1)/(分割器值)定时器计数脉冲周期=1/定时器计数脉冲频率(1Hz=1/s)计数器初值=定时器时间间隔/定时器计数脉冲周期定时器/计数器—定时器的用途
定时器是操作系统的心脏,操作系统的任务的调度和时间的计算都依赖于定时器定时器/计数器—PWMOwtuoUd-Ud2ppa1a2a3定时器/计数器—捕获器看门狗作用:当系统程序出现错乱,引起系统程序死循环时,产生复位信号,迫使系统复位,恢复系统正常运行。原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗(喂狗),那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。看门狗—内部看门狗1.计算主控程序循环一次的耗时。2.设置定时器。设置定时周期大于主程序循环周期,设置溢出中断。3.设计定时器溢出所对应的中断服务程序。此子程序只须一条指令,把计算机拖回整个程序的第一行,对单片机重新进行初始化并获得正确的执行顺序。4.设计“喂狗”程序:在主循环手动装载计数缓冲寄存器。看门狗—软件看门狗看门狗—外部看门狗看门狗—双时限看门狗S3C2410的RTC实时时钟
在一个嵌入式系统中,通常采用RTC来提供可靠的系统时间,包括时、分、秒和年、月、日、星期等,而且要求在系统处于关机状态下它也能够正常工作(通常采用后备电池供电)。它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的32.768KHz晶体和电阻电容等。实时时钟S3C2410的RTC基本特性
时钟数据采用BCD编码能够对闰年的年月日进行自动处理具有报警功能具有独立的电源输入
提供毫秒级时钟中断,可作为内核时钟实时时钟—内部实时时钟实时时钟—内部结构(1)闰年产生器
这个模块可以决定每个月的最后日期是28、29、30还是31,并可以根据是否是闰年来决定日期。实时时钟—模块构成(2)读/写寄存器设置RTCON寄存器的0位来表示读和写RTC模块中的寄存器。为了显示秒,分,小时,日期,月和年,CPU会从BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON和BCDYEAR寄存器读取数据。由于多个寄存器的读取,可能产生1秒钟的偏离。解决的方法是,当读取到的BCDSEC等于0时,用户应该再读取一次BCDYEAR到BCDSEC的值。
(3)节拍中断
RTC节拍时间用于中断请求。TICNT寄存器具有1个中断使能位,其中的计数值n(1≤n≤127)用于中断。
Period=(n+1)/128秒节拍中断功能可以作为RTOS(实时操作系统)内核的时间节拍。实时时钟—模块构成(4)备用电池和报警功能
RTC逻辑模块可以通过一个备用电池供电。即使系统关闭,也能够提供电能保证RTC模块正常工作。在掉电模式或正常工作模式下,RTC能够在指定的时间产生一个报警信号。在正常工作模式下,报警中断被激活。十进数8421-BCD码余3-BCD码2421-A码(M10)DCBAC3
C2
C1
C0a3
a2
a1
a00000000110000100010100000120010010100103001101100011401000111010050101100001016011010010110701111010011181000101111109100111001111
BCD码的主要优点是在机器格式与人可读的格式之间转换容易实时时钟—BCD码实时时钟—寄存器实时时钟—外部实时时钟芯片实时时钟—读写时序实时时钟—读写时序实时时钟—读写时序人机接口定义
人机交互接口(Human–MachineInteraction),是计算机和人机交互设备之间的交接界面,通过接口可以实现计算机与外设之间的信息交换。人机交互设备是计算机系统中最基本的设备之一,是人和计算机之间建立联系、交换信息的外部设备,常见的人机交互设备可分为输入设备和输出设备两类。
常见人机接口常见人机接口常见人机接口嵌入式系统人机接口嵌入式系统人机接口嵌入式系统人机接口嵌入式系统人机接口按键开关电路按键开关电路是指通过外力使电路瞬时接通的开关,在许多场合都有应用。比如大多数处理器的RESET电路都用到了按键开关,它通过按键产生一个瞬时的低电压,CPU感知这个低电压后重启。输入接口—独立键盘输入接口—独立键盘行扫描法:先由行线送出数据,送全“0”
然后读进列线,判有无键按下。如果确定有键按下,行线再次送出数据,每次送出数据中只有一位“0”,判断按键的位置并算出键值,顺序扫描。输入接口—矩阵键盘接口
(a)线反转法第一步(b)线反转法第二步输入接口—矩阵键盘接口键盘的可靠性
消除抖动电路&I/O接口&+5v+5v消除抖动电路开关单片机抖动时间<10ms开关动作时间>100ms“1”“0”<10ms输入接口—矩阵键盘接口输入接口—矩阵键盘接口解决连击现象的几种方法:解决连击的关键是一次按键只让它响应一次,为此要分别检测到按键按下和释放的时刻。
1)按下键盘就执行。执行完后等待操作者释放按键,未释放前不再执行指定功能,从而避免了一次按键重复执行的现象;
2)在按键释放后再执行指定功能,同样可以避免连击,但给人一种反应迟钝的感觉,因此不常采用。输入接口—键盘接口芯片自动消除抖动连击键计数1.2键盘的分类键盘和鼠标都可以使用PS/2接口,按照PC‘99颜色规范,鼠标通常是浅绿色接口,键盘是紫色接口。输入接口—编码键盘输入接口—
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合肥金融学院就业前景分析
- 医院环境中冷损伤的预防管理
- 疫情期间远程办公劳动合同范本
- 2026年劳务派遣合同签订与风险防范
- 2026年劳动合同签订法律风险规避
- 2025年仓储系统模块化软件开发设计
- 护理健康教育内容
- 安徽省合肥市2026届高三下高考第二次教学质量检测数学试卷
- 2026七年级数学 北师大版综合实践四阶幻方探索
- 护理人才能力发展评估的持续改进
- 临电转正式电施工方案
- 湖南省长沙市湖南师大附中教育集团2023-2024学年七年级下学期期中数学试题
- 八大特殊作业(施工作业)安全管理培训(汇编)
- 【生物】激素调节课件 2023-2024学年人教版生物七年级下册
- 工程数学基础课件
- 抗肿瘤药物临床合理应用(临床)
- 工业γ射线探伤装置安全使用和辐射防护
- 年产30万吨合成氨脱碳工段工艺设计
- 优选文档压裂压力诊断PPT
- GB/T 6003.2-2012试验筛技术要求和检验第2部分:金属穿孔板试验筛
- GB/T 21372-2008硅酸盐水泥熟料
评论
0/150
提交评论