一、計算機組成
1.中央處理器
CPU從邏輯上可以划分成3個模塊,分別是控制單元、運算單元和存儲單元,這三部分由CPU內部總線連接起來。

- 控制單元
控制單元是整個CPU的指揮控制中心,由指令寄存器IR(Instruction Register)、指令譯碼器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,對協調整個電腦有序工作極為重要。它根據用戶預先編好的程序,依次從存儲器中取出各條指令,放在指令寄存器IR中,通過指令譯碼(分析)確定應該進行什么操作,然后通過操作控制器OC,按確定的時序,向相應的部件發出微操作控制信號。操作控制器OC中主要包括節拍脈沖發生器、控制矩陣、時鍾脈沖發生器、復位電路和啟停電路等控制邏輯。
- 運算單元
是運算器的核心。可以執行算術運算(包括加減乘數等基本運算及其附加運算)和邏輯運算(包括移位、邏輯測試或兩個值比較)。相對控制單元而言,運算器接受控制單元的命令而進行動作,即運算單元所進行的全部操作都是由控制單元發出的控制信號來指揮的,所以它是執行部件。由算術邏輯單元(ALU)、通用寄存器、數據緩沖寄存器DR和狀態條件寄存器PSW組成。
- 存儲單元
包括CPU片內緩存和寄存器組,是CPU中暫時存放數據的地方,里面保存着那些等待處理的數據,或已經處理過的數據,CPU訪問寄存器所用的時間要比訪問內存的時間短。采用寄存器,可以減少CPU訪問內存的次數,從而提高了CPU的工作速度。但因為受到芯片面積和集成度所限,寄存器組的容量不可能很大。寄存器組可分為專用寄存器和通用寄存器。專用寄存器的作用是固定的,分別寄存相應的數據。而通用寄存器用途廣泛並可由程序員規定其用途,通用寄存器的數目因微處理器而異。

關於CPU的幾個參數
1)主頻
表示在CPU內數字脈沖信號震盪的速度,即CPU的時鍾頻率,計算機的操作在時鍾信號的控制下分步執行,每個時鍾信號周期完成一步操作,時鍾頻率的高低在很大程度上反映了CPU速度的快慢。
主頻和實際的運算速度存在一定的關系,但還沒有一個確定的公式能夠定量兩者的數值關系,因為CPU的運算速度還要看CPU的流水線的各方面的性能指標(緩存、指令集,CPU的位數等等)。CPU的主頻不代表CPU的速度,但提高主頻對於提高CPU運算速度卻是至關重要的。舉個例子來說,假設某個CPU在一個時鍾周期內執行一條運算指令,那么當CPU運行在100MHz主頻時,將比它運行在50MHz主頻時速度快一倍。因為100MHz的時鍾周期比50MHz的時鍾周期占用時間減少了一半,也就是工作在100MHz主頻的CPU執行一條運算指令所需時間僅為10ns比工作在50MHz主頻時的20ns縮短了一半,自然運算速度也就快了一倍。
這里實際是體現的木桶效應,速度會受到最短那個“短板”影響。這里也解答了一個誤區,一般大家選擇CPU的時候發現,主頻越高核數越少,基本成反比規律。這個可作為一般選擇CPU的看法,但不是科學的看法,一般可以理解為是目前給出的一種性價比較高的方案。當然在核數少的情況下,高主頻會發揮最大優勢。
這里可以明確的是主頻越高,功耗就越高。
2)核數
在2005年以前,主頻一直是兩大處理器巨頭Intel和AMD爭相追逐的焦點。而且處理器主頻也在Intel和AMD的推動下達到了一個又一個的高峰就在處理器主頻提升速度的同時,單純主頻的提升已經無法為系統整體性能的提升帶來明顯的好處,並且高主頻帶來了處理器巨大的發熱量,更為不利是Intel和AMD兩家在處理器主頻提升上已經有些力不從心了。在這種情況下,Intel和AMD都不約而同地將投向了多核心的發展方向在不用進行大規模開發的情況下將現有產品發展成為理論性能更為強大的多核心處理器系統,無疑是相當明智的選擇。
多核處理器是指在一枚處理器中集成兩個或多個完整的計算引擎(內核),此時處理器能支持系統總線上的多個處理器,由總線控制器提供所有總線控制信號和命令信號。
3)多線程
CPU多線程同簡稱SMT。SMT可通過復制處理器上的結構狀態,讓同一個處理器上的多個線程同步執行並共享處理器的執行資源,可最大限度地實現寬發射、亂序的超標量處理,提高處理器運算部件的利用率,緩和由於數據相關或Cache未命中帶來的訪問內存延時。當沒有多個線程可用時,SMT處理器幾乎和傳統的寬發射超標量處理器一樣。
當前在選購CPU的時候線程數也是一個重要的參考指標,一般與CPU的核數呈現1:2的關系。
這里已經將主頻、核數、線程數進行簡單的總結,但如何讓CPU的性能發揮最大,一個關鍵的因素是程序,若程序設計的時候不能使用多核、不能多線程,再多的核心數、線程數支持也是白搭。所有我們監測服務器性能的時候發現,CPU利用率不高,但程序比較慢,這個時候就要想想程序架構了。
4)制造工藝
目前最新的制造工藝是7nm
5)緩存
高速緩沖存儲器Cache是位於CPU與內存之間的臨時存儲器,它的容量比內存小但交換速度快。在Cache中的數據是內存中的一小部分,但這一小部分是短時間內CPU即將訪問的,當CPU調用大量數據時,就可避開內存直接從Cache中調用,從而加快讀取速度。由此可見,在CPU中加入Cache是一種高效的解決方案,這樣整個內存儲器(Cache+內存)就變成了既有Cache的高速度,又有內存的大容量的存儲系統了。Cache對CPU的性能影響很大,主要是因為CPU的數據交換順序和CPU與Cache間的帶寬引起的。
數據存儲數據從慢到快依次是:機械硬盤<固態硬盤<內存<L3<L2<L1
- 讀取順序
CPU要讀取一個數據時,首先從Cache中查找,如果找到就立即讀取並送給CPU處理;如果沒有找到,就用相對慢的速度從內存中讀取並送給CPU處理,同時把這個數據所在的數據塊調入Cache中,可以使得以后對整塊數據的讀取都從Cache中進行,不必再調用內存。
正是這樣的讀取機制使CPU讀取Cache的命中率非常高(大多數CPU可達90%左右),也就是說CPU下一次要讀取的數據90%都在Cache中,只有大約10%需要從內存讀取。這大大節省了CPU直接讀取內存的時間,也使CPU讀取數據時基本無需等待。總的來說,CPU讀取數據的順序是先Cache后內存。
- 緩存分類
CPU一般由L1、L2、L3三個級緩存組成,每級的緩存大小和用途定義也不同。
L1(1級)高速緩存是計算機系統中存在的最快的內存。就訪問優先級而言,L1緩存具有CPU在完成特定任務時最可能需要的數據。
就其大小而言,L1高速緩存通常最多可達256KB。但是,一些真正功能強大的CPU現在將其占用近1MB。現在,某些服務器芯片組(如Intel的高端Xeon CPU)具有1-2MB的一級緩存。
L1緩存通常也分為兩種方式:分為指令緩存和數據緩存。指令高速緩存處理有關CPU必須執行的操作的信息,而數據高速緩存則保留要在其上執行操作的數據。
L2(2級)緩存比L1緩存慢,但大小更大。它的大小通常在256KB到8MB之間,功能強大的CPU往往會超過此大小。L2高速緩存保存下一步可能由CPU訪問的數據。在大多數現代CPU中,L1和L2高速緩存位於CPU內核本身,每個內核都有自己的高速緩存。
L3(3級)高速緩存是最大的高速緩存存儲單元,也是最慢的一個。它的范圍從4MB到50MB以上。現代CPU在CPU裸片上具有用於L3高速緩存的專用空間,並且占用了很大一部分空間。
- 讀取命中率
CPU在Cache中找到有用的數據被稱為命中,當Cache中沒有CPU所需的數據時(這時稱為未命中),CPU才訪問內存。從理論上講,在一顆擁有2級Cache的CPU中,讀取L1 Cache的命中率為80%。也就是說CPU從L1 Cache中找到的有用數據占數據總量的80%,剩下的20%從L2 Cache讀取。由於不能准確預測將要執行的數據,讀取L2的命中率也在80%左右(從L2讀到有用的數據占總數據的16%)。那么還有的數據就不得不從內存調用,但這已經是一個相當小的比例了。在一些高端領域的CPU(像Intel的Itanium)中,我們常聽到L3 Cache,它是為讀取L2 Cache后未命中的數據設計的—種Cache,在擁有L3 Cache的CPU中,只有約5%的數據需要從內存中調用,這進一步提高了CPU的效率。
為了保證CPU訪問時有較高的命中率,Cache中的內容應該按一定的算法替換。一種較常用的算法是“最近最少使用算法”(LRU算法),它是將最近一段時間內最少被訪問過的行淘汰出局。因此需要為每行設置一個計數器,LRU算法是把命中行的計數器清零,其他各行計數器加1。當需要替換時淘汰行計數器計數值最大的數據行出局。這是一種高效、科學的算法,其計數器清零過程可以把一些頻繁調用后再不需要的數據淘汰出Cache,提高Cache的利用率。
- 緩存的未來
緩存設計一直在發展,尤其是隨着內存變得更便宜,更快和更密集。英特爾和AMD在緩存設計方面進行了相當多的試驗,英特爾甚至還在試驗L4緩存。CPU市場正在以前所未有的速度向前發展。
處理器狀態
- 運行狀態(operating state):執行指令
- 解題狀態(Problem state):執行應用程序
- 僅執行非特權指令:管理程序狀態(Supervisor state)
- 特權模式下執行:程序可以訪問整個系統,同時執行特權和非特權指令
- 等待狀態(Wait state):等待特定事件完成
2.存儲器
2.1.內存
內存又稱主存,是CPU能直接尋址的存儲空間,由半導體器件制成。內存的特點是存取速率快。內存是電腦中的主要部件,它是相對於外存而言的。我們平常使用的程序,如Windows操作系統、打字軟件、游戲軟件等,一般都是安裝在硬盤等外存上的,但僅此時這些功能還不能使用,必須把它們調入內存中運行,才能真正使用其功能,我們平時輸入一段文字,或玩一個游戲,其實都是在內存中進行的。通常我們把要永久保存的、大量的數據存儲在外存上,而把一些臨時的或少量的數據和程序放在內存上,當然內存的好壞會直接影響電腦的運行速度。
按工作原理分類
1)只讀存儲器(ROM)
ROM表示只讀存儲器(Read Only Memory),在制造ROM的時候,信息(數據或程序)就被存入並永久保存。這些信息只能讀出,一般不能寫入,即使機器停電,這些數據也不會丟失。ROM一般用於存放計算機的基本程序和數據,如BIOS ROM。其物理外形一般是雙列直插式(DIP)的集成塊。
現在比較流行的只讀存儲器是閃存( Flash Memory),它屬於EEPROM(電擦除可編程只讀存儲器)的升級,可以通過電學原理反復擦寫。現在大部分BIOS程序就存儲在 FlashROM芯片中。U盤和固態硬盤(SSD)也是利用閃存原理做成的。
2)隨機存儲器(RAM)
隨機存儲器(Random Access Memory)表示既可以從中讀取數據,也可以寫入數據。當機器電源關閉時,存於其中的數據就會丟失,也就是我們電腦中常用的內存條,內存條(SIMM)就是將RAM集成塊集中在一起的一小塊電路板,它插在計算機中的內存插槽上,以減少RAM集成塊占用的空間。目前市場上常見的內存條有1G/條,2G/條,4G/條等。
RAM分為兩種:DRAM和SRAM。
DRAM( Dynamic RAM,動態隨機存儲器)的存儲單元是由電容和相關元件做成的,電容內存儲電荷的多寡代表信號0和1。電容存在漏電現象,電荷不足會導致存儲單元數據出錯,所以DRAM需要周期性刷新,以保持電荷狀態。DRAM結構較簡單且集成度高,通常用於制造內存條中的存儲芯片。
SRAM( Static RAM,靜態隨機存儲器)的存儲單元是由晶體管和相關元件做成的鎖存器,每個存儲單元具有鎖存“0”和“1”信號的功能。它速度快且不需要刷新操作,但集成度差和功耗較大,通常用於制造容量小但效率高的CPU緩存。
a)SDRAM
Synchronous Dynamic RAM,同步動態隨機存儲器)采用3.3V工作電壓,內存數據位寬64位。 SDRAM與CPU通過一個相同的時鍾頻率鎖在一起,使兩者以相同的速度同步工作。 SDRAM它在每一個時鍾脈沖的上升沿傳輸數據。SDRAM內存金手指為168腳。
SDRAM內存有以下幾種:PC66/100/133150/166,核心頻率分別為66MHz,100Mz133MHz,150MHz,166MHz。時鍾頻率、等效頻率與核心頻率相等。單根 SDRAM內存數據傳輸帶寬最高為 166MHz × 64bit ÷ 8 = 1.3GB/s。
b)DDR SDRAM
Double data Rate SDRAM,雙倍速率同步動態隨機存儲器:采用2.5V工作電壓,內存數據位寬64位。 DDR SDRAM (簡稱DDR內存)一個時鍾脈沖傳輸兩次數據,分別在時鍾脈沖的上升沿和下降沿各傳輸一次數據,因此稱為雙倍速率的SDRAM。
DDR內存金手指為184腳。DDR內存有以下幾種::DDR 200 / 266 / 333400 / 500。核心頻率與時鍾頻率相等,分別為100 MHz, 133 MHz, 166 MHz, 200 MHz, 250 MHz,等效頻分別為200 MHz, 266 MHz, 333 MHz, 400 MHz, 500 MHz,請注意, DDR內存的等效頻率是時鍾頻率的兩倍,因為DDR內存是雙倍速率工作的。DDR內存核心采用2位數據預讀取,也就是一次(一個脈沖)取2位。
而DDR內存核心頻率等於時鍾頻率,等效頻率是時鍾頻率的2倍,所以內存核心一次(一個脈沖)取出的數能及時地一次(一個脈沖)傳輸出去。單根DDR內存數據傳輸帶寬最高為500 MHz×64 bit÷ 8=4 GB/s。
c)DDR2 SDRAM
Double Data Rate 2 SDRAM)采用1.8V工作電壓,內存數據位寬64位。 DDR2內存和DDR內存一樣,一個時鍾脈沖傳輸兩次數據,但DDR2內存卻擁有兩倍於上一代DDR內存的預讀取能力,即4位數據預讀取。
DDR 2內存金手指為240腳。DDR2內存有以下幾種: DDR2 533 / 667 / 800 / 066。核心頻率分別為133 MHz, 166 MHz, 200 MHz, 266 MHz,時鍾頻率分別為: 266 MHz,333 MHz, 400 MHz, 533 MHz,等效頻率分別為533 MHz, 667 MHz, 800 MHz, 1066 MHz。
前面已經說過, DDR2內存核心采用4位數據預讀取,也就是一次(一個脈沖)取4位,如果和上一代DDR內存一樣,時鍾頻率與核心頻率相等,等效頻率是時鍾頻率2倍的話,就無法及時地將取出的數傳輸出去;所以DDR 2內存的時鍾頻率是核心頻率的2倍,這樣才能將相同時間間隔內從內存核心取出的數,在相同時間間隔內傳輸出去。
單根DDR2內存的數據傳輸帶寬最高為1066 MH2z X 64 bit÷ 8 = 8.6 GB/s。
d)DDR3 SDRAM
Double Data Rate 3 SDRAM)采用1.5 V工作電壓,內存數據位寬64位。同樣, DDR3內存擁有兩倍於上一代DDR2內存的預讀取能力,即8位數據預讀取。
對於DDR 3內存,可以得出以下關系:時鍾頻率是核心頻率的4倍,等效頻率是時鍾頻率的2倍,也就是說DDR3內存等效頻率是核心頻率的8倍。
DDR 3內存有以下幾種: DDR3 1066 / 1333 / 1600 / 1800 / 2000。核心頻率分別為133 MHz,166 MHz, 200 MHz, 225 MHz, 250 MHz,時鍾頻率分別分533 MHz, 667 MHz, 800 MHz,900 MHz, 1000 MHz,等效頻率分別為: 1066 MHz, 1333 MHz, 1600 MHz, 1800 MHz,2000 MHz。單根DDR3內存的數據傳輸帶寬最高為2000 MHz × 64 bit÷ 8 =16 GB/s。
d)DDR4 SDRAM
Double Data Rate 4 SDRAM)采用1.2V工作電壓,內存數據位寬64位, 16位數據預讀取。取消雙通道機制,一條內存即為一條通道。工作頻率最高可達4266 MHz,單根DDR4內存的數據傳輸帶寬最高為34 GB/s。
e)DDR5 SDRAM
DDR5 SDRAM的主要特性是芯片容量,而不僅僅是更高的性能和更低的功耗。DDR5預計將帶來4266至6400 MT / s的I / O速度,電源電壓降至1.1 V,允許的波動范圍為3%(即±0.033V)。每個模塊使用兩個獨立的32/40位通道(不使用/或使用ECC)。此外,DDR5將具有改進的命令總線效率(因為通道將具有其自己的7位地址(添加)/命令(Cmd)總線),更好的刷新方案以及增加的存儲體組以獲得額外的性能。
3)高速緩沖存儲器(Cache)
Cache也是我們經常遇到的概念,也就是平常看到的一級緩存(L1 Cache)、二級緩存(L2 Cache)、三級緩存(L3 Cache)這些數據,它位於CPU與內存之間,是一個讀寫速度比內存更快的存儲器。當CPU向內存中寫入或讀出數據時,這個數據也被存儲進高速緩沖存儲器中。當CPU再次需要這些數據時,CPU就從高速緩沖存儲器讀取數據,而不是訪問較慢的內存,當然,如需要的數據在Cache中沒有,CPU會再去讀取內存中的數據。
2.2.硬盤
2.2.1.機械硬盤
機械硬盤(Hard Disk Drive)由一個或者多個鋁制或者玻璃制的碟片組成。這些碟片外覆蓋有鐵磁性材料。主要由盤片,磁頭,盤片轉軸及控制電機,磁頭控制器,數據轉換器,接口,緩存等幾個部分組成。

1)磁盤容量
硬盤的容量以兆字節(MB)或千兆字節(GB)為單位,1GB=1024MB,1TB=1024GB。但硬盤廠商在標稱硬盤容量時通常取1G=1000MB,因此我們在BIOS中或在格式化硬盤時看到的容量會比廠家的標稱值要小。
2)轉速
轉速(Rotationl Speed 或Spindle speed),是硬盤內電機主軸的旋轉速度,也就是硬盤盤片在一分鍾內所能完成的最大轉數。
轉速的快慢是標示硬盤檔次的重要參數之一,它是決定硬盤內部傳輸率的關鍵因素之一,在很大程度上直接影響到硬盤的速度。硬盤的轉速越快,硬盤尋找文件的速度也就越快,相對的硬盤的傳輸速度也就得到了提高。硬盤轉速以每分鍾多少轉來表示,單位表示為RPM,RPM是Revolutions Per minute的縮寫,是轉/每分鍾。RPM值越大,內部傳輸率就越快,訪問時間就越短,硬盤的整體性能也就越好。
硬盤的主軸馬達帶動盤片高速旋轉,產生浮力使磁頭飄浮在盤片上方。要將所要存取資料的扇區帶到磁頭下方,轉速越快,則等待時間也就越短。因此轉速在很大程度上決定了硬盤的讀取速度。
家用的普通硬盤的轉速一般有5400rpm、7200rpm幾種,高轉速硬盤是台式機用戶的首選;服務器用戶對硬盤性能要求最高,服務器中使用的SCSI硬盤轉速基本都采用10000rpm,甚至還有15000rpm的,性能要超出家用產品很多。較高的轉速可縮短硬盤的平均尋道時間和實際讀寫時間,但隨着硬盤轉速的不斷提高也帶來了溫度升高、電機主軸磨損加大、工作噪音增大等負面影響。筆記本硬盤轉速低於台式機硬盤,一定程度上是受到這個因素的影響。筆記本內部空間狹小,筆記本硬盤的尺寸(2.5寸)也被設計的比台式機硬盤(3.5寸)小,轉速提高造成的溫度上升,對筆記本本身的散熱性能提出了更高的要求;噪音變大,又必須采取必要的降噪措施,這些都對筆記本硬盤制造技術提出了更多的要求。同時轉速的提高,而其它的維持不變,則意味着電機的功耗將增大,單位時間內消耗的電就越多,電池的工作時間縮短,這樣筆記本的便攜性就受到影響。
3)傳輸速率
傳輸速率(Data Transfer Rate) 硬盤的數據傳輸率是指硬盤讀寫數據的速度,單位為兆字節每秒(MB/s)。硬盤數據傳輸率又包括了內部數據傳輸率和外部數據傳輸率。
內部傳輸率(Internal Transfer Rate) 也稱為持續傳輸率(Sustained Transfer Rate),它反映了硬盤緩沖區未用時的性能。內部傳輸率主要依賴於硬盤的旋轉速度。
外部傳輸率(External Transfer Rate)也稱為突發數據傳輸率(Burst Data Transfer Rate)或接口傳輸率,它標稱的是系統總線與硬盤緩沖區之間的數據傳輸率,外部數據傳輸率與硬盤接口類型和硬盤緩存的大小有關。
4)磁盤接口
硬盤接口分為IDE、SATA、SCSI、SAS和光纖通道五種,IDE接口硬盤多用於家用產品中,也部分應用於服務器,SCSI接口的硬盤則主要應用於服務器市場,而光纖通道只用於高端服務器上,價格昂貴。SATA主要應用於家用市場,有SATA、SATAⅡ、SATAⅢ,是現在的主流。
a)IDE
英文全稱為“Integrated Drive Electronics”,即“電子集成驅動器”,常見的2.5英寸IDE硬盤接口。它的本意是指把“硬盤控制器”與“盤體”集成在一起的硬盤驅動器。把盤體與控制器集成在一起的做法減少了硬盤接口的電纜數目與長度,數據傳輸的可靠性得到了增強,硬盤制造起來變得更容易,因為硬盤生產廠商不需要再擔心自己的硬盤是否與其它廠商生產的控制器兼容。對用戶而言,硬盤安裝起來也更為方便。IDE這一接口技術從誕生至今就一直在不斷發展,性能也不斷的提高,其擁有的價格低廉、兼容性強的特點,為其造就了其它類型硬盤無法替代的地位。
IDE代表着硬盤的一種類型,但在實際的應用中,人們也習慣用IDE來稱呼最早出現IDE類型硬盤ATA-1,這種類型的接口隨着接口技術的發展已經被淘汰了,而其后發展分支出更多類型的硬盤接口,比如ATA、Ultra ATA、DMA、Ultra DMA等接口都屬於IDE硬盤。

b)SCSI
SCSI的英文全稱為“Small Computer System Interface”(小型計算機系統接口),是同IDE(ATA)完全不同的接口,IDE接口是普通PC的標准接口,而SCSI並不是專門為硬盤設計的接口,是一種廣泛應用於小型機上的高速數據傳輸技術。SCSI接口具有應用范圍廣、多任務、帶寬大、CPU占用率低,以及熱插拔等優點,但較高的價格使得它很難如IDE硬盤般普及,因此SCSI硬盤主要應用於中、高端服務器和高檔工作站中。

c)SATA
使用SATA(Serial ATA)口的硬盤又叫串口硬盤.
2001年,由Intel、APT、Dell、IBM、希捷、邁拓這幾大廠商組成的Serial ATA委員會正式確立了Serial ATA 1.0規范,2002年,雖然串行ATA的相關設備還未正式上市,但Serial ATA委員會已搶先確立了Serial ATA 2.0規范。Serial ATA采用串行連接方式,串行ATA總線使用嵌入式時鍾信號,具備了更強的糾錯能力,與以往相比其最大的區別在於能對傳輸指令(不僅僅是數據)進行檢查,如果發現錯誤會自動矯正,這在很大程度上提高了數據傳輸的可靠性。串行接口還具有結構簡單、支持熱插拔的優點。
串口硬盤是一種完全不同於並行ATA的新型硬盤接口類型,由於采用串行方式傳輸數據而知名。相對於並行ATA來說,就具有非常多的優勢。首先,Serial ATA以連續串行的方式傳送數據,一次只會傳送1位數據。這樣能減少SATA接口的針腳數目,使連接電纜數目變少,效率也會更高。實際上,Serial ATA 僅用四支針腳就能完成所有的工作,分別用於連接電纜、連接地線、發送數據和接收數據,同時這樣的架構還能降低系統能耗和減小系統復雜性。其次,Serial ATA的起點更高、發展潛力更大,Serial ATA 1.0定義的數據傳輸率可達150MB/s,這比目前最新的並行ATA(即ATA/133)所能達到133MB/s的最高數據傳輸率還高,而在Serial ATA 2.0的數據傳輸率將達到300MB/s,最終SATA將實現600MB/s的最高數據傳輸率。

SATAⅡ接口
SATA Ⅱ是在SATA的基礎上發展起來的,其主要特征是外部傳輸率從SATA的1.5Gbps(150MB/sec)進一步提高到了3Gbps(300MB/sec),此外還包括NCQ(Native Command Queuing,原生命令隊列)、端口多路器(Port Multiplier)、交錯啟動(Staggered Spin-up)等一系列的技術特征。單純的外部傳輸率達到3Gbps並不是真正的SATA II。
SATA II的關鍵技術就是3Gbps的外部傳輸率和NCQ技術。NCQ技術可以對硬盤的指令執行順序進行優化,避免像傳統硬盤那樣機械地按照接收指令的先后順序移動磁頭讀寫硬盤的不同位置,與此相反,它會在接收命令后對其進行排序,排序后的磁頭將以高效率的順序進行尋址,從而避免磁頭反復移動帶來的損耗,延長硬盤壽命。另外並非所有的SATA硬盤都可以使用NCQ技術,除了硬盤本身要支持 NCQ之外,也要求主板芯片組的SATA控制器支持NCQ。此外,NCQ技術不支持FAT文件系統,只支持NTFS文件系統。
由於SATA設備市場比較混亂,不少SATA設備提供商在市場宣傳中濫用“SATA Ⅱ”的現象愈演愈烈,例如某些號稱“SATA Ⅱ”的硬盤卻僅支持3Gbps而不支持NCQ,而某些只具有1.5Gbps的硬盤卻又支持NCQ,所以,由希捷(Seagate)所主導的SATA-IO(Serial ATA International Organization,SATA國際組織,原SATA工作組)又宣布了SATA 2.5規范,收錄了原先SATA Ⅱ所具有的大部分功能——從3Gbps和NCQ到交錯啟動(Staggered Spin-up)、熱插拔(Hot Plug)、端口多路器(Port Multiplier)以及比較新的eSATA(External SATA,外置式SATA接口)等等。
4)SAS
SAS的接口技術可以向下兼容SATA。具體來說,二者的兼容性主要體現在物理層和協議層的兼容。在物理層,SAS接口和SATA接口完全兼容,SATA硬盤可以直接使用在SAS的環境中,從接口標准上而言,SATA是SAS的一個子標准,因此SAS控制器可以直接操控SATA硬盤,但是SAS卻不能直接使用在SATA的環境中,因為SATA控制器並不能對SAS硬盤進行控制;在協議層,SAS由3種類型協議組成,根據連接的不同設備使用相應的協議進行數據傳輸。其中串行SCSI協議(SSP)用於傳輸SCSI命令;SCSI管理協議(SMP)用於對連接設備的維護和管理;SATA通道協議(STP)用於SAS和SATA之間數據的傳輸。因此在這3種協議的配合下,SAS可以和SATA以及部分SCSI設備無縫結合。
SAS硬盤算是機械硬盤中速度最快的了,首先接口上SAS接口就比SATA和SCSI的機械硬盤快,其次加上轉速快,尋道快,所以SAS硬盤都被應用到無盤服務器上做讀或寫。
SAS系統的背板(Back Panel)既可以連接具有雙端口、高性能的SAS驅動器,也可以連接高容量、低成本的SATA驅動器。所以SAS驅動器和SATA驅動器可以同時存在於一個存儲系統之中。但需要注意的是,SATA系統並不兼容SAS,所以SAS驅動器不能連接到SATA背板上。由於SAS系統的兼容性,使用戶能夠運用不同接口的硬盤來滿足各類應用在容量上或效能上的需求,因此在擴充存儲系統時擁有更多的彈性,讓存儲設備發揮最大的投資效益。
在系統中,每一個SAS端口可以最多可以連接16256個外部設備,並且SAS采取直接的點到點的串行傳輸方式,傳輸的速率高達3Gbps,估計以后會有6Gbps乃至12Gbps的高速接口出現。SAS的接口也做了較大的改進,它同時提供了3.5英寸和2.5英寸的接口,因此能夠適合不同服務器環境的需求。SAS依靠SAS擴展器來連接更多的設備,SAS的擴展器以12端口居多,不過根據板卡廠商產品研發計划顯示,未來會有28、36端口的擴展器引入,來連接SAS設備、主機設備或者其他的SAS擴展器。
和傳統並行SCSI接口比較起來,SAS不僅在接口速度上得到顯著提升(主流Ultra 320 SCSI速度為320MB/sec,而SAS才剛起步速度就達到300MB/sec,未來會達到600MB/sec甚至更多),而且由於采用了串行線纜,不僅可以實現更長的連接距離,還能夠提高抗干擾能力,並且這種細細的線纜還可以顯著改善機箱內部的散熱情況。
5)光纖通道
光纖通道的英文拼寫是Fibre Channel,和SCSI接口一樣光纖通道最初也不是為硬盤設計開發的接口技術,是專門為網絡系統設計的,但隨着存儲系統對速度的需求,才逐漸應用到硬盤系統中。光纖通道硬盤是為提高多硬盤存儲系統的速度和靈活性才開發的,它的出現大大提高了多硬盤系統的通信速度。光纖通道的主要特性有:熱插拔性、高速帶寬、遠程連接、連接設備數量大等。
光纖通道是為在像服務器這樣的多硬盤系統環境而設計,能滿足高端工作站、服務器、海量存儲子網絡、外設間通過集線器、交換機和點對點連接進行雙向、串行數據通訊等系統對高數據傳輸率的要求。

2.2.2.固態硬盤
固態硬盤(Solid State Drive),簡稱SSD,是用固態電子存儲芯片陣列而制成的硬盤,由控制單元和存儲單元(FLASH芯片、DRAM芯片)以及緩存單元組成。區別於機械硬盤由磁盤、磁頭等機械部件構成,整個固態硬盤結構無機械裝置,全部是由電子芯片及電路板組成。根據固態硬盤的定義,我們可以知道固態硬盤的內部結構,其實就是由三大塊主控芯片、閃存顆粒、緩存單元構成。
1)主控芯片
作用一是合理調配數據在各個閃存芯片上的負荷,二則是承擔了整個數據中轉,連接閃存芯片和外部SATA接口。
2)閃存顆粒單元
在固態硬盤里面,閃存顆粒則替代了機械磁盤成為了存儲單元。閃存(Flash Memory)本質上是一種長壽命的非易失性(在斷電情況下仍能保持所存儲的數據信息)的存儲器,數據刪除不是以單個的字節為單位而是以固定的區塊為單位。
根據NAND閃存中電子單元密度的差異,又可以分為SLC(單層次存儲單元)、MLC(雙層存儲單元)以及TLC(三層存儲單元),此三種存儲單元在壽命以及造價上有着明顯的區別。成本+性能+壽命 SLC>MLC>TLC
- SLC(單層式存儲),單層電子結構,寫入數據時電壓變化區間小,壽命長,讀寫次數在10萬次以上,造價高,多用於企業級高端產品。
- MLC(多層式存儲),使用高低電壓的不同構建的雙層電子結構,壽命長,造價可接受,多用民用高端產品,讀寫次數在5000左右。
- TLC(三層式存儲),是MLC閃存延伸,TLC達到3bit/cell。存儲密度最高,容量是MLC的1.5倍。 造價成本最低, 使命壽命低,讀寫次數在1000~2000左右,是當下主流廠商首選閃存顆粒。
3)緩存芯片
是固態硬盤三大件中最容易被人忽視的一塊,也是廠商最不願意投入的一塊。和主控芯片、閃存顆粒相比,緩存芯片的作用確實沒有那么明顯,在用戶群體的認知度也沒有那么深入,相應的就無法以此為噱頭進行鼓吹。
磁盤的速度與接口類型有密切關系
市面上主流的固態硬盤接口有 SATA、mSATA、m.2、PCI-E插槽這4種。

目前的固態硬盤都是用的PCI-E×2、×4這個等級,其中×4的最大速度已經可以達到 3000 MB/s以上了。這個還與使用的協議有關,不支持NVMe協議的硬盤最大只能跑1500MB/s,而支持NVMe協議的硬盤就可以跑到3000MB/s甚至以上。
SATA接口:

mSATA接口:

M.2接口有兩種:M key和B key,如圖所示

PCI-E接口:

關於固態硬盤部分的描述來自:https://www.cnblogs.com/whl320124/p/10063608.html,大家可以這里了解具體內容。
2.3.存儲器映射
1)地址映射
CPU通過主板與存儲器芯片連接,使用物理地址表示
物理地址由存儲管理器映射成邏輯地址,線程中實際使用的是相對地址
2)內存溢出
- 緩沖區溢出問題
- 當以輸入方式接收過多數據時,就會發生緩沖區溢出
- 棧的溢出,造成改寫,FILO機制
- 需要控制邊界
- 存儲器泄露:應用程序不釋放存儲空間
3)存儲器的管理
- 提供交換機制和指針
- 保護分配的資源
- 共享存儲段
- 分段提供尋址方案和允許共享特定軟件模塊(DLL)
- 划分物理空間
動態鏈接庫(DLL):是一組功能,用於執行各種類型的過程。crypt32.dll是實現加密的功能
保護機制(如何保護進程僅與它自己存儲段交互):通過基本寄存器和界限寄存器地址對比實現
4)虛擬存儲器
為了解決內存空間不夠的問題,系統使用磁盤空間擴充RAM
Windows下的pagefile.sys
linux下的swap空間
3.進程管理
3.1.定義
進程是一個具有獨立功能的程序關於某個數據集合的一次運行活動。它可以申請和擁有系統資源,是一個動態的概念,是一個活動的實體。它不只是程序的代碼,還包括當前的活動,通過程序計數器的值和處理寄存器的內容來表示。進程(Process)是計算機中的程序關於某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操作系統結構的基礎。
3.2.特征
動態性:進程的實質是程序在多道程序系統中的一次執行過程,進程是動態產生,動態消亡的。
並發性:任何進程都可以同其他進程一起並發執行
獨立性:進程是一個能獨立運行的基本單位,同時也是系統分配資源和調度的獨立單位;
異步性:由於進程間的相互制約,使進程具有執行的間斷性,即進程按各自獨立的、不可預知的速度向前推進
結構特征:進程由程序、數據和進程控制塊三部分組成。
多個不同的進程可以包含相同的程序:一個程序在不同的數據集里就構成不同的進程,能得到不同的結果;但是執行過程中,程序不能發生改變。
3.3.三個基本狀態
進程執行時的間斷性,決定了進程可能具有多種狀態。事實上,運行中的進程可能具有以下三種基本狀態。
1)就緒狀態(Ready):
進程已獲得除處理器外的所需資源,等待分配處理器資源;只要分配了處理器進程就可執行。就緒進程可以按多個優先級來划分隊列。例如,當一個進程由於時間片用完而進入就緒狀態時,排入低優先級隊列;當進程由I/O操作完成而進入就緒狀態時,排入高優先級隊列。
等待向CPU發送指令
2)運行狀態(Running):
進程占用處理器資源;處於此狀態的進程的數目小於等於處理器的數目。在沒有其他進程可以執行時(如所有進程都在阻塞狀態),通常會自動執行系統的空閑進程。
CPU正在執行其指令和數據
3)阻塞狀態(Blocked):
由於進程等待某種條件(如I/O操作或進程同步),在條件滿足之前無法繼續執行。該事件發生前即使把處理器資源分配給該進程,也無法運行。
等待輸入數據,如用戶按鍵
3.4.管理
操作系統負責創建進程、分配資源、同步通信和安全
操作系統維護一個進程表:狀態、指針、存儲器分配、程序計數器、打開文件使用狀況
系統使用中斷信號來決定是否與CPU通信:需要判斷優先級來決定中斷的先后順序
存儲器棧:每個處理進程都有自己的棧,采用后入先出(LIFO)的方式讀寫的數據架構
線程管理
- 線程由一個獨立的指令集和需要CPU處理的數據構成
- 進程創建的每個線程共享該進程的資源
- 當進程需要傳輸數據給CPU時,會生成一個線程
- 線程根據需要動態產生和銷毀
- 進度調度:資源釋放問題
進程地址保護:一旦進程分配到自己的存儲空間,它就會根據需要對這些空間進行編址,這個稱為虛擬地址空間映射。 虛擬地址映射運行不同的進程擁有各自的存儲器空間。 存儲管理器確保沒有進程與進程之間的存儲器進行不適當的交互。 通過上述為每個進程及其數據提供完整性和機密性。
3.5.進程攻擊
檢驗時間/使用時間攻擊(TOC/TOU)
- 多任處理操作系統發生的事件的時序依賴性
- 正常情況下程序必須一步步執行指令,只有程序1完成后才能執行程序2,。如果攻擊者能夠使用程序進入這些步驟之間攻擊更改,程序就會出現混亂
- 攻擊者要進入兩個進程之間進行更改,以達到控制結果的目的
- 競爭攻擊只是改變順序
狀態攻擊(競爭條件):是一種TOC/TOPU攻擊。是指兩個不同的進程需要在同一個資源上執行其任務的情況,這些進程必須遵循正確的順序。是一種打亂進程執行順序以控制結果的攻擊
4.輸入輸出
也是我們常說的IO設備。
塊或字符設備:塊設備以固定大小的塊處理數據,例如:硬盤
字符設備處理字符流:打印機、網卡、鼠標
操作系統使用驅動調用設備控制器 由設備控制器與總線聯系 中斷控制器會探測這個信號,完成I/O的控制
- 可編程I/O:向I/O設備發送數據並輪詢,當未准備好時,只能等待。輪詢
- 中斷驅動I/O:與可編程類似,但不等待。通過中斷來利用等待的時間 發送字符-離開做其他事情-中斷-發送下一個字符。直接中斷。
- DMA的I/O:一種不使用CPU,而是I/O設備與系統存儲器之間傳輸的方式。直接和IO建立聯系。
- 映射前I/O:CPU將物理地址提交給請求的I/O,建立信任關系后I/O設備直接與存儲設備間通信。由CPU控制建立聯系關系。
- 全面映射I/O:不完全信任。給的邏輯地址。由CPU控制建立聯系關系,但只給邏輯地址。
5.操作系統架構
單塊架構(monolithic):操作系統提供服務,通過系統調用來供應,所有都運行在內核模式下,例如:MS-DOS
分層架構:被分成可被調用不同的層。缺點:性能、負責性和安全性。所有運行在內核模式下分層,例如:UNIX
微內核架構:核心操作系統運行內核模式下,其余運行在用戶模式下
混合內核架構:微內核:主要執行進程與進程之間的通信活動和存儲器管理職責。其余運行在客戶端/服務器模型下
與CPU之間調用:操作系統和CPU必須通過指令集通信。使用保護環(protection ring)。環號越低,離內核越近,權限越大。環號高的不能訪問環號低,反之可以
CPU供應商決定有多少環,操作系統供應商決定如何使用
可信計算機(TCB):是系統內提供某類安全並實施系統安全策略的所有硬件、軟件和固件的組合。
安全邊界:划分可信和不可信區域
引用監視器(refernce monitor):是一種抽象機,它是主體對客體進行所有訪問的中介,不但要確保主體擁有必要的訪問權限,還要保護客體不被未授權訪問和破壞性更改;要求主體(程序、用戶或進程)在訪問客體(文件、程序或資源)之前獲得完全授權;在允許主體使用被請求的客體之前,必須確信主體已被賦予了訪問權限
引用監視器是一種訪問控制概念,不是實際的物理概念
安全內核:由位於TCB內的硬件、軟件和固件組件構成,並且實現和實施引用監控器概念
- 必須為實施應用監控器概念的進程提供隔離,並且這些進程必須不被篡改
- 每個訪問過程必須調用安全內核,不能跳過
- 必須足夠小,以便能夠完整地和全面地對其進行測試和驗證
二、信息安全評估模型
1.產品評估模型-CC
通用准則 :CC定義了作為評估信息技術產品和系統安全性的基礎准則,全面地考慮了與信息技術安全性有關的所有因素,與PDR(防護、檢聽、反應)模型和現代動態安全概念相符合的,強調安全的假設、威脅的、安全策略等安全需求的針對性,充分突出保護輪廓。
強調把安全需求划分為安全功能需求和安全保證需求兩個獨立的部分,根據安全保證需求定義安全產品的安全等級
定義了7個評估保證級別(EAL),每一級均需評估相關安全功能類。 分別為:
1)功能性檢測
2)結構性測試
3)系統性測試及檢查
4)系統性設計、測試及檢查、
5)半正規化測試及檢查
6)半正規化檢查、設計及測試
7)正規化查證、設計及測試
保護樣板
- 描述性元素提供樣板的名稱以及對要解決的安全問題的描述
- 以及采用樣板的依據,更詳細地描述要解決的現實問題
- 功能要求建立一個保護邊界
- 開發保證要求確定了產品或協同從設計到實現的開發階段必須滿足的特定要求
- 包含安全需求的集合、它們的含義和推理以及所需產品對應的EAL評級
- 描述了對環境的假設、目標以及功能性和保證級別的期望
- 描述所需的安全解決方案
評估目標:提供所需的安全解決方案的建議產品
安全目標:供應商的書面說明,解釋滿足所需安全解決方案的安全功能和保證機制。
安全功能要求:產品必須提供的每一個安全功能
安全保證要求:對研發和評估過程中,為保證合乎所聲稱的安全功能的規定而采取的措施
數據包(即EAL):把功能和保證需求封裝起來,以便今后使用。這部分詳細描述要實現特定EAL評級所必須滿足的要求。
ISO/IEC 15408:是國家標准,是評估CC框架產品安全屬性的基礎.
- 15408-1 入門和通用評估模型
- 15408-2 安全功能組件
- 15408-3 安全保證組件
其他行業和國際安全實施指南
- ISO27001 (ISMS-信息安全管理體系)
- COBIT
- PCI-DSS
2.認證與認可
認證
- 處於認可的目的而對安全組件及其一致性進行全面的技術評估
- 一個認證過程可以使用防護措施評估、風險分析、驗證、測試和審計技術來估計特定系統的適用性
- 認證過程的目的是確保系統、產品或網絡能給適合客戶的目的
- 是評估安全機制和評估安全效果的一種技術性審查
認可
- 管理層對系統整體安全和功能的充分性的正式認定
- 管理層正式接受認證過程中的調查結果
特別聲明:
1.以上所有描述內容部分參考鏈接/文獻未逐一列出,若有侵權,請及時告知,有則改之無則加勉。
2.以上僅是學習過程的總結,相信有很多理解偏差的地方,特別希望指出,給予幫助,更新知識體系,共同進步。
參考材料:
https://baike.baidu.com/item/%E5%A4%84%E7%90%86%E5%99%A8%E7%BB%93%E6%9E%84/14724193?fr=aladdin 處理器結構
https://blog.csdn.net/chen1083376511/article/details/81941318 計算機組成原理(4)-中央處理器CPU
https://blog.csdn.net/u010632165/article/details/106795478
CPU緩存L1,L2和L3是什么?如何工作?
https://blog.csdn.net/godloveyuxu/article/details/77353806 CPU的緩存L1、L2、L3
http://c.biancheng.net/view/879.html 硬盤結構(機械硬盤和固態硬盤)詳解
https://www.cnblogs.com/whl320124/p/10063608.html SSD固態硬盤內部結構詳解
https://www.cnblogs.com/whl320124/articles/10063813.html 深入了解機械硬盤的讀寫原理和碎片的產生