KR20000076405A - 엑세스 제어 시스템 - Google Patents
엑세스 제어 시스템 Download PDFInfo
- Publication number
- KR20000076405A KR20000076405A KR1019997008509A KR19997008509A KR20000076405A KR 20000076405 A KR20000076405 A KR 20000076405A KR 1019997008509 A KR1019997008509 A KR 1019997008509A KR 19997008509 A KR19997008509 A KR 19997008509A KR 20000076405 A KR20000076405 A KR 20000076405A
- Authority
- KR
- South Korea
- Prior art keywords
- program
- component
- decoder
- identifier
- receiver
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 70
- 238000004891 communication Methods 0.000 claims abstract description 11
- 230000005540 biological transmission Effects 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 27
- 239000000872 buffer Substances 0.000 description 20
- 230000002452 interceptive effect Effects 0.000 description 12
- 239000003795 chemical substances by application Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 241000607056 Stenodus leucichthys Species 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 206010012177 Deja vu Diseases 0.000 description 1
- 241000649053 Spinach curly top Arizona virus Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/007—Transform coding, e.g. discrete cosine transform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/21815—Source of audio or video content, e.g. local disk arrays comprising local storage units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/23614—Multiplexing of additional data and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/4302—Content synchronisation processes, e.g. decoder synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4348—Demultiplexing of additional data and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/47815—Electronic shopping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17309—Transmission or handling of upstream communications
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Computer Security & Cryptography (AREA)
- Discrete Mathematics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
프로그램에 의해 컴퓨터 시스템의 적어도 하나의 부품에 엑세스를 제공하기 위한 방법 및 엑세스 제어 시스템이 제공된다. 상기 방법은: 상기 시스템의 상기 또는 각각의 부품과 연결되며 각각 디바이스 식별자를 가지는 논리 디바이스를 저장하는 단계; 상기 프로그램에 프로그램 식별자를 할당하는 단계; 및 상기 프로그램과 상기 또는 각각의 논리 디바이스 사이의 공통 인터페이스에 상기 또는 각각의 논리 디바이스의 상기 디바이스 식별자 및 상기 프로그램 식별자를 포함하는 신호를 상기 프로그램으로부터 출력하여, 상기 인터페이스를 통하여 상기 또는 각각의 논리 디바이스와 상기 프로그램 사이에 통신 채널을 형성하는 단계를 포함한다.
Description
주된 용도가 방송용 텔레비젼 신호기들(broadcast television signals), 그 중에서도 전적으로는 아니지만 특히 위성 텔레비젼 시스템들을 위한 용도로 의도되었던 디지틀 전송 시스템들(digital transmission systems)의 출현은 이러한 디지틀 전송 시스템들이 다른 목적을 위하여 이용될 수 있는 가능성도 제시하였다. 이러한 다른 목적들 중 하나가 최종 사용자(end user)와의 쌍방 통신(interactivity)을 제공하는 것이다.
이것을 실행하는 하나의 방법으로서, 텔레비젼 신호의 수신 수단으로서 이용되는 수신기/디코더 상에 어플리케이션(application)을 실행하는 방법이 있다. 어플리케이션을 위한 코드(code)는 수신기/디코더 내에 영구적으로 저장될 수 있다. 그러나, 이러한 방법에는 다소 제한이 따른다. 바람직하게는, 수신기/디코더는 요구되는 어플리케이션을 위한 코드를 다운로드(download) 받을 수 있어야 한다. 이러한 방식으로, 더욱 다양한 방법이 제공될 수 있으며, 어플리케이션들은 사용자측의 어떠한 작동이 없이도 요구되는 대로 업데이트 될(updated) 수 있다.
수신기/디코더에 의한 실행을 위한 어플리케이션들은 다양한 방송 장비(broadcast suppliers)에 의해 발진된다. 전형적으로, 수신기/디코더는 외부 유니트들에 연결되는 직렬 인터페이스(serial interface) 또는 병렬 인터페이스(parallel interface)와 같은 많은 인터페이스들을 가진다. 이러한 인터페이스들의 디바이스 드라이버들(device drivers)은 수신기/디코더의 제조자에 의해 공급된다. 수신기/디코더의 다중 제조 소스들(sources)과 전술한 어플리케이션의 다중 소스들에 있어서는, 하나의 어플리케이션이 매 수신기/디코더 마다 동일한 방식으로 작동해야(behave) 하는 것은 매우 중요하며, 각각의 수신기/디코더는 모든 어플리케이션을 동일하고 정확한 방법으로 실행시켜야 한다.
본 발명은 엑세스 제어 시스템에 관한 것으로, 특히 프로그램에 의하여 컴퓨터 시스템(computer system)의 적어도 하나의 부품에 엑세스(access)를 제공하기 위한 방법에 관한 것이며, 더욱 상세하게는 방송용 디지틀 신호기들(broadcast digital signals)의 수신기/디코더(receiver/decoder)에 사용되는 컴퓨터 시스템에 관한 것이다.
이하에서는, 본 발명의 특성에 대해 첨부된 도면을 참조하여 예를 들어 설명될 것이며, 첨부된 도면에서는,
도 1 은 본 발명의 바람직한 실시예에 따른 디지틀(digital) 텔레비젼 시스템의 전체 구조를 보여주기 위한 도면이며,
도 2 는 디지틀 시스템의 쌍방향 통신 시스템(interactive system)의 전체 구조를 보여주기 위한 도면이며,
도 3 은 쌍방향(interactive) 수신기/디코더의 메모리(memory) 내로 다운로드되는(downloaded) 모듈(module) 내의 파일들(files)의 배열을 나타낸 도면이며,
도 5 는 수신기/디코더의 인터페이스들(interfaces)의 개략적인 선도이며,
도 6 은 수신기/디코더 내의 소프트웨어(software)의 구조를 나타내는 도면이며, 그리고
도 7 은 디바이스 매니저, 다수의 클라이언트들(clients) 및 다수의 디바이스들 사이의 연결의 하나의 예를 나타내는 도면이다.
따라서, 본 발명의 첫 번째 태양에 따르면,
프로그램에 의해 컴퓨터 시스템의 적어도 하나의 부품에 엑세스를 제공하기 위한 방법에 있어서,
상기 시스템의 상기 또는 각각의 부품과 연결되며 각각 디바이스 식별자(device identifier)를 가지는 논리 디바이스(logical device)를 저장하는(store) 단계;
상기 프로그램에 프로그램 식별자(program identifier)를 할당하는(assigning) 단계; 그리고
상기 프로그램과 상기 또는 각각의 논리 디바이스 사이의 공통 인터페이스(common interface)에 상기 또는 각각의 논리 디바이스의 상기 디바이스 식별자 및 상기 프로그램 식별자를 포함하는 신호를 상기 프로그램으로부터 출력(outputting)하여, 상기 인터페이스를 통하여 상기 또는 각각의 논리 디바이스와 상기 프로그램 사이에 통신 채널을 형성하는(create) 단계를 포함하는 것을 특징으로 하는 프로그램에 의해 컴퓨터 시스템의 적어도 하나의 부품에 엑세스를 제공하기 위한 방법이 제공된다.
상기 방법에 의하여, 수신기/디코더의 "하드웨어(hardware)"와 컴퓨터 시스템의 여러 가지 프로그램들 사이에, 하드웨어와 프로그램들의 소스들에 무관하게 공통 인터페이스가 제공된다.
상기 신호는, 디바이스와 연결된 부품의 상태의 변화를 나타내는 하나의 개별적 논리 디바이스로부터의 메시지 출력(message output)의 프로그램에 의한 커맨드 구현 수신(command enabling receipt)을 추가로 포함한다.
따라서, 예를 들어 컴퓨터 시스템의 스마트카드(smartcard) 판독기(reader) 내로의 스마트카드의 삽입 또는 컴퓨터 시스템의 직렬 인터페이스에 의한 메시지의 수신과 같이, 부품들 중의 하나에서 발생하는 "예기치 못한 사건(unexpected event)"에 대해 하나의 프로그램이 경고될 수 있다.
이 메시지는 상기 프로그램으로의 후속 전송을 위하여 상기 컴퓨터 시스템의 큐우 수단(queue means)에 임시로 저장될 수 있다. 다시 말해, 상기 프로그램은 상기 메시지를 즉시 공급받을 필요가 없음을 논리 디바이스에 대해 통지할 수 있다.
바람직하게는, 상기 큐우 수단은 다수의 큐우 들(queues)을 포함하며, 상기 큐우 각각은 상기 큐우 수단으로부터 상기 프로그램으로 메시지가 전송되는 순서(order)를 지시하는 하나의 개별적 우선 순위 레벨(priority level)을 포함하며, 상기 신호는 상기 메시지가 임시적으로 저장되는 상기 큐우의 상기 우선 순위 레벨을 추가로 포함한다.
따라서, 상기 프로그램은, 상기 큐우 수단에 의해 상기 메시지가 처리되는 방편으로서의 우선 순위 레벨을 지시함으로써, 상기 큐우 수단에 의해 상기 메시지가 처리되어야 할 "긴급성(urgency)"을 지정한다.
본 발명의 두 번째 태양에 따르면,
전술한 방법을 사용하는 컴퓨터 시스템의 적어도 하나의 부품에 다수의 프로그램에 의하여 엑세스를 제공하기 위한 방법으로서, 각각의 프로그램이 상기 인터페이스를 통하여 상기 또는 각각의 부품을 엑세스하는(accessing) 방법이 제공된다.
따라서, 본 발명은, 하나의 논리 디바이스와 하나 이상의 프로그램들 사이의 통신을 위한, 그리고 하나의 프로그램과 하나 이상의 논리 디바이스들 사이의 통신을 위한 단일의 공통 인터페이스를 제공한다.
본 발명의 세 번째 태양에 따르면,
컴퓨터 시스템의 하나의 부품과 하나의 프로그램 사이에서 데이터(data)를 전송하는 방법에 있어서,
전술한 방법을 사용하여 상기 프로그램에 의하여 상기 부품에 엑세스를 제공하는 단계; 및
상기 프로그램 식별자, 공통 인터페이스로의 논리 디바이스의 디바이스 식별자, 부품에 연결된 상기 논리 디바이스에 의한 상기 부품의 커맨드 지시 작동(command instructing operation), 상기 디바이스에 의한 상기 부품으로의 입력 데이터 용 어드레스(address) 및 상기 논리 디바이스로의 상기 부품에 의한 데이터 출력(data output) 용 어드레스를 포함하는 신호를 상기 프로그램으로부터 상기 공통 인터페이스로 후속적으로 출력하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 하나의 부품과 하나의 프로그램 사이에서 데이터를 전송하기 위한 방법이 제공된다.
본 발명의 네 번째 태양에 따르면,
컴퓨터 시스템의 하나의 부품과 하나의 프로그램 사이에서 데이터를 전송하는 방법에 있어서,
전술한 방법을 사용하여 상기 프로그램에 의하여 상기 부품에 엑세스를 제공하는 단계; 및
상기 프로그램 식별자, 공통 인터페이스로의 논리 디바이스의 디바이스 식별자, 부품에 연결된 상기 논리 디바이스에 의한 상기 부품의 커맨드 지시 작동, 상기 디바이스와 연결된 상기 부품의 상태의 변화를 나타내는 각각의 논리 디바이스로부터의 메시지 출력(message output)을 상기 프로그램으로 전송되기 전에 임시로 저장하기 위한 상기 큐우의 상기 우선 순위 레벨, 상기 디바이스에 의한 상기 부품으로의 입력 데이터 용 어드레스 및 상기 논리 디바이스로의 상기 부품에 의한 출력 데이터 용 어드레스를 포함하는 신호를 상기 프로그램으로부터 상기 공통 인터페이스로 후속적으로 출력하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 하나의 부품과 하나의 프로그램 사이에서 데이터를 전송하기 위한 방법이 제공된다.
따라서, 일단 상기 프로그램과 상기 부품 사이에 엑세스가 제공된 후에는, 그로써 형성된 통신 루트(route)는 상기 프로그램으로부터 부품으로 및 그 역으로 데이터를 전송하기 위한 루트를 제공하기 위해 이용될 수 있다.
상기 프로그램 및/또는 상기 또는 각각의 논리 디바이스는 하나의 부품을 통하여 상기 컴퓨터 시스템에 입력될 수 있다. 이것은 컴퓨터 시스템에서 논리 디바이스와 프로그램의 편리한 다운로딩(downloading)과 업데이팅(up-dating)을 가능하게 한다.
바람직하게는, 상기 또는 각각의 부품은, MPEG 플로우 튜너(MPEG flow tuner), 직렬 인터페이스, 병렬 인터페이스, 모뎀 및 스마트카드 판독기 중의 적어도 하나를 포함한다.
본 발명의 다섯 번째 태양에 따르면, 본 발명은,
프로그램에 의해 컴퓨터 시스템의 적어도 하나의 부품에 엑세스를 제공하기 위한 장치로서, 상기 또는 각각의 부품에 연결되는 논리 디바이스가 상기 시스템에 저장되고, 상기 또는 각각의 논리 디바이스는 각각의 디바이스 식별자를 가지는 장치로서,
상기 프로그램에 프로그램 식별자를 할당하기 위한 수단; 및
상기 또는 각각의 논리 디바이스의 상기 디바이스 식별자 및 상기 프로그램 식별자를 포함하며 상기 프로그램으로부터 출력되는 신호에 따라 상기 또는 각각의 논리 디바이스와 상기 프로그램 사이에 통신 채널을 형성하기 위한 수단을 포함하는 것을 특징으로 하는 프로그램에 의해 컴퓨터 시스템의 적어도 하나의 부품에 엑세스를 제공하기 위한 장치를 제공한다.
상기 장치는 상기 디바이스와 연결된 상기 부품의 상태의 변화를 나타내는 각각의 논리 디바이스로부터의 메시지 출력의 상기 프로그램에 의하여 수신(receipt)를 가능하게 하기 위한 수단을 추가로 포함할 수 있다.
바람직하게는, 상기 컴퓨터 시스템은 상기 프로그램으로의 후속 전송을 위하여 상기 디바이스에 의한 메시지 출력을 임시로 저장하기 위한 큐우 수단을 추가로 포함한다. 상기 큐우 수단은, 상기 큐우 수단으로부터 상기 프로그램으로 메시지들이 전송되는 순서를 지시하는 하나의 개별적인 우선 순위 레벨을 각각 가지는 다수의 큐우 들을 포함할 수 있다.
상기 컴퓨터 시스템은 상기 디바이스에 의한 상기 부품으로의 입력 데이터와 상기 부품에 의한 상기 논리 디바이스로의 출력 데이터를 상기 공통 인터페이스에로 저장하기 위한 수단을 추가로 포함한다.
바람직하게는, 상기 또는 각각의 논리 부품은 하나의 디바이스 드라이버를 통하여 각각의 관련된 부품에 연결된다.
본 발명의 여섯 번째 태양에 따르면,
봄 발명은 전술한 바와 같은 장치를 포함하는 방송 시그널들을 수신하기 위한 수신기/디코더를 제공한다.
바람직하게는, 상기 수신기/디코더는 압축된 MPEG 형(MPEG-type) 신호를 수신하기 위한 수단, 수신된 신호를 복호화하여(decoding) 텔레비젼 신호를 제공하기 위한 제공하기 위한 수단 및 상기 텔레비젼 신호를 텔레비젼에 공급하기 위한 수단을 추가로 포함한다.
도 1 에는 디지틀 텔레비젼 시스템(1000)의 전체 개략도가 도시되었다. 본 발명은 압축된 디지틀 신호들을 전송하기 위해 공지의 MPEG-2 압축 시스템을 이용하는 거의 종래의 디지틀 텔레비젼 시스템(2000)을 포함한다. 더욱 상세히 설명하면, 방송 센터(broadcast center)의 MPEG-2 압축기(2002)는 디지틀 신호 스트림(digital signal stream), 전형적으로는 비디오 신호들의 스트림(stream)을 수신한다. 압축기(2002)는 링키지(linkage; 2006)에 의하여 멀티플렉서(multiplexer) 및 스크램블러(scrambler; 2004)에 연결된다. 멀티플렉서(2004)는 다수의 추가 입력 신호들을 수신하고, 하나 이상의 트랜스포트 스트림들(transport streams)을 어셈블(assemble)하며, 그리고 압축된 디지틀 신호들을 링키지(2010)를 통해 방송 센터의 송신기(transmitter; 2008)에 전송한다. 링키지(2010)는 당연히 텔레컴 링크들(telecom links)을 포함한 다양한 형태를 가진다. 송신기(2008)는 전자 신호들(電磁 信號; electromagnetic signals)을 업링크(uplink; 2012)를 통하여 위성 트랜스폰더(satellite transponder; 2014)를 향하여 전송한다. 위성 트랜스폰더(2014)에서는, 그 신호들이 전자적으로 처리된 후, 최종 사용자가 소유하거나 임차하는 전통적인 디쉬(dish; 접시형상의 위성 안테나)의 형태인 지상의 수신자(2018)에게 가상의 다운링크(notional downlink; 2016)를 통하여 방송된다. 수신자(2018)에 의해 수신되는 신호들은 최종 사용자가 소유하거나 임차하며 최종 사용자의 텔레비젼 세트(television set; 2022)에 연결된 종합 수신기/디코더(integrated receiver/decoder; 2020)에 전송된다. 수신기/디코더(2020)는 압축된 MPEG-2 신호를 텔레비젼 세트(2022) 용의 텔레비젼 신호로 복호화한다(decodes).
컨디셔널 엑세스 시스템(conditional access system; 3000)은 멀티플렉서(2004) 및 수신기/디코더(2020)에 연결되며, 부분적으로는 방송 센터에 그리고 부분적으로는 디코더에 배치된다. 이로 인해, 최종 사용자는 하나 이상의 방송 공급자들로부터의 디지틀 텔레비젼 방송들에 엑세스할 수 있게 된다. 스마트카드는, 방송 공급자에 의해 판매되는 하나 또는 수 개의 텔레비젼 프로그램들과 같은 상업적 매물들(commercial offers)에 관련된 메시지들을 해독할 수 있는 기능을 하는 것으로서, 수신기/디코더(2020) 내로 삽입될 수 있다. 디코더(2020)와 스마트카드를 사용함으로써, 최종 사용자는 가입 방식(subscription mode) 또는 유료 시청 방식(pay-per-view mode)으로 상업적 매물들을 구입할 수 있다.
쌍방향 시스템(interactive system; 4000) 역시 멀티플렉서(2004) 및 수신기/디코더(2020)에 연결되고 또한 부분적으로는 방송 센터에 그리고 부분적으로는 디코더에 배치되며, 변복조된 백 채널(modemmed back channel; 4002)을 통하여 최종 사용자로 하여금 여러 가지 어플리케이션들에 의해 쌍방향 작동할 수 있게 한다.
도 2 는 본 발명의 디지틀 텔레비젼 시스템(1000)의 쌍방향 텔레비젼 시스템(4000)의 전체 구조를 나타낸다.
예를 들어, 쌍방향 시스템(4000)은 최종 사용자가 그의 텔레비젼 세트를 통하여 화면상의 목록으로 부터 물건을 사고, 지역 뉴스와 필요한 날씨 지도를 문의하고, 게임을 하는 등의 활동을 할 수 있게 한다.
쌍방향 시스템(4000)은 전체적으로 네개의 주 구성요소를 포함한다:
방송 공급자로 하여금 어플리케이션을 창작하고, 디버깅하고(debug), 시험할 수 있도록 하기 위한 방송 센터(또는 기타의 장소)에서의 오소링(authoring) 기구(4004);
최종 사용자에게 방송될 수 있도록 MPEG-2 전송 스트림(전형적으로는 그것의 사적 구간) 내로 삽입되도록, 방송 공급자로 하여금 어플리케이션들 및 데이타를 준비하고, 점검하고(authenticate), 포맷할(format) 수 있게 하는 오소링(authoring) 기구(4004)에 연결된, 방송 센터에서의 어플리케이션 및 데이타 서버(server;4006);
최종 사용자로 하여금 어플리케이션들을 수신하고, 점검하고, 디컴프레스하고(decompress), 그리고 실행을 위해 수신기/디코더(2020)의 작업 메모리(working memory; 2024) 내로 로딩할 수 있도록, 최종 사용자가 소유 또는 임차하는 수신기/디코더(2020) 내에 장착된 실행 가능한 코드이며 하드 웨어 및 작동 시스템과는 독립적인 실행 시간 엔진(run time engine; RTE; 4008)을 구비하는 버츄얼 머신(virtual machine); 및
최종 사용자의 요구에 따라, 서버(4006)를 지시하는 신호들로 하여금 데이타 및 어플리케이션들을 MPEG-2 전송 스트림 내로 삽입할 수 있게 하는, 수신기/디코더(2020)과 어플리케이션 및 데이타 서버(4006) 사이의 모뎀드 백 채널(4002).
쌍방향 텔레비젼 시스템은, 수신기/디코더의 기능과 그안에 내장된 여러가지 디바이스들을 제어하는 "어플리케이션들"을 이용하여 작동한다. 어플리케이션들은 엔진(4008) 내에서 "리소스 파일들(resource files)"로서 표현된다. "모듈"은 리소스 파일들 및 데이타의 조합(set)이다. 하나의 어플리케이션을 만들기 위해 몇개의 모듈들이 요구될 수 있다. 리시버/디코더의 "메모리 볼륨(memory volume)"은 모듈들의 저장 공간이다. 모듈들을 다운로드하기 위하여 "인터페이스(interface)"가 사용된다. 모듈들은 MPEG-2 전송 스트림으로 부터 수신기/디코더(2020) 내로 다운로드된다.
상기 문단에서 언급된 요소들에 대하여 이하에서 더욱 상세히 설명한다.
본 명세서에서, 어플리케이션은, 바람직하게는 수신기/디코더(2020)의 고 레벨 기능들을 제어하기 위한 하나의 컴퓨터 코드이다. 예를 들어, 최종 사용자가 원격 조정기(remote controller)의 촛점을 텔레비젼 세트(2022)의 스크린 상에 보이는 목표 버튼(button object) 상에 위치시키고 작동 키이(validation key)를 눌렀을 때, 그 버튼과 관련된 지시 시퀀스(instruction sequence)를 실행한다.
쌍방향 어플리케이션은 메뉴들을 제안하고, 최종 사용자의 요구에 따른 명령을 실행하며, 어플리케이션의 목적에 관련된 데이타를 제공한다. 어플리케이션들은 레지던트 어플리케이션들(resident applications)이거나, 즉 수신기/디코더(2020)의 ROM {또는 플래쉬(FLASH) 또는 다른 비휘발성 메모리(non-volatile memory)}에 저장되거나, 또는 수신기/디코더(2020)의 RAM 또는 플래쉬 메모리 내로 방송 및 다운로드될 수 있다.
어플리케이션들의 몇가지 예를 들면 다음과 같다:
* 초기 어플리케이션(Initiating Application). 수신기/디코더(2020)는, 수신기/디코더(2020)으로 하여금 MPEG-2 환경에서 즉시 가동될 수 있게 하는 모듈들의 가변성 집합(이 용어는 이하에서 좀 더 상세히 설명됨)인 잔류 초기 어플리케이션(resident initiating application)을 구비한다. 이 어플리케이션은, 필요한 경우 방송 공급자에 의해 수정될 수 있는 핵심 특성을 제공한다. 또한, 잔류 어플리케이션과 다운로드된 어플리케이션들 사이에 인터페이스를 제공한다.
* 스타트업 어플리케이션(Startup Application). 스타트업 어플리케이션은, 다운로드 또는 잔류, 어느 쪽이든 임의의 어플리케이션이 수신기/디코더(2020)에서 실행될 수 있게 한다. 이 어플리케이션은, 어플리케이션을 시작시키기 위해 서비스의 도착시에 실행되는 부트스트랩(bootstrap)으로서 기능한다. 스타트업은 RAM 내로 다운로드되며, 따라서 쉽게 업데이트 된다. 또한, 프리로딩(preloading) 이후 또는 다운로딩 이후에 즉시 각각의 채널에서 이용가능한 쌍방향 어플리케이션들이 선택되어 실행될 수 있도록 구성될 수 있다. 프리로딩의 경우에는, 어플리케이션은 메모리(2024) 내로 로딩되고, 필요한 경우 스타트업에 의해 구동된다.
* 프로그램 가이드(Program Guide). 프로그램 가이드는 프로그래밍에 대한 완전한 정보를 주는 쌍방향 어플리케이션이다. 프로그램 가이드는, 예를 들어 디지틀 텔레비젼 부케(digital television bouquet)의 각각의 채널에 제공되는 일주일의 텔레비젼 프로그램들에 관한 정보를 줄 수 있다. 원격 조정기(2026)의 키이를 누름으로써, 최종 사용자는 텔레비젼 세트(2022)의 스크린 상에 나타나는 이벤트(event)에 겹쳐지는 애드-온 스크린(add-on screen)을 액세스할 수 있다. 이 애드-온 스크린은 디지틀 텔레비젼 부케의 각각의 채널의 현재 또는 다음의 이벤트에 정보를 주는 브라우저(browser)이다. 원격 조정기(2026)의 다른 키이를 누름으로써, 최종 사용자는 일주일 동안의 이벤트에 관한 정보의 리스트(list)를 디스플레이(display)하는 어플리케이션에 액세스한다. 최종 사용자는 간단하고 익숙해진 표준에 의해 이벤트들을 검색하고 분류할 수 있다. 최종 사용자는 또한 선택된 채널을 직접 액세스할 수도 있다.
* 유료 시청 어플리케이션(Pay Per View Application). 유료 시청 어플리케이션은 컨디셔널 액세스 시스템(conditional access system; 3000)과 연결된 디지틀 텔레비젼 부케의 각각의 유료 시청(PPV) 채널 상에 이용될 수 있는 쌍방향 서비스이다. 최종 사용자는 TV 가이드(guide) 또는 채널 브라우저를 이용하여 어플리케이션에 액세스할 수 있다. 더구나, 이 어플리케이션은 유료 시청 이벤트가 유료 시청 채널에 의해 감지되자 말자 자동적으로 시작한다. 그리고 나서, 최종 사용자는 그의 딸 스마트카드(daughter smartcard; 3020)를 통해 또는 통신 서버(communication server; 3022)를 통해 (모뎀, 전화, DTMF 코드, MINITEL 등등을 이용하여) 현재의 이벤트를 구입할 수 있다. 이 어플리케이션은 수신기/디코더(2020)의 ROM 내에 잔류하거나 또는 디코더(2020)의 RAM 내로 다운로드될 수 있다.
* PC 다운로드 어플리케이션(PC download application). 요청에 의하여, 최종 사용자는 PC 다운로드 어플리케이션을 사용하는 컴퓨터 소프트웨어를 다운로드 받을 수 있다.
* 매거진 브라우저 어플리케이션(Magazine Browser application). 매거진 브라우저 어플리케이션은 온-스크린(on-screen) 버튼들을 통하여 최종 사용자 내비개이션(navigation)을 가진 이미지들의 순환 비디오 방송(cyclic video broadcast)을 구비한다.
* 퀴즈 어플리케이션(Quiz application). 퀴즈 어플리케이션은 바람직하게는 방송 퀴즈 프로그램과 동기화된다. 예를 들어, 다중 선택 질의가 텔레비젼(2022)의 스크린 상에 디스플레이되고, 최종 사용자는 원격 조정기(2026)를 이용하여 대답을 선택할 수 있다. 퀴즈 어플리케이션은 사용자에게 대답이 정확한지 아닌지를 보고할 수 있으며, 사용자의 스코어(score)의 계산을 유지할 수 있다.
* 텔레쇼핑 어플리케이션(Teleshopping application). 텔레쇼핑 어플리케이션의 일예로서, 판매용 상품의 제공이 수신기/디코더(2020)에 전송되어 텔레비젼(2022) 상에 디스플레이된다. 원격 조정기를 이용하여, 사용자는 구입할 특별한 품목을 선택할 수 있다. 품목의 주문은 모뎀드 백 채널(4002)을 통하여 어플리케이션 및 데이타 서버(4006)로 보내지거나, 또는 가능하게는 수신기/디코더(2020)의 카드 판독기(4036)의 하나에 삽입된 신용 카드에 대한 계좌에 대한 요금 청구의 명령과 함께, 수신기/디코더에 전화 번호가 다운로드된 별도의 판매 시스템으로 보내질 수 있다.
* 텔레뱅킹 어플리케이션(Telebanking application). 텔레뱅킹 어플리케이션의 일예로서, 사용자는 수신기/디코더(2020)의 카드 판독기(4036)의 하나에 은행 카드를 삽입한다. 수신기/디코더(2020)는, 은행 카드에 또는 수신기/디코더에 저장된 전화 번호를 사용하여 사용자의 은행에 전화를 걸고, 그 다음에 상기 어플리케이션은 원격 조정기(2026)를 이용하여 선택될 수 있는 다수의 설비들(facilities)을 제공하는 데, 예를 들어 전화선을 통해 계좌 청구서(statement of account)를 다운로드 받거나, 계좌 간에 자금을 전송하거나, 수표책(cheque book)을 요청하는 등의 행위를 가능하게 한다.
* 인터넷 브라우저 어플리케이션(Internet Browser application). 인터넷 브라우저 어플리케이션의 일예로서, 특별한 URL 을 가진 웹 페이지를 나타내라는 요청과 같은, 사용자로부터의 지시들은 원격 조정기(2026)을 사용하여 입력되며, 이들은 모뎀드 백 채널(4002)에 의해 어플리케이션 및 데이타 서버(4006)로 보내진다. 그러면, 적절한 웹 페이지가 방송 센터로부터의 전송속에 포함되며, 업링크(uplink; 2012), 트랜스폰더(transponder; 2014) 및 다운링크(downlink; 2016)를 통해 수신기/디코더(2020)에 수신된 후, 텔레비젼(2022)에 디스플레이된다.
어플리케이션들은 수신기/디코더(2020) 내의 메모리 위치들에 저장되며, 리소스 파일들(resource files)로서 표현된다. 리소스 파일들은, 그래픽 목적 묘사 유니트 파일들(graphic object description files), 변수 블럭 유니트 파일들(variables block files), 지시 시퀀스 파일들(instruction sequence files), 어플리케이션 파일들 및 데이타 파일들을 포함한다.
그래픽 목적 묘사 유니트 파일들은 스크린, 어플리케이션의 인간-기계 인터페이스를 묘사한다. 변수 블럭 유니트 파일들은 어플리케이션에 의해 처리되는 데이타 구조들을 묘사한다. 지시 시퀀스 파일들은 어플리케이션들의 처리 작업들을 묘사한다. 어플리케이션 파일들은 어플리케이션들의 유입 포인트들을 제공한다.
이상과 같이 구성된 어플리케이션들은, 아이콘 라이브러리 파일들(icon library files), 이미지 파일들, 캐릭터 폰트(character font) 파일들, 컬러 테이블(color table) 파일들 및 ASCⅡ 텍스트 파일들과 같은 데이타 파일들을 이용할 수 있다. 쌍방향 어플리케이션은 또한, 입력 및/또는 출력에 실효화(effecting)함으로써 온-라인(on-line) 데이타를 얻을 수 있다.
엔진(4008)은, 주어진 시간에 필요한 리소스 파일들을 그 메모리 내로 단지 로딩하기만 한다. 이러한 리소스 파일들은 그래픽 목적 묘사 유니트 파일들, 지시 시퀀스 파일들 및 어플리케이션 파일들로 부터 판독되며; 변수 블럭 유니트 파일들은 모듈들을 로딩하기 위한 과정으로의 요청에 후속적으로 메모리 내에 저장되어, 모듈들을 언로딩하기 위한 과정으로의 특별한 요청이 있을 때 까지 거기에 잠겨진 채 저장된다.
도 3 을 참조하면, 텔레-쇼핑(tele-shopping) 모듈과 같은 모듈(4010)은 다음을 포함하는 리소스 파일들 및 데이타의 세트이다:
단독의 어플리케이션 파일(4012);
결정되지 않은 수의 그래픽 목적 묘사 유니트 파일들(4014);
결정되지 않은 수의 변수 블럭 유니트 파일들(4016);
결정되지 않은 수의 지시 시퀀스 파일들(4018); 및
아이콘라이브러리 파일들, 이미지 파일들, 캐릭터 폰트 파일들, 컬러 테이블 파일들 및 ASCⅡ 텍스트 파일들과 같은 적절한 데이타 파일들(4020).
MPEG 데이타 스트림에서, 각각의 모듈은 일군의 MPEG 테이블들을 포함한다.
각각의 MPEG 테이블은 많은 섹션(section)들로 포맷될 수 있다. MPEG 데이타 스트림에서, 각각의 섹션은 4 킬로바이트(kbytes) 까지의 "크기"를 가진다. 예를 들어, 직렬 및 병열 포트를 통한 데이타 전송을 위해, 모듈들은 테이블들 및 섹션들로 유사하게 분할되며, 섹션의 크기는 전송 매체에 따라 변한다.
모듈들은, MPEG 데이타 스트림에서, 예를 들어 비디오 데이타 스트림들, 오디오 데이타 스트림들 및 텔리텍스트(teletext) 데이타 스트림들과 같은 개개의 형태의 데이타 스트림 내에서 전형적으로 188 바이트의 데이타 패킷(packet)의 형태로 전송된다. 각각의 패킷을 13 비트의 패킷 인식기(PID)가 선행하는 데, MPEG 데이타 스트림 내에서 전송되는 매 패킷에 대해 하나의 PID 가 선행한다. 하나의 프로그램 맵 테이블(programme map table; PMT)은 서로 다른 데이타 스트림들의 리스트를 포함하며, 각각의 PID 에 따라 각각의 데이타 스트림의 내용을 정의한다. 하나의 PID 는 디바이스에 대해 데이타 스트림 내에 어플리케이션이 존재함을 경고할 수 있으며, PID 는 PMT 테이블을 이용하여 인식된다.
코드의 작은 일부의 다운로딩의 개념과 함께 모듈들(4010)의 개념은 어플리케이션의 용이한 변화(evolution)를 가능하게 한다. 이들은, 최종 사용자에 의해 요구될 때에만 수신기/디코더(2020)의 영구 FLASH 메모리 내로 다운로드될 수 있다.
메모리 볼륨(memory volume)은 모듈들(4010)을 위한 저장 공간이다. 이러한 저장 공간들은 수신기/디코더(2020)의 메모리(2024) 내에 배치된다. 도 4 를 참조하면, 메모리(2024)는 전형적으로 RAM 볼륨(4022), FLASH 볼륨(4024) 및 ROM 볼륨(4026)로 나누어 진다. 메모리는, 예를 들어 MPEG 비트스트림(bitstream)으로 부터 다운로드되는 모듈들을 저장하기 위한 MPEG 볼륨 및 직렬 인터페이스를 통해 수신되는 모듈들을 저장하기 위한 직렬 볼륨과 같은, 수신기/디코더(2020) 내로 모듈들이 다운로드되는 통로가 되는 여러가지 인터페이스들에 연결된 메모리 볼륨들로 더 분할될 수 있다.
그 다음에, RAM 볼륨(4022)은 펌웨어에 할당된 구역, 엔진(4008)의 작업 공간 및 완충기로 분할된다. FLASH 및 비 휘발성 메모리는, 어플리케이션에 의해 또는 디바이스 매니저를 통해 엔진 그자체에 의해 액세스될 수 있다.
각각의 볼륨은 모듈들(4010)의 리스트를 포함하며, 각각의 모듈(4010)은 파일들(4012, 4014, 4016, 4018, 4020)의 리스트를 포함한다. 두개의 파일이 동일한 이름을 가지면서 다른 모듈들에 배치되는 것도 가능하다. 예를 들어, 어플리케이션의 하나의 버젼(version)이 전형적으로 ROM 볼륨(4026)에 저장되고, 그후의 버젼들은 FLASH 볼륨(4024) 내로 다운로드될 수 있어서, ROM 볼륨 내에 저장된 버젼이 FLASH 볼륨(4024) 내에 저장된 버젼에 의해 대체될 수 있다. 파일들의 내용은 LZW 포맷으로 압축될 수 있으며, 다만 파일들의 압축 해제에 소정의 시간이 소요되는 경우에는 파일들은 압축 해제된 포맷으로 수신될 수 있다.
수신기/디코더(2020)의 물리적 인터페이스들은 데이타를 다운로드하는 데 사용된다. 도 5 를 참조하면, 수신기/디코더(2020)는, 예를 들어, MPEG 플로우 튜너(4028), 직렬 인터페이스(4030), 병렬 인터페이스(4032), 모뎀(4034) 및 두개의 카드 판독기(4036)과 같은 여섯개의 다운로딩 매체를 포함한다.
수신기/디코더(2020)의 다중 제조 소스들 및 어플리케이션들의 다중 소스들에 있어서, 하나의 어플리케이션이 매 수신기/디코더 마다에서 동일한 방식으로 거동해야 하며, 각각의 수신기/디코더가 모든 어플리케이션을 정확하고 동일한 방법으로 실행하여야 한다는 것은 대단히 중요하다. 도 6 을 참조하면, 수신기/디코더(2020)은, 공통 어플리케이션 프로그래밍 인터페이스(4054) 및 마이크로프로세서의 제어하에 실행되는 실행 시간 엔진(4008)을 구비한다. 이들은 모든 수신기/디코더(2020)이 어플리케이션의 관점에서 동일할 수 있도록 매 수신기/디코더(2020) 마다에 설치된다.
도 6 은 어플리케이션들(4056)을 실행시키기 위한 수신기/디코더(2020)의 구조를 보여 준다. 버츄얼 머신(4007)은, 예를 들어 MPEG 데이타 스트림으로부터 수신기/디코더(2020)에 다운로드되는 어플리케이션들(4056″) 또는 버츄얼 머신에 직접 연결된 어플리케이션들(4056′)을 포함하는 어플리케이션들(4056)을 실행한다. 실행 시간 엔진(4008)은 또한 그래픽과 텍스트를 디스플레이하고, 서비스용 디바이스를 호출하며, "이벤트들"을 수신하고, 그리고 특정의 컴퓨테이션(computation)을 위해 라이브러리(4058)의 기능을 이용한다.
도 6 을 참조하면, 하나의 어플리케이션에 대해 디코더(2020)의 기능이 디바이스(4060)으로 "나타나 있다". 따라서, 어떠한 어플리케이션에 의해서도 보여질 수 없는 수신기/디코더(2020)의 기능들이 있을 수 있다.
버츄얼 머신(4007)과 통신하는 프리젠테이션(presentation) 기능은 최종 사용자에게 텍스트와 그래픽의 프리젠테이션과, 버츄얼 머신(4007)에 대한 최종 사용자의 액션의 프리젠테이션을 제공한다(administer). 텍스트와 그래픽은 텔레비젼 세트(2022)의 디스플레이 상에 겹쳐지며, 최종 사용자는 키보드를 이용하여 어플리케이션과 상호 통신할 수 있다. "키보드"라는 용어는 원격 조정기(2026)를 포함한다.
실행 시간 엔진(4008)은 수신기/디코더(2020)의 버츄얼 머신(4007) 내에 장착된 실행가능한 코드이며, 어플리케이션들을 해석하고 실행시키기 위한 버츄얼 머신을 구비한다. 엔진(4008)은, MS-DOS 와 같은 단일 태스크 작동 시스템(single task operating system)을 포함하는 어떠한 작동 시스템에 대해서도 변환될 수 있다.
엔진(4008)은, 여러가지 작동을 수행하기 위해 키이 프레스와 같은 여러가지 이벤트들을 필요로하는 프로세스 시퀀스 유니트를 포함하며, 서로 다른 하드웨어 인터페이스들로 부터 이벤트 큐우들을 관리하기 위한 그 자체의 스케듈러(scheduler)를 포함한다. 이 엔진은 또한, 그래픽 및 텍스트의 디스플레이를 취급한다.
엔진(4008)은 디코더 메모리(2024) 내로 어플리케이션들(4056″)을 로딩 또는 다운로딩하기 위한 코드 판독기를 포함한다. 유일하게 필요한 코드는, 적절한 사용을 보장하기 위하여, FLASH 메모리 볼륨(4024) 또는 RAM 볼륨(4022) 내로 로딩된다. 다운로드된 데이타는, 임의의 미지의 어플리케이션의 실행 또는 어플리케이션(4056)의 임의의 변형을 방지할 수 있도록, 점검 기구(authentication mechanism)에 의해 증명될 수 있다.
엔진(4008)은 디컴프레서(decompressor)를 추가로 포함한다. 어플리케이션 코드(중간 코드의 형태)가, 공간 절약을 위하여 그리고 내장 수신기/디코더 모드를 통한 또는 MPEG-2 전송 스트림으로부터의 신속한 다운로딩을 위하여, 압축될 때, 코드는 그것을 RAM 으로 로딩하기 전에 압축 해제 하여야 한다.
버츄얼 머신(4007)은 또한, 어플리케이션 코드를 해석하기 위한 중간 코드 인터프리터(intermediate code interpreter)와 에러 체커(error checker)를 포함하는 데, 중간 코드 인터프리터는 여러가지 변수값들을 업데이트하기 위하여 프로세스 시퀀스 유니트(process sequencer unit)를 사용한다.
도 6 을 참조하면, 하나의 어플리케이션에 대해 디코더(2020)의 기능이 디바이스(4060)으로 "표시된다". 따라서, 어떠한 어플리케이션에 의해서도 나타낼 수 없는 수신기/디코더(2020)의 기능들이 있을 수 있다.
디바이스(4060)는 하드웨어(4066)의 물리적 인터페이스(4064) 또는 부품(4062) 에 대응하는 논리 디바이스 유니트를 포함한다. 상기 디바이스들은 "저 레벨 디바이스"(4068)로서 나타난다. 상기 디바이스(4068)의 출력은, 그 디바이스에 의한 논리 신호 출력을 예를 들어 하드웨어 인터페이스(4064)를 구동하기 위해 요구되는 신호들로 변환시키기 위한 적어도 하나의 디바이스 드라이버(4070)에 연결될 수 있다. 선택적으로, 디바이스(4068)는 그자체가 수신기/디코더(2020)의 부품 또는 인터페이스를 구동할 수 있는 데, 즉, 디바이스의 출력은 하드웨어(4066)에 직접 연결될 수 있다.
저 레벨 디바이스(4068)의 예들이 이하에서 설명된다.
하나의 LCARD 디바이스는 하나의 프로그램으로 하여금 하나의 스마트카드 판독기(4036) 내에 포함된 스마트카드와 통신할 수 있게 하며, 하나의 RCARD 디바이스는 하나의 프로그램으로 하여금 다른 스마트카드 판독기(4036) 내에 포함된 스마트카드와 통신할 수 있게 한다. 예를 들어, 이러한 디바이스들은 하나의 프로그램으로 하여금 카드의 상태를 판독하여, 그 카드의 히스토리를 판독하고 카드에 입력 메시지를 보낼 수 있게 한다. 디바이스들은 또한, 프로그램에 의해 요구되지 않는 경우의 카드의 리셋(reset) 및 판독기로 부터 카드의 제거, 그리고 판독기 내로의 카드 삽입등을 프로그램에 고지한다. LCARD 및 RCARD 디바이스들은 카드를 실행시키기 위해 사용되는 프로토콜(protocol)에 대해 특정적(specific)이다. 전형적으로는, ISO7816 프로토콜이 사용된다.
SCTV 디바이스는 프로그램으로 하여금 텔레비젼 세트(2022)로의 스카아트 출구(scart outlet)의 구성 및 증명을 할 수 있게 한다. 예를 들어, 이 디바이스는 프로그램으로 하여금 스카아트 출구의 사운드 특성에 대한 정보를 요청할 수 있게 하며, 사운드에 대해 "MUTE"를 실행할 수 있게 하며, 그리고 RGB 레벨을 동적으로 프로그램할 수 있게 한다.
TUNER 디바이스는 프로그램이 튜너(4028)를 사용할 수 있도록 한다. 예를 들어, 디바이스는 프로그램으로 하여금 튜너의 현재 주파수 또는 최소 주파수로부터 스캔(scan; 주사)을 실행할 수 있게 하며, 튜너 변수를 읽고 튜너를 프로그램할 수 있게 한다.
SERIAL 디바이스는 프로그램이 직렬 링크(link)를 통해 장비와 교신할 수 있게 하고, 그리고 PARALLEL 디바이스는 프로그램이 병렬 링크를 통해 장비와 교신할 수 있게 한다. 예를 들어, 이러한 디바이스들은 프로그램으로 하여금 각각의 링크를 통하여 메시지를 송신할 수 있게 하고, 그 링크를 통하여 메시지의 수신을 프로그램에 대해 고지한다.
MODEM 디바이스는 수신기 디코더가 내부 반-이중 모뎀 서포팅(internal half-duplex modem supporting) V23 을 통하여 데이타 서비스와 교신할 수 있게 한다. MODEM 디바이스는 번호의 다이얼링(dialing), 즉 데이타 서버로의 메시지의 송신 및 모뎀의 연결 해제, 그리고 메시지의 신호 수신, 즉 에러 및 손실의 감지 또는 캐리어의 감지를 요청한다.
원격 위치에서 실행되는 원격 디바이스들은, 포트 및 프로토콜이 정의되어야 한다는 점을 제외하고는, 로컬 디바이스들 중의 어느 것이라도 될 수 있다.
"저 레벨 디바이스들"에 더하여, 수신기/디코더(2020)는 또한, 수신기/디코더(2020)의 작동을 제어하는 "고 레벨 디바이스들"(4072)을 구비할 수 있다.
고 레벨 디바이스들(4072)의 예들에 대해 이하에서 설명한다.
MLOAD 디바이스는 어플리케이션으로 하여금, MPEG 섹션, 하드웨어 및 소프트웨어 필터링 표준(filtering criteria)에 대응하는 MPEG 비트스트림으로부터의 일군의 MPEG 섹션들 또는 완전한 MPEG 테이블을 로딩하는 것을 가능하게 한다. 예를 들어, 디바이스는 프로그램으로 하여금, 하나의 어플리케이션에 의하여 매번 마다 요구되는 일군의 섹션들만을 다운로드하는 것을 가능하게 한다.
FLOAD 디바이스는 직력 및/또는 병렬 포트들을 통하여 자동적으로 파일 다운로딩을 행한다. 상기 디바이스는, 하나의 프로그램에 의해 요구되는 대로 직렬 및/또는 병렬 포트들을 통하여 파일들의 다운로딩의 시작과 종료 모두를 신호발진한다. 디바이스는, 다운로드될 파일의 PID 및 파일의 해독 PID ECM 을 포함하는 인덱스 테이블(index table) 용의 프로그램에 요청을 보낼 수 있다. 상기 프로그램은 인덱스 테이블을 로딩하고 그것을 디바이스로 보내며, 후속하여 프로그램으로 파일의 다운로딩을 요청한다. 프로그램은 인덱스 테이블로부터 파일을 위한 PID 및 PID ECM 을 인출하며, 디멀티플렉싱(demultiplexing)을 요청하여 파일이 그 전체에 걸쳐 다운로드될 수 있도록 한다. 언제든지, "fdload_offline" 이라는 호출(call)이, 직렬 및/또는 병렬 포트들을 정지시킬 수 있도록 FLOAD 디바이스를 지시하기 위한 프로그램에 의해 요청될 수 있다.
디바이스들(4060)은 고유의 식별자 "device_id" 에 의해 식별된다, 예를 들어, "LCARD_DEVICE_ID" 는 LCARD 디바이스를 식별하며, "RCARD_DEVICE_ID" 는 RCARD 디바이스를 식별한다.
새로운 디바이스(4060)가 생성되었을 때, 방송 센터로부터 적절한 어플리케이션(4056")을 다운로딩함으로써 기존의 수신기/디코더들 내에 장착될 수 있다.
이러한 다운로딩은 어플리케이션(4056)에 의해 수신기/디코더(2020)에서 수행되며, 어플리케이션(4056)은 하드웨어 및 소프트웨어 버전들을 체크하여, 정확한 경우, 새로운 디바이스(4060)을 표현하는 소프트웨어 모듈을 로딩하고 라이브러리(4058)에게 새로운 디바이스 코드를 펌웨어 내에 (FLASH 메모리 내의) 장착하라고 요구한다. 이것은 소프트웨어의 나머지 부분에 영향을 주지 않으면서도 수신기/디코드(2020) 내에 새로운 기능들의 유연하면서도 확실한 설치를 제공할 수 있다.
디바이스 매니저(4074)는 수신기/디코더(4056)의 특정 기능들에 관련된 디바이스들(4060)과 어플리케이션(4056) 사이의 공통 인터페이스이다. 이러한 공통 인터페이스를 채택함으로써, 실행 시간 엔진(4008)의 "라이브러리"에 저장되고 디바이스들(4060)에의 액세스를 허용하는 절차들(procedures), 그리고 그 디바이스들에 관련된 "이벤트들"은 한정된 수의 절차들을 이용하여 표준화될 수 있다. 디바이스 매니저(4074)는 디바이스들(4060)로의 액세스를 제어하고, 예기치않은 이벤트의 수신을 통고하며, 그리고 공유 메모리를 관리한다.
디바이스(4074)로의, 디바이스(4060) 자체로의 또는 메모리 메니지먼트(memory management)로의 액세스를 제공하는 18 개의 절차들이 있다.
Device_Open_Channel ○ 매니저에게 채널을 개방함
Device_Close_Channel ○ 매니저에게 채널을 폐쇄함
Device_Open_Device ○ 디바이스에게 채널을 개방함
Device_Close_Device ○ 디바이스에게 채널을 폐쇄함
Device_Event ○ 예기치 않은 이벤트 매니지먼트
Device_Call ○ 디바이스로의 동시성(synchronous) 액세스
Device_Io ○ 디바이스로의 이시성(asynchronous) 액세스
Device_Info ○ 디바이스에 대한 정보
Set_Buffer_outline ○ 버퍼용 메모리 구획(partitioning)을 정의
Get_Buffer_outline ○ 현재의 버퍼 구획 영역을 판독
Pool_Info ○ 현재의 버퍼 구획 영역에 대한 정보 제공
Device_Alloc_Buffer ○ 메모리를 할당함
Device_Free_Buffer ○ 메모리를 해방함(frees)
Device_Lock_Buffer ○ 메모리를 폐쇄함
Device_Info_Free_Buffer ○ 자유(free) 버퍼들의 수를 제공함
Device_Info_Alloc_Buffer ○ 할당된 버퍼들을 리스트화함(lists)
Get_Buffer_Size ○ 할당된 버퍼의 크기를 제공함
도 7 을 참조하면, 임의의 디바이스(4060)의 서비스들을 이용하기 전에, 어플리케이션 스크립트(script)와 같은 프로그램이, 디바이스 매니저(4074) 또는 디바이스(4060)에 대한 논리-엑세스-방식(logical-access-way)을 의미하는, "클라이언트(client; 4076)"로서 선언되어야 한다. 이 매니저는 클라이언트(4076)에게, 디바이스로의 모든 액세스들에서 참조기호로서 이용될 수 있는 클라이언트 번호를 부여한다.
디바이스(4060)는 몇 개의 클라이언트들(4076)을 가질 수 있는 데, 각각의 디바이스(4060)에 대한 클라이언트들(4076)의 수는 디바이스(4060)의 형태에 따라 특화되어 있다.
클라이언트(4076)는 Device_Open_Channel ○ 절차와 함께 디바이스 매니저(4068)에 유입된다(introduced). 이러한 절차에 대해, 디바이스 매니저는 클라이언트(4076)에게 클라이언트 번호를 부여한다. 디바이스 매니저(4074)는 "client_id"와 "error_code"를 출력하는 데, "client_id" 는 할당된 클라이언트 번호(절대로 두 개의 클라이언트가 동일 번호를 가질 수 없음)를 가지는 변수의 어드레스를 포함하며, "error_code"는, 절차가 성공적으로 완료되었음을 지시하는 에러_코드 "0" 와, 디바이스 매니저에 의해 취급될 수 있는 최대의 클라이언트 수, 전형적으로는 256, 에 도달하였음을 지시하는 에러_코드 "e_client_max" 를 포함한다.
할당된 제 1 클라이언트 번호는 0 이며, 255 의 값 까지 "Device_Open_Channel" 절차를 이용하여 매번의 호출에 대해 1 씩 증가한다. 이것은 클라이언트들의 리스트로부터의 임의의 클라이언트의 제거와는 독립적으로 발생한다. 클라이언트 번호 255 가 할당되고 후속적으로 "Device_Open_Channel" 호출이 발생하였을 때, 에러_코드 "e_client_max" 는 클라이언트들의 리스트가 "충만(full)" 상태임을 지시하도록 출력되거나, 또는 그 클라이언트에게 이용가능한 최소의 클라이언트 번호, 즉 이전 단계에서 클라이언트들의 리스트로부터 제거된 클라이언트의 클라이언트 번호가 할당된다.
클라이언트(4076)를 디바이스(4060)에 통고하기(declare) 위하여, 클라이언트는 Device_Open_Device ○(4080) 절차를 이용하여, 그것의 client_id 와 device_id 를 전송한다. 디바이스 매니저는, 절차가 성공적으로 완료되었을 때는 에러 메시지 "0" 를, 클라이언트가 존재하지 않는 경우에는 "e_client_inconnu" 를, 디바이스가 존재하지 않는 경우에는 "e_periph_inconnu" 를, 또는 디바이스가 이미 디바이스에게 고지되었을 때는 e_client_max 또는 "e_deja_vu" 를 출력한다.
클라이언트(4076)는, Device_Close_Device ○절차과 함께 디바이스(4060)의 리스트로부터 제거될 수 있다. client_id 및 device_id 는 디바이스 매니저에 입력되고, 그리고 나서 절차가 성공적으로 완료되었을 때는 에러_코드 "0" 를, 클라이언트가 디바이스 매니저에게 알려져 있지 않은 경우에는 에러_코드 "w_client_inconnu" 를, 또는 디바이스가 디바이스 매니저에게 알려져 있지 않은 경우에는 에러_코드 "w_periph_inconnu" 를 출력한다.
클라이언트(4076)는, Device_Close_Channel ○절차과 함께 디바이스 매니저(4060)의 클라이언트 리스트로부터 제거될 수 있다. client_id 는 디바이스 매니저에 입력되고, 그리고 나서 절차가 성공적으로 완료되었을 때는 에러_코드 "0" 를, 클라이언트가 디바이스 매니저에게 알려져 있지 않은 경우에는 에러_코드 "w_client_inconnu" 를 출력한다. 이러한 절차는 디바이스 매니저(4074)의 리스트로부터 그리고 그가 클라이언트인 각각의 디바이스(4060)의 리스트로부터 클라이언트를 삭제한다, 즉, 어플리케이션에 의해 이미 그렇게 되지 않았다면, Device_Close_Channel ○ 절차는 그 클라이언트가 클라이언트인 각각의 디바이스에 대해 Device_Call_Device ○절차를 호출한다. 따라서 이러한 절차를 이용하여 해방된 클라이언트 번호가, Device_Open_Channel ○절차를 이용하여 새로운 클라이언트에게 할당될 수 있다.
절차 "Device_Info ○" 는 클라이언트에게 디바이스(4060)에 관한 정보를 제공한다. client_id 및 device_id 는 디바이스 매니저(4074)에 입력되며, 디바이스 매니저는 전형적으로는 디바이스의 버젼인 디바이스에 관한 정보, 즉 디바이스에 대한 클라이언트들의 최대수 및 그 디바이스를 이용하는 클라이언트들의 실질적인 숫자를, 절차가 완료되었음을 지시하는 또는 클라이언트나 디바이스가 디바이스 매니저(4074)에게 알려져 있지 않다고 지시하는 에러_코드들과 함께, 그 클라이언트에게 되돌려 준다.
절차 "Device_Event" 는, 특정의 환경 또는 예기치 않은 무엇인가가 발생하였음을 의미하는 "예기치 않은 이벤트들"을 관리하는 수단이다. "Device_Event" 절차는 클라이언트로 하여금 그 자신이 디바이스로부터의 예기치 않은 이벤트의 수신자임을 통고할 수 있게 한다.
"이벤트들"로 칭해지는 어플리케이션들을 위한 메시지들은 엔진(4008)의 다섯개의 규우들 중의 하나에 입력된다. 이 큐우들 각각은 0 에서 4 까지의 우선 순위 레벨( 0 = 최소 우선 순위, 4 = 최대 우선 순위)에 대응한다.
하나의 어플리케이션에 전송되는 큐우들로 부터 메시지를 인출할 때, 엔진(4008)은 하나의 이벤트를 포함하는 최고의 우선 순위를 가지는 큐우를 검색한다. 그 이벤트는 큐우로 부터 제거되어 의도되는 프로세스 시퀀서 유니트를 구동시키기 위해 사용된다.
키보드에 의해 프리젠테이션 기능에 입력되거나 또는 인터페이스를 통해 수신되는 모든 "외부" 이벤트들은 엔진(4008)에 의해 처리되기 전에 이벤트 인터페이스를 통과한다. 그러나, 전형적으로는 내부 디바이스들에 의해 생성되는 어떠한 내부 이벤트들도 이벤트 인터페이스를 통과하지 않으며, 다만 엔진(4008)에 직접 유입된다.
각각의 절차를 위하여, 최종 호출 변수(last calling parameter)는, 디바이스 매니저에 의해 커맨드(command)가 어떻게 처리되었는 지를 지시하는 디바이스 매니저에 의해 설정될 변수의 어드레스이다.
클라이언트에 대한 예기치 않은 이벤트의 제공(issue)의 이유는 디바이스(4060)에 따라 다르다. 예를 들어, LCARD DEVICE 디바이스에 대해, 예기치 않은 이유는 다음을 포함한다:
카드 판독기로부터 카드의 제거;
카드 판독기 내로의 카드의 삽입; 또는
클라이언트에 의한 카드의 리셋.
상기 인자들의 각각은 각각의 고유 이벤트 코드(각각 "ev_lcard_extract", "ev_lcard_insert" 및 "ev_lcard_reset")에 의해 식별된다.
예기치 않은 이벤트들을 수신하기 위하여, 클라이언트는 각각의 이벤트의 수신자로서 그자신에게 절차 "device_event" 를 사용하여 수신하기를 희망함을 통고하여야 한다. 다음의 변수들은 디바이스 매니저에게 입력된다;
client_id;
device_id;
예기치 않은 이벤트에 대해 송신을 가능하게 하는 "get_event" 로 호칭되는 커맨드;
이벤트 코드; 및
0 및 4 사이의 이벤트 우선 순위.
몇개의 디바이스들은, 동일한 또는 서로 다른 우선 순위를 가지고, 동일한 예기치 않은 이벤트의 수신을 통고할 수 있다. 이 경우, 이벤트는 특정의 순서로(클라이언트 번호 및 우선 순위에 의해) 각각의 클라이언트에 보내진다.
예를 들어, 클라이언트 2 는 그 자신이 우선 순위 2 를 가진 LCARD 디바이스로 부터 ev_card_extract 의 수신자임을 통고하며, 클라이언트 1 은 우선 순위 4, 최종적으로 클라이언트 4는 우선 순위 3 을 가진것으로 통고한다. 만일 카드가 판독기로부터 제거되는 경우, 이벤트들의 다음의 시퀀스가 발생한다:
클라이언트 1 에 어드레스된 이벤트 ev_card_extract 가 우선 순위 4 에 대응하는 실행 시간 엔진(4008)의 큐우에 배치된다;
클라이언트 4 에 어드레스된 동일한 이벤트가 우선 순위 3 에 대응하는 실행 시간 엔진(4008)의 큐우에 배치된다;
클라이언트 2 에 어드레스된 동일한 이벤트가 우선 순위 2 에 대응하는 실행 시간 엔진(4008)의 큐우에 배치된다; 그리고
클라이언트 3 에 어드레스된 동일한 이벤트가 우선 순위 2 에 대응하는 실행 시간 엔진(4008)의 큐우에 배치된다;
어떤 디바이스들에 대하여는, 예기치 않은 이벤트 속에 버퍼가 포함될 수 있다. 이 경우, 디바이스는 이 버퍼를 디바이스 매니저(4068)를 통하여 할당한다.
어플리케이션 프로그래밍 언어에서, 하나의 절차는 이벤트들과 관련된 변수들에 대한 엑세스를 가능하게 한다:
event_code;
client_id;
evt_param1 (전형적으로는 4 바이트의 크기를 가짐); 그리고
evt_param2 (전형적으로는 2 바이트의 길이를 가짐).
evt_param 변수들의 정확한 의미는 이벤트의 게시(posting)의 이유 및 디바이스에 따라 다르다. 버퍼와 예기치 않은 이벤트와의 연상(association)은 디바이스에 따라 다르다. 연상이 존재하는 경우에는, evt_param1 은 연상된 버퍼의 데이타 존 어드레스(data zone address)에 대응한다. 버퍼가 없는 경우에는, 이벤트가 여전히 제공될 것이지만, 변수 evt_param1 은 "0" 에 설정된다.
디바이스가 예기치 않은 이벤트와의 연상을 위해 버퍼를 가지는 경우, 디바이스의 리스트 또는 디바이스 매니저의 리스트로부터 클라이언트의 제거는, 절차 device_lock_buffer 를 사용하여 어플리케이션에 의하여 버퍼가 "폐쇄된" 경우를 제외하고는, 버퍼의 디얼로케이션(deallocation)을 초래한다.
evt_param2 는 절차가 성공적으로 완료되었으며 결과가 디바이스에 의해 구해졌음을 지시한다.
클라이언트는, 커맨드 "get_event" 대신에 "ret_event" 를 사용하여 임의의 예기치 않은 이벤트의 수신을 중단시킬 수 있다.
디바이스 매니저(4074)는, "동시성 엑세스" 및 "이시성 엑세스"라는 두개의 다른 모드로 디바이스들(4060)에 대한 클라이언트들(4076)에 의한 엑세스를 제공한다.
"Device_Call" 절차를 사용하는 동시성 엑세스는, 디바이스로부터의 응답(response)을 실행 시간 엔진(4008)의 큐우 내로의 배치(the placing)를 포함하지 않으며 또한 하나의 디바이스에 특정적인 기능을 액세스하는 수단이다; 상기 응답은 즉시 이용 가능하다. 전형적으로는, 이 절차는 수신기/디코더(2020)의 하드웨어 인터페이스들의 구성에서 이용된다.
이러한 절차를 이용하여, 클라이언트는 다음 변수들을 디바이스 매니저를 통하여 디바이스에 입력할 수 있다:
client_id;
device_id;
디바이스에 의해 수행될 작동의 형태를 포함하는 "call_cmde". 예를 들어, 직렬 링크를 통해 프로그램이 장비와 교신할 수 있게 하는 SERIAL 디바이스에 대하여, "serial_setup" 커맨드는 다음의 직렬 링크 구성을 설립한다:
입력 데이타의 메모리 위치의 어드레스를 포함하는 "em_adr"; 및
디바이스가 출력 데이타를 기록하여야 하는 메모리 위치의 어드레스를 포함하는 "rec_adr".
클라이언트에 의해 요구되는 작동의 완료시에, 실행의 보고를 포함하는 "call_report" 를 출력한다. call_report 는 전형적으로, 클라이언트에게 제공될 수 있는 소정의 수의 리포트들 중의 하나를 포함한다. 다음에, 디바이스 매니저(4074)는 클라이언트(4076)에게 에러_코드를 제공하는 데, 이 에러_코드는 전형적으로 다음중의 하나를 포함한다:
e_client_inconnu;
e_periph_inconnu;
클라이언트에게 커맨드가 미지의 것임을 알리는 "e_cmde_inconnu";
그 디바이스에 특정적인 에러인 "e_report_periph"; 및
절차가 성공적으로 완료되었음을 지시하는 "0".
디바이스는 단지, 에러_코드 "0" 가 수신될 때 변수 "rec_adr" 에 의해 식별되는 메모리 위치의 어드레스에 출력 데이타를 기록한다.
Device_call 은 디바이스에 의해 실행이 완료될 때 까지 모든 다른 어플리케이션들을 제지한다.
"Device_Io" 절차를 사용하는 이시성 엑세스는, 응답의 대기를 포함하며 하나의 디바이스에 특정적인 기능을 액세스하는 수단이다. 예를 들어, SERIAL 디바이스에 대하여, "serial_send" 커맨드는 직렬 링크를 통하여 메시지를 보낸다. 모든 데이타의 성공적인 전송(어떠한 pre-set "time-out" 변수에도 도달하기 전의)에 이어서, 디바이스는 프로그램에 리포트를 보낸다. 이 리포트가 이용 가능할 때, 이벤트는 엔진(4008)의 큐우 내로 입력되어 그것의 도착을 신호한다.
이 과정을 이용하여, 클라이언트는 다음의 변수들을 디바이스 매니저를 통하여 디바이스에 입력한다:
client_id;
device_id;
디바이스에 의해 수행될 작동의 형태를 포함하는 "io_cmde";
작동의 말단에 대응된(associated) 이벤트 코드;
이벤트에 대응된 이벤트 우선 순위;
em_adr; 및
rec_adr.
클라이언트에 의해 요청되는 작동이 완료되자 마자, 디바이스는 실행의 리포트를 포함하는 "io_report" 를 출력한다.
io_report 는 전형적으로, 클라이언트에게 제공될 수 있는 두개의 리포트들 중의 하나를 포함하는 데, 이 두개의 리포트는, 요청된 정보가 아직 클라이언트에 의한 이용이 불가능함을 나타내는 "e_not_done" 과 요청된 정보가 이용가능함을 나타내는 "0" 를 포함하며, 또한 이 두개의 리포트는 이벤트와 연관된다.
리포트 "0" 를 받자마자, 디바이스 매니저는 클라이언트(4076)에게 에러_코드를 제공하는 데, 에러_코드는 다음중 하나를 포함한다:
e_client_inconnu;
e_periph_inconnu;
e_cmde_inconnu;
이벤트 코드가 미지의 것임을 알리는 "e_cmde_inconnue";
우선 순위가 미지임을 알리는 "e_priorite_inconnue";
e_report_periph; 및
0.
이상에서 본 발명은 순전히 실시예들을 통하여만 설명되었으며, 본 발명의 영역 내에서 그 세부 사항의 변형이 가능함을 이해될 수 있을 것이다.
발명의 상세한 설명, 특허 청구 범위 및 도면에서 기술된 각각의 특성은 독립적으로 또는 임의의 적절한 조합을 통하여 구비될 수 있다.
전술한 바람직한 실시예들에서, 본 발명의 소정의 특징들은 컴퓨터 소프트웨어를 이용하여 구현되었다. 그러나, 상기 특징들의 어떤것도 하드웨어를 이용하여 구현될 수 있음은 당업자에게는 명백함은 물론이다. 또한, 하드웨어, 컴퓨터 소프트웨어 등등에 의해 수행되는 기능들은 전기 신호 기타의 신호들을 이용하여 수행될 수 있음이, 즉시 이해될 수 있을 것이다.
참고문헌은 같은 출원일을 갖는 동시계류중인 출원이고 그 출원의 명칭은 신호 발생 및 방송(Signal Generation and Broadcasting)(대리인 문서번호 PC/ASB/19707), 암호화된 방송 신호의 수신기와 사용하는 스마트카드 및 수신기(Smartcard for use with a Receiver of Encrypted Broadcast Signal and Receiver)(대리인 문서번호 PC/ASB/19708), 방송 및 수신 시스템 및 그것을 위한 조건부 액세스 시스템(Broadcast and Reception System and Conditional Access System therefor)(대리인 문서번호 PC/ASB/19710), 송신기로부터 수신기/디코더를 경유해서 컴퓨터로의 컴퓨터 파일의 다운로딩(Downloading a Computer File from a Transmitter via a Receiver/Decoder to Computer)(대리인 문서번호 PC/ASB19711), 텔레비젼 프로그램 및 다른 데이터의 송신 및 수신(Transmission and Reception of Televsion Programmes and Other Data)(대리인 문서번호 PC/ASB/19712), 다운로딩 데이터(Downloading Data)(대리인 문서번호 PC/ASB/19713), 컴퓨터 메모리 구조(Computer Memory Organisation)(대리인 문서번호 PC/ASB/19714), 텔레비젼 또는 라디오 제어 시스템 개발(Television or Radio Control System Development)(대리인 문서번호 PC/ASB/19715), 송신된 데이터 스트림으로부터 인출하는 데이터 섹션(Extracting Data Sections from a Transmitted Data Stream)(대리인 문서번호 PC/ASB/19716), 액세스 제어시스템(Access Control System)(대리인 문서번호 PC/ASB/19717), 데이터 처리시스템(Data Processing System)(대리인 문서 번호 PC/ASB/19718), 방송 및 수신 시스템 및 수신기/디코더 및 그것을 위한 원격 제어기(대리인 문서 번호 PC/ASB/19720)이다. 상기 서류의 개시는 참고로 본원에서 결부된다. 출원들의 리스트는 본 발명을 포함한다.
Claims (19)
- 프로그램에 의해 컴퓨터 시스템의 적어도 하나의 부품에 엑세스를 제공하기 위한 방법에 있어서,상기 시스템의 상기 또는 각각의 부품과 연결되며 각각 디바이스 식별자를 가지는 논리 디바이스를 저장하는 단계;상기 프로그램에 프로그램 식별자를 할당하는 단계; 및상기 프로그램과 상기 또는 각각의 논리 디바이스 사이의 공통 인터페이스에 상기 또는 각각의 논리 디바이스의 상기 디바이스 식별자 및 상기 프로그램 식별자를 포함하는 신호를 상기 프로그램으로부터 출력하여, 상기 인터페이스를 통하여 상기 또는 각각의 논리 디바이스와 상기 프로그램 사이에 통신 채널을 형성하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 상기 신호는, 디바이스와 연관된 부품의 상태의 변화를 나타내는 하나의 개별적 논리 디바이스로부터의 메시지 출력의 프로그램에 의한 커맨드 이내이블링 수신을 추가로 포함하는 것을 특징으로 하는 방법.
- 제 2 항에 있어서, 상기 메시지는 상기 컴퓨터 시스템의 큐우 수단에 임시로 저장되었다가 상기 프로그램으로 후속 전송되는 것을 특징으로 하는 방법.
- 제 3 항에 있어서, 상기 큐우 수단은 다수의 큐우 들을 포함하며, 상기 큐우 각각은 상기 큐우 수단으로부터 상기 프로그램으로 메시지가 전송되는 순서를 지시하는 하나의 개별적 우선 순위 레벨을 포함하며, 상기 신호는 상기 메시지가 임시적으로 저장되는 상기 큐우의 상기 우선 순위 레벨을 추가로 포함하는 것을 특징으로 하는 방법.
- 선행 청구항들 중 어느 하나의 청구항에 있어서, 상기 방법은 다수의 프로그램에 의해 제공되며, 각각의 프로그램은 상기 인터페이스를 통해 상기 또는 각각의 부품을 엑세스하는 것을 특징으로 하는 방법.
- 컴퓨터 시스템의 하나의 부품과 하나의 프로그램 사이에서 데이터를 전송하는 방법에 있어서,제 1 항에 따른 방법을 사용하여 상기 프로그램에 의하여 상기 부품에 엑세스를 제공하는 단계; 및상기 프로그램 식별자, 공통 인터페이스로의 논리 디바이스의 디바이스 식별자, 부품에 연결된 상기 논리 디바이스에 의한 상기 부품의 커맨드 지시 작동, 상기 디바이스에 의한 상기 부품으로의 입력 데이터 용 어드레스 및 상기 논리 디바이스로의 상기 부품에 의한 데이터 출력 용 어드레스를 포함하는 신호를 상기 프로그램으로부터 상기 공통 인터페이스로 후속적으로 출력하는 단계를 포함하는 것을 특징으로 하는 방법.
- 컴퓨터 시스템의 하나의 부품과 하나의 프로그램 사이에서 데이터를 전송하는 방법에 있어서,제 4 항에 따른 방법을 사용하여 상기 프로그램에 의하여 상기 부품에 엑세스를 제공하는 단계; 및상기 프로그램 식별자, 공통 인터페이스로의 논리 디바이스의 디바이스 식별자, 부품에 연결된 상기 논리 디바이스에 의한 상기 부품의 커맨드 지시 작동, 상기 디바이스와 연결된 상기 부품의 상태의 변화를 나타내는 각각의 논리 디바이스로부터의 메시지 출력을 상기 프로그램으로 전송되기 전에 임시로 저장하기 위한 상기 큐우의 상기 우선 순위 레벨, 상기 디바이스에 의한 상기 부품으로의 입력 데이터 용 어드레스 및 상기 논리 디바이스로의 상기 부품에 의한 출력 데이터 용 어드레스를 포함하는 신호를 상기 프로그램으로부터 상기 공통 인터페이스로 후속적으로 출력하는 단계를 포함하는 것을 특징으로 하는 방법.
- 선행 청구항들 중 어느 하나의 청구항에 있어서, 상기 프로그램 및/또는 상기 또는 각각의 논리 디바이스는 하나의 부품을 통하여 상기 컴퓨터 시스템에 입력되는 것을 특징으로 하는 방법.
- 선행 청구항들 중 어느 하나의 청구항에 있어서, 상기 또는 각각의 부품은, MPEG 플로우 튜너, 직렬 인터페이스, 병렬 인터페이스, 모뎀 및 스마트카드 판독기 중의 적어도 하나를 포함하는 것을 특징으로 하는 방법.
- 컴퓨터 시스템의 적어도 하나의 부품에 프로그램에 의해 엑세스를 제공하는 방법 또는 이하에서 기술되는 컴퓨터 시스템의 부품과 프로그램 사이에서 데이터를 전송하는 방법.
- 프로그램에 의해 컴퓨터 시스템의 적어도 하나의 부품에 엑세스를 제공하며, 상기 또는 각각의 부품에 관련된 논리 디바이스가 상기 시스템에 저장되고, 상기 또는 각각의 논리 디바이스는 각각의 디바이스 식별자를 가지는 장치에 있어서,상기 프로그램에 프로그램 식별자를 할당하기 위한 수단; 및상기 또는 각각의 논리 디바이스의 상기 디바이스 식별자 및 상기 프로그램 식별자를 포함하며 상기 프로그램으로부터 출력되는 신호에 따라 상기 또는 각각의 논리 디바이스와 상기 프로그램 사이에 통신 채널을 형성하기 위한 수단을 포함하는 것을 특징으로 하는 장치.
- 제 11 항에 있어서, 상기 장치는 상기 디바이스와 연결된 상기 부품의 상태의 변화를 나타내는 각각의 논리 디바이스로부터의 메시지 출력의 상기 프로그램에 의하여 수신을 가능하게 하기 위한 수단을 추가로 포함하는 것을 특징으로 하는 장치.
- 제 12 항에 있어서, 상기 컴퓨터 시스템은 상기 프로그램으로의 후속 전송을 위하여 상기 디바이스에 의한 메시지 출력을 임시로 저장하기 위한 큐우 수단을 추가로 포함하는 것을 특징으로 하는 장치.
- 제 13 항에 있어서, 상기 큐우 수단은 다수의 큐우 들을 포함하며, 상기 다수의 큐우 각각은 상기 큐우 수단으로부터 상기 프로그램으로 메시지들이 전송되는 순서를 지시하는 하나의 개별적인 우선 순위 레벨을 가지는 것을 특징으로 하는 장치.
- 제 11 항 내지 제 14 항 중의 어느 하나의 청구항에 있어서, 상기 컴퓨터 시스템은 상기 디바이스에 의한 상기 부품으로의 입력 데이터와 상기 부품에 의한 상기 논리 디바이스로의 출력 데이터를 상기 공통 인터페이스에로 저장하기 위한 수단을 추가로 포함하는 것을 특징으로 하는 장치.
- 제 11 항 내지 제 15 항 중의 어느 하나의 청구항에 있어서, 상기 또는 각각의 논리 부품은 하나의 디바이스 드라이버를 통하여 각각의 관련된 부품에 연결되는 것을 특징으로 하는 장치.
- 제 11 항 내지 제 16 항 중의 어느 하나의 청구항에 따른 장치를 구비하는 방송 신호 수신용 수신기/디코더.
- 제 17 항에 있어서, 상기 수신기/디코더는 압축된 MPEG 형 신호를 수신하기 위한 수단, 수신된 신호를 복호화하여 텔레비젼 신호를 제공하기 위한 수단 및 상기 텔레비젼 신호를 텔레비젼에 공급하기 위한 수단을 추가로 포함하는 것을 특징으로 하는 방송 신호 수신용 수신기/디코더.
- 첨부 도면을 참조하여 명세서에서 설명된 상기 장치 및 수신기/디코더.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP97400650.4 | 1997-03-21 | ||
EP97400650 | 1997-03-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20000076405A true KR20000076405A (ko) | 2000-12-26 |
Family
ID=48262303
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019997008515A KR20000076411A (ko) | 1997-03-21 | 1997-04-25 | 컴퓨터 메모리 구조 |
KR1019997008509A KR20000076405A (ko) | 1997-03-21 | 1997-04-25 | 엑세스 제어 시스템 |
KR1019997008507A KR20000076403A (ko) | 1997-03-21 | 1997-04-25 | 텔레비젼 또는 라디오 제어 시스템 전개 |
KR1019997008510A KR20000076406A (ko) | 1997-03-21 | 1997-04-25 | 데이터 처리 시스템 |
KR1019997008504A KR20000076401A (ko) | 1997-03-21 | 1997-04-25 | 수신기/디코더를 통하여 송신기로부터 컴퓨터로 컴퓨터 파일의 다운로딩 |
KR1019997008503A KR20000076400A (ko) | 1997-03-21 | 1997-04-25 | 방송 및 수신 시스템, 및 그를 위한 조건부 액세스 시스템 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019997008515A KR20000076411A (ko) | 1997-03-21 | 1997-04-25 | 컴퓨터 메모리 구조 |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019997008507A KR20000076403A (ko) | 1997-03-21 | 1997-04-25 | 텔레비젼 또는 라디오 제어 시스템 전개 |
KR1019997008510A KR20000076406A (ko) | 1997-03-21 | 1997-04-25 | 데이터 처리 시스템 |
KR1019997008504A KR20000076401A (ko) | 1997-03-21 | 1997-04-25 | 수신기/디코더를 통하여 송신기로부터 컴퓨터로 컴퓨터 파일의 다운로딩 |
KR1019997008503A KR20000076400A (ko) | 1997-03-21 | 1997-04-25 | 방송 및 수신 시스템, 및 그를 위한 조건부 액세스 시스템 |
Country Status (3)
Country | Link |
---|---|
KR (6) | KR20000076411A (ko) |
HK (1) | HK1044659A1 (ko) |
RU (1) | RU2001111520A (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5068398B2 (ja) | 2000-08-17 | 2012-11-07 | Necディスプレイソリューションズ株式会社 | 受信機及びコンテンツの配信方法 |
KR100726614B1 (ko) * | 2006-02-01 | 2007-06-11 | 에스케이 텔레콤주식회사 | 브-엠 기반의 기업용 애플리케이션 개발지원 시스템 및방법 |
-
1997
- 1997-04-25 KR KR1019997008515A patent/KR20000076411A/ko not_active Application Discontinuation
- 1997-04-25 KR KR1019997008509A patent/KR20000076405A/ko active IP Right Grant
- 1997-04-25 KR KR1019997008507A patent/KR20000076403A/ko not_active Application Discontinuation
- 1997-04-25 KR KR1019997008510A patent/KR20000076406A/ko active IP Right Grant
- 1997-04-25 KR KR1019997008504A patent/KR20000076401A/ko not_active Application Discontinuation
- 1997-04-25 KR KR1019997008503A patent/KR20000076400A/ko active Application Filing
-
2000
- 2000-07-04 HK HK02106133.3A patent/HK1044659A1/zh unknown
-
2001
- 2001-04-20 RU RU2001111520/09A patent/RU2001111520A/ru not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
KR20000076400A (ko) | 2000-12-26 |
KR20000076406A (ko) | 2000-12-26 |
KR20000076411A (ko) | 2000-12-26 |
HK1044659A1 (zh) | 2002-10-25 |
KR20000076403A (ko) | 2000-12-26 |
RU2001111520A (ru) | 2003-06-10 |
KR20000076401A (ko) | 2000-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7039245B1 (en) | Processing of digital picture data in a decoder | |
JP2009077451A (ja) | 伝送データ・ストリームからデータ・セクションを抽出する方法 | |
AU740740B2 (en) | Data processing system | |
NO332871B1 (no) | Fremgangsmate ved nedlasting av eksekverbart brukerprogram i en dekoder, og tilsvarende dekoder og smartkort | |
EP1194847A2 (en) | Running and testing applications | |
JP2001518256A5 (ko) | ||
AU742956B2 (en) | Television or radio control system development | |
AU742213B2 (en) | Access control system | |
JP4303884B2 (ja) | モデム制御 | |
KR20000076405A (ko) | 엑세스 제어 시스템 | |
EP1067806A1 (en) | Apparatus for and method of testing applications | |
MXPA99008545A (es) | Sistema de control de acceso | |
EP1067455A1 (en) | Running and testing applications | |
CZ331799A3 (cs) | Systém řízení přístupu | |
MXPA99008546A (es) | Extraccion de secciones de datos desde una corriente de datos transmitida | |
MXPA00000776A (en) | Ieee set top box device driver | |
MXPA00007900A (en) | Processing of digital picture data in a decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
NORF | Unpaid initial registration fee |