TWI828052B - 基於晶體堆疊架構的計算機系統和記憶體管理方法 - Google Patents
基於晶體堆疊架構的計算機系統和記憶體管理方法 Download PDFInfo
- Publication number
- TWI828052B TWI828052B TW111103764A TW111103764A TWI828052B TW I828052 B TWI828052 B TW I828052B TW 111103764 A TW111103764 A TW 111103764A TW 111103764 A TW111103764 A TW 111103764A TW I828052 B TWI828052 B TW I828052B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- computer system
- performance
- input parameter
- logic circuit
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 428
- 238000007726 management method Methods 0.000 title claims description 20
- 230000014509 gene expression Effects 0.000 claims abstract description 13
- 239000013078 crystal Substances 0.000 claims description 31
- 238000003491 array Methods 0.000 claims description 5
- 230000001934 delay Effects 0.000 claims 1
- 230000003068 static effect Effects 0.000 abstract description 11
- 230000006870 function Effects 0.000 abstract description 9
- 238000000034 method Methods 0.000 description 12
- 229940095676 wafer product Drugs 0.000 description 10
- 230000008901 benefit Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 239000000758 substrate Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000011265 semifinished product Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一種基於晶體堆疊架構的計算機系統,可以成本較低的動態記憶體取代靜態記憶體,實現高速運算中的快取功能。該計算機系統中至少包含一第一記憶體晶體層和一邏輯電路層疊合成一晶圓堆疊。該第一記憶體晶體層中至少包含一第一記憶體及一第二記憶體,效能特徵不同。邏輯電路層中至少包含一邏輯電路,連接該第一記憶體和該第二記憶體,執行一邏輯運算式。該邏輯電路中至少包含一運算單元和一效能管理器。該運算單元包含多個運算閘,用於執行該邏輯運算式。該效能管理器連接該等運算閘,可根據該等運算閘的效能需求,分別將該等運算閘的輸入端或輸出端連接至該第一記憶體或該第二記憶體。
Description
本申請是關於一種晶片堆疊架構的計算機系統,尤其是有關於可動態配置快取效能的計算機架構。
平行運算使用的電腦硬體架構,有別於傳統的單一處理器架構。平行運算的應用範圍很廣,例如人工智慧、機器學習、和區塊鏈。這些應用所需要的運算量也呈現幾何式倍增。針對特定應用所開發的計算機裝置,往往面臨極高的記憶體吞吐量的要求,或是極大的儲存裝置的容量要求。記憶體的類型,根據用途,大致上可分為兩類,一種是用於儲存,一種是用於運算。用於儲存的記憶體,適合存放變動頻率低的資料。用於運算的記憶體,適合儲存高速運算中不斷變動的資料。傳統的處理器架構中,通常以靜態記憶體做為快取記憶體,以利運算。靜態記憶體雖然效能遠高於動態記憶體,但是成本也相對昂貴。隨著運算量上升,快取記憶體的容量需求也隨著上升,使得產品成本負擔加重。此外,以應用程式特定晶片實作各種應用所需要的邏輯運算時,牽涉到的邏輯運算式經常需要彈性調整,或是隨著版本更新而改變。因此對於快取記憶體的效能需求和容量需求也隨時不同。傳統的計算機架構,靜態記憶體通常是固定的硬體配置。若是配置小於需求,則會影響效能。若是配置大於需求,又會浪費成本。有鑑於此,一種可彈性調度的記憶體管理架構是有待開發的。
本申請提出一種基於晶體堆疊架構的計算機系統,可以成本較低的動態記憶體取代靜態記憶體,實現高速運算中的快取功能。該計算機系統中至少包含一第一記憶體晶體層和一邏輯電路層疊合成一晶圓堆疊。該第一記憶體晶體層中至少包含一第一記憶體及一第二記憶體。該第一記憶體的一第一效能特徵與該第二記憶體的一第二效能特徵不同。
邏輯電路層中至少包含一邏輯電路。該邏輯電路連接該第一記憶體和該第二記憶體,使用該第一記憶體和該第二記憶體以執行一邏輯運算式。該邏輯電路是一嵌入式可編程邏輯閘陣列。
該邏輯電路中至少包含一運算單元和一效能管理器。該運算單元包含多個運算閘,用於執行該邏輯運算式。該效能管理器連接該等運算閘,可根據該等運算閘的效能需求,分別將該等運算閘的輸入端或輸出端連接至該第一記憶體或該第二記憶體。
在進一步的實施例中,當一運算閘在該第一記憶體中查找不到資料,該效能管理器使該運算閘連接至該第二記憶體存取資料。
在進一步的實施例中,計算機系統可以是多層記憶體堆疊架構。例如由一第二記憶體晶體層,該第一記憶體晶體層和該邏輯電路層結合成該晶圓堆疊。該第二記憶體晶體層中可實作一第三記憶體,而該第三記憶體晶體層的一第三效能特徵與該第一效能特徵或該第二效能特徵不同。邏輯電路存取該第三記憶體的方式與前述相同。
在進一步的實施例中,該邏輯電路層與該第一記憶體晶體層之間包含多個連接墊,用於傳遞訊號。該邏輯電路可進一步包含一第一記憶體控制器,和一第二記憶體控制器,分別對應該第一記憶體和該第二記憶體。具體地說,該第一記憶體控制器連接該效能管理器,並透過該等連接墊耦接該第一記憶體,以控制該第一記憶體。同樣地,該第二記憶體控制器連接該效能管理器,並透過該等連接墊耦接該第二記憶體,以控制該第二記憶體。
在進一步的實施例中,該第一效能特徵和該第二效能特徵指的是記憶體延遲(Memory Latency)。在本申請的架構中,該第一記憶體和該第二記憶體中分別包含一或多個記憶體陣列,而記憶體延遲可透過記憶體控制器以指令的方式配置。舉例來說,該第一記憶體控制器和該第二記憶體控制器分別以指令改變該第一記憶體和該第二記憶體中的該等記憶體陣列的維度配置,以調整該第一效能特徵和該第二效能特徵。
本申請的另一實施例提出一種記憶體管理方法,基於上述計算機系統的實施例,針對一遞迴運行的邏輯運算式而發揮最大效用。該邏輯運算式的執行至少包含下列步驟:從一第一記憶體查找一第一輸入參數,代入該邏輯運算式以產生一輸出數值。在該邏輯運算式執行時,效能控制器運該記憶體管理方法的步驟如下。當該邏輯運算式要求讀取一第一輸入參數時,從第一記憶體查找。當從該第一記憶體查找不到該第一輸入參數時,從一第二記憶體查找該第一輸入參數。當從該第二記憶體查找到該第一輸入參數後,先將該第一輸入參數從該第二記憶體搬移至該第一記憶體,再從該第一記憶體讀取該第一輸入參數,使該邏輯運算式產生該輸出數值。最後,將該輸出數值儲存至該第一記憶體。其中該第一記憶體的記憶體延遲低於該第二記憶體的記憶體延遲。
在進一步的實施例中,效能控制器還可統計該第一記憶體中每一區塊被存取率。當該第一記憶體的剩餘空間小於一底限值,效能控制器可利用命令將第一記憶體中被存取率最小的區塊資料搬移至一第二記憶體。
更進一步地說,查找的步驟是從快的記憶體往慢的記憶體遞迴進行。例如,當從該第二記憶體中查找不到該第一輸入參數時,效能控制器還可從一第三記憶體查找該第一輸入參數。同樣地,當從該第二記憶體查找到該第一輸入參數後,將該第一輸入參數從該第二記憶體搬移至該第一記憶體,再讓該邏輯運算式使用。其中該第三記憶體的記憶體延遲高於該第二記憶體的記憶體延遲。
綜上所述,本申請提出的計算機系統和記憶體管理方法,運用了晶體堆疊架構的優勢,打造了一個適合大量記憶體存取的計算機架構。動態記憶體可經過效能管理器的優化而取代傳統的靜態記憶體,以降低成本。邏輯電路採用了適合平行運算的eFPGA架構,使本計算機在人工智慧和區塊鏈的市場上具有顯著的效能優勢。
下面將結合本申請實施例中的圖式,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本申請保護的範圍。
本申請提出一種基於晶體堆疊架構的計算機系統,可以成本較低的動態記憶體取代靜態記憶體,實現高速運算中的快取功能。
圖1是本申請的立體晶圓產品100的實施例。立體晶圓產品100由至少一記憶體晶體層110,一邏輯電路層120,及一基底130層層堆疊。基底130除了提供基本的支撐,也提供額外的布線空間。每一層之間配置有多個連接墊102或104以提供訊號通道。本實施例的立體晶圓產品100是計算機系統200的半成品,經過切割後可產生多個獨立運作的計算機系統200。如圖1所示,每個計算機系統200可各包含若干個記憶體裝置112和若干個邏輯電路122,具備相同的立體晶圓結構。換句話說,每個計算機系統200中包含的記憶體裝置112和邏輯電路122,是事先各別布局於記憶體晶體層110和邏輯電路層120中,再以晶片堆疊的形式製成的立體結構。在立體結構中,晶片組之間的電路導線不需要佔用多餘的面積,可直接以成千上萬個連接墊102和104做為訊號傳遞的路徑,使資料傳遞的效能問題有效被解決,借此實現本申請的計算機系統200。
在本申請的實施例中,邏輯電路122是以嵌入式可編程邏輯閘陣列(Embedded Field Programmable Gate Array; eFPGA)的技術實作。顧名思義,就是將可編程邏輯閘陣列實作在嵌入式系統中。和傳統的應用程式特定晶片(Application Specific Integrated Circuit; ASIC)技術相比,eFPGA的優勢在於極高的硬體平行處理能力、深度流水線(Pipeline)、以及高位寬總線。這些優勢尤其適合應用在人工智慧、技術學習、深度學習,以及區塊鏈等領域。傳統的eFPGA的運行時脈可能無法和ASIC技術相比,但是如果能在邏輯電路122之間引入快取記憶體,可以將eFPGA的運行速度增加1.5~2倍。因此,本申請的實施例運用了晶片堆疊架構的優勢,使邏輯電路122能透過大量的導線輕易的存取記憶體裝置112。
圖2是本申請實施例的計算機系統200。圖1所示的立體晶圓產品100,完成晶片堆疊程序之後,可進一步經過晶圓切割的程序,形成多個計算機系統200。記憶體層210是從圖1的記憶體晶體層110中切割出來的部份,其上可布局多種類型的記憶體,例如第一記憶體211,第二記憶體212,和第三記憶體213。邏輯電路220是從圖1的邏輯電路層120切出來的部份,與該記憶體層210堆疊,其中包含各種電路模組,例如第一記憶體控制器221,第二記憶體控制器222,第三記憶體控制器223,效能管理器225,和運算單元510。每一記憶體控制器分別連接至記憶體層210中的第一記憶體211,第二記憶體212,第三記憶體213,除了負責傳送存取命令和資料,也可控制記憶體的效能參數。基底230是從圖1的基底130切割出來的部份。記憶體層210和邏輯電路220的堆疊之間透過多個連接墊102傳遞訊號。邏輯電路220也透過多個連接墊104固定在基底230上。基底230除了為整個計算機系統200提供基本的支撐作用,也可提供額外的布線空間。記憶體控制器和該等記憶體裝置之間的訊號皆透過連接墊102傳遞。
總結地說,本申請的計算機系統200實施例中至少包含一記憶體層210和一邏輯電路220結合成一晶圓堆疊。該記憶體層210中包含多種類型的記憶體,每種記憶體的效能特徵不同。舉例來說,效能特徵可以是記憶體延遲(Memory Latency)。根據傳統的記憶體架構,第一記憶體211和第二記憶體212可理解為一或多個記憶體陣列的組合,每個記憶體陣列由多個記憶體單元排列成矩陣,而每個記憶體單元負責記憶一個位元的資料。記憶體延遲就是從這些記憶體單元中獲取資料或寫入資料所需要的時脈數。影響記憶體延遲的因素很多,主要包含電晶體特性和電容效應。舉例來說,在驅動記憶體陣列時,若每一行記憶體單元的數量越多,延遲越長。
本申請實施例在記憶體層210中配置不同延遲特性的記憶體,使計算機系統200在成本最低的狀況下優化運算。舉例來說,第一記憶體211的記憶體陣列中,每一行配置較少的記憶體單元數量,使延遲降低。如此,第一記憶體211適合用來儲存更新頻率高的資料,例如正在運算單元510中被計算的資料。相對的,第二記憶體212的記憶體陣列中的每一行可配置較多的記憶體單元數量,使容量倍增。雖然第二記憶體212的延遲比第一記憶體211高,但適合儲存變動頻率較低或是數量龐大的資料。進一步地說,本申請的計算機系統200可根據實際應用的需求,配置更多類型的記憶體,例如比第二記憶體212更慢但是更大的第三記憶體213,使各種不同效能需求的資料都能對應到最適當的存儲空間。
在進一步的實施例中,計算機系統200中可採用具有維度配置功能的記憶體。記憶體陣列中的行和列的維度可以透過特定的指令和電路而重新配置。當每一行記憶體單元數量被改變時,電容效應可被改變,使記憶體延遲特性改變。而維度配置可透過記憶體控制器以指令的方式設定。舉例來說,該第一記憶體控制器221控制器和該第二記憶體控制器222控制器可分別以指令改變該第一記憶體控制器221和該第二記憶體控制器222中的記憶體陣列的維度配置,以調整對應的效能特徵,即,記憶體延遲。
一般傳統的動態隨機存取記憶體中,記憶體延遲大約為25至65個時脈週期。通過本申請實施例的配置方式,可設定第一記憶體控制器221的記憶體延為1至3個時脈週期,第二記憶體控制器222的記憶體延遲為3至12個時脈週期,而第三記憶體控制器223的記憶體延遲為12至25個時脈週期。第一記憶體控制器221設定為低延遲特性之後,尤其適合取代傳統的靜態隨機存取記憶體,提供給運算單元510當成運算過程中使用的快取記憶體,或是暫存器。
圖1的邏輯電路122從邏輯電路層120切割出來後,成為圖2中的邏輯電路220。該邏輯電路220是嵌入式可編程邏輯閘陣列eFPGA,其中包含第一記憶體控制器221,第二記憶體控制器222,第三記憶體控制器223,效能管理器225,和一或多個運算單元510。第一記憶體控制器221,第二記憶體控制器222和第三記憶體控制器223對應連接並管理第一記憶體211,第二記憶體212,和第三記憶體213。多個運算單元510可串聯成平行運算架構,以執行特定應用程式。舉例來說,機器學習中常用的卷積神經網路(Convolutional Neural Network;CNN)演算法,就是一種適合平行運算的陣列式遞迴運算。關於CNN演算法的詳細內容,屬於現有人工智慧領域的知識,因此不在本實施例中詳細說明。運算單元510可以程式化的方式將任何數學運算,包含CNN演算法中使用的數學公式轉換成多個加法器和乘法器組合而成的硬體結構,搭配第一記憶體211,第二記憶體212和第三記憶體213做為運算的輔助,可實現效能優化。
效能管理器225是本申請針對記憶管理管優化而提出的控制單元。多個運算單元510中可能包含多種運算閘,例如加法器、乘法器、除法器、多工器、以及各種邏輯運算閘。每一種運算閘的輸入值或輸出值可能是由記憶體層210中的記憶體來儲存,因此效能管理器225可針對每一運算閘的資料存取需求而動態配置連接至對應的記憶體。另一方面,第一記憶體控制器221,第二記憶體控制器222和第三記憶體控制器223連接效能管理器225 ,被效能管理器225驅動後透過該等連接墊102控制對應的第一記憶體211,第二記憶體212和第三記憶體213。關於記憶體控制器的詳細設計,可參考JEDEC記憶體標準協議,不再贅述。
圖3是以本申請另一實施例的晶片堆疊架構製成的立體晶圓產品300。與圖1相似,立體晶圓產品300由至少一記憶體晶體層110,一邏輯電路層120,及一基底130堆疊。除此之外,立體晶圓產品300中還可包含一記憶體晶體層140,附加堆疊於記憶體晶體層110上。換句話說,晶片堆疊的層數並不限制於三層。該記憶體晶體層140和記憶體晶體層110之間,以多個連接墊101相連接,以傳遞訊號。立體晶圓產品300的堆疊完成後,可進一步縱向切割,以產生計算機系統400。
圖4是根據圖3所產生的計算機系統400。計算機系統400中包含記憶體層210,邏輯電路220,基底230和記憶體層240。記憶體層210是圖3的記憶體晶體層110切割出來的部份,邏輯電路220是圖3的邏輯電路層120切割出來的部份,基底230是圖3的記憶體晶體層140切割出來的部份。而記憶體層240是圖3的記憶體晶體層140切割出來的部份,也就是多個記憶體裝置142中的其中一或數個。不同效能特徵的記憶體可以設置在不同層中。舉例來說,記憶體層210中可配置第一記憶體211和第二記憶體212。而記憶體層240中可配置第三記憶體213。第一記憶體控制器221和第二記憶體控制器222可透過連接墊102對應地控制第一記憶體211和第二記憶體212。而第三記憶體控制器223可透過連接墊102和連接墊101控制第三記憶體213。為了使第三記憶體控制器223能跨過記憶體層210存取記憶體層240中的第三記憶體213,記憶體層210中可預留空間使連接墊101和連接墊102成為直接連接的一通道214。由於第三記憶體213位於距離邏輯電路220較遠的記憶體層240中,相較於第一記憶體211和第二記憶體212,第三記憶體213較適合配置為大容量記憶體,用於儲存更新頻率較低的靜態資料。本實施例中的運算單元510存取第三記憶體213的方式與前述相同,由效能管理器225根據運算單元510中每個運算閘的效能需求,對應地使該等運算閘連接至適當的記憶體。
圖5是本申請實施例的計算機系統500,說明效能管理器225和運算單元510的其中一種可能的工作方式。為簡化說明,圖5中僅顯示效能管理器225和運算單元510及各種記憶體之間的關係。效能管理器225本身可以是一種程式控制的微型處理器,具備計算、判斷和記憶體映射功能。運算單元510對記憶體發出的存取要求以及存取資料,都可透過效能管理器225判斷並轉送至最適合的一組記憶體記憶體。舉例來說,運算單元510中包含多個運算閘,例如加法器507和乘法器509,可透過線路組合而執行應用程式要求的各種邏輯運算式。加法器507從輸入端501讀取資料,進行加法運算後輸出值至乘法器509。乘法器509從輸入端503讀取資料,與加法器507的輸出相加後,透過輸出端505存回記憶體。對運算單元510而言,對記憶體的存取是透過效能管理器225。而效能管理器225決定如何將存取要求轉送至第一記憶體211,第二記憶體212和第三記憶體213。換句話說,該效能管理器225可監測該等運算閘對記憶體的存取要求,動態統計每一運算閘的效能,而將該等運算閘的輸入端或輸出端連接至對應的第一記憶體211,第二記憶體212或第三記憶體213。
圖5雖顯示兩個運算閘,但可以理解的是,在實際應用中,運算單元510中的運算閘數量並不限定於此。效能管理器225也可以進一步提供分析判斷功能,以優化對運算閘的記憶體映射方式。其中一種做法是,視情況將多個運算閘組成群組以簡化管理。舉例來說,運算單元510中可能存在六個運算閘。效能管理器225可分析原運算邏輯,發現實際上是五個運算閘重複運算一千次,再和第六個運算閘的計算結果相加。這時,效能管理器225可將前五個運算閘歸為一組,依照整組的效能要求配置記憶體。
在本實施例中,描述了效能管理器225將運算閘的輸入端或輸出端「連接」至對應的記憶體。特別說明的是,在物理上的電子線路本來就具有耦接關係,而在效能管理器225實施例所述的「連接」,表達的是邏輯上的映射、轉送或切換,也就是存取資料的多工轉向。關於電子資料的多工轉向切換技術,可由已知的邏輯電路來實現,在此不再詳細解釋。圖5中所繪示的線路連接,在實體設計中也可以採用記憶體映射表(Mapping Table)的方式實現。記憶體映射表是一種將邏輯頁框對映至實體地址的一種儲存管理方式。在本實施例中,不同種類的記憶體可以賦予不同的實體地址。藉此,只需要操作記憶體映射表,就能實現效能管理器225中所示的線路連接。
除此之外,由於本例中的第一記憶體211具有低延遲特性,效能管理器225也可以將第一記憶體211當成內定的快取記憶體或是暫存器。任何運算閘對記憶體的存取可優先使用第一記憶體211,當第一記憶體211中查找不到資料時,才使用第二記憶體212或第三記憶體213。換句話說,當一運算閘在該第一記憶體控制器221中查找不到資料,該效能管理器225可使該運算閘連接至該第二記憶體控制器222存取資料。
本申請的效能管理器可基於前述計算機系統的實施例而發揮最大效用,但不限定於前述實施例的操作方式。舉例來說,效能管理器225還可以實現控制快取記憶體的功能。傳統的計算機系統使用成本較高的靜態記憶體來做為第一級(L1)和第二級(L2)快取。本實施例可使用成本較低的動態記憶體,即第一記憶體和第二記憶體,來做為第一級和第二級快取。在運算單元510中的每一運算閘,不論是加法器、乘法器、除法器、多工器或各種邏輯運算閘,其運行原理還可以設計成遵照記憶體存取協議的方式來實作,歸納為:要求讀取一或多個輸入參數後,運算並要求寫入一輸出資料。
圖6是本申請另一實施例的記憶體管理方法流程圖。首先,在步驟601中,運算閘對該效能管理器225發出一讀取要求,以讀取一第一輸入參數。在步驟603中,該運算閘獲取該效能管理器225輸出的該第一輸入參數。在步驟605中,該運算閘使用該第一輸入參數進行其所屬的邏輯功能,以在步驟607中生成一輸出資料。在步驟609中,該運算閘對該效能管理器發出一寫入要求,要求效能管理器將輸出資料儲存至記憶體中。在步驟610中,該運算閘可能收到效能管理器回應的存取允許訊號,於是將該輸出資料傳送給該效能管理器,進行後續存放作業。對運算閘本身而言,並不需要知道資料將被送至哪一個記憶體儲存,只需要依照記憶體存取協議,發出既定的要求或接收回應,就能完成記憶體存取。實體資料的存放是由效能管理器負責安排。通常運算單元510是被設計成遞迴運行的。因此運算閘在完成步,驟610後,可周而覆始地從步驟601開始執行。
另一方面,在效能管理器225端,可處理運算閘對記憶體的各種存取要求,最大化記憶體的資料存取效能。在本實施例的計算機系統中,第一記憶體是所有記憶體中延遲最低的,即,速度最快。因此效能管理器會優先以第一記憶體執行運算。在步驟611中,當效能管理器225收到該運算閘發出的讀取要求,會優先從第一記憶體中查找第一輸入參數。在步驟613中,根據查找結果有不同的處理方式。如果第一記憶體中沒查找到該第一輸入參數,進行步驟615,從速度較慢的第二記憶體中查找到該第一輸入參數,並將該第一輸入參數搬移到該第一記憶體中。若在步驟613中查找到第一輸入參數,則直接運行步驟617。同樣地,步驟615完成後,也跳至步驟617。在步驟617中,從該第一記憶體中提取該第一輸入參數,傳送給該運算閘,使該讀取要求獲得滿足。
當效能管理器225收到該運算閘發出的一寫入要求,要求將一輸出資料儲存至記憶體中時,效能管理器225進行步驟619。原則上,任何新資料的儲存都是第一記憶體為優先存空間。因此,在步驟619中,該效能管理器檢查第一記憶體的剩餘空間是否足夠。如果空間足夠,直接運行步驟623,接收該運算閘傳送過來的輸出資料,並儲放至該第一記憶體中。相對地,如果第一記憶體的剩餘空間不足,必須先騰出空間。這時效能管理器執行步驟621。在步驟621中,效能管理器將第一記憶體中被存取率最小的區塊中的資料搬移至速度較慢的第二記憶體,以騰出空間。換句話說,效能管理器具有快取管理能力,可執行一種最少使用演算法(Least Recently Used;LRU)來統計第一記憶體中每一區塊的使用率。經過長時間的運行後,第一記憶體中漸漸地就只會留下最常用的資料,使計算機系統運行在優化的狀態。步驟621完成後,效能管理器可執行步驟623使運算閘的資料寫入要求獲得滿足。
可理解的是,運算單元510中的元件對記憶體的存取要求可以遵照JEDEC記憶體管理協議進行,因此運算單元510如何為運算閘產生記憶體存取要求的訊號格式不在本實施例中贅述。附加一提的是,在步驟615中,從第二記憶體中查找第一輸入參數的過程,是有可能查找不到的。這時查找的過程可延伸為,繼續往速度比第二記憶體更慢的第三記憶體查找,依此類推。另一方面,雖然本實施例僅描述了第一輸入參數,但可以理解的是,一個運算閘是有可能同時讀取多個輸入參數而進行運算的,而輸出資料也有可能為多個數值。本實施例不限定實體設計上可能衍生的各種態樣,效能管理器為運算閘提供優化的記憶體存取功能的實施方式是一體適用的。
總結來說,本申請的記憶體管理方法基於上述計算機系統的實施例,可針對一遞迴運行的邏輯運算式而發揮最大效用。該邏輯運算式的執行至少包含下列步驟:從一第一記憶體查找一第一輸入參數,代入該邏輯運算式以產生一輸出數值。在該邏輯運算式執行時,效能控制器運行該記憶體管理方法的步驟如下。當該邏輯運算式要求讀取一第一輸入參數時,從第一記憶體查找。當從該第一記憶體查找不到該第一輸入參數時,從一第二記憶體查找該第一輸入參數。當從該第二記憶體查找到該第一輸入參數後,先將該第一輸入參數從該第二記憶體搬移至該第一記憶體,再從該第一記憶體讀取該第一輸入參數,使該邏輯運算式產生該輸出數值。最後,將該輸出數值儲存至該第一記憶體。其中該第一記憶體的記憶體延遲低於該第二記憶體的記憶體延遲。
在進一步的實施例中,效能控制器還可統計該第一記憶體中每一區塊被存取率。當該第一記憶體的剩餘空間小於一底限值,效能控制器可利用命令將第一記憶體中被存取率最小的區塊資料搬移至一第二記憶體。
更進一步地說,查找的步驟是從快的記憶體往慢的記憶體遞迴進行。例如,當從該第二記憶體中查找不到該第一輸入參數時,效能控制器還可從一第三記憶體查找該第一輸入參數。同樣地,當從該第二記憶體查找到該第一輸入參數後,將該第一輸入參數從該第二記憶體搬移至該第一記憶體,再讓該邏輯運算式使用。其中該第三記憶體的記憶體延遲高於該第二記憶體的記憶體延遲。
綜上所述,本申請提出的計算機系統和記憶體管理方法,運用了晶體堆疊架構的優勢,打造了一個適合大量記憶體存取的計算機架構。動態記憶體可經過效能管理器的優化而取代傳統的靜態記憶體,以降低成本。邏輯電路採用了適合平行運算的eFPGA架構,使本計算機在人工智慧和區塊鏈的市場上具有顯著的效能優勢。
需要說明的是,在本文中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
上面結合圖式對本申請的實施例進行了描述,但是本申請並不局限於上述的具體實施方式,上述的具體實施方式僅僅是示意性的,而不是限制性的,本領域的普通技術人員在本申請的啓示下,在不脫離本申請宗旨和權利要求所保護的範圍情況下,還可做出很多形式,均屬本申請的保護之內。
100:立體晶圓產品
101,102,104:連接墊
110:記憶體晶體層
112:記憶體裝置
120:邏輯電路層
122:邏輯電路
130:基底
140:記憶體晶體層
142:記憶體裝置
200:計算機系統
210:記憶體層
211:第一記憶體
212:第二記憶體
213:第三記憶體
214:通道
220:邏輯電路
221:第一記憶體控制器
222:第二記憶體控制器
223:第三記憶體控制器
225:效能管理器
230:基底
240:記憶體層
300:立體晶圓產品
400:計算機系統
500: 計算機系統
501:輸入端
503:輸入端
505:輸出端
507:加法器
509:乘法器
510:運算單元
601-623:步驟
此處所說明的圖式用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用於解釋本申請,並不構成對本申請的不當限定。在圖式中:
圖1是以本申請實施例的晶片堆疊架構的立體晶圓產品100。
圖2是本申請實施例的計算機系統200。
圖3是以本申請另一實施例的晶片堆疊架構製成的立體晶圓產品300。
圖4是本申請實施例的計算機系統400。
圖5是本申請實施例的計算機系統500。
圖6是本申請實施例的記憶體管理方法流程圖。
102,104:連接墊
200:計算機系統
210:記憶體層
211:第一記憶體
212:第二記憶體
213:第三記憶體
221:第一記憶體控制器
222:第二記憶體控制器
223:第三記憶體控制器
225:效能管理器
230:基底
510:運算單元
Claims (10)
- 一種計算機系統,包含:一第一記憶體晶體層,至少包含一第一記憶體,及一第二記憶體,其中該第一記憶體的一第一效能特徵與該第二記憶體的一第二效能特徵不同,該第一效能特徵和該第二效能特徵是記憶體延遲,該第一記憶體的記憶體延遲低於該第二記憶體的記憶體延遲;以及一邏輯電路層,與該第一記憶體晶體層結合成一晶圓堆疊(Wafer on Wafer),包含一邏輯電路;其中:該邏輯電路連接該第一記憶體和該第二記憶體,使用該第一記憶體和該第二記憶體以執行一邏輯運算式。
- 如請求項1所述的計算機系統,其中該邏輯電路是一嵌入式可編程邏輯閘陣列。
- 如請求項1所述的計算機系統,其中該邏輯電路包含:一運算單元,包含多個運算閘,用於執行該邏輯運算式;以及一效能管理器,連接該等運算閘,用於根據該等運算閘的效能需求,分別將該等運算閘的輸入端或輸出端連接至該第一記憶體或該第二記憶體。
- 如請求項3所述的計算機系統,其中:當一運算閘在該第一記憶體中查找不到資料,該效能管理器使該運算閘連接至該第二記憶體存取資料。
- 如請求項3所述的計算機系統,進一步包含一第二記憶體晶體層,與該第一記憶體晶體層和該邏輯電路層結合成該晶圓堆疊(Wafer on Wafer);其中:該第二記憶體晶體層包含一第三記憶體;以及 該第三記憶體的一第三效能特徵與該第一效能特徵或該第二效能特徵不同。
- 如請求項3所述的計算機系統,進一步包含多個連接墊,連接該邏輯電路層與該第一記憶體晶體層之間,用於傳遞訊號;其中該邏輯電路進一步包含:一第一記憶體控制器,連接該效能管理器,並透過該等連接墊耦接該第一記憶體,用於控制該第一記憶體;以及一第二記憶體控制器,連接該效能管理器,並透過該等連接墊耦接該第二記憶體,用於控制該第二記憶體。
- 如請求項6所述的計算機系統,其中:該第一記憶體和該第二記憶體中分別包含一或多個記憶體陣列;以及該第一記憶體控制器和該第二記憶體控制器分別以指令改變該第一記憶體和該第二記憶體中的該等記憶體陣列的維度配置,以調整該第一效能特徵和該第二效能特徵。
- 一種記憶體管理方法,應用於如請求項1所述的計算機系統中,其中該計算機系統遞迴地根據一第一輸入參數執行一邏輯運算式以產生一輸出數值;該記憶體管理方法包含:從一第一記憶體查找該第一輸入參數;當從該第一記憶體查找不到該第一輸入參數,從一第二記憶體查找該第一輸入參數;當從該第二記憶體查找到該第一輸入參數,將該第一輸入參數從該第二記憶體搬移至該第一記憶體; 從該第一記憶體讀取該第一輸入參數,提供給該計算機系統以執行邏輯運算式以產生該輸出數值;以及將該輸出數值儲存至該第一記憶體。
- 如請求項8所述的記憶體管理方法,進一步包含:統計該第一記憶體中每一區塊被存取率;當該第一記憶體的剩餘空間小於一底限值,將被存取率最小的區塊資料搬移至一第二記憶體。
- 如請求項8所述的記憶體管理方法,進一步包含:當從該第二記憶體中查找不到該第一輸入參數,從一第三記憶體查找該第一輸入參數;以及當從該第二記憶體查找到該第一輸入參數,將該第一輸入參數從該第二記憶體搬移至該第一記憶體;其中:該第三記憶體的記憶體延遲高於該第二記憶體的記憶體延遲。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111103764A TWI828052B (zh) | 2022-01-27 | 2022-01-27 | 基於晶體堆疊架構的計算機系統和記憶體管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111103764A TWI828052B (zh) | 2022-01-27 | 2022-01-27 | 基於晶體堆疊架構的計算機系統和記憶體管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202331519A TW202331519A (zh) | 2023-08-01 |
TWI828052B true TWI828052B (zh) | 2024-01-01 |
Family
ID=88559331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111103764A TWI828052B (zh) | 2022-01-27 | 2022-01-27 | 基於晶體堆疊架構的計算機系統和記憶體管理方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI828052B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111244081A (zh) * | 2018-11-28 | 2020-06-05 | 台湾积体电路制造股份有限公司 | 集成电路装置、互连元件晶粒及集成晶片上系统制造方法 |
TWM600937U (zh) * | 2019-03-22 | 2020-09-01 | 美商吉林克斯公司 | 用於記憶體裝置的封裝整合 |
US20210248094A1 (en) * | 2020-02-07 | 2021-08-12 | Sunrise Memory Corporation | Quasi-volatile system-level memory |
TWI748755B (zh) * | 2020-04-20 | 2021-12-01 | 南韓商三星電子股份有限公司 | 記憶體模組以及堆疊記憶體裝置 |
TW202147562A (zh) * | 2020-02-24 | 2021-12-16 | 美商森恩萊斯記憶體公司 | 含晶圓級記憶體電路之高容量記憶體模組 |
-
2022
- 2022-01-27 TW TW111103764A patent/TWI828052B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111244081A (zh) * | 2018-11-28 | 2020-06-05 | 台湾积体电路制造股份有限公司 | 集成电路装置、互连元件晶粒及集成晶片上系统制造方法 |
TWM600937U (zh) * | 2019-03-22 | 2020-09-01 | 美商吉林克斯公司 | 用於記憶體裝置的封裝整合 |
US20210248094A1 (en) * | 2020-02-07 | 2021-08-12 | Sunrise Memory Corporation | Quasi-volatile system-level memory |
TW202147562A (zh) * | 2020-02-24 | 2021-12-16 | 美商森恩萊斯記憶體公司 | 含晶圓級記憶體電路之高容量記憶體模組 |
TWI748755B (zh) * | 2020-04-20 | 2021-12-01 | 南韓商三星電子股份有限公司 | 記憶體模組以及堆疊記憶體裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW202331519A (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10459644B2 (en) | Non-volatile storage system with integrated compute engine and optimized use of local fast memory | |
CN102177551B (zh) | 与标准存储器模块管脚兼容的存储器模块中的独立可控制和可重新配置的虚拟存储器设备 | |
CN107301455B (zh) | 用于卷积神经网络的混合立方体存储系统及加速计算方法 | |
JP3801214B2 (ja) | 再構成可能な演算システム | |
WO2003007155A1 (fr) | Dispositif a circuit integre | |
WO2018190962A1 (en) | Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module | |
TWI718336B (zh) | Dpu操作用的系統 | |
US10114795B2 (en) | Processor in non-volatile storage memory | |
KR20200139829A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
CN110176260A (zh) | 支持跳跃计算模式的存储器器件及其操作方法 | |
KR20200108774A (ko) | 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법 | |
US11908541B2 (en) | Processing-in-memory (PIM) systems | |
US11705207B2 (en) | Processor in non-volatile storage memory | |
EP3901775A1 (en) | Technologies for media management in column-addressable memory media systems | |
JPH1097464A (ja) | 情報処理システム | |
KR20200138411A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
KR20200138413A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
TWI828052B (zh) | 基於晶體堆疊架構的計算機系統和記憶體管理方法 | |
US20200293452A1 (en) | Memory device and method including circular instruction memory queue | |
US20220350514A1 (en) | Memory mapping of activations for convolutional neural network executions | |
JP7149987B2 (ja) | データ伝送装置、データ処理システム、データ処理方法及び媒体 | |
CN116561042A (zh) | 基于晶体堆迭架构的计算器系统和内存管理方法 | |
KR20200138414A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
KR20200139256A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
CN112766479B (zh) | 一种基于fpga的支持通道分离卷积的神经网络加速器 |