嵌入式面试高频(微处理器)
微处理器
1 ARM是大端模式还是小端模式?51单片机呢?⭐⭐⭐⭐
小端模式:低的有效字节存储在低的存储器地址。常用的X86结构是小端模式。很多的ARM,DSP都为小端模式。
大端模式:高的有效字节存储在低的存储器地址。KEIL C51则为大端模式。
2 什么是MMU?工作原理是什么?⭐⭐⭐⭐⭐
MMU(内存管理单元,Memory Management Unit) 是计算机系统中负责管理内存访问的硬件组件,主要用于虚拟内存与物理内存的映射、地址转换、内存保护及缓存控制。它是现代操作系统实现多任务、内存隔离和高效内存利用的关键部件。
MMU 的核心功能
- 虚拟地址到物理地址的转换将 CPU 生成的虚拟地址(程序使用的逻辑地址)映射为物理内存中的实际地址,实现虚拟内存抽象。
- 内存保护通过页表权限位控制不同进程对内存区域的读写、执行权限,防止非法访问。
- 内存共享支持多个进程共享同一段物理内存(如动态链接库)。
- 缓存优化与高速缓存(如 TLB)协同工作,加速地址转换和内存访问。
MMU 的工作原理
- 地址转换流程虚拟地址分解:将虚拟地址拆分为页号(Page Number)和页内偏移(Offset)。页表查询:通过页号查找页表(Page Table),获取对应的物理页号。物理地址合成:将物理页号与页内偏移组合,得到物理地址。TLB 加速:为避免频繁访问内存中的页表,MMU 通过 TLB(Translation Lookaside Buffer)缓存最近使用的页表项,直接从缓存中获取物理地址。
- 页表管理页表由操作系统维护,存储在物理内存中。页表项包含物理页号、访问权限(如只读、读写)、脏位(是否被修改)、有效位(是否在内存中)等信息。
- 缺页中断处理若访问的虚拟页不在物理内存中,MMU 触发缺页中断(Page Fault)。操作系统将所需页从外存(如硬盘)加载到物理内存,并更新页表。
- 内存保护机制页表项中的权限位(如 R/W、Execute Disable)控制进程对内存的访问。不同特权级(如内核态 / 用户态)的进程拥有不同的访问权限。
MMU 的典型应用场景
- 多任务操作系统:隔离不同进程的内存空间,避免相互干扰。
- 虚拟内存技术:允许程序使用比物理内存更大的地址空间。
- 嵌入式系统:在资源受限的设备中优化内存使用(如 ARM 处理器的 MMU 支持)。
MMU 的优缺点
- 优点:提高内存利用率,支持大地址空间。增强系统安全性和稳定性。简化程序开发(无需关心物理内存布局)。
- 缺点:增加硬件复杂度和成本。地址转换带来一定延迟(通过 TLB 缓解)。
ARM 处理器中的 MMU
ARM 架构的 MMU(如 ARMv7 及以上)支持段式分页和页式分页,页大小可配置(如 4KB、64KB)。通过控制寄存器(如 TTBRx)指定页表基地址,并通过 CP15 协处理器操作 MMU 相关功能。
总结:MMU 通过虚拟地址映射、页表管理和硬件加速,实现了高效的内存管理和保护,是现代计算机系统不可或缺的组成部分。
3 什么是TLB?⭐⭐⭐⭐⭐
TLB 即快表(Translation Lookaside Buffer),也被称作转换后备缓冲器,它是 MMU(内存管理单元)中的一个高速缓存,主要用于加速虚拟地址到物理地址的转换过程。以下从多个方面为你详细介绍 TLB:
工作原理
MMU 在进行地址转换时,通常需要访问存于内存里的页表来获取虚拟页对应的物理页框号。不过内存访问的速度相对较慢,会影响地址转换的效率。而 TLB 作为一种高速缓存,会存储近期使用过的页表项。当 CPU 产生一个虚拟地址时,MMU 首先会在 TLB 中查找该虚拟地址对应的页表项。若找到匹配项(即 TLB 命中),就能直接从 TLB 中获取物理页框号,快速完成地址转换;若未找到匹配项(即 TLB 缺失),则需要访问内存中的页表来获取相应的页表项,同时把这个新的页表项存入 TLB,以便后续使用。
结构与组成
TLB 一般由多个条目组成,每个条目包含虚拟页号和对应的物理页框号,有的 TLB 条目还会包含访问权限、有效位等信息。这些条目按照一定的方式组织起来,例如采用全相联、组相联或直接映射等映射方式,以实现快速查找。
作用与优势
- 提升地址转换速度:由于 TLB 的访问速度比内存快很多,TLB 命中时能够显著减少地址转换所需的时间,从而提高 CPU 的内存访问效率。
- 降低内存访问压力:通过缓存常用的页表项,减少了对内存中页表的访问次数,降低了内存带宽的需求。
相关问题与处理
- TLB 缺失:当 TLB 中没有所需的页表项时,会发生 TLB 缺失。此时,MMU 需要访问内存中的页表来获取相应的页表项,这会导致额外的时间开销。为了减少 TLB 缺失的影响,操作系统和硬件会采取一些策略,如预取、TLB 替换算法等。
- TLB 一致性:在多处理器系统中,不同处理器的 TLB 可能会缓存相同的页表项。当某个处理器修改了页表项时,需要确保其他处理器的 TLB 也能及时更新,以保证数据的一致性。这通常通过硬件机制(如 TLB 刷新)或软件机制(如操作系统的同步操作)来实现。
应用场景
TLB 广泛应用于各种计算机系统中,尤其是在使用虚拟内存技术的系统里。无论是桌面计算机、服务器,还是移动设备和嵌入式系统,只要采用了虚拟内存管理,都会使用 TLB 来加速地址转换过程。
4 什么是DSP?⭐⭐⭐⭐
DSP(digital singnal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。采用哈佛结构,将程序和数据,可以同时访问指令和数据;DSP优势在于其有独特乘法器,一个指令就可以完成乘加运算。并且同时访问指令和数据,大大提高效率。
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
该专栏面向嵌入式开发工程师、C++开发工程师,包括C语言、C++,操作系统,ARM架构、RTOS、Linux基础、Linux驱动、Linux系统移植、计算机网络、数据结构与算法、数电基础、模电基础、5篇面试题目、HR面试常见问题汇总和嵌入式面试简历模板等文章。超全的嵌入式软件工程师面试题目和高频知识点总结! 另外,专栏分为两个部分,大家可以各取所好,为了有更好的阅读体验,后面会持续更新!!!