前言
- 本文基礎(chǔ)知識部分來自于b站:分享筆記的好人兒的思維導(dǎo)圖與王道考研課程,感謝大佬的開源精神,習(xí)題來自老師劃的重點(diǎn)以及考研真題。
- 此前我嘗試了完全使用Python或是結(jié)合大語言模型對考研真題進(jìn)行數(shù)據(jù)清洗與可視化分析,本人技術(shù)有限,最終數(shù)據(jù)清洗結(jié)果不夠理想,相關(guān)CSDN文章便沒有發(fā)出。
- 從這篇文章開始,這里我將按章節(jié)順序,圍繞考研真題展開計(jì)算機(jī)組成原理總共7章的知識,邊學(xué)習(xí)邊整理數(shù)據(jù)。
請注意,本文中的部分內(nèi)容來自網(wǎng)絡(luò)搜集和個人實(shí)踐,如有任何錯誤,請隨時向我們提出批評和指正。本文僅供學(xué)習(xí)和交流使用,不涉及任何商業(yè)目的。如果因本文內(nèi)容引發(fā)版權(quán)或侵權(quán)問題,請通過私信告知我們,我們將立即予以刪除。
基礎(chǔ)知識
通用計(jì)算機(jī)的誕生
馮·諾依曼結(jié)構(gòu)的基本思想
最重要思想:“存儲程序”
工作方式:要完成的工作編寫為程序,將程序和數(shù)據(jù)送入主存并執(zhí)行。程序一旦啟動,計(jì)算機(jī)能夠自動完成逐條取出指令和執(zhí)行指令的任務(wù)
特點(diǎn)
-
- 采用“存儲程序”的工作方式
-
- 計(jì)算機(jī)由五大部件組成(運(yùn)算器、存儲器、控制器、輸入設(shè)備、輸出設(shè)備)
-
- 指令和數(shù)據(jù)以同等地位存儲在存儲器中,形式上兩者沒有區(qū)別,但計(jì)算機(jī)應(yīng)能區(qū)分(CPU區(qū)分指令與數(shù)據(jù),依據(jù)是指令周期不同階段)
-
- 指令和數(shù)據(jù)用二進(jìn)制代碼表示,指令由操作碼和地址碼組成,可按地址尋址
-
- 以運(yùn)算器為中心
現(xiàn)代計(jì)算機(jī)的結(jié)構(gòu)
運(yùn)算器的基本組成
控制器的基本組成
計(jì)算機(jī)的工作過程
上述知識思維導(dǎo)圖
計(jì)算機(jī)系統(tǒng)層次結(jié)構(gòu)
計(jì)算機(jī)語言
機(jī)器語言
- 計(jì)算機(jī)唯一可以直接識別和執(zhí)行的語言,機(jī)器指令由二進(jìn)制表示
匯編語言
-
匯編語言程序:由匯編指令構(gòu)成
-
匯編指令:用助記符和符號來表示的指令。(與機(jī)器指令一一對應(yīng))
高級語言
-
面向算法描述,一條語句對應(yīng)多條指令,有“面向過程”與“面向?qū)ο蟆敝?/p>
-
處理邏輯:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
-
高級語言開發(fā)程序環(huán)境
-
語言處理系統(tǒng)
-
語言處理程序:編輯器+翻譯轉(zhuǎn)換軟件
-
編譯方式:預(yù)處理程序、編譯器、匯編器、鏈接器
-
程序的轉(zhuǎn)換處理過程
-
解釋方式:解釋程序
-
-
語言的運(yùn)行時系統(tǒng)
-
-
操作系統(tǒng)(人機(jī)接口+操作系統(tǒng)內(nèi)核)、指令集體系結(jié)構(gòu)、計(jì)算機(jī)硬件
-
三種語言聯(lián)系
翻譯程序
-
匯編程序:匯編語言源程序->機(jī)器語言目標(biāo)程序
-
編譯程序:高級語言源程序->匯編/機(jī)器語言目標(biāo)程序,執(zhí)行時只要啟動目標(biāo)程序即可
-
解釋程序:將高級語言語句逐條翻譯成機(jī)器指令并立刻執(zhí)行,不生成目標(biāo)文件
編譯程序和解釋程序重點(diǎn)在有沒有生成目標(biāo)文件,最終都轉(zhuǎn)換為機(jī)器語言。
不同層次語言之間的等價轉(zhuǎn)換
現(xiàn)代(傳統(tǒng))計(jì)算機(jī)系統(tǒng)層次
上述知識思維導(dǎo)圖
計(jì)算機(jī)性能指標(biāo)
存儲器的性能指標(biāo)
CPU的性能指標(biāo)
系統(tǒng)整體的性能指標(biāo)
字長(都得是字節(jié)的整數(shù)倍)
-
機(jī)器字長:指CPU內(nèi)部用于整數(shù)運(yùn)算的數(shù)據(jù)通路的寬度
- 等于CPU內(nèi)部用于整數(shù)運(yùn)算的運(yùn)算器位數(shù)和通用寄存器寬度
-
指令字長:一個指令字中包含的二進(jìn)制代碼位數(shù)
-
存儲字長:一個存儲單元存儲的二進(jìn)制代碼長度
帶寬
-
數(shù)據(jù)通路帶寬
- 數(shù)據(jù)總線一次性所能傳送信息的位數(shù)
-
總線帶寬
- 總線寬度×總線工作頻率
主存容量
- 主存儲器的最大容量=存儲單元個數(shù)(MAR位數(shù)n,2^n)×存儲字長(MDR位數(shù))
運(yùn)算速度
-
吞吐量
- 單位時間內(nèi)處理請求的數(shù)量
-
響應(yīng)時間
- CPU時間+等待時間(磁盤訪問、儲存器訪問、IO操作、操作系統(tǒng)開銷)
-
CPU時鐘周期
-
CPU最小時間單位,每個動作至少需要一個時鐘周期,主頻倒數(shù)
- 主頻
-
-
CPI
- 執(zhí)行一條指令所需的時鐘周期數(shù)
-
CPU執(zhí)行時間
- 運(yùn)行一個程序所花時間=(指令條數(shù)×CPI)/主頻
-
計(jì)算能力
-
每秒執(zhí)行多少條指令
- KIPS、MIPS
-
每秒執(zhí)行多少次浮點(diǎn)運(yùn)算,衡量科學(xué)計(jì)算計(jì)算機(jī)的系統(tǒng)性能
- KFLOPS、MFLOPS、GFLPOPS、TFLOPS、PFLOPS、EFLOPS、ZFLOPS(每個差3位)
-
整體性能指標(biāo):數(shù)據(jù)通路帶寬、吞吐量、響應(yīng)時間
思考
上述知識思維導(dǎo)圖
補(bǔ)充術(shù)語
-
兼容機(jī)(系列機(jī)):相同或相似的指令集,相同或相似的操作系統(tǒng)(指令系統(tǒng)向后兼容)
-
兼容:計(jì)算機(jī)軟件或硬件通用性,通常在同一系列不同型號的計(jì)算機(jī)間通用
-
軟件可移植性:某系列中計(jì)算機(jī)軟件,直接或很少修改,運(yùn)行在另一個系列中
-
固件:將程序固定在ROM中的部分
相關(guān)習(xí)題
1. 關(guān)于計(jì)算機(jī)系統(tǒng)層次結(jié)構(gòu)
(1) 馮·諾依曼計(jì)算機(jī)中指令和數(shù)據(jù)的存儲區(qū)分依據(jù)是?
A. 指令操作碼的譯碼結(jié)果
B. 指令和數(shù)據(jù)的尋址方式
C. 指令周期的不同階段
D. 指令和數(shù)據(jù)所在的存儲單元
答案:C
基礎(chǔ)知識:
在馮·諾依曼計(jì)算機(jī)體系結(jié)構(gòu)中,指令和數(shù)據(jù)都存儲在同一內(nèi)存中,并且計(jì)算機(jī)的運(yùn)行是通過不同的指令周期來控制的。這些不同的周期包括取指令周期、譯碼周期、執(zhí)行周期等。因此,指令周期的不同階段用于區(qū)分指令和數(shù)據(jù)的存儲。
(2) 將高級語言源程序轉(zhuǎn)換為機(jī)器級目標(biāo)代碼文件的程序是?
A. 匯編程序
B. 鏈接程序
C. 編譯程序
D. 解釋程序
答案:C
基礎(chǔ)知識:
將高級語言源程序轉(zhuǎn)換為機(jī)器級目標(biāo)代碼文件的程序是編譯程序。編譯程序?qū)⒏呒壵Z言代碼翻譯成機(jī)器可以執(zhí)行的目標(biāo)代碼,而不需要每次運(yùn)行都重新翻譯。
(3) 計(jì)算機(jī)硬件能夠直接執(zhí)行的程序類型是?
I. 機(jī)器語言程序
II. 匯編語言程序
III. 硬件描述語言程序
A. 僅 I
B. 僅 I、II
C. 僅 I、III
D. I、II、III
答案:A
基礎(chǔ)知識:
計(jì)算機(jī)硬件能夠直接執(zhí)行的程序類型是機(jī)器語言程序。機(jī)器語言是計(jì)算機(jī)可以理解和執(zhí)行的二進(jìn)制指令。
(4) 關(guān)于馮·諾依曼計(jì)算機(jī)基本思想的敘述中,錯誤的是?
A. 程序的功能都通過中央處理器執(zhí)行指令實(shí)現(xiàn)
B. 指令和數(shù)據(jù)都用二進(jìn)制數(shù)表示,形式上無差別
C. 指令按地址訪問,數(shù)據(jù)都在指令中直接給出
D. 程序執(zhí)行前,指令和數(shù)據(jù)需預(yù)先存放在存儲器中
答案:C
基礎(chǔ)知識:
在馮·諾依曼計(jì)算機(jī)中,指令和數(shù)據(jù)都用二進(jìn)制數(shù)表示,形式上無差別。指令按地址訪問,而數(shù)據(jù)需要在存儲器中存放并通過地址訪問。
(5) 將高級語言源程序轉(zhuǎn)換為可執(zhí)行目標(biāo)文件的主要過程是?
A. 預(yù)處理→編譯→匯編→鏈接
B. 預(yù)處理→匯編→編譯→鏈接
C. 預(yù)處理→編譯一鏈接→匯編
D. 預(yù)處理→匯編→鏈接→編譯
答案:A
基礎(chǔ)知識:
將高級語言源程序轉(zhuǎn)換為可執(zhí)行目標(biāo)文件的主要過程通常包括預(yù)處理、編譯、匯編和鏈接。這是編譯器工作的一般步驟。首先進(jìn)行預(yù)處理,然后編譯成匯編代碼,接著匯編成機(jī)器碼,最后通過鏈接生成可執(zhí)行目標(biāo)文件。
2. 關(guān)于計(jì)算機(jī)的性能指標(biāo)
(1) 下列選項(xiàng)中,能縮短程序執(zhí)行時間的措施是?
I. 提高 CPU 時鐘頻率
II. 優(yōu)化數(shù)據(jù)通路結(jié)構(gòu)
III. 對程序進(jìn)行編譯優(yōu)化
A. 僅Ⅰ和 II
B. 僅Ⅰ和 III
C. 僅Ⅱ和 II
D. I、II、III
答案:D文章來源:http://www.zghlxwxcb.cn/news/detail-727605.html
基礎(chǔ)知識:
提高 CPU 時鐘頻率(主頻)可以縮短完成指令的一個執(zhí)行步驟所需的時間,從而加快指令的執(zhí)行速度,因此選項(xiàng) I 正確。
優(yōu)化數(shù)據(jù)通路結(jié)構(gòu)可以提高計(jì)算機(jī)系統(tǒng)的吞吐量,加快數(shù)據(jù)傳輸和處理的速度,從而縮短程序的執(zhí)行時間,因此選項(xiàng) II 正確。
對程序進(jìn)行編譯優(yōu)化可以生成更有效率的機(jī)器代碼,減少指令的執(zhí)行次數(shù)和提高數(shù)據(jù)局部性,從而降低程序的執(zhí)行時間,因此選項(xiàng) III 正確。
綜上所述,選項(xiàng) D 包括了所有能夠縮短程序執(zhí)行時間的有效措施。
(2) 下列選項(xiàng)中,描述浮點(diǎn)數(shù)操作速度指標(biāo)的是?
A. MIPS
B. CPI
C. IPC
D. MFLOPS
答案:D
基礎(chǔ)知識:
-
MIPS(Million Instructions Per Second): MIPS 是一種用于描述計(jì)算機(jī)指令執(zhí)行速度的指標(biāo)。它表示每秒執(zhí)行的百萬條指令數(shù)。MIPS 值越高,表示計(jì)算機(jī)執(zhí)行指令的速度越快,但并未直接描述浮點(diǎn)數(shù)操作速度。
-
CPI(Cycles Per Instruction): CPI 是一種用于描述計(jì)算機(jī)執(zhí)行指令效率的指標(biāo)。它表示每條指令執(zhí)行所需的時鐘周期數(shù)。CPI 值越低,表示計(jì)算機(jī)執(zhí)行指令的效率越高,但它也不是描述浮點(diǎn)數(shù)操作速度的指標(biāo)。
-
IPC(Instructions Per Cycle): IPC 是一種用于描述計(jì)算機(jī)每個時鐘周期內(nèi)執(zhí)行的指令數(shù)的指標(biāo)。它與 CPI 相關(guān),但表示的是每個時鐘周期內(nèi)執(zhí)行的指令數(shù),而不是每條指令執(zhí)行所需的時鐘周期數(shù)。IPC 值越高,表示計(jì)算機(jī)在每個時鐘周期內(nèi)執(zhí)行更多的指令,但它也不是描述浮點(diǎn)數(shù)操作速度的指標(biāo)。
-
MFLOPS(Million Floating Point Operations Per Second): MFLOPS 是一種用于描述計(jì)算機(jī)浮點(diǎn)數(shù)操作速度的指標(biāo)。它表示每秒執(zhí)行的百萬次浮點(diǎn)數(shù)運(yùn)算操作數(shù)。MFLOPS 值越高,表示計(jì)算機(jī)執(zhí)行浮點(diǎn)數(shù)操作的速度越快。因此,選項(xiàng) D 描述浮點(diǎn)數(shù)操作速度的指標(biāo)是正確的。
所以,答案是D。
(3) 假定基準(zhǔn)程序 A 在某計(jì)算機(jī)上的運(yùn)行時間為 100s,其中 90s 為 CPU 時間,其余為 I/O 時間。若 CPU 速度提高 50%,I/O 速度不變,則運(yùn)行基準(zhǔn)程序 A 所耗費(fèi)的時間是?
A. 55s
B. 60s
C. 65s
D. 70s
答案:D
基礎(chǔ)知識:
-
CPU 時間(CPU Time): CPU 時間表示程序在 CPU 上執(zhí)行所花費(fèi)的時間。它包括用戶態(tài)和內(nèi)核態(tài)的 CPU 時間,用于執(zhí)行程序的指令。
-
I/O 時間(I/O Time): I/O 時間表示程序在等待 I/O 操作完成時所花費(fèi)的時間。這包括等待數(shù)據(jù)從磁盤、網(wǎng)絡(luò)或其他外部設(shè)備讀取或?qū)懭氲臅r間。
-
CPU 速度提高 50%: 當(dāng) CPU 速度提高 50% 時,意味著 CPU 執(zhí)行指令的速度增加了 50%,也就是原來的 1.5 倍。
基準(zhǔn)程序A的運(yùn)行時間為100秒,90秒為CPU時間,10秒為I/O時間。由于CPU速度提高50%,則原來要執(zhí)行90秒的任務(wù),現(xiàn)在縮短為90/(1+50%)=60秒。由于I/0速度不變,則運(yùn)行基準(zhǔn)程序A所耗費(fèi)的時間為10秒+60秒=70秒。
(4) 某計(jì)算機(jī)的主頻為 1.2GHz,其指令分為 4 類,它們在基準(zhǔn)程序中所占比例及 CPI 如下表所示。
指令類型 | 所占比例 | CPI |
---|---|---|
A | 50% | 2 |
B | 20% | 3 |
C | 10% | 4 |
D | 20% | 5 |
該機(jī)的 MIPS 數(shù)是?
A. 100
B. 200
C. 400
D. 600
答案:C
基礎(chǔ)知識:
-
MIPS(百萬指令每秒): MIPS 是衡量計(jì)算機(jī)性能的一種指標(biāo),表示每秒鐘能夠執(zhí)行多少百萬條指令。
-
CPI(每條指令的平均時鐘周期數(shù)): CPI 衡量了程序在執(zhí)行時所需的平均時鐘周期數(shù)。
計(jì)算MIPS數(shù)的公式為:MIPS = 主頻(Hz) / (CPI × 10^6)。
根據(jù)題目中的數(shù)據(jù),我們首先需要計(jì)算基準(zhǔn)程序的CPI。
CPI = (50% × 2) + (20% × 3) + (10% × 4) + (20% × 5) = 1 + 0.6 + 0.4 + 1 = 3
然后,使用計(jì)算機(jī)的主頻來計(jì)算MIPS數(shù):
MIPS = 主頻(1.2GHz)/ (CPI × 10^6) = 1.2 × 10^9 / (3 × 10^6) = 400
所以,該機(jī)的MIPS數(shù)為400。
(5) 程序 P 在機(jī)器 M 上的執(zhí)行時間是 20s,編譯優(yōu)化后,P 執(zhí)行的指令數(shù)減少到原來的 70%,而 CPI 增加到原來的 1.2 倍,則 P 在 M 上的執(zhí)行時間是?
A. 8.4s
B. 11.7s
C. 14s
D. 16.8s
答案:D
基礎(chǔ)知識:
-
執(zhí)行時間(Execution Time): 執(zhí)行時間表示程序在計(jì)算機(jī)上運(yùn)行所需的時間。它是程序執(zhí)行的實(shí)際時間。
-
指令數(shù)(Number of Instructions): 指令數(shù)表示程序執(zhí)行過程中執(zhí)行的指令總數(shù)。
-
CPI(Cycles Per Instruction): CPI 表示每條指令執(zhí)行所需的時鐘周期數(shù)。它是衡量計(jì)算機(jī)性能的重要指標(biāo)之一。
根據(jù)題意,編譯優(yōu)化后,程序P執(zhí)行的指令數(shù)減少到原來的70%,即指令數(shù)變?yōu)樵瓉淼?.7倍。同時,CPI增加到原來的1.2倍。
新的執(zhí)行時間 = 原執(zhí)行時間 × 新指令數(shù) × 新CPI
新的執(zhí)行時間 = 20s × 0.7 × 1.2 = 16.8s
因此,P在M上的執(zhí)行時間是16.8秒,答案是D。
(6) 假定計(jì)算機(jī) M1 和 M2 具有相同的指令集體系結(jié)構(gòu)(ISA),主頻分別為 1.5GHz 和 1.2GHz。在 M1 和 M2 上運(yùn)行某基準(zhǔn)程序 P,平均 CPI 分別為 2 和 1,則程序 P 在 M1 和 M2 上運(yùn)行時間的比值是?
A. 0.4
B. 0.625
C. 1.6
D. 2.5
答案:C
基礎(chǔ)知識:
-
指令集體系結(jié)構(gòu)(ISA): ISA 定義了計(jì)算機(jī)體系結(jié)構(gòu)中的指令集合、寄存器和數(shù)據(jù)傳輸方式。它是計(jì)算機(jī)硬件和軟件之間的接口標(biāo)準(zhǔn)。
-
主頻(Clock Frequency): 主頻表示計(jì)算機(jī)的時鐘頻率,即每秒時鐘周期數(shù)。它通常以赫茲(Hz)為單位表示。
-
CPI(Cycles Per Instruction): CPI 表示每條指令執(zhí)行所需的時鐘周期數(shù)。它是衡量計(jì)算機(jī)性能的重要指標(biāo)之一。
根據(jù)題意,M1 的平均 CPI 為 2,M2 的平均 CPI 為 1。而主頻與 CPI 之間的關(guān)系可以用以下公式表示:
執(zhí)行時間 = 指令數(shù) × CPI / 主頻
對于 M1,執(zhí)行時間1 = 指令數(shù) × 2 / 1.5GHz = (2/1.5) × 指令數(shù) 秒
對于 M2,執(zhí)行時間2 = 指令數(shù) × 1 / 1.2GHz = (1/1.2) × 指令數(shù) 秒
現(xiàn)在我們來計(jì)算程序 P 在 M1 和 M2 上運(yùn)行時間的比值:
程序 P 在 M1 上的執(zhí)行時間 / 程序 P 在 M2 上的執(zhí)行時間 = (2/1.5) × 指令數(shù) / ((1/1.2) × 指令數(shù))
指令數(shù)可以約掉,于是比值為:
(2/1.5) / (1/1.2) = (2/1.5) × (1.2/1) = 2.4/1.5 = 1.6
因此,程序 P 在 M1 和 M2 上運(yùn)行時間的比值為 1.6,答案是C。
(7) 下列給出的部件中,其位數(shù)(寬度)一定與機(jī)器字長相同的是?
I. ALU
II. 指令寄存器
III. 通用寄存器
IV. 浮點(diǎn)寄存器
A. 僅 I、II
B. 僅 I、III
C. 僅 II、 III
D. 僅 II、III、 IV
答案:B. 僅 I、III
基礎(chǔ)知識:
-
機(jī)器字長(Word Length): 機(jī)器字長是計(jì)算機(jī)體系結(jié)構(gòu)中的一個重要概念,它表示計(jì)算機(jī)一次性能處理的二進(jìn)制位數(shù),通常以位(bits)為單位表示。機(jī)器字長決定了計(jì)算機(jī)的數(shù)據(jù)表示范圍和性能。
-
ALU(Arithmetic Logic Unit): ALU 是計(jì)算機(jī)中的算術(shù)邏輯單元,負(fù)責(zé)執(zhí)行算術(shù)和邏輯操作。ALU 的位數(shù)通常與機(jī)器字長相同,以便處理與機(jī)器字長相匹配的數(shù)據(jù)。
-
指令寄存器: 指令寄存器是用于存儲當(dāng)前正在執(zhí)行的指令的寄存器。它通常存儲一條機(jī)器指令,而機(jī)器指令的位數(shù)與機(jī)器字長相匹配。
-
通用寄存器: 通用寄存器是計(jì)算機(jī)中用于存儲臨時數(shù)據(jù)的寄存器,通常用于執(zhí)行算術(shù)和邏輯運(yùn)算。通用寄存器的位數(shù)通常與機(jī)器字長相同。
-
浮點(diǎn)寄存器: 浮點(diǎn)寄存器是用于存儲浮點(diǎn)數(shù)(實(shí)數(shù))數(shù)據(jù)的寄存器。浮點(diǎn)寄存器的位數(shù)通常與浮點(diǎn)數(shù)的表示格式相關(guān),可能與機(jī)器字長不同。
根據(jù)上述知識,只有 ALU 和通用寄存器的位數(shù)一定與機(jī)器字長相同,因此答案是B. 僅 I、III。其他部件的位數(shù)可能根據(jù)需要而有所不同。
(8) 2017 年公布的全球超級計(jì)算機(jī) TOP 500 排名中,我國“神威·太湖之光”超級計(jì)算機(jī)蟬聯(lián)第一,其浮點(diǎn)運(yùn)算速度為93.0146 PFLOPS,說明該計(jì)算機(jī)每秒鐘內(nèi)完成的浮點(diǎn)操作次數(shù)約為?
A. 9.3×10^13次
B. 9.3×10^15次
C. 9.3 千萬億次
D. 9.3 億億次
答案:D
基礎(chǔ)知識:
PFLOPS(PetaFLOPS)表示每秒鐘完成的浮點(diǎn)操作次數(shù)達(dá)到了10^15次。根據(jù)題目中提供的數(shù)據(jù),神威·太湖之光超級計(jì)算機(jī)的浮點(diǎn)運(yùn)算速度為93.0146 PFLOPS~每秒9.3×10次浮點(diǎn)運(yùn)算,因此每秒鐘完成的浮點(diǎn)操作次數(shù)約為9.3×10^16次。文章來源地址http://www.zghlxwxcb.cn/news/detail-727605.html
(9) 某計(jì)算機(jī)主頻為1GHz,程序P運(yùn)行過程中,共執(zhí)行了10000條指令,其中80%的指令執(zhí)行平均需1個時鐘周期,20%的指令執(zhí)行平均需10個時鐘周期。程序P的平均CPI和CPU執(zhí)行時間分別是?
A. 2.8, 28μs
B. 28, 28μs
C. 2.8, 28ms
D. 28, 28ms
答案:A
基礎(chǔ)知識
在理解和解析這個問題之前,需要了解以下基礎(chǔ)知識:
-
主頻(Clock Frequency):主頻是計(jì)算機(jī)處理器(CPU)的時鐘頻率,通常以赫茲(Hz)為單位表示。它表示CPU每秒鐘的時鐘周期數(shù)。例如,如果主頻為1.5 Hz,那么CPU每秒鐘將執(zhí)行1.5億個時鐘周期。
-
指令執(zhí)行速度(IPS,Instructions Per Second):指令執(zhí)行速度是計(jì)算機(jī)在單位時間內(nèi)執(zhí)行的指令數(shù)。它通常以GIPS(Giga Instructions Per Second)為單位表示。計(jì)算指令執(zhí)行速度需要考慮主頻和每條指令的平均CPI(Cycles Per Instruction)。
-
指令條數(shù):指令條數(shù)是程序中包含的機(jī)器指令的數(shù)量。這是一個影響程序執(zhí)行時間的因素。
-
用戶CPU時間:用戶CPU時間是指程序在CPU上執(zhí)行的實(shí)際時間,通常以毫秒(ms)為單位表示。它取決于總時鐘周期數(shù)和主頻。
按照題意,程序P的指令總數(shù)為10000,其中80%的指令CPI為1,20%的指令CPI為10。首先計(jì)算平均CPI:
平均CPI = (80% × 1 + 20% × 10) = 2.8
計(jì)算機(jī)主頻為1GHz,即1 × 10^9 Hz?,F(xiàn)在可以計(jì)算CPU執(zhí)行時間:
CPU執(zhí)行時間 = 10000 × 2.8 / (1 × 10^9) = 28μs
所以,程序P的平均CPI是2.8,CPU執(zhí)行時間是28μs。
以上習(xí)題多數(shù)為考研真題,我正在逐年整理中,后續(xù)會標(biāo)明年份和題號
考研真題
408 - 2023
12. 計(jì)算程序執(zhí)行速度和用戶CPU時間
若機(jī)器M的主頻為1.5 Hz,在M上執(zhí)行程序P的指令條數(shù)為5 × 10^5,P的平均CPI為1.2,則P在M上的指令執(zhí)行速度和用戶CPU時間分別為哪個選項(xiàng)?
A. 0.8 GIPS, 0.4 ms
B. 0.8 GIPS, 0.4 us
C. 1.25 GIPS, 0.4 ms
D. 1.25 GIPS, 0.4 us
基礎(chǔ)知識
在理解和解析這個問題之前,需要了解以下基礎(chǔ)知識:
-
主頻(Clock Frequency):主頻是計(jì)算機(jī)處理器(CPU)的時鐘頻率,通常以赫茲(Hz)為單位表示。它表示CPU每秒鐘的時鐘周期數(shù)。例如,如果主頻為1.5 Hz,那么CPU每秒鐘將執(zhí)行1.5億個時鐘周期。
-
指令執(zhí)行速度(IPS,Instructions Per Second):指令執(zhí)行速度是計(jì)算機(jī)在單位時間內(nèi)執(zhí)行的指令數(shù)。它通常以GIPS(Giga Instructions Per Second)為單位表示。計(jì)算指令執(zhí)行速度需要考慮主頻和每條指令的平均CPI(Cycles Per Instruction)。
-
指令條數(shù):指令條數(shù)是程序中包含的機(jī)器指令的數(shù)量。這是一個影響程序執(zhí)行時間的因素。
-
用戶CPU時間:用戶CPU時間是指程序在CPU上執(zhí)行的實(shí)際時間,通常以毫秒(ms)為單位表示。它取決于總時鐘周期數(shù)和主頻。
解析:
首先,我們需要計(jì)算程序P在機(jī)器M上的指令執(zhí)行速度和用戶CPU時間。以下是計(jì)算過程:
- 程序P的指令條數(shù)為5 × 10^5。
- P的平均CPI為1.2。
- 機(jī)器M的主頻為1.5 Hz。
計(jì)算程序P的總時鐘周期數(shù):
總時鐘周期數(shù) = 指令條數(shù) × 平均CPI = 5 × 10^5 × 1.2 = 6 × 10^5
機(jī)器M的主頻為1.5 Hz,這意味著每秒有1.5 × 10^9 個時鐘周期。
現(xiàn)在,計(jì)算指令執(zhí)行速度(IPS,Instructions Per Second):
指令執(zhí)行速度 = 主頻 / 平均CPI = (1.5 × 10^9) / 1.2 = 1.25 × 10^9 IPS = 1.25 GIPS
最后,計(jì)算用戶CPU時間:
用戶CPU時間 = 總時鐘周期數(shù) / 主頻 = (6 × 10^5) / (1.5 × 10^9) = 0.4 × 10^(-3) 秒 = 0.4 ms
所以,程序P在機(jī)器M上的指令執(zhí)行速度為1.25 GIPS,用戶CPU時間為0.4毫秒(ms)。因此,答案是選項(xiàng)C:1.25 GIPS, 0.4 ms。
408 - 2022
12. 計(jì)算平均CPI和CPU執(zhí)行時間
問題: 某計(jì)算機(jī)主頻為1GHz,程序P運(yùn)行過程中,共執(zhí)行了10000條指令,其中,80%的指令執(zhí)行平均需1個時鐘周期,20%的指令執(zhí)行平均需10個時鐘周期。程序P的平均CPI(Cycles Per Instruction)和CPU執(zhí)行時間分別是多少?
A. 2.8,28μs
B. 28,28μs
C. 2.8,28ms
D. 28,28ms
解答:
基礎(chǔ)知識:
-
CPI(Cycles Per Instruction): CPI 表示每條指令執(zhí)行所需的平均時鐘周期數(shù)。它是衡量計(jì)算機(jī)性能的一個重要指標(biāo)。公式為:
[CPI = \frac{\text{總時鐘周期數(shù)}}{\text{執(zhí)行的指令數(shù)}}]
-
CPU執(zhí)行時間: CPU執(zhí)行時間表示程序運(yùn)行所需的時間,通常以秒為單位。
按照題意,程序P的指令總數(shù)為10000,其中80%的指令CPI為1,20%的指令CPI為10。首先計(jì)算平均CPI:
平均CPI = (80% × 1 + 20% × 10) = 2.8
計(jì)算機(jī)主頻為1GHz,即1 × 10^9 Hz?,F(xiàn)在可以計(jì)算CPU執(zhí)行時間:
CPU執(zhí)行時間 = 10000 × 2.8 / (1 × 10^9) = 28μs
所以,程序P的平均CPI是2.8,CPU執(zhí)行時間是28μs。
正確答案是 A. 2.8,28μs。
20. 高級語言程序轉(zhuǎn)換為可執(zhí)行目標(biāo)文件的過程
問題: 將高級語言源程序轉(zhuǎn)換為可執(zhí)行目標(biāo)文件的主要過程是什么?
A. 預(yù)處理→編譯→匯編→鏈接
B. 預(yù)處理→匯編→編譯→鏈接
C. 預(yù)處理→編譯→鏈接→匯編
D. 預(yù)處理→匯編→鏈接→編譯
解答:
基礎(chǔ)知識:
將高級語言源程序轉(zhuǎn)換為可執(zhí)行目標(biāo)文件的主要過程通常包括以下步驟:
-
預(yù)處理(Preprocessing): 在這個階段,預(yù)處理器根據(jù)預(yù)處理指令(如宏定義、條件編譯等)對源代碼進(jìn)行處理。預(yù)處理器會展開宏定義、包含頭文件等,生成經(jīng)過預(yù)處理的源代碼。
-
編譯(Compilation): 在這個階段,編譯器將預(yù)處理后的源代碼轉(zhuǎn)換為匯編代碼。編譯器對代碼進(jìn)行詞法分析、語法分析、語義分析,生成相應(yīng)的中間代碼或匯編代碼。
-
匯編(Assembly): 在這個階段,匯編器將匯編代碼轉(zhuǎn)換為機(jī)器碼指令。匯編器將匯編代碼中的每條指令翻譯成機(jī)器碼表示。
-
鏈接(Linking): 在這個階段,鏈接器將各個源文件編譯生成的目標(biāo)文件及所需的庫文件合并在一起,生成最終的可執(zhí)行目標(biāo)文件。鏈接器會解析符號引用關(guān)系,將函數(shù)和變量的引用與其定義進(jìn)行匹配,并進(jìn)行地址重定位等操作,使得程序能夠正確地執(zhí)行。
因此,正確的過程是:預(yù)處理→編譯→匯編→鏈接,選項(xiàng)A是正確的。
答案是 A. 預(yù)處理→編譯→匯編→鏈接。
拓展
例如gcc編譯器將hello.c轉(zhuǎn)換為可執(zhí)行目標(biāo)文件hello的過程如下:
對應(yīng)的命令如下:
預(yù)處理:gcc -E hello.c -o hello.i
編譯:gcc –S hello.i –o hello.s
匯編:gcc –c hello.s –o hello.o
鏈接:gcc hello.o –o hello
408 - 2021
12. 計(jì)算機(jī)浮點(diǎn)運(yùn)算速度與操作次數(shù)的關(guān)系
問題:2017 年公布的全球超級計(jì)算機(jī) TOP 500 排名中,我國“神威·太湖之光”超級計(jì)算機(jī)蟬聯(lián)第一,其浮點(diǎn)運(yùn)算速度為93.0146 PFLOPS,說明該計(jì)算機(jī)每秒鐘內(nèi)完成的浮點(diǎn)操作次數(shù)約為?
A. 9.3×10^13次
B. 9.3×10^15次
C. 9.3 千萬億次
D. 9.3 億億次
答案:D
基礎(chǔ)知識:
PFLOPS(PetaFLOPS)表示每秒鐘完成的浮點(diǎn)操作次數(shù)達(dá)到了10^15次。根據(jù)題目中提供的數(shù)據(jù),神威·太湖之光超級計(jì)算機(jī)的浮點(diǎn)運(yùn)算速度為93.0146 PFLOPS~每秒9.3×10次浮點(diǎn)運(yùn)算,因此每秒鐘完成的浮點(diǎn)操作次數(shù)約為9.3×10^16次。
未完待續(xù),逐張?jiān)嚲碚碇?,會一直更新?009
到了這里,關(guān)于【計(jì)算機(jī)組成原理】考研真題攻克與重點(diǎn)知識點(diǎn)剖析 - 第 1 篇:計(jì)算機(jī)系統(tǒng)概述的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!