?

MVSim:面向VLIW多核向量處理器的快速、可擴展和精確的體系結構模擬器

2024-02-28 01:26鄧讓鈺錢程東
計算機工程與科學 2024年2期
關鍵詞:標量體系結構柵欄

劉 仲,李 程,田 希,劉 勝,鄧讓鈺,錢程東

(1.國防科技大學計算機學院,湖南 長沙 410073;2.先進微處理器芯片與系統重點實驗室,湖南 長沙 410073;3.天津先進CPU企業重點實驗室,天津 300000)

1 引言

隨著人們對計算能力需求的不斷增長,處理器體系結構變得越來越復雜。例如,AMD在2021年11月9日正式發布的Instinct MI200 GPU加速卡[1],單芯片64位浮點峰值性能高達144 TFlops,總共有580億個晶體管,包含多達220個計算單元以及880個矩陣內核。設計和制造這樣一個復雜的處理器所需要的時間成本和資金成本是極其高昂的。通常,生產一款新的處理器需要經過體系結構設計、設計評估與驗證、邏輯設計與驗證、電路設計與驗證、布局設計和生產制造等多個階段。而且,這里的每一個階段都需要多次迭代以保證質量。從時間成本上看,該過程通常會持續2~5年甚至更長時間;從資金成本上看,現有新工藝的芯片開發成本都是數億元級別以上。因此,為了降低處理器的設計風險,迫切需要研究高質量的模擬器,通過軟件模擬技術降低設計成本和縮短設計周期。

深度神經網絡技術在圖像識別與分類、目標檢測、視頻分析、語音識別、自然語言處理等方面取得了令人矚目的成就。通用CPU具有很高的靈活性和較好的并行計算能力,但是深度神經網絡算法并不能取得很高的計算效率。GPU因為其特有的多核結構和出眾的并行計算能力而被廣泛應用于深度神經網絡的訓練和推理,但其功耗較大。超長指令字VLIW(Very Long Instruction Word)架構體系結構因性能高、功耗低等優點一直在DSP領域被廣泛使用。Intel在VISION 2022大會公布了基于VLIW SIMD架構的新款AI專用芯片Habana Gaudi 2和Greco[2],使得VLIW SIMD架構成為了深度學習加速器的重要研究方向之一。

2 相關工作

在新的體系結構研究與設計中,模擬器是不可缺少的工具。因此,處理器體系結構軟件模擬技術一直是學術界和工業界非常重要的研究內容[3,4]。

gem5[5]是一個全系統模擬器,能夠在其支持的特定硬件上啟動Linux、Solaris和Android操作系統。SimpleScalar是學術界廣泛使用的體系結構模擬器,可根據模擬需求配置成不同體系結構的模擬器,如僅模擬ISA的sim-safe、對執行性能進行優化的sim-fast[6]、支持推測和亂序執行的超標量處理器性能模型的sim-outorder、支持向前或向后執行程序的Simics[7]、支持Alpha處理器的功能模擬器SimCore[8]、支持多線程微架構模擬的MSim(Multithreaded architectural Simulation)[9]和支持功耗模擬的SimWattch[10]。QEMU(Quick EMUlator)[11]是一個通用模擬器和虛擬機,其采用二進制指令翻譯技術,通過提取guest代碼,將其翻譯成TCG中間代碼,最后再將中間代碼翻譯成host指定架構的代碼,如x86或ARM體系結構。文獻[12]提供了千核系統的快速準確的微體系結構模擬。德州儀器TI(Texas Instruments)[13]公司提供了CCS(Code Composer Studio)集成開發環境,集編輯、編譯、鏈接、軟件仿真、硬件調試及實時跟蹤等功能于一體,極大地方便了用戶對DSP芯片的開發與設計。CCS開發環境自帶了TI公司各種處理器的軟件模擬器,在CCS配置中選擇對應型號的Simulator CPU之后,就可以加載程序代碼,模擬程序在該型號CPU上的運行情況。其缺陷是模擬不夠完善,僅僅是對DSP芯片內部運行狀況的模擬,無法模擬DSP與外設之間的操作。

盡管與模擬器相關的研究文獻很多,開源社區也有許多知名的模擬器項目,但迄今為止,沒有看到與VLIW SIMD多核向量處理器相關的模擬器和文獻。為了對VLIW SIMD多核向量加速器體系結構進行深入研究和對設計空間進行探索,本文設計了一個快速、可擴展和精確的多核向量體系結構模擬器MVSim(Multi-core Vector Simulator)。MVSim根據處理器的指令集體系結構,用軟件模擬的方式實現了處理器的邏輯功能實現,能夠節拍精準地模擬硬件處理器對程序指令的運行處理過程,提供程序指令執行、寄存器讀寫、存儲器訪問、DMA(Direct Memory Access)傳輸等執行過程的完整記錄。實際使用情況證明,該模擬器軟件對處理器的設計具有非常重要的作用:(1)由于處理器的設計工程量巨大,且芯片的投片成本極高,任何不恰當的設計都將帶來巨大損失。模擬器可以預先模擬程序執行流程,反饋設計是否滿足需求,從而改進處理器設計。(2)模擬器有助于芯片設計過程中的芯片測試與驗證,通過對照檢查RTL測試結果與模擬器執行結果能及時發現設計錯誤。(3)模擬器能夠模擬運行程序在處理器上的執行過程,支持完整的程序執行日志;能對程序指令執行、寄存器讀寫、存儲器訪問、DMA數據傳輸等執行過程進行完整的記錄;能夠快速定位程序錯誤原因,有助于應用程序的開發、調試和性能分析。(4)模擬器可以提供給潛在用戶進行早期應用開發,有助于加速芯片的應用推廣和用戶應用的快速開發與部署。

3 MVSim的設計與實現

3.1 MVSim的軟件架構

多核模擬器的總體框架如圖1所示,其核心主要包括以下3個部分:

Figure 1 Framework of multi-core simulator圖1 多核模擬器的總體框架

(1)硬件抽象模型?;诂F有的多款VLIW架構多核處理器,深入研究其指令集體系結構,抽象、分析與歸納其底層硬件描述。構建了可擴展的、通用的指令取指、指令譯碼、指令執行、訪存、Cache管理、硬件資源沖突檢測機制、DMA數據傳輸和多核通信模型。

(2)性能評價模型?;诂F有的多款VLIW架構多核處理器,構建了通用的程序執行性能模型、Stall和Busy統計模型、訪存性能模型和DMA數據傳輸性能模型。

(3)多核模擬器內核?;诂F有的多款VLIW架構多核處理器,通過深入研究其體系結構,構建了通用的程序加載、執行、調試和性能統計模型。

3.2 多核向量處理器模型

如圖2所示,MVSim的目標多核向量處理器包含多個VLIW SIMD向量處理器核心VPC(Vector Processor Core),VPC通過CrossNet數據網絡共享高速全局共享存儲器和大容量片外HBM/DDR存儲系統。單個VPC包括取指單元、指令派發單元、標量處理單元SPU(Scalar Processing Unit)、向量處理單元VPU(Vector Processing Unit)、陣列存儲單元AM(Array Memory)和DMA等。

Figure 2 Multi-core processor model of VLIW SIMD architecture圖2 VLIW SIMD架構的多核處理器模型

取指單元根據指令流控完成指令的獲取操作。該單元包含L1P 程序Cache,當L1P不命中時,自動向外部發出取指失效請求,每次請求粒度為一個取指包。取指部件將獲取到的指令包發送給指令派發單元。

指令派發單元接收到指令包后,將執行指令從指令包中提取出來,發送到SPU、VPU和AM中并發執行。當前的VPC采用11發射的VLIW結構(標量5流出,向量6流出),單條指令采用可變長編碼(目前支持16/32位、40/80位)。

SPU包括指令流控、SPE(Scalar Processing Element)和標量存儲SM(Scalar Memory)。指令流控包括分支、中斷/異??刂频?用于控制程序流。SPE接收指令派發單元派發的標量運算類指令,譯碼后送到SPE內對應的功能運算單元執行。SPE內部集成了3個運算單元,包括2個SMAC(Scalar Multiply ACcumulate)和1個SIEU(Scalar Integer Element Unit)。2個SMAC運算單元同構,支持標量半精度、單精度和雙精度浮點乘加操作;SIEU支持標量定點運算。每個標量運算單元,對應VLIW執行包中的一條標量指令。SPE內包含64個32/64位的通用寄存器。

SM實現標量數據的訪存和控制,支持一條標量訪存指令或地址加減法指令,可實現標量訪存指令對核內外可見的數據空間和配置空間的訪問。SM存儲容量可配置,支持配置為Cache或SRAM的2種訪問模式。配置為SRAM模式時,通過DMA實現SM與核外的數據搬移。

