4 電腦的基本原理
說了半天,你一定還搞不懂什麼是電腦,別急,在這一節裡,我要介紹一些基本的原理。如果你看來嫌枯燥,我勸你先不妨走馬看花,以後有興趣再細細地看它。因為,只有在這些細節裡,你才能完全瞭解電腦這個怪物在玩什麼鬼花樣。更進一步說,除非你不想破壞對電腦的偶像崇拜,否則,你會清楚地瞭解,電腦原來這樣簡單,這樣的無知!
要知道電腦多麼無知,只要看看這個例子。如果用一加一千,連小學生都馬上知道是一千零一。可是電腦卻麻煩大了,它必須把一加上十個進位才行。或許,你學過電腦,你會說:「胡說!我們寫程式沒有這樣麻煩。」別忘了,你寫的程式是經過人們特別安排的,包括最起碼的機器碼在內,都是人用來幫電腦簡化其動作的。我們既然要瞭解電腦基本原理,就必須由其最原始功能說起。
首先,我們要知道電腦的中樞裡有一個計時脈衝。它在每秒鐘振動數十萬次到數百萬次,它每振動一次,就產生一個訊號。這個訊號由無到有,然後又由有到無。有訊號時,就傳送到所有聯通的線路上一個固定的電壓(正五伏特)。這個有與無反覆交替,每秒鐘變化二百萬次時,我們就稱之2MHZ,即二百萬赫茲。
現在你應該看出來零與壹的意義了,前述的振盪,在「有」時電壓為5 伏,相當於1 ,「無」時相當於0 。這種數字對時鐘脈衝而言是種規律,它們永遠是相依為命,一前一後,永不分離。這個規律的0、1是辨識所有訊號的同步基礎,正因為它簡單、明確,所以電腦簡單、明確。
問題在,什麼叫同步基礎呢?如果你看過戰爭影片,在拂曉攻擊之前,全營官兵集合,指揮官宣稱:「對錶!」連、排長們立刻小心仔細地將錶準備好。指揮官說:「五點十分三秒正!」大家立刻撥好錶,(當然,要對秒針不容易,可是你也得設法記下其差值,否則後果不堪設想。)然後,各種行動按時實施。
攻擊部隊要盡全力深入敵境,而後方支援火力則準備待命,至約定時刻,分秒不差,陣地砲轟開始。此時,在前線的部隊們若過早尋掩體,可能失去進攻的良機;過遲則難免受到不分敵我的砲彈催殘,這種時間的配合,便是同步。
在電腦中,同步的重要性遠大於一切。前面說過,計時脈衝每秒振動二百萬次,也就是每個脈衝佔時二百萬分之一秒,以術語說等於0.5 微秒。換句話說,每秒鐘可有二百萬個動作須要分辨,如果不同步,各唱各的調,豈不天下大亂?
因此,電腦的中樞即根據這個同步脈衝來檢查所有訊號。也就是說,只要電腦中樞不犯情緒,它必然是一成不變地,每秒鐘檢查二百萬個訊號(當然,並不是這樣單純,但是,你這樣去瞭解它也就夠了)。
至於如何檢查訊號呢?在中樞中,有很多閘門。所謂閘門,也就是檢驗站,專門負責查視所有通過的訊號,並根據訊號的內容來決定做什麼。顯然,訊號是個主角,我們又必須先解釋一下什麼叫訊號才行。
訊號和時鐘脈衝一樣,也是零與壹所組成的,不過有一點分別。時鐘脈衝的排列是永恒不變的,而訊號則是非變不可的,否則所有訊號都相等,豈不等於沒有訊號?
我們再進一步說明:時鐘脈衝等於一個固定以0.5 個微秒速度通過一個檢查站閘門的標準,每開一次閘門,檢查一下是否有電壓通過。因此,在每秒鐘內,可能有零至二百萬個電壓反應被偵測到,這些被偵測到的反應就是訊號。
好了,閘門已經檢查到訊號了,然後根據訊號的性質內容來決定下一步的動作。
相信大家還是不瞭解訊號到底是個什麼玩意?人人都會口頭談談資訊,也都知道資訊就是資料及訊息。但再問下去什麼是資料,什麼是訊息,那就煞風景了!簡單說來,資料是靜止的,訊息是動態。因此,二者實是一體兩面,資訊可說是所有現象在靜態的記錄或動態的傳遞之形式。
資訊並不是個新玩意,早在人類從叢林中跑出來之前,就充斥在宇宙間了。小鳥啾唧是資訊,犀牛角力也是資訊,連星光閃爍和太陽的黑子活動何嘗不是資訊?只是我們離不開人的立場,因此我們暫時狹義地避開那些莫測高深的訊號不談,僅僅「訊號」為經過人類概念思考後所釐定的一種辨識資料。
這就簡單了,我們已經解電腦僅能分辨開、關或有電壓及無電壓動作,我們也認定其為0 及1 兩種數字。既然電腦只認識0 與1 ,我們又怎能讓電腦來處理那麼多繁複的工作呢?
我們且來研究一下二進位數字吧,且假設:
0+0+0, 1+0+1那麼, 1+1+?
對了!既是二進位,就表示2應該進位,如同十進位時,十就不該寫成個位數一般,我們再假定:
1+1=10,同理,10+1=11, 11+1=100…
這種加法很簡單,只有0 與1 一直進位下去。顯然你可以看出來,位數愈多,其所能代表之數值愈大,可是這樣又如何加以運用呢?
如果電腦只為了計算數字倒還簡,現在的電腦愈來愈不像話,居然會下棋,還會給人作媒、倒果汁,這些不是數字可解決的。
幸而電腦生在洋人國度,否則它一定會被中國文字搞糊塗了。因為在康熙字典中,中文居然有四萬多個!西方拼音語系字母數目不一。以英文為例,有26個字,若分大小寫,則為52個,加上阿拉伯數字10個,標點及符號等32個,總共才94個。
以這94個號為基礎,再加上一些作為控制特殊命令,七加八加,加到128 種,恰好是2 的7 次乘幕。也就是說正等於二進位七位數。七位數比較討厭,因為與2 不是倍數,再加上在資料傳輸上為了保證正確。所以又特別加了第八位,以供檢查用,於是八位數的二進位數字成為電腦最基本的結構。
再進一步說,八位數的二進位數字一共有256 種排列組合(256 係指十進位數而言,如果你有興趣,不妨自己加一加看,只許用1 及0 ,根據二進位加法,進到第八次後,正好加了256 次)。在這256 種排列組合中,已將所有英文字母,標點符號,數字等全部包括在內。因此,這種基本結構可以配合前述機構,可以代表英文語系所欲表達的各種訊息。
各位一定想知道,中文怎麼辦呢?難道這種方法,我們不能用?如果不能,我們該怎麼辦?
這些正是我們要探討的主要內容。我們不能妄自菲薄,電腦是人發展出來的,人對訊號的辨識也不是天生的、一成不變的。因此,只要我們能把握住電腦設計的原理,以及訊號的特性,再根據我們的思維方式,加以改良,只要功夫下得夠,中文電腦絕對不輸於英文電腦。