磁盘访问方法及装置、电子设备、非易失性存储介质与流程

文档序号:31601622发布日期:2022-09-21 09:03阅读:84来源:国知局
磁盘访问方法及装置、电子设备、非易失性存储介质与流程

1.本技术涉及车载系统领域,具体而言,涉及一种磁盘访问方法及装置、电子设备、非易失性存储介质。


背景技术:

2.物联网时代下,异构处理单元的互联场景越来越复杂,包含基于分布式软总线的不同设备互联,也包含同模组中的不同操作系统互联。对比发现,虽然后者的硬件设计复杂度更高导致模组成本提升,但是数据带宽明显占据优势。
3.区别于类似虚拟机监视器(hypervisor)的虚拟操作系统,硬件隔离的操作系统方案不得不面临的问题是,如何均衡设备隔离和设备共享。市场上流行的中央处理器(central processing unit,cpu)都是多核处理器,根据不同操作系统的业务需求划分cpu的大小核是常见的方案;双倍速率同步动态随机存储器(double data rate,ddr)模块并不具备这样的特性,不同操作系统只能共享使用不同的ddr空间;磁盘模块受限于磁盘控制器等原因无法实现被不同操作系统共享访问。
4.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本技术实施例提供了一种磁盘访问方法及装置、电子设备、非易失性存储介质,以至少解决硬件隔离的多个操作系统无法共享访问磁盘的技术问题。
6.根据本技术实施例的一个方面,提供了一种磁盘访问方法,包括:启动车载仪表系统中的磁盘代理服务,其中,至少一个目标系统通过磁盘代理服务访问车载仪表系统能够直接访问的磁盘,至少一个目标系统和车载仪表系统为位于同一硬件模组中不同类型的操作系统;接收来自至少一个目标系统的磁盘访问请求,其中,磁盘访问请求用于获取磁盘的信息;响应于磁盘访问请求,通过磁盘代理服务访问磁盘中的数据。
7.可选地,响应于磁盘访问请求,通过磁盘代理服务访问磁盘中的数据,包括:向至少一个目标系统发送响应报文,其中,响应报文中包括:磁盘的信息以及共享内存的地址,共享内存用于缓存磁盘的读写数据;在磁盘代理服务生效后,接收来自至少一个目标系统的磁盘数据读写请求,其中,至少一个目标系统将磁盘的信息以及共享内存的地址记录到本地后,磁盘代理服务生效;响应于磁盘数据读写请求,通过磁盘代理服务读写磁盘中的数据。
8.可选地,响应于磁盘数据读写请求,通过磁盘代理服务读写磁盘中的数据,包括:在响应于磁盘数据读请求的情况下,按照共享内存的地址将从磁盘读取的磁盘数据缓存至共享内存,通过磁盘代理服务将读取的磁盘数据由共享内存发送至至少一个目标系统;在响应于磁盘数据写请求的情况下,按照共享内存的地址将至少一个目标系统需要写入磁盘的磁盘数据缓存至共享内存,通过磁盘代理服务将需要写入的磁盘数据由共享内存写入磁盘。
9.可选地,响应于磁盘访问请求,通过磁盘代理服务访问磁盘中的数据,还包括:在车载仪表系统发生故障的情况下,拒绝响应于磁盘数据读请求;在车载仪表系统发生故障的情况下,将至少一个目标系统需要写入磁盘的磁盘数据缓存至目标内存,其中,目标内存是与共享内存不同的存储区域;在车载仪表系统从故障中恢复后,将目标内存中缓存的磁盘数据同步至共享内存。
10.可选地,启动车载仪表系统中的磁盘代理服务之后,上述方法还包括:根据配置文件初始化至少一个目标系统的磁盘访问请求通道以及共享内存,其中,述磁盘访问请求通道用于发送磁盘访问请求。
11.可选地,磁盘控制器设置在车载仪表系统中,其中,磁盘控制器用于向磁盘的磁盘驱动器发送控制信号。
12.可选地,至少一个目标系统包括:第一系统和第二系统,其中,第一系统的启动时间早于车载仪表系统的启动时间,第二系统的启动时间晚于车载仪表系统的启动时间。
13.根据本技术实施例的另一方面,还提供了一种磁盘访问装置,包括:启动模块,用于启动车载仪表系统中的磁盘代理服务,其中,至少一个目标系统通过磁盘代理服务访问车载仪表系统能够直接访问的磁盘,至少一个目标系统和车载仪表系统为位于同一硬件模组中不同类型的操作系统;接收模块,用于接收来自至少一个目标系统的磁盘访问请求,其中,磁盘访问请求用于获取磁盘的信息;响应模块,用于响应于磁盘访问请求,通过磁盘代理服务访问磁盘中的数据。
14.根据本技术实施例的另一方面,还提供了一种电子设备,包括:车载仪表系统、磁盘以及至少一个目标系统,其中,车载仪表系统能够直接访问的磁盘,车载仪表系统,用于启动车载仪表系统中的磁盘代理服务,其中,至少一个目标系统通过磁盘代理服务访问磁盘,至少一个目标系统和车载仪表系统为位于同一硬件模组中不同类型的操作系统;至少一个目标系统,用于向车载仪表系统发送磁盘访问请求,其中,磁盘访问请求用于获取磁盘的信息;车载仪表系统,还用于接收磁盘访问请求,并响应于磁盘访问请求,通过磁盘代理服务访问磁盘中的数据。
15.根据本技术实施例的再一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的磁盘访问方法。
16.根据本技术实施例的再一方面,还提供了一种处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的磁盘访问方法。
17.在本技术实施例中,采用启动车载仪表系统中的磁盘代理服务,其中,至少一个目标系统通过磁盘代理服务访问车载仪表系统能够直接访问的磁盘,至少一个目标系统和车载仪表系统为位于同一硬件模组中不同类型的操作系统;接收来自至少一个目标系统的磁盘访问请求,其中,磁盘访问请求用于获取磁盘的信息;响应于磁盘访问请求,通过磁盘代理服务访问磁盘中的数据的方式,通过基于磁盘代理实现跨系统访问磁盘,即根据车载仪表系统先启动先加载和系统稳定的特点,将不支持跨系统实现的磁盘控制器布置在该系统内,模组内的其他操作系统通过车载仪表系统代理访问磁盘,从而实现了硬件隔离的多个系统共享磁盘的技术效果,进而解决了硬件隔离的多个操作系统无法共享访问磁盘技术问题。
附图说明
18.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
19.图1是根据本技术实施例的一种磁盘访问方法的流程图;
20.图2是根据本技术实施例的一种磁盘访问装置的结构框图;
21.图3是根据本技术实施例的一种电子设备的结构框图。
具体实施方式
22.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
23.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
24.根据本技术实施例,提供了一种磁盘访问方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
25.针对上述硬件隔离的多系统访问磁盘问题,本技术提出了一种基于磁盘代理的跨系统磁盘访问方法,能够有效解决多个操作系统共享磁盘问题,同时支持磁盘代理的软件插拔功能等。
26.本技术提供的技术方案适用于使用硬件隔离的异构处理系统的片上系统(system on chip,soc)模组,特别是未来的智能座舱领域,下面以汽车多系统启动场景为例对本技术提供的技术方案进行说明。
27.根据车载仪表系统先启动先加载和系统稳定的特点,将不支持跨系统实现的磁盘控制器布置在该系统内,模组内的其他操作系统通过车载仪表系统代理访问磁盘,从而实现硬件隔离的系统间共享磁盘能力。
28.图1是根据本技术实施例的一种磁盘访问方法的流程图,如图1所示,该方法包括如下步骤:
29.步骤s102,启动车载仪表系统中的磁盘代理服务,其中,至少一个目标系统通过磁盘代理服务访问车载仪表系统能够直接访问的磁盘,至少一个目标系统和车载仪表系统为位于同一硬件模组中不同类型的操作系统。
30.在执行步骤s102时,车载仪表系统启动磁盘代理服务,其他系统启动磁盘访问客
户端,客户端读写磁盘的数据通过ddr共享内存机制与磁盘代理服务间传递。
31.需要说明的是,车载仪表系统启动,磁盘控制器驱动正常加载,仪表系统具备直接访问磁盘能力。
32.在本技术的一个可选的实施例中,执行步骤s102启动车载仪表系统中的磁盘代理服务之后,需要根据配置文件初始化至少一个目标系统的磁盘访问请求通道以及共享内存,其中,述磁盘访问请求通道用于发送磁盘访问请求。
33.作为一个可选的实施例,仪表系统启动磁盘代理服务后,根据dts配置文件初始化其他系统的磁盘访问请求通道和磁盘读写环形缓冲区。dts配置文件是以.dts为后缀的文件,硬件的相应信息都会写在dts配置文件,以便于操作系统的内核可以管理和使用这些硬件。
34.步骤s104,接收来自至少一个目标系统的磁盘访问请求,其中,磁盘访问请求用于获取磁盘的信息。
35.根据本技术的一个可选的实施例,上述至少一个目标系统包括但不限于中控系统和游戏系统。中控系统的启动时间早于车载仪表系统,中控系统很多场景需要访问磁盘,启动后磁盘访问客户端发起获取磁盘信息的请求。游戏系统的启动时间晚于车载仪表系统的启动时间,如果游戏系统需要访问磁盘,通过磁盘访问客户端发起获取磁盘信息的请求。
36.步骤s106,响应于磁盘访问请求,通过磁盘代理服务访问磁盘中的数据。
37.通过上述步骤,通过基于磁盘代理实现跨系统访问磁盘,模组内的其他操作系统通过车载仪表系统代理访问磁盘,从而实现了硬件隔离的多个系统共享磁盘的技术效果。
38.根据本技术的一个可选的实施例,执行步骤s106响应于磁盘访问请求,通过磁盘代理服务访问磁盘中的数据,包括以下步骤:向至少一个目标系统发送响应报文,其中,响应报文中包括:磁盘的信息以及共享内存的地址,共享内存用于缓存磁盘的读写数据;在磁盘代理服务生效后,接收来自至少一个目标系统的磁盘数据读写请求,其中,至少一个目标系统将磁盘的信息以及共享内存的地址记录到本地后,磁盘代理服务生效;响应于磁盘数据读写请求,通过磁盘代理服务读写磁盘中的数据。
39.车载仪表系统的磁盘代理服务启动过程中,判断是否已经收到磁盘访问客户端发送的磁盘信息请求,若是,车载仪表系统搜集本地磁盘信息,和磁盘读写的共享内存地址一起填充在响应报文;若否,则车载仪表系统的磁盘代理服务就绪后,等待其他系统的磁盘访问客户端发起磁盘访问请求。
40.以游戏系统和中控系统为例,游戏系统和中控系统的磁盘访问客户端收到仪表系统发送的响应报文后,解析报文,记录磁盘信息和磁盘读写的共享内存地址到本地。车载仪表系统记录磁盘读写请求协商成功标记,即磁盘代理生效标记为真。
41.之后,车载仪表系统就可以接收游戏系统或者中控系统发送的磁盘数据读写请求,通过磁盘代理服务读写磁盘数据,以响应于磁盘数据读写请求。
42.根据本技术的另一个可选的实施例,响应于磁盘数据读写请求,通过磁盘代理服务读写磁盘中的数据,通过以下方法实现:在响应于磁盘数据读请求的情况下,按照共享内存的地址将从磁盘读取的磁盘数据缓存至共享内存,通过磁盘代理服务将读取的磁盘数据由共享内存发送至至少一个目标系统;在响应于磁盘数据写请求的情况下,按照共享内存的地址将至少一个目标系统需要写入磁盘的磁盘数据缓存至共享内存,通过磁盘代理服务
将需要写入的磁盘数据由共享内存写入磁盘。
43.作为一个可选的实施例,以中控系统访问磁盘数据为例,中控系统从磁盘中读取数据,将读取的数据通过共享内存环形缓冲区中转,再由车载仪表系统的磁盘代理服务将读取的数据由共享内存发送至中控系统。
44.当中控系统需要往磁盘中写入数据时,同样将需要写入的数据通过共享内存环形缓冲区中转,再由车载仪表系统的磁盘代理服务将需要写入的数据由共享内存写入磁盘。
45.中控系统访问磁盘需要两个共享内存环形缓冲区(读缓存和写缓存),每个缓冲区包含两个偏移(操作缓冲区的读写偏移),即中控系统通过读缓存的读偏移和写缓存的写偏移读写磁盘。
46.作为一个可选的实施例,执行步骤s106响应于磁盘访问请求,通过磁盘代理服务访问磁盘中的数据,还包括以下步骤:在车载仪表系统发生故障的情况下,拒绝响应于磁盘数据读请求;在车载仪表系统发生故障的情况下,将至少一个目标系统需要写入磁盘的磁盘数据缓存至目标内存,其中,目标内存是与共享内存不同的存储区域;在车载仪表系统从故障中恢复后,将目标内存中缓存的磁盘数据同步至共享内存。
47.在一个可选的实施例中,车载仪表系统发生异常停止,系统崩溃,磁盘代理功能失效。此时,中控系统通过心跳链路感知车载仪表系统异常,读磁盘操作会直接返回失败,继续写磁盘造成共享内存缓冲区满格后,中控系统申请普通内存暂放磁盘数据。中控系统收到仪表系统的磁盘代理服务恢复的广播消息后,将普通内存暂放的磁盘数据同步到写磁盘的共享内存缓冲区。
48.作为一个可选的实施例,在车载仪表系统重启后,判断磁盘读写请求协商成功标记,若为真,仪表系统广播磁盘代理服务已经恢复,可以正常处理磁盘读写请求。仪表系统消化各个磁盘访问客户端的共享内存环形缓冲区的写数据,磁盘代理服务正常运行。若为否,车载仪表系统则需要根据dts配置文件初始化其他系统的磁盘访问请求通道和磁盘读写环形缓冲区。
49.在本技术的一些可选的实施例中,磁盘控制器设置在车载仪表系统中,其中,磁盘控制器用于向磁盘的磁盘驱动器发送控制信号。
50.在本技术提供的实施例中,根据仪表系统先启动先加载和系统稳定的特点,将不支持跨系统实现的磁盘控制器布置在该系统内,这样,车载仪表系统启动后,磁盘控制器驱动正常加载,车载仪表系统具备直接访问磁盘能力。
51.磁盘控制器布置在车载仪表系统的原因有三点:车载仪表系统启动时效性是天然优势;车载仪表系统运行稳定性高可以弥补磁盘代理功能的本身缺陷;车载仪表系统通过烧写工具提前创建磁盘根文件系统,能够支持更高效的initrd(init ramdisk)启动方式。
52.在本技术的另一些可选的实施例中,至少一个目标系统包括:第一系统和第二系统,其中,第一系统的启动时间早于车载仪表系统的启动时间,第二系统的启动时间晚于车载仪表系统的启动时间。
53.在上文中提到,至少一个目标系统包括但不限于中控系统和游戏系统,其中,中控系统的启动时间早于车载仪表的启动时间,游戏系统的启动时间晚于车载仪表的启动时间。
54.需要说明的是,中控系统和游戏系统分别只是上述第一系统和第二系统中的一种
系统。之所以将跨系统访问磁盘的操作系统划分为第一系统和第二系统是为了说明本技术提出的技术方案具备磁盘访问客户端早于磁盘代理服务启动的能力。
55.图2是根据本技术实施例的一种磁盘访问装置的结构框图,如图2所示,该装置包括:
56.启动模块20,用于启动车载仪表系统中的磁盘代理服务,其中,至少一个目标系统通过磁盘代理服务访问车载仪表系统能够直接访问的磁盘,至少一个目标系统和车载仪表系统为位于同一硬件模组中不同类型的操作系统。
57.根据本技术的一个可选的实施例,车载仪表系统启动磁盘代理服务,其他系统启动磁盘访问客户端,客户端读写磁盘的数据通过ddr共享内存机制与磁盘代理服务间传递。
58.需要说明的是,车载仪表系统启动,磁盘控制器驱动正常加载,仪表系统具备直接访问磁盘能力。
59.启动车载仪表系统中的磁盘代理服务之后,需要根据配置文件初始化至少一个目标系统的磁盘访问请求通道以及共享内存,其中,述磁盘访问请求通道用于发送磁盘访问请求。
60.作为一个可选的实施例,仪表系统启动磁盘代理服务后,根据dts配置文件初始化其他系统的磁盘访问请求通道和磁盘读写环形缓冲区。dts配置文件是以.dts为后缀的文件,硬件的相应信息都会写在dts配置文件,以便于操作系统的内核可以管理和使用这些硬件。
61.接收模块22,用于接收来自至少一个目标系统的磁盘访问请求,其中,磁盘访问请求用于获取磁盘的信息。
62.上述至少一个目标系统包括但不限于中控系统和游戏系统。中控系统的启动时间早于车载仪表系统,中控系统很多场景需要访问磁盘,启动后磁盘访问客户端发起获取磁盘信息的请求。游戏系统的启动时间晚于车载仪表系统的启动时间,如果游戏系统需要访问磁盘,通过磁盘访问客户端发起获取磁盘信息的请求。
63.响应模块24,用于响应于磁盘访问请求,通过磁盘代理服务访问磁盘中的数据。
64.需要说明的是,图2所示实施例的优选实施方式可以参见图1所示实施例的相关描述,此处不再赘述。
65.图3是根据本技术实施例的一种电子设备的结构框图,如图3所示,该电子设备包括:车载仪表系统30、磁盘32以及至少一个目标系统34,其中,车载仪表系统30能够直接访问的磁盘32,
66.车载仪表系统30,用于启动车载仪表系统中的磁盘代理服务,其中,至少一个目标系统34通过磁盘代理服务访问磁盘32,至少一个目标系统34和车载仪表系统30为位于同一硬件模组中不同类型的操作系统.
67.至少一个目标系统34,用于向车载仪表系统30发送磁盘访问请求,其中,磁盘访问请求用于获取磁盘30的信息.
68.车载仪表系统30,还用于接收磁盘访问请求,并响应于磁盘访问请求,通过磁盘代理服务访问磁盘中的数据。
69.需要说明的是,图3所示实施例的优选实施方式可以参见图1所示实施例的相关描述,此处不再赘述。
70.本技术实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的磁盘访问方法。
71.上述非易失性存储介质用于存储执行以下功能的程序:启动车载仪表系统中的磁盘代理服务,其中,至少一个目标系统通过磁盘代理服务访问车载仪表系统能够直接访问的磁盘,至少一个目标系统和车载仪表系统为位于同一硬件模组中不同类型的操作系统;接收来自至少一个目标系统的磁盘访问请求,其中,磁盘访问请求用于获取磁盘的信息;响应于磁盘访问请求,通过磁盘代理服务访问磁盘中的数据。
72.本技术实施例还提供了一种处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的磁盘访问方法。
73.上述处理器用于运行执行以下功能的程序:启动车载仪表系统中的磁盘代理服务,其中,至少一个目标系统通过磁盘代理服务访问车载仪表系统能够直接访问的磁盘,至少一个目标系统和车载仪表系统为位于同一硬件模组中不同类型的操作系统;接收来自至少一个目标系统的磁盘访问请求,其中,磁盘访问请求用于获取磁盘的信息;响应于磁盘访问请求,通过磁盘代理服务访问磁盘中的数据。
74.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
75.在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
76.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
77.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
78.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
79.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
80.以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应
视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1