CPU内核部件之:MMU、MPU、ITCM、DTCM、CCM、Cache

本文介绍了CPU内核中的关键组件,包括MMU(内存管理单元)负责虚拟地址到物理地址映射,MPU(内存保护单元)确保内存访问安全性,TCM(紧密耦合内存)提供高速存储,CCM(核心耦合内存)用于提升数据存取速度,以及Cache(高速缓存)优化数据访问效率。这些组件共同解决低速SRAM与高速CPU之间的速度不匹配问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近了解到了很多关于CPU内核架构中的组件的相关知识,感觉受益颇丰,在这里总结分享下:

 

1.MMU:Memory Management Unit,即内存管理单元,主要工作就是进行虚拟内存地址和物理内存地址的映射,而进行映射的目的有两个:一个是解决物理内存不足以提供给程序运行时的问题,另一个是可以给操作系统的每一个进程提供一个单独独立的虚拟空间。

2.MPU:Memory Protection Unit,即内存保护单元,主要负责检查将要执行的内存访问操作是否存在违法/违规嫌行为,如堆栈溢出、数组访问越界、内存访问越界等,对于Cortex-M系列处理器来说,当MPU检测到违规操作时将产生MemManage_Handler或HardFault_Handler(如果MemManage_Handler中断没开的话)错误中断。

3.TCM:Tightly Coupled Memory,中文名:紧密耦合内存,内存中的一种,直接集成在CPU内核中,与普通SRAM相比的优点是存取速度快得多得多;TCM分为ITCM和DTCM,即指令紧密耦合内存和数据紧密耦合内存,顾名思义,ITCM就是用于存指令的,DTCM就是用于存数据的;合格优秀的程序应该将程序中需要快速执行的代码(如中断函数和算法)和经常访问的数据放到ITCM和DTCM中,以提高程序运行效率;由于栈中的数据是会经常使用和释放的,所以对于有DTCM的处理器来说通常都把栈放到DTCM中。另,DMA是无法访问TCM的。

    那么如何将指定的代码放到ITCM中呢?有两种方法,一种是利用gcc的的属

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值