KR100935586B1 - 캐시 방법 - Google Patents

캐시 방법 Download PDF

Info

Publication number
KR100935586B1
KR100935586B1 KR1020047002829A KR20047002829A KR100935586B1 KR 100935586 B1 KR100935586 B1 KR 100935586B1 KR 1020047002829 A KR1020047002829 A KR 1020047002829A KR 20047002829 A KR20047002829 A KR 20047002829A KR 100935586 B1 KR100935586 B1 KR 100935586B1
Authority
KR
South Korea
Prior art keywords
cached
update
message
display data
key
Prior art date
Application number
KR1020047002829A
Other languages
English (en)
Other versions
KR20040031006A (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 KR20040031006A publication Critical patent/KR20040031006A/ko
Application granted granted Critical
Publication of KR100935586B1 publication Critical patent/KR100935586B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/04Partial updating of the display screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

씬 서버 장치에서 씬 클라이언트 장치로 갱신-디스플레이 데이터(1)를 전송하는 방법으로서, 전송될 새로운 갱신-디스플레이 데이터(1)를 나타내는 (짧은) 키(6)를 발생하는 단계; 새로이 발생된 키를 이전에 발생된 키 또는 키들과 비교하는 단계; 및 클라이언트 장치에 전송될 메시지를 편집하는 단계를 포함하고, 메시지는 갱신-디스플레이 데이터가 이미 캐시되어 있는지, 캐시할 것인지, 아니면 캐시하지 않을 것인지를 클라이언트 장치에 식별시키는 비교단계의 결과에 따라 설정되는 헤더와, 갱신-디스플레이 데이터를 나타내는 코드 워드들을 포함한다. 바람직하게 DCT 코딩이 사용된다. 이 방법을 사용하는 씬 클라이언트 서버 시스템은 보다 빠르고 보다 효율적이다.
씬 서버 장치, 씬 클라이언트, 캐시 명령 필드, 시퀀스 아이덴티티 필드

Description

캐시 방법{Cache method}
본 발명은 캐시 방법에 관한 것으로 특히 씬 클라이언트(thin client) 서버 컴퓨터 시스템을 위한 캐시 방법에 관한 것이다.
씬 클라이언트 서버 컴퓨터 시스템은 어플리케이션 프로그램들이 클라이언트 장치가 아니라 서버 장치에 설치된 시스템이다. 씬 클라이언트 디스플레이 프로토콜(원격 프레임 버퍼 기술이라고도 알려져 있음)을 사용하여 클라이언트 장치에 어플리케이션들을 실행시키게 할 수 있다. 씬 클라이언트 디스플레이 프로토콜은 서버 장치에 로딩되는 한 부분과 클라이언트 장치에 로딩되는 또 다른 부분을 포함하는 컴퓨터 프로그램이다. 클라이언트 프로그램은 작은 코드 크기를 갖고 있고 따라서 클라이언트 장치의 비교적 소수의 자원들(메모리 및 처리능력)을 필요로 하기 때문에 이른바 씬(thin) 프로그램이다. 이 시스템에 의해, 훨씬 더 강력한 서버의 서비스에 클라이언트 장치들이 비교적 간단하고 저렴하게 액세스할 수 있게 된다.
하나의 이러한 씬 클라이언트 디스플레이 프로토콜이, 가상 네트워크 컴퓨팅(Virtual Network Computing: VNC)이며, 클라이언트 장치가 코맨드(command)들을 서버 장치에 보내어 서버 장치가 이들 명령들을 처리하여 갱신된 정보, 또는 프레임 버퍼 데이터를 소위 갱신영역에 발생시키도록 서로 간에 통신하는 씬 서버 프로그램 "VNC 서버" 및 씬 클라이언트 프로그램 "VNC 뷰어"를 포함한다. 이것은 클라이언트 장치에서 스크린 갱신하는데 필요한 기본 유닛이다. 이것은 윈도우 형태를 취할 수 있다. 갱신영역은 서버 장치에서 씬 클라이언트 장치로 보내진다. 실제로, 프로토콜의 디스플레이측은 직사각형의 화소 데이터를 클라이언트 스크린 상의 소정의 x, y 위치에 놓도록 클라이언트 장치에 명령을 내린다.
씬 클라이언트 서버 컴퓨터 시스템들에 있어서의 문제는 서버와 클라이언트 장치들 간에 전달되는 상당량의 데이터가 있어 이에 따라 시스템이, 특히 클라이언트 장치가 서버 장치로부터 데이터를 검색하는(retrieve) 것이 지체될 수 있다는 것이다.
씬 서버에서 씬 클라이언트로의 프레임 버퍼 데이터의 보다 효율적인 전송은 서로 다른 데이터 패턴들에 서로 다른 코딩 알고리즘들을 사용함으로써, 그리고 적응형 인터넷 프로토콜 및 1996년 3월 16일, Citrix Systems에 의한 "Independent Computing Architecture Technical Paper"에 기재된 바와 같은 오브젝트 어웨어 캐시(object aware cache)방법들에 의해 달성되었다. 그러나, 이들 방법들은 소프트웨어 플랫폼에 의존하기 때문에 컴퓨터들에서 실행되는 운영체제들에 따라 수정하지 않고는 보편적으로 채택될 수 없다. VNC와 같은 넌-오브젝트 어웨어 프로토콜들이 바람직하다.
인터넷 환경에서 장치들 간에 보다 효율적인 통신을 위해 캐시 방법들이 제안되었지만 인터넷의 특성과 씬 클라이언트 서버 컴퓨터 시스템들의 특성이 완전히 다르기 때문에 이들 캐시 방법들은 씬 클라이언트 서버 시스템들에 쉽게 적용될 수 없다. 예를 들면, 프록시 서버들(proxy servers)에 캐시하는 것은 월드 와이드 웹(World Wide Web)에 액세스하기 위한 인지된 응답 시간을 감소시킨다. 이들은 캐싱하기 위한 문서들의 서브셋들을 선택하지만, 캐시된 문서들의 일관성을 유지하기 위한 별도의 단계들이 취해져야 한다.
본 발명의 목적은 씬 클라이언트 서버 컴퓨터 시스템의 효율을 향상시키며 데이터 전송 속도를 높이는 것이다. 본 발명은 독립 청구항들에서 정의되고 종속 청구항들은 이로운 실시예들을 정의한다.
바람직하게는, 메시지는 "캐시함", "캐시하지 않음", "캐시되어 있음"의 코맨드들 중 하나에 대응하는 명령을 포함하는 캐시 명령 필드, 및 매치하는 키의 어드레스 또는 적합한 새로운 어드레스 등의 캐시 어드레스를 포함하는 시퀀스 아이덴티티 필드를 포함하는 헤더를 포함한다.
키는 압축된 코딩된 갱신-디스플레이 데이터의 코드 워드들의 조합된 길이를 포함한다. 압축 코딩은 공간영역에서 주파수 영역으로 데이터를 전환시키는 이산 코사인 변환(DCT), 특히 2D-DCT에 의하는 것이 바람직하다.
일 실시예는 예를 들면 JPEG 인코딩(encoding) 및 엔트로피 코딩(entropy encoding)에 의해 데이터를 양자화하는 것을 더 포함한다.
본 발명의 바람직한 실시예에 따라서, 예를 들면 인코딩된 데이터의 높이 및 폭의 크기가 체크되고 크기가 소정의 레벨 미만이면 캐싱은 행해지지 않는다. 크기는 또한 예비 비교 단계로서 사용될 수도 있다. 키들 간에 상응하는 것이 발견되면 클라이언트 장치 내 캐시된 데이터가 클라이언트 장치에 의해 표시된다. 하나 이상 상응하는 것이 발견되면 코드 워드들이 비교된다. 데이터가 클라이언트 장치로부터 상실되었다면, 재전송 메시지를 다시 서버 장치에 보낼 수도 있다.
본 발명은, 비교를 서버에서 행하고 계산을 간단하게 위해 각 갱신영역에 대해 프레임내(intra-frame) 코딩을 사용하여, 비-후보 영역들을 필더링해내는, 편리하고 고속의 비교적 비용효율적인 방법을 제공할 수 있다.
본 발명의 이해를 위해서 그리고 본 발명이 어떻게 실행되는가를 보이기 위해서, 첨부한 도면을 참조하도록 할 것이다.
도 1은 씬 클라이언트 서버 시스템의 클라이언트 및 서버에 적용되는 본 발명의 방법의 흐름도.
도 2는 도 1의 방법에서 영역 키를 발생하는 방법을 도시한 흐름도.
도 3은 도 2의 영역 키의 발생에서 데이터 블록의 압축의 개략적인 예를 보여주는 도면.
도 4는 도 1 내지 도 3의 방법에 사용하기 위한 메시지 포맷을 보여주는 도면.
도 5는 제1 경우에 대한 본 발명의 방법의 부분을 보여주는 도면.
도 6은 제2 경우에 대한 본 발명의 방법의 부분을 보여주는 도면.
도 7은 제3 경우에 대한 본 발명의 방법의 부분을 보여주는 도면.
도 8은 본 발명의 방법의 예를 보여주는 도면.
도 9는 본 발명의 방법의 또 다른 예를 보여주는 도면.
도 1의 흐름도에서, 씬 서버 프로그램이 실행되고 있다. 이것은 전형적으로 "VNC 서버"이지만 이외 유사한 프로그램들 또한 유효할 것이다. 다음 단계들이 행해진다. 서버(SE)에서:
A. 갱신-디스플레이 데이터 또는 갱신영역은 높이 H와 폭 W를 가지며 소스 데이터 1로서 나타낸다.
B. 도 2 및 도 3을 참조하여 후술하는 바와 같이, 소스 데이터 1을 인코딩하여 코드 워드들을 생성한다.
C. 인코딩된 소스 데이터를 폭 및 높이에 대해서 체크한다.
D. 폭 및 높이가 임계값 미만이면, 메시지 헤더의 캐시 필드를 "캐시하지 않음"으로 설정한다(갱신이 매우 작다면 캐시해 두는 것으로부터 얻어질 잇점이 전혀 없다).
이 상황을 후술하는 도 5에 도시하였다.
E. 시퀀스 아이덴티티(SID)은 널(NULL)로 설정되고 이어서 갱신 메시지가 클라이언트에 보내진다-이하 기술되는 단계 P 참조.
G. 폭 및 높이가 임계값 이상이면 메시지 헤더의 캐시 필드를 "캐시함"으로 설정한다.
이 상황을 후술하는 도 6에 도시하였다.
H. 코드 워드들의 길이를 조합함으로써, 다음에 도 2에 관련하여 기술하는 방법을 사용하여, 데이터/이미지 서명들을 나타내는 영역 키(RKEY)를 생성한다.
I. 이어서 서버는 임의의 갱신영역들이 전에 캐시되어 있는지, 그리고 캐시된 영역들의 폭 및 높이가 갱신영역들과 매치하는지를 체크한다.
J. 전에 어떠한 갱신영역도 캐시되어 있지 않으면, 서버는 얻을 수 있는 다음 시퀀스 아이덴티티(SID)을 얻을 것이며, 이에 따라 메시지 헤더 내 SID 필드를 설정하고 메시지 헤더의 캐시 필드를 "캐시함"으로 함으로써, 클라이언트에 보낼 메시지를 포맷할 것이다.
K. 서버는 메시지(압축된 데이터의 SID, RKEY 및 코드 워드들을 포함함)의 복제본을 유지해 두고, 이 메시지를 클라이언트에 전송한다-다음의 단계 P 참조.
L. 갱신영역이 전에 캐시되어 있다면 서버는 매치하는 캐시된 것에 대해 RKEY를 체크하였을 때 이를 인지할 것이다.
M. 어떠한 매치하는 영역 키(RKEY)도 식별되지 않으면 단계 J가 반복되고, 갱신영역을 나타내는 압축된 데이터와 함께 새로운 메시지가 클라이언트에 보내진다.
N. 매치하는 것이 단지 하나가 발견되면 캐시 필드는 "캐시되어 있음"으로 설정되고 대응하는 SID가 압축된 데이터의 코드 워드들 없이 클라이언트에 보내진 다.
이 상황을 후술하는 도 7에 도시하였다.
O. 하나 이상의 영역 키(RKEY) 매치가 발견되면 압축된 데이터의 새로운 코드 워드들을 로컬 캐시 버퍼 내 코드 워드들과 비교하고 매치하는 코드 워드들이 식별되었을 때 캐시 필드는 "캐시되어 있음"으로 설정되고 압축된 데이터의 코드 워드들 없이 대응하는 SID가 보내진다.
P. 메시지가 서버로부터 보내진다.
클라이언트 CL에서:
Q. 메시지가 클라이언트 의해 수신된다.
R. 클라이언트는 먼저 이 갱신영역을 캐시할 것인지를 결정하기 위해 메시지의 캐시 필드를 체크한다.
S. 캐시 필드가 "캐시함"으로 설정되어 있다면 클라이언트는 갱신영역의 코드 워드들의 복제본을 유지해두고 코드 워드들을 디코드하고 단계 V로 간다.
T. 캐시 필드가 "캐시하지 않음"으로 설정되어 있다면 클라이언트는 메시지 내 코드 워드들을 디코드하지만 이를 저장하진 않고 단계 V로 간다.
U. 캐시 필드가 "캐시되어 있음"으로 설정되어 있다면 클라이언트는 클라이언트 캐시로부터 캐시된 코드 워드들을 검색하고 이 코드 워드들을 디코드하고 단계 V로 간다.
V. 디코드된 갱신영역을 디스플레이한다.
코딩을 사용하여, 갱신영역 소스 데이터(1)로부터 영역 키(6)의 생성을 도 2의 상측 부분에 도시하였고 도 2의 하측 부분엔 이에 이은 인코딩된 데이터의 디코딩이 도시되어 있다. 소스 데이터(1), 즉 갱신 영역 서명을 나타내는 데이터 또는 이미지는 순방향 이산 코사인 변환(FDCT)(2)에 의해 압축되고 '3'에서 양자화된다. 이어서 '4'에서 엔트로피 인코딩되고 코드 워드들의 길이를 '5'에서 조합하여 키(6)를 생성한다. 이어서 이것은 서버의 캐시 메모리(7)에 복제되고 시퀀스 아이덴티티 표시자(8)를 1만큼 증분시킨다. 이것을 도 1의 상측 부분에 도시하였다.
이어서 데이터는 '9'에서 엔트로피 디코딩에 의해 디코딩되고, '10'에서 역양자화되고, '11'에서 압축해제되어, 디코딩된 데이터(12)를 형성한다. 시퀀스 발생기(13)는 캐시(14)의 다른 위치를 가리키기 위해 매번 증분된다.
도 3은 8x8 격자에 64개의 두 자리 수 격자를 포함하는 블록(31)의 그룹으로 된 원 소스 이미지 데이터의 코딩(original source image data)을 도시한 것이다. 이 블록을 64개의 직교(orthogonal) 신호들(DCT 계수들이라 함)로 압축해제하기 위해 순방향 DCT 프로세스를 적용한다. 한 계수는 양 차원 모두에서 제로 주파수를 가지며 이를 DC 계수라 한다. 이외 다른 63개는 AC 계수들이다. 시각적으로 무의미한 정보는 폐기하고 양자화 및 엔트로피 처리 후에 결과는 총 35 비트의 2진 워드들의 스트링을 포함하는 압축된 코드워드(32)이다. 소스 이미지에 대해 8비트 압축을 사용하는 이 예에서 압축율은 약 15:1이다.
도 4는 서버에서 클라이언트로의 전송을 위한 메시지의 포맷을 나타낸 것이다. 이것은 캐시 헤드(21)("캐시함", "캐시하지 않음" 또는 "캐시되어 있음")와 시퀀스 아이덴티티 필드(SID)(22)로 형성된 메시지 헤더(20)를 갖는다. 이것은 또한 압축된 메시지의 코드 워드들을 포함하는 메시지 필드(23)를 갖는다.
도 5는 서버가 "캐시하지 않음"이라 명령을 내린 경우에 도 4의 메시지의 구성을 도시한 것이다. 이것은 예를 들면 갱신영역의 크기가 임계값 미만이어서 캐시할 가치가 없을 때 일어날 수 있다. 캐시 필드(21)는 "캐시하지 않음"으로 설정되고 SID 필드(22)는 헤더에서 "널"로 설정되며, 압축된 코드 워드들은 메시지 필드(23)에 첨부된다.
도 6은 서버가 "캐시함"이라고 명령을 내린 경우에 도 4의 메시지의 구성을 도시한 것이다.
이것은 갱신영역의 크기가 임계값 이상일 때 일어난다. 캐시(21) 필드는 "캐시함"으로 설정되고 SID 필드(22)는 헤더에서 "N"으로 설정되며, 압축된 코드 워드들은 메시지 필드(23)에 첨부된다.
도 7은 서버가 "캐시되어 있음"이라 명령을 내린 경우에 도 4의 메시지의 구성을 도시한 것이다.
이 경우 메시지 헤더(20)는 캐시 필드(21)에 명령 "캐시되어 있음"을 SID 필드(22)에 "N"을 포함하고, 압축된 코드 워드들은 이 상황에서 이들이 클라이언트 장치에의 로컬 캐시로부터 검색될 수 있기 때문에 첨부되지 않으므로 서버와 클라이언트 간 전송 대역폭을 절약하여 시스템의 속도 및 효율을 향상시킨다.
도 8은 도 5 내지 도 7에 나타낸 경우들 각각에 대해서 타임 라인(time line)에 따라 시스템이 어떻게 반응하는가를 도시한 것이다.
제1 갱신영역 데이터(1a)가 서버 장치에서 발생되고 ①에서 크기는 임계값 미만이고 서버는 "캐시하지 않음"이라 명령한다. 도 5에 도시한 바와 같은 메시지가 발생되고 컴퓨터 네트워크를 통해 클라이언트 장치에 전송되고 이에 따라 갱신영역이 클라이언트 디스플레이에 디스플레이된다. 이것을 경우 I라고 표시하였다.
잠시 후에 제2 갱신영역 데이터(1b)가 발생된다. 갱신영역(1b)의 크기는 임계값 이상이고 영역 키(RKEY)가 발생되고 서버의 콘텐츠 캐시 버퍼(도 2의 7 참조)와 비교한다. 이것을 ②로서 나타내었다. ③에서, 전에 캐시되어 있는 것이 없으므로 메시지 "캐시함"이 데이터와 함께 클라이언트로 보내진다. 이를 경우 II로 표시하였다. ④에서 대응하는 키가 캐시(7)에서 발견된다. SID가 검색되고, 적합한 SID와 함께 그러나 데이터 없이 "캐시되어 있음"이라는 메시지가 클라이언트 장치에 전송되어, 전송 공간 및 시간이 절약된다. 이를 경우 III으로 표시하였다.
SID 숫자들은, 가장 최근의 갱신영역 데이터가 저장되는 것을 보장하면서 메모리 공간을 절약하기 위해 통상 1 내지 999로 순환할 것이다.
단지 두 개의 캐시 버퍼들만이 사용이 가능하다면, 도 9의 상황이 적용되고 가장 최근의 2개의 갱신영역들을 캐시하기 위해서 순환 리스트가 유지된다. 예를 들면 메시지 A는 경우 II의 메시지인 "캐시함"(전에 캐시된 것이 전혀 없으므로)이다. 따라서, 캐시 버퍼(14)는 제1 캐시 위치(25)에 A를 저장한다. 이어서 메시지 B가 발생되고 이것은 경우 I의 메시지인 "캐시하지 않음"이므로, B에 저장이 행해지지 않고 제2 캐시 위치(26)는 비어있게 된다. 메시지 C는 또 다른 경우 II의 메시지인, "캐시함"이고, 따라서 이제는 C가 캐시 위치(26)에 저장된다. 메시지 D는 마찬가지로 경우 II이고 그러므로 D는 위치(25) 내 A를 대치한다.
이어서 메시지 C가 다시 수신되고 이것은 서버가 캐시된 메시지 C와 상응하는 것을 검출하기 때문이 경우 III 메시지인 "캐시되어 있음"이 된다. 따라서 클라이언트 장치로의 메시지는 로컬 캐시(14)로부터 대응하는 데이터를 검색하기 위해 위치(26)에 대한 SID를 포함한다. 마찬가지로 메시지 D가 재전송되었을 때, 상응하는 것이 발견되고 경우 III 메시지로 클라이언트는 위치(25)에서 로컬 캐시 버퍼(14)로부터 데이터를 검색하라는 명령을 받는다.
전술한 실시예들은 본 발명을 한정하는 것이 아니라 예시하는 것으로 이 기술에 숙련된 자들은 첨부된 청구항들의 범위 내에서 많은 대안이 되는 실시예들을 설계할 수 있을 것임에 유념해야 할 것이다. 청구항들에서, 괄호 내 부기한 어떠한 참조부호든 청구항을 한정하는 것으로 해석되지 않을 것이다. "포함하다"라는 말은 청구항에 열거된 구성요소들 또는 단계들 이외의 것들의 존재를 배제하는 것은 아니다. 단수표시된 구성요소는 복수의 이러한 구성요소들의 존재를 배제하는 것은 아니다. 본 발명은 몇가지 구별되는 구성요소들을 포함하는 하드웨어, 및 적합하게 프로그램된 컴퓨터에 의해 구현될 수 있다. 몇가지 수단을 열거한 장치 청구항에서 이들 수단 몇몇은 한 하드웨어 및 동일 하드웨어 아이템으로 실현될 수 있다. 어떤 대책들이 서로 상이한 종속 청구항들에 인용되었다는 것이, 이들 대책들의 조합이 이롭게 사용될 수 없다는 것을 나타내는 것은 아니다.

Claims (16)

  1. 씬 서버 장치(thin server device)에서 씬 클라이언트 장치로 갱신-디스플레이 데이터를 전송하는 방법에 있어서,
    전송될 새로운 갱신-디스플레이 데이터(1)를 나타내는 키(6)를 발생하는 단계;
    새로이 발생된 키를 이전에 발생된 키 또는 키들과 비교하는 단계;
    상기 클라이언트 장치에 전송될 메시지를 편집(compile)하는 단계로서, 상기 메시지는 상기 갱신-디스플레이 데이터(1)가 이미 캐시되어 있는지, 캐시할 것인지, 아니면 캐시하지 않을 것인지 여부를 상기 클라이언트 장치에 식별시키도록 상기 비교단계의 결과에 따라 설정되는, 상기 편집하는 단계; 및
    상기 메시지를 상기 클라이언트 장치로 전송하는 단계를 포함하는, 갱신-디스플레이 데이터 전송방법.
  2. 제1항에 있어서, 상기 메시지는 캐시 명령 필드(21) 및 시퀀스 아이덴티티 필드(sequence identity field: 22)를 포함하는 헤더(20)를 포함하는, 갱신-디스플레이 데이터 전송방법.
  3. 제2항에 있어서, 상기 캐시 명령 필드는 "캐시함", "캐시하지 않음" 및 "캐시되어 있음" 코맨드들 중 하나에 대응하는 명령을 포함하고, 상기 시퀀스 아이덴티티 필드(22)는 캐시 어드레스를 포함하는, 갱신-디스플레이 데이터 전송방법.
  4. 제3항에 있어서, 상기 캐시 어드레스는 상기 코맨드가 "캐시되어 있음"일 때 상기 새로이 발생된 키와 매칭하는 매칭 키의 어드레스인, 갱신-디스플레이 데이터 전송방법.
  5. 제3항에 있어서, 상기 캐시 어드레스는 상기 코맨드가 "캐시함"일 때 새로운 어드레스인, 갱신-디스플레이 데이터 전송방법.
  6. 제1항에 있어서, 상기 키는 상기 갱신-디스플레이 데이터(1)의 변환 코딩에 의해 발생되는, 갱신-디스플레이 데이터 전송방법.
  7. 제6항에 있어서, 상기 키는 인코딩된 갱신-디스플레이 데이터(1)의 모든 코드 워드들의 조합된 길이를 포함하는, 갱신-디스플레이 데이터 전송방법.
  8. 제2항에 있어서, 상기 갱신-디스플레이 데이터(1)의 크기를 체크하고, 상기 갱신-디스플레이 데이터(1)의 크기가 소정의 값 미만일 경우에 상기 캐시 명령 필드를 "캐시하지 않음"으로 설정하는 시작 단계를 더 포함하는, 갱신-디스플레이 데이터 전송방법.
  9. 제1항에 있어서, 상기 비교단계는 먼저, 상기 새로운 갱신-디스플레이 데이터(1)의 크기를 캐시되어 있는 갱신-디스플레이 데이터의 크기와 비교하는 단계를 더 포함하는, 갱신-디스플레이 데이터 전송방법.
  10. 제8항에 있어서, 상기 갱신-디스플레이 데이터(1)의 크기는 상기 갱신-디스플레이 데이터(1)의 폭 및 높이를 포함하는, 갱신-디스플레이 데이터 전송방법.
  11. 제1항에 있어서, 하나 이상의 매칭하는 키가 상기 이전에 발생된 키 또는 키들에서 식별되는 경우 새로운 갱신-디스플레이 데이터(1)의 코드 워드들을 캐시되어 있는 갱신-디스플레이 데이터와 비교하는 단계를 더 포함하는, 갱신-디스플레이 데이터 전송방법.
  12. 제2항에 있어서, 상기 시퀀스 아이덴티티 필드(22)가 클라이언트 메모리로부터 상실된 데이터를 플래그(flag)하면, 상기 클라이언트 장치는 전송 코드 워드 메시지를 상기 서버에 보내는, 갱신-디스플레이 데이터 전송방법.
  13. 씬 클라이언트 서버 컴퓨터 시스템에 있어서,
    캐시 메모리;
    캐시 메모리 어드레스들을 식별하는 시퀀스 아이덴티티 발생기;
    소스 데이터 인코더;
    인코딩된 소스 데이터를 나타내는 키를 발생시키기 위한 키 발생기;
    하나 이상의 캐시되어 있는 키들을 발생된 키와 비교하기 위한 비교기;
    상기 비교기에 연결되어, 상기 비교기의 출력에 따라 서로 다른 메시지들을 발생시키기 위한 메시지 발생기;
    상기 메시지를 클라이언트 장치에 보내기 위한 전송기를 포함하는, 씬 클라이언트 서버 컴퓨터 시스템.
  14. 제1항의 방법을 프로세서가 실행할 수 있게 하는 컴퓨터 소프트웨어가 기록된 컴퓨터 판독가능 매체.
  15. 삭제
  16. 서버 장치를 포함하는 컴퓨터 시스템에 있어서,
    상기 서버 장치는,
    캐시 메모리;
    캐시 메모리 어드레스들을 식별하는 시퀀스 아이덴티티 발생기;
    소스 데이터 인코더;
    인코딩된 소스 데이터를 나타내는 키를 발생시키기 위한 키 발생기;
    하나 이상의 캐시되어 있는 키들을 발생된 키와 비교하기 위한 비교기;
    상기 비교기에 연결되어, 상기 비교기의 출력에 따라 서로 다른 메시지들을 발생시키기 위한 메시지 발생기;
    상기 메시지를 클라이언트 장치에 보내기 위한 전송기를 구비하고,
    상기 클라이언트 장치는,
    상기 서버로부터 상기 메시지를 수신하기 위한 수신기;
    캐시 메모리;
    메시지 판독기; 및
    디스플레이를 구비하는, 컴퓨터 시스템.
KR1020047002829A 2001-08-27 2002-08-16 캐시 방법 KR100935586B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP01203234 2001-08-27
EP01203234.8 2001-08-27
PCT/IB2002/003360 WO2003019927A1 (en) 2001-08-27 2002-08-16 Cache method

Publications (2)

Publication Number Publication Date
KR20040031006A KR20040031006A (ko) 2004-04-09
KR100935586B1 true KR100935586B1 (ko) 2010-01-07

Family

ID=8180842

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047002829A KR100935586B1 (ko) 2001-08-27 2002-08-16 캐시 방법

Country Status (6)

Country Link
US (1) US20030055889A1 (ko)
EP (1) EP1423972A1 (ko)
JP (1) JP2005501355A (ko)
KR (1) KR100935586B1 (ko)
CN (1) CN1290027C (ko)
WO (1) WO2003019927A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1665798A1 (en) * 2003-09-12 2006-06-07 Citrix Systems, Inc. Method and apparatus for generating graphical and media displays at a thin client
GB0707276D0 (en) * 2007-04-16 2007-05-23 Adventiq Ltd Video data transmission
US20080307412A1 (en) * 2007-06-06 2008-12-11 Sony Computer Entertainment Inc. Cached content consistency management
US8416247B2 (en) 2007-10-09 2013-04-09 Sony Computer Entertaiment America Inc. Increasing the number of advertising impressions in an interactive environment
JP5259683B2 (ja) * 2010-11-19 2013-08-07 株式会社東芝 サーバ装置及びプログラム
US10198462B2 (en) * 2012-04-05 2019-02-05 Microsoft Technology Licensing, Llc Cache management
EP2922300A4 (en) * 2012-11-15 2016-08-17 Nec Corp SERVER DEVICE, END DEVICE, THIN CLIENT SYSTEM, ON-SCREEN TRANSMISSION PROCESS AND PROGRAM
JP6169990B2 (ja) * 2014-02-25 2017-07-26 Kddi株式会社 遠隔自動操作システムにおけるコントローラ代理プログラム及び方法
JP2017151609A (ja) * 2016-02-23 2017-08-31 株式会社東芝 ストレージ、ストレージシステム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11219312A (ja) * 1998-02-04 1999-08-10 Hitachi Ltd データキャッシュ方法およびデータアクセス方法
US6061714A (en) * 1997-05-07 2000-05-09 International Business Machines Corporation Persistent cache synchronization and start up system
WO2000060874A1 (en) * 1999-04-06 2000-10-12 Koninklijke Philips Electronics N.V. Motion estimation
WO2001001692A1 (en) * 1999-06-28 2001-01-04 Valtion Teknillinen Tutkimuskeskus Procedure and system for performing motion estimation

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2796329B2 (ja) * 1989-02-08 1998-09-10 株式会社日立製作所 表示メモリとそれを備えた画像処理装置
JPH04273351A (ja) * 1991-02-27 1992-09-29 Nec Corp 情報処理装置
US5402492A (en) * 1993-06-18 1995-03-28 Ast Research, Inc. Security system for a stand-alone computer
JPH07311710A (ja) * 1994-05-17 1995-11-28 Mitsubishi Electric Corp コンピュータのバッファキャッシュ管理方法
US6473609B1 (en) * 1995-12-11 2002-10-29 Openwave Systems Inc. Method and architecture for interactive two-way communication devices to interact with a network
US6205253B1 (en) * 1996-08-19 2001-03-20 Harris Corporation Method and apparatus for transmitting and utilizing analog encoded information
US5787470A (en) * 1996-10-18 1998-07-28 At&T Corp Inter-cache protocol for improved WEB performance
US6138141A (en) * 1996-10-18 2000-10-24 At&T Corp Server to client cache protocol for improved web performance
US5913033A (en) * 1996-12-20 1999-06-15 International Business Machines Corporation Apparatus and method for retrieving information using standard objects
US5898849A (en) * 1997-04-04 1999-04-27 Advanced Micro Devices, Inc. Microprocessor employing local caches for functional units to store memory operands used by the functional units
US5933849A (en) * 1997-04-10 1999-08-03 At&T Corp Scalable distributed caching system and method
US6246396B1 (en) * 1997-04-30 2001-06-12 Canon Kabushiki Kaisha Cached color conversion method and apparatus
US5907678A (en) * 1997-05-07 1999-05-25 International Business Machines Corporation Client/server system in which protocol caches for multiple sessions are selectively copied into a common checkpoint cache upon receiving a checkpoint request
US6256712B1 (en) * 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
US6105113A (en) * 1997-08-21 2000-08-15 Silicon Graphics, Inc. System and method for maintaining translation look-aside buffer (TLB) consistency
US6000015A (en) * 1997-09-16 1999-12-07 Unisys Corporation Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in a higher level cache
US6151020A (en) * 1997-10-24 2000-11-21 Compaq Computer Corporation Real time bit map capture and sharing for collaborative tools
US6393526B1 (en) * 1997-10-28 2002-05-21 Cache Plan, Inc. Shared cache parsing and pre-fetch
US6112279A (en) * 1998-03-31 2000-08-29 Lucent Technologies, Inc. Virtual web caching system
US6272593B1 (en) * 1998-04-10 2001-08-07 Microsoft Corporation Dynamic network cache directories
US6341311B1 (en) * 1998-05-29 2002-01-22 Microsoft Corporation Directing data object access requests in a distributed cache
US6377991B1 (en) * 1998-05-29 2002-04-23 Microsoft Corporation Method, computer program product, and system for migrating URLs within a dynamically changing distributed cache of URLs
US6219725B1 (en) * 1998-08-28 2001-04-17 Hewlett-Packard Company Method and apparatus for performing direct memory access transfers involving non-sequentially-addressable memory locations
US6438652B1 (en) * 1998-10-09 2002-08-20 International Business Machines Corporation Load balancing cooperating cache servers by shifting forwarded request
US7446774B1 (en) * 1998-11-09 2008-11-04 Broadcom Corporation Video and graphics system with an integrated system bridge controller
US6233606B1 (en) * 1998-12-01 2001-05-15 Microsoft Corporation Automatic cache synchronization
US6453342B1 (en) * 1998-12-03 2002-09-17 International Business Machines Corporation Method and apparatus for selective caching and cleaning of history pages for web browsers
US6959300B1 (en) * 1998-12-10 2005-10-25 At&T Corp. Data compression method and apparatus
US6408360B1 (en) * 1999-01-25 2002-06-18 International Business Machines Corporation Cache override control in an apparatus for caching dynamic content
US6351767B1 (en) * 1999-01-25 2002-02-26 International Business Machines Corporation Method and system for automatically caching dynamic content based on a cacheability determination
US6463509B1 (en) * 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
JP3966636B2 (ja) * 1999-02-18 2007-08-29 富士通株式会社 監視制御システム
US6427172B1 (en) * 1999-07-20 2002-07-30 Cyberstar, L.P. Method and apparatus for internet cache content delivery via a data distribution system
US6470437B1 (en) * 1999-12-17 2002-10-22 Hewlett-Packard Company Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design
WO2001093525A2 (en) * 2000-05-26 2001-12-06 Citrix Systems, Inc. Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism
US6864895B1 (en) * 2000-05-30 2005-03-08 Hewlett-Packard Development Company, L.P. Pseudo-linear frame buffer mapping system and method
US6553388B1 (en) * 2000-07-20 2003-04-22 International Business Machines Corporation Database deltas using Cyclic Redundancy Checks
US7035912B2 (en) * 2000-08-28 2006-04-25 Abaco.P.R., Inc. Method and apparatus allowing a limited client device to use the full resources of a networked server
US6978021B1 (en) * 2000-09-18 2005-12-20 Navteq North America, Llc Encryption method for distribution of data
US6768942B1 (en) * 2000-09-18 2004-07-27 Navigation Technologies Corp. Navigation system with decryption functions and secure geographic database
US6477622B1 (en) * 2000-09-26 2002-11-05 Sun Microsystems, Inc. Simplified writeback handling
US6976151B1 (en) * 2000-09-28 2005-12-13 Intel Corporation Decoding an instruction portion and forwarding part of the portion to a first destination, re-encoding a different part of the portion and forwarding to a second destination
US6470426B2 (en) * 2000-12-15 2002-10-22 International Business Machines Corporation Method and apparatus for loading a cache with data with a subsequent purge of stale cache information
AU2002231289A1 (en) * 2000-12-19 2002-07-01 Coolernet, Inc. System and method for multimedia authoring and playback
US6651143B2 (en) * 2000-12-21 2003-11-18 International Business Machines Corporation Cache management using a buffer for invalidation requests
US20020091819A1 (en) * 2001-01-05 2002-07-11 Daniel Melchione System and method for configuring computer applications and devices using inheritance
US20020095475A1 (en) * 2001-01-17 2002-07-18 Prasad Krothapalli Frame handling for a thin client
US20020129096A1 (en) * 2001-02-14 2002-09-12 Mansour Peter M. Platform-independent distributed user interface client architecture
US7155681B2 (en) * 2001-02-14 2006-12-26 Sproqit Technologies, Inc. Platform-independent distributed user interface server architecture
JP2002251313A (ja) * 2001-02-23 2002-09-06 Fujitsu Ltd キャッシュサーバ及び分散キャッシュサーバシステム
US6993594B2 (en) * 2001-04-19 2006-01-31 Steven Schneider Method, product, and apparatus for requesting a resource from an identifier having a character image
US6927776B2 (en) * 2001-05-17 2005-08-09 Matsushita Electric Industrial Co., Ltd. Data transfer device and method
US6888551B2 (en) * 2001-12-07 2005-05-03 Intel Corporation Sparse refresh of display
US6995771B2 (en) * 2001-12-07 2006-02-07 Intel Corporation Sparse refresh of display
US7447997B2 (en) * 2002-05-30 2008-11-04 Microsoft Corporation Reducing information transfer in screen capture series
US7302648B1 (en) * 2002-07-10 2007-11-27 Apple Inc. Method and apparatus for resizing buffered windows

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061714A (en) * 1997-05-07 2000-05-09 International Business Machines Corporation Persistent cache synchronization and start up system
JPH11219312A (ja) * 1998-02-04 1999-08-10 Hitachi Ltd データキャッシュ方法およびデータアクセス方法
WO2000060874A1 (en) * 1999-04-06 2000-10-12 Koninklijke Philips Electronics N.V. Motion estimation
WO2001001692A1 (en) * 1999-06-28 2001-01-04 Valtion Teknillinen Tutkimuskeskus Procedure and system for performing motion estimation

Also Published As

Publication number Publication date
CN1547851A (zh) 2004-11-17
KR20040031006A (ko) 2004-04-09
WO2003019927A1 (en) 2003-03-06
EP1423972A1 (en) 2004-06-02
JP2005501355A (ja) 2005-01-13
US20030055889A1 (en) 2003-03-20
CN1290027C (zh) 2006-12-13

Similar Documents

Publication Publication Date Title
US8254704B2 (en) Remote computing platforms providing high-fidelity display and interactivity for clients
KR100540495B1 (ko) 연속적이고불명확한데이타스트림의압축방법및장치
US7986844B2 (en) Optimized video compression using hashing function
US8929402B1 (en) Systems and methods for compressing packet data by predicting subsequent data
US7672005B1 (en) Methods and apparatus for scan block caching
US7483580B2 (en) System and program product for error recovery while decoding cached compressed data
JP5123186B2 (ja) 任意のフォーマットにおけるラージオブジェクトの通信のためのリモートプロトコルサポート
US9866656B2 (en) System and method for single KVM client accommodating multiple different video compression technologies
KR20040104515A (ko) 클라이언트에서 그래픽 및 미디어 디스플레이를 생성하기위한 방법 및 장치
KR100935586B1 (ko) 캐시 방법
US8326061B2 (en) Fast visual degrading of images
CN112035081A (zh) 投屏方法、装置、计算机设备及存储介质
US8473428B2 (en) Generation and use of specific probability tables for arithmetic coding in data compression systems
CN110868599B (zh) 一种远程桌面的视频压缩方法
CN116668741A (zh) 云桌面的显示方法、图像显示方法、设备和存储介质
KR100586693B1 (ko) 이미지 데이터의 크기를 축소하기 위한 이미지 변환 처리 장치및 이미지 데이터 크기 축소 방법
CN116489476A (zh) 一种图像传输方法、装置、设备及存储介质
CN117596144A (zh) 获取后台数据的方法及装置
CN116980619A (zh) 视频处理方法、装置、设备及存储介质
CN117435146A (zh) 码流生成方法、系统及装置、电子设备和存储介质
CN116366070A (zh) 小波系数编码方法、装置、系统、设备及介质
KR20030057098A (ko) 고용량 데이터 전송을 위한 wml 인코딩 방법
CN111064707A (zh) 一种基于虚拟化技术的网络资源传输系统及其方法
JPH0583568A (ja) 画像の符号化装置

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
LAPS Lapse due to unpaid annual fee