MAXQ架构简介

描述

MAXQ RISC架构将高性能和低功耗与各种复杂的模拟功能相结合。

MAXQ™架构简介

如今,微控制器系统设计人员在为项目选择微控制器时有无数种选择——8位、16位、RISC、CISC或介于两者之间。通常,在选择过程中会考虑许多标准。这些可能包括价格、性能、功耗、代码密度、开发时间,甚至是未来的迁移路径替代方案。使选择过程复杂化,对一个标准的严格要求通常会影响其他领域的选择。一个应用中的关键因素在另一个应用中可能并不重要。因此,没有一种微控制器适用于所有项目。但要取得成功,现代微控制器必须在所考虑的许多领域表现出色。

当世界知名的模拟芯片制造商Maxim Integrated与业界领先的高性能微控制器供应商Dallas Semiconductor联手时,创造了将卓越的模拟功能与领先的微控制器集成的机会。这种合作关系的一个成果是MAXQ RISC架构,这是一种新的微控制器内核,结合了高性能和低功耗以及各种复杂的模拟功能。

将复杂的模拟电路与高性能数字模块集成时,工作环境应尽可能保持安静和无噪声。然而,微控制器内核数字电路中发生的时钟和开关会将噪声注入敏感的模拟部分。这就是混合信号设计人员面临的困难:实现高微控制器性能,同时将可能影响敏感模拟电路的时钟噪声降至最低。

MAXQ架构通过智能时钟管理和利用来降低噪声。这意味着MAXQ内核只支持那些需要随时时钟的电路,从而降低了功耗,为模拟集成提供了最佳的安静环境。此外,MAXQ架构在每个时钟上执行许多功能,以最大限度地提高其性能。本文概述了MAXQ架构,并重点介绍了其竞争优势。

不浪费周期时钟

MAXQ架构旨在实现高性能功率比。生成高效机器的第一个必要条件是最大限度地利用时钟周期来执行用户代码。

MAXQ实现高利用率的最基本途径是单周期指令执行。单周期指令执行通过增加指令带宽从而提高性能和/或通过降低时钟频率的能力降低功耗,使最终用户受益。所有MAXQ指令在单个时钟周期内执行,但跳远/长调用和某些扩展寄存器访问除外。虽然许多RISC微控制器声称支持单周期执行,但这通常适用于一小部分指令或寻址模式。使用MAXQ,单周期执行是常态。

其次,MAXQ架构提高了时钟周期利用率,因为它不需要指令流水线(许多RISC微控制器通用)来实现单周期工作。MAXQ指令解码和执行硬件非常简单(时序也非常快),这些操作与程序获取本身进入相同的时钟周期,对最大工作频率的影响最小。为了说明消除指令流水线的好处,请考虑从流水线执行的通用RISC CPU。当程序分支发生时,CPU 使用一个或多个时钟周期(取决于管道深度)将程序提取转移到目标分支地址,并丢弃已获取的指令。显然,使用时钟周期丢弃指令而不是执行指令是浪费和不可取的,因为它会降低性能并增加功耗。虽然该操作对用户来说是不希望的,但 CPU 为重新加载管道而窃取的时钟是体系结构的产物,并且是不可避免的。MAXQ架构区别于其他8位和16位RISC微控制器,提供单周期执行,无需指令流水线(以及随之而来的浪费时钟周期)。

MAXQ指令字

MAXQ指令字是独一无二的,因为只有一条经典意义上的指令,即“MOVE”指令。“MOVE”指令的源操作数和目标操作数是创建指令和内存访问以及触发硬件操作的基础。剖析16位MAXQ指令字只能显示两个元件:7位目标字段和8位源字段以及源格式位。源格式位在编码为 0 时允许将任何即时或文本字节值(即 #00h-#FFh)作为源操作数提供。在寄存器初始化例程和执行ALU操作期间,对单个指令字内任何直接字节源的无限制支持可能非常有价值。非文字源和目标可能性细分为较小的组或模块。图1所示为16位MAXQ指令字。

微控制器

图1.MAXQ指令字很简单,但功能非常强大。

所有机器指令都简化为传输操作的源操作数和目标操作数。这些操作数可用于选择物理MAXQ器件寄存器。这种类型的转移是最基本且很容易想象的。然而,在MAXQ机器中,源操作数和目的操作数与物理寄存器并不严格关联。

MAXQ架构在执行间接存储器访问时使用相同的源到目标传输结构。某些目标和/或源编码被标识为物理存储器(如堆栈、累加器阵列和数据存储器)的间接访问门户。这些间接内存访问入口使用物理指针寄存器来定义用于访问的相应内存地址位置。例如,间接访问数据存储器的一种方法是使用“@DP[0]”操作数。当分别用作源或目标时,此操作数触发对数据指针 0 (DP[0]) 寄存器寻址的数据存储器位置的间接读取或写入访问。

MAXQ架构还使用特殊的目的和/或源编码来触发底层硬件操作。这种触发机制是创建隐式链接到某些资源的MAXQ指令的基础。例如,数学运算(ADD、SUB、ADDC 和 SUBB)作为特殊的目标编码实现,这些编码隐式针对其中一个工作累加器,仅由用户提供源操作数。条件跳转隐式以指令指针 (IP) 为目标进行修改,并作为可评估的每个状态条件的单独目标编码实现。

间接内存访问和底层硬件操作触发器尽可能组合在一起,以创建新的源/目标操作数,这提供了双重优势。数据指针的自动递增/递减间接访问助记符演示了这种组合。当使用 DP[0] 从数据存储器读取时,用户可以分别使用“@DP[0]++”或“@DP[0]--”源操作数在读取操作之后选择递增或递减指针。

MAXQ指令字具有许多优点。指令字包含模块化分组的源和目标操作数,允许简单快速的指令解码硬件,并限制那些不参与传输的模块的信号切换,从而降低动态功耗和噪声。指令字使用其完整的 16 位来指定源和目标操作数,从而为物理寄存器、间接内存访问和硬件触发的操作产生丰富的地址空间。最终,将丰富的源/目标地址空间与对源目标组合的最小限制耦合,从而产生高度正交的计算机。

MAXQ系统亮点

MAXQ系统不仅提供了当今微控制器用户所期望的基本硬件资源和能力,而且还增强了这些资源并增加了新的功能,以扩展器件的功能和实用性。虽然记录所有MAXQ系统资源是不可行的,但这里将讨论一些资源。

工作蓄能器

到目前为止,MAXQ架构已作为一个整体进行处理。然而,MAXQ10和MAXQ20这两个略有不同的版本将在最初的MAXQ产品系列中实现。MAXQ10和MAXQ20选项的主要区别在于工作累加器的标准宽度和支持算术单元(ALU)。MAXQ10支持8位(字节宽)累加器和ALU操作,MAXQ20支持16位(字宽)累加器和ALU操作。MAXQ器件至少配备16个蓄能器,根据应用的不同,可有多达16个蓄能器。在源/目标传输映射中,这些累加器位于系统寄存器模块中,每个累加器都可以作为 A[n] 直接访问,其中 n 对应于它们各自的索引。因此,配备0个累加器的MAXQ器件将包含累加器A[1],A[14]...A[15]和A[16]。任何一个累加器都可以被指定为活动累加器,并通过 Acc 助记符间接访问,方法是将累加器指针寄存器 AP 设置为其特定索引(即 Acc = A[AP])。AP寄存器仅实现向累加器阵列提供二进制解码所需的位数,因此在具有<>个累加器的MAXQ器件中需要<>位。所有 ALU 操作都隐式指定活动累加器作为正在执行的操作的目标。以“ADDC src”指令为例。此指令始终在活动累加器、进位标志和指定的源 (src) 操作数之间执行加法操作。丰富的位操作和移位/旋转指令围绕着有源累加器。

附加硬件附加到累加器指针,以加快对累加器文件的有序和可预测访问。累加器-指针控制 (APC) 寄存器提供用于复位 AP 以及简化累加器指针寄存器上的递增、递减和模运算的位。

处理器状态标志 (PSF) 寄存器包含五个状态标志,这些标志与活动累加器状态和 ALU 操作具有特殊含义。这些是 (C)arry、(Z)ero、(S)ign、(E)qual 和 (OV)erflow status 标志。可以评估其中一些标志以执行条件跳转和返回。PSF 寄存器还提供两个额外的通用标志(GF1 和 GF0),以满足用户软件需求。

专用硬件堆栈

MAXQ架构包含一个专用的硬件堆栈。任何MAXQ器件的堆栈深度都取决于产品。专用硬件堆栈具有两个明显的优势。首先,它允许保留数据存储器以供其他应用程序使用,而不是被堆栈消耗,其次,它支持快速PUSH/POP操作,因为存在专用的读/写端口,不需要与数据存储器共享。如果硬件堆栈深度不足以满足所需的上下文存储,则数据指针的类似堆栈的操作(写入的前递增/递减,读取的后递增/递减)非常适合在数据存储器中创建软件堆栈。

灵活的中断架构

MAXQ10和MAXQ20支持单个用户可配置的中断矢量地址寄存器。该方案允许根据用户偏好放置中断标识和服务例程。任何中断源都没有自然优先级。除了正常的单个和全局中断使能和标志外,在模块级别还提供屏蔽和识别标志。单个源启用、模块到全局级别的屏蔽和中断源的优先级由用户代码控制。所述中断支撑结构可以是有利的。首先,没有未使用的代码空间。对于每个源具有专用中断向量地址的微控制器,通常不能这样说,因为与未使用的中断向量相关的代码空间通常未使用。其次,用户加强了对启用哪些中断和中断优先级的控制。

硬件环路计数器可减少开销

MAXQ架构实现DJNZ指令,可与两个16位环路计数器(LC[0]或LC[1])寄存器中的任何一个配合使用。在单时钟周期中,“DJNZ LC[n],src”指令递减环路计数器寄存器,如果计数器未达到0,则有条件地将程序执行分支到指定地址。对于竞争RISC微控制器,更新计数器寄存器和测试环路终止条件通常是两个独立的操作。在MAXQ中合并这两个动作意味着微控制器应用代码中常见的软件环路需要更少的代码和周期开销来管理环路计数器。单周期、DJNZ 触发的环路计数器递减和条件分支操作完全遵循我们最大化时钟周期利用率的目标。

增强的数据指针

MAXQ配备三个16位数据指针(DP[0]、DP[1]和BP[Offs])。所有三个数据指针均可通过数据指针控制(DPC)寄存器中的字/字节选择(WBSn)寄存器位单独配置为字或字节访问模式。所有三个数据存储器指针都支持单周期间接内存访问,写入操作具有前递增/递减,读取操作的递增/递减后。其中一个数据指针,帧指针 (FP=BP[Offs]),由 16 位基指针 (BP) 寄存器和 8 位偏移 (Offs) 寄存器的无符号加法组合生成。这种类型的指针对于 C 编译器开发工具尤其重要,更具体地说,在处理堆栈帧时。

具有冯·诺依曼优势的哈佛记忆架构

MAXQ架构采用哈佛存储器结构,其中程序和数据存储器总线是分开的,因此可以在同一时钟周期内同时访问指令字和数据字。这种存储器组织方式对于实现最大性能并支持访问数据存储器的指令的单周期执行是必要的。使用冯诺依曼存储器接口的微控制器会遇到与在访问程序存储器、数据存储器、I/O和外设之间共享总线带宽相关的性能瓶颈。

冯·诺依曼存储器架构的拥护者认为,无法访问程序空间作为数据存储器,反之亦然是一个弱点。具有可访问性可以简化常量存储、查找表以及系统内或应用程序内编程替代方案。针对这一弱点的MAXQ架构解决方案是插入存储器管理单元(MMU)和固定实用程序ROM,提供逻辑存储器映射和固定实用程序代码例程,以支持在系统编程和所需的访问模式。

集中访问资源

MAXQ架构的另一个重要特性是存在一个传输映射,其中包含所有资源的接入点。将其称为传输映射而不是简单的寄存器映射的原因是MAXQ架构所基于的传递触发概念。

传输映射分为 16 个模块。每个模块中有 32 个索引或单独的接入点。应该再次强调的是,这些接入点可用于对寄存器的直接读/写访问,但它们也可用于间接访问存储器或触发硬件操作。在 16 个模块中,前 0 个模块 (M5–M6) 分配给特定于设备的外设功能。这在传输映射中为外设寄存器和访问提供了大量空间(32 x 192 = 10 个位置)。这些模块基于特定的MAXQ器件选项,填充寄存器以实现数字I/O、定时器、串行端口、硬件乘法器、LCD驱动器、ADC和在线调试器等功能。最后6个模块(M15-M2)保留用于MAXQ系统功能。系统模块包含对MAXQ系统工作至关重要的寄存器,例如用于看门狗、系统时钟和中断控制的寄存器。系统模块还包含工作累加器文件、数据指针和源/目标编码,用于触发间接内存访问和/或特殊机器操作。基本系统寄存器空间在MAXQ器件选项中尽可能通用。图<>给出了MAXQ源和目的传输图示例。

微控制器

图2.所有MAXQ资源都可以通过中央传输图访问。

前缀寄存器模块是MAXQ架构的一个特性,值得特别提及。存在单个前缀寄存器,其中数据(默认值 = 00h)用于需要它的传输操作。此前缀寄存器在加载时将数据保存一个时钟周期,然后返回到 00h 状态。索引 (n) 必须伴随前缀寄存器 (PFX[n]) 选择。由于传输映射中有 16 个模块和每个模块 32 个索引,因此无法使用单指令字中可用的源/目标编码位直接访问某些位置。模块中的后 16 个源索引和后 24 个目标索引都是如此。前缀寄存器通过打开对这些位置的访问窗口来解决此问题,该窗口持续一个周期。加载 PFX[n] 寄存器时,其索引 “n” 为紧随其后的指令提供高阶源位和目标位,其中 n = dds。在这方面,前缀寄存器模块是一种手段,通过它可以提供额外的解码位来访问扩展(和/或受保护)寄存器。需要加载前缀寄存器的操作和访问由汇编程序自动生成,不需要由用户手动编码。前缀寄存器模块还可用于在写入 16 位目标时连接源字节。尽管前缀寄存器对用户是透明的,但前缀寄存器正好以这种方式用于跳转和调用 16 位绝对地址。对于那些对MAXQ架构未来增强感兴趣的人,前缀寄存器模块为MAXQ指令集扩展或扩展到当前未使用的系统模块空间提供了一种无缝机制。

总之,任何MAXQ器件上的完整传输映射都包含为该器件定义的所有系统和外设寄存器。同一映射提供数据存储器、堆栈存储器和累加器阵列的间接访问点。该图包含触发MAXQ机器指令和底层操作的接入点,以及在未来MAXQ系列中简单扩展指令集的机制。将所有资源的访问点聚合到一个中央传输映射中,源到目标传输机会的数量非常大。集中式访问还简化了时钟分配,仅对那些需要时钟的资源。这促进了非常安静的环境(因此MAXQ中的“Q”),这在集成模拟外设时是有利的。MAXQ架构允许外设功能的最大模块化和便携性。此策略有意采用,以配合快速的产品开发周期和最终用户不断变化的外围设备要求,从而提高灵活性和重用性。外设功能的模块化使得在为某些市场或应用创建新的MAXQ器件时,最大限度地减少了复制、添加或删除标准MAXQ外设模块所需的设计时间。

结论

MAXQ架构是当今微控制器行业的真正创新。MAXQ利用传输触发架构实现高带宽、高效率和高正交性的目标。此外,MAXQ系统和外设资源的模块化组织有助于优化编译器,并允许模块的可移植性,以快速创建新的MAXQ导数。展望未来,MAXQ架构内置指令集扩展机制,适用于下一代产品。这些令人信服的优势使MAXQ架构成为现有和未来项目的理想解决方案,因为无论项目的选择标准如何,它都不可避免地排名靠前。

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分