本發(fā)明涉及存儲(chǔ)設(shè)備技術(shù)領(lǐng)域,特別是涉及模擬多端口方法及模擬多端口記憶體。
背景技術(shù):
一般的,可以將記憶體分為單端口和多端口兩種。單端口記憶體每次操作只可以輸入一個(gè)地址,讀取或?qū)懭朐摰刂返臄?shù)據(jù)。多端口記憶體每次操作則可以輸入多個(gè)任意地址信號(hào),任意讀取或者寫入對(duì)應(yīng)地址信號(hào)的數(shù)據(jù)。
現(xiàn)有半導(dǎo)體ip供應(yīng)商一般只提供單端口或者雙端口靜態(tài)記憶體sram的記憶體產(chǎn)生器?;趩味丝诨蛘叨喽丝诘挠洃涹w可以隨意產(chǎn)生不同大小的記憶體。
例如,圖1為現(xiàn)有技術(shù)中慣常使用的單端口sram的6tbitcell(存儲(chǔ)單元)的電路原理圖。如圖1所示,該單端口存儲(chǔ)單元由2個(gè)p型管和4個(gè)n型管組成,wl為選擇線。在wl為1時(shí),可以導(dǎo)通m5和m6,從而令該存儲(chǔ)單元導(dǎo)通。bl和blb為一對(duì)差分?jǐn)?shù)據(jù)信號(hào)線,連接到讀寫模塊。一般在寫入或讀取前,同時(shí)初始化成高電平,再根據(jù)讀取或?qū)懭霐?shù)據(jù)再做差分。在一個(gè)時(shí)鐘周期內(nèi),該單端口存儲(chǔ)單元只能執(zhí)行寫入或者讀取一個(gè)操作。
圖2為現(xiàn)有技術(shù)中慣常使用的雙端口sram的8tbitcell(存儲(chǔ)單元)的電路原理圖。如圖2所示,該雙端口存儲(chǔ)單元相較于圖1,增加了m7和m8開關(guān)管,具有2個(gè)選擇線wl1和wl2以及兩對(duì)差分?jǐn)?shù)據(jù)信號(hào)線(bl1、bl2、blb1、blb2)。該雙端口存儲(chǔ)單元能夠在一個(gè)時(shí)鐘周期內(nèi)同時(shí)執(zhí)行2個(gè)讀寫操作。
在一些應(yīng)用場合中,如圖像處理、視頻信號(hào)處理、通信等領(lǐng)域,需要從記憶體中連續(xù)讀寫多個(gè)地址的數(shù)據(jù)。例如,處理器(cpu)從主程序記憶體讀取指令時(shí)一般會(huì)連續(xù)讀取多個(gè)指令存入內(nèi)部的高度緩存器(cache),然后在逐個(gè)從cache中讀出并執(zhí)行?;蛘呤窃谛盘?hào)處理過程中,從記憶體的某個(gè)地址k開始,連續(xù)的讀取n個(gè)數(shù)據(jù)(k、k+1直至k+n-1)進(jìn)行處理。
為滿足上述應(yīng)用場景,慣常的解決方法是使用單端口記憶體,并在若干個(gè)時(shí)鐘周期內(nèi),連續(xù)對(duì)單端口記憶體執(zhí)行多次讀寫操作,從而完成對(duì)記憶體內(nèi)多個(gè)地址的數(shù)據(jù)的讀寫操作。
在實(shí)現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)相關(guān)技術(shù)存在以下問題:現(xiàn)有的單端口記憶體,每次讀寫一個(gè)地址的數(shù)據(jù)均需要進(jìn)行一次讀寫操作。由此,在進(jìn)行多個(gè)連續(xù)的數(shù)據(jù)地址的讀寫操作時(shí),功耗較高,而且數(shù)據(jù)讀寫時(shí)延較長。而采用更多端口的記憶體雖然可以減少讀寫操作所需的時(shí)鐘周期和功耗,但會(huì)導(dǎo)致芯片面積顯著增加。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供模擬多端口方法及模擬多端口記憶體,能夠解決現(xiàn)有技術(shù)中單端口記憶體讀寫數(shù)據(jù)功耗較高、時(shí)延長的問題。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供一種模擬多端口記憶體。其包括:數(shù)據(jù)輸入輸出端口、記憶體控制器、讀寫模塊、行解碼模塊、第1存儲(chǔ)區(qū)塊至第n存儲(chǔ)區(qū)塊,所述存儲(chǔ)區(qū)塊為p列q行的存儲(chǔ)單元陣列;每個(gè)存儲(chǔ)區(qū)塊中同一行的存儲(chǔ)單元的選擇線連接到同一個(gè)地址線上,每個(gè)存儲(chǔ)區(qū)塊有q個(gè)地址線,n、p和q為均正整數(shù);所述行解碼模塊包括行解碼器1至行解碼器q的q個(gè)行解碼器;所述行解碼模塊與第n存儲(chǔ)區(qū)塊的對(duì)應(yīng)的地址線連接;所述行解碼模塊在所述記憶體控制器的配置下,令對(duì)應(yīng)行解碼器輸出導(dǎo)通信號(hào)導(dǎo)通所述第n存儲(chǔ)區(qū)塊的地址線;n為1-n之間的正整數(shù);導(dǎo)通信號(hào)引導(dǎo)系統(tǒng),所述導(dǎo)通信號(hào)引導(dǎo)系統(tǒng)用于將所述導(dǎo)通信號(hào)引導(dǎo)至除第n存儲(chǔ)區(qū)塊外,其余各個(gè)存儲(chǔ)區(qū)塊對(duì)應(yīng)的地址線;以及交換網(wǎng),所述交換網(wǎng)通過所述讀寫模塊與n個(gè)存儲(chǔ)區(qū)塊連接,根據(jù)預(yù)定的交換規(guī)則匹配所述存儲(chǔ)區(qū)塊及數(shù)據(jù)輸入輸出端口。
可選地,設(shè)所述模擬多端口記憶體具有0-k的k個(gè)地址,每個(gè)存儲(chǔ)單元具有唯一的地址;第n存儲(chǔ)區(qū)塊的第q行的第一個(gè)存儲(chǔ)單元的地址為:(q-1)×n+(n-1);n為1至n之間的正整數(shù),q為1至q之間的正整數(shù);第n存儲(chǔ)區(qū)塊的最后一個(gè)存儲(chǔ)單元的地址為k。
可選地,所述導(dǎo)通信號(hào)引導(dǎo)系統(tǒng)包括:與第1存儲(chǔ)區(qū)塊至第n-1存儲(chǔ)區(qū)塊對(duì)應(yīng)設(shè)置的n-1個(gè)地址線選擇模塊;所述地址線選擇模塊包括選擇器1至選擇器q的q個(gè)選擇器,所述選擇器為二選一選擇器;選擇器q的輸出端與對(duì)應(yīng)的存儲(chǔ)區(qū)塊的地址線q連接;選擇器q的兩個(gè)輸入端分別與行解碼器q和行解碼器q+1耦合;q為1至q之間的正整數(shù);其中,選擇器1的輸入端分別與行解碼器q和行解碼器1耦合。
可選地,所述導(dǎo)通信號(hào)引導(dǎo)系統(tǒng)包括:與第1存儲(chǔ)區(qū)塊至第n-1存儲(chǔ)區(qū)塊對(duì)應(yīng)設(shè)置的n-1個(gè)地址線選擇模塊;所述地址線選擇模塊包括選擇器1至選擇器q的q個(gè)選擇器,所述選擇器為二選一選擇器;選擇器q的輸出端與對(duì)應(yīng)的存儲(chǔ)區(qū)塊的地址線q連接;選擇器q的兩個(gè)輸入端分別與行解碼器q和行解碼器q+1耦合;q為1至q之間的正整數(shù);其中,所述行解碼模塊還包括一個(gè)額外的行解碼器q,所述額外的行解碼器q設(shè)置在所述行解碼器1旁,所述選擇器1的輸入端分別與所述額外的行解碼器q和行解碼器1耦合。
可選地,所述數(shù)據(jù)輸入輸出端口至少包括:地址信號(hào)輸入端口、n個(gè)寫入數(shù)據(jù)端口、n個(gè)讀取數(shù)據(jù)端口以及n個(gè)讀寫操作端口;n為所述模擬多端口記憶體的端口數(shù)量。
可選地,所述交換網(wǎng)包括若干個(gè)與所述存儲(chǔ)區(qū)塊對(duì)應(yīng)設(shè)置的交換網(wǎng)1至交換網(wǎng)n;所述交換網(wǎng)根據(jù)預(yù)定的交換規(guī)則,選擇對(duì)應(yīng)存儲(chǔ)區(qū)塊與所述寫入數(shù)據(jù)端口以及讀取數(shù)據(jù)端口匹配。
為解決上述技術(shù)問題,本發(fā)明另一實(shí)施例提供了一種模擬多端口的方法。所述方法包括:接收一個(gè)數(shù)據(jù)讀寫指令,所述數(shù)據(jù)讀寫指令包括:地址信號(hào)以及讀寫操作信號(hào);根據(jù)所述地址信號(hào)在對(duì)應(yīng)的行解碼器輸出導(dǎo)通信號(hào);根據(jù)所述地址信號(hào),令所述導(dǎo)通信號(hào)輸入至各個(gè)存儲(chǔ)區(qū)塊對(duì)應(yīng)的地址線,導(dǎo)通對(duì)應(yīng)行的存儲(chǔ)單元;根據(jù)所述讀寫操作信號(hào),控制所述存儲(chǔ)單元執(zhí)行對(duì)應(yīng)操作;通過所述地址信號(hào),確定所述n個(gè)存儲(chǔ)區(qū)塊與數(shù)據(jù)輸入輸出端口的匹配關(guān)系。
可選地,所述方法還包括:將數(shù)據(jù)依據(jù)地址依次寫入所述n個(gè)存儲(chǔ)區(qū)塊的第1行;所述地址包括0-k的k個(gè)地址;
在所有存儲(chǔ)區(qū)塊的第1行寫入完畢后,重新將數(shù)據(jù)依次寫入所述n個(gè)存儲(chǔ)區(qū)塊的第2行;重復(fù)上述數(shù)據(jù)寫入操作直至第n存儲(chǔ)區(qū)塊的最后一個(gè)地址k被寫入。
可選地,所述根據(jù)所述地址信號(hào),令所述導(dǎo)通信號(hào)輸入至各個(gè)存儲(chǔ)區(qū)塊對(duì)應(yīng)的地址線,導(dǎo)通對(duì)應(yīng)行的存儲(chǔ)單元,具體包括:
行解碼器q輸出導(dǎo)通信號(hào)至第n存儲(chǔ)區(qū)塊的地址線q,令第q行的存儲(chǔ)單元導(dǎo)通;
令所述導(dǎo)通信號(hào)依次通過若干選擇器,進(jìn)入第n-1存儲(chǔ)區(qū)塊至第1存儲(chǔ)區(qū)塊;
所述導(dǎo)通信號(hào)從當(dāng)前存儲(chǔ)區(qū)塊進(jìn)入下一存儲(chǔ)區(qū)塊時(shí),通過所述選擇器選擇進(jìn)入下一存儲(chǔ)區(qū)塊的當(dāng)前行地址線或下一行地址線,令對(duì)應(yīng)行的存儲(chǔ)單元導(dǎo)通,q為1-q之間的正整數(shù)。
可選地,所述導(dǎo)通信號(hào)從當(dāng)前存儲(chǔ)區(qū)塊進(jìn)入下一存儲(chǔ)區(qū)塊時(shí),通過所述選擇器選擇進(jìn)入下一存儲(chǔ)區(qū)塊的當(dāng)前行地址線或下一行地址線,令對(duì)應(yīng)行的存儲(chǔ)單元導(dǎo)通,具體包括:
解析地址信號(hào),獲得與地址信號(hào)對(duì)應(yīng)的第n存儲(chǔ)區(qū)塊;
向第n存儲(chǔ)區(qū)塊對(duì)應(yīng)的選擇器輸出第一選擇信號(hào);所述第一選擇信號(hào)為控制導(dǎo)通信號(hào)進(jìn)入下一行地址線的選擇信號(hào);
向其它選擇器輸入第二選擇信號(hào),所述第二選擇信號(hào)為控制導(dǎo)通信號(hào)進(jìn)入當(dāng)前行地址線的選擇信號(hào)。
可選地,所述方法還包括:向第n存儲(chǔ)區(qū)塊對(duì)應(yīng)的選擇器輸出第一選擇信號(hào)時(shí),將行解碼器q輸出的導(dǎo)通信號(hào),引導(dǎo)至第n存儲(chǔ)區(qū)塊的地址線1。本發(fā)明實(shí)施例中提供的模擬多端口方法及模擬多端口記憶體,可以使用單端口存儲(chǔ)單元實(shí)現(xiàn)多端口模擬的效果。在需要對(duì)記憶體的多個(gè)連續(xù)地址進(jìn)行讀寫操作時(shí),只需要對(duì)記憶體執(zhí)行一次操作,在一個(gè)時(shí)鐘周期內(nèi)即可完成,在節(jié)省芯片面積的同時(shí)還可以降低功耗和數(shù)據(jù)讀寫時(shí)延。
附圖說明
一個(gè)或多個(gè)實(shí)施例通過與之對(duì)應(yīng)的附圖中的圖片進(jìn)行示例性說明,這些示例性說明并不構(gòu)成對(duì)實(shí)施例的限定,附圖中具有相同參考數(shù)字標(biāo)號(hào)的元件表示為類似的元件,除非有特別申明,附圖中的圖不構(gòu)成比例限制。
圖1為典型的6tbitcell的電路原理圖;
圖2為典型的8tbitcell的電路原理圖;
圖3為本發(fā)明實(shí)施例提供的記憶體的應(yīng)用環(huán)境示意圖;
圖4為典型的單端口記憶體的輸入/輸出端口示意圖;
圖5為典型的單端口記憶體的結(jié)構(gòu)框圖;
圖6為本發(fā)明實(shí)施例提供的模擬多端口記憶體的輸入/輸出端口示意圖;
圖7為本發(fā)明實(shí)施例提供的模擬多端口記憶體的結(jié)構(gòu)框圖;
圖8為本發(fā)明另一實(shí)施例提供的模擬多端口記憶體的結(jié)構(gòu)框圖;
圖9為本發(fā)明又一實(shí)施例提供的模擬多端口記憶體的結(jié)構(gòu)框圖;
圖10為本發(fā)明實(shí)施例提供的模擬多端口方法的方法流程圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖3為本發(fā)明實(shí)施例提供的記憶體的應(yīng)用環(huán)境示意圖。在該應(yīng)用環(huán)境中,包括記憶體10以及處理器20。
所述記憶體10具有多個(gè)地址,指向?qū)?yīng)的存儲(chǔ)單元(例如每個(gè)地址與一位數(shù)據(jù)對(duì)應(yīng),或者每個(gè)地址可以與8bit或者32bit的數(shù)位數(shù)據(jù)對(duì)應(yīng))。每個(gè)存儲(chǔ)單元存儲(chǔ)1位數(shù)據(jù)。處理器20在執(zhí)行程序指令過程中,例如執(zhí)行某些圖像處理算法、視頻處理或者通信幀處理等,需要對(duì)記憶體10的連續(xù)的多個(gè)地址進(jìn)行讀/寫操作。
如處理器20在某些圖像處理算法中,需要執(zhí)行讀取記憶體10地址n至n+2連續(xù)3個(gè)地址的數(shù)據(jù),并且將運(yùn)算后的結(jié)果寫入地址n+3指向的存儲(chǔ)單元中的操作。
圖4和圖5為現(xiàn)有的單端口記憶體。以下結(jié)合圖4和圖5,詳細(xì)闡述在圖3所示的應(yīng)用環(huán)境中,使用現(xiàn)有的單端口記憶體的讀寫操作過程。
如圖4所示,為現(xiàn)有的單端口記憶體在進(jìn)行讀寫操作過程中需要的指令或者數(shù)據(jù),具體包括:地址信號(hào)addr、寫入數(shù)據(jù)wdata、使能信號(hào)cs、讀寫操作信號(hào)rwen、時(shí)鐘信號(hào)clk以及讀取數(shù)據(jù)rdata。上述信號(hào)均可以采用各種合適的形式,根據(jù)實(shí)際情況進(jìn)行設(shè)置。例如,可以將該讀寫操作信號(hào)rwen配置為:在rwen=1時(shí),控制記憶體執(zhí)行讀取操作,讀取地址addr對(duì)應(yīng)的存儲(chǔ)單元的數(shù)據(jù)作為讀取數(shù)據(jù)rdata輸出;在rwen=0時(shí),控制記憶體執(zhí)行寫入操作,將寫入數(shù)據(jù)wdata寫入記憶體地址addr指向的存儲(chǔ)單元中。
圖5為圖4所示的單端口記憶體的功能框圖。如圖5所示,該記憶體可以包括:用以接收指令信號(hào)并作出對(duì)應(yīng)處理操作的記憶體控制器100、行解碼模塊200、讀出放大器/寫入緩沖器300以及由若干個(gè)單端口存儲(chǔ)單元組成的存儲(chǔ)單元陣列400。
在具體的讀寫操作過程中,可以設(shè)置記憶體控制器100在時(shí)鐘信號(hào)clk的上升沿時(shí)解碼輸入的使能信號(hào)cs、讀寫操作信號(hào)rwen和地址信號(hào)addr,從而確認(rèn)需要執(zhí)行的是讀取還是寫入操作以及該讀/寫操作執(zhí)行的操作地址、操作地址指向的存儲(chǔ)單元。記憶體控制器100根據(jù)解析結(jié)果,將對(duì)應(yīng)的控制信號(hào)ctrl以及行解碼模塊使能信號(hào)rowen分別輸出至所述行解碼模塊200以及讀出放大器/寫入緩沖器300中。
所述行解碼模塊200包括若干個(gè)與存儲(chǔ)單元陣列的行數(shù)對(duì)應(yīng)設(shè)置的行解碼器,接收控制器給出的使能信號(hào)rowen后,解碼地址信號(hào),令對(duì)應(yīng)的行解碼器輸出導(dǎo)通信號(hào)使存儲(chǔ)單元陣列400中的某一行導(dǎo)通。
所述讀出放大器則根據(jù)記憶體控制器100給出的控制信號(hào),放大地址信號(hào)addr指向的存儲(chǔ)單元的bl和blb信號(hào),作為讀取數(shù)據(jù)rdata輸出。例如,所述讀出放大器可以配置為:當(dāng)bl信號(hào)的電平高于blb時(shí),所述讀出放大器輸出信號(hào)1,否則輸出信號(hào)0。所述寫入緩沖器則根據(jù)記憶體控制器100給出的控制信號(hào),將寫入數(shù)據(jù)wdata寫入地址信號(hào)addr指向的存儲(chǔ)單元。例如,寫入緩沖器可以配置為:當(dāng)wdata為1時(shí),令bl停留在初始化后的電壓,blb的電壓下拉至接近vss,當(dāng)wdata為0時(shí)則相反。
由于讀出放大器和寫入緩沖器是成對(duì)設(shè)置的,分別針對(duì)某列存儲(chǔ)單元的數(shù)據(jù)讀取和數(shù)據(jù)寫入操作。為陳述簡便,以下在說明書附圖中以一個(gè)功能框300表示讀取放大器和寫入緩沖器,并簡稱為“讀寫模塊”300。
為完成圖3所示的應(yīng)用環(huán)境的工作任務(wù),處理器20可以在每個(gè)時(shí)鐘周期向記憶體10發(fā)送一次讀/寫操作指令(需要的指令或數(shù)據(jù)如圖4所示),在記憶體10的一個(gè)地址上寫入數(shù)據(jù)或者讀取某個(gè)地址的數(shù)據(jù)。例如,在第1個(gè)時(shí)鐘周期,完成對(duì)地址n的讀取操作;在第2個(gè)時(shí)鐘周期,完成地址n+1的讀取操作;在第3個(gè)時(shí)鐘周期,地址n+2的讀取操作以及在第4個(gè)時(shí)鐘周期,完成對(duì)地址n+3的寫入操作。
這樣的,若使用單端口記憶體,在圖3所示的應(yīng)用環(huán)境中,對(duì)n個(gè)地址的操作需要執(zhí)行n次對(duì)記憶體的操作,所需的功耗較大,涉及的時(shí)間也較長(n個(gè)時(shí)鐘周期)。
在另一些實(shí)施例中,也可以在圖3所示的應(yīng)用環(huán)境中使用具有多端口的記憶體(例如4端口記憶體)。這樣的,處理器20在執(zhí)行對(duì)記憶體的連續(xù)4個(gè)地址的讀/寫操作時(shí),只需要在1個(gè)時(shí)鐘周期,執(zhí)行一次對(duì)記憶體的操作。但是,更多端口的記憶體需要占用的芯片面積較大,而且更多端口記憶體(例如3端口、4端口記憶體)并非常用的標(biāo)準(zhǔn)產(chǎn)品,一般的半導(dǎo)體ip廠商并不會(huì)供應(yīng)這樣的產(chǎn)品,需要自行設(shè)計(jì)。
為更好的提升單端口記憶體在執(zhí)行圖3所示的,處理器對(duì)記憶體的連續(xù)地址進(jìn)行讀/寫操作時(shí)的性能,在本發(fā)明實(shí)施例提供了一種模擬多端口記憶體。該模擬多端口記憶體可以在使用單端口記憶體的基礎(chǔ)上,通過一些增設(shè)的功能模塊,實(shí)現(xiàn)模擬多端口的效果,從而在芯片面積、記憶體成本與記憶體端口數(shù)量之間取得平衡。
在本發(fā)明實(shí)施例提供的模擬多端口記憶體中,使用的存儲(chǔ)單元為圖1所示的6t的單端口存儲(chǔ)單元。當(dāng)然,還可以使用其它合適類型的存儲(chǔ)單元。
圖6為本發(fā)明實(shí)施例提供的模擬多端口記憶體的端口示意圖。如圖6所示,該記憶體為模擬n個(gè)端口的記憶體,可以包括如下所述的數(shù)據(jù)輸入輸出端口,用以輸入對(duì)應(yīng)的數(shù)據(jù)/指令或者輸出對(duì)應(yīng)的數(shù)據(jù):
時(shí)鐘信號(hào)端口clk、使能信號(hào)端口cs、地址信號(hào)端口addr、寫入數(shù)據(jù)端口wdata1至wdatan、讀寫操作端口rwen1至rwenn以及讀取數(shù)據(jù)端口rdata1至rdatan。
其中,n具體可以由技術(shù)人員根據(jù)實(shí)際情況或者使用場景的需要設(shè)置,例如將n設(shè)置為4。地址信號(hào)addr為執(zhí)行讀/寫操作的第一個(gè)地址信號(hào),例如處理器20需要對(duì)4-7這4個(gè)連續(xù)地址執(zhí)行讀/寫操作時(shí),圖6中輸入的地址信號(hào)addr為4。
讀寫操作端口rwen1-rwenn用以輸入對(duì)于各個(gè)地址的讀寫操作信號(hào)。亦即,讀寫操作端口rwen1輸入的信號(hào)對(duì)應(yīng)的是地址信號(hào)addr的讀寫操作信號(hào),rwen2對(duì)應(yīng)的是地址addr+1的讀寫操作信號(hào),直至rwenn對(duì)應(yīng)地址addr+n-1的讀寫操作信號(hào)。
該讀寫操作信號(hào)可以根據(jù)實(shí)際情況進(jìn)行配置,例如,在對(duì)應(yīng)端口輸入“1”時(shí),表示控制記憶體在該地址執(zhí)行讀取操作,在對(duì)應(yīng)端口輸入“0”時(shí),表示控制記憶體在該地址執(zhí)行寫入操作。在本發(fā)明的另一實(shí)施例中,還可以根據(jù)實(shí)際需要增加或者減省一些額外的數(shù)據(jù)端口而不限于圖6所示。
圖7為本發(fā)明實(shí)施例提供的模擬多端口記憶體的結(jié)構(gòu)框圖。如圖7所示,除現(xiàn)有的單端口記憶體所需的模塊外,所述模擬多端口記憶體還包括第1至第n的n個(gè)獨(dú)立的存儲(chǔ)區(qū)塊400、n-1個(gè)地址線選擇模塊500以及n個(gè)交換網(wǎng)600。
其中,每個(gè)存儲(chǔ)區(qū)塊400均為p列q行的存儲(chǔ)陣列。每個(gè)存儲(chǔ)區(qū)塊400具有與q行對(duì)應(yīng)的地址線1至地址線q,每個(gè)存儲(chǔ)單元的差分?jǐn)?shù)據(jù)信號(hào)線bl和blb則連接至對(duì)應(yīng)的讀寫模塊300中,位于同一列的存儲(chǔ)單元共享差分?jǐn)?shù)據(jù)線bl和blb。
可選地,每一列的存儲(chǔ)單元既可以獨(dú)立的使用一個(gè)讀寫模塊300。也可以共享一個(gè)讀寫模塊300并增加額外的選擇裝置,選擇導(dǎo)通的對(duì)應(yīng)列的存儲(chǔ)單元執(zhí)行讀/寫操作。
其中一個(gè)存儲(chǔ)區(qū)塊400與單端口記憶體的行解碼模塊200連接(如圖7所示的第n存儲(chǔ)區(qū)塊)。行解碼模塊200包括行解碼器1至行解碼器q的q個(gè)行解碼器,行解碼器q與所述第n存儲(chǔ)區(qū)塊的對(duì)應(yīng)的地址線q連接,q為1-q之間的正整數(shù)。
在執(zhí)行記憶體讀取操作時(shí),在記憶體控制器100的配置下,行解碼模塊200對(duì)應(yīng)的行解碼器將輸出一個(gè)導(dǎo)通信號(hào)。該導(dǎo)通信號(hào)進(jìn)入第n存儲(chǔ)區(qū)塊的對(duì)應(yīng)的地址線中,導(dǎo)通該行的存儲(chǔ)單元。導(dǎo)通的存儲(chǔ)單元可以通過讀寫模塊300,讀取或者寫入數(shù)據(jù)。
如圖7所示,所述地址線選擇模塊500連接兩個(gè)相鄰的存儲(chǔ)區(qū)塊400。n-1個(gè)地址線選擇模塊500組成一個(gè)導(dǎo)通信號(hào)引導(dǎo)系統(tǒng)。通過該導(dǎo)通信號(hào)引導(dǎo)系統(tǒng),可以引導(dǎo)導(dǎo)通信號(hào)從第n存儲(chǔ)區(qū)塊分別進(jìn)入到剩余的第1至第n-1存儲(chǔ)區(qū)塊對(duì)應(yīng)的地址線上,從而令n個(gè)存儲(chǔ)區(qū)塊中某一行的存儲(chǔ)單元導(dǎo)通。
在實(shí)際操作過程中,具體可以根據(jù)存儲(chǔ)區(qū)塊實(shí)際的地址設(shè)置情況,配置預(yù)定的控制信號(hào)或者規(guī)則,令所述導(dǎo)通信號(hào)引導(dǎo)系統(tǒng)有序的控制各個(gè)存儲(chǔ)區(qū)塊需要導(dǎo)通的行(例如,圖7中使用選擇控制信號(hào)sel_n來控制,n為1至n-1的正整數(shù),分別與n-1個(gè)地址線選擇模塊對(duì)應(yīng),如sel_1、sel_2,…,sel_n-1)。
如圖7所示,在一些實(shí)施例中,所述選擇控制信號(hào)sel_n可以是由額外地址線選擇模塊的控制器502根據(jù)輸入的地址信號(hào)所決定。所述控制器502具體可以采用任何合適的,具有對(duì)應(yīng)解碼能力的邏輯運(yùn)算單元實(shí)現(xiàn)。其可以整合在地址線選擇模塊中,作為地址線選擇模塊的一部分,也可以設(shè)置為分立的功能模塊。
在本發(fā)明實(shí)施例中,通過由多個(gè)地址線選擇模塊組成的導(dǎo)通信號(hào)引導(dǎo)系統(tǒng),只需要對(duì)記憶體進(jìn)行一次操作,即可實(shí)現(xiàn)對(duì)每個(gè)存儲(chǔ)區(qū)塊的其中一個(gè)地址執(zhí)行讀/寫操作,由此來實(shí)現(xiàn)模擬多端口的效果。
當(dāng)然,除通過導(dǎo)通信號(hào)引導(dǎo)系統(tǒng)將導(dǎo)通信號(hào)的引導(dǎo)至每個(gè)存儲(chǔ)區(qū)塊外,記憶體控制器100還需要根據(jù)存儲(chǔ)區(qū)塊的地址排布方式,確定各個(gè)存儲(chǔ)區(qū)塊與端口之間的具體對(duì)應(yīng)關(guān)系以確保讀/寫操作能夠有序正確的進(jìn)行。例如,需要確定第1個(gè)地址信號(hào)addr的讀寫操作信號(hào)對(duì)應(yīng)的存儲(chǔ)區(qū)塊,第n個(gè)地址addr+n-1的讀寫操作信號(hào)對(duì)應(yīng)的存儲(chǔ)區(qū)塊等。
在本實(shí)施例中,通過連接存儲(chǔ)區(qū)塊以及寫入數(shù)據(jù)端口wdata1-wdatan、讀寫操作端口rwen1-rwenn以及讀取數(shù)據(jù)端口rdata1-rdatan的交換網(wǎng)600來完成上述端口與存儲(chǔ)區(qū)塊的匹配。所述交換網(wǎng)600根據(jù)配置好的交換方式,將存儲(chǔ)區(qū)塊與對(duì)應(yīng)的端口匹配,令記憶體10有序的完成對(duì)連續(xù)n個(gè)地址的數(shù)據(jù)讀取或者寫入操作。
在一些實(shí)施例中,所述交換網(wǎng)600可以通過2個(gè)n:1的選擇器實(shí)現(xiàn)。
例如,可以使用2個(gè)4:1的選擇器實(shí)現(xiàn)如圖8或圖9所示的交換網(wǎng)600。實(shí)際執(zhí)行過程中,根據(jù)addr[1:0]和交換網(wǎng)對(duì)應(yīng)的儲(chǔ)存區(qū)塊計(jì)算兩個(gè)選擇器對(duì)應(yīng)的選擇信號(hào),分別選擇wdata1~wdata4中的其中一個(gè)輸出到wdata_bank4以及選擇一個(gè)rdata_bank1~rdata_bank4到rdata4。
本發(fā)明實(shí)施例提供的模擬多端口記憶體以單端口存儲(chǔ)單元為基礎(chǔ),通過設(shè)置額外的導(dǎo)通信號(hào)引導(dǎo)系統(tǒng)、交換網(wǎng)并根據(jù)實(shí)際地址排布,配置對(duì)應(yīng)的控制方式,實(shí)現(xiàn)了模擬多端口的效果。
在圖3所示的應(yīng)用環(huán)境中,使用本發(fā)明實(shí)施例提供的模擬多端口記憶體時(shí),處理器20可以在一個(gè)時(shí)鐘周期內(nèi),對(duì)記憶體執(zhí)行一次操作來完成在連續(xù)n個(gè)地址中執(zhí)行讀/寫操作。與現(xiàn)有技術(shù)中的單端口記憶體相比,所需要的時(shí)鐘周期和對(duì)記憶體的操作次數(shù)均得到了極大的降低,而且由于基于單端口存儲(chǔ)單元實(shí)現(xiàn),占用的芯片面積較小。
圖8為本發(fā)明實(shí)施例提供的存儲(chǔ)區(qū)塊的地址設(shè)置示意圖。以下以圖8的存儲(chǔ)區(qū)塊地址設(shè)置為例,詳細(xì)描述如何配置上述導(dǎo)通信號(hào)引導(dǎo)系統(tǒng)及交換網(wǎng)。
如圖8所示,設(shè)該模擬多端口記憶體有0-99的100個(gè)地址,劃分為第1至第4的4個(gè)獨(dú)立的存儲(chǔ)區(qū)塊。每個(gè)存儲(chǔ)區(qū)塊均為1列25行的存儲(chǔ)單元陣列,具有地址線1至地址線25(如圖8所示為wl1-wl25)。
存儲(chǔ)區(qū)塊的地址設(shè)置方式為:在第1存儲(chǔ)區(qū)塊的第一行設(shè)置1個(gè)地址,依次在各個(gè)存儲(chǔ)區(qū)塊的第一行放置,直至排滿全部存儲(chǔ)區(qū)塊后,重新在第1存儲(chǔ)區(qū)塊的第二行設(shè)置下一個(gè)地址。
在這樣的排布方式下,第n存儲(chǔ)區(qū)塊的第q行(n和q均為正整數(shù),q的取值范圍為1至存儲(chǔ)區(qū)塊的最后一行q,n的取值范圍為1至最后一個(gè)存儲(chǔ)區(qū)塊n)的第一個(gè)存儲(chǔ)單元對(duì)應(yīng)的地址為:(q-1)×n+(n-1)。在另一實(shí)施例中,若需要包含數(shù)量更多的地址,可以繼續(xù)采用上述地址設(shè)置方式,令存儲(chǔ)單元陣列具有更多的列,例如2列25行的存儲(chǔ)單元陣列。
在本實(shí)施例中,所述地址線選擇模塊500由q個(gè)選擇器501組成(包括選擇器1至選擇器q)。n-1個(gè)地址線選擇模塊500分別與對(duì)應(yīng)的第1至第n-1存儲(chǔ)區(qū)塊連接,設(shè)置在相鄰的兩個(gè)存儲(chǔ)區(qū)塊之間。所述選擇器501為二選一選擇器,包括選擇控制信號(hào)輸入端,一個(gè)輸出端,輸入端1以及輸入端0。
其中,選擇器501的輸出端與在前的存儲(chǔ)區(qū)塊的地址線連接,兩個(gè)輸入端分別與在后的存儲(chǔ)區(qū)塊的本行以及上一行的地址線連接,同一個(gè)地址線選擇模塊內(nèi)的選擇器501共用相同的選擇控制信號(hào)。這樣的,除了與行解碼模塊200連接的第n存儲(chǔ)區(qū)塊外,該選擇器501可以根據(jù)輸入的選擇控制信號(hào)sel_n選擇輸出端輸出的是輸入端1還是輸入端0的值,從而實(shí)現(xiàn)導(dǎo)通信號(hào)的引導(dǎo)。例如,當(dāng)輸入選擇控制信號(hào)值為1時(shí)輸入端1輸出至輸出端(如第3存儲(chǔ)區(qū)塊在第1行的導(dǎo)通信號(hào)(地址2)將通過選擇器,進(jìn)入第2存儲(chǔ)區(qū)塊的地址線2),而輸入選擇控制信號(hào)值為0時(shí),輸入端0輸出至輸出端,。
另外,選擇器1的輸入端1與行解碼器q的輸出耦合。亦即,在前一個(gè)存儲(chǔ)區(qū)塊為最后一行地址線導(dǎo)通,選擇控制信號(hào)值為1時(shí),導(dǎo)通信號(hào)將被引導(dǎo)到下一個(gè)存儲(chǔ)區(qū)塊的第1行地址線。例如,第3存儲(chǔ)區(qū)塊的地址98導(dǎo)通,選擇器接收到的選擇控制信號(hào)為選擇導(dǎo)通信號(hào)是進(jìn)入下一存儲(chǔ)區(qū)塊的下一行地址線時(shí),選擇器則將導(dǎo)通信號(hào)引導(dǎo)至第2存儲(chǔ)區(qū)塊的第1行地址線(即地址1導(dǎo)通)。
在采用圖8所示的記憶體結(jié)構(gòu)時(shí),所述模擬多端口記憶體的具體控制配置方式具體如下:
1)對(duì)讀寫操作信號(hào)rwen1-rwen4的分配:
在本實(shí)施例中,可以根據(jù)一個(gè)兩位的二進(jìn)制信號(hào)addr[1:0]來確定4個(gè)存儲(chǔ)區(qū)塊與讀寫操作信號(hào)rwen1-rwen4之間的匹配關(guān)系,該信號(hào)addr[1:0]的具體分配如表格1所示:
表格1
該二進(jìn)制信號(hào)addr[1:0]具體的值由輸入的地址信號(hào)addr所決定。addr[1:0]的取值范圍為0-3的整數(shù),與存儲(chǔ)區(qū)塊的數(shù)量對(duì)應(yīng)。本領(lǐng)域技術(shù)人員可以理解的是,還可以根據(jù)存儲(chǔ)區(qū)塊的數(shù)量變化,配置更多位數(shù)的二進(jìn)制信號(hào)來確定其分配關(guān)系。例如,具有8個(gè)存儲(chǔ)區(qū)塊時(shí),該二進(jìn)制信號(hào)的取值范圍為0-7,需要3位的二進(jìn)制信號(hào)。
2)對(duì)選擇控制信號(hào)sel_n的配置:
所述選擇控制信號(hào)也可以根據(jù)信號(hào)addr[1:0]來確定,其具體規(guī)則為包括:當(dāng)addr[1:0]=1時(shí),第1地址線選擇模塊輸入的選擇控制信號(hào)為sel_1=1,其它情況則取0;當(dāng)addr[1:0]=2時(shí),第2地址線選擇模塊輸入的選擇控制信號(hào)sel_2=1,其它情況則取0;當(dāng)addr[1:0]=3時(shí),第3地址線選擇模塊輸入的選擇控制信號(hào)sel_3=1,其它情況則取0。當(dāng)?shù)刂肪€選擇模塊500輸入的選擇控制信號(hào)為1時(shí),屬于該地址線選擇模塊500的選擇器501選擇將輸入端1引導(dǎo)至輸出端。
上述對(duì)選擇控制信號(hào)se_l的配置方法還可以進(jìn)一步的推廣到具有n個(gè)存儲(chǔ)區(qū)塊的情況中使用。亦即在采用與圖8所示的記憶體相同結(jié)構(gòu)的模擬n端口記憶體時(shí),選擇控制信號(hào)sel_n的配置方法為:首先確定地址信號(hào)addr指向的存儲(chǔ)單元所在的存儲(chǔ)區(qū)塊(如第n存儲(chǔ)區(qū)塊)。然后,令第n存儲(chǔ)區(qū)塊對(duì)應(yīng)的第n地址線選擇模塊的選擇信號(hào)sel_n的值取1,其它的地址線選擇模塊的選擇信號(hào)的值取0。
3)寫入數(shù)據(jù)端口wdata1-wdata4、讀取數(shù)據(jù)端口rdata1-rdate4與存儲(chǔ)區(qū)塊之間對(duì)應(yīng)關(guān)系的配置:
設(shè)置wdata_bank(n)為第n存儲(chǔ)區(qū)塊寫入的數(shù)據(jù),rdata_bank(n)為第n存儲(chǔ)區(qū)塊讀取的數(shù)據(jù)。
所述交換網(wǎng)600通過如下所述的規(guī)則來匹配存儲(chǔ)區(qū)塊與寫入數(shù)據(jù)端口wdata1-wdata4以及讀取數(shù)據(jù)端口rdata1-rdate4:
對(duì)于wdata1-wdata4:則有wdata1=wdata_bank(addr[1:0]+1);wdata2=wdata_bank(addr[1:0]+2);wdata3=wdata_bank(addr[1:0]+3);wdata4=wdata_bank(addr[1:0]+4)。
對(duì)于讀取數(shù)據(jù)端口rdata1-rdate4:則有rdata1=rdata_bank(addr[1:0]+1);rdata2=rdata_bank(addr[1:0]+2);rdata3=rdata_bank(addr[1:0]+3);rdata4=rdata_bank(addr[1:0]+4)。
addr[1:0]+n是對(duì)應(yīng)存儲(chǔ)區(qū)塊的編號(hào)。在本實(shí)施例中,最大的編號(hào)為4。若addr[1:0]+n大于4時(shí),則依次循環(huán)至1重新計(jì)算。
通過上述配置步驟,可以確定每個(gè)存儲(chǔ)區(qū)塊中需要執(zhí)行的操作,并確定寫入數(shù)據(jù)端口wdata1-wdata4、讀取數(shù)據(jù)端口rdata1-rdate4與存儲(chǔ)區(qū)塊的對(duì)應(yīng)關(guān)系,有序的執(zhí)行讀寫操作。
以下結(jié)合實(shí)施例對(duì)圖8所示的模擬多端口記憶體的工作過程進(jìn)行詳細(xì)說明。圖10為本發(fā)明實(shí)施例提供的模擬多端口方法的方法流程圖。應(yīng)用圖10所示的方法可以實(shí)現(xiàn)圖7或者圖8所示的模擬多端口記憶體,使記憶體在單端口的硬件條件下,具有多端口記憶體的便利。
實(shí)施例1:
設(shè)圖3所示的應(yīng)用環(huán)境中,處理器20需要在記憶體10的地址2-5這四個(gè)地址上執(zhí)行讀/寫操作。其中,在地址2和3上執(zhí)行讀取操作、4和5地址上執(zhí)行寫入操作。
如圖10所示,首先記憶體接收一個(gè)數(shù)據(jù)讀寫指令。所述數(shù)據(jù)讀寫指令包括:地址信號(hào)以及讀寫操作信號(hào)(步驟100)。在實(shí)施例1中,所述模擬多端口記憶體的數(shù)據(jù)讀寫指令可以包括:一個(gè)7位的地址信號(hào)addr[6:0]=2(十進(jìn)制表達(dá)),四個(gè)讀寫控制信號(hào)(其中rwen1和rwen2為1,rwen3和rwen4為0),寫入數(shù)據(jù)端口wdata3和wdata4接收兩個(gè)寫入數(shù)據(jù),分別寫入地址4和5,并且從rdata1和rdata2分別輸出地址2和3的讀取數(shù)據(jù)。
然后,根據(jù)所述地址信號(hào)在對(duì)應(yīng)的行解碼器輸出導(dǎo)通信號(hào)(步驟200)。即根據(jù)地址信號(hào)addr[6:2],所述行解碼模塊200解碼后在行解碼器1輸出導(dǎo)通信號(hào),其它解碼器輸出無效信號(hào)。
記憶體控制器100根據(jù)地址信號(hào)addr[6:2],確定對(duì)應(yīng)的二進(jìn)制信號(hào)addr[1:0]=2。然后根據(jù)表格1,利用控制信號(hào)線ctrl1-ctrl4分別將讀寫控制信號(hào)rwen1、rwen2、rwen3以及rwen4分配到對(duì)應(yīng)存儲(chǔ)區(qū)塊的讀寫模塊300中。亦即,rwen3通過ctrl1輸出至第1存儲(chǔ)區(qū)塊,rwen4通過ctrl2輸出至第2存儲(chǔ)區(qū)塊,rwen1通過ctrl3傳輸至第3存儲(chǔ)區(qū)塊,rwen2通過ctrl4傳輸至第4存儲(chǔ)區(qū)塊。
如圖10所示,在輸出導(dǎo)通信號(hào)后,可以令所述導(dǎo)通信號(hào)輸入至各個(gè)存儲(chǔ)區(qū)塊對(duì)應(yīng)的地址線,導(dǎo)通對(duì)應(yīng)行的存儲(chǔ)單元(步驟300)。在實(shí)施例1中,根據(jù)輸入addr[1:0]=2,確定第2地址線選擇模塊的選擇控制信號(hào)sel_2為1,其它的地址線選擇模塊的選擇控制信號(hào)為0并輸出。這樣的,導(dǎo)通信號(hào)導(dǎo)通第4和第3存儲(chǔ)區(qū)塊的第1行后,在第2地址線選擇模塊的引導(dǎo)下,導(dǎo)通第2和第1存儲(chǔ)區(qū)塊的第2行(如圖8的黑色粗框顯示)。
由于具有不同的存儲(chǔ)區(qū)塊,需要根據(jù)所述讀寫操作信號(hào),控制所述存儲(chǔ)單元執(zhí)行對(duì)應(yīng)操作(步驟400)。亦即所述讀寫模塊300可以根據(jù)讀寫控制信號(hào),在對(duì)應(yīng)的存儲(chǔ)區(qū)塊執(zhí)行讀寫操作。在實(shí)施例1中,讀寫模塊300在第1和第2存儲(chǔ)區(qū)塊執(zhí)行寫入操作,而在第3和第4存儲(chǔ)區(qū)塊執(zhí)行讀取操作。
最后,還需要通過所述地址信號(hào),確定存儲(chǔ)區(qū)塊與數(shù)據(jù)輸入輸出端口的匹配關(guān)系(步驟500)。在實(shí)施例1中,可以由所述交換網(wǎng)600完成。根據(jù)addr[1:0]=2,各個(gè)交換網(wǎng)600通過上述的預(yù)定規(guī)則,將在第3和第4存儲(chǔ)區(qū)塊執(zhí)行讀取操作獲取的數(shù)據(jù),交換至rdata1和rdata2輸出。并且,將寫入數(shù)據(jù)端口wdata3和wdata4接收到的兩個(gè)用于寫入地址4和5的寫入數(shù)據(jù)分別交換至第1和第2存儲(chǔ)區(qū)塊的讀寫模塊300中,寫入第1和第2存儲(chǔ)區(qū)塊。
實(shí)施例2:
設(shè)圖3所示的應(yīng)用環(huán)境中,處理器20需要在記憶體10的地址98-1這四個(gè)地址上執(zhí)行讀寫操作。其中,地址98和1上執(zhí)行讀取操作、地址0和99地址上執(zhí)行寫入操作。
所述模擬多端口記憶體的數(shù)據(jù)讀寫指令包括:地址信號(hào)addr[6:0]=6’b110_0010(二進(jìn)制表達(dá))=98(十進(jìn)制表達(dá)),四個(gè)讀寫控制信號(hào)(分別為rwen1=1,rwen2=0,rwen3=0以及rwen4=1)。
記憶體控制器100根據(jù)地址信號(hào)addr[6:0],確定對(duì)應(yīng)的二進(jìn)制信號(hào)addr[1:0]=2’b10=2。然后根據(jù)表格1,利用控制信號(hào)線ctrl1-ctrl4分別將讀寫控制信號(hào)rwen1、rwen2、rwen3以及rwen4分配到對(duì)應(yīng)存儲(chǔ)區(qū)塊的讀寫模塊300中。亦即,rwen3通過ctrl1輸出至第1存儲(chǔ)區(qū)塊,rwen4通過ctrl2輸出至第2存儲(chǔ)區(qū)塊,rwen1通過ctrl3傳輸至第3存儲(chǔ)區(qū)塊,rwen2通過ctrl4傳輸至第4存儲(chǔ)區(qū)塊。亦即向讀寫模塊通過ctrl2和ctrl3發(fā)出寫入操作控制信號(hào),向讀寫模塊通過ctrl1和ctrl4發(fā)出讀取操作控制信號(hào)。
根據(jù)地址信號(hào)addr[6:2]=5’b11000=24,經(jīng)過行解碼模塊解碼后,第25地址解碼器輸出導(dǎo)通信號(hào),其它地址解碼器輸出無效信號(hào)(可以設(shè)導(dǎo)通信號(hào)的值為1,無效信號(hào)的值為0)。
所述地址線選擇模塊500根據(jù)addr[1:0]=2,令第2地址線選擇模塊的選擇控制信號(hào)sel_2為1,其它的地址線選擇模塊的選擇控制信號(hào)為0。這樣的,第4存儲(chǔ)區(qū)塊的第25行的存儲(chǔ)單元導(dǎo)通,第3地址線選擇模塊將導(dǎo)通信號(hào)引導(dǎo)到第3存儲(chǔ)區(qū)塊的第25行地址線。第2地址線選擇模塊的選擇器501則將第25地址解碼器輸出的導(dǎo)通信號(hào),引導(dǎo)到第2存儲(chǔ)區(qū)塊的第1行地址線上,從而令第2存儲(chǔ)區(qū)塊的第1行存儲(chǔ)單元導(dǎo)通,第1地址線選擇模塊進(jìn)一步將導(dǎo)通信號(hào)引導(dǎo)至第1存儲(chǔ)區(qū)塊的第1行地址線(如圖9所示的黑色粗框顯示)。
根據(jù)addr[1:0]=2,所述交換網(wǎng)600可以基于上述的預(yù)設(shè)規(guī)則,將wdata1交換到wdata_bank3,wdata2交換到wdata_bank4,wdata3交換到wdata_bank1以及wdata4交換到wdata_bank2。由于讀寫操作指令對(duì)第1存儲(chǔ)區(qū)塊和第4存儲(chǔ)區(qū)塊執(zhí)行讀取操作,wdata2和wdata3會(huì)被忽略。并且,將rdata_bank3交換到rdata1,rdata_bank4交換到rdata2,rdata_bank1交換到rdata3以及rdata_bank2交換到rdata4。由于讀寫操作指令對(duì)第2存儲(chǔ)區(qū)塊和第3存儲(chǔ)區(qū)塊執(zhí)行寫入操作,rdata1和rdata4會(huì)被忽略。
為滿足實(shí)施例2的導(dǎo)通信號(hào)引導(dǎo)情況,如圖8所示,需要所述導(dǎo)通信號(hào)引導(dǎo)系統(tǒng)使用連接線橫跨整個(gè)行地址解碼模塊連接地址解碼器25與每個(gè)地址線選擇模塊的首個(gè)選擇器的輸入端1。
圖9為本發(fā)明另一實(shí)施例提供的模擬多端口記憶體。如圖9所示,為避免設(shè)置上述橫跨長度大的連接線,在行解碼器1的上方還可以設(shè)置一個(gè)額外的行解碼器25。通過該額外設(shè)置的行解碼器25,可以便于實(shí)現(xiàn)地址線選擇模塊執(zhí)行將最后一行的導(dǎo)通信號(hào)引導(dǎo)至第一行的操作,不需要設(shè)置較長的連接線。
本發(fā)明實(shí)施例提供的模擬多端口記憶體,可以在使用單端口存儲(chǔ)單元的前提下,實(shí)現(xiàn)模擬多端口的效果,在一個(gè)時(shí)鐘周期內(nèi),通過對(duì)記憶體的一次讀取操作來執(zhí)行對(duì)連續(xù)n個(gè)地址的讀寫操作。該模擬多端口記憶體可以基于較少端口的存儲(chǔ)單元,在占用較少芯片面積的情況下,獲得較多端口記憶體的便利(執(zhí)行時(shí)間短并且省電)。
本領(lǐng)域技術(shù)人員根據(jù)上述實(shí)施例披露的信號(hào)配置規(guī)則,在另一些實(shí)施例中,當(dāng)模擬多端口記憶體具有更多的存儲(chǔ)區(qū)塊時(shí),例如6個(gè),8個(gè)或者更多,用以模擬更多端口數(shù)量時(shí),可以使用位數(shù)更多的信號(hào)來建立與本發(fā)明實(shí)施例類似的分配表,并規(guī)定相應(yīng)的控制信號(hào)規(guī)則。
專業(yè)人員應(yīng)該還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的多端口模擬步驟(如圖10所示的模擬多端口的數(shù)據(jù)讀寫方式),能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。所述的計(jì)算機(jī)軟件可存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體或隨機(jī)存儲(chǔ)記憶體等。
以上所述僅為本發(fā)明的實(shí)施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。