KR101784900B1 - 컴퓨터, 제어 장치 그리고 데이터 처리 방법 - Google Patents

컴퓨터, 제어 장치 그리고 데이터 처리 방법 Download PDF

Info

Publication number
KR101784900B1
KR101784900B1 KR1020167019031A KR20167019031A KR101784900B1 KR 101784900 B1 KR101784900 B1 KR 101784900B1 KR 1020167019031 A KR1020167019031 A KR 1020167019031A KR 20167019031 A KR20167019031 A KR 20167019031A KR 101784900 B1 KR101784900 B1 KR 101784900B1
Authority
KR
South Korea
Prior art keywords
application request
tag
control device
resource allocation
allocation policy
Prior art date
Application number
KR1020167019031A
Other languages
English (en)
Other versions
KR20160098438A (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 KR20160098438A publication Critical patent/KR20160098438A/ko
Application granted granted Critical
Publication of KR101784900B1 publication Critical patent/KR101784900B1/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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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]
    • 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/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
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Abstract

본 발명의 실시 예들은 컴퓨터, 제어 장치, 그리고 데이터 처리 방법을 제공한다. 컴퓨터는 처리 유닛과 제어 장치를 포함하고, 처리 유닛은, 애플리케이션 요청에 태그를 첨부하고, 태그가 첨부된 애플리케이션 요청을 제어 장치로 전달하도록 구성되며, 제어 장치는, 태그가 첨부된 애플리케이션 요청을 수신하고, 태그 및 미리 저장된 자원 할당 정책에 따라, 애플리케이션 요청에 대하여 할당되는 자원량을 결정하도록 구성되고, 추가로, 컴퓨터의 컴포넌트에게 애플리케이션 요청에 대하여 할당된 자원량에 따라 애플리케이션 요청을 처리하라고 지시하도록 구성되고, 자원 할당 정책은 태그와 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응 관계를 포함하여, 애플리케이션 프로그램의 서비스 품질을 향상시킨다.

Description

컴퓨터, 제어 장치 그리고 데이터 처리 방법{COMPUTER, CONTROL DEVICE AND DATA PROCESSING METHOD}
본 특허출원은, 2014년 4월 30일에 출원되고 발명의 명칭이 "COMPUTER, CONTROL DEVICE, AND DATA PROCESSING METHOD"인 중국 출원 번호 No. 201410182148.1과, 2014년 11월 24일에 출원되고 발명의 명칭이 "COMPUTER, CONTROL DEVICE, AND DATA PROCESSING METHOD"인 중국 출원 번호 No. 201410682375.0에 대한 우선권을 주장하는 바이며, 상기 문헌의 내용은 그 전체로서 원용에 의해 본 명세서에 포함된다.
본 발명은 컴퓨터 분야에 관한 것으로, 더욱 상세하게 말하자면, 컴퓨터, 제어 장치, 그리고 데이터 처리 방법에 관한 것이다.
컴퓨터 또는 서버의 동작 효율성(operating efficiency)을 향상시키기 위하여, 다수의 애플리케이션 프로그램이 컴퓨터 내에서 자원 공유(resource sharing)를 구현할 수 있다. 예를 들어, 다수의 애플리케이션 프로그램들은 동시에 메모리에게 자원을 신청할 수 있으며, 이에 따라 메모리 자원 활용(resource utilization)을 향상시킨다. 그러나 자원을 공유하는 경우, 다수의 애플리케이션 프로그램들이 서로 간섭하며, 그러므로 일부 중요한 애플리케이션 프로그램들이 우선적으로(preferentially) 처리될 수 없으며, 이에 따라 서비스 품질에 영향을 준다.
본 발명의 실시 예들은 애플리케이션 프로그램의 서비스 품질을 향상시키는 데 사용되는 컴퓨터, 제어 장치 그리고 데이터 처리 방법을 제공한다.
본 발명의 실시 예들의 제1 측면(aspect)은 컴퓨터를 제공하며, 상기 컴퓨터는 처리 유닛; 및 제어 장치를 포함하고,
상기 처리 유닛은, 애플리케이션 요청에 태그(tag)를 첨부(attach)하고, 상기 태그가 첨부된 애플리케이션 요청을 상기 제어 장치로 전달하도록 구성되며,
상기 제어 장치는, 상기 태그가 첨부된 애플리케이션 요청을 수신하고, 상기 태그 및 미리 저장된 자원 할당 정책(resource allocation policy)에 따라, 상기 애플리케이션 요청에 대하여 할당되는 자원량(a quantity of resources)을 결정하도록 구성되고, 추가로, 상기 컴퓨터의 컴포넌트에게 상기 애플리케이션 요청에 대하여 할당된 자원량에 따라 상기 애플리케이션 요청을 처리하라고 지시하도록 구성되고, 상기 자원 할당 정책은 상기 태그와 상기 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응 관계(correspondence)를 포함한다.
제1 측면을 참조하여 제1 가능한 구현 방식에서, 상기 제어 장치는 버퍼를 더 포함하고, 상기 버퍼는 적어도 2개의 큐(queue)를 포함하며, 각 큐는 자원량의 범위(range)에 대응하고, 각 큐의 우선순위는 상이하며,
상기 제어 장치는 구체적으로, 상기 애플리케이션 요청에 대하여 할당된 자원량에 따라, 상기 적어도 2개의 큐로부터 상기 애플리케이션 요청에 대응하는 큐를 선택하고, 상기 애플리케이션 요청을 상기 애플리케이션 요청에 대응하는 상기 큐에 저장하도록 구성되고,
상기 컴퓨터의 컴포넌트는 상기 애플리케이션 요청에 대응하는 큐로부터 상기 애플리케이션 요청을 획득하고, 상기 애플리케이션 요청을 실행시키도록 구성된다.
제1 측면을 참조하여 제2 가능한 구현 방식에서, 상기 제어 장치는 구체적으로, 프로세서; 및 캐시를 포함하고, 상기 캐시는 상기 자원 할당 정책을 저장하며,
상기 프로세서는 추가로, 상기 캐시로부터 상기 자원 할당 정책을 획득하도록 구성된다.
제1 측면의 제2 가능한 구현 방식을 참조하여, 제3 가능한 구현 방식에서, 상기 자원 할당 정책은 제어표(control table)를 포함하고, 상기 제어표는 다수의 항목(entry)을 포함하며, 상기 다수의 항목 중 하나의 항목은 상기 태그와 상기 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응 관계를 포함하며,
상기 프로세서는 구체적으로, 상기 태그를 포함하는 질의 명령(query instruction)을 상기 캐시에 전달하도록 구성되고,
상기 캐시는 상기 질의 명령에 따라 상기 태그에 대응하는 항목을 획득하고, 상기 태그에 대응하는 항목을 상기 제어 장치의 상기 프로세서에게 전달하도록 구성된다.
제1 측면 또는 제1 측면의 제1 내지 제3 가능한 구현 방식을 참조하여, 본 발명의 제4 가능한 구현 방식에서, 상기 제어 장치는 프로그래밍(programming) 인터페이스를 더 포함하고, 상기 프로그래밍 인터페이스는 상기 자원 할당 정책을 변경(modify)하도록 구성된다.
제1 측면 또는 제1 측면의 제1 내지 제4 가능한 구현 방식을 참조하여, 제5 가능한 구현 방식에서, 상기 컴퓨터는 메모리를 더 포함하고, 상기 메모리는 노드 관리 소프트웨어를 저장하며,
상기 처리 유닛은 추가로, 상기 노드 관리 소프트웨어를 사용하여 상기 자원 할당 정책을 정의하도록 구성되고,
상기 프로세서는 추가로, 상기 노드 관리 소프트웨어로부터 상기 자원 할당 정책을 획득하고, 상기 자원 할당 정책을 상기 캐시에 기록(write)하도록 구성된다.
제1 측면의 제5 가능한 구현 방식을 참조하여, 본 발명의 제6 가능한 구현 방식에서, 상기 처리 유닛은 태그 레지스터를 더 포함하고,
상기 처리 유닛은 추가로, 상기 노드 관리 소프트웨어를 사용하여 상기 태그를 정의하고, 상기 노드 관리 소프트웨어를 사용하여 상기 태그를 상기 태그 레지스터에 기록하도록 구성되며,
상기 처리 유닛은 추가로, 상기 태그 레지스터로부터 상기 태그를 판독(read)하도록 구성된다.
본 발명의 실시 예들의 제2 측면은 제어 장치를 제공하며, 상기 제어 장치는, 프로세서를 포함하며,
상기 프로세서는 태그가 첨부된 애플리케이션 요청을 수신하고, 상기 태그 및 미리 저장된 자원 할당 정책에 따라, 상기 애플리케이션 요청에 대하여 할당되는 자원량을 결정하도록 구성되며, 추가로, 상기 컴퓨터의 컴포넌트에게 상기 애플리케이션 요청에 대하여 할당된 자원량에 따라 상기 애플리케이션 요청을 처리하라고 지시하도록 구성되고, 상기 자원 할당 정책은 상기 태그와 상기 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응 관계를 포함한다.
제2 측면을 참조하여, 제1 가능한 구현 방식에서, 상기 제어 장치는 버퍼를 더 포함하고, 상기 버퍼는 적어도 2개의 큐를 포함하며, 각 큐는 자원량의 범위에 대응하고, 각 큐의 우선순위는 상이하며,
상기 프로세서는 구체적으로, 상기 애플리케이션 요청에 대하여 할당된 자원량에 따라, 상기 적어도 2개의 큐로부터 상기 애플리케이션 요청에 대응하는 큐를 선택하고, 상기 애플리케이션 요청을 상기 애플리케이션 요청에 대응하는 상기 큐에 저장하도록 구성되고,
상기 컴포넌트는 상기 애플리케이션 요청에 대응하는 큐로부터 상기 애플리케이션 요청을 획득하고, 상기 애플리케이션 요청을 실행시키도록 구성된다.
제2 측면을 참조하여, 제2 가능한 구현 방식에서, 상기 제어 장치는 캐시를 더 포함하고, 상기 캐시는 상기 자원 할당 정책을 저장하며,
상기 프로세서는 추가로, 상기 캐시로부터 상기 자원 할당 정책을 획득하도록 구성된다.
제2 측면의 제2 가능한 구현 방식을 참조하여, 제3 가능한 구현 방식에서, 상기 자원 할당 정책은 제어표를 포함하고, 상기 제어표는 다수의 항목을 포함하며, 상기 다수의 항목 중 하나의 항목은 상기 태그와 상기 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응 관계를 포함하고,
상기 프로세서는 구체적으로, 상기 태그를 포함하는 질의 명령을 상기 캐시에 전달하도록 구성되며,
상기 캐시는 상기 질의 명령에 따라 상기 태그에 대응하는 항목을 획득하고, 상기 태그에 대응하는 항목을 상기 프로세서에게 전달하도록 구성된다.
제2 측면 또는 제2 측면의 제1 내지 제3 가능한 구현 방식을 참조하여, 제4 가능한 구현 방식에서, 상기 제어 장치는 프로그래밍 인터페이스를 더 포함하며, 상기 프로그래밍 인터페이스는 상기 자원 할당 정책을 변경하도록 구성된다.
제2 측면 또는 제2 측면의 제1 내지 제4 가능한 구현 방식을 참조하여, 제5 가능한 구현 방식에서, 상기 자원 할당 정책은 노드 관리 소프트웨어를 사용하여 상기 컴퓨터에 의해 정의되고, 상기 제어 장치로 전달되며, 상기 노드 관리 소프트웨어는 상기 컴퓨터의 메모리에 저장된다.
본 발명의 실시 예들의 제3 측면은 데이터 처리 방법을 제공하며, 상기 데이터 처리 방법은 제어 장치에 적용되고, 상기 제어 장치는 컴퓨터의 컴포턴트 상에 배치되어 있으며, 상기 데이터 처리 방법은,
상기 제어 장치가, 태그가 첨부된 애플리케이션 요청을 수신하는 단계;
상기 제어 장치가, 상기 태그 및 미리 저장된 자원 할당 정책에 따라, 상기 애플리케이션 요청에 대하여 할당되는 자원량을 결정하는 단계; 및
상기 제어 장치가, 상기 컴퓨터의 컴포넌트에게, 상기 애플리케이션 요청에 대하여 할당된 자원량에 따라 상기 애플리케이션 요청을 처리하도록 지시하는 단계
를 포함하고, 상기 자원 할당 정책은 상기 태그와 상기 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응 관계를 포함한다.
제3 측면을 참조하여, 제1 가능한 구현 방식에서, 상기 제어 장치는 버퍼를 더 포함하고, 상기 버퍼는 적어도 2개의 큐를 포함하며, 각 큐는 자원량의 범위에 대응하고, 각 큐의 우선순위는 상이하며,
상기 제어 장치가, 상기 컴퓨터의 컴포넌트에게, 상기 애플리케이션 요청에 대하여 할당된 자원량에 따라 상기 애플리케이션 요청을 처리하도록 지시하는 단계는,
상기 제어 장치가, 상기 애플리케이션 요청에 대하여 할당된 자원량에 따라, 상기 적어도 2개의 큐로부터 상기 애플리케이션 요청에 대응하는 큐를 선택하고, 상기 컴퓨터의 컴포넌트가 상기 애플리케이션 요청에 대응하는 큐로부터 상기 애플리케이션 요청을 획득하고, 상기 애플리케이션 요청을 실행시키도록, 상기 애플리케이션 요청을 상기 애플리케이션 요청에 대응하는 상기 큐에 저장하는 단계를 포함한다.
제3 측면을 참조하여, 제2 가능한 구현 방식에서, 상기 제어 장치는 프로세서와 캐시를 더 포함하고, 상기 캐시는 상기 자원 할당 정책을 저장하며,
상기 데이터 처리 방법은, 상기 제어 장치의 프로세서가, 상기 캐시로부터 상기 자원 할당 정책을 획득하는 단계를 더 포함한다.
제3 측면의 제2 가능한 구현 방식을 참조하여, 제3 가능한 구현 방식에서, 상기 자원 할당 정책은 제어표를 포함하고, 상기 제어표는 다수의 항목을 포함하며, 상기 다수의 항목 중 하나의 항목은 상기 태그와 상기 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응 관계를 포함하며,
상기 제어 장치의 프로세서가, 상기 캐시로부터 상기 자원 할당 정책을 획득하는 단계는, 상기 프로세서가, 상기 태그를 포함하는 질의 명령을 상기 캐시에 전달하는 단계; 및 상기 캐시가, 상기 질의 명령에 따라 상기 태그에 대응하는 항목을 획득하고, 상기 태그에 대응하는 항목을 상기 제어 장치의 프로세서에게 전달하는 단계를 포함한다.
본 발명의 실시 예들은 컴퓨터를 제공하며, 컴퓨터는 처리 유닛과 제어 장치를 포함한다. 처리 유닛은 애플리케이션 요청에 태그를 첨부하고, 태그가 첨부된 애플리케이션 요청을 제어 장치로 전달하며, 제어 장치는, 태그 및 미리 저장된 자원 할당 정책에 따라, 애플리케이션 요청에 대하여 할당되는 자원량을 결정하고, 컴퓨터의 컴포넌트에게 애플리케이션 요청에 대하여 할당된 자원량에 따라 애플리케이션 요청을 처리하라고 지시한다. 이러한 방식으로, 애플리케이션 요청을 처리하는 경우, 컴퓨터의 컴포넌트는 애플리케이션 요청에 대하여 할당된 자원량에 따라 처리를 수행할 수 있으며, 이는 어느 정도, 자원량이 다수의 애플리케이션 요청들에 의해 상호간에 선점되는((mutually preempted) 것을 방지하며, 이에 따라 서비스 품질을 향상시킨다.
본 발명의 실시 예 또는 종래 기술에서의 기술적 해결 방안을 더욱 명확히 기술하기 위해, 이하에서 본 발명의 실시 예들 또는 종래 기술을 설명할 때 필요한 첨부 도면을 간략하게 소개한다. 분명한 것은, 이어질 설명에서 첨부된 도면은 단지 본 발명의 몇 가지 실시 예를 나타내며, 당업자는 첨부된 도면으로부터 창작 능력 없이도 다른 도면을 도출해 낼 수 있다는 것이다.
도 1은 본 발명의 실시 예에 따른 컴퓨터의 시스템 아키텍쳐(system architecture)의 도이다.
도 2a는 본 발명의 실시 예에 따른 다른 컴퓨터의 시스템 아키텍쳐의 도이다.
도 2b는 본 발명의 실시 예에 따른 제어 장치의 개략적인 구조도이다.
도 3은 본 발명의 실시 예에 따른 다른 제어 장치의 개략적인 구조도이다.
도 4는 본 발명의 실시 예에 따른 또 다른 제어 장치의 개략적인 조도이다.
도 5는 본 발명의 실시 예에 따른 또 다른 제어 장치의 개략적인 구조도이다.
도 6은 본 발명의 실시 예에 따른 제어 평면의 네트워크 아키텍쳐의 개략적인 도이다.
도 7은 본 발명의 실시 예에 따른 노드 관리 소프트웨어의 개략적인 구조도이다.
도 8은 본 발명의 실시 예에 따른 데이터 처리 방법의 개략적인 흐름도이다.
도 9는 본 발명의 실시 예에 따른 다른 데이터 처리 방법의 개략적인 흐름도이다.
도 10은 본 발명의 실시 예에 따른 또 다른 데이터 처리 방법의 개략적인 흐름도이다.
이하에 본 발명의 실시 예에서의 첨부도면을 참조하여 본 발명의 실시 예의 기술적 해결방안을 명확하고 완전하게 설명한다. 명백히, 설명하는 실시 예는 본 발명의 실시 예의 전부가 아니라 일부이다. 당업자가 본 발명의 실시 예에 기초하여 창의적인 노력 없이 얻은 모든 다른 실시 예는 본 발명의 보호 범위에 속한다.
본 발명의 실시 예들은 애플리케이션 프로그램의 서비스 품질을 향상시키는 데 사용되는 컴퓨터, 제어 장치, 그리고 데이터 처리 방법을 제공한다.
도 1은 본 발명의 실시 예에 따른 컴퓨터(10)의 시스템 아키텍쳐의 개략적인 도이다. 도 1에 도시된 바와 같이, 컴퓨터(10)는 다수의 처리 유닛(11), 다수의 제어 장치(66), 그리고 컴퓨터의 다수의 컴포넌트(33)(도 1에서, 간략하게 "파트(part)라고 명명함")를 포함한다. 본 발명의 본 실시 예에서 컴퓨터의 컴포넌트는 자원이 다수의 애플리케이션 프로그램에 의해 점유되는 컴퓨터의 컴포넌트를 나타낸다.
처리 유닛(11)은 중앙 처리 유닛(Central Processing Unit, CPU) 상에 있으며 동일한 기능을 가지는 프로세서 코어들 중의 하나를 나타내며, 읽기 및 쓰기와 같은 다양한 동작 명령어(operation command)를 실행하도록 구성된다.
컴퓨터의 컴포넌트(33)는 고속 온칩 상호연결(on-chip interconnection) 네트워크와, 컴퓨터의 컴포넌트로서 직접적으로 고속 온칩 상호연결 네트워크에 연결되어 있는 컴포넌트, 예를 들어, 캐시(cache)(또한, 캐시로 명명됨), 메모리, 그래픽 처리 유닛(Graphic Processing Unit, GPU)과 비디오 RAM을 포함하며, I/O 상호연결 네트워크와, I/O 상호연결 네트워크에 연결된 I/O 장치, 예를 들어, 자기 디스크(또한 하드 디스크로 명명됨), 네트워크 어댑터와 디스플레이를 더 포함할 수 있다.
고속 온칩 상호연결 네트워크는 다수의 처리 유닛(11)을 연결하기 위한 커넥터(cnnector)이며, 고속 온칩 상호연결 네트워크는 또한 캐시, 메모리, 그래픽 처리 유닛, 비디오 RAM 등에 연결된다.
캐시에 대해, 캐시에 의해 애플리케이션 프로그램에 할당된 자원은 캐시 공간(space)일 수 있으며; 메모리에 대해, 메모리에 의해 애플리케이션 프로그램에 할당된 자원은 메모리 공간일 수 있고; 그래픽 처리 유닛에 대해, 그래픽 처리 유닛에 의해 애플리케이션 프로그램에 할당된 자원은 하드웨어 가속(acceleration) 자원일 수 있으며; 비디오 RAM에 대해, 비디오 RAM에 의해 애플리케이션 프로그램에 할당된 자원은 비디오 RAM 공간일 수 있다.
게다가, 고속 온칩 상호연결 네트워크는 또한 I/O 상호연결 네트워크(또한 사우스브리지(southbridge)로 명명됨)에 연결될 수 있다.
I/O 상호연결 네트워크는 I/O 장치를 제어하기 위한 장치이다.
컴퓨터의 컴포넌트(33)는 I/O 상호연결 네트워크에 직접적으로 연결된 I/O 장치, 예를 들어, 자기 디스크(또한, 하드 디스크로 명명됨), 네트워크 어댑터와 디스플레이를 더 포함한다.
예를 들어, 일정 기간(a period of time)에서, 컴퓨터(10)는 다수의 애플리케이션을 처리할 수 있으며, 이러한 모든 애플리케이션 프로그램들은 컴퓨터의 컴포넌트(예를 들어, 메모리)의 자원을 점유해야 한다. 그러나 메모리의 자원은 한정되어 있기 때문에, 일부 중요한 애플리케이션 프로그램들이 시기 적절하게(in a timely manner) 처리될 수 없으며, 그러므로 서비스 품질이 영향을 받는다.
그러므로 본 발명의 본 실시 예에서, 제어 장치(66)는 컴퓨터의 컴포넌트 상에 배치되어 있으며, 컴포넌트들의 자원들은 다수의 애플리케이션 프로그램에 대해 적용되거나 다수의 애플리케이션 프로그램에 의해 점유될 수 있다. 제어 장치(66)는 애플리케이션 프로그램들을 처리하기 위하여, 상이한 타입의 애플리케이션 프로그램들에 따라 상이한 자원량을 애플리케이션 프로그램들에 대하여 할당하도록 구성된다. 여기서(Herein), 자원이 다수의 애플리케이션 프로그램에 적용되거나 다수의 애플리케이션 프로그램에 의해 점유될 수 있는 컴퓨터의 컴포넌트들은, 고속 온칩 상호연결 네트워크, 캐시, 메모리, 그래픽 처리 유닛, 비디오 RAM과 I/O 상호연결 네트워크에 한정되지 않는다.
본 발명의 본 실시 예에서, 제어 장치(66)는 단지 컴퓨터의 다수의 컴포넌트들 중에서 컴퓨터의 하나의 컴포넌트 상에 배치될 수 있거나; 또는 제어 장치(66)는 컴퓨터의 다수의 컴포넌트들 상에 배치될 수 있으며, 또는 심지어, 제어 장치(66)는 위에 기술된 컴퓨터의 모든 컴포넌트 상에 배치될 수 있음을 주목해야 한다.
제어 장치(66)가 상이한 타입의 애플리케이션 프로그램들을 식별하도록 하기 위하여, 애플리케이션 요청(request)들의 타입들이 애플리케이션 요청들(애플리케이션 프로그램들에 대응하는 요청들)이 생성되는 소스단(source end)에서 식별되고 태그(tagged)되어야 한다. 그러므로 애플리케이션 요청들이 이후에 컴퓨터 컴포넌트 상의 제어 장치(66)로 전달되는 경우, 제어 장치(66)는 태그에 따라, 상이한 타입들의 애플리케이션 프로그램들에 대하여 상이한 처리를 수행할 수 있다. 본 발명의 본 실시 예에서, 애플리케이션 프로그램들과 애플리케이션 요청들은 동일한 의미(meaning)를 나타냄을 주목해야 한다. 게다가, 본 발명의 본 실시 예에서, 애플리케이션 요청들은 컴퓨터 내부에서 생성되는 다양한 명령들(instructions)과 컴퓨터의 외부로부터 수신되는 다양한 명령들, 예를 들어, 파일 액세스 요청, 비디오 재생(playback) 요청, 메모리 액세스 요청, I/O 요청 그리고 상호연결(Interconnect) 요청을 포함한다.
여기서, 애플리케이션 요청들이 생성되는 소스단은 처리 유닛(11) 또는 I/O 장치(예를 들어, 네트워크 어댑터)일 수 있다. 애플리케이션 요청들이 국부적으로(locally) 컴퓨터(10)로부터 있는 경우, 애플리케이션 요청들이 생성되는 소스단은 처리 유닛(11)일 수 있으며; 애플리케이션 요청들이 컴퓨터(10)의 외부로부터 있는 경우, 예를 들어, 인터넷을 사용하여 전달되는 애플리케이션 요청들이 수신되는 경우, 애플리케이션 요청들이 생성되는 소스단은 네트워크 어댑터 또는 다른 입력-출력 장치일 수 있다.
애플리케이션 요청들이 컴퓨터(10)의 내부로부터 있는 경우, 태깅(tagging) 방식(manner)은 다음과 같을 수 있다.
(도 2a에 도시된 바와 같은) 태그 레지스터(77)가 처리 유닛(11)에 배치되어 있으며, 태그 레지스터(77)는 레지스터 값을 저장한다. 처리 유닛(11)이 애플리케이션 요청을 생성하는 경우, 처리 유닛(11)은 레지스터 값을 판독하여 애플리케이션 요청에 태그를 첨부하며, 태그는 레지스터 값이다.
구체적으로, 태그는 애플리케이션 요청에 대하여 노드 관리 소프트웨어(다음에 보다 상세히 기술됨)에 의해 정의된다. 노드 관리 소프트웨어는 운영 시스템(operating system)의 모듈일 수 있으며, 또는 운영 시스템과 컴퓨터 하드웨어 사이의 미들 소프트웨어 계층(layer)(하이퍼바이저(Hypervisor))에서의 모듈일 수 있으며, 처리 유닛(11) 상에서 실행된다. 노드 관리 소프트웨어가 애플리케이션 요청에 대한 태그를 정의한 후에, 운영 시스템은 태그를 애플리케이션 요청에 대응하는 프로세스의 컨텍스트(context)에 기록할 수 있으며, 그 다음에 애플리케이션 요청에 대응하는 프로세스의 컨텍스트를 레지스터에 기록할 수 있다.
선택적인 구현 방식은 다음과 같다.
처리 유닛(11)은 자체적으로 다수의 레지스터를 포함할 수 있기 때문에, 다수의 레지스터들은 태그 레지스터(77)로서 설정될 수 있으며, 태그 레지스터(77)는 애플리케이션 프로그램의 태그를 저장하도록 구성된다. 애플리케이션 요청을 생성하는 경우, 처리 유닛(11)은 태그 레지스터(77)의 레지스터 값을 판독하고, 레지스터 값을 태그로서 사용하며, 레지스터 값을 애플리케이션 요청에 기록한다. 태그는 애플리케이션 프로그램의 ID, 문자(letter), 숫자 등에 의해 표현될 수 있으며, 이에 한정되지는 않는다.
다른 선택적인 구현 방식은 다음과 같다.
새로운 레지스터가 처리 유닛(11)에 첨부되며, 새로운 레지스터는 태그 레지스터(77)로서 정의되고, 태그 레지스터(77)는 애플리케이션 프로그램의 태그를 저장하도록 구성된다. 이후의 처리(subsequent processing)의 방식은 전술한 구현 방식과 동일하며, 여기서는 설명을 생략한다.
하나의 구현 방식에서 네트워크 어댑터가 애플리케이션 요청의 소스단으로 기능하는 경우, 네트워크 어댑터가 자체적으로 애플리케이션 요청을 태깅(tagging)하는 액션(action)을 실행하지 않는다. 예를 들어, 네트워크 어댑터가 애플리케이션 요청을 수신하는 경우, 애플리케이션 요청은 태그를 운반하는 애플리케이션 요청이다. 즉, 애플리케이션 요청의 송신단(sending end)이, 애플리케이션 요청을 전달하기 전에 애플리케이션 요청을 태깅할 수 있다. 분산(distributed) 시스템에서, 서버들(또는 컴퓨터)이 협의(negotiation)하여 애플리케이션 요청의 태그를 결정할 수 있으며; 또는 태그 서버가 애플리케이션 요청을 정의하고 각 서버로 전달하도록 배치될 수 있다. 위의 구현 방식들 모두와 그외 유사한 것들은 본 발명의 보호 범위에 속할 것이다. 다른 구현 방식은 다음과 같다. 네트워크 어댑터가 메시지 패킷을 수신하는 경우, 네트워크 패킷을 파싱(parsing)하는 것에 의해 애플리케이션 요청이 획득되고, 그 다음에 애플리케이션 요청이 태깅된다. 이 경우, 네트워크 어댑터에 의해 애플리케이션 요청을 태깅하는 방식은 위에 기술된 처리 유닛(11)에 의해 태깅하는 방식과 유사하며, 여기서는 설명을 생략한다.
컴퓨터(10) 내부의 다른 컴포넌트 예를 들어, I/O 상호연결 네트워크는 또한 애플리케이션 요청에 태그를 첨부할 수 있으며, 이것의 구현 방식은 처리 유닛(11) 또는 네트워크 어댑터에 의한 방식과 유사하며, 본 발명의 본 실시 예는 태깅을 위한 컴포넌트에 대하여 한정을 설정하지 않음을 주목해야 한다.
다음에는 처리 유닛(11)이 애플리케이션 요청에 태그를 첨부하는 예를 사용하여 후속 처리 절차(subsequent processing procedure)를 설명한다.
태그가 애플리케이션 요청에 첨부된 후에 처리 유닛(11)이 애플리케이션 요청을 제어 장치(66)로 전달하는 경우, 애플리케이션 요청의 태그는 운반된다.
구체적으로, 제어 장치(66)는 첨부된 애플리케이션 요청을 수신하고, 태그와 미리 저장된 자원 할당 정책에 따라 애플리케이션 요청에 대하여 할당된 자원량을 결정하도록 구성되며, 추가로, 컴퓨터의 컴포넌트에게 애플리케이션 요청에 대하여 할당된 자원량에 따라 애플리케이션 요청을 처리하도록 지시하도록 구성되고, 자원 할당 정책은 태그와 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응관계(correspondence)를 포함한다.
본 발명의 본 실시 예는 컴퓨터를 제공하며, 컴퓨터는 처리 유닛과 제어 장치를 포함한다. 처리 유닛은 태그를 애플리케이션 요청에 첨부하고, 태그가 첨부된 애플리케이션 요청을 제어 장치로 전달하며; 제어 장치는 태그와 미리 저장된 자원 할당 정책에 따라 애플리케이션 요청에 대하여 할당되는 자원량을 결정하고, 컴퓨터의 컴포넌트에게 애플리케이션 요청에 대하여 할당된 자원량에 따라 애플리케이션 요청을 처리하도록 지시한다. 이러한 방식으로, 애플리케이션 요청을 처리하는 경우, 컴퓨터의 컴포넌트는 애플리케이션 요청에 대하여 할당된 자원량에 따라 처리를 수행할 수 있으며, 이는 어느 정도(to some extent), 자원량이 다수의 애플리케이션 요청들에 의해 상호간에 선점되는 것을 방지하며, 이에 따라 서비스 품질을 향상시킨다.
다음에는 주로 제어 장치(66)의 구조와 기능을 설명한다.
제어 장치(66)는 컴퓨터(10)의 내부에서 컴퓨터의 컴포넌트들 중 어느 하나의 컴포넌트 상의 장치를 나타낸다. 컴퓨터의 일부 컴포넌트가 제어기(controller)(예를 들어, 메모리 제어기를 포함하는 메모리, 네트워크 어댑터 제어기를 포함하는 네트워크 어댑터)를 포함하는 경우, 제어 장치(66)는 제어기에 실장된(embedded) 제어 장치 또는 원래의 제어기에 연결된 새로이 첨부된(newly-attached) 제어 장치일 수 있으며; 컴퓨터의 일부 컴포넌트가 제어기를 포함하지 않는 경우, 제어 장치(66)는 새로이 첨부된 제어기 또는 컴퓨터의 컴포넌트들에 연결된 제어 장치일 수 있다.
도 2b에 도시된 바와 같이, 제어 장치(66)는 프로세서(600a)를 포함한다.
제어 장치(66)는 태그가 첨부된 애플리케이션 요청을 수신하고, 태그와 미리 저장된 자원 할당 정책에 따라, 애플리케이션 요청에 대하여 할당된 자원량을 결정하도록 구성되며, 추가로, 컴퓨터의 컴포넌트에게 애플리케이션 요청에 대하여 할당된 자원량에 따라 애플리케이션 요청을 처리하도록 명령하도록 구성되며, 자원 할당 정책은 태그와 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응관계를 포함한다.
게다가, 제어 장치(66)는 추가로 버퍼(600b)(또한, 버퍼로 명명됨)를 포함할 수 있다.
예를 들어, 프로세서(600a)는 태그가 첨부된 애플리케이션 요청을 버퍼(600a)에 저장하고; 버퍼(600a)로부터 태그를 판독하며, 태그와 미리 저장된 자원 할당 정책에 따라, 애플리케이션 요청에 대하여 할당된 자원량을 결정하도록 구성되며, 컴퓨터의 컴포넌트에게 애플리케이션 요청에 대하여 할당된 자원량에 따라 애플리케이션 요청을 처리하라고 지시하도록 구성되며, 자원 할당 정책은 태그와 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응관계를 포함한다.
버퍼(600b)는 또한 프로세서(600a)의 레지스터일 수 있음을 주목해야 한다. 이 경우, 그의 처리 방식은 다음과 같을 수 있다. 프로세서(600a)는, 태그가 첨부된 애플리케이션 요청을 프로세서(600a)의 레지스터에 저장하고; 레지스터로부터 태그를 판독하며, 태그와 미리 저장된 자원 할당 정책에 따라, 애플리케이션 요청에 대하여 할당된 자원량을 결정하도록 구성되며, 컴퓨터의 컴포넌트에게 애플리케이션 요청에 대하여 할당된 자원량에 따라 애플리케이션 요청을 처리하라고 지시하도록 구성되며, 자원 할당 정책은 태그와 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응관계를 포함한다.
예를 들어, 도 3에 도시된 바와 같이, 선택적인 구현 방식은 다음과 같다. 제어 장치(66)는 프로세서(600i), 버퍼(또한, 버퍼로 명명됨)(600b), 그리고 큐(600c)를 포함할 수 있다.
프로세서(600i)는 필드 프로그래머블 게이트 어레이(Field-Programmable Gate Array, FPGA) 또는 다른 프로그래머블 장치일 수 있다. 자원 할당 정책이 프로세서(600i)에 내장되어(built in) 있으며, 자원 할당 정책은 (표 1에 도시된 바와 같은) 제어표(table)일 수 있으며, 제어표는 편집가능하다.
태그 속성(Attribute) 1 ... 속성 i 상태(State) 1 ... 상태 i
태그 1 값 범위(Value range) ... 값 범위 ...
...
태그 k 값 범위 ... 값 범위 ...
구체적으로, 표 1의 각 항목(entry)은 하나의 태그에 대응한다. 게다가, 제어표의 각 항목은 "속성(attributes)"을 포함하며, 속성은 태그에 대응하는 애플리케이션 요청에 대하여 할당된 자원량을 나타낸다. 다수 타입의 자원량들이 있을 수 있으며, 예를 들어, 목표 서비스 품질(target service quality), IPC(Instruction per Cycle), 응답 시간, 최대 허용오차(maximum tolerance) 등이 포함될 수 있다. 속성의 값 범위(value range)는 사용자에 의해 설정될 수 있다. 예를 들어, 값 범위는 30%보다 작지 않거나 또는 80%보다 크지 않은 범위로서 정의될 수 있다. 게다가, 각 항목은 다수의 "상태(state)"를 더 포함하며, "상태"는 태그에 대응하는 애플리케이션 응용에 의해 현재 소요되는 자원량을 나타내며, "상태"의 값은 실시간으로 모니터링되고 업데이트될 수 있다.
게다가, 자원 할당 정책은 또한 펌웨어 코드(firmware code)일 수 있으며, FPGA에 내장된다. 본 발명의 본 실시 예는 자원 할당 정책을 저장하는 방식에 대하여 한정을 설정하지 않는다.
버퍼(600b)는 임시 버퍼(temporary buffer)이다. 제어 장치(66)가 태그를 운반하는 애플리케이션 요청을 수신하는 경우, 애플리케이션 요청이 먼저 임시 저장을 위해 버퍼(600b)에 배치된다(placed into).
큐(600c)는 또한 임시 버퍼이며, 버퍼(600b)와 같이 동일한 임시 버퍼로서 위치될 수 있으며, 또는 독립적으로 임시 버퍼로서 기능하기 위하여 버퍼(600b)로부터 분리될 수 있다. 큐(600c)는 프로세서(600i)에 의해 처리되는 애플리케이션 요청을 저장하도록 구성된다. 큐(600c)는 다수의 큐들을 포함할 수 있으며, 상이한 큐들은 버퍼(600b)에서의 상이한 어드레스 세그먼트(segment)들에 대응한다. 상이한 큐들은 상이한 우선순위를 가지며, 우선순위들은 컴퓨터의 컴포넌트에 의해 큐에서의 애플리케이션 요청들을 실행하기 위한 상이한 시퀀스(sequence)들로 표현되며, 이는 상이한 자원량들이 상이한 큐들에 대하여 할당됨을 의미한다.
게다가, 제어 장치(66)는 프로그래밍 인터페이스(600d)를 더 포함할 수 있다.
프로그래밍 인터페이스(600d)는 어드레스 공간 매핑 메커니즘(address space mapping mechanism)을 구현하도록 구성되며, 프로세서(600i)에 내장된 제어표를 컴퓨터(10)의 물리적 어드레스 공간에 매핑할 수 있다. 노드 관리 소프트웨어는 제어표를 편집하기 위하여 컴퓨터(10)의 물리적 어드레스 공간을 액세스할 수 있다. 예를 들어, 프로그래밍 인터페이스(600d)는 제어표에 항목을 추가하거나 제어표에 저장된 항목을 변경하거나 또는 삭제하는 데 사용되는 다양한 기능들을 제공할 수 있다. 게다가, 노드 관리 소프트웨어가 모든 애플리케이션 요청들의 "상태"의 값들에 대한 통계(statistics)를 수집한 후에 자원 할당 정책을 추가로 조정할 수 있도록, 프로세서(600i)가 추가로, 프로세서(600i)의 제어표의 각 항목에서의 모든 "상태"의 값들을 노드 관리 소프트웨어로 제공할 수 있다.
예를 들어, 프로세서(600i)는 버퍼(600b)로부터 태그를 운반하는 애플리케이션 요청을 획득할 수 있으며, 애플리케이션 요청의 "속성"을 획득하기 위하여, 태그에 따라 표 1의 대응하는 항목을 질의(query)할 수 있다. 애플리케이션 요청의 "속성"이 애플리케이션 요청에 대하여 할당된 자원량을 지시하기 때문에, 프로세서(600i)는 애플리케이션 요청에 대하여 할당된 자원량에 따라 적어도 2개의 큐로부터, 애플리케이션 요청에 대응하는 큐를 선택하고, 애플리케이션 요청을 대응하는 큐에 배치(place)시킬 수 있다.
애플리케이션 요청을 대응하는 큐에 배치한 후에, 프로세서(600i)는 컴퓨터의 대응하는 컴포넌트에게 애플리케이션 요청에 대한 처리를 수행하도록 지시할 수 있다. 여기서, "컴퓨터의 대응하는 컴포넌트"는 제어 장치가 속해 있는 컴퓨터의 컴포넌트를 나타낸다. 예를 들어, 제어 장치가 캐시 상의 제어 장치를 나타내면, "컴퓨터의 대응하는 컴포넌트"는 캐시를 나타낸다.
여기서, "컴퓨터의 대응하는 컴포넌트에게 애플리케이션 요청에 대한 처리를 수행하도록 지시하는 것"은 프로세서(600i)가 대응하는 큐로부터 애플리케이션 요청을 디큐(dequeues)하고 애플리케이션 요청을 컴퓨터의 대응하는 컴포넌트로 전달하는 것이거나, 또는 컴퓨터의 대응하는 컴포넌트가 대응하는 큐로부터 애플리케이션 요청을 획득하는 것일 수 있다.
게다가, 제어 장치(66)는 데이터 포워더(forwarder)(600j)를 더 포함할 수 있다. 상이한 애플리케이션 요청들을 상이한 큐(600c)들에 배치시킨 후에, 프로세서(600i)는 큐로부터 애플리케이션 요청을 디큐시킨 다음에 애플리케이션 요청을 데이터 포워더(600j)로 전달할 수 있으며, 데이터 포워더(600j)는 애플리케이션 요청을 컴퓨터의 대응하는 컴포넌트로 포워딩(forward)하도록 구성된다. 즉, 컴퓨터의 대응하는 컴포넌트는 여기서, 데이터 포워더(600j)를 사용하여 대응하는 큐로부터 애플리케이션 요청을 획득할 수 있다.
게다가, 애플리케이션 요청을 대응하는 큐(600c)에 배치시키기 전에, 프로세서(600j)는 압축 및 암호화와 같은 일부 전처리 동작(preprocessing operation)을 애플리케이션 요청에 대하여 수행할 수 있으며, 그 다음에 전처리 과정을 거친 애플리케이션 요청을 대응하는 큐(600c)에 배치할 수 있다.
도 4에 도시된 바와 같이, 제어 장치(66)에 대하여, 다른 선택적인 구현 방식은 다음과 같다.
제어 장치(66)는 버퍼(또한 버퍼로 명명됨)(600b), 큐(600c), 마이크로프로세서(600e), 그리고 캐시(또한 캐시로 명명됨)(600f)를 포함한다.
버퍼(또한 버퍼로 명명됨)(600b)와 큐(600c)는 도 3에 도시된 버퍼와 큐와 동일하며, 여기서는 설명을 생략한다.
마이크로프로세서(600)는 CPU 또는 기능이 CPU의 기능과 유사한 다른 제어기일 수 있다. 마이크로프로세서(600e)와 도 3에 도시된 프로세서(600i) 사이의 차이점은, 프로세서(600i)가 프로그래머블 장치로서 기능하고, 제어 할당 정책이 프로세서(600i)에 내장되어 있으며, 제어 할당 정책이 편집가능하고, 마이크로프로세서(600e)는 CPU의 기능을 실행하지만, 제어표가 마이크로프로세서(600e)에 내장될 수 없다는데 있다. 그러므로 도 4에 도시된 제어 장치(66)는 캐시(600f)를 더 포함한다. 캐시(600f)는 자원 할당 정책을 저장하며, 자원 할당 정책은 기능이 제어표의 기능과 유사한 프로그램 코드를 나타낸다.
예를 들어, 제어 장치(66)가 태그를 운반하는 애플리케이션 요청을 수신하는 경우, 애플리케이션 요청이 먼저 버퍼(600b)에 배치된다. 마이크로프로세서(600e)는 버퍼(600b)에 저장된 애플리케이션 요청들의 큐로부터 태그를 운반하는 애플리케이션 요청을 획득하고; 캐시(600f)로부터 버퍼(600b)로 자원 할당 정책을 판독하며; 태그와 자원 할당 정책에 따라, 애플리케이션 요청에 대하여 할당된 자원량을 결정하고; 적어도 2개의 큐로부터 애플리케이션 요청에 대응하는 큐를 선택하며; 애플리케이션 요청을 대응하는 큐에 배치할 수 있다. 마이크로프로세서(600e)는 그 다음에, 대응하는 큐로부터 애플리케이션 요청을 디큐하고, 애플리케이션 요청을 컴퓨터의 대응하는 컴포넌트로 전달한다.
선택적으로, 제어 장치(66)는 데이터 포워더(600j)를 더 포함할 수 있다. 상이한 애플리케이션 요청들을 상이한 버퍼(600c)에 배치한 후에, 마이크로프로세서(600e)는 애플리케이션 요청을 큐로부터 디큐한 다음에 애플리케이션 요청을 데이터 포워더(600j)로 전달할 수 있으며, 데이터 포워더(600j)는 애플리케이션 요청을 컴퓨터의 대응하는 컴포넌트로 포워딩하도록 구성된다. 후속 처리의 방식은 도 3에 도시된 구현 방식과 동일하며, 여기서는 설명을 생략한다.
게다가, 도 4에 도시된 제어 장치(66)는 캐시(600f)에 저장된 자원 할당 정책을 변경하는 데 사용되는 제어 로직(도 4에 도시되지 않음)을 더 포함할 수 있다.
유사하게, 애플리케이션 요청을 대응하는 큐(600c)에 배치하기 전에, 마이크로프로세서(600e)는 애플리케이션 요청에 대해 압축 및 암호화와 같은 일부 전처리 동작을 수행할 수 있으며, 그 다음에 전처리 동작을 거친 애플리케이션 요청을 대응하는 큐(600c)에 배치한다.
마이크로프로세서(600e) 내부에 버퍼가 있으면, 마이크로프로세서(600e)는 또한 태그를 운반하는 애플리케이션 요청과 캐시(600f)에 저장된 자원 할당 정책을 마이크로프로세서(600e)의 버퍼로 판독하고, 마이크로프로세서(600e)의 버퍼의 애플리케이션 요청을 처리하고, 처리 결과에 따라 애플리케이션 요청을 대응하는 큐(600c)에 배치할 수 있음을 이해할 수 있다.
제어 장치(66)에 대하여, 또 다른 선택적인 구현 방식은 다음과 같다.
제어 장치(66)는 버퍼(600b), 비교 제어 로직(600g), 캐시(600f), 그리고 큐(600c)를 포함할 수 있다.
여기서, 비교 제어 로직(600g)은 ASIC(Application Specific Integrated Circuits) 또는 다른 집적 회로(integrated circuit)일 수 있다.
버퍼(600b)는 위에 기술된 버퍼와 일치한다(consistent with).
캐시(600f)는 제어표(표 1)를 저장한다.
제어 장치(66)가 태그를 운반하는 애플리케이션 요청을 수신하는 경우, 애플리케이션 요청이 먼저 버퍼(600b)에 배치된다. 큐는 버퍼(600b)의 캐시 공간의 일부 또는 독립적인 버퍼일 수 있다. 비교 제어 로직(600g)은 큐로부터 버퍼(600b)(또는 비교 제어 로직(600g)의 버퍼)로 애플리케이션 요청을 판독하며, 캐시(600f)에게 태그에 대응하는 항목을 리턴하는 것을 요청하기 위하여, 애플리케이션 요청의 태그에 따라 캐시(600f)에게 판독 명령(read instruction)을 전달한다. 항목의 컨텐츠가 버퍼(600b)(또는 비교 제어 로직(600g)의 버퍼)로 로드(load)되며; 비교 제어 로직(600g)은 애플리케이션 요청을 큐(600c)에 배치하기 위하여, 버퍼(600b)의 항목의 컨텐츠에 따라 적어도 2개의 큐로부터 대응하는 큐를 선택한다. 비교 제어 로직(600g)은 그 다음에 대응하는 큐로부터 애플리케이션 요청을 디큐하고, 애플리케이션 요청을 컴퓨터의 대응하는 컴포넌트로 전달한다.
선택적으로, 제어 장치(66)는 데이터 포워더(600j)를 더 포함할 수 있다. 상이한 애플리케이션 요청들을 상이한 버퍼(600c)에 배치한 후에, 비교 제어 로직(600g)은 애플리케이션 요청을 큐로부터 디큐한 다음에 애플리케이션 요청을 데이터 포워더(600j)로 전달할 수 있으며, 데이터 포워더(600j)는 애플리케이션 요청을 컴퓨터의 대응하는 컴포넌트로 포워딩하도록 구성된다.
유사하게, 비교 제어 로직(600g)은 애플리케이션 요청에 대해 압축 및 암호화와 같은 일부 전처리 동작을 버퍼(600b)에서 수행할 수 있다.
게다가, 제어 장치(66)는 캐시(600f)에 저장된 제어표를 편집하도록 구성되는 프로그래밍 인터페이스(600d)를 더 포함할 수 있다. 프로그래밍 인터페이스(600d)의 구체적인 기능에 대하여, 도 3에 도시된 실시 예의 프로그래밍 인터페이스(600d)의 설명을 참조할 수 있다.
컴퓨터(10)의 컴포넌트 상의 제어 장치들(66)은 절대적으로 동일하지 않을 수 있다. 구체적으로, 제어 장치들(66)에 의해 저장된 자원 할당 정책들은 절대적으로 동일하지 않을 수 있음을 주목해야 한다. 예를 들어, 동일한 애플리케이션 요청들에 대하여, 애플리케이션 요청이 메모리를 액세스해야 하는 경우, 메모리에 의해 애플리케이션 요청에 대하여 할당된 자원량이 80%에 도달할 수 있으며; 애플리케이션 요청이 I/O 장치를 사용하여 출력되어야 하는 경우, I/O 상호연결 네트워크에 의해 애플리케이션 요청에 대하여 할당된 자원량은 단지 70%일 수 있다.
본 발명의 본 실시 예에서 제공되는 제어 장치를 사용하는 것에 의하여, 애플리케이션 요청에 대하여 할당된 자원량이 애플리케이션 요청의 태그와 미리 저장된 자원 할당 정책에 따라 결정될 수 있으며, 컴퓨터의 컴포넌트가 애플리케이션 요청에 대하여 할당된 자원량에 따라 애플리케이션 요청을 처리하도록 지시될 수 있다. 이러한 방식으로 애플리케이션 요청을 처리하는 경우, 컴퓨터의 컴포넌트는 애플리케이션 요청에 대하여 할당된 자원량에 따라 처리를 수행할 수 있으며, 이는 어느 정도, 자원량이 다수의 애플리케이션 요청에 의하여 상호간에 선점되는 것을 방지하며, 이에 따라 서비스 품질을 향상시킨다.
본 발명의 본 실시 예에서, 컴퓨터의 컴포넌트들 상의 제어 장치들(66)은 도 1 또는 도 2a에 점선(dashed line)으로 도시된 바와 같이, 제어 장치(66)들을 모두 연결하는 데 사용되는 제어 장치 네트워크를 형성할 수 있다. 각각의 제어 장치는 하나의 물리적 액세스 포인트를 포함하며, 물리적 액세스 포인트를 사용하여 제어 장치 네트워크를 액세스한다. 제어 장치 네트워크는 PCIe(Peripheral Component Interconnect Express) 프로토콜 또는 다른 프로토콜을 사용하여 데이터를 전송할 수 있으며, 프로토콜의 타입은 본 발명의 본 실시 예에서 한정되지 않는다.
본 발명의 본 실시 예에서, 노드 관리 소프트웨어(도 1에 도시되지 않음)가 더 포함될 수 있으며, 노드 관리 소프트웨어는 운영 시스템의 모듈, 또는 운영 시스템과 컴퓨터 하드웨어 사이의 미들 소프트웨어 계층(하이퍼바이저)의 모듈일 수 있으며, 하나 또는 다수의 처리 유닛(11) 상에서 실행된다. 노드 관리 소프트웨어는 네트워크를 통하여 예를 들어, 제어 장치(66)에 대하여 초기화 동작을 수행하고, 제어 장치(66)의 "상태" 값들을 수집하고, 수집된 "상태" 값들에 따라 자원 할당 정책을 결정하거나 조정하며, 자원 할당 정책을 제어 장치(66)로 전달하는 등의, 모든 제어 장치(66)들을 관리하도록 구성된다.
선택적으로, 도 6에 도시된 바와 같이, 하나의 구현 방식은 다음과 같다. 전용(dedicated) 네트워크가 컴퓨터(10)에 설치되고(established), 모든 제어 장치(66)가 루트 라우터(root router)를 사용하여 연결되며, 모든 제어 장치(66)의 물리적 액세스 포인트들이 전용 네트워크에 연결된다. 전용 네트워크는 통신 프로토콜을 제공할 수 있으며, 통신 프로토콜은 제어 장치(66)들을 액세스하기 위한 메시지 패킷의 포맷을 정의하는 것을 담당한다(responsible for). 예를 들어, 메시지 패킷은 제어 장치 번호나 제어 장치 ID, 제어 장치 명령어(command)(예를 들어, 자원 할당 정책을 추가(add)하는 것, 자원 할당 정책을 삭제하는 것, 또는 자원 할당 정책을 변경하는 것), 그리고 제어 장치 명령어 파라미터를 포함할 수 있으며, 이에 한정되지 않는다. 게다가, 제어 장치(66)가 컴퓨터(10)의 외부 장치 또는 노드 관리 소프트웨어가 통신할 수 있도록 하기 위하여, 메시지 패킷은 또한 PCIe 프로토콜 또는 다른 프로토콜을 사용하여 캡슐화된(encapsulated) 후에, 전송될 수 있다.
선택적으로, 다른 구현 방식은 다음과 같다. 각 제어 장치(66)는 어드레스 공간 매핑 방식으로 노드 관리 소프트웨어와 데이터 교환을 수행한다. 구체적으로, 각 제어 장치(66)는 제어 장치(66)의 제어표 또는 자원 할당 정책을 컴퓨터(10)의 물리적 어드레스 공간에 매핑한다. 노드 관리 소프트웨어는 어드레스 공간을 액세스하여 제어표 또는 자원 할당 정책의 편집을 구현할 수 있다.
도 7에 도시된 바와 같이, 노드 관리 소프트웨어는 제어 장치 드라이버 모듈(701), 모니터링 및 관리 모듈(702), 그리고 사용자 프로그래밍 인터페이스(703)를 포함할 수 있다.
제어 장치 드라이버 모듈(701)은 컴퓨터의 컴포넌트의 새로운 제어 장치(66)를 스캔하고 식별하며, 제어 장치(66)를 초기화하고, 자원 할당 정책을 제어 장치(66)로 전달하도록 구성된다. 게다가, 제어 장치 드라이버 모듈(701)은 추가로 자원 할당 정책을 추가하고, 변경하고, 또는 삭제하도록 구성된다.
모니터링 및 관리 모듈(702)은 각 제어 장치(66)의 수집된 "상태" 값을 저장하고, 각 제어 장치(66)의 수집된 "상태" 값에 대하여 상관 분석(correlation analysis)을 수행하며, 사용자 요구(user demand)를 조합하여 자원 할당 정책을 결정하도록 구성된다.
사용자 프로그래밍 인터페이스(703)는 다른 소프트웨어 또는 애플리케이션 프로그램이 API(Application Programming Interface)를 사용하여 제어 장치(66)의 프로그래밍을 구현할 수 있도록, API를 제공하도록 구성된다. 예를 들어, API는 초기화 명령어, 자원 할당 정책을 추가하기 위한 명령어, 자원 할당 정책을 변경하기 위한 명령어, 자원 할당 정책을 삭제하기 위한 명령어 등의 인터페이스들 중에서 적어도 하나를 포함한다.
본 발명의 본 실시 예들에서 도 2b, 도 3, 도 4, 또는 도 5에 도시된 제어 장치는 단지 본 발명의 실시 예들에 대하여 적용가능한 예일 뿐이며, 본 발명의 애플리케이션에 대하여 구체적인 한정을 설정하도록 의도되지 않는다. 예를 들어, 제어 장치는 또한 애플리케이션 특정 집적 회로(application-specific integrated circuit) 일 수 있다. 제어 장치가 어떠한 형태(form)로 있는지에 상관없이, 제어 장치는 컴퓨터에서 제어 장치의 기능을 구현한다. 본 발명의 실시 예에서 기술된 컴퓨터는 개인 컴퓨터, 서버, 모바일 폰, 또는 팜톱(palmtop) 컴퓨터일 수 있으며, 본 발명은 컴퓨터의 특정 구현 형태에 대하여 한정을 설정하지 않는다. 본 출원 서류(This application document)는 다른 시스템 실시 예들 또는 애플리케이션 시나리오를 하나하나(one by one) 설명하지 않는다.
다음에는 본 발명의 실시 예에서 데이터 처리를 구현하기 위하여 제어 장치가 컴퓨터 내부에 배치되어 있는 절차(procedure)를 설명한다. 본 발명의 본 실시 예의 데이터 처리 방법은 도 2b, 도 3, 도 4, 또는 도 5에 도시된 제어 장치에서 구현될 수 있다. 도 8에 도시된 바와 같이, 방법은 다음의 단계들을 포함한다.
단계(S101): 제어 장치가 태그를 운반하는 애플리케이션 요청을 수신한다.
태그를 운반하는 애플리케이션 요청은 도 1 또는 도 2a에 도시된 처리 유닛(11)으로부터 제공될 수 있거나 또는 네트워크 어댑터로부터 제공될 수 있다. 태그를 운반하는 애플리케이션 요청이 처리 유닛(11)으로부터 제공되는 경우, 처리 유닛(11)은 애플리케이션 요청을 수신하거나 생성할 때, 태그를 애플리케이션 요청에 첨부해야 한다. 구체적으로, 처리 유닛(11)에 의해 태그를 애플리케이션 요청에 첨부하는 방식에 대하여, 도 2a에 도시된 실시 예를 참조할 수 있으며, 여기서는 설명을 생략한다.
태그를 운반하는 애플리케이션 요청이 네트워크 어댑터로부터 제공되는 경우, 하나의 케이스는 네트워크 어댑터가 애플리케이션 요청을 수신하는 경우, 애플리케이션 요청이 태그를 운반하는 애플리케이션 요청인 것이다. 다른 케이스는, 네트워크 어댑터가 메시지 패킷을 수신하는 경우, 애플리케이션 요청이 메시지 패킷을 파싱하는 것에 의해 획득되고 그 다음에 애플리케이션 요청이 태그되는 것이다.
게다가, 단계(S101) 전에, 운영 시스템 또는 하이퍼바이저는 노드 관리 소프트웨어를 사용하여 컴퓨터의 각 제어 장치(66)에 대하여 초기화 동작을 수행할 수 있으므로, 각 제어 장치는 워킹(working) 상태가 된다. 제어 장치(66)가 초기화 동작을 거친 후에, 노드 관리 소프트웨어는 제어 장치 네트워크를 통하여 각 제어 장치(66)로 자원 할당 정책을 전달한다.
단계(S102): 제어 장치가 태그와 미리 저장된 자원 할당 정책에 따라 애플리케이션 요청에 대하여 할당되는 자원량을 결정하며, 자원 할당 정책은 태그와 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응관계를 포함한다.
구체적으로, 제어 장치는 태그를 운반하는 애플리케이션 요청을 제1 버퍼(도 2b에 도시된 버퍼(600b))에 기록하고 제1 버퍼로부터 태그를 판독한다.
자원 할당 정책은 노드 관리 소프트웨어를 사용하여 제어 장치(66)로 전달되고, 처리 유닛(11)에 의해 애플리케이션 요청에 첨부된 태그는 또한 노드 관리 소프트웨어를 사용하여 정의되며, 그러므로, 애플리케이션 요청에서 운반되는 태그는 자원 할당 정책의 태그와 관련될 수 있으며, 제어 장치는 태그와 미리 저장된 자원 할당 정책에 따라 애플리케이션 요청에 대하여 할당된 자원량을 결정할 수 있다.
자원량은 여기에서 제어 장치가 위치된 컴퓨터의 컴포넌트에 의해 애플리케이션 요청에 대하여 할당된 자원량일 수 있으며, 또는 백분율 값(percentage value)일 수 있으며, 또는 우선순위 정보 등을 더 포함할 수 있다. 예를 들어, 제어 장치가 위치된 컴퓨터의 컴포넌트가 메모리인 경우, 자원량은 메모리 공간의 크기 또는 메모리 공간의 백분율 값(예를 들어, 80%) 또는 다른 정보(표 1의 "속성"의 설명을 참조)일 수 있다. 본 발명의 본 실시 예는 자원량의 표현 형태에 대하여 한정을 설정하지 않으며, 컴포넌트에 의해 애플리케이션 요청을 처리하는 우선순위나 속도를 나타내면, 어느 것이든 하나(any one)는 본 발명의 본 실시 예의 보호 범위에 속한다.
게다가, 여기서 자원 할당 정책은 제어 장치의 프로세서(도 3에 도시된 구현 방식을 참조)에 내장될 수 있으며, 또는 제어 장치(도 3에 도시된 구현 방식을 참조)의 캐시에 저장될 수 있다.
단계(S103): 제어 장치가 컴퓨터의 컴포넌트에게 애플리케이션 요청에 대하여 할당된 자원량에 따라 애플리케이션 요청을 처리하도록 지시한다.
컴퓨터의 컴포넌트에게 애플리케이션 요청에 대하여 할당된 자원량에 따라 애플리케이션 요청을 처리하도록 지시하는 것은, 애플리케이션 요청에 대하여 할당된 자원량과 애플리케이션 요청을 컴포넌트에 전달하는 것 또는 애플리케이션 요청을 컴포넌트에 전달하고 애플리케이션 요청의 처리의 방식을 컴포넌트에게 통보하는 것일 수 있다.
본 발명의 본 실시 예에서, 제어 장치는 애플리케이션 요청에 운반되는 태그, 그리고 애플리케이션 요청에 대하여 할당된 자원량과 태그 사이의 대응관계에 따라, 애플리케이션 요청에 대하여 할당되는 자원량을 결정하고, 그 다음에 컴퓨터의 컴포넌트에게 애플리케이션 요청에 대하여 할당된 자원량에 따라 애플리케이션 요청을 처리하도록 지시할 수 있다. 그러므로 상이한 자원량들이 상이한 애플리케이션 요청들에 대하여 할당될 수 있으며, 이에 따라 서비스 품질을 향상시킨다.
선택적으로, 단계(S103) 다음에 애플리케이션 요청의 처리가 완료되지 않는 경우, 다른 컴퓨터의 컴포넌트로부터 자원을 신청(apply for)하고, 애플리케이션 요청을 처리하는 것이 여전히 요구되며, 처리된 애플리케이션 요청은 처리를 위해 컴퓨터의 다른 컴포넌트 상의 제어 장치로 포워딩될 수 있으며, 그의 처리 방식은 단계(S01) 내지 단계(S103)와 유사하다. 컴퓨터의 다른 컴포넌트 상의 제어 장치로 포워딩되는 애플리케이션 요청이 또한 태그를 운반함을 주목해야 한다.
본 발명의 실시 예에서 데이터 처리 방법의 다른 구현 방식은 다음과 같다. 도 9에 도시된 바와 같이, 방법은 다음의 단계들을 포함한다.
단계(S201): 단계(101)와 동일하다.
단계(S202): 제어 장치가 캐시(간략하게 캐시로 명명될 수 있음)로부터 자원 할당 정책을 획득한다.
자원 할당 정책이 소프트웨어 코드인 경우, 제어 장치는 자원 할당 정책을 제어 장치의 프로세서의 버퍼로 로드할 수 있다. 자원 할당 정책이 표 1에 도시된 제어표인 경우, 제어 장치는 질의 명령을 캐시로 전달할 수 있으며, 질의 명령은 태그를 포함하며, 캐시는 태그에 따라 대응하는 항목을 제어표에서 검색하고, 항목을 제어 장치로 리턴한다. 제어 장치는 항목을 제어 장치의 프로세서의 버퍼로 로드한다. 구체적으로, 항목은 태그와 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응관계를 포함한다.
단계(S203): 제어 장치가 태그와 미리 저장된 자원 할당 정책에 따라, 애플리케이션 요청에 대하여 할당된 자원량을 결정한다.
단계(S204): 단계(S103)와 동일하다.
본 발명의 본 실시 예에서, 제어 장치는 애플리케이션 요청에서 운반되는 태그와, 애플리케이션 요청에 대하여 할당된 자원량과 태그 사이의 대응관계에 따라, 애플리케이션 요청에 대하여 할당되는 자원량을 결정하고, 그 다음에 컴퓨터의 컴포넌트에게 애플리케이션 요청에 대하여 할당된 자원량에 따라 애플리케이션 요청을 처리하도록 지시할 수 있다. 그러므로 상이한 자원량들이 상이한 애플리케이션 요청들에 대하여 할당될 수 있으며, 이에 따라 서비스 품질을 향상시킨다.
다음에 본 발명의 실시 예에서 데이터 방법의 다른 구현 방식을 설명한다. 도 10에 도시된 바와 같이, 방법은 다음의 단계들을 포함한다.
단계(S301): 단계(S101)와 동일하다.
단계(S302): 단계(S102)와 동일하고, 단계(S202) 및 단계(S203)와 동일하다.
단계(S303): 제어 장치가 애플리케이션 요청에 대하여 할당된 자원량에 따라 적어도 2개의 큐로부터 애플리케이션 요청에 대응하는 큐를 선택하고, 애플리케이션 요청을 애플리케이션 요청에 대응하는 큐에 저장한다.
구체적으로, 제어 장치는 제2 버퍼를 포함할 수 있으며, 큐는 제2 버퍼(도 3, 도 4, 또는 도 5에 도시된 구현 방식을 참조할 수 있음)에 저장된다. 제2 버퍼는 적어도 2개의 큐를 포함하며, 각각의 큐는 자원량의 범위에 대응하고, 각 큐의 우선순위는 상이하다.
단계(S304): 제어 장치의 데이터 포워더(예를 들어, 도 3 내지 도 5에 도시된 데이터 포워더(600j))는 애플리케이션 요청에 대응하는 큐로부터 애플리케이션 요청을 획득하고, 애플리케이션 요청을 컴퓨터의 컴포넌트로 포워딩한다.
단계(S305): 컴퓨터의 컴포넌트가 애플리케이션 요청을 획득하고 애플리케이션 요청을 실행시킨다.
단계(S304)는 선택적인 단계이며, 컴퓨터의 컴포넌트는 또한 대응하는 큐로부터 애플리케이션 요청을 바로 획득할 수 있음을 주목해야 한다.
예를 들어, 제2 버퍼는 고-우선순위(high-priority) 큐, 중-우선순위(medium-priority), 저-우선순위(low-priority) 큐인 3개의 큐를 포함할 수 있다. 고-우선순위 큐에 대응하는 자원량의 백분율 값은 70%~80%이다. 애플리케이션 요청에 대하여 할당된 자원량은 76%이면, 애플리케이션 요청은 고-우선순위 큐로 배치된다. 고-우선순위 큐는 우선적인 처리 순서(preferential processing sequence) 또는 비교적 높은 처리 속도(relatively high processing speed)를 의미한다. 컴퓨터의 컴포넌트는 고-우선순위 큐로부터 애플리케이션 요청을 우선적으로 획득하고, 애플리케이션 요청을 실행시킬 수 있다. 선택적으로, 제어 장치는 애플리케이션 요청이 어떤 큐에 배치되어 있는지를 고려하기 위하여, 추가로 다른 팩터(factor), 예를 들어, 현재 애플리케이션 요청에 의해 사용된 자원량을 참고(refer to)할 수 있다. 본 출원 명세서에서, 애플리케이션 시나리오들이 하나씩 설명되지 않는다.
각각의 큐는 다수의 처리될 애플리케이션 요청들을 포함할 수 있다. 각 큐에서 다수의 처리될 애플리케이션 요청들에 대하여, 컴퓨터의 컴포넌트는 선입 선출 원리(first in first out principle) 또는 다른 원리에 따라 처리를 수행할 수 있음을 이해할 수 있다.
게다가, 제어 장치가 애플리케이션 요청을 대응하는 큐에 배치한 후에, 제어 장치는 또한 (다수의 애플리케이션 요청들이 큐에 있는 경우) 차례차례로 큐로부터 애플리케이션 요청들을 디큐하고, 그 다음에 애플리케이션 요청을 처리를 위한 컴퓨터의 컴포넌트로 전달할 수 있다.
본 발명의 본 실시 예에서, 제어 장치는 애플리케이션 요청에서 운반되는 태그, 그리고 애플리케이션 요청에 대하여 할당된 자원량과 태그 사이의 대응관계에 따라, 애플리케이션 요청에 대하여 할당되는 자원량을 결정하고, 애플리케이션 요청에 대하여 할당된 자원량에 따라 애플리케이션 요청을 대응하는 큐에 배치하고, 그 다음에 애플리케이션 요청에 대응하는 큐로부터 애플리케이션 요청을 획득하고, 애플리케이션 요청을 데이터 포워더로 전달할 수 있다. 데이터 포워더는 애플리케이션 요청을 실행을 위한 컴퓨터의 컴포넌트로 포워딩하며, 이에 따라 서비스 품질을 향상시킨다.
선택적으로, 도 8, 도 9 또는 도 10에 도시된 데이터 처리 방법의 구현 방식에서, 다음의 단계들이 추가로 포함될 수 있다.
애플리케이션 요청의 실행이 완료된 후에, 애플리케이션 요청이 처리되었음을 설명하기 위하여, 컴퓨터의 컴포넌트는 메시지를 운영 시스템으로 피드백할 수 있다. 이 경우, 자원 교정 메시지(resource reclamation message)가 노드 관리 소프트웨어를 사용하여 제어 장치로 전달될 수 있으며, 자원 교정 메시지는 제어 장치에서 자원 할당 정책을 삭제하는 데 사용된다.
다음에, 비디오 재생(playback)을 위한 애플리케이션 요청이 처리되는 예를 사용하여 도 8 내지 도 10에서의 처리 절차를 추가로 설명한다.
단계 1 : 사용자는 로컬 컴퓨터에서 비디오 파일을 클릭한다.
단계 2: CPU가 비디오 파일을 판독하기 위하여 메모리 액세스 요청을 생성한다.
단계 3: CPU가 메모리 액세스 요청을 태그하고, 태그를 운반하는 메모리 액세스 요청을 메모리 상의 제어 장치로 전달한다.
단계 4: 메모리 상의 제어 장치가 태그에 따라 메모리 액세스 요청에 대하여 할당된 메모리 공간을 결정하고, 추가로 할당된 메모리 공간에 따라 메모리 액세스 요청을 대응하는 큐에 배치한다.
단계 5: 메모리 상의 제어 장치가 큐로부터 메모리 액세스 요청을 디큐하고, 메모리 액세스 요청을 실행하기 위하여 메모리 액세스 요청을 메모리로 전달한다.
단계 6: 메모리가 비디오 파일을 로딩한 후에 CPU로 응답을 전달한다.
단계 7: CPU가 메모리로부터 비디오 파일을 획득하고 하드웨어 가속 요청을 GPU로 전달하여 GPU에게 비디오 파일에 대한 하드웨어 디코딩을 수행하기를 요청하며, 하드웨어 가속 요청은 비디오 파일과 태그를 운반한다.
단계 8: GPU 상의 제어 장치가 태그에 따라 비디오 파일에 대하여 할당되는 하드웨어 가속 자원량을 결정하고, 그 다음에 하드웨어 가속 자원량에 따라 하드웨어 가속 요청을 대응하는 큐에 배치한다.
단계 9: GPU 상의 제어 장치가 큐로부터 하드웨어 가속 요청을 디큐하고, 하드웨어 가속 요청을 GPU에 전달한다.
단계 10: GPU가 하드웨어 가속 요청에 따라 비디오 파일에 대한 하드웨어 가속 처리를 수행한다.
단계 11: 처리가 완료된 후에, 비디오 파일에 대하여 다른 처리를 수행하는 것이 요구되지 않으면, GPU가 출력 요청을 사우스브리지(예를 들어, 도 1 또는 도 2에 도시된 I/O 제어 네트워크)에 전달하며, 출력 요청은 하드웨어 가속 요청을 거친 비디오 파일과 태그를 포함한다.
단계 12: 사우스브리지 상의 제어 장치가 태그에 따라 비디오 파일에 대하여 할당되는 대역폭을 결정하고, 그 다음에 할당된 대역폭에 따라 출력 요청을 대응하는 큐에 배치한다.
단계 13: 사우스브리지가 큐로부터 비디오 파일을 디큐하고 비디오 파일을 디스플레이에 전달한다.
단계 14: 디스플레이는 비디오 파일을 디스플레이한다.
당업자는, 본 명세서에 개시된 실시 예들에서 기술된 예들을 결합하여, 유닛들과 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 결합에 의해 구현될 수 있음을 알 수 있다. 하드웨어와 소프트웨어 사이의 상호교환성(interchangeability)을 명확하게 기술하기 위하여, 위에서 기능들에 따라 각 예의 구성요소들(composition)과 단계들이 일반적으로 기술되었다. 기능들이 하드웨어 또는 소프트웨어에 의해 수행되는지는 특정 애플리케이션과 기술적 해결 방안들의 설계 제약 조건(design constraint condition)에 따라 달라진다. 당업자는 각 특정 애플리케이션에 대하여 기술된 기능들을 구현하기 위하여 상이한 방법들을 사용할 수 있지만, 구현이 본 발명의 범위를 벗어나는 것으로 간주되어서는 안된다.
당업자는, 편리하고 간단한 설명을 위하여, 전술한 시스템, 장치, 그리고 유닛의 상세한 작동(working) 프로세스에 대하여, 전술한 방법 실시 예들에서의 대응하는 프로세스를 참조할 수 있음을 명백하게 이해할 수 있으며, 여기서는 상세한 설명을 생략한다.
본 출원에서 제공되는 여러 실시 예들에서, 개시된 시스템, 장치, 그리고 방법은 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 기술된 장치 실시 예는 단지 예시이다. 예를 들어, 유닛 분할(division)은 단지 논리적 기능 분할이며, 실제 구현시에 다른 분할일 수 있다. 예를 들어, 다수의 유닛들 또는 컴포넌트들은 다른 시스템으로 결합되거나 통합될 수 있으며, 일부 특징들은 무시되거나 수행되지 않을 수 있다. 게다가, 디스플레이되거나 또는 논의된 상호 결합(mutual couplings)들 또는 직접 결합(direct couplings) 또는 통신 연결(communication connections)들이 일부 인터페이스를 통하여 구현될 수 있다. 장치들 또는 유닛들 사이의 간접적 결합 또는 통신 연결은 전자적, 기계적, 또는 다른 형태로 구현될 수 있다.
개별 파트(part)로서 기술된 유닛들은 물리적으로 분리되거나 분리되지 않을 수 있으며, 유닛으로 디스플레이되는 파트들은 물리적 유닛이거나 아닐 수 있으며, 하나의 위치에 위치될 수 있으며, 또는 다수의 네트워크 유닛들에 분산될 수 있다. 유닛들의 일부 또는 모두는 실시 예들의 해결 방안의 목적을 달성하기 위한 실제 필요에 따라 선택될 수 있다.
게다가, 본 발명의 실시 예에서의 기능적 유닛들은 하나의 처리 유닛으로 통합될 수 있으며, 또는 각각의 유닛은 물리적으로만 존재할 수 있거나 또는 둘 이상의 유닛들이 하나의 유닛으로 통합된다.
통합된 유닛이 소프트웨어 기능적 유닛의 형태로 구현되고 독립적인 제품으로 팔리거나 사용되는 경우, 통합된 유닛이 컴퓨터 판독 가능한 저장 매체에 저장될 수 있다. 이러한 이해를 토대로, 본 발명의 기술적 해결 방안, 또는 종래 기술에 기여하는 일부 또는 기술적 해결 방안의 일부 또는 모두가 기본적으로(essentially) 소프트웨어 제품의 형태로 구현될 수 있다.
소프트웨어 제품은 저장 매체에 저장되며, 컴퓨터 장치(개인 컴퓨터, 서버, 또는 네트워크 장치일 수 있음)에게 본 발명의 실시 예들에서 기술된 방법들의 단계들의 일부분 또는 모두를 수행하도록 지시하는 다수의 명령(instructions)을 포함한다. 전술한 저장 매체는, USB 플래시 드라이브, 제거 가능한 하드 디스크, 판독 전용 메모리(ROM, Read-Only Memory), 랜덤 액세스 메모리(RAM, Random Access Memory), 자기 디스크, 또는 광학 디스크와 같은, 프로그램 코드를 저장할 수 있는 어느 하나의 매체를 포함한다.
전술한 설명들은 단지 본 발명의 구체적인 실시 예들이며, 본 발명의 보호 범위를 한정하기 위하여 의도되지 않는다. 본 발명에 개시된 기술적 범위 내에서의 당업자에 의해 쉽게 파악되는 변형(variation) 또는 대체(replacement)는 본 발명의 보호 범위 내에 속한다. 그러므로 본 발명의 보호 범위는 청구범위의 보호 범위에 예속된다(be subject to).

Claims (18)

  1. 컴퓨터로서,
    처리 유닛; 및
    제어 장치
    를 포함하고,
    상기 제어 장치는 상기 컴퓨터의 컴포넌트에 연결되고,
    상기 컴포넌트는 고속 온칩 상호연결 네트워크(high-speed on-chip interconnection network), 캐시, 메모리, 그래픽 처리 유닛, 비디오 RAM, 입력/출력(I/O) 상호연결 네트워크, 하드 디스크, 네트워크 어댑터 및 디스플레이(display) 중 어느 하나를 포함하고,
    상기 처리 유닛은, 애플리케이션 요청에 태그(tag)를 첨부(attach)하고, 상기 태그가 첨부된 애플리케이션 요청을 상기 제어 장치로 전달하도록 구성되며,
    상기 제어 장치는,
    상기 태그가 첨부된 애플리케이션 요청을 수신하고;
    상기 태그 및 미리 저장된 자원 할당 정책(resource allocation policy)에 따라, 상기 애플리케이션 요청에 대하여 할당되는 자원량(a quantity of resources)을 결정하고 - 상기 자원 할당 정책은 상기 태그와 상기 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응 관계(correspondence)를 포함함 - ;
    상기 컴포넌트에게, 상기 애플리케이션 요청에 대하여 할당된 자원량에 따라 상기 애플리케이션 요청을 처리하라고 지시하도록 구성되는,
    컴퓨터.
  2. 제1항에 있어서,
    상기 제어 장치는 버퍼를 포함하고,
    상기 버퍼는 적어도 2개의 큐(queue)를 포함하며, 각 큐는 자원량의 범위(range)에 대응하고, 각 큐의 우선순위는 상이하며,
    상기 제어 장치는 구체적으로, 상기 애플리케이션 요청에 대하여 할당된 자원량에 따라, 상기 적어도 2개의 큐로부터 상기 애플리케이션 요청에 대응하는 큐를 선택하고, 상기 애플리케이션 요청을 상기 애플리케이션 요청에 대응하는 상기 큐에 저장하도록 구성되고,
    상기 컴포넌트는 상기 각 큐의 우선순위에 따라 상기 버퍼의 큐들을 개별적으로 처리하도록 구성되는, 컴퓨터.
  3. 제1항에 있어서,
    상기 제어 장치는 구체적으로,
    프로세서; 및
    캐시
    를 포함하고,
    상기 캐시는 상기 자원 할당 정책을 저장하며,
    상기 프로세서는, 상기 캐시로부터 상기 자원 할당 정책을 획득하도록 구성된, 컴퓨터.
  4. 제3항에 있어서,
    상기 자원 할당 정책은 제어표(control table)를 포함하고, 상기 제어표는 다수의 항목(entry)을 포함하며, 상기 다수의 항목 중 하나의 항목은 상기 태그와 상기 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응 관계를 포함하며,
    상기 프로세서는 구체적으로, 상기 태그를 포함하는 질의 명령(query instruction)을 상기 캐시에 전달하도록 구성되고,
    상기 캐시는 상기 질의 명령에 따라 상기 태그에 대응하는 항목을 획득하고, 상기 태그에 대응하는 항목을 상기 제어 장치의 상기 프로세서에게 전달하도록 구성되는, 컴퓨터.
  5. 제3 또는 제4항에 있어서,
    상기 컴퓨터는 메모리를 더 포함하고,
    상기 메모리는 노드 관리 소프트웨어를 저장하며,
    상기 처리 유닛은 추가로, 상기 노드 관리 소프트웨어를 사용하여 상기 자원 할당 정책을 정의하도록 구성되고,
    상기 프로세서는 추가로, 상기 노드 관리 소프트웨어로부터 상기 자원 할당 정책을 획득하고, 상기 자원 할당 정책을 상기 캐시에 기록(write)하도록 구성되는, 컴퓨터.
  6. 제5항에 있어서,
    상기 처리 유닛은 태그 레지스터를 더 포함하고,
    상기 처리 유닛은 추가로, 상기 노드 관리 소프트웨어를 사용하여 상기 태그를 정의하고, 상기 노드 관리 소프트웨어를 사용하여 상기 태그를 상기 태그 레지스터에 기록하도록 구성되며,
    상기 처리 유닛은 추가로, 상기 태그 레지스터로부터 상기 태그를 판독(read)하도록 구성되는, 컴퓨터.
  7. 제어 장치로서,
    상기 제어 장치는 컴퓨터의 컴포넌트에 연결되고,
    상기 컴포넌트는 고속 온칩 상호연결 네트워크(high-speed on-chip interconnection network), 캐시, 메모리, 그래픽 처리 유닛, 비디오 RAM, 입력/출력(I/O) 상호연결 네트워크, 하드 디스크, 네트워크 어댑터 및 디스플레이(display) 중 어느 하나를 포함하고,
    상기 제어 장치는 프로세서를 포함하며,
    상기 프로세서는
    태그가 첨부된 애플리케이션 요청을 수신하고;
    상기 태그 및 미리 저장된 자원 할당 정책에 따라, 상기 애플리케이션 요청에 대하여 할당되는 자원량을 결정하고 - 상기 자원 할당 정책은 상기 태그와 상기 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응 관계를 포함함 - ;
    상기 컴포넌트에게, 상기 애플리케이션 요청에 대하여 할당된 자원량에 따라 상기 애플리케이션 요청을 처리하라고 지시하도록 구성되는,
    제어 장치.
  8. 제7항에 있어서,
    상기 제어 장치는 버퍼를 더 포함하고,
    상기 버퍼는 적어도 2개의 큐를 포함하며, 각 큐는 자원량의 범위에 대응하고, 각 큐의 우선순위는 상이하며,
    상기 프로세서는 구체적으로, 상기 애플리케이션 요청에 대하여 할당된 자원량에 따라, 상기 적어도 2개의 큐로부터 상기 애플리케이션 요청에 대응하는 큐를 선택하고, 상기 애플리케이션 요청을 상기 애플리케이션 요청에 대응하는 상기 큐에 저장하도록 구성되고,
    상기 컴포넌트는 상기 각 큐의 우선순위에 따라 상기 버퍼의 큐들을 개별적으로 처리하도록 구성되는, 제어 장치.
  9. 제7항에 있어서,
    상기 제어 장치는 캐시를 더 포함하고,
    상기 캐시는 상기 자원 할당 정책을 저장하며,
    상기 프로세서는 추가로, 상기 캐시로부터 상기 자원 할당 정책을 획득하도록 구성되는, 제어 장치.
  10. 제9항에 있어서,
    상기 자원 할당 정책은 제어표를 포함하고, 상기 제어표는 다수의 항목을 포함하며, 상기 다수의 항목 중 하나의 항목은 상기 태그와 상기 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응 관계를 포함하고,
    상기 프로세서는 구체적으로, 상기 태그를 포함하는 질의 명령을 상기 캐시에 전달하도록 구성되며,
    상기 캐시는 상기 질의 명령에 따라 상기 태그에 대응하는 항목을 획득하고, 상기 태그에 대응하는 항목을 상기 프로세서에게 전달하도록 구성되는, 제어 장치.
  11. 제9항 또는 제10항에 있어서,
    상기 자원 할당 정책은 노드 관리 소프트웨어를 사용하여 상기 컴퓨터에 의해 정의되고, 상기 노드 관리 소프트웨어는 상기 컴퓨터의 메모리에 저장되며,
    상기 프로세서는 추가로, 상기 노드 관리 소프트웨어로부터 상기 자원 할당 정책을 획득하도록 구성되는, 제어 장치.
  12. 데이터 처리 방법으로서,
    제어 장치가, 태그가 첨부된 애플리케이션 요청을 수신하는 단계 - 상기 제어 장치는 컴퓨터의 컴포넌트에 연결되고, 상기 컴포넌트는 고속 온칩 상호연결 네트워크(high-speed on-chip interconnection network), 캐시, 메모리, 그래픽 처리 유닛, 비디오 RAM, 입력/출력(I/O) 상호연결 네트워크, 하드 디스크, 네트워크 어댑터 및 디스플레이(display) 중 어느 하나를 포함함 - ;
    상기 제어 장치가, 상기 태그 및 미리 저장된 자원 할당 정책에 따라, 상기 애플리케이션 요청에 대하여 할당되는 자원량을 결정하는 단계 - 상기 자원 할당 정책은 상기 태그와 상기 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응 관계를 포함함 - ; 및
    상기 제어 장치가, 상기 컴포넌트에게, 상기 애플리케이션 요청에 대하여 할당된 자원량에 따라 상기 애플리케이션 요청을 처리하도록 지시하는 단계
    를 포함하는 데이터 처리 방법.
  13. 제12항에 있어서,
    상기 제어 장치는 버퍼를 더 포함하고, 상기 버퍼는 적어도 2 개의 큐를 포함하며, 각 큐는 자원량의 범위에 대응하고, 각 큐의 우선순위는 상이하며,
    상기 제어 장치가, 상기 컴포넌트에게, 상기 애플리케이션 요청에 대하여 할당된 자원량에 따라 상기 애플리케이션 요청을 처리하도록 지시하는 단계는,
    상기 제어 장치가, 상기 애플리케이션 요청에 대하여 할당된 자원량에 따라, 상기 적어도 2개의 큐로부터 상기 애플리케이션 요청에 대응하는 큐를 선택하고, 상기 컴포넌트가 상기 각 큐의 우선순위에 따라 상기 버퍼의 큐들을 개별적으로 처리하도록, 상기 애플리케이션 요청을 상기 애플리케이션 요청에 대응하는 상기 큐에 저장하는 단계
    를 포함하는, 데이터 처리 방법.
  14. 제12항에 있어서,
    상기 제어 장치는 프로세서와 캐시를 더 포함하고, 상기 캐시는 상기 자원 할당 정책을 저장하며,
    상기 데이터 처리 방법은, 상기 제어 장치가, 상기 태그 및 미리 저장된 자원 할당 정책에 따라, 상기 애플리케이션 요청에 대하여 할당되는 자원량을 결정하는 단계 전에,
    상기 프로세서가, 상기 캐시로부터 상기 자원 할당 정책을 획득하는 단계
    를 더 포함하는, 데이터 처리 방법.
  15. 제14항에 있어서,
    상기 자원 할당 정책은 제어표를 포함하고, 상기 제어표는 다수의 항목을 포함하며, 상기 다수의 항목 중 하나의 항목은 상기 태그와 상기 애플리케이션 요청에 대하여 할당된 자원량 사이의 대응 관계를 포함하며,
    상기 프로세서가, 상기 캐시로부터 상기 자원 할당 정책을 획득하는 단계는,
    상기 프로세서가, 상기 태그를 포함하는 질의 명령을 상기 캐시에 전달하는 단계; 및
    상기 캐시가, 상기 질의 명령에 따라 상기 태그에 대응하는 항목을 획득하고, 상기 태그에 대응하는 항목을 상기 프로세서에게 전달하는 단계
    를 포함하는, 데이터 처리 방법.
  16. 제14항 또는 제15항에 있어서,
    상기 자원 할당 정책은 노드 관리 소프트웨어를 사용하여 상기 컴퓨터에 의해 정의되고, 상기 노드 관리 소프트웨어는 상기 컴퓨터의 메모리에 저장되며,
    상기 데이터 처리 방법은, 상기 프로세서가, 상기 캐시로부터 상기 자원 할당 정책을 획득하는 단계 전에,
    상기 프로세서가, 상기 노드 관리 소프트웨어로부터 상기 자원 할당 정책을 획득하는 단계
    를 더 포함하는, 데이터 처리 방법.
  17. 삭제
  18. 삭제
KR1020167019031A 2014-04-30 2015-02-10 컴퓨터, 제어 장치 그리고 데이터 처리 방법 KR101784900B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201410182148.1 2014-04-30
CN201410182148 2014-04-30
CN201410682375.0 2014-11-24
CN201410682375.0A CN105094983B (zh) 2014-04-30 2014-11-24 计算机,控制设备和数据处理方法
PCT/CN2015/072672 WO2015165298A1 (zh) 2014-04-30 2015-02-10 计算机,控制设备和数据处理方法

Publications (2)

Publication Number Publication Date
KR20160098438A KR20160098438A (ko) 2016-08-18
KR101784900B1 true KR101784900B1 (ko) 2017-10-12

Family

ID=54358145

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167019031A KR101784900B1 (ko) 2014-04-30 2015-02-10 컴퓨터, 제어 장치 그리고 데이터 처리 방법

Country Status (13)

Country Link
US (1) US10572309B2 (ko)
EP (1) EP3076296A4 (ko)
JP (1) JP6475256B2 (ko)
KR (1) KR101784900B1 (ko)
CN (2) CN105094983B (ko)
AU (1) AU2015252673B2 (ko)
BR (1) BR112016016326B1 (ko)
CA (1) CA2935114C (ko)
MX (1) MX360278B (ko)
PH (1) PH12016501374B1 (ko)
RU (1) RU2651219C2 (ko)
SG (1) SG11201605623PA (ko)
WO (1) WO2015165298A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106980463A (zh) * 2016-01-18 2017-07-25 中兴通讯股份有限公司 存储系统的服务质量控制方法和装置
US10621095B2 (en) * 2016-07-20 2020-04-14 International Business Machines Corporation Processing data based on cache residency
US10169239B2 (en) 2016-07-20 2019-01-01 International Business Machines Corporation Managing a prefetch queue based on priority indications of prefetch requests
US10452395B2 (en) 2016-07-20 2019-10-22 International Business Machines Corporation Instruction to query cache residency
US10521350B2 (en) 2016-07-20 2019-12-31 International Business Machines Corporation Determining the effectiveness of prefetch instructions
CN108123924B (zh) * 2016-11-30 2021-02-12 中兴通讯股份有限公司 一种资源管理方法及系统
US10936490B2 (en) * 2017-06-27 2021-03-02 Intel Corporation System and method for per-agent control and quality of service of shared resources in chip multiprocessor platforms
CN109582600B (zh) * 2017-09-25 2020-12-01 华为技术有限公司 一种数据处理方法及装置
CN109726005B (zh) * 2017-10-27 2023-02-28 伊姆西Ip控股有限责任公司 用于管理资源的方法、服务器系统和计算机可读介质
CN110968418A (zh) * 2018-09-30 2020-04-07 北京忆恒创源科技有限公司 基于信号-槽的大规模有约束并发任务的调度方法与装置
CN109542622A (zh) * 2018-11-21 2019-03-29 新华三技术有限公司 一种数据处理方法及装置
US10601740B1 (en) * 2019-04-03 2020-03-24 Progressive Casuality Insurance Company Chatbot artificial intelligence
PH12019050292A1 (en) * 2019-12-22 2021-11-08 Samsung Electronics Ltd Method for scaling gpu in the cloud
CN114244790B (zh) * 2022-02-24 2022-07-12 摩尔线程智能科技(北京)有限责任公司 PCIe设备与主机设备的通信方法、系统及设备
CN114979131B (zh) * 2022-04-07 2024-04-19 中国科学院深圳先进技术研究院 面向云计算的标签化冯诺依曼体系结构通信方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787469A (en) 1996-09-06 1998-07-28 Intel Corporation System and method for exclusively writing tag during write allocate requests
WO2002091180A2 (en) 2001-05-10 2002-11-14 Oracle Corporation Methods and systems for multi-policy resource scheduling
US20090138682A1 (en) 2007-11-28 2009-05-28 Capps Jr Louis B Dynamic instruction execution based on transaction priority tagging
JP2012003476A (ja) 2010-06-16 2012-01-05 Fuji Xerox Co Ltd 情報処理システム、管理装置、処理要求装置及びプログラム
US20120144253A1 (en) 2010-12-07 2012-06-07 International Business Machines Corporation Hard memory array failure recovery utilizing locking structure

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195724B1 (en) * 1998-11-16 2001-02-27 Infineon Technologies Ag Methods and apparatus for prioritization of access to external devices
US7058947B1 (en) * 2000-05-02 2006-06-06 Microsoft Corporation Resource manager architecture utilizing a policy manager
US20030067874A1 (en) * 2001-10-10 2003-04-10 See Michael B. Central policy based traffic management
JP4071668B2 (ja) 2003-04-16 2008-04-02 富士通株式会社 システムの使用資源を調整する装置および方法
US20050016042A1 (en) * 2003-04-28 2005-01-27 Baratta Adam M. Motion picture memorabilia and method for promoting motion pictures using same
US7430741B2 (en) * 2004-01-20 2008-09-30 International Business Machines Corporation Application-aware system that dynamically partitions and allocates resources on demand
US7797699B2 (en) * 2004-09-23 2010-09-14 Intel Corporation Method and apparatus for scheduling virtual machine access to shared resources
US7356631B2 (en) 2005-01-21 2008-04-08 Himax Technologies, Inc. Apparatus and method for scheduling requests to source device in a memory access system
US7380038B2 (en) * 2005-02-04 2008-05-27 Microsoft Corporation Priority registers for biasing access to shared resources
CN100479374C (zh) 2005-04-25 2009-04-15 华为技术有限公司 网络通信中处理紧急业务的方法
GB0524008D0 (en) * 2005-11-25 2006-01-04 Ibm Method and system for controlling the processing of requests for web resources
JP4594877B2 (ja) * 2006-02-21 2010-12-08 株式会社日立製作所 計算機リソース割当管理方法および計算機リソース割当管理装置
CN101438256B (zh) * 2006-03-07 2011-12-21 索尼株式会社 信息处理设备、信息通信系统、信息处理方法
JP2007272868A (ja) 2006-03-07 2007-10-18 Sony Corp 情報処理装置、情報通信システム、および情報処理方法、並びにコンピュータ・プログラム
JP5061544B2 (ja) * 2006-09-05 2012-10-31 トヨタ自動車株式会社 燃料電池
CN100459581C (zh) 2006-09-21 2009-02-04 电子科技大学 一种用于实时混合业务环境的可变参数分组调度方法
US8458711B2 (en) * 2006-09-25 2013-06-04 Intel Corporation Quality of service implementation for platform resources
US8065682B2 (en) * 2007-02-27 2011-11-22 Microsoft Corporation Enforcing system resource usage limits on query requests based on grouping query requests into workgroups and assigning workload groups to resource pools
US8396929B2 (en) 2008-07-02 2013-03-12 Sap Portals Israel Ltd. Method and apparatus for distributed application context aware transaction processing
US8676976B2 (en) * 2009-02-25 2014-03-18 International Business Machines Corporation Microprocessor with software control over allocation of shared resources among multiple virtual servers
RU2496277C2 (ru) * 2009-05-26 2013-10-20 Нокиа Корпорейшн Способ и устройство для переноса мультимедийного сеанса
EP2388700A3 (en) * 2010-05-18 2013-08-07 Kaspersky Lab Zao Systems and methods for policy-based program configuration
CN102195882B (zh) * 2011-05-18 2016-04-06 深信服网络科技(深圳)有限公司 根据数据流应用类型选路的方法及装置
CN102958166B (zh) 2011-08-29 2017-07-21 华为技术有限公司 一种资源分配方法及资源管理平台
JP5884595B2 (ja) * 2012-03-29 2016-03-15 富士通株式会社 メッセージ通信方法,メッセージ通信プログラムおよびコンピュータ
CN102739770B (zh) * 2012-04-18 2015-06-17 上海和辰信息技术有限公司 一种基于云计算的资源调度方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787469A (en) 1996-09-06 1998-07-28 Intel Corporation System and method for exclusively writing tag during write allocate requests
WO2002091180A2 (en) 2001-05-10 2002-11-14 Oracle Corporation Methods and systems for multi-policy resource scheduling
JP2005513587A (ja) * 2001-05-10 2005-05-12 オラクル・インターナショナル・コーポレイション マルチポリシーリソーススケジューリングのための方法およびシステム
US20090138682A1 (en) 2007-11-28 2009-05-28 Capps Jr Louis B Dynamic instruction execution based on transaction priority tagging
JP2012003476A (ja) 2010-06-16 2012-01-05 Fuji Xerox Co Ltd 情報処理システム、管理装置、処理要求装置及びプログラム
US20120144253A1 (en) 2010-12-07 2012-06-07 International Business Machines Corporation Hard memory array failure recovery utilizing locking structure

Also Published As

Publication number Publication date
CN105094983B (zh) 2020-04-28
US20170046202A1 (en) 2017-02-16
PH12016501374A1 (en) 2016-08-15
CA2935114A1 (en) 2015-11-05
CA2935114C (en) 2020-07-14
BR112016016326B1 (pt) 2023-04-11
BR112016016326A2 (pt) 2017-08-08
KR20160098438A (ko) 2016-08-18
CN111666148A (zh) 2020-09-15
EP3076296A4 (en) 2017-01-25
JP6475256B2 (ja) 2019-02-27
RU2016134457A3 (ko) 2018-03-01
PH12016501374B1 (en) 2016-08-15
EP3076296A1 (en) 2016-10-05
WO2015165298A1 (zh) 2015-11-05
US10572309B2 (en) 2020-02-25
JP2017513096A (ja) 2017-05-25
AU2015252673A1 (en) 2016-07-28
AU2015252673B2 (en) 2017-12-14
RU2651219C2 (ru) 2018-04-18
CN105094983A (zh) 2015-11-25
MX2016011157A (es) 2016-12-09
MX360278B (es) 2018-10-26
SG11201605623PA (en) 2016-08-30
RU2016134457A (ru) 2018-03-01

Similar Documents

Publication Publication Date Title
KR101784900B1 (ko) 컴퓨터, 제어 장치 그리고 데이터 처리 방법
US11252087B2 (en) Data packet forwarding method, network adapter, host device, and computer system
US20180210752A1 (en) Accelerator virtualization method and apparatus, and centralized resource manager
CN109547531B (zh) 数据处理的方法、装置和计算设备
EP3693853B1 (en) Method and device for scheduling acceleration resources, and acceleration system
US20160070475A1 (en) Memory Management Method, Apparatus, and System
US10097459B2 (en) Apparatus and method for high-speed data transmission between virtual desktops
JP2021518955A (ja) プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体
CN104639501A (zh) 一种数据流传输的方法、设备及系统
US20210103457A1 (en) Control apparatus, control system, control method, and program
WO2020108292A1 (zh) 虚拟私有云通信系统、系统配置方法及控制器
CN114285906B (zh) 报文处理方法、装置、电子设备及存储介质
CN103036815B (zh) 一种信息技术和通信技术ict融合系统
US11604670B2 (en) Virtual machine live migration method, apparatus, and system
WO2018032499A1 (zh) 一种负载均衡的方法及相关装置
US10579394B2 (en) Control method and control device
KR20170057770A (ko) 가상 스위치의 패킷 전송 제어 방법
CN112596793B (zh) 复合设备的重定向方法及装置
JP6357256B1 (ja) 中継装置及びプログラム
CN111698179A (zh) 流量调度方法、装置及相关设备
CN115720376A (zh) 资源配置方法、装置、电子设备及可读存储介质
CN104243509A (zh) 虚拟机画面显示系统及方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant