從硬體的系統結構開始

2021-06-22 10:24:32 字數 1527 閱讀 1202

我們的電腦主機上都有兩個標準化的部分:北橋和南橋。它們是cpu和記憶體以及其他外設溝通的渠道。下圖給出了cpu,記憶體,南北橋以及其他匯流排之間的關係。

我們可以看到,所有的cpu都共用一條fsb匯流排(the front side bus),與北橋相連。而北橋中有乙個記憶體控制器(memory controller),它決定了ram的型別,換句話說,不同的ram,比如sram,dram,sdram所要求的記憶體控制器是不一樣的。要訪問其他的系統裝置,北橋則要同南橋進行互動,南橋也稱為io brigde,它通過一系列的匯流排(pci,usb,sata.....) 來達到與外部裝置通訊的目的。

這種系統結構有如下幾點值得我們注意的地方:

1.cpu之間的所有資料交流都要通過與北橋進行通訊的fsb匯流排;

2.所有裝置對ram的訪問都要經手北橋處理(圖中只能看到cpu,但是實際上還有一些裝置通過dma訪問記憶體,也得由北橋來進行處理)

3.ram只有單獨的乙個訪問埠(並不是所有的ram都只有乙個訪問埠,一些用於特殊用途的可能有多個,但這對我們的討論沒有太多的意義);

4.cpu訪問連線在南橋上的裝置也要路經北橋。

這種系統設計的乙個明顯的瓶頸體現在對記憶體的訪問上。為了緩解cpu的壓力,現在那些連線在各種匯流排上的高效能器件一般都帶有dma功能,儘管這樣能減少cpu的工作負載,但是當外設都爭相訪問記憶體時,增大了對北橋頻寬的競爭,而且北橋到記憶體之間也只有一條匯流排。

下圖給出了一種更為昂貴的系統,記憶體控制器並沒有被包含在北橋中,而是被單獨隔離出來以協調北橋與某個相應的ram之間的互動。這樣的話,北橋可以和多個ram相連。

這種架構的好處就是記憶體匯流排增加了,所以總的頻寬也就增加了。對於這種設計,主要的限制就是北橋本身的內部頻寬是有限的。

當然,就增加記憶體訪問的頻寬而言,使用多個外部記憶體控制器並不是唯一的辦法。如今,越來越流行的乙個方法就是將記憶體控制器給整合到cpu裡面去,這種架構在基於amd的記憶體處理器的smp系統中非常流行。下圖給出了這種系統架構的模型

可以看到,這種架構下,在乙個配有四核cpu的機器中,不需要乙個複雜的北橋就能將記憶體頻寬增加到以前的四倍。當然這樣的架構也是存在一些缺點的。由於每乙個cpu都要保證能訪問到每一塊記憶體,而記憶體並不是直接和所有的cpu相連,也就是說記憶體不再是一致的了!因此這種架構也稱為非一致性記憶體架構,即numa(non uniform memory architecture).不難看出,對於某個cpu來說,本地記憶體(即和cpu直接相連的記憶體)的訪問速度是正常的,但是當其要訪問其他的記憶體時,就上圖而言,輕者要經過另外乙個cpu,重者要經過2個cpu,才能達到訪問非本地記憶體的目的,因此記憶體與cpu的"距離"不同,訪問的時間有也所差異,對於numa,以後會給出更詳細的介紹!

中斷系統的硬體結構

ie0 外部中斷0申請標誌位 0 沒有外部中斷申請 1 有外部中斷申請 tf0 定時器0溢位中斷申請標誌位 0 定時器未溢位 1 定時器溢位申請中斷,進中斷後自動清零 ie1 外部中斷1申請標誌位 0 沒有外部中斷申請 1 有外部中斷申請 tf1 定時器1溢位中斷申請標誌位 0 定時器未溢位 1 定...

從硬體開始實踐物聯網 物聯網彈幕器的靈感!

物聯網全棧教程 從雲端到裝置 二 一二 三 乙個完整的物聯網專案不是乙個硬體的事情,也不是乙個雲端軟體的事情,而是兩者的配合。既然稱之為物聯網,那麼我們講究兩個字 聯網。好吧,將會涉及到兩個東西,我們稱之為上行資料和下行資料。只要我們的裝置能夠做到上報資料和接收資料,那就夠了,剩下的事情無非就是處理...

計算機從系統格式開始

計算機核心資料儲存,面對各種作業系統,就有各種檔案系統。八一八各種檔案系統 1 最熟悉的windows fat fat32 file allocation table 微軟專利系統,只用於ms dos和windows系統,fat16支援最大2gb分割槽,單個最大檔案2gb,fat32支援最大分割槽1...