CN117112454A - 缓存数据分段读取方法、装置、计算机设备及存储介质 - Google Patents
缓存数据分段读取方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117112454A CN117112454A CN202311161881.0A CN202311161881A CN117112454A CN 117112454 A CN117112454 A CN 117112454A CN 202311161881 A CN202311161881 A CN 202311161881A CN 117112454 A CN117112454 A CN 117112454A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- module
- information
- instruction
- 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 58
- 238000012545 processing Methods 0.000 claims abstract description 48
- 230000005540 biological transmission Effects 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000003213 activating effect Effects 0.000 claims 1
- 230000004913 activation Effects 0.000 claims 1
- 230000004044 response Effects 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 238000013461 design Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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/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/0871—Allocation or management of cache space
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
本申请实施例公开了一种缓存数据分段读取方法,方法包括将第二缓存控制模块内各缓存部进行顺序排列,得到缓存排序信息;第一缓存控制模块根据缓存排序信息中内各缓存部的地址信息生成对应的模块启动指令以及数据发送指令;根据模块启动指令启动临时缓存模块;第二缓存控制模块根据数据发送指令将各缓存部内的缓存数据对应发送至临时缓存模块内的各临时存储部;核心处理模块根据所接收到的读取需求信息生成对应的读取指令;临时缓存模块根据读取指令将各临时存储部内的缓存数据发送至核心处理模块。通过实施本申请实施例的方法可提升整体的数据传输速率和系统响应时间并且数据缓存传输成本。
Description
技术领域
本申请涉及数据通信技术领域,尤其涉及一种缓存数据分段读取方法、装置、计算机设备及存储介质。
背景技术
当前芯片设计中的数据存储和传输优化是一个热门话题,通过选择适当的外部存储器、改进控制器算法、引入缓存和采用新的存储器技术,可以减少传输延迟,提高系统性能,并满足日益增长的数据处理需求,在嵌入式系统、芯片设计以及数据存储和传输等领域的相关技术发展过程中,为了降低成本并提高数据存储容量,芯片设计中采用了添加Flash控制器和外部SPI Flash的方案。这种方案通过控制器的指令,使MCU能够直接读写外部SPIFlash,而无需将数据存储在MCU的内部存储器中。这样一来,可以减小芯片的尺寸,并且提供更大的数据存储空间。然而,这种方案也存在一个重要的问题,即数据传输过程中涉及多个组件,包括MCU、控制器和外部SPI Flash,每个组件都会引入一定的延迟和传输时间。特别是串连的SPI Flash具有较慢的读写速度,导致MCU需要等待较长的时间。
发明内容
本申请实施例提供了一种缓存数据分段读取方法、装置、计算机设备及存储介质,旨在解决芯片在数据缓存处理过程中数据缓存与读取过程效率低问题,以实现数据高效缓存与读取并降低数据处理成本。
第一方面,本申请实施例提供了一种缓存数据分段读取方法,其包括:将第二缓存控制模块内各缓存部进行顺序排列,得到缓存排序信息;第一缓存控制模块根据缓存排序信息中内各缓存部的地址信息生成对应的模块启动指令以及数据发送指令;根据模块启动指令启动临时缓存模块;第二缓存控制模块根据数据发送指令将各缓存部内的缓存数据对应发送至临时缓存模块内的各临时存储部;核心处理模块根据所接收到的读取需求信息生成对应的读取指令;临时缓存模块根据读取指令将各临时存储部内的缓存数据发送至核心处理模块。
第二方面,本申请实施例还提供了一种缓存数据分段读取装置,其包括:缓存排序信息获取单元,用于将第二缓存控制模块内各缓存部进行顺序排列,得到缓存排序信息;第一指令生成单元,用于使第一缓存控制模块根据缓存排序信息中内各缓存部的地址信息生成对应的模块启动指令以及数据发送指令;模块启动单元,用于根据模块启动指令启动临时缓存模块;模块控制单元,用于使第二缓存控制模块根据数据发送指令将各缓存部内的缓存数据对应发送至临时缓存模块内的各临时存储部;第二指令生成单元,用于使核心处理模块根据所接收到的读取需求信息生成对应的读取指令;缓存数据发送单元,用于使临时缓存模块根据读取指令将各临时存储部内的缓存数据发送至核心处理模块,还包括第一判断单元,用于判断地址信息所对应的缓存部的缓存空间是否大于启动请求信息所请求的缓存空间;第二判断单元,用于判断各临时存储部分别与各缓存部的序号是否均相互对应;第三判断单元,用于判断地址信息所对应的缓存部的缓存空间是否大于启动请求信息所请求的缓存空间;第四判断单元,用于根据缓存部选取算法判断临时缓存部是否已存储有缓存数据;第五判断单元,用于判断临时缓存模块内各临时存储部内的缓存数据是否为可读状态。
第三方面,本申请实施例还提供了一种计算机设备,其包括存储器及处理器,存储器上存储有计算机程序,处理器执行计算机程序时实现上述方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时可实现上述方法。
本申请实施例提供了一种缓存数据分段读取方法、缓存数据分段读取装置、计算机设备及存储介质。其中,方法应用于数据处理系统,数据处理系统包括:第一缓存控制模块、第二缓存控制模块、临时缓存模块以及核心处理模块,方法包括将第二缓存控制模块内各缓存部进行顺序排列,得到缓存排序信息;第一缓存控制模块根据缓存排序信息中内各缓存部的地址信息生成对应的模块启动指令以及数据发送指令;根据模块启动指令启动临时缓存模块;第二缓存控制模块根据数据发送指令将各缓存部内的缓存数据对应发送至临时缓存模块内的各临时存储部;核心处理模块根据所接收到的读取需求信息生成对应的读取指令;临时缓存模块根据读取指令将各临时存储部内的缓存数据发送至核心处理模块。本申请实施例通过改善数据缓存开发流程以及优化代码结构,实现提高代码的组织性、可读性和可维护性,同时灵活利用存储空间,提升系统的灵活性、扩展性和存储空间利用率,从而基于数据读取性能的提升为系统提供更好的性能支持。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的缓存数据分段读取方法的应用场景示意图;
图2为本申请实施例提供的缓存数据分段读取方法的流程示意图;
图3为本申请实施例提供的缓存数据分段读取方法的子流程示意图;
图4为本申请实施例提供的缓存数据分段读取方法的另一子流程示意图;
图5为本申请实施例提供的缓存数据分段读取方法的又一子流程示意图;
图6为本申请实施例提供的缓存数据分段读取方法的再一子流程示意图;
图7为本申请实施例提供的缓存数据分段读取方法的另一子流程示意图;
图8为本申请实施例提供的缓存数据分段读取装置的示意性框图;
图9为本申请实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本申请实施例提供了一种缓存数据分段读取方法、装置、计算机设备及存储介质。
该缓存数据分段读取方法的执行主体可以是本申请实施例提供的缓存数据分段读取装置,或者集成了该缓存数据分段读取装置的计算机设备,其中,该缓存数据分段读取装置可以采用硬件或者软件的方式实现,该计算机设备可以为终端或服务器,该终端可以是智能手机、平板电脑、掌上电脑、或者笔记本电脑等。
请参阅图1,图1为本申请实施例提供的缓存数据分段读取方法的应用场景示意图,在此应用场景中的数据处理系统包括第一缓存控制模块、第二缓存控制模块、临时缓存模块以及核心处理模块,第一缓存控制模块、临时缓存模块以及核心处理模块配置于同一数据处理器,第二缓存控制模块配置于另一数据处理器并与第一缓存控制模块通信连接,该缓存数据分段读取方法应用于图9中的计算机设备500中。
请参照图2,图2是本申请实施例提供的缓存数据分段读取方法的流程示意图。如图2所示,该方法包括以下步骤S110-S160。
S110、将第二缓存控制模块内各缓存部进行顺序排列,得到缓存排序信息。
具体地,本实施例中的第二缓存控制模块为独立于第一缓存控制模块以及临时缓存模块之外的非易失性存储功能模块,通常用于嵌入式系统、嵌入式设备和电子设备中,用于存储固件程序、配置信息、数据等非易失性数据。优选的,采用SPI Flash控制器作为第二缓存控制模块,模块通过SPI(Serial Peripheral Interface)总线与主控芯片或微控制器进行通信,它采用串行的方式进行数据传输,使用少量的引脚即可完成数据的输入输出。第二缓存控制模块所提供的存储容量较大,第二缓存控制模块可用于存储嵌入式系统的启动代码、操作系统、应用程序、数据文件等。它在各种类型的设备中得到广泛应用,例如网络路由器、嵌入式平台、物联网设备、智能家居和工业自动化设备等。第二缓存控制模块按section进行分开得到各缓存部用于存放代码,得到区分后的各缓存部相关的缓存排序信息。对于将第二缓存控制模块按照不同的section进行分开,并得到区分后的各缓存部来存放代码,缓存排序信息会依赖具体的硬件设计和编程方式。缓存排序信息中的缓存部可包括代码段缓存,用于存放程序的代码段。这部分缓存通常需要较大的存储空间,因为代码段包含了应用程序的指令和函数等。代码段缓存需要具备较高的读取性能,以加快指令的执行速度。数据段缓存,用于存放程序的全局变量、静态变量和常量数据等。这部分缓存可以提供快速的读取和写入操作,以加速对数据的访问。堆缓存,用于存放动态分配的内存空间,堆缓存的大小和性能要根据实际需要进行配置,以满足动态内存分配的需求。栈缓存,用于存放函数调用时的局部变量和函数参数等。栈缓存的容量通常较小,但需要具备快速的读写能力,以支持频繁的函数调用和参数传递。在进行上述配置时,可以参考具体的硬件设计和编程环境,以及第二缓存控制模块的规格和性能参数。需要关注代码的布局和存放方式,确保在分开不同的section后,程序能够正确地访问和执行所需的代码和数据。
请参照图3,如图3所示,执行步骤S110进一步包括执行步骤S111-S114:
S111、将第二缓存控制模块内具有最大缓存空间的缓存部标记为主缓存部,主缓存部的地址信息为起始地址信息。
具体地,可以将第二缓存控制模块内具有最大缓存空间的缓存部标记为主缓存部,并将其起始地址信息作为主缓存部的地址信息。这样可以方便地确定主缓存部的位置和范围。通过这个标记,系统可以在执行时快速判断是否需要从主缓存部获取数据,以提高访问速度和效率。同时,也可以更好地管理和优化缓存资源,根据主缓存部的特殊性质进行相关策略和算法的设计。根据具体的需求和可用资源,确定主缓存部的大小。确保主缓存部能够容纳常用的代码和数据,从而发挥最佳的缓存效果。主缓存部的起始地址信息可以使用一个地址变量或者一组寄存器来保存。确保该信息能够准确地指示主缓存部的起始地址,并且在系统中得到正确的解析和应用。除了确定主缓存部的位置和起始地址,还需要设计和实现缓存管理算法,以便有效地利用主缓存部的空间,并根据访问模式和替换策略进行数据的加载和替换。
S112、将预存的主缓存函数信息以及中断向量信息配置于主缓存部内。
具体地,根据中断向量表、C库函数和其他需要预存的主缓存函数信息的大小,C库函数即预设的著缓存函数,确定主缓存部的容量。确保主缓存部足够大,能够容纳所需的所有信息。将中断向量表的处理函数或中断服务例程预存储到主缓存部内的相应地址范围(Section 1)。这样在发生中断时,系统可以直接跳转到主缓存部内的中断处理函数,提高中断响应的速度和效率。将C库函数和其他需要预存的主缓存函数信息的机器码或指令序列预存储到主缓存部内的对应地址范围(Section 1)。这些函数可以是频繁使用的、响应时间敏感的代码片段。根据普通函数的大小和数量,按照主缓存部剩余的空间进行编排。可以将普通函数按照Section大小进行划分,并按照一定的规则或者地址映射机制将它们存储到合适的Section内。
S113、将第二缓存控制模块内的其余缓存部标记为普通缓存部。
具体地,要将第二缓存控制模块内的其余缓存部标记为普通缓存部,可以按照以下步骤进行操作:首先,确定第二缓存控制模块内除了已经标记为主缓存部(Section 1)之外的所有缓存部。这可能需要参考相关的架构文档、技术手册或硬件设计资料。根据第二缓存控制模块的地址空间和已标记的主缓存部大小,确定普通缓存部的地址范围。这个范围应该是第二缓存控制模块内未使用的地址空间。根据开发工具链或硬件架构找到相应的配置文件或寄存器设置,修改普通缓存部的属性。通常可以设置缓存部的类型或标志位来区分不同类型的缓存。将确定的普通缓存部地址范围内的缓存部标记为普通缓存部。
S114、根据主缓存函数信息生成调用指令,以使第一缓存控制模块根据调用指令调用主缓存部内的缓存数据。
具体地,查看主缓存函数的定义或相关文档以确定其输入参数、返回值和调用约定。这些信息将有助于生成正确的调用指令。根据主缓存函数的接口,准备好所需的参数。这可能包括地址、大小等信息。确保参数的类型和顺序与主缓存函数的期望一致。使用适当的汇编指令或编程语言的函数调用语法,根据主缓存函数的调用约定生成调用指令。这可能涉及设置寄存器、压入参数到堆栈、调用指令等操作。具体的指令和语法将依赖于所使用的体系结构和编程语言。在合适的时机,根据应用程序逻辑和需要触发生成的调用指令。这可能涉及到在适当的位置插入调用指令的代码。
S120、第一缓存控制模块根据缓存排序信息中内各缓存部的地址信息生成对应的模块启动指令以及数据发送指令。
具体地,本实施例中的第一缓存控制模块是指用于管理和控制第二缓存控制模块的专用模块,用于访问控制、缓存管理以及数据完整性保护。根据的缓存排序信息,第一缓存控制模块可以生成对应的模块启动指令和数据发送指令。第一缓存控制模块根据代码段缓存的地址信息生成启动指令,并将其发送给第二缓存控制模块。该指令可能包括选择特定的代码段区域、设置读取模式和时序等。在收到代码段缓存启动指令后,第一缓存控制模块会生成相应的数据发送指令,以从第二缓存控制模块中读取代码段数据。这些指令通常包括读取地址、读取长度和读取命令等,用于指定要读取的代码段数据的位置和大小。第一缓存控制模块也会根据数据段缓存的地址信息生成启动指令和数据发送指令,用于管理和读取数据段缓存的数据。对于堆缓存和栈缓存,第一缓存控制模块会根据它们的地址信息生成相应的启动指令和数据发送指令,以读取和管理这些缓存中的数据。在生成启动指令和数据发送指令时,第一缓存控制模块需要考虑第二缓存控制模块的工作模式、时钟频率、读写延迟等参数,以确保能够正确读取和管理各个缓存部的数据。
请参照图4,如图4所示,执行步骤S120进一步包括执行步骤S121-S125:
S121、获取缓存排序信息中各缓存部对应的包含缓存空间大小的缓存空间信息。
S122、根据缓存空间信息以及缓存排序信息中的序号生成与各缓存部对应的地址信息。
S123、生成基于缓存空间信息的启动请求信息。
具体地,综合上述步骤信息,缓存空间信息可包括缓存部的标识符、位置、序号等。根据缓存排序信息中的序号,找到与各缓存部对应的缓存空间信息。这些信息应该包括缓存空间大小以及可能的起始地址。根据缓存空间信息和缓存排序信息中的序号,计算出各缓存部对应的地址信息。具体的计算方式取决于所使用的硬件架构和缓存设计。通常情况下需要使用起始地址、偏移量和缓存块大小等来计算地址信息。根据生成的地址信息,构建基于缓存空间信息的启动请求信息。
S124、判断地址信息所对应的缓存部的缓存空间是否大于启动请求信息所请求的缓存空间。
具体地,若地址信息所对应的缓存部的缓存空间大于启动请求信息所请求的缓存空间,则生成模块启动指令,要判断地址信息所对应的缓存部的缓存空间是否大于启动请求信息所请求的缓存空间,并生成模块启动指令,根据地址信息中的缓存部标识符或其他相关信息,找到该缓存部的缓存空间大小。查看启动请求信息中的相关字段,获取请求的缓存空间大小。将所获取的缓存空间大小与所请求的缓存空间大小进行比较。如果地址信息所对应的缓存部的缓存空间大小大于请求的缓存空间大小,则说明满足条件。可以生成相应的模块启动指令,具体的指令内容和格式将取决于系统架构和需求。
S125、将临时缓存模块内各临时存储部进行排序并判断各临时存储部分别与各缓存部的序号是否均相互对应。
具体地,若序号均相互对应,则生成数据发送指令,要判断各临时存储部分别与各缓存部的序号是否均相互对应,并生成数据发送指令。查看相关文档或规格说明,了解临时存储部和缓存部的序号信息。这些序号通常表示不同的存储或缓存单元。将临时存储部和缓存部的序号进行一一比较,判断它们是否相互对应。即,每个临时存储部的序号与对应的缓存部的序号是否相同。如果各临时存储部和缓存部的序号均相互对应,则说明满足条件。
S130、根据模块启动指令启动临时缓存模块。
具体地,根据的模块启动指令,可以启动相应的临时缓存模块。临时缓存控制模块会接收到由第一缓存控制模块生成的模块启动指令。这些指令包括指定某个临时缓存模块的启动操作,以及相应的地址和参数信息。临时缓存控制模块会解析接收到的启动指令,提取出所需的地址和参数信息,并进行相应的处理准备。根据指令解析的结果,临时缓存控制模块会启动相应的临时缓存模块。具体的操作可能包括打开相关的读写通道,配置适当的时序和寄存器设置等。临时缓存模块就准备好接收数据并进行缓存操作。在临时缓存模块启动后,根据实际需求,可以使用数据发送指令将数据从第二缓存控制模块传输到临时缓存模块,并进行相应的缓存管理操作。
请参照图5,如图5所示,执行步骤S130之前,需执行步骤S131-S132:
S131、在第一缓存控制模块中预先配置与各临时存储部对应的多个预读接口。
具体地,第一缓存控制模块需要预先配置多个与各临时存储部对应的预读接口,并留出若干个寄存器作为预读接口。在程序编写时,核心处理模块会提前告知第一缓存控制模块接下来要跳转到的section的地址,而第一缓存控制模块会将地址提前载入缓存中。当预读接口写满时,根据指定的缓存管理算法选择缓存块进行替换。在第一缓存控制模块中,预先配置与各临时存储部对应的多个预读接口(寄存器)。这些预读接口用于存储预读的地址信息。在程序编写时,核心处理模块会提前告知第一缓存控制模块接下来要跳转到的section的地址。第一缓存控制模块将核心处理模块提供的地址提前加载到预读接口所对应的寄存器或者缓存块中,以便快速访问。当预读接口写满时,根据指定的缓存管理算法选择缓存块进行替换。常见的缓存管理算法包括最近最少使用(LRU)、随机替换等。
S132、根据预读接口与临时缓存部间的协议关系生成缓存管理策略,以使各预读接口通过缓存管理策略与对应临时缓存部保持连接。
具体地,基于预读接口与临时缓存部的协议关系,确定合适的缓存管理策略。缓存管理策略的目标是根据预读接口的访问需求来管理缓存,使得数据能够有效地被预读接口访问到。可以考虑使用先进先出(FIFO)策略,确保较早进入缓存的数据被较早地访问到。也可以根据预读接口的访问模式,采用最近最少使用(LRU)策略,确保最近被访问的数据优先留在缓存中。根据具体的应用场景和性能需求,还可以结合其他缓存管理策略,例如最不经常使用(LFU)、随机替换等。根据确定的缓存管理策略,实现相应的算法或逻辑来管理缓存。这可能涉及到维护缓存数据访问记录、替换策略的选择与执行,并确保预读接口与临时缓存部之间的连接保持有效。在实际运行环境中测试缓存管理策略的性能和效果。根据测试结果进行优化,如调整缓存管理参数、改进算法逻辑等,以提高预读接口与临时缓存部之间的连接效率和性能。
请参照图6,如图6所示,在本实施例中,执行步骤S132还包括执行步骤S1321-S1324:
S1321、根据预设的存储部选取算法以及缓存部匹配算法生成缓存管理策略。
具体地,可在存储部选取算法以及缓存部匹配算法中配置随机置换算法、最近最少使用算法、最不经常使用算法、先进先出算法、最佳置换算法等算法用于存储部选取,优化存储部的选取过程,获得最高的选择效率。
S1322、根据缓存部选取算法判断临时缓存部是否已存储有缓存数据。
若临时存储部已存储有缓存数据,则直接读取数据;
若临时存储部未存储有缓存数据,则执行步骤S1323;
S1323、根据缓存部匹配算法判断第二缓存控制模块内的各缓存部是否已存储有缓存数据;
具体地,要根据缓存部匹配算法来判断第二缓存控制模块内的各缓存部是否已存储有缓存数据,使用缓存部匹配算法,根据待查询的缓存部地址在第二缓存控制模块内进行匹配。通过计算待查询地址的索引位置,判断该索引位置上的缓存是否已存储有数据。遍历所有缓存部,检查是否存在与待查询地址匹配的缓存数据。首先计算待查询地址所属的组索引,然后在该组中查找是否存在与地址匹配的缓存数据。根据缓存部匹配的结果,判断待查询的缓存部是否已存储有缓存数据。如果匹配成功,表示该缓存部已存储有缓存数据;如果匹配失败,则表示该缓存部为空,没有存储缓存数据。
若第二缓存控制模块内的各缓存部已存储有缓存数据,则执行步骤S1324;
S1324、根据各存储部的序号对应匹配各预读接口,并将数据发送至预读接口所对应的存储部。
具体地,根据各存储部的序号对应匹配各预读接口,并将数据发送至预读接口所对应的存储部,确定要发送的数据,以及该数据对应的存储部序号。使用存储部序号和预读接口的对应关系,找到与待发送数据对应的预读接口。将待发送的数据通过找到的预读接口发送出去。具体的发送方法取决于系统架构和通信方式,可能涉及到数据格式转换、协议处理等操作。预读接口接收到发送的数据后,将数据写入与其对应的存储部。
S140、第二缓存控制模块根据数据发送指令将各缓存部内的缓存数据对应发送至临时缓存模块内的各临时存储部。
具体地,根据的数据发送指令,第二缓存控制模块可以将各缓存部内的缓存数据对应发送至临时缓存模块内的临时存储部。第二缓存控制模块会接收到由第一缓存控制模块生成的数据发送指令,指令包含了要发送的数据的地址、长度和命令等信息。第二缓存控制模块解析接收到的数据发送指令,提取出要发送的数据的地址和长度等信息。根据指令解析的结果,第二缓存控制模块从各个缓存部中读取对应的缓存数据。具体操作可能包括在代码段缓存、数据段缓存、堆缓存和栈缓存中读取相应地址范围内的数据。第二缓存控制模块将读取到的缓存数据对应地发送至临时缓存模块内的各临时存储部。这可能涉及将数据传输到临时缓存模块的特定地址、配置适当的写入通道和时序等操作。
S150、核心处理模块根据所接收到的读取需求信息生成对应的读取指令。
具体地,核心处理模块可以根据所接收到的读取需求信息生成对应的读取指令。核心处理模块会接收到来自外部的读取需求信息。这些信息可能包括要读取的数据地址、长度等相关参数。核心处理模块解析接收到的读取需求信息,提取出要读取的数据地址和长度等信息,并进行相应的处理准备。根据解析得到的数据地址和长度等信息,核心处理模块生成相应的读取指令。这些指令可能包括读取命令、读取地址和读取长度等参数。核心处理模块将生成的读取指令发送给相应的模块或设备,如内存控制器、缓存控制器或外部存储器等。发送方式可能涉及总线传输或特定接口协议。核心处理模块可以根据所接收到的读取需求信息生成对应的读取指令,以实现对指定数据的读取操作。
请参照图7,如图7所示,执行步骤S150之前,需执行步骤S151-S152:
S151、判断临时缓存模块内各临时存储部内的缓存数据是否为可读状态。
具体地,若临时存储部内的缓存数据为可读状态,则执行步骤S1511;
S1511、获取临时存储部的目标序号;
S152、基于所获取的目标序号生成对应的读取需求信息。
具体地,针对判断临时缓存模块内各临时存储部内的缓存数据是否为可读状态,获取目标序号以及基于目标序号生成对应的读取需求信息,遍历临时缓存模块中的每个临时存储部。对于每个临时存储部,检查其中的缓存数据是否处于可读状态。确定当前可读的临时存储部的目标序号。该目标序号表示对应的临时存储部在整个系统中的唯一标识。根据系统设计或文档中提供的信息,确定如何获取目标序号。将目标序号作为输入,基于系统规定的格式或协议,生成对应的读取需求信息。这些信息可能包括读取地址、读取长度、读取标志等等,具体取决于系统设计和通信协议。
S160、临时缓存模块根据读取指令将各临时存储部内的缓存数据发送至核心处理模块。
具体地,根据读取指令,临时缓存模块可以将各临时存储部内的缓存数据发送至核心处理模块。临时缓存模块会接收到由核心处理模块发送的读取指令。这些指令包含了要读取的数据的地址、长度和命令等信息。临时缓存模块解析接收到的读取指令,提取出要读取的数据的地址和长度等信息。根据指令解析的结果,临时缓存模块从各个临时存储部中读取对应的缓存数据。具体操作可能包括在临时存储部的特定地址范围内读取数据。临时缓存模块将读取到的缓存数据发送至核心处理模块。这可能涉及将数据传输到核心处理模块的特定寄存器、缓冲区或其他存储区域中。通过上述步骤,临时缓存模块可以根据读取指令将各个临时存储部内的缓存数据传输至核心处理模块。通过按section对齐和指定地址编译和链接,可以保证数据的正确对应,并确保第二缓存控制模块能够正确地读取和执行各个section的代码。这样可以提高代码运行效率和系统性能。
综上,上述技术方案通过设置第二缓存控制模块与临时存储模块并分别划定对应的存储区域进行多段数据缓存传输,可实现的技术效果包括:提高程序执行速度,通过将特定地址的代码预读取到临时缓存模块中,可以避免每次执行时从第二缓存控制模块读取数据,从而减少了执行的延迟。缓存具有更快的访问速度可以显著提高程序的执行速度。降低外部访问带宽需求,由于预读取了代码到临时缓存模块中,程序在执行过程中可以直接从缓存中提取指令和数据,减少了对第二缓存控制模块的频繁访问,从而降低了外部访问带宽的需求。提升系统性能和响应性,通过减少外部访问延迟和降低外部访问带宽需求,系统的整体性能得到提升,同时可以提高系统对实时任务的响应能力,提供更好的用户体验。节约功耗,由于预读取了代码到临时缓存模块中,在执行过程中可以减少对第二缓存控制模块的访问次数,从而节约了系统的功耗。
图8是本申请实施例提供的一种缓存数据分段读取装置的示意性框图。如图8所示,对应于以上缓存数据分段读取方法,本申请还提供一种缓存数据分段读取装置100。该缓存数据分段读取装置包括用于执行上述缓存数据分段读取方法的单元,该装置可以被配置于台式电脑、平板电脑、手提电脑、等终端中。具体地,请参阅图8,该缓存数据分段读取装置100包括:
缓存排序信息获取单元110,用于将第二缓存控制模块内各缓存部进行顺序排列,得到缓存排序信息;
第一指令生成单元120,用于使第一缓存控制模块根据所述缓存排序信息中内各缓存部的地址信息生成对应的模块启动指令以及数据发送指令;
模块启动单元130,用于根据所述模块启动指令启动所述临时缓存模块;
模块控制单元140,用于使第二缓存控制模块根据所述数据发送指令将各所述缓存部内的缓存数据对应发送至所述临时缓存模块内的各临时存储部;
第二指令生成单元150,用于使核心处理模块根据所接收到的读取需求信息生成对应的读取指令;
缓存数据发送单元160,用于使所述临时缓存模块根据所述读取指令将各所述临时存储部内的缓存数据发送至所述核心处理模块;
在一些实施例中,数据分段读取装置100还包括:
第一标记单元,用于将所述第二缓存控制模块内具有最大缓存空间的缓存部标记为主缓存部,所述主缓存部的地址信息为起始地址信息;
信息配置单元,用于将预存的主缓存函数信息以及中断向量信息配置于所述主缓存部内;
第二标记单元,用于将所述第二缓存控制模块内的其余缓存部标记为普通缓存部;
第三指令生成单元,用于根据所述主缓存函数信息生成调用指令,以使所述第一缓存控制模块根据所述调用指令调用所述主缓存部内的缓存数据。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述缓存数据分段读取装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述缓存数据分段读取装置可以实现为一种计算机程序的形式,该计算机程序可以在如图8所示的计算机设备上运行。
请参阅图8,图8是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图9,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种缓存数据分段读取方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种缓存数据分段读取方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本申请还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中计算机程序包括程序指令。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本申请实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种缓存数据分段读取方法,应用于数据处理系统,其特征在于,所述数据处理系统包括:第一缓存控制模块、第二缓存控制模块、临时缓存模块以及核心处理模块,所述第一缓存控制模块、所述临时缓存模块以及所述核心处理模块配置于同一数据处理器,所述第二缓存控制模块配置于另一数据处理器并与所述第一缓存控制模块通信连接,所述方法包括:
将第二缓存控制模块内各缓存部进行顺序排列,得到缓存排序信息;
第一缓存控制模块根据所述缓存排序信息中内各缓存部的地址信息生成对应的模块启动指令以及数据发送指令;
根据所述模块启动指令启动所述临时缓存模块;
第二缓存控制模块根据所述数据发送指令将各所述缓存部内的缓存数据对应发送至所述临时缓存模块内的各临时存储部;
核心处理模块根据所接收到的读取需求信息生成对应的读取指令;
所述临时缓存模块根据所述读取指令将各所述临时存储部内的缓存数据发送至所述核心处理模块。
2.根据权利要求1所述的缓存数据分段读取方法,其特征在于,所述将第二缓存控制模块内各缓存部进行顺序排列,得到缓存排序信息之前,方法包括:
将所述第二缓存控制模块内具有最大缓存空间的缓存部标记为主缓存部,所述主缓存部的地址信息为起始地址信息;
将预存的主缓存函数信息以及中断向量信息配置于所述主缓存部内;
将所述第二缓存控制模块内的其余缓存部标记为普通缓存部;
根据所述主缓存函数信息生成调用指令,以使所述第一缓存控制模块根据所述调用指令调用所述主缓存部内的缓存数据。
3.根据权利要求2所述的缓存数据分段读取方法,其特征在于,所述第一缓存控制模块根据所述缓存排序信息中内各缓存部的地址信息生成对应的模块启动指令以及数据发送指令,包括:
获取所述缓存排序信息中各缓存部对应的包含缓存空间大小的缓存空间信息;
根据所述缓存空间信息以及所述缓存排序信息中的序号生成与各所述缓存部对应的地址信息;
生成基于所述缓存空间信息的启动请求信息;
判断所述地址信息所对应的缓存部的缓存空间是否大于所述启动请求信息所请求的缓存空间;
若所述地址信息所对应的缓存部的缓存空间大于所述启动请求信息所请求的缓存空间,则生成所述模块启动指令;
将所述临时缓存模块内各临时存储部进行排序并判断各所述临时存储部分别与各所述缓存部的序号是否均相互对应;
若序号均相互对应,则生成所述数据发送指令。
4.根据权利要求3所述的缓存数据分段读取方法,其特征在于,所述根据所述模块启动指令启动所述临时缓存模块之前,包括:
在第一缓存控制模块中预先配置与各所述临时存储部对应的多个预读接口;
根据所述预读接口与所述临时缓存部间的协议关系生成缓存管理策略,以使各所述预读接口通过所述缓存管理策略与对应所述临时缓存部保持连接。
5.根据权利要求4所述的缓存数据分段读取方法,其特征在于,所述根据所述预读接口与所述临时缓存部间的协议关系生成缓存管理策略,以使各所述预读接口通过所述缓存管理策略与对应所述临时缓存部保持连接,包括:
根据预设的存储部选取算法以及缓存部匹配算法生成所述缓存管理策略;
根据所述缓存部选取算法判断所述临时缓存部是否已存储有缓存数据;
若所述临时存储部已存储有缓存数据,则直接读取所述数据;
若所述临时存储部未存储有缓存数据,则根据所述缓存部匹配算法判断所述第二缓存控制模块内的各缓存部是否已存储有缓存数据;
若所述第二缓存控制模块内的各缓存部已存储有缓存数据,则根据各所述存储部的序号对应匹配各所述预读接口,并将所述数据发送至所述预读接口所对应的所述存储部。
6.根据权利要求5所述的缓存数据分段读取方法,其特征在于,所述核心处理模块根据读取需求信息生成读取指令之前,包括:
判断所述临时缓存模块内各临时存储部内的缓存数据是否为可读状态;
若所述临时存储部内的缓存数据为可读状态,则获取所述临时存储部的目标序号;
基于所获取的所述目标序号生成对应的读取需求信息。
7.一种缓存数据分段读取装置,应用上述权利要求1-6所述的缓存数据分段读取方法,其特征在于,包括:
缓存排序信息获取单元,用于将第二缓存控制模块内各缓存部进行顺序排列,得到缓存排序信息;
第一指令生成单元,用于使第一缓存控制模块根据所述缓存排序信息中内各缓存部的地址信息生成对应的模块启动指令以及数据发送指令;
模块启动单元,用于根据所述模块启动指令启动所述临时缓存模块;
模块控制单元,用于使第二缓存控制模块根据所述数据发送指令将各所述缓存部内的缓存数据对应发送至所述临时缓存模块内的各临时存储部;
第二指令生成单元,用于使核心处理模块根据所接收到的读取需求信息生成对应的读取指令;
缓存数据发送单元,用于使所述临时缓存模块根据所述读取指令将各所述临时存储部内的缓存数据发送至所述核心处理模块。
8.根据权利要求7所述的缓存数据分段读取装置,其特征在于,还包括:
第一标记单元,用于将所述第二缓存控制模块内具有最大缓存空间的缓存部标记为主缓存部,所述主缓存部的地址信息为起始地址信息;
信息配置单元,用于将预存的主缓存函数信息以及中断向量信息配置于所述主缓存部内;
第二标记单元,用于将所述第二缓存控制模块内的其余缓存部标记为普通缓存部;
第三指令生成单元,用于根据所述主缓存函数信息生成调用指令,以使所述第一缓存控制模块根据所述调用指令调用所述主缓存部内的缓存数据。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311161881.0A CN117112454A (zh) | 2023-09-06 | 2023-09-06 | 缓存数据分段读取方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311161881.0A CN117112454A (zh) | 2023-09-06 | 2023-09-06 | 缓存数据分段读取方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117112454A true CN117112454A (zh) | 2023-11-24 |
Family
ID=88803771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311161881.0A Pending CN117112454A (zh) | 2023-09-06 | 2023-09-06 | 缓存数据分段读取方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117112454A (zh) |
-
2023
- 2023-09-06 CN CN202311161881.0A patent/CN117112454A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107690622B (zh) | 实现硬件加速处理的方法、设备和系统 | |
US8024496B2 (en) | Enhanced memory migration descriptor format and method | |
JP2008047116A (ja) | 入力/出力装置とメモリ間のデータ転送の融通性のある制御 | |
US7743228B2 (en) | Information processing apparatus and method for obtaining software processing log | |
US20080209084A1 (en) | Hardware-Based Concurrent Direct Memory Access (DMA) Engines On Serial Rapid Input/Output SRIO Interface | |
US6578065B1 (en) | Multi-threaded processing system and method for scheduling the execution of threads based on data received from a cache memory | |
CN102667714B (zh) | 支持访问由操作系统环境外的资源提供的功能的方法和系统 | |
JP2007026094A (ja) | 実行装置およびアプリケーションプログラム | |
US20090031087A1 (en) | Mask usable for snoop requests | |
EP3534266B1 (en) | Method, apparatus and system for prefetching data | |
US20100169546A1 (en) | Flash memory access circuit | |
US20070157207A1 (en) | Hardwired scheduler for low power wireless device processor and method for using the same | |
US20090049232A1 (en) | Execute-in-place implementation for a nand device | |
JP5969122B2 (ja) | ホストバスアダプタおよびシステム | |
KR102326280B1 (ko) | 데이터 처리 방법, 장치, 기기 및 매체 | |
CN116028455A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
CN117112454A (zh) | 缓存数据分段读取方法、装置、计算机设备及存储介质 | |
US20100268921A1 (en) | Data collection prefetch device and methods thereof | |
US20190302875A1 (en) | Apparatus and method for improving power savings by accelerating device suspend and resume operations | |
TWI760756B (zh) | 共用代碼之系統與代碼共用方法 | |
US7496740B2 (en) | Accessing information associated with an advanced configuration and power interface environment | |
TWI416336B (zh) | 可共享緩衝器的網路介面卡與緩衝器共享方法 | |
US20030041190A1 (en) | System and method for efficiently performing a command swapping procedure | |
US11755534B2 (en) | Data caching method and node based on hyper-converged infrastructure | |
CN117389685B (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 |