System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 闪存控制器、微控制器制造技术_技高网

闪存控制器、微控制器制造技术

技术编号:43707818 阅读:2 留言:0更新日期:2024-12-18 21:19
一种闪存控制器、微控制器,闪存控制器包括:总线接口,至少用于从总线获取数据读取请求,所述数据读取请求用于请求闪存中目标地址中的数据,其中,所述总线的数据位宽为N个字节,所述闪存的数据位宽至少为2N个字节,N为大于1的正整数;第一寄存器,用于缓存第一预取数据,所述第一预取数据在所述闪存中的地址位于所述目标地址之后,且所述第一预取数据在所述闪存中的地址与所述目标地址之间的间隔为N个字节。本申请的方案能够以较低的硬件开销来提高微控制器中处理器的流水线效率。

【技术实现步骤摘要】

本申请涉及微控制器,尤其涉及一种闪存控制器、微控制器


技术介绍

1、在现有技术中,微控制器(microcontroller unit,mcu)的程序可以存放在嵌入式闪存(embedded flash)中,mcu的处理器可以从闪存中读取数据,然后对数据进行译码后执行。处理器每次从闪存中读取数据都需要一段等待的时间,尤其是mcu的系统时钟频率较高的情况下,数据的读取无法在单个周期内完成,这会导致处理器的流水线停顿,从而使得处理器的流水线效率较低。


技术实现思路

1、本申请实施例的技术目的之一在于,提供一种闪存控制器,能够以较低的硬件开销来提高mcu中处理器的流水线效率。

2、第一方面,本申请实施例提供一种闪存控制器,包括:总线接口,至少用于从总线获取数据读取请求,所述数据读取请求用于请求闪存中目标地址中的数据,其中,所述总线的数据位宽为n个字节,所述闪存的数据位宽至少为2n个字节,n为大于1的正整数;第一寄存器,用于缓存第一预取数据,所述第一预取数据在所述闪存中的地址位于所述目标地址之后,且所述第一预取数据在所述闪存中的地址与所述目标地址之间的间隔为n个字节。

3、可选的,还包括:第二寄存器,用于缓存第二预取数据;其中,所述第二预取数据在所述闪存中的地址位于所述目标地址之后,且所述第二预取数据在所述闪存中的地址与所述目标地址之间的间隔为2n个字节。

4、可选的,所述闪存控制器还包括:状态机和控制模块;所述控制模块用于根据所述状态机的状态生成控制信号,所述控制信号用于控制所述闪存控制器从所述闪存读取数据和/或向所述总线输出数据。

5、可选的,所述状态机的状态包括:空闲态、第一状态、第二状态、第三状态和第四状态;。

6、可选的,若所述状态机的现态为所述空闲态,且低位读取条件满足,则所述状态机的次态为所述第一状态;若所述状态机的现态为所述第一状态,且所述第一条件满足,则所述状态机的次态为所述第二状态;若所述状态机的现态为所述第二状态,且所述第一条件满足,则所述状态机的次态为所述第三状态;若所述状态机的现态为所述第三状态,且所述第一条件满足,则所述状态机的次态为所述第四状态;若所述状态机的现态为所述第四状态,且所述第一条件满足,则所述状态机的次态为所述第三状态;若所述状态机的现态为所述第一状态或所述第二状态或所述第三状态或所述第四状态,且第二条件满足,则所述状态机的次态为所述第一状态;若所述状态机的现态为所述第一状态或所述第二状态或所述第三状态或所述第四状态,且第三条件满足,则所述状态机的次态为所述空闲态;其中,所述第一条件是指当前目标地址位于上一个目标地址之后,且所述当前目标地址和所述上一个目标地址之间的间隔为n个字节,所述低位读取条件是指当前数据读取请求所请求的是所述闪存中地址为所述当前目标地址的2n个字节的数据中低地址的n个字节的数据;其中,所述第二条件是指所述第一条件不满足,且所述低位读取条件满足;其中,所述第三条件是指所述第一条件不满足,且所述低位读取条件不满足;其中,在所述第一状态下,所述闪存控制器从所述闪存中读取所述当前目标地址中的数据,将读取到的数据中高地址的n位数据写入所述第一寄存器,以及将读取到的数据中低地址的n位数据输出至总线;在所述第二状态下,将所述第一寄存器中的数据输出至总线,以及从所述闪存中读取所述当前目标地址的下一个地址中的数据,并将读取到的数据中低地址的n个字节的数据写入所述第一寄存器,以及将高地址的n个字节的数据写入所述第二寄存器;在所述第三状态下,将所述第一寄存器中的数据输出至总线;在所述第四状态下,将所述第二寄存器中的数据输出至总线,以及从所述闪存中读取所述当前目标地址的下一个地址中的数据,并将读取到的数据中低地址的n个字节的数据写入所述第一寄存器,以及将高地址的n个字节的数据写入所述第二寄存器。

