專利名稱:顯示管中的流翻譯的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及虛擬內(nèi)存系統(tǒng)領(lǐng)域。
背景技術(shù):
虛擬內(nèi)存系統(tǒng)因?yàn)楦鞣N原因而在計(jì)算系統(tǒng)中實(shí)現(xiàn)。例如,虛擬內(nèi)存可以用于在實(shí)現(xiàn)較小物理內(nèi)存的同時(shí)使更大的虛擬內(nèi)存空間可用于軟件過程。例如盤驅(qū)動(dòng)器的非易失性存儲(chǔ)器可以存儲(chǔ)來自當(dāng)前未使用的虛擬內(nèi)存空間的數(shù)據(jù)。虛擬內(nèi)存可以用于隔離在同一系統(tǒng)上執(zhí)行的不同軟件過程,使得一個(gè)過程不能訪問屬于另一個(gè)過程的數(shù)據(jù)。虛擬內(nèi)存還可以用于在對(duì)過程看起來是在虛擬內(nèi)存空間中尋址的連續(xù)內(nèi)存的同時(shí)允許控制軟件(例如操作系統(tǒng)、例如管理程序的虛擬機(jī)監(jiān)視器(VMM)或者其它特權(quán)軟件)在物理內(nèi)存中重新定位數(shù)據(jù)。因而,數(shù)據(jù)可以分配到物理內(nèi)存空間中任何地方的可用內(nèi)存。由于物理內(nèi)存在過程之間共享,因此在物理內(nèi)存中重新定位數(shù)據(jù)的能力減輕了對(duì)控制軟件的負(fù)擔(dān)。一般來說,控制軟件準(zhǔn)備從虛擬地址到為該虛擬地址分配的內(nèi)存位置的物理地址的翻譯。翻譯信息存儲(chǔ)在內(nèi)存中的一個(gè)或多個(gè)頁(yè)表中,并且系統(tǒng)中的翻譯硬件高速緩存該翻譯信息,以便將虛擬地址翻譯成物理地址。翻譯是以頁(yè)的粒度執(zhí)行的。即,與虛擬內(nèi)存系統(tǒng)中一個(gè)頁(yè)邊界對(duì)齊的一塊虛擬地址全部都由同一次翻譯翻譯到內(nèi)存中的物理頁(yè)。頁(yè)的大小可以變化(例如,4千字節(jié)、8千字節(jié)或者在有些情況下甚至更大到兆字節(jié))。有些系統(tǒng)支持可變的頁(yè)面尺寸,或者可以編程選擇,使得所有頁(yè)面在給定的時(shí)間點(diǎn)都是選定的尺寸或者是按一頁(yè)一頁(yè)的基礎(chǔ)可變的,使得同時(shí)支持不同的頁(yè)面尺寸。為給定的虛擬頁(yè)指定物理頁(yè)地址的翻譯信息被稱為用于那個(gè)虛擬頁(yè)的翻譯。翻譯包括識(shí)別物理頁(yè)的物理頁(yè)號(hào),并且可以包括各種屬性位,例如有效位、高速緩存屬性等。虛擬頁(yè)是虛擬地址空間中頁(yè)對(duì)齊的、頁(yè)面大小的塊,并且類似地,物理頁(yè)是物理地址空間中頁(yè)對(duì)齊的、頁(yè)面大小的塊。翻譯的高速緩存加速了利用(通過高速緩存的翻譯翻譯成物理地址的)虛擬地址訪問內(nèi)存的過程。但是,高速緩存是有限的并且因此有時(shí)候會(huì)存在錯(cuò)過(miss),這需要將翻譯從內(nèi)存提取到翻譯硬件中。在各種實(shí)現(xiàn)中,硬件可以從內(nèi)存讀取錯(cuò)過的翻譯,或者軟件可以將該翻譯加載到硬件中。在任一情況下,當(dāng)發(fā)生翻譯錯(cuò)過時(shí),內(nèi)存訪問的等待時(shí)間增加。
發(fā)明內(nèi)容
在一種實(shí)施例中,顯示管包括對(duì)應(yīng)于該顯示管為了顯示而讀取的圖像的一個(gè)或多個(gè)翻譯單元。每個(gè)翻譯單元可以配置成在圖像數(shù)據(jù)提取之前預(yù)取翻譯,這可以防止顯示管中的翻譯錯(cuò)過(至少在大部分情況下)。翻譯單元可以按先進(jìn)先出(FIFO)方式維持翻譯,并且,當(dāng)給定的一個(gè)或多個(gè)翻譯不再需要時(shí),顯示管提取硬件可以通知翻譯單元。翻譯單元可以使識(shí)別的翻譯失效并且為與最近提取的虛擬頁(yè)連續(xù)的虛擬頁(yè)預(yù)取附加翻譯。在一種實(shí)施例中,以上所述的預(yù)取翻譯單元的結(jié)合可以允許更復(fù)雜的翻譯單元專用于共享到顯示管使用的內(nèi)存的相同端口的圖像處理器。因?yàn)橄孙@示管對(duì)更復(fù)雜的翻譯單元的競(jìng)爭(zhēng),所以來自圖像處理器的更加隨機(jī)的訪問內(nèi)存請(qǐng)求可以更有可能在更復(fù)雜的翻譯單元中命中,這也可以降低圖像處理器的錯(cuò)過率。
以下具體描述參考附圖,現(xiàn)在對(duì)附圖簡(jiǎn)單地進(jìn)行描述。圖1是集成電路的一種實(shí)施例的框圖。圖2是圖1中所示顯示管的一種實(shí)施例的框圖。圖3是源緩沖區(qū)的一種實(shí)施例的框圖。圖4是在顯示管中的內(nèi)存管理單元(MMU)中可能有效的翻譯的例子的框圖。圖5是圖2中所示提取/MMU單元的一種實(shí)施例的框圖。圖6是說明(例示)圖5中所示提取控制單元的一種實(shí)施例的操作的流程圖。圖7是說明圖5中所示提取控制單元的一種實(shí)施例的附加操作的流程圖。圖8是說明圖5中所示翻譯控制單元的一種實(shí)施例的操作的流程圖。圖9是存儲(chǔ)翻譯表與源緩沖區(qū)塊的內(nèi)存的一種實(shí)施例的框圖。圖10是系統(tǒng)的一種實(shí)施例的框圖。盡管本發(fā)明很容易有各種修改與備選形式,但是其具體實(shí)施例是通過例子在圖中示出的并且將在這里具體描述。但是,應(yīng)當(dāng)理解,圖及對(duì)其的具體描述不是要將本發(fā)明限定到所公開的特定形式,相反,本發(fā)明是要覆蓋屬于由所附權(quán)利要求定義的本發(fā)明主旨與范圍的所有修改、等價(jià)物與備選方案。在此所用的標(biāo)題僅僅是為了組織的目的而不是要用于限制本描述的范圍。如貫穿本申請(qǐng)所使用的,詞“可以”是以許可的意義(即,意味著有可能)而不是強(qiáng)制的意義(即,意味著必須)使用的。類似地,詞“包括”意味著包括,但不限于。各種單元、電路或其它部件可以描述為“配置成”執(zhí)行一個(gè)或多個(gè)任務(wù)。在這種背景下,“配置成”是結(jié)構(gòu)的廣義敘述,通常意味著“具有”在操作中執(zhí)行所述一個(gè)或多個(gè)任務(wù)的“電路系統(tǒng)”。照此,即使在單元/電路/部件目前未開啟的時(shí)候單元/電路/部件也可以配置成執(zhí)行任務(wù)。一般,構(gòu)成對(duì)應(yīng)于“配置成”的結(jié)構(gòu)的電路系統(tǒng)可以包括實(shí)現(xiàn)操作的硬件電路。類似地,為了描述中的方便,各種單元/電路/部件可以描述為執(zhí)行一個(gè)或多個(gè)任務(wù)。這種描述應(yīng)當(dāng)解釋為包括階段“配置成”。描述配置成執(zhí)行一個(gè)或多個(gè)任務(wù)的單元/電路/部件明確地不是要對(duì)那個(gè)單元/電路/部件引用美國(guó)法典35章112條第6段的解釋。
具體實(shí)施例方式現(xiàn)在轉(zhuǎn)向圖1,示出了系統(tǒng)5的一種實(shí)施例的框圖。在圖1的實(shí)施例中,系統(tǒng)5包括耦合到外部?jī)?nèi)存12A-12B的集成電路(IC)10。在所說明(例示)的實(shí)施例中,集成電路10包括中央處理單元(CPU)塊14,該CPU塊包括一個(gè)或多個(gè)處理器16和2級(jí)(L2)高速緩存
18。其它實(shí)施例可以不包括L2高速緩存18和/或可以包括附加級(jí)別的高速緩存。此外,包括多于兩個(gè)處理器16的和只包括一個(gè)處理器16的實(shí)施例也是預(yù)期的。集成電路10進(jìn)一步包括一組一個(gè)或多個(gè)非實(shí)時(shí)(NRT)外圍設(shè)備20和一組一個(gè)或多個(gè)實(shí)時(shí)(RT)外圍設(shè)備22。在所說明的實(shí)施例中,RT外圍設(shè)備包括圖像處理器24、一個(gè)或多個(gè)顯示管26、翻譯單元46和端口仲裁器28。根據(jù)期望,其它實(shí)施例可以包括更多或更少的圖像處理器24、更多或更少的顯示管26和/或任何附加的實(shí)時(shí)外圍設(shè)備。圖像處理器24可以耦合成從系統(tǒng)5中的一個(gè)或多個(gè)照相機(jī)接收?qǐng)D像數(shù)據(jù)。類似地,顯示管26可以耦合到控制系統(tǒng)中的一個(gè)或多個(gè)顯示器的一個(gè)或多個(gè)顯示器控制器(未示出)。圖像處理器24可以耦合到翻譯單元46,翻譯單元46可以進(jìn)一步耦合到端口仲裁器28。端口仲裁器28也可以耦合到顯示管26。在所說明的實(shí)施例中,CPU塊14耦合到橋/直接內(nèi)存存取(DMA)控制器30,DMA控制器30可以耦合到一個(gè)或多個(gè)外圍設(shè)備32和/或一個(gè)或多個(gè)外圍接口控制器34。在各種實(shí)施例中,外圍設(shè)備32和外圍接口控制器34的數(shù)目可以從零到任何期望的數(shù)字變化。圖1中說明的系統(tǒng)5進(jìn)一步包括圖形單元36,圖形單元36包括一個(gè)或多個(gè)圖形控制器,例如G038A和G138B。在其它實(shí)施例中,每個(gè)圖形單元的圖形控制器的數(shù)目與圖形單元的數(shù)目可以變化。如圖1中所說明的,系統(tǒng)5包括耦合到一個(gè)或多個(gè)內(nèi)存物理接口電路(PHY)42A-42B的內(nèi)存控制器40。內(nèi)存PHY42A-42B配置成在集成電路10的引腳上通向內(nèi)存12A-12B。內(nèi)存控制器40還包括一組端口 44A-44E。端口 44A-44B分別耦合到圖形控制器38A-38B。CPU塊14耦合到端口 44C。NRT外圍設(shè)備20和RT外圍設(shè)備22分別耦合到端口 44D-44E。在其它實(shí)施例中,內(nèi)存控制器40中所包括的端口的數(shù)目可以變化,就像內(nèi)存控制器的數(shù)目可以變化那樣。在其它實(shí)施例中,內(nèi)存PHY42A-42B和對(duì)應(yīng)的內(nèi)存12A-12B的數(shù)目可以是一個(gè)或者多于兩個(gè)。在一種實(shí)施例中,每個(gè)端口 44A-44E都可以與特定類型的流量關(guān)聯(lián)。例如,在一種實(shí)施例中,流量類型可以包括RT流量、NRT流量和圖形流量。其它實(shí)施例可以包括除以上流量之外的、代替以上流量的或者除以上流量的子集之外的其它流量類型。每種類型的流量可以不同地特征化(例如,關(guān)于需求和行為),并且內(nèi)存控制器可以不同地處理流量類型,以便基于特征提供更高的性能。例如,RT流量需要每個(gè)內(nèi)存操作在特定的時(shí)間量?jī)?nèi)提供服務(wù)。如果操作的等待時(shí)間超過該特定的時(shí)間量,就可能在RT外圍設(shè)備中發(fā)生錯(cuò)誤操作。例如,圖像數(shù)據(jù)可能在圖像處理器24中丟失或者在顯示管26連接到的顯示器上所顯示的圖像可能視覺變形。例如,RT流量可以特征化為同步的。另一方面,圖形流量可以是相對(duì)高帶寬的,但不是等待時(shí)間敏感的。NRT流量,例如來自處理器16的流量,出于性能原因?qū)Φ却龝r(shí)間更加敏感,但是能經(jīng)受較高的等待時(shí)間。即,NRT流量一般可以在任何等待時(shí)間提供服務(wù),而不會(huì)在生成該NRT流量的設(shè)備中造成錯(cuò)誤操作。類似地,對(duì)等待時(shí)間不太敏感但具有較高帶寬的圖形流量一般可以在任何等待時(shí)間提供服務(wù)。其它的NRT流量可以包括音頻流量,這種音頻流量是相對(duì)低帶寬的并且一般可以利用合理的等待時(shí)間提供服務(wù)。大部分外圍流量也可以是NRT (例如,到諸如磁性、光學(xué)或固態(tài)存儲(chǔ)器的存儲(chǔ)設(shè)備的流量)。通過提供與不同流量類型關(guān)聯(lián)的端口 44A-44E,內(nèi)存控制器40可以并行地暴露給不同的流量類型。如以上所提到的,RT外圍設(shè)備22可以包括圖像處理器24和顯示管26。顯示管26可以包括提取一個(gè)或多個(gè)圖像幀并且混合這些幀以便產(chǎn)生顯示圖像的電路系統(tǒng)。顯示管26可以進(jìn)一步包括一個(gè)或多個(gè)視頻流水線(pipeline),并且視頻巾貞可以與(相對(duì))靜止的圖像幀混合,產(chǎn)生以視頻幀速率顯示的幀。顯示管26的結(jié)果可以是顯示在顯示屏幕上的像素的流。像素值可以發(fā)送到顯示控制器,用于在顯示屏幕上顯示。圖像處理器24可以接收照相機(jī)數(shù)據(jù)并且將該數(shù)據(jù)處理成存儲(chǔ)在內(nèi)存中的圖像。顯示管26和圖像處理器24都可以在虛擬地址空間中操作,并且因此可以使用翻譯來生成用于讀或者寫內(nèi)存的內(nèi)存操作的物理地址。圖像處理器24可以具有稍微隨機(jī)存取內(nèi)存的模式,并且可以因此依賴翻譯單元46進(jìn)行翻譯。翻譯單元46可以采用翻譯后備緩沖區(qū)(TLB),基于一個(gè)翻譯相對(duì)于其它高速緩存的翻譯多頻繁地被使用來高速緩存每個(gè)翻譯一段時(shí)間。例如,TLB可以使用組關(guān)聯(lián)性或完全關(guān)聯(lián)性結(jié)構(gòu),并且最近最少使用(LRU)類型的算法可以用于給一組中的翻譯(或者在完全關(guān)聯(lián)性配置中跨TLB)的翻譯使用新老程度分級(jí)。例如,LRU類型的算法可以包括真正的LRU、偽LRU、最近最常使用(MRU)等。此外,為了減少TLB中容量錯(cuò)失的影響,可以實(shí)現(xiàn)相當(dāng)大的TLB。另一方面,顯示管26的訪問模式可以相當(dāng)規(guī)律。例如,用于每個(gè)源圖像的圖像數(shù)據(jù)可以存儲(chǔ)在虛擬地址空間中連續(xù)的內(nèi)存位置。因而,顯示管可以從一個(gè)虛擬頁(yè)開始處理源圖像數(shù)據(jù),并且隨后的虛擬頁(yè)可以與該虛擬頁(yè)是連續(xù)的。即,虛擬頁(yè)號(hào)可以是按數(shù)字次序,隨著圖像數(shù)據(jù)被提取,逐頁(yè)遞增一或遞減一。類似地,在內(nèi)存中的給定頁(yè)表中,翻譯可以是彼此連續(xù)的(例如,頁(yè)表中連續(xù)的條目可以翻譯數(shù)字上彼此大一或者小一的虛擬頁(yè)號(hào))。盡管在有些實(shí)施例中可以使用多于一個(gè)頁(yè)表,并且因此該頁(yè)表的最后一個(gè)條目可能不與下一個(gè)頁(yè)表的第一個(gè)條目連續(xù),但是大部分翻譯在頁(yè)表中可以是連續(xù)的。以另一種方式看,存儲(chǔ)圖像數(shù)據(jù)的虛擬頁(yè)可以在虛擬地址空間中彼此相鄰。即,在虛擬地址空間中的相鄰虛擬頁(yè)之間可以沒有插入的頁(yè)。顯示管26可以實(shí)現(xiàn)在顯示管讀取圖像數(shù)據(jù)之前預(yù)取翻譯的翻譯單元。預(yù)取可以在源圖像處理開始的時(shí)候啟動(dòng),并且翻譯單元可以預(yù)取足夠多的連續(xù)翻譯,來填充翻譯單元中的翻譯內(nèi)存。當(dāng)虛擬頁(yè)中的數(shù)據(jù)處理完成時(shí),顯示管中的提取電路系統(tǒng)可以通知翻譯單元,并且翻譯單元可以使對(duì)應(yīng)的翻譯失效并且預(yù)取附加翻譯。相應(yīng)地,一旦完成最初的預(yù)取,當(dāng)顯示管26開始從虛擬頁(yè)提取時(shí),用于每個(gè)虛擬頁(yè)的翻譯就可以在翻譯單元中頻繁地獲得。此外,顯示管26對(duì)翻譯單元46的競(jìng)爭(zhēng)可以消除,這有利于預(yù)取翻譯單元。由于顯示管中的翻譯單元為一組連續(xù)的虛擬頁(yè)提取翻譯,因此它們可以被稱為“流翻譯單元”。一般,顯示管26可以包括一個(gè)或多個(gè)配置成提取相對(duì)靜止幀的用戶接口單元。即,靜止幀中的源圖像不是視頻序列的一部分。盡管靜止幀可以變化,但它不是根據(jù)對(duì)應(yīng)于視頻序列的視頻幀速率改變的。顯示管26可以進(jìn)一步包括一個(gè)或多個(gè)配置成提取視頻幀的視頻流水線。這各種流水線(例如,用戶接口單元和視頻流水線)通??梢苑Q為“圖像處理流水線”。回到內(nèi)存控制器40,通常有一個(gè)端口可以是內(nèi)存控制器40上與一個(gè)或多個(gè)源通信的通信點(diǎn)。在有些情況下,該端口可以專用于一個(gè)源(例如,端口 44A-44B可以分別專用于圖形控制器38A-38B)。在其它情況下,端口可以在多個(gè)源之間共享(例如,處理器16可以共享CPU端口 44C,NRT外圍設(shè)備20可以共享NRT端口 44D,而例如顯示管26和圖像處理器24的RT外圍設(shè)備22可以共享RT端口 44E)。一個(gè)端口可以耦合到單個(gè)接口,以便與一個(gè)或多個(gè)源通信。因而,當(dāng)源共享一個(gè)接口時(shí),可以在接口的源側(cè)有一個(gè)仲裁器,在源之間進(jìn)行選擇。例如,L2高速緩存18可以為CPU端口 44C充當(dāng)對(duì)內(nèi)存控制器40的仲裁器。端口仲裁器28可以為RT端口 44E充當(dāng)仲裁器,并且類似的端口仲裁器(未示出)可以是用于NRT端口 44D的仲裁器。一個(gè)端口上的單個(gè)源或者一個(gè)端口上的源的組合可以被稱為一個(gè)代理。每個(gè)端口 44A-44E都耦合到一個(gè)接口,以便與其對(duì)應(yīng)的代理通信。接口可以是任何類型的通信介質(zhì)(例如,總線、點(diǎn)到點(diǎn)的互連等)并且可以實(shí)現(xiàn)任何協(xié)議。在有些實(shí)施例中,端口 44A-44E可以全都實(shí)現(xiàn)相同的接口與協(xié)議。在其它實(shí)施例中,不同的端口可以實(shí)現(xiàn)不同的接口和/或協(xié)議。在還有其它實(shí)施例中,內(nèi)存控制器40可以只有一個(gè)端口。在一種實(shí)施例中,每個(gè)源都向由那個(gè)源發(fā)送的每個(gè)內(nèi)存操作分配一個(gè)服務(wù)質(zhì)量(QoS)參數(shù)。QoS參數(shù)可以識(shí)別用于內(nèi)存操作的所請(qǐng)求服務(wù)水平。具有請(qǐng)求更高服務(wù)水平的QoS參數(shù)值的內(nèi)存操作可以比請(qǐng)求較低服務(wù)水平的內(nèi)存操作賦予優(yōu)先權(quán)。每個(gè)內(nèi)存操作都可以包括流ID (FID)0 FID可以將一個(gè)內(nèi)存操作識(shí)別為內(nèi)存操作流的一部分。內(nèi)存操作流通??梢允窍嚓P(guān)的,而來自不同流的內(nèi)存操作,即使是來自相同的源,也可能不是相關(guān)的。FID的一部分(例如,源字段)可以識(shí)別源,而FID的剩余部分可以識(shí)別流(例如,流字段)。因而,F(xiàn)ID可以類似于事務(wù)ID,并且有些源可以簡(jiǎn)單地將事務(wù)ID作為FID發(fā)送。在這種情況下,事務(wù)ID的源字段可以是FID的源字段并且(在來自相同源的事務(wù)之間識(shí)別事務(wù)的)事務(wù)ID的序列號(hào)可以是該FID的流字段。在一些實(shí)施例中,不同的流量類型可以具有不同的QoS參數(shù)定義。即,不同的流量類型可以具有不同的QoS參數(shù)集合。內(nèi)存控制器40可以配置成處理在每個(gè)端口 44A-44E上接收到的QoS參數(shù)并且可以使用相關(guān)的QoS參數(shù)值來關(guān)于來自那個(gè)端口的其它內(nèi)存操作并關(guān)于在其它端口上接收到的其它內(nèi)存操作來調(diào)度在那個(gè)端口上接收到的內(nèi)存操作。更具體地,內(nèi)存控制器40可以配置成比較來自不同QoS參數(shù)集合的QoS參數(shù)(例如,RT QoS參數(shù)與NRT QoS參數(shù))并且可以配置成基于QoS參數(shù)作出調(diào)度決定。在有些實(shí)施例中,內(nèi)存控制器40可以配置成為掛起的內(nèi)存操作升級(jí)QoS水平??梢灾С指鞣N升級(jí)機(jī)制。例如,內(nèi)存控制器40可以配置成響應(yīng)接收到來自同一個(gè)流的、具有指定更高QoS水平的QoS參數(shù)的另一個(gè)內(nèi)存操作而為掛起的流內(nèi)存操作升級(jí)QoS水平。由于利用正常內(nèi)存操作發(fā)送方法發(fā)送的QoS參數(shù)還可以用作同一流中內(nèi)存操作的隱式升級(jí)請(qǐng)求,因此這種形式的QoS升級(jí)可以被稱為帶內(nèi)升級(jí)。內(nèi)存控制器40可以配置成,當(dāng)新接收到的內(nèi)存操作指定更高的QoS水平時(shí),推動(dòng)來自相同端口或源但不是同一個(gè)流的掛起的內(nèi)存操作。作為另一個(gè)例子,內(nèi)存控制器40可以配置成耦合到來自一個(gè)或多個(gè)代理的旁帶接口,并且可以響應(yīng)接收到旁帶接口上的升級(jí)請(qǐng)求而升級(jí)QoS水平。在另一個(gè)例子中,內(nèi)存控制器40可以配置成跟蹤掛起的內(nèi)存操作的相對(duì)年齡。內(nèi)存控制器40可以配置成在某些年齡升級(jí)老化的內(nèi)存操作的QoS水平。升級(jí)發(fā)生的年齡可以依賴于老化的內(nèi)存操作的當(dāng)前QoS參數(shù)。內(nèi)存控制器40可以配置成確定由在端口上接收到的每個(gè)內(nèi)存操作尋址的內(nèi)存通道,并且可以配置成將內(nèi)存操作發(fā)送到對(duì)應(yīng)通道上的內(nèi)存12A-12B。在各種實(shí)施例中,通道的數(shù)目及地址到通道的映射可以變化,并且可以在內(nèi)存控制器中編程。內(nèi)存控制器可以使用映射到同一通道的內(nèi)存操作的QoS參數(shù)來確定發(fā)送到通道中的內(nèi)存操作的次序。處理器16可以實(shí)現(xiàn)任何指令集體系結(jié)構(gòu),并且可以配置成執(zhí)行在那種指令集體系結(jié)構(gòu)中定義的指令。處理器16可以采用任何微體系結(jié)構(gòu),包括標(biāo)量、超標(biāo)量、流水線、超流水線、亂序、有序、投機(jī)、非投機(jī)等或者其組合。處理器16可以包括電路系統(tǒng),并且可選地可以實(shí)現(xiàn)微碼技術(shù)。處理器16可以包括一個(gè)或多個(gè)I級(jí)高速緩存,并且因此高速緩存18是L2高速緩存。其它實(shí)施例可以包括處理器16中的多級(jí)高速緩存,并且高速緩存18可以是層次結(jié)構(gòu)中的下一級(jí)。高速緩存18可以采用任何大小和任何配置(組關(guān)聯(lián)、直接映射等)。圖形控制器38A-38B可以是任何圖形處理電路系統(tǒng)。一般,圖形控制器38A-38B可以配置成將要顯示的對(duì)象提供到幀緩沖區(qū)中。圖形控制器38A-38B可以包括可以執(zhí)行圖形軟件的圖形處理器,以便執(zhí)行圖形操作的一部分或全部,和/或某些圖形操作的硬件加速。硬件加速與軟件實(shí)現(xiàn)的量可以在每一種實(shí)施例之間有變化。
出于性能和/或帶寬原因,NRT外圍設(shè)備20可以包括任何非實(shí)時(shí)的外圍設(shè)備,為這些外圍設(shè)備提供到內(nèi)存12A-12B的獨(dú)立訪問。S卩,NRT外圍設(shè)備20的存取獨(dú)立于CPU塊14,并且可以與CPU塊的內(nèi)存操作并行前進(jìn)。例如外圍設(shè)備32的其它外圍設(shè)備和/或耦合到由外圍接口控制器34控制的外圍設(shè)備接口的外圍設(shè)備也可以是非實(shí)時(shí)的外圍設(shè)備,但可以不需要對(duì)內(nèi)存的獨(dú)立訪問。NRT外圍設(shè)備20的各種實(shí)施例可以包括視頻編碼器和解碼器、縮放/旋轉(zhuǎn)電路系統(tǒng)、圖像壓縮/解壓縮電路系統(tǒng)等。橋/DMA控制器30可以包括將外圍設(shè)備32和外圍接口控制器34橋接到內(nèi)存空間的電路系統(tǒng)。在所說明的實(shí)施例中,橋/DMA控制器30可以通過CPU塊14將來自外圍設(shè)備/外圍接口控制器的內(nèi)存操作橋接到內(nèi)存控制器40。CPU塊14還可以維持被橋接的內(nèi)存操作與來自處理器16/L2高速緩存18的內(nèi)存操作之間的一致性。L2高速緩存18還可以仲裁被橋接的內(nèi)存操作與來自處理器16的內(nèi)存操作,在CPU接口上發(fā)送到CPU端口 44C。橋/DMA控制器30還可以代表外圍設(shè)備32和外圍接口控制器34提供DMA操作,向內(nèi)存或者從內(nèi)存?zhèn)鬏敂?shù)據(jù)塊。更特別地,DMA控制器可以配置成代表外圍設(shè)備32和外圍接口控制器34通過內(nèi)存控制器40執(zhí)行到內(nèi)存12A-12B或者從內(nèi)存12A-12B的傳輸。DMA控制器可以由處理器16編程,以便執(zhí)行DMA操作。例如,DMA控制器可以經(jīng)描述符編程。描述符可以是存儲(chǔ)在內(nèi)存12A-12B中的、描述DMA傳輸(例如,源和目的地地址、大小等)的數(shù)據(jù)結(jié)構(gòu)??蛇x地,DMA控制器可以經(jīng)DMA控制器中的寄存器(未示出)編程。外圍設(shè)備32可以包括·集成電路10上包括的任何期望的輸入/輸出設(shè)備或其它硬件設(shè)備。例如,外圍設(shè)備32可以包括聯(lián)網(wǎng)外圍設(shè)備,例如一個(gè)或多個(gè)聯(lián)網(wǎng)介質(zhì)訪問控制器(MAC),例如以太網(wǎng)MAC或無線保真(WiFi)控制器。包括各種音頻處理設(shè)備的音頻單元可以包括在外圍設(shè)備32當(dāng)中。一個(gè)或多個(gè)數(shù)字信號(hào)處理器可以包括在外圍設(shè)備32當(dāng)中。外圍設(shè)備32可以包括任何其它期望的功能,例如定時(shí)器、片上保密內(nèi)存、加密引擎等或者其任意組合。外圍接口控制器34可以包括用于任何類型外圍接口的任何控制器。例如,外圍接口控制器可以包括各種接口控制器,例如通用串行總線(USB)控制器、外圍組件互連快速(PCIe)控制器、閃存內(nèi)存接口、通用輸入/輸出(I/O)引腳等。內(nèi)存12A-12B可以是任何類型的內(nèi)存,例如動(dòng)態(tài)隨機(jī)存取內(nèi)存(DRAM)、同步DRAM(50狀10、雙數(shù)據(jù)率(001 、DDR2、DDR3等)SDRAM (包括SDRAM的手機(jī)版本,例如mDDR3等,和/ 或 SDRAM 的低功率版本,例如 LPDDR2 等)、RAMBUS DRAM (RDRAM)、靜態(tài) RAM (SRAM)等。一個(gè)或多個(gè)內(nèi)存設(shè)備可以耦合到電路板上,形成例如單列直插內(nèi)存模塊(SIMM)、雙列直插內(nèi)存模塊(DIMM)等的內(nèi)存模塊??蛇x地,設(shè)備可以利用集成電路10在芯片上芯片配置、包上包配置或者多芯片模塊配置中安裝。內(nèi)存PHY42A-42B可以處理到內(nèi)存12A-12B的低級(jí)物理接口。例如,內(nèi)存PHY42A-42B可以負(fù)責(zé)信號(hào)的定時(shí)、負(fù)責(zé)到同步DRAM內(nèi)存的適當(dāng)計(jì)時(shí)等。在一種實(shí)施例中,內(nèi)存PHY42A-42B可以配置成鎖定到在集成電路10中提供的一個(gè)時(shí)鐘并且可以配置成生成由內(nèi)存12使用的時(shí)鐘。應(yīng)當(dāng)指出,其它實(shí)施例可以包括部件的其它組合,包括圖1中所示部件和/或其它部件的子集或超集。盡管在圖1中可能示出了給定部件的一個(gè)實(shí)例,但是其它實(shí)施例可以包括給定部件的一個(gè)或多個(gè)實(shí)例。類似地,貫穿本具體描述,即使只示出了一個(gè)實(shí)例,也可以包括給定部件的一個(gè)或多個(gè)實(shí)例,和/或,即使示出了多個(gè)實(shí)例,也可以使用只包括一個(gè)實(shí)例的實(shí)施例?,F(xiàn)在轉(zhuǎn)向圖2,示出了顯示管26的一種實(shí)施例的框圖。為了耦合到多個(gè)顯示器(這些顯示器可以由未示出的顯示器控制器控制,或者可以直接由對(duì)應(yīng)的顯示管26控制),可以有顯示管26的多個(gè)實(shí)例。如圖2中所示,顯示管26可以包括一個(gè)或多個(gè)用戶接口(UI)單元,在這個(gè)例子中是兩個(gè),示為n050A和M150B。例如視頻單元52的一個(gè)或多個(gè)視頻單元也可以與混合單元54 —起包括在內(nèi)。主機(jī)接口單元(主機(jī)I/F) 64也可以包括在內(nèi)。每個(gè)用戶接口單元50A-50B可以包括緩沖區(qū)56、縮放器58和提取/翻譯單元(提取/TU)60的實(shí)例。緩沖區(qū)56可以耦合成從主機(jī)接口單元64接收?qǐng)D像數(shù)據(jù)并且將數(shù)據(jù)提供給縮放器58??s放器58可以配置成將像素輸出到具有用于混合的alpha值的混合單元54。提取/TU60可以耦合成從主機(jī)接口單元64接收翻譯數(shù)據(jù)并且將內(nèi)存操作提供給主機(jī)接口單元64,用于發(fā)送到端口仲裁器28 (并最終發(fā)送到內(nèi)存控制器40)。視頻單元52可以包括視頻管62和一個(gè)或多個(gè)提取/TU60。例如,對(duì)于視頻序列中的每個(gè)圖像平面,視頻單元52可以包括一個(gè)提取/TU60。這各個(gè)圖像平面可以描述視頻圖像。例如,圖像屏幕可以是色彩平面(例如,紅、綠、藍(lán)或者Y、Cr、Cb)。視頻單元52中的提取/TU60可以耦合成向主機(jī)接口單元64提供內(nèi)存操作并且從其接收翻譯數(shù)據(jù)。視頻管62可以耦合成從主機(jī)接口單元64接收視頻圖像數(shù)據(jù)。提取/TU60中的每個(gè)都可以配置成為對(duì)應(yīng)的圖像處理流水線50A-50B或52提取源圖像數(shù)據(jù)。源圖像可以虛擬尋址,并且提取/TU60可以包括將虛擬地址翻譯成用于讓內(nèi)存操作讀取數(shù)據(jù)的物理地址的翻譯單元。提取/TU60還可以配置成響應(yīng)要顯示的源圖像的初始化并且響應(yīng)源圖像的一個(gè)或多個(gè)虛擬頁(yè)中數(shù)據(jù)處理的完成而生成從內(nèi)存預(yù)取翻譯的內(nèi)存讀操作。翻譯讀操作和圖像數(shù)據(jù)提取讀操作都可以由提取/TU60發(fā)送到主機(jī)接口單元64,該主機(jī)接口單元64將操作發(fā)送到端口仲裁器28。當(dāng)為讀操作返回?cái)?shù)據(jù)時(shí),主機(jī)接口單元64可以標(biāo)記用于接收流水線50A-50B或52的數(shù)據(jù)并且可以指示數(shù)據(jù)是翻譯數(shù)據(jù)還是圖像數(shù)據(jù)。然后,接收單元可以適當(dāng)?shù)夭蹲教崛?TU60或圖像處理流水線中的數(shù)據(jù)。一般,圖像數(shù)據(jù)可以描述要顯示的源圖像。在一種實(shí)施例中,用于用戶接口圖像的圖像數(shù)據(jù)可以包括像素?cái)?shù)據(jù)和用于混合的alpha值。像素?cái)?shù)據(jù)可以描述每個(gè)像素的顏色。像素?cái)?shù)據(jù)可以存儲(chǔ)在緩沖區(qū)56中,并且可以可選地被縮放器58縮放??s放因子可以編程到用戶接口單元50A-50B中,或者可以在圖像數(shù)據(jù)中提供??s放后的像素可以作為輸出像素與alpha值一起提供給混合單元54。在一種實(shí)施例中,用戶接口單元50A-50B可以在源圖像中支持可編程的活動(dòng)區(qū)域。該活動(dòng)區(qū)域可以定義源圖像中要顯示的唯一部分。在一種實(shí)施例中,用戶接口單元50A-50B可以配置成只提取該活動(dòng)區(qū)域中的數(shù)據(jù)。在該活動(dòng)區(qū)域之外,alpha值為零的啞數(shù)據(jù)可以作為像素?cái)?shù)據(jù)傳遞。在一種實(shí)施例中,視頻管62可以接收從內(nèi)存提取的視頻幀數(shù)據(jù)/信息,這些數(shù)據(jù)/信息可以是YCbCr格式,并且可以將隨機(jī)噪聲(抖動(dòng))插入到數(shù)據(jù)中,可選地在垂直和水平方向中的一個(gè)或兩個(gè)縮放數(shù)據(jù),并且將數(shù)據(jù)轉(zhuǎn)換到RGB色彩空間,用于與來自用戶接口單元50A-50B的其它圖像數(shù)據(jù)混合?;旌蠁卧?4可以從用戶接口單元50A-50B和視頻單元52接收像素幀,并且可以配置成將它們一層一層地混合到一起。最終的結(jié)果像素可以在輸出FIFO中排隊(duì)并且可以由顯示器控制器提取?;旌蠁卧?4中最低級(jí)的一層可以定義為背景顏色。層I可以與層
O混合。下一層,層2,可以與混合后的層O和I混合,以此類推,直到所有的層都混合。圖3是說明虛擬地址空間中用于顯示管26的源緩沖區(qū)70的框圖。源緩沖區(qū)70可以通過源基地址72在虛擬地址空間中定位。在所說明的實(shí)施例中,源緩沖區(qū)70可以布置成作為一組圖像塊(tile)74。在其它實(shí)施例中,源緩沖區(qū)70可以布置在掃描線中,或者可以可編程成在掃描線和塊布置之間選擇。在塊布置中,在移動(dòng)到下一個(gè)塊之前,塊中的像素存儲(chǔ)在連續(xù)的虛擬內(nèi)存位置中。這下一個(gè)塊可以是下一個(gè)水平相鄰的塊,直到到達(dá)源緩沖區(qū)70寬度的末端(例如,圖3中的塊N-1)并且下一個(gè)塊是下一行塊中的初始?jí)K(例如,圖3中的塊N)。在掃描線布置中,在移動(dòng)到下一行之前,跨源緩沖區(qū)70寬度的一行像素存儲(chǔ)在連續(xù)的內(nèi)存位置中。例如,如果圖像可以壓縮或者從壓縮圖像解壓縮的話,可以使用塊布置。例如,許多壓縮算法是通過比較塊并且存儲(chǔ)一個(gè)塊與下一個(gè)塊之間的差別來操作的。在例如圖3所示的塊布置中,在每個(gè)虛擬頁(yè)中可以存儲(chǔ)一個(gè)或多個(gè)塊。塊的大小可以關(guān)于塊的寬度(TW)和塊的高度(TH)來測(cè)量。在一種實(shí)施例中,塊的寬度是以字節(jié)測(cè)量的并且塊的高度是以像素行測(cè)量的。雖然在其它例子中也可以使用塊寬度和高度中一個(gè)或兩個(gè)的更大和更小尺寸,但是,在一個(gè)例子中,塊的寬度可以是256字節(jié)而塊的高度可以是16行。在這個(gè)例子中,每個(gè)塊是一個(gè)4千字節(jié)的頁(yè),并且因此,如果虛擬頁(yè)的大小是4千字節(jié)的話,每個(gè)塊對(duì)應(yīng)于一個(gè)翻譯。在其它實(shí)施例中,一個(gè)虛擬頁(yè)可以包括多個(gè)塊或者一個(gè)塊可以在多個(gè)頁(yè)上延伸。在源緩沖區(qū)70中,可以定義縮放區(qū)76??s放區(qū)76可以是要顯示的源圖像。源緩沖區(qū)70可以是系統(tǒng)中支持的最大尺寸的圖像,并且圖像可以是小于或等于該最大值的任何尺寸。這么稱呼縮放區(qū)域是因?yàn)樵磮D像可以被圖像處理流水線中的縮放器縮放,如以上所討論的。源基地址72,以及縮放區(qū)76的位置與大小,可以編程到圖像處理流水線中。如圖3中所說明的,跨源緩沖區(qū)70寬度的塊數(shù)目可以是N,其中N是整數(shù)。例如,在一種實(shí)施例中,如果塊寬度為256字節(jié)的話,源緩沖區(qū)70可以是4千字節(jié)寬而N可以是16。在其它實(shí)施例中,其它寬度也可以使用。圖4說明了當(dāng)啟動(dòng)縮放區(qū)域76的提取時(shí)的源緩沖區(qū)70和縮放區(qū)76。提取/TU60可以預(yù)取前2N個(gè)翻譯,從包括要提取的縮放區(qū)76的第一個(gè)像素的塊開始。在圖4的例子中,初始?jí)K是塊2N+1并且因此前2N個(gè)塊的最后一個(gè)塊(及翻譯)是塊4N。這些塊在圖4中用點(diǎn)線說明,以便說明最初預(yù)取的翻譯。圖4還說明了在完成第一行塊之后(箭頭80)之后在處理中隨后的一個(gè)點(diǎn)的源緩沖區(qū)70和縮放區(qū)76。在這個(gè)點(diǎn),提取/TU60已經(jīng)完成了塊2N+1至3N-1內(nèi)的像素的提取。相應(yīng)地,這些翻譯已經(jīng)與用于塊3N的翻譯一起失效了。相應(yīng)地,預(yù)取了用于塊4N+1至塊5N的翻譯。提取/TU60可以配置成預(yù)取2N個(gè)翻譯(其中N是跨源緩沖區(qū)70寬度的塊的數(shù)目),以便允許提取/TU60的提取與塊之間的失配。例如,在一種實(shí)施例中,提取/TU60可以配置成一次從源緩沖區(qū)70提取5行。相應(yīng)地,在任何給定的點(diǎn),提取可能同時(shí)包括兩行塊。一旦當(dāng)前行的最后一個(gè)塊已經(jīng)被完全提取,那一行的翻譯就可以丟棄并且用于下兩行的翻譯可以經(jīng)翻譯的預(yù)取變得可用(或者將近可用)。相應(yīng)地,在許多情況下,圖像數(shù)據(jù)提取可能不經(jīng)歷任何翻譯錯(cuò)失。應(yīng)當(dāng)指出,在圖4的例子中,每一行中的第一個(gè)塊都不使用。即,圖像處理流水線可以只提取縮放區(qū)76中的數(shù)據(jù)。相應(yīng)地,用于每一行中第一個(gè)塊的翻譯可能是不需要的。一般,依賴于源緩沖區(qū)70和縮放區(qū)76的定義,在每一行中可以存在一個(gè)或多個(gè)不需要的翻譯。在有些實(shí)施例中,提取/TU60可以避免為不被使用的塊提取翻譯。在其它實(shí)施例中,提取/TU60可以簡(jiǎn)單地提取每個(gè)翻譯(由于提取不使用的翻譯的附加帶寬可能是相對(duì)小的)。圖5是提取/TU60的一種實(shí)施例的框圖。在圖5的實(shí)施例中,提取/TU60包括翻譯單元90 (包括翻譯控制單元90A和翻譯緩沖區(qū)內(nèi)存90B)、提取控制單元92和一組配置寄存器94。提取控制單元92和翻譯控制單元90A可以耦合到配置寄存器94。提取控制單元92可以進(jìn)一步耦合到主機(jī)接口單元64和翻譯控制單元90A。翻譯控制單元90A可以耦合到翻譯緩沖區(qū)內(nèi)存90B,并且翻譯控制單元90A和翻譯緩沖區(qū)內(nèi)存90B都可以耦合成從主機(jī)接口單元64接收數(shù)據(jù)。一般,提取控制單元92可以配置成(代表翻譯控制單元90A)生成用于圖像數(shù)據(jù)提取內(nèi)存操作和用于翻譯數(shù)據(jù)提取操作的提取請(qǐng)求。在其它實(shí)施例中,翻譯控制單元90A可以將翻譯數(shù)據(jù)提取請(qǐng)求經(jīng)獨(dú)立的連接發(fā)送到主機(jī)接口單元64。由于提取控制單元92提取圖像數(shù)據(jù),因此提取控制單元92可以配置成將虛擬頁(yè)地址(圖5中的VA)發(fā)送到翻譯控制單元90A。翻譯控制單元90A可以配置成從翻譯緩沖區(qū)內(nèi)存90B讀取對(duì)應(yīng)的條目(圖5中的Read A),并且內(nèi)存可以從對(duì)應(yīng)的條目返回物理地址和有效位(圖5中的Read PA,V)。翻譯控制單元90A可以配置成檢查翻譯是否有效,并且在翻譯無效的情況下可以將頁(yè)面錯(cuò)誤(PF)或者在翻譯有效的情況下將物理地址(PA)返回到提取控制單元92。在其它實(shí)施例中,例如許可控制的附加翻譯屬性也可以被檢查并且如果翻譯無效或者屬性不允許訪問的話就可以發(fā)信號(hào)通知頁(yè)面錯(cuò)誤。此外,當(dāng)提取控制單元92啟動(dòng)新源圖像的提取時(shí),提取控制單元92可以配置成發(fā)送初始虛擬地址并且可以發(fā)信號(hào)通知新源圖像的起始(圖5中的Start)。響應(yīng)新源圖像的起始,翻譯控制單元90A可以配置成清除翻譯緩沖區(qū)90B并且以對(duì)所述初始虛擬地址的翻譯開始啟動(dòng)對(duì)翻譯的預(yù)取。提取控制單元92可以進(jìn)一步配置成發(fā)送指示來自給定虛擬頁(yè)的數(shù)據(jù)提取完成的釋放指示(圖5中的Free)。翻譯控制單元90A可以配置成使翻譯緩沖區(qū)內(nèi)存90B中的對(duì)應(yīng)翻譯失效并預(yù)取與最近提取的虛擬地址連續(xù)的附加翻譯。翻譯控制單元90A可以配置為其預(yù)取了翻譯的存儲(chǔ)最近的虛擬地址(MstRcntVA寄存器96),以便生成附加地翻譯預(yù)取。在一種實(shí)施例中,釋放指示可以是可以一次斷言釋放一個(gè)翻譯,最老的第一個(gè),的信號(hào)。在另一種實(shí)施例中,釋放指示可以是被釋放的多個(gè)最老翻譯的計(jì)數(shù)。在還有其它實(shí)施例中,可以提供被釋放的頁(yè)的虛擬地址。在一種實(shí)施例中,翻譯控制單元90A可以配置成將翻譯緩沖區(qū)內(nèi)存90B作為先進(jìn)先出(FIFO)緩沖區(qū)來管理。相應(yīng)地,可以(例如,在寄存器98中)維持指向內(nèi)存90B的頭和尾指針。翻譯控制單元90A可以配置成生成填充內(nèi)存90B的預(yù)取(圖5中的Pref)。當(dāng)預(yù)取數(shù)據(jù)由主機(jī)接口單元64返回時(shí),翻譯控制單元90A可以配置成生成寫地址(圖5中的WriteA),以便更新翻譯緩沖區(qū)內(nèi)存90B。翻譯緩沖區(qū)內(nèi)存90B通??梢园ú贾玫揭唤M條目中的任何類型的內(nèi)存(例如,隨機(jī)存取內(nèi)存、一組寄存器或者觸發(fā)器等)。每個(gè)條目可以存儲(chǔ)一個(gè)翻譯(例如,在所說明的實(shí)施例中是PA和有效位,在其它實(shí)施例中有可能是其它屬性)。相應(yīng)地,在一種實(shí)施例中,翻譯緩沖區(qū)90B可以包括2N個(gè)條目。在有些實(shí)施例中,翻譯的虛擬頁(yè)號(hào)也可以保存在條目中,并且來自提取控制單元92的虛擬地址可以針對(duì)內(nèi)存90B凸動(dòng)(cam),以便檢測(cè)命中(或者預(yù)期命中的條目可以被讀出并且虛擬地址可以與來自該條目的虛擬頁(yè)號(hào)進(jìn)行比較)。配置寄存器94可以存儲(chǔ)提取/TU60中的各種可編程值。例如,源基地址72(虛擬地址)可以存儲(chǔ)在寄存器94中。一個(gè)或多個(gè)頁(yè)表基地址(物理地址)也可以存儲(chǔ)在寄存器94中。每個(gè)頁(yè)表基地址可以在內(nèi)存中定位一個(gè)頁(yè)表。例如,在圖5的實(shí)施例中,支持三個(gè)頁(yè)表基地址:頁(yè)表基地址零(PTBaseO)、PTBasel和PTBase2。提取/TU60支持的頁(yè)表數(shù)目可以基于源緩沖區(qū)70所支持的最大尺寸。例如,每個(gè)頁(yè)表的大小可以是一頁(yè),并且可以存儲(chǔ)指定數(shù)量的翻譯。因而,可以被最大可能的源緩沖區(qū)70覆蓋的數(shù)目除以一個(gè)頁(yè)表中可以存儲(chǔ)的翻譯數(shù)目可以指示由提取/TU60支持的頁(yè)表數(shù)目。其它實(shí)施例可以支持少于最大數(shù)目的頁(yè)表基地址,并且寄存器94可以在處理源圖像的時(shí)候更新。連同提供翻譯數(shù)據(jù)的指示(Data V)—起,翻譯控制單元90A可以耦合成接收由主機(jī)接口 64提供的翻譯數(shù)據(jù)的有效位。翻譯控制單元90A可以檢測(cè)提供了翻譯并且作為響應(yīng)可以更新翻譯內(nèi)存90B。圖6是說明提取控制單元92的一種實(shí)施例的某些操作的流程圖。盡管為了方便理解,在圖6中方框是以特定次序示出的,但是其它次序也可以使用。在提取控制單元92中的組合邏輯中,方框可以并行地執(zhí)行。方框、方框的組合和/或作為整體的流程圖可以在多個(gè)時(shí)鐘循環(huán)上流水作業(yè)。提取控制單元92可以配置成實(shí)現(xiàn)圖6中所示的操作。如果提取控制單元92正在準(zhǔn)備提取縮放區(qū)76中的初始虛擬地址(例如,源圖像的第一個(gè)像素或塊-決定塊100,“是”分支),那么提取控制單元92就可以配置成向翻譯控制單元90A發(fā)信號(hào)通知開始(塊102)。提取控制單元92可以配置成將初始虛擬地址發(fā)送到翻譯控制單元90A,進(jìn)行翻譯(塊104)。在虛擬地址不是初始虛擬地址的情況下,可以不發(fā)信號(hào)通知開始,但該虛擬地址仍然可以發(fā)送,進(jìn)行翻譯(決定塊100,“否”分支和塊104)。如果翻譯導(dǎo)致頁(yè)面錯(cuò)誤(響應(yīng)該虛擬地址而由翻譯控制控制單元90A向提取控制單元92發(fā)信號(hào)通知-決定塊106,“是”分支),那么提取控制單元92就可以配置成向一個(gè)處理器16發(fā)送中斷(塊108)并且可以停止提取數(shù)據(jù)。提取控制單元92可以包括存儲(chǔ)未成功翻譯的虛擬地址的寄存器??蛇x地,翻譯控制單元90A可以包括該寄存器,或者可以配置成重寫寄存器96中具有錯(cuò)誤虛擬地址的最近的VA。如果翻譯沒有導(dǎo)致頁(yè)面錯(cuò)誤(決定塊106,“否”分支),那么提取控制單元92就可以從翻譯控制單元90A接收物理地址(PA)并且可以配置成利用該P(yáng)A發(fā)送提取請(qǐng)求(塊110)。在有些實(shí)施例中,提取控制單元92可以配置成保留來自翻譯的PA并且可以生成物理頁(yè)面中的提取,直到提取控制單元92到達(dá)該頁(yè)面的末端。在其它實(shí)施例中,提取控制單元92可以每次都重新讀取該翻譯,用于物理頁(yè)面中的提取。提取控制單元92可以配置成檢測(cè)何時(shí)提取到達(dá)物理頁(yè)面的末端(決定塊112,“是”分支),并且可以向翻譯控制單元90A發(fā)信號(hào)釋放,使得翻譯控制單元90A可以使對(duì)應(yīng)的翻譯失效并預(yù)取新的翻譯(塊114)。在另一種實(shí)施例中,在發(fā)信號(hào)釋放多個(gè)頁(yè)之前,提取控制單元92可以累積多個(gè)釋放頁(yè)。在還有另一種實(shí)施例中,翻譯控制單元90A可以在發(fā)布另一個(gè)翻譯預(yù)先提取請(qǐng)求之前累計(jì)多個(gè)釋放。提取控制單元92還可以配置成發(fā)布用于翻譯和提取生成的另一個(gè)VA (塊104)。如果縮放區(qū)76的提取沒有完成(決定塊116,“否”分支),那么提取控制單元92就可以配置成從PA生成附加的提取(塊110 )。圖7是說明提取控制單元92的一種實(shí)施例的某些附加操作的流程圖。盡管為了方便理解,在圖7中方框是以特定次序示出的,但是其它次序也可以使用。在提取控制單元92中的組合邏輯中,方框可以并行地執(zhí)行。方框、方框的組合和/或作為整體的流程圖可以在多個(gè)時(shí)鐘循環(huán)上流水作業(yè)。提取控制單元92可以配置成實(shí)現(xiàn)圖7中所示的操作。響應(yīng)接收到翻譯預(yù)取請(qǐng)求(決定塊120,“是”分支),提取控制單元92可以配置成發(fā)送頁(yè)表讀請(qǐng)求,以便讀取一個(gè)或多個(gè)頁(yè)表?xiàng)l目(塊122)。頁(yè)表?xiàng)l目可以包括對(duì)應(yīng)于由翻譯控制單元90A預(yù)取的最近虛擬地址的下一個(gè)連續(xù)虛擬頁(yè)的頁(yè)表?xiàng)l目。附加的頁(yè)表?xiàng)l目也可以被讀取。在一種實(shí)施例中,連續(xù)的虛擬地址可以尋址頁(yè)表中連續(xù)的頁(yè)表?xiàng)l目。相應(yīng)地,一次預(yù)取多個(gè)頁(yè)表?xiàng)l目可以預(yù)取在不久的將來翻譯單元90可能需要的多個(gè)翻譯。接下來轉(zhuǎn)向圖8,示出了說明翻譯控制單元90A的一種實(shí)施例的某些操作的流程圖。盡管為了方便理解,在圖8中方框是以特定次序示出的,但是其它次序也可以使用。在翻譯控制單元90A中的組合邏輯中,方框可以并行地執(zhí)行。方框、方框的組合和/或作為整體的流程圖可以在多個(gè)時(shí)鐘循環(huán)上流水作業(yè)。翻譯控制單元90A可以配置成實(shí)現(xiàn)圖8中所示的操作。如果翻譯控制單元90A從提取控制單元92接收到釋放指示(決定塊130,“是”分支),那么翻譯控制單元90A就可以配置成使翻譯緩沖區(qū)90B中的一個(gè)或多個(gè)翻譯失效(塊132)。例如,在一種實(shí)施例中,翻譯控制單元90A可以配置成將翻譯緩沖區(qū)90B作為FIFO來管理。在這種實(shí)施例中,緩沖區(qū)中最老的翻譯可以在FIFO的尾指針。翻譯控制單元90A可以配置成為與為其預(yù)取了虛擬頁(yè)的最近虛擬頁(yè)面相鄰(或連續(xù)的)虛擬頁(yè)生成翻譯預(yù)取請(qǐng)求(塊134)。如以上所討論的,最新的虛擬地址可以在寄存器96中。依賴于有多少頁(yè)是空閑的,可以生成一個(gè)或多個(gè)預(yù)取。一般,翻譯控制單元90A可以配置成預(yù)取足夠多的翻譯,來填充翻譯緩沖區(qū)90B。翻譯控制單元90A還可以配置成更新寄存器96中的最近虛擬地址(塊136)。在一種實(shí)施例中,翻譯控制單元90A可以配置成延遲發(fā)布翻譯預(yù)取請(qǐng)求,直到多個(gè)翻譯預(yù)取都準(zhǔn)備好被發(fā)布。響應(yīng)從提取控制單元92接收到具有虛擬地址的起始指示(決定塊138,“是”分支),翻譯控制單元90A可以配置成清除翻譯緩沖區(qū)90B并預(yù)取以該虛擬地址開始的2N個(gè)翻譯(其中N是一行中塊的數(shù)目或者一行中像素塊的數(shù)目)(塊140)。翻譯控制單元90A還可以配置成更新具有對(duì)應(yīng)于這2N個(gè)翻譯中最后一個(gè)的VA的最近VA寄存器96 (塊142)。否則,響應(yīng)沒有為其提供起始指示的翻譯請(qǐng)求(決定塊138,“否”分支),翻譯控制單元90A可以配置成從翻譯緩沖區(qū)讀取用于所述VA的對(duì)應(yīng)翻譯(塊144)。如果翻譯有效(決定塊146,“是”分支),那么翻譯控制單元90A就可以配置成將來自對(duì)應(yīng)翻譯的PA提供給提取控制單元92 (塊148)。如果翻譯無效(決定塊,“否”分支),那么翻譯控制單元90A就可以配置成向提取控制單元92發(fā)信號(hào)通知有頁(yè)面錯(cuò)誤(塊150)。應(yīng)當(dāng)指出,在有些實(shí)施例中,除了有效位之外,由翻譯單元90使用的翻譯還可以包括一個(gè)或多個(gè)保護(hù)/控制屬性。例如,這種屬性可以包括讀許可和寫許可。如果沒有提供讀許可,翻譯可能不被允許讀取。許可可以基于特權(quán)等級(jí)。可以提供并檢查任何的屬性集合。如果檢查通過了,就可以提供PA。如果檢查失敗了,就可以發(fā)信號(hào)通知頁(yè)面錯(cuò)誤。接下來轉(zhuǎn)向圖9,示出了內(nèi)存12 (它可以跨圖1實(shí)施例中的內(nèi)存12A-12B)的一種實(shí)施例的框圖。內(nèi)存12可以存儲(chǔ)各種頁(yè)表160A-160C,每個(gè)頁(yè)表可以由對(duì)應(yīng)的頁(yè)表基地址(圖9中的PTBaseO、PTBasel和PTBase2)定位。在這種實(shí)施例中,每個(gè)頁(yè)表160A-160C可以包括一組翻譯條目,每個(gè)翻譯條目都可以在內(nèi)存12中定位一個(gè)塊。因而,物理地址PAO可以定位塊0162A、PA1可以定位塊1162B,等等。源緩沖區(qū)70中頁(yè)面(例如,在這種實(shí)施例中的塊)的連續(xù)VA可以由給定頁(yè)表160A-160C中的連續(xù)翻譯來翻譯。當(dāng)頁(yè)表160A-160B中的最后一個(gè)翻譯被提取時(shí),下一個(gè)連續(xù)的翻譯可以分別是下一個(gè)頁(yè)表160B-160C中的第一個(gè)翻譯。接下來轉(zhuǎn)向圖10,示出了系統(tǒng)350的一種實(shí)施例的框圖。在所說明的實(shí)施例中,系統(tǒng)350包括耦合到外部?jī)?nèi)存12 (例如,圖1中的內(nèi)存12A-12B)的集成電路10的至少一個(gè)實(shí)例。集成電路10耦合到一個(gè)或多個(gè)外圍設(shè)備354和外部?jī)?nèi)存12。還提供了電源356,電源356為集成電路10提供電壓,及為內(nèi)存12和/或外圍設(shè)備354提供一個(gè)或多個(gè)供電電壓。在有些實(shí)施例中,可以包括集成電路10的多于一個(gè)實(shí)例(并且也可以包括多于一個(gè)外部?jī)?nèi)存12)。依賴于系統(tǒng)350的類型,外圍設(shè)備354可以包括任何期望的電路系統(tǒng)。例如,在一種實(shí)施例中,系統(tǒng)350可以是移動(dòng)設(shè)備(例如,個(gè)人數(shù)字助理(PDA)、智能電話等)并且外圍設(shè)備354可以包括用于各種類型無線通信的設(shè)備,例如wif1、藍(lán)牙、蜂窩、全球定位系統(tǒng)等。外圍設(shè)備354還可以包括附加的存儲(chǔ)器,包括RAM存儲(chǔ)器、固態(tài)存儲(chǔ)器或盤存儲(chǔ)器。外圍設(shè)備354可以包括用戶接口設(shè)備,例如包括觸摸顯示屏幕或多觸摸顯示屏幕在內(nèi)的顯示屏幕、鍵盤或其它輸入設(shè)備、麥克風(fēng)、揚(yáng)聲器等。在其它實(shí)施例中,系統(tǒng)350可以是任何類型的計(jì)算系統(tǒng)(例如,臺(tái)式個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、工作站、迷你機(jī)(net top)等)?!┩耆斫饬艘陨系墓_內(nèi)容,各種變體與修改將對(duì)本領(lǐng)域技術(shù)人員變得明顯。以下權(quán)利要求應(yīng)當(dāng)解釋為涵蓋所有這種變體與修改。
權(quán)利要求
1.一種翻譯單元,包括: 內(nèi)存,包括多個(gè)條目,每個(gè)條目配置成存儲(chǔ)用于圖像數(shù)據(jù)的源緩沖區(qū)中的不同虛擬頁(yè)的翻譯;及 控制電路,耦合到所述內(nèi)存,其中該控制電路耦合成接收識(shí)別源緩沖區(qū)中對(duì)其的處理已經(jīng)完成的一個(gè)或多個(gè)虛擬頁(yè)的指示,并且其中控制電路配置成從存儲(chǔ)器丟棄由該指示指示的一個(gè)或多個(gè)虛擬頁(yè)的翻譯并且為源緩沖區(qū)中的其它虛擬頁(yè)預(yù)取附加翻譯,其中其它虛擬頁(yè)包括與源緩沖區(qū)中第二虛擬頁(yè)相鄰的第一虛擬頁(yè),并且其中用于第二虛擬頁(yè)的翻譯是存儲(chǔ)在所述內(nèi)存中的翻譯的最近提取的翻譯。
2.如權(quán)利要求1所述的翻譯單元,其中控制電路耦合成接收指示處理正開始來自源緩沖區(qū)的圖像數(shù)據(jù)處理的起動(dòng)指示,其中翻譯單元配置成響應(yīng)該起動(dòng)指示而清除內(nèi)存中的翻譯。
3.如權(quán)利要求2所述的翻譯單元,其中控制電路配置成為來自源緩沖區(qū)的多個(gè)連續(xù)的虛擬頁(yè)預(yù)取翻譯,其中連續(xù)虛擬頁(yè)的數(shù)目等于內(nèi)存中多個(gè)條目的數(shù)目。
4.如權(quán)利要求3所述的翻譯單元,其中所述數(shù)目是一行源緩沖區(qū)中虛擬頁(yè)的數(shù)目的兩倍。
5.—種顯不管,包括: 多個(gè)圖像處理流水線,其中所述多個(gè)圖像處理流水線中的每個(gè)圖像處理流水線包括配置成為那個(gè)圖像處理流水線提取圖像數(shù)據(jù)的提取/內(nèi)存管理單元,并且其中該提取/內(nèi)存管理單元配置成預(yù)取多個(gè)翻譯以翻譯圖像數(shù)據(jù)的地址,其中所述多個(gè)翻譯翻譯被提取的圖像中的至少兩行塊;及 主機(jī)接口,耦合到所述多個(gè)圖像處理流水線,所述流水線配置成將用于所述多個(gè)翻譯的預(yù)取操作和用于圖像數(shù)據(jù)的提取操作發(fā)送到內(nèi)存。
6.如權(quán)利要求5所述的顯示管,其中所述多個(gè)圖像處理流水線包括至少一個(gè)配置成提取靜止圖像的用戶接口單元。
7.如權(quán)利要求6所述的顯示管,其中所述多個(gè)圖像處理流水線包括至少一個(gè)配置成提取視頻序列的幀的視頻流水線。
8.如權(quán)利要求7所述的顯示管,其中所述至少一個(gè)視頻流水線包括多個(gè)提取/內(nèi)存管理單元,所述多個(gè)提取/內(nèi)存管理單元中的每個(gè)對(duì)應(yīng)于不同的圖像平面。
9.一種裝置,包括: 端口接口單元,配置成接口到內(nèi)存控制器; 圖像處理器; 翻譯單元,耦合到所述圖像處理器并且配置成高速緩存用于圖像處理器的最近使用的翻譯,其中該翻譯單元耦合成從圖像處理器接收內(nèi)存操作并且翻譯內(nèi)存操作中的虛擬地址,并且其中該翻譯單元還配置成將具有經(jīng)翻譯的地址的內(nèi)存操作發(fā)送到端口接口單元;及 顯示管,耦合到 所述端口接口單元,以提取圖像數(shù)據(jù)用于顯示,其中顯示管包括一個(gè)或多個(gè)配置成為存儲(chǔ)圖像數(shù)據(jù)的多個(gè)虛擬頁(yè)預(yù)取翻譯的流翻譯單元,其中該流翻譯單元配置成丟棄顯示管已經(jīng)完成處理的虛擬頁(yè)的翻譯并且預(yù)取一個(gè)或多個(gè)附加翻譯,其中顯示管耦合到端口接口單元,以發(fā)送用于圖像數(shù)據(jù)的提取請(qǐng)求和讀取翻譯數(shù)據(jù)的請(qǐng)求。
10.如權(quán)利要求9所述的裝置,其中所述翻譯單元配置成,響應(yīng)翻譯單元中的錯(cuò)過,提取用于所述錯(cuò)過的翻譯和高速緩存該翻譯。
11.如權(quán)利要求9所述的裝置,其中所述附加翻譯與流翻譯單元中最近預(yù)取的翻譯是連續(xù)的。
12.如權(quán)利要求9所述的裝置,其中由給定流翻譯單元預(yù)取的多個(gè)虛擬頁(yè)包括正在被處理的源圖像中的至少兩行虛擬頁(yè)。
13.如權(quán)利要求9所述的裝置,其中圖像數(shù)據(jù)被布置作為圖像數(shù)據(jù)的塊,并且其中所述多個(gè)虛擬頁(yè)中的每個(gè)虛擬頁(yè)存儲(chǔ)一個(gè)塊。
14.一種方法,包括: 將多個(gè)翻譯預(yù)取到配置成處理圖像數(shù)據(jù)進(jìn)行顯示的顯示管中,其中所述多個(gè)翻譯是用于源緩沖區(qū)中包括圖像的虛擬頁(yè); 關(guān)于所述多個(gè)翻譯中的一個(gè)或多個(gè)接收處理完成的指示;及 預(yù)取一個(gè)或多個(gè)附加翻譯,其中所述附加翻譯中的第一翻譯與內(nèi)存中的頁(yè)表中的所述多個(gè)翻譯的最近提取的翻譯相鄰。
15.如權(quán)利要求14所述的方法,其中所述一個(gè)或多個(gè)附加翻譯是至少兩個(gè)翻譯,并且其中所述至少兩個(gè)翻譯在內(nèi)存中的頁(yè)表中是連續(xù)的。
16.如權(quán)利要求15所述的方法,其中所述多個(gè)翻譯在內(nèi)存中的頁(yè)表中是連續(xù)的。
17.如權(quán)利要求14所述的方法,其中所述多個(gè)翻譯的數(shù)目至少足以預(yù)取源緩沖區(qū)中的兩行虛擬頁(yè)。
18.如權(quán)利要求14所述的方法,還包括: 接收指示顯示管開始源緩沖區(qū)處理的起動(dòng)指示;及 從顯示管中的翻譯單元清除翻譯并且響應(yīng)該起動(dòng)指示而預(yù)取多個(gè)翻譯。
全文摘要
本公開涉及顯示管中的流翻譯。在一種實(shí)施例中,顯示管包括對(duì)應(yīng)于該顯示管正在讀取用于顯示的圖像的一個(gè)或多個(gè)翻譯單元。每個(gè)翻譯單元可以配置成在圖像數(shù)據(jù)的提取之前預(yù)取翻譯,這可以防止顯示管中的翻譯錯(cuò)過(至少在大部分情況下)。翻譯單元可以按先進(jìn)先出(FIFO)方式維持翻譯,并且,當(dāng)給定的一個(gè)或多個(gè)翻譯不再需要時(shí),顯示管提取硬件可以通知翻譯單元。翻譯單元可以使識(shí)別的翻譯失效并且為與最近預(yù)取的虛擬頁(yè)連續(xù)的虛擬頁(yè)預(yù)取附加翻譯。
文檔編號(hào)G09G5/36GK103221995SQ201180055652
公開日2013年7月24日 申請(qǐng)日期2011年11月4日 優(yōu)先權(quán)日2010年11月19日
發(fā)明者J·P·布拉特, P·F·霍蘭德 申請(qǐng)人:蘋果公司