KR101169124B1 - 파워 서플라이 마이크로 컨트롤러의 업데이트 - Google Patents

파워 서플라이 마이크로 컨트롤러의 업데이트 Download PDF

Info

Publication number
KR101169124B1
KR101169124B1 KR1020097009579A KR20097009579A KR101169124B1 KR 101169124 B1 KR101169124 B1 KR 101169124B1 KR 1020097009579 A KR1020097009579 A KR 1020097009579A KR 20097009579 A KR20097009579 A KR 20097009579A KR 101169124 B1 KR101169124 B1 KR 101169124B1
Authority
KR
South Korea
Prior art keywords
controller
instructions
modified
data
power supply
Prior art date
Application number
KR1020097009579A
Other languages
English (en)
Other versions
KR20090093952A (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 엑사플롭 엘엘씨
Publication of KR20090093952A publication Critical patent/KR20090093952A/ko
Application granted granted Critical
Publication of KR101169124B1 publication Critical patent/KR101169124B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

전력 변환 모듈, 데이터 포트, 상기 데이터 포트로부터 데이터를 수신하는 컨트롤러, 및 인스트럭션을 담고 있는 데이터 저장부를 포함하고, 상기 인스트럭션은 상기 컨트롤러에 의해 실행되면 상기 전력 변환 모듈을 제어하는 동작을 수행하는 시스템이 개시된다. 동작은 상기 컨트롤러의 부팅 동안 상기 데이터 저장부의 제1 부분 내 인스트럭션을 실행하고, 상기 컨트롤러가 부팅된 후 상기 데이터 저장부의 제2 부분 내 인스트럭션을 실행하고, 상기 제2 부분 내 인스트럭션이 수정될 것임을 나타내는 신호를 상기 데이터 포트로부터 수신하고, 상기 제2 부분에 저장될 수정된 인스트럭션을 상기 데이터 포트로부터 수신하고, 상기 수정된 인스트럭션을 상기 제2 부분에 저장하기 위하여 상기 제1 부분 내 인스트럭션을 상기 신호에 응답하여 실행하는 것을 포함한다.
인스트럭션, 펌웨어, 업데이트, 파워 서플라이, 컨트롤러, 체크섬, 명령, 메모리

Description

파워 서플라이 마이크로 컨트롤러의 업데이트{Updating a power supply microcontroller}
본 발명은 파워 서플라이 마이크로컨트롤러를 업데이트하는 것에 관련되며, 예를 들어, 파워 서플라이의 소정 기능을 제어하기 위하여 마이크로컨트롤러에 의해 사용되는 펌웨어를 업데이트하는 것에 관련된다.
컴퓨팅 시스템은 동작하기 위하여 전력원을 필요로 한다. 일부 컴퓨팅 시스템은 마더보드, 프로세서 및 메모리와 같은 내부 구성요소에 전력을 공급하는 파워 서플라이를 포함한다.
파워 서플라이는 일 형태의 전기 전력을 다른 소망하는 형태와 전압으로 변환할 수 있다. 소정 시스템에서, 이것은 전력회사로부터 공급된 120 또는 240V 교류를 내부 구성 요소에 사용되는 낮은 직류 전압으로 변환하는 것을 포함한다.
파워 서플라이는 스위칭-모드 파워 서플라이와 선형 조절자(regulator) 파워 서플라이를 포함할 수 있다. 소정 스위칭-모드 파워 서플라이는 트랜지스터, 및 출력 전압을 안정화하기 위하여 부하 전류를 신속히 온 및 오프로 전환하는 변압기 네트워크를 포함한다.
소정 선형 조절자 파워 서플라이는 AC 전압을 저 AC 전압으로 변환하는 변압 기를 사용한다. 예를 들어, 선형 조절자 파워 서플라이는 저 AC 전압을 하나 이상의 다이오드로 정류할 수 있다. 부가적으로, 이들 선형 조절자 파워 서플라이는 정류된 신호의 변동을 평활화하는 커패시터를 포함할 수 있다. 다음, 파워 서플라이에 의해 전력이 공급되는 회로의 요구에 기초하여 전압을 낮추기 위해 선형 조절자가 사용될 수 있다.
본 발명은 파워 서플라이를 업데이트하는 것에 관련된다.
제1의 일반적 국면에서, 시스템은 전력 변환 모듈, 데이터 포트, 상기 데이터 포트로부터 데이터를 수신하는 컨트롤러, 및 인스트럭션을 담고 있는 데이터 저장부를 포함하고, 상기 인스트럭션은 상기 컨트롤러에 의해 실행되면 상기 전력 변환 모듈을 제어하는 동작을 수행한다. 상기 동작은 상기 컨트롤러의 부팅 동안 상기 데이터 저장부의 제1 부분 내 인스트럭션을 실행하고, 상기 컨트롤러가 부팅된 후 상기 데이터 저장부의 제2 부분 내 인스트럭션을 실행하고, 상기 제2 부분 내 인스트럭션이 수정될 것임을 나타내는 신호를 상기 데이터 포트로부터 수신하고, 상기 제2 부분에 저장될 수정된 인스트럭션을 상기 데이터 포트로부터 수신하고, 상기 수정된 인스트럭션을 상기 제2 부분에 저장하기 위하여 상기 제1 부분 내 인스트럭션을 상기 신호에 응답하여 실행하는 것을 포함한다.
제2의 일반적 국면에서, 메모리를 구비하며 프로그램 가능한(programmable) 파워 서플라이에 인스트럭션을 로드하는 방법이 기술된다. 이 방법은, 인스트럭션 로드 동작 동안 상기 프로그램 가능한 파워 서플라이에 대한 전력 출력을 유지하는 단계를 포함한다. 상기 인스트럭션 로드 동작은, 상기 프로그램 가능한 파워 서플라이의 컨트롤러에 연결된, 상기 프로그램 가능한 파워 서플라이의 메모리의 일부에 대한 액세스를 제한하는 단계를 포함한다. 상기 동작은 상기 파워 서플라이와 통신을 위해 사용된 내부 버스를 통해 인스트럭션을 수신하는─여기서, 상기 수신된 인스트럭션은 상기 메모리의 상기 일부에 저장됨─ 단계; 및 상기 컨트롤러가 상기 수신된 인스트럭션을 실행할 수 있도록 상기 메모리의 상기 일부에 대한 액세스를 복원하는 단계를 또한 포함한다.
다른 일반적 국면에서, 방법이 기술된다. 이 방법은 파워 서플라이 시스템으로 인스트럭션을 로드하는 단계, 및 컨트롤러의 초기화 동안 데이터 저장부 내 제1 부분의 인스트럭션을 실행하는 단계를 포함하고, 상기 데이터 저장부와 컨트롤러는 상기 파워 서플라이 시스템에 포함된다. 이 방법은 상기 파워 서플라이 시스템이 초기화된 후 상기 데이터 저장부 내 제2 부분의 인스트럭션을 실행하는 단계, 상기 제2 부분의 인스트럭션이 수정될 것임을 나타내는 신호를 수신하는 단계, 및 수정된 인스트럭션을 상기 제2 부분에 저장하기 위해, 상기 신호에 응답하여 상기 제1 부분의 인스트럭션을 실행하는 단계를 포함한다.
또 다른 일반적 국면에서, 시스템이 기술된다. 이 시스템은 전력 변환기, 프로세서, 및 상기 전력 변환기로부터 출력된 전력을 유지하면서 인스트럭션을 로드하는 수단을 포함하고, 상기 인스트럭션은 상기 프로세서에 의해 실행되어 상기 전력 변환기를 제어한다. 상기 인스트럭션의 로드는, 프로세서를 부팅하기 위해 인스트럭션의 제1 세트를 실행하는 단계, 상기 프로세서가 부팅된 후 인스트럭션의 제2 세트를 실행하는 단계, 수신된 신호에 응답하여 상기 인스트럭션의 제2 세트를 수정하기 위한 신호를 수신하는 단계, 인스트럭션의 수정된 세트를 수신하는 단계, 및 상기 인스트럭션의 제2 세트를 상기 인스트럭션의 수정된 세트로 업데이트하기 위하여 인스트럭션의 제1 세트를 이용하는 단계를 포함하고, 상기 인스트럭션의 제2 세트의 실행은 상기 업데이트가 완료될 때까지 제한된다.
여기에 기술된 시스템 및 프로세스 방법은 후술하는 하나 이상의 장점을 제공한다. 첫째, 파워 서플라이의 출력을 유지하면서 파워 서플라이의 기능성을 업그레이드하거나 복구함으로써 비용 절감과 가동시간이 증가될 수 있다. 둘째, 내부 버스를 통해 시스템이 용이하게 업그레이드 될 수 있다. 셋째, 시스템은 파손되거나 오래된 펌웨어를 실행할 가능성을 낮출 수 있다. 넷째, 시스템은 다수의 파워 서플라이를 일시에 또는 순차적으로 업데이트할 수 있다. 다섯째, 시스템에 관한 동작 문제가 펌웨어를 업데이트하여 수리될 수 있다. 여섯째, 파워 서플라이가 시스템으로부터 제거되지 않고서도 파워 서플라이는 쉽게 업그레이드될 수 있다.
하나 이상의 실시예에 대한 상세한 설명이 첨부 도면과 아래의 기재에 개시된다. 다른 특징 및 장점은 도면과 상세한 설명 및 청구항으로부터 자명하게 된다.
도1은 데이터 센터(105)에 대한 예시적 전력 분배 구조(100)를 나타내는 개략도이다.
도2는 파워 서플라이의 컨트롤러가 컨트롤러용 시동(start-up) 시퀀스로서 사용할 수 있는 예시적 방법을 도시한다.
도3은 파워 서플라이의 컨트롤러가 파워 서플라이의 펌웨어 업데이트 동안 수행하는 예시적 방법을 도시한다.
도4는 도3의 펌웨어 업데이트 단계의 더욱 상세한 방법을 도시한다.
도5는 펌웨어 업데이트 프로세스 동안 메모리 일부로의 액세스를 제한하기 위하여 파워 서플라이의 컨트롤러가 사용할 수 있는 예시적 방법을 도시한다.
도6은 복수의 파워 서플라이 관리 유닛(PSMU)을 구비하는 전력 배송 시스템의 예를 나타내는 개략도이다.
여러 도면에 있어서, 유사한 참조 번호는 유사한 요소를 가리킨다.
도1은 데이터 센터(105)에 대한 예시적 전력 분배 구조(100)를 나타내는 개략도이다. 데이터 센터(105)는 다수의 모듈형 랙-탑재 베이스(또한 트레이라고도 불림; 110)를 포함하고, 랙-탑재 베이스 각각은 컴퓨터 마더보드(120)와 일체화된 파워 서플라이(115)를 포함할 수 있다. 파워 서플라이(115)는 컨트롤러(125) 및 비휘발성 메모리(NVM, 130; 예를 들어, EEPROM, 플래시 메모리 등)를 포함한다. 부가적으로, 개략도에서 내부적으로 도시되었지만, NVM은 파워 서플라이(115) 또는 트레이(110)에 대하여 외부적이거나 또는 내부적일 수 있다.
본 실시예에서, NVM(130)은 2개의 메모리 부분을 가지고, 제1 부분은 애플리케이션 펌웨어(130a)를 저장하고, 다른 부분은 부트로더(booter loader; 130b)를 저장한다. 정상 동작 동안, 컨트롤러(125)는 애플리케이션 펌웨어(130a)에 저장된 프로그램 인스트럭션을 실행하여 파워 서플라이(115)를 제어하도록 구성된다(예를 들어, AC 전력이 고장나면 마더보드(120)를 보호하는 페일-세이프(fail-safe) 동작을 수행하고, 파워 서플라이의 냉각 메커니즘을 조정함). 컨트롤러(125)는 부트로더(130b)에 저장된 프로그램 인스트럭션을 실행하여, 마더보드(120)로의 전력 출력을 유지하고, 애플리케이션 펌웨어(130a)에 저장된 프로그램 인스트럭션을 업데이트할 수 있다.
일부 실시예에서, 부트로더(130b)는 실행될 때 애플리케이션 펌웨어(130a)의 실행을 컨트롤러(125)에 준비시키는 인스트럭션을 포함한다. 예를 들어, 부트로더(130b) 인스트럭션은 컨트롤러 내의 변수를 리셋하고, 애플리케이션 펌웨어(130a)를 실행하기 위해 컨트롤러에 의해 사용되는 어드레스 또는 포인트(point)를 로드할 수 있다.
기술된 실시예에서, 데이터 센터(105)는 AC 전력을 AC 전력원(135)으로부터 수신한다. 예를 들어, AC 전력원(135)은 실질적으로 평형인 3상 부하에 전력을 공급하는데 적당한 실질적으로 대칭인 3상 전압을 배송할 수 있다. 일부 실시예에서, 전력망(electric utility grid), 수력 발전소, 풍력 터빈 시스템, 광전압(photovoltaic) 전력 시스템 또는 이들의 결합으로부터 AC 전력이 수신될 수 있다. 다른 실시예에서, AC 전력원은 예를 들어, 물-기반(water-based) 데이터 센터에 전력을 공급하기 위해, 파도-전기 변환기(예를 들어, 영국 에딘버그의 오션 파워 딜리버리 유한회사로부터 상업적으로 입수 가능한 Pelamis)를 포함하는 조력 발전소가 될 수 있다.
데이터 센터(105)는 다수의 랙(140a, 140b, 및 140c)을 포함한다. 각각의 랙(140a-c)은 다수의 트레이(110)를 포함한다. 랙(140a-140c)은 전력회사로부터 데이터 센터(105)로 전달된 AC 전력에 의해 전력을 공급받는다. 일부 실시예에서, 랙(140a-c)은 트레이(110)의 동작을 돕는 구조를 제공한다. 예를 들어, 랙(140a-c)은 AC 전력을 트레이(110)에 공급하는 전력 케이블 및 냉매를 트레이(110)에 공급하는 튜브를 포함할 수 있다. 부가적으로, 랙(140a-c)은 데이터 센터(105) 내의 트레이(110) 사이에서 정보가 교환될 수 있도록 랙(140a-c)의 트레이(110)들을 연결하는 네트워크 케이블을 또한 포함할 수 있다.
전력 분배 구조(100)는 네트워크(145)와 원격 컴퓨터(150)를 포함한다. 랙(140a-c) 각각은 네트워크 접속(155)에 연결된다. 네트워크 접속(155)은 네트워크(145)에 정보 채널을 제공하며, 네트워크(145)는 예를 들어, 로컬 에어리어 네트워크(LAN), 가상 사설 네트워크(virtual private network), 광역 네트워크(WAN, 예를 들어, 인터넷) 또는 이러한 네트워크의 조합을 포함하며, 이들은 유선, 광(fiber optic) 및/또는 무선일 수 있다. 컴퓨터(150)는, 프로세서(160) 및 마더보드(120) 상의 연관된 메모리(165)를 이용하여 정보를 액세스, 저장, 프로세스 및/또는 검색하기 위해 하나 이상의 트레이와 직접 또는 간접적으로 데이터를 통신할 수 있는 여러 가능한 디바이스들 중 하나를 나타낸다. 일부 실시예에서, 부가적 프로세서(예를 들어, 서버)가 그러한 통신을 촉진할 수 있다. 예를 들어, 컴퓨터(150)는 서버, 데스크톱 컴퓨터, 랩톱 컴퓨터, 및/또는 휴대 프로세서-기반 디바이스에 포함될 수 있다. 하나 이상의 서버는 통신과 연관된 데이터 흐름을 전 또는 후 프로세스(pre or post process), 감시, 라우트(route), 및/또는 평형(balance)시킨다.
트레이(110)를 네트워크(145)에 연결함으로써, 데이터 센터(105)는 다양한 서비스를 네트워크 사용자에게 제공할 수 있다. 예를 들어, 데이터 센터(105)는 컴퓨터(150)의 사용자가 네트워크(145)를 통해 탐색할 수 있는 다양한 네트워크 정보를 저장할 수 있다. 다른 실시예에서, 컴퓨터(150)의 사용자는 네트워크(145)를 통해 원격적으로 애플리케이션(예를 들어, 워드 프로세싱 애플리케이션)을 실행시키기 위해 데이터 센터(105)를 사용할 수 있다. 다른 실시예에서, 데이터 센터(105)는 컴퓨터(150)용 보안 데이터를 저장하는 보안 데이터 센터일 수 있다. 다른 실시예에서, 데이터 센터(105)는 은행의 고객을 위한 금전 트랜잭선(monetary transaction)과 같은 보안이 중요한 동작(security critical operation)을 실행할 수 있다.
일부 구현에 있어서, 데이터 센터(105)는 트레이(110) 중 하나 또는 이들의 조합을 이용하여 프로세스 동작을 실행할 수 있다. 도시된 바와 같이, 트레이(110) 각각은 마더보드(120)를 이용하여 데이터 센터(105)에 프로세싱 기능(processing functionality)을 제공한다. 다양한 구현에 있어서, 마더보드(120)는 2,3,4 또는 임의의 실현가능한 개수의 프로세서(160)를 포함할 수 있다. 프로세서(160) 각각은 예를 들어 메모리(165)에 저장된 인스트럭션을 실행할 수 있다. 일부 구현에 있어서, 마더보드(120)는 데이터 저장 디바이스(예를 들어, 하드디스크 드라이브, 플래시 메모리, RAM, 이들 또는 다른 타입 메모리의 임의 조합)의 트레이로 대체될 수 있다. 메모리(165)는 프로세서(160)에 의해 판독 및/또는 기록될 수 있는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 마더보드(120)는 다양한 메모리, 칩세 트(chip sets), 및 관련 지원 회로와 함께, 예를 들어, 중앙 프로세서 유닛(CPU), 네트워킹 디바이스, 메모리(예를 들어, 캐시, 비휘발성, 플래시), 및/또는 디스크 드라이브의 일부 또는 전부를 포함할 수 있다.
마더보드(120)는 파워 서플라이(115)로부터 제공된 DC 전력을 사용하여 동작한다. 도시된 바와 같이, 파워 서플라이(115)는 프로세스될 트레이(110) 각각에 AC 입력 전압 신호를 전달한다. 일부 실시예에서, AC 입력 전압 신호는 AC 전력원(135)으로부터 트레이(110) 각각을 연결하는 랙(140a~c)의 전력 케이블을 경유해 수신될 수 있다. 파워 서플라이(115)는 AC 입력 전압 신호를 조정된 DC 전압으로 변환하는 AC-DC 변환기(170)를 포함한다. 변환기(170)는 조정된 DC 전압을 DC 버스(175) 상에 출력한다. 일부 구현에 있어서, AC-DC 변환기(170)는 정전압 설정점(static voltage set point)으로 DC 전압을 조정할 수 있다. 일부 다른 구현에서, 정전압 설정점은 동적으로 결정될 수 있다. 예를 들어, 파워 서플라이(115)는 정전압 설정점을 예를 들어, 마더보드(120)의 현재 온도에 근거하여 결정할 수 있다.
컨트롤러(125)는 파워 서플라이(115)의 다양한 동작을 제어한다. 예를 들어, 컨트롤러(125)는 애플리케이션 펌웨어(130a)를 실행하여, 전력 출력의 전압 설정점 결정, AC 입력 전압 신호의 신호 품질 감시, 파워 서플라이(115)의 온도 감시, 및/또는 다른 전력 관리 기능 등과 같은 전력 관리 동작을 수행한다. 일부 구현에서, 컨트롤러(125)는, 파워 서플라이(115)에 대한 냉각 효과와 공기 흐름을 조정하도록 파워 서플라이(115)의 냉각팬 속도를 제어하기 위하여 애플리케이션 펌웨어(130a) 를 실행할 수 있다. 예를 들어, 파워 서플라이(115)의 온도가 상승하면, 컨트롤러(125)는 팬 속도를 증가시켜 파워 서플라이(115)를 냉각함으로써 과도한 열에 의한 파워 서플라이(115)의 손상을 회피한다.
일부 구현에서, 컨트롤러(125)는 애플리케이션 펌웨어(130a)의 인스트럭션을 실행하여, AC 전력 고장 동안에 마더보드(120)를 계속 동작시키는 페일-세이프 동작을 수행한다. 일부 실시예에서, AC 전력 고장은 마더보드(120)의 부적절한 동작을 유발하거나 잠재적으로 유발할 수 있다. 명시적 예로서, AC 입력 전압 신호의 고장 상태가 컨트롤러(125)에 의해 검지되면(예를 들어, 입력 전압 신호의 실효값(Root Mean Square)이 전압 임계치보다 작은지를 검출하거나, 또는 입력 전압 신호의 주파수가 주파수 임계치보다 미리 결정된 시간 주기 동안 작은지를 검출함), 컨트롤러(125)는 스위치(185)를 제어하여 배터리(190)를 DC 버스(175)에 연결함으로써 마더보드(120)는 실질적 중단 없이 동작을 계속할 수 있다. 배터리(190)는 실질적으로 방전될 때까지 마더보드(115)의 회로에 동작 전력을 계속 제공할 수 있다. 일부 구현에 있어서, 컨트롤러(125)는 배터리(190)를 감시할 수 있다. 배터리(190)가 실질적으로 방전되면, 컨트롤러(125)는 예를 들어, 마더보드(120)의 전력 손실로 인한 데이터 손실을 회피하기 위하여 파워다운(power down) 동작을 실행할 수 있다. 일부 구현에서, AC 전력이 복구되면, 컨트롤러(125)는 마더보드(120)로의 전력 공급을 배터리(190)의 사용으로부터 AC/DC 변환기(170)로 전환할 수 있다.
일부 실시예에서, 컨트롤러(125)는 관리 버스(195)로부터 유선 접속(예를 들 어, 시스템 관리 버스(System management bus; SMBus), 집적 회로간(I2C) 버스, 전력 관리 버스(PMBus), 꼬임쌍 버스(twisted pair bus), 전력선(AC 전력을 파워 서플라이(115)에 공급하는 선) 등을 통함)을 경유해 명령(command)과 데이터를 또한 수신할 수 있다. 다른 구현에서, 컨트롤러(125)는 명령과 데이터를 관리 버스로부터 무선(예를 들어, 무선 주파수 접속, 블루투스 접속, 무선 LAN 접속, 적외선을 통하거나 또는 다른 무선/이동 통신 프로토콜을 통함)으로 수신한다.
일부 구현에서, 컨트롤러(125)는 마더보드에 전력을 연속적으로 공급하면서, NVM(130)의 프로그램 인스트럭션을 업데이트하기 위한 동작을 수행할 수 있다. 예를 들어, 컨트롤러(125)는 프로그램 인스트럭션의 업데이트가 허용되는지 여부를, 파워 서플라이(115)의 현재 상태(예를 들어, AC 입력 신호의 안정성 및 존재, 배터리의 존재, 배터리의 잔여 수명 등)에 근거하여 결정할 수 있다. NVM(130)의 프로그램 인스트럭션을 업데이트하기 위해 컨트롤러(125)가 수행할 수 있는 동작들의 일부 예는 도2~5를 참조하여 설명한다.
페일 세이프 동작, 파워 서플라이 상태 감시 동작, 및 파워 서플라이(115)와 원격 호스트 사이의 통신 동작을 수행하는 프로그램 인스트럭션은 예를 들어, NVM(130)에 저장된다. 일부 구현에서, 컨트롤러(125)는 NVM(130)에 저장된 프로그램 인스트럭션의 무결성을 검증 및 유지하기 위하여 체크섬(checksum) 동작을 수행할 수 있다. 예를 들어, 체크섬 동작이 애플리케이션 펌웨어(130a)의 에러를 검출하면, 컨트롤러(125)는 애플리케이션 펌웨어의 대체(replacement)를 다운로드할 것 을 원격 호스트에 통지할 수 있다.
서술된 예에서, NVM(130)는 다수의 메모리 부분(180)을 포함하고, 메모리의 일 부분은 애플리케이션 펌웨어(130a)를 구비하고, 다른 부분은 부트로더(130b)를 구비한다. 애플리케이션 펌웨어 부분(130a) 및 부트로더(130b)는 NVM(130)에서 프로그램 인스트럭션의 독립된 세트일 수 있다. 일 구현에서, 프로그램 인스트럭션의 독립된 세트 각각은 마더보드(120)로의 전력 출력을 유지하기 위하여 컨트롤러(125)에 의해 실행될 수 있다. 다른 구현에서, 전력 출력은 NVM(130)에 저장된 프로그램 인스트럭션 및 컨트롤러(125)의 기능성과 관계가 없다.
일부 구현에서, 애플리케이션 펌웨어(130a)와 부트로더(130b) 각각은 NVM(130)의 다른 부분에 저장된 인스트럭션과 독립된 특화된 인스트럭션을 포함한다. 예를 들어, 애플리케이션 펌웨어(130a)는, 실행되면 팬 배기가스(exhaust)의 온도를 감시하고 그 온도에 기초하여 팬 속도를 조절하는 인스트럭션을 가지거나, 애플리케이션 펌웨어(130a)는 AC 전력이 정상 동작 동안 불안정해지면 배터리로 전환하는 전력 고장 보호 프로세스를 기술하는(outline) 인스트럭션을 구비할 수 있다. 반면, 부트로더(130b)는 애플리케이션 펌웨어(130a)에 대한 시동 시퀀스를 초기화하고, 펌웨어 애플리케이션(130a)을 업데이트 또는 수정하는데 사용되는 펌웨어 업데이트 프로세스를 관리하는 책임을 진다.
컨트롤러(125)는 부트로더(130b)의 프로그램 인스트럭션을 실행함으로써, 마더보드(120)에 전력을 연속적으로 공급하면서 애플리케이션 펌웨어 부분(130a)에 대한 인스트럭션을 수정할 수 있다. 예를 들어, 펌웨어 업데이트는 파워 서플라 이(115)의 동작을 업그레이드(예를 들어, 부가적인 파워 서플라이 제어 특징을 추가하거나, 또는 파워 서플라이(115) 동작의 에러를 정정함)할 수 있다. 다른 실시예에서, 펌웨어 업데이트는 파워 서플라이(115)가 사용하는 파라미터(예를 들어, 팬 속도, DC 출력 전압, 또는 다른 동작 파라미터)의 일부를 변경할 수 있다.
펌웨어 업데이트 프로세스 동안, 컨트롤러(125)와 파워 서플라이(115)는 기능을 유지하여 파워 서플라이는 실질적으로 연속한 전력 출력을 마더보드(120)에 공급한다. 일부 구현에서, 부트로더(130b)에 저장된 프로그램 인스트럭션은, 마더보드(120)로의 전력 출력을 중단시키지 않고 애플리케이션 펌웨어(130a)의 프로그램 인스트럭션을 대체, 삭제, 부가 또는 변경하는데 사용되는 동작을 포함할 수 있다.
도2~5는, 마더보드(120)에 연속적으로 전력을 공급하면서 메모리 부분(180) 중 하나(예를 들어, 애플리케이션 펌웨어(130a))의 프로그램 인스트럭션을 업데이트하는데 컨트롤러(125)가 사용할 수 있는 방법들의 일부 예를 도시한다. 예를 들어, 전력 분배 구조(100)는 파워 서플라이(115)를 구비하는 시스템의 관리자로부터 업데이트를 수신할 수 있고, 업데이트는 파워 서플라이(115)의 애플리케이션 펌웨어를 변경하는 인스트럭션을 구비한다. 컨트롤러(125)는 이하에 기술된 방법의 일부를 사용하여 애플리케이션 펌웨어 부분(130a) 또는 NVM의 다른 메모리 부분을 대체할 수 있다.
도2는 파워 서플라이의 컨트롤러가 그 컨트롤러에 대한 시동 시퀀스로서 사용할 수 있는 예시적 방법(200)을 나타낸다. 예를 들어, 컨트롤러(125)는 하드웨어 의 리셋 또는 소프트웨어의 리셋 후에, 파워 서플라이(115) 또는 파워 서플라이의 일부를 재시작(예를 들어, 마더보드(120)에 대해 실질적으로 안정한 전력 출력을 유지하면서 컨트롤러(125)를 재시작함)하기 위해 상기 방법을 수행할 수 있다. 일부 경우에, 파워 서플라이의 컨트롤러는 메모리의 어느 부분을 컨트롤러가 실행을 위해 액세스하는지 판단하기 위해 방법(200)을 사용할 수 있다.
예를 들어, 컨트롤러(125)는 파워 서플라이(115)를 제어하는데 애플리케이션 펌웨어(130a)와 부트로더(130b) 중 어느 것이 사용될 것인지 판단하기 위해 방법(200)을 사용한다. 시동 프로세스 동안, 파워 서플라이의 컨트롤러는 메모리 부분의 무결성을 검사하기 위하여 방법(200)을 또한 실시할 수 있다. 예를 들어, 방법(200)을 실시하여, 손상되었거나 잘못 수정된 프로그램 인스트럭션을 컨트롤러가 실행하는 것을 상당히 방지 및/또는 감소시킬 수 있다.
일반적으로, 컨트롤러는, 소프트웨어 또는 하드웨어를 사용해 리셋될 때, 방법(200)을 사용할 수 있다. 방법(200)은 시스템 내 컨트롤러(125)(또는 다른 프로세싱 모듈)의 제어, 감독 및/또는 감시 하에서 또한 수행될 수 있다. 트레이(110)에 연결된 네트워크 접속(155)을 통해 컨트롤러와 통신 가능한 다른 프로세싱 및/또는 제어 요소에 의해 동작이 보완되거나 보충될 수 있다. 일부 또는 모든 동작은 신호로 구체화된 인스트럭션을 실행하는 하나 이상의 프로세서에 의해 수행될 수 있다. 아날로그 및/또는 디지털 하드웨어 또는 방법을 단독으로 사용하거나 또는 인스트럭션을 실행하는 하나 이상의 프로세서와 함께 사용하여 프로세싱을 구현할 수 있다.
방법(200)은 컨트롤러가 소프트웨어 리셋(205) 또는 하드웨어 리셋(210)을 수신하면 시작된다. 예를 들어, 컨트롤러(125)는 컨트롤러(125)가 리셋 인스트럭션을 실행한 후 소프트웨어 리셋을 수신할 수 있다. 다른 실시예에서, 컨트롤러가 애플리케이션 펌웨어(130a)를 업데이트한 후와 같이, 원격 호스트로부터 소프트웨어 리셋 인스트럭션을 컨트롤러(125)가 수신할 때 파워 서플라이(115)는 리셋될 수 있다. 다른 실시예에서, 파워 서플라이(115)가 시스템 내로 도입된 후 전력이 투입된(power up) 다음에, 컨트롤러(125)는 하드웨어 리셋을 수신할 수 있다.
다음, 컨트롤러는 파워 서플라이가 펌웨어 업데이트 모드에서 동작하는 여부를 결정한다(단계 215). 일부 구현에서, 파워 서플라이(115)는 다양한 동작 모드에서 동작할 수 있다. 다양한 동작 모드에는 예를 들어, 펌웨어 업데이트 모드(예를 들어, 부트로더 모드) 및 정상 동작 모드(예를 들어, 애플리케이션 펌웨어 모드)가 포함된다. 예를 들어, 파워 서플라이(115)가 펌웨어 업데이트 모드에서 동작 중 일 때, 컨트롤러(125)는 애플리케이션 펌웨어(130a)를 업데이트하기 위한 동작을 실행할 수 있다.
일부 구현에서, 컨트롤러(125)는 파워 서플라이(115)의 현재 동작 모드를 판단하기 위하여, NVM(130) 또는 컨트롤러(125)의 상태 비트 또는 상태 레지스터를 검사할 수 있다. 예를 들어, 컨트롤러(125)는 NVM(130)의 부트 플래그 레지스터를 검사할 수 있다. 부트 플래그 레지스터가 0인 값을 저장하고 있으면, 컨트롤러(125)는 예를 들어, 파워 서플라이(115)가 펌웨어 업데이트 모드에서 동작하고 있다고 판단한다. 그렇지 않으면, 컨트롤러(125)는 파워 서플라이(115)가 정상 동 작 모드에서 동작하고 있다고 판단할 수 있다.
파워 서플라이의 동작 모드는 소프트웨어 또는 하드웨어 리셋이 실행되기 전의 이전 세션(session)에서 설정될 수 있다. 예를 들어, 원격 호스트는 리셋 인스트럭션을 컨트롤러에 전송하고, 리셋 후 실행될 동작 모드(예를 들어, 펌웨어 업데이트 모드 또는 정상 동작 모드)를 특정할 수 있다. 다른 실시예에서, 파워 서플라이는 소정 이벤트(예를 들어, 급작스런 셧다운) 때문에 리셋이 발행되면, 미리 결정된 동작 모드(예를 들어, 펌웨어 업데이트 모드)에서 재시작될 수 있다.
파워 서플라이가 펌웨어 업데이트 모드에 있다고 컨트롤러가 판정하면, 단계(220)에서, 컨트롤러는 파워 서플라이를 펌웨어 업데이트 모드에서 시작하고, 방법(200)은 종료한다. 파워 서플라이가 펌웨어 업데이트 모드에 있지 않다고 컨트롤러가 판단하면, 컨트롤러는 메모리 내 애플리케이션 이미지의 체크섬을 계산한다(단계 225). 예를 들어, 컨트롤러(125)는 NVM(130) 내 프로그램 인스트럭션의 무결성을, 메모리 파손이나 시스템 에러에 기인한 예를 들어, 우발적 데이터 수정으로부터 보호하기 위하여 체크섬 동작을 수행할 수 있다. 일부 구현에서, 컨트롤러(125)는 NVM(130) 내 애플리케이션 펌웨어 이미지의 저장된 인스트럭션의 기본 요소(예를 들어, 각 바이트)를 가산(add up)할 수 있다. 다른 구현에서, 컨트롤러(125)는 체크섬을 생성하기 위한 순환 중복 검사(CRC)를 수행하거나 또는 체크섬을 계산하기 위한 다른 동작을 수행할 수 있다.
단계(230)에서, 컨트롤러는 계산된 체크섬이 올바른지 판단한다. 예를 들어, 컨트롤러는 계산된 체크섬을, 이전에 계산되어 NVM(130)의 레지스터에 저장된 애플 리케이션 펌웨어의 체크섬과 비교한다. 2개의 값이 일치하면, 컨트롤러(125)는 NVM(130) 내 애플리케이션 펌웨어 이미지가 올바르다고 판단할 수 있다. 2개의 값이 일치하지 않으면, 컨트롤러(125)는 NVM(130) 내 애플리케이션 펌웨어 이미지가 올바르지 않다고 판단할 수 있다.
다른 구현에서, 컨트롤러(125)는 계산된 체크섬을, 검증을 위해 호스트(도6에 도시된 펌웨어 업데이트 호스트와 같은 호스트)에 전송할 수 있다. 예를 들어, 호스트는 파워 서플라이(115)에 전송된 최근 애플리케이션 펌웨어 업데이트의 체크섬을 저장할 수 있다. 컨트롤러(125)는 계산된 체크섬이 호스트가 저장하고 있는 체크섬과 실질적으로 등가인지 검증하기 위해, 계산된 체크섬을 호스트에 전송한다. 계산된 체크섬과 이전에 저장된 체크섬이 일치하면, 호스트는 체크섬이 실질적으로 등가임을 나타내는 표시자를 컨트롤러에 전송할 수 있다. 일치하지 않으면, 호스트는 체크섬이 일치하지 않음을 표시하고, 또한 애플리케이션 펌웨어를 업데이트 또는 수정하기 위해 행동을 개시해야 함을 표시할 수 있다.
컨트롤러가 계산된 체크섬이 올바르지 않다고 판단하면(단계 230), 앞서 기술된 바와 같이 단계 220이 실행된다. 컨트롤러가 계산된 체크섬이 올바르다고 판단하면, 컨트롤러는 애플리케이션 펌웨어로부터의 인스트럭션을 실행하고(단계 235), 방법(200)은 종료한다.
도3은 파워 서플라이의 메모리 내 애플리케이션 펌웨어(130a)가 업데이트될 때 파워 서플라이의 컨트롤러가 수행할 수 있는 방법(300)의 예를 나타낸다. 일부 구현에서, 컨트롤러(125)는 펌웨어 업데이트 프로세스 동안 전력 고장을 회피하기 위하여 방법(300)을 사용할 수 있다. 일반적으로, 방법(300)은 컨트롤러(125)로의 전력 고장을 방지하는 동작, 및 AC 전력원(135)과 같은 주 파워 서플라이가 고장 나더라도 펌웨어 업데이트 프로세스를 계속하기 위한 페일-세이프 동작을 포함한다.
일부 구현에서, 방법(300)의 일부 또는 모든 동작은 방법(200)의 단계(215)가 실행된 후(도2) 실행될 수 있다. 일부 구현에서, 컨트롤러(125)는 원격 호스트로부터 업데이트 펌웨어 명령을 수신할 때 방법(300)의 동작을 수행할 수 있다.
방법(300)은 단계(305)에서 AC 전력이 존재하고 안정적인지 판단하여 시작한다. 예를 들어, 컨트롤러(125)는 입력 전압 신호의 주파수 및 그 진폭의 실효값(RMS)을, AC 전력이 존재하고 안정적인지 판단하기 위하여 측정할 수 있다. AC 전력이 존재하기 않거나 안정적이지 않으면, 파워 서플라이 컨트롤러는 정상 동작 모드(예를 들어, 애플리케이션 펌웨어 모드)를 유지한다(단계 310). AC 전력이 존재하고 또한, 예를 들어, 비교적 안정적인 전압 크기와 주파수를 가지면, 파워 서플라이 컨트롤러는 선택적 단계 315에서, 백업 배터리가 적절히 접속되었는지 여부를 판단할 수 있다. 예를 들어, 컨트롤러(125)는 배터리(190)의 존재를 검출할 수 있고, 배터리가 올바르게 설치되었는지 여부를, 배터리의 측정된 출력 전압, 전하 카운팅(charge counting), 이전 배터리 시험, 또는 다른 방법에 기초하여 판단할 수 있다. 하지만, 파워 서플라이(115)는 백업 배터리의 포함을 요구하지 않는다. 파워 서플라이(115)가 백업 배터리를 구비하고 있지 않으면, 방법(300)은 AC 전력이 존재하고 안정적일 때 단계(305)로부터 단계(320)로 진행할 수 있다.
선택적 단계(315)에서, 백업 배터리가 적절히 접속되어 있지 않으면, 상기한 바와 같이 단계(310)가 실행된다. 백업 배터리가 적절히 접속되어 있으면, 펌웨어 업데이트 동작이 개시된다(단계 320). 전력 출력을 중단하지 않고 파워 서플라이 내 펌웨어를 업데이트하는 동작의 몇몇 예가 도4를 참조하여 기술된다.
다음, 컨트롤러는 펌웨어 업데이트 인스트럭션의 실행 중 AC 전력이 중단되었는지 여부를 판단한다(단계 325). AC 전력이 중단되지 않으면, 컨트롤러(125)는 펌웨어 업데이트 프로세스가 종료되는지 판단한다(단계 330). 펌웨어 업데이트 프로세스가 종료되지 않으면, 컨트롤러는 단계 325를 실행하여 AC 전력의 감시를 계속한다.
단계(325)에서, AC 전력이 중단되면, 파워 서플라이와 컨트롤러는 선택적 단계(335)에서 백업 배터리로 전환할 수 있고, 컨트롤러는 단계(330)에 기재된 바와 같이, 펌웨어 업데이트 완료의 진행을 감시한다.
상기한 바와 같이, 파워 서플라이는 백업 배터리를 포함할 필요는 없다. 배터리가 없는 소정 구현에서, 트레이(110)는 펌웨어 업데이트의 실행 중에 AC 전력이 중단되면 파워다운한다. 트레이가 전력 손실 후 부팅될 때, 컨트롤러는 부트로더 모드에서 시작하고, 도2와 연관되어 기술된 바와 같이, 펌웨어 업데이트 동작을 다시 개시할 수 있다.
단계(330)에서 판단된 바와 같이, 펌웨어 업데이트 프로세스가 종료되면, 단계(340)에서, 컨트롤러는 정상 동작 모드에서 동작하도록 전환하고, 방법(300)은 종료한다. 선택적으로, 컨트롤러는 파워 서플라이가 배터리 백업 전력을 현재 사용 하고 있으면(단계 345), 정상 AC 전력 페일 시퀀스를 실행할 수 있다.
도4는 파워 서플라이의 컨트롤러가 실질적으로 안정한 전력 출력을 유지하면서 컨트롤러의 애플리케이션 펌웨어를 업데이트하기 위해 사용할 수 있는 방법(400)의 예를 나타낸다. 일반적으로, 파워 서플라이의 전력 출력을 유지하면서, 컨트롤러는 메모리 부분에 대한 업데이트(예를 들어, 애플리케이션 펌웨어(130a))를 수신하고 수신된 업데이트 부분의 데이터 무결성을 보호하기 위하여 방법(400)을 사용할 수 있다. 예를 들어, 컨트롤러(125)는 수신된 데이터에 대하여 하나 이상의 체크섬 동작을 수행하여, 수신된 데이터의 에러를 검출할 수 있다.
방법(400)은 컨트롤러가 동작 모드를 펌웨어 업데이트 모드로 설정하는 명령을 수신하면 시작된다(단계 405). 예를 들어, 컨트롤러는 펌웨어 업데이트 모드에서 컨트롤러를 재시작하는 명령을 원격 호스트로부터 수신할 수 있다.
단계(410)에서, 컨트롤러는 파워 서플라이 동작 모드를 펌웨어 업데이트 모드로 설정한다. 일부 구현에서, 컨트롤러는 단계 410을 수행할 때, 주 전력 및 파워 서플라이에 사용가능한 백업 전력을 검사할 수 있다. 예를 들어, 컨트롤러는 단계(410)를 수행할 때 방법(300)을 수행할 수 있다.
다음, 컨트롤러는 펌웨어 업데이트 프로세스를 시작하는 명령을 수신할 수 있다(단계 415). 파워 서플라이 동작을 펌웨어 업데이트 모드로 설정한 후, 컨트롤러는 펌웨어 업데이트의 부분을 수신한다(단계 420). 예를 들어, 완전한 펌웨어 업데이트는 부분들로 분절(segment)되고, 분절된 부분들이 호스트로부터 컨트롤러(125)에 개별적으로 전송될 수 있다. 일부 구현에서, 펌웨어 업데이트의 부분은 하나 이상의 데이터 패킷으로 전송된다.
일 구현에서, 컨트롤러에 수신되면, 컨트롤러는 각 부분을 더 작은 부분으로 분절할 수 있다. 예를 들어, 큰 부분은 NVM을 업데이트하기 위해 사용되는 버스의 최대 블록 전송 사이즈에 맞추어 분절될 수 있다. 더욱 구체적인 실시예에서, 펌웨어 업데이트의 부분은, NVM 내 메모리 페이지의 사이즈인 64바이트와 실질적으로 등가일 수 있다. NVM으로 전송 전에, 부분은 2개의 32바이트 부분으로 분절될 수 있고, 여기서 한 부분은 큰 64바이트 부분의 상위 바이트 부분을 나타내고, 다른 부분은 큰 64바이트 부분의 하위 바이트 부분을 나타낸다. 작은 부분 각각은 최대 블록 전송 사이즈가 32바이트인 버스를 통해 개별적으로 NVM에 전송된다.
단계(425)에서, 컨트롤러는 수신된 부분을 NVM(130)의 부분(130a)과 같은 메모리에 기록한다. 일부 구현에서, 컨트롤러는 메모리에 기록하기 전에, 하나 이상의 수신된 데이터 패킷을 결합하여 전체 펌웨어 업데이트 부분을 형성할 수 있다. 예를 들어, 전체 워드(full word)를 메모리에 기록하기 전에, 펌웨어 업데이트 부분의 하위 바이트와 상위 바이트를 결합할 수 있다.
다음, 컨트롤러는 수신된 부분에 대한 체크섬을 계산하고(단계 430), 계산된 체크섬을 원격 호스트에 전송한다(단계 435). 단계(440)에서, 컨트롤러는 계산된 체크섬이 올바른 것인지 판단한다. 예를 들어, 컨트롤러(125)는 계산된 체크섬이 올바른지 여부를 나타내는 메시지를 원격 호스트로부터 관리 버스(195)를 경유해 수신할 수 있다. 계산된 체크섬이 올바르지 않은 것으로 판단되면, 단계(441)가 실행되고, 여기서, 컨트롤러는 펌웨어 업데이트의 재전송을 요구하고, 수신된 부분이 호스트로부터 컨트롤러로 재전송되도록 단계(420)가 반복된다.
일부 구현에서, 단계(430)는 단계(425) 전에 나올 수 있다. 예를 들어, 컨트롤러는 NVM으로 펌웨어 부분이 기록되기 전에, 펌웨어 부분(또는 수신된 펌웨어 업데이트 전체)의 체크섬을 계산할 수 있다. 컨트롤러는 체크섬을 미리 계산된 체크섬(예를 들어, 파워 서플라이에 펌웨어 또는 펌웨어 부분을 전송하기 전에 펌웨어 업데이트 호스트가 계산한 체크섬)과 비교할 수 있다. 체크섬이 일치하지 않으면, 컨트롤러는 체크섬을 메모리에 기록하지 않고, 대신에, 컨트롤러는 펌웨어의 재전송을 요청할 수 있다.
계산된 체크섬이 올바른 것으로 판단되면, 컨트롤러 또는 호스트는 펌웨어 업데이트를 완료하기 위해 기록해야할 펌웨어 업데이트 부분이 더 있는지 여부를 판단한다(단계 445). 일부 구현에서, 컨트롤러는 카운터를 구비하고, 펌웨어 업데이트의 총 사이즈를 저장할 수 있다. 예를 들어, 컨트롤러는 카운터를 사용해 이 세션에서 수신된 펌웨어 업데이트의 사이즈를 카운트하고, 기록할 펌웨어 업데이트 부분이 더 있는지 판단하기 위하여 카운터 값을 펌웨어 업데이트(호스트에 의해 이전에 전송됨)의 총 사이즈를 비교할 수 있다.
단계(445)에서 컨트롤러가 기록할 펌웨어 업데이트 부분이 더 있다고 판단하면, 컨트롤러는 펌웨어 업데이트의 다음 부분으로 진행하고(단계 450), 단계(420)가 반복된다. 기록할 펌웨어 업데이트 부분이 더 없으면, 체크섬 명령이 수신된다(단계 455). 단계(460)에서, 컨트롤러는 펌웨어 업데이트 전체에 대한 체크섬을 계산하고 예를 들어, 원격 호스트에 전송한다. 다음 단계(465)에서, 컨트롤러는 펌웨 어 업데이트 전체에 대한 전송된 체크섬이 올바른지 판단한다.
전송된 체크섬이 올바르지 않다고 컨트롤러가 판단하면, 컨트롤러는 펌웨어 업데이트를 재시작하고(단계 470), 단계(420~465)가 반복된다.
전송된 체크섬이 올바르다고 컨트롤러가 판단하면, 컨트롤러는 소프트웨어 재시작 명령을 수신할 수 있다(단계 475). 일부 구현에서, 소프트웨어 재시작 명령을 호스트로부터 수신하기 전에, 컨트롤러는 펌웨어 업데이트 프로세스의 상태에 관한 질의(query)를 호스트로부터 수신할 수 있다. 예를 들어, 펌웨어 업데이트가 성공적으로 설치되었음을 나타내는 응답을 컨트롤러가 전송하면, 호스트는 소프트웨어 재시작 명령을 전송할 수 있다. 컨트롤러로부터 응답이 없으면, 호스트는 예를 들어, 미리 결정된 시간 동안 대기하고, 현재 펌웨어 업데이트 상태에 대한 질의를 컨트롤러에 전송할 수 있다.
다음, 컨트롤러는 업데이트 펌웨어의 계산된 체크섬을 저장한다(단계 480). 일부 구현에서, 컨트롤러는 저장된 체크섬을 사용해, 도2의 단계 230과 관련하여 기술된 바와 같이, 펌웨어가 잘못 수정되거나 파손되지 않았음을 검증할 수 있다. 단계(485)에서, 컨트롤러는 업데이트된 애플리케이션 펌웨어를 사용하는 정상 동작 모드(예를 들어, 애플리케이션 펌웨어 모드)에서 파워 서플라이를 재시작하고, 방법(400)은 종료한다.
도5는 파워 서플라이의 컨트롤러가 펌웨어 업데이트 프로세스 동안 메모리의 부분으로의 액세스를 제한하기 위하여 사용할 수 있는 방법(500)의 예를 나타낸다. 서술된 방법(500)에서, 메모리의 부분은 컨트롤러(125)가 원격 호스트로부터 수신 한 명령을 실행하기 위하여 사용하는 애플리케이션 메모리 공간이다.
데이터 무결성을 유지하기 위하여, 메모리 부분(예를 들어, 애플리케이션 펌웨어(130a))은 잠금해제(unlock) 명령이 원격 호스트로부터 수신되지 않으면 접근할 수 없고, 파워 서플라이는 정상 동작 모드(예를 들어, 애플리케이션 펌웨어 모드)에서 동작한다. 따라서 부트로더 모드와 같은 초기화 모드로 전환함으로써, 컨트롤러(125)는 애플리케이션 펌웨어로의 액세스를 제한할 수 있다. 일부 구현에서, 이 제한은 애플리케이션 펌웨어가 업데이트되는 동안 그것으로의 액세스를 방지하기 위하여 사용된다.
특히, 컨트롤러(125)는 잠금해제 명령이 원격 호스트로부터 관리 버스(195)를 경유해 수신되지 않고 또한 파워 서플라이(115)가 정상 동작 모드에서 동작하고 있지 않으면, NVM(130)의 애플리케이션 펌웨어(130a)를 액세스 불가로 설정할 수 있다. 파워 서플라이(115)가 펌웨어 업데이트 모드에서 동작하고 있을 때, 컨트롤러(125)가 파워 서플라이(115)의 동작 모드를 다시 정상 동작 모드로 전환할 때까지, 컨트롤러(125)는 애플리케이션 펌웨어 부분으로의 액세스를 제한할 수 있다. 업데이트되고 있는 부분으로의 액세스를 제한함으로써, 컨트롤러가 이 부분에 저장된 인스트럭션을 실행하는 것이 방지된다.
방법(500)은 컨트롤러가 잠금해제 명령 및 다른 후속 명령을 수신하면 시작된다(단계 505). 다음, 컨트롤러는 파워 서플라이(115)가 펌웨어 업데이트 모드에 있는지 여부를 판단한다(단계 510). 파워 서플라이(115)가 펌웨어 업데이트 모드에 있다고 컨트롤러가 판단하면, 컨트롤러는 현재 실행될 수 있는 애플리케이션 펌웨 어 명령이 없음을 나타내는 에러 메시지를 원격 호스트에 전송(단계 515)하고, 방법(500)은 종료한다.
단계(510)에서, 파워 서플라이(115)가 펌웨어 업데이트 모드에 있지 않음을 컨트롤러가 판단하면, 컨트롤러는 잠금해제 명령에 응답하여 애플리케이션 메모리 공간을 잠금해제 한다(단계 520).
다음, 컨트롤러는 시간 임계값에 도달했는지 여부를 검사한다(단계 525). 예를 들어, 잠금해제 명령은 1초와 같은 제한된 시간 기간 동안만 애플리케이션 메모리 공간을 잠금해제할 수 있다. 잠금해제 명령 다음의 명령(잠금해제 명령으로부터 1초 이내에 수신됨)이 실행될 수 있다. 시간 임계값에 도달되었다(예를 들어, 1초가 도과함)고 컨트롤러가 판단하면, 방법(500)은 종료한다. 시간 임계값에 도달하지 않았다고 컨트롤러가 판단하면, 컨트롤러는 수신된 후속 명령을 실행한다(단계 530).
다른 구현에서, 방법(500)은 악의적이거나 의도하지 않은 명령이 컨트롤러에 의해 실행되는 것을 실질적으로 방지하기 위하여 수정될 수 있다. 예를 들어, 컨트롤러가 펌웨어를 업데이트하고 있는지 여부와 상관없이, 임의의 명령이 컨트롤러에 의해 실행되기 전에 잠금해제 명령이 요구될 수 있다.
이 요구는 파워 서플라이와 통신 중인 컴퓨팅 디바이스가 컨트롤러로 하여금 허가되지 않은 명령을 실행하도록 하는 것을 방지할 수 있다. 이 구현에서, 단계(510, 515 및 520)는 제거될 수 있다. 컴퓨팅 디바이스가 잠금해제 명령을 제공하지 않으면, 후속 명령은 컨트롤러에 의해 실행되지 않는다. 잠금해제 명령이 전 송되면(단계 505), 후속 명령은 적법하고 허가된 것으로 간주된다. 방법은 단계(525)로 진행하여, 실행을 위한 시간 임계값이 도과하였는지 판단하고, 도과하지 않았다면 임의의 후속 명령은 컨트롤러에 의해 실행된다(단계 530). 시간 임계값이 도과하였으면, 컨트롤러는 다른 잠금해제 명령에 후속하지 않는 수신된 명령을 더 이상 실행하지 않는다.
도6은 복수의 파워 서플라이 관리 유닛(PSMU; 605a,605b, 605c, 605d)과 펌웨어 업데이트 호스트(610)를 구비한 전력 배송 시스템(600)의 예를 나타내는 개략도이다. 일부 구현에서, PSMU 각각은 파워 서플라이(115)의 일부 또는 전부를 구비한다. 서술된 실시예에서, PSMU(605a-d)는 펌웨어 업데이트 호스트(610)에 관리 버스(195)를 경유해 연결된다. 펌웨어 업데이트 호스트(610)는 데이터와 명령을 PSMU(605a-d)와 송수신한다. 일 실시예에서, 펌웨어 업데이트 호스트(610)는 PSMU(605a-d)가 사용하는 애플리케이션 펌웨어를 관리 버스(195)를 사용해 업데이트할 수 있다.
PSMU(605a-d) 각각은 부하(예를 들어, 마더보드(120))에 전력을 공급하는 파워 서플라이(예를 들어, 파워 서플라이(115))를 제어할 수 있다. 이 실시예에서, PSMU(605a-d)는 메모리(615a-d), 컨트롤러(620a-d)를 각각 구비한다. 일부 구현에서, 컨트롤러(620a-d) 각각은 파워 서플라이를 제어하기 위해 동일 PSMU(605a-d) 상의 메모리(615a-d)에 저장된 프로그램 인스트럭션을 실행할 수 있다. 예를 들어, 메모리(615a-d) 각각은 애플리케이션 펌웨어(130a)와 부트로더(130b)를 구비할 수 있다.
컨트롤러(620a-d)는 펌웨어 업데이트 호스트(610)로부터 수신한 명령을 또한 실행할 수 있다. 일부 구현에서, 컨트롤러(620a-d)는 예를 들어, 메모리(615a-d)의 애플리케이션 펌웨어로의 액세스를 디폴트로(by default) 제한할 수 있다. 애플리케이션 펌웨어의 명령을 컨트롤러(620a-d) 상에 실행하기 위해, 펌웨어 업데이트 호스트(610)는 후속 명령을 전송하기 전에 애플리케이션 펌웨어를 잠금해제하기 위한 잠금해제 명령을 전송할 수 있다.
관리 버스(195)를 통해, 펌웨어 업데이트 호스트(610)는 업데이트된 애플리케이션 펌웨어 및 명령을 PSMU(605a-d)에 전송할 수 있다. 예를 들어, 펌웨어 업데이트 호스트(610)는 메모리(615a-d)의 특정 위치에 저장된 데이터를 판독할 수 있다. 다른 실시예에서, 펌웨어 업데이트 호스트(610)는 데이터를 메모리(615a-d)의 특정 위치에 기록할 수 있다. 부가적으로, 펌웨어 업데이트 호스트(610)는 컨트롤러(620a-d) 중 하나에게 애플리케이션 펌웨어에 대한 체크섬 값의 계산을 요구할 수 있다. 다른 실시예에서, 펌웨어 업데이트 호스트(610)는 PSMU(605a-d) 중 하나 이상을 부트로더 모드로 리셋할 수 있다.
펌웨어 업데이트 호스트(610)는 또한 컨트롤러(620a-d)로부터 메시지를 수신할 수 있다. 예를 들어, 컨트롤러(620a-d)는 메모리(615a-d)에 저장된 애플리케이션 펌웨어가 파손되었거나 오래된(outdated) 것이라고 판단되면, 펌웨어 업데이트에 대한 요청을 전송할 수 있다. 예를 들어, 메모리(615a-d) 내 애플리케이션 펌웨어 이미지의 체크섬 값이 이전에 저장된 값과 상이할 때, 파워 서플라이의 오동작을 회피하기 위해 컨트롤러(620a-d)가 애플리케이션 펌웨어에 대한 대체를 요청하 도록, 컨트롤러(620a-d)는 구성될 수 있다.
펌웨어 업데이트 호스트(610)는 로컬 프로세싱 유닛이거나 원격 프로세싱 유닛일 수 있다. 일부 구현에서, 펌웨어 업데이트 호스트(610)는 전력 분배 구조(100)내 트레이(110) 중 하나와 같은 로컬 프로세싱 유닛일 수 있다. 예를 들어, 전력 분배 구조(100) 내에서, 트레이(110) 중 하나는 다른 트레이(110)를 업데이트하는 펌웨어 업데이트 호스트(610)가 되도록 미리 선택되거나 지시될 수 있다. 일부 구현에서, 펌웨어 업데이트 호스트(610)는 원격에 위치될 수 있다. 예를 들어, 펌웨어 업데이트 호스트(610)는 랙(140a-c)에 관리 버스(195)를 경유해 접속된 랩톱 컴퓨터 또는 네트워크(145)를 통해 데이터 센터(105)에 접속된 서버일 수 있다.
정상 동작에서(예를 들어, 애플리케이션 펌웨어 모드), 펌웨어 업데이트 호스트(610)는 실행 명령이 뒤따르는 잠금해제 명령을 먼저 전송함으로써 컨트롤러(620a-d)에 명령을 전송할 수 있다. 일부 구현에서, 컨트롤러(620a-d)는 수신된 명령을 실행하기 위해 방법(500)을 사용할 수 있다.
펌웨어 업데이트 동작 동안, 펌웨어 업데이트 호스트(610)는 PSMU(605a-d)를 펌웨어 업데이트 모드(예를 들어, 부트로더 모드)에서 리셋하기 위해 재시작 명령을 컨트롤러(620a-d)에 전송할 수 있다. 일부 실시예에서, 컨트롤러(620a-d)는 방법(200)에 기술된 동작을 PSMU(605a-d)가 리셋된 후 실행할 수 있다. 다음, 컨트롤러(620a-d)는 가용 전력이 애플리케이션 펌웨어 업데이트 프로세스를 완료하는데 안정적인지 검사한다. 가용 전력이 안정적이면, 컨트롤러(620a-d)는 펌웨어 업데이트 호스트와 상호작용하여 애플리케이션 펌웨어를 업데이트한다. 예를 들어, 컨트 롤러(620a-d)는 애플리케이션 펌웨어를 방법(300)의 동작을 사용하여 업데이트할 수 있다.
시스템의 구현에 따라서, 펌웨어 업데이트 프로세스는 다르게 실행될 수 있다. 일부 구현에서, PSMU(605a-d)는 동시적으로 업데이트될 수 있다. 다른 구현에서, 펌웨어 업데이트 호스트(610)는 PSMU(605a-d)의 일 부분(subset)을 동시에 업데이트할 수 있다. 예를 들어, 펌웨어 업데이트 호스트(610)는 파워 서플라이(115)에 적절히 접속된 배터리(190)를 갖는 PSMU(605)만을 업데이트하고, 나머지 PSMU는 배터리가 적절히 접속되면 나중에 업데이트할 수 있다.
일부 구현에서, 펌웨어 업데이트 호스트(610)는 PSMU(605a-d) 중 업데이트될 하나를 선택할 수 있다. 예를 들어, 펌웨어 업데이트 호스트(610)는 PSMU(605a-d) 중 하나에 대하여, PSMU(605a-d)에 저장된 애플리케이션 펌웨어의 버전을 질의할 수 있다. 질의된 PSMU의 애플리케이션 펌웨어는 업데이트되지 않았다고 펌웨어 업데이트 호스트(610)가 판단하면, 펌웨어 업데이트 호스트(610)는 질의된 PSMU에서 펌웨어 업데이트 프로세스를 시작할 수 있다. 대안적으로, PSMU 각각은, 연관된 파워 서플라이에 대한 일련번호와 같이, 메모리(615)에 저장된 시드값(seed value)에 기초하여 업데이트 요청을 생성할 수 있다. 각 일련번호는 고유할 수 있으므로, 업데이트 요청은 다른 시간에 발생할 수 있다.
일부 구현에서, 펌웨어 업데이트 호스트(610)는 PSMU(605a-d) 중 업데이트될 특정 그룹을 지정할 수 있다. 예를 들어, 데이터 센터(105; 도1)에 식별된 일부 핫스팟(hot spot; 예를 들어, 시스템 내 다른 하드웨어에 비하여 상승된 온도에서 실행 중인 하드웨어)이 있을 수 있다. 펌웨어 업데이트 호스트(610)는 핫스팟에 있는 트레이(110)의 그룹에 애플리케이션 펌웨어 업데이트를 전송하여 예를 들어, 이들 트레이(110) 상의 냉각팬이 주변 트레이(110) 보다 높은 속도에서 동작하도록, 그 그룹에 어드레스할 수 있다(예를 들어, 트레이(110) 내 어드레스 핀을 사용하여 어드레스함).
본 발명의 다수 실시예가 기술되었다. 그럼에도 다양한 수정예가 본 발명의 사상과 범위를 이탈하지 않고 이루어질 수 있음을 이해해야 한다. 예를 들어, 마더보드(120)가 파워 서플라이(115)에 대한 부하로서 위에서 기술되었지만, 다른 부하가 사용될 수 있다. 예를 들어, 부하에는 네트워크 디바이스, 집적 칩, 디스크-온리 시스템(disk-only system), 메모리 디바이스 등이 포함된다.
일부 구현에서, 하나 이상의 파워 서플라이(예를 들어, 파워 서플라이(115))가 단일 마더보드(예를 들어, 마더보드(120))에 전력을 공급할 수 있다. 다른 구현에서, 단일의 파워 서플라이가 하나 이상의 마더보드에 전력을 공급할 수 있다. 2개의 파워 서플라이가 3개의 마더보드에 전력을 공급하는 것과 같은 다양한 조합이 또한 구현될 수 있다.
다른 구현에서, 개시된 기술의 단계가 다른 순서로 수행되거나, 개시된 시스템의 요소가 다른 방법으로 결합되거나, 요소가 다른 요소로 대체되거나 또는 보완되어도 유리한 결과가 달성될 수 있다. 따라서 다른 실시예도 후술하는 청구항의 범위 내에 있다.
본 발명은 파워 서플라이를 업데이트하는 새로운 시스템 및 방법을 제공한다.

Claims (35)

  1. 전력 변환 모듈;
    데이터 포트;
    상기 데이터 포트로부터 데이터를 수신하는 컨트롤러; 및
    인스트럭션을 담고 있는 데이터 저장부를 포함하고,
    상기 인스트럭션은 상기 컨트롤러에 의해 실행되면 상기 전력 변환 모듈을 제어하는 동작을 수행하고, 상기 동작은,
    상기 컨트롤러의 부팅 동안 상기 데이터 저장부의 제1 부분 내 인스트럭션을 실행하고,
    상기 컨트롤러가 부팅된 후 상기 데이터 저장부의 제2 부분 내 인스트럭션을 실행하고,
    상기 제2 부분 내 인스트럭션이 수정될 것임을 나타내는 신호를 상기 데이터 포트로부터 수신하고,
    상기 제2 부분 내 인스트럭션이 수정될 것임을 나타내는 신호를 수신한 후에 상기 제2 부분 내 인스트럭션에 대한 액세스를 제한(restrict)하고,
    상기 제2 부분에 저장될 수정된 인스트럭션을 상기 데이터 포트로부터 수신하고,
    상기 수정된 인스트럭션을 상기 제2 부분에 저장하기 위하여 상기 제1 부분 내 인스트럭션을 상기 신호에 응답하여 실행하는 것을 포함하고,
    상기 수정된 인스트럭션은, 상기 전력 변환 모듈이 정상 동작 모드에서 동작하고 있다는 상기 컨트롤러에 의한 판단에 기초하여, 상기 제2 부분에 저장되는 시스템.
  2. 청구항1에 있어서, 상기 수정된 인스트럭션은 상기 데이터 저장부의 제2 부 분에 미리 저장된 인스트럭션의 적어도 일부를 대체하는 시스템.
  3. 청구항1에 있어서, 상기 수정된 인스트럭션은 상기 데이터 저장부의 제2 부분에 미리 저장된 인스트럭션을 보완하는 시스템.
  4. 청구항1에 있어서, 상기 데이터 포트는 시스템 관리 버스(SMBus)로부터 데이터를 수신하는 시스템.
  5. 삭제
  6. 청구항1에 있어서, 상기 동작은 상기 제1 부분 내 인스트럭션이 상기 수정된 인스트럭션을 상기 제2 부분에 저장한 후, 상기 제2 부분 내 상기 수정된 인스트럭션에 대한 액세스를 복원(restore)하는 것을 더 포함하는 시스템.
  7. 청구항1에 있어서, 상기 컨트롤러에 전력을 공급하는 주 전력원 입력 포트(primary power source input port) 및 상기 컨트롤러에 대체적(alternative) 전력원을 제공하는 보조 전력원 입력 포트를 더 포함하는 시스템.
  8. 청구항7에 있어서, 상기 주 전력원 입력 포트는 교류(AC) 입력 포트이고, 상기 보조 전력원 입력 포트는 직류(DC) 입력 포트인 시스템.
  9. 청구항8에 있어서, 상기 DC 입력 포트는 배터리 입력 포트인 시스템.
  10. 청구항7에 있어서, 상기 동작은 상기 주 전력원 입력 포트에서 AC 전력의 존재 또는 안정성을 판단하기 위하여, 상기 주 전력원 입력 포트로부터 수신된 전력을 감시하는 것을 더 포함하는 시스템.
  11. 청구항10에 있어서, 상기 동작은 수신된 AC 전력이 존재하지 않거나 불안정하다고 판단되면, 상기 보조 전력원 입력으로부터 가용한 전력으로 전환(switch)하는 것을 더 포함하는 시스템.
  12. 청구항1에 있어서, 상기 동작은 검증을 위해 호스트 시스템에 체크섬(checksum)을 전송하는 것을 더 포함하고, 상기 체크섬은 상기 제2 부분에 저장된 상기 수정된 인스트럭션으로부터 적어도 부분적으로 생성되는 시스템.
  13. 청구항1에 있어서, 상기 동작은 체크섬이 유효하지 않으면 상기 수정된 인스트럭션의 재전송을 상기 데이터 포트에서 수신하는 것을 더 포함하는 시스템.
  14. 청구항1에 있어서, 상기 동작은 상기 제2 부분 내 상기 수정된 인스트럭션의 적어도 일부에 근거하는 체크섬이 상기 적어도 일부에 기초하여 미리 결정되고 저장된 체크섬과 일치하지 않으면, 상기 수정된 인스트럭션의 재전송을 상기 데이터 포트에 요청하는 것을 더 포함하는 시스템.
  15. 청구항1에 있어서, 상기 데이터 포트는 적외선 수신기, 무선 주파수(radio frequency) 수신기 및 광섬유(fiber optic) 수신기 중 적어도 하나를 포함하는 시스템.
  16. 청구항1에 있어서, 복수의 데이터 포트를 연결하는 공통 버스를 더 포함하고, 데이터 포트 각각은 전력 변환 모듈, 컨트롤러 및 데이터 저장부와 연관되는 시스템.
  17. 청구항16에 있어서, 상기 공통 버스는 수정된 인스트럭션을 상기 복수의 데이터 포트에 전송하도록 구성된 시스템 호스트에 또한 연결되는 시스템.
  18. 청구항17에 있어서, 상기 시스템 호스트는 개별화되고(individualized) 수정된 인스트럭션을 상기 복수의 데이터 포트 중 적어도 하나에 전송하도록 추가로 구성되는 시스템.
  19. 청구항17에 있어서, 상기 시스템 호스트는 상기 수정된 인스트럭션을 서로 다른 시간에 상기 복수의 데이터 포트에 전송하기 위한 요청을 수신하도록 추가로 구성되는 시스템.
  20. 청구항1에 있어서, 상기 동작은 상기 수정된 인스트럭션을 실행하는 것을 추가로 포함하는 시스템.
  21. 청구항1에 있어서, 상기 데이터 저장부의 제1 및 2 부분은 논리적 분할 또는 물리적 분할인 시스템.
  22. 청구항1에 있어서, 상기 수정된 인스트럭션은 상기 데이터 포트로부터 제2 신호의 수신에 기초하여 상기 제2 부분에 저장되는 시스템.
  23. 청구항1에 있어서, 상기 동작은 상기 전력 변환 모듈이 정상 동작 모드에서 동작하고 있지 않다는 판단에 기초한 에러 메시지를, 상기 신호 또는 상기 수정된 인스트럭션 중 적어도 하나에 응답하여 전송하는 것을 더 포함하는 시스템.
  24. 청구항1에 있어서, 상기 동작은
    상기 수정된 인스트럭션의 적어도 일부를 미리 결정된 시간 기간 동안 수신하고,
    상기 미리 결정된 시간 기간 동안 수신된 상기 수정된 인스트럭션의 일부를 상기 제2 부분에 저장하고, 및
    상기 수정된 인스트럭션의 상기 저장된 부분을 실행하는 것을 더 포함하는 시스템.
  25. 파워 서플라이 시스템에 인스트럭션을 로드하는 단계;
    컨트롤러의 초기화 동안 데이터 저장부의 제1 부분 내 인스트럭션을 실행하는 단계로서, 상기 데이터 저장부, 상기 컨트롤러 및 전력 변환 모듈은 상기 파워 서플라이 시스템에 포함되는 상기 실행 단계;
    상기 파워 서플라이 시스템이 초기화된 후 상기 데이터 저장부의 제2 부분 내 인스트럭션을 실행하는 단계;
    상기 제2 부분 내 인스트럭션이 수정될 것임을 나타내는 신호를 수신하는 단계;
    상기 제2 부분 내 인스트럭션이 수정될 것임을 나타내는 신호를 수신한 후에 상기 제2 부분 내 인스트럭션에 대한 액세스를 제한하는 단계; 및
    수정된 인스트럭션을 상기 제2 부분에 저장하기 위해, 상기 신호에 응답하여 상기 제1 부분 내 인스트럭션을 실행하는 단계를 포함하고,
    상기 수정된 인스트럭션은 상기 전력 변환 모듈이 정상 동작 모드에서 동작하고 있다는 판단에 기초하여 상기 제2 부분에 저장되는 것을 특징으로 하는 방법.
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
KR1020097009579A 2006-10-10 2006-10-10 파워 서플라이 마이크로 컨트롤러의 업데이트 KR101169124B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2006/039715 WO2008045044A1 (en) 2006-10-10 2006-10-10 Updating a power supply microcontroller

Publications (2)

Publication Number Publication Date
KR20090093952A KR20090093952A (ko) 2009-09-02
KR101169124B1 true KR101169124B1 (ko) 2012-07-26

Family

ID=39283128

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097009579A KR101169124B1 (ko) 2006-10-10 2006-10-10 파워 서플라이 마이크로 컨트롤러의 업데이트

Country Status (5)

Country Link
EP (2) EP2084591B1 (ko)
KR (1) KR101169124B1 (ko)
CN (1) CN101595442B (ko)
DK (2) DK3588245T3 (ko)
WO (1) WO2008045044A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9032250B1 (en) 2012-11-05 2015-05-12 Google Inc. Online testing of secondary power unit

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2447843B1 (de) * 2010-10-06 2013-07-03 Siemens Aktiengesellschaft Verfahren zur Verifizierung eines Anwendungsprogramms einer fehlersicheren Speicherprogrammierbaren Steuerung, und Speicherprogrammierbare Steuerung zur Ausführung des Verfahrens
US8595716B2 (en) 2011-04-06 2013-11-26 Robert Bosch Gmbh Failsafe firmware updates
KR102154080B1 (ko) * 2014-07-25 2020-09-09 삼성전자주식회사 전력 관리 시스템, 이를 포함하는 시스템 온 칩 및 모바일 기기
CN107765585A (zh) * 2016-08-23 2018-03-06 南京中兴新软件有限责任公司 数字电源的升级方法、装置及系统
CN108427566A (zh) * 2018-03-14 2018-08-21 郑州云海信息技术有限公司 一种服务器电源固件的升级方法及升级系统
US10955872B2 (en) * 2018-07-25 2021-03-23 Dell Products L.P. System and method to retain baseboard management controller real-time clock time during BMC reboot
US11314867B2 (en) 2020-03-26 2022-04-26 Hewlett Packard Enterprise Development Lp Determinations of compromise of controller code images
CN112666919B (zh) 2020-12-01 2022-06-07 苏州浪潮智能科技有限公司 一种电源供应器的在线升级方法、装置及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060020832A1 (en) * 2004-07-21 2006-01-26 Giga-Byte Technology Co., Ltd. Circuit capable of updating power supply specification of microprocessor and method thereof

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX9602773A (es) * 1994-01-13 1997-05-31 Bankers Trust Co Sistema criptografico y metodo con aspecto de deposito de plica de clave.
US6584559B1 (en) * 2000-01-28 2003-06-24 Avaya Technology Corp. Firmware download scheme for high-availability systems
GB0103837D0 (en) * 2001-02-16 2001-04-04 Nallatech Ltd Programmable power supply for field programmable gate array modules
KR20040065495A (ko) * 2003-01-14 2004-07-22 삼성전자주식회사 마이콤을 갖는 전자기기 및 그 펌웨어 갱신 방법
KR100987628B1 (ko) * 2004-02-07 2010-10-13 엘지전자 주식회사 엠비디드 컨트롤러의 펌웨어 갱신방법 및 갱신용 펌웨어저장매체
JP2005321983A (ja) * 2004-05-07 2005-11-17 Sony Corp 電子機器、バッテリーパック、電子機器の電源制御方法及びそのプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060020832A1 (en) * 2004-07-21 2006-01-26 Giga-Byte Technology Co., Ltd. Circuit capable of updating power supply specification of microprocessor and method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9032250B1 (en) 2012-11-05 2015-05-12 Google Inc. Online testing of secondary power unit

Also Published As

Publication number Publication date
DK3588245T3 (da) 2021-12-06
EP2084591A1 (en) 2009-08-05
EP3588245B1 (en) 2021-09-08
WO2008045044A1 (en) 2008-04-17
EP3588245A1 (en) 2020-01-01
EP2084591B1 (en) 2019-09-11
CN101595442A (zh) 2009-12-02
KR20090093952A (ko) 2009-09-02
CN101595442B (zh) 2012-06-20
DK2084591T3 (da) 2019-12-16
EP2084591A4 (en) 2011-08-24

Similar Documents

Publication Publication Date Title
US8775779B2 (en) Controlling access to a power supply memory
KR101169124B1 (ko) 파워 서플라이 마이크로 컨트롤러의 업데이트
US9904351B2 (en) Systems and methods for power supply configuration and control
US9740426B2 (en) Drive array policy control
US7512830B2 (en) Management module failover across multiple blade center chassis
US20150106644A1 (en) Redundant array of independent disks storage device, server system, and power management method thereof
US9201601B2 (en) Reducing required battery capacity for data backup in a storage system with multiple controllers
CN104683133A (zh) 基本输入输出系统维护方法
CN103136019A (zh) 用于加载配置信息的方法和装置
US10788872B2 (en) Server node shutdown
WO2014052119A1 (en) Method and apparatus to extend battery life
US20130268745A1 (en) Control method of computer, computer and computer system
US10387306B2 (en) Systems and methods for prognosticating likelihood of successful save operation in persistent memory
US20090222677A1 (en) Display of blade server operating system information
US9645634B2 (en) Systems and methods for non-uniform power supply unit load sharing
US9652259B2 (en) Apparatus and method for managing register information in a processing system
US10365705B2 (en) System and methods for prioritized multi-node server and infrastructure availability during power capacity loss
US11249533B2 (en) Systems and methods for enabling power budgeting in an information handling system comprising a plurality of modular information handling systems
US11726547B1 (en) Information handling system power supply input voltage operation management systems and methods
US11181961B2 (en) System and method for increasing power delivery to information handling systems
US20240103847A1 (en) Systems and methods for multi-channel rebootless firmware updates
US20240103830A1 (en) Systems and methods for personality based firmware updates
CN117369841A (zh) 固件激活方法、装置、相关设备及计算机可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150706

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160711

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170711

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180711

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190710

Year of fee payment: 8