《計算機組成的基本硬件設備》
《計算機組成原理 — 馮諾依曼體系結構》
《計算機組成原理 — 中央處理器》
《計算機組成原理 — 指令系統》
《計算機組成原理 — 存儲系統》html
中央處理器和主存儲器構成了計算機的主體,稱爲主機。主機之外的大部分硬件設備都稱之爲外部設備,簡稱外設或 I/O 設備,包括輸入輸出設備、輔助存儲設備。輸入輸出系統就是由外設及其與主機之間的控制部件(Controller)所構成,其中控制部件常被稱爲設備控制器、設備適配器或 I/O 接口,主要負責控制並實現主機與外設之間的數據傳輸。web
設備控制器,又稱硬件設備 I/O 接口,是計算機中的一個實體,其主要職責是控制一個或多個 I/O 設備,以實現 I/O 設備和主機之間的數據交換。它是 CPU 與 I/O 設備之間的接口,接收從 CPU 發來的命令,並去控制 I/O 設備工做,以使處理機(處理機包括中央處理器,主存儲器,輸入/輸出接口)從繁雜的設備控制事務中解脫出來。三者間的邏輯關係爲:CPU <==> 設備適配器 <==> 外部設備
。數據庫
設備適配器的做用:express
設備適配器的接口類型:安全
設備適配器的基本功能:服務器
設備控制器構成及工做原理都與 CPU 很是類似,均由程序計數器(Program Counter)、指令寄存器(Instruction Register)、指令譯碼器(Instruction Decoder)、標誌寄存器(Flags Register)、定時與控制電路(Programmable Logic Array)、脈衝源、中斷以及堆棧等組件構成。網絡
在微機和小機中的設備控制器,一般被作成印刷電路卡形式,於是也常稱爲接口卡,可將它插入計算機主板。最多見的外設及其設備控制器莫過於磁盤驅動器和網卡了,他們都由硬件設備和相應的 Controller 組成。例如:HDD(Hard Disk Drive)和 HDC(Hard Disk Controller)。
架構
設備控制器與 CPU 的接口:該接口用於實現 CPU 與設備控制器之間的通訊。共有三類信號線: 數據線、地址線和控制線。數據線一般與 數據寄存器 和 控制/狀態寄存器 相鏈接。在設備控制器中有若干個此類寄存器,前者用於存放從 CPU 或外部設備送來的數據;後者用於存放從 CPU 送來的控制指令或從外部設備送來的設備的狀態信息。運維
設備控制器與外部設備的接口:同一個設備控制器,能夠鏈接一個或多個外部設備。相應地,在設備控制器中便有一個或多個接口,一個接口鏈接一臺外部設備。在每一個接口中都存在數據、控制和狀態三種類型的信號。設備控制器中的 I/O 邏輯根據處理機發來的地址信號去選擇一個設備接口。分佈式
I/O 邏輯:在設備控制器中的 I/O 邏輯用於實現對外部設備的控制。它經過一組控制線與處理機交互,處理機利用 I/O 邏輯向設備控制器發送 I/O 命令;I/O 邏輯對收到的命令進行譯碼。每當 CPU 要啓動一個設備時,一方面將啓動命令發送給設備控制器;另外一方面又同時經過地址線把設備地址發送給設備控制器,由控制器的 I/O 邏輯對收到的地址進行譯碼,再根據所譯出的命令對所選外部設備進行控制。
處理機要對外設進行選擇和交互,首先就要對外設進行編址。設備控制器是一個可編址的設備,當它僅控制一個設備時,它只有一個惟一的設備地址;若控制可鏈接多個設備時,則應含有多個設備地址,並使每個設備地址對應一個硬件設備。由此必須爲每臺計算機都規定一些專用於外設的地址碼,稱爲設備代碼。
根據 CPU 向外設下達指令的方式的不一樣,對應有兩種尋址方式:
這裏的數據傳輸控制方式指的是外部設備與 CPU 之間的數據傳輸。
程序直接控制數據傳輸方式,由用戶程序實現一段由輸入輸出指令和其餘指令所組成的程序段直接控制外部設備的工做。數據傳送時,首先由 CPU 發出設備啓動指令來啓動設備,而後 CPU 等待外部設備完成接收或發送數據的準備工做。在等待期間,CPU 不斷的用一條測試指令檢測外部設備的工做狀態標誌觸發器,以此來肯定外部設備的狀態。一旦標誌觸發器被置成 「完成」 狀態,那麼即表示能夠進行數據傳輸。
這種數據傳輸方式雖然簡單,但 CPU 和外部設備只能串行工做,形成了 CPU 的空轉浪費,使得系統效率大大的下降了。
程序中斷控制數據傳輸(Program Interrupt Transfer)方式,在程序中安排一條指令,發出信號啓動外部設備,而後機器會繼續執行原程序。當外部設備完成了數據傳輸的準備工做後,便會向 CPU 發送 「中斷請求」(INT)信號。此時,CPU 中止正在運行的程序,轉向執行 「中斷服務程序」,完成傳送數據的工做。一般是一個字或字節的傳輸,傳送完畢以後再返回繼續執行原程序。
這種數據傳輸的方式不會形成 CPU 的空轉,在必定的程序上實現了 CPU 和外部設備的並行工做。此外,還能夠支持多臺外部設備的並行工做。若是有多臺外部設備依次啓動以後,它們能夠同時進行數據交換的準備工做。若在某個時刻,有若干臺外部設備同時發出中斷請求信息到 CPU,那麼 CPU 能夠根據預先規定好的優先級策略來依次處理這幾臺外部設備的數據傳輸,從而實現了外部設備的並行工做。
可是,對於一些數據傳輸頻率較高的外部設備而言,採用程序中斷控制方式容易形成數據丟失。例如:磁盤設備,由於此類外部設備傳輸的數據是成批量的,並且單位數據之間的時間間隔較短。因此,對於面向數據塊(成組數據)傳輸的外部設備,應該採用直接存儲器存取(DMA)控制方式。
直接存儲器存取(Direct Memory Access,DMA)方式的基本思想是外部設備和主存儲器之間開闢直接的數據傳輸通路。通常狀況下,總線全部的工做週期(總線週期)都用於 CPU 執行程序。DMA 控制就是當外部設備完成輸入/輸出數據的準備工做以後,會佔用總線的一個工做週期,和主存直接交換數據。這個週期以後,CPU 又繼續控制總線執行原程序。若是反覆的,直到整個數據塊的數據所有傳輸完畢。這項工做是由 I/O 系統中增設的 DMA 控制器完成的。
DMA 方式的不足之處在於對外部設備的管理和某些操做的控制仍須要 CPU 來承擔。
在大型計算機系統中一般會設置專門的硬件設備來完成處理機與外部設備之間的數據傳輸控制,這就是 I/O 通道控制(I/O channel control)方式。I/O 通道是專門的設備,能夠獨立的執行使用通道命令編寫的輸入輸出控制程序,產生相應的控制信號發送大由它管轄的外部設備,繼而完成複雜的輸入輸出過程,有效的減輕了 CPU 的負擔。
I/O 通道控制方式的不足之處在於,其僅僅是面向外部設備的控制和數據傳輸,對一些操做仍然須要 CPU 來完成,例如:碼制轉換、格式處理、數據塊錯誤檢測和糾錯。所以,I/O 通道的誕生僅表明着計算機組織形式向功能分散發展的初始階段。
外圍處理機(Peripheral Processor Unit,PPU),又稱輸入輸出處理機。顧名思義,是一個徹底獨立的處理機,其結構更加接近於計算機。有了外圍處理機不但能夠簡化設備控制器,並且還可使用外圍處理機來做爲維護、診斷、通訊控制、系統工做狀況顯示和人機聯繫的工做,是完全釋放處理機工做負擔的數據傳輸控制設備。在某些大型計算機系統中,設置多臺外圍處理機使得計算機系統結構有了質的飛躍。外圍處理機標誌着計算機由集中式向功能發散的分佈式系統發展。
計算機的外部設備,如:網卡(網絡設備器)、磁盤驅動器,CD-ROM、鼠標鍵盤和顯示器等,都是獨立的物理設備。這些外部設備和主機相連時,必須按照規定的物理互連特性,電氣特性等進行鏈接,這些特性的技術規範稱之爲接口標準。
從物理結構的角度來看,以磁盤驅動器爲例,它經過電纜與磁盤控制器(磁盤適配器)相連,磁盤控制器插在主板上的插槽中,這個設配器就是磁盤驅動器的接口卡。磁盤設配器一方面經過插槽背面的引線與 CPU 相連,符合主機的系統總線規範;另外一方面與磁盤驅動器相連,符合外部設備接口規範。
ATA(Advanced Technology Attachment, 高級技術附加裝置)起源於 IBM,是一個單純的磁盤驅動器接口,不支持其餘的接口設備,適配的是 IDE(Integrated Drive Electronics,電子集成驅動器)磁盤驅動器。IDE 接口,也稱爲 PATA(Parallel ATA,並行 ATA)接口,意在把磁盤控制器和磁盤驅動器集成到了一塊兒,這種作法減小了磁盤接口的電纜數目與長度,數據傳輸的可靠性獲得了加強,磁盤製造起來也變得更容易,由於廠商不須要擔憂本身的磁盤驅動器是否與其它廠商的磁盤控制器兼容。對用戶而言,磁盤安裝起來也更爲方便。
IDE 具備價格低廉,兼容性強,性價比高,數據傳輸慢,不支持熱插拔等特色,多用於家用產品中,也有部分應用於服務器。ATA、Ultra ATA、DMA、Ultra DMA 等接口都屬於 IDE 硬盤。
SATA(Serial ATA,串行 ATA),又叫串口磁盤,是一個串行點對點鏈接系統,支持熱插拔,支持主機與每一個磁盤驅動器之間擁有單獨的鏈接路徑,每一個磁盤驅動器均可以獨享所有帶寬。SATA 在機櫃內部鏈接外部設備,而 eSATA 是外置式的 SATA 接口。
SATA 是一種徹底不一樣於 Parallel ATA 的新型磁盤接口類型,因爲採用串行方式傳輸數據而知名。相對於 Parallel ATA 而言,就具備很是多的優點。首先,SATA 以連續串行的方式傳送數據,一次只會傳送 1 位數據。這樣能減小 SATA 接口的針腳數目,使鏈接電纜數目變少,效率也會更高。實際上,SATA 僅用四支針腳就能完成全部的工做,分別用於鏈接電纜、鏈接地線、發送數據和接收數據,同時這樣的架構還能下降系統能耗和減少系統複雜性。其次,SATA 的起點更高、發展潛力更大,SATA 1.0 定義的數據傳輸率可達 150MB/s,這比目前最新的 Parallel ATA(即 ATA/133)所能達到 133MB/s 的最高數據傳輸率還高,而在 SATA 2.0 的數據傳輸率將達到 300MB/s,最終 SATA 將實現 600MB/s 的最高數據傳輸率。SATA 總線使用嵌入式時鐘信號,具備更強的糾錯能力,與 ATA 相比其最大的區別在於能對傳輸指令(不只僅是數據)進行檢查,若是發現錯誤會自動矯正,這在很大程度上提升了數據傳輸的可靠性。串行接口還具備結構簡單、支持熱插拔的優勢。
SCSI(Small Computer System Interface,小型計算機系統接口)是當前流行的用於服務器和微機的外部設備接口標準,目前的計算機基本都設置了 SCSI 接口,若是沒有的話就須要一塊專門的 SCSI 適配器卡,完成主機總線到 SCSI 總線的跨接,不一樣的主機總線對應不一樣的適配器。SCSI 設備與主機之間以 DMA 的方式傳輸數據庫,SCSI 適配器中整合了主機通訊的指令,下降了系統 I/O 處理對主機 CPU 的佔用率。
與 IDE 不一樣,IDE 接口是普通 PC 的標準接口,而 SCSI 並非專門爲硬盤設計的接口,是一種普遍應用於小型機上的高速數據傳輸技術。不只能夠控制磁盤驅動器,還能夠控制磁帶機、光盤、打印機和掃描儀等外設。因爲設備中包括了控制器,設備的功能更復雜,於是稱爲智能外設。SCSI 接口具備應用範圍廣、多任務、帶寬大、CPU 佔用率低,以及熱插拔等優勢,但也擁有較高的價格。
SAS(Serial attached SCSI,串行 SCSI),向下兼容並行 SATA,兩種運行相同的指令集,在物理鏈接接口上提供了對 SATA 的支持,即二者可使用相相似的電纜。從接口標準上而言,SATA 是 SAS 的一個子標準,SAS 吸取了 FC(光纖通道)的特色,所以 SAS 控制器能夠直接操控 SATA 硬盤,可是 SAS 卻不能直接使用在 SATA 的環境中,由於 SATA 控制器並不能對 SAS 硬盤進行控制。
在協議層,SAS 由 3 種類型協議組成,根據鏈接的不一樣設備使用相應的協議進行數據傳輸。其中 SSP(串行 SCSI 協議)用於傳輸 SCSI 命令,SMP(SCSI 管理協議)用於對鏈接的設備進行維護和管理,STP(SATA 通道協議)用於 SAS 和 SATA 之間數據的傳輸。在這 3 種協議的配合下,SAS 能夠和 SATA 以及部分 SCSI 設備無縫結合。此外,與並行方式相比,串行方式能提供更快速的通訊傳輸速度以及更簡易的配置,SAS 的傳輸速率要比 SATA 快得多。SAS 爲服務器和網絡存儲等應用提供了更大的選擇空間。
iSCSI(Internet SCSI)是運行在 TCP/IP 網絡上的 SCSI,iSCSI 使得標準的 SCSI 指令可以在 TCP/IP 網絡上的主機與網絡存儲設備之間傳送,也能夠在系統之間傳送。而 SCSI 協議只能訪問本地的 SCSI 設備。
iSCSI 的工做原理:當 iSCSI Initiator(終端用戶)發送一個請求後,操做系統會產生一個適當的 SCSI 指令和數據請求,SCSI 指令經過封裝被加上了 TCP/IP 協議的包頭,並支持在須要加密的時候執行加密處理。封裝後的 SCSI 指令數據包得以在 Internet 上傳送,以此突破了物理空間的限制。iSCSI Target(接收端)在收到這個數據包以後按照相反的步驟進行解析得出 SCSI 指令和數據請求,再交由 SCSI 存儲設備驅動程序處理。由於 iSCSI 是雙向的協議,因此 iSCSI Target 能夠將數據(執行結果)返回給 iSCSI Initiator。
FC(Fibre Channel,光纖通道),與 SCSI 接口同樣,光纖通道最初也不是專爲磁盤驅動器所設計的接口技術,而是專門爲網絡系統設計的。但隨着存儲系統對速度的需求日益增加,FC 才逐漸應用被到磁盤存儲系統中。光纖通道磁盤是爲提升多磁盤存儲系統的速度和靈活性纔開發的,它的出現大大提升了多磁盤系統的通訊速度。FC 具備熱插拔性、高速帶寬、遠程鏈接、鏈接設備數量大等特色,是爲了服務器此類多磁盤系統環境而設計的,可以知足高端工做站、服務器、海量存儲子網絡、外設間經過集線器、交換機和點對點鏈接進行雙向、串行數據通信等系統對高數據傳輸率的要求。
RDMA(Remote DMA,遠程直接內存訪問)是一種新的內存訪問技術,RDMA 讓計算機能夠直接存取其餘計算機的內存,而不須要通過處理器耗時的處理。RDMA 將數據從一個系統快速移動到遠程系統存儲器中,而不對操做系統形成任何影響。RDMA 技術的原理及其與 TCP/IP 架構的對好比下圖所示。
所以,RDMA 能夠簡單理解爲利用相關的硬件和網絡技術,服務器 1 的網卡能夠直接讀寫服務器 2 的內存,最終達到高帶寬、低延遲和低資源利用率的效果。以下圖所示,應用程序不須要參與數據傳輸過程,只須要指定內存讀寫地址,開啓傳輸並等待傳輸完成便可。
RDMA 的主要優點總結以下:
這麼多優點總結起來就是提升處理效率,減低時延。
實際上 RDMA 並不是最近幾年才提出,事實上最先實現 RDMA 的網絡協議 InfiniBand 早已應用到了高性能計算中。可是 InfinBand 和傳統 TCP/IP 網絡相比區別很是大,須要專用的硬件設備,承擔昂貴的價格,而且會大大增長運維人力成本。
目前支持以太網的 RDMA 協議主要是 RoCE(RDMA over Converged Ethernet)和 iWARP(Internet Wide Area RDMA Protocol),系統部同窗經過性能、可用性等多方面的調研後,最終引入了 RoCE 網絡。RoCE 和 InfiniBand 的性能基本相近,並且比 iWARP 產業生態更加健全,主流網卡廠商都已支持。除此以外,RoCE 網絡在數據鏈路層支持標準以太網協議,在網絡層上支持 IP 協議,所以能夠無縫融合到現有的 IDC 環境中,部署方便;其次因爲 RoCE 網絡支持標準以太網和IP協議,更加方便運維,並且設備成本更低。
近幾年存儲行業發生了翻天覆地的變化,半導體存儲登上了歷史的舞臺。和傳統磁盤存儲介質相比,半導體存儲介質具備自然的優點。不管在可靠性、性能、功耗等方面都遠遠超越傳統磁盤。SSD 存儲介質和接口技術一直處於不斷向前發展和演進的過程。SSD 分爲幾個階段,第一個階段是 SATA SSD 或者 SATA/SAS SSD 爲主導,這個階段介質以 SLC 和 eMLC 爲主。第二個階段是 PCIe SSD,PCIe SSD 最大的問題是不標準,不少私有化協議各自爲政,基於 FTL 位置不一樣主要分爲 Host based SSD 和 Device base SSD。 直到 NVMe 時代才統一了接口和協議標準,NVMe 主要的產品形態有三大類。第一類是和 SATA/SAS SS D兼容的 U.2,第二類是和 PCIe 兼容的 SSD 卡,第三類消費級產品經常使用的 M.2。
目前經常使用的半導體存儲介質是 NVMe SSD,採用 PCIe 接口方式與主機進行交互,大大提高了性能,釋放了存儲介質自己的性能。NVMe SSD 推動了數據中心閃存化進程。
NVM Express(NVMe,Non-Volatile Memory express,非易失性內存主機控制器接口規範),是一個邏輯設備的接口規範。他是與 AHCI 相似的、基於設備邏輯接口的總線傳輸協議規範(至關於通信協議中的應用層),用於訪問經過 PCI-Express(PCIe)總線附加的非易失性內存介質,雖然理論上不必定要求 PCIe 總線協議。
此規範目的在於充分利用 PCI-E 通道的低延時以及並行性,還有當代處理器、平臺與應用的並行性,在可控制的存儲成本下,極大的提高固態硬盤的讀寫性能,下降因爲 AHCI 接口帶來的高延時,完全解放 SATA 時代固態硬盤的極致性能。
歷史上,大多數 SSD 使用如 SATA、SAS 或光纖通道等接口與計算機接口的總線鏈接。隨着固態硬盤在大衆市場上的流行,SATA 已成爲我的電腦中鏈接 SSD 的最典型方式;可是,SATA 的設計主要是做爲機械硬盤驅動器(HDD)的接口,並隨着時間的推移愈來愈難知足速度日益提升的 SSD。隨着在大衆市場的流行,許多固態硬盤的數據速率提高已經放緩。不一樣於機械硬盤,部分 SSD 已受到 SATA 最大吞吐量的限制。
在 NVMe 出現以前,高端 SSD 只得以採用 PCI Express 總線製造,但需使用非標準規範的接口。若使用標準化的 SSD 接口,操做系統只須要一個驅動程序就能使用匹配規範的全部 SSD。這也意味着每一個 SSD 製造商沒必要用額外的資源來設計特定接口的驅動程序。2015 年 11 月,發佈了 「NVM Express 管理接口規範」 (NVMe),爲非用戶組件和系統提供了帶外管理。NVMe 提供了一個通用的基線管理功能,它能夠跨越全部的 NVMe 設備和系統,以及實現可選特性的一致方法。命令包括查詢和設置配置、獲取子系統的健康、固件管理、命名空間管理、安全管理等。
NVMe 的優點:
目前 NVMe SSD 主流採用的存儲介質是 NAND Flash。最近幾年 NAND Flash 技術快速發展,主要發展的思路有兩條:
縱觀 SSD 發展,NVMe 的出現雖然對接口標準和數據傳輸效率上獲得了跨越式的提高,可是存儲介質目前主流仍是基於 NAND Flash 實現。那再往前發展,存儲介質應該怎麼發展呢?Intel Optane(傲騰)系列硬盤經過實踐證實 NVMe 和 SCM(Storage Class Memory)配對時纔會顯現更大的存儲優點,在不少時候也把 SCM 稱爲 VNM,那時數據存儲將會迎來重大飛躍,NVMe 的將來屬於 SCM。它將創建在行業協議標準而不是專有技術之上。
擴展閱讀:《聯通沃雲虛擬機擴展內存技術的方法驗證研究》
詳細請瀏覽:https://mp.weixin.qq.com/s/cj0bfggzSSUrDT2WMOYASw