道cpu、道指令、道編程基本原理(整理)

緒論

信息處理最基本的在於由已知信息事件產生新的信息事件,整個過程構成了信息事件樹,彙集成事件信息森林,最後形成信息森林羣落,有用的信息在於關聯程度或在於信息樹上的複雜度,即信息的可用度在於新信息的自動產生性,按照科學規律的定義,就是要從這種生生不息的信息樹中發現規律,當可利用的信息樹的分叉程度越來越高時,所能發現的規律就會越有用。處理信息樹的自動產生、存儲、分發,就是我們現在倡導的信息樹理論的最終目的,爲達到這個目的,必須設計專用信息CPU。這個信息CPU集網絡、信息處理、存儲等綜合技術,即信息CPU就是網絡、就是存儲器、就是處理器。

起源

中國的專家教授等一班人整天說要有中國自己的cpu,但是直到現在真正意義上的中國的cpu還沒有出現。現在整個計算機產業都是由國外做技術主導,所謂的龍芯、中國芯等都是在國外cpu的基礎上設計出來的,這種cpu設計再厲害、再先進也比不上人家國外原創的厲害、先進,我國要在國外強大的技術壁壘面前打開通道談何容易。問題的關鍵在於我們沒有一種真正創新的、能夠主導計算機行業發展的技術。本文所倡導信息CPU技術就是爲了解決這個問題的,希望以信息CPU技術爲主發展我國自有的計算機技術。
cpu是現代信息社會最偉大的發明之一,它是科學家爲實現人工智能化發明的副產物。但是近半個世紀過去了,計算機的架構還是更原來剛剛誕生時一樣,只不過它的速度變快了、容量變大了,並且基本普及到了千家萬戶,每個人都享受到了計算機帶來的交流暢快的感受,再也離不開計算機了。這與計算機當初的發明背道而馳了,爲實現智能化而發明的計算機淪爲普通物品,沒有了當初誕生時的神祕感,用計算機與農民用鋤頭基本沒有兩樣。當某些時代代表人物一邊高呼“信息時代”“數字時代”“雲時代”時,他們的寵兒(計算機)已經不是當初的計算機了,成爲人們任意擺弄、拋棄的工具。這其實又跟計算機的本質關聯在一起,計算機只是在人類控制下才能運作的工具,只有人類餵它信息糧食,它才能產生新的信息,比巫師還不如。
計算機雖然已經沉淪,但是設計cpu、生產cpu卻不是一件簡單的事,跟鋤頭的設計、生產有着天差地別,這牽涉到很多的計算機專業知識,沒有受過專業訓練的人是很難設計出來的,但受過專業訓練反而被普通cpu理論所困住,一想到cpu設計,就是指令系統、存儲指令、存儲數據、ALU、流水線分級等想法,跳出這些東西的反而不知如何下手。其實,做東西應該看本質,普通cpu的本質是什麼:處理、存儲數據,所有的計算機技術都圍繞着這個本質展開設計,如存儲採用地址尋址的方式,導致必須採用指令控制整個尋址過程,有了指令後又必須ALU來處理尋址後的數據,然後再進行其他技術枝葉的修正,提高運行效率;又如計算機語言的設計,代碼中充滿了各種數據符號,各種控制指令的符號,最終目的也是爲了處理、存儲數據。反觀人腦的神經元設計,沒有存儲的機制、沒有處理的機制,只有大量的神經突觸相連,並實現了人類以及各種動物生存、求生、繁殖的各種本領,這種神經元的本質與cpu的本質有着非常大的差別。
信息cpu的設計應該參考人腦神經元的設計,我們現在不需要非常高速的cpu,而是要具有智能化的cpu,來構成人類未來信息社會的神經元。

設計

 
信息cpu的本質不在功能,而在於大量的連線,僅有的功能可能就是比較功能:它可以比較各個輸入端的值是否滿足給定的邏輯比較等式,滿足就輸出一定的內容,不滿足就什麼也不輸出,其實就是把單個神經元的功能擴展到多個神經元上。信息cpu沒有指令系統,因爲它只有一個功能,即只有一條指令,爲了滿足現代編程的需要,可以擴展到連個功能:1邏輯比較、2賦值(信息連線)。信息cpu的代碼中每條指令都由信息cpu單元執行,所有指令即cpu單元並行運行的,它沒有現代編程中各種弊端:關鍵字、數據類型、控制語句、變量、數據關聯。信息cpu編程非常簡單,因爲只有一條指令(可以簡寫爲->),差別在於信息輸入不一樣,調用函數就是一個賦值過程(可以簡寫=),不用考慮指令的順序,各條指令是並行運行的。
信息cpu、信息cpu指令、信息cpu編程可以幾乎沒有任何東西:一個功能、一條指令。借用道家思想“道生一、一生二、三生萬物”,宇宙間萬物生於無,最簡單的往往就是最本質的。信息cpu如此設計正是爲了體現信息處理的本質“生”,這個“生”就是指令處理過程,由原因產生結果,再由結果產生更多結果,體現信息生生不息的產生方式。姑且把信息cpu、信息cpu指令、信息cpu編程稱爲道cpu、道指令、道編程。
數年前,看到一種中文編程語言即易語言,開始以爲這是一種很有哲學的、深奧的、智能的計算機語言,沒想到是一種C語言或c++的漢化了的語言,同樣的還有一種漢語編程語言,說得冠冕堂皇,實在令人失望。這裏把信息cpu、信息cpu指令、信息cpu編程稱爲道cpu、道指令、道編程只不過引蛇出動,讓志同道合者能有更多的思考與創意。

原型設計

 

“道生一,一生二,二生三,三生萬物”講述了信息生成的基本形式,即“道”作爲萬物信息生成的源程序,“道生一”即信息萬物程序開始運行,產生初始 信息,“一生二”即由初始信息產生中間信息,“二生三”既由中間信息產生中間信息之間的關係,“三生萬物”即由中間信息及其中間信息之間的關係產生萬物最 終信息,整個過程表現爲信息樹的發展形式。信息的生成以此環環相扣的形式發展着,推動它發展的動力是什麼?《道德經》也給我們指出了答案:“萬物負陰而抱 陽,衝氣以爲和”,萬物的發展即信息的生成是在“陰、陽”兩種不同屬性的信息關係組混合作用下,重新生成一種新的信息,。

中國古人在幾千年前就提出了用“陰、陽”兩種不同的屬性來概括萬物的哲學,這相當於爲我們提出了宇宙計算機基本模型,也是本文倡導的信息樹理論的計 算模型。現代中國人在每每看到外國先進的科學技術時,大都會翻箱倒櫃,找出我們古人早就已經發明的證據,最典型的莫過於計算機中的二進制,死活把《周易》 中卦的符合套在二進制上,並延伸到計算機上,以此爲榮。其實在真正理解計算機的人看來,採用幾進制是根本與計算機無關的,圖靈最早提出計算機模型時就沒有 提到二進制,計算機本質就是一種自動機,相信如果沒有發明二進制,現代計算機也就是另一番景象了。“陰、陽”對於中國人來說是非常熟悉了,生活中到處有它 的影子,如中醫“熱、寒”、風水“陰、陽”,五行相剋相生“克,生”等比比皆是。爲什麼放着使用了幾千年的古人信息模型不用,而偏偏花費巨資用外國“二進 制”計算機呢。

在這裏我要把古人的“陰、陽”模型重新利用起來,提出信息樹的cpu模型。前面已經定義了信息cpu的基本功能:它可以比較各個信息輸入端(必須具 有處理大量信息關聯的功能)的值是否滿足給定的邏輯比較等式,滿足就輸出一定的內容,不滿足就什麼也不輸出;信息cpu只有一條指令來處理比較功能,所有 指令由cpu單元並行處理。這個功能關鍵在邏輯比較功能,這個邏輯比較功能用“陰、陽”來定義:把有關影響生成信息的各種信息劃分成不同的組,每組賦予“ 陰、陽”屬性,也可用神經元裏的“激活、抑制、終止”來表示,在各組裏,“陰”、“抑制”的屬性優先決定所生成信息是否生成。

信息指令設計

 

按照上述模型,信息指令定義如下:


[原信息1, 原信息2, 原信息3][ 原信息4, 原信息5]< 原信息6, 原信息7, 原信息8><原信息9, 原信息10>->生成信息。

“[]”表示“陽”性或“激活”性質。

“<>”表示“陰”性或“抑制”、“終止”性質。

“->”代表運算最後結果:生成信息。

這個如此簡單的定義能夠支持所有的計算機基本運算嗎?其實這個定義是布爾邏輯的另一種表示,布爾邏輯大部分實現爲“二進制”用來構造cpu,這裏我們直接去掉“二進制”直接構造cpu,這樣帶來很大的好處:

1、沒有“進制”之爭。因爲去掉“進制”,就無所謂“二進制”、“三進制”孰優孰劣的問題。

2、沒有語言關鍵字之爭。因爲僅有一條指令,英文表示與漢語表示是一樣的。

3、沒有“多處理”“單處理”的優劣。信息cpu所有指令是並行的,一個cpu處理同樣的程序,兩個cpu處理同樣的程序。

4、沒有“cpu”升級的煩惱。所有的信息cpu只實現一條指令,再先進、再高級的信息cpu也只有一條指令可用。

5、不用爲製造“cpu” 煩惱。因爲只有一條指令,甚至可以在紙面上模擬出執行指令的過程。

信息技術的發展日新月異,新東西層出不窮,造化留給我們兩個選擇:繼續使用國外cpu帶來的複雜信息世界或創造我們自主的信息cpu來構造我們的信息世界,僅以魯迅的話:“造化又常常爲庸人設計,以時間的流駛,來洗滌舊跡”來與志同道合者共勉。

語言設計

信息cpu的指令確定爲如下的形式後:
[原信息1, 原信息2, 原信息3][ 原信息4, 原信息5]< 原信息6, 原信息7, 原信息8><原信息9, 原信息10>->生成信息。
(是否可以增加一個選擇信息組形式以便減少編程時所用的指令的數量)
接下來的工作就是設計可運行的cpu。cpu既然是爲了執行設計的指令的,我們必須規範信息和指令運行時行爲,使得cpu設計有章可循。
暫定如下規範:
1、既取消指令指針,全部指令並行運行(包括函數、過程中的指令)。
2、取消循環結構,全部指令一直循環運行。
3、取消地址,數據以符號代替(可以增加數組結構的符號表示)。
4、取消數據類型計算,數據類型計算蘊含於程序函數中。
5、信息可選永久保存在存儲介質上。
6、信息可選賦值形式。
採取上述信息和指令運行時行爲規範後,初定信息編程語言形式如下:

/*程序定義*/
procename{
/*函數定義*/
fuctname(param1,param1)(return1,return1)
{
[5361,fgdsgf,gfds][dfg,dfg]<sfgf,dfg,dfg><dfgdf,yu>->dgdf
/*>twter表示任意數值,[] 內的表示激活邏輯條件,[][]表示邏輯或的形式,<>內的表示終止邏輯條件,<><>表示邏輯或的形式*/
[twter,fgdsgf,gfds][dfg,dfg]<sfgf,dfg,dfg><dfgdf,yu>->$dgdf
/*->$dgdf表示進程時間內永久保存(但可被更改)*/
[twter,fgdsgf,gfds][dfg,dfg]<sfgf,dfg,dfg><dfgdf,yu>->dgdf=356
/*->dgdf=356表示產生的標記有數值*/

[twter=898,fgdsgf=878,gfds][dfg,dfg]<sfgf=767,dfg,dfg><dfgdf,yu>->dgdf
/*twter=898,fgdsgf=878表示有值*/
[twter,fgdsgf,gfds][dfg,dfg]<sfgf,dfg,dfg><dfgdf,yu>->(rrr=wwer,wsre=werwe)
/*條件賦值,->(rrr=wwer,wsre=werwe)表示條件賦值形式*/
[twter,fgdsgf,gfds][dfg,dfg]<sfgf,dfg,dfg><dfgdf,yu>->(return1,return1)
/*函數條件返回,->(return1,return1)表示函數條件返回形式*/
[twter,fgdsgf,gfds][dfg,dfg]<sfgf,dfg,dfg><dfgdf,yu>->procename.fuctname(wer,werwe)(return1,return1)
/*函數條件調用,return(param1=wer,param1=werwe)表示函數條件調用形式  */
}
}

/*以上所有符號都是符號標記,可謂爲中文英文*/
說明:

1、在上述的信息編程語言中,程序是類,函數也是類的成員。這樣當程序完成後,就可以被其它或自己調用了,相當於windows中的“dll”模塊或“lib”庫。

2、每個語句前面都帶有如下形式:
[原信息1, 原信息2, 原信息3][ 原信息4, 原信息5]< 原信息6, 原信息7, 原信息8><原信息9, 原信息10>
的前置邏輯比較,其含義就是每條語句都先判斷、選擇、比較,然後再決定是否生成”->”後的信息,除了”->”簡單生成信息語句外,還有調用、返回、賦值等語句,這些語句也是採用前置邏輯比較的形式,目的是爲了滿足全部指令運行的指令規範。

指令的設計與cpu結構設計關聯性。

1、指令信息保存形式。當指令信息生成後第二次再運行使用後是否保存,極大影響了cpu結構設計也影響了指令編程,考慮再三後,決定採取可選的保存的形式既帶“$”符號就一直保留,其他信息一般在第二次運行使用後就消除了,相當於這些指令只是中間暫時信息。

2、函數的調用方式。程序的函數指令在內存中只有一個,但是每個程序調用時就會產生多個調用,像類的定義,類的定義只有一個,而類的實例化可以有多個,爲了滿足同時並行運行的函數實例,必須在cpu上設置專用的調用棧內存;

3、函數返回方式。函數返回時必須處理的一些細節,因爲函數指令編譯後是固化的,它的返回信息符號必須與函數實例化後的句柄掛鉤起來,並與原調用函數句柄有關,不像串行指令,可以在棧頂存取函數的返回有關的值。

4、 在信息cpu裏設計,最大難題不在前置邏輯比較實現,而在於信息生成後如何處理,像重複信息符號處理、信息生存週期、信息的作用範圍、信息的存取、信息的符號與值、cpu結構的優化等,所有這些技術處理與各種指令形式的含義有很大相關性。

5、函數調用、返回、信息賦值是信息生成一種特殊形式,其母的是爲了信息程序的複用性,本質上沒有破壞信息cpu指令只有一條的宗旨。

可以說一套完整的指令集設計時就已經考慮到了以後的cpu設計,指令集裏增加的功能比如增加寄存器、尋址方法、結果值處理等、各種函數調用返回方式 極大影響了cpu的設計,相反cpu的計算功能反而是cpu設計最簡單的東西。一套指令集就是一套虛擬計算機,當實現了運行指令集的機器後,也就完成了虛 擬計算機實例化。如計算機語言,語言也是一套虛擬計算機,編譯程序把計算機語言編譯成可執行文件,編譯程序就是計算機語言的虛擬計算機。

多年來,國人常常聽到cpu指令集只是一種東西不同的寫法,購買指令集只不過是爲了一些權宜之計採取的便宜措施,無關大礙,關鍵是要開拓市場云云。 錯了!君不見,當年各大國產汽車商也號稱技術引進,更快開拓佔領市場云云,最後各大國產汽車商也成了國外汽車技術代理商。二三十年年前國人以求學之心,滿 以爲完成學業就可以創業了,沒想到卻從學生變成了學徒,最後成了打工仔。這種教訓實在太多了,cpu指令集代表國外佔領國內cpu技術市場的隱形殺手,冠 於冠冕堂皇的技術授權,我們就如得了寶貝似的收下來,高興地設計生產了。君不見,二三十年來,國人舉國學英文,直弄的國語也差點忘了,只能寫一點俄意奉承 之類的話,到頭來,國外技術沒學家,又變成了假洋人了。

以《霍元甲》之歌“昏睡百年,國人漸已醒,睜開眼吧,小心看吧,哪個願臣虜自認”與各位有志之士共勉。

道指令與神經系統

 

在前面的論述道指令時就指出:

1、“信息cpu的設計參考人腦神經元的設計”;

2、“信息cpu的本質不在功能,而在於大量的連線,僅有的功能可能就是比較功能:它可以比較各個輸入端的值是否滿足給定的邏輯比較等式,滿足就輸出一定的內容,不滿足就什麼也不輸出,其實就是把單個神經元的功能擴展到多個神經元上。”

3、考慮到在神經網絡、基因運算方便使用此指令和便於信息cpu設計,取消布爾邏輯等式中的“非”混合運算;

重新考慮道指令:

[原信息1, 原信息2, 原信息3][ 原信息4, 原信息5]< 原信息6, 原信息7, 原信息8><原信息9, 原信息10>->生成信息。

