CN108959127A - 地址转换方法、装置及系统 - Google Patents
地址转换方法、装置及系统 Download PDFInfo
- Publication number
- CN108959127A CN108959127A CN201810550762.7A CN201810550762A CN108959127A CN 108959127 A CN108959127 A CN 108959127A CN 201810550762 A CN201810550762 A CN 201810550762A CN 108959127 A CN108959127 A CN 108959127A
- Authority
- CN
- China
- Prior art keywords
- address
- mark
- region
- atu
- target
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- 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/0284—Multiple user address space allocation, e.g. using different base addresses
-
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- 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/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请公开了一种地址转换方法、装置及系统,该方法包括:第一地址转换单元ATU接收第一虚拟机VM发送的访问请求,该访问请求携带第一地址和第一地址的参数信息,第一地址的参数信息包括目标虚拟功能VF的标识,第一ATU根据第一地址的参数信息和地址映射表中的VF范围描述信息确定匹配关系,当目标VF的标识和VF范围描述信息匹配成功时,第一ATU根据地址映射表将第一地址转换为第二地址。由此减少ATU的数量,提升资源利用率和消息处理效率。
Description
技术领域
本申请涉及服务器技术领域,特别涉及一种地址转换方法、装置及系统。
背景技术
随着虚拟化技术的发展,为了提高服务器中虚拟化处理能力,会在服务器中接入片上系统(system on chip,SoC)(例如,SoC以扩展外围组件互连高速(PeripheralComponent Interconnect Express,PCIe)总线标准卡的形式接入服务器),由SoC分担部分服务器的处理器的功能, 以此利用SoC对服务器的处理器功能进行卸载。
目前,在服务器中,由于PCIe限制,在服务器的处理器中有一段地址域A,在SoC中有另一段地址域B,两个地址域可能存在同样的地址,处理器需要区分这两个地址域中相同地址的访问对象。一般采取的方法是通过在地址域A中划分出一段地址空间,对地址域B中的需要用到的地址做映射,在PCIe中将地址域A中划分出的一段地址空间称为基地址寄存器(base address register, BAR)地址段,且BAR地址段被划分为多个BAR地址区间。由SoC中的地址转换单元(address translation unit,ATU)负责将地址域A的地址转换到地址域B的地址。在虚拟化场景中,每个服务器中部署有至少一个虚拟机(virtual machines,VM),相应地,在PCIe总线中,每个物理功能(physical function,PF)包含1个或多个虚拟功能(virtual function,VF)。对于1个固定的VM,可以使用1个或多个VF。每个VF对应有多个BAR地址区间(比如BAR01,BAR23,BAR45)。每个BAR地址区间可以包含多个区域(region)。每个区域对应一个地址转换单元(address translation unit,ATU)。在VM需要访问处理器的BAR地址段中的地址时,实际是访问VF对应的BAR地址范围中的地址。该BAR地址范围中的地址被映射到SoC的寄存器中,需要利用SoC中ATU完成VM所要访问的VF对应的BAR地址范围中的地址和SoC的寄存器中的地址的转换,该BAR地址范围为该VF对应的多个BAR地址区间中的地址范围,由于每个BAR地址区间包括多个区域, 因此,每个VF的BAR地址范围相应地也包括多个区域。
传统的实现方式中,SoC中包括多个ATU。当VM需要访问处理器的BAR地址段中的地址且发送访问请求时,所有ATU均会接收该访问请求,并解析该访问请求中携带的待访问的地址,最终由一个匹配的ATU将VM待访问的地址转换为寄存器中的地址。例如,系统中存在两个VM,每个VM对应一个VF,每个VF对应一个BAR地址区间,每个BAR地址区间包含2个区域。此时,SoC中需要配置4个ATU分别用于完成不同VM的访问请求的地址转换。随着VM数量增多,ATU数量也会增多。而且,在SoC接收到任意一个VM发送的访问请求时,所有ATU都会进行处理,增大了SoC负载。因此,上述ATU实现过程存在资源浪费和处理效率低的问题。
发明内容
本申请提供了一种地址转换方法、装置及系统,可以用于解决传统技术中ATU实现过程存在资源浪费和处理效率低的问题。所述技术方案如下:
第一方面,提供了一种地址转换方法,所述方法包括:
第一ATU接收第一VM发送的访问请求,访问请求携带第一地址和第一地址的参数信息,根据第一地址的参数信息和地址映射表确定匹配关系,地址映射表包括VF范围描述信息,VF范围描述信息用于描述至少两个VF的属性,当确定目标VF的标识和VF范围描述信息匹配成功时,第一ATU根据地址映射表将第一地址转换为第二地址,第二地址为第一地址在SoC中的映射地址。其中,第一ATU为SoC中部署的至少一个ATU中任意一个,SoC与处理器通过扩展外围组件互连高速PCIe总线相连,处理器上运行有至少一个VM,第一VM为至少一个VM中任意一个,在PCIe总线中为每个VM分配至少一个虚拟功能VF,每个VF对应的基地址寄存器BAR地址范围对应SoC的寄存器中一段地址范围,每个VF对应的BAR地址范围包括至少一个区域region,第一地址为第一VM待访问的目的地址,待访问的目的地址为处理器管理的BAR地址段中的地址,第一地址的参数信息包括目标VF的标识,目标VF是第一VM在PCIe总线中分配的至少一个VF中的一个。
在本申请中,由于VF范围描述信息用于描述至少两个VF的属性,因此,第一ATU可以对至少两个VF对应的BAR地址范围中的地址进行转换,而不是只能对某个VF对应的BAR地址范围中的地址进行转换,因此,通过本申请提供的地址转换方法,可以减少在SoC上部署的ATU的数量,从而避免在ATU实现过程存在资源浪费和处理消息低的问题。
在一种可能的实现方式中,至少两个VF是在编号上连续的VF,VF范围描述信息包括VF起始标识和VF数目,VF起始标识是至少两个VF对应的至少两个编号中最小的编号,VF数目是至少两个VF的个数。这种情况下,确定目标VF的标识与VF范围描述信息匹配成功,包括:当目标VF的标识大于或等于VF起始标识,且小于VF起始标识与VF数目之间的和时,确定目标VF的标识与VF范围描述信息匹配成功。
在本申请中,当至少两个VF是在编号上连续的VF时,通过VF起始标识和VF数目即可确定至少两个VF是哪些VF,因此,VF范围描述信息可以包括VF起始标识和VF数目。
在另一种可能的实现方式中,VF范围描述信息包括至少两个VF中每个VF的标识。这种情况下,确定目标VF的标识与VF范围描述信息匹配成功,包括:当目标VF的标识为VF范围描述信息中的标识时,确定目标VF的标识与VF范围描述信息匹配成功。
在本申请中,VF范围描述信息也可直接包括至少两个VF中每个VF的标识,以表征至少两个VF是哪些VF。
可选地,第一地址的参数信息还包括区域标识,区域标识用于指示第一地址归属的区域,地址映射表还包括区域描述信息,区域描述信息用于描述至少两个区域中的地址,至少两个区域与至少两个VF一一对应,且第一ATU用于对至少两个区域中的地址进行地址转换。这种情况下,第一ATU根据地址映射表将第一地址转换为第二地址之前,还包括:当确定区域标识与区域描述信息匹配成功时,第一ATU执行根据地址映射表将第一地址转换为第二地址的操作。
在本申请中,在对第一地址进行地址转换之前,除了需要进行VF匹配,还需要进行区域匹配。
其中,至少两个区域的大小相同,且每个区域的起始地址相同,区域描述信息包括区域大小、第一起始地址、PF标识和BAR地址区间标识,区域大小是指至少两个区域中任一区域的大小,第一起始地址是指至少两个区域中任一区域的起始地址,区域标识包括目标PF的标识和目标BAR地址区间的标识,目标PF是目标VF所属的PF,目标BAR地址区间是第一地址所属的BAR地址区间。这种情况下,确定区域标识与区域描述信息匹配成功,包括:当目标PF的标识与区域描述信息中的PF标识相同、目标BAR地址区间的标识与区域描述信息中的BAR地址区间标识相同、第一地址大于或等于第一起始地址,且小于或等于第一起始地址与区域大小之间的和时,确定区域标识与区域描述信息匹配成功。
在本申请中,区域匹配具体包括上述三个方面的匹配。
其中,地址映射表还包括第二起始地址,第二起始地址是指第一ATU进行地址转换时SoC侧的寄存器的起始地址。此时,第一ATU根据地址映射表将第一地址转换为第二地址,包括:根据地址映射表、第一地址的参数信息和第一地址,确定第二地址相对于第二起始地址之间的地址差值;将确定得到的地址差值和第二起始地址相加,得到第二地址。
由于地址映射表还包括第二起始地址,因此,在需要对第一地址进行转换时,需先确定第二地址与第二起始地址之间的差值,以根据确定的差值确定第二地址。
在一种可能的实现方式中,第一ATU根据地址映射表、第一地址的参数信息和第一地址,确定第二地址相对于第二起始地址之间的地址差值,包括:根据地址映射表、第一地址的参数信息和第一地址通过预设公式确定地址差值,预设公式为:△=(IA-BAR_OFFSET)+(VF_ID-VF_START)*SIZE;其中,△为地址差值,IA为第一地址、BAR_OFFSET为地址映射表的区域描述信息中的第一起始地址、VF_ID为目标VF的标识,VF_START为VF范围描述信息中的VF起始标识。
在本申请中,可以通过上述公式来确定第二地址相对于第二起始地址之间的地址差值。
可选地,本申请提供的地址转换方法还包括:第一ATU接收并存储地址映射表,地址映射表是处理器在初始化时根据各个VF对应的BAR地址范围中包括的区域、以及各个VF对应的BAR地址范围中包括的区域在SoC上的映射地址确定的。
在本申请中,在处理器在初始化时即为第一ATU配置有地址映射表,以使第一ATU后续在接收到第一地址时,可以根据地址映射表对第一地址进行地址转换。
第二方面,提供了一种地址转换装置,应用于第一ATU中,所述地址转换装置具有实现上述第一方面中地址转换方法行为的功能。所述地址转换装置包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的地址转换方法。
第三方面,提供了一种地址转换的系统,该系统包括处理器和SoC,SoC与处理器通过PCIe总线相连,SoC中包括第一地址转换单元,该系统运行时,第一ATU可以执行上述第一方面所述的地址转换方法。
第四方面,提供了一种SoC,该SoC与处理器通过PCIe总线相连,SoC中包括第一地址转换单元,第一ATU用于执行上述第一方面所述的地址转换方法。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的地址转换方法。
第六方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的地址转换方法。
上述第二方面、第三方面、第四方面、第五方面和第六方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本申请提供的技术方案带来的有益效果是:
在本申请中,第一ATU接收第一VM发送的访问请求,该访问请求携带第一地址和第一地址的参数信息,第一地址的参数信息包括目标VF的标识,第一ATU根据第一地址的参数信息和地址映射表中的VF范围描述信息确定匹配关系,当目标VF的标识和VF范围描述信息匹配成功时,第一ATU根据地址映射表将第一地址转换为第二地址。由于VF范围描述信息用于描述至少两个VF的属性,因此,在本申请中,第一ATU可以对至少两个VF对应的BAR地址范围中的地址进行转换,而不是只能对某个VF对应的BAR地址范围中的地址进行转换,因此,通过本申请提供的地址转换方法,可以减少在SoC上部署的ATU的数量,从而避免在ATU实现过程存在资源浪费和处理效率低的问题。
附图说明
图1是本申请实施例提供的一种服务器示意图;
图2是本申请实施例提供的一种计算机设备的结构示意图;
图3是本申请实施例提供的一种地址转换方法流程图;
图4是本申请实施例提供的一种映射关系示意图;
图5是本申请实施例提供的一种地址转换装置框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细解释说明之前,先对本申请的应用背景进行介绍:
随着云技术的发展,服务器上通常部署有多个VM,服务器可以通过不同的VM向不同的租户提供服务。并且随着服务器使用时长的增加,服务器上部署的VM的数量也会增多,导致服务器中存储的数据也多来越多,因此通常需要对服务器中存储的数据进行转移,以实现对服务器的处理器的功能进行卸载,从而减轻服务器的数据处理压力。其中,对服务器中存储的数据进行转移的实现方式为:将SoC与服务器通过PCIe总线连接,服务器通过PCIe总线访问SoC上的内存空间,将自身存储的数据转移至SoC上。本申请提供的地址转换方法就应用于在服务器将自身存储的数据转移至SoC的过程中服务器需要访问SoC上的内存空间的场景。
图1是本申请实施例提供的一种服务器示意图。如图1所示,服务器100包括处理器101,和通过PCIe总线插入服务器100中的SoC102,也即是,SoC 102与处理器通过PCIe总线相连。PCIe总线包括根联合体1011和端点设备1021,根联合体1011部署在处理器101中,端点设备1021部署在SoC 102中。根联合体1011与端点设备1021之间通过无线或有线方式连接以进行通信。
如图1所示,处理器101上运行有操作系统(Operating System),且操作系统上运行有至少一个VM,在PCIe总线的根联合体1011中为每个VM分配至少一个VF,每个VF对应一个BAR地址范围,每个BAR地址范围包括至少一个BAR地址区间,每个BAR地址区间包括至少一个区域。SoC102包括至少一个寄存器,对于根联合体1011上每个VF的BAR地址范围上的每个区域,该区域在寄存器中存在对应的映射地址,也即是,该区域在SoC侧存在对应的映射地址。
另外,传统技术中,对于根联合体1011上每个VF的BAR地址范围上的每个区域,在SoC102中,针对每个区域设置有对应的ATU,每个ATU部署于端点设备1021中。也即是,对于根联合体1011上所有VF的BAR地址范围上的所有区域,假设所有的区域的数量为N,那么在SoC102中将部署有N个ATU。
对于N个ATU中任一ATU,针对该ATU设置有地址映射表。地址映射表用于描述针对该ATU设置的地址转换范围。当VM发起对某个地址的访问时,操作系统判断该地址是否属于处理器管理的BAR地址段中的地址,若是,则将该地址发送给根联合体1011,由根联合体1011将该地址转发给端点设备1021。当端点设备1021接收到该地址时,端点设备1021中部署的各个ATU根据自身的地址映射表对该地址进行匹配。若某个ATU判断出该地址与地自身的地址映射表匹配成功,那么该ATU对该地址进行转换,以使SoC102访问转换后的地址。
需要说明的是,由于传统技术中针对每个VF对应的BAR地址范围中的每个区域设置一个ATU,也即是,每个ATU仅能对一个区域内的地址进行转换,致使需要部署的ATU的数量较多,从而导致硬件资源的浪费,因此,在本申请实施例中,每个ATU用于对至少两个VF的BAR地址范围的区域中的地址进行转换,以减少端点中需要部署的ATU的数量。
其中,ATU可以通过硬件单元来实现,也可以通过软件单元来实现,在图1中,以通过硬件单元来实现ATU为例进行说明。另外,服务器100可以为X86服务器或ARM服务器等设备,本申请实施例在此不做具体限定。
需要说明的是,在本申请实施例中,VM的数量、ATU的数量以及寄存器的数量之间并没有对应关系,在图1中,仅仅是以M个VM、N个ATU以及X个寄存器为例进行说明,并不构成对本申请中VM的数量、ATU的数量以及寄存器的数量的限制。其中,M、N以及X均为大于或等于1的正整数。
图2是本申请实施例提供的一种计算机设备的结构示意图。图1中的服务器可以通过图2所示的计算机设备来实现。参见图2,该计算机设备包括至少一个处理器201、总线202、存储器203以及至少一个通信接口204。
处理器201可以是一个通用中央处理器(Central Processing Unit,CPU)、微处理器、特定应用集成电路(application-specific integrated circuit,ASIC)或一个或多个用于控制本申请方案程序执行的集成电路。每个处理器可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在本申请实施例中,如图2所示,处理器201还通过总线与片上系统SoC 205连接。例如,SoC 205以PCIe总线标准卡的形式接入图2所示的服务器。其中,SoC 205中部署有至少一个ATU,第一ATU用于执行本申请实施例提供的地址转换方法,第一ATU为至少一个ATU中任意一个。
总线202可包括一通路,在上述组件之间传送信息。该总线202除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线202。
存储器203可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器203可以是独立存在,通过通信总线202与处理器201相连接。存储器203也可以和处理器201集成在一起。
通信接口204,使用任何收发器一类的装置,用于与其它设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
在具体实现中,作为一种实施例,计算机设备还可以包括输出设备206和输入设备207。输出设备206和处理器201通信,可以以多种方式来显示信息。例如,输出设备206可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备207和处理器201通信,可以以多种方式接收用户的输入。例如,输入设备207可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备可以是X86服务器或ARM服务器等设备。本申请实施例不限定计算机设备的类型。
接下来就本申请实施例提供的地址转换方法进行解释说明。
由图1所示的服务器可知,端点设备中部署有多个ATU,由于各个ATU进行地址转换的实现方式基本相同,因此下述实施例以第一ATU为例详细说明本申请提供的地址转换方法,其他ATU进行地址转换的实现方式均可参考下述实施例提供的地址转换方法。其中,第一ATU为端点设备上部署的多个ATU中的一个ATU。
图3是本申请实施例提供的一种地址转换方法流程图,应用于第一ATU中,如图3所示,该方法包括如下步骤:
步骤301:第一ATU接收第一VM发送的访问请求,该访问请求携带第一地址和第一地址的参数信息。
在本申请实施例中,当服务器上的VM需要访问处理器中的某个地址时,VM实际上是通过服务器的操作系统来访问该地址的。另外,处理器侧的地址区间实际上包括两部分,一部分地址区间用于描述服务器本地的地址,另一部分地址区间用于与SoC上的地址进行映射。为了便于说明,将用于描述服务器本地的地址区间称为第一类地址区间,将用于与SoC上的地址进行映射的地址区间称为第二类地址区间。
因此,第一ATU接收第一VM发送的访问请求的实现方式为:第一VM向操作系统发送访问请求,访问请求中携带待访问的第一地址和第一地址的参数信息,当操作系统接收到访问请求时,判断第一地址是否属于第二类地址区间中的地址,若是,则将访问请求转发给根联合体。当根联合体接收到访问请求时,确定该操作系统当前需要访问SoC上的地址,之后,根联合体将访问请求转发给PCIe总线中的端点设备,由端点设备中的部署的各个ATU接收访问请求。当第一地址不属于第二类地址区间中的地址,而是属于第一类地址区间中的地址时,表明第一VM当前需要访问的地址为服务器本地的地址,此时操作系统可以直接访问第一地址。
需要说明的是,当服务器中插入多个SoC时,PCIe总线中每个SoC都对应一个端点设备,此时,当根联合体接收到访问请求时,可以根据该访问请求中携带的第一地址,确定操作系统当前需要访问哪个SoC上的地址,以便于将访问请求转发给对应的SoC中的端点设备。
其中,第一ATU为SoC中部署的至少一个ATU中任意一个,第一VM为处理器上运行的至少一个VM中任意一个。需要说明的是,在第一VM发起访问请求之后,若第一地址是第二类地址区间中的地址,SoC中的每个ATU都将接收到该访问请求,由于每个ATU对该访问请求的处理过程相同,因此,在此以第一ATU为例进行说明。
另外,第一地址的参数信息用于对第一地址的其他相关信息进行描述。在一种可能的实现方式中,由于第一地址是第一VM发起的访问请求中携带的地址,因此,该第一地址的参数信息包括目标VF的标识,目标VF是第一VM在PCIe总线中分配的至少一个VF中的一个。
进一步地,第一地址的参数信息还包括区域标识,区域标识用于指示第一地址归属的区域。其中,区域标识包括目标PF的标识和目标BAR地址区间的标识。目标PF是目标VF所属的PF,目标BAR地址区间是第一地址所属的BAR地址区间。也即是,目标PF是指对第一地址进行访问时所针对的PF。
另外,在本申请实施例中,针对第一ATU预先设置有地址映射表,该地址映射表用于描述针对第一ATU设置的地址转换范围以及SoC上与这段地址转换范围相互映射的地址。为了后续便于说明,在此先对服务器侧中的地址与SoC侧的地址之间的映射关系进行解释说明。
目前,对于服务器上的各个VF,针对每个VF设置有编号,编号可以用于唯一标识一个VF。对于任一VF,该VF的至少一个BAR地址区间中的每个BAR地址区间也存在对应的编号,并且每个BAR地址区间的编号是按照该VF包括的BAR地址区间的数目依次进行编号的。对于某个VF的任一BAR地址区间,该BAR地址区间中的每个区域也是按照该BAR地址区间包括的区域的数目依次进行编号的。比如,处理器上运行有两个VM,每个VM对应一个VF,且这两个VF为属于同一PF的VF,可以将这两个VF分别标记为VF1和VF2。其中,VF1对应两个BAR地址区间,可以分别标记为BAR(0)和BAR(1),VF2也对应两个BAR地址区间,同样可以分别标记为BAR(0)和BAR(1)。其中,VF1的BAR(0)包括两个区域,分别标记为region1和region2,VF2的BAR(0)也包括两个区域,也可以标记为region1和region2。
其中,任一BAR地址区间包括的两个相邻的区域对应的地址区间之间可以为连续地址区间,也即是,前一个区域的结束地址和后一个区域的起始地址为连续的两个地址。当然,任一BAR地址区间包括的两个相邻的区域对应的地址区间之间也可以为不连续的地址区间,也即是,前一个区域的结束地址和后一个区域的起始地址之间还存在其他的地址,本申请实施例在此不做具体限定。
另外,对于几个编号上连续的VF,在编号相同的BAR地址区间包括的区域中,编号相同的区域通常用于实现同一业务。其中,不同的区域用于实现同一业务是指,处理器在访问这几个不同的区域中的地址之后,执行的操作基本相同,比如,均为读数据操作或者均为写数据操作。并且,对于服务器上各个VF的每个BAR地址区间上的每个区域,该区域在SoC侧的映射地址存在这样一个特点:在不同的VF的BAR地址区间包括的各个区域中,若各个区域中的某些区域用于实现同一个业务,则这些区域在SoC侧的映射地址是一段连续的地址区间。也即是,对于几个编号上连续的VF,在编号相同的BAR地址区间包括的区域中,编号相同的区域在SoC侧的映射地址是一段连续的地址区间。
图4是本申请实施例提供的一种映射关系示意图。假设服务器上运行有两个VM,每个VM对应一个VF,分别标记为VF1和VF2,每个VF包括一个BAR地址区间,分别标记为VF1的BAR(0)和VF2的BAR(0),每个VF的BAR地址区间包括两个区域,VF1的BAR(0)包括的两个区域分别标记为VF1-region1和VF1-region2,VF2的BAR(0)包括的两个区域分别标记为VF2-region1和VF2-region2。如图4所示,VF1-region1的地址区间为[a1,a2],该地址区间与SoC的寄存器中的地址区间[b1,b2]之间相互映射。VF2-region1的地址区间为[c1,c2],该地址区间与SoC的寄存器中的地址区间[b3,b4]之间相互映射。VF1-region2的地址区间为[a3,a4],该地址区间与SoC的寄存器中的地址区间[b5,b6]之间相互映射。VF2-region2的地址区间为[c3,c4],该地址区间与SoC的寄存器中的地址区间[b7,b8]之间相互映射。需要说明的是,由于VF1-region1和VF2-region1通常用于实现同一业务,因此,将VF1-region1和VF2-region1映射到SoC的寄存器上的地址区间设置为连续的地址区间,也即是,b2和b3为连续的两个地址。由于VF1-region2和VF2-region2也通常用于实现同一业务,因此,将VF1-region2和VF2-region2映射到SoC的寄存器上的地址区间设置为连续的地址区间,也即是,b6和b7为连续的两个地址。
在本申请实施例中,正是基于上述映射关系,为了减少端点中部署的ATU的数量,第一ATU用于对至少两个区域中的地址进行转换,该至少两个区域分别属于服务器上的至少两个VF,且至少两个区域用于实现同一业务。也即是,针对第一ATU设置的至少两个区域在SoC侧的映射地址是一段连续的地址区间。
由于第一ATU用于对至少两个区域中的地址进行转换,因此,第一ATU的地址映射表需要包括VF范围描述信息,该VF范围描述信息用于描述该至少两个VF的属性。在本申请实施例中,VF范围描述信息具体可以有以下三种表现形式:
第一种表现形式,VF范围描述信息包括VF起始标识和VF数目,VF起始标识是指该至少两个VF对应的至少两个编号中最小的编号,VF数目是该至少两个VF的个数。具体地,VF范围描述信息可以包括VF_START和VF_NUM,其中,VF_START用于标记VF起始标识,VF_NUM用于标识VF数目。比如,当VF_START=2,VF_NUM=3时,该至少两个VF为VF2、VF3以及VF4。
第二种表现形式,VF范围描述信息包括VF起始标识和VF终止标识,VF终止标识是该至少两个VF对应的至少两个编号中最大的编号。具体地,VF范围描述信息可以包括VF_START和VF_END,VF_START用于标记VF起始标识,VF_END用于标记VF终止标识。比如,当VF_START=2,VF_END=5时,该至少两个VF为VF2、VF3、VF4以及VF5。
第三种表现形式,VF范围描述信息包括该至少两个VF中每个VF的标识。
当然,在本申请实施例中,VF范围描述信息还可以采用其他表现形式,只需要保证通过VF范围描述信息即可确定该至少两个VF是哪些VF即可。
另外,由于VF范围描述信息只能用来描述至少两个区域对应的至少两个VF是哪些VF,但是不能明确限定该至少两个区域的具体位置,因此,第一ATU的地址映射表还包括区域描述信息,该区域描述信息用于描述至少两个区域中的地址,至少两个区域与至少两个VF一一对应,且第一ATU用于对至少两个区域中的地址进行地址转换。
需要说明的是,由于每个PF包含1个或多个VF。对于1个固定的VM,可以使用1个或多个VF。每个VF对应有多个BAR地址区间。因此,为了能够明确该至少两个区域的具体位置,该区域描述信息可以包括PF标识和BAR地址区间标识,以实现通过该区域描述信息和VF范围描述信息就可以确定该至少两个区域是哪些VF的哪些BAR地址区间上的区域,以及该至少两个VF所属的PF。
另外需要说明的是,当该至少两个区域用于实现同一业务时,该至少两个区域的大小相同,且每个区域的起始地址相同。因此,该区域描述信息还包括区域大小和第一起始地址,区域大小是指至少两个区域中任一区域的大小,第一起始地址是指至少两个区域中任一区域的起始地址,以实现通过区域描述信息和VF范围描述信息就可以确定该至少两个区域的具体位置。其中,区域大小可以标记为SIZE,第一起始地址可以标记为BAR_OFFSET。
另外,由于该至少两个区域在SoC侧的映射地址是一段连续的地址区间,因此,第一ATU的地址映射表中还包括第二起始地址,第二起始地址是指第一ATU进行地址转换时SoC侧的起始地址。其中,第二起始地址可以标记为DST_BASE。
比如,该至少两个区域为图4中的VF1-region1和VF2-region1,其中,a1和c1所代表的地址相同,且地址区间[a1,a2]的区间长度与地址区间[c1,c2]区间长度相同。第一ATU的地址映射表包括的VF起始标识VF_START=1,VF数目VF_NUM=2,区域大小SIZE为地址区间[a1,a2]的区间长度或地址区间[c1,c2]区间长度,第一起始地址BAR_OFFSET为a1或c1,第二起始地址DST_BASE为b1。
需要说明的是,在本申请实施例中,在处理器管理的地址段中存在一个基准地址,处理器管理的地址段中的其他地址均记录为相对于该基准地址的偏移地址。
上述地址映射表包括VF范围描述信息、区域描述信息和第二起始地址。可选地,在本申请实施例中,地址映射表可以只包括VF范围描述信息,区域描述信息中的第一起始地址和第二起始地址,此时第一ATU用于对至少两个VF中的所有区域进行地址转换。
另外,第一ATU的地址映射表是在服务器初始化时设置的,具体地,设置第一ATU的地址映射表的实现方式为:当服务器初始化时,确定服务器上的各个VF的BAR地址范围中包括的区域,并确定各个区域在SoC侧的映射地址。根据各个VF的BAR地址范围中包括的区域以及各个区域在SoC侧上的映射地址,确定针对第一ATU设置的至少两个VF,并根据确定的至少两个VF生成VF范围描述信息。进一步地,确定与至少两个VF一一对应的至少两个区域,并根据该至少两个区域生成区域描述信息,然后根据VF范围描述信息、区域描述信息以及与该至少两个区域在SoC侧上的映射地址确定第一ATU的地址映射表。服务器在确定出第一ATU的地址映射表之后,通过PCIe总线中的根联合体向第一ATU发送该地址映射表。当第一ATU接收到该地址映射表时,存储该地址映射表,以便后续根据该地址映射表对第一地址进行转换。也即是,在服务器初始化时,确定SoC中每个ATU的地址映射表,并将每个ATU的地址映射表发送给对应的ATU,以使对应的ATU存储地址映射表。
由于第一ATU用于对至少两个VF的BAR地址范围中的区域进行地址转换,因此,通过本申请实施例提供的地址转换方法可以减少在SoC中部署的ATU的数量。
比如,处理器上运行有64个VM,每个VM使用一个VF,64个VF属于同一PF,且每个VF的BAR地址范围包括一个BAR地址区间,每个BAR地址区间包括2个区域。将每个VF的BAR地址区间包括2个区域分别标记为region1和region2。假设所有的VF的region1用于实现同一业务,所有的VF的region2也用于实现同一业务。相关技术中需要在SoC中部署64×2=128个ATU。而通过本申请实施提供的地址转换方法,可以将64个VF的所有的region1采用一个ATU来进行地址转换,将64个VF的所有的region2采用一个ATU来进行地址转换,这样的话,在SoC中仅需要部署2个ATU即可,相对于相关技术中需要部署128个ATU,大大地减少了需要部署的ATU的数量,从而可减少ATU实现过程存在资源浪费和处理消息低的问题。
步骤302:第一ATU根据第一地址的参数信息和地址映射表确定匹配关系。
具体地,步骤302可以通过以下两个步骤来实现:
步骤3021:确定目标VF的标识和VF范围描述信息之间是否匹配。
为了后续便于说明,将确定目标VF的标识和VF范围描述信息之间是否匹配的过程称为VF匹配。
由步骤301可知,VF范围描述信息存在三种表现形式,因此,相应地,根据目标VF的标识和VF范围描述信息对第一地址进行VF匹配也有以下三种实现方式:
针对步骤301中VF范围描述信息的第一种表现形式,根据目标VF的标识和VF范围描述信息对第一地址进行VF匹配的实现方式可以为:确定目标VF的标识是否大于或等于起始标识,且小于起始标识与数目之间的和,若是,则确定目标VF的标识与VF范围描述信息匹配成功。若否,则确定目标VF的标识与VF范围描述信息匹配成功不成功。
针对步骤301中VF范围描述信息的第二种表现形式,根据目标VF的标识和VF范围描述信息对第一地址进行VF匹配的实现方式可以为:确定目标VF的标识是否大于或等于起始标识,且小于或等于终止标识,若是,则确定目标VF的标识与VF范围描述信息匹配成功。若否,则确定目标VF的标识与VF范围描述信息匹配不成功。
针对步骤301中VF范围描述信息的第三种表现形式,根据目标VF的标识和VF范围描述信息对第一地址进行VF匹配的实现方式可以为:确定目标VF的标识是否是VF范围描述信息中包括的标识中的一个标识,若是,则确定目标VF标识与VF范围描述信息匹配成功。若否,则确定目标VF标识与VF范围描述信息匹配不成功。
通过步骤3021可以确定出目标VF是否是针对第一ATU设置的至少两个VF中的VF,如果确定出目标VF是至少两个VF中的VF,第一ATU可以通过下述步骤3022对第一地址进行其他方面的信息匹配。
步骤3022:确定第一地址的参数信息中的区域标识和地址映射表中的区域描述信息之间是否匹配成功。
由步骤301可知,第一地址的参数信息包括区域标识,该区域标识包括目标PF的标识和目标BAR地址区间的标识。另外,第一ATU的地址映射表中的区域描述信息包括区域大小、第一起始地址、PF标识和BAR地址区间标识。因此,步骤303的实现方式可以为:确定目标PF的标识是否与区域描述信息中的PF标识相同,若是,则确定PF标识匹配成功,确定目标BAR地址区间的标识是否与区域描述信息中的BAR地址区间标识相同,若是,则确定BAR地址区间标识匹配成功,确定第一地址是否大于或等于第一起始地址,且小于或等于第一起始地址与区域大小之间的和,若是,则确定地址范围匹配成功。
也即是,在本申请实施例中,确定第一地址的参数信息中的区域标识和地址映射表中的区域描述信息之间是否匹配成功主要包括三个方面的信息匹配,分别是PF标识匹配、BAR地址区间标识匹配和地址范围匹配,当通过上述实现方式确定出这三个方面的信息匹配均成功时,表明第一地址的参数信息中的区域标识和地址映射表中的区域描述信息匹配成功。当这三个方面的信息匹配中任一方面的信息匹配不成功时,都表明第一地址的参数信息中的区域标识和地址映射表中的区域描述信息之间匹配未成功。
其中,PF标识匹配、BAR地址区间标识匹配和地址范围匹配这三方面的信息匹配没有先后执行顺序,并且上述步骤3021和步骤3022之间也没有先后执行顺序,第一ATU可以先执行步骤3021,再执行步骤3022,也可以先执行步骤3022,再执行步骤3021;当然,还可以同时执行步骤3021和步骤3022,本申请实施例在此不做具体限定。
当通过步骤302确定出目标VF的标识和VF范围描述信息匹配成功,且确定区域标识与区域描述信息匹配成功时,表明第一地址在针对第一ATU设置的地址转换范围之内,此时,可以通过下述步骤303对第一地址进行地址转换。当VF匹配和区域匹配中任一个没有匹配成功时,表明第一地址未在针对第一ATU设置的地址转换范围之内,此时,第一ATU无需执行任何操作。
需要说明的是,上述是以步骤3021和步骤3022举例说明第一ATU如何根据第一地址的参数信息和地址映射表确定匹配关系。可选地,当第一ATU的地址映射表仅仅包括VF范围描述信息、区域描述信息中的第一起始地址和第二起始地址,第一ATU仅仅需要根据步骤3021即可确定第一地址的参数信息和地址映射表之间的匹配关系,也即是,第一ATU在确定出目标VF的标识和VF范围描述信息匹配成功时,就可以通过下述步骤303进行地址转换。
步骤303:第一ATU根据地址映射表将第一地址转换为第二地址,第二地址为第一地址在SoC中的映射地址。
由步骤301可知,第一ATU的地址映射表还包括第二起始地址,且第二起始地址是指第一ATU进行地址转换时SoC侧的起始地址。另外,由步骤301可知,针对第一ATU设置的至少两个区域在SoC侧的映射地址是一段连续的地址区间。因此,步骤303的实现方式可以为:根据地址映射表、第一地址的参数信息和第一地址,确定第二地址相对于第二起始地址之间的地址差值,将确定得到的地址差值和第二起始地址相加,得到第二地址。
另外,由于该至少两个区域的大小相同,每个区域的起始地址相同,因此,根据地址映射表、第一地址的参数信息和第一地址,确定第二地址相对于第二起始地址之间的地址差值的实现方式可以为:根据地址映射表、第一地址的参数信息和第一地址通过预设公式确定地址差值,该预设公式为:△=(IA-BAR_OFFSET)+(VF_ID-VF_START)*SIZE,其中,△为地址差值,IA为第一地址、BAR_OFFSET为区域描述信息中的第一起始地址、VF_ID为第一地址的参数信息中的目标VF的标识,VF_START为VF范围描述信息中的VF起始标识。
下面以图4为例进一步详细说明本申请实施例提供的地址转换方法,假设针对第一ATU设置的至少两个区域为VF1-region1和VF2-region1,那么第一ATU的地址映射表中的VF范围描述信息包括:VF_START和VF_NUM,其中,VF_START=1,VF_NUM=2。第一ATU的地址映射表中的区域描述信息包括:SIZE、BAR_OFFSET、PF标识和BAR地址区间标识,其中,SIZE为地址区间[a1,a2]的区间长度或地址区间[c1,c2]区间长度,BAR_OFFSET为a1或c1,BAR地址区间标识为BAR(0),假设PF标识为PF4。第一ATU的地址映射表还包括DST_BASE,该DST_BASE为b1。也即是,第一ATU的地址映射表将包括这些信息:VF_START、VF_NUM、SIZE、BAR_OFFSET、PF标识、BAR地址区间标识和DST_BASE。
如图4所示,当第一ATU接收到访问请求时,访问请求中的第一地址标记为图4所示的IA,第一地址的参数信息包括的目标VF的标识为VF2、目标BAR地址区间的标识为BAR(0)以及目标PF的标识为PF4。具体地,第一ATU对图4中的IA进行地址转换包括以下两个步骤:
(1)对IA进行信息匹配。
其中,对IA进行信息匹配,包括两个方面的内容,第一方面:确定目标VF的标识和VF范围描述信息之间是否匹配,第二方面:确定第一地址的参数信息中的区域标识和地址映射表中的区域描述信息之间是否匹配成功。
其中,第一方面的具体过程为:确定VF_START和VF_NUM之间的和为3,由于VF2对应的编号2大于1且小于3,因此确定目标VF的标识和VF范围描述信息匹配成功。
第二方面的具体过程为:由于目标BAR地址区间的标识为BAR(0)以及目标PF的标识为PF4恰好是地址映射表中的BAR地址区间标识和PF标识,因此,确定BAR匹配和PF匹配成功。另外,如图4所示,IA大于c1且小于c1与SIZE之间的和,因此,地址匹配也成功。因此,可以确定第一地址的参数信息中的区域标识和地址映射表中的区域描述信息匹配成功。
由于上述两个方面的内容均匹配成功,因此,第一ATU可以通过步骤(2)对IA进行地址转换。
(2)对IA进行地址转换。
具体地,根据预设公式△=(IA-BAR_OFFSET)+(VF_ID-VF_START)*SIZE,确定出△=(IA-c1)+(2-1)*(c2-c1)=(IA-c1)+(c2-c1)。根据DST_BASE可以得到第二地址=DST_BASE+(IA-c1)+(c2-c1)。
另外,第一VM发起的访问请求可以为读或写请求,因此,在第一ATU将第一地址转换为第二地址之后,SoC可以根据访问请求执行相应的处理。比如,当访问请求为读请求时,SoC获取第二地址对应的数据并返回给处理器。当访问请求为写请求时,SoC将待写的数据存储至第二地址对应的存储区域。
在本申请中,第一ATU接收第一VM发送的访问请求,该访问请求携带第一地址和第一地址的参数信息,第一地址的参数信息包括目标VF的标识,第一ATU根据第一地址的参数信息和地址映射表中的VF范围描述信息确定匹配关系,当目标VF的标识和VF范围描述信息匹配成功时,第一ATU根据地址映射表将第一地址转换为第二地址。由于VF范围描述信息用于描述至少两个VF的属性,因此,在本申请实施例中,第一ATU可以对至少两个VF对应的BAR地址范围中的地址进行转换,而不是只能对某个VF对应的BAR地址范围中的地址进行转换,因此,通过本申请提供的地址转换方法,可以减少ATU的数量,从而避免在ATU实现过程存在资源浪费和处理效率低的问题。
图5是本申请实施例提供的一种地址转换装置示意图,应用于第一ATU中,如图5所示,该装置500包括接收模块501、确定模块502和转换模块503。
接收模块501,用于执行图3实施例中的步骤301,其中,第一ATU为SoC中部署的至少一个ATU中任意一个,SoC与处理器通过PCIe总线相连,处理器上运行有至少一个VM,第一VM为至少一个VM中任意一个,在PCIe总线中为每个VM分配至少一个VF,每个VF对应的BAR地址范围对应SoC的寄存器中一段地址范围,每个VF对应的BAR地址范围包括至少一个区域,第一地址为第一VM待访问的目的地址,待访问的目的地址为处理器管理的BAR地址段中的地址述第一地址的参数信息包括目标VF的标识,目标VF是第一VM在PCIe总线中分配的至少一个VF中的一个。
确定模块502,用于执行图3实施例中的步骤302,其中,地址映射表包括VF范围描述信息,VF范围描述信息用于描述至少两个VF的属性;
转换模块503,用于当确定目标VF的标识和VF范围描述信息匹配成功时,执行图3实施例中的步骤303。
可选地,至少两个VF是在编号上连续的VF,VF范围描述信息VF起始标识和VF数目,VF起始标识是至少两个VF对应的至少两个编号中最小的编号,VF数目是至少两个VF的个数;
确定模块502,具体用于:
当目标VF的标识大于或等于VF起始标识,且小于VF起始标识与VF数目之间的和时,确定目标VF的标识与VF范围描述信息匹配成功。
可选地,VF范围描述信息包括至少两个VF中每个VF的标识;
确定模块502,具体用于:
当目标VF的标识为VF范围描述信息中的标识时,确定目标VF的标识与VF范围描述信息匹配成功。
可选地,第一地址的参数信息还包括区域标识,区域标识用于指示第一地址归属的区域,地址映射表还包括区域描述信息,区域描述信息用于描述至少两个区域中的地址,至少两个区域与至少两个VF一一对应,且第一ATU用于对至少两个区域中的地址进行地址转换;
转换模块503还用于:当确定区域标识与区域描述信息匹配成功时,执行根据地址映射表将第一地址转换为第二地址的操作。
可选地,至少两个区域的大小相同,且每个区域的起始地址相同,区域描述信息包括区域大小、第一起始地址、PF标识和BAR地址区间标识,区域大小是指至少两个区域中任一区域的大小,第一起始地址是指至少两个区域中任一区域的起始地址,区域标识包括目标PF的标识和目标BAR地址区间的标识,目标PF是目标VF所属的PF,目标BAR地址区间是第一地址所属的BAR地址区间;
确定模块502,具体用于:
当目标PF的标识与区域描述信息中的PF标识相同、目标BAR地址区间的标识与区域描述信息中的BAR地址区间标识相同、第一地址大于或等于第一起始地址,且小于或等于第一起始地址与区域大小之间的和时,确定区域标识与区域描述信息匹配成功。
可选地,地址映射表还包括第二起始地址,第二起始地址是指第一ATU进行地址转换述SoC侧的寄存器的起始地址;
转换模块包括:
确定单元,用于根据地址映射表、第一地址的参数信息和第一地址,确定第二地址相对于第二起始地址之间的地址差值;
相加单元,用于将确定得到的地址差值和第二起始地址相加,得到第二地址。
可选地,确定单元,具体用于:
根据地址映射表、第一地址的参数信息和第一地址通过预设公式确定地址差值,预设公式为:△=(IA-BAR_OFFSET)+(VF_ID-VF_START)*SIZE;
其中,△为地址差值,IA为第一地址、BAR_OFFSET为地址映射表的区域描述信息中的第一起始地址、VF_ID为目标VF的标识,VF_START为VF范围描述信息中的VF起始标识。
可选地,装置500还包括接收模块:
接收模块,用于接收并存储地址映射表,地址映射表是处理器在初始化时根据各个VF对应的BAR地址范围中包括的区域、以及各个VF对应的BAR地址范围中包括的区域在SoC上的映射地址确定的。
在本申请中,第一ATU接收第一VM发送的访问请求,该访问请求携带第一地址和第一地址的参数信息,第一地址的参数信息包括目标VF的标识,第一ATU根据第一地址的参数信息和地址映射表中的VF范围描述信息确定匹配关系,当目标VF的标识和VF范围描述信息匹配成功时,第一ATU根据地址映射表将第一地址转换为第二地址。由于VF范围描述信息用于描述至少两个VF的属性,因此,在本申请实施例中,第一ATU可以对至少两个VF对应的BAR地址范围中的地址进行转换,而不是只能对某个VF对应的BAR地址范围中的地址进行转换,因此,通过本申请提供的地址转换方法,可以减少在端点上部署的ATU的数量,从而避免在ATU实现过程存在资源浪费和处理消息低的问题。
需要说明的是:上述实施例提供的地址转换的装置在进行地址转换时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将地址转换的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的地址转换装置与地址转换的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种地址转换的系统,该系统包括处理器和SoC,SoC与处理器通过PCIe总线相连,SoC中包括第一地址转换单元,该系统运行时,第一ATU可以执行上述实施例提供的地址转换方法的操作步骤。其中,处理器和SoC可以为图1所示的实施例中的处理器和SoC,还可以为图2所示的实施例中的处理器和SoC。
本申请实施例还提供了一种SoC,该SoC与处理器通过PCIe总线相连,SoC中包括第一地址转换单元,第一ATU用于执行上述实施例提供的地址转换方法的操作步骤。其中,处理器和SoC可以为图1所示的实施例中的处理器和SoC,还可以为图2所示的实施例中的处理器和SoC。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如:固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (18)
1.一种地址转换方法,其特征在于,所述方法包括:
第一地址转换单元ATU接收第一虚拟机VM发送的访问请求,所述访问请求携带第一地址和所述第一地址的参数信息,所述第一ATU为片上系统SoC中部署的至少一个ATU中任意一个,所述SoC与处理器通过扩展外围组件互连高速PCIe总线相连,所述处理器上运行有至少一个VM,所述第一VM为所述至少一个VM中任意一个,在所述PCIe总线中为每个VM分配至少一个虚拟功能VF,每个VF对应的基地址寄存器BAR地址范围对应SoC的寄存器中一段地址范围,每个VF对应的BAR地址范围包括至少一个区域region,所述第一地址为所述第一VM待访问的目的地址,所述待访问的目的地址为所述处理器管理的BAR地址段中的地址,所述第一地址的参数信息包括目标VF的标识,所述目标VF是所述第一VM在所述PCIe总线中分配的至少一个VF中的一个;
所述第一ATU根据所述第一地址的参数信息和地址映射表确定匹配关系,所述地址映射表包括VF范围描述信息,所述VF范围描述信息用于描述至少两个VF的属性;
当确定所述目标VF的标识和所述VF范围描述信息匹配成功时,所述第一ATU根据所述地址映射表将所述第一地址转换为第二地址,所述第二地址为所述第一地址在所述SoC中的映射地址。
2.如权利要求1所述的方法,其特征在于,所述至少两个VF是在编号上连续的VF,所述VF范围描述信息包括VF起始标识和VF数目,所述VF起始标识是所述至少两个VF对应的至少两个编号中最小的编号,所述VF数目是所述至少两个VF的个数;
所述确定所述目标VF的标识与所述VF范围描述信息匹配成功,包括:
当所述目标VF的标识大于或等于所述VF起始标识,且小于所述VF起始标识与所述VF数目之间的和时,确定所述目标VF的标识与所述VF范围描述信息匹配成功。
3.如权利要求1所述的方法,其特征在于,所述VF范围描述信息包括所述至少两个VF中每个VF的标识;
所述确定所述目标VF的标识与所述VF范围描述信息匹配成功,包括:
当所述目标VF的标识为所述VF范围描述信息中的标识时,确定所述目标VF的标识与所述VF范围描述信息匹配成功。
4.根据权利要求1所述方法,其特征在于,所述第一地址的参数信息还包括区域标识,所述区域标识用于指示所述第一地址归属的区域,所述地址映射表还包括区域描述信息,所述区域描述信息用于描述至少两个区域中的地址,所述至少两个区域与所述至少两个VF一一对应,且所述第一ATU用于对所述至少两个区域中的地址进行地址转换;
所述第一ATU根据所述地址映射表将所述第一地址转换为第二地址之前,还包括:
当确定所述区域标识与所述区域描述信息匹配成功时,所述第一ATU执行根据所述地址映射表将所述第一地址转换为第二地址的操作。
5.如权利要求4所述的方法,其特征在于,所述至少两个区域的大小相同,且每个区域的起始地址相同,所述区域描述信息包括区域大小、第一起始地址、物理功能PF标识和BAR地址区间标识,所述区域大小是指所述至少两个区域中任一区域的大小,所述第一起始地址是指所述至少两个区域中任一区域的起始地址,所述区域标识包括目标PF的标识和目标BAR地址区间的标识,所述目标PF是所述目标VF所属的PF,所述目标BAR地址区间是所述第一地址所属的BAR地址区间;
所述确定所述区域标识与所述区域描述信息匹配成功,包括:
当所述目标PF的标识与所述区域描述信息中的PF标识相同、所述目标BAR地址区间的标识与所述区域描述信息中的BAR地址区间标识相同、所述第一地址大于或等于所述第一起始地址,且小于或等于所述第一起始地址与所述区域大小之间的和时,确定所述区域标识与所述区域描述信息匹配成功。
6.如权利要求1至5任一所述的方法,其特征在于,所述地址映射表还包括第二起始地址,所述第二起始地址是指所述第一ATU进行地址转换时所述SoC侧的寄存器的起始地址;
所述第一ATU根据所述地址映射表将所述第一地址转换为第二地址,包括:
根据所述地址映射表、所述第一地址的参数信息和所述第一地址,确定所述第二地址相对于所述第二起始地址之间的地址差值;
将确定得到的地址差值和所述第二起始地址相加,得到所述第二地址。
7.如权利要求6所述的方法,其特征在于,所述第一ATU根据所述地址映射表、所述第一地址的参数信息和所述第一地址,确定所述第二地址相对于所述第二起始地址之间的地址差值,包括:
根据所述地址映射表、所述第一地址的参数信息和所述第一地址通过预设公式确定所述地址差值,所述预设公式为:△=(IA-BAR_OFFSET)+(VF_ID-VF_START)*SIZE;
其中,△为所述地址差值,IA为所述第一地址、BAR_OFFSET为所述地址映射表的区域描述信息中的第一起始地址、VF_ID为所述目标VF的标识,VF_START为所述VF范围描述信息中的VF起始标识。
8.如权利要求1至7任一所述的方法,其特征在于,所述方法还包括:
所述第一ATU接收并存储所述地址映射表,所述地址映射表是所述处理器在初始化时根据各个VF对应的BAR地址范围中包括的区域、以及各个VF对应的BAR地址范围中包括的区域在所述SoC上的映射地址确定的。
9.一种地址转换装置,应用于第一ATU中,其特征在于,所述装置包括:
接收模块,用于接收第一虚拟机VM发送的访问请求,所述访问请求携带第一地址和所述第一地址的参数信息,所述第一ATU为片上系统SoC中部署的至少一个ATU中任意一个,所述SoC与处理器通过扩展外围组件互连高速PCIe总线相连,所述处理器上运行有至少一个VM,所述第一VM为所述至少一个VM中任意一个,在所述PCIe总线中为每个VM分配至少一个虚拟功能VF,每个VF对应的基地址寄存器BAR地址范围对应SoC的寄存器中一段地址范围,每个VF对应的BAR地址范围包括至少一个区域region,所述第一地址为所述第一VM待访问的目的地址,所述待访问的目的地址为所述处理器管理的BAR地址段中的地址,所述第一地址的参数信息包括目标VF的标识,所述目标VF是所述第一VM在所述PCIe总线中分配的至少一个VF中的一个;
确定模块,用于根据所述第一地址的参数信息和地址映射表确定匹配关系,所述地址映射表包括VF范围描述信息,所述VF范围描述信息用于描述至少两个VF的属性;
转换模块,用于当确定所述目标VF的标识和所述VF范围描述信息匹配成功时,根据所述地址映射表将所述第一地址转换为第二地址,所述第二地址为所述第一地址在所述SoC中的映射地址。
10.如权利要求9所述的装置,其特征在于,所述至少两个VF是在编号上连续的VF,所述VF范围描述信息包括VF起始标识和VF数目,所述VF起始标识是所述至少两个VF对应的至少两个编号中最小的编号,所述VF数目是所述至少两个VF的个数;
所述确定模块,具体用于:
当所述目标VF的标识大于或等于所述VF起始标识,且小于所述VF起始标识与所述VF数目之间的和时,确定所述目标VF的标识与所述VF范围描述信息匹配成功。
11.如权利要求9所述的装置,其特征在于,所述VF范围描述信息包括所述至少两个VF中每个VF的标识;
所述确定模块,具体用于:
当所述目标VF的标识为所述VF范围描述信息中的标识时,确定所述目标VF的标识与所述VF范围描述信息匹配成功。
12.根据权利要求9所述装置,其特征在于,所述第一地址的参数信息还包括区域标识,所述区域标识用于指示所述第一地址归属的区域,所述地址映射表还包括区域描述信息,所述区域描述信息用于描述至少两个区域中的地址,所述至少两个区域与所述至少两个VF一一对应;
所述转换模块还用于:
当确定所述区域标识与所述区域描述信息匹配成功时,执行根据所述地址映射表将所述第一地址转换为第二地址的操作。
13.如权利要求12所述的装置,其特征在于,所述至少两个区域的大小相同,且每个区域的起始地址相同,所述区域描述信息包括区域大小、第一起始地址、物理功能PF标识和BAR地址区间标识,所述区域大小是指所述至少两个区域中任一区域的大小,所述第一起始地址是指所述至少两个区域中任一区域的起始地址,所述区域标识包括目标PF的标识和目标BAR地址区间的标识,所述目标PF是所述目标VF所属的PF,所述目标BAR地址区间是所述第一地址所属的BAR地址区间;
所述确定模块,具体用于:
当所述目标PF的标识与所述区域描述信息中的PF标识相同、所述目标BAR地址区间的标识与所述区域描述信息中的BAR地址区间标识相同、所述第一地址大于或等于所述第一起始地址,且小于或等于所述第一起始地址与所述区域大小之间的和时,确定所述区域标识与所述区域描述信息匹配成功。
14.如权利要求9至13任一所述的装置,其特征在于,所述地址映射表还包括第二起始地址,所述第二起始地址是指所述第一ATU进行地址转换时所述SoC侧的寄存器的起始地址;
所述转换模块包括:
确定单元,用于根据所述地址映射表、所述第一地址的参数信息和所述第一地址,确定所述第二地址相对于所述第二起始地址之间的地址差值;
相加单元,用于将确定得到的地址差值和所述第二起始地址相加,得到所述第二地址。
15.如权利要求14所述的装置,其特征在于,所述确定单元,具体用于:
根据所述地址映射表、所述第一地址的参数信息和所述第一地址通过预设公式确定所述地址差值,所述预设公式为:△=(IA-BAR_OFFSET)+(VF_ID-VF_START)*SIZE;
其中,△为所述地址差值,IA为所述第一地址、BAR_OFFSET为所述地址映射表的区域描述信息中的第一起始地址、VF_ID为所述目标VF的标识,VF_START为所述VF范围描述信息中的VF起始标识。
16.如权利要求9至15任一所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收并存储所述地址映射表,所述地址映射表是所述处理器在初始化时根据各个VF对应的BAR地址范围中包括的区域、以及各个VF对应的BAR地址范围中包括的区域在所述SoC上的映射地址确定的。
17.一种地址转换的系统,其特征在于,所述系统包括处理器和片上系统SoC,所述SoC与处理器通过扩展外围组件互连高速PCIe总线相连,所述SoC中包括第一地址转换单元ATU,所述系统运行时,所述第一ATU用于执行所述权利要求1至8任一所述的方法的操作步骤。
18.一种片上系统SoC,其特征在于,所述SoC与处理器通过扩展外围组件互连高速PCIe总线相连,所述SoC中包括第一地址转换单元ATU,所述第一ATU用于执行所述权利要求1至8任一所述的方法的操作步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810550762.7A CN108959127B (zh) | 2018-05-31 | 2018-05-31 | 地址转换方法、装置及系统 |
PCT/CN2018/118920 WO2019227883A1 (zh) | 2018-05-31 | 2018-12-03 | 地址转换方法、装置及系统 |
US16/992,301 US11341061B2 (en) | 2018-05-31 | 2020-08-13 | Address translation method, apparatus, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810550762.7A CN108959127B (zh) | 2018-05-31 | 2018-05-31 | 地址转换方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108959127A true CN108959127A (zh) | 2018-12-07 |
CN108959127B CN108959127B (zh) | 2021-02-09 |
Family
ID=64492747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810550762.7A Active CN108959127B (zh) | 2018-05-31 | 2018-05-31 | 地址转换方法、装置及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11341061B2 (zh) |
CN (1) | CN108959127B (zh) |
WO (1) | WO2019227883A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948291A (zh) * | 2019-12-11 | 2021-06-11 | 中科寒武纪科技股份有限公司 | 数据传输方法、电子设备和可读存储介质 |
WO2021115183A1 (zh) * | 2019-12-12 | 2021-06-17 | 中兴通讯股份有限公司 | 地址管理方法、服务器和计算机可读存储介质 |
CN114610667A (zh) * | 2022-05-10 | 2022-06-10 | 沐曦集成电路(上海)有限公司 | 复用数据总线装置和芯片 |
CN115599307A (zh) * | 2022-11-16 | 2023-01-13 | 南京芯驰半导体科技有限公司(Cn) | 数据存取方法、装置、电子设备、存储介质 |
CN115827546A (zh) * | 2023-02-15 | 2023-03-21 | 北京象帝先计算技术有限公司 | PCIe设备、电子组件、电子设备及地址映射方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11656775B2 (en) | 2018-08-07 | 2023-05-23 | Marvell Asia Pte, Ltd. | Virtualizing isolation areas of solid-state storage media |
US11372580B2 (en) * | 2018-08-07 | 2022-06-28 | Marvell Asia Pte, Ltd. | Enabling virtual functions on storage media |
US11010314B2 (en) | 2018-10-30 | 2021-05-18 | Marvell Asia Pte. Ltd. | Artificial intelligence-enabled management of storage media access |
US11481118B2 (en) | 2019-01-11 | 2022-10-25 | Marvell Asia Pte, Ltd. | Storage media programming with adaptive write buffer release |
CN114417761B (zh) * | 2022-03-30 | 2022-07-22 | 新华三半导体技术有限公司 | 一种芯片验证方法、装置、系统、控制服务器及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080046679A1 (en) * | 2006-08-15 | 2008-02-21 | Bennett Steven M | Synchronizing a translation lookaside buffer to an extended paging table |
CN104285218A (zh) * | 2013-12-31 | 2015-01-14 | 华为技术有限公司 | 一种扩展PCIe总线域的方法和装置 |
CN104298535A (zh) * | 2014-05-02 | 2015-01-21 | 威盛电子股份有限公司 | 延伸只读存储器管理系统、方法及其管理主机 |
CN105373486A (zh) * | 2014-08-13 | 2016-03-02 | 波音公司 | 计算系统中动态存储器地址的重新映射 |
CN107894913A (zh) * | 2016-09-30 | 2018-04-10 | 华为技术有限公司 | 一种计算机系统和存储访问装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8473947B2 (en) * | 2010-01-18 | 2013-06-25 | Vmware, Inc. | Method for configuring a physical adapter with virtual function (VF) and physical function (PF) for controlling address translation between virtual disks and physical storage regions |
US8239655B2 (en) * | 2010-01-18 | 2012-08-07 | Vmware, Inc. | Virtual target addressing during direct data access via VF of IO storage adapter |
US9195552B2 (en) * | 2014-02-05 | 2015-11-24 | Futurewei Technologies, Inc. | Per-function downstream port containment |
CN103823638B (zh) * | 2014-02-08 | 2017-01-18 | 华为技术有限公司 | 一种虚拟设备访问方法及装置 |
US10114675B2 (en) * | 2015-03-31 | 2018-10-30 | Toshiba Memory Corporation | Apparatus and method of managing shared resources in achieving IO virtualization in a storage device |
KR102371916B1 (ko) * | 2015-07-22 | 2022-03-07 | 삼성전자주식회사 | 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법 |
-
2018
- 2018-05-31 CN CN201810550762.7A patent/CN108959127B/zh active Active
- 2018-12-03 WO PCT/CN2018/118920 patent/WO2019227883A1/zh active Application Filing
-
2020
- 2020-08-13 US US16/992,301 patent/US11341061B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080046679A1 (en) * | 2006-08-15 | 2008-02-21 | Bennett Steven M | Synchronizing a translation lookaside buffer to an extended paging table |
CN104285218A (zh) * | 2013-12-31 | 2015-01-14 | 华为技术有限公司 | 一种扩展PCIe总线域的方法和装置 |
CN104298535A (zh) * | 2014-05-02 | 2015-01-21 | 威盛电子股份有限公司 | 延伸只读存储器管理系统、方法及其管理主机 |
CN105373486A (zh) * | 2014-08-13 | 2016-03-02 | 波音公司 | 计算系统中动态存储器地址的重新映射 |
CN107894913A (zh) * | 2016-09-30 | 2018-04-10 | 华为技术有限公司 | 一种计算机系统和存储访问装置 |
Non-Patent Citations (1)
Title |
---|
程汉强: "多核架构下硬件辅助I_O虚拟化研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948291A (zh) * | 2019-12-11 | 2021-06-11 | 中科寒武纪科技股份有限公司 | 数据传输方法、电子设备和可读存储介质 |
WO2021115183A1 (zh) * | 2019-12-12 | 2021-06-17 | 中兴通讯股份有限公司 | 地址管理方法、服务器和计算机可读存储介质 |
CN114610667A (zh) * | 2022-05-10 | 2022-06-10 | 沐曦集成电路(上海)有限公司 | 复用数据总线装置和芯片 |
CN115599307A (zh) * | 2022-11-16 | 2023-01-13 | 南京芯驰半导体科技有限公司(Cn) | 数据存取方法、装置、电子设备、存储介质 |
CN115827546A (zh) * | 2023-02-15 | 2023-03-21 | 北京象帝先计算技术有限公司 | PCIe设备、电子组件、电子设备及地址映射方法 |
CN115827546B (zh) * | 2023-02-15 | 2023-04-18 | 北京象帝先计算技术有限公司 | PCIe设备、电子组件、电子设备及地址映射方法 |
Also Published As
Publication number | Publication date |
---|---|
US11341061B2 (en) | 2022-05-24 |
WO2019227883A1 (zh) | 2019-12-05 |
CN108959127B (zh) | 2021-02-09 |
US20200371954A1 (en) | 2020-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959127A (zh) | 地址转换方法、装置及系统 | |
US7743189B2 (en) | PCI function south-side data management | |
AU2013388031C1 (en) | Data processing system and data processing method | |
JP6475256B2 (ja) | コンピュータ、制御デバイス及びデータ処理方法 | |
US9092366B2 (en) | Splitting direct memory access windows | |
US20050144402A1 (en) | Method, system, and program for managing virtual memory | |
WO2016119468A1 (zh) | 虚拟机内存管理方法、物理主机、pcie设备及其配置方法以及迁移管理设备 | |
CN113032293A (zh) | 缓存管理器及控制部件 | |
WO2015180598A1 (zh) | 对存储设备的访问信息处理方法和装置、系统 | |
CN109977037A (zh) | 一种dma数据传输方法及系统 | |
JP6974510B2 (ja) | データを処理するための方法、装置、デバイス及び媒体 | |
WO2024051122A1 (zh) | 一种PCIe中断处理方法、装置、设备及非易失性可读存储介质 | |
US9104601B2 (en) | Merging direct memory access windows | |
EP4350507A1 (en) | Data processing system, method and apparatus | |
US11467766B2 (en) | Information processing method, apparatus, device, and system | |
CN108471384B (zh) | 用于端到端通信的报文转发的方法和装置 | |
CN116563089A (zh) | 一种图形处理器的内存管理方法、装置、设备及存储介质 | |
WO2021249030A1 (zh) | 随机数序列生成方法和随机数引擎 | |
US10936219B2 (en) | Controller-based inter-device notational data movement system | |
CN113031849A (zh) | 直接内存存取单元及控制部件 | |
CN104714911A (zh) | 至少部分地提供数据的至少一部分可供处理的至少一个指示 | |
CN118467453B (zh) | 一种数据传输方法、装置、设备、介质及计算机程序产品 | |
WO2023241655A1 (zh) | 数据处理方法、装置、电子设备以及计算机可读存储介质 | |
CN117009258A (zh) | 一种文件系统磁盘的访问方法、装置及设备 | |
CN115827212A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |