簡體版

第四九五章 大明式的計算機底層概念

朱靖垣下達了正式的命令,相關人員立刻起身領命︰

「臣等遵旨。」

朱靖垣抬手示意,讓他們都坐回去,然後繼續問新的問題︰

「說到要收集數據做計算,現在欽天監、工部、軍械部,你們的計算機夠不夠用?」

齊彥槐馬上回應說︰

「感謝陛下關心,欽天監搬遷完成後,也同步啟用了最新的三型通用 晶計算機器。

「單機計算力達到了每秒一百萬次,應該能夠滿足欽天監目前的計算需求了。」

新任的工部尚書汪來也緊隨其後的補充說︰

「托陛下的洪福,大明的 晶計算機在這十年突飛 進。

「應天新都城設計建設的過程中,同步部署了工部研發完成的三型通用 晶計算機器。

「包括欽天監、工部、軍械部、都督府、皇家銀行、大明銀行在內。

「對計算力有比較強的需求的部門和機構的辦公區,都部署了每秒百萬次的計算機。

「其他機構也有了相同構架,算力略低的同系列型號。」

朱靖垣從兩人的回答中听到了兩個關鍵詞。

每秒一百萬次容易理解,這是前世美利堅六十年代初計算機水平。

至于通用計算機,也就是使用統一構架,可以使用相同的程序,並可以拓展存儲空間和外接設備的計算機。

朱靖垣前世用過的計算機基本都是通用計算機。

這種讓後人習以為常的東西,在計算機出現的最早期,是很多人難以想象的東西。

最早的計算機幾乎所有設備都是專用的。

兩台計算機之間的差距,就好像後世的台式電腦和手機之間的差距一樣。

真正的通用計算機,也是在六十年代初期出現的。

IBM公司在1965年正式公開銷售的system 360系列計算機。

正是這第一套通用計算機,留下了每個字節八個比特的計算機底層慣例。

朱靖垣在十年以前,就給大明的計算機項目列了一大堆目標。

這些目標同時也是指導,直接提供了經過驗證的發展方向。

電子管計算機,大明只發展了兩代驗證機,根本沒有大規模推廣,就沒有繼續制造了。

按照朱靖垣的建議,直接鑽進了晶體管的方向,並且直接朝著通用計算機前進。

大明的工匠們努力攻關十二年,終于把這套東西做出來了。

朱靖垣在心中對比了一下前世計算機的發展脈絡。

第一台公開的大型計算機埃尼阿克在1946年誕生。

第一台純晶體管計算機崔迪克在1954年誕生。

第一套通用計算機在1965年公開銷售。

在自己的直接推動下,大明用了十二年的時間,走完了前世美國人十九年的路。

計算機的技術的發展速度加快了一半,時間縮短了三分之一。

朱靖垣當初是給了方向,後續幾年也陸續給了一些指導。

但是在登基前的這幾年,朱靖垣沒有持續關注,現在對他們的最新進展也感興趣。

于是朱靖垣直接站了起來︰

「好,汪工、齊工,你們兩位帶我去看看,今天的會議就到這里吧。」

周圍的眾人再次一起起身行禮。

汪來和齊彥槐快步出列,少傅、司空兩個九卿也緊隨其後。

一行人在齊彥槐的引領下去了欽天監的機房。

到了門口的時候,齊彥槐伸手推開房門,然後馬上讓開一邊。

朱靖垣看到了機房內的景象。

大明當初的第一台計算機「道」,是用電子管為核心組裝的,當時佔滿了一整個大廳。

現在的這台「三型通用 晶計算機器」作為晶體管計算機,體積明顯小了一大截。

現在只剩下了一個佔滿了一面牆的大型機櫃了。

機櫃側面是一個大型操作台,上面放著一台看上去好像前世的老式電視的東西。

電視前面的台子上是幾排規整的按鍵。

它已經有了顯示器和鍵盤!

周圍還連接著電傳打印機、傳真機、打孔機等外置設備。

房間里面本來有幾個人正在使用計算機。

收到皇帝要過來的消息,都提前站在了計算機兩側等待,看到皇帝馬上行禮。

朱靖垣揮手示意,然後徑直走到了操作台前。

桌子上的鍵盤,就是自己當初設計的打字機用的那個鍵盤。

不過比打字機鍵盤更加復雜了。

除了五十六個打字鍵,周圍又加了一些功能和符號鍵,總共估計有一百個左右。

鍵盤的旁邊還放著幾份文件。

有圖表和文字說明,顯然是準備用于計算的數據。

而那台好像老式電視的顯示器上面,現在還顯示著一些文字。

就是自己日常用的漢字,加上世祖皇帝推行的句讀符號系統,以及一些夾雜其中的空位。

每一個字自己都認識,但是放在一起就看不懂了。

乍一看好像是亂碼。

仔細看的話,還能發現一些規律,似乎是用特定的單字和數字,組合表示特定的邏輯。

好像是某種程序語言。

只是把英文字母和數字都換成了漢字。

眼前的這一幕,這又讓朱靖垣確認了兩項重要信息。

這台計算機是能夠直接顯示漢字的。

更重要的是,他們用的程序語言,至少已經是匯編語言的級別了。

甚至可能是早期的高級語言了。

朱靖垣前世不是程序員,對編程用的程序語言也不是很懂,只是上學的時候在公共課上了解過基本的知識。

知道變電腦用的程序語言,大體上可以分成三個大層級。

機器語言,匯編語言,高級語言。

越往前的越接近機器語言,越往後的越接近人類語言。

越往前的語言編制的程序性能越高,因為可以直接輸入機器,直接進行物理層面的運算。

但是能夠執行的命令也越簡單,想要實現復雜功能的難度越高。

越往後的語言編制的程序性能越低,因為要經過讀取和翻譯,轉化成機器語言之後再去運行。

不過能夠執行命可以更加復雜,實現復雜功能的難度也越低。

在自己的前世,所有正兒八經的計算機程序語言,在最底層都是用英文表示的。

有少數程序可以在表層顯示漢字,但完全不成氣候。

其實程序語言不是不能使用漢字,因為早期程序語言本質上不是人類語言。

里面的那些英文字母本質上都是邏輯和定義符號。

用數字甚至星星框框表示一樣可以。

只要程序員能夠記住,每個圖像代表的是什麼指令。

之所以都是英文而沒有漢字,是因為早期程序員都用英文,所以用英文去記錄和表示命令。

這種傳統就形成了限制鐵軌寬度的馬。

最先建設鐵路的英國人,選擇的鐵軌寬度是正好容納兩匹馬行走的寬度。

這個與火車並沒有直接關系的數據,成了後世的標準鐵軌寬度。

計算機語言也是一樣。

計算機的基礎是晶體管,每一個晶體管可以看做是一組燈泡和開關。

關和開的這兩種狀態,可以參考燈泡是否亮起的狀態。

用二進制數來表示,就是0和1。

在大明的計算機器相關的研究中,工匠們習慣用陰和陽來代指。

每一個晶體管的兩個狀態,能夠表達的兩個數字,在前世被稱為一個「比特」。

在大明被稱為一個「數」,或者「爻(y o)」。

爻就是傳統八卦符號中那些中斷和連接的橫線的統稱。

一整條連續的橫線是陽爻,中間斷開的橫線是陰爻。

開和關的意義,陰與陽的象征,斷開與連接與執行,三者的意味天然趨同。

對大明的工匠們而言,這種命名都是理所當然的選擇。

人向機器傳遞的所有指令,想要被機器所識別並執行,都要轉化成一連串的開關命令。

計算機里面的開關太多了,人們為了方便管理和使用,就將其分成一個個的小組。

前世最早的計算機是四個一組,最後的通用計算機是八個一組。

這樣四個到八個一組開關的開關命令的長度,在後世就被稱為一個「字節」。

在大明被稱為一個「字」或者「卦」,就是八卦的卦。

機器語言,就是直接輸入開和關兩種信號,可以想象對零和一兩個鍵反復不斷地按。

實際上使用打空紙帶來執行的,用一個位置是否有空洞來表示開和關。

對二進制機器而言,他只能理解開和關。

比如說一組電路或者一項控制功能,在四爻(四位)機器上執行的方式是「關關關開」。

這個命令在機器看來,名字和意義就是「關關關開」,沒有什麼別的附加意義。

但是在人類視角下,「關關關開」只是一個編號,單純看這個容易混亂。

于是人類根據自己的設計思路,知道這個編號所代表的邏輯功能,用自己使用的人類語言中應該用什麼詞匯來描述。

美國人在自己的腦子和小本本里面,記下「addition=關關關開」。

大明人在小本本上寫下了「加=陰陰陰陽」,或者是畫上三陰一陽的爻線。

無論是addition還是加,都只是人類方便自己記憶的「備注」

在機器里面實際上都是在干「關關關開」的活兒。

要控制計算機,就要直接去控制四個開關,組成「關關關開」的效果。

最後計算機算完的數據,也用紙帶上對應位置的空洞順序,來表示一串的開和關。

人類再把這些有規律的開關,翻譯城人類能夠理解的語言。

最早期的計算機,是與人類語言完全沒有關系的,就看使用者怎麼去命名和解讀。

但是這樣實在太麻煩了。

如果能讓計算機直接識別人類語言就好了。

關鍵是,為什麼是我這個人類,把自己的話翻譯成你這個機器的語言。

為什麼不能是我說我們人類的語言,然後你這個機器自己去翻譯成你們機器能理解的語言?

機器當然不知道怎麼干。

于是人類給決定給機器做個翻譯器,或者說轉換器。

在翻譯器上輸入人類語言,翻譯器給機器翻譯成機器語言,再讓機器去執行計算。

計算機算完之後輸出,再讓翻譯器翻譯成人類語言。

這個想法是非常好的,這其實也是所有程序語言的基本邏輯。

程序語言的最終目的,就是實現人類直接說法,讓機器完全理解並完美執行。

只可惜啊,別說完全听懂人話並完美執行了,單純的讓機器直接執行最基本的命令,都讓最早的研究人員們費老勁了。

翻譯器怎麼才能把addition翻譯成一連串的開關呢?

怎麼讓機器知道「加」是什麼意思呢?

看上去,好像只要做一個表格,左邊一列寫addition或者加,右邊寫「關關關開」。

告訴機器,我輸入addition或者加,你就去給我執行「關關關開」。

然而更進一步的問題是,怎麼「輸入」addition或者加。

輸入法這個東西,在後世看來很常見的東西,在早期電腦上絕對是黑科技。

就算是看上去能夠按鍵直出的英文字母,也要去干一個物理按鍵綁定字母表的活兒。,

否則機器不知道a是啥,c又是啥,根本沒有b數。

所以要再做一個表格,把一個開關序列綁定a,一個開關序列綁定b,一個開關序列綁定c……二十六個字母和標點符號數字都做好。

再再做一個表格,把這些開關序列綁定鍵盤上的按鍵,並在按鍵上寫上a、b、c……

我依次按下寫著addition這幾字母的按鍵,計算機收到按鍵對應的信號去查表。

找到了關關開關、關關開開、關關關關……等一連串的開關命令。

如果是英文系統,這時候就在屏幕上依次顯示addition幾個字母。

同時,這關關開關、關關開開、關關關關……這一連串命令,按照順序組合起來,就對應另一個命令「關關關開」。

如果是漢字系統,這時候在屏幕上顯示「加」。

最後,計算機去執行最後的「關關關開「命令。

輸入英文是一個相同表格有幾個字母循環查幾遍,漢字是設計兩到四層嵌套的表格逐次查一遍。

做到這些就已經非常困難了。

甚至于,對早期計算機性能都有了一定的要求……

最早的計算機字節長度是四位的。

一個二進制位可以記錄兩個編號,字節長度為四的話,最多可以記錄二的四次方,也就是總共十六個編號。

這甚至不能容納所有的英文字母。

要記錄所有字母,至少要把字節長度增加到五,這樣編碼容量增加到了三十二。

可以容納所有的字母,再加上幾個常用的符號。

但是還不能同時單獨輸入數字,用純英文單詞去拼數字就太惡心了。

于是又把字節長度增加到六位,編碼容量增加到了六十四。

這就能夠容納字母、數字、常見符號了。

所以六位的計算機,甚至于在計算機出現之前,就在打孔卡上用了很久了。

但是六位的情況下,字母只能有大寫或者小寫一種。

匯編語言也全部都是大寫字母。

如果用來輸出文字的話,全篇大寫字母看著也是很頭疼。

所以就繼續增加到七位數。

這樣就有了總共一百二十八個的編碼容量,對于英語而言基本圓滿了。

能表達所有大小寫字母、主要符號、十個數字。

以及換行、回車、刪除等常用的輸入控制命令。

美利堅制定的ASCII標準就是七位編碼。

後世的通用計算機字節長度是八位,因為IBM設計的第一套通用計算機,在七位的基礎上增加了一位校驗碼。

後來隨著技術提升,校驗碼被省略,八位編碼的容量就增加到了二百五十六個了。

相比最初的計算機,字節長度已經翻倍了。

這還只是英文,如果要記錄漢字的話,難度就進一步飆升了。

現在大明通行的《通用標準漢字表》就有八千個字。

一個字卦長度至少要增加到十三爻,有八千一百九十二的容量才能容納。

字卦長度要增加到十五爻,有三萬兩千七百六十八的容量,才能整個《大明標準漢字總表》的所有漢字。

現在的生產工藝級別較低,還要參考IBM的做法,價格校驗位。

這樣字節長度就增加到了十六爻。

與此同時,三萬多個十六位字卦,編碼總容量已經達到了65536爻,折合前世的65KB。

這對于早期的計算機而言,是一個非常大的數字。

更關鍵的是,這只是漢字編號。

如果把漢字當做是一個個的人,這個表格相當于所有他們所有人的地址表。

要讓漢字在屏幕上顯示,還要把漢字做成點陣圖像。

按照前世的經驗,要讓漢字顯示的相對自然,要用十六乘以十六的點陣。

一個點陣的開關也要用一個字卦控制。

十六乘以十六就是256個字卦,32768個漢字合計8388608字卦,折合前世的16MB。

當時的大部分硬盤都裝不下,更別說內存了。

要讓漢字勉強完整顯示,不缺少筆畫,也要十二乘以十二的點陣。

這樣總共也要9MB。

就算是只記錄通用漢字表,也需要2.25MB。

七十年代以前的電腦,裝下這個東西是非常吃力的。

再次基礎上,這也還只是點陣字庫。

要通過鍵盤把漢字打出來,輸入到電腦里面去,還需要一個輸入法程序。

用于按照人類能夠理解的邏輯,通過特定的按鍵組合,把想要的漢字從字庫中篩選出來。

這個過程跟英文打單詞是一樣的,區別只是一個字母一個字母的顯示,最後組合起來形成命令。

還是依次打完特定的組合的按鍵,組合形成成命令的同時顯示出目標漢字。

如果不涉及到高級的聯想功能,用高度機械死板的輸入法,限定死只能用哪些漢字,就是這樣的邏輯。

不過,點陣數據還可以放在硬盤上,字表和輸入法就要載入內存了。

當時的超級計算機內存也只有100KB出頭的樣子。

這對當時的計算機而言是一個巨大的挑戰。

要先運行輸入法程序,從字表中篩查出要輸入的漢字,再去硬盤查點陣圖輸出到屏幕。

就算是不惜成本,將字庫輸入法都所有功能都實現出來了。

這台電腦多半也會出現打一個字就要等好幾秒的狀態。

所以,朱靖垣現在看到電腦屏幕上有漢字,就知道工部絕對沒有把漢字全做進計算機。

因為現在的電腦也不需要將所有漢字輸入進去。

這時候的計算機就不是用來處理文字的。

英文編程也不會把addition打完整,那這一個單詞就需要64B的空間來容納。

一段代碼打上幾十個單詞,就要佔用KB級別的內存了,英文系統同樣撐不住。

肯定要能省就省的,直接寫個ADD就行了。

反正電腦不是處理文字的,當時的命令也只有幾十個,單詞都用簡寫也不會認錯。

漢字肯定是這麼處理的,也只能這麼處理。

朱靖垣懷疑,這台電腦只能顯示一兩百,甚至幾十個漢字。

很可能是一個按鍵固定出一個字,一個對應一個固定的程序命令,剩下的就都是標點符號和數字了。

符號系統也不會存在什麼全角半角的區別,輸入過程也不需要轉換輸入法。

如果是這樣的話,漢字匯編反而比英文更簡單。

因為單個漢字就有英文單詞的作用,特別是在傳統文言文仍然盛行的時代。

朱靖垣眼前屏幕上的程序中的命令,確實全都是一個一個的單字。

英文環境下單個字母很少有實際意義,至少要用兩個到三個字母,才能讓程序員產生有實際含義的聯想。

同時,眼前這個屏幕肯定是非常「高級」的功能。

低級型號的電腦,很可能根本沒有屏幕。

因為屏幕上顯示漢字和字母,哪怕是只有幾十個,也非常浪費存儲空間。

早期的英文電腦同樣是沒有屏幕的。

操作員都是盲打的。

至于完整的八千個漢字,只能等下一代的電腦,把集成電路做出來再說了。

溫馨提示︰方向鍵左右(← →)前後翻頁,上下(↑ ↓)上下滾用, 回車鍵:返回列表

投推薦票 上一章章節目錄下一章 加入書簽