[發(fā)明專利]程序流控制有效
申請?zhí)枺?/td> | 201010528139.5 | 申請日: | 2010-10-19 |
公開(公告)號: | CN102063286A | 公開(公告)日: | 2011-05-18 |
發(fā)明(設(shè)計)人: | M·奧里奇;J·韋爾東克 | 申請(專利權(quán))人: | ARM有限公司 |
主分類號: | G06F9/30 | 分類號: | G06F9/30 |
代理公司: | 中國專利代理(香港)有限公司 72001 | 代理人: | 李湘;高為 |
地址: | 英國*** | 國省代碼: | 英國;GB |
權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
摘要: | |||
搜索關(guān)鍵詞: | 程序 控制 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)領(lǐng)域。更具體地,本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)內(nèi)的程序流的控制。
背景技術(shù)
向數(shù)據(jù)處理系統(tǒng)提供指令解碼器電路系統(tǒng)是已知的,所述指令解碼器電路系統(tǒng)響應(yīng)程序指令以產(chǎn)生一個或多個控制信號,用于控制處理電路系統(tǒng)以執(zhí)行由所述程序指令指定的數(shù)據(jù)處理操作。組織程序的方便的方法是將它們劃分成當(dāng)需要時能夠被調(diào)用的例程或者函數(shù)。作為例子,代碼可以被編寫以及被編譯以執(zhí)行函數(shù),諸如在一組數(shù)據(jù)值上計算傅立葉變換。這個函數(shù)可以從程序流內(nèi)的多個不同的點被調(diào)用。也可能的是:在包括多于一組用于執(zhí)行程序指令的硬件的系統(tǒng)中,一組硬件可以執(zhí)行一組指令而另一組硬件執(zhí)行另一組指令。在這種環(huán)境中,一組硬件可以調(diào)用將被另一組硬件執(zhí)行的函數(shù),諸如傅立葉變換。在這樣的環(huán)境中,形成用于執(zhí)行特定函數(shù)的專用硬件是可能的。
用于執(zhí)行特定函數(shù)的專用硬件的例子是數(shù)據(jù)引擎。數(shù)據(jù)引擎可以被提供以執(zhí)行計算密集的任務(wù),舉例來說諸如媒體處理。數(shù)據(jù)引擎典型地包括被設(shè)計用于有效地執(zhí)行與所述數(shù)據(jù)引擎相關(guān)聯(lián)的任務(wù)的專用硬件。這樣的數(shù)據(jù)引擎可以與通用處理器相結(jié)合而工作,所述通用處理器調(diào)度將由所述數(shù)據(jù)引擎執(zhí)行的任務(wù)。在一些實例中,可能的是數(shù)據(jù)引擎自身使用在數(shù)據(jù)引擎上執(zhí)行的調(diào)度程序來調(diào)度其自己的任務(wù)以供該數(shù)據(jù)引擎執(zhí)行。
用于執(zhí)行特定函數(shù)的程序的開發(fā)和測試是昂貴并且費時的。程序需要少量的內(nèi)存存儲器(memory?storage)是期望的。
發(fā)明內(nèi)容
從一個方面來看,本發(fā)明提供了用于處理數(shù)據(jù)的設(shè)備,所述設(shè)備包括:
指令解碼器電路系統(tǒng),所述指令解碼器電路系統(tǒng)響應(yīng)程序指令以產(chǎn)生一個或多個控制信號;
處理電路系統(tǒng),所述處理電路系統(tǒng)響應(yīng)所述一個或多個控制信號以執(zhí)行由所述程序指令指定的數(shù)據(jù)處理操作;以及
流控制寄存器,所述流控制寄存器被配置為存儲可編程的流控制值;其中
所述指令解碼器響應(yīng)指示正被執(zhí)行的當(dāng)前程序指令序列的末尾的標(biāo)記指令以從所述流控制寄存器讀取所述可編程的流控制值并且依據(jù)所述可編程的流控制值產(chǎn)生所述一個或多個控制信號以在所述當(dāng)前程序指令序列完成之后觸發(fā)下列各項之一:
(i)從目標(biāo)程序指令開始處理目標(biāo)程序指令序列;以及
(ii)進入等待新的處理任務(wù)將被發(fā)起的空閑狀態(tài)。
本發(fā)明的技術(shù)辨識正被執(zhí)行的當(dāng)前程序指令序列可能已經(jīng)通過不同機制被調(diào)用,其中取決于當(dāng)前程序指令序列如何被調(diào)用,不同的行為在當(dāng)前程序指令序列的執(zhí)行完成時是恰當(dāng)?shù)摹1景l(fā)明的技術(shù)使用存儲在流控制寄存器內(nèi)的程序流控制值來確定什么行為應(yīng)當(dāng)在當(dāng)前程序指令序列完成執(zhí)行時發(fā)生,而不是取決于它們?nèi)绾伪徽{(diào)用來提供不同版本的當(dāng)前程序指令序列。因此,所述當(dāng)前程序指令序列不需要被修改或者以不同的形式被提供,并且所述當(dāng)前程序指令序列還可以支持在完成時對不同行為的觸發(fā)。更具體地,期望在完成時支持的所述不同行為觸發(fā)從目標(biāo)程序指令開始處理目標(biāo)程序指令序列或者進入空閑狀態(tài),例如等待新的處理任務(wù)被發(fā)起。這些行為支持在其中當(dāng)前程序指令序列根據(jù)目標(biāo)調(diào)度程序被調(diào)用的系統(tǒng),所述目標(biāo)調(diào)度程序依據(jù)執(zhí)行當(dāng)前程序指令序列的相同機制執(zhí)行并且支持在其中所述當(dāng)前程序指令序列根據(jù)與執(zhí)行當(dāng)前程序指令序列的機制分開的機制而被調(diào)用的機制,以便在所述當(dāng)前程序指令序列完成時隨后空閑狀態(tài)應(yīng)當(dāng)被進入。
由于所述可編程的流控制值中的一些值而被執(zhí)行的目標(biāo)程序指令可以是在固定的位置處(例如硬連線的向量)的固定的目標(biāo)程序指令。然而,在可編程的流控制值指定程序指令的存儲器地址時更大的靈活性被實現(xiàn)。因此,依據(jù)用于所述可編程的流控制值的值集合,所述目標(biāo)程序指令可以被改變。
所述可編程的流控制值可以包括跳轉(zhuǎn)允許域,所述跳轉(zhuǎn)允許域存儲指定所述可編程的流控制值是否包括目標(biāo)地址域的值,所述目標(biāo)地址域指定目標(biāo)程序指令的存儲器地址,或者可替代地,存儲指定在當(dāng)前程序指令序列的執(zhí)行已完成時所述空閑狀態(tài)應(yīng)當(dāng)被進入的值。這個跳轉(zhuǎn)允許域可以是跳轉(zhuǎn)允許位,其被用于在當(dāng)前程序指令序列完成時可替代的行為之間的切換。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于ARM有限公司,未經(jīng)ARM有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010528139.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。