CN116679986A - 寄存器的访问方法、装置、服务器、***及存储介质 - Google Patents
寄存器的访问方法、装置、服务器、***及存储介质 Download PDFInfo
- Publication number
- CN116679986A CN116679986A CN202310963354.5A CN202310963354A CN116679986A CN 116679986 A CN116679986 A CN 116679986A CN 202310963354 A CN202310963354 A CN 202310963354A CN 116679986 A CN116679986 A CN 116679986A
- Authority
- CN
- China
- Prior art keywords
- target
- register
- instruction
- write
- read
- 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
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000013507 mapping Methods 0.000 claims abstract description 106
- 230000002093 peripheral effect Effects 0.000 claims abstract description 15
- 230000003993 interaction Effects 0.000 claims description 63
- 238000004891 communication Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种寄存器的访问方法、装置、服务器、***及存储介质,属于计算机技术领域,所述访问方法包括:接收目标指令,目标指令用于指示对目标总线设备的寄存器执行目标访问操作,目标总线设备为支持***组件互连高速串行扩展PCIe标准的总线设备;基于目标指令,对虚拟内存执行目标访问操作,虚拟内存与目标总线设备的物理内存之间具有目标映射关系,目标映射关系用于将对虚拟内存的访问映射为对目标总线设备的寄存器的访问。通过目标映射关系,能够将对虚拟内存执行的目标访问操作映射为对目标总线设备的物理内存执行的目标访问操作,能够在用户空间对PCIe设备的寄存器进行读写操作,实现高效地访问PCIe设备的寄存器。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种寄存器的访问方法、装置、服务器、***及存储介质。
背景技术
***组件互连高速串行扩展(Peripheral Component Interconnect Express,PCIe)标准是一种在计算机***中广泛采用的高速串行总线标准,主要目的是为了连接处理器和外部设备。PCIe沿用现有的PCI编程概念和通信标准,但建基于更快的串行通信***并完全兼容PCI。现在的高速***设备如网卡、显卡和独立磁盘冗余阵列(Redundant Arrayof Independent Disks,RAID)卡等都采用PCIe接口。
PCIe设备有独立的寄存器空间。寄存器反映着设备的工作能力、运行状态和中断情况,在处理器和PCIe设备通信中发挥着至关重要的作用。在驱动调试或故障定位时通过读写寄存器可以更好的了解设备的各项参数及所处状态。
相关技术中,读取PCIe设备的寄存器需要通过各厂商提供的专有工具从日志中提取,这种方式一般只能获取到部分打印在日志中的寄存器数据,对寄存器数据记录大多不完整,且各厂商、各设备的工具并不统一,增加了工具使用的复杂性,操作效率较低;另外也可以通过现场人员外接串口或调试(debug)工具的方式,读取寄存器数据,操作较为繁琐。如何实现高效地访问PCIe设备的寄存器是目前业界亟待解决的问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种寄存器的访问方法、装置、服务器、***及存储介质。
第一方面,本发明提供一种寄存器的访问方法,包括:
接收目标指令,所述目标指令用于指示对目标总线设备的寄存器执行目标访问操作,所述目标总线设备为支持***组件互连高速串行扩展PCIe标准的总线设备;
基于所述目标指令,对虚拟内存执行所述目标访问操作,所述虚拟内存与所述目标总线设备的物理内存之间具有目标映射关系,所述目标映射关系用于将对虚拟内存的访问映射为对所述目标总线设备的寄存器的访问。
可选地,根据本发明提供一种寄存器的访问方法,所述基于所述目标指令,对虚拟内存执行所述目标访问操作,包括:
判断所述目标指令是否携带有读写标志参数和所述目标总线设备的寄存器基地址,所述读写标志参数用于表示所述目标访问操作为读操作或写操作;
若确定所述目标指令携带有所述读写标志参数和所述寄存器基地址,则基于所述目标映射关系、所述寄存器基地址和所述读写标志参数,对所述虚拟内存执行读操作或写操作。
可选地,根据本发明提供一种寄存器的访问方法,在判断所述目标指令是否携带有读写标志参数和所述目标总线设备的寄存器基地址之后,还包括:
若确定所述目标指令中缺少所述读写标志参数或所述寄存器基地址,则输出第一错误提示信息,所述第一错误提示信息用于提示所述目标指令缺少参数。
可选地,根据本发明提供一种寄存器的访问方法,所述目标指令还包括:寄存器偏移量和/或寄存器读取数量,在所述读写标志参数表示所述目标访问操作为读操作的情况下,所述基于所述目标映射关系、所述寄存器基地址和所述读写标志参数,对所述虚拟内存执行读操作或写操作,包括:
基于所述寄存器偏移量和/或所述寄存器读取数量,在所述寄存器基地址的基础上确定寄存器读取范围;
基于所述目标映射关系和所述寄存器读取范围,对所述虚拟内存执行读操作。
可选地,根据本发明提供一种寄存器的访问方法,在基于所述目标映射关系和所述寄存器读取范围,对所述虚拟内存执行读操作之前,还包括:
判断所述寄存器读取范围是否超出所述目标总线设备的物理内存范围;
若确定所述寄存器读取范围超出所述目标总线设备的物理内存范围,则输出第二错误提示信息,所述第二错误提示信息用于提示读操作存在内存越界。
可选地,根据本发明提供一种寄存器的访问方法,在基于所述寄存器偏移量和/或所述寄存器读取数量,在所述寄存器基地址的基础上确定寄存器读取范围之前,还包括:
在所述目标指令携带有所述寄存器偏移量且所述寄存器偏移量的单位为字节的情况下,判断所述寄存器偏移量是否为预设字节数的整数倍,所述预设字节数是基于所述目标总线设备的寄存器的存储容量确定的;
若确定所述寄存器偏移量不是所述预设字节数的整数倍,则输出第三错误提示信息,所述第三错误提示信息用于提示读操作存在读取寄存器的部分数据的情况。
可选地,根据本发明提供一种寄存器的访问方法,在所述读写标志参数表示所述目标访问操作为写操作的情况下,所述基于所述目标映射关系、所述寄存器基地址和所述读写标志参数,对所述虚拟内存执行读操作或写操作,包括:
判断所述目标指令是否携带有目标写入数据;
若确定所述目标指令携带有所述目标写入数据,则基于所述目标映射关系、所述寄存器基地址和所述目标写入数据,对所述虚拟内存执行写操作。
可选地,根据本发明提供一种寄存器的访问方法,在判断所述目标指令是否携带有目标写入数据之后,还包括:
若确定所述目标指令缺少所述目标写入数据,则输出第四错误提示信息,所述第四错误提示信息用于提示写入操作缺少目标写入数据。
可选地,根据本发明提供一种寄存器的访问方法,所述目标写入数据为一个或多个比特位,所述目标指令还包括写入数据起始位和寄存器偏移量,所述写入数据起始位用于表示所述目标写入数据在所述目标总线设备的寄存器中的写入位置,所述基于所述目标映射关系、所述寄存器基地址和所述目标写入数据,对所述虚拟内存执行写操作,包括:
基于所述目标映射关系、所述寄存器基地址、所述寄存器偏移量和所述写入数据起始位,确定目标写入虚拟地址;
基于所述目标写入数据和目标写入虚拟地址,对所述虚拟内存执行写操作。
可选地,根据本发明提供一种寄存器的访问方法,在基于所述目标写入数据和目标写入虚拟地址,对所述虚拟内存执行写操作之后,还包括:
基于所述目标写入虚拟地址和所述目标映射关系,读取所述目标写入虚拟地址对应的目标写入寄存器的数据以及输出所述目标写入寄存器的数据。
可选地,根据本发明提供一种寄存器的访问方法,在接收目标指令之前,还包括:
接收目标查询请求,所述目标查询请求用于指示查询所述目标总线设备的寄存器基地址;
响应于所述目标查询请求,获取所述目标总线设备的配置空间信息,以及基于所述目标总线设备的配置空间信息,输出所述目标总线设备的寄存器基地址。
可选地,根据本发明提供一种寄存器的访问方法,在基于所述目标指令,对虚拟内存执行所述目标访问操作之前,还包括:
基于所述目标总线设备的物理内存和***的内存映射函数,创建所述目标映射关系。
可选地,根据本发明提供一种寄存器的访问方法,在接收目标指令之前,还包括:
接收用户设备发送的交互控件配置请求,所述交互控件配置请求用于请求交互控件的配置信息,所述交互控件用于通过人机交互方式生成所述目标指令;
响应于所述交互控件配置请求,发送所述交互控件的配置信息至所述用户设备,所述交互控件的配置信息包括以下配置参数中的一项或多项:
第一配置参数:所述目标总线设备的配置空间数据结构以及各个寄存器对应的取值参考信息;
第二配置参数:一个或多个参考指令和各个参考指令对应的场景信息,所述参考指令用于在对应的场景下访问寄存器;
第三配置参数:指令参数的有效性校验配置和各个指令参数之间的约束关系。
第二方面,本发明还提供一种寄存器的访问装置,包括:
指令接收模块,用于接收目标指令,所述目标指令用于指示对目标总线设备的寄存器执行目标访问操作,所述目标总线设备为支持***组件互连高速串行扩展PCIE标准的总线设备;
访问操作模块,用于基于所述目标指令,对虚拟内存执行所述目标访问操作,所述虚拟内存与所述目标总线设备的物理内存之间具有目标映射关系,所述目标映射关系用于将对虚拟内存的访问映射为对所述目标总线设备的寄存器的访问。
第三方面,本发明还提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述寄存器的访问方法。
第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述寄存器的访问方法。
第五方面,本发明还提供一种寄存器的访问***,包括:用户设备和服务器,所述用户设备和所述服务器通信连接;
所述用户设备用于发送目标指令至所述服务器;
所述服务器用于:
接收目标指令,所述目标指令用于指示对目标总线设备的寄存器执行目标访问操作,所述目标总线设备为支持***组件互连高速串行扩展PCIE标准的总线设备;
基于所述目标指令,对虚拟内存执行所述目标访问操作,所述虚拟内存与所述目标总线设备的物理内存之间具有目标映射关系,所述目标映射关系用于将对虚拟内存的访问映射为对所述目标总线设备的寄存器的访问。
可选地,根据本发明提供的一种寄存器的访问***,在发送目标指令至所述服务器之前,所述用户设备还用于:
发送交互控件配置请求至所述服务器;
接收所述服务器发送的交互控件的配置信息;
在接收目标指令之前,所述服务器还用于:
接收用户设备发送的交互控件配置请求,所述交互控件配置请求用于请求交互控件的配置信息,所述交互控件用于通过人机交互方式生成所述目标指令;
响应于所述交互控件配置请求,发送所述交互控件的配置信息至所述用户设备,所述交互控件的配置信息包括以下配置参数中的一项或多项:
第一配置参数:所述目标总线设备的配置空间数据结构以及各个寄存器对应的取值参考信息;
第二配置参数:一个或多个参考指令和各个参考指令对应的场景信息,所述参考指令用于在对应的场景下访问寄存器;
第三配置参数:指令参数的有效性校验配置和各个指令参数之间的约束关系。
可选地,根据本发明提供的一种寄存器的访问***,在发送目标指令至所述服务器之前,所述用户设备还用于:
在所述交互控件的配置信息包括所述第一配置参数的情况下,基于所述配置空间数据结构和各个寄存器对应的取值参考信息,通过结构化方式显示所述目标总线设备的各个寄存器对应的文本框;
其中,所述文本框用于显示寄存器值以及寄存器值对应的参考信息。
可选地,根据本发明提供的一种寄存器的访问***,在发送目标指令至所述服务器之前,所述用户设备还用于:
在所述交互控件的配置信息包括所述第二配置参数的情况下,显示各个参考指令对应的场景信息;
接收第一输入,所述第一输入用于确定一个参考指令作为所述目标指令;
响应于所述第一输入,确定所述目标指令。
可选地,根据本发明提供的一种寄存器的访问***,在发送目标指令至所述服务器之前,所述用户设备还用于:
接收第二输入,所述第二输入用于确定所述目标指令的一个或多个目标指令参数;
在所述交互控件的配置信息包括所述第三配置参数的情况下,基于指令参数的有效性校验配置和各个指令参数之间的约束关系,对所述目标指令的一个或多个目标指令参数进行校验,确定校验结果。
本发明提供的寄存器的访问方法、装置、服务器、***及存储介质,通过在虚拟内存与目标总线设备的物理内存之间构建目标映射关系,该目标映射关系能够用于将对虚拟内存的访问映射为对目标总线设备的寄存器的访问,在接收到目标指令的情况下,可以基于目标指令对虚拟内存执行目标访问操作,进而通过目标映射关系,能够将对虚拟内存执行的目标访问操作映射为对目标总线设备的物理内存执行的目标访问操作,能够在用户空间对PCIe设备的寄存器进行读写操作,实现高效地访问PCIe设备的寄存器。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的寄存器的访问方法的流程示意图之一;
图2是本发明提供的寄存器的访问方法的流程示意图之二;
图3是本发明提供的读指令的数据结构示意图;
图4是本发明提供的寄存器的访问方法的流程示意图之三;
图5是本发明提供的写指令的数据结构示意图;
图6是本发明提供的寄存器的访问装置的结构示意图;
图7是本发明提供的服务器的实体结构示意图;
图8是本发明提供的寄存器的访问***的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明提供的寄存器的访问方法的流程示意图之一,如图1所示,所述寄存器的访问方法的执行主体可以是电子设备,例如服务器等。该方法包括:
步骤101,接收目标指令,所述目标指令用于指示对目标总线设备的寄存器执行目标访问操作,所述目标总线设备为支持***组件互连高速串行扩展PCIe标准的总线设备。
具体地,为了实现高效地访问PCIe设备的寄存器,可以接收目标指令,可以通过本地的输入接口接收目标指令,也可以通过网络接口接收目标指令,该目标指令可以指示对目标PCIe设备的寄存器执行目标访问操作,进而可以基于目标指令对目标PCIe设备的寄存器执行相应的访问操作。
步骤102,基于所述目标指令,对虚拟内存执行所述目标访问操作,所述虚拟内存与所述目标总线设备的物理内存之间具有目标映射关系,所述目标映射关系用于将对虚拟内存的访问映射为对所述目标总线设备的寄存器的访问。
具体地,在接收到目标指令之后,可以基于目标指令对虚拟内存执行目标访问操作,进而通过目标映射关系,能够将对虚拟内存执行的目标访问操作映射为对目标总线设备的物理内存执行的目标访问操作,能够在用户空间对PCIe设备的寄存器进行读写操作,实现高效地访问PCIe设备的寄存器。
可以理解的是,在Linux操作***下,用户空间不能直接使用物理地址而是使用通过内存管理单元(Memory Management Unit,MMU)映射的虚拟地址。
可选地,可以通过在Linux操作***用户空间运行的应用程序来执行本发明提供的寄存器的访问方法,在用户空间基于目标指令,对虚拟内存执行目标访问操作,进而通过目标映射关系,能够将对虚拟内存执行的目标访问操作映射为对目标总线设备的物理内存执行的目标访问操作,能够实现在用户空间对PCIe设备的寄存器进行读写操作,具备较强的通用性。
可选地,在对虚拟内存执行目标访问操作之后,可以解除目标映射关系,以节省***资源。
本发明提供的寄存器的访问方法,通过在虚拟内存与目标总线设备的物理内存之间构建目标映射关系,该目标映射关系能够用于将对虚拟内存的访问映射为对目标总线设备的寄存器的访问,在接收到目标指令的情况下,可以基于目标指令对虚拟内存执行目标访问操作,进而通过目标映射关系,能够将对虚拟内存执行的目标访问操作映射为对目标总线设备的物理内存执行的目标访问操作,能够在用户空间对PCIe设备的寄存器进行读写操作,实现高效地访问PCIe设备的寄存器。
可选地,根据本发明提供的寄存器的访问方法,所述基于所述目标指令,对虚拟内存执行所述目标访问操作,包括:
判断所述目标指令是否携带有读写标志参数和所述目标总线设备的寄存器基地址,所述读写标志参数用于表示所述目标访问操作为读操作或写操作;
若确定所述目标指令携带有所述读写标志参数和所述寄存器基地址,则基于所述目标映射关系、所述寄存器基地址和所述读写标志参数,对所述虚拟内存执行读操作或写操作。
例如,可以用“-r”表示读寄存器,用“-w”表示写寄存器,在读写标志参数为“-r”的情况下,则表示目标指令为读操作,在读写标志参数为“-w”的情况下,则表示目标指令为写操作。
可选地,可以通过在Linux操作***用户空间运行的应用程序来执行本发明提供的寄存器的访问方法,应用程序使用是虚拟地址(无法直接使用物理地址),所以应用程序读取到寄存器基地址之后,需要基于目标映射关系把物理地址转换成虚拟地址,后续读写操作在虚拟地址上进行。
可选地,在读写标志参数表示目标访问操作为读操作的情况下,可以基于目标映射关系,将寄存器基地址转换成虚拟内存中的虚拟地址,进而对该虚拟地址执行读操作,能够读取寄存器基地址对应的数据。
可选地,在读写标志参数表示目标访问操作为写操作的情况下,可以基于目标映射关系,将寄存器基地址转换成虚拟内存中的虚拟地址,进而对该虚拟地址执行写操作,能够写入数据至寄存器基地址对应的寄存器。
可以理解的是,在相关技术中,每个厂商的每个设备都使用专有工具增加了工具使用的复杂性;日志并非专门记录寄存器数据的地方,所以对寄存器数据记录大多不完整;通过串口获取数据需要现场人员进入机房,面临机房权限管理问题且十分不方便;没有在用户空间对PCIe设备寄存器进行写数据的方法,导致无法在用户空间修改寄存器数据。
而通过本发明提供的寄存器的访问方法,能够在用户空间对PCIe设备的寄存器进行读写操作,可以获取到PCIe设备的寄存器的完整数据且无需采用PCIe设备厂商所指定的工具,能够提升处理效率。
由于本发明提供的寄存器的访问方法,能够在用户空间对PCIe设备的寄存器进行读写操作,用户能够通过远程访问的方式来对服务器上的PCIe设备的寄存器进行访问,能够避免进入服务器所在机房进行现场操作,便于管理,提升工作效率。
由于目标映射关系为虚拟内存与物理内存之间的映射关系,该目标映射关系能够用于将对虚拟内存的访问映射为对目标总线设备的寄存器的访问,因而,在接收到写指令的情况下,可以基于写指令对虚拟内存执行写操作,进而通过目标映射关系,能够将对虚拟内存执行的写操作映射为对目标总线设备的物理内存执行的写操作,能够高效地修改PCIe设备的寄存器数据。
可选地,根据本发明提供的寄存器的访问方法,在判断所述目标指令是否携带有读写标志参数和所述目标总线设备的寄存器基地址之后,还包括:
若确定所述目标指令中缺少所述读写标志参数或所述寄存器基地址,则输出第一错误提示信息,所述第一错误提示信息用于提示所述目标指令缺少参数。
具体地,如果确定目标指令中缺少所述读写标志参数或所述寄存器基地址,***将会输出第一个错误提示信息。该错误提示信息的作用是提醒用户目标指令缺少必要的参数,以便完成目标访问操作。这意味着在执行目标访问操作之前,需要提供正确的读写标志参数和寄存器基地址。如果这些参数缺失,***将无法准确执行目标访问操作。因此,***会及时发出错误提示,以帮助用户识别并解决问题。
可选地,可以分析读操作场景下,目标指令中指令参数数量的最小值,若目标指令实际携带的指令参数的数量小于该最小值,则可以确定目标指令缺少参数。例如,如果在读操作场景下,目标指令中指令参数数量的最小值为3,那么可以判断目标指令实际携带的指令参数的数量是否小于3,若小于3,则可以确定目标指令缺少参数。
可选地,可以分析写操作情况下,目标指令中指令参数数量的最小值,若目标指令实际携带的指令参数的数量小于该最小值,则可以确定目标指令缺少参数。例如,如果在写操作场景下,目标指令中指令参数数量的最小值为6,那么可以判断目标指令实际携带的指令参数的数量是否小于6,若小于6,则可以确定目标指令缺少参数。
可选地,根据本发明提供的寄存器的访问方法,所述目标指令还包括:寄存器偏移量和/或寄存器读取数量,在所述读写标志参数表示所述目标访问操作为读操作的情况下,所述基于所述目标映射关系、所述寄存器基地址和所述读写标志参数,对所述虚拟内存执行读操作或写操作,包括:
基于所述寄存器偏移量和/或所述寄存器读取数量,在所述寄存器基地址的基础上确定寄存器读取范围;
基于所述目标映射关系和所述寄存器读取范围,对所述虚拟内存执行读操作。
图2是本发明提供的寄存器的访问方法的流程示意图之二,如图2所示,所述寄存器的访问方法包括步骤201至步骤204。
步骤201,接收目标指令。
步骤202,判断目标指令是否携带有读写标志参数和目标总线设备的寄存器基地址。
步骤203,若确定目标指令携带有读写标志参数和寄存器基地址,则在读写标志参数表示目标访问操作为读操作,且目标指令携带有寄存器偏移量和/或寄存器读取数量的情况下,基于寄存器偏移量和/或寄存器读取数量,在寄存器基地址的基础上确定寄存器读取范围;
步骤204,基于目标映射关系和寄存器读取范围,对虚拟内存执行读操作。
可选地,图3是本发明提供的读指令的数据结构示意图,如图3所示,读指令所携带的指令参数可以包括:读写标志参数、寄存器基地址、寄存器偏移量和寄存器读取数量。
可选地,在读写标志参数表示目标访问操作为读操作的情况下,可以基于目标映射关系,将寄存器读取范围转换成虚拟内存中的虚拟地址范围,进而可以基于虚拟地址范围对虚拟内存执行读操作,能够读取寄存器读取范围对应的数据。
在目标指令包括寄存器偏移量但不包括寄存器读取数量的情况下,可以基于寄存器偏移量,在寄存器基地址的基础上进行相应偏移,以确定待读取的寄存器地址(寄存器读取范围仅包括一个寄存器地址,也即待读取的寄存器地址),进而基于目标映射关系和待读取的寄存器地址,可以将待读取的寄存器地址转换为虚拟内存中的虚拟地址,进而可以对该虚拟地址执行读操作。
在目标指令包括寄存器读取数量但不包括寄存器偏移量的情况下,可以基于寄存器读取数量,并将寄存器基地址作为起始地址,确定寄存器读取范围,可以基于目标映射关系,将寄存器读取范围转换成虚拟内存中的虚拟地址范围,进而可以基于虚拟地址范围对虚拟内存执行读操作,能够读取寄存器读取范围对应的数据。
在目标指令包括寄存器偏移量和寄存器读取数量的情况下,可以基于寄存器偏移量,在寄存器基地址的基础上进行相应偏移,确定寄存器起始地址,进而基于寄存器起始地址和寄存器读取数量,确定寄存器读取范围。
因此,在目标指令携带有寄存器偏移量和/或寄存器读取数量的情况下,可以在寄存器基地址的基础上确定寄存器读取范围,能够基于目标映射关系和寄存器读取范围,对虚拟内存执行读操作,实现更加灵活地读取寄存器数据。
可选地,根据本发明提供的寄存器的访问方法,在基于所述目标映射关系和所述寄存器读取范围,对所述虚拟内存执行读操作之前,还包括:
判断所述寄存器读取范围是否超出所述目标总线设备的物理内存范围;
若确定所述寄存器读取范围超出所述目标总线设备的物理内存范围,则输出第二错误提示信息,所述第二错误提示信息用于提示读操作存在内存越界。
具体地,在判断寄存器读取范围是否超出目标总线设备的物理内存范围时,如果确定寄存器读取范围超出目标总线设备的物理内存范围,***将会输出第二个错误提示信息。该错误提示信息用于提醒用户存在读操作的内存越界问题。这意味着所请求读取的寄存器范围超出目标总线设备所能访问的物理内存的范围。当发生这种情况时,***会及时发出错误提示信息,以帮助用户发现并解决内存越界问题。
可选地,根据本发明提供的寄存器的访问方法,在基于所述寄存器偏移量和/或所述寄存器读取数量,在所述寄存器基地址的基础上确定寄存器读取范围之前,还包括:
在所述目标指令携带有所述寄存器偏移量且所述寄存器偏移量的单位为字节的情况下,判断所述寄存器偏移量是否为预设字节数的整数倍,所述预设字节数是基于所述目标总线设备的寄存器的存储容量确定的;
若确定所述寄存器偏移量不是所述预设字节数的整数倍,则输出第三错误提示信息,所述第三错误提示信息用于提示读操作存在读取寄存器的部分数据的情况。
具体地,当目标指令携带有寄存器偏移量且偏移量的单位为字节时,需要判断该偏移量是否是预设字节数的整数倍。预设字节数是根据目标总线设备的寄存器存储容量确定的。如果确定寄存器偏移量不是预设字节数的整数倍,***将会输出第三错误提示信息。该错误提示信息用于提醒用户读操作可能涉及到寄存器部分数据的情况。这意味着读取操作可能无法完整地获取寄存器中的所有数据,而只能获取部分数据。当发生这种情况时,***会及时发出错误提示信息,以帮助用户发现并解决可能存在的数据截断问题。
可选地,根据本发明提供的寄存器的访问方法,在所述读写标志参数表示所述目标访问操作为写操作的情况下,所述基于所述目标映射关系、所述寄存器基地址和所述读写标志参数,对所述虚拟内存执行读操作或写操作,包括:
判断所述目标指令是否携带有目标写入数据;
若确定所述目标指令携带有所述目标写入数据,则基于所述目标映射关系、所述寄存器基地址和所述目标写入数据,对所述虚拟内存执行写操作。
图4是本发明提供的寄存器的访问方法的流程示意图之三,如图4所示,所述寄存器的访问方法包括步骤401至步骤404。
步骤401,接收目标指令。
步骤402,判断目标指令是否携带有读写标志参数和目标总线设备的寄存器基地址。
步骤403,若确定目标指令携带有读写标志参数和寄存器基地址,则在读写标志参数表示目标访问操作为写操作的情况下,判断目标指令是否携带有目标写入数据;
步骤404,若确定目标指令携带有目标写入数据,则基于目标映射关系、寄存器基地址和目标写入数据,对虚拟内存执行写操作。
具体地,在读写标志参数表示目标访问操作为写操作的情况下,可以基于目标映射关系,将寄存器基地址转换成虚拟内存中的虚拟地址,进而可以将目标写入数据写入至该虚拟地址,能够写入数据至寄存器基地址对应的寄存器。
可选地,根据本发明提供的寄存器的访问方法,在判断所述目标指令是否携带有目标写入数据之后,还包括:
若确定所述目标指令缺少所述目标写入数据,则输出第四错误提示信息,所述第四错误提示信息用于提示写入操作缺少目标写入数据。
具体地,如果确定目标指令缺少目标写入数据,***将会输出第四个错误提示信息。该错误提示信息用于提醒用户写入操作缺少目标写入数据。这意味着在执行写入操作时,目标指令未提供需要写入的数据。当发生这种情况时,***会及时发出错误提示信息,以帮助用户发现到并解决缺少目标写入数据的问题。
可选地,根据本发明提供的寄存器的访问方法,所述目标写入数据为一个或多个比特位,所述目标指令还包括写入数据起始位和寄存器偏移量,所述写入数据起始位用于表示所述目标写入数据在所述目标总线设备的寄存器中的写入位置,所述基于所述目标映射关系、所述寄存器基地址和所述目标写入数据,对所述虚拟内存执行写操作,包括:
基于所述目标映射关系、所述寄存器基地址、所述寄存器偏移量和所述写入数据起始位,确定目标写入虚拟地址;
基于所述目标写入数据和目标写入虚拟地址,对所述虚拟内存执行写操作。
图5是本发明提供的写指令的数据结构示意图,如图5所示,读指令所携带的指令参数可以包括:读写标志参数、寄存器基地址、目标写入数据、写入数据起始位和寄存器偏移量。
具体地,在目标指令包括写入数据起始位和寄存器偏移量的情况下,可以基于寄存器偏移量,在寄存器基地址的基础上进行相应的偏移,以确定待写入的寄存器地址,而写入数据起始位可以表示以待写入的寄存器中的那一个比特位作为起始位,来写入目标写入数据,进而可以基于目标映射关系、待写入的寄存器地址和写入数据起始位,可以确定目标写入虚拟地址。
可选地,由于输出的数据是16进制和对应的二进制格式,且16进制数据一般是以两位数字对其的格式显示,为优化输入和显示,写寄存器可以设计成每次写一个16进制数字,即半个字节(也即目标写入数据为四个比特位),两个16进制数字为一个字节。相应地,可以用“-f”参数表示要写前半个字节,“-r”参数表示要写后半个字节,也即在写入数据起始位为“-f”的情况下,表示当前需要对目标写入虚拟地址所对应字节的前半个字节进行写入,在写入数据起始位为“-r”的情况下,表示当前需要对目标写入虚拟地址所对应字节的后半个字节进行写入。
在目标写入数据为四个比特位的情况下,目标写入数据的数值范围为0-f(16进制)。
可选地,根据本发明提供的寄存器的访问方法,在基于所述目标写入数据和目标写入虚拟地址,对所述虚拟内存执行写操作之后,还包括:
基于所述目标写入虚拟地址和所述目标映射关系,读取所述目标写入虚拟地址对应的目标写入寄存器的数据以及输出所述目标写入寄存器的数据。
具体地,在基于给定的目标写入数据和目标写入虚拟地址后,执行写操作到虚拟内存之后,还可以根据目标写入虚拟地址和目标映射关系,从虚拟内存中读取对应的数据,并将其存储到目标写入寄存器中。随后,可以输出目标写入寄存器中的数据,以便查看和使用。
可选地,根据本发明提供的寄存器的访问方法,在接收目标指令之前,还包括:
接收目标查询请求,所述目标查询请求用于指示查询所述目标总线设备的寄存器基地址;
响应于所述目标查询请求,获取所述目标总线设备的配置空间信息,以及基于所述目标总线设备的配置空间信息,输出所述目标总线设备的寄存器基地址。
具体地,当接收到目标查询请求时,该请求用于指示查询目标总线设备的寄存器基地址。作为响应,***将获取目标总线设备的配置空间信息,并基于该配置空间信息输出目标总线设备的寄存器基地址。通过接收目标查询请求并解析其中的指示信息,***能够准确地确定需要查询的目标总线设备,并获取其相关的配置空间信息。基于这些配置信息,***可以确定目标总线设备的寄存器基地址,并将其输出,以便用户获得所需的信息。
可选地,根据本发明提供的寄存器的访问方法,在基于所述目标指令,对虚拟内存执行所述目标访问操作之前,还包括:
基于所述目标总线设备的物理内存和***的内存映射函数,创建所述目标映射关系。
具体地,在创建目标映射关系时,需要基于目标总线设备的物理内存和***的内存映射函数进行操作。通过使用***提供的内存映射函数,可以将目标总线设备的物理内存映射到***的地址空间中,从而建立起二者之间的映射关系。通过创建目标映射关系,能够在用户空间对PCIe设备的寄存器进行读写操作。
可选地,在Linux操作***下,lspci是Linux***中的一个命令行工具,可以用于列出计算机上已连接的PCI设备的信息。它可以提供有关PCI总线和设备的详细信息,包括设备ID、制造商、型号、驱动程序等。例如,通过“lspci -v”查询命令,可以获取PCI设备的详细信息,包括设备的类别、子类别、供应商名称、设备ID等。例如,通过“lspci -s<设备地址>”查询指令,可以获取指定设备地址的信息。例如,“lspci -x”查询指令能以16进制格式打印PCIe设备的配置空间信息,“lspci - vvv”查询指令能打印解析配置空间后的所有信息。
通过lspci查询命令可以获取PCI设备的配置空间信息,通过对配置空间信息进行分析,能够从配置空间信息中提取寄存器基地址。
可选地,在Linux操作***下,可以调用***提供的mmap()函数,可在用户进程的虚拟内存中分配空间创建和物理内存的映射。
可选地,根据本发明提供的寄存器的访问方法,在接收目标指令之前,还包括:
接收用户设备发送的交互控件配置请求,所述交互控件配置请求用于请求交互控件的配置信息,所述交互控件用于通过人机交互方式生成所述目标指令;
响应于所述交互控件配置请求,发送所述交互控件的配置信息至所述用户设备,所述交互控件的配置信息包括以下配置参数中的一项或多项:
第一配置参数:所述目标总线设备的配置空间数据结构以及各个寄存器对应的取值参考信息;
第二配置参数:一个或多个参考指令和各个参考指令对应的场景信息,所述参考指令用于在对应的场景下访问寄存器;
第三配置参数:指令参数的有效性校验配置和各个指令参数之间的约束关系。
具体地,可以将第一配置参数携带在配置信息中发送至用户设备,相应地,用户设备可以按照配置空间数据结构进行可视化展示,并且可以针对寄存器值附带显示对应的参考信息(参考信息可以解释寄存器值的含义),便于用户高效地查阅和输入。
还可以将第二配置参数携带在配置信息中发送至用户设备,相应地,用户设备可以提供场景选择功能,以便于用户根据应用场景选择参考指令,以快速地生成目标指令。
还可以将第三配置参数携带在配置信息中发送至用户设备,相应地,用户设备可以基于指令参数的有效性校验配置和各个指令参数之间的约束关系,对用户输入的指令参数进行校验,防止指令错误。
本发明提供的寄存器的访问方法,通过在虚拟内存与目标总线设备的物理内存之间构建目标映射关系,该目标映射关系能够用于将对虚拟内存的访问映射为对目标总线设备的寄存器的访问,在接收到目标指令的情况下,可以基于目标指令对虚拟内存执行目标访问操作,进而通过目标映射关系,能够将对虚拟内存执行的目标访问操作映射为对目标总线设备的物理内存执行的目标访问操作,能够在用户空间对PCIe设备的寄存器进行读写操作,实现高效地访问PCIe设备的寄存器。
下面对本发明提供的寄存器的访问装置进行描述,下文描述的寄存器的访问装置与上文描述的寄存器的访问方法可相互对应参照。
图6是本发明提供的寄存器的访问装置的结构示意图,如图6所示,所述寄存器的访问装置包括:指令接收模块601和访问操作模块602,其中:
指令接收模块601,用于接收目标指令,所述目标指令用于指示对目标总线设备的寄存器执行目标访问操作,所述目标总线设备为支持***组件互连高速串行扩展PCIE标准的总线设备;
访问操作模块602,用于基于所述目标指令,对虚拟内存执行所述目标访问操作,所述虚拟内存与所述目标总线设备的物理内存之间具有目标映射关系,所述目标映射关系用于将对虚拟内存的访问映射为对所述目标总线设备的寄存器的访问。
图7是本发明提供的服务器的实体结构示意图,如图7所示,该服务器可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行寄存器的访问方法,该方法包括:
接收目标指令,所述目标指令用于指示对目标总线设备的寄存器执行目标访问操作,所述目标总线设备为支持***组件互连高速串行扩展PCIe标准的总线设备;
基于所述目标指令,对虚拟内存执行所述目标访问操作,所述虚拟内存与所述目标总线设备的物理内存之间具有目标映射关系,所述目标映射关系用于将对虚拟内存的访问映射为对所述目标总线设备的寄存器的访问。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
图8是本发明提供的寄存器的访问***的结构示意图,如图8所示,所述寄存器的访问***包括:用户设备801和服务器802,所述用户设备和所述服务器通信连接;
所述用户设备用于发送目标指令至所述服务器;
所述服务器用于:
接收目标指令,所述目标指令用于指示对目标总线设备的寄存器执行目标访问操作,所述目标总线设备为支持***组件互连高速串行扩展PCIE标准的总线设备;
基于所述目标指令,对虚拟内存执行所述目标访问操作,所述虚拟内存与所述目标总线设备的物理内存之间具有目标映射关系,所述目标映射关系用于将对虚拟内存的访问映射为对所述目标总线设备的寄存器的访问。
可选地,根据本发明提供的寄存器的访问***,在发送目标指令至所述服务器之前,所述用户设备还用于:
发送交互控件配置请求至所述服务器;
接收所述服务器发送的交互控件的配置信息;
在接收目标指令之前,所述服务器还用于:
接收用户设备发送的交互控件配置请求,所述交互控件配置请求用于请求交互控件的配置信息,所述交互控件用于通过人机交互方式生成所述目标指令;
响应于所述交互控件配置请求,发送所述交互控件的配置信息至所述用户设备,所述交互控件的配置信息包括以下配置参数中的一项或多项:
第一配置参数:所述目标总线设备的配置空间数据结构以及各个寄存器对应的取值参考信息;
第二配置参数:一个或多个参考指令和各个参考指令对应的场景信息,所述参考指令用于在对应的场景下访问寄存器;
第三配置参数:指令参数的有效性校验配置和各个指令参数之间的约束关系。
可选地,根据本发明提供的寄存器的访问***,在发送目标指令至所述服务器之前,所述用户设备还用于:
在所述交互控件的配置信息包括所述第一配置参数的情况下,基于所述配置空间数据结构和各个寄存器对应的取值参考信息,通过结构化方式显示所述目标总线设备的各个寄存器对应的文本框;
其中,所述文本框用于显示寄存器值以及寄存器值对应的参考信息。
具体地,用户设备上的显示界面可以包括显示区和输入区,这两个区都按照结构化方式显示各个寄存器对应的文本框,区别在于,显示区中的文本框显示读取到的寄存器值,输入区中的文本框显示待写入寄存器的值。
用户可以在显示区通过选中一个或多个文本框,来指示对选中的文本框对应的寄存器进行读取,并生成读取指令作为目标指令,进而发送至服务器,接收到服务器反馈后,处于选中状态的文本框显示所读取到的寄存器值。
用户可以在输入区通过选中一个或多个文本框,来指示对选中的文本框对应的寄存器进行写入,并可以在所选中的文本框中,基于参考信息输入寄存器值,并联动显示该值对应的参考信息,对所选中的文本框输入完之后,生成写指令作为目标指令。
可选地,根据本发明提供的寄存器的访问***,在发送目标指令至所述服务器之前,所述用户设备还用于:
在所述交互控件的配置信息包括所述第二配置参数的情况下,显示各个参考指令对应的场景信息;
接收第一输入,所述第一输入用于确定一个参考指令作为所述目标指令;
响应于所述第一输入,确定所述目标指令。
可以理解的是,用户设备可以提供场景选择功能,以便于用户根据应用场景选择参考指令,以快速地生成目标指令。
可选地,根据本发明提供的寄存器的访问***,在发送目标指令至所述服务器之前,所述用户设备还用于:
接收第二输入,所述第二输入用于确定所述目标指令的一个或多个目标指令参数;
在所述交互控件的配置信息包括所述第三配置参数的情况下,基于指令参数的有效性校验配置和各个指令参数之间的约束关系,对所述目标指令的一个或多个目标指令参数进行校验,确定校验结果。
可以理解的是,用户设备可以基于指令参数的有效性校验配置和各个指令参数之间的约束关系,对用户输入的指令参数进行校验,防止指令错误。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的寄存器的访问方法,该方法包括:
接收目标指令,所述目标指令用于指示对目标总线设备的寄存器执行目标访问操作,所述目标总线设备为支持***组件互连高速串行扩展PCIe标准的总线设备;
基于所述目标指令,对虚拟内存执行所述目标访问操作,所述虚拟内存与所述目标总线设备的物理内存之间具有目标映射关系,所述目标映射关系用于将对虚拟内存的访问映射为对所述目标总线设备的寄存器的访问。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (21)
1.一种寄存器的访问方法,其特征在于,包括:
接收目标指令,所述目标指令用于指示对目标总线设备的寄存器执行目标访问操作,所述目标总线设备为支持***组件互连高速串行扩展PCIe标准的总线设备;
基于所述目标指令,对虚拟内存执行所述目标访问操作,所述虚拟内存与所述目标总线设备的物理内存之间具有目标映射关系,所述目标映射关系用于将对虚拟内存的访问映射为对所述目标总线设备的寄存器的访问。
2.根据权利要求1所述寄存器的访问方法,其特征在于,所述基于所述目标指令,对虚拟内存执行所述目标访问操作,包括:
判断所述目标指令是否携带有读写标志参数和所述目标总线设备的寄存器基地址,所述读写标志参数用于表示所述目标访问操作为读操作或写操作;
若确定所述目标指令携带有所述读写标志参数和所述寄存器基地址,则基于所述目标映射关系、所述寄存器基地址和所述读写标志参数,对所述虚拟内存执行读操作或写操作。
3.根据权利要求2所述寄存器的访问方法,其特征在于,在判断所述目标指令是否携带有读写标志参数和所述目标总线设备的寄存器基地址之后,还包括:
若确定所述目标指令中缺少所述读写标志参数或所述寄存器基地址,则输出第一错误提示信息,所述第一错误提示信息用于提示所述目标指令缺少参数。
4.根据权利要求2所述寄存器的访问方法,其特征在于,所述目标指令还包括:寄存器偏移量和/或寄存器读取数量,在所述读写标志参数表示所述目标访问操作为读操作的情况下,所述基于所述目标映射关系、所述寄存器基地址和所述读写标志参数,对所述虚拟内存执行读操作或写操作,包括:
基于所述寄存器偏移量和/或所述寄存器读取数量,在所述寄存器基地址的基础上确定寄存器读取范围;
基于所述目标映射关系和所述寄存器读取范围,对所述虚拟内存执行读操作。
5.根据权利要求4所述寄存器的访问方法,其特征在于,在基于所述目标映射关系和所述寄存器读取范围,对所述虚拟内存执行读操作之前,还包括:
判断所述寄存器读取范围是否超出所述目标总线设备的物理内存范围;
若确定所述寄存器读取范围超出所述目标总线设备的物理内存范围,则输出第二错误提示信息,所述第二错误提示信息用于提示读操作存在内存越界。
6.根据权利要求4所述寄存器的访问方法,其特征在于,在基于所述寄存器偏移量和/或所述寄存器读取数量,在所述寄存器基地址的基础上确定寄存器读取范围之前,还包括:
在所述目标指令携带有所述寄存器偏移量且所述寄存器偏移量的单位为字节的情况下,判断所述寄存器偏移量是否为预设字节数的整数倍,所述预设字节数是基于所述目标总线设备的寄存器的存储容量确定的;
若确定所述寄存器偏移量不是所述预设字节数的整数倍,则输出第三错误提示信息,所述第三错误提示信息用于提示读操作存在读取寄存器的部分数据的情况。
7.根据权利要求2所述寄存器的访问方法,其特征在于,在所述读写标志参数表示所述目标访问操作为写操作的情况下,所述基于所述目标映射关系、所述寄存器基地址和所述读写标志参数,对所述虚拟内存执行读操作或写操作,包括:
判断所述目标指令是否携带有目标写入数据;
若确定所述目标指令携带有所述目标写入数据,则基于所述目标映射关系、所述寄存器基地址和所述目标写入数据,对所述虚拟内存执行写操作。
8.根据权利要求7所述寄存器的访问方法,其特征在于,在判断所述目标指令是否携带有目标写入数据之后,还包括:
若确定所述目标指令缺少所述目标写入数据,则输出第四错误提示信息,所述第四错误提示信息用于提示写入操作缺少目标写入数据。
9.根据权利要求7所述寄存器的访问方法,其特征在于,所述目标写入数据为一个或多个比特位,所述目标指令还包括写入数据起始位和寄存器偏移量,所述写入数据起始位用于表示所述目标写入数据在所述目标总线设备的寄存器中的写入位置,所述基于所述目标映射关系、所述寄存器基地址和所述目标写入数据,对所述虚拟内存执行写操作,包括:
基于所述目标映射关系、所述寄存器基地址、所述寄存器偏移量和所述写入数据起始位,确定目标写入虚拟地址;
基于所述目标写入数据和目标写入虚拟地址,对所述虚拟内存执行写操作。
10.根据权利要求9所述寄存器的访问方法,其特征在于,在基于所述目标写入数据和目标写入虚拟地址,对所述虚拟内存执行写操作之后,还包括:
基于所述目标写入虚拟地址和所述目标映射关系,读取所述目标写入虚拟地址对应的目标写入寄存器的数据以及输出所述目标写入寄存器的数据。
11.根据权利要求2-10任一项所述寄存器的访问方法,其特征在于,在接收目标指令之前,还包括:
接收目标查询请求,所述目标查询请求用于指示查询所述目标总线设备的寄存器基地址;
响应于所述目标查询请求,获取所述目标总线设备的配置空间信息,以及基于所述目标总线设备的配置空间信息,输出所述目标总线设备的寄存器基地址。
12.根据权利要求1-10任一项所述寄存器的访问方法,其特征在于,在基于所述目标指令,对虚拟内存执行所述目标访问操作之前,还包括:
基于所述目标总线设备的物理内存和***的内存映射函数,创建所述目标映射关系。
13.根据权利要求1-10任一项所述寄存器的访问方法,其特征在于,在接收目标指令之前,还包括:
接收用户设备发送的交互控件配置请求,所述交互控件配置请求用于请求交互控件的配置信息,所述交互控件用于通过人机交互方式生成所述目标指令;
响应于所述交互控件配置请求,发送所述交互控件的配置信息至所述用户设备,所述交互控件的配置信息包括以下配置参数中的一项或多项:
第一配置参数:所述目标总线设备的配置空间数据结构以及各个寄存器对应的取值参考信息;
第二配置参数:一个或多个参考指令和各个参考指令对应的场景信息,所述参考指令用于在对应的场景下访问寄存器;
第三配置参数:指令参数的有效性校验配置和各个指令参数之间的约束关系。
14.一种寄存器的访问装置,其特征在于,包括:
指令接收模块,用于接收目标指令,所述目标指令用于指示对目标总线设备的寄存器执行目标访问操作,所述目标总线设备为支持***组件互连高速串行扩展PCIE标准的总线设备;
访问操作模块,用于基于所述目标指令,对虚拟内存执行所述目标访问操作,所述虚拟内存与所述目标总线设备的物理内存之间具有目标映射关系,所述目标映射关系用于将对虚拟内存的访问映射为对所述目标总线设备的寄存器的访问。
15.一种服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至13任一项所述寄存器的访问方法。
16.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至13任一项所述寄存器的访问方法。
17.一种寄存器的访问***,其特征在于,包括:用户设备和服务器,所述用户设备和所述服务器通信连接;
所述用户设备用于发送目标指令至所述服务器;
所述服务器用于:
接收目标指令,所述目标指令用于指示对目标总线设备的寄存器执行目标访问操作,所述目标总线设备为支持***组件互连高速串行扩展PCIE标准的总线设备;
基于所述目标指令,对虚拟内存执行所述目标访问操作,所述虚拟内存与所述目标总线设备的物理内存之间具有目标映射关系,所述目标映射关系用于将对虚拟内存的访问映射为对所述目标总线设备的寄存器的访问。
18.根据权利要求17所述寄存器的访问***,其特征在于,在发送目标指令至所述服务器之前,所述用户设备还用于:
发送交互控件配置请求至所述服务器;
接收所述服务器发送的交互控件的配置信息;
在接收目标指令之前,所述服务器还用于:
接收用户设备发送的交互控件配置请求,所述交互控件配置请求用于请求交互控件的配置信息,所述交互控件用于通过人机交互方式生成所述目标指令;
响应于所述交互控件配置请求,发送所述交互控件的配置信息至所述用户设备,所述交互控件的配置信息包括以下配置参数中的一项或多项:
第一配置参数:所述目标总线设备的配置空间数据结构以及各个寄存器对应的取值参考信息;
第二配置参数:一个或多个参考指令和各个参考指令对应的场景信息,所述参考指令用于在对应的场景下访问寄存器;
第三配置参数:指令参数的有效性校验配置和各个指令参数之间的约束关系。
19.根据权利要求18所述寄存器的访问***,其特征在于,在发送目标指令至所述服务器之前,所述用户设备还用于:
在所述交互控件的配置信息包括所述第一配置参数的情况下,基于所述配置空间数据结构和各个寄存器对应的取值参考信息,通过结构化方式显示所述目标总线设备的各个寄存器对应的文本框;
其中,所述文本框用于显示寄存器值以及寄存器值对应的参考信息。
20.根据权利要求18所述寄存器的访问***,其特征在于,在发送目标指令至所述服务器之前,所述用户设备还用于:
在所述交互控件的配置信息包括所述第二配置参数的情况下,显示各个参考指令对应的场景信息;
接收第一输入,所述第一输入用于确定一个参考指令作为所述目标指令;
响应于所述第一输入,确定所述目标指令。
21.根据权利要求18所述寄存器的访问***,其特征在于,在发送目标指令至所述服务器之前,所述用户设备还用于:
接收第二输入,所述第二输入用于确定所述目标指令的一个或多个目标指令参数;
在所述交互控件的配置信息包括所述第三配置参数的情况下,基于指令参数的有效性校验配置和各个指令参数之间的约束关系,对所述目标指令的一个或多个目标指令参数进行校验,确定校验结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310963354.5A CN116679986A (zh) | 2023-08-02 | 2023-08-02 | 寄存器的访问方法、装置、服务器、***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310963354.5A CN116679986A (zh) | 2023-08-02 | 2023-08-02 | 寄存器的访问方法、装置、服务器、***及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116679986A true CN116679986A (zh) | 2023-09-01 |
Family
ID=87787665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310963354.5A Pending CN116679986A (zh) | 2023-08-02 | 2023-08-02 | 寄存器的访问方法、装置、服务器、***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116679986A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116886751A (zh) * | 2023-09-04 | 2023-10-13 | 浪潮(北京)电子信息产业有限公司 | 一种异构设备的高速通信方法、装置和异构通信*** |
CN117056249A (zh) * | 2023-09-06 | 2023-11-14 | 南京金阵微电子技术有限公司 | 一种mdio到ahb的转换方法、***、设备及介质 |
CN117519955A (zh) * | 2024-01-08 | 2024-02-06 | 浪潮电子信息产业股份有限公司 | 一种加速设备的控制方法、***、装置及加速设备 |
CN117555599A (zh) * | 2024-01-10 | 2024-02-13 | 睿思芯科(成都)科技有限公司 | 加快关键数据访问速度的芯片设计方法、***及相关设备 |
CN117891763A (zh) * | 2024-01-17 | 2024-04-16 | 无锡众星微***技术有限公司 | 一种多用户驱动与PCIe设备的信息交互方法和装置 |
CN118041959A (zh) * | 2024-04-11 | 2024-05-14 | 杭州沃镭智能科技股份有限公司 | 基于Aurora协议互联的数据采集***及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100090A (zh) * | 2020-09-16 | 2020-12-18 | 浪潮(北京)电子信息产业有限公司 | 数据访问请求处理方法、装置、介质及内存映射控制器 |
CN114153779A (zh) * | 2021-10-31 | 2022-03-08 | 郑州云海信息技术有限公司 | 一种i2c通信方法、***、设备、及存储介质 |
CN115878512A (zh) * | 2022-10-14 | 2023-03-31 | 浪潮(北京)电子信息产业有限公司 | 一种内存映射方法、***、设备及存储介质 |
CN116360853A (zh) * | 2022-12-30 | 2023-06-30 | 中科驭数(北京)科技有限公司 | 寄存器映射方法、装置、设备及介质 |
-
2023
- 2023-08-02 CN CN202310963354.5A patent/CN116679986A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100090A (zh) * | 2020-09-16 | 2020-12-18 | 浪潮(北京)电子信息产业有限公司 | 数据访问请求处理方法、装置、介质及内存映射控制器 |
CN114153779A (zh) * | 2021-10-31 | 2022-03-08 | 郑州云海信息技术有限公司 | 一种i2c通信方法、***、设备、及存储介质 |
CN115878512A (zh) * | 2022-10-14 | 2023-03-31 | 浪潮(北京)电子信息产业有限公司 | 一种内存映射方法、***、设备及存储介质 |
CN116360853A (zh) * | 2022-12-30 | 2023-06-30 | 中科驭数(北京)科技有限公司 | 寄存器映射方法、装置、设备及介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116886751A (zh) * | 2023-09-04 | 2023-10-13 | 浪潮(北京)电子信息产业有限公司 | 一种异构设备的高速通信方法、装置和异构通信*** |
CN116886751B (zh) * | 2023-09-04 | 2024-01-19 | 浪潮(北京)电子信息产业有限公司 | 一种异构设备的高速通信方法、装置和异构通信*** |
CN117056249A (zh) * | 2023-09-06 | 2023-11-14 | 南京金阵微电子技术有限公司 | 一种mdio到ahb的转换方法、***、设备及介质 |
CN117056249B (zh) * | 2023-09-06 | 2024-04-02 | 南京金阵微电子技术有限公司 | 一种mdio到ahb的转换方法、***、设备及介质 |
CN117519955A (zh) * | 2024-01-08 | 2024-02-06 | 浪潮电子信息产业股份有限公司 | 一种加速设备的控制方法、***、装置及加速设备 |
CN117519955B (zh) * | 2024-01-08 | 2024-03-29 | 浪潮电子信息产业股份有限公司 | 一种加速设备的控制方法、***、装置及加速设备 |
CN117555599A (zh) * | 2024-01-10 | 2024-02-13 | 睿思芯科(成都)科技有限公司 | 加快关键数据访问速度的芯片设计方法、***及相关设备 |
CN117555599B (zh) * | 2024-01-10 | 2024-04-05 | 睿思芯科(成都)科技有限公司 | 加快关键数据访问速度的芯片设计方法、***及相关设备 |
CN117891763A (zh) * | 2024-01-17 | 2024-04-16 | 无锡众星微***技术有限公司 | 一种多用户驱动与PCIe设备的信息交互方法和装置 |
CN118041959A (zh) * | 2024-04-11 | 2024-05-14 | 杭州沃镭智能科技股份有限公司 | 基于Aurora协议互联的数据采集***及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116679986A (zh) | 寄存器的访问方法、装置、服务器、***及存储介质 | |
CN104572517A (zh) | 提供被请求数据的方法、控制器以及计算机*** | |
CN105320553A (zh) | 一种基于国产处理器平台更新网卡固件的方法及*** | |
CN109445691B (zh) | 一种提高ftl算法开发和验证效率的方法及装置 | |
CN114153779A (zh) | 一种i2c通信方法、***、设备、及存储介质 | |
CN112216340A (zh) | 硬盘测试方法、装置、存储介质及电子设备 | |
US20240086339A1 (en) | Systems, methods, and devices for accessing a device operating system over an interconnect | |
CN112417802A (zh) | 一种模拟存储芯片的方法、***、设备及存储介质 | |
CN114610557B (zh) | 设备驱动单元的测试方法及装置 | |
EP4296860A1 (en) | Method for running startup program of electronic device, and electronic device | |
CN114936135A (zh) | 一种异常检测方法、装置及可读存储介质 | |
CN107766385B (zh) | 一种转换虚拟磁盘文件格式的方法与设备 | |
US20180032351A1 (en) | Information processing method and storage device | |
CN112463633B (zh) | 一种片上存储器的地址译码校验方法、装置、设备及介质 | |
GB2531011A (en) | Initializing I/O Devices | |
CN112783683B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN114253642A (zh) | ***信息处理方法、装置、电子设备及介质 | |
US7818627B2 (en) | Systems and methods for gathering debug information | |
EP3557422A1 (en) | Method for accessing code sram, and electronic device | |
CN111124730A (zh) | 一种服务器的错误定位方法、装置及计算机存储介质 | |
CN112286468B (zh) | 一种存储器件的访问控制方法、装置及电子设备 | |
JPH1165898A (ja) | 電子計算機の保守方式 | |
TWI795950B (zh) | 硬碟監控方法、電子裝置及存儲介質 | |
CN109684031B (zh) | 一种访问虚拟机控制块的方法和装置以及cpu核 | |
JP2543640B2 (ja) | 仮想計算機システム |
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 |