CN112799723A - 一种数据读取方法、装置及电子设备 - Google Patents
一种数据读取方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112799723A CN112799723A CN202110399917.3A CN202110399917A CN112799723A CN 112799723 A CN112799723 A CN 112799723A CN 202110399917 A CN202110399917 A CN 202110399917A CN 112799723 A CN112799723 A CN 112799723A
- Authority
- CN
- China
- Prior art keywords
- access address
- host
- memory
- predicted
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开一种数据读取方法、装置及电子设备,涉及电子技术领域。所述方法应用于具有存储器与主机的电子设备,所述方法包括:在***处于空闲状态的情况下,基于主机发送的上一访问地址确定所述上一访问地址对应的预测访问地址;响应于所述主机单元发送的当前访问地址,在所述当前访问地址和所述预测访问地址匹配的情况下,根据所述预测访问地址控制所述存储器向所述主机反馈数据;在所述当前访问地址和所述预测访问地址不匹配的情况下,控制所述主机向所述存储器发送所述当前访问地址。所述装置用于执行上述技术方案所述方法。本发明提供的方法用于数据读取,可以提高主机取指的正确性,从而提高电子设备的整体性能和处理效率。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种数据读取方法、装置及电子设备。
背景技术
微控制单元(Microcontroller Unit;MCU)芯片通常使用嵌入式闪存(EmbeddedNOR flash;eFlash)作为指令和数据存储。
目前,一般MCU芯片的内核运行主频是eFlash运行主频速度的多倍,导致,内核从eFlash中取指令时需要等待一段时间才能从eFlash的数据输出端口取到数据。
而eFlash取指速度的快慢将决定嵌入式***芯片(System-on-a-chip;SOC)的整体性能以及效率,由于需要等待一段时间才能取到数据,导致MCU芯片读取数据的速度较低,进一步的,导致***芯片的整体性能以及效率较低。
发明内容
本发明的目的在于提供一种数据读取方法、装置及电子设备,以解决MCU芯片读取数据的速度较低,导致***芯片的整体性能以及效率较低的问题。
第一方面,本发明提供一种数据读取方法,应用于具有存储器与主机的电子设备,所述方法包括:
在所述***处于空闲状态的情况下,基于主机发送的上一访问地址确定所述上一访问地址对应的预测访问地址;
响应于所述主机发送的当前访问地址,在所述当前访问地址和所述预测访问地址匹配的情况下,根据所述预测访问地址控制所述存储器向所述主机反馈数据;
在所述当前访问地址和所述预测访问地址不匹配的情况下,控制所述主机向所述存储器发送所述当前访问地址。
采用上述技术方案的情况下,当***暂停访问嵌入式闪存器件时,也即是当***处于空闲状态时,可以立刻自动基于上一访问地址产生预测访问地址,代替主机随时可以发送该预测访问地址,则可以提高主机的取指效率。并且,在在所述当前访问地址和所述预测访问地址匹配的情况下,根据所述预测访问地址控制所述存储器向所述主机反馈数据,在所述当前访问地址和所述预测访问地址不匹配的情况下,控制所述主机向所述存储器发送所述当前访问地址,可以提高主机取指的正确性,从而提高电子设备的整体性能和处理效率。
在一种可能的实现方式中,所述基于主机发送的上一访问地址确定所述上一访问地址对应的预测访问地址,包括:
在所述上一访问地址与对应的下一访问地址为所述上一访问地址的跳转地址的情况下,将所述下一访问地址确定为所述预测访问地址;
在所述上一访问地址与对应的下一访问地址为所述上一访问地址的连续地址的情况下,基于所述上一访问地址生成连续地址,将所述连续地址确定为所述预测访问地址。
在一种可能的实现方式中,所述在所述上一访问地址与对应的下一访问地址为所述上一访问地址的跳转地址的情况下,将所述下一访问地址确定为所述预测访问地址,包括:
在所述上一访问地址与对应的所述下一访问地址为所述上一访问地址的跳转地址的情况下,基于所述主机发送的所述上一访问地址以及预设对应关系,确定所述上一访问地址对应的所述下一访问地址;
将所述下一访问地址确定为所述预测访问地址;
所述预设对应关系包括所述上一访问地址与对应的所述预测访问地址的对应关系;其中,所述预设对应关系为所述上一访问地址与存储器反馈的所述预测访问地址的对应关系。
在一种可能的实现方式中,所述控制所述主机向所述存储器发送所述当前访问地址后,所述方法还包括:
根据所述当前访问地址控制所述存储器向所述主机反馈数据。
在一种可能的实现方式中,所述根据所述当前访问地址控制所述存储器向所述主机反馈数据后,或,根据所述预测访问地址控制所述存储器向所述主机反馈数据后,所述方法还包括:
根据所述当前访问地址与对应的预测访问地址更新所述预设对应关系;
所述预设对应关系包括所述当前访问地址与对应的所述预测访问地址的对应关系;其中,预设对应关系为所述当前访问地址与存储器反馈的所述预测访问地址的对应关系。
在一种可能的实现方式中,所述在所述当前访问地址和所述预测访问地址不匹配的情况下,控制所述主机向所述存储器发送所述当前访问地址,包括:
在所述当前访问地址和所述预测访问地址不匹配的情况下,控制所述存储器清空缓存数据;
控制所述主机向所述存储器发送所述当前访问地址。
第二方面,本发明还提供一种数据读取装置,应用于具有存储器与主机的电子设备,处理器以及与处理器耦合的通信接口;所述处理器用于运行计算机程序或指令,以实现如权利要求第一方面任一项所述数据读取方法。
第二方面提供的数据读取装置的有益效果与第一方面或第一方面任一可能的实现方式描述的数据读取方法的有益效果相同,此处不做赘述。
第三方面,本发明还提供一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指定,所述程序或指令被所述处理器执行时实现第一方面任一项所述的数据读取方法。
第三方面提供的电子设备的有益效果与第一方面或第一方面任一可能的实现方式描述的数据读取方法的有益效果相同,此处不做赘述。
第四方面,本发明还提供一种计算机存储介质,所述计算机存储介质中存储有指令,当所述指令被运行时,实现第一方面或第一方面任一可能的实现方式描述的数据读取方法。
第四方面提供的计算机存储介质的有益效果与第一方面或第一方面任一可能的实现方式描述的数据读取方法的有益效果相同,此处不做赘述。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了本发明实施例提供的一种数据读取方法的流程示意图;
图2示出了本发明实施例提供的另一种数据读取方法的流程示意图;
图3示出了本发明实施例提供的一种数据读取波形示意图;
图4示出了本发明实施例提供的另一种数据读取波形示意图;
图5示出了本发明实施例提供的一种分支查找表的示意图;
图6示出了本发明实施例提供的一种确定预测访问地址的场景示意图;
图7示出了本发明实施例提供的又一种数据读取波形示意图;
图8示出了本发明实施例提供的一种缓存结构与原理的示意图;
图9示出了本发明实施例提供的一种分支查找表存储结构与更新方式的场景示意图;
图10示出了本发明实施例提供的一种数据读取电路示意图;
图11示出了本发明实施例提供的一种数据读取装置的结构示意图;
图12为本发明实施例提供的一种电子设备的硬件结构示意图;
图13为本发明实施例提供的芯片的结构示意图。
具体实施方式
为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一阈值和第二阈值仅仅是为了区分不同的阈值,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本发明中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本发明中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b的结合,a和c的结合,b和c的结合,或a、b和c的结合,其中a,b,c可以是单个,也可以是多个。
微控制单元(Microcontroller Unit;MCU)芯片通常使用嵌入式闪存(EmbeddedNOR flash;eFlash)作为指令和数据存储,使用嵌入式闪存的芯片的优点在于可以直接运行存储于嵌入式闪存中的程序,当中央处理器(Central Processing Unit ,CPU)访问eFlash时,eFlash上的数据在收到访问请求后需要一段时间才能运行,而eFlash性能的提升只能依赖于工艺改良等不多的办法,随着工艺改良的提升,eFlash的取指速度逐渐成为影响芯片所在电子设备的主要因素。
目前,一般MCU芯片的内核运行主频是eFlash运行主频速度的多倍,导致,内核从eFlash中取指令时需要等待一段时间才能从eFlash的数据输出端口取到数据。具体的,MCU芯片从eFlash中取指令时,每一个总线请求都需要等到一段时间才能从eFlash的数据输出端口取到数据,典型的eFlash读访问时间平均读等待时间(TRC)在20纳秒(ns)至40纳秒不等,而由于MCU的控制电路只能进行时钟沿操作,所以引入等待周期数的概念,总线时钟的等待周期数(Latency),时钟频率(f)以及读等待时间(TRC)需要满足以下关系:
而eFlash取指速度的快慢将决定嵌入式***芯片(System-on-a-chip;SOC)的整体性能以及效率,由于需要等待一段时间才能取到数据,导致eFlash读取数据的速度较低,进一步的,导致***芯片的整体性能以及效率较低,本发明为了解决该问题提出一种数据读取方法、装置及电子设备。
本发明实施例提供一种数据读取方法,可以应用于具有存储器与主机的电子设备。图1示出了本发明实施例提供的一种数据读取方法的流程示意图,如图1所示,该数据读取方法包括:
步骤101:在***处于空闲状态的情况下,基于主机发送的上一访问地址确定上一访问地址对应的预测访问地址。
在本申请中,主机可以是CPU,也可以是直接存储器访问(Direct Memory Access,DMA),还可以是串行调试(Serial Wire Debug,SWD)控制器等设备,本发明实施例对此不作具体限定。存储器可以是嵌入式闪存(Embedded NOR flash;eFlash)存储器。
当嵌入式闪存器件在完成读取后将进入空闲状态,本发明在数据的连续的读取过程中,保持嵌入式闪存器件处于工作状态,当***暂停访问嵌入式闪存器件时,也即是当***处于空闲状态时,可以立刻自动基于上一访问地址产生预测访问地址,并且代替主机随时可以发送该预测访问地址,可以提高主机的取指效率。
在***处于空闲状态的情况下,也即是***当前未接受到主机发送的访问信号,此时,电子设备可以获取主机发送的上一访问地址,并基于上一访问地址确定该上一访问地址对应的预测访问地址。
在***处于空闲状态的情况下,基于主机发送的上一访问地址确定上一访问地址对应的预测访问地址之后,执行步骤102或步骤103。
步骤102:响应于主机发送的当前访问地址,在当前访问地址和预测访问地址匹配的情况下,根据预测访问地址控制存储器向主机反馈数据。
其中,当前访问地址和预测访问地址匹配,也即是预测访问地址预测正确,预测访问地址和当前访问地址相同,此时,电子设备可以控制存储器基于预测访问地址向主机反馈数据,反馈数据包括预测访问地址对应的相关数据。
步骤103:在当前访问地址和预测访问地址不匹配的情况下,控制主机向存储器发送当前访问地址。
在本申请中,当前访问地址和预测访问地址不匹配,也即是,预测访问地址不正确,此时,电子设备可以控制主机向存储器再次发送当前访问地址。
在本发明实施例中,当***暂停访问嵌入式闪存器件时,也即是当***处于空闲状态时,可以立刻自动基于上一访问地址产生预测访问地址,代替主机随时可以发送该预测访问地址,则可以提高主机的取指效率。并且,在在当前访问地址和预测访问地址匹配的情况下,根据预测访问地址控制存储器向主机反馈数据,在当前访问地址和预测访问地址不匹配的情况下,控制主机向存储器发送当前访问地址,可以提高主机取指的正确性,从而提高电子设备的整体性能和处理效率。
图2示出了本发明实施例提供的另一种数据读取方法的流程示意图,该数据读取方法应用于具有存储器与主机的电子设备,如图2所示,该数据读取方法包括:
步骤201:在***处于空闲状态的情况下,在上一访问地址与对应的下一访问地址为上一访问地址的跳转地址的情况下,将下一访问地址确定为预测访问地址。
其中,预测访问地址为历史上一访问地址对应的下一访问地址。
上一访问地址与对应的下一访问地址存在分支,指的是,上一访问地址和对应的下一访问地址并不连续,存在跳转地址。
在本申请中,主机可以是CPU,可以是DMA,还可以是SWD控制器等设备,本发明实施例对此不作具体限定。存储器可以是嵌入式闪存(Embedded NOR flash;eFlash)存储器。
当嵌入式闪存器件在完成读取后将进入空闲状态,本发明在数据的连续的读取过程中,保持嵌入式闪存器件处于工作状态,当***暂停访问嵌入式闪存器件时,也即是当***处于空闲状态时,可以立刻自动基于上一访问地址产生预测访问地址,并且代替主机随时可以发送该预测访问地址,可以提高主机的取指效率。
需要说明的是,当***暂停访问嵌入式闪存器件时,如果在基于上一访问地址产生预测访问地址的过程中,电子设备接收到主机发来的新的访问请求,并且该新的访问请求与预测访问地址匹配,则可以将该预测访问地址返回主机,此种场景下,相当于减小了周期数,如果基于上一访问地址产生预测访问地址的过程已经完成,主机仍未发起新的访问请求,则电子设备获取该预测访问地址,并将预测访问地址及对应的相关数据存入缓存,在电子设备检测到缓存空间不足的情况下,还未接收到主机的访问请求,则电子设备控制关闭基于上一访问地址产生预测访问地址的进程,停止存储器的操作。
可选的,电子设备可以接收AHB总线的控制信号、当前地址信号和数据信号,将当前地址信号译码转化为存储器对应的当前访问信号,将控制信号译码转化为存储器对应的命令信号。
在本申请中,上述步骤201的具体实现方式可以包括以下子步骤:
子步骤A1:在上一访问地址与对应的下一访问地址为上一访问地址的跳转地址的情况下,基于主机发送的上一访问地址以及预设对应关系,确定上一访问地址对应的下一访问地址。
其中,预设对应关系包括上一访问地址与对应的预测访问地址的对应关系;其中,预设对应关系为上一访问地址与存储器反馈的预测访问地址的对应关系。预设对应关系可以是以表格形式的分支查找表保存在电子设备中。
子步骤A2:将下一访问地址确定为预测访问地址。
主机发送的访问请求和实际的程序有关,实际的程序可能是顺序执行,还可能是跳转执行,因此,在本申请中,当上一访问地址与对应的下一访问地址之间存在跳转执行也即是存在分支的情况下,电子设备可以基于上一访问地址和预设对应关系,确定上一访问地址对应的下一访问地址,可以提高生成的预测访问地址的命中率,并且提高程序的执行效率。
可选的,可以按照最近最少使用(Least Recently Used,LRU)、先进后出(FirstIn Last Out,FILO)、先进先出(First In First Out,FIFO)等算法动态更新预设对应关系。
在本申请中,可以根据主机情况和eFlash器件情况确定主机对应的主机接口以及eFlash接口,主机接口主要用来根据主机支持的协议进行信号变换、译码等,eFlash接口主要用来根据eFlash器件要求的时序与eFlash进行通信。
示例的,主机可以采用cortex MO CPU,则主机对应的主机接口可以选择两组AHB分别负责读取控制信号、当前地址信号和数据信号,AHB地址和数据位宽约为32位,总线时钟频率为64兆赫兹(MHZ),周期为15.625纳秒,eFlash的最大访问时间为30纳秒,并且考虑逻辑延迟、传输延迟、信号的建立与保持时间等因素,eFlash接口的访问周期可以设置为3个时钟周期,在eFlash器件的大小为64千字节(KiB),位宽是32位,也即是地址的有效位为14位,则需要控制主机接口将32位地址截短为14位的地址。
示例的,假设主机连续发送当前访问地址0x0400_0004,0x0400_001c,并且间隔一段时间再重复发送上述当前访问地址,共传输四次,对于不存在基于上一访问地址确定对应的预测访问地址的场景,参见图3,总共需要16个时钟周期完成上述四次传输。
示例的,假设地址选择对应的预设对应关系,可以是分支查找表,其深度为8,采用LRU算法对该预设对应关系进行更新,预设对应关系中包括跳转地址和原地址一一对应的关系,也即是,也即是,包括上一访问地址和预测访问地址的对应关系,假设主机连续发送当前访问地址0x0400_0004,0x0400_001c,并且间隔一段时间再重复发送上述当前访问地址,共传输四次,第一次传输(0x4)正常访问,参见图4,后续的主机访问有效之前产生预测访问地址0x08进行预读,实际访问为0x1c与0x8比较不相等,则认为是预测访问地址不匹配并且更新预设对应关系,后续的主机访问有效之前产生预测访问地址0x20预读,0x4再次访问,再次预测访问地址不匹配,再次更新预设对应关系,后续主机访问有效前预测访问地址0x1c预读,此时实际访问就是0x1c,预测访问地址匹配,则直接等待eFlash完成读取。最终总共需要15 个时钟周期完成。如果一开始预测访问地址和当前访问地址匹配,则总共只需要12周期。参见图5,示出了本发明实施例提供的一种分支查找表的示意图,如图5所示,在当前访问地址为{1C,04},其分支查找表中对应的预测访问地址为{0,d4}的情况下,直接输出{1C,04}中的相关数据。
示例的,图6示出了本发明实施例提供的一种确定预测访问地址的场景示意图,如图6所示,该场景包括步骤C1:在上一访问地址与对应的下一访问地址为上一访问地址的跳转地址的情况下,也即是,上一访问地址和预设对应关系中的存储地址匹配的情况下,则可以输出该跳转地址Y,步骤C2:若上一访问地址与对应的下一访问地址为上一访问地址的连续地址的情况下,则基于上一访问地址生成连续地址,将连续地址确定为预测访问地址。其中,跳转地址指的是在确定上一访问地址与对应的下一访问地址为上一访问地址的跳转地址的情况下,其中的下一访问地址,也即是可以将跳转地址确定为预测访问地址,预设对应关系中保存有当前访问地址对应的下一访问地址,其中,预设对应关系中的当前访问地址也即是历史访问地址。
在上一访问地址与对应的下一访问地址为上一访问地址的跳转地址的情况下,将下一访问地址确定为预测访问地址之后,执行步骤203。
步骤202:在上一访问地址与对应的下一访问地址为上一访问地址的连续地址的情况下,基于上一访问地址生成连续地址,将连续地址确定为预测访问地址。
在本申请中,上一访问地址与对应的下一访问地址之间不存在跳转地址,也即是不存在分支的情况下,电子设备基于上一访问地址产生上一访问地址对应的连续地址,将连续地址确定为预测访问地址。
在上一访问地址与对应的下一访问地址为上一访问地址的连续地址的情况下,基于上一访问地址生成连续地址,将连续地址确定为预测访问地址之后,执行步骤203。
步骤203:响应于主机发送的当前访问地址,在当前访问地址和预测访问地址匹配的情况下,根据预测访问地址控制存储器向主机反馈数据。
其中,当前访问地址和预测访问地址匹配,也即是预测访问地址预测正确,预测访问地址和当前访问地址相同,此时,电子设备可以控制存储器基于预测访问地址向主机反馈数据,反馈数据包括预测访问地址对应的相关数据,也即是电子设备可以提前一拍控制存储器向主机反馈数据,减小了周期数。
预测访问地址及反馈对应的数据均存储在缓存中,示例的,缓存可以使用32位数据+16位地址的形式作为一个缓存区,可以设置四个上述缓存区,每条缓存使用过后可以立刻清除,假设主机连续发送当前访问地址0x0400_0004,0x0400_001c,并且间隔一段时间再重复发送上述当前访问地址,共传输四次,并且预测访问地址存在分支,其对应关系保存在预设对应关系中,以及当前访问地址和预测访问地址匹配,则参见图7,只需要4个周期就可以完成数据读取,主机可以立刻从预设对应关系对应的缓存中获取数据。
综上,本发明实施例所提供的数据读取方法,能够在存储器读取数据的过程中使得读取每一个数据所需的周期数减小,最小减小至1,最大不大于读取数据的理论最短时间,在64兆赫兹的运行频率下,可以将数据读取速度提高大约啊18%。
在根据预测访问地址控制存储器向主机反馈数据之后,执行步骤206。
步骤204:在当前访问地址和预测访问地址不匹配的情况下,控制主机向存储器发送当前访问地址。
在本申请中,当前访问地址和预测访问地址不匹配,也即是,预测访问地址不正确,此时,电子设备可以控制主机向存储器再次发送当前访问地址,上述步骤204的具体实现过程可以包括以下子步骤:
子步骤B1:在当前访问地址和预测访问地址不匹配的情况下,控制存储器清空缓存数据。
其中,缓存数据中的单条缓存也会根据其单条缓存的使用次数、存储器内容更新等场景进行清空,存储器内容更新指的是依照先进先出顺序对历史内容进行清空。
在本申请中,可以通过先进先出(FIFO)缓存结构对缓存数据进行清空,还可以采用高度(cache)缓存结构对缓存数据进行清空,cache缓存结构可以单独控制每一个单条缓存。
示例的,图8示出了本发明实施例提供的一种缓存结构与原理的示意图,如图8所示,在接收到当前访问地址后,判断和预设对应关系中的地址是否匹配,若存在相等的地址,则输出该地址对应的缓存数据,若不存在相等的地址,则等待时钟周期,从eFlash中获得数据。其中,预设对应关系中存储有地址和缓存数据的对应关系,每个地址对应有相应的缓存数据。
子步骤B2:控制主机向存储器发送当前访问地址。
在当前访问地址和预测访问地址不匹配的情况下,表示上一次的预测失败,此时数据不在预测访问地址所对应的预测数据中,电子设备可以控制主机向存储器再次发送当前访问地址,控制存储器严格按照存储器的接口时序要求产生相关控制信号,等待存储器的数据响应。
在当前访问地址和预测访问地址不匹配的情况下,控制主机向存储器发送当前访问地址之后,执行步骤205。
步骤205:根据当前访问地址控制存储器向主机反馈数据。
电子设备可以控制主机再次发送当前访问地址,存储器响应于当前访问地址确定当前访问地址对应的数据,并将该数据发送至主机。
在根据当前访问地址控制存储器向主机反馈数据后,执行步骤206。
步骤206:根据当前访问地址与对应的预测访问地址更新预设对应关系。
预设对应关系包括当前访问地址与对应的预测访问地址的对应关系;其中,预设对应关系为当前访问地址与存储器反馈的预测访问地址的对应关系。
在本申请中,电子设备可以包括寄存器组、算法模块和指针寄存器,则当接收到当前访问地址的情况下,算法模块可以基于当前访问地址和当前访问地址对应的寄存器组的状态,生成更新使能和指针信号,指针寄存器可以基于该更新使能和指针信号控制更新预设对应关系,示例的,可以是控制更新包含有预设对应关系的分支查找表。
示例的,图9示出了本发明实施例提供的一种分支查找表存储结构与更新方式的场景示意图,如图9所示,电子设备在上一访问地址和当前访问地址匹配的情况下,可以基于当前访问地址和当前访问地址对应的寄存器组的状态,生成更新使能和指针信号,指针寄存器可以基于该更新使能和指针信号控制更新分支查找表,分支查找表可以由多组分别包含有:其他数据信息,跳转地址以及原地址组成的一组预设对应关系。其中,跳转地址指的是在确定上一访问地址与对应的下一访问地址为上一访问地址的跳转地址的情况下,其中的下一访问地址,也即是可以将跳转地址确定为预测访问地址。
一组寄存器组可以由当前访问地址,当前访问地址读出的数据,预测访问地址、该条缓存使用次数、该条缓存是否被占用等信息为拼接组成,多组这样的一组存器组组成预设对应关系的主体。
示例的,图10示出了本发明实施例提供的一种数据读取电路示意图,如图10所示,电子设备可以包括主机接口01、以及与主机接口01依次连接的预设对应关系单元02、缓存单元03、eFlash接口04、译码与分发地址单元05、匹配单元06、比较逻辑单元07、判断单元08、请求判断单元09。其中,主机接口01用来根据接收数据等;预设对应关系单元02用来基于主机发送的上一访问地址确定上一访问地址对应的预测访问地址;缓存单元03用来存储预设对应关系;eFlash接口04用来根据eFlash器件要求的时序与eFlash进行通信;译码与分发地址单元05用来根据主机支持的协议进行信号变换、译码等;匹配单元06用来判断当前访问地址和预测访问地址是否匹配;比较逻辑单元07用来在当前访问地址和预测访问地址匹配的情况下,根据预测访问地址控制存储器向主机反馈数据,还用来在当前访问地址和预测访问地址不匹配的情况下,控制主机向存储器发送当前访问地址;判断单元08用来在上一访问地址与对应的下一访问地址为上一访问地址的跳转地址的情况下,基于主机发送的上一访问地址以及预设对应关系,确定上一访问地址对应的下一访问地址;还用来在上一访问地址与对应的下一访问地址为上一访问地址的连续地址的情况下,基于上一访问地址生成连续地址,将连续地址确定为预测访问地址;请求判断单元09用来如果基于上一访问地址产生预测访问地址的过程已经完成,主机仍未发起新的访问请求,则电子设备获取该预测访问地址,并将预测访问地址及对应的相关数据存入缓存。
在本发明实施例中,当***暂停访问嵌入式闪存器件时,也即是当***处于空闲状态时,可以立刻自动基于上一访问地址产生预测访问地址,代替主机随时可以发送该预测访问地址,则可以提高主机的取指效率。并且,在在当前访问地址和预测访问地址匹配的情况下,根据预测访问地址控制存储器向主机反馈数据,在当前访问地址和预测访问地址不匹配的情况下,控制主机向存储器发送当前访问地址,可以提高主机取指的正确性,从而提高电子设备的整体性能和处理效率。
图11示出了本发明实施例提供的一种数据读取装置的结构示意图,该数据读取装置可以应用于具有存储器与主机的电子设备,如图11所示,该数据读取装置300包括:
地址确定模块301,用于在***处于空闲状态的情况下,基于主机发送的上一访问地址确定上一访问地址对应的预测访问地址;
第一反馈模块302,用于响应于主机发送的当前访问地址,在当前访问地址和预测访问地址匹配的情况下,根据预测访问地址控制存储器向主机反馈数据;
控制模块303,用于在当前访问地址和预测访问地址不匹配的情况下,控制主机向存储器发送当前访问地址。
可选的,地址确定模块包括:
第一确定子模块,用于在上一访问地址与对应的下一访问地址为上一访问地址的跳转地址的情况下,将下一访问地址确定为预测访问地址;
第二确定子模块,用于在上一访问地址与对应的下一访问地址为上一访问地址的连续地址的情况下,基于上一访问地址生成连续地址,将连续地址确定为预测访问地址。
可选的,第一确定子模块包括:
第一确定单元,用于在上一访问地址与对应的下一访问地址为上一访问地址的跳转地址的情况下,基于主机发送的上一访问地址以及预设对应关系,确定上一访问地址对应的下一访问地址;
第二确定单元,用于将下一访问地址确定为预测访问地址;
预设对应关系包括上一访问地址与对应的预测访问地址的对应关系;其中,预设对应关系为上一访问地址与存储器反馈的预测访问地址的对应关系。
可选的,该数据读取装置还包括:
第二反馈模块,用于根据当前访问地址控制存储器向主机反馈数据。
可选的,该数据读取装置还包括:
更新模块,用于根据当前访问地址与对应的预测访问地址更新预设对应关系;
预设对应关系包括当前访问地址与对应的预测访问地址的对应关系;其中,预设对应关系为当前访问地址与存储器反馈的预测访问地址的对应关系。
可选的,发送模块包括:
缓存清空子模块,用于在当前访问地址和预测访问地址不匹配的情况下,控制存储器清空缓存数据;
发送子模块,用于控制主机向存储器发送当前访问地址。
在本发明实施例中,当***暂停访问嵌入式闪存器件时,也即是当***处于空闲状态时,可以立刻自动基于上一访问地址产生预测访问地址,代替主机随时可以发送该预测访问地址,则可以提高主机的取指效率。并且,在在当前访问地址和预测访问地址匹配的情况下,根据预测访问地址控制存储器向主机反馈数据,在当前访问地址和预测访问地址不匹配的情况下,控制主机向存储器发送当前访问地址,可以提高主机取指的正确性,从而提高电子设备的整体性能和处理效率。
本发明还提供了一种数据读取装置,应用于具有存储器与主机的电子设备,所述装置包括:处理器以及与处理器耦合的通信接口;所述处理器用于运行计算机程序或指令,以实现图1至图10的方法实施例中数据读取方法实现的各个过程,为避免重复,这里不再赘述。
本发明实施例中的数据读取装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personaldigital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(NetworkAttached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本发明实施例不作具体限定。
本发明实施例中的数据读取装置可以为具有操作***的装置。该操作***可以为安卓(Android)操作***,可以为ios操作***,还可以为其他可能的操作***,本发明实施例不作具体限定。
图12示出了本发明实施例提供的一种电子设备的硬件结构示意图。如图12所示,该电子设备400包括处理器410。
如图12所示,上述处理器410可以是一个通用中央处理器(central processingunit,CPU),微处理器,专用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
如图12所示,上述电子设备400还可以包括通信线路440。通信线路440可包括一通路,在上述组件之间传送信息。
可选的,如图12所示,上述电子设备还可以包括通信接口420。通信接口420可以为一个或多个。通信接口420可使用任何收发器一类的装置,用于与其他设备或通信网络通信。
可选的,如图12所示,该电子设备还可以包括存储器430。存储器430用于存储执行本发明方案的计算机执行指令,并由处理器来控制执行。处理器用于执行存储器中存储的计算机执行指令,从而实现本发明实施例提供的方法。
如图12所示,存储器430可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器430可以是独立存在,通过通信线路440与处理器410相连接。存储器430也可以和处理器410集成在一起。
可选的,本发明实施例中的计算机执行指令也可以称之为应用程序代码,本发明实施例对此不作具体限定。
在具体实现中,作为一种实施例,如图12所示,处理器410可以包括一个或多个CPU,如图12中的CPU0和CPU1。
在具体实现中,作为一种实施例,如图12所示,终端设备可以包括多个处理器,如图12中的第一处理器4101和第二处理器4102。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。
图13是本发明实施例提供的芯片的结构示意图。如图13所示,该芯片500包括一个或两个以上(包括两个)处理器410。
可选的,如图13所示,该芯片还包括通信接口420和存储器430,存储器430可以包括只读存储器和随机存取存储器,并向处理器提供操作指令和数据。存储器的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,NVRAM)。
在一些实施方式中,如图13所示,存储器430存储了如下的元素,执行模块或者数据结构,或者他们的子集,或者他们的扩展集。
在本发明实施例中,如图9所示,通过调用存储器存储的操作指令(该操作指令可存储在操作***中),执行相应的操作。
如图13所示,处理器410控制终端设备中任一个的处理操作,处理器410还可以称为中央处理单元(central processing unit,CPU)。
如图13所示,存储器430可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器430的一部分还可以包括NVRAM。例如应用中存储器、通信接口以及存储器通过总线***耦合在一起,其中总线***除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图13中将各种总线都标为总线***540。
如图13所示,上述本发明实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digital signal processing,DSP)、ASIC、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
一方面,提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令被运行时,实现上述实施例中由终端设备执行的功能。
一方面,提供一种芯片,该芯片应用于终端设备中,芯片包括至少一个处理器和通信接口,通信接口和至少一个处理器耦合,处理器用于运行指令,以实现上述实施例中由…执行的功能。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、终端、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (8)
1.一种数据读取方法,其特征在于,应用于具有存储器与主机的电子设备,所述方法包括:
在***处于空闲状态的情况下,基于主机发送的上一访问地址确定所述上一访问地址对应的预测访问地址;
响应于所述主机发送的当前访问地址,在所述当前访问地址和所述预测访问地址匹配的情况下,根据所述预测访问地址控制所述存储器向所述主机反馈数据;
在所述当前访问地址和所述预测访问地址不匹配的情况下,控制所述主机向所述存储器发送所述当前访问地址。
2.根据权利要求1所述的方法,其特征在于,所述基于主机发送的上一访问地址确定所述上一访问地址对应的预测访问地址,包括:
在所述上一访问地址与对应的下一访问地址为所述上一访问地址的跳转地址的情况下,将所述下一访问地址确定为所述预测访问地址;
在所述上一访问地址与对应的下一访问地址为所述上一访问地址的连续地址的情况下,基于所述上一访问地址生成连续地址,将所述连续地址确定为所述预测访问地址。
3.根据权利要求2所述的方法,其特征在于,所述将所述下一访问地址确定为所述预测访问地址,包括:
基于所述上一访问地址以及预设对应关系,确定所述上一访问地址对应的所述下一访问地址;将所述下一访问地址确定为所述预测访问地址;
所述预设对应关系包括所述访问地址与对应的所述预测访问地址的对应关系;其中,所述预设对应关系为所述访问地址与存储器反馈的所述预测访问地址的对应关系。
4.根据权利要求1所述的方法,其特征在于,所述控制所述主机向所述存储器发送所述当前访问地址后,所述方法还包括:
根据所述当前访问地址控制所述存储器向所述主机反馈数据。
5.根据权利要求4所述的方法,其特征在于,所述根据所述当前访问地址控制所述存储器向所述主机反馈数据后,或,根据所述预测访问地址控制所述存储器向所述主机反馈数据后,所述方法还包括:
根据所述当前访问地址与对应的预测访问地址更新所述预设对应关系;
所述预设对应关系包括所述当前访问地址与对应的所述预测访问地址的对应关系;其中,预设对应关系为所述当前访问地址与存储器反馈的所述预测访问地址的对应关系。
6.根据权利要求1~5任一项所述的方法,其特征在于,所述在所述当前访问地址和所述预测访问地址不匹配的情况下,控制所述主机向所述存储器发送所述当前访问地址,包括:
在所述当前访问地址和所述预测访问地址不匹配的情况下,控制所述存储器清空缓存数据;
控制所述主机向所述存储器发送所述当前访问地址。
7.一种数据读取装置,其特征在于,应用于具有存储器与主机的电子设备,所述装置包括:处理器以及与处理器耦合的通信接口;所述处理器用于运行计算机程序或指令,以实现如权利要求1~6任一项所述数据读取方法。
8.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现权利要求1至6任一项所述的数据读取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110399917.3A CN112799723A (zh) | 2021-04-14 | 2021-04-14 | 一种数据读取方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110399917.3A CN112799723A (zh) | 2021-04-14 | 2021-04-14 | 一种数据读取方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112799723A true CN112799723A (zh) | 2021-05-14 |
Family
ID=75811389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110399917.3A Pending CN112799723A (zh) | 2021-04-14 | 2021-04-14 | 一种数据读取方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112799723A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114328312A (zh) * | 2022-03-08 | 2022-04-12 | 深圳市航顺芯片技术研发有限公司 | 数据处理方法、计算机设备及可读存储介质 |
CN115114190A (zh) * | 2022-07-20 | 2022-09-27 | 上海合见工业软件集团有限公司 | 基于预测逻辑的sram数据读取*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060107024A1 (en) * | 2004-11-18 | 2006-05-18 | Sun Microsystems, Inc. | Mechanism and method for determining stack distance of running software |
CN105051684A (zh) * | 2013-03-14 | 2015-11-11 | 桑迪士克科技股份有限公司 | 用于预测和改进启动序列的***和方法 |
CN107885530A (zh) * | 2016-11-14 | 2018-04-06 | 上海兆芯集成电路有限公司 | 提交高速缓存行的方法和指令高速缓存 |
CN109947667A (zh) * | 2017-12-21 | 2019-06-28 | 华为技术有限公司 | 数据访问预测方法和装置 |
CN111651120A (zh) * | 2020-04-28 | 2020-09-11 | 中国科学院微电子研究所 | 预取数据的方法及装置 |
-
2021
- 2021-04-14 CN CN202110399917.3A patent/CN112799723A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060107024A1 (en) * | 2004-11-18 | 2006-05-18 | Sun Microsystems, Inc. | Mechanism and method for determining stack distance of running software |
CN105051684A (zh) * | 2013-03-14 | 2015-11-11 | 桑迪士克科技股份有限公司 | 用于预测和改进启动序列的***和方法 |
CN107885530A (zh) * | 2016-11-14 | 2018-04-06 | 上海兆芯集成电路有限公司 | 提交高速缓存行的方法和指令高速缓存 |
CN109947667A (zh) * | 2017-12-21 | 2019-06-28 | 华为技术有限公司 | 数据访问预测方法和装置 |
CN111651120A (zh) * | 2020-04-28 | 2020-09-11 | 中国科学院微电子研究所 | 预取数据的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114328312A (zh) * | 2022-03-08 | 2022-04-12 | 深圳市航顺芯片技术研发有限公司 | 数据处理方法、计算机设备及可读存储介质 |
CN115114190A (zh) * | 2022-07-20 | 2022-09-27 | 上海合见工业软件集团有限公司 | 基于预测逻辑的sram数据读取*** |
CN115114190B (zh) * | 2022-07-20 | 2023-02-07 | 上海合见工业软件集团有限公司 | 基于预测逻辑的sram数据读取*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6810444B2 (en) | Memory system allowing fast operation of processor while using flash memory incapable of random access | |
CN108228498B (zh) | 一种dma控制装置和图像处理器 | |
CN112799723A (zh) | 一种数据读取方法、装置及电子设备 | |
US20060277545A1 (en) | Stream processor including DMA controller used in data processing apparatus | |
US10007613B2 (en) | Reconfigurable fetch pipeline | |
US7299341B2 (en) | Embedded system with instruction prefetching device, and method for fetching instructions in embedded systems | |
US20230267079A1 (en) | Processing apparatus, method and system for executing data processing on a plurality of channels | |
US6581119B1 (en) | Interrupt controller and a microcomputer incorporating this controller | |
US20060265532A1 (en) | System and method for generating bus requests in advance based on speculation states | |
CN115905046B (zh) | 网卡驱动数据包处理方法、装置、电子设备及存储介质 | |
CN114817965A (zh) | 基于多算法ip核实现msi中断处理的高速加解密***及方法 | |
US20080005390A1 (en) | Dma controller, system on chip comprising such a dma controller, method of interchanging data via such a dma controller | |
CN116467235B (zh) | 一种基于dma的数据处理方法、装置、电子设备及介质 | |
WO2003003228A1 (en) | Memory control for multiple read requests | |
TW200417914A (en) | Interrupt-processing system for shortening interrupt latency in microprocessor | |
KR100532417B1 (ko) | 디지털 신호 처리장치의 저전력 소비형 캐시 메모리 장치및 이에 대한 제어방법 | |
US7185122B2 (en) | Device and method for controlling data transfer | |
KR102462578B1 (ko) | 주변장치 정보 프리페치를 이용한 인터럽트 제어기 및 이를 통한 인터럽트 처리 방법 | |
CN114924792A (zh) | 指令译码单元、指令执行单元及相关装置和方法 | |
US7584328B2 (en) | Method, apparatus, and a system for efficient context switch | |
CN116136790A (zh) | 任务处理方法和装置 | |
CN107807888B (zh) | 一种用于soc架构的数据预取***及其方法 | |
CN111506530A (zh) | 中断管理***及其管理方法 | |
KR102260820B1 (ko) | 대칭적 인터페이스 기반 인터럽트 신호 처리 장치 및 방법 | |
US12039294B2 (en) | Device and method for handling programming language function |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210514 |