計算機工作原理 --用三國故事理解程序與CPU結構需求

發(fā)布時(shí)間:2009-8-6 15:15    發(fā)布者:MCU
關(guān)鍵詞: CPU , 故事 , 計算機 , 三國 , 原理
計算機技術(shù)的實(shí)現是人類(lèi)思維的產(chǎn)物,實(shí)際上是人類(lèi)以自己的思維方式為藍本設計出來(lái)的一種模擬機,因此遠在工業(yè)革命以前,人們就已經(jīng)在思想上進(jìn)行了極為類(lèi)似的的模擬實(shí)驗,這些可以從我們熟知的一個(gè)經(jīng)典的故事中找出。

三國演義三國時(shí)期孫權和劉備為聯(lián)合抗擊曹操,約定劉備可暫時(shí)作為荊州地區的行政官全權管理該地區的事物。在赤壁大戰擊敗曹操后,孫權一直向劉備索要荊州,而劉備則尋找各種借口就是不還。吳國大將軍周瑜在得知劉備的妻子甘夫人病故后心生一計,在征得孫權的同意后,便派人前往劉備處,表示孫權想將自己的妹妹孫尚香嫁予劉備,條件是劉備須到吳國完婚。周瑜計劃等劉備到吳國后扣押劉備,然后以此要挾劉備索回荊州的管轄權。

劉備的軍師諸葛亮在獲悉全部情況后,便勸劉備前往結親,并派得力干將趙云帶500軍士隨行。行前諸葛亮交給趙云3個(gè)錦囊,并告知3個(gè)錦囊里有3條指令,其中第一個(gè)在一到吳國的地盤(pán)南徐(地名)時(shí)打開(kāi),第二個(gè)是劉備在吳國住到年終時(shí)打開(kāi),第三個(gè)是在情況緊急時(shí)打開(kāi)。

一到吳國屬地,劉備就感到極其不安,于是趙云便取出第一個(gè)錦囊,指令告訴趙云,讓他命令大部分軍士全部到集市購買(mǎi)各種禮物,并散布劉備將要與孫權妹妹結親的消息。而劉備自己則和趙云帶上禮物一同去拜訪(fǎng)孫權母親的親家喬國老,通報劉備將要迎娶孫尚香的消息。

這樣由軍士散布市井消息,又由喬國老通知孫權的母親吳國太,于是劉備要娶孫權妹妹的消息全吳國都知道了。在此情況下,再扣押劉備于情于理都說(shuō)不過(guò)去,所以孫權也只好把妹妹嫁給劉備。

只要劉備還呆在吳國,索要荊州的希望仍然是很大的。劉備一生四處顛簸幾乎沒(méi)過(guò)過(guò)什么安逸的生活,而吳國生活富裕風(fēng)景優(yōu)美,新婚的劉備居然樂(lè )不思蜀不提回荊州的事了。此時(shí)已到年終,趙云只好拿出第二個(gè)錦囊取出第二條指令。趙云按指令要求,報告劉備說(shuō)諸葛軍師送來(lái)急報曹操軍隊正在攻打荊州讓劉備火速趕回。劉備一聽(tīng)馬上說(shuō)服新婚妻子孫尚香隨他一起立即趕回荊州,連給母親哥哥辭行的禮節也都免了。

周瑜得知劉備不辭而別趕往荊州的行動(dòng)后,立即派將領(lǐng)兵堵截。在無(wú)法脫身時(shí)趙云取出第三個(gè)錦囊,第三條指令要劉備對妻子哭訴周瑜有意害他,全然不顧孫尚香的公主身份等等。弄得公主怒氣沖天,便以吳國公主的身份上前斥責擋路的將領(lǐng)。礙于公主的身份,吳國將領(lǐng)只好讓道。等吳國老大孫權親自下令堵截時(shí),劉備已經(jīng)跑出了吳國能夠控制局面的范圍。

這個(gè)故事是一個(gè)非常典型的程序化工作方式,歷史上是否真的發(fā)生過(guò)并不重要。重要的是早在明朝三國演義作者的羅貫中就已經(jīng)設想過(guò)程序的工作方式了,并在寫(xiě)作中體驗了一下編程序的味道。

全面而仔細地討論這個(gè)經(jīng)典故事,不但能使我們理解計算機的工作方式,且對我們理解計算機的結構也會(huì )有莫大的幫助。

在上面的故事中諸葛亮不是一次就給趙云交待所有事情,而是給3個(gè)錦囊并要求一次只能打開(kāi)一個(gè)很可能是有其原因的,但這不在本書(shū)的討論范圍。我們可以將此理解為諸葛亮此次把趙云的任務(wù)做了程序化處理,“一次只能知道和處理一條命令”。這是計算機程序工作的重要特點(diǎn),計算機一次只能處理一條指令。

程序工作的第二個(gè)重要特點(diǎn)是有“前后順序”,不能出錯,假如趙云在第一次開(kāi)錦囊的時(shí)候不小心錯拿順序排在第二個(gè)的錦囊,那么劉備馬上就打道回府了,此次任務(wù)馬上以失敗告終。如果趙云在該拿出第二個(gè)錦囊時(shí)誤拿了第三個(gè)并執行,那不但會(huì )使任務(wù)失敗,很可能劉備的性命都不保,所以嚴格的順序是程序工作的另一個(gè)重要特點(diǎn)。

諸葛亮之所以敢于寫(xiě)下3條命令后讓劉備和趙云前往吳國,其原因在于他對將要發(fā)生的情況一清二楚,也就是說(shuō)他“對將要發(fā)生的事情已經(jīng)預知在先”,這是程序工作的唯一要素。程序員是在他(或她)知道將要處理的所有事情之后,才能編寫(xiě)出可以完成工作的程序。如果發(fā)生了程序員沒(méi)有預計到的情況,程序員是不會(huì )處理的。

假如周瑜在劉備一到南徐就把他扣下,那故事的結局就完全不同了。但諸葛亮篤定這種事情不會(huì )發(fā)生,因此不會(huì )給出相關(guān)的指令。

從上面的討論中我們知道了計算機的工作特點(diǎn)和編程要素,那么使用電子技術(shù)的計算機CPU需要什么樣的結構和指令系統才能工作呢?只要對上面的故事細節進(jìn)行深入的對比思考,我們就會(huì )很容易了解到CPU為什么會(huì )有現在這樣的結構,以及需要那些指令才能完成“計算”任務(wù)。

先比較一下程序化了的趙云與由電子技術(shù)構成的CPU系統之間的4個(gè)差別:

(1) 信號系統:趙云是個(gè)活人,主要有三種信號起作用,即視覺(jué)、聽(tīng)覺(jué)和觸覺(jué)。而計

算機系統只有一種信號系統,即電平的高和低(0和1);

(2) 解碼方式:趙云有復雜的語(yǔ)言能力,加上能閱讀文字,因此解碼能力超強,諸葛亮

只須將復雜任務(wù)寫(xiě)在字條上,趙云就能理解并完成。而CPU是機器屬性,只能通過(guò)對電平信號組的硬性規定來(lái)選擇相應的功能電路(在技術(shù)上稱(chēng)為譯碼電路)來(lái)完成極其簡(jiǎn)單的指令,和人們使用的文字語(yǔ)言相比,計算機的指令少得可憐,通常在三十多條至一百多條之間,功能也極其簡(jiǎn)單,因此程序員常常為完成一個(gè)簡(jiǎn)單的任務(wù)需要寫(xiě)上許多條指令;

(3) 執行指令的間隔:趙云拆開(kāi)錦囊的時(shí)間沒(méi)有明確的規定,諸葛亮只告知拆錦囊時(shí)的

必要條件,指令間隔內其它事情如劉備的起居飲食安全保衛等一律由趙云自己處理,不需要下達特別的指令。而CPU靠系統提供的時(shí)鐘頻率運行,指令的時(shí)間間隔非常精確,只要提供系統電力它便不停地運行,即使在看起來(lái)沒(méi)有處理任何事物時(shí)也不會(huì )停止執行指令操作。CPU系統不能自己處理任何事,它所做的每一件事情都必須在程序員的指令下完成,甚至包括等待任務(wù)的待機方式,都由程序員編寫(xiě)的指令完成;

(4) 工作形式:趙云能夠自行處理和完成一般活動(dòng)中的所有事情,這些不用諸葛亮操心。

但有一個(gè)缺點(diǎn)就是需要休息。而CPU系統雖然缺心眼,所有事情都必須由程序員預先編寫(xiě)好程序,但只要維持電力供應就可以不停地運作,這是它比人優(yōu)越的唯一點(diǎn)。

通過(guò)以上比較可以看出,計算機技術(shù)只能在機器屬性限制的條件下對人的模擬,為方便討論,先委屈一下英勇神武的趙云先生,將他設想成一個(gè)不那么聰明能干的人,他的所有事情都需要諸葛亮事先用錦囊安排好。這樣要使趙云完成任務(wù)就需要諸葛亮給趙云準備裝有大量錦囊的指令,由于指令的順序不能有錯誤,所以還必須給所有錦囊編上順序號碼,為了防止錦囊丟失,諸葛亮還必須準備一個(gè)專(zhuān)門(mén)的器具,這個(gè)專(zhuān)門(mén)用來(lái)放置錦囊的器具相對CPU系統來(lái)說(shuō)就是程序存儲器,前面講過(guò)的存儲器是由許多存放數據的“房間”組成的,我們可以先將每個(gè)房間理解成一個(gè)“錦囊”,這樣CPU可以通過(guò)給存儲器的地址線(xiàn)輸出地址信號,讀到每個(gè)“錦囊”的內容。所以CPU自身有一個(gè)程序計數器,程序計數器的輸出端對接程序存儲器。計數器的工作方式是每輸入一個(gè)計數脈沖其計數輸出+1,所以CPU每完成一步操作就會(huì )讓程序計數器+1,自動(dòng)尋址到下一個(gè)錦囊的地址。

存放和按順序尋找錦囊的問(wèn)題解決了,下一步就是讀取和解碼指令的問(wèn)題。趙云并不是隨時(shí)都可以讀取錦囊指令的,比如在騎馬奔馳的時(shí)候、天黑看不清的時(shí)候或者有其他人干擾的時(shí)候。趙云讀取指令必須進(jìn)入一個(gè)能夠取出錦囊字條并安心閱讀的條件環(huán)境。CPU也一樣,它需要先將指令取到一個(gè)叫做“指令暫存器”的地方進(jìn)行譯碼處理。由于譯碼器的具體操作需要在講解CPU的機器指令集時(shí)才能完全搞清楚,所以本節只需將它理解成可以將指令翻譯的并啟動(dòng)執行的部件就可以了。實(shí)際上CPU的每一個(gè)功能操作都需要一個(gè)相應的“暫存器”,后面的章節將會(huì )結合指令集進(jìn)行詳細的介紹。

最后需要做的就是指令的實(shí)現與執行,趙云要執行指令就要運動(dòng)他的執行機構——身體,所以CPU要執行指令也需要動(dòng)用它的執行機構——總線(xiàn)(即地址、數據、控制三總線(xiàn))。這里初學(xué)者往往會(huì )感到十分困惑,總線(xiàn)不是用于指令的讀取和排序的嗎?怎么又變成執行機構了呢?

先不妨看一下趙云的主要執行機構:雙手,趙云要從錦囊里取字條,這時(shí)他的雙手用于取指,如果指令要求他拿起兵器去巡邏,他的雙手就要去拿上兵器并要操作馬匹或馬車(chē)等交通工具,趙云雙手是通用和多功能的。CPU的總線(xiàn)也是一樣的,除了完成取指操作外還能完成指令的執行,它也是通用和多功能的。趙云作戰需要配置用于戰斗的專(zhuān)用兵器,CPU的總線(xiàn)為完成專(zhuān)門(mén)任務(wù)也需要配置專(zhuān)門(mén)的工作硬件。趙云在不需要戰斗時(shí)把兵器丟在一邊,CPU也只是在需要操作時(shí)才通過(guò)總線(xiàn)來(lái)操作這些硬件,平時(shí)也會(huì )將它丟在一邊不予理會(huì )。

通過(guò)上面的對比討論,我們知道了CPU系統主要由3個(gè)部分構成的,即:指令讀取、指令譯碼和指令執行。下面將討論CPU到底需要什么樣的指令系統才能工作?
本文地址:http://selenalain.com/thread-2968-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页