1.本技术涉及计算机技术领域,尤其涉及一种数据存储方法、装置、计算机可读存储介质、异构片上集成系统、芯片、半导体集成面板、电子部件和交通工具。
背景技术:2.现在业内普遍使用的片上集成系统(system-on-a-chip,soc)数据存储虚拟化方案,主要是基于同构soc内虚拟机管理器管理的块设备,例如,virtio-blk。上述方案要求运行在由虚拟机管理器管理下的客户机和宿主机上,并且要求客户机和宿主机上的cpu是同构cpu,一般需要支持特定的模式,比如arm cortex-a 64bit cpu的el2虚拟化模式,才能将soc上的存储设备虚拟化成虚拟机上的硬盘来使用。
3.这就导致上述方案无法适用于异构soc上。
技术实现要素:4.本技术创造性地提供一种数据存储方法、装置、计算机可读存储介质、异构片上集成系统、芯片、半导体集成面板、电子部件和交通工具。
5.根据本技术实施例第一方面,提供一种数据存储方法,包括:将第一数据访问请求转换为第二数据访问请求,第一数据访问请求包括来自异构片上集成系统上不同硬件域的数据访问请求,异构片上集成系统包括至少两个硬件域,至少两个硬件域中不同硬件域的硬件资源相互隔离,第二数据访问请求包括硬件域的标识及第一数据访问请求所请求的目标数据和数据访问操作;根据目标数据,确定目标数据存储管理器,目标数据存储管理器部署在至少两个硬件域中的第一硬件域,第一硬件域中分配有存储设备;将第二数据访问请求,发送至目标数据存储管理器。
6.根据本技术实施例第二方面,提供一种数据存储的装置,该装置包括:数据访问请求转换模块,用于将第一数据访问请求转换为第二数据访问请求,第一数据访问请求包括来自异构片上集成系统上不同硬件域的数据访问请求,异构片上集成系统包括至少两个硬件域,至少两个硬件域中不同硬件域的硬件资源相互隔离,第二数据访问请求包括硬件域的标识及第一数据访问请求所请求的目标数据和数据访问操作;数据存储管理器确定模块,用于根据目标数据,确定目标数据存储管理器,目标数据存储管理器部署在至少两个硬件域中的第一硬件域,第一硬件域中设置有存储设备;数据访问请求发送模块,用于将第二数据访问请求,发送至目标数据存储管理器。
7.根据本技术实施例第三方面,提供一种存储有计算机指令的计算机可读存储介质,其中,计算机指令用于使计算机执行上述数据存储方法。
8.根据本技术实施例第四方面,提供一种异构片上集成系统,包括:至少两个硬件域,硬件域在相互隔离的硬件资源上运行有独立的操作系统,硬件域用于执行上述用于发送第二数据访问请求的数据存储方法;至少两个硬件域中的第一硬件域中设置有存储设备,部署有数据存储管理器,数据存储管理器用于执行上述用于统一处理来自异构片上集
成系统上不同硬件域的数据访问请求的数据存储方法。
9.根据本技术实施例第五方面,提供一种芯片,该芯片上运行有异构片上集成系统,异构片上集成系统包括至少两个硬件域,硬件域在相互隔离的硬件资源上运行有独立的操作系统,芯片用于执行上述数据存储方法。
10.根据本技术实施例第六方面,提供一种半导体集成面板,该半导体集成面板设置有上述芯片。
11.根据本技术实施例第七方面,提供一种电子部件,该电子部件设置有上述半导体集成面板。
12.根据本技术实施例第八方面,提供一种交通工具,该交通工具设置有上述电子部件。
13.本技术提供了一种数据存储方法、装置、计算机可读存储介质、异构片上集成系统、芯片、半导体集成面板、电子部件和交通工具,该方法包括:首先,将来自异构片上集成系统上不同硬件域的第一数据访问请求,转换为包括硬件域的标识、目标数据和数据访问操作的第二数据访问请求;然后,将第二数据访问请求发送至可访问存储设备的数据存储管理器,由数据存储管理器统一处理来自各硬件域的数据访问请求,从而实现了一种可适用于异构片上集成系统的虚拟化数据存储方案。
14.需要理解的是,本技术的实施并不需要实现上面的全部有益效果,而是特定的技术方案可以实现特定的技术效果,并且本技术的其他实施方式还能够实现上面未提到的有益效果。
附图说明
15.通过参考附图阅读下文的详细描述,本技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本技术的若干实施方式,其中:在附图中,相同或对应的标号表示相同或对应的部分。
16.图1为本技术一实施例实现数据存储方法所采用的异构soc架构示意图;图2为图1所示实施例在硬件域执行数据存储方法的流程示意图;图3为图1所示实施例在虚拟设备管理域执行数据存储方法的流程示意图;图4为本技术另一实施例实现数据存储方法所采用的异构soc架构示意图;图5为图4所示实施例硬件域与虚拟设备管理域通过自定的通信协议进行通信的流程示意图;图6为图4所示实施例的存储设备状态机状态转换示意图;图7为图4所示实施例逐一处理第二数据访问请求流程示意图;图8为本技术另一实施例在进行数据访问的硬件域所采用的数据存储系统架构;图9为本技术实施例数据存储的装置的结构示意图。
具体实施方式
17.为使本技术的目的、特征、优点能够更加的明显和易懂,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅
仅是本技术一部分实施例,而非全部实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
18.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
19.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
20.目前,传统的虚拟机管理器需要基于同构cpu的soc,一般要求同构cpu具有特定硬件模式来支持硬件虚拟化,比如:arm cortex-a 64bit cpu支持虚拟化模式el2。
21.在传统的具有虚拟机管理器的系统上,存储虚拟化通常基于块设备的虚拟化方式(virtio-blk),通常各个虚拟块设备的前端在各个客户端,虚拟块设备的后端在主机端(存储设备位于主机端)。客户端与主机端运行于虚拟机管理器上,虚拟管理器运行于特定的硬件模式。
22.与传统的虚拟机管理器不同,本技术数据存储方法所应用于的soc是异构soc,具有多个异构的cpu核,这些异构的cpu核以及其它的硬件资源比如中断控制器、定时器(timer)控制器、输入输出(io)控制器、内存控制器组成了不同的硬件域。各个硬件域通过访问权限控制将资源锁定,使得各个硬件域只能访问那些分配给本硬件域的硬件资源,从而实现硬件资源的分配和隔离。
23.因此在异构的soc中,不能通过虚拟机管理器将soc上的存储设备虚拟化成块设备,再将块设备虚拟化成虚拟机上的硬盘来使用。
24.在异构soc上,如果某个硬件域需要进行数据存储,通常需要给该硬件域分配单独的存储设备,而某个存储设备一旦分配给该硬件域后,其他硬件域就不能再使用该存储设备了。这就导致,如果有多个硬件域需要使用存储设备,则需要配备多个存储设备以满足每个硬件域的需要。当一个存储设备仅供一个硬件域使用时,其闲置率通常会比较高,也会产生资源浪费。如此,既不利于节约整个soc的硬件成本和使用空间,也不利于提高各个存储设备的利用率。
25.为此,本技术一实施例采用了如图1所示的异构soc架构。如图1所示,在该异构soc中,硬件访问权限控制器104在soc启动阶段将硬件资源分配至多个硬件域,例如图1所示的硬件域101、虚拟设备管理域102和硬件域103,并通过权限控制进行资源锁定,使得每个硬件域的硬件资源只能被本硬件域的处理器访问和使用,而不能被其他硬件域访问和使用。
26.其中,硬件访问权限控制器104可通过以下配置策略来实现对某个硬件资源的权限控制,假设该硬件资源为一段“ddr”内存区域:硬件域标识:id=1 (代表可以访问该资源的硬件域,所有在此硬件域中可以访问地址空间的设
备,在发起地址空间访问时,在总线上都带有同样的id);ddr地址空间(代表允许访问的地址空间);读/写(代表允许进行的操作)。
27.进一步地,可以将上述配置策略加入到防火墙的配置文件中,以便通过防火墙执行以下操作,以实现硬件之间的隔离:1)设置允许访问资源的硬件域;2)设置允许访问的地址空间;3)设置允许对资源访问的模式。
28.如此,只有硬件域标识为“1”的设备,才可以使用该“ddr”内存区域指定的地址空间,并允许该硬件域在该“ddr”内存区域指定的地址空间上进行读或写操作。
29.硬件访问权限控制器104在soc启动阶段将硬件资源分配至多个硬件域之后,得到如图1所示的资源分配情况:硬件域101分配有中央处理器(cpu-1)、图形处理器(gpu-1)和显示处理器(dpu-1)、数字信号处理(digital signal processing, dsp)模块和人工智能(ai)模块;硬件域103分配有中央处理器(cpu-2)、图形处理器(gpu-2)和数据处理器(dpu-2)、直接存储器访问(direct memory access,dma)模块和canfd模块组;虚拟设备管理域102分配有中央处理器(cpu-3)和多个存储设备:多媒体mmc卡(emmc)、统一闪存ufs存储卡(ufs)、tf存储卡(tf)和sd存储卡(sd)。
30.其中,硬件域101、虚拟设备管理域102和硬件域103均可安装独立的操作系统,由各自安装的操作系统管理和调度各自的硬件资源。
31.在上述异构soc中,均未给硬件域101或硬件域103分配任何存储设备,而是将多个存储设备分配至虚拟设备管理域102中,并在该虚拟设备管理域102上部署了数据存储管理器,由数据存储管理器统一处理来自各个硬件域(例如,硬件域101和硬件域103)的数据访问请求。
32.对于每个硬件域(例如,硬件域101或硬件域103)来说,则可以应用图2所示的数据存储方法来实现数据存储过程。如图2所示,该方法包括:操作s210,将第一数据访问请求转换为第二数据访问请求,第一数据访问请求包括来自异构片上集成系统上不同硬件域的数据访问请求,异构片上集成系统包括至少两个硬件域,至少两个硬件域中不同硬件域的硬件资源相互隔离,第二数据访问请求包括硬件域的标识及第一数据访问请求所请求的目标数据和数据访问操作;其中,第一数据访问请求是硬件域本地发起的数据访问请求,主要来自本地操作系统,采用的是本地操作系统能够识别的数据格式。
33.第二数据访问请求是待发送至数据存储管理器的数据访问请求,采用的是数据存储管理器可以识别的数据格式。
34.由于数据存储管理器要处理来自不同硬件域的数据访问请求,还需要将数据访问请求的响应信息返回给发送数据访问请求的硬件域,故在第二数据访问请求中,除了将本地硬件模块或操作系统能够识别的数据格式转换为目标数据存储管理器可以识别的数据格式之外,还会加入硬件域的标识。
35.硬件域的标识可以是建立硬件域时,为与其他硬件域区分而设定的唯一名称、地
址或编号等。
36.操作s220,根据目标数据,确定目标数据存储管理器,目标数据存储管理器部署在至少两个硬件域中的第一硬件域,第一硬件域中分配有存储设备;其中,目标数据存储管理器是对目标数据进行管理的数据存储管理器。该目标数据存储管理器所部署的第一硬件域为异构soc中多个硬件域之一。
37.在图1所示的本技术实施例中,第一硬件域就是虚拟设备管理域102,该虚拟设备管理域102,是专用于处理来自不同硬件域上的数据访问请求而新建的硬件域,因此为虚拟设备管理域102分配了处理器(cpu-3)和多个存储设备。如此,可对多个存储设备进行集中管理,并通过集中管理的存储设备,对来自不同硬件域上的数据访问请求,进行集中处理。
38.在本技术的另一些实施中,第一硬件域也可以是在原有的分配有存储设备的硬件域上部署数据存储管理器而得到的硬件域。如此,可基于原有已经分配存储设备的硬件域,来实现虚拟设备管理域102,而无须新建硬件域。
39.在本技术的另一些实施中,还有可能出现数据存储客户端与数据存储管理端都位于第一硬件域的情况。在这种情况下,仍然可以通过前后端方式接入,实现对数据存储的集中管理。
40.在本技术实施例的异构soc中,可以设置一个或多个数据存储管理器。
41.一个虚拟设备管理域,可以只包含一个存储设备。例如,假设虚拟设备管理域102中只包含一个存储设备:多媒体mmc卡,则可以在虚拟设备管理域102中设置一个数据存储管理器,并在进行数据存储的硬件域(例如,硬件域101或硬件域103)的操作系统中设置该存储设备的虚拟化前端,在虚拟设备管理域102的操作系统中设置该存储设备的虚拟化前端后端。如此,确保进行存储数据的硬件域,可通过该数据存储管理器,访问虚拟设备管理域102中的存储设备。
42.一个虚拟设备管理域,还可包含多个存储设备。例如,假设虚拟设备管理域102中可包含多个存储设备:多媒体mmc卡、统一闪存ufs存储卡、tf存储卡和sd存储卡等。针对上述不同的存储设备(存储卡),可以在虚拟设备管理域102中设置多个数据存储管理器,并针对每种不同的存储设备进行虚拟化,包括:在进行数据存储的硬件域(例如,硬件域101或硬件域103)的操作系统中,设置各个存储设备的虚拟化前端;在虚拟设备管理域102的操作系统中,设置各个存储设备的虚拟化前端后端,通过多个数据存储管理器,访问虚拟设备管理域102中的各个存储设备。
43.如果异构soc中只设置有一个数据存储管理器,则该唯一的数据存储管理器就是目标数据存储管理器;如果异构soc中设置有多个数据存储管理器,且由不同的数据存储管理器分类管理根据来源、种类、用途的不同管理不同数据的,则可以在数据和数据存储管理器之间建立映射关系,并根据该映射关系,将用于管理目标数据的数据存储管理器确定为目标数据存储管理器;如果异构soc中设置有多个数据存储管理器,且各个数据存储管理器是互为备份的主从关系,则可将状态为活跃(active)的主数据存储管理器确定为目标数据存储管理器。
44.操作s230,将第二数据访问请求,发送至目标数据存储管理器。
45.在本技术实施例中,会将第二数据访问请求放置在与第一硬件域共享的共享内存,然后通过本硬件域内的通信模块,例如,邮箱(mailbox),与目标数据存储管理器所在的
第一硬件域进行通信,通知目标数据存储管理器去共享内存读取第二数据访问请求。目标数据存储管理器收到该通知后,就会从该共享内存中读取第二数据访问请求。
46.其中,与第一硬件域共享的共享内存是通过硬件访问权限控制器在soc启动阶段设置的;相应地,将第二数据访问请求,发送至目标数据存储管理器,包括:将第二数据访问请求,发送至共享内存,等待目标数据存储管理器从共享内存中获取第二数据访问请求。
47.在目标数据存储管理器收到第二数据访问请求之后,则可以响应于第二数据访问请求,执行图3所示的以下操作:操作s310,接收第二数据访问请求;如上所述,在本技术实施例中,目标数据存储管理器是从共享内存中获取第二数据访问请求。
48.操作s320,根据第二数据访问请求,执行数据访问操作,得到操作结果;在接收到第二数据访问请求后,目标数据存储管理器会从第二数据访问请求中获取目标数据、数据访问操作和发送第二数据访问请求的硬件域的标识。
49.如果数据访问操作是用于读取数据的,则目标数据存储管理器会先在第一硬件域内确定目标数据所在的目标存储设备,然后从目标存储设备中读取目标数据;如果数据访问操作是用于写入数据的,则目标数据存储管理器会先在第一硬件域内确定可以用于存储目标数据的目标存储设备,然后将目标数据写入目标存储设备(具体地,可以通过共享内存从客户端传输给第一硬件域,再由数据存储管理器读取数据写入目标存储设备),获取并记录下目标数据在目标存储设备的存储位置和操作结果(例如,成功或失败);以此类推。
50.操作s330,将操作结果返回给硬件域。
51.在本实施例中,目标数据存储管理器可根据第二数据访问请求中携带的硬件域的标识,将操作结果(读取到的目标数据,或写入目标数据是否成功等)发送到该硬件域的邮箱中。
52.在本技术的另一些实施例中,目标数据存储管理器也可以将操作结果(读取到的目标数据,或写入目标数据是否成功等)和第二数据访问请求中携带的硬件域标识一起发送到共享内存中,并通过邮箱通知相应的硬件域来共享内存读取。
53.如此,可由数据存储管理器统一处理来自各硬件域的数据访问请求,从而实现了一种可适用于异构片上集成系统的集中数据存储方案。该方案可在异构soc 上实现同构soc通过将块设备虚拟化为虚拟机的硬盘一样的设备虚拟化功能:各个硬件域可共享存储设备且互不影响,即使只有一个存储设备也可供多个硬件域使用,从而大幅降低了存储设备的硬件成本和使用空间,还进一步提高了存储设备的利用率。
54.图4示出了本技术另一实施例实现数据存储方法所采用的异构soc。
55.如图4所示,在图4所示的本技术实施例中,分别在硬件域401和硬件域402中部署了虚拟存储设备驱动前端,通过该虚拟存储设备驱动前端将第一数据访问请求转换为第二数据访问请求。为了方便硬件域401和硬件域402与虚拟设备管理域403之间进行数据通信,还建立了专用的通信协议栈进行数据通信。
56.相应地,在图4所示的本技术实施例中,通过该虚拟存储设备驱动前端将第一数据
访问请求转换为第二数据访问请求,包括:根据自定义的通信协议,对第一数据访问请求进行打包,得到第二数据访问请求。
57.此外,虚拟设备管理域403,还专门在与硬件域共享的共享内存中设置有“环形buffer”作为缓冲队列,在接收第二数据访问请求之后,将第二数据访问请求放入缓冲队列。之后,由io请求调度器基于设定的调度规则,从缓冲队列中,获取待处理的下一个第二数据访问请求。在获取到待处理的下一个第二数据访问请求后,通过通信协议栈对该第二数据访问请求进行解包,得到要访问的目标数据、数据访问操作和硬件域标识。之后,一方面,通过存储设备状态迁移状态机确保数据访问请求不被打断直至执行完毕;另一方面,通过虚拟存储设备驱动后端访问虚拟设备管理域403内分配到的存储设备,例如:多媒体mmc卡、统一闪存ufs存储卡、tf存储卡和sd存储卡等等。
58.其中,io请求调度器所基于的调度策略包括:轮询(round robin)策略、公平调度(cfq)策略或优先级(priority)策略。
59.进一步地,图5示出了图4所示的本技术实施例硬件域(以硬件域401为例),与虚拟设备管理域403通过自定的通信协议进行通信的流程。如图5所示,硬件域401会向虚拟设备管理域403发送请求消息501,该请求消息501包括“reqidentification”(请求标识)、“reqcmd”(请求命令)和“reqargs”(请求参数)三个部分。虚拟设备管理域403收到该请求消息501之后,会返回一个响应消息502,该响应消息502会包括“rspidentification”(响应标识)、“rspcmd”(请求命令)和“rspargs”(响应参数)等。
60.下面是关于该自定义通信协议中的一些定义示例:1)req identification主要包括后面下发送的cmd/args 是由哪个硬件域进行发送的硬件域标识,用来表征发送者的身份。具体定义,可参见下表1:表12)req cmd主要包括了需要发送的命令,具体定义,可参见下表2:表2
3)req args主要包括了发送命令的参数, 可以包含连续args1~argsn 多个参数。具体定义,可参考下表3。
61.表34)rsp identification与req identification对应,与req identification有一样的命令格式。代表着是对来自于哪一个发送者(硬件域)命令的响应。
62.5)rsp cmd与req cmd对应,与req cmd有一样的命令格式。代表着是对哪一类命令的响应。
63.6)rsp args是对req cmd进行响应返回的数据。
64.图6示出了图4所示实施例所使用的存储设备状态机进行状态转换的过程。如图6所示,当处理完上一个数据访问请求命令后,存储设备状态机的状态变为“可处理下一个数据访问请求状态601”;之后,可以处理下一个数据访问请求命令1。
65.数据存储管理器在处理数据访问请求命令1时,首先会检测存储设备状态机,若存储设备状态机为“可处理下一个数据访问请求状态601”,则开始执行数据访问请求命令1。
66.数据访问请求命令1的执行过程包括:向存储设备发送数据操作开始命令,等待响应;收到响应后,执行数据具体操作,例如,根据数据的起始地址和大小,向存储设备发送多个块数据的读/写命令,这个过程可能会持续一段时间,并进行多次读写;当数据读写完成后,向存储设备发送数据操作停止命令。
67.在存储设备端,存储设备会根据上述数据访问请求命令1的执行过程,修改存储设
备状态机的状态,例如:在收到数据操作开始命令,为读写数据做准备;然后,在执行数据具体操作时,例如,执行多个块数据的读/写操作命令,则将存储设备状态机的状态设置为“发送/接收数据状态602”;在收到数据操作停止命令后,将存储设备状态机的状态重新设置为“可处理下一个数据访问请求状态601”以处理下一个数据访问请求命令2(图6中未示出)。
68.此外,存储设备状态机的状态通常会对应一组可执行的命令,即当存储设备状态机处于某种状态时,只能执行特定的一个或几个命令。例如,当存储设备状态机的状态为“发送/接收数据状态602”时,不能接收新的数据访问请求,而只能接收读/写停止命令,或挂起命令。
69.如此可确保一个数据访问请求处理完毕之后再处理下一个,以免同时处理多个数据访问请求命令时,发生意外造成数据错误或程序错误。
70.图7示出了图4所示实施例通过io请求调度器和存储设备状态机从“环形buffer”中获取第二数据访问请求并逐一处理的流程。如图7所示,包括:操作s710,状态机的状态显示为可处理下一个数据访问请求;操作s720,判断队列中是否还有下一个数据访问请求,若有,则继续操作s730,若没有则循环等待直到队列中有下一个数据访问请求;操作s730,从数据访问请求队列中获取数据访问请求;操作s740,处理数据访问请求;操作s750,根据状态机的状态判断可以处理下一个请求队列,若是,则继续操作s760,若否,则返回操作s720;操作s760,基于io调度器选择下一个请求队列,之后再回到操作s720对下一个请求队列进行处理。
71.图8示出了本技术另一实施例在一硬件域实现数据存储方法在所采用的数据存储系统架构。如图8所示,该数据存储系统位于需要使用存储设备进行文件存储的某一硬件域中,该硬件域作为数据存储管理器的客户端,其中,虚拟文件系统801用于提供文件存储服务,包括多个子文件系统,例如:文件系统-1、文件系统-2和文件系统-3;文件系统-2通过通用块层802(genericblocklayer)与io调度层803(ioschedulelayer)进行交互;之后,再通过io调度层803 与mmc卡的虚拟化mmc前端(虚拟存储设备驱动前端),或ufs卡的虚拟化ufs前端(虚拟存储设备驱动前端)进行交互以实现数据存储过程。
72.如此,可将虚拟设备管理域中的存储设备(例如,mmc卡),虚拟化成该硬件域中的虚拟化存储设备前端(例如,mmc卡的虚拟化mmc前端),如此可以访问本地设备相同的方式访问虚拟化存储设备前端,而无须了解存储设备的具体存储位置,从而大大简化了该硬件域中上层应用对存储设备的使用和访问。
73.进一步地,本技术实施例还提供一种数据存储的装置。如图9所示,该装置90包括:数据访问请求转换模块901,用于将第一数据访问请求转换为第二数据访问请求,第一数据访问请求包括来自异构片上集成系统上不同硬件域的数据访问请求,异构片上集成系统包括至少两个硬件域,至少两个硬件域中不同硬件域的硬件资源相互隔离,第二数据访问请求包括硬件域的标识及第一数据访问请求所请求的目标数据和数据访问操作;数据存储管理器确定模块902,用于根据目标数据,确定目标数据存储管理器,目标数据存储管理器部署在至少两个硬件域中的第一硬件域,第一硬件域中设置有存储设备;数据访问请求发送
模块903,用于将第二数据访问请求,发送至目标数据存储管理器。
74.根据本技术一实施例,该装置90还包括:硬件资源分配模块,用于为第一硬件域,分配存储设备;数据存储管理器部署模块,用于在第一硬件域上部署目标数据存储管理器。
75.根据本技术一实施例,数据访问请求转换模块901具体用于根据自定义的通信协议,对第一数据访问请求进行打包,得到第二数据访问请求。
76.根据本技术一实施例,该装置90还包括:共享内存设置模块,用于设置与第一硬件域共享的共享内存;相应地,数据访问请求发送模块903具体用于将第二数据访问请求,发送至共享内存,等待目标数据存储管理器从共享内存中获取第二数据访问请求。
77.根据本技术一实施例,该装置90还包括:第二数据访问请求接收模块,用于接收第二数据访问请求;数据访问操作执行模块,用于根据第二数据访问请求,执行数据访问操作,得到操作结果;操作结果返回模块,用于将操作结果返回给硬件域。
78.根据本技术一实施例,该装置90还包括:数据访问请求缓冲模块,用于将第二数据访问请求放入缓冲队列。
79.根据本技术一实施例,该装置90还包括:数据访问请求调度模块,用于基于设定的调度规则,从缓冲队列中,获取待处理的下一个第二数据访问请求。
80.根据本技术一实施例,该装置90还包括:数据访问请求执行完毕确定模块,用于确定上一个数据访问请求已经执行完毕。
81.根据本技术一实施例,数据访问操作执行模块包括:解析子模块,用于根据自定义的通信协议,对第二数据访问请求进行解包,得到第一数据访问请求所请求的目标数据和数据访问操作;执行子模块,用于根据目标数据和数据访问操作,执行数据访问操作。
82.本技术实施例还提供一种存储有计算机指令的计算机可读存储介质,其中,计算机指令用于使计算机执行上述任一项数据存储方法。
83.本技术实施例还提供一种异构片上集成系统,如图1所示,包括:至少两个硬件域(例如,硬件域101和硬件域103),硬件域在相互隔离的硬件资源上运行有独立的操作系统,硬件域用于执行上述用于发送第二数据访问请求的数据存储方法;至少两个硬件域中的第一硬件域(例如,虚拟设备管理域102)中设置有存储设备(例如,ufs卡),部署有数据存储管理器(图1中未示出),数据存储管理器用于执行上述用于统一处理来自异构片上集成系统上不同硬件域的数据访问请求的数据存储方法。
84.本技术实施例还提供一种芯片,该芯片上运行有异构片上集成系统,异构片上集成系统包括至少两个硬件域,硬件域在相互隔离的硬件资源上运行有独立的操作系统,芯片用于执行上述任一项的数据存储方法。
85.本技术实施例还提供一种半导体集成面板,该半导体集成面板设置有上述芯片。
86.本技术实施例还提供一种电子部件,该电子部件设置有上述半导体集成面板。
87.本技术实施例还提供一种交通工具,该交通工具设置有上述电子部件。
88.这里需要指出的是:以上针对实施例数据存储装置的描述、以上针对异构soc实施例的描述、以上针对计算机存储介质实施例的描述、以上针对芯片实施例的描述、以上针对半导体集成面板实施例的描述、以上电子部件实施例的描述和以上针对交通工具实施例的描述,与前述方法实施例的描述是类似的,具有同前述方法实施例相似的有益效果,因此不做赘述。对于本技术对实施例数据存储装置的描述、以上对异构soc实施例的描述、以上对
计算机存储介质实施例的描述、以上对芯片实施例的描述、以上对半导体集成面板实施例的描述、以上电子部件实施例的描述和以上对交通工具实施例的描述尚未披露的技术细节,请参照本技术前述方法实施例的描述而理解,为节约篇幅,因此不再赘述。
89.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
90.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个装置,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
91.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
92.另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以利用硬件的形式实现,也可以利用硬件加软件功能单元的形式实现。
93.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储介质、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
94.或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例方法的全部或部分。而前述的存储介质包括:移动存储介质、rom、磁碟或者光盘等各种可以存储程序代码的介质。
95.以上,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。