計算機硬件性能指標

計算機包括軟件和硬件,它們各自都有自己評價的指標。這裏主要討論硬件指標。衡量計算機硬件性能的指標常有機器字長、存儲器容量、運算速度、浮點運算能力等。

機器字長

我們經常聽到32位CPU或者64位CPU。這裏的32位或者64位指的就是機器字長,也成機器字長。機器字長是指計算機進行一次整數運算所能處理的二進制的位數,反映了計算機能進行多少位二進制數的並行運算。在計算機中執行運算的是CPU中的運算器,所以機器字長是多少位也就是指該計算機中的運算器有多少位。即運算器中的ALU及一些核心的寄存器是多少位的(比如前面的累加器、通用寄存器等)。ALU是用來進行兩個數的算術邏輯運算的,這些核心的寄存器通常是保存ALU中參與搬運與運算的數據的,所以他們的長度就反映了運算器的長度,也就是機器字長。衡量機器字長的單位可用“位(bit)”來表示,位是計算機內最小的信息單位,8位構成一個“字節(byte)”。現代計算機的機器字長一般都是字節的整數倍,如8位、16位、32位、64位和128位等,即字長由2個字節、4個字節、8個字節或16個字節組成,所以也可用“字節”來表示機器字長。通常,機器字長越長,計算機的運算能力越強,其運算精度也就越高,數據傳輸能力也就越快。

通常計算機的數據總線的寬度、存儲器存儲單元的字長、寄存器的位數、機器字長存在一定的關係。一般核心寄存器的位數就是機器字長,但數據總線的寬度、存儲單元字長並不是非要等於機器字長,它們有可能是倍數的關係。比如計算機的機器字長爲32位,但數據總線是16位的,那麼這時要通過該總線給CPU中寄存器賦值,就需要2次總線傳輸過程來完成。如果總線是32位,則只需一次總線傳輸就可以完成。如果計算機中的存儲字長是32位,那麼從存儲器中取出一個數據保存到運算器中,需要訪問一次存儲器,如果存儲字長是16位的,則需要訪問2次存儲器。

運算速度

運算速度是衡量CPU工作快慢的指標,表示每秒可以完成多少次運算。計算機的運算速度與許多因素有關,如CPU的主頻、CPI(Cycle Per Instruction,指令時鐘週期)或者MIPS(Million Instruction Per Second,百萬條指令每秒)以及FLOPS(Floating Operation Per Second,浮點運算次數每秒)等。

1.主頻

主頻是CPU工作的時鐘頻率,是時鐘週期的倒數,它爲計算機工作提供一個基準的時間。例如,Intel的CPU i3 4160的主頻爲3.6GHz。同等條件下,CPU的主頻越高,處理速度也越快,性能越高。

2.CPI

CPI是指每條指令從取指到每條指令執行完畢需要多少個時鐘週期。在其它條件不變的前提下,每條指令的CPI越少,則計算機處理的速度也就越快。由於一些計算機不同指令的CPI不同,所以可以用平均CPI來衡量計算機的性能。

3.MIPS

計算機是靠執行指令完成工作的,在其它條件相同的情況下,如果一臺計算機每秒完成的指令越多,顯然速度也就越快。由於計算機每條指令的CPI可能不同,所以MIPS指的是每秒鐘平均執行多少百萬條指令。

從上面的定義可以看出,主頻、CPI、MIPS三個指標並非是孤立的,它們之間存在一定的制約關係。在計算機不採用指令流水的情況下,它們之間的關係爲MIPS=主頻/(平均CPI*10^6)。

所謂指令流水指的是計算機的指令並非是執行完一條指令後再取第二條指令,而是在第一條指令還沒有執行完的時候就開始取出第二條、第三條甚至更多條指令,存在着指令並行的狀況。通常將一條指令從取出指令到執行完畢稱爲一個指令週期。可以將指令週期分爲幾個階段,每個階段使用的部件有可能並不衝突。比如,可以將指令週期分爲取指、分析指令、執行指令階段。在第一條指令分析指令的時候就開始取第二條指令,在第一條指令執行階段、第二條指令分析指令階段就開始取第三條指令。這樣的過程就稱爲指令流水,上面稱爲三級流水。如果將指令分爲更多的階段,可以實現更多級的流水。在理想情況下,三級流水可以將計算機的性能提升三倍,n級流水可以將計算機性能提升到原來的n倍。但在實際的情況下,指令的各個階段存在相互影響的因素,因此指令流水性能的提升達不到理想的狀況,但也能大幅提高計算機的性能。很明顯,在採用指令流水的情況下,在每條指令的CPI不變的情況下,也可以大幅度提高計算機的MIPS值。因此衡量一個計算機的性能要進行綜合評價,不能單靠一個指標來判斷計算機性能。如前所述,計算機是靠執行指令來完成工作的,每秒鐘能夠執行更多的指令似乎更能反映計算機的性能。但是也不盡然,因爲不同的計算機指令的功能也不盡相同。有的計算機,一條指令可能完成更多的工作,而有的則可能會完成較少的工作。

例.  兩臺計算機A和B,它們相對應的指令的功能相同。A計算機的主頻是200MHz,平均指令週期爲8個時鐘週期;B計算機的主頻是100MHz,平均指令週期爲2個時鐘週期,試問哪臺計算機的速度更快。

解析:A計算機的主頻是200MHz,平均指令週期爲8個時鐘週期,則它平均每秒能完成指令的條數爲200/8=25MIPS。B計算機的主頻是100MHz,平均指令週期爲2個時鐘週期,則它平均每秒能完成指令的條數爲100/2=50MIPS

而由於二者相對應的指令的功能相同,所以B計算機的速度更快。

4.FLOPS

計算機既需要處理定點運算(整數或純小數),也需要處理浮點運算。有的計算機定點處理運算能力也許並不高,但因爲其內部具有浮點運算部件,它處理浮點運算的能力卻比較高。因此又引入FLOPS對計算機的浮點運算能力進行衡量。FLOPS是指每秒能執行多少次浮點運算操作。現在許多臺式機的CPU都具有浮點運算協助處理器或浮點處理單元(Floating Processing Unit,FPU),用硬件來實現浮點運算,因此都具有比較強的浮點運算能力。而多數的低端單片機則不具有這個功能,所以需要將浮點運算轉換爲定點運算進行處理,因而浮點運算能力較低。

存儲器容量和讀寫速度

計算機工作的時候要不斷地和存儲器交換數據,因此存儲器的容量和讀寫速度對計算機整體性能影響非常大。存儲器的讀寫速度對計算機的性能的影響比較好理解,那麼存儲器的容量對計算機的性能會產生怎樣的影響呢?當存儲器容量比較大時,計算機運行所需要的程序和數據可以儘可能多的放在存儲器中,但存儲器容量比較小的時候,計算機所需要的數據和程序有的可能不在存儲器中,而在外部存儲設備如硬盤中,這時就需要將需要的程序和數據調入存儲器,不得已的時候還需要將原來存儲器中原有的內容保存到外部存儲設備中。存儲器的讀寫速度要遠大於外部存儲設備,所以足夠大的存儲器容量是計算機性能的保證。因此,現在無論是臺式機、筆記本電腦或者手機,大家都希望其存儲器越大越好。

1.存儲容量

存儲器的容量是指存儲器中能夠保存的二進制代碼的總位數。這樣可以來計算存儲器的容量:

存儲器容量=存儲單元數量*存儲字長

即這個存儲器包含多少個存儲單元,每個存儲單元可以保存多少個二進制位。存儲器地址寄存器MAR的位數和存儲器存儲單元的最大數量存在一定的關係。比如MAR的位數是16位,則最大存儲單元個數是爲2^16=65536個。而實際應用時,存儲單元的個數可能小於最大存儲單元個數。比如32位計算機系統的地址寄存器爲32位,它的尋址空間爲2^32=4G。但可能計算機中只裝了1G的內存條,存儲容量只有1GB。這裏B指的是Byte(字節)。一個字節是8個二進制位(bit),1GB=8Gb,即1GB的容量可以存儲1G個字節,8G個二進制位。

對於早期簡單的計算機來講,存儲器數據寄存器的位數等於存儲單元的位數,也就是存儲字長,也等於數據總線的寬度,這樣從一個存儲單元中取出的數據總線傳輸保存在MDR中。但現在的計算機存儲字長、MDR的位數以及數據總線的寬度變化比較多樣,但它們之間一般保持整數倍關係。

存儲器可以由多個存儲器芯片構成。每個存儲器芯片都有自己的容量,也具有之間的地址線引腳和數據線引腳。對於存儲器芯片來講,其內部存儲單元的個數和其地址引腳的個數(地址的位數)存在嚴格的關係:存儲單元的個數=2^地址的位數。但要注意的是,對於有的存儲器芯片,其地址要分兩次通過地址線引腳輸入,這時地址的位數就是這兩次輸入的地址位數的和。存儲器芯片的存儲單元的字長和數據線引腳的位數也存在嚴格的關係:存儲單元字長=數據線引腳個數。

一般可以這樣表示一個存儲器芯片的容量:1KB*8、2MB*4等。1KB*8意味着有1KB個存儲單元,每個存儲單元的位數是8位,即字長等於8,該芯片有10個地址位(2^10=1KB),數據線引腳的個數應該是8個。2MB*4意味着該芯片有2MB個存儲單元,每個存儲單元的位數是4位,即字長等於4,該芯片有21個地址位(2^20=1MB,2^21=2MB),數據線引腳的個數應該是4個。

2.讀寫速度

存儲器的讀寫速度可以用存取時間或者存取週期來表示。存取時間又稱存儲器的訪問時間,是指訪問一次存儲器所需的時間。存取時間分爲讀出時間和寫入時間,讀出時間是從存儲器接到有效地址開始到把數據有效輸出到數據總線整個過程所需的時間,寫入時間是從存儲器接受到有效地址開始到數據寫入指定的存儲單元爲止所需的時間。

另一個可以表示存儲器速度的指標是存取週期,它是指連續訪問存儲器時,兩次連續訪問存儲器時所需的最小時間間隔。如果連續地、大批量的從存儲器讀出或者向存儲器寫入數據,可以用存儲器的帶寬來表示存儲器的速度。存儲器的帶寬表示單位時間內(通常是1秒)存儲器存取的字節數或者位數。如果存儲器的存取週期是100ns,每個存取週期可以傳輸32位二進制數據,則該存儲器的帶寬爲(10^9/100)*4=40MBps。要想提高存儲器的帶寬可以有三種方法,一是縮短存取週期,二是增加一次存取的位數即存取的字長,三是採用多體並行的方法。必需要說明的是,存儲器的帶寬與存儲器的總線的帶寬要匹配。因爲存儲器存取的數據是通過總線來傳輸的,存儲器的帶寬與總線的帶寬必須匹配。

3.現代存儲器

現代存儲器(內存條)通常用這種方式來表示它的指標或者性能;4GB DDR3 1600.這表示該存儲器的容量是4GB。DDR3表示三次同步動態隨機存儲器,1600表示它的等效頻率爲1600MHz。下面是對現代存儲器發展的簡介。

SDRAM(Synchronous Dynamic Random Access Memory),稱爲同步動態隨機存儲器。正如它的名字所言,SDRAM和CPU同步運行,這使得內存控制器能夠掌握準備所要求的數據所需的準確時鐘週期,因此CPU從此不需要延後下一次的數據存取。SDRAM亦可稱爲SDR SDRAM在1個週期內只能讀寫1次,即在時鐘上升沿存取數據。PC100和PC133就是這個時期產品常見的規格。

DDR SDRAM(Double Data Rate SDRAM)稱爲雙通道同步動態隨機存儲器,它是相對SDR SDRAM而言的。SDR SDRAM單一週期內只能讀寫一次,只能在時鐘的上升沿存取數據,而DDR的雙倍數據傳輸率指的就是單一週期內可讀取或寫入2次,它的時鐘的上升沿和下降沿都可以存取數據,因此它的存取速度是SDR SDRAM的2倍。DDR 266、DDR 400都是這個時期的產品。

DDR2 SDRAM(Double Data Rate Two SDRAM),稱爲雙通道兩次同步動態隨機存儲器。DDR2採用數據預取技術,將存儲器的帶寬在DDR的基礎上又提高了一倍。這個時期常見的有DDR2 533、DDR2 800等內存規格。

DDR3 SDRAM(Double Data Rate Three SDRAM)稱爲雙通道三次同步動態隨機存儲器。DDR3的預取技術比DDR2又提升了一倍,DDR3的規格要求將電壓控制在1.5V,較DDR2的1.8V更爲省電。DDR3 1333 和DDR3 1600是這個時期典型的產品,也是目前主流的產品。

DDR4 SDRAM(Double Data Rate Fourth SDRAM)。DDR4提供比DDR3/DDR2更低的供電電壓以及更高的帶寬,目前有的手機開始嘗試這種存儲器,只不過手機上用的是低功耗的,稱爲LPDDR4(Low Power DDR4),在臺式機中DDR4用的更少,但它是未來存儲器發展的方向。

緩存容量

隨着技術的進步,CPU的性能和存儲器的性能都在提升,但存儲器性能提升的速度遠遠趕不上CPU性能提升的速度。雖然存儲器經歷了DDR、DDR2、DDR3甚至DDR4這樣的發展,但是其與CPU的發展速度上的差距還在拉大,爲了解決CPU和存儲器速度不匹配的問題,在CPU和存儲器之間引入了緩存。緩存的讀寫速度比存儲器(主存)快很多,可以把CPU最近經常訪問的數據從主存暫時放到緩存裏面,這樣可以減少訪存的時間,提升計算機整體的性能。緩存的容量越大,當然對計算機性能提升的幫組越大,但其成本也會升高。爲了進一步提升性能,緩存的級數也在增加。由原來一級緩存擴展到二級、三級緩存。原來緩存是在CPU外的,現在隨着芯片集成度的提高,逐漸把緩存集成在CPU內部。到現在爲止,CPU上可以集成三級緩存。比如Intel的CPU i7 4790K的三級緩存爲8MB,AMD的CPU AMD A8-7650K的三級緩存爲4MB。

輸入/輸出傳輸速率

計算機還需要和外設如硬盤、打印機等交換數據,因此計算機和外設通信時的輸入輸出數據傳輸速率也是計算機性能的一部分。我們以硬盤爲例,目前主流的硬盤如西部數據的一款硬盤性能爲1TB SATA3 64M。說明這個硬盤的容量爲1TB(1000GB),總線接口爲SATA3型接口,緩存爲64MB,轉速爲7200轉/分鐘,它的傳輸速率可以達到150MB/s左右。固態硬盤的傳輸速率可以達到500MB/s左右,是未來大容量存儲設備的發展方向。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章