7、可选的,n为4的整数倍。

8、可选的,还包括:纠错码解码器,用于对从所述闪存读取的数据进行校验。

9、第二方面,本申请实施例提供一种微控制器,包括:第一方面提供的闪存控制器。

10、可选的,还包括:主设备,用于通过所述总线向所述闪存控制器发送所述数据读取请求,以及通过所述总线获取所述目标数据。

11、可选的,所述总线为ahb总线。

12、可选的,所述主设备是内核为cortex-m3或cortex-m0或cortex-m4的处理器。

13、与现有技术相比,本专利技术实施例的技术方案具有以下有益效果:

14、本申请实施例的方案中,闪存控制器包括:总线接口和第一寄存器,总线接口至少用于从总线获取数据读取请求,数据读取请求用于请求闪存中目标地址中的数据,第一寄存器用于缓存第一预取数据。其中,总线的数据位宽为n个字节,闪存的数据位宽至少为2n个字节,第一预取数据在闪存中的地址位于目标地址之后,且第一预取数据在闪存中的地址与目标地址之间的间隔为n个字节,n为大于1的正整数。

15、上述方案中,闪存的数据位宽大于或等于总线的数据位宽的两倍,闪存控制器对闪存的单次读取操作能够取出地址相邻的多个位宽为总线数据位宽的数据。也即,闪存控制器对闪存的单次读取操作能够获取处理器多次请求的数据。在处理器运行某些地址连续递增、跳转极少的程序的情况下,闪存控制器对闪存的单次读取除了能够获取处理器本次请求的数据,还能够获取处理器下一次需要的数据。为此,本申请的方案中,将闪存中本次请求的数据所在地址之后的n个字节的数据作为第一预取数据缓存在第一寄存器中,若下一次请求的是该地址的数据,则闪存控制器可以直接将第一寄存器中的数据输出,无需再从闪存中读取,减少了从闪存读取数据所需的等待时间。

16、也就是说,上述方案中,将处理器后续可能需要的数据存储在闪存控制器的寄存器中,若处理器下一次请求的数据正好已经在闪存控制器的寄存器中,则可以提前返还数据。因此,本申请实施例的方案以较低的硬件开销实现了减少访问闪存的次数,避免流水线停顿。尤其是在处理器运行某些地址递增、跳转较少的程序时,本申请实施例提供的方案能够提高处理器的工作效率。

本文档来自技高网...

【技术保护点】

1.一种闪存控制器,其特征在于,包括:

2.根据权利要求1所述的闪存控制器,其特征在于,还包括:

3.根据权利要求2所述的闪存控制器,其特征在于,所述闪存控制器还包括:状态机和控制模块;

4.根据权利要求3所述的闪存控制器,其特征在于,所述状态机的状态包括:空闲态、第一状态、第二状态、第三状态和第四状态;

5.根据权利要求1所述的闪存控制器,其特征在于,N为4的整数倍。

6.根据权利要求1所述的闪存控制器,其特征在于,还包括:

7.一种微控制器,其特征在于,包括权利要求1至6任一项所述的闪存控制器。

8.根据权利要求7所述的微控制器,其特征在于,还包括:

9.根据权利要求8所述的微控制器,其特征在于,所述总线为AHB总线。

10.根据权利要求8所述的微控制器,其特征在于,所述主设备是内核为Cortex-M3或Cortex-M0或Cortex-M4的处理器。

【技术特征摘要】

1.一种闪存控制器,其特征在于,包括:

2.根据权利要求1所述的闪存控制器,其特征在于,还包括:

3.根据权利要求2所述的闪存控制器,其特征在于,所述闪存控制器还包括:状态机和控制模块;

4.根据权利要求3所述的闪存控制器,其特征在于,所述状态机的状态包括:空闲态、第一状态、第二状态、第三状态和第四状态;

5.根据权利要求1所述的闪存控制器,其特征在于,n为4的整数倍。

6....

【专利技术属性】
技术研发人员:王端秀李哲盛邹阳周耀
申请(专利权)人:上海朔集半导体科技有限公司
类型:发明
国别省市:

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

1