概述
在 摩爾定律 的推動下,積體電路工藝取得了高速發展,單位面積上的電晶體數量不斷增加。片上系統(System-on-Chip,SoC)具有整合度高、功耗低、成本低等優勢,已經成為大規模積體電路系統設計的主流方向,解決了通訊、影像、計算、消費電子等領域的眾多挑戰性的難題。隨著片上系統SoC的應用需求越來越豐富,SoC需要整合越來越多的不同應用的IP(Intellectual Property)。另外,片上多核系統MPSoC(MultiProcessor-System-on-Chip)也已經成為必然的發展趨勢。
隨著SoC的高度整合以及MPSoC的高速發展,對片上通訊提出了更高的要求。片上網路技術(Network-on-Chip,NoC)在這個時候也得到了極大的應用,它本質上就是提供一種解決晶片內不同IP或者不同核心之間資料傳輸的片上通訊方案。
1.1 片上互連架構的發展
片上互聯架構的發展主要經歷了三個階段: 共享匯流排 (Bus)、 Crossbar 以及 片上網路 (NoC)。
1.1.1 BUS 共享匯流排結構
傳統的SoC片上通訊結構一般採用共享匯流排的方式。在共享匯流排結構中,所有的處理器和 IP 模組共享一條或多條匯流排。當有多個處理器同時訪問一條匯流排時候需要有仲裁機制來決定匯流排的所有權。共享匯流排片上通訊系統結構一般比較簡單,且硬體代價也小。 但是頻寬有限,而且頻寬也沒法隨著IP的增多而進行擴充套件 。1996年, ARM 公司提出的AMBA匯流排廣泛應用於嵌入式微處理器的片上匯流排,現在已經成為事實上的工業標準。
1.1.2 Crossbar 結構
對於傳統的共享匯流排,當多個處理器同時去訪問不同的 IP 的時候,因為需要仲裁機制去決定匯流排的所有權,所以傳統的匯流排方式在這種情況下就會造成一定的瓶頸,最大的問題就是 訪問的延時 。在這種情況下,為了滿足多處理同時訪問的需求和提高整個系統的頻寬,一種新的解決方案 Crossbar 孕育而生,如下圖 1-2 就是一個典型的 Crossbar 結構。
Crossbar 結構 可以同時實現多個主從裝置的資料傳輸,也能實現一個主裝置對多個從裝置進行資料廣播,如圖1-3 所示。
Crossbar 主要面向對超高頻寬要求的系統,或者是主裝置有經常向多個從裝置傳送廣播資料需求的系統。如果互連元件太多,這種結構的內部走線會非常多,不利於物理實現,對數字後端設計帶來很大挑戰。
比較常見的 Crossbar 型別 IP 如 ARM 公司的 NIC-400 。
在28奈米制程上,5x4 的配置下,這個匯流排的頻率可以跑到 300Mhz。如果進一步 增加主從對數量,那麼由於扇出增加,電容和走線增加,就必須透過插入更多的暫存器來增加頻率。但這樣一來,從主到從的延遲就會相應增加 。要想進一步提高到頻率,要麼使用更好的工藝,要麼插入暫存器,這樣,讀寫延時就會增加。要知道處理器訪問二級快取的延遲通常也不過 10多 個處理器週期。所以,要達到更高的頻率,支援更多的主從裝置,就需要引入 環狀匯流排CCN 系列,如下圖:
1.1.3 Ring 結構
環型(Ring)結構 ,將網路中的節點首尾相連,形成一個環狀,各個模組之間互動方便,不需要主控中轉,功能單元透過網路介面將資訊送上環,訊息在環上逐個節點進行傳遞,每次只能前進一個節點,訊息到達與目的功能單元連線的節點後被送下環,轉到網路介面,進而傳遞給目的功能單元。
環型互聯進一步劃分為 單環 和 雙環 ,單環只有一個方向(順時針或逆時針),如圖1-4所示,即使是相鄰節點,也可能需要經過所有節點才能到達;
而雙環有兩個方向(順時針和逆時針),如圖1-5 所示:
訊息可以根據源和目的的距離自動選擇最近的方向,這樣的設計可以保證任意兩個節點之間的距離不超過總數的一半。因此,有效降低延遲(相鄰節點之間延遲不超過60ns),並極大提高效能(最高吞吐量可達數百G),同時方便擴充套件(只需在環上增加一個節點即可)。但隨著核心數量的增加,環會越來越長,從而導致延遲越來越大,當核心數多於12個以後,整體效能下降明顯。
比較常見的 Ring 型別 IP 如 ARM 公司的 CCN 系列 :
CCN 匯流排上的每一個節點,除了可以和相鄰的兩個節點通訊之外,還可以附加兩個節點元件,比如處理器組,三級快取,記憶體控制器等 。在節點內部,還是交叉的,而在節點之間,是環狀的 。這樣使得匯流排頻率在某種程度上擺脫了連線裝置數量的限制(當然,還是受佈線等因素的影響)。當然,代價就是節點間通訊更大的平均延遲。 為了減少平均延遲,可以把經常互相訪問的節點放在靠近的位置 。
在有些系統裡,要求連線更多的裝置,並且,頻率要求更高。此時環狀匯流排也不夠用了。這時就需要 Mesh 結構出馬了。## 概述
在 摩爾定律 的推動下,積體電路工藝取得了高速發展,單位面積上的電晶體數量不斷增加。片上系統(System-on-Chip,SoC)具有整合度高、功耗低、成本低等優勢,已經成為大規模積體電路系統設計的主流方向,解決了通訊、影像、計算、消費電子等領域的眾多挑戰性的難題。隨著片上系統SoC的應用需求越來越豐富,SoC需要整合越來越多的不同應用的IP(Intellectual Property)。另外,片上多核系統MPSoC(MultiProcessor-System-on-Chip)也已經成為必然的發展趨勢。
隨著SoC的高度整合以及MPSoC的高速發展,對片上通訊提出了更高的要求。片上網路技術(Network-on-Chip,NoC)在這個時候也得到了極大的應用,它本質上就是提供一種解決晶片內不同IP或者不同核心之間資料傳輸的片上通訊方案。
1.1 片上互連架構的發展
片上互聯架構的發展主要經歷了三個階段: 共享匯流排 (Bus)、 Crossbar 以及 片上網路 (NoC)。
1.1.1 BUS 共享匯流排結構
傳統的SoC片上通訊結構一般採用共享匯流排的方式。在共享匯流排結構中,所有的處理器和 IP 模組共享一條或多條匯流排。當有多個處理器同時訪問一條匯流排時候需要有仲裁機制來決定匯流排的所有權。共享匯流排片上通訊系統結構一般比較簡單,且硬體代價也小。 但是頻寬有限,而且頻寬也沒法隨著IP的增多而進行擴充套件 。1996年, ARM 公司提出的AMBA匯流排廣泛應用於嵌入式微處理器的片上匯流排,現在已經成為事實上的工業標準。
1.1.2 Crossbar 結構
對於傳統的共享匯流排,當多個處理器同時去訪問不同的 IP 的時候,因為需要仲裁機制去決定匯流排的所有權,所以傳統的匯流排方式在這種情況下就會造成一定的瓶頸,最大的問題就是 訪問的延時 。在這種情況下,為了滿足多處理同時訪問的需求和提高整個系統的頻寬,一種新的解決方案 Crossbar 孕育而生,如下圖 1-2 就是一個典型的 Crossbar 結構。
Crossbar 結構 可以同時實現多個主從裝置的資料傳輸,也能實現一個主裝置對多個從裝置進行資料廣播,如圖1-3 所示。
Crossbar 主要面向對超高頻寬要求的系統,或者是主裝置有經常向多個從裝置傳送廣播資料需求的系統。如果互連元件太多,這種結構的內部走線會非常多,不利於物理實現,對數字後端設計帶來很大挑戰。
比較常見的 Crossbar 型別 IP 如 ARM 公司的 NIC-400 。
在28奈米制程上,5x4 的配置下,這個匯流排的頻率可以跑到 300Mhz。如果進一步 增加主從對數量,那麼由於扇出增加,電容和走線增加,就必須透過插入更多的暫存器來增加頻率。但這樣一來,從主到從的延遲就會相應增加 。要想進一步提高到頻率,要麼使用更好的工藝,要麼插入暫存器,這樣,讀寫延時就會增加。要知道處理器訪問二級快取的延遲通常也不過 10多 個處理器週期。所以,要達到更高的頻率,支援更多的主從裝置,就需要引入 環狀匯流排CCN 系列,如下圖:
1.1.3 Ring 結構
環型(Ring)結構 ,將網路中的節點首尾相連,形成一個環狀,各個模組之間互動方便,不需要主控中轉,功能單元透過網路介面將資訊送上環,訊息在環上逐個節點進行傳遞,每次只能前進一個節點,訊息到達與目的功能單元連線的節點後被送下環,轉到網路介面,進而傳遞給目的功能單元。
環型互聯進一步劃分為 單環 和 雙環 ,單環只有一個方向(順時針或逆時針),如圖1-4所示,即使是相鄰節點,也可能需要經過所有節點才能到達;
而雙環有兩個方向(順時針和逆時針),如圖1-5 所示:
訊息可以根據源和目的的距離自動選擇最近的方向,這樣的設計可以保證任意兩個節點之間的距離不超過總數的一半。因此,有效降低延遲(相鄰節點之間延遲不超過60ns),並極大提高效能(最高吞吐量可達數百G),同時方便擴充套件(只需在環上增加一個節點即可)。但隨著核心數量的增加,環會越來越長,從而導致延遲越來越大,當核心數多於12個以後,整體效能下降明顯。
比較常見的 Ring 型別 IP 如 ARM 公司的 CCN 系列 :
CCN 匯流排上的每一個節點,除了可以和相鄰的兩個節點通訊之外,還可以附加兩個節點元件,比如處理器組,三級快取,記憶體控制器等 。在節點內部,還是交叉的,而在節點之間,是環狀的 。這樣使得匯流排頻率在某種程度上擺脫了連線裝置數量的限制(當然,還是受佈線等因素的影響)。當然,代價就是節點間通訊更大的平均延遲。 為了減少平均延遲,可以把經常互相訪問的節點放在靠近的位置 。
在有些系統裡,要求連線更多的裝置,並且,頻率要求更高。此時環狀匯流排也不夠用了。這時就需要 Mesh 結構出馬了。
1.1.4 Mesh 網格結構
二維網格(mesh),這種拓撲結構可以提供更大的頻寬,而且是可以模組化,透過增加網格的行或列來增加更多的節點,ARM 的 CMN-600 就是基於 mesh 的互連 IP。
每個節點只與其同行和同列的相鄰節點連線。如上圖1-6所示,共有16個節點,每個節點連線一個網路介面,16個節點排列成4x4的網格。網格屬於多維拓撲,至少是2維,並可以逐步擴充套件到3維或更高維。
如圖1-7所示,IP Core為NoC互連的元件,NI為接入NoC的介面,R為NoC中的路由器,物理連結(Physical link)為路由器之間的連線匯流排。
圖 1-8 中,剛才提到的交叉矩陣,可以作為整個網路的某部分。而連線整個系統的,是位於NoC內的節點。每個節點都是一個小型路由, 它們之間傳輸的,是非同步的包 。這樣,就不必維持路由和路由之間很大數量的連線,從而提高頻率,也能支援更多的裝置。當然,壞處就是更長的延遲。並且它所連線每個子模組之間,頻率和拓撲結構可以是不同的。可以把需要緊密聯絡的裝置,比如CPU簇,GPU放在一個子網下減少通訊延遲。
NoC的優勢 主要體現在如下兩個方面。
- 高可擴充套件性。NoC類似 計算機網路 的結構,當互連的元件增加時,NoC的互連複雜度並不會增加很多。而傳統的簡單匯流排和交叉開關隨著互連模組的增多,其互連複雜度呈指數級增加;
- 分層設計。NoC的物理層、傳輸層和介面是分開的,使用者可以在傳輸層方便地自定義傳輸規則,而無須修改模組介面,傳輸層的更改對物理層互連的影響也不大,因此不會對NoC的時脈頻率造成顯著影響
AMBA 5 CHI協議可提供網路和資料中心等基礎設施應用所需的效能和規模。AMBA 5 CHI協議可在單個片上系統擴充套件32個或更多處理器。
還有一種環面(Torus)拓撲,與網格類似,區別在於提供了同行和同列的最遠端的兩個節點的連線,即每行和每列都是一個環。
1.2 ARM 匯流排互聯特點小結
在以 ARM 為主的 SoC系統,介面層和協議層採用AMBA協議標準、通訊層可採用多種拓撲結構,如匯流排型、Ring型、Crossbar型和Mesh型等。
面向單核系統 :
- APB協議,採用匯流排結構,用於低速外設連線;
- AHB/AHB-Lite/AXI協議,採用匯流排結構,用於高速外設連
- 接。
面向多核系統 :
- NIC 技術,採用 Crossbar 結構(擴充套件性較強,latency比較小,因為是點到點,對memory controller對頻寬分配不夠靈活),沒有固定拓撲, 不支援一致性 ,適用於簡單場景;
- NoC 技術,採用 Mesh 結構,沒有固定拓撲,採用小路由器作為節點,連線更少頻率更高, 支援一致性 ,可以連線大量裝置;
- CCI 技術,採用 Crossbar 結構,固定拓撲, 支援一致性 ,適用於少量處理器;
- CCN 技術,採用 Ring 結構,透過固定交叉點連成一個環,延遲大但頻率高, 支援一致性 ,適用於16核以上處理器;
- CMN 技術,採用 Mesh 結構,透過固定交叉點形成 NxN 網路, 支援一致性 ,適用於更多處理器核。
1.2.1 NOC 匯流排互聯的特點
- 無論所連線的外設是 AXI 的 CPU 或者其他CHI系列的裝置,比如 DDR,或者更高協議的外設,NOC 都能夠轉化為內部的 packet,這些 packet 按照一定的格式在它到的拓撲結構裡進行傳輸,也就是把標準的協議轉化為內部的 package。Package 傳輸就會有一些特點,即使系統變的很複雜,它裡面的繞線也比較少。
- NOC 匯流排在設計的時候就是為了解決高速訊號的傳輸,因此很多NOC 匯流排都考慮到 physical awareness 的特性,也就是用工具生成NOC匯流排的時候,它能根據 Feature上的定義及需求 去做虛擬的 PR;
- NOC 匯流排對後端實現比較友好,比如支援多個 Clock domain,power domain,這些特性都是 cross bar 匯流排可能不具備的。所以NOC 匯流排可以跑在更高的頻點上;
- NOC 內部 QoS 機制非常好,對頻寬的分配,對不同應用場景的滿足,相對於Crossbar 來講更容易實現。
1.1.4 Mesh 網格結構
二維網格(mesh),這種拓撲結構可以提供更大的頻寬,而且是可以模組化,透過增加網格的行或列來增加更多的節點,ARM 的 CMN-600 就是基於 mesh 的互連 IP。
每個節點只與其同行和同列的相鄰節點連線。如上圖1-6所示,共有16個節點,每個節點連線一個網路介面,16個節點排列成4x4的網格。網格屬於多維拓撲,至少是2維,並可以逐步擴充套件到3維或更高維。
如圖1-7所示,IP Core為NoC互連的元件,NI為接入NoC的介面,R為NoC中的路由器,物理連結(Physical link)為路由器之間的連線匯流排。