KR20170121056A - 동적 VSoC를 위한 방법 및 장치 - Google Patents

동적 VSoC를 위한 방법 및 장치 Download PDF

Info

Publication number
KR20170121056A
KR20170121056A KR1020170044516A KR20170044516A KR20170121056A KR 20170121056 A KR20170121056 A KR 20170121056A KR 1020170044516 A KR1020170044516 A KR 1020170044516A KR 20170044516 A KR20170044516 A KR 20170044516A KR 20170121056 A KR20170121056 A KR 20170121056A
Authority
KR
South Korea
Prior art keywords
resource
vsocs
resources
predetermined
event
Prior art date
Application number
KR1020170044516A
Other languages
English (en)
Other versions
KR102362826B1 (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 KR20170121056A publication Critical patent/KR20170121056A/ko
Priority to KR1020220013485A priority Critical patent/KR102516167B1/ko
Application granted granted Critical
Publication of KR102362826B1 publication Critical patent/KR102362826B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

프로세서 디바이스는 복수의 VSoC (virtual systems on chip) 와 복수의 리소스들 사이의 리소스 정렬에 따라 복수의 리소스들의 리소스들을 활용하도록 구성된, 복수의 VSoC를 포함한다. 프로세서 디바이스는 적어도 하나의 이벤트에 응답하여 리소스 정렬을 동적으로 수정하도록 구성된 리소스 정렬 유닛을 더 포함할 수도 있다. 리소스 정렬을 동적으로 수정하는 것은 그렇지 않으면 적어도 하나의 이벤트에 의해 유발된 쓰루풋 손실을 방지할 수도 있다.

Description

동적 VSoC를 위한 방법 및 장치{METHOD AND APPARATUS FOR DYNAMIC VIRTUAL SYSTEM ON CHIP}
가상 머신은 물리적 머신과 유사하게 동작하는 물리적 머신의 소프트웨어 구현예이다. 복수의 가상 머신들은 근본적인 물리적 머신 리소스들의 공유를 허용하도록 물리적 머신 상에서 구현될 수도 있다.
일 예시적인 실시예에 따라, 프로세서 디바이스는 복수의 VSoC (virtual systems on chip) 와 복수의 리소스들 사이의 리소스 정렬에 따라 복수의 리소스들의 리소스들을 활용하도록 구성된, 복수의 VSoC를 포함할 수도 있다. 프로세서 디바이스는 적어도 하나의 이벤트에 응답하여 리소스 정렬을 동적으로 조정하도록 구성된 리소스 정렬 유닛을 더 포함할 수도 있다.
리소스 정렬 유닛은 적어도 하나의 이벤트에 응답하여 프로세서 디바이스의 쓰루풋을 유발하도록 (effectuate) 리소스 정렬을 동적으로 조정하도록 더 구성될 수도 있다.
프로세서 디바이스는 리소스 정렬 유닛에 동작하게 커플링되고 리소스 정렬에 적어도 하나의 조정에 응답하여 조정된 리소스 정렬을 동적으로 적용하도록 구성된 구성 유닛을 더 포함할 수도 있다.
구성 유닛은 리소스 정렬 유닛이 리소스 정렬을 조정했다는 것을 검출하도록 더 구성될 수도 있다.
구성 유닛은 리소스 정렬 유닛이 리소스 정렬을 조정했다는 것을 나타내는 리소스 정렬 유닛으로부터의 전달을 수신하도록 더 구성될 수도 있다.
조정된 리소스 정렬을 동적으로 적용하기 위해, 구성 유닛은 조정된 리소스 정렬에 따라 리소스들을 활용하게 복수의 VSoC를 집행하게 (enforce) 프로세서 디바이스의 구성을 업데이트하도록 더 구성될 수도 있다.
적어도 하나의 조정은 복수의 VSoC 중 미리 결정된 VSoC와 복수의 리소스들 중 미리 결정된 리소스 사이의 정렬에 대한 조정을 포함할 수도 있다. 구성 유닛은 미리 결정된 리소스의 사용을 포기하는 미리 결정된 VSoC에 기초하여 또는 구성 유닛에 적용된 미리 결정된 시간 값의 만료에 기초하여 적어도 하나의 조정을 적용하도록 더 구성될 수도 있다.
프로세서 디바이스는 리소스 정렬 유닛에 동작하게 커플링된 모니터링 유닛을 더 포함할 수도 있다. 모니터링 유닛은 적어도 하나의 이벤트의 적어도 하나의 경우 (instance) 를 모니터링하고 리소스 정렬을 동적으로 조정하도록 리소스 정렬 유닛을 트리거링하기 위해 적어도 하나의 이벤트의 적어도 하나의 경우를 리소스 정렬 유닛으로 전달하도록 구성될 수도 있다.
적어도 하나의 이벤트의 적어도 하나의 경우를 모니터링하기 위해, 적어도 하나의 모니터링 유닛은 복수의 리소스들 중 적어도 하나의 리소스의 상태 또는 복수의 VSoC 중 적어도 하나의 가상 시스템 상태를 모니터링하도록 더 구성될 수도 있다.
적어도 하나의 리소스의 상태는 고장 상태, 활용 상태, 또는 이들의 조합을 포함할 수도 있다.
적어도 하나의 가상 시스템 상태는 고장 상태, 활용 상태, 또는 이들의 조합을 포함할 수도 있다.
리소스 정렬은 복수의 리소스들과 복수의 VSoC 간의 복수의 맵핑들을 포함할 수도 있다. 리소스 정렬을 동적으로 조정하기 위해, 리소스 정렬 유닛은 적어도 하나의 이벤트에 응답하여 복수의 맵핑들 중 적어도 하나의 맵핑을 동적으로 조정하도록 더 구성될 수도 있다.
적어도 하나의 맵핑은 복수의 리소스들 중 미리 결정된 리소스를, 복수의 VSoC 중 미리 결정된 VSoC와 정렬할 수도 있다. 적어도 하나의 맵핑을 동적으로 조정하는 것은, 미리 결정된 VSoC가 미리 결정된 리소스를 채용하는 것을 방해하도록 그리고 복수의 VSoC 중 적어도 하나의 다른 VSoC로 하여금 미리 결정된 리소스를 채용하게 하도록 적어도 하나의 다른 VSoC와 미리 결정된 리소스를 정렬하는 것을 포함할 수도 있다.
리소스 정렬을 동적으로 조정하기 위해, 리소스 정렬 유닛은 적어도 하나의 맵핑을 리소스 정렬에 부가하도록 더 구성될 수도 있고, 적어도 하나의 맵핑은 복수의 VSoC 중 일 VSoC와 복수의 리소스들 중 일 리소스를 정렬한다.
리소스 정렬은 복수의 리소스들과 복수의 VSoC 사이의 복수의 맵핑들을 포함할 수도 있고, 리소스 정렬을 동적으로 조정하기 위해, 복수의 맵핑들로부터 적어도 하나의 맵핑을 제거하는 것을 포함할 수도 있다.
리소스 정렬은 복수의 VSoC 중 다수의 VSoC로 하여금 복수의 리소스들 중 미리 결정된 리소스를 공유하게 인에이블할 수도 있다.
복수의 VSoC 중 다수의 VSoC는 각각 미리 결정된 리소스에 대해 각각의 VSoC에 할당된 각각의 사용량 백분율에 기초하여 미리 결정된 리소스를 사용하도록 구성될 수도 있다.
리소스 정렬은 복수의 VSoC 중 미리 결정된 VSoC로 하여금 미리 결정된 리소스를 독점적으로 사용하게 인에이블할 수도 있다.
적어도 하나의 이벤트는 프로세서 디바이스 외부에서 발생하는 외부 이벤트를 포함할 수도 있다.
적어도 하나의 이벤트는 시각에 기초하는 미리 스케줄링된 이벤트를 포함할 수도 있다.
적어도 하나의 이벤트는 복수의 리소스들 중 미리 결정된 리소스의 오작동을 나타내는 고장 이벤트를 포함할 수도 있다.
적어도 하나의 이벤트는 복수의 리소스들 중 적어도 하나의 리소스가 오버서브스크립되었다는 (oversubscribed) 것을 나타내거나 복수의 VSoC 중 적어도 하나의 VSoC가 오버서브스크립되었다는 것을 나타내는 오버서브스크립션 이벤트를 포함할 수도 있다.
적어도 하나의 이벤트는 복수의 VSoC 중 미리 결정된 VSoC에 할당된 복수의 리소스들 중 미리 결정된 리소스가 문턱값 이하인 미리 결정된 VSoC에 의한 사용량 백분율을 갖는다는 것을 나타내는 유휴 이벤트를 포함할 수도 있다.
리소스 정렬은 적어도 하나의 이벤트에 의해 유발되지 않으면 쓰루풋의 손실을 방지하도록 동적으로 조정될 수도 있다.
다른 예시적인 실시예에 따라, 방법은 복수의 VSoC와 복수의 리소스들 사이의 리소스 정렬에 따라 복수의 리소스들의 리소스들을 활용하도록 프로세서 디바이스의 복수의 VSoC를 구성하는 단계를 포함할 수도 있다. 방법은 적어도 하나의 이벤트에 응답하여 리소스 정렬을 동적으로 조정하는 단계를 더 포함할 수도 있다.
적어도 하나의 이벤트에 응답하여 리소스 정렬을 동적으로 조정하는 단계는 적어도 하나의 이벤트에 응답하여 프로세서 디바이스의 쓰루풋을 유발할 수도 있다.
방법은 리소스 정렬에 대한 적어도 하나의 조정에 응답하여 동적으로 조정된 리소스를 적용하는 단계를 더 포함할 수도 있다.
방법은 리소스 정렬에 대한 적어도 하나의 조정을 검출하는 단계를 더 포함할 수도 있다.
방법은 리소스 정렬에 대한 적어도 하나의 조정의 전달을 수신하는 단계를 더 포함할 수도 있다.
방법은 조정된 리소스 정렬에 따라 리소스들을 활용하도록 복수의 VSoC를 집행하게 프로세서 디바이스의 구성을 업데이트하는 단계를 더 포함할 수도 있다.
적어도 하나의 조정은 복수의 VSoC 중 미리 결정된 VSoC와 복수의 리소스들 중 미리 결정된 리소스 사이의 정렬에 대한 조정을 포함할 수도 있다. 적어도 하나의 조정을 적용하는 단계는 미리 결정된 리소스의 사용을 포기하는 미리 결정된 VSoC에 기초하거나 구성 유닛에 적용된 미리 결정된 시간 값의 만료에 기초할 수도 있다.
방법은 적어도 하나의 이벤트의 적어도 하나의 경우를 모니터링하는 단계 및 리소스 정렬의 동적 조정을 트리거링하도록 적어도 하나의 이벤트의 적어도 하나의 경우를 전달하는 단계를 더 포함할 수도 있다.
모니터링하는 단계는 복수의 리소스들 중 적어도 하나의 리소스의 상태 또는 복수의 VSoC의 적어도 하나의 VSoC 상태를 모니터링하는 단계를 포함할 수도 있다.
리소스 정렬은 복수의 리소스들과 복수의 VSoC 간의 복수의 맵핑들을 포함할 수도 있고, 그리고 리소스 정렬을 동적으로 조정하는 단계는, 적어도 하나의 이벤트에 응답하여, 복수의 맵핑들 중 적어도 하나의 맵핑을 동적으로 조정하는 단계를 포함할 수도 있다.
적어도 하나의 맵핑은 복수의 리소스들 중 미리 결정된 리소스를 복수의 VSoC 중 미리 결정된 VSoC와 정렬할 수도 있다. 적어도 하나의 맵핑을 동적으로 조정하는 단계는, 미리 결정된 VSoC가 미리 결정된 리소스를 채용하는 것을 방해하도록 그리고 복수의 VSoC 중 적어도 하나의 다른 VSoC로 하여금 미리 결정된 리소스를 채용하게 하도록 적어도 하나의 다른 VSoC와 미리 결정된 리소스를 정렬하는 단계를 포함할 수도 있다.
리소스 정렬을 동적으로 조정하는 것은, 적어도 하나의 맵핑을 리소스 정렬에 부가하는 단계를 포함할 수도 있고, 적어도 하나의 맵핑은 복수의 VSoC 중 일 VSoC와 복수의 리소스들 중 일 리소스를 정렬할 수도 있다.
리소스 정렬은 복수의 리소스들과 복수의 VSoC 사이의 복수의 맵핑들을 포함할 수도 있고, 그리고 리소스 정렬을 동적으로 조정하는 단계는 복수의 맵핑들로부터 적어도 하나의 맵핑을 제거하는 단계를 포함할 수도 있다.
방법은 리소스 정렬에 기초하여 복수의 VSoC 중 다수의 VSoC로 하여금 복수의 리소스들 중 미리 결정된 리소스를 공유하게 인에이블하는 단계를 더 포함할 수도 있다.
다수의 VSoC를 인에이블하는 단계는 미리 결정된 리소스에 대해 각각의 VSoC에 할당된 각각의 사용량 백분율에 기초하여 미리 결정된 리소스를 사용하도록 다수의 VSoC를 구성하는 단계를 포함할 수도 있다.
방법은 리소스 정렬에 기초하여, 복수의 VSoC 중 미리 결정된 VSoC로 하여금 미리 결정된 리소스를 독점적으로 사용하도록 인에이블하는 단계를 더 포함할 수도 있다.
상기 리소스 정렬을 동적으로 조정하는 단계는 적어도 하나의 이벤트에 의해 유발되지 않으면 쓰루풋의 손실을 방지할 수도 있다.
또 다른 예시적인 실시예는 프로세서 디바이스에 의해 로딩되고 실행될 때, 프로세서 디바이스로 하여금 본 명세서에 개시된 방법들을 완료하게 하는 인스트럭션들의 시퀀스가 저장되는, 비일시적인 컴퓨터 판독가능 매체를 포함할 수도 있다.
본 명세서에 개시된 실시예들은 방법, 장치, 시스템 또는 프로그램 코드들이 구현된 컴퓨터 판독가능 매체의 형태로 구현될 수 있다는 것이 이해되어야 한다.
전술한 바는 상이한 도면들에 걸쳐 유사한 문자들이 유사한 부품을 참조하는 첨부된 도면들에 예시된 바와 같이, 이하의 본 발명의 예시적인 실시예들의 보다 구체적인 기술로부터 자명해질 것이다. 도면들은 스케일링될 필요는 없고, 대신 본 발명의 실시예들을 예시할 때 강조가 이루어진다.
도 1은 프로세서 디바이스의 예시적인 실시예의 블록도이다.
도 2는 프로세서 디바이스의 또 다른 예시적인 실시예의 블록도이다.
도 3은 리소스 정렬의 예시적인 실시예의 블록도이다.
도 4는 리소스 정렬의 또 다른 예시적인 실시예의 블록도이다.
도 5는 방법의 예시적인 실시예의 흐름도이다.
도 6은 본 명세서에 개시된 실시예 내에서 선택가능한 컴퓨터의 예시적인 내부 구조의 블록도이다.
VSoC (virtual systems on chip) 는 상이한 가상 시스템들 간의 근본적인 물리적 머신 리소스들의 공유를 허용하는 머신의 구현예이다. VSoC 구현예 하에서, 다수의 OS (operating system) 애플리케이션들이 서로 완전한 분리 및 보호로 동일한 물리적 머신 상에 공존할 수 있다. 상이한 가상 시스템들 간의 물리적 머신 리소스들의 할당은 하드웨어 특징 및 소프트웨어 특징의 조합을 사용하여 수행될 수도 있다.
다수의 VSoC 간에 리소스들을 할당함으로써, 본 명세서에 개시된 실시예들은 다수의 VSoC 사이에 보호와 함께 리소스들의 공유를 인에이블하는 동안 다수의 임베딩된 애플리케이션들 및 OS 온 어 칩 (operating systems on a chip) 을 실행하기 위해 제공될 수도 있다.
프로세서 디바이스는 라우터들, 스위치들, 보안 기기들 (security appliances), 콘텐트-인식 스위치들 (content-aware switches), 트리플-플레이 게이트웨이들, 집합 디바이스들 및 게이트웨이들, 스토리지 어레이들, 스토리지 네트워킹 장비, 및 서버들 또는 가상화로부터 이점을 얻을 수도 있는 임의의 다른 적합한 장치 또는 시스템을 포함하여 광범위한 네트워킹 및 스토리지 장비에 사용될 수도 있다. 본 명세서에 개시된 실시예들에 따라, 프로세서 디바이스의 VSoC는, 어느 리소스들이 프로세서 디바이스의 VSoC에 의해 사용하기 위해 할당되는지 규정하는 리소스 정렬에 기초하여 VSoC에 할당된 리소스들을 활용할 수도 있다. 리소스들은 프로세싱 코어들, 메모리들, 캐시들, I/O (input/output) 포트들, I/O 디바이스들, 하드웨어 가속기들, OS들, 소프트웨어 애플리케이션들, 또는 VSoC에 의해 활용될 수도 있는 임의의 다른 적합한 리소스를 포함할 수도 있다.
예를 들어, 프로세서 디바이스는 프로세서 디바이스가 고-쓰루풋을 달성하도록 프로세싱 코어들을 오프로딩하는 애플리케이션 특정 코-프로세서들과 같은 리소스들을 포함할 수도 있다. 프로세싱 코어들은 총-기능 (full-functionality) 및 고성능 정수 또는 부동 소수점 ALU (Arithmetic Logic Unit) 구현예들 및 직접 지원 산업 표준 C/C++, 또는 임의의 다른 적합한 프로그래밍 환경들일 수도 있다. 프로세싱 코어들은 VSoC 내에서 총-기능 OS를 부팅하고 실행하기 위한 모든 필요한 요건들을 가질 수도 있다.
리소스들은 프로세서 디바이스 내부 또는 외부에 있을 수도 있다. 리소스 정렬은 프로세서 디바이스의 VSoC에 대응하는 서브세트들로 프로세서 디바이스의 리소스들을 그룹화하는 정렬을 포함할 수도 있다. 서브세트들의 일부 리소스들은 예를 들어, 리소스, 예컨대 리소스 정렬에 의해 규정된 바와 같이 다수의 VSoC에 의해 공유될 수도 있는 프로세싱 코어와 오버랩할 수도 있다. 본 명세서에 개시된 실시예들에 따라, 리소스, 예컨대 프로세싱 코어는 리소스 정렬에 기초하여 다수의 상이한 VSoC에 의해 활용될 수도 있다. 공유는 대응하는 VSoC에 할당된 백분율에 기초할 수도 있다.
리소스의 공유는 대응하는 VSoC에 할당된 범위에 기초하여 리소스를 공유하는 것을 포함할 수도 있다. 예를 들어, 다수의 VSoC에 동일한 리소스, 예컨대 메모리와 정렬할 수도 있지만, VSoC 각각은 메모리 내 메모리 위치 각각에 대한 분리를 제공하도록 메모리를 위한 특정한 범위로 제한될 수도 있다.
대안적으로, 리소스는 리소스 정렬에 따라, 특정한 VSoC에 의해 독점적으로 사용될 수도 있다. 예를 들어, 일부 리소스들, 예컨대 특정한 타입들의 I/O 포트들은 공유되지 않을 수도 있다.
리소스 정렬은 동적으로 조정될 수도 있고, 동적 리소스 정렬, 리소스 할당 또는 동적 리소스 할당으로 본 명세서에서 상호교환가능하게 참조될 수도 있다. 본 명세서에 개시된 실시예들에 따라, 리소스 정렬은 프로세서 디바이스의 리소스들이 복수의 VSoC 사이에서 파티셔닝되는 방법을 규정할 수도 있다. 리소스 정렬은 런타임 전에 생성될 수도 있고, 또는 대안적으로, 런타임 동안 생성될 수도 있다. 리소스 정렬은 적어도 하나의 이벤트에 기초하여 런타임 동안 동적으로 조정될 수도 있다. 리소스 정렬은 타이머, 모니터링되는 메트릭들, 또는 외부 이벤트에 기초하여 런타임 동안 동적으로 조정될 수도 있다. 예를 들어, 적어도 하나의 이벤트는 시각을 나타내는 타이머에 기초할 수도 있다. 적어도 하나의 이벤트는 메트릭들, 예컨대 런타임 사용량 메트릭들, 고장 메트릭들, QoS (Quality of Service) 메트릭들, 고 워터마크들 또는 저 워터마크들, 또는 임의의 다른 적합한 메트릭들에 기초할 수도 있다.
도 1은 프로세서 디바이스 (102) 의 예시적인 실시예의 블록도 (100) 이다. 프로세서 디바이스 (102) 는 복수의 VSoC (104a 내지 104n) 를 포함한다. 복수의 VSoC (104a 내지 104n) 는 복수의 VSoC (104a 내지 104n) 와 복수의 리소스들 (106a 내지 106m) 사이의 리소스 정렬 (108) 에 따라 복수의 리소스들 (106a 내지 106m) 의 리소스들을 활용하도록 구성될 수도 있다. 리소스 정렬 (108) 은 복수의 리소스들 (106a 내지 106m) 중 어느 리소스들이 복수의 VSoC (104a 내지 104n) 중 어느 VSoC에 할당되는지를 규정할 수도 있다. 프로세서 디바이스 (102) 는 적어도 하나의 이벤트 (114) 에 응답하여 리소스 정렬 (108) 을 동적으로 조정하도록 (112) 구성된 리소스 정렬 유닛 (110) 을 더 포함한다. 일 실시예에 따라, 프로세서 디바이스 (102) 는 적어도 하나의 프로세싱 코어 (미도시) 및 인스트럭션들의 시퀀스가 저장된 적어도 하나의 메모리 (미도시) 를 포함할 수도 있고, 인스트럭션들의 시퀀스는 적어도 하나의 프로세싱 코어에 의해 로딩되고 실행될 때, 프로세서 디바이스 (102) 로 하여금 리소스 정렬 유닛 (110) 을 구현하게 한다. 또 다른 실시예에 따라, 프로세서 디바이스 (102) 는 리소스 정렬 유닛 (110) 을 구현하기 위해, 예컨대 전체 교시가 본 명세서에 참조로서 인용된 2010년 4월 28일 출원된 미국 특허 출원 번호 제 12/769,463 호, 현재 미국 특허 제 8,826,271 호에 개시되고, 이하에 개시된 도 6 또는 이의 등가물과 같은 하나 이상의 회로의 배열들을 포함할 수도 있다.
복수의 리소스들 (106a 내지 106m) 은 프로세싱 코어들, 메모리들, 캐시들, I/O 포트들, I/O 디바이스들, 하드웨어 가속기들, OS들, 소프트웨어 애플리케이션들, 또는 VSoC에 의해 활용될 수도 있는 임의의 다른 적합한 리소스들을 포함할 수도 있다. 이러한 리소스들은 프로세서 디바이스 (102) 내부에 있거나 외부에 있을 수도 있다. 복수의 VSoC (104a 내지 104n) 사이에서 일부 리소스들은 공유되고 일부는 공유되지 않도록 복수의 VSoC (104a 내지 104n) 와 복수의 리소스들 (106a 내지 106m) 사이의 리소스 정렬 (108) 은 복수의 리소스들 (106a 내지 106m) 을 파티셔닝할 수도 있다. 리소스 정렬 (108) 은 복수의 VSoC (104a 내지 104n) 중 어느 VSoC에 의해 사용하기 위해 복수의 리소스들 (106a 내지 106m) 중 어느 리소스들이 할당되는지를 규정할 수도 있다.
리소스 정렬 유닛 (110) 은 적어도 하나의 이벤트 (114) 에 응답하여 프로세서 디바이스 (102) 의 쓰루풋을 유발하도록 리소스 정렬 (108) 을 동적으로 조정하도록 더 구성될 수도 있다. 예를 들어, 동적 리소스 정렬 (108) 은 쓰루풋 요건을 유지하기 위해, 필요에 따라, 특정한 VSoC에 리소스들을 부가하거나 리소스들을 제거하도록 조정될 수도 있다.
적어도 하나의 이벤트는 프로세서 디바이스 외부에서 발생하는 외부 이벤트를 포함할 수도 있다. 예를 들어, 네트워크 환경에서, 외부 이벤트는 BGP (Border Gateway Protocol) 루트 플랩 (route flap) 일 수도 있다. 네트워킹 환경에서, BGP 루트 플랩은 보다 적은 패킷들이 라우팅되어야 할 것을 나타낼 수도 있다. 이와 같이, 리소스 정렬은 패킷 애플리케이션들을 패킷 애플리케이션들을 지원하는 VSoC로부터 리소스들을 제거하도록 조정될 수도 있다. 외부 이벤트는 바이러스 공격의 통지일 수도 있다. 바이러스 공격의 통지는 프로세서 디바이스 (102) 에 대한 계산적 워크로드 (computational workload) 를 증가시키는, 패킷들의 보다 엄격한 검사가 필요하다는 지표일 수도 있다. 동적 리소스 정렬 (108) 은 예를 들어, 패킷 검사를 위한 애플리케이션을 포함하는 미리 결정된 VSoC에 보다 많은 리소스들, 예컨대 프로세싱 코어들 또는 다른 적합한 리소스들을 할당하도록 조정될 수도 있다. BGP 루트 플랩 및 바이러스 공격의 통지는 외부 이벤트들의 예들이지만, 외부 이벤트는 프로세서 디바이스 외부의 임의의 적합한 이벤트일 수도 있다.
적어도 하나의 이벤트는 시각에 기초하는 미리 스케줄링된 이벤트를 포함할 수도 있다. 시각은 프로세서 디바이스가 많이 활용되는 (예를 들어, 많은 트래픽 로드 하) 것으로 이해될 수도 있는 시간일 수도 있다. 재정렬 (realigning) 은 또한 본 명세서에서 재할당과 상호교환가능하게 지칭되고, 시각의 함수로서 VSoC를 갖는 리소스들은 이 시각에 많이 활용된 VSoC에 부가적인 리소스들의 분배를 사전에 (proactively) 인에이블될 수도 있다. 이와 같이, 동적 재정렬은 트래픽 폐기들을 방지하고 프로세서 디바이스에 대한 쓰루풋 요건을 유지하도록 사전에 조정될 수도 있다.
적어도 하나의 이벤트는 복수의 리소스들의 미리 결정된 리소스의 오작동을 나타내는 고장 이벤트를 포함할 수도 있다. VSoC가 오작동하는 리소스에 더 이상 액세스하지 않고, 대신 또 다른 리소스와 정렬하게 하도록 오작동하는 리소스와 VSoC 간의 정렬은 조정될 수도 있다.
적어도 하나의 이벤트는 복수의 리소스들 중 적어도 하나의 리소스가 오버서브스크립되었다는 것을 나타내거나 복수의 VSoC 중 적어도 하나의 VSoC가 오버서브스크립되었다는 것을 나타내는 오버서브스크립션을 포함할 수도 있다. 이러한 오버서브스크립션은 메트릭들에 기초하여 결정될 수도 있다. 예를 들어, 트래픽 폐기들을 반영하는 QoS 메트릭들은 오버서브스크립션 이벤트를 결정하도록 사용될 수도 있다. 오버서브스크립션 이벤트에 기초하여, 적어도 하나의 리소스와 정렬된 VSoC의 수는 동적 리소스 정렬을 조정함으로써 감소될 수도 있다. 또한, 적어도 하나의 VSoC와 정렬된 리소스들의 수는 동적 리소스 정렬을 조정함으로써 증가될 수도 있다.
적어도 하나의 이벤트는 복수의 VSoC 중 미리 결정된 VSoC와 정렬된 복수의 리소스들 중 미리 결정된 리소스가 문턱 값 아래인 미리 결정된 가상 시스템에 의한 사용량 백분율을 갖는다는 것을 나타내는 유휴 이벤트를 포함할 수도 있다. 이와 같이, 동적 리소스 정렬은 미리 결정된 리소스를 공유하는 VSoC의 수를 증가시키도록 조정될 수도 있다.
리소스 정렬은 적어도 하나의 이벤트에 의해 유발되지 않으면 쓰루풋의 손실을 방지하도록 동적으로 조정될 수도 있다. 예를 들어, 특정한 시각에서 트래픽 손실을 나타내는 이력 메트릭들에 기초하여, 동적 리소스 정렬은 추가 트래픽 손실이 특정한 시각에서 발생하는 것을 방지하도록 특정한 시각에 조정될 수도 있다. 이와 같이, 적어도 하나의 이벤트는 이 시각에 기초하는 미리 스케줄링된 이벤트를 포함할 수도 있다.
도 2는 프로세서 디바이스 (202) 의 또 다른 예시적인 실시예의 블록도 (200) 이다. 프로세서 디바이스 (202) 는 복수의 VSoC (204a 내지 204n) 를 포함한다. 복수의 VSoC (204a 내지 204n) 는 복수의 VSoC (204a 내지 204n) 와 복수의 리소스들 (206a 내지 206m) 간의 리소스 정렬 (208) 에 따라 복수의 리소스들 (206a 내지 206m) 의 리소스들을 활용하도록 구성될 수도 있다. 프로세서 디바이스 (202) 는 적어도 하나의 이벤트 (214) 에 응답하여 리소스 정렬 (208) 을 동적으로 조정하도록 구성될 수도 있는 리소스 정렬 유닛 (210) 을 더 포함한다.
프로세서 디바이스 (202) 는 리소스 정렬 유닛 (210) 에 동작하게 커플링된 구성 유닛 (216) 을 더 포함한다. 구성 유닛 (216) 은 적어도 하나의 조정 (220) 에 응답하여, 동적으로 조정된 리소스 정렬 (218) 을 리소스 정렬 (208) 에 적용하도록 구성될 수도 있다. 구성 유닛 (216) 은 리소스 정렬 유닛 (210) 이 리소스 정렬 (208) 의 콘텐트를 모니터링함으로써 리소스 정렬 (208) 에 의해 조정된 것을 검출하도록 구성될 수도 있다.
예를 들어, 리소스 정렬 (208) 은 데이터 구조체일 수도 있고 구성 유닛 (216) 은 변화들을 위해 데이터 구조체의 콘텐트를 모니터링하도록 구성될 수도 있다. 일부 실시예들에서, 인터럽트 (미도시) 가 적어도 하나의 조정 (220) 에 기초하여 리소스 정렬 (208) 에 행사될 (asserted) 수도 있다. 리소스 정렬 (208) 에 대한 적어도 하나의 조정 (220) 을 검출하는 것은 행사된 인터럽트의 기능일 수도 있지만, 리소스 정렬 (208) 에 대한 적어도 하나의 조정 (220) 을 검출하는 것은 임의의 적합한 방식으로 수행될 수도 있다.
예를 들어, 일부 실시예들에 따라, 구성 유닛 (216) 은 리소스 정렬 유닛 (210) 이 리소스 정렬 (208) 을 조정하였다는 것을 나타내는 리소스 정렬 유닛 (210) 으로부터의 전달 (222) 을 수신하도록 구성될 수도 있다. 전달 (222) 은 프로세서 디바이스 (202) 의 메일박스를 통해 전송된 전달 메시지, 릴리즈된 세마포어 (semaphore), 또는 임의의 다른 적합한 통신 메커니즘일 수도 있다.
조정된 리소스 정렬 (218) 을 동적으로 적용하기 위해, 조정된 리소스 정렬 (218) 에 따라 구성 유닛 (216) 은 복수의 리소스들 (206a 내지 206m) 을 활용하도록 복수의 VSoC (204a 내지 204n) 를 집행하기 위해 프로세서 디바이스 (202) 의 구성 (224) 을 업데이트하도록 구성 업데이트 (221) 를 전송할 수도 있다. 예를 들어, 구성 (224) 은 복수의 리소스들 (206a 내지 206m) 에 대한 VSoC 액세스 승인들 (permissions) 을 집행하는 하드웨어 레지스터 구성 세팅들 (미도시) 을 포함할 수도 있다. 구성 (224) 은 복수의 리소스들 (206a 내지 206m) 에 대한 VSoC 액세스 승인들을 집행하는 임의의 적합한 구성 세팅들을 포함할 수도 있다. 구성 (224) 은 프로세서 디바이스 (202) 에 대한 정보 제공 (provisioning information) (미도시) 을 포함할 수도 있고, 정보 제공은 리소스 정렬 (208) 의 기능이다.
예를 들어, 정보 제공은 프로세서 디바이스 (202) 의 레벨 2 캐시 제어기 (미도시) 에 대한 구성을 포함할 수도 있고, 레벨 2 캐시 제어기는 복수의 리소스들 (206a 내지 206m) 내에 포함된 메모리들에 대한 메모리 액세스들을 제어한다. 예를 들어, 프로세서 디바이스의 메모리들과의 모든 액세스들은, 레벨 2 캐시가 프로세서 디바이스 (202) 의 메모리 액세스를 위한 중앙 위치로서 역할을 할 수도 있어서, 레벨 2 캐시 제어기에 의해 제어된 레벨 2 캐시 (미도시) 를 통과하도록 라우팅될 수도 있다.
복수의 VSoC (204a 내지 204n) 는 OS 및 임베딩된 애플리케이션들을 실행하기 위한 가상화된 실행 환경들로서 역할을 할 수도 있다. 구성 유닛 (216) 은 VSoC 각각이 리소스 정렬 (208) 에 따라 대응하는 리소스들에 액세스하는 것을 집행하도록 구성 (224) 을 업데이트할 수도 있다. 복수의 VSoC (204a 내지 204n) 에 의해 제공된 보호가 주어지면, 프로세서 디바이스 (202) 의 VSoC 각각에서 실행 중인 애플리케이션들 및 OS들은 프로세서 디바이스 (202) 의 다른 VSoC 내부에서 실행 중인 다른 애플리케이션들 및 OS들을 인식하지 못할 수도 있다.
구성 (224) 은 리소스 정렬 (208) 에 의해 구술된 바와 같이, 리소스 또는 리소스의 파티션들에 대한 VSoC 액세스를 인에이블할 수도 있고 또는 방지할 수도 있다. 예를 들어, 리소스의 파티션들, 예컨대 DRAM (Dynamic Random Access Memory) 은, 파티션이 일 VSoC에 의해 액세스되고 다른 VSoC에 의해서는 액세스되지 않을 수도 있도록 구성될 수도 있다. 구성 (224) 은 일 그룹의 VSoC로 하여금 미리 결정된 리소스 또는 리소스의 일부를 공유하도록 인에이블할 수도 있고, 다른 VSoC가 미리 결정된 공유된 리소스에 액세스하는 것을 방지할 수도 있다.
구성 (224) 은, 일 VSoC가 프로세서 디바이스의 다른 VSoC에 걸쳐 공유된 리소스에 액세스하기 위해 엄격하거나 가중된 우선순위를 가질 수도 있도록 공유된 리소스들에 대한 VSoC 우선순위를 집행할 수도 있다. 이러한 우선순위 정보 (미도시) 는 구성 (224) 의 일부로서 포함될 수도 있고 또는 리소스 정렬 (208) 의 일부로서 저장될 수도 있다.
적어도 하나의 조정 (220) 은 복수의 VSoC (204a 내지 204n) 의 미리 결정된 VSoC와 복수의 리소스들 (206a 내지 206m) 의 미리 결정된 리소스 간의 정렬에 대한 조정을 포함할 수도 있다. 구성 유닛 (216) 은 미리 결정된 리소스의 사용을 포기하는 미리 결정된 VSoC에 기초하여 또는 구성 유닛 (216) 에 적용된 미리 결정된 시간 값의 만료에 기초하여 적어도 하나의 조정 (220) 을 적용하도록 더 구성될 수도 있다.
예를 들어, 적어도 하나의 조정 (220) 이 미리 결정된 VSoC와 상이한 VSoC를 갖는 미리 결정된 리소스와 정렬될 (, 할당될) 수도 있지만, 미리 결정된 리소스는 여전히 미리 결정된 VSoC에 의해 사용 중일 수도 있다. 구성 유닛 (216) 은 프로세서 디바이스 (202) 상에서 국부적으로 액세스될 수도 있는 리소스 사용-중 (in-use) 정보 (219) 에 기초하여, 미리 결정된 리소스가 미리 결정된 VSoC에 의해 여전히 사용 중이라는 것을 결정할 수도 있다. 이러한 리소스 사용-중 정보 (219) 는 복수의 VSoC (204a 내지 204n) 에 의해 업데이트될 수도 있고 또는 임의의 다른 적합한 방식으로 업데이트될 수도 있다.
구성 유닛 (216) 은, 미리 결정된 VSoC가 미리 결정된 리소스의 사용을 포기할 때까지 적어도 하나의 조정 (220) 의 적용을 지연시킬 수도 있다. 대안적으로, 구성 유닛 (216) 은 미리 결정된 리소스의 사용을 포기하도록 미리 결정된 VSoC를 대기하기 위해 미리 결정된 시간 값을 채용할 수도 있다. 구성 유닛 (216) 은 미리 결정된 시간 값의 만료에 기초하여 적어도 하나의 조정 (220) 을 적용할 수도 있다.
프로세서 디바이스 (202) 는 리소스 정렬 유닛 (210) 에 동작하게 커플링된 모니터링 유닛 (226) 을 더 포함할 수도 있다. 모니터링 유닛 (226) 은 적어도 하나의 이벤트 (214) 의 적어도 하나의 경우 (instance) 에 대해 모니터링하고 리소스 정렬 (208) 을 동적으로 조정하도록 리소스 정렬 유닛 (210) 을 트리거링하기 위해 적어도 하나의 이벤트 (214) 의 적어도 하나의 경우를 상기 리소스 정렬 유닛 (210) 에 전달하도록 구성될 수도 있다.
적어도 하나의 이벤트 (214) 의 적어도 하나의 경우를 모니터링하기 위해, 적어도 하나의 모니터링 유닛 (226) 은 복수의 리소스들 (206a 내지 206m) 중 적어도 하나의 리소스의 상태 또는 복수의 VSoC (204a 내지 204n) 의 적어도 하나의 가상 시스템 상태를 모니터링하도록 더 구성될 수도 있다. 복수의 리소스들 (206a 내지 206m) 중 적어도 하나의 리소스의 상태는 고장 상태, 활용 상태, 또는 이들의 조합을 포함할 수도 있다. 복수의 VSoC (204a 내지 204n) 의 적어도 하나의 가상 시스템 상태는 고장 상태, 활용 상태, 또는 이들의 조합을 포함할 수도 있다.
적어도 하나의 이벤트 (214) 의 적어도 하나의 경우를 모니터링하기 위해, 모니터링 유닛 (226) 은 프로세서 디바이스 (202) 의 모니터링 정보 (227) 를 모니터링할 수도 있다. 모니터링 정보 (227) 는 시각, 오버서브스크립션 메트릭들, 유휴 메트릭들, 리소스 워터마크들, 네트워크 정보, 리소스 고장 정보, 등과 같은 정보를 포함할 수도 있다. 모니터링 정보 (227) 는 적어도 하나의 이벤트 (214) 에 응답하여 리소스 정렬 (208) 의 동적 조정이 유리할 적어도 하나의 이벤트 (214) 를 결정하도록 모니터링될 수도 있는 임의의 적합한 정보를 포함할 수도 있다.
모니터링 유닛 (226) 은 이벤트 스케줄러 (229) 를 포함할 수도 있다. 이벤트 스케줄러 (229) 는 재정렬 스케줄 (미도시) 에 기초하여 적어도 하나의 이벤트 (214) 를 스케줄링할 수도 있다. 재정렬 스케줄은 정적 스케줄 또는 스스로 주기적으로 조절하는 동적 스케줄일 수도 있다. 재정렬 스케줄은 하나 이상의 시각 엔트리들을 포함할 수도 있다. 예를 들어, 재정렬 스케줄러는 프로세서 디바이스의 성능의 면에서 재정렬이 유리한 하나 이상의 시각 엔트리들을 포함할 수도 있다. 재정렬 스케줄은 VSoC 사용량 메트릭들, 리소스 메트릭들, 또는 임의의 다른 적합한 메트릭들 당 전체 프로세서 디바이스에 대한 사용량 메트릭들에 기초하여 동적으로 조절될 수도 있다. 재정렬은 외부 이벤트, 예컨대 BGP 루트 플랩, 또는 임의의 다른 적합한 외부 이벤트에 기초할 수도 있다.
일 실시예에 따라, 리소스는 메모리일 수도 있다. 메모리는 하나 이상의 청크들을 포함할 수도 있다. 하나 이상의 청크들 각각은 메모리로부터 대응하는 고정된 수의 비트들을 포함하는 메모리의 섹션일 수도 있다. 고정된 수의 비트들은 연속적일 수도 있다. 대안적으로, 하나 이상의 청크들은 메모리 내에서 스캐터링되는 메모리로부터 고정된 수의 비트들을 포함할 수도 있다. 하나 이상의 청크들은 각각 프리일 (free) 수도 있고 또는 적어도 하나의 이벤트에 기초하여 미리 결정된 VSoC에 할당될 수도 있다. 적어도 하나의 이벤트는 재정렬 스케줄의 함수일 수도 있고, 이와 같이, 메모리의 하나 이상의 청크들은 스케줄링에 기초하여 동적으로 재정렬될 수도 있다. 예를 들어, 적어도 하나의 이벤트는 재정렬 스케줄의 함수일 수도 있기 때문에, 메모리의 하나 이상의 청크들은 스케줄링될 때 프리일 수도 있고, 때때로 미리 결정된 VSoC가 예를 들어, 가벼운 부하 하인 것으로 공지되는 반면, 메모리의 하나 이상의 청크들은 스케줄링될 때 미리 결정된 VSoC에 할당될 수도 있고, 때때로, 미리 결정된 VSoC는 무거운 부하 하인 것으로 공지된다.
본 명세서에 개시된 실시예들에 따라, 모니터링 유닛 (226) 은 상기 기술된 고장, 오버서브스크립션, 또는 유휴 이벤트들을 결정하도록 다양한 메트릭들을 모니터링하도록 구성될 수도 있다. 예를 들어, 모니터링 유닛 (226) 은 고장 이벤트를 결정하기 위해 패리티 또는 ECC (Error-Correcting Code) 에러들과 같은 메트릭들을 모니터링하도록 구성될 수도 있다. 모니터링 유닛 (226) 은 고장 이벤트를 결정하기 위해 패리티 또는 ECC 에러들에 문턱값을 적용할 수도 있다. 고장 이벤트는 임의의 적합한 방식으로 결정될 수도 있다. 예를 들어, 리소스들은 고장 이벤트를 결정하기 위해 사용될 수도 있는 하드웨어 고장 또는 열화 타입 지표들을 가질 수도 있다. 메트릭스들, 예컨대 QoS 통계들은 오버서브스크립션 또는 유휴 이벤트들을 결정하도록 모니터링 유닛 (226) 에 의해 모니터링될 수도 있다. 리소스 정렬을 동적으로 조정하는 것은 미리 결정된 VSoC로 하여금 특정한 QoS 요건, 예컨대 실버 그레이드 또는 다른 적합한 QoS 그레이드를 충족시키게 인에이블하도록 수행될 수도 있다.
일 실시예에 따라, 프로세서 디바이스 (202) 는 적어도 하나의 프로세싱 코어 (미도시) 및 적어도 하나의 프로세싱 코어에 의해 로딩되고 실행될 때, 프로세서 디바이스 (202) 로 하여금 리소스 정렬 유닛 (210), 구성 유닛 (216), 및 모니터링 유닛 (226) 을 구현하게 하는 인스트럭션들의 시퀀스가 저장된 적어도 하나의 메모리 (미도시) 를 포함할 수도 있다. 또 다른 실시예에 따라, 프로세서 디바이스 (202) 는, 리소스 정렬 유닛 (210), 구성 유닛 (216), 및 모니터링 유닛 (226) 을 구현하기 위해 이하에 개시된 도 6 또는 이의 등가물들 전체 교시가 참조로서 본 명세서에 인용된, 2010년 4월 28일 출원된 미국 특허출원 번호 제 12/769,463 호, 이제 미국 특허 제 8,826,271 호에 개시된 바와 같은 하나 이상의 회로 배열들을 포함할 수도 있다.
도 3은 리소스 정렬 (308) 의 예시적인 실시예의 블록도 (300) 이다. 리소스 정렬 (308) 은 복수의 리소스들 (306a 내지 306m) 과 복수의 VSoC (304a 내지 304n) 간의 복수의 맵핑들 (340a 내지 340k) 을 포함할 수도 있다. 리소스 정렬 (308) 을 동적으로 조정하기 위해, 리소스 정렬 유닛, 예컨대 상기 개시된 도 1의 리소스 정렬 유닛 (110) 또는 도 2의 리소스 정렬 유닛 (210) 은 적어도 하나의 이벤트, 예컨대 상기 개시된 적어도 하나의 이벤트 (114) 또는 도 2의 적어도 하나의 이벤트 (214) 에 응답하여 복수의 맵핑들 (340a 내지 340k) 중 적어도 하나의 맵핑을 조정하도록 더 구성될 수도 있다.
적어도 하나의 맵핑은 복수의 리소스들 (306a 내지 306m) 중 미리 결정된 리소스와 복수의 VSoC 중 미리 결정된 VSoC (304a 내지 304n) 를 정렬할 수도 있다. 예를 들어, 맵핑1 ,1 (340a) 은 VSoC1 (304a) 를 리소스1 (306a) 와 맵핑하고, 맵핑1,2 (340b) 은 VSoC1 (304a) 를 리소스2 (306b) 와 맵핑하고, 맵핑2 ,2 (340c) 은 VSoC2 (304b) 를 리소스2 (306b) 와 맵핑하고, 그리고 맵핑i,j (340k) 은 VSoCi (304i) 를 리소스j (306j) 와 맵핑한다.
적어도 하나의 맵핑을 동적으로 조정하는 것은, 미리 결정된 가상 시스템이 미리 결정된 리소스를 채용하는 것을 방해하고 적어도 하나의 다른 가상 시스템으로 하여금 미리 결정된 리소스를 채용하게 인에이블하도록 복수의 VSoC (304a 내지 304n) 중 적어도 하나의 다른 VSoC와 미리 결정된 리소스를 정렬하는 것을 포함할 수도 있다. 예를 들어, 적어도 하나의 맵핑을 조정하는 것은 맵핑i,j (340k) 을 제거하고 맵핑n,j (340l) 을 부가하는 것, VSoCi (304i) 가 리소스j (306j) 를 사용하는 것을 방지하는 것, 그리고 VSoCn (304n) 로 하여금 리소스j (306j) 를 채용하게 인에이블하는 것을 포함할 수도 있다.
리소스 정렬 (308) 을 동적으로 조정하기 위해, 리소스 정렬 유닛, 예컨대 상기 기술된 도 1의 리소스 정렬 유닛 (110) 또는 도 2의 리소스 정렬 유닛 (210) 은 적어도 하나의 맵핑을 리소스 정렬 (308) 에 부가하도록 더 구성될 수도 있고, 적어도 하나의 맵핑은 복수의 리소스들 (306a 내지 306m) 중 일 리소스를 복수의 VSoC (304a 내지 304n) 중 일 VSoC와 정렬한다. 예를 들어, 맵핑n,j (340l) 을 부가하는 것은 VSoCn (304n) 로 하여금 리소스j (306j) 를 채용하게 인에이블할 수도 있다.
리소스 정렬 (308) 은 복수의 리소스들 (306a 내지 306m) 과 복수의 VSoC (304a 내지 304n) 간의 복수의 맵핑들, 예컨대 복수의 맵핑들 (340a 내지 340k) 을 포함할 수도 있고, 리소스 정렬 (308) 을 동적으로 조정하기 위해, 복수의 맵핑들 (340a 내지 340k) 로부터 적어도 하나의 맵핑, 예컨대 맵핑i,j (340k) 을 제거하는 것을 포함할 수도 있다.
리소스 정렬 (308) 은 복수의 VSoC (304a 내지 304n) 중 다수의 VSoC로 하여금 복수의 리소스들 (306a 내지 306m) 중 미리 결정된 리소스를 공유하게 인에이블할 수도 있다. 예를 들어, 리소스 정렬 (308) 의 맵핑1 ,2 (340b) 및 맵핑2 ,2 (340c) 은 리소스2 (306b) 로 하여금 VSoC1 (304a) 및 VSoC2 (304b) 에 의해 공유되게 인에이블한다.
복수의 VSoC (304a 내지 304n) 중 다수의 VSoC는 각각 미리 결정된 리소스에 대한 각각의 가상 시스템에 할당된 각각의 사용량 백분율에 기초하여 미리 결정된 리소스를 사용하도록 구성될 수도 있다. 사용량 백분율은 미리 결정된 리소스의 타입, 각각의 VSoC 상에서 실행 중인 애플리케이션의 타입, 또는 이들의 조합의 함수일 수도 있다.
사용량 백분율은 대응하는 VSoC에 의해 제어될 수도 있다. 사용량 백분율은 VMM (Virtual Machine Monitor) (미도시) 에 의해 모니터링될 수도 있고, 또한 워치독 (watchdog) 에 기초하여 미리 결정된 리소스의 사용을 포기하도록 강요할 수도 있는, 본 명세서에서 하이퍼바이저로서 상호교환가능하게 지칭될 수도 있다.
리소스 정렬 (308) 은 복수의 VSoC 중 미리 결정된 VSoC로 하여금 미리 결정된 리소스를 독점적으로 사용하게 인에이블할 수도 있다. 예를 들어, 리소스1 (306a) 는 공유되지 않은 리소스, 예컨대 특정한 타입의 I/O 포트 또는 임의의 다른 적합한 공유되지 않은 리소스일 수도 있고, 그리고 맵핑1 ,1 (340a) 은 VSoC1 (304n) 로 하여금 리소스1 (306a) 를 독점적으로 사용하게 인에이블할 수도 있다.
도 4는 리소스 정렬 (408) 의 또 다른 예시적인 실시예의 블록도 (400) 이다. 리소스 정렬 (408) 은 각각 고유한 VSoC 식별자 (462) 와 리소스 식별자 (464) 를 연관시키는, 복수의 엔트리들 (460a 내지 460n) 을 포함하는 리소스 정렬표일 수도 있다. 예를 들어 복수의 엔트리들 (460a 내지 460n) 은 고유한 VSoC 식별자들 (466a 내지 466n) 과 리소스 식별자들 (468a 내지 468n) 을 각각 연관시킬 수도 있다.
고유한 VSoC 식별자들 (466a 내지 466n) 은 각각 복수의 VSoC, 예컨대 상기 기술된 바와 같이 각각 도 1, 도 2 및 도 3의 복수의 VSoC (104a 내지 104n, 204a 내지 204n, 및 304a 내지 304n) 중 일 VSoC를 고유하게 식별할 수도 있다. 리소스 식별자들 (468a 내지 468n) 은 복수의 리소스들, 예컨대 각각 도 1, 도 2 및 도 3의 복수의 리소스들 (106a 내지 106m, 206a 내지 206m, 및 306a 내지 306m) 중 어느 것이 고유한 VSoC 식별자들 (466a 내지 466n) 에 의해 식별된 대응하는 하나 이상의 VSoC에 의해 활용될 수도 있는지 나타낼 수도 있다.
예를 들어, 리소스 정렬 (408) 의 엔트리 (460b) 는 가상 시스템 식별자 (466b) 와 리소스 식별자 (468b) 를 연관시킬 수도 있다. 일 실시예에 따라, 리소스 식별자들 (468a 내지 468n) 은 대응하는 리소스에 대한 정렬 지표를 제공하는 비트맵의 비트 각각을 갖는 비트맵들을 포함할 수도 있지만, 리소스들 식별자들은 VSoC와 리소스들을 정렬하는 임의의 적합한 방식으로 구현될 수도 있다. 리소스 식별자의 비트맵의 비트 각각은 리소스 정렬 지표로서 본 명세서에서 상호교환가능하게 지칭될 수도 있다.
제 1 상태를 갖는 VSoC 식별자, 예컨대 VSoC 식별자들 (466a 내지 466n) 과 연관된 리소스 식별자, 예컨대 리소스 식별자들 (468a 내지 468n) 의 비트맵의 비트 각각은 VSoC 식별자와 연관되는 VSoC에 비트와 연관된 각각의 리소스를 맵핑할 수도 있고, 즉, 각각의 리소스는 VSoC와 정렬된다. 제 2 상태를 갖는 비트맵의 비트 각각은 각각의 리소스와 VSoC 식별자와 연관된 VSoC 사이에 맵핑이 존재하지 않는다는 것을 반영할 수도 있고, 즉, 각각의 리소스 및 VSoC는 정렬되지 않는다. 예를 들어, 비트맵 (468a) 의 비트 (470) 는 VSoC 식별자 (466a) 와 연관되는 VSoC를 비트 (470) 의 비트 위치와 연관되는 리소스와 정렬하도록 사용될 수도 있다. "1"의 제 1 상태를 갖는 비트 (470) 는 VSoC로 하여금 리소스를 사용하도록 인에이블하는, 리소스와 VSoC를 정렬할 수도 있는 한편, "0"의 제 2 상태를 갖는 비트 (470) 는 VSoC가 리소스를 사용하는 것을 방해할 수도 있다. 리소스는 비트맵들의 대응하는 비트를 조정함으로써 일 VSoC로부터 또 다른 VSoC로 "이동될" 수도 있다.
예를 들어, 각각 리소스들 식별자들 (468b 및 468c) 의 비트 (472) 및 비트 (474) 는 각각 특정한 리소스와 연관될 수도 있다. 특정한 리소스는 비트들 (472 및 474) 의 비트 위치와 연관될 수도 있다. "1"로부터 "0"으로 값을 변화시킴으로써 비트 (472) 를 조정하는 것은, 특정한 리소스에 더 이상 액세스할 수 없도록 VSoC 식별자 (460b) 와 연관된 VSoC에 대한 리소스 정렬을 변화시킬 수도 있다. "0"으로부터 "1"로 값을 변화시킴으로써 비트 (474) 를 조정하는 것은, 특정한 리소스에 액세스할 수 있도록 VSoC 식별자 (460c) 와 연관된 VSoC에 대한 리소스 정렬을 변화시킬 수도 있다. 이와 같이, 특정한 리소스는 일 VSoC로부터 또 다른 VSoC로 실제로 (, 물리적이 아니라) "이동된다".
특정한 리소스와 연관된 리소스 타입에 기초하여, 본 명세서에 개시된 실시예들은 특정한 리소스에 대응하는 리소스 정렬의 리소스 정렬 지표에 대한 미세한 업데이트를 제공할 수도 있다. 예를 들어, 상기 개시된 바와 같이, 각각의 리소스 식별자들 (468b 및 468c) 의 비트들 (472 및 474) 의 비트들을 조정하는 것은, 비트들 (472 및 474) 의 값들에 대한 조정들이 각각 비트들 (472 및 474) 을 포함하는 리소스 식별자들 (468b 및 468c) 과 연관된 각각의 VSoC들에 대해 가시적으로, 동시에 이루어지도록, 미세하게 조정들을 수행하는 것을 포함할 수도 있다. 미세한 업데이트는 특정한 리소스에 대한 독점적인 액세스를 요구하는 상이한 VSoC들 간의 잠재적인 갈등을 예방할 수도 있다.
본 명세서에 개시된 실시예들에 따라, 공유되지 않은 리소스 타입, 예컨대 메모리 위치 또는 I/O 포트, 또는 독점적인 방식으로 사용될 수도 있는 임의의 다른 적합한 타입의 리소스와 연관된 동일한 리소스에 대응하는 리소스 정렬 지표들은 미세하게 업데이트될 수도 있는 한편, 공유된 리소스 타입, 예컨대 프로세싱 코어, 또는 임의의 다른 적합한 공유된 리소스 타입을 갖는 동일한 리소스에 대응하는 리소스 정렬 지표들이 개별적인 기초로 조정될 수도 있다. 공유된 리소스 타입 및 공유되지 않은 리소스 타입에 대한 예들은 공유되거나 공유되지 않도록 리소스들의 타입들의 특정한 예들을 제한하지 않는다는 것이 이해되어야 한다. 예를 들어, 일부 경우들에서, I/O 포트는 공유된 리소스일 수도 있는 한편, 프로세싱 코어는 공유되지 않은 리소스일 수도 있다.
본 명세서에 개시된 실시예들에 따라, VSoC 식별자, 예컨대 VSoC 식별자 (462) 는 수신된 패킷 (미도시) 으로부터 추출하는 필드들에 기초하여 결정될 수도 있다. 추출된 필드들은 키, 예컨대 5-투플 (tuple) 키를 형성하도록 사용될 수도 있고, 이는 VSoC 식별자들에 키들을 맵핑하는 LUT (Look-Up Table) (미도시) 내로 인덱싱하도록 사용될 수도 있다. 이와 같이, 수신된 패킷은 키에 대한 LUT에서 발견되는 VSoC 식별자 (462) 에 기초하여 미리 결정된 VSoC로 스케줄링될 수도 있다. 키에 대한 LUT에서 발견되는 VSoC 식별자 (462) 를 사용하여, 대응하는 리소스 식별자 (464) 는 미리 결정된 VSoC에 대해 식별될 수도 있다. 대응하는 리소스 식별자 (464) 는 상기 기술된 바와 같이, 어느 리소스들이 미리 결정된 VSoC에 의해 채용될 수도 있는지를 나타낸다.
미리 결정된 VSoC가 수신된 패킷을 프로세싱하기 위해 특정한 리소스를 채용하는 동안, 적어도 하나의 이벤트는 특정한 리소스가 미리 결정된 VSoC와 더 이상 정렬되지 않도록 리소스 정렬 (408) 로 하여금 조정되게 할 수도 있다. 이와 같이, 구성 유닛 (216) 은 조정된 리소스 정렬 (218) 을 검출할 수도 있고, 미리 결정된 VSoC에 의해 특정한 리소스가 더 이상 사용되지 않을 때까지 또는 미리 결정된 시간 값이 만료될 때까지, 그렇지 않으면 미리 결정된 VSoC가 특정한 리소스를 사용하는 것을 방해할, 구성 업데이트 (221) 를 적용하는 것을 지연시킬 수도 있다.
도 5는 방법 (500) 의 예시적인 실시예의 흐름도이다. 방법은 시작할 수도 있고 (502) 복수의 VSoC와 복수의 리소스들 간의 리소스 정렬에 따라 복수의 리소스들의 리소스들을 활용하도록 프로세서 디바이스의 복수의 VSoC를 구성할 수도 있다 (504). 방법은 적어도 하나의 이벤트에 응답하여 리소스 정렬을 동적으로 조정할 수도 있고 (506) 방법은 그 후에 예시적인 실시예에서 종료한다 (508).
본 명세서에 개시된 실시예들에 따라, 보안 기기 (미도시) 는 프로세서 디바이스 (102 또는 202) 를 포함할 수도 있다. 프로세서 디바이스 (102 또는 202) 는 네트워크 서비스들 프로세서일 수도 있다. 보안 기기는 일 네트워크 인터페이스에서 수신된 패킷들을 또 다른 네트워크 인터페이스로 스위칭할 수도 있고 패킷들을 포워딩하기 전에 수신된 패킷들 상의 복수이 보안 기능들을 수행할 수도 있는 독립 시스템일 수도 있다. 예를 들어, 보안 기기는 LAN (Local Area Network), 또는 임의의 다른 적합한 네트워크로 프로세싱된 패킷들을 포워딩하기 전에 WAN (Wide Area Network), 또는 임의의 다른 적합한 네트워크 상에서 수신될 수도 있는 패킷들에 대한 보안 프로세싱을 수행하도록 사용될 수도 있다.
프로세서 디바이스 (102 또는 202) 는 수신된 패킷들 내에 캡슐화된 OSI (Open System Interconnection) 네트워크 L2 내지 L7 계층 프로토콜들을 프로세싱하도록 구성될 수도 있다. 당업자에게 공지된 바와 같이, OSI 참조 모델은 7 네트워크 프로토콜 계층들 (L1 내지 L7) 을 규정한다. 물리 계층 (L1) 은 프로세서 디바이스를 송신 매체에 연결하는 실제 인터페이스, 전기적 및 물리적 인터페이스를 나타낸다. 데이터 링크 계층 (L2) 은 데이터 프레이밍 (framing) 을 수행한다. 네트워크 계층 (L3) 은 데이터를 패킷들로 포맷한다. 전송 계층 (L4) 은 엔드-투-엔드 전송을 핸들링한다. 세션 계층 (L5) 은 디바이스들 간 통신들을 관리, 예를 들어, 통신이 반이중 (half-duplex) 인지 또는 전이중 (full-duplex) 인지를 관리한다. 프리젠테이션 계층 (L6) 은 데이터 포맷팅 및 프리젠테이션, 예를 들어, 신택스, 제어 코드들, 특수 그래픽들 및 문자 세트들을 관리한다. 응용 계층 (L7) 은 사용자들 간 통신들, 예를 들어, 파일 전송 및 전자 메일을 허용한다.
프로세서 디바이스 (102 또는 202) 는 상위 레벨 네트워크 프로토콜들, 예를 들어 L4 내지 L7에 대한 작업 (예를 들어, 패킷 프로세싱 동작들) 을 스케줄링하고 큐잉할 수도 있고, 와이어 속도로 패킷들을 포워딩하도록 수행될 수신된 패킷들 내의 상위 레벨 네트워크 프로토콜들의 프로세싱을 인에이블할 수도 있다. 와이어 속도로 패킷들을 포워딩하도록 프로토콜들을 프로세싱함으로써, 프로세서 디바이스 (102 또는 202) 는 네트워크 데이터 전송 레이트를 낮추지 (slow down) 않는다. 프로세서 디바이스 (102 또는 202) 는 물리적 하드웨어 인터페이스들일 수도 있는 네트워크 인터페이스들 (미도시) 로부터 패킷들을 수신할 수도 있고, 그리고 수신된 패킷들에 대한 L2 내지 L7 네트워크 프로토콜 프로세싱을 수행할 수도 있다. 프로세서 디바이스들 (102 또는 202) 은 후속하여 네트워크 내 또 다른 홉 (hop), 최종 목적지로 네트워크 인터페이스들을 통해, 또는 호스트 프로세서에 의한 추가 프로세싱을 위해 또 다른 버스를 통해 프로세싱된 패킷들을 포워딩할 수도 있다. 복수의 VSoC, 예컨대 복수의 VSoC (104a 내지 104n), 또는 복수의 VSoC (204a 내지 204n) 는, 네트워크 보안 프로토콜들 예컨대 방화벽, 애플리케이션 방화벽, IPSec (IP Security) 및/또는 SSL (Secure Sockets Layer) 을 포함하는 VPN (Virtual Private Network), IDS (Intrusion Detection System), AV (Anti-virus), 또는 임의의 다른 적합한 네트워크 프로토콜의 프로세싱을 위한 애플리케이션들을 포함할 수도 있다.
복수의 VSoC (104a 내지 104n 또는 204a 내지 204n) 는 복수의 VSoC (104a 내지 104n 또는 204a 내지 204n) 와 정렬된 복수의 프로세싱 코어들을 사용하여 고 애플리케이션 퍼포먼스를 전달할 수도 있다. 프로세싱 코어들 각각은 데이터 플레인 동작, 제어 플레인 동작 또는 이들의 조합을 수행하도록 전용될 수도 있다. 데이터 플레인 동작은 패킷들을 포워딩하기 위한 패킷 동작들을 포함할 수도 있다. 제어 플레인 동작은 복잡한 보다 고 레벨 프로토콜들 예컨대 IPSec, TCP (Transmission Control Protocol), SSL, 또는 임의의 다른 적합한 보다 고 레벨 프로토콜의 부분들의 프로세싱을 포함할 수도 있다. 데이터 플레인 동작은 이들 복잡한 보다 고 레벨 프로토콜들의 다른 부분들의 프로세싱을 포함할 수도 있다.
본 명세서에 개시된 실시예들에 따라, 리소스들, 예컨대 복수의 프로세싱 코어들, 메모리들, 입력/출력 포트들, 등이 런타임 동안 하나 이상의 VSoC에 동적으로 할당될 수도 있다. 리소스 할당들은 상기 개시된 바와 같이 적어도 하나의 이벤트에 기초하여 다수의 VSoC 사이에서 동적으로 재정렬될 수도 있다.
복수의 프로세싱 코어들은 데이터 플레인 애플리케이션 또는 제어 플레인 애플리케이션을 지지하는 VSoC에 할당될 수도 있다. 리소스들은 데이터 플레인에 할당된 VSoC 사이에서 재정렬될 수도 있다. 예를 들어, 제 1 세트의 리소스들은 데이터 플레인 사용에 대해 가용한 것으로 명시될 수도 있고 일 데이터 플레인 VSoC로부터 또 다른 데이터 플레인 VSoC으로 동적으로 할당, 예컨대 IDS 또는 AV 타입 VSoC를 포워딩할 수도 있다. 유사하게, 제 2 세트의 리소스들은 제어 플레인 사용에 가용한 것으로 명시될 수도 있고 제 2 세트의 리소스들은 일 제어 플레인 VSoC로부터 또 다른 제어 플레인 VSoC로 동적으로 할당될 수도 있다. 본 명세서에 개시된 실시예들에 따라, 리소스들은 VSoC들과 동적으로 정렬될 수도 있다.
도 6은 본 발명의 다양한 실시예들이 구현될 수도 있는 컴퓨터 (600) 의 내부 구조체의 예의 블록도이다. 컴퓨터 (600) 는 시스템 버스 (602) 를 포함하고, 버스는 컴퓨터 또는 프로세싱 시스템의 컴포넌트들 사이에서 데이터 전송을 위해 사용된 하드웨어 라인들의 세트이다. 시스템 버스 (602) 는 본질적으로 컴퓨터 시스템의 상이한 엘리먼트들 (예를 들어, 프로세서, 디스크 스토리지, 메모리, I/O 포트들, 네트워크 포트들, ) 간의 정보 전송을 인에이블하는 엘리먼트들을 연결하는 공유된 도관이다. 다양한 입력 및 출력 디바이스들 (예를 들어, 키보드, 마우스, 디스플레이들, 프린터들, 스피커들, ) 을 컴퓨터 (600) 에 연결하기 위한 I/O 디바이스 인터페이스 (604) 가 시스템 버스 (602) 에 커플링된다. 네트워크 인터페이스 (606) 는 컴퓨터 (600) 로 하여금 네트워크에 부착된 다양한 다른 디바이스들에 연결하게 한다. 메모리 (608) 는 본 발명의 실시예들을 구현할 수도 있는 컴퓨터 소프트웨어 인스트럭션들 (610) 및 데이터 (612) 를 위한 휘발성 스토리지를 제공한다. 데이터 스토리지 (614) 는 본 발명의 실시예들을 구현하도록 사용될 수도 있는 컴퓨터 소프트웨어 인스트럭션들 (610) 및 데이터 (612) 를 위한 비휘발성 스토리지를 제공한다. CPU (618) 는 또한 시스템 버스 (602) 에 커플링되고 컴퓨터 인스트럭션들의 실행을 제공한다.
본 명세서에 개시된 추가 예시적인 실시예들은 컴퓨터 프로그램 제품을 사용하여 구성될 수도 있고, 예를 들어, 제어들이 예시적인 실시예들을 구현하기 위해 소프트웨어로 프로그래밍될 수도 있다. 추가 예시적인 실시예들은 프로세서에 의해 실행될 수도 있고, 로딩되고 실행될 때, 프로세서로 하여금 본 명세서에 기술된 방법들을 완료하게 할 수도 있는 인스트럭션들을 포함하는 비일시적인 컴퓨터 판독가능 매체를 포함할 수도 있다. 블록도 및 흐름도의 엘리먼트들, 예컨대 리소스 정렬 유닛 (110 또는 210), 구성 유닛 (216), 및 모니터링 유닛 (226), 또는 본 명세서에 개시된 블록도 및 흐름도의 다른 엘리먼트들은 예컨대 전체 교시가 본 명세서에 참조로서 인용된 2010년 4월 28일 출원된 미국 특허 출원 번호 제 12/769,463 호, 현재 미국 특허 제 8,826,271 호에 개시되고, 상기 개시된 도 6 또는 이의 등가물과 같은 하나 이상의 회로의 배열들을 통해 소프트웨어, 하드웨어, 펌웨어, 이들의 조합, 또는 장차 결정된 다른 유사한 구현예로 구현될 수도 있다는 것이 이해되어야 한다. 이에 더하여, 본 명세서에 기술된 블록도 및 흐름도의 엘리먼트들은 소프트웨어, 하드웨어 또는 펌웨어의 임의의 방식으로 결합되고 분할될 수도 있다. 소프트웨어로 구현된다면, 소프트웨어는 본 명세서에 개시된 예시적인 실시예들을 지원할 수 있는 임의의 언어로 작성될 수도 있다. 소프트웨어는 임의의 형태의 컴퓨터 판독가능 매체, 예컨대 RAM (random access memory), ROM (read only memory), CD-ROM (compact disk read-only memory), 등등에 저장될 수도 있다. 동작 시, 범용 또는 애플리케이션 특정 프로세서 또는 프로세싱 코어는 당업계에 공지된 방식으로 소프트웨어를 로딩하고 실행한다. 블록도 및 흐름도는 보다 많거나 보다 적은 엘리먼트들을 포함할 수도 있고, 또는 상이하게 배열되거나 배향될 수도 있고, 또는 상이하게 나타날 수도 있다는 것이 또한 이해되어야 한다. 구현예는 본 명세서에 개시된 실시예들의 실행을 예시하는 블록도, 흐름도 및/또는 네트워크도 및 블록도 및 흐름도의 수를 구술할 수도 있다.
본 발명이 예시적인 실시예들을 참조하여 구체적으로 도시되고 기술되지만, 형태들 및 상세들에서 다양한 변화들이 첨부된 청구항들에 의해 포괄된 본 발명의 범위를 벗어나지 않고 이루어질 수도 있다는 것이 당업자에게 이해될 것이다.

Claims (72)

  1. 복수의 VSoC (virtual systems on chip) 와 복수의 리소스들 사이의 리소스 정렬에 따라 상기 복수의 리소스들의 리소스들을 활용하도록 구성된, 상기 복수의 VSoC; 및
    적어도 하나의 이벤트에 응답하여 상기 리소스 정렬을 동적으로 조정하도록 구성된 리소스 정렬 유닛을 포함하는, 프로세서 디바이스.
  2. 제 1 항에 있어서,
    상기 리소스 정렬 유닛은 상기 적어도 하나의 이벤트에 응답하여 상기 프로세서 디바이스의 쓰루풋을 유발하도록 (effectuate) 상기 리소스 정렬을 동적으로 조정하도록 더 구성되는, 프로세서 디바이스.
  3. 제 1 항에 있어서,
    상기 리소스 정렬 유닛에 동작하게 커플링되고 상기 리소스 정렬에 적어도 하나의 조정에 응답하여 상기 조정된 리소스 정렬을 동적으로 적용하도록 구성된 구성 유닛을 더 포함하는, 프로세서 디바이스.
  4. 제 3 항에 있어서,
    상기 구성 유닛은 상기 리소스 정렬 유닛이 상기 리소스 정렬을 조정했다는 것을 검출하도록 더 구성되는, 프로세서 디바이스.
  5. 제 3 항에 있어서,
    상기 구성 유닛은 상기 리소스 정렬 유닛이 상기 리소스 정렬을 조정했다는 것을 나타내는 상기 리소스 정렬 유닛으로부터의 전달을 수신하도록 더 구성되는, 프로세서 디바이스.
  6. 제 3 항에 있어서,
    상기 조정된 리소스 정렬을 동적으로 적용하기 위해, 상기 구성 유닛은 상기 조정된 리소스 정렬에 따라 상기 리소스들을 활용하게 상기 복수의 VSoC를 집행하게 (enforce) 상기 프로세서 디바이스의 구성을 업데이트하도록 더 구성되는, 프로세서 디바이스.
  7. 제 3 항에 있어서,
    상기 적어도 하나의 조정은 상기 복수의 VSoC 중 미리 결정된 VSoC와 상기 복수의 리소스들 중 미리 결정된 리소스 사이의 정렬에 대한 조정을 포함하고, 그리고 상기 구성 유닛은 상기 미리 결정된 리소스의 사용을 포기하는 상기 미리 결정된 VSoC에 기초하여 또는 상기 구성 유닛에 적용된 미리 결정된 시간 값의 만료에 기초하여 상기 적어도 하나의 조정을 적용하도록 더 구성되는, 프로세서 디바이스.
  8. 제 1 항에 있어서,
    상기 리소스 정렬 유닛에 동작하게 커플링된 모니터링 유닛을 더 포함하고,
    상기 모니터링 유닛은 적어도 하나의 이벤트의 적어도 하나의 경우 (instance) 를 모니터링하고 상기 리소스 정렬을 동적으로 조정하도록 상기 리소스 정렬 유닛을 트리거링하기 위해 상기 적어도 하나의 이벤트의 상기 적어도 하나의 경우를 상기 리소스 정렬 유닛으로 전달하도록 구성되는, 프로세서 디바이스.
  9. 제 8 항에 있어서,
    상기 적어도 하나의 이벤트의 상기 적어도 하나의 경우를 모니터링하기 위해, 상기 적어도 하나의 모니터링 유닛은 상기 복수의 리소스들 중 적어도 하나의 리소스의 상태 또는 상기 복수의 VSoC 중 적어도 하나의 가상 시스템 상태를 모니터링하도록 더 구성되는, 프로세서 디바이스.
  10. 제 9 항에 있어서,
    상기 복수의 리소스들 중 상기 적어도 하나의 리소스의 상기 상태는 고장 상태, 활용 상태, 또는 이들의 조합을 포함하는, 프로세서 디바이스.
  11. 제 9 항에 있어서,
    상기 복수의 VSoC 중 상기 적어도 하나의 가상 시스템 상태는 고장 상태, 활용 상태, 또는 이들의 조합을 포함하는, 프로세서 디바이스.
  12. 제 1 항에 있어서,
    상기 리소스 정렬은 상기 복수의 리소스들과 상기 복수의 VSoC 간의 복수의 맵핑들을 포함하고, 그리고
    상기 리소스 정렬을 동적으로 조정하기 위해, 상기 리소스 정렬 유닛은 상기 적어도 하나의 이벤트에 응답하여 상기 복수의 맵핑들 중 적어도 하나의 맵핑을 동적으로 조정하도록 더 구성되는, 프로세서 디바이스.
  13. 제 12 항에 있어서,
    상기 적어도 하나의 맵핑은 상기 복수의 리소스들 중 미리 결정된 리소스를, 상기 복수의 VSoC 중 미리 결정된 VSoC와 정렬하고; 그리고
    상기 적어도 하나의 맵핑을 동적으로 조정하는 것은, 상기 미리 결정된 VSoC가 상기 미리 결정된 리소스를 채용하는 것을 방해하도록 그리고 상기 복수의 VSoC 중 적어도 하나의 다른 VSoC로 하여금 상기 미리 결정된 리소스를 채용하게 하도록 상기 적어도 하나의 다른 VSoC와 상기 미리 결정된 리소스를 정렬하는 것을 포함하는, 프로세서 디바이스.
  14. 제 1 항에 있어서,
    상기 리소스 정렬을 동적으로 조정하기 위해, 상기 리소스 정렬 유닛은 적어도 하나의 맵핑을 상기 리소스 정렬에 부가하도록 더 구성되고, 상기 적어도 하나의 맵핑은 상기 복수의 VSoC 중 일 VSoC와 상기 복수의 리소스들 중 일 리소스를 정렬하는, 프로세서 디바이스.
  15. 제 1 항에 있어서,
    상기 리소스 정렬은 상기 복수의 리소스들과 상기 복수의 VSoC 사이의 복수의 맵핑들을 포함하고; 그리고
    상기 리소스 정렬을 동적으로 조정하기 위해, 상기 복수의 맵핑들로부터 적어도 하나의 맵핑을 제거하는 것을 포함하는, 프로세서 디바이스.
  16. 제 1 항에 있어서,
    상기 리소스 정렬은 상기 복수의 VSoC 중 다수의 VSoC로 하여금 상기 복수의 리소스들 중 미리 결정된 리소스를 공유하게 인에이블하는, 프로세서 디바이스.
  17. 제 16 항에 있어서,
    상기 복수의 VSoC 중 상기 다수의 VSoC는 각각 상기 미리 결정된 리소스에 대해 상기 각각의 VSoC에 할당된 각각의 사용량 백분율에 기초하여 상기 미리 결정된 리소스를 사용하도록 구성되는, 프로세서 디바이스.
  18. 제 1 항에 있어서,
    상기 리소스 정렬은 상기 복수의 VSoC 중 미리 결정된 VSoC로 하여금 미리 결정된 리소스를 독점적으로 사용하게 인에이블하는, 프로세서 디바이스.
  19. 제 1 항에 있어서,
    상기 적어도 하나의 이벤트는 상기 프로세서 디바이스 외부에서 발생하는 외부 이벤트를 포함하는, 프로세서 디바이스.
  20. 제 1 항에 있어서,
    상기 적어도 하나의 이벤트는 시각에 기초하는 미리 스케줄링된 이벤트를 포함하는, 프로세서 디바이스.
  21. 제 1 항에 있어서,
    상기 적어도 하나의 이벤트는 상기 복수의 리소스들 중 미리 결정된 리소스의 오작동을 나타내는 고장 이벤트를 포함하는, 프로세서 디바이스.
  22. 제 1 항에 있어서,
    상기 적어도 하나의 이벤트는 상기 복수의 리소스들 중 적어도 하나의 리소스가 오버서브스크립되었다는 (oversubscribed) 것을 나타내거나 상기 복수의 VSoC 중 적어도 하나의 VSoC가 오버서브스크립되었다는 것을 나타내는 오버서브스크립션 이벤트를 포함하는, 프로세서 디바이스.
  23. 제 1 항에 있어서,
    상기 적어도 하나의 이벤트는 상기 복수의 VSoC 중 미리 결정된 VSoC에 할당된 상기 복수의 리소스들 중 미리 결정된 리소스가 문턱값 이하인 상기 미리 결정된 VSoC에 의한 사용량 백분율을 갖는다는 것을 나타내는 유휴 이벤트를 포함하는,
  24. 제 1 항에 있어서,
    상기 리소스 정렬은 상기 적어도 하나의 이벤트에 의해 유발되지 않으면 쓰루풋의 손실을 방지하도록 동적으로 조정되는, 프로세서 디바이스.
  25. 복수의 VSoC와 상기 복수의 리소스들 사이의 리소스 정렬에 따라 복수의 리소스들의 리소스들을 활용하도록 프로세서 디바이스의 상기 복수의 VSoC를 구성하는 단계; 및
    적어도 하나의 이벤트에 응답하여 상기 리소스 정렬을 동적으로 조정하는 단계를 포함하는, 방법.
  26. 제 25 항에 있어서,
    상기 적어도 하나의 이벤트에 응답하여 상기 리소스 정렬을 동적으로 조정하는 단계는 상기 적어도 하나의 이벤트에 응답하여 상기 프로세서 디바이스의 쓰루풋을 유발하는, 방법.
  27. 제 25 항에 있어서,
    상기 리소스 정렬에 대한 적어도 하나의 조정에 응답하여 상기 동적으로 조정된 리소스를 적용하는 단계를 더 포함하는, 방법.
  28. 제 27 항에 있어서,
    상기 리소스 정렬에 대한 상기 적어도 하나의 조정을 검출하는 단계를 더 포함하는, 방법.
  29. 제 27 항에 있어서,
    상기 리소스 정렬에 대한 상기 적어도 하나의 조정의 전달을 수신하는 단계를 더 포함하는, 방법.
  30. 제 27 항에 있어서,
    상기 조정된 리소스 정렬에 따라 상기 리소스들을 활용하도록 상기 복수의 VSoC를 집행하게 상기 프로세서 디바이스의 구성을 업데이트하는 단계를 더 포함하는, 방법.
  31. 제 27 항에 있어서,
    상기 적어도 하나의 조정은 상기 복수의 VSoC 중 미리 결정된 VSoC와 상기 복수의 리소스들 중 미리 결정된 리소스 사이의 정렬에 대한 조정을 포함하고, 상기 적어도 하나의 조정을 적용하는 단계는 상기 미리 결정된 리소스의 사용을 포기하는 상기 미리 결정된 VSoC에 기초하거나 상기 구성 유닛에 적용된 미리 결정된 시간 값의 만료에 기초하는, 방법.
  32. 제 25 항에 있어서,
    상기 적어도 하나의 이벤트의 적어도 하나의 경우를 모니터링하는 단계 및 상기 리소스 정렬의 동적 조정을 트리거링하도록 상기 적어도 하나의 이벤트의 상기 적어도 하나의 경우를 전달하는 단계를 더 포함하는, 방법.
  33. 제 32 항에 있어서,
    상기 모니터링하는 단계는 상기 복수의 리소스들 중 적어도 하나의 리소스의 상태 또는 상기 복수의 VSoC 중 적어도 하나의 VSoC의 상태를 모니터링하는 단계를 포함하는, 방법.
  34. 제 33 항에 있어서,
    상기 복수의 리소스들 중 상기 적어도 하나의 리소스의 상기 상태는 고장 상태, 활용 상태, 또는 이들의 조합을 포함하는, 방법.
  35. 제 33 항에 있어서,
    상기 복수의 VSoC의 상기 적어도 하나의 가상 시스템 상태는 고장 상태, 활용 상태, 또는 이들의 조합을 포함하는, 방법.
  36. 제 25 항에 있어서,
    상기 리소스 정렬은 상기 복수의 리소스들과 상기 복수의 VSoC 간의 복수의 맵핑들을 포함하고, 그리고
    상기 리소스 정렬을 동적으로 조정하는 단계는, 상기 적어도 하나의 이벤트에 응답하여, 상기 복수의 맵핑들 중 적어도 하나의 맵핑을 동적으로 조정하는 단계를 포함하는, 방법.
  37. 제 36 항에 있어서,
    상기 적어도 하나의 맵핑은 상기 복수의 리소스들 중 미리 결정된 리소스를 상기 복수의 VSoC 중 미리 결정된 VSoC와 정렬하고, 그리고
    상기 적어도 하나의 맵핑을 동적으로 조정하는 단계는, 상기 미리 결정된 VSoC가 상기 미리 결정된 리소스를 채용하는 것을 방해하도록 그리고 상기 복수의 VSoC 중 적어도 하나의 다른 VSoC로 하여금 상기 미리 결정된 리소스를 채용하게 하도록 상기 적어도 하나의 다른 VSoC와 상기 미리 결정된 리소스를 정렬하는 단계를 포함하는, 방법.
  38. 제 25 항에 있어서,
    상기 리소스 정렬을 동적으로 조정하는 단계는, 적어도 하나의 맵핑을 상기 리소스 정렬에 부가하는 단계를 포함하고, 상기 적어도 하나의 맵핑은 상기 복수의 VSoC 중 일 VSoC와 상기 복수의 리소스들 중 일 리소스를 정렬하는, 방법.
  39. 제 25 항에 있어서,
    상기 리소스 정렬은 상기 복수의 리소스들과 상기 복수의 VSoC 사이의 복수의 맵핑들을 포함하고; 그리고
    상기 리소스 정렬을 동적으로 조정하는 단계는 상기 복수의 맵핑들로부터 적어도 하나의 맵핑을 제거하는 단계를 포함하는, 방법.
  40. 제 25 항에 있어서,
    상기 리소스 정렬에 기초하여 상기 복수의 VSoC 중 다수의 VSoC로 하여금 상기 복수의 리소스들 중 미리 결정된 리소스를 공유하게 인에이블하는 단계를 더 포함하는, 방법.
  41. 제 40 항에 있어서,
    상기 다수의 VSoC를 인에이블하는 단계는 상기 미리 결정된 리소스에 대해 상기 각각의 VSoC에 할당된 각각의 사용량 백분율에 기초하여 상기 미리 결정된 리소스를 사용하도록 상기 다수의 VSoC를 구성하는 단계를 포함하는, 방법.
  42. 제 25 항에 있어서,
    상기 리소스 정렬에 기초하여, 상기 복수의 VSoC 중 미리 결정된 VSoC로 하여금 미리 결정된 리소스를 독점적으로 사용하도록 인에이블하는 단계를 더 포함하는, 방법.
  43. 제 25 항에 있어서,
    상기 적어도 하나의 이벤트는 프로세서 디바이스 외부에서 발생하는 외부 이벤트를 포함하는, 방법.
  44. 제 25 항에 있어서,
    상기 적어도 하나의 이벤트는 시각에 기초하는 미리 스케줄링된 이벤트를 포함하는, 방법.
  45. 제 25 항에 있어서,
    상기 적어도 하나의 이벤트는 상기 복수의 리소스들 중 미리 결정된 리소스의 오작동을 나타내는 고장 이벤트를 포함하는, 방법.
  46. 제 25 항에 있어서,
    상기 적어도 하나의 이벤트는 상기 복수의 리소스들 중 적어도 하나의 리소스가 오버서브스크립되었다는 것을 나타내거나 상기 복수의 VSoC 중 적어도 하나의 VSoC가 오버서브스크립되었다는 것을 나타내는 오버서브스크립션 이벤트를 포함하는, 방법.
  47. 제 25 항에 있어서,
    상기 적어도 하나의 이벤트는 상기 복수의 VSoC 중 미리 결정된 VSoC에 할당된 상기 복수의 리소스들 중 미리 결정된 리소스가 문턱값 이하인 상기 미리 결정된 VSoC에 의한 사용량 백분율을 갖는다는 것을 나타내는 유휴 이벤트를 포함하는, 방법.
  48. 제 25 항에 있어서,
    상기 리소스 정렬을 동적으로 조정하는 단계는 상기 적어도 하나의 이벤트에 의해 유발되지 않으면 쓰루풋의 손실을 예방하는, 방법.
  49. 인스트럭션들의 시퀀스가 인코딩되는, 비일시적인 컴퓨터 판독가능 매체에 있어서,
    상기 인스트럭션들의 시퀀스는 프로세서 디바이스에 의해 로딩되고 실행될 때, 상기 프로세서 디바이스로 하여금,
    복수의 VSoC와 상기 복수의 리소스들 사이의 리소스 정렬에 따라 복수의 리소스들의 리소스들을 활용하도록 상기 프로세서 디바이스의 상기 복수의 VSoC를 구성하고, 그리고
    적어도 하나의 이벤트에 응답하여 상기 리소스 정렬을 동적으로 조정하게 하는, 비일시적인 컴퓨터 판독가능 매체.
  50. 제 49 항에 있어서,
    상기 적어도 하나의 이벤트에 응답하여 상기 리소스 정렬을 동적으로 조정하는 단계는 상기 적어도 하나의 이벤트에 응답하여 상기 프로세서 디바이스의 쓰루풋을 유발하는, 비일시적인 컴퓨터 판독가능 매체.
  51. 제 49 항에 있어서,
    상기 인스트럭션들의 시퀀스는 상기 프로세서 디바이스로 하여금 또한 상기 리소스 정렬에 대한 적어도 하나의 조정에 응답하여 상기 동적으로 조정된 리소스 정렬을 적용하게 하는, 비일시적인 컴퓨터 판독가능 매체.
  52. 제 51 항에 있어서,
    상기 인스트럭션들의 시퀀스는 상기 프로세서 디바이스로 하여금 또한 상기 리소스 정렬에 대한 상기 적어도 하나의 조정을 검출하게 하는, 비일시적인 컴퓨터 판독가능 매체.
  53. 제 51 항에 있어서,
    상기 인스트럭션들의 시퀀스는 상기 프로세서 디바이스로 하여금 또한 상기 리소스 정렬에 대한 상기 적어도 하나의 조정의 전달을 수신하게 하는, 비일시적인 컴퓨터 판독가능 매체.
  54. 제 51 항에 있어서,
    상기 인스트럭션들의 시퀀스는 상기 프로세서 디바이스로 하여금 또한 상기 조정된 리소스 정렬에 따라 상기 리소스들을 활용하도록 상기 복수의 VSoC를 집행하게 상기 프로세서 디바이스의 구성을 업데이트하게 하는, 비일시적인 컴퓨터 판독가능 매체.
  55. 제 51 항에 있어서,
    상기 적어도 하나의 조정은 상기 복수의 VSoC 중 미리 결정된 VSoC와 상기 복수의 리소스들 중 미리 결정된 리소스 사이의 정렬에 대한 조정을 포함하고, 상기 적어도 하나의 조정을 적용하는 것은 상기 미리 결정된 리소스의 사용을 포기하는 상기 미리 결정된 VSoC에 기초하거나 상기 구성 유닛에 적용된 미리 결정된 시간 값의 만료에 기초하는, 비일시적인 컴퓨터 판독가능 매체.
  56. 제 49 항에 있어서,
    상기 인스트럭션들의 시퀀스는 상기 프로세서 디바이스로 하여금 또한 상기 적어도 하나의 이벤트의 적어도 하나의 경우를 모니터링하고 그리고 상기 리소스 정렬의 동적 조정을 트리거링하도록 상기 적어도 하나의 이벤트의 상기 적어도 하나의 경우를 전달하게 하는, 비일시적인 컴퓨터 판독가능 매체.
  57. 제 56 항에 있어서,
    상기 인스트럭션들의 시퀀스는 상기 프로세서 디바이스로 하여금 또한 상기 복수의 리소스들 중 적어도 하나의 리소스의 상태 또는 상기 복수의 VSoC 중 적어도 하나의 VSoC 상태를 모니터링하게 하는, 비일시적인 컴퓨터 판독가능 매체.
  58. 제 57 항에 있어서,
    상기 복수의 리소스들 중 상기 적어도 하나의 리소스의 상기 상태는 고장 상태, 활용 상태, 또는 이들의 조합을 포함하는, 비일시적인 컴퓨터 판독가능 매체.
  59. 제 57 항에 있어서,
    상기 복수의 VSoC의 가상 시스템 상태는 고장 상태, 활용 상태, 또는 이들의 조합을 포함하는, 비일시적인 컴퓨터 판독가능 매체.
  60. 제 49 항에 있어서,
    상기 리소스 정렬은 상기 복수의 리소스들과 상기 복수의 VSoC 간의 복수의 맵핑들을 포함하고, 그리고
    상기 인스트럭션들의 시퀀스는 상기 프로세서 디바이스로 하여금 또한 상기 적어도 하나의 이벤트에 응답하여, 상기 복수의 맵핑들 중 적어도 하나의 맵핑을 동적으로 조정하게 하는, 비일시적인 컴퓨터 판독가능 매체.
  61. 제 60 항에 있어서,
    상기 적어도 하나의 맵핑은 상기 복수의 리소스들 중 미리 결정된 리소스를 상기 복수의 VSoC 중 미리 결정된 VSoC와 정렬하고, 그리고
    상기 인스트럭션들의 시퀀스는 상기 프로세서 디바이스로 하여금 또한 상기 미리 결정된 VSoC가 상기 미리 결정된 리소스를 채용하는 것을 방해하도록 그리고 상기 복수의 VSoC 중 적어도 하나의 다른 VSoC로 하여금 상기 미리 결정된 리소스를 채용하게 하도록 상기 적어도 하나의 다른 VSoC와 상기 미리 결정된 리소스를 정렬하게 하는, 비일시적인 컴퓨터 판독가능 매체.
  62. 제 49 항에 있어서,
    상기 인스트럭션들의 시퀀스는 상기 프로세서 디바이스로 하여금 또한 적어도 하나의 맵핑을 상기 리소스 정렬에 부가하게 하고, 상기 적어도 하나의 맵핑은 상기 복수의 VSoC 중 일 VSoC와 상기 복수의 리소스들 중 일 리소스를 정렬하는, 비일시적인 컴퓨터 판독가능 매체.
  63. 제 49 항에 있어서,
    상기 리소스 정렬은 상기 복수의 리소스들과 상기 복수의 VSoC 사이의 복수의 맵핑들을 포함하고; 그리고
    상기 인스트럭션들의 시퀀스는 상기 프로세서 디바이스로 하여금 또한 상기 복수의 맵핑들로부터 적어도 하나의 맵핑을 제거하게 하는, 비일시적인 컴퓨터 판독가능 매체.
  64. 제 49 항에 있어서,
    상기 인스트럭션들의 시퀀스는 상기 프로세서 디바이스로 하여금 또한 상기 리소스 정렬에 기초하여 상기 복수의 VSoC 중 다수의 VSoC가 상기 복수의 리소스들 중 미리 결정된 리소스를 공유하게 인에이블하게 하는, 비일시적인 컴퓨터 판독가능 매체.
  65. 제 64 항에 있어서,
    상기 인스트럭션들의 시퀀스는 상기 프로세서 디바이스로 하여금 또한 상기 복수의 VSoC 중 상기 다수의 VSoC가 상기 미리 결정된 리소스에 대해 상기 각각의 VSoC에 할당된 각각의 사용량 백분율에 기초하여 상기 미리 결정된 리소스를 사용하게 하는, 비일시적인 컴퓨터 판독가능 매체.
  66. 제 49 항에 있어서,
    상기 인스트럭션들의 시퀀스는 상기 프로세서 디바이스로 하여금 또한 상기 리소스 정렬에 기초하여, 상기 복수의 VSoC 중 미리 결정된 VSoC가 미리 결정된 리소스를 독점적으로 사용하게 인에이블하는, 비일시적인 컴퓨터 판독가능 매체.
  67. 제 49 항에 있어서,
    상기 적어도 하나의 이벤트는 프로세서 디바이스 외부에서 발생하는 외부 이벤트를 포함하는, 비일시적인 컴퓨터 판독가능 매체.
  68. 제 49 항에 있어서,
    상기 적어도 하나의 이벤트는 시각에 기초하는 미리 스케줄링된 이벤트를 포함하는, 비일시적인 컴퓨터 판독가능 매체.
  69. 제 49 항에 있어서,
    상기 적어도 하나의 이벤트는 상기 복수의 리소스들 중 미리 결정된 리소스의 오작동을 나타내는 고장 이벤트를 포함하는, 비일시적인 컴퓨터 판독가능 매체.
  70. 제 49 항에 있어서,
    상기 적어도 하나의 이벤트는 상기 복수의 리소스들 중 적어도 하나의 리소스가 오버서브스크립되었다는 것을 나타내거나 상기 복수의 VSoC 중 적어도 하나의 VSoC가 오버서브스크립되었다는 것을 나타내는 오버서브스크립션 이벤트를 포함하는, 비일시적인 컴퓨터 판독가능 매체.
  71. 제 49 항에 있어서,
    상기 적어도 하나의 이벤트는 상기 복수의 VSoC 중 미리 결정된 VSoC에 할당된 상기 복수의 리소스들 중 미리 결정된 리소스가 문턱값 이하인 상기 미리 결정된 VSoC에 의한 사용량 백분율을 갖는다는 것을 나타내는 유휴 이벤트를 포함하는, 비일시적인 컴퓨터 판독가능 매체.
  72. 제 49 항에 있어서,
    상기 리소스 정렬을 동적으로 조정함으로써 상기 적어도 하나의 이벤트에 의해 유발되지 않으면 쓰루풋의 손실을 방지하는, 비일시적인 컴퓨터 판독가능 매체.
KR1020170044516A 2016-04-22 2017-04-06 동적 VSoC를 위한 방법 및 장치 KR102362826B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220013485A KR102516167B1 (ko) 2016-04-22 2022-01-28 동적 VSoC를 위한 방법 및 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/136,330 US10235211B2 (en) 2016-04-22 2016-04-22 Method and apparatus for dynamic virtual system on chip
US15/136,330 2016-04-22

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220013485A Division KR102516167B1 (ko) 2016-04-22 2022-01-28 동적 VSoC를 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20170121056A true KR20170121056A (ko) 2017-11-01
KR102362826B1 KR102362826B1 (ko) 2022-02-11

Family

ID=60020886

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020170044516A KR102362826B1 (ko) 2016-04-22 2017-04-06 동적 VSoC를 위한 방법 및 장치
KR1020220013485A KR102516167B1 (ko) 2016-04-22 2022-01-28 동적 VSoC를 위한 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020220013485A KR102516167B1 (ko) 2016-04-22 2022-01-28 동적 VSoC를 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US10235211B2 (ko)
JP (2) JP2017199369A (ko)
KR (2) KR102362826B1 (ko)
CN (2) CN116820763A (ko)
DE (1) DE102017206710A1 (ko)
TW (1) TWI800480B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020105749A1 (ko) * 2018-11-21 2020-05-28 엘지전자 주식회사 차량에 구비되는 장치 및 그 제어 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826271B2 (en) 2010-04-28 2014-09-02 Cavium, Inc. Method and apparatus for a virtual system on chip
US11159376B2 (en) * 2018-05-24 2021-10-26 International Business Machines Corporation System and method for network infrastructure analysis and convergence
JP7102950B2 (ja) * 2018-05-30 2022-07-20 富士通株式会社 情報処理システム、情報処理システムの制御方法及び管理装置の制御プログラム
US11840219B2 (en) * 2019-01-09 2023-12-12 Lg Electronics Inc. Method for controlling vehicle through multi SoC system
US11316713B2 (en) 2019-11-25 2022-04-26 International Business Machines Corporation Virtual drawers in a server
JP7342753B2 (ja) 2020-03-18 2023-09-12 株式会社デンソー 車両用位置特定装置及び車両用位置特定方法
WO2022187432A2 (en) * 2021-03-03 2022-09-09 Battelle Memorial Institute Systems and methods for providing virtual system-on-chip (vsoc) instances

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110271277A1 (en) * 2010-04-28 2011-11-03 Cavium Networks, Inc. Method and apparatus for a virtual system on chip
JP2013257789A (ja) * 2012-06-13 2013-12-26 Fujitsu Marketing Ltd サーバ制御装置およびサーバ制御プログラム
KR20140013291A (ko) * 2012-07-23 2014-02-05 인하대학교 산학협력단 그리드 컴퓨팅에서 동적 유효자원 재배치 기반 작업 할당 장치 및 방법
JP2015529918A (ja) * 2012-08-23 2015-10-08 アマゾン・テクノロジーズ、インコーポレイテッド 仮想計算機インスタンスのスケーリング
US20160092677A1 (en) * 2014-09-30 2016-03-31 Amazon Technologies, Inc. Allocation of shared system resources

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381682B2 (en) 1998-06-10 2002-04-30 Compaq Information Technologies Group, L.P. Method and apparatus for dynamically sharing memory in a multiprocessor system
US6587938B1 (en) 1999-09-28 2003-07-01 International Business Machines Corporation Method, system and program products for managing central processing unit resources of a computing environment
JP2001331331A (ja) * 2000-05-18 2001-11-30 Nec Corp 唯一プロセス・マルチスレッドオペレーティングシステム
US7054930B1 (en) * 2000-10-26 2006-05-30 Cisco Technology, Inc. System and method for propagating filters
JP2002202959A (ja) 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
JP4087072B2 (ja) 2001-01-25 2008-05-14 株式会社日立製作所 ストレージシステム及び仮想プライベートボリューム制御方法
US7561526B2 (en) * 2002-12-17 2009-07-14 Nortel Networks Limited Communication network route determination
US7299468B2 (en) 2003-04-29 2007-11-20 International Business Machines Corporation Management of virtual machines to utilize shared resources
WO2005036367A2 (en) 2003-10-08 2005-04-21 Unisys Corporation Virtual data center that allocates and manages system resources across multiple nodes
DE102004037024B4 (de) * 2004-07-30 2006-07-13 Siemens Ag Verfahren und Netzelement für ein die Dienstgüte erhaltendes Umrouten von Verkehr in Netzen mit langsamer Routenkonvergenz
US20060070065A1 (en) 2004-09-29 2006-03-30 Zimmer Vincent J Memory support for heterogeneous virtual machine guests
US7831749B2 (en) 2005-02-03 2010-11-09 Solarflare Communications, Inc. Including descriptor queue empty events in completion events
US8141156B1 (en) * 2005-12-28 2012-03-20 At&T Intellectual Property Ii, L.P. Method and apparatus for mitigating routing misbehavior in a network
US8295275B2 (en) 2006-03-20 2012-10-23 Intel Corporation Tagging network I/O transactions in a virtual machine run-time environment
JP4756603B2 (ja) 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
US7958320B2 (en) 2006-12-05 2011-06-07 Intel Corporation Protected cache architecture and secure programming paradigm to protect applications
US8024728B2 (en) 2006-12-28 2011-09-20 International Business Machines Corporation Virtual machine dispatching to maintain memory affinity
JP4620097B2 (ja) * 2007-09-19 2011-01-26 株式会社東芝 仮想計算機システム及び同システムにおけるスケジュール調整方法
US8200992B2 (en) 2007-09-24 2012-06-12 Cognitive Electronics, Inc. Parallel processing computer systems with reduced power consumption and methods for providing the same
CN101631110B (zh) 2008-07-15 2013-01-02 国际商业机器公司 基于相对位置动态确定连接建立机制的装置和方法
US8898049B2 (en) 2009-04-20 2014-11-25 International Business Machines Corporation System level power profiling of embedded applications executing on virtual multicore system-on-chip platforms
US9740533B2 (en) * 2009-08-03 2017-08-22 Oracle International Corporation Altruistic dependable memory overcommit for virtual machines
US11132237B2 (en) * 2009-09-24 2021-09-28 Oracle International Corporation System and method for usage-based application licensing in a hypervisor virtual execution environment
CN201540564U (zh) * 2009-12-21 2010-08-04 东南大学 利用虚存机制对片上异构存储资源动态分配的电路
KR101658035B1 (ko) * 2010-03-12 2016-10-04 삼성전자주식회사 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법
US8543728B2 (en) * 2010-03-25 2013-09-24 Verizon Patent And Licensing Inc. Dampening interface flapping
US8909783B2 (en) * 2010-05-28 2014-12-09 Red Hat, Inc. Managing multi-level service level agreements in cloud-based network
JP2012018515A (ja) * 2010-07-07 2012-01-26 Fujitsu Ltd 情報処理装置,制御方法,制御プログラム
US8543471B2 (en) 2010-08-24 2013-09-24 Cisco Technology, Inc. System and method for securely accessing a wirelessly advertised service
US9600315B2 (en) * 2010-10-22 2017-03-21 Netapp, Inc. Seamless takeover of a stateful protocol session in a virtual machine environment
EP2665228B1 (en) * 2011-04-07 2020-05-20 Huawei Technologies Co., Ltd. Method for adjusting resources dynamically and scheduling device
US8484392B2 (en) * 2011-05-31 2013-07-09 Oracle International Corporation Method and system for infiniband host channel adaptor quality of service
US8954961B2 (en) * 2011-06-30 2015-02-10 International Business Machines Corporation Geophysical virtual machine policy allocation using a GPS, atomic clock source or regional peering host
US20130024857A1 (en) * 2011-07-19 2013-01-24 Nexenta Systems, Inc. Method and system for flexible resource mapping for virtual storage appliances
US9639379B1 (en) * 2011-07-19 2017-05-02 Open Invention Network Llc Dynamic configuration of virtual machines
US20130024856A1 (en) * 2011-07-19 2013-01-24 Nexenta Systems, Inc. Method and apparatus for flexible booting virtual storage appliances
TWI533146B (zh) * 2011-11-10 2016-05-11 財團法人資訊工業策進會 虛擬資源調整裝置、方法及儲存其之電腦可讀取紀錄媒體
US8977886B2 (en) 2012-02-14 2015-03-10 Alcatel Lucent Method and apparatus for rapid disaster recovery preparation in a cloud network
US20130263117A1 (en) * 2012-03-28 2013-10-03 International Business Machines Corporation Allocating resources to virtual machines via a weighted cost ratio
US8964735B2 (en) 2012-05-18 2015-02-24 Rackspace Us, Inc. Translating media access control (MAC) addresses in a network hierarchy
US20140007097A1 (en) * 2012-06-29 2014-01-02 Brocade Communications Systems, Inc. Dynamic resource allocation for virtual machines
CN103888420A (zh) * 2012-12-20 2014-06-25 中国农业银行股份有限公司广东省分行 一种虚拟服务器系统
US9223597B2 (en) * 2012-12-21 2015-12-29 Commvault Systems, Inc. Archiving virtual machines in a data storage system
KR101718374B1 (ko) 2013-01-11 2017-03-21 후아웨이 테크놀러지 컴퍼니 리미티드 네트워크 장치에 대한 네트워크 기능 가상화
JP2014138407A (ja) * 2013-01-18 2014-07-28 Hitachi Ltd ノード装置、通信システム及び仮想スイッチの切替方法
US9135126B2 (en) * 2013-02-07 2015-09-15 International Business Machines Corporation Multi-core re-initialization failure control system
US20140258595A1 (en) * 2013-03-11 2014-09-11 Lsi Corporation System, method and computer-readable medium for dynamic cache sharing in a flash-based caching solution supporting virtual machines
JP6191686B2 (ja) * 2013-03-21 2017-09-06 富士通株式会社 情報処理装置、資源割当方法、及びプログラム
TW201525717A (zh) * 2013-12-25 2015-07-01 Univ Nat Pingtung Sci & Tech 雲端服務的資源調適方法
US9519596B2 (en) * 2014-03-06 2016-12-13 Stmicroelectronics (Grenoble 2) Sas Resource access control in a system-on-chip
US9838253B2 (en) 2014-04-10 2017-12-05 Fujitsu Limited Object-oriented network virtualization
US9424063B2 (en) * 2014-04-29 2016-08-23 Vmware, Inc. Method and system for generating remediation options within a cluster of host computers that run virtual machines
CN106416156B (zh) 2014-05-23 2020-04-07 日本电气株式会社 通信装置、通信方法、通信系统和程序
US9690608B2 (en) * 2014-06-12 2017-06-27 Vmware, Inc. Method and system for managing hosts that run virtual machines within a cluster
US9800592B2 (en) * 2014-08-04 2017-10-24 Microsoft Technology Licensing, Llc Data center architecture that supports attack detection and mitigation
CN104331331B (zh) * 2014-11-02 2017-07-28 中国科学技术大学 任务数目和性能感知的可重构多核处理器的资源分配方法
US9584377B2 (en) * 2014-11-21 2017-02-28 Oracle International Corporation Transparent orchestration and management of composite network functions
US9462084B2 (en) * 2014-12-23 2016-10-04 Intel Corporation Parallel processing of service functions in service function chains
JP6447217B2 (ja) * 2015-02-17 2019-01-09 富士通株式会社 実行情報通知プログラム、情報処理装置および情報処理システム
JP2016163180A (ja) * 2015-03-02 2016-09-05 日本電気株式会社 通信システム、通信方法、及びプログラム
US9769206B2 (en) * 2015-03-31 2017-09-19 At&T Intellectual Property I, L.P. Modes of policy participation for feedback instances
CN104915151B (zh) * 2015-06-02 2018-12-07 杭州电子科技大学 多虚拟机系统中一种主动共享的内存超量分配方法
US9973432B2 (en) * 2015-07-10 2018-05-15 International Business Machines Corporation Load balancing in a virtualized computing environment based on a fabric limit
US10169066B2 (en) * 2015-08-06 2019-01-01 Ionroad Technologies Ltd. System and method for enhancing advanced driver assistance system (ADAS) as a system on a chip (SOC)
JP2017107274A (ja) * 2015-12-07 2017-06-15 富士通株式会社 仮想マシン増設方法、情報処理装置および仮想マシン増設システム
US9967165B2 (en) * 2015-12-07 2018-05-08 Keysight Technologies Singapore (Holdings) Pte. Ltd. Methods, systems, and computer readable media for packet monitoring in a virtual environment
US20170177395A1 (en) * 2015-12-21 2017-06-22 Mingqiu Sun Embedded architecture based on process virtual machine
EP3188017A1 (en) * 2015-12-29 2017-07-05 Harmonic Inc. Scheduler of processes having timed predictions of computing loads
JP6604220B2 (ja) * 2016-02-02 2019-11-13 富士通株式会社 管理装置、管理システム、及びスケーリング方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110271277A1 (en) * 2010-04-28 2011-11-03 Cavium Networks, Inc. Method and apparatus for a virtual system on chip
JP2013257789A (ja) * 2012-06-13 2013-12-26 Fujitsu Marketing Ltd サーバ制御装置およびサーバ制御プログラム
KR20140013291A (ko) * 2012-07-23 2014-02-05 인하대학교 산학협력단 그리드 컴퓨팅에서 동적 유효자원 재배치 기반 작업 할당 장치 및 방법
JP2015529918A (ja) * 2012-08-23 2015-10-08 アマゾン・テクノロジーズ、インコーポレイテッド 仮想計算機インスタンスのスケーリング
US20160092677A1 (en) * 2014-09-30 2016-03-31 Amazon Technologies, Inc. Allocation of shared system resources

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020105749A1 (ko) * 2018-11-21 2020-05-28 엘지전자 주식회사 차량에 구비되는 장치 및 그 제어 방법

Also Published As

Publication number Publication date
TW201810035A (zh) 2018-03-16
KR102516167B1 (ko) 2023-03-30
TWI800480B (zh) 2023-05-01
JP2017199369A (ja) 2017-11-02
DE102017206710A1 (de) 2017-10-26
JP7334396B2 (ja) 2023-08-29
US10235211B2 (en) 2019-03-19
CN107436808B (zh) 2023-07-07
CN116820763A (zh) 2023-09-29
JP2022123018A (ja) 2022-08-23
TW202328915A (zh) 2023-07-16
CN107436808A (zh) 2017-12-05
KR102362826B1 (ko) 2022-02-11
US20170308408A1 (en) 2017-10-26
KR20220017985A (ko) 2022-02-14

Similar Documents

Publication Publication Date Title
KR102516167B1 (ko) 동적 VSoC를 위한 방법 및 장치
US9882776B2 (en) Methods and apparatus for configuring a virtual network switch
US9680714B2 (en) Methods, systems, and fabrics implementing a distributed network operating system
US9742697B2 (en) Integrated server with switching capabilities and network operating system
US9729469B2 (en) Servers, switches, and systems with virtual interface to external network connecting hardware and integrated networking driver
US9621482B2 (en) Servers, switches, and systems with switching module implementing a distributed network operating system
US9548920B2 (en) System and method for efficient use of flow table space in a network environment
US9306849B2 (en) Methods and systems for managing distribute media access control address tables
WO2019055101A1 (en) LIMITATION OF NETWORK TRAFFIC FLOW IN COMPUTER SYSTEMS
US9304782B2 (en) Network switch, systems, and servers implementing boot image delivery
US11277382B2 (en) Filter-based packet handling at virtual network adapters
US11838206B2 (en) Edge node with datapath split between pods
US20210224138A1 (en) Packet processing with load imbalance handling
TWI838190B (zh) 動態虛擬晶片上系統之方法、其處理器設備以及其非暫態電腦可讀取媒體

Legal Events

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