KR101361838B1 - Method for accelerating virtual desktop protocol based on server virtualization and virtualization server for performing the same - Google Patents

Method for accelerating virtual desktop protocol based on server virtualization and virtualization server for performing the same Download PDF

Info

Publication number
KR101361838B1
KR101361838B1 KR1020100125859A KR20100125859A KR101361838B1 KR 101361838 B1 KR101361838 B1 KR 101361838B1 KR 1020100125859 A KR1020100125859 A KR 1020100125859A KR 20100125859 A KR20100125859 A KR 20100125859A KR 101361838 B1 KR101361838 B1 KR 101361838B1
Authority
KR
South Korea
Prior art keywords
virtual desktop
task
desktop protocol
attribute
virtual
Prior art date
Application number
KR1020100125859A
Other languages
Korean (ko)
Other versions
KR20120064575A (en
Inventor
김학재
김대원
김선욱
김성운
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020100125859A priority Critical patent/KR101361838B1/en
Publication of KR20120064575A publication Critical patent/KR20120064575A/en
Application granted granted Critical
Publication of KR101361838B1 publication Critical patent/KR101361838B1/en

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/465Distributed object oriented systems
    • 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/541Interprogram communication via adapters, e.g. between incompatible applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

서버 가상화 환경에서 가상화 서버의 처리 부하를 경감시킬 수 있는 서버 가상화 기반 가상 데스크탑 프로토콜 가속 방법이 개시된다. 가상 데스크탑 프로토콜 가속 방법은 가상 데스크탑 프로토콜 가속 장치에서 처리할 태스크 정보를 결정하고, 결정된 상기 태스크 정보를 상기 가상 데스크탑 프로토콜 가속 장치에 전달하면, 상기 가상 데스크탑 프로토콜 가속 장치는 제공받은 태스크 정보에 기초하여 태스크를 처리한다. 따라서, 가상화 서버의 프로세서의 처리 부하를 경감시킬 수 있고, 이를 통해 가상화 서버의 전체적인 처리 성능을 향상시킬 수 있고, 가상화 서버로부터 가상 데스크탑을 제공받는 사용자 터미털의 지연 시간을 만족시킬 수 있다.A server virtualization-based virtual desktop protocol acceleration method for reducing the processing load of a virtual server in a server virtualization environment is disclosed. In the virtual desktop protocol acceleration method, the task information to be processed in the virtual desktop protocol accelerator is determined, and the determined task information is transmitted to the virtual desktop protocol accelerator, and the virtual desktop protocol accelerator is based on the received task information. To process Therefore, the processing load of the processor of the virtualization server can be reduced, thereby improving the overall processing performance of the virtualization server, and satisfying the delay time of the user terminal provided with the virtual desktop from the virtualization server.

Description

서버 가상화 기반 가상 데스크탑 프로토콜 가속방법 및 이를 수행하는 가상화 서버{METHOD FOR ACCELERATING VIRTUAL DESKTOP PROTOCOL BASED ON SERVER VIRTUALIZATION AND VIRTUALIZATION SERVER FOR PERFORMING THE SAME} Server Virtualization-Based Virtual Desktop Protocol Acceleration Method and Virtual Server Performing Them {METHOD FOR ACCELERATING VIRTUAL DESKTOP PROTOCOL BASED ON SERVER VIRTUALIZATION AND VIRTUALIZATION SERVER FOR PERFORMING THE SAME}

본 발명은 서버 가상화 환경의 가상 데스크탑 터미널 서비스에 관한 것으로, 더욱 상세하게는 가상화 서버의 처리 부하를 경감시킬 수 있는 서버 가상화 기반 가상 데스크탑 프로토콜 가속 방법 및 이를 수행하는 장치에 관한 것이다.The present invention relates to a virtual desktop terminal service in a server virtualization environment, and more particularly, to a server virtualization-based virtual desktop protocol acceleration method and apparatus for performing the same that can reduce the processing load of the virtualization server.

일반적으로 윈도우 시스템을 지원하는 운영체제(OS: Operating System)는 로컬과 유사한 환경으로 원격 사용자에게 데스크탑을 제공하기 위해 가상 데스크탑 프로토콜을 사용한 가상 데스크탑 터미널 서비스를 제공한다. In general, an operating system (OS) supporting a Windows system provides a virtual desktop terminal service using a virtual desktop protocol to provide a desktop to a remote user in a local-like environment.

예를 들어, MS(Microsoft)에서는 RDP(Remote Desktop Protocol)라는 가상 데스크탑 프로토콜을 이용하여 RDC(Remote Desktop Connection)라는 가상 데스크탑 터미널 서비스를 제공하고, 리눅스에서는 RFB(Remote Framebuffer)라는 가상 데스크탑 프로토콜을 이용하여 VNC(Virtual Network Computing)라는 가상 데스크탑 터미널 서비스를 제공한다. 또한, 테라디시(Teradici)는 PCoIP(PC-over-IP)라는 가상 데스크탑 프로토콜 솔루션을 제공한다.For example, Microsoft (Microsoft) provides a virtual desktop terminal service called Remote Desktop Connection (RDC) using a virtual desktop protocol called RDP (Remote Desktop Protocol), and Linux uses a virtual desktop protocol called RFB (Remote Framebuffer). To provide a virtual desktop terminal service called Virtual Network Computing (VNC). Teradici also offers a virtual desktop protocol solution called PC-over-IP (PCoIP).

특히, 가상 데스크탑 터미널 서비스는 한 대의 서버에 복수의 운영체제(OS)가 탑재되어 운영되는 서버 가상화(server virtualization)에 적용되어 네트워크를 통하여 여러 사용자에게 독립적인 데스크탑 환경을 제공해 준다. 이와 같은 가상 테스크탑 터미널 서비스는 MS(Microsoft)의 RDP를 개선한 시트릭스(Citrix)의 3D HDX, 테라디시(Teradici)의 PCoIP를 적용한 VMware의 VMware View가 있다. In particular, the virtual desktop terminal service is applied to server virtualization, in which a plurality of operating systems (OSs) are mounted on a single server to provide an independent desktop environment to multiple users through a network. These virtual desktop terminal services include Citrix's 3D HDX, which improves on Microsoft's RDP, and VMware's VMware View, which uses PCoIP from Teradici.

가상 데스크탑 터미널 서비스에서 원격 사용자에게 로컬 컴퓨터를 사용하는 것과 유사한 경험을 제공하기 위해서는 사용자의 터미널에서 수행되는 입력(예를 들면, 마우스, 키보드, 타블렛, 마이크, USB 데이터 쓰기 등) 대비 호스트 컴퓨터의 출력(예를 들면, 스크린, 오디오, USB 데이터 읽기 등) 반응 시간이 짧아야 한다. 그러나 네트워크 대역폭은 한정되어 있고, 네트워크를 통해 전송되는 데스크탑 프로토콜의 데이터는 용량이 매우 크기 때문에 사용자 터미널에서 지연 시간을 만족시키기 위해서 종래의 다양한 가상 데스크탑 프로토콜에는 압축 등과 같은 소프트웨어적인 가속 기능을 포함하고 있다.To provide a remote user experience similar to using a local computer in Virtual Desktop Terminal Services, the output of the host computer compared to the input performed on the user's terminal (for example, a mouse, keyboard, tablet, microphone, USB data write, etc.). The response time (eg screen, audio, USB data read, etc.) should be short. However, because network bandwidth is limited and the data of desktop protocols transmitted over the network is very large, various conventional virtual desktop protocols include software acceleration functions such as compression to satisfy the delay time at the user terminal. .

유일한 물리 자원을 이용하여 복수의 운영체제(OS)를 운영하는 서버 가상화 환경에서는 종래의 단일 컴퓨터 환경과 비교하여 프로세서의 활용도가 높고, 이와 같은 환경에서 가상 데스크탑 터미널 서비스를 적용하는 경우 서버 시스템의 마비를 초래할 수 있다. 특히, 가상 데스크탑 프로토콜에서 소프트웨어로 처리하는 데이터 압축은 프로세서의 부하를 배가시키는 주요 원인이 된다.In a server virtualization environment that uses multiple physical operating systems (OSs) using unique physical resources, the processor utilization is higher than that of a conventional single computer environment. Can cause. In particular, data compression processed by software in the virtual desktop protocol is a major cause of doubling the processor load.

상기한 바와 같은 단점을 극복하기 위한 본 발명의 목적은 서버 가상화 환경에서 가상화 서버의 처리 부하를 경감시킬 수 있는 서버 가상화 기반 가상 데스크탑 프로토콜 가속 방법을 제공하는 것이다.
또한, 본 발명의 다른 목적은 서버 가상화 환경에서 가상 데스크탑 터미널 서비스를 위한 처리 부하를 경감시킬 수 있는 가상화 서버를 제공하는 것이다.
An object of the present invention for overcoming the above disadvantages is to provide a server virtualization-based virtual desktop protocol acceleration method that can reduce the processing load of the virtual server in the server virtualization environment.
Another object of the present invention is to provide a virtualization server that can reduce the processing load for virtual desktop terminal services in a server virtualization environment.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다. The technical objects of the present invention are not limited to the technical matters mentioned above, and other technical subjects not mentioned can be clearly understood by those skilled in the art from the following description.

상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 서버 가상화 기반 가상 데스크탑 프로토콜 가속 방법은 가상 데스크탑 프로토콜 가속 장치에서 처리할 태스크 정보를 결정하는 단계와, 결정된 상기 태스크 정보를 상기 가상 데스크탑 프로토콜 가속 장치에 전달하는 단계 및 상기 가상 데스크탑 프로토콜 가속 장치가 제공받은 태스크 정보에 기초하여 태스크를 처리하는 단계를 포함한다.
여기서, 상기 가상 데스크탑 프로토콜 가속 장치에서 처리할 태스크 정보를 결정하는 단계는, 상기 태스크의 속성, 상기 태스크가 처리할 데이터가 저장된 메모리 주소, 상기 데이터의 크기, 상기 데이터의 처리 결과를 저장할 메모리 주소 중 적어도 하나의 인자를 결정할 수 있다.
여기서, 상기 결정된 상기 태스크 정보를 상기 가상 데스크탑 프로토콜 가속 장치에 전달하는 단계는, 상기 적어도 하나의 인자 및 상기 태스크에 상응하는 가상 머신의 구분자를 상기 가상 데스크탑 프로토콜 가속 장치에 전달할 수 있다.
여기서, 상기 가상 데스크탑 프로토콜 가속 장치가 제공받은 태스크 정보에 기초하여 태스크를 처리하는 단계는, 상기 가상 테스크탑 프로토콜 가속 장치가 상기 제공된 가상 머신의 구분자에 기초하여 처리할 태스크의 속성을 검색하는 단계와, 상기 제공된 적어도 하나의 인자를 이용하여 처리할 데이터를 인출하는 단계 및 상기 인출한 데이터를 속성에 따라 처리하는 단계를 포함할 수 있다.
여기서, 상기 가상 데스크탑 프토토콜 가속 방법은, 상기 가상 데스크탑 프로토콜 가속 장치에 설정된 태스크 속성의 삭제를 지시하는 속성 삭제 명령을 상기 가상 데스크탑 프로토콜 가속 장치에 제공하는 단계 및 상기 가상 데스크탑 프로토콜 가속 장치가 제공된 상기 속성 삭제 명령에 기초하여 상기 설정된 태스크 속성을 삭제하는 단계를 더 포함할 수 있다.
또한, 본 발명의 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 가상화 서버는, 가속할 태스크의 속성을 결정하고, 결정된 상기 태스크의 속성과 상기 가속할 태스크에 상응하는 가상 머신 구분자를 포함하는 태스크 속성 설정 명령을 제공하는 가상화부 및 제공된 상기 태스크 속성 설정 명령에 상응하여 태스크를 처리하는 가상 데스크탑 프로토콜 가속부를 포함한다.
여기서, 상기 가상화 서버는 상기 가상화부로부터 상기 태스크 속성 설정 명령을 제공받고 상기 태스크 속성 설정 명령에 기초하여 상기 가상 머신 구분자와 상기 가속할 태스크의 속성을 저장하며, 상기 태스크 속성 설정 명령을 상기 가상 데스크탑 프로토콜 가속부에 전달하고, 상기 가상 데스크탑 프로토콜 가속부로부터 제공된 태스크 종료 시점 정보를 상기 가상화부에 전달하는 인터페이스부를 더 포함할 수 있다.
여기서, 상기 가속할 태스크의 속성은 그래픽 부호화, 오디오 출력 부호화, 오디오 입력 복호화, USB 출력 부호화, USB 입력 복호화 중 적어도 하나를 포함할 수 있고, 상기 태스크 속성 설정 명령은 상기 가속할 태스크가 처리할 데이터가 저장된 메모리 주소, 상기 데이터의 크기, 상기 데이터의 처리 결과를 저장할 메모리 주소 중 적어도 하나의 인자를 포함할 수 있다.
여기서, 상기 가상 데스크탑 프로토콜 가속부는 상기 제공된 가상 머신의 구분자에 기초하여 처리할 태스크의 속성을 검색하고, 상기 제공된 적어도 하나의 인자를 이용하여 처리할 데이터를 인출한 후, 상기 인출한 데이터를 속성에 따라 상기 가속할 태스크를 처리할 수 있다.
Server virtualization-based virtual desktop protocol acceleration method according to an aspect of the present invention for achieving the above object of the present invention comprises the steps of determining the task information to be processed in the virtual desktop protocol acceleration device, and the determined task information to the virtual desktop Delivering to a protocol acceleration device and processing a task based on task information provided by the virtual desktop protocol acceleration device.
The determining of the task information to be processed in the virtual desktop protocol acceleration apparatus may include selecting among a property of the task, a memory address in which data to be processed by the task is stored, a size of the data, and a memory address in which the data processing result is stored. At least one factor can be determined.
The transmitting of the determined task information to the virtual desktop protocol accelerator may include passing the at least one factor and a delimiter of a virtual machine corresponding to the task to the virtual desktop protocol accelerator.
The processing of the task based on the task information provided by the virtual desktop protocol accelerator may include: retrieving an attribute of a task to be processed by the virtual desktop protocol accelerator based on the identifier of the provided virtual machine; The method may include retrieving data to be processed using the provided at least one factor and processing the retrieved data according to an attribute.
The virtual desktop protocol acceleration method may further include providing an attribute deletion command to the virtual desktop protocol accelerator for instructing deletion of a task attribute set in the virtual desktop protocol accelerator and providing the virtual desktop protocol accelerator. The method may further include deleting the set task attribute based on the attribute delete command.
In addition, the virtualization server according to an aspect of the present invention for achieving another object of the present invention, determining the attribute of the task to be accelerated, and includes a virtual machine identifier corresponding to the determined attribute of the task and the task to be accelerated And a virtualization unit providing a task attribute setting command and a virtual desktop protocol accelerator for processing a task in accordance with the provided task attribute setting command.
The virtual server receives the task property setting command from the virtualization unit, stores the virtual machine identifier and the property of the task to be accelerated based on the task property setting command, and sets the task property setting command to the virtual desktop. The processor may further include an interface unit configured to transfer a task termination time information provided from the virtual desktop protocol accelerator to the protocol accelerator.
The attribute of the task to be accelerated may include at least one of graphic encoding, audio output encoding, audio input decoding, USB output encoding, and USB input decoding, and the task attribute setting command may include data to be processed by the task to be accelerated. May include at least one of a stored memory address, a size of the data, and a memory address to store the processing result of the data.
Here, the virtual desktop protocol accelerator retrieves an attribute of a task to be processed based on the identifier of the provided virtual machine, retrieves data to be processed using the provided at least one factor, and then stores the retrieved data in an attribute. Accordingly, the task to be accelerated may be processed.

상술한 바와 같은 서버 가상화 기반 가상 데스크탑 프로토콜 가속 방법 및 가상화 서버에 따르면, 서버 가상화 환경에서 소프트웨어적으로 처리되는 가상 데스크탑 프로토콜 처리 태스크 중 일부를 선택적으로 전용 하드웨어인 가상 데스크탑 프로토콜 가속 장치에서 처리하도록 함으로써 가상화 서버의 프로세서의 처리 부하를 경감시킬 수 있고, 이를 통해 가상화 서버의 전체적인 처리 성능을 향상시킬 수 있고, 가상화 서버로부터 가상 데스크탑을 제공받는 사용자 터미털의 지연 시간을 만족시킬 수 있다.According to the server virtualization-based virtual desktop protocol acceleration method and virtualization server as described above, the virtual desktop protocol acceleration device, which is a dedicated hardware, selectively processes some of the virtual desktop protocol processing tasks that are processed in software in the server virtualization environment. It can reduce the processing load on the server's processor, improve the overall processing performance of the virtualization server, and satisfy the latency of the user terminal receiving the virtual desktop from the virtualization server.

도 1은 본 발명의 일 실시예에 따른 터미널 서비스 기능을 구비한 윈도우 시스템 기반 컴퓨터의 구성을 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 가상화 서버의 구성을 나타내는 블록도이다.
도 3은 도 2에 도시한 가상 데스크탑 프로토콜 가속 장치의 보다 상세한 구성을 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 서버 가상화 기반 가상 데스크탑 프로토콜 가속 방법에서 가상 데스크탑 프로토콜 가속 장치의 구동 및 태스크 속성 설정 과정을 나타내는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 서버 가상화 기반 가상 데스크탑 프로토콜 가속 방법에서 가상 데스크탑 프로토콜 가속 장치에 가속 데이터를 전달 및 처리하기 위한 동작을 나타내는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 서버 가상화 기반 가상 데스크탑 프로토콜 가속 방법에서 가상 데스크탑 프로토콜 가속 장치에 설정된 가속 태스크의 속성을 삭제하기 위한 동작을 나타내는 흐름도이다.
1 is a block diagram illustrating a configuration of a window system-based computer having a terminal service function according to an embodiment of the present invention.
2 is a block diagram showing the configuration of a virtualization server according to an embodiment of the present invention.
FIG. 3 is a block diagram illustrating a more detailed configuration of the virtual desktop protocol accelerator shown in FIG. 2.
4 is a flowchart illustrating a process of driving a virtual desktop protocol acceleration device and setting task properties in a server virtualization-based virtual desktop protocol acceleration method according to an embodiment of the present invention.
5 is a flowchart illustrating an operation for transferring and processing acceleration data to a virtual desktop protocol acceleration device in a server virtualization-based virtual desktop protocol acceleration method according to an embodiment of the present invention.
6 is a flowchart illustrating an operation for deleting an attribute of an acceleration task set in a virtual desktop protocol acceleration device in a server virtualization-based virtual desktop protocol acceleration method according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "having" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the relevant art and are to be interpreted in an ideal or overly formal sense unless explicitly defined in the present application Do not.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In order to facilitate the understanding of the present invention, the same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

도 1은 본 발명의 일 실시예에 따른 터미널 서비스 기능을 구비한 윈도우 시스템 기반 컴퓨터의 구성을 나타내는 블록도이다.1 is a block diagram illustrating a configuration of a window system-based computer having a terminal service function according to an embodiment of the present invention.

도 1을 참조하면, 컴퓨터(100)는 애플리케이션 계층(110), 윈도우 시스템을 지원하는 운영체제(이하, 'OS'라 약칭함) 계층(120) 및 하드웨어 계층(130)으로 구성될 수 있다.Referring to FIG. 1, the computer 100 may include an application layer 110, an operating system (hereinafter, referred to as an “OS”) layer 120, and a hardware layer 130 that support a window system.

윈도우 시스템 기반 컴퓨터(100) 환경에서는 사용자 데스크탑 및 애플리케이션(111)을 표현하기 위해 윈도의 기반 운영체제 계층(120)에 포함된 공통의 윈도우 시스템 라이브러리(121)를 통해 비디오 어댑터(123), USB 인터페이스(124), 시리얼 포트 인터페이스(125), 오디오 어댑터(126) 등의 입출력 인터페이스에 접근하고, 이를 통해 모니터(131), USB 장치(132), 키보드/마우스(133), 오디오 장치(134) 등의 입출력 하드웨어 장치와 통신한다. In the Windows system-based computer 100 environment, the video adapter 123 and the USB interface (through the common window system library 121 included in the Windows-based operating system layer 120 for representing the user desktop and the application 111) are provided. 124, the serial port interface 125, the audio adapter 126 and the like input and output interface, through which the monitor 131, USB device 132, keyboard / mouse 133, audio device 134, etc. Communicate with input and output hardware devices.

또한, 윈도우 시스템 기반 컴퓨터(100) 환경에서는 운영체제 계층(120)에 포함된 윈도우 시스템 라이브러리 하부의 가상 데스크탑 프로토콜 스택(122)에서 비디오 어댑터(123), USB 인터페이스(124), 시리얼 포트 인터페이스(125), 오디오 어댑터(126) 등의 입출력 인터페이스의 데이터를 수집하여 애플리케이션 계층(110)의 터미널 서비스 연결 프로세스(112)를 통해 터미널 서비스를 제공한다.
In addition, in the Windows system-based computer 100 environment, the video adapter 123, the USB interface 124, and the serial port interface 125 are provided in the virtual desktop protocol stack 122 under the Windows system library included in the OS layer 120. The terminal collects data of an input / output interface such as an audio adapter 126 and provides a terminal service through the terminal service connection process 112 of the application layer 110.

도 2는 본 발명의 일 실시예에 따른 가상화 서버의 구성을 나타내는 블록도이다.2 is a block diagram showing the configuration of a virtualization server according to an embodiment of the present invention.

도 2를 참조하면, 가상화 서버(1000)는 복수의 가상 머신(1100a, 1100b), 가상화 계층(1200), 호스트 OS 계층(1300) 및 하드웨어 계층(1400)을 포함할 수 있다.Referring to FIG. 2, the virtualization server 1000 may include a plurality of virtual machines 1100a and 1100b, a virtualization layer 1200, a host OS layer 1300, and a hardware layer 1400.

서버 가상화 환경에 적용되는 가상화 서버(1000)에서는 복수의 가상 머신(1100a 및 1100b)이 동작한다. 도 2에서는 가상화 서버(1000)가 제1 가상 머신(1100a) 및 제2 가상 머신(1100b)만 포함하는 것으로 예를 들어 도시하였으나, 이는 설명의 편의를 위한 일 예일 뿐이며, 가상화 서버(1000)에 포함되는 가상 머신의 수는 한정되지 않는다.In the virtualization server 1000 applied to a server virtualization environment, a plurality of virtual machines 1100a and 1100b operate. In FIG. 2, for example, the virtualization server 1000 includes only the first virtual machine 1100a and the second virtual machine 1100b. However, this is only an example for convenience of description and may be applied to the virtualization server 1000. The number of virtual machines included is not limited.

각 가상 머신(1100a 및 1100b)에서 동작하는 애플리케이션 계층(1110) 및 게스트 윈도우 운영체제 계층(1120)은 도 1에 도시한 일반 컴퓨터(100)에 탑재되는 해당 구성요소(즉 도 1의 110 및 120)와 호환성을 갖고, 코드의 수정 없이 동작한다.The application layer 1110 and guest window operating system layer 1120 operating in each of the virtual machines 1100a and 1100b have corresponding components (i.e. 110 and 120 of FIG. 1) mounted on the general computer 100 shown in FIG. Compatible with and works without code modification.

그러나, 각 가상 머신(1100a 및 1100b)의 입출력 인터페이스인 비디오 어댑터(1123), USB 인터페이스(1124), 시리얼 포트 인터페이스(1125) 및 오디오 어댑터(1126) 등은 가상화 계층(1200)의 라우팅을 통해서만 하드웨어 계층(1400)에 접근할 수 있다.However, the video adapter 1123, the USB interface 1124, the serial port interface 1125, the audio adapter 1126, and the like, which are input / output interfaces of each of the virtual machines 1100a and 1100b, are hardware only through the routing of the virtualization layer 1200. Layer 1400 may be accessed.

가상화 계층(1200)에 위치한 가상 입출력 하드웨어 자원(1210)은 호스트 컴퓨터의 메모리 주소 공간으로, 상기 가상 입출력 하드웨어 자원(1210)에는 도 1에 도시한 컴퓨터(100)의 하드웨어 계층(130)에 전달되는 데이터와 동일한 데이터가 저장된다.The virtual input / output hardware resource 1210 located in the virtualization layer 1200 is a memory address space of a host computer, and the virtual input / output hardware resource 1210 is transferred to the hardware layer 130 of the computer 100 shown in FIG. 1. The same data as the data is stored.

본 발명의 일 실시예에 따른 가상화 서버(1000)는 복수의 가상 머신 들(1100a 및 1100b)에게 각각의 터미널 서비스를 제공하기 위해, 가상 입출력 하드웨어 자원(1210)의 입출력 데이터를 수집 및 처리하는 가상 데스크탑 프로토콜 데이터 관리 풀(1220) 및 터미널 서비스의 연결 및 제공을 위한 가상 데스크탑 연결 및 전송 관리 서버 풀(1230)을 이용한다.The virtualization server 1000 according to an embodiment of the present invention collects and processes input / output data of the virtual input / output hardware resource 1210 to provide terminal services to the plurality of virtual machines 1100a and 1100b. It utilizes a desktop protocol data management pool 1220 and a virtual desktop connection and transport management server pool 1230 for connection and provision of terminal services.

즉, 가상 데스크탑 프로토콜 데이터 관리 풀(1220)에서 수집된 데이터는 입출력 장치 속성 별로 데이터를 나누어서 부호화 혹은 역부호화하고, 가상 데스크탑 연결 및 전송 관리 서버 풀(1230)을 통해 각각의 원격 사용자 클라이언트로 전달된다.That is, data collected from the virtual desktop protocol data management pool 1220 is encoded or decoded by dividing the data according to the input / output device attributes, and transmitted to each remote user client through the virtual desktop connection and the transmission management server pool 1230. .

본 발명은 가상화 서버의 터미널 서비스 제공에 병목 지점이 되는 가상 데스크탑 프로토콜 데이터 관리 풀(1220)의 태스크를 부분적으로 호스트 OS 계층(1300)의 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)를 통해 가상 데스크탑 프로토콜 가속 장치(1410)가 처리하도록 한다.
The present invention partially accelerates the tasks of the virtual desktop protocol data management pool 1220, which is a bottleneck in providing terminal services of the virtualization server, through the virtual desktop protocol accelerator device interface 1310 of the host OS layer 1300. Let device 1410 process it.

도 3은 도 2에 도시한 가상 데스크탑 프로토콜 가속 장치의 보다 상세한 구성을 나타내는 블록도이다.FIG. 3 is a block diagram illustrating a more detailed configuration of the virtual desktop protocol accelerator shown in FIG. 2.

도 3을 참조하면, 가상 데스크탑 프로토콜 가속 장치(1410)는 가상 데스크탑 프로토콜 가속 전용 프로세서(1411), 가상 데스크탑 프로토콜 태스크 속성 명령 풀(1412), 가상 데스크탑 프로토콜 데이터 전송 명령 풀(1413), 그래픽 태스크 풀(1414), 오디오 태스크 풀(1415), USB 태스크 풀(1416) 및 가상 데스크탑 프로토콜 가속 전용 메모리(1417)를 포함하고, 상기 구성요소들은 가상 데스크탑 프로세서 로컬 버스를 통해 연결된다.Referring to FIG. 3, the virtual desktop protocol accelerator 1410 may include a virtual desktop protocol acceleration dedicated processor 1411, a virtual desktop protocol task attribute command pool 1412, a virtual desktop protocol data transfer command pool 1413, and a graphic task pool. 1414, audio task pool 1415, USB task pool 1416, and virtual desktop protocol acceleration dedicated memory 1417, which components are connected via a virtual desktop processor local bus.

가상 데스크탑 프로토콜 가속 전용 프로세서(1411)는 가상 데스크탑 프로토콜 태스크 속성 설정 및 삭제 명령을 처리하고, 그래픽 부호화, 오디오 및 USB 채널 부호화 또는 역부호화 명령을 처리하며 데이터 송수신을 제어한다.The virtual desktop protocol acceleration dedicated processor 1411 processes virtual desktop protocol task attribute setting and deletion instructions, processes graphic encoding, audio and USB channel encoding or decoding instructions, and controls data transmission and reception.

또한, 가상 데스크탑 프로토콜 가속 전용 프로세서(1411)는 호스트 프로세서(200)로부터 명령 및/또는 데이터를 전달받고, 전달받은 명령 및/또는 데이터에 기초하여 가상 데스크탑 프로토콜 가속 장치(1410)의 다른 구성요소들을 제어한다. In addition, the virtual desktop protocol acceleration dedicated processor 1411 receives instructions and / or data from the host processor 200, and controls other components of the virtual desktop protocol acceleration apparatus 1410 based on the received instructions and / or data. To control.

가상 데스크탑 프로토콜 태스크 속성 명령 풀(1412)은 가상 데스크탑 프로토콜 태스크 속성 설정 및 삭제 명령을 저장한다.The virtual desktop protocol task attribute command pool 1412 stores virtual desktop protocol task attribute set and delete commands.

가상 데스크탑 태스크 속성 명령 풀(1412)에 저장된 명령은 가상 데스크탑 프로토콜 전용 프로세서(1411)에 의해 처리되어 그래픽 태스크 풀(1414), 오디오 태스크 풀(1415) 및 USB 태스크 풀(1416) 각각에 해당 태스크 처리 명령이 저장된다.Commands stored in the virtual desktop task attribute command pool 1412 are processed by the virtual desktop protocol dedicated processor 1411 to process the corresponding tasks for the graphics task pool 1414, the audio task pool 1415, and the USB task pool 1416, respectively. The command is saved.

가상 데스크탑 프로토콜 데이터 전송 명령 풀(1413)은 가상 데스크탑 프로토콜 가속 장치(1410)에서 처리할 데이터의 인출 명령을 저장한다.The virtual desktop protocol data transfer command pool 1413 stores a command for fetching data to be processed by the virtual desktop protocol accelerator 1410.

그래픽 태스크 풀(1414)은 가상 데스크탑 프로토콜의 태스크 속성 중 그래픽 태스크 처리 명령을 저장한다.The graphic task pool 1414 stores graphic task processing instructions among task attributes of the virtual desktop protocol.

오디오 태스크 풀(1415)은 가상 데스크탑 프로토콜의 태스크 속성 중 오디오 태스크 처리 명령을 저장한다.The audio task pool 1415 stores audio task processing instructions among task attributes of the virtual desktop protocol.

USB 태스크 풀(1416)은 가상 데스크탑 프로토콜의 태스크 속성 중 USB 태스크 처리 명령을 저장한다.The USB task pool 1416 stores USB task processing instructions among task attributes of the virtual desktop protocol.

그래픽 태스크 풀(1414), 오디오 태스크 풀(1315), 그리고 USB 태스크 풀(1416)에 저장된 명령은 가상 데스크탑 프로토콜 데이터 전송 명령 풀(1413)에 저장된 데이터 전송 명령을 통해서 상기 가상 데스크탑 프로토콜 가속 장치(1410)에서 처리할 태스크의 데이터가 가상 데스크탑 프로토콜 가속 전용 메모리(1417)에 복사가 완료되는 시점에 해당 태스크 풀(1414, 1415, 1416)의 명령을 수행한다. 각 풀의 명령은 가상 머신 구분자와 함께 저장되어 가상 데스크탑 프로토콜 가속 전용 메모리(1417)에서 각 가상 머신의 정보를 인출하는 인덱스로 쓰인다.The commands stored in the graphics task pool 1414, the audio task pool 1315, and the USB task pool 1416 are transferred to the virtual desktop protocol accelerator 1410 via data transfer commands stored in the virtual desktop protocol data transfer command pool 1413. At the time point at which data of the task to be processed is copied to the virtual desktop protocol acceleration dedicated memory 1417 is completed, the command of the corresponding task pool 1414, 1415, and 1416 is performed. Instructions in each pool are stored with a virtual machine identifier and used as an index to retrieve the information of each virtual machine from the virtual desktop protocol acceleration dedicated memory 1417.

가상 데스크탑 프로토콜 가속 전용 메모리(1417)는 가상 데스크탑 프로토콜 가속 전용 프로세서(1411)에서 처리할 태스크의 속성 및 해당 태스크의 데이터, 해당 태스크의 처리 결과 데이터를 저장한다.The virtual desktop protocol acceleration dedicated memory 1417 stores attributes of a task to be processed by the virtual desktop protocol acceleration dedicated processor 1411, data of the task, and processing result data of the task.

가상 데스크탑 프로토콜 가속 장치(1410)는 복수의 가상 머신(1100a, 1100b)에서 접근되기 때문에 가상 머신 구분자를 이용하여 각각의 가상 데스크탑을 구분한다. 가상 데스크탑 프로토콜 가속 전용 메모리(1417)에는 가상 머신의 구분자와, 상기 가상 데스크탑 프로토콜 가속 장치(1410)에서 처리할 데이터의 인출 주소 및 상기 가상 데스크탑 프로토콜 가속 장치(1410)에서 처리된 데이터가 전송될 호스트 메모리의 주소가 저장된다.
Since the virtual desktop protocol accelerator 1410 is accessed by the plurality of virtual machines 1100a and 1100b, the virtual desktop protocol accelerator 1410 divides each virtual desktop using a virtual machine identifier. The virtual desktop protocol acceleration dedicated memory 1417 includes a delimiter of a virtual machine, a fetch address of data to be processed by the virtual desktop protocol accelerator 1410, and a host to which data processed by the virtual desktop protocol accelerator 1410 is to be transmitted. The address of the memory is stored.

도 4는 본 발명의 일 실시예에 따른 서버 가상화 기반 가상 데스크탑 프로토콜 가속 방법에서 가상 데스크탑 프로토콜 가속 장치의 구동 및 태스크 속성 설정 과정을 나타내는 흐름도이다.4 is a flowchart illustrating a process of driving a virtual desktop protocol acceleration device and setting task properties in a server virtualization-based virtual desktop protocol acceleration method according to an embodiment of the present invention.

도 2 내지 도 4를 참조하면, 먼저 가상화 계층(1200)의 가상 데스크탑 프로토콜 데이터 관리 풀(1220)은 호스트 OS 계층(1300)의 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)을 활성화시킨다(단계 310). 여기서, 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)는 복수의 가상 머신의 가상 데스크탑 프로토콜 가속에 사용되기 위해 하나의 프로세스에 선점되어서는 안된다. 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)는 가상 데스크탑 프로토콜 데이터 관리 풀(1220)에 의해 활성화됨과 동시에 가상 데스크탑 프로토콜 가속 장치(1410)를 활성화시킨다.2 to 4, first, the virtual desktop protocol data management pool 1220 of the virtualization layer 1200 activates the virtual desktop protocol accelerator device 1310 of the host OS layer 1300 (step 310). Here, the virtual desktop protocol accelerator interface 1310 should not be preempted in one process to be used for virtual desktop protocol acceleration of a plurality of virtual machines. The virtual desktop protocol accelerator interface 1310 is activated by the virtual desktop protocol data management pool 1220 and simultaneously activates the virtual desktop protocol accelerator 1410.

이후, 가상 데스크탑 프로토콜 데이터 관리 풀(1220)은 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)를 통해 하드웨어 계층(1400)의 가상 데스크탑 프로토콜 가속 장치(1410)의 존재 유무와 동작을 확인한다(단계 320).Thereafter, the virtual desktop protocol data management pool 1220 checks the existence and operation of the virtual desktop protocol accelerator 1410 of the hardware layer 1400 through the virtual desktop protocol accelerator device 1310 (step 320).

이후, 가상 데스크탑 프로토콜 데이터 관리 풀(1220)은 가상 테스크탑 프로토콜 가속 장치(1410)가 존재하고 정상적으로 동작하는 것으로 확인되면, 상기 가상 데스크탑 프로토콜 가속 장치(1410)에서 처리할 태스크의 속성을 결정하고, 해당 가상 머신의 구분자와 가속 태스크의 속성을 인자로 하여 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)에 가상 데스크탑 프로토콜 태스크 속성 설정 명령을 전달한다(단계 330). 여기서, 가속할 태스크의 속성에는 그래픽의 부호화, 오디오의 출력 부호화 및 입력 복호화 또는 USB 출력 부호화 및 입력 복호화를 포함할 수 있고, 가상 데스크탑 프로토콜 가속 장치(1410)에서 이와 같은 속성을 선택적으로 처리할 수 있다.Subsequently, when it is determined that the virtual desktop protocol accelerator 1410 exists and operates normally, the virtual desktop protocol data management pool 1220 determines attributes of a task to be processed by the virtual desktop protocol accelerator 1410, and The virtual desktop protocol task attribute setting command is transmitted to the virtual desktop protocol accelerator device interface 1310 using the identifier of the virtual machine and the attributes of the acceleration task as parameters (step 330). Here, the attributes of the task to be accelerated may include encoding of graphics, output encoding and input decoding of audio, or USB output encoding and input decoding, and the virtual desktop protocol accelerator 1410 may selectively process such attributes. have.

가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)는 가상 데스크탑 프로토콜 데이터 관리 풀(1220)로부터 제공된 속성 및 명령을 가상 데스크탑 프로토콜 가속 장치(1410)에 전달한다(단계 340). 여기서, 가상 데스크탑 프로토콜 가속 인터페이스(1310)는 가상 머신에 대한 자료구조를 생성하여 가상 머신 구분자와 태스크 속성을 저장한다. 또한, 가상 데스크탑 프로토콜 가속 인터페이스(1310)는 가상 데스크탑 프로토콜 가속 장치(1410)에 인터럽트를 통해 상기 명령을 하달하고, 가상 데스크탑 프로토콜 가속 장치(1410)로부터 제공된 인터럽트를 통해 상기 명령 처리 시점을 인지한다. 또한, 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)는 가상 데스크탑 프로토콜 가속 장치(1410)으로부터 상기 명령 처리 결과 수신한 후, 가상 데스크탑 프로토콜 데이터 관리 풀(1220)에 처리 결과를 회신한다.The virtual desktop protocol accelerator interface 1310 passes the attributes and commands provided from the virtual desktop protocol data management pool 1220 to the virtual desktop protocol accelerator 1410 (step 340). Here, the virtual desktop protocol acceleration interface 1310 generates a data structure for the virtual machine to store the virtual machine identifier and the task attribute. In addition, the virtual desktop protocol acceleration interface 1310 issues the command to the virtual desktop protocol accelerator 1410 through an interrupt, and recognizes the command processing time point through the interrupt provided from the virtual desktop protocol accelerator 1410. In addition, the virtual desktop protocol accelerator device 1310 receives the command processing result from the virtual desktop protocol accelerator 1410 and then returns the processing result to the virtual desktop protocol data management pool 1220.

가상 데스크탑 프로토콜 가속 장치(1410)는 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)로부터 전달받은 명령을 가상 머신의 구분자와 함께 가상 데스크탑 프로토콜 태스크 속성 명령 풀(1412)에 저장하고, 인자로 하여 넘겨받은 태스크 속성을 가상 머신의 구분자를 인덱스로 하여 가상 데스크탑 프로토콜 가속 전용 메모리(1417)에 저장한다. 이후, 가상 데스크탑 프로토콜 가속 장치(1410)는 상기 명령의 수행 결과를 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)에 전달한다(단계 350).
The virtual desktop protocol accelerator 1410 stores the command received from the virtual desktop protocol accelerator interface 1310 in the virtual desktop protocol task attribute command pool 1412 together with the identifier of the virtual machine, and passes the task attribute passed as an argument. Is stored in the virtual desktop protocol acceleration dedicated memory 1417 using the identifier of the virtual machine as an index. Thereafter, the virtual desktop protocol accelerator 1410 transmits the execution result of the command to the virtual desktop protocol accelerator interface 1310 (step 350).

도 5는 본 발명의 일 실시예에 따른 서버 가상화 기반 가상 데스크탑 프로토콜 가속 방법에서 가상 데스크탑 프로토콜 가속 장치에 가속 데이터를 전달 및 처리하기 위한 동작을 나타내는 흐름도이다.5 is a flowchart illustrating an operation for transferring and processing acceleration data to a virtual desktop protocol acceleration device in a server virtualization-based virtual desktop protocol acceleration method according to an embodiment of the present invention.

먼저, 가상화 계층(1200)의 가상 데스크탑 프로토콜 데이터 관리 풀(1220)은 가상 입출력 하드웨어 자원(1210) 중 하드웨어 계층(1400)의 가상 데스크탑 프로토콜 가속 장치(1410)에서 처리할 태스크의 속성, 상기 태스크가 처리할 데이터가 저장된 호스트의 메모리 주소, 데이터 크기 및 데이터 처리 결과를 저장할 호스트의 메모리 주소를 가상 데스크탑 데이터 전송 명령과 함께 호스트 OS 계층(1300)의 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)으로 전송한다(단계 410).First, the virtual desktop protocol data management pool 1220 of the virtualization layer 1200 may include attributes of a task to be processed by the virtual desktop protocol accelerator 1410 of the hardware layer 1400 among the virtual input / output hardware resources 1210. The memory address of the host storing the data to be processed, the data size, and the memory address of the host to store the data processing result are transmitted to the virtual desktop protocol accelerator device 1310 of the host OS layer 1300 together with the virtual desktop data transfer command ( Step 410).

가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)는 가상 데스크탑 프로토콜 가속 장치(1410)로부터 상기 단계 410에서 제공받은 인자의 유효성을 파악하고 상기 인자가 유효할 경우, 도 4에 도시한 과정을 통해서 저장한 가상 머신의 구분자와 상기 인자를 가상 데스크탑 프로토콜 가속 장치(1410)에 전달한다(단계 420). 또한 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)는 가상 데스크탑 프로토콜 가속 장치(1410)에서 태스크 처리가 완료되기를 기다린 후, 가상 데스크탑 프로토콜 데이터 관리 풀(1220)에서 요청한 모든 태스크가 가상 데스크탑 프로토콜 가속 장치(1410)에서 완료되어 가상 데스크탑 프로토콜 가속 장치(1410)로부터 완료 인터럽트와 처리 결과를 받은 경우, 가상 데스크탑 프로토콜 데이터 관리 풀(1220)에 이를 회신한다.The virtual desktop protocol accelerator interface 1310 determines the validity of the argument provided in step 410 from the virtual desktop protocol accelerator 1410 and, if the argument is valid, stores the virtual machine through the process illustrated in FIG. 4. The delimiter and the argument are passed to the virtual desktop protocol accelerator 1410 (step 420). In addition, the virtual desktop protocol accelerator interface 1310 waits for task processing to be completed in the virtual desktop protocol accelerator 1410, and then all tasks requested by the virtual desktop protocol data management pool 1220 are virtual desktop protocol accelerator 1410. If it is completed at and received the completion interrupt and the processing result from the virtual desktop protocol accelerator 1410, it returns to the virtual desktop protocol data management pool 1220.

가상 데스크탑 프로토콜 가속 장치(1410)은 단계 420에서 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)로부터 제공받은 데이터 전송 및 처리 명령을 처리한 후, 인터럽트를 통해 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)로 처리 결과를 회신한다. 여기서, 가상 데스크탑 프로토콜 가속 장치(1410)는 제공된 가상 머신의 구분자를 이용하여 처리할 태스크의 속성을 검색하고, 처리할 데이터의 주소 및 크기 정보를 이용하여 해당 데이터를 인출한 후, 가상 데스크탑 프로토콜 태스크 속성 명령 풀(1412)에 설정된 속성별 전달받은 데이터를 처리하고, 가속 처리된 데이터는 가상 데스크탑 프로토콜 데이터 관리 풀(1220)의 메모리 주소 공간에 전달한다.
The virtual desktop protocol accelerator 1410 processes the data transfer and processing command provided from the virtual desktop protocol accelerator interface 1310 in step 420, and then passes the processing result to the virtual desktop protocol accelerator device 1310 through an interrupt. Reply. Here, the virtual desktop protocol accelerator 1410 retrieves attributes of a task to be processed by using a separator of a provided virtual machine, retrieves the corresponding data by using address and size information of the data to be processed, and then the virtual desktop protocol task. The received data for each attribute set in the attribute command pool 1412 is processed, and the accelerated data is transferred to the memory address space of the virtual desktop protocol data management pool 1220.

도 6은 본 발명의 일 실시예에 따른 서버 가상화 기반 가상 데스크탑 프로토콜 가속 방법에서 가상 데스크탑 프로토콜 가속 장치에 설정된 가속 태스크의 속성을 삭제하기 위한 동작을 나타내는 흐름도이다.6 is a flowchart illustrating an operation for deleting an attribute of an acceleration task set in a virtual desktop protocol acceleration device in a server virtualization-based virtual desktop protocol acceleration method according to an embodiment of the present invention.

도 6을 참조하면, 먼저 가상화 계층(1200)의 가상 데스크탑 프로토콜 데이터 관리 풀(1220)은 하드웨어 계층(1400)의 가상 데스크탑 프로토콜 가속 장치(1410)에 설정된 가속 데이터 속성 삭제 명령을 호스트 OS 계층(1300)의 가상 데스크탑 프로토콜 가속 인터페이스(1310)에 전달한다(단계 510).Referring to FIG. 6, the virtual desktop protocol data management pool 1220 of the virtualization layer 1200 first issues an acceleration data attribute delete command set in the virtual desktop protocol accelerator 1410 of the hardware layer 1400. The virtual desktop protocol acceleration interface 1310 (step 510).

가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)는 가상 데스크탑 프로토콜 데이터 관리 풀(1220)로부터 상기 가속 데이터 속성 삭제 명령을 제공받고, 가상 데스크탑 프로토콜 가속 장치(1410)에 상기 명령을 전달한 후, 인터럽트를 통해 가상 데스크탑 프로토콜 가속 장치(1410)의 명령 수행 결과를 제공받고, 도 4에 도시한 과정을 통해 생성된 가상 머신의 자료구조를 삭제하고, 이를 가상 데스크탑 프로토콜 데이터 관리 풀(1220)에 회신한다(단계 520).The virtual desktop protocol accelerator interface 1310 is provided with the command to delete the accelerated data attribute from the virtual desktop protocol data management pool 1220, transmits the command to the virtual desktop protocol accelerator 1410, and then interrupts the virtual desktop. After receiving the command execution result of the protocol accelerator device 1410, the data structure of the virtual machine created through the process shown in FIG. 4 is deleted and returned to the virtual desktop protocol data management pool 1220 (step 520). .

가상 데스크탑 프로토콜 가속 장치(1410)는 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)로부터 제공된 가속 데이터 속성 삭제 명령을 수행한 후, 인터럽트를 통해 상기 명령 처리 시점을 가상 데스크탑 프로토콜 가속 장치 인터페이스(1310)에 통보한다(단계 530).
The virtual desktop protocol accelerator 1410 performs an acceleration data attribute delete command provided from the virtual desktop protocol accelerator interface 1310, and then notifies the virtual desktop protocol accelerator device interface 1310 of the command processing time point through an interrupt. (Step 530).

이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined in the appended claims. It will be possible.

1000 : 가상화 서버
1100a, 1100b : 가상 머신
1200 : 가상화 계층
1220 : 가상 데스크탑 프로토콜 데이터 관리 풀
1300 : 호스트 OS 계층
1310 : 가상 데스크탑 프로토콜 가속 장치 인터페이스
1400 : 하드웨어 계층
1410 : 가상 데스크탑 프로토콜 가속 장치
1411 : 가상 데스크탑 프로토콜 가속 전용 프로세서
1412 : 가상 데스크탑 프로토콜 태스크 속성 명령 풀
1413 : 가상 데스크탑 프로토콜 데이터 전송 명령 풀
1414 : 그래픽 태스크 풀
1415 : 오디오 태스크 풀
1416 : USB 태스크 풀
1417 : 가상 데스크탑 프로토콜 가속 전용 메모리
1000: Virtualization Server
1100a, 1100b: virtual machine
1200: virtualization layer
1220: Virtual Desktop Protocol Data Management Pool
1300: host OS layer
1310: Virtual Desktop Protocol Accelerator Interface
1400: hardware layer
1410: virtual desktop protocol accelerator
1411: dedicated processor for virtual desktop protocol acceleration
1412: Virtual Desktop Protocol Task Properties Command Pool
1413: Virtual Desktop Protocol Data Transfer Command Pool
1414: Graphics Task Pool
1415: audio task pool
1416: USB Task Pool
1417: dedicated memory for virtual desktop protocol acceleration

Claims (9)

가상 데스크탑 프로토콜 가속 장치를 구비한 가상화 서버에서 수행되는 가상 데스크탑 프로토콜 가속 방법에 있어서,
상기 가상 데스크탑 프로토콜 가속 장치에서 처리할 태스크의 속성, 상기 태스크가 처리할 데이터가 저장된 메모리 주소, 상기 데이터의 크기, 상기 데이터의 처리 결과를 저장할 메모리 주소 중 적어도 하나의 인자를 포함하는 태스크 정보를 결정하는 단계;
결정된 상기 태스크 정보를 상기 가상 데스크탑 프로토콜 가속 장치에 전달하는 단계; 및
상기 가상 데스크탑 프로토콜 가속 장치가 제공받은 태스크 정보에 기초하여 태스크를 처리하는 단계를 포함하는 가상 데스크탑 프로토콜 가속 방법.
In the virtual desktop protocol acceleration method performed in a virtualization server having a virtual desktop protocol acceleration device,
Determine the task information including at least one factor of a property of a task to be processed in the virtual desktop protocol accelerator, a memory address at which data to be processed by the task is stored, a size of the data, and a memory address at which the data processing result is to be stored; Making;
Delivering the determined task information to the virtual desktop protocol accelerator; And
And processing a task based on task information provided by the virtual desktop protocol accelerator.
청구항 1에 있어서,
상기 가상 데스크탑 프로토콜 가속 장치에서 처리할 태스크 정보를 결정하는 단계는,
상기 태스크의 속성으로 그래픽 부호화, 오디오 출력 부호화, 오디오 입력 복호화, USB 출력 부호화, USB 입력 복호화 중 적어도 하나를 포함하여 구성하는 것을 특징으로 하는 가상 데스크탑 프로토콜 가속 방법.
The method according to claim 1,
Determining task information to be processed in the virtual desktop protocol accelerator,
And at least one of graphic encoding, audio output encoding, audio input decoding, USB output encoding, and USB input decoding as attributes of the task.
청구항 2에 있어서,
상기 결정된 상기 태스크 정보를 상기 가상 데스크탑 프로토콜 가속 장치에 전달하는 단계는,
상기 적어도 하나의 인자 및 상기 태스크에 상응하는 가상 머신의 구분자를 상기 가상 데스크탑 프로토콜 가속 장치에 전달하는 것을 특징으로 하는 가상 데스크탑 프로토콜 가속 방법.
The method according to claim 2,
Delivering the determined task information to the virtual desktop protocol acceleration device,
And transmitting the at least one factor and a separator of the virtual machine corresponding to the task to the virtual desktop protocol accelerator.
청구항 3에 있어서,
상기 가상 데스크탑 프로토콜 가속 장치가 제공받은 태스크 정보에 기초하여 태스크를 처리하는 단계는,
상기 가상 테스크탑 프로토콜 가속 장치가 상기 제공된 가상 머신의 구분자에 기초하여 처리할 태스크의 속성을 검색하는 단계;
상기 제공된 적어도 하나의 인자를 이용하여 처리할 데이터를 인출하는 단계; 및
상기 인출한 데이터를 속성에 따라 처리하는 단계를 포함하는 가상 데스크탑 프로토콜 가속 방법.
The method according to claim 3,
Processing the task based on the task information provided by the virtual desktop protocol accelerator,
Retrieving an attribute of a task to be processed by the virtual desktop protocol accelerator based on the identifier of the provided virtual machine;
Retrieving data to be processed using the provided at least one factor; And
And processing the retrieved data according to an attribute.
청구항 1에 있어서,
상기 가상 데스크탑 프토토콜 가속 방법은
상기 가상 데스크탑 프로토콜 가속 장치에 설정된 태스크 속성의 삭제를 지시하는 속성 삭제 명령을 상기 가상 데스크탑 프로토콜 가속 장치에 제공하는 단계; 및
상기 가상 데스크탑 프로토콜 가속 장치가 제공된 상기 속성 삭제 명령에 기초하여 상기 설정된 태스크 속성을 삭제하는 단계를 더 포함하는 것을 특징으로 하는 가상 데스크탑 프로토콜 가속 방법.
The method according to claim 1,
The virtual desktop protocol acceleration method
Providing an attribute deletion command to the virtual desktop protocol accelerator for deleting the task attribute set in the virtual desktop protocol accelerator; And
And deleting the set task attribute by the virtual desktop protocol accelerator based on the attribute delete command provided by the virtual desktop protocol accelerator.
가속할 태스크의 속성, 상기 태스크가 처리할 데이터가 저장된 메모리 주소, 상기 데이터의 크기, 상기 데이터의 처리 결과를 저장할 메모리 주소 중 적어도 하나의 인자를 포함하는 태스크의 정보를 결정하고, 결정된 태스크의 정보와 상기 가속할 태스크에 상응하는 가상 머신 구분자를 포함하는 태스크 속성 설정 명령을 제공하는 가상화부; 및
제공된 상기 태스크 속성 설정 명령에 상응하여 태스크를 처리하는 가상 데스크탑 프로토콜 가속부를 포함하는 가상화 서버.
Determine information of a task including at least one factor of an attribute of a task to be accelerated, a memory address at which data to be processed by the task is stored, a size of the data, and a memory address at which the data processing result is to be stored; And a virtualization unit providing a task attribute setting command including a virtual machine identifier corresponding to the task to be accelerated. And
And a virtual desktop protocol accelerator configured to process a task according to the provided task attribute setting command.
청구항 6에 있어서,
상기 가상화 서버는 상기 가상화부로부터 상기 태스크 속성 설정 명령을 제공받고 상기 태스크 속성 설정 명령과 상기 태스크 정보의 유효성을 확인한 후, 상기 태스크 속성 설정 명령을 상기 가상 데스크탑 프로토콜 가속부에 전달하고, 상기 가상 데스크탑 프로토콜 가속부로부터 제공된 태스크 종료 시점 정보를 상기 가상화부에 전달하는 인터페이스부를 더 포함하는 것을 특징으로 하는 가상화 서버.
The method of claim 6,
The virtual server receives the task property setting command from the virtualization unit, checks the validity of the task property setting command and the task information, and transmits the task property setting command to the virtual desktop protocol accelerator, and the virtual desktop. The virtualization server, characterized in that it further comprises an interface unit for transmitting the task termination time information provided from the protocol accelerator to the virtualization unit.
청구항 6에 있어서,
상기 가속할 태스크의 속성은 그래픽 부호화, 오디오 출력 부호화, 오디오 입력 복호화, USB 출력 부호화, USB 입력 복호화 중 적어도 하나를 포함하는 것을 특징으로 하는 가상화 서버.
The method of claim 6,
The attribute of the task to be accelerated may include at least one of graphic encoding, audio output encoding, audio input decoding, USB output encoding, and USB input decoding.
청구항 8에 있어서,
상기 가상 데스크탑 프로토콜 가속부는
상기 제공된 가상 머신의 구분자에 기초하여 처리할 태스크의 속성을 검색하고, 상기 제공된 적어도 하나의 인자를 이용하여 처리할 데이터를 인출한 후, 상기 인출한 데이터를 속성에 따라 상기 가속할 태스크를 처리하는 것을 특징으로 하는 가상화 서버.
The method according to claim 8,
The virtual desktop protocol accelerator
Retrieving an attribute of a task to be processed based on the identifier of the provided virtual machine, retrieving data to be processed using the provided at least one factor, and then processing the task to be accelerated according to the attribute Virtualization server, characterized in that.
KR1020100125859A 2010-12-09 2010-12-09 Method for accelerating virtual desktop protocol based on server virtualization and virtualization server for performing the same KR101361838B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100125859A KR101361838B1 (en) 2010-12-09 2010-12-09 Method for accelerating virtual desktop protocol based on server virtualization and virtualization server for performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100125859A KR101361838B1 (en) 2010-12-09 2010-12-09 Method for accelerating virtual desktop protocol based on server virtualization and virtualization server for performing the same

Publications (2)

Publication Number Publication Date
KR20120064575A KR20120064575A (en) 2012-06-19
KR101361838B1 true KR101361838B1 (en) 2014-02-11

Family

ID=46684653

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100125859A KR101361838B1 (en) 2010-12-09 2010-12-09 Method for accelerating virtual desktop protocol based on server virtualization and virtualization server for performing the same

Country Status (1)

Country Link
KR (1) KR101361838B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108206842A (en) * 2016-12-16 2018-06-26 广州杰赛科技股份有限公司 Cloud Desktop Remote cut-in method and system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101432751B1 (en) * 2012-12-18 2014-08-22 서강대학교산학협력단 Load balancing method and system for hadoop MapReduce in the virtual environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009253A (en) * 2007-06-27 2009-01-15 Renesas Technology Corp Program execution method, program, and program execution system
US20090083743A1 (en) * 2007-09-26 2009-03-26 Hooper Donald F System method and apparatus for binding device threads to device functions
WO2012000820A1 (en) * 2010-06-30 2012-01-05 International Business Machines Corporation Accelerator for virtual machine migration

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009253A (en) * 2007-06-27 2009-01-15 Renesas Technology Corp Program execution method, program, and program execution system
US20090083743A1 (en) * 2007-09-26 2009-03-26 Hooper Donald F System method and apparatus for binding device threads to device functions
WO2012000820A1 (en) * 2010-06-30 2012-01-05 International Business Machines Corporation Accelerator for virtual machine migration

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108206842A (en) * 2016-12-16 2018-06-26 广州杰赛科技股份有限公司 Cloud Desktop Remote cut-in method and system
CN108206842B (en) * 2016-12-16 2020-09-15 广州杰赛科技股份有限公司 Cloud desktop remote access method and system

Also Published As

Publication number Publication date
KR20120064575A (en) 2012-06-19

Similar Documents

Publication Publication Date Title
US10552348B2 (en) USB device access method, apparatus and system, a terminal, and a server
US8405666B2 (en) Saving, transferring and recreating GPU context information across heterogeneous GPUs during hot migration of a virtual machine
US10120705B2 (en) Method for implementing GPU virtualization and related apparatus, and system
US9063793B2 (en) Virtual server and virtual machine management method for supporting zero client by providing host interfaces from classified resource pools through emulation or direct connection modes
US7197588B2 (en) Interrupt scheme for an Input/Output device
US10380048B2 (en) Suspend and resume in a time shared coprocessor
CN110770708A (en) Method and apparatus for hardware virtualization
CN104636076A (en) Distributed block device driving method and system for cloud storage
CN111679911B (en) Management method, device, equipment and medium of GPU card in cloud environment
US20220114145A1 (en) Resource Lock Management Method And Apparatus
CN115988218B (en) Virtualized video encoding and decoding system, electronic equipment and storage medium
US20140330978A1 (en) Accelerating USB Redirection over a Network
KR102314222B1 (en) Virtual desktop system using container and method thereof
US10791103B2 (en) Adapting remote display protocols to remote applications
WO2022143714A1 (en) Server system, and virtual machine creation method and apparatus
KR20140027741A (en) Application service providing system and method, server apparatus and client apparatus for application service
US11599377B2 (en) Open-channel storage device management with FTL on virtual machine
CN116582438B (en) Virtualized video encoding and decoding system and method, electronic equipment and storage medium
US20120166585A1 (en) Apparatus and method for accelerating virtual desktop
KR102314221B1 (en) Virtual desktop system providing an environment at specific time and method thereof
US20140237017A1 (en) Extending distributed computing systems to legacy programs
KR101361838B1 (en) Method for accelerating virtual desktop protocol based on server virtualization and virtualization server for performing the same
US10015232B2 (en) Systems and methods for transmitting images
US20140156736A1 (en) Apparatus and method for managing threads to perform divided execution of software
US11881996B2 (en) Input and output for target device communication

Legal Events

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

Payment date: 20170124

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180129

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190125

Year of fee payment: 6