- 相關(guān)推薦
適應實(shí)時(shí)多任務(wù)的微控制器高效指令支持
摘要:開(kāi)發(fā)高效的實(shí)時(shí)多任務(wù)微控制器系統,除了采用高速器件之外,適當的指令支持能簡(jiǎn)化控制結構,減少程序代碼,增強實(shí)時(shí)響應能力。本文提出了一些適應實(shí)時(shí)多任務(wù)的微控制器高效指令功能設計。微控制器系統即國內通常所稱(chēng)的單片機系統,主要用于物理設備的接口和直接控制。雖然控制邏輯相對微處理機系統而言比較簡(jiǎn)單,但由于多數情況下需要實(shí)時(shí)響應,而且經(jīng)常要同時(shí)處理多個(gè)對象的協(xié)同工作,因此,不僅對程序的運行效率有較高的要求,還要求微控制器具備較強的多任務(wù)處理能力。另一方面,由于量大面廣,以及具體應用條件的限制,希望微控制器的成本要低;而這又只有在微控制器的硬件結構相對簡(jiǎn)單的前提下才能實(shí)現,這就限制了微控制器的指令、程序代碼空間以及數據存儲容量。在這樣的局面中,想要實(shí)現較高的運行效率,就只有加強微控制器指令的功能和靈活性。
至今,絕大多數微控制器程序的編制仍使用匯編語(yǔ)言,其優(yōu)缺點(diǎn)已眾所周知。隨著(zhù)硬件技術(shù)的發(fā)展,器件的性能價(jià)格比顯著(zhù)提高,各種面向嵌入式應用的微控制器系統模塊向商品化發(fā)展。微控制器系統的成本中,軟件比例不斷增加,使用高級語(yǔ)言編制微控制器應用系統的軟件是必然的趨勢;而且微控制器中能進(jìn)行算術(shù)運行和邏輯運算的運算器結構、可以直接與數據總線(xiàn)交換數據并進(jìn)行關(guān)系運算的單元個(gè)數、間址訪(fǎng)問(wèn)的能力等因素,將直接影響高級語(yǔ)言生成機器代碼的難易程度。為完成某一運算,不能只計算運算本身所需的時(shí)間,還要考慮建立本處理環(huán)境所需的時(shí)間、取運算對象與保存運算結果的輔助操作時(shí)間、以及所占用的指令空間。簡(jiǎn)言之,要考慮所有影響6代碼效率和運行效率的因素。
轉移控制指令是直接影響程序運行的,但其前提是狀態(tài)檢測或者關(guān)系運算的結果;而狀態(tài)檢測需要位尋址能力的支持,關(guān)系運算又必須訪(fǎng)問(wèn)兩個(gè)對象,所以,位尋址能力、數據訪(fǎng)問(wèn)能力、數據訪(fǎng)問(wèn)方式都與程序的運行效率有關(guān)。根據作者多年編制實(shí)時(shí)應用程序的體會(huì ),針對實(shí)時(shí)多任務(wù)應用,就高效率的微控制器數據訪(fǎng)問(wèn)能力、方式與轉移控制指令設計而言,應具備以下四方面性能。
1.指令的關(guān)系運算能力
關(guān)系運算是控制程序轉移的前提,其運算能力由兩個(gè)方面組成:一是運算功能;二是運算單元數目。
在8位機系統中,運算功能一般都支持無(wú)符號的大于、小于、等于、不等于比較;在16位機系統中,還應支持有符號的比較,并且要求有多個(gè)運算單元都支持關(guān)系運算。如果常用的一些功能單元個(gè)數較少,則當進(jìn)程切換時(shí),要花費時(shí)間置換資源。假如微控制器中只有一個(gè)寄存器能進(jìn)行關(guān)系運算,必須經(jīng)常進(jìn)行中間結果的換位存取。這些額外操作的代價(jià)是指令數目與運行時(shí)間的增加,那將極大地影響程序運行效率。例如,要根據兩個(gè)關(guān)系運算的結果決定處理策略,首先,要將第一次關(guān)系運算的邏輯結果保存起來(lái),可能還需要保留運算后的數據結果,再裝入第二次需要的運算對象。其最小代價(jià)是多中用一條指令的存儲空間和一次裝入所需的運算時(shí)間,而且沒(méi)有任何的額外收益。此外,多任務(wù)運行時(shí)將頻繁產(chǎn)生中斷,在中斷服務(wù)程序中,必須騰出運算器,又要多占用一個(gè)堆?臻g來(lái)保存斷中數據,以及一次進(jìn)棧、一次出棧的兩條指令的存儲空間和運行時(shí)間。這些都是在微控制器應用系統中的寶貴資源,因此,這樣的微控制器是不適應實(shí)時(shí)多任務(wù)系統應用的,F在,許多微控制器都采用寄存器組的結構,每一個(gè)寄存器都可支持關(guān)系運算和簡(jiǎn)單的算術(shù)運算功能,便于實(shí)現高級語(yǔ)言中“局部變量”的特性。其主要優(yōu)點(diǎn)是存儲器的利用率高,數據完全性好。這就大大緩解了運算能力的瓶頸。
2.指令的數據訪(fǎng)問(wèn)能力
(1)運算對象的訪(fǎng)問(wèn)方式
指令對運算對象的訪(fǎng)問(wèn)方式非常重要。如果同類(lèi)資源只能使用特定名稱(chēng)區分訪(fǎng)問(wèn)。則處理多進(jìn)程時(shí),功能相似的程序段必須書(shū)寫(xiě)不同的代碼段。代碼重用性差,這就增加了總代碼長(cháng)度。所以,間址訪(fǎng)問(wèn)非常重要,它可以用同樣的程序處理不同的對象,在多任務(wù)處理環(huán)境中能顯著(zhù)提高系統效益。
位信息是二進(jìn)制中最基本的數據?刂葡到y中,經(jīng)常需要檢測位信息,例如進(jìn)程的標識、外設的狀態(tài)等。在多任務(wù)系統中,各進(jìn)程將占用不同物理地址的系統資源。這時(shí),指令能否支持間址的位訪(fǎng)問(wèn),就大大影響進(jìn)程之間的切換。如果不支持間址的位訪(fǎng)問(wèn),假設有8位信息點(diǎn),則必須編寫(xiě)8句直接位檢測的語(yǔ)句來(lái)判別,增加了代碼的長(cháng)度;如果各進(jìn)程要使用同一個(gè)代碼段,必須為各進(jìn)程置換重用的資源,浪費時(shí)間;而如果各進(jìn)程使用不同的資源,則必須書(shū)寫(xiě)代碼功能相同、僅僅資源不同的代碼,F在常用的微控制器,位間接尋址能力都比較差,編寫(xiě)程序費時(shí)費力,代碼冗長(cháng),修改困難。
對于字節數據,要求提供既可對數據代碼區,又可對程序代碼區的間址訪(fǎng)問(wèn)支持。當前常見(jiàn)的微控制器,雖然也提供對程序代碼區的間址訪(fǎng)問(wèn)支持,但限于查表操作。應用程序要訪(fǎng)問(wèn)存放于數據內的常數,必須先調用查表程序獲取對象,再將它放入某個(gè)工作單元,然后才能開(kāi)始處理。如果能通過(guò)間址直接訪(fǎng)問(wèn)程序存儲器中的數據表,則節省了時(shí)間與空間的開(kāi)銷(xiāo)。
(2)數據描述能力
隨著(zhù)人工智能、自適應、自學(xué)習技術(shù)的發(fā)展,參與關(guān)系運算的兩個(gè)對象經(jīng)常都是變量,微控制器指令系統的設計必須考慮這一因素。
關(guān)系運算的兩個(gè)對象,應該支持運算器與立即數、寄存器、直接尋址或者間接尋址對象的關(guān)系運算;而間接尋址對象可以放在數據存儲區中,也可以在程序存儲區中?紤]到數組、隊列的運算需要,比較理想的是間址寄存器支持指定次數循環(huán)或者支持循環(huán)隊列操作。
相對尋址能力;采用一個(gè)基指針,再與間址寄存器疊加形成訪(fǎng)問(wèn)地址。既可訪(fǎng)問(wèn)程序代碼空間。便于查表操作,用空間資源換取時(shí)間,提高非線(xiàn)性運算的處理速度;又可訪(fǎng)問(wèn)數據存儲空間,便于計算機輔助開(kāi)發(fā)應用程序生成運行代碼中數據間址訪(fǎng)問(wèn)。
3.原子操作指令支持
同步與互斥是多進(jìn)程必須處理的問(wèn)題。多進(jìn)程搶占系統資源時(shí),要先判斷系統資源使用標識。一般用一個(gè)位標識,是空閑則占用。這是一種互斥行為,一旦資源被占用,其它進(jìn)程不得使用。為了避免一個(gè)進(jìn)程檢測到系統資源空閑之后,但在未改變標識位之間,另一個(gè)進(jìn)程也檢測到該資源空閑,必須將檢測與改變標識設計為原子操作。一般,都通過(guò)禁止系統中斷來(lái)解決。在檢測之前關(guān)閉中斷,檢測之后再開(kāi)啟中斷。如果指令提供對標志位以及對標識字節的原子操作支持,將減少程序并提高效率。
(1)標識位操作指令
要求對標識位的檢測、清除標識位以及轉移,在一條指令內完成。這在有些微控制器中已有指令支持。
(2)適應信號燈操作的指令
多進(jìn)程并發(fā)運行時(shí),經(jīng)常用到信號燈技術(shù)。為了適應PV操作等同步與互斥操作,微控制器應提供減一等于某值轉移,以及增一等于某值轉移這樣的指令支持。這樣就可免去信號監測前后的關(guān)閉、開(kāi)啟中斷操作,而僅在需要保護臨界區時(shí)才關(guān)閉中斷。禁止中斷的時(shí)間減少了,相當于系統響應實(shí)時(shí)事件的能力
【適應實(shí)時(shí)多任務(wù)的微控制器高效指令支持】相關(guān)文章:
一種基于比特表的實(shí)時(shí)多任務(wù)新調度算法03-18
基于MSP430單片機的實(shí)時(shí)多任務(wù)操作系統03-18
點(diǎn)對多點(diǎn)的多任務(wù)無(wú)線(xiàn)通信12-05
期貨交易指令的識別與責任確認03-18
微控制器的GPRS無(wú)線(xiàn)上網(wǎng)03-18
建立實(shí)時(shí)企業(yè)的策略分析03-20
遠程實(shí)時(shí)審計淺探03-24
MPC555微控制器與汽車(chē)電子03-18