KR20110060835A - 시스템의 기동 시간을 가속화하는 방법 - Google Patents

시스템의 기동 시간을 가속화하는 방법 Download PDF

Info

Publication number
KR20110060835A
KR20110060835A KR1020100119598A KR20100119598A KR20110060835A KR 20110060835 A KR20110060835 A KR 20110060835A KR 1020100119598 A KR1020100119598 A KR 1020100119598A KR 20100119598 A KR20100119598 A KR 20100119598A KR 20110060835 A KR20110060835 A KR 20110060835A
Authority
KR
South Korea
Prior art keywords
memory
partition
node
minimum
scrubbed
Prior art date
Application number
KR1020100119598A
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 KR20110060835A publication Critical patent/KR20110060835A/ko

Links

Images

Classifications

    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • 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/1417Boot up procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)

Abstract

시스템의 기동 시간을 가속화하는 방법이 개시된다. 상기 방법은 최소량의 메모리를 스크럽하여 할당을 위해 이용 가능하게 하는 단계, 상기 시스템상에 저장된 운영 시스템의 부트-업 동작을 실행하는 단계, 및 운영 시스템의 부트-업 동작의 실행과 병행해서 그리고 이후에, 추가 량의 메모리를 스크럽(scrubbing)하여 할당을 위해 이용 가능하게 하는 단계를 포함한다. 이때 상기 시스템은 하나 이상의 노드들을 포함하고, 그 노드들 각각은 자신과 연관된 최소 노드 자원 구성을 포함한다. 그리고 최소 노드 자원 구성은 노드를 활성화하기 위해 활성화될 것이 요구되는 노드에 포함된 최소 수의 프로세서들에 대응한다. 상기 시스템은 또한 하나 이상의 파티션들을 포함하는데, 이때 각 파티션은 적어도 하나의 노드를 포함한다. 그리고 각 파티션은 다른 파티션들과의 관계에서 우선순위가 할당되어서, 상기 파티션들은 상기 할당된 우선순위에 기초하여 계속적으로 활성화된다.

Description

시스템의 기동 시간을 가속화하는 방법{METHOD FOR ACCELERATING A WAKE-UP TIME OF A SYSTEM}
현대 컴퓨터 메모리 칩들이 높은 집적도(high integration density)를 갖게 되고 병행해서 개개의 메모리 셀 구조들의 크기는 감소함에 따라, 그러한 개개의 메모리 셀들은 위성용 우주광선(cosmic rays) 및/또는 알파 입자(alpha particle) 방사(emission)로 인한 비트 에러들(bit errors)에 점점 더 취약해지고 있다. 그러한 비트 에러들은 소프트 에러들(soft errors)로 알려져 있다. 비록 개개의 메모리 비트에서 소프트 에러가 발생할 가능성이 작다고 하더라도, 컴퓨터들, 특히 서버, 에 존재하는 메모리의 양이 많은 경우에는, 설치된 총 메모리에서 소프트 에러들이 발생할 가능성은 상당히 커지게 된다.
이에 본 발명은 일반적으로 메모리 스크러빙(memory scrubbing), 더 자세하게는 시스템의 기동 시간(wake-up time)을 가속화하기 위해 준비된 방법들 및 장치를 제공한다.
본 발명의 일 실시예는 시스템의 기동 시간(wake-up time)을 가속화하기 위한 방법을 제공한다. 상기 방법은 할당을 위해 최소 량의 메모리를 스크럽하여(scrubbing) 이용 가능하게 하는 단계, 시스템에 저장된 운영 시스템의 부트-업 동작(boot-up operation)을 실행하는 단계, 및 운영 시스템의 부트-업 동작과 병행해서 그리고 이후에, 할당을 위해 추가 량의 메모리를 스크럽하여 이용 가능하게 하는 단계를 포함한다.
본 발명의 또 다른 실시 예는 복수의 메모리 유닛들, 복수의 메모리 유닛들에서 메모리를 스크럽(scrub)하여 할당을 위해 그 메모리를 이용 가능하도록 구성된 스크러빙 유닛(scrubbing unit), 및 운영 시스템을 포함하는 시스템을 제공한다. 이때 스크러빙 유닛(scrubbing unit)은 최소량의 메모리를 스크럽하여 할당을 위해 이용 가능하게 하며, 최소 량의 메모리가 스크럽되어 할당을 위해 이용 가능하게 된 후에는 운영 시스템의 부트-업 동작(boot-up operation)이 실행된다. 또한, 스크러빙 유닛은 운영 시스템의 부트-업 동작의 실행과 병행해서 그리고 이후에, 추가 량의 메모리를 스크럽(scrubbing)하여 할당을 위해 이용 가능하게 할 수 있게 한다.
본 발명의 또 다른 실시 예에서, 상기 시스템은 복수의 노드들 - 복수의 노드들 각각은 자신과 연관된(associated therewith) 최소 노드 자원 구성(minimum node resource configuration)을 포함함 -, 복수의 노드들 중 적어도 하나를 포함하는 적어도 하나의 파티션(partition), 복수의 노드들 각각에 포함된 복수의 프로세서들(processors), 복수의 프로세서들 각각에 포함된 복수의 코어들(cores), 및 복수의 메모리 컨트롤러들을 포함한다. 이때 복수의 코어들 각각은 복수의 메모리 컨트롤러들 중 적어도 하나를 인터페이스 하고(interface with), 복수의 메모리 컨트롤러들 각각은 메모리 유닛들 중 적어도 하나를 제어하며, 그리고 최소 노드 자원 구성은 노드를 활성화하기 위해 활성화될 것이 요구되는 노드에 포함된 최소 수의 프로세서들에 대응한다.
본 발명의 또 다른 실시 예는 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 기록매체를 제공하는데, 상기 컴퓨터 프로그램은 컴퓨터가 시스템의 기동 시간을 가속화하기 위한 프로세스를 수행하게 한다. 이때 상기 프로세스는 할당을 위해 최소량의 메모리를 스크럽(scrubbing)하여 이용 가능하게 하는 단계, 시스템상에 저장된 운영 시스템의 부트-업 동작(boot-up operation)을 실행하는 단계, 및 운영 시스템의 부트-업 동작과 병행해서 그리고 이후에, 할당을 위해 추가 량의 메모리를 스크럽(scrubbing)하여 이용 가능하게 하는 단계를 포함한다.
앞서 개시된 실시 예들 중 하나 또는 그 이상의 시스템은 복수의 파티션들(partitions)을 포함할 수 있고, 상기 복수의 파티션들 각각은 적어도 하나의 노드를 포함하며, 상기 노드는 자신과 연관된 최소 노드 자원 구성을 가져서, 상기 최소 노드 자원 구성이 설정된(established) 조건에 따라 상기 노드가 활성화되도록 한다. 또한, 복수의 파티션들 각각은 다른 파티션들과의 관계에서 우선순위가 할당되고 상기 복수의 파티션들은 상기 할당된 우선순위에 기초하여 계속적으로 활성화될 수 있다.
상기 예들과 본 발명의 다른 실시 예들은 이하의 도면들을 참조하여 자세히 기술된다.
도 1은 본 발명의 하나 또는 그 이상의 실시 예들에 따른 시스템을 나타낸 블록도를 도시한다.
도 2는 본 발명의 하나 또는 그 이상의 실시 예들에 따른 방법을 나타낸 흐름도를 도시한다.
도 3은 본 발명의 하나 또는 그 이상의 실시 예들에 따른 방법을 나타낸 흐름도를 도시한다.
도 4는 본 발명의 하나 또는 그 이상의 실시 예들에 따른 방법을 나타낸 흐름도를 도시한다.
당해 기술 분야에서 숙련된 자라면 이해할 수 있는 바와 같이, 본 발명의 실시 예들은 시스템, 방법 또는 컴퓨터 프로그램 제품으로 구현될 수 있다. 따라서, 본 발명의 실시 예들은 전적으로 하드웨어 실시예의 형태를 취할 수도 있고, 전적으로 소프트웨어 실시 예(펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함함)의 형태를 취할 수도 있으며, 또는 소프트웨어 및 하드웨어 실시예들 - 이것들은 일반적으로 모두 "회로", "모듈" 또는 "시스템"으로 일컬어질 수 있음 - 을 조합한 실시예의 형태를 취할 수도 있다. 더 나아가, 본 발명의 실시 예들은 하나 또는 그 이상의 컴퓨터 판독가능 매체(들) - 이 컴퓨터 판독가능 매체(들)은 그 상에 구현된 컴퓨터 판독가능 프로그램 코드를 가짐 - 의 형태를 취할 수 있다.
하나 또는 그 이상의 컴퓨터 판독가능 매체(들)의 어떤 조합이든지 이용될 수 있다. 컴퓨터 판독가능 스토리지 매체는, 예를 들어, 전기, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 또는 디바이스, 또는 이것들의 적절한 조합일 수 있다. 그러나, 이러한 예들로 한정되는 것은 아니다. 상기 컴퓨터 판독가능 스토리지 매체의 더 상세한 예들(그러나, 총 망라한 것은 아님)은 다음의 것들, 즉 하나 또는 그 이상의 와이어들을 갖는 전기적 연결, 휴대용 컴퓨터 디스켓, 하드 디스크, 임의 접근 메모리(random access memory, RAM), 읽기-전용 메모리(read-only memory, ROM), 소거형 프로그램가능 읽기-전용 메모리(erasable programmable read-only memory)(EPROM 또는 플래쉬 메모리), 광 섬유, 휴대용 컴팩트 디스크 읽기-전용 메모리(CD-ROM), 광 스토리지 디바이스, 자기 스토리지 디바이스, 또는 이것들의 적절한 조합을 포함할 것이다. 본 문서의 맥락에서, 컴퓨터 판독가능 스토리지 매체는 어떤 실체적 매체를 포함할 수 있다. 상기 실체적 매체는 명령 실행 시스템, 장치, 또는 디바이스에 의해 사용하기 위한 또는 명령 실행 시스템, 장치, 또는 디바이스와 함께 사용하기 위한 프로그램을 포함, 또는 저장할 수 있다. 컴퓨터 판독가능 매체 상에 구현된 프로그램 코드는 적절한 매체(예를 들어, 무선, 유선, 광 섬유 케이블, RF 등, 또는 이것들의 적절한 조합)를 사용하여 전송될 수 있다.
본 발명의 실시 예들을 위한 동작들을 실행하는 컴퓨터 프로그램 코드는 하나 또는 그 이상의 프로그래밍 언어들의 조합으로 쓰여질 수 있다. 이러한 프로그래밍 언어들의 예에는, Java, Smalltalk, C++ 등과 같은 객체 지향 프로그래밍 언어, 및 "C" 프로그래밍 언어 또는 유사 프로그래밍 언어들과 같은 전통적인 절차 프로그래밍 언어들이 포함된다. 상기 프로그램 코드는 사용자 컴퓨터 상에서 전적으로 실행될 수 있으며, 독립형 소프트웨어 패키지로서, 사용자 컴퓨터 상에서 부분적으로 실행되거나, 일부는 사용자 컴퓨터 상에서 그리고 일부는 리모트 컴퓨터 상에서 실행되거나 또는 리모트 컴퓨터나 서버 상에서 전적으로 실행될 수도 있다. 후자의 경우에, 리모트 컴퓨터는 LAN(local area networks)이나 WAN(wide area networks), 혹은 외부 컴퓨터에서 수행될 수 있는 커넥션(예를 들어, 인터넷 서비스 제공자를 사용하는 인터넷을 통한 커넥션)을 포함한 모든 유형의 네트워크를 통해 사용자의 컴퓨터에 연결될 수 있다.
본 발명의 실시 예들은 발명의 실시 예들에 따른 흐름도 예시들 및/또는 방법의 블록도들, 장치들(시스템들) 및 컴퓨터 프로그램 제품들을 참조하여 이하에서 기술된다. 흐름도 예시들 및/또는 블록도들에서 각각의 블록, 및 흐름도 예시들 및/또는 블록도들에서 블록도들의 조합은 컴퓨터 프로그램 명령들로 구현될 수 있음을 이해해야 할 것이다. 이들 컴퓨터 프로그램 명령들은 범용 컴퓨터, 전용 컴퓨터, 또는 다른 프로그램가능 데이터 처리 장치들에 제공되어 머신(machine)을 생성할 수 있다. 그리하여, 컴퓨터의 프로세서 또는 다른 프로그램가능 데이터 처리 장치들을 통해 실행될 때 상기 명령들이 흐름도 및/또는 블록도 또는 블록도들에 특정된 기능들/동작들을 구현하기 위한 수단들을 생성하도록 한다.
이들 컴퓨터 프로그램 명령들은 또한, 컴퓨터, 다른 프로그램가능 데이터 처리 장치들, 또는 다른 디바이스들이 특정 방식으로 기능하도록 명령할 수 있도록 컴퓨터 판독가능 매체에 저장될 수 있다. 그리하여, 상기 컴퓨터 판독가능 매체에 저장된 명령들은 흐름도 및/또는 블록도의 블록 또는 블록도들에 명시된 기능/작용을 구현하는 명령들을 포함하는 제조 물품을 생성할 수 있다. 상기 컴퓨터 프로그램 명령들은 또한 컴퓨터, 다른 프로그램가능 데이터 처리 장치, 또는 다른 디바이스들 상에 로드되어, 일련의 동작단계들이 컴퓨터, 다른 프로그램가능 장치 또는 다른 디바이스들 상에서 수행되도록 하여, 컴퓨터에서 구현되는 프로세스를 생성할 수 있다. 그리하여, 상기 컴퓨터 또는 다른 프로그램가능 장치상에 실행되는 명령들이 상기 흐름도 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/작용들을 구현하기 위한 프로세스들을 제공하도록 한다.
이제부터 도 1을 참조하면, 본 발명의 하나 또는 그 이상의 실시 예들에 따른 시스템은 내부에 하나 또는 그 이상의 노드들(110)을 갖는 서버(100)를 포함한다. 노드들(110)은 또한 노드 북들(node books), 프로세서 북들(processor books), 또는 드로어들(drawers)로 일컬어질 수 있다. 노드들(110) 각각은 하나 또는 그 이상의 프로세서들(120)을 포함하며 프로세서들(120) 각각은 하나 또는 그 이상의 코어들(130)을 포함한다. 그리고 각각의 코어(130)는 하나 이상의 메모리 컨트롤러들(140)을 인터페이스 하고, 각각의 메모리 컨트롤러(140)는 하나 이상의 메모리 유닛들(150)을 제어한다. 서버(100)의 한 예로써, 최대 8 노드들을 포함하는 고급 파워 서버(high-end POWER server)가 있는데, 이때 각각의 노드는 무려 4 개의 프로세서들을 포함할 수 있다.
본 발명의 하나 또는 그 이상의 실시 예들에 따른 서버(100)는 자신에 관해서(thereon) 정의된 하나 또는 그 이상의 논리 파티션들(logical partitions)(160)을 포함한다. 파티션(160)은 하나 이상의 노드들(110)을 포함한다(span or encompass). 노드(110)가 서버(100)에 포함된 물리적 개체(physical entity)라면, 파티션(160)은 서버(100) 상에 정의된 논리적 개체(logical entity)에 해당한다. 각 파티션(160)은 그 내부에 설치된 동일 혹은 상이한 운영 시스템(도시되지 않음)을 포함할 수 있고, 서버(100)은 하이퍼바이져(hypervisor)로도 일컬어지는 호스트 운영 시스템(도시되지 않음)을 포함할 수 있다. 여기서 하이퍼바이져(hypervisor)는 하드웨어 컨트롤을 위해 그리고 그 밖에 다른 파티션들 상에 로드될 수 있는 다른 운영 시스템들을 모니터하기 위해 제공된다. 그리고 각 파티션(160)에는 운영 시스템(들)뿐만 아니라 다양한 어플리케이션들(도시되지 않음)이 내부에 설치될 수 있다. 또한, 단일 유저(user)나 여러 유저들이 서로 다른 파티션들을 제어할 수 있다.
메모리 유닛들(150) 각각은 듀얼 인-라인 메모리 모듈(a dual in-line memory module; DIMM)일 수 있다. 상기 DIMM은 일련의 다이내믹 램(dynamic random access memory; DRAM) 집적 회로들을 포함하며, 이러한 DIMM들은 산업에서 사용하기에 적합한 어떤 종류라도 될 수 있다. 또한, DIMM들은 비트 오류들을 검출 및/또는 수정하기 위해 메모리 컨트롤러에 의해 사용되는 여분의 데이터 비트들(extra data bits)을 포함하는 ECC(Error Correcting Code) DIMM들일 수 있다. 그러나 본 발명이 여기에 채용된 특정 ECC 기법에 한정되는 것은 아니며 비트 오류들을 검출하고 그리고/또는 수정할 수 있는 어떤 기법이든지 사용될 수 있다. 예를 들어, ECC 기법은 각 64-비트 워드에 대해 여분의 바이트(8비트 조합)를 사용하는 단일 오류 수정, 이중 오류 검출(a Single Error Correct, Double Error Detect; SECDED) 기법일 수 있다. 그와 같은 오류-수정 기법의 예시로 해밍 코드(Hamming Code)가 있다.
다시 도 1을 참조하면, 본 발명의 하나 또는 그 이상의 실시 예들에 따른 서버(100)는 메모리 스크러빙 유닛(memory scrubbing unit)(170)을 포함한다. 메모리 스크러빙 유닛(170)은 유연한 서비스 프로세서(flexible service processor; FSP)와 같은 서비스 프로세서가 될 수 있다. 메모리 스크러빙은 서버(100)의 신뢰성(reliability)을 보장하기 위해 채용된 기술이다. 따라서, 메모리 스크러빙 기법은 긴 가동시간(long uptimes)을 갖는 서버들과 기타 컴퓨팅 장치들에 대한 RAS(신뢰도(Reliability), 이용도(Availability), 내구성(Serviceablity)) 패러다임 범위 내에 속한다. 메모리 스크러빙은 일반적으로 미리-정의된 테스트 패턴을 메모리 주소에 기록하고, 메모리 주소로부터 패턴을 판독한 다음, 판독한 패턴과 원래 테스트 패턴을 비교하여 잠정적인 비트 오류들을 식별하는 동작으로 이루어진다.
종래 시스템에서는, 시스템에 설치된 하나 이상의 운영 시스템의 부트-업 동작을 실행하여 그 시스템이 런-타임 상태(run-time state)로 되기 전에 하나 이상의 테스트 패턴을 이용하는 메모리 스크러빙(memory scrubbing)이 전적으로 시스템의 메모리 상에서 수행되었다. 그리고 그렇게 호스트 운영 시스템이 로딩된 후에는, 시스템상에 정의된 하나 이상의 파티션들이 활성화된다. 하지만 그러한 시스템들은, 시스템이 모든 메모리를 최종적으로 사용할 것인지와는 관계없이 시스템이 런-타임 상태가 되기 전에 먼저 시스템의 모든 메모리에 대한 스크러빙 동작을 요구하기 때문에 비효율적이다.
도 2는 본 발명의 하나 또는 그 이상의 실시 예들에 따른 방법을 나타낸 흐름도이다. 도 2를 참조하면, 상기 방법의 단계(S200)에서, 하나 이상의 메모리 유닛들 내의 최소 량의 메모리를 스크럽하여 할당을 위해 이용 가능하게 한다. 이때 메모리 유닛은 단일 DIMM일 수 있다. 그리고 스크러빙 동작(scrubbing operation)이 수행되는 메모리의 양은 서버에 존재하는 메모리 유닛들 모두 혹은 단일 메모리 유닛 내의 메모리들 모두를 포함하지 않을 수도 있다. 좀 더 구체적으로 설명하면, 스크럽되는 메모리의 최소 량은 각 노드에 대해 지정된(specified) 최소 노드 자원 구성을 설정하기 위해(establish) 필요한 메모리의 양에 대응한다.
특히, 도 1을 다시 참조하면, 각 메모리 컨트롤러(140)는 하나 이상의 메모리 유닛들(150)을 제어한다. 서버(100)상에 로드된 운영 시스템의 부트-업 동작을 초기화(initialization)하기 전에, 각 메모리 컨트롤러(140)는 초기에는 디스에이블 상태(disabled state)에 있다. 특정 메모리 컨트롤러가 제어하는 적어도 하나의 메모리 유닛 내의 최소 량의 메모리에 관하여 메모리 스크러빙 동작이 수행된 후에는, 메모리 컨트롤러가 디스에이블 상태(disabled state)에서 인에이블 상태(enabled state)로 전환되고 그리하여 그 메모리 컨트롤러와 연관된 스크럽된 메모리가 하나 이상의 노드들에 할당될 수 있게 된다.
다시 도 1을 참조하면, 각 노드(110)는 하나 이상의 프로세서들(120)을 포함하고, 프로세서들은 하나 이상의 코어들(130)을 포함한다. 그리고 각 코어(130)는 하나 이상의 메모리 컨트롤러들(140)을 인터페이스 한다. 특정 메모리 컨트롤러(140)가 제어하는 메모리 유닛들(150) 중 적어도 하나에서 적어도 최소 량의 메모리에 대해 메모리 스크러빙 동작이 수행된 후, 메모리 컨트롤러가 인에이블 상태가 된다. 그런 다음 스크럽된 메모리는 노드(110) 내에 포함된 프로세서(120)의 코어(130)에 할당된다.
전술한 바와 같이, 최소 노드 자원 구성(a minimum node resource configuration)이 각 노드에 대해 지정된다. 상기 최소 노드 자원 구성은 노드를 활성화하기 위해서(즉, 시스템이 사용할 수 있도록 노드를 가동 준비(operational)시키기 위해서) 스크럽되어 노드에 할당되기 위해 이용 가능하게 되어야만 하는 최소 량의 메모리에 대응한다. 상기 최소 노드 자원 구성은 또한 노드를 활성화하기 위해 활성되어야만 하는 노드에 포함된 최소 수의 프로세서들에 대응한다. 뿐만 아니라, 상기 최소 노드 자원 구성은 또한 노드를 활성화하기 위해 활성화되어야만 하는 프로세서에 포함된 최소 수의 코어들에 대응한다.
하나의 예로써, 최소 노드 자원 구성은 노드를 활성화하기 위해 적어도 16GB의 스크럽된 메모리의 할당과 적어도 두 개의 활성 코어들(active cores)을 필요로 한다. 따라서, 특정 노드가 4 개의 프로세서들을 포함하고 각각의 프로세서가 2 개의 코어들을 포함하는 경우, 상기 노드를 활성화하기 위해 상기 노드에 대한 최소 노드 자원 구성은 4 개의 프로세서들 중 2 개의 프로세서들 각각 내에 1개의 코어 가운데(among) 16GB 양의 스크럽된 메모리의 할당이 필요할 수 있다. 따라서 한 노드에 대한 최소 노드 자원 구성은 노드를 활성화하기 위해 요구되는 최소 코어/프로세서 조합(combination)에 할당되기 위해 이용 가능해야 하는 스크럽된 최소 량의 메모리에 대응한다.
다시 도 2를 참조하면, 각 노드에 대한 최소 노드 자원 구성을 설정하는데 필요한 최소 량의 메모리가 스크럽되고 할당을 위해 이용 가능하게 된 후에는, 서버상에 로드된 호스트 운영 시스템의 부트-업 동작이 실행된다(S201). 단계(S202)에서는 운영 시스템의 부트-업 동작과 병행해서 그리고 이후에, 추가 량의 메모리가 스크럽되어 할당을 위해 이용 가능하게 될 수 있게 된다.
다시 도 1로 돌아가면, 본 발명의 하나 또는 그 이상의 실시 예들에 따른 서버(100)는 하나 이상의 노드들(110)을 포함하는 서버상에 정의된 하나 이상의 논리 파티션들(logical partitions)(160)을 포함한다. 파티션(160)은 하나 이상의 노드들을 포함하는(span or encompass) 서버상에 정의된 논리적 개체(logical entity)이다. 각 파티션(160)은 그 파티션과 연관되고 그곳에서 실행되는 애플리케이션들 및/또는 운영 시스템(들)에 기초하여 특정한 메모리 할당을 요구한다. 또한, 하나 이상의 파티션들(160) 각각은 다른 모든 파티션들과의 관계에서 우선순위를 할당 받는다. 이때 특정 파티션에 할당된 우선순위는 그 파티션이 다른 파티션들과의 관계에서 활성화될 포인트(point)를 결정하는 한 요소가 될 수 있다.
보다 자세히 기술하면, 어떤(one) 파티션이 모든 파티션들 가운데 가장 높은 우선순위를 할당받고, 그런 다음 남은 파티션 각각이 고유의 우선순위(unique priority)를 할당받을 수 있는데, 이러한 방식에 의해서 파티션들은 가장 높은 우선순위에서 가장 낮은 우선순위로 정렬될 수 있다(ordering). 이와 같이 특정 파티션에 할당되는 우선순위는 정적(static)일 수 있지만, 그러나 다른 실시 예에서는, 파티션의 우선순위는 예를 들어, 그 파티션의 메모리 자원에 대한 요구에 따라, 변경될 수 있다.
도 3은 본 발명의 하나 또는 그 이상의 실시 예들에 따른 방법의 개략도를 제공하는 흐름도이다. 방법의 개시 단계에서는, 모든 요구된 파티션들이 활성화되었는가에 관하여 결정이 내려진다(S300). 모든 요구된 파티션들이 활성화된 것으로 결정되면, 남은 할당되지 않은 메모리가 스크럽되고 그 메모리는 파티션의 우선순위 및/또는 파티션의 추가 메모리 자원 수요(demand)와 같은 기준(criteria)에 기초하여 하나 이상의 파티션들에 할당된다(S307). 블록(S307)은 이후에 더 자세히 기술될 것이다. 만일, 활성화(activation)를 필요로 하는 파티션들이 활성화되지 않은 것으로 결정되면, 서버의 운영 상태(operating state)를 유지하기 위해 활성화를 필요로 하는, 다른 모든 파티션들과의 관계에서, 우선순위가 가장 높은 파티션을 식별한다(S301). 그런 다음, 단계(S301)에서 식별된 파티션의 메모리 자원 수요가 결정된다(determine)(S302).
파티션의 메모리 자원 수요(memory resource demand)는 파티션을 활성화하기 위해서 스크럽되어 파티션에 할당되기 위해 이용 가능하게 되어야 하는 메모리의 양을 가리킨다. 파티션의 메모리 자원 수요에 따라서, 파티션에 포함된 하나 이상의 노드들이 활성화될 수 있다. 예를 들어, 파티션의 메모리 자원 수요가 낮은(low) 경우 최소 노드 자원 구성을 갖는 하나의 노드(a single node)가 활성화 될 수 있다. 다른 실시 예에서는, 파티션의 메모리 자원 수요가 높은(high) 경우에 파티션에 포함된 하나 이상의 노드가 활성화될 수 있다. 예를 들어, 어떤 파티션이 하나 이상의 노드를 포함하는데, 자신에게 할당된 메모리를 갖는 하나의 노드가 파티션의 메모리 자원 수요를 충족시키지 못하는 경우, 하나 이상의 추가 노드들이 활성화되어 파티션의 메모리 자원 수요를 충족시킬 수 있다.
다시 도 3을 참조하자. 파티션의 메모리 자원 수요가 결정되면(determined)(S302), 그 메모리 자원 수요를 스크럽되어 할당을 위해 이용 가능한 메모리의 양과 비교한다(S303). 이때 메모리 자원 수요가 스크럽되어 할당을 위해 이용 가능한 메모리의 양과 동일하거나 혹은 그보다 적으면(즉, 할당을 위해 이용 가능한 스크럽된 메모리의 양이 파티션의 메모리 자원 수요를 충족시키기에 충분한 경우), 파티션의 메모리 자원 수요를 충족시킬 수 있는 스크럽된 메모리의 양이 그 파티션에 할당되고 그리하여 파티션이 활성화된다(S304).
단계(S304)에서 파티션이 활성화된 후에는, 모든 요구된 파티션들이 활성화되었는가에 관한 결정이 다시 내려진다(S300). 만일 이 단계에서 모든 요구된 파티션들이 활성화된 것으로 결정되면, 남은 할당되지 않은 메모리 상에서 메모리 스크러빙 동작(memory scrubbing operation)이 수행된다(S307). 그런 다음 파티션의 우선순위 및/또는 파티션의 메모리 자원 수요를 포함한 다양한 기준(criteria)에 기초하여 상기 스크럽된 메모리가 하나 이상의 파티션들에 할당된다(S307). 만일, 활성화를 필요로 하는 추가 파티션들이 있다고 결정되면, 활성화를 필요로 하는 활성화되지 않은 파티션들 가운데 현재 가장 높은 할당 우선순위를 갖는 파티션을 식별한다(S301).
단계(S303)에서 할당할 수 있는 스크럽된 메모리의 양이 파티션의 메모리 자원 수요를 충족시키기에 충분하지 않다고 결정되면, 스크러빙 유닛(scrubbing unit)(170, 도1)에게 요청하여 추가 량의 메모리를 스크럽하여 할당할 수 있게 하고 그렇게 함으로써 할당할 수 있는 메모리의 총량(total amount)이 파티션의 메모리 자원 수요를 충족시킬 수 있게 한다(S305). 그런 다음, 파티션의 메모리 자원 수요를 충족시키기에 충분한 양의 스크럽된 메모리가 파티션에 할당되어 그 파티션이 활성화된다(S306). 파티션이 활성화된 후에는, 모든 요구된 파티션들이 활성화되었는가에 관한 결정이 다시 한번 내려지며(S300), 이를 구현하는 방법은 전술한 바와 같다.
상기 기술된 바와 같이, 단계(S307)에서 남은 할당되지 않은 메모리 상에서 메모리 스크러빙 동작이 수행되고 그런 다음 (스크럽된 메모리가) 파티션들 간의 우선순위의 변화(variation) 및/또는 파티션들의 메모리 자원 수요의 변화(variation)에 기초하여 하나 이상의 파티션들에 할당된다. 이때 메모리의 할당은 동적 논리 파티셔닝(Dynamic Logical Partitioning; DLPAR) 메커니즘을 통해 실행되는데 이 메커니즘은 파티션에서 실행되는 운영 시스템을 종료하거나 재부팅(re-boot)하지 않고도 주어진 파티션에 메모리를 할당하거나 주어진 파티션으로부터 메모리를 제거할 수 있다. 메모리의 할당은 또한 파티션의 우선순위 및/또는 파티션의 메모리 자원 수요에 기초하여 주어진 파티션으로부터 또 다른 파티션으로 동적으로 이전될 수 있다(transferred).
추가적으로, 모든 요구된 파티션들이 활성화되고 각 파티션에 메모리 자원들이 충분히 할당된 이후, 추가의 (further) 메모리 스크러빙 동작은, 파티션이 메모리의 할당을 요청하지 않는 동안에는 사용하지 않은 메모리 보다는(rather than) 사용한 메모리 상에서 수행된다. 이 방식에서, 사용되지 않은 메모리는 스크럽될 필요가 없다.
본 발명의 하나 또는 그 이상의 실시 예들에서, 스크러빙 유닛(scrubbing unit)(170, 도1)은, 예를 들어, 자신과 연관된 펌웨어를 포함하는 서비스 프로세서(service processor)가 될 수 있다. 그리고 메모리 유닛(150, 도1)은, 이미 기술된 바와 같이, DIMM들이 될 수 있다. 그러나 상기 메모리 유닛(150)은 산업에 이용되는 어떤 종류의 메모리라도 될 수 있으며 DIMM들에 제한된다는 의미가 아님을 숙지하는 것이 중요하다. 각 DIMM은 자신과 연관된 랭크들의 특정 수를 가질 수 있으며 이 특정 수는 DIMM의 전체 데이터 비트-폭(full data bit-width)(예, 64비트)에 대해 액세스 될 수 있는 DRAM들의 독립 세트 수(the number of independent sets)에 대응한다.
본 발명의 하나 또는 그 이상의 실시 예들에서, 서비스 프로세서 펌웨어는 DIMM 및 RANK ids의 인덱스 테이블(indexed table)을 유지한다. 인덱스 테이블의 특정 위치에서의 값(value)은 그 위치에 표시된 특정 DIMM의 특정 RANK가 스크럽되었는가를 나타낸다.
도 4는 본 발명의 하나 또는 그 이상의 실시 예들에 따른 방법의 흐름도를 도시한다. 추가 메모리 할당의 요청에 응답하여, 방법의 단계(S400)에서는, 서비스 프로세서 펌웨어가 인덱스 테이블 상에서 룩업 동작(look-up operation)을 수행하여 요청된 양이 스크럽된, 할당되지 않은 메모리를 사용할 수 있는 경우인지를 결정한다. 만일 스크럽된, 할당되지 않은 메모리의 양이 추가 메모리의 요청을 만족시키기에 충분하면, 메모리 요청을 만족시키기에 충분한 양의 스크럽된 메모리가 하나 이상의 파티션들에 할당된다(S401).
만일 스크럽된, 할당되지 않은 메모리의 양이 추가 메모리 수요를 충족시키기에 충분하지 않으면, 서비스 프로세서 펌웨어는 요청된 메모리 크기와 일치하는 인접한 구역(section)의 스크럽되지 않은 메모리를 서치한다(search)(S402). 만일, 서비스 프로세서 펌웨어가 인접한 구역의 스크럽되지 않은 메모리를 할당할 수 있다고 결정하면, 인접한 구역의 메모리가 스크럽되어 하나 이상의 파티션들에 할당된다(S403).
반면에, 단계(S402)에서, 서비스 프로세서 펌웨어가 할당을 위해 요청된 양의 메모리 크기와 일치하는 인접한 구역의 스크럽되지 않은 메모리가 없다고 결정하면, 상기 펌웨어는 할당을 위해 요청된 메모리 크기와 일치하는 조합 크기(combined size)를 갖는 최적의 수의 메모리 집합(chunks of memory)(이때 메모리의 일부는 인접하지 않을 수도 있음)을 식별해낸다. 여기서 최적의 수(optimum number)는, 예를 들어, 요청된 메모리 크기와 일치하나 인접하지 않는 메모리 집합의 최소 수가 될 수 있다. 그 후, 식별된 메모리 집합이 스크럽되고 하나 이상의 파티션들에 할당된다(S405). 이때 할당을 위해 요청된 메모리의 크기는 RANK들의 크기의 배수가 아닐 수 있기 때문에, 서비스 프로세서 펌웨어는 대신 RANK의 배수 크기와 가장 가까운 크기를 갖는 양의 메모리를 서치하여 스크럽할 수 있다는 사실을 유념해야 한다.
도면의 흐름도와 블록도는 본 발명의 다양한 실시 예들에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 가능한 구현 예들의 구성, 기능 및 동작을 설명한다. 이 점에서, 흐름도의 각각의 블록 또는 블록도들은 모듈, 세그먼트, 또는 코드의 일부를 나타내며, 명시된 논리적인 기능(들)을 수행하기 위해 실행가능한 하나 이상의 명령어들을 포함한다. 몇몇 다른 실시 예들에서는, 블록에 언급된 기능들이 도면에서 나타난 순서와 다르게 수행될 수 있음을 유념해야 한다. 예를 들어, 연속하여 도시된 두 개의 블록들은 사실, 관련된 기능에 따라, 주로 병행해서 실행되거나, 때로는 순서를 바꾸어 실행될 수 있다. 또한 블록도들의 각 블록 및/또는 흐름도 설명, 그리고 블록도들에서 블록의 결합 및/또는 흐름도 설명은, 명시된 기능 또는 작용, 또는 그것들의 결합을 수행하는 특수 목적의 하드웨어-기반 시스템에 의해 구현될 수 있다.
비록 본 발명은 하나 또는 그 이상의 실시 예들과 그것의 변형 예들에 관해 특별히 도시하고, 자세히 설명했지만, 당해 기술분야의 숙련자들은 첨부된 특허청구범위의 사상과 범위를 벗어나지 않고도 형식과 세부사항에 있어서 균등범위에 속하는 여러 변형 예들이 가능함을 이해해야 한다. 또한 이러한 정도의 변형 예들은 첨부된 특허청구범위 및 그들의 균등범위에 내에 들어오며, 이러한 변형 예들은 본 특허에 의해 커버되는 것으로 의도된다.

