專利名稱:用于脫機顯示和輔助信息導(dǎo)航的數(shù)據(jù)緩存的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總地涉及計算機系統(tǒng),特別是用于為計算設(shè)備顯示信息的改進系統(tǒng)。
背景技術(shù):
便攜式計算機和其他移動設(shè)備允許用戶在不同地點工作,為用戶提供了很大的方便。然而,移動設(shè)備在不同地點間的旅行過程中常會斷電,特別是在搬運過程中蓋子通常為閉合狀的便攜式計算機。因此,訪問設(shè)備上的相關(guān)數(shù)據(jù)需要打開便攜式計算機的蓋子,等待加電,以及定位到想要的數(shù)據(jù)。這是一種費時并且不令人滿意的用戶體驗,特別是當所需要的數(shù)據(jù)如同會議房間號一般簡單時。
美國系列專利申請No.10/429,930和No.10/429,932針對通常具有輔助處理和輔助裝置的計算機系統(tǒng),特別是與顯示有關(guān)的裝置,這種計算機系統(tǒng)提供了一些計算功能性。例如,便攜式計算機蓋子上或側(cè)面的小液晶顯示器可以將有用的信息提供給它的所有者,諸如會議地點和時間。
然而,這種輔助顯示器在此之前被限定為狹窄的、受限的操作,其中定制了與可以顯示的信息相關(guān)的輔助顯示程序。例如,當想要得到會議信息時,如果輔助顯示程序被設(shè)計為顯示這種指定類型數(shù)據(jù),并根據(jù)當前會議的相關(guān)數(shù)據(jù)來設(shè)計時,用戶將只看見該信息。
因此,需要一種用于應(yīng)用程序的方法來提供用于在計算機系統(tǒng)的輔助顯示器上進行顯示和導(dǎo)航的適當數(shù)據(jù),其中該應(yīng)用程序運行在該計算機主操作系統(tǒng)下,包括在不能簡單地進入主顯示器時,例如計算機系統(tǒng)斷電時。
發(fā)明概述簡單地說,本發(fā)明提供了一種與用戶應(yīng)用程序數(shù)據(jù)相關(guān)的緩存,其允許用戶在主計算機系統(tǒng)斷電(脫機)時,通過輔助顯示器和相關(guān)聯(lián)的用于保持激活的執(zhí)行器在信息中定位。這種緩存保持了與結(jié)構(gòu)化導(dǎo)航信息相關(guān)聯(lián)的用戶數(shù)據(jù),由此用戶可以通過該結(jié)構(gòu)在數(shù)據(jù)中導(dǎo)航。該結(jié)構(gòu)化的緩存提供了一種靈活機制,并不將用戶限制到可以存儲的數(shù)據(jù)類型上。
為了實現(xiàn)脫機操作,當聯(lián)機主CPU時,操作系統(tǒng)和應(yīng)用程序準備數(shù)據(jù)的緩存和其他信息,所述其他信息隨后將傳送給脫機使用的固件中的輔助存儲器。該傳送可以是在轉(zhuǎn)換到斷電狀態(tài)時緩存的完全傳送,或者與預(yù)先存儲的數(shù)據(jù)同步。輔助設(shè)備可以附屬于該計算機系統(tǒng),或者可以將緩存做成可用于其他設(shè)備的遠程訪問,在該情況下緩存是將其他設(shè)備連接到主計算機數(shù)據(jù)的實體,實質(zhì)上是為其他設(shè)備提供輔助顯示。
提供一種分層結(jié)構(gòu),通過該結(jié)構(gòu)來注冊應(yīng)用程序等(例如操作系統(tǒng)組件),以將用于輔助顯示的數(shù)據(jù)提供給輔助設(shè)備服務(wù)層。在其他操作中,服務(wù)層配置成為將數(shù)據(jù)結(jié)構(gòu)化到緩存中。該結(jié)構(gòu)可以對應(yīng)于用戶的導(dǎo)航,從而使從用戶處所接收的導(dǎo)航命令可以帶領(lǐng)用戶遍歷該結(jié)構(gòu)。例如,可以由樹形結(jié)構(gòu)的分支來代表提供數(shù)據(jù)的每個應(yīng)用程序,分支下具有子節(jié)點來進一步提供一些導(dǎo)航路徑和/或一些應(yīng)用程序數(shù)據(jù)的子集。注意除脫機導(dǎo)航之外,緩存可用于聯(lián)機導(dǎo)航,盡管在聯(lián)機時為了有效和處于最新的狀態(tài),緩存中的一些數(shù)據(jù)可以是指向主系統(tǒng)中數(shù)據(jù)的參考點,而不是實際的數(shù)據(jù)。此外如果使用該方式,聯(lián)機緩存無需提供和脫機緩存相同的數(shù)據(jù),例如用戶在聯(lián)機時想要得到不同于脫機時的應(yīng)用程序,并且由于固件中存儲空間的限制,一些應(yīng)用程序的數(shù)據(jù)在脫機時可能必須進行刪除。
在一種實施方式中,將緩存排列為樹形結(jié)構(gòu),從而只需要向上或向下導(dǎo)航命令來導(dǎo)航該樹,以及一種進行選擇操作的選擇機制(例如選擇鍵或組合/動作模式鍵)。主頁保存在固件中,并以最小的方式提供一種獲得應(yīng)用程序或程序的數(shù)據(jù)的方法。例如,如果緩存是樹形結(jié)構(gòu),主頁則是樹中的根節(jié)點,并可以提供應(yīng)用程序的(可卷動)列表,應(yīng)用程序由直接從根/主頁節(jié)點分支的節(jié)點來表示。
當用戶導(dǎo)航該樹時,輔助設(shè)備的輸出可以更改,例如通過發(fā)送新的緩存位圖給顯示器,或者通過翻譯緩存的置標數(shù)據(jù)等來提供新的顯示。用戶因此得到顯示各種用于瀏覽緩存的應(yīng)用程序數(shù)據(jù)的顯示屏的脫機體驗。
除了程序數(shù)據(jù)以外,固件還可以包含基于時間的事件數(shù)據(jù)或其他諸如基于功率狀態(tài)的事件之類的基于事件的數(shù)據(jù)。例如,對于基于時間的事件,固件可以設(shè)置啟動事件的時間觸發(fā)中斷。當接收到這種事件時,固件確定事件的含義,并可以響應(yīng)該事件改變輔助設(shè)備的狀態(tài),例如給出緩存的會議提醒,點亮指示器或執(zhí)行一些其他編程的動作。
通過以下結(jié)合附圖的詳細描述,將體現(xiàn)出其他優(yōu)點。
附圖的簡單描述
圖1是顯示可結(jié)合本發(fā)明使用的通用個人計算機形式的通用計算設(shè)備的方框圖;圖2A-2E舉例說明通常各種設(shè)備上輔助顯示器放置的定位;圖3是一種根據(jù)本發(fā)明一個方面的分層結(jié)構(gòu)的方框圖,通過該結(jié)構(gòu)應(yīng)用程序可以與任意輔助顯示設(shè)備的固件交換數(shù)據(jù);圖4顯示了在根據(jù)本發(fā)明一個方面的實施方式中,與輔助顯示服務(wù)程序接口的已知輔助應(yīng)用程序如何與輔助顯示設(shè)備交換數(shù)據(jù);圖5是顯示根據(jù)本發(fā)明的一個方面,提供脫機導(dǎo)航組件的方框圖;圖6顯示了根據(jù)本發(fā)明的一個方面,用于高速緩存用戶數(shù)據(jù)來提供脫機導(dǎo)航的樹形導(dǎo)航結(jié)構(gòu);以及圖7顯示了根據(jù)本發(fā)明一個方面的結(jié)構(gòu)化緩存樹的節(jié)點。
詳細描述典型操作環(huán)境圖1是表示實施本發(fā)明的個人計算機系統(tǒng)形式的計算設(shè)備120的方框圖。本領(lǐng)域的技術(shù)人員將意識到圖1中所描述的個人計算系統(tǒng)120僅用于解釋說明,本發(fā)明還可用于其他計算機系統(tǒng)結(jié)構(gòu),包括手提設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程消費電子產(chǎn)品、網(wǎng)絡(luò)PC、小型計算機、大型計算機、無頭服務(wù)器等。本發(fā)明也可用在分布式計算環(huán)境中,在該環(huán)境中由通過通信網(wǎng)絡(luò)與其鏈接的遠程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模塊可同時位于本地和遠程存儲設(shè)備中。
個人計算機系統(tǒng)120包括處理單元121、系統(tǒng)存儲器122、以及將包括系統(tǒng)存儲器在內(nèi)的各個系統(tǒng)部件連接到處理單元121的系統(tǒng)總線123。系統(tǒng)總線123可以是幾種類型的總線結(jié)構(gòu)中的任何一種,包括存儲器總線或存儲器控制器、外圍總線、以及使用任意總線結(jié)構(gòu)的局域總線。系統(tǒng)存儲器包括只讀存儲器(ROM)124和隨機存取存儲器(RAM)125。基本輸入/輸出系統(tǒng)126(BIOS)存儲在ROM 124中,基本輸入/輸出系統(tǒng)126包含例如在啟動過程中,用于在個人計算機120內(nèi)部的元件之間傳遞信息的基本程序。個人計算機120還可以包括用于從未示出的硬盤中讀取或?qū)懭胗脖P的硬盤驅(qū)動器127,以及包括用于從可移動磁盤129中讀取或?qū)懭氲拇疟P驅(qū)動器128和用于從諸如CD-ROM或其他光學(xué)介質(zhì)之類的可移動光盤131中讀取或?qū)懭氲墓獗P驅(qū)動器130。硬盤驅(qū)動器127、磁盤驅(qū)動器128和光盤驅(qū)動器130分別通過硬盤驅(qū)動器接口132、磁盤驅(qū)動器接口133和光盤驅(qū)動器接口134連接到系統(tǒng)總線123上。這些驅(qū)動器以及它們連帶的計算機可讀介質(zhì)為個人計算機120提供了計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊以及其他數(shù)據(jù)的永久保存。雖然此處描述的典型計算機系統(tǒng)使用了硬盤、可移動磁盤129以及可移動光盤131,但本領(lǐng)域的技術(shù)人員應(yīng)該理解到該典型計算機系統(tǒng)也可以使用可以存儲計算機可訪問的數(shù)據(jù)的其它類型計算機可讀介質(zhì),例如磁帶盒、閃速存儲卡、數(shù)字視頻磁盤、Bernoulli磁帶盒、隨機存取存儲器(RAM)只讀存儲器(ROM)等。
硬盤、磁盤129、光盤131、ROM 124或RAM 125中可以存儲大量的程序模塊,包括操作系統(tǒng)135(諸如WindowsXP)、一個或多個應(yīng)用程序136(諸如MicrosoftOutlook)、其他程序模塊137和程序數(shù)據(jù)138。用戶可以通過諸如鍵盤140和指示設(shè)備142將命令和信息輸入到個人計算機120中。其他輸入設(shè)備(未示出)可以包括麥克風(fēng)、操縱桿、游戲板、衛(wèi)星反射器、掃描儀等。這些以及其他輸入設(shè)備常通過與系統(tǒng)總線相連接的串行端口接口146連接到處理單元121上,但也可以通過其他接口來連接,例如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器147或其它類型的顯示設(shè)備通過諸如適配器148之類的接口也連接到系統(tǒng)總線123上。除了監(jiān)視器147以外,個人計算機通常包括其他外設(shè)輸出設(shè)備(未示出),諸如揚聲器和打印機。輔助顯示器200是一個附加輸出設(shè)備,并可例如通過輔助顯示接口155連接到系統(tǒng)總線123上。輔助顯示器101也可以通過串行接口或其他接口連接到計算設(shè)備20上,其中其他接口可以是并行端口、游戲端口、紅外線或無線連接、通用串行總線(USB)或其它外圍設(shè)備接連。圖1中的輸入設(shè)備201可以提供一個或多個執(zhí)行器與輔助顯示器200相連并/或控制該輔助顯示器,同時所述輸入設(shè)備例如可以通過輸入設(shè)備接口156連接到系統(tǒng)總線123,輸入設(shè)備接口可以是串行接口,或者通過其他接口,例如并行端口、游戲端口、紅外或無線連接、通用串行總線(USB)或其他外設(shè)設(shè)備連接。
個人計算機120可以通過使用邏輯連接與一個或多個遠程計算機相連,諸如遠程計算機149,從而運行在網(wǎng)絡(luò)環(huán)境中。遠程計算機149可以是另一臺個人計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、同等設(shè)備或其他通用網(wǎng)絡(luò)節(jié)點,雖然圖1中僅描述了存儲器設(shè)備150,但遠程計算機149通常包括與個人計算機120有關(guān)的上述元件中的多個或全部。圖1中描述的邏輯連接包括局域網(wǎng)(LAN)151和廣域網(wǎng)(WAN)152。這種網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)范圍的計算機網(wǎng)絡(luò)、企業(yè)內(nèi)部互聯(lián)網(wǎng)和互聯(lián)網(wǎng)中是很常見的。
當使用在LAN網(wǎng)絡(luò)環(huán)境中的時候,個人計算機120通過網(wǎng)絡(luò)接口或適配器153連接到局域網(wǎng)151中。當使用在WAN網(wǎng)絡(luò)環(huán)境中的時候,個人計算機120通常包括調(diào)制解調(diào)器154或其他用于在諸如互聯(lián)網(wǎng)之類的廣域網(wǎng)152上建立通信的設(shè)備。調(diào)制解調(diào)器154可以是內(nèi)置的或者是外置的,并通過串行端口接口146連接到系統(tǒng)總線123上。在網(wǎng)絡(luò)環(huán)境中,描寫為與個人計算機120或與個人計算機120一部分相關(guān)的程序模塊可以存儲在遠程存儲器設(shè)備中。應(yīng)該意識到所示網(wǎng)絡(luò)連接是示范性的,也可以使用其它在計算機之間建立通信鏈接的設(shè)備。
應(yīng)當注意到,根據(jù)本發(fā)明計算機系統(tǒng)無需為輔助顯示器而全面運轉(zhuǎn)地工作。實際上,如以下參照圖6的描述,當計算機斷電時,輔助顯示器可以至少在一個默認的范圍內(nèi)或用戶指定的范圍內(nèi)繼續(xù)工作,例如當計算機系統(tǒng)處于睡眠狀態(tài)或冬眠狀態(tài)時,以及/或者當用戶還沒有登陸或被安全機構(gòu)鎖定在系統(tǒng)之外時。例如,當計算機系統(tǒng)斷電時,用戶可以將集成在個人計算機中的電話手機和揚聲器手機作為常規(guī)設(shè)備使用,并將輔助顯示器用作呼叫者-ID設(shè)備。這種設(shè)備也可以存儲稍后在計算機系統(tǒng)再次斷電時傳送給計算機系統(tǒng)的數(shù)據(jù),例如存入接收到的呼叫,包括在計算機系統(tǒng)沒有完全加電的時候。
輔助顯示器可以補充主顯示器并可以在主顯示器關(guān)閉或不操作(例如未連接)的時候作為代用顯示器,向用戶提供一些信息。例如,在主顯示器關(guān)閉和/或不易看到主顯示器(例如便攜計算機的蓋子關(guān)閉著)時,用戶在連接到移動計算機的輔助顯示設(shè)備上可以看到,例如如何對主顯示器加電、會議的房間號和/或通向會議的方向等有用的信息。注意即使在具有連續(xù)可視屏幕的平板計算機上,也可以關(guān)閉主顯示器來節(jié)約電力,因此輔助顯示可以提供實質(zhì)上的利益。應(yīng)注意到用戶可以根據(jù)計算機系統(tǒng)的狀態(tài)來限定顯示范圍,例如,當用戶沒有進入系統(tǒng)的時候,僅有某些非機密信息或非常特別的控制信息可以顯示。
為了在這些斷電的模式中能夠?qū)崿F(xiàn)并控制通信,可以在非易失性存儲器中設(shè)有固件,當?shù)诙幚砥鬏d入并運行該固件時,只要存在一些可用的電力,便可以連同其他輔助部件使輔助顯示器可以使用。注意此處所用的術(shù)語“固件”通??烧J為表示輔助存儲器,固件中的代碼在第二處理器中運行。
圖2A-2E分別解釋說明了輔助顯示屏200a-200e安置在計算設(shè)備上的典型位置或與計算設(shè)備的典型結(jié)合。如圖2A和2B所表現(xiàn)的,可以將輔助顯示屏200a置于獨立(陸上通訊線或移動)電話202的前面、后面或其他表面(如果具有諸如藍牙技術(shù)之類的其他連接方式,獨立電話202不需要物理連接),和/或另一個輔助顯示屏200b位于移動計算機204或平板計算設(shè)備(未示出)的邊緣或蓋子上。另一個放置輔助顯示屏200c的位置(附圖2C)可位于安裝在計算機或附屬于計算機的外設(shè)設(shè)備上的電話上,例如監(jiān)視器206上或鍵盤(未示出)上。附圖2D和2E分別解釋說明了連接到計算機上的獨立控制臺208或其他外殼210(例如主板的外殼)的前面板上的輔助顯示屏200d和200e的附加位置。本領(lǐng)域的技術(shù)人員應(yīng)意識到,輔助顯示屏可以位于任何計算設(shè)備或其他具有顯示功能的設(shè)備的任何表面上,例如位于通過無線或其他連接方式連接與計算機的手表上、遠程控制設(shè)備上、遠程壁裝式構(gòu)件上等等。
根據(jù)圖2A-2E顯然可知,輔助顯示器可以是任何數(shù)量的已知類型顯示器,如一個或多個LED、2列字數(shù)顯示器、單色顯示器、或彩色顯示器。本領(lǐng)域的技術(shù)人員應(yīng)意識到,本發(fā)明也可以使用其它計算或通信設(shè)備的顯示器作為輔助顯示器200。這些其他的計算或通信設(shè)備包括通用計算機、蜂窩式便攜無線電話、以及諸如尋呼機或個人數(shù)字助理(PDA)之類的手提設(shè)備。此外,本發(fā)明可以使用在計算設(shè)備120的屏幕顯示區(qū)域中實現(xiàn)的虛擬輔助顯示器(例如屏幕保護器或圖形用戶界面的一部分)作為輔助顯示器200,包括在用戶登陸之前。輔助顯示器200包括上述形式的任何結(jié)合,并可以與諸如一個或多個LED之類的指示器進行物理或邏輯地結(jié)合,和/或與虛擬顯示器一起使用。
即使缺少顯示屏,也可以將一個或多個LED有利地用作輔助顯示器200來指示動作的進行??梢缘统杀?、低功耗地實現(xiàn)這種輔助顯示器,并且可以通過不明顯的方式來提供這種輔助顯示器。這可以有效地使用于非常緊密的系統(tǒng)或由另一個用戶管理的用于用戶通信的系統(tǒng)。另外,輔助顯示器200在需要遠距離觀看指示的時候也是有效的。當存在與動作聯(lián)系在一起的信息內(nèi)容時,輔助顯示器也可以與屏幕上的虛擬輔助顯示器一起使用,例如新郵件消息的通知。在這種情況下,來自郵件的內(nèi)容也可以顯示在虛擬輔助顯示器200上。進一步地,當內(nèi)容的顯示是不符合要求時,輔助顯示器200可以有效用于公共系統(tǒng)(圖書館或公用電話亭)或共享計算機。
可選地,當費用或空間緊缺,但卻需要指示和基本內(nèi)容的時候,2線數(shù)字顯示器可以有利地用作輔助顯示器200。其可以有效用于平板PC、便攜計算機、廉價PC、電話對接站、監(jiān)視器前蓋、以及小或低成本PC設(shè)備或外設(shè),諸如手機、鍵盤、或遠程控制。也可以有效用作呼叫ID盒的替代品(以及對呼叫ID盒的改進)。
此外,單色或彩色多線顯示器可以有利地用作多媒體設(shè)備、高端消費者系統(tǒng)或媒體中心設(shè)備的輔助顯示器200??捎行в糜诰哂懈S富形式的因素或強調(diào)于通信的高端便攜計算機、具有大量交易或強調(diào)通信的全功能PC、媒體中心或高端媒體設(shè)備(包括遠程的,具有便攜媒體功能的控制臺系統(tǒng))以及移動輔助顯示器。此外,可以將另一種計算或通信設(shè)備的顯示器有利地用作輔助顯示器200,用戶在使用他們的PC時,可以在輔助顯示器上擴展這些補充設(shè)備的任務(wù)。這些其他計算或通信設(shè)備包括通用計算機、蜂窩式便攜無線電話、以及諸如尋呼機或個人數(shù)字助理(PDA)之類的手提設(shè)備。此外,應(yīng)注意輔助顯示器不需要是真實的顯示器,而可以是信息的投影(例如,在墻上)。本質(zhì)上,本文所涉及的輔助顯示器可以由任何可以感測到的事物組成,包括任何視覺、聲音、和/或觸覺表現(xiàn)。
如上所述,當內(nèi)容的顯示是不需要的,虛擬輔助顯示器可用作公共系統(tǒng)(圖書館或公用電話亭)或共享計算機的輔助顯示器200??捎眯в糜诘统杀鞠到y(tǒng)或即使是LED也不能實施的很小型設(shè)備。虛擬輔助顯示器可以實施為屏幕保護器或圖形用戶界面的部分。
輸入設(shè)備201,此后涉及稱為執(zhí)行器(即便是諸如按鍵或指示設(shè)備之類的單一裝置),向用戶提供了在不同種類的應(yīng)用數(shù)據(jù)或通知之間進行選擇的裝置,所述通知可以是郵件通知、留言郵件通知、日程表通知、系統(tǒng)狀態(tài)通知、呼叫者ID表以及其它類型的通知消息。伴隨這種選擇按鈕,還可以具有向上按鍵和向下按鍵以允許用戶在制定的范圍內(nèi)向前或向后翻滾通知信息。本領(lǐng)域的技術(shù)人員應(yīng)意識到可以使用任何其他類型的執(zhí)行器,諸如鍵盤、麥克風(fēng)、操縱桿、游戲板或其他設(shè)備,包括生物傳感器、環(huán)境傳感器、位置傳感器、或其它類型的傳感器。圖1所示的計算設(shè)備120的任何輸入設(shè)備可以用作輸入設(shè)備(執(zhí)行器)201,并可以與獨立的執(zhí)行器一起使用。
用于脫機輔助顯示操作的高速緩存如將要理解的,本發(fā)明向用戶提供了一種輔助顯示器200來簡單快速地瀏覽輔助信息。根據(jù)本發(fā)明,用戶可以在某種程度上使用執(zhí)行器201在可顯示在輔助設(shè)備上的應(yīng)用程序數(shù)據(jù)中選擇顯示在輔助顯示器上的信息。雖然程序數(shù)據(jù)和事件通知將用于說明信息的輔助顯示,但應(yīng)該理解本發(fā)明可以提供其他類型信息的輔助顯示,例如來自互聯(lián)網(wǎng)相關(guān)服務(wù)程序的數(shù)據(jù),包括.事項處理服務(wù)程序、拍賣服務(wù)程序、廣告服務(wù)程序、娛樂服務(wù)程序、以及定位服務(wù)程序。這些服務(wù)程序能提供較寬范圍的各種信息,包括金融交易信息、標題新聞、存貨報價、運動計分、天氣和其他信息,包括用戶特別請求的信息以及主動提供的信息。同樣應(yīng)意識到可以使用任意數(shù)量的已知類型的輔助顯示器來運行輔助顯示器201,例如一組指示燈、2列數(shù)字顯示器、單色顯示器或彩色顯示器。應(yīng)注意在本文的使用中,為簡單起見,“輔助顯示設(shè)備”通常指的是輔助顯示屏和/或與該顯示屏相結(jié)合的執(zhí)行器以及該設(shè)備中其他任何硬件、固件或軟件,但應(yīng)理解到顯示屏和執(zhí)行器可以是獨立的設(shè)備,以及/或者執(zhí)行器可以不需要與輸入數(shù)據(jù)物理接觸。此外,應(yīng)注意到可認為輔助顯示設(shè)備可能包含取代象素型顯示屏的指示器(如單獨的LED),或者除象素型顯示屏之外還包含指示器。
根據(jù)本發(fā)明的一個方面,本發(fā)明促進了輔助顯示器在主CPU/操作系統(tǒng)及應(yīng)用程序不運行的時候、也就是當系統(tǒng)脫機時,輔助設(shè)備卻仍保持運行時的使用。應(yīng)注意脫機輔助系統(tǒng)部件是在包括輔助處理器和輔助存儲器的固件中執(zhí)行的,輔助存儲器中包含可執(zhí)行代碼和數(shù)據(jù)。為了實現(xiàn)脫機操作,當聯(lián)機時主CPU/操作系統(tǒng)和應(yīng)用程序準備數(shù)據(jù)緩存和其他信息,該信息隨后傳送給固件中的輔助存儲器、用于脫機使用。
該傳送可以是斷電(例如關(guān)機/睡眠/冬眠時間)時緩存的完全傳送,或者可以后臺處理等部分的執(zhí)行,以便在斷電期間僅要求同步(取代全部數(shù)據(jù)傳送)。此外,諸如臺式機之類的計算機設(shè)備可以不進入斷電狀態(tài),而使得這種緩存是可訪問的。例如,通過后臺處理或人工啟動操作,可建立該緩存。如果該緩存可以遠程訪問,用戶可以遠程訪問緩存的輔助信息,并且可以對遠程設(shè)備進行傳送,而無需斷掉計算機設(shè)備的功率。因此,假設(shè)一個用戶旅行參加會議而沒有攜帶計算機,但卻擁有另一種諸如靈巧電話機之類配置成遠程訪問主計算機的緩存數(shù)據(jù)的設(shè)備。由于該緩存是系統(tǒng)的輔助顯示,這種遠程用戶可以通過該遠程設(shè)備遠程瀏覽和操作該緩存。
如圖3所示,提供了一種分層結(jié)構(gòu)來輸出數(shù)據(jù)到它的顯示器200并/或通過執(zhí)行器201與用戶相互作用,通過該分層結(jié)構(gòu)可以將一個或多個應(yīng)用程序302與任何類型的輔助顯示設(shè)備連接。因此,提供一種具有軟件獨立結(jié)構(gòu)層的結(jié)構(gòu),如上述涉及的題為“Auxiliary Display System Architecture”的美國專利申請所描述的。應(yīng)注意到,在所涉及的美國專利申請中,以與圖3中相同的順序示出分層,盡管有些隨意的組件分類與本發(fā)明的圖3稍有不同。在圖3的任何事件中,可將服務(wù)程序認作為獨立層304,獨立層304之上為應(yīng)用層302,之下為協(xié)議層306。
在圖3所示的實施方式中,展現(xiàn)了四個彼此之間由接口分隔的層。更特別的,除應(yīng)用層302、服務(wù)層304、以及協(xié)議層306以外,還具有一個圖3所示的固件層308。如下所述,這些層提供了一種簡單的結(jié)構(gòu),通過這種結(jié)構(gòu),應(yīng)用程序可以提供用于以結(jié)構(gòu)化方式緩存的輔助數(shù)據(jù),這種結(jié)構(gòu)化方式提供給用戶簡單訪問相關(guān)的緩存信息,而不必向計算機提供動力(以及/或者如果是便攜式計算機或覆蓋了平板的計算機,無需打開蓋子來查看主顯示屏)。
圖4更詳細的示出了一些層以及各種接口。通常,應(yīng)用層302提供管理及本地接口作為用于幫助結(jié)構(gòu)化緩存創(chuàng)建的應(yīng)用程序設(shè)計接口(API),例如樹形結(jié)構(gòu)或其他適合的結(jié)構(gòu),該接口將在之后描述。應(yīng)用層302的的一個目的是提供對結(jié)構(gòu)化緩存細節(jié)的概述,從而使應(yīng)用程序只需要提供數(shù)據(jù),而無需讓數(shù)據(jù)符合特定的結(jié)構(gòu)。
應(yīng)用層302提供面向開發(fā)者的接口來建立解決方案,而服務(wù)層用于展現(xiàn)輔助信息的某些方面,即仲裁、中斷、以及緩存創(chuàng)建。仲裁(如在之前涉及的題為“Auxiliary Display System Architecture”的美國專利申請中所通常描述的)和中斷支持提供了能夠共享輔助資源的固件。
根據(jù)本發(fā)明的一個方面,緩存創(chuàng)建是一種結(jié)構(gòu)化用于脫機過程的應(yīng)用數(shù)據(jù)的機制。如下參照圖5所描述的,服務(wù)層以保存內(nèi)容和結(jié)構(gòu)信息的方式建立緩存,從而使固件在完全脫離聯(lián)機操作狀態(tài)時可以導(dǎo)航數(shù)據(jù)。如下在一個實施例中所進一步描述的,當事件中的數(shù)據(jù)結(jié)構(gòu)的內(nèi)容大小超出了輔助設(shè)備固件的分配存儲量,服務(wù)層也負責(zé)修剪事件中的數(shù)據(jù)結(jié)構(gòu)。
如圖4所示,應(yīng)用層302和輔助顯示服務(wù)層304可以啟動各種結(jié)構(gòu)和包括輔助注冊在內(nèi)的功能,通過輔助注冊,應(yīng)用程序402(或所結(jié)合的應(yīng)用插件程序)通過輔助顯示層304的服務(wù)注冊組件404對自身進行注冊。在圖4的實施例中,服務(wù)注冊組件404為此提供IAuxAppReg接口。其他應(yīng)用程序也同樣通過接口對自身進行注冊。
一旦進行了注冊,輔助應(yīng)用程序402便具有接收來自相關(guān)的輔助顯示設(shè)備和/或相關(guān)資源的事件的能力。例如,在輔助設(shè)備變?yōu)橛行Ш螅梢詫⑹录l(fā)送給輔助應(yīng)用程序組件402。而另一個事件可以對應(yīng)于用戶與輔助設(shè)備執(zhí)行器之間的相互作用。在圖4的實施例中,應(yīng)用程序?qū)嵤┖凸_了IAuxAppSink接口來接收這種事件。
應(yīng)用程序402同時也具有列舉出可用的輔助硬件設(shè)備或可用設(shè)備的功能。在圖4的實施例中,輔助設(shè)備服務(wù)程序306中的仲裁組件406通過IAuxMediator接口提供列舉詳表。在這種方式中,設(shè)備或與設(shè)備相關(guān)的一些數(shù)據(jù)(例如,相應(yīng)的XML文件)可以向應(yīng)用程序402匯報設(shè)備顯示屏等和/或其執(zhí)行器的性能。應(yīng)用程序402接下來可以根據(jù)顯示調(diào)整輸出和輸入,針對設(shè)備特性更改例如色彩設(shè)計、分辨率、導(dǎo)航命令等。
同時通過IAuxMediator接口在服務(wù)層的調(diào)解組件406也提供仲裁,從而提供一種機制來確定當前應(yīng)顯示哪個應(yīng)用程序402的數(shù)據(jù)以及哪個應(yīng)用程序應(yīng)接收導(dǎo)航命令。應(yīng)注意是多個應(yīng)用程序合理地輪流共享顯示器;換句話說,調(diào)解的仲裁功能管理輔助應(yīng)用程序和/或插件程序的優(yōu)先級(z軸次序)。
協(xié)議層306創(chuàng)建提取操作,通過該提取操作服務(wù)層304發(fā)送和接收來自輔助設(shè)備的數(shù)據(jù)。協(xié)議層 306因此幫助維持硬件獨立的級別。服務(wù)層可以寫到顯示器,或可以通過向設(shè)備傳送數(shù)據(jù)的IAuxDevice接口來設(shè)置指示器的狀態(tài)。
一旦允許將程序?qū)懡o顯示器并通過自身的執(zhí)行器接收命令,所涉及的輔助系統(tǒng)是一種能夠?qū)μ崛〉拇鎯彌_器進行blit/呈現(xiàn)的機制,該機制允許當前選擇的輔助應(yīng)用程序(例如插件程序)組件402使用顯示資源。在不允許脫機緩存的執(zhí)行過程中,調(diào)解器可以將參考點傳送到面向輔助應(yīng)用程序的輔助設(shè)備接口,并隨后讓應(yīng)用程序調(diào)用接口,直接向顯示器和/或指示器提供顯示數(shù)據(jù)。這在可脫機模式中也同樣可行。應(yīng)注意即使當輔助顯示設(shè)備的特定硬件實施不支持脫機運行,當機器聯(lián)機時仍可以存在這種提取,例如服務(wù)層將存儲樹形結(jié)構(gòu)/緩存,并使用標準聯(lián)機API將其作為位圖提供給設(shè)備,而不是將該緩存存儲在設(shè)備的NVRAM中并由固件來提供。因此,在圖4的實施例中,應(yīng)用程序?qū)⑺臄?shù)據(jù)通過服務(wù)層(調(diào)解器接口)來傳遞,從而使服務(wù)層可以結(jié)構(gòu)化用于脫機緩存的代碼。
通常,在一種執(zhí)行方式中,當聯(lián)機時,系統(tǒng)以眾所周知的WM PAINT模式進行工作,在這種模式下當應(yīng)用程序轉(zhuǎn)向提供數(shù)據(jù)時,通過服務(wù)程序來指示該程序(除了數(shù)據(jù)被寫到了輔助顯示器的情況)。在一種可選擇的實施方式中,可以讓應(yīng)用程序?qū)?shù)據(jù)寫到緩存中,而不是寫到顯示目標中,例如使用與緩存同樣的結(jié)構(gòu),而不是發(fā)送實際數(shù)據(jù),以及發(fā)送緩存的指針到主系統(tǒng),以使輔助設(shè)備通過該指針獲得當前需要顯示的數(shù)據(jù),從而例如避免數(shù)據(jù)傳送以及避免需要有規(guī)律的同步圖像的緩存復(fù)制。
可以容易地意識到,各個層在體系結(jié)構(gòu)中提供的輔助功能是全面的和可擴展的??刹褰Y(jié)構(gòu)有助于可利用輔助資源的應(yīng)用程序的寫入,而無需理解或處理低端需求。
根據(jù)本發(fā)明的一個方面,存儲相關(guān)的應(yīng)用數(shù)據(jù)和其他信息,以用于輔助顯示設(shè)備的使用。一種普通目的是為了將信息存儲到快速可存取存儲器中,同時向應(yīng)用程序提供簡單的系統(tǒng)科學(xué),來提供要緩存的信息。為此,在一個實施例中,將數(shù)據(jù)結(jié)構(gòu)化為樹形結(jié)構(gòu)(稱為結(jié)構(gòu)緩存樹),并且提供簡單的基本數(shù)據(jù)單元來建立結(jié)構(gòu)緩存樹。在這個實施例中,結(jié)構(gòu)緩存樹(或樹的子集)的收集、向固件對該樹的傳送、以及在計算機斷電時通過固件與樹中數(shù)據(jù)的交互作用,提供了促進輔助顯示的脫機使用。
圖5示出了僅可以在聯(lián)機時使用的組件及數(shù)據(jù)與脫機(固件)組件及數(shù)據(jù)間的分界線,當主系統(tǒng)聯(lián)機時,脫機部分的數(shù)據(jù)可與聯(lián)機部分以及數(shù)據(jù)一同工作,并可在主系統(tǒng)脫機時操作輔助顯示。應(yīng)注意在聯(lián)機時,圖5所示的脫機部分無須呈現(xiàn)或激活。例如,在聯(lián)機時互動管理器(未示出)通過向運行的應(yīng)用程序發(fā)送大量用戶輸入(如導(dǎo)航命令)來控制用戶與執(zhí)行器的交互作用,因此無需激活脫機互動管理器508。同樣,也可以不將圖5所示的緩存或其他傳送的數(shù)據(jù)傳送給輔助存儲器510,直到從聯(lián)機轉(zhuǎn)換到脫機,盡管由于速度的原因,最好不要傳送所有的數(shù)據(jù),但如上所述,一些數(shù)據(jù)可以偶爾復(fù)制到輔助存儲器并在聯(lián)機向脫機轉(zhuǎn)換的時刻進行同步操作。同步可以是雙向的。
如圖5所示,聯(lián)機應(yīng)用數(shù)據(jù)502由緩存機制504收集,例如通過輪詢每個使用輔助顯示來顯示其數(shù)據(jù)的應(yīng)用程序(用戶已經(jīng)指示需要與一個未運行的應(yīng)用程序的數(shù)據(jù)進行交互,則可以啟動該程序來得到數(shù)據(jù))。應(yīng)注意不是每個在聯(lián)機時使用輔助顯示設(shè)備的應(yīng)用程序都可以配置成在脫機時也能使用,或者當設(shè)置應(yīng)用程序用于脫機數(shù)據(jù)瀏覽時,可以在脫機時使用不同的輔助設(shè)備,例如,通過設(shè)置脫機限制。例如,輔助顯示在聯(lián)機時可以在任意數(shù)量的電子郵件消息中滾動顯示,但應(yīng)用程序可以只設(shè)置某個默認值或者用戶可設(shè)置用于脫機滾動的有效消息(例如二十)。
用戶可以設(shè)置系統(tǒng)來控制哪個應(yīng)用程序可以向緩存提供用于脫機瀏覽的數(shù)據(jù)。例如,用戶可以想要在輔助顯示器上瀏覽緩存的電話號碼、電子郵件消息、任務(wù)及日程表數(shù)據(jù),而不顯示其他程序數(shù)據(jù)。例如,盡管聯(lián)機應(yīng)用程序可以使用輔助顯示器來顯示存貨報價,但由于緩存這種很快就會作廢的數(shù)據(jù)會浪費存儲空間,因此用戶可能不想緩存這種存貨報價數(shù)據(jù)來進行輔助瀏覽。
用戶也可以設(shè)置每個應(yīng)用程序獲得的存儲其數(shù)據(jù)的存儲量,并可以根據(jù)規(guī)則來設(shè)置用于脫機存儲的應(yīng)用程序??蛇x擇的,如果應(yīng)用程序提供太多數(shù)據(jù)進行緩存,算法(以后描述)從樹形結(jié)構(gòu)中修剪數(shù)據(jù),也就是當其他應(yīng)用程序的數(shù)據(jù)使用了超出其可利用的空間時,將一個應(yīng)用程序配置的任何剩余用到另一個應(yīng)用程序的數(shù)據(jù)。根據(jù)用戶指定的優(yōu)先順序,剩余數(shù)據(jù)的重新分配轉(zhuǎn)到應(yīng)用程序上,例如,轉(zhuǎn)到主頁上所列的第一個應(yīng)用程序(列表順序可由用戶設(shè)置),如果不需要全部轉(zhuǎn)到第一個應(yīng)用程序,則接著轉(zhuǎn)到下一個列出的應(yīng)用程序,如此類推。
如上所述,當斷電時,可以進行收集操作,或者可以在一定程度上在轉(zhuǎn)向脫機的時刻同步進行收集操作。通過數(shù)據(jù)修剪機制506執(zhí)行必需的修剪來劃分應(yīng)用程序間的可用存儲,并對每個應(yīng)用程序修剪必需的數(shù)據(jù)來匹配可利用的存儲量。在圖5實施例中的任何事件中,結(jié)果為可通過樹形結(jié)構(gòu)進行導(dǎo)航的脫機數(shù)據(jù)的結(jié)構(gòu)化緩存508。
應(yīng)用程序可能不僅僅向用戶提供可導(dǎo)航的數(shù)據(jù)。例如,日程表程序可能想提供諸如可以在某個日期和時間自動顯示的會議提示之類的數(shù)據(jù)。由于按照規(guī)則遍歷脫機緩存樹來尋找某一事件是低效的,因此可以將諸如根據(jù)中斷來觸發(fā)時間之類的信息傳送給固件,作為采用的時間和動作列表(可能通過對樹形結(jié)構(gòu)進行遍歷直到找到事件,但最好是獨立的數(shù)據(jù))。如圖5所示,固件可以建立這種基于時間的中斷514,并且還存儲在到動作表516的計時器ID中,或者建立每當識別的計時器中斷發(fā)生時所要采取的動作。在這種方式中,例如可以在適當?shù)臅r間顯示指定的提示,一個或多個指示器可以發(fā)亮或閃爍等。
一旦建立、傳送并且主計算機斷電,微控制器520和輔助存儲器接收對輔助顯示器200和執(zhí)行器201的單獨控制。脫機外殼程序520可以提供基于導(dǎo)航的主頁以及工作程序來處理基于計數(shù)器的事件等。與脫機互動管理器508結(jié)合的脫機外殼程序520通過脫機緩存控制導(dǎo)航,也可能響應(yīng)非手動執(zhí)行器改變顯示狀態(tài),例如在電池變低時顯示特定消息。外殼基本數(shù)據(jù)單元可以包括用于郵件、電話、地址、日程表、存貨、音樂、備忘錄等的基本數(shù)據(jù)單元。
圖6示出了一種簡單的樹形結(jié)構(gòu),該結(jié)構(gòu)具有位于外殼(本地)節(jié)點604下的表示三個應(yīng)用程序601-603的節(jié)點。盡管示出的是三個應(yīng)用程序,但是任何指定數(shù)量(與可利用的存儲空間有關(guān))的應(yīng)用程序都是可用的。可以看到的,由于這種結(jié)構(gòu)(盡管該結(jié)構(gòu)不是通常所顯示的內(nèi)容),通過節(jié)點進行手動導(dǎo)航是相對直觀和簡單的。例如,在樹形結(jié)構(gòu)中,只需要向上和向下導(dǎo)航,因此,例如只需要兩個按鍵控制器(盡管一個或同時兩個按鍵可以具有其他功能,如關(guān)閉計時器事件驅(qū)動顯示屏)。
通常,主頁可以簡單提供應(yīng)用程序的菜單,(如果需要的話是可滾動的)雖然取決于執(zhí)行器的安排,但反映層次結(jié)構(gòu)的更復(fù)雜的菜單也是可行的,例如四種方向的導(dǎo)航按鍵可以使用上鍵和下鍵來進行滾動,右鍵和左鍵用于展開和折疊當前突出顯示的菜單,進一步顯示表示任何子樹的數(shù)據(jù)。當用戶在主頁菜單中選擇一頁時,例如通過在一頁上按壓選擇執(zhí)行鍵,外殼節(jié)點實質(zhì)上移動到該節(jié)點,在該節(jié)點上獲得關(guān)于該頁的信息并呈現(xiàn)該頁。信息頁可以包括從位圖到置標語言(例如HTML或XAML)的任何適于在指定設(shè)備上呈現(xiàn)的內(nèi)容,該內(nèi)容取決于設(shè)備中安裝的代碼。同時應(yīng)注意,可以傳送用于翻譯緩存數(shù)據(jù)的代碼,或相反可將代碼下載到固件中。
如圖6所示,樹形結(jié)構(gòu)中可以具有多個子級。例如,所示的個人信息管理節(jié)點620可以具有在其下的聯(lián)系、約會和任務(wù)節(jié)點(分別為620-622),每個節(jié)點具有自己相應(yīng)的顯示屏以及各自的子節(jié)點C1-Ci、A1-Ai和T1-Tk。應(yīng)用程序節(jié)點之下可以僅有一級,如消息節(jié)點M1-Mn所示。通常,每個節(jié)點對應(yīng)于顯示其數(shù)據(jù)的滾動頁以及可能訪問的任何子節(jié)點。
注意在圖6中,為了完整性而示出媒體播放器應(yīng)用程序603,以在一些執(zhí)行過程中進行指示,即使在脫機狀態(tài)中可能無法執(zhí)行媒體應(yīng)用程序,但在聯(lián)機或脫機時可以使用相同的導(dǎo)航樹來確定下一個顯示的屏幕。當在這種實施方式中聯(lián)機時,僅可以聯(lián)機使用的媒體播放器應(yīng)用程序?qū)⒃跇渲芯哂幸粋€顯示屏節(jié)點,用戶可以導(dǎo)航到該節(jié)點,例如瀏覽輔助顯示器上的當前軌道和計時器數(shù)據(jù)。當脫機時,從樹中修剪代表這種顯示屏的節(jié)點(稱作為終端或未處理節(jié)點),以節(jié)省存儲空間??蛇x擇的,當諸如MP3播放器的媒體播放器用作輔助顯示器時,這種節(jié)點可允許MP3播放器使用所述顯示屏,對具有其他應(yīng)用數(shù)據(jù)的導(dǎo)航框架也同樣處理。
圖7示出了在另一個樹的例舉節(jié)點中的一些例舉數(shù)據(jù),該數(shù)據(jù)包括子節(jié)點的識別標簽(例如,用于示出文本)和指向這些節(jié)點的指針數(shù)據(jù)??梢钥吹剑梢詫?dǎo)航到示出電池狀態(tài)的蓄電池安時計頁面以及個人信息管理(PIM)頁面,在個人信息管理頁面具有可以通過執(zhí)行器進行導(dǎo)航的郵件和日程表子節(jié)點。如果選中了示出的郵件節(jié)點,可導(dǎo)航到兩封顯示在輔助顯示器上的郵件,并且導(dǎo)航到該郵件時,并在顯示的所選郵件消息的主體上導(dǎo)航到該消息。注意不同于圖6,在圖7的樹中,郵件是個人信息管理的一部分,但應(yīng)理解圖6和圖7均只是用于舉例的樹形結(jié)構(gòu)。
如圖7所展現(xiàn)的,緩存的數(shù)據(jù)不僅僅是應(yīng)用數(shù)據(jù),還包括用于導(dǎo)航的結(jié)構(gòu)。在這種方式中,固件可以正確提供用戶通過執(zhí)行器到達的各種圖像,該提供過程可以通過響應(yīng)導(dǎo)航命令從緩存中提供不同位圖來進行,或通過像瀏覽器這樣的軟件對內(nèi)容進行翻譯來構(gòu)造每個頁面,或通過一些其他機制。因此,盡管描述了一種樹形結(jié)構(gòu),但應(yīng)理解到可以使用任何可導(dǎo)航結(jié)構(gòu)(例如,圖表、包含提供的數(shù)據(jù)或?qū)嶋H上任何結(jié)構(gòu)數(shù)據(jù)的HTML或XAML文檔)在數(shù)據(jù)中進行導(dǎo)航。在這種實施方式中,同時也對描述應(yīng)用數(shù)據(jù)的元數(shù)據(jù)進行緩存。在可選的實施方式中,數(shù)據(jù)可以在形式上較少的結(jié)構(gòu)化,如果翻譯數(shù)據(jù)的代碼不存在于固件中時,可以提供向固件提供該代碼(以及應(yīng)用數(shù)據(jù))。
此外,一旦緩存了導(dǎo)航結(jié)構(gòu)和數(shù)據(jù),任何訪問該緩存的輔助設(shè)備,包括在緩存時沒有出現(xiàn)的設(shè)備,可以讀取該數(shù)據(jù)結(jié)構(gòu),并允許提供和導(dǎo)航該數(shù)據(jù)。例如,如果緩存保存在互聯(lián)網(wǎng)或可移動介質(zhì),而不是單獨存儲在一個連接的設(shè)備固件,任何訪問該緩存文件(以及適當?shù)脑L問權(quán)利)的適當編碼設(shè)備可以提供和導(dǎo)航該數(shù)據(jù)。因此,例如用戶可以通過MP3播放器讀取他或她的緩存輔助顯示數(shù)據(jù),只要該播放器知道如何讀取緩存結(jié)構(gòu),即使如果MP3播放器在進行緩存時沒有連接到主計算機上。換句話說,緩存是連接輔助設(shè)備到計算機系統(tǒng)的終結(jié)。應(yīng)注意到,這不意味著設(shè)備可以理解數(shù)據(jù)的含義,其僅可以提供和導(dǎo)航數(shù)據(jù)而已。還應(yīng)注意如果某些數(shù)據(jù)本身位于結(jié)構(gòu)內(nèi)部(例如不是位圖,而是按行和列排列),呈現(xiàn)和導(dǎo)航設(shè)備也同樣可以理解數(shù)據(jù),并且不僅僅是理解數(shù)據(jù)本身,例如允許用戶所希望的合適的數(shù)據(jù)動態(tài)分類。
可以簡單的理解到,通過保存緩存作為文件,可以獲得其它的好處。例如,正如文件一樣,可以在很久之后(例如很多年)重放輔助顯示的狀態(tài)來覆蓋重要信息。
現(xiàn)在解釋說明在聯(lián)機狀態(tài)中發(fā)生的修剪操作,有經(jīng)驗的客戶可以設(shè)置存儲分配給每個應(yīng)用程序,該應(yīng)用程序被用戶指定為可以在脫機狀態(tài)下使用輔助設(shè)備。因此,例如一個用戶可以擁有一個很大的可用聯(lián)系表,而另一個用戶有很多會議邀請,同時還有一個用戶需要對郵件消息進行輔助顯示。每個用戶都可能想讓所有的數(shù)據(jù)有效,但每個用戶更愿意給出不同應(yīng)用程序的相關(guān)顯示的優(yōu)先級。
擁有大量數(shù)據(jù)的較少經(jīng)驗的用戶也許要一種默認方式來劃分將用于構(gòu)造樹形結(jié)構(gòu)的應(yīng)用數(shù)據(jù)之間的存儲器。在一種實施方式中,默認的方式是最初在應(yīng)用程序中平均劃分可用的存儲器,也就是平均到主頁之下第一級的節(jié)點上。應(yīng)注意盡管初始平均劃分,但任何指定應(yīng)用程序的數(shù)據(jù)可能不需要其初始分配,因此修剪機制讓其他應(yīng)用程序的數(shù)據(jù)利用剩余的部分。因此,即使初始平均劃分,仍需要一些知道如何分配剩余部分的機制。
在一種實施方式中,剩余分配機制是一種簡單的優(yōu)先配置,這種優(yōu)先配置基于主頁中描述代表應(yīng)用程序的子頁面的順序。顯示順序可由用戶配置,用戶也可以設(shè)置優(yōu)先級。
應(yīng)注意當建立樹形結(jié)構(gòu)時,并不知道某個分支有剩余或不足,直到建立該分支后。例如。可以通過移除消息(先進先出)來修建郵件分支,直到有足夠的空間可用于剩余的消息。然而,對于最后一個消息的修剪,如果是一個很大的消息,當其所導(dǎo)致的不足變?yōu)橛惺S鄷r,可以將剩余部分重新分配給樹的另一個分支。同樣的,修剪算法從一級一級遞推進行,并當有更多的存儲空間變?yōu)榭捎脮r,修建算法可以重新進行。
接下來的偽代碼描述了這種樹形結(jié)構(gòu)修剪程序,該程序可由根標識符調(diào)用并且緩存總量是可變的??偩彺媪?分配給緩存的存儲量)最初在分支之間平均分配,并且每個較低的子節(jié)點最初獲得父節(jié)點預(yù)算的相等分配??梢钥吹剑藜魞H在必要時使用,并且存儲修剪是遞推的,從末端節(jié)點開始,向初始節(jié)點和上級分支進行。分支的子節(jié)點首先給出剩余,并且只有在沒有子節(jié)點有剩余可使用時,由另一分支給出剩余。
Tree Pruning Algorithm Pseudo CodeGivenNode ::=A tree node.
Node.size ::=Total size of subtree rooted at Node.
Node.nChildren ::=Number of children of Node (0 if terminal).
Node.child
::=Child nodes of Node.
Prune cache tree usingPruneTree(Root,TotalCacheSize)where PruneTree() is defined as follows////Prune tree rooted at node N to <=budget.
////Return amount by which pruned tree is less than budget.
//int PruneTree(Node N,int budget){
//If tree is already within budget,we’re done.
if(N.size<=budget){return budget-N.size; //Return budget surplus.
}//The tree is over budget and needs to be pruned.
//If it’s a terminal node(no children),then we//completely delete the node.
If(N.nChildren==0){//NoteDeleting the node includes walking tree from//node to root,adjusting node subtree sizes//(i.e.subtact N.size from size of each parent to root)DeletedNote(N);Return budget;//Return full budget as surplus.
}//It’s an over budget tree--recursively prune the tree//until it is within budget.
//ChildBudget is the maximum allowed size of unpruned child nodes.
//Initially each child node is allocated an equal share of//the parent node’s budget.
childBudget=budget/N.nChildren;//Examine child nodes from last to first(we assume that//the most“valuble”nodes are listed first,so less//“valuable”nodes will be considered for pruning first.
//stop when parent node is within budget.
for(i=N.nChildren-1;i.>=0&&N.size>budget;--i){//if this child is over budget,it must be//recursively pruned.
If(N.child[i].size>childBudget){//it will be pruned to a size that puts it within budget,//or outs its parent node within budget,which ever
//requires less pruning.
//Minimum amount this child tree must be reduced.
minReduction=min(N.size-budget),(N.child[i].Size-childBudget));//recursively prune the child tree.
Surplus=prune(N.child[i],N.child[i].size-minReduction);}else{//This child is within budget.It survives unpruned.
surplus=N.child[i].size-childBudget;}//this child is now within budget by the amount given//by surplus.
//If there are more children,distribute the surplus//evenly among them.
if(i>0){childbudget+=surplus/i;}}//Return budget surplus.
Return budget-N.size;}可以從前面的描述看出,本發(fā)明能夠讓應(yīng)用程序在主計算機系統(tǒng)斷電時,緩存用于通過計算機系統(tǒng)的輔助設(shè)備來顯示和導(dǎo)航的數(shù)據(jù)。本發(fā)明因此提供了在現(xiàn)代計算中所需要的顯著的利益和進步。
同時本發(fā)明允許各種更改和可選擇的構(gòu)造,附圖中示出了用于解釋本發(fā)明的特定實施例并在以上進行了詳細描述。然而,可以理解的是,這并不意味將本發(fā)明限定到特定形式或公開的形式,相反本發(fā)明將覆蓋在本發(fā)明的精神和范圍內(nèi)的所有修改、可選擇構(gòu)造、以及等同物。
權(quán)利要求
1.在具有計算機系統(tǒng)的計算環(huán)境中,一種系統(tǒng)包括配置成顯示輔助信息的輔助設(shè)備,至少一部分輔助信息由計算機系統(tǒng)提供;運行在計算機系統(tǒng)上的輔助設(shè)備服務(wù)程序,該輔助設(shè)備服務(wù)程序配置成接收來自計算機程序的數(shù)據(jù),其中該數(shù)據(jù)與在輔助設(shè)備上顯示信息有關(guān),并進一步配置成結(jié)構(gòu)化緩存中的數(shù)據(jù),用于隨后的數(shù)據(jù)導(dǎo)航;以及其中輔助設(shè)備接收導(dǎo)航命令并訪問該緩存,以確定根據(jù)該導(dǎo)航命令什么輸出數(shù)據(jù)顯示在輔助設(shè)備上。
2.根據(jù)權(quán)利要求1的系統(tǒng),其中緩存包括應(yīng)用程序數(shù)據(jù),并且其中當該計算機系統(tǒng)處于斷電狀態(tài)時,輔助設(shè)備顯示至少一部分應(yīng)用程序數(shù)據(jù)。
3.根據(jù)權(quán)利要求1的系統(tǒng),其中該緩存包含涉及計算機系統(tǒng)的主存儲器中應(yīng)用程序數(shù)據(jù)的參數(shù),以及其中當計算機系統(tǒng)處于加電狀態(tài)時,輔助設(shè)備通過該參數(shù)獲得應(yīng)用程序數(shù)據(jù),從而至少顯示一部分應(yīng)用程序數(shù)據(jù)。
4.根據(jù)權(quán)利要求1的系統(tǒng),其中通過外殼程序訪問該緩存。
5.根據(jù)權(quán)利要求1的系統(tǒng),其中該緩存包含將程序數(shù)據(jù)結(jié)構(gòu)化為樹形結(jié)構(gòu)的信息。
6.根據(jù)權(quán)利要求5的系統(tǒng),其中通過外殼程序訪問該緩存,并且其中外殼程序顯示相應(yīng)于樹形結(jié)構(gòu)根目錄的主頁。
7.根據(jù)權(quán)利要求1的系統(tǒng),其中輔助設(shè)備的服務(wù)程序根據(jù)緩存中可利用的存儲空間,確定是否減少接收的用于緩存的數(shù)據(jù)量。
8.根據(jù)權(quán)利要求1的系統(tǒng),其中輔助設(shè)備物理連接到計算機系統(tǒng)的外殼。
9.根據(jù)權(quán)利要求1的系統(tǒng),其中輔助設(shè)備遠程連接到計算機系統(tǒng)。
10.根據(jù)權(quán)利要求9的系統(tǒng),其中該緩存存儲在與計算機系統(tǒng)物理分離的存儲介質(zhì)上,并且其中輔助設(shè)備通過訪問該緩存,與計算機系統(tǒng)遠程連接。
11.根據(jù)權(quán)利要求1的系統(tǒng),其中輔助設(shè)備還接收基于時間的事件,并響應(yīng)訪問輔助存儲器,根據(jù)該基于時間的事件確定輸出什么數(shù)據(jù)到輔助設(shè)備上顯示。
12.根據(jù)權(quán)利要求11的系統(tǒng),其中顯示的數(shù)據(jù)保存在緩存中。
13.根據(jù)權(quán)利要求1的系統(tǒng),其中緩存包含至少一個用于輔助設(shè)備上顯示的位圖。
14.根據(jù)權(quán)利要求1的系統(tǒng),其中緩存包含當翻譯創(chuàng)建用于在輔助設(shè)備上呈現(xiàn)的圖像時的數(shù)據(jù)。
15.一種在計算環(huán)境中的方法,包括接收計算機程序數(shù)據(jù);將該計算機程序數(shù)據(jù)與導(dǎo)航信息結(jié)合,該導(dǎo)航信息確定該計算機程序數(shù)據(jù)與其它通過輔助設(shè)備用于導(dǎo)航的計算機程序數(shù)據(jù)有何關(guān)系;將計算機程序數(shù)據(jù)與其它計算機程序數(shù)據(jù)以及導(dǎo)航信息存儲在緩存中;以及提供能夠訪問該緩存的輔助設(shè)備。
16.根據(jù)權(quán)利要求15的方法,其中在輔助設(shè)備上接收導(dǎo)航命令,訪問該緩存以確定根據(jù)該導(dǎo)航命令輸出什么數(shù)據(jù)顯示在輔助設(shè)備上,以在輔助設(shè)備上顯示該數(shù)據(jù)。
17.根據(jù)權(quán)利要求1的方法,其中提供能夠訪問緩存的輔助設(shè)備,包括在主計算機系統(tǒng)斷電之前,從主計算機系統(tǒng)發(fā)送該緩存到輔助存儲器。
18.根據(jù)權(quán)利要求15的方法,其中提供能夠訪問緩存的輔助設(shè)備,包括將該緩存從主計算機系統(tǒng)傳送到與主計算機系統(tǒng)物理分離的存儲介質(zhì)。
19.根據(jù)權(quán)利要求15的方法,其中該緩存包含運行在主計算機系統(tǒng)上的程序的程序數(shù)據(jù),同時進一步包括當主計算機系統(tǒng)處于斷電狀態(tài)時,在輔助設(shè)備上顯示該數(shù)據(jù)。
20.根據(jù)權(quán)利要求15的方法,還包括通過運行在輔助固件中的外殼程序訪問該緩存。
21.根據(jù)權(quán)利要求15的方法,其中將計算機程序數(shù)據(jù)與導(dǎo)航信息相結(jié)合的步驟包括在樹形結(jié)構(gòu)中顯示該計算機程序數(shù)據(jù)。
22.根據(jù)權(quán)利要求21的方法,還包括從運行在輔助固件中的外殼程序輸出主頁,該主頁向緩存中的至少一部分計算機程序數(shù)據(jù)提供導(dǎo)航路徑。
23.根據(jù)權(quán)利要求15的方法,還包括根據(jù)緩存中可利用的存儲空間,確定是否減少接收的程序數(shù)據(jù)的數(shù)據(jù)量。
24.根據(jù)權(quán)利要求15的方法,還包括在輔助設(shè)備上接收事件,根據(jù)該事件訪問該緩存以確定輸出什么數(shù)據(jù)到輔助設(shè)備上顯示,并在輔助設(shè)備上顯示該數(shù)據(jù)。
25.根據(jù)權(quán)利要求24的方法,其中該事件對應(yīng)于基于時間的事件
26.根據(jù)權(quán)利要求24的方法,還包括確定相應(yīng)于要求訪問緩存的指定動作的事件。
27.根據(jù)權(quán)利要求24的方法,其中該事件相應(yīng)于用戶的輸入。
28.一種計算機可讀介質(zhì),具有執(zhí)行根據(jù)權(quán)利要求15的方法的計算機可執(zhí)行指令。
29.一種在計算機環(huán)境中的方法,包括在輔助設(shè)備端接收事件;通過輔助設(shè)備訪問緩存,確定根據(jù)導(dǎo)航命令什么輸出數(shù)據(jù)顯示在輔助設(shè)備上;在輔助設(shè)備上顯示該數(shù)據(jù)。
30.根據(jù)權(quán)利要求29的方法,其中在輔助設(shè)備端接收事件的步驟包括接收相應(yīng)于導(dǎo)航命令的用戶輸入。
31.根據(jù)權(quán)利要求29的方法,其中在輔助設(shè)備端接收事件的步驟包括接收一個基于時間的事件。
32.根據(jù)權(quán)利要求29的方法,其中訪問緩存的步驟包括讀取輔助存儲器。
33.根據(jù)權(quán)利要求29的方法,其中訪問緩存的步驟包括通過輔助設(shè)備從包含該緩存的存儲介質(zhì)之中讀取數(shù)據(jù),該存儲介質(zhì)由計算機系統(tǒng)進行寫入,在輔助設(shè)備從存儲介質(zhì)中讀取數(shù)據(jù)時,計算機系統(tǒng)與輔助設(shè)備不連接。
34.一種計算機可讀介質(zhì),具有執(zhí)行根據(jù)權(quán)利要求15的方法的計算機可執(zhí)行指令。
全文摘要
一種系統(tǒng),通過該系統(tǒng),應(yīng)用程序?qū)?shù)據(jù)提供給輔助顯示設(shè)備(與主計算機系統(tǒng)相結(jié)合)用以進行顯示,包括當主計算機系統(tǒng)斷電時。緩存保存了與結(jié)構(gòu)化導(dǎo)航信息相結(jié)合的用戶數(shù)據(jù),以允許通過該結(jié)構(gòu)在數(shù)據(jù)中進行導(dǎo)航。當聯(lián)機時,主計算機系統(tǒng)從與導(dǎo)航信息相結(jié)合的程序數(shù)據(jù)中準備數(shù)據(jù)的緩存,并將該緩存發(fā)送給脫機介質(zhì),例如固件中的輔助存儲器。該緩存可排列為樹形結(jié)構(gòu),從而使導(dǎo)航命令根據(jù)樹形結(jié)構(gòu)中的數(shù)據(jù)產(chǎn)生輸出。其它諸如基于時間的事件之類的事件可以改變輔助設(shè)備的輸出。
文檔編號G06F3/14GK1758246SQ200510089650
公開日2006年4月12日 申請日期2005年5月8日 優(yōu)先權(quán)日2004年5月3日
發(fā)明者A·J·福勒, C·A·斯蒂, J·佩雷斯, M·P·羅頓, S·R·德雷克 申請人:微軟公司