嵌入式微处理器的结构和类型
阳间混日子的一天。
嵌入式系统的存储体系
存储器系统的层次结构
计算机系统的存储器被组织成一个金字塔形的层次结构,
S0:CPU内部寄存器
S1:芯片内的高速缓存(cache)
S2:芯片外的高速缓存(SRAM,DRAM,DDRAM)
S3:主存储器(Flash,PROM,EPROM,E2PROM)
S4:外部储存器(磁盘,光盘,CF卡,SD卡)
S5:远程二级存储(分布式文件系统,Web服务器)
6个层次的存储结构
高速缓存(cache)
当CPU更新了cache的内容时,要将结果写回到主存中,通常有两种方法:写通法和写回法。
写通法:指CPU执行写操作时,必须把数据同时写入cache和主存。
写回法:指CPU执行写操作时,被写的数据只写入cache,不写入主存。
仅当需要替换时,才把已经修改的cache块写回到主存中。
当进行数据写操作时,可能cache未命中,这时根据cache执行的操作不同,将cache分为两类:读操作分配cache和写操作分配cache。
在cache存储系统当中,把主存储器和cache都划分成相同大小的块,主存地址可用块号M和块内地址N两部分组成,同样,cache地址可用块号m和块内地址n组成。
当CPU要访问cache时,CPU送来主存地址,放到主存地址寄存器中。
然后通过地址变换部件把主存地址中的块号M变成cache的块号m,并放到cache地址寄存器当中。同时将主存地址中的块内地址N直接作为cache块内地址n装入到cache地址寄存器中。
如果地址变换成功(cache命中),就用得到的cache地址去访问cache,从cache中取出数据送到CPU中。
如果地址变换不成功,则产生cache失效信息,并且接着使用主存地址直接去访问主存储器。从主存储器中读取一个字送到CPU,同时,将从主存储器中读出来的数据装入到cache中去。
如果此时cache已经满了,则需要采用某种cache替换策略,把不常用的块先调出到主存储器中相应的块中,以便腾出空间来存放新调入的块,提高cache的命中率。
存储管理单元MMU
嵌入式系统中常常采用页式存储管理。
在CPU和物理内存之间进行地址转换,既将地址从逻辑空间映射到物理空间。
MMU主要完成以下工作:
1、虚拟存储空间到物理存储空间的映射。
2、存储器访问权限的控制。
3、设置虚拟存储空间的缓冲的特性。
地址转换后备缓冲器(TLB)
从虚拟地址到物理地址的变换过程就是查询页表的过程。
当CPU访问内存时,首先在TLB中查找需要的地址变换条目,如果该条目不存在,CPU在从位于内存中的页表中查询,并把相应的结果添加到TLB中,更新它的内容。这样做的好处是,如果CPU下一次又需要该地址变换条目时,可以从TLB中直接得到,从而使地址变换的速度大大加快。
嵌入式系统支持的内存块大小:
段(section):1MB
大页(Large Pages):64kb
小页(Small Pages):4kb
极小页(Tiny Pages):1kb
在MMU中映射是通过两级页表实现的:
- 一级页表中包含以段为单位的地址变换条目及指向二级页表的指针。
- 二级页表中包含以大页和小页为单位的地址变换条目。
在MMU中,寄存器C1的R、S控制位和页表中地址变换条目中的访问权限控制位共同作用,控制存储访问的权限。
MMU中存储访问权限控制
AP | SR | 特权级时访问权限 | 用户级时访问权限 |
---|---|---|---|
0b00 | 00 | 没有访问权限 | 没有访问权限 |
0b00 | 10 | 只读 | 没有访问权限 |
0b00 | 01 | 只读 | 只读 |
0b00 | 11 | 不可预知 | 不可预知 |
0b01 | XX | 读/写 | 没有访问权限 |
0b10 | XX | 读/写 | 只读 |
0b11 | XX | 读/写 | 读/写 |
FCSE
FCSE位于CPU和MMU之间,其责任就是将不同进程使用的相同虚拟地址映射为不同的虚拟空间,使得在上下文切换时无需重建TLB等。
在嵌入式系统中,I/O的输出操作可通过存储器写入操作实现;I/O的输入操作可通过存储器的读取操作实现。
对于存储器映射I/O空间的操作,就不能使用cache技术。
存储设备的分类
1、按在系统中的地位分类:主存储器和辅助存储器。
2、按存储介质分类:磁存储器、半导体集成电路存储器、光存储器及激光光盘存储器。
3、按信息存取方式分类:RAM(随机存取存储器,断电数据丢失)和ROM(只读存储器;断电数据不丢失)。
A/D接口
把电模拟信号转换成为数字量的电路。
传感器把实时现场的各种物理参数(如温度、流量、压力、PH值等)测量出,并转换为相应的电信号,经过放大、滤波处理,再通过多路开关的切换和采样/保持电路的保持,送到A/D转换器,由A/D转换器将电模拟信号转换为数字量信号,之后被微机采集,微机按一定的算法计算输出控制量,并输出之。
A/D的转换方法:
常用的有计数法、双积分法和逐次逼近法。
D/A接口
将数字量转换为模拟量。
1、由D/A转换器把数字量转换为模拟电流,
2、再由运算放大器将模拟电流转换为模拟电压。
串行接口基本原理
所谓串行通信就是使数据一位一位地进行传输而实现地通信,
传送模式:单工通信;半双工通信;全双工通信。
通信方式:同步通信和异步通信。
异步:把每一个字符当作独立地信息来传送。
同步:将许多的字符聚成一字符块后,采用字符块的方式传输。
RS-232串行接口、RS-422串行通信接口、RS-485串行总线接口比较
规定 | RS-232 | RS-422 | RS-485 |
---|---|---|---|
工作方式 | 单端 | 差分 | 差分 |
节点数 | 1发、1收 | 1发、10收 | 1发、32收 |
最大电缆长度 | 50inch | 400inch | 400inch |
最大传输速率 | 20kb/s | 10mb/s | 10mb/s |
最大驱动输出电压) | +/- 25v | -0.25v ~+6v | -7v~+12v |
驱动器输出信号电平(负载最小值) | +/- 5v~+/-15v | +/-2.0v | +/-1.5v |
驱动器输出信号电平(空载最大值) | +/-25v | +/-6v | +/-6v |
驱动器负载阻抗(欧) | 3k~7k | 100 | 54 |
并行接口基本原理
并行接口可分为:SSP(标准并行接口)、EPP(增强型并行接口)、ECP(扩张型并行接口)
分为标准的(IEEE488总线、SCSI总线)和非标准类(MXI总线)。