當前位置:首頁 > 公眾號精選 > 嵌入式微處理器
[導讀]來源 :智能軟件研究中心,作者:羅宇哲,直接來源:華為開發(fā)者社區(qū) 聲明:本公眾號轉發(fā)僅為傳播相關技術知識,不作任何商業(yè)用途,如有疑義請聯(lián)系刪除。 01 ARM匯編指令 操作系統(tǒng)中硬件相關的部分集中體現(xiàn)在匯編指令和對寄存器的操作中,因此我們對ARM體系結

來源 :智能軟件研究中心,作者:羅宇哲,直接來源:華為開發(fā)者社區(qū)
聲明:本公眾號轉發(fā)僅為傳播相關技術知識,不作任何商業(yè)用途,如有疑義請聯(lián)系刪除。

01
ARM匯編指令


操作系統(tǒng)中硬件相關的部分集中體現(xiàn)在匯編指令和對寄存器的操作中,因此我們對ARM體系結構的介紹也圍繞ARMv8-A的匯編指令和寄存器來展開。

處理器架構是處理器廠商為同一個系列的處理器規(guī)定的一個規(guī)范。ARM架構是一種精簡指令集(RISC)架構,具有以下RISC架構特點:

  • 較大的通用寄存器堆。

  • load/store體系結構,其中數(shù)據(jù)處理操作僅對寄存器內容進行操作,而不是直接對內存內容。

  • 簡單尋址模式,所有l(wèi)oad/store地址由寄存器內容和指令確定。該體系結構定義了處理單元與內存(包括緩存)的交互,并包括內存地址翻譯系統(tǒng)。它還描述了多個處理單元如何相互作用。面積小、性能強和非常低的功耗是ARM體系結構的關鍵特性。本小節(jié)主要以ARMv8-A架構為例來介紹ARM體系結構的基本特性。ARMv8-A體系結構的一個重要特性是向后兼容,可以支持諸多標準和應用場景下的最優(yōu)設計。ARMv8-A架構支持64bit的執(zhí)行模式(AArch64)和32bit的執(zhí)行模式(AArch32),這一模式兼容之前的ARM架構。兩種執(zhí)行狀態(tài)都支持SIMD和浮點指令。


一、AMRv8架構概要


ARM體系結構自推出以來已經(jīng)有了顯著的發(fā)展,并且ARM還在繼續(xù)開發(fā)它。到目前為止,已經(jīng)有八個主要版本,由版本號1到8表示。其中前三個版本現(xiàn)在已經(jīng)過時了。

通用名稱AArch64和AArch32描述了64位和32位執(zhí)行狀態(tài)。AArch64是64位執(zhí)行狀態(tài),意味著地址保存在64位寄存器中,并且基本指令集可以使用64位寄存器進行處理。AArch64支持A64指令集。AArch32是32位執(zhí)行狀態(tài),這意味著地址保存在32位寄存器中,并且基本指令集使用32位寄存器進行處理。AArch32支持T32和A32指令集。

ARM支持三種架構配置:

  • A系列,面向應用場景的架構(Application Profile)。該系列支持基于內存管理單元(MMU)的虛擬內存系統(tǒng)體系結構(VMSA)。它支持A64、A32和T32指令集。

  • R系列,面向實時場景的架構配置。該系列支持基于內存保護單元(MPU)的受保護內存系統(tǒng)體系結構(PMSA)。它支持A32和T32指令集。

  • M系列,面向微處理器的架構。該系列實現(xiàn)了一個為低延遲中斷處理而設計的程序員模型(programmers’ model),該模型具有寄存器硬件堆棧和對中斷處理程序的高級語言支持。它支持T32指令集的變種。

    (注:內存保護單元(MPU)是ARM中配備的有效保護系統(tǒng)資源的一種硬件,提供了內存區(qū)域保護功能。)


二、ARMv8-A指令集


在ARMv8-A中,可能的指令集取決于執(zhí)行狀態(tài):

  1. AArch64:AArch64 state只支持A64指令集。這是一個固定長度的指令集,使用32位指令編碼。

  2. Arch32:AArch32 state支持以下指令集:

  • A32:這是一個固定長度的指令集,使用32位指令編碼。它是與ARMv7 ARM指令集兼容。

  • T32:這是一個可變長度指令集,它同時使用16位和32位指令編碼。它與ARMv7 Thumb?指令集兼容。


ARM指令的基本格式如下[2]:

<Opcode>{<Cond>}<S><Rd>,<Rn> {,<Opcode2>}


其中各個部分的含義為:

  • Opcode:操作碼,也就是助記符,說明指令需要執(zhí)行的操作類型;

  • Cond:指令執(zhí)行條件碼;

  • S:條件碼設置項,決定本次指令執(zhí)行是否影響PSTATE寄存器相應狀態(tài)位值;

  • Rd/Xt:目標寄存器,A32指令可以選擇R0-R14,T32指令大部分只能選擇RO-R7,A64指令可以選擇X0-X30;

  • Rn/Xn:第一個操作數(shù)的寄存器,和Rd一樣,不同指令有不同要求;

  • Opcode2:第二個操作數(shù),可以是立即數(shù),寄存器Rm和寄存器移位方式(Rm,#shit);

ARMv8-A指令集的條件碼如下圖所示:

下面以A64指令集為例簡要介紹ARMv8-A的指令體系。A64指令集中的指令主要分為控制指令、訪存指令和計算指令??刂浦噶钪饕ㄓ袟l件分支指令、無條件分支指令、異常產(chǎn)生和返回指令、系統(tǒng)寄存器指令、系統(tǒng)指令、提示指令、同步指令和清除獨占訪問標志指令。訪存指令主要有Load指令和Store指令,這兩種指令有許多變種。計算指令包含算數(shù)指令、邏輯指令、MOVE指令、移位指令、位擴展指令和SIMD指令等等。以下列出了一些常用的控制指令的名稱與用途。


1. 控制指令:

  • 條件分支指令:

  • 無條件分支指令: 

  • 使用寄存器的無條件分支指令:

  •  異常產(chǎn)生指令:

  •  異常返回指令:

  •  系統(tǒng)寄存器指令:

  • 同步指令和獨占狀態(tài)清除指令:

例如:

2. 訪存指令:

ARMv8訪存指令支持以下尋址模式:

  • 基址加上無符號立即數(shù)的尋址和基址加上有符號立即數(shù)的尋址;

  • 基址加上寄存器偏移值;

  • 基址加上擴展的寄存器偏移;

  • pre-index模式;

  • post-index模式;

  • PC相對尋址模式。


具體情形見下表:

其中對于A64指令集來說,64bit的基址來自通用寄存器X0-X30或來自棧指針SP,立即數(shù)或寄存器偏移值則是可選的,對尋址方式的解釋如下:

  • 寄存器偏移尋址是指來自64bit基址寄存器的地址加上一個偏移值;

  • Pre-indexed模式是指尋址地址是64bit基址加上一個偏移值,這個計算和將會寫入基址寄存器;

  • Post-indexed模式是指尋址地址是64bit的基址,但之后基址和偏移值的和將會寫入基址寄存器;由此可見pre-indexed和post-indexed的區(qū)別在于使用的地址是先加上偏移值再使用還是先使用再加上偏移值;

  • PC相對尋址是指尋址地址是這條指令64bit的PC值加上一個19bit的有符號字偏移,這個地址在當前指令的PC值的 ±1MB范圍內并且是4byte對齊的。使用PC相對尋址所load的數(shù)據(jù)大小至少為32bit并且只能用來預取指令,且PC值不能被其他尋址方式使用。

  • 一個立即數(shù)偏移可以為有符號的,也可以為無符號的,可以為scaled也可以為unscaled。當一個立即數(shù)偏移是scaled的時候,它被編碼為傳輸數(shù)據(jù)大小的整數(shù)倍。雖然匯編程序總是使用byte對齊的偏移,但匯編器或反匯編器會做必要的轉換工作,因此可用的byte偏移值取決于load/store指令類型和數(shù)據(jù)傳輸?shù)拇笮 ?/span>


下面列出了一些load/store指令:

例如Load寄存器指令:

 

上表中指令的尋址方式有:

  • 基址加上12bit無符號scaled立即數(shù)偏移尋址;

  • 基址加上9bit有符號unscaled立即數(shù)偏移尋址;

  • 基址加上64bit寄存器偏移,可選為scaled;

  • 基址加上32bit可拓展寄存器偏移,可選為scaled;

  • 有unscaled9bit有符號立即數(shù)偏移的pre-indexed模式;

  • 有unscaled9bit有符號立即數(shù)偏移的post-indexed模式;

  • Load至少32bit數(shù)據(jù)的PC相對尋址模式。

如果被load或store的指令的尋址模式會修改基址寄存器的內容,且被load/store寄存器恰好的是基址所在的寄存器,那么硬件的行為可能不確定。

 

3.計算指令:

在操作系統(tǒng)匯編語言中使用的計算指令主要是一些簡單的算數(shù)計算指令,用于對寄存器的move操作和對地址的計算操作,一般計算指令既可以使用立即數(shù)作為操作數(shù),也可以使用寄存器中的數(shù)作為操作數(shù)。下面簡單列舉了一些算數(shù)指令:


使用立即數(shù)的簡單算數(shù)指令:

例如:

 使用寄存器的邏輯操作指令:

例如:

其中:

 寄存器移位指令:

 例如:

 

02

ARM架構寄存器


在處理器中,寄存器用于保存需要被快速訪問的數(shù)據(jù),在操作系統(tǒng)中需要特別注意的寄存器主要有棧指針寄存器(SP)、連接寄存器(LR)、程序計數(shù)器(PC)以及當前程序狀態(tài)寄存器(CPSR)和保存程序狀態(tài)寄存器(SPSR)。本小節(jié)主要以ARMv8-A為例介紹ARM架構的寄存器的基本情況。詳情可參見文獻[3],D1.6小節(jié)。


在這一小節(jié)中,我們主要介紹ARMv8架構中AArch64執(zhí)行狀態(tài)下的寄存器使用情況。ARM架構中的寄存器主要有兩類,一類用于提供系統(tǒng)控制與狀態(tài)報告;另一類用于指令運行和異常處理。我們主要討論第二類。

通用寄存器主要用于基本指令集中的指令運行,通用寄存器共有31個,編號為R0-R31。這些通用寄存器可以被當成31個64bit的寄存器,編號為X0-X30;或者被作為31個32bit的寄存器,編號為W0-W30。

在AArch64執(zhí)行狀態(tài)下,除了通用寄存器外,每一個異常級別都會有一個棧指針寄存器(StackPointer Register, SP),棧指針寄存器為SPEL0和SPEL1。異常級別用于區(qū)分指令的執(zhí)行權限,我們將在本章的第四期介紹。如果處理器實現(xiàn)中包含EL2,那么還有SPEL2。如果處理器實現(xiàn)中包含EL3,那么還有SPEL3。詳情可參考鏈接[5]。

SIMD和浮點寄存器共用一系列寄存器,這些寄存器會用于浮點操作、向量操作和其它SIMD有關的標量操作。SIMD指令是能夠復制多個操作數(shù)、并把它們打包在大型寄存器的一組指令集[3]。以加法指令為例,單指令單數(shù)據(jù)(SISD)的CPU對加法指令譯碼后,執(zhí)行部件先訪問內存,取得第一個操作數(shù);之后再一次訪問內存,取得第二個操作數(shù);隨后才能進行求和運算。而在SIMD型的CPU中,指令譯碼后幾個執(zhí)行部件同時訪問內存,一次性獲得所有操作數(shù)進行運算。浮點寄存器和SIMD寄存器共包含32個128bit位寬的寄存器,V0-V31。這些寄存器可以作為:

  • 32個雙字(64bit)寄存器,D0-D31。

  • 32個單字(32bit)寄存器,S0-S31。

  • 32個半字(16bit)寄存器,H0-H31。

  • 32個單字(8bit)寄存器,B0-B31。

程序狀態(tài)寄存器(Current Program Status Register,CPSR) 在用戶級編程時用于存儲條件碼。CPSR包含條件碼標志,中斷禁止位,當前處理器模式以及其他狀態(tài)和控制信息。

保存程序狀態(tài)寄存器(SPSR,Saved Program StatusRegister)用于保存CPSR的狀態(tài),以便異常返回后恢復異常發(fā)生時的工作狀態(tài)。在A64中,不再使用單一的CPSR寄存器,來保存當前處理器狀態(tài),而是用PSTATE來保存處理器狀態(tài),而在A32中依然使用CPSR。有關PSTATE和CPSR的詳細信息可參考鏈接[4]。A64中SPSR 格式的示意圖如下圖所示:

其中N、Z、C、V均為條件碼標志位。它們的內容可被算術或邏輯運算的結果所改變,并且可以用于決定某條指令是否被執(zhí)行,其含義如下表所示[8]:

標志位

含義

N

當兩個有符號整數(shù)運算時:N=1表示運算的結果為負數(shù);N=0表示運算的結果為正數(shù)或零。

Z

Z=1表示運算的結果為零,Z=0表示運算的結果非零。

C

可以有4種方法設置C的值:

  • 在加法指令中(包括比較指令CMP),當結果產(chǎn)生了進位,則C=1,表示無符號運算發(fā)生上溢出;其他情況C=0。

  • 在減法指令中(包括減法指令CMP),當運算中發(fā)生借位,則C=0,表示無符號運算數(shù)發(fā)生下溢出;其他情況下C=1。

  • 對于包含移位操作的非加減運算指令,C中包含最后一次溢出的位的數(shù)值。

  • 對于其他非加減運算指令,C位的值通常不受影響。

V

對于加減運算指令,當操作數(shù)和運算結果為二進制的補碼表示的帶符號數(shù)時,V=1表示符號為溢出,通常其他指令不影響V位。

 M[3:0]則用來確定異常級別和SP:

有關SPSR中各個位的詳細信息可以參考文獻[1] 1.6.4小節(jié)。


連接寄存器LR(R14)的主要作用有兩個:

1. 保存子程序返回地址,用MOVE指令或BX指令可以用于實現(xiàn)返回,如MOV PC、LR或BXLR。若子程序中還需要調用子程序,則可以寫為:

第一條指令將LR中的內容入棧,最后一條將棧中保存的LR寄存器的內容存入PC中用于返回。

2. 當異常發(fā)生時,異常模式的LR用于保存異常返回地址,將LR內容入??梢蕴幚砬短字袛唷?/span>

PC是程序計數(shù)器,其中保存的是正在被加載的指令,而不是正在被執(zhí)行的指令。例如,若指令長度為4byte,則PC指向當前正在被執(zhí)行的指令的地址+8byte的地址。關于LR和PC的詳細內容可參考文獻[6]和[7]。

以下是異常級別EL3中使用的寄存器的例圖:

ARM架構中處理器有不同的運行模式,因此同一個功能的寄存器在不同的運行模式下可能對應不同的物理寄存器,這些寄存器被稱為備份寄存器。如SPSR_svc表示svc模式下使用的SPSR寄存器。ARM架構中常用的運行模式如下表所示[9]:

處理器模式

描述

用戶模式(User, usr)

正常程序執(zhí)行的模式

快速中斷模式(FIQ, fiq)

用于高速數(shù)據(jù)傳輸和通道處理

外部中斷模式(IRQ, irq)

用于通常的中斷處理

特權模式(Supervisor, svc)

供操作系統(tǒng)使用的一種保護模式

數(shù)據(jù)訪問中止模式(Abort, abt)

當數(shù)據(jù)或指令預取中止時進入該模式,用于虛擬存儲及存儲保護

未定義指令中止模式(Undefined, und)

當執(zhí)行未定義指令時進入該模式,用于支持通過軟件仿真硬件的協(xié)處理器

系統(tǒng)模式(System, sys)

用于運行特權級的操作系統(tǒng)任務

ARMv8-A架構還有Monitor(mon)工作模式,用于處理器安全狀態(tài)與非安全狀態(tài)的切換,Hypervisor(hyp)模式則用于對虛擬化有關功能的支持。有關安全狀態(tài)的詳細內容在后續(xù)的文章中會介紹。

 

03
ARM架構中的執(zhí)行狀態(tài)


ARMv8-A有兩種執(zhí)行模式,一種是AArch64執(zhí)行模式,另一種是AArch32執(zhí)行模式。執(zhí)行狀態(tài)定義處理單元(Processing Element, PE)的執(zhí)行環(huán)境,包括以下內容:

  1. 支持的寄存器寬度

  2. 支持的指令集

  3. 異常模型

  4. 虛擬存儲系統(tǒng)(Virtual Memory System Architecture, VMSA)架構

  5. 程序員模型


AArch64為64位執(zhí)行狀態(tài)。對應上述內容,此執(zhí)行狀態(tài):

  1. 提供31個64位通用寄存器,其中X30用作過程鏈接寄存器(ProcedureLink Register)。

  2. 提供64位程序計數(shù)器(PC)、堆棧指針(SP)和異常鏈接寄存器(ELRs)。

  3. 提供32個128位寄存器以支持SIMD矢量和標量浮點運算。

  4. 提供單一指令集A64。

  5. 定義ARMv8異常模型,該模型最多有四個異常級別EL0-EL3,它們提供執(zhí)行權限層次結構。

  6. 支持64位虛擬尋址。

  7. 定義一系列與PSTATE相關的寄存器。A64指令集包括能直接操作各種PSTATE寄存器的指令。

  8. 使用后綴命名每個系統(tǒng)寄存器,該后綴指示可以訪問寄存器的最低異常級別。


AArch32為32位執(zhí)行狀態(tài)。對應上述內容,此執(zhí)行狀態(tài):

  1. 提供13個32位通用寄存器和一個32位PC、一個32位SP寄存器和一個32位鏈接寄存器(Link Register,LR)。鏈接寄存器用作異常鏈接寄存器和過程鏈接寄存器。其中一些寄存器有多個備份寄存器,用于不同的處理器工作模式。我們在上一期提到過,同一個功能的寄存器在不同的處理器運行模式下可能對應不同的物理寄存器,這些寄存器被稱為備份寄存器。

  2. 為從Hyp(hypervisor)模式返回的異常提供一個異常鏈接寄存器。

  3. 提供32個64位寄存器,用于對高級SIMD矢量和標量浮點計算的支持。

  4. 提供兩個指令集,A32和T32。

  5. 支持基于處理器工作模式的ARMv7-A異常模型,并將其映射到基于異常級別的ARMv8異常模型。

  6. 使用32位虛擬地址。

  7. 使用單個當前程序狀態(tài)寄存器(CPSR)保存處理器狀態(tài)。

  8. 在AArch64和AArch32執(zhí)行狀態(tài)之間進行轉換稱為內部處理(interprocessing)。


04
ARMv8-A架構的異常級別和安全狀態(tài)


ARMv8-A有四個異常級別,從EL0到EL3。對于異常級別ELn,整數(shù)n增加表示軟件執(zhí)行的特權權限變大了。EL0級別下的執(zhí)行叫非特權執(zhí)行(unprivileged execution)。EL1主要用于運行操作系統(tǒng)內核。EL2可以支持非安全操作的虛擬化。EL3則支持安全狀態(tài)和非安全狀態(tài)之間的轉換。安全狀態(tài)與ARM TrustZone技術有關[2]。安全狀態(tài)可以運行可信執(zhí)行環(huán)境(TEE, Trusted Execution Environment)及安全應用,用于保障隱私數(shù)據(jù)和程序運行環(huán)境的安全性。


ARMv8-A架構并未直接指定哪些軟件應該運行在哪些異常級別,但是在通常情況下,有如異常級別的使用模型:

1.應用程序運行在EL0;

2.操作系統(tǒng)內核和相關功能運行在EL1;

3.Hypervisor[3]運行在EL2;

4.安全世界狀態(tài)和正常世界狀態(tài)的切換在EL3完成。


下圖反映了ARM-v8A架構中的執(zhí)行狀態(tài)、安全狀態(tài)和異常級別之間關系[1]:


從圖中我們可以看出,Hypervisor相關的支持特性主要是在EL2的非安全狀態(tài)實現(xiàn)的。Hypervisor可以支持虛擬機之間的切換,而虛擬機主要被包含在EL1的非安全狀態(tài)和EL0的非安全狀態(tài)中。一些Guest OS可以運行在EL1狀態(tài)里,每一個Guest OS可以運行在一個虛擬機上。而應用則運行在EL0的非安全狀態(tài)中,同時也運行在Guest OS上。



引用

[1]ARM? Architecture Reference ManualARMv8, for ARMv8-A architecture profile**

[2]https://blog.csdn.net/tanli20090506/article/details/71487570

[3]ARM? Architecture Reference ManualARMv8, for ARMv8-A architectureprofile

[4]https://www.cnblogs.com/smartjourneys/p/6845078.html

[5]https://baike.baidu.com/item/SIMD/3412835?fr=aladdin

[6]http://www.lujun.org.cn/?p=1676

[7]https://www.cnblogs.com/pengdonglin137/p/10259971.html

[8]https://blog.csdn.net/layuetian2011/article/details/52039328

[9]https://blog.csdn.net/allan0508/article/details/52624618

[10]https://blog.csdn.net/myarrow/article/details/9701499

[11]《ARM體系結構與編程(第二版)》,杜春雷主編。
[12]ARM? Architecture Reference ManualARMv8, for ARMv8-A architecture profile
[13]ARM? Architecture Reference Manual ARMv8, forARMv8-A architecture profile

[13]https://baike.baidu.com/item/trustzone/15953889?fr=aladdin
[14]https://blog.csdn.net/baidu_23959681/article/details/82732488


-END-



推薦閱讀



【01】用ARM芯片開發(fā)的看過來!今天來總結下AMBA總線
【02】關于ARM的22個常用概念!
【03】概述11種基于ARM的嵌入式操作系統(tǒng)
【04】ARM與嵌入式Linux的入門建議
【05】嵌入式Linux開發(fā)必懂:基于ARM64的init用戶進程究竟如何啟動?

免責聲明:整理文章為傳播相關技術,版權歸原作者所有,如有侵權,請聯(lián)系刪除

免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關注更多精彩內容

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