李世平 張洪昱 朱靜浩 劉靜 倪暹
(江蘇華創微系統有限公司,江蘇南京 211899)
集成電路是現代信息社會的基石,自誕生起,在摩爾定律的驅動下飛速發展,從20世紀60年代的十幾個晶體管到如今成百上千個晶體管,進入了片上系統(SoC)時代,高主頻、高集成是其發展趨勢,芯片溫度也隨之越來越高,其對芯片功能、性能及可靠性的影響備受關注。在探索散熱方法的同時,通過在大規模SoC芯片內部集成溫度傳感器,準確監控芯片內部溫度,及早發現過熱問題,成為芯片設計行業的主流方向[1-3]。
本文面向高性能異構多核SoC芯片的需求,單片集成了多個高精度、低功耗溫度傳感器,實現了對片內不同核溫度狀態的動態監測,結合系統級降頻和電源門控等方法支持過溫保護,保障了運行時芯片功能性能的長期穩定,有效提升了芯片可靠性。
溫度傳感器結構框圖如圖1所示,主要包括溫傳控制器(Temperature Sensor Controller,TSC)和溫度傳感電路(Temperature Sensor Physical circuit,TSP)兩個模塊。TSC模塊主要負責與SoC芯片主控單元交互、啟動和結束溫度監測、讀取溫度編碼數據、上報中斷或門控信號等功能,交互接口為標準APB接口,內部包括APB接口譯碼、溫傳寄存器、電路接口信號生成器、中斷產生器、門控產生器等多個子模塊;TSP模塊主要負責實時測量當前電路的溫度并上報溫度編碼數據。整個溫度傳感器的工作電壓為模擬1.8 V、數字0.8 V,動態電流僅在百μA量級。

圖1 溫度傳感器結構框圖
溫度傳感器的具體工作流程如下:
(1)SoC芯片主控單元通過APB標準總線接口通知TSC模塊啟動溫度監測;
(2)TSC模塊向TSP模塊發起溫度監測啟動命令;
(3)TSP模塊開始持續的溫度測量,并將測量得到的溫度編碼數據送給TSC模塊;
(4)TSC模塊讀取溫度編碼數據,支持單次讀取或多次讀取求平均兩種模式,當讀取完畢后,TSC模塊向TSP模塊發起溫度監測結束命令;
(5)TSC模塊通過APB標準接口將溫度編碼數據上報給SoC芯片主控單元;
(6)當需要過溫保護時,SoC芯片主控單元可通過APB標準總線配置TSC模塊內部的溫度閾值寄存器,當TSC模塊讀取到溫度編碼后,自動與溫度閾值寄存器進行比較,若超過閾值,則通過中斷信號上報SoC芯片主控單元,同時產生門控信號通知SoC實施降頻或電源關斷等操作,防止芯片繼續升溫,保障芯片可靠性。
片內溫度傳感器通常需要校正才能獲得更高的精度[4],本文所述溫度傳感器包含了TRIMG、TRIMO兩個校正參數,通過在芯片測試階段對其進行校正則可以達到高精度目標,具體校正方式如下:
(1)首先設置TRIMG=15,TRIMO=0。
(2)在Temp1=125 ℃下測出溫度編碼數據為TD1,建議測試64次取平均值。
(3)在Temp2=25 ℃下測出溫度編碼數據為TD2,建議測試64次取平均值。
(4)代入公式(1)計算得到校正后的TRIMG參數值,其中P2、P1、P0為固定值。
(5)將計算出的TRIMG寫入TSC模塊,在Temp2=25 ℃下再次測出溫度編碼數據為TD3,建議測試64次取平均值。
(6)代入公式(2)計算得到校正后的TRIMO[4:0]的參數值,其中TDref為25 ℃下的溫度編碼。當TDref>TD3時,TRIMO[5]為0,反之為1。
(7)經過(1)~(6)后所得的TRIMG、TRIMO為校正后的參數值,將該數值存入EFuse內固化即可。
TSC模塊和TSP模塊中間的接口時序如圖2所示,其中Control Signals為各類控制參數,包括前文所述的TRIMG、TRIMO等;ENA為使能信號,高有效,有效時間內進行溫度測量;DATA_VALID為返回的溫度編碼數據有效信號;DATA_OUT為返回的溫度編碼數據。

圖2 關鍵接口時序圖
當各類控制參數確定后,需要啟動溫度監測時,TSC模塊將使能信號ENA置高,通知TSP模塊啟動一輪溫度監測,ENA至少需要持續40 μs,經過一段時間后,TSP模塊將通過DATA_VALID和DATA_OUT返回溫度編碼數據,在溫度監測過程中該數據將持續有效,TSC模塊可以多次讀取溫度編碼數據并求取平均以提高精度,最大可讀256次,直到TSC模塊讀取結束后將ENA置低,本輪溫度監測過程結束。
本文所述溫度傳感器應用于3080型SoC芯片,該芯片采用4個通用處理核和4個專用加速核的異構多核架構,其中,通用處理核采用多發射超標量結構,支持亂序執行和分支預測,核內集成向量部件實現SIMD矢量計算,專用加速核則通過動態可重構的方式支持FFT、FIR、矩陣運算等十余種典型信號處理算法的硬件加速,全芯片單精度浮點峰值計算能力超過了每秒5 000億次,支持DDR、PCIe等高速接口以及FLASH、UART、CAN、I2C、GPIO等低速接口,支持網絡和EJTAG調試,并構建了包括編譯器、調試器、操作系統在內的完整的軟件工具鏈,提供了豐富的通信中間件、計算中間件以及可視化集成開發環境,支持應用便捷開發。
因芯片主頻和算力較高,運行時功率密度較大,為了能夠監測到各功耗密集區域的溫度,片內共集成了8個溫度傳感器,物理設計過程中將溫度傳感器重點分布在處理核和專用加速核的周圍。該芯片流片后的實物圖如圖3所示。

圖3 芯片實物圖
溫度傳感器的功能和性能測試基于3080型SoC芯片測試板開展,測試板為+12 V直流電源輸入,板載DDR內存條、FPGA、FLASH、MCU等多種器件,配備芯片定制插座以及PCIe子卡等器材。測試時芯片放置在定制插座中,通過串口或網絡與上位機通信。芯片支持從多個設備空間啟動,測試時選擇外部SPI FLASH啟動模式,啟動后加載操作系統,然后片內多核同時循環運行FFT程序。通過紅外測溫儀監測芯片殼溫,同時讀取片內8個溫度傳感器(記為p0~p7)的溫度,選取12個溫度測試點,8個溫度傳感器讀出的溫度和殼溫的關系如圖4所示,可以看到,不同位置的溫度傳感器所測量的溫度具有較好的一致性。

圖4 8個溫度傳感器(p0~p7)的測試結果與殼溫的對比
不失一般性,選取p0號溫度傳感器的測試結果,將其與殼溫進行線性擬合如圖5所示,可以看到,兩者具有很強的線性關系,線性相關系數達到0.995 9。

圖5 p0號溫度傳感器測試溫度與實際殼溫的線性擬合情況
本文面向高性能異構多核SoC芯片的應用需求,集成設計并實現了8個高精度、低功耗的溫度傳感器,能夠對芯片內部不同區域的溫度狀態進行動態監測。芯片實測結果顯示,不同位置的溫度傳感器具有較好的一致性,且溫度傳感器測量溫度和芯片實際殼溫具有很強的線性度,線性相關系數高達0.995 9,這表明溫度傳感器能夠準確反映芯片內部溫度的實時變化,同時,該溫度傳感器還支持過溫預警功能,當溫度超過所設置的閾值時,能夠及時上報中斷信號和門控信號,支撐實現了系統級的降頻和電源關斷,在全芯片狀態監控、過溫保護等方面都具有重要意義,有效提升了芯片運行時的可靠性。