2009年9月2日 星期三

似MIPS多核心處理器

終於~
終於完成我理想中雙核心CPU啦~
我的理想是設計一個雙核心CPU~
使用者可以完全不用做甚麼特殊的設計,只需要把一般的程式放進去執行,
CPU內部自行判斷,將程式變成可平行化的處理!
這顆CPU不是像市面上的CPU,是用於多工處理的!
(就是只做一件事時,還是只有一個CPU處理,不會比較快,要做到兩件事以上才會用到兩顆CPU處理)
這次完成的CPU是為了讓處理一件事變快的CPU,這樣的CPU才真正達成平行處理,不是只是將兩顆接在一起。

接下來就是簡單的介紹啦~
似 MIPS 多核心處理器


圖中就是我所設計的似MIPS多處理器核心架構~
整個架構包含兩顆可平行化之似MIPS 處理器、一顆浮點數運算之似MIPS處理
器、處理器控制器與共用暫存器和外部記憶體控制器。

紅色部分為處理器1與處理器2是兩顆相同且可平行處理之似MIPS處理器,其中包含27個整數處理的指令,橙色部分為FPU處理器為處理浮點數之運算,包含18個指令,綠色部分為外部記憶體的控制器介面,藍色部分為處理器控制器與共享暫存器,此處理器控制器主要功能為判斷兩相鄰指令是否相依,並分配這些指令由哪些處理器工作,並將需要用到的暫存器資料傳進工作中處理器裡,且接收處理完的資料,更新其暫存器內容值,以確保資料同步。

至於控制器中判斷指令相依就是依照MIPS的指令格式分成暫存器指令格式,立即指令格式與跳躍指
令格式三種,控制器會根據不同之指令格式產生出不同的相依條件判斷。

資料同步與更新方面~
因為考慮到未來將發展更多處理器核心之系統晶片,
因此採用UMA(Uniform Memory Access)共享記憶體架構,如下圖,
此架構擁有一個共同記憶體,因此所有處理器皆須向此記憶體模組提取相關資料,並將處理完之資料更新回此記憶體模組,雖然在傳遞資料中會浪費相對的時間但用於多處理器核心架構中可以省去分別更新每顆處理器內的資料的時間。



在相同程式輸入下,此雙處理器比單處理器有效提升約150%之速率。
之後的工作重點就是將這次完成的雙核心處理器,兩個串在一起
這樣的話,完成的CPU不只有我設計的可平行處理一件事的CPU,更可以多工處理多件事~
達到真的做一件事也快,做多件事也快的理想~

期望畢業以前能完成四核心,八核心的CPU設計~
不然要畢業也難啦~

沒有留言: