《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 電子元件 > 業(yè)界動態(tài) > 蘋果M1為什么比英特爾x86快了那么多?

蘋果M1為什么比英特爾x86快了那么多?

2020-12-01
來源:EETOP
關(guān)鍵詞: 蘋果M1 英特爾x86

  12 月 1 日消息 蘋果的 M1 芯片是蘋果在 Mac 上搭載的單核 CPU 基準(zhǔn)測試成績最快的芯片,在多核性能方面,也擊敗了許多高端英特爾競品。開發(fā)者Erik Engheim 近日分享了對 M1 芯片的深入研究,探討了蘋果新處理器為何比它所取代的英特爾芯片快了那么多。

  M1 不是 CPU !

  首先,M1 并不是一個簡單的 CPU。正如蘋果所解釋的那樣,它是一個系統(tǒng)級芯片,即一系列芯片都被安置在一個硅片封裝中。M1 容納了 8 核 CPU、8 核 GPU(部分 MacBook Air 機型為 7 核)、統(tǒng)一內(nèi)存、SSD 控制器、圖像信號處理器、Secure Enclave 等大量模塊。這就是我們所說的片上系統(tǒng) (SoC)。

微信圖片_20201201142803.jpg

  M1 是芯片上的系統(tǒng),這意味著組成計算機的所有部件都放在一個硅芯片上。

  英特爾和 AMD 也在單一封裝中內(nèi)置多個微處理器,但正如 Engheim 所描述的那樣,蘋果之所以有優(yōu)勢,是因為蘋果沒有像競爭對手那樣專注于通用 CPU 核心,而是專注于處理專門任務(wù)的專用芯片。

微信圖片_20201201142805.jpg

  計算機主板的示例。內(nèi)存、CPU、顯卡、IO控制器、網(wǎng)卡等許多組件可以連接到主板進行相互通信。

  然而,由于我們今天能夠?qū)⑦@么多晶體管放在硅芯片上,英特爾和AMD等公司開始將多個微處理器放在一個芯片上。今天,我們將這些芯片稱為 CPU 內(nèi)核。一個核心基本上是一個完全獨立的芯片,可以從內(nèi)存中讀取指令并執(zhí)行計算。

  我們今天能夠在一個硅芯片上放置如此多的晶體管,像英特爾和AMD這樣的公司開始在一個芯片上放置多個微處理器。我們將這些芯片稱為CPU核心。一個核心基本上是一個完全獨立的芯片,它可以從內(nèi)存中讀取指令并執(zhí)行計算。

微信圖片_20201201142824.jpg

  具有多個 CPU 內(nèi)核的微芯片。

  很長一段時間以來,采用多核方式一直是提高性能的主要方法。但是現(xiàn)在CPU市場上有一家廠商正在背離這一趨勢,這就是蘋果公司。

微信圖片_20201201142826.jpg

  蘋果的異構(gòu)計算策略并不神秘

  蘋果并沒有增加更多的通用CPU核心,而是采取了另一種策略:他們開始增加更多的專用芯片來完成一些專門的任務(wù)。這樣做的好處是,專用芯片往往能夠在解決特定任務(wù)時比通用CPU核心耗電少的多,并且速度更快。

  這并不是全新的知識。多年來已經(jīng)有圖形處理單元(GPU)等專用芯片坐在Nvidia和AMD顯卡中執(zhí)行與圖形相關(guān)的操作,速度比通用CPU快得多。

  蘋果所做的只是朝著這個方向進行更徹底的轉(zhuǎn)變。M1并不只是擁有通用的核心和內(nèi)存,而是包含了各種各樣的專用芯片:

  中央處理器 (CPU) - SoC 的 “大腦”。運行操作系統(tǒng)和應(yīng)用程序的大部分代碼。

  圖形處理單元 (GPU) - 處理與圖形相關(guān)的任務(wù),如可視化應(yīng)用程序的用戶界面和 2D/3D 游戲。

  圖像處理單元(ISP)--可用于加快圖像處理應(yīng)用所完成的普通任務(wù)。

  數(shù)字信號處理器(DSP)--處理比CPU更多的數(shù)學(xué)密集型功能。包括解壓音樂文件。

  神經(jīng)處理單元(NPU)--用于高端智能手機,以加速機器學(xué)習(xí)(AI)任務(wù)。這些任務(wù)包括語音識別和攝像頭處理。

  視頻編碼器/解碼器 - 處理視頻文件和格式的高能效轉(zhuǎn)換。

  Secure Enclave - 加密、認(rèn)證和安全。

  統(tǒng)一內(nèi)存--允許CPU、GPU和其他核心快速交換信息。

  這就是為什么很多人在M1 mac上進行圖像和視頻編輯時都看到了速度提升的部分原因。它們執(zhí)行的許多任務(wù)都可以直接在特定的硬件上運行。這就是為什么一款便宜的M1 Mac Mini可以毫不費力地為一個大的視頻文件編碼,而另一款昂貴的iMac雖然所有的風(fēng)扇都在全速運轉(zhuǎn),但仍然跟不上。

