0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PIC32MZ器件系列中的 1 级(L1)CPU 缓存实现

电子设计 来源:eeweb 作者: 微芯片 2021-06-18 11:37 次阅读

本应用笔记的目的是让读者了解PIC32MZ器件系列中的 1 级(L1)CPU 缓存实现,让读者了解缓存系统中可能发生的危险,并描述解决这些问题的方法。对于高级用户,还讨论了 microAptiv™ 内核中管理缓存以获得最佳性能的特殊指令。

本文档不打算全面讨论缓存体系结构或实现,也不涉及缓存管理的每个细节。从未使用过具有 L1 缓存的嵌入式控制器的开发人员,或希望了解 PIC32MZ 器件中 L1 缓存实现的开发人员,应阅读本文档。

CPU 缓存是一个单独的内存块,用于补偿主内存的访问时间。被描述为一级缓存的缓存使用与 CPU 一样快的内存,因此只要 CPU 正在访问缓存,它就永远不必等待指令或数据。2 级和 3 级高速缓存与 1 级高速缓存结合使用,其内存访问时间大于 CPU,但小于主内存。

该PIC32MZ器件系列仅采用1级高速缓存。L1缓存分为两部分,指令缓存和数据缓存。CPU 可以直接访问内存或通过缓存访问内存。高速缓存的使用对于实现PIC32MZ器件系列的最大性能至关重要。与通过系统总线进行访问时的多个时钟周期相比,对高速缓存的内存访问发生在单个时钟周期内。

PIC32MZ 架构

以下部分介绍了PIC32MZ架构的 L1 缓存和其他两个部分,它们对其操作和配置至关重要。

闪存预取模块

Flash Prefetch 模块用于隐藏 Flash 等待状态。它通过使用 128 位数据路径(是 32 位 CPU 总线宽度的四倍)获取程序闪存来实现。它是预测性的,假设下一个需要的数据是下一行地址。只要代码不分支,下一条指令总是可用的。加载新行时,分支会导致停顿。该模块中的寄存器确定闪存等待状态以及预取是应用于指令访问、数据访问、两者还是两者都不进行。

内存映射单元

在所有 PIC32 架构中,CPU 对存储器和外设的访问都是通过虚拟地址空间完成的。虚拟地址空间分为五个段,分别命名为 KSEG0 到 KSEG3 和 KUSEG。物理到虚拟 KSEG0 到 KSEG1 地址的映射是固定的,所有内部存储器都存在于 KSEG0 和 KSEG1 段中。KSEG1 从不缓存,而 KSEG0 是可缓存的段。

PIC32MZ 架构引入了基于转换后备缓冲器(TLB)的存储器映射单元(MMU)。TLB 可以配置为对 KUSEG、KSEG2 和 KSEG3 执行虚拟内存到物理内存的转换。这些段的可缓存性属性是在使用 CPU 协处理器 0 (CP0) EntryLo0 和 EntryLo1 寄存器配置 TLB 时定义的。

L1 指令和数据缓存

如图 1 所示,CPU 可以直接访问系统 RAM,也可以通过缓存访问。同样,对 Flash 的访问可以直接发生,也可以通过缓存发生。DMA 访问总是直接通过 RAM 进行。除了 CPU 和缓存之间的访问之外,所有访问都涉及系统总线。

在复位时,代码执行从 KSEG1 使用非缓存访问发生。这是必要的,因为缓存在被启动代码初始化之前无法使用。一旦缓存被初始化,代码执行就可以从 KSEG0 开始,它利用缓存来获得最佳性能。

当 CPU 使用缓存进行访问时,系统将检查所需的数据是否已存在于缓存中。如果数据存在于缓存中,则不执行任何操作。这称为缓存命中。如果没有,硬件会使用内存内容填充指令或数据缓存。这称为缓存未命中。缓存未命中会导致性能损失,而缓存命中则不会。

缓存的大小是闪存或 RAM 大小的一小部分。它可以在初始化时以多种方式进行配置以优化性能。MPLAB 开发工具将 PIC32MZ 缓存配置为“四路关联”,因为这将是大多数应用的最佳配置。四路关联配置将缓存分为四个相等的部分,称为路。其中每一个都分布在整个内存地址范围内。每个缓存路被分成缓存线,这些缓存线代表可以在缓存和闪存或 RAM 之间传输的最小数据量。每行数据都包含将其与物理内存相关联并跟踪其状态的标签。因此,每个内存位置都可以在四个高速缓存路之一的高速缓存行中表示。

poYBAGDMFPyAb2hRAADujdSDphk152.png

PIC32MZ 缓存实现

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7144

    浏览量

    161978
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10437

    浏览量

    206527
  • PIC32MZ
    +关注

    关注

    2

    文章

    14

    浏览量

    4223
收藏 人收藏

    评论

    相关推荐

    PIC32MZ(EC) Board + PIC32MZ2048EFH144出现错误

    您好,我试图创建一个新的32位MPLAB和谐项目。在选择了Target DevicePIC32MZ2048EFH144(因为它在我的PIC32MZ(EC)启动器套件上)之后,我试图选择PIC32MZ
    发表于 05-21 13:35

    PIC32MZ Bootloader项目错误

    ,并且执行项目的构建时,我有下一个错误:我添加了启动加载程序和应用程序的链接器文件(我输入.txt)。我正在处理version=V1_07_01、MPLAB_X_IDE v3.26、PIC32MZ嵌入式
    发表于 10-14 07:43

    如何自己读取pic32mz的内存位置

    您将如何自己读取pic32mz的内存位置,例如,假设您想要位置0x1d080000的值,这是如何实现的。我可以找到很多关于自我写作的文章,但没有什么可以自我阅读的。
    发表于 04-22 06:40

    PIC32MZ中断代码错误怎么回事

    在进行一些实验以确定PIC32MZ上的中断延迟以及它如何受到L1 ICache的影响的同时,我注意到在指定IPL7SRS时中断处理程序的实现存在以下缺陷。f.):-对于IPL7SRS
    发表于 04-29 06:17

    Microchip 32位PIC32MZ EF单片机系列喜添新成员 部分器件可支持扩展级温度范围

    PIC32MZ EF系列是Microchip首个符合汽车电子委员会制定的AEC-Q100一级(-40至125°C)规范的PIC32 MCU产品系列
    发表于 11-24 17:09 1096次阅读

    Microchip 32位PIC32MZ EF单片机系列喜添新成员, 部分器件可支持扩展级温度范围

    近日扩展了旗下32位PIC32MZ EF单片机(MCU)系列,增添了支持扩展级温度范围的产品和支持工业级温度范围的高速(250 MHz)产品。新器件为Microchip推出的首个汽车级PIC
    发表于 02-10 13:28 251次阅读

    大联大品佳推出Microchip PIC32MZ系列VR应用解决方案

    2017年1月12日,致力于亚太地区市场的领先半导体元器件分销商---大联大控股宣布,其旗下品佳推出基于美国微芯科技公司(Microchip)的PIC32MZ系列MCU的VR应用解决方案
    发表于 03-01 10:27 982次阅读
    大联大品佳推出Microchip <b class='flag-5'>PIC32MZ</b><b class='flag-5'>系列</b>VR应用解决方案

    AN1600 - 在PIC32MZ器件上使用L1高速缓存

    本文档提供了PIC32MZ器件系列中一级(Level 1,L1CPU高速缓存
    发表于 03-26 10:39 2次下载

    PIC32MZ嵌入连接MCU主要特性和框图分析

    本文介绍了PIC32MZ嵌入连接(EC)系列MCU主要特性和框图, 带加密引擎的PIC32MZ EC系列入门板主要特性,框图,电路图,材料清单和PCB布局图。
    发表于 05-03 10:30 5877次阅读
    <b class='flag-5'>PIC32MZ</b>嵌入连接MCU主要特性和框图分析

    PIC32MZ EF——带FPU的嵌入式连接系列

    本视频介绍了Microchip的PIC32MZ EF系列32位单片机。PIC32MZ EF系列PIC32MZ高性能单片机
    的头像 发表于 06-07 03:46 3463次阅读
    <b class='flag-5'>PIC32MZ</b> EF——带FPU的嵌入式连接<b class='flag-5'>系列</b>

    PIC32MZ器件系列中使用L1CPU高速缓存实现的风险和解决方法

    本文档提供了PIC32MZ 器件系列中一级(Level 1, L1CPU高速缓存
    发表于 06-15 11:26 9次下载
    <b class='flag-5'>PIC32MZ</b><b class='flag-5'>器件</b><b class='flag-5'>系列</b>中使用L1<b class='flag-5'>CPU</b>高速<b class='flag-5'>缓存</b><b class='flag-5'>实现</b>的风险和解决方法

    PIC32MZ系列32位单片机的数据手册免费下载

    本文档的主要内容详细介绍的是PIC32MZ系列32位单片机的数据手册免费下载包括了:具有FPU/音频/图形接口、HS USB、以太网和高级模拟功能的32位MCU (最高2 MB实时更新闪存和512 KB SRAM)
    发表于 11-13 08:00 8次下载
    <b class='flag-5'>PIC32MZ</b><b class='flag-5'>系列</b>32位单片机的数据手册免费下载

    PIC32MZ器件上使用L1高速缓存

    本文档提供了PIC32MZ 器件系列中一级(Level 1, L1CPU高速缓存
    发表于 04-02 09:14 6次下载
    在<b class='flag-5'>PIC32MZ</b><b class='flag-5'>器件</b>上使用<b class='flag-5'>L1</b>高速<b class='flag-5'>缓存</b>

    Curiosity PIC32MZ EF 2.0开发板用户指南

    电子发烧友网站提供《Curiosity PIC32MZ EF 2.0开发板用户指南.pdf》资料免费下载
    发表于 09-21 09:21 0次下载
    Curiosity <b class='flag-5'>PIC32MZ</b> EF 2.0开发板用户指南

    如何使用PIC32MX/PIC32MZ/PIC32MM器件上的DMA CRC生成器

    电子发烧友网站提供《如何使用PIC32MX/PIC32MZ/PIC32MM器件上的DMA CRC生成器.pdf》资料免费下载
    发表于 09-25 10:02 0次下载
    如何使用<b class='flag-5'>PIC</b>32MX/<b class='flag-5'>PIC32MZ</b>/<b class='flag-5'>PIC</b>32MM<b class='flag-5'>器件</b>上的DMA CRC生成器