账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
MIPS32 M4K核心阴影缓存器微控制器应用简介
 

【作者: MIPS】2008年01月15日 星期二

浏览人次:【8995】

简介

RISC架构可提供微控制器许多优势。譬如,较CISC架构操作更加简易的编译程序及节省晶圆空间,可让硅组件研发业者与其客户以低廉成本获得优异效能。


但用户在采用RISC处理器时,仍面临着许多额外的考虑因素,尤其是通用型微控制器在较低频率频率方面的特性。


其中一项问题是在中断(interrupt)或异常处理程序(exception handling routine) 时发生,本文切换(Context Switch)储存与回复方面的程序。在RISC主机中,本文切换储存与回复程序,往往耗费相当多的周期,因为至少有16至32个通用型缓存器(GPR)必须配合堆栈(Stack)或RAM中的静态储存空间,进行推入或撷取的动作。在某些情况中,这些程序耗费可观的周期,而MIPS32 M4K核心早已准备好要处理实际的中断要求。


研发业者也可走快捷方式,不储存所有缓存器,以汇编语言撰写整个软件,或让编译程序在转译程序代码时仅使用某些缓存器。但不论采用哪种方法,都会让软件开发面临许多传统的限制,软件研发业者必须随时注意这些条件。


在这方面,MIPS32 M4K RISC核心和其他RISC核心相同,内含32个GPR缓存器以及一个应用程序二进制接口(ABI),能使用MIPS32 Release 2架构中定义的所有32个GPR缓存器。


但M4K核心融合RISC与CISC两种架构的优点,更提供了完善的解决方案,支持GPR阴影缓存器,大幅降低中断反应所耗用的资源,直追CISC-based微控制器快速反应及定性架构方面的优点。


M4K核心阴影缓存器:基本指令

MIPS32 Release 2架构的一项新特色是大幅加速处理中断与例外状况的能力。运用MIPS32 Release 2架构的处理器,包括M4K核心在内,允许8个GPR同时出现在核心。此功能是建构阶段(build-time)选项,建构出一个先进的中断控制架构,在微控制器中非常少见。


新芯片的研发业者,可在速度与核心空间中取得理想的平衡点,建构1、2、4或8个GPR复本。就定义而言,阴影集0是默认的GPR组件集,最多可配置7个额外的阴影组件集,专门处理中断服务作业。


除了以下的例外状况外,额外的GRP彼此间及与内存空间完全隔离。根据应用的需求,每个GPR组件集都能链接一个或多个中断向量。


在处理一个中断或例外状况时,M4K核心会根据研发人员在控制缓存器中设定的数值,自动分析要使用哪一个阴影组件集。之后再把指定的阴影缓存器组件集设定成作用中的GPR,让中断向量能继续执行。这个流程让系统完全不必储存任何脉络或执行任何回复程序,因为针对当前启动中的阴影缓存器而言,中断服务例程是唯一的指令来源。


这不仅意谓着在中断或执行程序代码实际建置之前,不会浪费任何时间,还代表缓存器的内容能够保存,因为最后一次的执行或中断事件都还维持作用状态。如此一来就省下检索SRAM内存中特定数值所耗费的时间。


以下是M4K核心中,一个中断控制器的基本启动程序。它包含任何通用型中断系统启动程序的标准步骤及一个新加入的重要步骤:


(1)标准: 设定基准向量表的地址


(2)标准: 把作用中向量地址填入中断表


(3)标准: 把记号地址填入非作用中向量表地址


(4)M4K 专属: 将向量专属ID指定至相关的GPR缓存器组件集


(5)标准: 消除所有作用中与等待中的中断来源


(6)标准: 开启所有作用中中断来源


(7)标准: 开启全局中断


M4K 核心阴影缓存器组:基本运作

整个阴影缓存器组的详细运作流程,无法在本文有限篇幅中做完整介绍,基本的运作程序归纳如下。


(图一)列出基本概念,包括一个含有4个缓存器组的M4K核心。要特别强调的是,这四个缓存器组都完全置于处理器核心内部,不需建置外部RAM。另外,图中还列出两个关键SRSCTL 与SRSMAP控制缓存器,用来设定与建置阴影GPR逻辑。



《图一 显示在开始执行中断服务例程之前,核心的状态》 - BigPic:710x805
《图一 显示在开始执行中断服务例程之前,核心的状态》 - BigPic:710x805
  • ●外部中断控制器辨识出一个硬件中断


  • ●外部中断控制器把这个向量ID传递到M4K核心。在这个例子中,我们假设向量ID为1


  • ●核心根据这个向量ID来决定要使用的目标GPR组。M4K核心根据SRSMAP中的组态来执行这项作业,其中含有向量ID 0至向量ID 7的阴影GPR ID。



之后再根据这项信息来执行以下步骤:


  • ●把GPR ID 复制到SRSCTL控制缓存器中的 SRSCTL_PSS 字段。当中断或执行要求完成后,系统再回复这个Previous Shadow Set ID。


  • ●从SRSMAP 控制缓存器中撷取出的GPR群组ID复制到STSCTL控制缓存器的SRSCTL_CSS字段。到此阶段,是Current Shadow Set。


  • ●完成中断或例外状况服务例程的执行作业,并执行ERET指令 。


  • ●之后,M4K 核心把数值从SRSCTL_PSS 字段复制到SRSCTL_CSS 字段,并从发送中断或执行指令的时间点回复执行程序。



此流程明显胜过标准的脉络储存与回复程序: M4K核心不必浪费时间在设定一个可处理中断服务要求或能立即处理例外状况要求的GPR环境。运用M4K核心的阴影GPR函式,中断延迟减少到只有22个周期,总时间只需550奈秒。


M4K核心阴影缓存器群组:可微调的控制功能

M4K核心中用户空间程序代码的正常执行程序中,每个GPR群组除了其特定ID被开启时,处理器核心都无法侦测到它们。但某些处理器指令让M4K核心在内核模式时,能存取任何缓存器群组。RDPGPR 与WRPGPR 指令让一个特权(privileged)线程能任意存取任何GPR阴影群组。当一个双重功能的GPR群组需支持两个独立但又相似的中断向量时,就要用到此功能。了解编译程序ABI如何把作用中数据放置到GPR群组,能让用户能根据系统正在执行的中断向量,撷取与选择特定的GPR数值。其中一个例子就是两个共同相同缓存器结构的以太网络组件,但两个组件处理不同的TCP/IP串流数据。


M4K核心阴影缓存器群组:微控制器方面的利益

运用M4K核心中的阴影群组功能,即使当调降处理器核心的速度来节省电力时,系统研发业者能有更充裕中断反应时间来处理外部事件。


如今软件设计的重点,从以往减少浪费周期来保存系统当前状态,转移至分析哪些中断来源值得配置本身的阴影缓存器群组及哪些应分享一个专属GPR群组。如此一来,面临的问题就简单得多。


阴影GPR系统在安装与执行程序方面都相当简洁,对执行程序代码而言,大多数繁重的作业程序都不必费心去处理。如此一来,软件设计人员可专心提升实际中断服务例程的效率,不必浪费心力在处理一般系统作业。M4K核心利用阴影GPR的优势,大幅降低中断反应所耗费的资源,并针对32位微控制器提供一个快速反应且组态确定的解决方案。


相关文章
MIPS抢攻行动市场策略能否奏效?
[专题]低价智慧手机 引爆全球商机
Computex Taipei 2009展后报导
加速SoC软件开发时程
如何加速SoC软体开发
comments powered by Disqus
相关讨论
  相关新闻
» TI创新车用解决方案 加速实现智慧行车的安全未来
» AMD扩展商用AI PC产品阵容 为专业行动与桌上型系统??注效能
» 豪威集团汽车影像感测器相容於高通Snapdragon Digital Chassis
» 意法半导体扩大3D深度感测布局 打造新一代时间飞行感测器
» AMD第2代Versal系列扩展自调适SoC组合 为AI驱动型系统提供端对端加速


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK84J765YYESTACUKQ
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw