《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 电子元件 > 业界动态 > 苹果M1芯片为何如此快?

苹果M1芯片为何如此快?

2020-12-18
來源:半导体行业观察
關(guān)鍵詞: 苹果M1

  除了輕度辦公以外,Arm 架構(gòu)的蘋果電腦還可以打游戲、看視頻、跑深度學習,效率都還不錯。

  最近,很多人的 M1 芯片版蘋果 MacBook 和 Mac Mini 到貨了。在不少測試中,我們看到了令人期待的結(jié)果:M1 芯片跑分比肩高端 X86 處理器,對標的 CPU 是 Ryzen 4900HS 和英特爾 Core i9,還能跟英偉達的 GPU GTX 1050Ti 打得有來有回。5 納米的芯片,真就如此神奇?

微信圖片_20201218132741.png

  自蘋果發(fā)布搭載自研 M1 芯片的 Mac 產(chǎn)品后,人們對 M1 芯片充滿了好奇,各種測評層出不窮。最近,開發(fā)者 Erik Engheim 撰寫長文,分析 M1 芯片速度快背后的技術(shù)原因,以及英特爾和 AMD 等芯片廠商的劣勢。

  關(guān)于蘋果的 M1 芯片,這篇文章將圍繞以下問題展開討論:

  M1 芯片速度快背后的技術(shù)原因。

  蘋果是不是采用了什么特殊的技術(shù)來實現(xiàn)這一點?

  如果 Intel 和 AMD 也想這么做,難度有多大?

  鑒于蘋果的官方宣傳中存在大量專業(yè)術(shù)語,我們先從最基礎(chǔ)的講起。

  什么是 CPU?

  在提到英特爾和 AMD 的芯片時,我們通常談?wù)摰氖侵醒胩幚砥鳎–PU),或者叫微處理器。它們從內(nèi)存中提取指令,然后按順序執(zhí)行每條指令。

  微信圖片_20201218132745.png

  一個基本的 RISC CPU(不是 M1)。指令沿著藍色箭頭從內(nèi)存移動到指令寄存器。解碼器用來解讀指令的內(nèi)容,同時通過紅色的控制線來連通 CPU 的各個部分。ALU 對寄存器中的數(shù)字進行加減運算。

  CPU 本質(zhì)上是一個設(shè)備,包含許多被稱為寄存器的內(nèi)存單元和被稱為算術(shù)邏輯單元(ALU)的計算單元。ALU 執(zhí)行加法、減法和其他基礎(chǔ)數(shù)學運算。然而,這些只與 CPU 寄存器相連。如果想把兩個數(shù)字加起來,你必須把這兩個數(shù)字從內(nèi)存中取出,放到 CPU 的兩個寄存器中。

  下面是 RISC CPU(M1 中的 CPU 類型)執(zhí)行的幾個典型指令示例:

  微信圖片_20201218132748.png

  此處的 r1 和 r2 是寄存器。當前的 RISC CPU 無法對不在寄存器中的數(shù)字執(zhí)行示例中的運算,比如不能將在兩個不同位置的內(nèi)存中的數(shù)字相加,而是要將兩個數(shù)字各放到一個單獨的寄存器里。

  在上面的示例中,我們必須先將內(nèi)存位置為 150 的數(shù)字放到寄存器 r1 中,然后將位置為 200 的數(shù)字放到 r2 中,只有這樣,這兩個數(shù)字才能依據(jù) add r1, r2 指令進行加法運算。

  微信圖片_20201218132750.jpg

  這種老式機械計算器有兩個寄存器:累加器和輸入寄存器?,F(xiàn)代 CPU 通常有十幾個寄存器,而且它們是電子的,不是機械的。

  寄存器的概念由來已久。例如,在上圖的機械計算器上,寄存器用來存放加起來的數(shù)字。

  M1 不是 CPU 這么簡單

  M1 芯片不是 CPU,而是把多個芯片集成到了一起,CPU 只是其中的一部分。

  可以說,M1 是把整個計算機放在了一塊芯片上。M1 包含 CPU、GPU、內(nèi)存、輸入 / 輸出控制器,以及完整計算機所需的其他很多東西,這就是我們經(jīng)常會在手機上看到的 SoC(片上系統(tǒng))概念。

  微信圖片_20201218132752.png

  M1 是一個片上系統(tǒng)。也就是說,將構(gòu)成一臺計算機的所有部件都放在一塊硅芯片上。

  如今,如果你從英特爾或 AMD 購買一塊芯片,你拿到的實際上是一個微處理器包,而過去的計算機主板上是多個單獨的芯片。

  微信圖片_20201218132754.png

  計算機主板示例,上面包含內(nèi)存、CPU、顯卡、IO 控制器、網(wǎng)卡等部件。

  然而,現(xiàn)在我們可以在一塊硅片上集成大量晶體管,因此 AMD、英特爾等公司開始將多個微處理器放在一塊芯片上。我們將這些芯片稱為 CPU 核心。一個核心基本上是一個完全獨立的芯片,它可以從內(nèi)存中讀取指令并執(zhí)行計算。

  微信圖片_20201218132757.jpg

  具備多個 CPU 核心的微芯片。

  很長一段時間以來,添加更多通用 CPU 核心成為提高芯片性能的主要方法,但有家廠商沒這么做。

  蘋果的異構(gòu)計算策略沒那么神秘

  在提升性能的道路上,蘋果并沒有選擇增加更多通用 CPU 核心,而是采取了另一種策略:添加更多專用芯片來完成一些專門的任務(wù)。這樣做的好處是:與通用 CPU 核心相比,專用芯片可以使用更少的電流執(zhí)行任務(wù),而且速度還更快。

  這并不是什么全新的技術(shù)。多年來,圖形處理單元(GPU)等專用芯片已經(jīng)存在于英偉達和 AMD 的顯卡中,執(zhí)行與圖形相關(guān)的操作,速度比通用 CPU 快得多。

  蘋果只是在這個方向上走得更加徹底。除了通用核心和內(nèi)存之外,M1 包含了一系列專用芯片:

  CPU(中央處理器):SoC 的「大腦」,運行操作系統(tǒng)和 app 的大部分代碼。

  GPU(圖形處理器):處理圖形相關(guān)的任務(wù),如可視化 app 的用戶界面和 2D/3D 游戲。

  IPU(圖像處理單元):用于加快圖像處理應(yīng)用所承擔的常見任務(wù)。

  DSP(數(shù)字信號處理器):具備比 CPU 更強的數(shù)學密集型功能,包括解壓音樂文件。

  NPU(神經(jīng)網(wǎng)絡(luò)處理器):用于高端智能手機,加速語音識別等機器學習任務(wù)。

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

  Secure Enclave:負責加密、身份驗證,維護安全性。

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

  微信圖片_20201218132759.png

  這就是使用 M1 Mac 進行圖像和視頻編輯時速度有所提升的一部分原因。許多此類任務(wù)可以直接在專用硬件上運行,這樣一來,相對廉價的 M1 Mac Mini 就能夠輕松對大型視頻文件進行編碼。

  微信圖片_20201218132802.png

  你或許疑惑,統(tǒng)一內(nèi)存與共享內(nèi)存有什么區(qū)別。將視頻內(nèi)存與主存共享的做法導(dǎo)致了低性能,因為 CPU 和 GPU 必須輪流訪問內(nèi)存,共享意味著爭用數(shù)據(jù)總線。

  統(tǒng)一內(nèi)存的情況就不同了。在統(tǒng)一內(nèi)存中,CPU 和 GPU 可以同時訪問內(nèi)存,并且 CPU 和 GPU 還可以相互告知一些內(nèi)存的位置。以前 CPU 必須將數(shù)據(jù)從其主存區(qū)域復(fù)制到 GPU 使用的區(qū)域,而使用統(tǒng)一內(nèi)存模式,無需復(fù)制,通過告知內(nèi)存位置即可令 GPU 使用該內(nèi)存。

  也就是說,M1 上各種專有協(xié)處理器都可以使用同一內(nèi)存池彼此快速地交換信息,從而顯著提升性能。

  英特爾和 AMD 為什么不效仿這一策略?

  其他 ARM 芯片制造商也越來越多地投入專用硬件。AMD 開始在某些芯片上安裝功能更強大的 GPU,并通過加速處理器(APU)逐步向某種形式的 SoC 邁進。(APU 將 CPU 核心和 GPU 核心放置在同一芯片上。)

微信圖片_20201218132806.jpg

  AMD Ryzen 加速處理器在同一塊芯片上結(jié)合 CPU 和 GPU,但不包含其他協(xié)處理器、IO 控制器或統(tǒng)一內(nèi)存。

  英特爾和 AMD 不這么做是有重要原因的。SoC 本質(zhì)上是芯片上的整個計算機,這使得它非常適合實際的計算機制造商,例如惠普、戴爾。計算機制造商可以簡單地獲取 ARM 知識產(chǎn)權(quán)許可,并購買其他芯片的 IP,來添加他們認為自己的 SoC 應(yīng)該具備的任意專用硬件。然后,他們將已完成的設(shè)計交給半導(dǎo)體代工廠,比如 GlobalFoundries 和臺積電(TSMC),臺積電現(xiàn)在是 AMD 和蘋果的芯片代工廠。

  那么問題來了。英特爾和 AMD 的商業(yè)模型都是基于銷售通用 CPU(只需將其插入大型 PC 主板)。計算機制造商只需從不同的供應(yīng)商那里購買主板、內(nèi)存、CPU 和顯卡,然后將它們集成即可。但這種方式已經(jīng)漸漸淡出。

  在 SoC 時代,計算機制造商無需組裝來自不同供應(yīng)商的物理組件,而是組裝來自不同供應(yīng)商的 IP(知識產(chǎn)權(quán))。他們從不同供應(yīng)商那里購買顯卡、CPU、調(diào)制解調(diào)器、IO 控制器等的設(shè)計,并將其用于設(shè)計 SoC,然后尋找代工廠完成制造過程。

  但是英特爾、AMD、英偉達都不會將其知識產(chǎn)權(quán)給戴爾或惠普,讓他們?yōu)樽约旱挠嬎銠C制造 SoC。

  當然,英特爾和 AMD 可能只是開始銷售完整的 SoC,但是其中包含什么呢?PC 制造商可能對此有不同的想法。英特爾、AMD、微軟和 PC 制造商之間可能就 SoC 要包含哪些專用芯片產(chǎn)生沖突,因為這些芯片需要軟件支持。

  而對于蘋果來說,這很簡單。蘋果控制整個產(chǎn)品,比如為機器學習開發(fā)者提供如 Core ML 庫等。至于 Core ML 是在蘋果的 CPU 上運行還是 Neural Engine,這是開發(fā)者無需關(guān)心的實現(xiàn)細節(jié)了。

  CPU 快速運行的根本挑戰(zhàn)

  異構(gòu)計算只是一部分原因。M1 的快速通用 CPU 核心 Firestorm 確實速度非常快,與之前的 ARM CPU 核心相比,二者的速度差距非常大。與 AMD 和英特爾核心相比,ARM 也非常弱。相比之下,F(xiàn)irestorm 擊敗了大多數(shù)英特爾核心,也幾乎擊敗了最快的 AMD Ryzen 核心。

  在探討 Firestorm 的速度成因之前,我們先來了解讓 CPU 快速運行的核心意義。

  原則上可以通過以下兩種策略來完成 CPU 加速的任務(wù):

  以更快的速度順序執(zhí)行更多指令;

  并行執(zhí)行大量指令。

  在上世紀 80 年代,這很容易做到。只要增加時鐘頻率,就能更快執(zhí)行指令。每個時鐘周期表示計算機執(zhí)行某項任務(wù)的時間,但是這項任務(wù)可能非常微小。一條指令由多個較小的任務(wù)構(gòu)成,因此可能需要多個時鐘周期。

  但是現(xiàn)在已經(jīng)幾乎不可能增加時鐘頻率了,所以第二個策略「并行執(zhí)行大量指令」是目前研發(fā)的重心。

  多核還是亂序處理器?

  這個問題有兩種解決方法。一種是引入更多 CPU 核心。從軟件開發(fā)者的角度講,這類似于添加線程,每個 CPU 核心就像一個硬件線程。雙核 C+PU 可以同時執(zhí)行兩個單獨的任務(wù),即兩個線程。這些任務(wù)可以被描述為兩個存儲在內(nèi)存中的單獨程序,或者同一個程序被執(zhí)行了兩次。每個線程需要記錄,例如該線程當前在程序指令序列中的位置。每個線程都可以存儲臨時結(jié)果(應(yīng)分開存儲)。

  原則上,處理器可以在只有一個核心的情況下運行多個線程。這時,處理器只能是暫停一個線程并存儲當前進程,然后再切換到另一個線程,之后再切換回來。這并不能帶來太多的性能提升,僅在線程經(jīng)常懸停來等待用戶輸入或者慢速網(wǎng)絡(luò)中的數(shù)據(jù)等時才使用。這些可以稱為軟件線程。硬件線程意味著可以使用實際的附加物理硬件(如附加核心)來加快處理速度。

微信圖片_20201218132809.png

  問題在于開發(fā)者必須編寫代碼才能利用這一點,一些任務(wù)(例如服務(wù)器軟件)很容易編寫,你可以想象分別處理每個連接的用戶。這些任務(wù)彼此獨立,因此擁有大量核心是服務(wù)器(尤其是基于云的服務(wù))的絕佳選擇。

微信圖片_20201218132811.png

  具有 128 個核心的 Ampere Altra Max ARM CPU 專為云計算而設(shè)計,大量硬件線程是一項優(yōu)勢。

  這就是你會看到 128 核心 Ampere Altra Max ARM CPU 的原因了。該芯片專為云計算制造,不需要瘋狂的單核性能,因為在云上需要每瓦具有盡可能多的線程來處理盡可能多的并發(fā)用戶。

  而蘋果則不同,蘋果生產(chǎn)單用戶設(shè)備,大量線程并不是優(yōu)勢。蘋果的設(shè)備多用于游戲、視頻編輯、開發(fā)等。蘋果希望臺式機具有精美的響應(yīng)圖形和動畫。

  桌面軟件通常不需要利用很多核心,例如,電腦游戲通常需要 8 個核心,在這種情況下 128 個核心就完全是浪費了。因此,用戶需要的是更少但更強大的核心。

  亂序執(zhí)行是一種并行執(zhí)行更多指令但不以多線程執(zhí)行的方式。開發(fā)者無需專門編碼其軟件即可利用它。從開發(fā)者的角度來講,每個核心的運行速度都更快了。

  要了解其工作原理,首先我們需要了解一些內(nèi)存知識。在一個特定的內(nèi)存位置上請求數(shù)據(jù)的速度很慢。但是與獲得 128 個字節(jié)相比,延遲獲得 1 個字節(jié)的影響不大。數(shù)據(jù)通過數(shù)據(jù)總線發(fā)送,你可以將其視為內(nèi)存與數(shù)據(jù)經(jīng)過的 CPU 不同部分之間的一條通道或管道。實際上它只是一些可以導(dǎo)電的銅線。如果數(shù)據(jù)總線足夠?qū)挘憔涂梢酝瑫r獲取多個字節(jié)。

  因此 CPU 一次執(zhí)行一整個指令塊,但是這些指令被編寫為一條接著一條執(zhí)行?,F(xiàn)代微處理器會進行「亂序執(zhí)行」。這意味著它們能夠快速分析指令緩沖區(qū),查看指令之間的依賴關(guān)系。示例如下:

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

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

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

  乘法是一個緩慢的運算過程,需要多個時鐘周期來執(zhí)行。第二條指令僅需等待,因為其計算取決于先知道放入 r1 寄存器的結(jié)果。但是,第三條指令并不取決于先前指令的計算結(jié)果,因此亂序處理器可以并行計算此指令。

  但現(xiàn)實情況往往有數(shù)百條指令,CPU 能夠找出這些指令之間的所有依賴關(guān)系。

  它通過查看每個指令的輸入來分析指令的輸入是否取決于一或多個其他指令的輸出,輸入和輸出指包含之前計算結(jié)果的寄存器。

  例如上例中,add r4, r1, 5 指令依賴于來自 r1 的輸入,而 r1 通過 mul r1, r2, r3 指令得到。

  我們可以將這些關(guān)系鏈接在一起,形成 CPU 可以處理的詳細圖。圖的節(jié)點表示指令,邊表示連接它們的寄存器。CPU 可以分析這類節(jié)點圖,并確定可以并行執(zhí)行的指令,以及在繼續(xù)執(zhí)行之前需要在哪一步等待多個相關(guān)計算結(jié)果。

  許多指令可以很早完成,但是其結(jié)果無法正式化。我們無法提交這些結(jié)果,否則順序?qū)⒊霈F(xiàn)錯誤。指令往往是需要按照順序執(zhí)行的。像堆棧一樣,CPU 將從頂部一直彈出已完成的指令,直到命中未完成的指令。

  亂序執(zhí)行功能讓 M1 上的 Firestorm 核心發(fā)揮了重要作用,實際上它比英特爾或 AMD 的產(chǎn)品更加強大。

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

  「重排序緩沖區(qū)」(Re-Order Buffer,ROB)不包含常規(guī)的機器碼指令,即 CPU 從內(nèi)存中獲取的待執(zhí)行指令。這些是 CPU 指令集架構(gòu)(ISA)中的指令,也就是我們稱為 x86、ARM、PowerPC 等的指令。

  但是,CPU 內(nèi)部會使用程序員無法看到的完全不同的指令集,即微操作(micro-op 或 μop),ROB 內(nèi)全是微操作。

  微操作非常寬(包含很多位),能夠包含各種元信息。而 ARM 或 x86 指令則無法添加此類信息,因為會發(fā)生:

  程序的二進制文件完全膨脹。

  暴露 CPU 的工作原理細節(jié),比如是否具備亂序執(zhí)行單元、寄存器重命名等詳細信息。

  很多元信息僅在當前執(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 指令會讓 pipeline 和亂序執(zhí)行幾乎無法實現(xiàn)。

  RISC CPU 有一個選擇,所以較小的 ARM CPU 不使用微操作,但這也意味著它們無法執(zhí)行亂序執(zhí)行等。

  對于理解英特爾和 AMD 的亂序執(zhí)行不如 M1,這很關(guān)鍵。

  快速運行的能力取決于你可以用微操作填充 ROB 的速度及數(shù)量。填充的速度越快,這種能力就越大,你就有更多機會選擇可并行執(zhí)行的指令,性能就會進一步提升。

  機器碼指令被指令解碼器分割成多個微操作。如果有更多的解碼器,我們就可以并行分割更多的指令,從而更快地填充 ROB。

  這就是存在巨大差異的地方。最糟糕的英特爾和 AMD 微處理器核心具有 4 個解碼器,這意味著它可以并行解碼 4 條指令,并輸出微操作。

  但是蘋果有 8 個解碼器。不僅如此,ROB 還大了約 2 倍,基本上可以容納 3 倍的指令。沒有其他主流芯片制造商的 CPU 擁有如此多的解碼器。

  為什么英特爾和 AMD 不能添加更多的指令解碼器?

  這就牽扯到 RISC 了。M1 Firestorm 核心使用的是 ARM RISC 架構(gòu)。

  對于 x86,一條指令的長度可能是 1–15 字節(jié)不等。而在 RISC 芯片上,指令大小是固定的。如果每個指令具有相同的長度,將字節(jié)流分割成指令并饋入 8 個不同的并行解碼器將易如反掌。但是在 x86 CPU 上,解碼器不知道下一條指令從哪里開始,它必須實際分析每條指令,判斷它的長度。

  英特爾和 AMD 采用暴力方式處理這一問題,它們嘗試在每個可能的起點上解碼指令。這意味著必須處理大量錯誤的猜測和錯誤。這讓解碼器階段變得非常復(fù)雜,也很難再添加更多的解碼器。相比而言,蘋果輕輕松松就可以添加更多解碼器。

  實際上,添加更多東西會導(dǎo)致許多其他問題,以至于 AMD 本身的 4 個解碼器基本上已經(jīng)是其上限了。

  而正是這一點讓 M1 Firestorm 核心在相同的時鐘頻率下處理的指令數(shù)量是 AMD 和英特爾 CPU 的兩倍。

  有人可能會反駁說,CISC 指令會變成更多的微操作,它們的密度更大,因此解碼一條 x86 指令類似于解碼兩條 ARM 指令。

  然而實際上,高度優(yōu)化的 x86 代碼很少使用復(fù)雜的 CISC 指令。在某些方面,它具有 RISC 風格。

  但這對 Intel 或 AMD 沒有幫助,因為即使 15 個字節(jié)長的指令很少見,也必須制造解碼器來處理它們。而這會導(dǎo)致復(fù)雜性,從而阻止 AMD 和 Intel 添加更多解碼器。

  AMD 的 Zen3 核心不還是更快嗎?

  據(jù)了解,最新 AMD CPU 核心(即 Zen3)要比 Firestorm 核心快一點。但這只是因為 Zen3 核心的時鐘頻率為 5 GHz,F(xiàn)irestorm 核心的時鐘頻率為 3.2 GHz。盡管時鐘頻率高了近 60%,但 Zen3 也只是勉強超越 Firestorm。

  那蘋果為什么不增加時鐘頻率呢?因為更高的時鐘頻率會使芯片變熱。這也是蘋果的主要賣點之一。與 Intel 和 AMD 的產(chǎn)品不同,他們的計算機幾乎不需要冷卻。

  從本質(zhì)上講,我們可以說 Firestorm 核心確實優(yōu)于 Zen3 核心。Zen3 只能通過更大的電流和變得更熱來維持領(lǐng)先。而蘋果選擇不這樣做。

  如果蘋果想要更高的性能,他們只會增加更多的核心。這樣就可以在降低功耗的同時,還能提供更高的性能。

  未來將會如何

  看來 AMD 和英特爾在兩個方面都陷入了困境:

  它們沒有允許其輕松追求異構(gòu)計算和 SoC 設(shè)計的商業(yè)模型。

  傳統(tǒng)的 x86 CISC 指令集讓它們難以提高亂序執(zhí)行性能。

  但這不意味著游戲結(jié)束。它們當然可以增加時鐘頻率,使用更多的散熱,添加更多核心,增強 CPU 緩存等。但它們目前都處于劣勢。英特爾的情況最糟糕,因為其核心已經(jīng)被 Firestorm 擊敗,并且它的 GPU 薄弱,無法集成到 SoC 方案中。

  引入更多核心的問題在于,對于典型的桌面工作負載,使用過多核心會導(dǎo)致收益遞減。當然,很多核心非常適合服務(wù)器。但 Amazon 和 Ampere 等公司已經(jīng)使用 128 核的巨型 CPU 了。

  幸運的是,Apple 并未出售其芯片。因此,PC 用戶只能接受 AMD 和英特爾提供的產(chǎn)品。PC 用戶可能會跳船,但這是一個緩慢的過程。人們通常不會立即離開已經(jīng)有大量投入的平臺。

  但是,年輕的專業(yè)人士沒有在任何平臺上投入太多資金,他們將來可能會越來越多地轉(zhuǎn)向蘋果,從而擴大蘋果在高端市場的份額和在 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)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。