專利名稱:適合矩陣轉置的ddr存儲控制器及矩陣行列訪問方法
技術領域:
本發(fā)明涉及DDR SDRAM的存儲控制器,特別涉及適合矩陣轉置的DDR存儲控制器及矩陣行列訪問方法。
背景技術:
由雙倍速率同步動態(tài)隨機存取存儲器(以下簡稱DDR SDRAM)顆粒構成的存儲器已經(jīng)廣泛的應用在許多陣列信號處理系統(tǒng)中,這類存儲器的優(yōu)點是存儲容量大,并且可以在一個時鐘周期的上升沿和下降沿分別完成一次讀或者寫操作。
但是DDR SDRAM顆粒的讀寫需要遵從其特定的操作顆粒需要定時刷新;讀寫操作需要首先打開行;僅能在一行內完成連續(xù)的讀或者寫操作,不能夠支持任意存儲位置的隨機讀寫;讀寫操作完成后需要關閉打開的行,并對其執(zhí)行充電(percharge)操作。這些開銷導致了DDR SDRAM存儲系統(tǒng)在數(shù)據(jù)以矩陣方式組織的陣列信號處理應用中,難以兼顧行訪問效率和列訪問效率,特別是在需要完成轉置操作的應用中不能發(fā)揮DDR SDRAM可以在一個時鐘周期內完成2次讀或者寫操作的特性。
如圖1所示,二維矩陣具有行元素{A1、A2、A3……},{B1、B2、B3……}……;具有列元素{A1、B1、C1……},{A2、B2、C2……}……。對圖1所示的矩陣在現(xiàn)有DDR SDRAM存儲系統(tǒng)中有兩種存儲方式按照行元素存儲和按照列元素存儲。按照行元素存儲在現(xiàn)有的DDR SDARM存儲系統(tǒng),存儲空間如圖2所示;按照列元素存儲在現(xiàn)有的DDR SDARM存儲系統(tǒng),存儲空間如圖3所示。兩種存儲方式都不能兼顧行訪問效率和列訪問效率。以行元素存儲為例因為行元素的存儲是連續(xù)的,所以在按行訪問時,每一行的元素可以被快速的讀寫;而列元素存儲不連續(xù),這就導致了按列訪問效率低下,特別是無法利用DDR SDRAM顆粒能夠在一個時鐘周期內完成連續(xù)的2次讀或者寫操作的特性。
在現(xiàn)有技術中,還沒有能夠充分發(fā)揮DDR SDRAM顆粒2倍數(shù)據(jù)率特性,并隱藏訪問開銷的支持轉置處理的存儲控制器和矩陣行列訪問方法。
發(fā)明內容
本發(fā)明的目的是為了克服現(xiàn)有DDR SDRAM存儲系統(tǒng)中存在的難以兼顧矩陣行訪問效率和矩陣列訪問效率的缺點,提供一種能夠高效的完成陣列信號轉置操作的DDR SDRAM存儲控制器和矩陣行列訪問方法。
為了實現(xiàn)上述目的,本發(fā)明提供了一種適合矩陣轉置的DDR存儲控制器,用于DDR SDRAM存儲器中,包括數(shù)據(jù)通道3、地址生成單元4、工作模式配置單元5、中心控制單元6、時鐘單元7、讀數(shù)據(jù)總線8、寫數(shù)據(jù)總線9、地址總線10、配置總線11和控制總線12,還包括存儲顆粒A接口單元1、存儲顆粒B接口單元2,所述的存儲顆粒A接口單元1、存儲顆粒B接口單元2和所述的數(shù)據(jù)通道3通過所述的讀數(shù)據(jù)總線8和所述的寫數(shù)據(jù)總線9相連接;所述的存儲顆粒A接口單元1、存儲顆粒B接口單元2和所述的地址生成單元4通過地址總線10相連接;所述的存儲顆粒A接口單元1、存儲顆粒B接口單元2和所述的工作模式配置單元5通過所述的配置總線11相連接;所述的中心控制單元6通過控制總線12和存儲顆粒A接口單元1、存儲顆粒B接口單元2、數(shù)據(jù)通道3、地址生成單元4、工作模式配置單元5相連接;所述的時鐘單元7為整個存儲控制器提供工作需要的時鐘信號。
上述技術方案中,所述的存儲顆粒A接口單元1和存儲顆粒B接口單元2是兩個相互獨立且功能相同的存儲顆粒接口單元,它們連接DDR顆粒,產生符合DDR顆粒要求的時序,完成對DDR顆粒的各種操作;并通過地址總線10接收地址生成單元4發(fā)送的地址,通過讀數(shù)據(jù)總線8、寫數(shù)據(jù)總線9和數(shù)據(jù)通道3傳輸數(shù)據(jù),通過配置總線11接收工作模式配置單元5發(fā)出的配置命令,通過控制總線12接收中心控制單元6發(fā)出的讀寫命令;在作存儲操作時,通過中心控制單元6控制所述的存儲顆粒A接口單元1和存儲顆粒B接口單元2交替工作,隱藏DDR顆粒的操作開銷,保證數(shù)據(jù)通道3中的數(shù)據(jù)不斷流。
一種利用DDR存儲控制器的矩陣行列訪問方法,包括1)、根據(jù)DDR SDRAM存儲器的型號和所要存儲的矩陣的大小,將矩陣劃分為多個塊,使每個塊的大小和DDR SDRAM顆粒的1行大小相同;2)、將劃分好的矩陣塊交替存放在存儲顆粒A接口單元1和存儲顆粒B接口單元2控制的DDR SDRAM顆粒的行中;3)、中心控制單元6接收對矩陣的訪問命令,并產生訪問類型、訪問長度等控制信息;
4)、工作模式配置單元5根據(jù)步驟3)得到的控制信息,判斷對矩陣的訪問是行訪問還是列訪問,若為行訪問,執(zhí)行步驟5),若為列訪問,執(zhí)行步驟6);5)、工作模式配置單元5通過配置總線11發(fā)送配置命令到存儲顆粒A接口單元1和存儲顆粒B接口單元2,將DDR SDRAM顆粒設定在交叉訪問方式,然后執(zhí)行步驟7);6)、工作模式配置單元5通過配置總線11發(fā)送配置命令到存儲顆粒A接口單元1和存儲顆粒B接口單元2,將DDR SDRAM顆粒設定在順序訪問方式;7)、地址生成單元4接收訪問操作的首地址,并通過控制總線12接收中心控制單元6的控制信息,確定矩陣行操作的長度,然后依次產生所要操作的DDR顆粒行地址和DDR顆粒列地址,并將上述的行、列地址發(fā)送給存儲顆粒A接口單元1和存儲顆粒B接口單元2;8)、存儲顆粒A接口單元1和存儲顆粒B接口單元2在中心控制單元6的控制下交替工作,實現(xiàn)對矩陣中元素的訪問。
上述技術方案中,當DDR SDRAM顆粒設定在交叉訪問方式時,在所述的步驟7)中,地址生成單元4產生最低2位為“01”或者“10”的DDR顆粒列地址。
上述技術方案中,當DDR SDRAM顆粒設定在順序訪問方式時,在所述的步驟7)中,地址生成單元4產生最低2位為“01”或者“11”的DDR顆粒列地址。
本發(fā)明提出的存儲控制器和矩陣行列訪問方法充分利用了DDR顆粒2倍數(shù)據(jù)率的特性,并完全隱藏了訪問開銷,實現(xiàn)了不間斷的數(shù)據(jù)傳輸。本發(fā)明的存儲控制器可以在FPGA等可編程器件中實現(xiàn),具有簡單、靈活、方便移植的特點。
圖1是一個二維矩陣的示意圖;圖2是圖1所示二維矩陣按照行存儲時元素在地址空間的排布方式;圖3是圖1所示二維矩陣按照列存儲時元素在地址空間的排布方式;圖4是本發(fā)明的存儲控制器的結構圖;圖5是以操作長度32為例說明2個存儲顆粒接口單元交替工作的時序圖;圖6是一個2行2列矩陣的示意圖;圖7是按照本發(fā)明的存儲方法對圖6所示2行2列矩陣作存儲時的位置圖;圖8是DDR顆粒在不同工作模式下的Burst傳輸長度和順序;圖9是HY5DU12822AT作為存儲介質的存儲控制器方框圖;
圖10是64行64列矩陣分為4個塊后在本發(fā)明存儲系統(tǒng)內的存儲示意圖;圖11a是32行32列子矩陣的前16列在本發(fā)明存儲系統(tǒng)DDR SDRAM顆粒一行內的存儲位置示意圖;圖11b是32行32列子矩陣的后16列在本發(fā)明存儲系統(tǒng)DDR SDRAM顆粒一行內的存儲位置示意圖;圖12是行訪問時2個存儲顆粒接口單元交替工作的時序圖;圖13是列訪問時2個存儲顆粒接口單元交替工作的時序圖;圖14是本發(fā)明的矩陣行列訪問方法的流程圖。
圖面說明1 存儲顆粒A接口單元2 存儲顆粒B接口單元3 數(shù)據(jù)通道4 地址生成單元 5 工作模式配置單元 6 中心控制單元7 時鐘單元 8 讀數(shù)據(jù)總線 9 寫數(shù)據(jù)總線10 地址總線 11 配置總線 12 控制總線具體實施方式
下面結合附圖和具體實施方式
,對本發(fā)明作進一步說明。
如圖4所示,本發(fā)明的存儲控制器由存儲顆粒A接口單元1、存儲顆粒B接口單元2、數(shù)據(jù)通道3、地址生成單元4、工作模式配置單元5、中心控制單元6和時鐘單元7組成。存儲顆粒A接口單元1、存儲顆粒B接口單元2和數(shù)據(jù)通道3通過讀數(shù)據(jù)總線8和寫數(shù)據(jù)總線9相連接;存儲顆粒A接口單元1、存儲顆粒B接口單元2和地址生成單元4通過地址總線10相連接;存儲顆粒A接口單元1、存儲顆粒B接口單元2和工作模式配置單元5通過配置總線11相連接;中心控制單元6通過控制總線12和存儲顆粒A接口單元1、存儲顆粒B接口單元2、數(shù)據(jù)通道3、地址生成單元4、工作模式配置單元5相連接。時鐘單元7為整個存儲控制器提供工作需要的時鐘信號。整個存儲控制器使用VerilogHDL語言在Xillinx公司的FPGA內編程實現(xiàn),F(xiàn)PGA型號為XC2V4000。
所述的存儲顆粒A接口單元1和存儲顆粒B接口單元2在功能上完全相同,其主要作用是對外連接DDR顆粒,產生符合DDR顆粒要求的時序,完成對DDR顆粒的各種操作;對內通過地址總線10接收地址生成單元4發(fā)送的地址,通過讀數(shù)據(jù)總線8、寫數(shù)據(jù)總線9和數(shù)據(jù)通道3傳輸數(shù)據(jù),通過配置總線11接收工作模式配置單元5發(fā)出的配置命令,通過控制總線12接收中心控制單元6發(fā)出的讀寫命令。
所述的數(shù)據(jù)通道3對外接收寫數(shù)據(jù)或者發(fā)送讀數(shù)據(jù);對內通過讀數(shù)據(jù)總線8、寫數(shù)據(jù)總線9和2個存儲顆粒接口單元向DDR存儲顆粒傳輸數(shù)據(jù)。數(shù)據(jù)通道3還通過控制總線12接收中心控制單元6的控制信息,確定當前操作的數(shù)據(jù)流動方向。
所述的地址生成單元4對外接收讀寫操作的首地址,并通過控制總線12接收中心控制單元6的控制信息,確定讀寫操作的長度,同時確定讀寫操作是行操作還是列操作,然后產生一系列的讀寫地址,通過地址總線10送給2個存儲顆粒接口單元。
所述的工作模式配置單元5通過控制總線12接收中心控制單元6的控制信息,確定讀寫操作是行操作還是列操作,然后通過配置總線11發(fā)送配置命令到2個存儲顆粒接口單元。
所述的中心控制單元6對外接收讀寫命令,并產生整個存儲控制器工作需要的控制信息,這些控制信息包括讀或者寫操作、讀寫操作的長度、行操作或者列操作、存儲顆粒接口單元如何交替工作。中心控制單元6通過控制總線12和其它各單元交互。
利用上述的DDR存儲控制器,可實現(xiàn)對矩陣行列的訪問,矩陣行列的訪問方法包括步驟10、根據(jù)DDR SDRAM存儲器的型號和所要存儲的矩陣的大小,將矩陣劃分為多個塊,使每個塊的大小和DDR SDRAM顆粒的1行大小相同;步驟20、將劃分好的矩陣塊交替存放在存儲顆粒A接口單元1和存儲顆粒B接口單元2控制的DDR SDRAM顆粒的行中;步驟30、中心控制單元6接收對矩陣的訪問命令,并產生訪問類型、訪問長度等控制信息;步驟40、工作模式配置單元5根據(jù)步驟30得到的控制信息,判斷對矩陣的訪問是行訪問還是列訪問,若為行訪問,執(zhí)行步驟50,若為列訪問,執(zhí)行步驟60;步驟50、工作模式配置單元5通過配置總線11發(fā)送配置命令到存儲顆粒A接口單元1和存儲顆粒B接口單元2,將DDR SDRAM顆粒設定在交叉訪問方式,然后執(zhí)行步驟70;步驟60、工作模式配置單元5通過配置總線11發(fā)送配置命令到存儲顆粒A接口單元1和存儲顆粒B接口單元2,將DDR SDRAM顆粒設定在順序訪問方式;步驟70、地址生成單元4接收訪問操作的首地址,并通過控制總線12接收中心控制單元6的控制信息,確定矩陣行操作的長度,然后依次產生所要操作的DDR顆粒行地址和DDR顆粒列地址,并將上述的行、列地址發(fā)送給存儲顆粒A接口單元1和存儲顆粒B接口單元2;步驟80、存儲顆粒A接口單元1和存儲顆粒B接口單元2在中心控制單元6的控制下交替工作,實現(xiàn)對矩陣中元素的訪問。
本發(fā)明的存儲控制器和矩陣行列訪問方法的一個核心為存儲控制器中含有2個獨立的但是功能相同的存儲顆粒接口單元,中心控制單元6控制存儲顆粒A接口單元1和存儲顆粒B接口單元2交替工作,隱藏了DDR顆粒的操作開銷,保證了數(shù)據(jù)通道3中的數(shù)據(jù)不斷流。下面詳細說明工作原理。
DDR顆粒的操作開銷包括打開DDR顆粒行、關閉DDR顆粒行、定時刷新,這3項操作需要的時鐘周期最大為3、3、8(這里考慮最差情況),所以DDR顆粒的操作開銷最大為14個時鐘周期。只需中心控制單元6設置每次讀寫操作的長度大于或者等于14個時鐘周期,并控制存儲顆粒B接口單元2在存儲顆粒A接口單元1執(zhí)行開銷所需操作時開始工作、存儲顆粒A接口單元1在存儲顆粒B接口單元2執(zhí)行開銷所需操作時開始工作,就能夠完全隱藏其操作開銷。圖5以讀寫操作長度32為例,說明了2個存儲顆粒接口單元交替工作的時序。在時刻0,存儲顆粒A接口單元1開始工作;在時刻32,存儲顆粒B接口單元2開始工作,同時存儲顆粒A接口單元1進入開銷操作;在時刻64,存儲顆粒B接口單元2需要進入開銷操作,而此時存儲顆粒A接口單元1已經(jīng)完成了開銷操作,可以再次開始工作了;同樣在時刻96、時刻128,2個存儲顆粒接口單元交替的工作,保證了不間斷的數(shù)據(jù)傳輸。
本發(fā)明的存儲控制器和矩陣行列訪問方法的另一個核心為通過工作模式配置單元5和地址生成單元4實現(xiàn)了對矩陣行操作采用交叉訪問(Interleaved)方式,置DDR顆粒地址低位為“01”或者“10”;而對矩陣列操作采用順序訪問(Sequential)方式,置DDR顆粒地址低位為“01”或者“11”;克服了陣列信號的矩陣行訪問和矩陣列訪問不能同時利用DDR顆粒2倍數(shù)據(jù)率特性的缺點,最大的實現(xiàn)了DDR顆粒的傳輸帶寬。下面以2行2列矩陣的矩陣行訪問和矩陣列訪問為例,做詳細的說明。
圖6是一個2行2列矩陣,其第一行元素為a1和a2,第二行元素為b1和b2;其第一列元素為a1和b1,第二列元素為a2和b2。在矩陣行訪問時,希望能夠一次取出a1和a2,或者一次取出b1和b2;同樣,在矩陣列訪問時,希望能夠一次取出a1和b1,或者一次取出a2和b2。圖7中,給出了利用本發(fā)明矩陣行列訪問方法實現(xiàn)的存儲位置圖。將a1存放在DDR顆粒列地址的低地址為“01”的位置,a2存放在DDR顆粒列地址的低地址為“00”的位置,b1存放在DDR顆粒列地址的低地址為“10”的位置,b2存放在DDR顆粒列地址的低地址為“11”的位置。
圖8說明了DDR顆粒在不同工作模式下的突發(fā)傳輸(Burst)長度和順序。根據(jù)圖8,當需要矩陣行訪問時,采用交叉訪問(Interleaved)方式,可以在一次突發(fā)傳輸(Burst)中置DDR顆粒列地址的首地址為“01”,DDR顆粒將對“01”和“00”存儲位置操作,得到a1和a2;也可以在一次突發(fā)傳輸(Burst)中置DDR顆粒列地址的首地址為“10”,DDR顆粒將對“10”和“11”存儲位置操作,得到b1和b2。
同樣根據(jù)圖8,當需要矩陣列訪問時,采用順序訪問(Sequential)方式,可以在一次突發(fā)傳輸(Burst)中置DDR顆粒列地址的首地址為“01”,DDR顆粒將對“01”和“10”存儲位置操作,得到a1和b1;也可以在一次突發(fā)傳輸(Burst)中置DDR顆粒列地址的首地址為“11”,DDR顆粒將對“11”和“00”存儲位置操作,得到b2和a2,然后通過交換時鐘上升沿和下降沿的數(shù)據(jù),恢復a2和b2的順序。
利用上面所述的矩陣行列訪問方法,無論是矩陣行訪問,還是矩陣列訪問,都可以在一個時鐘周期得到行或者列的2個數(shù)據(jù),充分利用了DDR顆粒2倍數(shù)據(jù)率傳輸?shù)奶匦浴.斁仃嚧笥?行2列時,可以將其分解為多個2行2列的子矩陣進行同樣的處理,所以,本方法適用于不同規(guī)模的陣列信號處理。
下面采用Hynix公司的DDR SDRAM顆粒HY5DU28822ET作為存儲介質,采用本發(fā)明的矩陣行列訪問方法和存儲控制器,組成適合陣列信號轉置處理的DDRSDRAM存儲系統(tǒng),如圖9所示。
HY5DU28822ET的組織為4M×8bit×4banks;DDR顆粒的行地址為12位,4K;DDR顆粒的列地址為10位,1K。因此,HY5DU28822ET能夠支持在1K的地址范圍內任意的連續(xù)讀或者寫操作。這里把HY5DU28822ET顆粒的行地址記為Ar[11:0],把列地址記為Ac[9:0]。
以64行,64列的矩陣為例說明本發(fā)明的矩陣行列訪問方法。矩陣如圖10所示,將它分為4個塊,每個塊為32行,32列的子矩陣,其大小均為1K,恰好可以存放在HY5DU28822ET顆粒的1行中。
其中塊A、D存放在存儲單元A接口單元1控制的顆粒中,每塊占有存儲單元A接口單元1控制的DDR顆粒的1行;塊B、C存放在存儲單元B接口單元2控制的顆粒中,每塊占有存儲單元B接口單元2控制的DDR顆粒的1行。
下面以塊A為例,說明塊在DDR SDRAM顆粒1行中的存儲方法。如圖11所示,將DDR SDRAM顆粒1行中的DDR顆粒列地址Ac[9:0]表示為16進制0x000~0x3FF,32行32列的子矩陣又分為256個2行2列的基本塊,每個基本塊存放在1行中連續(xù)的4個存儲位置中,按照矩陣行方向的基本塊跳躍存放,按照矩陣列方向的基本塊連續(xù)存放。
塊B、C、D在DDR顆粒行中的存儲方法和塊A類似,不再做詳細的說明。
以訪問矩陣的第5行為例,說明如何實現(xiàn)高效的矩陣行訪問操作。第5行的元素被劃分在了塊A和塊B中。訪問時,中心控制單元6首先接收讀寫命令,并產生讀或者寫操作、讀寫操作的長度(64)、矩陣行操作等控制信息。工作模式配置單元5接收中心控制單元6的矩陣行操作控制信息,然后通過配置總線12發(fā)送配置命令到2個存儲顆粒接口單元,配置DDR SDRAM顆粒工作在交叉訪問(Interleaved)方式。地址生成單元4接收讀寫操作的首地址,并通過控制總線12接收中心控制單元6的控制信息,確定矩陣行操作的長度(64)等,然后依次產生操作的DDR顆粒行地址{0x000},DDR顆粒列地址{0x008,0x048,0x088,0x0C8,0x108,0x148,0x188,0x1C8,0x208,0x248,0x288,0x2C8,0x308,0x348,0x388,0x3C8}通過地址總線10送給2個存儲顆粒接口單元。
存儲顆粒A接口單元1首先在中心控制單元6的控制下開始工作,接收DDR顆粒行地址{0x000},并執(zhí)行對塊A中第5行的第1列到32列的訪問。在存儲顆粒A接口單元1完成第5行第32列訪問,開始進入開銷周期的同時,存儲顆粒B接口單元2開始在中心控制單元6的控制下開始工作,同樣接收DDR顆粒行地址{0x000},并執(zhí)行對塊B中第5行的第33列到64列的訪問。其工作的時間關系如圖12所示,因為充分利用了DDR SDRAM時鐘雙沿操作的特性,所以每個存儲顆粒接口單元的操作在16個時鐘周期內完成。數(shù)據(jù)通道3在中心控制單元6的控制下交替從存儲顆粒A接口單元1和存儲顆粒B接口單元2接收數(shù)據(jù),保證了訪問的高效率。
下面以訪問矩陣的第5列為例,說明如何實現(xiàn)高效的列訪問操作。第5列的元素被劃分在了塊A和塊C中。訪問時,中心控制單元6首先接收讀寫命令,并產生讀或者寫操作、讀寫操作的長度(64)、矩陣列操作等控制信息。工作模式配置單元5接收中心控制單元6的矩陣列操作控制信息,然后通過配置總線12發(fā)送配置命令到2個存儲顆粒接口單元,配置DDR SDRAM顆粒工作在順序訪問(Sequential)方式。地址生成單元4接收讀寫操作的首地址,并通過控制總線12接收中心控制單元6的控制信息,確定矩陣列操作的長度(64)等,然后依次產生操作DDR顆粒行地址{0x000,0x001}(執(zhí)行矩陣列訪問時發(fā)送的DDR顆粒行地址不同是因為矩陣列元素存放在了存儲顆粒A接口單元1控制的DDR顆粒的第1行和存儲顆粒B接口單元2控制的DDR顆粒的第2行),DDR顆粒列地址{0x081,0x085,0x089,0x08D,0x091,0x095,0x099,0x09D,0x0A1,0x0A5,0x0A9,0x0AD,0x0B1,0x0B5,0x0B9,0x0BD}通過地址總線10送給2個存儲顆粒接口單元。
存儲顆粒A接口單元1首先在中心控制單元6的控制下開始工作,接收DDR顆粒行地址{0x000},并執(zhí)行對塊A中第5列的第1行到32行的訪問。在存儲顆粒A接口單元1完成第5列第32行訪問,開始進入開銷周期的同時,存儲顆粒B接口單元2開始在中心控制單元6的控制下開始工作,接收DDR顆粒行地址{0x001},并執(zhí)行對塊C中第5列的第33行到64行的訪問。其工作的時間關系如圖13所示,和矩陣行訪問類似,因為充分利用了DDR SDRAM時鐘雙沿操作的特性,所以每個存儲顆粒接口單元的操作在16個時鐘周期內完成。數(shù)據(jù)通道3在中心控制單元6的控制下交替從存儲顆粒A接口單元1和存儲顆粒B接口單元2接收數(shù)據(jù)。
權利要求
1.一種適合矩陣轉置的DDR存儲控制器,包括數(shù)據(jù)通道(3)、地址生成單元(4)、工作模式配置單元(5)、中心控制單元(6)、時鐘單元(7)、讀數(shù)據(jù)總線(8)、寫數(shù)據(jù)總線(9)、地址總線(10)、配置總線(11)和控制總線(12),其特征在于,還包括存儲顆粒A接口單元(1)、存儲顆粒B接口單元(2),所述的存儲顆粒A接口單元(1)和所述的數(shù)據(jù)通道(3)通過所述的讀數(shù)據(jù)總線(8)和所述的寫數(shù)據(jù)總線(9)相連接,所述的存儲顆粒B接口單元(2)和所述的數(shù)據(jù)通道(3)通過所述的讀數(shù)據(jù)總線(8)和所述的寫數(shù)據(jù)總線(9)相連接;所述的存儲顆粒A接口單元(1)、存儲顆粒B接口單元(2)和所述的地址生成單元(4)通過地址總線(10)相連接;所述的存儲顆粒A接口單元(1)、存儲顆粒B接口單元(2)和所述的工作模式配置單元(5)通過所述的配置總線(11)相連接;所述的中心控制單元(6)通過控制總線(12)和存儲顆粒A接口單元(1)、存儲顆粒B接口單元(2)、數(shù)據(jù)通道(3)、地址生成單元(4)、工作模式配置單元(5)相連接;所述的時鐘單元(7)為整個存儲控制器提供工作需要的時鐘信號。
2.根據(jù)權利要求1所述的適合矩陣轉置的DDR存儲控制器,其特征在于,所述的存儲顆粒A接口單元(1)和存儲顆粒B接口單元(2)是兩個相互獨立且功能相同的存儲顆粒接口單元,它們分別連接到DDR顆粒,產生符合DDR顆粒要求的時序,完成對DDR顆粒的各種操作;并通過地址總線(10)接收地址生成單元(4)發(fā)送的地址,通過讀數(shù)據(jù)總線(8)、寫數(shù)據(jù)總線(9)和數(shù)據(jù)通道(3)傳輸數(shù)據(jù),通過配置總線(11)接收工作模式配置單元(5)發(fā)出的配置命令,通過控制總線(12)接收中心控制單元(6)發(fā)出的讀寫命令;在作存儲操作時,通過中心控制單元(6)控制所述的存儲顆粒A接口單元(1)和存儲顆粒B接口單元(2)交替工作,隱藏DDR顆粒的操作開銷,保證數(shù)據(jù)通道(3)中的數(shù)據(jù)不斷流。
3.一種利用權利要求1所述的DDR存儲控制器的矩陣行列訪問方法,包括1)、根據(jù)DDR SDRAM存儲器的型號和所要存儲的矩陣的大小,將矩陣劃分為多個塊,使每個塊的大小和DDR SDRAM顆粒的1行大小相同;2)、將劃分好的矩陣塊交替存放在存儲顆粒A接口單元(1)和存儲顆粒B接口單元(2)控制的DDR SDRAM顆粒的行中;3)、中心控制單元(6)接收對矩陣的訪問命令,并產生訪問類型、訪問長度等控制信息;4)、工作模式配置單元(5)根據(jù)步驟3)得到的控制信息,判斷對矩陣的訪問是行訪問還是列訪問,若為行訪問,執(zhí)行步驟5),若為列訪問,執(zhí)行步驟6);5)、工作模式配置單元(5)通過配置總線(11)發(fā)送配置命令到存儲顆粒A接口單元(1)和存儲顆粒B接口單元(2),將DDR SDRAM顆粒設定在交叉訪問方式,然后執(zhí)行步驟7);6)、工作模式配置單元(5)通過配置總線(11)發(fā)送配置命令到存儲顆粒A接口單元(1)和存儲顆粒B接口單元(2),將DDR SDRAM顆粒設定在順序訪問方式;7)、地址生成單元(4)接收訪問操作的首地址,并通過控制總線(12)接收中心控制單元(6)的控制信息,確定矩陣行操作的長度,然后依次產生所要操作的DDR顆粒行地址和DDR顆粒列地址,并將上述的行、列地址發(fā)送給存儲顆粒A接口單元(1)和存儲顆粒B接口單元(2);8)、存儲顆粒A接口單元(1)和存儲顆粒B接口單元(2)在中心控制單元(6)的控制下交替工作,實現(xiàn)對矩陣中元素的訪問。
4.根據(jù)權利要求4所述的矩陣行列訪問方法,其特征在于,當DDR SDRAM顆粒設定在交叉訪問方式時,在所述的步驟7)中,地址生成單元(4)產生最低2位為“01”或者“10”的DDR顆粒列地址。
5.根據(jù)權利要求4所述的矩陣行列訪問方法,其特征在于,當DDR SDRAM顆粒設定在順序訪問方式時,在所述的步驟7)中,地址生成單元(4)產生最低2位為“01”或者“11”的DDR顆粒列地址。
全文摘要
本發(fā)明公開了一種適合矩陣轉置的DDR存儲控制器,適用于DDR SDRAM存儲器,包括數(shù)據(jù)通道、地址生成單元、工作模式配置單元、中心控制單元、時鐘單元、讀數(shù)據(jù)總線、寫數(shù)據(jù)總線、地址總線、配置總線和控制總線,還包括存儲顆粒A接口單元、存儲顆粒B接口單元。本發(fā)明還提供了一種矩陣行列訪問方法,可以完全隱藏DDR顆粒的操作開銷,實現(xiàn)不間斷的數(shù)據(jù)傳輸;并在完成矩陣行訪問和矩陣列訪問時,都能夠充分利用DDR顆粒2倍數(shù)據(jù)率的特性。
文檔編號G11C7/00GK1832035SQ20051013520
公開日2006年9月13日 申請日期2005年12月27日 優(yōu)先權日2005年12月27日
發(fā)明者郭勐, 王貞松 申請人:中國科學院計算技術研究所