欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

事件驅(qū)動(dòng)的處理器及其運(yùn)行方法

文檔序號(hào):6622586閱讀:260來(lái)源:國(guó)知局
事件驅(qū)動(dòng)的處理器及其運(yùn)行方法
【專(zhuān)利摘要】本發(fā)明描述了運(yùn)行事件驅(qū)動(dòng)的處理器的方法與事件驅(qū)動(dòng)的處理器的實(shí)施方式。在一種實(shí)施方式中,一種運(yùn)行事件驅(qū)動(dòng)的處理器的方法,涉及:為事件驅(qū)動(dòng)的處理器配置博動(dòng)計(jì)時(shí)器;以及基于博動(dòng)計(jì)時(shí)器,利用事件驅(qū)動(dòng)的處理器來(lái)處置事件。利用博動(dòng)計(jì)時(shí)器植入事件驅(qū)動(dòng)的處理器,該事件驅(qū)動(dòng)的處理器的任務(wù)執(zhí)行的確定性得以提升,并且其能耗下降。本發(fā)明還描述了其他實(shí)施方式。
【專(zhuān)利說(shuō)明】事件驅(qū)動(dòng)的處理器及其運(yùn)行方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及用于事件驅(qū)動(dòng)的處理器的任務(wù)執(zhí)行確定性的改進(jìn),具體地,涉及事件驅(qū)動(dòng)的處理器及其運(yùn)行方法。

【背景技術(shù)】
[0002]對(duì)于處理器來(lái)說(shuō),諸如與外圍設(shè)備通信的服務(wù)帶寬以及任務(wù)執(zhí)行的確定性等特性,對(duì)于其性能而言非常重要。例如,在復(fù)雜的多中央處理單元(CPU)或多外圍片上系統(tǒng)(SoC)中,用于CPU或SoC與外圍部件的通信的服務(wù)帶寬通常來(lái)說(shuō)不可預(yù)測(cè),任務(wù)執(zhí)行的確定性也比較困難。為保證某種程度上的確定機(jī)制,軟件通常會(huì)將任務(wù)區(qū)分為較小的單元,這些較小單元的執(zhí)行的開(kāi)端可以利用中斷進(jìn)行同步。盡管如此,利用中斷來(lái)再同步任務(wù)的執(zhí)行,對(duì)于執(zhí)行本身而言,將增加管理。比如,每次當(dāng)指令執(zhí)行由主回合轉(zhuǎn)移到中斷回合時(shí),都需要消耗數(shù)個(gè)周期,以使CPU可以執(zhí)行前后的切換,如寄存器的堆疊。此外,利用中斷實(shí)現(xiàn)再同步的任務(wù)執(zhí)行所能得到的粒度較為有限。如果軟件中明確寫(xiě)成將任務(wù)執(zhí)行延后到每一個(gè)或多個(gè)指令之后,則軟件的代碼將會(huì)顯著增加。進(jìn)一步地,重復(fù)執(zhí)行“等待中斷”指令也會(huì)造成代碼體積增大,并浪費(fèi)運(yùn)算資源。
[0003]處理器的功耗是另外一個(gè)重要的性能指標(biāo)。部分CPU任務(wù)會(huì)遇到不可預(yù)知的訪(fǎng)問(wèn)延遲。在執(zhí)行這類(lèi)任務(wù)時(shí),CPU在空置周期內(nèi)還會(huì)浪費(fèi)能量。例如,CPU的內(nèi)部電路還處于運(yùn)轉(zhuǎn)狀態(tài)并消耗能量,但此時(shí)由于外部延遲的原因卻沒(méi)有處理進(jìn)展。


【發(fā)明內(nèi)容】

[0004]本說(shuō)明書(shū)描述了運(yùn)行事件驅(qū)動(dòng)的處理器的方法與事件驅(qū)動(dòng)的處理器的實(shí)施方式。在一種實(shí)施方式中,一種運(yùn)行事件驅(qū)動(dòng)的處理器的方法,涉及:為事件驅(qū)動(dòng)的處理器配置博動(dòng)計(jì)時(shí)器;以及基于博動(dòng)計(jì)時(shí)器,利用事件驅(qū)動(dòng)的處理器來(lái)處置事件。利用博動(dòng)計(jì)時(shí)器植入事件驅(qū)動(dòng)的處理器,該事件驅(qū)動(dòng)的處理器的任務(wù)執(zhí)行的確定性得以提升,并且其能耗下降。本說(shuō)明書(shū)還描述了其他實(shí)施方式。
[0005]在一種實(shí)施方式中,一種運(yùn)行事件驅(qū)動(dòng)的處理器的方法涉及:配置事件驅(qū)動(dòng)的處理器的博動(dòng)計(jì)時(shí)器,以及基于博動(dòng)計(jì)時(shí)器來(lái)利用該事件驅(qū)動(dòng)的處理器處置事件。
[0006]在一種實(shí)施方式中,事件驅(qū)動(dòng)的處理器包括:指令庫(kù),配置為存儲(chǔ)指令集,指令集包括計(jì)算機(jī)可執(zhí)行指令,用于在事件驅(qū)動(dòng)的處理器內(nèi)實(shí)現(xiàn)博動(dòng)計(jì)時(shí)器。該事件驅(qū)動(dòng)的處理器還包括運(yùn)行代碼翻譯器,用于配置博動(dòng)計(jì)時(shí)器,以及基于博動(dòng)計(jì)時(shí)器來(lái)處置事件。
[0007]在一種實(shí)施方式中,一種運(yùn)行事件驅(qū)動(dòng)的處理器的方法涉及:配置博動(dòng)計(jì)時(shí)器,博勸計(jì)時(shí)器集成在該事件驅(qū)動(dòng)的處理器的指令集中。配置博動(dòng)計(jì)時(shí)器包括:為事件驅(qū)動(dòng)的處理器指定博動(dòng)期間,以及倒數(shù)博動(dòng)計(jì)時(shí)器至預(yù)定義的值,直至博動(dòng)期間到期。該方法還涉及:當(dāng)博動(dòng)計(jì)時(shí)器到達(dá)該預(yù)定義的值時(shí),響應(yīng)于事件,利用該事件驅(qū)動(dòng)的處理器來(lái)執(zhí)行軟件程序;其中軟件程序中包括機(jī)器語(yǔ)言指令,機(jī)器語(yǔ)言指令指定該事件驅(qū)動(dòng)的處理器要執(zhí)行的操作。
[0008]本發(fā)明的各實(shí)施方式的其他方面和優(yōu)點(diǎn)將通過(guò)以下詳細(xì)描述結(jié)合所附的附圖進(jìn)一步闡明。

【專(zhuān)利附圖】

【附圖說(shuō)明】
[0009]圖1所示的是根據(jù)本發(fā)明一種實(shí)施方式的處理器的示例性模塊圖。
[0010]圖2和圖3是圖1中所述的處理器的兩個(gè)示例的運(yùn)行實(shí)施方式的流程圖。
[0011]圖4所示的是圖1中的處理器的一種實(shí)施方式。
[0012]圖5所示的是圖4中的處理器的運(yùn)行的一種實(shí)施方式。
[0013]圖6所示的是本發(fā)明一種實(shí)施方式的運(yùn)行事件驅(qū)動(dòng)的處理器的方法的流程圖。
[0014]在以下描述中,相似的標(biāo)號(hào)可能用于標(biāo)識(shí)相似的元件。

【具體實(shí)施方式】
[0015]應(yīng)當(dāng)理解的是,本發(fā)明各實(shí)施方式中所提及的并在后附的圖形中展示的各元件可以在更廣范圍內(nèi)以不同的設(shè)置方式進(jìn)行布置和設(shè)計(jì)。從而,以下關(guān)于各實(shí)施方式所描述的以及附圖中所表示的本發(fā)明的細(xì)節(jié),僅表示各實(shí)施方式的代表,但并不表示對(duì)本發(fā)明范圍的限制。同時(shí),本發(fā)明實(shí)施方式的各部分在附圖中有所展示,但除非特別說(shuō)明,附圖并不繪制為限制比例。
[0016]以下所述的各實(shí)施方式在任何情況下都應(yīng)當(dāng)僅理解為示例性地而非限制性地。因此,本發(fā)明的范圍應(yīng)當(dāng)由后述的權(quán)利要求書(shū)而不是本實(shí)施方式說(shuō)明來(lái)標(biāo)示。任何在權(quán)早要求的意述和等同范圍內(nèi)的變化,都應(yīng)當(dāng)認(rèn)為是包含于本發(fā)明的權(quán)利要求之內(nèi)。
[0017]本說(shuō)明書(shū)中關(guān)于各特征、優(yōu)點(diǎn)、或類(lèi)似語(yǔ)言的指代并不表明本發(fā)明的所有的特征和優(yōu)點(diǎn)應(yīng)當(dāng)或?qū)嶋H在單個(gè)實(shí)施方式中得以實(shí)現(xiàn)。相反,對(duì)于特征和優(yōu)點(diǎn)的指代性語(yǔ)言應(yīng)當(dāng)理解為表明至少一個(gè)實(shí)施方式中包括了通過(guò)某一實(shí)施方式所描述了的特定的特征、優(yōu)點(diǎn)或特性。因此,本說(shuō)明書(shū)中對(duì)于特征、優(yōu)點(diǎn)或類(lèi)似語(yǔ)言的描述可能但不必然地指向相同的實(shí)施方式。
[0018]進(jìn)一步地,所描述的本發(fā)明的各特征、優(yōu)點(diǎn)和特點(diǎn)在一個(gè)或多個(gè)實(shí)施方式中可以以任意合適的方式進(jìn)行組合。所屬【技術(shù)領(lǐng)域】的技術(shù)人員可以意識(shí)到,通過(guò)以下描述,本發(fā)明可以實(shí)現(xiàn)為不具備某個(gè)特定實(shí)施方式中的一個(gè)或多個(gè)特定的特征或優(yōu)點(diǎn)。在其他例子中,也可以意識(shí)到其具有未被各實(shí)施方式所描述的其他特征或優(yōu)點(diǎn)。
[0019]本說(shuō)明書(shū)中關(guān)于“一個(gè)實(shí)施方式”的類(lèi)似語(yǔ)言的表述,意為至少一個(gè)實(shí)施方式中包括了特定的與所表征的實(shí)施方式相聯(lián)系起來(lái)描述的特征、結(jié)構(gòu)或特點(diǎn)。因此,本說(shuō)明書(shū)中對(duì)于“在一個(gè)實(shí)施方式中”或類(lèi)似語(yǔ)言的描述可能但不必然地指向相同的實(shí)施方式。
[0020]圖1所示的是根據(jù)本發(fā)明一種實(shí)施方式的處理器100的示例性模塊圖。該處理器100可以使得任務(wù)的執(zhí)行受控地減緩,并且保證任務(wù)執(zhí)行在很大程度上的確定性,以下將詳述之。在圖1所述的實(shí)施方式中,處理器100是一種事件驅(qū)動(dòng)的處理器,其包括事件檢測(cè)器102和事件處置器104,事件檢測(cè)器基于輸入數(shù)據(jù)檢查事件的發(fā)生;事件處置器104響應(yīng)于事件檢測(cè)器102的事件通知而處置該事件。“事件”是預(yù)先定義的情形。事件的例子包括但不限于:用戶(hù)動(dòng)作(如鍵盤(pán)動(dòng)作、鼠標(biāo)動(dòng)作)、內(nèi)部UO功能完成、計(jì)時(shí)硬件事件以及發(fā)自另一計(jì)算機(jī)的數(shù)據(jù)到達(dá)等。該事件驅(qū)動(dòng)的處理器可以將計(jì)算功能的執(zhí)行與輸入/輸出(UO)功能的執(zhí)行重疊起來(lái)?;谑录能浖沟迷撌录?qū)動(dòng)的處理器可以運(yùn)行多個(gè)任務(wù),其利用了一種具有主控制循環(huán)(主循環(huán))的計(jì)算結(jié)構(gòu),當(dāng)在主循環(huán)的程序之外發(fā)生一個(gè)事件時(shí),該計(jì)算結(jié)構(gòu)允許執(zhí)行回調(diào)函數(shù)。在部分實(shí)施方式中,事件驅(qū)動(dòng)的程序使用包含關(guān)聯(lián)表的事件庫(kù),該關(guān)聯(lián)表將特定的事件與特定的回調(diào)函數(shù)相關(guān)聯(lián)起來(lái)?;卣{(diào)函數(shù)可以是機(jī)器指令,其導(dǎo)引該事件驅(qū)動(dòng)的處理器來(lái)進(jìn)行特定的動(dòng)作。處理器動(dòng)作的示例包括但不限于:執(zhí)行預(yù)先定義的計(jì)算功能,傳遞通知,以及查詢(xún)數(shù)據(jù)庫(kù)?;卣{(diào)函數(shù)與相應(yīng)的事件類(lèi)型有關(guān)。事件驅(qū)動(dòng)的處理器可以響應(yīng)于一個(gè)或多個(gè)連續(xù)的事件而執(zhí)行一系列的回調(diào)函數(shù)。
[0021]在部分實(shí)施方式中,該事件驅(qū)動(dòng)的處理器100是一種微控制器,其設(shè)計(jì)為執(zhí)行一個(gè)或多個(gè)特定的專(zhuān)用功能。例如,該事件驅(qū)動(dòng)的處理器可以經(jīng)由觸發(fā)事件所指定的回調(diào)函數(shù)的導(dǎo)引而執(zhí)行機(jī)器指令。除了事件檢測(cè)器102和事件處置器104之外,事件驅(qū)動(dòng)的處理器還可以包括其他元件,例如計(jì)時(shí)器、串行或并行U0接口、以及程序存儲(chǔ)器。然而,在部分其他實(shí)施方式中,事件驅(qū)動(dòng)的處理器是一種通用目的處理器,例如CPU。
[0022]傳統(tǒng)的中斷驅(qū)動(dòng)的處理器在等待事件發(fā)生時(shí)不可能停止處理。傳統(tǒng)的中斷驅(qū)動(dòng)的處理器反而是持續(xù)地執(zhí)行指令,不但消耗時(shí)間,而且占用系統(tǒng)資源。對(duì)于類(lèi)似來(lái)自不經(jīng)常使用的外設(shè)的U0操作(如傳真機(jī)、掃描儀和打印機(jī))等部分事件,持續(xù)的監(jiān)測(cè)會(huì)導(dǎo)致能量和系統(tǒng)資源的極大浪費(fèi)。
[0023]的圖1所示的實(shí)施方式中,該事件驅(qū)動(dòng)的處理器100是一種非中斷驅(qū)動(dòng)的處理器。相比于傳統(tǒng)的中斷驅(qū)動(dòng)的處理器,圖1中所示的事件驅(qū)動(dòng)的處理器100可以使得任務(wù)的執(zhí)行受控地減緩,并且保證任務(wù)執(zhí)行在很大程度上的確定性。在一種實(shí)施方式中,該事件驅(qū)動(dòng)的處理器具有其自己的“博動(dòng)”計(jì)時(shí)器,從而每個(gè)指令可以在經(jīng)過(guò)特定的延遲之后得以執(zhí)行,或者全部代碼塊都被統(tǒng)一到確定的時(shí)間點(diǎn)上開(kāi)始執(zhí)行。相比于傳統(tǒng)的中斷驅(qū)動(dòng)的處理器,該事件驅(qū)動(dòng)的處理器代碼體積增長(zhǎng)有限。利用該事件驅(qū)動(dòng)的處理器,指令可以全速地獲得,但運(yùn)行代碼(opcode)的執(zhí)行將被推遲到產(chǎn)生一個(gè)博動(dòng)時(shí)(例如,博動(dòng)計(jì)時(shí)器到達(dá)一個(gè)預(yù)先定義的閾值,如0)。運(yùn)行代碼opcode可以是機(jī)器語(yǔ)言指令,其指定將要執(zhí)行的操作。將各執(zhí)行利用博動(dòng)計(jì)時(shí)器同步起來(lái),提供給用戶(hù)一種利器,可以用之來(lái)形成一種“對(duì)齊到網(wǎng)格”風(fēng)格(例如,如在網(wǎng)格中一般確定)的執(zhí)行方式,從而,即便該事件驅(qū)動(dòng)的處理器可能經(jīng)歷各種延遲,還是可以保證可預(yù)測(cè)的確定執(zhí)行。只要下一個(gè)指令是在博動(dòng)計(jì)數(shù)器/計(jì)時(shí)器的倒數(shù)時(shí)間之內(nèi)獲取到的,該軟件指令就會(huì)被準(zhǔn)時(shí)執(zhí)行。換言之,不管每個(gè)指令獲取或數(shù)據(jù)讀/寫(xiě)中經(jīng)歷了什么樣的延遲,只要該指令是在博動(dòng)計(jì)數(shù)器到達(dá)0之前獲取的,都會(huì)得到一個(gè)確定的執(zhí)行。將事件驅(qū)動(dòng)的處理器設(shè)置為將其所有opcode同步到給定的博動(dòng)間隔,可以使得事件驅(qū)動(dòng)處理器動(dòng)態(tài)地調(diào)整其執(zhí)行速度,而無(wú)需影響到與外圍設(shè)備的連接。因經(jīng),該事件驅(qū)動(dòng)的處理器可以通過(guò)增大或減小博動(dòng)間隔而輕易地從執(zhí)行于一個(gè)節(jié)奏切換到執(zhí)行于另一個(gè)(例如,更慢或更快的)節(jié)奏。由于事件驅(qū)動(dòng)的處理器可以改變執(zhí)行速度,該事件驅(qū)動(dòng)的處理器有必要時(shí)在執(zhí)行速度上可以更敏捷,或者在其他情況下變慢但更具有確定性。此外,事件驅(qū)動(dòng)的處理器可以在博動(dòng)間隔中間關(guān)閉處理功能,以在任務(wù)執(zhí)行之外減小功耗。例如,當(dāng)執(zhí)行一個(gè)任務(wù)所花費(fèi)的時(shí)間長(zhǎng)度不限定時(shí),以及當(dāng)更快的執(zhí)行并不減小任務(wù)執(zhí)行的持續(xù)時(shí)間時(shí),事件驅(qū)動(dòng)的處理器可以節(jié)省能量。
[0024]在圖1所示的實(shí)施方式中,博動(dòng)計(jì)時(shí)器106實(shí)現(xiàn)為在事件驅(qū)動(dòng)的處理器100的內(nèi)部。例如,該博動(dòng)計(jì)時(shí)器可以實(shí)現(xiàn)在事件處置器104內(nèi)。該博動(dòng)計(jì)時(shí)器還可以實(shí)現(xiàn)為硬件和/或存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的軟件。在其他實(shí)施方式中,事件處置器設(shè)置博動(dòng)計(jì)時(shí)器,并基于博動(dòng)計(jì)時(shí)器來(lái)處置事件。根據(jù)本發(fā)明的實(shí)施方式,事件處置器為事件驅(qū)動(dòng)的處理器指定一個(gè)博動(dòng)期間,在博動(dòng)期間到期前獲取軟件程序,并在博動(dòng)期間到期后,響應(yīng)于事件檢測(cè)器102檢測(cè)到一個(gè)或多個(gè)事件,執(zhí)行軟件程序。事件驅(qū)動(dòng)的處理器的博動(dòng)期間是博動(dòng)計(jì)時(shí)器106的一個(gè)周期的時(shí)間。例如,在博動(dòng)計(jì)時(shí)器106的一個(gè)周期內(nèi),博動(dòng)計(jì)時(shí)器106計(jì)數(shù)預(yù)定數(shù)量的(例如整數(shù)個(gè))數(shù)字。事件處置器也可以在當(dāng)前博動(dòng)期間到期之后,為事件驅(qū)動(dòng)的處理器指定一個(gè)不同的博動(dòng)期間。根據(jù)本發(fā)明的一種實(shí)施方式,事件處置器倒數(shù)博動(dòng)計(jì)時(shí)器至預(yù)先定義的值(如O),并在博動(dòng)計(jì)時(shí)器到達(dá)該預(yù)先定義的值時(shí)執(zhí)行軟件程序。事件處置器還可以為事件驅(qū)動(dòng)的處理器指定博動(dòng)間隔,并相應(yīng)地響應(yīng)于在該博動(dòng)間隔中檢測(cè)到一個(gè)或多個(gè)事件而執(zhí)行軟件程序。
[0025]在部分實(shí)施方式中,博動(dòng)計(jì)時(shí)器106實(shí)現(xiàn)為事件驅(qū)動(dòng)的處理器100中的指令集。該指令集包括用于實(shí)現(xiàn)事件驅(qū)動(dòng)的處理器100的計(jì)算功能的計(jì)算機(jī)可執(zhí)行指令(如軟件代碼)。例如,該指令集可以包括用于數(shù)據(jù)處理和存儲(chǔ)器操作的軟件代碼,如將寄存器設(shè)值、在存儲(chǔ)器位置之間移動(dòng)數(shù)據(jù)。該指令集還可以包括用于算法和邏輯操作的軟件代碼。例如,該指令集可以包括用于加、減、乘、除數(shù)字值的和/或執(zhí)行逐位運(yùn)算的軟件代碼。該博動(dòng)計(jì)時(shí)器可以被設(shè)置為任意值(如任意非負(fù)整數(shù))。例如,博動(dòng)計(jì)時(shí)器可以重復(fù)地倒數(shù)至O。當(dāng)計(jì)數(shù)到O時(shí),執(zhí)行相應(yīng)的軟件程序。通常地,在博動(dòng)計(jì)時(shí)器倒數(shù)至O時(shí),不會(huì)產(chǎn)生或發(fā)出處理器系統(tǒng)信息。事件驅(qū)動(dòng)的處理器可以被編程為將所有opcode執(zhí)行都同步到一個(gè)博動(dòng)間隔、或者進(jìn)行執(zhí)行的延遲直至下一下博動(dòng)間隔。將所有的opcode都同步到一個(gè)博動(dòng)間隔,可以使得即便在事件驅(qū)動(dòng)的處理器和總線(xiàn)上的另一實(shí)體之間存在總線(xiàn)連接時(shí)也能夠保證完全確定性的任務(wù)執(zhí)行。因此,博動(dòng)計(jì)時(shí)器給予事件驅(qū)動(dòng)的處理器為自身運(yùn)行進(jìn)行計(jì)時(shí)的能力,以及在不影響系統(tǒng)性能和外部時(shí)鐘頻率的情況下在不工作時(shí)降低能耗的能力。由于事件驅(qū)動(dòng)的處理器可以運(yùn)行于全速或?qū)⒉糠謭?zhí)行節(jié)流于準(zhǔn)備通道中,該事件驅(qū)動(dòng)的處理器可以展示出對(duì)齊到網(wǎng)絡(luò)的執(zhí)行。此外,由于博動(dòng)計(jì)時(shí)器可以實(shí)現(xiàn)在處理器100的指令集之中,事件驅(qū)動(dòng)的處理器可以運(yùn)行為外圍設(shè)備。
[0026]圖2和圖3是圖1中所述的處理器100的兩個(gè)示例的運(yùn)行實(shí)施方式的流程圖。在部分實(shí)施方式中,博動(dòng)計(jì)時(shí)器106基于博動(dòng)期間計(jì)數(shù)到預(yù)定義的閾值(如O)。在圖2中所示的運(yùn)行中,步驟202指定博動(dòng)計(jì)時(shí)器106的博動(dòng)期間。步驟204,處理器檢查博動(dòng)期間是否到期。步驟206,如果博動(dòng)期間未到期,處理器獲取軟件程序。步驟208,如果博動(dòng)期間到期,處理器執(zhí)行所獲取的軟件程序。由于事件驅(qū)動(dòng)的處理器100將軟件程序的執(zhí)行同步到博動(dòng)期間,從而可以增強(qiáng)事件驅(qū)動(dòng)的處理器的任務(wù)執(zhí)行的確定性。此外,由于在事件驅(qū)動(dòng)的處理器等候博動(dòng)期間到期時(shí),軟件代碼可以被預(yù)獲取到事件驅(qū)動(dòng)的處理器中,從而該事件驅(qū)動(dòng)的處理器的效率可以得到提升。
[0027]在部分實(shí)施方式中,博動(dòng)計(jì)時(shí)器106根據(jù)博動(dòng)間隔來(lái)周期性地計(jì)數(shù)到預(yù)先定義的閾值(如O),該博動(dòng)間隔定義了兩個(gè)連續(xù)的博動(dòng)之間的時(shí)間。在圖3中所示的運(yùn)行中,步驟302,指定博動(dòng)計(jì)時(shí)器106的博動(dòng)間隔。步驟304,處理器100檢測(cè)自博動(dòng)間隔被指定的時(shí)間點(diǎn)以后是否過(guò)去一個(gè)或多個(gè)博動(dòng)間隔。步驟306,如果有一個(gè)或多個(gè)博動(dòng)間隔已過(guò)去,處理器執(zhí)行軟件程序。如果沒(méi)有過(guò)去一個(gè)或多個(gè)博動(dòng)間隔,處理器回到步驟304,再次檢查是否過(guò)去一個(gè)或多個(gè)博動(dòng)間隔。處理器可以在博動(dòng)間隔之間預(yù)獲取軟件程序。由于事件驅(qū)動(dòng)的處理器100將軟件程序的執(zhí)行同步到博動(dòng)間隔上,可以增強(qiáng)事件驅(qū)動(dòng)處理器的任務(wù)執(zhí)行的確定性。
[0028]圖4所示的是圖1中的事件驅(qū)動(dòng)的處理器100的一種實(shí)施方式,其中,博動(dòng)計(jì)時(shí)器206實(shí)現(xiàn)為事件驅(qū)動(dòng)處理器400中的指令集。在圖4所示的實(shí)施方式中,事件驅(qū)動(dòng)的處理器400包括事件檢測(cè)器402、事件處置器404。事件檢測(cè)器402基于輸入數(shù)據(jù)檢查事件的發(fā)生。事件處置器404響應(yīng)于發(fā)自事件檢測(cè)器的事件通知而處置該事件。圖4中所示的事件驅(qū)動(dòng)的處理器400是圖1中所示的事件驅(qū)動(dòng)的處理器100的可能實(shí)現(xiàn)方式之一。然而,圖1中所述的事件驅(qū)動(dòng)的處理器100不限制為圖4中所示的事件驅(qū)動(dòng)的處理器400。
[0029]事件驅(qū)動(dòng)的處理器400的事件檢測(cè)器402包括模式檢測(cè)器408,模式檢測(cè)器408配置為自一系列外部輸入中監(jiān)測(cè)至少一個(gè)事件。模式檢測(cè)器也可以同時(shí)監(jiān)測(cè)多個(gè)事件。模式檢測(cè)器可以監(jiān)測(cè)事件組合是否發(fā)生,并當(dāng)事件組合發(fā)生時(shí)提供正邏輯位。用戶(hù)可對(duì)模式檢測(cè)器進(jìn)行設(shè)置,以監(jiān)測(cè)布林事件源組合。模式檢測(cè)器的輸出可以是邏輯位,如“1”或“0”。在某實(shí)施方式中,模式檢測(cè)器利用數(shù)個(gè)軟件位片來(lái)監(jiān)測(cè)外部輸入中是否有至少一個(gè)觸發(fā)事件發(fā)生。每個(gè)位片監(jiān)測(cè)一個(gè)單獨(dú)的外部輸入中的觸發(fā)事件。
[0030]事件驅(qū)動(dòng)的處理器400中的事件處置器404包括opcode翻譯器412、指令庫(kù)414以及至少一個(gè)寄存器410。Opcode翻譯器恢復(fù)并執(zhí)行至少一個(gè)指令。指令庫(kù)維護(hù)一個(gè)指令清單,以供微處理器進(jìn)行恢復(fù);寄存器中存儲(chǔ)opcode,用以實(shí)現(xiàn)事件驅(qū)動(dòng)的處理器的各類(lèi)功能。在圖4所示的實(shí)施方式中,指令庫(kù)將指令集存儲(chǔ)到事件驅(qū)動(dòng)的處理器的博動(dòng)計(jì)時(shí)器設(shè)置的地方。寄存器可以實(shí)現(xiàn)為存儲(chǔ)元件,如閃存、隨機(jī)存取存儲(chǔ)器或只讀存儲(chǔ)器。
[0031]在部分實(shí)施方式中,opcode翻譯器412獲取、解碼并執(zhí)行從例如指令庫(kù)414中恢復(fù)而來(lái)的機(jī)器指令得到的opcode。在某個(gè)實(shí)施方式中,opcode翻譯器執(zhí)行存儲(chǔ)在指令庫(kù)中的一系列機(jī)器指令。部分機(jī)器指令可能會(huì)改變opcode翻譯器中狀態(tài)機(jī)的狀態(tài)。在opcode翻譯器中,特定指令或指令的子程序的執(zhí)行可以由模式檢測(cè)器408的輸出來(lái)觸發(fā)。在部分實(shí)施方式中,opcode翻譯器可以包括狀態(tài)機(jī),狀態(tài)機(jī)維護(hù)多個(gè)狀態(tài),并可能基于特定的指令的執(zhí)行而改變狀態(tài)。在某些實(shí)施方式中,opcode翻譯器借助機(jī)器指令來(lái)運(yùn)行四個(gè)基本的處理步驟:獲取、解碼、執(zhí)行、回寫(xiě)。
[0032]以下描述opcode翻譯器412運(yùn)行的一個(gè)例子。在獲取步驟中,opcode翻譯器從指令存儲(chǔ)器,如指令庫(kù)414中,恢復(fù)其存儲(chǔ)的一個(gè)機(jī)器指令。所恢復(fù)的指令可以包括運(yùn)行代碼(opcode),運(yùn)行代碼向opcode翻譯器指定其執(zhí)行的運(yùn)行,并且還可以為所指令的運(yùn)行指定一個(gè)或多個(gè)運(yùn)算對(duì)象或其他參數(shù)。為opcode翻譯器存儲(chǔ)指令的可以是指令庫(kù)、另一個(gè)在事件驅(qū)動(dòng)的處理器400中的存儲(chǔ)器設(shè)備、或事件驅(qū)動(dòng)的處理器外的指令緩存存儲(chǔ)器。Opcode翻譯器隨后可以在獲取指令之后進(jìn)行所獲取的指令的解碼。
[0033]傳統(tǒng)的中斷驅(qū)動(dòng)的處理器典型地依賴(lài)于外部的計(jì)時(shí)器作為中斷源,從而不但引入延遲,還會(huì)造成抖動(dòng)。例如,中斷驅(qū)動(dòng)的處理器通常在進(jìn)入中斷服務(wù)程序(ISR)之前執(zhí)行內(nèi)部寄存器的堆疊。此外,對(duì)于計(jì)時(shí)器的重新配置也可能引入進(jìn)一步的抖動(dòng)。
[0034]相比于傳統(tǒng)的中斷驅(qū)動(dòng)的處理器,事件驅(qū)動(dòng)的處理器400的抖動(dòng)較少。特別地,事件驅(qū)動(dòng)的處理器400具有內(nèi)置的博動(dòng)計(jì)時(shí)器406,其實(shí)現(xiàn)為事件驅(qū)動(dòng)的處理器的指令集。例如,博動(dòng)計(jì)時(shí)器406可以通過(guò)指令集的軟件代碼來(lái)實(shí)現(xiàn)。
[0035]將博動(dòng)計(jì)時(shí)器406集成到事件驅(qū)動(dòng)的處理器400的指令集,使得編程人員可以實(shí)現(xiàn)以往處理器所不能實(shí)現(xiàn)的功能。例如,通過(guò)opcode翻譯器412,可以設(shè)置博動(dòng)計(jì)時(shí)器從而計(jì)時(shí)一個(gè)間隔(如通過(guò)執(zhí)行博動(dòng)配置“HEART_BEAT_CONFIG”程序/流程),隨后等待博動(dòng)計(jì)時(shí)器到達(dá)預(yù)先定義的閾值(如通過(guò)執(zhí)行等待博動(dòng)“WAIT_FOR_BEAT”程序)。該方法可以用來(lái)保證隨后的opcode精確地執(zhí)行于指定的時(shí)間間隔,該時(shí)間間隔自博動(dòng)配置opcode執(zhí)行的時(shí)點(diǎn)被指定。此外,指令可以在正常的博動(dòng)間隔中重復(fù)執(zhí)行。例如,等待博動(dòng)程序可以在代碼需要被延遲等待至下一博動(dòng)的任意時(shí)間使用。進(jìn)一步地,博動(dòng)計(jì)時(shí)器可以通過(guò)單獨(dú)的opcode配置,以便該博動(dòng)計(jì)時(shí)器到達(dá)預(yù)先定義的閾值時(shí)驅(qū)使執(zhí)行各自相應(yīng)的opcode。
[0036]間隔博動(dòng)計(jì)時(shí)器可以用來(lái)實(shí)現(xiàn)級(jí)聯(lián)的延遲。例如,一個(gè)等待博動(dòng)程序可以后接一個(gè)博動(dòng)配置指令,以保證在前一博動(dòng)周期停止時(shí)隨即啟動(dòng)新的博動(dòng)周期。以下將參考圖5中示出的數(shù)據(jù)取樣運(yùn)算給出一個(gè)偽代碼示例,其利用博動(dòng)計(jì)時(shí)器來(lái)實(shí)現(xiàn)級(jí)聯(lián)的延遲。該代碼實(shí)例可用于事件驅(qū)動(dòng)的處理器400 (如opcode翻譯器412)來(lái)執(zhí)行通用異步收發(fā)傳輸器(UART)的功能。在UART情形下,第一次的等待時(shí)間是位時(shí)間的一半(T/2),后續(xù)的等待時(shí)間是完整的位時(shí)間(T),以允許在每位的中間時(shí)刻開(kāi)始取樣。位時(shí)間(T)為位周期,其等于UART的波特率的倒數(shù)。UART可以取樣每個(gè)位η次(η為大于1的正整數(shù)),每個(gè)位時(shí)間等于采樣周期“Tua”的η倍。在圖5所示的實(shí)施方式中,UART取樣每個(gè)位16次,因此每個(gè)位時(shí)間⑴等于采樣周期“Tua”的16倍。
[0037]偽碼:
[0038]WAIT_L00P
[0039]HEART_BEAT_C0NFIG (T/2) // 配置 T/2
[0040]WAIT_F0R_TRIGGER ① // 檢測(cè)起始位
[0041]wait_for_beat②II與位元中心同步(為起始位)
[0042]heart_beat_config(t) //自此,每個(gè)T時(shí)間都需要同步。配置T。
[0043]L0AD_DATA //讀取數(shù)據(jù)
[0044]IF DATA = 1G0T0 WAIT_L00P //需要確保這是起始位(而不是短時(shí)干擾)
[0045]LOOP (Stimes) //循環(huán)8次(或9次,視奇偶而定)以檢查數(shù)據(jù)
[0046]WAIT_F0R_BEAT③//與位元中心同步(為數(shù)據(jù)位)
[0047]LOAD_AND_ACCUMULATE_DATA //讀取并累積數(shù)據(jù)
[0048]SHIFT_ACC_RIGHT_1 // 為下一數(shù)據(jù)位準(zhǔn)備
[0049]END_L00P
[0050]wait_for_beat④II與位元中心同步(為停止位)
[0051]IF DATA = 0G0T0 WAIT_L00P //需要驗(yàn)證停止位;否則舍棄該接收
[0052]DATA_READ_IS_VALID //結(jié)束:數(shù)據(jù)讀取完成,有效
[0053]該代碼示例開(kāi)始于“WAIT_L00P”循環(huán),其包括“HEART_BEAT_C0NFIG”程序,該程序指定博動(dòng)同步時(shí)間(例如:等待時(shí)間)為位時(shí)間的一半(T/2)。隨后,如圖5中的數(shù)據(jù)取樣點(diǎn)①所示的,利用“WAIT_F0R_TRIGGER”程序,通過(guò)檢測(cè)由邏輯“ 1 ”至邏輯“0”的變化,來(lái)檢測(cè)開(kāi)始位“S”。如圖5中數(shù)據(jù)取樣點(diǎn)②所示的,自“HEART_BEAT_C0NFIG”程序執(zhí)行時(shí)開(kāi)始,當(dāng)過(guò)去了博動(dòng)同步時(shí)間(T/2)后,執(zhí)行“WAIT_F0R_BEAT”程序。隨后,執(zhí)行“HEART_BEAT_CONFIG”程序,指定博動(dòng)同步時(shí)間為一個(gè)位時(shí)間⑴。在“HEART_BEAT_C0NFIG”程序執(zhí)行后,加載數(shù)據(jù)“D0”_ “D7”,并進(jìn)行檢查,以確保該數(shù)據(jù)不是干擾。如果該數(shù)據(jù)是干擾,程序回到“WAIT_LOOP”。如果該數(shù)據(jù)不是干擾,則通過(guò)循環(huán)過(guò)程“LOOP”處理數(shù)據(jù),例如,根據(jù)奇偶位“PB”,循環(huán)8次或9次。在“LOOP”中,如圖5中數(shù)據(jù)取樣點(diǎn)③所示的,自“HEART_BEAT_CONFIG”程序被執(zhí)行時(shí)開(kāi)始,當(dāng)博動(dòng)同步時(shí)間⑴到期后,執(zhí)行“WAIT_FOR_BEAT”程序。隨后,在“LOOP”中,執(zhí)行處理步驟“LOAD_AND_ACCUMULATE_DATA”,以讀取和累積數(shù)據(jù),以及執(zhí)行總結(jié)步驟“SHIFT_ACC_RIGHT-1 ”,以準(zhǔn)備下一數(shù)據(jù)位。在循環(huán)步驟“LOOP”執(zhí)行以后,在博動(dòng)同步時(shí)間⑴到期后,執(zhí)行“WAIT_FOR_BEAT”程序,如圖5中數(shù)據(jù)取樣點(diǎn)④所示的。其后,如果數(shù)據(jù)的停止位“P”得到驗(yàn)證,則該處理的數(shù)據(jù)視為有效,并被讀入數(shù)據(jù)庫(kù)。如果數(shù)據(jù)的停止位未得到驗(yàn)證,則舍棄該處理的數(shù)據(jù),程序轉(zhuǎn)至“WAIT_L00P”。
[0054]圖6所示的是本發(fā)明一種實(shí)施方式的運(yùn)行事件驅(qū)動(dòng)的處理器的方法的流程圖。該事件驅(qū)動(dòng)的處理器可以是圖1中所示的事件驅(qū)動(dòng)的處理器100或者圖4中所示的事件驅(qū)動(dòng)的處理器100。模塊602,配置事件驅(qū)動(dòng)的處理器的博動(dòng)計(jì)時(shí)器。模塊604,利用該事件驅(qū)動(dòng)的處理器,基于博動(dòng)計(jì)時(shí)器來(lái)處置事件。
[0055]盡管該方法的運(yùn)行在上述說(shuō)明以附圖中顯示為具有特定順序,該方法的運(yùn)行順序可以調(diào)整,以便特定的步驟可以以相反的順序運(yùn)行,或者特定的步驟可以至少部分地與其他步驟同時(shí)運(yùn)行。在其他實(shí)施方式中,指令或不同運(yùn)算的子運(yùn)算可以間歇性地和/或交互地運(yùn)行。
[0056]此外,盡管本發(fā)明以上所述的特定實(shí)施方式中包括了所述的或所展示的數(shù)個(gè)元件,本發(fā)明的其他實(shí)施方式也可以包括更多或更少的元件,以實(shí)現(xiàn)更多或更少的特性。
[0057]進(jìn)一步地,盡管以上描述了本發(fā)明的特定實(shí)施方式,本發(fā)明并不限于所描述或展示的特定形式或安排的部分。本發(fā)明的范圍由所附的權(quán)利要求書(shū)及其等同所定義。
【權(quán)利要求】
1.一種運(yùn)行事件驅(qū)動(dòng)的處理器的方法,其特征在于,所述方法包括: 配置事件驅(qū)動(dòng)的處理器的博動(dòng)計(jì)時(shí)器;以及 利用事件驅(qū)動(dòng)的處理器,基于博動(dòng)計(jì)時(shí)器來(lái)處置事件。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于:博動(dòng)計(jì)時(shí)器集成于事件驅(qū)動(dòng)的處理器的指令集中。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,配置事件驅(qū)動(dòng)的處理器的博動(dòng)計(jì)時(shí)器包括:為事件驅(qū)動(dòng)的處理器指定第一博動(dòng)期間。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,利用事件驅(qū)動(dòng)的處理器處置事件包括:在第一博動(dòng)期間到期后,響應(yīng)于事件,利用事件驅(qū)動(dòng)的處理器執(zhí)行軟件程序。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,利用事件驅(qū)動(dòng)的處理器處置事件包括:在第一博動(dòng)期間到期前,將軟件程序獲取到事件驅(qū)動(dòng)的處理器中。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于:軟件程序包括機(jī)器語(yǔ)言指令,機(jī)器語(yǔ)言指令指定事件驅(qū)動(dòng)的處理器要執(zhí)行的操作。
7.根據(jù)權(quán)利要求3所述的方法,其特征在于,進(jìn)一步包括:在第一博動(dòng)期間到期后,為事件驅(qū)動(dòng)的處理器指定第二博動(dòng)期間,其中第二博動(dòng)期間與第一博動(dòng)期間不同。
8.根據(jù)權(quán)利要求3所述的方法,其特征在于,配置事件驅(qū)動(dòng)的處理器的博動(dòng)計(jì)時(shí)器進(jìn)一步包括:倒數(shù)博動(dòng)計(jì)時(shí)器至預(yù)定義的值,直到第一博動(dòng)期間到期。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,利用事件驅(qū)動(dòng)的處理器處置事件包括:當(dāng)博動(dòng)計(jì)時(shí)器倒數(shù)至預(yù)定義的值時(shí),響應(yīng)于事件,執(zhí)行軟件程序。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,配置事件驅(qū)動(dòng)的處理器的博動(dòng)計(jì)時(shí)器包括:為事件驅(qū)動(dòng)的處理器指定博動(dòng)間隔。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,利用事件驅(qū)動(dòng)的處理器處置事件包括:在博動(dòng)間隔中,響應(yīng)于事件,重復(fù)地利用事件驅(qū)動(dòng)的處理器執(zhí)行軟件程序。
12.—種事件驅(qū)動(dòng)的處理器,其特征在于,包括: 指令庫(kù),配置為存儲(chǔ)指令集,其中指令集包括計(jì)算機(jī)可執(zhí)行指令,用于在事件驅(qū)動(dòng)的處理器中實(shí)現(xiàn)博動(dòng)計(jì)時(shí)器;以及 運(yùn)行代碼翻譯器,用于配置博動(dòng)計(jì)時(shí)器,以及基于博動(dòng)計(jì)時(shí)器處置事件。
13.根據(jù)權(quán)利要求12所述的事件驅(qū)動(dòng)的處理器,其特征在于,運(yùn)行代碼翻譯器配置為: 為事件驅(qū)動(dòng)的處理器指定第一博動(dòng)期間; 在第一博動(dòng)期間到期前,獲取軟件程序;以及 在第一博動(dòng)期間到期后,響應(yīng)于事件,執(zhí)行軟件程序。
14.根據(jù)權(quán)利要求13所述的事件驅(qū)動(dòng)的處理器,其特征在于:軟件程序包括機(jī)器語(yǔ)言指令,機(jī)器語(yǔ)言指令指定運(yùn)行代碼翻譯器要執(zhí)行的操作。
15.根據(jù)權(quán)利要求13所述的事件驅(qū)動(dòng)的處理器,其特征在于,運(yùn)行代碼翻譯器配置為:在第一博動(dòng)期間到期后,為事件驅(qū)動(dòng)的處理器指定第二博動(dòng)期間,其中第二博動(dòng)期間與第一博動(dòng)期間不同。
16.根據(jù)權(quán)利要求13所述的事件驅(qū)動(dòng)的處理器,其特征在于,運(yùn)行代碼翻譯器配置為: 倒數(shù)博動(dòng)計(jì)時(shí)器至預(yù)定義的值,直至第一博動(dòng)期間到期;以及 當(dāng)博動(dòng)計(jì)時(shí)器到達(dá)預(yù)定義的值時(shí),執(zhí)行軟件程序。
17.根據(jù)權(quán)利要求12所述的事件驅(qū)動(dòng)的處理器,其特征在于,運(yùn)行代碼翻譯器配置為: 為事件驅(qū)動(dòng)的處理器指定博動(dòng)間隔;以及 在博動(dòng)間隔中,響應(yīng)于事件,重復(fù)地執(zhí)行軟件程序。
18.—種運(yùn)行事件驅(qū)動(dòng)的處理器的方法,其特征在于,所述方法包括: 配置博動(dòng)計(jì)時(shí)器,博動(dòng)計(jì)時(shí)器集成于事件驅(qū)動(dòng)的處理器的指令集中;其中配置博動(dòng)計(jì)時(shí)器包括: 為事件驅(qū)動(dòng)的處理器指定第一博動(dòng)期間;以及倒數(shù)博動(dòng)計(jì)時(shí)器至預(yù)定義的值,在該值點(diǎn)上,第一博動(dòng)期間到期;以及當(dāng)博動(dòng)計(jì)時(shí)器到達(dá)預(yù)定義的值時(shí),響應(yīng)于事件,利用事件驅(qū)動(dòng)的處理器執(zhí)行軟件程序,其中軟件程序包括機(jī)器語(yǔ)言指令,機(jī)器語(yǔ)言指令指定事件驅(qū)動(dòng)的處理器要執(zhí)行的操作。
19.根據(jù)權(quán)利要求18所述的方法,其特征在于,進(jìn)一步包括:在第一博動(dòng)期間到期前,將軟件程序獲取到事件驅(qū)動(dòng)的處理器中。
20.根據(jù)權(quán)利要求19所述的方法,其特征在于,進(jìn)一步包括:在第一博動(dòng)期間到期后,為事件驅(qū)動(dòng)的處理器指定第二博動(dòng)期間,其中第二博動(dòng)期間與第一博動(dòng)期間不同。
【文檔編號(hào)】G06F9/44GK104375820SQ201410382864
【公開(kāi)日】2015年2月25日 申請(qǐng)日期:2014年8月6日 優(yōu)先權(quán)日:2013年8月15日
【發(fā)明者】亞當(dāng)·??怂? 舍吉奧·斯坎利亞 申請(qǐng)人:恩智浦有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
名山县| 永清县| 吴江市| 云阳县| 洛扎县| 南木林县| 漳浦县| 宁乡县| 乐都县| 象州县| 绥江县| 鹤壁市| 房山区| 长乐市| 巴南区| 阿拉尔市| 云龙县| 潼南县| 舒兰市| 洛阳市| 梅河口市| 普定县| 吐鲁番市| 峨边| 香格里拉县| 安徽省| 黑河市| 思南县| 松桃| 庆阳市| 溧阳市| 巩义市| 达尔| 西充县| 同江市| 南岸区| 奇台县| 两当县| 湄潭县| 西盟| 江都市|