RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

闡述系統(tǒng)中軟件定義和硬件定義

工程師鄧生 ? 來(lái)源:軟硬件融合 ? 作者:Chaobowx ? 2022-09-06 09:51 ? 次閱讀

硬件定義軟件?還是軟件定義硬件?這是個(gè)宏大的命題。本文篇幅有限,也自認(rèn)能力有限,很難完整而準(zhǔn)確的把握。只為拋磚引玉,期望能有更多的朋友一起探討。

從軟件到硬件,從硬件到軟件;硬件定義并驅(qū)動(dòng)軟件,軟件定義并驅(qū)動(dòng)硬件;軟硬件系統(tǒng)的發(fā)展,是個(gè)螺旋上升,不斷深化的過(guò)程。

未來(lái),隨著設(shè)計(jì)規(guī)模逐步擴(kuò)大,各種處理引擎及其生態(tài)持續(xù)豐富,軟件和硬件,更像是相互博弈相互協(xié)同的共生系統(tǒng),這應(yīng)該算是“軟硬件融合”吧!

1 軟件和硬件

1.1 軟件和硬件的定義

44428f56-2d86-11ed-ba43-dac502259ad0.png

指令是軟件和硬件的媒介,指令的復(fù)雜度決定了系統(tǒng)的軟硬件解耦程度。

按照單位計(jì)算(指令)的復(fù)雜度,處理器平臺(tái)大致分為CPU、協(xié)處理器、GPU、FPGAASIC。從左往右,單位計(jì)算越來(lái)越復(fù)雜,靈活性越來(lái)越低。

任務(wù)在CPU運(yùn)行,則定義為軟件運(yùn)行;任務(wù)在協(xié)處理器、GPU、FPGA或ASIC運(yùn)行,則定義為硬件加速運(yùn)行。

1.2 “硬件定義軟件”和“軟件定義硬件”的定義

軟件定義是當(dāng)前非常熱門(mén)的話(huà)題,比如軟件定義網(wǎng)絡(luò)、軟件定義數(shù)據(jù)中心、軟件定義汽車(chē)等等。軟件定義的范疇非常大,不僅僅涉及到底層的軟硬件技術(shù),也涉及到系統(tǒng)的運(yùn)行管理、監(jiān)控、更新等,甚至還涉及到商業(yè)上的一些考量。

系統(tǒng)是由軟件和硬件組成。當(dāng)我們說(shuō)軟件定義XX的時(shí)候,其實(shí)說(shuō)的是軟件定義XX系統(tǒng)。本文篇幅有限,從最底層的軟件和硬件相關(guān)的技術(shù)以及兩者之間的相互關(guān)系和影響來(lái)闡述系統(tǒng)中軟件定義和硬件定義。

“硬件定義軟件”定義為:

當(dāng)一個(gè)系統(tǒng)的主要業(yè)務(wù)邏輯是在硬件中實(shí)現(xiàn),協(xié)同的軟件是為輔助。

相關(guān)的軟件是依賴(lài)于硬件提供的接口構(gòu)建。

對(duì)應(yīng)的,“軟件定義硬件”定義為:

當(dāng)一個(gè)系統(tǒng)的主要業(yè)務(wù)邏輯是在軟件中實(shí)現(xiàn);系統(tǒng)中沒(méi)有硬件引擎,或者硬件引擎是軟件可編程的;硬件引擎按照軟件編程的邏輯執(zhí)行操作。

相關(guān)的硬件依賴(lài)于軟件提供的接口構(gòu)建。

1.3 CPU,軟件和硬件解耦

44526cdc-2d86-11ed-ba43-dac502259ad0.png

CPU是最靈活的,原因在于運(yùn)行于CPU指令都是最基本粒度的加減乘除外加一些訪(fǎng)存及控制類(lèi)指令,就像積木塊一樣,我們可以隨意組合出我們想要的各種形態(tài)的功能。

很多人會(huì)認(rèn)為,CPU可以自動(dòng)的執(zhí)行非常復(fù)雜的計(jì)算機(jī)程序,這是CPU最大的價(jià)值所在。其實(shí)不然,CPU最大的價(jià)值在于提供并規(guī)范了標(biāo)準(zhǔn)化的指令集,使得軟件和硬件從此解耦:

硬件工程師不需要關(guān)心場(chǎng)景,只關(guān)注于通過(guò)各種“無(wú)所不用其極”的方式,快速的提升CPU的性能。

而軟件工程師,則完全不用考慮硬件的細(xì)節(jié),只關(guān)注于程序本身。然后有了高級(jí)編程語(yǔ)言/編譯器、操作系統(tǒng)以及各種系統(tǒng)框架/庫(kù)的支持,構(gòu)建起一個(gè)龐大的軟件生態(tài)超級(jí)帝國(guó)。

在桌面和服務(wù)器領(lǐng)域,X86是最流行的處理器架構(gòu)。而在手機(jī)等移動(dòng)端,ARM則占據(jù)絕對(duì)的統(tǒng)治地位。開(kāi)源RISC-v符合未來(lái)技術(shù)和商業(yè)發(fā)展的趨勢(shì),其在MCU領(lǐng)域已經(jīng)占據(jù)重要地位,并且在向桌面和服務(wù)器領(lǐng)域發(fā)起沖鋒。

軟件的龐大生態(tài),是構(gòu)建在特定的CPU架構(gòu)之上的。但是,我們一般來(lái)說(shuō),CPU作為指令足夠細(xì)粒度,計(jì)算足夠通用的計(jì)算平臺(tái),其是軟件和硬件解耦的:

一方面,特定架構(gòu)下,每種CPU架構(gòu)“基本”保證了向前兼容,這樣可以認(rèn)為,在特定架構(gòu),軟件硬件完全解耦各自發(fā)展。

另一方面,(理想狀態(tài)下,)OS、編譯器等越來(lái)越成熟之后,能夠保證,同樣的高級(jí)語(yǔ)言程序,在不同的CPU架構(gòu)平臺(tái),其運(yùn)行行為是一致吧。這樣就可以脫離具體的CPU架構(gòu)憑條,構(gòu)建完全無(wú)差別的軟件生態(tài)。

從長(zhǎng)期發(fā)展的角度,RISC-v應(yīng)該會(huì)是未來(lái)更好的選擇:

開(kāi)放性。RISC-v最大的特點(diǎn)是其指令集開(kāi)源,這樣任何廠(chǎng)家就可以根據(jù)自己情況設(shè)計(jì)自己的RISC-v CPU,然后大家共建一套開(kāi)放的生態(tài),共生共榮。

標(biāo)準(zhǔn)化。標(biāo)準(zhǔn)化是最關(guān)鍵的價(jià)值。所有的架構(gòu)(x86/ARM/RISC-v)都可以認(rèn)為是標(biāo)準(zhǔn)的,但因?yàn)镽ISC-v的開(kāi)放性,其標(biāo)準(zhǔn)化未來(lái)的價(jià)值就會(huì)非常大。上面說(shuō)過(guò),“理想”情況下,我們可以把程序無(wú)縫的從一個(gè)平臺(tái)遷移到其他平臺(tái),但實(shí)際上,許多商業(yè)的軟件,我們并不能拿到源碼。而且,許多時(shí)候,一些細(xì)節(jié)問(wèn)題,都可能導(dǎo)致平臺(tái)遷移失敗。這種遷移對(duì)用戶(hù)來(lái)說(shuō)是非常大的挑戰(zhàn)和風(fēng)險(xiǎn)。當(dāng)標(biāo)準(zhǔn)的RISC-v足夠流行之后,基于RISC-v構(gòu)建的整個(gè)生態(tài)會(huì)迸發(fā)強(qiáng)大的生命力。

其他。如RISC-v沒(méi)有歷史包袱,指令集更高效;更靈活的擴(kuò)展能力(確保不碎片化);等等。

1.4 CPU的軟硬件定義

CPU和軟件程序的交互接口是指令集,是最細(xì)粒度的加減乘除等指令,像積木塊一樣,隨意組合出任意想要的各種程序。

CPU到底是軟件定義還是硬件定義,從不同的角度有不同的看法:

軟件和硬件并行發(fā)展。CPU,通過(guò)ISA,“完美”實(shí)現(xiàn)了軟件和硬件的標(biāo)準(zhǔn)化解耦。因此,可以認(rèn)為,在這個(gè)時(shí)候,不存在硬件定義軟件或軟件定義硬件,軟件和硬件各自并行不悖的快速發(fā)展。

硬件定義軟件?;贑PU構(gòu)建的龐大軟件生態(tài),這可以算作是“硬件定義軟件”:先有CPU硬件,再有編譯器,再有OS、應(yīng)用等。

軟件定義系統(tǒng)。但是,站在軟件的角度,所有的系統(tǒng)實(shí)現(xiàn)均可以通過(guò)編程實(shí)現(xiàn),根本不需要考慮運(yùn)行的CPU平臺(tái)的“差一些”,因此又可以看做基于CPU運(yùn)行的系統(tǒng)是“軟件定義”的。

2 硬件定義軟件

2.1 系統(tǒng)從軟件逐步到硬件

44605bee-2d86-11ed-ba43-dac502259ad0.png

一個(gè)系統(tǒng),必然經(jīng)過(guò)前期快速迭代,后期逐漸穩(wěn)定的過(guò)程。因此,系統(tǒng)運(yùn)行的處理器平臺(tái)選擇也必然有如下的一些規(guī)律:

CPU通用軟件平臺(tái):當(dāng)一個(gè)新的應(yīng)用出現(xiàn)的時(shí)候,最早出現(xiàn)的一般是軟件實(shí)現(xiàn)。一來(lái)實(shí)現(xiàn)所需要的代價(jià)較少,可以快速實(shí)現(xiàn)想法;二來(lái)CPU所提供的靈活性,不考慮性能的情況下,使之幾乎可以處理任何場(chǎng)景的任務(wù)。

協(xié)處理器擴(kuò)展指令加速平臺(tái):隨著技術(shù)的演進(jìn),對(duì)性能提出了一些要求。這個(gè)時(shí)候,可以針對(duì)一些比較消耗CPU資源的程序進(jìn)行一定的編程和編譯優(yōu)化。

GPU向量及并行加速平臺(tái):更進(jìn)一步的,技術(shù)廣泛應(yīng)用,并且我們能從算法中尋找到更多的并行性。這個(gè)時(shí)候,我們就可以找一些專(zhuān)用的處理器,如GPU、DSP、NPU等,來(lái)處理。通過(guò)特定的并行優(yōu)化以及支持向量(SIMD)、多指令并行(MIMD/VLIW)等復(fù)雜指令編譯優(yōu)化的方式,深度的優(yōu)化性能。

FPGA硬件可編程加速平臺(tái):隨著技術(shù)越來(lái)越成熟,應(yīng)用的規(guī)模越來(lái)越大。也越來(lái)越消耗資源。這個(gè)時(shí)候,我們值得花費(fèi)更多的精力,提煉出復(fù)雜度非常高的算法(或者可以當(dāng)作一個(gè)非常復(fù)雜的“指令”)然后通過(guò)硬件邏輯實(shí)現(xiàn)。再通過(guò)FPGA硬件可編程的方式快速落地。

ASIC定制加速平臺(tái):再進(jìn)一步的,技術(shù)更加成熟穩(wěn)定,應(yīng)用規(guī)模足夠龐大,這個(gè)時(shí)候就非常有必要為此場(chǎng)景定制開(kāi)發(fā)ASIC,來(lái)達(dá)到最優(yōu)的性能、最低的成本、最小的功耗。

當(dāng)需要面向一個(gè)新領(lǐng)域開(kāi)發(fā)的時(shí)候,要快速實(shí)現(xiàn),或者應(yīng)用的場(chǎng)景不夠確定,需要硬件平臺(tái)有足夠多的適應(yīng)性,這些情況使用CPU比較合適。當(dāng)需要極致的效率,并且成本敏感、功耗敏感,而且規(guī)模足夠龐大,那么選擇定制開(kāi)發(fā)ASIC會(huì)更合適一些。如果折中的,需要有一定的靈活性,又要保證一定的性能加速,并且應(yīng)用有足夠的并行度,這個(gè)時(shí)候GPU則更合適一些。

從軟件到硬件的一個(gè)經(jīng)典的例子就是比特幣,其激烈而快速的完成了從CPU到ASIC的過(guò)渡。比特幣使用的技術(shù)區(qū)塊鏈核心算法是SHA-256,它在各個(gè)平臺(tái)上的性能對(duì)比如下:

CPU:最開(kāi)始的時(shí)候,大家使用CPU挖礦,一臺(tái)高端個(gè)人電腦,處理速度大概20MH/s(H/s, Hash per second);

GPU:后來(lái)有人用GPU加速挖礦,SHA-256可以繼續(xù)拆分成普通的算術(shù)邏輯運(yùn)算,而GPU具有超級(jí)多的算術(shù)邏輯運(yùn)算單元,一個(gè)高端顯卡的處理速度可以達(dá)到200MH/s;

FPGA:再后來(lái)出現(xiàn)了定制SHA-256算法硬件邏輯的FPGA加速卡來(lái)挖礦,精心設(shè)計(jì)的定制電路的FPGA,可以使運(yùn)算速度達(dá)到1GH/s;

