新四季網

面向對象的多媒體結構的製作方法

2023-05-08 18:19:06 2

專利名稱:面向對象的多媒體結構的製作方法
技術領域:
本發明涉及數字計算機硬體及軟體結構領域,更具體地,涉及用於實時地處理多媒體數據的面向對象的多媒體結構。
多媒體系統將多種信息源,如聲音、圖形、動畫、圖像、音頻及全運動視頻信號組合成寬廣範圍的應用。通常,多媒體代表了三個不同的淵久工業的新結合計算、通信及廣播的新結合。多媒體系統的明確特徵是連續媒體,如聲音、視頻及動畫的結合。分布式多媒體系統需要在相對長的時間周期上連續地傳送數據,例如播出從遠方攝像機來的視頻信息流、媒體同步,很大的存儲器及其它的技術上的挑戰。
新的及改進的多媒體使用具有各種各樣的應用。例如,包括建立頂置盒(set top boxes)及交互電視,多媒體圖書館(資料庫),可攜式計算機,遊戲機,先進的可攜式數字儀器,移動式終端及全球網頁(world wide web pages)。在多媒體應用中涉及的大量數據及需要實時或近實時的處理對硬體及軟體系統設計者提出了挑戰。這些挑戰正在多個不同的前沿被提出,例如在壓縮算法及專用硬體處理器方面被提出。多媒體應用的複雜性著重於計算機系統的所有部件。多媒體數據需要對實現圖形、變換、數據解壓縮等有非常大的處理能力。其結構顯然必須提供非常高的總線帶寬及高效的I/O(輸入/輸出)。多媒體作業系統應支持新數據類型、實時調度(scheduling)及快速中斷處理。
從歷史上看,數據處理是從僅包括字符數據的環境發展而來。計算機圖形學及另外的多媒體成分相對地是新出現的。傳統計算機系統的特徵也在於線性或「平面(flat)」處理。計算機順序地執行一系列預定的對字符集起作用的指令。在大多數情況下,使用批量處理。重要地,還應指示出,從歷史背景來看計算機處理器是通用類型的處理器。這就是,計算機被設計成執行能由應用程式來實現的任何特定功能。僅在相當罕見的情況下才開發了「專用處理器」來滿足專門的需要。因此,現有技術的計算機結構被設計成執行由程式設計師提供的一系列任何指令。對於可以推知系統設計師來說該專門應用是未知的,因此,該結構對任何專門應用不能得以優化。於是,雖然通用計算機在應用是靈活的,但其性能則受到限制。
多媒體應用的出現推動了各種不同硬體及軟體領域的發展。例如,多媒體應用所需的大量數據使壓縮/解壓縮技術的進展。我們已經看到用於音頻壓縮的JPEG標準及用於視頻數據壓縮的MPEG(運動圖像專家組)標準的發展。MPEG2是當前在許多計算機上應用的標準。最近,我們看到用於多媒體數據「流處理」的軟體的改進。例如JAVA(一種程式語言)的異步圖像模型允許圖像數據從國際網際網路(internet)中「流」出,這意味著客戶機「applet」可開始處理圖像,因為數據成為可用的。沒有這種能力,用戶就必須等待多媒體數據,以便在它能被顯示或在應用程式中使用前完成下載。然而,JAVA環境不是實時的並僅允許有限的交互性。
處理多媒體數據存在的限制部分是由於數據量及許多必須的操作、如解壓縮及圖形操作要佔用大量的計算而引起的。更快速微處理機的使用已有一些收益。實際上,全球網的顯著激增部分應歸功於微處理器技術的進步。然而,現今的微處理器、如IntelX86,P5,P6等仍是通用型的微處理機。它們對多媒體應用作出的優化,如果有的話,也僅是有限的,不連續的方式。不僅在專用硬體如共用處理器方面而且在開發更高效的硬體方面還需要進一步的改進。
已經開發出一些類型的專用硬體來滿足這種需要。例如,已知用數位訊號處理(DSP)集成電路來實時地處理音頻數據。DSP裝置有時以加裝「音效卡」的方式來實現,以使目標的PC(個人計算機)升級。已知用視頻隨機存取存儲器(VRAM)器件來改善屏顯更新速率。VRAM通常是以「視卡」的方式實現的,這是一種使用在個人計算機中的電路板,用來通過根據改進的顯示帶寬來改善屏顯更新速率。但是,由於這些專用處理器及存儲器是與傳統通用型處理器結構相關地使用的,因此它們的作用是有限的。用俗話講,這些類型的共用處理器被「栓」在現有的結構上。這些系統仍然是實質上在單個通用中心處理器的控制下處理作為平面數據流的數據。因而,依然需要能更有效利用各種硬體及軟體技術優點來實時地處理多媒體應用的新結構。
以上的背景討論說明正在成長的多媒體應用和內容及要求交互實時處理是如何驅動了對更大的計算能力及更高的數據通信帶寬的需求,以便傳送及處理多媒體數據。因為大型及帶寬受限制的基礎結構已經確立,通信信道帶寬的增大,例如ISDN(綜合服務數字網絡)及T-1線的擴展使用是有益的,但其價格昂貴並僅在有限的地方有用。甚至在獲得了相當長的通信帶寬的地方,客戶機處理能力依然有限。
硬體能力、壓縮算法等的技術進步各自有其用途,但這些零星進步僅提供有限的改進,因為它們並不協調一致。上述的一個例子是各種「加速器」如視卡簡單地拴在依賴單一的通用中心處理器舊結構上。並行計算的傳統概念難以應用,因為它們的實現不是可移植的。
本發明產生於對整個硬體及軟體環境的再估價並致力於提供多媒體數據處理的實質性進步。根據本發明的一個方面,一種改進的多媒體軟體及硬體結構充分利用了面向對象範例的優點,並將該範例從數據通信到多媒體內容性能過程中全程實時地執行。在該新MM(多媒體)結構中,軟體實體被下送到作為輕級別處理(LWP)或在多處理器中並行執行的線程(threads)的執行級。在現有技術中,面向對象技術用於編程及編寫多媒體應用程式。為了減小數據通信帶寬要求及提供在各種硬體平臺間的可移植性,這些面向對象的應用程式被編譯成低級偽語言(如Java字節碼),及在運行時這些字節碼基本上通過將偽語言操作翻譯成基於目標處理器的等效操作(OP碼)而被翻譯。
在本發明的新結構中,原始「實體(object)」及在源程序中定義的「線程」由輸入字節碼流在新型虛擬機中被復原。該新的虛擬機包括例示實體的類別庫及在源程序中使用的方法,並恢復原始應用程式的「線程」。在硬體方面,設置了在微內核作業系統控制下的多個處理器。設計並優化了一個或多個硬體處理器來執行特定的MM功能或方法,如音頻解壓縮或中視實體旋轉計算。虛擬機使由字節碼流復原的實體及線程與當前可獲得的硬體資源表相關聯-諮詢類別庫。在可能的範圍上,在對於這些任務最適合的處理器上安排這些並行執行的實體方法及程序線程。該結構提供了並行處理機的性能,並維持了偽碼程序在各個平臺間的可移植性。此外,虛擬機能再次自動地利用對其可用的硬體資源包括還未得到的核心,而不用在應用程式的可移植性方面作出妥協。
需要由硬體直接支持的這些功能的實體或線程被發送給相應的處理器,以便執行。其它處理器或「核心」可設來直接執行虛擬語言(例如Java字節碼)。「平面」線程或碼段可發送給「本機(native)」處理器(例如SUNPico-Java引擎)以便不翻譯OP碼地執行。因此,取代現有技術中的簡單解釋在目標處理器上執行的一系列偽語言指令流,該新結構使並行處理原理與面向對象的範例相結合,以加速執行。換言之,環境的優點仍舊保留並實際上得到了擴展,一直到硬體。
按該面向對象範例,線程及實體通過「調用(calls)」資源-這裡是選擇的硬體處理器而被執行。因此,本發明的一個方面是使各軟體進程更好地「對準(align)」執行硬體。該系統是面向對象的,這種性質貫穿了包括虛擬機,微內核(kernel),以及在硬體包括用於執行涉及特定實體類別方法的任務的分離單元(現今技術中的處理器或核心)的意義上甚至還包括硬體。該新的虛擬機可被編程用於任何目標硬體平臺,從而保持面向對象環境的可移植性優點。並且,它使自身適應於當前可用的平臺硬體資源,這樣就能在價格性能比上具有靈活性。
在一個優選實施例中,本發明包括一個存儲在存儲器中的虛擬機程序。該虛擬機具有對實體類別定義的存儲庫的入口,及具有對偽語言指令如字節碼的輸入流進行接收及緩存的硬體的入口。該VM(虛擬機)包括一個類別加載器,它檢驗並保證在字節碼中引用的所有類別出現在這些存儲庫中,並從可能是發送字節碼流的源的網絡資源中下載任何被遺漏的類別庫。
從以下參照附圖對本發明的優選實施例作出的詳細說明中將會更容易地弄清本發明的上述及其它目的、特徵和優點。


圖1是說明現有技術的用於多媒體應用的面向對象虛擬機環境的簡化數據流程圖;圖2表示根據本發明的處理多媒體應用的新面向對象的處理器結構;圖3表示圖2結構中的更多細節;圖4是更詳細地表示圖2及3的虛擬機的混合數據流動及硬體框圖;圖5是表示在圖2及3的新結構中程序線程的處理的功能框圖。
圖1是用面向對象的程式語言實現的虛擬機的數據流程圖。Sun微系統的Java環境即為一例。該Java環境包括幾個不同部分。首先,具有Java程式語言,它屬於C語言系列。它具有類似於C++的實體語義,只是加上了附加的實體特徵及無用單元收集。Java由於其動態連結、運行時間碼加載及安全碼執行的支持而變得著名。在圖1中框10代表寫在Java語言原始碼中的程序。
Java語言程序可彙編成用於在各種機器結構上執行。但是Java環境的第二核心件是虛擬機(「VM」)。如圖1中虛線30下方(虛擬機API)所示。Java虛擬機實現一種抽象處理器結構。虛擬機可在各種作業系統和硬體上以軟體來實現。Java原始碼程序10根據Java虛擬指令集被彙編成偽碼,一系列的「字節碼」。因此虛擬機必須對每個目標平臺來移植。在虛擬機40中,運行時解釋機執行非常象仿真的任務它將Java指令集字節代碼翻譯成可在目標平臺硬體上執行的OP碼。
作為該過程的一部分,解釋機還通過對Java環境的另外成分的調用來引進代碼,即訪問基礎類別庫-Java類別定義。該步驟對於其中程序實體僅是預定義類別的例子的面向對象範例來說是基本的。其它由解釋機可用的庫提供了不是必需在Java中實現的各種功能。例如,VM將通常包括C碼TCP/IP(傳輸控制協議/網間協議)功能的庫。在任何情況下,可使用對目標平臺作業系統44的調用來執行生成的「解釋」碼,而該系統44又與處理器硬體46相接口。因此,這種現有技術的環境將原始面向對象程序轉換成用於在目標平臺中執行的串行平面碼。它提供了可移植性,因為同一原始碼程序10能在對其實現了虛擬機40的任何平臺上執行。關於實現Java虛擬機的更多細節例如可從Brian Case著的「實現Java虛擬機-Java複雜指令集可由軟體或硬體來建立」,《微處理器通訊》,1996年3月25日,第12頁。而可移植性是由Java獲得的,客戶機上程序的執行回過來依賴於通用處理器的傳統平面碼串行執行。
圖2是表示根據本發明的新多媒體結構的概念圖。在圖2中。數據(這裡意即程序碼及數據)如下所述從圖的左面流到右面。以面向對象偽碼形式的輸入數據例如Java字節碼被接收以便執行。該字節碼流可在本地(在同一機中)起源或經過一局域或寬域網從伺服器傳送到客戶機。該輸入流還能只經過全球性網如Internet(國際網際網路)100傳送。這種字節碼流遵守一預定虛擬機API(應用程式接口)。虛擬機102包括運行時解釋機,無用單元收集機構及以下將描述的其它特徵。這些輸入流不限於Java字節碼,儘管面向對象的偽碼是需要的。本發明的系統對於與發展中的新多媒體程式語言、如MPEG(運動圖像專家組)-4「語法描述語言」有關的方面是尤其有用的。
「MPEG-4」是一種正出現的編碼標準,它將支持數字音頻-視頻數據的通信,訪問及操作的新方式(尤其以內容為基礎)。該標準的傳播開來還為期遙遠-預計要用幾年的時間來完全確定。但是,提供音頻-視頻實體的編碼本身其概念是清楚的。在傳統的「平面」表示(represontations)中,視頻及音頻幀不區分實體。幀的所有部分具有相等的優先級,因此當編碼時,例如詳細的背景數據能從更重要的前景物體中「竊取」位。採用MPEG-4的人相信需要某種形式的基於實體的編碼來達到新的性能等級及交互性。
計劃的MPEG-4的功能性應易於支持交互性,高壓縮率和/或通用可訪問性。關鍵是內容為基礎的交互性概念,即與音頻-視頻場景中有意義的實體相互作用的能力。為了說明起見,假設一個電影場景具有一個在移動的汽車。大量數據(所有幀)必須連續地以實時速率被壓縮、傳送、解壓縮、顯示、更新等,以便播放該電影,甚至無交互性。數據的所有幀均被處理。MPEG 4將識別該數據中的大部分是靜態的,這些數據可能不相關。實體-例如汽車輪-是變化(旋轉)的。因此,MPEG-4編碼將每個汽車輪看待為一個實體(一個軟體實體對應於一個實際物體)。MPEG-4語法描述語言(MSDL)將提供模板來支持與自然實體及人工實體兩者的交互作用。取代處理顯示汽車的大量象素數據,在MSDL中描述的車輪實體將簡稱為「自旋」方法。見移動圖像及相關音頻信息的ISO/IEC JTC1/SC29/WG11/NO998編碼(MPEG-4建議程序包,1995年7月)。這裡所述的系統將易於適用MSDL中編碼的多媒體應用的處理。
再參見圖2,虛擬機102至少還包括源碼語言的一個基礎類別庫(軟體實體定義組),及最好還包括一個擴展類別庫。例如Java基礎類別包括約15個不同的程序包,所有均包括在Java開發程序包(JDK)中。例如JDK程序包包括java.applet,java awt,java,io,java.net及java.image。為說明起見,一個applet接口用於重放音頻剪輯(「接口」是專門類型的Java類別)。程序包java.awt包括用於構成用戶接口及屏上圖形所必須的類別和接口。例子是按鈕,標記,屏面,彩色等。圖像程序包類別處理象素圖像的操作。
擴展類(extension class)是更專門的類別,是用於實現諸如通過internet的商業交易,加密術,銀行業務,數據為API及各種圖形操作這類事情的當今許多正在構建中的專門類。如以下將說明的,本發明的MM結構可獲得擴展類別的全部優點,正如它們所表現的那樣,重要的是,它能用專門的硬體處理器來執行擴展類實體調用。這種處理器可以包括例如專用的特殊目的的處理器,RISC(精簡指令系統計算機)核心,本機引擎或另外類型還未眾知的處理器。新擴展類的出現可推動硬體設計師提供用於執行這些類方法的專門處理器。
在操作中,虛擬機102重建在源碼中通過將所有輸入字節碼映射成(a)場;(b)實體;(c)線程所指示的軟體實體。場是在編譯時間未完全揭示的變量。在它們能被訪問前VM將其分解。過程(course)的實體是在類別庫中確定的類別例。
線程也稱為輕量級進程(LWP),是可單獨執行它們指令的單獨控制流,允許同時地多線程過程以執行大量任務。多線程可作為單個進程運行(在某些使用中詞「線程」與「輕量級進程」可互換。但是在某些實施方式中,沒有必要在每個線程及單個LWP之間形成一一對應)。但是,本發明尋求執行時的最大並行性,並因此試圖調度每個線程用於單獨執行,如下面將更全面描述的。Java語言實現線程類別。作為虛擬機一部分的基礎類及擴展類使該重建得以成功,因為它們包含與被編譯者用來產生偽碼或字節碼的庫相同的信息。VM包括將下載任何在庫中不出現的偽碼中使用的類的類別裝入器成分。
「線程」或多線程編程的概念在現有技術中公知為寫程序的方法論,以便改善應用程式處理能力,應用程式響應度及程序結構,以及有效地開發可獲得的並行處理機。線程的研究及實驗使用已在大學及研究機構中廣為傳播了一段時間。但是,僅是在過去幾年中它才進入工業用來在商用作業系統中實現。現今,具有三組主要的多線程庫UNIX,OS/2及Windows NT。多線程處理通過多處理器(SMP)機的優點顯然可獲得性能的很大改善。在單處器機中,該優點是不很明顯的,但對於多任務必須(基本上)同時進行的一些應用此優點很突出。
在典型的多任務作業系統,如VMS或UNIX中,在用戶空間及內核空間之間具有確定的分界線。該劃分是由硬體執行的。用戶程序在用戶空間中執行。用戶空間包括用戶碼,全局數據,程序計數器及堆棧指針。程序或進程能直接訪問及改變的數據限制在用戶空間中的數據上。當用戶程序需要來自內核的某些東西時(例如,讀文件或找出當前時間),用戶程序必須作系統調用。這是建立某些變元的庫功能,而非執行專門的陷阱(trap)指令。該指令引起硬體陷入內核,然後它執行機器控制。內核確定什麼行動是必須的,及是否允許做它。最後,內核執行所需的任務,將任何信息返回到用戶進程。
因為作業系統已經完成了對I/O,存儲器,處理器等的控制,它需要保持每個正在運行的進程的數據。該數據告訴作業系統,該進程是在什麼狀態-打開了什麼文件,那個用戶正在運行它等。因此多任務領域中進程的概念延伸到內核,在那裡該信息被保持在進程結構中。多個進程可同時在多任務系統中運行。每個具有其自己的存儲空間,及其自己的堆棧,程序計數器等。沒有兩個進程可以看到或改變彼此的存儲器,除非它們已建立了專門的共享存儲區域。因此每個程序具有一個堆棧,一個程序計數器,及每個進程一組CPU寄存器。因而,這些程序或處理中的每個每次僅能作一件事,它們是單線程處理。
正如多任務作業系統通過多於單個進程的運行可同時作多於一件的事,一個進程通過多於單線程的運行可作相同的事。每個線程是能單獨執行其指令的不同控制流,就允許多線程進程能同時執行多個任務。例如,一個線程可運行GUI(圖形用戶接口),而第二線程執行I/O,及第三線程執行計算。一個線程類似於一個進程,它包括數據、碼、內核狀態、及一組CPU寄存器。但是一個處理是內核級實體,並包含諸如虛擬存儲圖,文件說明符,用戶ID等東西,及每個進程具有自己的這些東西的集合。於是,對於程序在進程結構中訪問數據或查詢其狀態或改變其狀態的唯一方式是經由系統調用。
在現有技術中,線程首先是用戶級實體。線程結構是在用戶空間中並能直接用線程庫調用來訪問,這些正是使用級功能。寄存器(堆棧指針,程序計數器等)都是線程的一部分,及每個線程具有自己的堆棧,但是正在執行的碼不是線程的一部分。實際碼(函數、例程、信號處理器等)是全局性的並能在任何線程上執行。重要的是,一個進程中所有的線程共享該進程的狀態。它們駐留在正好同一存儲空間中,見到相同函數及見到相同數據。當一個線程改變了一個進程變量,當其它線程下次訪問它時將看到該變化。當一個線程打開一文件讀它時,所有另外線程能從它讀到。由於這種安排意味著一定的同步及調度要求,它具有執行多任務而無實際進程轉換的內核的優點。
再參照圖2,再建實體及線程符合作業系統ADI104。作業系統106包括實時微內核作業系統,它將實體、線程及Java字節碼發送到多個核心或並行處理器112,如後面將要解釋的。本發明的一個重要方面是更好地使程序線與硬體源「在空中對齊」。因為線程提供同時執行,及它們具有對相同用戶存儲空間的入口,程式設計師必須使它們操作的協調或「同步」。在另一線程修改同一數據的同時,一個線程不能讀數據。因此,一個線程必須能獲得對一實體的排它的訪問,至少是暫時的。對於線程同步已知有多種技術。在最簡單的情況下,共用排它鎖(Mutual Exclusion Lock)或mutex僅允許一個線程在一個時刻執行一給定碼段,例如修改全局數據的碼。已知條件變量用來禁止線程的執行直到給定條件檢驗為真為止。
在Java中,例如,線程作為語言的整體部分被支持。它提供了在類協議中要定義的同步方法。當具有同步方法的類被「實質化」時,則給予新實體一個「監視器」,為了調用一實體中的同步信息,線程將獲取該實體的監視器。如果它能獲取該監視器,線程就進入到該同步方法,並當它具有該監控器期間,沒有別的線程能調用該實體中的同步方法。如果一個線程調用了一實體中的同步方法及該實體的監控器被另一線程所有,則該調用線程被阻塞直到另外線程放棄該監控器。當原始線程退出其獲得監控器的同步方法時,監控器的所有權轉移給被阻塞的線程,該線程現在就可以進入曾對其阻塞的方法。VM102識別應用程式層線程,並分離它們以便單獨、並行地執行,正如以下將要描述的。
然後VM產生在主平臺上執行的碼。重要的是,首先它檢查在該平臺上可得到的硬體資源的表,將識別的線程及實體與硬體表相比較。換言之,VM知道機中的硬體資源(儘管應用程式編程員可能過去不知道)。根據可用的硬體資源,可對於每個執行線程或LWP在存儲器的堆棧中安排合適的地址及變量。對於每個線程安排可執行碼及在存儲器中存儲該碼。可執行碼的產生包括對於那些將傳送至本機處理器引擎的線程的OP碼翻譯。然後VM調用微內核作業系統104,以便調度線程的執行。
用於由VM執行的線程的識別符不限於那些被應用程式員清楚描述的線程。例如,VM可在硬體資源表中發現具體的處理器-例如用於將「低音增強」加到音頻文件中的處理器。如果VM發現調用「低音增強」實體,它將該調用安排為用於在「低音增強」硬體上執行的線程,因為硬體功能與軟體方法相匹配。通常,以新VM中的「線程」可以是被應用程式員清楚地描述的一個線程,或它能為被VM指定作為執行的線程的任何實體或碼的片斷。因此,如果它具有適於處理兩個較小線程的硬體資源,則VM或內核能將一個線程「分裂」為兩個線程,由此增加並行性。圖5表示一個重建的線程T2,它被分裂(見路徑324,326),用於在兩個不同的處理器上執行。
可以採用來自該類型的商業上可獲得的作業系統的微內核作業系統104,它也被稱為RTOS-實時微內核作業系統。美國加州的Mountain View的ISI「集成系統解決」公司具有稱為pSOS的這種產品。依阿華州的DesMoines的「微件」公司具有稱為OS-9的這種產品。加州Oakland的「風河」公司提供了V×Works OS的產品。微內核與硬體資源106相接口;它將實體及線程分類並將它們導向相應的硬體處理器108。微內核處理硬體資源的調度直到需要的程度。例如,在需要20個不同的任務但少於20個處理器的情況,或處理器的組合與待執行的線程和實體的類型不對應時,微內核將使用現有技術已知的技術來調度任務。微內核也參與處理網絡文件系統(NFS),網絡操作,外圍設備驅動器,虛擬存儲器管理,用戶接口,及通常由作業系統負責的另外任務。
兩個另外的存儲管理器任務被分配給微內核。第一個是「無用單元收集」,即釋放分配給實體或線程的存儲器,對它們在碼中不再有參考。無用單元收集的詳情例如已由Java環境公知。無用單元收集任務的本身是一種進程,它可以分配給適合的處理器。最好,作業系統用Java語言來寫,無用單元收集任務可在Java本機處理器上用本機代碼運行。另外的專門存儲器管理是管理各本機處理器如Pico-Java處理器間分布的存儲器。
圖3也表示根據本發明的多媒體結構的一個實施例,這裡表示出硬體資源108的附加細節。每個硬體資源,通常為處理器核心,它與微內核104通信,如由線124所示。下述類型的處理器表示出本發明本優選實施例。但是,硬體資源的許多不同組合可在此結構中用來優化具體多媒體應用程式的性能。本發明的一個優點是能隨意地加上或除去各種處理器,而不改變虛擬機。這對於改善性能提供了大的靈活性及可移植性。在圖3中,以說明的方式,硬體資源108包括視頻背景處理器120;DSP音頻處理器122;視頻解壓縮處理器124;兩維物體轉動處理器126;立體聲音頻同步處理器128;三維描繪處理器130;用戶圖形接口工具處理器132;附加視頻背景處理器134,及一個或多個本機字節碼處理器136。
某些或所有這些處理器例如可為商業上可購得的處理器核心,例如從美國劍橋的RISC機器有限公司可購得的ARM-8RISC處理器。這類處理器能以小、低功率構型在100MIPS量級上提供高性能。另外,一個或多個處理器可為本機字節碼核心。還具有設計用於直接執行虛擬機偽語言指令的處理器。不適於這些可獲得的專用處理器中一個的碼片段或線將被虛擬機發送到本機字節碼核心以便執行,如下面所述。在另一個實施例中,上述某些或全部處理器可為本機字節碼核心。在此情況下,虛擬機中的碼產生將不需要OP碼的翻譯。硬體資源的具體選擇及組合將涉及另外工程設計選擇中的價格/性能比的折衷。最好,某些或所有的處理器是用單片集成電路模件來實現的,以便減小尺寸、價格及功耗。圖3還以兩個例子的形式描繪了在虛擬機102中軟體實體如何重建的及如何通過到達相應的硬體處理器。所示的例子是由虛線152所示的視頻背景實體及由虛線150所示的三維視頻實體。
圖4更詳細地表示虛擬機程序102。最好以軟體來實現的虛擬機與接收如前所述的字節碼輸入流100的硬體緩存器、流水線或類似元件200相通信。虛擬機的第一操作由重建框200表示。重建步驟200包括一個類加載器,它確定輸入字節碼中哪些類將被參考並檢查類庫204中的那些類。存儲在虛擬機中的類庫包括應用程式語言庫。例如,在Java語言的情況下,基礎庫包括AWT類(摘要窗工具包)、網絡類、實用、圖形、聲音、視頻類等。擴展類的例子在上面已描述了。最好,將應用擴展類存儲在虛擬機中,以便使數字類的增量連結減至最小。重建步驟202包括識別任何遺漏類,即在字節碼中參考的但在存儲庫不能得到的類,並由箭頭206所示地從輸入流100的源中下載遺漏類。利用語法分析這些字節碼及參照類庫,重建步驟202包括重建原始軟體實體、線程及在源程序中使用的碼片段(圖1中10)。這些實體、線程及字節碼片段的表提供給相關進程210,如箭頭208所示。相關處理步驟210檢驗、硬體資源表212。
硬體資源表通過與微內核104的通信來形成,後者又與硬體資源108接口。然後進程210將需被執行的實體、線程及字節碼與當前可用的硬體資源相關聯。它將物體及線程聯編(bind)到最適合的、可用的硬體資源上。其例子已在前面參照圖3描述了。接著,在步驟216中,虛擬機根據需要使用類庫求解變量(場)及另外的參照量。它安排所有對執行現有任務所必須的參數及變量。基本上具有四種類型的任務或進程要被執行線程,實體,applet及平面碼段。一種共產生進程220類似於傳統的碼產生。它包括將OP碼從虛擬機偽語言轉換到可執行的機器碼。如果它被設計用於在不是使用相同指令集的不同硬體處理器上執行時,從一個進程到另一進程這可能會不同。某些進程,尤其是平面碼段,可以直接地在本機偽碼處理器上執行而無OP碼翻譯。例如,以Java字節碼偽語言的碼段可直接地在從加裡福尼亞的Sun微系統公司購得的Pico Java本機碼處理器上執行。共產生進程220以適當順序在堆棧上安排操作數、變量、指針等,以便用於待執行的每個進程,然後將進程「傳送」給微內核104。在該進程中,共產生步驟220將保證每個可執行進程被送向如在上述相關步驟210中確定的適當處理器。在圖4的底部,例如由線230指示的可執行進程在相應的處理器120,122,136上執行。各種類型的處理器已在上面對圖3的說明中概括了。
執行線程不一定11地聯編於硬體資源。在某些應用中,通過設置基於可用的資源「在空中」重建線程的「智能」內核甚至將能獲得性能的更大改善。最好,設置相當多的處理器,如20,30或甚至100個。許多線程可並行執行。此外,整個進程是連續的及動態的。因此當線程完全執行時硬體分配持續地改變並且新的硬體被分配。在單個矽「晶片」上實施整個系統將以低成本提供高性能。
通過在系統中採用「智能控制器」可實現性能的進一步改善。智能控制器可設置在微內核及硬體資源之間並有效控制對總線的訪問。它將地址傳送給處理器並有效降低總線業務量,由此減少爭用及延遲。
圖5還表示出本發明的寬廣概念。在圖5中,源程序300包括多個程序線程,由T1、T2及T3表示。源程序300被編譯在適當的編譯程序302中,以便形成一系列的偽語言字節碼304。編譯程序302包括用於300中的具體面向對象程式語言的類庫。字節碼304可通過任何的各種裝置、如包括在機器可讀分配介質,例如網絡、internet等上的磁碟或光碟被存儲、傳送或分配。
在圖5中的下部,在客戶機上接收的字節碼如上所述地在虛擬機306上被處理。虛擬機重建程序線程及實體310,然後被發送到總的由320表示的相應專用處理器。因此,可以看到,原始程序300的面向對象特徵被重建出來並通過硬體處理器320攜帶,提供了並行執行的好處,而且保留了可移植性、緊湊、及面向對象範例的其它優點。通過設置如在這裡描述過的合適硬體處理器,本發明的結構能提供比現有技術方案有效得多的多媒體數據實時處理。
對本發明的原理已在其優選實施例中描述及圖解,應該明白,在不偏離該原理的情況下,在布置及細節上可以修改。對於在所附權利要求精神及範圍內的所有修改及變化都涵蓋在其保護範圍內。
權利要求
1.一種對由面向對象源程序編譯的偽語言字節碼的輸入流進行實時處理的系統,該系統包括存儲器;用於接收字節碼輸入流的輸入裝置;並行布置的多個硬體處理器;及存儲在所述存儲器中並與所述輸入裝置連接的虛擬機計算程序,其包括用於由字節碼流重建軟體線程的裝置;用於將重建的軟體線程翻譯成相應可執行進程的裝置;用於選擇一個合適的硬體處理以執行相應可執行進程的裝置;及用於將相應可執行進程發送到所選硬體處理器以便執行的裝置。
2.根據權利要求1的系統,其中所述虛擬機程序包括用於維持當前在該系統中可用的硬體處理器表的裝置;及用於選擇一個合適的硬體處理器以執行所述可執行進程的裝置包括檢驗該表的裝置,由此使系統自動適配,以便利用當前可用的硬體處理器。
3.根據權利要求1的系統,其中所述虛擬機程序包括存儲在所述存儲器中的預定類協議庫,及所述用於選擇硬體處理器的裝置包括使當前在該系統中可用的硬體處理器的表與實體級協議庫相關聯。
4.根據權利要求3的系統,其中所述虛擬機程序包括動態類加載器裝置,用於確定在輸入字節碼流中參照的實體是否是在所述類庫中定義的類協議例子,及用於下載任何遺漏的類協議或庫。
5.根據權利要求1的系統,其中所述虛擬機程序包括用於由字節碼重建多個各異的進程線程的裝置;用於選擇相應硬體處理器以便執行每個進程線程的裝置;及用於將每個進程線程發送到相應選擇的硬體處理器以便作為輕量級處理並行執行的裝置。
6.根據權利要求5的系統,其中所述處理器至少包括一個專用於執行選擇的多媒體方法的多媒體處理器,且所述虛擬機程序包括用於將多媒體進程線程發送給所述多媒體處理器的裝置。
7.根據權利要求5的系統,其中所述處理器至少包括一個專用於執行音頻數據的音頻處理器及所述虛擬機程序包括用於將音頻進程線程發送給該音頻處理器的裝置。
8.根據權利要求5的系統,其中所述處理器至少包括一個專用於圖形數據解壓縮用的圖形解壓縮處理器,及所述虛擬機程序包括用於將圖形進程線程發送給該圖形解壓縮處理器的裝置。
9.根據權利要求5的系統,其中所述處理器至少包括一個專用於描繪圖形數據的圖形描繪處理器,及所述虛擬機程序包括用於將圖形進程線程發送給該圖形描繪處理器的裝置。
10.根據權利要求5的系統,其中所述處理器至少包括一個專用於執行本機字節碼的本機字節碼處理器,及所述虛擬機程序包括用於將平面進程線程發送給本機字節處理器以便不用翻譯OP碼就執行的裝置。
11.根據權利要求5的系統,還包括一個微內核作業系統,用於作所述硬體處理器及虛擬機程序之間的接口。
12.根據權利要求11的系統,其中所述虛擬機程序用面向對象程式語言書寫。
13.根據權利要求12的系統,其中所述面向對象程式語言包括Java程式語言類,及虛擬機程序包括存儲在所述存儲器中的Java類協議庫,以及所述用於選擇硬體處理器的裝置包括用於使在該系統中當前可用的硬體處理器表與Java類庫相互關聯的裝置。
14.一種用於將由一面向對象的多媒體源程序編譯的輸入字節碼流轉換為多個進程線程以便實時並行執行的、用字節碼解釋的與硬體無關的計算機實現的虛擬機的方法,該方法包括下列步驟保持可用硬體資源表;由輸入字節碼流重建多個程序實體及線程;使所述重建的程序實體和線程與可用的硬體資源表相互關聯;及將每個所述重建的程序實體和線程發送到選擇的一個相應的硬體資源,以便基本上並行地執行,由此提供改善的執行性能並且保持字節碼的可移植性。
15.根據權利要求14的方法,還包括在多媒體應用程式中定義的支持預定同步方法。
16.根據權利要求14的方法,其中所述可用的硬體資源表包括用於每個硬體資源的所述硬體資源表專門對其適用的特定多媒體功能的指示,如果有的話;及所述相關步驟包括將所述程序實體及線程與所述表相比較,以便識別專門適用於執行任何所述程序實體及線程的那些硬體資源,如果有的話;及所述發送步驟包括將所述程序實體及線程聯編於相應的被識別硬體資源上,以便執行。
17.根據權利要求14的方法,還包括識別在所述源程序中同步的所說明的進程;在監視器控制下執行所述同步的進程,以保證各變量保持在一致狀態;及調度所有其它用於並行執行的進程直到所述可用的硬體資源允許的程度。
18.根據權利要求14的方法,其中所述硬體資源包括多個處理器,每個處理器對於其原始功能被優化;並且該方法還包括提供與多個所述處理器中每個連接的相協調的、全局的高速緩存器,以改善性能。
19.一種用於實時處理面向對象的多媒體數據輸入流的系統,包括用於接收輸入數據流的輸入裝置;多個並行布置的硬體處理器;與所述輸入裝置相連接的虛擬機計算程序,其包括用於由輸入數據重建軟體線程的裝置;用於將所述重建軟體線程翻譯成相應可執行進程的裝置;用於選擇適當的一個硬體處理器來執行所述相應的可執行進程的裝置;及用於將該相應的可執行進程發送到所選擇的硬體處理器以便執行的裝置;及用於管理所述多個硬體處理器的微內核作業系統;該微內核作業系統包括用於檢測所述硬體處理器的裝置,以便將可用的處理器表提供給所述虛擬機程序,用來與所述選擇適當的一個硬體處理器關連使用,以便執行相應的可執行進程。
20.根據權利要求19的系統,其中所述硬體處理器包括至少一個對於執行預定介質實體方法優化的專用處理器,及至少一個用於以本機偽碼語言執行平面碼段的RISC處理器。
全文摘要
一種面向對象的多媒體結構對由面向對象源程序彙編的偽語言字節碼的輸入流提供實時處理。該結構包括多個並行處理布置的處理器。至少一些處理器專門適用於或優化用於執行多媒體方法,如視頻解壓縮,反向離散餘弦變換,運動估算等。該結構還包括虛擬機計算程序,該程序由字節碼流重建實體及線程,並將它們每個發送到合適的硬體資源,以便並行處理。該結構通過客戶機的作業系統及執行硬體擴展面向對象範例,以便提供專用/並行處理機的優點,而仍保留偽語言環境的可移植性。
文檔編號G06F9/44GK1190211SQ9711749
公開日1998年8月12日 申請日期1997年6月10日 優先權日1997年6月10日
發明者卡洛斯·丹吉洛 申請人:Lsi羅吉克公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