導航:首頁 > 源碼編譯 > 編譯器基礎架構SOC

編譯器基礎架構SOC

發布時間:2022-10-25 12:36:12

『壹』 淺談多核心CPU和SoC晶元及其工作原理

姓名:呂紅霞;學號:20011210203;學院:通信工程學院

轉自https://mp.weixin.qq.com/s/rULXlihPLhZCjnGhbMbCMg

【嵌牛導讀】 本文講解了多核心CPU和SoC晶元及其工作原理

【嵌牛鼻子】 多核CPU,進程,線程

【嵌牛提問】 現在的CPU或SoC基本都是在單晶元中集成多個CPU核心,形成通常所說的4核、8核或更多核的CPU或SoC晶元。為什麼要採用這種方式?多個CPU 核心在一起是如何工作的?CPU核心越多就一定越好嗎?

【嵌牛正文】

要說明什麼是多核心CPU或SoC晶元,首先要從CPU核心(Core)說起。我們知道,CPU是中央處理器(Central Processing Unit)的英文簡稱,它具有控制和信息處理的能力,是電腦和智能設備的控制中樞。如果把傳統CPU晶元中的封裝和輔助電路(例如引腳的介面電路、電源電路和時鍾電路等)排除在外,只保留完成控制和信息處理功能的核心電路,這部分電路就是 CPU核心 ,也簡稱CPU核。一個CPU核心基本上是一個完全獨立的處理器,它可以從內部存儲器中讀取指令,並執行指令指定的控制和計算任務。

如果把 一個 CPU核心和相關輔助電路封裝在一個晶元中,這個晶元就是傳統的 單核心CPU晶元 ,簡稱單核CPU。如果把 多個 CPU核心和相關輔助電路封裝在一個晶元中,這個晶元就是 多核心CPU晶元 ,簡稱多核CPU。當然,多核心CPU晶元會包含更多的輔助電路,以解決多個CPU核心之間的通信和協調問題。

如果在多核心CPU晶元中再集成一些其它功能部件和介面電路,就形成了完整的系統,那麼這個晶元就變成了 多核心SoC晶元 了,簡稱多核SoC。在不嚴格區分的情況下,SoC也可以稱為CPU。

發展多核心CPU的初心源於「人多力量大」的簡單道理。從這個意義上來看,當初晶元集成度不高的時候,Inteli8086 CPU和i8087協處理器應該算是多核心CPU的雛形,是 多晶元協作形成了一個處理核心 ,需要採取許多技術來解決CPU和協處理器之間的合作、協作問題。

今天晶元的集成度很高,單晶元中集成幾個甚至幾十個CPU核心已不在話下,但還是不能滿足超級計算的需要,需要在超級計算機中使用成千上萬塊高性能CPU晶元一起合作、協作,這可以看作 晶元內 多核心、 晶元外 多晶元的多核心CPU集群。

CPU晶元從外觀上看是一塊晶元,但打開封裝來看,內部可能只有一塊裸片(die),也可能是多塊裸片封裝在一起,稱為 多晶元模組 (Multichip Mole,簡稱 MCM ),如圖2b所示。但從軟體角度來看,封裝形式無關緊要,無論是晶元內還是晶元外,CPU核心多少才是最重要的,它們決定著系統的並行運算和處理能力,它們的主頻頻率和核心之間通信方式決定了系統的處理速度。

另外,今天的桌面計算機CPU、手機SoC中還集成了許多圖形處理器(GPU)核心、人工智慧處理器(APU)核心等,這些是否也應該算作多核心CPU和SoC中的「核心」呢?我覺得從廣義角度上應該算吧。

因此,要回顧多核心CPU的發展,大致可以分為 1 .雛形期; 2 . 單晶元單核心; 3 .單晶元多核心; 4 .單核心多晶元; 5 .多核心多晶元幾種情形。這些發展階段不一定按照這個前後順序,可能有交叉時期,也可能有前後顛倒的情形。第2和第3種情形一般是應用在桌面計算機、智能手機等移動終端上的CPU晶元,第4和第5種是應用在伺服器和超級計算機上的CPU晶元。本文限於篇幅和主題集中的需要,主要探討第3種 單晶元多核心 的情況,這種情況下的CPU是 單晶元多處理器 (Chip Multi Processors,簡稱 CMP )模式。

1971 ~2004年,單核心CPU一路獨行 。Intel公司1971年推出全球首款CPU晶元i4004,直到2004年推出超線程的Pentium 4 CPU系列,期間共33年時間。在這期間,CPU晶元很好地沿著摩爾定律預示的規律發展,沿著集成度不斷翻倍、主頻不斷提升、晶體管數量快速增加的道路前進,這是一條單核心CPU不斷迭代升級的發展之路。

但是,當晶體管數量大幅增加導致功耗急劇增長,CPU晶元發熱讓人難以接受,CPU晶元可靠性也受到很大影響的時候,單核心CPU發展似乎到了窮途末路。摩爾定律的提出者 戈登.摩爾 也依稀覺得「尺寸不斷縮小」、「主頻為王」這條路子即將走到盡頭。2005年4月他曾公開表示,引領晶元行業接近40年的摩爾定律將在10~20年內失效。

其實,早在上世紀90年代末,就有許多業界人士呼籲用CMP技術實現的多核心CPU替代單線程單核心CPU。IBM、惠普、Sun等高端伺服器廠商,更是相繼推出了多核心伺服器CPU。但是,由於伺服器CPU晶元價格太高、應用面較窄,並未引起大眾廣泛關注。

2005年初AMD搶先推出了64位CPU晶元,並率先Intel發表聲明保證其64位CPU的穩定性和兼容性,Intel才想起了利用「多核心」這一武器進行「帝國反擊戰」。2005年4月,Intel倉促推出簡單封裝的2核心Pentium D和Pentium4至尊版840。之後不久,AMD也發布了雙核心皓龍(Opteron)和速龍(Athlon)CPU晶元[9]。

2006 年被認為是多核心CPU的元年 。這年7月23日,Intel基於酷睿(Core)架構的CPU發布。11月,Intel又推出了面向伺服器、工作站和高端PC機的至強(Xeon)5300和酷睿2雙核心和4核心至尊版系列CPU。與上一代台式機CPU相比,酷睿2雙核心CPU在性能方面提高40%,功耗反而降低40%。

作為對Intel的回應,7月24日,AMD宣布對雙核Athlon64 X2處理器進行大降價。兩大CPU巨頭在宣傳多核心CPU時,都會強調其節能效果。Intel發布的低電壓版4核心至強CPU功耗僅為50瓦。而AMD的「Barcelona」4核心CPU的功耗也沒超過95瓦。在Intel高級副總裁Pat Gelsinger看來,摩爾定律還是有生命力的,因為「CPU從單核心到雙核心,再到多核心的發展,可能是摩爾定律問世以來,CPU晶元性能提升最快的時期」 [9]。

CPU 技術發展要比軟體技術發展更快 ,軟體對多核心CPU的支持相對滯後。如果沒有操作系統的支持,多核心CPU的性能提升優勢不能發揮出來。同樣運行Win7的情況下,4核心CPU和8核心CPU所帶來的差異化體驗並不明顯,導致這種情況的原因是Win7根本沒有對8核心CPU進行相應的優化。而在Win10出來後,8核心CPU所帶來的體驗速度就明顯要比4核心處理器快很多,這源於微軟在Win10上對多核心CPU的支持做了優化。而且微軟還將在Win10上針對多核心CPU做進一步適配優化。

目前 核心最多的伺服器CPU 有Intel至強鉑金9282,56核心112線程,引線焊球多達5903個,估計售價約4萬美元;AMD霄龍 7H12,64核心128線程,散熱設計功耗280W。這兩款CPU都需要採用液冷散熱。 核心最多的台式機CPU 有Intel酷睿i97980XE至尊版,18核心36線程,散熱設計功耗165W,售價1999美元;AMD的Ryzen9 5950X,16核心32線程,散熱設計功耗105W,售價6049元。 核心最多的手機SoC 有Apple M1、麒麟9000、高通驍龍 888等。多核心CPU或者多核心SoC似乎成為一種潮流,但是不是核心越多CPU就越好呢?在不考慮其它因素影響,單從技術和集成度考慮的話,有人甚至預測到2050年,人們可能會用上1024個核心的CPU晶元。

我們先從任務處理的角度來看這個問題。如果把CPU處理的事情叫做任務的話,以前的CPU只有一個核心,CPU只會「一心一用」地處理一個任務,幹完一件事再接著干下一件事。專業上稱之為 串列單任務處理 。這在DOS操作系統的時代是合適的,這個時期對CPU的追求只有一條,那就是處理速度要盡可能地快。在Windows操作系統出現後,出現了多任務的處理需求,要求CPU可以「一心多用」,同時干多件事情。專業上稱之為 分時多任務處理 。這個時期對CPU的追求 一是 處理速度要盡可能地快, 二是 同時可處理的任務盡可能地多。其實這種「一心多用」的處理方法是把時間分配給了多個任務,從宏觀上看CPU處理的任務多了,但從某項任務來看CPU對該項任務的處理速度變慢了。

要實現CPU處理的任務更多、處理速度更快,人們自然想到了在晶元中集成多個CPU核心,採用「多心多用」的方式處理事務,因而就出現了多核心CPU的需求,而這種需求在伺服器CPU應用方面顯得尤為迫切。

我們再從提高CPU時鍾頻率,加快處理速度的角度來看這個問題。無論是「一心一用」、「一心多用」、還是「多心多用」,只要提高了CPU的時鍾頻率,CPU的處理速度都會加快。如論是單任務還是多任務,就會在更短時間完成任務。因此,CPU發展的歷史就是隨著晶元技術的進步,CPU的時鍾頻率不斷提升的歷史,從早期的MHz級別不斷提升到目前的GHz級別,大約提升了1000倍左右。無論是單核心還是多核心,CPU時鍾頻率是人們選用CPU晶元的重要指標。

過去很長一段時間里,隨著Intel和AMD CPU速度越來越快,x86操作系統上的軟體的性能和速度自然會不斷提高,系統整機廠家只要對現有軟體作輕微設置就能坐享電腦系統整體性能提升的好處。

但是隨著晶元工藝沿著摩爾定律發展,CPU集成度提高、晶體管密度加大,時鍾頻率提升,直接導致CPU晶元的功率不斷增大,散熱問題成為一個無法逾越的障礙。據測算,CPU主頻每增加1GHz,功耗將上升25瓦,而在晶元功耗超過150瓦後,現有的風冷散熱將無法滿足要求。2003年前後Intel推出的主頻為3.4GHz的Pentium4至尊版CPU晶元,最高功耗已達135瓦,有人給它送了一個「電爐」的綽號,更有好事者用它來玩煎蛋的游戲。現在的伺服器CPU晶元Xeon W-3175標稱功耗為255W,默認頻率實測能達到380W,超頻的話甚至會突破500W,必須採用高端水冷系統來降溫。

所以,功耗極限制約著CPU頻率的提升。下圖是CPU功率密度隨時間的變化趨勢圖,IntelPentium之後的CPU晶元,由於晶體管密度和時鍾頻率提升,CPU晶元的功率密度陡然上升,CPU產生的熱量將會超過太陽表面。

綜上所述,追求多任務處理功能,追求處理速度提升是CPU晶元設計的兩大目標。以提升CPU時鍾頻率而加快處理速度又受到CPU功耗極限的制約,多核心CPU晶元成為解決上述矛盾的必由之路。目前,多核心CPU和SoC已成為處理器晶元發展的主流。

與單核心CPU相比,多核心CPU在體系結構、軟體、功耗和安全性設計等方面面臨著巨大的挑戰,但也蘊含著巨大的潛能。本文參考了後附的參考資料1,對多核心CPU用到的技術作如下簡單介紹。

1. 超線程技術

一個傳統CPU核心只有一個運算處理單元(Processing Unit,簡稱PU)和一個架構狀態單元(Architectual State,簡稱AS),在同一時間只能處理一個軟體線程(Thread)。採用了 超線程 (Hyper-Threading,簡稱 HT )技術的CPU核心中包含一個PU和兩個AS,兩個AS共用這個PU。軟體在CPU核心上運行時,AS與軟體線程對接,並把線程的任務分配到PU中的相關單元中。所以,兩個AS就可以處理兩個軟體線程。

用生產車間打個比方,PU是生產部門,有幾台機床用於生產;AS是跟單員,他同時只能跟一個任務訂單;軟體線程好比是任務訂單。如果生產車間只有一個AS時,這個車間同時只能處理一個任務訂單,PU的有些機床有事干,有些機床可能無事干而閑置。如果有兩個AS時,就能處理兩個任務訂單,並把任務分配到不同的機床上去完成。

所以,具有超線程的CPU核心的集成度增加量不大,但有兩個AS後使它看起來像兩個邏輯的CPU核心,就可以同時處理兩個軟體線程,大約可以提高40%的處理能力。所以,我們經常可以看到CPU晶元廣告,說某多核心CPU晶元是N個核心,2×N個線程,就是採用了超線程帶來的好處。否則,如果沒有採用超線程技術的話,多核心CPU晶元參數就只能寫成N個核心,N個線程。下圖給出了2核心CPU無超線程和有超線程的示意圖。

2. 核心結構研究

多核心CPU的結構分成 同構 (homogeneous)多核和 異構 (heterogeneous)多核兩類,同構多核是指晶元內多個CPU核心的結構是相同的,而異構多核是指晶元內多個CPU核心的結構各不相同。面對不同的應用場景,研究核心結構的實現方式對CPU整體性能至關重要。核心本身的結構,關繫到整個晶元的面積、功耗和性能。怎樣繼承和發展傳統CPU的成果,也直接影響多核的性能和實現周期。同時,核心所用的指令系統對系統的實現也是很重要的,多核心採用相同的指令系統還是不同的指令系統,能否運行操作系統等,也是設計者要研究的重要問題。

3.Cache 設計技術

CPU和主存儲器之間的速度差距對多核心CPU來說是個突出的矛盾,因此必須使用多級Cache來緩解。可分為共享一級Cache、共享二級Cache和共享主存三種方式。多核心CPU一般採用共享二級Cache的結構,即每個CPU核心擁有私有的一級Cache,並且所有CPU核心共享二級Cache。

Cache本身的體系結構設計直接關繫到系統整體性能。但是在多核心CPU中,共享Cache或獨有Cache孰優孰劣、是否在片上建立多級Cache、以及建立幾級Cache等,對整個晶元尺寸、功耗、布局、性能以及運行效率等都有很大的影響,需要認真研究和慎重對待。同時還要考慮多級Cache引發的一致性問題。

4. 核心間通信技術

多核心CPU的各核心同時執行程序,有時需要在核心之間進行數據共享與同步,因此硬體結構必須支持CPU核心間的通信。高效通信機制是多核心CPU高性能的重要保障,比較主流的片上高效通信機制有兩種, 一種 是基於匯流排共享的Cache結構,另 一種 是基於片上的互連結構。

匯流排共享Cache結構 是指每個CPU核心擁有共享的二級或三級Cache,用於保存比較常用的數據,並通過核心間的連接匯流排進行通信。它的優點是結構簡單,通信速度高,缺點是基於匯流排的結構可擴展性較差。

片上互連的結構 是指每個CPU核心具有獨立的處理單元和Cache,各個CPU核心通過交叉開關電路或片上網路等方式連接在一起。各個CPU核心間通過消息進行通信。這種結構的優點是可擴展性好,數據帶寬有保證,缺點是硬體結構復雜,且軟體改動較大。

5. 匯流排設計技術

傳統CPU中,Cache不命中或訪問存儲器事件都會對CPU的執行效率產生負面影響,而匯流排介面單元(BIU)的工作效率會決定此影響的程度。在多核心CPU中,當多個CPU核心同時要求訪問內存,或多個CPU核心內私有Cache同時出現Cache不命中事件時,BIU對這些訪問請求的仲裁機制效率,以及對外存儲訪問的轉換機制的效率決定了多核心CPU系統的整體性能。

6. 針對多核心的操作系統

對於多核心CPU,優化操作系統的 任務調度 是提升執行效率的關鍵。任務調度演算法有 全局 隊列調度和 局部 隊列調度之分。前者是指操作系統維護一個全局的任務等待隊列,當系統中有一個CPU核心空閑時,操作系統就從全局任務等待隊列中選取就緒任務開始在此核心上執行。其優點是CPU核心利用率較高。後者是指操作系統為每個CPU核心維持一個局部的任務等待隊列,當系統中有一個CPU核心空閑時,便從該核心的任務等待隊列中選取就緒任務來執行。其優點是有利於提高CPU核心局部Cache命中率。大多數的多核心CPU操作系統採用的是基於全局隊列的任務調度演算法。

多核心CPU的中斷處理和單核CPU有很大不同。CPU核心之間需要通過中斷方式進行通信和協調,所以,CPU核心的本地中斷控制器和仲裁各CPU核心之間中斷的全局中斷控制器需要封裝在晶元內部。

另外,多核心CPU操作系統是一個多任務系統。由於不同任務會競爭共享資源,因此需要系統提供同步與互斥機制。而傳統的用於單核心CPU的解決機制並不能滿足多核心的情況,需要利用硬體提供的「讀-修改-寫」的原始操作或其他同步互斥機制來進行保證。

7. 低功耗設計技術

每兩三年CPU晶體管密度和功耗密度都會翻倍。低功耗和熱優化設計已經成為多核心CPU設計的重點。需要同時在操作系統級、演算法級、結構級、電路級等多個層次上考慮。每個層次上實現的效果不同,抽象層次越高,功耗和溫度降低的效果越明顯。

8. 可靠性及安全性設計技術

在今天的信息社會,CPU的應用無處不在,對CPU的可靠性和安全性提出了更高要求。一方面多核心CPU復雜性提高,低電壓、高主頻、高溫度對維持晶元安全運行帶來挑戰。另一方面,來自外界惡意攻擊越來越多,手段越來越先進,高可靠、安全性設計技術越來越受到重視。

要弄明白多核心CPU是如何工作,要從應用程序、操作系統和CPU核心一起來分析。Windows操作系統作為任務調度者,按照 進程 (Process)和 線程 (Thread)為應用程序(Program)分配程序執行的硬體資源——CPU核心。一個進程對應一個應用程序,但是一個應用程序可以同時對應多個進程,通過多個進程來完成這個程序的執行。

應用程序未執行的時候是「靜態」的,程序一旦被用戶啟動執行,就被操作系統接管變成「動態」的了。操作系統按照一個一個的 進程 管理著一批被用戶啟動了的程序。所以一個 進程 可以看作是一個「執行中的程序」,進程中包括了由操作系統分配給這個程序的基本資源。

一個進程又被細分為多個 線程 ,只有 線程 才能通過操作系統獲得CPU核心的使用許可權來讓自己運行。只包含一個線程的進程可以叫做 單線程 程序,如果包含多個線程的進程,就可以叫做 多線程 程序了。

程序的線程要想獲得CPU時間,必須進入操作系統的線程隊列排隊,經過操作系統調度之後,獲得某個CPU核心的執行時間。操作系統對CPU核心的分派是非常復雜的過程,誰也無法用簡短的文字說清楚具體詳細的過程。以下按單核心CPU和4核心CPU兩種情況來示意說明,程序進程的一個個線程,是如何分派到CPU核心上進行執行的[7]。

如果CPU是單核心的話,而且沒有採取超線程技術,線程隊列就只有1個,線程的選擇也只有1個。如果採取了超線程技術,單核心就擴展成2個邏輯核心,線程隊列就有2個,線程的選擇就有2個。

如果站在多核心CPU角度看,每個CPU核心不斷從操作系統收到要執行的軟體線程,按照程序指令去完成規定任務,它可能要使用存儲器、運算器、輸入輸出等部件,還要與其它CPU核心進行通信和傳遞數據,完成任務後還要報告。這些過程可看成一個一個的事件,都要通過事件中斷處理部件來協調。多核心CPU的硬體調度處理模式大致有三種[8][18]。

1. 對稱多處理 (Symmetric Multi-Processing,簡稱 SMP )是目前使用最多的模式。在SMP模式下,一個操作系統同等地管理著各個CPU核心,並為各個核心分配工作負載。目前,大多數的操作系統都支持SMP模式,例如Linux,Windows,Vxworks等。另外,這種模式通常用在同構多核CPU上,因為異構多核CPU的結構不同,實現SMP比較復雜。

2. 非對稱多處理 (Asymmetric Multi-Processing,簡稱 AMP )是指多個核心相對獨立地運行著不同的任務,每個核心可能運行不同的操作系統或裸機程序,或者不同版本的操作系統,但是有一個 主導 的CPU核心,用來控制其它 從屬 的CPU核心以及整個系統。這種模式大多情況是異構多核心CPU。例如MCU + DSP,MCU +FPGA等。當然,同構多核心CPU也可以用。

3. 邊界多處理 (Bound Multi-processing,簡稱 BMP )與SMP基本相同,唯一區別是開發者可以定義某個任務僅在某個CPU核心上執行。

以上只是原理性的簡單介紹,如果要了解多核心CPU的硬體調度原理和實現細節,恐怕只能打進Intel或AMD公司內部,才能了解更多技術詳情。

多核心CPU中的核心是否越多越好,多CPU系統中的CPU晶元是否也越多越好?同樣條件下是否具有超線程就比不具有超線程的好?回答是仁者見仁,智者見智。主要是要分清用在哪些場合,不能一概而論。

首先,多核心CPU或者多CPU之間需要同步和調度,這是以時間開銷和算力損耗為代價的。如果CPU核心數或者CPU晶元數增加對系統處理能力提升是加分項的話,同步和調度帶來的時間開銷和算力損耗就是減分項。如果加分大於減分,而且成本增加可接受的話,則方案是可行的,否則就是不值當的方案。系統方案的評判除了要考慮CPU核心數量以外,還要考慮操作系統的差異、調度演算法的不同,應用和驅動程序特點等因素,它們共同影響著系統的處理速度。以下是一些文章的討論觀點。

1 . CPU核心越多,執行速度不一定越快。這里說的是「不一定」,因為一個線程可能要等待其它線程或進程完成後,才能輪到它繼續執行。在它等待別的線程或進程的時候,即便排隊隊列輪到了它,它也只能放棄運行權利而繼續等待,讓隊列後續線程超過它在CPU上執行。對它這個線程的程序來說是變慢了,但對系統來說,它起碼它讓開了位置讓其它線程繼續運行。多核心CPU肯定可以加速批量進程的執行,但對某個進程或者某類型的程序來說,未必是最快的。

2 .智能手機要向用戶提供優秀的使用體驗,不僅僅是靠CPU性能一個方面。除了CPU核心數這個因素以外,還應包括決定通信質量的基帶晶元的性能,再加上GPU的性能、游戲和VR應用性能等。系統綜合性能好才是真的好。

3 .聯發科2015年推出10核心、3重架構等手機SoC晶元技術,後來又開發了10核心、4重架構helio X30,通過多重架構的方式來降低功耗。雖然聯發科在多核心SoC方面的技術優勢是毋庸置疑,但是高通在2015年底推出了僅有四個核心的驍龍820晶元,蘋果手機較早使用的SoC晶元也不過是雙核心而已。這些都表明,對於智能手機而言,多核心CPU或SoC的意義到底大不大,不可絕對斷言,需要從系統角度分析才能得出正確結論。

結語 :多核心CPU和SoC是為了滿足整機系統對處理能力和處理速度不斷提升的需求,在單核心CPU沿著摩爾定律向前發展,受到了晶元功率極限阻礙時,人們不得不選擇的一種突破路線。多核心CPU推動著操作系統的更新和升級,操作系統又決定了多核心CPU效能的發揮。多核心CPU技術的難點是多核心之間的信息傳遞、數據同步和任務調度等。系統性能優劣不能只考慮CPU核心數量,還要考慮操作系統、調度演算法、應用和驅動程序等。多核心CPU技術和FinFET等3D晶元技術可以看作是延續摩爾定律生命的兩大關鍵技術。

『貳』 單片機和soc有什麼區別

單片機和soc的區別::
MCU,即微控制器,是以前的一種做法,類似於單片機,只是集成了一些更多的功能模塊,
它本質上仍是一個完整的單片機,有處理器,有各種介面,所有的開發都是基於已經存在的系統架構,應用者要做的就是開發軟體程序和加外部設備。
SOC,是個整體的設計方法概念,它指的是一種晶元設計方法,集成了各種功能模塊,每一種功能都是由硬體描述語言設計程序,然後在SOC內由電路實現的;
每一個模塊不是一個已經設計成熟的ASIC「器件」,只是利用晶元的一部分資源去實現某種傳統的功能。這種功能是沒有限定的,可以是存儲器,當然也可以是處理器,如果這片SOC的系統目標就是處理器,那麼做成的SOC就是一個MCU;
如果要做的是一個完整的帶有處理器的系統,那麼MCU就是整個SOC中的一個模塊,一個IP。
SOC可以做成批量生產的通用器件,如MCU;也可以針對某一對象專門設計,可以集成任何功能,不像MCU那樣有自身架構的限定。
它的體積可以很少,特殊設計的晶元可以根據需要減少體積、降低功耗,在比較大的范圍內不受硬體架構的限制(當然,它也是會受晶元自身物理結構的限制,如晶圓類型、大小等)。
SOC的一大特點就是其在模擬時可以連同硬體環境一起模擬,模擬工具不只支持對軟體程序的編譯調試,同時也支持對硬體架構的編譯調試,如果不滿意硬體架構設計,想要加一個存儲器,或是減少一個介面都可以通過程序直接更改,這一點,MCU的設計方法是無法實現的,MCU的方法中,硬體架構是固定的,是不可更改的,多了只能浪費,少了也只能在軟體上想辦法或是再加,存儲空間不夠可以再加,如果是介面不夠則只能在軟體上想辦法復用。模擬之後可以通過將軟、硬體程序下載到FPGA上進行實際硬體調試,以便更真實地進行器件測試。
如果硬體調試成功後直接投片生產成「固定結構的晶元」,則其為普通的SOC;如果其硬體就是基於FPGA的,也就是說它是「用FPGA做為最終實現」的,它在以後也可以隨時進行硬體升級與
調試的,叫它為SOPC的設計方法,所以說SOPC是SOC的一種解決方案。
SOPC設計靈活、高效,且具有成品的硬體可重構特性(SOC在調試過程中也可硬體重構),的適用性可以很廣,針對不同的對象,它可以進行實時的結構調整,如減少程序存儲空間、增加介面數目等,這一附加價值是任何固定結構IC所無法具備的,但它的價格可能會比批量生產的固定結構IC要貴得多。

『叄』 集成電路設計、VLSI、SoC、FPGA 等的區別 計算機系統結構 的研究分支

1、包含范圍不同

總體來說,集成電路設計的范圍較為廣泛,包含了各種電路設計,而其他的則被包含在裡面。

集成電路設計是指以集成電路、超大規模集成電路為目標的設計流程。集成電路設計涉及對電子器件、器件間互連線模型的建立。所有的器件和互連線都需安置在一塊半導體襯底材料之上,這些組件通過半導體器件製造工藝(例如光刻等)安置在單一的硅襯底上,從而形成電路。

2、各自所指的電路不同

VLSI是超大規模集成電路的簡稱,指幾毫米見方的矽片上集成上萬至百萬晶體管、線寬在1微米以下的集成電路。

SoC稱為系統級晶元,也有稱片上系統,意指它是一個產品,是一個有專用目標的集成電路,其中包含完整系統並有嵌入軟體的全部內容。同時它又是一種技術,用以實現從確定系統功能開始,到軟/硬體劃分,並完成設計的整個過程。

FPGA是在PAL、GAL等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可編程器件門電路數有限的缺點。

(3)編譯器基礎架構SOC擴展閱讀

集成電路設計硬體實現

對於不同的設計要求,工程師可以選擇使用半定製設計途徑,例如採用可編程邏輯器件(現場可編程邏輯門陣列等)或基於標准單元庫的專用集成電路來實現硬體電路;也可以使用全定製設計,控制晶體管版圖到系統結構的全部細節。

1、全定製設計

這種設計方式要求設計人員利用版圖編輯器來完成版圖設計、參數提取、單元表徵,然後利用這些自己設計的單元來完成電路的構建。

通常,全定製設計是為了最大化優化電路性能。如果標准單元庫中缺少某種所需的單元,也需要採取全定製設計的方法完成所需的單元設計。

2、半定製設計

與全定製設計相對的設計方式為半定製設計。簡而言之,半定製集成電路設計是基於預先設計好的某些邏輯單元。例如,設計人員可以在標准組件庫(通常可以從第三方購買)的基礎上設計專用集成電路,從中選取所需的邏輯單元(例如各種基本邏輯門、觸發器等)來搭建所需的電路。

也可以使用可編程邏輯器件來完成設計,這類器件的幾乎所有物理結構都已經固定在晶元之中,僅剩下某些連線可以由用戶編程決定其連接方式。與這些預先設計好的邏輯單元有關的性能參數通常也由其供應商提供,以方便設計人員進行時序、功耗分析。在半定製的現場可編程邏輯門陣列上實現設計的優點是開發周期短、成本低。

參考資料來源:網路—集成電路設計

參考資料來源:網路—VLSI

參考資料來源:網路—SoC

參考資料來源:網路—FPGA

『肆』 MCU,SOC是什麼東西

MCU,即微控制器,是以前的一種做法,類似於單片機,只是集成了一些更多的功能模塊,它本質上仍是一個完整的單片機,有處理器,有各種介面,所有的開發都是基於已經存在的系統架構,應用者要做的就是開發軟體程序和加外部設備。
SOC,是個整體的設計方法概念,它指的是一種晶元設計方法,集成了各種功能模塊,每一種功能都是由硬體描述語言設計程序,然後在SOC內由電路實現的;每一個模塊不是一個已經設計成熟的ASIC「器件」,只是利用晶元的一部分資源去實現某種傳統的功能。這種功能是沒有限定的,可以是存儲器,當然也可以是處理器,如果這片SOC的系統目標就是處理器,那麼做成的SOC就是一個MCU;如果要做的是一個完整的帶有處理器的系統,那麼MCU就是整個SOC中的一個模塊,一個IP。SOC可以做成批量生產的通用器件,如MCU;也可以針對某一對象專門設計,可以集成任何功能,不像MCU那樣有自身架構的限定。它的體積可以很少,特殊設計的晶元可以根據需要減少體積、降低功耗,在比較大的范圍內不受硬體架構的限制(當然,它也是會受晶元自身物理結構的限制,如晶圓類型、大小等)。
SOC的一大特點就是其在模擬時可以連同硬體環境一起模擬,模擬工具不只支持對軟體程序的編譯調試,同時也支持對硬體架構的編譯調試,如果不滿意硬體架構設計,想要加一個存儲器,或是減少一個介面都可以通過程序直接更改,這一點,MCU的設計方法是無法實現的,MCU的方法中,硬體架構是固定的,是不可更改的,多了只能浪費,少了也只能在軟體上想辦法或是再加,存儲空間不夠可以再加,如果是介面不夠則只能在軟體上想辦法復用。模擬之後可以通過將軟、硬體程序下載到FPGA上進行實際硬體調試,以便更真實地進行器件測試。
如果硬體調試成功後直接投片生產成「固定結構的晶元」,則其為普通的SOC;如果其硬體就是基於FPGA的,也就是說它是「用FPGA做為最終實現」 的,它在以後也可以隨時進行硬體升級與調試的,我們就叫它為SOPC的設計方法,所以說SOPC是SOC的一種解決方案。
SOPC設計靈活、高效,且具有成品的硬體可重構特性(SOC在調試過程中也可硬體重構),它的適用性可以很廣,針對不同的對象,它可以進行實時的結構調整,如減少程序存儲空間、增加介面數目等,這一附加價值是任何固定結構IC所無法具備的,但它的價格可能會比批量生產的固定結構IC要貴得多!

『伍』 gcc的結構

GCC的外部介面長得像一個標準的Unix編譯器。使用者在命令列下鍵入gcc之程序名,以及一些命令參數,以便決定每個輸入檔案使用的個別語言編譯器,並為輸出程序碼使用適合此硬體平台的組合語言編譯器,並且選擇性地執行連接器以製造可執行的程序。
每個語言編譯器都是獨立程序,此程序可處理輸入的原始碼,並輸出組合語言碼。全部的語言編譯器都擁有共通的中介架構:一個前端解析符合此語言的原始碼,並產生一抽象語法樹,以及一翻譯此語法樹成為GCC的暫存器轉換語言〈RTL〉的後端。編譯器最佳化與靜態程序碼解析技術(例如FORTIFY_SOURCE,一個試圖發現緩沖區溢位〈buffer overflow〉的編譯器)在此階段應用於程序碼上。最後,適用於此硬體架構的組合語言程序碼以Jack Davidson與Chris Fraser發明的演算法產出。
幾乎全部的GCC都由C寫成,除了Ada前端大部分以Ada寫成。 前端的功能在於產生一個可讓後端處理之語法樹。此語法解析器是手寫之遞歸語法解析器。
直到2004年,程序的語法樹結構尚無法與欲產出的處理器架構脫鉤。而語法樹的規則有時在不同的語言前端也不一樣,有些前端會提供它們特別的語法樹規則。
在2005年,兩種與語言脫鉤的新型態語法樹納入GCC中。它們稱為GENERIC與GIMPLE。語法解析變成產生與語言相關的暫時語法樹,再將它們轉成GENERIC。之後再使用gimplifier技術降低GENERIC的復雜結構,成為一較簡單的靜態唯一形式(Static Single Assignment form,SSA)基礎的GIMPLE形式。此形式是一個與語言和處理器架構脫鉤的全域最佳化通用語言,適用於大多數的現代編程語言。 GCC後端的行為因不同的前處理器宏和特定架構的功能而不同,例如不同的字元尺寸、呼叫方式與大小尾序等。後端介面的前半部利用這些訊息決定其RTL的生成形式,因此雖然GCC的RTL理論上不受處理器影響,但在此階段其抽象指令已被轉換成目標架構的格式。
GCC的最佳化技巧依其釋出版本而有很大不同,但都包含了標準的最佳化演算法,例如循環最佳化、執行緒跳躍、共通程序子句消減、指令排程等等。而RTL的最佳化由於可用的情形較少,且缺乏較高階的資訊,因此相比較起來,增加的GIMPLE語法樹形式,便顯得比較不重要。
後端經由一次重讀取步驟後,利用描述目標處理器的指令集時所取得的信息,將抽象暫存器替換成處理器的真實暫存器。此階段非常復雜,因為它必須關注所有GCC可移植平台的處理器指令集的規格與技術細節。
後端的最後步驟相當公式化,僅僅將前一階段得到的匯編語言代碼藉由簡單的子常式轉換其暫存器與內存位置成相對應的機器碼。

『陸』 什麼是soc架構

SoC技術的發展

集成電路的發展已有40 年的歷史,它一直遵循摩爾所指示的規律推進,現已進入深亞微米階段。由於信息市場的需求和微電子自身的發展,引發了以微細加工(集成電路特徵尺寸不斷縮 小)為主要特徵的多種工藝集成技術和面向應用的系統級晶元的發展。隨著半導體產業進入超深亞微米乃至納米加工時代,在單一集成電路晶元上就可以實現一個復 雜的電子系統,諸如手機晶元、數字電視晶元、DVD 晶元等。在未來幾年內,上億個晶體管、幾千萬個邏輯門都可望在單一晶元上實現。 SoC ( System - on - Chip)設計技術始於20世紀90年代中期,隨著半導體工藝技術的發展, IC設計者能夠將愈來愈復雜的功能集成到單矽片上, SoC正是在集成電路( IC)向集成系統( IS)轉變的大方向下產生的。1994 年Motorola發布的Flex Core系統(用來製作基於68000和PowerPC的定製微處理器)和1995年LSILogic公司為Sony公司設計的SoC,可能是基於IP ( Intellectual Property)核完成SoC設計的最早報導。由於SoC可以充分利用已有的設計積累,顯著地提高了ASIC的設計能力,因此發展非常迅速,引起了工業 界和學術界的關注。

SOC是集成電路發展的必然趨勢,1. 技術發展的必然2. IC 產業未來的發展。

SoC基本概念

SoC的定義多種多樣,由於其內涵豐富、應用范圍廣,很難給出准確定義。一般說來, SoC稱為系統級晶元,也有稱片上系統,意指它是一個產品,是一個有專用目標的集成電路,其中包含完整系統並有嵌入軟體的全部內容。同時它又是一種技術, 用以實現從確定系統功能開始,到軟/硬體劃分,並完成設計的整個過程。從狹義角度講,它是信息系統核心的晶元集成,是將系統關鍵部件集成在一塊晶元上;從 廣義角度講, SoC是一個微小型系統,如果說中央處理器(CPU)是大腦,那麼SoC就是包括大腦、心臟、眼睛和手的系統。國內外學術界一般傾向將SoC定義為將微處 理器、模擬IP核、數字IP核和存儲器(或片外存儲控制介面)集成在單一晶元上,它通常是客戶定製的,或是面向特定用途的標准產品。

SoC定義的基本內容主要表現在兩方面:其一是它的構成,其二是它形成過程。系統級晶元的構成可以是系統級晶元控制邏輯模塊、微處理器/微控制器CPU 內核模塊、數字信號處理器DSP模塊、嵌入的存儲器模塊、和外部進行通訊的介面模塊、含有ADC /DAC 的模擬前端模塊、電源提供和功耗管理模塊,對於一個無線SoC還有射頻前端模塊、用戶定義邏輯(它可以由FPGA 或ASIC實現)以及微電子機械模塊,更重要的是一個SoC 晶元內嵌有基本軟體(RDOS或COS以及其他應用軟體)模塊或可載入的用戶軟體等。系統級晶元形成或產生過程包含以下三個方面:

1) 基於單片集成系統的軟硬體協同設計和驗證;

2) 再利用邏輯面積技術使用和產能佔有比例有效提高即開發和研究IP核生成及復用技術,特別是大容量的存儲模塊嵌入的重復應用等;

3) 超深亞微米(UDSM) 、納米集成電路的設計理論和技術。

SoC設計的關鍵技術

具體地說, SoC設計的關鍵技術主要包括匯流排架構技術、IP核可復用技術、軟硬體協同設計技術、SoC驗證技術、可測性設計技術、低功耗設計技術、超深亞微米電路實 現技術等,此外還要做嵌入式軟體移植、開發研究,是一門跨學科的新興研究領域。圖1是SoC設計流程的一個簡單示意圖。

SoC的發展趨勢及存在問題

當前晶元設計業正面臨著一系列的挑戰,系統晶元SoC已經成為IC設計業界的焦點, SoC性能越來越強,規模越來越大。SoC晶元的規模一般遠大於普通的ASIC,同時由於深亞微米工藝帶來的設計困難等,使得SoC設計的復雜度大大提 高。在SoC設計中,模擬與驗證是SoC設計流程中最復雜、最耗時的環節,約占整個晶元開發周期的50%~80% ,採用先進的設計與模擬驗證方法成為SoC設計成功的關鍵。SoC技術的發展趨勢是基於SoC開發平台,基於平台的設計是一種可以達到最大程度系統重用的 面向集成的設計方法,分享IP核開發與系統集成成果,不斷重整價值鏈,在關注面積、延遲、功耗的基礎上,向成品率、可靠性、EMI 雜訊、成本、易用性等轉移,使系統級集成能力快速發展。

當前無論在國外還是國內,在SoC設計領域已展開激烈的競爭。SoC按指 令集來劃分,主要分x86系列(如SiS550) 、ARM 系列(如OMAP) 、M IPS系列(如Au1500 ) 和類指令系列(如M 3Core)等幾類,每一類都各有千秋。國內研製開發者主要基於後兩者,如中科院計算所中科SoC (基於龍芯核,兼容M IPSⅢ指令集) 、北大眾志(定義少許特殊指令) 、方舟2號(自定義指令集) 、國芯C3 Core (繼承M3 Core)等。開發擁有自主知識產權的處理器核、核心IP和匯流排架構,同時又保證兼容性(集成第三方IP) ,將使我國SoC發展具有更強的競爭力,從而帶動國內IC產業往深度、廣度方向發展。

『柒』 何謂SOC架構

在數字時代,擁有一個安全運營中心(SOC)對於每個組織的網路安全都是至關重要的。然而,並非每個SOC都能有效應對網路威脅和攻擊。這背後的主要原因是缺乏標准化的SOC框架。SOC框架要求設計一份文件,提供指導方針、要求和規范,以有效支持網路安全運營。

開放Web應用程序安全項目(OWASP)引入了SOC框架,以便組織使用有效的技術控制(如安全信息和事件管理(SIEM)系統)以及組織控制(如流程)和其他人為因素來應對網路安全事件。除了應對網路安全事件外,SOC的其他主要目標還包括使組織對未來的攻擊具有彈性;提供有效的報告機制,及時發現威脅。

一、SOC框架的必要條件

要建立一個強大的SOC框架,組織必須:

1.1定義一個策略

擁有一個涉及關鍵利益相關者和執行者的戰略,將允許一個框架實現SOC的目的和業務的某些目標。該戰略還應包括 足夠的技術資源、關鍵專業人員的專門知識和脆弱性評估 的范圍。有效的溝通,與往常一樣,是允許透明的關鍵。

1.2實現基於策略的基礎結構

一旦制定了戰略,就應該建立 基礎設施,包括內部和外部威脅情報工具,如新聞源和漏洞警報 。分析和監控工具可以有效地檢測威脅。基礎設施還應該包括防火牆和入侵保護系統(IPS)/入侵檢測系統(IDS)等安全工具的使用。其他基本工具將在後面幾節中討論。

二、用有效的工具和解決方案建立強大的SOC

安全信息和事件管理(SIEM)工具被認為是非常有效的監控工具,因為它提供了安全警報的實時分析。這實際上允許數據分析、日誌收集和報告安全事件的功能。由於資源的枯竭,對於一個組織來說,維護兩個獨立的SIEM解決方案是很正常的:一個用於數據安全,另一個用於遵守法律。

SIEM不再作為獨立的工具使用,有時還與其他工具結合使用,以加強安全控制。為此,安全從業者更喜歡安全編排、自動化和響應(SOAR)平台。這種技術使安全數據的收集自動化,並相應地做出響應。它通過修補漏洞來加速事件響應。由於自動化特性,SOAR對於與SIEM集成的組織來說變得越來越普遍。

按照Gartner的說法,SOAR是多種技術的集合,允許公司從不同的來源(多數情況下來自SIEM)收集數據和安全警報。組織可以同時使用機器和人力進行威脅分析和補救。

在SOC中,SOAR的作用是不可或缺的。如今,網路安全技能差距正在急劇擴大,由於其自動化特性,SOAR在填補這一差距方面發揮了重要作用。通過自動化各種日常和手工任務,SOAR最小化了對安全專業人員的需求。因此,SOAR是SOC框架中的一個重要的安全組成部分。

三、誰是SOC組的成員?

除了網路安全解決方案和技術,一個成功的SOC框架還嚴重依賴於組成該團隊的安全專業人員,如計算機安全事件響應團隊(CSIRT)。SOC小組的主要成員包括:

3.1合規審計

對於任何類型的組織來說,遵守監管標准都是避免處罰和罰款的必要條件。合規審核員確保採取必要的措施以滿足合規標准,如《通用數據保護條例》(GDPR)。

3.2安全分析人員

安全分析師負責檢測、分析和響應網路事件。它們還處理警報的實時分類。

3.3事件響應和取證調查

事件響應人員執行安全警報的事件響應計劃、初始評估和威脅分析。然而,取證調查人員通過收集情報、證據和其他與威脅相關的信息來分析事件。

3.4SOC經理

他們是領導SOC團隊、管理SOC團隊並幫助確定網路安全預算的高層管理人員。

結論

為了使SOC有效,遵循SOC框架是必要的。雖然目前還缺乏SOC的框架,但在本文中,我們已經了解了構成可靠SOC的最佳SOC框架。這個框架結合了一些工具和技術,以及運行SOC的安全專家。

你是否擔心公司的網路安全?你對公司目前的安全狀況感到不舒服嗎?Logsign為世界各地的企業提供下一代SIEM和安全編排、自動化和響應(SOAR)平台。

https://digitalguardian.com/blog/what-security-operations-center-soc

https://www.mitre.org/sites/default/files/publications/pr-13-1028-mitre-10-strategies-cyber-ops-center.pdf

https://www.ncsc.gov.uk/guidance/security-operations-centre-soc-buyers-guide

https://www.csoonline.com/article/2124604/what-is-siem-software-how-it-works-and-how-to-choose-the-right-tool.html

https://resources.infosecinstitute.com/security-orchestration-automation-and-response-soar/#gref

閱讀全文

與編譯器基礎架構SOC相關的資料

熱點內容
安卓系統下的軟體怎麼移到桌面 瀏覽:78
windows拷貝到linux 瀏覽:752
mdr軟體解壓和別人不一樣 瀏覽:886
單片機串列通信有什麼好處 瀏覽:321
游戲開發程序員書籍 瀏覽:844
pdf中圖片修改 瀏覽:271
匯編編譯後 瀏覽:476
php和java整合 瀏覽:832
js中執行php代碼 瀏覽:444
國產單片機廠商 瀏覽:57
蘋果手機怎麼設置不更新app軟體 瀏覽:287
轉行當程序員如何 瀏覽:496
蘋果id怎麼驗證app 瀏覽:866
查看手機命令 瀏覽:956
抖音反編譯地址 瀏覽:228
如何加密軟體oppoa5 瀏覽:235
java從入門到精通明日科技 瀏覽:98
拆解汽車解壓視頻 瀏覽:600
新版百度雲解壓縮 瀏覽:594
android上下拉刷新 瀏覽:883