![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iY1MWN5UzM0MmZwMjZ1EmZyYGOzMmYwYTYjFTYyMzYm9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
寫完了低功耗SOC設計,我們來介紹一個實際可用于邊緣端AI計算的SOC設計。
這個系列要達到兩個目的。一是介紹某個可以直接用于實際生産超簡單的邊緣端超低功耗SOC。二是盡量科普向,多介紹重要的原理,少介紹冗長的細節,盡量涉及到方方面面。三,如果有時間,會簡單介紹一下常用的AI加速核心設計。
我們愉快的開始吧~
一、晶片整體架構
晶片架構如上圖所示。共有三個子產品組。
計算核心組。其中隻有一個主裝置,既RISC-V核心。此處需要注意的是一般來講我們在這種RISC核心中傾向于使用哈弗架構而不是馮諾依曼架構。也就是說資料和指令不共享總線。是以指令存儲IMEM可以做進RISC-V核心。内容主要包括了
-
- RISCV的CPU核心,資料存儲DMEM(一般由SRAM來實作)。
- QSPI FLASH。
- AI加速核心。
這一組主要用于晶片和外界進行資料交換。由于晶片的應用場景是低功耗場景,故沒有高速的接口(例如DDR PHY),全部用APB總線連接配接。主要包括了
- ADC用于連接配接各種傳感器(例如震動與溫度)
- SPI接口用于提供外設控制(例如FLASH和震動傳感器)
- I2C用于連接配接EEPROM等外設
- UART可以連接配接藍牙和加速度傳感器等
- GPIO用于調試以及靈活處理其他輸入輸出信号
該組子產品包括了維持SOC正确運轉所需要的必須子產品。包括了
- PMU,Power Manager Unit, 用于管理晶片的功耗。
- RTC, Real-time Counter, 一個計數器,計數完成後生成中斷。
- Watchdog, 看門狗。用于發現系統挂死後reset系統的。
- RSTGEN, 用于産生系統複位信号的子產品。
- CLKGEN, 用于産生系統所需的各個時鐘的子產品。
二、SOC的時鐘管理
時鐘和時鐘頻率會極大影響功耗。由于我們是邊緣端低功耗的晶片,故一共需要兩個時鐘域。
主時鐘域:計算核心組和資料外設組位于主時鐘域。該時鐘域在運作時速度較快,一般來講運作于8M-100M之間。
常開時鐘域:主要用于系統外設組。由于這個時鐘域需要常開的,是以頻率會比較慢,常見的值是32.768KHz。
具體的時鐘管理以及CLKGEN子產品詳見文章桔裡貓:RISCV AI SOC實戰(二,SOC的時鐘管理)。
三、SOC的電源功耗管理
由于是邊緣低功耗晶片,故設計低功耗模式時非常重要的。該晶片同樣具有兩個電源域。
主電源域:計算核心組和資料外設組位于主電源域。該電源域是可以被關斷的。
常開電源域:主要用于系統外設組。這個電源域不應該斷電。
可以實作三種低功耗模式
- 正常模式, 兩個電源域都打開。
- 等待模式, 兩個電源域都打開。有一條專門的指令(WFI, Waiting for Interrupt),core執行以後會關斷核心的時鐘。等待中斷後再打開時鐘。
- 睡眠模式。 直接把住時鐘域關斷。
具體的電源管理子產品及PMU子產品詳見文章桔裡貓:RISCV AI SOC實戰(三,SOC的功耗管理)。
四、SOC的複位管理
由于存在多個電源域與時鐘域,故系統的複位顯然是要有順序的。否則容易發生複位錯誤。一個總的原則是先複位低優先級的子產品(也就是外設)。對于本設計來講,先複位常開時鐘域,再複位主時鐘域。需要注意的是每個時鐘域都要對複位信号進行異步接受同步釋放。
具體的複位管理及RSTGEN子產品詳見文章桔裡貓:RISCV AI SOC實戰(四,複位管理)。
五、SOC的中斷管理
emm 這塊在上圖裡沒有專門的子產品。因為一般來講中斷會劃分在RISC-V Core那個大子產品裡。這個東西一般RISCV核心的提供商會提供這個東西,但是還是要明白原理。
具體的中斷管理詳見文章桔裡貓:RISCV AI SOC實戰(五,中斷管理)。
六、SOC的軟體流程及上電流程
程式編譯好後會先放入FLASH,SOC上電以後會把程式從FLASH拷到片上開始執行。具體上電boot流程可以看以前這篇文章桔裡貓:你碼的代碼是如何在SOC晶片上跑起來的。
七、AI CORE如何設計
這個東西講起來就比較多了。和SOC關系其實不是很大。是以放在了一個新的系列講。桔裡貓:如何設計AI晶片中的加速核心(一,綜述)。
總結
這個系列主要是介紹一個實際使用的低功耗AI SOC裡面方方面面的設計。邊緣端晶片的好處就是能簡化就簡化,是以介紹起來還算比較友善。SOC主要也是一些經驗性的東西,隻要走過一遍其實就變成了一個純工程問題,沒有特别難的科研問題需要解決。但SOC确實是國内各個小晶片公司最喜歡的形式,因為專用的同時能兼顧一部分通用性,又避免了直接在通用領域和巨頭進行競争。
紙上得來終覺淺啊,有機會一定要自己參與流片一兩個SOC對裡面的細節才能算是真正了解。