大話儲存系列2 計算機內部的IO世界

2022-07-13 03:39:10 字數 3388 閱讀 7245

1.、匯流排:

io是通過共享一條匯流排的方式來實現的,匯流排也就是一條或者多條物理上的導線,每個部件都接到這些導線上,導線上的電位每個時刻都是相等的(這個地方需要注意下,之前沒有考慮這個問題),這樣匯流排上的所有部件都會受到相同的訊號。也就是說,這條匯流排是共享的,同乙個時刻只能有乙個部件在接收或者傳送,是全單工的工作模式。

所有的部件按照另一條匯流排,也就是仲裁匯流排或者中斷匯流排上給出的訊號來判斷這個時刻匯流排可以由哪個部件來使用。產生仲裁匯流排或者中斷電位的可以是cpu,也可以是匯流排上的其他裝置。

2、北橋晶元:

一塊電腦

主機板,以cpu插座為北的方法拿著,靠近cpu插槽的乙個起連線作用的

晶元稱為「北橋晶元」,英文名:north

bridge chipset。北橋晶元(northbridge)是

主板晶元組

中起主導作用的組成部分,也稱為主橋(hostbridge)。北橋是個人電腦主板晶元組兩枚大規模晶元中的一枚。北橋被用來處理高速訊號,通常處理cpu(處理器),ram(記憶體),agp埠或

pci express

,和南橋晶元之間的通訊。

一般來說,晶元組的名稱就是以北橋晶元的名稱來命名的,例如英特爾 845e晶元組的北橋晶元是82845e,875p晶元組的北橋晶元是82875p等等。北橋晶元負責與cpu的聯絡並控制記憶體、agp資料在北橋內部傳輸,提供對cpu的型別和主頻、系統的前端匯流排頻率、記憶體的型別(sdram,ddr sdram以及rdram等等)和最大容量、agp插槽、ecc糾錯等支援,整合型晶元組的北橋晶元還整合了顯示核心。北橋晶元就是主機板上離cpu最近的晶元,這主要是考慮到北橋晶元與處理器之間的通訊最密切,為了提高通訊效能而縮短傳輸距離。因為北橋晶元的資料處理量非常大,發熱量也越來越大,所以現在的北橋晶元都覆蓋著散熱片用來加強北橋晶元的散熱,有些主機板的北橋晶元還會配合風扇進行散熱。因為北橋晶元的主要功能是控制記憶體,而記憶體標準與處理器一樣變化比較頻繁,所以不同晶元組中北橋晶元是肯定不同的,當然這並不是說所採用的記憶體技術就完全不一樣,而是不同的晶元組北橋晶元間肯定在一些地方有差別。 

3、南橋晶元:

南橋晶元(southbridge)是主板晶元組的重要組成部分,一般位於主機板上離cpu插槽較遠的下方,pci插槽的附近,這種布局是考慮到它所連線的i/o匯流排較多,離處理器遠一點有利於佈線。相對於北橋晶元來說,其資料處理量並不算大,所以南橋晶元一般都沒有覆蓋散熱片。南橋晶元不與處理器直接相連,而是通過一定的方式(不同廠商各種晶元組有所不同,例如英特爾的英特爾hub architecture以及sis的multi-threaded「妙渠」)與北橋晶元相連。

南橋晶元負責i/o匯流排之間的通訊,如pci匯流排、usb、lan、ata、sata、音訊控制器、鍵盤控制器、實時時鐘控制器、高階電源管理等,這些技術一般相對來說比較穩定,所以不同晶元組中可能南橋晶元是一樣的,不同的只是北橋晶元。所以現在主板晶元組中北橋晶元的數量要遠遠多於南橋晶元。例如早期英特爾不同架構的晶元組socket 7的430tx和slot1的440lx其南橋晶元都採用82317ab,而近兩年的晶元組845e/845g/845ge/845pe等配置都採用ich4南橋晶元,但也能搭配ich2南橋晶元。更有甚者,有些主機板廠家生產的少數產品採用的南北橋是不同晶元組公司的產品,例如以前公升技的kg7-raid主機板,北橋採用了amd760,南橋則是via

686b。南橋晶元的發展方向主要是整合更多的功能,例如網絡卡

、raid、ieee 1394、甚至wi-fi無線網路等等

新的i3、i5、i7處理器

全新的酷睿i3/i5/i7是把北橋晶元組也整合到cpu上,其內部仍是採用qpi匯流排來通訊,而外部與主板晶元組通訊,其實就是以往主機板上南橋與北橋通訊,採用的正是dmi匯流排。酷睿i3/i5/i7並沒有精簡qpi匯流排,只是整合度更高而已。

qpi匯流排可以用於cpu內部通訊,也可以用於cpu與主機板北橋晶元組通訊,而bloomfield core i7正是利用qpi作為cpu內部通訊以及cpu與北橋通訊的通道。

qpi匯流排的傳輸速率是fsb 1600mhz的4倍多,雖然前者資料位寬較窄,但傳輸頻寬仍然是後者的2倍。

通過qpi匯流排,可以有效地降低了處理器和各個硬體之間資料傳輸的延遲,能有效地提高系統效能。

4、io案例分析:

下面我們按照「連找發」 三元素理論,去分析乙個cpu向磁碟要資料的例子:

連——匯流排

找——首先要有分割槽,才能有所謂「找」,這個分割槽體現在主機匯流排中就是裝置位址對映。每個io裝置在啟動時都要向記憶體中對映乙個或者多個位址,這個位址有8位長,又被稱作io埠。針對這個位址的資料,統統被北橋晶元重定向到匯流排上實際的裝置上。假如,ide磁碟控制器位址被對映到了位址0xa0,也就是十六進製制a0,cpu根據程式機器**,向這個位址發出多條指令來完成乙個讀操作,這就是找。

發——首先cpu將這個io位址放到系統匯流排上,北橋接收到之後,會等待cpu傳送第乙個針對這個外設的指令。然後cpu傳送如下3條指令。

第一條:指令中包含了表示當前指令時讀還是寫的位,而且還包含了其他選項,比如操作完成時是否用中斷來通知cpu處理,是否啟用磁碟快取等。

第二條:指明應該讀取的硬碟邏輯塊號(lba)。這個邏輯塊在我們講磁碟結構時會講到,總之邏輯塊就是對磁碟上儲存區域的一種抽象。

這3條指令被北橋依次傳送給io匯流排上的磁碟控制器來執行。磁碟控制器收到第一條指令之後,知道這是讀指令,而且知道這個操作的一些選項,比如完成是否發中斷,是否啟用磁碟快取等,然後磁碟控制器會繼續等待下一條指令,即邏輯塊位址。磁碟空間器收到指令後,會進行磁碟實際扇區和邏輯塊的對應查詢,可能乙個邏輯塊會對應多個扇區,查詢完成之後,控制器驅動磁頭尋道,等盤體旋轉到那個扇區後,磁頭開始讀出資料。在讀取資料的同時,磁碟控制器會接收都第三條指令,也就是cpu給出的資料應該存放在記憶體中的位址。有了這個位址,資料獨處之後直接通過dma(

dma是direct

memory access的縮寫。其意思是「儲存器直接訪問」。它是指一種高速的資料傳輸操作,允許在

外部裝置

和儲存器之間直接讀寫資料,即不通過cpu,也不需要cpu干預。整個資料傳輸操作在乙個稱為「dma控制器」的控制下進行的。cpu除了在資料傳輸開始和結束時作一點處理外,在傳輸過程中cpu可以進行其它的工作。這樣,在大部分時間裡,cpu和輸入輸出都處在並行操作。因此,使整個

計算機系統

的效率大大提高

)技術,也就是磁碟控制器可以直接對記憶體定址並執行寫操作,而不必先轉到cpu,然後再從cpu存到記憶體中。

計算機內部數字的儲存 擴充套件

在對精度要求很高的系統中,或要對小數的運算結果進行比較時,需要特別謹慎 js中的小數運算是精確的嗎?不一定js中的整數運算是精確的嗎?不一定js中表示的整數是連續的嗎?不是,當 js 的數字很大的時候,不再連續 js中表示的最大數字是多少?最大連續整數 從1開始數到這個數字一直都是連續的,並且到下乙...

計算機內部浮點型資料的儲存

c c 浮點數在記憶體中的儲存方式 任何資料在記憶體中都是以二進位制的形式儲存的,例如乙個short型資料1156,其二進位制表示形式為00000100 10000100。則在intel cpu架構的系統中,存放方式為 10000100 低位址單元 00000100 高位址單元 因為intel cp...

大話儲存 1 走進計算機IO世界

組成計算機的三大件 cpu,記憶體和io。匯流排就是一條或者多條物理上的導線,每個部件都接到這些導線上,同一時刻只能有乙個部件在接收或者傳送。仲裁匯流排 所有部件按照另一條匯流排,也就是仲裁匯流排或者中斷匯流排上給出的訊號來判斷這個時刻匯流排可以由哪個部件來使用。產生仲裁匯流排或者中斷電位的可以是c...