專利名稱:用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲器存取的技術(shù)領(lǐng)域,尤指ー種用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)和方法。
背景技術(shù):
在計算機系統(tǒng)、微電腦系統(tǒng)、消費性電子及半導(dǎo)體技術(shù)的快速發(fā)展之下,電子產(chǎn)品的影音效能有顯著的發(fā)展,因此來源數(shù)據(jù)同步的通訊接ロ也有長足的進步,例如DDR,DDR-II和DDR-III的同步動態(tài)隨機存取存儲器(SDRAM)的存取速度快速提升,同時也提供更高的存儲器頻寬。同步動態(tài)隨機存取存儲器的存取速度由數(shù)年前的數(shù)百萬赫茲(xMHz)進步到今日的數(shù)十億萬赫茲(xGHz)。非工作存儲體的數(shù)據(jù)存取(non-active bank memoryaccess)的潛伏周期(latency cycle)數(shù)目也逐漸增加。例如SDR的非工作存儲體的數(shù)據(jù)存取的潛伏周期數(shù)目為3-5,而DDR-II及DDR-III的非工作存儲體的數(shù)據(jù)存取的潛伏周期 數(shù)目為12-25。一電腦系統(tǒng)或ー圖像處理系統(tǒng)會包含多個系統(tǒng)總線主控裝置(system busmaster)。每一系統(tǒng)總線主控裝置具有一特定的功能,例如圖像解碼、圖像編碼、圖像回播、音頻信號解碼、音頻信號回播、直接存儲器存取(DMA)等功能。由于每一系統(tǒng)總線主控裝置執(zhí)行其特定的功能,故其對存儲器存取區(qū)域及地址則是同時操作在不一致的地址及命令格式,故由系統(tǒng)總線主控裝置所產(chǎn)生的動態(tài)存儲器存取命令會使用于動態(tài)存儲器的不同存儲體進行存取,甚至多個存儲體進行存取。由于有多個系統(tǒng)總線主控裝置會執(zhí)行存儲器存取,且其存取動態(tài)存儲器的地址各不相同,故很難在現(xiàn)行存儲器存取命令中找到與前一存儲器存取命令是相同的主動頁(active page)。圖I是現(xiàn)有同步動態(tài)隨機存取存儲器的方塊圖。圖2是現(xiàn)有DDR(Double datarate)存儲器存取命令中對不相同的頁(page)存取的示意圖。其對一存儲器的A存儲體(Bank-A)進行二次讀取,姆一次讀取均為連續(xù)式八筆數(shù)據(jù)的讀取(burst 8)。于時間TO時,一存儲器控制器對該存儲器的A存儲體輸出ー預(yù)充命令(pre-charge command, PRE)。經(jīng)過3個時鐘周期(clock)后,于時間T3時,存儲器控制器對該存儲器的A存儲體輸出ー使能命令(activate command, ACT)。此3個時序則依據(jù)該存儲器規(guī)格說明書中的tRP = 3來操作。經(jīng)過3個時鐘周期后,于時間T6吋,存儲器控制器對該存儲器的A存儲體輸出ー讀取命令(readcommand,READ)。此3個時序也依據(jù)該存儲器規(guī)格說明書中的tRCD = 3來操作。經(jīng)過3個時序后(CL = 3),于時間T9吋,該存儲器于其數(shù)據(jù)總線(data bus)輸出相對應(yīng)的數(shù)據(jù)(Al AS)。由于第二個讀取行為是對存儲器的A存儲體中不相同的頁進行讀取,故存儲器控制器于時間Tll時對該存儲器輸出ー預(yù)充命令(Pre-charge,PRE) co_and),于時間T14時輸出一使能命令(Active,ACT)co_and)。相同存儲體的使能命令時序是根據(jù)規(guī)格書中的tRC = 11來操作。如圖2所示,該存儲器于時間T19時由其數(shù)據(jù)總線輸出相對應(yīng)的數(shù)據(jù)(A9 A16),總共需約24個時鐘周期以完成ニ個連續(xù)式八筆數(shù)據(jù)的讀取。對于非最優(yōu)化處理過的SDRAM存取命令的操作,SDRAM存取的數(shù)據(jù)頻寬損失約為50%⑴70%。此種存取存儲器的方式很浪費時間且沒有效率。其中,圖2中的BAO為存儲體地址O (Bank addressO)、BAl 為存儲體地址 I (Bank addressl)、RowO 為行地址 O (Row address O)、Row2 為行地址 2 (Row address 2)、ColO 為列地址 O (Column address O)。針對上述問題,圖3是現(xiàn)有使用交錯方式對DDR SDRAM存儲器存取的示意圖。其對一存儲器的A存儲體及B存儲體分別進行一次讀取,每一次讀取均為連續(xù)式八筆數(shù)據(jù)的讀取(burst 8)。于時間TO時,一存儲器控制器對該存儲器的A存儲體輸出ー預(yù)充命令。于時間T2時,存儲器控制器對該存儲器的B存儲體輸出ー預(yù)充命令。于時間T3時,存儲器控制器對該存儲器的A存儲體輸出ー使能命令。于時間T5時,存儲器控制器對該存儲器的B存儲體輸出ー使能命令,此使能命令和先前一個使能命令屬于不同存儲體,故不受規(guī)格說明書中tRC = 11的限制。于時間T6時,存儲器控制器對該存儲器的A存儲體輸出ー讀取命令。于時間T9吋,該存儲器的A存儲體于該存儲器的數(shù)據(jù)總線(databus)輸出相對應(yīng)的數(shù)據(jù)(Al AS)。由于經(jīng)過3個時序后(CL = 3),于時間T13時,該存儲器于其數(shù)據(jù)總線輸出相對應(yīng)的數(shù)據(jù)(BI B8),故于時間TlO時,存儲器控制器對該存儲器的B存儲體輸出ー讀取命令,總共需約18個鐘周期以完成ニ個連續(xù)式八筆數(shù)據(jù)的讀取。此種方式雖可較圖2節(jié)省數(shù)個時序,然而由于存取存儲器數(shù)據(jù)地址的操作為不連續(xù)性,系統(tǒng)常常會存取地址相 近的存儲器,或因連續(xù)的存儲器存取命令是來自不同的存儲器主控裝置(Master Device),所以常會對一存儲器的同一存儲體不同頁(Page)進行多次存取,所以如圖3此種對不同存儲體交錯存取方式機率是不高的,特別是在ー復(fù)雜系統(tǒng)。其中,圖3中的BAO為存儲體地址O (Bank address O)、BA1 為存儲體地址 I (Bank address I)、RowO 為行地址 O (Row address0)、ColO 為列地址 O (Column address 0)。另ー現(xiàn)有的存儲器控制器技術(shù)使用大的存儲器存取命令隊列(memory accesscommand queue)以暫存許多的存儲器存取命令,并使用一復(fù)雜的重新排序演算法以選擇最低潛伏周期(latency)或最低頻寬損失周期(penalty)的存儲器存取命令以作為下ー個進入SDRAM的存取命令,由此以提高SDRAM數(shù)據(jù)頻寬使用率。另ー現(xiàn)有技術(shù)則使用多個存儲器存取命令隊列(multiple memoryaccesscommand queue),以選擇最高優(yōu)先次序的存儲器存取命令,以降低潛伏周期(latencycycle)數(shù)目。然而前述兩種現(xiàn)有技術(shù)對于某些存儲器讀取命令,將會大量提高讀取數(shù)據(jù)的潛伏周期,而降低效能。在同一時間,于ー個復(fù)雜的計算機系統(tǒng)中,這些機制和方法還是無法保證SDRAM的頻寬利用率。該系統(tǒng)將有ー個大SDRAM命令隊列,同時SDRAM的頻寬利用率取決于存儲器存取命令隊列中的命令的數(shù)量和存儲器命令所在的位置和種類。前述現(xiàn)有技術(shù)在是無法達到高SDRAM頻寬,同時也無法保證系統(tǒng)效能。某些計算機系統(tǒng)無法使用現(xiàn)有技術(shù)來最優(yōu)化存儲器存取的性能,例如,主控裝置總是在不同SDRAM的地址范圍做存取操作和復(fù)雜的位置和存儲器命令解碼系統(tǒng)(如ニ維視頻圖像存儲器地址解碼的存儲器控制器)。在這種系統(tǒng)下操作,在有限的存儲器存取命令隊列中的當前的存儲器存取命令出到ー個已活動頁命令(下ー個命令A(yù)ctive page)的機率是相當?shù)偷摹T谝阎膶@墨I中,美國專利第6,629,220號揭露ー種使用ニ個隊列儲存不同優(yōu)先權(quán)的傳輸型態(tài)(transaction type)在依據(jù)頻寬限制以調(diào)整優(yōu)先權(quán)的技術(shù)。
于美國專利第6,629, 220號中,揭露ー種使用ニ個隊列儲存不同優(yōu)先權(quán)的傳輸型態(tài)(transaction type)及依據(jù)頻寬限制以調(diào)整優(yōu)先權(quán)的技術(shù)。于美國專利第7,395,448號中,揭露ー種數(shù)個將短的存儲器存取命令合并為ー個長的存儲器存取命令的技術(shù)。于美國專利第6,564, 304號中,揭露ー種使用對存儲器存取命令重新排序以減少娛式切換的技術(shù)(write command to read command or readcommana to write command)。于美國專利第7,069, 399號中,揭露ー種使用對存儲器存取命令重新排序的技術(shù),該命令重新排序的技術(shù)依據(jù)潛伏周期(latency cycle)而對存儲器存取命令重新排序。
于美國專利第7,281,110號中,揭露ー種對SDRAM的預(yù)充命令(PRE)、使能命令(ACT)、讀取命令(READ)、寫入命令(WRITE)重新排序的技術(shù)。然而,在命令重新排序技術(shù)中,會因系統(tǒng)對最大延遲的要求而使實際可用的SDRAM頻寬將大幅度的降低了,因此,對ー個完整需復(fù)雜的計算機系統(tǒng)而言,現(xiàn)有的命令重新排序技術(shù)不能獲得最大SDRAM的頻寬且不能保證系統(tǒng)頻寬為最大。故現(xiàn)有存儲器存取的控制系統(tǒng)仍有諸多缺失而有予以改善的必要。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種最優(yōu)化同步存儲器頻寬的存儲器存取系統(tǒng),從而能增進同步動態(tài)隨機存取存儲器命令存取效率,同時也可避免交錯存取的方式(interleaving access)時,因部分存取數(shù)據(jù)量太小的命令而產(chǎn)生SDRAM頻寬的損失問題。依據(jù)本發(fā)明的一特色,本發(fā)明提出一種用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)(memory controller),其包括一存儲器命令處理器、及一同步動態(tài)隨機存取存儲器接ロ及協(xié)議控制器(SDRAM interfaceand protocol controller)。該存儲器命令處理器連接至一存儲器總線仲裁器及數(shù)據(jù)切換電路(memory bus arbiter and dataswitch circuit),以接收由該存儲器總線仲裁器及數(shù)據(jù)切換電路所傳送的存儲器存取命令(memory access command)與數(shù)據(jù),并負責轉(zhuǎn)換為最優(yōu)化的排序后的同步動態(tài)隨機存取存儲器命令。該同步動態(tài)隨機存取存儲器接ロ及協(xié)議控制器連接至該存儲器命令處理器,以接收該排序過的同步動態(tài)隨機存取存儲器命令,并依據(jù)同步動態(tài)隨機存取存儲器的協(xié)議及時序,執(zhí)行該排序過的同步動態(tài)隨機存取存儲器命令;其中,該存儲器命令處理器將存儲器存取命令解碼并儲存于一般同步動態(tài)隨機存取存儲器命令(general SDRAM command)隊列中或替代同步動態(tài)隨機存取存儲器的命令(alternative SDRAM command)隊列中,該被解碼成替代同步動態(tài)隨機存取存儲器的命令的存儲器存取命令來自某些一特定總線主控裝置(bus master)所產(chǎn)生。依據(jù)本發(fā)明的另ー特色,本發(fā)明提出一種用以最優(yōu)化同步存儲器的頻寬的存儲器存取方法,該存儲器存取方法用于ー單芯片系統(tǒng)(SoC)上,以頻寬最優(yōu)化的方式來執(zhí)行同步動態(tài)隨機存取存儲器命令,該存儲器存取方法包括:A) —存儲器總線仲裁器及數(shù)據(jù)切換電路選擇/授予下一存儲器存取命令給存儲器存取系統(tǒng);B)該存儲器總線仲裁器及數(shù)據(jù)切換電路將步驟A)仲裁選擇下一個存儲器存取命令傳送至一最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng);C)該用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)將存儲器存取命令解碼為同步動態(tài)隨機存取存儲器命令;D)判斷該存儲器存取命令是否為來自某特定總線主控裝置所產(chǎn)生;E)若步驟D)判定為是,則將同步動態(tài)隨機存取存儲器命令儲存至ー替代同步動態(tài)隨機存取存儲器的命令隊列,再執(zhí)行步驟G) ;F)若步驟D)判定為否,則將同步動態(tài)隨機存取存儲器命令儲存至一一般同步動態(tài)隨機存取存儲器命令隊列,再執(zhí)行步驟G);G)由該一般同步動態(tài)隨機存取存儲器命令隊列及該替代同步動態(tài)隨機存取存儲器的命令隊列中選取最小SDRAM頻寬損失的同步動態(tài)隨機存取存儲器命令,并儲存至一最小頻寬損失的同步動態(tài)隨機存取存儲器命令隊列。
圖I是現(xiàn)有同步動態(tài)隨機存取存儲器的方塊圖。
圖2是現(xiàn)有DDR存儲器存取命令中對相同的SDRAM存儲體不同頁存取的示意圖。圖3是現(xiàn)有使用交錯方式對DDR存儲器存取的示意圖。圖4是本發(fā)明一優(yōu)選實施例關(guān)于ー種用以最優(yōu)化同步存儲器頻寬的存儲器存取系統(tǒng)的架構(gòu)示意圖。圖5是ー現(xiàn)有一般使用同步動態(tài)隨機存取命令頻寬最優(yōu)化演算法重排后的SDRAM的命令的示意圖。圖6是使用本發(fā)明替代同步動態(tài)隨機存取存儲器的命令架構(gòu)的頻寬最優(yōu)化演算法重排后的SDRAM的命令的示意圖。圖7是本發(fā)明一種用以最優(yōu)化同步存儲器的頻寬的存儲器存取方法的流程圖。圖8是本發(fā)明一優(yōu)選實施例關(guān)于ー種用以最優(yōu)化同步存儲器頻寬的存儲器存取系統(tǒng)另ー實施例的使用示意圖。主要元件符號說明單芯片系統(tǒng)400中央處理器410圖像顯示處理器420MPEG解碼器430繪圖處理器440第一熒幕選單450第二熒幕選單460存儲器總線仲裁器及數(shù)據(jù)切換電路470用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)500同步動態(tài)隨機存取存儲器490存儲器命令處理器510同步動態(tài)隨機存取存儲器接ロ及協(xié)議控制器550存儲器總線命令接ロ単元511存儲器命令解碼單元512一般同步動態(tài)隨機存取存儲器命令隊列513替代同步動態(tài)隨機存取存儲器的命令隊列514、命令排序控制器515最小頻寬損失的同步動態(tài)隨機存取存儲器命令隊列516替代同步動態(tài)隨機存取存儲器命令及數(shù)據(jù)要求控制器517多エ器518可編程控制暫存器519。
具體實施例方式本發(fā)明是關(guān)于ー種用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)。圖4是本發(fā)明一優(yōu)選實施例關(guān)于ー種用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)500的使用示意圖。如圖4所示,本發(fā)明最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)500優(yōu)選適用于ー個單芯片系統(tǒng)(System-on-a-chip, SoC)400的系統(tǒng)上。該單芯片系統(tǒng)(SoC)可包含一處理器410、一圖像顯示處理器(videodisplayprocessor) 420、一 MPEG 解碼器 430、一繪圖處理器(GraphicProcessing Unit, GPU) 440、一第一突幕選單(on screen display, 0SD1)450>一第二突幕選單(0SD2)460、一存儲器總線仲裁器及數(shù)據(jù)切換電路470、一同步動態(tài)隨機存取存儲器490、及前述本發(fā)明的用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)500。前述處理器410、圖像顯示處理器420、MPEG解碼器430、繪圖處理器440、第一熒幕選單450、第二熒幕選單460均為特定總線主控裝置。該特定總線可為AMBA總線、OCP總線、PCI總線(PCI-bus)等相關(guān)總線的系統(tǒng)。所述主控裝置會對該存儲器總線仲裁器及數(shù) 據(jù)切換電路470產(chǎn)生存儲器存取需求命令(memory access request)。該存儲器總線仲裁器及數(shù)據(jù)切換電路470將仲裁存儲器存取需求命令,當仲裁器選擇了某個總線主控裝置的需求后,就會接收該總線主控裝置所產(chǎn)生存儲器存取命令。該最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)500包括一存儲器命令處理器510、及一同步動態(tài)隨機存取存儲器接ロ及協(xié)議控制器550。該存儲器命令處理器510連接至該存儲器總線仲裁器及數(shù)據(jù)切換電路440,以接收由該存儲器總線仲裁器及數(shù)據(jù)切換電路440所傳送的存儲器存取命令與數(shù)據(jù),并轉(zhuǎn)換成經(jīng)排序過后的同步動態(tài)隨機存取存儲器命令(ordered SDRAM command)。該同步動態(tài)隨機存取存儲器接ロ及協(xié)議控制器550連接至該存儲器命令處理器510,以接收該經(jīng)排序過后的同步動態(tài)隨機存取存儲器命令,并依據(jù)同步動態(tài)隨機存取存儲器的協(xié)議及時序,執(zhí)行該排序過后的同步動態(tài)隨機存取存儲器命令。該存儲器命令處理器510將存儲器存取命令解碼成一般同步動態(tài)隨機存取存儲器命令或替代同步動態(tài)隨機存取存儲器的命令。該被解碼成替代同步動態(tài)隨機存取存儲器的命令的存儲器存取命令來自某些特定總線主控裝置所產(chǎn)生的。為方便說明,于本實施例中,該某些特定總線主控裝置為第一熒幕選單450及第ニ熒幕選單(0SD2)460。于其他實施例中,也可選取其他主控裝置作為該特定總線主控裝置。于圖4的本發(fā)明用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)500的示意圖中。進ー步顯示該存儲器命令處理器510包含一存儲器總線命令接ロ單元(memory buscommand interface unit) 511> 一存儲器命令角軍石馬單兀(memory command decoder) 512>
--般同步動態(tài)隨機存取存儲器命令隊列(general SDRAM command queue) 513、一替代同
步動態(tài)隨機存取存儲器的命令隊列(alternative SDRAM command queue) 514、一命令排序控制器(command reorder controller) 515、一最小懲罰同步動態(tài)隨機存取存儲器命令隊列(minimun penalty SDRAM commandqueue) 516、一替代同步動態(tài)隨機存取存儲器命令及數(shù)據(jù)要求控制器(alternative SDRAM command and data request controller) 517、一SDRAM命令選取多エ器518、及一可編程控制暫存器519。該存儲器總線命令接ロ単元511連接至該存儲器總線仲裁器及數(shù)據(jù)切換電路470,以接收該存儲器總線仲裁器及數(shù)據(jù)切換電路470所傳送的存儲器存取命令,和處理存儲器存取命令的數(shù)據(jù)收送。該存儲器命令解碼單元512連接至該存儲器總線命令接ロ単元511,以對該存儲器存取命令解碼,而產(chǎn)生數(shù)個同步動態(tài)隨機存取存儲器命令,該同步動態(tài)隨機存取存儲器命令可分為該一般同步動態(tài)隨機存取存儲器命令或該替代同步動態(tài)隨機存取存儲器的命令。該一般同步動態(tài)隨機存取存儲器命令隊列513連接至該存儲器命令解碼單元512,以暫時儲存該一般同步動態(tài)隨機存取存儲器命令。
該替代同步動態(tài)隨機存取存儲器的命令隊列514連接至該存儲器命令解碼單元512,以暫時儲存該替代同步動態(tài)隨機存取存儲器的命令。該命令排序控制器515連接至該一般同步動態(tài)隨機存取存儲器命令隊列513及該替代同步動態(tài)隨機存取存儲器的命令隊列514,依據(jù)ー最優(yōu)化同步動態(tài)隨機存取存儲器接ロ的頻寬使用率,以選擇該一般同步動態(tài)隨機存取存儲器命令或該替代同步動態(tài)隨機存取存儲器的命令,作為下ー個重新排序過后的同步動態(tài)隨機存取存儲器命令。該多エ器518連接至該一般同步動態(tài)隨機存取存儲器命令隊列513及該替代同步動態(tài)隨機存取存儲器的命令隊列514、及該命令排序控制器515,以選擇從該一般同步動態(tài)隨機存取存儲器命令隊列513或該替代同步動態(tài)隨機存取存儲器的命令隊列514的輸出命令,而選擇該一般同步動態(tài)隨機存取存儲器命令或該替代同步動態(tài)隨機存取存儲器的命令,作為下ー個重新排序過的同步動態(tài)隨機存取存儲器命令。并輸出至該最小頻寬損失的同步動態(tài)隨機存取存儲器命令隊列516。該最小頻寬損失的同步動態(tài)隨機存取存儲器命令隊列516經(jīng)由該多エ器518連接至該命令排序控制器515、該一般同步動態(tài)隨機存取存儲器命令隊列513及該替代同步動態(tài)隨機存取存儲器的命令隊列514,以暫存該經(jīng)重新排序過后的同步動態(tài)隨機存取存儲器命令。該替代同步動態(tài)隨機存取存儲器命令及數(shù)據(jù)要求控制器517連接至該命令排序控制器515及該特定總線主控裝置450,460,并具有一要求新存儲器存取命令信號(request new memory access commandsignal) 521,以通知該特定總線主控裝置 450,460。當該替代同步動態(tài)隨機存取存儲器的命令隊列514中所儲存的該替代同步動態(tài)隨機存取存儲器的命令耗盡或數(shù)量過少時,該替代同步動態(tài)隨機存取存儲器命令及數(shù)據(jù)要求控制器517就可利用該要求新存儲器存取命令信號,以通知該特定總線主控裝置450,460,從而產(chǎn)生和輸出存儲器存取命令。該替代同步動態(tài)隨機存取存儲器命令及數(shù)據(jù)要求控制器517具有ー緊急數(shù)據(jù)要求信號及數(shù)據(jù)隊列快滿信號(urgent data request signal anddata fifo near fullsignal) 523,連接至該命令排序控制器515依據(jù)該緊急數(shù)據(jù)要求信號及數(shù)據(jù)隊列快滿信號以調(diào)高該替代同步動態(tài)隨機存取存儲器的命令的優(yōu)先次序或暫時不選取替代同步動態(tài)隨機存取存儲器的命令。
當該特定總線主控裝置450,460急需數(shù)據(jù)時,可經(jīng)由該緊急數(shù)據(jù)要求信號及數(shù)據(jù)隊列快滿信號523,來告知該替代同步動態(tài)隨機存取存儲器命令及數(shù)據(jù)要求控制器517、再通知該命令排序控制器515,該命令排序控制器515依據(jù)該緊急數(shù)據(jù)要求信號及數(shù)據(jù)隊列快滿信號以調(diào)整該替代同步動態(tài)隨機存取存儲器的命令的優(yōu)先次序。以免該特定總線主控裝置450,460產(chǎn)生數(shù)據(jù)饑渴(data starved)情形。對于該特定總線主控裝置450,460所產(chǎn)生的存儲器存取命令,一定會被該存儲器命令解碼單元512將之解碼至同步動態(tài)隨機存取存儲器490的某些特定SDRAM存儲體地址范圍。例如解碼至同步動態(tài)隨機存取存儲器490SDRAM的第一存儲體和SDRAM的第二個存儲體地址范圍、或同步動態(tài)隨機存取存儲器的四個存儲體地址范圍。該可編程控制暫存器519連接至該命令排序控制器515,該命令排序控制器515可依據(jù)該可編程控制暫存器519的設(shè)定值,以調(diào)整該一般同步動態(tài)隨機存取存儲器命令的優(yōu)先次序。該命令排序控制器515會將一存儲器存取命令解碼產(chǎn)生的所有同步動態(tài)隨機存取存儲器命令組合在一起做SDRAM命令的重排和輸出。
圖5是ー現(xiàn)有依序(inorder)執(zhí)行SDRAM的命令的時序示意圖。由圖5所示可知,多個SDRAM命令是從ー個單一存儲器存取命令所產(chǎn)生的。例如存儲器存取命令I(lǐng)可解碼成ニ個在SDRAM存儲體O頁2 (bank O page 2)地址的SDRAM命令,存儲器存取命令I(lǐng)可解碼成四個在SDRAM存儲體2頁3 (bank 2 page 3)地址及SDRAM存儲體3頁3 (bank 3 page3)地址的SDRAM命令。由于現(xiàn)有技術(shù)中沒有本發(fā)明的替代同步動態(tài)隨機存取存儲器的命令隊列514,因此一般的具有命令重新排序的SDRAM控制器從一般命令的隊列中找到或選擇沒有或最少頻寬損失(penalty)的SDRAM存取命令,為下ー個SDRAM存取命令。利用重新排序的SDRAM命令來改善SDRAM的頻寬利用率的問題。一般情況下,姆個主控裝置有不同的行為和存儲器地址區(qū)間來存取存儲器。例如,視頻解碼器和視頻處理主控裝置將使用ニ維(區(qū)塊)模式來存取存儲器(X方向的起始地址、Y方向的起始地址、X方向的長度、及Y方向的長度)。而直接存取裝置(Direct Access Memory, DMA)使用連續(xù)地址方式來存取存儲器。RISC/DSP的處理器則多為短數(shù)據(jù)長度及不連續(xù)的地址的存取存儲器命令型態(tài)。因此,一般SDRAM命令隊列中是無法保證找的到無頻寬損失(no-penalty)的SDRAM存取命令以供具有SDRAM命令重新排序的SDRAM控制器使用。具有SDRAM命令重新排序的SDRAM控制器會從一般SDRAM命令隊列的SDRAM存取命令進行重新排序,以產(chǎn)生如圖5右邊所示最小頻寬損失的SDRAM存取命令(Min. penaltySDRAM cmd.)。圖5右邊所示最小頻寬損失的SDRAM存取命令是現(xiàn)有重新排序技術(shù)所產(chǎn)生的最佳的結(jié)果。如圖5所示,在C處對SDRAM存儲體O的地址進行存取、在D處對SDRAM存儲體I的地址進行存取、在E處對SDRAM存儲體O的地址進行存取,似有交錯存取的效果,然而由于在D處進行存取的數(shù)據(jù)量(長度)太小,也會產(chǎn)生頻寬損失(penalty)。而且在E處及F處均對SDRAM存儲體O的地址進行存取,對不同的頁(page)存取吋,F(xiàn)處的存取命令需下預(yù)充命令(PRE)及使能命令(Active),而造成大量的潛伏周期(latency cycle)。會造成在E處及F處均對SDRAM存儲體O的地址進行存取的情形主要是因為該ー般SDRAM命令的隊列所暫存的SDRAM存取命令數(shù)量太少的緣故?,F(xiàn)有的解決辦法是將該一般命令的隊列容量加大,以暫存大量的存儲器存取命令。而當該一般命令的隊列容量加大后,會使系統(tǒng)產(chǎn)生有很大的存儲器存取數(shù)據(jù)潛伏周期(latency cycle)和情形,也就是存儲器發(fā)出ー個存儲器存取命令到取得數(shù)據(jù)的時間會加大很多。在這種情況下,該一般命令的隊列的儲存容量將被限制,因此同步動態(tài)隨機存取存儲器命令即使使用最佳的重新排序方法也會具有一定量的SDRAM頻寬損失,而降低系統(tǒng)效能。圖6是使用本發(fā)明替代同步動態(tài)隨機存取存儲器的命令隊列514時SDRAM的命令的示意圖。本發(fā)明的替代同步動態(tài)隨機存取存儲器的命令隊列514的設(shè)計,在于用來儲存某些總線主控裝置會周期性地發(fā)出存儲器存取命令。該主控裝置的存儲器存取命令的對應(yīng)的SDRAM的地址范圍可預(yù)先規(guī)劃,以滿足最優(yōu)化的SDRAM命令交錯取存演算法。如圖6所示,替代同步動態(tài)隨機存取存儲器的命令隊列514中有一系列的存儲器存取命令。
于本實施例中,總線主控裝置為在ー多媒體應(yīng)用中的該第一熒幕選單450及該第ニ熒幕選單(0SD2)460。對應(yīng)至該第一熒幕選單450存儲器存取命令為SDRAM在存儲體O (bank-Ο)及存儲體I (bank-1)。亦即,該第一熒幕選單450存儲器存取命令會被解碼而存取SDRAM為在存儲體O (bank-Ο)及在存儲體I (bank-1)的SDRAM存儲器位置。對應(yīng)至該第二熒幕選單(0SD2) 460存儲器存取命令的SDRAM為在存儲體2 (bank-2)及存儲體3 (bank-3)的SDRAM存儲器位置。因此,在該替代同步動態(tài)隨機存取存儲器的命令隊列514中總是具有不同SDRAM存儲體的同步動態(tài)隨機存取存儲器命令。因此,該命令排序控制器515可使用儲存在該一般同步動態(tài)隨機存取存儲器命令隊列513或該替代同步動態(tài)隨機存取存儲器的命令隊列514,以產(chǎn)生沒有頻寬損失的同步動態(tài)隨機存取存儲器命令序列(no penaltySDRAM command sequence)。圖6右邊處為最佳的同步動態(tài)隨機存取存儲器命令序列(SDRAMcommandsequence)。由圖6所示可知,圖6中該同步動態(tài)隨機存取存儲器命令序列(SDRAM commandsequence)不會有像圖5由于在D處進行存取的數(shù)據(jù)量太小所產(chǎn)生SDRAM頻寬損失的情形,或是圖5在E處及F處均對SDRAM存儲體O進行存取而需下預(yù)充命令(PRE)及使能命令(ACT)而造成大量的SDRAM頻寬損失和潛伏周期(latency cycle)的問題。如圖4所示,本發(fā)明的存儲器存取系統(tǒng)500中,有一個專用的接ロ給該替代同步動態(tài)隨機存取存儲器的命令隊列514。該替代同步動態(tài)隨機存取存儲器命令及數(shù)據(jù)要求控制器517用于請求新的存儲器存取命令。當該替代同步動態(tài)隨機存取存儲器的命令隊列514中沒有足夠的存取命令以維持沒有SDRAM頻寬損失的排序方法時,該替代同步動態(tài)隨機存取存儲器命令及數(shù)據(jù)要求控制器517使用該要求新存儲器存取命令信號(request newmemory access command signal) 521,以通知該特定總線主控裝置450、460。例如當需要對SDRAM存儲體2 (bank-2)或SDRAM存儲體3 (bank-3)執(zhí)行同步動態(tài)隨機存取存儲器命令時,該替代同步動態(tài)隨機存取存儲器命令及數(shù)據(jù)要求控制器517將使用該要求新存儲器存取命令信號521通知該第二熒幕選單(0SD2)460發(fā)出新的存儲器存取命令。如圖4所示,當該特定總線主控裝置450,460急需數(shù)據(jù)時,可經(jīng)由該緊急數(shù)據(jù)要求信號及數(shù)據(jù)隊列快滿信號523,通知該替代同步動態(tài)隨機存取存儲器命令及數(shù)據(jù)要求控制器517、及該命令排序控制器515,該命令排序控制器515依據(jù)該緊急數(shù)據(jù)要求信號及數(shù)據(jù)隊列快滿信號以暫時調(diào)低該替代同步動態(tài)隨機存取存儲器的命令的優(yōu)先權(quán)。于本實施例中,儲存于該一般同步動態(tài)隨機存取存儲器命令隊列513的存儲器存取命令較儲存于該替代同步動態(tài)隨機存取存儲器的命令隊列514的存儲器存取命令有較高的優(yōu)先權(quán)。該命令排序控制器515使用一計時器(圖未示)來改變優(yōu)先次序,以保證某些特定總線主控裝置的服務(wù)時間和頻寬。當該特定總線主控裝置450,460產(chǎn)生該緊急數(shù)據(jù)要求信號523時,該命令排序控制器515會將儲存于該替代同步動態(tài)隨機存取存儲器的命令隊列514的存儲器存取命令有較高的優(yōu)先權(quán),以滿足該特定總線主控裝置450,460的存儲器存取命令的數(shù)據(jù)需求。當該特定總線主控裝置的數(shù)據(jù)讀取暫存器(buffer)的空間達到接近滿水位吋,就會使用“FIFO data near full” (FIFO數(shù)據(jù)快滿)信號來告知命令排序控制器515,此時命令排序控制器515則只可選擇儲存于該一般同步動態(tài)隨機存取存儲器命令隊列513中的存儲器存取命令。圖7為本發(fā)明一種用以最優(yōu)化同步存儲器的頻寬的存儲器存取方法的流程圖。其 用于ー單芯片系統(tǒng)(System-on-a-chip,SoC) 400上,以SDRAM頻寬最優(yōu)化的演算法和架構(gòu)對該同步動態(tài)隨機存取存儲器490作數(shù)據(jù)的存取。首先,在步驟A中,該存儲器總線仲裁器及數(shù)據(jù)切換電路470選擇/授予下一存儲器存取命令給存儲器存取系統(tǒng)500。在步驟B中,該存儲器總線仲裁器及數(shù)據(jù)切換電路470將步驟A中選擇的下ー個存儲器存取命令傳送至該用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)500。在步驟C中,該用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)500將存儲器存取命令解碼為同步動態(tài)隨機存取存儲器命令。在步驟D中,判斷該存儲器存取命令是否為特定總線主控裝置所產(chǎn)生,若是,則在步驟E中將同步動態(tài)隨機存取存儲器命令儲存至該替代同步動態(tài)隨機存取存儲器的命令隊列514,若否,則在步驟F中將同步動態(tài)隨機存取存儲器命令儲存至該一般同步動態(tài)隨機存取存儲器命令隊列513。其中,對應(yīng)于特定總線主控裝置所產(chǎn)生的該替代同步動態(tài)隨機存取存儲器的命令被解碼到該同步動態(tài)隨機存取存儲器的某些特定存儲體。在步驟G中,由該一般同步動態(tài)隨機存取存儲器命令隊列513及該替代同步動態(tài)隨機存取存儲器的命令隊列514中選取沒有或最小頻寬損失的同步動態(tài)隨機存取存儲器命令,并儲存至該最小頻寬損失的同步動態(tài)隨機存取存儲器命令隊列516。圖8是本發(fā)明的一優(yōu)選實施例關(guān)于ー種用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)500另ー實施例的使用示意圖。其與圖4的差別主要在于新增一存取存儲器的主控裝置520。該存取存儲器的主控裝置520可為ー熒幕選單(OSD)或一直接存取存儲器(direct memoryaccess,DMA)控制器。該存取存儲器的主控裝置520可包含一組可編程控制器(圖未示)以設(shè)定相關(guān)存儲器存取參數(shù),例如讀取數(shù)據(jù)存儲器的起始位置、存取長度、寫入數(shù)據(jù)存儲器的起始位置,平均使用頻寬量。由前述說明可知,本發(fā)明提供一種用以最優(yōu)化同步存儲器頻寬的存儲器存取系統(tǒng)及方法,其提出一新的存儲器存取架構(gòu)及方法。本發(fā)明利用替代同步動態(tài)隨機存取存儲器的命令隊列514以暫存來自特定總線主控裝置所產(chǎn)生的存儲器存取命令,該來自特定總線主控裝置所產(chǎn)生的SDRAM存儲器存取命令會被存儲器命令解碼單元512解碼至特定的SDRAM存儲體。由此,命令排序控制器515可由該一般同步動態(tài)隨機存取存儲器命令隊列513或該替代同步動態(tài)隨機存取存儲器的命令隊列514,依據(jù)ー最大同步動態(tài)隨機存取存儲器接ロ使用率,以選擇該一般同步動態(tài)隨機存取存儲器命令或該替代同步動態(tài)隨機存取存儲器的命令,作為該排序過的同步動態(tài)隨機存取存儲器命令。由于來自特定總線主控裝置所產(chǎn)生的存儲器存取命令會被解碼至特定的SDRAM存儲體,因此命令排序控制器515可在同步動態(tài)隨機存取存儲器命令實現(xiàn)無頻寬損失交錯存取(no-penalty interleavingaccess),以最優(yōu)化SDRAM存取效率,同時也可有效避免在SDRAM存儲器交錯存取的方式(interleaving access)時,因某些SDRAM存儲器命令的存取數(shù)據(jù)量太小而產(chǎn)生頻寬損失的問題。由上述可知,本發(fā)明無論就目的、手段及功效,均顯示其迥異于現(xiàn)有技術(shù)的特征, 極具實用價值。但是應(yīng)注意的是,上述諸多實施例僅為了便于說明而舉例而已,本發(fā)明所主張的權(quán)利范圍自應(yīng)以申請專利范圍所述為準,而非僅限于上述實施例。
權(quán)利要求
1.一種用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng),包括 一存儲器命令處理器,其連接至一存儲器總線仲裁器及數(shù)據(jù)切換電路,以接收由該存儲器總線仲裁器及數(shù)據(jù)切換電路所傳送的存儲器存取命令,并轉(zhuǎn)換成一排序過的同步動態(tài)隨機存取存儲器命令;以及 一同步動態(tài)隨機存取存儲器接ロ及協(xié)議控制器,其連接至該存儲器命令處理器,以接收該排序過的同步動態(tài)隨機存取存儲器命令,并依據(jù)同步動態(tài)隨機存取存儲器的協(xié)議及時序,執(zhí)行該排序過的同步動態(tài)隨機存取存儲器命令; 其中,該存儲器命令處理器將存儲器存取命令解碼成一一般同步動態(tài)隨機存取存儲器命令或一替代同步動態(tài)隨機存取存儲器的命令,該解碼成該替代同步動態(tài)隨機存取存儲器的命令的存儲器存取命令是由ー特定總線主控裝置所產(chǎn)生。
2.根據(jù)權(quán)利要求I所述的用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng),其中,該存儲器命令處理器包含 一存儲器總線命令接ロ単元,連接至該存儲器總線仲裁器及數(shù)據(jù)切換電路,以接收該存儲器總線仲裁器及數(shù)據(jù)切換電路所傳送的存儲器存取命令,及處理數(shù)據(jù)收送; 一存儲器命令解碼單元,連接至該存儲器總線命令接ロ単元,以對該存儲器存取命令解碼,而產(chǎn)生同步動態(tài)隨機存取存儲器命令,該同步動態(tài)隨機存取存儲器命令可分為該ー般同步動態(tài)隨機存取存儲器命令或該替代同步動態(tài)隨機存取存儲器的命令; 一一般同步動態(tài)隨機存取存儲器命令隊列,連接至該存儲器命令解碼單元,以暫時儲存該一般同步動態(tài)隨機存取存儲器命令; 一替代同步動態(tài)隨機存取存儲器的命令隊列,連接至該存儲器命令解碼單元,以暫時儲存該替代同步動態(tài)隨機存取存儲器的命令; 一命令排序控制器,連接至該一般同步動態(tài)隨機存取存儲器命令隊列及該替代同步動態(tài)隨機存取存儲器的命令隊列,依據(jù)ー最大同步動態(tài)隨機存取存儲器數(shù)據(jù)接ロ使用率,以選擇該一般同步動態(tài)隨機存取存儲器隊列中的命令或該替代同步動態(tài)隨機存取存儲器的命令,作為下ー個排序后的同步動態(tài)隨機存取存儲器命令;以及 一最小頻寬損失的同步動態(tài)隨機存取存儲器命令隊列,連接至該命令排序控制器、該一般同步動態(tài)隨機存取存儲器命令隊列及該替代同步動態(tài)隨機存取存儲器的命令隊列,以暫存該排序過的同步動態(tài)隨機存取存儲器命令。
3.根據(jù)權(quán)利要求2所述的用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng),其中,該存儲器命令處理器還包含 一替代同步動態(tài)隨機存取存儲器命令及數(shù)據(jù)要求控制器,其連接至該命令排序控制器,并具有一要求新存儲器存取命令信號,以通知該特定總線主控裝置。
4.根據(jù)權(quán)利要求3所述的用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng),其中,該替代同步動態(tài)隨機存取存儲器命令及數(shù)據(jù)要求控制器具有ー緊急數(shù)據(jù)要求信號及數(shù)據(jù)隊列快滿信號,該命令排序控制器依據(jù)該緊急數(shù)據(jù)要求信號及數(shù)據(jù)隊列快滿信號以調(diào)整該替代同步動態(tài)隨機存取存儲器的命令的優(yōu)先次序。
5.根據(jù)權(quán)利要求4所述的用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng),其中,對于該特定總線主控裝置所產(chǎn)生的存儲器存取命令,該存儲器命令解碼單元將之解碼至同步動態(tài)隨機存取存儲器的特定且單一存儲體地址范圍。
6.根據(jù)權(quán)利要求4所述的用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng),其中,對于該特定總線主控裝置所產(chǎn)生的存儲器存取命令,該存儲器命令解碼單元將之解碼至同步動態(tài)隨機存取存儲器某特定的ニ個存儲體地址范圍。
7.根據(jù)權(quán)利要求6所述的用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng),其中,對于該特定總線主控裝置所產(chǎn)生的存儲器存取命令,該存儲器命令解碼單元將之解碼至同步動態(tài)隨機存取存儲器的四個存儲體地址范圍。
8.根據(jù)權(quán)利要求4所述的用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng),其中,該存儲器命令處理器還包含 一可編程控制暫存器,連接至該命令排序控制器,該命令排序控制器可依據(jù)該可編程控制暫存器的設(shè)定值,以調(diào)整該一般同步動態(tài)隨機存取存儲器命令的優(yōu)先次序。
9.根據(jù)權(quán)利要求4所述的用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng),其中,該命令排序控制器將來自同一存儲器存取命令解碼產(chǎn)生的所有同步動態(tài)隨機存取存儲器命令一起做重新排列輸出至該最小頻寬損失的同步動態(tài)隨機存取存儲器命令隊列。
10.一種用以最優(yōu)化同步存儲器的頻寬的存儲器存取方法,該存儲器存取方法用于ー單芯片系統(tǒng)上,以頻寬最優(yōu)化的方式來執(zhí)行同步動態(tài)隨機存取存儲器的命令,該存儲器存取方法包括 A)一存儲器總線仲裁器及數(shù)據(jù)切換電路選擇/授予下一存儲器存取命令; B)該存儲器總線仲裁器及數(shù)據(jù)切換電路將步驟A)中所選擇的存儲器存取命令傳送至一用以最優(yōu)化同步存儲器頻寬的存儲器存取系統(tǒng); C)該用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)將存儲器存取命令解碼為同步動態(tài)隨機存取存儲器命令; D)判斷該存儲器存取命令是否為特定總線主控裝置所產(chǎn)生; E)若步驟D)判定為是,則將同步動態(tài)隨機存取存儲器命令儲存至ー替代同步動態(tài)隨機存取存儲器的命令隊列,再執(zhí)行步驟G); F)若步驟D)判定為否,則將同步動態(tài)隨機存取存儲器命令儲存至一一般同步動態(tài)隨機存取存儲器命令隊列,再執(zhí)行步驟G);以及 G)由該一般同步動態(tài)隨機存取存儲器命令隊列及該替代同步動態(tài)隨機存取存儲器的命令隊列中選取最小SDRAM頻寬損失的同步動態(tài)隨機存取存儲器命令,并儲存至一最小頻寬損失的同步動態(tài)隨機存取存儲器命令隊列。
11.根據(jù)權(quán)利要求10所述的用以最優(yōu)化同步存儲器的頻寬的存儲器存取方法,其中,對應(yīng)于特定總線主控裝置所產(chǎn)生的該替代同步動態(tài)隨機存取存儲器的命令存取該同步動態(tài)隨機存取存儲器的特定存儲體。
全文摘要
本發(fā)明提供一種用以最優(yōu)化同步存儲器的頻寬的存儲器存取系統(tǒng)及方法,其將來自特定總線主控裝置所產(chǎn)生的存儲器存取命令解碼成可替代同步動態(tài)隨機存取存儲器的命令,并暫存于一替代同步動態(tài)隨機存取存儲器的命令隊列中,其中,替代同步動態(tài)隨機存取存儲器的命令被安排存取該同步動態(tài)隨機存取存儲器(SDRAM)的某些特定存儲體,由此,一命令排序控制器在同步動態(tài)隨機存取存儲器命令中實現(xiàn)最優(yōu)化的同步動態(tài)隨機存取存儲器命令交錯存取的方式,以增進SDRAM的有效存取頻寬,也可避免交錯存取的方式時,因部分存取數(shù)據(jù)量太小的命令而產(chǎn)生SDRAM頻寬的損失問題。
文檔編號G06F13/16GK102693195SQ20111007586
公開日2012年9月26日 申請日期2011年3月24日 優(yōu)先權(quán)日2011年3月24日
發(fā)明者李家豪, 黃明權(quán) 申請人:凌陽科技股份有限公司