Claims (25)

  1. 시스템의 기동 시간(wake-up time)을 가속화하는(accelerating) 방법에 있어서, 상기 방법은:
    최소 량의 메모리(a minimum amount of memory)를 스크럽하여(scrubbing) 할당을 위해 이용 가능하게 하는 단계;
    상기 시스템상에 저장된 운영 시스템의 부트-업 동작(boot-up operation)을 실행하는 단계; 및
    상기 운영 시스템의 부트-업 동작과 병행해서 그리고 이후에, 추가 량의 메모리(an additional amount of memory)를 스크럽하여 할당을 위해 이용 가능하게 하는 단계를 포함하는
    방법.
  2. 제 1항에서, 상기 시스템은:
    복수의 메모리 유닛들;
    자신과 연관된(associated therewith) 최소 노드 자원 구성(minimum node resource configuration)을 갖는, 적어도 하나의 노드 ;
    상기 적어도 하나의 노드에 포함된 적어도 하나의 프로세서;
    상기 적어도 하나의 프로세서에 포함된 적어도 하나의 코어(core); 및
    상기 적어도 하나의 코어를 인터페이스 하는 적어도 하나의 메모리 컨트롤러를 포함하되,
    상기 적어도 하나의 메모리 컨트롤러는 복수의 메모리 유닛들 중 적어도 하나를 제어하고, 그리고 상기 최소 노드 자원 구성은, 상기 적어도 하나의 노드를 활성화하기 위해 상기 복수의 메모리 유닛들 중 하나 또는 그 이상에서 스크럽되어(scrubbed) 적어도 하나의 노드에 할당되어야 하는, 최소 량의 메모리에 대응하는
    방법.
  3. 제 1항에서, 상기 시스템은:
    복수의 메모리 유닛들;
    각각이 자신과 연관된 최소 노드 자원 구성을 갖는, 복수의 노드들;
    상기 복수의 노드들 중 적어도 하나를 포함하는 적어도 하나의 논리 파티션(logical partition);
    상기 복수의 노드들 각각에 포함된 복수의 프로세서들;
    상기 복수의 프로세서들 각각에 포함된 복수의 코어들; 및
    복수의 메모리 컨트롤러들을 포함하되,
    상기 복수의 코어들 각각은 상기 복수의 메모리 컨트롤러들 중 적어도 하나를 인터페이스 하고, 상기 복수의 메모리 컨트롤러들 각각은 상기 메모리 유닛들 중 적어도 하나를 제어하고, 그리고 상기 최소 노드 자원 구성은, 노드를 활성화하기 위해 활성화될 것이 요구되는 노드에 포함된, 최소 수의 프로세서들에 대응하는
    방법.
  4. 제 3항에서, 노드와 연관된 상기 최소 노드 자원 구성은 최소 수의 프로세서들을 활성화하기 위해 활성화될 것이 요구되는 최소 수의 코어들에도 대응하는
    방법.
  5. 제 4항에서, 노드와 연관된 상기 최소 노드 자원 구성은 최소 수의 코어들을 활성화하기 위해 인에이블 될 것(to be enabled)이 요구되는 최소 수의 메모리 컨트롤러들에도 대응하는
    방법.
  6. 제 5항에서,
    상기 복수의 메모리 컨트롤러들 각각은 초기에 디스에이블 상태(disabled state)에 있고, 그리고 메모리 컨트롤러는, 상기 메모리 컨트롤러가 제어하는 적어도 하나의 메모리 유닛 내의 최소량의 메모리가 스크럽되는 조건에서, 인에이블되는(enabled)
    방법.
  7. 제 3항에서, 상기 시스템은:
    각각이 적어도 하나의 노드를 갖는, 복수의 파티션들을 더 포함하되,
    상기 복수의 파티션들 각각은 다른 파티션들과의 관계에서 우선순위를 할당 받고, 상기 복수의 파티션들은 상기 할당된 우선순위에 기초하여 계속적으로 (successively) 활성화되는
    방법.
  8. 제 7항에서,
    파티션의 메모리 자원 수요를 충족시키기 위해 충분한 양의 스크럽된 메모리가 할당을 위해 이용 가능한 조건에서 파티션을 활성화하는 단계를 더 포함하는
    방법.
  9. 제 8항에서,
    파티션을 활성화하기 전에, 상기 파티션의 메모리 자원 수요를, 스크럽되어 할당을 위해 이용 가능하게 된 메모리의 양과 비교하는 단계를 더 포함하되,
    상기 스크럽되어 할당을 위해 이용 가능하게 된 메모리의 양이 상기 파티션의 메모리 자원 수요를 충족시키기에 충분한 조건에서는, 상기 스크럽된 메모리가 상기 파티션에 포함된 하나 또는 그 이상의 노드들 중에 할당되어서, 상기 파티션이 활성화되고, 그리고
    상기 스크럽되어 할당을 위해 이용 가능하게 된 메모리의 양이 상기 파티션의 메모리 자원 수요를 충족시키기에 충분하지 않은 조건에서는, 추가 량의 메모리가 스크럽되어, 상기 파티션의 메모리 자원 수요를 충족시키기에 충분한 스크럽된 메모리의 총량이 상기 파티션에 포함된 하나 또는 그 이상의 노드들 중에 할당되어서, 상기 파티션이 활성화되는
    방법.
  10. 제 7항에서,
    상기 운영 시스템의 부트-업 동작의 실행과 병행해서 그리고 이후에, 추가적인 메모리가 스크럽되어, 파티션에 포함된 하나 또는 그 이상의 노드들에 기준에 따라(based on criteria) 할당되는
    방법.
  11. 제 10항에서,
    상기 기준(criteria)은 파티션에 할당된 우선순위 및 메모리의 추가 할당을 위한 파티션의 요구 중 적어도 하나를 포함하는
    방법.
  12. 제 1항에서,
    스크럽되는 상기 추가 메모리는 사용된 메모리(used memory)를 포함하는
    방법.
  13. 시스템에서,
    복수의 메모리 유닛들;
    메모리 유닛 내의 메모리를 스크럽하여 상기 메모리를 할당을 위해 이용 가능하게 하도록 구성된, 스크러빙 유닛(scrubbing unit); 및
    운영 시스템을 포함하되,
    상기 스크러빙 유닛은 최소량의 메모리를 스크럽하여 할당을 위해 이용 가능하게 하고, 상기 운영 시스템의 부트-업 동작은 상기 최소량의 메모리를 스크럽하여 할당을 위해 이용 가능하게 한 후에 실행되며, 그리고
    상기 스크러빙 유닛은 상기 운영 시스템의 부트-업 동작의 실행과 병행해서 그리고 이후에, 추가 량의 메모리를 스크럽하여 할당을 위해 이용 가능하게 하는
    시스템.
  14. 제 13항에서,
    자신과 연관된 최소 노드 자원 구성을 갖는, 적어도 하나의 노드;
    상기 적어도 하나의 노드에 포함된 적어도 하나의 프로세서;
    상기 적어도 하나의 프로세서에 포함된 적어도 하나의 코어;
    상기 적어도 하나의 코어를 인터페이스 하는 적어도 하나의 메모리 컨트롤러를 더 포함하되,
    상기 적어도 하나의 메모리 컨트롤러는 복수의 메모리 유닛들 중 적어도 하나를 제어하고, 그리고 상기 최소 노드 자원 구성은, 상기 노드를 활성화하기 위해 상기 스크러빙 유닛(scrubbing unit)에 의해 스크럽되어(scrubbed) 상기 적어도 하나의 노드에 할당되기 위해 이용 가능하게 되어야 하는, 최소 량의 메모리에 대응하는(correspond)
    시스템.
  15. 제 13항에서,
    각각이 자신과 연관된 최소 노드 자원 구성을 갖는, 복수의 노드들;
    상기 복수의 노드들 중 적어도 하나를 포함하는 적어도 하나의 파티션;
    상기 복수의 노드들 각각에 포함된 복수의 프로세서들;
    상기 복수의 프로세서들 각각에 포함된 복수의 코어들; 및
    복수의 메모리 컨트롤러들을 더 포함하되,
    상기 복수의 코어들 각각은 상기 복수의 메모리 컨트롤러들 중 적어도 하나를 인터페이스 하고, 상기 복수의 메모리 컨트롤러들 각각은 상기 메모리 유닛들 중 적어도 하나를 제어하고, 그리고 상기 최소 노드 자원 구성은 노드를 활성화하기 위해 활성화될 것이 요구되는 노드에 포함된 최소 수의 프로세서들에 대응하는
    시스템.
  16. 제 15항에서, 노드와 연관된 상기 최소 노드 자원 구성은 최소 수의 프로세서들을 활성화하기 위해 활성화될 것이 요구되는 최소 수의 코어들에 대응하는
    시스템.
  17. 제 16항에서, 노드와 연관된 상기 최소 노드 자원 구성은 최소 수의 코어들을 활성화하기 위해 인에이블 될 것(to be enabled)이 요구되는 최소 수의 메모리 컨트롤러들에도 대응하는
    시스템.
  18. 제 17항에서,
    상기 복수의 메모리 컨트롤러들 각각은 초기에 디스에이블 상태(disabled state)에 있고, 그리고 메모리 컨트롤러는 자신이 제어하는 복수의 메모리 유닛들 중 적어도 하나의 유닛 내의 최소량의 메모리를 스크러빙 유닛이 스크럽하는 조건에서 인에이블되는(enabled)
    시스템.
  19. 제 15항에서,
    각각이 적어도 하나의 노드를 갖는, 복수의 파티션들을 더 포함하되,
    상기 복수의 파티션들 각각은 다른 파티션들과의 관계에서 우선순위를 할당 받고, 상기 복수의 파티션들은 상기 할당된 우선순위에 기초하여 계속적으로 활성화되는
    시스템.
  20. 제 19항에서,
    파티션은, 파티션의 메모리 자원 수요를 충족시키기 위해 충분한 양의 메모리가 스크러빙 유닛에 의해 스크럽되어 할당을 위해 이용 가능하게 된 조건에서, 활성화되는
    시스템.
  21. 제 20항에서,
    파티션을 활성화하기 전에, 상기 파티션의 메모리 자원 수요를, 상기 스크러빙 유닛에 의해 스크럽되어 할당을 위해 이용 가능하게 된 메모리 양과 비교하되,
    스크럽되어 할당을 위해 이용 가능하게 된 메모리의 양이 상기 파티션의 메모리 자원 수요를 충족시키기에 충분한 조건에서는, 상기 스크럽된 메모리가 상기 파티션에 포함된 하나 또는 그 이상의 노드들 중에 할당되어서, 상기 파티션이 활성화되고, 그리고
    상기 스크러빙 유닛에 의해 스크럽되어 할당을 위해 이용 가능하게 된 메모리의 양이 상기 파티션의 메모리 자원 수요를 충족시키기에 충분하지 않은 조건에서는, 상기 스크러빙 유닛이 추가 량의 메모리를 스크럽하여 상기 파티션의 메모리 자원 수요를 총족시키기에 충분한 스크럽된 메모리의 총량이 상기 파티션에 포함된 하나 또는 그 이상의 노드들 중에 할당되도록 하여서, 상기 파티션이 활성화되는
    시스템.
  22. 제 19항에서,
    상기 운영 시스템의 부트-업 동작의 실행과 병행해서 그리고 이후에, 상기 스크러빙 유닛이 추가 량의 메모리를 스크럽하여 상기 파티션에 포함된 하나 또는 그 이상의 노드들에 기준(criteria)에 따라 할당하는
    시스템.
  23. 제 22항에서,
    상기 기준(criteria)은 파티션에 할당된 우선순위 및 메모리의 추가 할당을 위한 파티션의 요구 중 적어도 하나를 포함하는
    시스템.
  24. 컴퓨터가 시스템의 기동 시간을 가속화하는 프로세스를 수행하게 하는 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 매체에 있어서, 상기 프로세스는:
    최소량의 메모리를 스크럽하여(scrubbing) 할당을 위해 이용 가능하게 하는 단계;
    상기 시스템상에 저장된 운영 시스템의 부트-업 동작(boot-up operation)을 실행하는 단계; 및
    상기 운영 시스템의 부트-업 동작과 병행해서 그리고 이후에, 추가 량의 메모리를 스크럽하여(scrubbing) 할당을 위해 이용 가능하게 하는 단계를 포함하는
    컴퓨터 판독가능 매체.
  25. 제 24항에서,
    상기 시스템은:
    복수의 노드들 - 상기 복수의 노드들 각각은 자신과 연관된 최소 노드 자원 구성을 가져서 상기 노드가 상기 최소 노드 자원 구성이 설정된(established) 조건에서 활성화되도록 함 -, 및
    각각이 상기 복수의 노드들 중 적어도 하나를 갖는, 복수의 파티션들을 포함하되,
    상기 복수의 파티션들 각각은 다른 파티션들과의 관계에서 우선 순위가 할당 되고, 상기 복수의 파티션들은 상기 할당된 우선순위에 기초하여 계속적으로 활성화되는
    컴퓨터 판독가능 매체.
KR1020100119598A 2009-11-30 2010-11-29 시스템의 기동 시간을 가속화하는 방법 KR20110060835A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/627,237 US8402259B2 (en) 2009-11-30 2009-11-30 Accelerating wake-up time of a system
US12/627,237 2009-11-30

Publications (1)

Publication Number Publication Date
KR20110060835A true KR20110060835A (ko) 2011-06-08

Family

ID=44069723

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100119598A KR20110060835A (ko) 2009-11-30 2010-11-29 시스템의 기동 시간을 가속화하는 방법

Country Status (5)

Country Link
US (1) US8402259B2 (ko)
JP (1) JP5669531B2 (ko)
KR (1) KR20110060835A (ko)
CN (1) CN102081574B (ko)
TW (1) TW201140442A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141436B2 (en) 2011-09-26 2015-09-22 Samsung Electronics Co., Ltd. Apparatus and method for partition scheduling for a processor with cores

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412479B2 (en) * 2010-06-29 2013-04-02 Intel Corporation Memory power estimation by means of calibrated weights and activity counters
JP5994690B2 (ja) * 2013-03-14 2016-09-21 富士通株式会社 情報処理装置、プログラムおよび記憶領域獲得方法
GB2523568B (en) * 2014-02-27 2018-04-18 Canon Kk Method for processing requests and server device processing requests
CN105814541B (zh) * 2014-11-10 2019-08-02 华为技术有限公司 计算机设备及计算机设备内存启动的方法
US9886083B2 (en) 2014-12-19 2018-02-06 International Business Machines Corporation Event-driven reoptimization of logically-partitioned environment for power management
US9811345B2 (en) * 2015-04-16 2017-11-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Utilizing computing resources under a disabled processor node without fully enabling the disabled processor node
KR20160146055A (ko) * 2015-06-11 2016-12-21 현대자동차주식회사 차량 네트워크에서 통신 노드의 동작방법
US10055236B2 (en) * 2015-07-02 2018-08-21 Sandisk Technologies Llc Runtime data storage and/or retrieval
US9864537B2 (en) * 2016-04-21 2018-01-09 International Business Machines Corporation Memory system power management
US10346177B2 (en) * 2016-12-14 2019-07-09 Intel Corporation Boot process with parallel memory initialization
US10678635B2 (en) * 2018-01-08 2020-06-09 Intel Corporation Memory management
CN111132282B (zh) 2018-11-01 2021-06-01 华为终端有限公司 一种应用于移动终端的应用处理器唤醒方法及装置
US20200341776A1 (en) * 2020-07-07 2020-10-29 Krishnaprasad H Apparatus for initializing memory using a hardware engine for minimizing boot time
US20230305725A1 (en) * 2022-03-24 2023-09-28 Nxp Usa, Inc. Memory configuration within a data processing system

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4015A (en) * 1845-04-26 Hand-loom for weaving figured fabrics
JPS62226216A (ja) * 1986-03-27 1987-10-05 Nec Corp システム立上げ方式
US6314501B1 (en) * 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6158000A (en) * 1998-09-18 2000-12-05 Compaq Computer Corporation Shared memory initialization method for system having multiple processor capability
US6381715B1 (en) * 1998-12-31 2002-04-30 Unisys Corporation System and method for performing parallel initialization and testing of multiple memory banks and interfaces in a shared memory module
US7143321B1 (en) * 2000-04-29 2006-11-28 Hewlett-Packard Development Company, L.P. System and method for multi processor memory testing
US6633965B2 (en) * 2001-04-07 2003-10-14 Eric M. Rentschler Memory controller with 1×/M× read capability
US7107493B2 (en) * 2003-01-21 2006-09-12 Hewlett-Packard Development Company, L.P. System and method for testing for memory errors in a computer system
US20040158701A1 (en) * 2003-02-12 2004-08-12 Dell Products L.P. Method of decreasing boot up time in a computer system
US7065688B1 (en) * 2003-02-19 2006-06-20 Advanced Micro Devices, Inc. Simultaneous multiprocessor memory testing and initialization
US7334159B1 (en) * 2003-09-29 2008-02-19 Rockwell Automation Technologies, Inc. Self-testing RAM system and method
US20050283566A1 (en) * 2003-09-29 2005-12-22 Rockwell Automation Technologies, Inc. Self testing and securing ram system and method
US7539909B2 (en) * 2003-09-30 2009-05-26 Intel Corporation Distributed memory initialization and test methods and apparatus
US7313681B2 (en) * 2003-11-20 2007-12-25 International Business Machines Corporation Apparatus, system, and method for adapter fastload
US7251744B1 (en) * 2004-01-21 2007-07-31 Advanced Micro Devices Inc. Memory check architecture and method for a multiprocessor computer system
US7246269B1 (en) * 2004-05-05 2007-07-17 Advanced Micro Devices, Inc. Efficient memory check architecture and method
EP1794979B1 (en) * 2004-09-10 2017-04-12 Cavium, Inc. Selective replication of data structure
US20080195836A1 (en) * 2005-02-23 2008-08-14 Hewlett-Packard Development Company, L.P. Method or Apparatus for Storing Data in a Computer System
US7487222B2 (en) * 2005-03-29 2009-02-03 International Business Machines Corporation System management architecture for multi-node computer system
US7555677B1 (en) * 2005-04-22 2009-06-30 Sun Microsystems, Inc. System and method for diagnostic test innovation
JP2007140920A (ja) * 2005-11-18 2007-06-07 Kyocera Mita Corp 画像形成装置
JP4817115B2 (ja) * 2006-03-30 2011-11-16 日本電気株式会社 コンピュータシステム、並列初期化方法、及びブートプログラム
US20070283104A1 (en) * 2006-05-31 2007-12-06 International Business Machines Corporation Concurrent Hardware Selftest for Central Storage
US7711941B2 (en) * 2006-12-19 2010-05-04 Lsi Corporation Method and apparatus for booting independent operating systems in a multi-processor core integrated circuit
US8245101B2 (en) * 2007-12-27 2012-08-14 Sandisk Enterprise Ip Llc Patrol function used in flash storage controller to detect data errors
US7987336B2 (en) * 2008-05-14 2011-07-26 International Business Machines Corporation Reducing power-on time by simulating operating system memory hot add

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141436B2 (en) 2011-09-26 2015-09-22 Samsung Electronics Co., Ltd. Apparatus and method for partition scheduling for a processor with cores

Also Published As

Publication number Publication date
US8402259B2 (en) 2013-03-19
TW201140442A (en) 2011-11-16
JP5669531B2 (ja) 2015-02-12
CN102081574B (zh) 2014-11-05
CN102081574A (zh) 2011-06-01
JP2011118900A (ja) 2011-06-16
US20110131399A1 (en) 2011-06-02

Similar Documents

Publication Publication Date Title
KR20110060835A (ko) 시스템의 기동 시간을 가속화하는 방법
US9009580B2 (en) System and method for selective error checking
US10152393B2 (en) Out-of-band data recovery in computing systems
US7945815B2 (en) System and method for managing memory errors in an information handling system
CN110083494B (zh) 在多核心环境中管理硬件错误的方法和装置
US20180107596A1 (en) Battery-based data persistence management in computing systems
US10754737B2 (en) Boot assist metadata tables for persistent memory device updates during a hardware fault
EP3033680B1 (en) Memory migration in presence of live memory traffic
US10395750B2 (en) System and method for post-package repair across DRAM banks and bank groups
US10168936B2 (en) Memory system power management
US7418367B2 (en) System and method for testing a cell
US11010250B2 (en) Memory device failure recovery system
US9147499B2 (en) Memory operation of paired memory devices
KR20220116208A (ko) 비휘발성 메모리 모듈에 대한 에러 보고
US11144380B2 (en) Memory controller and storage device including the same
US11221931B2 (en) Memory system and data processing system
US11734176B2 (en) Sub-NUMA clustering fault resilient memory system
US8964495B2 (en) Memory operation upon failure of one of two paired memory devices
US20220350715A1 (en) Runtime sparing for uncorrectable errors based on fault-aware analysis
US20110055514A1 (en) Method and system for preferred cpu binding on virtual partitions
KR20210058609A (ko) Numa 시스템에서 메모리 버스에 연결하여 사용하는 저장장치의 할당 방법
EP3646202A1 (en) Dynamically configurable storage clusters

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid