本發(fā)明涉及MCU技術(shù)領域,具體是一種基于MCU的SOC及其內(nèi)核協(xié)作控制單元。
背景技術(shù):
MCU又稱單片微型計算機或者單片機,是把中央處理器的頻率與規(guī)格做適當縮減,并將內(nèi)存、計數(shù)器、USB、A/D轉(zhuǎn)換、UART、PLC、DMA等周邊接口,甚至LCD驅(qū)動電路都整合在單一芯片上,形成芯片級的計算機,為不同的應用場合做不同組合控制。
本發(fā)明通過內(nèi)核協(xié)作控制單元及其與時鐘門控單元的配合,可以使MCU內(nèi)核與協(xié)處理內(nèi)核能夠順利地在休眠狀態(tài)與工作狀態(tài)中合理過渡并切換,從而降低SOC芯片在應用時的功耗,使SOC芯片符合低功耗應用場合的要求。并且通過錯開MCU內(nèi)核與協(xié)處理內(nèi)核占用同一芯片內(nèi)部資源的時間,使在SOC中MCU內(nèi)核與協(xié)處理內(nèi)核能夠更大程度上共享SOC內(nèi)部資源,從而降低SOC芯片的成本。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于MCU的SOC及其內(nèi)核協(xié)作控制單元,以解決上述背景技術(shù)中提出的問題。
為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種基于MCU的SOC及其內(nèi)核協(xié)作控制單元,包括內(nèi)核協(xié)作控制單元、時鐘單元、協(xié)處理內(nèi)核和MCU內(nèi)核,所述時鐘單元分別連接第一時鐘控制單元GC1和第二時鐘控制單元GC2,第一時鐘控制單元GC1還分別連接內(nèi)核協(xié)作控制單元和MCU內(nèi)核,第二時鐘控制單元GC2還分別連接內(nèi)核協(xié)作控制單元和協(xié)處理內(nèi)核,內(nèi)核協(xié)作控制單元還連接MCU內(nèi)核,MCU內(nèi)核還連接協(xié)處理內(nèi)核。
作為本發(fā)明的進一步方案:所述內(nèi)核協(xié)作控制單元包括寄存器R1、寄存器R2、反相器INV1、反相器INV2和或門OR。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:本發(fā)明通過內(nèi)核協(xié)作控制單元及其與時鐘門控單元的配合,可以使MCU內(nèi)核與協(xié)處理內(nèi)核能夠順利地在休眠狀態(tài)與工作狀態(tài)中合理過渡并切換,從而降低SOC芯片在應用時的功耗,使SOC芯片符合低功耗應用場合的要求。并且通過錯開MCU內(nèi)核與協(xié)處理內(nèi)核占用同一芯片內(nèi)部資源的時間,使在SOC中MCU內(nèi)核與協(xié)處理內(nèi)核能夠更大程度上共享SOC內(nèi)部資源,從而降低SOC芯片的成本。
附圖說明:
圖1為本發(fā)明的整體框圖;
圖2為內(nèi)核協(xié)作控制單元的方框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參閱圖1-2,本發(fā)明描述一種基于MCU的SOC及其內(nèi)核協(xié)作控制單元,包括內(nèi)核協(xié)作控制單元、時鐘單元、協(xié)處理內(nèi)核和MCU內(nèi)核,所述時鐘單元分別連接第一時鐘控制單元GC1和第二時鐘控制單元GC2,第一時鐘控制單元GC1還分別連接內(nèi)核協(xié)作控制單元和MCU內(nèi)核,第二時鐘控制單元GC2還分別連接內(nèi)核協(xié)作控制單元和協(xié)處理內(nèi)核,內(nèi)核協(xié)作控制單元還連接MCU內(nèi)核,MCU內(nèi)核還連接協(xié)處理內(nèi)核。
內(nèi)核協(xié)作控制單元包括寄存器R1、寄存器R2、反相器INV1、反相器INV2和或門OR。
本方案的工作原理:如圖 1所示。在SOC中包含MCU內(nèi)核(MCU_CORE)與協(xié)處理內(nèi)核(PROC_CORE)2個處理核心。時鐘單元(CLOCK_EN)負責產(chǎn)生芯片工作所需的2個主要時鐘:MCU內(nèi)核工作時鐘(clk_mcu)和協(xié)處理內(nèi)核工作時鐘(clk_proc)。因為在SOC中MCU內(nèi)核(MCU_CORE)與協(xié)處理內(nèi)核(PROC_CORE)存在共享SOC內(nèi)部資源的情況,所以MCU內(nèi)核(MCU_CORE)與協(xié)處理內(nèi)核(PROC_CORE)的工作時間是錯開的,即當MCU內(nèi)核(MCU_CORE)工作時,協(xié)處理內(nèi)核(PROC_CORE)處于休眠狀態(tài);而當協(xié)處理內(nèi)核(PROC_CORE)工作時,MCU內(nèi)核(MCU_CORE)處于休眠狀態(tài)。內(nèi)核協(xié)作控制單元(CO_CTRL)負責管控SOC中MCU內(nèi)核(MCU_CORE)與協(xié)處理內(nèi)核(PROC_CORE)2個處理核心的工作與休眠控制。
在SOC工作時,MCU內(nèi)核(MCU_CORE)先于協(xié)處理內(nèi)核(PROC_CORE)而工作。此時,內(nèi)核協(xié)作控制單元(CO_CTRL)輸出的MCU內(nèi)核時鐘門控信號(gate_mcu)為高電平有效狀態(tài),從而觸發(fā)時鐘門控單元1(GC1)開啟MCU內(nèi)核工作時鐘(clk_core_gc),MCU內(nèi)核(MCU_CORE)開始工作。當MCU內(nèi)核(MCU_CORE)完成階段性工作并且需要啟動協(xié)處理內(nèi)核(PROC_CORE)的時候,MCU內(nèi)核(MCU_CORE)輸出的協(xié)處理內(nèi)核工作使能信號(enable)為高電平有效狀態(tài),促使協(xié)處理內(nèi)核(PROC_CORE)進入準備狀態(tài)。同時MCU內(nèi)核(MCU_CORE)輸出MCU內(nèi)核休眠請求信號(sleep_req)至內(nèi)核協(xié)作控制單元(CO_CTRL),內(nèi)核協(xié)作控制單元(CO_CTRL)在檢測到MCU內(nèi)核休眠請求信號(sleep_req)為高電平狀態(tài)時,將控制MCU內(nèi)核時鐘門控信號(gate_mcu)為低電平無效狀態(tài),從而觸發(fā)時鐘門控單元1(GC1)關(guān)閉MCU內(nèi)核工作時鐘(clk_core_gc)。同時,MCU內(nèi)核時鐘門控信號(gate_mcu)通過反相器后將觸發(fā)時鐘門控單元2(GC2)開啟協(xié)處理內(nèi)核工作時鐘(clk_proc_gc)。此時,MCU內(nèi)核(MCU_CORE)停止工作,同時協(xié)處理內(nèi)核(PROC_CORE)進入工作狀態(tài)。當協(xié)處理內(nèi)核(PROC_CORE)亦完成階段性工作并且需要啟動MCU內(nèi)核(MCU_CORE)的時候,協(xié)處理內(nèi)核(PROC_CORE)輸出的MCU內(nèi)核喚醒請求信號(wake)為高電平有效狀態(tài)。內(nèi)核協(xié)作控制單元(CO_CTRL)在檢測到MCU內(nèi)核喚醒請求信號(wake)為高電平狀態(tài)時,將控制MCU內(nèi)核時鐘門控信號(gate_mcu)為高電平有效狀態(tài),從而觸發(fā)時鐘門控單元1(GC1)開啟MCU內(nèi)核工作時鐘(clk_core_gc)。同時,MCU內(nèi)核時鐘門控信號(gate_mcu)通過反相器后將觸發(fā)時鐘門控單元2(GC2)關(guān)閉協(xié)處理內(nèi)核工作時鐘(clk_proc_gc)。此時,MCU內(nèi)核(MCU_CORE)進入工作狀態(tài),同時協(xié)處理內(nèi)核(PROC_CORE)進入休眠狀態(tài)。在本發(fā)明中,通過內(nèi)核協(xié)作控制單元(CO_CTRL)及其與2個時鐘門控單元的配合,可以使MCU內(nèi)核(MCU_CORE)與協(xié)處理內(nèi)核(PROC_CORE)能夠順利地在休眠狀態(tài)與工作狀態(tài)中合理過渡并切換,從而降低SOC芯片在應用時的功耗。并且通過錯開MCU內(nèi)核(MCU_CORE)與協(xié)處理內(nèi)核(PROC_CORE)占用同一芯片內(nèi)部資源的時間,使在SOC中MCU內(nèi)核(MCU_CORE)與協(xié)處理內(nèi)核(PROC_CORE)能夠更大程度上共享SOC內(nèi)部資源,從而降低SOC芯片的成本。
內(nèi)核協(xié)作控制單元(CO_CTRL)的工作原理如圖 2所示。內(nèi)核協(xié)作控制單元(CO_CTRL)在檢測到MCU內(nèi)核休眠請求信號(sleep_req)為高電平狀態(tài)時,將觸發(fā)寄存器R1的輸出信號(sleep_latch)鎖存為高電平輸出狀態(tài)。sleep_latch信號經(jīng)過反相器取反之后,連接至或門OR的輸入端。或門OR的另一個輸入端連接至喚醒門控信號(wake_latch)。在無有效的喚醒的情況下,喚醒門控信號(wake_latch)為低電平,將控制MCU內(nèi)核時鐘門控信號(gate_mcu)為低電平無效狀態(tài),并輸送至時鐘門控單元1(GC1),從而將MCU內(nèi)核工作時鐘(clk_core_gc)關(guān)閉,從而實現(xiàn)休眠情況下節(jié)省功耗。同時,MCU內(nèi)核時鐘門控信號(gate_mcu)通過反相器后將觸發(fā)時鐘門控單元2(GC2)開啟協(xié)處理內(nèi)核工作時鐘(clk_proc_gc)。內(nèi)核協(xié)作控制單元(CO_CTRL)在檢測到MCU內(nèi)核喚醒請求信號(wake)為高電平狀態(tài)時,與喚醒相應的邏輯電路會使到寄存器R2的輸出信號wake_latch為高電平輸出狀態(tài)。然后或門OR的輸出信號也由此切換至高電平輸出狀態(tài),從而觸發(fā)時鐘門控單元1(GC1)開啟MCU內(nèi)核工作時鐘(clk_core_gc)。同時,MCU內(nèi)核時鐘門控信號(gate_mcu)通過反相器后將觸發(fā)時鐘門控單元2(GC2)關(guān)閉協(xié)處理內(nèi)核工作時鐘(clk_proc_gc)。為了在喚醒MCU內(nèi)核之后,能夠及時撤除寄存器R2的高電平輸出狀態(tài),使得MCU內(nèi)核能夠馬上有效地響應接下來的休眠請求,MCU內(nèi)核還通過MCU內(nèi)核的運行反饋信號(core_run)輸入至內(nèi)核協(xié)作控制單元中。當MCU內(nèi)核運行時為core_run信號為高電平,當MCU內(nèi)核休眠時core_run信號為低電平。在內(nèi)核協(xié)作控制單元中,將core_run信號取反,連接到寄存器R2的異步復位端。當MCU內(nèi)核被喚醒后,core_run變?yōu)楦唠娖?,寄存器R2被異步復位,它的輸出信號wake_latch由高電平輸出狀態(tài)更快地切換至低電平輸出狀態(tài),從而使MCU內(nèi)核被喚醒之后,能夠能夠更快地有效響應其接下來的休眠需求,從而節(jié)省功耗。