CN1281613A - 多线程数据处理器 - Google Patents

多线程数据处理器 Download PDF

Info

Publication number
CN1281613A
CN1281613A CN98811883A CN98811883A CN1281613A CN 1281613 A CN1281613 A CN 1281613A CN 98811883 A CN98811883 A CN 98811883A CN 98811883 A CN98811883 A CN 98811883A CN 1281613 A CN1281613 A CN 1281613A
Authority
CN
China
Prior art keywords
thread
equipment
virtual machine
memory
handle
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN98811883A
Other languages
English (en)
Inventor
H·廖
R·L·扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canal Plus SA
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 CN1281613A publication Critical patent/CN1281613A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4435Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4437Implementing a Virtual Machine [VM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only

Landscapes

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

Abstract

第一方面,本发明涉及一种处理数字音频视频数据的设备,特别是,一个数字电视系统的接收器和解码器,包括一个或多个传输和接收数据的硬件装置,这些硬件装置有至少一个相关硬件的操作系统(4100);解码器进一步包含一个数据处理系统,包含一个多线程虚拟机(4250),尤其适用于接收由硬件操作系统告知的事件消息并将相关的事件对象(4564)分配给一个或多个线程(4561),在虚拟机中,一个包含了事件对象的线程可能在执行过程中被挂起,以便另一个线程被允许运行。第二方面,本发明涉及一种处理数字音频视频数据的设备,包含一多线程虚拟机,特别适于接收通过一种或多种硬件设备下载的解释性语言编写的代码,虚拟机适于根据所收代码中某个结构分辨使用至少两种解释性语言编写的代码,并将代码传递给相应的解释器工具解释和执行,特别时,调用通用或专用的函数库。第三方面,本发明涉及一种处理数字化音频视频数据的设备,包含一个带存储器及用于内存中分配和存储对象的内存管理器的数据处理系统,内存管理器通过引用一组句柄来分配第一组对象,每个句柄含指向响应对象的引用,第二组对象在内存中直接分配和存储而无须通过句柄。

Description

多线程数据处理器
本发明涉及一种处理数字化视频音频数据的设备,尤其是一种为数字电视系统设计的包含多线程处理器的解码器。
在PCT申请PCT/EP97/02116中描述了一个基于软件的系统,用于控制数字电视系统的解码器,该数字电视系统使用虚拟机和运行时引擎来处理数字电视数据和下载应用程序。这个系统,与以往广为人知的接收器/解码器系统相比,具有很多优点,尤其是通过使用虚拟机结构,使系统的应用层与解码器制造的硬件单元无关。
该申请中描述的系统用基于单文档队列结构的原则来控制和处理系统中出现的事件。基于队列的结构会带来很多缺点,包括对高优先级的事件响应相对较慢,不能有效地处理许多并发输入。系统包含很多处理序列单元。尽管系统可以区分这些序列单元的优先次序,但一旦某一个过程开始,就不能换到另一个。
这种结构的缺点在接收器/解码器包含交互程序时表现得尤为突出。例如,如果系统不能响应更高优先级的命令而同时又经常需要长时间来下载数据,系统就可能在某项操作中被锁住而将用户发出的转向另一模式的要求置之不理。
另外,这个已知的系统很有必要简化设备的驱动器结构。这种已知的解码器的运行时引擎和硬件层设备间的通信是由设备驱动器来处理的,全面的组织由设备管理器完成,它管理事件消息的优先级和输入到处理序列单元的队列结构的数据。正如在申请中所述,运行时引擎是由系统认证提供的,而设备驱动器和管理器往往是由解码器的制造商,按照系统认证的规范提供的。
在本文中,“设备”这个术语一般是指用来处理由解码器接收或传送的数据的接口设备,例如通过智能卡接收或通过广播流等等。
由于解码器制造商解释规范时的差异,可能会导致一些问题,例如管理器不遵循正确的事件优先级分类。在这种情况下,在事件提交到事件过滤器时队列系统将被打断,处理序列单元将被标上错误的优先级,从而不能被队列系统正确处理。
解决这个问题正是本项发明的一个方面所想达到目标之一。
本项发明首先提供了一种处理数字化音频视频数据的设备,该设备至少有一个相关的硬件操作系统,与一个或多个传送和接收数据的硬件设备相关联,该设备还包括一个包含多线程虚拟机的数据处理系统,尤其适用于接收由硬件操作系统告知的事件消息并将相关的事件对象分配给一个或多个线程,在虚拟机中,一个包含了事件对象的线程可能在执行过程中被挂起,以便另一个线程被允许运行。
通过使用多线程机制,本项发明使得系统能有效地响应通过设备终端接收的事件,允许暂时挂起不紧急的进程而迅速处理高优先级的事件。
一种实施方案是虚拟机采用预先腾空(pre-emptive)的多线程机制,即处于运行过程中的线程在更高优先级的线程被创建时就被挂起。这种实施方案由于其对高优先级事件的迅速响应成为首选;也可以设想其它的实施方案,例如时间片方式,即在预先确定的周期性间隔中检查,如果有应该运行的线程存在,虚拟机就打断当前线程的运行。
优选地,虚拟机包含事件管理器,适用于将事件对象储存在优先权机制线程队列中的一个或多个线程中,来响应由硬件操作系统告知的事件。
通过这种方式,事件的优先级可以直接由虚拟机来处理,避免了前面所说系统的问题,即事件首先被低层设备驱动器和管理器排序插入处理器队列。如上所述,驱动器的实现可能由于不同制造商存在差异,相对的,在最佳实施例中,事件消息由事件管理器在虚拟机中排序和给出优先级,而虚拟机的特点就是与平台无关。
尽管现在是通过虚拟机对事件进行有效管理,系统仍然可能在某些具体实现中包含一个或多个设备驱动器作为介于虚拟机操作系统和硬件层操作系统之间的接口。
除了从硬件操作系统出现的事件,事件管理器还被设置成响应从虚拟机内或高层应用程序出现的事件。
在最佳实施例中,线程中事件对象的优先顺序也可能被事件的优先级和/或事件到达时间确定。这可以作为在线程队列中指令分配得到的最初的优先级的补充。
在一个实现中,虚拟机可包含路由表,内含关于可能的事件消息,可由事件管理器指定地址,以便控制收到事件消息时线程间的协调性。这个路由表还可以用来控制线程内事件对象的优先级。本领域的技术人员也可以找到另外变通的方法来实现。
除了事件管理器和路由表以外,虚拟机还优选地包含一个调度程序,适用于检查优先级线程队列中所保持的线程并使得当时具有最高优先级的线程得以执行。为了实现预先腾空的线程管理操作,事件管理器可以适用于告知事件消息的到达并要调度程序检查线程队列中所控制线程的最新状态。
进一步的,在上述的PCT申请PCT/EP97/02116中的系统还存在有关对接收到的代码的处理问题。尽管使用虚拟机和运行时引擎使该申请中的系统能最大限度与系统硬件层无关,系统的开放性仍然受到编写系统最顶层应用程序的代码的限制。正如该申请中所述,代码用解释性语言编写,从广播中心下载到接收器中,再由虚拟机中的解释器解释。
尽管可以选择一种商业上已知的、标准的语言代码,还是会出现问题,例如接收器不得不处理由两种或更多代码编写的应用程序。这种问题可能这样出现,当一个解码器被引入到某广播系统,该系统中已有的解码器适用于接收的代码不同于这个解码器中所用代码。在这种情况下,操作者可能不得不两次下载一个应用程序,一次使用系统中已有解码器的语言所写,另一次用新的解码器中语言所写。很清楚,从带宽使用的角度考虑,这种操作是相对效率较低的。
解决这个问题是本项发明所想达到的进一步的目标。
本发明第二方面提供了一个处理数字化音频视频数据的设备,包含一个或多个用于传送接收设备外部数据的硬件设备,还包括带有第一虚拟机的数据处理系统,该虚拟机尤其适用于接收通过一种或多种硬件设备下载的用解释性语言编写的代码,该虚拟机可以基于收到代码的结构分辨至少两种解释性语言编写的代码,并将这些代码传送给相关的解释器装置解释和运行。
通过提供可以分辨所收到代码的虚拟机,以及许多用来解释这些代码的解释器装置,本项发明避免了与已有技术系统的相关的问题,使机器可以运行用不同的解释性语言写成的指令。这样就可以提供对上层应用程序和底层硬件接口都完全开放的系统。
在一个实施例中,虚拟机通过其中一种语言的某个代码模块相关的头信息中的特征来分辨用至少两种解释性语言编写的解释性代码。特别地,虚拟机可以通过其中一种语言所写的某个代码模块相关的头信息中的特征是否存在来分辨。还可以有其他的实施例,比如通过在传输数据流中或末尾设置一个“标志”或其他的代码元,或通过文件名或一个代码模块来分辨。
本发明特别适用于符合面向对象语言的一种或多种解释性语言的情形。在这种情形下,机器可以检查该语言中某个类文件相关的头信息是否存在。
为了实现这些代码,每种解释器工具要执行基于一个或多个函数库的代码。最好的,通用函数库可以被多个解释器工具共享,以减少函数库所需内存的数量。
虽然存在通用的函数库,一个或多个解释器工具还可以执行基于该解释器专用函数库的代码。这可能是所希望的,例如,某些特别的函数基于一个专用的函数库执行起来更容易。如将会理解的,在可能和方便的情况下,通过使用虚拟机间通用的函数库,可以缩小系统的大小。
在上述的PCT申请PCT/EP97/02116中的系统还存在有关系统在处理命令时使用内存的管理问题。该申请中的系统依靠设备管理器来管理内存单元。该设备中,虚拟机的所有内存需求被平等对待。此外没有关于设备管理器如何优化利用内存空间的讨论。
设备管理器构成了虚拟机下层的一部分,由接收器/解码器的制造商而不是系统认证规范来实现。相对于由系统认证规范来设计,就存在这样的风险,即由接收器/解码器的制造商选择的实现对系统高层元素,如虚拟机的需求来说,可能不是最优的。
部分或全部地解决这些问题,在音频视频设备中提供内存管理更好的系统是本项发明所想达到的进一步的目标。
本项发明的第三个方面是提供了一个处理数字化音频视频数据的设备,包含一个带有内存和用于在内存中分配和存储对象的内存管理器的数据处理系统,其中第一组对象由内存管理器调用一组句柄分配,每一句柄包含相应对象内存地址的引用,而第二组对象不调用句柄,直接在内存中分配和存储。
通过将内存分成通过句柄访问的对象和可直接获取的对象,本发明可分辨,正如下面还要讨论的,可由内存管理器通过多种途径处理从而优化内存空间的第一组对象,以及那些无需通过调用句柄就可直接访问的被更频繁存取的对象。特别地,在一个实施例中,第二组中的对象可在数据处理系统中被其他单元直接获取而无须通过内存管理器。仍然可以要求内存管理器在内存这分配和存储第二组中的对象以保持对存储器内容的控制。
在一个实施例中,句柄可存储在正在讨论的内存中。但是,其它的实现也是可能的,其中句柄存储在其它内存空间,句柄可以动态存储或存储在静态数字中。
在一个实施例中,内存管理器适用于在内存中将第一组对象进行移位,并相应地改变在相关的句柄中所存储的地址引用。例如,在内存中不能再存贮更多对象时,对象可以被移位。移位可以,例如,遵循某种适当的压缩算法。通过这种方法,空闲的内存空间可以被优化利用,同时保持磁道存储对象的简单和有效。
为了保证第二类型对象在任何时刻都可以被访问,这些对象最好不允许在内存中被移位。不过,也可以想象一些实现方法,例如,将第二类型对象的移位时,会相应执行一个过程在该对象在系统中出现处改变它的地址。
本项发明特别适用于实现虚拟机采用本发明第一方面中所描述的那种多线程机制的情况,其中一个线程可在运行过程中被暂时挂起,以允许另一个线程运行。
在这种情况下,多线程虚拟机最好包括一个内部产生垃圾收集线程,虚拟执行这一线程以释放内存中当前未被引用的对象。作为选择的,或作为附加的,执行垃圾收集线程还可根据某个压缩算法使虚拟机进行第一组对象的移位,来将尽可能多的空闲内存空间组织在一起。
所讨论的内存空间可能相应于系统的RAM内存,尽管本发明同样适用于其他存储器元件,如闪存或EEPROM单元。
一方面,本发明特别适用于接收和处理数字化电视系统的解码器,另一方面,本申请中陈述的数据处理系统的原理同样适用于其他处理数字化音频视频数据的设备,例如数字化视频录像机等。
在数字化电视广播解码器的上下文中,解码器硬件设备还可包括以下之一或全部:带调谐电路的MPEG多路分解器,串行接口,并行接口,调制解调器以及一个或多个智能卡读卡机。
这里使用的术语“接收器/解码器”或“解码器”意味着接收器用于接收编码的信号或没有编码的信号,例如,可以通过其它一些途径广播或传输的电视和/或无线电信号。该术语可能还意味着对所接收到的信号进行解码的解码器。实现这样的接收器/解码器可能在接收器之外包含一个解码器,对所接收到的信号进行解码,例如在机顶盒中,解码器的功能集成在物理分离的接收器中,或解码器包含额外的功能如浏览器,或解码器与其它装置如录像机或电视机集成。
这里所用的术语“数字化传输系统”包含任何主要传送或广播视听数据或数字化多媒体数据的传输系统。一方面本发明特别适用于广播数字化电视系统,另一方面,本发明对用于多媒体互联网应用的固定远程通信网,对闭路电视系统等也适用。
这里所用术语数字化电视系统包含,例如任何人造卫星、陆地、电缆或其它系统。
以下详细描述中的术语MPEG指的是由ISO工作组“运动图像专家组”开发的数据传输标准,特别是但不专指为数字化电视应用开发的MPEG-2标准,在文件ISO13818-1,ISO13818-2,ISO13818-3和ISO13818-4中有陈述。在本专利申请的上下文中,该术语包含所有数字化数据传输领域应用的MPEG格式的不同形式,变型和扩展。
现在,仅仅通过实例,参考附图,该来描述本发明的具体实现了,其中:
图1显示了数字化电视系统的概貌;
图2显示了图1数字化电视系统中的交互系统单元;
图3显示了在本发明的接收器/解码器中实现的基于软件的系统机制;
图4显示了图3系统中的虚拟机机制,特别包扩了事件管理器包、解释器包和存储器包;
图5显示了虚拟机中所用解释器的结构;
图6显示了虚拟机中的线程处理;
图7显示虚拟机的事件管理器和调度程序的操作;
图8显示了虚拟机对内存池的管理。
数字化电视网络
依照本发明,数字化电视系统1000的概貌显示如图1。本发明包含常规的数字化电视系统2000,使用已知的MPEG-2压缩系统传送压缩的数字化信号。更具体地说,在广播中心的MPEG-2压缩器2002接收数字化信号流(特别是视频信号流)。压缩器2002通过联接2006连接到多路复用器和扰频器2004。
多路复用器2004将接收到的多个输入信号,聚集成一个或更多的传输流,将压缩后的数字化信号通过联接2010传送给广播中心的电视讯号发送器2008,当然,联接可以通过包括远程通讯连接等各种形式来实现。发送器2008通过上传链路2012将电磁波信号传送给卫星发射机应答器2014,在此对信号进行电子处理,并通过抽象的下传线路2016广播给每个接收器2018,接收器的通常形式就是终端用户拥有或租赁的碟形卫星天线。接收器2018接收到的信号被传送到终端用户拥有或租赁的集成接收器/解码器2020,并最终连接到终端用户的电视机2022。接收器/解码器将MPEG-2编码压缩信号解码成电视信号提供给电视机2022。
条件访问系统3000与多路复用器2004和接收器/解码器2020相连,其位置部分处于广播中心,部分处于解码器中。它使终端用户能访问一个或多个广播供应商所播送的数字电视节目。可以破译与商业意图相关信息(简而言之,由广播电视供应商出售的一个或多个电视节目)的智能卡可以被插入接收器/解码器2020。利用解码器2020和智能卡,终端用户可以通过订购或按次计费的方式购买有偿的电视节目。
数字化电视网络中的交互系统
交互系统4000,同样与多路复用器2004和接收器/解码器2020相连,位置部分处于广播中心,部分处于解码器中,使终端用户可以通过调制解调器回送通道4002与各种各样的应用程序实现交互。
图2显示了交互式电视系统4000的总的结构,概括的说,包括四个主要单元:
1.处于广播中心或其它位置的创作工具4004,允许广播电视供应商可以创建、开发、调试和测试应用程序。
2.程序、数据服务器4006,位于广播中心,与创作工具4004相连,广播供应商可以准备、鉴别和格式化应用程序和数据,传送到多路复用器和扰频器2004,插入MPEG-2传输流(典型的是在其私有部分)中广播给最终用户。
3.在接收器/解码器中的数据处理系统4008,用于接收和处理下载的应用程序和数据,管理与交互式系统其它部分及接收器/解码器的硬件单元之间的通讯,系统4008包含一个虚拟机及其通过安装在接收器/解码器中的可执行代码实现的运行时引擎(RTE)。
4.介于接收器/解码器2020和程序数据服务器4006之间的调制解调器回送通道4002,应最终用户的要求,传达指示服务器4006的信号,从而将数据和应用程序插入MPEG-2传输流。信息也可通过另一方向传递。
接收器/解码器2020包含一系列设备以实现与交互系统以外的设备的通信,例如调谐接收器的调谐器,用于分解多路MPEG信号的MPEG多路分解器,串行接口,并行接口,调制解调器,读卡机——适用于读如信用卡或与系统同时发行的预付智能卡。这些设备的特性,在数字化电视系统领域已经为人熟知,在这里就不再详细描述了。
类似地,可能提供的各种交互式应用程序(家庭银行,远程购物,计算机软件下载)对于该领域中的人来说是很显然的,这里不再详细描述。下述解码系统架构特别适合交互式应用的同时,最好这种架构也能应用于简单的非交互式的数字电视系统,如传统方式付费的电视系统。
解码器系统架构
现在来看图3所示的接收器/解码器的系统架构,可以看出使用了分层的结构。第一层4100代表了接收器/解码器硬件的操作系统。这是由制造商选择的用于控制接收器/解码器硬件单元的实时操作系统。该实时操作系统具有相对较快的响应速度,以正确同步硬件操作。事件消息在这一层和紧邻的上一层的中间件层4200间传递。
数据处理系统4008位于硬件操作系统的顶层,包含一个中间件层和一个应用层(或更准确的说,应用程序接口层)。
中间件层用如C ANSI之类的语言编写,所含单元有虚拟机4250和一些接口4260,包含图形接口4261,FLASH/PROM存储器接口4262,协议接口4263和设备接口4264。
和介绍中更详细描述的在专利申请PCT/EP97/02116中陈述的系统一样,本发明使用虚拟机以使上层应用程序和由制造商实现的底层操作系统无关。接口4260为虚拟机的操作与底层操作系统4100之间提供联接,它包含一系列中间层应用程序模块,这些模块在中间层运行起来更加容易。
应用程序接口层(API)4300包含许多用面向对象的解释性语言,如Java,写成的高层包4310-4314。这些包为由服务供应商创建的应用程序(交互式的节目向导,远程购物,互联网浏览器等)和系统虚拟机之间提供了接口。下面给出了这类应用程序一些实例。
尽管在某些实现中,可以下载底层操作系统,通常情况下,底层操作系统被嵌入解码器的硬件元件内。中间层和应用程序接口层的包可以直接从广播传输中下载到解码器的RAM或FLASH存储器中。作为选择,中间层和应用程序接口层的一些或全部单元也可以被存储在解码器的RAM或(如果有的话)FLASH存储器中。可以理解的,解码器的存储器单元的物理结构与逻辑结构是截然不同的。
应用程序接口层
提到图3所示的应用程序接口层,如上所述,该层的包是由面向对象语言,如Java来写的。每个包定义一套类库,在系统执行过程中调用。本系统中,安装了以下包。
Lang/Util包4310。这些包定义了虚拟机处理对象所必需的类。通常这些类库组成了与所选择面向对象语言相关的一个标准库的部分。
MHEG-5包4311。这个包定义了与电视显示中图形对象的处理相关的类。这些对象与音频视频数据是截然不同的,可以用来构成通道标识符或覆盖在显示影像上的文字。这个包内类的定义应该遵循ETS300777-3标准和ISO/ISE 13522-5标准(如果是由Java实现的系统,则是ISO/ISE 13522-6标准)所制定的规范。
Too1Box包4312。这个包包含用于信息下载和解压缩的类,有关接收器/解码器中文件系统和内存管理的类,以及与互联网建立连接的类等。
Device包4313。这个包定义了管理接收器/解码器所连外围设备所必需的类,如上所述,外围设备包括调制解调器,智能卡读卡器,MPEG流调谐器等。
Service包4314。定义了实现高层交互应用程序开发,如信用卡数据管理等,所必需的类。
DSMCC-UU包4315。这个包实现了搜索和读出文件时,客户端与服务器端间通信所必需的协议。这个包的实现应该遵照ISO/IEC13818-6规范以及DAVIC第九部分中阐述的指示。
再有,交互式应用程序层,在传统系统中,由服务供应商编写,在广播中下载,会被覆盖在上面定义的接口包之上。对于被引入的不同应用程序,上述包中的一些可以被省略。例如,如果服务供应商没有打算提供通常的途径来读出数据,在最后的系统中可以不考虑DSMCC-UU包。
包4300为面向对象编程环境提供类库。这些类将依赖于所选择的语言。例如,如果是Java的应用程序,简单继承类结构会被保留。接口层
如图所示,接口层由四个模块组成,图形模块4261,内存文件管理模块4261,协议模块4263和设备管理器4264。本层的这些模块被描述成接口模块的同时,它们的功能通常是为应用接口包的实现和虚拟机操作提供一个“粘接”(glue)层。
例如,图形模块4261提供了图形对象的创建和管理。它要求底层操作系统显示基本的图形,如单个像素,直线,矩形等。该模块的实现依赖于制造商提供的底层操作系统的图像能力。在某些方面,作为MHEG-5包的补充,这些函数在这一代码层可以比由上层应用程序层选择的高层代码执行更有效。
类似的方式,内存文件管理模块4262包含与系统存储单元相关的低层文件读/写命令。典型的,硬件操作系统仅包括在存储元件中读/写一个扇区或页面所必需的命令。和图形模块4261一样,这些模块准许引入一些简单低层应用以提高效率。
协议管理模块4263定义了,例如通过解码器的TCP/IP层,在通讯中可能调用的通讯协议库。
设备管理器4264与该层的其它模块稍有不同,它提供了硬件操作系统与上层,包括接口层中的其它模块和虚拟机,之间的链路或接口。例如,从虚拟机送往或接收到硬件操作系统的命令或事件消息,必须通过设备管理器来传送,设备管理器会根据两层接口的规范作一定的变换。
虚拟机描述
现在来看图4,描述了本发明的系统中所用虚拟机4250的结构。本发明中所用虚拟机是一种预先腾空的多线程机器。这种机器的一般特点在音频视频和数字化电视以外的领域也是为人所熟知的,下面会着重描述本项申请中相关的特殊领域。
虚拟机由几个单元组成,在很大范围上交互,如图4所示。
由线程管理器4271和监视器管理器4272组成的调度程序4270构成了多线程虚拟机的心脏。调度程序4270为由虚拟机外的应用程序创建的线程以及由虚拟机本身创建的线程(例如下面要讨论的垃圾收集线程)安排执行顺序。
事件管理器4273处理事件路由表和由线程提供的事件列表,集中事件处理的分发。
存储器管理器4274控制系统存贮器内的存储空间的分配和回收,以及释放不被引用的对象(垃圾收集)。
类管理器4375掌管从广播信号中下载的应用程序代码中的类,与安全管理器4280、实现应用程序的文件管理器4276相互作用检查下载代码的完整性。
文件管理器4276完成系统文件的实现,控制交互式应用程序及数据的下载机制。
安全管理器4280掌握对下载应用程序所允许的访问的层,某些应用程序与涉及文件系统的其它程序相比可以执行更多的操作。
解释器4277包含字节码解释器4278和“m-代码”解释器4279,处理由这样两种代码写成的应用程序的解释,字节码与Java应用程序相关;m-代码是由本申请人开发的一种代码规范的名字。
类管理器、文件管理器和安全管理器的运行和实现是比较常规的,下面着重叙述解释器、调度程序、事件管理器和内存管理器的运作。
解释器
现在来看图5,将描述实现本发明所用的解释器4277的运行情况。如介绍中所讨论的,已有的解码器中所用的常规操作系统的缺点在于它们依赖于一种代码类型来实现高层应用程序。尽管所选择的代码可能是市场上买得到的,广为人知的应用程序代码,然而在某个领域,需要保留用几种代码编写的不同应用程序的数个解码器时,还是会出现问题。本系统中的解释器可以完成数种代码的解释。
如图所示,文件传到系统中,无论是字节编码类还是m-编码模块,都由模块类管理器4500根据文件结构进行评价,这样传送给解释器4510的应用程序代码就含有有关格式的指示。在字节码应用程序中,例如,下载的类文件会带有四个八比特字节的特征标识头,后面紧跟一个也是四个字节的版本号。解释器可以根据这样一个字节码的头存在与否来辨别这两种代码。
在其它的具体实现中,代码的其它特性,例如文件名,可以用来分辨任何数量的应用程序语言。
根据格式指示器的结论,字节码的指令被送往字节码解释器4278,在此,与通常处理解释性代码指令那样,将调用有关字节码指令的程序库4520来执行指令。
m-编码的指令被送往m-代码解释器4278。大多数的m-编码指令是通过调用与字节码指令相关的函数库4520来实现和执行的,解释器4278一有可能就会调用库4520来执行这些m-编码的函数。
不过,在某些情况下,一些m-编码指令可能需要特殊的、调用通常的函数库不易执行的执行函数。在这种情况下,可以设想调用一个单独的函数库4530来实现指令。调度程序和事件管理器
现在来讨论调度程序4270和事件管理器4273,参见图6,显示了系统中一个线程的生命周期,以及图7,显示了当低层运行时操作系统告知一事件时,系统响应,通知线程。
描述主要集中在线程产生的处理,它代表了尤其是由告知事件产生的执行情况。可以理解,线程在上层应用程序产生送往硬件操作系统的指令开始和该指令被返回间创建。也可以在虚拟机自身内部创建线程,例如垃圾收集线程。
正如前面提到的,当前的实现方式依赖于一个正如基于Java系统中所有的预先腾空的线程处理虚拟机。在这个虚拟机中,产生的多个线程被存储在线程队列中。调度程序监视线程队列,选择具有最高优先级的线程执行。通常,正在执行的线程具有最高的优先级,但是该线程可能被一个具有更高优先级的线程打断,这在预先腾空线程系统中是很常见的。在这种情况下,被打断线程的状态被保存下来,一旦再次被选择执行,就被再次激活。
某些情况下,线程本身可能包含所谓的“让位”(yield)指令,让调度程序挂起该线程的执行,并检查线程队列,执行其它线程。让位指令可能存在于低优先级的内部生成的任务中,如由系统执行的垃圾收集功能,用以除去系统内存中无用的对象。
系统的这几方面如图6所示。在4550新建一个线程导致线程队列4551增加一个线程。新建的线程具有状态为“初始”4552。如果没有更高优先级的线程,该线程被指令start( )执行,并在4553具有状态“可执行”。如果该线程中执行了指令stop( ),该线程在4554状态变为“死亡”。如果该线程被指令run( )fini终止也将同样达到这个状态。如果该线程自身中执行yield( )指令,或线程外部执行了suspend( )指令,该线程被挂起,并赋予状态“不可执行”4556。
现在来看图7,这里描述了在低层操作系统4100,事件管理器4273和调度程序4270之间的相互作用。由运行操作系统4100告知的新发事件被通过设备管理器4313传递给事件管理器4273。一种首选的实现方式是,由设备管理器4313和/或操作系统4100中的多任务系统执行收到事件的部分优先级辨别。然而,会更明了的一点是,本系统的优点之一基于这样一个事实,与PCT/EP97/02116中描述的系统不同,事件的处理在虚拟机4250中完成,于是使中间层的创建者能完成对事件处理过程的完全控制。
在当前的实施例中,通过设备管理器4313发送的事件根据其代码和类型被分类。代码标识出事件的特征,例如,在有关解码器远程控制操作中产生的事件,代码可以指出压下的按钮。“类型”指出事件的来源,比如远程控制。
在收到事件信号后,事件管理器4273使用路由表决定事件的优先级、线程的目的地,并将一个相关的事件对象4564插入基于优先级的线程队列4562中一个或多个线程。一个或多个事件对象4564会被存储在由4563标识的给定的线程中。事件对象4564们被按照其优先级分类存在线程内。在线程中同优先级的事件对象按它们达到的时间确定优先级(FIFO)。
收到一个事件后,事件管理器4273告知调度程序4270,调度程序接下来检查线程队列中是否存在一个比当前执行的优先级更高的线程。如果存在,如上所述,当前线程随即被挂起,执行新线程。用这种方法实现了一个预先腾空的线程处理系统。
这样,最佳实施例允许解码器中足够的线程处理,由此使系统即使正在处理现存高优先级事件的情况下能对事件调用迅速做出响应。这样就克服了知名单处理器队列系统的缺点。
已描述的这种优选的实现方式是关于预先腾空的系统,即事件到达将使事件管理器告知调度程序中断一个线程执行,同时,其它实现方法也是可能的。例如,在时间片系统中,调度程序可以周期性的打断线程执行,察看线程队列的状态。或者,调度程序可以在当前线程每处理一条指令后,打断执行并察看线程状态。
内存管理器
如将会理解的,在接收器/解码器的相关内容中,由于与例如PC或其它基于硬盘的平台相比,内存空间相对有限,所以系统中内存池的管理特别重要。在下面的叙述中,内存池相应于在RAM或接收器/解码器中的内存空间。然而,如上所述,内存的物理结构和逻辑组织不是完全对应的,下面所说的内存池可能位于接收器/解码器内其它物理存储器设备中,或共享在几个之间,如闪存储器,EEPROM等。
现在来看图8,显示的是系统中可用内存的组织。可以看到内存空间由一个句柄池4600,一个可移位对象池4610和一个不可移位对象池4620组成。
在池6100中的每个对象被池4600中存储的句柄标识和对应。句柄及其对应对象间的关系由内存管理包4274管理(见图4),该包同时控制对池的访问。对池中对象的一切调用都通过它的句柄来实现。池4600和池4610间的边界是可移动的。当一个新的对象要被存储在内存中时,在池4600中就会新建一个句柄,带有一指向池4610中对象地址的指针。这样,句柄的列表一一增加。句柄在池中被组织为列表的形式,以允许内存管理器的压缩。
对象会应需要并根据可用的空间被存放在池中。如果对象要求分配的空间超出一个块中可用的空间,就必须压缩内存中已经存放的对象。可以通过任何已知的压缩算法来实现内存中对象的压缩,例如,拷贝-压缩算法。在当前的实施例中使用的是标记-清扫(MarkSweep)算法。为压缩空间,对象们被移动到区域4610周围,由此更加紧密的聚合对象,避免相邻对象中残留空闲空间。这样,一块中所有空闲空间被聚到一起,如在池4610中可以分配给新的对象。
如上所述,内存管理器包保持池4600中句柄和池4610中对象的对应关系,为今后的访问,池中对象的新地址会在对应句柄中更新。
使用句柄来访问对象使系统能优化池中内存分配,同时,这个过程也增加了访问对象所需的时间,因为总是需要先访问句柄来获得对象的地址。在某些情况下以及对指定事件的相关对象,可能需要更加快速的访问速度。
在这种情况下,对象可以被存放在不可移位对象池4620中。该池中这些对象的地址是固定的。于是没有创建句柄的必要,对象被系统直接使用,由此简化了这些特殊对象的访问过程。同样的,象池4600和池4610的边界一样,池4610和池4620的边界也会根据池4620中存放信息而改变。
例如,在事件中,要将一个不可移位的对象分配到池4620,同时,由于池4610中可移位对象的安排,没有足够的空间,就可能执行前面描述的可移位对象的压缩。一旦池中的对象被重新组织,释放出尽可能多的空闲空间,在池4620中可能就可以分配出一个不可移动的块来了。
选择那些对象可移动,那些对象不可以移动,都出于设计者的判断。例如,与系统的相关的对象可能由于这些对象的重要性被选择成不可移动的,而高层应用程序对象可能是可移动的。在某些场合下,可移动的对象可以被暂时锁住,从而被看成不可移动的对象。
为消除内存池中不要的对象,系统可能还包括所谓的垃圾收集。这涉及到创建一个特殊的优先级最低的垃圾收集线程,当调度程序发现目前队列中没有存储其它线程时会被调用。执行时,内存池中当前已分配的所有可移动对象,如果此时没有被引用,就会给释放。垃圾收集线程还按照上述的规则执行所有可移位对象的压缩。
垃圾收集线程的创建在数字化电视系统以外的应用程序中所用的其它多线程系统的相关内容中都是已知的,这里就不再更详细的讨论了。不过,可以理解使用垃圾收集过程结合上述的其它内存管理技术产生特别的优点。

Claims (37)

1.一种处理数字化音频视频数据的设备,该设备带有至少一套与一个或多个传送和接收数据的硬件设备相关的硬件操作系统,该设备还包含带有多线程虚拟机的数据处理系统,尤其适用于接收由硬件操作系统告知的事件消息并将相关的事件对象分配给一个或多个线程,线程可能在执行过程中被挂起,以便另一个线程被允许运行。
2.如权利要求1中的设备,其中虚拟机带有预先腾空的多线程机制,线程在执行过程中会被更高优先级线程的创建挂起。
3.如权利要求1或2中的设备,其中虚拟机包含事件管理器,用于通过在基于优先级的线程队列中一个或多个线程中存储事件对象响应由硬件操作系统告知的事件消息。
4.如权利要求3中的设备,其中,由硬件操作系统发往事件管理器的事件消息首先由数据处理系统中的一个或多个设备管理器处理。
5.如权利要求3或4中的设备,事件管理器还适于响应虚拟机内部生成的,或从数据处理系统的内部或外部的高层应用程序接收到的事件消息。
6.如权利要求3至5中任一个的设备,其中事件管理器对线程内部的事件对象基于事件消息的优先级和/或事件消息到达时间进行分类。
7.如权利要求3至6中任一个的设备,其中虚拟机还包含一张路由表,包含关于可能事件消息的信息,可被事件管理器重设地址以决定所收到事件消息与线程的对应性。
8.如权利要求7中的设备,其中路由表包含可使事件管理器确定在线程内的事件对象优先级的信息。
9.如权利要求3至8中任一个的设备,其中虚拟机还包含调度程序,适于检查基于优先级组织的线程队列中所保存的线程并命令目前具有最高优先级的线程执行。
10.如权利要求9的设备,其中事件管理器可以告知事件消息的到达并使调度程序检查线程队列中所保存线程的新状态。
11.一种处理数字化音频视频数据的设备,包含一个或多个用于传输和接收外部数据的硬件设备,该设备还包括一个带有第一虚拟机的数据处理系统,虚拟机特别适于接收通过一个或多个硬件设备下载的解释性语言编写的代码,虚拟机适于根据所收代码中某个结构分辨使用至少两种解释性语言编写的代码,并将代码传递给相应的解释器工具解释和执行。
12.如权利要求11中的设备,其中虚拟机基于其中一种语言与代码模块相关的头信息的特点,分辨用至少两种解释性语言编写的解释性代码。
13.如权利要求11或12中的设备,其中虚拟机解释器根据与其中一种语言代码模块相关的头信息的存在与否来辨别两种解释性的代码。
14.如权利要求11至13中任一个的设备,其中至少一种是面向对象语言。
15.如权利要求11至14中任一个的设备,其中虚拟机基于与该面向对象语言类文件相关的头信息存在与否来识别用这种面向对象语言所写的代码。
16.如权利要求11至15中任一个的设备,其中每个解释器工具调用一个或多个函数库来执行代码。
17.如权利要求16中的设备,其中通用程序库被多个解释器工具共享。
18.如权利要求16或17中的设备,一个或多个解释器工具调用其专用的函数库执行代码。
19.一种处理数字化音频视频数据的设备,包含一个带存储器及用于内存中分配和存储对象的内存管理器的数据处理系统,内存管理器通过引用一组句柄来分配第一组对象,每个句柄含指向响应对象的内存地址的引用,第二组对象在内存中直接分配和存储而无须通过句柄。
20.如权利要求19中的音频视频设备,其中第二组的对象由内存管理器分配和存储在内存中,但可以由数据处理系统的其它单元直接获取。
21.如权利要求19或20中的音频视频设备,其中句柄组同样存储在内存中。
22.如权利要求19至21中任一个的音频视频设备,其中内存管理器可以将内存中的第一组对象进行移位,并相应地改变存储在对应的句柄中的地址引用。
23.如权利要求22中的音频视频设备,其中当内存中不进行已存储对象的移位就无法再存储更多对象时,内存管理器在内存中对第一组对象进行移位。
24.如权利要求22或23中的音频视频设备,其中根据压缩算法对第一组对象进行移位,从而将内存中按压缩算法计算将尽可能多的空闲空间聚集在一起。
25.如权利要求19至24中任一个的音频视频设备,其中第二组对象在内存中是不可被移位的。
26.如权利要求19至25中任一个的音频视频设备,数据处理系统包括一个虚拟机,内存管理器组成虚拟机的部分。
27.如权利要求26中的音频视频设备,其中虚拟机具有多线程机制,线程可在执行过程中被暂时挂起,以允许另一线程的执行。
28.如权利要求27中的音频视频设备,其中多线程虚拟机包含内部生成的垃圾收集线程,虚拟机执行该线程来释放内存中当前未被引用的对象。
29.如权利要求28中的音频视频设备,其中垃圾收集线程的运行还使虚拟机根据压缩算法对第一组对象进行移位,从而将内存中按压缩算法计算将尽可能多的空闲空间聚集在一起。
30.如权利要求19至29中任一个的音频视频设备,其中内存定义为一个或几个RAM部件。
31.如前面所有权利要求中任一个的设备,该设备是数字化传输系统,例如数字化电视系统的解码器。
32.如权利要求1至18中任一个的设备,其中一个硬件设备包含MPEG多路分接器。
33.如权利要求1到18中的设备,其中硬件设备至少包含以下的一种:调谐器,串行接口,并行接口,调制解调器,一个或多个智能卡读卡机。
34.一种用于处理数字化音频视频数据的设备,包括:
用于传输接收数据的一个或多个硬件设备相关的硬件操作装置;多线程虚拟机包含接收硬件操作装置告知的事件消息的装置,将相应的事件对象分配给一个或多个线程的装置,在一个线程执行过程中将其挂起以允许另一线程执行的装置。
35.一种用于处理数字化音频视频数据的设备,包括用于传输和接受外部数据的一个或多个硬件设备,和虚拟机包含接收通过一个或多个硬件设备下载的解释性语言编写代码的装置,包含基于所收代码中某个结构分辨使用至少两种解释性语言编写代码的装置,将代码传递给相应的解释器工具解释和执行的装置。
36.一种用于处理数字化音频视频数据的设备,包含存储器和内存管理器,带有调用一组句柄,每个句柄包括对相应对象存储器地址的引用,分配第一组对象的装置,带有在内存中不通过句柄,直接分配和存储第二类对象的装置。
37.一种用于处理基本上如这里所述的数字化音频视频数据的设备。
CN98811883A 1997-10-07 1998-10-07 多线程数据处理器 Pending CN1281613A (zh)

Applications Claiming Priority (6)

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

Publications (1)

Publication Number Publication Date
CN1281613A true CN1281613A (zh) 2001-01-24

Family

ID=27238735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN98811883A Pending CN1281613A (zh) 1997-10-07 1998-10-07 多线程数据处理器

Country Status (18)

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

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100356326C (zh) * 2003-03-21 2007-12-19 清华大学 基于操作栈记录的恢复的Java线程迁移的方法
CN100359506C (zh) * 2001-12-20 2008-01-02 杉桥技术公司 能够高效处理汇聚设备应用的多线程处理器
US7584356B2 (en) 2003-08-29 2009-09-01 Panasonic Corporation Broadcast receiving apparatus
CN101833475A (zh) * 2005-06-23 2010-09-15 英特尔公司 用于增强线程级推测的原语
CN101714165B (zh) * 2009-12-08 2011-08-17 青岛海信宽带多媒体技术有限公司 一种数据导入的方法
CN101405712B (zh) * 2006-03-21 2011-11-16 英特尔公司 利用虚拟化技术来加速域特定运行时环境的框架
CN101002171B (zh) * 2003-12-18 2012-02-01 英特尔公司 虚拟网络接口
CN101242392B (zh) * 2007-02-06 2012-02-08 国际商业机器公司 用于系列服务消息处理的方法、设备和系统
CN102779035A (zh) * 2011-05-12 2012-11-14 华硕电脑股份有限公司 事件产生的处理方法及处理系统
CN101470596B (zh) * 2007-12-27 2013-06-12 英特尔公司 虚拟化环境中的音频子系统共享
CN103345385A (zh) * 2013-07-29 2013-10-09 北京汉邦高科数字技术股份有限公司 一种串行事件转换成并行事件的方法
CN101963917B (zh) * 2004-12-31 2016-03-02 钟巨航 具有多个子系统的数据处理系统及方法
CN108446147A (zh) * 2018-03-23 2018-08-24 携程旅游网络技术(上海)有限公司 移动终端的多线程计算方法及系统
CN112368679A (zh) * 2018-07-06 2021-02-12 苹果公司 用于调度线程以用于执行的系统
CN117439997A (zh) * 2023-12-20 2024-01-23 天津华来科技股份有限公司 一种基于模块化设计的通用p2p通信架构构建方法

Families Citing this family (19)

* 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
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
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
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
EP2140693A4 (en) * 2007-04-30 2013-05-29 Thales Avionics Inc SERVER DESIGN AND APPROPRIATE PROCEDURE
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 Шарп Кабусики Кайся Аудиовизуальная стоечная система
CN102685010B (zh) * 2012-05-16 2016-05-18 河南辉煌科技股份有限公司 实现超大规模连接tcp/ip网络的通信方法
JP5912175B2 (ja) * 2012-08-21 2016-04-27 ソニー株式会社 情報処理装置、情報処理方法、プログラムおよびサーバ装置
CN107295285B (zh) * 2017-08-11 2018-07-27 腾讯科技(深圳)有限公司 视频数据的处理方法、处理装置及存储介质

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

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100359506C (zh) * 2001-12-20 2008-01-02 杉桥技术公司 能够高效处理汇聚设备应用的多线程处理器
CN100356326C (zh) * 2003-03-21 2007-12-19 清华大学 基于操作栈记录的恢复的Java线程迁移的方法
US7584356B2 (en) 2003-08-29 2009-09-01 Panasonic Corporation Broadcast receiving apparatus
CN101002171B (zh) * 2003-12-18 2012-02-01 英特尔公司 虚拟网络接口
CN101963917B (zh) * 2004-12-31 2016-03-02 钟巨航 具有多个子系统的数据处理系统及方法
CN101833475B (zh) * 2005-06-23 2014-04-16 英特尔公司 用于执行指令原子块的方法和装置
CN101833475A (zh) * 2005-06-23 2010-09-15 英特尔公司 用于增强线程级推测的原语
CN101405712B (zh) * 2006-03-21 2011-11-16 英特尔公司 利用虚拟化技术来加速域特定运行时环境的框架
CN101242392B (zh) * 2007-02-06 2012-02-08 国际商业机器公司 用于系列服务消息处理的方法、设备和系统
CN101470596B (zh) * 2007-12-27 2013-06-12 英特尔公司 虚拟化环境中的音频子系统共享
CN101714165B (zh) * 2009-12-08 2011-08-17 青岛海信宽带多媒体技术有限公司 一种数据导入的方法
CN102779035A (zh) * 2011-05-12 2012-11-14 华硕电脑股份有限公司 事件产生的处理方法及处理系统
CN103345385A (zh) * 2013-07-29 2013-10-09 北京汉邦高科数字技术股份有限公司 一种串行事件转换成并行事件的方法
CN108446147A (zh) * 2018-03-23 2018-08-24 携程旅游网络技术(上海)有限公司 移动终端的多线程计算方法及系统
CN112368679A (zh) * 2018-07-06 2021-02-12 苹果公司 用于调度线程以用于执行的系统
CN117439997A (zh) * 2023-12-20 2024-01-23 天津华来科技股份有限公司 一种基于模块化设计的通用p2p通信架构构建方法
CN117439997B (zh) * 2023-12-20 2024-03-08 天津华来科技股份有限公司 一种基于模块化设计的通用p2p通信架构构建方法

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
KR20010031004A (ko) 2001-04-16
PL340331A1 (en) 2001-01-29
BR9813024A (pt) 2000-08-15
EP1339222A2 (en) 2003-08-27
AU9363298A (en) 1999-04-27
HRP20000166A2 (en) 2000-10-31
ID24808A (id) 2000-08-24
NO20001652L (no) 2000-06-07
JP2001519579A (ja) 2001-10-23
CA2304862A1 (en) 1999-04-15
TR200003046T2 (tr) 2001-01-22
CA2304862C (en) 2011-12-06
NO20001652D0 (no) 2000-03-30
EP1339222A3 (en) 2005-08-31
WO1999018730A2 (en) 1999-04-15
HUP0100296A2 (hu) 2001-05-28
RU2227378C2 (ru) 2004-04-20
EP1021918A2 (en) 2000-07-26
TR200000922T2 (tr) 2000-07-21
HUP0100296A3 (en) 2002-12-28
IL135440A0 (en) 2001-05-20
US20050132400A1 (en) 2005-06-16

Similar Documents

Publication Publication Date Title
CN1281613A (zh) 多线程数据处理器
CN1227588C (zh) 用于根据应用生存周期管理该应用的方法和设备
CN1910553A (zh) 基于存储器要求在多处理器系统中进行任务调度的方法和设备
CN1187936C (zh) 通信系统
EP1304871A2 (en) Method and apparatus for a receiver/decoder
KR20060008896A (ko) 자원 관리 방법 및 장치
CN1271492A (zh) 数字式传输流处理
CN1606309A (zh) 用于遥控的设备及方法
CN1372662A (zh) 运行和测试应用程序
CN1239375A (zh) 扩大数字视频广播-公用接口功能的方法和装置
RU2181929C2 (ru) Извлечение секций данных из транслируемого потока данных
CN106454402B (zh) 转码任务调度方法和装置
CN1336070A (zh) 多业务数字传输系统的应用数据表
CN1265206A (zh) Ieee机顶盒设备驱动器
CN109491627A (zh) 一种多应用投屏方法、多应用投屏系统和存储介质
EP0908821A1 (en) Digital code interpreter
CN1324889C (zh) 一种嵌入式的数字电视业务平台的实现方法
CN1188790C (zh) 调制解调器的控制方法及设备
EP0909091A1 (en) Memory manager
CN1373970A (zh) 用于测试应用程序的装置及其方法
CN1322432A (zh) 具有可变管理指令集的应用程序管理器
CN1040476A (zh) 带内控制器
CN1581067A (zh) 多路分配器应用程序接口
CN114286187B (zh) 可快速实时切换的多路光电视频管理装置及其管理方法
CN1260056A (zh) 访问控制系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication