硬盘的接口、协议
硬盤這東西其實是很好玩的,里面有很多的故事可以說。當然講的過于高深就不太好,所以這里盡量就用通俗的語言去講解。相信認真看的你一定可以看懂的。
首先,既然將接口與總線,就要明白這三個概念:
傳輸總線,傳輸接口,傳輸協議
?
1?什么是傳輸總線?
所謂總線,其實他就是一條通道,就像公路一樣,只不過公路是走車的,而總線是用來走電信號的。那么公路的大小與車速,就決定了這條公路的車流量,同樣的,總線的位寬大小與傳輸頻率,也決定了在一次傳輸中能夠提供的最大速度。常見的傳輸總線很多。
?
1.1?PCIE
PCIE大家都想到了吧。你可能會說,PCIE不是給顯卡網卡用的嗎?硬盤怎么會用?其實,PCIE是一切的根源。你的所有外設,比如顯卡,網卡,聲卡,USB,SATA,M2等等,其實都是由PCIE演化而來。可以說PCIE就是一切的根。PCIE如今已經更新了三代,分別是1.0,2.0,3.0。其速度如下表
?
?
?
1.2?SATA
我想這個大家很熟悉了吧,很多人都在用的SATA1.0,SATA2.0,SATA3.0,以及沒什么人用的SATA Express,SATA各代速度如下圖
?
?
1.3?PATA(ATA)
大名鼎鼎的IDE硬盤,其速度和名字非常緊密,分別是ATA-66,ATA-100,ATA-133,分別代指著66MB/S,100MB/S,133MB/S的傳輸速度。
?
1.4?SCSI
服務器領域中使用的傳輸總線,SCSI莫過于像是PATA的服務器版,因為SCSI已經很少人用了,就不多說了。
?
1.5?SAS
同樣的民用領域有PATA到SATA,服務器領域也有SCSI到SAS。SAS同樣也已經更新了三代了,SAS1.0 達到了3Gbps,每一代翻2倍。而SAS控制器是可以兼容SATA設備的(但SATA控制器不能兼容SAS設備)。
?
1.6?FC
FC接口,全稱叫Fibre Channel。由于中文名會容易和光纖接口混淆就不說了。(Wiki成為網狀通道)FC是一種基于網絡傳輸協議下誕生的接口,這種接口可以說是稀缺的不行。FC起源于SCSI,但在速度上遠超SCSI,最新的FC通道速度達到了16Gbps。
?
2?什么是傳輸接口?
我想這個大家肯定很容易懂了,接口就是你接入的那個插口。不過因為傳輸接口和傳輸總線很容易混在一起,所以要多加區分。如:
?
2.1?PATA接口(IDE接口)
你說IDE也對,說PATA也對,因為沒有規范,所以怎么說都對。
2.2?SATA接口
這個大家在熟悉不過了。需要注意的是,常說的eSATA,mSATA,miniSATA實際上都只是SATA接口的變種而已。
?
2.3?SATA Express接口
傳說中的沒人用接口,自推出以后,就沒有幾個人在適用。在intel 9系主板存活了一段時間后滅亡了,即使存在,我敢說絕大部分人都把它當成兩個SATA用對不對(請真誠的回答我)。
?
2.4?M.2接口
由于NVMe協議爆發而突然走紅的接口,其特點適用于筆記本等輕薄設備。
?
2.5?U.2接口
多用于服務器的接口,也因為NVMe而走紅。與M.2的本質區別不大。可以說它和M.2的關系就如SATA與mSATA的關系。
?
2.6?SCSI/SAS接口
這些都不用說了吧,服務器版的PATA/SATA。
?
SCSI接口
SAS接口
2.7?FC接口
為FC而生的接口,和SCSI很像。
?
3?什么是傳輸協議?
傳輸協議,也有時候回叫做傳輸規范,網上很多都會把它叫做傳輸標準。什么是傳輸協議?用一種簡單的理解方法,就是數據傳輸的方法。
?
每當有數據到達控制器(比方說南橋吧),傳輸協議就規定著這個數據將會以怎么樣的方法傳輸到硬盤上。比如,一次傳輸隊列中攜帶多少的數據,一次傳輸的數據大小等等。傳輸協議限定著硬盤(準確的就是硬盤控制器,常說的主控)與控制器(南橋等)如何傳輸,如何溝通,他就像交通規則一樣,規范著數據的傳輸規則。那么哪些是傳輸協議呢?這里列舉幾個非常常見的傳輸協議。
?
3.1?IDE
老牌的硬盤傳輸協議,很多人經常會和PATA,ATA搞混淆,其實你搞混淆是非常可以理解的,因為連百度,Wiki都沒有能很好的定義他們之間的區別,而介于IDE早已被淘汰,我想后人也不關心他們的區分了。IDE作為非常老牌的傳輸協議,為計算機能夠更輕松的操作硬盤數據起到了非常重要的作用。但是隨著計算機對速度的需求,與其配備的傳輸總線(ATA-133)以及自身的功能都太少了。也漸漸被AHCI與SATA所淘汰。
?
Tips:實際上,PATA的出現是因為SATA的出現,而為了防止ATA與SATA混淆,所以把ATA改名為PATA。
?
3.2?AHCI
IDE過低的速度,以及老舊的協議,催生了AHCI傳輸協議,AHCI相比于IDE,其每次傳輸傳輸一個隊列中,攜帶32條指令,同時優化了硬盤隊列,通過NCQ技術,使硬盤能夠快速順暢的讀取數據而減少磁頭移動帶來的時間浪費。而與AHCI相匹配的SATA接口,能夠提供比ATA總線更高的傳輸速度。但是,AHCI終究是為了機械硬盤而產生的產物,隨著SSD的普及,SSD的高響應速度與讀寫能力在壓榨著傳輸總線與傳輸協議的最大速度。因此而誕生了為SSD而生的新協議。
?
3.3?NVMe
如上文所屬,為了能夠讓SSD更好的發揮速度與讀寫能力。NVMe隨之產生。相比于AHCI,NVMe單次提供64*1024個請求隊列,而每個隊列達到了64*1024個請求。遠超AHCI單隊列32個請求的規模。NVMe可以說完全釋放了傳輸協議的限制,而為了能夠與傳輸協議的速度匹配,使用NVMe的設備都直接連接到了PCIE總線上。更直接的總線為NVMe設備提供絕對強大的傳輸速度。
?
?
4?他們如何影響著硬盤的速度?
實際上,判斷一個硬盤的性能好壞,就是兩大基本因素。一個是持續讀寫,一個是4K讀寫。而由他們所誕生的下屬性能(比如SSD垃圾回收性能)就不一一說了。
持續讀寫毫無疑問,是壓榨傳輸總線速度的最好工具。而4K讀寫,則是壓榨傳輸協議的最好工具。道理我想大家都應該明白。持續讀寫講究吞吐量。4K讀寫講究的是請求量。我用一個簡單的例子幫助大家理解。
?
還是以公路的例子。而我們把公路入口的收費站當作請求。每輛車當作一個數據。收費站就是一個協議,協議規定一次放多少車進入。而公路就是總線,它原來設計能通過多少車流量。
?
當測試持續讀寫的時候,就是測試這個公路最大的車流量。正常來說,收費站都是一車一桿的。但我不,我一桿走32輛車,那么在一桿這個時間段(每一桿的時間長度是一樣的),流過的車就會非常多。就相當于一個請求里請求了非常大的數據。那么盡可能讓大量的車進入了公路,其走過的車流量,就是我們要測試的吞吐量,也就是持續讀寫。
?
而當測試4K讀寫時,我們回到原來的一桿一車的狀態。那么一桿車過的快慢,就決定了車流量的大小。而由此得到了4K讀寫的速度。
由此我們得到的結論就是傳輸協議,限制著硬盤的4K讀寫能力,而傳輸總線限制著硬盤的持續讀寫能力。(當然啦,這是假設硬盤主控讀寫能力非常強的情況下)。
?
這也就是為什么,SATA SSD的4K能力,總是突破不了10KIOPS,原因就在于AHCI傳輸協議已經達到極限了。而SATA SSD的持續讀寫能力也超過不了550MB/S,原因就是SATA3.0總線只能提供最大6Gbps的速度(在干擾與糾錯等各種情況綜合下,最終只達到了550MB/S)
?
幾年前的高端M6S早已開始壓榨AHCI與SATA3.0的極限
?
5?那么誰最強?
這個毫無疑問,使用NVMe協議,并通過PCIE總線的設備無疑是最強的。
?
跑分狂魔960PRO輕松跑出40萬IOPS,但里離壓榨PCIE與NVMe還遠著
接口只是一種展現形式而已。它并不會對你的速度造成絕對的影響。所以,而協議也往往與總線所掛鉤,但與接口的關系掛鉤,往往相對而言比較的松一點。
?
比如:
基于SATA3.0總線,我們只能使用AHCI協議,但我們可以使用M.2接口,我們也可以使用SATA接口。得到的速度依舊是最高6Gbps(實際約550MB/s)。
而基于PCIE總線,我們只能使用NVME協議,但我們可以使用M.2接口,也可以使用U.2接口,根據PCIE總線的寬帶,我們能獲得4GB/s的速度(基于PCIE3.0 X4)。
評判一個硬盤的性能,除了硬盤自身的性能以外,必不可少的當然是這些總線與協議的配合。可以說這兩個因素就是在不斷的推動對方。
?
而我們所處的時代,因為SSD的出現,壓榨了AHCI的請求能力與SATA的速度極限,才因此誕生了NVMe。現在時代又回到了是硬盤自身性能不足以跑滿總線的時代了。誰能知道什么時候是下一個跳躍點呢?
總結
- 上一篇: 江湖再无百度外卖?(忆小度的坎坷出售之路
- 下一篇: 关于IPV6DNS,基本上IPV6是相当