ARM架構(gòu),,過(guò)去稱作進(jìn)階精簡(jiǎn)指令集機(jī)器(Advanced RISC Machine,更早稱作:Acorn RISC Machine),,是一個(gè)32位精簡(jiǎn)指令集(RISC)處理器架構(gòu),,其廣泛地使用在許多嵌入式系統(tǒng)設(shè)計(jì),。由于節(jié)能的特點(diǎn),ARM處理器非常適用于行動(dòng)通訊領(lǐng)域,,符合其主要設(shè)計(jì)目標(biāo)為低耗電的特性,。
在今日,ARM家族占了所有32位嵌入式處理器75%的比例[1],,使它成為占全世界最多數(shù)的32位架構(gòu)之一,。ARM處理器可以在很多消費(fèi)性電子產(chǎn)品上看到,從可攜式裝置(PDA,、移動(dòng)電話,、多媒體播放器,、掌上型電子游戲,和計(jì)算機(jī))到電腦外設(shè)(硬盤(pán),、桌上型路由器)甚至在導(dǎo)彈的彈載計(jì)算機(jī)等軍用設(shè)施中都有他的存在,。在此還有一些基于ARM設(shè)計(jì)的派生產(chǎn)品,重要產(chǎn)品還包括Marvell的XScale架構(gòu)和德州儀器的OMAP系列,。
一顆主要用于路由器的Conexant ARM處理器ARM的設(shè)計(jì)是Acorn電腦公司(Acorn Computers Ltd)于1983年開(kāi)始的開(kāi)發(fā)計(jì)劃,。 這個(gè)團(tuán)隊(duì)由Roger Wilson和Steve Furber帶領(lǐng),著手開(kāi)發(fā)一種新架構(gòu),,類似進(jìn)階的MOS Technology 6502處理器,。Acorn有一大堆建構(gòu)在6502架構(gòu)上的電腦,因此能設(shè)計(jì)出一顆類似的芯片即意味著對(duì)公司有很大的優(yōu)勢(shì),。 團(tuán)隊(duì)在1985年時(shí)開(kāi)發(fā)出ARM1 Sample版,,而首顆"真正"的產(chǎn)能型ARM2于次年量產(chǎn)。ARM2具有32位的數(shù)據(jù)總線,、26位的尋址空間,,并提供64 Mbyte的尋址范圍與16個(gè)32-bit的暫存器。這些暫存器其中有一顆做為(word大?。┏淌接?jì)數(shù)器,,其前面6 bits和后面2 bits用來(lái)保存處理器狀態(tài)標(biāo)記(Processor Status Flags)。ARM2可能是全世界最簡(jiǎn)單實(shí)用的32位微處理器,,其僅容納了30,000個(gè)晶體管(相較于Motorola六年后的68000其包含了70,000顆),。之所以精簡(jiǎn)的原因在于它不含微碼(請(qǐng)參閱microcode)(這表示大概只有68000的1/3至1/4),而與現(xiàn)今大多數(shù)的 CPU 不同,,它沒(méi)有包含任何的高速緩存,。這個(gè)精簡(jiǎn)的特色使它只需消耗很少的電能,卻能發(fā)揮比 Intel 80286 更好的效能[來(lái)源請(qǐng)求],。后繼的處理器ARM3更備有4KB的高速緩存,,使它能發(fā)揮更佳的效能。 在1980年代晚期,,蘋(píng)果電腦開(kāi)始與Acorn合作開(kāi)發(fā)新版的ARM核心,,由于這專案非常重要,Acorn甚至于1990年將設(shè)計(jì)團(tuán)隊(duì)另組成一間名為安謀國(guó)際科技(Advanced RISC Machines Ltd.)的新公司,。也基于這原因,,使得ARM有時(shí)候反而稱作Advanced RISC Machine而不是Acorn RISC Machine。由于其母公司ARM Holdings plc于1998年的倫敦交易市場(chǎng)和NASDAQ掛牌上市[1],,使得Advanced RISC Machines成了ARM Ltd旗下?lián)碛械漠a(chǎn)品,。 這個(gè)專案到后來(lái)進(jìn)入了ARM6,首版的式樣在1991年釋出,,然后蘋(píng)果電腦使用ARM6架構(gòu)的ARM 610來(lái)當(dāng)作他們Apple Newton PDA的基礎(chǔ),。在1994年,,Acorn使用ARM 610做為他們Risc PC電腦內(nèi)的CPU。 在這些變革之后,,內(nèi)核部份卻大多維持一樣的大小,。ARM2有30,000顆晶體管,但ARM6卻也只增長(zhǎng)到35,000顆,。主要概念是以O(shè)DM的方式,,使ARM核心能搭配一些選配的零件而制成一顆完整的CPU,而且可在現(xiàn)有的晶圓廠里制作并以低成本的方式達(dá)到很大的效能,。 ARM的經(jīng)營(yíng)模式在于出售其知識(shí)產(chǎn)權(quán)核(IP core),授權(quán)廠家依照設(shè)計(jì)制作出建構(gòu)于此核的微控制器和中央處理器,。最成功的實(shí)作案例屬 ARM7TDMI,,幾乎賣出了數(shù)億套內(nèi)建微控制器的裝置。 DEC 購(gòu)買這個(gè)架構(gòu)的產(chǎn)權(quán)(此處會(huì)造成混淆在于其本身也制造 DEC Alpha 并研發(fā)出StrongARM,。在 233 MHz 的頻率下,,這顆 CPU 只消耗一瓦特的電能(后來(lái)的芯片消耗得更少)。這項(xiàng)設(shè)計(jì)后來(lái)為了和 Intel 的控訴和解而技術(shù)移轉(zhuǎn),,Intel 因而趁機(jī)以 StrongARM 架構(gòu)補(bǔ)強(qiáng)他們老舊的 i960 產(chǎn)線,。Intel 后來(lái)開(kāi)發(fā)出他們自有的高效能實(shí)作,稱作XScale,,之后也賣給了 Marvell,。 支援智能型手機(jī)、PDA和其他手持裝置最常見(jiàn)的架構(gòu)是ARMv4,。XScale 和 ARM926 處理器是ARMv5TE,,而且比起建構(gòu)在 ARMv4 的 StrongARM、ARM925T 和 ARM7TDMI 等處理器還更常見(jiàn)于許多高階裝置上[來(lái)源請(qǐng)求],。架構(gòu)版本如下欄所示,。 設(shè)計(jì)文件 講求精簡(jiǎn)又快速的設(shè)計(jì)方式,整體電路化卻又不采用微碼,,就像早期使用在Acorn微電腦的8位6502處理器,。 ARM架構(gòu)包含了下述RISC特性: 讀取/儲(chǔ)存 架構(gòu) 不支援地址不對(duì)齊內(nèi)存存?。ˋRMv6內(nèi)核現(xiàn)已支援) 正交指令集(任意存取指令可以任意的尋址方式存取數(shù)據(jù)Orthogonal instruction set) 大量的16 × 32-bit 寄存器陣列(register file) 固定的32 bits 操作碼(opcode)長(zhǎng)度,,降低編碼數(shù)量所產(chǎn)生的耗費(fèi),減輕解碼和流水線化的負(fù)擔(dān),。 大多均為一個(gè)CPU周期執(zhí)行,。 為了補(bǔ)強(qiáng)這種簡(jiǎn)單的設(shè)計(jì)方式,相較于同時(shí)期的處理器如Intel 80286和Motorola 68020,,還多加了一些特殊設(shè)計(jì): 大部分指令可以條件式地執(zhí)行,,降低在分支時(shí)產(chǎn)生的負(fù)重,,彌補(bǔ)分支預(yù)測(cè)器(branch predictor)的不足。 算數(shù)指令只會(huì)在要求時(shí)更改條件編碼(condition code) 32-bit筒型位移器(barrel shifter)可用來(lái)執(zhí)行大部分的算數(shù)指令和尋址計(jì)算而不會(huì)損失效能 強(qiáng)大的索引尋址模式(addressing mode) 精簡(jiǎn)但快速的雙優(yōu)先級(jí)中斷子系統(tǒng),,具有可切換的暫存器組 有個(gè)附加在ARM設(shè)計(jì)中好玩的東西,,就是使用一個(gè)4-bit 條件編碼 在每個(gè)指令前頭,表示每支指令的執(zhí)行是否為有條件式的 這大大的減低了在內(nèi)存存取指令時(shí)用到的編碼位,,換句話說(shuō),,它避免在對(duì)小型敘述如if做分支指令。有個(gè)標(biāo)準(zhǔn)的范例引用歐幾里得的最大公因子算法: 在C編程語(yǔ)言中,,循環(huán)為: int gcd (int i, int j) { while (i != j) if (i > j) i -= j; else j -= i; return i; } 在ARM 匯編語(yǔ)言中,,循環(huán)為: loop CMP Ri, Rj ; 設(shè)定條件為 "NE"(不等於) if (i != j) ; "GT"(大於) if (i > j), ; or "LT"(小於) if (i < j) SUBGT Ri, Ri, Rj ; 若 "GT"(大於), i = i-j; SUBLT Rj, Rj, Ri ; 若 "LT"(小於), j = j-i; BNE loop ; 若 "NE"(不等於),則繼續(xù)迴圈 這避開(kāi)了then和else子句之間的分支,。 另一項(xiàng)指令集的特色是,,能將位移(shift)和回轉(zhuǎn)(rotate)等功能并成"資料處理"型的指令(算數(shù)、邏輯,、和暫存器之間的搬移),,因此舉例來(lái)說(shuō),一個(gè)C語(yǔ)言的敘述 a += (j << 2); 在ARM之下,,可簡(jiǎn)化成只需一個(gè)word和一個(gè)cycle即可完成的指令 ADD Ra, Ra, Rj, LSL #2 這結(jié)果可讓一般的ARM程式變得更加緊密,,而不需經(jīng)常使用內(nèi)存存取,流水線也可以更有效地使用,。即使在ARM以一般認(rèn)定為慢速的速度下執(zhí)行,,與更復(fù)雜的CPU設(shè)計(jì)相比它仍能執(zhí)行得不錯(cuò)。 ARM處理器還有一些在其他RISC的架構(gòu)所不常見(jiàn)到的特色,,例如PC-相對(duì)尋址(的確在ARM上PC為16個(gè)暫存器的其中一個(gè))以及 前遞加或后遞加的尋址模式,。 另外一些注意事項(xiàng)是 ARM 處理器會(huì)隨著時(shí)間,不斷地增加它的指令集,。某些早期的 ARM 處理器(比ARM7TDMI更早),,譬如可能并未具備指令可以讀取兩 Bytes 的數(shù)量,因此,,嚴(yán)格來(lái)講,,對(duì)這些處理器產(chǎn)生程式碼時(shí),就不可能處理如 C 語(yǔ)言物件中使用 "volatile short" 的資料型態(tài),。 ARM7 和大多數(shù)較早的設(shè)計(jì)具備三階段的流水線化(Pipeline):提取指令,、解碼,并執(zhí)行,。較高效能的設(shè)計(jì),,如 ARM9,則有五階段的流水線化,。提高效能的額外方式,,包含一顆較快的加法器,,和更廣的分支預(yù)測(cè)邏輯線路。 這個(gè)架構(gòu)使用“協(xié)處理器”提供一種非侵入式的方法來(lái)延伸指令集,,可透過(guò)軟件下 MCR,、MRC、MRRC和MCRR 等指令來(lái)對(duì)協(xié)處理器尋址,。協(xié)處理器空間邏輯上通常分成16個(gè)協(xié)處理器,,編號(hào)分別從 0 至 15 ,而第15號(hào)協(xié)處理器(CP15)是保留用作某些常用的控制功能,,像是使用高速緩存和記憶管理單元運(yùn)算(若包含于處理器時(shí)),。 在 ARM 架構(gòu)的機(jī)器中,周邊裝置連接處理器的方式,,通常透過(guò)將裝置的實(shí)體暫存器對(duì)應(yīng)到 ARM 的內(nèi)存空間,、協(xié)處理器空間,或是連接到另外依序接上處理器的裝置(如總線),。協(xié)處理器的存取延遲較低,所以有些周邊裝置(例如 XScale 中斷控制器)會(huì)設(shè)計(jì)成可透過(guò)不同方式存?。ㄍ高^(guò)內(nèi)存和協(xié)處理器),。
較新的ARM處理器有一種16-bit指令模式,叫做Thumb,,也許跟每個(gè)條件式執(zhí)行指令均耗用4位的情形有關(guān),。在Thumb模式下,較小的opcode有更少的功能性,。例如,,只有分支可以是條件式的,且許多opcode無(wú)法存取所有CPU的暫存器,。然而,,較短的opcode提供整體更佳的編碼密度(注:意指程式碼在內(nèi)存中占的空間),即使有些運(yùn)算需要更多的指令,。特別在內(nèi)存埠或總線寬度限制在32 以下的情形時(shí),,更短的Thumb opcode能更有效地使用有限的內(nèi)存帶寬,因而提供比32位程式碼更佳的效能,。典型的嵌入式硬件僅具有較小的32-bit datapath尋址范圍以及其他更窄的16 bits尋址(例如Game Boy Advance),。在這種情形下,通??尚械姆桨甘蔷幾g成 Thumb 程式碼,,并自行最佳化一些使用(非Thumb)32位指令集的CPU相關(guān)程式區(qū),因而能將它們置入受限的32-bit總線寬度的內(nèi)存中,。 首顆具備 Thumb 技術(shù)的處理器是 ARM7TDMI,。所有 ARM9 和后來(lái)的家族,,包括 XScale 都納入了 Thumb 技術(shù)。
ARM 還開(kāi)發(fā)出一項(xiàng)技術(shù),,Jazelle DBX (Direct Bytecode eXecution),,允許它們?cè)谀承┘軜?gòu)的硬件上加速執(zhí)行Java bytecode,就如其他執(zhí)行模式般,,當(dāng)呼叫一些無(wú)法支援bytecodes的特殊軟件時(shí),,能提供某些bytecodes的加速執(zhí)行。它能在現(xiàn)存的ARM與Thumb模式之間互相執(zhí)行,。 首顆具備Jazelle技術(shù)的處理器是ARM926EJ-S:Jazelle以一個(gè)英文字母'J'標(biāo)示于CPU名稱中,。它用來(lái)讓手機(jī)制造商能夠加速執(zhí)行Java ME的游戲和應(yīng)用程式,也因此促使了這項(xiàng)技術(shù)不斷地開(kāi)發(fā),。
Thumb-2 技術(shù)首見(jiàn)于 ARM1156 核心 ,,并于2003年發(fā)表。Thumb-2 擴(kuò)充了受限的 16-bit Thumb 指令集,,以額外的 32-bit 指令讓指令集的使用更廣泛,。因此 Thumb-2 的預(yù)期目標(biāo)是要達(dá)到近乎 Thumb 的編碼密度,但能表現(xiàn)出近乎 ARM 指令集在 32-bit 內(nèi)存下的效能,。 Thumb-2 至今也從 ARM 和 Thumb 指令集中派生出多種指令,,包含位欄(bit-field)操作、分支建表(table branches),,和條件執(zhí)行等功能,。
ThumbEE,也就是所謂的Thumb-2EE,,業(yè)界稱為Jazelle RCT技術(shù),,于2005年發(fā)表,首見(jiàn)于 Cortex-A8 處理器,。ThumbEE 提供從 Thumb-2 而來(lái)的一些擴(kuò)充性,,在所處的執(zhí)行環(huán)境(Execution Environment)下,使得指令集能特別適用于執(zhí)行階段(Runtime)的編碼產(chǎn)生(例如即時(shí)編譯),。Thumb-2EE 是專為一些語(yǔ)言如 Limbo,、Java、C#,、Perl 和 Python,,并能讓 即時(shí)編譯器 能夠輸出更小的編譯碼卻不會(huì)影響到效能。 ThumbEE 所提供的新功能,,包括在每次存取指令時(shí)自動(dòng)檢查是否有無(wú)效指標(biāo),,以及一種可以執(zhí)行陣列范圍檢查的指令,并能夠分支到分類器(handlers),其包含一小部份經(jīng)常呼叫的編碼,,通常用于高階語(yǔ)言功能的實(shí)作,,例如對(duì)一個(gè)新物件做內(nèi)存配置。
進(jìn)階 SIMD 延伸集,,業(yè)界稱為NEON技術(shù),,它是一個(gè)結(jié)合 64 和 128 bit 的 SIMD(Single Instruction Multiple Data 單指令多重?cái)?shù)據(jù))指令集,其針對(duì)多媒體和訊號(hào)處理程式具備標(biāo)準(zhǔn)化加速的能力,。NEON 可以在 10 MHz 的 CPU 上執(zhí)行 MP3 音效解碼,,且可以執(zhí)行 13 MHz 頻率以下的 GSM AMR (Adaptive Multi-Rate) 語(yǔ)音編碼。NEON具有一組廣泛的指令集,、各自的寄存器陣列,,以及獨(dú)立執(zhí)行的硬件。NEON 支援 8-, 16-, 32- 和 64-bit 的整數(shù)及單精度浮點(diǎn)數(shù)據(jù),,并以 SIMD 的方式運(yùn)算,,執(zhí)行圖形和游戲處理中關(guān)于語(yǔ)音/視訊的部分。SIMD 在 向量超級(jí)處理機(jī) 中是個(gè)決定性的要素,,它具備同時(shí)多項(xiàng)處理功能,。在 NEON 技術(shù)中,SIMD 最高可支援到同時(shí) 16 個(gè)運(yùn)算,。
VFP 是在協(xié)同處理器針對(duì)ARM架構(gòu)的衍生技術(shù),。它提供低成本的單精度和倍精度浮點(diǎn)運(yùn)算能力,并完全相容于ANSI/IEEE Std 754-1985 二進(jìn)制浮點(diǎn)算數(shù)標(biāo)準(zhǔn),。VFP 提供大多數(shù)適用于浮點(diǎn)運(yùn)算的應(yīng)用,例如PDA,、智慧手機(jī),、語(yǔ)音壓縮與解壓、3D圖像以及數(shù)位音效,、打印機(jī),、機(jī)上盒,和汽車應(yīng)用等,。VFP 架構(gòu)也支援 SIMD(單指令多重?cái)?shù)據(jù))平行化的短向量指令執(zhí)行,。這在圖像和訊號(hào)處理等應(yīng)用上,非常有助于降低編碼大小并增加輸出效率,。 在ARM-based處理器中,,其他可見(jiàn)的浮點(diǎn)、或 SIMD 的協(xié)同處理器還包括了 FPA, FPE, iwMMXt,。他們提供類似 VFP 的功能但在opcode層面上來(lái)說(shuō)并不具有相容性,。
TrustZone(TM) 技術(shù)出現(xiàn)在 ARMv6KZ 以及較晚期的應(yīng)用核心架構(gòu)中。它提供了一種低成本的方案,針對(duì)系統(tǒng)單芯片(SoC)內(nèi)加入專屬的安全核心,,由硬件建構(gòu)的存取控制方式支援兩顆虛擬的處理器,。這個(gè)方式可使得應(yīng)用程式核心能夠在兩個(gè)狀態(tài)之間切換(通常改稱為領(lǐng)域(worlds)以避免和其他功能領(lǐng)域的名稱混淆),在此架構(gòu)下可以避免資訊從較可信的核心領(lǐng)域泄漏至較不安全的領(lǐng)域,。這種內(nèi)核領(lǐng)域之間的切換通常是與處理器其他功能完全無(wú)關(guān)聯(lián)性(orthogonal),,因此各個(gè)領(lǐng)域可以各自獨(dú)立運(yùn)作但卻仍能使用同一顆內(nèi)核。內(nèi)存和周邊裝置也可因此得知目前內(nèi)核運(yùn)作的領(lǐng)域?yàn)楹?,并能針?duì)這個(gè)方式來(lái)提供對(duì)裝置的機(jī)密和編碼進(jìn)行存取控制,。典型的 TrustZone 技術(shù)應(yīng)用是要能在一個(gè)缺乏安全性的環(huán)境下完整地執(zhí)行操作系統(tǒng),并在可信的環(huán)境下能有更少的安全性的編碼,。
ARM 公司本身并不靠自有的設(shè)計(jì)來(lái)制造或出售 CPU ,,而是將處理器架構(gòu)授權(quán)給有興趣的廠家。ARM 提供了多樣的授權(quán)條款,,包括售價(jià)與散播性等項(xiàng)目,。對(duì)于授權(quán)方來(lái)說(shuō),ARM 提供了 ARM 內(nèi)核的整合硬件敘述,,包含完整的軟件開(kāi)發(fā)工具(編譯器,、debugger、SDK),,以及針對(duì)內(nèi)含 ARM CPU 硅芯片的銷售權(quán),。對(duì)于無(wú)晶圓廠的授權(quán)方來(lái)說(shuō),其希望能將 ARM 內(nèi)核整合到他們自行研發(fā)的芯片設(shè)計(jì)中,,通常就僅針對(duì)取得一份生產(chǎn)就緒的智財(cái)核心技術(shù)(IP Core)認(rèn)證,。對(duì)這些客戶來(lái)說(shuō),ARM 會(huì)釋出所選的 ARM 核心的閘極電路圖,,連同抽象模擬模型和測(cè)試程式,,以協(xié)助設(shè)計(jì)整合和驗(yàn)證。需求更多的客戶,,包括整合元件制造商(IDM)和晶圓廠家,,就選擇可合成的RTL(暫存器轉(zhuǎn)移層級(jí),如 Verilog)形式來(lái)取得處理器的智財(cái)權(quán)(IP),。藉著可整合的 RTL,,客戶就有能力能進(jìn)行架構(gòu)上的最佳化與加強(qiáng)。這個(gè)方式能讓設(shè)計(jì)者完成額外的設(shè)計(jì)目標(biāo)(如高震蕩頻率,、低能量耗損,、指令集延伸等)而不會(huì)受限于無(wú)法更動(dòng)的電路圖。雖然 ARM 并不授予授權(quán)方再次出售 ARM 架構(gòu)本身,,但授權(quán)方可以任意地出售制品(如芯片元件,、評(píng)估板、完整系統(tǒng)等)。商用晶圓廠是特殊例子,,因?yàn)樗麄儾粌H授予能出售包含 ARM 內(nèi)核的硅晶成品,,對(duì)其它客戶來(lái)講,他們通常也保留重制 ARM 內(nèi)核的權(quán)利,。 就像大多數(shù) IP 出售方,,ARM 依照使用價(jià)值來(lái)決定 IP 的售價(jià)。在架構(gòu)上而言,,更低效能的 ARM 內(nèi)核比更高效能的內(nèi)核擁有較低的授權(quán)費(fèi),。以硅芯片實(shí)作而言,一顆可整合的內(nèi)核要比一顆硬件宏(黑箱)內(nèi)核要來(lái)得貴,。更復(fù)雜的價(jià)位問(wèn)題來(lái)講,,持有 ARM 授權(quán)的商用晶圓廠(例如韓國(guó)三星和日本富士通)可以提供更低的授權(quán)價(jià)格給他們的晶圓廠客戶。透過(guò)晶圓廠自有的設(shè)計(jì)技術(shù),,客戶可以更低或是免費(fèi)的ARM預(yù)付授權(quán)費(fèi)來(lái)取得 ARM 內(nèi)核,。相較于不具備自有設(shè)計(jì)技術(shù)的專門(mén)半導(dǎo)體晶圓廠(如臺(tái)積電和聯(lián)電),富士通/三星對(duì)每片晶圓多收取了兩至三倍的費(fèi)用,。對(duì)中少量的應(yīng)用而言,,具備設(shè)計(jì)部門(mén)的晶圓廠提供較低的整體價(jià)格(透過(guò)授權(quán)費(fèi)用的補(bǔ)助)。對(duì)于量產(chǎn)而言,,由于長(zhǎng)期的成本縮減可借由更低的晶圓價(jià)格,,減少ARM的NRE成本,使得專門(mén)的晶圓廠也成了一個(gè)更好的選擇,。 許多半導(dǎo)體公司持有 ARM 授權(quán):Atmel,、Broadcom、Cirrus Logic,、Freescale(于2004從摩托羅拉公司獨(dú)立出來(lái)),、富士通、英特爾(借由和Digital的控訴調(diào)停),、IBM,,英飛凌科技,,任天堂,,恩智浦半導(dǎo)體(于2006年從飛利浦獨(dú)立出來(lái))、OKI電氣工業(yè),,三星電子,,Sharp,STMicroelectronics,,德州儀器 和 VLSI等許多這些公司均擁有各個(gè)不同形式的ARM授權(quán),。雖然ARM的授權(quán)項(xiàng)目由保密合約所涵蓋,在智慧財(cái)產(chǎn)權(quán)工業(yè),ARM是廣為人知最昂貴的CPU內(nèi)核之一,。單一的客戶產(chǎn)品包含一個(gè)基本的 ARM 內(nèi)核可能就需索取一次高達(dá)美金20萬(wàn)的授權(quán)費(fèi)用,。而若是牽涉到大量架構(gòu)上修改,則費(fèi)用就可能超過(guò)千萬(wàn)美元,。 |
|
來(lái)自: 昵稱1582206 > 《常識(shí)類》