KR100558674B1 - 다중 스레드 데이터 프로세서 - Google Patents

다중 스레드 데이터 프로세서 Download PDF

Info

Publication number
KR100558674B1
KR100558674B1 KR1020007003790A KR20007003790A KR100558674B1 KR 100558674 B1 KR100558674 B1 KR 100558674B1 KR 1020007003790 A KR1020007003790 A KR 1020007003790A KR 20007003790 A KR20007003790 A KR 20007003790A KR 100558674 B1 KR100558674 B1 KR 100558674B1
Authority
KR
South Korea
Prior art keywords
memory
virtual machine
data processing
event
thread
Prior art date
Application number
KR1020007003790A
Other languages
English (en)
Other versions
KR20010031004A (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
Priority claimed from EP97402430A external-priority patent/EP0908821A1/en
Priority claimed from EP97402361A external-priority patent/EP0909091A1/en
Priority claimed from EP97402362A external-priority patent/EP0909094A1/en
Application filed by 까날 + (쏘시에떼 아노님) filed Critical 까날 + (쏘시에떼 아노님)
Publication of KR20010031004A publication Critical patent/KR20010031004A/ko
Application granted granted Critical
Publication of KR100558674B1 publication Critical patent/KR100558674B1/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/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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4435Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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
    • 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/542Event management; Broadcasting; Multicasting; Notifications
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4437Implementing a Virtual Machine [VM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Devices For Executing Special Programs (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Stored Programmes (AREA)
  • Television Systems (AREA)
  • Image Processing (AREA)
  • Circuits Of Receivers In General (AREA)

Abstract

제 1 양태에서, 본 발명은 데이터 전송 및 수신을 위한 하나 이상의 하드웨어를 포함하는, 디지털 시청각 데이터를 처리하기 위한 장치, 특히 디지털 텔레비전 시스템용 수신기/디코더를 포함하며, 상기 하드웨어 장치는 적어도 하나의 연관 하드웨어 운영 시스템(4100)을 갖고, 상기 디코더는 특히 하드웨어 운영 시스템에 의해 발신되는 이벤트 메시지를 수신하고, 해당 이벤트 객체(4564)를 하나 이상의 스레드(4561)에 할당하는 다중 스레드 가상 머신(4250)를 더 포함하고, 스레드는 실행 추이 동안 또 다른 스레드의 실행을 허가하는 것이 보류될 수 있다. 제 2 양태에서, 본 발명은 하나 이상의 하드웨어 장치를 통하여 다운로드되는 해석 언어로 작성된 코드를 수신하는 제 1 가상 머신을 포함하는 데이터 처리 시스템을 포함하는 디지털 시청각 데이터를 처리하기 위한 장치에 관한 것으로, 상기 가상 머신은 수신된 코드의 구조에 의존하여 적어도 2개의 해석 언어로 작성된 코드를 구별하고, 특히 공통 또는 특정 함수 라이브러리를 참조하여 해석 및 실행을 위한 해당 해석기 수단으로 이러한 코드를 전송한다. 제 3 양태에 따라서, 본 발명은 메모리와, 메모리에 객체를 할당 및 저장하기 위한 메모리 관리기를 포함하는 데이터 처리 시스템을 포함하는 디지털 시청각 데이터를 처리하기 위한 장치를 포함하며, 객체의 제 1 세트는 핸들 세트를 참조하여 메모리 관리기에 의해 할당되고, 각 핸들은 해당 객체의 메모리 어드레스에 대한 참조를 포함하고, 객체의 제 2 세트는 핸들을 참고하지 않고 메모리에 직접 할당 및 저장된다.
수신기/디코더, 디지털 시청각 데이터, 객체 지향 언어

Description

다중 스레드 데이터 프로세서{Multithread Data Processor}
본 발명은 디지털 시청각 데이터를 처리하기 위한 장치에 관한 것으로, 특히 다중 연결 데이터 프로세서를 포함하는 디지털 텔레비전 시스템을 위한 디코더에 관한 것이다.
디지털 텔레비전 데이터 및 다운로드된 애플리케이션을 프로세싱 하도록 가상 머신과 런타임 엔진을 사용하는 디지털 텔레비전 시스템에서 디코더를 제어하기 위한 소프트웨어 기반 시스템이 PCT 출원 PCT/EP97/02116에 기재되어 있다. 이 시스템은, 특히 가상 머신 구조를 사용함으로써 제조된 디코더의 하드웨어 요소에 대한 시스템의 애플리케이션 층의 독립성에 관해, 종래에 공지된 리시버/디코더용 시스템과 비교하여 다수의 이점을 갖는다.
이 애플리케이션에 기술된 시스템은 시스템에서 발생하는 이벤트를 제어 및 처리하는 단일 큐-기반(queue-based) 구조의 원리를 사용한다. 높은 우선순위 이벤트에 대한 상대적으로 낮은 응답과, 시스템으로의 다수의 동시 입력을 효과적으로 조절할 수 없음을 포함하는 다수의 단점은 큐 기반 구조와 연관된다. 기술한 바와 같이, 시스템은 다수의 프로세스 시퀀스 유닛을 포함한다. 시스템이 이러한 시퀀서의 동작을 우선시킬 수 있는 반면, 특정 프로세스가 개시되면, 또 다른 것으로 변경하는 것이 가능하지 않다.
상기 구조의 이들 약점은 리시버/디코더가 쌍방향 애플리케이션을 포함하는 경우에 특히 민감하게 된다. 예를 들면, 데이터를 다운로드하는데 요구된 빈번하게 긴 시간과 결합된 우선순위 명령에 응답하여 작업을 변경할 수 없는 시스템은 사용자로부터 명령이 또 다른 모드로 변화할지라도 하나의 동작으로 고착되는 시스템을 초래할 수 있다.
또한, 이러한 공지된 시스템의 장치 드라이버 구조를 간략화할 필요성이 있다. 공지된 디코더의 런타임 엔진과 하드웨어 레벨 장치간의 통신은 다수의 장치 드라이버, 이벤트 메시지의 우선화를 관리하는 장치 관리기에 의해 조절되는 전체적 구성, 및 처리 시퀀서 유닛의 큐 구조로의 입력에 의해 조절된다. 본 출원서에서 기술된 것으로서, 런타임 엔진이 시스템 권한자에 의해 제공될 때, 장치 드라이버와 관리기는 시스템 권한자의 명기에 이어 디코더 제조업자에 의해 일반적으로 제공된다.
이 명세서에서, 장치라는 용어는 스마트 카드 또는 방송 흐름(broadcast flux)을 통하여 수신되는 바와 같이, 디코더에 의해 수신 및 전송된 데이터를 처리하는데 사용된 인터페이스 장치에 관한 것에 일반적으로 사용된다.
디코더 제조업자에 의해 명세서의 해석 측면에서 차이점은 예를 들면, 관리기가 우선순위 이벤트의 정확하게 분류하지 않는 문제점을 초래한다. 이러한 경우에 큐 시스템은 이벤트 필터로 공급된 이벤트로서 혼란될 것이고, 처리 시퀀서가 그들의 우선순위 기간으로 잘못 확인되며, 큐 시스템에 의해 부정확하게 조절될 것이다.
이 문제를 극복하는 것이 본 발명의 한 양태의 목적이다.
본 발명의 제 1 양태에 따라서, 디지털 시청각 데이터를 처리하는 장치가 제공되고, 상기 장치는 데이터를 전송 및 수신하기 위한 하나 이상의 하드웨어 장치와 연관된 적어도 하나 이상의 연관된 하드웨어 운영 시스템을 갖고, 상기 장치는 특히 하드웨어 운영 시스템에 의해 발신되는 이벤트 메시지를 수신하고, 해당 이벤트 객체를 하나 이상의 스레드에 할당하는 데이터 처리 시스템을 더 포함하며, 이벤트 객체를 포함하는 스레드는 실행 추이 동안 또 다른 스레드를 허가하는 것이 보류될 수 있다.
다중 스레드 구조의 사용을 통하여, 본 발명은 시스템이 긴박하지 않은 프로세스를 일시적으로 보류하는 동안 우선순위가 높은 이벤트를 빠르게 처리하도록 허용하여, 장치의 외부 인터페이스를 통해 수신된 이벤트의 도달에 효과적으로 응답할 수 있다.
일실시예에서, 가상 머신은 우선적인 다중 스레드 구조를 갖고, 스레드는 실행 추이 동안 보다 높은 우선순위의 스레드의 생성시에 보류된다. 본 실시예는 우선 이벤트에 대한 응답에 바람직하지만, 시간 구획과 같이, 실행될 또 다른 스레드가 존재하면, 가상 머신이 관측을 위해 소정의 시간 간격의 실행을 중단하는 다른 실시예가 직시될 수 있다.
바람직하게는, 가상 머신은 우선순위 편성(priority organized) 스레드에 있는 하나 이상의 스레드에 이벤트 객체를 저장함으로써 하드웨어 운영 시스템에 의해 발신된 이벤트 메시지에 응답하는 이벤트 관리기를 포함한다.
이와 같이, 이벤트의 우선화는 공지된 시스템의 문제점을 회피하여, 가상 머신에 의해 직접 조절될 수 있고, 여기서 이벤트는 낮은 레벨 장치 드라이버 및 관리기에 의해 프로세서 큐에 삽입되도록 우선 정돈된다. 상기에서 논의된 바와 같이, 드라이버의 실시는 하나의 제업자로부터 또 다른 제조업자까지 다양하게 할 수 있다. 반대로, 본 바람직한 실시예에서, 이벤트 메시지는 가상 머신, 하나의 플랫폼에서 다른 플랫폼으로 변화가능하지 않은 특성내에서 이벤트 관리기에 의해 저장 및 우선화된다.
이벤트 조절이 가상 머신에 의해 이제 효과적으로 실행된다는 사실에도 불구하고, 시스템이 특정 실시예에서 가상 머신의 운영 시스템과 하드웨어 레벨 운영 시스템 사이의 인터페이스로서 제공되는 하나 이상의 장치 드라이버를 포함하는 것도 또한 당연하다.
하드웨어 운영 시스템으로부터 발생되는 이벤트 외에, 이벤트 관리기는 가상 머신 또는 보다 높은 레벨 애플리케이션내로부터 발생되는 이벤트 메시지에 응답하도록 또한 구성될 수 있다.
바람직한 실시예에서, 스레드내의 이벤트 객체의 순서는 이벤트의 우선순위 및/또는 이벤트의 도착 시간에 따라 우선화될 수 있다. 이것은 스레드 큐에서 스레드에 대한 지시의 할당으로 실행되는 초기 우선화에 추가될 수 있다.
일실시예에서, 가상 머신은 이벤트 관리기가 수신된 이벤트 메시지의 스레드 대응물을 결정할 수 있도록 이벤트 관리기에 의해 가능하고 어드레스할 수 있는 이벤트 메시지에 관한 정보를 포함하는 경로 테이블을 또한 포함한다. 또한, 이 경로 테이블은 스레드내에서 이벤트 객체의 우선순위를 결정하는데 사용될 수 있다. 당업자에 의해 이해될 수 있는 바와 같이, 대안적인 수단이 또한 사용된다.
이벤트 관리기 또는 경로 테이블 외에, 또한 바람직하게는, 가상 머신은 우선순위 편성 스레드 큐에 유지된 스레드를 검사하고, 그 시간에서 최상의 우선순위를 갖는 스레드의 실행을 명령하는 스케줄러를 포함한다. 우선적인 스레드 관리 동작을 실시하기 위해, 이벤트 관리기는 이벤트 메시지의 도달을 발신하고, 스케줄러가 스레드 큐에 유지된 스레드의 새로운 상태를 검사하도록 하는데 적용될 수 있다.
상기에서 기술된 PCT 출원 PCT/EP97/02116에서의 시스템이 갖는 문제점은 수신된 코드의 처리와 관계된다. 가상 머신과 런타임 엔진의 사용이 이 애플리케이션에서 기술된 시스템으로 하여금 시스템의 하드웨어 레벨에 크게 독립되게 할지라도, 시스템의 개방은 공지된 시스템에서 가상 머신의 상부에 놓여진 애플리케이션을 기입하는데 사용되는 코드에 의해 역시 한정된다. 애플리케이션에서 기술된 바와 같이, 코드는 해석 언어로 작성되고, 방송 센터로부터 수신기로 다운로딩되고, 가상 머신에서 해석어에 의해 해석된다.
코드는 상업적으로 공지되고 표준화된 언어로 선택될 수 있을지라도, 문제는 예를 들면, 수신기가 2개 이상의 다른 코드로 작성된 애플리케이션을 처리해야 하는 데서 발생할 수 있다. 이 문제는 예를 들면, 필드에서 존재하는 디코더가 본 디코더에서 사용된 코드와 다르게 쓰여진 애플리케이션을 수신하기 위해 선택되는 방송 시스템에 소개된다는 점에서 발생할 수 있다. 이러한 경우에, 오퍼레이터는 주어진 애플리케어션을 2번; 한번은 존재하는 디코더를 위해 원래 언어로 작성되는 것으로, 한번은 새로운 디코더를 위해 새로운 코드로 작성되는 것으로 다운로드해야 한다. 명확해지는 바와 같이, 이러한 동작이 대역폭의 사용 기간에는 비교적 비능률적이라는 것이다.
본 발명의 하나의 양태의 목적은 이 문제를 극복하는 것이다.
본 발명의 제 2 양태에 따라서, 장치 외부의 데이터 전송 및 수신을 위한 하나 이상의 하드웨어 장치를 포함하는 디지털 시청각 데이터를 처리하는 장치가 제공되고, 상기 장치는 특히 하나 이상의 하드웨어 장치를 통해 해석 언어로 작성된 코드를 수신하는 제 1 가상 머신을 포함하는 데이터 처리 시스템을 더 포함하며, 상기 가상 머신은 수신된 데이터의 구조에 따라서 적어도 2개의 해석 언어로 작성된 코드를 구별하고, 이러한 코드를 해석과 실행을 위한 해당 해석기 수단으로 전달한다.
이러한 코드를 해석하기 위한 다수의 해석기 수단과 함께 수신된 코드를 구별하는 가상 머신을 제공함으로써, 본 발명은 종래 시스템과 연관된 문제를 피하고, 머신이 다른 해석 언어로 도달하는 지시를 처리할 수 있게 한다. 또한, 상위 애플리케이션 및 하위 하드웨어 인터페이스 모두에 관한 전개방 시스템이 제공될 수 있다.
일실시예에서, 가상 머신은 언어들중 하나로의 코드 모듈과 연관된 헤더 메시지의 특성에 근거하여 적어도 2개의 해석 언어들에서 해석 코드를 구별한다. 특히, 가상 머신은 언어들중 하나로의 코드 모듈과 연관된 헤더 메시지의 존재 또는 부재에 근거하여 해석 코드를 구별한다. 다른 실시예는 머신이 "플래그", 전송된 코드의 스트림 종단 내에서 또는 종단에서, 혹은 코드 모듈의 파일 명칭 상에서의 다른 코드 요소에 근거하여 코드를 구별하는 것으로 생각될 수 있다.
본 발명은 하나 이상의 해석 언어가 객체 지향 언어에 해당하는 상황에 특히 적용 가능하다. 이러한 예에서, 머신은 그 언어에서 클래스 파일과 연관된 헤더 메시지의 존재를 검사한다.
코드를 실시하기 위해서, 각 해석기 수단은 하나 이상의 함수 라이브러리를 참조하여 코드를 실행할 수 있다. 바람직하게는, 공통 함수 라이브러리는 함수 라이브러리에 요구되는 메모리의 양을 감소시키기 위해 다수의 해석기 수단에 의해 공유된다.
공통 함수 라이브러리의 존재에도 불구하고, 하나 이상의 해석기 수단은 그 해석기를 제외한 함수 라이브러리를 참조하여 코드를 실행할 수 있다.
이것은 예를 들면, 어떤 특정 함수는 전용 함수 라이브러리를 참조하여 보다 쉽게 실행되는 것이 고려될 수 있다. 이해되는 바와 같이, 시스템의 크기는 어디에서나 가능 및/또는 편리한 2개의 가상 머신에 공통의 함수 라이브러리를 사용함으로써 감소될 수 있다.
상기에서 기술된 PCT 출원 PCT/EP97/02116의 시스템이 갖는 또 다른 문제점은 처리 명령에서 시스템에 의해 사용된 메모리의 조절에 관한 것이다. 본 출원에서 기술된 시스템은 메모리 소자를 관리하기 위한 장치 관리기에 의존한다. 본 장치에서, 가상 머신으로부터 메모리로의 모든 호출은 동일하게 처리된다. 메모리 공간 사용이 장치 관리기에 의해 최적화될 수 있는 방법은 더 이상 논의하지 않는다.
장치 관리기는 가상 머신 하부에, 그리고 시스템 권한자보다 수신기/디코더 제조업자에 의해 실시되는 일부 층을 형성한다. 또한, 수신기/디코더 제조업자에 의해 선택된 실시가 시스템 권한자에 의해 설계된, 가상 머신과 같은 시스템의 보다 높은 레벨 요소의 필요성과 비교하여 보다 덜 최적화되는 것보다 위험성이 있다.
이러한 문제의 부분적 또는 모든 부분을 극복하고, 시청각 장치내에 메모리의 관리를 위한 개선된 시스템을 제공하기 위한 부가의 측면에 본 발명의 목적이 있다.
본 발영의 제 3 양태에 따라서, 메모리와, 메모리에 객체를 할당하고 저장하기 위한 메모리 관리기를 포함하는 데이터 처리 시스템을 포함하는 디지털 시청각 데이터를 처리하는 장치가 제공되고, 여기서 객체의 제 1 세트는 핸들 세트에 따라서 메모리 관리기에 의해 할당되고, 각 핸들은 해당 객체의 메모리 어드레스에 대한 참조를 포함하며, 객체의 제 2 세트는 핸들에 관계없이 메모리에 직접 할당되어 저장된다.
핸들에 의해 접근할 수 있고 객체를 직접 검색할 수 있는 객체들간의 메모리를 할당함으로써, 본 발명은 메모리 공간을 최적화하기 위해 메모리 관리기에 의해 다수의 방법으로 처리될 수 있는 객체의 제 1 세트와, 하기에서 설명될 바와 같이, 핸들에 관계없이 직접 어드레스될 수 있는 보다 빈번하게 접근된 객체를 구별한다.
특히 일실시예에서, 제 2 세트에서의 객체는 메모리 관리기를 통과하지 않고 데이터 처리 시스템에서 다른 요소의 의해 직접 검색될 수 있다. 또한, 메모리 관리기는 메모리 컨텐츠에 관한 제어를 유지하기 위해 메모리에 제 2 세트의 객체를 할당하여 저장하도록 요구될 수 있다.
일실시예에서, 핸들은 상기 메모리에 저장될 수 있다. 그러나, 핸들이 또 다른 메모리 공간에 저장되는 다른 실현이 가능하다. 핸들은 동적 또는 정적 어레이로 저장될 수 있다.
일실시예에서, 메모리 관리기는 메모리 내에서 제 1 세트의 객체를 대체하고 해당 핸들에 저장된 어드레스 참조를 변경하는데 적용된다.
객체는 예를 들면, 객체가 더 이상 메모리에 저장되지 않을 때 대체될 수 있다. 대체는 예를 들면, 적당한 압축 알고리즘에 따라서 실행될 수 있다. 이와 같이, 자유 메모리 공간은 저장된 객체의 트랙을 간단하고 효과적으로 유지할 때 최적화될 수 있다.
제 2 형태의 객체의 모든 시점에 접근하기 위해, 이들 객체는 바람직하게 메모리내에서 대체가 가능하지 않다. 그러나, 예를 들어 제 2 형태의 객체의 대체가 시스템에서 발생되는 객체의 어드레스를 변경하는 절차와 연관될 다른 실현이 고려될 수 있다.
특히, 본 발명은 가상 머신이 본 발명의 제 1 양태에 관하여 설명된 종류의 다중 스레드 구조를 갖는 실시예에 적용될 수 있고, 여기서 스레드는 실행 추이 동안 또 다른 스레드의 실행을 허가하도록 일시적으로 보류된다.
이러한 경우에, 바람직하게는, 다중 스레드 가상 머신은 내부적으로 생성된 가베지 수집기 스레드(garbage collector thread)를 포함하고, 상기 가상 머신은 그 시점에서 현재 참조되지 않은 메모리에서 자유 객체에 대한 스레드의 실행을 수행한다. 대안적으로 또는 추가적으로, 가베지 수집기 스레드의 실행은 가상 머신이 자유 메모리 공간의 최대 양과 함께 그룹화되도록 압축 알고리즘에 따라서 제 1 세트의 객체의 대체를 또한 실행하도록 한다.
본 발명이 FLASH 또는 EEPROM과 같은 다른 메모리 구성요소에 동일하게 적용될지라도, 상기 메모리 공간은 시스템의 RAM 메모리에 해당될 수 있다.
본 발명이 디지털 텔레비전 시스템을 수신 및 처리하기 위해 특히 적당한 반면, 본 명세서에서 설명된 데이터 처리 시스템의 원리는 디지털 비디오 레코더 등과 같은 디지털 시청각 데이터를 조절하는 다른 장치에 도한 적용될 수 있는 것이 이해될 것이다.
디지털 텔레비전 시스템을 위한 디코더 환경에서, 디코더의 하드웨어 장치는 동조기, 직렬 인터페이스, 병렬 인터페이스, 모뎀 및 하나 이상의 스마트 카드 판독기와 함께 MPEG 디멀티플렉서중 하나 또는 모두를 포함할 수 있다.
본 명세서에서 사용된 용어 "수신기/디코더" 또는 "디코더"는 텔레비전 및/또는 라디오 신호와 같은, 특정 다른 수단에 의해 방송 또는 전송되는 부호화된 또는 부호화되지 않은 신호를 수신하기 위한 수신기를 내포할 수 있다. 또한, 본 용어는 수신된 신호를 복호하기 위한 디코더를 내포할 수 있다. 이러한 수신기/디코더의 실시예는 수신된 신호를 디코딩하기 위한 수신기와 결합된 디코더, 예를 들어 "셋-탑 박스"에서 물리적으로 분할된 수신기와 통합된 디코더 기능, 또는 웹 브라우저와 같은 추가 기능을 포함하는 디코더, 또는 비디오 레코더 혹은 텔레비전과 같은 다른 장치와 결합된 디코더를 포함할 수 있다.
본 명세서에서 사용된 것으로, 용어 "디지털 전송 시스템"은 예를 들면, 우선적으로 시청각 또는 멀티미디어 디지털 데이터를 전송 또는 방송을 위한 모든 전송 시스템을 포함한다. 본 발명이 방송 디지털 텔레비전 시스템에 특히 적용가능한 반면에, 본 발명은 폐회로 시스템 등에 멀티미디어 인터넷 애플리케이션을 위한 고정된 통신 네트웍에 또한 적용가능하다. 본 명세서에 사용된 용어 "디지털 텔레비전 시스템"은 모든 위성, 지상, 케이블 또는 다른 시스템을 포함한다.
MPEG이라는 용어는 국제 표준화 워킹 그룹 기관 "동영상 전문가 그룹" 및 특히 한정하려는 것은 아니지만, 디지털 텔레비전 애플리케이션을 위해 전개된 MPEG-2 표준화에 의해 전개된 데이터 전송 표준을 언급하고, ISO 1318-1, ISO 13818-2,ISO 13818-3 및 ISO 13818-4 문서에서 제시된다. 본 출원 애플리케이션에 관하여, 용어는 디지털 데이터 전송의 필드에서 적용 가능한 MPEG 포맷의 모든 다양성, 변형, 또는 개선을 포함한다.
도 1은 디지털 텔레비전 시스템의 전체 구조를 도시한 도면.
도 2는 도 1의 디지털 텔레비전 시스템내의 쌍방향 시스템 요소를 도시한 도면.
도 3은 본 발명의 수신기/디코더내에서 실시되는 소프트웨어 기반 시스템의 구조를 도시한 도면.
도 4는 특히 이벤트 관리기 패키지, 해석 패키지 및 메모리 패키지를 포함하는, 도 3의 시스템 내의 가상 머신의 구조를 도시한 도면.
도 5는 가상 머신에 사용된 해석기의 구조를 도시한 도면.
도 6은 가상 머신내에서 조절되는 스레드를 도시한 도면.
도 7은 이벤트 관리기의 동작 및 가상 머신의 스케줄러를 도시한 도면.
도 8은 가상 머신에 의한 메모리 풀의 관리를 도시한 도면.
디지털 텔레비전 네트워크
도 1은 본 발명에 따른 디지털 텔레비전 시스템(1000)의 전체 구성을 나타낸다. 본 발명은 공지된 MPEG-2 압축 시스템을 사용하는 통상적인 종래 디지털 텔레비전 시스템(2000)을 포함하여 압축된 디지털 신호를 전송한다. 더 상세하게는, 방송 센터의 MPEG-2 압축기(2002)는 디지털 신호 스트림(통상적으로 비디오 신호의 스트림)을 수신한다. 압축기(2002)는 링키지(2006)에 의해 멀티플렉서 및 스크램블러(2004)에 연결된다. 멀티플렉서(2004)는 복수의 부가적인 입력 신호를 수신하고, 하나 이상의 이송 스트림을 모으고 압축된 디지털 신호를 링키지(2010)를 경유해서 방송 센터의 송신기(2008)에 전송하고, 그 링키지(2010)는 폭넓고 다양한 형태의 통신 링크일 수 있다. 송신기(2008)는 전자기 신호를 위성 트랜스폰더(2014)를 향해 업링크(2012)를 경유해서 전송하고, 거기에서 그들은 전자적으로 처리되고 단말 사용자에 의해 소유 또는 임대된 접시 형태의 지상 수신기(2018)에 관념상의 다운링크(2016)를 경유해서 방송된다. 수신기(2018)에 의해 수신된 신호가 단말 사용자에 의해 소유 또는 임대되고 단말 사용자의 텔레비전 세트(2022)에 연결되는 집적된 수신기/디코더(2020)에 전송된다. 수신기/디코더(2020)는 그 압축된 MPEG-2 신호를 텔레비젼 세트(2022)용 텔레비전 신호로 복호한다.
조건부 액세스 시스템(3000)은 멀티플렉서(2004) 및 수신기/디코더(2020)에 연결되고, 방송 센터에 부분적으로 위치되고 디코더에 부분적으로 위치된다. 그것은 단말 사용자로 하여금 하나 이상의 방송 공급자로부터 디지털 텔레비전 방송을 액세스할 수 있게 한다. 상업적 제공(즉, 방송 공급자에 의해 판매된 하나 이상의 텔레비전 프로그램)에 관련한 메시지를 복호화할 수 있는 스마트카드는 수신기/디코더(2020)에 삽입될 수 있다. 디코더(2020) 및 스마트카드를 사용할 때, 단말 사용자는 상업적 제공을 가입 방식 또는 유료시청 방식으로 구매할 수 있다.
디지털 텔레비전 네트워크내 쌍방향성 시스템
멀티플렉서(2004) 및 수신기/디코더(2020)에 역시 연결되고 다시 방송 센터에 부분적으로 및 디코더에 부분적으로 위치된 쌍방향성 시스템(4000)은 단말 사용자로 하여금 모뎀 백 채널(modemmed back channel; 4002)을 경유해서 각종의 애플리케이션과 쌍방향으로 작용할 수 있게한다.
도 2는 다음과 같은 4개의 주요 구성요소를 구비하는 쌍방향성 시스템(4000)의 일반적인 구조를 도시한다.
삭제
삭제
1. 방송 공급자로 하여금 애플리케이션을 생성하고 전개하고, 디버그하고 시험하게하기 위한 방송 센터(또는 어딘가에서)의 오서링 툴(authoring tool)(4004);
2. 방송 공급자로 하여금 멀티플렉서 및 스크램블러(2004)에 전달되는 애플리케이션 및 데이터를 단말 사용자에게 방송되는 MPEG-2 이송 스트림(통상적으로 프라이비트(private) 부분)으로 삽입하기 위해 준비, 인가 및 포맷할 수 있도록하는 오서링 툴(4004)에 연결된 방송센터에서의 애플리케이션 및 데이터 서버(4006);
3. 단말 사용자로 하여금 애플리케이션을 실행용 디코더(2020)의 작업 메모리로 수신, 인가, 압축해제, 로드시킬 수 있게 하기 위해 단말 사용자에 의해 소유 또는 임대된 수신기/디코더(2020)에 설치된 실행 가능한 코드인 실행 시간 엔진(run time engine; RTE)(4008)을 포함하는 가상 머신(virtual machine). 엔진(4008)은 하드웨어 및 운영 시스템과 무관하다;
4. 서버(4006)에 명령하는 신호로 하여금 데이터 및 애플리케이션을 단말 사용자의 요구시 MPEG-2 이송 스트림으로 삽입하게 할 수 있기위한 수신기/디코더(2020)와 애플리케이션 및 데이터 서버(4006)간의 모뎀 백 채널(4002);
수신기/디코더(2020)은 수신기를 동조하기 위한 동조기, MPEG 신호를 디멀티플렉싱하기 위한 MPEG 디멀티플렉서, 직렬 인터페이스, 병렬 인터페이스, 예를 들면 시스템과 유출된 신용 카드 또는 예약 카드를 판독하기 위해 적용되는 모뎀 또는 1개 또는 2개의 카드 판독기와 같은 쌍방향 시스템내 외부 장치와 통신을 위한 다수의 장치를 포함한다. 이러한 장치의 특성은 디지털 텔레비전 시스템의 분야에 공지되어 있고 이 명세서에서 더욱 자세히 설명된다.
유사하게, 제공되어지는 쌍방향 애플리케이션의 종류는 (홈 뱅킹, 텔레쇼핑, 컴퓨터 소프트웨어의 다운로딩) 이러한 분야에 적용될 수 있고, 더욱 자세히 기술하지 않는다. 아래에 기술된 디코더 시스템 구조는 특히 쌍방향 애플리케이션에 적당한 반면, 설명된 구조는 일반적인 요금제 TV 시스템과 같은 , 더욱 간단한 비쌍방향 디지털 TV 시스템에서 사용되기에 적당하다.
디코더 시스템 구조
도 3에 도시된 수신기/디코더내의 시스템 구조로 전환하면, 층을 이룬 구조가 사용되는 것이 이해될 것이다. 제 1 층(4100)은 수신기/디코더의 하드웨어 시스템의 운영 시스템을 표현한다. 이것은 수신기/디코더의 하드웨어 요소를 제어하기 위한 제조업자에 의해 선택된 실시간 운영 시스템이다. 실시간 운영 시스템이 하드웨어 동작에 정확하게 동기를 맞추기 위해서 비교적 빠른 응답 시간을 가지고 있다. 이벤트 메시지는 이 층과 미들웨어 층(4200) 사이에서 전달된다.
데이터 처리 시스템(4008)은 하드웨어 운영 시스템의 상부에 위치하고 미들웨어 층과 애플리케이션(또는 더욱 정확하게 애플리케이션 인터서이스) 층을 포함한다.
미들웨어 층은 C ANSI와 같은 언어로 작성되고, 가상 머신(4250)과, 그래픽 인터페이스(4261), FLASH/PROM 메모리 인터페이스(4262), 프로토콜 인터페이스(4263) 및 장치 인터페이스(4254)를 포함하는 다수의 인터페이스(4260)의 요소를 포함한다.
도입에서 더욱 자세히 기술된 특허 출원 PCT/EP97/02116에서 제시된 시스템과 같이, 본 발명은 제조기에 의해 실시되는 상부 레벨 애플리케이션 및 하부 레벨 운영 시스템간에 독립적으로 제공하기 위해 가상 머신을 사용한다.
인터페이스(4260)는 가상 머신과 하위 레벨 운영 시스템(4100)의 동작 사이의 링크를 제공하고, 이 레벨에서 더욱 쉽게 실행되는 다수의 중간 레벨 애플리케이션 모듈을 또한 포함한다.
애플리케이션 인터페이스(API) 층(4300)은 자바와 같은 개체 지향 해석 언어로 작성된 다수의 고레벨 패키지 (4310-4314)를 포함한다. 이러한 패키지는 서비스 제공자(쌍방향 프로그램 가이드, 텔레쇼핑, 인터넷 브라우저등)에 의해 만들어진 애플리케이션과 시스템의 가상 머신 사이의 인터페이스를 제공한다. 이러한 애플리케이션의 예는 아래에 주어진다.
하위 레벨 OS는 일부 구현에서 하위 레벨 OS가 다운로드될 수 있을지라도 디코더의 하드웨어 구성요소에 일반적으로 삽입된다. 미들웨어 및 애플리케이션 인터페이스 층 패키지는 방송 전송으로부터 디코더의 RAM 또는 FLASH에 다운로드될 수 있다. 대안적으로, 일부 또는 모든 미들웨어 혹은 애플리케이션 인터페이스 층 요소는 디코더의 ROM 또는 (만약 존재한다면) FLASH 메모리에 저장될 수 있다. 이해되듯이, 디코더의 메모리 소자의 물리적 구성은 메모리의 논리적 구성과 구별된다.
애플리케이션 인터페이스 층
도 3에 도시된 애플리케이션 인터페이스 층을 참고하고 및 위에서 기술되었듯이, 이 층에서 패키지는 자바와 같은 객체 지향 언어로 작성된다. 각 패키지는 시스템의 동작동안 호출된 클래스 라이브러리의 집합을 정의한다. 본 시스템에서는 다음 패키지가 설치된다.
Lang/Util 패키지(4310). 이 패키지는 가상 머신에 의해 객체를 처리하는데 필요한 클래스를 정의한다. 이 클래스 라이브러리들은 선택된 객체 지향 언어와 연관된 표준 라이브러리의 부분을 형성한다.
MHEG-5 패키지(4311). 이 패키지는 텔레비젼 디스플레이에서 그래픽 객체의 처리와 연관된 클래스를 정의한다. 이러한 객체는 시청각 데이터와 구별되고 예를 들면, 채널 확인기 또는 디스플레이된 이미지상에 놓인 텍스트를 형성한다. 이 패키지 내 클래스의 정의는 표준 ETS 300777-3 및 ISO/ISE 13522-5(및 시스템에 실시된 자바의 경우에 표준 ISO/ISE 13522-6)에 의해 정의된 MHEG-5 표준에 관련된다.
툴박스 패키지(4312). 이 패키지는 정보의 다운로딩 및 비압축을 위해 사용된 클래스 뿐만 아니라, 수신기/디코더 내 파일 시스템 및 메모리의 관리와 연관된 클래스와 인터넷 등의 연결과 연관된 클래스를 포함한다.
장치 패키지(4313). 이 패키지는 위에서 기술되고 모뎀, 스마트 카드 판독기, MPEG 흐름 동조기 등을 포함하는 것으로써 수신기/디코더에 부착된 주변 장치를 관리하는데 필요한 클래스를 정의한다.
서비스 패키지(4314). 이 패키지는 신용 카드 데이터 등이 관리와 같은, 보다 높은 레벨 쌍방향 애플리케이션 개발을 실시하는데 필요한 클래스를 정의한다.
DSMCC-UU 패키지(4315). 이 패키지는 데이터 파일을 검색 및 판독하기 위한 클라이언트와 서버 사이를 통신하는데 필요한 프로토콜을 실시한다. 이 패키지의 실시는 표준 ISO/IEC 13818-6와 연관되고 DAVIC 파트 9에서 지시적으로 정의된다.
서비스 제공자에 의해 작성되고, 종래 시스템으로 방송되는 동안 다운로드되는 쌍방향 애플리케이션의 부가 층은 상기에서 정의된 인터페이스 패키지 위에 위치된다. 도입된 애플리케이션에 따라, 상기 패키지 일부는 생략될 수 있다. 예를 들면, 서비스 제공자가 데이터 판독을 위한 공통 방법을 제공하지 않고자 하는 경우, DSMCC-UU 패키지는 최종 시스템 중에서 제외될 수 있다.
패키지(4300)는 객체 지향 프로그래밍 환경을 위한 클래스 라이브러리를 제공한다. 이들 클래스 동작은 선택된 언어에 의존한다. 자바 애플리케이션의 경우에, 예를 들면, 단일 상속 클래스 구조는 부착될 수 있다.
인터페이스층
도시되듯이, 인터페이스층은 그래픽 모듈(4251), 메모리 파일 관리 모듈(4261), 프로토콜 모듈(4263) 및 장치 관리기(4264)의 4개의 모듈로 구성된다. 한편, 이 레벨에서 모듈이 인터페이스 모듈에 기술되듯이, 그들 기능이 애플리케이션 인터페이스 패키지의 실시예 및 일반적인 가상 머신의 동작을 위한 "밀착" 층을 제공한다.
그래픽 모듈(4261)은 예를 들면, 그래픽 객체의 생성 및 관리를 제공한다. 그래픽 모듈(4261)은 단일 픽셀, 라인, 직사각형등과 같은 기본 그래픽 모양을 디스플레이하기 위한 저 레벨 OS를 요청한다. 이 모듈의 실시는 저 레벨 제조자의 OS의 그래픽 용량에 의존한다. MHEG-5 패키지(4311)에 상보적인 방법으로, 이러한 기능이 위에서 애플리케이션층을 위해 선택된 고 레벨 코드에서 보다 이 코드 레벨에서 더욱 효과적으로 실행될 수 있다.
유사한 방법에서, 메모리 파일 관리 모듈(4252)은 시스템의 메모리 소자와 연관된 저레벨 판독/작성 파일 명령을 포함한다. 일반적으로, 하드웨어 운영 시스템은 메모리 소자 내에서 섹터 또는 페이지를 판독/작성하는데 필요한 명령을 포함한다. 그래픽 모듈(4261)과 같이, 이 모듈은 시스템에 효과적으로 도입되는 더 간편한 하위 레벨 애플리케이션의 집합이 가능하다.
프로토콜 관리 모듈(4264)은 예를 들면, 디코더의 TCP/IP 층을 통한 통신에서 호출될 수 있다.
장치 관리기(4264)는 인터페이스 층 및 가상 머신에서 다른 모듈을 포함하고, 하드웨어 운영 시스템과 상기 층들 사이의 링크 또는 인터페이스를 제공하는 이 층에서 다른 모듈과는 다소 다르다. 가상 머신으로부터 하드웨어 OS에 수신/송신되는 명령 또는 이벤트 메시지는 예를 들면, 2개의 레벨 간에 인터페이스 특성에 따라서 변경을 위한 장치 관리기에 의해 반드시 전달된다.
가상 머신 설명
도 4를 참고하여, 본 발명의 시스템에 사용된 가상 머신(4250)의 구조는 기술될 수 있다. 본 발명에 사용된 가상 머신은 우선적 다중 스레드 형태 머신이다. 이러한 머신의 일반적 특성은 시청각 및 디지털 텔레비전 분야외에 다른 명세서에서 공지되고, 이어지는 기술은 본 애플리케이션에 가장 특징적이 되는 영역에 조첨을 둘 수 있다.
가상 머신은 도 4에 도시된 것으로써 넓게 상호작용하는 다수개의 요소로 구성된다.
연결 관리기 서비스(4271) 및 모니터 관리기 서비스(4272)로 구성된 스케줄러(4270)는 다중 스레드 머신의 중심을 형성한다. 스케줄러(4270)는 가상 머신의 외부적인 애플리케이션에 의해 생성된 스레드 및 가상 머신 자체(예를 들면, 아래에서 논의된 것으로써 가베지 수집 스레드)에 의해 생성된 스레드의 실행을 지시한다.
이벤트 관리기(4273)는 이벤트 경로 테이블과 스레드에 의해 예약된 이벤트 리스트를 조절하고, 이벤트 처리의 디스패치를 모은다. 메모리 관리기(4274)는 시스템 메모리 내 메모리 영역의 할당 및 비할당을 조절하고, 참고되지 않는 객체(가베지 수집)의 메모리로부터 제거를 조절한다.
클래스 관리기(4275)는 다운로드된 코드의 일체를 확인하기 위한 보안 관리기(4280), 및 애플리케이션을 실시하는 파일 관리기(4276)와 상호 작용하여 방송 신호로 다운로드된 애플리케이션 코드의 클래스에 부여한다.
파일 관리기(4276)는 시스템 파일의 실시를 수행하고 쌍방향 애플리케이션과 데이터의 다운로딩의 매카니즘을 조절한다.
보안 관리기(4280)는 다운로드된 애플리케이션, 파일 시스템과 연관된 다른 애플리케이션보다 더 동작을 수행하는 능력을 가진 일부의 애플리케이션에 허용된 접근 레벨을 조절한다.
바이트 코드 해석 서비스(4278) 및 "m-코드" 해석 서비스(4279)를 포함하는 해석기(4277)는 이들 2개의 코드로 작성된 애플리케이션 해석을 조절하고, 바이트코드는 자바 애플리케이션과 연관되고, m-코드는 애플리케이션에 의해 개발된 특허 코드로 주어진 이름이다. 논의되었듯이, 또한 해석 서비스는 바람직하게 부가될 수 있다.
클래스 관리기, 파일 관리기, 및 보안 관리기의 동작 및 실시는 일반적이다. 설명은 해석기, 스케줄러 및 이벤트 관리기 및 메모리 관리기의 동작에 초점을 두고 있다.
해석기
도 5를 참고하여, 본 발명의 실시예에서 사용된 해석기(4277)의 동작이 이제 설명될 수 있다. 도입에서 논의되었듯이, 데이터에 제안된 디코더에서 사용된 종래의 운영 시스템의 단점은 고레벨의 애플리케이션을 위한 단일 형태 코드에 의존한다는 것이다. 선택된 코드가 상업적으로 유용하고 널리 공지된 애플리케이션 코드일지라도, 문제는 다수의 코드로 작성된 다른 애플리케이션을 사용하여 다수의 디코더의 분야를 유지할 필요가 있을 경우에 또한 발생할 수 있다. 본 시스템의 해석기는 코드의 다수의 형태의 해석을 허용한다.
도시된 바와 같이, 시스템에서 도달되는 파일은 파일의 구조에 따라서 모듈 클래스 관리기(4500)에 의해 평가되어, 해석기(4510)에 전달된 애플리케이션 코드가 형태의 지시를 가지도록 한다. 바이트코드 애플리케이션의 경우에, 예를 들면, 다운로드된 클래스 파일은 4 옥텟의 버전 번호에 의해 후속된 4 옥텟의 문자 확인 헤더를 가질 수 있다. 해석기는 이 바이트코드 헤더의 존재 또는 부재에 근거하여 코드를 구별할 수 있다.
다른 실시예에서, 다른 문자 코드 형태는 예를 들면, 파일 이름과 같은 특정 수의 애플리케이션 언어들을 구별하기 위해서 사용될 수 있다.
형태 지시기의 결과에 의존하여, 바이트코드 지시는 바이트코드 해석기(4278)에 전송되고, 반면에 해석적 코드 지시의 일반적인 경우와 같이, 바이트 코드 지시에 연관된 기능 라이브러리(4520)를 참고로 실행된다. 고유 코드 지시의 함수 라이브러리는 가상 머신 내에 정의된다.
m-코드 지시의 경우에, 이들은 m-코드 해석기(4278)로 전달된다. 대부분의 m-코드 도입은 바이트 코드 지시에 연관된 함수 라이브러리(4520)를 참조하여 실시 및 실행될 수 있고, 해석기(4278)는 이러한 m- 코드 함수를 어디에서나 가능하게 실행하도록 라이브러리(4520)를 호출한다.
그러나, 일부 환경에서 일부 m-코드 지시는 공통 기능 라이브러리를 참조하여 쉽게 실행되지 않는 특정 실행 기능을 요청할 수 있다. 이러한 경우에, 공유된 함수 라이브러리(4530)를 참고로 실시되는 지시가 관찰될 수 있다.
스케줄러 및 이벤트 관리기
스케줄러(4270) 및 이벤트 관리기(4273)의 동작이 시스템 내에서의 스레드 수명을 도시하는 도 6, 및 하위 레벨 런타임 운영 시스템에 의해 발신된 이벤트에 응답하여 시스템에 의해 스레드로의 이벤트 통지를 도시하는 도7을 참고하여 논의된다.
설명은 발신된 이벤트으로부터 특히 초래되는 실행 내용을 표시하는 스레드 생성의 조절에 집중할 것이다. 스레드는 하드웨어 OS로 전송될 상위 레벨 애플리케이션과 이 명령의 반환에 의해 생성된 명령의 개시로 생성되는 것이 이해될 것이다. 또한, 스레드는 가상 머신 자체 즉, 가베지 수집 스레드 내에 생성될 수 있다.
상기에서 언급한 바와 같이, 본 실시예는 자바 기반 시스템과 같은 가상 머신을 조절하는 우선적 스레드에 의한다. 이러한 머신에서, 다수의 스레드가 생성되어 스레드 큐에 저장된다. 스케줄러는 스레드 큐를 검사하고, 실행될 최상위 우선순위를 갖는 스레드를 선택한다. 일반적으로, 실행되고 있는 스레드는 최상위 우선순위를 갖지만, 이러한 스레드는 우선적 스레드 시스템에서 일반적인 것과 같이, 보다 높은 우선순위의 스레드에 의해 해석될 수 있다. 이러한 경우에, 해석된 스레드의 상태가 저장되고, 실행되기 위해 재선택될 때 스레드가 재활성된다.
특정 경우에, 스레드는 스케줄러가 스레드의 실행을 보류하고 실행할 어떤 다른 스레드를 위한 스레드 큐를 검사하게 하는, 소위 "양보(yield)" 지시를 포함할 수 있다. 양보 지시는 시스템의 메모리로부터 사용되지 않는 객체를 제거하기 위해 시스템에 의해 실행된 가베지 수집 기능과 같은 낮은 우선순위의 내부 생성 작업으로 존재할 수 있다.
시스템의 이들 양태는 도 6에 도시된다. 도면부호(4550)에서 스레드의 생성은 스레드 큐(4551)에 저장된 스레드를 발생시킨다. 새롭게 생성된 스레드는 도면부호(4552)에서 상태"init"를 갖는다. 만약 보다 높은 우선순위를 갖는 다른 스레드가 없으면, 스레드는 지시 개시()에 의해 실행되고, 도면부호(4553)에서 "실행가능" 상태를 가질 것이다. 만약 지시 정지()가 스레드에서 실행되면, 스레드는 도면부호(4554)에서 "사용 불능(dead)"으로 될 수 있다. 스레드는 run()fini 지시에 의해 지시된 바와 같이 완결되면 이 상태를 동일하게 수행한다. 만약 스레드 자체에서 yield() 지시가 발생하거나, 스레드 외부의 suspend() 지시가 실행된다면, 스레드가 보류되고 도면부호(4556)에서 "실행 불가능" 상태로 주어진다.
이제 도 7을 참고하여, 하위 레벨 운영 시스템(4100), 이벤트 관리기(4273) 및 스케줄러(4270) 간의 상호작용이 이제 설명될 것이다. 런타임 운영 시스템(4100)에 의해 발신된 미가공 이벤트는 장치 관리기(4313)를 통해 이벤트 관리기(4273)로 전달된다. 바람직한 구현에서, 수신된 이벤트의 일부 우선화는 장치 관리기(4313) 및/또는 운영 시스템(4100)에 사용된 다중 테스크 시스템에 의해 실행될 수 있다. 그러나, 명확해지듯이, 본 시스템의 장점중 하나는 PCT/EP97/02116에 설명된 시스템과 달리, 이벤트의 조절이 가상 머신(4250) 내에서 관리되고, 따라서 미들웨이 층의 생성기로 하여금 이벤트 조절 절차상에서 완전한 제어를 수행할 수 있도록 한다는 점에 있다.
본 실시예에서, 장치 관리기(4313)를 통해 전송된 이벤트는 이벤트의 코드와 형태에 따라 분류된다. 코드는 이벤트의 특성을 확인하고, 예를 들면, 디코더와 연관된 원격 제어기의 동작을 통하여 생성된 이벤트의 경우에 코드는 눌러진 버튼을 확인할 수 있다. 형태는 이벤트의 근원, 즉 원격 제어기를 확인한다.
이벤트 신호를 수신하면, 이벤트 관리기(4273)는 경로 테이블(4560)을 사용하여 이벤트 우선순위 및 스레드 목적지를 결정하고, 해당 이벤트 객체(4564)를 우선순위 기반 스레드 큐(4562)내에 위치된 하나 이상의 스레드(4561)에 삽입한다. 하나 이상의 이벤트 객체(4564)는 도면부호(4563)에서 표현된 바와 같이 주어진 스레드내에 저장될 수 있다. 이벤트 객체(4564)는 우선순위 분류에 따라서 스레드내에 저장된다. 동일한 우선순위의 스레드내의 이벤트 객체는 도착 시간(FIFO)에 의해 분류된다. 이벤트를 수신하면, 이벤트 관리기(4273)는 이벤트의 도착을 스케줄러(4270)로 발신하고, 여기서 스케줄러(4270)는 스레드가 현재 실행되고 있는 스레드보다 높은 우선순위를 갖는지를 알기 위해 스레드 큐를 검사한다.
이와 같이, 바람직한 실시예는 시스템이 존재하는 이전 이벤트를 처리하는 경우일지라도, 이벤트 호출에 대해 시스템으로 하여금 빠르게 응답하도록 하여, 디코더에서 연결이 효과적으로 조절되도록 한다. 공지된 단일 프로세서 큐 시스템의 단점이 이것에 의해 극복된다.
반면, 바람직한 실시예는 이벤트 관리기가 스레드 실행을 보류하기 위해 이벤트의 도달을 스케줄러로 발신하는 우선적 시스템에 관해 설명되었지만, 다른 실시가 가능하다. 예를 들면, 시간 분할 시스템에서, 스케줄러는 스레드 큐의 상태를 검사하기 위해 스레드의 실행을 주기적으로 보류할 수 있다. 대안적으로, 스케줄러는 스레드가 처리되는 각 지시 후에 스레드 큐를 검사하기 위해 스레드의 실행을 보류하도록 적용될 수 있다.
메모리 관리기
이해되는 바와 같이, 수신기/디코더의 내용에서, 메모리 공간이 예를 들면, PC 또는 다른 하드디스크 기반 플랫폼에 비교하여 비교적 제한적이기 때문에, 스템 내 메모리 풀의 관리는 특히 중요하다. 다음 설명에서, 메모리 풀은 수신기/디코더의 RAM 내에 메모리 공간에 상응한다. 그러나, 상기에서 언급했듯이, 메모리의 물리적 및 논리적 조직간에 상응은 정확하지 않고 아래에서 설명된 메모리 풀은 수신기/디코더 내에서 FLASH 메모리, EEPROM 등과 같은 물리적 메모리 장치들간에 위치되거나, 공유될 수 있다.
이제 도 8을 참고하여, 이것은 시스템에서 유용한 메모리의 조직을 도시한다. 메모리 공간은 핸들의 풀(4600), 대체 가능한 객체(4610) 및 대체가능하지 않은 객체의 풀(4620) 간에 공유되는 것으로 볼 수 있다.
풀(4610)에서 각 객체는 풀(4600)에 저장된 핸들과 상응하고 그럼으로써 확인된다. 핸들과 상응하는 객체간의 관계는 풀에 접근을 또한 제어하는 메모리 관리 패키지(4274)(도 4에 도시된)에 의해 관리된다. 풀에서 객체에 대한 모든 호출은 핸들에 의해 만들어진다. 풀(4600, 4610) 간의 경계는 이동가능하다. 새로운 객체가 메모리에 저장될 때, 핸들은 풀(4610) 내에 객체의 어드레스에 대한 포인터를 포함하는 풀(4600)에서 생성된다. 이러한 경우에, 핸들의 리스트는 하나가 증가될 것이다. 핸들은 메모리 관리기에 의해 압축을 허용하는 풀에서 리스트 형성으로 조직된다.
객체가 필요시에, 그리고 이용 가능한 공간에 따라서 풀에 할당될 것이다. 객체 할당이 유용한 것보다 하나의 블록에서 보다 많은 공간을 요구함이 필요로 될 때, 메모리에 이미 할당된 객체를 압축하는 것이 요청된다. 메모리에서 객체의 압축이 예를 들면, 복사 압축 알고리즘과 같은 공지된 압축 알고리즘에 따라서 실행될 수 있다. 본 실시예에서, Mark Sweep 압축 알고리즘이 사용된다. 공간을 압축하기 위하여, 객체는 영역(4610)에서 주변으로 이동되어, 이웃 객체간에 특정 영역을 피하여 객체가 더욱 밀집되도록 한다. 이와 같이, 모든 자유 메모리 공간은 풀(4610)에서 새로운 객체를 할당하기 위해 블록에 함께 밀집된다.
상기에서 언급된 바와 같이, 메모리 관리 패키지는 풀(4600)에서의 핸들과 풀(4610)에서의 객체 간의 대응을 유지하고, 풀에서의 객체의 새로운 어드레스가 추후 접근을 위한 동일한 핸들로 갱신될 수 있다.
특정 객체를 접근하기 위한 핸들의 사용은 시스템이 풀에서 메모리 위치를 최적화할 수 있게 하는 한편, 객체의 어드레스를 찾기 위해 핸들을 우선 검색하는 것이 항상 필요하기 때문에, 프로세스는 이러한 객체를 접근하도록 요구되는 시점을 증가시킨다. 특정 상황에서 특정 지정된 이벤트에 상응하는 객체를 위하여 보다 빠른 접근 시간이 요구된다.
이러한 경우에, 객체는 대체가능하지 않은 객체(4620)의 풀에 할당될 수 있다. 이러한 객체의 어드레스는 풀내에 고정된다. 따라서, 핸들을 생성할 필요가 없고, 객체는 시스템에 의해 직접적으로 사용됨으로써, 이들 특정 객체를 위한 접근 절차가 간략화된다. 다시, 풀들(4600, 4610) 간의 경계에서와 같이, 풀(4620, 4610)간에 경계가 풀(4620)에 저장된 정보에 의하여 쉬프트된다.
이벤트에서, 예를 들면, 대체가능하지 않은 객체는 풀(4620)에 할당되고, 풀(4610)에서 대체가능한 객체의 배열에 충분한 공간이고, 대체가능한 객체의 압축은 위에서 설명한 바와 같이 실행될 수 있다. 풀에서 객체가 공간의 최대 양을 자유롭게 하도록 재구성되면, 풀(4620)에서 대체가능하지 않은 블록을 할당하는 것이 가능할 수 있다.
객체가 대체가능하고 객체가 대체가능하지 않고의 선택은 고안자의 재량이다. 예를 들면, 고레벨 애플리케이션이 대체 가능한 한편, 시스템에 상응하는 객체는 이러한 객체의 중요성의 관점에서 대체가능하지 않은 것으로 선택될 수 있다. 특정 예에서, 대체가능한 객체는 이동가능하지 않은 객체로써 고려되도록 정위치에서 일시적으로 고정될 수 있다.
메모리 풀로부터 원하지 않는 객체를 삭제하기 위해서, 시스템은 소위 가베지 수집을 또한 포함한다. 이것은 다른 스레드가 큐에 현재 저장되지 않은 이벤트에 스케줄러에 의해 어드레스되는 최하위 우선순위의 특정 가베지 수집기 스레드의 생성을 수반한다. 실행에서, 그 시점에서 참조되지 않는 풀에 현재 할당된 모든 대체가능한 객체는 자유롭게 될 것이다. 또한, 가베지 수집기 스레드는 상기에서 설명된 라인을 따라서 모든 다른 대체가능한 객체의 압축을 실행할 수 있다.
가베지 수집기 스레드의 생성이 디지털 텔레비전 시스템외에 다른 애플리케이션에서 사용된 다른 다중 스레드 시스템의 명세서에서 공지되었고, 본 명세서에 보다 자세한 설명은 기술하지 않을 것이다. 그러나, 상기에서 기술된 다른 메모리 관리 기술과 조합한 가베지 수집 절차의 사용은 본 명세서에서 특정한 이점을 제공하는 것으로 생각된다.

Claims (37)

  1. 데이터의 송수신을 위한 하나 이상의 하드웨어 장치와 연관된 적어도 하나의 하드웨어 운영장치; 및
    상기 하드웨어 운영장치에 의해 전송되는 이벤트 메시지를 수신하고 해당 이벤트 객체를 하나 이상의, 다른 스레드의 실행이 가능하도록 그 실행동한 중지될 수 있는 스레드에 할당되는 다중 스레드 가상 머신을 포함하는 데이터 처리 장치 포함하는 디지털 시청각 데이터 처리장치.
  2. 제 1항에 있어서, 상기 가상 머신은, 높은 우선순위의 스레드를 생성함으로써 그 실행동안 스레드가 중지될 수 있는 우선적인 다중 스레드 구조를 갖는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  3. 제 1항 또는 2항에 있어서, 상기 가상 머신은 우선순위 편성 스레드 큐의 하나 이상의 스레드에 이벤트 객체를 저장함으로써 상기 하드웨어 운용 장치에 의해 전달된 이벤트 메시지에 응답하는 이벤트 관리기를 포함하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  4. 제 3항에 있어서, 상기 하드웨어 운영 장치에서 상기 이벤트 관리기로 전송된 이벤트 메시지는 상기 데이터 처리 장치의 하나 이상의 장치 관리기에 의해 먼저 처리되는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  5. 제 3항에 있어서, 상기 이벤트 관리기는 상기 가상 머신에 의해 내부적으로 생성되거나 상기 데이터 처리 장치 내부 또는 외부의 고레벨 애플리케이션으로부터 수신된 이벤트 메시지에 응답하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  6. 제 3항에 있어서, 상기 이벤트 관리기는 상기 이벤트 메시지의 우선순위 및/또는 상기 이벤트 메시지의 도착 시간에 따라 스레드 내에서 내부적으로 이벤트 객체를 분류하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  7. 제 3항에 있어서, 상기 가상 머신은 이벤트 관리기가 수신된 이벤트 메시지의 스레드 대응성을 결정할 수 있도록 가능한 이벤트 관리기에 관한 정보를 포함하고 이벤트 관리기에 의해 어드레스가능한 경로 테이블을 더 포함하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  8. 제 7항에 있어서, 상기 경로 테이블은 상기 이벤트 관리기가 스레드내의 이벤트 객체의 우선순위를 결정하도록 하는 정보를 포함하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  9. 제 3항에 있어서, 상기 가상 머신은 상기 우선순위 편성 스레드 큐에 유지된 스레드를 검사하여 그 때에 최상위 우선순위를 갖는 스레드의 실행을 명령하는 스케줄러를 더 포함하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  10. 제 9항에 있어서, 상기 이벤트 관리기는 이벤트 메시지의 도달을 알리고 상기 스케줄러가 상기 스레드 큐에 유지된 스레드의 새로운 상태를 검사하도록 하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  11. 외부 데이터의 송수신을 위한 하나 이상의 하드웨어 장치; 및
    하나 이상의 상기 하드웨어 장치를 통해 다운로드된 해석 언어로 작성된 코드를 수신하기 위한 제 1 가상 머신을 포함하는 데이터 처리 장치를 포함하고,
    상기 가상 머신은 상기 수신된 코드의 구조에 따라 적어도 두개의 해석 언어로 작성된 코드를 구별하고 이러한 코드를 해석 및 실행하는 해석기 수단으로 전달하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  12. 제 11항에 있어서, 상기 가상 머신은 언어들중 하나의 코드 모듈과 관련된 헤더 메시지의 특성을 기반으로 한 적어도 두개의 해석 언어로 해석 코드를 구별하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  13. 제 11항 또는 12항에 있어서, 상기 가상 머신은 언어들중 하나의 코드 모듈과 관련된 헤더 메시지의 유무를 기반으로 한 해석 코드를 구별하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  14. 제 11항에 있어서, 상기 언어들중 적어도 하나는 객체 지향 언어인 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  15. 제 14항에 있어서, 상기 가상 머신은 객체 지향 언어의 클래스 파일과 관련된 헤더 메시지에 의해 상기 객체 지향 언어로 작성된 코드를 식별하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  16. 제 11항에 있어서, 각 해석기 수단은 하나 이상의 함수 라이브러리를 참조하여 코드를 실행하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  17. 제 16항에 있어서, 공통 함수 라이브러리는 다수의 해석기 수단에 의해 공유되는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  18. 제 16항 또는 17항에 있어서, 하나 이상의 해석기 수단은 상기 해석기 수단을 제외한 함수 라이브러리를 참조하여 코드를 실행하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  19. 메모리와, 상기 메모리에 객체를 할당하여 저장하는 메모리 관리기를 포함하는 데이터 처리 장치를 포함하고,
    제 1 일련의 객체는 일련의 핸들을 참조하여 상기 메모리 관리기에 의해 할당되고, 각 핸들은 해당 객체의 메모리 어드레스에 대한 참조를 포함하고, 제 2 일련의 객체는 핸들에 대한 참조없이 상기 메모리에 직접 할당되어 저장되는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  20. 제 19항에 있어서, 상기 제 2 일련의 객체는 상기 메모리 관리기에 의해 상기 메모리에 할당되어 저장되지만, 상기 데이터 처리 장치의 다른 구성요소에 의해 직접 검색될 수 있는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  21. 제 19항 또는 20항에 있어서, 상기 일련의 핸들은 상기 메모리에 저장되는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  22. 제 19항에 있어서, 상기 메모리 관리기는 상기 메모리내의 상기 제 1 일련의 객체를 대체하여 상기 대응하는 핸들에 저장된 어드레스 참조를 바꾸는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  23. 제 22항에 있어서, 상기 제 1 일련의 객체는 상기 현재 저장된 객체의 대체없이 더 이상 객체가 상기 메모리에 저장될 수 없는 경우에 상기 메모리 관리기에 의해 상기 메모리에서 대체되는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  24. 제 22항 또는 23항에 있어서, 상기 제 1 일련의 객체는 압축 알고리즘으로 계산되어 상기 메모리의 자유 메모리 공간의 최대량을 함께 그룹화하기 위하여 상기 압축 알고리즘에 따라 대체되는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  25. 제 19항에 있어서, 상기 제 2 일련의 객체는 상기 메모리내에서 비대체가능한 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  26. 제 19항에 있어서, 상기 데이터 처리 장치는 가상 머신을 포함하고, 상기 메모리 관리기는 상기 가상 머신의 일부를 형성하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  27. 제 26항에 있어서, 상기 가상 머신은, 다른 스레드의 실행이 가능하도록 스레드가 실행하는 동안 일시적으로 중지될 수 있는 다중 스레드 구조를 갖는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  28. 제 27항에 있어서, 상기 다중 스레드 가상 머신은 내부적으로 생성된 불필요한 수집 스레드를 포함하고, 상기 가상 머신은 그 때에 현재 참조되지 않는 메모리의 객체를 자유롭게 하기 위하여 상기 스레드의 실행시 기능하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  29. 제 28항에 있어서, 상기 불필요한 수집 스레드의 실행은 자유 메모리 공간의 최대량을 함께 그룹화하기 위하여 압축 알고리즘에 따라 상기 제 1 일련의 객체의 대체를 상기 가상머신이 수행하도록 하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  30. 제 19항에 있어서, 상기 메모리는 하나 이상의 RAM으로 정의되는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  31. 삭제
  32. 제 1항에 있어서, 상기 하드웨어 장치들중 하나는 MPEG 디멀티플렉서를 포함하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  33. 제 1항에 있어서, 상기 하드웨어 장치는 동조기, 직렬 인터페이스, 병렬 인터페이스, 모뎀 및 하나 이상의 스마트 카드 판독기중 적어도 하나를 포함하는 것을 특징으로 하는 디지털 시청각 데이터 처리장치.
  34. 데이터의 송수신을 위한 하나 이상의 하드웨어 장치와 연관된 하드웨어 운영 수단; 및
    상기 하드웨어 운영 수단에 의해 전송된 이벤트 메시지를 수신하는 수단과, 해당 이벤트 객체를 하나 이상의 스레드에 할당하는 수단과, 다른 스레드의 실행이 가능하도록 그 실행동안 스레드를 중지시키는 수단을 포함하는 다중 스레드 가상 머신을 포함하는 디지털 시청각 데이터 처리 장치.
  35. 외부 데이터의 송수신을 위한 하나 이상의 하드웨어 장치; 및
    하나 이상의 상기 하드웨어 장치를 통해 다운로드된 해석 언어로 작성된 코드를 수신하는 수단과, 상기 수신된 코드의 구조에 따라 적어도 두개의 해석 언어로 작성된 코드간을 구별하는 수단과, 해석 및 실행을 위한 해석기 수단으로 상기 코드를 전달하는 수단을 포함하는 가상 머신을 포함하는 디지털 시청각 데이터 처리 장치.
  36. 메모리; 및
    해당 객체의 메모리 어드레스에 대한 참조를 포함하는 일련의 핸들을 참조하여 제 1 일련의 객체를 할당하는 수단과, 핸들에 대한 참조없이 상기 메모리에 직접 제 2 일련의 객체를 할당하여 저장하는 수단을 포함하는 메모리 관리기를 포함하는 디지털 시청각 데이터 처리 장치.
  37. 삭제
KR1020007003790A 1997-10-07 1998-10-07 다중 스레드 데이터 프로세서 KR100558674B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
EP97402430.9 1997-10-07
EP97402362.4 1997-10-07
EP97402361.6 1997-10-07
EP97402430A EP0908821A1 (en) 1997-10-07 1997-10-07 Digital code interpreter
EP97402361A EP0909091A1 (en) 1997-10-07 1997-10-07 Memory manager
EP97402362A EP0909094A1 (en) 1997-10-07 1997-10-07 Multithread data processor
PCT/IB1998/001627 WO1999018730A2 (en) 1997-10-07 1998-10-07 Multithread data processor

Publications (2)

Publication Number Publication Date
KR20010031004A KR20010031004A (ko) 2001-04-16
KR100558674B1 true KR100558674B1 (ko) 2006-03-10

Family

ID=27238735

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007003790A KR100558674B1 (ko) 1997-10-07 1998-10-07 다중 스레드 데이터 프로세서

Country Status (18)

Country Link
US (1) US8201154B2 (ko)
EP (2) EP1021918A2 (ko)
JP (1) JP2001519579A (ko)
KR (1) KR100558674B1 (ko)
CN (1) CN1281613A (ko)
AU (1) AU9363298A (ko)
BR (1) BR9813024A (ko)
CA (1) CA2304862C (ko)
HR (1) HRP20000166A2 (ko)
HU (1) HUP0100296A3 (ko)
ID (1) ID24808A (ko)
IL (1) IL135440A0 (ko)
NO (1) NO20001652L (ko)
PL (1) PL340331A1 (ko)
RU (1) RU2227378C2 (ko)
TR (3) TR200003046T2 (ko)
UA (1) UA55489C2 (ko)
WO (1) WO1999018730A2 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6300962B1 (en) * 1998-12-23 2001-10-09 Scientific-Atlanta, Inc. Method and apparatus for providing reliable graphic memory operations in a set-top box environment
GB9914925D0 (en) * 1999-06-26 1999-08-25 Koninkl Philips Electronics Nv Computer system for mheg applications
WO2001015431A1 (de) * 1999-08-25 2001-03-01 Deutsche Telekom Ag Endgerät zum anschluss an verschiedene netze
AU7098500A (en) * 1999-09-01 2001-03-26 Intel Corporation Branch instruction for processor
JP4268290B2 (ja) 1999-10-29 2009-05-27 パナソニック株式会社 受信装置および受信方法
JP2001313620A (ja) * 2000-02-03 2001-11-09 Matsushita Electric Ind Co Ltd デジタル放送システム
EP1304871A3 (en) 2001-08-21 2003-06-18 Canal+ Technologies Société Anonyme Method and apparatus for a receiver/decoder
CN100359506C (zh) * 2001-12-20 2008-01-02 杉桥技术公司 能够高效处理汇聚设备应用的多线程处理器
US7363474B2 (en) * 2001-12-31 2008-04-22 Intel Corporation Method and apparatus for suspending execution of a thread until a specified memory access occurs
CN100356326C (zh) * 2003-03-21 2007-12-19 清华大学 基于操作栈记录的恢复的Java线程迁移的方法
JP2005102150A (ja) 2003-08-29 2005-04-14 Matsushita Electric Ind Co Ltd 放送受信装置
US7752635B2 (en) * 2003-12-18 2010-07-06 Intel Corporation System and method for configuring a virtual network interface card
GB0401781D0 (en) * 2004-01-28 2004-03-03 Koninkl Philips Electronics Nv Digital broadcasting terminal
GB0420442D0 (en) * 2004-09-14 2004-10-20 Ignios Ltd Debug in a multicore architecture
WO2006069538A1 (fr) * 2004-12-31 2006-07-06 Juhang Zhong Systeme de traitement de donnees avec pluralite de sous-systemes et procede correspondant
US7882339B2 (en) * 2005-06-23 2011-02-01 Intel Corporation Primitives to enhance thread-level speculation
US8042109B2 (en) * 2006-03-21 2011-10-18 Intel Corporation Framework for domain-specific run-time environment acceleration using virtualization technology
US7584344B2 (en) 2006-05-02 2009-09-01 Freescale Semiconductor, Inc. Instruction for conditionally yielding to a ready thread based on priority criteria
US8572223B2 (en) * 2006-07-20 2013-10-29 Charles Schwab & Co., Inc. System and method for utilizing event templates in an event manager to execute application services
CN101242392B (zh) * 2007-02-06 2012-02-08 国际商业机器公司 用于系列服务消息处理的方法、设备和系统
EP2140693A4 (en) * 2007-04-30 2013-05-29 Thales Avionics Inc SERVER DESIGN AND APPROPRIATE PROCEDURE
US8250573B2 (en) * 2007-12-27 2012-08-21 Intel Corporation Audio subsystem sharing in a virtualized environment
US8561108B2 (en) * 2008-03-25 2013-10-15 International Business Machines Corporation Video episode order adherence
US8689266B2 (en) 2008-03-25 2014-04-01 International Business Machines Corporation Dynamic rebroadcast scheduling of videos
RU2470351C2 (ru) * 2008-04-01 2012-12-20 Шарп Кабусики Кайся Аудиовизуальная стоечная система
CN101714165B (zh) * 2009-12-08 2011-08-17 青岛海信宽带多媒体技术有限公司 一种数据导入的方法
CN102779035A (zh) * 2011-05-12 2012-11-14 华硕电脑股份有限公司 事件产生的处理方法及处理系统
CN102685010B (zh) * 2012-05-16 2016-05-18 河南辉煌科技股份有限公司 实现超大规模连接tcp/ip网络的通信方法
JP5912175B2 (ja) * 2012-08-21 2016-04-27 ソニー株式会社 情報処理装置、情報処理方法、プログラムおよびサーバ装置
CN103345385A (zh) * 2013-07-29 2013-10-09 北京汉邦高科数字技术股份有限公司 一种串行事件转换成并行事件的方法
CN107295285B (zh) * 2017-08-11 2018-07-27 腾讯科技(深圳)有限公司 视频数据的处理方法、处理装置及存储介质
CN108446147B (zh) * 2018-03-23 2021-01-12 携程旅游网络技术(上海)有限公司 移动终端的多线程计算方法及系统
US10691490B2 (en) * 2018-07-06 2020-06-23 Apple Inc. System for scheduling threads for execution
CN117439997B (zh) * 2023-12-20 2024-03-08 天津华来科技股份有限公司 一种基于模块化设计的通用p2p通信架构构建方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5063500A (en) * 1988-09-29 1991-11-05 Ibm Corp. System for executing segments of application program concurrently/serially on different/same virtual machine
US5243518A (en) * 1991-05-03 1993-09-07 Xerox Corporation Document services architecture
CA2077273C (en) * 1991-12-12 1996-12-03 Mike H. Conner Language neutral objects
FR2688611A1 (fr) * 1992-03-12 1993-09-17 Bull Sa Utilisation d'un langage dont le typage porte sur le contenu des variables et permettant de manipuler des constructions complexes.
FR2694105B1 (fr) * 1992-07-22 1994-11-25 Bull Sa Utilisation d'un langage à interprète embarqué pour la réalisation d'un outil interactif de définition d'interface utilisateurs.
US5446901A (en) * 1993-06-30 1995-08-29 Digital Equipment Corporation Fault tolerant distributed garbage collection system and method for collecting network objects
JP3595564B2 (ja) * 1993-10-27 2004-12-02 キヤノン株式会社 文書処理装置及びその方法
US5650941A (en) * 1994-09-07 1997-07-22 Intel Corporation Computer architecture for creating and manipulating displayable objects
US5635979A (en) * 1994-05-27 1997-06-03 Bell Atlantic Dynamically programmable digital entertainment terminal using downloaded software to control broadband data operations
US5625789A (en) * 1994-10-24 1997-04-29 International Business Machines Corporation Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle
US5630757A (en) * 1994-11-29 1997-05-20 Net Game Limited Real-time multi-user game communication system using existing cable television infrastructure
JPH096633A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム
WO1997023997A1 (en) * 1995-12-22 1997-07-03 British Sky Broadcasting Limited Improvements in receivers for television signals
CA2262120A1 (en) * 1996-09-17 1998-03-26 Marcia A. Casement Television schedule system with pop-up action menu and icons
US5875335A (en) * 1996-09-30 1999-02-23 Apple Computer, Inc. Parameter marshaling techniques for dynamic object-oriented programming languages
US5966637A (en) * 1996-11-12 1999-10-12 Thomson Consumer Electronics, Inc. System and method for receiving and rendering multi-lingual text on a set top box
US5978585A (en) * 1997-03-27 1999-11-02 Inprise Corporation Development system with improved methods for recompiling dependent code modules
EP1308838A3 (en) * 2001-10-31 2007-12-19 Aplix Corporation Intermediate code preprocessing apparatus, intermediate code execution apparatus, intermediate code execution system, and computer program product for preprocessing or executing intermediate code

Also Published As

Publication number Publication date
UA55489C2 (uk) 2003-04-15
TR200003045T2 (tr) 2001-02-21
WO1999018730A3 (en) 1999-08-19
US8201154B2 (en) 2012-06-12
CN1281613A (zh) 2001-01-24
KR20010031004A (ko) 2001-04-16
PL340331A1 (en) 2001-01-29
BR9813024A (pt) 2000-08-15
EP1339222A2 (en) 2003-08-27
AU9363298A (en) 1999-04-27
HRP20000166A2 (en) 2000-10-31
ID24808A (id) 2000-08-24
NO20001652L (no) 2000-06-07
JP2001519579A (ja) 2001-10-23
CA2304862A1 (en) 1999-04-15
TR200003046T2 (tr) 2001-01-22
CA2304862C (en) 2011-12-06
NO20001652D0 (no) 2000-03-30
EP1339222A3 (en) 2005-08-31
WO1999018730A2 (en) 1999-04-15
HUP0100296A2 (hu) 2001-05-28
RU2227378C2 (ru) 2004-04-20
EP1021918A2 (en) 2000-07-26
TR200000922T2 (tr) 2000-07-21
HUP0100296A3 (en) 2002-12-28
IL135440A0 (en) 2001-05-20
US20050132400A1 (en) 2005-06-16

Similar Documents

Publication Publication Date Title
KR100558674B1 (ko) 다중 스레드 데이터 프로세서
EP0909094A1 (en) Multithread data processor
JP4895424B2 (ja) 複数ユーザ用マルチメディア・ターミナル
US7984478B2 (en) Method and apparatus for a receiver/decoder
EP0866612B1 (en) Program reception/execution apparatus which can start execution of program even when only part of program is received, and program transmitter for it
RU2257687C2 (ru) Таблица данных о приложениях для системы цифровой передачи, предоставляющей множество сервисов
AU2002334278A1 (en) Method and apparatus for a receiver/decoder
KR100559158B1 (ko) Ieee 셋탑 박스 디바이스 드라이버
RU2000111501A (ru) Многопоточная система обработки данных
US6609144B1 (en) Program reception/execution apparatus that can commence execution of a machine program having only received the program in part, and a program transmission apparatus that enables such execution
EP0908821A1 (en) Digital code interpreter
EP0909091A1 (en) Memory manager
EP1019836B1 (en) Modem control
MXPA00003387A (en) Multithread data processor
CZ20001257A3 (cs) Zařízení pro zpracování digitálních audiovizuálních dat
MXPA00000776A (en) Ieee set top box device driver

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: 20130220

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140220

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150224

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160203

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 13

EXPY Expiration of term