我設想的未來計算機硬件架構
- 作者:
- 安徽新天源建設咨詢有限公司
- 最后修訂:
- 2020-07-30 15:03:43
摘要:
目前的計算機硬件結構,是以CPU為中心,以芯片組配合CPU,各種功能卡或者集成或者獨立插卡形式組合成的。這種結構存在弊端,就是:
1、各種功能組件是有層次結構的,固定的層次結構難以適應多變的需求,比如普通用戶對硬盤傳輸速度需求不高,而對硬盤傳輸速度需求高的用戶卻發現,現有硬盤傳輸接口速度達不到要求。
2、各種舊的投資在升級硬件后難于再利用,只能拋棄。
3、硬件一部分損壞,除了維修,沒有別的辦法,難于部分更換。
為此,我提出一個以光傳輸為中心的分列板卡的硬件結構。這種結構,將計算機硬件各功能部分,拆成一個個標準尺寸的小板,通過光傳輸聯系到一個總控設備上,將各種需要處理的信息,通過光信號在各功能部件間傳輸。
一、某些需要說明的東西
計算機的各組件應該采取平等的態度對待,具體就是把主板的概念拋棄,用一條統一的光通路鏈接各組件,而各組件采取小板的形式呈現。每個板子分配一個64位地址,其中高32位為硬件類型,低32位為在機器里的同類型編號。各組件以類似局域網形式鏈接。
好處就是,比如CPU板,可以任意的添加和異構化組合,比如Intel結構的CPU板只需要更換成AMD結構的CPU 板就使整個機器改換。同樣道理,添加CPU板則使機器多CPU化,甚至一個板子上集成多核,使用多個板子則CPU核將依次增加,相當容易。:)而且如果以 后升級CPU,舊的板子不需要拿下,還可以使用。
二、硬件通訊架構
建立一個中心光交換節點S,有設備1、2,每個設備都有輸入和輸出兩條通訊鏈路與S連接,此時結構圖如下。
假設1需要傳送數據到2,1發送含有地址的數據包到S,S發現目的是2的數據,發送數據到2的輸入端,然后進入2。如果目的地址是全1信號,則為廣播到所有設備的信號,如果低32位全1,則為廣播到所有相同類型設備的信號。
整個數據信號采取光信號形式傳送,假設信號為10Gbps,則整個鏈路的傳送速度是很快的,不排除技術進步使信號比特率達到更高速度的可能。可以考慮把每個設備的光傳送部分獨立為可更換可兼容形式,方便以后的升級。
如果技術的進步達到一定程度,甚至可每鏈路并行傳送多條信號,比如單路輸入輸出信號10Gbps,因為光信號不會相互干擾,則并行64路信號能輕易達到640Gbps,不過多并行的光信號會遇到同步的問題。
為了使整個系統的速度不會受影響,應該限制系統最大的設備板的數量,當然這個限制可根據機器的用途和總的S交換帶寬來規定,比如家用級最大不超過32塊,服務器級不超過128塊等等。
三、設備板及其分類
每個設備板的尺寸應該做統一的規定,以方便將來插在統一的接口上和系統連接,系統連接的接口應該是數據傳送和電源的統一接口,電源部分應該支持熱插拔。板子 上應該存在能自動確定板子地址的電路或者能手動跳線設定地址的電路(某些特殊板子比如CPU、內存板子可考慮能手動更改地址的可能,以方便系統確定優先板 的位置)。
標準尺寸的板子可稱為標準板或者全長板,還可以定制半尺寸或者1/4尺寸板子用在小尺寸的設備上比如閃存等。
另外,某些設備需要散熱,比如CPU、GPU,需要的厚度很大,我們可以把設備板的厚度規定一定的數值,標準厚度的稱為1U板,兩個標準厚度的稱為2U板,依次類推。需要屏蔽電磁干擾的設備則可覆蓋屏蔽金屬層。
為了方便連接設備板,對應的機箱內部應該相抽屜一樣分成若干層,每層有凹槽和接口兩部分組成,設備在用力推入后,能依靠彈力鎖定在接口上,并用凹槽支撐。標準的1U板應該是在立式機箱里平行于地面的,如現在的PCI卡一樣,方便散熱。而厚度大的板子如CPU、硬盤等,可考慮單獨于其他設備板,平行于機箱的側 板放置,甚至如現在的標準3.5寸存儲設備的位置可劃撥給厚設備板使用。當然,如硬盤等,采取傳統的卡式用電纜鏈接的也可以,不過,每設備都應該聯在獨立的設備卡上。(本來應該有個圖片的,來說明實際機器里板子的物理形態和連接,可惜需要CAD做圖,來不及啊,呵呵)
四、傳統可稱為BIOS的部分
因為所有的硬件都在不同的設備板上,此時統一控制的方法只能放棄,除了系統通訊鏈路的兩端有簡單的控制芯片外,每個設備板上都需要自己的單獨控制。內存閃存上應該有簡單控制芯片,而CPU板上則必須有更復雜的控制。
所以傳統的BIOS部分應該分布在了各系統板上,而且在系統運行過程中獨立發揮作用。
為了統一系統控制,還應該考慮,在系統通訊鏈路部分增加一個閃存存儲部分,來設定系統參數、存儲系統相關信息。這個部分的容量應該能支持很大的數據存儲,并且損壞掉后只能影響系統的啟動速度,系統沒有這個部分,可自我檢測運行。當然也要能可廉價更換。
五、核心的CPU
關鍵的CPU板,除了CPU插槽、CPU之外,應該包括供電部分,數據傳輸等傳統必需的部分,還要包括一個可寫的存儲單元,此單元在板子上不可寫,但可獨立 取下(帶電情況下),并連接系統的USB部分來更新其中的內容。存儲單元的地址在CPU板初始加電后被映射入內存空間,內容是一段程序,支持CPU板正常 的初始化和設置。正常啟動后,則不再需要(此時可以取下)。
每個板子能支持多核CPU,每個CPU核都能控制該板,象多個CPU板一樣工作。
因為系統里可能存在多個CPU板,且運算能力不同,所以必須存在一個機制來決定哪個板子在系統里起控制作用,這可以制定一個參數,存儲在CPU板子里,參數 的大小決定CPU板子的運算能力的大概強度,或者簡單的參數大的運算能力大,然后系統啟動時,所有CPU板子都廣播自己的參數,選舉出參數大的做主控CPU板子。
六、存儲系統的構成
存儲系統比較復雜,目前的技術不能找到一種廉價高速的存儲方式,所以還要有昂貴高速的內存和廉價低速的外存。
內存和外存必須區別對待。
對于外存,采取一般的設備板方式對待。需要考慮的是,本文方式下的外存儲器最好是帶比較大的緩存,方便快速的響應系統的其他設備的高速通訊需求。
對于內存板,考慮到很可能各種技術和形態的內存存在,必須有一種機制規劃整個的系
統的內存,可以考慮在CPU板上建立映射機制,把不同的內存板映射到不同的內存空間。具體的映射方式考慮和內存的容量和速度有關。
考慮到可能最終的通訊速度和內存速度不匹配。CPU板最好是帶有比較大的三級緩存器,比如64M。 :)
對于一般化的設備,我想比較方便的方式是按照現在的USB設備和系統鏈接的方式來設計,但是,這種方式的設備支持和設備間通訊的速度應該是沒有當前USB系統的種種限制的。如果未來無線的速度能達到很大的數值,可考慮一部分的設備板以無線方式連接到系統。
七、系統啟動流程
系統加電后,每塊設備板都自我初始化,然后廣播自己的設備地址,然后選舉出主CPU板。主CPU板接過控制權,將開始各設備的高級的詢問和設定,內存板的整合,找到表明為啟動設備的板,裝入啟動代碼。期間其他CPU板將開始以多線程類似的方式協助主CPU板工作,甚至可能會開始第二操作系統的啟動。 :)
啟動過程中遇到的任何錯誤和導致停機的信號,都會以特殊系統廣播的方式在通訊鏈路里循環廣播(可被交換節點S捕捉到,并能顯示出來),致命錯誤會一直廣播直到斷電。
八、可能遇到的困難
1、可能要重新設計現有的CPU的硬啟動流程。
2、多種設備混合通訊,能否做到對主設備板,比如CPU通訊的實時響應。
3、隨機加入和退出的設備板,必須以穩妥的方式對待,比如一個CPU板突然壞掉就可能是致命的,特別是如果是主CPU板。
4、電源系統的設計需要重新進行。
5、各設備板必須有一種速度很大并穩定的方式進行通訊,這種方式能以廉價的方法提高速度,目前我認為光通訊比較好。 :)
九、優缺點
優點是擴展容易,管理簡單,能有效隔離干擾,對高發熱設備能有效的和其他設備隔離,提供好的散熱環境,升級也變得極簡單。
缺點是可能不好找到廉價的高速光交換手段,現在的硬件設計都要變更,低端軟件要重新編寫。