雙埠訪問單一動態存儲器的接口的製作方法
2023-06-03 02:51:11 3
專利名稱:雙埠訪問單一動態存儲器的接口的製作方法
技術領域:
本發明涉及計算機接口,特別涉及處理器與存儲器之間的接口,具體為雙處理器埠訪 問單一動態存儲器的接口。
背景技術:
近年來,多處理器系統中共享存儲器是研究的熱點。當前對共享存儲器的訪問埠只有 一個,這樣就增加了多處理器對這個共享存儲器訪問的衝突的可能。當有兩個或兩個以上處 理器對存儲器進行訪問時只能允許一個處理器對存儲器進行訪問,其它處理器處於等待狀 態,即各個處理器不能並行地訪問存儲器。為解決這個問題,現在普遍流行的技術主要有 利用雙埠RAM器件、釆用總線的分時復用技術。以上這些方法或多或少都存在著成本、 存儲器容量、系統性能、易用性等方面的缺陷。
直接採用雙埠 RAM器件作為共享存儲器,實現起來也比較簡單,可以給處理器提供 兩個存取埠,使兩個處理器同時進行訪問,無需總線仲裁。但是雙埠 RAM器件一般採 用靜態存儲器(如SRAM),其容量不會太大,成本比較高,不適用於大容量共享存儲器的 場合。並且當兩個處理器同時對雙埠RAM進行寫操作或者一讀一寫操作時,會產生衝突, 需在軟體或硬體上通過信箱等機制進行協調。
採用總線的分時復用技術訪問共享存儲器,兩個處理器在不同的時間段享有對總線控制 權,進而對存儲器進行訪問(例如參考專利文獻1、 2)。這種方法實現起來比較簡單,無需 複雜的仲裁邏輯,其核心方法是將存儲器的訪問時鐘設為處理器訪問時鐘的兩倍或更高,利 用開關邏輯分時接通兩個處理器和存儲器之間的控制通路。採用這種方法,不需要對處理器 的訪問進行仲裁,實現簡單,但是兩個處理器只能以固定的時隙分時享有對共享存儲器的控 制權,即使訪問的地址不發生衝突,兩個或兩個以上的處理器也不能同時對存儲器進行訪問。 即處理器不能並行進行對存儲器訪問的工作,降低了處理器訪問速率這一重要的系統性能。 參考專利文獻1利用一個2路選1的開關,加上一個時序調整的部件,讓處理器以固定的時 隙訪問存儲器。但是當訪問動態存儲器相同BANK的不同行時,必須在一行訪問結束並關閉 後才能打開另一行,固定時隙訪問策略無法解決此類衝突,專利文獻l不能應用於動態存儲 器的共享,其應用實例也是同步靜態存儲器SSRAM。參考文獻2直接採用動態存儲器 (DRAM)顆粒組建共享存儲器,其容量可以做的比較大,成本較低;在塊訪問時速度與靜 態存儲器相當。但是該專利同樣以固定的時隙分時處理多個處理器的讀寫請求,並且要求處 理器必須以動態存儲器(DRAM)的訪問時序進行訪問,這就要求存儲器的帶寬遠遠大於處 理器埠的帶寬,這對應用是十分不利的限制。而且目前有些處理器還不能直接對DRAM 直接進行訪問,需另加存儲控制器,這不利於應用。
根據以上分析,目前市場上還沒有一種針對現有的動態存儲器(如DDR SDRAM、 DDR2 SDRAM等)作為共享存儲器,實現高性能、大容量、低成本、靈活易用的共享存儲控制系 統(接口)。見申請號01135091.1中國發明專利申請公開說明書。見專利號US2006/0294322A1美國發明專利公開說明書。
發明內容
本發明為了解決採用雙埠 RAM器件作為共享存儲器和採用總線的分時復用技術訪問 共享存儲器存在的成本、存儲器容量、系統性能、易用性等方面的缺陷,提供一種雙埠訪 問單一動態存儲器的接口。該接口在容量、成本、易用性和系統性能等多方面得到綜合優化, 並能夠給處理器提供兩個(及兩個以上)訪問埠。
本發明是採用如下技術方案實現的雙埠訪問單一動態存儲器的接口,包括邏輯仲裁 模塊、處理器l時序命令接口模塊、處理器l數據緩存模塊、處理器2時序命令接口模塊、 處理器2數據緩存模塊、動態存儲器接口控制模塊、初始化模塊、刷新模塊;本發明所述的 動態存儲器可以是DDR SDRAM、 DDR2 SDRAM等;
邏輯仲裁模塊由對來自初始化模塊的初始化請求、來自刷新模塊的刷新請求、來自處理 器1時序命令接口模塊的處理器1讀寫請求、來自處理器2時序命令接口模塊的處理器2讀 寫請求進行判決的請求判決模塊,與請求判決模塊相連的狀態機模塊,與狀態機模塊相連的 控制命令生成模塊構成;請求判決模塊的判決的優先級順序為初始化請求、刷新請求、處 理器1、 2的讀請求、處理器1、 2的寫請求,相同優先級情況下,對處理器1和處理器2採 取先到先服務的策略;狀態機模塊負責整個接口的工作狀態(即工作在哪一個請求狀態下) 的切換並根據所處的工作狀態配合控制命令生成模塊生成對處理器1時序命令接口模塊的響 應信號、對處理器2時序命令接口模塊的響應信號、對動態存儲器接口控制模塊的控制命令、 初始化響應信號、刷新響應信號;
處理器時序命令接口模塊由時序命令解碼模塊、地址轉化模塊和與兩者相連的控制器模 塊構成;時序命令解碼模塊對處理器發來的控制命令進行識別和轉譯,輸送給控制器模塊, 使控制器模塊向邏輯仲裁模塊發出處理器讀寫請求信號,地址轉化模塊將處理器發來的地址 切換成動態存儲器的行和列信號,輸送給控制器模塊並由控制器模塊向動態存儲器接口控制 模塊發出地址信號;控制器模塊同時接收來自邏輯仲裁模塊的響應信號,之後向動態存儲器 接口控制模塊發出讀寫命令,向處理器數據緩存模塊發出控制命令;控制器模塊還接收來自 動態存儲器接口控制模塊的動態存儲器狀態信息(當前動態存儲器的各個BANK及其各行的 打開與關閉情況),控制器模塊向動態存儲器接口控制模塊發出的讀寫命令依據該來自動態 存儲器接口控制模塊的動態存儲器狀態信息;
處理器數據緩存模塊由控制器模塊、讀寫選通分離模塊、讀數據緩存模塊、寫數據緩存 模塊構成,控制器模塊接收來自處理器時序命令接口模塊中的控制器模塊發出的對處理器數 據緩存模塊的控制命令,並對讀寫選通分離模塊、讀數據緩存模塊、寫數據緩存模塊進行選 通控制,讀寫選通分離模塊將處理的讀寫數據分離到讀、寫數據緩存模塊中;
動態存儲器接口控制模塊由控制器模塊、內部命令選通模塊、與內部命令選通模塊相連 的動態存儲器命令模塊和BANK管理模塊、內部數據選通模塊、與內部數據選通模塊相連的 動態存儲器數據選通分離模塊構成,控制器模塊接收來自邏輯仲裁模塊中的控制命令生成模 塊發出的控制命令並將BANK管理模塊所負責的動態存儲器狀態信息反饋給處理器時序命 令接口模塊中的控制器模塊,同時對動態存儲器接口控制模塊中的其它模塊進行選通控制; 內部命令選通模塊在控制器模塊的選通控制下對來自各處理器時序命令接口模塊中的控制 器模塊的讀寫命令及地址信號,及來自初始化模塊的初始化命令、來自刷新模塊的刷新命令 進行選通並送給動態存儲器命令模塊和BANK管理模塊,動態存儲器命令模塊與動態存儲器 的控制信號線、地址信號線相連,BANK管理模塊根據對動態存儲器操作的命令和地址信號 判斷存儲器內部各BANK和行的狀態信息,並將該狀態反饋給控制器模塊;內部數據選通模 塊在控制器模塊的選通控制下實現與各處理器數據緩存模塊中的讀數據緩存模塊、寫數據緩 存模塊的選通,動態數據選通分離模塊直接與動態存儲器的數據線相連,並將數據分離成讀 數據和寫數據實現與內部數據選通模塊之間的數據交換。
本發明所述的接口還包括快速數據通道模塊,快速數據通道模塊由控制器模塊、地址比 較模塊I、地址比較模塊II、地址比較模塊III、地址比較模塊VI、快速通道模塊I、快速通道 模塊II構成;地址比較模塊I接收自處理器1時序命令接口模塊中的控制器模塊發出的寫地址信號和自處理器2時序命令接口模塊中的控制器模塊發出的讀地址信號,地址比較模塊II 接收自處理器1時序命令接口模塊中的控制器模塊發出的讀地址信號和自處理器2時序命令
接口模塊中的控制器模塊發出的寫地址信號,地址比較模塊III接收自處理器1時序命令接口
模塊中的控制器模塊發出的讀地址信號和自處理器2時序命令接口模塊中的控制器模塊發出 的讀地址信號,地址比較模塊IV接收自處理器1時序命令接口模塊中的控制器模塊發出的寫
地址信號和自處理器2時序命令接口模塊中的控制器模塊發出的寫地址信號;快速通道模塊
I溝通處理器1數據緩存模塊中的寫數據緩存模塊和處理器2數據緩存模塊中的讀數據緩存 模塊,快速通道模塊II溝通處理器2數據緩存模塊中的寫數據緩存模塊和處理器1數據緩存 模塊中的讀數據緩存模塊;處理器時序命令接口模塊中的控制器模塊還生成先於給邏輯仲裁 模塊的讀寫請求信號的給快速數據通道模塊的地址比較請求信號,動態存儲器接口控制模塊 還接收由快速數據通道模塊中的控制器模塊發來的控制信號,快速數據通道模塊中的控制器 模塊接收該來自處理器時序命令接口模塊中的控制器模塊生成的地址比較請求信號,並控制
地址比較模塊i、地址比較模塊n、地址比較模塊ni、地址比較模塊IV進行地址比較,地址
比較模塊I將比較結果送給其控制器模塊,該控制器模塊根據比較結果生成對處理器l時序 命令接口模塊的快速寫信號和對處理器2時序命接口模塊的快速讀信號,並返回給兩個處理 器時序命令接口模塊中的控制器模塊,使地址比較模塊I的比較結果為相同時,快速數據通 道模塊中的控制器模塊控制快速通道模塊I開通,同時使處理器1時序命令接口模塊中的控 制器模塊向處理器1數據緩存模塊發出(寫)控制命令,處理器2時序命令接口模塊中的控
制器模塊向處理器2數據緩存模塊發出(讀)控制命令,地址比較模塊n將比較結果送給其
控制器模塊,該控制器模塊根據比較結果生成對處理器1時序命令接口模塊的快速讀信號和 對處理器2時序命接口模塊的快速寫信號,並返回給兩個處理器時序命令接口模塊中的控制
器模塊,使地址比較模塊n的比較結果為相同時,快速數據通道模塊中的控制器模塊控制快 速通道模塊n開通,同時使處理器i時序命令接口模塊中的控制器模塊向處理器i數據緩存
模塊發出(讀)控制命令,處理器2時序命令接口模塊中的控制器模塊向處理器2數據緩存
模塊發出(寫)控制命令,地址比較模塊III將比較結果送給其控制器模塊,該控制器模塊根 據比較結果生成對其中一個處理器時序命令接口模塊的同讀操作信號和對另一個處理器時 序命令接口模塊的同讀非操作信號,並返回給兩個處理器時序命令接口模塊中的控制器模 塊,同時其控制器模塊發出對動態存儲器接口控制模塊的同讀控制信號,使地址比較模塊m 的比較結果為相同時,接收到同讀操作信號的處理器時序命令接口模塊中的控制器模塊向邏
輯仲裁模塊發出讀請求進而對動態存儲器進行讀操作,接收到同讀非操作信號的處理器時序 命令接口模塊中的控制器模塊不再向邏輯仲裁模塊發出讀請求,動態存儲器接口控制模塊中
的控制器模塊控制內部數據選通模塊將從存儲器讀出的數據同時選通送給處理器1、 2數據 緩存模塊中的讀緩存,地址比較模塊IV將比較結果送給其控制器模塊,該控制器模塊根據比 較結果生成對其中一個處理器時序命令接口模塊的同寫操作信號和對另一個處理器時序命 令接口模塊的同寫非操作信號,並返回給兩個處理器時序命令接口模塊中的控制器模塊,使 地址比較模塊IV的比較結果為相同時,接收到同寫操作信號的處理器時序命令接口模塊中的 控制器模塊向邏輯仲裁模塊發出寫請求進而對動態存儲器進行寫操作,接收到同寫非操作信 號的處理器時序命令接口模塊中的控制器模塊不再向邏輯仲裁模塊發出寫請求並丟棄本次 操作,等待處理器發來新的讀寫命令;
傳統的電路設計一般採用專用集成電路(ASIC), ASIC器件雖然通過精心設計和先進的 工藝保證良好的性能,但是由於開發成本高,設計周期長以及生成測試開銷大,只有晶片量 產後才具有較好的性價比。ASIC晶片一旦定型,其邏輯結構和性能更改比較困難。本發明 的設計先在FPGA上完成,即以上各個模塊採用硬體描述語言編寫,仿真、調試後下載到 FPGA器件內,證明可以實現雙埠訪問存儲器。然後再進行定製ASIC的設計。
本發明所述接口的有益技術效果1、兩個或兩個以上處理器可以同時並行地訪問存儲 器;當一個處理器訪問共享存儲器時,另一個處理器不必等到當前正在訪問存儲器的處理器
訪問結束即可開始訪問同一個動態存儲器;存儲器響應處理器的訪問需要的時間進一步減 少,使兩個或兩個以上的處理器可以並行地訪問存儲器,提升了系統性能。2、通過快速通 道實現了兩個處理器讀寫數據之間的快速交換,提升了系統的整體性能。3、採用預讀技術, 進一步降低處理器對存儲器的直接操作,尤其適合處理器塊讀寫的情況,提升了系統的整體 性能。4、共享存儲器採用容量比較大、成本比較低的動態存儲器(DRAM)器件。這樣一 方面加大了共享存儲器的容量,另一方面也降低了共享存儲器系統的成本,使整個共享存儲 系統的性能得到了進一步的提高。由於動態存儲器的特殊性,本控制系統完成對動態存儲器 的初始化、刷新等操作。5、處理器可以定製對存儲器的訪問時序。本發明可以在具體應用 時定製成但不局限於以下時序模式如動態存儲器、異步存儲器、AMBA總線、PC104總線、 WISHBONE總線的訪問時序中的任一種時序訪問動態存儲器。這樣簡化了處理器對存儲器 訪問的時序要求,具有易用性。
圖1是本發明所述接口的內部結構總圖。
圖2是本發明所述接口中的邏輯仲裁模塊內部結構圖。
圖3是本發明所述接口的狀態轉移圖。
圖4是本發明所述接口中的處理器時序命令接口模塊內部結構圖。
圖5是本發明所述接口中處理器時序命令接口模塊生成動態存儲器命令的狀態轉移圖。
圖6是本發明所述接口中的處理器數據緩存模塊內部結構圖。
圖7是本發明所述接口中的動態存儲器接口控制模塊內部結構圖。
圖8是本發明所述接口中的快速數據通道模塊內部結構圖。
圖l、 2、 4、 6、 7、 8中同命令端和同號線端相連。
圖中命令端為Al-初始化模塊的初始化請求,A2-刷新模塊的刷新請求,A3-處理器1 時序命令接口模塊的處理器1讀寫請求,A4-處理器2時序命令接口模塊的處理器2讀寫請 求,A5-對處理器l時序命令接口模塊的響應信號,A6-對處理器2時序命令接口模塊的響應 信號,A7-對動態存儲器接口控制模塊的控制命令,A8-初始化響應信號,A9-刷新響應信號, A10-處理器發來的控制命令,A12-處理器發來的地址,A13-向動態存儲器接口控制模塊發出 地址信號,A14-向動態存儲器接口控制模塊發出的讀寫命令,A15-向處理器數據緩存模塊發 出的控制命令,A16-動態存儲器狀態信息,A17-初始化命令,A18-刷新命令,A19-處理器時 序命令接口模塊中的控制器模塊發出的寫地址信號,A20-處理器時序命令接口模塊中的控制 器模塊發出的讀地址信號,A21-處理器時序命令接口模塊中的控制器模塊生成的給快速數據 通道模塊的地址比較請求信號,A22-快速數據通道模塊中的控制器模塊發來的同讀控制信 號,A23-快速數據通道模塊中的控制器模塊向處理器1時序命令接口模塊發出的快速寫信號, A24-快速數據通道模塊中的控制器模塊向處理器2時序命接口模塊發出的快速讀信號,A25-快速數據通道模塊中的控制器模塊向處理器1時序命令接口模塊發出的快速讀信號,A26-快速數據通道模塊中的控制器模塊向處理器2時序命接口模塊發出的快速寫信號,A27-快速 數據通道模塊中的控制器模塊向其中一個處理器時序命令接口模塊發出的同讀操作信號, A28-快速數據通道模塊中的控制器模塊向另一個處理器時序命令接口模塊發出的同讀非操 作信號,A29-快速數據通道模塊中的控制器模塊向其中一個處理器時序命令接口模塊發出的 同寫操作信號,A30-快速數據通道模塊中的控制器模塊向另 一個處理器時序命令接口模塊發 出的同寫非操作信號。
具體實施例方式
FPGA器件與ASIC相比具有現場可編程的優點,而且用FPGA實現的成熟邏輯也可以 方便的轉換成ASIC。本實施例給出一種在FPGA上實現的雙埠訪問存儲器的接口。在此 例中,動態存儲器選用DDR SDRAM,兩個處理器的訪問時序分別選用SDRAM存儲器的訪 問時序和異步存儲器的訪問時序。
雙埠訪問單一動態存儲器的接口,包括邏輯仲裁模塊、處理器l時序命令接口模塊、 處理器l數據緩存模塊、處理器2時序命令接口模塊、處理器2數據緩存模塊、動態存儲器 接口控制模塊、初始化模塊、刷新模塊(如圖1所示);本具體實施方式
中,動態存儲器選 用DDRSDRAM。與其它現有接口一樣,該接口還包括時鐘模塊,時鐘模塊將輸入的時鐘信 號變換成系統內各個模塊和動態存儲器需要的各種時鐘信號。根據存儲器的具體類型和內部 各個模塊的具體需要進行時鐘模塊定製。比如,若動態存儲器是DDRSDRAM,時鐘模塊則
需提供DQS信號需要的90度和270度的相移信號。時鐘模塊在本實施方式中是調用FPGA 內部的數字時鐘延遲鎖相環電路DLL單元,生成了卯度、180度和270度的相移信號,以 供其它各個模塊使用。
邏輯仲裁模塊由對來自初始化模塊的初始化請求A1、來自刷新模塊的刷新請求A2、來 自處理器1時序命令接口模塊的處理器1讀寫請求A3、來自處理器2時序命令接口模塊的 處理器2讀寫請求A4進行判決的請求判決模塊,與請求判決模塊相連的狀態機模塊,與狀 態機模塊相連的控制命令生成模塊構成(如圖2所示);請求判決模塊的判決的優先級順序 為初始化請求、刷新請求、處理器l、 2的讀請求、處理器l、 2的寫請求,相同優先級情 況下,對處理器1和處理器2採取先到先服務的策略;狀態機模塊負責整個接口的工作狀態 (即工作在哪一個請求狀態下)的切換並根據所處的工作狀態配合控制命令生成模塊生成對 處理器1時序命令接口模塊的響應信號A5、對處理器2時序命令接口模塊的響應信號A6、 對動態存儲器接口控制模塊的控制命令A7、初始化響應信號A8、刷新響應信號A9;邏輯 仲裁模塊對接口內部其它模塊進行控制,並且對接口內各個模塊的請求進行仲裁,尤其是各 個模塊要對動態存儲器直接訪問時需要進行仲裁。接口的工作狀態的狀態轉移圖如圖3所示。 從這張圖中可以看到接口中的處理器1、 2時序命令接口模塊和初始化、刷新模塊與DDR SDRAM模塊互連以及操作DDR SDRAM的情況。上電時,初始化模塊獲得DDR SDRAM 總線使用權並根據DDR SDRAM操作要求對DDR SDRAM進行必要的初始化設置。由於 DDR SDRAM需要定時刷新,所以在規定的刷新時刻,將DDR SDRAM的操作控制權交給 刷新模塊。其它的時間分配給處理器1和處理器2完成正常讀寫。如果遇到其它模塊正在操 作DDRSDRAM,系統在處理器1和處理器2時序命令接口模塊自動插入等待周期。圖中的 各個狀態切換由狀態機模塊實現。
處理器時序命令接口模塊由時序命令解碼模塊、地址轉化模塊和與兩者相連的控制器模 塊構成(如圖4所示);時序命令解碼模塊對處理器發來的控制命令A10進行識別和轉譯, 輸送給控制器模塊,使控制器模塊向邏輯仲裁模塊發出處理器讀寫請求信號A3(或A4),地 址轉化模塊將處理器發來的地址A12切換成動態存儲器的行和列信號,輸送給控制器模塊並 由控制器模塊向動態存儲器接口控制模塊發出地址信號A13;控制器模塊同時接收來自邏輯 仲裁模塊的響應信號A5 (或A6),之後向動態存儲器接口控制模塊發出讀寫命令A14,向 處理器數據緩存模塊發出控制命令A15;控制器模塊還接收來自動態存儲器接口控制模塊的 動態存儲器狀態信息A16 (當前動態存儲器的各個BANK及其各行的打開與關閉情況),控 制器模塊向動態存儲器接口控制模塊發出的讀寫命令A14依據該來自動態存儲器接口控制 模塊的動態存儲器狀態信息A16;可以看出,控制器模塊負責整個處理器時序命令接口模塊 的工作狀態,以及對其它模塊的命令生成。在生成對DDR SDRAM的操作命令時一方面依 據處理器發來的讀寫命令請求,另一方面還要依據DDR SDRAM的各個BANK中行的打開 和關閉狀態(即來自動態存儲器接口控制模塊的存儲器狀態反饋信息),將這兩方面結合起 來生成對DDR SDRAM的合適的操作命令。命令生成的狀態轉移圖如圖5所示。該處理器 時序命令接口模塊可以定製,即根據不同的處理器,其時序命令解碼模塊分別配置成能夠識 別和翻譯動態存儲器、異步存儲器、AMBA總線、PC104總線、WISHBONE總線中的任一 種讀寫時序命令的形式。在本具體實施方式
中,處理器1和處理器2時序命令接口模塊中的 時序命令解碼模塊分別配置成能夠識別和翻譯SDRAM存儲器讀寫時序命令和異步存儲器讀 寫時序命令的形式。處理器時序命令接口模塊可配置成對存儲器進行預讀操作,即處理器要 訪問N個數據,而處理器時序命令接口模塊中的控制器模塊向處理器數據緩存模塊、動態存 儲器接口控制模塊分別發出一次讀出2N個數據的控制命令、讀寫命令及地址信號。當處理 器下次進行讀操作時,如果就是預讀出的數據,則不用再對存儲器進行讀操作,直接把上次 預讀出的數據送給處理器,非常適合處理器經常處於塊訪問操作的場合。
處理器數據緩存模塊由控制器模塊、讀寫選通分離模塊、讀數據緩存模塊、寫數據緩存 模塊構成(如圖6所示),控制器模塊接收來自處理器時序命令接口模塊中的控制器模塊發 出的對處理器數據緩存模塊的控制命令A15,並對讀寫選通分離模塊、讀數據緩存模塊、寫 數據緩存模塊進行選通控制,讀寫選通分離模塊將處理的讀寫數據分離到讀、寫數據緩存模 塊中;該處理器數據緩存模塊分成讀緩存和寫緩存,將讀寫數據分開,可以很好的明確數據 的性質,便於訪問衝突的協調處理,同時為後面的快速數據通道提供了工作依據。讀緩存用 來緩存處理器要從存儲器中讀取的數據。它的作用類似一個快速緩衝貯存區(Cache),這裡
將處理器要讀取的數據以及後續的連續地址中的數據一次讀到緩存中,然後根據處理器的讀 請求適時地將數據送給處理器。寫緩存是用來緩存處理器將要寫到存儲器中的數據流, 一方 面調整處理器和存儲器的時序差異,另一方面,通過緩存技術可以把寫入到存儲器中的依次 連續地址上的數據合併形成併發模式一次寫入到存儲器中。
動態存儲器接口控制模塊由控制器模塊、內部命令選通模塊、與內部命令選通模塊相連
的動態存儲器命令模塊和BANK管理模塊、內部數據選通模塊、與內部數據選通模塊相連的 動態存儲器數據選通分離模塊構成(如圖7所示),控制器模塊接收來自邏輯仲裁模塊中的 控制命令生成模塊發出的控制命令A7並將BANK管理模塊所負責的動態存儲器狀態信息 A16反饋給處理器時序命令接口模塊中的控制器模塊,同時對動態存儲器接口控制模塊中的 其它模塊進行選通控制;內部命令選通模塊在控制器模塊的選通控制下對來自各處理器時序 命令接口模塊中的控制器模塊的讀寫命令A14及地址信號A13,及來自初始化模塊的初始化 命令A17、來自刷新模塊的刷新命令A18進行選通並送給動態存儲器命令模塊和BANK管 理模塊,動態存儲器命令模塊與動態存儲器的控制信號線、地址信號線相連,BANK管理模 塊根據對動態存儲器操作的命令和地址信號判斷存儲器內部各BANK和行的狀態信息,並將 該狀態反饋給控制器模塊;內部數據選通模塊在控制器模塊的選通控制下實現與各處理器數 據緩存模塊中的讀數據緩存模塊、寫數據緩存模塊的選通,動態數據選通分離模塊直接與動 態存儲器的數據線相連,並將數據分離成讀數據和寫數據實現與內部數據選通模塊之間的數 據交換。動態存儲器接口控制模塊的主要任務是接收由邏輯仲裁模塊發來的內部控制信號和 從初始化模塊、刷新模塊、處理器1和處理器2時序命令接口模塊發來的命令信號以及處理 器1和處理器2數據緩存模塊的讀寫數據信號等。另外本模塊還把由BANK管理模塊所負責 的存儲器狀態信息(當前DDR SDRAM的各個BANK和行的打開與關閉情況)通知給處理 器l、處理器2時序命令接口模塊,以便其生成正確的操作DDR SDRAM的命令。根據內部 控制信號,本模塊的控制器模塊控制內部命令選通模塊和內部數據選通模塊將適當的接口命 令選通,把命令傳給動態存儲器命令模塊和動態存儲器數據選通分離模塊。動態存儲器命令 模塊和動態存儲器數據選通分離模塊分別直接連DDR SDRAM的控制信號、地址信號和數
據信號。
本發明所述的接口還包括快速數據通道模塊,快速數據通道模塊由控制器模塊、地址比 較模塊I、地址比較模塊II、地址比較模塊III、地址比較模塊VI、快速通道模塊I、快速通道 模塊II構成(如圖8所示);地址比較模塊I接收自處理器1時序命令接口模塊中的控制器 模塊發出的寫地址信號A19和自處理器2時序命令接口模塊中的控制器模塊發出的讀地址信 號A20,地址比較模塊II接收自處理器1時序命令接口模塊中的控制器模塊發出的讀地址信 號A20和自處理器2時序命令接口模塊中的控制器模塊發出的寫地址信號A19,地址比較模 塊III接收自處理器1時序命令接口模塊中的控制器模塊發出的讀地址信號A20和自處理器2 時序命令接口模塊中的控制器模塊發出的讀地址信號A20,地址比較模塊IV接收自處理器1 時序命令接口模塊中的控制器模塊發出的寫地址信號A19和自處理器2時序命令接口模塊中 的控制器模塊發出的寫地址信號A19;快速通道模塊I溝通處理器1數據緩存模塊中的寫數 據緩存模塊和處理器2數據緩存模塊中的讀數據緩存模塊,快速通道模塊II溝通處理器2數 據緩存模塊中的寫數據緩存模塊和處理器1數據緩存模塊中的讀數據緩存模塊;處理器時序 命令接口模塊中的控制器模塊還生成先於給邏輯仲裁模塊的讀寫請求信號的給快速數據通 道模塊的地址比較請求信號A21,動態存儲器接口控制模塊還接收由快速數據通道模塊中的 控制器模塊發來的同讀控制信號A22,快速數據通道模塊中的控制器模塊接收該來自處理器 時序命令接口模塊中的控制器模塊生成的地址比較請求信號A21,並控制地址比較模塊I、 地址比較模塊n、地址比較模塊ni、地址比較模塊IV進行地址比較,地址比較模塊I將比較 結果送給其控制器模塊,該控制器模塊根據比較結果生成對處理器l時序命令接口模塊的快 速寫信號A23和對處理器2時序命接口模塊的快速讀信號A24,並返回給兩個處理器時序命 令接口模塊中的控制器模塊,使地址比較模塊I的比較結果為相同時,快速數據通道模塊中 的控制器模塊控制快速通道模塊I開通,同時使處理器1時序命令接口模塊中的控制器模塊 向處理器1數據緩存模塊發出(寫)控制命令A15,處理器2時序命令接口模塊中的控制器 模塊向處理器2數據緩存模塊發出(讀)控制命令A15,地址比較模塊II將比較結果送給其 控制器模塊,該控制器模塊根據比較結果生成對處理器1時序命令接口模塊的快速讀信號 A25和對處理器2時序命接口模塊的快速寫信號A26,並返回給兩個處理器時序命令接口模 塊中的控制器模塊,使地址比較模塊II的比較結果為相同時,快速數據通道模塊中的控制器 模塊控制快速通道模塊II開通,同時使處理器l時序命令接口模塊中的控制器模塊向處理器 l數據緩存模塊發出(讀)控制命令A15,處理器2時序命令接口模塊中的控制器模塊向處
理器2數據緩存模塊發出(寫)控制命令A15,地址比較模塊m將比較結果送給其控制器模
塊,該控制器模塊根據比較結果生成對其中一個處理器時序命令接口模塊的同讀操作信號
A27和對另一個處理器時序命令接口模塊的同讀非操作信號A28,並返回給兩個處理器時序 命令接口模塊中的控制器模塊,同時快速數據通道模塊中的控制器模塊發出對動態存儲器接
口控制模塊的同讀控制信號A22,使地址比較模塊in的比較結果為相同時,接收到同讀操作
信號A27的處理器時序命令接口模塊中的控制器模塊向邏輯仲裁模塊發出讀請求進而對動 態存儲器進行讀操作,接收到同讀非操作信號A28的處理器時序命令接口模塊中的控制器模 塊不再向邏輯仲裁模塊發出讀請求,動態存儲器接口模塊中的控制器模塊控制內部數據選通 模塊將從存儲器讀出的數據同時選通送給處理器1、 2數據緩存模塊中的讀緩存,地址比較 模塊IV將比較結果送給其控制器模塊,該控制器模塊根據比較結果生成對其中一個處理器時 序命令接口模塊的同寫操作信號A29和對另一個處理器時序命令接口模塊的同寫非操作信 號A30,並返回給兩個處理器時序命令接口模塊中的控制器模塊,使地址比較模塊IV的比較 結果為相同時,接收到同寫操作信號A29的處理器時序命令接口模塊中的控制器模塊向邏輯 仲裁模塊發出寫請求進而對動態存儲器進行寫操作,接收到同寫非操作信號A30的處理器時 序命令接口模塊中的控制器模塊不再向邏輯仲裁模塊發出寫請求並丟棄本次操作,等待處理 器發來新的讀寫命令;快速數據通道模塊是為解決兩個處理器針對同一個存儲器地址同時進 行讀寫發生的衝突而設計的。當兩個處理器同時讀同一個存儲器地址時,在存儲器端總線上 只需發生一個讀動作,通過處理器數據緩存模塊中的兩個讀緩存分別實現兩個處理器的讀 出;當兩個處理器同時寫入同一個存儲器地址時,只需完成其中一個或稍遲提出的寫動作, 所以在存儲器端總線上也是只發生一個寫動作;當其中一個處理器要讀的數據正好是另一個 處理器要寫入的數據,就可以通過這個快速數據通道,把要寫入的數據直接送到處理器的讀 緩存,同時在存儲器端總線上實現一個寫動作。利用快速數據通道模塊過濾掉兩個處理器針 對同一個存儲器地址同時進行讀寫發生的上述三種衝突後,本發明所述的接口集中考慮解決 兩個處理器同時讀寫不同的存儲器地址的衝突,這樣大大地簡化了控制系統面臨的控制風 險。再具體地講,快速數據通道模塊是專為解決處理器l、處理器2讀寫衝突設計的,如果 處理器l、處理器2在讀寫過程中,其讀寫數據不是同一個地址,即地址比較模塊I、地址比 較模塊ii、地址比較模塊in、地址比較模塊IV的輸出為0時,本模塊不動作。如果處理器l 要讀的數據地址與處理器2要寫的數據地址相同,即地址比較模塊II輸出為1,這樣就開啟 快速通道模塊II,把處理器2寫緩存中的數據快速地讀到處理器1的讀緩存中。這樣處理器l時序命令接口模塊就不用再對DDR SDRAM申請讀操作。類似地,地址比較模塊I和快速 通道模塊I的工作原理與上面完全一致。如果處理器1要讀的數據地址與處理器2要讀的數 據地址相同,即地址比較模塊III輸出為1,這樣就由快速數據通道模塊的控制器模塊分別向 處理器1、 2時序命令接口模塊返回同讀操作信號和同讀非操作信號,同時向動態存儲器接 口控制模塊的控制器發同讀控制信號,處理器l時序命令接口模塊收到同讀操作信號後向邏 輯仲裁模塊請求讀操作,進而訪問動態存儲器,處理器2時序命令接口模塊收到同讀非操作 信號後不再向邏輯仲裁模塊請求讀操作,動態存儲器接口控制模塊中的控制器模塊控制內部 數據選通模塊將從存儲器中讀出的數據同時送給處理器1、 2數據緩存模塊的讀緩存中。如 果處理器1要寫的數據地址與處理器2要寫的數據地址相同,即地址比較模塊IV輸出為1, 這樣就由快速數據通道模塊的控制器模塊分別向處理器1、 2時序命令接口模塊返回同寫操 作信號和同寫非操作信號,處理器l時序命令接口模塊接收到同寫操作信號後向邏輯仲裁模 塊請求寫操作,進而訪問動態存儲器,處理器2時序命令接口模塊收到同寫非操作信號後放 棄本次寫操作,等待處理器的下一個讀寫命令。進一步來說,當處理器l進行讀操作,同時 進行快速通道判斷和預讀判斷,如果快速通道工作,則直接把處理器2數據緩存模塊中的寫 緩存取出的數據送給處理器l。如果快速通道不工作,預讀成功,則把處理器l數據緩存中 的讀緩存數據送給處理器l。如果快速通道不工作,預讀也不成功,則處理器l時序命令接 口模塊向邏輯仲裁模塊申請對存儲器進行讀操作。如果處理器1、 2同時讀同一個地址中的 數據,則只有一個處理器時序命令接口模塊生成的讀命令送給動態存儲器,而從動態存儲器 讀出的數據同時送給處理器1、 2數據緩存模塊中的讀緩存中,進而送給處理器。如果處理 器1、 2同時寫一個地址中的數據,則只有一個處理器時序命令接口模塊生成寫命令,並將 數據寫到動態存儲器中,另一個處理器丟棄本次寫命令,等待處理器的下一個讀寫命令。
初始化和刷新模塊生成對DDR SDRAM存儲器的初始化和刷新操作。上電時,根據DDR SDRAM的操作手冊,對其進行初始化操作。通過初始化操作,DDR SDRAM進入正常工作 狀態。另外,由於DDR SDRAM是依靠電容來存儲信息的,電容又是傾向於放電的元器件, 所以DDR SDRAM的每一行都要在64ms內至少刷新一次,這樣就可以根據總行數算出刷新 間隔。如果一片DDR SDRAM總共有4個BANK,每個BANK中又有4096行,每次執行刷 新操作,4個BANK同時各自刷新其中一行,則刷新間隔為64ms/4096=15.625us。刷新模 塊中,包含了一個計數器,每15.625us向邏輯仲裁模塊提出刷新DDR SDRAM操作的請求。 在本實施例中刷新間隔是可以根據具體晶片的行數進行配置的。
權利要求
1、一種雙埠訪問單一動態存儲器的接口,其特徵為包括邏輯仲裁模塊、處理器1時序命令接口模塊、處理器1數據緩存模塊、處理器2時序命令接口模塊、處理器2數據緩存模塊、動態存儲器接口控制模塊、初始化模塊、刷新模塊;邏輯仲裁模塊由對來自初始化模塊的初始化請求(A1)、來自刷新模塊的刷新請求(A2)、來自處理器1時序命令接口模塊的處理器1讀寫請求(A3)、來自處理器2時序命令接口模塊的處理器2讀寫請求(A4)進行判決的請求判決模塊,與請求判決模塊相連的狀態機模塊,與狀態機模塊相連的控制命令生成模塊構成;狀態機模塊負責整個接口的工作狀態的切換並根據所處的工作狀態配合控制命令生成模塊生成對處理器1時序命令接口模塊的響應信號(A5)、對處理器2時序命令接口模塊的響應信號(A6)、對動態存儲器接口控制模塊的控制命令(A7)、初始化響應信號(A8)、刷新響應信號(A9);處理器時序命令接口模塊由時序命令解碼模塊、地址轉化模塊和與兩者相連的控制器模塊構成;時序命令解碼模塊對處理器發來的控制命令(A10)進行識別和轉譯,輸送給控制器模塊,使控制器模塊向邏輯仲裁模塊發出處理器讀寫請求信號(A3或A4),地址轉化模塊將處理器發來的地址(A12)切換成動態存儲器的行和列信號,輸送給控制器模塊並由控制器模塊向動態存儲器接口控制模塊發出地址信號(A13);控制器模塊同時接收來自邏輯仲裁模塊的響應信號(A5或A6),之後向動態存儲器接口控制模塊發出讀寫命令(A14),向處理器數據緩存模塊發出控制命令(A15);控制器模塊還接收來自動態存儲器接口控制模塊的動態存儲器狀態信息(A16),控制器模塊向動態存儲器接口控制模塊發出的讀寫命令(A14)依據該來自動態存儲器接口控制模塊的動態存儲器狀態信息(A16);處理器數據緩存模塊由控制器模塊、讀寫選通分離模塊、讀數據緩存模塊、寫數據緩存模塊構成,控制器模塊接收來自處理器時序命令接口模塊中的控制器模塊發出的對處理器數據緩存模塊的控制命令(A15),並對讀寫選通分離模塊、讀數據緩存模塊、寫數據緩存模塊進行選通控制,讀寫選通分離模塊將處理的讀寫數據分離到讀、寫數據緩存模塊中;動態存儲器接口控制模塊由控制器模塊、內部命令選通模塊、與內部命令選通模塊相連的動態存儲器命令模塊和BANK管理模塊、內部數據選通模塊、與內部數據選通模塊相連的動態存儲器數據選通分離模塊構成,控制器模塊接收來自邏輯仲裁模塊中的控制命令生成模塊發出的控制命令(A7)並將BANK管理模塊所負責的動態存儲器狀態信息(A16)反饋給處理器時序命令接口模塊中的控制器模塊,同時對動態存儲器接口控制模塊中的其它模塊進行選通控制;內部命令選通模塊在控制器模塊的選通控制下對來自各處理器時序命令接口模塊中的控制器模塊的讀寫命令(A14)及地址信號(A13),及來自初始化模塊的初始化命令(A17)、來自刷新模塊的刷新命令(A18)進行選通並送給動態存儲器命令模塊和BANK管理模塊,動態存儲器命令模塊與動態存儲器的控制信號線、地址信號線相連,BANK管理模塊根據對動態存儲器操作的命令和地址信號判斷存儲器內部各BANK和行的狀態信息,並將該狀態反饋給控制器模塊;內部數據選通模塊在控制器模塊的選通控制下實現與各處理器數據緩存模塊中的讀數據緩存模塊、寫數據緩存模塊的選通,動態數據選通分離模塊直接與動態存儲器的數據線相連,並將數據分離成讀數據和寫數據實現與內部數據選通模塊之間的數據交換。
2、如權利要求1所述的雙埠訪問單一動態存儲器的接口,其特徵為還包括快速數 據通道模塊,快速數據通道模塊由控制器模塊、地址比較模塊I、地址比較模塊II、地址比較模塊m、地址比較模塊vi、快速通道模塊i、快速通道模塊n構成;地址比較模塊i接收自處理器l時序命令接口模塊中的控制器模塊發出的寫地址信號(A19)和自處理器2時序 命令接口模塊中的控制器模塊發出的讀地址信號(A20),地址比較模塊II接收自處理器1 時序命令接口模塊中的控制器模塊發出的讀地址信號(A20)和自處理器2時序命令接口模 塊中的控制器模塊發出的寫地址信號(A19),地址比較模塊III接收自處理器1時序命令接口 模塊中的控制器模塊發出的讀地址信號(A20)和自處理器2時序命令接口模塊中的控制器 模塊發出的讀地址信號(A20),地址比較模塊IV接收自處理器1時序命令接口模塊中的控制 器模塊發出的寫地址信號(A19)和自處理器2時序命令接口模塊中的控制器模塊發出的寫 地址信號(A19);快速通道模塊I溝通處理器l數據緩存模塊中的寫數據緩存模塊和處理器 2數據緩存模塊中的讀數據緩存模塊,快速通道模塊II溝通處理器2數據緩存模塊中的寫數 據緩存模塊和處理器1數據緩存模塊中的讀數據緩存模塊;處理器時序命令接口模塊中的控 制器模塊還生成先於給邏輯仲裁模塊的讀寫請求信號的給快速數據通道模塊的地址比較請 求信號(A21),動態存儲器接口控制模塊還接收由快速數據通道模塊中的控制器模塊發來的 同讀控制信號(A22),快速數據通道模塊中的控制器模塊接收該來自處理器時序命令接口模 塊中的控制器模塊生成的地址比較請求信號(A21),並控制地址比較模塊I、地址比較模塊 II、地址比較模塊III、地址比較模塊IV進行地址比較,地址比較模塊I將比較結果送給其控 制器模塊,該控制器模塊根據比較結果生成對處理器1時序命令接口模塊的快速寫信號 (A23)和對處理器2時序命接口模塊的快速讀信號(A24),並返回給兩個處理器時序命令 接口模塊中的控制器模塊,使地址比較模塊i的比較結果為相同時,快速數據通道模塊中的 控制器模塊控制快速通道模塊i開通,同時使處理器1時序命令接口模塊中的控制器模塊向 處理器1數據緩存模塊發出控制命令(a15),處理器2時序命令接口模塊中的控制器模塊向 處理器2數據緩存模塊發出控制命令(a15),地址比較模塊ii將比較結果送給其控制器模塊, 該控制器模塊根據比較結果生成對處理器1時序命令接口模塊的快速讀信號(a25)和對處 理器2時序命接口模塊的快速寫信號(a26),並返回給兩個處理器時序命令接口模塊中的控 制器模塊,使地址比較模塊ii的比較結果為相同時,快速數據通道模塊中的控制器模塊控制 快速通道模塊ii開通,同時使處理器1時序命令接口模塊中的控制器模塊向處理器1數據緩 存模塊發出控制命令(a15),處理器2時序命令接口模塊中的控制器模塊向處理器2數據緩存模塊發出控制命令(ai5),地址比較模塊in將比較結果送給其控制器模塊,該控制器模塊根據比較結果生成對其中一個處理器時序命令接口模塊的同讀操作信號(a27)和對另一個 處理器時序命令接口模塊的同讀非操作信號(a28),並返回給兩個處理器時序命令接口模塊 中的控制器模塊,同時快速數據通道模塊中的控制器模塊發出對動態存儲器接口控制模塊的 同讀控制信號(a22),使地址比較模塊ni的比較結果為相同時,接收到同讀操作信號(a27) 的處理器時序命令接口模塊中的控制器模塊向邏輯仲裁模塊發出讀請求進而對動態存儲器 進行讀操作,接收到同讀非操作信號(a28)的處理器時序命令接口模塊中的控制器模塊不 再向邏輯仲裁模塊發出讀請求,動態存儲器接口模塊中的控制器模塊控制內部數據選通模塊 將從存儲器讀出的數據同時選通送給處理器1、 2數據緩存模塊中的讀緩存,地址比較模塊 iv將比較結果送給其控制器模塊,該控制器模塊根據比較結果生成對其中一個處理器時序命 令接口模塊的同寫操作信號(a29)和對另一個處理器時序命令接口模塊的同寫非操作信號 (a30),並返回給兩個處理器時序命令接口模塊中的控制器模塊,使地址比較模塊iv的比較 結果為相同時,接收到同寫操作信號(a29)的處理器時序命令接口模塊中的控制器模塊向 邏輯仲裁模塊發出寫請求進而對動態存儲器進行寫操作,接收到同寫非操作信號(a30)的 處理器時序命令接口模塊中的控制器模塊不再向邏輯仲裁模塊發出寫請求並丟棄本次操作, 等待處理器發來新的讀寫命令。
3、 如權利要求1或2所述的雙埠訪問單一動態存儲器的接口,其特徵為動態存儲 器選用ddr sdram 。
4、 如權利要求1或2所述的雙埠訪問單一動態存儲器的接口,其特徵為處理器時 序命令接口模塊可以定製,即根據不同的處理器,其時序命令解碼模塊分別配置成能夠識別和翻譯動態存儲器、異步存儲器、AMBA總線、PC104總線、WISHBONE總線中的任一種 讀寫時序命令的形式。
5、 如權利要求1或2所述的雙埠訪問單一動態存儲器的接口,其特徵為處理器時 序命令接口模塊可配置成對存儲器進行預讀操作,即處理器要訪問N個數據,而處理器時序 命令接口模塊中的控制器模塊向處理器數據緩存模塊、動態存儲器接口控制模塊分別發出一 次讀出2N個數據的控制命令、讀寫命令及地址信號。
6、 如權利要求4所述的雙埠訪問單一動態存儲器的接口,其特徵為處理器時序命 令接口模塊可配置成對存儲器進行預讀操作,即處理器要訪問N個數據,而處理器時序命令 接口模塊中的控制器模塊向處理器數據緩存模塊、動態存儲器接口控制模塊分別發出一次讀 出2N個數據的控制命令、讀寫命令及地址信號。
全文摘要
本發明涉及計算機接口,具體為雙埠訪問單一動態存儲器的接口。解決採用雙埠RAM器件作為共享存儲器和採用總線的分時復用技術訪問共享存儲器存在的成本、存儲器容量、系統性能、易用性等方面的缺陷。包括邏輯仲裁模塊、處理器1時序命令接口模塊、處理器1數據緩存模塊、處理器2時序命令接口模塊、處理器2數據緩存模塊、動態存儲器接口控制模塊、初始化模塊、刷新模塊。該接口使兩個或兩個以上處理器可以同時並行地訪問動態存儲器;當一個處理器訪問共享動態存儲器時,另一個處理器不必等到當前正在訪問存儲器的處理器訪問結束即可開始訪問同一個動態存儲器;存儲器響應處理器的訪問需要的時間進一步減少,提升了系統性能。
文檔編號G06F13/16GK101196856SQ20081005440
公開日2008年6月11日 申請日期2008年1月4日 優先權日2008年1月4日
發明者剛 張, 陌 張, 偉 李, 謝克明 申請人:太原理工大學