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