龍芯3A5000處理器架構分析

提醒:已領讀者請忽略!
之前購買過“架構師技術全店資料打包彙總(全)已更新至48本)”的讀者免費發放全店更新(請在發貨的彙總連結下載),或請憑藉購買記錄在微店留言獲取(PDF閱讀版本)。

龍芯3A5000是龍芯中科研發的首款支援龍芯自主指令集(LoongArch)的通用多核處理器,主要面向桌面計算機和伺服器應用。龍芯3A5000片內整合4個64位LA464高效能處理器核、16MB的分體共享三級Cache、2個DDR4記憶體控制器(支援DDR4-3200)、2個16位HT(HyperTransport)控制器、2個I2C、1個UART、1個SPI、16路GPIO介面等。龍芯3A5000中多個LA464核及共享三級Cache模組,透過AXI互連網路形成一個分散式共享片上末級Cache的多核結構。
採用基於目錄的Cache一致性協議來維護Cache一致性。另外,龍芯3A5000還支援多片擴充套件,將多個晶片的HT匯流排直接互連就形成更大規模的共享儲存系統(最多可支援16片互連)。
LA464是支援Loongarch指令集的四發射64位高效能處理器核,具有256位向量部件。LA464的結構如圖所示,主要特點如下:
四發射超標量結構,具有四個定點、兩個向量、兩個訪存部件;支援暫存器重新命名、動態排程、轉移預測等亂序執行技術;每個向量部件寬度為256位,可支援8個雙32位浮點乘加運算或4個64位浮點運算;一級指令Cache和資料Cache大小各為64KB,4路組相聯;犧牲者Cache(Victim Cache)作為私有二級Cache,大小為256KB,16路組相連;支援非阻塞(Non-blocking)訪問及裝入猜測(Load Speculation)等訪存最佳化技術;支援標準的JTAG除錯介面,方便軟硬體除錯。
龍芯3A5000晶片整體架構基於多級互連實現,結構如上圖所示(圖為晶片版圖)。
第一級互連採用5×5的交叉開關,用於連線四個LA464核(作為主裝置)、四個共享Cache模組(作為從裝置)、以及一個IO埠連線IO-RING。IO埠使用一個Master和一個Slave。第二級互連採用5×3的交叉開關,連線4個共享Cache模組(作為主裝置),兩個DDR3/4記憶體控制器、以及一個IO埠連線IO-RING。IO-RING連線包括4個HT控制器,MISC模組,SE模組與兩級交叉開關。兩個HT控制器(lo/hi)共用16位HT匯流排,作為兩個8位的HT匯流排使用,也可以由lo獨佔16位HT匯流排。HT控制器內整合一個DMA控制器,DMA控制器負責IO的DMA控制並負責片間一致性的維護。上述互連結構都採用讀寫分離的資料通道,資料通道寬度為128bit,與處理器核同頻,用以提供高速的片上資料傳輸。此外,一級交叉開關連線4個處理器核與Scache的讀資料通道為256位,以提高片內處理器核訪問Scache的讀頻寬。
龍芯3A5000主頻可達2.5GHz,峰值浮點運算能力達到160GFLOPS。
龍芯3A3000+7A1000橋片中CPU、GPU、DC間的同步與通訊為例說明處理器與IO間的通訊。如圖所示,龍芯3A3000處理器和龍芯7A1000橋片透過HyperTransport匯流排相連,7A1000橋片中整合GPU、DC(顯示控制器)以及專供GPU和DC使用的視訊記憶體控制器。CPU可以透過PIO方式讀寫GPU中的控制暫存器、DC中的控制暫存器以及視訊記憶體;GPU和DC可以透過DMA方式讀寫記憶體,GPU和DC還可以讀寫視訊記憶體。
CPU或GPU週期性地把要顯示的資料寫入幀快取(Frame Buffer),DC根據幀快取的內容進行顯示。幀快取可以分配在記憶體中,GPU和DC透過DMA方式訪問記憶體中的幀快取;在獨立視訊記憶體的情況下,幀快取分配在獨立視訊記憶體中,CPU直接把要顯示的資料寫入幀快取,或者GPU透過DMA方式從記憶體中讀取資料並把計算結果寫入幀快取,DC直接讀取幀快取的內容進行顯示。根據是否由GPU完成圖形計算以及幀快取是否分配在記憶體中,常見的顯示模式有以下四種。
模式一:不使用GPU,CPU與DC共享記憶體。不使用橋片上的視訊記憶體,而在記憶體中分配一個區域專供顯示使用,這個區域稱之為幀快取(framebuffer)。需要顯示時,CPU透過正常記憶體訪問將需要顯示的內容寫入記憶體中的幀快取,然後透過PIO方式讀寫DC中的控制暫存器啟動DMA,DC透過DMA操作讀記憶體中的幀快取並進行顯示,如圖a所示。
模式二:不使用GPU,DC使用獨立視訊記憶體。DC使用橋片上的視訊記憶體,這個區域稱之為幀快取。需要顯示時,CPU將需要顯示的內容從記憶體讀出,再透過PIO方式寫入獨立視訊記憶體上的幀快取,然後透過PIO操作讀寫DC中的控制暫存器啟動DMA,DC讀視訊記憶體上的幀快取並進行顯示,如圖b所示。
模式三:CPU與GPU/DC共享記憶體。需要顯示時,CPU在記憶體中分配GPU使用的空間,並將相關資料填入,然後CPU透過PIO讀寫GPU中的控制暫存器啟動DMA操作,GPU透過DMA讀記憶體並將計算結果透過DMA寫入記憶體中的幀快取,CPU透過PIO方式讀寫DC中的控制暫存器啟動DMA,DC透過DMA方式讀記憶體中的幀快取並完成顯示,如圖c所示。
模式四:GPU/DC使用獨立視訊記憶體。需要顯示時,CPU在記憶體中分配GPU使用的空間,並將相關資料填入,然後CPU透過PIO讀寫GPU中的控制暫存器啟動DMA操作,GPU透過DMA讀記憶體並將計算結果寫入視訊記憶體中的幀快取,DC讀視訊記憶體中的幀快取並完成顯示,如圖d所示。
參考來源:https://foxsen.github.io/archbase

請之前購買過全店打包架構師技術全店資料打包彙總(全)”的讀者,請憑藉購買記錄在微店留言免費獲取(PDF閱讀版本)。後續所有更新均免費發放目前48本資料)。

免責申明:本號聚焦相關技術分享,內容觀點不代表本號立場,可追溯內容均註明來源,釋出文章若存在版權等問題,請留言聯絡刪除,謝謝。
推薦閱讀
更多架構相關技術知識總結請參考“架構師全店鋪技術資料打包(全)”相關電子書(48本技術資料打包彙總詳情可透過“閱讀原文”獲取)。
溫馨提示:
掃描二維碼關注公眾號,點選閱讀原文連結獲取架構師技術全店資料打包彙總(全)電子書資料詳情


相關文章