建網(wǎng)站的要求寧波優(yōu)化關(guān)鍵詞首頁排名
概述
今天是9月28日,距離軟考高級(jí)只剩37天,加油!
概念
三種周期:
- Clock Cycle:時(shí)鐘周期,CPU主頻,又稱為時(shí)鐘頻率,時(shí)鐘周期是時(shí)鐘頻率的倒數(shù)
- Instruction Cycle:指令周期,取出并執(zhí)行一條指令的時(shí)間
- BUS Cycle:總線周期,也就是一個(gè)訪存儲(chǔ)器或I/O端口糧作所用的時(shí)間
三者關(guān)系:一個(gè)指令周期由若干個(gè)總線周期組成,一個(gè)總線周期時(shí)間又包含有若干個(gè)時(shí)鐘周期。
主頻為1GHz,則說明1秒鐘有1G個(gè)時(shí)鐘周期,每個(gè)時(shí)鐘周期為1000*1000*1000/1G=1ns
。
吞吐率
吞吐率指的是單位時(shí)間內(nèi)完成的任務(wù)數(shù),常用表示方式有MIPS和MFLOPS:
- MIPS:Million Instructions Per Second,每秒處理的百萬級(jí)的機(jī)器語言指令數(shù),主要用于衡量標(biāo)量機(jī)性能
- MFLOPS:Million Floating-point Operations Per Second,每秒百萬個(gè)浮點(diǎn)操作,不能反映整體情況,只能反映浮點(diǎn)運(yùn)算情況,主要用于衡量向量機(jī)性能。
完成一個(gè)指令需要5個(gè)機(jī)器周期,一個(gè)機(jī)器周期為3微秒(μs),則MIPS=1/15=0.067
。
1秒=1000毫秒(ms)=1000000微秒(μs)=1000000000納秒(ns)
編碼及浮點(diǎn)數(shù)
原碼、反碼、補(bǔ)碼
原碼:為二進(jìn)制的數(shù),如十進(jìn)制數(shù)字10的原碼為0000 1010
反碼:正數(shù)與原碼相同,如:十進(jìn)制數(shù)字10的反碼0000 1010
,負(fù)數(shù)為原碼0變1,1變0,符號(hào)位不變。如:十進(jìn)制數(shù)字-10
,原碼1000 1010
,反碼1111 0101
補(bǔ)碼:正數(shù)的補(bǔ)碼與原碼相同,如10的補(bǔ)碼為:0000 1010
。負(fù)數(shù)的反碼為補(bǔ)碼減1,如-10
的反碼:1111 0101
,補(bǔ)碼:1111 0110
計(jì)算機(jī)中數(shù)字以補(bǔ)碼儲(chǔ)存,因?yàn)樵a和反碼計(jì)算不準(zhǔn)確,而補(bǔ)碼是準(zhǔn)確的,補(bǔ)碼可以直接處理正負(fù)數(shù)的加減。
浮點(diǎn)數(shù)
科學(xué)計(jì)數(shù)法:N=尾數(shù)*基數(shù)(的指數(shù))
- 浮點(diǎn)數(shù)各部分表示意義:
N = 尾數(shù)*基數(shù)指數(shù)
- 一般尾數(shù)用補(bǔ)碼,階碼用移碼;
- 階碼的位數(shù)決定數(shù)的表示范圍,位數(shù)越多范圍越大;
- 尾數(shù)的位數(shù)決定數(shù)的有效精度,位數(shù)越多精度越高。
浮點(diǎn)數(shù)所能表示的數(shù)值范圍如下:最大的正數(shù)
- 浮點(diǎn)數(shù)運(yùn)算規(guī)則:
對(duì)階 > 尾數(shù)計(jì)算 > 結(jié)果格式化
- 對(duì)階時(shí),小數(shù)向大數(shù)看齊;
- 對(duì)階是通過較小數(shù)的尾數(shù)右移實(shí)現(xiàn)的。
流水線
流水線是指在程序執(zhí)行時(shí)多條指令重疊進(jìn)行操作的一種準(zhǔn)并行處理實(shí)現(xiàn)技術(shù)。各種部件同時(shí)處理是針對(duì)不同指令而言的,它們可同時(shí)為多條指令的不同部分進(jìn)行工作,以提高各部件的利用率和指令的平均執(zhí)行速度。
流水線的思想:在CPU中把一條指令的串行執(zhí)行過程變?yōu)槿舾芍噶畹淖舆^程在CPU中重疊執(zhí)行。
并行包括同時(shí)性與并發(fā)性兩種含義,同時(shí)性指兩個(gè)或兩個(gè)以上的事件在同一時(shí)刻發(fā)生,并發(fā)性指的是兩個(gè)或兩個(gè)以上的事件在同一時(shí)間間隔發(fā)生。
流水線建立時(shí)間:1條指令執(zhí)行時(shí)間。
流水線周期:執(zhí)行時(shí)間最長(zhǎng)的一段
一條指令的執(zhí)行過程可以分3個(gè)階段:
- 取指:按照指令計(jì)數(shù)器的內(nèi)容訪問主存儲(chǔ)器,取出一條指令送到指令寄存器。
- 分析:對(duì)指令操作碼部分進(jìn)行譯碼,按照給定的尋址方式和地址字段中的內(nèi)容形成操作數(shù)地址,并用這個(gè)地址讀取操作數(shù)。
- 執(zhí)行:把運(yùn)算結(jié)果寫到通用寄存器或主存中。
順序執(zhí)行的過程:取址 -> 分析 -> 執(zhí)行
使用流水線執(zhí)行過程:
相關(guān)考點(diǎn):
流水線執(zhí)行時(shí)間(理論公式):(t1+t2+..+tk)+(n-1)*?t
流水線執(zhí)行時(shí)間(實(shí)踐公式):k*?t+(n-1)*?t
流水線吞吐率:吞吐率TP=指令數(shù)/執(zhí)行時(shí)間
流水線最大吞吐率:
流水線加速比:順序執(zhí)行時(shí)間/流水線執(zhí)行時(shí)間
開機(jī)過程
BIOS引導(dǎo)程序是固化在ROM芯片上的,每當(dāng)開機(jī)時(shí)自動(dòng)執(zhí)行BIOS引導(dǎo)程序。主要執(zhí)行如下任務(wù):
- 標(biāo)識(shí)和配置所有的即插即用設(shè)備。如果系統(tǒng)有即插即用設(shè)備的BIOS,系統(tǒng)將搜索和測(cè)試所有安裝的即插即用設(shè)備,并為它們分配DMA通道、IRQ及它們需要的其他設(shè)備
- 完成加電自檢(POST)。加電自檢主要檢測(cè)和測(cè)試內(nèi)存、端口、鍵盤、視頻適配器、磁盤驅(qū)動(dòng)器等基本設(shè)備。有一些新版本的系統(tǒng)還支持CD-ROM驅(qū)動(dòng)器
- 對(duì)引導(dǎo)驅(qū)動(dòng)器可引導(dǎo)分區(qū)定位。在CMOS中,用戶可以設(shè)置系統(tǒng)的引導(dǎo)順序,以便對(duì)引導(dǎo)驅(qū)動(dòng)器的可引導(dǎo)分區(qū)重新定位。大多數(shù)系統(tǒng)的引導(dǎo)順序是軟件驅(qū)動(dòng),然后是硬件驅(qū)動(dòng),其次是CD-ROM驅(qū)動(dòng)器
- 加載主引導(dǎo)記錄及引導(dǎo)驅(qū)動(dòng)器的分區(qū)表,執(zhí)行主引導(dǎo)記錄MBR。主引導(dǎo)記錄在硬盤上找到可引導(dǎo)分區(qū)后,將其分區(qū)引導(dǎo)記錄裝入內(nèi)存,并將控制權(quán)交給分區(qū)引導(dǎo)記錄。由分區(qū)引導(dǎo)記錄定位根目錄,再裝入操作系統(tǒng)。
Cache
Cache的功能全部由硬件實(shí)現(xiàn)。提高CPU數(shù)據(jù)輸入輸出的速率,突破馮·諾依曼瓶頸,即CPU與存儲(chǔ)系統(tǒng)間數(shù)據(jù)傳送帶寬限制。在計(jì)算機(jī)的存儲(chǔ)系統(tǒng)體系中,Cache是訪問速度最快的層次。使用Cache改善系統(tǒng)性能的依據(jù)是程序的局部性原理。
- 時(shí)間局部性:如果一個(gè)信息項(xiàng)正在被訪問,那么在近期很可能還會(huì)被再次訪問。程序的循環(huán),堆棧等是產(chǎn)生時(shí)間局部性的原因;
- 空間局部性:指一旦程序訪問某個(gè)存儲(chǔ)單元,不久以后,其附近的存儲(chǔ)單元也將被訪問,即程序在一段時(shí)間內(nèi)所訪問的地址可能集中在一定的范圍內(nèi),其典型情況是程序順序執(zhí)行。
工作集理論:工作集是進(jìn)程運(yùn)行時(shí)被頻繁訪問的頁面合集
工作原理:依據(jù)局部性原理,把主存儲(chǔ)器中訪問概率高的內(nèi)容存放在cache中。當(dāng)CPU需要讀取數(shù)據(jù)時(shí),首先在cache中查找是否有所需內(nèi)容,如果有,則直接從cache中讀取;若沒有,再從主存中讀取該數(shù)據(jù),然后同時(shí)送往CPU和cache。
如果CPU需要訪問的內(nèi)容大多能在cache中找到(訪問命中),則可以大大提高系統(tǒng)性能。CPU發(fā)出訪存請(qǐng)求后,存儲(chǔ)器地址先被送到cache控制器以確定所需數(shù)據(jù)是否已在cache中,若命中則直接對(duì)cache進(jìn)行訪問,該過程稱為cache的地址映射。常見的映射方法有直接映射、相聯(lián)映射和組相聯(lián)映射:
- 直接相聯(lián)映像:Direct Mapping,硬件電路較簡(jiǎn)單,但沖突率很高
- 全相聯(lián)映像:Fully Associative Mapping,電路難于設(shè)計(jì)和實(shí)現(xiàn),只適用于小容量的cache,沖突率較低
- 組相聯(lián)映像:n路組相聯(lián)映射,N-ways Set-Associative Mapping,直接相聯(lián)與全相聯(lián)的折中
Cache中數(shù)據(jù)裝滿后必須淘汰現(xiàn)有數(shù)據(jù),裝入新數(shù)據(jù),淘汰算法有:隨機(jī)淘汰法、先進(jìn)先出法FIFO、近期最少使用淘汰法LRU。LRU平均命中率最高。
Cache寫數(shù)據(jù)常用方法包含以下幾類:
- 寫直達(dá):當(dāng)要寫cache時(shí),數(shù)據(jù)同時(shí)寫回主存儲(chǔ)器,也稱寫通、貫穿
- 寫回:CPU修改cache的某一行后,相應(yīng)數(shù)據(jù)不立即寫入主存,而在該行被從cache中淘汰時(shí),才把數(shù)據(jù)寫回主存儲(chǔ)器中。
- 標(biāo)記法:對(duì)cache中的每個(gè)數(shù)據(jù)設(shè)置一個(gè)有效位。當(dāng)數(shù)據(jù)進(jìn)入cache后,有效位置1,當(dāng)CPU要對(duì)該數(shù)據(jù)進(jìn)行修改時(shí),只需將其寫入主存儲(chǔ)器,并將該位清0。當(dāng)要從cache中讀取數(shù)據(jù)時(shí),需要測(cè)試其有效位:若為1則從cache中取,否則從主存中取。
校驗(yàn)碼
校驗(yàn)碼通常是一組數(shù)字的最后一位,由前面的數(shù)字通過某種運(yùn)算得出,用以檢驗(yàn)該組數(shù)字的正確性。
常見的校驗(yàn)碼有:中華人民共和國(guó)居民身份證的最后一位、ISBN號(hào)碼的最后一位、組織機(jī)構(gòu)代碼的最后一位、數(shù)據(jù)傳輸?shù)恼_性驗(yàn)證碼等。
代碼作為數(shù)據(jù)在向計(jì)算機(jī)或其它設(shè)備進(jìn)行輸入時(shí),容易產(chǎn)生輸入錯(cuò)誤,為減少輸入錯(cuò)誤,編碼專家發(fā)明各種校驗(yàn)檢錯(cuò)方法,并依據(jù)這些方法設(shè)置校驗(yàn)碼。
奇偶校驗(yàn):只檢奇數(shù)位錯(cuò),不能糾錯(cuò)。
循環(huán)校驗(yàn)碼CRC:可查錯(cuò),不可糾錯(cuò),運(yùn)用模二除法計(jì)算校驗(yàn)碼。
海明校驗(yàn):可查錯(cuò),可糾錯(cuò);海明校驗(yàn)碼校驗(yàn)位計(jì)算:2r>=r+m-1
。
性能評(píng)估
性能指標(biāo)
計(jì)算機(jī)系統(tǒng)的性能一般包括兩個(gè)大的方面:
- 可用性,也就是計(jì)算機(jī)系統(tǒng)能正常工作的時(shí)間,其指標(biāo)可以是能夠持續(xù)工作的時(shí)間長(zhǎng)度,也可以是在一段時(shí)間內(nèi),能正常工作的時(shí)間所占的百分比
- 處理能力,可分為三類指標(biāo):吞吐率、響應(yīng)時(shí)間、資源利用率,即在給定時(shí)間區(qū)間中,各種部件被使用的時(shí)間與整個(gè)時(shí)間之比。
通常,計(jì)算機(jī)系統(tǒng)的可用性可從故障率(Failurerate)、健壯性(Robustness)和可恢復(fù)性(Recoverability)三個(gè)方面來進(jìn)行評(píng)測(cè):
- 故障率是指在給定的時(shí)間里,系統(tǒng)故障和維護(hù)事件出現(xiàn)的次數(shù)
- 健壯性是指系統(tǒng)檢測(cè)和處理故障的能力,以及系統(tǒng)在各種故障情況下仍然具有的工作能力
- 可恢復(fù)性是指系統(tǒng)從故障狀態(tài)恢復(fù)到正常狀態(tài)的能力。
計(jì)算機(jī)應(yīng)用系統(tǒng)的可移植性對(duì)推廣應(yīng)用來說是重要的,但對(duì)于使用單一系統(tǒng)的多數(shù)用戶而言,可用性指標(biāo)主要包括故障率、健壯性和可恢復(fù)性。
另外,不同計(jì)算機(jī)(系統(tǒng)、模塊)的性能指標(biāo)也是不盡相同,重在理解:
- 計(jì)算機(jī):時(shí)鐘頻率(主頻)、高速緩存、運(yùn)算速度、運(yùn)算精度、內(nèi)存的存儲(chǔ)容量、存儲(chǔ)器的存取周期、數(shù)據(jù)處理速率、響應(yīng)時(shí)間、RASIS特性、平均故障響應(yīng)時(shí)間、兼容性
- 網(wǎng)絡(luò):設(shè)備級(jí)、網(wǎng)絡(luò)級(jí)、應(yīng)用級(jí)、用戶級(jí)、吞吐量
- 操作系統(tǒng):系統(tǒng)的可靠性、系統(tǒng)的吞吐量、系統(tǒng)響應(yīng)時(shí)間、系統(tǒng)資源利用率、可移植性
- 數(shù)據(jù)庫:數(shù)據(jù)庫描述功能、管理功能、查詢和操縱功能、維護(hù)功能、
- web服務(wù)器:括最大并發(fā)連接數(shù)、響應(yīng)延遲、吞吐量(每秒處理的請(qǐng)求數(shù))、成功請(qǐng)求數(shù)、失敗請(qǐng)求數(shù)、每秒點(diǎn)擊次數(shù)、每秒成功點(diǎn)擊次數(shù)、每秒失敗點(diǎn)擊次數(shù)、嘗試連接數(shù)、用戶連接
性能評(píng)估
計(jì)算機(jī)性能評(píng)估(評(píng)價(jià))方法基本上分為兩大類,測(cè)量方法和模型方法
- 測(cè)量方法:通過一定的測(cè)量設(shè)備或測(cè)量程序,可以直接從系統(tǒng)中測(cè)得各項(xiàng)性能指標(biāo)或與之密切的相關(guān)度量,然后由它們經(jīng)過一些簡(jiǎn)單的運(yùn)算,求出相應(yīng)的性能指標(biāo)。
- 模型方法:其基本思想是,首先對(duì)要評(píng)估的系統(tǒng)建立適當(dāng)模型,然后求出模型的性能指標(biāo),以便對(duì)系統(tǒng)進(jìn)行性能評(píng)估。
測(cè)量方法中經(jīng)典的性能評(píng)估方法:
- 時(shí)鐘頻率法:計(jì)算機(jī)的時(shí)鐘頻率在一定程度上反映機(jī)器速度,對(duì)于同一種機(jī)型的計(jì)算機(jī),時(shí)鐘頻率越高,計(jì)算機(jī)的速度就越快,但是不同體系結(jié)構(gòu)的計(jì)算機(jī),相同頻率下,其速度和性能可能會(huì)差別很大。
- 指令執(zhí)行速度法:計(jì)算機(jī)發(fā)展中,由于加法的指令速度大體上可反映出乘法、除法等其他算術(shù)運(yùn)算的速度,而邏輯運(yùn)算、轉(zhuǎn)移指令等簡(jiǎn)單指令的執(zhí)行時(shí)間往往設(shè)計(jì)成與加法指令相同,因此可以采用加法指令的運(yùn)算速度來衡量計(jì)算機(jī)的速度。常用MIPS評(píng)估系統(tǒng)性能。
- 等效指令速度法:也稱為吉普森或混合比例計(jì)算法,是通過各類指令在程序中所占比例進(jìn)行計(jì)算后得到的計(jì)算機(jī)運(yùn)算速度。需要計(jì)算各類指令在程序中所占的比例。
- 數(shù)據(jù)處理速率法:Processing Data Rate,PDR,采用計(jì)算PDR值的方法來衡量機(jī)器性能,PDR值越大,機(jī)器性能越好。PDR與每條指令和每個(gè)操作數(shù)的平均位數(shù)以及每條指令的平均運(yùn)算速度有關(guān)。PDR主要對(duì)CPU和主存儲(chǔ)器的速度進(jìn)行度量,不適合衡量機(jī)器的整體速度,不能全面反映計(jì)算機(jī)的性能,因?yàn)樗鼪]有涉及Cache、多功能部件等技術(shù)對(duì)性能的影響。
- 綜合理論性能法:CPT,該方法是首先計(jì)算出處理部件每個(gè)計(jì)算單元的有效計(jì)算率,再按不同字長(zhǎng)加以調(diào)整,得出該計(jì)算單元的理論性能,所有組成該處理部件的計(jì)算單元的理論性能之和即為最終的計(jì)算機(jī)性能。采用每秒百萬次理論運(yùn)算(MTOPS)評(píng)估系統(tǒng)性能。
- 基準(zhǔn)程序法:把應(yīng)用程序中用得最多、最頻繁的那部分核心程序作為評(píng)估計(jì)算機(jī)系統(tǒng)性能的標(biāo)準(zhǔn)程序,稱為基準(zhǔn)測(cè)試程序(benchmark)?;鶞?zhǔn)程序法是目前一致承認(rèn)的測(cè)試系統(tǒng)性能的較好方法。考慮諸如IVO結(jié)構(gòu)、操作系統(tǒng)、編譯程序的效率對(duì)系統(tǒng)性能的影響,
另有一說,對(duì)計(jì)算機(jī)系統(tǒng)的性能進(jìn)行評(píng)價(jià)的方法主要有三種:
- 測(cè)量方法:主要是通過采用各種性能數(shù)據(jù)獲取方法和運(yùn)行各種不同類型的基準(zhǔn)測(cè)試程序或工具來測(cè)量目標(biāo)系統(tǒng)的性能情況
- 分析方法:通過為計(jì)算機(jī)系統(tǒng)建立一種數(shù)學(xué)模型,進(jìn)而在給定輸入條件下通過計(jì)算來獲取目標(biāo)系統(tǒng)的性能情況
- 模擬方法:通過構(gòu)造系統(tǒng)模型和工作負(fù)載模型來近似模仿目標(biāo)系統(tǒng),以了解系統(tǒng)的特性
基準(zhǔn)程序法
大多數(shù)情況下,為測(cè)試新系統(tǒng)的性能,用戶必須依靠評(píng)價(jià)程序來評(píng)價(jià)機(jī)器的性能。把應(yīng)用程序用的最多、最頻繁的那部分核心程序作為評(píng)價(jià)計(jì)算機(jī)性能的標(biāo)準(zhǔn)程序,稱為基準(zhǔn)測(cè)試程序(benchmark)。
真實(shí)程序、核心程序、小型基準(zhǔn)程序和合成基準(zhǔn)程序,其評(píng)測(cè)的準(zhǔn)確程度依次遞減。
事務(wù)處理性能委員會(huì)(Transaction Processing Performance Council,TPC)是制定商務(wù)應(yīng)用基準(zhǔn)程序標(biāo)準(zhǔn)規(guī)范、性能和價(jià)格度量,并管理測(cè)試結(jié)果發(fā)布的非營(yíng)利組織,其發(fā)布的TPC-C是在線事務(wù)處理的基準(zhǔn)程序,TPC-D是決策支持的基準(zhǔn)程序。
Web服務(wù)器性能指標(biāo)主要有請(qǐng)求響應(yīng)時(shí)間、事務(wù)響應(yīng)時(shí)間、并發(fā)用戶數(shù)、吞吐量、資源利用率、每秒鐘系統(tǒng)能夠處理的交易或者事務(wù)的數(shù)量等。
基準(zhǔn)程序法主要針對(duì)CPU(有時(shí)包括主存)的性能,通常也會(huì)考慮I/O結(jié)構(gòu)、操作系統(tǒng)、編譯程序的效率等對(duì)系統(tǒng)性能的影響。
計(jì)算機(jī)系統(tǒng)的性能指標(biāo)是一些精度較高的數(shù)據(jù),用戶調(diào)查問卷或?qū)<倚〗M法只能取得一些大致的、輪廓性的數(shù)據(jù)。多數(shù)用戶并沒有使用多種計(jì)算機(jī)系統(tǒng),難以進(jìn)行比較,所以計(jì)算機(jī)系統(tǒng)性能指標(biāo)的評(píng)價(jià)一般不通過用戶調(diào)查法來確定。
阿姆達(dá)爾定律
Gene Amdahl定律:提升一個(gè)系統(tǒng)的一個(gè)部分的性能對(duì)整個(gè)系統(tǒng)有多大影響。這里的系統(tǒng),可指計(jì)算機(jī)系統(tǒng)或別的什么系統(tǒng)。
當(dāng)提升系統(tǒng)的一部分性能時(shí),對(duì)整個(gè)系統(tǒng)性能的影響取決于:
- 這一部分有多重要
- 這一部分性能提升多少
計(jì)算方法: