Windows CE,你媽嗎喊你在多核上玩玩

來源:互聯網
上載者:User

轉自:http://hezongjian.com/blog/?p=9693

眾所周知,CE的核心是完全重新寫的,與9x根nt沒有任何關係,這給CE帶來了較好的即時性及靈活性。從誕生之日起,CE的核心改過兩次,第一次是3.0,極大的增強了即時性,第二次是6.0,去除了記憶體/應用32 / 32的限制。如此看來,貌似已經比較完美了。從6.0發布以來,我一直樂觀的覺得6.0的核心應該可以至少再頂三個版本了,下次更新核心大概要到CE 9.0了(猴年馬月….)。但是計劃不如變化快,資訊產業瞬息萬變,很多預言都會被證明是很可笑的。我的這個“預言”也不例外(對在08年TechEd上聽我演講的聽眾說聲抱歉,當時我還極力鼓吹多餘的Kernel feature都是沒必要的)。短短几年時間,如果現在你再問我新版本的CE要不要改核心。我會一口咬定,改,最好馬上改。

個人觀點,欠改的地方有兩個,記憶體映射和SMP支援。

首先說記憶體映射。CE從誕生之日起就在Kernel的3GB起始處映射了2個512MB的虛擬位址。一個是有cache的,一個是沒cache的。這使得CE最大的實體記憶體就只有512MB,512已經是理論極限了,再多了就不認了。512這個數字在嵌入式系統上一直是天文數字,幾年前還是。誰知道隨著智能手機軟體(應用複雜化)跟硬體(記憶體白菜價)的飛速發展,在手機上裝個512MB的記憶體也沒什麼大不了的。在CE上,如果裝了512MB記憶體,麻煩還真不小。這個限制應該改了。倒也不是難事,只是向下相容性要打折扣了。

其次說一下SMP。CE誕生以來一直是針對單CPU的,即使在PC機上,多核技術已經興盛很長時間了,但是依然沒有能夠打動CE加入SMP支援,因為用CEPC的人,一般也不會找個多核CPU。時代又不同了,CE支援的主流平台──ARM,這幾年也跟著玩起了多核。ARM11, ARM Cortex A9都玩起了MPCore。這一玩,不得了了。如果CE不跟著玩,幾年後,可能行動裝置上就看不到CE的影子了。*nix系統(iphone和android)可是原生支援SMP的。雖然*nix系統即時性沒有CE高,但是人家畢竟支援smp,可以把CPU的能力都發揮出來。CE啊,抓緊把spinlock,CPU Affinity這些Desktop Windows上的東西搬過來吧(BSP的實現又複雜化了,當然這些東西要BSP支援)。

其它還有沒有要改的呢,可能有。例如Windows訊息機制,現在的WM_LBUTTONDOWN, RBUTTONDOWN訊息已經遠遠不適合multi touch了。當然這個可能不需要改核心,driver和API改改就可以,魅族的手機已經實現了。

下一個版本的CE大概今年就會發布吧。新的CE裡面這兩點會不會改進,目前還沒有官方的訊息。拭目以待吧。

(參考資料,ARM的多核:http://www.arm.com/products/CPUs/ARM11MPCoreMultiprocessor.html)

關於512M的大小和地址限制,沒辦法,MIPS和SH 硬體上就這麼訪問虛擬記憶體地址空間的,所以只要CE一天要相容這2個玩意,這個包袱還得一直背下去。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.