HRP20000166A2 - Multithread data processor - Google Patents

Multithread data processor Download PDF

Info

Publication number
HRP20000166A2
HRP20000166A2 HR20000166A HRP20000166A HRP20000166A2 HR P20000166 A2 HRP20000166 A2 HR P20000166A2 HR 20000166 A HR20000166 A HR 20000166A HR P20000166 A HRP20000166 A HR P20000166A HR P20000166 A2 HRP20000166 A2 HR P20000166A2
Authority
HR
Croatia
Prior art keywords
memory
thread
virtual machine
objects
event
Prior art date
Application number
HR20000166A
Other languages
English (en)
Inventor
Hongtao Liao
Rui
Original Assignee
Canal Plus Sa
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 Canal Plus Sa filed Critical Canal Plus Sa
Publication of HRP20000166A2 publication Critical patent/HRP20000166A2/hr

Links

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)

Description

Predmet izuma
Izum je iz područja telekomunikacija.
Ovaj izum odnosi se na uređaj za obradu digitalnih audiovizualnih podataka, poglavito na dekoder za digitalni televizijski sustav, koji sadrži višenitni obrađivač podataka.
Stanje tehnike
Sustav koji se temelji na softveru za kontrolu dekodera u digitalnom televizijskom sustavu koji koristi virtualni stroj i izvršni pogon za obradu digitalnih televizijskih podataka i učitavanje aplikacija opisan je u PCT patentnoj prijavi PCT/EP97/02116. Sustav ima određen broj prednosti usporedimo li ga s prethodno poznatim sustavima prijemnika/dekodera, posebice glede neovisnosti aplikacijskih slojeva sustava prema hardverskim elementima proizvedenog dekodera uporabom strukture virtualnog stroja.
Sustav opisan u ovoj aplikaciji koristi načelo jedne datoteke sa strukturom reda čekanja za kontroliranje i obradu događaja koji se javljaju u sustavu. Sa strukturom koja se temelji na redu čekanja povezan je određen broj nedostataka, uključujući razmjerno spori odgovor u odnosu na događaje visokog prioriteta te nemogućnost da se učinkovito opsluži određen broj konkurentnih ulaza u sustav. Kao što je opisano, sustav ima određen broj jedinica sekvenciranja obrade. Premda sustav može načiniti prioritet operacija u takvoj jedinici sekvenciranja, kada se jednom započne određeni proces, nije moguća promjena na drugi.
Nedostaci ovakve strukture postaju osobito akutni u slučaju kada prijemnik/dekoder sadrži interaktivnu aplikaciju. Primjerice, nemogućnost sustava da promijeni zadaće kao odgovor na naredbu prioriteta uz često mnogo vremena koje je potrebno za učitavanje podataka može rezultirati zakočenim sustavom u jednoj operaciji bez obzira na naredbe korisnika da se izvrši promjena u drugi način rada.
Također postoji potreba da se pojednostavni struktura pogonskog uređaja u ovom poznatom sustavu. Komuniciranje između izvršnog pogona i uređaja na hardverskoj razini poznatog dekodera vrši se određenim brojem pogonskih uređaja, pri čemu se cijelom organizacijom upravlja pomoću upravljača uređaja koji upravlja određivanjem prioriteta poruka događaja te ulazom u strukturu reda čekanja jedinice sekvenciranja obrade. Kao što je razmotreno u aplikaciji, dok izvršni stroj daje vlasnik sustava, pogonske uređaje i upravljač obično daje proizvođač dekodera, koji slijedi specifikacije vlasnika sustava.
U ovom kontekstu, pojam “uređaj” obično se rabi za označavanje pogonskih uređaja koji se koriste za obradu podataka koje prima i prenosi dekoder, kao što su oni primljeni putem inteligentne kartice ili putem emitiranog toka itd.
Razlike u interpretiranju specifikacije proizvođača dekodera može dovesti do problema kada, primjerice, upravljač ne usvaja točnu klasifikaciju prioritetnih događaja. U takvom slučaju, sustav reda čekanja bit će narušen budući da će događaji koji se dovode filteru događaja i sekvenceru obrade biti pogrešno identificirani glede prioriteta te će biti pogrešno opsluženi sustavom reda čekanja.
Cilj jednog aspekta ovog izuma je rješavanje ovog problema.
Sukladno prvom aspektu ovog izuma, načinjen je uređaj za obradu digitalnih audiovizualnih podataka. Uređaj ima bar jedan pridruženi hardverski operativni sustav koji je povezan s jednim ili više hardverskih uređaja za prijenos i prijem podataka u kojima uređaj nadalje sadrži sustav za obradu podataka koji sadrži višenitni virtualni stroj koji je prilagođen, između ostalog, prijemu poruka događaja koje signalizira hardverski operativni sustav te dodjeljivanju objekata događaja jednoj ili više niti, te u kojima nit koja sadrži objekt događaja može biti zaustavljena tijekom njenog izvršenja da se omogući izvršenje druge niti.
Uporabom višenitne arhitekture, ovaj izum tako omogućuje sustavu da odgovori učinkovito na dolazak događaja koji su primljeni putem vanjskih međusklopova uređaja, čime se omogućuje brza obrada događaja visokog prioriteta tijekom privremene suspenzije događaja koji nisu hitni.
U jednoj realizaciji, virtualni stroj ima takvu višenitnu strukturu u kojoj je nit zaustavljena tijekom izvođenja nakon stvaranja niti višeg prioriteta. Mada je ova realizacija preferirana glede njenog odgovora na prioritetne događaje, mogu se načiniti druge realizacije, kao što je realizacija “vremenskog odreska” (time-slice), u kojoj virtualni stroj prekida izvršenje niti u unaprijed određenim periodičkim intervalima da vidi postoji li druga nit koju treba izvršiti.
Poželjno, virtualni stroj sadrži upravljač događaja koji je prilagođen da odgovara na poruku događaja kojega je signalizirao hardverski operativni sustav spremanjem objekta događaja u jednoj ili više niti u red čekanja niti koji je prioritetno organiziran.
Na taj način, klasificirani događaji prema prioritetu mogu se opsluživati pomoću virtualnog stroja, čime se izbjegavaju problemi poznatog sustava u kojima se događaji prvo poredaju za ubacivanje u procesorski red čekanja pomoću pogonskih uređaja i upravljača niske razine. Kao što je razmotreno gore, realizacija pogonskog uređaja može se mijenjati od jednog proizvođača do drugog. Naprotiv, u poželjnoj realizaciji, poruke događaja su sortirane i poredane po prioritetu pomoću upravljača događajima u virtualnom stroju, a njegova svojstva se ne mijenjaju od platforme do platforme.
Uzimajući u obzir činjenicu da se opsluživanje događaja sada efektivno izvršava virtualnim strojem, sustav ipak može imati u određenim realizacijama jedan ili više pogonskih uređaja koji služe kao međusklop između operativnog sustava virtualnog stroja i hardverske razine operativnog sustava.
Uz događaje koji dolaze od hardvera operativnog sustava, upravljač događaja može se također konfigurirati da odgovara na poruke događaja koji nastaju u virtualnom stroju ili od aplikacija više razine.
U poželjnim realizacijama, redoslijed objekata događaja u niti može se također poredati prema prioritetu sukladno prioritetu događaja i/ili vremenu dolaska događaja. To može biti dodatak početnom poretku prema prioritetu koji se vrši u dodjeljivanju naredbi nitima u redu čekanja niti.
U jednoj realizaciji, virtualni stroj može također imati tablicu s putanjom koja sadrži informaciju glede mogućih poruka događaja koje upućuje upravljač događaja da omogući upravljaču događaja da odredi pridruženu nit primljenoj poruci događaja. Ova tablica s putanjom može također biti upotrijebljena da se odredi prioritet objekta događaja u niti. Kao što je razumljivo onom koji poznaje ovo područje, mogu se načiniti alternativni sklopovi.
Uz upravljač događajima i tablicu s putanjom, virtualni stroj također poželjno ima regulator rasporeda (scheduler) koji je prilagođen ispitivanju niti koje su u redu čekanja niti prioritetno poredane i naredbu za izvršenje niti koja ima najviši prioritet u tom vremenu. Da se realizira rad preemptivni upravljač niti, upravljač događajima može se prilagoditi da signalizira dolazak poruke događaja i da pokrene regulator rasporeda da ispita novi status niti koje su u redu čekanja niti.
Sljedeći problem sa sustavom u PCT patentnoj prijavi PCT/EP97/02116 koja je gore opisana odnosi se na obradu primljenog koda. Premda uporaba virtualnog stroja i izvršnog pogona dozvoljava da sustav koji je opisan u ovoj aplikaciji bude većinom neovisan o razini hardvera u sustavu, otvorenost sustava je ipak ograničena kodom koji je korišten za pisanje aplikacija koje su na vrhu razine virtualnog stroja u poznatom sustavu. Kao što je opisano u patentnoj prijavi, kod je napisan u interpretativnom jeziku, koji se učitava u prijemnik iz centra za emitiranje i kojega interpretira interpreter u virtualnom stroju.
Mada kod može biti tako odabran da bude u komercijalno poznatom i standardiziranom jeziku, problemi mogu nastati ako prijemnik mora obraditi aplikacije koje su napisane u dva ili više različitih kodova. Problem nastaje, primjerice, kada se u sustav emitiranje uvede dekoder, a postojeći dekoderi u okruženju su prilagođeni prijemu aplikacija koje su napisane u kodu koji je različit od onoga koji se rabi u sadašnjem dekoderu. U takvom slučaju, operator može biti prisiljen da učita dva puta danu aplikaciju: jednom napisanu u izvornom jeziku za postojeće dekodere i jednom napisanu u novom kodu za nove dekodere. Razumljivo, takva operacija je razmjerno nedjelotvorna glede uporabe frekvencijskog opsega.
Cilj sljedećeg aspekta ovog izuma je rješavanje ovog problema.
Sukladno drugom aspektu ovog izuma, načinjen je uređaj za obradu digitalnih audiovizualnih podataka koji sadrži jedan ili nekoliko hardverskih uređaja za prijenos i prijem podataka izvan uređaja. Uređaj dodatno sadrži sustav za obradu podataka uključivo prvi virtualni stroj koji je prilagođen, između ostalog, prijemu koda koji je napisan u interpretativnom jeziku te učitan pomoću jednog ili više hardverskih uređaja, pri čemu je virtualni stroj prilagođen da razlikuje kodove koji su napisani u bar dva interpretativna jezika u ovisnosti o strukturi primljenog koda i da pošalje takav kod odgovarajućem interpreterskom sklopu za interpretiranje i izvršenje.
Izradom virtualnog stroja koji je prilagođen razlikovanju primljenog koda i zajedno s interpreterskim sklopom može interpretirati takav kod, ovaj izum izbjegava probleme koji su povezani sa sustavima prethodnih tehnika te omogućuje stroju da obradi naredbe koje stižu napisane u različitim interpretativnim jezicima. Tako se može načiniti potpuno operativan sustav, kako u odnosu prema gornjim aplikacijama tako i prema donjim hardverskim međusklopovima.
U jednoj realizaciji, virtualni stroj razlikuje interpretativne kodove iz bar dva interpretativna jezika temeljem svojstava poruke u zaglavlju, koja je povezana s modulom koda u jednom jeziku. Konkretno, virtualni stroj može razlikovati interpretativni kod temeljem prisutnosti ili odsutnosti poruke u zaglavlju koja je povezana s modulom koda u jednom jeziku. Ostale realizacije mogu se predvidjeti, gdje stroj razlikuje kodove prema “zastavici” ili drugom elementu koda u toku ili na kraju toka prenesenog koda ili prema imenu datoteke modula koda.
Ovaj uređaj je posebice primjenjiv u situaciji u kojoj jedan ili više interpretativnih jezika odgovara objektno orijentiranom jeziku. U takvom primjeru, stroj može istražiti prisutnost poruke zaglavlja koja je povezana s datotekom klase u tom jeziku.
Da se primijeni kod, svaki interpreterski sklop može izvršiti kod koristeći jednu ili više biblioteka funkcija. Poželjno, zajednička biblioteka funkcija dijeli se s množinom interpreterskih sklopova, da se smanji količina memorije koja je nužna za biblioteke funkcija.
Bez obzira na prisutnost zajedničke biblioteke funkcija, jedna ili više interpreterskih sklopova može izvršiti kod korištenjem biblioteke funkcija koje su samo za taj interpreter. To može biti poželjno kada su, primjerice, određene specijalizirane funkcije jednostavnije za izvršenje korištenjem namjenske biblioteke funkcija. Podrazumijeva se, veličina sustava može se smanjiti korištenjem biblioteke funkcija koja je zajednička za oba virtualna stroja, kada je to moguće i/ili pogodno.
Sljedeći problem sa sustavom PCT patentne prijave PCT/EP97/02116 koja je gore opisana odnosi se na opsluživanje memorije koju koristi sustav u obradi naredbi. Sustav koji je opisan u ovoj aplikaciji počiva na upravljaču uređaja da se upravlja memorijskim elementima. U ovom uređaju svi pozivi koji se upućuju memoriji iz virtualnog stroja se tretiraju na jednaki način. Ovdje neće biti razmotreno kako se uporabom memorijskog prostora može optimizirati upravljač uređaja.
Upravljač uređaja čini dio sloja ispod virtualnog stroja i koje je ugradio proizvođač prijemnika/dekodera, a ne vlasnik sustava. Postoji također rizik da realizacija koju je izabrao proizvođač prijemnika/dekodera nije optimalna u usporedbi s potrebama elemenata sustava više razine.
Cilj ovog izuma u sljedećem aspektu je prevladati neke ili sve ove probleme te načiniti poboljšani sustav za upravljanje memorijom u audiovizualnom uređaju.
Sukladno trećem aspektu ovog izuma načinjen je uređaj za obradu audiovizualnih podataka koji sadrži sustav za obradu podataka koji ima memoriju i upravljač memorije za postavljanje i spremanje objekata u memoriju, u kojoj se prvi skup objekata postavlja upravljačem memorije korištenjem skupom opsluživača, a svaki opsluživač uključuje uporabu memorijske adrese odgovarajućeg objekta, te se drugi skup objekata postavlja i sprema izravno u memoriju bez uporabe opsluživača.
Dijeljenjem memorije između objekata kojima pristupa opsluživač i izravno dostupnim objektima, ovaj izum razlikuje prvi skup objekata koji se mogu obraditi na određen broj načina pomoću upravljača memorije da se optimizira memorijski prostor, kao što će niže biti opisano, te one objekte kojima se češće pristupa koji se mogu adresirati izravno bez potrebe korištenja opsluživača.
Konkretno, u jednoj realizaciji, objekt u drugom skupu može se pozvati izravno pomoću ostalih elemenata u sustavu za obradu podataka bez potrebe prolaza putem memorijskog modula. Upravljač memorije može ipak biti potreban da se smjeste i spreme objekti drugog skupa u memoriji da bi se održala kontrola sadržaja memorije.
U jednoj realizaciji, opsluživači se mogu spremiti u memoriju na koju se odnose. Međutim, moguće su ostale realizacije u kojima se opsluživači spremaju u drugi memorijski prostor. Opsluživači se mogu spremiti dinamički ili u statičko polje.
U jednoj realizaciji, upravljač memorije je prilagođen za zamjenu objekata u prvom skupu u memoriji te da zamijeni oznaku adrese koja je spremljena u odgovarajućem opsluživaču. Objekti se primjerice mogu zamijeniti kada se više objekata ne može spremiti u memoriju. Zamjena se može izvršiti, primjerice, sukladno odgovarajućem algoritmu sažimanja. Na taj se način slobodan memorijski prostor može optimizirati dok se jednostavno i učinkovito vodi evidencija o spremljenim objektima.
Da se omogući stalni pristup objektima drugog tipa, ovi objekti su poželjno nezamjenjivi u memoriji. Ostale realizacije su međutim zamislive u kojima, primjerice, zamjena objekta drugog skupa povezuje se s postupkom promjene adrese objekta do koje dolazi u sustavu.
Ovaj izum je posebice primjenjiv za realizaciju gdje virtualni stroj ima višenitnu arhitekturu takve vrste koja je opisana u svezi s prvim aspektom izuma, u kojoj se nit privremeno zaustavlja tijekom njena izvršenja da se omogući izvršenje druge niti.
U takvom slučaju, višenitni virtualan stroj može poželjno sadržavati unutrašnje generiranu nit skupljanja otpada. Virtualni stroj nakon izvršenja ove niti oslobađa objekte u memoriji koji se u to vrijeme ne koriste. Alternativno, ili k tome, izvršenje niti skupljanja otpada može također izazvati virtualni stroj da izvrši zamjenu objekta prvog skupa sukladno algoritmu sažimanja da se zajedno poveže maksimalna količina slobodnog memorijskog prostora.
Memorijski prostor o kojem se govori može odgovarati RAM memoriji sustava, mada se ovaj izum primjenjuje na ostale memorijske dijelove, kao što su FLASH ili EEPROM.
Mada se ovaj izum konkretno primjenjuje u dekoderu za prijem i obradu digitalnih televizijskih sustava, razumljivo je da načela sustava za obradu podataka koja su navedena u ovom izumu mogu također primijeniti na ostale uređaje za opsluživanje digitalnih audiovizualnih podataka, kao što su digitalni videorekorderi i slično.
U kontekstu dekodera za digitalno televizijsko emitiranje, hardverski uređaji dekodera mogu uključivati jedno ili sve od sljedećeg: MPEG demultiplekser zajedno s prijemnikom, serijski međusklop, paralelni međusklop, modem te jedna ili više čitača inteligentnih kartica.
Pojam “prijemnik/dekoder” ili “dekoder” kako se ovdje rabi označuje prijemnik za prijem bilo kodiranih ili nekodiranih signala, primjerice televizijskih i/ili radijskih signala, koji se mogu emitirati ili prenositi na drugi način. Pojam također označuje dekoder za dekodiranje primljenih signala. Realizacije takvih prijemnika/dekodera mogu imati dekoder spojen s prijemnikom za dekodiranje primljenih signala, primjerice u “set-top box” uređaju, dekoder koji funkcionira u kombinaciji s fizički odvojenim prijemnikom ili dekoder koji ima dodatne funkcije, kao što su web preglednik ili dekoder koji je spojen s ostalim uređajima kao što su videorekorder ili televizor.
Kako se ovdje rabi, pojam “sustav digitalnog prijenosa” uključuje prijenosni sustav za prijenos ili emitiranje, naprimjer, primarno audiovizualnih ili multimedijskih digitalnih podataka. Mada je ovaj izum konkretno primjenjiv za emitiranje digitalnih televizijskih sustava, izum se može također primijeniti na fiksnu telekomunikacijsku mrežu za multimedijske aplikacije na internetu, na zatvorene televizijske sustave itd.
Kako se ovdje rabi, pojam “digitalni televizijski sustav” uključuje primjerice satelitske, zemaljske, kabelske i ostale sustave.
Pojam MPEG koji se rabi niže u specifičnom opisu, odnosi se na standarde za prijenos podataka koje je razvila Međunarodna organizacija za standarde u radnoj skupini “Ekspertna skupina za film” te posebice, premda ne isključivo, na MPEG-2 standard koji je razvijen za digitalne televizijske aplikacije i koji je prikazan u dokumentima ISO 13818-1, ISO 13818-2, ISO 13818-3 i ISO 13818-4. U kontekstu ove patentne prijave, taj pojam uključuje sve inačice, modifikacije i razvoj MPEG formata koji je primjenjiv u polju prijenosa digitalnih podataka.
Sada će biti opisan, samo kao primjer, jedna realizacija ovog izuma, pri čemu su referenca priloženi crteži na kojima je prikazano sljedeće:
Slika 1 prikazuje pogled na cjelokupni digitalni televizijski sustav;
Slika 2 prikazuje elemente interaktivnog sustava unutar digitalnog televizijskog sustava na slici 1;
Slika 3 prikazuje arhitekturu softvera koji se temelji na sustavu koji je ugrađen u prijemnik/dekoder ovog izuma;
Slika 4 prikazuje arhitekturu virtualnog stroja unutar sustava na slici 3, uključujući posebno paket upravljača događaja, paket interpretiranja i memorijski paket;
Slika 5 prikazuje strukturu interpretera koji se rabi u virtualnom stroju;
Slika 6 prikazuje opsluživanje niti unutar virtualnog stroja;
Slika 7 prikazuje rad upravljača događajima i regulatora rasporeda virtualnog stroja;
Slika 8 prikazuje rukovođenje cjelokupnom memorijom virtualnog stroja;
Digitalna televizijska mreža
Pregled digitalnog televizijskog sustava 1000 sukladno ovom izumu prikazan je na slici 1. Izum uključuje većinom uobičajeni digitalni televizijski sustav 2000 koji koristi poznati MPEG-2 sustav kompresije za prijenos komprimiranih digitalnih signala. Točnije, MPEG-2 kompresor 2002 u centru za emitiranje prima tok digitalnog signala (tipično tok video signala). Kompresor 2002 povezan je s multiplekserom i koderom 2004 pomoću veze 2006.
Multiplekser 2004 prima množinu ulaznih signala, koristi jedna ili nekoliko prijenosnih tokova i prenosi komprimirane digitalne signale do odašiljača 2008 u centru za emitiranje putem veze 2010, koja naravno može u jednom od brojnih oblika uključujući telekomunikacijske veze. Odašiljač 2008 prenosi elektromagnetske signale putem satelitske veze 2012 prema satelitskom transponderu 2014, gdje se oni elektronički obrađuju i emitiraju putem zemaljske veze 2016 prema zemaljskom prijemniku 2018, obično u obliku tanjura kojega posjeduje ili je iznajmio krajnji korisnik. Signali koje prima prijemnik 2018 prenose se u integrirani prijemnik/dekoder 2020 kojega posjeduje ili je iznajmio krajnji korisnik i koji je povezan s televizorom krajnjeg korisnika 2022. Prijemnik/dekoder 2020 dekodira komprimirani MPEG-2 signal u televizijski signal za televizor 2022.
Uvjetni pristupni sustav 3000 povezan je s multiplekserom i prijemnikom/dekoderom 2020, te je djelomično smješten u centru za emitiranje, a djelomično u dekoderu. On omogućuje krajnjem korisniku pristup digitalnim televizijskim stanicama jednog ili više televizijskih proizvođača. Inteligentna kartica, koja može dekodirati poruke koje se odnose na komercijalnu ponudu (dakle, jedan ili nekoliko televizijskih programa koje prodaje televizijski proizvođač), stavlja se u prijemnik/dekoder 2020. Koristeći dekoder 2020 i inteligentnu karticu, krajnji korisnik može kupiti komercijalnu ponudu bilo u pretplatničkom načinu ili u “pay-per-view” načinu.
Interaktivni sustav unutar digitalne televizijske mreže
Interaktivni sustav 4000, koji je također povezan s multiplekserom 2004 i prijemnikom/dekoderom 2020 i koji je opet djelomično smješten u centru za emitiranje, a djelomično u dekoderu, omogućuje krajnjem korisniku interakciju s različitim aplikacijama putem modemiziranog povratnog kanala 4002.
Slika 2 prikazuje elemente opće arhitekture interaktivnog televizijskog sustava 4000 koji uopćeno sadrži četiri elementa:
1. Autorizirani alat 4004 u centru za emitiranje ili negdje drugdje koji omogućuje televizijskom proizvođaču da načini, razvije, debagira i testira aplikacije.
2. Aplikacija i server podataka 4006, u centru za emitiranje, koji je povezan s autoriziranim alatom 4004 da se omogući televizijskom proizvođaču da priredi, autorizira i oblikuje aplikacije i podatke za slanje multiplekseru i koderu 2004 za ubacivanje u MPEG-2 prijenosni tok (tipično njegov osobni odlomak) da se emitira krajnjem korisniku.
3. Sustav za obradu podataka 4008 u prijemniku/dekoderu za prijem i obradu učitane aplikacije i podataka za upravljanje komuniciranjem s ostalim elementima interaktivnog sustava i hardverskim elementima prijemnika/dekodera. Sustav 4008 sadrži virtualni stroj s izvršnim pogonom (RTE) koji je realiziran kao izvršni kod postavljen u prijemnik/dekoder.
4. Modemizirani povratni kanal 4002 između prijemnika/dekodera 2020 i aplikacije te servera podataka 4406 za slanje signala koji nalažu serveru 4006 da ubaci podatke i aplikacije u MPEG-2 prijenosni tok na zahtjev krajnjeg korisnika. Informacija se također može poslati u drugom smjeru.
Prijemnik/dekoder 2020 sadrži određen broj uređaja za komuniciranje s vanjskim uređajima unutar interaktivnog sustava, kao što je ugađač (tuner) za ugađanje prijemnika, MPEG demultiplekser za demultipleksiranje MPEG signala, serijski međusklop, paralelni međusklop, modem te jedna ili dva čitača kartica koji su prilagođeni za čitanje, primjerice kreditnih kartica ili pretplatničkih inteligentnih kartica koje se izdaju zajedno sa sustavom. Svojstva takvih uređaja su dobro poznata u području digitalnih televizijskih sustava i neće ovdje biti detaljnije opisana.
Na sličan način, vrste interaktivnih aplikacija koje se mogu načiniti (kućno bankarstvo, televizijska kupovina, učitavanje kompjuterskog softvera) razumljive su onima koji se bave ovim područjem i neće ovdje biti detaljnije opisane. Mada je arhitektura dekoderskog sustava koji je niže opisan posebice prilagođena interaktivnim aplikacijama, valja naglasiti da se opisana arhitektura može koristiti u jednostavnijim neinteraktivnim digitalnim TV sustavima, kao što je uobičajeni sustav plaćene televizije.
Arhitektura dekoderskog sustava
Vratimo li se sada arhitekturi sustava unutar prijemnika/dekoder, a koji je prikazan na slici 3, vidimo da se koristi slojevita arhitektura. Prvi sloj 4100 predstavlja operativni sustav hardvera prijemnika/dekodera. To je operativni sustav u realnom vremenu kojega je izabrao proizvođač za kontrolu hardverskim elementima prijemnika/dekodera. Operativni sustav u realnom vremenu ima razmjerno kratko vrijeme odgovora da bi mogao točno sinkronizirati rad hardvera. Poruke događaja šalju se između ovog sloja i “međuverskog” (middleware) sloja 4200 neposredno iznad.
Sustav za obradu podataka 4008 je na vrhu hardverskog operativnog sustava i sadrži “međuverski” sloj i aplikacijski (ili točnije aplikacijskog međusklopa) sloj.
“Međuverski” sloj je napisan u jeziku kao što je C ANSI i sadrži elemente virtualnog stroja 4250 i određen broj međusklopova 4260 uključujući grafički međusklop 4261, FLASH/PROM memorijski međusklop 4262, međusklop protokola 4263 i međusklop uređaja 4264.
Kao što je navedeno u patentnoj prijavi PCT/EP97/02116 i detaljnije opisano u uvodu, ovaj izum koristi virtualni stroj da bi se ostvarila neovisnost između aplikacija gornje razine i operativnog sustava donje razine kojega je izradio proizvođač.
Međusklop 4260 omogućuje vezu između operacija virtualnog stroja i operativnog sustava donje razine 4100 i također sadrži određen broj aplikacijskih modula srednjeg sloja koji se jednostavno izvršavaju na ovoj razini.
Sloj aplikacijskog međusklopa (API) 4300 sadrži određen broj paketa visoke razine 4310-4314, koji su napisani u objektno-orijentiranim interpretativnim jezicima, kao što je Java. Ovi paketi predstavljaju međusklop između aplikacija koje je načinio davatelj usluga (interaktivni programski vodič, televizijska kupovina, internet preglednik itd.) i virtualni stroj sustava. Primjeri takvih aplikacija su dani niže.
OS donje razine se normalno ugrađuje u hardverske komponente dekodera, premda se u nekim realizacijama OS donje razine može učitati. Paketi za sloj “međuvera” i sloj aplikacijskog međusklopa mogu se učitati u RAM ili FLASH memoriju dekodera iz emitiranog prijenosa. Alternativno, neki ili svi elementi “međuverskog” sloja aplikacijskog međusklopa može se spremiti u ROM ili (ako postoji) FLASH memoriju dekodera. Podrazumijeva se, fizička organizacija memorijskih elemenata dekodera razlikuje se od logičke organizacije memorije.
Sloj aplikacijskog međusklopa
Vratimo li se na sloj aplikacijskog međusklopa 4300 koji je prikazan na slici 3, te kao što je gore opisano, paketi u ovom sloju napisani su u objektno orijentiranom jeziku kao što je Java. Svaki paket definira set biblioteka klase koje se pozivaju tijekom rada sustava. U ovom sustavu instalirani su sljedeći paketi:
Lang/Util Package 4310. Ovaj paket definira klase koje su neophodne za upravljanje objektima pomoću virtualnog stroja. Ove biblioteke klasa su normalno dio standardne biblioteke koja je povezana s izabranim objektno orijentiranim jezikom.
MHEG-5 Package 4311. Ovaj paket definira klase koje su povezane s upravljanjem grafičkim objektima na zaslonu televizora. Takvi objekti se razlikuju od audiovizualnih podataka i mogu prikazati, primjerice, identifikator kanala ili tekst preko prikazanih slika. Definicija klasa u ovom paketu mora uvažavati MHEG-5 norme koje su definirane standardima ETS 300777-3 i ISO/ISE 13522-5 (te ISO/ISE 13522-6 u slučaju Java ugrađenog sustava).
Toolbox Package 4312. Ovaj paketa sadrži klase koje se koriste za učitavanje i dekompresiju informacija kao i klase koje su povezane s upravljanjem datotečnog sustava i memorije u prijemniku/dekoderu i klase koje su povezane sa spajanjem na internet itd.
Device Package 4312. Ovaj paket definira klase koje su neophodne za upravljanje perifernim uređajima koji su pripojeni prijemniku/dekoderu, kao što je razmatrano gore, te uključuje modem, čitače inteligentnih kartica, ugađač (tuner) MPEG toka itd.
Service Package 4314. Ovaj paket definira klase koje su neophodne za ugrađivanje razvojnih interaktivnih aplikacija više razine, kao što je upravljanje podacima o kreditnim karticama itd.
DSMCC-UU Package 4315. Ovaj paket ima ugrađene protokole koji su neophodni za komuniciranje između klijenta i servera za pretraživanje i čitanje datoteka s podacima. Realizacija ovog paketa mora uvažiti normu ISO/IEC 13818-6 i naredbe koje su definirane u DAVIC dio 9.
Sljedeći sloj interaktivnih aplikacija, koje je napisao davatelj usluga i koje su učitane tijekom emitiranja u uobičajenim sustavima, bit će postavljene preko paketa međusklopa koji su gore definirani. Ovisno o aplikacijama koje se uvode, neki od gore navedenih paketa mogu se izuzeti. Naprimjer, ako davatelj usluga ne namjerava dati opći način čitanja podataka, DSMCC-UU paket može se izostaviti u konačnom sustavu.
Paketi 4300 čine biblioteke klasa za okruženje objektno-orijentiranog programiranja. Svojstva njihovih klasa ovisit će o izabranom jeziku. U slučaju java aplikacije, primjerice, bit će dodana jedna naslijeđena struktura klase.
Sloj međusklopa
Kao što je prikazano, sloj međusklopa sastavljen je od četiri modula – grafičkog modula 4261, memorijskog modula za upravljanje datotekama 4261, modulom protokola 4263 i upravljača uređaja 4264. Dok su moduli na ovoj razini opisani kao moduli međusklopa, njihova funkcija je da omoguće “vezivni” sloj za ugrađivanje paketa aplikacijskih međusklopova te općenito za rad virtualnog stroja.
Grafički modul 4261, primjerice, omogućuje stvaranje grafičkih objekata i upravljanje njima. On traži OS niske razine da prikaže osnovne grafičke oblike kao što su točke, crte, pravokutnici itd. Realizacija ovih modula ovisi o grafičkim mogućnostima OS niske razine proizvođača. Na neki način komplementaran prema MHEG-5 paketu 3211, ove funkcije mogu se djelotvornije izvršiti na ovoj razini koda nego kod visoke razine koji je odabran za gore navedeni aplikacijski sloj.
Na sličan način, memorijski modul za upravljanje datotekama 4262 sadrži naredbe niske razine za čitanje/pisanje datotekama, koje su povezane s memorijskim komponentama sustava. Tipično, hardverski operativni sustav sadrži samo one naredbe koje su neophodne za čitanje/pisanje sektora ili stranice unutar memorijske komponente. Kao i s grafičkim modulom 4261, modul omogućuje da se skup jednostavnijih aplikacije niže razine djelotvorno uvede u sustav.
Modul za upravljanje protokolom 4263 definira biblioteku komunikacijskih protokola koji se mogu pozvati tijekom komuniciranja pomoću, primjerice, TCP/IP sloja dekodera.
Upravljač uređajima 4264 nešto se razlikuje od ostalih modula u ovom sloju time što daje vezu ili međusklop između hardverskog operativnog sustava i gornjih slojeva, uključujući ostale module u sloju međusklopa i virtualnom stroju. Naredbe ili poruke događaja koji se šalju/primaju hardveru OS od virtualnog stroja, na primjer, nužno prolaze upravljačem uređaja za prevođenje sukladno specifikacijama međusklopa između dviju razina.
Opis virtualnog stroja
Sukladno priloženoj slici 4, sada će biti opisana struktura virtualnog stroja 4250. Virtualni stroj koji se koristi u ovom izumu je preemptivni višenitni tip stroja. Opća svojstva takvog stroja poznata su u ostalom kontekstu izvan audiovizualnog polja i digitalne televizije te će se u opisu koji slijedi usredotočiti na ona područja koja su najspecifičnija u ovoj aplikaciji.
Virtualni stroj je sastavljen od određenog broja elemenata, koji su u međusobnoj interakciji, kao što je prikazano na slici 4.
Regulator rasporeda 4270 sastavljen je od nitnog upravljača usluga 4271 i monitor upravljača usluga 4272, te čini srce višenitnog stroja. Regulator rasporeda 4270 naručuje izvršenje niti koje su aplikacije načinile izvan virtualnog stroja i onih koje je načinio sami virtualni stroj (npr. nit skupljača otpada, razmotreno niže).
Upravljač događajima 4273 opslužuje tablicu s putanjom događaja i popise događaja koji su naznačeni od niti i centralizira izvršenje obrada događaja.
Upravljač memorijom 4274 opslužuje postavljanje i uklanjanje memorijskih zona u sistemskoj memoriji te također opslužuje uklanjanje memorije nereferentnih objekata (skupljanje otpada).
Upravljač klasa 4275 puni klase učitanim aplikacijskim kodom iz emitiranog signala, interakcijskom sa sigurnosnim upravljačem 4280 da se provjeri integritet učitanog koda te s upravljačem datoteka 4276, koji ugrađuje aplikacije.
Upravljač datoteka 4276 vrši ugrađivanje sistemskih datoteka i opslužuje mehanizam učitavanja interaktivnih aplikacija i podataka.
Sigurnosni upravljač 4280 opslužuje razinu pristupa koji je dozvoljen učitanim aplikacijama. Neke aplikacije imaju sposobnost izvršenja više operacija nego ostale u odnosu na datotečni sustav.
Interpreter 4277 sadrži interpretacijsku uslugu bajtnog koda 4278 i interpretacijsku uslugu “m-koda” 4279, opslužuje interpretaciju aplikacija koje su napisane u ova dva koda, pri čemu je bajtni kod povezan s Java aplikacijama a m-kod je vlastiti kod kojega razvijaju aplikacije. Kao što će biti razmotreno, mogu se dodati druge interpretacijske usluge ako je potrebno.
Rad i ugradnja upravljača klasa, upravljač datoteka i sigurnosni upravljač mogu biti standardni. Opis će sada biti usredotočen na rad interpretera, regulatora rasporeda i upravljača događajima te upravljača memorijom.
Interpreter
Sukladno slici 5, sada će biti opisan rad interpretera 4277 koji se koristi u realizaciji ovog izuma. Kao što je razmotreno u uvodu, nedostaci uobičajenih operativnih sustava koji se rabe u dekoderima do danas je bila njihova usmjerenost jednom tipu kod u aplikacijama visoke razine. Premda izabrani kod može biti komercijalno dostupan i vrlo poznat aplikacijski kod, do problema može doći u slučaju kad je potrebno održavati određen broj dekodera koji koriste različite aplikacije koje su napisane u određenom broju kodova. Interpreter ovog sustava dozvoljava interpretiranje određenog broja tipova kodova.
Kao što je prikazano, datoteke stižu u sustav, te modul upravljača klasa 4500 određuje klase bajtnog koda ili module m-koda sukladno strukturi datoteke, tako da aplikacijski kod koji se donosi interpreteru 4510 ima oznaku formata. U slučaju aplikacije bajtnog koda, primjerice, učitana klasa datoteke imat će karakterističnu identifikaciju zaglavlja od 4 okteta nakon čega slijedi broj verzije, također od 4 okteta. Interpreter može razlikovati kodove na temelju prisutnosti ili odsutnosti zaglavlja bajtnog koda.
U ostalim realizacijama, mogu se koristiti ostale karakteristike koda drugog tipa da bismo ih razlikovali između bilo kojeg broja aplikacijskih jezika, kao što je primjerice ime datoteke.
Ovisno o rezultatu indikatora formata, naredbe bajtnog koda šalju se interpreteru bajtnog koda 4278, gdje se one izvršavaju sukladno biblioteci funkcija 4520 koja je povezana s naredbama bajtnog koda, što je standardni slučaj s naredbama interpretativnog koda. Biblioteka funkcija naredbi nativnog koda definirana je u virtualnom stroju.
U slučaju naredbi m-koda, one se šalju interpreteru m-koda 4278. Većina naredbi m-koda može se ugraditi i izvršiti sukladno biblioteci funkcija 4520 koja je povezana s naredbama bajtnog koda, te interpreter 4278 poziva biblioteku 4520 da se izvrše takve funkcije m-koda uvijek kada je to moguće.
U nekim slučajevima, međutim, neke naredbe m-koda zahtijevaju specifične izvršne funkcije koje nije jednostavno izvršiti pomoću zajedničke biblioteke funkcija. U takvim slučajevima, predviđeno je da se naredbe izvrše pomoću odvojene biblioteke funkcija 4530.
Regulator rasporeda i upravljač događaja
Sada će biti razmotren rad regulatora rasporeda 4270 i upravljača događaja 4273, sukladno slici 6 koja prikazuje život niti u sustavu i slici 7 koja prikazuje obavijest sustava o događaju koji se šalje niti kao odgovor na signalizirani događaj izvršnog operativnog sustava niže razine.
Opis će se usmjeriti na opsluživanje stvaranja niti koja predstavlja izvršni kontekst koji poglavito nastaje signaliziranim događajem. Podrazumijeva se da se nit može načiniti iniciranjem naredbe koju generira aplikacija više razine koja se šalje hardveru OS te povratom ove naredbe. Nit se može također načiniti u samom virtualnom stroju, npr. nit skupljanja otpada.
Kao što je gore navedeno, ova realizacija temelji se na virtualnom stroju opsluživanja preemptivne niti kakav se može naći u sustavima koji se temelje na Javi. U takvom stroju generira se množina niti i one se spremaju u red čekanja niti. Regulator rasporeda pregledava red čekanja niti i odabire za izvršenje nit s najvišim prioritetom. Normalno, nit koja se izvršava ima najviši prioritet, ali takva nit može biti prekinuta od niti s još višim prioritetom, što je uobičajeno za preemptivne nitne sustave. U takvom slučaju, stanje prekinute niti se sprema i nit je ponovo aktivirana kada se ponovo odabere za izvršenje.
U određenim slučajevima, nit može sama sadržavati tzv. “dobitnu” naredbu koja uzrokuje da regulator rasporeda prekida izvršenje niti i pregledava red čekanja niti u potrazi za drugom niti koju treba izvršiti. Dobitna naredba može se nalaziti u interno generiranim zadaćama niskog prioriteta, kao što je funkcija skupljanja otpada koju izvršava sustav da se uklone nekorišteni objekti iz memorije sustava.
Ovi aspekti sustava prikazani su na slici 6. Stvaranje niti na 4550 dovodi do spremanja niti u red čekanja niti 4551. Novostvorena nit ima stanje “init” na 4552. Ako nema drugih niti s višim prioritetom, nit se izvršava pomoću naredbe start() i imat će stanje “izvršni” na 4553. Ako se u niti izvrši nit stop(), nit postaje “mrtva” na 4554. Nit može postići ovo stanje ako je došla do završetka, što pokazuje run()fini naredba. Ako se u samoj niti pojavljuje naredba yield() ili ako se izvršava vanjska naredba suspend(), nit se zaustavlja i na 4556 postavlja se stanje “non-executable”.
Sada ćemo opisati sukladno slici 7 interakciju između operativnog sustava niže razine 4100, upravljača događajima 4273 i regulatora rasporeda 4270. Neobrađeni događaji koje signalizira izvršni operativni sustav 4100 šalju se preko upravljača uređaja 4313 upravljaču događajima 4273. U poželjnoj realizaciji, upravljač uređaja 4313 i/ili višezadaćni sustav koji se koristi u operativnom sustavu mogu izvršiti određenu određivanje prioriteta primljenih događaja. Međutim, što je razumljivo, jedna prednost ovog sustava leži u činjenici da, za razliku od sustava koji je opisan u PCT/EP97/02116, opsluživanje događaja je upravljano u virtualnom stroju 4250, čime se omogućuje onome koji je načinio “međuverski” sloj postizanje potpune kontrole nad postupcima opsluživanja događaja.
U ovoj realizaciji, događaji koji se šalju preko upravljača događaja 4313 klasificirani su prema kodu i prema tipu. Kod određuje svojstva događaja. Primjerice, u slučaju događaja koji je generiran preko daljinske kontrole koja je povezana s dekoderom, kod može identificirati koja je tipka pritisnuta. Tip identificira izvor događaja, tj. daljinsku kontrolu.
Nakon prijema signala o događaju, upravljač događaja 4273 koristi tablicu s putanjom 4560 da se odredi prioritet događaja i odredište niti te ubacuje odgovarajući objekt događaja 4564 u jednu ili više niti 4561 koje se nalaze u redu čekanja 4562, sukladno prioritetu. Jedan ili više objekata događaja 4564 može se spremiti u danu nit što je prikazano na 4563. Objekti događaja 4564 nalaze se u niti prema njihovoj klasifikaciji prioriteta. Objekti događaja u niti koji su jednakog prioriteta klasificirani su prema vremenu dolaska (FIFO).
Nakon prijama događaja, upravljač događajima 4273 signalizira njegov dolazak regulatoru rasporeda 4270, koji zatim istražuje red čekanja niti da vidi postoji li nit višeg prioriteta od niti koja se trenutačno izvršava. Ako postoji, nit se zaustavlja kao što je gore opisano i izvršava se nova nit. Na taj način se realizira preemptivni sustav opsluživanja niti.
Na taj način, poželjna realizacija omogućuje učinkovito opsluživanje nitima u dekoderu što dozvoljava sustavu da brzo odgovori na pozive događaja, čak i u slučaju kada sustav obrađuje postojeći prethodni događaj. Tako su prevladani nedostaci poznatog jednoprocesorskog sustava reda čekanja.
Mada je poželjna realizacija opisana u odnosu na preemptivni sustav u kojem dolazak događaja izaziva upravljač događajima da signalizira regulatoru rasporeda prekid izvršenja niti, moguće su drukčije realizacije. Primjerice, u sustavu “vremenskog odreska” (time-slice), regulator rasporeda može periodički prekinuti izvršenje niti da ispita red čekanja niti nakon svake naredbe u kojoj se obrađuje nit.
Upravljač memorije
Valja naglasiti, u kontekstu prijemnika/dekodera, da je upravljač zajedničkom memorijom sustava osobito značajan, jer je memorijski prostor razmjerno ograničen u usporedbi, primjerice, s platformom PC ili nekom drugom koja se zasniva na tvrdom disku. U opisu koji slijedi, zajednička memorija odgovara memorijskom prostoru u RAM-u prijemnika/dekodera. Međutim, kao što je gore naglašeno, odnos između fizičke i logičke organizacije memorije nije jednak i zajednička memorija koja je niže opisana može se smjestiti u drugi uređaj fizičke memorije ili se može podijeliti s njim, kao što je FLASH memorija, EEPROM i dr. u prijemniku/dekoderu.
Na slici 8 prikazana je organizacija raspoložive memorije u sustavu. Može se vidjeti da je memorijski prostor podijeljen između zajedničkog skupa opsluživača (handles) 4600, zajedničkog skupa zamjenjivih objekata 4610 i zajedničkog skupa nezamjenjivih objekata 4620.
Svaki objekt u zajedničkom skupu 4610 identificiran je prema opsluživaču i odgovara opsluživaču u zajedničkom skupu 4600. Odnos između opsluživača i odgovarajućeg objekta upravljan je paketom upravljača memorije 4274 (vidi sliku 4) koji također kontrolira pristup zajedničkom skupu. Svi pozivi prema objektima zajedničkog skupa čini njeogovo opsluživanje. Granic aizmeđu zajedničkih skupova 3600 i 4610 je pokretna. Kada se u memoriju sprema novi objekt načini se opsluživač u zajedničkom skupu 4600 uključujući pokazivač na adresu objekta u zajedničkom skupu 4610. U takvom slučaju, popis opsluživača bit će uvećan za jedan. Opsluživači su organizirani u listu zajedničkog skupa da se omogući sažimanje pomoću upravljača memorije.
Objekti se postavljaju u zajednički skup po potrebi i sukladno raspoloživom prostoru. U slučaju da se zatraži postavljanje objekta koji zahtijeva više prostora u jednom bloku nego je raspoloživo, bit će potrebno kompaktirati objekte koji su već postavljeni u memoriji. Sažimanje objekata u memoriji može se izvršiti sukladno bilo kojem poznatom algoritmu sažimanja, primjerice, “copy-compact” algoritmu. U ovoj realizaciji, koristi se Mark Sweep algoritam. Da se sažme prostor, objekt se pomiču okolo u zoni 4610, tako da su skupine objekata bliže zajedno, izbjegavanjem bilo kakvog prostora između susjednih objekata. Na ovaj način, sav slobodan memorijski prostor je povezan zajedno u blok da se smjesti novi objekt u zajednički skup 4610.
Kao što je gore navedeno, paket upravljanja memorijom održava odnos između opsluživača (handles) u zajedničkom skupu 4600 i objekata u zajedničkom skupu 4610 te se nove adrese objekata u zajedničkom skupu obnavljaju ekvivalentnim opsluživačima za budući pristup.
Mada uporaba opsluživača za pristup određenim objektima omogućuje sustavu optimiziranje memorijske lokacije u zajedničkom skupu, postupak povećava vrijeme koje je potrebno za pristup takvim objektima, budući da je uvijek potrebno prvo pozvati opsluživač da se vidi adresa objekta. U određenim situacijama i za objekte koji odgovaraju nekim predviđenim događajima može biti nužan mnogo brži pristup.
U takvom slučaju, objekti se mogu postaviti u zajednički skup nezamjenjivih objekata 4620. Adrese takvih objekata su stalne unutar zajedničkog skupa. Prema tome, nema potrebe da se načini opsluživač i objekata koji se koriste izravno od strane sustava, čime se pojednostavnjuje postupak pristupa za ove posebne objekte. kao i granica između zajedničkih skupova 4600 i 4610, granica između zajedničkih skupova 4620 i 4610 bit će pomaknuta ovisno o informaciji koja je stavljena u zajednički skup 4620.
U slučaju, primjerice, da je nezamjenjivi objekt postavljen u zajednički skup 4620 i nema dovoljno mjesta zbog rasporeda zamjenjivih objekata u zajedničkom skupu 4610, sažimanje zamjenjivih objekata može se izvršiti, kao što je gore opisano. Kada su jednom objekti u zajedničkom skupu reorganizirani tako da se oslobodi maksimalna količina prostora, može se postaviti nezamjenjivi blok u zajednički skup 4620.
Izbor koji su objekti zamjenjivi i koji su nezamjenjivi je na izbor kreatora. Primjerice, objekti koji odgovaraju sustavu mogu se odabrati kao nezamjenjivi glede značaja tih objekata, dok su aplikacijski objekti više razine zamjenjivi. U nekim slučajevima, zamjenjivi objekti mogu se privremeno zakočiti u mjestu tako da ih možemo smatrati nezamjenjivim objektima.
Da se uklone neželjeni objekti iz memorije, sustav mora također imati tzv. skupljanje otpada. To znači stvaranje posebne niti skupljača otpada najnižeg prioriteta koja će biti adresirana od strane izrađivača rasporeda u slučaju da nijedna druga nit trenutačno nije spremljena u red čekanja. nakon izvršenja, svi zamjenjivi objekti koji su trenutačno smješteni u zajedničkom skupu (pool) koji nije bio prozvan u to vrijeme, bit će oslobođeni. Nit skupljača otpada može također izvršiti sažimanje svih zamjenjivih objekata duž crta koje su gore opisane.
Izrada niti skupljača otpada poznato je u kontekstu ostalih višenitnih sustava koji se rabe u ostalim aplikacijama izvan digitalnog televizijskog sustava i neće ovdje biti detaljnije razmotreni. međutim, valja naglasiti da uporaba postupka skupljanja otpada u sprezi s ostalim tehnikama upravljanja memorijom koje su gore opisane daje osobite prednosti u ovom kontekstu.

Claims (37)

1. Uređaj za obradu digitalnih audiovizualnih podataka, naznačen time što ima bar jedan pridružen hardverski operativni sustav koji je povezan s jednim ili više hardverskih uređaja za prijenos i prijem podataka te u kojem uređaj nadalje sadrži sustav za obradu podataka koji sadrži višenitni virtualni stroj prilagođen, između ostalog, prijemu poruka događaja koje signalizira hardverski operativni sustav te dodjeli odgovarajućeg objekta događaja jednoj ili više niti, te u kojem nit može biti zaustavljena tijekom njena izvršenja da se dozvoli izvršenje druge niti.
2. Uređaj prema zahtjevu 1, naznačen time što virtualni stroj ima preemptivnu višenitnu arhitekturu, u kojoj je nit zaustavljena tijekom njena izvršenja stvaranjem niti višeg prioriteta.
3. Uređaj prema zahtjevu 1 ili 2, naznačen time što virtualni stroj sadrži upravljač događaja koji je prilagođen odgovoriti na poruku događaja koja je signalizirana hardverskim operativnim sustavom spremanjem objekta događaja u jednu ili više niti u redu čekanja niti koji je prioritetno organiziran.
4. Uređaj prema zahtjevu 3, naznačen time što je poruka događaja poslana od hardverskog operativnog sustava upravljaču događaja prvo obrađena od strane jednog ili više upravljača uređaja u sustavu za obradu podataka.
5. Uređaj prema zahtjevu 3 ili 4, naznačen time što je upravljač događaja dodatno prilagođen da odgovori na poruku događaja koja je generirana interno pomoću virtualnog stroja ili koja je primljena iz aplikacije više razine unutar ili izvan sustava za obradu podataka.
6. Uređaj prema bilo kojem zahtjevu 3 do 5, naznačen time što upravljač događajima klasificira objekte događaja interno u niti sukladno prioritetu poruke događaja i/ili vremenu stizanja poruke događaja.
7. Uređaj za obradu podataka prema bilo kojem zahtjevu 3 do 6, naznačen time što virtualni stroj nadalje sadrži tablicu s putanjom koja sadrži informaciju glede mogućih poruka događaja i koju adresira upravljač memorije da omogući upravljaču događajima da odredi nit koja odgovara primljenoj poruci događaja.
8. Uređaj prema zahtjevu 7, naznačen time što tablica s putanjom sadrži informaciju da se omogući upravljaču događaja da odredi prioritet objekta događaja u niti.
9. Uređaj prema bilo kojem zahtjevu 3 do 8, naznačen time što virtualni stroj nadalje sadrži regulator rasporeda koji je prilagođen ispitivanju niti koje se nalaze u redu čekanja niti koji je prioritetno organiziran te naredi izvršenje niti koja u to vrijeme ima najveći prioritet.
10. Uređaj prema zahtjevu 9, naznačen time što je upravljač događajima prilagođen signalizirati pristizanje poruke događaja te izazvati regulator rasporeda da ispita novo stanje niti koje se nalaze u redu čekanja niti.
11. Uređaj za obradu digitalnih audiovizualnih podataka, naznačen time što sadrži jedan ili više hardverskih uređaja za prijenos i prijem podataka izvan uređaja, te virtualni stroj koji sadrži sklop za prijem koda koji je napisan u interpretativnom jeziku učitanom putem jednog ili više hardverskih uređaja, sklop za razlikovanje koda koji je napisan u bar dva interpretativna jezika u ovisnosti o strukturi primljenog koda, te sklop za slanje takvog koda odgovarajućem interpreterskom sklopu za interpretiranje i izvršenje.
12. Uređaj prema zahtjevu 11, naznačena time što virtualni stroj razlikuje interpretativni kod bar dva interpretativna jezika temeljem svojstava poruke zaglavlja koja je povezana s modulom koda u jednom jeziku.
13. Uređaj prema zahtjevu 11 ili 12, naznačen time što virtualni stroj razlikuje interpretativni kod temeljem prisutnosti ili odsutnosti poruke zaglavlja koja je povezana s modulom koda u jednom jeziku.
14. Uređaj prema bilo kojem zahtjevu 11 do 13, naznačen time što je bar jedan jezik objektno orijentirani jezik.
15. Uređaj prema bilo kojem zahtjevu 11 do 14, naznačen time što virtualni stroj identificira kod koji je napisan u objektno orijentiranom kodu prisutnošću poruke zaglavlja koja je povezana s datotekom klase u tom jeziku.
16. Uređaj prema bilo kojem zahtjevu 11 do 15, naznačen time što svaki interpreterski sklop izvršava kod s referencom na jednu ili više biblioteka funkcija.
17. Uređaj prema zahtjevu 16, naznačen time što se zajednička biblioteka funkcija dijeli s množinom interpreterskih sklopova.
18. Uređaj prema zahtjevu 16 ili 17, naznačen time što jedan ili više interpreterskih sklopova izvršava kod s referencom na biblioteku funkcija koja je isključiva za taj interpreterski sklop.
19. Uređaj za obradu digitalnih audiovizualnih podataka, naznačen time što sadrži sustav za obradu podataka koji sadrži memoriju i upravljač memorije za postavljanje i spremanje objekata u memoriju, te u kojem je prvi skup objekata postavljen u upravljač memorije s referencom na skup opsluživača (handle), pri čemu svaki opsluživač sadrži referencu memorijske adrese odgovarajućeg objekta, te u kojem je drugi skup objekata postavljen i spremljen izravno u memoriju bez reference na opsluživač.
20. Audiovizualni uređaj prema zahtjevu 19, naznačen time što su objekti drugog skupa postavljeni i spremljeni u memoriju pomoću upravljača memorije ali se mogu pozvati izravno pomoću ostalih elemenata sustava za obradu podataka.
21. Audiovizualni uređaj prema zahtjevu 19 ili 20, naznačen time što je skup opsluživača (handle) također spremljen u memoriji.
22. Audiovizualni uređaj prema bilo kojem zahtjevu 19 do 21, naznačen time što je upravljač memorije prilagođen zamjeni objekata prvog skupa u memoriji i promjeni adresne reference koja je spremljena u odgovarajućem opsluživaču (handle).
23. Audiovizualni uređaj prema zahtjevu 22, naznačen time što su objekti prvog skupa zamijenjeni u memoriji upravljačem memorije kada se u memoriju više ne može smjestiti više objekata bez zamjene postojećih spremljenih objekata.
24. Audiovizualni uređaj prema zahtjevu 22 ili 23, naznačen time što su objekti prvog skupa zamijenjeni sukladno algoritmu sažimanja da bi se povezala zajedno maksimalna količina slobodnog memorijskog prostora u memoriji, sukladno proračunu algoritma sažimanja.
25. Audiovizualni uređaj prema bilo kojem zahtjevu 19 do 24, naznačen time što su objekti drugog skupa nezamjenjivi u memoriji.
26. Audiovizualni uređaj prema bilo kojem zahtjevu 19 do 25, naznačen time što sustav za obradu podataka sadrži virtualni stroj, a upravljač memorije čini dio virtualnog stroja.
27. Audiovizualni uređaj prema zahtjevu 26, naznačen time što virtualni stroj ima višenitnu arhitekturu, u kojoj se nit može privremeno zaustaviti tijekom njena izvršenja da se dozvoli izvršenje druge niti.
28. Audiovizualni uređaj prema zahtjevu 27, naznačen time što višenitni virtualni stroj sadrži interno generiranu nit skupljača otpada, te virtualni stroj nakon izvršenja ove niti oslobađa objekte u memoriji koji se ne koriste u tom vremenu.
29. Audiovizualni uređaj prema zahtjevu 28, naznačen time što je izvršenje niti skupljanja otpada također izaziva virtualni stroj da izvrši zamjenu objekata prvog skupa sukladno algoritmu sažimanja da bi se povezala zajedno maksimalna količina slobodnog memorijskog prostora.
30. Audiovizualni uređaj prema bilo kojem zahtjevu 19 do 29, naznačen time što je memorija definirana pomoću jedne ili više RAM komponenata.
31. Uređaj prema bilo kojem od prethodnih zahtjeva, naznačen time što je uređaj dekoder za digitalni prijenosni sustav, kao što je digitalni televizijski sustav.
32. Uređaj prema bilo kojem zahtjevu 1 do 18, naznačen time hardverski uređaji uključuju MPEG demultiplekser.
33. Uređaj prema bilo kojem zahtjevu 1 do 18, naznačen time što hardverski uređaji mogu sadržavati bar jedan od sljedećih: prijemnik, serijski međusklop, paralelni međusklop, modem te jedan ili više čitača inteligentnih kartica.
34. Uređaj za obradu digitalnih audiovizualnih podataka, naznačen time što sadrži: hardverski radni sklop koji je povezan s jednim ili više hardverskih uređaja za prijenos i prijem podataka; višenitni virtualni stroj koji sadrži sklop za prijem poruka događaja koje signalizira hardverski radni sklop, sklop za dodjeljivanje odgovarajućih objekata događaja jednoj ili više niti, te sklop za zaustavljanje niti tijekom njena izvršenja da se dozvoli izvršenje druge niti.
35. Uređaj za obradu digitalnih audiovizualnih podataka, naznačen time što sadrži jedan ili više hardverskih uređaja za prijenos i prijem podataka izvan uređaja, te virtualni stroj koji sadrži sklop za prijam koda koji je napisan u interpretativnom jeziku učitanom putem jednog ili više hardverskih uređaja, sklop za razlikovanje koda koji je napisan u bar dva interpretativna jezika u ovisnosti o strukturi primljenog koda, te sklop za slanje takvog koda odgovarajućem interpreterskom sklopu za interpretiranje i izvršenje.
36. Uređaj za obradu digitalnih audiovizualnih podataka, naznačen time što sadrži memoriju i upravljač memorije koji sadrže sklop za postavljanje prvog skupa objekata s referencom prema skupu opsluživača (handles), pri čemu svako opsluživanje sadrži referencu memorijske adrese odgovarajućeg objekta te sklop za postavljanje i spremanje drugog skupa objekata izravno u memoriju bez reference opsluživača.
37. Uređaj za obradu digitalnih audiovizualnih podataka, naznačen time što je suštinski jednak ovdje opisanom.
HR20000166A 1997-10-07 2000-03-22 Multithread data processor HRP20000166A2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
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 (1)

Publication Number Publication Date
HRP20000166A2 true HRP20000166A2 (en) 2000-10-31

Family

ID=27238735

Family Applications (1)

Application Number Title Priority Date Filing Date
HR20000166A HRP20000166A2 (en) 1997-10-07 2000-03-22 Multithread data processor

Country Status (18)

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

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
KR100558674B1 (ko) 2006-03-10
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
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
HRP20000166A2 (en) Multithread data processor
EP0909094A1 (en) Multithread data processor
AU741471B2 (en) IEEE set top box device driver
RU2259020C2 (ru) Мультимедийный терминал для множества пользователей
US7984478B2 (en) Method and apparatus for a receiver/decoder
RU2257687C2 (ru) Таблица данных о приложениях для системы цифровой передачи, предоставляющей множество сервисов
AU2002334278A1 (en) Method and apparatus for a receiver/decoder
EP0908821A1 (en) Digital code interpreter
EP0909091A1 (en) Memory manager
MXPA00003387A (en) Multithread data processor
HRP20000163A2 (en) Modem control
EP1286549A2 (en) Receiver/decoder and module for use with a receiver/decoder
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
A1OB Publication of a patent application
ARAI Request for the grant of a patent on the basis of the submitted results of a substantive examination of a patent application
OBST Application withdrawn