KR20180121775A - 데이터에 대한 요청들을 조정하고 인증하기 위한 방법 및 장치 - Google Patents

데이터에 대한 요청들을 조정하고 인증하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20180121775A
KR20180121775A KR1020187025004A KR20187025004A KR20180121775A KR 20180121775 A KR20180121775 A KR 20180121775A KR 1020187025004 A KR1020187025004 A KR 1020187025004A KR 20187025004 A KR20187025004 A KR 20187025004A KR 20180121775 A KR20180121775 A KR 20180121775A
Authority
KR
South Korea
Prior art keywords
bmc
requests
request
queues
queued
Prior art date
Application number
KR1020187025004A
Other languages
English (en)
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 인텔 코포레이션
Publication of KR20180121775A publication Critical patent/KR20180121775A/ko

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • 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
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/24Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using dedicated network management hardware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/344Out-of-band transfers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

데이터에 대한 요청들을 조정하고 인증하기 위한 방법 및 장치. 일 실시예에서, 이러한 장치는, BMC(baseboard management controller); 및 BMC에 연결되어 BMC 요청들을 인터셉트하고 BMC에 인터셉트된 요청들을 제공하는 요청 조정기를 포함하고, 조정 인터페이스는, BMC 요청들 각각에 대한 파라미터들을 파싱하는 요청 파서, BMC가 다른 BMC 요청을 서비스하는 동안 요청들을 저장하는 하나 이상의 큐, 및 BMC에 개별 BMC 요청들을 전송하는 명령 제출기를 포함하고, BMC는 조정 인터페이스로부터 수신되는 BMC 요청들에 대한 응답들을 생성하도록 그리고 조정 인터페이스에 응답들을 전송하도록 동작 가능하다.

Description

데이터에 대한 요청들을 조정하고 인증하기 위한 방법 및 장치
본 발명의 실시예들은, 예를 들어, HPC(High Performance Computing)와 같은 노드 기반 컴퓨팅 시스템들에서의 요청 취급의 분야에 관련되고; 보다 자세하게는, 본 발명의 실시예들은 센서 관련 요청들을 큐잉하고 처리하여 이러한 요청들에 응답하는 것을 거절해야 하는 것을 회피하는 것에 관련된다.
예를 들어, 클라우드 서비스들과 같은 서비스들을 제공하는 시스템들은 종종 수 십만 대의 서버들을 이용하여 이러한 서비스들을 제공한다. 많은 서버들이 구체적인 타입들의 작업량들 또는 태스크들에 대해 사용된다. 태스크들에 의존하여, 전력 성능 트레이드오프들이 존재할 수 있다. 이러한 시스템들은 HPC(High Performance Computing)를 포함한다.
서버 노드 밀도는 현재와 예견 가능한 미래에 극적으로 증가하고 있다. 많은 설계들에서, 다수의 노드들은 공통 전원들을 공유하고 하나의 블레이드 상에 배치된다. 이러한 노드들 및 블레이드 서버에 대한 전력을 관리하는 것은 노드들 밀도 및 비용에 영향을 미치는 핵심 요인이다.
전력 관리는 서버 시스템들에 대해 필수적이므로, 시스템 및 작업 전력 모니터링 목적으로 시스템에서의 모든 노드의 전력을 얻을 필요가 있다. 대부분의 서버 노드들 상에는, 전력 쿼리들을 서비스하는 것을 담당하는 마스터 제어기 또는 코-프로세서가 존재한다. 예를 들어, BMC(Board Management Controller)가 많은 OEM들(Original Equipment Manufacturer)에 의해 널리 사용된다. 느린 전력 샘플링 및 평균화의 본성으로 인해, BMC를 통한 전력 쿼리는 느리고, 레이턴시는 수 밀리 초 내지 수 백 밀리 초 범위이다. BMC는 자신의 현재 트랜잭션을 완료하기 이전에, 새로운 요청자를 서비스할 수 없다. 레이턴시가 길기 때문에, 오늘날의 HPC 시스템들 상에서, BMC가 종종 플러딩된다. BMC가 바쁠 때 도착하는 요청들은 "BMC being busy" 에러와 함께 리턴된다. 이러한 타입의 문제점은 본 명세서에서 "서비스의 거부(denial of service)"라고 지칭된다.
확실히, 이러한 에러들이 너무 많으면 노드 전력 샘플들 손실을 초래한다. 시간이 지남에 따라 전력이 변화하는 애플리케이션들을 실행하는 서버 시스템들에 대해, 이는 전력 모니터링의 부정확성을 초래할 수 있다. 전력 제어 액션들(예를 들어, 노드 당, 랙 당 또는 작업 당 새로운 전력 한도들을 설정함)은 일반적으로 현재 및 과거 전력 소비에 의존하므로, 이러한 부정확성은 잘못된 전력 제어 액션에 이를 수 있다.
DCM(Data Center Manager)과 같은 일부 관리 소프트웨어는 전력 판독들을 얻기 위해서 뿐만 아니라 노드가 온라인인지 응답 상태에 있는지의 검출을 위해 BMC의 리턴 메시지들을 사용한다. 서비스의 거부를 종종 수신하면, 이러한 소프트웨어는 노드가 모니터링될 수 없다고 및/또는 전력이 제어될 수 없다고 생각할 것이고 재시도하는데 꽤 긴 시간 동안 기다릴 것이다. 이것은 성능 손실을 초래한다.
서비스의 거부는 성능 조절을 또한 야기할 수 있다. 예를 들어, 전력 관리 소프트웨어가 특정 노드 상에서 고주파(예를 들어, P-상태 P0 또는 P1)를 설정하기를 원하지만, 해당 노드의 BMC가 다른 요청들을 서비스하고 있어 바쁘기 때문에 해당 요청을 서비스하는 것을 거절하면, 노드는 더 낮은 P-상태(예를 들어, P8/P9)에서 실행되도록 강제될 수 있고 성능 손실을 겪을 수 있다.
RAS(Reliability, Availability, and Serviceability)는 서버들의 큰 그룹 상에서 또한 일반적인 능력이다. 서비스의 거부는 RAS 데이터베이스에서 불완전한 데이터를 초래할 수 있다. ORCM(Open Resilient Cluster Manager) RAS 검증 동안, 양자 모두 BMC를 통해 IPMI(Intelligent Platform Management Interface) 센서들을 액세스할 필요가 있는 2개의 소프트웨어 인스턴스들의 공존이 이러한 문제점을 경험하는 것으로 발견되었다.
본 발명은 이하 주어지는 상세한 설명으로부터 그리고 본 발명의 다양한 실시예들의 첨부 도면들로부터 보다 완전하게 이해될 것이고, 이들은, 그러나, 단지 설명 및 이해를 위한 것이고, 본 발명을 구체적인 실시예들에 제한하려는 것으로 취해져서는 안 된다.
도 1은 센서에 대한 버스티(bursty) BMC 요청들의 그룹을 도시한다.
도 2는 본 명세서에 설명되는 큐 및 쿼리 처리 기술들을 사용하는 결과들을 도시한다.
도 3은 랙 서버 시스템의 일 실시예의 블록도이다.
도 4는 쿼리/요청 조정기 및 BMC를 포함하는 관리 제어기를 도시한다.
도 5는 요청 조정기의 일 실시예의 블록도이다.
도 6a는 요청 조정기를 사용하여 BMC 요청들을 취급하는 프로세스의 일 실시예의 흐름도이다.
도 6b는 하나의 요청으로부터의 응답을 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 프로세스의 일 실시예의 흐름도이다.
도 7은 요청 조정기의 명령 제출기 및 값 전달기에 의해 수행되는 프로세스의 일 실시예의 흐름도이다.
도 8은 일 실시예에 따른 데이터 처리 시스템(800)을 도시한다.
다음의 설명에서, 다수의 상세 사항들이 본 발명의 보다 철저한 설명을 제공하기 위해 제시된다. 그러나, 이러한 구체적인 상세 사항들 없이 본 발명이 실시될 수 있다는 점이, 해당 분야에서의 숙련자에게, 명백할 것이다. 다른 경우들에서, 본 발명을 불명료하게 하는 것을 회피하기 위해, 잘 알려진 구조들 및 디바이스들은 상세히 보다는 블록도 형태로 도시된다.
도 1은 센서에 대한 버스티(bursty) BMC 요청들의 그룹을 도시한다. 이러한 센서는, 예를 들어, PSU(power supply unit) 입력 전력 센서일 수 있다. 도 1을 참조하면, 요청자들 #1 내지 #3 각각은 3개의 별개의 요청들을 제공한다. 일 실시예에서, 요청자들은 IPMI 액세스 라이브러리, IPMI 플러그-인, 제3자 IPMI 애플리케이션 또는 툴을 사용하는 임의의 소프트웨어 엔티티일 수 있다. BMC가 요청을 서비스하는 중이면, BMC는 현재 요청을 서비스하는 것을 완료한 이후에만 다음 요청을 서비스할 수 있다. 따라서, BMC가 요청을 이미 서비스하는 중인 동안 발생하는 임의의 요청들에 대해, BMC는 이러한 요청자들을 서비스할 수 없기 때문에, 요청들을 거절한다. 이러한 경우, BMC는 "BMC being busy" 에러와 함께 리턴한다. 이것은 "서비스의 거부(denial of service)"라고 지칭된다.
서비스의 거부 문제점을 해결하기 위해, 일 실시예에서, BMC와 같은 관리 엔티티에 전송되는 요청들을 취급하는데 조정 엔티티가 사용된다. 일 실시예에서, 이러한 엔티티는 관리 엔티티를 대신하여 모든(또는 일부 큰 부분) 관리(예를 들어, BMC) 요청들 및 버퍼링 요청들의 집성 포인트이다.
도 2는 본 명세서에 설명되는 큐 및 쿼리 처리 기술들을 사용하는 결과들을 도시한다. 도 2를 참조하면, 본 명세서에 설명되는 기술들을 사용하여, 도 1로부터의 요청들의 동일한 세트가 도시되고, 이전에 거절된 것들이 버퍼링되는 중이다. 일 실시예에서, 요청의 리턴 값은 요청을 충족시키는데 사용된다.
일 실시예에서, 사용자들이 BMC 요청들(특히, 루트 컴플렉스와 같은 슈퍼 사용자)을 독립적으로 제출하는 자유를 갖는 로컬 노드에서, 이러한 엔티티는 OS(operating system) 커널 또는 커널 모드에서 실행되는 IPMI 드라이버에 상주하고, 이로부터 이러한 엔티티가 BMC 요청들을 인터셉트한다. 다른 실시예에서, 대역-외 BMC 요청들을 취급하기 위해, 조정 엔티티는 BMC 펌웨어에 상주한다. 이러한 경우, 소프트웨어 기반 집성이 필요하지 않을 수 있다. 대역-내 및 대역-외 요청들 양자 모두를 캐시할 필요가 있을 수 있다.
일 실시예에서, 조정 엔티티는 동일한 큐에서 동일한 입력 파라미터들로 BMC 요청들을 큐잉한다. 이들은 서로 근접하여(예를 들어, 다음에) 큐잉될 수 있다. 동일한 큐에서, 다른 요청을 서비스하는 동안 수신되는 요청은 BMC에 실제로 제출되지 않는다. 대신, 이러한 요청은 가장 최근 서비스의 리턴 값과 함께 리턴된다.
일 실시예에서, 다른 BMC 요청의 리턴 값이 사용되어서는 안 된다는 점을 인증 결과들이 표시하면, 이러한 요청은 재스케줄링되고 BMC에 실제로 전달될 것이다.
일 실시예에서, 실제 BMC 서비스 시간이 매우 길면, 리턴되는 값은 진부할 수 있고, 캐시로부터의 데이터는 사용될 수 없다. 이러한 경우, 이러한 요청은 재스케줄링되고 BMC에 실제로 전달된다.
본 명세서에 설명되는 기술들은 동일한 IPMI 정보 쿼리(예를 들어, 상이한 요청자들이 동일한 노드 전력을 요구함)에 대한 BMC의 서비스의 거부 문제점을 회피한다. 따라서, 서비스의 거부 유발 백-오프 문제점이 회피된다. 예를 들어, 성능 조절의 많은 부분이 제거될 수 있다.
BMC 서비스의 거부의 감소는 서버 전력 모니터링의 충실도를 또한 증가시킨다는 점에 주목한다.
따라서, 본 명세서에 설명되는 기술들을 사용하여, 조정 엔티티는 위에 설명되는 서비스의 거부 및 시스템 문제점들을 초래할 수 있는 서비스 요청들로 BMC를 플러딩할 수 있는 악의적 소프트웨어로부터 서버들을 보호할 수 있다.
도 3은 랙 서버 시스템의 일 실시예의 블록도이다. 도 3을 참조하면, 랙 서버 시스템은 RMC(rack management controller)(301)에 통신 가능하게 연결되는 몇몇 노드들 1 내지 N을 포함한다. 이들은 컴퓨트 또는 컴퓨터 노드들일 수 있다. 일 실시예에서, 노드는 적어도 하나의 CPU(central processing unit), 메모리, 및 I/O(input/output)를 갖춘 논리적으로 독립적인 컴퓨터 시스템이다. 일 실시예에서, 노드들 1 내지 N은, 대응하는 데이터 송신 동작들을 실행하기 위해, 스위치 유닛을 통해 RMC(301)에 연결된다. 또한, 랙 서버 시스템은 기본 장비 및 서비스 IaaS(infrastructure as a service, IaaS)를 제공하는 랙 데이터 센터일 수 있고, 스위치 유닛은 스위치 허브일 수 있다.
노드들 1 내지 N 각각은 접속 인터페이스(311), 관리 제어기(312), 메모리(313), 센서들 및 제어 회로(314), 및 하나 이상의 프로세서(또는 CPU)(315)를 포함한다. 일 실시예에서, 관리 제어기(312)는 BMC(baseboard management controller)를 포함한다. 관리 제어기(312)는 각각의 노드를 관리하는데 사용되고, 각각의 노드에 대한 관리 하드웨어 및 소프트웨어를 포함할 수 있다. 전력, 온도, 운영 체제 상태 등과 같은, 시스템 관리 정보가 관리 제어기(312)에 의해 수집될 수 있다.
프로세서(315)는 메모리(315)에 저장되는 명령어들을 실행하기 위한 하나 이상의 실행 코어를 갖는 하나 이상의 CPU를 가질 수 있다. 일 실시예에서, 센서들 및 제어 회로(314)는 노드 내에서 다양한 동작 및 성능 관련 파라미터들을 측정하는 센서 디바이스들을 포함한다. 이러한 센서 디바이스들은 다양한 동작 및 성능 관련 파라미터들 중 하나 이상을 측정하거나 또는 검출하도록 구성되거나 또는 프로그래밍되는 하드웨어 또는 소프트웨어 기반 컴포넌트들일 수 있다. 센서들은, 이에 제한되는 것은 아니지만, 회전 속도계들, 열 센서들, 전압 미터들, 앰프 미터들, 에너지 미터들 및 팬 속도 센서들을 포함한다. 관리 제어기(312)는 분석을 위해, 보다 자세하게는 "이벤트(event)"가 노드 내에서 발생하는지에 관한 결정을 위해, 센서들에 의해 감지되는 이러한 정보를 통신 버스를 통해 수신할 수 있다.
도시되지는 않지만, 노드들 1 내지 N 각각은 전원을 포함한다. 이러한 전원은 동작들의 수행을 가능하게 하기 위해 노드들 및 그 컴포넌트들에 전력을 전달하도록 제어될 수 있다.
일 실시예에서, 관리 제어기(312)는 노드들 1 내지 N의 동작 상태들을 검출하기 위해 전원에 연결되어, 노드들 1 내지 N에 대응하는 전력 정보를 제공한다. 이러한 전력 정보는 노드들 1 내지 N의 전압들, 전류들, 및 전력 소비들 등을 포함한다.
일 실시예에서, 관리 제어기(312)는 범용 컴퓨터 시스템이다. 다른 실시예에서, 관리 제어기(312)는 "특수 목적(special purpose)" 컴퓨터 시스템, 또는 클라이언트-서버 네트워크와 같은 하나보다 많은 인터커넥트되는 시스템을 포함하는 시스템이다. 사실, 관리 제어기(312)는 단지 본 개시 내용의 예시적인 실시예를 표현하고, 따라서, 어떠한 방식으로든 본 개시 내용을 제한하는 것으로 고려되어서는 안 된다. 위에 논의된 바와 같이, 일 실시예에서, 관리 제어기(312)는 BMC를 포함한다. 해당 분야에서의 숙련자는 관리 제어기(312) 대신에 다른 유사한 디바이스들이 사용될 수 있다는 점을 인식할 것이다. 일 실시예에서, BMC는 하나 이상의 프로세서 및/또는 코-프로세서, 메모리, 메모리에 저장되는 펌웨어, 및 네트워크 인터페이스 제어기를 포함한다.
관리 제어기(312)는 노드들 1 내지 N에서의 컴포넌트들에 통신 가능하게 접속된다. 일 실시예에서, 관리 제어기(312)는 인터커넥트 또는 다른 인터페이스를 통해 노드 컴포넌트들에 접속된다. 일 실시예에서, 관리 제어기(312)는, 시스템 모니터링 및 이벤트 복구를 위해 해당 분야에서 잘 알려진 IPMI(Intelligent Platform Management Interface)를 통해 노드 컴포넌트들에 접속되고, 온도, 전압, 팬 속도, 섀시 침입, 및 다른 파라미터들을 판독하는 미리 정의된 명령들의 세트를 포함한다.
일 실시예에서, 관리 제어기(312)는, 랙 관리 제어기(301)로부터, 네트워크 또는 다른 외부 인터페이스를 통해 IPMI 메시지들과 같은 외부 요청들을 수신한다. 이들은, 예를 들어, Get Sensor Reading과 같은 명령들을 포함할 수 있고, 데이터가 구해지는 구체적인 센서를 식별하는 정보를 포함할 수 있다. 이러한 통신은, 예를 들어, 인터넷, LAN(local area network) 또는 WAN(wide area network)과 같은, 네트워크를 통해 이루어질 수 있다.
일 실시예에서, 관리 제어기는 BMC를 포함하고, 랙 서버 시스템은 BMC에 대한 요청들을 위한 인터페이스로서 작용하는 조정 엔티티를 포함한다. 도 4는 쿼리/요청 조정기(401) 및 BMC(402)를 포함하는 관리 제어기를 도시한다. 보다 구체적으로, 일 실시예에서, 쿼리/요청 조정기는 모든 BMC 요청들을 인터셉트하고 그들의 파라미터들을 파싱한다. 쿼리/요청 조정기는 BMC 요청들을 큐잉한다. 일 실시예에서, 쿼리/요청 조정기는 다수의 큐들(또는 메모리의 그 기능적 등가물 및 포인터들의 사용)을 사용하고, 동일한 정보에 대한 요청들을 동일한 큐에 배치한다.
요청들로 BMC를 플러딩하는 대신에, 쿼리/요청 조정기는 한 번에 하나의 요청만이 BMC에 가는 것을 허용한다. BMC가 요청들에 응답하여 값들을 리턴할 때, 동일한 타입의 큐잉된 요청들이 체크되어 동일한 값(들)에 대해 다른 큐잉된 요청들이 존재하는지 결정한다. 그렇다면, 리턴 값들은 계류 중인 요청들에 전달된다.
도 5는 요청 조정기의 일 실시예의 블록도이다. 조정 엔티티는 BMC, 또는 다른 관리 제어기의 일부일 수 있거나, 또는 BMC로부터 분리될 수 있다는 점에 주목한다. 일 실시예에서, 유닛들 또는 모듈들 각각은 하드웨어(회로, 전용 로직 등), (범용 컴퓨터 시스템 또는 전용 머신 상에서 실행되는 것과 같은) 소프트웨어, 펌웨어, 또는 이러한 3개의 조합을 포함할 수 있다.
도 5를 참조하면, 전력 쿼리들 1 내지 N이 BMC에 전송된다. 요청 조정기(500)는 이러한 전력 쿼리들을 인터셉트한다. 일 실시예에서, 요청 파서(501)는 BMC 요청들의 파라미터들을 파싱하여 BMC가 서비스하기 위한 하나 이상의 원자성 동작들을 생성한다. 예를 들어, 하나의 전력 쿼리는 "ipmiutil get raw sensor READEIN for PSU#1 at address 0x3f8"일 수 있다. 일 실시예에서, 각각의 쿼리는 하나 이상의 파라미터를 포함할 수 있고, 이들은 모두 BMC(402)에 대한 별개의 요청들로 분리된다. 일 실시예에서, 이러한 파라미터들은 센서들 및 그들의 판독들 또는 측정들에 관련되는 데이터를 제공하라는 센서 요청들에 관련된다. 일 실시예에서, 파라미터는 미리 정의된 원격 측정 명칭 또는 원시 센서의 어드레스이다. 두 경우 모두 이들은 하나씩 취급된다: 툴이 1개 이상의 파라미터를 제출하면 툴 내부에서 또는 하위 라이브러리에서 명령이 다수의 것들로 분할된다.
요청 파서(501)는 파싱된 요청 파라미터들을 명령 제출기/값 전달기(503)에 전송할 수 있고, 이는 한 번에 하나씩 BMC 요청을 BMC(402)가 바쁘지 않으면 BMC 인터페이스(504)를 통해 BMC에 또는 BMC(402)가 바쁘면 요청 큐(들)(502)에 전송한다.
일 실시예에서, 요청 큐(들)(502)는 하나의 요청 큐를 포함한다. 다른 실시예에서, 요청 큐(들)(502)는 다수의 큐들을 포함하고, 각각의 큐는 동일한 입력 파라미터를 저장하도록 지정된다. 이러한 경우, 동일한 큐에서의 모든 BMC 요청들이 동일한 정보를 요청한다. 따라서, 일 실시예에서, BMC(402)에 의해 서비스되는 중인 요청의 리타이어먼트 이전에, 동일한 타입의 다른 요청들은 서비스하기 위해 큐에서 대기한다. 일 실시예에서, 시작 및 종료 타임스탬프들이 큐에 각각의 엔트리와 함께 또한 저장된다.
명령 제출기 및 값 전달기(503)는 BMC 요청들을 BMC에 전달한다. 일 실시예에서, 단지 하나의 BMC 요청이 한 번에 명령 제출기 및 값 전달기(503)로 이동된다. 위에 언급된 바와 같이, 이것은 요청 파서(501)로부터 새롭게 수신되는 요청 또는 큐(들)(502)에 저장되는 대기 중인 요청일 수 있다. 이것은 BMC(402)가 한 번에 하나의 요청만 서비스하기 때문이다.
일 실시예에서, 명령 제출기 및 값 전달기(503)는, 요청 조정기(500)의 메모리에 저장되거나, 또는 이에 의해 액세스 가능한 인증 정보(505)를 사용하여 각각의 요청을 인증하는 인증 체크를 수행한다. 일 실시예에서, 요청이 인증되지 않으면, 이는 재구성된다. 다른 실시예에서, 이러한 요청은 거절된다.
일 실시예에서, 명령 제출기 및 값 전달기(503)는, 요청 조정기(500)의 메모리에 저장되거나, 또는 이에 의해 액세스 가능한 데이터 신선도 표시자(506)를 사용하여 데이터 신선도 체크를 수행한다. 일 실시예에서, 신선도는 리턴되는 데이터가 너무 오래되었는지를 의미한다. 리턴되는 데이터를 보면, 일 실시예에서, 조정 엔티티는 데이터를 버퍼링하고 데이터에 대해 타임스탬프 T를 추가한다. 예를 들어, T=03/24/16-11:45:53.123456pm이다. 100 마이크로 초 이후, 03/24/16-11:45:53.123556pm, 동일한 데이터에 대한 다른 유입 요청이 존재한다. 해당 데이터 중 임의의 것이 50us 동안만 신선한 것으로 미리 정의되면, 이러한 데이터는 새로운 요청에 리턴되기에는 너무 오래된 것이다.
리턴되는 값이 충분히 신선하고 인증 규칙들의 위반이 존재하지 않는다면, 명령 제출기 및 값 전달기(503)는 리턴 값을 큐(들)(502)에서 대기 중인 BMC 요청들에 전달한다. 이와 연관되는 임의의 값들을 포함하는, BMC로부터 수신되는 응답들이 요청자들에게 리턴될 준비가 될 때, 명령 제출기 및 값 전달기(503)는 리턴 버퍼(507)를 통해 요청자들에게 이들을 전송한다.
도 6a는 요청 조정기를 사용하여 BMC 요청들을 취급하는 프로세스의 일 실시예의 흐름도이다. 일 실시예에서, 이러한 프로세스는 하드웨어(회로, 전용 로직 등), (범용 컴퓨터 시스템 또는 전용 머신 상에서 실행되는 것과 같은) 소프트웨어, 펌웨어, 또는 이러한 3개의 조합을 포함할 수 있는 처리 로직에 의해 수행된다. 일 실시예에서, 도 6a의 프로세스는 요청 조정기에 의해 수행된다.
도 6a를 참조하면, 이러한 프로세스는 BMC(baseboard management controller)에 대한 것인 BMC 요청들을 수신하는 처리 로직에 의해 시작한다(처리 블록 601). 이러한 요청들을 수신하는 것에 응답하여, 처리 로직은 BMC 요청들 각각에 대한 파라미터들을 파싱하고(처리 블록 602), BMC가 다른 BMC 요청을 서비스하는 동안 하나 이상의 큐에 이러한 요청들을 저장한다(처리 블록 603). 일 실시예에서, BMC가 다른 BMC 요청을 서비스하는 동안 하나 이상의 큐에 이러한 요청들을 저장하는 것은 복수의 큐들에 이러한 요청들을 저장하는 것을 포함하고, 각각의 큐는 동일한 타입의 요청(예를 들어, 동일한 센서 어드레스 또는 동일한 미리 정의된 원격 측정 명칭)을 저장한다.
처리 로직은 BMC가 다른 BMC 요청을 더 이상 서비스하지 않을 때 서비스하기 위해 개별 BMC 요청들을 BMC에 제출한다(처리 블록 604). 즉, BMC가 BMC 요청을 서비스하느라 바쁘지 않을 때, 다른 BMC 요청이 서비스하기 위해 이에 전송될 수 있다.
후속하여, 처리 로직은 BMC로부터 BMC 요청에 대한 응답들(예를 들어, 응답 값들)을 수신하고(처리 블록 605), 이러한 응답들을 요청자들에게 전송한다(처리 블록 605).
일 실시예에서, 처리 로직은 하나의 요청에 응답하여 BMC로부터 수신되는 응답 정보를 복수의 큐들에 저장되는 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달한다(처리 블록 606). 도 6b는 하나의 요청으로부터의 응답을 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 프로세스의 일 실시예의 흐름도이다. 일 실시예에서, 이러한 프로세스는 하드웨어(회로, 전용 로직 등), (범용 컴퓨터 시스템 또는 전용 머신 상에서 실행되는 것과 같은) 소프트웨어, 펌웨어, 또는 이러한 3개의 조합을 포함할 수 있는 처리 로직에 의해 수행된다. 일 실시예에서, 도 6b의 프로세스는 요청 조정기에 의해 수행된다.
도 6b를 참조하면, 이러한 프로세스는 BMC로부터 정보가 수신되는 시간이 다른 큐잉된 요청들에 대한 타이밍 완료 임계값 내에 있는지 명시하는 표시자를 생성하는 것에 의해 시작한다(처리 블록 611). 처리 로직은 하나 이상의 큐잉된 요청 각각을 또한 인증한다(처리 블록 612). 이러한 동작들의 결과들에 기초하여, 처리 로직은, 하나의 요청에 응답하여 BMC로부터 수신되는 정보를, 정보가 수신되는 시간이 하나 이상의 다른 큐잉된 요청에 대한 타이밍 완료 임계값 내에 있다고 표시자가 표시하는 하나 이상의 다른 큐잉된 요청에 대해서만 그리고 인증된 하나 이상의 다른 큐잉된 요청 각각에 대해서만 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달한다(처리 블록 613).
도 7은 요청 조정기의 명령 제출기 및 값 전달기에 의해 수행되는 프로세스의 일 실시예의 흐름도이다. 일 실시예에서, 이러한 프로세스는 하드웨어(회로, 전용 로직 등), (범용 컴퓨터 시스템 또는 전용 머신 상에서 실행되는 것과 같은) 소프트웨어, 펌웨어, 또는 이러한 3개의 조합을 포함할 수 있는 처리 로직에 의해 수행된다. 일 실시예에서, 이러한 프로세스는 모든 BMC 쿼리들에 대해 수행된다.
도 7을 참조하면, 이러한 프로세스는 BMC 요청을 수신하는 것에 의해 시작한다(처리 블록 701). 이러한 요청을 수신에 응답하여, 처리 로직은 BMC가 바쁜지 결정한다(처리 블록 602). BMC는 이전에 수신된 BMC 요청을 취급하는 중이기 때문에 바쁠 수 있다. BMC가 바쁘고 현재 시간에 요청들을 취급할 수 없는 다른 이유들이 존재할 수 있다.
BMC가 바쁘지 않고, 따라서, 요청을 서비스하는 것을 취급할 수 있으면, 처리 로직이 요청의 타임스탬프를 저장하는 처리 블록 721로 처리 로직이 천이한다. 일 실시예에서, 이러한 타임스탬프는 요청들을 저장하는데 사용되는 큐들(예를 들어, 도 5의 큐(들)(502))에 저장된다. 또한 BMC에 요청을 전송하는 부분으로서, 처리 로직은 BMC가 바쁘다는 점을 표시하는 바쁨 표시자(예를 들어, 레지스터 비트, 마커 등)를 설정한다(처리 블록 722). 이것은 BMC에 다른 요청을 전송할지 결정할 때 체크될 것이다. 처리 로직은 BMC에 의해 서비스하기 위해 이러한 요청을 전송한다(처리 블록 723).
후속하여, BMC는 요청을 서비스한 결과들을 전송하고, 이들은 명령 제출기 및 값 전달기의 처리 로직에 의해 수신된다. 처리 로직은 이러한 결과들을 다른 대기 중인 요청들에 전송한다(처리 블록 724). 즉, BMC로부터 돌아오는 결과들은 BMC가 서비스하고 있던 요청을 충족시킬 수 있을 뿐만 아니라 이전에 또는 BMC가 현재 요청을 서비스하고 있던 시간 동안 큐잉된 다른 요청들을 충족시킬 수 있다. 처리 로직은 BMC가 더 이상 바쁘지 않다는 점을 표시하도록 바쁨 표시자를 또한 설정한다(처리 블록 725).
처리 블록 702에서 BMC가 바쁘다고 처리 로직이 결정하면, 요청이 인증되었는지 처리 로직이 체크하는 처리 블록 703으로 프로세스가 천이한다. 인증 체크는 많은 형태들을 취할 수 있다. 일 실시예에서, 인증 체크는 요청을 생성하는 요청자가 센서 값을 판독하는 것을 허용하는 권리 또는 특권 레벨을 갖는지 체크하는 증명 기반 인증 체크이다. 다른 실시예에서, 인증 체크는 설정 또는 값이 필요할 때 대 이러한 값이 제공될 수 있을 때를 비교하고, 이러한 비교에 기초하여 요청이 인증되는지 표시한다. 예를 들어, 요청이 1 msec 내에 이러한 값을 필요로 하지만 응답이 2 msec 동안 이용 가능하지 않으면, 요청은 인증되지 않을 것이다. 요청이 인증 체크를 통과하지 못하면, 요청 조정기는 요청을 신뢰할 수 없고, 프로세스는 요청이 재-제출(예를 들어, 다시 시작)을 위해 구성되는 처리 블록 710으로 그리고 다음으로 다음 BMC 요청을 위해 프로세스가 반복되는 처리 블록 701로 천이한다.
요청이 인증되었으면, 요청이 데이터 신선도 체크를 통과했는지 처리 로직이 테스트하는 처리 블록 704로 프로세스가 천이한다. 일 실시예에서, 데이터 신선도 체크는 적어도 하나의 임계값을 사용하여 BMC로부터의 응답과 함께 리턴되는 중인 데이터(예를 들어, BMC 레이턴시)가 그것이 리턴되어야할 때였는지 결정한다. 일 실시예에서, 이러한 임계값은 미리 설정된다. 이러한 임계값은 (예를 들어, 관리자의 경험 및/또는 제품/고객들의 요건들에 따라) 여러 방식들로 결정될 수 있지만 BMC의 통상적인 지연보다 더 길다. 요청이 데이터 신선도 체크를 통과하지 못하면, 프로세스는 요청이 재-제출을 위해 구성되는 처리 블록 710으로 그리고 다음으로 다음 BMC 요청을 위해 프로세스가 반복되는 처리 블록 701로 천이한다. 요청이 데이터 신선도 체크를 통과하면, 프로세스는 다른 요청들을 서비스하는 BMC로부터 수신되는 결과들을 대기하여, 이러한 동일한 결과들이 큐잉된 요청들 중 하나 이상을 충족시키는지 본다(처리 블록 705). 일 실시예에서, BMC로부터의 응답을 갖는 요청과 연관되는 타임스탬프는 요청 큐에서 다른 타임스탬프들과 비교되어 이러한 응답으로부터의 결과들로 완료될 수 있는 잠재적인 관련 요청들(예를 들어, 다른 BMC 요청에 대한 응답)을 결정한다. 그렇다면, 처리 로직은 이러한 결과들을 다른 요청들에 전달한다. 즉, 하나의 요청의 결과들은 계류 중이며 서비스되지 않은 하나 이상의 요청들의 다른 세트에 대한 응답의 부분으로서 전송된다. 완료된 이후, 프로세스가 종료된다(706).
따라서, 본 명세서에 설명되는 기술들을 사용하여, 노드에 대한 BMC 또는 다른 관리 제어기는 감소된 수의 서비스의 거부 문제점들을 가질 수 있다. 또한, 이러한 시스템들은 불필요한 BMC 서비스의 거부 유발 성능 조절의 제거 때문에 보다 우수한 성능을 가질 수 있다.
HPC 시스템에서의 노드는 큰 수의 코어들(예를 들어, 약 100개의 코어들, 또는 임의의 다른 큰 수의 코어들)을 통상적으로 갖고, 각각은, BMC 및 요청 조정기와 같은, 노드 관리를 갖는다. 도 8은 일 실시예에 따른 데이터 처리 시스템(800)을 도시한다. 데이터 처리 시스템(800)은, 도 3 내지 도 7에 관하여 본 명세서에 설명되는 바와 같이, 노드 관리를 수행하는 임의의 데이터 처리 시스템을 표현한다. 대안적인 실시예들에서, 데이터 처리 시스템(800)은, LAN(Local Area Network), 인트라넷, 엑스트라넷, 또는 인터넷에서 다른 머신들에 접속(예를 들어, 네트워킹)될 수 있다. 데이터 처리 시스템(800)은, 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 머신의 용량 내에서, 또는 피어-투-피어(또는 분산형) 네트워크 환경에서 피어 머신으로서 동작할 수 있다.
데이터 처리 시스템(800)은, PC(personal computer), 태블릿 PC, STB(set-top box), PDA(Personal Digital Assistant), 셀룰러 전화, 웹 기기, 서버, 네트워크 라우터, 스위치 또는 브릿지, 또는 데이터 처리 시스템에 의해 취해질 액션들을 명시하는 명령어들의 세트를 (순차적으로 또는 다른 방식으로) 실행할 수 있는 임의의 머신일 수 있다. 추가로, 단일 데이터 처리 시스템만이 도시되지만, "데이터 처리 시스템(data processing system)"이라는 용어는, 본 명세서에 설명되는 방법론들 중 임의의 하나 이상을 수행하는 명령어들의 세트(또는 다수의 세트들)를 개별적으로 또는 공동으로 실행하는 데이터 처리 시스템들의 임의의 모음을 포함하는 것으로 또한 취해져야 한다.
프로세서(804)는, 마이크로프로세서, 중앙 처리 유닛, 또는 다른 처리 디바이스와 같은 하나 이상의 범용 처리 디바이스를 표현한다. 보다 자세하게는, 프로세서(804)는 CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 다른 명령어 세트들을 구현하는 프로세서, 또는 명령어 세트들의 조합을 구현하는 프로세서들일 수 있다. 프로세서(804)는 또한 ASIC(application specific integrated circuit), FPGA(field programmable gate array), DSP(digital signal processor), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 처리 디바이스일 수 있다. 프로세서(804)는 도 1 내지 도 5에 관하여 본 명세서에 설명되는 동작들을 수행하는 처리 로직을 제어하도록 구성된다.
데이터 처리 시스템(800)은 다수의 컴포넌트들을 포함할 수 있다. 일 실시예에서, 이러한 컴포넌트들은 하나 이상의 마더보드에 부착된다. 대안적인 실시예에서, 이러한 컴포넌트들은 마더보드 보다는 오히려 단일 SoC(system-on-a-chip) 다이 상에 제조된다. 데이터 처리 시스템(800)에서의 컴포넌트들은, 이에 제한되는 것은 아니지만, 집적 회로 다이(802) 및 적어도 하나의 통신 칩(808)을 포함한다. 일부 구현들에서 통신 칩(808)은 집적 회로 다이(802)의 부분으로서 제조된다. 집적 회로 다이(802)는 프로세서(804), eDRAM(embedded DRAM) 또는 스핀-전달 토크 메모리(STTM 또는 STTM-RAM)와 같은 기술들에 의해 제공될 수 있는, 캐시 메모리로서 종종 사용되는, 온-다이 메모리(806)를 포함할 수 있다.
데이터 처리 시스템(800)은 마더보드에 물리적으로 그리고 전기적으로 연결될 수 있거나 그렇지 않을 수 있는 또는 SoC 다이 내에 제조될 수 있거나 또는 그렇지 않을 수 있는 다른 컴포넌트들을 포함할 수 있다. 이러한 다른 컴포넌트들은, 이에 제한되는 것은 아니지만, 휘발성 메모리(810)(예를 들어, DRAM), 비-휘발성 메모리(812)(예를 들어, ROM 또는 플래시 메모리), 그래픽 처리 유닛(814)(GPU), 디지털 신호 프로세서(816), 암호 프로세서(842)(하드웨어 내에서 암호화 알고리즘들을 실행하는 특수화된 프로세서), 칩셋(820), 안테나(822), 디스플레이 또는 터치스크린 디스플레이(824), 터치스크린 제어기(826), 배터리(828) 또는 다른 전원, PA(power amplifier)(844), GPS(global positioning system) 디바이스(828), 나침반(830), 센서들(832)(위에 설명된 바와 같이 전력을 측정하는 하나 이상의 전력 측정 센서, 및 임의의 다른 센서를 포함할 수 있음), 스피커(834), 카메라(836), (키보드, 마우스, 스타일러스, 및 터치패드와 같은) 사용자 입력 디바이스들(838), 및 (하드 디스크 드라이브, CD(compact disk), DVD(digital versatile disk) 등과 같은) 대용량 저장 디바이스(840)를 포함한다.
통신 칩(808)은 데이터 처리 시스템(800)으로 그리고 이로부터 데이터를 전송하기 위한 무선 통신들을 가능하게 한다. "무선(wireless)"이라는 용어 및 그 파생어들은, 비-고체 매체를 통한 변조된 전자기 방사의 사용을 통해 데이터를 통신할 수 있는, 회로들, 디바이스들, 시스템들, 방법들, 기술들, 통신 채널들 등을 설명하는데 사용될 수 있다. 이러한 용어는, 일부 실시예들에서는 그렇지 않을 수도 있지만, 연관되는 디바이스들이 배선들을 전혀 포함하지 않는다는 점을 암시하는 것은 아니다. 통신 칩(808)은 이에 제한되는 것은 아니지만 Wi-Fi(IEEE 802.11 계열), WiMAX(IEEE 802.16 계열), IEEE 802.20, LTE(long term evolution), Ev-DO, HSPA+, HSDPA+, HSUPA+, EDGE, GSM, GPRS, CDMA, TDMA, DECT, Bluetooth, 이들의 파생어들 뿐만 아니라, 3G, 4G, 5G 및 그 이상으로서 지정되는 임의의 다른 무선 프로토콜들을 포함하는 다수의 무선 표준들 또는 프로토콜들 중 임의의 것을 구현할 수 있다. 데이터 처리 시스템(800)은 복수의 통신 칩들(808)을 포함할 수 있다. 예를 들어, 제1 통신 칩(808)은 Wi-Fi 및 Bluetooth와 같은 단거리의 무선 통신들에 전용될 수 있고, 제2 통신 칩(808)은 GPS, EDGE, GPRS, CDMA, WiMAX, LTE, Ev-DO 등과 같은 장거리의 무선 통신들에 전용될 수 있다. "프로세서(processor)"라는 용어는 레지스터들 및/또는 메모리로부터의 전자 데이터를 처리하여 해당 전자 데이터를 레지스터들 및/또는 메모리에 저장될 수 있는 다른 전자 데이터로 변환하는 임의의 디바이스 또는 디바이스의 일부를 지칭할 수 있다.
다양한 실시예들에서, 데이터 처리 시스템(800)은, 랩톱 컴퓨터, 넷북 컴퓨터, 노트북 컴퓨터, 울트라북 컴퓨터, 스마트폰, 태블릿, PDA(personal digital assistant), 울트라 모바일 PC, 모바일 전화, 데스크톱 컴퓨터, 서버, 프린터, 스캐너, 모니터, 셋-톱 박스, 엔터테인먼트 제어 유닛, 디지털 카메라, 휴대용 음악 플레이어, 또는 디지털 비디오 레코더, 또는 HPC 시스템, 클라우드 시스템, 또는 임의의 다른 데이터 처리 시스템의 부분일 수 있다. 추가의 구현들에서, 데이터 처리 시스템(800)은 데이터를 처리하는 임의의 다른 전자 디바이스일 수 있다.
대용량 저장 디바이스(840)는, 본 명세서에 설명되는 방법론들 또는 기능들 중 임의의 하나 이상을 구현하는 명령어들의 하나 이상의 세트(예를 들어, 소프트웨어)가 저장되는 머신-액세스 가능 저장 매체(또는 보다 구체적으로는 컴퓨터-판독 가능 저장 매체)(844)를 포함할 수 있다. 이러한 소프트웨어는 또한, 데이터 처리 시스템(800)에 의한 그것의 실행 동안 메모리(810), 메모리(812), 메모리(806) 내에 및/또는 프로세서(804) 내에, 완전히 또는 적어도 부분적으로, 상주할 수 있고, 온-다이 메모리(806) 및 프로세서(804) 또한 머신-판독 가능 저장 매체를 구성한다. 이러한 소프트웨어는 네트워크 인터페이스 디바이스를 경유하여 네트워크를 통해 추가로 송신되거나 또는 수신될 수 있다.
예시적인 실시예에서는 머신-액세스 가능 저장 매체(844)가 단일 매체인 것으로 도시되지만, "머신-판독 가능 저장 매체(machine-readable storage medium)"라는 용어는 명령어들의 하나 이상의 세트를 저장하는 단일 매체 또는 다수 매체(예를 들어, 중앙 집중형 또는 분산형 데이터베이스, 및/또는 연관되는 캐시들 및 서버들)를 포함하는 것으로 취해져야 한다. "머신-판독 가능 저장 매체(machine-readable storage medium)"라는 용어는, 머신에 의한 실행을 위해 명령어들의 세트를 저장하거나 또는 인코딩할 수 있으며 머신으로 하여금 본 발명의 방법론들 중 임의의 하나 이상을 수행하게 하는 임의의 매체를 포함하는 것으로 또한 취해져야 한다. "머신-판독 가능 저장 매체(machine-readable storage medium)"라는 용어는 따라서, 이에 제한되는 것은 아니지만, 고체-상태 메모리들, 및 광학 및 자기 매체를 포함하는 것으로 취해져야 한다.
제1 예시적인 실시예에서, 장치는, BMC(baseboard management controller); 및 BMC에 연결되어 BMC 요청들을 인터셉트하고 BMC에 인터셉트된 요청들을 제공하는 요청 조정기를 포함하고, 조정 인터페이스는, BMC 요청들 각각에 대한 파라미터들을 파싱하는 요청 파서, BMC가 다른 BMC 요청을 서비스하는 동안 요청들을 저장하는 하나 이상의 큐, 및 BMC에 개별 BMC 요청들을 전송하는 명령 제출기를 포함하고, BMC는 조정 인터페이스로부터 수신되는 BMC 요청들에 대한 응답들을 생성하도록 그리고 조정 인터페이스에 응답들을 전송하도록 동작 가능하다.
다른 예시적인 실시예에서, 제1 예시적인 실시예의 주제는 하나 이상의 큐가 복수의 큐들을 포함하는 것- 복수의 큐들 각각은 하나 이상의 매칭 파라미터를 갖는 요청들을 저장함 -을 선택적으로 포함할 수 있고, 하나의 요청에 응답하여 BMC로부터 수신되는 정보를 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 정보 전달기를 추가로 포함한다.
다른 예시적인 실시예에서, 제1 예시적인 실시예의 주제는 BMC로부터 정보가 수신되는 시간이 다른 큐잉된 요청들에 대한 타이밍 완료 임계값 내에 있는지 명시하는 표시자를 생성하는 데이터 체크 로직을 선택적으로 포함할 수 있고, 정보 전달기는 정보가 수신되는 시간이 타이밍 완료 임계값 내에 있다고 표시자가 표시하는 하나 이상의 다른 큐잉된 요청에 대해서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 정보를 단지 전달한다. 다른 예시적인 실시예에서, 이러한 예시적인 실시예의 주제는 하나 이상의 큐잉된 요청 각각을 인증하는 인증 체크 로직을 선택적으로 포함할 수 있고, 정보 전달기는 인증 체크 로직에 의해 인증된 하나 이상의 다른 큐잉된 요청 각각에 대해서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 정보를 단지 전달한다.
다른 예시적인 실시예에서, 제1 예시적인 실시예의 주제는 명령 제출기가 한 번에 하나의 BMC 요청을 제출하도록 동작 가능하다는 점을 선택적으로 포함할 수 있다.
다른 예시적인 실시예에서, 제1 예시적인 실시예의 주제는 명령 제출기가 하나의 BMC 요청을 수신하도록 그리고 BMC가 바쁜지 결정하도록 동작 가능하다는 점을 선택적으로 포함할 수 있고, 추가로 BMC가 바쁘지 않으면, 명령 제출기는 하나의 요청의 타임스탬프를 저장하도록, 하나의 요청을 BMC에 전송하도록, 그리고 BMC가 바쁘다고 표시하는 표시자를 설정하도록 동작 가능하고, 명령 제출기는 BMC로부터의 요청을 서비스하는 결과들을 수신하는 것에 응답하여 BMC가 바쁘지 않다고 표시하게 표시자를 설정한다.
다른 예시적인 실시예에서, 제1 예시적인 실시예의 주제는 BMC 요청들 중 하나 이상이 센서 인터페이스로부터의 것이라는 점을 선택적으로 포함할 수 있다.
제2 예시적인 실시예에서, 랙 서버 시스템은, 복수의 노드들을 포함하고, 노드들 각각은, BMC(baseboard management controller), 및 BMC에 연결되어 BMC 요청들을 인터셉트하고 BMC에 인터셉트된 요청들을 제공하는 요청 조정기를 포함하고, 조정 인터페이스는, BMC 요청들 각각에 대한 파라미터들을 파싱하는 요청 파서, BMC가 다른 BMC 요청을 서비스하는 동안 요청들을 저장하는 하나 이상의 큐, 및 BMC에 개별 BMC 요청들을 전송하는 명령 제출기를 포함하고, BMC는 조정 인터페이스로부터 수신되는 BMC 요청들에 대한 응답들을 생성하도록 그리고 조정 인터페이스에 응답들을 전송하도록 동작 가능하다.
다른 예시적인 실시예에서, 제2 예시적인 실시예의 주제는 하나 이상의 큐가 복수의 큐들을 포함하는 것- 복수의 큐들 각각은 하나 이상의 매칭 파라미터를 갖는 요청들을 저장함 -을 선택적으로 포함할 수 있고, 하나의 요청에 응답하여 BMC로부터 수신되는 정보를 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 정보 전달기를 추가로 포함한다. 다른 예시적인 실시예에서, 본 예시적인 실시예의 주제는 BMC로부터 정보가 수신되는 시간이 다른 큐잉된 요청들에 대한 타이밍 완료 임계값 내에 있는지 명시하는 표시자를 생성하는 데이터 체크 로직을 선택적으로 포함할 수 있고, 정보 전달기는 정보가 수신되는 시간이 타이밍 완료 임계값 내에 있다고 표시자가 표시하는 하나 이상의 다른 큐잉된 요청에 대해서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 정보를 단지 전달한다.
다른 예시적인 실시예에서, 제2 예시적인 실시예의 주제는 하나 이상의 큐잉된 요청 각각을 인증하는 인증 체크 로직을 선택적으로 포함할 수 있고, 정보 전달기는 인증 체크 로직에 의해 인증된 하나 이상의 다른 큐잉된 요청 각각에 대해서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 정보를 단지 전달한다.
다른 예시적인 실시예에서, 제2 예시적인 실시예의 주제는 명령 제출기가 한 번에 하나의 BMC 요청을 제출하도록 동작 가능하다는 점을 선택적으로 포함할 수 있다.
다른 예시적인 실시예에서, 제2 예시적인 실시예의 주제는 명령 제출기가 하나의 BMC 요청을 수신하도록 그리고 BMC가 바쁜지 결정하도록 동작 가능하다는 점을 선택적으로 포함할 수 있고, 추가로 BMC가 바쁘지 않으면, 명령 제출기는 하나의 요청의 타임스탬프를 저장하도록, 하나의 요청을 BMC에 전송하도록, 그리고 BMC가 바쁘다고 표시하는 표시자를 설정하도록 동작 가능하고, 명령 제출기는 BMC로부터의 요청을 서비스하는 결과들을 수신하는 것에 응답하여 BMC가 바쁘지 않다고 표시하게 표시자를 설정한다.
다른 예시적인 실시예에서, 제2 예시적인 실시예의 주제는 BMC 요청들 중 하나 이상이 센서 인터페이스로부터의 것라는 점을 선택적으로 포함할 수 있다.
제3 예시적인 실시예에서, 방법은 BMC(baseboard management controller)에 대한 것인 BMC 요청들을 수신하는 단계, BMC 요청들 각각에 대한 파라미터들을 파싱하는 단계, BMC가 다른 BMC 요청을 서비스하는 동안 하나 이상의 큐에 요청들을 저장하는 단계, BMC가 더 이상 다른 BMC 요청을 서비스하지 않을 때 서비스하기 위해 개별 BMC 요청들을 BMC에 제출하는 단계, BMC 요청들에 대한 응답들을 수신하는 단계, 및 조정 인터페이스에 응답들을 전송하는 단계를 포함한다.
다른 예시적인 실시예에서, 제3 예시적인 실시예의 주제는 BMC가 다른 BMC 요청을 서비스하는 동안 하나 이상의 큐에 요청들을 저장하는 단계가 요청들을 복수의 큐들에 저장하는 단계- 복수의 큐들 각각은 하나 이상의 매칭 파라미터를 갖는 요청들을 저장함 -를 포함하는 점을 선택적으로 포함할 수 있고, 하나의 요청에 응답하여 BMC로부터 수신되는 정보를 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 단계를 추가로 포함한다. 다른 예시적인 실시예에서, 본 예시적인 실시예의 주제는 BMC로부터 정보가 수신되는 시간이 다른 큐잉된 요청들에 대한 타이밍 완료 임계값 내에 있는지 명시하는 표시자를 생성하는 단계를 선택적으로 포함할 수 있고, 하나의 요청에 응답하여 BMC로부터 수신되는 정보를 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 단계는 정보가 수신되는 시간이 하나 이상의 다른 큐잉된 요청에 대한 타이밍 완료 임계값 내에 있다고 표시자가 표시하는 하나 이상의 다른 큐잉된 요청에 대해서만 발생한다.
다른 예시적인 실시예에서, 제3 예시적인 실시예의 주제는 하나 이상의 큐잉된 요청 각각을 인증하는 단계를 선택적으로 포함할 수 있고, 하나의 요청에 응답하여 BMC로부터 수신되는 정보를 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 단계는 인증된 하나 이상의 다른 큐잉된 요청 각각에 대해서만 발생한다.
다른 예시적인 실시예에서, 제3 예시적인 실시예의 주제는 BMC 요청들 중 하나의 요청을 BMC에 전달하기 이전에 BMC가 바쁜지 결정하는 단계, 하나의 요청을 BMC에 전송하기 이전에 하나의 요청의 타임스탬프를 저장하는 단계, BMC가 바쁘다고 표시하는 표시자를 설정하여 BMC가 하나의 요청을 서비스하는 동안 BMC에 추가적인 요청들이 전달되지 않게 하는 단계, 및 BMC로부터 하나의 요청을 서비스한 결과들을 수신하는 것에 응답하여 BMC가 바쁘지 않다고 표시하게 표시자를 설정하는 단계를 선택적으로 포함할 수 있다.
다른 예시적인 실시예에서, 제3 예시적인 실시예의 주제는 BMC 요청들 중 하나 이상이 센서에 관련되는 점을 선택적으로 포함할 수 있다.
제4 예시적인 실시예에서, 제조 물품은, 시스템에 의해 실행될 때, 이러한 시스템으로 하여금 방법을 수행하게 하는 명령어들을 저장하는 하나 이상의 비-일시적 컴퓨터 판독 가능 매체를 갖고, 이러한 방법은, BMC(baseboard management controller)에 대한 것인 BMC 요청들을 수신하는 단계, BMC 요청들 각각에 대한 파라미터들을 파싱하는 단계, BMC가 다른 BMC 요청을 서비스하는 동안 하나 이상의 큐에 요청들을 저장하는 단계, BMC가 더 이상 다른 BMC 요청을 서비스하지 않을 때 서비스하기 위해 개별 BMC 요청들을 BMC에 제출하는 단계, BMC 요청들에 대한 응답들을 수신하는 단계, 및 조정 인터페이스에 응답들을 전송하는 단계를 포함한다.
다른 예시적인 실시예에서, 제4 예시적인 실시예의 주제는 BMC가 다른 BMC 요청을 서비스하는 동안 하나 이상의 큐에 요청들을 저장하는 단계가 요청들을 복수의 큐들에 저장하는 단계- 복수의 큐들 각각은 하나 이상의 매칭 파라미터를 갖는 요청들을 저장함 -를 포함한다는 점을 선택적으로 포함할 수 있고, 이러한 방법은 하나의 요청에 응답하여 BMC로부터 수신되는 정보를 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 단계를 추가로 포함한다.
다른 예시적인 실시예에서, 제4 예시적인 실시예의 주제는 이러한 방법이 BMC로부터 정보가 수신되는 시간이 다른 큐잉된 요청들에 대한 타이밍 완료 임계값 내에 있는지 명시하는 표시자를 생성하는 단계를 추가로 포함한다는 점을 선택적으로 포함할 수 있고, 하나의 요청에 응답하여 BMC로부터 수신되는 정보를 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 단계는 정보가 수신되는 시간이 하나 이상의 다른 큐잉된 요청에 대한 타이밍 완료 임계값 내에 있다고 표시자가 표시하는 하나 이상의 다른 큐잉된 요청에 대해서만 발생한다.
다른 예시적인 실시예에서, 제4 예시적인 실시예의 주제는 이러한 방법이 하나 이상의 큐잉된 요청 각각을 인증하는 단계를 추가로 포함한다는 점을 선택적으로 포함할 수 있고, 하나의 요청에 응답하여 BMC로부터 수신되는 정보를 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 단계는 인증된 하나 이상의 다른 큐잉된 요청 각각에 대해서만 발생한다.
위 상세한 설명들의 일부 부분들은 컴퓨터 메모리 내에서의 데이터 비트들에 대한 동작들의 알고리즘 및 심볼 표현들의 관점에서 제시된다. 이러한 알고리즘적 설명들 및 표현들은 데이터 처리 분야들에서의 숙련자들에 의해 자신들의 작업 내용을 해당 분야에의 다른 숙련자들에게 가장 효과적으로 전달하기 위해 사용되는 수단이다. 알고리즘은 여기서, 및 일반적으로, 원하는 결과에 이르는 단계들의 자기 일관성 시퀀스인 것으로 생각된다. 단계들은 물리적 수량들의 물리적 조작들을 요구하는 것들이다. 일반적으로, 반드시 그러하지는 않지만, 이들 양들은 저장되고, 전송되고, 조합되고, 비교되고, 다른 방식으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 취한다. 주로 통상 사용의 이유로 이들 신호들을 비트들, 값들, 요소들, 심볼들, 문자들, 용어들, 숫자들 등으로서 지칭하는 것이 때로는 편리하다는 것이 입증되었다.
그러나, 이러한 용어들 및 유사한 용어들 전부는 적절한 물리적 수량들과 연관되어야 하며 단지 이러한 수량들에 적용되는 편리한 레이블들이라는 점을 염두에 두어야 한다. 다음의 논의로부터 명백한 바와 같이 구체적으로 달리 언급되지 않는 한, 본 설명 전반적으로 "처리하는(processing)" 또는 "산출하는(computing)" 또는 "계산하는(calculating)" 또는 "결정하는(determining)" 또는 "디스플레이하는(displaying)" 등과 같은 용어들을 이용하는 논의들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내에 물리적(전자적) 수량들로서 표현된 데이터를 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 이러한 정보 저장, 송신 또는 디스플레이 디바이스들 내에 물리적 수량들로서 유사하게 표현되는 다른 데이터로 조작 및 변환하는, 컴퓨터 시스템, 또는 유사한 전자 컴퓨팅 디바이스의 액션 및 프로세스들을 지칭한다는 점이 인식된다.
본 발명은 본 명세서에서 동작들을 수행하기 위한 장치에 또한 관련된다. 이러한 장치는 요구된 목적들을 위해 특별히 구성될 수 있거나, 컴퓨터에 저장되는 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 이러한 컴퓨터 프로그램은, 이에 제한되는 것은 아니지만, 플로피 디스크들, 광 디스크들, CD-ROM들을 포함하는 디스크, 자기-광학적 디스크들, ROM들(read-only memories), RAM들(random access memories), EPROM들, EEPROM들, 자기적이거나 광학적 카드들 중 임의의 타입, 또는 전자 명령어들을 저장하기에 적합한 매체, 및 컴퓨터 시스템 버스에 연결되는 각각의 중 임의의 타입과 같은 컴퓨터 판독 가능 저장 매체에 저장될 수 있다.
본 명세서에 제시되는 알고리즘들 및 디스플레이들은 임의의 특정한 컴퓨터 또는 다른 장치와 고유하게 관련되지 않는다. 다양한 범용 시스템들은 본 명세서의 교시들에 따른 프로그램들과 함께 사용될 수 있거나, 요구된 방법 단계들을 수행하기 위해 더 특수한 장치를 구성하는 것이 편리한 것으로 증명될 수 있다. 다양한 이러한 시스템들에 대해 요구되는 구조는 이하의 설명으로부터 드러날 것이다. 또한, 본 발명이 임의의 특정 프로그래밍 언어를 참조하여 설명되는 것은 아니다. 다양한 프로그래밍 언어들이 본 명세서에 설명되는 본 발명의 실시예들의 교시들을 구현하는데 사용될 수 있다는 점이 이해될 것이다.
머신-판독 가능 매체는 머신(예를 들어, 컴퓨터)에 의해 판독 가능한 형태로 정보를 저장하거나 전송하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 머신-판독 가능 매체는 ROM(read only memory); RAM(random access memory); 자기 디스크 저장 매체; 광학 저장 매체; 플래시 메모리 디바이스들; 등을 포함한다.
전술한 설명을 읽은 이후에 해당 분야에서의 통상의 기술자에게는 본 발명의 많은 변형들 및 수정들이 의심 없이 명백해질 것이지만, 예시적으로 도시되고 설명된 임의의 특정 실시예가 제한적인 것으로 고려되도록 의도되는 것은 전혀 아니라는 점이 이해되어야 한다. 따라서, 다양한 실시예들의 상세 사항들에 대한 참조는, 본 발명에 필수적인 것으로서 간주되는 그러한 특징들만을 자체에서 나열하는 청구항들의 범위를 제한하도록 의도되는 것은 아니다.

Claims (20)

  1. 장치로서,
    BMC(baseboard management controller); 및
    상기 BMC에 연결되어 BMC 요청들을 인터셉트하고 상기 BMC에 인터셉트된 요청들을 제공하는 요청 조정기
    를 포함하고, 조정 인터페이스는,
    상기 BMC 요청들 각각에 대한 파라미터들을 파싱하는 요청 파서,
    상기 BMC가 다른 BMC 요청을 서비스하는 동안 상기 요청들을 저장하는 하나 이상의 큐, 및
    상기 BMC에 개별 BMC 요청들을 전송하는 명령 제출기
    를 포함하고,
    상기 BMC는 상기 조정 인터페이스로부터 수신되는 BMC 요청들에 대한 응답들을 생성하도록 그리고 상기 조정 인터페이스에 상기 응답들을 전송하도록 동작 가능한 장치.
  2. 제1항에 있어서,
    상기 하나 이상의 큐는 복수의 큐들을 포함하고- 상기 복수의 큐들 각각은 하나 이상의 매칭 파라미터를 갖는 요청들을 저장함 -, 하나의 요청에 응답하여 상기 BMC로부터 수신되는 정보를 상기 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 정보 전달기를 추가로 포함하는 장치.
  3. 제2항에 있어서,
    상기 BMC로부터 상기 정보가 수신되는 시간이 다른 큐잉된 요청들에 대한 타이밍 완료 임계값 내에 있는지 명시하는 표시자를 생성하는 데이터 체크 로직을 추가로 포함하고, 상기 정보 전달기는 상기 정보가 수신되는 시간이 상기 타이밍 완료 임계값 내에 있다고 상기 표시자가 표시하는 하나 이상의 다른 큐잉된 요청에 대해서 상기 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 상기 정보를 단지 전달하는 장치.
  4. 제2항에 있어서,
    상기 하나 이상의 큐잉된 요청 각각을 인증하는 인증 체크 로직을 추가로 포함하고, 상기 정보 전달기는 상기 인증 체크 로직에 의해 인증된 하나 이상의 다른 큐잉된 요청 각각에 대해서 상기 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 상기 정보를 단지 전달하는 장치.
  5. 제1항에 있어서,
    상기 명령 제출기는 한 번에 하나의 BMC 요청을 제출하도록 동작 가능한 장치.
  6. 제5항에 있어서,
    상기 명령 제출기는 하나의 BMC 요청을 수신하도록 그리고 상기 BMC가 바쁜지 결정하도록 동작 가능하고, 추가로 상기 BMC가 바쁘지 않으면, 상기 명령 제출기는 상기 하나의 요청의 타임스탬프를 저장하도록, 상기 하나의 요청을 상기 BMC에 전송하도록, 그리고 상기 BMC가 바쁘다고 표시하는 표시자를 설정하도록 동작 가능하고, 상기 명령 제출기는 상기 BMC로부터의 요청을 서비스하는 결과들을 수신하는 것에 응답하여 상기 BMC가 바쁘지 않다고 표시하게 상기 표시자를 설정하는 장치.
  7. 랙 서버 시스템으로서,
    복수의 노드들을 포함하고, 상기 노드들 각각은,
    BMC(baseboard management controller), 및
    상기 BMC에 연결되어 BMC 요청들을 인터셉트하고 상기 BMC에 인터셉트된 요청들을 제공하는 요청 조정기
    를 포함하고, 조정 인터페이스는,
    상기 BMC 요청들 각각에 대한 파라미터들을 파싱하는 요청 파서,
    상기 BMC가 다른 BMC 요청을 서비스하는 동안 상기 요청들을 저장하는 하나 이상의 큐, 및
    상기 BMC에 개별 BMC 요청들을 전송하는 명령 제출기
    를 포함하고,
    상기 BMC는 상기 조정 인터페이스로부터 수신되는 BMC 요청들에 대한 응답들을 생성하도록 그리고 상기 조정 인터페이스에 상기 응답들을 전송하도록 동작 가능한 랙 서버 시스템.
  8. 제7항에 있어서,
    상기 하나 이상의 큐는 복수의 큐들을 포함하고- 상기 복수의 큐들 각각은 하나 이상의 매칭 파라미터를 갖는 요청들을 저장함 -, 하나의 요청에 응답하여 상기 BMC로부터 수신되는 정보를 상기 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 정보 전달기를 추가로 포함하는 랙 서버 시스템.
  9. 제8항에 있어서,
    상기 BMC로부터 상기 정보가 수신되는 시간이 다른 큐잉된 요청들에 대한 타이밍 완료 임계값 내에 있는지 명시하는 표시자를 생성하는 데이터 체크 로직을 추가로 포함하고, 상기 정보 전달기는 상기 정보가 수신되는 시간이 상기 타이밍 완료 임계값 내에 있다고 상기 표시자가 표시하는 하나 이상의 다른 큐잉된 요청에 대해서 상기 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 상기 정보를 단지 전달하는 장치.
  10. 제8항에 있어서,
    상기 하나 이상의 큐잉된 요청 각각을 인증하는 인증 체크 로직을 추가로 포함하고, 상기 정보 전달기는 상기 인증 체크 로직에 의해 인증된 하나 이상의 다른 큐잉된 요청 각각에 대해서 상기 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 상기 정보를 단지 전달하는 장치.
  11. 제7항에 있어서,
    상기 명령 제출기는 한 번에 하나의 BMC 요청을 제출하도록 동작 가능한 장치.
  12. 제11항에 있어서,
    상기 명령 제출기는 하나의 BMC 요청을 수신하도록 그리고 상기 BMC가 바쁜지 결정하도록 동작 가능하고, 추가로 상기 BMC가 바쁘지 않으면, 상기 명령 제출기는 상기 하나의 요청의 타임스탬프를 저장하도록, 상기 하나의 요청을 상기 BMC에 전송하도록, 그리고 상기 BMC가 바쁘다고 표시하는 표시자를 설정하도록 동작 가능하고, 상기 명령 제출기는 상기 BMC로부터의 요청을 서비스하는 결과들을 수신하는 것에 응답하여 상기 BMC가 바쁘지 않다고 표시하게 상기 표시자를 설정하는 장치.
  13. 방법으로서,
    BMC(baseboard management controller)에 대한 것인 BMC 요청들을 수신하는 단계;
    상기 BMC 요청들 각각에 대한 파라미터들을 파싱하는 단계;
    상기 BMC가 다른 BMC 요청을 서비스하는 동안 하나 이상의 큐에 상기 요청들을 저장하는 단계;
    상기 BMC가 더 이상 다른 BMC 요청을 서비스하지 않을 때 서비스하기 위해 개별 BMC 요청들을 상기 BMC에 제출하는 단계;
    상기 BMC 요청들에 대한 응답들을 수신하는 단계; 및
    조정 인터페이스에 상기 응답들을 전송하는 단계
    를 포함하는 방법.
  14. 제13항에 있어서,
    상기 BMC가 다른 BMC 요청을 서비스하는 동안 하나 이상의 큐에 상기 요청들을 저장하는 단계는 상기 요청들을 복수의 큐들에 저장하는 단계- 상기 복수의 큐들 각각은 하나 이상의 매칭 파라미터를 갖는 요청들을 저장함 -를 포함하고, 하나의 요청에 응답하여 상기 BMC로부터 수신되는 정보를 상기 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 단계를 추가로 포함하는 방법.
  15. 제14항에 있어서,
    상기 BMC로부터 상기 정보가 수신되는 시간이 다른 큐잉된 요청들에 대한 타이밍 완료 임계값 내에 있는지 명시하는 표시자를 생성하는 단계를 추가로 포함하고, 하나의 요청에 응답하여 상기 BMC로부터 수신되는 정보를 상기 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 단계는 상기 정보가 수신되는 시간이 하나 이상의 다른 큐잉된 요청에 대한 타이밍 완료 임계값 내에 있다고 상기 표시자가 표시하는 하나 이상의 다른 큐잉된 요청에 대해서만 발생하는 방법.
  16. 제14항에 있어서,
    상기 하나 이상의 큐잉된 요청 각각을 인증하는 단계를 추가로 포함하고, 하나의 요청에 응답하여 상기 BMC로부터 수신되는 정보를 상기 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 단계는 인증된 하나 이상의 다른 큐잉된 요청 각각에 대해서만 발생하는 방법.
  17. 제13항에 있어서,
    상기 BMC 요청들 중 하나의 요청을 상기 BMC에 전달하기 이전에 상기 BMC가 바쁜지 결정하는 단계;
    상기 하나의 요청을 상기 BMC에 전송하기 이전에 상기 하나의 요청의 타임스탬프를 저장하는 단계;
    상기 BMC가 바쁘다고 표시하는 표시자를 설정하여 상기 BMC가 상기 하나의 요청을 서비스하는 동안 상기 BMC에 추가적인 요청들이 전달되지 않게 하는 단계; 및
    상기 BMC로부터 상기 하나의 요청을 서비스한 결과들을 수신하는 것에 응답하여 상기 BMC가 바쁘지 않다고 표시하게 상기 표시자를 설정하는 단계
    를 추가로 포함하는 방법.
  18. 제조 물품으로서,
    시스템에 의해 실행될 때, 상기 시스템으로 하여금 방법을 수행하게 하는 명령어들을 저장하는 하나 이상의 비-일시적 컴퓨터 판독 가능 매체를 갖고, 상기 방법은,
    BMC(baseboard management controller)에 대한 것인 BMC 요청들을 수신하는 단계;
    상기 BMC 요청들 각각에 대한 파라미터들을 파싱하는 단계;
    상기 BMC가 다른 BMC 요청을 서비스하는 동안 하나 이상의 큐에 상기 요청들을 저장하는 단계;
    상기 BMC가 더 이상 다른 BMC 요청을 서비스하지 않을 때 서비스하기 위해 개별 BMC 요청들을 상기 BMC에 제출하는 단계;
    상기 BMC 요청들에 대한 응답들을 수신하는 단계; 및
    조정 인터페이스에 상기 응답들을 전송하는 단계
    를 포함하는 제조 물품.
  19. 제18항에 있어서,
    상기 BMC가 다른 BMC 요청을 서비스하는 동안 하나 이상의 큐에 상기 요청들을 저장하는 단계는 상기 요청들을 복수의 큐들에 저장하는 단계- 상기 복수의 큐들 각각은 하나 이상의 매칭 파라미터를 갖는 요청들을 저장함 -를 포함하고, 상기 방법은 하나의 요청에 응답하여 상기 BMC로부터 수신되는 정보를 상기 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 단계를 추가로 포함하는 제조 물품.
  20. 제19항에 있어서,
    상기 방법은 상기 BMC로부터 상기 정보가 수신되는 시간이 다른 큐잉된 요청들에 대한 타이밍 완료 임계값 내에 있는지 명시하는 표시자를 생성하는 단계를 추가로 포함하고, 하나의 요청에 응답하여 상기 BMC로부터 수신되는 정보를 상기 복수의 큐들 중 하나에서 하나 이상의 다른 큐잉된 요청에 대한 응답으로서 전달하는 단계는 상기 정보가 수신되는 시간이 인증된 하나 이상의 다른 큐잉된 요청에 대한 타이밍 완료 임계값 내에 있다고 상기 표시자가 표시하는 하나 이상의 다른 큐잉된 요청에 대해서만 발생하는 제조 물품.
KR1020187025004A 2016-03-29 2017-02-08 데이터에 대한 요청들을 조정하고 인증하기 위한 방법 및 장치 KR20180121775A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/084,377 US10404676B2 (en) 2016-03-29 2016-03-29 Method and apparatus to coordinate and authenticate requests for data
US15/084,377 2016-03-29
PCT/US2017/017024 WO2017172051A1 (en) 2016-03-29 2017-02-08 Method and apparatus to coordinate and authenticate requests for data

Publications (1)

Publication Number Publication Date
KR20180121775A true KR20180121775A (ko) 2018-11-08

Family

ID=59961329

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187025004A KR20180121775A (ko) 2016-03-29 2017-02-08 데이터에 대한 요청들을 조정하고 인증하기 위한 방법 및 장치

Country Status (4)

Country Link
US (1) US10404676B2 (ko)
KR (1) KR20180121775A (ko)
DE (1) DE112017001757T5 (ko)
WO (1) WO2017172051A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10613950B2 (en) * 2018-01-05 2020-04-07 Quanta Computer Inc. CMC failover for two-stick canisters in rack design
US10999216B2 (en) * 2018-07-13 2021-05-04 EMC IP Holding Company LLC Resource allocation and provisioning in a multi-tier edge-cloud virtualization environment
CN109309633B (zh) * 2018-09-21 2021-06-15 郑州云海信息技术有限公司 一种基于管理交换机的整机柜服务器节点管理方法及装置
US20210221122A1 (en) * 2018-12-03 2021-07-22 Hewlett-Packard Development Company, L.P. Logic circuitry package
US11720396B2 (en) * 2021-06-22 2023-08-08 Twillo Inc. Application programming interface (API) request throttling

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412501B2 (en) * 2000-06-07 2008-08-12 Microsoft Corporation Event consumers for an event management system
TWI255996B (en) 2004-05-31 2006-06-01 Wellsyn Technology Inc Advanced IPMI system with multi-message processing and configurable performance and method for the same
US8819202B1 (en) * 2005-08-01 2014-08-26 Oracle America, Inc. Service configuration and deployment engine for provisioning automation
CN1863081B (zh) 2005-10-14 2010-05-05 华为技术有限公司 基板管理控制器的管理系统和方法
US7664867B2 (en) * 2006-03-01 2010-02-16 Bea Systems, Inc. Reporting queue delays in SOAP messages
US8402201B2 (en) * 2006-12-06 2013-03-19 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery in solid-state storage
US7930438B2 (en) 2008-08-11 2011-04-19 International Business Machines Corporation Interrogate processing for complex I/O link
US8037364B2 (en) * 2009-01-09 2011-10-11 International Business Machines Corporation Forced management module failover by BMC impeachment consensus
US8127128B2 (en) * 2009-05-04 2012-02-28 International Business Machines Corporation Synchronization of swappable module in modular system
US9485200B2 (en) * 2010-05-18 2016-11-01 Intel Corporation Network switch with external buffering via looparound path
US8589702B2 (en) * 2010-05-28 2013-11-19 Dell Products, Lp System and method for pre-boot authentication of a secure client hosted virtualization in an information handling system
CN103138945B (zh) * 2011-11-28 2016-06-08 英业达科技有限公司 管理电源供应的服务器机架系统
WO2013147801A1 (en) 2012-03-29 2013-10-03 Intel Corporation Dynamic power limit sharing in a platform
WO2013153577A1 (en) * 2012-04-12 2013-10-17 Hitachi, Ltd. Data transfer method and storage system adopting data transfer method
US8886703B2 (en) * 2012-06-12 2014-11-11 Dell Products, L.P. Advertising and facilitating management access to added capabilities of intelligent devices in a system
US9261945B2 (en) 2012-08-30 2016-02-16 Dell Products, L.P. Dynanmic peak power limiting to processing nodes in an information handling system
CN103777734A (zh) 2012-10-25 2014-05-07 英业达科技有限公司 机柜式服务器系统与其操作方法
US9367419B2 (en) 2013-01-08 2016-06-14 American Megatrends, Inc. Implementation on baseboard management controller of single out-of-band communication access to multiple managed computer nodes
US9529583B2 (en) 2013-01-15 2016-12-27 Intel Corporation Single microcontroller based management of multiple compute nodes
US8875154B2 (en) * 2013-01-25 2014-10-28 American Megatrends, Inc. Interface specific and parallel IPMI message handling at baseboard management controller
US9118584B2 (en) 2013-03-15 2015-08-25 American Megatrends, Inc. Dynamic scalable baseboard management controller stacks on single hardware structure
US20140344431A1 (en) 2013-05-16 2014-11-20 Aspeed Technology Inc. Baseboard management system architecture
US9311486B2 (en) * 2013-08-13 2016-04-12 American Megatrends, Inc. Network based firmware feature configuration and firmware image generation
US9319313B2 (en) * 2014-01-22 2016-04-19 American Megatrends, Inc. System and method of forwarding IPMI message packets based on logical unit number (LUN)
EP3127254B1 (en) * 2014-03-31 2019-06-12 Hughes Network Systems, LLC System and method for congestion management for downlink queues of digital processing satellites for differentiated quality-of-service (qos)
US9329964B2 (en) * 2014-06-20 2016-05-03 Dell International L.L.C. Shaping I/O traffic by managing queue depth in fractional increments
US9577961B2 (en) * 2014-06-27 2017-02-21 Amazon Technologies, Inc. Input/output management in a distributed strict queue
US10652225B2 (en) * 2014-06-30 2020-05-12 International Business Machines Corporation Queue management and load shedding for complex authentication schemes
US9626232B2 (en) * 2015-07-23 2017-04-18 Arm Limited Event queue management
US10038705B2 (en) * 2015-10-12 2018-07-31 Dell Products, L.P. System and method for performing intrusion detection in an information handling system

Also Published As

Publication number Publication date
US20170289300A1 (en) 2017-10-05
US10404676B2 (en) 2019-09-03
DE112017001757T5 (de) 2018-12-13
WO2017172051A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
KR20180121775A (ko) 데이터에 대한 요청들을 조정하고 인증하기 위한 방법 및 장치
US11611636B2 (en) Quality of service in a distributed system
US10311230B2 (en) Anomaly detection in distributed ledger systems
US20230396669A1 (en) Technologies for transparent function as a service arbitration for edge systems
US9313604B1 (en) Network service request throttling system
US10868743B2 (en) System and method for providing fast platform telemetry data
US10257194B2 (en) Distribution of variably secure resources in a networked environment
US20180077157A1 (en) Method and system for identifying user information in social network
WO2017000822A1 (zh) 一种直接内存访问的传输控制方法及装置
EP3058481B1 (en) Acceleration based on cached flows
US9817866B1 (en) Lossless compression of client read data
WO2020037753A1 (zh) 日志打印方法及系统、服务器
US9774508B1 (en) Communication generation using sparse indicators and sensor data
US9813467B1 (en) Real-time alignment and processing of incomplete stream of data
US11347512B1 (en) Substitution through protocol to protocol translation
US11243603B2 (en) Power management of an event-based processing system
US9811439B1 (en) Functional testing of code modifications for read processing systems
US20180262407A1 (en) Telemetry Architecture for Integrated Circuits and Cloud Infrastructure
US11922297B2 (en) Edge AI accelerator service
US9584882B1 (en) Communication generation using sparse indicators and sensor data
US10505897B2 (en) Automated firewall-compliant customer support resolution provisioning system
US9773031B1 (en) Duplication and deletion detection using transformation processing of depth vectors
US20230205578A1 (en) Error Avoidance Load Balancing Across Distributed Clustered Containerized Environments
US11593014B2 (en) System and method for approximating replication completion time
US10664191B2 (en) System and method for providing input/output determinism based on required execution time

Legal Events

Date Code Title Description
A201 Request for examination