主頁 > 軟體設計 > ARM 之十五 掃盲 ARM 架構、指令集、微架構、系統架構、ARM IP、授權方式

ARM 之十五 掃盲 ARM 架構、指令集、微架構、系統架構、ARM IP、授權方式

2021-09-29 07:45:40 軟體設計

??ARM 架構的 MCU 用了好多年,進一步對于 ARM 架構也或多或少的有了一些了解,之前都是遇到啥問題直接去官網找對應的手冊,一直沒有系統的總結一下,是時候總結一下,以便進行下一步學習了!

總的來說,整個 ARM 可以分為兩大部分:SoC 設計ARM 平臺軟體開發

ARM 檔案

??在了解 ARM 相關的各種概念之前,先來簡單說一下 ARM 官方提供的檔案的組織結構,其實,國外這些大公司對于檔案的組織都是比較規范的,例如,ST 的 參考手冊、資料手冊、應用手冊等等,ARM 檔案也基本可以分為參考手冊、用戶指南,這么劃分的目的就是為了讓各部分更加獨立,簡單來說,參考手冊僅介紹原理,用戶指南介紹使用方法,兩者相互獨立,
在這里插入圖片描述

  • Arm Architecture Reference Manual :架構參考手冊描述架構規范,是按照不同的架構版本分開的(如上圖是 Armv8-A的架構參考手冊),里面會詳細介紹對應架構的細節,
  • Technical Reference Manual (TRM) :這個是針對 ARM IP 的參考手冊, 描述特定于該 ARM IP 的特性,
  • Configuration and Integration Manual (CIM) :這個也是針對 ARM IP 的參考手冊,描述如何將處理器集成到系統中,一般來說,這些資訊只與 SoC 設計相關,僅對被授予了 IP 許可的合作方開放,

下表顯示了在不同型別的檔案中的內容:
在這里插入圖片描述

上面說的檔案都屬于參考手冊

??ARM 的所有檔案都放在專門為開發者提供了網站 Arm developer website 上,除此之外,ARM 的官方社區也是一個寶庫,社區包含:博客(ARM 的設計師經常在上面分享一些文章)、論壇(里面有很多專業問題及設計師的解答),

架構(Architecture)

??架構(Architecture)指的是一些列的功能規范,ARM 架構 指的就是是基于 ARM 架構的處理器的功能規范,即 ARM CPU 架構,架構指定了處理器的行為方式,例如它有什么指令以及指令做什么,
在這里插入圖片描述
可以將架構看作是硬體和軟體之間的契約,描述了軟體可以依賴硬體提供哪些功能,大體包含以下內容:

條目說明
指令集每條指令的功能;指令如何在記憶體中表示(它的編碼)
暫存器組有多少暫存器;暫存器的大小;暫存器的功能;暫存器的初始狀態
例外模型不同的權限級別;例外的型別;從例外中獲取或回傳時會發生什么
記憶體模型記憶體訪問是如何排序的;快取是如何運作的,什么時候以及軟體必須如何執行顯式維護
除錯、跟蹤和分析如何設定和觸發斷點;跟蹤工具可以捕獲什么資訊,以什么格式捕獲

??ARM 架構 可以認為就是個專有名詞,是 ARM 制定的一些列功能規范的統稱,至今已經有發展了很多版,最初的 ARMv1、ARMv2,后來的 ARMv6、ARMv8;最新的 ARMv9,

??每一代 ARM 架構 都有一個專門的檔案(架構參考手冊)來介紹該架構的具體細節,需要注意的是,架構參考手冊是根據 Profile 來分開的,并不是一個統一的檔案,例如,《Armv8-M Architecture Reference Manual》、《Armv8-A Architecture Reference Manual》等等,

微架構(Micro-Architecture)

??ARM 架構不會介紹處理器是如何構建的或它是如何作業的, 處理器的構建和設計稱為微架構, 微架構介紹了特定處理器的作業方式,微架構就是對于 ARM 架構的進一步的實作

在這里插入圖片描述
微架構包括以下內容:

  • 管道長度和布局
  • 快取的數量和大小
  • 單個指令的回圈計數
  • 實作了哪些可選功能

??一個 ARM 架構可以有多個不同的微架構以實作針對多種應用環境,例如,ARM 自己提供的各種 ARM 核就是一個個不同的微架構,

系統架構(System Architecture)

??除了上面說的 ARM 架構之外,ARM 對構成現代芯片上系統(SoC)的許多組件都有類似的規范,ARM 系統架構定義了相關組件和介面,使硬體和軟體更容易進行互操作,系統架構的整體框圖如下圖所示:
在這里插入圖片描述
??規范是軟體兼容性的基礎,根據規范構建硬體意味著可以撰寫與之相匹配的軟體,根據規范撰寫軟體意味著它可以在兼容的硬體上運行,ARM 架構是基礎,通過指令集架構(Instruction Set Architecture,ISA)兼容性提供了一個通用的程式員模型,
在這里插入圖片描述
??基本系統架構(The Base System Architecture,BSA)規范描述了系統軟體可以依賴的硬體系統架構,BSA 涵蓋了處理器和系統架構的各個方面,例如中斷控制器、計時器和作業系統需要的其他常見設備,這為標準作業系統、管理程式和韌體提供了可靠的平臺,

??基本引導需求(The Base Boot Requirements,BBR)規范涵蓋了基于 Arm 架構的系統以及作業系統和管理程式可以依賴的系統需求,該規范建立了韌體介面要求,如 PSCI、SMCCC、UEFI、ACPI 和 SMBIOS,

??其他標準可以建立在 BSA 的基礎上,以提供特定于市場的標準化, 例如,服務器基礎系統架構 (SBSA) 是針對服務器的 BSA 的補充, SBSA 描述了服務器作業系統的硬體和功能要求,
在這里插入圖片描述

  • Generic Interrupt Controller: 通用中斷控制器(GIC) 規范定義了 Armv7-A/R 和 Armv8-A/R 的標準化中斷控制器,通用中斷控制器(GIC)從外設接收中斷,按優先級排列它們,并將它們交付給適當的處理器核心,
    在這里插入圖片描述
    ??目前,GIC 已經發展到了第四代,ARM 官方提供了 《ARM Generic Interrupt Controller Architecture version 2.0 - Architecture Specification》和《Arm Generic Interrupt Controller Architecture Specification GIC architecture version 3 and 4》這兩個檔案來介紹 GIC,

    注意:M-Profile 使用的是 NVIC 中斷控制器,

  • System Memory Management Unit: 系統記憶體管理單元(SMMU,有時也稱為 IOMMU)為非處理器主機提供翻譯服務,
    ??目前,SMMU 已經發展到了第三代,ARM 官方提供了 《ARM System Memory Management Unit Architecture Specification - SMMU architecture version 2.0》和《Arm System Memory Management Unit Architecture Specification, SMMU architecture version 3》這兩個檔案來介紹 SMMU,

  • Generic Timer: 通用定時器為系統中的所有處理器提供公共參考系統計數, 這些計時器提供用于諸如作業系統調度程式滴答之類的功能, 通用定時器是 Arm 架構的一部分,但系統計數器是一個系統組件,

  • Server Base System Architecture and Trusted Base System Architecture: 服務器基礎系統架構 (SBSA) 和可信基礎系統架構 (TBSA) 為 SoC 開發人員提供系統設計指南,

  • Advanced Microcontroller Bus Architecture: 高級微控制器總線架構 (AMBA) 總線協議系列控制基于 Arm 的系統中組件的連接方式以及這些連接上的協議,

  • CoreSight Architecture: CoreSight 架構為實時除錯和收集跟蹤資訊提供了系統范圍的解決方案,

指令集架構

??指令集架構(Instruction Set Architecture,ISA)是計算機抽象模型的一部分,它定義了軟體如何控制 CPU,Arm ISA 允許開發人員撰寫符合 Arm 規范的軟體和韌體,以此實作在任何基于 Arm 的處理器上都可以以同樣的方式執行它們,ARM 指令集架構有三種:

  • A64: A64 指令集是在 Armv8-A 中引入的,以支持 64 位架構,A64 指令集有固定的 32 位指令長度,主要的特性有:

    • Clean decode table based on 5-bit register specifiers.
    • Instruction semantics broadly similar to A32 and T32.
    • 31 general-purpose 64-bit registers accessible at all times.
    • No modal banking of general purpose registers for improved performance and energy.
    • Program counter and stack pointer are not general purpose registers.
    • Dedicated zero register available for most instructions.
  • A32: A32 指令集有固定的 32 位指令長度,并在 4 位元組邊界上對齊,A32 指令集就是在 Armv6 和 Armv7 架構中我們常說的 ARM 指令集,Armv8 及之后改名 A32 以與 A64 進行區分, 隨著 Thumb-2 技術的引入,它的大部分功能都被納入了 T32 中,
    ??A32 指令主要被用于 A-profile 和 R-profile,

  • T32: T32 指令集最初是作為 16 位指令的補充集引入的,用于改進的用戶代碼的代碼密度,隨著時間的推移,T32 演變成 16 位和 32 位混合長度的指令集,因此,編譯器可以在單個指令集中平衡性能和代碼大小,
    ??T32 指令集就是在在 Armv6 和 Armv7 架構中被我們所熟知的 Thumb 指令集,Armv8 及之后改名為 T32, T32 支持所有架構的 Profile,并且是 M-Profile 架構所支持的唯一指令集,

指令集是架構引數手冊中一個重要的章節,詳細的介紹可以在對應版本的架構參考手冊中找到,

??以上這三種指令集被稱為 ARM 基礎指令集(ARM Base ISAs),除此之外,ARM 還提供指令集擴展:自定義指令、DSP、浮點等等,其中以我用的最多的浮點來簡單說明一下,

ARM 浮點處理

??最近專案中用到了大量的浮點運算,且要求的時間精度較高,但是在使用程序中發現,總是會超過時間限制,最終經過測驗發現,程式中的浮點運算 sqrt 占用了大量時間,單個執行 sqrt 需要 30多個微妙,

??我實際用的是基于 Cortex-m4f 核的 MCU,主頻 128M,感覺單個執行 sqrt 需要時間有些過長于是開始在 ARM 官網找資料,結合 CMSIS 的代碼,開始一步一步定位問題:

  1. 首先,根據 ARM 手冊, Cortex-m4f 內核集成了浮點運算單元(FPU)和 DSP,實作單精度浮點算術運算,支持所有 ARM 單精度資料處理指令和資料型別,支持完整 DSP 指令集,
  2. 檢查 CMSIS 代碼中的相關配置也沒有問題
    在這里插入圖片描述
  3. 接著查看 CMSIS 提供的專用 DSP 驅動庫,在眾多介面中偶然發現 arm_sqrt_f32 這個介面,其位于 CMSIS 的 arm_math.h 中,具體定義如下:
     /**
      * @brief  Floating-point square root function.
      * @param[in]  in     input value.
      * @param[out] *pOut  square root of input value.
      * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if
      * <code>in</code> is negative value and returns zero output for negative values.
      */
    
     static __INLINE arm_status arm_sqrt_f32(
     float32_t in,
     float32_t * pOut)
     {
       if(in >= 0.0f)
       {
    
     //      #if __FPU_USED
     #if (__FPU_USED == 1) && defined ( __CC_ARM   )
           *pOut = __sqrtf(in);
     #else
         *pOut = sqrtf(in);
     #endif
     
           return (ARM_MATH_SUCCESS);
       }
       else
       {
         *pOut = 0.0f;
         return (ARM_MATH_ARGUMENT_ERROR);
       }
     }
    

從上面的定義不難看出,我們需要使用 ARM 頂一個的各種浮點運算介面才可以正常使用 浮點運算單元,

總結一下在使用浮點運算是需要注意一下幾點:

  1. Cortex-M4 中集成的浮點運算單元是單精度浮點運算單元,因此,所有的浮點數運算最好都使用 float 型別,常數一定加上 f 后綴,(部分 Cortex-M7 集成了 雙精度浮點運算單元)
  2. 使用 arm_math.h 及 DSP 庫中定義的相關浮點數運算介面,例如,C 語言的 sqrt 可以使用 arm_sqrt_f32 代替,三角函式 sin 可以使用 arm_sin 代替等等,注意,使用 arm_math.h 及 DSP 庫中相關介面時需要配置一些宏值,

ARM IP

??ARM 不僅僅制定規范,還會在規范的基礎上進一步設計,這些設計被稱為 IP(Intellectual Property,知識產權),ARM IP 有很多種:Processors(也就是我們平時說 ARM 核)、Graphics and Multimedia、System IP、Physical IP、Security IP、Subsystem,
在這里插入圖片描述

Processors

??Processors 即 ARM 核,也即 ARM CPU,就是一些可重復利用的、具有特定功能的集成電路模塊,下圖顯示了 ARM 架構以及 ARM 核對應的關系:
在這里插入圖片描述
從上如圖中我們可以不難看出如下幾點:

  1. ARM 架構版本很多,但是并不是每個 ARM 架構都有實際的實作,甚至于 ARM 自己也沒有實作部分版本的架構
  2. 有部分第三方公司也基于 ARM 架構設計了自己的核心,例如蘋果公司,這是由于 蘋果公司具有 ARM 架構的授權,

??ARM 為自己設計的核起了一個統一的品牌名字:Arm Cortex,同時針對不同的應用場景,分為了 Application Processors(應用處理器)Arm Cortex-A、Real-time Processors (實時處理器)Arm Cortex-R、Microcontroller Processors(微控制器處理器)Arm Cortex-M 三種不同的 Profile ,
在這里插入圖片描述
除了以上我們比較常見的 ARM 核,ARM 還設計了其他一些處理器
在這里插入圖片描述

System IP

??Arm System IP 使系統設計人員能夠配置和構建高性能、高能效的 SoC,同時通過行業標準 AMBA 介面將 Arm 處理器與他們自己的 IP 元素相結合,從而進一步區分,

AMBA(高級微控制器總線架構)是一種免費提供的開放標準,用于連接和管理片上系統 (SoC) 中的功能模塊, 它有助于多處理器設計的一次性開發,具有大量控制器和外設,

Physical IP

??Arm Artisan Physical IP 提供業界最全面、最先進的物理IP解決方案,使用 Arm ArtisanPhysical IP 可以有效地實作復雜的 SoC 設計,

Graphics and Multimedia Processors

  • Arm Mali GPU IP
    在這里插入圖片描述
  • Mali Camera Image Signal Processors (ISPs)
    在這里插入圖片描述

授權方式

??從很多資料中,我們都能找到這樣一句話 “ARM 本身并不制造和銷售芯片,而是將設計授權給其他公司”,在多年發展中,ARM 逐漸形成了多種授權方式(等級),不同的授權方式,被授權方的權限不同,

??ARM 主要有三種授權等級:使用層級授權、 內核層級授權和架構/指令集層級授權,其中指令集層級授權等級最高,企業可以對 ARM 指令集進行改造以實作自行設計處理器,如蘋果在 ARM v7-A 架構基礎上開發出蘋果 Swift 架構,其他如高通 Krait、Marvell 等都是基于 ARM 指令集或微架構進行的改造所得,

Arm core licensees

??前面我們介紹了 ARM 本身設計了很多 ARM 核,Core licensees 就是把這些核授權給購買者,購買者可以使用這些核來構建自己的 MCU、SoC,

Arm architectural licensees

??牛逼的公司還可以購買 ARM 架構許可,使用 ARM 指令集設計自己的 CPU 核,這些核心必須完全符合 ARM 架構,其中,最為人所致的就是蘋果公司,2013 年,Arm 表示大約有15 家公司被授予架構許可,

Built on ARM Cortex Technology licence

??2016 年 2 月,ARM 宣布了 Built on ARM Cortex Technology 許可證,通常簡稱為 Built on Cortex (BoC) 許可證,該許可證允許授權公司與 ARM 合作,并對 ARM Cortex 的設計進行修改,這些設計修改不會與其他公司共享,其中比較為人所知的就是高通,

ARM Flexible Access

??2019 年 7 月16 日,ARM 宣布了 ARM Flexible Access,ARM Flexible Access 為開發提供了對包括 ARM IP 的無限訪問,

其他

??除了上面說的這些,ARM 自己設計的其他 IP 也有對應的授權方式,例如,Mali licensees 授權給第三方使用 ARM 設計的 GPU,

參考

  1. https://developer.arm.com/
  2. https://en.wikipedia.org/wiki/ARM_architecture

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/303847.html

標籤:其他

上一篇:【創業必備企業架構,可開發任意專案】SpringCloud大型企業分布式微服務云架構原始碼

下一篇:Linux——最全面試題整理(僅此一篇)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more