一种基于Cortex‑M系列处理器的指令预取方法及电路技术

技术编号:14587106 阅读:43 留言:0更新日期:2017-02-08 16:40
本发明专利技术公开了一种基于Cortex‑M系列处理器的指令预取方法及电路,在Cortex‑M系列处理器的指令执行效率受限于NVM访问速度的情况下,本发明专利技术所述的方法通过增加少量的硬件控制逻辑,可极大的提高Cortex‑M系列处理器的指令执行效率。

A method of instruction pre processor based on M series Cortex and circuit

The invention discloses a method Cortex instruction pre processor based on M series and Cortex M series circuit in processor instruction execution efficiency is limited by the access speed of the NVM case, the method of the invention by adding a small amount of hardware control logic, can greatly improve the Cortex instruction M series processor execution efficiency.

【技术实现步骤摘要】

本专利技术属于集成电路芯片的安全性设计领域,具体涉及与芯片安全功能相关的关键数据信息的安全传输方法与电路。
技术介绍
智能卡技术的不断发展,使其成为许多行业解决传统问题的理想方案,在移动通信、社保医疗、金融支付等诸多领域发挥着日益重要的作用。智能卡芯片的广泛应用,使用户对智能卡芯片的性能提出了更高的要求。智能卡芯片基于成本方面的考虑,所选用的非易失性存储器(NVM)的性能通常不佳。对于以Cortex-M系列处理器作为CPU内核的智能卡芯片,为了提高其指令执行效率,通常采用的方法是使CPU内核与NVM存储器工作在不同的时钟频率下,使CPU内核的工作时钟频率为NVM存储器工作时钟频率的N倍频(N为整数)。对于采用上述方式的芯片,当CPU内核执行取指操作时,受限于NVM访问速度,取指操作无法在一个高频时钟周期内完成,因此CPU内核在接收到取指响应前,需要插入一个或多个等待周期。图2所示为芯片CPU时钟为NVM时钟的两倍频,插入一个等待周期的指令执行情况。通过分析,对应的指令平均执行周期数CPI=9/6=1.5。图3所示为芯片CPU时钟为NVM时钟的四倍频,插入三个等待周期的指令执行情况。通过分析,对应的指令平均执行周期数CPI=(6+9)/6=2.5,与图1相比,折算到相同的时钟频率下,其CPI为2.5/2=1.25。由上述分析可知,通过提高CPU的工作时钟频率,可使CPI由1.5降为1.25,但显著增加了CPU的动态平均功耗。因此,需要寻找一种更好的方法,既可提高处理器的指令执行效率,又能使芯片功耗控制在一个合理的范围内。由于Cortex-M系列处理器支持的Thumb2指令集的大部分指令为16位指令,一次取指操作可取回两条16位指令,因此,Cortex-M系列处理器取指操作的特点是一次取指操作完成后,需要空一个时钟周期再启动下一次的取指操作(只有一个例外,即当分支指令的目标地址是半字对齐的情况,一次取指操作只能取回一条有效的16位指令,此时将发生back-to-back取指)。本专利技术在CPU内核时钟为NVM时钟两倍频的条件下,充分利用Cortex-M系列处理器指令流水线的上述特点,提前一拍启动指令预取操作,当硬件收到处理器的取指请求后,在下一时钟周期即可将预取的指令码返回处理器,从而实现了单周期取指返回。如图4所示,可计算出其CPI=1。
技术实现思路
本专利技术的目的,在于解决目前因智能卡芯片集成的NVM存储器的性能不佳,导致的Cortex-M系列处理器的指令执行效率不高的问题。本专利技术公开了一种基于Cortex-M系列处理器的指令预取方法及电路,采用全硬件的实现方案,详细的技术方案描述如下:本专利技术的硬件电路包括::一个预取指令地址寄存器、两组32Bit的指令Buffer寄存器、一个数据访问地址寄存器、一个地址通路选择器、一个数据通路选择器以及相关的控制逻辑单元等。本专利技术的工作流程图参见图5,其工作原理如下:当处理器发出取指请求后,硬件首先判断当前执行指令是否为分支指令,若为分支指令则使用分支指令目标地址更新预取指令地址寄存器,并将此地址直接作为NVM访问地址启动读操作,同时清空指令Buffer寄存器;若当前指令为非分支指令,则判断指令Buffer是否为空,若非空则立即响应取指请求,否则需要等待指令预取完成(指令Buffer为空仅发生在分支指令目标地址为半字对齐,出现back-to-back取指操作的情况下)。当处理器发出数据访问请求后,硬件首先判断当前是否存在尚未完成的指令预取操作(即NVM正被访问,访问不能立即进行),若存在则要将此数据访问的目标地址保存到数据访问地址寄存器;待指令预取操作完成后,再依据数据访问地址寄存器对NVM进行数据访问(注:执行数据访问期间,预取指令地址寄存器、两组指令Buffer寄存器及相关的指令预取控制逻辑的状态保持不变,不受数据访问的影响)。当处理器既无取指请求也无数据访问请求时,硬件判断指令Buffer是否为满,若未满则依据指令预取地址寄存器进行指令预取操作,直至指令Buffer被装满后暂停指令预取。本专利技术所述的基于Cortex-M系列处理器的指令预取方法,通过增加少量的硬件控制逻辑,在处理器时钟为NVM时钟两倍频的条件下,与插等待周期的方式相比,使Cortex-M系列处理器的指令执行效率得到显著的提升。附图说明图1硬件电路原理图图2插入一级等待的指令流分析图3插入三级等待的指令流分析图4采用指令预取方式的指令流分析图5指令预取方案控制流程图具体实施方式以下结合说明书附图对本专利技术的具体实施方式进行详细说明。如图1的硬件电路原理图所示,100代表指令预取地址寄存器,200代表数据访问地址寄存器,300代表两组32Bit的指令Buffer(IBUF0与IBUF1),400代表地址通路选择器,500代表数据通路选择器。图1中的100代表指令预取地址寄存器,在芯片上电时其被复位为全零,寄存器处于无效状态。当处理器的取指地址与上一取指操作的地址不连续时,要使用新地址对指令预取地址寄存器进行更新,同时将300对应的指令Buffer清空。图1中的200代表数据访问地址寄存器,若处理器对NVM进行数据访问时预取指电路正在访问NVM,则要将数据访问目标地址锁存到数据访问地址寄存器内,待预取指操作完成后,将此地址寄存器的输出端通过地址通路选择器选通并输出到NVM地址端口,同时启动对该地址的数据访问;若处理器对NVM进行数据访问时NVM空闲,则数据访问立即执行,此时的数据访问地址不再进行锁存。图1中的300代表两组32Bit的指令Buffer(IBUF0与IBUF1),针对IBUF0、IBUF1的读、写分别通过读指针、写指针进行控制。对于地址连续的顺序取指,当NVM返回指令操作码后,要依据写指针将其写入对应的指令Buffer;对于地址不连续的取指操作(当前执行指令为分支指令),指令码直接返回处理器而不写入指令Buffer,写指针保持不变。图1中的400代表地址通路选择器,其输出直接连到NVM存储器的地址端口,其输入来源有三个:指令预取地址寄存器输出、数据访问地址寄存器输出和处理器输出的HADRR/4。对于指令预取操作,选通指令预取地址寄存器输出;对于地址不连续的取指操作,选通处理器输出的HADDR/4;对于处理器发起的数据访问,若NVM正在执行指令预取操作,则在预取操作完成后选通数据访问地址将此运气的输出,否则选择处理器输出的HADDR/4。图1中的500代表数据通路选择器,其输出直接连到处理器的HRDATA端口,其输入来源有两个:对于地址连续的顺序取指,根据IBUF读指针选通对应的指令Buffer(IBUF0或IBUF1);其它情况下,直接选通NVM输出。本文档来自技高网
...

【技术保护点】
一种基于Cortex‑M系列处理器的指令预取方法,其特征在于:(1)当处理器发出存储器访问请求,硬件电路首先对请求的类型进行判断:即数据访问请求或取指请求;(2)对于数据访问请求,硬件电路直接对存储器进行访问;(3)对于CPU取指请求,硬件电路首先判断CPU当前执行指令是否为分支指令,对于分支指令,预取到的指令将被丢弃,并根据新的取指地址重新进行指令预取;对于非分支指令且指令预取Buffer非空的情况,则立即响应该取指请求;(4)当处理器即为取指请求,业务数据访问请求时,硬件电路将自动启动指令预取操作,直到指令预取Buffer被填满为止。

【技术特征摘要】
1.一种基于Cortex-M系列处理器的指令预取方法,其特征在于:(1)当处理器发出存储器访问请求,硬件电路首先对请求的类型进行判断:即数据访问请求或取指请求;(2)对于数据访问请求,硬件电路直接对存储器进行访问;(3)对于CPU取指请求,硬件电路首先判断CPU当前执行指令是否为分支指令,对于分支指令,预取到的指令将被丢弃,并根据新的取指地址重新进行指令预取;对于非分支指令且指令预取Buffer非空的情况,则立即响应该取指请求;(4)当处理器即为取指请求,业务数据访问请求时,硬件电路将自动启动指令预取操作,直到指令预取Buffer被填满为止。2.一种基于Cortex-M系列处理器的指令预取方法及电路,其特征在于,在处理器执行不包含分支指令的程序段时,芯片硬件自动根据顺序取指操作的特点,提前从NVM读出后续的指令操作码,其硬件包括:一个预取指令地址寄存器、两组32Bit的指令Buffer寄存器、一个数据访问地址寄存器、一个地址通路选择器、一个数据通路选择器以及相关的控制逻辑单元等,其中:预取指令地址寄存器在处理器执行分支指令时,用于保存分支指令的目标地址;在程序顺序执行时,用于产生指令预取操作的目标地址;指令Buffer寄存器包括两组32Bit寄存器,用于暂存指令预取操作的返回结果;数据访问地址寄存器用于保存NVM数据访问的目标地址;地址通路选择器用于对送给NVM的访问地址来源进行选择,送给NVM的地址来源包括三类,分别是预取指令地址寄存器、数据访问地址寄存器或处理器输出的即时访问地址;数据通路选择器用于对返回处理器的数据源进行选择,即来自指令Buffer的两组32Bit寄存器之一或者NVM存储器的输出数据。3.根据权利要求1所述的电路,其特征在于,所述预取指令地址寄存器在芯片硬件完成一次取指操作后,其自动根据顺...

【专利技术属性】
技术研发人员:张英杰
申请(专利权)人:北京中电华大电子设计有限责任公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1