1.1 計算機(jī)發(fā)展歷程
計算機(jī)硬件的發(fā)展:
第一代計算機(jī)(1946-1957):邏輯元件:電子管、機(jī)器語言編程
第二代計算機(jī)(1958-1964):邏輯元件:晶體管、開始使用高級語言:
fortran
第三代計算機(jī)(1965-1971):邏輯元件:較小規(guī)模的集成電路、高級語言迅速發(fā)展
第四代計算機(jī)(1972至今):邏輯元件:較大規(guī)模的集成電路、現(xiàn)代計算機(jī)(微處理器、流水線、高速緩存等)
1.2 計算機(jī)系統(tǒng)結(jié)構(gòu)層次
計算機(jī)系統(tǒng)組成
計算機(jī)系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)共同構(gòu)建起來
硬件:有形的物理設(shè)備,是計算機(jī)系統(tǒng)中實際裝置的總稱
軟件:在硬件上運行的程序和相關(guān)的數(shù)據(jù)及文檔
計算機(jī)功能部件
1.輸入設(shè)備 :
是指將程序和數(shù)據(jù)(外部信息)以計算機(jī)能識別和接受(讀懂)的方式輸入進(jìn)來,如鍵盤,鼠標(biāo)等。
2.輸出設(shè)備 :
就是將計算機(jī)處理的信息以人所能接受的方式輸出出來,比如顯示屏,打印機(jī)。
3.存儲器 :是計算機(jī)的存儲部件,用來存放程序和數(shù)據(jù)
主存儲器的組成:
注:現(xiàn)代計算機(jī)常把地址寄存器(MAR) 和數(shù)據(jù)寄存器(MDR)存在于CPU中
(后續(xù)第三章介紹)
地址寄存器(MAR):存放地址,經(jīng)過地址譯碼后找到所選的存儲單元;
數(shù)據(jù)寄存器(MDR):用于暫存從存儲器中讀或?qū)懙男畔?/p>
存儲體:存放二進(jìn)制信息
時序控制邏輯:產(chǎn)生存儲器操作所需的各種時序信號(讀、寫操作等)
存儲字(word):存儲單元中二進(jìn)制代碼的組合(可以為n*8bit即 8 16 32 64等)
存儲字長:存儲單元中二進(jìn)制代碼的位數(shù)(長度)
存儲元件:1bit(以dram為例 即為一個柵級電容 只能存儲一為信息)
即:存儲體由多個存儲單元組成,存儲單元由多個存儲元件組成
4.運算器 :是計算機(jī)的運算單元,用于算術(shù)運算和邏輯運算
運算器的核心單元是算術(shù)邏輯單元(ALU)
5.控制器
一般將運算器和控制器集成到同一個芯片上,稱為中央處理器(CPU)
計算機(jī)軟件分類
系統(tǒng)軟件:保證計算機(jī)系統(tǒng)高效運行的基礎(chǔ)軟件
包括操作系統(tǒng),數(shù)據(jù)庫管理系統(tǒng),語言處理系統(tǒng)(比如編譯器),分布式軟件系統(tǒng),網(wǎng)絡(luò)軟件系統(tǒng),標(biāo)準(zhǔn)庫系統(tǒng),服務(wù)性系統(tǒng)
應(yīng)用軟件:解決某個應(yīng)用領(lǐng)域中的各類問題而編制的程序(app)
包括各種科學(xué)計算類程序,工程設(shè)計類程序,數(shù)據(jù)統(tǒng)計與處理程序。
三個級別語言
1)機(jī)器語言。又稱二進(jìn)制代碼語言,需要編程人員記憶每條指令的二進(jìn)制編碼。
機(jī)器語言是計算機(jī)唯一可以直接識別和執(zhí)行的語言。
2)匯編語言。匯編語言用英文單詞或其縮寫代替二進(jìn)制的指令代碼,更容易為人們記憶和理解。使用匯編語言編輯的程序,必須經(jīng)過一個稱為匯編程序的系統(tǒng)軟件的翻譯,將其轉(zhuǎn)換為計算機(jī)的機(jī)器語言后,才能在計算機(jī)的硬件系統(tǒng)上執(zhí)行。
3)高級語言。高級語言(如C、C++、Java等)是為方便程序設(shè)計人員寫出解決問題的處理方案和解題過程的程序。通常高級語言需要經(jīng)過編譯程序編譯成匯編語言程序,然后經(jīng)過匯編操作得到機(jī)器語言程序,或直接由高級語言程序翻譯成機(jī)器語言程序。
高級語言——匯編語言的過程叫做編譯,匯編語言——機(jī)器語言的過程叫做匯編,
邊翻譯邊執(zhí)行的叫做解析。
計算機(jī)的工作過程
計算機(jī)的工作過程分為以下三個步驟:
1)把程序和數(shù)據(jù)裝入主存儲器。(loader干的)
2)將源程序轉(zhuǎn)換成可執(zhí)行文件。(生成hex文件)
3)從可執(zhí)行文件的首地址開始逐條執(zhí)行指令。(上電cpu進(jìn)行尋指,依次執(zhí)行)
1.從源程序到可執(zhí)行文件
1)預(yù)處理階段:預(yù)處理器(cpp)對源程序中以字符#開頭的命令進(jìn)行處理,
例如將#include命令后面的.h文件內(nèi)容插入程序文件。輸出結(jié)果是一個以.i 為擴(kuò)展名的源文件 hello.i。(1.頭文件要展開 2.#define這種定義的字符串要替代下 等操作)
- 編譯階段:編譯器 (ccl) 對預(yù)處理后的源程序進(jìn)行編譯,生成一個匯編語言源程序hello.s。
3)匯編階段:匯編器(as)將 hello.s 翻譯成機(jī)器語言指令,把這些指令打包成一個稱為可重定位目標(biāo)文件的hello.o,它是一種二進(jìn)制文件,因此在文本編輯器中打開它時會顯示亂碼。
4)鏈接階段:鏈接器(ld〉將多個可重定位目標(biāo)文件和標(biāo)準(zhǔn)庫函數(shù)合并為一個可執(zhí)行目標(biāo)文件,或簡稱可執(zhí)行文件。
本例中,鏈接器將hello.o和標(biāo)準(zhǔn)庫函數(shù)prinft所在的可重定位目標(biāo)模塊prinft.o合并,生成可執(zhí)行文件 hello。最終生成的可執(zhí)行文件被保存在輔存上。
PS.link完成后生成hex文件,才是可執(zhí)行的文件
2.指令執(zhí)行過程的描述
指令和變量數(shù)據(jù)存在主存里面
通用過程
先PC將指令地址發(fā)送給MAR,MAR根據(jù)地址在存儲體中找到指令數(shù)據(jù)存放在MDR中,之后MDR將指令存放在IR中,取指令結(jié)束,之后指令中的操作碼進(jìn)入CU中,地址碼重復(fù)上述取指令步驟,將數(shù)據(jù)發(fā)送到ACC中,執(zhí)行指令結(jié)束。
注意:
1.執(zhí)行指令階段 CU會根據(jù)不同指令把MDR數(shù)放在ACC/MQ/X等中
2.區(qū)分指令和數(shù)據(jù)的依據(jù):指令周期的不同階段
1.3 計算機(jī)的性能指標(biāo)
1.機(jī)器字長
計算機(jī)的位數(shù)(機(jī)器字長),表示計算機(jī)進(jìn)行一次整數(shù)運算(即定點整數(shù)運算)所能處理的二進(jìn)制數(shù)據(jù)的位數(shù)。計算機(jī)字長通常選定為字節(jié)(8位)的整數(shù)倍,通常是2,4,8倍。不同的計算機(jī),字節(jié)可能不同
2.數(shù)據(jù)通路帶寬
數(shù)據(jù)總線一次所能傳送信息的位數(shù)。
3.主存容量
MAR的位數(shù)反映存儲單元的個數(shù),如MAR為16位,表示存儲單元為2^16 = 64K;
存儲單元個數(shù)*位寬=容量(長×寬)
2^10=1k若MDR為32位,則存儲容量為2^16x32.
4.吞吐量,指系統(tǒng)在單位時間內(nèi)處理請求的數(shù)量 ;從用戶觀點看,它是評價計算機(jī)系統(tǒng)性能的綜合參數(shù)!
響應(yīng)時間,指從用戶向計算機(jī)發(fā)送一個請求,到系統(tǒng)對該請求做出響應(yīng)并獲得所需結(jié)構(gòu)的等待時間。
CPU時鐘周期。通常為節(jié)拍脈沖或T周期,即主頻的倒數(shù),它是CPU中最小的時間單位,每個動作至少需要1個時鐘周期。
主頻(CPU時鐘頻率)。機(jī)器內(nèi)部主時鐘的頻率,是衡量機(jī)器速度的重要參數(shù)。
CPU周期又稱為機(jī)器周期,由多個時鐘周期組成!
指令周期>CPU周期>時鐘周期
CPI(Clock cycle Per Instruction),即執(zhí)行一條指令所需的時鐘周期數(shù)。
CPU執(zhí)行時間,指運行一個程序所花費的時間。
CPU執(zhí)行時間 = CPU時鐘周期數(shù)/主頻 = (指令條數(shù)xCPI)/主頻
CPU的性能取決于三個要素:主頻、CPI 、指令條數(shù)
-
二進(jìn)制
+關(guān)注
關(guān)注
2文章
786瀏覽量
41571 -
計算機(jī)
+關(guān)注
關(guān)注
19文章
7383瀏覽量
87641 -
機(jī)器
+關(guān)注
關(guān)注
0文章
777瀏覽量
40667
發(fā)布評論請先 登錄
相關(guān)推薦
評論