高性能32位内核与基于微控制器存储架构的集成
发布时间:2008/9/2 0:00:00 访问次数:549
32 位 mcu 性能差异
微控制器(mcu)领域如今仍由 8 位和 16 位器件控制,但随着更高性能的 32 位处理器开始在 mcu 市场创造巨大收益,在系统设计方面,芯片架构师面临着 pc 设计人员早在十年前便遇到的挑战。尽管新内核在速度和性能方面都在不断提高,一些关键支持技术却没有跟上发展的步伐,从而导致了严重的性能瓶颈。
很多 mcu 完全依赖于两种类型的内部存储器件。适量的 sram 可提供数据存储所需的空间,而 nor 闪存可提供指令及固定数据的空间。
在新 32 位内核的尺寸和运行速度方面,嵌入式 sram 技术正在保持同步。成熟的 sram 技术在 100mhz 的运行范围更易于实现。对 mcu 所需的典型 ram 容量来说,这个速度级别也更具成本效益。
但是标准的 nor 闪存却落在了基本 32 位内核时钟速度之后,几乎相差一个数量级。当前的嵌入式 nor 闪存技术的存取时间基本为 50ns (20 mhz)。这在闪存器件和内核间转移数据的能力方面造成了真正的瓶颈,因为很多时钟周期可能浪费在等待闪存找回特定指令上。
标准mcu 执行模型——xip (execute in place)更加剧了处理器内核速度和闪存存取时间之间的性能差距。
大容量存储中的应用容错及 sram较高的成本是选择直接从闪存执行的两个主要原因。存储在闪存内的程序基本不会被系统内的随机错误破坏,如电源轨故障。利用闪存直接执行还无需为mcu器件提供足够的 sram,来将应用从一个 rom 或闪存器件复制至目标 ram 执行空间。
消除差距
理想的情况是,改进闪存技术,以匹配32位内核的性能。虽然当前的技术有一定的局限,仍有一些有效的方法,可帮助架构师解决性能瓶颈问题。
简单的指令预取缓冲器和指令高速缓存系统在32位mcu设计中的采用,将大大提高mcu的性能。下面将介绍系统架构师如何利用这些技术将16位的mcu架构升级至32位内核cpu。
在 mcu 设计中引入 32位内核
图 1 介绍了将现有16位设计升级至基本32位内核的情况,显示了新32 位内核及其基本外设集合之间的基本联系。由于我们在讨论将新的32位处理器内核集成至新的 mcu 设计,我们假设可采用新32位内核采用以下规范。
图1 为现有设计引入32位内核
32 位内核——改良的哈佛架构
与很多 mcu 一样,新的 32位 内核也采用改良的哈佛架构。因此,程序存储和数据存储空间是在两个独立的总线构架上执行。一个纯哈佛设计可防止数据在程序存储空间被读取,该内核改良的哈佛架构设计仍可实现这样的操作,同时,该32位内核设计还可实现程序指令在数据存储空间的执行。
在标准总线周期内,程序和数据存储器接口允许插入等待状态,有助于响应速度缓慢的存储或存储映射器件。
32位内核——工作频率
新内核的最高工作时钟频率为120mhz,是被替代的16位内核速度的六倍。
32位内核——指令存储器接口
指令存储系统接口有一个32位宽的数据总线,以及一个总共地址空间为1mb的20位宽的地址总线。尽管 32位内核具备更大的地址空间,而这足够满足这个mcu的目标应用空间。标准的控制信号同样具备为缓慢的存储器件插入等待状态的能力。
该设计的闪存器件与16位设计采用的技术一样,最高运行速度达20 mhz。
32 位内核——数据存储器接口
系统 sram 和存储器映射外设都通过系统控制器与处理器数据总线相连。系统控制器可提供额外的地址解码及其他控制功能,帮助处理器内核正确访问数据存储器或存储器映射外设,而无需处理特定的等待状态、不同的数据宽度或每个映射到数据存储空间的器件的其他特殊需求。
系统控制器和处理器内核之间的数据总线为 32 位宽,与系统控制器和sram 间的数据总线宽度相同。系统控制器和外设以及 gpio 端口间的数据总线宽度可为 8 位、16 位或 32 位,视需求而定。
目标设计采用的 sram 与 16 位设计采用的类型相同,在 120 mhz时可实现 0 等待状态操作。
初步分析
目前系统的性能由几个因素控制。处理器内核与闪存器件速度的差异可极大地影响性能,因为至少有五个等待状态必须添加到每个指令提取中。根据粗粒经验法则,至少每十个指令有一个读取或存储。每条指令加权平均周期(cpi)的典型顺序为:
cpi =
32 位 mcu 性能差异
微控制器(mcu)领域如今仍由 8 位和 16 位器件控制,但随着更高性能的 32 位处理器开始在 mcu 市场创造巨大收益,在系统设计方面,芯片架构师面临着 pc 设计人员早在十年前便遇到的挑战。尽管新内核在速度和性能方面都在不断提高,一些关键支持技术却没有跟上发展的步伐,从而导致了严重的性能瓶颈。
很多 mcu 完全依赖于两种类型的内部存储器件。适量的 sram 可提供数据存储所需的空间,而 nor 闪存可提供指令及固定数据的空间。
在新 32 位内核的尺寸和运行速度方面,嵌入式 sram 技术正在保持同步。成熟的 sram 技术在 100mhz 的运行范围更易于实现。对 mcu 所需的典型 ram 容量来说,这个速度级别也更具成本效益。
但是标准的 nor 闪存却落在了基本 32 位内核时钟速度之后,几乎相差一个数量级。当前的嵌入式 nor 闪存技术的存取时间基本为 50ns (20 mhz)。这在闪存器件和内核间转移数据的能力方面造成了真正的瓶颈,因为很多时钟周期可能浪费在等待闪存找回特定指令上。
标准mcu 执行模型——xip (execute in place)更加剧了处理器内核速度和闪存存取时间之间的性能差距。
大容量存储中的应用容错及 sram较高的成本是选择直接从闪存执行的两个主要原因。存储在闪存内的程序基本不会被系统内的随机错误破坏,如电源轨故障。利用闪存直接执行还无需为mcu器件提供足够的 sram,来将应用从一个 rom 或闪存器件复制至目标 ram 执行空间。
消除差距
理想的情况是,改进闪存技术,以匹配32位内核的性能。虽然当前的技术有一定的局限,仍有一些有效的方法,可帮助架构师解决性能瓶颈问题。
简单的指令预取缓冲器和指令高速缓存系统在32位mcu设计中的采用,将大大提高mcu的性能。下面将介绍系统架构师如何利用这些技术将16位的mcu架构升级至32位内核cpu。
在 mcu 设计中引入 32位内核
图 1 介绍了将现有16位设计升级至基本32位内核的情况,显示了新32 位内核及其基本外设集合之间的基本联系。由于我们在讨论将新的32位处理器内核集成至新的 mcu 设计,我们假设可采用新32位内核采用以下规范。
图1 为现有设计引入32位内核
32 位内核——改良的哈佛架构
与很多 mcu 一样,新的 32位 内核也采用改良的哈佛架构。因此,程序存储和数据存储空间是在两个独立的总线构架上执行。一个纯哈佛设计可防止数据在程序存储空间被读取,该内核改良的哈佛架构设计仍可实现这样的操作,同时,该32位内核设计还可实现程序指令在数据存储空间的执行。
在标准总线周期内,程序和数据存储器接口允许插入等待状态,有助于响应速度缓慢的存储或存储映射器件。
32位内核——工作频率
新内核的最高工作时钟频率为120mhz,是被替代的16位内核速度的六倍。
32位内核——指令存储器接口
指令存储系统接口有一个32位宽的数据总线,以及一个总共地址空间为1mb的20位宽的地址总线。尽管 32位内核具备更大的地址空间,而这足够满足这个mcu的目标应用空间。标准的控制信号同样具备为缓慢的存储器件插入等待状态的能力。
该设计的闪存器件与16位设计采用的技术一样,最高运行速度达20 mhz。
32 位内核——数据存储器接口
系统 sram 和存储器映射外设都通过系统控制器与处理器数据总线相连。系统控制器可提供额外的地址解码及其他控制功能,帮助处理器内核正确访问数据存储器或存储器映射外设,而无需处理特定的等待状态、不同的数据宽度或每个映射到数据存储空间的器件的其他特殊需求。
系统控制器和处理器内核之间的数据总线为 32 位宽,与系统控制器和sram 间的数据总线宽度相同。系统控制器和外设以及 gpio 端口间的数据总线宽度可为 8 位、16 位或 32 位,视需求而定。
目标设计采用的 sram 与 16 位设计采用的类型相同,在 120 mhz时可实现 0 等待状态操作。
初步分析
目前系统的性能由几个因素控制。处理器内核与闪存器件速度的差异可极大地影响性能,因为至少有五个等待状态必须添加到每个指令提取中。根据粗粒经验法则,至少每十个指令有一个读取或存储。每条指令加权平均周期(cpi)的典型顺序为:
cpi =