亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種外部存儲器控制器及基于外部存儲器控制器的地址變換的方法

文檔序號:6574715閱讀:111來源:國知局
專利名稱:一種外部存儲器控制器及基于外部存儲器控制器的地址變換的方法
技術(shù)領(lǐng)域
本發(fā)明涉及芯片領(lǐng)域,尤其涉及一種外部存儲器控制器及基于外部存儲器控制器的地址變換的方法。
背景技術(shù)
存儲器控制器作為一種通用的存儲接口,其適用于控制各種類似于異步memory(存儲器)接口的各種存儲器件的讀寫操作。
在對其讀寫操作進(jìn)行控制時(shí),由于各種存儲器件的數(shù)據(jù)位寬不同,使得其對應(yīng)的地址線的位寬不能確定的,圖1為現(xiàn)有技術(shù)提供的幾種外部存儲器控制器與存儲器的連接方式示意圖,如圖1所示,如果數(shù)據(jù)位寬為8位,對應(yīng)的地址線的位寬為32位,如果數(shù)據(jù)位寬為16位,其對應(yīng)的地址線的位寬應(yīng)該為31位,如果數(shù)據(jù)位寬為32位,其對應(yīng)的地址線的位寬應(yīng)為30位。
但對于輸出地址,如果直接通信的兩個(gè)器件,由于數(shù)據(jù)位寬的不同,其對應(yīng)的地址線的位寬不一致時(shí),如果連接不當(dāng),可能導(dǎo)致地址的最低位無效或?qū)嶋H最小分辨數(shù)據(jù)位寬對應(yīng)的地址位無效。比如數(shù)據(jù)位寬為16bits(16位)的器件,地址線位寬為31位,這個(gè)時(shí)候可能是第0位為31bits對齊的地址,也可能第0位是無效位,而第1位為31bits對齊的地址。
現(xiàn)有技術(shù)中,通常采用事先確定空余地址位的方式解決地址線位寬不一致的問題,比如部分現(xiàn)有技術(shù)方案中的解決方案是對于所有存儲器與存儲器控制器的連接,均假設(shè)地址線名稱為A,寬度為32位,存儲器固定容量為4G,統(tǒng)一采用如表1所示的連接方式,表1為部分現(xiàn)有技術(shù)方案規(guī)定的不同數(shù)據(jù)位寬的存儲器與存儲器控制器連接時(shí)的地址連接方式,即規(guī)定數(shù)據(jù)位寬為8位的存儲器與存儲器控制器相連接時(shí),由于該存儲器的地址線位寬為32位,所以沒有空余的地址線;數(shù)據(jù)位寬為16位的存儲器與存儲器控制器相連接時(shí),由于該存儲器的地址線位寬為31位,所以其地址線的第0位空余;數(shù)據(jù)位寬為32位的存儲器與存儲器控制器相連接時(shí),由于該存儲器的地址線位寬為30位,所以其地址線的第0位和第1位均空余。
表1不同數(shù)據(jù)位寬的存儲器與存儲器控制器連接時(shí)的地址連接方式

可見,采用這種方式解決器件地址線位寬不一致的問題時(shí),必須得保證相互連接器件之間,不在布線的時(shí)候發(fā)生連接錯(cuò)誤的問題,一旦在布線的時(shí)候出現(xiàn)連接錯(cuò)誤,會直接導(dǎo)致輸出地址不能對齊,在訪問存儲器時(shí)就會由于訪問地址的錯(cuò)誤,使得訪問數(shù)據(jù)出現(xiàn)錯(cuò)誤。
從上述內(nèi)容可以看出,現(xiàn)有技術(shù)中,對地址線位寬不一致的解決方案是事先確定好的,在連線出現(xiàn)錯(cuò)誤時(shí),可能帶來硬件錯(cuò)誤,致使訪問出錯(cuò)。

發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供了一種地址變換的外部存儲器控制器及方法,提高了地址變換的靈活性,同時(shí)也增加了相應(yīng)器件連線的靈活性。
本發(fā)明的實(shí)施例是通過以下技術(shù)方案實(shí)現(xiàn)一種外部存儲器控制器,包括移位控制信號的獲取模塊,用于獲得移位控制信號,并將移位控制信號輸出;
地址變換模塊,所述地址變換模塊與存儲器連接,用于根據(jù)接收到的移位控制信號,對輸入的初始地址實(shí)行偏移控制,得到用于訪問存儲器時(shí)所需要的輸出地址;所述輸出地址為當(dāng)前存儲器特定存儲空間的物理地址,且所述輸出地址與當(dāng)前存儲器地址線高位或者低位對齊。
一種基于外部存儲器控制器的地址變換的方法,包括獲得移位控制信號;根據(jù)所述移位控制信號,對輸入的初始地址進(jìn)行偏移控制,得到訪問當(dāng)前存儲器時(shí)所需要的輸出地址,所述輸出地址為當(dāng)前存儲器特定存儲空間的物理地址,且所述輸出地址與當(dāng)前存儲器地址線高位或者低位對齊。
由上述本發(fā)明的實(shí)施例提供的技術(shù)方案可以看出,本發(fā)明的實(shí)施例提供了一種外部存儲器控制器及基于外部存儲器控制器的地址變換的方法,將訪問當(dāng)前存儲器時(shí)需要的輸出地址與當(dāng)前存儲器的地址線高位或地位對齊,避免了由于訪問當(dāng)前存儲器時(shí)需要的輸出地址與當(dāng)前存儲器的地址線不對齊而可能存在的硬件連線錯(cuò)誤,提高了地址變換的靈活性,同時(shí)也增加了相應(yīng)器件連線的靈活性,保證輸出地址與存儲器的地址線對齊,確保訪問數(shù)據(jù)不出錯(cuò)。


圖1為現(xiàn)有技術(shù)提供的幾種外部存儲器控制器與存儲器的連接方式示意圖;圖2為本發(fā)明實(shí)施例提供的實(shí)現(xiàn)讀操作和寫操作的結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例提供的地址變換模塊中實(shí)現(xiàn)移位控制的組合邏輯電路示意圖;圖4為本發(fā)明實(shí)施例提供的經(jīng)地址對齊后的外部存儲器控制器與存儲器的連接方式示意圖。
具體實(shí)施例方式
本發(fā)明的實(shí)施例提供了一種外部存儲器控制器,包括移位控制信號的獲取模塊和地址變換模塊;所述移位控制信號的獲取模塊用于獲得移位控制信號,并將所述移位控制信號輸出;所述移位控制信號的獲取模塊可以通過與地址變換模塊相連的配置寄存器模塊來實(shí)現(xiàn),也可以通過具備獲得移位控制信號功能的軟件模塊來實(shí)現(xiàn);配置寄存器模塊根據(jù)當(dāng)前存儲器的數(shù)據(jù)位寬,獲得所述移位控制信號,并將所述移動控制信號輸出。
所述地址變換模塊用于根據(jù)接收到的移位控制信號,對輸入的初始地址進(jìn)行偏移控制,得到與連接該外部存儲器控制器的存儲器的地址線高位或低位對齊的輸出地址;該地址變換模塊可以通過不同的組合邏輯實(shí)現(xiàn),比如,該地址變換模塊可以通過多個(gè)二選一多路器的組合實(shí)現(xiàn)其地址變換的功能;另外,需要注意的是,在得到與連接該外部存儲器控制器的存儲器的地址線對齊的地址后,可以根據(jù)實(shí)際需要,對該地址進(jìn)行一系列的操作,從而得到輸出地址,保證能夠正常訪問存儲器。
本發(fā)明的實(shí)施例還提供了一種基于外部存儲器控制器的地址變換的方法,包括獲得移位控制信號;所述移位控制信號根據(jù)外部存儲器的數(shù)據(jù)位寬決定;根據(jù)所述移位控制信號,對輸入的初始地址進(jìn)行偏移控制,得到訪問當(dāng)前存儲器時(shí)所需要的輸出地址,所述輸出地址為當(dāng)前存儲器特定存儲空間的物理地址,且所述輸出地址與當(dāng)前存儲器地址線高位或者低位對齊。
為了便于理解本發(fā)明的實(shí)施例提供的技術(shù)方案,下面將結(jié)合具體的實(shí)施例說明本發(fā)明的實(shí)施例提供的技術(shù)方案以通過AHB總線到一個(gè)數(shù)據(jù)位寬為16位的存儲器中讀32位數(shù)據(jù)為例,結(jié)合圖2對本發(fā)明的實(shí)施例提供的技術(shù)方案進(jìn)行詳細(xì)說明,圖2為本發(fā)明實(shí)施例提供的實(shí)現(xiàn)讀操作和寫操作的結(jié)構(gòu)示意圖;在該實(shí)施例中,AHB總線與外部存儲器控制器相連,存儲器連接外部存儲器控制器,存儲器的存儲容量固定的,總線上送過來的與這個(gè)32位數(shù)據(jù)對應(yīng)的初始地址為0x080,也就是說如果AHB總線的數(shù)據(jù)位寬為32位,而且按照byte(字節(jié),一個(gè)byte有8位)存儲格式儲存這個(gè)32位數(shù)據(jù),那么這個(gè)32位數(shù)據(jù)應(yīng)該對應(yīng)于存儲空間中的0x080/0x81/0x82/0x83的位置,然而由于當(dāng)前存儲該32位數(shù)據(jù)的存儲器的數(shù)據(jù)位寬為16位,則這個(gè)32位數(shù)據(jù)實(shí)際上在當(dāng)前存儲器中的位置是未知的,需要根據(jù)該32位數(shù)據(jù)對應(yīng)的初始地址,得到該位置,具體操作步驟為步驟1,根據(jù)該32位數(shù)據(jù)的數(shù)據(jù)位寬和當(dāng)前存儲器的數(shù)據(jù)位寬,確定移位控制信號,一般情況下,該移位控制信號為一位二進(jìn)制數(shù),即為1或0,也可以為一位以上的二進(jìn)制數(shù);在這個(gè)步驟中,也可以理解為根據(jù)與該32位數(shù)據(jù)對應(yīng)的初始地址和當(dāng)前存儲器的地址線位寬,確定移位控制信號;這是因?yàn)閿?shù)據(jù)位寬的數(shù)量與其地址線的位寬是一一對應(yīng)的,也就是說有多大的數(shù)據(jù)位寬,就有與之對應(yīng)的地址線位寬,如數(shù)據(jù)位寬為32位的數(shù)據(jù),對應(yīng)的地址線位寬為30位,數(shù)據(jù)位寬為16位的數(shù)據(jù),對應(yīng)的地址線位寬為31位,數(shù)據(jù)位寬為8位的數(shù)據(jù),對應(yīng)的地址線位寬為32位;因?yàn)楫?dāng)前存儲器的數(shù)據(jù)位寬為16位,AHB總線上傳輸?shù)臄?shù)據(jù)是以按照byte存儲格式儲存這個(gè)32位數(shù)據(jù),即其存儲空間對應(yīng)的數(shù)據(jù)位寬為8位,因此AHB總線上傳輸?shù)臄?shù)據(jù)對應(yīng)的地址線位寬為32位;而當(dāng)前存儲器的地址線位寬為31位,與AHB總線上傳輸?shù)臄?shù)據(jù)對應(yīng)的地址線位寬不同,所以需要根據(jù)二者的地址線位寬的不同,確定移位控制信號;步驟2,將確定的移位控制信號傳輸給地址變換模塊,該地址變換模塊根據(jù)移位控制信號,對所述初始地址進(jìn)行偏移控制,即控制初始地址統(tǒng)一向左移或者統(tǒng)一向右移,得到與當(dāng)前存儲器地址線對齊的地址;這個(gè)步驟中,地址變換模塊實(shí)現(xiàn)偏移控制的操作是通過組合邏輯電路來實(shí)現(xiàn)的,這里所說的組合邏輯電路可以由一個(gè)以上的多路器組成,比如,如圖3所示的由四個(gè)二選一多路器組成的組合邏輯電路,就可以對初始地址實(shí)現(xiàn)偏移控制的功能,圖3中,二選一多路器的選通信號均為移位控制信號,初始地址由A0A1A2組成,當(dāng)移位控制信號為1時(shí),由上到下的四個(gè)二選一多路器的輸出分別為a0=A0,a1=A1,a2=A2,a3=0,即初始地址向“左”偏移一位,當(dāng)移位控制信號為0時(shí),由上到下的四個(gè)二選一多路器的輸出分別為a0=0,a1=A0,a2=A1,a3=A2,即初始地址向“右”偏移一位;在這個(gè)實(shí)施例中,初始地址為0x080,其對應(yīng)的地址線位寬為32位,而當(dāng)前存儲器的地址線位寬為31位,如果采用低位對齊的原則,則需要將0x080右移一位即得到0x40,此時(shí)該地址已變換成31位的地址,與當(dāng)前存儲器(數(shù)據(jù)位寬為16位)的地址線完全對齊,這樣在地址輸出的時(shí)候,就不會產(chǎn)生地址不對齊的問題,也就不會產(chǎn)生訪問出錯(cuò)的問題;如圖1所示的幾種外部存儲器控制器和存儲器的連接關(guān)系,經(jīng)地址對齊后,即可得到如圖4所示的連接關(guān)系,可以看出,如果發(fā)生連接錯(cuò)位(如將A[31:1]誤連為A[30:0]),通過軟件設(shè)置相應(yīng)的寄存器,使地址發(fā)生偏移,即可規(guī)避錯(cuò)誤。
由于這個(gè)地址偏移的過程是可以人為控制的,并且可以根據(jù)當(dāng)前存儲器地址線的連接情況隨時(shí)調(diào)節(jié),因此,對存儲器地址線布線相對于現(xiàn)有技術(shù)的要求較低,增加了布局布線的靈活性;步驟3,在得到與當(dāng)前存儲器地址線對齊的地址后,可以根據(jù)當(dāng)前存儲器的數(shù)據(jù)位寬,決定是否需要對所述地址進(jìn)行累加操作,得到訪問當(dāng)前存儲器時(shí)所需的輸出地址;這是因?yàn)锳HB總線的數(shù)據(jù)位寬一般為32位,即要讀的數(shù)據(jù)為32位,而當(dāng)前存儲器的數(shù)據(jù)位寬與總線的數(shù)據(jù)位寬不一定一致。如果當(dāng)前存儲器的數(shù)據(jù)位寬比總線的數(shù)據(jù)位寬小,那么要讀的數(shù)據(jù)在當(dāng)前存儲器中對應(yīng)的存儲空間不只一個(gè),這就需要在得到與當(dāng)前存儲器地址線對齊的地址后,根據(jù)所述地址,對其進(jìn)行指定的操作(如可以通過自動遞增的方式得到執(zhí)行下一次讀操作時(shí)所需要的地址),從而得到訪問當(dāng)前存儲器所需要的輸出地址;如圖2所示,在比較器中,tag(標(biāo)志)與傳輸參數(shù)進(jìn)行比較,得到tag與傳輸參數(shù)的比較結(jié)果;所述與當(dāng)前存儲器地址線對齊的地址根據(jù)該比較結(jié)果做變換,可以得到執(zhí)行讀32位數(shù)據(jù)這個(gè)操作時(shí)所需要的輸出地址;具體操作步驟如下首先,由于存儲器的數(shù)據(jù)位寬是16bits,經(jīng)過步驟2得到的與當(dāng)前存儲器地址線對齊的地址是0x40,0x40即為要讀的32位數(shù)據(jù)中第1個(gè)16位數(shù)據(jù)在存儲器中的物理地址,根據(jù)該物理地址訪問存儲器,即可得到要讀的32位數(shù)據(jù)中第1個(gè)16位數(shù)據(jù);第二,由于tag的初始值是0000,而這種情況下(指的是當(dāng)前存儲器的數(shù)據(jù)位寬是16位,而AHB總線傳輸?shù)臄?shù)據(jù)是按照byte存儲格式存儲,對于一個(gè)32bits數(shù)據(jù)的傳輸,對應(yīng)于4個(gè)byte,傳輸參數(shù)中的每一位對應(yīng)一個(gè)byte,所以此時(shí)傳輸參數(shù)應(yīng)該為1111)的傳輸參數(shù)是1111(傳輸參數(shù)在該數(shù)據(jù)的傳輸過程中保持不變),在比較器中,tag與傳輸參數(shù)作比較,得到第1個(gè)16bits數(shù)據(jù)被讀入到read buffer(讀緩存)以后,tag的初始值0000需要向左移動2bits(這是因?yàn)樽x了一個(gè)16bits的數(shù)據(jù),也就是2個(gè)byte的數(shù)據(jù),所以tag要移動2bits),右位填11,變成0011;第三,tag值變成0011后,在比較器中,tag與傳輸參數(shù)再次作比較,得到繼續(xù)讀操作的指示信號,即得到還需要再讀一個(gè)16bits的數(shù)據(jù)的指示信號,將此指示信號輸出至地址變換模塊,對地址0x40遞增得到下一個(gè)16bits數(shù)據(jù)在存儲器中的物理地址應(yīng)為0x41,根據(jù)0x41訪問存儲器,這樣就可以讀下一個(gè)16bits的數(shù)據(jù),完成通過AHB總線到一個(gè)數(shù)據(jù)位寬為16位的存儲器中讀一個(gè)32位數(shù)據(jù)的操作;同時(shí),tag再次向左移2bits,右位填11,變成1111。
在上述讀數(shù)據(jù)的過程中,讀到的數(shù)據(jù)的排序已發(fā)生了變化,因此需要順序重排;比如當(dāng)需要AHB總線需要從初始地址為0x80的存儲空間讀到一個(gè)32bits的數(shù)55AA,但是當(dāng)前存儲器的數(shù)據(jù)位寬為16bits,所以需要通過執(zhí)行2次讀16bits的操作,即將這兩次讀到的數(shù)拼在一起的。如第一次根據(jù)地址0x40讀到AA,第2次根據(jù)地址0x41讀到55,讀到的數(shù)為AA55,與需要讀到的數(shù)的排序不同,這樣需要read buffer是右移輸出數(shù)據(jù),即首先將低位數(shù)據(jù)55輸出后,再將高位數(shù)據(jù)AA輸出,實(shí)現(xiàn)順序重排。
對于通過AHB總線寫數(shù)據(jù)的操作,上述步驟仍然適用,在此就不再贅述;不過由于在寫數(shù)據(jù)的操作中,數(shù)據(jù)排序不會出現(xiàn)類似于讀數(shù)據(jù)操作中的問題,所以無需順序重排。
綜合上述,本發(fā)明的實(shí)施例提供了一種外部存儲器控制器及基于外部存儲器控制器的地址變換的方法,將訪問當(dāng)前存儲器時(shí)需要的輸出地址與當(dāng)前存儲器的地址線高位或地位對齊,避免了由于訪問當(dāng)前存儲器時(shí)需要的輸出地址與當(dāng)前存儲器的地址線不對齊而可能存在的硬件連線錯(cuò)誤,提高了地址變換的靈活性,同時(shí)也增加了相應(yīng)器件連線的靈活性,保證輸出地址與存儲器的地址線對齊,確保訪問數(shù)據(jù)不出錯(cuò)。
至此,本發(fā)明僅以讀、寫操作為例說明了本發(fā)明實(shí)施例提供的技術(shù)方案,但本發(fā)明不只限于讀寫操作,一切基于根據(jù)接收到的移位控制信號,對輸入地址進(jìn)行偏移控制,得到與存儲器地址線完全對齊的輸出地址的技術(shù)方案,不管采用何種形式,均在本發(fā)明的保護(hù)范圍之內(nèi)。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變換或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種外部存儲器控制器,其特征在于,包括移位控制信號的獲取模塊,用于獲得移位控制信號,并將移位控制信號輸出;地址變換模塊,所述地址變換模塊與存儲器連接,用于根據(jù)接收到的移位控制信號,對輸入的初始地址實(shí)行偏移控制,得到用于訪問存儲器時(shí)所需要的輸出地址;所述輸出地址為當(dāng)前存儲器特定存儲空間的物理地址,且所述輸出地址與當(dāng)前存儲器地址線高位或者低位對齊。
2.根據(jù)權(quán)利要求1所述的外部存儲器控制器,其特征在于,所述移位控制信號的獲取模塊為與地址變換模塊連接的配置寄存器模塊,所述配置寄存器模塊用于根據(jù)外部存儲器數(shù)據(jù)位寬,獲得移位控制信號,并將所述移動控制信號輸出。
3.根據(jù)權(quán)利要求1所述的外部存儲器控制器,其特征在于,所述地址變換模塊由至少一個(gè)多路選擇器組成。
4.一種基于外部存儲器控制器的地址變換的方法,其特征在于,包括獲得移位控制信號;根據(jù)所述移位控制信號,對輸入的初始地址進(jìn)行偏移控制,得到訪問當(dāng)前存儲器時(shí)所需要的輸出地址,所述輸出地址為當(dāng)前存儲器特定存儲空間的物理地址,且所述輸出地址與當(dāng)前存儲器地址線高位或者低位對齊。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述移位控制信號根據(jù)外部存儲器的數(shù)據(jù)位寬決定。
全文摘要
本發(fā)明的實(shí)施例提供了一種外部存儲器控制器及基于外部存儲器控制器的地址變換的方法,根據(jù)接收到的移位控制信號,對輸入地址進(jìn)行偏移控制,得到與當(dāng)前存儲器地址線高位或者低位對齊的輸出地址。避免了可能存在的連線錯(cuò)誤,提高了地址變換的靈活性,同時(shí)也增加了相應(yīng)器件連線的靈活性,保證輸出地址與存儲器的地址線對齊,確保訪問數(shù)據(jù)不出錯(cuò)。
文檔編號G06F12/02GK101034373SQ20071008953
公開日2007年9月12日 申請日期2007年3月27日 優(yōu)先權(quán)日2007年3月27日
發(fā)明者劉宇, 季淵, 劉強(qiáng)國, 陳慶 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1