嵌入式面试高频(微处理器)

微处理器

1 ARM是大端模式还是小端模式?51单片机呢?⭐⭐⭐⭐

小端模式:低的有效字节存储在低的存储器地址。常用的X86结构是小端模式。很多的ARM,DSP都为小端模式。

大端模式:高的有效字节存储在低的存储器地址。KEIL C51则为大端模式。

2 什么是MMU?工作原理是什么?⭐⭐⭐⭐⭐

MMU(内存管理单元,Memory Management Unit) 是计算机系统中负责管理内存访问的硬件组件,主要用于虚拟内存与物理内存的映射、地址转换、内存保护及缓存控制。它是现代操作系统实现多任务、内存隔离和高效内存利用的关键部件。

MMU 的核心功能

  1. 虚拟地址到物理地址的转换将 CPU 生成的虚拟地址(程序使用的逻辑地址)映射为物理内存中的实际地址,实现虚拟内存抽象。
  2. 内存保护通过页表权限位控制不同进程对内存区域的读写、执行权限,防止非法访问。
  3. 内存共享支持多个进程共享同一段物理内存(如动态链接库)。
  4. 缓存优化与高速缓存(如 TLB)协同工作,加速地址转换和内存访问。

MMU 的工作原理

  1. 地址转换流程虚拟地址分解:将虚拟地址拆分为页号(Page Number)和页内偏移(Offset)。页表查询:通过页号查找页表(Page Table),获取对应的物理页号。物理地址合成:将物理页号与页内偏移组合,得到物理地址。TLB 加速:为避免频繁访问内存中的页表,MMU 通过 TLB(Translation Lookaside Buffer)缓存最近使用的页表项,直接从缓存中获取物理地址。
  2. 页表管理页表由操作系统维护,存储在物理内存中。页表项包含物理页号、访问权限(如只读、读写)、脏位(是否被修改)、有效位(是否在内存中)等信息。
  3. 缺页中断处理若访问的虚拟页不在物理内存中,MMU 触发缺页中断(Page Fault)。操作系统将所需页从外存(如硬盘)加载到物理内存,并更新页表。
  4. 内存保护机制页表项中的权限位(如 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++软件开发岗位”也可以参考。 该专栏覆盖了嵌入式求职过程中99%常见面试题,详细讲解了嵌入式软件开发岗位、学习攻略、项目经验分享、面试心得,从技术面,HR面,主管面,谈薪一站式服务。订阅即赠送简历模板、内推机会,需要的同学点击我头像私信即可!

全部评论

相关推荐

思特威AI芯片工程师一面面经思特威——面经timeline岗:数字ic目前进度:正式offer除了迪✌🏻的唯一一个offer😭感谢老思。秋招期间在牛客看了很多面经贴,快成老家了,发个面经贴攒攒人品。笔试:8.23常见八股加一道智力题,原来貌似倒计时一个小时但是计时结束也不会强制提交,现在同门反馈是会强制提交了。一面:技术面 9.5 30min总体来说氛围比较轻松,结合项目询问低功耗处理方法和异步处理方法,让讲了个异步fifo,会询问代码量之类的。二面:部门主管面 9.21 30-40min探讨了我项目中所负责的模块的实际应用场景(可能相比起技术细节会更偏向于对IP应用的思考)我的项目多是数模结合的模块,因此也追问了数模结合项目对于个人求职中的优势。整体下来更多是在询问在项目中担任的角色和对自己项目模块高层次的掌握程度。反问问了面试官身份,工作内容和项目中的重难点三面:hr面10.11 45min(没想到是最久的)谈了下入职之后的培训,公司发展情况和业务情况,以及可能的薪资待遇,照常询问了一下现有的offer和等待的机会。反问环节确认了一下自己的排序情况。第二天oc,过几天收到了offer使用内推码简历优先筛选,有任何问题包括进度查询可以私信我,内推后在评论区留言【姓名缩写+岗位】,方便捞人和确认投递状态思特威电子科技2025春招今日启动【公司介绍】思特威(上海)电子科技股份有限公司是一家从事CMOS图像传感器芯片产品研发、设计和销售的高新技术企业,总部设立于中国上海,在多个城市及国家设有研发中心 【春招岗位】技术(算法、AI工程师、测试、开发等)、销售(芯片销售)、运营(资源工程师、生产管培生)、职能(行政、合规)等 【工作地点】上海、深圳、昆山 【面向人群】25届海内外毕业生【薪酬待遇】丰富的薪酬结构,行业领先的薪酬回报、上海快速落户、丰富的员工福利、完善的应届生培养体系内推链接:https://app.mokahr.com/m/campus_apply/smartsenstech1/56088?recommendCode=DS6Y4M6c&hash=%23%2Fjobs#/jobs内推码:DS6Y4M6c(简历优先筛选,后续有疑问或者流程问题欢迎随时联系) 使用内推码简历优先筛选,有任何问题包括进度查询可以私信我,内推后在评论区留言【姓名缩写+岗位】,方便捞人和确认投递状态 #春招#     #内推#     #内推码#     #秋招#     #思特威#     #简历中的项目经历要怎么写#   
点赞 评论 收藏
分享
评论
点赞
10
分享

创作者周榜

更多
牛客网
牛客企业服务