一种处理方法、装置及设备

文档序号:877477 发布日期:2021-03-19 浏览:17次 >En<

阅读说明:本技术 一种处理方法、装置及设备 (Processing method, device and equipment ) 是由 黃圳柏 于 2020-12-04 设计创作,主要内容包括:本申请提供一种处理方法,包括:若输入输出内存管理单元配置了寄存器的第一排除内存范围,在输入输出内存管理单元页表中基于第二外围设备的第二排除内存范围,建立所述寄存器的第二排除内存范围和所述第二外围设备的映射关系,所述寄存器的第二排除内存范围的地址和所述第二外围设备的第二排除内存范围的地址一一对应;所述输入输出内存管理单元页表用于响应所述第二外围设备的内存访问请求,以使得所述第二外围设备访问到目标内存地址。同时,本申请还提供一种处理装置和处理设备。(The application provides a processing method, comprising the following steps: if the input/output memory management unit is configured with a first excluded memory range of a register, establishing a mapping relation between the second excluded memory range of the register and a second peripheral device based on a second excluded memory range of the second peripheral device in a page table of the input/output memory management unit, wherein addresses of the second excluded memory range of the register correspond to addresses of the second excluded memory range of the second peripheral device one by one; the input output memory management unit page table is used for responding to a memory access request of the second peripheral device so that the second peripheral device can access a target memory address. Simultaneously, this application still provides a processing apparatus and treatment facility.)

一种处理方法、装置及设备

技术领域

本申请涉及排除内存范围的设置技术,尤其涉及一种处理方法、装置及设备。

背景技术

在通过输入输出内存管理单元(IOMMU,Input/Output Memory Management Unit)硬件做直接存储器访问(DMA,Direct Memory Access)或输入/输出(IO,Input/Output)位址的转换时,只能配置一个排除内存范围寄存器,这意味着它只支持由一个外围设备定义的一个排除内存范围。当在同一个IOMMU硬件下有多个外围设备定义的多个排除内存范围时,就会出现内存访问失败的问题。

发明内容

有鉴于此,本申请的一方面期望提供一种处理方法,包括:若输入输出内存管理单元配置了寄存器的第一排除内存范围,在输入输出内存管理单元页表中基于第二外围设备的第二排除内存范围,建立所述寄存器的第二排除内存范围和所述第二外围设备的映射关系,所述寄存器的第二排除内存范围的地址和所述第二外围设备的第二排除内存范围的地址一一对应;

所述输入输出内存管理单元页表用于响应所述第二外围设备的内存访问请求,以使得所述第二外围设备访问到目标内存地址。

上述方案中,还包括:

如果接收到所述第二外围设备发送的内存访问请求,基于所述内存访问请求中携带的设备标识查找所述第二外围设备对应的输入输出内存管理单元页表,以得到所述第二外围设备待访问的目标内存地址。

上述方案中,所述寄存器的第一排除内存范围的地址和第一外围设备的第一排除内存范围的地址一一对应;

所述输入输出内存管理单元页表中只存储除所述第一外围设备和所述寄存器的所述第一排除内存范围的映射关系以外的其他外围设备和寄存器的排除范围的映射关系。

上述方案中,还包括:

如果所述输入输出内存管理单元未配置所述寄存器的排除内存范围,根据所述第二外围设备的第二排除内存范围配置所述寄存器的排除内存范围。

上述方案中,在确定所述输入输出内存管理单元是否配置了寄存器的排除内存范围之前,还包括:

开机过程中,在高级配置和电源管理接口的输入输出内存管理单元描述表中,查询各外围设备对应的排除内存范围;

如果查找结果中具有外围设备对应的排除内存范围,基于所述查找结果中查找到的第一个外围设备的排除内存范围,配置所述寄存器的排除内存范围。

上述方案中,还包括:

在开机过程中,获取表征排除内存范围和设备标识之间映射关系的所述输入输出内存管理单元页表。

根据本申请的另一方面,提供一种处理装置,包括:

判断单元,用于判断输入输出内存管理单元是否配置了寄存器的排除内存范围;

建立单元,用于若输入输出内存管理单元配置了寄存器的第一排除内存范围,在输入输出内存管理单元页表中基于第二外围设备的第二排除内存范围,建立所述寄存器的第二排除内存范围和所述第二外围设备的映射关系,所述寄存器的第二排除内存范围的地址和所述第二外围设备的第二排除内存范围的地址一一对应;所述输入输出内存管理单元页表用于响应所述第二外围设备的内存访问请求,以使得所述第二外围设备访问到目标内存地址。

上述方案中,还包括:

查找单元,用于如果接收到所述第二外围设备发送的内存访问请求,基于所述内存访问请求中携带的设备标识查找所述第二外围设备对应的输入输出内存管理单元页表,以得到所述第二外围设备待访问的目标内存地址。

上述方案中,所述寄存器的第一排除内存范围的地址和第一外围设备的第一排除内存范围的地址一一对应;

所述输入输出内存管理单元页表中只存储除所述第一外围设备和所述寄存器的所述第一排除内存范围的映射关系以外的其他外围设备和寄存器的排除范围的映射关系。

根据本申请的第三方面,提供一种处理设备,包括:包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,

其中,所述处理器用于运行所述计算机程序时,执行上述处理方法中任一项所述方法的步骤。

本申请提供的一种处理方法、装置及设备,通过判断输入输出内存管理单元是否配置了寄存器的排除内存范围,并且在该输入输出内存管理单元配置了寄存器的第一排除内存范围的情况下,在输入输出内存管理单元页表中基于第二外围设备的第二排除内存范围,建立所述寄存器的第二排除内存范围和所述第二外围设备的映射关系,其中,所述寄存器的第二排除内存范围的地址和所述第二外围设备的第二排除内存范围的地址一一对应;后续处理过程中,用所述输入输出内存管理单元页表响应所述第二外围设备的内存访问请求,以使得所述第二外围设备访问到目标内存地址。如此,在输入输出内存管理单元配置了寄存器的排除内存范围情况下,利用表征排除内存范围和外围设备之间映射关系的映射表来响应其他外围设备的内存访问请求,可以支持寄存器对应多个外围设备的多个排除内存范围,以实现多个外围设备同时进行内存访问。

附图说明

图1为本申请中处理方法的流程示意图一;

图2为本申请中IOMMU页表的配置示意图;

图3为本申请中处理方法的流程示意图二;

图4为本申请中处理装置的结构组成示意图;

图5是本申请中处理设备的结构组成示意图。

具体实施方式

以下结合说明书附图及具体实施例对本申请的技术方案做进一步的详细阐述。

图1为本申请中处理方法的流程示意图一,如图1所示,该方法包括:

步骤101,若输入输出内存管理单元配置了寄存器的第一排除内存范围,在输入输出内存管理单元页表中基于第二外围设备的第二排除内存范围,建立所述寄存器的第二排除内存范围和所述第二外围设备的映射关系,所述寄存器的第二排除内存范围的地址和所述第二外围设备的第二排除内存范围的地址一一对应;所述输入输出内存管理单元页表用于响应所述第二外围设备的内存访问请求,以使得所述第二外围设备访问到目标内存地址。

本申请中,该方法主要应用于具有存储功能的电子设备,该电子设备中配置有输入\输出内存管理单元(IOMMU,Input/Output Memory Management Unit),该IOMMU具有一个内存范围寄存器。该电子设备在开机过程中,会通过统一的可扩展固件接口(UEFI,Unified Extensible Firmware Interface)或基本输入输出系统(BIOS,Basic InputOutput System)生成一个高级配置和电源管理接口(ACPI,Advanced Configuration andPower Management Interface)的输入输出内存管理单元描述表,在开机过程中,IOMMU驱动可以在该ACPI描述表中查询各外围设备对应的排除内存范围,并得到查找结果;如果查找结果中具有至少一个外围设备对应的排除内存范围,该电子设备中的IOMMU驱动则会基于该查找结果中最先查找到的第一个外围设备的排除内存范围,配置内存范围寄存器的排除内存范围。

这里,对内存范围寄存器的内存范围配置,主要取決于芯片供应商的IOMMU系统规范中是否有定义内存排除范围。如果该IOMMU系统规划中没有定义内存排除范围,则IOMMU驱动不会针对该外围设备去配置内存范围寄存器的内存排除范围,如果该IOMMU系统规范中定义了内存排除范围,则IOMMU驱动会依据该系统规范中定义的内存排除范围设置内存范围寄存器的内存排除范围。

本申请中,IOMMU驱动在ACPI输入输出内存管理单元描述表中查找外围设备的内存排除范围时,如果查找结果中具有多个外围设备对应的内存排除范围,多个外围设备对应的内存排除范围可以以表格或列表的形式存在。

本申请中,IOMMU硬件主要用于将虚拟内存地址映射为物理内存地址,让外围设备可以在虚拟的内存环境中工作。比如,外围设备可以是磁盘阵列控制器(RAID controller)和网卡适配器(Network adapter)。当外围设备在该电子设备的虚拟内存中进行内存寻址时,IOMMU硬件可以在内存范围寄存器的内存排除范围内查找该外围设备对应的物理内存地址,如果该外围设备要转换的内存地址在该寄存器的内存排除范围内,则IOMMU硬件不做任何的位址转换。比如,Device 1要存取内存位址‘A’,位址‘A’如果在此寄存器的内存范围内,则该IOMMU硬件在通过IOMMU硬件时,该IOMMU硬件不会做任何的位址转换,也就是说,该寄存器会用位址‘A’去读取内存。如此可省去IOMMU硬件位址转换的开销。

本申请中,IOMMU硬件会维护一个表征外围设备和内存范围映射关系的IOMMU页表。当内存范围寄存器中配置了第一排除内存范围时,如果ACPI描述表中还有其他外围设备的内存排除范围,该IOMMU驱动会在开机过程中,获取表征排除内存范围和设备标识之间映射关系的IOMMU页表,并将其他外围设备的内存排除范围和该外围设备的设备标识映射到该IOMMU页表中,以在该IOMMU页表中建立该内存范围寄存器的第二排除内存范围、第三排除内存范围……第N排除内存范围。

这里,每个IOMMU页表对应一个外围设备,且在该IOMMU页表中,存储有表征外围设备的设备标识和该外围设备的内存排除范围的映射关系,其中,在该IOMMU页表中,内存范围寄存器的排除内存范围的物理地址和外围设备的排除内存范围的虚拟地址是排他的一一对应关系。比如位址“A”对应一个位址“A”,通过一对一的位址映射可以方便从IOMMU表中找到目标外围设备的目标内存地址。

这里,如果内存范围寄存器配置的排除内存范围对应第一外围设备,则内存范围寄存器的第一排除内存范围的物理地址和第一外围设备的第一排除内存范围的虚拟地址是排他的一一对应,而在IOMMU页表中只存储除该第一外围设备和该内存范围寄存器的该第一排除内存范围的映射关系以外的其他外围设备和寄存器的排除范围的映射关系。如此,可以在外围设备访问内存时,便于设备系统知晓当前从哪个渠道获取目标内存地址。

本申请中,IOMMU驱动在配置IOMMU页表时,具体是基于外围设备的排除内存范围对IOMMU页表进行每项配置。例如图2所示,以三级输入/输出(I/O)页表与4K物理页为例,假设内存范围占用8K,依据客户机物理地址的内容值,找出第一层页表的索引值,并配置每个索引值对应的每个页面目录项,该页面目录项指向下一层I/O页表的位址。

这里,每个外围设备对应一个IOMMU页表。每个IOMMU页表中具有多级页表的系统物理地址。

本申请中,在第一外围设备访问该电子设备的存储器时,该电子设备会接收到该第一外围设备的内存访问请求,如果该电子设备的IOMMU驱动查询到该IOMMU的内存范围寄存器配置了该第一外围设备的排除内存范围,则在该电子设备接收到该第一外围设备的内存访问请求时,该电子设备中的IOMMU硬件则基于该内存范围寄存器的排除内存范围,查找该第一外围设备待访问的目标内存地址。

本申请中,在第二外围设备访问该电子设备的存储器时,该电子设备会接收到该第二外围设备的内存访问请求,如果该电子设备的IOMMU硬件查询到该IOMMU的内存范围寄存器配置了排除内存范围,则在该电子设备接收到该第二外围设备的内存访问请求时,该电子设备中的IOMMU硬件则基于该内存访问请求中携带的设备标识,查找该第二外围设备对应的IOMMU页表,并基于该第二外围设备对应的IOMMU页表中设备标识和排除内存范围的映射关系,获取该第二外围设备对应的待访问的目标内存地址。如此,可以确保多个外围设备能够正常工作而不会出现任何的系统故障。以使范围寄存器支持由多个外围设备定义的多个排除内存范围。

本申请中,该IOMMU硬件在设备开机过程中,如果查找到该IOMMU硬件的内存范围寄存器未配置外围设备的排除内存范围,则该IOMMU驱动可以根据外围设备的排除内存范围配置该内存范围寄存器的排除内存范围。

比如,IOMMU查找到内存范围寄存器未配置外围设备的排除内存范围,且在ACPI描述表中第二外围设备定义了排除内存范围,且第二外围设备是ACPI描述表中第一个查找到的外围设备,则IOMMU会基于第二外围设备的排除内存范围配置内存范围寄存器。

这里,配置的内存范围寄存器的排除内存范围的物理地址和第二外围设备的排除内存范围的虚拟地址是排他的一一对应关系。

本申请中,排除范围寄存器目的用来告知IOMMU硬件,如果检索到位址“A”的话,不用做位址转换(也就是不用查I/O页表找出对应的的物理位址)。

这里,不做位址转换,代表是排他的一对一的位址对应关系(例如,位址A——位址A)。但如果有两个PCIe设备定义了自己的排除内存范围,意味着有一个PCIe设备的排除内存范围会被覆盖掉(即覆盖IOMMU硬件的排除范围寄存器配置的排除内存范围)。所以,必须帮被覆盖的排除内存范围准备一对一的I/O页表,以便让IOMMU硬件经查页表,找到对应的位址。比如图2中:Guest Physical Address(客户机物理地址)=0x9f459000,SystemPhysical Address(系统物理地址)=0x9f459000。

图3为本申请中处理方法的流程示意图二,如图3所示,包括:

步骤301,在ACPI描述表中检索相应外围设备的排除内存范围。

也就是说,系统开机过程中,IOMMU驱动会检索ACPI描述表中相应外转设备的排除内存范围。这个ACPI描述表是由UEFI/BIOS在系统开机过程中自动生成的。

步骤302,判断相应外围设备是否定义有自己的排除内存范围?

这里,此步骤也是在系统开机过程中执行。具体定义取决于芯片供应商的IOMMU系统规范是否有配置排除内存范围。如果外围设备定义了自己的排除内存范围,执行步骤303,如果外围设备没有定义排除内存范围,执行步骤305。

步骤303,判断内存范围寄存器是否被配置。

这里,此步骤也是在系统开机过程中执行。当ACPI描述表中外围设备的系统规范定义了排除内存范围,IOMMU驱动则会依据ACPI描述表中第一个查找到的外围设备的系统规范设置内存范围寄存器的排除内存范围。如果外围设备没有定义排除内存范围,IOMMU驱动则不会设置内存范围寄存器的排除内存范围。

如果内存范围范围寄存器已被配置,则执行步骤304,如果内存范围寄存器未被配置,则执行步骤306。

步骤304,查找与外围设备关联的IOMMU页表。

这里,该步骤也是在开机过程中执行的。IOMMIU驱动会维护有IOMMU页表。

步骤305,根据检索到的排除内存范围为标识映射配置IOMMU页表。

这里,一个IOMMU页表对应一个外围设备,且该IOMMU页表中存储有除范围寄存器已配置的排除内存范围对应的外围设备以外的外围设备和该以外的外围设备的排除内存地址的映射关系,其中,IOMMU页中存储的排除内存范围的地址和外围设备的排除内存地址是排他的一一对应。以便系统在IOMMU页表中找到目标外围设备的目标内存地址。

步骤306,根据检索到的排除内存范围配置内存范围寄存器。

这里,当查询到内存范围寄存器未配置,则用ACPI描述表中第一个查找到的外围设备的排除内存范围配置内存范围寄存器。

本申请的方案在具有多个外围设备的情况下,如果IOMMU的内存范围寄存器被配置,则在IOMMU页表中对其他外围设备的排除内存范围和设备标识进行映射,以利用该IOMMU页表对其他外围设备的内存访问请求进行响应,如此,不会影响多个外围设备的正常工作,且也不会出现系统故障。

图4为本申请中处理装置的结构组成示意图,如图4所示,包括:

判断单元401,用于判断输入输出内存管理单元是否配置了寄存器的排除内存范围;

建立单元402,用于在存管理单元配置了寄存器的第一排除内存范围的情况下,在输入输出内存管理单元页表中基于第二外围设备的第二排除内存范围,建立所述寄存器的第二排除内存范围和所述第二外围设备的映射关系,所述寄存器的第二排除内存范围的地址和所述第二外围设备的第二排除内存范围的地址一一对应;所述输入输出内存管理单元页表用于响应所述第二外围设备的内存访问请求,以使得所述第二外围设备访问到目标内存地址。

这里,所述输入输出内存管理单元页表表征排除内存范围和设备标识之间映射关系,该输入输出内存管理单元页表是在设备开机过程中所获取。

这里,该装置还包括:查找单元403;

该查找单元403,用于如果接收到所述第二外围设备发送的内存访问请求,基于所述内存访问请求中携带的设备标识查找所述第二外围设备对应的输入输出内存管理单元页表,以得到所述第二外围设备待访问的目标内存地址。

这里,所述寄存器的第一排除内存范围的地址和第一外围设备的第一排除内存范围的地址一一对应;所述输入输出内存管理单元页表中只存储除所述第一外围设备和所述寄存器的所述第一排除内存范围的映射关系以外的其他外围设备和寄存器的排除范围的映射关系。

这里,该查找单元403还用于在设备开机过程中,在高级配置和电源管理接口的输入输出内存管理单元描述表中,查询各外围设备对应的排除内存范围。

这里,该装置还包括:配置单元404;

具体地,配置单元404,如果查找结果中具有外围设备对应的排除内存范围,基于所述查找结果中查找到的第一个外围设备的排除内存范围,配置所述寄存器的排除内存范围。

用于如果所述输入输出内存管理单元未配置所述寄存器的排除内存范围,根据所述第二外围设备的第二排除内存范围配置所述寄存器的排除内存范围。

此时,该第二外围设备可以是指ACPI描述表中第一个查找到的定义了排除内存范围的外围设备。

需要说明的是:上述实施例提供的处理装置在进行信息提醒时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的处理装置与处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本申请实施例还提供了一种处理设备,该处理设备包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,

其中,所述处理器用于运行所述计算机程序时,执行:若输入输出内存管理单元配置了寄存器的第一排除内存范围,在输入输出内存管理单元页表中基于第二外围设备的第二排除内存范围,建立所述寄存器的第二排除内存范围和所述第二外围设备的映射关系,所述寄存器的第二排除内存范围的地址和所述第二外围设备的第二排除内存范围的地址一一对应;

所述输入输出内存管理单元页表用于响应所述第二外围设备的内存访问请求,以使得所述第二外围设备访问到目标内存地址。

所述处理器还用于运行所述计算机程序时,执行:如果接收到所述第二外围设备发送的内存访问请求,基于所述内存访问请求中携带的设备标识查找所述第二外围设备对应的输入输出内存管理单元页表,以得到所述第二外围设备待访问的目标内存地址。

