這一章的考點主要是集中在計算機的效能指標,前面部分的發展歷程也是簡單的考察點,計算機的層次結構的概念要記清楚,在後面的章節中會詳細講解一部分的知識,所以對於一些概念無需深究,等學完所有的知識後再來看第一章,就會明白很多。
馮諾依曼體系結構
要求:理解概念
摩爾定律是由英特爾(Intel)創始人之一戈登·摩爾(Gordon Moore)提出來的。其內容爲:當價格不變時,積體電路上可容納的元器件的數目,約每隔18-24個月便會增加一倍,效能也將提升一倍。換言之,每一美元所能買到的電腦效能,將每隔18-24個月翻一倍以上。這一定律揭示了資訊技術進步的速度 [1] 。儘管這種趨勢已經持續了超過半個世紀,摩爾定律仍應該被認爲是觀測或推測,而不是一個物理或自然法。
計算機系統由軟體和硬體兩部分組成(不需要背過,但要有概念)
硬體
硬體系統主要由中央處理器、記憶體、輸入輸出控制系統和各種外部裝置組成。中央處理器是對資訊進行高速運算處理的主要部件,其處理速度可達每秒幾億次以上操作。記憶體用於儲存程序、數據和檔案,常由快速的記憶體儲器(容量可達數百兆位元組,甚至數G位元組)和慢速海量外記憶體(容量可達數十G或數百G以上)組成。各種輸入輸出外部裝置是人機間的資訊轉換器,由輸入-輸出控制系統管理外部裝置與主記憶體儲器(中央處理器)之間的資訊交換。
軟體
軟體分爲系統軟體、支撐軟體和應用軟體。系統軟體由操作系統、實用程式、編譯程式等組成。操作系統實施對各種軟硬體資源的管理控制。實用程式是爲方便使用者所設,如文字編輯等。編譯程式的功能是把使用者用匯編語言或某種高階語言所編寫的程式,翻譯成機器可執行的機器語言程式。支撐軟體有介面軟體、工具軟體、環境數據庫等,它能支援用機的環境,提供軟體研製工具。支撐軟體也可認爲是系統軟體的一部分。應用軟體是使用者按其需要自行編寫的專用程式,它藉助系統軟體和支援軟體來執行,是軟件系統的最外層。
軟體和硬體在邏輯上是等效的
對於某一功能來說,實現方式可以通過軟體也可以通過硬體實現,則稱爲軟硬體在邏輯上是等效的。
一般一個功能的實現使用硬體會有效率高優點,但是也有成本高的缺點。而使用軟體時,可以調高其靈活性,但效率不如硬體。
即軟體和硬體在邏輯功能上是等效的。但是,軟體和硬體在效能和成本上是不等效的。
例:
計算機系統中軟硬體在邏輯上是等效的,提高軟體功能實現的比例將會( B )
A. 提高解題速度
B. 提高系統靈活性
C. 增加成本
D. 減少所需儲存容量
以下說法中,不正確的是:軟硬體功能是等效的,提高硬體功能的比例會( B )
A . 提高解題速度
B . 提高硬體利用率
C . 提高硬體成本
D . 減少所需要的儲存容量
計算機硬體主要由記憶體、運算器、控制器、輸入裝置和輸出裝置(I/O裝置)組成。
其中ALU+CU=CPU ,CPU+主記憶體=電腦主機 I/O裝置又稱作外部裝置。
其中名詞:
簡稱 | 全稱 | 中文 |
---|---|---|
CPU | Central Processing Unit | 中央處理器,中央處理機,中央處理單元 |
ALU | Aritmetic Logical Unit | 算術邏輯單元,運算器,算術邏輯部件; |
CU | Control Unit | 控制單元,控制器 |
I/O | Input/Output | 輸入/輸出 |
注意:儲存一般是口語中的用詞,考試的時候儘量一定寫儲存器。(中文20級學者,手動狗頭)
後面有專門的章節講這部分文章,現在不用慌
記憶體分爲主記憶體和輔存,CPU能夠直接存取主記憶體,但是不能直接存取輔存,輔存數據需要先調入主記憶體後才能 纔能別CPU存取。
主記憶體的作用:主記憶體是存放程式和數據的部件,它是計算機實現「儲存程序控制」的基礎
概念 | 說明 |
---|---|
儲存元 | 記憶體的最小儲存單位,它的作用是用來存放一位二進制程式碼0或1 |
儲存單元 | 一個記憶體由多個儲存單元組成 ,能夠儲存多位二進制資訊 |
儲存體 | 許多儲存單元可組成儲存體 (U盤、硬碟可理解爲儲存體) |
儲存字 | 儲存字是指存放在一個儲存單元中的二進制程式碼組合,可以代表數據,指令,地址等 |
儲存字長 | 每個儲存單元中的二進制程式碼的位數就是儲存字長 |
解題方式爲博主原創,可以自行使用,凡是以文章和視訊等媒體方式發佈時,請註明來源,抄襲必究。
考察方式一:
我們在這給出公式化的解題步驟
已知計算機的字長爲32位元,記憶體的容量爲1MB,如果按照一下定址方式,定址範圍是多少?
2.半字
套用解題步驟:
1. 總容量:1MB=1MX8Bit=8MBit
2. 半字定址,半個字的容量:1/232Bit=16Bit
3. 坐商:8MBit/16Bit= 512K
3.字
1. 總容量:1MB=1MX8Bit=8MBit
2. 字定址,一個字的容量: 32Bit
3. 坐商:8MBit/32Bit= 256K
4.雙字
套用解題步驟:
1. 總容量:1MB=1MX8Bit=8MBit
2. 兩字定址,兩個字的容量:232Bit=64Bit
3. 坐商:8MBit/64Bit=128K
考察方式二:
我們在這給出公式化的解題步驟
若CPU有20根地址線,和32根數據線,請問按位元組和字定址的定址範圍?
套用解題步驟:
難理解的是步驟二,因爲不知道爲什麼20根地址線的記憶體容量是1MB,這跟記憶體的構造有關,但是這部分內容就考察這麼多,不建議大家過多瞭解。
大部分ALU都可以完成以下運算∶
整數算術運算(加、減,有時還包括乘和除,不過成本較高)
位邏輯運算(與、或、非、互斥或)
移位運算(將一個字向左或向右移位或浮動特定位,而無符號延伸),移位可被認爲是乘以2或除以2。
控制器是指揮計算機的各個部件按照指令的功能要求協調工作的部件,是計算機的神經中樞和指揮中心,由指令暫存器IR(InstructionRegister)、程式計數器PC(ProgramCounter)和操作控制器0C(OperationController)三個部件組成,對協調整個電腦有序工作極爲重要。
計算機軟體總體分爲系統軟體和應用軟體兩大類:
是各類操作系統,如windows、Linux、UNIX等,編譯程式Java、 C#、等,還包括操作系統的修補程式程式及硬體驅動程式,都是系統軟體類
系統軟體是負責管理計算機系統中各種獨立的硬體,使得它們可以協調工作。系統軟體使得計算機使用者和其他軟體將計算機當作一個整體而不需要顧及到底層每個硬體是如何工作的。
可以細分的種類就更多了,如工具軟體、遊戲軟體、管理軟體等都屬於應用軟體類。
應用軟體是爲了某種特定的用途而被開發的軟體。它可以是一個特定的程式,比如一個影象瀏覽器。也可以是一組功能聯繫緊密,可以互相共同作業的程式的集合,比如微軟的Office軟體。也可以是一個由衆多獨立程式組成的龐大的軟件系統,比如數據庫管理系統。
機器語言
這種語言主要是利用二進制編碼進行指令的發送,能夠被計算機快速地識別,其靈活性相對較高,且執行速度較爲可觀,這要求程式設計師在卡法程式時,記清楚每條指令的2進位制程式碼,程式碼長度甚至幾十位。
彙編語言
該語言主要是以縮寫英文作爲標符進行編寫的,運用匯編語言進行編寫的一般都是較爲簡練的小程式,其在執行方面較爲便利,但彙編語言在程式方面較爲冗長,所以具有較高的出錯率。
高階語言
所謂的高階語言,其實是由多種程式語言結合之後的總稱,其可以對多條指令進行整合,將其變爲單條指令完成輸送,其在操作細節指令以及中間過程等方面都得到了適當的簡化,所以,整個程式更爲簡便,具有較強的操作性,而這種編碼方式的簡化,使得計算機程式設計對於相關工作人員的專業水平要求不斷放寬
翻譯程式是指把高階語言源程式翻譯成機器語言源程式(目的碼)的軟體。
翻譯程式有兩種:一種是編譯程式,它將高階語言源程式一次性全部翻譯成目標程式,每次執行程式時,只要執行目標程式。另一種是解釋程式,它的執行過程是翻譯一句執行一句,並且不會生成目標程式。
編譯程式是先完整編譯後執行的程式,如C、C++等;解釋程式是一句一句翻譯且邊翻譯邊執行的程式,如JavaScript、Python等。附C語言編譯鏈接過程:
彙編程式也是一種語言翻譯程式,它把彙編語言源程式翻譯成機器語言程式。
編譯程式與彙編程式的區別:如果源語言是諸如C、C++、Java等「高階語言」,而目標語言是諸如彙編語言或機器語言之類的「低階語言」,這樣的一個翻譯程式稱爲編譯程式。如果源語言是彙編語言,而目標語言是機器語言,這樣的一個翻譯程式稱爲彙編程式。
參照博主CMTSA 地址:https://blog.csdn.net/IWGoo/article/details/85528562
計算機在執行時,不斷的執行:
先從記憶體中取出第一條指令,通過控制器的譯碼,按指令的要求,從記憶體中取出數據進行指定的運算和邏輯操作等加工,然後再按地址把結果送到記憶體中去。接下來,再取出第二條指令,在控制器的指揮下各部件完成各種操作。
一直進行下去。直至遇到停止指令
部分資料又說5個層次,又說6個層次,有說7各層次的,我們都來說一下。
M0硬聯邏輯級
第零級是硬聯邏輯級,這是計算機的內核,由門,觸發器等邏輯電路組成。
M1微程式級
第一級是微程式級。這級的機器語言是微指令集,程式設計師用微指令編寫的微程式,一般是直接由硬體執行的。
M2傳統機器級
第二級是傳統機器級,這級的機器語言是該機的指令集,程式設計師用機器指令編寫的程式可以由微程式進行解釋。
M3操作系統級
第三級是操作系統級,從操作系統的基本功能來看,一方面它要直接管理傳統機器中的軟硬體資源,另一方面它又是傳統機器的延伸。
M4彙編語言級
第四級是彙編語言級,這級的機器語言是彙編語言,完成彙編語言翻譯的程式叫做彙編程式。 [1]
M5高階語言級
第五級是高階語言級,這級的機器語言就是各種高階語言,通常用編譯程式來完成高階語言翻譯的工作。
M6應用語言級
第六級是應用語言級,
這一級是爲了使計算機滿足某種用途而專門設計的,因此這一級語言就是各種面向問題的應用語言。
把計算機系統按功能分爲多級層次結構,就是有利於正確理解計算機系統的工作過程,明確軟體,硬體在計算機系統中的地位和作用。
CPU:吞吐量,響應時間,CPU時鐘週期,主頻,CPI,CPU執行時間,MIPS,MFLOPS,GFLOPS,TFLOPS,PFLOPS,利用率,處理機字長;
其他:匯流排寬度。
一個系統的吞度量(承壓能力)與一個請求request對CPU的消耗、外部介面、IO等密切關聯。單個reqeust 對CPU消耗越高,外部系統介面、IO影響速度越慢,系統吞吐能力越低,反之越高。
一般系統吞吐量由幾個重要關鍵要素組成:
QPS: Queries Per Second 每秒內的查詢率。它是指一臺伺服器每秒能夠相應的查詢次數,是對一個特定的查詢伺服器在規定時間內所處理流量多少的衡量標準。QPS統計方式,一般使用http_load 進行統計。
TPS: TransactionsPerSecond 每秒內的事務數。一個事務是指一個客戶機向伺服器發送請求然後等待伺服器做出反應的過程。客戶機在發送請求時開始計時,收到伺服器響應後結束計時,以此來計算使用的時間和完成的事務個數,客戶機使用加權協函數平均方法來計算得分,最終利用這些資訊得出伺服器端的整體TPS得分。
併發數: 系統同時處理的request/事務數。
響應時間: 系統平均響應時間。
計算關係
QPS = 併發量 / 平均響應時間
併發量 = QPS * 平均響應時間
響應時間是指系統對請求作出響應的時間。直觀上看,這個指標與人對軟體效能的主觀感受是非常一致的,因爲它完整地記錄了整個計算機系統處理請求的時間。由於一個系統通常會提供許多功能,而不同功能的處理邏輯也千差萬別,因而不同功能的響應時間也不盡相同,甚至同一功能在不同輸入數據的情況下響應時間也不相同。所以,在討論一個系統的響應時間時,人們通常是指該系統所有功能的平均時間或者所有功能的最大響應時間。當然,往往也需要對每個或每組功能討論其平均響應時間和最大響應時間。
對於單機的沒有併發操作的應用系統而言,人們普遍認爲響應時間是一個合理且準確的效能指標。需要指出的是,響應時間的絕對值並不能直接反映軟體的效能的高低,軟體效能的高低實際上取決於使用者對該響應時間的接受程度。對於一個遊戲軟體來說,響應時間小於100毫秒應該是不錯的,響應時間在1秒左右可能屬於勉強可以接受,如果響應時間達到3秒就完全難以接受了。而對於編譯系統來說,完整編譯一個較大規模軟體的原始碼可能需要幾十分鐘甚至更長時間,但這些響應時間對於使用者來說都是可以接受的。
CPU時鐘週期
時鐘發生器發出的脈衝信號做出週期變化的最短時間稱之爲震盪週期,也稱爲 CPU 時鐘週期。它是計算機中最基本的、最小的時間單位。每一次脈衝(即一個震盪週期)到來,晶片內的電晶體就改變一次狀態,讓整個晶片完成一定任務。一個震盪週期內,電晶體只會改變一次狀態。由此,更小的時鐘週期就意味着更高的工作頻率。
主頻
一秒(1 s)內,震盪週期的個數稱爲時鐘頻率,俗稱主頻。
主頻和時鐘週期的關係:
由上面的關係不難推出,主頻越高,CPU的運算速度就越快。
CPI(Clock cycle Per Instruction)表示執行某個程式的指令平均時鐘週期數,可以用來衡量計算機執行速度。
(IC[instruction counter]表示某個程式的所有指令的條數;TC表示執行某個程式所花費的時鐘週期)
MIPS(Million Instructions Per Second):單字長定點指令平均執行速度 Million Instructions Per Second的縮寫,每秒處理的百萬級的機器語言指令數。這是衡量CPU速度的一個指標。
FLOPS是Floating-point Operations Per Second每秒所執行的浮點運算次數的英文縮寫。它是一個衡量計算機計算能力的量,這個量經常使用在那些需要大量浮點運算的科學運算中。有時也會被記爲flop/s。
MFLOPS(Million Floating-point Operations per Second,每秒百萬個浮點操作),衡量計算機系統的技術指標,不能反映整體情況,只能反映浮點運算情況。
GFLOPS 就是 Giga Floating-point Operations Per Second,即每秒10億次的浮點運算數,常作爲GPU效能參數但不一定代表GPU的實際表現,因爲還要考慮具體如何拆分多邊形和畫素、以及紋理填充,理論上該數值越高越好。1GFlops = 1,000MFlops。
CPU利用率,是對一個時間段內CPU使用狀況的統計,通過這個指標可以看出在某一個時間段內CPU被佔用的情況,如果CPU被佔用時間很高,那麼就需要考慮CPU是否已經處於超負荷運作,長期超負荷運作對於機器本身來說是一種損害,因此必須將CPU的利用率控制在一定的比例下,以保證機器的正常運作。
Load Average是 CPU的Load,它所包含的資訊不是CPU的使用率狀況,而是在一段時間內CPU正在處理以及等待CPU處理的進程數之和的統計資訊,也就是CPU使用佇列的長度的統計資訊。
理機字長是指處理機能同時處理(或運算)的位數,即同時處理多少位(bit)數據。
1.數據總線
數據總線是CPU與記憶體、CPU與I/O介面裝置之間傳送數據資訊(各種指令數據資訊)的匯流排,這些信號通過數據總線往返於CPU與記憶體、CPU與I/O介面裝置之間,因此,數據總線上的資訊是雙向傳輸的。
2.地址匯流排
地址總線上傳送的是CPU向記憶體、I/O介面裝置發出的地址資訊,定址能力是CPU特有的功能,地址總線上傳送的地址資訊僅由CPU發出,因此,地址總線上的資訊是單向傳輸的。
3.控制匯流排
控制匯流排傳送的是各種控制信號,有CPU至記憶體、I/O介面裝置的控制信號,有I/O介面送向CPU的應答信號、請求信號,因此,控制匯流排是上的資訊是雙向傳輸的。控制信號包括時序信號、狀態信號和命令信號(如讀寫信號、忙信號、中斷信號)等。
匯流排頻寬的計算公式爲:匯流排頻寬=匯流排數據傳輸頻率 X 數據總線位數
拓展資料:
匯流排是一組進行互連和傳輸資訊(指令、數據和地址)的信號線。主要參數有匯流排位寬、匯流排時鐘頻率和匯流排傳輸速率。/傳統的PCI並行匯流排和最新的PCI-E序列匯流排頻寬。
匯流排位寬決定輸入/輸出裝置之間一次數據傳輸的資訊量,用位(bit)表示,如匯流排寬度爲8位元、16位元、32位元和64位元。
按照工作模式不同,匯流排可分爲兩種型別,一種是並行匯流排,它在同一時刻可以傳輸多位數據,好比是一條允許多輛車並排開的寬敞道路,而且它還有雙向單向之分;另一種爲序列匯流排,它在同一時刻只能傳輸一個數據,好比只容許一輛車行走的狹窄道路,數據必須一個接一個傳輸、看起來彷彿一個長長的數據串,故稱爲「序列」。
匯流排的頻寬指的是這條匯流排在單位時間內可以傳輸的數據總量,它等於匯流排位寬與工作頻率的乘積。例如,對於64位元、800MHz的前端匯流排,它的數據傳輸率就等於64bit×800MHz÷8(Byte)=6.4GB/s;32位元、33MHz PCI匯流排的數據傳輸率就是32bit×33MHz÷8=132MB/s,等等,這項法則可以用
11年考研真題
解析:D
定義性的東西,FLOPS是Floating-point Operations Per Second每秒所執行的浮點運算次數的英文縮寫。它是一個衡量計算機計算能力的量,這個量經常使用在那些需要大量浮點運算的科學運算中。有時也會被記爲flop/s。
12年考研真題
解析:D
CPU執行時間爲90s,
設該任務的指令共計M條,則90=CPIM。
現處理每一條的時間爲CPI/1.5,則T=CPIM/1.5=60。
因爲I/O時間不變所以共計60+10
13年考研真題
解析:C
先算平均CPI,0.52+0.23+0.14+0.25=3 注意這裏的單位CPU時鐘週期,
一個CPU時鐘週期爲
CPI=
IPS爲1S執行指令條數,現在一條指令執行時間已知即CPI
MIPS=IPS/1M=0.4*1024≈400
14年真題
解析:D
設指令條數爲n條,則
15年考研真題
解析:A
計算機只認識0/1,計算機語言程式
17年考研真題
解析:
M1的CPI=2*
M2的CPI=1*
做商= 爲執行一條指令的時間之比,執行時間之比應爲反比
18年考研真題(這是個多選的)
解析:123都對
寫在最後:
我叫風骨散人,名字的意思是我多想可以不低頭的自由生活,可現實卻不是這樣。家境貧寒,總得向這個世界低頭,所以我一直在奮鬥,想改變我的命運給親人好的生活,希望同樣被生活綁架的你可以通過自己的努力改變現狀,深知成年人的世界裏沒有容易二字。目前是一名在校大學生,預計考研,熱愛程式設計,熱愛技術,喜歡分享,知識無界,希望我的分享可以幫到你!
如果有什麼想看的,可以私信我,如果在能力範圍內,我會發布相應的博文!
感謝大家的閱讀!