現在結合神經學原理論述道指令:一條道指令就是一個廣義的神經細胞,道指令中所有的“原信息”代表神經細胞的一個突觸,[ , , ]代表由多個神經細胞發出的突觸組成一個“激活”觸發機制,< , , >代表由多個神經細胞發出的突觸組成一個“終止”觸發機制,再由許多個這兩種類型的觸發機制組合成一個總觸發機制,由這個總觸發機制發出這個神經細 胞的動作“生成信息”,許許多多的的道指令就是許許多多的神經細胞。道指令就是神經細胞,道編程就是人工大腦編程。

現在結合基因理論原理論述道指令:一條道指令就是一個廣義的蛋白質生成規則,道指令中所有的“原信息”代表一個基因(蛋白質),[ , , ]代表由多個基因(蛋白質)組成一個“激活”生成蛋白質規則,< , , >代表由多個基因(蛋白質)組成一個“終止”生成基因(蛋白質)規則,再由許多個這兩種類型的生成機制組合成一個總生成機制,由這個總生成機制決定 生成結果蛋白質“生成信息”,許許多多的的道指令就是一條DNA。道指令就是基因,道編程就是人工DNA。

前面說過一條道指令就是一個廣義的神經細胞,這個廣義神經細胞跟實際的神經細胞差別在哪裏呢?目前根據報道出來的實際的神經細胞實驗數據,神經細胞 突觸是沒有分類的,神經細胞按照每個突觸的生物電水平彙總最後決定神經介質的釋放。道指令爲何不完全模仿真實的神經細胞動作機制?如果採用真實的神經細胞 動作機制,那麼,道指令就是神經網絡就不能稱之爲道指令了。人類認識自然的過程是一個逐步的循序暫進的過程,最後利用科學抽象原理進一步昇華,把複雜化爲 簡單理論。道指令的設計正是一種科學抽象,把複雜的神經工作機制化爲簡單“陰陽共存”理論,使之適應宇宙間萬物轉化的規律。

如果一個理論代表的是真理,那麼用它可以預測一些未知的現象。在用基因理論原理論述道指令時提出:一條道指令就是一個廣義的蛋白質生成規則,這是目 前在實驗室還不能驗證出來的,用道指令理直氣壯提出這個觀點,是因爲有它的真理性在裏面。如有人不相信,請在網上查一查,目前的DNA基因工作機制是否與 本文論述一樣。DNA中基因決定蛋白質表達,蛋白質反過來基因表達的開關,蛋白質到底如何影響基因表達的開關現在還沒有實驗數據,是一個蛋白質影響一個基 因還是像我們道指令指出的多個不同屬性組的蛋白質影響基因表達的開關有待於科學實驗的論證,在沒有證實前姑且把道指令作爲基因的工作機制也不會犯錯誤。反 過來,基因在DNA中只佔一小部分,剩下的鹼基對用來幹什麼?科學家還不是很清楚,但按照道編程原理,剩下的鹼基對用來對基因表達開關進行編程的,這有待 進一步科學實驗。

我爲何還在囉嗦“道”,不是異想天開。國內多年來一直到處呼籲的“漢編”“中文編程”“中文cpu”等等之類的我們很多人明知這又是一個“皇帝新裝 ”的故事,卻偏偏沒有指出來。而本文的“道”與這些東西相差十萬八千里,“道”是思維指導思想,是符合科學邏輯的,從“道”產生出來的道cpu、道指令、 道編程也是符合科學邏輯的。

道指令與內存cpu

近年來,兩大計算機cpu巨頭lntel和amd相繼在cpu內部嵌入內存控制器,對外都說明這是爲了提高內存存取速度,提高cpu的效率。事實是這樣的 嗎?現在對外資料還不能判斷cpu內部嵌入內存控制器的真是意圖,但以本人多年來在cpu設計上的經驗告訴我,這是cpu設計正在發生重大的變革。

多年前因爲感於國內cpu設計落後,對中國未來的計算機信息產業憂心匆匆,竟想憑己之力設計我們自己的cpu。有了這個想法後,從此把很多時間放在 我的cpu的設計上,並且設計了兩三套方案,第一:在內存中加入簡單的比較功能,使得整個內存就是cpu;第二:設計足夠簡單的ALU單元,比如只有4位 的ALU單元及輔助控制設備,形成平面陣列,組成大規模運算;第三,利用簡單的內存縱橫陣列取出一定數列,這些數列送到足夠簡單的ALU單元去進行運算。 上述幾個方案都是遵循小而精的思想並且個人可以掏錢買材料設計出來的原則,因爲,當時的任何國內一家芯片設計公司都在國外大公司的技術壓力下正向國外技術 靠攏,我只能自己DIY出cpu了。

爲何在這裏又重提這些陳年舊事?又有許多舊話不得不重提,每當國外提出了一些概念後,我們有些搞技術的就會跳出來,跟在國外的屁股後,嚷着要趕上外 國人之類的話云云。想我中華幾千年的文明歷史,難道就這麼不堪,只會看人家的臉色行事嗎?今天,在這裏我把本人十幾年前設計cpu的經歷告訴大家,就想表 明cpu內嵌入內存控制器本質不在提高內存的存取速度,而在於cpu設計行業即將面臨重大變革,而這個重大變革不是我們跟着外國人屁股,我們早就已經想到 了。

可能有的人對上述斷言又要表示不屑了:又是一個事後諸葛亮,厲害你早拿出來啊。現在我要證明這一切並預測有關的事實。

內存爲什麼要有控制器,這個問題比較簡單,不會的可以在重新查找有關書籍。內存控制器嵌入cpu內,內存存取速度可以提高多少倍,可以估計只要增加 cpu二級、三級緩存,速度沒有多大的差別。intel在早期也沒有看好這個思路,但後來就改變了看法,也增加了嵌入式的內存控制器,其中最大的原因在 於,內存控制器可以作爲一顆相當有效的實現大批量比較功能的協cpu。我們可以從內存控制器嵌入cpu的一些指令特別像比較字符串的指令明顯看出來,在外 行人看來是嵌入內存控制器的功勞,實質是cpu設計已經出現了變革。目前,國內還在緊緊地跟在人家後面,可是他不會把這個已經改變了的東西告訴你呀,只有 當你發現了問題,想改變時,他纔會把這些內情披露出來。到那時,我們纔會感嘆,嵌入內存控制器這麼好的東西,我們這麼想不到啊,國外的科技發展太快了,我 們要加緊學寫了。

但是,我告訴你,這個嵌入內存控制器的思路我們早就有了,十幾年前,本人還是一個奮發有爲的時候,已經開始了比這個嵌入內存控制器更爲先進的技術開 發了。這個技術就是:內存即cpu,即在內存中加入簡單的比較功能,使得整個內存就是cpu。有的技術就想變魔術,說出來就沒什麼意思,這個內存即cpu 也是這樣。大家在學習SDRAM,DDR的時候,爲了提高內存存取效率,一般在DRAM上集成了片上的SRAM,這個SRAM一般比較小几M到幾百K之 間,但速度比SRAM快多了。但這也沒什麼,因爲這是國外想出來的,關鍵我們要在這裏加上一些東西即可以大批量比較、轉移SRAM值的部件,這可以相當快 速處理字符串、圖像的像素。

可能又有人對這不屑一顧,認爲這是旁門左道的東西,國外先進技術一般不這樣做等等之類的話,但是,請別忘了,當國外這樣做的時候,我們可不要後悔。

Cpu設計何去何從,一方面,代表國外最高技術的cpu時時盤踞在我們的頭上,由於技術落後及不自信,每當我們技術上有關鍵突破時,新技術又從我們 手中溜走,另一方面,國外時刻舉着兼容市場的大旗,把一切非主流的新思想排至於外,使得人類攀登科學高峯時時落空。我們的Cpu設計再不能這樣下去了,要 拿出中國有幾千年文明的風度,用我們的智慧創建我們的理想cpu及信息社會。

道指令邏輯設計

 
有的人不大相信本人有關道cpu的一些構想,以爲是從社會科學或黨校之類出來騙子。這些人常常高舉民族大旗,抵禦國外技術入侵,打着爲民着想的口號,再經 國內某些專家學者渲染,儼然成了國內某方技術的權威,從此套用國家科研費用,幹着掛羊頭賣狗肉的勾當。本人絕不是那樣的人,遙想當年,我還是一個熱血青 年,一心只爲實現心中我們自主的cpu。自己掏錢購買大量原版外文經典圖書,如《COMPUTER SYSTEM ARCHITECTURE》、《COMPUTER ORGANIZATION AND ARCHITECTURE DESIGN FOR PERFORMANCE》、《ELEMENTS OF THE THERORY OF COMPUTATION》等,爲計算機事業付出了大量心血,自今也沒有得到半點彙報。順便說一下,我感覺學了上述三本書,別的cpu設計書籍也不用看了, 國內近年來雖然計算機產業蓬勃發展,但原創的東西還是很少,中文書籍更不用說了。書看多了,對計算機的本質也逐漸認識了,感覺cpu還是受於硬件限制太 多,並且設計越來越複雜,所用工具也越來越複雜,而他的功能卻沒有大的變化,特別在人工智能方面,簡直沒有一點進步。因此,近年來在人工智能方面也投入大 量時間,企圖將cpu設計、人工智能開發這兩個看似毫無關聯的東西連在一起,於是,最終形成了信息cpu、信息指令、信息編程即道cpu、道指令、道編程 有關的構想。
我經常說所有的創新都是要有基礎的,不可能看了《道德經》,把《道德經》翻爛就能設計出一個cpu,不可能看了《易經》,把《易經》翻爛就能設計出一個cpu,不可能不懂計算機軟硬件、不可能不懂數學邏輯、不可能不懂軟件設計就設計出一個cpu。
目前,這個構想已經非常接近本人心中理想cpu,只是還有一些缺陷,特別在語言的設計上過於簡樸(主要因爲不引進任何語言關鍵字,杜絕有關中文、英文編程 的弊端)。爲何只有一條指令,爲何cpu只有比較功能?我說過,這個cpu要融合人工智能,而人工智能要求必須有自我學習的功能,如果設計了大量的指令那 麼如何讓自我學習的程序選擇指令呢,再加上參考神經元、基因的機制,最終選擇僅有一條指令的構想。其實可以把這個指令看成由if…then…語句,那麼大 家想想由if…then…語句可以處理那些事情,特別在遞歸函數、專家系統等都可以僅用if…then…語句來處理,推廣開來,數學上的計算、信息系統的 編程等都可以處理了。
我們的一些專家,爲國家搞科技的專家,是不屑於道指令的,僅僅一條道指令如何申請科技經費,說出來就會鬧笑話,必以幾百條指令爲目標,必以國外的cpu爲 藍本,這樣才顯出科學的複雜,專家的高深,纔可以申請到科學經費,否則別人說,僅有一條指令,不用加班加點,小學生就可以做了,到時就不能算專家費、加班 費了,要揚名天下更難了。
現在聲明一下:道指令系統免費提供,不要什麼授權費,僅標上道指令兼容就可以了。(如有雷同者,特指漢芯)

道指令運行機制

 

大家目前對道cpu的主要疑問是如何運行,如何組織成千上萬個道cpu一起並行運行,現在的cpu能有上個並行就不錯了,何況道cpu的並行數與道程序的大小有關,故意編上幾萬行道指令,看它如何運作。在這裏,我將爲大家揭開這個謎底。
道cpu的運行跟我們中國人的思維很想,我們經常說中國人很聰明,具有“整體的思維”,特別像中醫,把國人這種“整體的思維”的特性發揮的淋漓盡致,每次 感冒發燒,先判斷是由“冷”或“熱”引起的,然後索羅一些中和“冷熱”的藥材猛吃,還說中藥沒有副作用,還要吃上一些非常古怪的具有特效藥材。而外國人的 思維都比較死板,感冒了必須在醫院經過一系列的檢查過程,逐步排除各種感冒誘因,最後決定吃何種西藥。從上可以看出,國人的聰明就是具有“並行”特性,而 外國人的不聰明就具有“單運行”。所以呢,外國人只能發明目前的cpu而發明不了道cpu了。
現在來看看道cpu的運作過程,首先,要有一個大熔爐以及煉製草藥的一些潛規則(祕方),然後把藥草扔到熔爐裏,觀測熔爐藥劑的變化在加上藥草,經過這種 煉製,新一代的中藥就誕生了。再舉一個例子,如何塑造一個國人,首先準備一個社會大熔爐以及一些社會潛規則,把幾個億的國人扔進去,具有“整體思維”的國 人就從此誕生了。
以上是道cpu、道指令、道編程的一些實用的例子,現在我們要解密最高級的應用,具設計可用於精確計算的道cpu,首先準備兩塊內存、一塊放各種生成信 息,另一塊放道程序,程序要開始運行,必須在生成信息內存放進起始信息,如“主.開始”“宇宙.大爆炸”等信息,隨編程而定。然後道cpu就會不停的從信 息生成內存中的信息與道程序的內存比較,每條道指令中要求的信息如有在信息生成內存,那麼按照道指令把z指令後的生成的信息在放入信息生成內存中。
其實萬物都採用這種運行模式,從信息樹理論,到DNA、基因也都廣泛使用這種模式,前面沒有特別指明出來,是覺得以我們國人的聰明應該都會想到,沒想到國 人受得外國人的教育多了,都變成“單運行”的思維,所以提倡道cpu正是爲國人着想,否則“一年不如一年,人心不古”。

道指令與圖靈機

 

很多人不大認同我的有關道cpu、道指令、道編程的有關構想,主要因爲看不懂、沒有數學證明、胡扯等。現在引用一些數學理論來解釋一下。道cpu、道指 令、道編程是一種自動機,它與圖靈機一樣有一套狀態轉換指令表(道指令),一個讀寫頭(道cpu),一張紙帶(各種待處理的信息集)。圖靈機工作時在每個 時刻,機器頭都要從當前紙帶上讀入一個方格信息,然後結合自己的內部狀態查找狀態轉換指令表,根據程序輸出信息到紙帶方格上,並轉換自己的內部狀態,然後 進行移動。道自動機工作時,道cpu先從各種待處理的信息讀出所有信息,然後對所有的道指令進行比較,滿足指令的要求時,輸出結果信息,並把所有的結果信 息送到待處理的信息集中,等待下一次動作。如何讓道自動機模擬圖靈機呢?把圖靈機紙帶各種格子標上不同標記,格子信息就是標記的值,內部狀態內部狀態也用 一個標記代替,狀態就是標記的值,移動方向就是他的值,狀態轉換指令表用道指令表示。如:格子信息=H,內部狀態=“很輕鬆”時,做動作:格子寫上E,內 部狀態=“不輕鬆”,探頭:移下一個。換成道指令:[第i個格子信息=H,內部狀態=“很輕鬆”,探頭在第i個格子]->( 第i個格子信息=E,內部狀態=“不輕鬆”, 探頭在第i+1個格子)(由於格子的編號i確定,i+1也確定,不用計算)所有的狀態轉換表都寫成道指令後,再把所有的格子也如此處理一篇,那麼道自動機 與圖靈機將會完全一樣動作。因此道自動機也是一種圖靈機,如果圖靈機能做的任何事,道自動機也能做。這兩個是等價的計算模型。那麼道自動機比圖靈機有什麼 好處呢?簡單一點講並行能力比較強。後面我將用道自動機來模擬元胞自動機。

內存cpu設計

 

前面我講過有關內存cpu的事,因爲前面主要是爲了國人爭口氣,沒有仔細闡述,因此可能產生一些誤會。有一個網友Mphyatcd還在網上查找一番,發現stanford也有一個smart memories的研究項目,似乎跟我的這個想法有點像(http://www-vlsi.stanford.edu/papers/km_isca_00.pdf), 而且他對我的研究工作表示極大的支持,在此本人表示衷心的感謝!我對他收集的資料smart memories一文也認真閱讀了一下,發現其實我的內存cpu與smart memories相差還是比較大的,所以也不用擔心我們會有一些版權就糾紛了。那麼現在我要把內存cpu仔細闡述一下,如有人有相似的研究,也可告知一 下,相信我們大家都可以坐下來互相探討,希望爲計算機的技術發展提供一個小小的推動。

大家都知道cpu工作時,其實要有一塊組件來支持,即內存,沒有這個 內存,cpu也是沒用。內存如此重要,但人們對它不大重視,認爲是無足輕重的東西。近年來,隨着集成電路的發展,內存的價格和地位更是一落千丈,買內存就 像買大白菜。我因爲以前對內存的研究下過苦工,就時常發感嘆:“內存cpu要是早點加入我的研究結果就好了,地位甚至可以超過cpu了”,感嘆歸感嘆,內 存的地位一直以來還是不如cpu。那麼我們到底如何才能提高它的地位呢?就是要在內存上改造一下,就能使它的地位變得相當重要。我早就說過有的東西就像變 魔術,說出來就沒意思了,可能還有人就更瞧不起了,這個內存cpu就是這樣。但爲了讓大家對如何實現道cpu、道指令、道編程有所思路,我也就顧不得這些 俗人的東西了。

普通內存是一塊有地址輸入,然後輸出(寫入)數據結果的芯片,任何教科書都是這樣寫得,不知大家有沒有看過高級的書,跟這個內存功能不一樣 的設計方法,可以轉告一下,否則又有人要罵人了。按書設計不是我的本行,還是請我們的受過高級教育的人來做,我要做得就是設計內存影子,一個死死跟在內存 數據上得影子,這個影子可以由地址在讀數據時讀出,地址要多加幾位來尋址這些影子。這些影子主要有以下幾個數據。1、對應的數據上的每個數據位結果,如 64位,有64位,每位一個數,共64個數。2、對數據分組產生的每組是否全1或0等結果。可以4位分組、8位分組、16位分組等等。3、其他一些對計算 有用的,數據位組合形式。   經過上述分組後每個數據就會產生比它自身還多的影子數據。   有的人就會不理解,你的內存存這麼多的可以由數據本身計算出來的數據幹什麼,估計腦袋不正常了,敗家子。其實要是講究排場我們就可以這麼做,要是不講究排 場,要節約,就讓cpu累死累活加班幹吧,反正不用白不用。但是因爲我比較仁慈,見cpu這麼辛苦,還幹這些低級活,就讓內存去幹吧,又可讓內存增加本 領,又不至於失業,一舉兩得,和樂而不爲。內存有了影子後,增加了不少本領,但它只能對數據自身進行影子化,這點東西在cpu也看不上眼。因此,我又在內 存上加了又一個影子,即其他數據的影子,這個其他數據的影子現在可以和數據及它本身的影子對話(邏輯運算),這樣內存就可以對cpu說:“老大有什麼活, 幹不完的,老弟可以幫幫你“,不過這話可不能說,否則cpu以爲內存要搶了它的飯碗,內存就不能好好過了。

內存經過這樣的處理其實已經具備cpu的功能, 不過它還不能像cpu那樣工作,必須有人爲它設計指令、寫程序。於是,出於人道的考慮,我因此花費數年時間,爲這個可憐的內存設計了指令、程序,即道指 令、道程序。現在這個有點像cpu的打工仔終於有點像樣的本領,從此再也不用低人一等,可以堂堂正正與cpu老大平齊平坐,享受高人一等的待遇了。內存 cpu就這麼簡單,簡單的有的計算機知識的人就可以設計出來。

內存cpu非常簡單的東西,我不知道intel、amd等是否是這樣設計他們的嵌入式內存控制器,但我保證我們的技術專家們是不會這樣設計的,因爲 他們要設計高級的cpu,纔沒有時間來爲這種抵擋內存cpu做設計,並且抵擋內存cpu設計出來也沒有市場,外國人都要買高級的cpu,只有窮人才用這種 抵擋內存cpu。

道指令與多核並行

 

有人可能有這樣的疑問:道與計算機顯然不可能結合,即使道cpu設計出來,那麼如何設計道程序的語言編譯器,並且我的道cpu還沒設計出來,所有這 一切還是空談,所以我的想法應該是民科無疑。對於網上的種種猜測其實有的是事實,有的就不符合事實了。今天我要在這裏重新澄清一下。

道cpu其實很簡單, 上面我已經闡述過如何設計內存cpu,內存cpu已經非常接近可運作的道CPU模型,只是還必須增加一些控制組件,循環整個道指令及信息的控制組件,還有 處理函數調用和返回的控制組件,這樣整個內存CPU就可作爲道程序運行的硬件。可能有的人有疑問,如爲何設計內存數據的影子,讓cpu去計算出來,可能更 簡單呀?其實內存數據的影子是爲了充分利用內存的硬件便宜的特點,一些數據中的數據如果事先準備好再送到cpu去就可能省去cpu的計算時間。cpu中許 多指令就是用來判斷數據的一些組合狀態設計的,如移位、是否全0或1、取出其中一位或幾位,這些由cpu執行也沒錯,但我覺得如果讓他們事先就準備好可能 更有效率,至少達到同步執行的能力,在現在提倡並行的時代就更有效率了,只是要重新設計cpu指令了。

重新設計cpu指令有兩種方法:一種在加長指令,另 一種重新設計幾個內存cpu的操作指令讓它與cpu共同運行,有點像協處理器的性質。按照直覺我選第二種方案,並在第二種方案儘量擴展使他像cpu那樣方 便數學運算,即像前面說過的其他兩種cpu方案。這三種擴展都是按照cpu順序執行的思路去做,後來覺得現在cpu越來越複雜,大部分的硬件都在爲增加有 限性能的並行多內核奮鬥,而並行多內核沒有軟件支持卻是一點也沒有用的,因此就乾脆讓內存cpu每條指令並行運行,並行的控制權直接交給軟件設計者,軟件 設計者從此不用在關心並行指令、多內核如何協調運作,只要設計正確的程序就可以了。這樣擴展後的內存cpu指令有點像帶if的超長指令,整個指令由於if 的原因可以很長,但執行的功能卻簡單,甚至可以沒有數學運算,要有數學運算必須爲超長指令帶上一個數學ALU也是可以的只不過會增加點成本。很多人不理解 道指令,但是應該理解帶if的超長指令,因爲if判斷裏有時很多參數要判斷,我們直接把這些參數設計在一條指令裏,即如普通cpu將用很多條指令組合起來 才能實現一條道指令。爲何這樣做,所有的努力都是爲了全並行的指令,我們把並行的條件都寫在了指令上了,這樣cpu開發人員就不必爲如何並行、多核想破腦 袋了。

說了這麼多,那麼這個內存cpu能否滿足道指令、道程序運行需要,我現在也不知道,因爲我不是硬件設計人員,我也沒有條件去實現這個內存cpu,雖 然這個內存cpu利用的硬件隨手拿來,主要是目前工作不允許。不過,雖然硬件上不能達到目的,本人利用數據庫相對容易設計的特點,設計了在數據庫可運行的 內存cpu模擬系統,即道cpu模擬系統,我在數據庫上設置一些庫表當作內存,比如道指令表、待信息表、信息生成表、賦值表(=、函數調用、函數返回)、 函數調用棧等,再寫上個一直循環的存儲過程就可模擬整個道cpu的運作,基本上不用寫多少代碼。這個模擬系統本人早就設計出來了,所以對網上的一些評論, 始終不爲所動,一直想把我的設計思路一點一點闡述出來,這樣大家對cpu的設計就不會感到很難了。

模擬cpu設計出來後,就要設計合適的可編程的指令來運 行程序。因爲網上天天吵着中文cpu、中文編程語言、漢編、中文系統等,卻沒有一個真正有含量的東西出來,所以就把內存cpu指令設計成道指令的形式,杜 絕任何有關計算機語言關鍵字的弊端。其實大家肯定沒有仔細研究領會道指令,而且我在前面的文章裏也已經故意透露道指令的數學依據,但沒有人有點表示。現在 再說一下,其實它是布爾邏輯的另一種表示,如果有人要是寫出一個布爾邏輯等式而道指令不能表示的,我就信服口服了。大家想想如果道指令都能表示所有的布爾 邏輯等式,那麼還有基於布爾邏輯的計算機道指令不能設計出來的麼!其實我這樣說,肯定還有人不明白,因爲他把布爾邏輯當成0和1的等式,所以死活也不能理 解道指令,就像國人死活說計算機基於數學“進制”設計出來的。按我的做法,計算機不需要任何數學理論,什麼“大小、加減法、乘除、代數”統統不要了,只要 一個如何判斷兩個符號是不是一樣的東西就足夠了,這個簡單說就是比較功能(圖靈機也需要這個最基本的功能)。

我們經常說,物以類聚,人以羣分,只要東西有 了分類,只要能夠判斷出他的類性就可以了。在數學上就是在一個集合裏,賦予每個集合元素各種屬性(關係),這樣就能在集合裏找到相同屬性的子集,任何集合 元素都屬於其中一個子集,那麼這個集合的元素加上道指令就可以用來編程了(集合有關屬性(關係)的具體理論請參考《拓撲學》)。這樣做比圖靈機還少了機械 機構,完全像數學定理推理過程,一個等式蘊含一個結果,一條道指令也蘊含(生)一個結果。基於布爾邏輯之上的道指令完全可用來數學推理,這個大家可以想想 如何做到。我以後將會結合一些人工智能探討如何讓道指令模擬人類思維。

道指令與雲計算

 

近年來,“雲計算”這個概念盛行起來了。在百度上搜索一下,找到它的定義:

1、狹義雲計算

狹義雲計算是指IT基礎設施的交付和使用模式,指通過網絡以按需、易擴展的方式獲得所需的資源(硬件、平臺、軟件)。提供資源的網絡被稱爲“雲”。 “雲”中的資源在使用者看來是可以無限擴展的,並且可以隨時獲取,按需使用,隨時擴展,按使用付費。這種特性經常被稱爲像水電一樣使用IT基礎設施。

2、廣義雲計算

廣義雲計算是指服務的交付和使用模式,指通過網絡以按需、易擴展的方式獲得所需的服務。這種服務可以是IT和軟件、互聯網相關的,也可以是任意其他 的服務。雲計算是並行計算(Parallel Computing)、分佈式計算(Distributed Computing)和網格計算(Grid Computing)的發展,或者說是這些計算機科學概念的商業實現。雲計算是虛擬化(Virtualization)、效用計算(Utility Computing)、IaaS(基礎設施即服務)、PaaS(平臺即服務)、SaaS(軟件即服務)等概念混合演進並躍升的結果。

搜索其它網站的定義,也是各有各的意思,我不知道我們這些IT人士對這些定義會有何感想,反正我是一頭霧水,比我寫道指令還厲害。我估計這個雲計算 當年也是個民科,就像中國中醫、易經的研究者們的口氣,簡直要無所不包了。雲計算這個概念盛行再次驗證了中國對各種外來概念的追捧,現在國內大公司已經完 全領會貫通雲計算這個概念,並迅速把這個概念迅速普及開來。所有的與網絡有關的應用都搭上雲計算這個快車,準備再次忽悠一下中國雲計算客戶。

拋開這些概念,如何去看清當清雲計算的本質呢!以google爲例,google當年憑着搜索技術迅速走紅,成爲執手可熱的公司,並且以後也推出了 一系列各種網絡應用(Gmail、Maps、Docs等),準備再次走紅。看到搜索技術如此迅猛,中國的公司也不甘寂寞,迅速把搜索技術普及到中國的千家 萬戶,特別我們搞科研的更離不開了。言歸正傳,現在Google看到雲計算這個更高深的名稱更容易讓人迷糊,就忙着把它們的那些網絡應用(Gmail、 Maps、Docs等)迅速包裝起來,美其名曰:雲計算。IBM、微軟、雅虎等看到這麼好的名稱要被Google獨佔了,也趕快提出了與“雲”有關的名 稱,中國的公司也迅速動作起來。說了這麼多,大家不知有沒有看出來,這些名稱、概念等其實與技術沒有大的關聯,一項技術你可以用任何名稱來包裝,用個咱老 百姓不知所云的就是高科技。本人爲了不忽悠咱老百姓用“道”來令名信息cpu、信息指令、信息編程就是這個苦衷,否則我可以用雲cpu、雲指令、雲編程來 令名,那樣咱老百姓就不知所“雲”了,一項世界級的高科技又誕生了,又可以從國家那裏騙點科研經費,何樂而不爲呢。

雖然雲計算帶有賣概念的嫌疑,但按照咱的理解,雲計算還是有點技術含量的,就是這個“雲”字如何從技術上真正地擴展。“雲”字面上理解就是飄來忽 去、極其自由,而計算技術要做到飄來忽去、極其自由就不能靠添置大量的服務器來擴展。現有的雲計算不能做到“雲”究其原因:1、各種雲計算要編程就要有各 種的計算機語言;2、各種雲計算的系統也是各種操作系統平臺組成的;3、各種雲計算的cpu也要由各種cpu充當;4、各種雲計算所依賴的平臺也是由各種 現有的平臺構成,如Java、.net等。那麼如何做到飄來忽去、極其自由就是要有本人所提倡的信息指令、信息編程(暫時不要用道),原因:1、信息指令 因爲只有一條指令,容易學習,就是沒有讀過書的人也可以用,解決目前中文編程語言不足及計算機教育普及不廣的問題;2、信息指令可以把它存儲在任何地方 (數據庫、文件、XML等),由任何信息cpu(包括模擬的信息cpu)調用執行,就是一次編程到處運行,比JAVA還JAVA;3、信息指令中的信息可 以設計成帶網絡地址、信息樹類別、信息樹編號、信息樹分支等信息表示方式,這樣就能夠輕而易舉地解決雲計算中信息調用的各種弊端,比.net還.net。

信息技術的發展日新月異,新東西層出不窮,造化留給我們兩個選擇:繼續使用國外雲計算帶來的複雜信息世界或用我們自主的信息指令來構造我們的信息世界,僅以魯迅的話:“造化又常常爲庸人設計,以時間的流駛,來洗滌舊跡”來與志同道合者共勉。

道指令與布爾邏輯

 

我在前面說過道cpu、道指令、道編程的理論根源,估計大家都忘了,因爲這幾天我的文章很少再提,擔心大家把我當成從道觀裏出來的騙子,但現在不得不再提 這些今人已遺忘的老祖宗的舊東西。我引用了《道德經》裏的一句話,很多人不屑於故,有股“凡是古人的都是糟粕,凡是中國人的都是瞎談”的第六感,看了一眼 就必生反感。這幾天,剛好沒事,在網上搜索一頓,果然老祖宗的舊東西被今人當作招牌拿出來招搖撞騙還不少,有從《易經》裏“陰陽五行”(不知道《易經》有 沒有陰陽五行)悟出各種適合宇宙萬能定理的,有從《易經》裏“八卦、太極、兩儀”悟出全能的計算機的,二進制更不用說了等等如此這般的現象也實在太多了。 我不知道到底是國人只受過古典教育還是現代教育太失敗了,竟然把堂堂的現代科技非要用古人的東西來套用。我們的專家教授也是實在不行,你早早利用現代科技 多搞一些比外國人先進的東西出來,讓國人有引以爲好的東西阿Q一下,省的老拿老祖宗那點東西出來炫耀,讓外國人見笑。

今天,因日常不愛看現代國人寫的書,又不屑於套用外國人的高深的理論,只好又一次拿老祖宗的舊東西來用一下。春秋戰國《道德經》是一本高度概括的哲學書, 講述了很多有哲理的古人的話,春秋戰國大家都知道是一個諸侯混戰的年代,就像目前諸企業混戰的時代,老子畢生目睹這些不幸生於那時代的人有違自然的神諭, 就用把自然的神諭寫在《道德經》裏以示後來人。我等不幸生於企業混戰的時代,應多讀讀《道德經》,與老子共勉。言歸正傳,《道德經》言人與諸侯即言個體與 整體之間的和諧之道,個體與整體之間也即微觀與宏觀、單核與多核、串行與並行等之間的有序和諧共處。

“道生一,一生二,二生三,三生萬物”講述了宇宙間萬物的發展規律,引伸到信息領域就是信息的生成規律,即“道”作爲萬物信息生成的源程序,“道生一”即 信息萬物程序開始運行,產生最原始信息,如宇宙大爆炸的原始點,“一生二”即由原始信息產生基本信息,如宇宙大爆炸後的粒子,“二生三”既由基本信息產生 基本信息之間的(陰陽)關係,如宇宙大爆炸後的粒子的反應關係,“三生萬物”即由基本信息及其基本信息之間的關係產生萬物各種信息,如宇宙各種粒子之間產 生各種反應產生各種原子,由原子反應產生各種分子等,整個過程表現爲信息樹的發展形式。信息的生成以此環環相扣的形式發展着,推動它發展的動力是什麼? 《道德經》也給我們指出了答案:“萬物負陰而抱陽,衝氣以爲和”,萬物的發展即信息的生成是在“陰、陽”兩種不同屬性的信息關係組混合作用下,重新生成一 種新的信息,即各種物體和他們之間的各種反應關係產生新的物體(爲了大家理解稍微修改一下)。

信息生成信息比較好理解,就是信息之間的關係是怎樣的,各有各得說法,如國人用“八卦、五行”等理解,外國人用“邏輯、布爾邏輯、數學運算”等,我的理解就是“陰陽”與“布爾邏輯”是一樣的,即道指令:[原信息1, 原信息2, 原信息3]< 原信息6, 原信息7, 原信息8>..->生成信息。其實是布爾邏輯的另一種表示。我在前面已經說了很多次了,不知有人理解嗎?現在我必須詳細解釋一下這個理論,否則,我這個民科帽子不知啥時候能夠摘掉。

道指令用布爾邏輯表示:

[原信息1, 原信息2, 原信息3]< 原信息6, 原信息7, 原信息8>..->生成信息。

((ABC..)∪(..) ∪)∩!(EFG) ∩!() ∩=Q

以上用ABC等表示原信息1、原信息2、

各種布爾邏輯的等式可用上述的幾個等式寫出來,所以基於布爾邏輯的現代計算機可用道指令製造出來,可運行道指令的到cpu也可以模擬現代計算機cpu處理數字信息的過程,具體實現過程現在不討論。

我這樣證明不知有人有疑義嗎?可能有人說你這樣做還不如直接用布爾邏輯構造cpu,又有很多工具可用,又能讓受過現代科技教育的人理解,何樂而不爲呢!其 實我這樣做的原因是因爲用布爾邏輯來設計cpu、cpu再處理數字信息這個過程太麻煩,布爾邏輯粒度太小,我把布爾邏輯做成較大粒度的元件(道cpu), 再用這個元件處理信息,省去了設計cpu繁瑣的過程。

我不知道cpu的兩大巨頭將來如何發展它們的cpu,但GPU的發展可能給了他們這樣的提示,全功能的cpu越來越難於設計,中等粒度的cpu將是未來 cpu的出路。在這混亂的時代,我奉勸cpu的設計者們、軟件開發者們、企業管理家們、企業主們多多讀讀《道德經》。《道德經》可能不能帶給他們生財之 道,但可以給他們帶來串行與並行、單核與多核、個人與企業、微觀與宏觀的有序和諧之道。

臨時性道指令

 

按照上述信息處理理論,信息又可以分爲自動產生和不可自動產生的類型。自動產生就是通過一些列的數學、邏輯等運算就可以產生出新的信息,而不可自動產生就是不能通過數學、邏輯等運算產生的信息。當道函數內有很多這種不可自動產生的信息時,道函數實例就會一直等待這些未決的信息,道函數不能通過自身產生這些信息,所以他必須等待外界的輸入信息。而外界對一個道函數輸入信息主要有兩種方式,第一、直接通過道函數的實例ID輸入;第二、道函數產生一個多種選擇的可能信息系列,由外界隨機挑選輸入。

有人可能對這兩種方式很不理解,這裏稍微解釋一下:當前的計算機程序,大部分是確定性過程,比如一個函數可以從頭運行到結束,不管什麼情況,結果都一樣。那麼,程序如何處理不確定性的過程,關鍵在於函數必須可以跨出自身對不屬於自身的信息進行調用,一般的實現就是利用全局數據,全局數據的變化或改變就可以影響函數的運行結果。除了使用全局函數外可以調用另外一個非確定性函數,獲得一個關鍵數據後,函數再決定運行流程,歸根結底,也必須有一個非確定性的過程。還有一種最原始解決方式,即調用一個隨機過程,取得隨機數據,再來決定運行流程。然而目前隨機的解決方式,實際上也是調用了一些全局數據,所以我們上述幾個解決方式歸納爲一個解決方法,即利用全局數據的變化來決定函數的非確定性運行過程。函數穿過自身作用範圍調用全局數據,聽起來很詭異,比如把整個宇宙比喻成一個函數,宇宙的量子不可測行爲及不可理解暗物質現象就會產生如函數調用全局數據的詭異行爲出來。雖然函數調用全局數據可以詭異般地做出非確定的行爲來,然而計算機高級語言專家告訴我們,這並不是一種好的行爲方式,並且是造成軟件項目失敗的一種方式。如何較好地解決函數的非確定行爲就是道指令及現代計算機語言必須解決的問題。

現代計算機語言解決非確定函數問題的除上述外方法並不多,目前大多利用事件功能,即函數停下來等待一個事件,再決定運行流程,如windows中的事件消息,C#的yield關鍵字,這些解決方法雖然提高效率但大都不如全局數據來的直觀,所以本文的道指令稍微改造全局數據的表現形式,結合事件的方式,提出一種較好的解決方法,即函數不是主動去讀全局數據,而是被動地改變函數內部數據。

這裏再稍微解釋一下,函數內部數據一般別的函數是不能改變的,一般由自身才能改變。再以宇宙來舉一個例子,多重宇宙就像多個函數,多重宇宙間互相交流能量,就會表現出很多詭異特性,比如,粒子的有無相生,能量的無中生有等,從一個宇宙中向另外一個宇宙拋入一個光子,在另外一個宇宙就會突然產生一個光子,或爲保持能量守恆,這個宇宙就會向原宇宙拋回一個光子,處在宇宙當中的人就會被這些詭異的特性迷惑,不得不發展很多科學理論來解釋這些現象。

既然要改變函數的內部數據,就必須獲得每個函數實例化ID,本文采取以下道函數表達式:

函數名([Xthis.dfdf,sdfsd,…]<adfd,sdfsd,…>)->Xthis.fdsa=’sfgfsg’。

Xthis:表示未知的函數實例ID。

函數名(…)內部的道指令表示滿足該道指令的“函數名”函數實例ID,如果該實例ID存在,就運行->後的等式。

也可以這樣理解,道指令運行在兩種情況,一種當前已知的函數內,一種臨時性加入的已運行的函數實例內。第二種情況非常難以理解,舉一個例子,如有十個人,不知個人品行,我們就臨時編出一條道指令:人的道德([Xthis.強姦女性])-> Xthis.自殺,並把這條道指令如魔鬼般臨時植入這十個人裏,這十個人內部就會按照道指令列出的條件產生出一個虛擬結果,指示某人已滿足條件,並運行“->”後的指示,這樣世界就太平了。

臨時性道指令爲當前運行的函數加入臨時性指令,對函數的內部數據進行修改,使得函數可以變現出非確定的行爲。

抉擇形與自學習形道指令

 

道cpu、道指令企圖用最簡單的、最基本的原理構造出現代先進的、包容一切的計算機技術。這種技術有別於當今流行的計算機技術,它最重要的特性在於利用幾千年前古中國《道德經》記載的“有無”、“陰陽”等宇宙最基本的計算模型構造出僅有一條指令的計算體系。《道德經》揭示了宇宙間最強大的最基本、最強大力量就是“無”、“弱”、“寡”,如“上善若水”、“有生於無”等,道cpu、道指令正是從此原理出發,運用一條指令來創造計算世界。在以前的文章中,本人已經對盡有一條指令的道cpu、道指令理論進行了詳細的論述,相信所有受過高等教育的人都能夠領悟,能夠應用此指令進行軟件開發編程,編制出所需的軟件來。但這不是道cpu、道指令的主要目的,在前面的文章中,本人已稍微透露了這個最高目標境界,既用道cpu、道指令開發出既有人類智能的軟件來。

人類智能或叫人工智能很早就有了,支持人工智能推理運算的計算機語言Prolog也很早就被開發出來,但到目前爲止真正的具有類似人類智能的人工智能還沒有看到,2009年,科學家們已經發明瞭一種自學習的軟件用來幫助化學實驗,還有一種神經網絡可以達到幾歲小孩智能也被髮明出來,基因技術方面也將達到製造人工生命的初步階段,這說明了真正的人工智能有可能在這幾年內取得突破。在這智能即將突破的關鍵時期,許多先知先覺的企業都在密謀能夠在將來分得一席之地,搜索技術公司Google及數學軟件公司Wolfram多年前已在祕密開發出能夠回答人類問題需求的系統來,我國的baidu也在2009年趕忙學習這個重要技術方法,並提出所謂的框技術來,而這個時候大多的企業甚至大企業正在忙於把手中的軟件轉變爲雲技術,對未來的趨勢毫無知覺。

Google及Wolfram浸淫於多年的信息數據算法研究,對未來信息的趨勢看的非常清楚:智能纔是信息發展的本質,如何智能處理信息是當今軟件行業發展的生死攸關的時刻。在軟件發展的早期,大半部分軟件是開發如何使用機器的軟件,而現在就必須開發如何處理信息的軟件,機器的重要性已經減化,這時候如不能把握髮展信息的關鍵時刻,以後必將在信息化方面處處依賴它人,信息化生活就會時刻受到別人的控制。沒有掌握智能處理信息的關鍵技術,想在未來信息化行業掙得一席之地就無從談起了。

對智能處理信息這個問題很多的專家學者在幾年前就已經提倡,這就是我們倡導的信息化社會或數字化生活,然而這幾年我們在信息化的過程中走了很多彎路,至今也沒有看到目標。信息化從上世紀的90年開始提倡,如辦公自動化,到現在的協同、雲計算技術等都是在爲信息化努力,但卻沒有取得很好的效果,國內衆多軟件公司到現在也沒有提出一個很好的解決方案來。時間不等人,國外已經發展出了初具人腦智能的軟件,我們還在爲採取何種編程語言、平臺、工具爭吵,還在觀望,等Google、Wolfram等國外的公司發展出了真正的智能信息化技術來,我們再來模仿就來不及了,原因:未來的雲計算技術會變成信息腦,對信息既有超強控制的腦,利用領先的時間充分優化腦智力,從而在處理信息上處處領先。按照本人預想,這種信息腦根本不用任何人工干預,自發編程,能像人類巫師(智者)般回答各種有用問題,可跟《黑客帝國》、《鷹眼》的主機媲美。

信息腦的關鍵技術就是要有跟人腦神經元之間的自發連接一樣的自發編程技術,能夠對採集到的信息進行自發編程,不再需要人類人工編程干預。在智能發展的早期,如神經系統剛出現時,可能一條、幾條、幾百條的神經系統,神經自組織(自發鏈接)功能就出現,這種自組織以極簡單的形式形成智能。而人類爲了數學計算的需要,開發了規模龐大的語言、處理器,而處理智能卻比不上一條神經元。一條神經元可以與人類耗費精力設計出來的計算機系統媲美,完全依靠他的自發行爲(自組織),也可以這樣理解:生物有了一個神經元后,就可以產生第二個神經元…. 至無窮,這些神經元之間就可以相互作用,導致更多的相互作用發生…至無窮,最後智力就產生了。按照《道德經》的話就是:“道生一、一生二、二生三、三生萬物”。神經元自發行爲根本沒有人來控制,沒有人來爲他們制定行爲規則,這啓示我們,要讓未來信息腦技術成功發展成爲有智能的整體就必須讓信息自發產生作用,再產生更多的相互作用,最後形成智能體。前面說過信息之間作用形式可依據神經作用原理抽象爲道指令的形式,我們可根據信息樹形成的理論,爲信息作用開發出道指令程序來,這樣一來,就不能達到信息自發產生作用的目的,最終還要靠人類來運作,解決此問題的唯一的希望只有開發具有自發編程的道指令。

神經系統以及其簡單的功能結構產生智能,具有自發編程功能的計算機語言也根本不需要複雜語言關鍵字、複雜的數據結構、複雜功能等,只要具有自發編程功能就可以了,中文(英文)關鍵字、複雜的功能都是次要的東西。道曰:“天下萬物生於有,有生於無”,宇宙中一切事物事物都是從“無”中生出來的,宇宙發展始於“無”,宇宙粒子從“無中生有”,複雜現象的最高代表—智能也是從一個非常簡單的神經元開始的,人類模擬智能從最簡單方式的開始,即從道指令開始智能的第一步。道指令僅有一條指令、沒有任何關鍵字,沒有數學計算、沒有程序結構、甚至沒有專用cpu,這正是智能設計在編程語言上的最終要求。有了智能設計專用語言(道指令語言後)後,我們就可以着手開始智能編程的第一步:自發編程。

從神經科學及基因科學的角度上看,智能依賴於神經元之間的簡單自發相互作用,自發編程依賴信息之間的自發作用。按照道cpu、道指令理論,信息之間的自發作用就是設計具有自發編程功能的道指令。很早在以前龍芯論壇上,本人針對道指令的未來提出了構想:計算髮展的盡頭就是沒有計算;cpu發展的盡頭就是沒有cpu;計算機語言發展的盡頭就是沒有語言;軟件編程發展的盡頭就是沒有編程。道cpu、道指令的設計就已經基本上取消了計算、cpu、語言,剩下最後的目標,即沒有編程。沒有編程不是說從此不要任何編程行爲,回到原始的靠天吃飯的社會,而是要讓編程行爲稱爲一種脫離人類控制的自發行爲,沒有了人類控制的編程,簡單說就是沒有編程。

自發編程爲人工智能的未來提出了一個可能的方向,按照自發編程的原理,極度具有控制慾的人類設計出來的人工智能是不符合自發編程原理的,下文將按照自發編程原理設計出可以編程人工智能的道指令來。

爲實現道指令的自發編程功能,必須對道指令進行一些語法改造。

第一:增加原因事件抉擇,採用如下的方式表示:

[:雜事1,雜事2,雜事3,雜事4,雜事5:]

表示當結果有事件發生時,這些“雜事”事件是造成結果事件的可能的罪魁禍首。

<:雜事1,雜事2,雜事3,雜事4,雜事5:>

表示當結果沒有事件發生時,這些“雜事”事件是造成結果事件不發生的可能的罪魁禍首。

[:…:]及<:…:>表示任意的事件集。

第二:增加結果事件抉擇,採用如下的方式表示:

->[:雜事1,雜事2,雜事3,雜事4,雜事5:]

表示結果事件肯定在上面“雜事”事件中,讓人類或自然爲我們選擇其一事件做爲結果事件。

[:…:]表示可以生成的任意結果集。
第三:增加道指令的輸出抉擇功能,採用如下的方式表示:
-><:雜事1,雜事2,雜事3,雜事4,雜事5:>;
表示對外輸出結果事件肯定在上面“雜事”事件中,讓人類或自然爲我們選擇其一事件做爲輸出結果事件。
第四:增加道指令的自發編程行爲,採用如下的方式表示:

增加另一中道指令運行標誌“=>”,表示當有抉擇形事件時,自發地把結果作爲道指令加入函數中。

“=>”的運行功能與人類的記憶功能類似,可以把發生的各種事情前因後果存入記憶庫中,並且記憶庫中的各種事件規則對人類的決策起着重要的作用。如果推理是對記憶進行搜索匹配事件後得到假設的前因後果,人類再按照前因後果的指示進行抉擇,選出本身認爲最優的事件來,那麼人類智能可以用道函數來虛擬運行,人類大腦時刻在建立臨時性道函數,得出各種事件結果後再進行抉擇。

道指令實現自發編程的語法十分的簡單,與目前人工智能科學理論體系十分不同,但能夠實現自我學習的人工智能。現在我們利用上述的道指令進行人工智能的編程:

自發的人工智能道指令程序
[:…:]<:…:>=> [:…:]<:…:>;
上述具有自發編程能力的道指令程序只有短短的一行,能夠實現道指令的自發編程能力,具體如何做到這一點,我將在以後的文章再論述。

第一道道指令程序註釋

 

道cpu模擬器、道指令編譯程序已經初步完成,但還有很多工作要做。在更深入地開發之前,首先編寫一道計算機遞歸程序,在此基礎上加以解釋,讓更多的人瞭解道cpu、道指令如何工作,並提出有用的建議。

 hhhyyyy

{

main()()

{

    [dgdfg]->f(10)(ttttt);

    [ttttt]->[ttttt,顯示結果,結束];

}

f(n)(result)

{

    [n=1]-><1>;

    [n]<n=1>->$oldn=n;

    [n]<n=1>->f(n-1)(fresult);

    [fresult]-><oldn*fresult>;

    [fresult]->[~oldn,~this,~oldthis];

}

}

上述f函數是計算階乘10!的遞歸函數,以下講解程序如何運行

// 道指令程序包含許多函數,這些函數定義在一個較大的程序空間。

//首先程序空間hhhyyyy

hhhyyyy

{

/*像c語言一樣,聲明一個主函數,便於用戶調用,如果是私用的程序,主函數便可以隨便令名。*/

main()()

{

             [dgdfg]->f(10)(ttttt);

             /* dgdfg符號是函數開始符號,這個符號必須由函數輸入參數傳入,或在主函數中由用戶直接傳入,[dgdfg]表示dgdfg符號存在時,便激發“->”後的生成指令,f函數就可以執行調用了,調用後dgdfg符號就丟棄了。當f(n)( result)函數調用完成後,result 的值賦給ttttt ,ttttt可以使用了*/

            [ttttt]->[ttttt,顯示結果,結束];

              /*[ttttt,顯示結果,結束]表示同時生成三個符號,其中已有的ttttt符號保留原值,其他的符號爲空值 */

}

f(n)(result)

{

         [n=1]-><1>;

       //表示當n=1時,返回1給result。”->”後的”<>”符號是返回標誌

       [n]<n=1>->$oldn=n;

        /* 表示當n!=1時, 把n符號值賦給oldn符號,$表示保留oldn符號在數據棧中直到函數完全結束。*/

       [n]<n=1>->f(n-1)(fresult);

       /* 表示當n!=1時, 調用f函數。*/

      [fresult]-><oldn*fresult>;//函數返回oldn*fresult值。

     [fresult]->[~oldn,~this,~oldthis];

    /*[~oldn,~this,~oldthis]表示從數據棧中丟棄三個符號,該函數從調用棧中清除。*/

}

 }

 從上述道指令的編程中可以看出,目前,道指令語言僅有幾個標號:

比較功能標號:=

賦值標號:=

道指令 :[…]…<…>…->[…]

符號存儲指示:$、~

函數調用:prog.functcall(….)(….)

函數返回:[…]…<…>…-> <…….>;

道指令語言編程的關鍵在於,必須控制符號在數據棧中的存在,道指令根據符號在存在運行生成結果。理解符號的存在,也就理解道指令的本質。

發佈了92 篇原創文章 · 獲贊 5 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章