所述寄存器的第一排除内存范围的地址和第一外围设备的第一排除内存范围的地址一一对应;

所述输入输出内存管理单元页表中只存储除所述第一外围设备和所述寄存器的所述第一排除内存范围的映射关系以外的其他外围设备和寄存器的排除范围的映射关系。

所述处理器还用于运行所述计算机程序时,执行:如果所述输入输出内存管理单元未配置所述寄存器的排除内存范围,根据所述第二外围设备的第二排除内存范围配置所述寄存器的排除内存范围。

所述处理器还用于运行所述计算机程序时,执行:开机过程中,在高级配置和电源管理接口的页表中查询各外围设备对应的排除内存范围;

如果查找结果中具有外围设备对应的排除内存范围,基于所述查找结果中查找到的第一个外围设备的排除内存范围,配置所述寄存器的排除内存范围。

所述处理器还用于运行所述计算机程序时,执行:在开机过程中,获取表征排除内存范围和设备标识之间映射关系的所述输入输出内存管理单元页表。

图5是本申请中处理设备的结构组成示意图,处理设备500可以是移动电话、计算机、数字广播终端、信息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。图5所示的处理设备500包括:至少一个处理器501、存储器502、至少一个网络接口504和用户接口503。处理设备500中的各个组件通过总线系统505耦合在一起。可理解,总线系统505用于实现这些组件之间的连接通信。总线系统505除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统505。

其中,用户接口503可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。

可以理解,存储器502可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器502旨在包括但不限于这些和任意其它适合类型的存储器。

本申请实施例中的存储器502用于存储各种类型的数据以支持处理设备500的操作。这些数据的示例包括:用于在处理设备500上操作的任何计算机程序,如操作系统5021和应用程序5022;联系人数据;电话簿数据;消息;图片;视频等。其中,操作系统5021包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序7022可以包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本申请实施例方法的程序可以包含在应用程序5022中。

上述本申请实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器501可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成前述方法的步骤。

在示例性实施例中,处理设备500可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述方法。

在示例性实施例中,本申请实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器502),上述计算机程序可由处理设备500的处理器501执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、FlashMemory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。

一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器运行时,执行:若输入输出内存管理单元配置了寄存器的第一排除内存范围,在输入输出内存管理单元页表中基于第二外围设备的第二排除内存范围,建立所述寄存器的第二排除内存范围和所述第二外围设备的映射关系,所述寄存器的第二排除内存范围的地址和所述第二外围设备的第二排除内存范围的地址一一对应;

所述输入输出内存管理单元页表用于响应所述第二外围设备的内存访问请求,以使得所述第二外围设备访问到目标内存地址。

所述计算机程序被处理器运行时,还执行:如果接收到所述第二外围设备发送的内存访问请求,基于所述内存访问请求中携带的设备标识查找所述第二外围设备对应的输入输出内存管理单元页表,以得到所述第二外围设备待访问的目标内存地址。

所述寄存器的第一排除内存范围的地址和第一外围设备的第一排除内存范围的地址一一对应;

所述输入输出内存管理单元页表中只存储除所述第一外围设备和所述寄存器的所述第一排除内存范围的映射关系以外的其他外围设备和寄存器的排除范围的映射关系。

所述计算机程序被处理器运行时,还执行:如果所述输入输出内存管理单元未配置所述寄存器的排除内存范围,根据所述第二外围设备的第二排除内存范围配置所述寄存器的排除内存范围。

所述计算机程序被处理器运行时,还执行:开机过程中,在高级配置和电源管理接口的输入输出内存管理单元描述表中查询各外围设备对应的排除内存范围;

如果查找结果中具有外围设备对应的排除内存范围,基于所述查找结果中查找到的第一个外围设备的排除内存范围,配置所述寄存器的排除内存范围。

所述计算机程序被处理器运行时,还执行:在开机过程中,获取表征排除内存范围和设备标识之间映射关系的所述输入输出内存管理单元页表。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。

本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。

本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种云计算环境下安全计算纳什均衡点的方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类