專利名稱:使用翻譯表模擬的數(shù)據(jù)處理設(shè)備和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)處理系統(tǒng),更具體地講,涉及一種用于通過使用翻譯表模擬來有效地處理數(shù)據(jù)的改進(jìn)的數(shù)據(jù)處理系統(tǒng)和方法。
背景技術(shù):
已經(jīng)極大地增加了個人計(jì)算機(jī)系統(tǒng)中的基本存儲器的容量從而處理多媒體數(shù)據(jù)的存儲。然而,為了將歸應(yīng)于增加的容量的性能最大化,有必要有效地管理基本存儲器。已將傳統(tǒng)的通用處理器設(shè)計(jì)為包括用于有效地管理大容量的存儲器的功能。在本領(lǐng)域中將該功能稱為存儲器管理單元(MMU),并且普遍地將其以單獨(dú)的功能塊實(shí)現(xiàn)。
MMU一般為管理虛擬存儲器系統(tǒng)的硬件裝置。雖然通常被構(gòu)建為中央處理單元(CPU)的一部分,但是MMU也可以被設(shè)計(jì)成為單獨(dú)的芯片。首先將指令讀取數(shù)據(jù)的命令傳輸?shù)組MU來確定可直接從隨機(jī)存取存儲器(RAM)讀取還是必須從硬盤提取。如果所述數(shù)據(jù)沒有被存儲在RAM中,則MMU產(chǎn)生指示已發(fā)生頁錯誤的中斷。
利用MMU來訪問虛擬地址的傳統(tǒng)的處理器執(zhí)行初始化處理程序來將所有的虛擬地址與相應(yīng)的物理地址匹配,創(chuàng)建翻譯表。即使所述程序采用最簡單的映射方法,也必須個別地初始化所有的地址。需要大量的程序資源來對所有的地址初始化,并且根據(jù)所使用的程序,可能需要300ms來完成。一般地將所述翻譯表載入外部存儲器。然而,可將部分翻譯表以高速緩存器的形式載入內(nèi)部存儲器。翻譯表具有將虛擬地址映射到相應(yīng)的物理地址所需的數(shù)據(jù)列表。直接地訪問載入外部存儲器中的翻譯表需要額外的訪問時(shí)間和大量的代碼來驅(qū)動翻譯表。由于翻譯表很大,所以系統(tǒng)可用的存儲更小。因此,需要產(chǎn)生翻譯表數(shù)據(jù)和物理地址而不訪問載入外部存儲器的翻譯表。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的示例性實(shí)施例,提供一種數(shù)據(jù)處理系統(tǒng),包括中央處理單元(CPU)、存儲器管理單元(MMU)和翻譯表模擬(TTE)模塊。所述CPU輸出虛擬地址。所述MMU產(chǎn)生對應(yīng)于所述虛擬地址的翻譯表地址,并且通過使用描述符而將所述虛擬地址變換為物理地址。所述翻譯表模擬模塊接收所述翻譯表地址,并且產(chǎn)生將所述虛擬地址映射為所述物理地址所需的描述符。
根據(jù)本發(fā)明的示例性實(shí)施例,提供一種數(shù)據(jù)處理系統(tǒng),包括存儲器管理單元(MMU)和翻譯表模擬模塊。所述MMU通過使用具有多個屬性值的描述符來將虛擬地址變換為物理地址。所述翻譯表模擬模塊接收基于所述虛擬地址的翻譯表地址,并且基于通過所述翻譯表地址設(shè)置所述屬性值來產(chǎn)生所述描述符。
所述翻譯表模擬模塊可包括輸出預(yù)定的起始地址的起始地址寄存器、操作單元、解碼器和字段產(chǎn)生器。所述操作單元從所述起始地址和所述翻譯表地址的低位地址計(jì)算區(qū)域基地址。所述解碼器輸出對應(yīng)于所述翻譯表地址的高位地址的高速緩存器值和緩沖器值。所述字段產(chǎn)生器,基于所述高速緩存器值、緩沖器值和區(qū)域基地址來產(chǎn)生所述描述符。
根據(jù)本發(fā)明的示例性實(shí)施例,提供一種處理數(shù)據(jù)的方法,該方法包括產(chǎn)生對應(yīng)于虛擬地址的翻譯表地址;基于所述翻譯表地址來設(shè)置多個屬性值,并且產(chǎn)生包括所述屬性值的描述符;通過使用所述描述符來將所述虛擬地址變換為物理地址;和通過使用所述物理地址來訪問數(shù)據(jù)。
通過下面結(jié)合附圖,對示例性實(shí)施例的進(jìn)行的詳細(xì)描述,本發(fā)明的上述和其他方面將會變得更加清楚,其中圖1是根據(jù)本發(fā)明的示例性實(shí)施例的數(shù)據(jù)處理系統(tǒng)的示意性方框圖;圖2是示出圖1的數(shù)據(jù)處理系統(tǒng)的操作的方框圖;圖3是根據(jù)本發(fā)明的示例性實(shí)施例的翻譯表模擬單元的方框圖;圖4是示出根據(jù)本發(fā)明的示例性實(shí)施例的描述符的結(jié)構(gòu)的詳細(xì)示圖;圖5是示出根據(jù)本發(fā)明的示例性實(shí)施例的翻譯表的結(jié)構(gòu)的詳細(xì)示圖;和圖6是示出由根據(jù)本發(fā)明的示例性實(shí)施例的數(shù)據(jù)處理系統(tǒng)執(zhí)行的數(shù)據(jù)處理方法的流程圖。
具體實(shí)施例方式
以下,參照附圖來詳細(xì)說明本發(fā)明的實(shí)施例。在全部附圖中,相同的標(biāo)號表示相同的元件。
圖1是根據(jù)本發(fā)明的示例性實(shí)施例的數(shù)據(jù)處理系統(tǒng)100的示意性方框圖。圖2是示出圖1的數(shù)據(jù)處理系統(tǒng)100的操作的方框圖。
參照圖1和圖2,所述數(shù)據(jù)處理系統(tǒng)100包括中央處理單元(CPU)200、存儲器管理單元(MMU)250和翻譯表模擬(TTE)模塊300。TTE模塊300包括選擇器310和TTE單元350。外部存儲器400包括翻譯表410。
數(shù)據(jù)處理系統(tǒng)100包括作為共同的電路徑的總線,通過該總線在CPU200、MMU 250和TTE模塊300和外部存儲器400之間交換信息。為了從外部存儲器400讀出或者將數(shù)據(jù)寫入外部存儲器400,CPU 200使用虛擬地址來指定數(shù)據(jù)的位置。然而,為了實(shí)際地訪問外部存儲器400,必須將虛擬地址變換為物理地址。MMU 250將虛擬地址變換為物理地址。當(dāng)CPU 200輸出虛擬地址VA到總線上來訪問外部存儲器400時(shí),MMU 250接收虛擬地址VA,從虛擬地址VA產(chǎn)生翻譯表地址addr,并且輸出翻譯表地址addr。翻譯表地址addr是用來訪問翻譯表的物理地址。
TTE模塊300的選擇器310接收翻譯表地址addr,并且響應(yīng)于控制信號SEL,將其輸出到TTE單元350或者外部存儲器400的翻譯表410。例如,在TTE模式中將控制信號SEL的值設(shè)置為‘1’,或者在訪問外部存儲器400的翻譯表410的模式中將控制信號SEL的值設(shè)置為‘0’。當(dāng)控制信號SEL的值為‘1’時(shí),選擇器310選擇TTE單元350,在控制信號SEL的值為‘0’時(shí),選擇器310訪問外部存儲器400的翻譯表410。
當(dāng)控制信號SEL的值為‘1’時(shí)(即在TTE模式中),TTE單元350接收翻譯表地址addr,產(chǎn)生描述符DPT,并且輸出描述符DPT到總線上。MMU250接收描述符DPT,通過使用接收的描述符DPT而將虛擬地址VA映射到物理地址PA,通過使用物理地址PA來訪問外部存儲器400,并且將數(shù)據(jù)記錄到對應(yīng)于所述物理地址PA的位置或者從對應(yīng)于所述物理地址PA的位置讀出數(shù)據(jù)。
如果控制信號SEL的值為‘0’,即在訪問外部存儲器400的翻譯表410的模式中,則MMU 250接收與翻譯表地址addr相對應(yīng)的翻譯表410的描述符,通過使用所述接收的描述符來將虛擬地址VA變換為物理地址VA,并且訪問外部存儲器400從而從外部存儲器400提取數(shù)據(jù)。
為了直接訪問外部存儲器400的翻譯表410,必須執(zhí)行初始化程序來將所有的虛擬地址VA與物理地址PA匹配。因此,選擇器310優(yōu)選地選擇TTE模塊300。當(dāng)TTE模塊300不能夠產(chǎn)生對應(yīng)于翻譯表地址addr的描述符時(shí),MMU 250訪問外部存儲器400的翻譯表410。
在本發(fā)明的示例性實(shí)施例中,翻譯表被包括在外部存儲器400中,而選擇器310被包括在TTE模塊300中。然而,在本發(fā)明的示例性實(shí)施例中,僅使用TTE模式,而可省略翻譯表410和選擇器310。
圖3是根據(jù)本發(fā)明的示例性實(shí)施例的TTE單元350的方框圖。參照圖3,TTE單元350包括翻譯表地址單元325、操作單元330、起始地址寄存器335、解碼器340和字段產(chǎn)生器345。
翻譯表地址單元325接收包括高位(upper)和低位(lower)地址的翻譯表地址addr。翻譯表地址單元325將高位地址輸出到解碼器340,將低位地址輸出到操作單元330。解碼器340接收高位地址,并且輸出通過對所述高位地址解碼而獲得的高速緩存器值C和緩沖器值B。起始地址寄存器335輸出翻譯表的起始地址。操作單元330接收所述低位地址和起始地址,并且從所述起始地址減去低位地址,來輸出區(qū)域基地址(section-base address,SBA)。例如,對于訪問起始于地址301100的翻譯表地址addr,解碼器340接收值為301的高位地址,而操作單元330接收值為100的低位地址。值為100的起始地址被輸出到操作單元330。然后,操作單元330從起始單元地址100減去低位地址100,并且輸出對應(yīng)于地址0的SBA。
字段產(chǎn)生器345從解碼器340接收所述高速緩存器值C和緩沖器值B,并且從操作單元330接收所述SBA。字段產(chǎn)生器345根據(jù)所述高速緩存器值C和緩沖器值B來確定所述SBA的屬性。
字段產(chǎn)生器345基于所述高速緩存器值C和緩沖器值B來確定所述SBA,諸如在圖4中所示的,通過使用所述高速緩存器值C、緩沖器值B和SBA來產(chǎn)生描述符DPT,并且將所述描述符DPT返回給MMU 250。圖4是示出根據(jù)本發(fā)明的示例性實(shí)施例的描述符的結(jié)構(gòu)的詳細(xì)示圖。參照圖4,可確定字段SBZ、AP和域選擇器的值。在圖4中示出的描述符是由圖1的TTE模塊300產(chǎn)生的數(shù)據(jù),并且與輸出到圖1的外部存儲器400的翻譯表410的描述符相同。
參照圖4,所述描述符包括32位(0到31位)的數(shù)據(jù)。明確地說,所述描述符包括SBA字段、“應(yīng)為0”(“should-be-zero”,SBZ)字段、訪問許可(access permission,AP)字段、非獨(dú)立執(zhí)行(dependent execution)位[4]、和域選擇器字段。雖然所述描述符的位長度在圖4中被表示為32位,但是這只是示例性實(shí)施例。所述描述符可以是任何位數(shù),而不限于32位的位長度。
位[1:0]表示所述描述符的類型。位[3:2]分別表示高速緩存器值C和緩沖器值B。所述高速緩存器值C指示是否可在每個描述符中高速緩存數(shù)據(jù)。當(dāng)可以高速緩存數(shù)據(jù)時(shí),可以執(zhí)行下面的操作而不從主存儲器讀取數(shù)據(jù)。所述高速緩存器值C可指示在完成當(dāng)前的操作之前可以讀取命令。對每個描述符可以個別地設(shè)置高速緩存器值C。所述緩沖器值B指示每個描述符的數(shù)據(jù)可以被存儲在寫緩沖器中。
位[4]是非獨(dú)立執(zhí)行位。位[8:5]是域選擇器位,并且表示對于由所述描述符控制的全部區(qū)域指定的最多為16個的域。位[9]是當(dāng)前不使用的“SBZ”位。
位[11:10]是表示是否準(zhǔn)許訪問區(qū)域描述符的AP位,并且被用來控制相應(yīng)的區(qū)域。位[19:12]是當(dāng)前不使用的“SBZ”位。位[31:20]是構(gòu)成物理地址的高位12位的SBA位。在根據(jù)本發(fā)明的示例性實(shí)施例中,如果確定SBA值、高速緩存器值C和緩沖器值B,則可產(chǎn)生描述符。
圖5是示出根據(jù)本發(fā)明的示例性實(shí)施例的翻譯表410的結(jié)構(gòu)的方框圖??梢詫⒃趫D5中示出的翻譯表410作為外部翻譯表載入外部存儲器,但是可以由圖1的TTE模塊300產(chǎn)生圖5所示的翻譯表410。
參照圖5,翻譯表410包含描述符和翻譯表地址addr。將每個翻譯表地址addr分為高位地址和低位地址。雖然在圖5中的翻譯表地址的長度被表示為6位,但是這只是示例性實(shí)施例。每個翻譯表地址addr的長度可以是任何位數(shù)而不限于6位。雖然在圖5中的高位地址和低位地址的長度被表示為3位,但是這只是示例性實(shí)施例。高位地址和低位地址的長度可以是任何位數(shù)而不限于3位。
根據(jù)高位地址將翻譯表410分為第一區(qū)域41a、第二區(qū)域41b和第三區(qū)域41c。第一區(qū)域41a、第二區(qū)域41b和第三區(qū)域41c的描述符具有相同的高速緩存器值C和相同的緩沖器值B。根據(jù)高位地址來確定所述高速緩存器值C和緩沖器值B的屬性,然后基于預(yù)定的屬性來產(chǎn)生描述符的字段。
例如,可以將具有高位地址301的翻譯表410的區(qū)域(第一區(qū)域41a)的描述符(即具有從‘301000’到‘301NNN’的地址的描述符)的高速緩存器值C和緩沖器值B設(shè)置為0??赏ㄟ^調(diào)節(jié)所述高速緩存器值C和緩沖器值B來控制寫/讀操作。
如上所述,由于根據(jù)高位地址預(yù)先確定高速緩存器值C和緩沖器值B,所以TTE單元350能夠產(chǎn)生對應(yīng)于高位地址的高速緩存器值C和緩沖器值B。如上所述,可以通過使用起始地址和低位地址來計(jì)算所述SBA。在根據(jù)本發(fā)明的示例性實(shí)施例中,根據(jù)翻譯表地址addr的高位地址和翻譯表數(shù)據(jù)(描述符)來確定高速緩存器值C和緩沖器值B。不是根據(jù)實(shí)際的翻譯表(載入外部存儲器的翻譯表)來預(yù)先確定所述高速緩存器值C和緩沖器值B,而是通過內(nèi)部翻譯表模擬來產(chǎn)生所述高速緩存器值C和緩沖器值B。因而,不需要將翻譯表載入外部存儲器,也不需要對其初始化。甚至可以用小容量存儲器將要求圖1的TTE模塊300的程序載入。
根據(jù)本發(fā)明的示例性實(shí)施例,將TTE模塊300連同CPU 200和MMU 250一起形成于同一芯片。所述TTE模塊300也可以被實(shí)現(xiàn)為單獨(dú)的硬件芯片。
圖6是示出根據(jù)本發(fā)明的示例性實(shí)施例的通過使用圖3的TTE單元350來處理數(shù)據(jù)的方法的流程圖。參照圖3-圖6,MMU 250產(chǎn)生對應(yīng)于虛擬地址的翻譯表地址addr(S610)。其次,解碼器340從所述翻譯表地址addr的高位地址產(chǎn)生高速緩存器值C和緩沖器值B(S620),并且操作單元330通過使用翻譯表地址addr的高位地址和低位地址來產(chǎn)生SBA(S630)。再次,字段產(chǎn)生器345通過使用所述高速緩存器值C、緩沖器值B和SBA來產(chǎn)生描述符(S640)。再次,MMU 250通過使用所述描述符來產(chǎn)生對應(yīng)于所述虛擬地址的物理地址(S650)。再次,MMU 250通過使用所述物理地址來提取數(shù)據(jù)(S660)。
雖然已經(jīng)參照本發(fā)明的示例性實(shí)施例具體地示出并描述了本發(fā)明,但是本領(lǐng)域的普通技術(shù)人員應(yīng)該理解,在不脫離本發(fā)明的由所附權(quán)利要求限定的精神和范圍的情況下,可以進(jìn)行各種變形和修改。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng),包括中央處理單元,輸出虛擬地址;存儲器管理單元,產(chǎn)生對應(yīng)于所述虛擬地址的翻譯表地址,并且通過使用描述符將所述虛擬地址變換為物理地址;和翻譯表模擬模塊,接收所述翻譯表地址,并且產(chǎn)生將所述虛擬地址映射為所述物理地址所需的描述符。
2.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中所述翻譯表模擬模塊包括翻譯表模擬單元,產(chǎn)生所述描述符;和選擇器,選擇外部翻譯表被載入其中的外部存儲器和翻譯表模擬單元中的一個。
3.如權(quán)利要求2所述的數(shù)據(jù)處理系統(tǒng),其中所述翻譯表模擬單元包括起始地址寄存器,輸出預(yù)定的起始地址;操作單元,從所述起始地址和所述翻譯表地址的低位地址產(chǎn)生區(qū)域基地址;解碼器,輸出對應(yīng)于所述翻譯表地址的高位地址的高速緩存器值和緩沖器值;和字段產(chǎn)生器,基于所述高速緩存器值、緩沖器值和區(qū)域基地址來產(chǎn)生所述描述符。
4.如權(quán)利要求3所述的數(shù)據(jù)處理系統(tǒng),其中,當(dāng)所述翻譯表地址的高位地址相同時(shí),所述解碼器將具有相同的高位地址的描述符的高速緩存器值設(shè)置為第一值,而將所述描述符的緩沖器值設(shè)置為第二值。
5.如權(quán)利要求3所述的數(shù)據(jù)處理系統(tǒng),其中,所述字段產(chǎn)生器還使用預(yù)定的字段值來產(chǎn)生所述描述符。
6.如權(quán)利要求2所述的數(shù)據(jù)處理系統(tǒng),其中,所述描述符與所述外部翻譯表的描述符相同。
7.一種數(shù)據(jù)處理系統(tǒng),包括存儲器管理單元,通過使用具有多個屬性值的描述符來將虛擬地址變換為物理地址;和翻譯表模擬模塊,接收基于所述虛擬地址的翻譯表地址,并且通過基于所述翻譯表地址設(shè)置所述屬性值來產(chǎn)生所述描述符。
8.如權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng),其中所述翻譯表模擬模塊包括起始地址寄存器,輸出預(yù)定的起始地址;操作單元,從所述起始地址和所述翻譯表地址的低位地址計(jì)算區(qū)域基地址;解碼器,輸出對應(yīng)于所述翻譯表地址的高位地址的高速緩存器值和緩沖器值;和字段產(chǎn)生器,基于所述高速緩存器值、緩沖器值和區(qū)域基地址來產(chǎn)生所述描述符。
9.如權(quán)利要求8所述的數(shù)據(jù)處理系統(tǒng),其中,當(dāng)所述翻譯表地址的高位地址相同時(shí),所述解碼器將具有相同的高位地址的描述符的高速緩存器值設(shè)置為第一值,而將所述描述符的緩沖器值設(shè)置為第二值。
10.如權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng),其中,在硬件中實(shí)現(xiàn)所述翻譯表模擬模塊。
11.一種由數(shù)據(jù)處理系統(tǒng)執(zhí)行的處理數(shù)據(jù)的方法,包括產(chǎn)生對應(yīng)于虛擬地址的翻譯表地址;基于所述翻譯表地址來設(shè)置多個屬性值,并且產(chǎn)生包括所述屬性值的描述符;通過使用所述描述符來將所述虛擬地址變換為物理地址;和通過使用所述物理地址來訪問數(shù)據(jù)。
12.如權(quán)利要求11所述的方法,其中,所述基于所述翻譯表地址來設(shè)置多個屬性值,并且產(chǎn)生包括所述屬性值的描述符的步驟包括從所述翻譯表地址的高位地址產(chǎn)生高速緩存器值和緩沖器值;通過使用所述翻譯表地址的低位地址和預(yù)定的起始地址來產(chǎn)生區(qū)域基地址;和基于所述高速緩存器值、緩沖器值和區(qū)域基地址來產(chǎn)生所述描述符。
13.如權(quán)利要求12所述的方法,其中,當(dāng)所述翻譯表地址的高位地址相同時(shí),所述解碼器將具有相同的高位地址的描述符的高速緩存器值設(shè)置為第一值,而將所述描述符的緩沖器值設(shè)置為第二值。
14.如權(quán)利要求12所述的方法,其中,所述描述符還從預(yù)定的字段產(chǎn)生。
全文摘要
提供一種數(shù)據(jù)處理系統(tǒng),包括中央處理單元(CPU)、存儲器管理單元(MMU)和翻譯表模擬模塊(TTE)。所述CPU輸出虛擬地址。所述MMU產(chǎn)生對應(yīng)于所述虛擬地址的翻譯表地址,并且通過使用描述符而將所述虛擬地址變換為物理地址。所述TTE接收所述翻譯表地址,并且產(chǎn)生將所述虛擬地址映射為所述物理地址所需的描述符。
文檔編號G06F12/10GK1987829SQ200610168798
公開日2007年6月27日 申請日期2006年12月20日 優(yōu)先權(quán)日2005年12月20日
發(fā)明者樸鎮(zhèn)權(quán) 申請人:三星電子株式會社