基本介紹
- 外文名:HyperMemory
- 對象:電腦
- 實質:一種解決方案
- 類型:科技
綜述,主要特點,
綜述
HyperMemory技術在需要時將數據置於系統記憶體中進行操作,並通過新添加的Memory Controller對本地顯存和系統記憶體的訪問與操作進行協調管理,使核心能更加合理、充分地利用本地顯存和系統記憶體的資源,達到最終擴展總顯存數量的目的。根據ATI的資料,以支持HyperMemory技術的低成本版X300為例,其275MHz的64bit本地顯存與64bit雙通道DDR400 的系統記憶體合併組成的綜合顯示存儲系統,可為核心提供12.8G/s的頻寬。
在HyperMemory出現之前,由於PCI-Express匯流排沒有很明顯的類似AGP DIME的設計,PCI-Express接口的顯示卡無法直接地對記憶體進行利用,所以往往需要通過搭配更大的本地顯存來滿足圖形套用中對存儲空間的需求。這大大增加了PCI-Express接口顯示卡的製造成本,同時,大容量本地顯存的解決方案也並非適用於所有用戶,中低端及入門級用戶需要更低成本的解決方案。這種情況使得廠商很難在利潤控制、性能與市場三者之間取得良好的平衡。HyperMemory技術出現後,ATI可通過它來大幅削減其PCI- Express接口顯示卡的本地顯存容量以達到控制成本的目的,同時可通過對系統記憶體的調用來解決存儲空間和存儲性能的需求問題。
主要特點
HyperMemory的第一個顯著特點是對記憶體匯流排的直接完全占用。通過System Bus Interface,HyperMemory可和AGP DIME一樣實現對記憶體匯流排的無延遲占用,這樣可保證數據傳輸過程不會受到延遲期的干擾。同時,由於獨占記憶體匯流排,HyperMemory可最大限度利用記憶體頻寬進行數據傳輸;HyperMemory僅在需要時才占用記憶體匯流排,在它不占用記憶體匯流排時,用戶不必擔心系統記憶體的可用容量和頻寬會受到影響。 HyperMemory的另一個特點在於其本地顯存僅用來存儲前段和後段緩衝區以及一定量的Z-Buffer,所有的紋理信息和材質的存儲幾乎全部使用系統記憶體來完成。這與當年Intel i740的存儲工作方式幾乎一模一樣,顯存部分的主要作用在於2D套用與基本緩衝,而各種主要的3D信息則依靠核心調用系統記憶體來進行緩衝操作,雙方很少產生干擾,基本不會發生交錯等待的現象。這種分置設計還可為現有的RAMDAC工作提供合理的環境,避免發生顯存調用不當導致的RAMDAC無法動作。另外,HyperMemory將主要的緩衝場所設在記憶體中也有利於核心獲得更大的可用操作空間。現在和未來的各種3D場景將涉及到越來越多的紋理、 Shader Program、Render-Target、Z/stencil等,比如運算即時光影效果時就需對大量的Z/stencil或作參考用的多個Multi Render-Target結果進行操作。此外,每個頂點及像素上的重量、顏色、法線、紋理坐標、霧和點的大小等都會占用大量的空間。未來,某個繪圖過程占用128MB的緩衝也許是很平常的事。通過HyperMemory技術的套用,核心在完成這些過程時將不必受空間因素的影響。同時,在所調用記憶體空間的分布方面,HyperMemory採用事先掃描記憶體並尋找合適空間的方式,這樣做能最大限度保證記憶體空間的利用率,很有“見縫插針”的味道。一言以蔽之, HyperMemory的特點在於“分立”和“自由”。
儘管HyperMemory技術具有很多獨到的特點,但其所具有的缺點及負面影響也很明顯。
首先,HyperMemory獨占記憶體匯流排時整個系統的其他部分都無法對記憶體進行動作,這造成了非顯示部分尤其是CPU的等待延遲,而且這種周期延遲會隨著HyperMemory對記憶體操作複雜程度的提升而增加。由於ATI目前的核心所支持的數據請求包大小僅為32byte,過小的請求包不僅影響數據傳輸的有效頻寬,導致HyperMemory無法充分利用PCI-Express匯流排龐大的數據傳輸能力,而且過小的不夠詳盡的請求描述通常意味著單次數據傳輸量和回應精確度的下降及傳輸次數的上升。HyperMemory所傳輸的數據越多,系統浪費的周期也就越多。這不僅直接影響了CPU運算能力的發揮,而且可能導致所有由CPU來進行的中斷分配、匯流排控制命令等工作的延遲,從而使整個系統的工作出現一定的混亂。
其次,由於本地顯存和記憶體存儲不同類別數據的設計,一般情況下本地顯存中不會為需要進入記憶體中的數據開闢專門的映射區域,這導致 HyperMemory在對系統記憶體進行操作時會受到物理記憶體定址上的限制。沒有映射表或指針,要進入記憶體進行保存的幀快取就不得不先拷貝進顯存中然後再進入記憶體,這不僅帶來了比獨立映射區大得多的空間浪費,而且多餘的拷貝過程還會影響整體的存儲操作效率,最終甚至影響整個渲染過程的速度。
最後,由於ATI目前的核心缺乏對直接記憶體寫入的支持,HyperMemory在實際渲染過程中無法對記憶體進行寫幀快取和寫渲染操作,而 HyperMemory的設計恰恰決定了幾乎所有渲染過程都必須在記憶體中進行,所有渲染步驟必須先經由CPU或北橋來寫入記憶體才能開始,這不僅使得PCI -Express巨大的下行頻寬毫無用武之地,而且還導致了渲染過程的周期延遲以及核心、CPU和北橋三者之間正常工作的相互干擾。核心需要進行記憶體渲染操作時不巧CPU在進行運算,北橋在進行數據交換,大家都很忙,怎么協調工作……工位的安排會再一次導致新延遲的出現,影響渲染過程的進行。最終,核心良好的構架受制於這些因素有可能無法將運算能力完整地發揮出來。
儘管存在上述缺陷,但HyperMemory仍然不失為一個十分優秀的顯示數據存儲解決方案。它在強調成本的前提下最大限度地保留並發揮了核心的性能,同時又不會對用戶的系統記憶體容量提出很高的要求。從這個角度講,HyperMemory確實是一個比較成功的注重成本的技術。