CN115981730A - 用于通过互连访问设备操作系统的系统、方法和设备 - Google Patents

用于通过互连访问设备操作系统的系统、方法和设备 Download PDF

Info

Publication number
CN115981730A
CN115981730A CN202211249008.2A CN202211249008A CN115981730A CN 115981730 A CN115981730 A CN 115981730A CN 202211249008 A CN202211249008 A CN 202211249008A CN 115981730 A CN115981730 A CN 115981730A
Authority
CN
China
Prior art keywords
operating system
interconnect
function
communicating
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211249008.2A
Other languages
English (en)
Inventor
R.潘杜兰甘
崔昌皓
奇亮奭
柳星旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN115981730A publication Critical patent/CN115981730A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output 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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • 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/4406Loading of operating system
    • 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/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种用于与设备通信的方法可以包括:在设备处运行操作系统,使用互连的第一功能与设备通信,以及使用互连的第二功能与操作系统通信。操作系统可以包括通信逻辑,并且与操作系统通信可以包括与通信逻辑通信。通信逻辑可以包括一个或多个终端支持驱动器,并且与通信逻辑通信可以包括使用终端应用与一个或多个终端支持驱动器通信。终端应用可以在主机上运行。互连的第二功能可以被配置为与控制器一起操作。与操作系统通信可以包括基于特权信息与操作系统通信。主机可以是管理控制器。该方法还可以包括使用互连的第二功能来控制操作系统上的程序。

Description

