• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    快速低切換開銷的堆棧處理器架構(gòu)研究與實(shí)現(xiàn)

    2023-01-31 03:37:02郭金輝代紅兵周永錄劉宏杰
    關(guān)鍵詞:堆棧實(shí)時(shí)性中斷

    郭金輝,代紅兵,周永錄,劉宏杰

    (云南大學(xué) 信息學(xué)院,云南 昆明 650504)

    0 引 言

    James Bowman等[1]設(shè)計(jì)的J1處理器是一種16位的28個(gè)指令的處理器,有獨(dú)立的32深度的返回堆棧和數(shù)據(jù)堆棧,采用Verilog設(shè)計(jì),核心代碼不超過200行的Verilog。J1處理器所有的指令都在單位系統(tǒng)時(shí)鐘時(shí)間內(nèi)執(zhí)行,在Xilinx Spartan-3E FPGA以80 MHz的時(shí)鐘頻率運(yùn)行,可以提供100 MIPS(每秒處理百萬級的機(jī)器語言指令數(shù))的速度運(yùn)行。

    Anatoliy Sergiyenko等[2]采用VHDL設(shè)計(jì)的納米性8位堆棧處理器體系結(jié)構(gòu),該體系結(jié)構(gòu)設(shè)計(jì)用于FPGA實(shí)現(xiàn)。具有這種架構(gòu)的微處理器具有較小的硬件成本,減少的軟件數(shù)量,并且能夠向其指令集添加多達(dá)一百個(gè)新的用戶指令。納米性8位微處理器體系結(jié)構(gòu)適用于對串行端口通信進(jìn)行編程,并能夠執(zhí)行數(shù)據(jù)流解析,它能有效地用于物聯(lián)網(wǎng)應(yīng)用程序。

    上述Forth堆棧處理器雖然執(zhí)行速度很快,但都只有一個(gè)返回棧和參數(shù)棧,僅支持單任務(wù),無法完成多任務(wù)調(diào)度和任務(wù)啟動/結(jié)束時(shí)間有嚴(yán)格約束的實(shí)時(shí)任務(wù)(如果上下文切換時(shí)將處理器中硬堆棧的信息保存到內(nèi)存,必將丟失堆棧處理器的優(yōu)點(diǎn))。本文在J1處理器模型的基礎(chǔ)上,針對當(dāng)前Forth堆棧處理器架構(gòu)不支持多任務(wù)并發(fā)和事件實(shí)時(shí)響應(yīng)等問題,通過引入新的指令、定時(shí)器、中斷機(jī)制以及采用多任務(wù)堆棧技術(shù),設(shè)計(jì)實(shí)現(xiàn)一種快速低切換開銷的Forth堆棧處理器架構(gòu),支持實(shí)時(shí)多任務(wù)的運(yùn)行,彌補(bǔ)了Forth堆棧處理器在實(shí)時(shí)多任務(wù)研究方面的不足。

    1 Forth及堆棧處理器工作原理

    1.1 Forth介紹

    Forth有兩個(gè)堆?!祷貤:蛥?shù)棧,F(xiàn)orth程序的運(yùn)行相當(dāng)于在這兩個(gè)堆棧中做進(jìn)出和算術(shù)運(yùn)算操作[3]。

    Forth語言由一個(gè)個(gè)詞以積木式方式鏈接在一起[4],F(xiàn)orth程序運(yùn)行分為執(zhí)行態(tài)(解釋態(tài))和編譯態(tài)[5]。執(zhí)行過程和編譯過程如圖1和圖2所示。

    圖1 Forth執(zhí)行態(tài)執(zhí)行過程

    圖2 Forth編譯態(tài)編譯過程

    執(zhí)行態(tài)時(shí),輸入的字符被送到輸入緩沖區(qū)中,首先從輸入緩沖區(qū)中以空格為分隔符分離出一個(gè)個(gè)詞,然后在Forth已定義詞集中搜索分離出的詞是否存在。若匹配成功,則運(yùn)行該Forth詞,若未匹配成功,則判斷是否能轉(zhuǎn)換為數(shù)值,若成功則把該數(shù)放到參數(shù)棧中,否則系統(tǒng)報(bào)錯(cuò)。循環(huán)上述步驟,直到在用戶輸入的一行字符解釋結(jié)束[6,7]。

    編譯態(tài)是定義新詞時(shí)需要用到的一種狀態(tài)[8]。定義新詞時(shí),F(xiàn)orth系統(tǒng)進(jìn)入編譯狀態(tài)。編譯程序和執(zhí)行程序類似,不同的是匹配到已定義詞時(shí),查看該詞是否為立即詞(在名字域中用一位表示該詞是否為立即詞),若是立即詞,就會立即執(zhí)行該詞,否則把該詞記錄到定義詞中[9]。

    1.2 Forth堆棧處理器工作原理

    Forth堆棧處理器根據(jù)系統(tǒng)時(shí)鐘以心跳的方式運(yùn)行[4,5],如圖3所示。時(shí)鐘上升沿來臨時(shí),取指令,在上升沿到下次上升沿之間的時(shí)間進(jìn)行指令譯碼、指令執(zhí)行和修改指令計(jì)數(shù)器,系統(tǒng)時(shí)鐘再次上升時(shí)執(zhí)行結(jié)果寫回,同時(shí)再次取出指令。Forth堆棧處理器以此循環(huán)的運(yùn)行。

    圖3 Forth堆棧處理器指令執(zhí)行周期

    取指令:Forth堆棧處理器中有專門存放指令的隨機(jī)存取存儲器RAM。根據(jù)指令計(jì)數(shù)器PC的值向RAM中取出指令,然后譯碼執(zhí)行。初始時(shí)指令計(jì)數(shù)器為0,存放的是Forth系統(tǒng)冷啟動代碼。

    指令譯碼:取出指令后,按照指令編碼規(guī)則對指令進(jìn)行解碼,決定取出的指令應(yīng)該進(jìn)行哪些操作。不同的Forth堆棧處理器有著不同的編碼規(guī)則[10]。

    執(zhí)行指令:指令的執(zhí)行主要涉及對參數(shù)棧棧頂元素、參數(shù)棧次棧頂元素和返回棧棧頂元素的操作,執(zhí)行的同時(shí)也要對參數(shù)棧和返回棧的棧頂指針做相應(yīng)調(diào)整。

    修改指令計(jì)數(shù)器:指令被執(zhí)行后,根據(jù)當(dāng)前的指令的類型,確定下一條即將被執(zhí)行的指令地址(_PC)。

    執(zhí)行結(jié)果寫回:心跳頻率方式運(yùn)行的Forth堆棧處理器,指令執(zhí)行完后,結(jié)果暫存在某寄存器中,當(dāng)系統(tǒng)時(shí)鐘上升沿來臨時(shí),需要寫回到正確位置,保障下一個(gè)指令的正確執(zhí)行。例如_PC賦值給即將被執(zhí)行的指令地址(PC)。

    2 快速低切換開銷的堆棧處理器架構(gòu)

    200多行的Verilog語言代碼就構(gòu)造出了快速低切換開銷的Forth堆棧處理器架構(gòu),其框架結(jié)構(gòu)如圖4所示。

    圖4 Forth堆棧處理器框架

    2.1 指令集的設(shè)計(jì)

    16位的Forth堆棧處理器一共有五大類指令集,分別是literal、jump、conditional jump、call、ALU,其編碼格式如圖5所示。

    圖5 Forth堆棧處理器指令格式

    literal指令集用于讀取終端輸入字符串為數(shù)字的情況,最大允許輸入的數(shù)為32 767,但想要輸入32 768~65 535之間的數(shù)字需要額外的指令使該數(shù)的最高位置特殊標(biāo)記。literal指令集時(shí),_PC值指向當(dāng)前PC的下一個(gè)地址,即PC加一操作。

    jump、conditional jump兩類指令集分別用于無條件跳轉(zhuǎn)和條件跳轉(zhuǎn)。jump指令會無條件的使_PC被賦值為target的值。conditional jump指令,若參數(shù)棧(D)棧頂?shù)闹禐?元素,_PC被賦值為target,若D棧頂?shù)闹禐榉?元素,則不會發(fā)生跳轉(zhuǎn)。無論跳轉(zhuǎn)不跳轉(zhuǎn),conditional jump都會使D棧頂指針減一。條件跳轉(zhuǎn)conditional jump指令不滿足跳轉(zhuǎn)條件時(shí),_PC的值指向當(dāng)前PC的下一個(gè)地址。

    當(dāng)遇到call指令集時(shí),會使PC加一的值存放到返回堆棧(R)中,R棧頂指針加一,_PC被賦值為target的值。與此同時(shí)存在return指令,譯碼時(shí),把R棧頂元素賦值給_PC,R棧頂指針減一。

    ALU指令集是Forth堆棧處理器最復(fù)雜的指令集。13位~15位表示是ALU指令集的標(biāo)志。12位的R→pc表示使R棧頂元素的值賦值給_PC。8位~11位的T’即在對參數(shù)棧(D)中的值進(jìn)行算術(shù)運(yùn)算(加減移位等等),不包含乘除指令,乘除運(yùn)算是經(jīng)過循環(huán)加減指令代替。5位~7位是針對某些Forth詞而設(shè)計(jì),例如swap、>r、!等Forth詞。T→N表示D棧頂元素賦值給次棧頂,T→R表示D頂元素賦值給R棧頂,N→[T]表示次棧頂元素放到T地址中,T為D棧頂元素。4位為保留位。rstack±表示R棧頂指針做±1操作,同理dstack±表示D棧頂指針做±1操作。ALU指令集在根據(jù)相應(yīng)情況,對_PC賦值,除了R→ip是return指令操作,其它的都是_PC值指向當(dāng)前PC的下一個(gè)地址。

    在ALU指令集的4位是保留位,合并5位~7位,可以增設(shè)12種不同的微指令。

    為了實(shí)時(shí)多任務(wù)正常運(yùn)行,本文在Forth堆棧處理器指令集中設(shè)計(jì)了sp!、rp!、t→[R]、intrpt_on、intrpt_off、timer_on、timer_off和clk_n指令。設(shè)計(jì)的這些指令實(shí)現(xiàn)原理是當(dāng)Forth堆棧處理器PC值指向設(shè)計(jì)的指令時(shí),F(xiàn)orth堆棧處理器會根據(jù)指令的功能進(jìn)行相應(yīng)的操作。其指令功能、實(shí)現(xiàn)方法結(jié)合圖4分別如下介紹。

    sp!:表示把某數(shù)置為D棧頂指針,相應(yīng)的D棧頂元素和次棧頂元素進(jìn)行了的改變。實(shí)現(xiàn)方法是,把原D棧棧頂元素取出,賦值給D棧棧頂指針,并重新獲取新D棧棧頂元素,R棧不進(jìn)行任何操作。

    rp!:表示把某數(shù)置為R棧頂指針,相應(yīng)的R棧頂元素進(jìn)行了改變。實(shí)現(xiàn)方法是,把原D棧棧頂元素取出,賦值給R棧棧頂指針,同是D棧棧頂指針減一,并重新獲取新D棧棧頂元素。

    t→[R]:表示把D棧棧頂元素放到R中,且存放地址即堆棧指針為D次棧頂元素。實(shí)現(xiàn)方法是,取原D棧棧頂元素和原D棧次棧頂元素,并把原D棧次棧頂元素存放到指針為原D棧棧頂元素的R棧中,D棧棧頂指針分兩次進(jìn)行減一操作,并重新獲取新D棧棧頂元素和D棧次棧頂元素。

    intrpt_on:表示允許響應(yīng)中斷。實(shí)現(xiàn)方法是,允許響應(yīng)中斷標(biāo)志位置為1。

    intrpt_off:表示禁止響應(yīng)中斷。實(shí)現(xiàn)方法是,允許響應(yīng)中斷標(biāo)志位置為0。

    timer_on:表示開啟時(shí)鐘中斷。實(shí)現(xiàn)方法是,允許響應(yīng)時(shí)鐘中斷標(biāo)志位置為1。

    timer_off:表示關(guān)閉時(shí)鐘中斷。實(shí)現(xiàn)方法是,允許響應(yīng)時(shí)鐘中斷標(biāo)志位置為0。

    clk_n:統(tǒng)計(jì)系統(tǒng)時(shí)鐘跳轉(zhuǎn)次數(shù),方便計(jì)算Forth堆棧處理器任務(wù)進(jìn)行調(diào)度時(shí)的切換時(shí)間。實(shí)現(xiàn)方法是,在Forth堆棧處理器中加入計(jì)數(shù)器,統(tǒng)計(jì)系統(tǒng)時(shí)鐘跳轉(zhuǎn)次數(shù),以此來確定運(yùn)行時(shí)間。

    2.2 定時(shí)器

    為了能適合分時(shí)系統(tǒng)以時(shí)間片輪轉(zhuǎn)的方式調(diào)度,在Forth堆棧處理器中加入了時(shí)鐘中斷機(jī)制。Verilog HDL重要部分代碼如下。

    (1) always @(posedge sys_clk_i) //當(dāng)系統(tǒng)時(shí)鐘上升沿來臨時(shí)

    (2) begin

    (3) if(timer==0) //若定時(shí)器關(guān)閉

    (4) clk_n <= 0;

    (5) else //若定時(shí)器開啟

    (6) begin

    (7) if(clk_n==time_slice_55 ms)/*達(dá)到定值清零*/

    (8) clk_n <=0;

    (9) else

    (10) clk_n <=clk_n +1;//循環(huán)加一

    (11) end

    (12) end

    sys_clk_i是系統(tǒng)時(shí)鐘信號,上升沿來臨時(shí),判斷定時(shí)器是否開啟,若關(guān)閉,計(jì)數(shù)器clk_n一直為0,若開啟,計(jì)數(shù)器clk_n計(jì)數(shù),直到計(jì)數(shù)到time_slice_55 ms。

    在圖4中,指令timer_on、timer_off開啟和關(guān)閉定時(shí)器(timer)。若開啟,timer=1,并且當(dāng)clk_n=0時(shí),產(chǎn)生時(shí)鐘中斷信號,若禁止時(shí)鐘中斷,則時(shí)鐘中斷無效,_PC正常賦值。若允許響應(yīng)時(shí)鐘中斷,則把當(dāng)前任務(wù)的_PC放到R棧頂(斷點(diǎn)保護(hù)),_PC被置為時(shí)鐘中斷的中斷向量地址。同樣的,若允許時(shí)鐘中斷,在發(fā)生一次時(shí)鐘中斷后,clk_n不再等于0,繼續(xù)進(jìn)行計(jì)數(shù),再次計(jì)數(shù)到time_slice_55 ms時(shí),clk_n=0,然后就會再次出現(xiàn)時(shí)鐘中斷,達(dá)到分時(shí)調(diào)度的效果。

    如圖6加入定時(shí)器實(shí)現(xiàn)的Forth分時(shí)系統(tǒng)調(diào)度,Task1是終端任務(wù),創(chuàng)建了后臺非實(shí)時(shí)任務(wù)Task2(Task2的創(chuàng)建方式也可以是任意其它任務(wù),同時(shí)就緒、喚醒等操作也同樣如此),并就緒Task2。Task1與Task2同優(yōu)先級,系統(tǒng)允許響應(yīng)中斷。當(dāng)時(shí)鐘中斷來臨時(shí),Task2開始運(yùn)行,之后Task1和Task2交替運(yùn)行,直到Task2完成。之后再次遇到時(shí)鐘中斷時(shí),需判斷后臺是否有任務(wù),若無后臺任務(wù)不需要進(jìn)行上下文切換,繼續(xù)運(yùn)行Task1。若有多個(gè)后臺任務(wù)與終端任務(wù)同等級,可實(shí)現(xiàn)以時(shí)間片輪轉(zhuǎn)調(diào)度的方式,多個(gè)任務(wù)循環(huán)的占用Forth堆棧處理器資源。

    圖6 Forth分時(shí)系統(tǒng)調(diào)度

    2.3 中斷機(jī)制

    為了能適合搶占式實(shí)時(shí)系統(tǒng)方式調(diào)度,在Forth堆棧處理器中加入了簡單的中斷機(jī)制。

    在圖4中,突發(fā)情況下產(chǎn)生外部中斷,外部中斷傳遞給Forth堆棧處理器產(chǎn)生intrpt信號,等到完成正在執(zhí)行的指令后,才能響應(yīng)中斷。首先判斷是否允許響應(yīng)中斷,若禁止響應(yīng)中斷,_PC正常賦值;若允許響應(yīng)中斷,判斷是否有中斷信號,若無,_PC正常賦值,若有中斷信號,當(dāng)前任務(wù)_PC的值送到返回堆棧中,并響應(yīng)中斷信號,待恢復(fù)中斷時(shí),保存在返回堆棧的值重新賦值給_PC。

    若時(shí)鐘中斷和外部中斷同時(shí)到來時(shí),根據(jù)中斷類型,優(yōu)先處理高級外部中斷[11]。Forth堆棧處理器實(shí)時(shí)多任務(wù)系統(tǒng)中任務(wù)創(chuàng)建、刪除、阻塞、喚醒、就緒、調(diào)度和修改優(yōu)先級等操作屬于原語,不允許被打斷,需禁止響應(yīng)中斷。正在進(jìn)行原語操作時(shí),不能及時(shí)的響應(yīng)外部中斷,需要等原語操作完成后再響應(yīng)外部中斷。

    如圖7加入中斷機(jī)制后實(shí)現(xiàn)了Forth實(shí)時(shí)系統(tǒng)調(diào)度。終端任務(wù)Task1創(chuàng)建了與Task1同優(yōu)先級的后臺非實(shí)時(shí)性任務(wù)Task2和實(shí)時(shí)性任務(wù)Task3,然后就緒Task2。實(shí)時(shí)任務(wù)Task3必須在中斷來臨前已經(jīng)創(chuàng)建,可由其它任務(wù)創(chuàng)建,也可在Forth堆棧處理器冷啟動時(shí)自動創(chuàng)建。時(shí)鐘中斷來臨后,切換到Task2執(zhí)行,Task2時(shí)間片用完后然后再切換到Task1執(zhí)行。在Task1時(shí)間片未用完前,發(fā)生了突發(fā)事件,以中斷服務(wù)程序的方式就緒了Task3,并禁止響應(yīng)時(shí)鐘中斷信號。調(diào)度后,Task3一直運(yùn)行,直至結(jié)束,并開啟允許響應(yīng)時(shí)鐘中斷信號。然后重新調(diào)度,選擇Task2,后面部分同分時(shí)系統(tǒng)調(diào)度。禁止響應(yīng)時(shí)鐘中斷信號后再次開啟允許響應(yīng)時(shí)鐘中斷信號,會立即產(chǎn)生時(shí)鐘中斷,并進(jìn)行調(diào)度,選擇新的任務(wù)運(yùn)行,并占用Forth堆棧處理器資源。

    圖7 Forth實(shí)時(shí)系統(tǒng)調(diào)度

    2.4 多任務(wù)堆棧的設(shè)計(jì)

    原Forth堆棧處理器堆棧深度為32[7],只能滿足單任務(wù)正常運(yùn)行,想要實(shí)時(shí)多任務(wù)正常運(yùn)行,需要擴(kuò)充Forth堆棧處理器堆棧深度,使得每個(gè)實(shí)時(shí)任務(wù)都擁有獨(dú)立的R和D。

    Forth堆棧處理器中的堆棧是用單獨(dú)的隨機(jī)存取寄存器來存放數(shù)據(jù)的,只需要擴(kuò)充隨機(jī)存取寄存器的深度,即可擴(kuò)充Forth堆棧處理器中堆棧的深度。

    當(dāng)堆棧深度固定時(shí),很多的非實(shí)時(shí)性任務(wù)占用了堆棧資源但得不到運(yùn)行和釋放,導(dǎo)致實(shí)時(shí)性任務(wù)無法獲得堆棧資源,為了解決該問題,所有非實(shí)時(shí)性任務(wù)共用32深度的堆棧,每次任務(wù)切換時(shí)需要額外的時(shí)間把原任務(wù)的堆棧數(shù)據(jù)搬移到某段地址的RAM空間中,并把現(xiàn)任務(wù)的堆棧數(shù)據(jù)從RAM搬回到堆棧里。這是一種以時(shí)間換取堆??臻g的處理方法。

    實(shí)時(shí)性任務(wù)和非實(shí)時(shí)性任務(wù)上下文切換有些差異,實(shí)時(shí)性任務(wù)只需保存原任務(wù)D棧頂指針和R棧頂指針,而非實(shí)時(shí)性任務(wù)不僅要保存堆棧棧頂指針,而且還需要把堆棧數(shù)據(jù)搬移到指定的地址空間中。還需要查找到下一個(gè)占用CPU資源的任務(wù)。實(shí)時(shí)性任務(wù)的斷點(diǎn)恢復(fù),需要sp!指令恢復(fù)D棧頂指針和rp!指令恢復(fù)R棧頂指針,然后return指令把R棧頂元素賦值給_PC,即可恢復(fù)斷點(diǎn)。而非實(shí)時(shí)性任務(wù)堆?;謴?fù)需要把指定RAM空間數(shù)據(jù)再次搬回到堆棧中。

    3 實(shí)驗(yàn)評估

    Forth堆棧處理器正常運(yùn)行,需要在RAM中存放指令。本文利用gForth軟件編寫代碼,首先構(gòu)造出適合生成新Forth系統(tǒng)的框架和一些必備詞,在gForth系統(tǒng)軟件中生成eForth系統(tǒng),需要定義3個(gè)Forth詞匯meta、assembler、target,即Forth系統(tǒng)整體架構(gòu),必備詞是指如何在gForth系統(tǒng)軟件中生成可運(yùn)行eForth程序的編碼,并將其生成二進(jìn)制/十六進(jìn)制文件,重要的必備詞有t:開始定義eForth基礎(chǔ)詞、t;結(jié)束定義eForth基礎(chǔ)詞、save-hex保存生成的十六進(jìn)制eForth系統(tǒng)等等。然后根據(jù)Forth堆棧處理器指令集編碼規(guī)則,定義匯編詞,接著用匯編詞定義Forth高級詞(任務(wù)創(chuàng)建、刪除、就緒、阻塞、喚醒、修改優(yōu)先級等Forth詞),最后生成可在Forth堆棧處理器中運(yùn)行eForth程序的指令文件。本文設(shè)計(jì)的基于優(yōu)先級的搶占式與時(shí)間片輪轉(zhuǎn)調(diào)度機(jī)制也被定義成Forth高級詞,存放在RAM中,可在Forth堆棧處理器上實(shí)現(xiàn)實(shí)時(shí)多任務(wù)調(diào)度。

    生成的編碼指令文件存入到RAM中,使用ISE14.7軟件對硬件描述語言Verilog HDL程序進(jìn)行綜合,生成的比特流文件通過iMPACT軟件燒錄到Xilinx Spartan-6 FPGA實(shí)驗(yàn)板中,使用secureCRT軟件作為Forth終端仿真,F(xiàn)PGA中的Forth堆棧處理器上電后以16 MHz的時(shí)鐘頻率運(yùn)行,圖8為ALINX型號為AX309的實(shí)驗(yàn)開發(fā)板。

    圖8 實(shí)驗(yàn)開發(fā)板

    開發(fā)板中有4個(gè)按鍵,本實(shí)驗(yàn)為模擬突發(fā)事件,以按鍵的發(fā)生當(dāng)作突發(fā)事件。開發(fā)板中有6個(gè)LED燈,本實(shí)驗(yàn)讓其顯示Forth堆棧處理器從啟動到某時(shí)刻的時(shí)間,分為時(shí)分秒單位,創(chuàng)建任務(wù)時(shí)可根據(jù)最遲發(fā)生時(shí)間設(shè)置任務(wù)優(yōu)先級。

    本設(shè)計(jì)中堆棧深度為256,224深度堆棧用于實(shí)時(shí)性任務(wù),32深度用于非實(shí)時(shí)性任務(wù)。時(shí)鐘中斷計(jì)數(shù)器計(jì)時(shí)55 ms,可實(shí)現(xiàn)同優(yōu)先級任務(wù)時(shí)間片輪轉(zhuǎn)調(diào)度,不同優(yōu)先級搶占式調(diào)度。在Forth堆棧處理器中再增添clk_n指令,統(tǒng)計(jì)系統(tǒng)時(shí)鐘周期的個(gè)數(shù),以此來測量相關(guān)時(shí)間差。

    在終端任務(wù)創(chuàng)建后臺任務(wù)Task1、Task2(實(shí)時(shí)任務(wù)也可以在處理器冷啟動時(shí)自動創(chuàng)建),就緒Task1任務(wù)后,Task1開始運(yùn)行,某時(shí)刻發(fā)生中斷,中斷服務(wù)程序就緒Task2任務(wù),中斷服務(wù)程序運(yùn)行完后,重新進(jìn)行調(diào)度,響應(yīng)了實(shí)時(shí)性強(qiáng)的Task2任務(wù)。

    任務(wù)創(chuàng)建時(shí)創(chuàng)建一個(gè)任務(wù)控制塊,并分配一定的空間地址,對該任務(wù)優(yōu)先級進(jìn)行設(shè)置。對任務(wù)控制塊的管理,其實(shí)就是對任務(wù)進(jìn)行管理。就緒任務(wù)時(shí),把任務(wù)控制塊中任務(wù)狀態(tài)置為就緒態(tài),同時(shí)根據(jù)任務(wù)優(yōu)先級把該任務(wù)放到相應(yīng)的鏈表中(多條就緒鏈表),并有資格搶占處理器資源。阻塞任務(wù)時(shí)把該任務(wù)置為阻塞態(tài),并從某個(gè)就緒鏈表中摘掉該任務(wù),加入到阻塞鏈表中。任務(wù)喚醒時(shí)把任務(wù)狀態(tài)置為就緒態(tài),相應(yīng)的是任務(wù)阻塞的逆過程,從阻塞鏈表中摘除該任務(wù)控制塊,并添加到相應(yīng)的就緒鏈表中。優(yōu)先級的修改是對就緒鏈表進(jìn)行增刪的操作,首先摘掉原任務(wù)所在的就緒鏈表,修改任務(wù)控制塊中優(yōu)先級數(shù),最后該任務(wù)控制塊添加到相應(yīng)的就緒鏈表中。任務(wù)刪除時(shí),根據(jù)任務(wù)狀態(tài),刪除鏈表中的任務(wù)控制塊,回收其所有資源。上述操作設(shè)計(jì)可在Forth堆棧處理器中運(yùn)行eForth程序的指令文件中。

    任務(wù)創(chuàng)建、刪除、就緒、阻塞、喚醒、修改優(yōu)先級等操作不允許被打斷,屬于原語操作,需要系統(tǒng)禁止響應(yīng)中斷。

    任務(wù)調(diào)度Forth程序如下。

    (1) dispatch //任務(wù)的調(diào)度

    (2) task_now @ @ 1= if /*判斷該任務(wù)是否為運(yùn)行態(tài), 若是運(yùn)行態(tài)需要把該任務(wù)控制塊放到鏈表末尾處*/

    (3) -1 task_now @ !

    (4) task_now @ 4H + @

    (5) task_now @ 10H + @ dup +

    (6) priority_list + ! then

    (7) look_most_priority //查找任務(wù)占用處理器

    (8) next_task ! //存放即將占用CPU的TCB

    (9) r> task_now @ eH + ! //_PC斷點(diǎn)保護(hù)

    (10) sp@ task_now @ 8H + !//參數(shù)棧斷點(diǎn)保護(hù)

    (11) rp@ 1H-task_now @ aH + ! //返回棧斷點(diǎn)保護(hù)

    (12) base @ 1H rshift //數(shù)基值保存

    (13) task_now @ cH + c!

    (14) next_task @ task_now !

    (15) 1H task_now @ ! //置選中任務(wù)為運(yùn)行態(tài)

    (16) task_now @ 8H + @ sp! // 參數(shù)棧斷點(diǎn)恢復(fù)

    (17) task_now @ aH + @ rp! //返回棧斷點(diǎn)恢復(fù)

    (18) task_now @ cH + c@ dup + base ! //數(shù)基值恢復(fù)

    (19) task_now @ eH + @ >r exit; //_PC斷點(diǎn)恢復(fù)

    任務(wù)調(diào)度時(shí)進(jìn)行任務(wù)的切換,需要保存任務(wù)斷點(diǎn)、尋找即將占用處理器資源的任務(wù)、任務(wù)斷點(diǎn)恢復(fù),代碼(9)、(10)、(11)、(12)和(13)表示原任務(wù)斷點(diǎn)保護(hù),代碼(7)表示查找下一個(gè)占用CPU資源的任務(wù),在D中留下該任務(wù)的控制塊,代碼(16)、(17)、(18)和(19)表示即將執(zhí)行的任務(wù)斷點(diǎn)恢復(fù)。

    實(shí)驗(yàn)對比對象黃忠建等設(shè)計(jì)的是一種基于寄存器處理器的Forth實(shí)時(shí)多任務(wù)調(diào)度[12],該系統(tǒng)支持實(shí)時(shí)多任務(wù)的運(yùn)行,以中斷的方式響應(yīng)突發(fā)事件,支持中斷嵌套,但是該系統(tǒng)只支持軟實(shí)時(shí)性任務(wù),無法完成要求嚴(yán)格的強(qiáng)實(shí)時(shí)性任務(wù)。

    文獻(xiàn)[12]在Atmega328芯片上以16 MHz的時(shí)鐘頻率運(yùn)行,并且文獻(xiàn)[12]提到任務(wù)的響應(yīng)時(shí)間、任務(wù)上下文切換時(shí)間和最大關(guān)中斷時(shí)間是影響實(shí)時(shí)系統(tǒng)主要的指標(biāo)。本實(shí)驗(yàn)測試了Task2的最大任務(wù)響應(yīng)(突發(fā)事件開始時(shí)間到任務(wù)開始運(yùn)行之間的最大時(shí)間,包括最大關(guān)中斷時(shí)間和任務(wù)響應(yīng)時(shí)間)、任務(wù)上下文切換、關(guān)中斷時(shí)間。如圖9所示。

    圖9 實(shí)時(shí)任務(wù)TASK2響應(yīng)時(shí)間測試

    終端任務(wù)TASK1狀態(tài)下創(chuàng)建了實(shí)時(shí)任務(wù)TASK2(包括顯示clk_n的值和一個(gè)32次的累加),按鍵中斷模擬突發(fā)事件,此時(shí)允許響應(yīng)中斷(最大響應(yīng)時(shí)間時(shí)需要加上最大關(guān)中斷時(shí)間),中斷服務(wù)程序第一條程序是記錄當(dāng)前clk_n_1的值,然后就緒任務(wù)TASK2,立馬進(jìn)行調(diào)度,搶占終端任務(wù)TASK1。TASK2運(yùn)行的第一條程序是記錄當(dāng)前clk_n_2的值。所以實(shí)時(shí)任務(wù)TASK2的響應(yīng)時(shí)間=(clk_n_2-clk_n_1)*62.5ns+最大關(guān)中斷時(shí)間。同樣方法本實(shí)驗(yàn)測量了任務(wù)上下文切換時(shí)間和最大關(guān)中斷時(shí)間。

    與文獻(xiàn)[12]作對比,得到表1實(shí)時(shí)任務(wù)重要性能指標(biāo)對比。

    表1 實(shí)時(shí)任務(wù)重要指標(biāo)性能對比/μs

    文獻(xiàn)[12]的任務(wù)響應(yīng)時(shí)間、任務(wù)上下文切換時(shí)間、最大關(guān)中斷時(shí)間分別為2133 μs、60 μs、1687 μs,基于堆棧處理器的Forth實(shí)時(shí)多任務(wù)調(diào)度的實(shí)時(shí)任務(wù)響應(yīng)時(shí)間、任務(wù)上下文切換時(shí)間、最大關(guān)中斷時(shí)間分別為46.69 μs、13.44 μs、21.75 μs。實(shí)時(shí)多任務(wù)架構(gòu)的堆棧處理器的實(shí)時(shí)任務(wù)響應(yīng)時(shí)間、任務(wù)上下文時(shí)間和最大關(guān)中斷時(shí)間非??欤啾扔诨诩拇嫫魈幚砥鞯腇orth實(shí)時(shí)多任務(wù)調(diào)度,能完成任務(wù)結(jié)束時(shí)間有嚴(yán)格約束的實(shí)時(shí)任務(wù)。

    另外本文在Xilinx Spartan-6 FPGA實(shí)驗(yàn)板中以100 MHz的時(shí)鐘頻率運(yùn)行時(shí)測得基于堆棧處理器的Forth實(shí)時(shí)多任務(wù)調(diào)度實(shí)時(shí)任務(wù)響應(yīng)、上下文切換、最大關(guān)中斷時(shí)間分別為7.47 μs、2.15 μs、3.48 μs。

    4 結(jié)束語

    本文利用ALU指令集中空閑位置設(shè)計(jì)了適合實(shí)時(shí)多任務(wù)的sp!、rp!、t→[R]、timer_on、timer_off、intrpt_on、intrpt_off和clk_n指令。引入計(jì)時(shí)器為分時(shí)調(diào)度提供“滴答”時(shí)標(biāo),通過簡單的中斷機(jī)制為實(shí)時(shí)調(diào)度提供啟停信號。采用多任務(wù)堆棧技術(shù),加深堆棧深度,使每個(gè)實(shí)時(shí)任務(wù)都擁有獨(dú)立的堆??臻g,并且支持多個(gè)非實(shí)時(shí)任務(wù)共用同一硬件堆棧。實(shí)驗(yàn)方面,本文設(shè)計(jì)了基于優(yōu)先級的搶占式與時(shí)間片輪轉(zhuǎn)調(diào)度,可實(shí)現(xiàn)實(shí)時(shí)多任務(wù)調(diào)度。通過增加的指令clk_n統(tǒng)計(jì)系統(tǒng)時(shí)鐘跳轉(zhuǎn)次數(shù),測量出最大任務(wù)響應(yīng)、最大任務(wù)上下文切換和最大關(guān)中斷時(shí)系統(tǒng)時(shí)鐘跳轉(zhuǎn)次數(shù)。通過與基于寄存器處理器的Forth實(shí)時(shí)多任務(wù)調(diào)度作比較,得出以基于堆棧處理器的Forth實(shí)時(shí)多任務(wù)調(diào)度實(shí)時(shí)任務(wù)響應(yīng)時(shí)間快,任務(wù)上下文切換時(shí)間短,關(guān)中斷完成迅速等特點(diǎn)。實(shí)驗(yàn)結(jié)果表明,該設(shè)計(jì)是一種快速低切換開銷的Forth堆棧處理器架構(gòu),可滿足任務(wù)啟動/結(jié)束時(shí)間有嚴(yán)格約束的實(shí)時(shí)任務(wù),對當(dāng)前Forth堆棧處理器研究發(fā)展具有一定的現(xiàn)實(shí)意義。

    快速低切換開銷的Forth堆棧處理器架構(gòu)還有很大的發(fā)展空間,下一步將會在本文研究的基礎(chǔ)上,對主從式異構(gòu)多核Forth堆棧處理器如何進(jìn)行快速低切換開銷的實(shí)時(shí)多任務(wù)調(diào)度進(jìn)行研究。

    猜你喜歡
    堆棧實(shí)時(shí)性中斷
    基于規(guī)則實(shí)時(shí)性的端云動態(tài)分配方法研究
    嵌入式軟件堆棧溢出的動態(tài)檢測方案設(shè)計(jì)*
    基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實(shí)時(shí)性仿真
    跟蹤導(dǎo)練(二)(5)
    千里移防,衛(wèi)勤保障不中斷
    解放軍健康(2017年5期)2017-08-01 06:27:44
    基于堆棧自編碼降維的武器裝備體系效能預(yù)測
    航空電子AFDX與AVB傳輸實(shí)時(shí)性抗干擾對比
    一種車載Profibus總線系統(tǒng)的實(shí)時(shí)性分析
    AT89C51與中斷有關(guān)的寄存器功能表解
    FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
    听说在线观看完整版免费高清| 老司机午夜福利在线观看视频| 女人高潮潮喷娇喘18禁视频| 国产高清视频在线观看网站| 国产精品一区二区精品视频观看| 精品久久久久久久人妻蜜臀av| 少妇熟女aⅴ在线视频| 少妇的丰满在线观看| xxx96com| 757午夜福利合集在线观看| 欧美日韩中文字幕国产精品一区二区三区| 观看美女的网站| 亚洲无线在线观看| 九色国产91popny在线| 舔av片在线| 啦啦啦免费观看视频1| 不卡av一区二区三区| 欧美极品一区二区三区四区| 免费看十八禁软件| 中文字幕人妻丝袜一区二区| 精品电影一区二区在线| 精品熟女少妇八av免费久了| 亚洲一区二区三区色噜噜| 99精品在免费线老司机午夜| 亚洲欧美激情综合另类| 我要搜黄色片| 18禁美女被吸乳视频| 夜夜爽天天搞| 成年人黄色毛片网站| 国产精品美女特级片免费视频播放器 | 国产亚洲av高清不卡| 国产伦精品一区二区三区四那| 亚洲av片天天在线观看| 亚洲在线自拍视频| 毛片女人毛片| 亚洲狠狠婷婷综合久久图片| 19禁男女啪啪无遮挡网站| 亚洲精品色激情综合| 香蕉av资源在线| 国产一区二区在线观看日韩 | 性欧美人与动物交配| 天堂√8在线中文| 人人妻人人澡欧美一区二区| 身体一侧抽搐| av福利片在线观看| 免费看光身美女| 欧美绝顶高潮抽搐喷水| 黑人操中国人逼视频| 色综合婷婷激情| 国产av麻豆久久久久久久| 国产精品电影一区二区三区| 日日夜夜操网爽| 丁香六月欧美| 黑人操中国人逼视频| 搡老熟女国产l中国老女人| 中文字幕最新亚洲高清| av片东京热男人的天堂| 麻豆一二三区av精品| 亚洲欧美精品综合久久99| 欧美中文综合在线视频| 国产高清三级在线| 黑人欧美特级aaaaaa片| 亚洲人成网站高清观看| 高潮久久久久久久久久久不卡| 91老司机精品| 99国产精品99久久久久| 香蕉久久夜色| 女同久久另类99精品国产91| 国产精品99久久久久久久久| 黄频高清免费视频| 九色成人免费人妻av| 国产主播在线观看一区二区| 99国产精品一区二区三区| 日韩欧美在线二视频| 欧美日韩一级在线毛片| 99久久国产精品久久久| 黄色片一级片一级黄色片| 国产成人av教育| 两性夫妻黄色片| 国产精品亚洲av一区麻豆| 亚洲午夜理论影院| 国产又色又爽无遮挡免费看| 一边摸一边抽搐一进一小说| 免费观看精品视频网站| 日本五十路高清| 最近视频中文字幕2019在线8| 非洲黑人性xxxx精品又粗又长| 精品久久久久久久人妻蜜臀av| 大型黄色视频在线免费观看| 制服丝袜大香蕉在线| 老司机午夜福利在线观看视频| 久久久久国产精品人妻aⅴ院| 一级a爱片免费观看的视频| 51午夜福利影视在线观看| 老司机午夜福利在线观看视频| 国内毛片毛片毛片毛片毛片| 一个人免费在线观看电影 | 制服人妻中文乱码| 国产熟女xx| 亚洲专区国产一区二区| 人妻夜夜爽99麻豆av| 五月伊人婷婷丁香| 黄片大片在线免费观看| 啦啦啦韩国在线观看视频| 18禁观看日本| 午夜亚洲福利在线播放| 亚洲第一电影网av| 一区二区三区高清视频在线| 偷拍熟女少妇极品色| 久久久久国产一级毛片高清牌| 亚洲午夜精品一区,二区,三区| 九九久久精品国产亚洲av麻豆 | 欧美高清成人免费视频www| 99国产极品粉嫩在线观看| 日韩欧美免费精品| 成人18禁在线播放| 在线观看免费视频日本深夜| 久久精品综合一区二区三区| 国产v大片淫在线免费观看| 手机成人av网站| 久久婷婷人人爽人人干人人爱| a在线观看视频网站| 亚洲在线观看片| ponron亚洲| 亚洲av电影在线进入| 99久久精品国产亚洲精品| 亚洲国产欧美网| 亚洲欧美日韩无卡精品| 免费看十八禁软件| 人人妻人人看人人澡| 国产三级在线视频| 欧美成人一区二区免费高清观看 | or卡值多少钱| 亚洲国产中文字幕在线视频| 久久久久久人人人人人| 亚洲欧美一区二区三区黑人| 亚洲在线自拍视频| 日韩成人在线观看一区二区三区| 性色avwww在线观看| 久久久精品大字幕| 无遮挡黄片免费观看| 欧美在线一区亚洲| 成人一区二区视频在线观看| 五月伊人婷婷丁香| 久久久国产成人免费| 久久久久久久久中文| 色在线成人网| www.www免费av| 日日夜夜操网爽| av中文乱码字幕在线| 亚洲av熟女| 伦理电影免费视频| 午夜福利高清视频| 69av精品久久久久久| 久久午夜综合久久蜜桃| 人人妻人人澡欧美一区二区| 禁无遮挡网站| 一个人看视频在线观看www免费 | 麻豆成人午夜福利视频| 欧美精品啪啪一区二区三区| www.999成人在线观看| 国产成人一区二区三区免费视频网站| 日韩精品中文字幕看吧| 波多野结衣高清作品| 精品无人区乱码1区二区| 国内精品一区二区在线观看| 久久精品影院6| av视频在线观看入口| 午夜免费激情av| 欧美黑人欧美精品刺激| 亚洲av日韩精品久久久久久密| 亚洲av熟女| 欧美成人免费av一区二区三区| 亚洲自偷自拍图片 自拍| 神马国产精品三级电影在线观看| 999精品在线视频| 精品国产美女av久久久久小说| 九九热线精品视视频播放| 亚洲黑人精品在线| 久99久视频精品免费| 蜜桃久久精品国产亚洲av| 两性午夜刺激爽爽歪歪视频在线观看| 日本五十路高清| 亚洲无线在线观看| 成人性生交大片免费视频hd| 九色国产91popny在线| 中文亚洲av片在线观看爽| 一区福利在线观看| 国产高清有码在线观看视频| 久久久国产成人精品二区| 亚洲一区二区三区不卡视频| 午夜福利在线在线| 99在线人妻在线中文字幕| 成人性生交大片免费视频hd| 国产1区2区3区精品| 国产高清视频在线播放一区| 亚洲,欧美精品.| 亚洲五月婷婷丁香| 国产成人系列免费观看| 久久久久亚洲av毛片大全| 免费av毛片视频| 91在线精品国自产拍蜜月 | 丝袜人妻中文字幕| 国产69精品久久久久777片 | 亚洲黑人精品在线| 久9热在线精品视频| 人妻丰满熟妇av一区二区三区| 999久久久国产精品视频| 90打野战视频偷拍视频| 精品一区二区三区视频在线 | 99久久精品国产亚洲精品| 一级毛片高清免费大全| 日韩欧美 国产精品| 国产欧美日韩精品亚洲av| 好男人在线观看高清免费视频| 精品久久久久久久久久免费视频| 亚洲熟女毛片儿| 国产蜜桃级精品一区二区三区| 男女视频在线观看网站免费| 人妻久久中文字幕网| 级片在线观看| 日韩国内少妇激情av| avwww免费| 桃红色精品国产亚洲av| 麻豆成人午夜福利视频| 一区二区三区国产精品乱码| 日韩精品青青久久久久久| 中文字幕熟女人妻在线| 欧美色欧美亚洲另类二区| 亚洲国产欧美网| av国产免费在线观看| 性色avwww在线观看| 色综合婷婷激情| 国产成人系列免费观看| 国产高清有码在线观看视频| 欧美另类亚洲清纯唯美| 麻豆成人av在线观看| 草草在线视频免费看| 久久久久久久午夜电影| 身体一侧抽搐| 国产精品免费一区二区三区在线| 成年女人永久免费观看视频| 精品99又大又爽又粗少妇毛片 | 亚洲一区二区三区不卡视频| 久久久久亚洲av毛片大全| 国产精品久久久久久亚洲av鲁大| 波多野结衣高清作品| 男女视频在线观看网站免费| 99久久成人亚洲精品观看| 午夜福利在线观看免费完整高清在 | 麻豆国产97在线/欧美| 狂野欧美白嫩少妇大欣赏| 亚洲午夜理论影院| 啦啦啦免费观看视频1| 免费人成视频x8x8入口观看| 精品久久久久久成人av| 婷婷精品国产亚洲av| 美女黄网站色视频| 成人av在线播放网站| 看片在线看免费视频| 婷婷精品国产亚洲av在线| 制服丝袜大香蕉在线| 怎么达到女性高潮| 香蕉av资源在线| 久久草成人影院| 成人国产一区最新在线观看| 久9热在线精品视频| 亚洲欧美精品综合一区二区三区| 91在线精品国自产拍蜜月 | av天堂在线播放| 久久九九热精品免费| 国产乱人伦免费视频| 国产精品av久久久久免费| 人妻丰满熟妇av一区二区三区| 99久久精品热视频| 国产成人啪精品午夜网站| 村上凉子中文字幕在线| 欧美色视频一区免费| 三级男女做爰猛烈吃奶摸视频| 在线观看美女被高潮喷水网站 | 午夜激情欧美在线| 亚洲 欧美 日韩 在线 免费| 十八禁人妻一区二区| 激情在线观看视频在线高清| 亚洲性夜色夜夜综合| 中文在线观看免费www的网站| 一级a爱片免费观看的视频| 午夜激情欧美在线| 大型黄色视频在线免费观看| 国产淫片久久久久久久久 | 国产高清三级在线| 国产精品,欧美在线| 色综合欧美亚洲国产小说| 国产av在哪里看| 精品熟女少妇八av免费久了| 一区二区三区高清视频在线| 亚洲国产色片| 国产高清视频在线播放一区| 麻豆成人午夜福利视频| 每晚都被弄得嗷嗷叫到高潮| 欧美色视频一区免费| 午夜两性在线视频| 俺也久久电影网| 白带黄色成豆腐渣| 欧美zozozo另类| 成人永久免费在线观看视频| 免费看美女性在线毛片视频| 久久精品国产综合久久久| 国产欧美日韩精品亚洲av| 最新美女视频免费是黄的| 久久这里只有精品中国| 操出白浆在线播放| 亚洲午夜精品一区,二区,三区| 午夜a级毛片| 中文在线观看免费www的网站| 日韩中文字幕欧美一区二区| 亚洲七黄色美女视频| 一级毛片高清免费大全| 日韩欧美国产一区二区入口| 男女视频在线观看网站免费| 国产欧美日韩精品一区二区| 国产不卡一卡二| 在线观看日韩欧美| 国产毛片a区久久久久| 欧美黑人欧美精品刺激| 亚洲精品456在线播放app | 精品国产美女av久久久久小说| 狂野欧美白嫩少妇大欣赏| 久久国产精品影院| 国产一区二区三区在线臀色熟女| 黄色丝袜av网址大全| 成年女人看的毛片在线观看| 免费大片18禁| 99热精品在线国产| 婷婷六月久久综合丁香| 美女cb高潮喷水在线观看 | 视频区欧美日本亚洲| 一卡2卡三卡四卡精品乱码亚洲| 午夜两性在线视频| 精品久久久久久久毛片微露脸| 国产久久久一区二区三区| 国内精品美女久久久久久| 亚洲av第一区精品v没综合| 国产在线精品亚洲第一网站| 亚洲真实伦在线观看| 麻豆av在线久日| 免费一级毛片在线播放高清视频| 国产一区在线观看成人免费| 午夜福利视频1000在线观看| 91九色精品人成在线观看| 国产欧美日韩一区二区三| 久久久色成人| 免费无遮挡裸体视频| 两个人视频免费观看高清| 日韩国内少妇激情av| 精品免费久久久久久久清纯| 亚洲午夜精品一区,二区,三区| 最近最新中文字幕大全免费视频| 国产黄片美女视频| 狠狠狠狠99中文字幕| 日本熟妇午夜| 天天躁日日操中文字幕| av天堂中文字幕网| 亚洲五月婷婷丁香| 人妻夜夜爽99麻豆av| 欧美色视频一区免费| 人妻夜夜爽99麻豆av| 精品一区二区三区视频在线 | 亚洲国产欧美人成| 看片在线看免费视频| 久久久久久国产a免费观看| 国产精品电影一区二区三区| 淫秽高清视频在线观看| 国产午夜精品论理片| 制服丝袜大香蕉在线| 国产精品99久久久久久久久| cao死你这个sao货| 精品不卡国产一区二区三区| 两性夫妻黄色片| 999精品在线视频| 麻豆成人午夜福利视频| 神马国产精品三级电影在线观看| 国产视频内射| 美女午夜性视频免费| 精品久久久久久成人av| 18禁国产床啪视频网站| 亚洲 欧美一区二区三区| 床上黄色一级片| 成人精品一区二区免费| 少妇裸体淫交视频免费看高清| 特级一级黄色大片| 老鸭窝网址在线观看| 一个人看的www免费观看视频| 最近最新免费中文字幕在线| 中文亚洲av片在线观看爽| 国产亚洲精品久久久com| 黄色 视频免费看| 国模一区二区三区四区视频 | 天天躁日日操中文字幕| 精品国产乱子伦一区二区三区| www日本黄色视频网| 狂野欧美白嫩少妇大欣赏| 12—13女人毛片做爰片一| 亚洲五月婷婷丁香| h日本视频在线播放| 男女之事视频高清在线观看| 国产精品一区二区精品视频观看| 嫩草影院入口| 亚洲专区字幕在线| 亚洲熟妇熟女久久| 色吧在线观看| 国产成人一区二区三区免费视频网站| 国产精品一区二区精品视频观看| 国产高清视频在线观看网站| 欧美国产日韩亚洲一区| 搡老岳熟女国产| 精品无人区乱码1区二区| 免费无遮挡裸体视频| 午夜亚洲福利在线播放| 99热精品在线国产| 国产精品久久久久久精品电影| bbb黄色大片| 日韩大尺度精品在线看网址| 亚洲国产看品久久| 99久久国产精品久久久| 小说图片视频综合网站| 国产精品女同一区二区软件 | 午夜日韩欧美国产| 欧美黑人欧美精品刺激| 国产久久久一区二区三区| 亚洲美女黄片视频| 三级毛片av免费| 国产99白浆流出| 亚洲aⅴ乱码一区二区在线播放| 91在线观看av| 国产一区二区激情短视频| 国产综合懂色| 日韩 欧美 亚洲 中文字幕| 国产日本99.免费观看| 999久久久国产精品视频| 成年人黄色毛片网站| 黑人巨大精品欧美一区二区mp4| 午夜亚洲福利在线播放| 久久久久久久久中文| 变态另类丝袜制服| 一本精品99久久精品77| 亚洲国产欧洲综合997久久,| netflix在线观看网站| 国产伦人伦偷精品视频| 国产精品亚洲一级av第二区| 最近在线观看免费完整版| 男人舔奶头视频| 99久久综合精品五月天人人| 黄片小视频在线播放| 国产1区2区3区精品| 制服丝袜大香蕉在线| 国产黄片美女视频| 国产淫片久久久久久久久 | 国产伦在线观看视频一区| 亚洲熟女毛片儿| 夜夜爽天天搞| 人妻夜夜爽99麻豆av| aaaaa片日本免费| 啦啦啦免费观看视频1| 国产又黄又爽又无遮挡在线| 淫秽高清视频在线观看| 亚洲av五月六月丁香网| 成年人黄色毛片网站| 亚洲精品在线观看二区| 日本三级黄在线观看| 天堂√8在线中文| 香蕉久久夜色| 午夜福利在线观看吧| 一进一出抽搐gif免费好疼| xxxwww97欧美| 色在线成人网| 国产单亲对白刺激| 五月伊人婷婷丁香| 天堂网av新在线| 黄色视频,在线免费观看| 在线十欧美十亚洲十日本专区| 99riav亚洲国产免费| 亚洲电影在线观看av| 一边摸一边抽搐一进一小说| 久久国产精品影院| 国产麻豆成人av免费视频| 日本与韩国留学比较| 久久久久性生活片| 日本与韩国留学比较| 欧美中文综合在线视频| 亚洲精品美女久久av网站| 欧美乱码精品一区二区三区| 欧美黑人巨大hd| 每晚都被弄得嗷嗷叫到高潮| 国产v大片淫在线免费观看| 日韩欧美一区二区三区在线观看| 美女被艹到高潮喷水动态| 日韩欧美免费精品| 女同久久另类99精品国产91| x7x7x7水蜜桃| 日韩欧美一区二区三区在线观看| 一级毛片高清免费大全| 国产精品久久久久久人妻精品电影| 欧美日韩黄片免| 首页视频小说图片口味搜索| 黄片小视频在线播放| 欧美最黄视频在线播放免费| 欧美黑人欧美精品刺激| 国产精品一区二区免费欧美| 亚洲精品美女久久久久99蜜臀| 天堂av国产一区二区熟女人妻| a级毛片a级免费在线| 欧美日韩国产亚洲二区| 午夜免费激情av| 亚洲真实伦在线观看| 伦理电影免费视频| or卡值多少钱| 欧美日韩综合久久久久久 | 成人特级黄色片久久久久久久| 非洲黑人性xxxx精品又粗又长| 久久精品aⅴ一区二区三区四区| 可以在线观看毛片的网站| 黄频高清免费视频| 欧美日韩黄片免| 狂野欧美激情性xxxx| 亚洲精品色激情综合| 欧美乱色亚洲激情| 成年人黄色毛片网站| 日韩成人在线观看一区二区三区| xxx96com| 国产精品1区2区在线观看.| 女警被强在线播放| 草草在线视频免费看| 国产精品电影一区二区三区| 亚洲aⅴ乱码一区二区在线播放| 每晚都被弄得嗷嗷叫到高潮| 成人亚洲精品av一区二区| 久久久水蜜桃国产精品网| 久久久久国产精品人妻aⅴ院| 欧美成狂野欧美在线观看| 无遮挡黄片免费观看| 亚洲在线自拍视频| 狠狠狠狠99中文字幕| 悠悠久久av| 欧美日韩亚洲国产一区二区在线观看| 床上黄色一级片| 亚洲色图av天堂| 99久久国产精品久久久| 免费av毛片视频| 在线国产一区二区在线| 麻豆av在线久日| 国产99白浆流出| 午夜激情欧美在线| 亚洲国产精品sss在线观看| 亚洲国产中文字幕在线视频| 99热只有精品国产| 欧美一区二区国产精品久久精品| 日日摸夜夜添夜夜添小说| 俄罗斯特黄特色一大片| 免费在线观看成人毛片| 亚洲国产精品合色在线| 女生性感内裤真人,穿戴方法视频| 国产aⅴ精品一区二区三区波| 变态另类丝袜制服| 免费一级毛片在线播放高清视频| 叶爱在线成人免费视频播放| 久久久久国产精品人妻aⅴ院| 男女之事视频高清在线观看| 黄色成人免费大全| 一级作爱视频免费观看| 亚洲色图av天堂| 最近在线观看免费完整版| 亚洲美女黄片视频| 午夜久久久久精精品| 国产精品日韩av在线免费观看| 真实男女啪啪啪动态图| 午夜福利免费观看在线| 婷婷亚洲欧美| 精品一区二区三区视频在线 | 男人舔女人的私密视频| 两人在一起打扑克的视频| 精华霜和精华液先用哪个| 国产激情久久老熟女| 亚洲av美国av| 国产成人av激情在线播放| 波多野结衣高清作品| 99久国产av精品| 91麻豆精品激情在线观看国产| 免费在线观看日本一区| 嫩草影院精品99| 国产探花在线观看一区二区| 久久中文字幕人妻熟女| 亚洲无线观看免费| 麻豆av在线久日| 又黄又爽又免费观看的视频| 少妇裸体淫交视频免费看高清| 黑人巨大精品欧美一区二区mp4| 18禁黄网站禁片午夜丰满| 在线视频色国产色| 精品久久久久久久久久久久久| 国产午夜精品久久久久久| 老司机深夜福利视频在线观看| 一个人观看的视频www高清免费观看 | 一本精品99久久精品77| 亚洲av日韩精品久久久久久密| 不卡av一区二区三区| 丝袜人妻中文字幕| 好男人电影高清在线观看| 成人三级做爰电影| 国产高清视频在线观看网站| 91在线观看av| 18美女黄网站色大片免费观看| 国内少妇人妻偷人精品xxx网站 | 无遮挡黄片免费观看| 天堂影院成人在线观看|