KR20070116034A - Asynchronous network stack operation in an operating system independent environment - Google Patents

Asynchronous network stack operation in an operating system independent environment Download PDF

Info

Publication number
KR20070116034A
KR20070116034A KR1020077022155A KR20077022155A KR20070116034A KR 20070116034 A KR20070116034 A KR 20070116034A KR 1020077022155 A KR1020077022155 A KR 1020077022155A KR 20077022155 A KR20077022155 A KR 20077022155A KR 20070116034 A KR20070116034 A KR 20070116034A
Authority
KR
South Korea
Prior art keywords
network
network stack
stack layer
token
layer
Prior art date
Application number
KR1020077022155A
Other languages
Korean (ko)
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 KR1020077022155A priority Critical patent/KR20070116034A/en
Publication of KR20070116034A publication Critical patent/KR20070116034A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Communication Control (AREA)

Abstract

Techniques for operation of an asynchronous stack in a pre-boot environment. A token-based stack design may be used to support communications between network stack layers.

Description

오퍼레이팅 시스템 독립 환경에서의 비동기식 네트워크 스택 동작{ASYNCHRONOUS NETWORK STACK OPERATION IN AN OPERATING SYSTEM INDEPENDENT ENVIRONMENT}ASYNCHRONOUS NETWORK STACK OPERATION IN AN OPERATING SYSTEM INDEPENDENT ENVIRONMENT}

본 발명의 실시예들은 네트워크 스택 동작에 관한 것이다. 보다 구체적으로, 본 발명의 실시예들은 오퍼레이팅 시스템 독립 환경(즉, 프리-부트(pre-boot))에 사용될 수 있는 비동기식 네트워크 스택의 사용에 관한 것이다.Embodiments of the present invention relate to network stack operation. More specifically, embodiments of the present invention relate to the use of an asynchronous network stack that can be used in an operating system independent environment (ie, pre-boot).

전자 장치의 프리-부트 환경은 원격 부트 및/또는 원격 설치 목적들로 사용될 수 있고, 이는 전자 장치의 제어가 오퍼레이팅 시스템으로 넘어가기 전에 전자 장치가 원격 서버로부터 하나 이상의 파일들을 다운로드할 것을 요구할 수 있다. 프리-부트 실행 환경(PXE)에서, 전자 장치는 하나 이상의 원격 서버들로부터 하나 이상의 파일들을 수신할 수 있다. 그러나, 다운로드된 파일들의 수가 증가하고 및/또는 PXE의 기능성이 증가함에 따라, 포켓 전송 및 수신을 위한 현재의 동기식 인터페이스는 시스템 수행에 장애가 될 것이다. 따라서, PXE에서 데이터 업로딩 및 다운로딩을 위한 현재의 기술들은 최적의 수행을 제공하지 않는다.The pre-boot environment of the electronic device may be used for remote boot and / or remote installation purposes, which may require the electronic device to download one or more files from the remote server before control of the electronic device is transferred to the operating system. . In the pre-boot execution environment (PXE), the electronic device may receive one or more files from one or more remote servers. However, as the number of downloaded files increases and / or the functionality of PXE increases, the current synchronous interface for pocket transmission and reception will be a barrier to system performance. Thus, current techniques for data uploading and downloading in PXE do not provide optimal performance.

본 발명의 실시예들은, 예시적으로 도시되지만 이들로 제한되지 않으며, 첨 부된 도면에서 유사한 참조번호들은 유사한 요소들을 나타낸다.Embodiments of the invention are shown by way of example and not limitation, and like reference numerals in the accompanying drawings indicate like elements.

도 1은 토큰을 이용하여 동작하는 비동기식 네트워크 스택의 일 실시예에 대한 개념적 블록도.1 is a conceptual block diagram of one embodiment of an asynchronous network stack operating using tokens.

도 2는 내장된 펌웨어 에이전트(embedded firmware agent)에 대한 일 실시예의 블록도.2 is a block diagram of one embodiment for an embedded firmware agent.

도 3은 비동기식 네트워크 스택에서 계층들 사이의 토큰 전달 시퀀스(token passing sequence)에 대한 일 실시예의 개념적 흐름도.3 is a conceptual flow diagram of one embodiment of a token passing sequence between layers in an asynchronous network stack.

도 4는 토큰을 이용한 미리 요청된/계획된 동작을 취소하기 위하여 비동기식 네트워크 스택에서 계층들 사이의 시퀀스에 대한 일 실시예의 개념적 흐름도.4 is a conceptual flow diagram of one embodiment for a sequence between layers in an asynchronous network stack to cancel a previously requested / planned operation using a token.

도 5는 전자 시스템에 대한 일 실시예의 블록도.5 is a block diagram of one embodiment for an electronic system.

다음의 설명에서, 다수의 특정 상세들이 설명된다. 그러나, 본 발명의 실시예들은 이러한 특정 상세들 없이 실행될 수 있다. 다른 예로서, 본 설명에 대한 이해를 방해하지 않기 위하여 공지된 회로들, 구조들 및 기술들은 상세히 나타내지 않는다.In the following description, numerous specific details are set forth. However, embodiments of the invention may be practiced without these specific details. As another example, well-known circuits, structures and techniques have not been shown in detail in order not to disturb the understanding of the present description.

본 명세서에 오퍼레이팅 시스템 독립 환경에서 비동기식 네트워크 스택 동작을 위한 기술들이 설명된다. 일 실시예로서, 비동기식 동작은 프리-부트 환경에서 혹은 임의의 오퍼레이팅 시스템 독립 환경에서 네트워크 통신들을 위해 이용될 수 있는 토큰-기반 스택 디자인에 의해 지원될 수도 있다. 그 기술은 다양한 동작 계층을 대표하는 네트워크 스택 드라이버들을 위한 비동기식 호출 프레임워 크(calling framework)를 제공한다. 일 실시예로서, 드라이버 동작들(즉, 전송, 수신)이 계획될 수 있다.Techniques for asynchronous network stack operation in an operating system independent environment are described herein. As one embodiment, asynchronous operation may be supported by a token-based stack design that can be used for network communications in a pre-boot environment or in any operating system independent environment. The technology provides an asynchronous calling framework for network stack drivers that represent the various operating layers. As one embodiment, driver operations (ie, transmit, receive) may be planned.

본 명세서에서 비동기식 네트워크 스택의 동작을 지원하는 토큰의 사용을 위한 기술들이 설명된다. 일 실시예로서, 토큰은 다음 네 가지 특징들을 가질 수 있다: 1) 토큰은 (예를 들어, 데이터 패킷을 전송하기 위해, 데이터 패킷을 수신하기 위해) 요청된 행동들, 2) 토큰의 현재 상태 혹은 그 요청결과를 표시하기 위한 상태 표시자(status indicator), 3) 상태 변화의 통지를 제공하는 이벤트, 및 4) 컨텍스트(context)를 식별할 수도 있다. 대안적인 실시예로서, 부가적인 및/또는 다른 토큰 특징들이 지원될 수도 있다.Techniques for use of a token that support the operation of an asynchronous network stack are described herein. As one embodiment, a token may have four characteristics: 1) the token is requested actions (eg, to send a data packet, to receive a data packet), 2) the current state of the token Or a status indicator for indicating the request result, 3) an event providing a notification of status change, and 4) a context. As an alternative embodiment, additional and / or other token features may be supported.

도 1은 토큰을 이용하여 동작하는 비동기식 네트워크 스택에 대한 일 실시예의 개념적 블록도이다. 도 1의 개념적 블록도은 특정 네트워크 계층들 및 프로토콜들을 포함한다; 그러나, 대안적인 실시예에서, 다른 프로토콜들 및/또는 계층들이 지원될 수 있다.1 is a conceptual block diagram of one embodiment for an asynchronous network stack operating using tokens. The conceptual block diagram of FIG. 1 includes specific network layers and protocols; However, in alternative embodiments, other protocols and / or layers may be supported.

일 실시예로서, 각 네트워크 계층에 대한 물리적 구현은 내장된 펌웨어 에이전트(190)와 통신하도록 구성될 수도 있다. 대안적인 실시예로서, 하나 이상의 계층들은 내장된 펌웨어 에이전트(190)와 통신하도록 구성되지 않을 수도 있다. 어플리케이션(100)은 네트워크를 통해 호스트 장치 외부로 통신하는 기능성을 포함하는, 오퍼레이팅 시스템 제어하거나 혹은 아닌, 임의의 타입의 어플리케이션 종류를 나타낼 수도 있다. 어플리케이션(190)은 본 기술 분야에서 알려진 임의의 타입의 어플리케이션일 수도 있다.As one embodiment, the physical implementation for each network layer may be configured to communicate with the embedded firmware agent 190. As an alternative embodiment, one or more layers may not be configured to communicate with the embedded firmware agent 190. The application 100 may represent any type of application, or not operating system control, including functionality to communicate outside of the host device via a network. The application 190 may be any type of application known in the art.

일 실시예로서, 어플리케이션(190)은 MTFTP(Multicast Trivial File Transfer Protocol) 계층(110)에 토큰을 패스함으로써 예를 들어, 네트워크 패킷의 전송과 같은 서비스들을 요청할 수도 있다. 일반적으로, TFTP는 FTP(File Transfer Protocol)보다 사용하기에 단순하나, 더 적은 기능성을 제공하는 전송 프로토콜이다. 예를 들어, TFTP는 사용자 인증 혹은 디렉토리 가시화(directory visibility)를 지원하지 않는다. TFTP는 TCP(Transmission Control Protocol) 보다는 UDP(User Datagram Protocol)을 이용한다. TFTP에 대한 일 실시예는 1992년 7월에 공개된 RFC(Request for Commnents) 1350, Rev.2에 공식적으로 나타나있다.In one embodiment, the application 190 may request services such as, for example, the transmission of network packets by passing the token to the Multicast Trivial File Transfer Protocol (MTFTP) layer 110. In general, TFTP is a transfer protocol that is simpler to use than FTP (File Transfer Protocol) but provides less functionality. For example, TFTP does not support user authentication or directory visibility. TFTP uses User Datagram Protocol (UDP) rather than Transmission Control Protocol (TCP). One embodiment for TFTP is officially shown in Request for Commnents (RFC) 1350, Rev. 2, published in July 1992.

TFTP는 1997년 2월에 공개된 RFC 2090에 나타난 것과 같이 멀티캐스트 옵션(multicast option)을 포함하도록 확장되어왔다. 멀티캐스트 TFTP는 능동적인 클라이언트(active client) 혹은 수동적인 클라이언트(passive client)로서 클라이언트 장치들을 분류한다. 한번에 하나의 능동적인 클라이언트만이 존재한다. 능동적인 클라이언트는 정지-및-대기(stop-and-wait) ARQ 흐름 및 에러 제어 기술을 이용하여 교섭된 그룹 주소(negotiated group address)로 데이터를 다운로드하기 위하여 서버와 통신한다. 요청된 행동이 수행될 때, MTFTP 계층(11)은 그 행동을 요청하는 토큰으로 이벤트 통지를 반환한다. 토큰의 사용 및 이벤트 통지는 어플리케이션(1900)이 동작을 계속하도록 하고, 요청된 행동을 수행하는데 요구되는 시간 동안 다른 일들에 관여하도록 할 수도 있다.TFTP has been extended to include multicast options, as shown in RFC 2090, published in February 1997. Multicast TFTP classifies client devices as either active clients or passive clients. There is only one active client at a time. The active client communicates with the server to download data to the negotiated group address using stop-and-wait ARQ flow and error control techniques. When the requested action is performed, the MTFTP layer 11 returns an event notification to the token requesting that action. The use of the token and event notification may cause the application 1900 to continue to operate and engage in other things for the time required to perform the requested action.

일 실시예에서, 토큰 전달 기술은 각 네트워크 스택 계층 사이에서 사용될 수 있다. 즉, MTFTP 계층(110)과 UDP 계층(120) 사이, UDP 계층(120)과 IP 계 층(130) 사이, IP 계층(130)과 MNP(Managed Network Protocol) 계층 사이, 및 MNP 계층(140)과 NIC 드라이버(150) 사이에서 사용된다.In one embodiment, token transfer techniques may be used between each network stack layer. That is, between the MTFTP layer 110 and the UDP layer 120, between the UDP layer 120 and the IP layer 130, between the IP layer 130 and the managed network protocol (MNP) layer, and the MNP layer 140. And NIC driver 150.

일 실시예에서, MTFTP 계층(110), UDP 계층(120), IP 계층(130) 및 MNP 계층(140)은 계층화된 네트워크 드라이버들을 나타낼 수도 있다. 동기식 네트워크 스택에서, 호출 계층이 요청된 동작을 수행하는 동안 호출 계층은 동작을 정지할 것이다. 반대로, 본 명세서에 설명된 비동기식 네트워크 스택 기술들을 이용함으로써, 계층은 토큰을 이용하여 하위 계층으로부터 동작을 요청하고, 그 동작이 하위 계층에 의해 수행되는 동안 요청된 동작에 독립적인 작업들을 수행할 수도 있다.In one embodiment, MTFTP layer 110, UDP layer 120, IP layer 130 and MNP layer 140 may represent layered network drivers. In a synchronous network stack, the call layer will stop working while the call layer performs the requested operation. Conversely, by using the asynchronous network stack techniques described herein, a layer may request an operation from a lower layer using a token and perform tasks independent of the requested operation while the operation is performed by the lower layer. have.

예를 들어, IP 계층(130)은 수신된 IP 패킷을 요청하고, 수신 토큰 및 연관된 통지 이벤트를 준비할 수도 있다. 수신 토큰을 MNP 계층(140)으로 전달한 이후, IP 계층(130)은 예를 들어, 전송용 패킷 준비와 같은 다른 동작들에 관여할 수도 있다. 패킷이 네트워크로부터 수신되고, MNP 계층(240)에 의해 처리될 때, 수신 패킷은 저장되고, MNP 계층(240)은 IP 계층(140)으로부터 수신한 토큰에 대한 이벤트를 통해 수신된 패킷을 IP 계층(140)에 통지한다. 이벤트에 응답하여, IP 계층(140)은 수신된 패킷을 처리한다.For example, IP layer 130 may request the received IP packet and prepare a reception token and associated notification event. After passing the receiving token to the MNP layer 140, the IP layer 130 may be involved in other operations, such as, for example, preparing a packet for transmission. When a packet is received from the network and processed by the MNP layer 240, the received packet is stored and the MNP layer 240 sends the received packet through an event for a token received from the IP layer 140 to the IP layer. Notify 140. In response to the event, IP layer 140 processes the received packet.

일 실시예로서, 내장된 펌웨어 에이전트(190)는 오퍼레이팅 시스템 독립 환경에서 비동기식 네트워크 스택이 동작하도록 할 수 있다. 도 2는 내장된 펌웨어 에이전트에 대한 일 실시예의 블록도이다. 도 2의 예로서, 내장된 펌 웨어 에이전트는 캘리포니아 산타클라라의 인텔사로부터 이용 가능한, 2003년 11월 26일에 공 개된 EFI 명세(specifications), 버전 1.10에 의해 정의된 것과 같이 EFI(Extensible Firmware Interface)에 따르는 인터페이스를 가질 수도 있다. 대안적 실시예들로서, 다른 펌웨어 컴포넌트들 역시 이용될 수 있다.In one embodiment, the embedded firmware agent 190 may cause the asynchronous network stack to operate in an operating system independent environment. 2 is a block diagram of one embodiment for an embedded firmware agent. As an example of FIG. 2, an embedded firmware agent is available from Intel Corporation of Santa Clara, California, as defined by the EFI specifications published on November 26, 2003, version 1.10, Extensible Firmware Interface (EFI). It may have an interface that conforms to As alternative embodiments, other firmware components may also be used.

일 실시예로서, 내장된 펌웨어 에이전트는 시스템 인터페이스(205)와 연결된 에이전트 버스(200)을 포함할 수도 있다. 시스템 인터페이스(205)는 내장된 펌웨어 에이전트가 호스트 시스템과 통신하는 인터페이스를 제공할 수도 있다. 내장된 펌웨어 에이전트는 내장된 펌웨어 에이전트가 원격 전자 장치와 통신하도록 하는 외부 네트워크(도 2에 나타내지 않음)와 연결되어 있는 에이전트 네트워크 인터페이스(250)을 더 포함할 수도 있다. 에이전트 네트워크 인터페이스(250)는 유선 및/또는 무선 네트워크 통신을 지원할 수도 있다.In one embodiment, the embedded firmware agent may include an agent bus 200 coupled with the system interface 205. System interface 205 may provide an interface through which the embedded firmware agent communicates with a host system. The embedded firmware agent may further include an agent network interface 250 that is connected to an external network (not shown in FIG. 2) that allows the embedded firmware agent to communicate with a remote electronic device. Agent network interface 250 may support wired and / or wireless network communications.

일 실시예에서, 내장된 펌웨어 에이전트는 에이전트 버스(200)와 연결될 수도 있는 다이나믹 메모리(dynamic memory, 220)를 더 포함한다. 다이나믹 메모리(220)는 동작 동안 이용될 명령들 및/또는 데이터를 위한 저장소(storage)를 제공한다. 내장된 펌웨어 에이전트는 정적(static) 데이터 및/또는 명령들을 저장하기 위해 에이전트 버스(200)와 연결될 수도 있는 비-휘발성 저장소(non-volatile storage, 210)를 더 포함할 수 있다. 일 실시예에서, 내장된 펌웨어 에이전트는 다이나믹 메모리(220) 및/또는 비-휘발성 저장소(210)에 의해 제공된 제어 동작들 및/또는 실행 명령들을 수행할 수도 있는 에이전트 버스(200)와 연결된 제어 회로(230)를 포함한다.In one embodiment, the embedded firmware agent further includes a dynamic memory 220 that may be coupled with the agent bus 200. Dynamic memory 220 provides storage for instructions and / or data to be used during operation. The embedded firmware agent may further include non-volatile storage 210, which may be coupled with the agent bus 200 to store static data and / or instructions. In one embodiment, the embedded firmware agent is in control circuitry coupled with an agent bus 200 that may perform control operations and / or execution instructions provided by dynamic memory 220 and / or non-volatile storage 210. 230.

일 실시예로서, 내장된 펌웨어 에이전트는 호스트 오퍼레이팅 시스템에 대해 독립적인 동작들을 지원할 수도 있다. 이러한 동작들은 예를 들어, 오퍼레이팅 시스템이 로딩되기 전에, 또는 오퍼레이팅 시스템이 로딩되는 중이지만 오퍼레이팅 시스템에 제어를 전송하기 전에 수행되는 프리-부트 동작들일 수도 있다. 이러한 동작들은 또한 호스트 오퍼레이팅 시스템이 호스트 전자 장치를 제어할 경우, 호스트 오퍼레이팅 시스템에 독립적이다. 예를 들어, 일 실시예로서, 내장된 펌웨어 에이전트는 예를 들어, 팬티엄(Pentium) 프로세서의 SMI 핀 혹은 이태니엄(Itanium) 프로세서의 PMI 핀(일반적으로, xMI 라인으로 인터럽트 인터페이스를 통해 호스트 프로세서에 연결될 수도 있다. 다른 시스템 차단 신호들은 다른 프로세서들을 위해 이용될 수도 있다.As one embodiment, the embedded firmware agent may support independent operations for the host operating system. Such operations may be, for example, pre-boot operations performed before the operating system is loaded or before the operating system is loading but before transferring control to the operating system. These operations are also independent of the host operating system when the host operating system controls the host electronic device. For example, as an example, the embedded firmware agent may be connected to the host processor via an interrupt interface, e.g., the SMI pin of a Pentium processor or the PMI pin of an Itanium processor (typically, an xMI line). Other system shutdown signals may be used for other processors.

본 명세서에 나타낸 것과 같이, 토큰들의 이용으로 계층 동작들이 스케줄 가능하게 되어있으므로, 예를 들어, 하이퍼스래딩(hyperthreading), 멀티-프로세서 및 멀티-스래딩(threading)을 포함하는 병행 기술이 펌웨어 레벨 디자인에 포함되고, 스택 드라이버들이 병행 동작들을 수행하도록 할 수도 있다. 예로서, 인터럽트 혹은 타이머의 이용으로, 내장된 펌웨어 에이전트는 예를 들어, 배경 웹 서버 혹은 배경 텔넷(telnet) 서버를 포함하는 네트워크 동작들이 프리-부트 혹은 오퍼레이팅 시스템 독립 환경에서 지원될 수 있도록 비동기 네트워크 스택과 상호작용한다. 토큰에 의해 지원될 수도 있는 상태 및/혹은 컨텍스트의 이용은 동기적 스택 구성들에 의해 요구될 수도 있는 것과 같이 다른 채널들의 이용없이 네트워크 스택 계층들이 상태를 통신하도록 할 수도 있다.As indicated herein, hierarchical operations are made schedulable with the use of tokens, so that parallel techniques, including, for example, hyperthreading, multi-processor and multi-threading, are firmware level. It is also included in the design and may allow stack drivers to perform parallel operations. By way of example, with the use of interrupts or timers, the built-in firmware agent can be configured to asynchronous network so that network operations including, for example, a background web server or background telnet server can be supported in a pre-boot or operating system independent environment. Interact with the stack. The use of state and / or context that may be supported by the token may allow network stack layers to communicate state without the use of other channels, such as may be required by synchronous stack configurations.

도 3은 비동기식 네트워크 스택에 계층들 사이의 토큰 전달 시퀀스에 대한 일 실시예의 개념적 흐름도이다. 일 실시예에서, 상위 네트워크 스택은 특별한 동작(즉, 패킷의 전송 또는 수신)을 요청하기 위해 토큰을 생성하거나 또는 준비할 수도 있다. 일 실시예로서, 토큰은 요청된 동작의 상태 혹은 컨텍스트를 통신하는데 이용될 수 있는 통지 이벤트 및/또는 컨텍스트 정보를 포함할 수도 있다. 일 실시예로서, 상위 스택 계층은 하위 스택 계층에 토큰을 전달하기 위해 하위 스택 계층에 대한 방법 혹은 기능을 호출할 수도 있다.3 is a conceptual flow diagram of one embodiment for a token transfer sequence between layers in an asynchronous network stack. In one embodiment, the higher network stack may generate or prepare a token to request special actions (ie, sending or receiving packets). As one embodiment, the token may include notification event and / or context information that can be used to communicate the state or context of the requested operation. In one embodiment, the higher stack layer may invoke a method or function on the lower stack layer to pass tokens to the lower stack layer.

토큰 수신에 응답하여, 하위 스택 계층은 토큰으로 요청된 동작(즉, 전송, 수신)을 수행 및/또는 스케줄링할 수도 있다. 요청된 동작의 완료시에, 하위 스택 계층은 요청된 동작의 완료를 내장된 펌웨어 에이전트에 통신하는 신호 이벤트를 생성하거나 혹은 준비할 수도 있다. 일 실시예로서, 내장된 펌웨어 에이전트는 이벤트 통지로 요청된 동작 완료에 대해 상위 스택 계층에 통지할 수도 있다. 이벤트 통지 수신에 응답하여, 상위 스택 계층은 임의의 동작 완료 처리를 수행하고 토큰을 삭제할 수도 있다.In response to receiving the token, the lower stack layer may perform and / or schedule the requested operation (ie, transmit, receive) with the token. Upon completion of the requested operation, the lower stack layer may generate or prepare a signal event to communicate the completion of the requested operation to the embedded firmware agent. In one embodiment, the embedded firmware agent may notify the upper stack layer about the completion of the operation requested by the event notification. In response to receiving the event notification, the higher stack layer may perform any operation completion process and delete the token.

도 4는 토큰을 이용하여 이전에 요청된/스케줄링된 동작을 취소하기 위해 비동기식 네트워크 스택의 계층들 사이의 시퀀스에 대한 일 실시예의 개념적 흐름도이다. 일 실시예에서, 상위 네트워크 스택은 이전에 생성된 토큰을 취소하기 위해 취소 요청을 생성하거나 또는 준비할 수도 있다. 일 실시예에서, 취소 요청은 토큰의 상태 혹은 컨텍스트를 통신하는데 이용될 수 있는 토큰 및/혹은 컨텍스트 정보를 포함할 수도 있다.4 is a conceptual flow diagram of one embodiment for a sequence between layers of an asynchronous network stack to cancel a previously requested / scheduled operation using a token. In one embodiment, the higher network stack may generate or prepare a cancellation request to revoke a previously generated token. In one embodiment, the cancellation request may include token and / or context information that can be used to communicate the state or context of the token.

일 실시예에서, 상위 스택 계층은 취소 요청을 하위 스택 계층으로 전달하기 위해 하위 스택 계층의 방법 혹은 기능을 호출할 수도 있다. 취소 요청 수신에 응답하여, 하위 스택 계층은 토큰에 의해 식별된 이전 동작을 중단하고, 그 다음 신호 이벤트(signal event)를 내장된 펌웨어 에이전트에 생성하거나 혹은 준비할 수도 있다. 일 실시예에서, 내장된 펌웨어 에이전트는 디스패치 이벤트 신호(dispatch event signal)를 상위 스택 계층에 전송하여, 상위 스택 계층이 임의의 에러 처리를 수행하고 토큰을 삭제할 수도 있다.In one embodiment, the higher stack layer may invoke the methods or functions of the lower stack layer to forward cancellation requests to the lower stack layer. In response to receiving the cancellation request, the lower stack layer may abort the previous operation identified by the token and then create or prepare a signal event in the embedded firmware agent. In one embodiment, the embedded firmware agent may send a dispatch event signal to the higher stack layer, where the higher stack layer may perform any error handling and delete the token.

일 실시예에서, 도 3 및 도 4의 기술들은 전자 시스템에 의해 실행되는 명령들로써 이행될 수 있다. 명령들은 전자 장치에 의해 저장되기도 하고 또는 명령들은 전자 장치에 의해(즉, 네트워크 접속을 통해서) 수신될 수 있다. 도 5는 전자 시스템에 대한 일 실시예의 블록도이다. 도 5에 나타낸 전자 시스템은 예를 들어, 컴퓨터 시스템들, 네트워크 액세스 장치들 등과 같은 전자 시스템의 범위를 나타내도록 의도된다. 대안적인 전자 혹은 비-전자 시스템들은 더 적은 및/또는 다른 컴포넌트들을 포함할 수 있다. 도 5의 전자 시스템은 하나 이상의 클라이언트 장치들뿐만 아니라 서버 장치를 나타낼 수도 있다.In one embodiment, the techniques of FIGS. 3 and 4 may be implemented with instructions executed by an electronic system. The commands may be stored by the electronic device or the commands may be received by the electronic device (ie, via a network connection). 5 is a block diagram of one embodiment for an electronic system. The electronic system shown in FIG. 5 is intended to represent a range of electronic systems such as, for example, computer systems, network access devices, and the like. Alternative electronic or non-electronic systems may include fewer and / or other components. The electronic system of FIG. 5 may represent a server device as well as one or more client devices.

전자 시스템(500)은 정보를 통신하기 위한 버스(505) 또는 다른 통신 장치 및 정보를 처리하기 위해 버스(505)에 연결된 프로세서(510)를 포함한다. 전자 시스템(500)이 단일 프로세서를 포함하여 나타낸 반면, 전자 시스템(500)은 다중 프로세서들 및/또는 코-프로세서들을 포함할 수 있다. 전자 시스템(500)은 프로세서(510)에 의해 실행될 정보 및 명령들을 저장하기 위해 버스(505)와 연결된 RAM(random access memory) 혹은 다른 다이나믹 저장 장치(520, 메모리로서 지칭 됨)를 더 포함한다. 메모리(520)는 또한 프로세서(510)에 의한 명령 실행 동안 일시적인 변화들 또는 다른 중간 정보를 저장하는데 이용될 수 있다.The electronic system 500 includes a bus 505 or other communication device for communicating information and a processor 510 coupled to the bus 505 for processing information. While electronic system 500 is shown with a single processor, electronic system 500 may include multiple processors and / or co-processors. The electronic system 500 further includes a random access memory (RAM) or other dynamic storage device 520 (referred to as memory) coupled with the bus 505 for storing information and instructions to be executed by the processor 510. Memory 520 may also be used to store temporary changes or other intermediate information during instruction execution by processor 510.

전자 장치(500)는 또한 프로세서(510)용 정적 정보 및 명령들을 저장하기 위해 버스(5050)와 연결된 ROM(read only memory) 및/또는 다른 정적 저장 장치(510)를 더 포함한다. 일 실시예에서, 정적 저장 장치(530)는 내장된 펌웨어 에이전트를 포함할 수 있다. 대안적인 실시예에서, 다른 펌웨어 컴포넌트들이 또한 이용될 수 있다.Electronic device 500 further includes read only memory (ROM) and / or other static storage device 510 coupled with bus 5050 to store static information and instructions for processor 510. In one embodiment, the static storage device 530 may include an embedded firmware agent. In alternative embodiments, other firmware components may also be used.

데이터 저장 장치(540)는 정보 및 명령들을 저장하기 위해 버스(505)와 연결된다. 자기 디스크(magnetic disk) 혹은 광 디스크와 같은 데이터 저장 장치(540) 및 대응하는 드라이브가 전자 시스템(500)과 연결될 수 있다.The data storage device 540 is connected with the bus 505 to store information and commands. A data storage device 540, such as a magnetic disk or an optical disk, and a corresponding drive may be connected with the electronic system 500.

전자 시스템(500)은 또한 사용자에게 정보를 디스플레이하기 위해 CRT(cathode ray tube) 혹은 LCD(liquid crystal display)와 같은 디스플레이 장치(550)에 버스(505)를 통해 연결될 수 있다. 문자 숫자식 및 다른 키들을 포함하는, 문자 숫자식 입력(alphanumeric input) 장치(560)는 전형적으로 프로세서(510)에 정보 및 커맨드 선택들(command selections)을 통신하기 위해 버스(505)에 연결된다. 사용자 입력 장치의 다른 종류는 프로세서(510)에 방향 정보 및 커맨드 선택들을 통신하고, 디스플레이(550)에 대한 커서 움직임을 제어하기 위한 마우스, 트랙볼(trackball), 혹은 커서 방향 키들과 같은 커서 제어(570)이다. 전자 시스템(500)은 근거리 네트워크(local area network)와 같은 네트워크에 액세스를 제공하는 네트워크 인터페이스(580)를 더 포함한다. 네트워크 인터페이스(580)는 당업 계에서 알려진 임의의 프로토콜에 따른 무선 네트워크 인터페이스를 제공하는 하나 이상의 안테나(585)를 더 포함할 수도 있다.The electronic system 500 may also be connected via a bus 505 to a display device 550 such as a cathode ray tube (CRT) or a liquid crystal display (LCD) to display information to a user. An alphanumeric input device 560, including alphanumeric and other keys, is typically connected to bus 505 to communicate information and command selections to processor 510. . Another type of user input device communicates direction information and command selections to the processor 510 and cursor controls 570 such as a mouse, trackball, or cursor direction keys to control cursor movement for the display 550. )to be. The electronic system 500 further includes a network interface 580 that provides access to a network, such as a local area network. The network interface 580 may further include one or more antennas 585 that provide a wireless network interface according to any protocol known in the art.

명령들은 하나 이상의 전자적으로-액세스 가능한 미디어 등에 유선 혹은 무선의 액세스를 제공하는 원격 접속(즉, 네트워크 인터페이스(580)을 통한 네트워크로)을 통해 자기 디스크, ROM 집적 회로, CD-ROM, DVD와 같은 저장 장치로부터 메모리에 제공된다. 대안적인 실시예로서, 하드-와이어드(hard-wired) 회로는 소프트웨어 지시들 대신에 혹은 결합하여 이용될 수 있다. 따라서, 명령들의 실행 시퀀스는 하드웨어 회로 소자 및 소프트웨어 명령들의 임의의 특정 결합에 한정되지 않는다.Instructions may be used such as magnetic disks, ROM integrated circuits, CD-ROMs, DVDs, or the like via a remote connection (i.e., to a network via network interface 580) to provide wired or wireless access to one or more electronically accessible media. From storage to memory. As an alternative embodiment, hard-wired circuitry may be used instead of or in combination with software instructions. Thus, the execution sequence of instructions is not limited to any particular combination of hardware circuitry and software instructions.

전자적으로-액세스 가능한 매체는 전자 장치(즉, 컴퓨터, 개인용 휴대용 정보 단말기, 핸드폰)에 의해 읽을 수 있는 형태로 컨텐트(즉, 컴퓨터 실행가능한 명령들)를 제공(즉, 저장 및/또는 전송)하는 임의의 메카니즘을 포함한다. 예를 들어, 머신-액세스 가능한 매체는 ROM(read only memory); RAM(random access memory); 자기 디스크 저장 매체; 광 저장 매체; 플래쉬 메모리 장치들; 전파된 신호들(즉, 반송파(carrier wave), 적외선 신호들, 디지털 신호들)의 전자, 광, 음향적 혹은 다른 형태 등을 포함한다.Electronically-accessible media provide (ie, store and / or transmit) content (ie, computer executable instructions) in a form readable by an electronic device (ie, computer, personal digital assistant, mobile phone). It includes any mechanism. For example, machine-accessible media include read only memory (ROM); Random access memory (RAM); Magnetic disk storage media; Optical storage media; Flash memory devices; Electronic, optical, acoustical or other forms of propagated signals (ie, carrier waves, infrared signals, digital signals), and the like.

본 명세서에 " 일 실시예" 혹은 "실시예"로 참조된 것은 실시예와 관련되어 설명된 특별한 특징, 구조, 혹은 특성이 본 발명의 적어도 일 실시예에 포함된다는 것을 의미한다. 명세서 다양한 곳에 "일 실시예"의 구문에 대한 표현은 모두 동일한 실시예로 참조할 필요가 없다.Reference herein to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. The appearances of the phrase "one embodiment" in various places in the specification are not necessarily all referring to the same embodiment.

본 발명은 여러 실시예들에 대해 설명된 반면, 당업자들은 본 발명이 설명된 실시예에 한정되지 않으며, 부가된 특허청구범위들의 사상 및 범위 내에서 수정 및 변경이 실행될 수 있음을 인지할 것이다. 그러므로, 설명은 한정하는 것이 아니라 예시적인 것으로써 간주된다.While the invention has been described in terms of various embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described, but modifications and variations may be made within the spirit and scope of the appended claims. Therefore, the description is to be regarded as illustrative instead of limiting.

Claims (20)

오퍼레이팅 시스템 독립 환경에서 토큰-기반 비동기식 계층간 통신 프로토콜을 이용하여 제1 네트워크 스택 계층에서 제2 네트워크 스택 계층으로 제1 네트워크 동작에 대한 요청을 송신하는 단계;Transmitting a request for a first network operation from a first network stack layer to a second network stack layer using a token-based asynchronous inter-layer communication protocol in an operating system independent environment; 상기 제1 네트워크 스택 계층에 의해, 상기 제1 네트워크 동작 완료 표시를 수신하기 전에 제2 네트워크 동작을 수행하는 단계; 및Performing, by the first network stack layer, a second network operation before receiving the first network operation complete indication; And 상기 제1 네트워크 동작 완료에 응답하여 내장된 펌웨어 에이전트를 통해 상기 제2 네트워크 스택 계층에서 상기 제1 네트워크 스택 계층으로 상기 제1 네트워크 동작의 완료 표시를 송신하는 단계Transmitting a completion indication of the first network operation from the second network stack layer to the first network stack layer through an embedded firmware agent in response to completing the first network operation. 를 포함하는 방법.How to include. 제1항에 있어서,The method of claim 1, 상기 제1 네트워크 스택 동작은 데이터 전송 동작을 포함하는 방법.Wherein the first network stack operation comprises a data transfer operation. 제1항에 있어서,The method of claim 1, 상기 제1 네트워크 스택 동작은 네트워크 접속을 통한 데이터의 수신을 포함하는 방법.And said first network stack operation comprises receiving data over a network connection. 제1항에 있어서,The method of claim 1, 상기 오퍼레이팅 시스템 독립 환경은 프리-부트 실행 환경(pre-boot execution environment)을 포함하는 방법.And said operating system independent environment comprises a pre-boot execution environment. 제1항에 있어서,The method of claim 1, 상기 제1 네트워크 스택 계층 및 상기 제2 네트워크 스택 계층은 비동기식 토큰-기반 네트워크 스택을 지원하는 호스트 시스템에 내장된 펌웨어 에이전트와 둘 다 통신가능하게 연결되는 방법.The first network stack layer and the second network stack layer are both communicatively coupled with a firmware agent embedded in a host system supporting an asynchronous token-based network stack. 제1항에 있어서,The method of claim 1, 상기 완료 표시는 적어도 상기 토큰을 포함하는 방법.The completion indication includes at least the token. 오퍼레이팅 시스템 독립 방식으로 기능할 수 있는 내장된 펌웨어 에이전트;An embedded firmware agent capable of functioning in an operating system independent manner; 토큰을 포함하는 요청을 이용하여 상위 네트워크 스택 계층에서 하위 네트워크 스택 계층으로 제1 네크워크 동작에 대한 요청을 송신하고, 상기 상위 네트워크 스택 계층에 의해 상기 제1 네트워크 동작 완료 표시를 수신하기 전에 제2 네트워크 동작을 수행하며, 상기 제1 네트워크 동작의 완료에 응답하여 내장된 펌웨어 에이전트를 통해 상기 제2 네트워크 스택 계층에서 상기 제1 네트워크 스택 계층으로 상기 제1 네트워크 동작 완료의 표시를 송신하도록 상기 내장된 펌웨어 에이전트와 통신가능하게 연결되어 토큰-기반 비동기식 계층간 통신 프로토콜을 지원하는 제어 회로Send a request for a first network operation from a higher network stack layer to a lower network stack layer using a request including a token, and before receiving the first network operation complete indication by the higher network stack layer; The embedded firmware to perform an operation and transmit an indication of the completion of the first network operation from the second network stack layer to the first network stack layer via an embedded firmware agent in response to completion of the first network operation. Control circuitry communicatively connected to the agent to support token-based asynchronous interlayer communication protocols 를 포함하는 장치.Device comprising a. 제7항에 있어서,The method of claim 7, wherein 상기 제1 네트워크 스택 동작은 데이터 전송 동작을 포함하는 장치.Wherein the first network stack operation comprises a data transfer operation. 제7항에 있어서,The method of claim 7, wherein 상기 제1 네트워크 스택 동작은 네트워크 접속을 통한 데이터의 수신을 포함하는 장치.And said first network stack operation comprises receiving data over a network connection. 제7항에 있어서,The method of claim 7, wherein 상기 오퍼레이팅 시스템 독립 환경은 프리-부트 실행 환경을 포함하는 장치.And the operating system independent environment comprises a pre-boot execution environment. 제7항에 있어서,The method of claim 7, wherein 상기 완료 표시는 적어도 상기 토큰을 포함하는 장치.And the completion indication comprises at least the token. 명령들이 저장된 컴퓨터-판독 가능한 매체를 포함하는 물품으로서,An article comprising a computer-readable medium having stored thereon instructions, 상기 명령들은, 실행될 때, 하나 이상의 프로세싱 컴포넌트들로 하여금,The instructions, when executed, cause one or more processing components to: 오퍼레이팅 시스템 독립 환경에서 토큰-기반 비동기식 계층간 통신 프로토콜을 이용하여 제1 네트워크 스택 계층에서 제2 네트워크 스택 계층으로 제1 네트워크 동작에 대한 요청을 송신하고;Send a request for a first network operation from a first network stack layer to a second network stack layer using a token-based asynchronous inter-layer communication protocol in an operating system independent environment; 상기 제1 네트워크 스택 계층에 의해 상기 제1 네트워크 동작의 완료 표시를 수신하기 전에 제2 네트워크 동작을 수행하며;Perform a second network operation before receiving an indication of completion of the first network operation by the first network stack layer; 상기 제1 네트워크 동작 완료에 응답하여 내장된 펌웨어 에이전트를 통해 상기 제2 네트워크 스택 계층에서 상기 제1 네트워크 스택 계층으로 상기 제1 네트워크 동작 완료 표시를 송신하도록In response to completing the first network operation to send the first network operation complete indication from the second network stack layer to the first network stack layer via an embedded firmware agent. 하는 물품.Goods to say. 제12항에 있어서,The method of claim 12, 상기 제1 네트워크 스택 동작은 데이터 전송 동작을 포함하는 물품.And said first network stack operation comprises a data transfer operation. 제12항에 있어서,The method of claim 12, 상기 제1 네트워크 스택 동작은 네트워크 접속을 통한 데이터의 수신을 포함하는 물품.And said first network stack operation comprises receiving data over a network connection. 제12항에 있어서,The method of claim 12, 상기 오퍼레이팅 시스템 독립 환경은 프리-부트 실행 환경을 포함하는 물품.The operating system independent environment includes a pre-boot execution environment. 제12항에 있어서,The method of claim 12, 상기 완료 표시는 적어도 상기 토큰을 포함하는 물품.And the completion indication comprises at least the token. 하나 이상의 프로세싱 컴포넌트들;One or more processing components; 상기 하나 이상의 프로세싱 컴포넌트들과 연결된 네트워크 인터페이스; 및A network interface coupled with the one or more processing components; And 상기 하나 이상의 프로세싱 컴포넌트들과 연결되고 명령들이 저장된 컴퓨터-판독 가능한 매체Computer-readable media associated with the one or more processing components and storing instructions 를 포함하며,Including; 상기 명령들은, 실행될 때, 상기 하나 이상의 프로세싱 컴포넌트들로 하여금, 오퍼레이팅 시스템 독립 환경에서 토큰-기반 비동기식 계층간 통신 프로토콜을 이용하여 제1 네트워크 스택 계층에서 제2 네트워크 스택 계층으로 제1 네트워크 동작에 대한 요청을 송신하고, 상기 제1 네트워크 스택 계층에 의해 상기 제1 네트워크 동작의 완료 표시를 수신하기 전에 제2 네트워크 동작을 수행하며, 상기 제1 네트워크 동작의 완료에 응답하여 내장된 펌웨어 에이전트를 통해 상기 제2 네트워크 스택 계층에서 상기 제1 네트워크 스택 계층으로 상기 제1 네트워크 동작 완료 표시를 송신하도록 하는 시스템.The instructions, when executed, cause the one or more processing components for a first network operation from a first network stack layer to a second network stack layer using a token-based asynchronous inter-layer communication protocol in an operating system independent environment. Send a request, perform a second network operation before receiving the completion indication of the first network operation by the first network stack layer, and through the embedded firmware agent in response to the completion of the first network operation; And transmit the first network operation complete indication from a second network stack layer to the first network stack layer. 제17항에 있어서,The method of claim 17, 상기 제1 네트워크 스택 동작은 데이터 전송 동작을 포함하는 시스템.Wherein the first network stack operation comprises a data transfer operation. 제17항에 있어서,The method of claim 17, 상기 제1 네트워크 스택 동작은 네트워크 접속을 통한 데이터의 수신을 포함하는 시스템.The first network stack operation includes receiving data over a network connection. 제17항에 있어서,The method of claim 17, 상기 오퍼레이팅 시스템 독립 환경은 프리-부트 실행 환경을 포함하는 시스템.The operating system independent environment includes a pre-boot execution environment.
KR1020077022155A 2007-09-28 2005-03-05 Asynchronous network stack operation in an operating system independent environment KR20070116034A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020077022155A KR20070116034A (en) 2007-09-28 2005-03-05 Asynchronous network stack operation in an operating system independent environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020077022155A KR20070116034A (en) 2007-09-28 2005-03-05 Asynchronous network stack operation in an operating system independent environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020107012881A Division KR101059668B1 (en) 2005-03-05 2005-03-05 Asynchronous network stack operation in an operating system independent environment

Publications (1)

Publication Number Publication Date
KR20070116034A true KR20070116034A (en) 2007-12-06

Family

ID=39142082

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077022155A KR20070116034A (en) 2007-09-28 2005-03-05 Asynchronous network stack operation in an operating system independent environment

Country Status (1)

Country Link
KR (1) KR20070116034A (en)

Similar Documents

Publication Publication Date Title
US6795864B2 (en) System using lookup service proxy object having code and request rate for managing rate at which client can request for services from server are transmitted
KR101059668B1 (en) Asynchronous network stack operation in an operating system independent environment
JP5479513B2 (en) Remote control framework
JP6707153B2 (en) Secure configuration of cloud computing nodes
KR100953004B1 (en) Server side tftp flow control
KR20090003224A (en) Network interface routing using computational context
US10313448B2 (en) Employing an auxiliary device to implement USB device redirection
JP2005310130A (en) Method, system, and program for executing data transfer request
WO2019195086A1 (en) Customized service request permission control system
CN111258723B (en) Transaction processing method, device, system, medium and equipment of distributed system
KR100953005B1 (en) Self-adaptive multicast file transfer protocol
US11736435B2 (en) Automatic IPV6/IPV4 fallback approach in proxy networks
US10742776B1 (en) Accelerating isochronous endpoints of redirected USB devices
EP4210303A1 (en) Preemptive tcp connections to reduce latency for proxies
US20110138067A1 (en) Cluster View Performance
KR20070116034A (en) Asynchronous network stack operation in an operating system independent environment
EP1734443A1 (en) Access to a mobile device from another device
US11431826B2 (en) Secure demand-driven file distribution
US11494197B2 (en) Enabling a pre-boot screen to be accessed remotely
US10691630B2 (en) State-based IRP management for redirected device
JP2006085281A (en) Application control system and application control method
WO2012132102A1 (en) Network system, processing terminals, program for setting wait times, and method for setting wait times
WO2013191973A1 (en) Automated controlling of host over network

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
A107 Divisional application of patent
J121 Written withdrawal of request for trial
WITB Written withdrawal of application