網路城邦
上一篇 回創作列表 下一篇   字體:
[2015-1-26] SCFtw2〈數位計算機之為物〉
2015/01/28 22:36:13瀏覽2237|回應1|推薦11

.

〈數位計算機之為物〉
SCFtw2
2015-1-19完成.
2015-1-26在Zuse的Z1和Z3計算機項下補充資料.

德國數學家兼哲學家萊布尼茲在1679年提出【二進制數值表達格式】,還提到二進制可以把算術的規定和邏輯的規定結合起來。英國數學家George Boole在1847年提出邏輯代數,變數的值衹是邏輯真假值,真則以1表示,假則以0表示,也就是說這個0或1並不表示數值的大小,而衹是代表兩種不同的邏輯狀態。

1886年,美國哲學家兼邏輯學家兼數學家兼科學家Charles Sanders Peirce在一封信裡提到邏輯運算可以用開關電路來執行。1935年,俄國國立莫斯科大學(六年制)物理系剛畢業一年的Victor Shestakov用繼電器電路來解釋邏輯代數,但他直到1941年才發表有關的論文。1937年,美國MIT的電機碩士生Claude Shannon在碩士論文裡提出用繼電器和開關電路來實現二進制算術和邏輯代數。Shannon的這個研究成果奠定了數位電路設計的基本理論。現代所有的電腦程式語言都應用Boole的邏輯代數。

電路開關的狀態不是開就是關,如果把開的狀態當作1,把關的狀態當作0,就可以分別相應於邏輯代數裡的變數值1和變數值0,也可以直接表示【二進制數值表達格式】裡僅有的兩個數字1和0,那麼太妙了 —– 把很多電路開關排列組合起來不但可以表示數值很大的數字還可以進行邏輯運算和算術運算 —– 這就是數位計算機(也就是漢語世界今日通稱電腦者)這個玩藝兒開始發展的起點!

二進制表達之後是二進制運算,不然就不是計算機(calculator)了。而且在事理上這是必然 —– 不然改採二進制表達格式幹嘛?!二進制之下加減乘除開方的運算方式不難,用邏輯代數統統可以解決,難處在實體機器的設計 —– 尤其是電路設計。當時大都用繼電器(一種用電力操作的電路開關,當時廣泛用於通訊器材),所以運算速度很慢,而且達不到全電子,衹能是電動+機械式的。

數位計算機的發明史如下:

1935年,當年從柏林工業大學土木工程系畢業的德國人Konrad Zuse開始自己摸索著設計計算機。
1937年,美國通訊工程師George Stibitz造出一部用繼電器來表示二進制的計算機,1-bit,衹能演算加法。
1938年,完全單獨研究的Zuse完成了他的Z1計算機,用打孔膠帶輸入指令,用數字鍵盤輸入數據,用燈號顯示計算結果,有記憶裝置,採用浮點二進制,7-bit指數,16-bit尾數,1-bit正負號,但運算是機械式,大大小小的零件大約有三萬個。由於機械零件的精密度不夠,運算不穩定。
1939年,Zuse完成Z2,改用繼電器電路來運算並控制。
1941年,Zuse完成可程式的Z3,用上了兩千多個繼電器,記憶裝置改用繼電器,採用22-bit的浮點二進制,但時脈衹有5–10 Hz。Z3計算機(calculator)在觀念、架構、和功能上已經很接近現代的“電腦(computer)”,但是缺乏條件轉移指令。
Zuse在進行Z4計劃的時候同時開始研究高階程式語言。
1942年,美國有人用真空管取代繼電器,造出全電子的二進制計算機。
1945年初,Zuse在柏林的計算機作坊毀於盟軍轟炸,其後Zuse專心於他的高階程式語言研究,還寫了一個下西洋棋的程式當作例子,在1948年發表了摘要。

Zuse在二戰之前和二戰期間的計算機研究和成品當時的美國人和英國人不知道。Zuse的成就在戰後幾乎完全被美國人和英國人晾在一邊。2003年,Zuse被德國的公共電視臺ZDF選為排名第十五的最偉大的德國人。2010年,Zuse的百歲冥誕年,德國政府發行了一張Zuse紀念郵票和一枚十歐元的Zuse紀念幣。

使用二進制的計算機就不是類比計算機,而是數位計算機。

7一看就知道是個類比值,這個數值在數位域用1-bit和2-bit都沒法表示。它的3-bit數位值是111 —– 左邊的1代表類比值4 = 2^2,中間的1代表類比值2 = 2^1,右邊的1代表類比值1 = 2^0。4 + 2 + 1 = 7,所以數位值111就是類比值7。類比值7的4-bit數位值是0111,因為類比值7在“2^3位”的數值是0。如果4-bit格式裡的最右bit規定用來表示小數,那麼類比值7的4-bit數位值就是111.0,因為類比值7是個整數。十進位的規矩是“過9進位”,二進位的規矩是“過1進位”,所以就這樣。

地球人有而且衹有兩隻手,每隻手張開有而且衹有五根手指,所以十進位很自然,而且實際上也滿好用的。二進位使用的符號量過大(比如表達7這個數值所耗用的符號量是3 —– 3個1),而且符號集過小容易出差錯(比如1011010011容易聽錯說錯讀錯寫錯),然而交給機器處理的話這些都不是問題,而且工作最不容易出錯效率也最高的“純用電、完全不用機械的計算機器”就是能而且衹能處理用二進制表達的數值的機器 —– 因為可以把這臺機器設計成裡面完全靠開關電路來表達數值和運算邏輯。“不用機械”的好處不必多說,“用電”的好處也不必多說。高智生物發明計算機器是遲早的事,高智生物開物成務,“會用電”也是遲早的事,然後,不管是哪一個星球上的高智生物都總有一天會覺得純用電的二進制計算機乃是終極計算機。

計算機的生產和使用在二戰之前的歐美已經很普遍,那時最好的計算機都是電動+機械式的類比計算機。

早期的全電子數位計算機形體大,價格貴,真空管又容易燒壞,當然不能在日常計算工作上取代類比計算機,不過在科學計算和軍事用途上比類比計算機強得多。後來電晶體取代了真空管,IC晶片又取代了電晶體,加上其他方面的專屬於全電子數位計算機的巨大的技術進步,類比計算機的生路就絕了。

.

( 知識學習科學百科 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=SCFtw2&aid=20501832

 回應文章

SCFtw2
等級:8
留言加入好友
GolfNut惠賜的評論
2015/02/02 17:56
xxxxx
SCFtw2(SCFtw2) 於 2015-02-02 17:57 回覆:

.

http://blog.udn.com/GolfNut/guestbook?msgno=10217127#msg10217127
高本衲的部落格
留言時間:2015/01/24 00:34

幫人家做一件事,過程中寫了這篇,請你兇狠地指正,免得我貼出來之後被人罵假充內行 —– 雖然我的確是在假充內行

==================================
GolfNut(GolfNut) 於 2015/01/24 22:37 回覆:

這段歷史我不知道,但不難想見確有其然。

二進制成為現代計算機的數學基礎是必然的。外星人如果存在一定有電腦,他們的電腦也一定是二進制。

不過二進制數學只是現代計算機(俗稱電腦)的 mathematical mechanism。為什麼一具 driven by binary arithmatic 的電動機械可以完成許多邏輯運算並藉以解決種種問題的關鍵還是在 Alan Turing 的 automata。沒有杜靈機的話只是 calculator。

有了機械,有了數學,有了杜靈機的 automata,剩下的只是操作。操作的話就靠指令,指令終將轉化為電子電路訊號(就是電壓),而它的 manifestation 就是機器語言。機器語言(0 與 1)匯總而成較為人可理解的組合語言(Assembly Language),類人語文的 language 像 C 或 C++ 經 compiler 轉譯成組合語文後再由 Assembler 轉譯為 machine language 交付電腦執行。

而像 Java 等類的語言只是比像 C、C++ 等更高階、更省事、但更不直接的「語言」。

根據不同狀況需求演譯出來的操作指令以種種高階語言寫出來的程式就叫 application,俗稱 app。App 的性質背後的學理基礎粗分幾大類,管資料管理的叫 database,管語言學理的叫 compiler,管人工智慧的叫 AI,管通信功能的叫 networking,管計算機運作的叫 OS,各有其理論基礎。而一般小 app 像削蘋果切西瓜等的玩具算是雜項,沒有什麼理論。

整個計算機原理差不多就是這樣,細追下去當然很多,不是本行也不值得深究。我覺得你寫的完全內行,在 mechanic 這部份非常仔細,也就是說,Computer Science 的 Computer 那部份不涉電子學的話確是如此。電子學方面當然另當別論,Computer Science 的 Science 自然也是另一回事。不過那些不太重要,一般人也比較難懂。

-----------------------------------------------------------------
GolfNut(GolfNut) 於 2015/01/25 10:36 回覆:

『左邊的1代表類比值 4 = 22,中間的1代表類比值 2 = 21』

我知道你想寫的是 2 的二次方和一次方,但不懂的人會誤以為是二十二和二十一。

『不管是哪一個星球上的高智生物都總有一天會覺得純用電的二進制計算機乃是終極計算機』完全正確,就像任何高智生物也一定會發現進化論 —— 但很多人不明白何以然。

數位計算機已經成熟,Computer Science 的 computer 部份的電子電路雖然一直演進但迄未有重大突破,要等量子電腦。至於 science 部份我也看不出未來將有何種重大進展。例如 Artificial Intelligence 一直熱門不起來就因沒有重大突破。大公司像 IBM 等若與學界結合比較有可能開發出實質上有未來性的機種,otherwise 小公司像蘋果等只能在形體外觀 size 使用性上變來變去,沒有「基礎科學」上的重大突破 —— 商用而已。

.