从软件角度看处理器

从软件角度看处理器

1、微处理器与微控制器

微控制器 = 微处理器 + 片内内存 + 片内外设
如下图所示:
在这里插入图片描述

2、寄存器

寄存器分类

(1)CPU寄存器

  • 专用指令执行、数据运算、变量处理、参数传递

(2)外设寄存器

  • 用于控制外设的行为的工作方式
  • 寄存器值的配置需要根据芯片手册来完成
处理器中的关键寄存器

在这里插入图片描述

PC和SP的使用案例:函数调用

在这里插入图片描述
当程序从b点执行函数a,程序会跳转到a点去执行函数,函数返回信息保存在sp与bp之间内存中;

3、处理器的I/O操作

处理器与外设之间的通信通过I/O操作来完成的
(1)内存映射IO空间

  • 外设通过精密的硬件连接映射到处理器的地址空间
  • 通过地址访问的方式与外设进行通信

(2)独立IO空间

  • 独立于地址空间,无法通过地址访问外设
  • 使用专用指令与外设进行通信
操作外设的基本方式

通过IO端口配置控制寄存器
通过IO端口读写数据寄存器

设备地址映射示例

处理器通过地址访问外设
在这里插入图片描述
在这里插入图片描述

4、处理器启动过程简介

  • 处理器上电后,PC寄存器固化了一个默认值;
  • PC默认值用来决定第一条执行指令;
  • 第一条执行指令隶属于启动程序;
启动程序(bootloader)

根据运行阶段、体积和功能的不同,分为三个部分:BL0、BL1和BL2
在这里插入图片描述
示例:S3C6410启动过程图解
在这里插入图片描述

5、中断

中断的概念和意义

中断是一种处理器与外设进行通信的机制,用于“通知”处理器外部有“重要事件”发生;

中断服务程序(ISR)

(1)从外设中读取中断状态寄存器的值,以便了解中断类型
(2)根据中断类型具体设计处理逻辑
(3)清除外设状态寄存器中的中断标识位
(4)清除处理器中的中断标识位
如图所示,下图是一个外部中断响应执行的过程
在这里插入图片描述
第一步:外部中断响应
第二步:CPU保存上下文信息
第三步:CPU向外设获取中断类型
第四步:确认中断类型
第五步:执行中断服务程序
第六步:清除外设状态寄存器中的中断标识位
第七步:清除处理器中的中断标识位
第八步:恢复上下文,跳转到原程序执行处

软件工程师眼中的中断服务程序
  • 不能有返回值,不能有参数传递
  • 必须短小而高效,避免浮点运算

常见的嵌入式面试题有:
下面的中断服务程序中有哪些不当之处:
在这里插入图片描述
答:
(1)有返回值
(2)有传参
(3)有浮点运算
(4)有打印函数,会涉及IO操作,效率变低

中断的类型
  • 硬中断:通过处理器中断信号线产生的中断
  • 软中断:也叫异常或者陷阱,通过非法指令或特殊指令触发的中断
中断的应用:程序断点

程序断点的实现原理为:
(1)获取原程序指定行对应的代码地址
(2)把代码地址中的指令替换为中断触发指令
(3)在中断服务程序中将控制权交给调试程序
(4)调试程序读写原程序上下文信息
(5)调试程序将代码地址中的指令还原
(6)原程序从断点处继续往下运行
如下图所示:
在这里插入图片描述

6、内存管理单元(MMU)

操作系统利用内存管理单元可以实现:虚拟内存

虚拟内存

一个问题:下面程序两次运行的结果是否相同?
在这里插入图片描述
理论上,不同进程在内存中的不同位置执行;因此,全局变量的地址不同;如下图所示:
在这里插入图片描述
但实际的打印信息&g_v的值是一样的;
原因:
应用程序开发时,面对的内存是虚拟内存,虚拟内存模式下使用的地址是虚拟地址,每个进程拥有独立私有的虚拟地址空间;
虚拟内存的意义:虚拟内存能够支持多个大内存需求量的进程同时运行于较小的物理内存中

  • 虚拟内存需要重新映射到物理内存
  • 虚拟地址映射到物理内存中的实地址
  • 每次只有进程的少量代码在物理内存中运行
  • 大部分进程代码位于存储器中

在这里插入图片描述

页式内存管理

在这里插入图片描述
在这里插入图片描述
如上图所示,虚拟地址的映射是先查询虚拟页号对应的物理页号,然后将物理页号与页内偏移量拼接,这就是物理内存的地址,然后将虚拟地址开始的内存空间以页为单位向物理内存中拷贝。

问题:查询页映射表不存在该虚拟页号怎么办?
在这里插入图片描述

7、cache

cache的引入

(1)处理器的速度远远大于内存
(2)程序访问的局限性,即某个存储单元在短时间内会被连续访问,且某个存储单元的邻近单元也会被访问
这两点促使cache的诞生:

  • cache是一种小容量高速存储器
  • cache的存取速度与处理器的运算速度几乎同量级
  • cache在现代计算机系统中直接内置于处理器芯片中

处理器的数据访问方式如下图所示:
在这里插入图片描述

内存和cache之间的映射

直接映射法:
在这里插入图片描述
在这里插入图片描述
直接映射法的优缺点:
优点:映射过程简单,所需时间短
缺点:当短时间内访问的地址有同余冲突时,会造成缓存失效

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值