一種圖形處理器的片上存儲層次結(jié)構(gòu)的制作方法
【專利摘要】一種圖形處理器的片上存儲層次結(jié)構(gòu),采用三層存儲結(jié)構(gòu)設(shè)計(jì),分別是:寄存器層、片上SRAM層和顯示存儲器層。寄存器層與片上SRAM層相連,片上SRAM層與顯示存儲器層相連。寄存器層可以直接對片上SRAM層進(jìn)行數(shù)據(jù)讀寫訪問,也可以通過片上SRAM層對顯示存儲器層進(jìn)行訪問;片上SRAM層可以直接對顯示存儲器層進(jìn)行讀寫訪問。通過上述三層片上存儲層次設(shè)計(jì),不但能夠隱藏圖形處理過程中的存儲器訪問延遲、充分捕捉圖形處理數(shù)據(jù)訪問的局部性,還能夠在圖形處理器進(jìn)行存儲器數(shù)據(jù)訪問時(shí)實(shí)現(xiàn)高效的數(shù)據(jù)緩沖,從而提升存儲器數(shù)據(jù)帶寬利用率。
【專利說明】一種圖形處理器的片上存儲層次結(jié)構(gòu)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)硬件【技術(shù)領(lǐng)域】,尤其涉及一種圖形處理器的片上存儲層次結(jié)構(gòu)。
【背景技術(shù)】
[0002]隨著圖形化應(yīng)用的不斷增加,早期單靠CPU進(jìn)行圖形繪制的解決方案已經(jīng)難以滿足成績和技術(shù)增長的圖形處理需求,圖形處理器(Graphic Processing Unit,GPU)應(yīng)運(yùn)而生。從1999年Nvidia發(fā)布第一款GPU產(chǎn)品至今,GPU技術(shù)的發(fā)展主要經(jīng)歷了固定功能流水線階段、分離染色處理器架構(gòu)階段、統(tǒng)一染色處理器架構(gòu)階段,其圖形處理能力不斷提升,應(yīng)用領(lǐng)域也從最初的圖形繪制逐步擴(kuò)展到通用計(jì)算領(lǐng)域。GPU流水線高速、并行的特征和靈活的可編程能力,為圖形處理和通用并行計(jì)算提供了良好的運(yùn)行平臺。
[0003]而圖形處理器的存儲層次結(jié)構(gòu)設(shè)計(jì)是GPU設(shè)計(jì)過程中的關(guān)鍵技術(shù),也是GPU設(shè)計(jì)的難點(diǎn)之一,其設(shè)計(jì)的優(yōu)劣直接影響圖形處理性能。因此,如何通過合理的片上存儲層次結(jié)構(gòu)來捕捉數(shù)據(jù)訪問局部性,從而隱藏?cái)?shù)據(jù)訪問延遲,以及如何對所讀寫的存儲器數(shù)據(jù)進(jìn)行緩沖,從而提升顯示存儲器數(shù)據(jù)帶寬利用率是GPU設(shè)計(jì)的核心內(nèi)容之一。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是提供一種圖形處理器的片上存儲層次結(jié)構(gòu),從而能夠降低圖形處理過程中的數(shù)據(jù)訪問延遲,提升顯示存儲器的數(shù)據(jù)帶寬利用率。
[0005]本發(fā)明的技術(shù)解決方案是:
[0006]一種圖形處理器的片上存儲層次結(jié)構(gòu),其特殊之處在于:包括從上到下依次包括寄存器層、片上SRAM層和顯示存儲器層;
[0007]所述寄存器層直接對片上SRAM層進(jìn)行數(shù)據(jù)讀寫訪問,同時(shí)通過片上SRAM層對顯示存儲器層進(jìn)行訪問;片上SRAM層直接對顯示存儲器層進(jìn)行讀寫訪問。
[0008]上述寄存器層包括多個(gè)圖形屬性寄存器。
[0009]上述片上SRAM層包括多個(gè)高速緩沖器和至少一個(gè)圖像數(shù)據(jù)緩沖器;
[0010]上述顯示存儲器層包括兩個(gè)存儲管理單元、第一存儲器I和第二存儲器2,所述存儲管理單元包括兩路獨(dú)立的第一訪存仲裁與存儲保護(hù)單元I和第二訪存仲裁與存儲保護(hù)單元2、兩路獨(dú)立的第一存儲控制器I和第二存儲控制器2 ;
[0011]所述第一存儲控制器I實(shí)現(xiàn)外部存儲器芯片的數(shù)據(jù)訪問和時(shí)序控制;
[0012]所述第一訪存仲裁與存儲保護(hù)單元I根據(jù)片上SRAM層的緩沖器的訪問請求,第一控制第一存儲控制器I從相應(yīng)的第一存儲器I中讀寫數(shù)據(jù);
[0013]所述第二訪存仲裁與存儲保護(hù)單元2根據(jù)片上SRAM層的緩沖器的訪問請求,控制第二存儲控制器2從相應(yīng)的第二存儲器2中讀寫數(shù)據(jù)。
[0014]多個(gè)圖形屬性寄存器分別為顏色寄存器、深度寄存器、染色處理器內(nèi)核中的通用寄存器和像素寄存器。
[0015]多個(gè)高速緩沖器分別為顏色高速緩沖器、深度高速緩沖器、染色處理器內(nèi)核中的指令和數(shù)據(jù)高速緩沖器和圖像數(shù)據(jù)緩沖器。
[0016]本發(fā)明的技術(shù)效果是:
[0017]1、本發(fā)明提供的圖形處理器的片上存儲層次結(jié)構(gòu)不但能夠降低圖形處理過程中的數(shù)據(jù)訪問延遲,充分捕捉圖形處理數(shù)據(jù)訪問的局部性,還能夠在圖形處理器進(jìn)行存儲器數(shù)據(jù)訪問時(shí)實(shí)現(xiàn)高效的數(shù)據(jù)緩沖,從而提升存儲器數(shù)據(jù)帶寬利用率。
[0018]2、寄存器層直接對片上SRAM層進(jìn)行數(shù)據(jù)讀寫訪問,同時(shí)通過片上SRAM層對顯示存儲器層進(jìn)行訪問;片上SRAM層直接對顯示存儲器層進(jìn)行讀寫訪問,大幅提升顯示存儲器層的存儲器數(shù)據(jù)帶寬利用率,降低數(shù)據(jù)訪問延遲。
[0019]3、當(dāng)寄存器層數(shù)據(jù)訪問存在局部性時(shí),能夠大幅減少對顯示存儲器層的訪問請求數(shù)量,提高數(shù)據(jù)返回速度,從而提高訪問速度。
【專利附圖】
【附圖說明】
[0020]圖1是本發(fā)明圖形處理器的片上存儲層次結(jié)構(gòu)框圖。
[0021]圖2是本發(fā)明所述顯示存儲器層中存儲訪問控制和管理模塊結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0022]下面結(jié)合附圖和具體實(shí)施例,對本發(fā)明的技術(shù)方案進(jìn)行清楚、完整地表述。顯然,所表述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動前提所獲得的所有其他實(shí)施例,都屬于本發(fā)明的保護(hù)范圍。
[0023]如圖1所示,一種圖形處理器的片上存儲層次結(jié)構(gòu),其特征在于:所述結(jié)構(gòu)包括三層存儲結(jié)構(gòu),分別是:寄存器層、片上SRAM層和顯示存儲器層。寄存器層與片上SRAM層相連,片上SRAM層與顯示存儲器層相連。所述寄存器層包括:3D引擎在圖形繪制過程中使用到的和處理完成后用來存儲像素?cái)?shù)據(jù)的寄存器;3D引擎在進(jìn)行頂點(diǎn)和像素染色過程中,染色處理器內(nèi)核中所集成的通用寄存器;顯示控制模塊在進(jìn)行圖像處理時(shí)用來存儲像素?cái)?shù)據(jù)的像素寄存器。所述片上SRAM層包括:用來緩存3D引擎圖形繪制完成后圖像數(shù)據(jù)的像素Cache和Z-buffer Cache ;3D引擎在進(jìn)行頂點(diǎn)和像素染色過程中,染色處理器內(nèi)核用來緩存所執(zhí)行指令和所需要數(shù)據(jù)的1-Cache和D-Cache ;顯示控制模塊在進(jìn)行圖像處理的過程中用來進(jìn)行行數(shù)據(jù)緩沖的SRAM。所述顯示存儲器層包括:2路獨(dú)立的顯示存儲器通道,包括獨(dú)立的存儲訪問控制和管理模塊和顯示存儲器控制器。其中一路用來存儲主機(jī)接口中命令處理器模塊(CMD)和DMA模塊,以及3D引擎在進(jìn)行圖形處理過程中所產(chǎn)生的和所用到的圖形數(shù)據(jù)、紋理數(shù)據(jù),以及3D引擎圖形繪制產(chǎn)生的圖像數(shù)據(jù);另一路用來存儲從外部數(shù)字視頻接口所輸入的兩路視頻數(shù)據(jù)。
[0024]下面分別詳細(xì)介紹各層的具體結(jié)構(gòu)及功能:
[0025]I寄存器層。寄存器層主要包括以下幾個(gè)模塊內(nèi)的寄存器:
[0026]1.1 3D引擎模塊中的像素顏色寄存器:3D引擎的一個(gè)重要功能就是能夠?qū)λL制像素的顏色進(jìn)行各種處理,包括各種測試、邏輯操作等。而這些處理的前提是需要獲取顯示存儲器顏色緩沖區(qū)中對應(yīng)像素點(diǎn)的顏色,并存儲在像素顏色寄存器中,然后再與當(dāng)前繪制的像素顏色一起進(jìn)行操作。片段處理單元首先訪問SRAM層中的像素Cache,在不命中的情況下再訪問第三層中的顯示存儲器,最終將得到的數(shù)據(jù)存入像素顏色寄存器中。
[0027]1.2 3D引擎模塊中的像素深度寄存器:3D引擎的一個(gè)重要功能就是能夠?qū)λL制像素的深度進(jìn)行測試,從而剔除掉最終不會寫入顏色幀緩沖區(qū)中的像素。而深度測試的前提是需要獲取顯示存儲器深度緩沖區(qū)中對應(yīng)像素點(diǎn)的深度數(shù)據(jù),并存儲在像素深度寄存器中,然后再與當(dāng)前繪制的像素深度進(jìn)行比較。片段處理單元首先訪問SRAM層中的Z-buffer Cache,在不命中的情況下再訪冋顯不存儲器層?米度緩沖區(qū),最終將得到的株度數(shù)據(jù)存入像素深度寄存器中。
[0028]1.3 3D引擎模塊中染色處理器內(nèi)核的通用寄存器:染色處理器內(nèi)核是RISC結(jié)構(gòu),在運(yùn)行染色程序時(shí)均基于內(nèi)核中的32個(gè)32b通用寄存器。當(dāng)需要從顯示存儲器中獲取數(shù)據(jù)時(shí),染色處理器內(nèi)核首先使用LOAD指令訪問SRAM層中的指令和數(shù)據(jù)Cache,在不命中的情況下再訪問顯示存儲器層中的指令和數(shù)據(jù)區(qū)域,最終將得到的數(shù)據(jù)同時(shí)存入指令和數(shù)據(jù)Cache和通用寄存器中。
[0029]1.4顯示控制器中的像素寄存器:在顯示控制模塊中,入縮放、旋轉(zhuǎn)、抖動等圖像處理功能需要在像素寄存器中進(jìn)行,然后再由產(chǎn)生的結(jié)果最終驅(qū)動外部顯示設(shè)備。像素寄存器從SRAM層中的各類圖像數(shù)據(jù)緩沖器中讀取像素顏色信息,然后再按照縮放、旋轉(zhuǎn)、抖動等圖像處理算法對像素寄存器中的顏色值進(jìn)行相應(yīng)處理,最終完成圖像處理功能。
[0030]2片上SRAM層。主要包括以下幾個(gè)片上SRAM:
[0031]2.1顯示控制模塊中的圖像數(shù)據(jù)緩沖SRAM:顯示控制模塊除了具備驅(qū)動外部顯示設(shè)備外,還具備其它一些圖像處理功能,如圖像抖動,圖像縮放和圖像旋轉(zhuǎn)。為了實(shí)現(xiàn)這些功能,必須先對從顯示存儲器中讀出的像素?cái)?shù)據(jù)進(jìn)行一定量的緩沖,然后再對緩沖的數(shù)據(jù)進(jìn)行操作,而緩沖這些像素?cái)?shù)據(jù)需要由SRAM來完成。如對一個(gè)1600*1200分辨率的一幅圖像進(jìn)行90°旋轉(zhuǎn),假設(shè)顯示存儲器一次突發(fā)長度是4*64b,則首先需要使用SRAM緩沖1200*4*64b,即37.5KB的像素?cái)?shù)據(jù),然后再進(jìn)行行像素到列像素間的轉(zhuǎn)換才能實(shí)現(xiàn)旋轉(zhuǎn)功會K。
[0032]2.2染色處理器內(nèi)核中的指令和數(shù)據(jù)Cache模塊:3D引擎中的頂點(diǎn)和像素染色處理器為可編程結(jié)構(gòu),內(nèi)部集成了 I個(gè)或多個(gè)RISC處理器內(nèi)核,從而能夠采用軟硬件協(xié)同的方式實(shí)現(xiàn)對頂點(diǎn)和像素的染色功能。為每個(gè)RISC處理器配置一個(gè)哈佛結(jié)構(gòu)的指令和數(shù)據(jù)Cache,用來緩存該染色處理器內(nèi)核需要的指令和數(shù)據(jù)。
[0033]2.3 Z-buffer Cache模塊:該模塊實(shí)現(xiàn)緩存像素深度數(shù)據(jù)的功能。Z-bufferCache模塊中緩存了 3D引擎模塊在進(jìn)行片段處理時(shí)需要訪問的像素深度數(shù)據(jù),當(dāng)需要頻繁讀地址相同或者地址相連數(shù)據(jù)的時(shí)候能夠提高讀速度。Z-buffer Cache模塊中還集成了深度數(shù)據(jù)預(yù)取模塊,能夠?qū)⑵翁幚砟K需要訪問的深度數(shù)據(jù)提前存入Z-buffer Cache中。如果是寫像素深度數(shù)據(jù),只有接收到繪圖完成信號或者發(fā)生Z-buffer Cache缺失時(shí),Z-buffer Cache才會把所有改寫過的深度數(shù)據(jù)寫回到深度幀緩沖區(qū)中,不需要每次讀寫深度數(shù)據(jù)時(shí)都訪問幀緩沖區(qū),減少了顯示存儲器的訪問次數(shù),提升了顯示存儲器的有效帶寬。
[0034]2.4像素Cache模塊:該模塊實(shí)現(xiàn)緩存像素?cái)?shù)據(jù)的功能。像素cache里面存放了經(jīng)常訪問的數(shù)據(jù),當(dāng)需要頻繁讀相同數(shù)據(jù)的時(shí)候能夠提高讀速度;如果是寫像素?cái)?shù)據(jù),只有接收到繪圖完成信號或者接收到大塊像素?cái)?shù)據(jù)傳送信號時(shí),像素cache才會把所有改寫過的數(shù)據(jù)寫回到幀緩沖區(qū)中,不需要每次讀寫數(shù)據(jù)時(shí)啟動幀緩沖區(qū),減少了顯示存儲器的訪問次數(shù),提升了顯示存儲器的有效帶寬。
[0035]3顯示存儲器層,該層主要由以下子模塊構(gòu)成:
[0036]3.12路獨(dú)立的訪存仲裁與存儲保護(hù)模塊:其中一路負(fù)責(zé)圖形處理過程中需要存取的數(shù)據(jù)和圖像,以及從像素Cache寫入的圖形數(shù)據(jù)的對幀緩沖區(qū)訪問的管理;另外一路負(fù)責(zé)完成數(shù)字視頻分量輸入模塊、顯示控制模塊對幀緩存訪問的管理。實(shí)現(xiàn)圖形處理和顯示控制對存儲器訪問的分離。
[0037]3.22路獨(dú)立的顯示存儲器控制器模塊:根據(jù)2路存儲管理單元的存儲器訪問仲裁結(jié)果,2路獨(dú)立的顯示存儲器控制器分別接收訪存請求,并按照配置寄存器中所對應(yīng)的工作模式訪問片外存儲器。
[0038]最后應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解;其依然可以對前述各實(shí)施例記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種圖形處理器的片上存儲層次結(jié)構(gòu),其特征在于:包括從上到下依次包括寄存器層、片上SRAM層和顯不存儲器層; 所述寄存器層直接對片上SRAM層進(jìn)行數(shù)據(jù)讀寫訪問,同時(shí)通過片上SRAM層對顯示存儲器層進(jìn)行訪問;片上SRAM層直接對顯示存儲器層進(jìn)行讀寫訪問。
2.根據(jù)權(quán)利要求1所述的圖形處理器的片上存儲層次結(jié)構(gòu),其特征在于:所述寄存器層包括多個(gè)圖形屬性寄存器。
3.根據(jù)權(quán)利要求2所述的圖形處理器的片上存儲層次結(jié)構(gòu),其特征在于:所述片上SRAM層包括多個(gè)高速緩沖器和至少一個(gè)圖像數(shù)據(jù)緩沖器。
4.根據(jù)權(quán)利要求所述的圖形處理器的片上存儲層次結(jié)構(gòu),其特征在于:所述顯示存儲器層包括兩個(gè)存儲管理單元、第一存儲器和第二存儲器,所述存儲管理單元包括兩路獨(dú)立的第一訪存仲裁與存儲保護(hù)單元和第二訪存仲裁與存儲保護(hù)單元、兩路獨(dú)立的第一存儲控制器和第二存儲控制器; 所述第一存儲控制器實(shí)現(xiàn)外部存儲器芯片的數(shù)據(jù)訪問和時(shí)序控制; 所述第一訪存仲裁與存儲保護(hù)單元根據(jù)片上SRAM層的緩沖器的訪問請求,第一控制第一存儲控制器從相應(yīng)的第一存儲器中讀寫數(shù)據(jù); 所述第二訪存仲裁與存儲保護(hù)單元根據(jù)片上SRAM層的緩沖器的訪問請求,控制第二存儲控制器從相應(yīng)的第二存儲器中讀寫數(shù)據(jù)。
5.根據(jù)權(quán)利要求2所述的圖形處理器的片上存儲層次結(jié)構(gòu),其特征在于:多個(gè)圖形屬性寄存器分別為顏色寄存器、深度寄存器、染色處理器內(nèi)核中的通用寄存器和像素寄存器; 多個(gè)高速緩沖器分別為顏色高速緩沖器、深度高速緩沖器、染色處理器內(nèi)核中的指令和數(shù)據(jù)高速緩沖器和圖像數(shù)據(jù)緩沖器。
【文檔編號】G06F3/06GK104504647SQ201410752216
【公開日】2015年4月8日 申請日期:2014年12月9日 優(yōu)先權(quán)日:2014年12月9日
【發(fā)明者】田澤, 張駿, 許宏杰, 黎小玉, 盧俊, 安博鋒 申請人:中國航空工業(yè)集團(tuán)公司第六三一研究所