1. 程式人生 > >《大話處理器》處理器的分層模型——從MIPS、龍芯、ST的關係談起

《大話處理器》處理器的分層模型——從MIPS、龍芯、ST的關係談起

 

處理器的分層模型

——從MIPS、龍芯、ST的關係談起

       2009年6月15日,MIPS公司網站釋出新聞,中國科學院計算所取得MIPS32®和MIPS64® Architecture的授權,用於龍芯的開發和商用。新聞見下面的連結:

       2007年3月28日,STMicroelectronics公司網站釋出新聞,STMicroelectronics製造和銷售中國科學院計算所研製的龍芯IP。新聞見下面的連結:

       龍芯取樣MIPS的Architecture授權,晶片又由ST製造,關於龍芯的智慧財產權問題一直是人們關注的焦點,要弄清這個問題,需要首先理解處理器的分層模型。

        在計算機體系結構中,處理器被分為3個層次:

        指令集體系結構(Instruction Set Architecture,ISA)常被簡稱為Architecture(架構),是處理器的一個抽象描述,處理器對外提供哪些指令,提供哪些定址方式,擁有哪些程式設計師可見的暫存器等等,這些都屬於ISA的範疇,它描述的是處理器對軟體人員提供的介面。ISA在處理器中的實現,被稱為Microarchitecture(微架構),同樣是x86的Architecture,Intel和AMD各自使用不同的Microarchitecture。

        通俗的說,Architecture是處理器的外表,Microarchitecture是處理器的內心。Architecture是設計規範,定義處理器能做什麼,Microarchitecture是設計實現,描述處理器是怎麼實現功能的。

       處理器的物理實現是具體的實現過程,可以用20nm的積體電路工藝實現處理器,也可以用40nm的工藝實現,可以用電子實現(電子計算機),也可以用量子實現(量子計算機)。Microarchitecture描述的是處理器的邏輯結構,不關注處理器的物理實現工藝。

       如果用軟體開發的流程來和處理器進行對比,那麼Architecture就好比需求,Microarchitecture好比設計,物理實現好比真正的程式碼。

        Microarchitecture通常也可以認為等同於核心(core),一個處理器除了核心外,也還有很多其他的東西,例如:I/O(Input/Output)、電源、時鐘等等,同樣一種微架構可以出多種型號的處理器。

        下面這張圖以商用處理器的例子描述了指令集、微架構、處理器之間的關係:

        Intel著名的奔2、奔3電腦,使用了Intel歷史上非常成功的P6微架構,奔4以及一部分志強處理器使用了NetBurst微架構,它們都使用x86指令集。ARM公司設計的ARM Cortex-A8核心使用ARMv7指令集,被用在了TI、三星等很多公司的處理器上。

       很多人會混淆ARM7和ARMv7,ARM7是一種微架構,使用的是ARMv4指令集,ARMv7是一種指令集,Cortex系列的都使用ARMv7指令集。

        從上面的分析我們得知:MIPS處於指令集這一層,龍芯處於微架構這一層,ST處於物理實現這一層。雖然MIPS也賣核心,不過相信龍芯的微架構還是會有自己的特色。