ARM體系結構發(fā)展
ARM體系結構發(fā)展(轉載) 處理器的體系結構定義了指令集(ISA)和基于這一體系結構下處理器的程序員模型。盡管每個處理器性能不同,所面向的應用不同,每個處理器的實現(xiàn)都要遵循這一體系結構。ARM體系結構為嵌入系統(tǒng)發(fā)展商提供很高的系統(tǒng)性能,同時保持優(yōu)異的功耗和面積效率。 ARM體系結構的發(fā)展 ARM體系結構為滿足ARM合作者以及設計領域的一般需求正穩(wěn)步發(fā)展。 每一次ARM體系結構的重大修改,都會添加極為關鍵的技術。在體系結構作重大修改的期間,會添加新的性能作為體系結構的變體。下面的名字表明了系統(tǒng)結構上的提升,后面附加的關鍵字表明了體系結構的變體。 V3結構 32位地址。 T ? Thumb狀態(tài):16位指令。 M ? 長乘法支持(32*32=>64或者32*32+64=>64)。這一性質已經變成V4結構的標準配置。 V4結構 加入了半字存儲操作。 D ? 對調試的支持(Debug) I ? 嵌入的ICE(In Circuit Emulation) 屬于V4體系結構的處理器(核)有ARM7,ARM7100(ARM7核的處理器),ARM7500(ARM7核的處理器)。 屬于V4T(支持Thumb指令)體系結構的處理器(核)有 ARM7TDMI,ARM7TDMI-S(ARM7TDMI可綜合版本),ARM710T(ARM7TDMI核的處理器),ARM720T(ARM7TDMI核的處理器),ARM740T(ARM7TDMI核的處理器),ARM9TDMI,ARM910T(ARM9TDMI核的處理器),ARM920T(ARM9TDMI核的處理器),ARM940T(ARM9TDMI核的處理器),StrongARM(Intel公司的產品)。 V5結構 提升了ARM和Thumb指令的交互工作能力。 E ? DSP指令支持。 J ? Java指令支持。 屬于V5T(支持Thumb指令)體系結構的處理器(核)有ARM10TDMI,ARM1020T(ARM10TDMI核處理器)。 屬于V5TE(支持Thumb,DSP指令)體系結構的處理器(核)有ARM9E,ARM9E-S(ARM9E可綜合版本),ARM946(ARM9E核的處理器),ARM966(ARM9E核的處理器),ARM10E,ARM1020E(ARM10E核處理器),ARM1022E(ARM10E核的處理器), Xscale(Intel公司產品)。 屬于V5TEJ(支持Thumb,DSP指令,Java指令)體系結構的處理器(核)有ARM9EJ,ARM9EJ-S(ARM9EJ可綜合版本),ARM926EJ(ARM9EJ核的處理器),ARM10EJ。 V6結構 增加了媒體指令 屬于V6體系結構的處理器核有ARM11。ARM體系結構中有四種特殊指令集:Thumb指令(T),DSP指令(E),Java指令(J),Media指令,V6體系結構包含全部四種特殊指令集。為滿足向后兼容,ARMv6也包括了ARMv5的存儲器管理和例外處理。這將使眾多的第三方發(fā)展商能夠利用現(xiàn)有的成果,支持軟件和設計的復用。 新的體系結構并不是想取代現(xiàn)存的體系結構,使它們變得多余。新的CPU核和衍生產品將建立在這些結構之上,同時不斷與制造工藝保持同步。例如基于V4T體系結構的ARM7TDMI核還在廣泛被新產品所使用。 新體系結構的發(fā)展動力 下一代體系結構的發(fā)展是由不斷涌現(xiàn)的新產品和變化的市場來推動的。關鍵的設計約束是顯而易見的,功能,性能,速度,功耗,面積和成本必須與每一種應用的需求相平衡。保證領先的性能/功耗(MIPS/Watt)在過去是ARM成功的基石,在將來的應用中它也是一個重要衡量標準。隨著計算和通訊持續(xù)覆蓋許多消費領域,功能也變得愈來愈復雜,消費者期望有高級的用戶界面,多媒體以及增強的產品性能。ARMv6將更有效的對這些新性質和技術進行有效的支持。 驅動RMv6體系結構發(fā)展的市場主要有無線,網絡,自動化和消費娛樂市場。ARM在過去與體系結構的受權者和主要合作者像Intel,Microsoft,Symbian和TI共同定義了ARMv6體系 結構的需求。 ARMv6體系結構的提升 發(fā)展ARMv6體系結構的過程中,精力主要集中在五個方面: 存儲器管理 存儲器管理方式嚴重影響系統(tǒng)設計和性能。存儲器結構的提升將大大提高處理器的整體性能-尤其是對于面向平臺的應用。ARMv6體系結構可以提高取指(數(shù)據)效能。處理器將花費更少的時間在等待指令和緩存未命中數(shù)據重裝載上面。存儲器管理的提升將使系統(tǒng)性能提升30%。 而且,存儲器管理的提升也會提高總線的使用效率。更少的總線活動意味著功耗方面的節(jié)省。 多處理器 應用覆蓋驅動系統(tǒng)實現(xiàn)向多處理器方向發(fā)展。無線平臺,尤其是2。5G和3G,都是典型的需要整合多個ARM處理器或ARM與DSP的應用。 多處理器材通過共享內存來有效的共享數(shù)據。新的ARMv6在數(shù)據共享和同步方面的能力將使它更容易實現(xiàn)多處理器,以及提高它們的性能。新的指令使能復雜的同步策略,更大的提升了系統(tǒng)效能。 多媒體支持 單指令流多數(shù)據流(SIMD)能力使得軟件更有效地完成高性能的媒體應用像聲音和圖像編碼器。ARMv6指令集合中加入了超過60個SIMD指令。 加入SIMD指令將使性能提高2倍到4倍。SIMD能力使發(fā)展商可以完成高端的像圖象編碼,語音識別,3D圖象,尤其是與下一代無線應用相關的。 數(shù)據處理 數(shù)據的大小端問題是指數(shù)據以何種方式在存儲器中被存儲和引用。 隨著更多的SOC集成,單芯片不僅包含小端的OS環(huán)境和界面(像USB,PCI),也包含大端的數(shù)據(TCP/IP包,MPEG流)。ARMv6體系結構,支持混合。結果,數(shù)據處理問題在ARMv6體系結構中更為有效。 未對齊數(shù)據是指數(shù)據未與自然邊界對齊。例如,在DSP應用中有時需要將字數(shù)據半字對齊。處理器更有效處理這種情形需要能夠裝載字到任何半字邊界。 當前版本的體系結構需要大量指令處理未對齊數(shù)據。ARMv6兼容結構處理未對齊數(shù)據更有效。對于嚴重依賴未對齊數(shù)據的DSP算法,ARMv6體系結構將有性能的提高以及代碼數(shù)量的縮減。未對齊數(shù)據支持將使ARM處理器在仿真其它處理器像Motorola的68000系列方面更有效。 與ARMv5的實現(xiàn)像ARM10和Xscale,ARMv6是基于32位處理器。ARMv6可以實現(xiàn)64位或64位以上的總線寬度。這使得總線等于甚至超過64位處理器,但功耗和面積卻比64位CPU要低。 例外(EXCEPTION)與中斷 對于實時系統(tǒng)來說,對于中斷的效率是要求嚴格的。像硬盤控制器,引擎管理應用,這些應用中如果中斷沒有及時得到響應,那后果將是嚴重的。更有效的處理中斷與例外也能提高系統(tǒng)整體表現(xiàn)。在降低系統(tǒng)時尤為重要。 在ARMv6體系結構中,新的指令被加入了指令集合來提升中斷與例外的實現(xiàn)。這些將有效提升特權模式下例外處理。 ARM11主要性能 ARM11是ARMv6體系結構的第一個實現(xiàn),ARM11微結構的設計目的是為了高性能,而實現(xiàn)這一目的流水線是關鍵。ARM11微結構的流水線與以前的ARM核不同,它包含8級流水,使貫通率比以前的核提高40%。 單指令發(fā)射 ARM11微結構的流水線是標量的(SCALAR),即每次只發(fā)射一條指令(單發(fā)射)。有些流水線結構可以同時發(fā)射多條指令,例如,可以同時向ALU和MAC流水線發(fā)射指令。 理論上,多發(fā)射微結構會有更高的效能,但實踐上,多發(fā)射微結構無疑會增加前段指令譯碼級的復雜程度,因為需要更多的邏輯來處理指令相關(DEPENDENCY),這將使處理器的面積和功耗變得更大。 分支預測 分支指令通常是條件指令,它們在跳到新指令前需要進行一些條件的測試。由于條件指令譯碼需要的條件碼要三四個周期后才可能有結果,分支有可能引起流水線的延遲。但分支預測將會有助于避免這種延遲。 ARM11微結構使用兩種技術來預測分支。首先,動態(tài)的預測器使用歷史記錄來判斷分支是最頻繁發(fā)生,還是最不頻繁發(fā)生。動態(tài)預測器是一個64個分錄,4狀態(tài)(StronglyTaken,WeaklyTaken,Strongly notTaken,Weakly notTaken)的分支目標地址緩存(BTAC)。表格大小足夠保持最近的分支情況,分支預測就基于以前的結果。其次,如果動態(tài)的分支預測器沒有發(fā)現(xiàn)記錄,就使用靜態(tài)的分支算法。很簡單,靜態(tài)預測檢查分支是向前跳轉還是向后跳轉。假如是向后跳轉,就假定它是一個循環(huán),預測該分支發(fā)生,假如是向前跳轉,就預測該分支不發(fā)生。 通過使用動態(tài)和靜態(tài)的分支預測,ARM11微結構中分支指令中的85%被正確預測。 存儲器訪問 ARM11微結構存儲器系統(tǒng)的提高之一就是非阻塞(NON-BLOCKING)和缺失命中(HIT-UNDER-MISS)操作。當指令取的數(shù)據不在緩存中時,一般處理器的流水線會停止下來,但ARM11則進行非阻塞操作,緩存開始讀取缺失的數(shù)據,而流水線可以繼續(xù)執(zhí)行下一指令(NON-BLOCKING),并且允許該指令讀取緩存中的數(shù)據(HIT-UNDER-MISS)。 并行流水線 盡管流水線是單發(fā)射的,在流水線的后端還是使用了三個并行部件結構,ALU,MAC(乘加),LS(存取)。 LS流水線是專門用于處理存取操作指令。把數(shù)據的存取操作與數(shù)據算術操作的藕合性分隔開來可以更有效的處理執(zhí)行指令。在流水線中包含LS部件的ARM11微結構中,ALU或者MAC指令不會由于LS指令的等待而停止下來。這也使得編譯工具有更大的自由度通過重新安排代碼來提高性能。為使并行流水線獲得更大的效能,ARM11微結構使用了亂序完成(OUT-OF-ORDER COMPLETION)。 64位數(shù)據路徑 對于目前的許多應用來說,由于成本與功耗的問題,真64位處理器并不十分必要。ARM11微結構在局部合理使用64位結構,通過32位的成本來實現(xiàn)64位的性能。 ARM11微結構在處理器整數(shù)部件與緩存之間,整數(shù)部件與協(xié)處理器之間使用了64位數(shù)據總線。64位的路徑可以在一個周期內從緩存中讀取兩條指令,允許每周期傳送兩個ARM寄存器的數(shù)據。這使得許多數(shù)據移動操作與數(shù)據加工操作變得更為高性能。 浮點處理 ARM11微結構支持浮點處理。ARM11微結構產品線將浮點處理單元作為一個選項。這可以方便發(fā)展商根據需求需用合適的產品。 |