WO2017049433A1 - 计算机系统和计算机系统中端点设备访问的方法 - Google Patents

计算机系统和计算机系统中端点设备访问的方法 Download PDF

Info

Publication number
WO2017049433A1
WO2017049433A1 PCT/CN2015/090144 CN2015090144W WO2017049433A1 WO 2017049433 A1 WO2017049433 A1 WO 2017049433A1 CN 2015090144 W CN2015090144 W CN 2015090144W WO 2017049433 A1 WO2017049433 A1 WO 2017049433A1
Authority
WO
WIPO (PCT)
Prior art keywords
endpoint
subsystem
management
management controller
address
Prior art date
Application number
PCT/CN2015/090144
Other languages
English (en)
French (fr)
Inventor
苏德现
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP15904321.5A priority Critical patent/EP3220713B1/en
Priority to CN201710448822.XA priority patent/CN107436850B/zh
Priority to CN201580003596.3A priority patent/CN105874442B/zh
Priority to ES15904321T priority patent/ES2726302T3/es
Priority to PCT/CN2015/090144 priority patent/WO2017049433A1/zh
Publication of WO2017049433A1 publication Critical patent/WO2017049433A1/zh
Priority to US15/885,507 priority patent/US10083141B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-integrated circuit (I2C)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Definitions

  • the present invention relates to the field of information technology, and more particularly to a method and computer system for accessing endpoint devices in a computer system.
  • the data center usually uses Ethernet technology to build a local area network, and uses FC (Fibre Channel, Fibre Channel technology) technology to build a SAN (Storage Area Network and SAN Protocols, storage area network and its protocol).
  • FC Fibre Channel, Fibre Channel technology
  • SAN Storage Area Network and SAN Protocols, storage area network and its protocol
  • the computer equipment Ethernet card is used to access the local area network, and the optical fiber.
  • the channel host bus adapter HBA Hyper Bus Adapter
  • FCoE Fibre Channel over Ethernet
  • FCoE Fibre Channel over Ethernet
  • PCIE Peripheral Component Interconnect Express
  • network card such as network card, RAID (Redundant Arrays of Independent Disks) card, SSD (Solid State Drives) card, and GPU (Graphics Processing Unit) card , Fast Peripheral Component Interconnect Standard) Endpoint device.
  • RAID Redundant Arrays of Independent Disks
  • SSD Solid State Drives
  • GPU Graphics Processing Unit
  • the management subsystem of the computer device implements configuration management of each PCIE endpoint device by communicating with a plurality of management software modules running on the operating system, and each management software module respectively manages each PCIE endpoint device.
  • each management software module respectively manages each PCIE endpoint device.
  • multiple management software modules need to be deployed, which complicates the deployment and is not easy to upgrade and maintain.
  • Embodiments of the present invention provide a method and a computer system for accessing an endpoint device in a computer system, so as to implement configuration management of an endpoint device without relying on an operating system.
  • a first aspect of an embodiment of the present invention provides a computer system including a computing subsystem and a management subsystem, the computing subsystem including a central processing unit, the management subsystem including a management controller, and the central processing unit Connect to the endpoint device;
  • the computer system also includes an endpoint proxy device, the first port of the endpoint proxy device connecting to the central processor in the computing subsystem via a PCIE link, the second port of the endpoint proxy device and the management The management controller in the subsystem is connected;
  • the central processor is configured to allocate device information of the endpoint device in the computing subsystem, and write device information of the endpoint device in the computing subsystem to the endpoint proxy device,
  • the device information of the endpoint device in the computing subsystem includes at least first address information of the endpoint device in the computing subsystem;
  • the management controller is configured to determine, according to the device information in the computing subsystem, that the endpoint device is written in the endpoint proxy device, according to the first endpoint of the endpoint device in the computing subsystem Addressing a second address of the endpoint device in the management subsystem, and writing a second address of the endpoint device in the management subsystem to the endpoint proxy device;
  • the endpoint proxy device configured to establish, after being written to the second address, a first address of the endpoint device in the computing subsystem and a second address of the endpoint device in the management subsystem Correspondence between addresses;
  • the management controller is further configured to send a first access request, where the first access request carries a second address of the endpoint device in the management subsystem;
  • the endpoint proxy device is further configured to receive, by using the connection between the second port and the management controller, the first access request sent by the management controller, and generate, according to the corresponding relationship, the carrying the endpoint device a second access request of the first address in the computing subsystem, and pass The PCIE link connected to the first port sends the second access request to the endpoint device.
  • the central processor is specifically configured to scan the endpoint device and the endpoint proxy device according to an instruction of the basic input output system BIOS during the initialization of the computing subsystem, respectively, the endpoint device and the endpoint proxy The device allocates device information in the computing subsystem and writes device information of the endpoint device in the computing subsystem to the endpoint proxy device.
  • the central processing unit is specifically configured to Device information in the computing subsystem of the endpoint proxy device, the device information of the endpoint device in the computing subsystem is written to the endpoint proxy device by the PCIE link connected by the first port .
  • the management controller and the central processor pass the south Bridge chip connection
  • the central processor is specifically configured to notify, by the south bridge chip, device information of the endpoint device in the computing subsystem to the management controller;
  • the management controller is further configured to write the acquired device information of the endpoint device in the computing subsystem to the endpoint proxy device by using a connection of the second port.
  • the endpoint proxy device is further configured to send a notification message to the management controller after being written to the device information of the endpoint device in the computing subsystem;
  • the management controller is specifically configured to receive the notification sent by the endpoint proxy device And determining device information written by the endpoint device in the computing subsystem in the endpoint proxy device according to the notification message.
  • the management controller is configured to periodically send a query message to the endpoint proxy device, receive a response message of the query message sent by the endpoint proxy device, and determine the endpoint proxy according to the response message of the query message.
  • Device information written by the endpoint device in the computing subsystem is written in the device.
  • a second port of the endpoint proxy device is connected to the management controller in the management subsystem through an internal integrated circuit I2C;
  • the management controller is further configured to allocate an I2C number to the endpoint proxy device;
  • the management controller is specifically configured to send the first access request to the endpoint proxy device according to an I2C number of the endpoint proxy device.
  • the second port of the endpoint proxy device is connected to the management controller in the management subsystem through a PCIE link;
  • the management controller is further configured to allocate a second address of the endpoint proxy device in the management subsystem, the range of the second address of the endpoint proxy device in the management subsystem including the endpoint device a range of second addresses in the management subsystem;
  • the management controller is specifically configured to send the first access request to the endpoint proxy device according to the second address of the endpoint device in the management subsystem.
  • the computing subsystem further includes a PCIE switching device, the endpoint device being connected to the central processor by the PCIE switching device;
  • the first port of the endpoint proxy device connects to the PCIE switching device via a PCIE link to connect to the central processor.
  • the endpoint proxy device is located in the computing subsystem; or
  • the endpoint proxy device is located in a management controller of the management subsystem.
  • the device information of the endpoint device in the computing subsystem includes at least one of the following information:
  • the input/output I/O address information of the endpoint device The input/output I/O address information of the endpoint device, the memory Memory address information of the endpoint device, the bus/device/function B/D/F number of the endpoint device, or the device type information of the endpoint device.
  • a second aspect of an embodiment of the present invention provides a method for accessing an endpoint device in a computer system, including a computing subsystem and a management subsystem, the computing subsystem including a central processor, the management subsystem including management a controller, the central processor is configured to connect to an endpoint device; the method includes:
  • the central processor allocates device information in the computing subsystem to the endpoint device, and writes device information of the endpoint device in the computing subsystem to an endpoint proxy device in the computing subsystem
  • the device information in the computing subsystem of the endpoint device includes at least first address information of the endpoint device in the computing subsystem
  • the management controller determines that the endpoint device is written to the device information in the computing subsystem
  • the first address allocation in the computing subsystem according to the endpoint device Describe a second address of the endpoint device in the management subsystem, and recite the end Point device writes to the endpoint proxy device at a second address in the management subsystem
  • the endpoint proxy device After the endpoint proxy device is written to the second address, establish a first address of the endpoint device in the computing subsystem and a second address of the endpoint device in the management subsystem Corresponding relationship; the first port of the endpoint proxy device is connected to the central processor in the computing subsystem via a PCIE link, the second port of the endpoint proxy device is the same as the one in the management subsystem Management controller connection;
  • the management controller sends a first access request, where the first access request carries a second address of the endpoint device in the management subsystem;
  • the endpoint proxy device receives the first access request sent by the management controller by using the connection between the second port and the management controller, and generates, according to the corresponding relationship, the carrying the endpoint device in the computing sub a second access request of the first address in the system, and transmitting the second access request to the endpoint device through the PCIE link connected by the first port.
  • the method further includes:
  • the central processor scans the endpoint device and the endpoint proxy device according to an instruction of the basic input/output system BIOS during the initialization of the computing subsystem, respectively, for the endpoint device and the endpoint proxy device to be allocated Computing device information in the subsystem and writing device information of the endpoint device in the computing subsystem to the endpoint proxy device.
  • the management controller and the central processor pass the south. Bridge chip connection, the method further includes:
  • the central processor notifying, by the south bridge chip, device information of the endpoint device in the computing subsystem to the management controller;
  • the management controller writes the acquired device information of the endpoint device in the computing subsystem to the endpoint proxy device through a connection of the second port.
  • the method further includes:
  • the endpoint proxy device sends a notification message to the management controller after being written to the device information of the endpoint device in the computing subsystem;
  • the management controller receives the notification message sent by the endpoint proxy device, and determines, according to the notification message, device information written by the endpoint device in the computing subsystem in the endpoint proxy device.
  • the method further includes:
  • the management controller periodically sends a query message to the endpoint proxy device, receives a response message of the query message sent by the endpoint proxy device, and determines, according to the response message of the query message, that the endpoint proxy device is Write device information of the endpoint device in the computing subsystem.
  • the second port of the endpoint proxy device is connected to the management controller in the management subsystem through the internal integrated circuit I2C, and the method further includes:
  • the management controller allocates an I2C number to the endpoint proxy device
  • the management controller sends the first access request to the endpoint proxy device according to an I2C number of the endpoint proxy device.
  • the second port of the endpoint proxy device is connected to the management controller in the management subsystem through a PCIE link, and the method further includes:
  • the management controller is further configured to allocate a second address of the endpoint proxy device in the management subsystem, the range of the second address of the endpoint proxy device in the management subsystem including the endpoint device a range of second addresses in the management subsystem;
  • the management controller is specifically configured to send the first access request to the endpoint proxy device according to the second address of the endpoint device in the management subsystem.
  • the computing subsystem further includes a PCIE switching device, the endpoint device being connected to the central processor by the PCIE switching device;
  • the first port of the endpoint proxy device connects to the PCIE switching device via a PCIE link to connect to the central processor.
  • the endpoint proxy device is located in the computing subsystem; or
  • the endpoint proxy device is located in a management controller of the management subsystem.
  • the device information of the endpoint device in the computing subsystem includes at least one of the following information:
  • the input/output I/O address information of the endpoint device The input/output I/O address information of the endpoint device, the memory Memory address information of the endpoint device, the bus/device/function B/D/F number of the endpoint device, or the device type information of the endpoint device.
  • the endpoint proxy device establishing a correspondence between a first address of the endpoint device in the computing subsystem and a second address of the management subsystem, Upon receiving the first access request from the management device to the endpoint device, the second access request carrying the first address of the endpoint device in the computing subsystem is generated according to the corresponding relationship, and sent to the endpoint device.
  • the management controller sends the endpoint device access request to the endpoint device, and the operation does not need to depend on the operating system, and does not need to perform different management configurations on different endpoint devices, thereby improving the management of the endpoint device. Maintenance.
  • FIG. 1 is a schematic diagram showing the basic structure of a computer device in the prior art
  • FIG. 2 is a schematic structural diagram of a computer device 200 according to an embodiment of the present invention.
  • FIG. 3 is a schematic structural diagram of another computer device 200 according to an embodiment of the present disclosure.
  • FIG. 4 is a schematic structural diagram of an endpoint proxy device 2014 according to an embodiment of the present invention.
  • FIG. 5 is a schematic structural diagram of another implementation manner of an endpoint proxy device 2014 according to an embodiment of the present disclosure.
  • FIG. 6 is a schematic structural diagram of a further implementation manner of an endpoint proxy device 2014 according to an embodiment of the present disclosure
  • FIG. 7 is a schematic structural diagram of a computer system 300 according to an embodiment of the present invention.
  • FIG. 8 is a schematic structural diagram of another implementation manner of a computer system 300 according to an embodiment of the present invention.
  • FIG. 9 is a flowchart of a method for accessing an endpoint device in a computer system according to an embodiment of the present invention.
  • FIG. 1 is a schematic diagram of a basic structure of a computer device in the prior art.
  • computer device 100 includes a management subsystem 102 and a computing subsystem 101.
  • the computing subsystem 101 includes one or more computing CPUs 1011.
  • the plurality of computing CPUs are connected by a CPU bus or an interconnect chip, and each computing CPU can access all the devices of the system.
  • the CPU of the computing subsystem is connected to the memory 1012 (MEMORY) that provides storage space for the operating system.
  • the CPU 1011 of the computing subsystem connects one or more PCIE endpoint devices directly or through the PCIE switch module 1013 to extend the functionality of the computing subsystem.
  • the network card provides Ethernet access capability as the endpoint device 1015
  • the RAID card provides storage redundancy as the endpoint device 1016
  • the GPU card provides graphical output capability as the endpoint device 1017.
  • Different computer devices can also be designed by the user as needed. Select the type of extended terminal device.
  • the CPU of the computing subsystem passes through the south bridge chip 1018 or the directly connected disk 1019 (FIG. 1 is connected to the disk 1019 via the south bridge chip 1018), and the disk 1019 is generally used as a system storage device.
  • the CPU of the computing subsystem such as the main CPU 1011
  • the BIOS basic input/output system
  • the BIOS completes the initialization of the computing subsystem hardware and the endpoint of the PCIE. Device discovery and configuration, loading of operating systems, etc.
  • the computing subsystem is controlled by the loaded operating system.
  • the computer device 100 includes various computer devices having computing or storage functions, and may include various servers, such as a blade server, a rack server, and the like, and may also include servers using various operating systems. For example using Windows or Linux operating system Servers and so on.
  • the management controller MCPU 1021 is an execution component of the management subsystem, collects operational information and fault information of various components of the computer device 100 through various sensors, and performs configuration management of the endpoint devices in the computer device 100, such as configuring or managing the level of the RAID card. Configure or manage the MAC address of the NIC, configure or manage PF (Physical Fuction), and so on.
  • the MCPU 1021 is coupled to the South Bridge chip 1018 of the computing subsystem or directly to the computing CPU 1011 to implement KVM functionality or to enable communication between the computing subsystem 101 and the management subsystem 102.
  • the management subsystem 102 is powered on first. After the management subsystem 102 is powered on and initialized, the management subsystem 102 controls the computing subsystem 101 to be powered on, and the computing subsystem 101 completes power-on and hardware. After detecting and starting the operating system, computer device 100 begins to run.
  • the BIOS program is a program stored on a computer device that runs after the computing subsystem of the computer device is powered on, and is run by the CPU of the computer device to retrieve the BIOS program. After the BIOS is running, it mainly completes three parts of functions:
  • POST Power On Self Test
  • the function is to check whether the computer equipment is good, usually the complete POST self-test will include The CPU, basic memory, extended memory, motherboard, CMOS memory, serial port, display card, soft disk subsystem and keyboard are tested. Once the problem is found in the self-test, the system will give a prompt or whistle warning. If there is an error in the self-test, it will be handled in two cases: for a serious fault (fatal fault), then stop, because the various initialization operations have not been completed, no prompt or signal can be given; for non-critical faults Give a prompt or audible alarm signal, waiting for user processing;
  • initialization including the creation of interrupt vectors, setting registers, initialization and detection of some external devices, such as PCIE endpoint devices; in the process of scanning and initializing PCIE endpoint devices, usually using depth-first algorithms to discover computer devices All PCIE endpoint devices, and allocate B/D/F (Bus/Device/Function), I/O address space, and Memory address space for each PCIE endpoint device;
  • B/D/F Buss/Device/Function
  • I/O address space I/O address space
  • Memory address space for each PCIE endpoint device
  • the boot program that is, boot and start the operating system.
  • the BIOS first reads the boot record from the beginning sector of the floppy disk or hard disk. If it is not found, it will display no boot device on the display. If the boot record is found, the control of the computer will be transferred to the boot record. The computer device is loaded. After the computer device is booted, the BIOS program runs, and the control of the computing subsystem is transferred to the operating system loaded by the boot record and the program running the operating system.
  • the management subsystem of the computer device when configuring management of a PCIE endpoint device, implements configuration management of each PCIE endpoint device by communicating with multiple management software modules running on the operating system, and each management software module separately Correspondingly manage each PCIE endpoint device.
  • configuration management of multiple different types of PCIE endpoint devices multiple management software modules need to be deployed, and each management software module itself needs to be provided by each PCIE device manufacturer or developed by the server manufacturer for each PCIE device (to adapt to different operations). System type), resulting in complex deployment and not easy to upgrade and maintain.
  • the embodiment of the present invention provides a technical solution, which is to improve the foregoing computer device 100, and solve the problem that the operating system needs to rely on the operating system to implement the endpoint device management in the prior art, so as to improve the management subsystem of the computer device in the PCIE endpoint device. Maintainability when managing.
  • FIG. 2 is a schematic structural diagram of a computer device 200 according to an embodiment of the present invention.
  • the computer device 200 includes a computing subsystem 201 and a management subsystem 202.
  • the computing subsystem 201 includes a central processing unit 2011, a memory 2012, a PCIE switching module 2013, an endpoint device 2015, an endpoint device 2016, an endpoint device 2017, a south bridge chip 2018, and the like;
  • Management subsystem 202 includes management controller 2021 and memory 2022.
  • an endpoint proxy device 2014 such as a PCIE endpoint proxy device, is added to the computer device 200.
  • the endpoint proxy device 2014 can be a chip, can be part of a processor, or a standalone endpoint device (eg, a device card), and the like.
  • the endpoint proxy device 2014 is connected to the management controller 2021 and the PCIE switch module 2013, respectively.
  • the endpoint proxy device 2014 may be connected to the CPU 2011 through a PCIE switch module in the computing subsystem 201 through a PCIE link, or may be directly connected to the CPU 2011, or directly Connected to the South Bridge chip 2018.
  • the first port (PCIE port) of the endpoint proxy device 2014 is connected to the CPU 2011 through the PCIE link
  • the first port (PCIE port) of the endpoint proxy device 2014 is connected to the CPU 2011 through the PCIE switch module through the PCIE link.
  • FIG. 2 is an example in which the endpoint proxy device 2014 is connected to the CPU 2011 through a PCIE switch module.
  • the endpoint proxy device 2014 is coupled to the management controller 2021 of the management subsystem 102 via a standard bus or a private bus (e.g., a PCIE bus, etc.).
  • a standard bus or a private bus e.g., a PCIE bus, etc.
  • the second port (PCIE port) of the endpoint proxy device 2014 is connected to the management controller 2021 of the management subsystem 102 via the PCIE link, or the second port (I2C port) of the endpoint proxy device 2014 is connected and managed through the I2C link.
  • the management controller 2021 of the subsystem 102 is connected.
  • the management controller 2021 indirectly accesses the endpoint device in the computing subsystem 201 through the endpoint proxy device 2014, such as the endpoint device 2015, etc., to implement out-of-band configuration (including but not limited to the level of configuring the RAID card, the MAC address of the network card, the PF type, etc.) Monitor the operating status of all endpoint devices (including but not limited to monitoring the health status of the hard disk under the RAID card, network card link status, statistics counters, etc.), so that it can be managed in-band through the management tool on the CPU of the computing subsystem 201.
  • out-of-band configuration including but not limited to the level of configuring the RAID card, the MAC address of the network card, the PF type, etc.
  • Monitor the operating status of all endpoint devices including but not limited to monitoring the health status of the hard disk under the RAID card, network card link status, statistics counters, etc.
  • the effect of the endpoint device does not depend on the operating system of the computer device, reducing the dependence on the external, does not require different management configurations for different endpoint devices, and does not require each management software module to be provided by each PCIE device vendor. Or the server manufacturer develops for each PCIE device, which improves the maintainability of the computer device.
  • first port and the second port are not shown in the figure. It should be understood that the first port and the second port are ports of the endpoint proxy device, and the specific implementation may have various implementation manners, including It is not limited to being implemented by a specific hardware interface, or by a software interface having a communication function. The embodiment of the present invention does not limit the specific implementation manner of the interface.
  • the endpoint proxy device 2014 in the embodiment of the present invention communicates with the PCIE standard in the same manner as the endpoint device (for example, the endpoint device 2015) in the computer device.
  • the central processor 2011 can discover the endpoint proxy device 2014, the endpoint device 2015, the endpoint device 2016, and the endpoint device 2017 through the BIOS program in the BIOS chip during the startup phase of the computing subsystem 201, and according to Required for each endpoint device Set, as well as input/output resources, memory resource allocation, and so on.
  • central processor 2011 is initialized by the BIOS program, using depth-first algorithm, discovering endpoint device 2015, endpoint device 2016, and endpoint device 2017, and assigning B/ to each endpoint device. D/F number, I/O address space or Memory address space.
  • the I/O address space may be the first address information of the endpoint device (for example, the endpoint device 2015) in the computing subsystem 201 in the embodiment of the present invention; or the Memory address space may also be the present invention.
  • the central processor 2011 initializes the endpoint proxy device 2014 through the BIOS program, and also uses the depth-first algorithm to allocate the B/D/F number, I/O, and Memory space to the endpoint proxy device 2014. At the same time, the central processor 2011 can identify the type of the endpoint proxy device 2014 by the BIOS program, that is, the endpoint proxy device 2014 is identified as a proxy device, so that the CPU 2011 can enable the endpoint device (eg, endpoint device 2015, endpoint device 2016, endpoint device 2017) The device information is written to the endpoint proxy device identified by the endpoint. According to the definition of the PCIE standard, each PCIE endpoint device must support a 64-byte configuration space, for example, the range is 0x00-0x3f.
  • the Class Code field of 08H defines the type of the EP device, assuming that the Class Code code is "1111" for the proxy device type, and the Class Code code is not the "1111" endpoint device (for example, the endpoint device 2015).
  • the central processor 2011 reads the Class Code field through the BIOS program, and is able to identify the type of each PCIE endpoint device, including the type that can identify the endpoint proxy device 2014 as a proxy device.
  • the central processor 2011 After the central processor 2011 completes initialization of all endpoint devices of the computing subsystem 201 in the computer device 200 by the BIOS program, the endpoint devices in the computing subsystem 201 other than the endpoint proxy device 2014 (eg, endpoint device 2015, endpoint device 2016, and endpoints) Device information of device 2017, etc.) is written into the endpoint proxy device 2014. Specifically, the central processor 2011 may pass the first port on the endpoint proxy device, and the PCIE link connected by the first port to the endpoint device (eg, the endpoint device 2015, the endpoint device 2016, and the endpoint device 2017, etc.) of Device information is written to the endpoint proxy device 2014.
  • the device information written to other endpoint devices in the endpoint proxy device 2014 includes, but is not limited to, the B/D/F number of each endpoint device, the I/O address space, the Memory address space, or the device type. For example, it may be written to the B/D/F number and I/O address space of the endpoint device 2015, or may be written to the B/D/F number and the memory address space of the endpoint device 2016, or may be a write endpoint device. 2015 B/D/F number, I/O address and memory address space.
  • the endpoint proxy device 2014 saves the device information of the endpoint device written by the central processor 2011 through the BIOS program, and notifies the management controller 2021 in the management subsystem 202 by means of an interrupt, the management controller 2021 according to the notification of the endpoint proxy device 2014, Determining, in the endpoint proxy device, device information written to the endpoint device in the computing subsystem.
  • the endpoint proxy device 2014 may send a notification message to the management controller 2021 after being written to the device information of the endpoint device (eg, the endpoint device 2015) in the computing subsystem 201, the management controller.
  • the notification message sent by the endpoint proxy device 2014 is received, and the device information written by the endpoint device in the computing subsystem is determined according to the notification message.
  • the management controller 2021 in the management subsystem 202 can also obtain the device information written to the endpoint device in the endpoint proxy device 2014 by way of query. For example, the management controller 2021 periodically sends a query message to the endpoint proxy device 2014, and when the endpoint proxy device 2014 is written to the device information of the endpoint device, receives the Querying a response message of the message, the response message includes device information of the endpoint device written in the endpoint proxy device 2014, and the management controller 2021 determines, according to the response message of the query message, that the endpoint proxy device 2014 is Write device information of the endpoint device in the computing subsystem.
  • the management controller 2021 determines, according to the response message of the query message, that the endpoint proxy device 2014 is Write device information of the endpoint device in the computing subsystem.
  • the endpoint proxy device 2014 is connected to the PCIE switch module 2013 through the first port.
  • the first end of the endpoint proxy device 2014 The port can be connected to the PCIE switch module 2013 through a PCIE link, and connected to the central processor 2011 through the switch module 2013.
  • the endpoint proxy device 2014 is connected to the management controller 2021 through the second port.
  • the second port (I2C port) of the endpoint proxy device 2014 is connected to the management controller 2021 through an I2C (Inter-Integrated Circuit) link; or the second port (PCIE port of the endpoint proxy device 2014) ) is connected to the management controller 2021 via a PCIE link.
  • the management controller 2021 assigns an I2C number to the endpoint proxy device 2014, and according to the endpoint proxy device 2014 The I2C number, an access request to the endpoint device (eg, endpoint device 2015) is sent to the endpoint proxy device.
  • the management controller 2021 allocates the second address of the endpoint proxy device 2014 in the management subsystem 202.
  • the range of the second address of the endpoint proxy device 2014 in the management subsystem 202 includes an address range in the management subsystem 202 of the endpoint device (including the endpoint device 2015, the endpoint device 2016, the endpoint device 2016) .
  • the management controller 2021 sends an access request to the endpoint device (eg, endpoint device 2015) to the endpoint proxy device based on the second address of the endpoint proxy device 2014 in the management subsystem.
  • the endpoint devices of the computing subsystem 201 other than the endpoint proxy device 2014 may be Device information
  • the central processor 2011 is written into the management controller 2021 in the management subsystem 202 through the south bridge chip 2018, and then the endpoint device is calculated by the management controller 2021 through the second port of the management controller 2021.
  • the device information in the subsystem 201 is written into the endpoint proxy device 2014.
  • the management controller 2021 in the management subsystem 202 acquires the device information of all the endpoint devices except the endpoint proxy device 2014 in the computing subsystem 201, and allocates each endpoint device. Manage the address space of the subsystem (including the input/output I/O address space, or the memory memory address space). Specifically, the management controller 2021 may allocate the endpoint device (eg, the endpoint device 2015) in the management subsystem 202 according to the first address of the endpoint device (eg, the endpoint device 2015) in the computing subsystem 201. The second address in the second address, which may be an I/O address space or a memory address space.
  • the management controller 2021 after the endpoint device 2014 assigns the second address of the endpoint device (eg, endpoint device 2015) in the management subsystem 202, at the first address in the computing subsystem 201, The endpoint device (e.g., endpoint device 2015) is written to the endpoint proxy device 2014 at a second address in the management subsystem 202.
  • the endpoint proxy device 2014 establishes an address space for each endpoint device (e.g., endpoint device 2015) in the management subsystem 202, such as the second address, with an address space of the computing subsystem 202 with each endpoint device (e.g., endpoint device 2015) , for example, the correspondence between the first addresses. This correspondence can be as shown in Table 1:
  • the management I/O address spaces A11 to A12 allocated to the endpoint device 2015 by the management controller 2021 are the same size and corresponding to the physical I/O address spaces C11 to C12 of the endpoint device 2015, and the management controller 2021 is the endpoint device 2015.
  • the allocated management memory address spaces B11 to B12 are the same size and correspond to the physical memory address spaces D11 to D12 of the endpoint device 2015.
  • the management address space allocated by the management controller 2021 to other endpoint devices is similar to the management address space allocated by the endpoint device 2015, and details are not described herein.
  • the management controller 2021 can access the endpoint device through the endpoint proxy device 2014 according to the allocated address space, such as accessing the endpoint device 2015, the endpoint device 2016, and the endpoint settings Prepare 2017, etc. to implement configuration or management of endpoint devices.
  • the endpoint proxy device 2014 receives a first access request to the endpoint device (eg, endpoint device 2015) sent by the management controller 2021, the first access request being carried as an endpoint device (eg, endpoint device 2015) at the management subsystem 202
  • the endpoint proxy device 2014 converts to the physical address space of the computing subsystem in the computing subsystem according to the corresponding relationship of the saved address space (for example, the correspondence between the first address and the second address of the endpoint device 2015), for example Generating, by the first address, a second access request that carries the first address of the endpoint device in the computing subsystem, and forwarding the second access request to an endpoint device (eg, an endpoint device by using the PCIE switching module 2013) 2015).
  • the management controller 2021 is to access the memory space of the endpoint device 2015, and then sends an access request to the endpoint proxy device 2014 based on the memory address (D11-D12) assigned to the endpoint device 2015.
  • the endpoint proxy device 2014 receives the access request sent by the management controller 2021, converts it into the physical memory space (B11-B12) of the endpoint device 2015 based on the saved memory space correspondence, and based on the physical memory space of the endpoint device 2015,
  • the access request of the management controller 2021 is sent to the endpoint device 2015 through the PCIE switch module 2013.
  • the endpoint proxy device 2014 may also be located in the management controller 2021, and the management controller 2021 directly interacts with the endpoint proxy device 2014 to implement device information and Management command forwarding.
  • the endpoint proxy device 2014 includes an address management unit 20141 and a control unit 20142.
  • the address management unit 20141 is configured to store information of an endpoint device written by the central processor 2011 through a BIOS program, such as a B/D/F number, a physical I/O address space, and a physical memory address space of each endpoint device, and a device. Types and the like; and also store information of the address space allocated by the management controller 2021 for each endpoint device, establishing the physical I/O address space of each endpoint device and the I/O address space allocated by the management controller 2021. Correspondence relationship, and the correspondence between the physical memory address space of each endpoint device and the memory address space allocated by the management controller 2021.
  • the control unit 20142 is configured to receive the access request of the management controller 2021, and obtain the physical I/O address of the corresponding endpoint device from the address management unit 20141 according to the I/O address information or the memory address information carried in the access request. Corresponding physical memory address, based on the obtained specific physical I/O address or corresponding physical memory address, sends an access request of the management controller 2021 to the corresponding endpoint device. Specifically, after acquiring the specific physical I/O address or the corresponding physical memory address, the control unit 20142 constructs the TLP message, sends the packet to the PCIE switch module 2013 through the PCIE link, and is constructed by the PCIE switch module 2013. The TLP message is sent to the corresponding endpoint device.
  • the endpoint proxy device 2014 further includes a forwarding unit 20143 (ie, PCIE Core) for receiving initialization of the central processor 2011 through the BIOS program. , a base address space configuration, a resource allocation request, etc., and provide a standard PCIE transport layer service for the conversion unit 20142.
  • the forwarding unit 20143 is specifically configured to receive the TLP message generated by the control unit 20142 and send it to the PCIE switching unit 2013 when the access proxy device 2014 is configured to forward the access request of the management controller 2021. And, when the endpoint device returns the TLP packet, the TLP packet forwarded by the PCIE switching unit 2013 is received and sent to the control unit 20142.
  • FIG. 6 is a schematic structural diagram of a specific implementation of the forwarding unit 20143 in the endpoint proxy device 2014.
  • the forwarding unit 20143 includes a physical layer, a data link layer, and a transport layer, and a configuration unit (including but not limited to the configuration of I/O or Memory, etc.).
  • the forwarding unit 20143 implements the forwarding of the packet sent by the control unit 20142 through the physical layer, the data link layer, and the transport layer, and sends the TLP packet forwarded by the PCIE switching module 2013 to the control unit 20142.
  • FIG. 7 is a schematic structural diagram of a computer system 300 according to an embodiment of the present invention.
  • the computer system 300 includes a computing subsystem 301 and a management subsystem 302, the computing subsystem 301 including a central processor 3011, the management subsystem 302 including a management controller 3021 that connects endpoint devices (including endpoints Device 3015, endpoint device 3016, and/or Point device 3017) and endpoint proxy device 3014;
  • the computer system 301 further includes an endpoint proxy device 3014, the first port (not shown) of the endpoint proxy device 3014 is coupled to the central processor 3011 in the computing subsystem 301 via a PCIE link.
  • a second port (not shown) of the endpoint proxy device 3014 is coupled to the management controller 3021 in the management subsystem 302;
  • the central processing unit 3011 is configured to allocate device information of the endpoint device (eg, the endpoint device 3015) in the computing subsystem 301, and the endpoint device (eg, the endpoint device 3015) is in the computing subsystem Device information in 301 is written to the endpoint proxy device 3014, the device information in the computing subsystem 301 of the endpoint device (eg, endpoint device 3015) includes at least the endpoint device (eg, endpoint device 3015) in the Calculating first address information in subsystem 301;
  • the management controller 3021 is configured to determine, according to the device information in the computing subsystem, that the endpoint device (for example, the endpoint device 3015) is written in the endpoint proxy device 3014, according to the endpoint device (for example, The endpoint device 3015) assigns a second address of the endpoint device (eg, endpoint device 3015) in the management subsystem 302 at a first address in the computing subsystem 301 and the endpoint device (eg, an endpoint device) 3015) writing the second address in the management subsystem 302 to the endpoint proxy device 3014;
  • the endpoint device for example, the endpoint device 3015
  • the endpoint device 3015 assigns a second address of the endpoint device (eg, endpoint device 3015) in the management subsystem 302 at a first address in the computing subsystem 301 and the endpoint device (eg, an endpoint device) 3015) writing the second address in the management subsystem 302 to the endpoint proxy device 3014;
  • the endpoint proxy device 3014 configured to establish, after being written to the second address, a first address of the endpoint device (eg, endpoint device 3015) in the computing subsystem 301 with the endpoint device (eg, a correspondence between endpoint devices 3015) at a second address in the management subsystem 302;
  • the management controller 3021 is further configured to send a first access request, where the first access request carries a second address of the endpoint device (eg, the endpoint device 3015) in the management subsystem 302;
  • the endpoint proxy device 3014 is further configured to receive, by using the connection of the second port and the management controller 3021, the first access request sent by the management controller 3021, according to the Corresponding relationship generates a second access request carrying a first address of the endpoint device (eg, endpoint device 3015) in the computing subsystem 301, and the first connection is performed by the PCIE link of the first port A second access request is sent to the endpoint device (e.g., endpoint device 3015).
  • the endpoint device e.g., endpoint device 3015
  • the endpoint proxy device 3014 establishes a correspondence between the first address of the endpoint device (e.g., endpoint device 3015) in the computing subsystem 301 and the second address in the management subsystem 302, Upon receiving the first access request from the management device 3021 to the endpoint device (eg, the endpoint device 3015), generating a first address carrying the endpoint device (eg, the endpoint device 3015) in the computing subsystem 301 according to the correspondence relationship The second access request is sent to the endpoint device (e.g., endpoint device 3015).
  • the endpoint device e.g., endpoint device 3015
  • the management controller 3021 implements the sending of the endpoint device access request to the endpoint device, and the operation does not need to be dependent on the operating system, and does not need to perform different management configurations on different endpoint devices, thereby improving management of the endpoint device. Maintainability.
  • the central processing unit 3011 may scan the endpoint device (eg, the endpoint device according to an instruction of the basic input/output system BIOS during initialization of the computing subsystem 301). 3015) and the endpoint proxy device 3014, respectively assigning device information in the computing subsystem 301 to the endpoint device (eg, endpoint device 3015) and the endpoint proxy device 3014, and the endpoint device (eg, The device information in the computing subsystem 301 is written by the endpoint device 3015) to the endpoint proxy device 3014.
  • the endpoint device eg, the endpoint device according to an instruction of the basic input/output system BIOS during initialization of the computing subsystem 301). 3015
  • the endpoint proxy device 3014 respectively assigning device information in the computing subsystem 301 to the endpoint device (eg, endpoint device 3015) and the endpoint proxy device 3014, and the endpoint device (eg, The device information in the computing subsystem 301 is written by the endpoint device 3015) to the endpoint proxy device 3014.
  • the device information in the computing subsystem of the endpoint device may be at least one of the following: input/output I/O address information of the endpoint device, memory address information of the endpoint device, The bus/device/function B/D/F number of the endpoint device, or the device type information of the endpoint device.
  • the first address may be input/output I/O address information of the endpoint device, or may be memory memory address information of the endpoint device.
  • the central processing unit 3011 may use the PCIE link connected by the first port to the endpoint according to the allocated device information in the computing subsystem 301 of the endpoint proxy device 3014.
  • the proxy device 3014 writes to the endpoint device (eg, endpoint device 3015) The device information in the computing subsystem 301.
  • the management controller 3021 can also be connected to the central processing unit 3011 through the south bridge chip 3018 .
  • the central processing unit 3011 is specifically configured to notify, by the south bridge chip 3018, the device information of the endpoint device (for example, the endpoint device 3015) in the computing subsystem 301 to the management controller 3021;
  • the management controller 3021 writes the acquired device information of the endpoint device (eg, the endpoint device 3015) in the computing subsystem 301 to the endpoint proxy device 3014.
  • the device information in the computing subsystem 301 of the endpoint device eg, endpoint device 3015
  • the management controller 3021 can be notified in two ways.
  • the endpoint proxy device 3014 sends a notification message to the management controller 3021, and the management controller 3021 receives the notification message sent by the endpoint proxy device 3014, and determines the endpoint proxy device 3014 according to the notification message.
  • the device information in the computing subsystem 301 is written to the endpoint device (e.g., endpoint device 3015).
  • the management controller 3021 periodically sends a query message to the endpoint proxy device 3014, receives a response message of the query message sent by the endpoint proxy device 3014, and determines the message according to the response message of the query message.
  • the device information in the computing subsystem 301 is written to the endpoint device 3014 by the endpoint device (e.g., endpoint device 3015).
  • the second port of the endpoint proxy device 3014 and the management controller 3021 of the management subsystem 302 may be connected by the internal integrated circuit I2C.
  • the management controller 3021 assigns an I2C number to the endpoint proxy device 3014 and associates the first port according to the assigned I2C number.
  • An access request is sent to the endpoint proxy device 3014.
  • the second port of the endpoint proxy device 3014 and the management controller 3021 of the management subsystem 302 can also be connected by a PCIE link.
  • the management controller 3021 assigns the second address of the endpoint proxy device 3014 in the management subsystem 302.
  • the range of the second address includes a range of the second address of the endpoint device (eg, endpoint device 3015) in the management subsystem 302, and the management controller 3021 is configured according to the endpoint device (eg, the endpoint device 3015)
  • the second access address in the management subsystem 302 sends the first access request to the endpoint proxy device 3014.
  • first address may also be an address space of the endpoint device (for example, the endpoint device 3015) in the computing subsystem 301, such as the physical I/O address space or the physical memory address space described in Table 2 above.
  • the second address may be an address space corresponding to the first address, such as the management address space in Table 2.
  • the management controller 3021 accesses the address of the endpoint device (for example, the endpoint device 3015), it is usually a segment of the address space of the access device.
  • the embodiment of the present invention is expressed as a first address or a second address from a simplified perspective.
  • the first first may be an address space
  • the second address may also be an address space.
  • the computing subsystem 301 may further include a PCIE switching device 3013, where the endpoint device (for example, the endpoint device 3015) is connected to the central processing unit 3011 through the PCIE switching device, correspondingly
  • the first port of the endpoint proxy device 3014 is connected to the PCIE switching device via a PCIE link to connect to the central processor 3011.
  • the PCIE switching device 3013 may be the PCIE switching module 2013 in FIG. 3, which may be implemented by hardware or software. The embodiment of the present invention does not limit the specific implementation manner.
  • the endpoint proxy device 3014 may be located in the computing subsystem 301 or in the management controller 3021 of the management subsystem 302.
  • FIG. 7 or FIG. 8 can also be implemented by referring to the implementation manners of the embodiments shown in FIG. 2 to FIG.
  • FIG. 9 is a diagram of accessing an endpoint device in a computer system according to an embodiment of the present invention. Schematic diagram of the method flow.
  • the computing subsystem includes a central processing unit, the management subsystem includes a management controller, and the central processing unit is configured to connect to the endpoint device.
  • the method includes:
  • Step 900 The central processor allocates device information in the computing subsystem to the endpoint device, and writes device information in the computing subsystem of the endpoint device into the computing subsystem.
  • the device information of the endpoint device in the computing subsystem includes at least first address information of the endpoint device in the computing subsystem;
  • Step 902 After determining that the endpoint device is written into the device information of the endpoint device in the computing subsystem, the management controller is first according to the endpoint device in the computing subsystem. Addressing a second address of the endpoint device in the management subsystem, and writing a second address of the endpoint device in the management subsystem to the endpoint proxy device;
  • Step 904 After the endpoint proxy device is written to the second address, establish a first address of the endpoint device in the computing subsystem and a second address of the endpoint device in the management subsystem. Corresponding relationship between the addresses; the first port of the endpoint proxy device is connected to the central processor in the computing subsystem through a PCIE link, and the second port of the endpoint proxy device is in the management subsystem The management controller is connected;
  • Step 906 The management controller sends a first access request, where the first access request carries a second address of the endpoint device in the management subsystem.
  • Step 908 The endpoint proxy device receives the first access request sent by the management controller by using the connection between the second port and the management controller, and generates, according to the correspondence, the device that carries the endpoint device. Determining a second access request of the first address in the subsystem, and transmitting the second access request to the endpoint device by using the PCIE link connected by the first port.
  • the endpoint proxy device establishes a correspondence between the first address of the endpoint device in the computing subsystem and the second address in the management subsystem, and receives the management controller to the endpoint device.
  • the first access request is generated, the carrying A second access request of the endpoint device at the first address in the computing subsystem and sent to the endpoint device.
  • the management controller sends the endpoint device access request to the endpoint device, and the operation does not need to depend on the operating system, and does not need to perform different management configurations on different endpoint devices, thereby improving the management of the endpoint device. Maintenance.
  • the method may further include:
  • the central processor scans the endpoint device and the endpoint proxy device according to an instruction of the basic input/output system BIOS during the initialization of the computing subsystem, respectively, for the endpoint device and the endpoint proxy device to be allocated Computing device information in the subsystem and writing device information of the endpoint device in the computing subsystem to the endpoint proxy device.
  • the device information in the computing subsystem of the endpoint device may be at least one of the following: input/output I/O address information of the endpoint device, memory address information of the endpoint device, The bus/device/function B/D/F number of the endpoint device, or the device type information of the endpoint device.
  • the first address may be input/output I/O address information of the endpoint device, or may be memory memory address information of the endpoint device.
  • the central processor writes to the endpoint proxy device by using the PCIE link connected by the first port according to the allocated device information of the endpoint proxy device in the computing subsystem.
  • the management controller and the central processor are connected by a south bridge chip, and the central processor notifies the management of the device information of the endpoint device in the computing subsystem by the south bridge chip And a controller that writes the obtained device information of the endpoint device in the computing subsystem to the endpoint proxy device through a connection of the second port.
  • the management controller can be notified in two ways.
  • the endpoint proxy device sends a notification message to the management controller after being written to the device information of the endpoint device in the computing subsystem, and the management controller receives the endpoint proxy device to send The notification message, determining the endpoint generation according to the notification message Device information written by the endpoint device in the computing subsystem is written in the device.
  • the other is that the management controller periodically sends a query message to the endpoint proxy device, receives a response message of the query message sent by the endpoint proxy device, and determines the endpoint according to the response message of the query message.
  • the device information written by the endpoint device in the computing subsystem is written in the proxy device.
  • the second port of the endpoint proxy device is connected to the management controller in the management subsystem through the internal integrated circuit I2C, and the method further includes:
  • the management controller allocates an I2C number to the endpoint proxy device
  • the management controller sends the first access request to the endpoint proxy device according to an I2C number of the endpoint proxy device.
  • the second port of the endpoint proxy device is connected to the management controller in the management subsystem through a PCIE link, and the method further includes:
  • the management controller is further configured to allocate a second address of the endpoint proxy device in the management subsystem, the range of the second address of the endpoint proxy device in the management subsystem including the endpoint device a range of the second address in the management subsystem, the management controller is specifically configured to send the first access request to the endpoint according to the second address of the endpoint device in the management subsystem Agent device.
  • first address may also be an address space of the endpoint device in the computing subsystem 301, such as the physical I/O address space or the physical memory address space described in Table 2 above.
  • the second address may be an address space corresponding to the first address, such as the management address space in Table 2.
  • the management controller accesses the address of the endpoint device, it is usually a segment of the address space of the access device.
  • the embodiment of the present invention is expressed as a first address or a second address from a simplified perspective. In actual implementation, the first first may be a segment.
  • the address space, the second address can also be an address space.
  • the computing subsystem further includes a PCIE switching device, where the endpoint device is connected to the central processor by using the PCIE switching device, where the first port of the endpoint proxy device is The PCIE switching device is connected through a PCIE link to connect to the central processor.
  • the PCIE switching device 3013 may be the PCIE switching module 2013 in FIG. 3, which may be implemented by hardware or software. The embodiment of the present invention does not limit the specific implementation manner.
  • the endpoint proxy device is located in the computing subsystem or in a management controller of the management subsystem.
  • the disclosed systems, devices, and methods may be implemented in other manners.
  • the device embodiments described above are merely illustrative.
  • the division of the unit is only a logical function division.
  • there may be another division manner for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, or an electrical, mechanical or other form of connection.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place. Square, or it can be distributed to multiple network elements. Some or all of the units may be selected according to actual needs to achieve the objectives of the embodiments of the present invention.
  • each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
  • the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium.
  • the technical solution of the present invention contributes in essence or to the prior art, or all or part of the technical solution may be embodied in the form of a software product stored in a storage medium.
  • a number of instructions are included to cause a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like. .

Abstract

本发明实施例提供一种对计算机系统中端点设备进行访问的方法和计算机系统,现有技术在对计算机设备中端点设备进行管理时,需要依赖操作系统,不利于维护的问题。本发明实施例通过上述计算机系统中端点设备进行访问的方法和计算机系统,端点代理设备建立端点设备在所述计算子系统中的第一地址与在所述管理子系统的第二地址之间的对应关系,在接收到管理控制器对端点设备第一访问请求时,根据所述对应关系生成携带所述端点设备在所述计算子系统中的第一地址的第二访问请求,并发送给所述端点设备。实现了管理控制器对端点设备访问请求的发送到所述端点设备,且不需要操作依赖于操作系统,提高了对端点设备进行管理时的可维护性。

Description

计算机系统和计算机系统中端点设备访问的方法 技术领域
本发明涉及信息技术领域,特别涉及对计算机系统中端点设备访问的方法和计算机系统。
背景技术
数据中心通常用以太网技术构建局域网,用FC(Fibre Channel,光纤通道技术)技术构建SAN(Storage Area Network and SAN Protocols,存储区域网络及其协议),计算机设备以太网卡用以接入局域网,光纤通道主机总线适配器HBA(Host Bus Adapter,主机总线适配器)用以接入SAN。多种类型的接口卡和网络设备削弱了业务灵活性,增加了数据中心网络管理复杂性、增加了设备成本和电力等方面的开销。FCoE(Fibre Channel over Ethernet,以太网光纤通道)实现了以太网帧承载FC帧,使得FC SAN和以太网局域网可共享同一个单一的、集成的网络基础设施,解决了不同类型网络共存所带来的问题,实现了网络基础设施整合、精简的目标。
计算机设备中,网卡、RAID(Redundant Arrays of Independent Disks,冗余磁盘阵列)卡、SSD(Solid State Drives,固态硬盘)卡和GPU(Graphics Processing Unit,图形处理器)卡等PCIE(Peripheral Component Interconnect express,快捷外围部件互连标准)端点设备。
现有技术中计算机设备的管理子系统通过与运行在操作系统上的多个管理软件模块通信来实现对各PCIE端点设备的配置管理,各管理软件模块分别对应管理各个PCIE端点设备。对多个不同种类的PCIE端点设备的配置管理,需部署多个管理软件模块,导致部署复杂且不易于后续升级维护。
发明内容
本发明实施例提供一种对计算机系统中端点设备进行访问的方法和计算机系统,以实现不依赖操作系统对端点设备的配置管理。
本发明实施例的第一方面,提供了一种计算机系统,包括计算子系统和管理子系统,所述计算子系统包括中央处理器,所述管理子系统包括管理控制器,所述中央处理器用于连接端点设备;
所述计算机系统还包括端点代理设备,所述端点代理设备的第一端口通过PCIE链路连接所述计算子系统中的所述中央处理器,所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器连接;
所述中央处理器,用于分配所述端点设备在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的设备信息写入所述端点代理设备,所述端点设备在所述计算子系统中的设备信息至少包括所述端点设备在所述计算子系统中的第一地址信息;
所述管理控制器,用于在确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息后,根据所述端点设备在所述计算子系统中的第一地址分配所述端点设备在所述管理子系统中的第二地址,并将所述端点设备在所述管理子系统中的第二地址写入所述端点代理设备;
所述端点代理设备,用于在被写入所述第二地址之后,建立所述端点设备在所述计算子系统中的第一地址与所述端点设备在所述管理子系统中的第二地址之间的对应关系;
所述管理控制器还用于发送第一访问请求,所述第一访问请求携带所述端点设备在所述管理子系统中的的第二地址;
所述端点代理设备还用于通过所述第二端口与所述管理控制器的连接接收所述管理控制器发送的所述第一访问请求,根据所述对应关系生成携带所述端点设备在所述计算子系统中的第一地址的第二访问请求,并通过 所述第一端口连接的所述PCIE链路将所述第二访问请求发送给所述端点设备。
结合本发明实施例的第一方面,在本发明实施例的第一方面的第一种可能的实现方式中,
所述中央处理器具体用于在所述计算子系统初始化过程中,根据基本输入输出系统BIOS的指令扫描到所述端点设备和所述端点代理设备,分别为所述端点设备和所述端点代理设备分配在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的设备信息写入所述端点代理设备。
结合本发明实施例的第一方面的第一种可能的实现方式,在本发明实施例的第一方面的第二种可能的实现方式中,所述中央处理器具体用于根据分配的所述端点代理设备的在所述计算子系统中的设备信息,通过所述第一端口连接的所述PCIE链路向所述端点代理设备写入所述端点设备在所述计算子系统中的设备信息。
结合本发明实施例的第一方面的第一种可能的实现方式,在本发明实施例的第一方面的第三种可能的实现方式中,所述管理控制器与所述中央处理器通过南桥芯片连接;
所述中央处理器具体用于通过所述南桥芯片将所述端点设备在所述计算子系统中的设备信息通知到所述管理控制器;
所述管理控制器还用于将获取到的所述端点设备在所述计算子系统中的设备信息通过所述第二端口的连接写入所述端点代理设备。
结合本发明实施例的第一方面的第一种、第二中和第三种可能的实现方式,在本发明实施例的第一方面的第四种可能的实现方式中,
所述端点代理设备还用于在被写入所述端点设备在所述计算子系统中的设备信息后,向所述管理控制器发送通知消息;
所述管理控制器具体用于接收所述端点代理设备发送的所述通知消 息,根据所述通知消息确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。
结合本发明实施例的第一方面的第一种、第二中和第三种可能的实现方式,在本发明实施例的第一方面的第五种可能的实现方式中,
所述管理控制器具体用于周期性地向所述端点代理设备发送查询消息,接收所述端点代理设备发送的所述查询消息的响应消息,根据所述查询消息的响应消息确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。
结合本发明实施例的第一方面的第一种至第五种可能的实现方式,在本发明实施例的第一方面的第六种可能的实现方式中,
所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过内部集成电路I2C连接;
所述管理控制器还用于为所述端点代理设备分配I2C号;
所述管理控制器具体用于根据所述端点代理设备的I2C号,将所述第一访问请求发送到所述端点代理设备。
结合本发明实施例的第一方面的第一种至第五种可能的实现方式,在本发明实施例的第一方面的第七种可能的实现方式中,
所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过PCIE链路连接;
所述管理控制器还用于分配所述端点代理设备在所述管理子系统中的第二地址,所述端点代理设备在所述管理子系统中的第二地址的范围包含所述端点设备在所述管理子系统中的第二地址的范围;
所述管理控制器具体用于根据所述端点设备在所述管理子系统中的第二地址,将所述第一访问请求发送到所述端点代理设备。
结合本发明实施例的第一方面的第一种至第七种可能的实现方式,在本发明实施例的第一方面的第八种可能的实现方式中,
所述计算子系统还包括PCIE交换设备,所述端点设备通过所述PCIE交换设备连接到所述中央处理器;
所述端点代理设备的第一端口通过PCIE链路连接所述PCIE交换设备以连接到所述中央处理器。
结合本发明实施例的第一方面的第一种至第八种可能的实现方式,在本发明实施例的第一方面的第九种可能的实现方式中,
所述端点代理设备位于所述计算子系统中;或,
所述端点代理设备位于所述管理子系统的管理控制器中。
结合本发明实施例的第一方面的第一种至第九种可能的实现方式,在本发明实施例的第一方面的第十种可能的实现方式中,
所述端点设备在所述计算子系统中的设备信息包括下述信息中的至少一项:
所述端点设备的输入输出I/O地址信息,所述端点设备的内存Memory地址信息,所述端点设备的总线/设备/功能B/D/F号,或所述端点设备的设备类型信息。
本发明实施例的第二方面,提供了一种对计算机系统中端点设备进行访问的方法,包括计算子系统和管理子系统,所述计算子系统包括中央处理器,所述管理子系统包括管理控制器,所述中央处理器用于连接端点设备;所述方法包括:
所述中央处理器为所述端点设备分配在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的设备信息写入所述计算子系统中的端点代理设备中,所述端点设备在所述计算子系统中的设备信息至少包括所述端点设备在所述计算子系统中的第一地址信息;
所述管理控制器在确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息后,根据所述端点设备在所述计算子系统中的第一地址分配所述端点设备在所述管理子系统中的第二地址,并将所述端 点设备在所述管理子系统中的第二地址写入所述端点代理设备;
所述端点代理设备在被写入所述第二地址之后,建立所述端点设备在所述计算子系统中的第一地址与所述端点设备在所述管理子系统中的第二地址之间的对应关系;所述端点代理设备的第一端口通过PCIE链路连接所述计算子系统中的所述中央处理器,所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器连接;
所述管理控制器发送第一访问请求,所述第一访问请求携带所述端点设备在所述管理子系统中的的第二地址;
所述端点代理设备通过所述第二端口与所述管理控制器的连接接收所述管理控制器发送的所述第一访问请求,根据所述对应关系生成携带所述端点设备在所述计算子系统中的第一地址的第二访问请求,并通过所述第一端口连接的所述PCIE链路将所述第二访问请求发送给所述端点设备。
结合本发明实施例的第二方面,在本发明实施例的第二方面的第一种可能的实现方式中,所述方法还包括:
所述中央处理器在所述计算子系统初始化过程中,根据基本输入输出系统BIOS的指令扫描到所述端点设备和所述端点代理设备,分别为所述端点设备和所述端点代理设备分配在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的设备信息写入所述端点代理设备。
结合本发明实施例的第二方面的第一种可能的实现方式,在本发明实施例的第二方面的第二种可能的实现方式中,
所述中央处理器根据分配的所述端点代理设备的在所述计算子系统中的设备信息,通过所述第一端口连接的所述PCIE链路向所述端点代理设备写入所述端点设备在所述计算子系统中的设备信息。
结合本发明实施例的第二方面的第一种可能的实现方式,在本发明实施例的第二方面的第三种可能的实现方式中,所述管理控制器与所述中央处理器通过南桥芯片连接,所述方法还包括:
所述中央处理器通过所述南桥芯片将所述端点设备在所述计算子系统中的设备信息通知到所述管理控制器;
所述管理控制器将获取到的所述端点设备在所述计算子系统中的设备信息通过所述第二端口的连接写入所述端点代理设备。
结合本发明实施例的第二方面的第一种、第二中和第三种可能的实现方式,在本发明实施例的第二方面的第四种可能的实现方式中,
所述方法还包括:
所述端点代理设备在被写入所述端点设备在所述计算子系统中的设备信息后,向所述管理控制器发送通知消息;
所述管理控制器接收所述端点代理设备发送的所述通知消息,根据所述通知消息确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。
结合本发明实施例的第二方面的第一种、第二中和第三种可能的实现方式,在本发明实施例的第二方面的第五种可能的实现方式中,
所述方法还包括:
所述管理控制器周期性地向所述端点代理设备发送查询消息,接收所述端点代理设备发送的所述查询消息的响应消息,根据所述查询消息的响应消息确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。
结合本发明实施例的第二方面的第一种至第五种可能的实现方式,在本发明实施例的第二方面的第六种可能的实现方式中,
所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过内部集成电路I2C连接,所述方法还包括:
所述管理控制器为所述端点代理设备分配I2C号;
所述管理控制器根据所述端点代理设备的I2C号,将所述第一访问请求发送到所述端点代理设备。
结合本发明实施例的第二方面的第一种至第五种可能的实现方式,在本发明实施例的第二方面的第七种可能的实现方式中,
所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过PCIE链路连接,所述方法还包括:
所述管理控制器还用于分配所述端点代理设备在所述管理子系统中的第二地址,所述端点代理设备在所述管理子系统中的第二地址的范围包含所述端点设备在所述管理子系统中的第二地址的范围;
所述管理控制器具体用于根据所述端点设备在所述管理子系统中的第二地址,将所述第一访问请求发送到所述端点代理设备。
结合本发明实施例的第二方面的第一种至第七种可能的实现方式,在本发明实施例的第二方面的第八种可能的实现方式中,
所述计算子系统还包括PCIE交换设备,所述端点设备通过所述PCIE交换设备连接到所述中央处理器;
所述端点代理设备的第一端口通过PCIE链路连接所述PCIE交换设备以连接到所述中央处理器。
结合本发明实施例的第二方面的第一种至第八种可能的实现方式,在本发明实施例的第二方面的第九种可能的实现方式中,
所述端点代理设备位于所述计算子系统中;或,
所述端点代理设备位于所述管理子系统的管理控制器中。
结合本发明实施例的第二方面的第一种至第九种可能的实现方式,在本发明实施例的第二方面的第十种可能的实现方式中,
所述端点设备在所述计算子系统中的设备信息包括下述信息中的至少一项:
所述端点设备的输入输出I/O地址信息,所述端点设备的内存Memory地址信息,所述端点设备的总线/设备/功能B/D/F号,或所述端点设备的设备类型信息。
通过上述计算机系统中端点设备进行访问的方法和计算机系统,端点代理设备建立端点设备在所述计算子系统中的第一地址与在所述管理子系统的第二地址之间的对应关系,在接收到管理控制器对端点设备第一访问请求时,根据所述对应关系生成携带所述端点设备在所述计算子系统中的第一地址的第二访问请求,并发送给所述端点设备。实现了管理控制器对端点设备访问请求的发送到所述端点设备,且不需要操作依赖于操作系统,不需要对不同的端点设备进行不同的管理配置,提高了对端点设备进行管理时的可维护性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中一种计算机设备的基本结构示意图;
图2为本发明实施例提供的一种计算机设备200的结构示意图;
图3为本发明实施例提供的另一种计算机设备200的结构示意图;
图4为本发明实施例中端点代理设备2014的结构示意图;
图5为本发明实施例中端点代理设备2014的另一种实现方式结构示意图;
图6为本发明实施例中端点代理设备2014的进一步实现方式结构示意图;
图7为本发明实施例一种计算机系统300的结构示意图;
图8为本发明实施例一种计算机系统300的另一种实现方式结构示意图;
图9为本发明实施例对计算机系统中端点设备进行访问的方法的流程 示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
参考图1,图1为现有技术中一种计算机设备的基本结构示意图。如图1所示,计算机设备100包含管理子系统102和计算子系统101。计算子系统101包含一个或者多个计算CPU1011,多个计算CPU通过CPU总线或者互联芯片进行连接,每一个计算CPU都可以访问系统所有的设备。同时,计算子系统的CPU与为操作系统提供存储空间的内存1012(MEMORY)连接。计算子系统的CPU1011直接或使用PCIE链路通过PCIE交换模块1013连接一个或者多个PCIE端点设备,以扩展计算子系统的功能。例如,网卡作为端点设备1015提供以太网络接入能力,RAID卡作为端点设备1016提供存储冗余功能,GPU卡作为端点设备1017提供图形化输出能力,不同的计算机设备也可以根据需要设计由用户来选择扩展终端设备种类。计算子系统的CPU通过南桥芯片1018或者直接连接的磁盘1019(图1以通过南桥芯片1018连接磁盘1019为例),所述磁盘1019一般作为系统存储设备。计算子系统上电后,计算子系统的CPU,例如主用CPU1011,会运行固定的BIOS(basic input/output system,基本输入输出系统)程序,由BIOS完成计算子系统硬件的初始化、PCIE的端点设备发现和配置、加载操作系统等。在操作系统启动后,计算子系统由加载的操作系统进行控制。
本发明实施例中,所述计算机设备100包括各种具有计算或存储功能的计算机设备,可以包括各种服务器,例如刀片服务器、机架服务器等等,也可以包括使用各种操作系统的服务器,例如使用Windows或Linux操作系 统的服务器等等。
管理控制器MCPU1021是管理子系统的执行部件,通过各种传感器收集计算机设备100各个部件的运行信息和故障信息,以及对计算机设备100中的端点设备进行配置管理,例如配置或管理RAID卡的级别,配置或管理网卡的MAC地址,配置或管理PF(Physical Fuction,物理功能)等。MCPU1021连接计算子系统的南桥芯片1018或者直连计算CPU1011,实现KVM功能,或者实现计算子系统101和管理子系统102之间的通信。
计算机设备100上电后,首先是管理子系统102先上电,在管理子系统102上电并完成初始化后,管理子系统102控制计算子系统101上电,计算子系统101完成上电、硬件检测和启动操作系统后,计算机设备100开始运行。
BIOS程序是储存在计算机设备上的程序,在计算机设备的计算子系统上电后运行,由计算机设备的CPU调取BIOS程序来运行。BIOS在运行后主要完成三部分的功能,分别是:
一、在计算机设备的计算子系统上电后对硬件部分的检测,也叫做POST(Power On Self Test,加电自检),功能是检查计算机设备是否良好,通常完整的POST自检将包括对CPU,基本内存,扩展内存,主板,CMOS存储器,串并口,显示卡,软硬盘子系统及键盘等进行测试,一旦在自检中发现问题,系统将给出提示信息或鸣笛警告。自检中如发现有错误,将按两种情况处理:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成,不能给出任何提示或信号;对于非严重故障则给出提示或声音报警信号,等待用户处理;
二、初始化,包括创建中断向量、设置寄存器、对一些外部设备,例如PCIE的端点设备,进行初始化和检测等;在扫描和初始化PCIE端点设备的过程中,通常是采用深度优先算法,发现计算机设备中所有PCIE端点设备,并为每个PCIE端点设备分配B/D/F(Bus/Device/Function,总线/设备/功能)号、I/O地址空间和Memory地址空间;
三、引导程序,即引导和启动操作系统。BIOS先从软盘或硬盘的开始扇区读取引导记录,如果没有找到,则会在显示器上显示没有引导设备,如果找到引导记录会把电脑的控制权转给引导记录,由引导记录把操作系统载入计算机设备,在计算机设备启动完成后,BIOS程序运行完成,计算子系统的控制权交由引导记录载入的操作系统,运行操作系统的程序。
现有技术中,在对PCIE端点设备配置管理时,计算机设备的管理子系统通过与运行在操作系统上的多个管理软件模块通信来实现对各PCIE端点设备的配置管理,各管理软件模块分别对应管理各个PCIE端点设备。对多个不同种类的PCIE端点设备的配置管理,需部署多个管理软件模块,且各管理软件模块本身需由各PCIE设备厂商提供或由服务器厂商针对各PCIE设备开发(以适配不同的操作系统类型),导致部署复杂且不易于后续升级维护。
本发明实施例提供一种技术方案,对上述计算机设备100进行改进,解决现有技术中对端点设备管理时需要依赖操作系统才能实现的问题,以提高计算机设备的管理子系统在对PCIE端点设备进行管理时的可维护性。
如图2所示,图2为本发明实施例提供的一种计算机设备200的结构示意图。计算机设备200包括计算子系统201和管理子系统202,计算子系统201包括中央处理器2011、内存2012、PCIE交换模块2013、端点设备2015、端点设备2016、端点设备2017、南桥芯片2018等;管理子系统202包括管理控制器2021和内存2022。
本发明实施例在计算机设备200中新增一个端点代理设备2014,例如一个PCIE端点代理设备。该端点代理设备2014可以是一个芯片,也可以是处理器的一部分,或独立的端点设备(例如设备卡)等等。该端点代理设备2014分别与管理控制器2021和PCIE交换模块2013相连。
其中,所述端点代理设备2014可以通过PCIE链路通过计算子系统201中的PCIE交换模块与CPU2011相连,也可以与CPU2011直接相连,或者直 接与南桥芯片2018相连。例如,端点代理设备2014的第一端口(PCIE端口)通过PCIE链路与CPU2011相连,或端点代理设备2014的第一端口(PCIE端口)通过PCIE链路通过PCIE交换模块与CPU2011相连。图2以端点代理设备2014通过PCIE交换模块与CPU2011相连为例进行说明。
所述端点代理设备2014通过标准总线或者私有总线(例如PCIE总线等)与管理子系统102的管理控制器2021相连。例如,端点代理设备2014的第二端口(PCIE端口)通过PCIE链路与与管理子系统102的管理控制器2021相连,或端点代理设备2014的第二端口(I2C端口)通过I2C链路与管理子系统102的管理控制器2021相连。管理控制器2021通过端点代理设备2014间接访问计算子系统201中的端点设备,例如端点设备2015等,实现带外配置(包括但不限于配置RAID卡的级别,网卡的MAC地址,PF类型等)、监控系统所有端点设备的运行状态(包括但不限于监控RAID卡下的硬盘健康状态,网卡链路状态,统计计数器等),从而能够达到在计算子系统201的CPU上通过管理工具带内管理端点设备的效果,但同时又不依赖计算机设备的操作系统,减少了对外部的依赖性,不需要对不同的端点设备进行不同的管理配置,且不需要各管理软件模块由各PCIE设备厂商提供或由服务器厂商针对各PCIE设备开发,提升了计算机设备的可维护性。
需要说明的是,上述第一端口和第二端口在图中未示出,应理解,第一端口和第二端口是端点代理设备的端口,其具体实现可以有多种的实现方式,包括但不限于通过具体的硬件接口,或通过具备通信功能的软件接口来实现,本发明实施例不限定接口的具体实现方式。
可选的,本发明实施例中的端点代理设备2014,和计算机设备中端点设备(例如端点设备2015)一样,遵循PCIE标准进行通信。
以图2所示的示例为例,中央处理器2011通过BIOS芯片中的BIOS程序在计算子系统201启动阶段能发现端点代理设备2014,以及端点设备2015、端点设备2016和端点设备2017,并根据每个端点设备的要求进行配 置,以及对输入/输出资源、内存资源分配等。对于端点设备2015、端点设备2016和端点设备2017,中央处理器2011通过BIOS程序进行初始化,采用深度优先算法,发现端点设备2015、端点设备2016和端点设备2017,并为每个端点设备分配B/D/F号、I/O地址空间或Memory地址空间等。其中,所述I/O地址空间可以为本发明实施例中端点设备(例如端点设备2015)在所述计算子系统201中的第一地址信息;或者,所述Memory地址空间也可以为本发明实施例中端点设备(例如端点设备2015)在所述计算子系统201中的第一地址信息。
中央处理器2011通过BIOS程序在对端点代理设备2014初始化,也是采用采用深度优先算法,为端点代理设备2014分配B/D/F号、I/O和Memory空间等。同时,中央处理器2011通过BIOS程序能够识别出端点代理设备2014的类型,即识别出端点代理设备2014是代理设备,使得CPU2011能够将端点设备(例如端点设备2015、端点设备2016、端点设备2017)的设备信息写入端点识别出的端点代理设备。根据PCIE标准的定义,每个PCIE的端点设备必须支持64个字节的配置空间,例如范围为0x00-0x3f,
其中,在08H的Class Code字段定义了EP设备的类型,假设Class Code代码为“1111”的为代理设备类型,Class Code代码不是“1111”的端点设备(例如端点设备2015)。中央处理器2011通过BIOS程序读取该Class Code字段,就能够识别每个PCIE端点设备的类型,包括能够识别出端点代理设备2014为代理设备的类型,。
中央处理器2011通过BIOS程序完成计算机设备200中计算子系统201所有的端点设备初始化后,将计算子系统201中除端点代理设备2014之外的端点设备(例如端点设备2015、端点设备2016和端点设备2017等)的设备信息写入所述端点代理设备2014中。具体的,可以是所述中央处理器2011通过端点代理设备上的第一端口,以及所述第一端口连接的PCIE链路将端点设备(例如端点设备2015、端点设备2016和端点设备2017等)的 设备信息写入所述端点代理设备2014中。写入端点代理设备2014中的其它端点设备的设备信息包括但不限于:每个端点设备的B/D/F号、I/O地址空间、Memory地址空间或设备类型等。例如可以是写入端点设备2015的B/D/F号和I/O地址空间,也可以是写入端点设备2016的B/D/F号和memory地址空间,或者是可以是写入端点设备2015的B/D/F号,I/O地址和memory地址空间。
端点代理设备2014保存中央处理器2011通过BIOS程序写入的端点设备的设备信息,并通过中断的方式通知管理子系统202中的管理控制器2021,管理控制器2021根据端点代理设备2014的通知,确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。
具体的,可以是端点代理设备2014在被写入端点设备(例如端点设备2015)在所述计算子系统201中的设备信息后,向所述管理控制器2021发送通知消息,所述管理控制器2021接收所述端点代理设备2014发送的所述通知消息,根据所述通知消息确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。
管理子系统202中的管理控制器2021也可以通过查询的方式获取端点代理设备2014中被写入端点设备的设备信息。例如,所述管理控制器2021周期性地向所述端点代理设备2014发送查询消息,在所述端点代理设备2014被写入端点设备的设备信息时,接收所述端点代理设备2014发送的所述查询消息的响应消息,所述响应消息包含所述端点代理设备2014中写入的端点设备的设备信息,所述管理控制器2021根据所述查询消息的响应消息确定所述端点代理设备2014中被写入所述端点设备在所述计算子系统中的设备信息。
在本发明实施例的一种实现方式中,所述端点代理设备2014通过第一端口与PCIE交换模块2013相连。具体的,所述端点代理设备2014的第一端 口可以通过PCIE链路连接所述PCIE交换模块2013,并通过所述交换模块2013与所述中央处理器2011相连。
作为可选的实现方式,本发明实施例中,所述端点代理设备2014通过第二端口与管理控制器2021相连。具体的,所述端点代理设备2014的第二端口(I2C端口)通过I2C(Inter-Integrated Circuit)链路与所述管理控制器2021相连;或所述端点代理设备2014的第二端口(PCIE端口)通过PCIE链路,与所述管理控制器2021相连。当所述端点代理设备2014的第二端口与所述管理控制器2021通过I2C链路连接时,所述管理控制器2021为所述端点代理设备2014分配I2C号,并根据所述端点代理设备2014的I2C号,将对端点设备(例如端点设备2015)的访问请求发送到所述端点代理设备。当所述端点代理设备2014的第二端口与所述管理控制器2021通过PCIE链路连接时,所述管理控制器2021分配所述端点代理设备2014在所述管理子系统202中的第二地址,所述端点代理设备2014在所述管理子系统202中的第二地址的范围包含端点设备(包括端点设备2015、端点设备2016、端点设备2016)在所述管理子系统中202中的地址范围。所述管理控制器2021根据所述端点代理设备2014在所述管理子系统中的第二地址,将对端点设备(例如端点设备2015)的访问请求发送到所述端点代理设备。
作为一种可选的实现方式,中央处理器2011通过BIOS程序完成计算机设备200中计算子系统201所有的端点设备设备后,可以将计算子系统201中除端点代理设备2014之外的端点设备的设备信息,中央处理器2011通过南桥芯片2018写入管理子系统202中的管理控制器2021中,然后由管理控制器2021通过所述管理控制器2021的第二端口将所述端点设备在计算子系统201中的设备信息写入端点代理设备2014中。
管理子系统202中的管理控制器2021获取计算子系统201中除所述端点代理设备2014之外的所有端点设备的设备信息后,为每个端点设备分配 管理子系统的地址空间(包括输入/输出I/O地址空间,或内存memory地址空间)。具体的,可以是管理控制器2021根据所述端点设备(例如端点设备2015)在所述计算子系统201中的第一地址分配所述端点设备(例如端点设备2015)在所述管理子系统202中的第二地址,该第二地址可以是I/O地址空间或memory地址空间。管理控制器2021根据所述端点设备2014在所述计算子系统201中的第一地址分配所述端点设备(例如端点设备2015)在所述管理子系统202中的第二地址后,将所述端点设备(例如端点设备2015)在所述管理子系统202中的第二地址写入所述端点代理设备2014中。端点代理设备2014建立每个端点设备(例如端点设备2015)在管理子系统202的地址空间,例如所述第二地址,与每个端点设备(例如端点设备2015)在计算子系统202的地址空间,例如所述第一地址,之间的对应关系。这种对应关系可以如表1所示:
Figure PCTCN2015090144-appb-000001
表1
表1中,管理控制器2021为端点设备2015分配的管理I/O地址空间A11~A12与端点设备2015的物理I/O地址空间C11~C12大小相同且对应,管理控制器2021为端点设备2015分配的管理memory地址空间B11~B12与端点设备2015的物理memory地址空间D11~D12大小相同且对应。管理控制器2021为其它端点设备分配的管理地址空间,与端点设备2015分配的管理地址空间类同,不再赘述。
管理控制器2021能够根据分配的所述地址空间,通过所述端点代理设备2014访问端点设备,例如访问端点设备2015、端点设备2016和端点设 备2017等,实现对端点设备的配置或管理。
所述端点代理设备2014接收管理控制器2021发送的对端点设备(例如端点设备2015)的第一访问请求,该第一访问请求携带为端点设备(例如端点设备2015)在所述管理子系统202中分配的地址空间,例如所述第二地址。所述端点代理设备2014根据保存的地址空间的对应关系(例如所述端点设备2015的第一地址与第二地址之间的对应关系),转换为端点设备在计算子系统的物理地址空间,例如所述第一地址,生成携带所述端点设备在所述计算子系统中的第一地址的第二访问请求,并通过PCIE交换模块2013将所述第二访问请求转发给端点设备(例如端点设备2015)。例如,管理控制器2021要访问端点设备2015的memory空间,则基于对端点设备2015分配的memory地址(D11~D12),发送访问请求到端点代理设备2014。端点代理设备2014接收到管理控制器2021发送的访问请求,基于保存的memory空间对应关系,转换为端点设备2015的物理memory空间(B11~B12),并基于该端点设备2015的物理memory空间,将管理控制器2021的访问请求通过PCIE交换模块2013发送给端点设备2015。
作为一种可选的实现方式,如图3所示,所述端点代理设备2014也可以位于所述管理控制器2021中,所述管理控制器2021与端点代理设备2014直接交互,实现设备信息和管理命令的转发。
具体的,如图4所示,所述端点代理设备2014包括地址管理单元20141和控制单元20142。其中,地址管理单元20141用于存储中央处理器2011通过BIOS程序写入的端点设备的信息,例如每个端点设备的B/D/F号、物理I/O地址空间和物理Memory地址空间,设备类型等;并且还存储管理控制器2021写入的为每个端点设备分配的地址空间的信息,建立每个端点设备的物理I/O地址空间与管理控制器2021分配的I/O地址空间的对应关系,以及每个端点设备的物理memory地址空间与管理控制器2021分配的memory地址空间的对应关系。
控制单元20142用于接收管理控制器2021的访问请求,根据访问请求中携带的I/O地址信息或memory地址信息,从所述地址管理单元20141中获取对应的端点设备的物理I/O地址或对应的物理memory地址,基于获取的具体的物理I/O地址或对应的物理memory地址,将管理控制器2021的访问请求发送给相应的端点设备。具体的,控制单元20142在获取到具体的物理I/O地址或对应的物理memory地址后,通过构造TLP报文,通过PCIE链路发送给PCIE交换模块2013,并通过PCIE交换模块2013将构造的TLP报文发送给对应的端点设备。
为进一步说明本发明实施例中端点代理设备的实现方式,如图5所示,所述端点代理设备2014还包括转发单元20143(即PCIE Core),用于接收中央处理器2011通过BIOS程序的初始化、基地址空间配置,资源分配请求等,并为所述转换单元20142提供标准的PCIE传输层服务。在实现端点代理设备2014在转发管理控制器2021的访问请求时,所述转发单元20143具体用于接收所述控制单元20142生成的TLP报文,并发送给PCIE交换单元2013。并且,在端点设备返回TLP报文时,接收PCIE交换单元2013转发的TLP报文,发送给所述控制单元20142。
参考图6,图6为端点代理设备2014中转发单元20143具体实现结构示意图。转发单元20143包括物理层(Physical Layer)、数据链路层(Data Link Layer)和传输层(Transport Layer),以及配置单元(包括但不限于I/O或Memory的配置等)。转发单元20143通过物理层、数据链路层和传输层实现控制单元20142发送的报文的转发,以及将PCIE交换模块2013转发的TLP报文发送给所述控制单元20142。
参考图7,图7为本发明实施例一种计算机系统300的结构示意图。计算机系统300包括计算子系统301和管理子系统302,所述计算子系统301包括中央处理器3011,所述管理子系统302包括管理控制器3021,所述中央处理器3011连接端点设备(包括端点设备3015、端点设备3016和/或端 点设备3017)以及端点代理设备3014;
所述计算机系统301还包括端点代理设备3014,所述端点代理设备3014的第一端口(图中未示出)通过PCIE链路连接所述计算子系统301中的所述中央处理器3011,所述端点代理设备3014的第二端口(图中未示出)与所述管理子系统302中的所述管理控制器3021连接;
所述中央处理器3011,用于分配所述端点设备(例如端点设备3015)在所述计算子系统301中的设备信息,并将所述端点设备(例如端点设备3015)在所述计算子系统301中的设备信息写入所述端点代理设备3014,所述端点设备(例如端点设备3015)在所述计算子系统301中的设备信息至少包括所述端点设备(例如端点设备3015)在所述计算子系统301中的第一地址信息;
所述管理控制器3021,用于在确定所述端点代理设备3014中被写入所述端点设备(例如端点设备3015)在所述计算子系统中的设备信息后,根据所述端点设备(例如端点设备3015)在所述计算子系统301中的第一地址分配所述端点设备(例如端点设备3015)在所述管理子系统302中的第二地址,并将所述端点设备(例如端点设备3015)在所述管理子系统302中的第二地址写入所述端点代理设备3014;
所述端点代理设备3014,用于在被写入所述第二地址之后,建立所述端点设备(例如端点设备3015)在所述计算子系统301中的第一地址与所述端点设备(例如端点设备3015)在所述管理子系统302中的第二地址之间的对应关系;
所述管理控制器3021还用于发送第一访问请求,所述第一访问请求携带所述端点设备(例如端点设备3015)在所述管理子系统302中的的第二地址;
所述端点代理设备3014还用于通过所述第二端口与所述管理控制器3021的连接接收所述管理控制器3021发送的所述第一访问请求,根据所述 对应关系生成携带所述端点设备(例如端点设备3015)在所述计算子系统301中的第一地址的第二访问请求,并通过所述第一端口连接的所述PCIE链路将所述第二访问请求发送给所述端点设备(例如端点设备3015)。
上述计算机系统中,端点代理设备3014建立端点设备(例如端点设备3015)在所述计算子系统301中的第一地址与在所述管理子系统302中的第二地址之间的对应关系,在接收到管理控制器3021对端点设备(例如端点设备3015)第一访问请求时,根据所述对应关系生成携带所述端点设备(例如端点设备3015)在所述计算子系统301中的第一地址的第二访问请求,并发送给所述端点设备(例如端点设备3015)。实现了管理控制器3021对端点设备访问请求的发送到所述端点设备,且不需要操作依赖于操作系统,不需要对不同的端点设备进行不同的管理配置,提高了对端点设备进行管理时的可维护性。
在具体实现中,作为一种较优的实现方式,所述中央处理器3011可以在所述计算子系统301初始化过程中,根据基本输入输出系统BIOS的指令扫描到所述端点设备(例如端点设备3015)和所述端点代理设备3014,分别为所述端点设备(例如端点设备3015)和所述端点代理设备3014分配在所述计算子系统301中的设备信息,并将所述端点设备(例如端点设备3015)在所述计算子系统301中的设备信息写入所述端点代理设备3014。其中,所述端点设备在所述计算子系统中的设备信息可以是下述信息中的至少一项:所述端点设备的输入输出I/O地址信息,所述端点设备的内存Memory地址信息,所述端点设备的总线/设备/功能B/D/F号,或所述端点设备的设备类型信息。相应的,所述第一地址可以是所述端点设备的输入输出I/O地址信息,也可以是所述端点设备的内存Memory地址信息。
可选的,所述中央处理器3011可以根据分配的所述端点代理设备3014的在所述计算子系统301中的设备信息,通过所述第一端口连接的所述PCIE链路向所述端点代理设备3014写入所述端点设备(例如端点设备3015)在 所述计算子系统301中的设备信息。
在具体实现中,如图8所示,所述管理控制器3021还可以通过南桥芯片3018与所述中央处理器3011连接。相应的,所述中央处理器3011具体用于通过所述南桥芯片3018将所述端点设备(例如端点设备3015)在所述计算子系统301中的设备信息通知到所述管理控制器3021;所述管理控制器3021将获取到的所述端点设备(例如端点设备3015)在所述计算子系统301中的设备信息写入所述端点代理设备3014。具体的,可以是通过所述端点代理设备3014的第二端口的连接将所述端点设备(例如端点设备3015)在所述计算子系统301中的设备信息写入所述端点代理设备3014。
当所述端点代理设备3014被写入所述端点设备(例如端点设备3015)在所述计算子系统301中的设备信息后,可以通过两种方式通知管理控制器3021。
一种是所述端点代理设备3014向所述管理控制器3021发送通知消息,管理控制器3021接收所述端点代理设备3014发送的所述通知消息,根据所述通知消息确定所述端点代理设备3014中被写入所述端点设备(例如端点设备3015)在所述计算子系统301中的设备信息。
另一种是管理控制器3021周期性地向所述端点代理设备3014发送查询消息,接收所述端点代理设备3014发送的所述查询消息的响应消息,根据所述查询消息的响应消息确定所述端点代理设备3014中被写入所述端点设备(例如端点设备3015)在所述计算子系统301中的设备信息。
本发明实施例中,作为一种可选的实现方式,所述端点代理设备3014的第二端口与所述管理子系统302中的所述管理控制器3021可以通过内部集成电路I2C连接。当所述端点代理设备3014的第二端口与所述管理控制器3021通过I2C连接时,所述管理控制器3021为所述端点代理设备3014分配I2C号并根据分配的I2C号,将所述第一访问请求发送到所述端点代理设备3014。
所述端点代理设备3014的第二端口与所述管理子系统302中的所述管理控制器3021也可以通过PCIE链路连接。当所述端点代理设备3014的第二端口与所述管理控制器3021通过PCIE链路连接时,所述管理控制器3021分配所述端点代理设备3014在所述管理子系统302中的第二地址,所述第二地址的范围包含所述端点设备(例如端点设备3015)在所述管理子系统302中的第二地址的范围,所述管理控制器3021根据所述端点设备(例如端点设备3015)在所述管理子系统302中的第二地址,将所述第一访问请求发送到所述端点代理设备3014。
需要说明的是,上述第一地址还可以是所述端点设备(例如端点设备3015)在计算子系统301中的地址空间,例如上述表2所述的物理I/O地址空间或物理Memory地址空间。所述第二地址可以是与所述第一地址对应的地址空间,如表2中的管理地址空间类似。在管理控制器3021访问端点设备(例如端点设备3015)的地址时,通常是访问端点设备的一段地址空间,本发明实施例从简化角度,表述为第一地址或第二地址,实际实现中,第一第一可以是一段地址空间,第二地址也可以是一段地址空间。
可选的,如图8所示,所述计算子系统301还可以包括PCIE交换设备3013,所述端点设备(例如端点设备3015)通过所述PCIE交换设备连接到所述中央处理器3011,相应的,所述端点代理设备3014的第一端口通过PCIE链路连接所述PCIE交换设备以连接到所述中央处理器3011。其中,所述PCIE交换设备3013可以是图3中的PCIE交换模块2013,即可以通过硬件或软件实现,本发明实施例不限定具体的实现方式。
可选的,本发明实施例中,所述端点代理设备3014可以位于所述计算子系统301中,也可以位于所述管理子系统302的管理控制器3021中。
上述图7或图8所示的实施例的具体实现方式,还可以参照图2至图6所示的实施例的实现方式实现,不再赘述。
参考图9,图9为本发明实施例一种对计算机系统中端点设备进行访问 的方法流程示意图。其中,包括计算子系统和管理子系统,所述计算子系统包括中央处理器,所述管理子系统包括管理控制器,所述中央处理器用于连接端点设备;所述方法包括:
步骤900:所述中央处理器为所述端点设备分配在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的设备信息写入所述计算子系统中的端点代理设备中,所述端点设备在所述计算子系统中的设备信息至少包括所述端点设备在所述计算子系统中的第一地址信息;
步骤902:所述管理控制器在确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息后,根据所述端点设备在所述计算子系统中的第一地址分配所述端点设备在所述管理子系统中的第二地址,并将所述端点设备在所述管理子系统中的第二地址写入所述端点代理设备;
步骤904:所述端点代理设备在被写入所述第二地址之后,建立所述端点设备在所述计算子系统中的第一地址与所述端点设备在所述管理子系统中的第二地址之间的对应关系;所述端点代理设备的第一端口通过PCIE链路连接所述计算子系统中的所述中央处理器,所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器连接;
步骤906:所述管理控制器发送第一访问请求,所述第一访问请求携带所述端点设备在所述管理子系统中的的第二地址;
步骤908:所述端点代理设备通过所述第二端口与所述管理控制器的连接接收所述管理控制器发送的所述第一访问请求,根据所述对应关系生成携带所述端点设备在所述计算子系统中的第一地址的第二访问请求,并通过所述第一端口连接的所述PCIE链路将所述第二访问请求发送给所述端点设备。
上述方法实施例中,端点代理设备建立端点设备在所述计算子系统中的第一地址与在所述管理子系统中的第二地址之间的对应关系,在接收到管理控制器对端点设备第一访问请求时,根据所述对应关系生成携带所述 端点设备在所述计算子系统中的第一地址的第二访问请求,并发送给所述端点设备。实现了管理控制器对端点设备访问请求的发送到所述端点设备,且不需要操作依赖于操作系统,不需要对不同的端点设备进行不同的管理配置,提高了对端点设备进行管理时的可维护性。
在具体实现时,所述方法还可以包括:
所述中央处理器在所述计算子系统初始化过程中,根据基本输入输出系统BIOS的指令扫描到所述端点设备和所述端点代理设备,分别为所述端点设备和所述端点代理设备分配在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的设备信息写入所述端点代理设备。其中,所述端点设备在所述计算子系统中的设备信息可以是下述信息中的至少一项:所述端点设备的输入输出I/O地址信息,所述端点设备的内存Memory地址信息,所述端点设备的总线/设备/功能B/D/F号,或所述端点设备的设备类型信息。相应的,所述第一地址可以是所述端点设备的输入输出I/O地址信息,也可以是所述端点设备的内存Memory地址信息。
可选的,所述中央处理器根据分配的所述端点代理设备的在所述计算子系统中的设备信息,通过所述第一端口连接的所述PCIE链路向所述端点代理设备写入所述端点设备在所述计算子系统中的设备信息。或者,所述管理控制器与所述中央处理器通过南桥芯片连接,所述中央处理器通过所述南桥芯片将所述端点设备在所述计算子系统中的设备信息通知到所述管理控制器,所述管理控制器将获取到的所述端点设备在所述计算子系统中的设备信息通过所述第二端口的连接写入所述端点代理设备。
当所述端点代理设备被写入所述端点设备在所述计算子系统中的设备信息后,可以通过两种方式通知管理控制器。
一种是所述端点代理设备在被写入所述端点设备在所述计算子系统中的设备信息后,向所述管理控制器发送通知消息,所述管理控制器接收所述端点代理设备发送的所述通知消息,根据所述通知消息确定所述端点代 理设备中被写入所述端点设备在所述计算子系统中的设备信息。
另一种是所述管理控制器周期性地向所述端点代理设备发送查询消息,接收所述端点代理设备发送的所述查询消息的响应消息,根据所述查询消息的响应消息确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。
作为一种可选的实现方式,所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过内部集成电路I2C连接,所述方法还包括:
所述管理控制器为所述端点代理设备分配I2C号;
所述管理控制器根据所述端点代理设备的I2C号,将所述第一访问请求发送到所述端点代理设备。
或者,所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过PCIE链路连接,所述方法还包括:
所述管理控制器还用于分配所述端点代理设备在所述管理子系统中的第二地址,所述端点代理设备在所述管理子系统中的第二地址的范围包含所述端点设备在所述管理子系统中的第二地址的范围,所述管理控制器具体用于根据所述端点设备在所述管理子系统中的第二地址,将所述第一访问请求发送到所述端点代理设备。
需要说明的是,上述第一地址还可以是所述端点设备在计算子系统301中的地址空间,例如上述表2所述的物理I/O地址空间或物理Memory地址空间。所述第二地址可以是与所述第一地址对应的地址空间,如表2中的管理地址空间类似。在管理控制器访问端点设备的地址时,通常是访问端点设备的一段地址空间,本发明实施例从简化角度,表述为第一地址或第二地址,实际实现中,第一第一可以是一段地址空间,第二地址也可以是一段地址空间。
可选的,所述计算子系统还包括PCIE交换设备,所述端点设备通过所述PCIE交换设备连接到所述中央处理器,所述端点代理设备的第一端口通 过PCIE链路连接所述PCIE交换设备以连接到所述中央处理器。其中,所述PCIE交换设备3013可以是图3中的PCIE交换模块2013,即可以通过硬件或软件实现,本发明实施例不限定具体的实现方式。
可选的,所述端点代理设备位于所述计算子系统中或位于所述管理子系统的管理控制器中。
上述方法实施例的具体实现方式,还可以参照图2至图6所示的实施例的实现方式实现,不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地 方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (22)

  1. 一种计算机系统,其特征在于,包括计算子系统和管理子系统,所述计算子系统包括中央处理器,所述管理子系统包括管理控制器,所述中央处理器用于连接端点设备;
    所述计算机系统还包括端点代理设备,所述端点代理设备的第一端口通过PCIE链路连接所述计算子系统中的所述中央处理器,所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器连接;
    所述中央处理器,用于分配所述端点设备在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的设备信息写入所述端点代理设备,所述端点设备在所述计算子系统中的设备信息至少包括所述端点设备在所述计算子系统中的第一地址信息;
    所述管理控制器,用于在确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息后,根据所述端点设备在所述计算子系统中的第一地址分配所述端点设备在所述管理子系统中的第二地址,并将所述端点设备在所述管理子系统中的第二地址写入所述端点代理设备;
    所述端点代理设备,用于在被写入所述第二地址之后,建立所述端点设备在所述计算子系统中的第一地址与所述端点设备在所述管理子系统中的第二地址之间的对应关系;
    所述管理控制器还用于发送第一访问请求,所述第一访问请求携带所述端点设备在所述管理子系统中的的第二地址;
    所述端点代理设备还用于通过所述第二端口与所述管理控制器的连接接收所述管理控制器发送的所述第一访问请求,根据所述对应关系生成携带所述端点设备在所述计算子系统中的第一地址的第二访问请求,并通过所述第一端口连接的所述PCIE链路将所述第二访问请求发送给所述端点设备。
  2. 根据权利要求1所述的计算机系统,其特征在于,
    所述中央处理器具体用于在所述计算子系统初始化过程中,根据基本输入输出系统BIOS的指令扫描到所述端点设备和所述端点代理设备,分别为所述端点设备和所述端点代理设备分配在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的设备信息写入所述端点代理设备。
  3. 根据权利要求2所述的计算机系统,其特征在于,所述中央处理器具体用于根据分配的所述端点代理设备的在所述计算子系统中的设备信息,通过所述第一端口连接的所述PCIE链路向所述端点代理设备写入所述端点设备在所述计算子系统中的设备信息。
  4. 根据权利要求2所述的计算机系统,其特征在于,所述管理控制器与所述中央处理器通过南桥芯片连接;
    所述中央处理器具体用于通过所述南桥芯片将所述端点设备在所述计算子系统中的设备信息通知到所述管理控制器;
    所述管理控制器还用于将获取到的所述端点设备在所述计算子系统中的设备信息通过所述第二端口的连接写入所述端点代理设备。
  5. 根据权利要求2-4任一项所述的计算机系统,其特征在于,
    所述端点代理设备还用于在被写入所述端点设备在所述计算子系统中的设备信息后,向所述管理控制器发送通知消息;
    所述管理控制器具体用于接收所述端点代理设备发送的所述通知消息,根据所述通知消息确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。
  6. 根据权利要求2-4任一项所述的计算机系统,其特征在于,
    所述管理控制器具体用于周期性地向所述端点代理设备发送查询消息,接收所述端点代理设备发送的所述查询消息的响应消息,根据所述查询消息的响应消息确定所述端点代理设备中被写入所述端点设备在所述计 算子系统中的设备信息。
  7. 根据权利要求1-6任一项所述的计算机系统,其特征在于,所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过内部集成电路I2C连接;
    所述管理控制器还用于为所述端点代理设备分配I2C号;
    所述管理控制器具体用于根据所述端点代理设备的I2C号,将所述第一访问请求发送到所述端点代理设备。
  8. 根据权利要求1-6任一项所述的计算机系统,其特征在于,所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过PCIE链路连接;
    所述管理控制器还用于分配所述端点代理设备在所述管理子系统中的第二地址,所述端点代理设备在所述管理子系统中的第二地址的范围包含所述端点设备在所述管理子系统中的第二地址的范围;
    所述管理控制器具体用于根据所述端点设备在所述管理子系统中的第二地址,将所述第一访问请求发送到所述端点代理设备。
  9. 根据权利要求1-8任一项所述的计算机系统,其特征在于,所述计算子系统还包括PCIE交换设备,所述端点设备通过所述PCIE交换设备连接到所述中央处理器;
    所述端点代理设备的第一端口通过PCIE链路连接所述PCIE交换设备以连接到所述中央处理器。
  10. 根据权利要求1-9任一所述的计算机系统,其特征在于:
    所述端点代理设备位于所述计算子系统中;或,
    所述端点代理设备位于所述管理子系统的管理控制器中。
  11. 根据权利要求1-10任一所述的计算机系统,其特征在于:
    所述端点设备在所述计算子系统中的设备信息包括下述信息中的至少一项:
    所述端点设备的输入输出I/O地址信息,所述端点设备的内存Memory地址信息,所述端点设备的总线/设备/功能B/D/F号,或所述端点设备的设备类型信息。
  12. 一种对计算机系统中端点设备进行访问的方法,其特征在于,包括计算子系统和管理子系统,所述计算子系统包括中央处理器,所述管理子系统包括管理控制器,所述中央处理器用于连接端点设备;所述方法包括:
    所述中央处理器为所述端点设备分配在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的设备信息写入所述计算子系统中的端点代理设备中,所述端点设备在所述计算子系统中的设备信息至少包括所述端点设备在所述计算子系统中的第一地址信息;
    所述管理控制器在确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息后,根据所述端点设备在所述计算子系统中的第一地址分配所述端点设备在所述管理子系统中的第二地址,并将所述端点设备在所述管理子系统中的第二地址写入所述端点代理设备;
    所述端点代理设备在被写入所述第二地址之后,建立所述端点设备在所述计算子系统中的第一地址与所述端点设备在所述管理子系统中的第二地址之间的对应关系;所述端点代理设备的第一端口通过PCIE链路连接所述计算子系统中的所述中央处理器,所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器连接;
    所述管理控制器发送第一访问请求,所述第一访问请求携带所述端点设备在所述管理子系统中的的第二地址;
    所述端点代理设备通过所述第二端口与所述管理控制器的连接接收所述管理控制器发送的所述第一访问请求,根据所述对应关系生成携带所述端点设备在所述计算子系统中的第一地址的第二访问请求,并通过所述第 一端口连接的所述PCIE链路将所述第二访问请求发送给所述端点设备。
  13. 根据权利要求12所述的方法,其特征在于,所述方法还包括:
    所述中央处理器在所述计算子系统初始化过程中,根据基本输入输出系统BIOS的指令扫描到所述端点设备和所述端点代理设备,分别为所述端点设备和所述端点代理设备分配在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的设备信息写入所述端点代理设备。
  14. 根据权利要求13所述的方法,其特征在于,所述方法还包括:
    所述中央处理器根据分配的所述端点代理设备的在所述计算子系统中的设备信息,通过所述第一端口连接的所述PCIE链路向所述端点代理设备写入所述端点设备在所述计算子系统中的设备信息。
  15. 根据权利要求13所述的方法,其特征在于,所述管理控制器与所述中央处理器通过南桥芯片连接,所述方法还包括:
    所述中央处理器通过所述南桥芯片将所述端点设备在所述计算子系统中的设备信息通知到所述管理控制器;
    所述管理控制器将获取到的所述端点设备在所述计算子系统中的设备信息通过所述第二端口的连接写入所述端点代理设备。
  16. 根据权利要求13-15任一项所述的方法,其特征在于,所述方法还包括:
    所述端点代理设备在被写入所述端点设备在所述计算子系统中的设备信息后,向所述管理控制器发送通知消息;
    所述管理控制器接收所述端点代理设备发送的所述通知消息,根据所述通知消息确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。
  17. 根据权利要求13-15任一项所述的方法,其特征在于,所述方法还包括:
    所述管理控制器周期性地向所述端点代理设备发送查询消息,接收所 述端点代理设备发送的所述查询消息的响应消息,根据所述查询消息的响应消息确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。
  18. 根据权利要求12-17任一项所述的方法,其特征在于,所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过内部集成电路I2C连接,所述方法还包括:
    所述管理控制器为所述端点代理设备分配I2C号;
    所述管理控制器根据所述端点代理设备的I2C号,将所述第一访问请求发送到所述端点代理设备。
  19. 根据权利要求12-17任一项所述的方法,其特征在于,所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过PCIE链路连接,所述方法还包括:
    所述管理控制器还用于分配所述端点代理设备在所述管理子系统中的第二地址,所述端点代理设备在所述管理子系统中的第二地址的范围包含所述端点设备在所述管理子系统中的第二地址的范围;
    所述管理控制器具体用于根据所述端点设备在所述管理子系统中的第二地址,将所述第一访问请求发送到所述端点代理设备。
  20. 根据权利要求12-19任一项所述的方法,其特征在于,所述计算子系统还包括PCIE交换设备,所述端点设备通过所述PCIE交换设备连接到所述中央处理器;
    所述端点代理设备的第一端口通过PCIE链路连接所述PCIE交换设备以连接到所述中央处理器。
  21. 根据权利要求12-20任一所述的方法,其特征在于:
    所述端点代理设备位于所述计算子系统中;或,
    所述端点代理设备位于所述管理子系统的管理控制器中。
  22. 根据权利要求12-21任一所述的方法,其特征在于:
    所述端点设备在所述计算子系统中的设备信息包括下述信息中的至少一项:
    所述端点设备的输入输出I/O地址信息,所述端点设备的内存Memory地址信息,所述端点设备的总线/设备/功能B/D/F号,或所述端点设备的设备类型信息。
PCT/CN2015/090144 2015-09-21 2015-09-21 计算机系统和计算机系统中端点设备访问的方法 WO2017049433A1 (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
EP15904321.5A EP3220713B1 (en) 2015-09-21 2015-09-21 Computer system and method for accessing endpoint device therein
CN201710448822.XA CN107436850B (zh) 2015-09-21 2015-09-21 计算机系统和计算机系统中端点设备访问的方法
CN201580003596.3A CN105874442B (zh) 2015-09-21 2015-09-21 计算机系统和计算机系统中端点设备访问的方法
ES15904321T ES2726302T3 (es) 2015-09-21 2015-09-21 Sistema informático y procedimiento para acceder a un dispositivo de punto extremo del mismo
PCT/CN2015/090144 WO2017049433A1 (zh) 2015-09-21 2015-09-21 计算机系统和计算机系统中端点设备访问的方法
US15/885,507 US10083141B2 (en) 2015-09-21 2018-01-31 Computer system and method for accessing endpoint device in computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/090144 WO2017049433A1 (zh) 2015-09-21 2015-09-21 计算机系统和计算机系统中端点设备访问的方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/885,507 Continuation US10083141B2 (en) 2015-09-21 2018-01-31 Computer system and method for accessing endpoint device in computer system

Publications (1)

Publication Number Publication Date
WO2017049433A1 true WO2017049433A1 (zh) 2017-03-30

Family

ID=56624302

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/090144 WO2017049433A1 (zh) 2015-09-21 2015-09-21 计算机系统和计算机系统中端点设备访问的方法

Country Status (5)

Country Link
US (1) US10083141B2 (zh)
EP (1) EP3220713B1 (zh)
CN (2) CN105874442B (zh)
ES (1) ES2726302T3 (zh)
WO (1) WO2017049433A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2726302T3 (es) * 2015-09-21 2019-10-03 Huawei Tech Co Ltd Sistema informático y procedimiento para acceder a un dispositivo de punto extremo del mismo
US10474606B2 (en) 2017-02-17 2019-11-12 Hewlett Packard Enterprise Development Lp Management controller including virtual USB host controller
CN107483226B (zh) * 2017-07-04 2022-02-22 联想(北京)有限公司 一种信息处理方法及电子设备
CN109710411B (zh) * 2018-12-28 2020-09-22 深圳忆联信息系统有限公司 Tlp字段资源管理方法、装置、计算机设备及存储介质
CN110955517B (zh) * 2019-09-03 2021-08-20 华为技术有限公司 报文转发的方法、计算机设备和中间设备
US11314673B2 (en) 2019-12-27 2022-04-26 Texas Instruments Incorporated Configurable multi-function PCIe endpoint controller in an SoC
CN113407469B (zh) * 2021-06-10 2023-04-07 浙江华创视讯科技有限公司 一种参数配置方法及装置、存储介质及电子装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100313095A1 (en) * 2009-06-08 2010-12-09 Clear Wireless Llc Systems and Methods of Information Transmission
CN103069771A (zh) * 2010-08-18 2013-04-24 英特尔公司 用于可管理性、安全路由和端点访问的方法、装置和系统
CN103609195A (zh) * 2011-11-08 2014-02-26 思科技术公司 对移动端点的管理性访问

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662242B2 (en) * 2001-04-17 2003-12-09 International Business Machines Corporation Method for PCI IO using PCI device memory mapping in a logically partitioned system
AU2002345633A1 (en) * 2001-06-08 2002-12-23 4Th Pass Inc. Method and system for two-way initiated data communication with wireless devices
US20060155862A1 (en) * 2005-01-06 2006-07-13 Hari Kathi Data traffic load balancing based on application layer messages
US7920549B2 (en) * 2005-07-20 2011-04-05 Verizon Business Global Llc Method and system for providing secure media gateways to support interdomain traversal
US8737575B1 (en) * 2005-09-27 2014-05-27 At&T Intellectual Property Ii, L.P. Method and apparatus for transparently recording media communications between endpoint devices
US20080046628A1 (en) * 2006-08-21 2008-02-21 Mikal Hunsaker Multi-bus type management messaging method and apparatus
US7970916B2 (en) * 2007-07-25 2011-06-28 Cisco Technology, Inc. Register clustering in a sip-based network
US7934033B2 (en) * 2008-03-25 2011-04-26 Aprius, Inc. PCI-express function proxy
US8385333B2 (en) * 2009-06-30 2013-02-26 Intel Corporation Mechanism for clock synchronization
US8521915B2 (en) * 2009-08-18 2013-08-27 Fusion-Io, Inc. Communicating between host computers and peripheral resources in an input/output (I/O) virtualization system
JP2011048452A (ja) 2009-08-25 2011-03-10 Nec Corp エンドポイント代理アクセス装置、共有システム、代理アクセス方法および代理アクセスプログラム
US8521941B2 (en) * 2010-12-28 2013-08-27 Plx Technology, Inc. Multi-root sharing of single-root input/output virtualization
EP2696591B1 (en) 2012-08-09 2019-04-10 Samsung Electronics Co., Ltd Video calling using a remote camera device to stream video to a local endpoint host acting as a proxy
CN103430161B (zh) * 2012-11-15 2016-12-21 华为技术有限公司 一种基于PCIE Switch通信的方法、装置及系统
ES2687609T3 (es) * 2013-05-02 2018-10-26 Huawei Technologies Co., Ltd. Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés y equipo
US10684973B2 (en) * 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
ES2656464T3 (es) * 2013-09-11 2018-02-27 Huawei Technologies Co., Ltd. Procedimiento, sistema informático y aparato de procesamiento de fallo
EP2927812B1 (en) * 2013-12-31 2017-08-02 Huawei Technologies Co., Ltd. Method and apparatus for extending pcie bus domain
GB2528061B (en) * 2014-07-08 2021-04-21 Advanced Risc Mach Ltd Translating between memory transactions of first type and memory transactions of a second type
US9864701B1 (en) * 2015-03-10 2018-01-09 Amazon Technologies, Inc. Resource mapping for an input/output device
ES2726302T3 (es) * 2015-09-21 2019-10-03 Huawei Tech Co Ltd Sistema informático y procedimiento para acceder a un dispositivo de punto extremo del mismo

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100313095A1 (en) * 2009-06-08 2010-12-09 Clear Wireless Llc Systems and Methods of Information Transmission
CN103069771A (zh) * 2010-08-18 2013-04-24 英特尔公司 用于可管理性、安全路由和端点访问的方法、装置和系统
CN103609195A (zh) * 2011-11-08 2014-02-26 思科技术公司 对移动端点的管理性访问

Also Published As

Publication number Publication date
US20180225246A1 (en) 2018-08-09
EP3220713A4 (en) 2018-02-07
US10083141B2 (en) 2018-09-25
CN105874442A (zh) 2016-08-17
CN107436850A (zh) 2017-12-05
EP3220713A1 (en) 2017-09-20
EP3220713B1 (en) 2019-03-20
CN107436850B (zh) 2022-04-29
ES2726302T3 (es) 2019-10-03
CN105874442B (zh) 2017-07-14

Similar Documents

Publication Publication Date Title
US11080221B2 (en) Switching device, peripheral component interconnect express system, and method for initializing peripheral component interconnect express system
WO2017049433A1 (zh) 计算机系统和计算机系统中端点设备访问的方法
US11899943B2 (en) Node interconnection apparatus, resource control node, and server system
US11445028B2 (en) System and method for providing secure console access with multiple smart NICs using NC-SL and SPDM
TWI754654B (zh) 自組態基板管理控制器(bmc)及其自組態方法與儲存媒體
JP5640154B2 (ja) デバイスハードウェアエージェント
US10671423B2 (en) Hot-plug hardware and software implementation
US10089028B2 (en) Remote secure drive discovery and access
TWI616758B (zh) 遠端多電腦切換技術之儲存裝置、系統及方法
US9858102B2 (en) Data path failover method for SR-IOV capable ethernet controller
US8140871B2 (en) Wake on Lan for blade server
US7707465B2 (en) Routing of shared I/O fabric error messages in a multi-host environment to a master control root node
US20090276773A1 (en) Multi-Root I/O Virtualization Using Separate Management Facilities of Multiple Logical Partitions
US20080043769A1 (en) Clustering system and system management architecture thereof
WO2016107273A1 (zh) 计算机设备与计算机设备的配置管理方法
US9026687B1 (en) Host based enumeration and configuration for computer expansion bus controllers
TW201502772A (zh) 虛擬基板管理控制器
US20070165520A1 (en) Port trunking between switches
US20130262700A1 (en) Information processing system and virtual address setting method
US8036102B2 (en) Protocol definition for software bridge failover
US20100268855A1 (en) Ethernet port on a controller for management of direct-attached storage subsystems from a management console
US20180341610A1 (en) Information processing apparatus and recording medium storing information processing program
US20140040663A1 (en) Information processing apparatus, computer readable storage medium, and collecting method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15904321

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2015904321

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE