本發(fā)明專利技術(shù)公開了一種基于FPGA的亂序內(nèi)存控制器及其實現(xiàn)方法,主要包括前端部分和后端部分,前端部分主要用于負(fù)責(zé)處理系統(tǒng)總線請求和仲裁、并負(fù)責(zé)將讀寫請求信息傳遞給后端和對數(shù)據(jù)通路的傳輸實現(xiàn);后端部分主要用于實現(xiàn)基于亂序內(nèi)存控制器的硬件控制邏輯,包括內(nèi)存映射邏輯,標(biāo)簽管理邏輯和內(nèi)存控制命令生成邏輯等;還包括穿過前端部分和后端部分、且用于提供單獨的讀通道和寫通道的數(shù)據(jù)路徑。該基于FPGA的亂序內(nèi)存控制器及其實現(xiàn)方法,可以實現(xiàn)操作過程靈活、空操作指令少、延遲周期短和工作效率高的優(yōu)點。
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)涉及計算機(jī)內(nèi)存控制器
,具體地,涉及一種基于FPGA的亂序內(nèi)存控制器及其實現(xiàn)方法。
技術(shù)介紹
在過去的數(shù)十年中,隨機(jī)存儲器(random access memory,簡稱RAM)—直是計算機(jī)系統(tǒng)的基本組成部分,一般用于系統(tǒng)處理中的中間存儲。在帶寬方面,根據(jù)帶寬、功能消耗和制造成本等不同的要求,有不同類型的RAM。例如,有兩個通用的RAM類型,一個是具有靜止存取功能的內(nèi)存(Static RAM,簡稱SRAM),一個是動態(tài)隨機(jī)存取存儲器(Dynamic Random Access Memory,S卩Dynamic RAM,簡稱DRAM)。SRAM由1970年推出,通常用于快速片上的內(nèi)存,可以低延遲訪問,所以SRAM經(jīng)常被使用的內(nèi)存結(jié)構(gòu)中較高層次中的高速緩沖存儲器和便簽存儲器中用以提高性能。DRAM是IBM的Robert Dennard在1968年專利技術(shù)的,價格要遠(yuǎn)遠(yuǎn)低于SRAM,DRAM在制造中優(yōu)化過程工藝技術(shù),使其能夠達(dá)到很高的密度和速度。在近十年內(nèi),DRAM的設(shè)計一直在不斷地改進(jìn),一個時鐘周期添加到之前的異步 DRAM接口減少在突發(fā)傳輸中的內(nèi)存控制的同步的開銷,這種類型的內(nèi)存被稱為同步DRAM, 也就是同步動態(tài)隨機(jī)存儲器(Synchronous Dynamic Random Access Me mory,簡稱SDRAM)。 在2001年,一種新一代的SDRAM面世,帶寬有了顯著的提高,這些內(nèi)存同時在時鐘上升沿和下降沿時傳輸數(shù)據(jù),所以被稱為雙倍速率同步動態(tài)隨機(jī)存儲器(Double Data Rate SDRAM, 簡稱DDR SDRAM)的縮寫,第二代和第三代分別被稱為四倍資料率同步動態(tài)隨機(jī)存取內(nèi)存 (Double Data Rate 2,簡稱DDR2)和八倍資料率同步動態(tài)隨機(jī)存取內(nèi)存(DDR3 SDRAM,簡稱 DDR3,是DDR2 SDRAM的后繼者)雖然設(shè)計非常類似,但是分別擴(kuò)展到更高的時鐘周期和帶寬。對SDRAM內(nèi)存控制器接口的實現(xiàn),是通過SDRAM協(xié)議來實現(xiàn)的,這個協(xié)議包括 6個命令,分別是無操作命令(No operation)、激活操作命令(Activate)、寫操作命令 (Write)、讀操作命令(Read)、預(yù)讀取操作命令(Precharge)和刷新操作命令(Refresh)。其中,No operation命令是表示沒有操作命令,防止不需要的命令在空閑或者等待時注冊。Active命令是打開內(nèi)存隊列中的一行和保存這個行到行緩存中。一旦行請求被打開,讀和寫命令可以在行緩存發(fā)出請求訪問列,這些突發(fā)長度都是4個或8個字。當(dāng)內(nèi)存初始化的時候DDR2內(nèi)存的突發(fā)長度就開始運(yùn)作,DDR3則允許在每次訪問的時候突發(fā)長度發(fā)生改變。一個突發(fā)長度為4則僅支持DDR3設(shè)備上的突發(fā)突變機(jī)制,比如一個突發(fā)突變的請求在同一時間作為一個8個字的突發(fā),但是只能在一半的時間內(nèi)傳輸數(shù)據(jù)。Read命令通常用來初始一個突發(fā)的讀訪問一個有效的行。讀命令可以發(fā)出一個自動預(yù)充電表不,在傳輸完成后自動預(yù)充電。Write命令通常用來初始一個突發(fā)的寫訪問一個有效的行。寫命令可以發(fā)出一個自動預(yù)充電表不,在傳輸完成后自動預(yù)充電。Precharge命令正好與Activate命令相反,它復(fù)制了在內(nèi)存隊列中行緩存的內(nèi)容回到它所在的地方。Refresh命令為了防止由于泄漏的數(shù)據(jù)丟失,必須經(jīng)常給電容器充電。多刷新命令時要刷新整個存儲陣列,每個命令只刷新電容器的一小部分。所有的bank都必須預(yù)充電在刷新命令發(fā)出之前。內(nèi)存控制器是計算機(jī)系統(tǒng)內(nèi)部控制內(nèi)存并且通過內(nèi)存控制器使內(nèi)存與CPU之間交換數(shù)據(jù)的重要組成部分。內(nèi)存控制器決定了計算機(jī)系統(tǒng)所能使用的最大內(nèi)存容量、內(nèi)存 BANK數(shù)、內(nèi)存類型和速度、內(nèi)存顆粒數(shù)據(jù)深度和數(shù)據(jù)寬度等等重要參數(shù),也就是說決定了計算機(jī)系統(tǒng)的內(nèi)存性能,從而也對計算機(jī)系統(tǒng)的整體性能產(chǎn)生較大影響。隨著計算機(jī)技術(shù)發(fā)展,內(nèi)存控制器分為傳統(tǒng)型和整合型兩種。傳統(tǒng)的計算機(jī)系統(tǒng) (PU要和內(nèi)存進(jìn)行數(shù)據(jù)交換,需要經(jīng)過多級傳輸,數(shù)據(jù)延遲比較大而影響計算機(jī)系統(tǒng)的整體性能;整合型內(nèi)存控制器直接與CPU進(jìn)行數(shù)據(jù)傳輸,提高計算機(jī)系統(tǒng)的整體性能,整合型內(nèi)存控制器是今后的發(fā)展方向,而且其技術(shù)也越來越完善,內(nèi)存控制器的工作方式和實現(xiàn)將決定計算機(jī)系統(tǒng)的整體性能。大多數(shù)內(nèi)存控制器的工作方式包括三個主要模塊接口控制,命令發(fā)生器和數(shù)據(jù)通路。各種不同的內(nèi)存控制器根本的不同在于其內(nèi)部的邏輯功能設(shè)計,大多數(shù)內(nèi)存控制器的內(nèi)部邏輯功能設(shè)計都是順序執(zhí)行請求命令來對其bank的讀寫和突發(fā)操作,在非連續(xù)讀寫操作中每次都需要激活行地址,增加了空操作指令延時,從而影響系統(tǒng)的整體性能。大多數(shù)內(nèi)存控制器的內(nèi)部邏輯的功能設(shè)計都是按順序執(zhí)行請求命令,對bank進(jìn)行讀寫和突發(fā)操作,這樣就在非連續(xù)性的讀寫操作中每次都必須激活行地址,從而增加了空操作指令的延時,造成了數(shù)據(jù)延遲比較大,最終影響了計算機(jī)系統(tǒng)的整體性能。
技術(shù)實現(xiàn)思路
本專利技術(shù)的目的在于,針對上述問題,提出一種基于FPGA的亂序內(nèi)存控制器,以實現(xiàn)操作過程靈活、空操作指令少、延遲周期短和工作效率高的優(yōu)點。本專利技術(shù)的第二目的在于,提出一種基于FPGA的亂序內(nèi)存控制器的實現(xiàn)方法。為實現(xiàn)上述目的,本專利技術(shù)采用的技術(shù)方案是一種基于FPGA的亂序內(nèi)存控制器, 主要包括前端部分用于基于系統(tǒng)的讀寫內(nèi)存請求命令,主要負(fù)責(zé)系統(tǒng)的總線請求和仲裁,并向后端部分發(fā)送發(fā)送讀寫請求命令、數(shù)據(jù)和地址信息等;后端部分用于負(fù)責(zé)實現(xiàn)基于FPGA的亂序內(nèi)存控制器的包括內(nèi)存映射邏輯、標(biāo)簽管理邏輯和內(nèi)存命令生成器邏輯的硬件控制邏輯;在后端部分中,內(nèi)存命令生成器輸出的命令行信號接口,直接與SDRAM器件的輸入接口連接,用于實現(xiàn)對SDRAM的讀寫控制;以及, 數(shù)據(jù)路徑穿過所述前端部分和后端部分,用于提供單獨的讀通道和寫通道,實現(xiàn)讀寫數(shù)據(jù)在系統(tǒng)端和內(nèi)存之間的數(shù)據(jù)通路。進(jìn)一步地,所述后端部分也就是內(nèi)存控制讀寫硬件邏輯,包括內(nèi)存映射邏輯模塊、 標(biāo)簽管理邏輯模塊、和內(nèi)存命令生成器;所述亂序內(nèi)存控制器邏輯模塊接收前端部分的系統(tǒng)請求和仲裁信息,通過內(nèi)存控制邏輯模塊實現(xiàn)邏輯地址到內(nèi)存物理地址的映射,通過標(biāo)簽管理邏輯模塊和統(tǒng)一的調(diào)度機(jī)制實現(xiàn)對內(nèi)存控制命令的產(chǎn)生和管理內(nèi)存的讀寫;所述亂序內(nèi)存控制器的命令生成器模塊的下端,與內(nèi)存硬件接口相連。進(jìn)一步地,所述內(nèi)存命令生成器的SDRAM內(nèi)存控制命令的產(chǎn)生,符合SDRAM協(xié)議規(guī)定的讀寫時序要求,主要是基于內(nèi)存命令生成器亂序內(nèi)存控制邏輯的時序狀態(tài)機(jī)模塊和時序狀態(tài)緩存模塊,時序狀態(tài)機(jī)模塊實現(xiàn)命令控制狀態(tài)的跳轉(zhuǎn)和時序要求,時序狀態(tài)緩存模塊實現(xiàn)對命令信號的緩存控制;所述內(nèi)存命令生成器模塊的上端,連接亂序內(nèi)存控制器的內(nèi)存控制讀寫硬件邏輯。進(jìn)一步地,所述內(nèi)存控制器讀寫模塊,用于實現(xiàn)內(nèi)存控制器主要讀寫邏輯;內(nèi)存控制讀寫硬件邏輯,由Bank狀態(tài)機(jī)模塊來實現(xiàn)統(tǒng)一的讀寫調(diào)度和亂序控制,亂序邏輯控制通過標(biāo)簽管理邏輯模塊的硬件邏輯實現(xiàn)。進(jìn)一步地,所述后端部分的內(nèi)存控制讀寫硬件邏輯模塊,處理總線請求和仲裁信息包括系統(tǒng)請求緩存模塊(mib_req_fifo)、bank緩存模塊(bank_fifo)、bank狀態(tài)機(jī)模塊 (bank_machine)和命令時序發(fā)生器模塊(sequece_machi本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點】
一種基于FPGA的亂序內(nèi)存控制器,其特征在于,主要包括:前端部分:用于基于系統(tǒng)的讀寫內(nèi)存請求命令,主要負(fù)責(zé)系統(tǒng)總線請求和仲裁,并向后端部分發(fā)送讀寫請求命令、數(shù)據(jù)和地址信息;?后端部分:用于負(fù)責(zé)實現(xiàn)基于FPGA的亂序內(nèi)存控制器的包括內(nèi)存映射邏輯、標(biāo)簽管理邏輯和內(nèi)存控制讀寫邏輯以及內(nèi)存命令生成器邏輯的硬件控制邏輯;在后端部分中,內(nèi)存命令生成器輸出的命令行信號接口,直接與SDRAM器件的輸入接口連接,用于實現(xiàn)對SDRAM的讀寫控制;數(shù)據(jù)路徑:穿過所述前端部分和后端部分,用于提供單獨的讀通道和寫通道,實現(xiàn)讀寫數(shù)據(jù)在系統(tǒng)端和內(nèi)存之間的數(shù)據(jù)通路。
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:張慶敏,張衡,胡剛,
申請(專利權(quán))人:無錫眾志和達(dá)存儲技術(shù)股份有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。