專利名稱:定時(shí)端口的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及具有至少一個(gè)定時(shí)端口的處理器,且具體涉及用于 與其他處理器或外部裝置連4妄的4妄口處理器。
背景技術(shù):
處理器設(shè)計(jì)者所面臨的一個(gè)挑戰(zhàn)是,處理希望與處理器通信的 數(shù)量不斷增加的外部裝置。通常,這通過為處理器纟是供某種中斷處 理能力以便處理在與外部裝置連接的端口處出現(xiàn)的活動(dòng)來實(shí)現(xiàn)。越 來越多地,在這些端口處使用更為復(fù)雜的接口邏輯(電路),以便例 如在-爭(zhēng)個(gè)端口安排多個(gè)外部裝置。
在許多不同情況中都需要接口連接。這里通過背景技術(shù)實(shí)例討 i侖的 一種情況是移動(dòng)應(yīng)用處理。
圖1示出了移動(dòng)應(yīng)用處理器2的示例性應(yīng)用。應(yīng)用處理器2包 括CPU 4和與多個(gè)外圍設(shè)備8連接的多個(gè)接口控制器6。接口控制 器包括用于與硬盤驅(qū)動(dòng)器(HDD ) 8a及SDRAM存儲(chǔ)器8b連接 的存儲(chǔ)器控制器6a;用于與照相機(jī)8c連接的視頻控制器6b;用于 與LCD顯示器8d連接的顯示控制器6c;用于與麥克風(fēng)8e、揚(yáng)聲器 8f及頭戴式耳4幾8g連4妄的音頻控制器6d;以及用于與4建盤8h、通 用串行總線(USB )裝置8i、安全數(shù)字(SD )卡8j 、多媒體卡(MMC ) 8k及通用異步接收器/發(fā)送器(UART)裝置81連接的連通控制器
14(connectivity controller ) 6e。 4妄口控制器6通常經(jīng)由總線3連4妄至 CPU4。系統(tǒng)還包4舌功率控制器IO和無線處理器12。
注意,接口控制器6多少是示意性地示出的,但是通常代表某 些類型的專用I/O邏輯或特定構(gòu)造的端口。
按照慣例,采用中斷(interrupt,中斷信號(hào))或通過4侖詢技術(shù)來 實(shí)現(xiàn)外部接口。當(dāng)采用中斷時(shí),外部的外圍設(shè)備發(fā)出信號(hào)以告知處 理器其有數(shù)據(jù)準(zhǔn)備輸入至處理器或者其需要來自處理器的數(shù)據(jù)。 當(dāng)使用輪詢技術(shù)時(shí),處理器不斷檢查裝置的狀態(tài),以判斷其是否準(zhǔn)
備供應(yīng)或接收數(shù)據(jù)。
執(zhí)行應(yīng)用處理器2 (例如圖1的應(yīng)用處理器)的一種可能性是, 使用專用集成電路(ASIC)微控制器。ASIC是硬連線的裝置,其 可能包4舌專用于特定應(yīng)用并^皮最^M匕為適應(yīng)此凈爭(zhēng)定應(yīng)用的纟敬處理 器。對(duì)于給定的功能,與其他選擇相比,它們通常更便宜并且能耗 更低。然而,它們的設(shè)計(jì)復(fù)雜,必須預(yù)先設(shè)計(jì)并且不能輕易地重新 構(gòu)造。
另一種可能性是使用現(xiàn)場(chǎng)可編程門陣列(FPGA)裝置。FPGA 是能夠在制造之后"在現(xiàn)場(chǎng)"被構(gòu)造的半導(dǎo)體裝置。為了構(gòu)造FPGA, 首先,利用計(jì)算機(jī)例如通過繪制示意圖或創(chuàng)建描述功能的文本文件 來建才莫想要的邏輯功能。FPGA包括通過靜態(tài)構(gòu)造的互連來進(jìn)行通 信的查閱表陣列。用FPGA廠商提供的軟件來編譯計(jì)算機(jī)模型,這 產(chǎn)生可被下載到FPGA查閱表中的二進(jìn)制文件。這允許裝置的制造 商對(duì)l;PGA進(jìn)行改編以滿足其自身的個(gè)性化需求。
在此實(shí)例中,接口控制器6用作FPGA。這具有這樣的好處 移動(dòng)電話制造商可購(gòu)買普通的FPGA裝置2,然后就地(即"在現(xiàn)場(chǎng),,)將其構(gòu)造成專用于他們所期望的應(yīng)用。然而,F(xiàn)PGA的缺點(diǎn)是, 其比ASIC更貴、更慢并且能耗更高。
在一弄^實(shí)例中,可在FPGA中l(wèi)吏用整個(gè)芯片2,或者,芯片2 可以是通用處理器,在芯片2與各外圍設(shè)備8之間連接有獨(dú)立的 FPGA芯片。然而,這些選才奪可能更為昂貴并且能碑毛更高——對(duì)于 多數(shù)移動(dòng)電話和其他消費(fèi)裝置都是限制的。
以ASIC的價(jià)格、速度、范圍和能耗水平實(shí)現(xiàn)FPGA的可構(gòu)造 性將是有利的。實(shí)現(xiàn)此目的所涉及的一個(gè)具體挑戰(zhàn)是,為處理器與 其環(huán)境之間的交互作用4是供適當(dāng)?shù)亩〞r(shí)。
發(fā)明內(nèi)容
才艮才居本發(fā)明的 一個(gè)方面,才是供了 一種具有才妾口部分和內(nèi)部環(huán)i竟 的處理器,其中,沖妻口部分包者舌至少一個(gè)端口, 一皮布置為4妻收當(dāng) 前時(shí)間值;與所述端口相關(guān)聯(lián)的第一寄存器,被布置為存儲(chǔ)觸發(fā)時(shí) 間值;以及比4交邏輯電^各,;陂構(gòu)造為4全測(cè)當(dāng)前時(shí)間值是否與觸發(fā)時(shí) 間值匹配,如果檢測(cè)到所述匹配,則在端口與外部環(huán)境之間傳送數(shù) 據(jù)并改變就緒信號(hào)以指示此傳送;并且其中,內(nèi)部環(huán)境包括用于 在至少一個(gè)端口與內(nèi)部環(huán)境之間傳送數(shù)據(jù)的執(zhí)行單元;以及用于調(diào) 度由執(zhí)行單元執(zhí)行的多個(gè)線程的線程調(diào)度器(thread scheduler),每 個(gè)線程包括一系列指令,所述調(diào)度包括調(diào)度一個(gè)或多個(gè)所述線程, 以便根據(jù)就緒信號(hào)運(yùn)行。
這有利地允許線程的調(diào)度與數(shù)據(jù)傳送的定時(shí)緊密連4妄,從而提 供對(duì)響應(yīng)時(shí)間的精確控制,以輸入和輸出由那些線程處理的操作。
在實(shí)施方式中,線程調(diào)度器可被構(gòu)造為保持一組可運(yùn)行的線程, 并且,并且由線程調(diào)度器實(shí)現(xiàn)的所述調(diào)度可包括通過將一線程^v所述組去除而暫停(suspending)該線程。對(duì)于當(dāng)要求快速反應(yīng)時(shí)間時(shí) 所使用的中斷來說此暫停線程方法是優(yōu)選的。使用暫停的線程,線 程調(diào)度器可準(zhǔn)備執(zhí)行預(yù)期關(guān)聯(lián)活動(dòng)中的線程,這表示,處理器"開 始"準(zhǔn)備反應(yīng)。相反地,使用中斷,執(zhí)行單元被來自外部裝置的信 號(hào)中斷,同時(shí)運(yùn)4亍一些可能不相關(guān)的^碼。在中斷的情況下,在中 斷起作用之前必須^f呆存當(dāng)前程序狀態(tài)。因此,4吏用中斷的反應(yīng)時(shí)間 非常慢。輪詢技術(shù)的能效更差,因?yàn)樾枰粩嘣儐柡晚憫?yīng)。
處理器可包括被布置為用于輸出當(dāng)前時(shí)間值的計(jì)數(shù)器,所述至 少 一 個(gè)端口被布置為從計(jì)數(shù)器接收當(dāng)前時(shí)間值。
處理器可包括多個(gè)端口和多個(gè)第一寄存器,每個(gè)第一寄存器與 相應(yīng)的端口相關(guān)聯(lián)并被布置為用于存儲(chǔ)相應(yīng)的觸發(fā)時(shí)間值,其中, 由線程調(diào)度器實(shí)現(xiàn)的所述調(diào)度可包括調(diào)度一個(gè)或多個(gè)所述線程以便
于根據(jù)就緒信號(hào)運(yùn)行。
所述傳送可包括輸入操作,由此將數(shù)據(jù)從外部環(huán)境捕獲至所述 至少一個(gè)端口 ,并且所述改變可包括將所述就緒信號(hào)設(shè)置成第一狀 態(tài),這指示出數(shù)據(jù)可輸入至內(nèi)部環(huán)境中。所述傳送可包括輸出操作, 由此將凄t據(jù),人每個(gè)所述至少一個(gè)端口傳送至外部環(huán)i竟,并且所述改 變可包括將所述就緒信號(hào)設(shè)置成第二狀態(tài),這指示至少一個(gè)端口可 用于與內(nèi)部環(huán)境進(jìn)^亍進(jìn)一步的凄t據(jù)傳送。
寺丸行單元可適于4丸4亍將數(shù)據(jù),人端口輸入至內(nèi)部環(huán)境的輸入指 令,只要所述就緒信號(hào)中的相應(yīng)一個(gè)處于第一狀態(tài),所述輸入指令 就是所述 一 個(gè)或多個(gè)相關(guān)耳關(guān)線程的順序的組成指令(constituent instruction )。執(zhí)行單元可適于執(zhí)行將數(shù)據(jù)從內(nèi)部環(huán)境輸出至端口的 輸出指令,只要所述就緒信號(hào)中的相應(yīng)一個(gè)處于第二狀態(tài),所述輸 出指令就是所述一個(gè)或多個(gè)相關(guān)聯(lián)線程的順序的組成指令。才九行單元可適于在完成輸入指令時(shí)將所述相應(yīng)的就緒信號(hào)設(shè)置 成第二狀態(tài)。^U于單元可適于在完成輸出指令時(shí)將所述相應(yīng)的就緒 信號(hào)設(shè)置成第一狀態(tài)。
由線程調(diào)度器實(shí)現(xiàn)的所述調(diào)度可包括,暫停輸入指令線程的執(zhí) 行,直到相應(yīng)的就緒信號(hào)被設(shè)置為所述第一狀態(tài)為止。由線程調(diào)度 器實(shí)現(xiàn)的所述調(diào)度可包括,暫停輸出指令線程的執(zhí)行,直到相應(yīng)的 就緒信號(hào) 一皮_沒置為所述第二狀態(tài)為止。
傳送可包括輸入操作和輸出操作,并且執(zhí)行單元可被布置為執(zhí) 行輸入指令和輸出指令。
執(zhí)行單元可一皮構(gòu)造為4丸行i殳置觸發(fā)時(shí)間指令,其在所述第一寄 存器的一個(gè)中存儲(chǔ)觸發(fā)時(shí)間值。
所述外部環(huán)境可包括容納有所述處理器的集成電^各的至少一個(gè) 引腳。所述外部環(huán)境可包括位于容納有所述處理器的集成電^各上的 另 一處理器。端口與內(nèi)部環(huán)境之間的數(shù)據(jù)傳送可包括端口與執(zhí)行單 元之間的傳送。內(nèi)部環(huán)境可包括總線,并且端口與內(nèi)部之間的數(shù)據(jù) 傳送可包括端口與總線之間的傳送。內(nèi)部可包括多組第二寄存器, 每組第二寄存器存儲(chǔ)與所述多個(gè)線程中的相應(yīng)一個(gè)相關(guān)的信息,并 且端口與內(nèi)部環(huán)境之間的傳送可包括端口與所述第二寄存器中的一 個(gè)之間的傳送。
所述至少 一 個(gè)端口可在時(shí)間戳模式中操作,從而端口使得時(shí)間 戮與端口和外部環(huán)境之間的數(shù)據(jù)傳送相關(guān)聯(lián)。接口部分可包括與所 述至少一個(gè)端口相關(guān)聯(lián)的第三寄存器,時(shí)間戳的所述關(guān)聯(lián)包括在執(zhí) 行加有時(shí)間戳的傳送時(shí)在第三寄存器中存儲(chǔ)當(dāng)前時(shí)間值。執(zhí)行單元 可被構(gòu)造為將時(shí)間戳從第三寄存器傳送至與加有時(shí)間戳的傳送相關(guān) if關(guān)的線程的所述第二寄存器中的一個(gè)。執(zhí)行單元可被布置為用于讀取與從端口輸入的數(shù)據(jù)相關(guān)聯(lián)的時(shí) 間戳,并且將觸發(fā)時(shí)間值設(shè)置為時(shí)間戳加上特定時(shí)間間隔,以便在 間隔過去之后觸發(fā)從端口至外部環(huán)境的數(shù)據(jù)輸出。
處理器可包括至少一個(gè)定時(shí)器,該定時(shí)器被布置為將當(dāng)前時(shí)間 傳送至執(zhí)行單元。定時(shí)器可包括第四寄存器和比較邏輯電路,該第 四寄存器被布置為存儲(chǔ)喚醒時(shí)間值,該比較邏輯電路被構(gòu)造為如果
當(dāng)前時(shí)間值與喚醒時(shí)間值匹配則產(chǎn)生指示;其中,由線程調(diào)度器實(shí)
現(xiàn)的所述調(diào)度可包括調(diào)度定時(shí)線程的暫停運(yùn)行,直到收到指示為止。 執(zhí)行單元可被構(gòu)造為響應(yīng)于指示從定時(shí)器中讀取當(dāng)前時(shí)間。
所述指示可包括:故傳送至線程調(diào)度器的線程標(biāo)識(shí)符,線程標(biāo)識(shí) 符識(shí)別定時(shí)線程。所述指示可包括#皮傳送至#1行單元的連續(xù)點(diǎn)矢量, 連續(xù)點(diǎn)矢量指定定時(shí)線程中將重新開始執(zhí)行的點(diǎn)。執(zhí)行單元可被構(gòu) 造為用于執(zhí)行設(shè)置矢量指令,所述指令設(shè)置所述連續(xù)點(diǎn)矢量。
根據(jù)本發(fā)明的另 一方面,提供了 一種調(diào)度具有4妻口部分和內(nèi)部 環(huán)境的處理器中的線程的方法,接口部分包括至少一個(gè)端口和與所 述端口相關(guān)聯(lián)的第 一寄存器,并且內(nèi)部環(huán)境包括執(zhí)行單元和線程調(diào)
度器,本方法包括在端口處接收當(dāng)前時(shí)間值;在第一寄存器中存 儲(chǔ)觸發(fā)時(shí)間值;以及將當(dāng)前時(shí)間值與觸發(fā)時(shí)間值進(jìn)行比較,以才全測(cè) 當(dāng)前時(shí)間值是否與觸發(fā)時(shí)間值匹配;如果4全測(cè)到所述匹配,則在端 口與外部環(huán)境之間傳送數(shù)據(jù)并改變就緒信號(hào)以指示傳送;操作線程 調(diào)度器以調(diào)度多個(gè)線程,以便由執(zhí)行單元運(yùn)行,每個(gè)線程包括一系 列指令,所述調(diào)度包括調(diào)度一個(gè)或多個(gè)所述線程,以便才艮據(jù)就緒信 號(hào)運(yùn)4?。灰约安艈鬃鞑磐?亍單元,以在至少一個(gè)端口與內(nèi)部環(huán)J竟之間傳 送數(shù)據(jù)。
根據(jù)本發(fā)明的另一方面,提供了一種具有移動(dòng)應(yīng)用處理器、至 少 一 個(gè)外圍設(shè)備、以及連接于移動(dòng)應(yīng)用處理器與外圍設(shè)備之間的接口處理器的移動(dòng)鄉(xiāng)冬端,4妄口處理器具有4妄口部分和內(nèi)部環(huán)境,其中,
接口部分包括至少一個(gè)端口,被布置為接收當(dāng)前時(shí)間值;第一寄 存器,與所述端口相關(guān)耳關(guān),^皮布置為存^f諸觸發(fā)時(shí)間值;以及比4交邏 輯電路,被構(gòu)造為一企測(cè)當(dāng)前時(shí)間值是否與觸發(fā)時(shí)間值匹配,如果枱r 測(cè)到所述匹配,則在端口與移動(dòng)應(yīng)用處理器或外圍設(shè)備之間傳送數(shù) 據(jù)并改變就緒信號(hào)以指示此傳送;并且其中,內(nèi)部環(huán)境包括用于 在至少一個(gè)端口與內(nèi)部環(huán)境之間傳送數(shù)據(jù)的執(zhí)行單元;以及用于調(diào) 度由執(zhí)行單元執(zhí)行的多個(gè)線程的線程調(diào)度器,每個(gè)線程包括一 系列 指令,所述調(diào)度包括調(diào)度一個(gè)或多個(gè)所述線程,以便根據(jù)就緒信號(hào) 運(yùn)行。
根據(jù)本發(fā)明的另一方面,提供了一種互連處理器陣列,所述處 理器中的至少一個(gè)具有接口部分和內(nèi)部環(huán)境,其中,接口部分包括 至少一個(gè)端口, 一皮布置為接收當(dāng)前時(shí)間值;第一寄存器,與所述端 口相關(guān)聯(lián),被布置為存儲(chǔ)觸發(fā)時(shí)間值;以及比較邏輯電路,被構(gòu)造 為檢測(cè)當(dāng)前時(shí)間值是否與觸發(fā)時(shí)間值匹配,如果沖企測(cè)到所述匹配, 則在端口與陣列中的另 一處理器之間傳送凄t據(jù)并改變就緒信號(hào)以指 示此傳送;并且其中,內(nèi)部環(huán):t竟包4舌用于在至少一個(gè)端口與內(nèi)部 環(huán)境之間傳送數(shù)據(jù)的執(zhí)行單元;以及用于調(diào)度由執(zhí)行單元執(zhí)行的多 個(gè)線程的線程調(diào)度器,每個(gè)線程包括一系列指令,所述調(diào)度包括調(diào) 度一個(gè)或多個(gè)所述線程,以便才艮據(jù)就緒信號(hào)運(yùn)行。
根據(jù)本發(fā)明的另 一方面,提供了 一種具有接口部分和內(nèi)部環(huán)境 的處理器,其中,4妾口部分包括端口裝置,故布置為4妻收當(dāng)前時(shí) 間值;寄存器裝置,與所述端口裝置相關(guān)聯(lián),用于存儲(chǔ)觸發(fā)時(shí)間值; 以及比較裝置,用于檢測(cè)當(dāng)前時(shí)間值是否與觸發(fā)時(shí)間值匹配,如果 檢測(cè)到所述匹配,則在端口裝置與外部環(huán)境之間傳送數(shù)據(jù)并改變就 緒信號(hào)以指示此傳送;并且其中,內(nèi)部環(huán)境包括用于在至少一個(gè)
端口與內(nèi)部環(huán)境之間傳送數(shù)據(jù)的執(zhí)行裝置;以及用于調(diào)度由執(zhí)行單元執(zhí)行的多個(gè)線程的線程調(diào)度裝置,每個(gè)線程包括一系列指令,所 述調(diào)度包括調(diào)度一個(gè)或多個(gè)所述線程,以便根據(jù)就緒信號(hào)運(yùn)行。
才艮據(jù)本發(fā)明的另 一方面,l是供了 一種用于調(diào)度具有接口部分和 內(nèi)部環(huán)境的處理器中的線程的計(jì)算機(jī)程序產(chǎn)品,接口部分包括至少 一個(gè)端口和與所述端口相關(guān)聯(lián)的第 一寄存器,并且內(nèi)部環(huán)境包括對(duì)丸 行單元和線程調(diào)度器,所述程序包^"在計(jì)算才幾上扭J于時(shí)運(yùn)^f于以下步
驟的代碼在端口處接收當(dāng)前時(shí)間值;在第一寄存器中存儲(chǔ)觸發(fā)時(shí) 間值;以^將當(dāng)前時(shí)間值與觸發(fā)時(shí)間值進(jìn)行比較,以檢測(cè)當(dāng)前時(shí)間 值是否與觸發(fā)時(shí)間值匹配;如果4企測(cè)到所述匹配,則在端口與外部 環(huán)境之間傳送數(shù)據(jù)并改變就緒信號(hào)以指示此傳送;操作線程調(diào)度器 以調(diào)度由執(zhí)行單元執(zhí)行的多個(gè)線程,每個(gè)線程包括一系列指令,所 述調(diào)度包括調(diào)度一個(gè)或多個(gè)所述線程,以<更+艮據(jù)就緒信號(hào)運(yùn)4??;以 及在至少一個(gè)端口與內(nèi)部環(huán)境之間傳送數(shù)據(jù)。
為了更好地理解本發(fā)明以及示出本發(fā)明如何實(shí)施,現(xiàn)在將通過 實(shí)例參照相應(yīng)附圖"i兌明。
圖1示出了本領(lǐng)i或中已知的FPGA裝置的實(shí)例應(yīng)用,
圖2示出了接口處理器的實(shí)例應(yīng)用,
圖2a示出了接口處理器的另一實(shí)例應(yīng)用,
圖3是接口處理器的架構(gòu)的圖示,
圖4是定時(shí)端口的圖示,
圖5是線程寄存器組的圖示,圖6是定時(shí)器的圖示,
圖7是示出了定時(shí)端口的才喿作的流程圖;以及 圖8是示出了定時(shí)器的操作的流程圖。
具體實(shí)施例方式
圖2示出了移動(dòng)電話中的接口處理器的示例性應(yīng)用。移動(dòng)應(yīng)用 處理器2需要與多個(gè)外圍設(shè)備8通信。與圖l中相同,應(yīng)用處理器 2包括總線3、 CPU 4、用于與硬盤驅(qū)動(dòng)器(HDD) 8a及SDRAM 存儲(chǔ)器8b連接的存儲(chǔ)器控制器6a,以及功率控制器10和無線電處 理器12。
然而,耳又代專用控制器6,圖2的布置允許CPU4通過通用端 口 7與外部通信。在此實(shí)例中,才是供了通用端口 7a和7b,用于與 照相機(jī)8c和LCD顯示器8d連接;提供了通用端口7c,用于與麥 克風(fēng)8e、揚(yáng)聲器8f和頭戴式耳機(jī)8g連接;并且提供了通用端口 7d, 用于與鍵盤8h、通用串行總線(USB)裝置8i、安全數(shù)字(SD) 卡8j、多媒體卡(MMC) 8k及通用異步接收器/發(fā)送器(UART) 裝置81連孑妻。
在圖2中,沖妄口處理器14a、 14b和14c被布置于相關(guān)端口 7 的輸出處,其中第一4妄口處理器14a連沖妾在圖^象裝置8c-8d與通用 端口 7a-7b之間,第二接口處理器14b連接在音頻裝置8e-8g之間, 并且第三接口處理器14c連接在通用端口 7d與各種連通裝置8h-8m 之間。端口74又需是通用端口,因?yàn)閷S蔑@示、音頻和連通功能是 由4妄口處理器14a-14c以下面描述的方式實(shí)^L的。端口 7不需4吏用 l''PGA邏輯電^各,因?yàn)?妻口處理器14才是供靈活性和可構(gòu)造性(否則 該靈活性和可構(gòu)造性要由FPGA提供)。接口處理器14a具有連接至端口 7a和7b的端口 22a和22b,以及連4妄至外部裝置8c和8g 的端口 22c、 22d、 22e和22f。 4妄口處理器14b和14c具有類4以端 口 ,未在圖2中示出。
接口處理器典型地涉及寺丸行用于通過接口傳送lt據(jù)的具體協(xié) 議,重新格式化數(shù)據(jù)(包括在并行格式(parallel format)和串行才各式 (serial format)之間轉(zhuǎn)換),以及可能更高水平的功能,例如對(duì)其進(jìn) ^亍編;馬、壓縮或力口密。
一接口處理器的另一種應(yīng)用是,在圖2a所示的多處理器芯片202 中作為瓦(tile)。這種芯片202使用高性能互連204 (該高性能互連 支持芯片202上的處理器14之間的通信)和芯片間鏈路206,從而 可用多個(gè)芯片輕+;^也構(gòu)造系統(tǒng)。每個(gè)處理器14通過端口 22連4妄至 其芯片間鏈路206和高性能互連204。
以下更全面地討論的接口處理器的重要特征是,其管理端口 22 處的活動(dòng)的能力。每個(gè)接口處理器包括CPU、存儲(chǔ)器和通信裝置。 為了允許CPU與端口之間的直接且作出響應(yīng)的連通,每個(gè)處理器具 有用于執(zhí)行大量并發(fā)程序線程的硬件支持,每個(gè)線程都包括一系列 指令,并且至少其中一部分專門負(fù)責(zé)處理端口處的活動(dòng)。如下面將 更全面地討論的,硬件支持包括
一用于每個(gè)線程的一組寄存器,
-動(dòng)態(tài)地選擇執(zhí)行哪個(gè)線程的線程調(diào)度器,
-用于輸入和輸出的一組端口 (端口22),
-用于使I/0與外部時(shí)域同步的一組時(shí)鐘發(fā)生器,以及
-控制實(shí)時(shí)執(zhí)行的一組定時(shí)器。在每個(gè)處理器上使用一小組線程可用來允許與處理器處理的其 他未決任務(wù)一起處理通信或輸入/輸出,并且通過允許一些線程繼續(xù) 而其他線程暫停與遠(yuǎn)程^妄口處理器之間的未決通信,來允許互連中
的等4寺隱藏(latency hiding )。
圖3示意性地示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的接口處理器 14的示例性架構(gòu)。處理器14包括用于在線程調(diào)度器18的控制下執(zhí) 行指令的線程的執(zhí)行單元16。處理器14還包括總線13、用于保存 程序代碼和其他數(shù)據(jù)的隨才幾存取存儲(chǔ)器(RAM) 24,以及用于存4諸 永久信息(例如,啟動(dòng)代碼)的只讀存4諸器(ROM)(未示出)。
線程調(diào)度器18動(dòng)態(tài)地選擇執(zhí)行單元16應(yīng)執(zhí)行哪個(gè)線程。按慣 例,線程調(diào)度器的功能將僅僅是從程序存儲(chǔ)器中調(diào)度線程,以保持 處理器被完全占用。然而,才艮據(jù)本發(fā)明,由線程調(diào)度器18實(shí)現(xiàn)的調(diào) 度也涉及端口 22處的活動(dòng)。這方面應(yīng)該注意的是,線程調(diào)度器可直 4妄連4妄(coupled to )至端口 22 ,以{更當(dāng)由于端口處的l命入或l命出活 動(dòng)而使得線程變得可運(yùn)4于時(shí),將延遲最小化。
線程調(diào)度器18所考慮的m個(gè)線程中的每個(gè)線程由寄存器庫(kù)20 中的各組線程寄存器20….20m代表,線程調(diào)度器18可訪問寄存器 庫(kù)20。還提供了指令緩沖器(INSTR) 19,以在從存儲(chǔ)器24取得 的指令隨后傳入執(zhí)行單元16之前暫時(shí)保存該指令。后面將討論這些 寄存器和緩沖器的細(xì)節(jié)。
在m個(gè)線程中,線程調(diào)度器18保持一組n個(gè)可運(yùn)行的線程, 該組線程被稱為"運(yùn)行",優(yōu)選地以循環(huán)方式依次乂人該組中沖是耳又指令。 當(dāng)線程不能繼續(xù)時(shí),通過將其從運(yùn)行組中去除而暫停該線程。這樣 做的原因可以是,例如,因?yàn)樵摼€程在等待以下類型活動(dòng)中的一個(gè) 或多個(gè)-在線程能夠運(yùn)行之前其寄存器纟皮初始化,
-線程嘗試乂人未就緒或沒有可用凄t據(jù)的端口l命入,
-線程嘗試對(duì)未就緒或沒有用于數(shù)據(jù)的空間的端口輸出,
-線程運(yùn)行了導(dǎo)致其等待一個(gè)或多個(gè)事件的指令,所述事件可 能在端口準(zhǔn)備好輸入時(shí)產(chǎn)生。
注意,這里使用的術(shù)語"事件"指的是特殊類型的操作,其與
基本的輸入-輸出操作略有不同。以下結(jié)合圖4和圖5討論所述區(qū)另'J。
處理器還包括第一時(shí)鐘發(fā)生器1715其輸出第一時(shí)鐘信號(hào)ckl 形式的第一定時(shí)信號(hào);多個(gè)第二時(shí)鐘發(fā)生器172,每個(gè)笫二時(shí)鐘發(fā) 生器分別輸出第二時(shí)4中信號(hào)ck2、 ck2,和ck2"形式的相應(yīng)第二定時(shí) 信號(hào);以及第三時(shí)鐘發(fā)生器173,其輸出第三時(shí)鐘信號(hào)ck3形式的第 三定時(shí)信號(hào)。為了簡(jiǎn)化術(shù)語,端口 22和第二時(shí)鐘ck2、 ck2,和ck2" 可示意性地被認(rèn)為是處理器的接口部分;而執(zhí)行單元16、線程調(diào)度 器18、第一時(shí)鐘17p第三時(shí)鐘173以及其他部件(例如,總線13 和存儲(chǔ)器24)可示意性地^皮認(rèn)為是處理器的內(nèi)部環(huán)境。與處理器相 互作用的4壬〗可外部裝置,實(shí)體或刺纟敫因素(stimulus),均可一皮i人為 是外部環(huán)境的一部分。
第一和第三時(shí)鐘發(fā)生器17,和173優(yōu)選是時(shí)鐘脈沖源。第二時(shí)鐘 發(fā)生器172中的每個(gè)被布置為從第一時(shí)鐘信號(hào)ckl、第三時(shí)鐘信號(hào) ck3及通過一位端口4妄收的外部時(shí)4H言號(hào)中的4壬一個(gè)得到其相應(yīng)的 時(shí)鐘信號(hào)ck2、 ck2,和ck2,,。第二時(shí)鐘發(fā)生器172中的每個(gè)還具有八 位除法器(divider),其用于通過特定因凄t可選地分割接收到的時(shí)鐘 信號(hào)。為了選擇接收到的時(shí)鐘信號(hào),每個(gè)時(shí)鐘發(fā)生器172包括源寄 存器SID,其存儲(chǔ)由該發(fā)生器使用的相應(yīng)時(shí)鐘脈沖源的標(biāo)識(shí)符。開關(guān)箱56被布置為使得第一時(shí)鐘信號(hào)ckl或外部時(shí)鐘信號(hào)連接至相應(yīng)的第二時(shí)鐘發(fā)生器172。因此,第二時(shí)鐘發(fā)生器172中的每個(gè)可具有不同的時(shí)鐘脈沖源和/或除法因( division factor )。
沖丸行單元16和線程調(diào)度器18由第一時(shí)鐘信號(hào)ckl計(jì)時(shí)。這意味著,以與第一時(shí)鐘信號(hào)ckl合拍的方式依次從運(yùn)行組中調(diào)度線程;并且,那些線程的指令從存儲(chǔ)器24中被取出,被發(fā)至執(zhí)行單元16并與第一時(shí)鐘信號(hào)ckl合拍地執(zhí)行。這些指令中的一些指令將包括輸入和輸出指令,從而,與第一時(shí)鐘信號(hào)ckl合拍地執(zhí)行內(nèi)部與端口之間的數(shù)據(jù)傳送。也就是說,由第一時(shí)鐘信號(hào)ckl的邊沿觸發(fā)這些任務(wù)。
如果是在計(jì)時(shí)模式中,那么由所選擇的第二時(shí)鐘信號(hào)對(duì)每個(gè)端口 22計(jì)時(shí)??蛇x4奪第二信號(hào)ck2、 ck2,和ck2,,中的任何一個(gè),以通過開關(guān)箱52輸出至任何端口 22。為了便于選沖奪,每個(gè)端口 22與存儲(chǔ)第二時(shí)鐘發(fā)生器172之一的標(biāo)識(shí)符的相應(yīng)寄存器CKID 54相關(guān)。開關(guān)箱52被布置為將來自所標(biāo)識(shí)的時(shí)鐘發(fā)生器的第二時(shí)鐘信號(hào)供應(yīng)至相應(yīng)端口。為了以下討i侖的目的,將奪支i殳,選4奪第二時(shí)鐘信號(hào)ck2為端口22計(jì)時(shí)。這意p木著,數(shù)據(jù)以與第二時(shí)鐘信號(hào)ck2合拍的方式在端口 22與外部環(huán)境之間傳送,并且還意味著以與第二時(shí)鐘信號(hào)ck2合拍的方式用信號(hào)告知用于輸入的數(shù)據(jù)的可用性和用于輸出的端口的可用性。也就是說,由第二時(shí)鐘信號(hào)ck2的邊沿觸發(fā)這些任務(wù)。以下結(jié)合圖4更詳細(xì)地討論端口 22的操作。
注意,當(dāng)在時(shí)域之間傳送數(shù)據(jù)時(shí),將需要某種類型的同步化以避免亞穩(wěn)定性,亞穩(wěn)定性是當(dāng)數(shù)據(jù)信號(hào)正在改變狀態(tài)時(shí)如果不小心讀取了該數(shù)據(jù)的話所出現(xiàn)的問題。用于避免亞穩(wěn)定性的同步化技術(shù)在本領(lǐng)域中是非常公知的,在這里不再進(jìn)一步討論。除了時(shí)鐘發(fā)生器172以外,處理器14還包括由第一時(shí)鐘信號(hào)ckl
計(jì)時(shí)的計(jì)數(shù)器57。與簡(jiǎn)單地?cái)鄶嗬m(xù)續(xù)振蕩的時(shí)鐘信號(hào)不同,計(jì)數(shù)器輸出的值在第一時(shí)鐘信號(hào)ckl的多個(gè)循環(huán)上逐漸累加。因此,由此計(jì)數(shù)器57輸出的值代表當(dāng)前系統(tǒng)時(shí)間(tm),這是自計(jì)數(shù)器上一次
#皮復(fù)位后所經(jīng)過時(shí)間量的測(cè)量值。
連同該系統(tǒng)時(shí)間計(jì)數(shù)器57 —起提供了多個(gè)定時(shí)器58。這些定時(shí)器58本身不計(jì)算時(shí)間值,而是每個(gè)定時(shí)器58可用來將時(shí)間值從計(jì)數(shù)器57傳送至執(zhí)行單元16 (通過未示出的連接)。如果定時(shí)器處于無條件才莫式下,那么執(zhí)行單元可通過定時(shí)器58簡(jiǎn)單地讀耳又當(dāng)前時(shí)間值tm。如果定時(shí)器58處于有條件模式下,那么只有當(dāng)時(shí)間值處于存儲(chǔ)于與該定時(shí)器相關(guān)的寄存器TIME59中的觸發(fā)時(shí)間值之后時(shí),執(zhí)行單元才從定時(shí)器58讀取該時(shí)間值。相應(yīng)的線程可中止,直到觸發(fā)時(shí)間值與當(dāng)前時(shí)間值匹配為止。定時(shí)器也可用來產(chǎn)生事件,如下面結(jié)合圖6所"i寸i侖的。
此夕卜,時(shí)間計(jì)數(shù)器57可用來控制通過端口 22輸入和輸出數(shù)據(jù)的定時(shí)。如果是在定時(shí)模式中,那么端口 22通過特定時(shí)間的檢測(cè)而觸發(fā),而不是由第二時(shí)鐘信號(hào)ck2的邊沿觸發(fā)。這有利地使得當(dāng)與外部裝置相互作用時(shí)能夠4青確控制響應(yīng)時(shí)間。單獨(dú)的相應(yīng)TIME寄存器55與每個(gè)端口 22相關(guān)聯(lián),用于存儲(chǔ)觸發(fā)時(shí)間值。每個(gè)端口 22從計(jì)數(shù)器57接收當(dāng)前系統(tǒng)時(shí)間值,并且每個(gè)端口 22包含比較邏輯電i 各,比專交邏輯電鴻4皮構(gòu)造成〗吏得,當(dāng)端口處于定時(shí)才莫式而非計(jì)時(shí)模式時(shí),僅在當(dāng)前時(shí)間值tm與存儲(chǔ)在相應(yīng)TIME寄存器55中的觸發(fā)時(shí)間值匹配時(shí)才在端口與外部環(huán)境之間傳送數(shù)據(jù)。也就是說,當(dāng)檢測(cè)到匹配時(shí),來自外部環(huán)境的輸入數(shù)據(jù)被取樣到端口中,或者從端口輸出的凄t據(jù)呈現(xiàn)至外部環(huán)境。當(dāng)才企測(cè)到匹配時(shí),也4又發(fā)信號(hào)告知端口與外部環(huán)境之間的此傳送。這代替了由第二時(shí)鐘信號(hào)ck2的邊沿觸發(fā)而傳送和發(fā)信號(hào)。此外,與時(shí)間計(jì)數(shù)器57的連接允許每個(gè)端口用輸入時(shí)間對(duì)輸入
數(shù)據(jù)加時(shí)間戳,并使得該時(shí)間戳可用于線程。
有利地,為了有助于快速反應(yīng)時(shí)間,在線程調(diào)度器18與批J亍單 元16之間提供直接的硬線連接28,以允許線程調(diào)度器18控制執(zhí)行 單元16應(yīng)耳又出并運(yùn)4亍哪個(gè)線程或哪些線程。在線程調(diào)度器18與每 個(gè)端口 22之間還i殳置有直^妄的石更線^各徑30a、 30b、 30c;并且在線 程調(diào)度器18與每個(gè)寄存器20之間設(shè)置直接的硬線路徑29卜.29m。 這些直接路徑優(yōu)選地提供控制路徑,其允許線程調(diào)度器將相應(yīng)線程 與一個(gè)或多個(gè)端口 22相關(guān)耳關(guān),并且特別地當(dāng)發(fā)生某種活動(dòng)時(shí)允許就 緒指示從端口返回,允許處理器快速響應(yīng)于發(fā)生在端口 22處的活動(dòng) 或刺激。以下將參照?qǐng)D4和圖6討i侖線^i調(diào)度器相對(duì)于端口的才喿作。
寺丸4亍單元16還通過直4矣連4妻27和31訪問每個(gè)端口 22a-22c和 每個(gè)寄存器20,-20m,從而在芯處理器、寄存器和外部環(huán)境之間提供 直接連接。優(yōu)選地,這些直接路徑提供進(jìn)一步的控制路徑,以允許 #^亍單元將條件傳送至端口 。下面參照?qǐng)D4進(jìn)一步詳細(xì)地對(duì)其進(jìn)4亍 討論。直接路徑27和31也可允許數(shù)據(jù)在線程寄存器20與端口 22 之間直4妻輸入和l敘出,從而允許線程與外部環(huán)境直沖妄通信。例如, 可從外部裝置將數(shù)據(jù)直接寫入線程的操作數(shù)寄存器之一,而不是寫 入存儲(chǔ)器24中然后取出。相反地,在運(yùn)算之后,可由執(zhí)行單元16 拾取來自操作數(shù)寄存器的數(shù)據(jù),并將其直接從端口 22發(fā)出。這顯著 才是高了反應(yīng)時(shí)間。
注意,通過"直接連接"或"直接路徑",其表示與執(zhí)行單元和 程序存儲(chǔ)器24之間的連4妄分開的連接。因此,例如,線程調(diào)度器 18和執(zhí)行單元16可使用從端口 22輸入的數(shù)據(jù),而不必將數(shù)據(jù)存儲(chǔ) 在存儲(chǔ)器24中以及隨后從其中取出。具體地,如果執(zhí)行單元16與 存儲(chǔ)器24之間是通過總線13連接的,則"直接"連接或路徑表示 與總線分開的一種連4妄或路徑。因此,端口22、寄存器20、線程調(diào)度器18和#1行單元16之間的各種通信都不需要總線仲裁Y更可發(fā)生, 改進(jìn)了反應(yīng)時(shí)間。端口 22也可設(shè)置有與總線13的額外連接(未示出)。
本申請(qǐng)中使用的術(shù)語"端口"可指"引腳端口 (pin port)"或 "數(shù)據(jù)端口"。引腳端口是針對(duì)單個(gè)引腳的直接接口。引腳端口是負(fù) 責(zé)檢測(cè)在處理器芯片的物理邊界的引腳處發(fā)生的信號(hào)的單獨(dú)的邏輯 轉(zhuǎn)換(即,上升邊沿和下降邊沿)的邏輯電路。數(shù)據(jù)端口是"高水 平",因?yàn)樗鼈兛商幚淼湫偷乩鄯e在I/O緩沖器中且典型地組成凄t據(jù) (例如,字)一部分的一位或多位。取代檢測(cè)上升邊沿和下降邊沿, 數(shù)據(jù)端口在特定時(shí)刻處理一位或多位的狀態(tài)或邏輯電平。數(shù)據(jù)端口
可以是開/關(guān)芯片(on/offchip),或者可以是針對(duì)嵌在同一芯片上的
另一處理器的端口。
圖4示意性地示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施方式的端口 22。端 口 22包括I/O緩沖器32,用于將輸入數(shù)據(jù)傳送至處理器14并從處 理器14傳送輸出數(shù)據(jù)。另外,每個(gè)端口 22包括活動(dòng)處理邏輯電路 36,用于監(jiān)測(cè)發(fā)生在端口處的活動(dòng)并通過至少一個(gè),尤緒4立或#尤緒沖示 記37用信號(hào)告知特定活動(dòng)的發(fā)生。優(yōu)選地通過直接路徑30將就緒 標(biāo)記37發(fā)信號(hào)告知線程調(diào)度器,也可通過直接連接31由執(zhí)行單元 來控制就緒標(biāo)記37。注意,直4妾連4妻31優(yōu)選地包括多個(gè)連^^,如 圖4所示。端口可能4全測(cè)到的潛在活動(dòng)包括
-已將n據(jù)iir入至端口, -已將某些特定凄t據(jù)輸入至端口, -端口已經(jīng)可用于4lr出,和/或 -已達(dá)到特定時(shí)間。
29為了有助于才企測(cè)這種活動(dòng),端口 22 i殳置有一組寄存器38。這 些寄存器包括用于存儲(chǔ)相關(guān)線程的標(biāo)識(shí)的線程標(biāo)識(shí)符(TID)寄存 器、用于存儲(chǔ)一個(gè)或多個(gè)條件的控制(CTRL)寄存器、用于存儲(chǔ) 程序中暫停執(zhí)行處的位置的連續(xù)點(diǎn)矢量(VECTOR)寄存器,以及 用于存儲(chǔ)與條件相關(guān)聯(lián)的任何數(shù)據(jù)的數(shù)據(jù)(DATA)寄存器。由線 程調(diào)度器18通過直接路徑30(在圖3中直接路徑是30a、 30b、 30c ) 將值TID寫入寄存器38,并且由沖丸行單元16通過直4妾3各徑31將值 VECTOR、 CTRL和DATA寫入。 一旦才企測(cè)到所需活動(dòng),TID就返 回至線程調(diào)度器18,以便識(shí)別相關(guān)聯(lián)的線程。寄存器38還包括識(shí) 別用于端口的時(shí)鐘發(fā)生器172的時(shí)鐘發(fā)生器標(biāo)識(shí)符寄存器CKID 54、 存儲(chǔ)特定時(shí)間值的觸發(fā)時(shí)間寄存器TIME 55、以及時(shí)間戳寄存器 TSTAMP?;顒?dòng)邏輯電路還包括啟用標(biāo)記(enable flag) 39,在下面 只于其進(jìn)4亍進(jìn)——步詳細(xì)i寸"i侖o
注意,雖然在圖4中示出了寄存器38包含在端口 22內(nèi),{旦是 事實(shí)上,其可位于處理器14內(nèi)的其他位置并簡(jiǎn)單地與端口 22相關(guān)聯(lián)。
對(duì)于外部環(huán)境來說I/O緩沖器的內(nèi)容物是可見的。也就是說, 如杲端口是芯片外端口 ,那么1/0緩沖器32中的凄史據(jù)將出現(xiàn)在引腳 上,并且如果端口是另一處理器的芯片上端口,那么i/o緩沖器中 的數(shù)據(jù)將出現(xiàn)在處理器之間的互連204上。I/O緩沖器中的數(shù)據(jù)也 將出現(xiàn)在總線13的總線驅(qū)動(dòng)器的輸入處,并且也可由沖丸4亍單元16 通過直孑妄連4妾(如J^口 31 ) 問。
執(zhí)行單元16、線程調(diào)度器18和總線13由第一時(shí)鐘信號(hào)ckl計(jì) 時(shí)。如果端口 22處于計(jì)時(shí)模式中,那么如下所述,I/O緩沖器32 和活動(dòng)邏輯電路36由選擇的第二時(shí)鐘信號(hào)ck2計(jì)時(shí)。當(dāng)沖丸行輸入時(shí),在第二時(shí)鐘信號(hào)ck2的邊沿上將凄t據(jù)從外部環(huán) 境(例如,從引腳)捕獲至I/0緩沖器?;顒?dòng)邏輯電^各36還判斷就 緒位37在第二時(shí)鐘信號(hào)的邊沿上有效。由線程調(diào)度器通過直接連接 30檢測(cè)到就緒位37位于第一時(shí)鐘信號(hào)ckl的邊沿上。通過4企測(cè)到 判斷有效的就緒位,線程調(diào)度器確保相關(guān)線程處于運(yùn)行組中。然后, 通過完成該線程的輸入指令的執(zhí)行(通過將數(shù)據(jù)放入才丸行單元的寄 存器(可能包括線程寄存器20)的一個(gè)或多個(gè)中、或放置在總線13 上),由執(zhí)4亍單元以與第一時(shí)鐘信號(hào)ckl合拍的方式對(duì)輸入數(shù)據(jù)起作 用。 一旦完成輸入,執(zhí)行單元16就通過直接路徑31判斷就緒位37 在第一時(shí)4中〗言號(hào)ckl的邊沿上無步丈。
還注意,如果在CTRL和DATA寄存器38中i殳置條件,那么 在第一時(shí)鐘ckl的邊沿上捕獲的數(shù)據(jù)與該條件相比較,并且僅當(dāng)由 活動(dòng)邏輯電路36發(fā)現(xiàn)滿足該條件時(shí)設(shè)置就緒位37。
為了執(zhí)行輸出,必須無效就緒位37,以指示出I/O緩沖器32 當(dāng)前不涉及輸入并且也不涉及此前的輸出。,支i殳就緒位37凈皮無效, 這由第一時(shí)鐘信號(hào)ckl邊沿上的線程調(diào)度器通過直接路徑30檢測(cè) 到。通過一會(huì)測(cè)無效的就緒位,線程調(diào)度器確^呆相關(guān)線程位于運(yùn)行組 中。然后,以與第一時(shí)鐘信號(hào)ckl合拍的方式,通過完成該線程的 輸出指令的運(yùn)行(或通過從一個(gè)或多個(gè)執(zhí)行單元的寄存器(可能包 括線程寄存器20)呈現(xiàn)數(shù)據(jù)、或使得可從總線13得到數(shù)據(jù)),執(zhí)行 單元16使得輸出數(shù)據(jù)可用于I/O緩沖器32。 一旦運(yùn)行輸出指令, 執(zhí)行單元16也通過直4妄^各徑31判斷就緒位37有效,其指示出I/O 緩沖器32正^皮輸出占用并且還不可用于其他后續(xù)輸出。然后,將輸 出數(shù)據(jù)計(jì)時(shí)在第二時(shí)鐘信號(hào)ck2的邊沿上的I/O緩沖器32中,使得 對(duì)于外部環(huán)境可見。活動(dòng)邏輯電^各36再次4吏得就緒位37在第二時(shí) 鐘信號(hào)ck2的邊沿上無效,以指示出該輸出已凈皮呈現(xiàn)至外部環(huán)境。另一方面,如果端口 22處于定時(shí)才莫式中,那么如下所述,I/O 緩沖器32和活動(dòng)邏輯電路36由特定時(shí)間觸發(fā)。
當(dāng)運(yùn)行輸入時(shí),當(dāng)活動(dòng)邏輯電路36檢測(cè)到從系統(tǒng)時(shí)間計(jì)數(shù)器 57接收的當(dāng)前系統(tǒng)時(shí)間值tm與存儲(chǔ)在TIME寄存器55中的觸發(fā)時(shí) 間值匹配時(shí),將數(shù)據(jù)從外部環(huán)境(例如,從引腳)捕獲到I/O緩沖 器中。 一旦檢測(cè)此匹配,則活動(dòng)邏輯電路36還判斷就緒位37有效。 由線程調(diào)度器通過直接連接30檢測(cè)到就緒位37位于第一時(shí)鐘信號(hào) ckl的邊沿上。通過4企測(cè)到有效的就緒位,線程調(diào)度器確保相關(guān)線 程在運(yùn)行組中。然后,通過完成該線程的輸入指令的運(yùn)行(通過將 數(shù)據(jù)放入一個(gè)或多個(gè)執(zhí)行單元的寄存器(可能包括線程寄存器20 ) 中、或放置在總線13上),由執(zhí)行單元以與第一時(shí)鐘信號(hào)ckl合拍 的方式對(duì)輸入數(shù)據(jù)起作用。 一旦完成輸入,執(zhí)行單元16就通過直接 路徑31判斷就緒位37在第一時(shí)鐘信號(hào)ckl的邊沿上無效。
為了執(zhí)行輸出,如上所述,必須無效就緒位37,以指示出I/O 緩沖器32當(dāng)前不涉及輸入并且也不涉及此前的輸出?!﹊設(shè)就緒位 37被無效,這由第一時(shí)鐘信號(hào)ckl邊沿上的線程調(diào)度器通過直4妻^各 徑30來一企測(cè)。通過4企測(cè)無效的就緒位,線程調(diào)度器確保相關(guān)線程位 于運(yùn)行組中。
然后,通過以與第一時(shí)鐘信號(hào)ckl合拍的方式完成該線程的輸 出指令的運(yùn)行(通過從一個(gè)或多個(gè)執(zhí)行單元的寄存器(可能包括線 程寄存器20)呈現(xiàn)數(shù)據(jù)、或使得可從總線13得到數(shù)據(jù)),執(zhí)行單元 16再一次使得輸出數(shù)據(jù)可用于I/O緩沖器32。 一旦運(yùn)行輸出指令, 執(zhí)行單元16也通過直^妻^各徑31判斷就緒位37有效,其指示出I/O 緩沖器32正被輸出占用并且還不可用于其他后續(xù)輸出。當(dāng)活動(dòng)邏輯 電路36才全測(cè)到/人系統(tǒng)時(shí)間計(jì)婆丈器57接收的當(dāng)前系統(tǒng)時(shí)間值tm與 存儲(chǔ)在TIME寄存器55中的觸發(fā)時(shí)間值匹配時(shí),其觸發(fā)I/0緩沖器 32以從內(nèi)部環(huán)境取出輸出數(shù)據(jù),從而使得數(shù)據(jù)從外部環(huán)境可見。一旦才企測(cè)此匹配,活動(dòng)邏輯電^各36還會(huì)無效就緒位37,以指示出該 輸出已被呈現(xiàn)至外部環(huán)境。
當(dāng)端口處于定時(shí)才莫式中時(shí),忽略CTRL和DATA寄存器中的任
何條件。
端口 22還具有時(shí)間戳才莫式,由此活動(dòng)邏輯電^各36在將數(shù)據(jù)從 外部環(huán)境捕獲至I/O緩沖器32的時(shí)刻記錄系統(tǒng)時(shí)間值tm。此時(shí)間 戳被存儲(chǔ)在與端口相關(guān)聯(lián)的時(shí)間戳寄存器TSTAMP中。執(zhí)行單元 16可用來從TSTAMP寄存器中讀耳又時(shí)間戳,并將其存儲(chǔ)在正處理 輸入的線程的操作數(shù)寄存器OP (見下文)之一中。如果端口處于時(shí) 間戳模式中,那么,不清除就緒位37,直到已讀取TSTAMP寄存 器為止。
因此,此時(shí)間戳特征和用于每個(gè)相應(yīng)線程的一組寄存器一起有 利地允許在端口處對(duì)輸入加時(shí)間戳,然后將該時(shí)間戳傳送至負(fù)責(zé)該 輸入的線程的寄存器。
在本發(fā)明的尤其有利的實(shí)施方式中,加有時(shí)間戳的輸入可與定 時(shí)輸出 一起使用,以便精確地控制由特定線程處理的輸出與輸入之 間的相對(duì)定時(shí)。也就是說,本發(fā)明可使線程在輸入之后執(zhí)行一定數(shù) 量循環(huán)的輸出。在此情況下,線程從端口 22的TSTAMP寄存器中 讀取時(shí)間戳,然后將(相同端口的或另一端口的)TIME寄存器55 中的觸發(fā)時(shí)間值設(shè)置為時(shí)間戳加上所述數(shù)量的循環(huán)。
圖5示出了用來代表線程的示例性線程寄存器庫(kù)20。庫(kù)20包 括對(duì)應(yīng)于當(dāng)前由線程調(diào)度器16所考慮的各線程T!至Tm的多組寄存 器。在此優(yōu)選實(shí)例中,每個(gè)線程的狀態(tài)由18個(gè)寄存器4戈表2個(gè)控 制寄存器、4個(gè)存取寄存器和12個(gè)操作數(shù)寄存器。這些寄存器如下所述。控制寄存器
-PC是程序計(jì)數(shù)器
-SR是狀態(tài)寄存器 存取寄存器
-GP是全局公用指針(global pool pointer )
-DP是數(shù)據(jù)指針 -SP是棧指針 -LR是鏈接寄存器
才喿作數(shù)寄存器OPl…OP12
控制寄存器存儲(chǔ)關(guān)于線程狀態(tài)的信息并用于控制線程的運(yùn)行。 特別地,線程接受事件或中斷的能力由保存在線程狀態(tài)寄存器SR 中的信息控制。存取寄存器包括用于程序的局部變量的棧指針、 通常用于程序之間共享數(shù)據(jù)的數(shù)據(jù)指針、以及用于存取大常凄t和程 序入口點(diǎn)的常數(shù)公用指針。操作數(shù)寄存器OPl…OP12由執(zhí)行算術(shù) 運(yùn)算和邏輯運(yùn)算、存取數(shù)據(jù)結(jié)構(gòu)和調(diào)用子程序的指令使用。另外, 當(dāng)使用加有時(shí)間戳的輸入時(shí),線程將時(shí)間戳讀入到線程操作數(shù)寄存 器OP的一個(gè)中。
還提供了多個(gè)指令緩沖器(INSTR) 19,以用于暫時(shí)存儲(chǔ)線程 的實(shí)際指令。每個(gè)指令緩沖器優(yōu)選地是64位長(zhǎng),每個(gè)指令優(yōu)選地是 16位長(zhǎng),每個(gè)緩沖器允許存儲(chǔ)4個(gè)指令。在線程調(diào)度器18的控制 下從程序存儲(chǔ)器24取出指令,并將其暫時(shí)存放在指令緩沖器19中。
執(zhí)行單元可使用寄存器20和緩沖器19中的每個(gè)。此外,線程 調(diào)度器18可至少使用每個(gè)線程的狀態(tài)寄存器SR。如上所述,這里所用的術(shù)語"事件,,表示特定類型的纟喿作,或 表示與該特定類型的操作相對(duì)應(yīng)的活動(dòng)?;诓僮鞯氖录c基本輸 入-輸出操作稍微不同,并以如下方式工作。通過將來自執(zhí)行單元
16的連續(xù)點(diǎn)矢量以及將來自線程調(diào)度器18的線程標(biāo)識(shí)符傳送至與 端口 22相關(guān)耳關(guān)的VECTOR和TID寄存器38(優(yōu)選地經(jīng)由直^妄^各徑 31和30),來首先為線程設(shè)置事件。關(guān)聯(lián)的條件和條件數(shù)據(jù)也可寫 入端口 22的CTRL和DATA寄存器38。因此在端口處設(shè)置事件, 但是不必啟用。為了使端口能夠產(chǎn)生事件的指示,還必須判斷端口 的啟用標(biāo)記39有效,優(yōu)選地由線程調(diào)度器18通過直接^各徑30判斷。 此外,為了使線程本身能夠接受事件,必須將線程的相應(yīng)狀態(tài)寄存 器SR中的線程事件啟用(EE)標(biāo)記設(shè)置為事件啟用的。 一旦由此 設(shè)置并啟用事件,線程就可以使用基于事件的等待指令暫停等待事 件,該基于事件的等待指令作用于線程調(diào)度器18。此時(shí),可從相關(guān) 的指令緩沖器19中刪除當(dāng)前等待指令。當(dāng)事件發(fā)生時(shí),例如一些數(shù) 據(jù)被輸入至端口 ,通過使線程標(biāo)識(shí)符和連續(xù)點(diǎn)矢量從端口 22返回到 線程調(diào)度器18和沖丸4亍單元16,發(fā)出信號(hào)告知該發(fā)生,允"i午乂人禾呈序 存儲(chǔ)器24中取出連續(xù)點(diǎn)矢量處的指令并使其進(jìn)入指令緩沖器19, 并且在代碼中的適當(dāng)點(diǎn)處恢復(fù)運(yùn)行。當(dāng)事件發(fā)生時(shí),相應(yīng)狀態(tài)寄存 器SR中的線程的EE標(biāo)記可i殳置為事件禁止,以防止線程在事件發(fā) 生后立即對(duì)事件做出反應(yīng)。作為事件發(fā)生時(shí)線程執(zhí)行指令的結(jié)果, 啟用標(biāo)記39可^皮無效。
在設(shè)置多個(gè)端口以便為等待來自 一個(gè)或多個(gè)端口的事件作準(zhǔn)備 時(shí),可以判斷啟用標(biāo)記39有效。在啟用一組端口啟用標(biāo)記之前線程 的EE標(biāo)i己也可^皮i殳置為事件啟用的,并且在ot匕情況下,就緒的即 將啟用的第 一端口將生成事件,該事件使當(dāng)前指令被廢除并通過在 連續(xù)點(diǎn)矢量處立即耳又出和運(yùn)行指令而繼續(xù)運(yùn)行。端口的啟用標(biāo)記39和狀態(tài)寄存器EE標(biāo)記的優(yōu)點(diǎn)在于,事件的 啟用和禁止是與事件設(shè)立和通過等待指令暫停線程分離的,對(duì)于特
定線程和/或?qū)τ诟鞣N不同線程,允許容易地轉(zhuǎn)換開啟和關(guān)閉不同的 輸入和輸出條件。例如,即4吏事件一皮禁止,該事件也可在端口 22 處設(shè)立。因此,事件可由線程重新使用,因?yàn)殡m然事件已發(fā)生過一 次,但是線程標(biāo)識(shí)符、連續(xù)點(diǎn)矢量和條件仍存儲(chǔ)在端口 22的TID、 VECTOR、 CTRL和DATA寄存器38中。因此,如果線程需要重新 使用事件,那么端口的寄存器38不需要被重新寫入,但是,端口的 啟用標(biāo)記39可簡(jiǎn)單地-波再次判斷有效和/或線禾呈的狀態(tài)寄存器SR中 的EE標(biāo)記可一皮重新^殳置為事件啟用的。然后,另一個(gè)等待指令將 暫停線程,等待同一事件的再次發(fā)生。
此外,連續(xù)點(diǎn)矢量的使用允許每個(gè)線程啟用多個(gè)事件。也就是 說,給定線程可通過將連續(xù)點(diǎn)矢量傳送至一個(gè)端口 22a而在該端口 處設(shè)立一個(gè)事件,通過將不同的連續(xù)點(diǎn)矢量傳送至另一端口 22b而 在該另一端口處^L立另一個(gè)事件,等等。線程還可通過對(duì)每個(gè)相應(yīng) 端口的不同啟用標(biāo)記39分別判斷有效或無-文而獨(dú)立i也啟用和禁止 各個(gè)事件。然后,等待指令將使線程暫停,等待任何被啟用的事件。
與事件對(duì)比,使用基本I/0操作,線程調(diào)度器18不將連續(xù)點(diǎn)矢 量傳送至VECTOR寄存器,并且不使用端口的啟用標(biāo)記39或狀態(tài) 寄存器SR中的EE標(biāo)記。替代地,等待指令僅留在指令緩沖器19 中,并且如果必需的話,^又中止才丸行,以等祠4敘入或豐命出端口的可 用性,如就緒標(biāo)記37所指示的。在實(shí)施方式中,^f義要求TID寄存 器根據(jù)基本I/O進(jìn)行調(diào)度。基本I/O可能使用或可能不使用CTRL 和DATA寄存器中的條件。如果不使用這種條件,那么端口一就緒, I/O就將會(huì)完成。
還要注意, 一旦線程的運(yùn)^f亍在事件之后^皮恢復(fù),則當(dāng)然隨后可 執(zhí)行基本I/0操作。相反地, 一旦線程在基本I/O之后被恢復(fù),那
36么其隨后可包4舌事件4喿作。4壬4可這種事件和I/O的鏈可包括在線程
中。例如,在事件凈皮禁止的同時(shí)(即,在端口的啟用標(biāo)記39和/或 狀態(tài)寄存器的EE標(biāo)記纟皮無效的同時(shí)),〗旦是在事件矢量和條件仍保 留設(shè)置在寄存器38內(nèi)的同時(shí),基本I/0操作可在兩個(gè)基于事件的等 待操作之間交叉進(jìn)行。也就是說,事件可在完成第一個(gè)基于事件的 等待操作之后被禁止,隨后運(yùn)行的基本I/O使用相同端口 ,然后同 一事件被重新啟用,用于在第二基于事件的等待#:作。如上所述, 基本I/O操作中止和解除中止該線程,^f旦是不影響端口的啟用標(biāo)記 39或狀態(tài)寄存器中的EE標(biāo)記,也不將控制傳送至事件矢量。
定時(shí)器58也可用來產(chǎn)生事件。圖6中示出了一個(gè)示例性定時(shí)器 58。如上所述,定時(shí)器58本身不產(chǎn)生定時(shí)器值tm,而是乂人系統(tǒng)時(shí) 間計(jì)數(shù)器57沖妻收該值。定時(shí)器58可^皮i人為與這樣的鬧鐘類似只 要當(dāng)前系統(tǒng)時(shí)間值tm與存儲(chǔ)在TIME寄存器59中的觸發(fā)時(shí)間值匹
配,就產(chǎn)生指示。
與端口 22類似,每個(gè)定時(shí)器58包括具有就緒標(biāo)記37,和定時(shí) 器事件啟用標(biāo)記39,的活動(dòng)邏輯電^各36,。每個(gè)定時(shí)器58還包括寄 存器38,其包括與端口 22中一樣的CTRL、 TID和VECTOR寄存 器。寄存器38還包括TIME寄存器59,在條件數(shù)據(jù)即為觸發(fā)時(shí)間 的意義上,其對(duì)應(yīng)于端口 22的DATA寄存器。
為了對(duì)線程設(shè)立定時(shí)器事件,并且對(duì)定時(shí)器設(shè)置定時(shí)器事件啟 用標(biāo)記39,。執(zhí)行單元還將控制寄存器CTRL構(gòu)造為指示出定時(shí)器 輸出在觸發(fā)時(shí)間上是有條件的,將觸發(fā)時(shí)間存儲(chǔ)在TIME寄存器59 中,并將線程的連續(xù)點(diǎn)矢量存儲(chǔ)在VECTOR寄存器中。線程調(diào)度器 18將線程標(biāo)識(shí)符存儲(chǔ)在TID寄存器中。最后,由于^^丸行等待指令, 沖丸ff單元16在線考呈的狀態(tài)寄存器SR中纟殳置線程事件啟用標(biāo)記EE。 當(dāng)活動(dòng)邏輯電路36,檢測(cè)到從時(shí)間計(jì)數(shù)器57接收的當(dāng)前系統(tǒng)時(shí)間tm 與存儲(chǔ)在TIME寄存器59中的觸發(fā)時(shí)間匹配時(shí),其判斷就緒標(biāo)記37,有效,將線程標(biāo)識(shí)符從TID寄存器返回至線程調(diào)度器18,并將 連續(xù)點(diǎn)矢量從VECTOR寄存器返回至執(zhí)行單元16。然后,在線程 調(diào)度器18的指導(dǎo)下,執(zhí)行單元在由連續(xù)點(diǎn)矢量為該線程指定的代碼 中的點(diǎn)處繼續(xù)凈丸4亍線程。
因此,可以看到定時(shí)器58如4可用來以與端口 22類合乂的方式產(chǎn) 生事件。這種定時(shí)器事件可用來,例如,在每個(gè)指定時(shí)間周期(例 如,每毫秒)p奐醒線禾呈一次。
如果不對(duì)定時(shí)器59設(shè)置定時(shí)器事件啟用標(biāo)記39,,那么TIME 寄存器59 ^f又用來確定這樣的時(shí)間,在所述時(shí)間之后4丸4亍單元能夠/人 定時(shí)器58讀取系統(tǒng)時(shí)間tm,如結(jié)合圖3所討論的。這將導(dǎo)致如 果當(dāng)前時(shí)間在該時(shí)間之前,那么線#呈嘗試讀取定時(shí)器以中止。
現(xiàn)在,參照?qǐng)D7的流程圖描述使用定時(shí)端口 22的數(shù)據(jù)的示例性 傳送。在步驟100,執(zhí)行單元16開始在線程調(diào)度器18的指導(dǎo)下執(zhí) 行線程。在步驟102,執(zhí)行單元16將觸發(fā)時(shí)間值傳送至端口 22的 TIME寄存器55。在步驟104,執(zhí)行單元將端口 22設(shè)置成定時(shí)模式。 在步驟106,執(zhí)行單元遇到線程內(nèi)的輸入或輸出指令。在輸出指令 的情況下,執(zhí)行單元將通過4吏I/O緩沖器32可用到輸出數(shù)據(jù)而部分 地完成輸出指令。^^設(shè)還未達(dá)到觸發(fā)時(shí)間,也將不設(shè)置端口 22的就 緒位37。線程調(diào)度器18 4企測(cè)到此情況并通過將該線程乂人運(yùn)4于組中 去除而中止線^f呈?,F(xiàn)在,端口 22對(duì)線^艮負(fù)責(zé),而不是線;f呈調(diào)度器 18對(duì)線程負(fù)責(zé)。在步驟108,端口 22的活動(dòng)邏輯電路36從系統(tǒng)時(shí) 間計(jì)數(shù)器57接收當(dāng)前系統(tǒng)時(shí)間值tm。在步驟110,活動(dòng)邏輯電路 36判斷當(dāng)前系統(tǒng)時(shí)間值tm是否與存儲(chǔ)在TIME寄存器55中的觸發(fā) 時(shí)間值匹配。如果不匹配,那么該方法返回至步驟108,在該步驟 中,端口繼續(xù)讀耳又計(jì)凄丈器57,同時(shí)當(dāng)前時(shí)間^f直tm增力口。然而,如果當(dāng)前時(shí)間與觸發(fā)時(shí)間匹配,那么該方法分支到步驟
114,其中,在將輸入數(shù)據(jù)從外部環(huán)境捕獲至I/O緩沖器32的情況
下使得輸入數(shù)據(jù)可用于內(nèi)部環(huán)境,并且,在將輸出數(shù)據(jù)從內(nèi)部環(huán)境
捕獲至I/O緩沖器32的情況下使得輸出數(shù)據(jù)對(duì)于外部環(huán)境可見。在 步驟116,活動(dòng)邏輯電^各36判斷就緒位37有效以指示該傳送。在 步驟118,線程調(diào)度器檢測(cè)就緒位37并將線程返回至運(yùn)行組,導(dǎo)致 執(zhí)行單元16恢復(fù)線程的4丸4于。在輸入情況下,恢復(fù)的沖丸行將包括完 成輸入指令,該指令將數(shù)據(jù)從I/O緩沖器32輸入至內(nèi)部環(huán)境中,例 如,輸入至線程的操作數(shù)寄存器OP的一個(gè)中。
現(xiàn)在,參照?qǐng)D8描述定時(shí)器58產(chǎn)生事件的示例性使用。在步驟 120,沖丸行單元16開始在線程調(diào)度器18的指導(dǎo)下運(yùn)4于線程。在步驟 122,執(zhí)行單元16和線程調(diào)度器18通過如下方式為定時(shí)器58設(shè)立 事件將連續(xù)點(diǎn)矢量、條件和觸發(fā)時(shí)間從執(zhí)行單元16傳送至 VECTOR 、 CTRL和TIME寄存器38,;以及將相關(guān)線禾呈對(duì)豐lT入的線 程標(biāo)識(shí)符從線程調(diào)度器18傳送至TID寄存器38,。步驟122還包括 在線程的狀態(tài)寄存器SR中設(shè)置線程事件啟用標(biāo)記,并設(shè)置定時(shí)器 事件啟用標(biāo)記39,(如果還未設(shè)置的話)。在步驟124,執(zhí)行單元16 執(zhí)行等待指令,該指令導(dǎo)致線程調(diào)度器通過將線程從運(yùn)行組中去除 而暫停該線程的才丸4亍?,F(xiàn)在,定時(shí)器58對(duì)線程負(fù)責(zé),而不是線程調(diào) 度器18對(duì)線程負(fù)責(zé)。在步驟126,定時(shí)器58的活動(dòng)邏輯電路36, 從系統(tǒng)時(shí)間計(jì)數(shù)器57接收當(dāng)前系統(tǒng)時(shí)間值tm。在步驟128,活動(dòng) 邏輯電路36判斷當(dāng)前系統(tǒng)時(shí)間值tm是否與存儲(chǔ)在TIME寄存器59 中的觸發(fā)時(shí)間值匹配。如果不匹配,那么該方法返回至步驟126, 在該步驟中,定時(shí)器58繼續(xù)讀耳又計(jì)^t器57,同時(shí)當(dāng)前時(shí)間值tm增 加。
然而,^口果當(dāng)前時(shí)間與觸發(fā)時(shí)間匹配,那么該方法分支到步-驟 132,其中,活動(dòng)邏輯電^各36,判斷就緒位37,有效以指示該傳送。在步驟134,活動(dòng)邏輯電路36,將連續(xù)矢量從VECTOR寄存器返回 至才丸行單元16,并將線程標(biāo)識(shí)符/人TID寄存器返回至線程調(diào)度器。 注意,步驟136和134可基本上同時(shí)執(zhí)行。在步驟136,線程調(diào)度 器18將線程返回至運(yùn)-行組,導(dǎo)致護(hù)^行單元繼續(xù)線程的護(hù)、行。
接口處理器由于其基于線程的結(jié)構(gòu)而可支持若干種編程方法。 接口處理器可以作為執(zhí)4亍標(biāo)準(zhǔn)輸入和輸出的單個(gè)常少見處理器,或者 其可被編程為凄t百個(gè)通信部件的并行陣列的一部分。纟是供了支持這 些選擇的指令集。指令集包括支持初始化、終止、開始和停止線程 以及提供輸入/輸出通信的特殊指令。輸入和輸出指令允許與外部裝 置非常快地通信。它們支持高速、低時(shí)延輸入和輸出以及高級(jí)協(xié)同 編程技術(shù)。以下將更全面地討論它們?cè)谔幚矶丝诨顒?dòng)中的應(yīng)用,其 中描述了可用來實(shí)現(xiàn)本發(fā)明的實(shí)例指令。
端口可在輸入或輸出才莫式下使用。在輸入才莫式中,條件可用來 過濾傳送給線程的H據(jù)。如下面所述,當(dāng)凄t據(jù)可用時(shí),端口可用來 產(chǎn)生事件或中斷。這允許線程監(jiān)測(cè)若干端口,僅為那些就緒的端口 服務(wù)。然后一旦就緒,輸入和輸出指令I(lǐng)N和OUT可用來將數(shù)據(jù)傳 送至端口或/人端口傳送lt據(jù)。在此情況下,IN指令/人n位端口輸入 并零擴(kuò)展n個(gè)最不重要的位,OUT指令輸出該n個(gè)最不重要的位。
兩個(gè)另外的指令I(lǐng)NSHR和OUTSHR最優(yōu)化數(shù)據(jù)傳送。INSHR 指令將寄存器(例如,才喿作數(shù)寄存器)的內(nèi)容向右移n位,用從n 位端口輸入的數(shù)據(jù)填補(bǔ)最左側(cè)的n位。OUTSHR指令將數(shù)據(jù)的n個(gè) 最不重要的位輸出至n位端口 ,并將寄存器的內(nèi)容向右移n位。
OUTSHR端口 端口 < s[位0寬度(端口 )]; 從其輸出
s — s寬度(端口 )端口和移位 INSHR端口 s<~s 寬度(d); 移位和llr入
40端口 [> s[位(每字位-寬度(d))寬度(d)] 來自端口
其中,"D>"代表?xiàng)l件輸入,"<T代表?xiàng)l件輸出。
INSHR指令可用來通過端口的寬度移位數(shù)據(jù)。這允許從一個(gè)端 口輸入的數(shù)據(jù)被移位,然后,與從另一端口輸入至相同寄存器的數(shù)
據(jù)連接。
在使用端口前必須對(duì)其進(jìn)行構(gòu)造。用SETC指令對(duì)其進(jìn)行構(gòu)造, 該指令用來定義端口的若干獨(dú)立設(shè)置。每種設(shè)置都具有缺省模式, 并且,僅在需要不同的模式時(shí)才需要構(gòu)造。
SETC 端口 ,模式端口 [ctrl] <~模式 設(shè)置端口控制
SETC模式設(shè)置的作用如下所述。每種設(shè)置的首項(xiàng)是缺省模式。
模式 作用
OFF 端口無效;引腳高阻抗
ON 有效
IN 端口是輸入
OUT 端口是輸出(但是輸入返回當(dāng)前引腳值)
RAW 數(shù)據(jù)直接傳送至引腳或從引腳直接傳送數(shù)據(jù)
CLOCKED 數(shù)據(jù)傳送與時(shí)鐘同步
TIMED 對(duì)ft據(jù)傳送定時(shí)
EVENT 端口 一尋引起事4牛
INTERRUPT 端口將引起中斷DRIVE
PULLDOWN
PULLUP
RISING FALLING
虧1腳被高驅(qū)動(dòng)和低驅(qū)動(dòng) 引躲卩下^立(H立,否則為高阻4元 引腳上^立1^立,否則為高阻拍二
端口時(shí)鐘的上升邊沿是第一(捕獲)邊沿 端口時(shí)鐘的下降邊沿是第一(捕獲)邊沿
DATAPORT 端口用作標(biāo)準(zhǔn)端口
CLOCKPORT 端口時(shí)4中凈皮其車俞出直4妄牽制
NOSTAMP 未4丸4亍時(shí)間戳
S TAMPED 啟用時(shí)間戳
UNCOND
EQUAL
NE
TRANSITION GR
端口始終就緒;iir入立即完成
當(dāng)端口值等于其DATA值時(shí),端口就緒 當(dāng)端口值與其DATA值不同時(shí),端口就緒
當(dāng)端口值向其DATA值改變時(shí),端口就緒 當(dāng)端口值大于其DATA^直時(shí),端口就緒
當(dāng)端口值小于其DATA值時(shí),端口就緒
DRIVE、 PULLDOWN和PULLUP才莫式^又當(dāng)端口方向是OUT 時(shí)是相關(guān)的。TRANSITION條件僅對(duì)1位端口是相關(guān)的,并且GR 和LS條件僅對(duì)1位以上的端口是相關(guān)的。
每個(gè)端口具有就緒位37,其用來控制通過端口的數(shù)據(jù)流,并定
義端口是否能夠完成^r入或豐lr出指令。耳又決于端口構(gòu)造,以不同方
式設(shè)置就緒位。當(dāng)執(zhí)行SETC、 SETD或SETV指令中的任何指令時(shí),
清除就緒^立。輸入模式中的端口可被構(gòu)造為執(zhí)行條件輸入。條件過濾輸入數(shù) 據(jù),從而僅使符合條件的數(shù)據(jù)返回至程序。當(dāng)設(shè)置條件時(shí),IN和
INSHR指令將僅當(dāng)端口就緒時(shí)完成。如上所述,在未就緒的端口上 執(zhí)行輸入指令將中止線程。當(dāng)就緒時(shí),端口設(shè)置其就緒位,這通過 信號(hào)告知線程調(diào)度器。線程恢復(fù)并重新執(zhí)行輸入指令。這一次,端
口就緒,返回?cái)?shù)據(jù)并清除就緒位37。
一旦設(shè)置端口就緒位,滿足條件的凄t據(jù)值:帔捕獲,,人而軟件得 到符合條件的值,即使端口上的值隨后會(huì)改變。當(dāng)執(zhí)行IN或INSHR 指令并設(shè)置就緒位時(shí),則返回?cái)?shù)據(jù)并清除就緒位。如果不設(shè)置就緒 位,那么線程中止,直到設(shè)置就緒位為止。如果設(shè)置條件,那么將 數(shù)據(jù)與條件比較,并且僅當(dāng)符合條件時(shí)才設(shè)置就緒位。
當(dāng)執(zhí)行OUT或OUTSHR指令時(shí),如果清除就緒位,那么端口 提取數(shù)據(jù)并設(shè)置就緒位。如果設(shè)置就緒位,那么線程中止,直到就
緒4立,皮端口清除為止。
事件和中斷允許端口自動(dòng)地將控制傳送至預(yù)定的事件控制器 (handler )。線程接受事件或中斷的能力由保持在線程狀態(tài)寄存器 SR中的信息控制(見圖4 ),并可用TSE和TSD指令明確地控制。 此信息包4舌事件啟用標(biāo)i己(EE)和中斷啟用標(biāo)^己(IE)。
TSE s SR<~SRvs 線禾呈一犬態(tài)啟用
TSD s SR<~SRa,s 線禾呈習(xí)犬態(tài)禁止
這些指令的操作數(shù)應(yīng)是以下中的一個(gè)
EE 啟用或禁止事件 IE 啟用或禁止中斷
43事件是在其^皮i殳立的同一范圍內(nèi)^皮處理。因此,對(duì)于所有線禾呈 的狀態(tài)都有效的事件,允許線程對(duì)事件快速反應(yīng)。線程可用端口執(zhí) 行輸入和輸出操作,端口產(chǎn)生事件,同時(shí)不改變部分或所有事件信 息。這允許線程完成處理事件,并立即等待另一類似事件。
必須在使用SETV指令啟用事件之前設(shè)置事件控制器的程序位 置。端口具有確定何時(shí)將產(chǎn)生事件的條件;用SETC和SETD指令
設(shè)置這些條件。
可用無條件事件啟用(EEU)指令來啟用通過特定端口的事件 產(chǎn)生,并可用無條件事件禁止(EDU)指令將其禁止。如果事件條 件操作數(shù)為真,那么真事件啟用(EET)指令啟用事件,否則禁止 該事件;相反地,如果事件條件操作數(shù)為假,那么假事件啟用(EEF) 指令啟用事件,否則禁止該事件。這些指令被用來使安全輸入的執(zhí) 行最優(yōu)化。以下是一些用于在端口上構(gòu)造事件的指令才各式實(shí)例。
SETV 端口,v端口[矢量]卄v i殳置事4牛矢量 SETD 端口,d端口[數(shù)據(jù)]—d 設(shè)置事件數(shù)據(jù) SETC 端口,c端口[ctrl]仨c i殳置事件控制 EET端口,b 端口[啟用]仨b;端口 [ tid]—線程真事件啟用 EEF端口,b端口[啟用]仨b;端口 [ tid] <~線程作支事件啟用 EDU端口端口[啟用]<~假;端口[tid]—線程 事件禁止 EEU端口 端口[啟用]<~真;端口[tid]—線程 事件啟用
已經(jīng)在一個(gè)或多個(gè)端口上啟用事件,線程可4吏用WAITEU指令 來等待至少一個(gè)事件。隨著控制被傳送至由相應(yīng)事件矢量指定的事 件控制器,這可能導(dǎo)致事件立即發(fā)生,且事件是通過清除EE (事件啟用)標(biāo)記而禁止。替代地,可暫停線程,直到事件發(fā)生為止——
在此情況下,當(dāng)事件發(fā)生時(shí)將清除EE標(biāo)記,并且線程恢復(fù)4丸4亍。
WAITETb如果b貝'J SR[EE]—真 如果真則事件等4寺 WAITEFb如果-b則SR[EE] <~真 如果4叚則事件等4寺 WAITEU SR[EE]仨真 事件等待
CLRE SR[EE]—々支; 禁止所有事件 對(duì)所有端口 對(duì)線程 如果端口[tid]:線程則端口[啟用]—假
為了最優(yōu)化重復(fù)等待一個(gè)或多個(gè)事件直到條件發(fā)生的常見情 形,提供了事件等待指令的條件形式。僅當(dāng)其條件操作數(shù)為真時(shí) WAITET指令等待,且僅當(dāng)其條件操作數(shù)為假時(shí)WAITEF等待。
可用單個(gè)CLRE指令禁止由線程啟用的所有事件。這會(huì)在所有 端口中禁止事件產(chǎn)生,所述端口具有由線程啟用的事件。CLRE指
令還清除線程的狀態(tài)寄存器中的事件啟用狀態(tài)。
為了最優(yōu)化線程對(duì)高優(yōu)先級(jí)端口的響應(yīng)度,在隨后開始啟用端 口并使用 一個(gè)事件等待指令之前,TSE EE指令可用來首先啟用線程 上的事件。這樣,處理器可4要優(yōu)先級(jí)順序掃描端口。這可能導(dǎo)致事 件一一皮啟用就立即^皮處理。
與事件相比,中斷不在當(dāng)前范圍內(nèi)凈皮處理,因此必須在中斷處 理器的執(zhí)行之前保存當(dāng)前的PC和SR (以及潛在的一些或所有其他 寄存器)。在由端口 r產(chǎn)生中斷時(shí),自動(dòng)出現(xiàn)以下代碼
SAVEPC <~ PC;SAVESR — SR; SR[EE]—假; SR[IE] <~假; PC仨r[矢量]
當(dāng)處理器完成時(shí),中斷線程的執(zhí)行可由RFINT指令實(shí)現(xiàn)。
RFINT PC — SAVEPC; /人中斷返回 SR —SAVESR
每個(gè)處理器優(yōu)選地具有以lOOMHz記錄的時(shí)鐘(第三時(shí)鐘173 )。 通過內(nèi)部產(chǎn)生的時(shí)鐘或者通過外部4是供的時(shí)鐘,這可同步進(jìn)4亍輸入 和輸出操作。提供一組時(shí)鐘發(fā)生器172來進(jìn)行此操作,每個(gè)時(shí)鐘發(fā) 生器可用時(shí)4中173、時(shí)4中17i或外部一4立時(shí)4中作為其時(shí)4中源。
每個(gè)時(shí)鐘發(fā)生器還具有八位除法器。當(dāng)其設(shè)置為零時(shí),源信號(hào) 直接通向其輸出。源時(shí)鐘的上升邊沿用來才丸行除法。因此,設(shè)置值 1將導(dǎo)致來自改變輸入的每個(gè)上升邊沿的時(shí)鐘發(fā)生器的輸出,減半 輸入頻率f;并且,i殳置值i將產(chǎn)生輸出頻率f/2i。
處理器^f呆持用于線禾呈的一組可用源,例如,時(shí)4中發(fā)生器、定時(shí) 器和端口 。資源被分配以由帶有GETR指令的線程使用。提供一組 時(shí)鐘發(fā)生器172來進(jìn)行此操作,每個(gè)時(shí)鐘發(fā)生器可使用處理器時(shí)鐘 17,、另一內(nèi)部時(shí)鐘173或外部一位時(shí)鐘作為其時(shí)鐘源。
用SETCLK指令設(shè)置時(shí)鐘發(fā)生器172的源。如果操作數(shù)指定一 位端口,那么該端口用作時(shí)鐘輸入。如果揭:作數(shù)指定定時(shí)器ID,那 么時(shí)鐘輸入被設(shè)置為從定時(shí)器接收輸入。用SETD指令設(shè)置除法因 數(shù)。使用操作數(shù)的最低八位,忽略剩下的。
46SETCLK發(fā)生器發(fā)生器[sid]仨s設(shè)置時(shí)鐘發(fā)生器的源
一旦時(shí)鐘發(fā)生器已被構(gòu)造,那么從時(shí)鐘發(fā)生器計(jì)時(shí)的輸入端口需要被連接至其上。這也可用端口上的SETCLK指令來連接,將時(shí)鐘發(fā)生器ID指定為另 一操作數(shù)。
SETCLK端口 端口 [ckid] <~ s 設(shè)置端口的時(shí)鐘發(fā)生器
當(dāng)從時(shí)鐘發(fā)生器172驅(qū)動(dòng)輸出端口 22時(shí),引腳上的數(shù)據(jù)與相應(yīng)的時(shí)鐘信號(hào)(例如,ck2)的邊沿同時(shí)改變狀態(tài)。如果若干輸出端口由相同的時(shí)鐘信號(hào)計(jì)時(shí),那么它們將表現(xiàn)為用作單個(gè)輸出端口 ,雖然處理器可在不同時(shí)間對(duì)它們提供數(shù)據(jù)。類似地,如果從時(shí)鐘發(fā)生器172驅(qū)動(dòng)輸入端口 22,那么將與相應(yīng)的時(shí)鐘信號(hào)的邊沿同步地對(duì)數(shù)據(jù)采樣,并且如果若干輸入端口由相同的時(shí)鐘信號(hào)計(jì)時(shí),那么它們將表現(xiàn)為用作單個(gè)輸入端口 ,雖然處理器可在不同時(shí)間乂人那些端口獲得數(shù)據(jù)。替代地,每個(gè)端口可由不同的第二時(shí)鐘信號(hào)ck2、 ck2'、ck2"等計(jì)時(shí)。例如,每個(gè)端口可由/人不同的外部時(shí)4中源產(chǎn)生的時(shí)4中信號(hào)計(jì)時(shí)。
因此,計(jì)時(shí)端口的使用從輸入和輸出接口的同步操作去耦輸入和輸出,呈序4丸4亍的內(nèi)部定時(shí)。
當(dāng)端口i殳置為CLOCKED模式時(shí)對(duì)端口計(jì)時(shí)。時(shí)鐘專lr入來自時(shí)鐘發(fā)生器,并用SETCLK指令設(shè)置,將時(shí)鐘發(fā)生器ID作為操作數(shù)。
通過"i殳置由EDGE i殳置^直決定的RISING和FALLING模式而設(shè)置時(shí)鐘脈沖邊沿,凄t據(jù)捕獲于所述時(shí)鐘脈沖邊沿上并呈現(xiàn)在輸出處。當(dāng)模式被構(gòu)造為RISING時(shí),上升邊沿是第一邊沿,而下降邊沿是第二邊沿。當(dāng)模式被構(gòu)造為FALLING時(shí),下降邊沿是第一邊沿,而上升邊沿是第二邊沿。從第一邊沿上的引腳捕獲輸入凄t據(jù)。在此邊沿上,也i殳置就緒
位。當(dāng)執(zhí)行IN或INSHR指令并且設(shè)置就緒位時(shí),返回?cái)?shù)據(jù)并清除就緒位。如果不設(shè)置就緒位,那么中止線程,直到設(shè)置就緒位為止。
如果設(shè)置條件,那么將時(shí)鐘脈沖邊沿上所捕獲的數(shù)據(jù)與該條件進(jìn)行比較,并且僅當(dāng)符合條件時(shí)設(shè)置就緒位。
在第二邊沿上發(fā)送輸出數(shù)據(jù)。此邊沿還清除就緒位。當(dāng)運(yùn)行OUT或OUTSHR指令時(shí),如果清除就緒位,那么記錄數(shù)據(jù)并設(shè)置就緒位,并且如果設(shè)置就緒位,那么中止線程,直到清除其為止。
如果設(shè)置時(shí)鐘發(fā)生器以從外部時(shí)鐘源產(chǎn)生第二時(shí)鐘信號(hào),那么根據(jù)外部時(shí)鐘參考,可解除中止的輸入和輸出。這便于對(duì)外部刺激快速反應(yīng)。
端口的CLOCKPORT才莫式導(dǎo)致所選4奪的第二時(shí)4f^[言號(hào)ck2 (而不是數(shù)據(jù))從相應(yīng)端口被輸出。此模式可用來使處理器和其所連接的外部裝置之間的接口同步。例如,此特征可用來使圖2A所示的陣列中的兩個(gè)接口處理器14的第二時(shí)鐘信號(hào)同步,以使它們之間的接口由共同的第二時(shí)鐘信號(hào)計(jì)時(shí),但是每個(gè)處理器14根據(jù)其本身相應(yīng)的第 一 時(shí)4中在內(nèi)部運(yùn)4亍。在DATAPORT才莫式中,端口簡(jiǎn)單地豐lr入或輸出數(shù)據(jù)。
處理器還具有一組定時(shí)器58,這些定時(shí)器可由線程用來讀耳又當(dāng)前時(shí)間或等〗寺直到^見定時(shí)間為止。
用GETR TIMER指令分配定時(shí)器??捎肧ETC指令對(duì)其進(jìn)行構(gòu)造,并且其可構(gòu)造成的兩種模式是
UNCOND 定時(shí)器始終就緒——立即從定時(shí)器讀取時(shí)間,以及
48AFTER 當(dāng)時(shí)間在其TIME值之后時(shí),定時(shí)器就緒。
在UNCOND (無條件)模式中,IN指令讀取定時(shí)器的當(dāng)前值。在AFTER模式中,IN指令等待,直到系統(tǒng)時(shí)間計(jì)數(shù)器57的值在定時(shí)器的TIME寄存器中的值之后(晚于定時(shí)器的TIME寄存器中的值)為止。可用SETD指令設(shè)置定時(shí)器的TIME寄存器中的值。
定時(shí)端口與計(jì)時(shí)端口類々乂,不同之處在于,不4吏用時(shí)4中l(wèi)命入,而l吏用來自系統(tǒng)時(shí)間計(jì)H器57的豐lr入。用SETPTIME(設(shè)置端口時(shí)間)指令設(shè)置時(shí)間值。定時(shí)端口通常與加有時(shí)間戳的端口共同使用,
因?yàn)檫@允許對(duì)響應(yīng)時(shí)間的精確控制。用GETTSTMP指令讀取時(shí)間
卿減。
SETPTIME端口 端口 [時(shí)間]—s設(shè)置端口時(shí)間GETTSTMP端口,d d <~端口 [tstamp] 獲4尋時(shí)間戳
在輸入模式中,從外部環(huán)境(例如,引腳)捕獲數(shù)據(jù),并且當(dāng)存儲(chǔ)的數(shù)據(jù)值與當(dāng)前時(shí)間匹配時(shí),設(shè)置就緒位;忽略條件。當(dāng)執(zhí)行IN或INSHR指令并設(shè)置就緒位時(shí),返回捕獲的凄t據(jù)并清除就緒位。如果不i殳置就緒位,那么線程中止,直到i殳置就緒位為止。在輸入模式中,SETPTIME指令從不中止。
在輸出模式中,記錄的數(shù)據(jù)對(duì)于外部環(huán)境可見(例如,放置于引腳)并當(dāng)存儲(chǔ)的數(shù)據(jù)值與當(dāng)前時(shí)間匹配時(shí),設(shè)置就緒位。當(dāng)執(zhí)行OUT或OUTSHR指令時(shí),如果清除就緒位,那么記錄數(shù)據(jù)并設(shè)置就緒位。如果i殳置就緒位,那么線程中止,直到清除其為止。
在輸出模式中,如果設(shè)置就緒位,那么SETTSTMP指令將中止,直到清除其為止。這確保了端口的存儲(chǔ)時(shí)間在完成等待輸出之
前不會(huì)改變。當(dāng)端口處于時(shí)間戳模式中時(shí),那么從外部環(huán)境捕獲數(shù)據(jù)的時(shí)間
被記錄在時(shí)間戳寄存器中。用GETTSTMP指令讀取時(shí)間戳寄存器。當(dāng)處于時(shí)間戳模式中時(shí),IN和INSHR指令不清除就緒位——<又有
廠、T\ >m 士匕>^、\^~ U入壬i^ 乂;
^xi二丄i o i丄v丄廠 <日'"7 /巧(小't/u^j 'i工。
在定時(shí)端口和時(shí)間戳的以下實(shí)例中,l命出端口 (outport)在輸_入端口 ( inport )改變狀態(tài)之后的定時(shí)器循環(huán)的某一間隔時(shí)改變狀態(tài)。
IN
SETC SETCSETDSETC
環(huán)
IN
GETTSTMP
ADD
SETTIME
OUT
BBU
inport, v
inport, STAMPED
inport, NEinport, voutport, TIMED
i叩ort , vinport, tt,t,間隔outport, t
outport, v
環(huán) //分支
以下是示出了定時(shí)端口和時(shí)間戳的使用的另一實(shí)例。從i叩ort獲得數(shù)據(jù),用來訪問查找表中的相應(yīng)輸出值,然后通過outport輸出該4直。當(dāng)夕卜吾卩端口 ckport變高時(shí),耳又4尋凄U居。乂人ckport端口只于inport端口計(jì)時(shí),并且ckport的狀態(tài)改變#皮加有時(shí) 戳,因此乂人inport耳又得的數(shù)據(jù)將與此時(shí)間戳相對(duì)應(yīng)。最后,通過定時(shí)端口 outport在^見定
數(shù)量的定時(shí)器循環(huán)之后輸出數(shù)據(jù)。
GETR
SETC
SETC
SETD
SETQLK
SETC
SETCLK
SETC
環(huán)
IN
GETTSTMPIN
LDWADD
SETTIME
OUT
BBU
ck, CLOCKckport, STAMPEDckport, TRANSITIONckport, 1ck, ckport
inport, CLOCKED
inport, ck
outport, TIMED
ckport, dckport, ti叩ort, d
q,查找表,dt,t,間隔
〃從查找表載入寄存器中
outport, toutport, d
環(huán)
從以上描述和實(shí)例中,可看到本發(fā)明如何允許在線程的執(zhí)行、管理和調(diào)度中精確定時(shí),并因此4是供對(duì)由那些線程處理的輸入和輸出才喿作的響應(yīng)時(shí)間的4青確控制??梢岳斫?,以上實(shí)施方式僅通過實(shí)例進(jìn)行描述。作為時(shí)鐘信號(hào)
的智4戈,ckl、 ck2、 ck2,、 ck2"等中的一個(gè)或多個(gè)可由不失見則定時(shí)信號(hào)或選通信號(hào)^,代。當(dāng)前時(shí)間的不同源(位于處理器的內(nèi)部或外部),也可用來對(duì)端口和/或定時(shí)器計(jì)時(shí)。雖然僅相對(duì)于輸入描述過時(shí)間戳,但是其原理也可延伸至?xí)r間戳輸出才喿作。在其他實(shí)施方式中,可根據(jù)芯片的期望規(guī)格提供不同的寄存器組和指令集。在一些實(shí)施方式中,線程標(biāo)識(shí)符不需要傳送至端口,但是可保持線程調(diào)度器的響應(yīng)度,或存儲(chǔ)在別的地方。替代地,可以在端口為每個(gè)線程提供單獨(dú)的就緒標(biāo)記,以使線程標(biāo)識(shí)符被傳送至端口從而選擇正確的就緒信號(hào),但是線程標(biāo)識(shí)符不需要在活動(dòng)檢測(cè)后返回至線程調(diào)度器。此外,條件和/或條件數(shù)據(jù)不需要傳送至端口。相反地,可在端口處預(yù)先構(gòu)造條件和/或可在線程調(diào)度器處或其他地方評(píng)價(jià)條件??稍趤碜远丝诤投〞r(shí)器以外的其他源的活動(dòng)的基礎(chǔ)上調(diào)度線程??稍?br>
處理器的各種部件之間4是供不同的互連。同樣,本發(fā)明并非專用于帶有移動(dòng)應(yīng)用處理器的移動(dòng)終端中。對(duì)于本領(lǐng)域的技術(shù)人員來說,其他應(yīng)用和構(gòu)造將是顯而易見的。本發(fā)明的范圍不限于所述實(shí)施方式,而是由所附^又利要求限制。
5權(quán)利要求
1.一種具有接口部分和內(nèi)部環(huán)境的處理器,其中,所述接口部分包括至少一個(gè)端口,被布置為接收當(dāng)前時(shí)間值;第一寄存器,與所述端口相關(guān)聯(lián),被布置為存儲(chǔ)觸發(fā)時(shí)間值;以及比較邏輯電路,被構(gòu)造為檢測(cè)當(dāng)前時(shí)間值是否與觸發(fā)時(shí)間值匹配,如果檢測(cè)到所述匹配,則在端口與外部環(huán)境之間傳送數(shù)據(jù)并改變就緒信號(hào)以指示所述傳送;并且其中,內(nèi)部環(huán)境包括執(zhí)行單元,用于在至少一個(gè)端口與內(nèi)部環(huán)境之間傳送數(shù)據(jù);以及線程調(diào)度器,用于調(diào)度多個(gè)線程以便由執(zhí)行單元執(zhí)行,每個(gè)線程包括一系列指令,所述調(diào)度包括調(diào)度一個(gè)或多個(gè)所述線程以便根據(jù)就緒信號(hào)執(zhí)行。
2. 根據(jù)權(quán)利要求1所述的處理器,包括被布置為輸出當(dāng)前時(shí)間值 的計(jì)數(shù)器,所述至少 一 個(gè)端口被布置為接收來自所述計(jì)數(shù)器的當(dāng)前時(shí)間-f直。
3. 根據(jù)權(quán)利要求2所述的處理器,包括多個(gè)端口和多個(gè)第一寄存 器,每個(gè)第一寄存器與相應(yīng)的端口相關(guān)聯(lián)并被布置為存儲(chǔ)相應(yīng) 的觸發(fā)時(shí)間值,其中,由所述線程調(diào)度器實(shí)現(xiàn)的所述調(diào)度包括 調(diào)度一個(gè)或多個(gè)所述線程以便才艮據(jù)就緒信號(hào)寺丸行。
4. 根據(jù)權(quán)利要求1所述的處理器,其中,所述傳送包括輸入操作, 由此將凄t據(jù)乂人外部環(huán)境捕獲至所述至少一個(gè)端口 ,并且所述改 變包括將所述就緒信號(hào)或信號(hào)設(shè)置成第一狀態(tài),所述第一狀態(tài) 指示輸入至內(nèi)部環(huán)境的所述ft據(jù)的有效性。
5. 根據(jù)權(quán)利要求1所述的處理器,其中,所述傳送包括輸出操作,由此將數(shù)據(jù)從所述至少一個(gè)端口中的每個(gè)呈現(xiàn)至外部環(huán)境,并 且所述改變包括將所述就緒信號(hào)或信號(hào)設(shè)置成第二狀態(tài),所述 第二狀態(tài)指示與內(nèi)部環(huán)境進(jìn)一 步傳送數(shù)據(jù)的至少 一個(gè)端口的有效性。
6. 根據(jù)權(quán)利要求4所述的處理器,其中,所述執(zhí)行單元適于執(zhí)行 將凄t據(jù)從端口輸入至內(nèi)部環(huán)境的輸入指令,只要所述就緒信號(hào) 或信號(hào)中相應(yīng)的一個(gè)處于所述第一狀態(tài),所述輸入指令是所述 一個(gè)或多個(gè)線^t的順序的組成指令。
7. 根據(jù)權(quán)利要求5所述的處理器,其中,所述執(zhí)行單元適于執(zhí)行 將數(shù)據(jù)從內(nèi)部環(huán)境輸出至端口的輸出指令,只要所述就緒信號(hào) 或信號(hào)中相應(yīng)的一個(gè)處于所述第二狀態(tài),所述輸出指令是所述 一個(gè)或多個(gè)線程的順序的組成指令。
8. 根據(jù)權(quán)利要求6所述的處理器,其中,所述寸丸行單元適于在完 成輸入指令時(shí)將所述相應(yīng)的就緒信號(hào)設(shè)置成所述第二狀態(tài)。
9. 才艮據(jù)4又利要求7所述的處理器,其中,所述才丸4亍單元適于在完 成輸出指令時(shí)將所述相應(yīng)的就緒信號(hào)設(shè)置成所述第一狀態(tài)。
10. 根據(jù)權(quán)利要求6所述的處理器,其中,由所述線程調(diào)度器實(shí)現(xiàn) 的所述調(diào)度包括暫停輸入指令線程的執(zhí)行,直到相應(yīng)的就緒信 號(hào)被設(shè)置為所述第一狀態(tài)。
11. 根據(jù)權(quán)利要求7所述的處理器,其中,由所述線程調(diào)度器實(shí)現(xiàn) 的所述調(diào)度包括暫停輸出指令線程的執(zhí)行,直到相應(yīng)的就緒信 號(hào)被設(shè)置為所述第二狀態(tài)。
12. 根據(jù)權(quán)利要求8和9所述的處理器,其中,所述傳送包括輸入 操作和輸出操作,并且所述執(zhí)行單元被布置為執(zhí)行輸入指令和 輸出指令。
13. 4艮據(jù)斥又利要求1所述的處理器,其中,所述#1^亍單元#皮構(gòu)造為 執(zhí)行設(shè)置觸發(fā)時(shí)間指令,所述設(shè)置觸發(fā)時(shí)間指令將觸發(fā)時(shí)間值 存儲(chǔ)在所述第一寄存器的一個(gè)中。
14. 根據(jù)權(quán)利要求1所述的處理器,其中,所述外部環(huán)境包括容納 有所述處理器的集成電路的至少一個(gè)引腳。
15. 才艮據(jù)一又利要求1所述的處理器,其中,所述外部環(huán)境包括位于 容納有所述處理器的集成電路上的另 一處理器。
16. 根據(jù)權(quán)利要求1所述的處理器,其中,端口與內(nèi)部環(huán)境之間的 數(shù)據(jù)傳送包4舌端口與所述才丸行單元之間的傳送。
17. 根據(jù)權(quán)利要求1所述的處理器,其中,所述內(nèi)部環(huán)境包括總線, 并且端口與內(nèi)部之間的數(shù)據(jù)傳送包括端口與總線之間的傳送。
18. 根據(jù)權(quán)利要求1所述的處理器,其中,內(nèi)部包括多組第二寄存 器,每組存儲(chǔ)與所述多個(gè)線程中的相應(yīng)一個(gè)線程相關(guān)的信息, 并且端口與內(nèi)部環(huán)境之間的傳送包括端口與所述第二寄存器 中之一之間的4專送。
19. 根據(jù)權(quán)利要求1所述的處理器,其中,所述線程調(diào)度器被構(gòu)造為保持一組可運(yùn)行線程,并且由所述線程調(diào)度器實(shí)現(xiàn)的所述調(diào) 度包括通過將一線程從所述組中去除而暫停該線程。
20. 才艮據(jù)卄又利要求1所述的處理器,其中,所述至少一個(gè)端口能夠 在時(shí)間戳模式下操作,因而端口使得時(shí)間戳與端口和外部環(huán)境 之間的數(shù)據(jù)傳送相關(guān)聯(lián)。
21. 才艮據(jù)^L利要求20所述的處理器,其中,所述"f妄口部分包^"與 所述至少一個(gè)端口相關(guān)聯(lián)的第三寄存器,時(shí)間戳的所述關(guān)聯(lián)包 括在執(zhí)行加有時(shí)間戳的傳送時(shí)將當(dāng)前時(shí)間值存儲(chǔ)在所述第三寄存器中。
22. 根據(jù)權(quán)利要求18、 20和21所述的處理器,其中,所述執(zhí)行單 元被構(gòu)造為將時(shí)間戳從所述第三寄存器傳送至與加有時(shí)間戳 的傳送相關(guān)聯(lián)的線程的所述第二寄存器的一個(gè)中。
23. 根據(jù)權(quán)利要求20所述的處理器,其中,所述執(zhí)行單元被布置 為讀取與來自端口的數(shù)據(jù)輸入相關(guān)聯(lián)的時(shí)間戳,并且將觸發(fā)時(shí) 間值設(shè)置為時(shí)間戳加上特定時(shí)間間隔,以便在所述間隔過去之 后觸發(fā)乂人端口至外部環(huán):境的彩J居^T出。
24. 根據(jù)^又利要求1所述的處理器,包括至少一個(gè)定時(shí)器,所述定 時(shí)器被布置為將當(dāng)前時(shí)間傳送至所述執(zhí)行單元。
25. 根據(jù)權(quán)利要求24所述的處理器,其中,所述定時(shí)器包括第 四寄存器,被布置為存儲(chǔ)喚醒時(shí)間值;以及比較邏輯電路,被 構(gòu)造為只要當(dāng)前時(shí)間值與喚醒時(shí)間值匹酉己,則產(chǎn)生指示;其中, 由所述線程調(diào)度器實(shí)現(xiàn)的所述調(diào)度包括調(diào)度定時(shí)線程的暫停 執(zhí)行,直到收到所述指示。
26. 4艮據(jù)4又利要求25所述的處理器,其中,所述才丸4亍單元尋皮構(gòu)造 為響應(yīng)于所述指示A人所述定時(shí)器讀取當(dāng)前時(shí)間。
27. 根據(jù)權(quán)利要求25所述的處理器,其中,所述指示包括被傳送 至所述線程調(diào)度器的線程標(biāo)識(shí)符,所述線程標(biāo)識(shí)符識(shí)別定時(shí)線程。
28. 根據(jù)權(quán)利要求25所述的處理器,其中,所述指示包括被傳送 至所述執(zhí)行單元的連續(xù)點(diǎn)矢量,所述連續(xù)點(diǎn)矢量指定定時(shí)線程 中重新開始執(zhí)行的點(diǎn)。
29. 根據(jù)權(quán)利要求28所述的處理器,其中,所述沖丸行單元4皮構(gòu)造 為執(zhí)行設(shè)置所述連續(xù)點(diǎn)矢量的設(shè)置矢量指令。
30. —種調(diào)度處理器中的線程方法,所述處理器具有4妻口部分和內(nèi) 部環(huán)境,所述^妻口部分包4舌至少 一個(gè)端口和與所述端口相關(guān)聯(lián): 的第 一 寄存器,并且所述內(nèi)部環(huán)境包括#1行單元和線程調(diào)度 器,所述方法包括在端口處4妻收當(dāng)前時(shí)間值;在所述第一寄存器中存儲(chǔ)觸發(fā)時(shí)間值;以及將當(dāng)前時(shí)間值與觸發(fā)時(shí)間值進(jìn)行比較,以檢測(cè)當(dāng)前時(shí)間值 是否與觸發(fā)時(shí)間值匹配;如果檢測(cè)到所述匹配,則在端口與外部環(huán)境之間傳送數(shù)據(jù) 并改變就緒信號(hào)以指示所述傳送;操作所述線程調(diào)度器以調(diào)度多個(gè)線程以便由執(zhí)行單元執(zhí) 行,每個(gè)線程包括一系列指令,所述調(diào)度包括調(diào)度一個(gè)或多個(gè) 所述線程以便4艮據(jù)就緒信號(hào)才丸4??;以及才喿作所述4丸4亍單元,以在至少一個(gè)端口與內(nèi)部環(huán)境之間傳送數(shù)據(jù)。
31. 根據(jù)權(quán)利要求30所述的方法,其中,處理器包括被布置為輸 出當(dāng)前時(shí)間值的計(jì)數(shù)器,并且所述方法包括將來自計(jì)數(shù)器的當(dāng) 前時(shí)間佳j是供至所述至少一個(gè)端口 。
32. 根據(jù)權(quán)利要求31所述的方法,其中,所述處理器包括多個(gè)端 口和多個(gè)第一寄存器,每個(gè)第一寄存器與相應(yīng)的端口相關(guān)聯(lián),其中,所述方法包括將相應(yīng)的觸發(fā)時(shí)間值存儲(chǔ)在每個(gè)第一寄存 器中,并且由所述線程調(diào)度器實(shí)現(xiàn)的所述調(diào)度包括調(diào)度一個(gè)或 多個(gè)所述線程以便根據(jù)就緒信號(hào)執(zhí)行。
33. 根據(jù)權(quán)利要求30所述的方法,其中,所述傳送包括輸入操作, 由此將數(shù)據(jù)從外部環(huán)境捕獲至所述至少一個(gè)端口 ,并且所述改 變包括將所述就緒信號(hào)或信號(hào)設(shè)置成第一狀態(tài),所述第一狀態(tài) 指示輸入至內(nèi)部環(huán)境的所述數(shù)據(jù)的有效性。
34. 根據(jù)權(quán)利要求30所述的方法,其中,所述傳送包括輸出操作, 由此將數(shù)據(jù)從所述至少一個(gè)端口中的每個(gè)呈現(xiàn)至外部環(huán)境,并第二狀態(tài)指示與內(nèi)部環(huán)境進(jìn)一步傳送凄t據(jù)的至少 一個(gè)端口的有效性。
35. 根據(jù)權(quán)利要求33所述的方法,包括操作所述執(zhí)行單元以執(zhí)行 將數(shù)據(jù)從端口輸入至內(nèi)部環(huán)境的輸入指令,只要所述就緒信號(hào) 或信號(hào)中相應(yīng)的一個(gè)處于所述第一狀態(tài),所述輸入指令是所述 一個(gè)或多個(gè)線考呈的順序的組成指令。
36. 根據(jù)權(quán)利要求34所述的方法,包括操作所述執(zhí)行單元以執(zhí)行將數(shù)據(jù)從內(nèi)部環(huán)境輸出至端口的輸出指令,只要所述就緒信號(hào)或信號(hào)中相應(yīng)的一個(gè)處于所述第二狀態(tài),所述輸出指令是所述一個(gè)或多個(gè)線^E的順序的組成指令。
37. 根據(jù)權(quán)利要求35所述的方法,包括操作所述執(zhí)行單元以在完成輸入指令時(shí)將所述相應(yīng)的就緒信號(hào)設(shè)置成所述第二狀態(tài)。
38. 根據(jù)權(quán)利要求36所述的方法,包括操作所述執(zhí)行單元以在完成輸出指令時(shí)將所述相應(yīng)的就緒信號(hào)設(shè)置成所述第一狀態(tài)。
39. 根據(jù)權(quán)利要求35所述的方法,其中,由所述線程調(diào)度器實(shí)現(xiàn)的所述調(diào)度包括暫停輸入指令線程的執(zhí)行,直到相應(yīng)的就緒信號(hào)被設(shè)置為所述第 一狀態(tài)。
40. 根據(jù)權(quán)利要求36所述的方法,其中,由所述線程調(diào)度器實(shí)現(xiàn)的所述調(diào)度包括暫停輸出指令線程的執(zhí)行,直到相應(yīng)的就緒信號(hào)被設(shè)置為所述第二狀態(tài)。
41. 根據(jù)權(quán)利要求37和38所述的方法,其中,所述傳送包括輸入操作和輸出才喿作,并且所述方法包4舌才喿作所述凈丸4亍單元以才丸4亍輸入指令和輸出指令。
42. 根據(jù)權(quán)利要求30所述的方法,其中,所述執(zhí)行單元被構(gòu)造為執(zhí)行設(shè)置觸發(fā)時(shí)間指令,所述設(shè)置觸發(fā)時(shí)間指令將觸發(fā)時(shí)間值存儲(chǔ)在所述第一寄存器的一個(gè)中。
43. 根據(jù)權(quán)利要求30所述的方法,其中,所述外部環(huán)境包括容納有所述處理器的集成電3各的至少一個(gè)引肚卩。
44. 根據(jù)權(quán)利要求30所述的方法,其中,所述外部環(huán)境包括位于容納有所述處理器的集成電路上的另 一處理器。
45. 根據(jù)權(quán)利要求30所述的方法,其中,端口與內(nèi)部環(huán)境之間的數(shù)據(jù)傳送包4舌端口與所述4丸4亍單元之間的傳送。
46. 根據(jù)權(quán)利要求30所述的方法,其中,所述內(nèi)部環(huán)境包括總線,并且端口與內(nèi)部之間的數(shù)據(jù)傳送包括端口與總線之間的傳送。
47. 根據(jù)權(quán)利要求30所述的方法,其中,內(nèi)部包括多組第二寄存器,每組存儲(chǔ)與所述多個(gè)線程中的相應(yīng) 一個(gè)線程相關(guān)的信息,并且端口與內(nèi)部環(huán)境之間的傳送包4舌端口與所述第二寄存器中之一之間的傳送。
48. 根據(jù)權(quán)利要求30所述的方法,包括操作所述線程調(diào)度器以保持一組可運(yùn)行線程,其中,由所述線程調(diào)度器實(shí)現(xiàn)的所述調(diào)度包4舌通過一夸一線^呈/人所述ia中去除而暫4亭該線,呈。
49. 根據(jù)權(quán)利要求30所述的方法,包括使時(shí)間戳與端口和外部環(huán)境之間的數(shù)據(jù)傳送相關(guān)聯(lián)。
50. 根據(jù)權(quán)利要求49所述的方法,其中,所述接口部分包括與所述至少一個(gè)端口相關(guān)聯(lián)的第三寄存器,時(shí)間戳的所述關(guān)聯(lián)包括在執(zhí)行加有時(shí)間戳的傳送時(shí)將當(dāng)前時(shí)間值存儲(chǔ)在所述第三寄存器中。
51. 根據(jù)權(quán)利要求47、 49和50所述的方法,包括操作所述執(zhí)行單元以將時(shí)間翟^人所述第三寄存器傳送至與加有時(shí)間戳的傳送相關(guān)聯(lián)的線程的所述第二寄存器的一個(gè)中。
52. 根據(jù)權(quán)利要求49所述的方法,包括操作所述執(zhí)行單元以讀取與來自端口的數(shù)據(jù)輸入相關(guān)聯(lián)的時(shí)間戳,并且將觸發(fā)時(shí)間值設(shè)置為時(shí)間戳加上特定時(shí)間間隔,以1更在所述間隔過去之后觸發(fā)從端口至外部環(huán)境的數(shù)據(jù)輸出。
53. 根據(jù)權(quán)利要求30所述的方法,其中,所述處理器包括至少一個(gè)定時(shí)器,所述方法包括將當(dāng)前時(shí)間從所述計(jì)數(shù)器傳送至所述執(zhí)行單元。
54. 才艮據(jù)^l利要求53所述的方法,其中,所述定時(shí)器包^^第四寄存器,并且所迷方法包括在所述第四寄存器中存儲(chǔ)喚醒時(shí)間值,將當(dāng)前時(shí)間值與喚醒時(shí)間值比較,以才企測(cè)當(dāng)前時(shí)間值是否與p奐醒時(shí)間〗直匹S己,以及如果才全測(cè)到所述匹配,則產(chǎn)生指示,其中,所述線程調(diào)度器實(shí)現(xiàn)的所述調(diào)度包括暫停定時(shí)線程的執(zhí)行,直到收到所述指示。
55. 4艮據(jù)權(quán)利要求54所述的方法,包括才喿作所述沖丸行單元以響應(yīng)于所述指示,人所述定時(shí)器讀耳又當(dāng)前時(shí)間。
56. 根據(jù)權(quán)利要求54所述的方法,其中,所述指示的產(chǎn)生包括將一線程標(biāo)識(shí)符傳送至所述線程調(diào)度器,所述線程標(biāo)識(shí)符識(shí)別定時(shí)線禾呈。
57. 根據(jù)權(quán)利要求54所述的方法,其中,所述指示的產(chǎn)生包括將一連續(xù)點(diǎn)矢量傳送至所述#^于單元,所述連續(xù)點(diǎn)矢量指定定時(shí)線程中重新開始執(zhí)行的點(diǎn)。
58. 根據(jù)權(quán)利要求57所述的方法,包括操作所述執(zhí)行單元以執(zhí)行 設(shè)置所述連續(xù)點(diǎn)矢量的設(shè)置矢量指令。
59. —種移動(dòng)終端,所述移動(dòng)終端具有移動(dòng)應(yīng)用處理器、至少一個(gè) 夕卜圍設(shè)備、以及連接在所述移動(dòng)應(yīng)用處理器與所述外圍設(shè)備之 間的^妻口處理器,所述接口處理器具有接口部分和內(nèi)部環(huán)境, 其中,所述接口部分包括至少一個(gè)端口,帔布置為4妄收當(dāng)前時(shí)間4直;第一寄存器,與所述端口相關(guān)聯(lián),被布置為存儲(chǔ)觸發(fā)時(shí)間 值;以及比較邏輯電路,被構(gòu)造為檢測(cè)當(dāng)前時(shí)間值是否與觸發(fā)時(shí)間 值匹配,如果并企測(cè)到所述匹配,則在端口與移動(dòng)應(yīng)用處理器或 外圍設(shè)備之間傳送數(shù)據(jù)并改變就緒信號(hào)以指示所述傳送;并且其中,所述內(nèi)部環(huán)境包括才丸行單元,用于在至少一個(gè)端口與內(nèi)部環(huán)境之間傳送數(shù) 據(jù);以及線程調(diào)度器,用于調(diào)度多個(gè)線程以1更由才丸^亍單元#^亍,每 個(gè)線程包括一 系列指令,所述調(diào)度包括調(diào)度一個(gè)或多個(gè)所述線 程以便根據(jù)就緒信號(hào)執(zhí)行。
60. —種互連處理器陣列,所述處理器中的至少一個(gè)具有4妻口部分 和內(nèi)部環(huán)境,其中,所述^妻口部分包括至少一個(gè)端口,被布置為接收當(dāng)前時(shí)間值;第一寄存器,與所述端口相關(guān)聯(lián),被布置為存儲(chǔ)觸發(fā)時(shí)間 值;以及比較邏輯電路,凈皮構(gòu)造為檢測(cè)當(dāng)前時(shí)間值是否與觸發(fā)時(shí)間 值匹配,如果^^測(cè)到所述匹配,則在端口與陣列中的另一處理器之間傳送數(shù)據(jù)并改變就緒信號(hào)以指示所述傳送;并且 其中,所述內(nèi)部環(huán)境包括#1行單元,用于在至少一個(gè)端口與內(nèi)部環(huán)境之間傳送數(shù)據(jù);以及線程調(diào)度器,用于調(diào)度多個(gè)線程以便由執(zhí)行單元執(zhí)行,每 個(gè)線程包括一系列指令,所述調(diào)度包括調(diào)度一個(gè)或多個(gè)所述線 程以便根據(jù)就緒信號(hào)執(zhí)行。
61. —種具有4妻口部分和內(nèi)部環(huán)境的處理器,其中,所述4妄口部分 包括端口裝置,被布置為接收當(dāng)前時(shí)間值;寄存器裝置,與所述端口裝置相關(guān)聯(lián),用于存儲(chǔ)觸發(fā)時(shí)間 值;以及比較裝置,用于檢測(cè)當(dāng)前時(shí)間值是否與觸發(fā)時(shí)間值匹配, 如果;f企測(cè)到所述匹配,則在端口裝置與外部環(huán)境之間傳送數(shù)據(jù) 并改變就緒信號(hào)以指示所述傳送;并且其中,所述內(nèi)部環(huán)3竟包4舌4丸行裝置,用于在至少一個(gè)端口與內(nèi)部環(huán)境之間傳送凄t 據(jù);以及線程調(diào)度器裝置,用于調(diào)度多個(gè)線程以便由^丸行單元執(zhí) 行,每個(gè)線程包括一系列指令,所述調(diào)度包括調(diào)度一個(gè)或多個(gè) 所述線程以便根據(jù)就緒信號(hào)寺丸行。
62. —種用于調(diào)度具有4妻口部分和內(nèi)部環(huán)境的處理器中的線程的 計(jì)算機(jī)程序產(chǎn)品,所述接口部分包括至少 一個(gè)端口和與所述端口相關(guān)聯(lián)的第 一寄存器,并且所述內(nèi)部環(huán)境包括執(zhí)行單元和線 程調(diào)度器,所述程序包括在計(jì)算機(jī)上執(zhí)行時(shí)運(yùn)行以下步驟的代碼在端口處接收當(dāng)前時(shí)間值;在所述第一寄存器中存儲(chǔ)觸發(fā)時(shí)間值;將當(dāng)前時(shí)間值與觸發(fā)時(shí)間值進(jìn)行比較,以檢測(cè)當(dāng)前時(shí)間值 是否與角蟲發(fā)時(shí)間^直匹酉己;如果檢測(cè)到所述匹配,則在端口與外部環(huán)境之間傳送數(shù)據(jù) 并改變就緒信號(hào)以指示所述傳送;操作所述線程調(diào)度器以調(diào)度多個(gè)線程以便由執(zhí)行單元執(zhí) 行,每個(gè)線程包括一系列指令,所述調(diào)度包括調(diào)度一個(gè)或多個(gè) 所述線程以便根據(jù)就緒信號(hào)執(zhí)行;以及在至少一個(gè)端口與內(nèi)部環(huán)境之間傳送凄丈據(jù)。
全文摘要
一種處理器,具有接口部分和內(nèi)部環(huán)境。接口部分包括至少一個(gè)端口,被布置為接收當(dāng)前時(shí)間值;第一寄存器,與端口相關(guān)聯(lián)并被布置為存儲(chǔ)觸發(fā)時(shí)間值;以及比較邏輯電路,被構(gòu)造為檢測(cè)當(dāng)前時(shí)間值是否與觸發(fā)時(shí)間值匹配,如果檢測(cè)到所述匹配,則在端口與外部環(huán)境之間傳送數(shù)據(jù)并改變就緒信號(hào)以指示此傳送。內(nèi)部環(huán)境包括用于在至少一個(gè)端口與內(nèi)部環(huán)境之間傳送數(shù)據(jù)的執(zhí)行單元;以及用于調(diào)度多個(gè)線程以便由執(zhí)行單元執(zhí)行的線程調(diào)度器,每個(gè)線程包括一系列指令。所述調(diào)度包括調(diào)度一個(gè)或多個(gè)所述線程以便根據(jù)就緒信號(hào)執(zhí)行。
文檔編號(hào)G06F13/20GK101689157SQ200880020679
公開日2010年3月31日 申請(qǐng)日期2008年4月15日 優(yōu)先權(quán)日2007年4月17日
發(fā)明者彼得·赫丁格, 邁克爾·戴維·梅, 阿拉斯泰爾·狄克遜 申請(qǐng)人:Xmos有限公司