記憶體二三事,part1

2021-08-15 00:09:06 字數 1430 閱讀 2381

早期的計算機較現在更簡單。計算機系統的元件例如cpu,記憶體,硬碟,網路介面同時發展起來,結果就是他們在效能上很平衡。例如在資料傳輸速度上,記憶體網絡卡cpu相差不多。

但是,當計算機系統的整個結構確定後,每個子部件的發展速度就各不相同了。例如 cpu發展非常快,但是記憶體和硬碟由於很多原因發展很慢。於是,記憶體,硬碟等成為了計算機效能發展的瓶頸。這些瓶頸,我們通過軟體技術,例如os來彌補。例如,儲存系統較cpu還是非常慢,我們通過資料快取(把硬碟中的資料快取導ram中)來緩解高速和低速間的不平衡。

對於資料儲存和訪問,有下面幾個措施來改善:

本文件只對cpu緩衝區和記憶體控制器做介紹,並且僅侷限於linux的。

宣告:這裡只對商用型別做介紹,專用的不在談論範圍內。

歷來,個人pc通常由兩部分組成: {北

橋南橋 {

北橋南橋

最開始的計算機架構:

所有的cpu通過匯流排與北橋連線,北橋包括記憶體控制器,對於不同的ram,例如sram,dram,sdram,需要不同的記憶體控制器。

為了與其他裝置通訊,南橋和上面的北橋連線。南橋充當輸入/輸出的橋,通過各種不同的匯流排協議(usb,sata,pci等)與外部裝置通訊。

這裡有以下結論:

對於上圖的設計,存在兩個瓶頸:

(1)裝置訪問ram要經過cpu,這樣效能差。於是提出dma(directly data access ),裝置直接經過北橋訪問記憶體,不經過cpu。這樣減少了cpu的負載,但同時北橋的頻寬被占用了,於是出現瓶頸(2)。

(2)早期ram只有乙個通道(現在有多通道了,ddr3,ddr4),頻寬有限,高併發通訊時,資料通訊延遲大。所以,增加資料流通的管道可以提高速度。記憶體條ddr4就比ddr3快。

如何在計算機系統架構上提高頻寬呢?

方法一:在一些比較貴的計算機系統中,為了提高ram的訪問頻寬,使用下圖架構:

這個系統的特點是:把記憶體控制器從北橋剝離出來,使用外部記憶體控制器,這樣的設計可以提高記憶體訪問的頻寬,也拓展了記憶體容量。

方法二:

在多cpu系統中(smp),把記憶體控制器整合到cpu中,記憶體通道一下擴大4倍。

這種架構拓展了ram的頻寬,現在大型伺服器很流行用,但也有缺點。即numa,非一致記憶體訪問。每個cpu對自己attach的ram訪問速度很高,但訪問別的cpu的ram速度就打折了(多走路了)。但這些都可以通過軟體層面優化,比如os。

自己的電腦到底使用的何種架構,我也沒深究過,不過,架構主要由cpu和主機板共同決定。

部落格推薦 Part 1

部落格推薦 part 1 博起 了一年多了,寫過一百多篇博文,看過的博文更是不計其數。剛剛看到乙個部落格的文章,實在把我笑到不行。然後就想推薦給大家。繼而就心血來潮,想把自己喜歡的一些部落格陸續的推薦給大家。也許,你也會喜歡呢?說明 仙仙,本名張仙!是湖南的一位autoware兄弟,跟我一起混跡內蒙...

C Handle 控制代碼 part1

本文是我學習c 沉思錄第6章的筆記 本文主要講述了handle類的概念,定義方法以及寫時複製技術。在前文 surrogate 類 的講解中我們了解到了 的實現方法.類有很多好處,但是麻煩的是每次都得進行複製.如果該類是經常使用並且member很多的話,這樣複製的消耗是十分客觀的.因此這裡就要介紹另外...

目標檢測part1

1 1卷積 googlenet inception 可看作全連線 1 增加非線性 2 特徵降維 空洞卷積 在相同的感受野的情況下,使用空洞卷積得到更大的特徵圖,獲得更密集的資料,而更大的特徵圖有助於目標檢測和目標分割任務中對小物體的識別分割效果 轉置卷積 不是真正意義上的反卷積,是一種上取樣的方式,...