用于通过互连访问设备操作系统的系统、方法和设备
相关申请的交叉引用
本申请要求于2021年10月14日提交的标题为“用于访问存储设备的系统、方法和装置”的第63/255,946号美国临时专利申请的优先权和权益,该专利申请通过引用并入本文。
技术领域
本公开一般涉及存储系统,更具体地,涉及用于通过互连访问设备操作系统的系统、方法和设备。
背景技术
诸如存储设备、加速器设备等设备可以包括嵌入式操作系统来运行一个或多个程序,这些程序可以用于例如执行可以从主机卸载的计算。设备可以通过互连(interconnect)连接到主机,其中该互连可以用于在主机和设备之间交换程序的输入和/或输出(I/O)数据。可以使用系统终端来访问嵌入式操作系统。
背景技术部分中公开的上述信息仅用于增强对发明原理的背景的理解,因此它可能包含不构成现有技术的信息。
发明内容
一种用于与设备通信的方法可以包括:在设备处运行操作系统,使用互连的第一功能与设备通信,以及使用互连的第二功能与操作系统通信。操作系统可以包括通信逻辑,并且与操作系统通信可以包括与通信逻辑通信。通信逻辑可以包括一个或多个终端支持驱动器,并且与通信逻辑通信可以包括使用终端应用与一个或多个终端支持驱动器通信。终端应用可以在主机上运行。互连的第二功能可以被配置为与控制器一起操作。与操作系统通信可以包括基于特权信息与操作系统通信。主机可以是管理控制器。至少一个终端支持驱动器可以提供命令行接口。该方法还可以包括使用互连的第二功能来控制操作系统上的程序。程序可以包括调试程序、跟踪程序或剖析程序中的至少一个。与操作系统通信可以包括使用连接进行通信。与操作系统通信可以包括由设备将与互连的第二功能相关联的输出数据存储在缓冲器中。与操作系统通信可以包括由用户从缓冲器读取与互连的第二功能相关联的输出数据。缓冲器可以包括环形缓冲器。与互连的第二功能相关联的输出数据可以由终端生成。与互连的第二功能相关联的输出数据可以由使用互连的第二功能控制的程序生成。缓冲器可以至少部分位于设备处。缓冲器可以至少部分位于主机处。与操作系统通信可以包括使用虚拟终端进行通信。
一种设备可以包括:互连接口、被配置为使用互连接口的第一功能进行通信的设备控制器、以及被配置为运行操作系统的处理器,其中,操作系统可以被配置为使用互连接口的第二功能进行通信。设备控制器可以与处理器集成在一起。设备还可以包括缓冲器,该缓冲器被配置为存储与互连接口的第二功能相关联的输出数据,并且使用互连接口的第二功能发送输出数据。缓冲器可以包括环形缓冲器。操作系统可以包括被配置为使用互连接口的第二功能进行通信的通信逻辑。
一种系统可以包括:设备,包括:被配置为使用互连的第一功能进行通信的设备控制器,以及被配置为运行被配置为使用互连的第二功能进行通信的操作系统的处理器;以及至少一个主机,包括至少一个处理器,该至少一个处理器被配置为:使用互连的第一功能与设备通信,以及使用互连的第二功能与操作系统通信。该至少一个主机可以包括第一主机和第二主机,该第一主机包括被配置为使用互连的第一功能与设备通信的第一处理器,该第二主机包括被配置为使用互连的第二功能与操作系统通信的第二处理器。第一主机可以包括管理控制器。该至少一个主机处理器可以被配置为使用远程访问协议提供操作系统和用户之间的通信。
一种主机设备可以包括:互连接口,以及至少一个处理器,该处理器被配置为使用互连接口的第一功能与设备通信,并且使用互连接口的第二功能与设备处的通信逻辑通信,其中,通信逻辑可以被配置为访问在设备处运行的操作系统。主机设备还可以包括驱动器,该驱动器被配置为将处理器接口到互连接口。该至少一个处理器可以被配置为使用终端应用与通信逻辑通信。主机设备可以包括管理控制器。该至少一个处理器可以被配置为使用远程访问协议提供操作系统和用户之间的通信。
附图说明
附图不一定是按比例绘制的,在所有附图中,出于说明的目的,类似结构或功能的元件通常可以用相同的附图标记或其部分来表示。附图仅仅是为了便于描述本文描述的各种实施例。附图没有描述本文公开的教导的每个方面,并且不限制权利要求的范围。为了防止附图变得模糊,不是所有的组件、连接等都被示出,并且不是所有的组件都具有附图标记。然而,从附图中可以容易地看出组件配置的模式。附图与说明书一起示出了本公开的示例实施例,并且与描述一起用于解释本公开的原理。
图1示出了根据本公开的示例实施例的系统的实施例。
图2示出了根据本公开的示例实施例的用于实施到终端的硬件连接的软件栈的示例实施例。
图3示出了根据本公开的示例实施例的可以向用户提供对设备的嵌入式操作系统的访问的系统的实施例。
图4示出了根据本公开的示例实施例的通过互连访问设备操作系统的系统中的驱动器配置的示例实施例。
图5示出了根据本公开的示例实施例的可以向用户提供通过互连对设备的嵌入式操作系统的访问的设备的更详细的示例实施例。
图6示出了根据本公开的示例实施例的环形缓冲器方案的示例实施例。
图7A示出了根据本公开的示例实施例的设备的设备寄存器的示例实施例。
图7B示出了根据本公开的示例实施例的系统的查询命令和结果输出的示例实施例,其中该系统具有可以使用互连的功能来访问的设备和设备操作系统。
图8示出了根据本公开的示例实施例的用于终端程序的用户界面的示例实施例,其中该终端程序可以用于通过互连访问设备操作系统。
图9示出了根据本公开的示例实施例的其中管理接口可以用于通过互连来访问设备的嵌入式操作系统的系统的示例实施例。
图10示出了根据本公开的示例实施例的可以向用户提供对设备的嵌入式操作系统的远程访问的系统的实施例。
图11示出了根据本公开的示例实施例的主机装置的示例实施例,其中该主机装置可以用于通过互连向用户提供对设备的嵌入式操作系统的访问。
图12示出了根据本公开的示例实施例的可以用于向用户提供对设备程序的访问的存储设备的示例实施例。
图13示出了根据本公开的示例实施例的用于向用户提供对设备的嵌入式操作系统的访问的方法的实施例。
具体实施方式
诸如存储设备、加速器设备等设备可以包括嵌入式操作系统来运行一个或多个程序,这些程序可以用于例如执行可以从主机卸载的计算。设备可以通过诸如快速外围组件互连(Peripheral Component Interconnect Express,PCIe)的互连连接到主机。主机和设备可以使用互连来交换程序的输入和/或输出(I/O)数据。嵌入式操作系统可以支持可以使用户能够运行用于监视程序(诸如跟踪程序、调试程序、剖析程序等)和/或查找程序故障的一个或多个程序的终端。然而,终端可能无法通过互连访问操作系统。因此,用户可能只能通过将附加硬件连接到设备来访问这些特征。
根据本公开的示例实施例的设备可以使用户能够通过互连访问嵌入式操作系统。在一些实施例中,通过使用互连的附加功能,设备可以通过互连暴露操作系统的一个或多个特征。例如,存储设备可以具有被配置为使用互连的第一功能的存储设备控制器。存储设备可以使用第一功能通过互连发送和接收与其作为存储设备的正常操作相关的数据。运行在存储设备上的嵌入式操作系统可以被配置为使用互连的第二功能。因此,用户(例如,在主机上运行的一个或多个程序)可以使用用于向和/或从存储设备发送存储数据的同一互连来访问操作系统。取决于实施方式细节,这可以使用户能够在很少或没有附加硬件的情况下访问嵌入式操作系统。取决于实施方式细节,这也可以使用户能够使用第二功能访问操作系统可用的任何类型的特征,诸如用于调试、跟踪、剖析、文件传输、软件更新、固件更新等的程序。
在一些实施例中,设备可以包括通信逻辑,该通信逻辑可以使在设备上运行的嵌入式操作系统能够通过互连被访问。在一些实施例中,主机可以使用终端应用通过互连来访问嵌入式操作系统。例如,设备可以包括通信逻辑(其可以包括例如至少一个终端支持驱动器),该通信逻辑可以使终端(例如,虚拟终端)能够通过诸如PCIe和/或相关联的协议的互连建立连接。主机可以包括驱动器,该驱动器可以使终端应用能够通过互连连接到嵌入式操作系统。在一些实施例中,通信逻辑可以使用户能够基于用户的特权级别来访问操作系统的一个或多个特征。
在一些实施例中,设备和主机可以被配置为使用生产者-消费者方案来交换数据。在生产者-消费者方案的一些实施例中,生产者可以生成消费者可以使用的数据。例如,使用通信逻辑控制的程序可以作为生产者操作,并将输出数据存储在缓冲器(例如,环形缓冲器)中。用户(例如,在主机上运行的应用)可以作为消费者操作,并从缓冲器中检索输出数据。
图1示出了根据本公开的示例实施例的系统的实施例。图1所示的系统可以包括主机102和设备104。主机102可以包括一个或多个处理器106和互连接口108,互连接口108可以使主机102能够通过互连结构(interconnect fabric)110与设备104通信。主机102可以被配置为运行可以与设备104的主要功能相关的应用112。例如,如果设备104是存储设备,则应用112可以是存储应用。作为另一示例,如果设备104是网络接口卡(networkinterface card,NIC),则应用112可以是网络应用。
设备104可以被实施为任何类型的设备,诸如存储设备、加速器、NIC等或其任何组合。设备104可以包括一个或多个处理器114和互连接口116。处理器114可以被配置为由互连接口116实施的互连的功能“功能A”。例如,如果互连接口116用PCIe实施,则处理器114可以被配置为功能0。处理器114可以被配置为运行具有一个或多个终端支持驱动器120的嵌入式操作系统118,其中终端支持驱动器120可以使嵌入式操作系统118能够使用终端和/或终端应用来访问。例如,如果操作系统118用嵌入式Linux实施,则一个或多个终端支持驱动器120可以使Linux控制台能够访问Linux内核(例如,向Linux内核提供输入和/或从Linux内核提供输出)。
在一些实施例中,主机102可能无法通过互连接口116访问嵌入式操作系统118。因此,为了访问嵌入式操作系统118(例如,为了收集设备104中固件的调试日志),用户可以将附加硬件连接到设备104,例如,使用可以通过通信连接124(例如,串行连接)访问的通信端口122(例如,通用异步收发器(universal asynchronous receiver-transmitter,UART)),使用通过诸如联合测试行动组(Joint Test Action Group,JTAG)和/或串行线调试(Serial Wire Debug,SWD)连接的端口进行调试的其他调试工具和/或软件挂钩。然而,使用附加硬件可能是昂贵的和/或难以实施的,尤其是例如对于远程位置的设备。
图2示出了根据本公开的示例实施例的用于实施终端的硬件连接的软件栈的示例实施例。例如,图2所示的实施例可以被任何装置(例如,主机)用来连接到图1所示的通信端口122。为了说明的目的,图2所示的实施例可以在Linux操作系统的上下文中描述,但是类似的栈可以用任何操作系统来实施。
参考图2,软件栈可以包括被配置为访问通信端口222的终端应用225,通信端口222可以被表示为文件描述器226。终端应用225可以通过对虚拟文件系统(virtual filesystem,VFS)228的系统调用227来访问通信端口222。虚拟文件系统228可以通过调用字符设备驱动器229中的相关功能来处理系统调用。字符设备驱动器229可以包括通信端口驱动器230,其可以从通信端口222中的硬件缓冲寄存器读取数据和/或向其写入数据。
图3示出了根据本公开的示例实施例的可以向用户提供对嵌入式操作系统的访问的系统的实施例。图3所示的系统可以包括类似于图1所示的组件,其中以相同数字结尾的附图标记可以指示可以执行类似功能的组件。然而,在图3所示的实施例中,通信逻辑320可以被配置为使用由互连接口316实施的互连的第二功能“功能B”来暴露操作系统318的一个或多个特征。例如,如果互连接口316用PCIe实施,则设备控制器(例如,可以由处理器314实施)可以被配置为使用功能0,并且通信逻辑320可以被配置为使用功能1暴露另一控制器(例如,调试控制器)。
在图3所示的实施例中,主机处理器306可以被配置为运行终端应用332,该终端应用332可以使用户(例如,在主机302上运行的应用)能够通过互连接口308和316访问操作系统318。例如,终端应用332可以用于通过通过通信逻辑320启动用于调试、跟踪、剖析和/或类似用户应用的程序(例如,实用程序)来监视用户应用(诸如运行在操作系统318上的计算存储(computational storage,CS)程序)和/或查找用户应用故障。取决于实施方式细节,这可以使用户能够访问由嵌入式操作系统318提供的一些或所有特征,而无需使用附加硬件,诸如图1所示的通信端口。
图4示出了根据本公开的示例实施例的通过互连访问设备操作系统的系统中的驱动器配置的示例实施例。图4所示的驱动器配置可以被实施例如以支持通过本文公开的互连访问设备操作系统的任何实施例中的数据流,包括参考图3、图5、图9、图10、图11和/或图12描述的那些。
参考图4,主机402和设备404可以通过互连结构410连接。主机402可以包括终端应用432、虚拟文件系统428和一个或多个驱动器434。一个或多个驱动器434可以包括用于互连结构410的硬件驱动器436、行规程(line discipline)438和/或电传(teletype,TTY)驱动器440。终端应用432可以使用文件描述器426通过虚拟文件系统428与一个或多个驱动器434通信。一个或多个驱动器434可以使终端应用432能够通过互连结构410进行通信,例如,通过诸如图3所示的互连接口308的互连接口。在一些实施例中,一个或多个驱动器434可以通过将驱动器434的功能添加到设备404的现有设备驱动器来实现。在这样的实施例中,硬件驱动器436可能已经存在于设备404的现有设备驱动器中。
设备404可以包括一个或多个处理器414、一个或多个驱动器442和设备功能444。设备功能444可以实施设备404的一个或多个主要功能,诸如用于存储设备的存储控制器和存储介质、用于计算存储设备的一个或多个计算资源、用于加速器的一个或多个处理资源、用于NIC的网络接口硬件等。在一些实施例中,可以使用通过互连结构410通信的互连的第一功能来访问设备功能444。
一个或多个驱动器442可以使运行在一个或多个处理器414上的操作系统能够通过互连结构410进行通信,例如,通过诸如图3所示的互连接口316的互连接口。一个或多个驱动器442可以包括通信逻辑420,该通信逻辑420可以被配置为使用通过互连结构410通信的互连的第二功能来提供对运行在处理器414上的操作系统的访问。一个或多个驱动器442还可以包括用于互连结构410的硬件驱动器437、行规程439和/或电传(TTY)驱动器441。尽管在图4中被示为单独的组件,但是在一些实施例中,通信逻辑420可以部分或全部与硬件驱动器437、行规程439和/或电传(TTY)驱动器441中的一个或多个集成。在一些实施例中,通信逻辑420可以包括一个或多个终端支持驱动器。
在一些实施例中,一个或多个驱动器442可以实施一个或多个设备(例如,一个或多个控制器),诸如调试设备、调试通信(dbgCOMM)设备、USB调试设备(dbgUSB)、计算存储非易失性存储器快速(NVMe)调试(dbgCSNVMe)设备等。在一些实施例中,一个或多个驱动器442可以实施软件通信(软件COMM)端口,该端口可以暴露(例如,使诸如在主机402上运行的应用的用户可访问)在设备404上运行的操作系统的一个或多个特征。
根据本公开的示例实施例的主机402可以使用图4所示的系统访问设备操作系统的示例操作可以如下进行。主机402可以通过终端应用432接收来自用户的命令。命令可以由图4所示的主机栈处理,例如,通过虚拟文件系统428使用虚拟文件描述器426。可以使用一个或多个驱动器434,通过互连结构410,使用互连的功能而不是用于设备404的正常操作的功能,将命令从主机402传送到设备404。在设备404处,命令可以由设备栈处理,例如,使用可以将命令传递给操作系统内核的一个或多个驱动器442(例如,用一个或多个终端支持驱动器实施的通信逻辑420)。操作系统内核然后可以执行命令。命令的一个或多个输出(例如,调试日志、性能剖析、计算等)可以通过终端应用432使用本质上与发送该命令相反的过程被传送回用户。因此,一个或多个输出可以由设备栈使用一个或多个驱动器442(例如,终端支持驱动器)来处理,驱动器442可以通过互连结构410使用互连的功能而不是用于设备404的正常操作的功能来传送一个或多个输出。在主机402处,命令的一个或多个输出可以由主机栈使用一个或多个驱动器434来处理。然后,虚拟文件系统428使用文件描述器426将一个或多个输出传递给终端应用432。
在一些实施例中,一个或多个驱动器442可以通过向设备404中的互连接口的现有驱动器添加驱动器的功能来实施。在这样的实施例中,硬件驱动器437可能已经存在于设备404的现有驱动器中。在一些实施例中,一个或多个驱动器442可以被配置为使用户能够基于用户的特权级别来访问操作系统的一个或多个特征。
图5示出了根据本公开的示例实施例的可以向用户提供通过互连对设备的嵌入式操作系统的访问的设备的更详细的示例实施例。图5所示的设备可以用于例如实施本文所示的任何设备,包括图3、图4、图9、图10和/或图12所示的设备。
参考图5,设备504可以包括互连接口516、设备控制器515、设备功能544和一个或多个处理器514。
在一些实施例中,设备控制器515可以被配置为使用互连接口516的第一功能“功能A”,并且一个或多个处理器514可以运行具有通信逻辑510的操作系统518,通信逻辑510可以使用互连接口516的第二功能“功能B”暴露操作系统518的一个或多个特征。例如,如果互连接口516用PCIe实施,则设备控制器515可以实施功能0,并且通信逻辑520可以实施功能1。在一些实施例中(例如,PCIe实施方式),第一功能“功能A”和第二功能“功能B”可以由互连作为单独的(例如,逻辑的)设备来处理,即使它们可以用相同的物理设备来实施。在一些实施例中,通信逻辑520可以包括一个或多个终端支持驱动器。
一些实施例还可以包括协议接口548,该协议接口548例如可以在由互连接口516实施的接口之上或者与其集成来实施通信协议。互连接口516和/或协议接口548可以实施任何互连和/或存储协议,包括外围组件PCIe、NVMe、通过结构的NVMe(NVMe-over-fabric,NVMe-oF)、以太网、传输控制协议/互联网协议(TCP/IP)、远程直接存储器访问(RDMA)、融合以太网RDMA(RDMAover Converged Ethernet,ROCE)、光纤通道、InfiniBand、串行ATA(SATA)、小型计算机系统接口(SCSI)、串行附接SCSI(Serial Attached SCSI,SAS)、iWARP等,或其任何组合。例如,在设备504被实施为存储设备的实施例中,互连接口516可以实施PCIe互连,并且协议接口548可以实施NVMe协议。
在一些实施例中,互连接口516、协议接口548和/或设备504的其他组件可以实施一致性(例如,存储器一致性、高速缓存一致性、等)或存储器语义接口,诸如快速计算链接(CXL),和/或一致性协议,诸如CXL.mem、CXL.cache和/或CXL.IO。一致性和/或存储器语义接口和/或协议的其他示例可以包括Gen-Z、一致性加速器处理器接口(CoherentAccelerator Processor Interface,CAPI)、加速器的高速缓存一致性互连(CacheCoherent Interconnect for Accelerators,CCIX)等。
设备功能544可以实施设备504的一个或多个主要功能,诸如用于存储设备的存储介质、用于计算存储设备的一个或多个计算资源、用于加速器的一个或多个处理资源、用于NIC的网络接口硬件等。设备控制器515可以控制对设备功能544的访问和/或操作。例如,如果设备504被实施为存储设备,则设备控制器可以被实施为存储设备控制器。附加地或可替代地,如果设备504被实施为计算存储设备,则设备控制器515可以被实施为计算资源控制器。作为另一示例,如果设备504被实施为NIC,则设备控制器515可以被实施为媒体访问控制器(MAC)。
在一些实施例中,通信逻辑520可以使虚拟终端能够访问操作系统518。例如,如果操作系统518用嵌入式Linux实施,则Linux控制台可以提供对Linux内核的访问,例如,使用Linux内核的虚拟终端(VT)子系统。
在一些实施例中,通信逻辑520的一些或全部可以被实施为一个或多个内核模块。例如,在用嵌入式Linux实施操作系统518的实施例中,通信逻辑520可以包括一个或多个终端支持驱动器,这些终端支持驱动器可以被实施为Linux内核模块,这些Linux内核模块可以是可以按需加载并扩展Linux内核功能的一段或多段代码。
一些实施例还可以包括一个或多个缓冲器546,缓冲器546可以用于缓冲主机和操作系统518之间交换的数据,或者可以使用通信逻辑520控制(例如,启动、监视等)的程序。在一些实施例中,主机和设备504可以以生产者-消费者模型来配置。例如,使用通信逻辑520控制的过程可以作为生产者操作,并将输出数据存储在一个或多个缓冲器(例如,环形缓冲器)546中。诸如用户进程(例如,在主机上运行的应用)的进程可以作为消费者操作,并从一个或多个缓冲器546中检索输出数据。
图5中示出的包括互连接口516、设备控制器515、设备功能544和一个或多个处理器514、通信逻辑520、协议接口548和/或缓冲器546的任何组件可以用软件、硬件或其任何组合来实施,包括组合逻辑、时序逻辑、一个或多个定时器、计数器、寄存器和/或状态机、包括诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器的任何类型的存储器、包括非易失性随机存取存储器(NVRAM)、闪存、永久存储器等或其任何组合的任何类型的非易失性存储器、执行存储在任何类型的存储器中的指令的一个或多个复杂可编程逻辑器件(CPLD)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、中央处理单元(CPU)(例如诸如x86处理器的复杂指令集计算机(CISC)处理器和/或诸如ARM处理器的精简指令集计算机(RISC)处理器)、图形处理单元(GPU)、神经处理单元(NPU)、张量处理单元(TPU)等、或其任何组合。在一些实施例中,一个或多个组件可以被实施为片上系统(SOC)。
在一些实施例中,互连接口516可以包括诸如一个或多个发送器、接收器、缓冲器等电路以通过结构(fabric)510与一个或多个主机和/或其他设备通信。在一些实施例中,任何设备功能544可以包括固定的和/或可编程的功能,以执行任何功能,诸如压缩和/或解压缩、加密和/或解密、微服务、擦除编码、视频编码和/或解码、数据库加速、搜索、机器学习、图形处理等。
在一些实施例中,互连接口516、协议接口548、设备控制器515、一个或多个处理器514、缓冲器546和/或设备功能544的一些或全部功能可以集成到单个组件中。例如,如果设备504被实施为存储设备,则设备控制器515和一个或多个处理器中的至少一个可以被集成在单个组件中。作为另一示例,如果设备504被实施为计算存储设备,则设备功能544中的一个或多个计算资源(例如,可以被配置为对存储在设备504处的存储介质中的数据执行计算的一个或多个处理元件)可以被实施为操作系统518可以在其上运行的FPGA、ASIC等。
在一些实施例中,本文公开的任何终端应用和/或终端可以实施基于连接和/或无连接的通信。
在一些实施例中,通过互连访问设备上的操作系统可以使用户能够通过终端使用由操作系统提供的一些或所有特征,包括以下中的任何或全部:到操作系统的内核的命令行接口、用于跟踪、调试、剖析等的资源、在操作系统上运行的程序(例如,GNU调试器(GDB)、ltrace、strace、dmesg、top、cpuinfo、ebpf工具等)、访问来自程序的日志消息(例如,调试日志)、管理设备(例如,资源、配置、和/或操作)等。取决于实施方式细节,可以通过互连来访问这些特征中的一个或多个,而无需使用诸如电缆之类的附加硬件。
在一些实施例中,通过互连访问设备上的操作系统对于可以运行微服务的设备可能尤其有益。例如,根据本公开的示例实施例,访问设备操作系统可以使用户能够单独监视和/或调试每个微服务。此外,根据本公开的示例实施例,访问设备操作系统可以使用户能够管理和/或控制微服务,例如,启动和/或停止一个或多个微服务(单独地和/或在特定组中)、配置微服务(单独地和/或在特定组中)等。
图6示出了根据本公开的示例实施例的环形缓冲器方案的示例实施例。图6所示的实施例可以用于例如实施图5所示的一个或多个缓冲器546。
参考图6,环形缓冲器646可以用存储器位置(例如,连续的存储器位置)来实施,这些存储器位置可以通过将起始存储器位置的寻址循环到结束存储器地址而被布置成环形(例如,有界缓冲器)。在一些实施例中,主机和设备可以以生产者-消费者模型来配置。例如,使用通信逻辑控制的程序可以作为生产者操作,并将输出数据存储在环形缓冲器646中。用户(例如,在主机上运行的应用)可以作为消费者操作,并从环形缓冲器646中检索输出数据。
环形缓冲器646可以通过将新条目(例如,诸如日志和/或调试消息的输出数据)放置到由生产者索引650指向的存储器位置处的环形缓冲器646中来操作。圆点可以指示被占用的存储器位置。每当新的条目被放置在环形缓冲器646中时,生产者索引650可以被递增以指向下一个可用的存储器位置。可以从由消费者索引652指向的存储器位置处的环形缓冲器646中读取条目。在一些实施例中,生产者(例如,主机)可以确保在由消费者索引652指向的位置被新条目覆盖之前,从该位置读取数据。如果生产者索引650和消费者索引652指向相同的位置,则其可以指示环形缓冲器646是空的。在一些实施例中,环形缓冲器646可以位于主机和设备可以访问的共享存储器位置处。在一些实施例中,环形缓冲器646可以位于主机处、某个其他位置处,或者分布在多个位置之间。
在一些实施例中,环形缓冲器646可以通知用户(例如,在主机上运行的应用)输出数据可用,例如,通过可以用中断(例如,消息通知中断(message signaled interrupt,MSI))、状态寄存器中的状态位等实施的门铃功能。
图7A示出了根据本公开的示例实施例的设备的设备寄存器的示例实施例。为了说明的目的,图7A所示的实施例可以在PCIe寄存器的上下文中描述,但是这些原理可以应用于任何类型的互连。在图7A所示的实施例中,被标识为功能号的三比特可以标识与设备的特定特征相关联的功能。例如,如果图5所示的设备504的实施例是用PCIe示出的,则用于为存储设备控制器515配置的第一功能“功能A”的第一寄存器可以在比特位置8-10处具有比特000(功能0),用于为通信逻辑520配置的第二功能“功能B”的第二寄存器可以在比特位置8-10处具有比特001(功能1)。
图7B示出了根据本公开的示例实施例的系统的查询命令和结果输出的示例实施例,其中该系统具有可以使用互连的功能来访问的设备和设备操作系统。为了说明的目的,图7B所示的实施例示出了命令行界面,其中命令lspci用于确定诸如图5所示的运行Linux操作系统的系统的PCIe配置,但是也可以使用其他互连和/或操作系统。
参考图7B,第一行示出了命令lspci通过过滤器(例如,grep)与流水线一起使用,以将结果缩小到来自制造商A的条目。下面两行的输出可以具有以下格式:[总线]:[槽位].[功能][类别]:[供应商和产品]。因此,第二行示出了设备控制器(例如,图5所示的设备控制器515)可以被配置用于总线60、槽位0、功能0,作为来自制造商A的一类非易失性存储器控制器,作为NVMe SSD控制器。第三行示出了调试控制器(例如,由处理器514使用图5所示的通信逻辑520实施的)可以被配置用于总线60、槽位0、功能1,作为来自制造商A的一类非易失性存储器控制器,作为调试控制器。
图8示出了根据本公开的示例实施例的用于终端程序(也可以称为终端应用)的用户界面的示例实施例,其中该终端程序可以用于通过互连访问设备操作系统。为了说明的目的,图8所示的实施例可以在PCIe互连的上下文中说明,并且通过修改现有的终端程序(诸如PuTTY)来实施,但是用于通过互连访问设备操作系统的终端程序可以用用于任何类型的互连的任何其他修改的和/或定制的软件来实施。参考图8,终端程序可以向用户提供使用PCIe连接到设备操作系统的选项,如单选按钮854所示。
图9示出了根据本公开的示例实施例的其中管理接口可以用于通过互连来访问设备嵌入式操作系统的系统的示例实施例。图9所示的实施例可以包括第一主机902、第二主机962和设备904。第一主机902和设备904可以通过互连结构910连接。第二主机962和设备904可以通过互连结构972连接,在一些实施例中,互连结构972可以是结构910的扩展。
第一主机902可以包括类似于图3所示的一些组件,其中以相同数字结尾的附图标记可以指示可以执行类似功能的组件。然而,图9所示的第一主机902可以包括NVMe驱动器956,该NVMe驱动器956被配置为在由互连接口908实施的PCIe互连之上实施NVMe协议。NVMe驱动器956可以包括部分957,该部分957可以使终端应用932能够通过PCIe接口908作为第二功能“功能B”访问运行在设备904上的操作系统918。第二功能“功能B”可以例如由操作系统918的通信逻辑920来实施。在一些实施例中,NVMe驱动器956的部分957可以与图4所示的一个或多个驱动器434集成,或者以类似的方式实施。
设备904可以包括类似于图5所示的一些组件,其中以相同数字结尾的附图标记可以指示可以执行类似功能的组件。然而,图9所示的设备904可以包括总线接口980。此外,在图9所示的设备904中,协议接口958可以在由互连接口916实施的PCIe互连之上实施NVMe和NVMe管理接口(NVMe-MI)协议。在一些实施例中,NVMe和NVMe-MI接口948可以具有与图4所示的一个或多个驱动器442集成或者以类似方式实施的驱动器。
第二主机962可以被实施为诸如基板管理控制器(BMC)的管理控制器。第二主机962可以包括一个或多个处理器961、互连接口970、远程访问接口974和总线接口978。一个或多个处理器961可以被配置为运行管理应用964、终端应用966和NVMe-MI驱动器968。互连接口970可以被配置为实施PCIe互连。
第二主机962处的总线接口978可以被配置为通过诸如系统管理总线(SMBus)和/或内部集成电路(I2C)总线的管理总线与设备处的总线接口980通信。该管理总线连接可以使管理应用964能够管理设备904的一个或多个管理方面,诸如配置、系统启动、系统复位、固件更新和/或升级、功率监视和/或管理等。远程访问接口974可以使用户能够使用诸如以太网、TCP/IP、RDMA、ROCE、光纤通道、InfiniBand等接口和/或协议,通过远程访问连接976访问一个或多个处理器961。
第二主机962处的NVMe-MI驱动器968可以包括部分969,该部分969可以与图4所示的驱动器434集成在一起,或者以类似的方式实施。因此,除了管理总线982以外,或者作为管理总线982的替代,第二主机962中的一个或多个处理器961可以使用NVMe-MI协议通过PCIe结构972和/或910访问设备操作系统918。
终端应用966也可以使用NVMe-MI协议通过PCIe结构972和/或910访问设备操作系统918。此外,如果远程访问接口974被配置为访问终端应用966,则用户可以使用NVMe-MI协议通过PCIe结构远程地访问设备操作系统918。因此,如上所述,用户可以访问由操作系统918启用的一些或所有特征。
在一些实施例中,交换机可以位于结构910和972的相交处。可替代地,结构972可以连接到设备904的单独的互连端口。尽管图9所示的实施例被示为具有两个主机,但是在其他实施例中,可以仅包括其中一个主机,或者可以包括附加主机。
图10示出了根据本公开的示例实施例的可以向用户提供对设备的嵌入式操作系统的远程访问的系统的实施例。图10所示的系统可以包括类似于图3所示的组件,其中以相同数字结尾的附图标记可以指示可以执行类似功能的组件。然而,在图10所示的实施例中,主机1002可以包括远程访问接口1074。远程访问接口1074可以使用户能够使用诸如以太网、TCP/IP、RDMA、ROCE、光纤通道、InfiniBand等接口和/或协议,通过远程访问连接1076访问一个或多个处理器1006。此外,如果远程访问接口1074被配置为访问终端应用1032,则用户可以使用NVMe-MI协议通过PCIe结构远程地访问设备1004的操作系统1018。因此,如上所述,用户可以远程地访问由通信逻辑1020暴露的一些或所有特征。
在一些实施例中,本文公开的一个或多个设备可以被实施为存储设备。任何这样的存储设备可以使用任何连接器配置(诸如串行ATA(SATA)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、U.2等),以任何形状因子(诸如3.5英寸、2.5英寸、1.8英寸、M.2、企业和数据中心SSD形状因子(EDSFF)、NF1等)实施。
本文公开的任何设备可以全部或部分地与服务器机箱、服务器机架、数据室、数据中心、边缘数据中心、移动边缘数据中心和/或其任何组合一起实施和/或结合其使用。
图11示出了根据本公开的示例实施例的主机装置的示例实施例,其中该主机装置可以用于通过互连向用户提供对设备操作系统的访问。图11中示出的主机装置1100可以包括处理器1102,处理器1102可以包括存储器控制器1104、系统存储器1106、访问逻辑1108和/或互连接口1110,它们可以例如使用CXL来实施。图11所示的任何或所有组件可以通过一个或多个系统总线1112进行通信。在一些实施例中,图11所示的一个或多个组件可以使用其他组件来实施。例如,在一些实施例中,访问逻辑1108可以由执行存储在系统存储器1106或其他存储器中的指令的处理器1102来实施。在一些实施例中,访问逻辑1108可以实施终端应用、设备驱动器等,以使用户能够通过互连访问设备操作系统。
图12示出了根据本公开的示例实施例的可以用于向用户提供对设备程序的访问的存储设备的示例实施例。存储设备1200可以包括设备控制器1202、介质转换层1204、存储介质1206、访问逻辑1208和互连接口1210。图12所示的组件可以通过一个或多个设备总线1212进行通信。在可以将闪存用于一些或所有存储介质1206的一些实施例中,介质转换层1204可以部分或全部实施为闪存转换层(FTL)。在一些实施例中,图12所示的存储设备1200可以用于实施与通过本文公开的互连向用户提供对设备终端的访问相关的任何设备侧功能。例如,在一些实施例中,访问逻辑1208可以实施通信逻辑(例如,一个或多个终端支持驱动器)以使用户能够通过互连访问在存储设备1200上运行的操作系统。在一些其他实施例中,存储设备1200可以可替代地或附加地被实施为任何其他类型的设备,诸如加速器、NIC等。
本文所述的任何功能,包括上述的任何主机功能、设备功能等,可以用硬件、软件或其任何组合来实施,包括组合逻辑、时序逻辑、一个或多个定时器、计数器、寄存器、状态机、诸如DRAM和/或SRAM的易失性存储器、非易失性存储器和/或其任何组合、执行存储在任何类型的存储器中的指令的CPLD、FPGA、ASIC、包括诸如x86处理器的CISC处理器和/或诸如ARM处理器的RISC处理器的CPU、GPU、NPU等。在一些实施例中,一个或多个组件可以被实施为片上系统(SOC)。
图13示出了根据本公开的示例实施例的用于向用户提供对设备终端的访问的方法的实施例。方法可以开始于操作1302。在操作1304处,方法可以在设备处运行操作系统。例如,诸如存储设备、加速器、NIC等设备可以运行嵌入式操作系统。在操作1306处,方法可以使用互连的第一功能与设备通信。例如,设备控制器可以被配置为PCIe互连的功能0。在操作1308处,方法可以使用互连的第二功能与操作系统通信。例如,终端可以被配置为PCIe互连的功能1。方法可以在操作1310处结束。
图13中示出的实施例以及本文描述的所有其他实施例是示例操作和/或组件。在一些实施例中,可以省略一些操作和/或组件,和/或可以包括其他操作和/或组件。此外,在一些实施例中,操作和/或组件的时间和/或空间顺序可以变化。尽管一些组件和/或操作可以被示为单独的组件,但是在一些实施例中,单独示出的一些组件和/或操作可以被集成到单个组件和/或操作中,和/或被示为单个组件和/或操作的一些组件和/或操作可以用多个组件和/或操作来实施。
已经在各种实施方式细节的上下文中描述了上面公开的一些实施例,但是本公开的原理不限于这些或任何其他具体细节。例如,一些功能已经被描述为由特定组件实施,但是在其他实施例中,该功能可以分布在不同位置并具有各种用户界面的不同系统和组件之间。特定实施例被描述为具有特定的过程、操作等,但是这些术语也涵盖其中特定过程、操作等可以用多个过程、操作等来实施,或者其中多个过程、操作等可以集成到单个过程、步骤等中的实施例。对组件或元件的引用可以仅指该组件或元件的一部分。例如,对块的引用可以指整个块或一个或多个子块。在本公开和权利要求中使用诸如“第一”和“第二”之类的术语可能仅仅是为了区分它们所修饰的事物,并且可能不指示任何空间或时间顺序,除非从上下文中明显看出其他情况。在一些实施例中,对事物的引用可以指该事物的至少一部分,例如,“基于”可以指“至少部分基于”等。对第一元件的引用并不意味着第二元件的存在。本文公开的原理具有独立的效用,并且可以单独体现,并且不是每个实施例都可以利用每个原理。然而,这些原理也可以以各种组合来体现,其中一些可以以协同的方式放大各个原理的益处。
根据本专利公开的发明原理,上述各种细节和实施例可以被组合以产生附加的实施例。由于本专利公开的发明原理可以在布置和细节上进行修改,而不背离发明构思,因此这种改变和修改被认为落入所附权利要求的范围内。

Claims (20)

1.一种用于与设备通信的方法,所述方法包括:
在设备处运行操作系统;
使用互连的第一功能与所述设备通信;以及
使用所述互连的第二功能与所述操作系统通信。
2.根据权利要求1所述的方法,其中:
所述操作系统包括通信逻辑;并且
与所述操作系统通信包括与所述通信逻辑通信。
3.根据权利要求2所述的方法,其中:
所述通信逻辑包括一个或多个终端支持驱动器;并且
与所述通信逻辑通信包括使用终端应用与所述一个或多个终端支持驱动器通信。
4.根据权利要求3所述的方法,其中,所述终端应用运行在主机上。
5.根据权利要求1所述的方法,其中,所述互连的第二功能被配置为与控制器一起操作。
6.根据权利要求1所述的方法,其中,与所述操作系统通信包括基于特权信息与所述操作系统通信。
7.根据权利要求1所述的方法,还包括使用所述互连的第二功能来控制所述操作系统上的程序。
8.根据权利要求7所述的方法,其中,所述程序包括调试程序、跟踪程序或剖析程序中的至少一个。
9.根据权利要求1所述的方法,其中,与所述操作系统通信包括由所述设备将与所述互连的第二功能相关联的输出数据存储在缓冲器中。
10.根据权利要求9所述的方法,其中,与所述操作系统通信包括从所述缓冲器读取与所述互连的第二功能相关联的输出数据。
11.根据权利要求8所述的方法,其中,所述缓冲器包括环形缓冲器。
12.根据权利要求9所述的方法,其中,与所述互连的第二功能相关联的输出数据由使用所述互连的第二功能控制的程序生成。
13.根据权利要求1所述的方法,其中,与所述操作系统通信包括使用虚拟终端进行通信。
14.一种设备,包括:
互连接口;
设备控制器,被配置为使用所述互连接口的第一功能进行通信;和
处理器,被配置为运行操作系统;
其中,所述操作系统被配置为使用所述互连接口的第二功能进行通信。
15.根据权利要求14所述的设备,还包括缓冲器,所述缓冲器被配置为:
存储与所述互连接口的第二功能相关联的输出数据;和
使用所述互连接口的第二功能发送所述输出数据。
16.根据权利要求15所述的设备,其中,所述操作系统包括通信逻辑,所述通信逻辑被配置为使用所述互连接口的第二功能进行通信。
17.一种系统,包括:
设备,包括:
设备控制器,被配置为使用互连的第一功能进行通信;和
设备处理器,被配置为运行操作系统,所述操作系统被配置为使用所述互连的第二功能进行通信;和
至少一个主机,包括至少一个主机处理器,所述至少一个主机处理器被配置为:
使用所述互连的第一功能与所述设备通信;和
使用所述互连的第二功能与所述操作系统通信。
18.根据权利要求17所述的系统,其中,所述至少一个主机包括:
第一主机,包括被配置为使用所述互连的第一功能与所述设备通信的第一主机处理器;和
第二主机,包括被配置为使用所述互连的第二功能与所述操作系统通信的第二主机处理器。
19.根据权利要求18所述的系统,其中,所述第一主机包括管理控制器。
20.根据权利要求17所述的系统,其中,所述至少一个主机处理器被配置为使用远程访问协议在所述操作系统和用户之间提供通信。
CN202211249008.2A 2021-10-14 2022-10-12 用于通过互连访问设备操作系统的系统、方法和设备 Pending CN115981730A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163255946P 2021-10-14 2021-10-14
US63/255,946 2021-10-14
US17/522,899 2021-11-09
US17/522,899 US11822490B2 (en) 2021-10-14 2021-11-09 Systems, methods, and devices for accessing a device operating system over an interconnect

Publications (1)

Publication Number Publication Date
CN115981730A true CN115981730A (zh) 2023-04-18

Family

ID=83691299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211249008.2A Pending CN115981730A (zh) 2021-10-14 2022-10-12 用于通过互连访问设备操作系统的系统、方法和设备

Country Status (4)

Country Link
US (2) US11822490B2 (zh)
EP (1) EP4167095A1 (zh)
KR (1) KR20230053496A (zh)
CN (1) CN115981730A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11822490B2 (en) * 2021-10-14 2023-11-21 Samsung Electronics Co., Ltd. Systems, methods, and devices for accessing a device operating system over an interconnect

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999057641A1 (en) 1998-05-01 1999-11-11 Powerquest Corporation Manipulation of virtual and live computer storage device partitions
WO2005036806A2 (en) 2003-10-08 2005-04-21 Unisys Corporation Scalable partition memory mapping system
ATE360826T1 (de) 2004-02-27 2007-05-15 Research In Motion Ltd Methode und vorrichtung für eine erleichterte bestimmung von gps standortinformationen für eine mobilstation ohne unterbrechung der gesprächsverbindung
US8316156B2 (en) * 2006-02-17 2012-11-20 Intel-Ne, Inc. Method and apparatus for interfacing device drivers to single multi-function adapter
US8464260B2 (en) * 2007-10-31 2013-06-11 Hewlett-Packard Development Company, L.P. Configuration and association of a supervisory virtual device function to a privileged entity
US8694891B2 (en) 2011-07-11 2014-04-08 International Business Machines Corporation Log collector in a distributed computing system
US9146812B2 (en) * 2012-02-03 2015-09-29 Dell Products Lp Systems and methods for out-of-band backup and restore of hardware profile information
US9111046B2 (en) * 2013-06-12 2015-08-18 International Business Machines Corporation Implementing capacity and user-based resource allocation for a shared adapter in a virtualized system
US10412230B2 (en) * 2014-07-14 2019-09-10 Google Llc System and method for retail SIM marketplace
US20160072693A1 (en) 2014-09-09 2016-03-10 Avaya Inc. Client-server communication evaluation and diagnostic tool
US9807154B2 (en) 2014-09-26 2017-10-31 Lenovo Enterprise Solutions (Singapore) Pte, Ltd. Scalable logging control for distributed network devices
EP3224712B1 (en) * 2014-11-24 2020-12-02 Intel Corporation Support for application-transparent, highly-available gpu-computing with virtual machine (vm)-checkpointing
US9942900B1 (en) * 2014-11-24 2018-04-10 Google Llc System and method for improved band-channel scanning and network switching
US9459905B2 (en) * 2014-12-16 2016-10-04 International Business Machines Corporation Implementing dynamic SRIOV virtual function resizing
US9923954B2 (en) 2014-12-16 2018-03-20 International Business Machines Corporation Virtual fencing gradient to incrementally validate deployed applications directly in production cloud computing environment
KR102456104B1 (ko) * 2015-08-24 2022-10-19 삼성전자주식회사 데이터 신뢰성에 따라 동작 조건을 변경하는 저장 장치의 동작 방법
US9811276B1 (en) * 2015-09-24 2017-11-07 EMC IP Holding Company LLC Archiving memory in memory centric architecture
US10555435B2 (en) 2015-10-30 2020-02-04 Vapor IO Inc. Hot-pluggable connection for data communications
US10860511B1 (en) 2015-12-28 2020-12-08 Western Digital Technologies, Inc. Integrated network-attachable controller that interconnects a solid-state drive with a remote server computer
US10394472B1 (en) * 2016-03-31 2019-08-27 EMC IP Holding Company LLC Classification and identification from raw data within a memory domain
WO2018182661A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Declarative intentional programming in machine-to-machine systems
US20180335971A1 (en) * 2017-05-16 2018-11-22 Cisco Technology, Inc. Configurable virtualized non-volatile memory express storage
US10901812B2 (en) 2017-09-18 2021-01-26 Rapyuta Robotics Co., Ltd. Managing communication between cloud and heterogeneous devices across networks
KR102331926B1 (ko) * 2017-11-17 2021-11-29 삼성전자주식회사 저장 장치를 포함하는 호스트 시스템의 동작 방법 및 저장 장치 제어기의 동작 방법
US10565014B2 (en) * 2017-12-05 2020-02-18 Western Digital Technologies, Inc. Data processing offload using in-storage code execution
US10834070B1 (en) 2018-01-30 2020-11-10 Dell Products L.P. Remote logging agent for accessing application server log data
US10872007B2 (en) 2018-05-04 2020-12-22 Vmware, Inc. Methods and systems to compound alerts in a distributed computing system
US10810074B2 (en) 2018-12-19 2020-10-20 Microsoft Technology Licensing, Llc Unified error monitoring, alerting, and debugging of distributed systems
US11388054B2 (en) 2019-04-30 2022-07-12 Intel Corporation Modular I/O configurations for edge computing using disaggregated chiplets
US11544133B2 (en) 2019-05-10 2023-01-03 Oracle International Corporation System and method for dynamic log management of stream processing in a distributed environment
US10757251B1 (en) 2019-08-30 2020-08-25 Avaya Inc. Real time sign language conversion for communication in a contact center
US11683393B2 (en) * 2019-09-11 2023-06-20 Intel Corporation Framework for computing in radio access network (RAN)
US11321257B2 (en) * 2019-12-31 2022-05-03 Micron Technology, Inc. Quality of service control of logical devices for a memory sub-system
US11755374B2 (en) * 2020-05-26 2023-09-12 Dell Products L.P. Cloud resource audit system
CN112214277B (zh) 2020-09-04 2024-03-19 深圳航天科技创新研究院 基于虚拟机的操作系统分区方法、装置及介质
US11822490B2 (en) * 2021-10-14 2023-11-21 Samsung Electronics Co., Ltd. Systems, methods, and devices for accessing a device operating system over an interconnect

Also Published As

Publication number Publication date
US11822490B2 (en) 2023-11-21
KR20230053496A (ko) 2023-04-21
US20240086339A1 (en) 2024-03-14
EP4167095A1 (en) 2023-04-19
US20230123082A1 (en) 2023-04-20

Similar Documents

Publication Publication Date Title
CN107209681B (zh) 一种存储设备访问方法、装置和系统
US8874681B2 (en) Remote direct memory access (‘RDMA’) in a parallel computer
US10127170B2 (en) High density serial over LAN management system
US8490113B2 (en) Messaging in a parallel computer using remote direct memory access (‘RDMA’)
KR101807310B1 (ko) 호스트 usb 어댑터 가상화
US20240086339A1 (en) Systems, methods, and devices for accessing a device operating system over an interconnect
CN109815170B (zh) 数据冗余的处理方法及其相关电脑系统
US11741039B2 (en) Peripheral component interconnect express device and method of operating the same
KR20230084300A (ko) 칩 시스템, 가상 인터럽트 처리 방법 및 대응하는 장치
US20130151885A1 (en) Computer management apparatus, computer management system and computer system
US5664198A (en) High speed access to PC card memory using interrupts
CN117349212A (zh) 一种服务器主板及其固态硬盘插入检测方法
CN115454881B (zh) Risc-v架构的调试系统及调试方法
CN113392052B (zh) 一种基于四路服务器的bios系统、方法及计算机可读存储介质
US20220342835A1 (en) Method and apparatus for disaggregation of computing resources
CN112015649A (zh) 一种利用片上协计算核心对主计算核心进行调试的方法
CN115774596A (zh) 数据处理方法、装置及电子设备
CN112579507A (zh) 宿主机与bmc通信的方法、bios、操作系统、bmc和服务器
US20230114636A1 (en) Systems, methods, and devices for accessing a device program on a storage device
CN112052132B (zh) 通过sdio接口调试外挂芯片的方法、装置、设备和介质
CN216014148U (zh) 一种服务器和服务器背板
CN117667465B (zh) 代码共享方法、装置、交换机、多主机系统、设备和介质
US20220137998A1 (en) Storage virtualization device supporting virtual machine, operation method thereof, and operation method of system having the same
CN114579381B (zh) 磁盘阵列远程调试方法、系统、终端及存储介质
KR102532099B1 (ko) 가상 머신을 지원하는 스토리지 가상화 장치, 이의 동작 방법, 및 이를 포함하는 시스템의 동작 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication