KR102336663B1 - 서버 시스템 및 이의 관리 방법 - Google Patents

서버 시스템 및 이의 관리 방법 Download PDF

Info

Publication number
KR102336663B1
KR102336663B1 KR1020150066948A KR20150066948A KR102336663B1 KR 102336663 B1 KR102336663 B1 KR 102336663B1 KR 1020150066948 A KR1020150066948 A KR 1020150066948A KR 20150066948 A KR20150066948 A KR 20150066948A KR 102336663 B1 KR102336663 B1 KR 102336663B1
Authority
KR
South Korea
Prior art keywords
host
option rom
rom data
virtual
server system
Prior art date
Application number
KR1020150066948A
Other languages
English (en)
Other versions
KR20160133869A (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 KR1020150066948A priority Critical patent/KR102336663B1/ko
Priority to US14/973,989 priority patent/US10031876B2/en
Publication of KR20160133869A publication Critical patent/KR20160133869A/ko
Application granted granted Critical
Publication of KR102336663B1 publication Critical patent/KR102336663B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Abstract

본 발명에 따른 서버 시스템 관리 방법은, 관리 시스템을 이용한 서버 시스템 관리 방법에 있으로서, 적어도 하나의 물리적 장치 중 대상 물리적 장치의 사용에 필요한 옵션 롬 데이터(Option ROM data)를 전송하기 위하여 적어도 하나의 가상 장치를 생성하는 단계, 상기 적어도 하나의 가상 장치와 상기 적어도 하나의 호스트가 대응되도록 할당하는 단계 및 상기 적어도 하나의 가상 장치와 대응된 호스트로 상기 옵션 롬 데이터를 전송하는 단계를 포함한다.
또한, 상기 스위치 장치는 PCIe 스위치 장치(Peripheral Component Interconnect express Switch device)인 것을 특징으로 한다.

Description

서버 시스템 및 이의 관리 방법{Server system and management method thereof}
본 발명은 서버 시스템 및 이의 관리 방법에 관한 것으로서, 상세하게는 적어도 하나의 호스트를 연결하는 스위치 장치를 포함하고, 상기 스위치 장치를 제어할 수 있는 서버 시스템 및 이의 관리 방법에 관한 것이다.
서버(server) 시스템은 네트워크 내의 다른 컴퓨터 시스템에게 정보 서비스를 제공하는 컴퓨터 시스템을 말한다. 그리고, 정보 서비스를 제공받는 다른 컴퓨터 시스템, 즉 서버 시스템에 정보를 요청하고 서버 시스템으로부터 정보를 수신하는 컴퓨터 시스템을 클라이언트(client) 시스템이라고 한다. 서버 시스템은 사용 목적에 따라 웹 서버(web server), 스토리지 서버(storage server) 등으로 구별될 수 있다.
이러한 서버 시스템은 다수의 호스트들 및 다수의 물리적 장치를 포함할 수 있으며, 다수의 호스트들이 다수의 물리적 장치를 사용하기 위하여, 필요한 옵션 롬 데이터(Option ROM data)를 다수의 호스트들이 수신하는 방법에 대한 연구가 활발하게 진행되고 있다.
본 발명은 스위치 장치에 연결되는 다수의 호스트들이 하드웨어적 기능 및 소프트웨어적 기능 중 적어도 하나의 수행을 위해 필요한 옵션 롬 데이터(Option ROM data)를 신속하고 정확하게 상기 다수의 호스트들로 전송하기 위하여, 스위치 장치를 제어하는 서버 시스템 및 이의 관리 방법을 제공하는 것을 목적으로 한다.
본 발명에 따른 서버 시스템 관리 방법은, 적어도 하나의 호스트, 관리 시스템 및 적어도 하나의 호스트와 관리 시스템을 연결하는 스위치 장치를 포함하는 서버 시스템에 대한 관리 방법에 있어서, 상기 적어도 하나의 호스트가 하드웨어적 기능 및 소프트웨어적 기능 중 적어도 하나를 수행하기 위해 필요한 옵션 롬 데이터(Option ROM data)를 전송하기 위하여 적어도 하나의 가상 장치를 생성하는 단계, 상기 적어도 하나의 가상 장치와 상기 적어도 하나의 호스트가 대응되도록 할당하는 단계 및 상기 적어도 하나의 가상 장치와 대응된 호스트에 해당하는 적어도 하나의 대상 호스트로 상기 옵션 롬 데이터를 전송하는 단계를 포함한다.
또한, 상기 관리 시스템은, 옵션 롬 데이터 관리부를 포함하며, 상기 옵션 롬 데이터 관리부는, 상기 옵션 롬 데이터를 생성하는 프로세서(Processor) 및 상기 옵션 롬 데이터를 저장할 수 있는 저장 장치를 포함하는 것을 특징으로 한다.
또한, 상기 적어도 하나의 가상 장치와 상기 적어도 하나의 호스트가 대응되도록 할당하는 단계는, 상기 적어도 하나의 가상 장치와 상기 적어도 하나의 호스트 각각이 서로 일대일 대응되어 상기 스위치 장치를 통하여 연결되도록 하는 것을 특징으로 한다.
또한, 상기 서버 시스템은, 상기 적어도 하나의 호스트에 연결된 적어도 하나의 물리적 장치를 포함하며, 상기 옵션 롬 데이터는, 상기 적어도 하나의 호스트가, 상기 적어도 하나의 호스트에 연결된 적어도 하나의 물리적 장치를 사용하기 위해 필요한 것을 특징으로 한다.
또한, 서버 시스템 관리 방법은, 상기 적어도 하나의 대상 호스트는 상기 옵션 롬 데이터를 수신하기 위하여, 상기 적어도 하나의 대상 호스트와 대응된 가상 장치에 상기 옵션 롬 데이터를 요청하는 메모리 읽기 요청 신호를 전송하는 단계 및 상기 메모리 읽기 요청 신호를 상기 관리 시스템이 수신하도록 리디렉션(redirection) 동작을 수행하는 단계를 더 포함한다.
또한, 상기 메모리 읽기 요청 신호를 상기 관리 시스템이 수신한 경우, 상기 관리 시스템은 상기 메모리 읽기 요청 신호에 응답하여, 상기 옵션 롬 데이터를 포함한 메모리 읽기 응답 신호를 상기 적어도 하나의 대상 호스트로 전송하는 단계를 포함하는 것을 특징으로 한다
또한, 상기 적어도 하나의 대상 호스트는 상기 수신한 옵션 롬 데이터를 기반으로, 상기 하드웨어적 기능 및 상기 소프트웨어적 기능 중 적어도 하나를 수행하기 위한 드라이버를 생성하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 또 다른 실시예에 따른 서버 시스템은, 임베디드(embedded) 프로세서, 호스트(Host)로 동작하는 적어도 하나의 프로세서 보드(board), 적어도 하나의 PCIe 장치((Peripheral Component Interconnect express device) 및 복수의 포트를 포함하고, 상기 복수의 포트에는 상기 임베디드 프로세서, 상기 적어도 하나의 프로세서 보드 및 상기 적어도 하나의 PCIe 장치가 연결되는 PCIe 스위치 장치(Peripheral Component Interconnect express Switch Device)를 포함하고, 상기 임베디드 프로세서는, 상기 적어도 하나의 프로세서 보드가 상기 적어도 하나의 PCIe 장치를 사용하기 위해 필요한 옵션 롬 데이터(Option ROM data)을 생성하고, 상기 PCIe 스위치장치를 제어하여, 상기 적어도 하나의 프로세서 보드에 전송한다.
또한, 상기 적어도 하나의 PCIe 장치는, 네트워크 카드(network card), 스토리지 보드(storage board) 중 적어도 하나를 포함하는 것을 특징으로 한다.
상술한 바와 같은 본 발명에 따른 서버 시스템 및 이의 관리 방법에 따르면, 다수의 호스트들이 하드웨어적 기능 및 소프트웨어적 기능 중 적어도 하나를 수행하기 위해 필요한 옵션 롬 데이터를 신속하고 정확하게 다수의 호스트들로 전송할 수 있다. 이후, 다수의 호스트들은 바이어스(BIOS)를 통하여, 상기 옵션 롬 데이터를 디코드(decode)하고 하드웨어적 기능 및 소프트웨ㅔ어적 기능 중 적어도 하나를 수행할 수 있는 드라이버(driver)를 로드(load)하여 효과적으로 사용할 수 있다.
도1 은 본 발명의 일 실시예에 따른 서버 시스템(Server system)의 블록도이다.
도2 는 다른 일 실시예에 따른 서버 시스템의 구체적인 구성을 나타내는 블록도이다.
도3 은 본 발명의 일 실시예에 따른 서버 시스템의 관리 방법을 설명하기 위한 블록도이다.
도4 는 본 발명의 또 다른 실시예에 따른 서버 시스템의 관리 방법을 설명하기 위한 블록도이다.
도5a 및 도5b 는 본 발명의 또 다른 실시예에 따른 서버 시스템의 관리 방법을 설명하기 위한 블록도이다.
도6 은 본 발명의 또 다른 실시예에 따른 서버 시스템의 관리 방법을 설명하기 위한 도면이다.
도7 은 본 발명의 또 다른 실시예에 따른 서버 시스템의 관리 방법을 설명하기 위한 도면이다.
도8 은 본 발명의 실시예에 따른 서버 시스템의 관리 방법을 나타내는 순서도이다.
도9 는 옵션 롬 데이터 수신 방법을 나타내는 순서도이다.
도10 은 본 발명의 또 다른 실시예에 따른 관리 시스템이 포함하는 옵션 롬 관리부의 관리 방법을 나타내는 순서도이다.
도11 은 본 발명의 따른 서버 시스템을 포함하는 슬레드형 서버 섀시를 나타내는 도면이다.
도12 는 본 발명의 따른 서버 시스템을 포함하는 블레이드형 서버 섀시를 나타내는 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다. 본 발명의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 벗어나지 않으면서, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도1 은 본 발명의 일 실시예에 따른 서버 시스템(100; Server system)의 블록도이다.
도1 을 참조하면, 본 발명의 일 실시예에 따른 서버 시스템(100)은 관리 시스템(120; Management system), 스위치 장치(140; switch device), 다수의 호스트들(HOST_1~HOST_n, 160_1~160_n) 및 다수의 물리적 장치(PD_1~PD_n, 180_1~180_n)를 포함한다. 다만, 또 다른 실시예로, 스위치 장치(140)는 PCIe(Peripheral Component Interconnect Express)스위치 장치에 해당할 수 있다. 이외의 다른 종류의 스위치 장치를 포함할 수 있다.
스위치 장치(140)를 통하여, 관리 시스템(120), 다수의 호스트들(160_1~160_n) 및 다수의 물리적 장치들(180_1~180_n)을 연결될 수 있다. 여기서 연결되었다는 의미는, 패킷(packet)등과 같은 신호가 라우팅(routing)될 수 있는 신호 전송 경로가 형성되었다는 의미이며, 패킷은 데이터가 전달되는 기초 단위를 나타낼 수 있다. 관리 시스템(120)는 다수의 호스트들(160_1~160_n)과 다수의 물리적 장치들(180_1~180_n) 사이의 신호 교환시에 신호 전송 경로를 설정할 수 있다. 일 실시예로, 관리 시스템(120)는 스위치 장치(140)상에서 가상 장치들(Virtual devices)을 생성할 수 있고, 상기 가상 장치들을 관리함으로써 신호 전송 경로를 형성할 수 있다. 예를 들면, 제1 호스트(160_1)와 일대일 대응되는 제1 가상 장치가 제1 호스트(160_1)에서 전송하는 패킷 등의 신호를 수신한 경우, 상기 제1 호스트(160_1)의 신호를 제1 물리적 장치(180_1)로 전송할 수 있도록 관리 시스템(120)은 스위치 장치(140)를 제어할 수 있다. 이러한 방식으로, 관리 시스템(120)은 스위치 장치(140)를 제어함으로서, 다수의 호스트들(160_1~160_n)과 다수의 물리적 장치들(180_1~180_n) 사이의 신호 교환을 관리할 수 있다. 상기 가상 장치들은 스위치 장치(140)상에서 구현될 수 있으며, 이는 실제적으로 존재하는 장치가 아니라, 소프트웨어적으로 구현되는 가상의 장치를 일컫는다.
또한, 관리 시스템(120)은 다수의 호스트들(160_1~160_n)이 하드웨어적 기능을 수행하는 일예로서, 다수의 물리적 장치들(180_1~180_n)을 사용할 수 있도록 다수의 물리적 장치들(180_1~180_n) 각각에 대응되는 옵션 롬 데이터(Option ROM data; OR)를 다수의 호스트들(160_1~160_n)에 전송하는 동작을 관리할 수 있다. 옵션 롬 데이터(Option ROM data; OR)는 다수의 호스트들(160_1~160_n)의 각각의 바이오스(BIOS)를 이용하여, 옵션 롬 데이터(OR)를 디코딩(decoding)함으로써, 다수의 물리적 장치들(180_1~180_n)을 사용할 수 있도록 해주는 드라이버(driver)들을 생성할 수 있다. 상기 드라이버(driver)들을 이용하여 다수의 호스트들(160_1~160_n)은 다수의 물리적 장치들(180_1~180_n)을 사용할 수 있다. 또 다른 실시예로, 다수의 호스트들(160_1~160_n)의 각각에 직접 연결된 물리적 장치들(미도시)을 사용할 수 있도록, 각각에 대응되는 옵션 롬 데이터(OR)를 다수의 호스트들(160_1~160_n)에 전송하는 동작을 관리할 수 있다.
관리 시스템(120)은 옵션 롬 관리부(125)를 더 포함할 수 있다. 옵션 롬 관리부(125)는 다수의 물리적 장치들(180_1~180_n)에 사용에 필요한 각각의 옵션 롬 데이터(OR)를 다수의 호스트들(160_1~160_n)에 전송할 수 있다. 일 실시예로 옵션 롬 관리부(125)는 제1 물리적 장치(180_1)를 사용하기 위해 필요한 옵션 롬 데이터(OR)를 생성할 수 있으며, 상기 옵션 롬 데이터(OR)를 서버 시스템(100)의 동작 전에 옵션 롬 관리부(125)에 설정해놓을 수 있다. 다수의 호스트들(160_1~160_n)로부터 사용 대상이되는 물리적 장치를 대상 물리적 장치로 지칭한다. 또한, 옵션 롬 관리부(125)는 옵션 롬 데이터(OR)를 다수의 호스트들(160_1~160_n) 중 적어도 하나에 전송하기 위한 적어도 하나의 가상 장치(Virtual device)를 생성할 수 있다.
상기 가상 장치는 스위치 장치(140)상에서 구현될 수 있으며, 이는 실제적으로 존재하는 장치가 아니라, 소프트웨어적으로 구현되는 가상의 장치를 일컫는다. 본 발명의 일실예에 따르면, 옵션 롬 관리부(125)는 적어도 하나의 가상 장치와 다수의 호스트들(160_1~160_n)에 대응되도록 스위치 장치(140)를 통하여 할당할 수 있으며, 그 대응은 일대일 대응일 수 있다. 예를 들면, 옵션 롬 관리부(125)가 제1 내지 제n 가상 장치를 생성한 경우, 제1 가상 장치는 제1 호스트(160_1), 제2 가상 장치는 제2 호스트(160_2) 및 제n 가상 장치는 제n 호스트(160_n)에 일대일 대응되도록 스위치 장치(140)를 통하여 할당할 수 있다.
옵션 롬 관리부(125)는 가상 장치를 이용하여, 생성한 적어도 하나의 가상 장치와 대응된 다수의 호스트들(160_1~160_n)에 다수의 물리적 장치들(180_1~180_n)을 사용하기 위해 필요한 옵션 롬 데이터(OR)를 전송할 수 있다. 또한, 다수의 물리적 장치들(180_1~180_n)을 다수의 호스트들(160_1~160_n)을 전송하기 위한 옵션 롬 데이터 전송 경로를 설정할 수 있으며, 상기 옵션 롬 데이터 전송 경로는 전술한 신호 전송 경로의 하위 개념이다. 또한, 일 실시예로 옵션 롬 관리부(125)는 상기 옵션 롬 데이터 전송 경로를 설정하기 위하여, 다수의 호스트들(160_1~160_n)과 다수의 물리적 장치들(180_1~180_n)과의 스위치 장치(140)를 통한 연결 관계를 기반으로 판단할 수 있다.
또 다른 실시예로, 옵션 롬 관리부(125)는 다수의 호스트들(160_1~160_n)이 사용하려는 대상이 되는 대상 물리적 장치인 제1 물리적 장치(180_1)의 사용에 필요한 옵션 롬 데이터(OR)를 전송하기 위하여 적어도 하나의 가상 장치를 생성할지 여부를 판단할 수 있다. 가상 장치 생성 여부의 판단은, 대상 물리적 장치인 제1 물리적 장치(180_1)와 다수의 호스트들(160_1~160_n)과의 스위치 장치(140)를 통한 연결 관계를 기반으로 판단할 수 있다. 이에 대한 자세한 서술은 후술하기로 하겠다.
일 실시예로, 다수의 물리적 장치들(180_1~180_n)은 PCIe 스위치 장치(140)에 연결될 수 있으며, 다수의 물리적 장치들(180_1~180_n)을 사용하기 위하여 필요한 옵션 롬 데이터(OR)는 PCI 옵션 롬 데이터에 해당할 수 있다. 또한, 다수의 호스트들(160_1~160_n)은 UEFI(Unified Extnesible Firmware Interface)를 통하여 정의된 바이오스(BIOS)를 통하여, 다수의 물리적 장치들(180_1~180_n)을 제어함으로써 사용할 수 있다.
또한, 이에 국한되지 않으며, 옵션 롬 데이터(OR)는 다수의 호스트들(160_1~160_n)의 소프트웨어적 기능을 수행하기 위하여 필요한 옵션 롬 데이터(OR)일 수 있다. 예를 들면, 호스트들(160_1~160_n)의 소프트웨어적 기능은 TCP/IP(transfer control protocol/Internet protocol]) 기능, DHCP(dynamic host configuration protocol) 기능, EXT2 파일 시스템(second extended filesystem) 기능 등을 수행하기 위하여 필요한 옵션 롬 데이터(OR)일 수 있다.
도2 는 다른 일 실시예에 따른 서버 시스템의 구체적인 구성을 나타내는 블록도이다.
도2 를 참조하면, 본 발명의 일 실시예에 따른 서버 시스템(200)은 PCIe 스위치 장치(210; PCIe Switch device), 임베디드 프로세서(220; EMBEDDED PROCESSOR), 복수의 프로세서 보드(230; PROCESSOR BOARD), 복수의 스토리지 보드(240; STORAGE BOARD), 복수의 네트워크 카드(250; NETWORK CARD)를 포함한다. 도2 에서 도1 의 관리 시스템(120)은 임베디드 프로세서(220)와 대응될 수 있으며, 도1 의 다수의 호스트들(160_1~160_n)은 복수의 프로세서 보드(230)에 대응될 수 있고, 도1 의 다수의 물리적 장치(180_1~180_n)는 복수의 스토리지 보드(240) 및 복수의 네트워크 카드(250)에 대응될 수 있다. 또한, 복수의 스토리지 보드(240) 및 복수의 네트워크 카드(250)는 PCIe 스위치 장치(210)에 연결되는 장치로서, PCIe 장치라 지칭할 수 있다.
PCIe 스위치 장치(210)는 복수의 포트(211, 212)를 포함할 수 있다. 복수의 포트는 하나의 업스트림(upstream) 포트(211; UP) 및 복수의 다운스트림(downstream) 포트(212; DP)를 포함할 수 있다. PCIe 스위치 장치(210)는 복수의 포트(211, 212) 중 하나의 포트로부터 복수의 포트(211, 212) 중 다른 포트로 패킷(packet)을 라우팅할 수 있다.
PCIe 스위치 장치(210)는 시스템 보드(또는, 마더 보드, 메인 보드) 상에 형성될 수 있다. 여기서, 시스템 보드란 서버 시스템(200)의 메인 인쇄 회로 기판을 나타낼 수 있다. 시스템 보드는 서버 시스템의 주요 컴포넌트(component)를 포함할 수 있다.
PCIe 스위치 장치(210)는 PCIe(Peripheral Component Interconnect Express) 인터페이스를 가질 수 있다. PCIe 인터페이스의 기본 링크(link)는 하나의 레인(lane)을 포함하고, 하나의 레인은 서로 다른 신호 쌍(pair)으로 구성될 수 있다. 예를 들어, 하나의 레인은 데이터 전송을 위한 신호 쌍과 데이터 수신을 위한 신호 쌍을 포함할 수 있다. 실시예에 따라, x1, x2, x4, x8, x16 링크(단, xN 링크는 N개의 레인을 포함함)의 PCIe 인터페이스가 사용될 수 있으나, 본 발명이 이에 한정되는 것은 아니다.
임베디드 프로세서(220)는 데이터를 처리하도록 구성될 수 있다. 임베디드 프로세서(220)는 시스템 보드 상에 형성되어 내장된 프로세서를 나타낼 수 있다. 임베디드 프로세서(220)는 PCIe 스위치 장치(210)를 제어하도록 프로그램될 수 있다. 전술하였듯이, 임베디드 프로세서(220)는 PCIe 스위치 장치(210)를 제어하는 도1 의 관리 시스템(120)으로 기능할 수 있다.
복수의 프로세서 보드(230)는 데이터를 처리하도록 구성될 수 있다. 복수의 프로세서 보드(230)는 서버 시스템(200)의 서브 시스템으로서, 시스템 보드와 별개의 보드로 구성될 수 있다.임베디드 프로세서(220) 및 복수의 프로세서 보드(230)는 서로 독립된 운영 체제를 구동할 수 있다. 실시예에 따라, 복수의 프로세서 보드(230) 및 임베디드 프로세서(220)는 동일한 운영 체제를 구동하거나, 서로 다른 운영 체제를 구동할 수 있다. 임베디드 프로세서(220) 및 복수의 프로세서 보드(230)는 서로 독립적으로 동작할 수 있다.
복수의 스토리지 보드(240)는 데이터를 저장하도록 구성될 수 있다. 복수의 스토리지 보드(240)는 서버 시스템(200)의 서브 시스템으로서, 시스템 보드와 별개의 보드로 구성될 수 있다.
예를 들어, 스토리지 보드(240)는 솔리드 스테이트 드라이브(solid state drive)를 포함할 수 있으나, 본 발명이 이에 한정되는 것은 아니다. 솔리드 스테이트 드라이브는 반도체 메모리를 포함하여 데이터를 저장할 수 있다. 예를 들어, 솔리드 스테이트 드라이브는 플래시(flash) 메모리 등과 같은 비휘발성 메모리를 포함할 수 있다. 솔리드 스테이트 드라이브는 NVMe(Non-Volatile Memory express) 인터페이스를 지원하여 고속 통신을 수행할 수 있다.
복수의 스토리지 보드(240) 및 복수의 네트워크 카드(250)는 SR-IOV(Single Root IO Virtulization)를 제공할 수 있다. SR-IOV는 가상화 환경에서 복수의 가상화 머신이 하나의 장치를 사용하는 것을 나타낼 수 있다.
도3 은 본 발명의 일 실시예에 따른 서버 시스템(300)의 관리 방법을 설명하기 위한 블록도이다.
도3 을 참조하면, 서버 시스템(300)은 옵션 롬 관리부(325), PCIe 스위치장치(340), 제1 호스트(360) 및 제1 물리적 장치(380)를 포함한다. 옵션 롬 관리부(325)는 프로세서(325_a) 및 저장 장치(325_b; Storage)를 포함한다. 프로세서(325_a)는 제1 호스트(360)가 제1 물리적 장치(380)를 사용하기 위하여 필요한 옵션 롬 데이터를 생성할 수 있다. 또한, 생성된 옵션 롬 데이터는 저장 장치(325_b)에 저장될 수 있다. 또 다른 실시예로, 저장 장치(325_b)에 미리 제1 물리적 장치(380)를 사용하기 위하여 필요한 옵션 롬 데이터를 설정하여 저장할 수 있다.
옵션 롬 관리부(325)는 제1 호스트 장치(360)와 제1 물리적 장치(380)와의 PCIe 스위치 장치(340)를 통한 연결 관계를 기반으로 옵션 롬 데이터를 생성할지 여부 또는 옵션 롬 데이터를 전송하기 위한 적어도 하나의 가상 장치를 생성할지 여부를 판단할 수 있고 더 나아가, 옵션 롬 데이터를 전송하기 위한 옵션 롬 데이터 전송 경로를 설정할 수 있다.
옵션 롬 관리부(325)는 제1 물리적 장치(380)와 제1 호스트(360)와의 PCIe 스위치 장치(340)을 통한 연결 관계를 파악할 수 있다. 이때, 옵션 롬 관리부(325)는 제1 물리적 장치(380)로 확인 신호(CS)를 전송할 수 있다. 다만, 도면상 확인 신호(CS)를 가상 기능 블록(344)이 수신하는 것으로 개시되어 있으나, 이에 국한되지 않으며, 제1 물리적 장치(380)내에 가상 기능 블록(344)이 형성될 수 있는바, 제1 물리적 장치(380)가 확인 신호(CS)를 수신할 수 있다. 제1 호스트(360)와 제1 물리적 장치의 연결 관계를 나타내는 확인 응답 신호(CSR)을 수신할 수 있다. 제1 물리적 장치(380)는 제1 호스트(360) 이외의 다수의 호스트에 의하여 사용될 수 있도록 SR-IOV(Single Root IO Virtualization)를 제공할 수 있다. 제1 물리적 장치(380)가 SR-IOV를 제공하는 경우에, 제1 호스트(360)가 제1 물리적 장치(380)를 사용하는 의미는 제1 호스트(360)가 제1 물리적 장치(380)에 대응하는 가상 기능 블록을 사용한다는 의미를 포함할 수 있다.
따라서, 적어도 하나의 가상 기능 블록(344; Virtual Function Block)을 생성할 수 있으며, 제1 호스트(360)는 가상 기능 블록(344)과 일대일 대응될 수 있다. 따라서, 제1 호스트(360)는 가상으로 형성된 가상 기능 블록(344)과 연결되어 있으며, 이러한 연결은 데이터 등의 신호 전송 경로가 형성되었다는 의미이다. 형성된 신호 전송 경로를 PCIe 스위치 장치(340)를 통하여 제어함으로써, 제1 호스트(360)는 가상 기능 블록(344)으로 신호를 전송할 수 있다. 통하여 연결될 수 있다. 서술의 편의상 PCIe 스위치 장치(340) 내부에 가상 기능 블록(344)가 구현되는 것으로 서술하였으나, 이에 국한되지 않으며, 외부에 구현될 수 있을 것이다.
가상 기능 블록(344)은 상기 가상 기능 블록(344) 또는 제1 물리적 장치(380)를 사용하는데 필요한 옵션 롬 데이터를 포함하지 않는다. 따라서, 가상 기능 블록(344)와 제1 호스트(360)가 PCIe 스위치 장치(340)을 통하여 연결된 경우, 상기 가상 기능 블록(344) 또는 제1 물리적 장치(380)를 사용하는데 필요한 옵션 롬 데이터를 제1 호스트(360)에 전송하기 위하여 제1 가상 장치(342; Virtual Device_1)를 생성할 수 있다. 또한, 옵션 롬 관리부(325)는 상기 가상 기능 블록(344) 또는 제1 물리적 장치(380)를 사용하는데 필요한 옵션 롬 데이터를 생성할 수도 있다.
옵션 롬 관리부(325)는 제1 가상 장치(342)와 제1 호스트(360)와 대응되도록 PCIe 스위치 장치(340)를 통하여, 할당할 수 있으며, 제1 호스트(360)가 제1 물리적 장치(380)을 사용하기 위하여 필요한 옵션 롬 데이터를 요청하는 메모리 읽기 요청 신호(MR)를 제1 가상 장치(342)에 전송할 수 있다. 옵션 롬 관리부(325)는 PCIe 스위치 장치(340)를 제어하여, 제1 가상 장치(342)가 수신하는 메모리 읽기 요청 신호(MR)를 옵션 롬 관리부(325)가 수신할 수 있도록 옵션 롬 관리부(325)와 제1 호스트(360)를 연결하는 리디렉션(redirection) 동작을 수행할 수 있도록 한다. 옵션 롬 관리부(325)는 제1 호스트(360)로부터 메모리 읽기 요청 신호(MR)를 수신한 경우, 제1 물리적 장치(380)의 사용에 필요한 옵션 롬 데이터를 포함하는 메모리 읽기 응답 신호(MRR)를 제1 호스트(360)에 제공할 수 있다. 일 실시예로, 옵션 롬 관리부(325)는 PCIe 스위치 장치(340)를 통하여, 옵션 롬 데이터를 제1 호스트(340)에 직접 전송할 수 있고, 제1 가상 장치(342)를 통하여 전송할 수 도 있을 것이다.
옵션 롬 관리부(325)는 제1 물리적 장치(380)를 사용하기 위해 필요한 옵션 롬 데이터를 어떠한 전송 경로로 전송할지를 설정할 수 있으며, 옵션 롬 관리부(325)로부터 제1 호스트(360)에 옵션 롬 데이터가 전송되는 방식은 제1 경로에 해당할 수 있으며, 제1 물리적 장치(380)로부터 제1 호스트(360)에 옵션 롬 데이터가 전송되는 방식은 제2 경로에 해당될 수 있다. 이에 대한 구체적 서술은 후술하기로 한다.
제1 호스트(360)는 수신한 옵션 롬 데이터를 기반으로, 제1 호스트(360)의 바이오스(BIOS)를 이용하여, 옵션 롬 데이터를 디코딩하여, 제1 물리적 장치(380)에 대응하는 드라이버를 생성할 수 있다. 생성한 드라이버를 기반으로, 제1 호스트(360)는 제1 물리적 장치(380)를 사용할 수 있다. 또한, 또 다른 실시예로, 제1 호스트(360)의 바이오스(BIOS)를 이용하여, 옵션 롬 데이터를 디코딩하여, 제1 물리적 장치(380)에 대응하는 가상 기능 블록(344)를 사용하기 위한 드라이버를 생성할 수 있다. 생성한 드라이버를 기반으로, 제1 호스트(360)는 가상 기능 블록(344)를 이용하여, 제1 물리적 장치(380)를 사용할 수 있다. 일 실시예로, 제1 물리적 장치(380)는 SR-IOV를 제공하는 네트워크 카드일 수 있으며, 다만 이에 국한되지 않으며 다양한 장치에 해당할 수 있다.
도4 는 본 발명의 또 다른 실시예에 따른 서버 시스템(400)의 관리 방법을 설명하기 위한 블록도이다.
도4 를 참조하면, 서버 시스템(400)은 옵션 롬 관리부(425), PCIe 스위치 장치(440), 제1 호스트(460), 제1 물리적 장치(480) 및 제2 물리적 장치(490)를 포함한다. 다만, 서술의 편의상 도면 상에 서버 시스템(400)에 제1 호스트(460)만을 개시하였으나, 도1 과 같이 서버 시스템(400)은 다수의 호스트를 포함할 수 있다. 제1 호스트(460)를 포함한 다수의 호스트들이 제1 물리적 장치(480)를 사용할 수 있도록, 제1 물리적 장치(480)에 대응하는 적어도 하나의 가상 기능 블록(444)를 형성할 수 있다. 다만, 제2 물리적 장치(490)는 제1 물리적 장치(480)와 달리 다수의 호스트들을 위한 가상 기능 블록을 형성하지 않을 수 있다.
옵션 롬 관리부(425)는 제1 호스트(460)와 제1 물리적 장치(480) 와의 연결 관계를 파악하기 위하여, 제1 확인 신호(CS1)를 제1 물리적 장치(480) 로 전송할 수 있다. 제1 호스트(460)는 제1 물리적 장치(480)의 가상 기능 블록(444)과 PCIe 스위치 장치(440)를 통하여 연결될 수 있다. 가상 기능 블록(444)에는 제1 물리적 장치(480)를 사용하기 위하여 필요한 제1 옵션 롬 데이터가 존재하지 않을 수 있다. 제1 물리적 장치(480)와 제1 호스트(460)와의 연결 관계 정보 및 제1 옵션 롬 데이터가 가상 기능 블록(444)에 존재하지 않는다는 정보 중 어느 하나를 포함하는 제1 확인 응답 신호(CSR1)를 제1 물리적 장치(480)으로부터 옵션 롬 관리부(425)가 수신할 수 있다.
또한, 옵션 롬 관리부(425)는 제1 호스트(460)와 제2 물리적 장치(490)와의 연결 관계를 파악하기 위하여, 제2 확인 신호(CS2)를 제2 물리적 장치(490)로 전송할 수 있다. 제1 호스트(460)는 제2 물리적 장치(490)와 PCIe 스위치 장치(440)를 통하여 연결될 수 있다. 제2 물리적 장치(490)에는 제2 물리적 장치(490)를 사용하기 위하여 필요한 제2 옵션 롬 데이터가 존재할 수 있다. 제2 물리적 장치(490)와 제1 호스트(460)와의 연결 관계 정보 및 제2 옵션 롬 데이터가 제2 물리적 장치(490)에 존재한다는 정보 중 어느 하나를 포함하는 제2 확인 응답 신호(CSR2)를 제2 물리적 장치(480)으로부터 옵션 롬 관리부(425)가 수신할 수 있다.
옵션 롬 관리부(425)는 옵션 롬 데이터를 생성하거나, 옵션 롬 데이터 전송 경로를 설정하는 등의 역할을 하는 프로세서(425_a) 및 생성되거나 기설정된 옵션 롬 데이터를 포함한 데이터를 저장하기 위한 저장 장치(425_b)를 포함한다. 옵션 롬 관리부(425)는 수신한 제1 및 제2 확인 응답 신호(CSR1, CSR2)를 기반으로, 제1 물리적 장치(480) 및 제2 물리적 장치(490) 각각의 사용에 필요한 옵션 롬 데이터를 제공하기 위하여 옵션 롬 데이터 전송 경로를 설정할 수 있다.
옵션 롬 관리부(425)는 제1 옵션 롬 데이터를 제1 호스트(460)에 전송하기 위한 옵션 롬 데이터 전송 경로를 제1 경로로 설정할 수 있다. 상기 제1 경로는 제1 옵션 롬 데이터를 옵션 롬 관리부(425)에서 제1 호스트(460)로 전송하는 전송 경로를 지칭할 수 있다. 제1 호스트(460)는 제1 물리적 장치(480)의 사용에 필요한 제1 옵션 롬 데이터가 존재하지 않는 가상 기능 블록(444)와 PCIe 스위치 장치(440)를 통하여 연결되므로, 제1 호스트(460)에 제1 옵션 롬 데이터를 전송하기 위하여 옵션 롬 관리부(425)는 제1 가상 장치(442; VD1)를 생성할 수 있다. 옵션 롬 관리부(425)는 생성한 제1 가상 장치(442)를 제1 호스트(460)에 PCIe 스위치 장치(440)를 통하여 할당하여, 서로 대응될 수 있도록 할 수 있다. 제1 호스트(460)는 제1 가상 장치(442)에 제1 메모리 읽기 요청 신호(MR1)을 전송할 수 있으며, 제1 가상 장치(442)에 제1 메모리 읽기 요청 신호(MR1)이 전송된 경우, 옵션 롬 관리부(425)는 제1 메모리 읽기 요청 신호(MR1)를 직접 수신하기 위하여, 옵션 롬 관리부(425)와 제1 호스트(460)를 연결하는 리디렉션 동작을 수행할 수 있다. 그리고, 옵션 롬 관리부(425)는 저장 장치(425_b)에 저장되거나 설정되어 있는 제1 옵션 롬 데이터를 포함하는 제1 메모리 읽기 응답 신호(MRR1)를 제1 호스트(460)에 전송할 수 있다.
옵션 롬 관리부(425)는 제2 옵션 롬 데이터를 제1 호스트(460)에 전송하기 위한 옵션 롬 데이터 전송 경로를 제2 경로로 설정할 수 있다. 상기 제2 경로는 제2 옵션 롬 데이터를 제2 물리적 장치(490)에서 제1 호스트(460)로 전송하는 전송 경로를 지칭할 수 있다. 제1 호스트(460)는 제2 물리적 장치(490)의 사용에 필요한 제2 옵션 롬 데이터가 존재하는 제2 물리적 장치(490)와 PCIe 스위치 장치(440)를 통하여 연결되므로, 제1 호스트(460)에 제2 옵션 롬 데이터를 전송하기 위하여 옵션 롬 관리부(425)는 제2 가상 장치(443; VD2)를 생성할 수 있다. 옵션 롬 관리부(425)는 생성한 제2 가상 장치(443)를 제1 호스트(460)에 PCIe 스위치 장치(440)를 통하여 할당하여, 서로 대응될 수 잇도록 할 수 있다. 제1 호스트(460)는 제2 가상 장치(443)를 통하여 제2 물리적 장치(490)에 제2 메모리 읽기 요청 신호(MR2)를 전송할 수 있다. 제2 물리적 장치(490)는 제2 물리적 장치(490)이 포함하는 비휘발성 메모리 장치 등에 저장된 제2 옵션 롬 데이터를 포함하는 제2 메모리 읽기 응답 신호(MRR2)를 제1 호스트(460)에 전송할 수 있다.
도5 a 및 도5b 는 본 발명의 또 다른 실시예에 따른 서버 시스템(500a, 500b)의 관리 방법을 설명하기 위한 블록도이다.
도5a 를 참조하면, 서버 시스템(500a)는 옵션 롬 관리부(525a), PCIe 스위치 장치(540a), 제1 호스트(560a), 제2 호스트(570a) 및 제1 물리적 장치(580a)를 포함한다. 제1 호스트(560a) 및 제2 호스트(570a)가 제1 물리적 장치(580a)를 사용할 수 있도록, 제1 물리적 장치(580a)에 대응하는 제1 가상 기능 블록(544a) 및 제2 가상 기능 블록(545a)를 형성할 수 있다.
옵션 롬 관리부(525a)는 제1 호스트(560a) 및 제2 호스트(570a)와 제1 물리적 장치(580a) 와의 연결 관계를 파악하기 위하여, 제1 확인 신호(CS1) 및 제2 확인 신호(CS2)를 제1 물리적 장치(580a) 로 전송할 수 있다. 제1 호스트(560a)는 제1 물리적 장치(580a)의 제1 가상 기능 블록(544a)과 PCIe 스위치 장치(440)를 통하여 연결될 수 있다. 제2 호스트(570a)는 제1 물리적 장치(580a)의 제2가상 기능 블록(545a)과 PCIe 스위치 장치(540a)를 통해 연결될 수 있다. 제1 및 제2 가상 기능 블록(544a, 545a)에는 제1 및 제2 가상 기능 블록(544a, 545a) 또는 제1 물리적 장치(580a)를 사용하기 위하여 필요한 제1 옵션 롬 데이터가 존재하지 않을 수 있다. 제1 물리적 장치(580a)와 제1 호스트(560a)와의 연결 관계 정보 및 제1 옵션 롬 데이터가 제1 가상 기능 블록(544a)에 존재하지 않는다는 정보 중 어느 하나를 포함하는 제1 확인 응답 신호(CSR1)를 제1 물리적 장치(580a) 로부터 옵션 롬 관리부(525a)가 수신할 수 있다. 또한, 제1 물리적 장치(580a)와 제2 호스트(570a)와의 연결 관계 정보 및 제1 옵션 롬 데이터가 제2 가상 기능 블록(545a)에 존재하지 않는다는 정보 중 어느 하나를 포함하는 제2 확인 응답 신호(CSR2)를 제2 물리적 장치(580a) 로부터 옵션 롬 관리부(525a)가 수신할 수 있다.
옵션 롬 관리부(525a)는 옵션 롬 데이터를 생성하거나, 옵션 롬 데이터 전송 경로를 설정하는 등의 역할을 할 수 있으며, 생성되거나 기설정된 옵션 롬 데이터를 포함한 데이터를 저장할 수 있다. 옵션 롬 관리부(525a)는 수신한 제1 및 제2 확인 응답 신호(CSR1, CSR2)를 기반으로, 제1 및 제2 가상 기능 블록(544a, 545a) 또는 제1 물리적 장치(580a)의 사용에 필요한 제1 옵션 롬 데이터를 전송하기 위하여 옵션 롬 데이터 전송 경로를 설정할 수 있다.
옵션 롬 관리부(525a)는 제1 옵션 롬 데이터를 제1 호스트(560a)에 전송하기 위한 옵션 롬 데이터 전송 경로를 제1 경로로 설정할 수 있다. 상기 제1 경로는 옵션 롬 관리부(525a)로부터 각각의 호스트(560a, 570a)로 옵션 롬 데이터를 전송하는 전송 경로를 지칭할 수 있다. 제1 호스트(560a)는 제1 가상 기능 블록(544a) 또는 제1 물리적 장치(580a)의 사용에 필요한 제1 옵션 롬 데이터가 존재하지 않는 가상 기능 블록(544a)와 PCIe 스위치 장치(540a)를 통하여 연결되므로, 제1 호스트(560a)에 제1 옵션 롬 데이터를 전송하기 위하여 옵션 롬 관리부(525a)는 제1 가상 장치(542a; VD_1)를 생성할 수 있다. 옵션 롬 관리부(525a)는 생성한 제1 가상 장치(542a)를 제1 호스트(560a)에 PCIe 스위치 장치(540a)를 통하여 할당하여, 서로 대응될 수 있도록 할 수 있다. 제1 호스트(560a)는 제1 가상 장치(542a)에 제1 메모리 읽기 요청 신호(MR1)을 전송할 수 있으며, 제1 가상 장치(542a)에 제1 메모리 읽기 요청 신호(MR1)이 전송된 경우, 옵션 롬 관리부(525a)는 제1 메모리 읽기 요청 신호(MR1)를 직접 수신하기 위하여, 옵션 롬 관리부(525a)와 제1 호스트(560a)를 연결하는 리디렉션 동작을 수행할 수 있다. 그리고, 옵션 롬 관리부(525a)는 저장되거나 설정되어 있는 제1 옵션 롬 데이터를 포함하는 제1 메모리 읽기 응답 신호(MRR1)를 제1 호스트(560a)에 전송할 수 있다.
옵션 롬 관리부(525a)는 제1 옵션 롬 데이터를 제2 호스트(570a)에 전송하기 위한 옵션 롬 데이터 전송 경로를 제1 경로로 설정할 수 있다. 상기 제1 경로는 옵션 롬 관리부(525a)로부터 각각의 호스트(560a, 570a)로 옵션 롬 데이터를 전송하는 전송 경로를 지칭할 수 있다. 제2 호스트(570a)는 제2 가상 기능 블록(545a) 또는 제1 물리적 장치(580a)의 사용에 필요한 제1 옵션 롬 데이터가 존재하지 않는 가상 기능 블록(545a)과 PCIe 스위치 장치(540a)를 통하여 연결되므로, 제2 호스트(570a)에 제1 옵션 롬 데이터를 전송하기 위하여 옵션 롬 관리부(525a)는 제2 가상 장치(542a; VD_2)를 생성할 수 있다. 옵션 롬 관리부(525a)는 생성한 제2 가상 장치(543a)를 제2 호스트(570a)에 PCIe 스위치 장치(540a)를 통하여 할당하여, 서로 대응될 수 있도록 할 수 있다. 제2 호스트(570a)는 제2 가상 장치(543a)에 제2 메모리 읽기 요청 신호(MR2)을 전송할 수 있으며, 제2 가상 장치(543a)에 제2 메모리 읽기 요청 신호(MR2)이 전송된 경우, 옵션 롬 관리부(525a)는 제2 메모리 읽기 요청 신호(MR2)를 직접 수신하기 위하여, 옵션 롬 관리부(525a)와 제2 호스트(570a)를 연결하는 리디렉션 동작을 수행할 수 있다. 그리고, 옵션 롬 관리부(525a)는 저장되거나 설정되어 있는 제1 옵션 롬 데이터를 포함하는 제2 메모리 읽기 응답 신호(MRR2)를 제2 호스트(570a)에 전송할 수 있다.
이와 같이, 옵션 롬 관리부(525a)를 통하여, 제1 물리적 장치(580a)의 사용에 필요한 제1 옵션 롬 데이터를 다수의 호스트들(560a, 570a)에 신속하고 정확하게 전송할 수 있는 효과가 있다.
도5b 를 참조하면, 서버 시스템(500b)는 관리 시스템(520b), PCIe 스위치 장치(540), 제1 호스트(560b), 제2 호스트(570b) 및 제1 물리적 장치(580b)를 포함한다. 도5a 에서 전술하였듯이, 제1 호스트(560b) 및 제2 호스트(570b)는 도1 의 옵션 롬 관리부(525a)로부터 제1 물리적 장치(580b)를 사용하는데 필요한 제1 옵션 롬 데이터를 수신할 수 있다.
제1 호스트(560b)는 제1 드라이버 리스트(562b) 및 제1 컨트롤러 리스트(564b)를 포함한다. 제1 호스트(560b)는 제1 호스트(560b)의 바이오스(BIOS)를 이용하여, 제1 옵션 롬 데이터를 디코딩함으로써, 제1 물리적 장치(580b)를 사용하기 위한 드라이버를 생성할 수 있다. 일 실시예로서, 제1 물리적 장치(580b)는 SR-IOV를 제공하는 장치로, 가상화 환경에서 복수의 가상 기능 블록들(544b, 545b)을 통하여, 제1 물리적 장치(580b)를 사용할 수 있다. 따라서, 제1 호스트(560b)는 제1 가상 기능 블록(544b)을 통하여 제1 물리적 장치(580b)를 사용할 수 있으며, 이를 위하여, 제1 가상 기능 블록 드라이버(563b)를 제1 드라이버 리스트(562b)에 생성할 수 있다. 또한, 제1 가상 기능 블록(544b)을 제어하기 위하여, 제1 컨트롤러 리스트(564b)에 포함된 제1 가상 기능 블록 컨트롤러(565b)와 제1 가상 기능 블록 드라이버(563b)를 맵핑(mapping)시킬 수 있다. 다만, 이에 국한되지 않고, 제1 드라이버 리스트(562b)에 제1 물리적 장치 드라이버를 생성하여, 제1 컨트롤러 리스트(564b)에 포함된 제1 물리적 장치 컨트롤러와 맵핑 시킬 수 있다.
제2 호스트(570b)는 제2 드라이버 리스트(572b) 및 제2 컨트롤러 리스트(574b)를 포함한다. 제2 호스트(570b)는 제2 호스트(570b)의 바이오스(BIOS)를 이용하여, 제1 옵션 롬 데이터를 디코딩함으로써, 제1 물리적 장치(580b)를 사용하기 위한 드라이버를 생성할 수 있다. 제2 호스트(570b)는 제2 가상 기능 블록(545b)을 통하여 제1 물리적 장치(580b)를 사용할 수 있으며, 이를 위하여, 제2 가상 기능 블록 드라이버(573b)를 제2 드라이버 리스트(572b)에 생성할 수 있다. 또한, 제2 가상 기능 블록(545b)을 제어하기 위하여, 제2 컨트롤러 리스트(574b)에 포함된 제2 가상 기능 블록 컨트롤러(575b)와 제2 가상 기능 블록 드라이버(573b)를 맵핑(mapping)시킬 수 있다. 다만, 이에 국한되지 않고, 제2 드라이버 리스트(572b)에 제1 물리적 장치 드라이버를 생성하여, 제2 컨트롤러 리스트(574b)에 포함된 제1 물리적 장치 컨트롤러와 맵핑 시킬 수 있다.
관리 시스템(520b)은 PCIe 스위치 장치(540b)를 제어하여, 제1 호스트(560b)와 제1 가상 기능 블록(544b) 사이의 신호 전송 경로와 제2 호스트(570b)와 제2 가상 기능 블록(545b) 사이의 신호 전송 경로를 설정할 수 있다. 일 실시예로, 관리 시스템(520b)은 제3 가상 장치(546b) 및 제4 가상 장치(547b)를 생성할 수 있으며, 제3 가상 장치(546b)는 제1 호스트(560b)로, 제4 가상 장치(547b)는 제2 호스트(570b)로 PCIe 스위치 장치(540b)를 통하여 할당할 수 있다. 제1 호스트(560b)에서 제3 가상 장치(546b)에 신호를 전송한 경우, 관리 시스템(520b)은 PCIe 스위치 장치(540b)를 제어하여, 제3 가상 장치(546b)가 수신한 신호를 제1 가상 기능 블록(544b)에 전송할 수 있다. 이와 같은 방식으로, 제1 호스트(560b)는 제1 가상 기능 블록(544b)을 이용하여, 제1 물리적 장치(580b)를 사용할 수 있다.
또한, 제2 호스트(570b)에서 제4 가상 장치(547b)에 신호를 전송한 경우, 관리 시스템(520b)은 PCIe 스위치 장치(540b)를 제어하여, 제4 가상 장치(547b)가 수신한 신호를 제2 가상 기능 블록(545b)에 전송할 수 있다. 이와 같은 방식으로, 제2 호스트(570b)는 제2 가상 기능 블록(545b)을 이용하여, 제1 물리적 장치(580b)를 사용할 수 있다.
일 실시예로, 제3 가상 장치(546b)는 도5a 의 제1 가상 장치(542a)에 대응될 수 있으며, 제4 가상 장치(547b)는 도5a 의 제2 가상 장치(543a)에 대응될 수 있다. 따라서, 도5a 에서 생성한 제1 및 제2 가상 장치(542a, 543a)를 통하여, 제1 및 제2 호스트(560b, 570b)의 신호를 제1 및 제2 가상 기능 블록(544b, 545b)에 전송할 수 있다.
도6 은 본 발명의 또 다른 실시예에 따른 서버 시스템(600)의 관리 방법을 설명하기 위한 도면이다.
도6 을 참조하면, 서버 시스템(600)는 옵션 롬 관리부(625), PCIe 스위치 장치(640), 제1 호스트(660) 및 제2 호스트(670)를 포함한다. 제1 호스트(660) 및 제2 호스트(670)가 소프트웨어적 기능을 수행할 수 있다. 소프트웨어적 기능으로서, 예를 들면, TCP/IP(transfer control protocol/Internet protocol]) 기능, DHCP(dynamic host configuration protocol) 기능, EXT2 파일 시스템(second extended filesystem) 기능 등을 수행할 수 있다.
제1 호스트(660) 및 제2 호스트(670)는 여러가지의 소프트웨어적 기능을 수행하기 위하여 그에 맞는 옵션 롬 데이터를 필요로 할 수 있다. 그에 따라, 옵션 롬 관리부(625)는 여러가지의 소프트웨어적 기능을 수행하기 위해 필요한 적어도 하나의 옵션 롬 데이터를 생성하여, 생성된 옵션 롬 데이터를 저장하거나 사용자에 의하여 옵션 롬 데이터는 옵션 롬 관리부(725)에 미리 저장될 수 있다.. 또한, 옵션 롬 관리부(625)가 저장된 옵션 롬 데이터를 제1 호스트(660) 및 제2 호스트(670)에 직접 제공할 수 있다.
옵션 롬 관리부(625)는 옵션 롬 데이터를 제1 호스트(660) 및 제2 호스트(670)에 전송하기 위한 옵션 롬 데이터 전송 경로를 설정할 수 있다. 호스트들(660, 670)이 소프트웨어적 기능을 수행하는데 있어서, 필요한 옵션 롬 데이터를 전송하기 위한 옵션 롬 데이터 전송 경로를 설정할 때, 각각의 호스트들(660, 670)의 옵션 롬 데이터의 필요 여부를 기반으로 설정할 수 있다.
일 실시예로, 옵션 롬 관리부(625)는 제1 호스트(660)가 소프트웨어적 기능을 수행하기 위하여 필요한 옵션 롬 데이터가 필요한 경우에는, 옵션 롬 관리부(625)는 제1 가상 장치(642; VD_1)를 생성하는 동작을 포함하는 옵션 롬 데이터 전송 경로를 설정 동작을 수행할 수 있다. 옵션 롬 관리부(625)는 생성한 제1 가상 장치(642)를 제1 호스트(660)에 PCIe 스위치 장치(640)를 통하여 할당하여, 서로 대응될 수 있도록 할 수 있다. 제1 호스트(660)는 제1 가상 장치(642)에 제1 메모리 읽기 요청 신호(MR1)을 전송할 수 있으며, 제1 가상 장치(642)에 제1 메모리 읽기 요청 신호(MR1)이 전송된 경우, 옵션 롬 관리부(625)는 제1 메모리 읽기 요청 신호(MR1)를 직접 수신하기 위하여, 옵션 롬 관리부(625)와 제1 호스트(660)를 연결하는 리디렉션 동작을 수행할 수 있다. 그리고, 옵션 롬 관리부(625)는 저장되거나 설정되어 있는 옵션 롬 데이터를 포함하는 제1 메모리 읽기 응답 신호(MRR1)를 제1 호스트(660)에 전송할 수 있다. 다만, 또 다른 실시예로, 제1 호스트(660)가 소프트웨어적 기능을 수행하기 위하여 필요한 옵션 롬 데이터를 미리 저장하고 있어, 옵션 롬 관리부(625)로부터 옵션 롬 데이터를 수신할 필요없는 경우에는, 옵션 롬 관리부(625)는 제1 가상 장치(642)를 생성하지 않을 수 있다.
옵션 롬 관리부(625)는 제2 호스트(670)가 소프트웨어적 기능을 수행하기 위하여 필요한 옵션 롬 데이터가 필요한 경우에는, 옵션 롬 관리부(625)는 제2 가상 장치(643; VD_2)를 생성하는 동작을 포함하는 옵션 롬 데이터 전송 경로를 설정 동작을 수행할 수 있다. 옵션 롬 관리부(625)는 생성한 제2 가상 장치(643)를 제2 호스트(670)에 PCIe 스위치 장치(640)를 통하여 할당하여, 서로 대응될 수 있도록 할 수 있다. 제2 호스트(670)는 제2 가상 장치(643)에 제2 메모리 읽기 요청 신호(MR2)을 전송할 수 있으며, 제2 가상 장치(643)에 제2 메모리 읽기 요청 신호(MR2)이 전송된 경우, 옵션 롬 관리부(625)는 제2 메모리 읽기 요청 신호(MR2)를 직접 수신하기 위하여, 옵션 롬 관리부(625)와 제2 호스트(670)를 연결하는 리디렉션 동작을 수행할 수 있다. 그리고, 옵션 롬 관리부(625)는 저장되거나 설정되어 있는 옵션 롬 데이터를 포함하는 제2 메모리 읽기 응답 신호(MRR2)를 제2 호스트(670)에 전송할 수 있다. 다만, 또 다른 실시예로, 제2 호스트(670)가 소프트웨어적 기능을 수행하기 위하여 필요한 옵션 롬 데이터를 미리 저장하고 있어, 옵션 롬 관리부(625)로부터 옵션 롬 데이터를 수신할 필요없는 경우에는, 옵션 롬 관리부(625)는 제2 가상 장치(643)를 생성하지 않을 수 있다.
다만, 이와 같은 구성은 일 예시적 구성으로, 둘 이상의 호스트들을 포함하는 서버 시스템(600)에도 서술한 발명의 사상이 적용될 수 있다.
도7 은 본 발명의 또 다른 실시예에 따른 서버 시스템(700)의 관리 방법을 설명하기 위한 도면이다.
도7 을 참조하면, 서버 시스템(700)는 옵션 롬 관리부(725), PCIe 스위치 장치(740), 제1 호스트(760) 및 제1 호스트(760)에 직접 연결된 물리적 장치(761)를 포함한다. 제1 호스트(760)는 물리적 장치(761)를 사용함으로써, 하드웨어적 기능을 수행할 수 있다.
제1 호스트(760)는 물리적 장치(761)의 사용을 위해 필요한 옵션 롬 데이터를 필요로 할 수 있다. 그에 따라, 옵션 롬 관리부(725)는 물리적 장치(761)을 사용하는데 필요한 옵션 롬 데이터를 생성하여, 생성한 옵션 롬 데이터를 저장하거나 사용자에 의하여 옵션 롬 데이터는 옵션 롬 관리부(725)에 미리 저장될 수 있다. 또한, 옵션 롬 관리부(725)가 저장된 옵션 롬 데이터를 제1 호스트(760)에 직접 제공할 수 있다.
옵션 롬 관리부(725)는 옵션 롬 데이터를 제1 호스트(660)에 전송하기 위한 옵션 롬 데이터 전송 경로를 설정할 수 있다. 옵션 롬 데이터 전송 경로를 설정할 때, 제1 호스트(760)의 옵션 롬 데이터의 필요 여부를 기반으로 설정할 수 있다. 이에 대해서는 도6 에서 자세히 서술한바 생략한다. 또한, 도7 에 개시된 구성은 일 예시적 구성으로, 다수의 물리적 장치가 직접 연결된 다수의 호스트들을 포함하는 서버 시스템(700)에서 다수의 호스트들이 각각 연결되어 있는 물리적 장치들을 사용하기 위해 필요한 옵션 롬 데이터를 수신받기 위하여, 서술한 발명의 사상이 적용될 수 있다.
도8 은 본 발명의 실시예에 따른 서버 시스템의 관리 방법을 나타내는 순서도이다.
도8 을 참조하면, 적어도 하나의 호스트가 하드웨어적 기능 및 소프트웨어적 기능 중 적어도 하나를 수행하기 위해 필요한 옵션 롬 데이터를 전송하기 위해 적어도 하나의 가상 장치를 생성한다(S100). 생성된 적어도 하나의 가상 장치와 적어도 하나의 호스트가 대응되도록 할당하는 동작을 수행한다(S120). 적어도 하나의 가상 장치와 대응된 호스트에 해당하는 적어도 하나의 대상 호스트로 옵션 롬 데이터를 전송하는 동작을 수행한다(S140). 적어도 하나의 가상 장치와 대응된 호스트는 수신한 옵션 롬 데이터를 기반으로 하드웨어적 기능 및 소프트웨어적 기능 중 적어도 하나를 수행하기 위한 드라이버(driver)를 생성한다(S160).
도9 는 옵션 롬 데이터 수신 방법을 나타내는 순서도이다.
도1및 도9 를 참조하면, 적어도 하나의 호스트에 해당하는 제1 호스트(180_1)는 옵션 롬 데이터를 수신하기 위하여, 옵션 롬 관리부(125)가 생성하고, 제1 호스트(180_1)에 대응되도록 할당한 가상 장치에 제1 호스트(180_1)가 메모리 읽기 요청 신호를 전송한다(S142). 이후, 메모리 읽기 요청 신호를 옵션 롬 관리부(125)가 수신하도록 PCIe 스위치 장치(140)를 제어하여, 리디렉션 동작을 수행한다(S144). 옵션 롬 관리부(125)는 옵션 롬 데이터를 포함한 메모리 읽기 응답 신호를 제1 호스트(180_1)에 전송한다(S146).
도10 은 본 발명의 또 다른 실시예에 따른 관리 시스템이 포함하는 옵션 롬 관리부의 관리 방법을 나타내는 순서도이다.
이하 도1 및 도10 을 참조하면, 일 실시예로써, 제1 호스트(160_1)가 대상 물리적 장치를 사용하여, 하드웨어적 기능을 수행하기 위한 경우에는, 옵션 롬 관리부(125)는 대상 물리적 장치에 해당하는 제1 물리적 장치(180_1)에 대응하는 가상 기능 블록(Virtual Function Block)과 적어도 하나의 호스트에 해당하는 제1 호스트(160_1)가 PCIe 스위치 장치를 통하여 연결되어 있는지 여부를 판단한다(S200). 전술하였듯이, 연결되었다는 의미는, 신호를 교환하는 경로가 형성되었음을 의미할 수 있다. 또한, 다른 실시예로, 대상 물리적 장치에 해당하는 제1 물리적 장치(180_1)가 가상 기능 블록을 형성하는지 여부를 판단하여, 후술할 경로를 설정할 수 있다. 또한, 가상 기능 블록을 형성하기 위하여 대상 물리적 장치에 해당하는 제1 물리적 장치(180_1)는 SR-IOV를 제공할 수 있으며, 다만, SR-IOV에 국한되지 않고, 다양한 프로그램을 제공할 수 있다.
제1 물리적 장치(180_1)가 SR-IOV를 제공함으로써, 가상 기능 블록을 통하여, 제1 물리적 장치(180_1)를 사용하는 경우일 수 있다. 이 때, 제1 호스트(160_1)가 가상 기능 블록과 연결되어 있는 때에는, 적어도 하나의 호스트에 해당하는 제1 호스트(160_1)는 옵션 롬 관리부(125)로부터 옵션 롬 데이터를 수신할 수 있도록 옵션 롬 관리부(125)는 PCIe 스위치 장치를 제어하여, 옵션 롬 데이터 전송 경로를 제1 경로로 설정할 수 있다(S240). 제1 호스트(160_1)가 옵션 롬 관리부(125)로부터 옵션 롬 데이터를 수신받을 수 있는 제1 경로에 대한 서술은 도9 에서 자세히 한바 이하 생략한다.
제1 물리적 장치(180_1)가 가상 기능 블록을 형성하지 않는 경우에는, 가상 기능 블록과 제1 호스트(160_1)가 연결되지 않는 경우에는, 제1 호스트(160_1)가 대상 물리적 장치인 제1 물리적 장치(180_1)로부터 옵션 롬 데이터를 수신할 수 있도록 제2 경로를 설정한다(S280).
도11 은 본 발명의 따른 서버 시스템을 포함하는 슬레드형 서버 섀시(1000)를 나타내는 도면이다.
도11 는 참조하면, 슬레드형 서버 섀시(1000)는 본체(1100), 본체(1100) 내에 설치되는 복수의 슬레드 서버(1200)를 포함할 수 있다.
본체(1100)는 전원 장치, 입출력 장치 및 주변 장치 등의 자원을 포함하도록 구성될 수 있다. 복수의 슬레드 서버(1200)는 본체(1100)로부터 각종 자원을 지원받아 서버로서 기능할 수 있다. 이러한 슬레드 서버(1200)는 도 1 등에 서술한 서버 시스템(100, 200, 300, 400, 500a, 500b)을 포함할 수 있다. 따라서, 다수의 호스트들에 물리적 장치를 사용하기 위해 필요한 옵션 롬 데이터를 서버 시스템(100, 200, 300, 400, 500a, 500b)에 포함된 관리 시스템은 일괄적으로 신속하게 다수의 호스트들에 전송할 수 있다. 시스템 보드는 내장된 임베디드 프로세서를 포함하거나 포함하지 않을 수 있다. 시스템 보드는 내장된 임베디드 스토리지를 포함하거나 포함하지 않을 수 있다.
슬레드 서버(1200)에서 프로세서 보드(1210)의 개수 및 스토리지 보드(1220)의 개수는 워크로드에 따라 플렉시블하게 변경될 수 있다. 사용자는 스토리지 보드(1220)의 개수와 비교하여 상대적으로 많은 개수의 프로세서 보드(1210)를 슬레드 서버(1200)에 장착하여 웹 서버 시스템을 구성할 수 있다.
또는, 사용자는 프로세서 보드(1210)의 개수와 비교하여 상대적으로 많은 개수의 스토리지 보드(1220)를 슬레드 서버(1200)에 장착하여 스토리지 서버 시스템을 구성할 수 있다.
도12 는 본 발명의 따른 서버 시스템을 포함하는 블레이드형 서버 섀시(2000)를 나타내는 도면이다.
도12 를 참조하면, 블레이드형 서버 섀시(2000)는 본체(2100), 본체(2100) 내에 설치되는 복수의 블레이드 서버(2200)를 포함할 수 있다.
본체(2100)는 전원 장치, 입출력 장치 및 주변 장치 등의 자원을 포함하도록 구성될 수 있다.
복수의 블레이드 서버(2200)는 본체(2100)로부터 각종 자원을 지원받아 서버로서 기능할 수 있다.
이러한 슬레드 서버(1200)는 도 1 등에 서술한 서버 시스템(100, 200, 300, 400, 500a, 500b)을 포함할 수 있다. 따라서, 다수의 호스트들에 물리적 장치를 사용하기 위해 필요한 옵션 롬 데이터를 서버 시스템(100, 200, 300, 400, 500a, 500b)에 포함된 관리 시스템은 일괄적으로 신속하게 다수의 호스트들에 전송할 수 있다. 시스템 보드는 내장된 임베디드 프로세서를 포함하거나 포함하지 않을 수 있다. 시스템 보드는 내장된 임베디드 스토리지를 포함하거나 포함하지 않을 수 있다.
블레이드 서버(2200)에서 프로세서 보드(2210)의 개수 및 스토리지 보드(2220)의 개수는 워크로드에 따라 플렉시블하게 변경될 수 있다.
사용자는 스토리지 보드(2220)의 개수와 비교하여 상대적으로 많은 개수의 프로세서 보드(2210)를 블레이드 서버(2200)에 장착하여 웹 서버 시스템을 구성할 수 있다. 또는, 사용자는 프로세서 보드(2210)의 개수와 비교하여 상대적으로 많은 개수의 스토리지 보드(2220)를 블레이드 서버(2200)에 장착하여 스토리지 서버 시스템을 구성할 수 있다.
본 발명의 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는, 프로세서에 의해 실행되는 하드웨어 모듈, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명의 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체에 상주할 수도 있다. 예시적인 기록 매체는 프로세서에 연결되며, 그 프로세서는 기록 매체로부터 정보를 독출할 수 있고 기록 매체에 정보를 기입할 수 있다. 다른 방법으로, 기록 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 기록 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 기록 매체는 사용자 단말기 내에 개별 구성 요소로서 상주할 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (10)

  1. 적어도 하나의 호스트, 관리 시스템 및 적어도 하나의 호스트와 관리 시스템을 연결하는 스위치 장치를 포함하는 서버 시스템에 대한 관리 방법에 있어서,
    상기 적어도 하나의 호스트가 옵션 롬 데이터(Option ROM data)를 전송하기 위하여 적어도 하나의 가상 장치를 생성하는 단계;
    상기 적어도 하나의 가상 장치와 상기 적어도 하나의 호스트가 대응되도록 할당하는 단계; 및
    상기 적어도 하나의 가상 장치와 대응된 호스트에 해당하는 적어도 하나의 대상 호스트로 상기 옵션 롬 데이터를 전송하는 단계를 포함하고,
    상기 적어도 하나의 가상 장치와 상기 적어도 하나의 호스트가 대응되도록 할당하는 단계는,
    상기 적어도 하나의 가상 장치와 상기 적어도 하나의 호스트 각각이 서로 일대일 대응되어 상기 스위치 장치를 통하여 연결되도록 하는 것을 특징으로 하는 서버 시스템 관리 방법.
  2. 제1 항에 있어서,
    상기 관리 시스템은, 옵션 롬 데이터 관리부를 포함하며,
    상기 옵션 롬 데이터 관리부는,
    상기 옵션 롬 데이터를 생성하는 프로세서(Processor) 및 상기 옵션 롬 데이터를 저장할 수 있는 저장 장치를 포함하는 것을 특징으로 하는 서버 시스템 관리 방법.
  3. 제1 항에 있어서,
    상기 스위치 장치는 PCIe 스위치 장치(Peripheral Component Interconnect express Switch device)인 것을 특징으로 하는 서버 시스템 관리 방법.
  4. 삭제
  5. 제1 항에 있어서,
    상기 서버 시스템은
    상기 적어도 하나의 호스트에 연결되어 상호 신호를 교환하는 적어도 하나의 장치를 포함하며,
    상기 옵션 롬 데이터는, 상기 적어도 하나의 호스트가, 상기 적어도 하나의 호스트에 연결된 적어도 하나의 장치를 사용하기 위해 필요한 것을 특징으로 하는 서버 시스템 관리 방법.
  6. 제1 항에 있어서,
    서버 시스템 관리 방법은,
    상기 적어도 하나의 대상 호스트는 상기 옵션 롬 데이터를 수신하기 위하여,
    상기 적어도 하나의 대상 호스트와 대응된 가상 장치에 상기 옵션 롬 데이터를 요청하는 메모리 읽기 요청 신호를 전송하는 단계; 및
    상기 메모리 읽기 요청 신호를 상기 관리시스템이 수신하도록 리디렉션(redirection) 동작을 수행하는 단계;를 더 포함하는 것을 특징으로 하는 서버 시스템 관리 방법.
  7. 제6 항에 있어서,
    상기 메모리 읽기 요청 신호를 상기 관리 시스템이 수신한 경우,
    상기 관리 시스템은 상기 메모리 읽기 요청 신호에 응답하여, 상기 옵션 롬 데이터를 포함한 메모리 읽기 응답 신호를 상기 적어도 하나의 대상 호스트로 전송하는 단계를 포함하는 것을 특징으로 하는 서버 시스템 관리 방법.
  8. 제1 항에 있어서,
    상기 적어도 하나의 대상 호스트는 상기 수신한 옵션 롬 데이터를 기반으로 드라이버를 생성하는 단계;를 더 포함하는 것을 특징으로 하는 서버 시스템 관리 방법.
  9. 임베디드(embedded) 프로세서;
    호스트(Host)로 동작하는 적어도 하나의 프로세서 보드(board);
    적어도 하나의 PCIe 장치((Peripheral Component Interconnect express device); 및
    복수의 포트를 포함하고, 상기 복수의 포트에는 상기 임베디드 프로세서, 상기 적어도 하나의 프로세서 보드 및 상기 적어도 하나의 PCIe 장치가 연결되는 PCIe 스위치 장치(Peripheral Component Interconnect express Switch Device)를 포함하고,
    상기 임베디드 프로세서는, 상기 적어도 하나의 프로세서 보드가 상기 적어도 하나의 PCIe 장치를 사용하기 위해 필요한 옵션 롬 데이터(Option ROM data)을 생성하고, 상기 PCIe 스위치장치를 제어하여, 상기 필요한 옵션 롬 데이터를 상기 적어도 하나의 프로세서 보드에 전송하는 서버 시스템(Server System).
  10. 제9 항에 있어서,
    상기 적어도 하나의 PCIe 장치는,
    네트워크 카드(network card), 스토리지 보드(storage board) 중 적어도 하나를 포함하는 것을 특징으로 하는 서버 시스템(Server sysyem).
KR1020150066948A 2015-05-13 2015-05-13 서버 시스템 및 이의 관리 방법 KR102336663B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150066948A KR102336663B1 (ko) 2015-05-13 2015-05-13 서버 시스템 및 이의 관리 방법
US14/973,989 US10031876B2 (en) 2015-05-13 2015-12-18 Server system and management method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150066948A KR102336663B1 (ko) 2015-05-13 2015-05-13 서버 시스템 및 이의 관리 방법

Publications (2)

Publication Number Publication Date
KR20160133869A KR20160133869A (ko) 2016-11-23
KR102336663B1 true KR102336663B1 (ko) 2021-12-07

Family

ID=57277151

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150066948A KR102336663B1 (ko) 2015-05-13 2015-05-13 서버 시스템 및 이의 관리 방법

Country Status (2)

Country Link
US (1) US10031876B2 (ko)
KR (1) KR102336663B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281577A1 (en) 2013-03-15 2014-09-18 Insyde Software Corp. System and method for managing and diagnosing a computing device equipped with unified extensible firmware interface (uefi)-compliant firmware
US20150143018A1 (en) 2013-11-18 2015-05-21 Bum-Jun Kim Flexible server system
US20150254082A1 (en) 2014-03-10 2015-09-10 Plx Technology, Inc. Remote booting over pci express using synthetic remote boot capability

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583908B2 (en) 2007-12-31 2013-11-12 Intel Corporation Enhanced network and local boot of Unified Extensible Firmware Interface images
US7904708B2 (en) 2008-02-18 2011-03-08 Dell Products L.P. Remote management of UEFI BIOS settings and configuration
US20090327741A1 (en) 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US8595343B2 (en) 2008-11-14 2013-11-26 Dell Products, Lp System and method for sharing storage resources
US8694761B2 (en) 2008-12-31 2014-04-08 Vincent Zimmer System and method to secure boot both UEFI and legacy option ROM's with common policy engine
US8321655B2 (en) 2009-06-13 2012-11-27 Phoenix Technologies Ltd. Execution parallelism in extensible firmware interface compliant systems
US8510422B2 (en) 2009-09-30 2013-08-13 Dell Products L.P. Systems and methods for extension of server management functions
CN102236621B (zh) 2010-04-28 2014-12-24 国网浙江富阳市供电公司 计算机接口信息配置系统及方法
US9141571B2 (en) 2010-12-28 2015-09-22 Avago Technologies General Ip (Singapore) Pte. Ltd. PCI express switch with logical device capability
US8484631B2 (en) 2011-03-30 2013-07-09 Phoenix Technologies Ltd. Supporting hardware configuration changes in a UEFI firmware component
US8726258B2 (en) 2011-04-14 2014-05-13 Phoenix Technologies Ltd. Supporting multiple hardware components in UEFI
US8601250B2 (en) 2011-05-16 2013-12-03 International Business Machines Corporation Control over loading of device drivers for an individual instance of a PCI device
US9881158B2 (en) 2011-10-21 2018-01-30 Insyde Software Corp. Secure option ROM control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281577A1 (en) 2013-03-15 2014-09-18 Insyde Software Corp. System and method for managing and diagnosing a computing device equipped with unified extensible firmware interface (uefi)-compliant firmware
US20150143018A1 (en) 2013-11-18 2015-05-21 Bum-Jun Kim Flexible server system
US20150254082A1 (en) 2014-03-10 2015-09-10 Plx Technology, Inc. Remote booting over pci express using synthetic remote boot capability

Also Published As

Publication number Publication date
US20160335214A1 (en) 2016-11-17
KR20160133869A (ko) 2016-11-23
US10031876B2 (en) 2018-07-24

Similar Documents

Publication Publication Date Title
US9990313B2 (en) Storage apparatus and interface apparatus
US9292460B2 (en) Versatile lane configuration using a PCIe PIE-8 interface
US9563591B2 (en) Peripheral component interconnect express (PCIe) ping in a switch-based environment
JP7206130B2 (ja) 適応型インターフェイスストレージ装置
KR102147629B1 (ko) 플렉시블 서버 시스템
JP5315209B2 (ja) 冗長構成を生成するための周辺機器相互接続入出力仮想化デバイスの使用
US8225005B2 (en) Use of peripheral component interconnect input/output virtualization devices to create high-speed, low-latency interconnect
US9684530B2 (en) System and method for assigning virtual functions and management host thereof
AU2013388031A1 (en) Data processing system and data processing method
US11983136B2 (en) PCIe device and operating method thereof
US11995019B2 (en) PCIe device with changeable function types and operating method thereof
KR102568909B1 (ko) PCIe 펑션 및 그 동작 방법
US11928070B2 (en) PCIe device
US11741039B2 (en) Peripheral component interconnect express device and method of operating the same
KR102336663B1 (ko) 서버 시스템 및 이의 관리 방법
US10853255B2 (en) Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover
US20090037617A1 (en) Middle management of input/output in server systems
US11386031B2 (en) Disaggregated switch control path with direct-attached dispatch
TWI310903B (en) Method and apparatus of i/o configuration messaging within a link-based computing system
JP2009276828A (ja) Usb接続装置、及びusb接続方法
US20230350824A1 (en) Peripheral component interconnect express device and operating method thereof
US20230318606A1 (en) Interface device and method of operating the same
JP2014146216A (ja) F/wアップデート方法
JP2021010058A (ja) ゲートウェイ装置及びプログラム
JP2008009804A (ja) 情報処理装置および情報処理方法、情報処理システム、プログラム、並びに、記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant