接口處理器的制作方法

            文檔序號:6477169閱讀:440來源:國知局
            專利名稱:接口處理器的制作方法
            技術領域
            本發明涉及接口處理器,該接口處理器是特別用于但不專門用
            于與其他處理器或外部i殳備4妄口的處理器。
            背景技術
            處理器i殳計者面臨的一個4兆戰是處理婆t目持續增加的要與處 理器通信的外部設備。通常,這是通過為處理器提供某些類型的中 斷處J里能力(interrupt handling capability )實i見的,該處理器處理連 一接到外部i殳備的端口產生的活動。日益增加;也,更為復雜性的4姿口 邏輯^皮用于這些端口來處理,例如,每個端口的多個外部i殳備。
            大量不同情形中都需要接口 。這里作為背景例子討論的 一 個情 形是移動應用處理。
            圖1示出移動應用處理器2的示例性應用。應用處理器2包括「 CPU 4和與多個外部設備8接口的多個接口控制器6。接口控制器 包括與硬驅(HDD ) 8a和SDRAM存儲器8b接口的存儲器控制 器6a;與攝像機8c接口的視頻控制器6b;與LCD顯示器8d接口 的顯示器控制器6c;與麥克風8e、揚聲器8f和耳才幾8g接口的音頻 控制器6d;和與鍵盤8h、通用串行總線(USB)設備8i、安全數 字(SD)卡8j、多媒體卡(MMC) 8k,以及通用異步接收器/發送 器(UART) 8i接口的連接控制器6e。接口控制器6通常經總線3 連接到CPU 4。系統還包括功率控制器IO和無線電處理器12。注意所示接口控制器6多少具有示意性,但通常表示某些類型 的專用I/O邏輯或特別配置的端口 。
            傳統上,外部接口是用中斷或利用輪詢實現的。在使用中斷時, 外部外圍設備發送信號告知處理器其有數據準備好輸入給處理器 或向處理器要求數據。在使用輪詢時,處理器不斷檢查設備的狀態 從而確定是否設備準備好沖是供或接受凄t據。
            如圖1所示的應用程序處理器2的一個可能的實施是4吏用專用 集成電路微控制器(ASIC)。 ASIC是硬連線的設備,其可能包括專 用于特定應用以及經優化適于該應用的孩i處理器。對于纟合定的功 能,與其他選擇相比,它們通常更便宜并且能耗更低。然而,它們 設計復雜,必須預i殳計且不能容易地重配置。
            另一種可能是4吏用現場可編程門陣列(FPGA)i殳備。FPGA 是半導體i殳備,其可在制造后現場配置。為了配置FPGA,首先利 用計算機建^^所需的邏輯功能,例如通過繪制示意圖或創建描述功 能的文本文件。FPGA包括經靜態配置的互連線進行通信的查詢表 陣列。計算機模型是用FPGA賣家提供的軟件編譯的,這產生能夠 下載到FPGA查詢表的二進制文件。這允許裝備制造商i殳計FPGA 從而滿足其自身的個性化需要。
            在該例子中,接口控制器6作為FPGA實施。這具有這樣的益 處,即移動電話制造商可購買通用FPGA設備2,然后在當場(即 "現場,,)將其配置成專用于他們所需要應用的。然而,FPGA的缺 點是與ASIC相比更為昂貴,速度更緩慢以及能耗較高。
            在可選的例子中,整個芯片2可以用FPGA實現,或芯片2可 以是具有連接在芯片2和各外圍設備8之間的分離的FPGA芯片的通用目的處理器。然而,這些選4奪可能更為昂貴以及功庫毛更高—— 限制了多數移動電話和其他消費電子設備。
            以ASIC的價格、速度、范圍和能耗水平實現FPGA的可配置 性會是有利的。

            發明內容
            按照本發明的一個方面,提供了一種處理器,其包括第一端 口,該第一端口用于基于第一端口處的第一活動生成第一指示;第 二端口 ,該第二端口用于基于第二端口處的第二活動生成第二指 示;才丸行單元,其被設置為沖丸行多個線程;線程調度器(thread scheduler ),其被連接以接收所述指示以及被設置為調度所述多個線 程用于執行單元基于所述指示而執行,所迷調度包括暫停 (suspending)線程的執行直到接收到相應指示;其中第一活動和 第二活動分別與各相應線程關聯。
            因為每個線程與各端口處的活動相關耳關,以及線程調度器被連 接以暫停該活動的線程等待(pending)指示,則處理器有利地"預 先準備好"以快速響應發生在端口的活動。因此本發明沖是供了在需 要快速響應外部激勵的應用中的顯著改進。另外,在線程被暫停時, 如果仍然要調度其他線程,則線程調度器可開始調度這些線程。
            在要求快速反應時間時,暫停的線程方法對使用中斷是優選 的。使用暫停的線程,線程調度器可準備執行預期關聯活動的線程, 如上面討論的那樣,這意味著處理器做好了反應的準備。相反,使 用中斷,執行單元由來自外部設備的信號中斷,同時執行某些潛在 無關代碼。在中斷情形中,當前程序狀態必須在中斷起作用前被保 存。因此,使用中斷的反應時間非常慢。輪詢的能量效率較低,因 為要求不斷的詢問和應答。
            15線程調度器可設置為將與暫停等待第一事件的第一線程相關的第一線程標識符傳輸到與第一端口關聯的標識符寄存器。線程調度器可設置為將與暫停等待第二事件的第二線程相關的第二線程標識符傳輸到與第二端口關聯的標識符寄存器。在這樣的實施例中,線程調度器適于管理線程的執行,但在其遇到取決于特定活動的線程內指令時,線程調度器可有利地通過將其責任傳給各與其關
            聯的端口而"抽t開(set aside )"線程。這也有助于反應時間。
            線程調度器可設置為在暫停所述第一線程后將連續點矢量(continuation point vector )傳送至與第一端口關l關的矢量寄存器;且連續點矢量可根據第一活動返回給執行單元。連續點矢量標識代碼中某個點,在各活動發生時執行應在該點繼續。這可有利地允許線程額外的責任(responsibility)發送到端口,以及可釋方文不必以等待(pending)指令填充的指令緩沖器。
            另外,使用連續點矢量可允許每個線程處理多個活動(或事件)。因此,第一線考呈可與來自多個端口的活動關^:,每個端口用于生成依賴于該活動的各指示;執行單元可適于傳輸多個連續點矢量的每個至各所述多個端口之一,各連續點矢量是才艮據各活動返回的,且線程調度器可適于暫停第一線程的執行,直到接收各指示中的至少一個。
            一旦暫4亭線程的所有線程標識符傳llr到端口,處理器可以關閉
            (power down )執行單元、線程調度器和時鐘中的至少一個。當從各處理器端口返回至少一個線程標識符時,處理器可以上電(powerup)所述"^U亍單元、線程調度器和時鐘中的至少一個。因此,如果所有線禾呈已經調度以及4要各端口活動交纟合各端口 ,然后處理器可以關閉部分或全部組件直到發生 一個活動。這顯著改善系統的功耗。
            16第一和第二端口中至少一個可包括活動處理邏輯以及可與至
            少一個用于存儲條件的條件寄存器(condition register)關聯,活動
            處理邏輯4皮i殳置為用于監一見端口的活動以及才艮據滿足所述條件的所述活動生成所述指示。執行單元可設置為傳送各條件至每個條件寄存器。有利地,這通過允許線程調度器為端口提供條件改善了系統的通用性,以使端口可處理更特殊的和多樣的條件類型。
            端口事件啟用標記可與第一端口關耳關,且線程調度器可適于通過使端口事件啟用標記有效(assert )使得所述第一活動觸發所述調度,以及通過4吏端口事件啟用標記無效(de-assert)而禁止第一活動觸發所述調度。線程事件啟用標記可與第一線程關耳關;而線程調度器可適于通過使線程事件啟用標記有效,根據第一活動使第一線程能夠被調度,以及通過使線程事件啟用標記無效,根據第一活動禁止調度第一線程。線程調度器可適于暫停第一線程的執行,該第一線程等待來自端口的第三活動的第三指示,同時端口事件啟用標記和線程事件啟用標記中至少一個凈皮無效。
            端口事件啟用標記和線禾呈事件啟用標記中至少一個可纟皮第一活動的生成自動無效。
            多個各自端口事件啟用標記可與多個與第 一線程關聯的端口中的每個關聯;且線程調度器可設置為使線程啟用標記有效,以及隨后4吏所述多個端口事件啟用標記有歲文。
            處理器可包括由總線連接到執行單元的程序存儲器,其中線程
            調度器通過至少一個與所述總線分離的連接而連接以^妄收來自第一和第二端口中每個端口的所述指示。這消除了端口和線程調度器
            間的通信中總線仲裁的需求,因此進一步改善處理器的反應時間。處理器可包括多個線程寄存器組,每組線程寄存器都被分配來存儲關于所述多個線程的各個線程的信息。處理器可包括在至少兩組所述線程寄存器間的至少一個通道,且線程調度器可適于根據在所述通道上發生的活動調度線程。
            處理器可在芯片上實施。所述第一和第二端口中的至少一個可以是與所述芯片上另一個處理器通信的內部端口。所述第一和第二端口中的至少一個可以是與所述芯片外部設備通信的外部端口。至
            少一個外部端口可以是用于檢測出現在芯片物理邊界處引腳(pin )上的信號的上升沿或下降沿的引腳端口 。至少 一個外部端口可以是用于處理端口處一一、或多/卜1立的瞬時邏4專電平(logic-level )的凝:才居端口 。
            執行單元可適于識別和執行用于暫停和運行線程的專用指令。
            線程調度器還可以適于基于中斷對線程進行調度。基于中斷祐:
            調度的線程是第一線程,當暫停時該中斷將第一線程中斷。
            如果關聯活動發生在耳又決于該活動的線程內的指令4丸行時或執行之前,則線程調度器可適于調度線程而無需暫停。
            根據本發明的進一步方面,提供了調度多個線程的方法,用于
            具有第一和第二端口的處理器中的執行(execution),該方法包括將第一端口的第一活動及第二端口的第二活動與各相應線程相關聯;4艮據第一活動在第一端口生成第一指示;才艮據第二活動在第二端口生成第二指示;基于所述指示調度線程用于執行,所述調度包括暫停線程的執行直到接收各指示;以及根據所述調度通過執行線禾呈而運4亍線禾呈。根據本發明的另一個方面,提供了端口,用于調度多個線程以
            便執行,該端口包括活動處理邏輯電路,設置為根據端口處的活動生成指示,寄存器,存儲用于識別與所述活動關聯的線程的信息,以及寄存器,用于存儲一個條件;其中所述活動處理邏輯電路適于在所述活動滿足所述條件時傳輸芯片上第 一指示。
            根據本發明的另一個方面,提供了線程調度器,其用于調度具有第一端口和第二端口的處理器內多個線^£以用于4丸4亍,其中該線程調度器適于接收第一端口根據第一端口的第一活動生成的第一指示;該線程調度器適于接收第二端口根據第二端口的第二活動生成的第二指示;且線程調度器適于基于所述指示調度所述多個線程用于通過該單元才丸4于來執行,所述調度包括暫4亭線程的#1行直到*接收各指示;其中第一活動和第二活動中的每一個都與各相應線程關聯。
            按照本發明的另 一個方面,提供了具有移動應用程序處理器的移動終端,至少一個外圍設備,和連4妾在移動應用程序處理器與外圍設備之間的接口處理器,接口處理器包括第一端口,根據第一端口處的第一活動用于生成第一指示;第二端口,沖M居第二端口處的第二活動生成第二指示;執行單元,設置為執行多個線程;和線程調度器,被連接以接收所述指示以及設置為根據所述指示調度所述多個線禾呈用于該沖丸4亍單元才丸4亍,所述調度包括暫停線禾呈的沖丸4亍直到接收各指示;其中第一活動和第二活動中的每一個都與各相應線程關聯。
            按照本發明的另一個方面,提供了互連處理器陣列,至少一個所述處理器包括用于^^艮據第一端口處的第一活動生成第一指示的第一端口;用于才艮據第二端口處的第二活動生成第二指示的第二端
            口;設置為執行多個線程的執行單元;以及線程調度器,被連接以接收所述指示以及被設置為基于所述指示來調度所述多個線程用
            19于該執行單元執行;所述調度包括暫停線程的執行直到接收到各個指示,其中第一活動和第二活動每個都與各相應線程關聯;以及所
            述第一和第二端口中的至少一個連4妄陣列中至少一個處理器和另一個處理器。
            為了更好地理解本發明以及示出其如何實施,作為例子要參考相應附圖。


            圖1示出本領域已知的應用FPGAi殳備的例子;圖2示出接口處理器的應用例子;圖2a示出沖妾口處理器的另一個應用例子;圖3是接口處理器架構的示意表示;圖4是端口的示意表示;圖5是線程寄存器組的示意表示;圖6是示出線程調度器操作的流程圖;圖7是線程寄存器組間通道的示意圖;以及圖7A是通道末端(channel end )的示意圖。
            具體實施例方式
            圖2示出移動電話中接口處理器的示例性應用。移動應用處理器2需要與多個外圍設備8通信。如圖1所示,應用處理器2包括總線3, CPU 4,以及與硬驅(HDD) 8a和SDRAM存儲器8b接口的存儲器控制器6a,以及功率控制器IO和無線電處理器12。
            然而,取代專用控制器6,圖2的裝置允許CPU4經通用端口7與外部通信。在該例子中,提供了通用端口 7a和7b用于與攝像機8c和LCD顯示器8d接口 ;提供了通用端口 7c用于與麥克風8e、揚聲器8f和耳機8g接口;提供了通用端口 7d用于與鍵盤8h、通用串行總線(USB)設備8i、安全數字(SD)卡8j、多媒體卡(MMC)8k,以及通用異步接收器/發射器(UART)設備81接口。
            在圖2中,4妄口處J里器14a、 14b和14c i殳置在相關端口 7的輸出處,其中第 一接口處理器14a連接在圖像設備8c - 8d和通用端口 7a- 7b之間,第二4妄口處理器14b連接在4見頻i殳備8e - 8g間,以及第三接口處理器14c連接在通用端口 7d和不同連接設備8h-8m間。端口 7僅需要是一般用途端口,因為專用顯示器,音頻和連接功能是由接口處理器14a- 14c以后面詳述的方式實現的。端口7不需要4吏用FPGA邏輯電^各,因為接口處理器14^是供靈活性和可配置性,否則要由FPGA提供。接口處理器14a具有連接到端口 7a和7b的端口 22a和22b,連4妄到外部i殳備8c和8g的端口 22c, 22d,22e和22f。接口處理器14b和14c具有類似端口,圖2中沒有示出。
            接口處理器通常涉及執行用來經4矣口發送lt據的特定協議,再格式化數據包括將數據在并行格式(parallel format)和串行格式(serial format)間進行轉換,以及可能的更高水平功能,如對其編石馬、壓縮或力口密。
            4妻口處理器的另一個應用是在圖2a中所示的多處理器芯片202中作為核(tile)。這樣的芯片202 4吏用高性能互連204,該高性能互連204支持芯片202上處理器14和芯片間鏈路206之間的通信
            21以便系統可容易地由多個芯片構造。每個處理器14經端口 22連接到其芯片間《連3各206和高性能互連線204。
            下面更充分討論的接口處理器的重要特征是其管理端口 22處的活動的能力。每個接口處理器包括CPU、存儲器和通信器。為了允許CPU與端口間的直接連接和響應性連接,每個處理器具有用于才丸4亍大量同時禾呈序纟戈禾呈(concurrent program threads )的石更Y牛支持,每個都包括指令序列,以及至少其中 一些專門負責處理端口的活動。如下面更詳細的討論,硬件支持包括
            -用于每個線程的寄存器組,
            -動態選擇執行哪個線程的線程調度器,
            -用于輸入和輸出的端口組(端口 22 ),
            每個處理器上4吏用一,卜組線程可用來允許通信或輸入/輸出以與處理器處理的其他等祠:任務一起進4亍,以及通過當其他線程暫停等待與遠程接口處理器間通信時允許某些線程繼續而允許互連中等待隱藏(latency hiding )。
            圖3示意地示出根據本發明一個實施例的接口處理器14的示例性架構。處理器14包括在線程調度器18控制下執行指令線程的^Vf亍單元16。處理器14還包括^f呆存程序^C碼和其他^t據的隨4幾存取存儲器(RAM) 24,以及用于存儲諸如起動代碼(boot code)的永久信息的只讀存儲器(ROM)(未示出)。
            線程調度器18動態選擇哪個線程應由執行單元16執行。傳統上,線程調度器的功能將僅從程序存儲器中調度線程,以便保持處理器一皮完全占用。然而,按照本發明,線程調度器18的調度也涉及端口 22處的活動。這方面應該注意的是,線程調度器可直接耦 合到端口 22以便在線程由于端口處的輸入或輸出活動而變得可運 行時最小化延遲。
            線程調度器18考慮的m個線程中的每個線程由線程調度器18 存耳又的寄存器庫(bank) 20中各組線程寄存器20卜.20m表示。還 被提供了指令緩沖器(INSTR) 19用于在將從存儲器24取出的指 令傳入纟丸行單元16之前臨時4呆存該指令。這些寄存器和緩沖器的 細節在下面討i侖。
            m個線程中,線程調度器18保持一組n個可運行線程,該組 線程纟皮稱為"運4于",線程調度器/人該組中優選地以循環方式 (round-robin manner )依次才是耳又指令。當線程不能繼續時,則通過 將其從運行組中移除而4吏其暫停。其原因可以是例如,因為線程正 等待一個或多個以下類型的活動
            -在線程能夠運^f于之前其寄存器^皮初始化,
            -線禾呈嘗試,人未就緒或沒有可用凄t據的端口輸入,
            -線程嘗試對未就緒或沒有用于凄t據的空間的端口輸出,
            -線程執行了引起線程等待一個或多個事件的指令,該事件可 以是端口準備好llT入時生成的。
            注意這里所用的術語"事件"是指特殊類型的操作,其與基本 輸入-輸出操作稍有不同。下面結合圖4和5討i侖所述的區別。
            有利地,為了有助于快速反應時間,在線程調度器18和執行 單元16之間提供直接硬線連接28,以允許線程調度器18控制執行 單元16應耳又出并寺丸4亍哪個或哪些線程。直^妄石更線^各徑30a, 30b,
            2330c也才是供在線程調度器18和每個端口 22之間;以及在線禾呈調度 器18和每個寄存器20之間提供直接硬線路徑29卜.29m。這些直接 路徑優選地提供控制路徑,其允許線程調度器將各線程與一個或多 個端口 22相關聯,以及特別地當某些活動發生時從端口返回就緒 指示,這樣允許處理器快速響應發生在端口 22的活動或激勵。線 程調度器涉及端口的操作將在下面結合圖4和6討論。
            執行單元16還通過直接連接27和31訪問每個端口 22a - 22c 以及每個寄存器20廣20m,因此在芯處理器、寄存器、和外部環境 間提供了直接鏈接。優選地,這些直接路徑提供進一步的控制路徑 以允許執行單元將條件發送給端口。這將在下面結合圖4進一步詳 細討論。直接路徑27和31也可允許數據在線程調度器20和端口 22間直接輸入和輸出,因此允許線程直4妄與外部環境通信。例如, 數據可直接從外部設備寫入到線程的搡作數寄存器之一 ,而非寫入 到存儲器24以及隨后從其中取出。相反,在一次運算之后,來自 才栗作數寄存器的數據可由沖丸行單元16拾取并直接發送出端口 22。 這顯著改善了反應時間。
            值得注意的是"直接連接"或"直接路徑"表示與執行單元和 程序存儲器24之間的連接相分離的連接。因此,例如線程調度器 18和執行單元16可存取從端口 22輸入的數據,而不必將數據存儲 在存儲器24中以及隨后從其中取出。特別地,如果4丸行單元16和 存儲器24之間是通過總線3連接的,則"直接"連接或路徑意味 著與總線相分離的連4婁或^"徑。因此,端口 22、寄存器20、線^呈 調度器18和執行單元16間的各種通信都可發生而無需總線仲裁, 改善反應時間。端口 22還可提供與總線13的額外連4妄(未示出)。
            本申請中所用的術語"端口"可指"針式端口 (pin port)"或 "數據端口"。針式端口負責檢測單獨的邏輯變換,即發生在處理 器芯片物理邊界處引腳上的信號的上升沿和下降沿。數據端口是"更高層次(higher level )",因為它們可處理一個或多個^f立,通常 累加在I/0緩沖器中,以及通常構成凄t據的一部分,如字。不用枱r 測上升沿和下降沿,數據端口處理特定瞬間的一個或多個位的狀態 或邏輯電平。數據端口可以是開/關芯片(on/offchip),或可以是對 嵌在同一芯片上的另一處理器的端口。注意"針式端口"和"數據 端口"實際上可指同一實際端口的不同才莫式。
            圖4示意地示出按照本發明優選實施例的端口 22。端口 22包 括I/O緩沖器32用于發送來自或者送往處理器14的數據。此外, 每個端口 22包括活動操縱邏輯36用于監一見發生在端口的活動以及 利用至少一個就緒數位或標記37將特定活動的發生信號化。就緒 標記37優選地通過直接路徑30發信號告知線程調度器。端口可檢 測的潛在活動包括
            -凄t據已經^T入到端口
            -某些特定凄t據已經輸入到端口 ,以及/或
            -端口已經可用于輸出。
            is
            為了有助于對這些活動的檢測,端口 22被提供了一組寄存 38。這些包括線程標識符(TID)寄存器用于存儲相關線程的標識 (identification),控制(CTRL)寄存器用于存儲一個或多個條件, 連續點矢量(VECTOR )寄存器用于存儲程序中執行被暫停的位置,
            由線程調度器18通過直接3各徑30 (圖3中直4妄路徑是30a, 30b, 30c)寫入到寄存器38中,以及值VECTOR、 CTR和DATA是由 執行單元16通過直接路徑31寫入的。 一旦檢測到所需活動,TID 返回到線程調度器18,以便識別關聯的線程。活動邏輯還包括下面 進一步詳細討論的啟用標記39。注意,雖然圖4中所示寄存器38包含在端口 22內,它們實際 上可位于處理器14中任何其他地方并僅與端口 22關聯。
            圖5示出用來表示線程的示例性線程寄存器庫20。寄存器庫 20包括對應于當前由線程調度器18所考慮的各線程Ti到Tm的多 個寄存器組。在該優選例子中,每個線程的狀態由18個寄存器表 示2個控制寄存器,4個存取寄存器和12個操作數寄存器。這些 寄存器分別如下
            控制寄存器
            -PC是程序計數器
            -SR是狀態寄存器 存取寄存器
            - GP是全局公用指針(global pool pointer ) -DP是數據指針
            - SP是棧指針
            -LR是鏈接寄存器 才喿作凄t寄存器OPl…OP12
            控制寄存器存儲關于線程狀態以及用于控制線程執行的信息。 特別地,線程接受事件或中斷的能力由保存在線程狀態寄存器SR 中的信息控制。存取寄存器包括用于進程的局部變量的棧指針,通 常用于進程間共享數據的數據指針,以及用于存取大常數和進程入
            26口點 (procedure entry points ) 的常數公用指針 (constant pool pointer )。操作數寄存器OPl.. .OP12由指令使用,該指令執行算術 和邏輯纟喿作,存:f又數據結構,以及調用子程序。
            還提供了大量指令緩沖器(INSTR) 19用于臨時存儲線程實際 指令。每個指令緩沖器優選為64位長,且每個指令優選為16位長, 允許每個緩沖器存儲4個指令。指令是在線程調度器18的控制下 從程序存儲器24取出的并被臨時存放在指令緩沖器19中。
            執行單元可存取每個寄存器20和緩沖器19。進一步,線程調 度器18至少可為每個線程存取狀態寄存器SR。
            如上所述,這里所用的術語"事件"指特定類型的操作,或對 應于特定類型操作的活動。基于操作的事件與基本輸入-輸出操作 稍有不同,且以如下方式工作。事件首先是通過從執行單元16將 連續點矢量和,人線程調度器18將線程標識符轉移到與端口 22關聯 的VECTOR和TID寄存器38而為線程設定的,優選地經直接路徑 31和30。關聯的條件和條件數據還可寫入端口 22的CTRL和DATA 寄存器38中。這樣在端口設定事件,但不必啟用。為了使端口生 成事件指示,還必須(優選地由線程調度器18通過直接路徑30) -使端口的啟用標記39有效。此外,為了4吏線^f呈自身4妄受事件,線 程的各狀態寄存器SR中的線程事件啟用(EE)標記必須祐:i殳定為 事件啟用的。 一旦事件這樣i殳定并啟用,線程就可以-使用基于事件 (event-based)的等待指令暫停等待事件,該基于事件的等待指令 作用于線程調度器18。此時,當前等待指令可從相關指令緩沖器 19中丟棄。當事件發生,如某些數據輸入到端口時,通過從端口 22返回到線程調度器18和執行單元16的線程標識符和連續點矢 量,信號告知該發生,允許連續點矢量處的指令從程序存儲器24 取出以及存入指令緩沖器19,以及執行在代碼中適當位置點繼續。當事件發生時,各狀態寄存器SR中線程EE標記可設定為事 件禁止以防止線程在事件發生后立即對事件做出反應。作為事件發 生時線程執行指令的結果,啟用標記39可纟皮無效。
            在準備等待來自一個或多個端口的事件中設置多個端口時,可 以^f吏啟用標記39有效。線程EE標記還可在啟用 一組端口啟用標記 前^殳定為事件啟用(event-enable)的,以及在該情形中就緒的即將 啟用的第一端口將生成事件,該事件通過在連續點矢量立即取出以 及執行指令使得當前指令被丟棄以及繼續執行。
            端口啟用標記39和狀態寄存器EE標記的優點在于事件的啟 用和禁止是與事件設立和通過等待指令暫停線程分離的,允許不同 輸入和輸出條件準備好用于特定線程和/或為各種不同線程開啟和 關閉(toggled on and off )。例如,事件可以被留作在端口 22建立, 即使事件被禁止。因此,事件可以由線程重復使用,因為雖然事件 已經發生過一次,但是線程標識符,連續點矢量和條件仍然存儲在 端口 22的TID, VECTOR, CTRL和DATA寄存器38中。因此, 如果線程需要重復使用事件,端口寄存器38不需要重復寫入,相 反,端口的啟用標記39能夠簡單地被再次有效,以及/或者線程的 狀態寄存器SR中EE標記可再次設置為事件啟用的。另一個等待 指令將暫停等待同 一事件再次發生的線程。
            而且,使用連續點矢量允許每個線程啟用多個事件。也就是說, 纟合定的線程可通過將連續點矢量發送到一個端口 22a而在該端口建 立一個事件,通過將不同的連續點矢量發送到另一個端口 22b而在 該端口建立另一個事件,如此類推。線考呈也可通過分別為各端口^f吏 不同的啟用標記39有效或者無效來逐個啟用或禁止各個事件。等 待指令將使線程暫停等待任何啟用的事件。與事件相比,使用基本I/0操作,線程調度器18不傳輸連續點
            矢量給VECTOR寄存器,且不使用端口的啟用標記39或狀態寄存 器SR中的EE標記。相反,等待指令僅留在指令緩沖器19中,且 如果需要,才艮據就緒標記37的指示,^又將沖丸^f亍中止以等待輸入或 端口輸出的可用性。在實施例中,僅要求TID寄存器按照基本I/O 進行調度。基本I/O可以使用或不使用CTRL和DATA寄存器中的
            條件。如果不使用這樣的條件,端口一準備好i/o就會完成。
            還須注意的是, 一旦在事件之后恢復執行線程,則當然隨后可 執行基本I/0操作。相反, 一旦線程在基本I/O后繼續,則其隨后 可包括事件才乘作。4壬何這類事件和I/O都可包4舌在線程中。例如, 基本I/O操作可在兩個基于事件的等待操作間交叉進行,同時事件 #皮禁止(即,端口啟用標記39和/或狀態寄存器的EE標記一皮無效), 但事件矢量和條件仍然留作在寄存器38中設置。也就是說,事件 可在完成第一個基于事件的等待操作后禁止,基本1/0隨后用同一 端口執行,以及然后同一事件被再次啟用用于在第二個基于事件的
            等待才喿作。如上所述,基本i/o操作中止和解除中止該線程,但不
            影響端口的啟用標記39或狀態寄存器中的EE標記,也不發送控制 到事件矢量。
            下面參考圖6的流程圖i兌明線程調度器和兩個示例性端口的操: 作。在步驟100, ^U于單元16在線程調度器18的指導下開始執4亍 第一和第二線程。在步驟102,線程調度器遇到第一線程內以事件 為條件的部分代碼,例如接收端口 22a處的某些特殊信號。在步驟 104,線程調度器發送第一線程的線程標識符(TID)和連續點矢量 (VECTOR)到端口 22a,該連續點矢量指定一旦4企測到事件則線 程的執行應該在程序中的哪個點繼續,以及任何需要的條件控制信 息(CTRL)和關聯的凄t據(DATA)。例如,lt據可以是指令預期 在端口接收的信號的值。在步驟104,線程調度器還可設置第一端口的啟用標記39以及將第 一線程的狀態寄存器SR設置為事件啟用的。
            在步驟106,端口 22a從線程調度器18接收該信息。在步驟 108,線程調度器18暫停第一線程的執行。在步驟110,端口 22a 開始監^L端口處的活動。
            在步艱《112,線程調度器18確定第二線程仍未完成 (outstanding)且執行單元16繼續在線程調度器18的指導下執行 第二線程。在步驟114,線程調度器18遇到以事件為條件的部分代 碼。在步驟l16,線程調度器18發送線程標識符和連續點矢量以及 任何其他要求的條件信息至端口 22b。在步艱《116,線程調度器還 可設置第二端口的啟用標記39以及將第二線程的第二狀態寄存器 設置為事件啟用的。在步驟118,端口 22b"f妄收該信息。在步驟120, 線程調度器暫停第二線程的執行。在步驟122,端口22b開始監視 發生在端口的活動。
            在步驟124,線程調度器確定當前不再有需要調度的未完成的 線程,以及系統關閉除端口 22a和22b以外的所有組件。在步驟128, 端口 22a檢測到相關事件,例如收到存儲在DATA寄存器中的信號, 以及因此返回線程標識符(TID)以及續點矢量(VECTOR)(以及 將第一線程的狀態寄存器設置為事件禁止)。在步驟126,線程調度 器18接收返回的標識符。現在執行可以繼續,那么在步驟130,系 統再次上電。在步驟134,執行單元16在線程調度器18的指導下 完成第一線禾呈的扭^亍。在步-驟138,端口 22b為第二線禾呈4企測相關 事件以及返回其線程標識符以及連續點矢量(以及將第二線程的狀 態寄存器設置為事件禁止)。在步驟136,線程調度器18接收返回 的信息,在步-驟138, 4丸4于單元16在線程調度器18的控制下完成 第二線程的執行。注意在步驟134和136間可以有額外的斷電步驟。
            30如圖7所示,本發明的原理也可擴展到線程間的通信,或更精
            確地,線程寄存器組20 (其存儲表示線程的信息)間的通信。為了 說明的目的,僅4個線程寄存器組20!到204在圖7中示出,每個 存儲各線程T!到T4的信息。每個線程寄存器組都通過互連系統40 連才妻到各其他組,互連系統用于建立至少一個通道用于直4妾在至少 兩個線程寄存器組20間發送數據。通道優選地用來與操作數寄存 器OP交換數據,但原則上用來與(諸如狀態寄存器SR的)其他 類型的寄存器交換信息。線程調度器18可基于發生在通道上的活 動以如上述的與端口相關的類似方式來調度線禾呈。
            如圖7A所示,每個通道末端42像一對端口 ,具有輸入緩沖器 44和輸出緩沖器46。類似于端口 22,每個通道輸入緩沖器44和輸 出緩沖器46可具有活動處理邏輯36,用于監一見發生在通道上的活動 以及通過至少一個就緒標記37,來發信號告知某些活動的發生。通 道末端可4企測的潛在活動包括數據已經輸入到通道,或通道已經 可用于輸出。如果在通道太滿而不能提取數據時執行輸出指令,則 執行指令的線程被中止,以及在通道中有足夠空間用于指令成功完 成時再開始。類似地,當指令被執行且沒有足夠的數據可用時,線 程被中止以及當有足夠數據可用時再開始。
            再如端口 22 —樣,為了有助于對這樣的活動的4企測,每個通 道末端與寄存器38,關聯。這些寄存器包括用于存儲相關線程標識 的線程標識符(TID)寄存器,以及用于存儲根據事件的發生執行 應該在程序的哪個位置繼續的連續點矢量(VECTOR)寄存器。這 些TID和VECTOR寄存器可由線程調度器18以及執行單元16使 用從而以與端口 22相同的方式調度線程。VECTOR寄存器允許通 道生成事件以及中斷。通道末端還具有啟用標記39,用于啟用通道 以生成事件。在實施例中,通道末端42可以不具有CTRL和DATA 寄存器。送到外部環境。也就是i兌,纟丸4于單元16可經通道末端42^合耳又寄存 器20的內容并經端口 22將其直接傳出;相反,執行單元16還可 以從端口 22接收輸入以及經通道末端42將其直接發送給寄存器 20。因此,如果4安照本發明的兩個或多個接口處理器連接到一起, 例如圖2A中所示,通道也可在這些處理器間建立。在處理器間系 統內,每個處理器可以通過"i午多雙向物理鏈3各204與系統互連相4妄 口,這允許與其他處理器同時連接。
            這里使用的包括端口、通道以及活動的其他源的總術語是"資源"。
            *接口處理器可支持幾種編程方法,這是由于其基于線程的結 構。4妻口處理器可以作為#1行標準輸入和輸出的單個常*見處理器, 或可編程為數百個通信組件并行陣列的一部分。本發明提供了支持 這些可選做法的指令集合。指令集合包括支持初始化、終止、開始 和停止線程以及提供輸入/輸出通信的特殊指令。輸入和輸出指令允 許與外部設備非常快的通信。它們支持高速,低時延輸入和輸出以 及高級協同編程技術。這里它們用于處理端口活動,這將在下面更 充分地討論,其中說明了用于實施本發明的示例指令。
            首先為使用GETR指令的線程預留資源,GETR指令指定了所 要求的資源類型,并可用FREER指令再次釋放。
            端口可用于輸入或輸出模式。在輸入模式中,條件可用來過濾 發送到線程的lt據。如下面所述,在婆t據可用時,端口可用來生成 事件或中斷。這允許線程監纟見幾個端口 ,僅為就緒的端口服務。然 后一旦端口就緒,|#入和輸出指令,IN和OUT可用來發送H據進 出端口 。在該情形中,IN指令輸入以及零擴展(zero-extends ) n位 端口中n個最不重要的位,OUT指令輸出該n個最不重要的位。兩個另外的指令,INSHR和OUTSHR優4匕f史據傳l俞。INSHR 指令將寄存器內容向右移n位,用從n位端口輸入的數據填補最左 邊n位。OUTSHR指令輸出數據的n個最不重要的位至n位端口以 及將寄存器內容向右移n位。
            OUTSHR port, s port <] s[bits 0 for width(port)]; 乂人其豐lr出
            s — s 〉〉 width(port) 端口和移位
            INSHR port, s s — s 〉> width(d ); 移位和輸入
            port > s[bits (bitsperword — width(d)) for width(d)] 來自端口
            其中表示輸入,表示輸出。
            端口在可使用前必須被配置。端口是用SETC指令配置的, SETC指令被用來定義端口的幾種獨立i殳置。每種i殳置都具有缺省 模式,且僅在需要不同模式時要配置。
            SETC port, modeport[ctrl] <~ mode i殳置端口4空制
            下面說明SETC模式設置的效果。每種設置的首項是缺省模式。
            模式 效果
            OFF 端口不有歲丈,4十肚卩高阻4元
            ON 有效
            IN 端口是輸入
            OUT 端口是豐lr出U旦llT入返回當前4十腳1直(pin value))EVENT 端口將引起事件
            INTERRUPT 端口將喚醒(raise )中斷
            DRIVE
            PUIXUP UNCOND EQUAL NE
            針腳被高電平和低電平驅動
            PULLDOWN 4十肚卩下^立電平用于(H立,否則為高阻4元
            針腳上^立電平為用于1位,否則為高阻抗
            端口始終就緒,輸入立即完成
            當端口值等于其DATA值時端口就緒
            當端口^f直不同于其DATA ^直時端口 ;t尤緒
            TRANSITION 當端口 ^f直向其DATA ^直 夂變時端口章尤緒
            GR
            當端口 ^直大于其DATA ^直時端口就緒
            當端口值小于其DATA值時端口就緒
            DRIVE, PULLDOWN和PULLUP才莫式<又在端口方向為OUT 時相關。TRANSITION條件^又對1位端口相關,以及GR和LS條 件l又^j" 1位以上的端口相關。
            每個端口具有就緒位37,其用來控制通過端口的ft據流,以及
            定義端口是否能夠完成llr入或llr出指令。才艮才居端口配置以不同方式
            設置就緒位。在SETC, SETD或SETV中任意指令被執行時,就 緒位被清除。輸入才莫式中端口可配置為扭J亍條件輸入。條件過濾輸入凄丈據, 以便僅使符合條件的數據返回給程序。當條件被設定時,IN和
            INSHR指令將僅在端口就緒時完成。如上所述,在未就緒端口上執 行輸入指令將中止線程。在就緒時,端口設定其就緒位,這通過信 號告知線程調度器。線程繼續以及再才丸行輸入指令。這次端口是就 緒的,數據被返回以及就緒4立37 ^皮清除。
            一旦設定端口就緒位,滿足條件的H據佳J皮捕獲,因此軟件獲 得滿足條件的值,即使端口上的值隨后改變。當IN或INSHR指令 被執行以及就緒位被設定時,則返回數據以及清除就緒位。如果就 緒位沒有一皮i殳定,則線程^皮中止直到就緒位^皮i殳定。如果條件^皮i殳 定,則數據與條件比較,以及就緒位僅在滿足條件時設定。
            在執行OUT或OUTSHR指令時,如果就緒位被清除,則端口 提取數據以及就緒位被設定。如果就緒位被設定,則線程中止直到 就緒位一皮端口清除。
            為了在兩個線程間通信,需要分配兩個通道末端,每個線程一 個。這是用GETRCHAN指令執行的。兩個線程可4吏用資源標識符 通過使用輸出和輸入指令來傳輸數據字
            OUT d <1 s
            IN d <] s
            如果輸出指令是在通道太滿而不能提取數據時執行的,則執行 指令的線程被中止。當通道中有足夠空間用于成功完成指令時,繼 續執行指令。類似地,當輸入指令被執行以及有足夠的可用數據時, 線程暫停以及當有足夠數據可用時重新開始寺丸4亍。當不再需要時, 可用FREE CHAN指令釋方文通道。否則通道可用于其他信息。
            35事件和中斷允許資源(端口和通道)自動將控制發送到預定的
            事件控制器(handler )。線程接受事件或中斷的能力是由保存在線 程狀態寄存器SR中的信息來控制的(參看圖4),以及可明確地用 TSE和TSD指令控制。該信息包凌舌事件啟用標記(EE)和中斷啟 用標記(IE)。
            TSE s SR <~ SR v s 線禾呈一犬態啟用
            TSD s SR — SR a , s 線禾呈習犬態禁止
            這些指令的操作數應是以下之一
            EE 啟用或禁止事4牛
            IE 啟用或禁止中斷
            事件是在其一皮建立的同一范圍內^皮處理。因此,對于所有線程 的狀態都有效的事件,允許線程對事件快速反應。線程可以使用引 起事件同時留下某些或所有事件信息不變的端口扭^亍輸入和ilr出 操作。這允許線程完成處理事件并立即等待另一個類似事件。
            事件控制器的程序位置必須在用SETV指令啟用事件前設定。 端口具有確定何時發生事件的條件,這些是用SETC和SETD指令
            設定的。通道只要含足夠的數據或具有接受要輸出數據的空間就被 一見為就緒。
            可以用事件啟用無條件(EEU)指令來啟用特定端口或通道的 事件生成,以及使用事件禁止無條件(EDU)指令將其禁止。如果 事件條件操作數為真,則事件啟用真(EET)指令啟用事件,否則 禁止事件;相反如果事件條件操作數為假,則事件啟用假(EEF) 指令啟用事件,否則禁止事件。這些指令被用來優化受保護輸入(guarded i叩uts )的沖丸行。下面是配置端口上事件的某些示例指令 格式,但可以理解同樣的指令可針對通道使用。
            SETV port,v port[vector]仨v i殳定事件矢量
            SETD port, d port[data] <~ d 設定事件數據
            SETC port,c port[ctrl] <~ c i殳定事件4空制
            EET port, b port[enable]— b; port[ tid] — thread 事4牛啟用真
            EEF port, b port[enable]<~ ,b; port[tid]仨thread 事4牛啟用,支
            EDU portport[enable]<~ false; port[ tid] <~ thread 事4牛禁止
            EEU portport[enable]<~ true; port[ tid] — thread 事4牛啟用
            已經啟用 一個或多個資源上的事〗牛后,線禾呈可4吏用WAITEU指 令等待至少一個事件。這可導致事件立即發生,且控制被發送到事
            件控制器,該事件控制器由相應事件矢量指定,且事件是通過清除 EE(事件啟用)標記禁止的。可選地,線程可暫停,直到事件發生_ 一 在該情形中,EE標記將在事件發生時被清除,以及線程繼續執行。
            WAITET b if b then SR[EE] — true WAITEF b if " b then SR[EE] <~ true WAITEU SR[EE] <~ true CLRE SR[EE] <~ false;
            對所有端口
            如果真則事件等待 如果^f叚則事件等等
            事件等待 禁止所有事件
            對線程if port[tid] = thread then port[enable] <~ false
            為了優化重復等待一個或多個事件直到條件發生的常見情形, 提供了事件等待指令的條件形式。WAITET指令僅在其條件操作數 為真時等待,且WAITEF僅在其條件操作數為假時等待。
            線程啟用的所有事件可用單個CLRE指令禁止。這會禁止具有 由線程所啟用的事件的所有端口中生成事件。CLRE指令也清除線 程狀態寄存器中的事件啟用狀態。
            為了優化線禾呈對高優先級資源的響應性,在隨后開始啟用端口 和/或通道以及〗吏用 一個事件等待指令前,TSE EE指令可用來首先 啟用線-呈上事件。這4羊,處理器可4安照優先級順序掃描資源。這可 以-使事4牛在一皮啟用時立即^皮處理。
            與事件相比,中斷不是在當前范圍內處理的,因此當前PC和 SR (和潛在的某些或所有其他寄存器)必須在中斷控制器^l行前被 j呆存。 一旦資源r生成中斷,自動發生以下動作
            SAVEPC <~ PC;
            SAVESR <~ SR;
            SR[EE] <~ false;
            SR岡<~ false;
            PC <~ r[vector]
            在控制器完成時,中斷的線程的執行可由RFINT指令執行。 RFINT PC <~ SAVEPC; 乂人中斷返回SR —SAVESR
            當線程被暫停以等待事件時, 一個中斷可中斷線程。
            下面的例子示出了指令是如何被線程用來執行輸入,輸出和邏 輯才乘作的。在例子中,^使用下面的指令
            LDFI:加載指令地址到寄存器中
            LDI:加載常數值到寄存器中
            EQI:如果寄存器值等于常數,則產生布爾(Boolean)(真)

            OR:產生兩個寄存器值的邏輯或(OR) ADD:將兩個寄存器值相力口 ADDI:將常數加到寄存器值 SHL:向左移位寄存器內容
            BBF:如果布爾值為々i,則跳轉到程序中另一個點 OUT:輸出數據
            下面示出從引腳串行輸入8位字節的示例代碼。當在第二端口 從外部時鐘接收的信號從O變為1 (表示應提取數據)時,數據的 每個位從第一端口輸入。在高級語言中,該才喿作看起來l象這樣
            PROC inbyte(clock, data)
            39VAR byte;
            { FOR n = 0 FOR 8
            WHEN clock TO 1 DO { data bit ; byte = (byte《1) +
            RETURN byte
            下面示出該過程的指令級程序。
            SETCclock, TRANSITION
            SETD clock, 1
            LDI byte, 0
            LDI count, 0
            loop:
            IN clock, c
            IN data, bit
            SHL byte, byte, data
            ADD byte, byte, bit
            ADDIcount, count, 1
            EQI go, count, 8BBF go, Loop
            通過將每個代碼序列分配給其自身線程,可以同時執行兩個或 多個這類^(戈碼序列。
            下面示出示例代碼,使用部分上述指令才丸行NAND類型的進 禾呈,該類型的進禾呈每當兩個l敘入x和y中的一個改變習犬態時醒來 (wake up )。高級代碼是
            PROC醒d(x, y, z) IS
            WHILE TRUE
            { WHEN x TO notx DO { notx := NOT notx; z ! (notx OR noty) }
            I WHEN y TO noty DO { noty := NOT noty; z ! (notx OR noty) }
            在低級代碼中,該進程包括分別用矢量"xv"和"yv"初始化 兩個端口 x和y的單個線禾呈,并啟用這些端口以生成事件。相應指 令纟及禾呈序4口下
            nand:
            LDI notx, 1
            EDI noty, 1
            SETC x, TRANSITIONSETD x, notx
            SETC y, TRANSITION
            SETD y, noty
            LDFI temp, xv
            SETV temp, x
            LDFI temp, yv
            SETV temp, y
            EEU x
            EEU y
            WAIT
            xv:
            EQI notx, notx, 0
            SETDx, notx
            OR temp, notx, noty OUT z, temp
            WAITyv:
            EQI noty, noty, 0
            SETDy, noty OR temp, notx, noty OUT z, temp
            WAIT
            才喿作中,x l敘入改變或y輸入改變,以及控制發送到xv或yv。 在4壬一'清形中,響應fC石馬(response code)寺丸4亍5個指令,然后等 待下一個輸入狀態變化。從輸入變化到輸出變化的等待時間可小于 約10個周期。1 GHz處理器可才莫擬100 MHz邏輯。
            作為另一個例子,下面示出4丸4亍D型觸發器邏輯的進程,該進 程每當輸入改變狀態(但僅在由外部時鐘計時時改變輸出)時醒來。 高級程序是
            PROC dtype(d, ck, q) IS WHILE TRUE
            { WHEN d TO notd DO notd := NOT notd I WHEN ck TO TRUE DO q ! NOT notd
            相應指令級程序是 dtype:IN d, temp
            EQI temp, temp, 0
            SETC d, TRANSITION
            SETD d, temp
            SETC ck TRANSITION
            LDI temp, 1
            SETD ck, temp
            LDFI temp, dv
            SETV d, temp
            LDFI temp, ckv
            SETV ck, ckv
            EEU d
            EEU ck
            WAIT
            dv:
            IN d, temp
            SETD d, tempWAIT
            ckv:
            EQI temp, notd, 0 OUT q, temp
            WAIT
            操作中,要么d-i叩ut改變,要么ck-i叩ut改變。在任一情形中, 響應代碼執行3條指令,然后等待下一輸入狀態變化。從輸入變化 到輸出變化的等待時間可小于約IO個周期。此外,lGHz處理器可 才莫擬100 MHz邏輯。
            下面給出一些更復雜邏輯的例子。類似于D型,其跟蹤輸入數 據(可以是幾個位寬),以便在外部時鐘到達時建立該邏輯(另一 種方式僅讀取時鐘數據,該情形中數據可有非零保存時間)。下面 的例子中通過查詢表以及時鐘輸出計算了輸出。可計算輸入的更復 雜函數,以及這會在下面指示的點潛在地增加更多指令。然而,注 意到處理器可以只用幾條指令來計算某些非常復雜的函數(相對小 LUT)。高級代碼是
            PROC lookup(d, ck, q) IS WHILE TRUE
            { WHEN d x : x != lastx DO lastx := x
            I WHEN ck TO TRUE DO q ! lookup[lastx]
            45相應指令級程序是 logic:
            IN d, data
            SETC d, NE
            SETD d, data
            SETC ck, TRANSITION
            LDI temp, 1
            SETD ck, temp
            LDFI temp, dv
            SETV d, temp
            LDFI temp, ckv
            SETV ck, temp
            EEU d
            EEU ck
            WAIT
            dv:INd, dataSETDd, dataWAIT
            ckv:
            LDWtemp, lookup, data 〃將其耳又^/人而改變函凄t
            OUT temp, q
            WAIT
            在才喿作中,要么d-input改變,要么ck-input改變。在任一'清形中,響應代碼執行3條指令,然后等待下一輸入狀態變化。從輸入變化到輸出變化的等待時間可小于約IO周期。此外,lGHz處理器可才莫擬100 MHz邏輯。
            還需注意的是,上面的例子展示了給定線程如何處理多個活動,諸如多個事件。
            與事件相比,中斷要求狀態保存在中斷控制器的入口以及在出口恢復,為了使寄存器在控制器內可用。此外,控制器通常需要從其最后一次進入處開始4企索狀態以及將其保存以便下一次進入。中斷控制器的簡單例子在下面示出。其4吏用某些額外指令
            LDWSP 用棧指針乂人存4諸器加載值
            STWSP 用棧指針將值存儲在存儲器中LDWDP用^t據指針從存儲器加載值STWDP 用數據指針將值存儲在存儲器中EXTSP用來擴展堆棧/人而為新值留出空間LDAWSP用來>^人堆棧中丟棄值
            該例子輸入凄t據字節, 一次一位;與上面4吏用事件的例子相比,該例子使用中斷控制器。高級程序是
            PORT clock: INT, TRANSITION, 1;
            VAR byte;
            VAR count;
            byte := 0;
            count := 0;
            ENABLE clock;
            〃要中斷的程序跟在此處之后
            HANDLER i勿te()
            { data bit ; byte := (byte《1) + bit;
            count := count + 1;
            IF count = 8 THEN DISABLE clock當端口被啟用以生成中斷時,每次外部時鐘過渡到邏輯l時都進入中斷控制器。控制器提取數據位并且形成字節。該字節與幾個位輸入一起存4諸在存儲器中的位置上以及經數據指針進行存取。當8位已經輸入時,控制器禁止另外的中斷,以便字節準備好供程序
            使用。相應指令級程序為SETDclock, 1SETCclock, TRANSITIONSETCclock, INTLDI r0, 0
            STWDP r0, byteSTWDP rO, nEEU clock... 〃將被中斷的程序
            int: 〃中斷控制器EXTSP 2STWSP RO, 0STWSP Rl, 1INclock, rOINdata, rO LDWDPrl, byte SHL byte, byte, 1
            ADD byte, byte, rO
            STWDP rl, byte LDWDPr0, n ADDI rO, r0, 1 STWDP r0, n EQI rO, rO, 8
            EEF clock, rO
            LDWSP Rl, 1 LDWSP RO, 0 LDAWSP 2 RFINT
            /人上面的"i兌明和例子可以看出各端口的活動如4可與各線禾呈相 關聯,以及如何基于該活動引起的事件調度這些線程,有利地提供 了可對外部激勵快速響應的處理器。
            可以理解上面的實施例〗又以例子"i兌明的。在其他實施例中,可 根據所需芯片規范提供不同寄存器組和指令。在某些實施例中,線程標識符不必發送到端口 ,而是可保留線程調度器的責任或存儲在 其他地方。可選地,可以在端口為每個線禾呈^是供個別的就緒標記, 以便線程標識符被發送到端口從而選擇正確的就緒信號,但線程標 識符不必在一企測到活動后返回線程調度器。另外,條件和/或條件凄t 據不必發送到端口 。而是條件可在端口預配置以及/或者條件可在線 程調度器或其他地方一皮評估。可以基于來自除了端口和通道的其他 源的活動來調度線程。不同互連可才是供在處理器不同組件之間。而 且本發明不專用于具有移動應用處理器的移動纟冬端。其4也應用和配 置對本領域技術人員是顯然的。本發明的范圍不是由所述實施例,
            而是由權利要求限定的。
            權利要求
            1.一種處理器,包括第一端口,可操作以基于所述第一端口處的第一活動生成第一指示;第二端口,可操作以基于所述第二端口處的第二活動生成第二指示;執行單元,被設置為執行多個線程;以及線程調度器,被連接以接收所述指示,以及被設置為基于所述指示來調度所述多個線程用于由所述執行單元執行,所述調度包括暫停所述線程的執行直到收到相應指示;其中,所述第一活動和所述第二活動中的每一個都與各個相應的線程相關聯。
            2. 根據權利要求1所述的處理器,其中,所述線程調度器被設置 為將第 一線程標識符發送到與所述第 一端口相關聯的標識符 寄存器,其中,所述第一線程標識符涉及暫停等待所述第一活 動的第一線程。
            3. 根據權利要求2所述的處理器,其中,所述線程調度器被設置 為將第二線禾呈標識符發送到與所述第二端口相關聯的標識符 寄存器,其中,所述第二線程標識符涉及等待所述第二活動的 第二線程。
            4. 根據權利要求1所述的處理器,其中, 一旦暫停的線程的所有 線程標識符都已經一皮發送到端口 ,則所述處理器適于關閉所述 執行單元、所述線程調度器以及時鐘中的至少一個。
            5. 才艮據^又利要求4所述的處理器,其中, 一旦所述線程標識符中的至少一個乂人其相應端口返回,則所述處理器適于對所述4丸行 單元、線程調度器和時鐘中的至少一個上電。
            6. 4艮據權利要求1所述的處理器,其中,所述第一和第二端口中 至少一個包括活動處理邏輯電3各并且與至少一個用于存4諸條 件的條件寄存器相關聯,所述活動處理邏輯電路被設置為監視 所述端口處的活動以及根據滿足所述條件的所迷活動來生成 所述指示。
            7. 根據權利要求6所述的處理器,其中,所述才丸行單元一皮設置為 將相應條件發送到每個條件寄存器。
            8. 根據權利要求1所述的處理器,還包括程序存儲器,通過總 線連接到所述執行單元的,其中,所述線程調度器通過至少一 個與所述總線分離的連接,從所述第一和第二端口中的每個接 收所述指示。
            9. 根據權利要求2所述的處理器,其中,所述線程調度器被設置 為 一旦暫停所述第 一線程就將連續點矢量發送至與所述第一 端口相關聯的矢量寄存器;以及基于所述第一活動,所述連續 點矢量^皮返回到所述4丸4亍單元。
            10. 根據權利要求9所述的處理器,其中,所述第一線程與來自多 個端口的活動相關聯,每個所述端口可操作以根據該活動生成 相應指示,執行單元適于將多個連續點矢量中的每個發送到所 述多個端口中的相應端口 , #^居相應活動返回相應連續點矢 量;并且所述線程調度器適于暫停所述第一線程的執行,直到 才妄收到所述相應指示中的至少 一個。
            11. 根據權利要求10所述的處理器,其中,端口事件啟用標記與 所述第 一端口相關耳關,并且所述線程調度器適于通過^f吏所述端 口事件啟用標記有效來啟用所述第一活動,從而觸發所述調 度,以及通過4吏所述端口事件啟用標記無效來禁止所述第一活 動觸發所述調度。
            12. 4艮據—又利要求11所述的處理器,其中,線程事件啟用標記與 所述第 一線程相關聯;所述線程調度器適于通過使所述線程事 件啟用標記有效來^^艮據所述第一活動^f吏所述第一線程能夠,皮 調度,以及通過使所述線程事件啟用標記無效來^4居所述第一 活動禁止所述第一線程#1調度。
            13. 才艮據—又利要求11所述的處理器,其中,所述端口事件啟用標 記和所述線程事件啟用標記中的至少一個通過所述第一活動 的發生而^皮自動無歲文。
            14. 根據權利要求11所述的處理器,其中,所述線程調度器適于 暫停第 一線程的執行,其中所述第 一線程等待來自端口的第三 活動的第三指示,同時所述端口事件啟用標記和所述線程事件 啟用才示i己中的至少 一個凈皮無步文。
            15. 根據權利要求12或其從屬權利要求中的任一權利要求所述的 處理器,其中,多個相應端口事件啟用標記與關耳關于所述第一 線程的所述多個端口中的每個相關聯;且所述線程調度器被設 置為<吏所述線程事件啟用標記有效以及隨后4吏所述多個端口 事件啟用標i己有效。
            16. 根據權利要求1所述的處理器,還包括多個線程寄存器組,每 個寄存器組都4皮分配用于存儲涉及所述多個線程中相應一個 線程的信息。
            17. 才艮據4又利要求1所述的處理器,其中,所述處理器在芯片上實 現,并且所述第一和第二端口中的至少一個是用于與所述芯片 上的另 一個處理器通信的內部端口 。
            18. 根據權利要求1所述的處理器,其中,所述處理器在芯片上實 現,并且所述第 一和第二端口中至少一個是用于與所述芯片外 部的設備通信的外部端口 。
            19. 才艮據片又利要求18所述的處理器,其中至少一個外部端口是引上升沿或下降沿。
            20. 才艮據斥又利要求18或19所述的處理器,其中,至少一個外部端 口是^t據端口 ,所述^fet據端口用于處理所述端口處的一個或多 個^立的瞬時邏輯電平。
            21. 根據權利要求1所述的處理器,其中,所述執行單元適于識別 并執行用于暫停和運行線程的專用指令。
            22. 根據權利要求16所述的處理器,還包括在至少兩個所述組之 間的至少一個通道,其中,所述線程調度器適于基于所述通道 上出現的活動來調度線程。
            23. 才艮據權利要求1所述的處理器,其中,所述線程調度器額外地 適于基于中斷來調度線程。
            24. 根據權利要求23所述的處理器,其中,基于所述中斷而調度 的所述線程是所述第一線程,所述中斷將暫停的所述第一線程 中斷。
            25. 根據權利要求1所述的處理器,其中,如果相關聯的活動出現 在取決于該活動的線程內的指令的執行時或執行之前,則所述 線程調度器適于調度線程而無需暫停。
            26. —種在具有第一端口和第二端口的處理器內調度多個線程用 于^U于的方法,所述方法包4舌將各相應線程與所述第一端口處的第一活動和所述第二 端口處的第二活動相關聯;根據所述第一活動在所述第一端口處生成第一指示;才艮據所述第二活動在所述第二端口處生成第二指示;以及基于所述指示調度所述線程用于執行,所述調度包括暫 停線程的#^于直到接收到相應指示;以及通過根據所述調度執行所述線程而運行所述線程。
            27. 根據權利要求26所述的方法,還包括將與暫停等待所述第一 活動的第 一線程相關的第 一線程標識符發送至與所述第 一端 口相關聯的標識符寄存器。
            28. 根據權利要求27所述的方法,還包括將與暫停等待所述第二 活動的第二線程相關的第二線程標識符發送至與所述第二端 口相關聯的標識符寄存器。
            29. 根據權利要求28所述的方法,還包括一旦被中止的線程的所有線程標識符都已經發送到端 口,則對以下中的至少一個斷電用于執行所述線程的執行單 元,用于調度所述線程的線程調度器,以及時鐘。
            30. 根據權利要求29所述的方法,還包括一旦/人相應端口返回至少 一個所述線程標識符,則對所 述才丸行單元、線程調度器以及時鐘中的至少一個上電。
            31. 根據權利要求26所述的方法,其中,所述第一和第二端口中 的至少一個包括活動處理邏輯電i 各,并且與至少一個用于存儲 條件的條件寄存器相關聯,所述方法還包括使用所述活動處理 邏輯電路來監視所述端口處的活動以及根據滿足所述條件的 所述活動生成所述指示。
            32. 4艮據權利要求31所述的方法,還包括將相應條件發送至每個 條件寄存器。
            33. 根據權利要求26的方法,其中,所述處理器包括通過總線連 接到所述執行單元的存儲器,以及所述方法還包括通過至少一 條與所述總線分離的連接從所述第一和第二端口中的每一個 發送所述指示。
            34. 4艮據權利要求26所述的方法,還包括一旦暫停所述第一線程, 則將連續點矢量發送到與所述第 一端口相關聯的矢量寄存器; 以及4艮據所述第 一活動返回所述連續點矢量。
            35. 根據權利要求34所述的方法,包括將所述第一線程與來自多 個端口的活動相關聯,以及將多個連續點矢量中的每個發送到所述多個端口中的相應一個,其中,所述調度包括暫停所述第 一線程的執行直到返回所述連續點矢量中的至少 一 個。
            36. 根據權利要求34所述的方法,包括通過使端口事件啟用標記 有效來啟用所述第一活動以觸發所述調度,以及通過4吏所述端 口事件啟用標記無效來禁止所述第一活動觸發所述調度。
            37. 根據權利要求34所述的方法,包括通過使所述線程事件啟用標記有效來才艮據所述第一活動4吏所述第一線禾呈能夠#:調度,以及通過4吏所述線程事件啟用標記無效來才艮據所述第一活動禁 止所述第 一線程被調度。
            38. 才艮據權利要求36或37所述的方法,包括通過所述第一活動的 發生自動使所述端口事件啟用標記和所述線程事件啟用標記 中的至少一個無步丈。
            39. 根據權利要求36所述的方法,還包括在使所述端口事件啟用標記和所述線程事件啟用標記中 至少一個無效后,恢復所述第一線程的執行以及隨后暫停所述 第一線程的執行,該第 一線程等待來自端口的第三活動的第三 指示,同時4吏所述端口事件啟用標記和所述線程事件啟用標記 中至少 一 個^皮無歲文;使所述端口事件啟用標記和所述線程事件啟用標記中的 至少一個再次有效;以及在4吏所述端口事件啟用標記和所述線程事件啟用標記中 至少一個再次有效之后,暫停正在等待所述第一活動再次發生 的所述線程的執行。
            40. 根據權利要求34所述的方法,其中,多個相應端口事件啟用 標記與關耳關于所述第一線程的所述多個端口中的每一個相關 聯;以及所述方法包括使所述線程啟用標記有效以及隨后使所 述多個端口事件啟用標記有效。
            41. 根據權利要求26所述的方法,還包括將表示每個所述線程的 信息存儲在相應線程寄存器組中。
            42. 根據權利要求26所述的方法,其中,所述處理器在芯片上實 現,以及所述第一和第二端口中的至少一個是用于與所述芯片 上另 一個處理器進4亍通信的內部端口 。
            43. 才艮據4又利要求26所述的方法,其中,所述處理器在芯片上實 5見,以及所述第一和第二端口中的至少一個是用于與所述芯片 外的i殳備進行通信的外部端口 。
            44. 根據權利要求43所述的方法,其中,至少一個外部端口是用號下降沿的引腳端口 。
            45. 根據權利要求43或44所述的方法,其中,至少一個外部端口 是數據端口 ,用于處理在所述端口處的一個或多個位的瞬時邏 壽專電平。
            46. 根據權利要求26所述的方法,還包括執行用于暫停和運行線 程的專用指令。
            47. 根據權利要求41所述的方法,其中,所述處理器還包括在至 少兩個所述寄存器組之間的至少 一個通道,以及所述方法包括 基于所述通道上發生的活動來調度線程。
            48. 根據權利要求26所述的方法,還包括基于中斷來調度線程。
            49. 根據權利要求48所述的方法,其中,基于所述中斷而調度的 所述線程是所述第 一線程,以及所述中斷將凈皮暫停的所述第一 線程中斷。
            50. 根據權利要求26所述的方法,如果相關聯的活動發生在取決 于該活動的線禾呈內的指令沖丸行時或4丸4亍之前,則調度線程而無需暫停。
            51. —種線程調度器,用于在具有第一和第二端口的處理器內調度 多個線程用于^l行,其中所述線程調度器適于接收所述第 一端口根據所述第 一端 口處的第一活動生成的第一指示;所述線程調度器適于接收所述第二端口才艮據所述第二端 口處的第二活動生成的第二指示;以及所述線程調度器適于基于所述指示來調度所述多個線程 用于由執行單元執行,所述調度包括暫停線程的執行直到接收 到相應指示;其中,所述第一活動和第二活動中每個都與各相應線程 相關耳關。
            52. —種端口,用于調度多個線程用于才丸4亍,所述端口包括活動 處理邏輯電^各,^皮i殳置為4艮據所述端口處的活動生成指示;寄 存器,用于存儲標識與所述活動相關聯的線程的信息;以及寄 存器,用于存儲條件;其中,所述活動處理邏輯電路適于在所 述活動滿足所述條件時在芯片上發送所述第一指示。
            53. —種移動終端,具有移動應用處理器,至少一個外圍i殳備,以 及連4妾在所述移動應用處理器與所述外圍"i殳備之間的4妄口處 理器,所述^l妄口處理器包^^舌第一端口,可才喿作以才艮據所述第一端口處的第一活動生 成第一指示;第二端口,可纟喿作以才艮據所述第二端口處的第二活動生 成第二指示;執行單元,被設置為執行多個線程;以及線程調度器,被連接以接收所述指示以及被設置為基于 所述指示來調度所述多個線程用于由所述寺丸^f亍單元才丸行,所述調度包括暫停線程的執行直到接收到相應就緒信號;其中,所述第一活動和所述第二活動中的每個都與各相 應線一呈相關耳關。
            54. —種互連的處理器陣列,至少一個所述處理器包才舌第一端口,可^乘作以才艮據所述第一端口處的第一活動生 成第一指示;第二端口,可纟喿作以4艮據所述第二端口處的第二活動生 成第二指示;執行單元,被設置為執行多個線程;以及線程調度器,^皮連4妄以4妄收所述指示,以及^Mc沒置為基 于所述指示調度所述多個線程用于由所述才丸行單元才丸行,所述 調度包括暫停線程的執行直到接收到相應就緒信號;其中,所述第一活動和所述第二活動中的每個都與各相 應線禾呈相關耳關;以及所述第 一和第二端口中的至少 一個將所述至少一個處理 器與陣列中另 一個處理器相連接。
            55. —種處理器,其包括第一端口裝置,用于4艮據所述第一端口處的第一活動生 成第一指示;第二端口裝置,用于才艮據所述第二端口處的第二活動生 成第二指示;4丸^f亍裝置,用于執行多個線程;以及線程調度裝置,用于接收所述指示,以及被設置為基于 所述指示來調度所述多個線程用于由所述執行單元來執行,所述調度包括暫停線程的4丸行直到4妄收到相應指示;其中,所述第一活動和所述第二活動中的每個都與各相 應線程相關耳關。
            56. —種線程調度器,用于在具有第一端口和第二端口的處理器內 調度多個線程用于執行,包括用于4妄收由所述第一端口才艮據所述第一端口處的第一活 動生成的第一指示的裝置;用于4妄收由所述第二端口才艮據所述第二端口處的第二活 動生成的第二指示的裝置;以及用于基于所述指示來調度所述多個線程用于由所述執行 單元來執行的裝置,所述調度包括暫停線程的執行直到接收到 相應才旨示;其中,所述第一活動和所述第二活動中的每個都與各相 應線^呈坤目關聯。
            全文摘要
            本發明提供了一種處理器,其包括第一端口,用于根據第一端口處的第一活動生成第一指示;第二端口,用于根據第二端口處的第二活動生成第二指示。該處理器還包括執行單元,被設置為執行多個線程;以及線程調度器,被連接以接收指示并被設置為根據這些指示調度多個線程用于由執行單元執行。調度包括暫停線程的執行直到收到各指示。第一活動和第二活動中的每個都與各相應線程相關聯。
            文檔編號G06F9/48GK101681274SQ200880015942
            公開日2010年3月24日 申請日期2008年3月13日 優先權日2007年3月14日
            發明者戴維·梅 申請人:Xmos有限公司
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品