第一章 緒論
1.1 研究背景與動機目的
System on chip(SoC)就是在單一晶片上包含完整系統並有嵌入電路的全部內容。
他具有以下幾方面的優點:提升系統效能、降低功率消耗、縮小體積、提高速度、
節省成本。由於可擴展性差、Bus 地址空間的困難擴張以至於限制了元件的連接 數目,使得傳統 SoC 已漸漸地不能滿足需求。且當單一晶片上的功能與元件數量 愈來愈多時,就需要大量的內部連線(Interconnection),而傳統 SoC 是採用共享匯 流排(Shared Bus)的概念,且使用廣播(Broadcast)的方式,這樣使得一條 Bus 無法 同時支援一組以上的元件相互傳輸。舉個例子來說,當有一組以上的元件想要互 相通訊時,由於是使用廣播來傳輸資料,除了會使不需要此資料的元件接收到,
也必須等待上一組元件傳輸完成後才可以執行下一組,會使得資源的浪費與額外 的等待時間,進而造成目前通訊的瓶頸。
經過上述的討論,可以得知傳統 SoC 已經無法滿足現今設計的需求,於是發 展了一個新的架構 Network on chip(NoC)。NoC 不但有傳統 SoC 的優點且改進了 傳統 SoC 上的不足。那 NoC 的架構是如何呢?又是怎樣改進傳統 SoC 上的不足
呢?首先利用網路封包傳輸(packet switched communication)的概念使不同元件組 之間的資料得以交換,這種利用網路模式的傳輸的方式,就可稱為 NoC。NoC 的 系統內部通常包含了 IP(Intellectual Properties) cores、網路介面(Network interface,
NI)、和路由器(Router)。
不同於傳統 SoC,NoC 利用 Router 與 NI 來取代以往的 Bus,NI 的功能為將 資料做封包化與建立各元件之間的連線。而 Router 的用處是將封包化後的資料傳 送到指定的目標,並且在 NoC 架構下不會去限制 Router 的數量,因此,Router 在 NoC 中扮演了非常重要的角色。此外,在 NoC 架構下的各元件之間,可以獨 立的運作,這樣不但可以解決傳統 SoC 所造成的資源浪費,也可以節省必須等待 前一組元件執行完的時間,使我們可以更有效的利用資源與達到更好的執行速度。
除此之外,相對於傳統 SoC,由於 NoC 的各元件之間可以獨立運作使其更適合使 用在實現多核心的系統。
SoC NoC
擴展性 差 優
傳輸方式 藉由 Bus 以廣播的方式 利用 NI 與 Router 以封包 化的方式
各元件間的獨立運作 不可以 可以
多核心系統 不適用 適用
表 1.1 SoC 與 NoC 的比較
無論在 SoC 或是 NoC 中,記憶體皆扮演了很重要的角色,因為記憶體負責 儲存資料。而記憶體有兩種形式,分為 On-Chip RAM 與 Off-Chip RAM。On-Chip
RAM 在儲存速度上有相當大的優勢,但是若要處理大資料量的問題時,如以大 尺寸 FFT(Fast Fourier Transform,FFT)為例,就會遇到 On-Chip RAM 不足的窘境。
但又因為 On-Chip RAM 的造價是相當昂貴的,這樣會產生一個嚴重的問題,就 是當所設計的電路只採用 On-Chip RAM 時,若要大量的 RAM 支援,就表示需要 大量 On-Chip RAM,而 On-Chip RAM 愈大,所要花費的 cost 就愈高。
相對於 On-Chip RAM,Off-Chip RAM 的造價就相對便宜許多。我們想要享 受這個優點也不是沒有代價的,就是存取時間的增加,但是為了解決記憶體空間 不足的問題,採用 Off-Chip RAM 是有它的必要性的。又 Off-Chip RAM 一般可以 分為兩種,動態隨機存取記憶體(Dynamic Random Access Memory, DRAM)與快閃 記 憶 體 (Flash Memory) , 其 中 因 為 Flash 在 現 場 可 程 式 化 邏 輯 閘 陣 列 (Field Programmable Gate Array ,FPGA)無法支援讀取寫入(Write)所以我們必須選用 DRAM 才有辦法支援寫入與讀取(Read)以達到我們的需求。因此,本論文使用了 DRAM 來盡可能地降低 cost 並且更有效的利用記憶體以達到處理大量資料的問 題。
On-Chip RAM Off-Chip RAM
每 bit 所花費的金額 高 低
容量 小 大
存取的時間 快 慢
表 1.2:On-Chip RAM 與 Off-Chip RAM 的比較
若在 SoC 或是 NoC 中加入自己的電路,這些電路也需要存取記憶體。而存 取記憶體的方式可分為兩種,分別為:主動型態(Master)與被動型態(Slave)。這兩 種最主要的區別是在於只有主動型態可以對被動型態發起傳輸。在被動型態中,
由於不需要去考慮存取地址的產生所以在設計上會比主動型態來的簡單許多,但 是需要 CPU 額外的支援才有辦法發起傳輸,這樣不但會增加 CPU 的競爭而且會 使執行時間增加,更重要的是需要一份跟資料量大小一樣的 On-Chip RAM 加上 額外的設定時間,才有辦法利用直接記憶體存取(Direct Memory Access,DMA)將 資料傳輸至 Off-Chip RAM。
更進一步來討論,由於 DMA 一次只能傳送一個區間的資料,若我們想要處 理二維(2-dimension,2-D)FFT,在其執行行(column)運算時,需要每次存取非連續 區間記憶體位址的資料,就算我們花時間與資源去設定 DMA,還是無法達到硬 體加速器的功能。
相對於被動型態,主動型態本身就可以發起對 Off-Chip RAM 的傳輸,也就 是說不再需要透過 DMA 才能傳輸資料,如此可以避免 CPU 的競爭、設定的時間 與減少 On-Chip RAM 的使用率,且可以存取非連續記憶體位址的資料以解決 2-D
FFT 的行運算的問題,使我們能夠得到硬體加速器的效果。在這些好處的背後,
我們也必須克服設計複雜所衍生的問題。
被動型態 主動型態
額外設定時間 Yes No
額外 CPU 的支援 Yes No
額外的 RAM Yes No
存取非連續位址資料 NO YES
設計複雜度 低 高
表 1.3 主動型態與被動型態的比較
FPGA 是一種有效替代 ASIC (Application Specific Intergrated Circuit)的 硬體實現,相對於 ASIC,FPGA 提供了較低的 NRE cost,而 FPGA 可以縮短研 發的時間且更具有彈性,只要通過簡單的繞線佈局與合成,就可以在實驗室中重 複的燒錄至 FPGA 中來進行測試,而不需要真的下線後才有辦法驗證電路是否正 確,已成為現在 IC(Integrated Circuit)設計的主流。
FPGA ASIC
NRE cost 低 高
研發時間 短 長
彈性 高 低
表 1.4 FPGA 與 ASIC 的比較
根據上述幾點,本論文的目的為提出一個適用於 NoC 平台上利用主動型態 元件主動存取 RAM,並以大尺寸 FFT 為例。而此主動型態硬體加速電路可以直 接與 DRAM Controller 溝通,以避免在大尺寸 FFT 應用時,所產生的記憶體不足 或是 cost 過高的問題。