SoC系統(tǒng)中實(shí)時(shí)總線模塊的設(shè)計(jì)理念與應(yīng)用
錯(cuò)誤的處理--最后一根救命稻草
如大家深知,芯片設(shè)計(jì)是沒(méi)有下一次機(jī)會(huì)的,那么錯(cuò)誤的處理就成為了“救命的稻草”。假設(shè)TDM模塊很久沒(méi)有得到總線的控制,出現(xiàn)underrun(速率過(guò)低)與overrun(速率過(guò)高)情況。要采用隊(duì)列中“high-watermark(高水線)”與“low-watermark(低水線)”技術(shù),在隊(duì)列接近滿與空狀態(tài)發(fā)生前提前預(yù)警。預(yù)警通常反映了芯片系統(tǒng)中的一些設(shè)計(jì)問(wèn)題與當(dāng)時(shí)電壓波動(dòng)、干擾、局部高溫等瞬間問(wèn)題,這時(shí)預(yù)警信號(hào)通常用最高/次高優(yōu)先級(jí)中斷發(fā)生。ARM CPU本身支持高優(yōu)先級(jí)中斷,而我們的隊(duì)列長(zhǎng)度計(jì)算現(xiàn)在要重新計(jì)算,加上高優(yōu)先級(jí)處理這一段時(shí)間,具體的響應(yīng)時(shí)鐘周期,讀者請(qǐng)查閱相應(yīng)CPU手冊(cè),這也是評(píng)價(jià)嵌入式CPU與實(shí)時(shí)操作系統(tǒng)(RTOS)的一項(xiàng)指標(biāo)。
圖4:由TDM模塊實(shí)現(xiàn)兩套寄存器的動(dòng)態(tài)切換時(shí)序圖。
隊(duì)列深度=最長(zhǎng)AHB總線獲得間隔×TDM輸入速率+ARM最長(zhǎng)中斷響應(yīng)時(shí)間×TDM輸入速率
本文小結(jié)
我們?cè)赥DM模塊簡(jiǎn)要設(shè)計(jì)中,闡述了結(jié)合各種基本技術(shù),如從緩存隊(duì)列到DMA到影子寄存器到動(dòng)態(tài)分配到watermark與利用DSP算法特性,AHB總線特性、幀同步特性以及RTOS特性解決非實(shí)時(shí)與實(shí)時(shí)交換、CPU效率與資源占用、延時(shí)與DMA配置與動(dòng)態(tài)切換的矛盾,追求最優(yōu)解決方案的過(guò)程與設(shè)計(jì)思路。
本文并沒(méi)有給出最初方案的隊(duì)列計(jì)算公式,是因?yàn)橐紤]的因素過(guò)多,從另一個(gè)側(cè)面反映了它不是最優(yōu)方案。好的設(shè)計(jì)應(yīng)該是把復(fù)雜的需求簡(jiǎn)單化、模塊化,當(dāng)然實(shí)際設(shè)計(jì)中比這種簡(jiǎn)化設(shè)計(jì)要復(fù)雜,例如還要解決實(shí)時(shí)數(shù)據(jù)傳輸中雙方時(shí)鐘不同步等問(wèn)題。但讀者只要掌握了基本思路與技術(shù),理解應(yīng)用特性、CPU特性及RTOS特性與算法,就可舉一反三,做出最優(yōu)的設(shè)計(jì)。
評(píng)論