- 大學(xué)計(jì)算機(jī)基礎(chǔ)
- 唐濟(jì)波 尤傳華
- 1194字
- 2019-10-12 16:13:02
1.7 計(jì)算機(jī)的工作原理
美籍匈牙利數(shù)學(xué)家馮·諾依曼(John von Neumann)于1946年提出了計(jì)算機(jī)設(shè)計(jì)的三個(gè)基本思想:
①計(jì)算機(jī)由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備五個(gè)基本部分組成。
②采用二進(jìn)制形式表示計(jì)算機(jī)的指令和數(shù)據(jù)。
③將程序(由一系列指令組成)和數(shù)據(jù)存放在存儲(chǔ)器中,并讓計(jì)算機(jī)自動(dòng)地執(zhí)行程序。
其工作原理是將需要執(zhí)行的任務(wù)用程序設(shè)計(jì)語(yǔ)言寫成程序,與需要處理的原始數(shù)據(jù)一起通過輸入設(shè)備輸入并存儲(chǔ)在計(jì)算機(jī)的存儲(chǔ)器中,即“程序存儲(chǔ)”;在需要執(zhí)行時(shí),由控制器取出程序并按照程序規(guī)定的步驟或用戶提出的要求,向計(jì)算機(jī)的有關(guān)部件發(fā)布命令,并控制它們執(zhí)行相應(yīng)的操作,執(zhí)行的過程不需要人工干預(yù)而自動(dòng)連續(xù)地一條指令一條指令的運(yùn)行,即“程序控制”。馮·諾依曼計(jì)算機(jī)工作原理的核心是“程序存儲(chǔ)”和“程序控制”。按照這一原理設(shè)計(jì)的計(jì)算機(jī)稱為馮·諾依曼計(jì)算機(jī),其體系結(jié)構(gòu)稱為馮·諾依曼結(jié)構(gòu)。目前,計(jì)算機(jī)雖然已發(fā)展到了第五代,但基本上仍然遵循馮·諾依曼原理和結(jié)構(gòu)。但是,為了提高計(jì)算機(jī)的運(yùn)行程度,實(shí)現(xiàn)高度并行化,當(dāng)今的計(jì)算機(jī)系統(tǒng)已對(duì)馮·諾依曼結(jié)構(gòu)進(jìn)行了許多變革,如指令流水線技術(shù)、多核處理技術(shù)、平行計(jì)算技術(shù)等。
1.計(jì)算機(jī)的指令系統(tǒng)
指令是能被計(jì)算機(jī)識(shí)別并執(zhí)行的命令。每一條指令都規(guī)定了計(jì)算機(jī)要完成的一種基本操作,所有指令的集合就稱為計(jì)算機(jī)的指令系統(tǒng)。計(jì)算機(jī)的運(yùn)行就是識(shí)別并執(zhí)行其指令系統(tǒng)中的每條指令。
指令以二進(jìn)制代碼形式來表示,由操作碼和操作數(shù)(或地址碼)兩部分組成,如圖1-3所示。操作碼指出應(yīng)該進(jìn)行什么樣的操作,操作數(shù)表示指令所需要的數(shù)值本身,或數(shù)值在內(nèi)存中所存放的單元地址(地址碼)。

圖1-3 指令的組成
2.計(jì)算機(jī)執(zhí)行指令的過程
計(jì)算機(jī)的工作過程實(shí)際上就是快速地執(zhí)行指令的過程,認(rèn)識(shí)指令的執(zhí)行過程就能了解計(jì)算機(jī)的工作原理。計(jì)算機(jī)在執(zhí)行指令的過程中有兩種信息在流動(dòng):數(shù)據(jù)流和控制流。數(shù)據(jù)流是指原始數(shù)據(jù)、中間結(jié)果、結(jié)果數(shù)據(jù)、源程序等。控制流是由控制器對(duì)指令進(jìn)行分析、解釋后向各部件發(fā)出的控制命令,指揮各部件協(xié)調(diào)地工作。
計(jì)算機(jī)執(zhí)行指令一般分為以下四個(gè)步驟:
①取指令。控制器根據(jù)程序計(jì)數(shù)器的內(nèi)容(存放指令的內(nèi)存單元地址)從內(nèi)存中取出指令再送到CPU的指令寄存器。
②分析指令。控制器對(duì)指令寄存器中的指令進(jìn)行分析和譯碼。
③執(zhí)行指令。根據(jù)分析和譯碼的結(jié)果,判斷該指令要完成的操作,然后按照一定的時(shí)間順序向各部件發(fā)出完成操作的控制信號(hào),完成該指令的功能。
④一條指令執(zhí)行后,程序計(jì)數(shù)器加1或?qū)⑥D(zhuǎn)移地址碼送入程序計(jì)數(shù)器,然后回到步驟①,進(jìn)入下一條指令的取指令階段。
3.計(jì)算機(jī)執(zhí)行程序的過程
程序是為解決某一問題而編寫的指令序列。計(jì)算機(jī)能直接執(zhí)行的是機(jī)器指令,用高級(jí)語(yǔ)言或匯編語(yǔ)言編寫的程序必須先翻譯成機(jī)器語(yǔ)言,然后CPU從內(nèi)存中取出一條指令到CPU中執(zhí)行,指令執(zhí)行完,再?gòu)膬?nèi)存取出下一條指令到CPU中執(zhí)行,直到完成全部指令為止。CPU不斷地取指令、分析指令、執(zhí)行指令,這就是程序的執(zhí)行過程。
- Design Principles for Process:driven Architectures Using Oracle BPM and SOA Suite 12c
- GeoServer Cookbook
- 程序設(shè)計(jì)與實(shí)踐(VB.NET)
- 小程序?qū)崙?zhàn)視頻課:微信小程序開發(fā)全案精講
- INSTANT OpenCV Starter
- 機(jī)器學(xué)習(xí)系統(tǒng):設(shè)計(jì)和實(shí)現(xiàn)
- Building a Quadcopter with Arduino
- Python完全自學(xué)教程
- JavaScript 程序設(shè)計(jì)案例教程
- Python編程從0到1(視頻教學(xué)版)
- Visual C++開發(fā)入行真功夫
- Rust游戲開發(fā)實(shí)戰(zhàn)
- DB2SQL性能調(diào)優(yōu)秘笈
- Python機(jī)器學(xué)習(xí)與量化投資
- 安卓工程師教你玩轉(zhuǎn)Android