ASIC:而比特大陸公司2015年發(fā)布的ASIC礦機(jī)芯片BM1385,其性能達(dá)到單顆芯片算力可達(dá)32.5GH/s。

上述CPU、GPU、FPGA性能數(shù)據(jù)來(lái)自于《區(qū)塊鏈:技術(shù)驅(qū)動(dòng)金融》,數(shù)據(jù)為2013年前后的性能數(shù)據(jù)。

2.2 硬件架構(gòu)決定了軟件設(shè)計(jì)

2.2.1 ASIC的硬件定義

4475ed6a-2d86-11ed-ba43-dac502259ad0.png

SOC是CPU、GPU、各種加速處理引擎(ASIC)以及接口模塊(ASIC)的集成。

智能手機(jī)使用電池供電,同時(shí)又要提供足夠強(qiáng)大的性能。如此苛刻的應(yīng)用條件,使得智能手機(jī)處理器通常都選用集成度非常高的SOC。上圖是高通手機(jī)SOC處理器驍龍810芯片,可以看到此芯片主要包括:

通用CPU:ARM Cortex-A57和Cortex-A53,CPU主要用于運(yùn)行Android等智能手機(jī)操作系統(tǒng)以及APP程序;

特定場(chǎng)景處理器:Adreno 430 GPU、Hexagon DSP、ISP、多媒體處理器等,GPU主要用于3D游戲等場(chǎng)景,DSP主要用于傳感器算法處理;

特定功能子系統(tǒng):支持4G LTE通信基帶處理、GPS/北斗等的定位模塊等;

WiFi、USB、藍(lán)牙等連接模塊;

安全處理模塊;

其他一些外圍模塊。

于是,手機(jī)系統(tǒng)就形成了如下表格的分層:

應(yīng)用層 應(yīng)用程序
系統(tǒng)層 操作系統(tǒng)Android/iOS
驅(qū)動(dòng)層 Driver和HAL
硬件層 通用CPU;GPU、DSP、ISP等處理引擎;4G、GPS等子系統(tǒng);WiFi、USB、藍(lán)牙等連接模塊;安全模塊;其他。

2.2.2 GPU的硬件定義

44ac81ea-2d86-11ed-ba43-dac502259ad0.png

GPU由數(shù)以千計(jì)的CUDA核組成,要想對(duì)數(shù)以千計(jì)的CPU內(nèi)核進(jìn)行編程,把這么多核的計(jì)算性能發(fā)揮出來(lái),是非常大的挑戰(zhàn)。

GPU編程有一個(gè)最重要的約束是在同一個(gè)并行線(xiàn)程組里運(yùn)行的是相同的程序,也稱(chēng)之為“齊頭并進(jìn)”。即使如此,GPU的編程難度依然相當(dāng)?shù)拇蟆?/p>

于是,為了提升GPU編程易用性和快捷性的CUDA編程框架應(yīng)運(yùn)而生了。

44bc77b2-2d86-11ed-ba43-dac502259ad0.png

2006年NVIDIA推出了CUDA,這是一個(gè)通用的并行計(jì)算平臺(tái)和編程模型,利用NVIDIA GPU中的并行計(jì)算引擎,以一種比CPU更高效的方式解決許多復(fù)雜的計(jì)算問(wèn)題。CUDA提供了開(kāi)發(fā)者使用C++作為高級(jí)編程語(yǔ)言的軟件環(huán)境。也支持其他語(yǔ)言、應(yīng)用程序編程接口或基于指令的方法,如FORTRAN、DirectCompute、OpenACC。

CUDA是NVIDIA成功的關(guān)鍵,它極大的降低了用戶(hù)基于GPU并行編程的門(mén)檻,在此基礎(chǔ)上,還針對(duì)不同場(chǎng)景構(gòu)建了功能強(qiáng)大的開(kāi)發(fā)庫(kù)和中間件,逐步建立了GPU+CUDA的強(qiáng)大生態(tài)。

2.3 總結(jié)

2.3.1 系統(tǒng)業(yè)務(wù)邏輯的實(shí)現(xiàn)形式,決定了軟硬件定義

三類(lèi)典型的平臺(tái):

CPU,因?yàn)槭峭耆?xì)粒度的指令,可以非常靈活的組織出來(lái)想要的程序。

ASIC,ASIC是把系統(tǒng)的業(yè)務(wù)邏輯固化到硬件中。優(yōu)勢(shì)在于,完全定制ASIC實(shí)現(xiàn)了最精簡(jiǎn)的晶體管資源占用,實(shí)現(xiàn)最極致的性能。當(dāng)一個(gè)系統(tǒng)功能非常固定,并且未來(lái)也不會(huì)有非常頻繁的更新的情況下,ASIC是幾乎最優(yōu)的選擇。

GPU,則介于CPU和ASIC之間,具有一定性能的同時(shí),具有一定的靈活性。

根據(jù)系統(tǒng)業(yè)務(wù)邏輯的具體實(shí)現(xiàn):

CPU是一個(gè)完全靈活無(wú)約束的可編程平臺(tái),系統(tǒng)運(yùn)行于CPU,則說(shuō)系統(tǒng)是完全軟件定義的。也既是說(shuō),可以通過(guò)軟件編程的方式,完全自由的定義自己需要的系統(tǒng)業(yè)務(wù)邏輯。

系統(tǒng)運(yùn)行于A(yíng)SIC,則說(shuō)系統(tǒng)是完全硬件定義的。也即是說(shuō),ASIC的整個(gè)系統(tǒng)邏輯都是硬件寫(xiě)死的,軟件只是一些簡(jiǎn)單的初始化配置和運(yùn)行控制。

GPU,則是介于軟件定義和硬件定義之間。

2.3.2 軟件依賴(lài)于硬件平臺(tái)而存在

44c97e4e-2d86-11ed-ba43-dac502259ad0.png

ASIC實(shí)現(xiàn)的是整個(gè)SOC大系統(tǒng)中的一個(gè)子系統(tǒng),整個(gè)子系統(tǒng)的業(yè)務(wù)邏輯基本上是在A(yíng)SIC模塊硬件中完成(有時(shí)候需要控制面軟件來(lái)控制ASIC模塊的運(yùn)行),因此,其性能相對(duì)CPU和GPU較高。

當(dāng)我們?cè)O(shè)計(jì)一個(gè)ASIC硬件模塊或加速器的時(shí)候,需要提供相應(yīng)的驅(qū)動(dòng),如果是要接入OS等標(biāo)準(zhǔn)接口,還需要有一層HAL層負(fù)責(zé)把不同接口映射到OS的標(biāo)準(zhǔn)接口。應(yīng)用程序根據(jù)ASIC硬件提供的功能接口使用硬件。

44e73880-2d86-11ed-ba43-dac502259ad0.png

GPU平臺(tái),硬件的GPGPU提供接口給CUDA,CUDA再提供接口給應(yīng)用。每一代具體的GPU,給上層提供的是不同的訪(fǎng)問(wèn)接口, CUDA框架有特定的驅(qū)動(dòng)和HAL屏蔽不同GPU的實(shí)現(xiàn)細(xì)節(jié);并且CUDA為了向前兼容和維護(hù)生態(tài),最終映射到標(biāo)準(zhǔn)的庫(kù)。這些標(biāo)準(zhǔn)的庫(kù),提供了標(biāo)準(zhǔn)的接口給上層的CUDA應(yīng)用程序。

即使CUDA映射成標(biāo)準(zhǔn)的庫(kù)API接口,CUDA程序依然是要依賴(lài)于CUDA提供的接口來(lái)設(shè)計(jì)應(yīng)用軟件。

44f35dc2-2d86-11ed-ba43-dac502259ad0.png

總結(jié)一下,軟件依賴(lài)于硬件平臺(tái)存在,體現(xiàn)在兩個(gè)方面:

軟件只能根據(jù)硬件提供的功能來(lái)完成系統(tǒng)實(shí)現(xiàn),系統(tǒng)的業(yè)務(wù)邏輯是在硬件實(shí)現(xiàn);

軟件依賴(lài)硬件提供的接口訪(fǎng)問(wèn)硬件,硬件提供什么樣的接口,軟件就使用什么樣的接口,主動(dòng)權(quán)在硬件。

3 軟件定義硬件

3.1 系統(tǒng)又開(kāi)始從硬件逐步到軟件

4515d6d6-2d86-11ed-ba43-dac502259ad0.png

上一節(jié)我們講到,系統(tǒng)從起始發(fā)展,到逐步穩(wěn)定,系統(tǒng)的運(yùn)行平臺(tái)逐步從CPU演進(jìn)到ASIC。那么,ASIC是不是所有系統(tǒng)最終的運(yùn)行平臺(tái)?

答案是否定的。原因主要如下:

軟件更新?lián)Q代很快。新的熱點(diǎn)技術(shù)層出不窮,已有的技術(shù)領(lǐng)域的更新迭代速度仍在快速增加。硬件的迭代周期過(guò)長(zhǎng),無(wú)法跟上軟件迭代的節(jié)奏。

定制的ASIC設(shè)計(jì),把所有功能都在硬件實(shí)現(xiàn)。在復(fù)雜的云計(jì)算、自動(dòng)駕駛等場(chǎng)景,芯片公司對(duì)用戶(hù)的場(chǎng)景理解可能不夠深入,會(huì)導(dǎo)致設(shè)計(jì)偏差。另一方面,也會(huì)限制用戶(hù)自身的主觀(guān)能動(dòng)性,讓用戶(hù)有想法也很難在A(yíng)SIC平臺(tái)去實(shí)現(xiàn)自己想要的功能。

ASIC因?yàn)楣δ芄潭?,為了適配更多場(chǎng)景,確保芯片的大量出貨,勢(shì)必需要實(shí)現(xiàn)功能超集。例如,某ASIC芯片支持10個(gè)功能,但實(shí)際用戶(hù)場(chǎng)景,都是只需要2-3種功能。這樣,ASIC實(shí)現(xiàn)實(shí)際上也是低效的。并且,這些功能因?yàn)榫o耦合的緣故,系統(tǒng)復(fù)雜度反而更高。

這樣,在許多場(chǎng)景,我們根據(jù)實(shí)際的場(chǎng)景需求,除ASIC,也開(kāi)始選擇DSA、FPGA、GPU甚至CPU等處理引擎。

3.2 軟件定義網(wǎng)絡(luò)

最典型的一個(gè)案例就是SDN(Software Defined Network)的發(fā)展。經(jīng)過(guò)幾十年的發(fā)展,網(wǎng)絡(luò)芯片已經(jīng)演進(jìn)到了完全ASIC的實(shí)現(xiàn),這意味著基于A(yíng)SIC芯片的網(wǎng)絡(luò)設(shè)備其功能是確定的,用戶(hù)只能根據(jù)廠(chǎng)家實(shí)現(xiàn)的確定功能來(lái)使用網(wǎng)絡(luò)設(shè)備。

然而,隨著云計(jì)算、4G/5G移動(dòng)通信等的發(fā)展,新的網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)功能層出不窮,純ASIC實(shí)現(xiàn)的網(wǎng)絡(luò)系統(tǒng)遇到了挑戰(zhàn)。

453c589c-2d86-11ed-ba43-dac502259ad0.png

如上圖所示,IETF(Internet Engineering Task Force,互聯(lián)網(wǎng)工程任務(wù)組)的RFC(Request for Comments,請(qǐng)求意見(jiàn)稿,即網(wǎng)絡(luò)協(xié)議)數(shù)量一直在爆炸式的增長(zhǎng),應(yīng)用于各種新型網(wǎng)絡(luò)場(chǎng)景的新協(xié)議層出不窮。但是,傳統(tǒng)的網(wǎng)絡(luò)處理芯片都是封閉的、特定的設(shè)計(jì),用于特定協(xié)議處理。想要增加新的協(xié)議非常困難,并且對(duì)新協(xié)議的支持受到不同供應(yīng)商的約束。定制的網(wǎng)絡(luò)處理芯片,對(duì)新協(xié)議的支持不足以及缺乏有效的靈活性,這使得要想在網(wǎng)絡(luò)系統(tǒng)增加新的功能非常困難,限制了客戶(hù)的網(wǎng)絡(luò)創(chuàng)新能力。

客戶(hù)希望能夠快速便捷的對(duì)網(wǎng)絡(luò)進(jìn)行配置和管理;客戶(hù)希望能夠快速的進(jìn)行網(wǎng)絡(luò)協(xié)議創(chuàng)新。這樣,ASIC的功能固定越來(lái)越成為網(wǎng)絡(luò)創(chuàng)新的約束。于是,SDN開(kāi)始了兩個(gè)方面的創(chuàng)新:

第一步,網(wǎng)絡(luò)控制面和數(shù)據(jù)面分離,控制面可編程。把網(wǎng)絡(luò)控制面從數(shù)據(jù)面分離處理,形成了控制面可編程的Openflow協(xié)議。

第二步,進(jìn)一步的,網(wǎng)絡(luò)數(shù)據(jù)面也可以編程,用戶(hù)可以定義自己的協(xié)議。形成了數(shù)據(jù)面可編程的P4語(yǔ)言和P4交換機(jī)相繼出現(xiàn)。

