KR20010042226A - 리시버/디코더에서의 메모리 관리 - Google Patents

리시버/디코더에서의 메모리 관리 Download PDF

Info

Publication number
KR20010042226A
KR20010042226A KR1020007010748A KR20007010748A KR20010042226A KR 20010042226 A KR20010042226 A KR 20010042226A KR 1020007010748 A KR1020007010748 A KR 1020007010748A KR 20007010748 A KR20007010748 A KR 20007010748A KR 20010042226 A KR20010042226 A KR 20010042226A
Authority
KR
South Korea
Prior art keywords
fifo
receiver
buffer
decoder
message
Prior art date
Application number
KR1020007010748A
Other languages
English (en)
Other versions
KR100604211B1 (ko
Inventor
제롬 메릭
크리스토프 디클레르크
Original Assignee
삐에르 레꾸르
까날 (쏘시에떼 아노님)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삐에르 레꾸르, 까날 (쏘시에떼 아노님) filed Critical 삐에르 레꾸르
Publication of KR20010042226A publication Critical patent/KR20010042226A/ko
Application granted granted Critical
Publication of KR100604211B1 publication Critical patent/KR100604211B1/ko

Links

Classifications

    • 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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Communication Control (AREA)
  • Circuits Of Receivers In General (AREA)
  • Channel Selection Circuits, Automatic Tuning Circuits (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 발명은 수신된 신호가 리시버를 통하여 리시버/디코더 및 텔레비전 세트로 지나가는 디지털 텔레비전 방송 시스템의 리시버/디코더에서 사용하기 위한 디바이스 관리 모듈(11)에 관한 것이다. 모듈(11)은 포트부(10)로부터 인입되는 메시지를 애플리케이션 모듈(12)에 결합한다. 모듈(11)에 결합된 메모리(13)는, 각각 버퍼 제어기/조정기(14-B) 및 FIFO 제어기/조정기(14-F)에 의해 제어되는, 버퍼 영역(13-B) 및 FIFO 영역(13-F)를 가진다. 인입되는 메시지는 버퍼로 전달될 수 있고 관련된 애플리케이션에 의해 버퍼로부터 검색된다; 두개의 상이한 작동모드가 이를 위해 사용된다. 선택적으로, 그러한 메시지는 FIFO로 전달될 수 있다; FIFO 조정기는, 어떤 조치를 취함이 없이 그리고 수신되는 완전한 메시지를 기다림이 없이 고레벨 애플리케이션으로 메시지를 전달할 수 있는 저레벨 애플리케이션 동작한다. FIFO를 통하는 메시지는 MPEG 신호 스트림으로 결합된다.

Description

리시버/디코더에서의 메모리 관리{MEMORY MANAGEMENT IN A RECEIVER/DECODER}
여기에서 사용된 용어 "리시버/디코더"는 몇 가지 다른 방법에 의해서 방송되거나 전송될 수 있는, 엔코드되거나 엔코드되지 않은 신호, 예를 들어 텔레비전 및/또는 라디오 신호를 수신하는 리시버를 의미한다. 상기 용어는 또한 수신된 신호를 디코딩하는 디코더를 의미한다. 이와 같은 리시버/디코더의 실시예는 예를 들어 "셋-탑 박스"에서 수신된 신호를 디코딩하는 리시버와 통합된 디코더를 포함할 수 있으며, 이와 같은 디코더는 물리적으로 독립된 리시버와 조합하여 기능을 수행하거나, 또는 웹 브라우저, 비디오 리코더, 또는 텔레비전과 같은 부가적인 기능을 포함한다.
디지털 텔레비전 방송 시스템에서, 수신된 신호는 리시버/디코더를 통과해서 텔레비전 세트로 전달된다. 여기서 사용되는 용어 "디지털 텔레비전 시스템"은 예를 들어 위성, 지상, 케이블 및 다른 시스템을 포함한다. 리시버/디코더는 압축된 MPEG 형 신호를 텔레비전 세트용 텔레비전 신호로 디코드한다. 이것은 리시버/디코더에 있는 인터페이스를 통하여 원격 제어 핸드셋에 의해서 제어된다. 리시버/디코더는 인입되는 비트 스트림을 처리하는데 사용되며, 리시버/디코더가 다양한 제어 및 다른 기능을 수행하도록 하는 다양한 애플리케이션 모듈을 포함한다.
그러한 리시버/디코더는 사용자가 승인카드를 통과시켜 사용자에게 어느 서비스가 승인되었는지를 확인하도록 하는 카드 판독기, 휴대용 리시버 제어 장치, 비디오 디스플레이 유닛, 및 사용자가 홈뱅킹 기능을 수행하도록 허락하는 은행 카드와 함께 사용하는 다른 카드 판독기와 같은, 리시버/디코더에 연결된 다양한 디바이스를 가지고 있다. 또한 리시버/디코더는 예를 들어 홈뱅킹 거래를 수행하기 위한 인터넷에 접속하여 모뎀 같은 그것에 결합된 다양한 포트를 가지고 있다.
리시버/디코더가 모뎀, 직렬 채널, 병렬 채널, MPEG(압축되고 코딩된 비디오 신호)채널, 스와이프(swipe) 카드 판독기 등과 같은 다양한 포트와 인터페이스할 수 있다는 제안이 있어 왔다. 리시버/디코더는 실행 시간 엔진을 포함하는 가상 머신을 포함한다. 가상머신은 디바이스 및 디바이스 드라이버를 통하여 다양한 채널의 물리적 인터페이스에 차례로 연결되어 있는 디바이스 매니저에 연결되어 있다.
본 발명은 정보가 하나 이상의 애플리케이션 모듈을 가진 리시버/디코더에 관한 것이며, 특히, 여기서 상기 하나이상의 애플리케이션들은 애플리케이션 모듈로부터 및 애플리케이션 모듈로 통과될 수 있는 하나 이상의 포트 또는 디바이스들에 연결되어 있다.
일반적으로, 다양한 포트들은, 예를 들어 휴대형 리시버 제어 장치를 위한 데이터 속도(수 bps)로부터 수 Mbps(MPEG 비트스트림에 대한)까지의 데이터 속도에서 다양한 특성을 가지고 있다. 따라서, 애플리케이션 모듈 및 포트사이에서 인터페이스를 효과적으로 형성하는 디바이스 관리 모듈을 제공하고 있다. 이것은 애플리케이션 모듈을 단순화할 수 있다.
애플리케이션 모듈이 정보를 보내기를 원할 때, 리시버/디코더에서의 조건에 좌우되는 전송 속도 및 다른 파라미터를 종종 제어 할 수 있을 것이다. 그러나, 정보의 수신에 있어서, 전송 속도는 자주 외부 조건에 의해서 결정된다. 그러므로, 정보의 손실을 피하기 위해서 디바이스 관리 모듈은, 보통 수신 애플리케이션 모듈이 인입 정보를 받아들일 준비가 되어 있을 때까지, 인입되는 정보를 버퍼에서 저장하기 위한 버퍼링 구조(buffering arrangement)를 포함한다.
디바이스 관리 모듈은 전형적으로 다양한 버퍼를 지정하거나 규정하도록 설계되어, 애플리케이션 모듈, 디바이스 관리 모듈, 및 포트들 사이에서 융통성있는 (flexible) 통신 구조를 가능하게 한다.
리시버/디코더에서 버퍼링의 기본 원리는 메모리에서의 메모리 섹션이 버퍼로서 지정되는 것이다. 포트로부터 인입되는 데이터는 버퍼로 공급되고 애플리케이션 모듈은 버퍼로부터 정보를 판독한다. 환경에 좌우되어, 버퍼 사이즈는 거의 모든 인입되는 메시지를 수용할 만큼 크게 선택되거나, 또는 버퍼는 새로운 인입 데이터가 버퍼에 쓰여지는 지점에 대한 하나의 포인터 및 저장된 데이터가 버퍼로부터 판독되는 지점을 대한 다른 포인터, 즉, 두 포인터 사이에서 주기적으로 동작될 수 있다. 디바이스사이에서 독립된 통신은 불가능하며, 시스템은, 데이터가 그 버퍼에서 다른 버퍼로 판독될 수 있기 전에, 버퍼가 한 포트에 의해서 채워질 필요가 있기 때문에 다소 비응답적이다.
본 발명은 리시버/디코더, 특히 리시버/디코더내에서 메모리 관리 및 데이터 전송에 관한 것이다. 본 발명은 애플리케이션 프로그램을 물리적 디바이스에 인터페이스 하는데 특별한 적용된다.
도 1은 리시버/디코더의 인터페이스 구성 다이어그램;
도 2는 리시버/디코더의 기능적인 블록 다이어그램;
도 3a는 리시버/디코더에서 메시지 관리 시스템의 간소화된 블록 다이어그램;
도 3b는 버퍼 종속-시스템을 나타낸 메시지 관리 시스템의 더 자세한 블록 다이어그램;
도 3c는 FIFO 종속-시스템을 나타낸 메시지 관리 시스템의 더 자세한 블록 다이어그램;
도 4a는 버퍼 레지스터부의 간소화된 다이어그램;
도 4b는 FIFO 레지스터부의 간소화된 다이어그램; 및
도 5는 메시지 조정 시스템이 어떻게 주요 MPEG 비트스트림과 상호작용할 수 있는가를 보여주는 블록 다이어그램.
본 발명의 주요 목적은 상기 형태의 시스템에서 개선된 메시지 조정 구조를 제공하는 것이다.
따라서, 본 발명은 메시지를 수신하기 위한 적어도 하나의 포트;
FIFO 섹션을 포함하는 메모리;
적어도 하나의 애플리케이션 모듈; 및
상기 또는 각각의 포트, 메모리, 및 상기 또는 각각의 애플리케이션 모듈에 결합되고, 메모리의 FIFO 섹션에 메시지를 기입하기 위하여 또 메모리의 FIFO 섹션으로부터 메시지를 독출하여 애플리케이션 모듈 또는 다른 포트로 메시지를 전달하기 위하여 하나의 포트에서 나타나는 메시지에 응답하여 동작하는 FIFO 제어 수단을 포함하는 리시버/디코더를 제공한다.
이것은 애플리케이션 모듈의 작동에 최소한의 간섭을 가진 애플리케이션 모듈로 인입되는 메시지가 효과적으로 통과되도록 허용할 수 있다. 이전의 버퍼링 시스템에서와 같지 않게, 데이터 전송은 FIFO 제어 방법 또는 FIFO 제어기의 제어를 받으며 애플리케이션의 제어를 받지 않는다.
FIFO 제어 방법은 우선적으로 메시지의 수신이 완성되기 전에 메모리의 FIFO 섹션으로부터 상기 애플리케이션 또는 상기 또하나의 포트로 메시지의 판독을 개시하도록 우선적으로 배열된다. 즉, 한 포트 또는 디바이스로부터 다른 포트 또는 디바이스로 계속되는 데이터의 흐름이 유지된다. 예를 들어, MPEG 소오스 디바이스로부터 수신되는 데이터는 애플리케이션으로부터 어떠한 입력이 없다면 비디오 디바이스로 직접적으로 스트림된다.
FIFO 제어 방법은 FIFO 섹션으로부터 메시지를 쇄도하도록 배열된다. 이것은 정보 흐름의 처리가 FIFO 섹션의 오버플로우 경우에 유지되도록 한다.
FIFO 제어 방법은 FIFO의 점유 상태를 검출하기 위한 점유 검출기 방법 또는 점유 검출기를 우선적으로 포함한다. 점유 검출기는 FIFO의 언더플로우 및 오버플로우를 검출하며 더우기 FIFO의 임박한 언더플로우 및 오버플로우의 적어도 하나의 시발점을 검출한다. 이것은 FIFO 제어기가 FIFO 섹션에 의해서 수신된 메시지의 목적지로 및/또는 FIFO 섹션에 의해 수신되는 메시지의 소오스로 적당한 제어 메시지를 보낼 수 있도록 한다.
FIFO 섹션은 복수의 FIFO 버퍼를 포함하며 FIFO 제어 방법은 복수의 FIFO 레지스터 제어 방법 또는 FIFO 레지스터 제어기를 포함한다.
메모리는 더우기 버퍼섹션을 포함하며 리시버/디코더는 더우기 버퍼로부터 애플리케이션 모듈로 메시지를 판독하기 위해 애플리케이션 모듈로부터 제어 신호에 응답하며 메모리의 버퍼 섹션으로 메시지를 쓰도록 한 포트에서 나타나는 메시지에 응답해서 동작하는 버퍼 제어 방법 또는 버퍼 제어기를 포함한다. 이것은 예를 들어 수신된 메시지가 메시지 본질에 좌우되어 FIFO 섹션이나 버퍼 섹션중 어느 곳에 위치되도록 하는지를 애플리케이션이 결정하도록 할 수 있다.
버퍼 섹션은 버퍼 제어 방법에서 각각의 버퍼 레지스터에 의해 규정된 두 버퍼 영역을 포함한다. 이것은 버퍼 제어기가 두 버퍼 영역사이에서 메시지를 토글링하도록 할 수 있다.
버퍼 제어 방법은 인입되는 비트 스트림이 현재 선택된 버퍼 영역에 관련되고 그리고나서 교대로 채워된 각 버퍼 영역같이 두 버퍼 영역사이에서 스위치되는 비트 스트림 모드에서 동작할 수 있다.. 버퍼 제어 방법은 더우기 인입되는 메시지가 현재 선택된 버퍼 영역에서 빈 공간과 비교되고 그런 공간이 메시지의 길이보다 작다면 다른 버퍼 영역이 선택되는 데이터그램 모드에서 동작할 수 있다.
리시버/디코더는 더우기 FIFO 섹션으로부터 공급된 비디오 디바이스 애플리케이션부 및 비디오 비트스트림을 공급하는 공급 비디오 칩부를 포함한다.
본 발명은 또한 상기 기술한 것처럼 리시버/디코더 및 리시버/디코더에 메시지를 전송하기위한 방법을 포함하는 방송 시스템까지 확장된다.
도 1을 참조하면, 디지털 대화식 텔레비전 시스템에서 사용하는 셋-탑 박스 또는 리시버/디코더(2020)가 도시되었다. 적당한 디지털 대화식 텔레비전 시스템의 설명은 여기에서 래퍼런스에 의해 하나로 통합된 출원들인 우리의 함께 출원중인 애플리케이션 PCT/EP97/02106 내지 02117에서 알 수 있다. 래퍼런스의 용이함을 위해, 전기에 기술된 명세서들에서 더욱 자세하게 기술된 부분들은 그들 명세서에서 사용된 래퍼런스 숫자들에 의해서 일반적으로 지정된다.
전기에 기술된 명세서들에서 더욱 자세하게 기술된 것처럼, 도 1 및 도 2를 참조하면, 상기 리시버/디코더(2020)는 몇몇 인터페이스를 포함한다; 엄밀히 말하면, MPEG 신호 흐름을 위한 튜너(4028), 직렬 인터페이스(4030), 병렬 인터페이스 (4032) 그리고, 시스템의 일부분을 형성하는 스마트카드(3020)용 및 은행카드(지불용, 홈뱅킹, 기타) 또는 다른 스마트카드용인 두 개의 카드 판독기(4036)를 포함한다. 상기 리시버/디코더는 최종 사용자가 텔레비전 신호(프로그램) 제작자에게 돌려보내는 선택권을 지적할 수 있도록 텔레비전 신호 제작자와 모뎀백채널(4002)에 접속된 인터페이스(4032)를 또한 포함한다. 상기 리시버/디코더는 또한 실행 시간 엔진(4008), 디바이스 매니저(4068) 및 하나 이상의 애플리케이션(4056)을 실행하기 위한 다수의 디바이스(4062)와 디바이스 드라이버(4060)를 포함한다.
본 명세서에서, 애플리케이션은 상기 리시버/디코더(2020)의 높은 단계의 기능을 제어하는 하나의 컴퓨터 코드이다. 예를 들면, 최종 사용자가 원격 제어기의 초점을 텔레비전 세트(2022)의 화면상에 보여지는 버튼 객체에 위치시킬 때, 상기 버튼에 관련된 명령 순서는 실행된다.
대화식 애플리케이션은 메뉴를 제안하며 최종 사용자의 요구에서 명령을 실행하며 애플리케이션의 목적에 관련된 데이터를 제공한다. 애플리케이션은 상주 애플리케이션, 즉 리시버/디코더(2020)의 ROM(또는 FLASH 또는 다른 비휘발성 메모리)에 저장된 애플리케이션 또는, 방송되어 리시버/디코더(2020)의 RAM 또는 FLASH 메모리로 다운로딩된 것이다.
애플리케이션은 상기 리시버/디코더(2020)에서 메모리 위치에 저장되며 리소오스 파일로 나타난다. 상기 애플리케이션은 아이콘 라이브러리 파일, 이미지 파일, 문자 폰트 파일, 색상표 파일 그리고 ASCII 텍스트 파일과 같은 데이터 파일을 사용할 수 있다. 대화식 애플리케이션은 입력 및/또는 출력함에 의해 또한 온라인 데이터를 얻을 수 있다.
상기 리시버/디코더(2020)는 RAM 용량, FLASH 용량 및 ROM 용량으로 분할된 메모리를 포함한다. 그러나, 상기 물리적인 구성은 논리적인 구성과 구별된다. 상기 메모리는 다양한 인터페이스와 관련된 메모리 용량으로 더 분할된다. 하나의 관점에서, 상기 메모리는 하드웨어 부분으로 간주될 수 있다. 또 다른 관점에서 상기 메모리는 하드웨어로부터 분리하여 보여지는 시스템 전체를 지원 또는 포함하는 것으로 간주될 수 있다.
상기 리시버/디코더는 가상머신(4007)의 부분을 형성하는 실행 시간 엔진 (4008)에서 센터로 간주될 수 있다. 이것은 하나의 측면("높은 단계" 측면)에서 애플리케이션에 연결되며 다른 측면("낮은 단계" 측면)에서 하기에 논의되는 다양한 논리 매개 장치를 통해 리시버/디코더 하드웨어(4061)에 연결된다. 상기 리시버/디코더 하드웨어는 다양한 포트 또는 상기에 논의된 바와 같이 인터페이스 (핸드셋(2026), MPEG 스트림 인터페이스(4028), 직렬 인터페이스(4030), 병렬 인터페이스(4032), 카드 판독기(4036)에 접속된 인터페이스, 모뎀백채널(4002)에 접속된 인터페이스)를 포함하는 것으로 간주될 수 있다.
도 2를 참조하면, 다양한 애플리케이션(4057)은 가상머신(4007)에 연결된다. 다른 것들이 예를 들어 MPEG 데이트 스트림 또는 요구되는 다른 포트로부터 시스템에 다운로딩될 때, 더 많이 사용되는 애플리케이션의 일부는 (4057)에 나타나므로 시스템에 더 또는 덜 영구히 남아있게 된다.
가상머신(4007)은 실행 시간 엔진(4008)에 추가하여 툴박스(4058)를 포함하는 몇몇 상주 라이브러리 기능(4006)을 포함한다. 상기 라이브러리는 상기 엔진 (4008)에 의해 사용된 C 언어로 된 갖가지 기능을 포함한다. 상기 기능들은 압축, 확장, 데이터 구조의 비교, 선긋기 등과 같은 데이터 처리를 포함한다. 상기 라이브러리(4006)는 하드웨어 및 소프트웨어 버전 번호, 유효한 RAM 공간 및 새 디바이스(4062)를 다운로딩할 때 사용되는 기능과 같은 리시버/디코더(2020)의 펌웨어(4060)에 관한 정보를 또한 포함한다. 기능은 FLASH 또는 RAM 메모리에 저장되는 라이브러리로 다운로딩될 수 있다.
실행 시간 엔진(4008)은 디바이스 관리자(4068)에 연결된다. 상기 디바이스 관리자는 디바이스 드라이브(4060)에 연결된 상기 한 세트의 디바이스(4062)에 연결된다. 상기 디바이스 드라이브(4060)는 포트 또는 인터페이스에 차례로 연결된다. 넓은 의미에서, 하나의 디바이스 드라이브는 하나의 논리적 인터페이스를 한정하는 것으로 간주할 수 있으며, 두 개의 상이한 디바이스 드라이브는 하나의 물리적인 공동의 포트에 연결되어 있다. 디바이스는 하나 이상의 디바이스 드라이브에 통상 연결된다. 만일 디바이스가 하나의 디바이스 드라이브에 연결되어 있다면 그 디바이스는 통신에 필요한 모든 기능을 통합시키도록 통상 설계되며 디바이스 드라이브 분리의 필요성은 제거된다. 어떤 디바이스들은 자체적으로 통신할 수 있다.
하기에 기술되는 것처럼, 디바이스(4062)로부터 실행 시간 엔진에까지 통신의 3 형태가 있다; 변수, 버퍼, 및 이벤트 대기행렬 세트로 통과되는 이벤트의 방식에 의한 형태이다.
리시버/디코더(2020)의 각 기능은 디바이스(4062)로 나타난다. 디바이스는 지역 또는 원격일 수 있다. 지역 디바이스(4064)는 스마트카드, SCART 연결 신호, 모뎀, 직렬 및 병렬 인터페이스, MPEG 비디오 및 오디오 재생기 그리고 MPEG 섹션 및 추출기를 포함한다. 원격 위치에서 실행되는 원격 디바이스(4066)는 포트 및 처리는 리시버/디코더의 제조자에 의해 제공 및 설계된 디바이스 및 디바이스 드라이브에 의해서 보다 오히려 시스템의 권한 또는 설계자에 의해 한정되어야 하므로 지역 디바이스와 다르다.
실행 시간 엔진(4008)은 마이크로프로세서 및 공유 애플리케이션 프로그램 인터페이스의 제어를 받으면서 동작한다. 그것들은 모든 리시버/디코더(2020)에 설치되므로 모든 리시버/디코더(2020)는 상기 애플리케이션 관점에서 동일하다.
상기 엔진(4008)은 리시버/디코더(2020)상에 애플리케이션(4056)을 실행시킨다. 상기 엔진은 대화식 애플리케이션(4056)을 실행하며 리시버/디코더(2020)의 외부로부터 이벤트를 수신하여 그래픽 및 텍스트로 디스플레이하며 특정 계산을 위하여 상기 엔진(4008)에 연결된 라이브러리의 기능을 제공하고 사용하기 위해 디바이스를 호출한다.
상기 실행 시간 엔진(4008)은 각 리시버/디코더에 설치된 실행 가능한 코드이며 애플리케이션을 해석하고 실행하는 해석기를 포함한다. 상기 엔진(4008)은 한가지 일만을 수행하는 시스템(MS-DOS 같은)을 포함하는 몇몇 시스템을 운영하는데 사용된다. 상기 엔진(4008)은 처리 순서결정 장치(다양한 동작을 수행하기 위해 키 발행과 같은 다양한 이벤트를 갖는)에 바탕을 두며, 다른 하드웨어 인터페이스로부터 이벤트 대기행렬을 관리하는 자체 일정을 포함한다. 또한 상기 엔진은 그래픽 및 텍스트를 디스플레이하는 것도 처리한다. 처리 순서결정 장치는 한 세트의 동작 그룹으로 구성된다. 각 이벤트는 처리 순서결정 장치가 이벤트 특성에 대해 독립적으로 현재 동작 그룹으로부터 또 다른 동작 그룹으로 이동 및 새 동작 그룹의 동작을 실행하는 원인이 된다.
상기 엔진(4008)은 애플리케이션을 리시버/디코더의 메모리(2028)에 로딩 및 다운로딩하는 코드 로더로 구성된다. 필수적인 코드는 최적의 사용을 확인하기 위해 RAM 또는 플래시 메모리로 로딩된다. 다운로딩된 데이터는 애플리케이션(4056)의 변형 또는 권한이 없는 애플리케이션의 실행을 방지하기 위해 권한 메커니즘에 의해 확인된다. 상기 엔진(4008)은 압축 해지기를 추가로 포함한다. 애플리케이션 코드(매개 코드의 형태)는 공간 절약 및 MPEG-2 전송 스트림으로 부터 또는 붙박이 리시버/디코더 모드를 통해 빠른 다운로딩을 하기 위해 압축된다. 상기 코드는 RAM으로 로딩 전에 압축 해지되어야 한다. 상기 엔진(4008)은 다양하게 변하는 값을 업데이트하는 상기 애플리케이션 코드를 해석하기 위한 해석기 및 에러 검사기를 또한 포함한다.
어떤 디바이스(4062)의 서비스를 사용하기 전에, 프로그램(애플리케이션 명령 순서와 같은)은 "클라이언트", 즉 디바이스(4062) 또는 디바이스 관리자(4068)에 논리적 접근 방법으로 선언되어야 한다. 상기 관리자는 클라이언트에게 상기 디바이스의 모든 접근과 관련된 클라이언트 번호를 준다. 하나의 디바이스(4062)는 몇 개의 클라이언트를 가질 수 있다. 각 디바이스(4062)에 대한 다수의 클라이언트는 디바이스(4062)의 종류에 의존하는 특징이 있다. 클라이언트는 "디바이스: 개방 채널" 절차에 의해 상기 디바이스(4062)에 소개된다. 상기 절차는 클라이언트에게 클라이언트 번호를 할당한다. 클라이언트는 "디바이스: 폐쇄 채널" 절차에 의해 상기 디바이스 관리자(4068)에서 클라이언트 목록을 꺼낸다.
디바이스 매니저(4062)에 의해 제공되는 디바이스(4062)로 접근은 동기식이거나 비동기식일 수 있다. 동기식 접근의 경우에 "디바이스: 호출" 절차가 사용된다. 본 절차는 바라는 응답을 기다리는 것을 관계하지 않는 기능성이나 즉각적으로 이용가능한 접근하는 데이터의 방식이다. 비동기식 접근의 경우에 "디바이스: I/O" 절차가 사용된다. 본 절차는 예를 들어 MPEG 스트림으로부터 테이블을 되찾거나 멀티플렉스를 찾기 위해 튜너 주파수를 스케닝에 응답을 기다리는데 관계하는 접근하는 데이터의 방식이다. 요구된 결과가 유용할 때, 이벤트는 도착을 신호하기 위해 엔진의 대기행렬에서 넣어진다. 또하나의 절차 "디바이스: 이벤트"는 기대하지 않던 이벤트들을 관리하는 방식을 제공한다.
상기 언급한 바와 같이, 상기 실행 시간 엔진의 메인 루프는 다양한 처리 순서결정 장치에 연결된다. 그리고 상기 메인 루프가 적합한 이벤트와 만나면, 제어는 처리 순서결정 장치 중 하나에 임시로 이동된다.
이와 같이, 리시버/디코더가 애플리케이션이 다양한 디바이스와 통신하도록 할 수 있는 상당한 융통성을 가진 플랫포옴을 제공하는 것을 알 수 있다.
본 목적에 대해, 디바이스 및 포트는 대등하다. 애플리케이션 모듈은 정보를 전송하고 수신하는 것이 필요하다; 디바이스( 일반적으로 국부적이며 버퍼 관리 시스템에 가깝게 연결된), 또는 포트(일반적으로 시스템에 독립이거나 또는 원격인 정보 소오스에 연결된)와 통신한다. 용어 "포트"는 상기 결과로부터 디바이스를 포함하도록 사용된다.
도 3a를 참조하면, 리시버/디코더는 데이터 버스(20) 및 제어 버스(21)를 통하여 교대로 데이터 버스(22) 및 제어 버스(23)를 통하여, 다수의 애플리케이션 모듈 (12, 12', 12")로 연결된 디바이스 관리 모듈(11)에 연결된, 다수의 포트부 (10, 10', 10")를 포함한다. 데이터 관리 모듈(11)은 또한 데이터 버스(24), 어드레스 버스(25), 및 제어 버스(26)를 통하여 메모리(13)에 연결된다.
포트 및 애플리케이션사이에서 통과하는 메시지는 버퍼 또는 FIFO를 통해 통과한다. 메모리(13)는 각각의 버퍼 및 FIFO 에 대해 두 메모리 영역(13-B 및 13-F)을 포함하며 디바이스 관리 모듈(11)은 각각의 버퍼(13-B) 및 FIFO(13-F)를 통하여 메시지의 통행을 제어하기 위한 두 제어기(14-B 및 14-F)를 포함한다.
버퍼 및 FIFO는 기본적으로 같은 방식에서 다루어지고 설치된다. 버퍼 또는 FIFO가 특성(메모리 배치, 크기등)을 규정하는 명령에 의해 설치되며 간단하게 지워질 수 있다. 버퍼 또는 FIFO가 설치 될때 그것은 상기 기술된 절차의 사용으로 포트 및 애플리케이션에 의해서 사용될 수 있다.
버퍼 레지스터를 통하여 통과하는 메시지를 처음 조정하는 것을 고려하면, 버퍼 메모리(13-B)는 디바이스 관리 모듈(11)에서 버퍼 제어기(14-B)에서 버퍼 어드레스 제어부(34)에서 각각의 버퍼 레지스터부(32 및 33)에 의해서 규정된 두 버퍼 영역(30 및 31 (도 3b))을 포함한다. 디바이스 관리 모듈(11)에서 버퍼 제어기는 버퍼 어드레스 제어부(34)를 제어하는 제어부(35)를 포함한다. 데이터 버스(36)는 디바이스 관리 모듈(11)에서 모든 데이터 통로를 함께 연결한다.
도 4a를 참조하면, 각 버퍼 레지스터부는 다수의 어드레스 레지스터(32-1, 32-2, ...32-n.)를 포함한다. 그러한 레지스터는 인입되는 데이터가 쓰여지도록 한 버퍼 영역에서 지점을 지시하는 포인터 레지스터(32') 및 메모리(13)에서 각각의 버퍼 영역의 최상부 및 최저부를 규정하며 미리 설정된 최상부 레지스터(32-1) 및 최저부 레지스터(32-n)를 포함한다.(즉 포인터 레지스터(32')는 버퍼 영역에서 빈 부분 및 데이터를 포함한 부분사이에서 경계를 지시한다.)
다양한 포트부(10, 10', 10")는 버퍼 레지스터(13-B)를 통하여 통과하도록 된 다양한 애플리케이션 모듈(12, 12', 12")에 메시지를 초기화할 수 있다. 그러한 메시지는 두 기본 형태인 비트 스트림 및 데이터그램으로 구성된다. 메시지의 두 형태사이에서 구별은 데이터그램은 미리 결정된 길이의 메시지인 반면, 비트 스트림은 결정 안된 길이의 메시지라는 것이다. 메시지의 형태는 메시지의 소오스(메시지를 동반하는 제어 신호에 의해 지시되는 것으로써), 또는 메시지 헤더(데이터 버스(36)으로부터 제어부(35)에 의해서 감시되는 것으로써)에 의해서 결정된다.
몇몇 포트부는 메시지의 양 형태를 초기화라 수 있다; 다른 것은 하나 또는 다른 형태를 초기화할 수 있다. 포트(10)가 메시지를 초기화하기를 원할 때, 디바이스 관리 모듈(11)은 전형적인 방식에서 적당한 애플리케이션 모듈(12) 및 포트(10)를 선택한다.
제어부(35)는 인입되는 메시지가 비트 스트림이나 데이터그램중 어느 것인가에 좌우되어서 작동의 두가지 형태를 가진다.
제어부(35)는 두 버퍼 영역(30, 31)중 어느 것이 사용되도록 하는가를 선택하는 플립플롭(37) 또는 이진 선택기 요소를 포함한다. 비트 스트림에 대해, 제어부(35)는 채워질 때까지 인입되는 비트 스트림을 현재 선택된 버퍼 영역(30)으로 관련된다. 그런 점에서, 제어부(35)는 다른 버퍼 영역(31)을 선택하기 위해 선택기 요소(37)의 상태를 변화시키며 비트 스트림을 버퍼 영역이 채워질 때까지 그 버퍼 영역으로 관련된다. 그리고나서 제 1 버퍼 영역(30)을 다시 선택하며 비트 스트림이 끝날 때까지 두 버퍼 영역사이에서 스위칭이나 토글링을 계속한다.
상기에서 제어부(35)는 버퍼 영역(30, 31)중 하나를 선택하며 인입되는 비트 스트림을 그런 버퍼 영역(30)등으로 관련되지만 물론 그런 상태는 간소화된 기간안에 있다는 것이 인식될 것이다. 더욱 자세히, 제어부(35)는 사실상 두 버퍼 어드레스 레지스터부(32, 33)중 하나를 선택하며 인입되는 데이터가 쓰여지는 곳으로 버퍼 영역에서 어드레스를 선택하기 위해 선택된 부(32)에서 포인터 레지스터(32')를 사용하며 적당하게 두 버퍼 어드레스 레지스터부사이에서 토글링한다.
제어부(35)는 또한 비트 스트림이 수신되는 애플리케이션 모듈을 지시한다. 애플리케이션 모듈(12)은, 버퍼 영역이 오버플로우(즉, 버퍼 영역에서 이미 데이터가 비트 스트림의 부분에서 방금온 데이터가 오래된 데이터를 덮어 쓰기전에 애플리케이션 모듈에 의해 판독된다.)하지 않기 위해, 선택적으로 두 버퍼 영역(30, 31)로부터 일부에 의해 일부로 메시지를 판독하도록 기대된다. 애플리케이션 모듈(12)은 이런 판독을 위해 하나 이상의 어드레스 레지스터를 유지하거나 추가적인 어드레스 레지스터는 그런 목적에서 각각의 버퍼 어드레스 레지스터부(32, 33)에서 제공된다. 저장된 메시지의 판독이 완성될 때, 버퍼 어드레스 레지스터부(32, 33)에서 포인터 어드레스 레지스터는 다시 설정된다.
데이터그램에 대해, 제어부(35)는 데이터그램의 길이를 결정하고 현재 선택된 버퍼 어드레스 레지스터부를 얼마나 많은 공간이 그 안에서 유용한가를 결정하기 위해 질문한다. 이런 빈 공간 값은 포인터 어드레스 레지스터와 최상부에서 값사이에서 차이를 결정함으로써 얻어진다. 그때 제어부는 빈 공간 값을 데이터그램의 길이와 비교하며 데이터그램 길이가 그 빈 공간 값보다 크다면 다른 버퍼 영역을 선택하기 위해 선택기 요소(37)의 상태를 변화시킨다.
비트 스트림 모드에서 인입되는 메시지가 버퍼 영역(30, 31)을 오버플로우한다면 또는 데이터그램 모드에서 버퍼 영역이 인입되는 메시지를 받아들이기 위한 충분한 빈 공간을 가지지 못한다면, 그때 시스템은 메시지 수신이 억제되고 중지된다. 적당한 회복 동작은 그때 취해질 수 있는데 예를 들어 가능하다면 메시지의 재전송을 요구하거나 메시지 수신이 시작하기전 상태로 시스템을 다시 세팅하는 것이다.
즉, 비트 스트림에 대해, 인입되는 메시지는 어느 버퍼 영역이 현재 선택되든 지로 관련되며 인입되는 메시지가 그런 영역을 오버플로우한다면 필요하다면 반복되는 두 버퍼 영역사이에서 스위칭하면서 자동적으로 다른 버퍼영역으로 스위칭된다. 그러나 데이터그램은 완전한 인입되는 메시지가 단독 버퍼 영역으로 관련된다.
이것은 임의이며 알려진 길이 양쪽의 인입되는 메시지를 버퍼 레지스터의 각각의 간단한 구조와 함께 성공적으로 받아들이도록 가능하게 한다.
버퍼는 또한 애플리케이션사이에서 메시지의 전송을 위해 더욱더 일반적으로 사용될 수 있다.
FIFO를 통하여 통과하는 메시지의 조정으로 돌리면, 버퍼 메모리(13-F)는 디바이스 관리 모듈(11)에서 FIFO 제어기(14-F)에서 각각의 FIFO 레지스터부(41)에 의해 규정된 FIFO(40 (도 3c))의 세트를 포함한다. 데이터는 데이터 버스(36 (도 3b))에 연결된 데이터 버스(24)위로 FIFO(40)으로부터 및 으로 통과한다. 디바이스 관리 모듈에서 FIFO 제어기(14-F)는, FIFO(40)으로 메시지를 쓰는 것과 FIFO로부터 그들 메시지를 판독하는 것을 제어하는, 제어기(14-F) FIFO 제어부(43) 세트를 포함한다.
도 4b를 참조하면, 각각의 FIFO 레지스터부(41)는 다수의 어드레스 레지스터 (42-1, 42-2, ...42-n)를 포함한다. 그런 레지스터는, 메모리(13)에서 각각의 FIFO 영역의 최저부 및 최상부를 규정하고 미리 설정된 최상부 레지스터(42-1) 및 최저부 레지스터(42-2), 인입되는 데이터가 쓰여지는 FIFO 영역에서 지점을 지시하는 쓰기 포인터 레지스터(42-3), 및 이미 저장된 데이터가 판독되는 FIFO 영역에서 지점을 지시하는 판독 포인터 레지스터(42-4)를 포함한다.
디바이스 매니저를 일반적으로 고려하면, 즉 메시지는 FIFO나 버퍼를 사용하면서 포트로부터 애플리케이션으로, 애플리케이션으로부터 포트로, 및 애플리케이션사이에서 통과될 수 있다.
버퍼 사용은 최상부 레벨 애플리케이션에 의해 제어된다. 시스템은 메시지가 최상부 레벨로 통과될 때 애플리케이션은 버퍼의 내용을 판독하도록 어떤 조치를 취하기 전에 버퍼 매니저(14-B)로부터 "버퍼 준비"메시지의 수신을 기다리는 것에 기초된 이벤트이다. 이런 구조를 가지고, 포트사이에서 독립된 통신은 불가능하다. 더우기 상기 시스템은, 버퍼는 또하나의 포트가 그 내용을 판독할 수 있기 전에 한 포트에 의해 채워질 필요가 있기 때문에, 다소 반응적이지 못하다.
FIFO를 가지고, 사용은 FIFO 제어기 또는 조정기(14-F)에서 FIFO 제어부(43)에 의해 제어된다. 정보는 부합하는 FIFO 제어부(43)를 포함하면서 FIFO(40)로 쓰여지고 FIFO 조정기(14-F)의 제어아래 판독된다. 데이터 전송은 고로 애플리케이션(12)에 의해 조정되는 대신에 FIFO 조정기(14-F)의 제어아래 있다. 정보의 스트림은 고로 포트(10)와 애플리케이션(12)사이에서뿐 아니라 두 포트사이에서 직접적으로 흐를 수 있다.
데이터는 쓰기 및 판독 포인터(42-1, 42-2)를 사용하면서 FIFO(40)으로 쓰여지고 그곳으로부터 판독된다. 그들 포인터는 FIFO 조정기(14-F)에 의해 제어된다. 이것은 독립적으로 수행하도록 FIFO(40)의 판독 및 쓰기를 허용한다. 즉, 포트(10) 또는 애플리케이션(12)은 FIFO(40)으로부터 판독되는 메시지의 근원에 관하여 어떤 정보를 가져야만 하지는 않는다. FIFO(40)으로부터 정보의 판독은 FIFO(40)이 채워지기 전에 또는 메시지가 FIFO(40)으로 수신되며 쓰여지기 전에 시작한다. 이것은 정보의 계속적인 흐름이 성취되도록 한다. FIFO(40)으로부터 정보의 판독은 계속적일 필요는 없다; 판독은 때때로 정지될 수도 재 시작할 수도 있다.
FIFO 조정기(14-F)는 FIFO(40)으로 쓰여지는 정보가 FIFO 최저부 어드레스에서 시작되며 FIFO 최상부 어드레스 밖으로 가지 않는가를 체크한다. FIFO(40)이 작동되는 정확한 방식은 그것으로 만들어지는 특별한 사용을 좌우한다. 즉, FIFO(40)은 FIFO 최저부 어드레스로 쓰여지는 각각의 메시지의 시작과 함께 단독 메시지 토대에서 작동될 수 있다. 선택적으로, FIFO(40)은 이전의 메시지의 상기 끝에 즉각적으로 쓰여지는 새로운 메시지의 시작 및 인접한 것으로 취급되는 FIFO의 최상부와 최저부와 함께 주기적으로 작동된다.
메시지가 FIFO(40)의 길이보다 더 길다거나 이전의 메시지가 FIFO(40)으로부터 완전히 판독되기 전에 도착하기를 시작한다면, 잠재적인 충돌의 위험이 있다. FIFO 제어부(43)는 그러한 충돌을 감시한다. 충돌이 감지되면, FIFO 제어부(43)는 물론 메시지(이를테면 포트(10))의 소오스, 메시지(이를테면 애플리케이션(12))의 목적지 또는 둘다에 적당한 제어신호를 보낸다.
만약 쓰기 포인터 레지스터(42-3)가 판독 포인터 레지스터(42-4)와 보조를 맞춘다거나 판독 포인터 레지스터(42-4)가 쓰기 포인터 레지스터(42-3)와 보조를 맞춘다면 실제 충돌이 발생한다. 그러나, FIFO 제어부(43)는, 쓰기 포인터 레지스터(42-3)가 판독 포인터 레지스터(42-4)의 어떤 거리 안에 접근하거나 또는 반대로 접근하면, 잠재적인 충돌을 검출하도록 구성된다. 디바이스 관리 모듈(11)은 FIFO 제어부(43)에 대한 그러한 거리를 설정한다. FIFO(40)에 대한 오버플로우 및 언더플로우 시발점이 같을 필요는 없으며 다른 FIFO(40)에 대한 시발점은 같을 필요가 없다. 또한 접근한 실제 오버플로우나 언더플로우로써 더욱 긴급한 경고를 점차적으로 주기 위하여 둘 이상의 오버플로우 및/또는 언더플로우 시발점이 있는 것이 가능하다.
추가적으로, FIFO 제어부(43)는, 오버플로우의 결과 겹쳐 쓰는 것을 허용하기 위하여 또는 또하나의 쓰기를 보류하기 위하여, 설정 가능한 플래그를 포함한다. 전자는 FIFO(40)으로부터 오래된 정보를 효과적으로 쇄도한다. 그러한 쇄도는 정보의 흐름의 계속된 처리를 허용하기 위해 바람직하다.
FIFO 제어부(43)는 고레벨 애플리케이션을 위하여 전송기능을 수행하는 저레벨 애플리케이션(또는 디바이스처럼 몇몇 환경에서)으로써 간주될 수 있다. 고레벨 애플리케이션은 전송기능이 면제되며 전송되는 메시지는, 그것을 얻음으로써 그 자체에 관하여야만 하는 것이 없다면 직접적으로 그것을 사용할 수 있는, 고레벨 애플리케이션에 자동적으로 효과적으로 공급된다.
도 5는 FIFO가 어떻게 주요 MPEG 비트 스트림의 비디오 신호와 결합된 비디오 신호를 발생하도록 사용될 수 있는가를 보여준다. 도 3a, 3C, 및 4B의 메시지 조정 시스템은, 하위 층 애플리케이션으로부터 어떤 입력을 필요로 함이 없이, MPEG 디바이스 소오스로부터 직접 비디오 디바이스로 수신되는 스트림 데이터에 사용된다.
MPEG 비트스트림(도 1, 보통적으로 튜너(4028)로부터 수신되는 비트스트림인)은 라인(50)을 지나 서비스 디바이스(52)에 연결되는 디멀티플렉서(51)에 공급된다. 디바이스(52)의 기능은 비디오를 설치하는 것이다; 즉, 주요 비디오 설치에 대한 정보를 얻으며 그것의 디스플레이를 제어하는 것이다. 디멀티플렉서(51)는 MPEG 비디오 비트스트림으로부터 주요 비디오 시퀀스(비디오 PID 시퀀스)를 배출하도록 제어된다. 이런 주요 비디오 시퀀스는 라인(53)에서 MPEG-2 칩(54)에 공급된다.
추가적으로, 비디오 MPEG-2 비트스트림은 라인(55)상에서 하나 이상의 FIFO(40)으로부터 배출될 수 있다. 그런 비트스트림은 라인(53)상에서 주요 비디오 신호에 연결된 비디오 디바이스(56)로 통과된다. 라인(55)상에 비트스트림은 비디오 디바이스(56)에 의해서 처리되며 MPEG-2 칩(54)에 공급되는 보조적인 비디오 시퀀스로 나타난다. 비디오 시퀀스는 오직 MPEG 층으로 디스플레이된다.
MPEG 층의 각 비디오 시퀀스는, 배경 층의 연관된 화소와 혼합하기 위한 이미지의 각 화소에 공급되는, 자신의 알파 혼합 계수를 가진다. 사용되지 않는 MPEG 층의 부분들은 완전하게 투명하다.
상기 기술된 다양한 기능의 수행의 자세한 설명, 및 하드웨어와 소프트웨어사이에서 그들의 분배는 수행자에 선택의 문제이고 자세히 기술되지 않는다. 그러나, 리시버/디코더에서 요구되는 동작을 수행할 수 있는 바쳐지고 통합된 회로는 상업적으로 유용 가능하거나 쉽게 고안될 수 있으며, 그것들이 하드웨어 가속기에 대한 토대로서 사용될 수 있거나 또는 소프트웨어를 실행하도록 요구된 처리력을 감소시키면서 요구된 다양한 동작을 수행하기 위해 제공된 하드웨어 가속기를 생산하는데 더욱 우선적으로 변경될 수 있다. 그러나, 요구된 동작은 충분한 처리력이 유용하다면 소프트웨어에서 수행될 수 있다.
모듈 및 다른 구성요소들은 선택적이고 바람직한 특징을 가지고 각 구성요소에 의해서 제공되는 기능과 특징에 관점에서 기술되었다. 제공된 정보와 명세내역과 함께, 그들 특징의 실제 수행은 당업자에 솔직해야만 하며 자세한 설명은 수행자에게 남겨진다. 예를 들어 어떤 모듈은 바람직하게 C프로그래밍으로 쓰여지고 애플리케이션을 실행하기 위해 사용된 처리기를 실행해서 컴파일된 소프트웨어에서 수행될 수 있다; 그러나, 어떤 구성요소들은 개별 처리기에서 수행되고 몇몇 또는 전체 구성요소들은 제공된 하드웨어에 의해서 수행될 수 있다.
상기 모듈 및 구성요소들은 거의 예시되었고, 상기 발명은 다양한 방법에서 수행되었으며, 특히 어떤 구성요소들은 유사한 기능을 수행하는 다른 것들과 결합되거나 어떤 구성요소들은 간소화된 수행에서 생략될 수 있다. 각 기능의 하드웨어 및 소프트웨어 수행은 단독 구성요소내에서 및 구성요소사이에서 둘다 자유롭게 혼합될 수 있다.
하드웨어, 컴퓨터 소프트웨어, 및 동등류에 의해 수행되는 기능은 전기적 및 유사신호를 사용하거나 사용되어 수행된다는 것을 쉽게 알수 있다. 소프트웨어 수행은 ROM에서 저장되거나 FLASH에서 패치될 수 있다.

Claims (15)

  1. 메시지를 수신하기 위한 적어도 하나의 포트;
    FIFO 섹션을 포함하는 메모리;
    적어도 하나의 애플리케이션 모듈; 및
    상기 또는 각각의 포트, 메모리, 및 상기 또는 각각의 애플리케이션 모듈에 결합되고, 메모리의 FIFO 섹션에 메시지를 기입하기 위하여 또 메모리의 FIFO 섹션으로부터 메시지를 독출하여 애플리케이션 모듈 또는 다른 포트로 메시지를 전달하기 위하여 하나의 포트에서 나타나는 메시지에 응답하여 동작하는 FIFO 제어 수단을 포함하는 리시버/디코더.
  2. 제 1항에 있어서, FIFO 제어 방법이 메시지의 수신이 완성되기 전에 메모리의 FIFO 섹션으로부터 상기 애플리케이션 모듈 또는 상기 또하나의 포트로 메시지의 판독을 개시하도록 배열되는 것을 특징으로 하는 리시버/디코더.
  3. 제 1항 또는 2항에 있어서, FIFO 제어 방법이 FIFO의 점유상태를 검출하기 위한 점유 검출기 방법을 포함하는 것을 특징으로 하는 리시버/디코더.
  4. 제 3항에 있어서, 점유 검출기 방법이 FIFO의 오버플로우 및 언더플로우를 검출하는데 적합한 것을 특징으로 하는 리시버/디코더.
  5. 제 3항 또는 4항에 있어서, 점유 검출기 방법이 FIFO의 임박한 오버플로우 및 언더플로우의 적어도 하나의 시발점을 검출하는데 적합한 것을 특징으로 하는 리시버/디코더.
  6. 전기의 항중에 어느 한 항에 있어서, FIFO 제어 방법이 FIFO 섹션으로부터 메시지가 쇄도하도록 배열된 것을 특징으로 하는 리시버/디코더.
  7. 전기의 항중에 어느 한 항에 있어서, FIFO 섹션이 다수의 FIFO 버퍼를 포함하고 FIFO 제어 방법이 각각의 다수 FIFO 레지스터 제어 방법을 포함하는 것을 특징으로 하는 리시버/디코더.
  8. 전기의 항중에 어느 한 항에 있어서, 메모리가 버퍼 섹션을 더욱 포함하고 리시버/디코더가 메모리의 버퍼 섹션으로 메시지를 쓰도록 한 포트에서 나타나는 메시지에 응답하며 버퍼로부터 애플리케이션 모듈로 메시지를 판독하도록 애플리케이션 모듈로부터 제어 신호에 응답하여 동작하는 버퍼 제어 방법을 포함하는 것을 특징으로 하는 리시버/디코더.
  9. 제 8항에 있어서, 버퍼 섹션이 버퍼 제어 방법에서 각각의 버퍼 레지스터에 의해 규정된 두개의 버퍼 영역을 포함하는 것을 특징으로 하는 리시버/디코더.
  10. 제 9항에 있어서, 버퍼 제어 방법은 인입되는 비트 스트림이 현재 선택된 버퍼 영역으로 관련되며 그리고나서 교대로 채워지는 각 버퍼 영역으로서의 두개의 버퍼 영역사이에서 스위칭되는 비트 스트림 모드에서 동작 가능한 것을 특징으로 하는 리시버/디코더.
  11. 제 9항 또는 10항에 있어서, 버퍼 제어 방법이 인입되는 메시지가 현재 선택된 버퍼 영역에서 빈 공간에 비교되며 상기 공간이 메시지의 길이보다 작다면 다른 버퍼 영역이 선택되는 데이터그램 모드에서 작동 가능한 것을 특징으로 하는 리시버/디코더.
  12. 전기의 항중에 어느 한 항에 있어서, FIFO 섹션으로부터 공급되는 비디오 디바이스 애플리케이션부 및 비디오 비트스트림이 공급되는 공급 칩부를 포함하는 것을 특징으로 하는 리시버/디코더.
  13. 전기의 항중에 어느 한 항에 있어서의 상기 리시버/디코더 및 리시버/디코더로 메시지를 전송하기 위한 방법을 포함하는 것을 특징으로 하는 방송시스템.
  14. 상기 기술된 리시버/디코더.
  15. 상기 기술된 방송시스템.
KR1020007010748A 1998-03-27 1999-03-29 리시버/디코더 및 이를 구비한 방송 시스템 KR100604211B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP98400764.1 1998-03-27
EP98400764A EP0946053A1 (en) 1998-03-27 1998-03-27 Memory management in a receiver/decoder

Publications (2)

Publication Number Publication Date
KR20010042226A true KR20010042226A (ko) 2001-05-25
KR100604211B1 KR100604211B1 (ko) 2006-07-24

Family

ID=8235318

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007010748A KR100604211B1 (ko) 1998-03-27 1999-03-29 리시버/디코더 및 이를 구비한 방송 시스템

Country Status (20)

Country Link
EP (2) EP0946053A1 (ko)
JP (1) JP4642230B2 (ko)
KR (1) KR100604211B1 (ko)
CN (1) CN1242605C (ko)
AT (1) ATE274773T1 (ko)
AU (1) AU2953199A (ko)
BR (1) BR9909128A (ko)
CA (1) CA2324086A1 (ko)
DE (1) DE69919686T2 (ko)
ES (1) ES2226352T3 (ko)
HR (1) HRP20000599A2 (ko)
HU (1) HUP0105435A3 (ko)
ID (1) ID26209A (ko)
IL (1) IL138440A0 (ko)
NO (1) NO20004837L (ko)
NZ (1) NZ507160A (ko)
PL (1) PL343250A1 (ko)
TR (1) TR200002764T2 (ko)
WO (1) WO1999051021A1 (ko)
ZA (1) ZA200006082B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020073218A1 (en) * 1998-12-23 2002-06-13 Bill J. Aspromonte Stream device management system for multimedia clients in a broadcast network architecture
GB0130407D0 (en) * 2001-12-20 2002-02-06 Koninkl Philips Electronics Nv Delivery of digital applications
TWI284810B (en) * 2004-08-18 2007-08-01 Via Tech Inc Software communication between MPEG layer and servo layer
US8045472B2 (en) * 2008-12-29 2011-10-25 Apple Inc. Credit management when resource granularity is larger than credit granularity

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH083956B2 (ja) * 1986-09-18 1996-01-17 日本テキサス・インスツルメンツ株式会社 半導体記憶装置
US4942553A (en) * 1988-05-12 1990-07-17 Zilog, Inc. System for providing notification of impending FIFO overruns and underruns
TW237589B (ko) * 1991-02-27 1995-01-01 Gen Electric
US5442390A (en) * 1993-07-07 1995-08-15 Digital Equipment Corporation Video on demand with memory accessing and or like functions
JP2658832B2 (ja) * 1993-11-12 1997-09-30 日本電気株式会社 動画像復号制御装置
US5642498A (en) * 1994-04-12 1997-06-24 Sony Corporation System for simultaneous display of multiple video windows on a display device
US5720037A (en) * 1994-06-16 1998-02-17 Lucent Technologies Inc. Multimedia on-demand server
JP3560078B2 (ja) * 1995-02-06 2004-09-02 ソニー株式会社 電子機器制御装置、電子機器制御方法、および電子機器制御システム
IT1275228B (it) * 1995-02-09 1997-07-31 Italtel Spa Decodificatore per postazione di utente in un sistema di televisione interattiva
FR2741172B1 (fr) * 1995-11-09 1997-12-12 Thomson Multimedia Sa Dispositif de traitement de donnees comportant une memoire tampon

Also Published As

Publication number Publication date
DE69919686T2 (de) 2005-09-01
KR100604211B1 (ko) 2006-07-24
BR9909128A (pt) 2000-12-19
DE69919686D1 (de) 2004-09-30
EP1064781B1 (en) 2004-08-25
HUP0105435A2 (hu) 2002-04-29
TR200002764T2 (tr) 2001-01-22
CN1303566A (zh) 2001-07-11
ES2226352T3 (es) 2005-03-16
EP1064781A1 (en) 2001-01-03
EP0946053A1 (en) 1999-09-29
AU2953199A (en) 1999-10-18
HRP20000599A2 (en) 2001-06-30
ZA200006082B (en) 2001-05-30
HUP0105435A3 (en) 2002-05-28
ID26209A (id) 2000-12-07
NO20004837L (no) 2000-11-27
JP2002510908A (ja) 2002-04-09
PL343250A1 (en) 2001-07-30
WO1999051021A1 (en) 1999-10-07
CN1242605C (zh) 2006-02-15
IL138440A0 (en) 2001-10-31
ATE274773T1 (de) 2004-09-15
NO20004837D0 (no) 2000-09-26
JP4642230B2 (ja) 2011-03-02
NZ507160A (en) 2002-03-28
CA2324086A1 (en) 1999-10-07

Similar Documents

Publication Publication Date Title
ES2201511T3 (es) Tratamiento de un flujo de transporte digital.
EP0996894B1 (en) Ieee1394 set top box device driver
KR100604211B1 (ko) 리시버/디코더 및 이를 구비한 방송 시스템
JP4549532B2 (ja) レシーバ/デコーダおよびビデオデータの処理方法
EP0872798A1 (en) Computer memory organization
US6804820B1 (en) Modem control
MXPA00009426A (en) Memory management in a receiver/decoder
EP1055176A2 (en) Access control system
CZ20003564A3 (cs) Přijímař/dekodér a vysílací systém
CZ20003997A3 (cs) Způsob zpracování video dat a přijímač /dekodér
MXPA00010628A (en) Receiver/decoder and method of processing video data
MXPA00003213A (en) Modem control
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
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: 20130620

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140630

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150619

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160624

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee