CN115328405A - 数据处理方法、装置及电子设备 - Google Patents
数据处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115328405A CN115328405A CN202211039405.7A CN202211039405A CN115328405A CN 115328405 A CN115328405 A CN 115328405A CN 202211039405 A CN202211039405 A CN 202211039405A CN 115328405 A CN115328405 A CN 115328405A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- processing unit
- reading
- target data
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据处理方法、装置及电子设备,方法包括:获得处理单元的数据读取请求,所述数据读取请求至少包含待读取数据的数据标识;若第一存储器满足直接读取条件,从第二存储器读取所述数据标识对应的目标数据到所述处理单元中,以使得所述处理单元能够根据所述数据读取请求对所述目标数据进行处理;其中,所述第一存储器与所述第二存储器不同;若所述第一存储器不满足所述直接读取条件,从所述第二存储器读取所述目标数据到所述第一存储器中,以使得所述处理单元能够根据所述数据读取请求将所述目标数据从所述第一存储器中读取到所述处理单元中并对所述目标数据进行处理。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置及电子设备。
背景技术
随着技术发展,计算机上所配置的应用程序越来越多种多样。某些应用程序对设备内存的要求较高。一旦应用程序所需要的内存超出计算机所配置的内存量,就会存在卡顿甚至死机的情况。
发明内容
有鉴于此,本申请提供一种数据处理方法、装置及电子设备,如下:
一种数据处理方法,包括:
获得处理单元的数据读取请求,所述数据读取请求至少包含待读取数据的数据标识;
若第一存储器满足直接读取条件,从第二存储器读取所述数据标识对应的目标数据到所述处理单元中,以使得所述处理单元能够根据所述数据读取请求对所述目标数据进行处理;
其中,所述第一存储器与所述第二存储器不同;
若所述第一存储器不满足所述直接读取条件,从所述第二存储器读取所述目标数据到所述第一存储器中,以使得所述处理单元能够根据所述数据读取请求将所述目标数据从所述第一存储器中读取到所述处理单元中并对所述目标数据进行处理。
上述方法,优选的,所述处理单元中存储有数据映射表,所述数据映射表至少包含数据的数据标识和数据的存储地址;
其中,在所述获得处理单元的数据读取请求之后,所述方法还包括:
根据所述数据映射表,获得所述目标数据的存储地址;
其中,若所述存储地址指向所述第一存储器,所述处理单元按照所述存储地址在所述第一存储器中读取所述目标数据到所述处理单元并对所述目标数据进行处理;
在所述存储地址指向所述第二存储器的情况下,执行所述:从第二存储器读取所述数据标识对应的目标数据到所述处理单元中,或执行所述:从所述第二存储器读取所述目标数据到所述第一存储器中。
上述方法,优选的,在所述从所述第二存储器读取所述目标数据到所述第一存储器中之后,所述方法还包括:
根据所述目标数据在所述第一存储器中的存储地址,更新所述第二存储器中的数据映射表;
将所述第二存储器中的所述数据映射表更新到所述处理单元中。
上述方法,优选的,在所述获得处理单元的数据读取请求之后,所述方法还包括:
检测所述数据标识对应的处理任务;
如果所述处理任务满足并行读取条件,从第二存储器读取所述数据标识对应的第一部分数据到所述处理单元中,且,从所述第二存储器读取所述数据标识对应的第二部分数据到所述第一存储器中,以使得所述处理单元能够根据所述数据读取请求将所述第二部分数据从所述第一存储器中读取到所述处理单元中,并使得所述处理单元对所述第一部分数据和所述第二部分数据进行处理;
其中,所述并行读取条件包括:所述处理任务为数据处理量大于或等于处理阈值的任务,或者,所述处理任务为目标类型的任务。
上述方法,优选的,所述处理单元对所述第一部分数据和所述第二部分数据进行处理,包括:
所述处理单元将分别对应于相同的所述数据标识的所述第一部分数据和所述第二部分数据进行合并,以得到所述数据标识对应的目标数据;
所述处理单元对所述目标数据进行处理。
上述方法,优选的,从第二存储器读取所述数据标识对应的目标数据到所述处理单元,包括:
利用任务调度器从第二存储器读取所述数据标识对应的目标数据,以使得所述任务调度器将所述目标数据写入所述处理单元中的缓存区域。
上述方法,优选的,所述任务调度器与所述第二存储器之间基于第一总线接口连接;
所述任务调度器与所述处理单元之间基于第二总线接口连接,所述第一总线接口和所述第二总线接口的总线延迟低于预设的延迟阈值。
上述方法,优选的,所述第一存储器满足直接读取条件包括:所述第一存储器的可用存储区域小于或等于预设的存储阈值。
一种数据处理装置,包括:
请求获得单元,用于获得处理单元的数据读取请求,所述数据读取请求至少包含待读取数据的数据标识;
第一读取单元,用于若第一存储器满足直接读取条件,从第二存储器读取所述数据标识对应的目标数据到所述处理单元中,以使得所述处理单元能够根据所述数据读取请求对所述目标数据进行处理;
其中,所述第一存储器与所述第二存储器不同;
第二读取单元,用于若所述第一存储器不满足所述直接读取条件,从所述第二存储器读取所述目标数据到所述第一存储器中,以使得所述处理单元能够根据所述数据读取请求将所述目标数据从所述第一存储器中读取到所述处理单元中并对所述目标数据进行处理。
一种电子设备,包括:
第一存储器;
第二存储器;
处理单元;
任务调度器,用于获得所述处理单元的数据读取请求,所述数据读取请求至少包含待读取数据的数据标识;若所述第一存储器满足直接读取条件,从第二存储器读取所述数据标识对应的目标数据到所述处理单元中,以使得所述处理单元能够根据所述数据读取请求对所述目标数据进行处理;其中,所述第一存储器与所述第二存储器不同;若所述第一存储器不满足所述直接读取条件,从所述第二存储器读取所述目标数据到所述第一存储器中,以使得所述处理单元能够根据所述数据读取请求将所述目标数据从所述第一存储器中读取到所述处理单元中并对所述目标数据进行处理。
从上述技术方案可以看出,本申请公开的一种数据处理方法、装置及电子设备中,在获得到处理单元的数据读取请求之后,如果第一存储器满足直接读取条件,那么从第二存储器中读取数据标识对应的目标数据到处理单元中,由此处理单元可以根据数据读取请求对目标数据进行处理,而如果第一存储器不满足直接读取条件,那么在从第二存储器中读取目标数据到第一存储器之后,再由处理单元将目标数据从第一存储器读取到处理单元中,进而由处理单元对目标数据进行处理。可见,本申请中优先在第二存储器中读取目标数据到第一存储器,再由处理单元将目标数据从第一存储器读取到处理单元中,而在第一存储器满足直接读取条件时可以直接从第二存储器中直接读取目标数据到处理单元中,由此可以不受限于第一存储器是否正常使用,均可以实现从第二存储器中的数据读取,避免因为第一存储器无法正常读取数据而导致的卡顿甚至死机的情况,从而提高对电子设备的使用体验。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种数据处理方法的流程图;
图2及图3分别为本申请实施例一提供的一种数据处理方法的另一流程图;
图4为本申请实施例二提供的一种数据处理装置的结构示意图;
图5为本申请实施例三提供的一种电子设备的结构示意图;
图6为本申请适用于电子设备的硬件逻辑架构图;
图7为本申请适用于电子设备的部分硬件逻辑架构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1所示,为本申请实施例一提供的一种数据处理方法的实现流程图,该方法可以适用于能够进行数据处理的电子设备,如手机或计算机等。本实施例中的技术方案主要用于提高对电子设备的使用体验。
具体的,本实施例中的方法可以包含如下步骤:
步骤101:获得处理单元的数据读取请求。
其中,处理单元可以为电子设备中的处理器,如中央处理器CPU(centralprocessing unit);或者,处理单元可以为电子设备中装载的程序模块,用于实现相应的功能。
具体的,数据读取请求中至少包含有待读取数据的数据标识,如数据名称等,用以唯一表征处理单元所需要读取的目标数据。
步骤102:判断第一存储器是否满足直接读取条件,如果第一存储器满足直接读取条件,执行步骤103,如果第一存储器不满足直接读取条件,执行步骤104。
其中,步骤102中判断第一存储器是否满足直接读取条件具体可以为:判断第一存储器的可用存储区域是否满足直接读取条件。
具体的,直接读取条件可以为:第一存储器的可用存储区域小于或等于预设的存储阈值。例如,第一存储器可以为电子设备中的内存设备,如低功耗内存LPDDRS(Low PowerDouble Data Rate SDRAM),其中,SDRAM是指同步动态随机存取内存(synchronousdynamic random-access memory)。电子设备中还可以包含有其他存储器,如第二存储器,第二存储器与第一存储器不同,第二存储器与第一存储器在数据存储的性能上不同,和/或,第二存储器与第一存储器在数据存储的功能上不同。例如,第二存储器可以为存储有电子设备中各处理单元所需要的目标数据的存储器,如固态硬盘SSD(Solid State Disk或Solid State Drive),也称为NVMe SSD(NVM Express,Non Volatile Memory HostController Interface Specification)SSD,即非易失性内存主机控制器接口规范SSD。基于此,直接读取条件可以为:电子设备中内存的剩余空间小于或等于预设的存储阈值。
步骤103:从第二存储器读取数据标识对应的目标数据到处理单元中,以使得处理单元能够根据数据读取请求对目标数据进行处理。
例如,本实施例中在LPDDR剩余空间不足时,直接从SSD中读取目标数据到CPU中,由此,CPU可以按照数据读取请求对其内的目标数据进行处理。
步骤104:从第二存储器读取目标数据到第一存储器中,以使得处理单元能够根据数据读取请求将目标数据从第一存储器中读取到处理单元中并对目标数据进行处理。
例如,本实施例中在LPDDR剩余空间充足时,先从SSD中读取目标数据到LPDDR中,再由CPU从LPDDR中读取目标数据到CPU中,由此,CPU可以按照数据读取请求对其内的目标数据进行处理。可见,本实施例中即使LPDDR剩余空间不足,也不影响CPU中对目标数据的读取和处理。
从上述技术方案可以看出,本申请实施例一提供的一种数据处理方法中,在获得到处理单元的数据读取请求之后,如果第一存储器满足直接读取条件,那么从第二存储器中读取数据标识对应的目标数据到处理单元中,由此处理单元可以根据数据读取请求对目标数据进行处理,而如果第一存储器不满足直接读取条件,那么在从第二存储器中读取目标数据到第一存储器之后,再由处理单元将目标数据从第一存储器读取到处理单元中,进而由处理单元对目标数据进行处理。可见,本申请中优先在第二存储器中读取目标数据到第一存储器,再由处理单元将目标数据从第一存储器读取到处理单元中,而在第一存储器满足直接读取条件时可以直接从第二存储器中直接读取目标数据到处理单元中,由此可以不受限于第一存储器是否正常使用,均可以实现从第二存储器中的数据读取,避免因为第一存储器无法正常读取数据而导致的卡顿甚至死机的情况,从而提高对电子设备的使用体验。
在一种实现方式中,处理单元中存储有数据映射表,数据映射表至少包含有数据的数据标识和数据的存储地址。处理单元中存储的数据映射表可以基于第二存储器中的数据映射表得到。例如,将第二存储器中存储的数据映射表复制到处理单元中。而第二存储器中可以根据其所存储的数据被读取的状态来生成数据映射表。例如,数据映射表中初始状态下包含有第二存储器中所存储的所有数据的记录内容,每条数据的记录内容包含有该数据的数据标识和数据的存储地址,随着电子设备的运行,如果有某个数据被读取到第一存储器,那么在第二存储器的数据映射表中调整该数据对应的记录内容,该记录内容包含被读取到第一存储器的数据的数据标识及其在第一存储器中的存储地址。
基于此,本实施例中在步骤101之后,还可以包含如下步骤,如图2中所示:
步骤105:根据数据映射表,获得目标数据的存储地址。
在一种实现方式中,本实施例中可以在处理单元所存储的数据映射表中,根据数据获取请求中的数据标识,查询目标数据的存储地址,该存储地址指向第一存储器或指向第二存储器。需要说明的是,第二存储器中的数据映射表在每次有数据被读取到第一存储器的时候更新并更新到处理单元中。
在另一种实现方式中,本实施例中可以先从第二存储器中读取数据映射表并更新到处理单元中,再在处理单元中的数据映射表中根据数据标识查询目标数据的存储地址。需要说明的是,第二存储器中的数据映射表在每次有数据被读取到第一存储器的时候更新。
在另一种实现方式中,本实施例中可以直接在第二存储器中的数据映射表中根据数据标识查询目标数据的存储地址。
步骤106:判断目标数据的存储地址指向第一存储器或指向第二存储器,在目标数据的存储地址指向第一存储器的情况下,执行步骤107,在目标数据的存储地址执行第二存储器的情况下,执行步骤102,进而在第一存储器满足直接读取条件的情况下,执行步骤103,在第一存储器不满足直接读取条件的情况下,执行步骤104。
步骤107:处理单元按照存储地址在第一存储器中读取目标数据到处理单元并对目标数据进行处理。
也就是说,本实施例中在接收到数据读取请求之后,先判断第一存储器中是否已经存储有从第二存储器读取来的目标数据,如果有,那么可以由处理单元直接按照存储地址从第一存储器中读取目标数据即可,而如果第一存储器中没有目标数据,也就是目标数据的存储地址指向第二存储器,那么可以先判断第一存储器是否满足直接读取条件,如第一存储器的可用存储区域是否小于或等于存储阈值,如果第一存储器的可用存储区域小于存储阈值,那么可以直接从第二存储器读取目标数据到处理单元中,而如果第一存储器的可用存储区域大于存储阈值,那么可以先从第二存储器中读取目标数据到第一存储器中,以便于处理单元从第一存储器读取目标数据到处理单元中,基于此,处理单元就可以实现对目标数据的处理。可见,本实施例中在优先使用第一存储器实现目标数据读取的前提下,能够保证即使第一存储器不能正常使用也能够实现目标数据的读取,同时,本实施例中在接收到数据获取请求之后优先查看第一存储器中是否已经存储有目标数据,从而在第一存储器中存储有目标数据的情况下可以减少目标数据的读取流程,从而提高目标数据的读取和处理效率。
基于以上实现方案,本实施例中在步骤104中从第二存储器读取目标数据到第一存储器中之后,还可以根据目标数据在第一存储器中的存储地址,更新第二存储器中的数据映射表,之后,将第二存储器中的数据映射表更新到处理单元中,以此来保证处理单元中的数据映射表能够更加准确的表征各个数据的存储地址。
需要说明的是,本实施例中更新第二存储器中的数据映射表时,具体为:在数据映射表中添加目标数据的数据标识和目标数据在第一存储器中的存储地址,以表征在第一存储器的相应存储地址上存储有目标数据。基于此,将第二存储器中的数据映射表更新到处理单元之后,能够通过处理单元中的数据映射表确定目标数据的存储地址是否指向第一存储器。
在一种实现方式中,在步骤101之后,本实施例中还可以包含如下步骤,如图3中所示:
步骤108:检测数据标识对应的处理任务,如果处理任务满足并行读取条件,执行步骤109,如果处理任务不满足并行读取条件,执行步骤102。
其中,并行读取条件可以为:处理任务为数据处理量大于或等于处理阈值的任务,和/或,处理任务为特定的目标类型的任务。例如,处理任务为大型三维渲染的处理任务,需要进行数据读取的数据量大于处理阈值。
基于此,本实施例中可以通过检测数据标识对应的处理任务的数据处理量或任务类型来确定处理任务是否满足并行读取条件,并在处理任务满足并行读取条件的情况下,执行步骤109,如果处理任务不满足并行读取条件,执行步骤102。
步骤109:从第二存储器读取数据标识对应的第一部分数据到处理单元中,且从第二存储器读取数据标识对应的第二部分数据到第一存储器中,以使得处理单元能够根据数据读取请求将第二部分数据从第一存储器中读取到处理单元中,并使得处理单元对第一部分数据和第二部分数据进行处理。
其中,第一部分数据和第二部分数据组成数据标识对应的目标数据。
也就是说,本实施例中在检测到数据标识对应的处理任务满足并行读取条件时,可以采用步骤103和步骤104并行执行所形成的并行读取方案,也就是说,在使用第一存储器从第二存储器读取一部分数据到处理单元中的同时,从第二存储器读取另一部分数据到处理单元中,由此实现并行的数据读取,基于此,在处理单元中就可以得到数据标识对应的目标数据,进而可以实现数据处理。可见,本实施例中根据处理任务灵活实现数据的读取,以保证处理任务的正常执行。
基于以上实现方案,处理单元在对第一部分数据和第二部分数据进行处理时,具体可以通过以下方式实现:
首先,处理单元将分别对应于相同的数据标识的第一部分数据和第二部分数据进行合并,以得到数据标识对应的目标数据;之后,处理单元就可以对目标数据进行处理。
也就是说,在处理单元中可能包含有多个数据标识各自对应的多个部分数据,在处理单元进行数据处理之前,先将原本对应于同一数据标识的数据进行合并,然后再对合并后的数据进行处理。
在一种实现方式中,步骤103在从第二存储器读取数据标识对应的目标数据到处理单元时,可以通过以下方式实现:
利用任务调度器,从第二存储器读取数据标识对应的目标数据,以使得任务调度器将目标数据写入到处理单元中的缓存区域。
例如,通过计算机中的access scheduler先从SSD中读取目标数据,然后,accessscheduler将读取到的目标数据发送到CPU的L4 cache中,以便于CPU对L4 cache中的目标数据进行读取以及处理。
具体实现中,任务调度器与第二存储器之间基于第一总线接口连接,任务调度器与处理单元之间基于第二总线接口连接,第一总线接口和第二总线接口的总线延迟低于预设的延迟阈值。
例如,计算机中的access scheduler与SSD之间可以通过高速串行计算机扩展总线标准PCI-E(PCI-Express(peripheral component interconnect express)是一种)接口或CXL(Compute Express Link)接口连接,计算机中的access scheduler与CPU之间可以通过CXL连接。
其中,任务调度器可以通过能够实现以上功能的控制芯片实现,或者,任务调度器可以为处理器中具有以上功能的程序模块。
参考图4,为本申请实施例二提供的一种数据处理装置的结构示意图,该装置可以配置在能够进行数据处理的电子设备,如手机或计算机等。本实施例中的技术方案主要用于提高对电子设备的使用体验。
具体的,本实施例中的装置可以包含如下单元:
请求获得单元401,用于获得处理单元的数据读取请求,所述数据读取请求至少包含待读取数据的数据标识;
第一读取单元402,用于若第一存储器满足直接读取条件,从第二存储器读取所述数据标识对应的目标数据到所述处理单元中,以使得所述处理单元能够根据所述数据读取请求对所述目标数据进行处理;
其中,所述第一存储器与所述第二存储器不同;
第二读取单元403,用于若所述第一存储器不满足所述直接读取条件,从所述第二存储器读取所述目标数据到所述第一存储器中,以使得所述处理单元能够根据所述数据读取请求将所述目标数据从所述第一存储器中读取到所述处理单元中并对所述目标数据进行处理。
从上述技术方案可以看出,本申请实施例二提供的一种数据处理装置中,在获得到处理单元的数据读取请求之后,如果第一存储器满足直接读取条件,那么从第二存储器中读取数据标识对应的目标数据到处理单元中,由此处理单元可以根据数据读取请求对目标数据进行处理,而如果第一存储器不满足直接读取条件,那么在从第二存储器中读取目标数据到第一存储器之后,再由处理单元将目标数据从第一存储器读取到处理单元中,进而由处理单元对目标数据进行处理。可见,本申请中优先在第二存储器中读取目标数据到第一存储器,再由处理单元将目标数据从第一存储器读取到处理单元中,而在第一存储器满足直接读取条件时可以直接从第二存储器中直接读取目标数据到处理单元中,由此可以不受限于第一存储器是否正常使用,均可以实现从第二存储器中的数据读取,避免因为第一存储器无法正常读取数据而导致的卡顿甚至死机的情况,从而提高对电子设备的使用体验。
在一种实现方式中,所述处理单元中存储有数据映射表,所述数据映射表至少包含数据的数据标识和数据的存储地址;
其中,在请求获得单元401获得处理单元的数据读取请求之后,还用于:根据所述数据映射表,获得所述目标数据的存储地址;其中,若所述存储地址指向所述第一存储器,所述处理单元按照所述存储地址在所述第一存储器中读取所述目标数据到所述处理单元并对所述目标数据进行处理;在所述存储地址指向所述第二存储器的情况下,触发所述第一读取单元402,以从第二存储器读取所述数据标识对应的目标数据到所述处理单元中,或触发第二读取单元403,以从所述第二存储器读取所述目标数据到所述第一存储器中。
基于以上实现,在所述第一读取单元402从所述第二存储器读取所述目标数据到所述第一存储器中之后,还用于:根据所述目标数据在所述第一存储器中的存储地址,更新所述第二存储器中的数据映射表;将所述第二存储器中的所述数据映射表更新到所述处理单元中。
在一种实现方式中,在所述请求获得单元401获得处理单元的数据读取请求之后,还用于:检测所述数据标识对应的处理任务;如果所述处理任务满足并行读取条件,触发第一读取单元402从第二存储器读取所述数据标识对应的第一部分数据到所述处理单元中,且,触发第二读取单元403从所述第二存储器读取所述数据标识对应的第二部分数据到所述第一存储器中,以使得所述处理单元能够根据所述数据读取请求将所述第二部分数据从所述第一存储器中读取到所述处理单元中,并使得所述处理单元对所述第一部分数据和所述第二部分数据进行处理。
基于以上实现方案,所述处理单元对所述第一部分数据和所述第二部分数据进行处理时,具体用于:所述处理单元将分别对应于相同的所述数据标识的所述第一部分数据和所述第二部分数据进行合并,以得到所述数据标识对应的目标数据;所述处理单元对所述目标数据进行处理。
在一种实现方式中,第一读取单元402在从第二存储器读取所述数据标识对应的目标数据到所述处理单元时,具体用于:利用任务调度器从第二存储器读取所述数据标识对应的目标数据,以使得所述任务调度器将所述目标数据写入所述处理单元中的缓存区域。
具体的,所述任务调度器与所述第二存储器之间基于第一总线接口连接;所述任务调度器与所述处理单元之间基于第二总线接口连接,所述第一总线接口和所述第二总线接口的总线延迟低于预设的延迟阈值。
在一种实现方式中,所述第一存储器满足直接读取条件包括:所述第一存储器的可用存储区域小于或等于预设的存储阈值。
需要说明的是,本实施例中各单元的具体实现可以参考前文中的相应内容,此处不再详述。
参考图5,为本申请实施例三提供的一种电子设备的结构示意图,该电子设备可以包含如下结构:
第一存储器501;第一存储器501可以为由一个或多个存储芯片组成的存储集群;
第二存储器502;第二存储器502可以为由一个或多个存储芯片组成的存储集群;
处理单元503;处理单元503可以为包含一个或多个内核的处理器,或者,处理单元503可以为具有相应功能的程序模块。
任务调度器504,用于获得所述处理单元503的数据读取请求,所述数据读取请求至少包含待读取数据的数据标识;若所述第一存储器501满足直接读取条件,从第二存储器502读取所述数据标识对应的目标数据到所述处理单元503中,以使得所述处理单元503能够根据所述数据读取请求对所述目标数据进行处理;其中,所述第一存储器501与所述第二存储器502不同;若所述第一存储器501不满足所述直接读取条件,从所述第二存储器502读取所述目标数据到所述第一存储器501中,以使得所述处理单元503能够根据所述数据读取请求将所述目标数据从所述第一存储器501中读取到所述处理单元503中并对所述目标数据进行处理。
其中,任务调度器504可以为能够实现以上功能的控制芯片,或者,任务调度器可以为处理器中具有以上功能的程序模块。
从上述技术方案可以看出,本申请实施例三提供的一种电子设备中,在获得到处理单元的数据读取请求之后,如果第一存储器满足直接读取条件,那么从第二存储器中读取数据标识对应的目标数据到处理单元中,由此处理单元可以根据数据读取请求对目标数据进行处理,而如果第一存储器不满足直接读取条件,那么在从第二存储器中读取目标数据到第一存储器之后,再由处理单元将目标数据从第一存储器读取到处理单元中,进而由处理单元对目标数据进行处理。可见,本申请中优先在第二存储器中读取目标数据到第一存储器,再由处理单元将目标数据从第一存储器读取到处理单元中,而在第一存储器满足直接读取条件时可以直接从第二存储器中直接读取目标数据到处理单元中,由此可以不受限于第一存储器是否正常使用,均可以实现从第二存储器中的数据读取,避免因为第一存储器无法正常读取数据而导致的卡顿甚至死机的情况,从而提高对电子设备的使用体验。
以电子设备为Creator笔记本为例,也就是设计师笔记本,专业平面设计对电脑的要求非常高,首要的是CPU必须是多核心多线程,越多越好,同时要求CPU的主频尽可能的高。其次是内存的容量要大,最起码要在32GB以上,甚至有些程序比如3D Max要求内存越大越好,有多大用多大,因此,当设计师运行的程序需要的内存高于笔记本配置的内存容量时,就会爆内存,目前是的做法是通过虚拟内存的方式,但这种方式很慢,会造成用户程序lag,影响设计师工作效率。但笔记本设计来说,一般主流配置是16GB,最大也就32GB,增大内存会大幅度的增加笔记本成本。
有鉴于此,本申请中的技术方案主要通过提出一种新型的CPU设计架构,动态随机存取存储器Infinity DRAM(Dynamic Random Access Memory)通过CPU对NVME与LPDDR并行访问的方案,运用NVME,去大幅度扩展LPDDR的容量,从而提高设计师运行程序的速度,进而提高效率.让Creator再也不用为内存容量爆而影响工作。
参考图6所示的硬件逻辑示意图,笔记本中包含有NVME SSD和RAID以及LPDDR,另外,还有系统级芯片SOC(System on Chip),其中包含有CPU、存储控制器memorycontroller和access scheduler,以及相应的PCIE controller。CPU中包含有多个内核core和iGPU(Integrated Graphics Processor Unit),内核和iGPU中粉笔具有缓存cache,在笔记本中实现如下方案:
首先,本申请中通过Infinity DRAM Architecture、类存内计算、磁盘阵列RAID(Redundant Arrays of Independent Disks)、accelerator(加速器)结合复合传输架构,以提升NVME访问速度。并且,通过LPDDR/SSD Parallel Access(并行存取)Architecture为Creator解决程序爆内存/显存的问题。可见,本申请中通过重新定义CPU存储的访问(access)架构,动态实现NVME与LPDDR并行数据访问,实现Infinity DRAM。具体如下:
首先,对于Latency(延迟),一般L1(L1 D-cache和L1 I-cache)为2~4个时钟周期,L2 cache为11~13个,L3 cache为30~35个,LPDDR为大概100个,PCIe为大概300个,而对于CXL bus,挂在Ring上,可以将PCIe延迟提升到200以内。
其次,本申请中新定义NVME和PCIE控制器与PCIE复用的CXL.io架构,将其与系统内存并列,挂在CPU Ring bus(环形总线)上。
而在NVME or CXL.io device中,采用类存内计算存储NVME,增加DRAM以及Accelerator用于数据访问加速,用于减少data access latency。
基于此,本申请中对程序(即前文中的处理单元)使用内存的状况进行实时监控:
首先,SSD把FTL映射表(即前文中的数据映射表)完整地放入DRAM缓存中;
对于LPDDR capacity可以满足的程序,数据的访问通过直接存储器访问DMA(Direct Memory Access)读取(call)数据到LPDDR,然后CPU再从LPDDR进行数据Access。
对于某些非常吃内存的程序,比如大型3D渲染等,启用SSD/LPDDR并行访问模式,SSD同步把FTL映射表放入L4 Cache/eSRAM/eDRAM中,优先将数据call到LPDDR,CPU从LPDDR访问,当数据溢出LPDDR容量时,CPU通过PCIE or CXL直接从SSD call数据到CPU L3 or L4cache,这样可以实现内存容量无限扩展,弥补LPDDR容量的不足。
另外,同时需要保持最后一笔数据得一致性,当LPDDR最后一笔与SSD第一笔数据属于同一个数据时,需要保持cache地址独占,需要将这两笔数据在Cache中合并为一比数据。
而当LPDDR数据并清除一部分时,即LPDDR5容量够用,则CPU数据访问继续回到单一通过LPDDR读取SSD中数据的访问方式,如图7中所示:
CPU需要访问数据时,DMA先将数据从SSD搬运到LPDDR,CPU再把数据从LPDDR搬运到CPU Cache;
检测到内存容量即将溢出时,CPU管理数据访问模式,直接将SSD Data通过CXL.iobus or PCIE bus从SSD直接call到CPU Cache。
需要说明的是,CPU与LPDDR之间可以通过多种方式实现数据传输。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据处理方法,包括:
获得处理单元的数据读取请求,所述数据读取请求至少包含待读取数据的数据标识;
若第一存储器满足直接读取条件,从第二存储器读取所述数据标识对应的目标数据到所述处理单元中,以使得所述处理单元能够根据所述数据读取请求对所述目标数据进行处理;
其中,所述第一存储器与所述第二存储器不同;
若所述第一存储器不满足所述直接读取条件,从所述第二存储器读取所述目标数据到所述第一存储器中,以使得所述处理单元能够根据所述数据读取请求将所述目标数据从所述第一存储器中读取到所述处理单元中并对所述目标数据进行处理。
2.根据权利要求1所述的方法,所述处理单元中存储有数据映射表,所述数据映射表至少包含数据的数据标识和数据的存储地址;
其中,在所述获得处理单元的数据读取请求之后,所述方法还包括:
根据所述数据映射表,获得所述目标数据的存储地址;
其中,若所述存储地址指向所述第一存储器,所述处理单元按照所述存储地址在所述第一存储器中读取所述目标数据到所述处理单元并对所述目标数据进行处理;
在所述存储地址指向所述第二存储器的情况下,执行所述:从第二存储器读取所述数据标识对应的目标数据到所述处理单元中,或执行所述:从所述第二存储器读取所述目标数据到所述第一存储器中。
3.根据权利要求2所述的方法,在所述从所述第二存储器读取所述目标数据到所述第一存储器中之后,所述方法还包括:
根据所述目标数据在所述第一存储器中的存储地址,更新所述第二存储器中的数据映射表;
将所述第二存储器中的所述数据映射表更新到所述处理单元中。
4.根据权利要求1或2所述的方法,在所述获得处理单元的数据读取请求之后,所述方法还包括:
检测所述数据标识对应的处理任务;
如果所述处理任务满足并行读取条件,从第二存储器读取所述数据标识对应的第一部分数据到所述处理单元中,且,从所述第二存储器读取所述数据标识对应的第二部分数据到所述第一存储器中,以使得所述处理单元能够根据所述数据读取请求将所述第二部分数据从所述第一存储器中读取到所述处理单元中,并使得所述处理单元对所述第一部分数据和所述第二部分数据进行处理;
其中,所述并行读取条件包括:所述处理任务为数据处理量大于或等于处理阈值的任务,或者,所述处理任务为目标类型的任务。
5.根据权利要求4所述的方法,所述处理单元对所述第一部分数据和所述第二部分数据进行处理,包括:
所述处理单元将分别对应于相同的所述数据标识的所述第一部分数据和所述第二部分数据进行合并,以得到所述数据标识对应的目标数据;
所述处理单元对所述目标数据进行处理。
6.根据权利要求1或2所述的方法,从第二存储器读取所述数据标识对应的目标数据到所述处理单元,包括:
利用任务调度器从第二存储器读取所述数据标识对应的目标数据,以使得所述任务调度器将所述目标数据写入所述处理单元中的缓存区域。
7.根据权利要求6所述的方法,所述任务调度器与所述第二存储器之间基于第一总线接口连接;
所述任务调度器与所述处理单元之间基于第二总线接口连接,所述第一总线接口和所述第二总线接口的总线延迟低于预设的延迟阈值。
8.根据权利要求1或2所述的方法,所述第一存储器满足直接读取条件包括:所述第一存储器的可用存储区域小于或等于预设的存储阈值。
9.一种数据处理装置,包括:
请求获得单元,用于获得处理单元的数据读取请求,所述数据读取请求至少包含待读取数据的数据标识;
第一读取单元,用于若第一存储器满足直接读取条件,从第二存储器读取所述数据标识对应的目标数据到所述处理单元中,以使得所述处理单元能够根据所述数据读取请求对所述目标数据进行处理;
其中,所述第一存储器与所述第二存储器不同;
第二读取单元,用于若所述第一存储器不满足所述直接读取条件,从所述第二存储器读取所述目标数据到所述第一存储器中,以使得所述处理单元能够根据所述数据读取请求将所述目标数据从所述第一存储器中读取到所述处理单元中并对所述目标数据进行处理。
10.一种电子设备,包括:
第一存储器;
第二存储器;
处理单元;
任务调度器,用于获得所述处理单元的数据读取请求,所述数据读取请求至少包含待读取数据的数据标识;若所述第一存储器满足直接读取条件,从第二存储器读取所述数据标识对应的目标数据到所述处理单元中,以使得所述处理单元能够根据所述数据读取请求对所述目标数据进行处理;其中,所述第一存储器与所述第二存储器不同;若所述第一存储器不满足所述直接读取条件,从所述第二存储器读取所述目标数据到所述第一存储器中,以使得所述处理单元能够根据所述数据读取请求将所述目标数据从所述第一存储器中读取到所述处理单元中并对所述目标数据进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211039405.7A CN115328405A (zh) | 2022-08-29 | 2022-08-29 | 数据处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211039405.7A CN115328405A (zh) | 2022-08-29 | 2022-08-29 | 数据处理方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115328405A true CN115328405A (zh) | 2022-11-11 |
Family
ID=83928107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211039405.7A Pending CN115328405A (zh) | 2022-08-29 | 2022-08-29 | 数据处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115328405A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116860182A (zh) * | 2023-09-04 | 2023-10-10 | 江苏华存电子科技有限公司 | 一种利用cxl协议把ftl全映射表放在主机端ram的读写方法 |
-
2022
- 2022-08-29 CN CN202211039405.7A patent/CN115328405A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116860182A (zh) * | 2023-09-04 | 2023-10-10 | 江苏华存电子科技有限公司 | 一种利用cxl协议把ftl全映射表放在主机端ram的读写方法 |
CN116860182B (zh) * | 2023-09-04 | 2023-11-07 | 江苏华存电子科技有限公司 | 一种利用cxl协议把ftl全映射表放在主机端ram的读写方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237728B2 (en) | Method for accessing extended memory, device, and system | |
US8453015B2 (en) | Memory allocation for crash dump | |
US10956323B2 (en) | NVDIMM emulation using a host memory buffer | |
CN107526546B (zh) | 一种Spark分布式计算数据处理方法及系统 | |
CN111352861B (zh) | 内存压缩方法、装置及电子设备 | |
WO2017041570A1 (zh) | 向缓存写入数据的方法及装置 | |
US10789090B2 (en) | Method and apparatus for managing disaggregated memory | |
CN110968529A (zh) | 无缓存固态硬盘的实现方法、装置、计算机设备及存储介质 | |
CN112506823B (zh) | 一种fpga数据读写方法、装置、设备及可读存储介质 | |
KR20150044370A (ko) | 이종 메모리들을 관리하는 시스템들 | |
CN111090521A (zh) | 内存分配方法、装置、存储介质及电子设备 | |
JP2017016660A (ja) | マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム | |
US20220114086A1 (en) | Techniques to expand system memory via use of available device memory | |
CN115328405A (zh) | 数据处理方法、装置及电子设备 | |
US20170300255A1 (en) | Method and Apparatus for Detecting Transaction Conflict and Computer System | |
CN112654965A (zh) | 动态模块的外部分页和交换 | |
WO2021218502A1 (zh) | 一种页交换的方法、存储系统和电子设备 | |
US9354812B1 (en) | Dynamic memory utilization in a system on a chip | |
US9542318B2 (en) | Temporary cache memory eviction | |
JP6788566B2 (ja) | コンピューティングシステム及びその動作方法 | |
CN113220608A (zh) | 一种NVMe命令处理器及其处理方法 | |
US10956210B2 (en) | Multi-processor system, multi-core processing device, and method of operating the same | |
US10691621B2 (en) | Data cache segregation for spectre mitigation | |
KR20190053086A (ko) | 분리 메모리 관리 방법 및 장치 | |
US20210373790A1 (en) | Inference in memory |
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 |