PG电子官网硬件界说软件?软件界说硬件?

 常见问题     |      2024-06-26 22:20:41    |      小编

  职分正在CPU运转,则界说为软件运转;职分正在协统治器、GPU、FPGA或ASIC运转,则界说为硬件加快运转。

  软件界说是今朝非凡热点的话题,例如软件界说汇集、软件界说数据中央、软件界说汽车等等。软件界说的领域非凡大,不只仅涉及真相层的软硬件技巧,也涉及到编造的运转解决、监控、更新等,以至还涉及到贸易上的极少考量。

  编造是由软件和硬件构成。当咱们说软件界说XX的工夫,实在说的是软件界说XX编造。本文篇幅有限,从最底层的软件和硬件相干的技巧以及两者之间的互相相干和影响来分析编造中软件界说和硬件界说。

  当一个编造的首要交易逻辑是正在软件中竣工;编造中没有硬件引擎,或者硬件引擎是软件可编程的;硬件引擎遵照软件编程的逻辑推行操作。

  CPU是最矫捷的,来因正在于运转于CPU指令都是最根基粒度的加减乘除表加极少访存及掌握类指令,就像积木块相似,咱们可能肆意组合出咱们念要的各式形状的效用。

  良多人会以为,CPU可能主动的推行非凡庞大的筹算机轨范,这是CPU最大的价格所正在。实在否则,CPU最大的价格正在于供应并类型了法式化的指令集,使得软件和硬件从此解耦:

  硬件工程师不须要闭怀场景,只眷注于通过各式“无所不消其极”的式样,火速的晋升CPU的职能。

  而软件工程师,则齐全不消思索硬件的细节,只眷注于轨范自身。然后有了高级编程发言/编译器、操作编造以及各式编造框架/库的声援,构修起一个强大的软件生态超等帝国。

  正在桌面和效劳器范围,X86是最通行的统治器架构。而正在手机等转移端,ARM则攻陷绝对的统治位子。开源RISC-v适应他日技巧和贸易发扬的趋向,其正在MCU范围一经攻陷首本位子,而且正在向桌面和效劳器范围倡导冲锋。

  软件的强大生态,是构修正在特定的CPU架构之上的。然而,咱们寻常来说,CPU举动指令足够细粒度,筹算足够通用的筹算平台,其是软件和硬件解耦的:

  一方面,特定架构下,每种CPU架构“根基”担保了向前兼容,如许可能以为,正在特定架构,软件硬件齐全解耦各自觉展。

  另一方面,(理念状况下,)OS、编译器等越来越成熟之后,不妨担保,同样的高级发言轨范,正在差异的CPU架构平台,其运转手脚是同等吧。如许就可能离开的确的CPU架构凭条,构修齐全无区另表软件生态。

  怒放性。RISC-v最大的特色是其指令集开源,如许任何厂家就可能遵循本身情景安排本身的RISC-v CPU,然后多人共修一套怒放的生态,共生共荣。

  法式化。法式化是最环节的价格。一共的架构(x86/ARM/RISC-v)都可能以为是法式的,但由于RISC-v的怒放性,其法式化他日的价格就会非凡大。上面说过,“理念”情景下,咱们可能把轨范无缝的从一个平台迁徙到其他平台,但本质上硬件,很多贸易的软件,咱们并不行拿到源码。并且,很多工夫,极少细节题目,都恐怕导致平台迁徙败北。这种迁徙对用户来说好坏常大的挑拨和危害。当法式的RISC-v足够通行之后,基于RISC-v构修的全体生态会迸发强盛的性命力。

  其他。如RISC-v没有史书包袱,指令集更高效;更矫捷的扩展本领(确保不碎片化);等等。

  CPU和软件轨范的交互接口是指令集,是最细粒度的加减乘除等指令,像积木块相似,肆意组合出肆意念要的各式轨范。

  软件和硬件并行发扬。CPU,通过ISA,“完善”竣工了软件和硬件的法式化解耦。是以,可能以为,正在这个工夫,不存正在硬件界说软件或软件界说硬件,软件和硬件各自并行不悖的火速发扬。

  硬件界说软件。基于CPU构修的强大软件生态,这可能算作是“硬件界说软件”:先有CPU硬件,再有编译器,再有OS、使用等。

  软件界说编造。然而,站正在软件的角度,一共的编造竣工均可能通过编程竣工,根底不须要思索运转的CPU平台的“差极少”,是以又可能看做基于CPU运转的编造是“软件界说”的。

  一个编造,肯定进程前期火速迭代,后期逐步褂讪的历程。是以,编造运转的统治器平台采用也肯定有如下的极少次序:

  CPU通用软件平台:当一个新的使用崭露的工夫,最早崭露的寻常是软件竣工。一来竣工所须要的价钱较少,可能火速竣工念法;二来CPU所供应的矫捷性,不思索职能的情景下,使之简直可能统治任何场景的职分。

  协统治器扩展指令加快平台:跟着技巧的演进,对职能提出了极少请求。这个工夫,可能针对极少比拟打发CPU资源的轨范实行肯定的编程和编译优化。

  GPU向量及并行加快平台:更进一步的,技巧寻常使用,而且咱们能从算法中寻找到更多的并行性。这个工夫,咱们就可能找极少专用的统治器,如GPU、DSP、NPU等,来统治。通过特定的并行优化以及声援向量(SIMD)、多指令并行(MIMD/VLIW)等庞大指令编译优化的式样,深度的优化职能。

  FPGA硬件可编程加快平台:跟着技巧越来越成熟,使用的范畴越来越大。也越来越打发资源。这个工夫,咱们值得花费更多的精神,提炼出庞大方非凡高的算法(或者可能算作一个非凡庞大的“指令”)然后通过硬件逻辑竣工。再通过FPGA硬件可编程的式样火速落地。

  ASIC定造加快平台:再进一步的,技巧加倍成熟褂讪,使用范畴足够强大,这个工夫就非凡有需要为此场景定造开荒ASIC,来抵达最优的职能、最低的本钱、最幼的功耗。

  当须要面向一个新范围开荒的工夫,要火速竣工,或者使用的场景不敷确定,须要硬件平台有足够多的合适性,这些情景应用CPU比拟合意。当须要极致的效能,而且本钱敏锐、功耗敏锐,并且范畴足够强大,那么采用定造开荒ASIC会更合意极少。即使折中的,须要有肯定的矫捷性,又要担保肯定的职能加快,而且使用有足够的并行度,这个工夫GPU则更合意极少。

  从软件到硬件的一个经典的例子即是比特币,其激烈而火速的实行了从CPU到ASIC的过渡。比特币应用的技巧区块链核默算法是SHA-256,它正在各个平台上的职能比较如下:

  CPU:最早先的工夫,多人应用CPU挖矿,一台高端个体电脑,统治速率或许20MH/s(H/s, Hash per second);

  GPU:厥后有人用GPU加快挖矿,SHA-256可能络续拆分成日常的算术逻辑运算,而GPU拥有超等多的算术逻辑运算单位,一个高端显卡的统治速率可能抵达200MH/s;

  FPGA:再厥后崭露了定造SHA-256算法硬件逻辑的FPGA加快卡来挖矿,悉心安排的定造电途的FPGA,可能使运算速率抵达1GH/s;

  ASIC:而比特大陆公司2015年发表的ASIC矿机芯片BM1385,其职能抵达单颗芯片算力可达32.5GH/s。

  上述CPU、GPU、FPGA职能数据来自于《区块链:技巧驱动金融》,数据为2013年前后的职能数据。

  SOC是CPU、GPU、各式加快统治引擎(ASIC)以及接口模块(ASIC)的集成。

  智内行机应用电池供电,同时又要供应足够强盛的职能。这样苛刻的使用条目,使得智内行机统治器凡是都选用集成度非凡高的SOC。上图是高通手机SOC统治器骁龙810芯片,可能看到此芯片首要包罗:

  特定场景统治器:Adreno 430 GPU、Hexagon DSP、ISP、多媒体统治器等,GPU首要用于3D游戏等场景,DSP首要用于传感器算法统治;

  GPU由数以千计的CUDA核构成,要念对数以千计的CPU内核实行编程,把这么多核的筹算职能表现出来,好坏常大的挑拨。

  GPU编程有一个最首要的管造是正在统一个并行线程组里运转的是相似的轨范,也称之为“齐头并进”。尽管这样,GPU的编程难度照旧相当的大。

  2006年NVIDIA推出了CUDA,这是一个通用的并行筹算平台和编程模子,行使NVIDIA GPU中的并行筹算引擎,以一种比CPU更高效的式样治理很多庞大的筹算题目。CUDA供应了开荒者应用C++举动高级编程发言的软件情况。也声援其他发言、使用轨范编程接口或基于指令的步骤,如FORTRAN、DirectCompute、OpenACC。

  CUDA是NVIDIA得胜的环节,它极大的消浸了用户基于GPU并行编程的门槛,正在此根蒂上,还针对差异场景构修了效用强盛的开荒库和中心件,渐渐确立了GPU+CUDA的强盛生态。

  ASIC,ASIC是把编造的交易逻辑固化到硬件中。上风正在于,齐全定造ASIC竣工了最精简的晶体管资源占用,竣工最极致的职能。当一个编造效用非凡固定,而且他日也不会有非凡频仍的更新的情景下,ASIC是简直最优的采用。

  GPU,则介于CPU和ASIC之间,拥有肯定职能的同时,拥有肯定的矫捷性。

  CPU是一个齐全矫捷无管造的可编程平台,编造运转于CPU,则说编造是齐全软件界说的。也既是说,可能通过软件编程的式样,齐全自正在的界说本身须要的编造交易逻辑。

  编造运转于ASIC,则说编造是齐全硬件界说的。也即是说,ASIC的全体编造逻辑都是硬件写死的,软件只是极少简易的初始化设备和运转掌握。

  ASIC竣工的是全体SOC大编造中的一个子编造,全体子编造的交易逻辑根基上是正在ASIC模块硬件中实行(有工夫须要掌握面软件来掌握ASIC模块的运转),是以,其职能相对CPU和GPU较高。

  当咱们安排一个ASIC硬件模块或加快器的工夫,须要供应相应的驱动,即使是要接入OS等法式接口,还须要有一层HAL层担负把差异接口映照到OS的法式接口。使用轨范遵循ASIC硬件供应的效用接口应用硬件。

  GPU平台,硬件的GPGPU供应接口给CUDA,CUDA再供应接口给使用。每一代的确的GPU,给上层供应的是差异的访谒接口, CUDA框架有特定的驱动和HAL屏障差异GPU的竣工细节;而且CUDA为了向前兼容和爱护生态硬件,最终映照到法式的库。这些法式的库,供应了法式的接口给上层的CUDA使用轨范。

  尽管CUDA映照成法式的库API接口,CUDA轨范照旧是要依赖于CUDA供应的接口来安排使用软件。

  软件依赖硬件供应的接口访谒硬件,硬件供应什么样的接口,软件就应用什么样的接口,主动权正在硬件。

  上一节咱们讲到,编造从肇端发扬,到渐渐褂讪,编造的运转平台渐渐从CPU演进到ASIC。那么,ASIC是不是一共编造最终的运转平台?

  软件更新换代很疾。新的热门技巧司空见惯,已有的技巧范围的更新迭代速率仍正在火速增多。硬件的迭代周期过长,无法跟上软件迭代的节拍。

  定造的ASIC安排,把一共效用都正在硬件竣工。正在庞大的云筹算主动驾驶等场景PG电子官网,芯片公司对用户的场景体会恐怕不敷长远,会导致安排缺点。另一方面,也会控造用户本身的主观能动性,让用户有念法也很难正在ASIC平台去竣工本身念要的效用。

  ASIC由于效用固定,为了适配更多场景,确保芯片的多量出货,势务必要竣工效用超集。比方,某ASIC芯片声援10个效用,但本质用户场景,都是只须要2-3种效用。如许,ASIC实实际际上也是低效的。而且,这些效用由于紧耦合的源由,编造庞大方反而更高。

  如许,正在很多场景,咱们遵循本质的场景需求,除ASIC,也早先采用DSA、FPGA、GPU以至CPU等统治引擎。

  最类型的一个案例即是SDN(Software Defined Network)的发扬。进程几十年的发扬,汇集芯片一经演进到了齐全ASIC的竣工,这意味着基于ASIC芯片的汇集修造其效用是确定的,用户只可遵循厂家竣工实在定效用来应用汇集修造。

  然而,跟着云筹算、4G/5G转移通讯等的发扬,新的汇集赞同和汇集效用司空见惯,纯ASIC竣工的汇集编造遭遇了挑拨。

  如上图所示,IETF(Internet Engineering Task Force,互联网工程职分组)的RFC(Request for Comments,吁请主张稿,即汇集赞同)数目平素正在爆炸式的拉长,使用于各式新型汇集场景的新赞同司空见惯。然而,古板的汇集统治芯片都是封锁的、特定的安排,用于特定赞同统治。念要增多新的赞同非凡艰苦,而且对新赞同的声援受到差异供应商的管造。定造的汇集统治芯片,对新赞同的声援亏折以及缺乏有用的矫捷性,这使得要念正在汇集编造增多新的效用非凡艰苦,控造了客户的汇集革新本领。

  客户期望不妨火速便捷的对汇集实行设备和解决;客户期望不妨火速的实行汇集赞同革新。如许,ASIC的效用固定越来越成为汇集革新的管造。于是,SDN早先了两个方面的革新:

  第一步,汇集掌握面和数据面阔别,掌握面可编程。把汇集掌握面从数据面阔别统治,酿成了掌握面可编程的Openflow赞同。

  第二步,进一步的,汇集数据面也可能编程,用户可能界说本身的赞同。酿成了数据面可编程的P4发言和P4相易机接踵崭露。

  OVS(Open Virtual Switch)是Apache 2许可下的开源的软件相易机。OVS的目的是竣工一个出产情况的相易机平台,声援法式解决界面,并为轨范扩展和掌握怒放转发效用。OVS非凡适合正在VM情况顶用作虚拟相易机,除了向虚拟汇集层公然法式掌握和可见性接口以表,它还旨正在声援跨多个物理效劳器的分发。OVS声援多种基于Linux的虚拟化平台,包罗Xen、KVM等。

  上图为PISA(Protocol Independent Switch Architecture,赞同无闭的相易架构)架构相易机的流水线,PISA是一种声援P4数据面可编程包统治的流水线引擎架构,通过可编程的解析器、多阶段的可编程的结婚举动以及可编程的逆解析器构成的流水线,来竣工数据面的编程。如许可能通过编写P4轨范,下载随统治器流水线,可能非凡简单的声援新赞同的统治。

  当竣工了齐全可编程的流水线东西链的声援下,就可能通过P4编程的式样来竣工自界说的流水线,来抵达对自界说赞同的声援。

  如图所示,P4界说的Parser轨范会被映照到可编程的解析器,数据、包头界说、表以及掌握流会被映照到多个结婚举动阶段。图 6.25中把L2统治、IPv4统治、IPv6统治以及访谒掌握统治分辨映照到差异的结婚举动统治单位实行串行或并行的统治,来竣工完善的声援各式赞同的汇集包统治。

  Virtio旨正在供应一套高效的、杰出爱护的通用的Linux驱动,竣工虚拟机使用和差异Hypervisor竣工的模仿修造之间法式化的接口。Virtio举动类虚拟化的I/O修造接口,寻常使用于云筹算虚拟化场景,某种水准上,Virtio一经成为结果上的I/O修造的接口法式。

  由于软件界说了法式化的Virtio接口,是以,如上图所示,正在SmartNIC和DPU中,offload虚拟化和Workload的最环节部门即是要把Virtio硬件化。

  如上图所示,站正在虚拟化角度,把Virtio卸载,可能看做是从软件到硬件。然而,即使从硬件接口的角度,从一个齐全硬件界说的接口(比方NV自界说的SR-IOV接口)过渡到软件界说的接口(Virtio接口),则可能算是从硬件到软件。

  英特尔oneAPI是一个怒放、可访谒且基于法式的编程编造,声援开荒职员跨多种硬件架构插手和革新,包罗 CPU、GPU、FPGA、AI加快器等。这些统治引擎拥有非凡差异的属性,是以用于各式差异的统治——oneAPI试图通过将它们团结正在统一个模子下来简化这些操作。

  尽管正在即日,开荒职员面对的一个一连题目是咱们日益数字化的全国供应的编程情况的数目。差异的编程情况使代码重用等节减期间的政策失效,并成为软件开荒职员的真正波折。举动其软件优先计谋的一部门PG电子官网,英特尔正在 2019 年的超等筹算举动中推出了oneAPI。该模子标记着英特尔的弘愿是具有团结的编程框架举动控造专有编程平台的治理计划。oneAPI 使开荒职员不妨正在不厌倦应用差异发言、东西、库和差异硬件的情景下职业。

  Intel oneAPI可能竣工:安排一套使用,遵循须要,非凡简单的把轨范映照到CPU、GPU、FPGA或者AI-DSA/其他DSA等差异的统治器平台。

  软件界说是一个非凡高大而且非凡热门的话题,除了软件界说汇集以表,另有良多软件界说的热门范围:

  软件界说存储,是一种能将存储软件与硬件隔离离的存储架构。差异于古板的汇集附加存储(NAS)或存储区域汇集(SAN)编造,SDS寻常都老手业法式编造上推行,从而排斥了软件对付专有硬件的依赖性。

  软件界说数据中央,把数据中央根蒂措施通过概括化、资源池化以及主动化来竣工根蒂措施即效劳(IAAS)。软件界说的根蒂措施可让IT解决员应用软件界说的模板和API轻松设备和解决物理根蒂措施,以界说根蒂措施设备和性命周期运维,并竣工主动化。

  软件界说无线电,是一种无线电播送通讯技巧,它基于软件界说的无线通讯赞同而非通过硬连线竣工。频带、空中接口赞同和效用可通过软件下载和更新来升级,而不消齐全转换硬件。

  软件界说汽车,通过软件竣工新的车载体验和效用PG电子官网,并通过无线 (OTA) 供应更新和效劳。从而使得汽车从高度机电一体化的机器终端,渐渐变更为一个智能化、可拓展、可一连迭代升级的转移电子终端。

  软件界说存储和软件界说无线电还首倘若技巧的领域,而软件界说数据中央和软件界说汽车,则是把软件界说的思绪和理念加倍深化和拓展,使用于更开朗的范围。

  软件界说XX,最本色的做法照样把全体编造从头从硬件竣工形成偏软件的竣工。跟着这势必对CPU的职能提出了更高的请求。

  然而,如上图所示,跟着CPU的职能晋升逐步勾留,一经无法餍够数字经济时期对算力一连晋升的请求。

  声援P4的汇集数据面可编程引擎,属于DSA的领域,特意用于汇集包统治的加快,职能跟ASIC相当,但其拥有非凡好的软件可编程本领。

  法式的P4轨范,有P4前端编译器把P4轨范编译成一个中心态的轨范(相像Java编译器)。然后特定硬件竣工的后端编译器担负把中心态的轨范映照到的确的硬件竣工(有点像Java虚拟机,但P4是静态)。

  P4 DSA引擎预先设备好P4轨范之后,P4-DSA就成了推行特定赞同统治的汇集包统治引擎。然后须要和已有的汇集轨范实行适配,竣工汇集职分的数据面offload。

  P4的全体编造栈跟之前CPU、GPU、ASIC最大的差异正在于先界说了法式的P4,然后各厂家遵循法式的P4去竣工各自差异的P4统治引擎。

  CPU固然现正在有三大架构(x86、ARM和RISC-v),但就的确的架构而言,其界说的ISA好坏常精确的。极端是正在RISC-v生态下,多人遵从同等的ISA,已有的轨范可能非凡简单的正在差异Vendor的RISC-v CPU上运转。

  可能说,今朝一共的DSA,包罗P4 DSA,都还没有竣工接口的软件界说,接口照旧是硬件界说的,可能说是不齐全的软件界说XX。

  咱们把oneAPI模子框架再加强一下,如上图所示。如许,跨平台,不只仅是正在CPU、GPU、FPGA和DSA的跨平台,调动在于是差异Vendor的差异统治器的跨平台。

  不管是软件界说硬件照样硬件界说软件,接口(这里接口是泛指,ISA是接口,IO修造的数据访谒接口也是接口,GPU等加快器闪现的访谒接口也是接口)都好坏常环节的脚色,由于是通过接口给对方闪现本身的效用和怎样访谒。

  第一类,界说好硬件,软件依赖于硬件而界说。凡是都是如许,CPU、GPU、ASIC等等硬件,都是这种接口界说。

  第二类,软件界说的情景下,现有软件,硬件安排要实行适配。例如,Virtio的硬化,例如要兼容OVS的TC-Flower/RTE-flow接口等。

  第三类,软件界说和硬件界说各自的接口,然后中心通过转换层适配。例如,通过HAL层把硬件驱动适配到OS;比方高级发言轨范通过编译器出产特定统治器架构的Binary轨范。

  第四类,软件界说,而且超过软硬件的接口也是软件界说的,然而正在硬件里有一层转换层。例如,前面提到的Virtio接口,正在良多治理计划里的的确竣工是正在硬件侧的嵌入式软件里,如许,软件模仿的Virtio成为职能的瓶颈。

  第五类,软件界说,而且超过软硬件的接口也是软件界说的,硬件直接竣工的软件界说接口。原生声援软件界说接口。硬件不只仅要竣工本身的编程范式,还须要把编程范式映照到法式接口的本领。

  “硬件界说软件”是古板的思绪。新的技巧发扬很疾,已有的技巧仍正在火速迭代;而硬件编造越来越庞大,更新迭代也越来越慢。编造即使是硬件为主,软件依赖于硬件。则势必控造技巧的火速发扬。

  “软件界说硬件”代表了一种趋向:要从编造目标,主动的来界说个另表硬件。但“软件界说硬件”的描画更多的夸大编造,容易轻视个另表特色。站正在编造层面,可能“站得高,看得远”,代表了宏观的、满堂的思索,不妨更好的资源兼顾,更好的界说编造效用。而站正在个另表层面,个别是本源,代表了事物本色的特性。事物受客观次序的管造,拥有特定的发扬次序。而且,个别拥有分歧化,怎样更好的展现这些分歧化上风,是编造一连络续革新的本源驱动。

  “软件和硬件互相界说”,可能更好的协同编造和个另皮毛干,既不妨竣工软件界说的宏观兼顾,又不妨两全硬件个另表特色和上风,把两者有机的联合起来,竣工软硬件加倍协同的更优的编造。

  著作来历:【微信号:bdtdsj,微信公家号:中科院半导体所】接待增加眷注!著作转载请注解来历。

  汇集(SDN)并不是治理根蒂措施解决困难的灵丹仙丹,其准确的推行须要磋议以及妥当的

  的全场景体验与生态 /

  汽车,是目前简直一共汽车厂商都挂正在嘴边的一个观点,其焦点是智能汽车的价格从

  职能;更高的安然和保密需求;络续增多的传感器类型和接口;络续演进的AI算法和模子;以及

  德国埃尔朗根,2022年12月20日 – Elektrobit日前公布其

  已整合到大陆集团的Continental Automotive Edge(CAEdge)框架,为汽车创造商和一级供应商供应首款用于开荒

  EtherCAT运动掌握器 /

  汽车(SDV)不再是愿景,转型已一切启动,使成熟度成为汽车厂商正在比赛激烈的商场中最首要的分歧化成分之一。每个创造商都务必经过三个“阶段”技能抵达理念的状况。正在第一个阶段里,

  汽车的首要趋向 /

  ACCodeSnippetReposito Xcode代码段的解决插件

  【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开荒板/PG2L50H_MBG324第十章)SRAM 读写尝试例程阐明PG电子官网硬件界说软件?软件界说硬件?