轉載一則朋友圈新聞: 2月30日,考古學家在發掘大荒山無稽崖青梗峰下的一處石器時代的遺址時獲得重大發現!一臺外觀完好的電腦,在歷經10000多年的滄海桑田後終於重見天日。一個包括程式員在內的跨學科專項組迅速成立,對這台電腦的初步研究表明,該電腦能夠順利啟動並正常運行。在本報記者拍攝的照片上可以 ...
轉載一則朋友圈新聞:
2月30日,考古學家在對我國西北邊陲大荒山無稽崖青梗峰下的一處石器時代的遺址發掘工作中取得重大發現!一臺外觀完好的電腦,在地下沉睡10000多年、歷經滄海桑田後終於重見天日。有關部門迅速抽調精幹力量,成立了包括程式員在內的跨學科專項組,初步研究表明,該電腦能夠順利啟動並正常運行。而在本報記者拍攝的高清照片上可以看到,該電腦正在執行一個計算圓面積的程式:
我們向項目組成員、退休程式員LowG瞭解到了該電腦的組成結構和工作原理等更多信息。
電腦組成及工作原理
據Low師傅介紹,這台石器時代的電腦,其工作原理與現代電腦無異。Low師傅向記者詳細講解了這台電腦的部件結構和程式的執行過程,現完整轉錄,以饗充滿好奇心的讀者。
Low師傅:這個…你現在看到的這台電腦它這個…呃…是由以下幾部分組成的:
- CPU(Central Processing Unit,中央處理器),這是電腦的核心部件。電腦之所以叫做電腦,是因為它是用來計算的機器,而計算就是由CPU來執行的
- 記憶體(Memory,簡稱 Mem)。記憶體就像一個抽屜櫃,每個抽屜裡面可以放一條數據(Data)。所有抽屜按順序編號,正如照片上的37、38、39… 這叫記憶體地址(Memory Address),CPU就是通過記憶體地址往某一個抽屜裡面存數據,或者從裡面取數據
- 外圍設備,包括輸入設備(例如鍵盤)、輸出設備(例如顯示屏)、磁碟(Disk)等。外圍設備由I/O模塊控制,嗯,你真聰明!I/O就是輸入(Input)和輸出(Output)的意思
- 匯流排。CPU、記憶體、I/O設備通過匯流排連接起來,互相傳遞信號和數據
程式本身是一個文件。通常我們也將程式叫做可執行程式,其原因是不言自明的。在Windows中,可執行程式的文件擴展名是.exe,例如,Windows自帶的繪圖程式,在 C:\Windows\System32 文件夾中,文件名是 mspaint.exe。
當用戶雙擊一個可執行程式時,操作系統就從磁碟上將程式載入到記憶體中,CPU開始執行程式中的第一條指令。這樣,程式就開始運行了。
程式包括數據和指令2部分。其實指令本身也是數據,一種特殊的數據;還記得嗎,前面說過,記憶體是用來存放數據的,既然程式能被放到記憶體中,那就說明程式指令也是數據。
我們知道,圓面積的計算公式是
A = π × R2
其中,π是常數3.14159…,R是圓的半徑。由於絕大部分地球人智力退化,手工計算圓的面積不僅耗時漫長,且易出錯,所以,程式員專門寫了一個圓面積計算程式,用戶只需要輸入半徑R,程式就能計算出圓面積,並輸出到顯示屏上。電腦就是專門用來做這種機械、繁瑣的計算工作的,它第一是算得快,第二是算得準,只要程式的演算法是正確的,用戶的輸入是正確的,它算出來的結果就一定是正確的。
圓面積程式包含下列數據:
- π=3.14159
因為π是常數,所以程式員就把它寫在程式裡面了,否則,用戶每次都要輸入這個數,你知道地球人的耐心程度的,萬一自己輸錯了反倒怪程式員…
圓面積程式包含下列指令:
- Read R -- 這條指令表示,從輸入設備讀一個數,這個數取了個名字叫 R
- R2 = R × R -- 這條指令表示,計算R的平方,得到的結果取個名字就叫 R2。CPU並不能計算一個數的平方,但是可以算乘法,所以這裡只能這樣子了。你看,電腦傻吧
- A = π × R2 -- 這條指令表示,用π乘以 R2,得到的結果取個名字叫 A。π是包含在程式內的數據,R2 是上一個指令計算出來的
- Write A -- 這條指令表示,把 A 寫出到輸出設備
一般情況下,CPU執行完一條指令後,會接著執行下一條指令。所以,圓面積程式在運行時,CPU就會按照上面的順序依次執行這4條指令。
用戶輸入的數,以及程式運行過程中產生的數,叫做變數。花2秒鐘時間想想“變數”的字面意思是什麼,然後我再告訴你程式裡面還有一種數叫做常量,圓面積程式裡面的常數π就是一個常量。你可以把變數和常量對立起來看,也可以把常量理解成一種特殊的變數,它的特殊性在於它不能變。變數和常量都有名字,稱為變數名。
聰明的你一定已經猜到了,常量位於程式的數據區,也就是照片上黃色的部分,在程式啟動時裝載到記憶體;而變數則是在程式執行過程中,由CPU存放在記憶體的“運行記憶體”區,也就是照片上藍色的部分。
知道了這些,我們就可以理解程式的執行過程了:
- 用戶雙擊可執行程式,程式啟動,操作系統將程式從磁碟上裝載到記憶體中地址38--42範圍內。其中地址38--38是數據區,地址39--42是指令區
- CPU讀取第一條指令,即地址39處的指令 Read R
- CPU執行 Read R 指令。CPU從輸入設備讀取用戶輸入的數,此數變數名為 R,將R存放到記憶體地址 43。如果CPU在讀取用戶輸入時,用戶並沒有輸入,則CPU會一直等待,直到用戶輸入為止
- CPU讀取下一條指令,即地址40處的 R2 = R × R
- CPU執行指令 R2 = R × R。CPU將地址43處的R與自己相乘,得到的結果變數名為 R2,存放到地址44
- CPU讀取下一條指令,即地址41處的 A = π × R2
- CPU執行指令A = π × R2。CPU將地址38處的π與地址44處的R2相乘,得到的結果變數名為 A,存放到地址45
- CPU讀取下一條指令,即地址42處的 Write A
- CPU執行指令 Write A。CPU將地址45處的A寫到輸出設備
- 程式執行完畢,操作系統清空程式運行期間所占用的記憶體,包括運行記憶體
嗯,差不多就是這樣子的
記者手記
聽著Low師傅娓娓道來,記者不禁感嘆,原來電腦的工作原理so easy啊!媽媽再也不用擔心我不懂電腦啦!另外LowG師傅還告訴記者,雖然上文這個程式中只有乘法計算,其實,CPU可以執行2類運算:
- 算術運算,如:加、減、乘、除等
- 邏輯運算
由於項目研究正進入攻堅階段,如對該電腦I/O中斷機制的論證、隨其一同出土的一批石刻代碼和文獻的清點等已提上日程,而項目組亦面臨嚴重的人員和經費緊張,記者不便多加打擾,便與LowG師傅約定改日有空再談談邏輯運算。握手辭別LowG師傅時,已是晚上9:15,華燈初上,萬家團圓。在驅車返回報社的途中,記者看到沿路紅旗招展、花團錦簇,一派繁榮富貴的景象!而回想起Low師傅那蒼老而矍鑠、沉穩而親切的面龐,以及千千萬萬像Low師傅這樣可敬的程式員們躬身在一方鍵盤上辛勤耕耘、默默奉獻的偉岸身影,我對偉大祖國的崛起信心滿滿!
據悉,該電腦現已上交國家。