PLD和數(shù)據(jù)通路來(lái)釋放微控制器中CPU資源
本文介紹了一種采用PLD和數(shù)據(jù)通路(datapath)來(lái)解放微控制器系統(tǒng)中CPU任務(wù)的方案。在大多數(shù)微控制器結(jié)構(gòu)中,智能的CPU身邊總會(huì)環(huán)繞著一系列不可編程的外設(shè)。外設(shè)的功能有限,通常它們只負(fù)責(zé)數(shù)據(jù)形式的轉(zhuǎn)換。例如,I2C外設(shè)只是實(shí)現(xiàn)串行和并行數(shù)據(jù)格式之間的轉(zhuǎn)換,而ADC則實(shí)現(xiàn)模擬到數(shù)字信號(hào)的轉(zhuǎn)換。CPU因此不得不完成所有的數(shù)據(jù)處理工作,實(shí)際上它還能做些更有用的事情。此外,管理外設(shè)將會(huì)導(dǎo)致CPU固件異常復(fù)雜,并可能需要一個(gè)快速高效的CPU在實(shí)時(shí)的時(shí)序限制下執(zhí)行這些固件。這又會(huì)導(dǎo)致更多的潛在程序漏洞,從而需要使用更復(fù)雜和昂貴的調(diào)試設(shè)備等。
本文引用地址:http://www.ex-cimer.com/article/150055.htm但是如果外設(shè)具備足夠的復(fù)雜度、靈活度與智能,是否能有效地減輕CPU的許多任務(wù)呢?本文將展示如何把智能、靈活、低成本、可定制的數(shù)字外圍設(shè)備設(shè)計(jì)到微控制器并配置,以幫助實(shí)現(xiàn)穩(wěn)定的分布式系統(tǒng)設(shè)計(jì)。
通常有兩種方法構(gòu)建一個(gè)智能的可配置外設(shè)。首先是使用PLD。如圖1所示,PLD有一個(gè)驅(qū)動(dòng)若干宏單元的積和(sum of products)邏輯門陣列。“T”和“C”符號(hào)表示每一個(gè)乘積項(xiàng)都能產(chǎn)生一個(gè)真值或補(bǔ)數(shù)(反向)輸出,這樣無(wú)論是正、負(fù)邏輯都可以支持。
圖1:一個(gè)PLD實(shí)例(包括12個(gè)輸出項(xiàng)、8個(gè)乘積項(xiàng)、4個(gè)宏單元)。
圖1顯示了一個(gè)簡(jiǎn)單的PLD例子。PLD可以有成百上千的宏單元,每個(gè)宏單元最高由16個(gè)乘積項(xiàng)驅(qū)動(dòng)。乘積項(xiàng)里的與門和或門可以互聯(lián)形成高度靈活的定制邏輯功能。宏單元是典型的時(shí)鐘架構(gòu),它們的輸出可以反饋到乘積項(xiàng)陣列,因此允許創(chuàng)建狀態(tài)機(jī)。
大規(guī)模PLD可以用來(lái)形成復(fù)雜的邏輯功能,甚至是完全的CPU,因此PLD當(dāng)然可以用來(lái)實(shí)現(xiàn)智能數(shù)字外設(shè)。然而,很多門可能只是實(shí)現(xiàn)諸如計(jì)數(shù)器或加法器等簡(jiǎn)單的邏輯功能,但對(duì)于更復(fù)雜功能的實(shí)現(xiàn),基于PLD的方案就會(huì)變得很貴。從某種程度上說(shuō),使用真正的CPU會(huì)更合理。
CPU的一個(gè)非常簡(jiǎn)單的形式是基于算術(shù)邏輯單元(ALU)的數(shù)據(jù)通路,也稱為納米處理器(nano-processor)。數(shù)據(jù)通路只是實(shí)現(xiàn)幾個(gè)常用函數(shù),但會(huì)比使用PLD實(shí)現(xiàn)的效率更高。圖2:顯示了一個(gè)基于ALU的簡(jiǎn)單的數(shù)據(jù)通路。典型的ALU可以進(jìn)行各種操作,通常是8位操作:向上計(jì)數(shù)(遞增)、向下計(jì)數(shù)(遞減)、加、減、邏輯與、邏輯或、邏輯異或,左位移、右位移。這里有兩個(gè)8位累加器,它們能夠?yàn)锳LU輸出充當(dāng)輸入數(shù)據(jù)寄存器或存儲(chǔ)器。一個(gè)輸入時(shí)鐘信號(hào)沿產(chǎn)生一次操作。函數(shù)選擇寄存器用來(lái)控制:
圖2:基于ALU的數(shù)據(jù)通路。
* 產(chǎn)生什么操作。
* 該操作的源寄存器。
* 輸出的目的寄存器。
評(píng)論