CN109426623A - 一种读取数据的方法及装置 - Google Patents
一种读取数据的方法及装置 Download PDFInfo
- Publication number
- CN109426623A CN109426623A CN201710757725.9A CN201710757725A CN109426623A CN 109426623 A CN109426623 A CN 109426623A CN 201710757725 A CN201710757725 A CN 201710757725A CN 109426623 A CN109426623 A CN 109426623A
- Authority
- CN
- China
- Prior art keywords
- data
- read request
- main equipment
- eflash
- read
- 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
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000004891 communication Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 11
- 238000013461 design Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 4
- 238000000151 deposition Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种读取数据的方法及装置,包括:根据接收到的主设备的读请求,确定预设的缓存(buffer)中是否存储对应于读请求的数据;预设的缓存中存储有对应于读请求的数据时,将缓存中对应于读请求的数据反馈给主设备。本发明实施例缩短了主设备读取数据的等待时间长、提升了数据访问效率。
Description
技术领域
本文涉及但不限于片上***(SOC)技术,尤指一种读取数据的方法及装置。
背景技术
对低端SOC技术,尤其是物联网和微控制单元(MCU)领域,基于成本考虑,双倍速率同步动态随机存储器(DDR)、嵌入式多媒体卡(EMMC)等一般不被使用;相对于DDR和EMMC等,小容量静态随机存取存储器(SRAM)和内置嵌入式闪存(eflash)构成的存储组合适用于物联网和微控制单元(MCU)等低端SOC。
eflash是非挥发性的,适宜于保存程序和数据;同时,eflash器件的读访问时间较短,适宜于随机读,保存在eflash里的程序可以直接被处理器执行;因此,基于eflash的存储方案相比外置存储方案在整体解决方案层面可以少一块芯片。另外,eflash具有非常高的集成度,基于eflash的存储方案需要的随机存取存储器(RAM)资源大大减少,相比其它方案更具优势。eflash读速度标称在30~50兆赫兹(Mhz)之间,足以匹配100Mhz量级的处理器对读性能的要求;因此,在使用时一般用eflash来存放程序代码,搭配小容量的SRAM来存放数据。
在处理器运行频率较高的场景,特别是多个主设备(处理器、直接内存存取DMA等)通过多层高级高性能总线(AHB)来共享访问eflash时,容易出现eflash读访问次数增大、主设备等待时间长和访问效率降低等问题,通过AHB共享访问eflash的访问方式影响了***的工作性能。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供一种读取数据的方法及装置,能够缩短主设备读取数据的等待时间长、提升数据访问效率。
本发明实施例提供了一种读取数据的方法,包括:
根据接收到的主设备的读请求,确定预设的缓存buffer中是否存储对应于读请求的数据;
预设的缓存中存储有对应于读请求的数据时,将缓存中对应于读请求的数据反馈给主设备。
可选的,所述预设的缓存中未存储有对应于读请求的数据时,所述方法还包括:
根据接收到的所述读请求从内置嵌入式闪存eflash中读取对应于所述读请求的数据,并将读取到的数据反馈至相应的主设备。
可选的,该方法之前还包括:
为每一个主设备分别配置相应的buffer。
可选的,所述缓存的每一个存储单元包括:地址域、数据域和标志域;
其中,所述地址域和数据域用于存储地址数据对,所述标志域用来标识地址数据对是否有效。
可选的,所述从eflash中读取并反馈对应于读请求的数据时,所述方法还包括:
将反馈给主设备的所述对应于读请求的数据,存储在主设备对应的所述缓存中。
可选的,其特征在于,所述eflash的通信总线与所述缓存的通信总线的位宽相等,且为主设备使用的高级高性能总线(AHB)的位宽的2n倍;
其中,n为大于等于1的整数。
可选的,所述方法还包括:从所述eflash中读取高速缓存数据,并在缓存中缓存。
可选的,所述根据接收到的所述读请求从eflash中读取对应于所述读请求的数据包括:
接收到两个或两个以上主设备的读请求时,根据预先设置的优先级策略从所述eflash中读取对应于读请求的数据。
可选的,所述从eflash中读取对应于读请求的数据包括:
在eflash对应于各主设备的端口上设置相应的计数器,根据主设备涉及业务的优先级及预先设置的仲裁策略进行计数器计数;
根据设置的所述计数器的计数结果,从eflash中读取对应于各主设备的读请求的数据。
可选的,所述根据主设备涉及业务的优先级及预先设置的仲裁策略进行计数器计数包括:
根据主设备涉及业务的优先级设计各计数器相应的初始值;
接收到两个或两个以上主设备的读请求时,如果主设备的读请求被仲裁进行数据读取,则计数器数值跳变至预设数值;如果主设备的读请求未被仲裁进行数据读取,根据主设备涉及业务的优先级对计数器数值按照预设幅度进行增加处理。
可选的,所述根据计数器的计数结果从eflash中根据各主设备的读请求读取数据包括:
确定仅存在取值最大的一个计数器时,仲裁对该计数器对应的主设备的读请求进行数据读取;
确定存在取值最大的两个或两个以上计数器时,选择任意一个计数器,仲裁对选择的计数器对应的主设备的读请求进行数据读取。
另一方面,本发明实施例还提供一种读取数据的装置,包括:确定单元和反馈单元;其中,
确定单元用于:根据接收到的主设备的读请求,确定预设的缓存中是否存储对应于读请求的数据;
反馈单元用于:确定单元确定预设的缓存中存储有对应于读请求的数据时,将缓存中对应于读请求的数据反馈给主设备。
可选的,所述反馈单元还用于:
根据接收到的所述读请求从eflash中读取对应于所述读请求的数据,并将读取到的数据反馈至相应的主设备。
可选的,所述eflash的通信总线与所述缓存的通信总线的位宽相等,且为主设备使用的高级高性能总线(AHB)的位宽的2n倍;
其中,n为大于等于1的整数。
可选的,所述装置还包括高速缓存单元,用于从所述eflash中读取高速缓存数据,并在缓存中缓存。
再一方面,本发明实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行上述读取数据的方法。
还一方面,本发明实施例还提供一种终端,包括:存储器和处理器;其中,
处理器被配置为执行存储器中的程序指令;
程序指令在处理器读取执行以下操作:
根据接收到的主设备的读请求,确定预设的缓存buffer中是否存储对应于读请求的数据;
预设的缓存中存储有对应于读请求的数据时,将缓存中对应于读请求的数据反馈给主设备。
与相关技术相比,本申请技术方案包括:根据接收到的主设备的读请求,确定预设的缓存(buffer)中是否存储对应于读请求的数据;预设的缓存中存储有对应于读请求的数据时,将缓存中对应于读请求的数据反馈给主设备。本发明实施例缩短了主设备读取数据的等待时间长、提升了数据访问效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例读取数据的方法的流程图;
图2为本发明实施例读取数据的装置的结构框图;
图3为本发明应用示例装置的结构框图;
图4为本应用示例缓存的组成结构示意图;
图5为采用相关技术进行数据读取的示意图;
图6为本应用示例进行数据读取的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本发明实施例读取数据的方法的流程图,如图1所示,包括:
步骤100、根据接收到的主设备的读请求,确定预设的缓存buffer中是否存储对应于读请求的数据;
需要说明的是,缓存中是否包含对应于读请求的数据可以通过相关技术进行确定,本发明实施例通过预设的缓存进行数据读取,提高了数据读取速度。例如、通过数据中包含的地址域、标志域等确定是否存储有对应于读请求的数据。
可选的,预设的缓存中未存储有对应于读请求的数据时,本发明实施例方法还包括:
根据接收到的读请求从内置嵌入式闪存eflash中读取对应于所述读请求的数据,并将读取到的数据反馈至相应的主设备。
可选的,本发明实施例步骤100之前还包括:
为每一个主设备分别配置相应的buffer。
需要说明的是,本发明实施例为每一个主设备分配独立的用于缓存数据的buffer,即为主设备1设置buffer1、为主设备2设置buffer2、以此类推。设置的缓存的大小可以由本领域技术人员根据主设备涉及的业务进行设定。
可选的,本发明实施例缓存的每一个存储单元包括:地址域、数据域和标志域;
其中,所述地址域和数据域用于存储地址数据对,所述标志域用来标识地址数据对是否有效。
可选的,本发明实施例从eflash中读取并反馈对应于读请求的数据时,所述方法还包括:
将反馈给主设备的所述对应于读请求的数据,存储在主设备对应的所述缓存中。
本发明实施例将从eflash中读取的数据在缓存中进行缓存,后续再接收到读取该数据的读请求时,可以从缓存中直接获取。
可选的,本发明实施例,eflash的通信总线与缓存的通信总线的位宽相等,且为主设备使用的高级高性能总线(AHB)的位宽的2n倍;
其中,n为大于等于1的整数。
本发明实施例,eflash的通信总线与缓存的通信总线的位宽可以通过相关技术进行定制实现。通过增大的位宽可以提高数据的传输速率。
可选的,本发明实施例根据接收到的所述读请求从eflash中读取对应于所述读请求的数据包括:
接收到两个或两个以上主设备的读请求时,根据预先设置的优先级策略从所述eflash中读取对应于读请求的数据。
可选的,本发明实施例从eflash中读取对应于读请求的数据包括:
在eflash对应于各主设备的端口上设置相应的计数器,根据主设备涉及业务的优先级及预先设置的仲裁策略进行计数器计数;
根据设置的所述计数器的计数结果,从eflash中读取对应于各主设备的读请求的数据。
需要说明的是,主设备涉及业务的优先级可以由本领域技术人员根据业务类型及属性进行分析确定;以计数器的取值大时,主设备的读请求优先处理为例,主设备涉及的业务优先级高时,可以设置计数器的初始值高,这样来自高优先级的业务的主设备的读请求会被优先处理。
可选的,本发明实施例根据主设备涉及业务的优先级及预先设置的仲裁策略进行计数器计数包括:
根据主设备涉及业务的优先级设计各计数器相应的初始值;
接收到两个或两个以上主设备的读请求时,如果主设备的读请求被仲裁进行数据读取,则计数器数值跳变至预设数值;如果主设备的读请求未被仲裁进行数据读取,根据主设备涉及业务的优先级对计数器数值按照预设幅度进行增加处理。
需要说明的是,本发明实施例给每个计数器的初始值可以是一样的;例如、都是0;当然,初始值也可以根据主设备涉及业务的优先级的不同设置为不同的取值。本发明实施例可以根据主设备涉及的业务的优先级设置各计数器的上下限范围,可以通过寄存器来配置的,即可以在运行过程中重新配置。例如、设置对应于处理器1设置计数器1的下限是0、上限是7;获得一次仲裁就跳回0;否则,每次失去仲裁加1直到7;对应于处理器2设置计数器2的下限是8、上限是15;此时,处理器2对应的端口的优先级总是高于处理器1对应的端口,只有在第二个口没有访问时第一个口才有可能赢得仲裁。主设备涉及业务的优先级不同时,进行计数器数值增加的预设幅度可以相同,也可以不同;理论上,主设备涉及业务的优先级越高,计数器增加的数值的预设幅度约大。
另外,预设数值可以包括:初始值或预先设定的下限值。
可选的,本发明实施例根据计数器的计数结果从eflash中根据各主设备的读请求读取数据包括:
确定仅存在取值最大的一个计数器时,仲裁对该计数器对应的主设备的读请求进行数据读取;
确定存在取值最大的两个或两个以上计数器时,选择任意一个计数器,仲裁对选择的计数器对应的主设备的读请求进行数据读取。
需要说明的是,本发明实施例,存在两个或两个以上主设备的计数器的取值均最大且相同时,可以从中选择一个主设备的读请求进行数据读取处理;选择方式可以随机选择;如果计数器有编码或其他信息,可以根据编码或其他信息的排序进行按序选择。
步骤101、预设的缓存中存储有对应于读请求的数据时,将缓存中对应于读请求的数据反馈给主设备。
需要说明的是,本发明实施例确定缓存中存储有对应于读请求的数据时,如何根据读取并反馈数据至主设备可以采用本领域技术人员的惯用技术手段实现。
可选的,本发明实施例方法还包括:从所述eflash中读取高速缓存数据,并在缓存中缓存。
本发明实施例将高速缓存数据直接预先存储在各主设备对应的缓存上,进一步提高了主设备读取高速缓存数据的速率,提升了数据读取的效率;高速缓存数据包括根据处理器的运行特征预先读取的数据,包括处理器运行时高频率读取的运行数据。
与相关技术相比,本申请技术方案包括:根据接收到的主设备的读请求,确定预设的缓存(buffer)中是否存储对应于读请求的数据;预设的缓存中存储有对应于读请求的数据时,将缓存中对应于读请求的数据反馈给主设备。本发明实施例缩短了主设备读取数据的等待时间长、提升了数据访问效率。
图2为本发明实施例读取数据的装置的结构框图,如图2所示,包括:确定单元和反馈单元;其中,
确定单元用于:根据接收到的主设备的读请求,确定预设的缓存中是否存储对应于读请求的数据;
反馈单元用于:确定单元确定预设的缓存中存储有对应于读请求的数据时,将缓存中对应于读请求的数据反馈给主设备。
可选的,所述反馈单元还用于:
根据接收到的所述读请求从eflash中读取对应于所述读请求的数据,并将读取到的数据反馈至相应的主设备。
可选的,所述装置还包括设置单元:用于为每一个主设备分别配置相应的buffer。
可选的,所述缓存的每一个存储单元包括:地址域、数据域和标志域;
其中,所述地址域和数据域用于存储地址数据对,所述标志域用来标识地址数据对是否有效。
可选的,所述装置还包括缓存处理单元,用于将反馈给主设备的所述对应于读请求的数据,存储在主设备对应的所述缓存中。
可选的,所述eflash的通信总线与所述缓存的通信总线的位宽相等,且为主设备使用的高级高性能总线(AHB)的位宽的2n倍;
其中,n为大于等于1的整数。
可选的,所述反馈单元用于根据接收到的所述读请求从eflash中读取对应于所述读请求的数据包括:
接收到两个或两个以上主设备的读请求时,根据预先设置的优先级策略从所述eflash中读取对应于读请求的数据。
可选的,所述反馈单元用于根据预先设置的优先级策略从所述eflash中读取对应于读请求的数据包括:
在eflash对应于各主设备的端口上设置相应的计数器,根据主设备涉及业务的优先级及预先设置的仲裁策略进行计数器计数;
根据设置的所述计数器的计数结果,从eflash中读取对应于各主设备的读请求的数据。
需要说明的是,本发明实施例可以将计数器设置在仲裁器内部,针对每个对应于主设备的端口各有一个计数器。
可选的,所述反馈单元用于根据预先设置的优先级策略从所述eflash中读取对应于读请求的数据包括:
根据主设备涉及业务的优先级设计各计数器相应的初始值;
接收到两个或两个以上主设备的读请求时,如果主设备的读请求被仲裁进行数据读取,则计数器数值跳变至预设数值;如果主设备的读请求未被仲裁进行数据读取,根据主设备涉及业务的优先级对计数器数值按照预设幅度进行增加处理。
可选的,所述反馈单元用于根据计数器的计数结果从eflash中根据各主设备的读请求读取数据包括:
确定仅存在取值最大的一个计数器时,仲裁对该计数器对应的主设备的读请求进行数据读取;
确定存在取值最大的两个或两个以上计数器时,选择任意一个计数器,仲裁对选择的计数器对应的主设备的读请求进行数据读取。
本发明实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行上述读取数据的方法。
本发明实施例还提供一种终端,包括:存储器和处理器;其中,
处理器被配置为执行存储器中的程序指令;
程序指令在处理器读取执行以下操作:
根据接收到的主设备的读请求,确定预设的缓存buffer中是否存储对应于读请求的数据;
预设的缓存中存储有对应于读请求的数据时,将缓存中对应于读请求的数据反馈给主设备。
以下通过应用示例对本发明实施例方法进行清楚详细的说明,应用示例仅用于陈述本发明,并不用于限定本发明的保护范围。
应用示例
图3为本发明应用示例装置的结构框图,如图3所示,AHB 1x2桥、预先设置的buffer、仲裁器、控制器、eflash;其中,
AHB 1x2桥用于:根据访问地址决定是访问eflash还是其它资源;仲裁器可以用于加载设置上述实施例中提到的预先设置的优先级策略;控制器用于根据仲裁器的运行结果进行数据读取;eflash的通信总线与buffer的通信总线的位宽相等,且为AHB 1x2的位宽的2n倍,n为大于等于1的整数;具体的:
AHB 1x2桥是SOC***中已有的总线组件,用于访问两个不同的从设备(slave)器件。两个从设备的地址空间互斥,本应用示例一个口访问eflash,其它***资源都通过另一个口访问。本应用示例中,可以和相关技术实现兼容,即可以与现有的数据读取的***兼容,互不影响;AHB 1x2桥并不直接访问eflash,在处理过程中经过上述buffer、仲裁器、控制器。本应用示例设置AHB 1x2桥仅用于一些访存性能要求非常高的主设备,这些高性能主设备的AHB总线口直接经过AHB1x2桥来连接buffer以访问eflash。访存性能要求不太高的主设备可能先经过传统的AHB总线***再连接到buffer。
在eflash位宽大于AHB位宽时,缓存在buffer中的数据在后续中将很大概率被接下来的访问读取。因为buffer是由寄存器搭建的,访问速度比eflash要快很多,所以直接由buffer返回数据,而不是每次都从eflash里面读取数据,减少了访问eflash的次数,缩短了主设备等待时间,在共享eflash的场景中减少了访问冲突,加速了其它主设备访问eflash的速度。另外,本应用示例利用buffer访问速度快的特征主设备业务涉及的高速缓存数据预先存储在缓存中,提高了缓存命中率。降低控制器根据仲裁器的仲裁结果的处理量,提升数据读取的处理效率。
图4为本应用示例缓存的组成结构示意图,如图4所示,缓存通过位宽为32比特的AHB总线与主设备相连。本应用示例中eflash的写操作可以通过控制器的***总线(APB)接口间接完成,不支持通过buffer来直接写eflash。buffer只处理AHB口进来的读操作,对于AHB口来的写操作做无效处理。buffer与仲裁器之间通过内部自定义的大位宽总线相连;如果,buffer与仲裁器构建多层***时,部件之间的互联也采用该自定义大位宽总线;其设计思想是,buffer到eflash器件之间的通信没有位宽转换逻辑以保证高效的将数据传递到buffer。缓存的每个存储单元分三个域:地址域、数据域、标志域。地址域和数据域用来存储一个地址数据对,标志域用来指示该地址数据对是否有效。有一个输入的清除信号用来将该部件所有存储单元的标志域置为无效。当收到AHB口发来的读请求时,检查所有存储单元的地址域判断该读地址是否已经在缓存中,如果在缓存中,则命中,在命中的存储单元的数据域里取出跟读地址对应的32位数据返回给主设备。未命中时,通过内部自定义大位宽总线向eflash控制器发起读请求。
本应用示例通过仲裁器仲裁来自多个主设备的数据读取请求,确定对哪个读请求进行处理。仲裁器可以设置不同主设备的优先级;例如,仲裁器通过计数器进行各主设备的读请求的处理,在主设备涉及业务优先级高时,可以设置计数器的初始值较大;这里,初始值可以设定为计数器的下限值;另外,计数器进行计数时,在主设备涉及业务优先级高时,计数器的增加幅度相对更大;本应用示例也可以设置各主设备对应的计数器采用相同的增加幅度进行计数增加。本应用示例仲裁器与为每一个主设备设置的buffer相连的端口都有一个计数器,该计数器可以根据主设备涉及的业务的优先级设定计数器的初始值,但主设备发送读请求时,仲裁器根据计数器中的取值进行读请求的仲裁;本应用示例仲裁器的工作机制可以包括:总线空闲时处理读请求,总线忙时挂起请求;处理读请求时如果只有一个主设备发起了读请求则该主设备自动获得仲裁,仲裁逻辑给该主设备对应的计数器回送一个获得仲裁脉冲,收到获得仲裁脉冲的计数器载入设定的初始值,其它端口的计数器值保持不变。当多个设备同时访问时则比较这些设备对应的计数器当前计数值,计数值最大的那个主设备获得读请求的仲裁,即对计数值最大的主设备的读请求进行处理;当有多个计数器的计数值相等且最大时,端口索引最小的那个主设备获得仲裁。获得仲裁的计数器将收到一个获得仲裁脉冲,计数器载入初始值;失去仲裁的计数器将收到一个失去仲裁脉冲,判断当前计数值是否已达上限,没有达到上限则计数值加预设增加幅度的数值;当计数值已达上限时,保持当前计数值不变;同时该读请求会挂起并参与后续仲裁;没有请求的端口优先级计数器计数值保持当前值不变。通过设置每个端口优先级的上限值和下限值可以达到设定固定优先级的目的。其中,初始值可以是计数器计数时允许的最小值。
控制器,根据仲裁器仲裁出的对哪个读请求进行数据读取处理;本应用示例将数据根据读请求反馈给主设备时,同时在缓存中进行缓存。
本应用示例eflash,位宽可以是32/64/128/256位。相关技术中,常见的低端SOC都用的32位AHB总线***,本应用示例适宜选择64/128/256位的大位宽eflash配合上述部件组成一个eflash数据读取装置。
本应用示例,减少了主设备的等待时间,减少了多个主机间的访问冲突,提高了eflash读访问效率,提升了***整体性能。另外,主设备执行速度加快意味着业务处理的时间缩短,处理器可以更快进入睡眠以节省整机功耗。
控制器与仲裁器之间通过自定义总线相连,用于处理读访问请求;本应用示例涉及的自定义总线可以参照eflash和buffer的通信总线的位宽进行设置。本应用示例eflash的擦写等操作使用传统的间接操作的机制,控制器另有一组APB接口用于接收***的擦写等操作指令。图5为采用相关技术进行数据读取的示意图,如图5所示,eflash位宽128位,假设四个工作时钟周期可以返回读数据。如果某个主设备(CPU、DMA等)连续访问eflash空间的前16个字节,访问顺序为0x00-0x04-0x08-0x0c,在没有访问冲突的情况下相关技术由于没有缓存存在,所以四次访问每次都需要4个周期,总用时16个周期。
图6为本应用示例进行数据读取的示意图,如图6所示,当访问0x00地址时,控制器会在4个周期后把返回的128位数据缓存在buffer中,连同数据一块存放的是该128位单元对应的一个16字节对齐地址以及有效标志。缓存的同时eflash读数据总线上的数据对应0x00地址的那四个字节会透传到主设备。当主设备再次访问0x04-0x08-0x0c时,因为这几个地址已经在buffer中有缓存,所以后续三次访问可以分别在一个周期内完成,主设备的四次访问总用时7个周期。在该例中,对于该主设备来说总访问用时大大减小。该例中该主设备对eflash的访问次数也由4次减少到1次,对于多主设备共享访问eflash而言,由于每个主设备访问eflash的次数大大减少,主设备间的访问冲突也会大大减少,提高了整个***的访问效率。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的每个模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明不限制于任何特定形式的硬件和软件的结合。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (18)
1.一种读取数据的方法,其特征在于,包括:
根据接收到的主设备的读请求,确定预设的缓存buffer中是否存储对应于读请求的数据;
预设的缓存中存储有对应于读请求的数据时,将缓存中对应于读请求的数据反馈给主设备。
2.根据权利要求1所述的方法,其特征在于,所述预设的缓存中未存储有对应于读请求的数据时,所述方法还包括:
根据接收到的所述读请求从内置嵌入式闪存eflash中读取对应于所述读请求的数据,并将读取到的数据反馈至相应的主设备。
3.根据权利要求1所述的方法,其特征在于,该方法之前还包括:
为每一个主设备分别配置相应的buffer。
4.根据权利要求1所述的方法,其特征在于,所述缓存的每一个存储单元包括:地址域、数据域和标志域;
其中,所述地址域和数据域用于存储地址数据对,所述标志域用来标识地址数据对是否有效。
5.根据权利要求3所述的方法,其特征在于,所述从eflash中读取并反馈对应于读请求的数据时,所述方法还包括:
将反馈给主设备的所述对应于读请求的数据,存储在主设备对应的所述缓存中。
6.根据权利要求1~5任一项所述的方法,其特征在于,所述eflash的通信总线与所述缓存的通信总线的位宽相等,且为主设备使用的高级高性能总线(AHB)的位宽的2n倍;
其中,n为大于等于1的整数。
7.根据权利要求1~5任一项所述的方法,其特征在于,所述方法还包括:从所述eflash中读取高速缓存数据,并在缓存中缓存。
8.根据权利要求2所述的方法,其特征在于,所述根据接收到的所述读请求从eflash中读取对应于所述读请求的数据包括:
接收到两个或两个以上主设备的读请求时,根据预先设置的优先级策略从所述eflash中读取对应于读请求的数据。
9.根据权利要求8所述的方法,其特征在于,所述从eflash中读取对应于读请求的数据包括:
在eflash对应于各主设备的端口上设置相应的计数器,根据主设备涉及业务的优先级及预先设置的仲裁策略进行计数器计数;
根据设置的所述计数器的计数结果,从eflash中读取对应于各主设备的读请求的数据。
10.根据权利要求9所述的方法,其特征在于,所述根据主设备涉及业务的优先级及预先设置的仲裁策略进行计数器计数包括:
根据主设备涉及业务的优先级设计各计数器相应的初始值;
接收到两个或两个以上主设备的读请求时,如果主设备的读请求被仲裁进行数据读取,则计数器数值跳变至预设数值;如果主设备的读请求未被仲裁进行数据读取,根据主设备涉及业务的优先级对计数器数值按照预设幅度进行增加处理。
11.根据权利要求10所述的方法,其特征在于,所述根据计数器的计数结果从eflash中根据各主设备的读请求读取数据包括:
确定仅存在取值最大的一个计数器时,仲裁对该计数器对应的主设备的读请求进行数据读取;
确定存在取值最大的两个或两个以上计数器时,选择任意一个计数器,仲裁对选择的计数器对应的主设备的读请求进行数据读取。
12.一种读取数据的装置,其特征在于,包括:确定单元和反馈单元;其中,
确定单元用于:根据接收到的主设备的读请求,确定预设的缓存中是否存储对应于读请求的数据;
反馈单元用于:确定单元确定预设的缓存中存储有对应于读请求的数据时,将缓存中对应于读请求的数据反馈给主设备。
13.根据权利要求12所述的装置,其特征在于,所述反馈单元还用于:
根据接收到的所述读请求从eflash中读取对应于所述读请求的数据,并将读取到的数据反馈至相应的主设备。
14.根据权利要求12所述的装置,其特征在于,所述eflash的通信总线与所述缓存的通信总线的位宽相等,且为主设备使用的高级高性能总线(AHB)的位宽的2n倍;
其中,n为大于等于1的整数。
15.根据权利要求13所述的装置,其特征在于,所述反馈单元用于根据接收到的所述读请求从eflash中读取对应于所述读请求的数据包括:
接收到两个或两个以上主设备的读请求时,根据预先设置的优先级策略从所述eflash中读取对应于读请求的数据。
16.根据权利要求12~15任一项所述的装置,其特征在于,所述装置还包括高速缓存单元,用于从所述eflash中读取高速缓存数据,并在所述缓存中缓存。
17.一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行如权利要求1~11任一项所述读取数据的方法。
18.一种终端,包括:存储器和处理器;其中,
处理器被配置为执行存储器中的程序指令;
程序指令在处理器读取执行以下操作:
根据接收到的主设备的读请求,确定预设的缓存buffer中是否存储对应于读请求的数据;
预设的缓存中存储有对应于读请求的数据时,将缓存中对应于读请求的数据反馈给主设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710757725.9A CN109426623A (zh) | 2017-08-29 | 2017-08-29 | 一种读取数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710757725.9A CN109426623A (zh) | 2017-08-29 | 2017-08-29 | 一种读取数据的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109426623A true CN109426623A (zh) | 2019-03-05 |
Family
ID=65503625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710757725.9A Pending CN109426623A (zh) | 2017-08-29 | 2017-08-29 | 一种读取数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109426623A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716888A (zh) * | 2019-09-27 | 2020-01-21 | 山东华芯半导体有限公司 | 一种axi总线缓存机制的实现方法 |
CN113918483A (zh) * | 2021-12-14 | 2022-01-11 | 南京芯驰半导体科技有限公司 | 一种多主设备缓存控制方法及*** |
CN115378762A (zh) * | 2022-10-25 | 2022-11-22 | 芯动微电子科技(珠海)有限公司 | 一种总线传输性能动态调度方法及装置 |
WO2023005352A1 (zh) * | 2021-07-30 | 2023-02-02 | 上海商汤智能科技有限公司 | 数据处理的装置、方法、计算机设备和存储介质 |
CN116126763A (zh) * | 2023-04-17 | 2023-05-16 | 苏州浪潮智能科技有限公司 | 总线互联***、数据处理方法、装置、电子设备及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517884A (zh) * | 2003-01-09 | 2004-08-04 | 三星电子株式会社 | 控制串行快闪存储器中适当执行的装置和方法及相应芯片 |
CN101833516A (zh) * | 2007-12-14 | 2010-09-15 | 创惟科技股份有限公司 | 改进闪存存取效率的存储***与方法 |
CN101923499A (zh) * | 2009-03-30 | 2010-12-22 | 英特尔公司 | 执行防电源故障高速缓存而无需原子元数据的技术 |
US20140006665A1 (en) * | 2011-09-14 | 2014-01-02 | Hiroshi Amano | Resource request arbitration device, resource request arbitration system, resource request arbitration method, integrated circuit, and program |
US20140115255A1 (en) * | 2012-10-19 | 2014-04-24 | Hitachi, Ltd. | Storage system and method for controlling storage system |
US20140189204A1 (en) * | 2012-12-28 | 2014-07-03 | Hitachi, Ltd. | Information processing apparatus and cache control method |
CN105376269A (zh) * | 2014-08-11 | 2016-03-02 | 中国电信股份有限公司 | 虚拟机存储***及其实现方法和装置 |
CN106033323A (zh) * | 2015-02-17 | 2016-10-19 | 慧荣科技股份有限公司 | 读取快闪存储器中储存单元的方法以及使用该方法的装置 |
CN106874237A (zh) * | 2017-03-08 | 2017-06-20 | 上海冉能自动化科技有限公司 | 基于二总线的数据同步方法及*** |
-
2017
- 2017-08-29 CN CN201710757725.9A patent/CN109426623A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517884A (zh) * | 2003-01-09 | 2004-08-04 | 三星电子株式会社 | 控制串行快闪存储器中适当执行的装置和方法及相应芯片 |
CN101833516A (zh) * | 2007-12-14 | 2010-09-15 | 创惟科技股份有限公司 | 改进闪存存取效率的存储***与方法 |
CN101923499A (zh) * | 2009-03-30 | 2010-12-22 | 英特尔公司 | 执行防电源故障高速缓存而无需原子元数据的技术 |
US20140006665A1 (en) * | 2011-09-14 | 2014-01-02 | Hiroshi Amano | Resource request arbitration device, resource request arbitration system, resource request arbitration method, integrated circuit, and program |
US20140115255A1 (en) * | 2012-10-19 | 2014-04-24 | Hitachi, Ltd. | Storage system and method for controlling storage system |
US20140189204A1 (en) * | 2012-12-28 | 2014-07-03 | Hitachi, Ltd. | Information processing apparatus and cache control method |
CN105376269A (zh) * | 2014-08-11 | 2016-03-02 | 中国电信股份有限公司 | 虚拟机存储***及其实现方法和装置 |
CN106033323A (zh) * | 2015-02-17 | 2016-10-19 | 慧荣科技股份有限公司 | 读取快闪存储器中储存单元的方法以及使用该方法的装置 |
CN106874237A (zh) * | 2017-03-08 | 2017-06-20 | 上海冉能自动化科技有限公司 | 基于二总线的数据同步方法及*** |
Non-Patent Citations (1)
Title |
---|
马秦生等: "多端口存储器控制器IP核的研究", 《西安电子科技大学学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716888A (zh) * | 2019-09-27 | 2020-01-21 | 山东华芯半导体有限公司 | 一种axi总线缓存机制的实现方法 |
WO2023005352A1 (zh) * | 2021-07-30 | 2023-02-02 | 上海商汤智能科技有限公司 | 数据处理的装置、方法、计算机设备和存储介质 |
CN113918483A (zh) * | 2021-12-14 | 2022-01-11 | 南京芯驰半导体科技有限公司 | 一种多主设备缓存控制方法及*** |
CN113918483B (zh) * | 2021-12-14 | 2022-03-01 | 南京芯驰半导体科技有限公司 | 一种多主设备缓存控制方法及*** |
CN115378762A (zh) * | 2022-10-25 | 2022-11-22 | 芯动微电子科技(珠海)有限公司 | 一种总线传输性能动态调度方法及装置 |
CN116126763A (zh) * | 2023-04-17 | 2023-05-16 | 苏州浪潮智能科技有限公司 | 总线互联***、数据处理方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426623A (zh) | 一种读取数据的方法及装置 | |
US20150127691A1 (en) | Efficient implementations for mapreduce systems | |
US10241722B1 (en) | Proactive scheduling of background operations for solid state drives | |
US11748174B2 (en) | Method for arbitration and access to hardware request ring structures in a concurrent environment | |
US8447897B2 (en) | Bandwidth control for a direct memory access unit within a data processing system | |
CN111324427B (zh) | 一种基于dsp的任务调度方法及装置 | |
CN105677580A (zh) | 访问缓存的方法和装置 | |
CN103970520A (zh) | MapReduce架构中的资源管理方法、装置和架构*** | |
CN107430554A (zh) | 通过使用数据的可压缩性作为高速缓存***的标准来提高存储高速缓存性能 | |
US20140143519A1 (en) | Store operation with conditional push | |
US11720496B2 (en) | Reconfigurable cache architecture and methods for cache coherency | |
CN114356223A (zh) | 存储器的访问方法及装置、芯片、电子设备 | |
US9946461B2 (en) | In-flash immutable object processing | |
CN115481058A (zh) | 内存原子操作指令的执行方法、装置、访问模块及*** | |
TW201303870A (zh) | 利用快閃記憶體介面的方法及裝置 | |
CN110737618B (zh) | 内嵌处理器进行快速数据通信的方法、装置及存储介质 | |
US8380962B2 (en) | Systems and methods for efficient sequential logging on caching-enabled storage devices | |
CN104991745B (zh) | 一种存储***数据写入方法和*** | |
WO2019174206A1 (zh) | 一种存储设备的数据读取方法、装置、终端设备和存储介质 | |
US9733988B1 (en) | Systems and methods to achieve load balancing among a plurality of compute elements accessing a shared memory pool | |
US11429299B2 (en) | System and method for managing conversion of low-locality data into high-locality data | |
CN106662998A (zh) | 事务冲突检测方法、装置及计算机*** | |
WO2013184855A1 (en) | Memory with bank-conflict-resolution (bcr) module including cache | |
CN110489353A (zh) | 一种提高固态硬盘带宽读取性能方法及装置 | |
CN116132369A (zh) | 云网关服务器中多网口的流量分发方法及相关设备 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190305 |
|
WD01 | Invention patent application deemed withdrawn after publication |