3.2.1 運(yùn)行于CPU的軟件虛擬交換機(jī)

454acd1e-2d86-11ed-ba43-dac502259ad0.png

OVS(Open Virtual Switch)是Apache 2許可下的開(kāi)源的軟件交換機(jī)。OVS的目標(biāo)是實(shí)現(xiàn)一個(gè)生產(chǎn)環(huán)境的交換機(jī)平臺(tái),支持標(biāo)準(zhǔn)管理界面,并為程序擴(kuò)展和控制開(kāi)放轉(zhuǎn)發(fā)功能。OVS非常適合在VM環(huán)境中用作虛擬交換機(jī),除了向虛擬網(wǎng)絡(luò)層公開(kāi)標(biāo)準(zhǔn)控制和可見(jiàn)性接口之外,它還旨在支持跨多個(gè)物理服務(wù)器的分發(fā)。OVS支持多種基于Linux的虛擬化平臺(tái),包括Xen、KVM等。

最新的OVS版本支持以下功能:

具有主干和接入端口的標(biāo)準(zhǔn)的802.1Q VLAN模型;

NIC綁定在上行交換機(jī)上,可以支持LACP也可以不支持;

通過(guò)NetFlow,sFlow(R)和鏡像來(lái)增強(qiáng)可視性;

QoS(服務(wù)質(zhì)量)配置以及策略;

Geneve, GRE, VxLAN, STT和LISP隧道;

802.1ag連接故障管理;

OpenFlow 1.0以及眾多擴(kuò)展;

支持C和Python的事務(wù)配置數(shù)據(jù)庫(kù);

基于Linux內(nèi)核的高性能轉(zhuǎn)發(fā)模塊。

如圖,OVS答題可以分為三層:

管理層,即:ovs-dpctl、ovs-vsctl、ovs-ofctl、ovsdb-tool。

業(yè)務(wù)邏輯層,即:vswitchd、ovsdb。

數(shù)據(jù)處理層,即:datapath。

3.2.2 數(shù)據(jù)面可編程的網(wǎng)絡(luò)交換機(jī)DSA

4559574e-2d86-11ed-ba43-dac502259ad0.png

上圖為PISA(Protocol Independent Switch Architecture,協(xié)議無(wú)關(guān)的交換架構(gòu))架構(gòu)交換機(jī)的流水線(xiàn),PISA是一種支持P4數(shù)據(jù)面可編程包處理的流水線(xiàn)引擎架構(gòu),通過(guò)可編程的解析器、多階段的可編程的匹配動(dòng)作以及可編程的逆解析器組成的流水線(xiàn),來(lái)實(shí)現(xiàn)數(shù)據(jù)面的編程。這樣可以通過(guò)編寫(xiě)P4程序,下載到處理器流水線(xiàn),可以非常方便的支持新協(xié)議的處理。

456bf84a-2d86-11ed-ba43-dac502259ad0.png

當(dāng)實(shí)現(xiàn)了完全可編程的流水線(xiàn)之后,在P4工具鏈的支持下,就可以通過(guò)P4編程的方式來(lái)實(shí)現(xiàn)自定義的流水線(xiàn),來(lái)達(dá)到對(duì)自定義協(xié)議的支持。

如圖所示,P4定義的Parser程序會(huì)被映射到可編程的解析器,數(shù)據(jù)、包頭定義、表以及控制流會(huì)被映射到多個(gè)匹配動(dòng)作階段。圖 6.25中把L2處理、IPv4處理、IPv6處理以及訪(fǎng)問(wèn)控制處理分別映射到不同的匹配動(dòng)作處理單元進(jìn)行串行或并行的處理,來(lái)實(shí)現(xiàn)完整的支持各種協(xié)議的網(wǎng)絡(luò)包處理。

3.3 軟件定義接口:Virtio

Virtio旨在提供一套高效的、良好維護(hù)的通用的Linux驅(qū)動(dòng),實(shí)現(xiàn)虛擬機(jī)應(yīng)用和不同Hypervisor實(shí)現(xiàn)的模擬設(shè)備之間標(biāo)準(zhǔn)化的接口。Virtio作為類(lèi)虛擬化的I/O設(shè)備接口,廣泛應(yīng)用于云計(jì)算虛擬化場(chǎng)景,某種程度上,Virtio已經(jīng)成為事實(shí)上的I/O設(shè)備的接口標(biāo)準(zhǔn)。

45792740-2d86-11ed-ba43-dac502259ad0.png

因?yàn)檐浖x了標(biāo)準(zhǔn)化的Virtio接口,因此,如上圖所示,在SmartNIC和DPU中,offload虛擬化和Workload的最關(guān)鍵部分就是要把Virtio硬件化。

如上圖所示,站在虛擬化角度,把Virtio卸載,可以看做是從軟件到硬件。但是,如果從硬件接口的角度,從一個(gè)完全硬件定義的接口(例如NV自定義的SR-IOV接口)過(guò)渡到軟件定義的接口(Virtio接口),則可以算是從硬件到軟件。

擴(kuò)展閱讀:DPU和CPU互聯(lián)的接口之爭(zhēng):Virtio還是SR-IOV?(NVIDIA白皮書(shū))

3.4 可跨平臺(tái)的軟件定義:Intel oneAPI

4587804c-2d86-11ed-ba43-dac502259ad0.png

英特爾oneAPI是一個(gè)開(kāi)放、可訪(fǎng)問(wèn)且基于標(biāo)準(zhǔn)的編程系統(tǒng),支持開(kāi)發(fā)人員跨多種硬件架構(gòu)參與和創(chuàng)新,包括 CPU、GPU、FPGA、AI 加速器等。這些處理引擎具有非常不同的屬性,因此用于各種不同的處理——oneAPI試圖通過(guò)將它們統(tǒng)一在同一個(gè)模型下來(lái)簡(jiǎn)化這些操作。

即使在今天,開(kāi)發(fā)人員面臨的一個(gè)持續(xù)問(wèn)題是我們?nèi)找鏀?shù)字化的世界提供的編程環(huán)境的數(shù)量。不同的編程環(huán)境使代碼重用等節(jié)省時(shí)間的策略失效,并成為軟件開(kāi)發(fā)人員的真正障礙。作為其軟件優(yōu)先戰(zhàn)略的一部分,英特爾在 2019 年的超級(jí)計(jì)算活動(dòng)中推出了oneAPI。該模型標(biāo)志著英特爾的雄心是擁有統(tǒng)一的編程框架作為限制專(zhuān)有編程平臺(tái)的解決方案。oneAPI 使開(kāi)發(fā)人員能夠在不厭倦使用不同語(yǔ)言、工具、庫(kù)和不同硬件的情況下工作。

Intel oneAPI可以實(shí)現(xiàn):設(shè)計(jì)一套應(yīng)用,根據(jù)需要,非常方便的把程序映射到CPU、GPU、FPGA或者AI-DSA/其他DSA等不同的處理器平臺(tái)。

3.5 擴(kuò)展:軟件定義“一切”

軟件定義是一個(gè)非常宏大并且非常熱點(diǎn)的話(huà)題,除了軟件定義網(wǎng)絡(luò)之外,還有很多軟件定義的熱點(diǎn)領(lǐng)域:

軟件定義存儲(chǔ),是一種能將存儲(chǔ)軟件與硬件分隔開(kāi)的存儲(chǔ)架構(gòu)。不同于傳統(tǒng)的網(wǎng)絡(luò)附加存儲(chǔ)(NAS)或存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)系統(tǒng),SDS一般都在行業(yè)標(biāo)準(zhǔn)系統(tǒng)上執(zhí)行,從而消除了軟件對(duì)于專(zhuān)有硬件的依賴(lài)性。

軟件定義數(shù)據(jù)中心,把數(shù)據(jù)中心基礎(chǔ)設(shè)施通過(guò)抽象化、資源池化以及自動(dòng)化來(lái)實(shí)現(xiàn)基礎(chǔ)設(shè)施即服務(wù)(IAAS)。軟件定義的基礎(chǔ)設(shè)施可讓IT管理員使用軟件定義的模板和API輕松配置和管理物理基礎(chǔ)設(shè)施,以定義基礎(chǔ)設(shè)施配置和生命周期運(yùn)維,并實(shí)現(xiàn)自動(dòng)化。

軟件定義無(wú)線(xiàn)電,是一種無(wú)線(xiàn)電廣播通信技術(shù),它基于軟件定義的無(wú)線(xiàn)通信協(xié)議而非通過(guò)硬連線(xiàn)實(shí)現(xiàn)。頻帶、空中接口協(xié)議和功能可通過(guò)軟件下載和更新來(lái)升級(jí),而不用完全更換硬件。

軟件定義汽車(chē),通過(guò)軟件實(shí)現(xiàn)新的車(chē)載體驗(yàn)和功能,并通過(guò)無(wú)線(xiàn) (OTA) 提供更新和服務(wù)。從而使得汽車(chē)從高度機(jī)電一體化的機(jī)械終端,逐步轉(zhuǎn)變?yōu)橐粋€(gè)智能化、可拓展、可持續(xù)迭代升級(jí)的移動(dòng)電子終端。

軟件定義存儲(chǔ)和軟件定義無(wú)線(xiàn)電還主要是技術(shù)的范疇,而軟件定義數(shù)據(jù)中心和軟件定義汽車(chē),則是把軟件定義的思路和理念更加深化和拓展,應(yīng)用于更廣闊的領(lǐng)域。

4 軟硬件相互定義

4.1 軟件定義也存在一些挑戰(zhàn)

4.1.1基于CPU的摩爾定律失效

45b30a14-2d86-11ed-ba43-dac502259ad0.png

軟件定義XX,最本質(zhì)的做法還是把整個(gè)系統(tǒng)重新從硬件實(shí)現(xiàn)變成偏軟件的實(shí)現(xiàn)。隨著這勢(shì)必對(duì)CPU的性能提出了更高的要求。

然而,如上圖所示,隨著CPU的性能提升逐漸停滯,已經(jīng)無(wú)法滿(mǎn)足數(shù)字經(jīng)濟(jì)時(shí)代對(duì)算力持續(xù)提升的要求。

因此,還是要再輪回,“硬件”加速。

4.1.2 DSA只解決了部分問(wèn)題

45bfa8fa-2d86-11ed-ba43-dac502259ad0.png

支持P4的網(wǎng)絡(luò)數(shù)據(jù)面可編程引擎,屬于DSA的范疇,專(zhuān)門(mén)用于網(wǎng)絡(luò)包處理的加速,性能跟ASIC相當(dāng),但其具有非常好的軟件可編程能力。

標(biāo)準(zhǔn)的P4程序,有P4前端編譯器把P4程序編譯成一個(gè)中間態(tài)的程序(類(lèi)似Java編譯器)。然后特定硬件實(shí)現(xiàn)的后端編譯器負(fù)責(zé)把中間態(tài)的程序映射到具體的硬件實(shí)現(xiàn)(有點(diǎn)像Java虛擬機(jī),但P4是靜態(tài))。

P4 DSA引擎預(yù)先配置好P4程序之后,P4-DSA就成了執(zhí)行特定協(xié)議處理的網(wǎng)絡(luò)包處理引擎。然后需要和已有的網(wǎng)絡(luò)程序進(jìn)行適配,實(shí)現(xiàn)網(wǎng)絡(luò)任務(wù)的數(shù)據(jù)面offload。

P4的整個(gè)系統(tǒng)棧跟之前CPU、GPU、ASIC最大的不同在于先定義了標(biāo)準(zhǔn)的P4,然后各廠(chǎng)家根據(jù)標(biāo)準(zhǔn)的P4去實(shí)現(xiàn)各自不同的P4處理引擎。

45cb73ce-2d86-11ed-ba43-dac502259ad0.png

CPU雖然現(xiàn)在有三大架構(gòu)(x86、ARM和RISC-v),但就具體的架構(gòu)而言,其定義的ISA是非常明確的。特別是在RISC-v生態(tài)下,大家遵循一致的ISA,已有的程序可以非常方便的在不同Vendor的RISC-v CPU上運(yùn)行。

但是在DSA領(lǐng)域,目前還看不到這一點(diǎn)。

可以說(shuō),當(dāng)前所有的DSA,包括P4 DSA,都還沒(méi)有實(shí)現(xiàn)接口的軟件定義,接口依然是硬件定義的,可以說(shuō)是不完全的軟件定義XX。

4.2 更理想的跨平臺(tái)框架

45e5df84-2d86-11ed-ba43-dac502259ad0.png

我們把oneAPI模型框架再增強(qiáng)一下,如上圖所示。這樣,跨平臺(tái),不僅僅是在CPU、GPU、FPGA和DSA的跨平臺(tái),更在于是不同Vendor的不同處理器的跨平臺(tái)。

4.3 接口的軟硬件互相定義

45f6ce0c-2d86-11ed-ba43-dac502259ad0.png

不管是軟件定義硬件還是硬件定義軟件,接口(這里接口是泛指,ISA是接口,IO設(shè)備的數(shù)據(jù)訪(fǎng)問(wèn)接口也是接口,GPU等加速器呈現(xiàn)的訪(fǎng)問(wèn)接口也是接口)都是非常關(guān)鍵的角色,因?yàn)槭峭ㄟ^(guò)接口給對(duì)方呈現(xiàn)自己的功能和如何訪(fǎng)問(wèn)。

我們來(lái)總結(jié)一下軟硬件之間的接口類(lèi)型:

第一類(lèi),定義好硬件,軟件依賴(lài)于硬件而定義。通常都是這樣,CPU、GPU、ASIC等等,都是這種接口定義。

第二類(lèi),軟件定義的情況下,現(xiàn)有軟件,硬件設(shè)計(jì)要進(jìn)行適配。比如,Virtio的硬化,比如要兼容OVS的TC-Flower/RTE-flow接口等。

第三類(lèi),軟件定義和硬件定義各自的接口,然后中間通過(guò)轉(zhuǎn)換層適配。比如,通過(guò)HAL層把硬件驅(qū)動(dòng)適配到OS;例如高級(jí)語(yǔ)言程序通過(guò)編譯器生產(chǎn)特定處理器架構(gòu)的Binary程序。

第四類(lèi),軟件定義,并且跨越軟硬件的接口也是軟件定義的,但是在硬件里有一層轉(zhuǎn)換層。比如,前面提到的Virtio接口,在很多解決方案里的具體實(shí)現(xiàn)是在硬件側(cè)的嵌入式軟件里,這樣,軟件模擬的Virtio成為性能的瓶頸。

第五類(lèi),軟件定義,并且跨越軟硬件的接口也是軟件定義的,硬件直接實(shí)現(xiàn)的軟件定義接口。原生支持軟件定義接口。硬件不僅僅要實(shí)現(xiàn)自己的編程范式,還需要把編程范式映射到標(biāo)準(zhǔn)接口的能力。

4.4 總結(jié)

“硬件定義軟件”是傳統(tǒng)的思路。新的技術(shù)發(fā)展很快,已有的技術(shù)仍在快速迭代;而硬件系統(tǒng)越來(lái)越復(fù)雜,更新迭代也越來(lái)越慢。系統(tǒng)如果是硬件為主,軟件依賴(lài)于硬件。則勢(shì)必限制技術(shù)的快速發(fā)展。

“軟件定義硬件”代表了一種趨勢(shì):要從系統(tǒng)層次,主動(dòng)的來(lái)定義個(gè)體的硬件。但“軟件定義硬件”的描述更多的強(qiáng)調(diào)系統(tǒng),容易忽略個(gè)體的特點(diǎn)。站在系統(tǒng)層面,可以“站得高,看得遠(yuǎn)”,代表了宏觀(guān)的、整體的思考,能夠更好的資源統(tǒng)籌,更好的定義系統(tǒng)功能。而站在個(gè)體的層面,個(gè)體是本源,代表了事物本質(zhì)的特征。事物受客觀(guān)規(guī)律的約束,具有特定的發(fā)展規(guī)律。并且,個(gè)體具有差異化,如何更好的體現(xiàn)這些差異化優(yōu)勢(shì),是系統(tǒng)持續(xù)不斷創(chuàng)新的本源驅(qū)動(dòng)。

“軟件和硬件相互定義”,可以更好的協(xié)同系統(tǒng)和個(gè)體的關(guān)系,既能夠?qū)崿F(xiàn)軟件定義的宏觀(guān)統(tǒng)籌,又能夠兼顧硬件個(gè)體的特點(diǎn)和優(yōu)勢(shì),把兩者有機(jī)的結(jié)合起來(lái),實(shí)現(xiàn)軟硬件更加協(xié)同的更優(yōu)的系統(tǒng)。



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19259

    瀏覽量

    229651
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10854

    瀏覽量

    211578
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1623

    瀏覽量

    49108

原文標(biāo)題:硬件定義軟件?還是,軟件定義硬件?

文章出處:【微信號(hào):阿寶1990,微信公眾號(hào):阿寶1990】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    智能駕駛加速軟件定義汽車(chē)步伐?

    以往的硬件制造逐步向軟件賦能轉(zhuǎn)變。隨著“軟件定義汽車(chē)”(Software Defined Vehicle, SDV)的概念深入人心,汽車(chē)制造商通過(guò)
    的頭像 發(fā)表于 11-25 11:01 ?259次閱讀
    智能駕駛加速<b class='flag-5'>軟件</b><b class='flag-5'>定義</b>汽車(chē)步伐?

    芯片設(shè)計(jì)優(yōu)化之路:從IP到軟件定義系統(tǒng)

    隨著對(duì)計(jì)算能力、自主系統(tǒng)和下一代架構(gòu)的需求持續(xù)攀升,半導(dǎo)體行業(yè)正經(jīng)歷著前所未有的向萬(wàn)物智能轉(zhuǎn)變的趨勢(shì)。由此,芯片的復(fù)雜程度以及系統(tǒng)和產(chǎn)品軟件含量正以驚人的速度呈指數(shù)級(jí)增長(zhǎng)。 以汽車(chē)
    的頭像 發(fā)表于 11-24 14:51 ?435次閱讀

    軟件定義車(chē)輛加速推進(jìn)汽車(chē)電子技術(shù)的未來(lái)發(fā)展

    制造商轉(zhuǎn)向軟件定義車(chē)輛和區(qū)域架構(gòu)。通過(guò)集中管理軟件并將硬件軟件分離,軟件
    的頭像 發(fā)表于 11-17 15:17 ?228次閱讀
    <b class='flag-5'>軟件</b><b class='flag-5'>定義</b>車(chē)輛加速推進(jìn)汽車(chē)電子技術(shù)的未來(lái)發(fā)展

    emc軟件定義存儲(chǔ)的未來(lái)發(fā)展

    隨著數(shù)字化轉(zhuǎn)型的加速,數(shù)據(jù)存儲(chǔ)需求日益增長(zhǎng)。EMC(易安信)作為全球領(lǐng)先的數(shù)據(jù)存儲(chǔ)解決方案提供商,其軟件定義存儲(chǔ)(SDS)技術(shù)在滿(mǎn)足企業(yè)存儲(chǔ)需求方面發(fā)揮著重要作用。 一、技術(shù)發(fā)展 集成人工智能和機(jī)器
    的頭像 發(fā)表于 11-01 15:28 ?363次閱讀

    華納云:如何理解軟件定義網(wǎng)絡(luò)?和傳統(tǒng)網(wǎng)絡(luò)相比有哪些優(yōu)勢(shì)?

    概述 軟件定義網(wǎng)絡(luò)(SDN)是一種將網(wǎng)絡(luò)資源抽象到虛擬化系統(tǒng)的 IT 基礎(chǔ)架構(gòu)方法。這被稱(chēng)為網(wǎng)絡(luò)虛擬化。SDN 將網(wǎng)絡(luò)轉(zhuǎn)發(fā)功能與網(wǎng)絡(luò)控制功能分離開(kāi)來(lái),目的是創(chuàng)建可集中管理且可編程的網(wǎng)
    的頭像 發(fā)表于 09-26 16:03 ?483次閱讀
    華納云:如何理解<b class='flag-5'>軟件</b><b class='flag-5'>定義</b>網(wǎng)絡(luò)?和傳統(tǒng)網(wǎng)絡(luò)相比有哪些優(yōu)勢(shì)?

    軟件定義汽車(chē)與AI驅(qū)動(dòng)的車(chē)載技術(shù)革新

    在當(dāng)今汽車(chē)產(chǎn)業(yè),軟件定義汽車(chē)(SDV)與人工智能(AI)的深度融合正引領(lǐng)著車(chē)載技術(shù)的飛速發(fā)展。眾多汽車(chē)制造商已明確戰(zhàn)略藍(lán)圖,致力于在全新架構(gòu)上構(gòu)建下一代車(chē)輛,旨在簡(jiǎn)化硬件
    的頭像 發(fā)表于 09-26 15:08 ?1629次閱讀

    CPU的定義和功能

    CPU(Central Processing Unit,中央處理器)作為計(jì)算機(jī)系統(tǒng)的核心部件,其功能和作用至關(guān)重要。以下是對(duì)CPU功能的詳細(xì)解析,內(nèi)容將涵蓋CPU的基本定義、主要功能、組成部分、性能指標(biāo)以及工作流程等方面,力求全面而深入地
    的頭像 發(fā)表于 09-10 11:45 ?3901次閱讀

    使用MATLAB、Simulink和Polyspace加速軟件定義汽車(chē)開(kāi)發(fā)

    開(kāi)發(fā)軟件定義汽車(chē) (SDV) 時(shí),開(kāi)發(fā)團(tuán)隊(duì)必須具備新的能力,例如進(jìn)行連續(xù)的軟件發(fā)布,減少軟件更改的交付周期以及盡可能減少部署失敗。同時(shí),平臺(tái)團(tuán)隊(duì)需要為車(chē)載計(jì)算機(jī)和區(qū)域控制器創(chuàng)建新
    的頭像 發(fā)表于 09-05 09:57 ?433次閱讀
    使用MATLAB、Simulink和Polyspace加速<b class='flag-5'>軟件</b><b class='flag-5'>定義</b>汽車(chē)開(kāi)發(fā)

    SPI總線(xiàn)的定義和特點(diǎn)

    領(lǐng)域得到了廣泛的應(yīng)用,尤其是在微控制器(MCU)與外部設(shè)備(如傳感器、存儲(chǔ)器等)之間的數(shù)據(jù)傳輸扮演著重要角色。以下將詳細(xì)闡述SPI總線(xiàn)的定義、特點(diǎn)及其工作原理。
    的頭像 發(fā)表于 09-03 14:05 ?777次閱讀

    基于MSPM0 MCU的軟件定義玻璃LCD解決方案

    電子發(fā)燒友網(wǎng)站提供《基于MSPM0 MCU的軟件定義玻璃LCD解決方案.pdf》資料免費(fèi)下載
    發(fā)表于 08-31 10:11 ?0次下載
    基于MSPM0 MCU的<b class='flag-5'>軟件</b><b class='flag-5'>定義</b>玻璃LCD解決方案

    e203自定義指令硬件模塊設(shè)計(jì),在vivado硬件里自定義指令識(shí)別為非法指令怎么解決?

    e203自定義指令硬件模塊設(shè)計(jì),修改內(nèi)核,綜合沒(méi)錯(cuò)誤,軟件也修改工具鏈通過(guò)并產(chǎn)生verilog文件,但在vivado硬件里自定義指令識(shí)別為非
    發(fā)表于 05-28 06:40

    關(guān)于軟件定義汽車(chē),麥格納怎么看

    ? 隨著智能化、網(wǎng)聯(lián)化的深入發(fā)展,車(chē)輛的核心競(jìng)爭(zhēng)力已經(jīng)不再停留在傳統(tǒng)的硬件層面,軟件賦予了汽車(chē)更高的靈活性和可升級(jí)性,軟件賦能車(chē)輛成為大勢(shì)所趨。 近日,在“黑科技來(lái)了”直播活動(dòng),來(lái)自
    的頭像 發(fā)表于 04-11 10:43 ?641次閱讀

    軟件定義存儲(chǔ),企業(yè)級(jí)SSD扮演了什么角色?

    、彈性地應(yīng)對(duì)每一次數(shù)據(jù)洪峰的沖擊,可靠的數(shù)據(jù)存儲(chǔ)架構(gòu)變得尤為關(guān)鍵。在諸多解決方案,軟件定義存儲(chǔ)很快受到了歡迎。 軟件定義存儲(chǔ)是一種軟
    的頭像 發(fā)表于 04-10 16:31 ?426次閱讀
    <b class='flag-5'>軟件</b><b class='flag-5'>定義</b>存儲(chǔ)<b class='flag-5'>中</b>,企業(yè)級(jí)SSD扮演了什么角色?

    新思科技攜手AWS加速軟件定義汽車(chē)的驗(yàn)證

    流媒體視頻、聲控操作、功能多樣化的APP......以前屬于智能手機(jī)的功能,在軟件定義汽車(chē)(SDV)時(shí)代,也可以同樣出現(xiàn)在汽車(chē)上。汽車(chē)早就已經(jīng)不單是四個(gè)輪子的交通工具了,它更是搭載先進(jìn)軟件的智能機(jī)器
    的頭像 發(fā)表于 01-17 09:15 ?805次閱讀

    ?簡(jiǎn)單認(rèn)識(shí)軟件定義存儲(chǔ)(SDS)

    ?軟件定義存儲(chǔ)(SDS)即利用分布式和虛擬化等軟件技術(shù),將存儲(chǔ)硬件資源按需進(jìn)行分割和重新組合,達(dá)到靈活按需拓展、提高存儲(chǔ)利用率等目標(biāo)。在數(shù)字經(jīng)濟(jì)發(fā)展背景下,SDS高度符合數(shù)據(jù)基礎(chǔ)設(shè)施發(fā)
    的頭像 發(fā)表于 01-02 11:07 ?993次閱讀
    ?簡(jiǎn)單認(rèn)識(shí)<b class='flag-5'>軟件</b><b class='flag-5'>定義</b>存儲(chǔ)(SDS)
    RM新时代网站-首页