蘇聯的三進位電腦 為什麼被二進位幹掉了?
當我們在電腦上打開一個軟體,看一部電影,聽一首歌的時候,我們很難想像,這些東西都是由0和1這樣的二進位數位組成的。 但你有沒有好奇過? 為什麼電腦要用二進位呢? 難道是因為它效率最高嗎? 但其實並非如此,理論上講,三進位計算機的效率要比二進位更高,甚至蘇聯也曾花費重金研究過它。 那我們為什麼沒有用上這種更高效的計算機呢?
大家好我是差評君,今天跟大家聊聊三進位計算機的故事 ~
二進位是最好的嗎?
進位,是一種人類智慧衍生的計數方式。
我們天生有十根手指,所以人類天然選擇了十進位。 計票時常用的寫 ” 正 「 字,也類似於五進位。 而計算機的二進位是由 0 和 1 組成的,也就是逢二進一,借一當二。
不知道大家有沒有過疑問,為什麼計算機沒有用更常見的進位,而偏偏選擇了二進位呢? 畢竟計算機也是給人用的,非要轉化成一串長長的0和1,不是很反人類嗎?
之前差評君也看過不少科普,大多都是用一句 「 電腦只能看得懂 0 和 1 」 就矇混過關了,但其實最主要的原因是,電腦出生的年代,二進位是最容易實現的。
其實歷史上也曾出現過非二進位的電腦,比如 1945 年誕生的世界上第一台通用電腦 ENIAC,就是一台十進位電腦。
但,計算機是由邏輯電路組成的,而電路中通常只有兩個狀態 —— 開和關,這兩種狀態正好可以用 ” 1 ” 和 ” 0 ” 表示。
而 ” 1 ” 和 ” 0 ” 又恰好與邏輯運算中的 ” 對 “( true ) 與 ” 錯 “( false )對應,這才有了著名的馮. 諾依曼結構,也讓二進位在計算機上大放異彩。
此後的幾十年,二進位計算機越來越先進,各方面的硬體也逐漸完善。 現在你用的手機,電腦的顯卡,女神的照片,爆肝的遊戲,靠的全是二進位。
但其實! 二進位並不是效率最高的,理論上講,e 進位才是最高效的。
e 的大名叫自然常數,也叫歐拉數,是個大約為 2.71828 的無限不循環小數。 溫馨提示:以上內容為高中數學知識點,不懂的同學把它當成和 π 一樣的東西就行。
那為啥說它的效率最高呢? 先說說什麼是效率,我們簡單理解就是,在表達相同資訊量的前提下,誰消耗的元件更少,誰的效率也就越高。
舉個例子,假如我們要用十進位表達從 0 到 999 的一千個數位,那就要用 0-9 的十個牌子,並且需要三組,一共也就是 30 個牌子。
如果用二進位來表示這 1000 個數位,那我們需要 10 組的 0 和 1,也就是 20 個牌子
如果是三進位的話,需要 7 組的 0 、 1 、 2 ,也就是 21 個牌子,
四進位的話,需要 5 組的 0 、 1 、 2 、 3 ,即 20 個牌子。
……
我們以此類推可以算出每種進位需要用到的牌子數量。
誰用的牌子越少,也就表示誰的效率越高。
然後會發現,在表示 0-999 的問題上,二進位和四進位的效率是最高的。
但是,在這個過程中,每種進制或多或少都出現了 「 資源浪費 」。
比如說 10 位的 2 進位,也就是 2 的 10 次方,一共能表達 1024 個數位,已經幾乎用完了,但 7 位的 3 進位,一共能表達 2187 個數,也就是說在這個案例中,三進位比二進位能多表達 1163 個數。
我們在計算 「 需要幾位數 」 的時候是這麼考慮的:
log 以 2 為底 1000 的對數約等於 9.97,我們向上取整,所以是 10 位數, 10*2=20,所以二進位需要 20 個牌子。
log 以 3 為底 1000 的對數約等於 6.29,取整數是 7,7*3=21,所以三進位需要 21 個牌子。
……
由此我們發現,這種演算法會浪費很多資源,所以為了更準確的計算,我們假設需要的位數可以不是整數,也就不用向上取整。
於是,為了表示 M 個數,在 x 進位下,需要 x*logx^M 個牌子。
所以效率就可以表示成這樣一個公式:
E=M/x*logx^M=M/lnM*lnx/x
我們簡單求導一下就知道,f’( x ) = MlnM ( 1-lnx )
當 X = e 的時候,原函數取極大值!
如果用圖像表示原函數,大概就是這樣,這個點就是 e。
也就是說當 x 等於 e 的時候,效率 E 是最大的。
所以得出結論,理論上,e 進制的效率最高。
以上推導過程來自於知乎大佬 「 白雲龍 」,我們想了很多個例子,可惜都沒有大佬這個 「 倒計時 」 的例子直觀。
ok,咱們前面也提過,e 大概是 2.71828,也就是說 ” 2.71828 進制 ” 是理論上最高效的進制。
但是 2.71828 進位是個什麼鬼? 我數數手指還得掰個0.71828根?
那還得是個整數,不然工程上就沒法實現了,而你看這個函數圖就知道,相比 2,3 的效率是更接近 e。
由此我們能得出結論,數據表達上,效率最高的是三進位,其次才是二進位。
但為什麼咱們現在沒用上效率更高的三進位電腦呢?
這就不得不提到那個已經消失國家了。
平衡三進位和 Setun
蘇聯其實在五十多年前就發現了三進位在計算機上的優勢。 1958 年,莫斯科國立大學的計算機研究中心研製出了世界上第一台三進位電子計算機 —— Сетунь( setun )。
Сетунь 計算機用的不是一般那種逢三進一的三進位,而是平衡三進制,也叫對稱三進位。
什麼是平衡三進位呢,就是由 -1、0、1 構成的,對應的邏輯電路就是負電壓、零電壓和正電壓。
平衡三進位是一種很巧妙的設計,它所記錄的數位可以表達出全部整數。 而且由於 -1 的引入,對負數就不必使用額外的負號了,而二進位是無符號數,不能直接表示負數。
說回 Сетунь 這台計算機,雖然蘇聯早就看出了三進位的優秀,可一開始莫斯科大學並沒有把這個項目當回事兒,只派了四個副博士和幾個剛畢業的學生來開發。
但沒想到這台計算機在不同的室溫下都表現出驚人的可靠性和穩定性。
雖然我覺得以當時蘇聯還在電子管上狂奔的情況來看,Сетунь 應該是比不上美國同時代的二進位計算機的,但是和同期其它蘇聯能生產的計算機比,Сетунь 還是優勢很大的。
很快,蘇聯部長會議通過了批量生產Сетунь計算機的決議。 不過工業部並不看好這台機器,他們覺得這個經濟計劃外的玩意兒就是個科幻產物。
與此同時,國內外的訂單卻像雪花般飛來,10 到 15 台的年產量遠遠不夠應付市場需求。
奇怪的是工業部並沒有隨著訂單數量的增加而增加產量,相反,他們嚴重限制了生產進度,拒絕訂單,並在1965年完全停產。
是不是聽起來不可思議,其實原因並不複雜,Сетунь 的電子元件良品率極高,而且非常耐造,同時價格還很低,它的售價只有 27.5 萬盧布,創造了當時的最低記錄,而同期的計算機售價基本都在它的兩倍以上。
那台在莫大計算中心的樣機整整運行了 17 年,除了在第一年更換了三個有缺陷的元器件之外,內部設備從來沒維修過,直到它被摧毀前的一刻都還能正常使用。
而蘇聯官僚停產了 Сетунь 之後,取而代之的是一種相同性能的二進位計算機,但價格卻貴出 2.5 倍。 說白了,Сетунь 的生產讓蘇聯官僚少了大筆的財政撥款。
斷人財路如殺人父母,所以這台三進位計算機就 ” 理所應當 ” 的成為了政治犧牲品。
雖然 Сетунь 最終只生產了五十台,但從加里寧格勒到雅庫茨克,從阿什哈巴德到新西伯利亞,全蘇都能看到它的身影。
而且各地都對 Сетунь 的評價很高,大家認為它程式設計簡單,很適合用於工程計算、工業控制、計算機教學等等。
Сетунь 的成功經驗讓莫大決定不放棄這台計算機,於是他們頂住壓力在 1970 年推出了 Сетунь 70 型計算機,而且還對應著二進位的 byte 创建了三進位字節 tryte。 每個 tryte 由 6 個 trit 構成,約等於 9.5 個二進位的 bit。
但這個項目長期得不到上級的支持,最後也不得不無限期停滯。 Сетунь 70 就此成了莫斯科大學的絕唱。
再後來蘇聯解體,三進位計算機也跟著蘇維埃混入了歷史的塵埃,直到今天也沒有其他國家能夠復現它。
為什麼現在沒有三進位計算機
雖說Сетунь證明瞭三進制計算機的可行性,但它沒能發展起來,政治原因並不是主要原因。
甚至可以說,三進位計算機的失敗,是一種歷史必然。
因為即使我們前面在數學上論證了三進位的效率,但也只停留在理論上,從理論到具體實現,經過的步驟太複雜了,因為比如說如果要做三進位計算機的話,就要用三種穩定狀態的材料,起碼二極管是用不了了。
而二進位只有 ” 0 ” 和 ” 1 “,高低電壓就很好區分,就算有些誤差,計算機也可以識別出來,所以在穩定性上會遠遠高於三進位,在工程上也更容易實現。
所以三進位對效率的提升也許並沒有想像的那麼美好。
既然它不夠穩定,又不能高效提升,工程上還難以實現。 為了這麼一點可能的紅利再從頭發展這種技術就顯得沒必要了。
反觀二進位的發展速度,早就快的沒影了。
這就好比你玩了好久的養成遊戲,已經花了無數個 648,就算沒抽出版本之子,也很少有人從零開始玩小號吧。 更別說是在越來越離不開計算機的今天,拋棄已經發展完善的二進位體系。
說點看得見的,要是沒了二進位,我們現有的硬體體系都要洗牌,大家的電腦手機等電子產品會直接變磚,這事兒聽起來也不現實吧。
它是歷史還是未來?
不過到了今天,隨著晶元的製程越來越小,馬上會碰到量子這個玄學領域,量子隧穿這樣的難題,我們可能要花非常多的精力,才可能提升一點點效率,就像開了等級上限的網游,二進位已經快滿級了,也許要開始開闢其他的路了。
而三進位,現在就正在電子計算機以外的形態上復活。
比如,本身電子計算機因為只有開關兩種基礎狀態,但是假如是光子計算機,就有光強、波長、相位、傳播方向和偏振五種狀態,上海大學的金翊教授團隊就取了有無光態和偏振方向正交三個物理狀態來嘗試光子計算機。
再比如,在 2019 年,我國物理學家郭光燦和中國科技大學的同事就成功完成了三進位 qutrit 量子信號的傳輸,這也是科學家們在量子領域第一次成功的三進位研究。
近兩年,韓國也成功開發出三進位半導體,讓三進位計算機又往前邁了一步。
如今,二進位下龐大成熟的工業體系,已經漸漸顯現出強弩之末的狀態,但想用其他進位來取代它,仍然是不可能的事情。
但當我們看到三進位計算機在歷史上的曇花一現的時候,有時候也會暢想,會不會在另一個平行時空,人類並沒有選擇電子計算機,而是發展出一套完全適配於三進位的系統。
而在那個時空中,會不會有一個視頻的標題叫《某國的二進位電腦,為什麼被三進位幹掉了? 》,也許那個時空的我們,會懷念二進位和電子電腦吧