微信圖片_20201201142829.png

  藍色的是多個CPU核心訪問內(nèi)存,綠色的是大量的GPU核心訪問內(nèi)存

  統(tǒng)一內(nèi)存可能會讓你感到困惑。它和共享內(nèi)存有什么不同?而且過去視頻內(nèi)存與主內(nèi)存共享難道不是一個糟糕的想法,性能很差嗎?沒錯,共享內(nèi)存確實很糟糕。原因是CPU和GPU必須輪流訪問內(nèi)存。共享就意味著要爭奪數(shù)據(jù)總線的使用權(quán)?;旧?,GPU和CPU不得不輪流使用一個狹窄的管道來做數(shù)據(jù)交換。

  但統(tǒng)一內(nèi)存則并不是這樣的。在統(tǒng)一內(nèi)存中,GPU核心和CPU核心可以同時訪問內(nèi)存。因此在這種情況下,共享內(nèi)存沒有開銷。另外CPU和GPU可以互相告知一些內(nèi)存的位置。以前CPU必須將數(shù)據(jù)從其主內(nèi)存的區(qū)域復(fù)制到GPU使用的區(qū)域。有了統(tǒng)一內(nèi)存,更像是在說 :“嘿,GPU先生,我有30MB的多邊形數(shù)據(jù),從內(nèi)存位置2430開始”。GPU就可以開始使用該內(nèi)存,而不需要做任何復(fù)制。

  這意味著,通過使用相同的內(nèi)存池,M1上的所有特殊的協(xié)同處理器都可以彼此快速交換信息,從而可以顯著提高性能。

微信圖片_20201201142831.jpg

  在統(tǒng)一內(nèi)存之前,Mac是如何使用GPU的?甚至還可以選擇使用Thunderbolt 3線纜將顯卡安裝在電腦之外。

  英特爾和AMD為什么不這樣做?

  如果蘋果所做的事情如此聰明,為什么不是每個人都這么做呢?在某種程度上,確實如此。其他ARM芯片制造商也在越來越多地投入專用硬件。

  AMD也開始在他們的一些芯片上安裝更強大的GPU,并逐漸向SoC的某種形式發(fā)展,加速處理器(APU)基本上是CPU核心和GPU核心放在同一個芯片上。

微信圖片_20201201142833.jpg

  AMD Ryzen加速處理單元(APU)將CPU和GPU(Radeon Vega)結(jié)合在一個硅片上。但不包含其他協(xié)處理器、IO控制器或統(tǒng)一內(nèi)存。

  然而,他們之所以不能做到這一點,有著重要的原因。SoC本質(zhì)上是一個芯片上的整機系統(tǒng)。這使得它更自然地適合于真正的計算機制造商,比如惠普和戴爾。讓我用一個汽車類的比喻來說明,如果你的商業(yè)模式是制造和銷售汽車發(fā)動機,那么開始制造和銷售整車將是一個不尋常的飛躍。

  相比之下,對于ARM公司來說,這并不是一個問題。計算機制造商(如戴爾或惠普)可以簡單地授權(quán)ARM IP,并購買其他芯片的IP,以增加他們認(rèn)為其SoC應(yīng)該具有的任何專用硬件。接下來,他們將設(shè)計完成后的產(chǎn)品送到GlobalFoundries或臺積電(TSMC)等半導(dǎo)體代工企業(yè)代工生產(chǎn)。

  這里我們就會發(fā)現(xiàn)英特爾和AMD的商業(yè)模式存在很大的問題。他們的商業(yè)模式是建立在銷售通用CPU的基礎(chǔ)上的,人們只需將這些CPU插槽安裝到PC主板上即可。因此,計算機制造商可以簡單地從不同的供應(yīng)商那里購買主板、內(nèi)存、CPU和顯卡,并將它們整合成一個解決方案。

  但在新的SoC世界里,你不會從不同的供應(yīng)商那里組裝物理元件。相反,你從不同的供應(yīng)商那里組裝IP。你從不同的供應(yīng)商那里購買顯卡、CPU、調(diào)制解調(diào)器、IO控制器和其他東西的IP,并利用這些IP在內(nèi)部設(shè)計一個SoC。然后找一個代工廠來制造這個東西。

  現(xiàn)在你有一個很大的問題,因為無論是英特爾、AMD還是Nvidia都不會將他們的IP授權(quán)給戴爾或惠普,讓他們?yōu)樽约旱臋C器制造SoC。

  當(dāng)然,英特爾和AMD可能會簡單地開始銷售整個成品SoC。但這些要包含什么呢?PC制造商可能對它們應(yīng)該包含什么有不同的想法。你可能會在英特爾、AMD、微軟和PC制造商之間就應(yīng)該包含什么樣的專用芯片發(fā)生沖突,因為這些芯片需要軟件支持。

  對于蘋果來說,這很簡單。他們控制著整個部件。他們可以給你例如Core ML的庫,讓開發(fā)者寫機器學(xué)習(xí)的東西。Core ML是在蘋果的CPU上運行還是在神經(jīng)引擎上運行,這是一個開發(fā)者不必關(guān)心的實現(xiàn)細(xì)節(jié)。

  讓任何CPU快速運行的基本挑戰(zhàn)

  所以異構(gòu)計算是一部分原因,但也不是唯一原因。M1上的快速通用CPU核心,叫做Firestorm,它確實非常的的快。這與過去的ARM CPU核心有很大的不同,過去的ARM CPU核心與AMD和Intel核心相比,往往性能非常弱。

  相比之下,F(xiàn)irestorm擊敗了大多數(shù)英特爾核心,幾乎擊敗了最快的AMD Ryzen核心。傳統(tǒng)觀點認(rèn)為這是不可能發(fā)生的。

  在討論是什么使Firestorm如此快速之前,先了解一下設(shè)計更快速的CPU的核心思想到底有些什么?

  原則上,你可以通過兩種策略的組合來實現(xiàn):

  在一個序列中更快地執(zhí)行更多的指令

  并行執(zhí)行盡可能多的指令

  在80年代,這是很容易實現(xiàn)的。只要提高時鐘頻率,指令就會更快完成。不過一條指令可能需要多個時鐘周期才能完成,因為它是由幾個小任務(wù)組成的。

  然而,今天增加時鐘頻率幾乎是不可能的。這就是人們十多年來一直喋喋不休的“摩爾定律的終結(jié)”。

  因此,它實際上現(xiàn)在更關(guān)心的是關(guān)于并行執(zhí)行盡可能多的指令。

  多核處理器還是亂序處理器?

  有兩種方法可以解決這個問題。一種是增加更多的CPU內(nèi)核。從軟件開發(fā)人員的角度來看,這就像添加線程。每個CPU核心就像一個硬件線程。由于有兩個核心,CPU可以并發(fā)地執(zhí)行兩個獨立的任務(wù)。這些任務(wù)可以被描述為存儲在內(nèi)存中的兩個獨立的程序,也可以實際上是執(zhí)行了兩次的同一個程序。每個線程都需要做一些記錄,比如線程當(dāng)前在程序指令序列中的哪個位置。每個線程可以存儲臨時結(jié)果,這些結(jié)果應(yīng)該分開保存。

  原則上,一個處理器可以只有一個內(nèi)核,運行多個線程。在這種情況下,它只需停止一個線程,并在切換到另一個線程之前存儲當(dāng)前的進度。后來它又切換回來。這并不能帶來多大的性能提升,只有當(dāng)一個線程可能會頻繁地停下來等待用戶的輸入、慢速網(wǎng)絡(luò)連接的數(shù)據(jù)等時才會使用。這些可能被稱為軟件線程。硬件線程意味著你有實際的額外的物理硬件,比如額外的內(nèi)核,以提高速度。

微信圖片_20201201142837.jpg

  這樣做的問題是,開發(fā)人員必須編寫代碼來利用這種優(yōu)勢。有些任務(wù),如服務(wù)器軟件,很容易這樣編寫。你可以想象單獨處理每個連接的用戶。這些任務(wù)彼此獨立,因此對于服務(wù)器,特別是基于云的服務(wù),擁有大量核心是一個很好的選擇。

微信圖片_20201201142839.jpg

  安培Altra Max ARM CPU 128核,專為云計算設(shè)計,有很多硬件線程是一個優(yōu)勢

  這就是為什么你會看到安培等ARM CPU廠商生產(chǎn)的CPU,比如Altra Max,它擁有瘋狂的128個核心。這種芯片是專門為云計算而生的。你不需要瘋狂的單核性能,因為在云計算中,每瓦都要有盡可能多的線程來處理盡可能多的并發(fā)用戶。

  相比之下,蘋果則是完全相反的一端。蘋果制造的是單用戶設(shè)備。大量的線程并不是一個優(yōu)勢。他們的設(shè)備用于游戲、視頻編輯、開發(fā)等。他們希望臺式機具有更快速的響應(yīng)圖形和動畫能力。

  臺式機軟件一般不是為了利用大量核心而制造的。例如,電腦游戲可能會從8個核心中受益,但像128個核心這樣的東西就完全是一種浪費。相反,你會想要更少但更強大的核心。

  有趣的是,亂序執(zhí)行是一種并行執(zhí)行更多指令的方式,但不需要將這種能力暴露為多個線程。開發(fā)者不需要專門編寫軟件代碼來利用它。從開發(fā)者的角度來看,它只是看起來每個核心運行得更快。

  要理解這個工作原理,你需要了解一些關(guān)于內(nèi)存的事情。在一個特定的內(nèi)存位置請求數(shù)據(jù)是很慢的。但是得到1個字節(jié)和得到比如說128個字節(jié)相比,在延遲上并沒有區(qū)別。數(shù)據(jù)是通過我們所說的數(shù)據(jù)總線發(fā)送的。你可以把它看成是內(nèi)存和CPU不同部分之間的道路或管道,數(shù)據(jù)會被推送過去。如果數(shù)據(jù)總線足夠?qū)?,你就可以同時獲得多個字節(jié)的數(shù)據(jù)。

  這樣CPU每次都會得到一整塊指令來執(zhí)行。它們被記錄下來,一個接一個地被執(zhí)行?,F(xiàn)代微處理器執(zhí)行的是我們所說的亂序(OoO)執(zhí)行。

  這意味著它們能夠快速分析一個緩沖區(qū)的指令,并查看哪些指令依賴于哪些指令。請看下面的簡單例子:

  01: mul r1, r2, r3    // r1 ← r2 × r3

  02: add r4, r1, 5     // r4 ← r1 + 5

  03: add r6, r2, 1     // r6 ← r2 + 1

  乘法運算往往是一個緩慢的過程。假設(shè)它需要多個時鐘周期來執(zhí)行。第二條指令必須等待,因為它的計算依賴于將被放入寄存器。r1的結(jié)果。

  而第3條指令并不依賴于前面指令的計算。因此,亂序處理器可以開始并行計算這條指令。

  然而,更現(xiàn)實的情況是,我們討論的是數(shù)百條指令。CPU能夠找出這些指令之間的所有依賴關(guān)系。

  它通過觀察每條指令的輸入來分析這些指令。輸入是否依賴于一條或多條其他指令的輸出?我們所說的輸入和輸出是指包含以前計算結(jié)果的寄存器。

  如:指令依賴于輸入由。產(chǎn)生的輸入。我們可以把這些關(guān)系串聯(lián)起來,形成一個復(fù)雜的長圖,CPU可以通過這個圖來工作。節(jié)點是指令,邊是連接它們的寄存器。

  add r4,r1,5r1mul r1,r2,r3

  CPU可以分析這樣的節(jié)點圖,并確定哪些指令可以并行執(zhí)行,以及在執(zhí)行之前需要在哪里等待多個依賴計算的結(jié)果。

  很多指令會提前完成,但我們不能將它們的結(jié)果正式生效。并不能立即提交它們,否則會以錯誤的順序提供結(jié)果。指令的執(zhí)行順序必須與指令發(fā)布的順序相同。

  就像一個堆棧,CPU會不斷地從頂部彈出已完成的指令,直到碰到一條未完成的指令。

  我們還沒有完全完成這個解釋,但這給了你一點線索。基基本上你可以有程序員必須知道的并行性,或那種CPU假裝好像一切都是單線程。然而,在幕后它卻在“亂施黑魔法”。

  正是卓越的亂序執(zhí)行力,讓M1上的Firestorm核心大放異彩,名聲大噪。事實上,它比英特爾或AMD的任何產(chǎn)品都要強得多。很可能比主流市場上其他任何處理器都要強。

  為什么AMD和Intel的亂序執(zhí)行不如M1?

  在我對亂序執(zhí)行(OoO)的解釋中,我跳過了一些重要的細(xì)節(jié),這一點需要說明。否則就無法理解為什么蘋果走在前面,而英特爾和AMD未必能趕上。

  我說過的那個大的“暫存器”實際上叫做“重新排序緩沖區(qū)”(ROB),它不包含正常的機器碼指令。不是CPU從內(nèi)存中取出來執(zhí)行的那些,而是CPU指令集架構(gòu)(ISA)中的指令。也就是我們所說的x86、ARM、PowerPC等指令。

  然而在CPU內(nèi)部,它的工作原理是完全不同的指令集,程序員是看不到的。我們稱這些指令為微操作(micro-ops或μops)。ROB中充滿了這些micro-ops。

  對于CPU來說這些微操作更加實用。原因是微操作非常寬(包含很多位),可以包含各種元信息。

  你不能將此類信息添加到 ARM 或 x86 指令中,因為它會:

  程序二進制文件臃腫化

  公開有關(guān)CPU 工作方式的詳細(xì)信息(是否具有 OoO 單元)具有寄存器重命名和許多其他詳細(xì)信息。

  許多元信息僅在當(dāng)前執(zhí)行的上下文中才有意義。

  你可以把它想象成寫程序的時候。你有一個公共的API,需要穩(wěn)定的,大家都在用。也就是ARM,x86,PowerPC,MIPS等指令集。微指令基本上就是用來實現(xiàn)公共API的私有API。

  而且微操作對于CPU來說,通常比較容易操作。為什么這么說呢?因為它們每個都只做一個簡單的有限的任務(wù)。常規(guī)的ISA指令可能會比較復(fù)雜,導(dǎo)致一堆東西發(fā)生,因此實際上轉(zhuǎn)化為多個微操作。

  對于 CISC CPU,通常別無選擇,只能使用微操作,否則大型復(fù)雜的 CISC 指令將使流水線和亂序幾乎不可能實現(xiàn)。

  RISC CPU可以選擇。所以例如較小的ARM CPU根本就不使用微運算。但這也意味著它們無法做到OoO等。

  但你想知道這些為什么重要嗎?為什么知道這些細(xì)節(jié)對理解為什么蘋果在AMD和Intel上占了上風(fēng)很重要?

  這是因為快速運行的能力取決于于你用微操作填滿ROB的速度和數(shù)量。你填滿的越快,它就越大,你就有更多的機會選擇你可以并行執(zhí)行的指令,從而提高性能。

  機器代碼指令被我們稱之為指令解碼器,解碼成微操作。如果我們有更多的解碼器,我們就可以并行解碼更多的指令,從而更快地填滿ROB。

  這就是我們看到的巨大差異。最厲害的英特爾和AMD微處理器有4個解碼器,這意味著他們可以解碼4條指令并行輸出微操作。

  但蘋果有一個瘋狂的 8 解碼器。不僅如此,ROB的體積是它的三倍?;旧峡梢匀菁{3倍的指令。沒有其他主流芯片廠商的CPU里有那么多解碼器。

  為什么英特爾和 AMD 無法添加更多指令解碼器?

  這是我們最終看到 RISC 可以“復(fù)仇”的地方,也是M1 Firestorm核心采用ARM RISC架構(gòu)的事實開始變得重要的地方。

  對于x86來說,一條指令可以有1-15個字節(jié)的長度。在RISC芯片上,指令的大小是固定的。為什么在這種情況下會有關(guān)系呢?

  可以看到,對于x86來說,一條指令的長度可以是1-15字節(jié)。而在RISC芯片上,指令的大小是固定的。為什么這與本案相關(guān)?

  因為如果每條指令都有相同的長度,那么將一個字節(jié)流分割成指令并行地輸入8個不同的解碼器就變得簡單多了!

  但是,在 x86 CPU 上,解碼器不知道下一個指令從哪兒開始的。它必須實際分析每個指令,才能看到它有多長。

  英特爾和AMD采用“粗暴”的方式來處理這個問題,首先它會簡單地嘗試在每一個可能的起點對指令進行解碼。這意味著我們必須處理大量的錯誤猜測和錯誤,而這些猜測和錯誤必須被丟棄。這就造成了一個錯綜復(fù)雜的解碼器階段,以至于很難再增加更多的解碼器。但對于蘋果來說,不斷增加更多的解碼器是很簡單的。

  事實上增加更多的數(shù)量會導(dǎo)致很多其他問題,按照AMD自己的說法,4個解碼器基本上是他們能做到的上限。

  這也是M1 Firestorm核心在同樣的時鐘頻率下,處理的指令數(shù)量基本上是AMD和Intel CPU兩倍的原因。

  有人可以反駁說,CISC指令會變成更多的微操作,它們的密度更高,所以例如解碼一條x86指令更類似于解碼兩條ARM指令。

  只是現(xiàn)實中并非如此。高度優(yōu)化的x86代碼很少使用復(fù)雜的CISC指令。在某些方面它有RISC的味道。

  但這對英特爾或AMD沒有任何幫助,因為即使那些15字節(jié)長的指令很少,也必須讓解碼器來處理它們。這就產(chǎn)生了復(fù)雜性,阻礙了AMD和Intel增加更多的解碼器。

  但 Amds Zen3 核心仍然更快, 對嗎?

  據(jù)我所知,最新的AMD CPU內(nèi)核在性能測試中,被稱為Zen3的內(nèi)核比Firestorm內(nèi)核稍微快一些。但這里的關(guān)鍵是,這只是因為Zen3核心的時鐘頻率為5GHz,而Firestorm核心的時鐘頻率為3.2GHz。盡管Zen3的時鐘頻率比Firestorm高出近60%,但也只是勉強強過了Firestorm。

  那么為什么蘋果不增加時鐘頻率呢?因為更高的時鐘頻率會使芯片更熱。這是蘋果的關(guān)鍵賣點之一。與英特爾和AMD的產(chǎn)品不同,他們的電腦幾乎不需要風(fēng)扇。

  從本質(zhì)上說,人們可以說Firestorm內(nèi)核確實優(yōu)于Zen3內(nèi)核。Zen3只是消耗更多功耗,才得以為此更高的性能。

  未來

  AMD和英特爾似乎在兩方面把自己逼到了絕境:

  他們沒有一個業(yè)務(wù)模型,使得追求異構(gòu)計算和SoC設(shè)計變得容易。

  他們的遺留x86 CISC指令集又回來困擾他們,使其難以提高OoO性能。

  這并不意味著游戲結(jié)束。它們當(dāng)然可以簡單地增加時鐘頻率,使用更多的冷卻,增加更多的核心,增強CPU緩存等等。但這些都處于劣勢。英特爾處于最糟糕的情況下,因為他們的核心已經(jīng)被Firestorm徹底打敗了,而且他們有GPU也很弱。

  添加更多核心的問題是,對于典型的桌面工作負(fù)載,過多的核心性能提升并不明顯。當(dāng)然,大量的核心對于服務(wù)器來說還是非常有效的。

  幸運的是,對于AMD和英特爾來說,蘋果并不在市場上銷售他們的芯片。所以PC用戶將不得不忍受他們提供的任何東西。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。