CN114816528A - 一种访问寄存器的方法、装置、电子设备及介质 - Google Patents
一种访问寄存器的方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN114816528A CN114816528A CN202210469669.XA CN202210469669A CN114816528A CN 114816528 A CN114816528 A CN 114816528A CN 202210469669 A CN202210469669 A CN 202210469669A CN 114816528 A CN114816528 A CN 114816528A
- Authority
- CN
- China
- Prior art keywords
- address
- pcie
- iic
- register
- access
- 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 48
- 238000004590 computer program Methods 0.000 claims description 11
- 239000002699 waste material Substances 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 14
- 238000013461 design Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012772 sequence design Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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/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
- 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
- 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/0016—Inter-integrated circuit (I2C)
-
- 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)
Abstract
本申请公开了一种访问寄存器的方法、装置、电子设备及介质,涉及电子技术领域。包括:按照标准PCIe规范设置寄存器使CPU通过PCIe访问寄存器;根据IIC的数据位宽将PCIe各地址上的数据均划分为多个字节;获取IIC的基地址和偏移地址使BMC通过IIC的地址访问寄存器,基地址为PCIe的地址,偏移地址为字节。该方法中,由于寄存器是按照标准PCIe规范设置的,因此CPU可以通过PCIe访问寄存器;由于IIC的地址是根据PCIe地址得到,故而BMC通过IIC可以访问到CPU通过PCIe访问到的信息,因此,实现了CPU、BMC可以共同访问同一个寄存器,并且不需要增加额外的寄存器,减少了资源的浪费。
Description
技术领域
本申请涉及电子技术领域,特别是涉及一种访问寄存器的方法、装置、电子设备及介质。
背景技术
复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)/现场可编程门阵列(Field Programmable Gate Array,FPGA)是半定制的专用集成电路,具有灵活编程、快速响应、集成度高等系列优点,在前期开发验证及控制应用领域得到越来越广泛的应用。在交换机系统中,主要通过CPLD进行控制层面管理,如交换机系统上下电时序控制、双基本输入输出系统(Basic Input Output System,BIOS)切换控制、通用异步收发器(Universal Asynchronous Receiver/Transmitter,UART)切换管理控制、寄存器管理等;FPGA主要进行数据通信管理,如IIC Devices管理、PHY Devices管理、寄存器管理等。
寄存器管理是CPLD/FPGA在交换机等项目中都会面临的问题,为提高工作效率,在FPGA设计中,中央处理单元(Central Processor Unit,CPU)会通过PCIe访问管理FPGA寄存器,同时,基板管理控制器(Baseboard Management Controller,BMC)会基于通用的集成电路总线(Inter-Integrated Circuit,IIC)接口访问管理FPGA寄存器。FPGA寄存器需要同时满足CPU通过PCIe访问FPGA寄存器与BMC通过IIC访问FPGA寄存器的需求。但是,由于PCIe与IIC地址位宽与数据位宽不同,导致寄存器只能是CPU或BMC中的一个访问,这样无法满足CPU/BMC共同使用该寄存器;或者设置两套寄存器,这样需要设计额外的寄存器同步逻辑,浪费FPGA逻辑资源。
由此可见,如何使基于PCIe的CPU以及基于IIC的BMC均能访问同一个寄存器是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种访问寄存器的方法、装置、电子设备及介质,用于使CPU、BMC均能访问同一个寄存器,从而提高寄存器的性能以及提高交换机等设备的工作效率。
为解决上述技术问题,本申请提供一种兼容PCIe及IIC访问寄存器的方法,包括:
按照标准PCIe规范设置所述寄存器的数据位宽以及地址位宽以便于CPU通过所述PCIe访问所述寄存器;
根据所述IIC的数据位宽将所述PCIe各地址上的数据均划分为多个字节;
获取所述IIC的地址以便于所述BMC通过所述IIC的地址访问所述寄存器,其中所述IIC的地址根据基地址以及偏移地址得到,所述基地址为所述PCIe的地址,所述偏移地址为所述字节。
为了解决上述技术问题,本申请还提供一种兼容PCIe及IIC访问寄存器的装置,包括CPU、BMC、IIC从设备、PCIe终端设备、所述寄存器,其中,所述BMC包括IIC主设备,所述CPU包含PCIe始发设备;
所述IIC主设备与所述IIC从设备通过IIC通信;所述IIC从设备访问所述寄存器;所述PCIe始发设备与所述PCIe终端设备通过PCIe通信;所述PCIe终端设备访问所述寄存器,以便于按照标准PCIe规范设置所述寄存器的数据位宽以及地址位宽,便于所述CPU通过所述PCIe访问所述寄存器;以便于根据所述IIC的数据位宽将所述PCIe各地址上的数据均划分为多个字节;获取所述IIC的地址,便于所述BMC通过所述IIC的地址访问所述寄存器,其中所述IIC的地址根据基地址以及偏移地址得到,所述基地址为所述PCIe的地址,所述偏移地址为所述字节。
优选地,所述寄存器包括通用寄存器以及CPU寄存器;其中所述通用寄存器为用于所述CPU以及所述BMC访问的寄存器。
优选地,所述寄存器的地址位于预设范围内,所述通用寄存器的地址位于所述预设范围内的低位;所述CPU寄存器的地址位于所述预设范围内的高位地址。
优选地,所述通用寄存器包括允许CPU写入的寄存器或允许BMC写入的寄存器。
优选地,所述IIC从设备与所述PCIe终端设备采用不同的复位信号。
优选地,所述PCIe终端设备采用硬核设计,所述IIC从设备采用IIC时序设计。
为了解决上述技术问题,本申请还提供一种兼容PCIe及IIC访问寄存器的装置,包括:
设置模块,用于按照标准PCIe规范设置所述寄存器的数据位宽以及地址位宽以便于CPU通过所述PCIe访问所述寄存器;
划分模块,用于根据所述IIC的数据位宽将所述PCIe各地址上的数据均划分为多个字节;
获取模块,用于获取所述IIC的地址以便于所述BMC通过所述IIC的地址访问所述寄存器,其中所述IIC的地址根据基地址以及偏移地址得到,所述基地址为所述PCIe的地址,所述偏移地址为所述字节。
为了解决上述技术问题,本申请还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述的兼容PCIe及IIC访问寄存器的方法的步骤。
为了解决上述问题,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的兼容PCIe及IIC访问寄存器的方法的步骤。
本申请所提供的兼容PCIe及IIC访问寄存器的方法,包括:按照标准PCIe规范设置寄存器的数据位宽以及地址位宽以便于CPU通过PCIe访问寄存器;根据IIC的数据位宽将PCIe各地址上的数据均划分为多个字节;获取IIC的地址以便于BMC通过IIC的地址访问寄存器,其中IIC的地址根据基地址以及偏移地址得到,基地址为PCIe的地址,偏移地址为字节。该方法中,对于CPU,由于寄存器是按照标准PCIe规范设置的,因此CPU可以通过PCIe访问寄存器;对于BMC,由于IIC的地址是根据PCIe地址得到,故而BMC通过IIC可以访问到CPU通过PCIe访问到的信息,因此,实现了CPU、BMC可以共同访问同一个寄存器,并且不需要增加额外的寄存器,减少了资源的浪费。
此外,本申请还提供一种兼容PCIe及IIC访问寄存器的装置、电子设备以及计算机可读存储介质,与上述提到的兼容PCIe及IIC访问寄存器的方法具有相同或相对应的技术特征,效果同上。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种兼容PCIe及IIC访问寄存器的方法的流程图;
图2为本申请实施例提供的一种兼容PCIe及IIC访问寄存器的装置的示意图;
图3为本申请的一实施例提供的一种兼容PCIe及IIC访问寄存器的装置的结构图;
图4为本申请另一实施例提供的电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的核心是提供一种访问寄存器的方法、装置、电子设备及介质,用于使基于PCIe的CPU以及基于IIC的BMC均能访问同一个寄存器,从而提高寄存器的性能以及提高交换机等设备的工作效率。
FPGA寄存器需要同时满足CPU通过PCIe访问FPGA寄存器与BMC通过IIC访问FPGA寄存器的需求,但是由于PCIe与IIC地址位宽与数据位宽不同,导致寄存器只能是CPU或BMC中的一个访问,这样无法满足CPU/BMC共同使用该寄存器;或者设置两套寄存器,这样需要设计额外的寄存器同步逻辑,浪费FPGA逻辑资源。因此本申请利用PCIe的数据位宽与IIC的数据位宽、PCIe的地址位宽与IIC的地址位宽之间的关系实现仅需要一套寄存器便可以实现CPU、BMC均可以访问该寄存器。需要说明的是,本实施例所提供的兼容PCIe和IIC寄存器访问接口的定义方式不仅可以适用于交换机领域,对同时设计CPU通过PCIe与BMC通过IIC访问管理FPGA寄存器使用领域都有一定的借鉴意义。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。图1为本申请实施例提供的一种兼容PCIe及IIC访问寄存器的方法的流程图,如图1所示,该方法包括:
S10:按照标准PCIe规范设置寄存器的数据位宽以及地址位宽以便于CPU通过PCIe访问寄存器。
标准PCIe的地址位宽、数据位宽均为32位,而标准IIC的地址位宽、数据位宽均为8位,因此,标准PCIe、标准IIC的地址位宽与数据位宽均不相同,故而,基于PCIe的CPU和基于IIC的BMC无法访问同一套寄存器。
由于标准的PCIe的地址位宽、数据位宽均大于标准的IIC的地址位宽、数据位宽,因此,若按照标准IIC来设置寄存器的数据位宽以及地址位宽,则无法使PCIe访问到对应的地址。并且,由于PCIe数据位宽是32位,地址信息呈现隔四等差序列:比如0X000-->0X004-->0X008-->0X0C0……,而对于IIC数据位宽是8位,且地址连续:比如0X00-->0X01-->0X02-->0X03……;因此可以将寄存器的数据位宽、地址位宽按照标准PCIe规范制定,即数据位宽、地址位宽均为32位。
需要说明的是,此处以标准PCIe来设置寄存器。在实际中,可以不按照标准的PCIe来设置寄存器,但是,若不按照标准的PCIe来设置寄存器,由于PCIe的数据位宽、地址位宽与IIC数据位宽、地址位宽之间可能不会存在倍数关系,因此实现CPU与BMC共同访问同一套寄存器的方法可能会变得复杂。故而,本实施例采用标准的PCIe以及标准的IIC,并且按照标准的PCIe规范来设置寄存器。
当CPU通过PCIe访问寄存器时,由于寄存器的是按照标准PCIe规范设置的,因此,CPU可以直接通过PCIe访问寄存器。值得注意的是,本申请中访问的寄存器为FPGA寄存器。
S11:根据IIC的数据位宽将PCIe各地址上的数据均划分为多个字节。
S12:获取IIC的地址以便于BMC通过IIC的地址访问寄存器,其中IIC的地址根据基地址以及偏移地址得到,基地址为PCIe的地址,偏移地址为字节。
由于标准PCIe的数据位宽、地址位宽是标准IIC的数据位宽、地址位宽的4倍,因此可以利用两者之间的倍数关系,保证CPU与BMC可以访问同一套寄存器,从而避免了定义两套寄存器,节省了FPGA硬件资源,也避免了寄存器交互通信带来的复杂逻辑问题。
IIC的数据位宽为8位,PCIe的数据位宽为32位,因此可以根据IIC的数据位宽将PCIe各地址上的数据均划分为4个字节,IIC的地址是PCIe基地址+地址偏移量,如CPU访问的0X000地址下数据32位,可以根据IIC定义划分成0X00对应32位数据中的DATA[7:0]、0X01对应32位数据中的DATA[15:8]、0X02对应32位数据中的DATA[23:16]、0X03对应32位数据中的DATA[31:24];对于CPU端,PCIe地址是0X004,IIC同样可以按照以上规则划分为四个字节;……以此类推,0X00~0XFF地址范围都可以遵循这一规则划分。表1为寄存器设计规则表。如表1所示,以项目1为例,CPU访问寄存器地址为0X00,CPU访问寄存器位宽为[31:0],BMC访问寄存器对应字节为Byte0~Byte3,BMC访问寄存器对应地址为8‘h00~8‘h03。
表1寄存器设计规则表
本实施例所提供的兼容PCIe及IIC访问寄存器的方法,包括:按照标准PCIe规范设置寄存器的数据位宽以及地址位宽以便于CPU通过PCIe访问寄存器;根据IIC的数据位宽将PCIe各地址上的数据均划分为多个字节;获取IIC的地址以便于BMC通过IIC的地址访问寄存器,其中IIC的地址根据基地址以及偏移地址得到,基地址为PCIe的地址,偏移地址为字节。该方法中,对于CPU,由于寄存器是按照标准PCIe规范设置的,因此CPU可以通过PCIe访问寄存器;对于BMC,由于IIC的地址是根据PCIe地址得到,故而BMC通过IIC可以访问到CPU通过PCIe访问到的信息,因此,实现了CPU、BMC可以共同访问同一个寄存器,并且不需要增加额外的寄存器,减少了资源的浪费。
在上述实施例的基础上,本实施例还提供一种兼容PCIe及IIC访问寄存器的装置。图2为本申请实施例提供的一种兼容PCIe及IIC访问寄存器的装置的示意图,如图2所示,整个装置包括CPU 1、BMC 2、FPGA 3。CPU 1、BMC 2共同访问FPGA 3。具体地,CPU 1包括PCIe始发设备(CPU Root);BMC2包括IIC主设备(IIC Master);FPGA 3包括IIC从设备(IICSlave)、PCIe终端设备(PCIe Endpoint)、寄存器。
IIC主设备与IIC从设备通过IIC通信;IIC从设备访问寄存器;PCIe始发设备与PCIe终端设备通过PCIe通信;PCIe终端设备访问寄存器,以便于按照标准PCIe规范设置寄存器的数据位宽以及地址位宽,便于CPU通过PCIe访问寄存器;以便于根据IIC的数据位宽将PCIe各地址上的数据均划分为多个字节;获取IIC的地址,便于BMC通过IIC的地址访问寄存器,其中IIC的地址根据基地址以及偏移地址得到,基地址为PCIe的地址,偏移地址为字节。
FPGA通过PCIe终端设备,从而实现CPU与FPGA的PCIe通信。此功能依赖于FPGA本身IO支持,即实现高速IO。实现CPU与FPGA的PCIe通信应用场合有很多,其目的就是实现CPU与FPGA的PCIe高速通信。对于不同厂家的开发工具提供不同的硬核配置界面,但基本配置项都相同。此功能也依赖于FPGA是否支持。
IIC从设备在FPGA内部实现,从而实现BMC与FPGA的IIC通信。IIC从设备符合标准的IIC时序,通过Verilog硬件描述语言实现设计,分为读写流程。此处不再对IIC标准读写流程阐述。
对于PCIe数据位宽是32位,IIC数据位宽是8位,同时PCIe地址信息隔4等差序列分布,因此可以将PCIe的32位数据分成4个Byte,同时PCIe的地址作为IIC的基地址,4个Byte作为IIC的地址偏移,基于此机制,BMC四次读写可得到一次PCIe访问的32位信息,获取这一信息后,BMC根据实际情况进行拼接。拼接之后进行逻辑运算与显示,并且对BMC显示设计有要求。如CPU通过PCIe一次访问到的信息为10226709,而对于BMC通过IIC访问寄存器时,第一次访问可能访问到的是10;第二次访问可能访问到的是22;第三次访问可能访问到的是67;第四次访问可能访问到的是09,至此,经过四次访问获取到CPU一次访问到的信息,对每次访问的信息根据实际情况组合,最终得到和CPU通过PCIe访问到的信息相同。
基于上述描述,在FPGA实现PCIe终端设备上的设计;在FPGA上实现IIC从设备接口设计;按照表1的寄存器设计规则设计寄存器接口;综合编译后生成镜像并下载,在操作系统下实现CPU通过PCIe访问FPGA寄存器与通过BMC通过IIC访问FPGA寄存器,验证机制的有效性。
本实施例所提供的兼容PCIe及IIC访问寄存器的装置,按照寄存器设计规则实现了CPU通过PCIe访问FPGA寄存器与通过BMC通过IIC访问FPGA寄存器。该装置中,对于CPU,由于寄存器是按照标准PCIe规范设置的,因此CPU可以通过PCIe访问寄存器;对于BMC,由于IIC的地址是根据PCIe地址得到,故而BMC通过IIC可以访问到CPU通过PCIe访问到的信息,因此,实现了基于PCIe的CPU以及基于IIC的BMC可以共同访问同一个寄存器,并且不需要增加额外的寄存器,减少了资源的浪费,也避免了寄存器交互通信带来的复杂逻辑问题。
在实际中,由于通过CPU访问寄存器的频率远大于通过BMC访问寄存器的频率,因此,为了提高交换机的工作效率,优选地实施方式是,寄存器包括通用寄存器以及CPU寄存器;其中通用寄存器为用于CPU以及BMC访问的寄存器。
寄存器被划分为通用读写寄存器和CPU操作的寄存器。通用寄存器可以被基于PCIe的CPU和基于IIC的BMC共同访问的寄存器。CPU操作的寄存器指的是只有被基于PCIe的CPU访问的寄存器。如上述图2所示,寄存器包括通用写寄存器、通用读寄存器、CPU写寄存器以及CPU读寄存器。
本实施例所提供的寄存器包含通用寄存器以及CPU寄存器,一方面,通过寄存器中的通用寄存器可以使CPU以及BMC共同访问;另一方面,除通用寄存器外,附加CPU寄存器,可以提高交换机的工作效率。
由于标准PCIe的地址位宽远大于标准IIC的地址位宽,因此,对于高位的地址BMC可能无法访问到,故而,优选地实施方式是,寄存器的地址位于预设范围内,通用寄存器的地址位于预设范围内的低位;CPU寄存器的地址位于预设范围内的高位地址。
同时,为了避免CPU与BMC写冲突,作为优选地实施方式,通用寄存器包括只允许CPU写入的寄存器或只允许BMC写入的寄存器,在确定是只允许CPU写入或只允许BMC写入时,根据实际需求进行选择。
本实施例中的预设范围为0X00~0XFF,通用读写寄存器要放在0X00~0XFF的地址低位,但是被CPU访问管理专用寄存器放在高位。需要说明的是,对于0XFF之上地址的寄存器标准IIC不能访问,本申请中只允许PCIe协议访问,若IIC协议同样需访问,需修改IIC通信协议,即扩展IIC通信协议的位宽。通过本实施例的方法,使得BMC可以访问通用寄存器,并且由于CPU可以访问通用寄存器以及CPU寄存器,从而提高交换机的工作效率。
为了防止IIC从设备与PCIe终端设备之间通信相互影响,优选地实施方式是,IIC从设备与PCIe终端设备采用不同的复位信号。
采用不同的复位信号,做到解耦设计,从而防止IIC从设备与PCIe终端设备之间的通信的互相影响。
另外,由于CPU访问寄存器的要求高于BMC访问寄存器的要求,因此对于PCIe终端设备采用硬核设计,IIC从设备采用IIC时序设计,从而根据需求实现对寄存器的设计。
在上述实施例中,对于兼容PCIe及IIC访问寄存器的方法进行了详细描述,本申请还提供兼容PCIe及IIC访问寄存器的装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
图3为本申请的一实施例提供的一种兼容PCIe及IIC访问寄存器的装置的结构图。本实施例基于功能模块的角度,包括:
设置模块10,用于按照标准PCIe规范设置寄存器的数据位宽以及地址位宽以便于CPU通过PCIe访问寄存器;
划分模块11,用于根据IIC的数据位宽将PCIe各地址上的数据均划分为多个字节;
获取模块12,用于获取IIC的地址以便于BMC通过IIC的地址访问寄存器,其中IIC的地址根据基地址以及偏移地址得到,基地址为PCIe的地址,偏移地址为字节。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本实施例所提供的兼容PCIe及IIC访问寄存器的装置,通过设置模块用于按照标准PCIe规范设置寄存器的数据位宽以及地址位宽以便于CPU通过PCIe访问寄存器;通过划分模块用于根据IIC的数据位宽将PCIe各地址上的数据均划分为多个字节;通过获取模块用于获取IIC的地址以便于BMC通过IIC的地址访问寄存器,其中IIC的地址根据基地址以及偏移地址得到,基地址为PCIe的地址,偏移地址为字节。该装置中,对于CPU,由于寄存器是按照标准PCIe规范设置的,因此CPU可以通过PCIe访问寄存器;对于BMC,由于IIC的地址是根据PCIe地址得到,故而BMC通过IIC可以访问到CPU通过PCIe访问到的信息,因此,实现了CPU、BMC可以共同访问同一个寄存器,并且不需要增加额外的寄存器,减少了资源的浪费,也避免了寄存器交互通信带来的复杂逻辑问题。
图4为本申请另一实施例提供的电子设备的结构图。本实施例基于硬件角度,如图4所示,电子设备包括:
存储器20,用于存储计算机程序;
处理器21,用于执行计算机程序时实现如上述实施例中所提到的兼容PCIe及IIC访问寄存器的方法的步骤。
本实施例提供的电子设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(Digital Signal Processor,DSP)、FPGA、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图形处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的兼容PCIe及IIC访问寄存器的方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。数据203可以包括但不限于上述所提到的兼容PCIe及IIC访问寄存器的方法所涉及到的数据等。
在一些实施例中,电子设备还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
本领域技术人员可以理解,图4中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的电子设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:兼容PCIe及IIC访问寄存器的方法,效果同上。
最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请提供的计算机可读存储介质包括上述提到的兼容PCIe及IIC访问寄存器的方法,效果同上。
以上对本申请所提供的一种访问寄存器的方法、装置、电子设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种兼容PCIe及IIC访问寄存器的方法,其特征在于,包括:
按照标准PCIe规范设置所述寄存器的数据位宽以及地址位宽以便于CPU通过所述PCIe访问所述寄存器;
根据所述IIC的数据位宽将所述PCIe各地址上的数据均划分为多个字节;
获取所述IIC的地址以便于所述BMC通过所述IIC的地址访问所述寄存器,其中所述IIC的地址根据基地址以及偏移地址得到,所述基地址为所述PCIe的地址,所述偏移地址为所述字节。
2.一种兼容PCIe及IIC访问寄存器的装置,其特征在于,包括CPU、BMC、IIC从设备、PCIe终端设备、所述寄存器,其中,所述BMC包括IIC主设备,所述CPU包含PCIe始发设备;
所述IIC主设备与所述IIC从设备通过IIC通信;所述IIC从设备访问所述寄存器;所述PCIe始发设备与所述PCIe终端设备通过PCIe通信;所述PCIe终端设备访问所述寄存器,以便于按照标准PCIe规范设置所述寄存器的数据位宽以及地址位宽,便于所述CPU通过所述PCIe访问所述寄存器;以便于根据所述IIC的数据位宽将所述PCIe各地址上的数据均划分为多个字节;获取所述IIC的地址,便于所述BMC通过所述IIC的地址访问所述寄存器,其中所述IIC的地址根据基地址以及偏移地址得到,所述基地址为所述PCIe的地址,所述偏移地址为所述字节。
3.根据权利要求2所述的兼容PCIe及IIC访问寄存器的装置,其特征在于,所述寄存器包括通用寄存器以及CPU寄存器;其中所述通用寄存器为用于所述CPU以及所述BMC访问的寄存器。
4.根据权利要求3所述的兼容PCIe及IIC访问寄存器的装置,其特征在于,所述寄存器的地址位于预设范围内,所述通用寄存器的地址位于所述预设范围内的低位;所述CPU寄存器的地址位于所述预设范围内的高位地址。
5.根据权利要求3或4所述的兼容PCIe及IIC访问寄存器的装置,其特征在于,所述通用寄存器包括允许CPU写入的寄存器或允许BMC写入的寄存器。
6.根据权利要求2所述的兼容PCIe及IIC访问寄存器的装置,其特征在于,所述IIC从设备与所述PCIe终端设备采用不同的复位信号。
7.根据权利要求2所述的兼容PCIe及IIC访问寄存器的装置,其特征在于,所述PCIe终端设备采用硬核设计,所述IIC从设备采用IIC时序设计。
8.一种兼容PCIe及IIC访问寄存器的装置,其特征在于,包括:
设置模块,用于按照标准PCIe规范设置所述寄存器的数据位宽以及地址位宽以便于CPU通过所述PCIe访问所述寄存器;
划分模块,用于根据所述IIC的数据位宽将所述PCIe各地址上的数据均划分为多个字节;
获取模块,用于获取所述IIC的地址以便于所述BMC通过所述IIC的地址访问所述寄存器,其中所述IIC的地址根据基地址以及偏移地址得到,所述基地址为所述PCIe的地址,所述偏移地址为所述字节。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1所述的兼容PCIe及IIC访问寄存器的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1任一项所述的兼容PCIe及IIC访问寄存器的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210469669.XA CN114816528A (zh) | 2022-04-30 | 2022-04-30 | 一种访问寄存器的方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210469669.XA CN114816528A (zh) | 2022-04-30 | 2022-04-30 | 一种访问寄存器的方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114816528A true CN114816528A (zh) | 2022-07-29 |
Family
ID=82509265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210469669.XA Pending CN114816528A (zh) | 2022-04-30 | 2022-04-30 | 一种访问寄存器的方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114816528A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116956789A (zh) * | 2023-09-19 | 2023-10-27 | 芯耀辉科技有限公司 | 一种用于寄存器后门访问的方法、计算设备及介质 |
CN118152328A (zh) * | 2024-05-09 | 2024-06-07 | 浙江禾川科技股份有限公司 | 一种用于工业设备的通信方法、装置和系统 |
-
2022
- 2022-04-30 CN CN202210469669.XA patent/CN114816528A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116956789A (zh) * | 2023-09-19 | 2023-10-27 | 芯耀辉科技有限公司 | 一种用于寄存器后门访问的方法、计算设备及介质 |
CN116956789B (zh) * | 2023-09-19 | 2023-12-12 | 芯耀辉科技有限公司 | 一种用于寄存器后门访问的方法、计算设备及介质 |
CN118152328A (zh) * | 2024-05-09 | 2024-06-07 | 浙江禾川科技股份有限公司 | 一种用于工业设备的通信方法、装置和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114816528A (zh) | 一种访问寄存器的方法、装置、电子设备及介质 | |
CN106557340B (zh) | 一种配置方法及装置 | |
JP2573566B2 (ja) | バスコンバータ | |
US7577830B2 (en) | Peripheral device with hardware linked list | |
CN110781119B (zh) | 一种i2c总线扩展接口及其控制方法、片上系统 | |
JP2017201517A (ja) | 動的pcieスイッチ再配置システムおよびその方法 | |
US6505263B1 (en) | Bus controller operating code in system memory | |
CN109471626B (zh) | 页面逻辑结构、页面生成方法、页面数据处理方法及装置 | |
CN110244983B (zh) | 固定串口号的方法、终端设备及存储介质 | |
US20150067223A1 (en) | Hot swappable memory motherboard | |
US5561740A (en) | Method and system for providing multiple instances in a single multiple-instance object | |
CN113849433B (zh) | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 | |
WO2022148072A1 (zh) | PCIe switch工作模式更新方法及相关组件 | |
CN113553289A (zh) | 基于soc芯片的mcu引脚功能配置方法及soc芯片 | |
CN209928414U (zh) | 一种主板及计算机设备 | |
CN106708596B (zh) | 一种输入输出虚拟化资源的调整方法及处理器 | |
CN215006450U (zh) | 一种飞腾x100桥片嵌入主板 | |
CN114185720B (zh) | 服务器动态热备份的方法、装置、设备及存储介质 | |
WO2020113421A1 (zh) | 一种挂载文件系统的方法、终端设备及存储介质 | |
WO2023016379A1 (zh) | 计算机系统、基于PCIe设备的控制方法及相关设备 | |
CN117480498A (zh) | 在运行时间为裸金属服务器动态提供PCIe器件 | |
CN112564924B (zh) | 计算机扩展卡及区块链终端设备 | |
CN103049214B (zh) | 磁盘阵列卡以及具有扩充功能的磁盘阵列系统 | |
CN217522855U (zh) | 一种主板及路由器 | |
CN112306558A (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 |