VPU由16(可配置)個同構的VPE(Vector Processing Element)構成。VPE內部集成了4個VMAC(Vector Multiply ACcumulate)運算單元,VMAC支持半精度、單精度和雙精度浮點的向量乘加操作。VPE內包含64個32/64位的局部通用寄存器。

DMA單元接收SPU配置的傳輸參數,啟動對特定存儲資源的訪問。這種數據傳輸通過DMA通用通道實現,包含讀操作和寫操作。DMA訪問的存儲資源包括:片上AM存儲器、片上SM存儲器、片外HBM(High Bandwidth Memory)/DDR(Double Data Rate)存儲空間,全局共享存儲配置而成的SRAM(Static Random Access Memory)空間。DMA支持點對點、組播和廣播3種傳輸模式。

3.3 VPC指令集體系結構的模擬

3.3.1 取指包和執行包格式

VPC采用VLIW體系結構,可變長的指令編碼使得編譯器能夠根據計算需求選擇不同長度的指令,便于程序代碼和性能優化。MVSim支持2種可變長的指令編碼:32位處理器采用16/32位指令編碼;64位處理器采用40/80位指令編碼。根據目標應用的需求,可以很容易地擴展到其他格式的指令編碼。這里以64位處理器為例進行介紹。

取指包和執行包的格式如圖3所示。所有指令均為40/80位指令,指令長度通過指令編碼的第2~3位值進行區分。處理器每次從外存中取出512位的取指包,取指包內包含1個以上的執行包,2個執行包之間無填充,執行包邊界由指令的并行位決定。指令中的并行位P(第0位)的含義是:P=0表示本條指令與下一條指令不在同一個執行包中;P=1表示本條指令與下一條指令在同一個執行包中。一個執行包按40 位對齊,包括標量指令與向量指令。

Figure 3 Formats of instruction fetch packet and execution packet圖3 取指包和執行包的格式

一個執行包內80位指令集中在前面,40位指令集中在后面。一個執行包至多包含4條80位指令,且一個執行包大小不超過480 bit。處理器包含5個標量部件和6個向量部件。因此,一個執行包可包含1~11條指令,其長度為5~60個字節。執行包的構成為x*80+y*40格式,其中x和y均大于0且滿足:

(1)x≤4;

(2)y≤11;

(3)x+y≤11;

(4)x*80+y*40≤480。

圖3b描述了多個執行包在存儲器中的位置,其中,80_low表示80位指令的低40位,80_high表示80位指令的高40位,40表示40位指令。

3.3.2 取指和指令解碼

VPC的指令根據操作數的個數和種類分別劃分為長立即數MOV指令(40位、80位)、長立即數分支指令、長立即數Load/Store 指令、單操作數指令、雙操作數指令和三操作數指令。以三操作數指令為例說明如何根據指令格式進行指令解碼。三操作數指令編碼格式如圖4所示。

Figure 4 Encoding format of three-operand instructions圖4 三操作數指令編碼

VPC的指令支持條件操作,Reg字段用以標識條件寄存器編號。Z字段用于條件判斷,若Z=0,則條件寄存器為非0時執行當前指令;若Z=1,則條件寄存器為0時執行當前指令。V字段用以標識標量或向量指令,若V=0則當前指令為標量指令,若V=1則當前指令為向量指令。P字段標識當前指令是否與下一條指令并行執行,若P=0,則當前指令不與下一條指令并行執行,若P=1,則當前指令與下一條指令并行執行。Dst、Src1、Src2、Src3字段分別標識當前指令的目的、源操作數1、源操作數2、源操作數3的寄存器編號。OP字段用以標識執行指令的操作碼。Type字段用以標識當前指令所屬功能單元和指令分類。

VPC的取指過程如下所示:

pos=0;

do{

readBufferFrom(&next_inst,currentPC+pos.InstLen);

type=parser(next_inst);

switch(type){

caseLONGIMMMOV40:

decodeLongImmMov40(next_inst);

break;

caseLONGIMMMOV80:

decodeLongImmMov80(next_inst);

break;

caseLONGIMMBRANCH:

decodeLongImmBranch(next_inst);

break;

caseLONGIMMLOATSTORE:

decodeLongImmLoatStore(next_inst);

break;

caseONEOPERATION:

decodeOneOperation(next_inst);

break;

caseTWOOperation:

decodeTwooperation(next_inst);

break;

caseTHREEOperation:

decodeThreeoperation(next_inst);

break;

)while(next_inst[0]&1)

模擬器循環讀取取指包,直到讀取的指令的P字段值為0為止。對讀取到的每一條指令,解析指令的Type字段,根據解析到的字段值將指令派發到不同指令類型的解碼函數。解碼函數根據指令編碼格式執行詳細的指令解碼。

3.4 多級存儲體系結構模型

多核處理器的多級存儲體系結構模型如圖5所示,共包含4個層級。

Figure 5 Multi-level storage architecture model圖5 多級存儲體系結構模型

第0級:VPC的標量寄存器文件和向量寄存器文件;

第1級:VPC的L1P、標量存儲器(可配置為L1D Cache或SRAM模式)和陣列存儲器;

第2級:全局共享存儲器(可配置為全局共享Cache或SRAM模式);

第3級:片外的大容量HBM/DDR、EMIF的數據空間。

其中第1級的標量存儲可配置為L1D Cache或SRAM模式,第2級的全局共享存儲可配置為全局共享Cache或SRAM模式。

L1P缺省配置為2路組相聯Cache,Cache容量(capacity)為64 KB,Cache行大小(line size)為64 B,CPU(access time)訪問時間為1個時鐘周期,Cache行分配策略為讀分配。Cache替換策略為最近最少使用的Cache行被替換,且標記新載入的Cache行最近被使用。

數據Cache支持2級Cache(第1級的標量存儲可配置為L1D Cache,第2級的全局共享存儲可配置為全局共享L2D Cache)。數據Cache訪存分為命中和缺失。若是讀缺失,則向下一級Cache或存儲發送缺失請求,并返回缺失數據,Cache行依據LRU替換策略。若是寫缺失,則采取寫回寫分配策略,先從下一級Cache或存儲讀取缺失數據,并依據LRU替換策略替換舊的Cache行,再執行寫操作。若是讀命中,命中的Cache行數據返回給CPU,同時更新LRU位。若是寫命中,采用寫回策略將數據寫入Cache。當Cache行被改寫時,該行的對應的Dirty位被置1,記為臟行。當臟行因為其他的缺失被替換時,需要將臟行寫回至數據空間。

為方便使用和靈活擴展,Cache模塊的各種參數均設計為可配置,包括Cache容量(capacity)、Cache行大小(line size)、Cache組大小(ways)、CPU access time、Single read miss stall、Write miss等。

3.5 DMA的模擬

MVSim支持以下3種DMA數據傳輸模式:

(1)點對點傳輸模式。點對點傳輸是指VPC核通過DMA發起的片上存儲器(SM和AM)和片外存儲器(GSM和HBM/DDR)之間的數據交換。每次DMA啟動可完成一個一維或二維數據塊的傳輸。

(2)分段傳輸模式。分段傳輸是指DMA從片外存儲器(GSM和HBM/DDR)中讀取連續數據段,并根據數據分段模式向多個VPC核發送數據段,不同VPC可接收不同的數據段。數據分段模式是程序員可配置的,其決定每個數據段的目標核,如第1段數據發給哪些核,第2段數據發給哪些核等。數據分段模式由分段傳輸控制寄存器控制,包含4個字段:循環分段模式、循環次數、循環步長和分段粒度。循環分段模式是指數據返回給多個VPC內核的形式;循環次數是指移位的次數;循環步長是指下一段數據傳輸時循環分段模式右移的長度;分段粒度是指每一段數據的長度。

(3)廣播傳輸模式。廣播傳輸指的是DMA將從HBM/DDR讀取的一個數據塊發送至所有目標核。

上述模式中,點對點傳輸由每個核獨立控制,數據傳輸過程中不需要與其他核進行同步。而分段傳輸和廣播傳輸都是由一個主機核進行配置和啟動,從機核進行計數,多核之間需要通過柵欄機制完成同步。

3.6 多核柵欄同步的模擬

多核柵欄同步的模擬過程如圖6所示。由于目標多核處理器的核間共享了GSM和HBM/DDR存儲空間,需要設計硬件柵欄機制實現多核同步。硬件柵欄同步功能是通過Load指令訪問存儲器完成。所有的柵欄同步單元全局統一編址,通過訪問Memory Map Register的地址進行柵欄同步操作。柵欄同步單元用于多核間的相互等待,當多個核需要在某個點進行同步的時候需要用到柵欄同步操作。所有的柵欄實例對程序員透明,程序員僅需明確參與同一柵欄同步的處理器核和核數量,以及賦予同一柵欄同步的編號。

Figure 6 Simulation process of multi-core fence synchronization圖6 多核柵欄同步的模擬過程

Address[31:20](=12’h301)表明這是訪問柵欄同步單元的操作。Address[19]設置為0表示是柵欄同步請求,設置為1表示對柵欄同步單元寄存器進行配置。Address[7:4]為此次柵欄同步編號,所有參與同一柵欄同步的處理器核通過該編號確認是不是同一次柵欄同步。Address[11:8]表示參與此次柵欄同步的處理器核總數。

3.7 多核處理器的模擬及性能模型

MVSim采用多線程模擬多核向量處理器,用一個主線程模擬多核向量處理器,讀取配置文件,根據核數創建相應數量的線程,每一個VPC核用一個線程模擬。因此,MVSim是用主機上的一個多線程程序來模擬目標處理器上的一個多核程序運行。這種方法一方面盡可能真實地模擬了多核程序的并發執行,同時也盡可能多地利用了主機的多核處理器資源,大幅度提高了模擬器的運行速度。每個線程記錄了對應VPC核的所有運行狀態,包括詳細的程序指令執行、寄存器讀寫、存儲器訪問、DMA數據傳輸、Cache訪問、性能統計等。主線程一直運行,直到所有線程結束。最后,輸出每個線程的運行日志,取所有核的運行時間最大值作為多核程序的運行時間。

如圖7所示,影響程序執行時間的因素包括:程序指令執行時間、內存訪問時間、訪存沖突引起的流水線停頓時間和DMA數據傳輸時間。程序指令執行時間是指指令數據就緒情況下的指令執行時間。內存訪問時間Tmem是指程序指令執行過程中因取指或取數發生的存儲訪問時間,其計算如式(1)所示:

Figure 7 Factors affecting program execution time圖7 影響程序執行時間的因素

Tmem=countHit*timeHit+

countMiss*penaltyMiss

(1)

其中,countHit、timeHit分別為Cache命中時的次數和訪存時間,countMiss、penaltyMiss分別為Cache不命中時的次數和訪存時間。countHit和countMiss由模擬器根據程序運行情況統計得到,而timeHit和penaltyMiss是可配置的,根據模擬的目標處理器情況在模擬器配置文件中進行修改。

訪存沖突引起的流水線停頓時間主要包括以下3類:

(1)SBR Busy時間:分支目標所在的執行包跨了取指包邊界會引起流水線停頓,該停頓時間記為TSBR;

(2)SM Busy時間:標量Load/Store指令與DMA訪問標量存儲器的同一個存儲體(Bank)時,會導致訪問沖突,該沖突引起的流水線停頓時間記為TSM。

(3)AM Busy時間:2條向量Load/Store指令同時訪問一個Bank,或者向量Load/Store指令與DMA訪問陣列存儲器的同一個Bank時,會導致沖突,該沖突引起的流水線停頓時間記為TAM。

DMA數據傳輸時間TDMA是根據傳輸數據量Total_Byte與平均數據傳輸帶寬Bm得到的,具體計算如式(2)所示:

TDMA=Total_Byte*Bm

(2)

其中,Total_Byte由模擬器根據程序運行情況統計得到;平均數據傳輸帶寬Bm是可配置的,根據模擬的目標處理器情況在模擬器配置文件中進行修改。平均數據傳輸帶寬按照源地址與目的地址的不同分為6類(GSM to SM,GSM to AM,DDR to SM,DDR to DDR,DDR to GSM),可以預先分別進行測試與統計,取其平均值作為模擬器的配置參數。

由于DMA傳輸是后臺操作,與程序指令執行時間重疊。每次DMA事務結束時,根據DMA數據傳輸時間對程序指令執行時間進行修訂。設DMA啟動與結束時刻的當前程序指令執行時間分別為Time0和Time1,當次計算得到的DMA數據傳輸時間為TDMA。若TDMA>(Time1-Time0),則修訂后的當前程序指令執行時間為Time1=Time0+TDMA,否則保持不變。

第i個核上程序執行時間為Ti如式(3)所示:

Ti=TSBR+TSM+IAM+Tx

(3)

其中,Tx表示修訂后的當前程序指令執行時間。

最后取所有核上程序執行時間最大值作為程序的執行時間,如式(4)所示:

T=max(Ti)

(4)

4 實驗測試與結果評估

本文測試集包括7個關鍵算法(單核和多核、單精度和半精度)的28個程序,用于測試和評估MVSim的準確性和性能。表1描述了這些算法及其輸入參數。后續測試程序名稱以首字母區分精度(如單精度gemm用sgemm表示,半精度gemm用hgemm表示);以后綴數字區分單核和四核測試程序(如單精度單核gemm用sgemm_1表示,如單精度四核gemm用sgemm_4表示)。

Table 1 Test program set

4.1 精度測試

L1P和L1D:分別在寄存器傳輸級(RTL)實現和MVSim中模擬7個單精度程序,并統計程序執行期間L1P未命中的次數。表2列出了測試程序的L1P未命中次數、代碼大小和指令獲取數據包。獲取數據包的指令數是根據代碼大小Dcode計算得到的。假設指令獲取包的大小為64 B,那么指令獲取包數量NFP=Dcode/64。從表2中可以看出,RTL和MVSim獲得的L1P未命中的數量相同,這與計算的提取分組的數量完全相同。

Table 2 Performance of various test programs

(1)計算結果:RTL和MVSim分別模擬了7個單精度程序和7個半精度程序,計算結果完全一致。

(2)程序計算性能:有2種情況:①數據存儲在片上存儲器中,并分別在RTL和MVSim中模擬了7個單精度程序和7個半精度程序,程序計算性能完全相同。②數據在片外存儲器中。由于MVSim對DMA、DDR和多核圍欄的模擬是一種功能模擬,因此程序的計算性能取決于統計獲得的參數數據,存在一定的性能誤差。圖8顯示了gemm和fft程序(單核和四核,單精度和半精度)的性能誤差,它們的平均性能誤差約為2.9%。

Figure 8 Performance error of gemm and fft in RTL and MVSim圖8 RTL和MVSim中gemm和fft的性能誤差

4.2 性能測試

(1)模擬器性能。如圖9所示,分別在MVSim、CCS和RTL模擬器中測試了7個程序在不同條件下(單核和四核、單精度和半精度)的模擬執行時間。圖9a顯示,在模擬單精度單核程序時,MVSim分別比RTL和CCS的快63倍和4倍。圖9b顯示,在模擬單精度四核并行程序時,MVSim的分別比RTL和CCS的快315倍和4.5倍。圖9c顯示,在模擬半精度單核程序時,MVSim的分別比RTL和CCS的快66倍和4.7倍。圖9d顯示,在模擬半精度四核并行程序時,MVSim的分別比RTL和CCS的快465倍和7倍。

(2)模擬器的可擴展性。在3臺不同配置的主機上測試了不同核數模擬器的執行性能,結果如圖10所示。從圖10可以看出,MVSim具有良好的可擴展性。

Figure 10 Execution performance of simulators with different kernel numbers圖10 不同核數模擬器的執行性能

5 結束語

本文設計了一種適用于多核向量體系結構的快速、可擴展、性能精確的軟件模擬器MVSim。它模擬了處理器的邏輯功能,可以準確地模擬硬件處理器程序指令的運行過程。實際使用結果表明,該模擬器在處理器的設計中能夠發揮非常重要的作用:(1) 模擬器可以提前模擬程序執行過程,并反饋設計是否符合要求,從而改進處理器設計;(2) 該模擬器有助于芯片設計過程中的芯片測試和驗證,通過比較RTL測試結果與模擬器執行結果,可以及時發現設計錯誤;(3) 模擬器可以模擬運行程序在處理器上的執行過程,記錄完整的程序執行日志,有助于應用程序的開發、調試和性能分析;(4) 模擬器可以提供給潛在用戶進行早期應用開發,有助于加快芯片的應用推廣和用戶應用的快速開發與部署。

猜你喜歡
標量體系結構柵欄
一種高效的橢圓曲線密碼標量乘算法及其實現
一種靈活的橢圓曲線密碼并行化方法
圍柵欄
基于粒計算的武器裝備體系結構超網絡模型
作戰體系結構穩定性突變分析
基于DODAF的裝備體系結構設計
基于云計算的航天器控制系統自組織體系結構
嘴巴里的柵欄
經過柵欄外的目擊者
單調Minkowski泛函與Henig真有效性的標量化
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合