計算機組成原理易混淆知識點總結(持續更新)

目錄

1.機器字長,存儲字長與指令字長

2.指令周期,機器周期,時鐘周期

3.CPI,IPS,MIPS

4.翻譯程序和匯編程序

5.計算機體系結構和計算機組成的區別和聯系

6.基準程序執行得越快說明機器的性能越好嗎?


1.機器字長,存儲字長與指令字長

不同的機器三者在數值上可以相等也可以不等:

機器字長CPU內部用于整數運算的數據通路的寬度(也就是CPU一次可以處理的二進制代碼的位數)。通常等于ALU的寬度或通用寄存器的位數。

數據通路是指數據在指令執行過程中所經過的路徑及路徑上的部件,主要是CPU內部進行數據運算,存儲和傳送的部件,這些部件的寬度基本上要一致才能相互匹配。因此機器字長等于ALU的寬度或通用寄存器的位數。

存儲字長:一個存儲單元中包含的二進制代碼的位數,它等于MDR的位數。

補充:MDR的位數:存儲單元的位數? ? ? ? MAR的位數反映了最多可尋址的存儲單元的個數,如MAR:10位,那么最多有2^10個存儲單元,MAR的長度與PC的長度相等。

指令字長:一個指令字中包含的二進制代碼的位數。

指令字長一般取存儲字長的整數倍,若指令字長等于存儲字長的2倍,則需要2個訪存周期來取出一條指令,若指令字長等于存儲字長,則只需要1個訪存周期取指令,指令周期等于機器周期。
早期的存儲字長一般與指令字長、字長相等,因此訪問一次主存儲器便可取出一條指令或一個數據。隨著計算機的發展,指令字長、存儲字長都可變,但必須都是字節的整數倍。

機器字長會直接影響加法器(ALU),內部總線寬度(數據通路的寬度)及寄存器的位數,進而影響數據的精度和表示范圍;如果提高機器字長,一個數能表示的精度和范圍就越高,但隨之而來的是成本的增加

2.指令周期,機器周期,時鐘周期

指令周期:CPU從主存中取出并執行一條指令所需的全部時間

取出并執行一條指令包括:取出指令-->分析指令-->執行指令,如下圖所示:

對指令譯碼的過程就是分析指令的過程

機器周期:

機器周期又稱CPU周期,一個指令周期常用多個機器周期表示。一個如上圖所示,取指操作算一個機器周期,執行指令操作也算一個機器周期。

時鐘周期:一個機器周期又包含若干時鐘周期(也稱為節拍、T周期或CPU時鐘周期,它是CPU操作的最基本單位)

CPU上標注的主頻,例如主頻=3.0GHz,就表示每秒鐘可以發送3.0G次的時鐘周期

若想了解得更加詳細,推薦看看這篇:指令執行過程

3.CPI,IPS,MIPS

CPU時鐘周期:上面講過,時鐘周期是CPU工作的最小時間單位。

主頻:機器內部主時鐘的頻率,即時鐘周期的導數(1/CPU時鐘周期)。對于同一型號的計算機,主頻越高,完成指令的一個執行步驟所用時間越短,執行指令的速度越快。

CPI(Cycle Per Instruction):執行一條指令所需要的時鐘周期數。不同指令的時鐘周期數可能不同,因此對于一個程序或一臺機器來說,其CPI指該程序或該機器指令集中的所有指令執行所需的平均時鐘周期數,此時CPI是一個平均值

指令執行速度:主頻/平均CPI,主頻表示CPU內部主時鐘的頻率,例如主頻1.5GHz說明1s有1.5G=1.5*10^9個時鐘周期。平均CPI表示一條指令的時鐘周期數,所以?指令執行速度=主頻/平均CPI,即1s執行的指令數

用戶CPU時間:總時鐘周期數/主頻,總時鐘周期數=CPI(一條指令的時鐘周期數)*指令條數,主頻:1s的時鐘周期數,所以用戶CPU時間=總時鐘周期數/主頻

一定不要記,看題目理解即可!

IPC:表示每個時鐘周期運行多少條指令,機CPI的倒數(1/CPI)。

IPS(Instructions Per Second):每秒執行多少條指令,IPS=主頻/平均PCI。

CPU執行時間:CPU時鐘周期數/主頻=指令條數*CPI*時鐘周期的長度=(指令條數*CPI)/主頻

CPU執行時間取決于三個要素:CPI,主頻和指令條數。三個條件下過戶制約,例如,更改指令集可以減少程序所含指令條數,但同時可能引起CPU結構的調整,從而可能會增加時鐘周期的寬度(降低主頻)。

MIPS(Million Instructions Per Second):每秒執行多少萬條指令。

MIPS=指令條數/(執行時間*10^6)=主頻/(CPI*10^6)

MIPS 對不同機器進行性能比較是有缺陷的。因為不同機器的指令集不同,指令的功能也就不同,比如在機器M1上某條指令的功能也許在機器M2上要用多條指令來完成;不同機器的CPI 和時鐘周期也不同,因而同一條指令在不同機器上所用的時間也不同。

FLOPS(Floating-point Operations Per Second):每秒執行多少次浮點運算。

注意:

在描述存儲容量、文件大小等時,K、M、G、T通常用2的冪次表示,如1Kb=2^10b;在描述速率、頻率等時,K、M、G、T通常用10的冪次表示。如 1kb/s=10^3b/s。通常前者用大寫的K,后者用小寫的k,但其他前綴均為大寫,表示的含義取決于所用的場景。

例題:

1.程序P在機器M上的執行時間是 20s,編譯優化后,P執行的指令數減少到原來的 70%,而 CPI增加到原來的1.2倍,則P在M上的執行時間是()

解答:

假設原來的指令條數為x,則執行時間=指令條數*每條指令的時鐘周期數*時鐘周期的長度=

x*CPI*1/f? ? ? ? 得到:20=(x*CPI)/f? ? ? ? 所以原來的CPI=20f/x

經過編譯優化后,指令條數減少為原來的70%,即指令條數為0.7x,而CPI增加到原來的1.2倍,即24f/x,則現在P在M上的執行時間=(0.7x * 24f/x) / f =24*0.7=16.8s

2.假定計算機 M1和M2具有相同的指令集體系結構,M1的主頻為2GHz,程序P在M1上的運行時間為 10s。M2采用新技術可使主頻大幅提升,但平均 CPI也增加到 M1 的 1.5 倍,則 M2的主頻至少提升到多少才能使程序P在M2上的運行時間縮短為6s?

解答:

程序P在M1上的時鐘周期數=指令條數xCPI=CPU執行時間x主頻=10s*2GHz=2*10^10。M2的平均CPI為 M1 的1.5倍,因此程序P在 M2 上的時鐘周期數 =1.5*2*10^10=3x10^10。
要使程序 P在 M2上的運行時間縮短到6s,則M2 的主頻至少應為:

程序P所含時鐘周期數/CPU執行時間=3x10^10/6s=5GHz

由此可見,M2的主頻是 M1的 2.5 倍,但 M2 的速度卻只是 M1 的 1.67 倍。

所以,這也可以看出主頻高的CPU不一定比主頻低的CPU快:

主頻和實際的運算速度存在一定的關系,但目前還沒有一確定的公式能夠定量兩者的數值關系,因為 CPU 的運算速度還要看 CPU 的流水線的各方面的性能指標(架構、緩存、指令集、CPU 的位數、Cache 大小等)。由于主頻并不直接代表運算速度,因此在一定情況下很可能會出現主頻較高的 CPU 實際運算速度較低的現象。

4.翻譯程序和匯編程序

翻譯程序有兩種:一種是編譯程序,它將高級語言源程序一次全部翻譯成目標程序,只要源程序不變,就無須重新翻譯。另一種是解釋程序,它將源程序的一條語句翻譯成對應的機器目標代碼,并立即執行,然后翻譯下一條源程序語句并執行,直至所有源程序語句全部被翻譯并執行完。所以解釋程序的執行過程是翻譯一句執行一句,并且不會生成目標程序。

匯編程序也是一種語言翻譯程序,它把匯編語言源程序翻譯為機器語言程序。

編譯程序與匯編程序的區別:若源語言是諸如C、C++、Java 等“高級語言”,而目標語言是諸如匯編語言或機器語言之類的“低級語言”,則這樣的一個翻譯程序稱為編譯程序。若源語言是匯編語言,而目標語言是機器語言,則這樣的一個翻譯程序稱為匯編程序。

5.計算機體系結構和計算機組成的區別和聯系

計算機體系結構是指機器語言或匯編語言程序員所看得到的傳統機器的屬性,包括指令集、數據類型、存儲器尋址技術等,大都屬于抽象的屬性。
計算機組成是指如何實現計算機體系結構所體現的屬性,它包含許多對程序員來說透明的硬件細節。例如,指令系統屬于結構的問題,但指令的實現即如何取指令、分析指令、取操作數、如何運算等都屬于組成的問題。因此,當兩臺機器的指令系統相同時,只能認為它們具有相同的結構,至于這兩臺機器如何實現其指令,則完全可以不同,即可以認為它們的組成方式是不同的。

例如,一臺機器是否具備乘法指令是一個結構的問題,但實現乘法指令采用什么方式則是一個組成的問題。許多計算機廠商提供一系列體系結構相同的計算機,而它們的組成卻有相當大的差別。即使是同一系列的不同型號機器,其性能和價格差異也很大。

6.基準程序執行得越快說明機器的性能越好嗎?

一般情況下,基準測試程序能夠反映機器性能的好壞。但是,由于基準程序中的語句存在頻度的差異,因此運行結果并不能完全說明問題。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17333.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17333.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17333.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI智能體|扣子Coze文生圖功能接入微信公眾號

大家好,我是無界生長。 AI智能體|扣子Coze文生圖功能接入微信公眾號本文分享了如何將Coze平臺的文生圖功能接入微信公眾號的詳細操作流程,包括創建圖像流、創建并配置Bot、設置提示詞和開場白、調試、發布等步驟。如果看完還沒學會的話&…

網頁圖片加載慢的求解指南

網頁/圖片加載慢的求解指南 一、前言與問題描述 今天剛換上華為的HUAWEI AX3 Pro New,連上WIFI后測速雖然比平時慢,但是也不算太離譜,如下圖所示: 估計讀者們有也和作者一樣,還沒意識到事情的嚴重性😁。 …

08Django項目--用戶管理系統--查(前后端)

對應視頻鏈接點擊直達 TOC 一些朋友加我Q反饋,希望有每個階段的完整項目代碼,那從今天開始,我會上傳完整的項目代碼。 用戶管理,簡而言之就是用戶的增刪改查。 08項目點擊下載,可直接運行(含數據庫&…

PHP框架 Laravel

現在因為公司需求,需要新開一個Laravel框架的項目,毫無疑問,我又被借調過去了,最近老是被借調,有點陰郁,不過反觀來看,這也是好事,又可以復習和鞏固一下自己的知識點,接下…

大數據開發面試題【Spark篇】

115、Spark的任務執行流程 driver和executor,結構式一主多從模式, driver:spark的驅動節點,用于執行spark任務中的main方法,負責實際代碼的執行工作;主要負責:將代碼邏輯轉換為任務、在executo…

編譯qt5.15.2(mac/windows)的mysql驅動(附帶編譯好的文件)

文章目錄 0 背景1 編譯過程2 福利 0 背景 因為需要連接到mysql數據庫,所以需要連mysql驅動。 1 編譯過程 1,打開文件/Users/mac/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers/sqldrivers.pro,注釋掉QMAKE_USE mysql; 如…

國產【Jetson Xavier NX】——從裸機到深度學習開發環境配置

1、設置系統從固態硬盤啟動 英偉達官方NX出廠是直接將SD卡(64/128G)燒錄系統作為系統盤使用,國產NX出廠是將系統配置在8G內存中,在后續使用中需配置大量開發包,故將系統設置為從固態硬盤啟動。 參考鏈接 https://blo…

vue3中使用svg圖標

安裝依賴 npm i vite-plugin-svg-icons -D vite.config.ts中添加配置 主要為指定svg圖標存放路徑以及命名方式 import { defineConfig } from vite import vue from vitejs/plugin-vue import { createSvgIconsPlugin } from vite-plugin-svg-icons import path from path;…

總結力學_3

參考: 陳曦<<力學講義>>http://ithatron.phys.tsinghua.edu.cn/downloads/mechanics.pdf 10 非慣性系 10.1 勻加速平動非慣性系 10.2 定軸勻速轉動非慣性系 可以更好刻劃總結力學_2的有心力運動、質點系的運動的工具! 11 線性系統 11.1 線性系統、11.2 受迫…

【深入理解Python中的裝飾器】

文章目錄 前言裝飾器的基本概念帶參數的裝飾器類作為裝飾器結論 前言 裝飾器是Python中一個非常強大且靈活的特性&#xff0c;它允許程序員在不修改原函數代碼的情況下&#xff0c;增加或修改函數的行為。裝飾器本質上是一個接受函數作為參數并返回一個新函數的函數。本文將深…

點擊登錄按鈕先檢測輸入框的規則檢測(vue組合式)

<template><el-form :model"user" :rules"rules" ref"loginForm" label-width"auto" style"max-width: 600px"><el-form-item label"用戶名" prop"name"><el-input v-model"…

【Linux-LCD 驅動】

Linux-LCD 驅動 ■ Framebuffer 簡稱 fb■ LCD 驅動程序編寫■ 1、LCD 屏幕 IO 配置■ 2、LCD 屏幕參數節點信息修改■ 3、LCD 屏幕背光節點信息■ 4、使能 Linux logo 顯示 ■ 設置 LCD 作為終端控制臺■ 1、設置 uboot 中的 bootargs■ 2、修改/etc/inittab 文件 ■ LCD 背光…

ROS的noetic版本

設置 sources.list 執行下面命令&#xff0c;設置從清華源下載 ROS 軟件包。 sudo sh -c echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list設置密鑰 sudo apt-key adv --keyse…

鴻蒙知識點總結

1 Stage模型應用程序包結構 在開發態&#xff0c;一個應用包含一個或者多個Module&#xff0c;可以在DevEco Studio工程中創建一個或者多個Module。Module是HarmonyOS應用/服務的基本功能單元&#xff0c;包含了源代碼、資源文件、第三方庫及應用/服務配置文件&#xff0c;每一…

快速上手 HuggingFace

HuggingFace HuggingFace 是類似于 GitHub 的社區&#xff0c;它主要提供各種的模型的使用&#xff0c;和 github 不同的是&#xff0c;HuggingFace 同時提供了一套框架&#xff0c;進行模型推理&#xff0c;模型訓練、和模型庫文件的管理等等。本文將介紹&#xff0c;如何快速…

【MySQL精通之路】全文搜索(9)-全文解析器-MeCab

主博客&#xff1a; 【MySQL精通之路】全文搜索功能-CSDN博客 目錄 1.介紹 2.安裝MeCab Parser插件 3.創建使用MeCab分析器的FULLTEXT索引 4.MeCab Parser空間處理 5.MeCab分析程序停止字處理 6.MeCab Parser術語搜索 7.MeCab分析程序通配符搜索 8.MeCab語法分析器短語…

echarts學習篇

一、使用echarts 1.引入 Apache ECharts <!DOCTYPE html> <html> <head> <meta charset"utf-8" /> <!-- 引入剛剛下載的 ECharts 文件 --> <script src"echarts.js"></script> </head> </html> 2.…

深度神經網絡——什么是自動編碼器?

自動編碼器 自動編碼器&#xff08;Autoencoders&#xff09;是無監督學習領域中一種重要的神經網絡架構&#xff0c;它們主要用于數據壓縮和特征學習。 自動編碼器的定義&#xff1a; 自動編碼器是一種無監督機器學習算法&#xff0c;它通過反向傳播進行訓練&#xff0c;目標…

【夏之以寒-Kafka專欄 02】什么情況下會發生 QueueFullException?

作者名稱&#xff1a;夏之以寒 作者簡介&#xff1a;專注于Java和大數據領域&#xff0c;致力于探索技術的邊界&#xff0c;分享前沿的實踐和洞見 文章專欄&#xff1a;夏之以寒-kafka專欄 專欄介紹&#xff1a;本專欄旨在以淺顯易懂的方式介紹Kafka的基本概念、核心組件和使用…

2023山東ICPC省賽Problem B.建筑公司(拓撲排序)

2023 山東 I C P C 省賽 P r o b l e m B . 建筑公司 \Huge{2023山東ICPC省賽Problem B.建筑公司} 2023山東ICPC省賽ProblemB.建筑公司 文章目錄 題意思路標程 比賽鏈接&#xff1a;Dashboard - The 13th Shandong ICPC Provincial Collegiate Programming Contest - Codeforce…