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

    基于RISC-V的計(jì)算機(jī)系統(tǒng)綜合實(shí)驗(yàn)設(shè)計(jì)

    2021-04-22 10:06:42孫衛(wèi)真劉雪松朱威浦
    關(guān)鍵詞:開(kāi)發(fā)板內(nèi)核串口

    孫衛(wèi)真,劉雪松,朱威浦,向 勇

    (1.首都師范大學(xué) 信息工程學(xué)院,北京 100048;2.中國(guó)科學(xué)院 計(jì)算技術(shù)研究所,北京 101407;3.清華大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系,北京 100084)

    0 引 言

    目前,高校進(jìn)行計(jì)算機(jī)系統(tǒng)教學(xué)實(shí)驗(yàn)主要有以下幾種教學(xué)方式:其一是使用純硬件搭建實(shí)驗(yàn)平臺(tái),雖該方式可深入接觸計(jì)算機(jī)硬件模塊,但實(shí)驗(yàn)操作機(jī)械死板、硬件平臺(tái)開(kāi)發(fā)成本較高;其二是采用軟件系統(tǒng)仿真的方式,該方法成本較低、易于上手,但受教育者不能在實(shí)驗(yàn)過(guò)程中較好體會(huì)到計(jì)算機(jī)與硬件的緊密結(jié)合[1]。

    為了優(yōu)化上述問(wèn)題,實(shí)現(xiàn)設(shè)計(jì)目標(biāo),本文從硬件支持、處理器構(gòu)建、系統(tǒng)編程語(yǔ)言選擇三方面考慮,構(gòu)建計(jì)算機(jī)系統(tǒng)實(shí)驗(yàn)平臺(tái)。首先,F(xiàn)PGA開(kāi)發(fā)板能為學(xué)生提供軟硬件協(xié)作的基本實(shí)驗(yàn)環(huán)境,并能結(jié)合特定的實(shí)驗(yàn)設(shè)計(jì)達(dá)到幫助學(xué)生建立計(jì)算機(jī)系統(tǒng)思維的目標(biāo)[2-5],因此將其作為本研究的硬件模塊平臺(tái)。其次,RISC-V因具有完全開(kāi)源、架構(gòu)簡(jiǎn)單、易于移植、模塊化設(shè)計(jì)等優(yōu)勢(shì)被研究人員用來(lái)構(gòu)建新的片上處理器[6,7]。最后,Rust語(yǔ)言作為新興系統(tǒng)編程語(yǔ)言致力于解決高并發(fā)和高安全性系統(tǒng)問(wèn)題[8],目前已有許多開(kāi)源社區(qū)的開(kāi)發(fā)人員基于Rust語(yǔ)言對(duì)操作系統(tǒng)的開(kāi)發(fā)進(jìn)行了嘗試。清華大學(xué)教學(xué)操作系統(tǒng)rCore[9]的實(shí)現(xiàn)就具有很好的代表性。

    為緊跟技術(shù)發(fā)展并及時(shí)更新實(shí)驗(yàn)內(nèi)容,本研究以基于RISC-V CPU的組成原理實(shí)驗(yàn)、基于Rust語(yǔ)言的教學(xué)操作系統(tǒng)實(shí)驗(yàn)作為本文的實(shí)現(xiàn)案例,幫助學(xué)生深入理解計(jì)算機(jī)系統(tǒng)組成、完善知識(shí)結(jié)構(gòu),在資源與成本受限的情況下,設(shè)計(jì)滿(mǎn)足高校需求的軟硬件結(jié)合的計(jì)算機(jī)系統(tǒng)綜合實(shí)驗(yàn)平臺(tái)。

    1 基于RISC-V的計(jì)算機(jī)系統(tǒng)綜合實(shí)驗(yàn)

    基于RISC-V的計(jì)算機(jī)系統(tǒng)綜合實(shí)驗(yàn)主要包含兩部分內(nèi)容,其一是在FPGA開(kāi)發(fā)板上搭建硬件系統(tǒng)實(shí)驗(yàn)平臺(tái)以完成計(jì)算機(jī)組成原理實(shí)驗(yàn),其二是在自己搭建的硬件平臺(tái)上移植基于Rust語(yǔ)言的rCore教學(xué)操作系統(tǒng)并完成操作系統(tǒng)的各個(gè)功能模塊實(shí)驗(yàn)。綜合實(shí)驗(yàn)各模塊組成關(guān)系如圖1所示。

    圖1 綜合實(shí)驗(yàn)?zāi)K

    如圖1所示在計(jì)算機(jī)系統(tǒng)實(shí)驗(yàn)平臺(tái)中實(shí)線框表示硬件模塊、虛線框表示引導(dǎo)模塊、點(diǎn)線表示內(nèi)核模塊、長(zhǎng)短相間虛線表示用戶(hù)程序模塊,各個(gè)模塊按圖示方式組合構(gòu)成教學(xué)實(shí)驗(yàn)平臺(tái)。

    硬件模塊的參考實(shí)現(xiàn)首先在Quartus中實(shí)現(xiàn)基于RISC-V的picorv32 CPU[10]封裝,其次添加相關(guān)外設(shè)并完成總線互連,在完成硬件平臺(tái)搭建后,將其燒錄至低成本的FPGA開(kāi)發(fā)板STEP-CYC10中。學(xué)生可根據(jù)計(jì)算機(jī)組成原理實(shí)驗(yàn)的參考實(shí)現(xiàn)替換CPU或其它外設(shè)模塊。為檢測(cè)硬件平臺(tái)搭建的正確性,實(shí)驗(yàn)將通過(guò)RISC-V標(biāo)準(zhǔn)指令集測(cè)試對(duì)硬件平臺(tái)進(jìn)行測(cè)試,最終完成組成原理實(shí)驗(yàn)的參考實(shí)現(xiàn)。

    軟件模塊的參考實(shí)現(xiàn)首先設(shè)計(jì)與硬件系統(tǒng)模塊相匹配的引導(dǎo)程序,其次移植基于Rust語(yǔ)言的rCore教學(xué)操作系統(tǒng)。為保證能夠在STEP-CYC10有限的存儲(chǔ)資源下完成更豐富的軟件功能,實(shí)驗(yàn)設(shè)計(jì)通過(guò)對(duì)rCore內(nèi)核與用戶(hù)程序進(jìn)行壓縮處理得到內(nèi)核壓縮鏡像后作為數(shù)據(jù)初始化硬件平臺(tái)ROM存儲(chǔ)模塊。引導(dǎo)程序、解壓縮模塊、加載模塊將作為實(shí)驗(yàn)支持提供給學(xué)生,學(xué)生需在操作系統(tǒng)參考實(shí)現(xiàn)框架下完成最小化內(nèi)核、系統(tǒng)調(diào)用、中斷服務(wù)程序與設(shè)備驅(qū)動(dòng)等實(shí)驗(yàn)。

    通過(guò)上述硬件實(shí)驗(yàn)與軟件實(shí)驗(yàn)兩個(gè)層面的結(jié)合,本文完成了計(jì)算機(jī)系統(tǒng)教學(xué)實(shí)驗(yàn)平臺(tái)的搭建與實(shí)驗(yàn)案例的展現(xiàn),達(dá)到了在低成本前提下設(shè)計(jì)基于RISC-V CPU與Rust操作系統(tǒng)教學(xué)實(shí)驗(yàn)內(nèi)容的目的。

    2 FPGA硬件平臺(tái)和組成原理實(shí)驗(yàn)

    計(jì)算機(jī)組成原理是計(jì)算機(jī)學(xué)科的專(zhuān)業(yè)核心課程,該課程的教學(xué)目的是使學(xué)生理解計(jì)算機(jī)各個(gè)部件的工作原理、建立計(jì)算機(jī)的整體概念。計(jì)算機(jī)組成原理主要學(xué)習(xí)包括控制器、運(yùn)算器、存儲(chǔ)器、輸入輸出設(shè)備等模塊的設(shè)計(jì)方法、各子系統(tǒng)之間的相互關(guān)系以及相互連接構(gòu)成整機(jī)系統(tǒng)的方法。

    目前,各高校普遍缺乏與計(jì)算機(jī)組成原理實(shí)驗(yàn)課程相配套的實(shí)驗(yàn)教學(xué)平臺(tái),或者存在教學(xué)平臺(tái)可用性不強(qiáng)、成本過(guò)高等問(wèn)題。針對(duì)以上問(wèn)題,在滿(mǎn)足組成原理實(shí)驗(yàn)基本需求的前提下,實(shí)驗(yàn)通過(guò)提供簡(jiǎn)易的FPGA開(kāi)發(fā)板作為硬件平臺(tái),讓學(xué)生使用Verilog設(shè)計(jì)CPU,實(shí)現(xiàn)運(yùn)算器和控制器等主要部件。通過(guò)統(tǒng)一的外部總線接口,CPU能夠與預(yù)設(shè)的各個(gè)外部設(shè)備控制器連接形成片上系統(tǒng),然后燒錄至FPGA中形成計(jì)算機(jī)硬件系統(tǒng)。

    2.1 組成原理實(shí)驗(yàn)環(huán)境

    硬件實(shí)驗(yàn)在STEP-CYC10開(kāi)發(fā)板上搭建基于RISC-V CPU 的SoC系統(tǒng),可以使用片上ROM、SDRAM、LED,數(shù)碼管等外部設(shè)備。實(shí)驗(yàn)將硬件系統(tǒng)中連同CPU在內(nèi)的各個(gè)部分模塊化。學(xué)生在遵循統(tǒng)一的總線接口協(xié)議設(shè)計(jì)CPU和外設(shè)控制模塊后,可以將各模塊進(jìn)行互連以完成SoC系統(tǒng)的搭建。模塊化的實(shí)驗(yàn)平臺(tái)為學(xué)生進(jìn)行計(jì)算機(jī)組成原理實(shí)驗(yàn)提供了多種選擇,學(xué)生可根據(jù)實(shí)驗(yàn)需求替換、增加實(shí)驗(yàn)?zāi)K。

    2.1.1 STEP-CYC10開(kāi)發(fā)板

    目前,市面上通用的FPGA開(kāi)發(fā)板種類(lèi)十分豐富,出于對(duì)成本的考慮,本研究采用國(guó)產(chǎn)小腳丫STEP-CYC10開(kāi)發(fā)板作為硬件平臺(tái)。小腳丫STEP-CYC10開(kāi)發(fā)板的FPGA芯片有16 000基本邏輯單元,板卡上集成了USB Blaster編程器、SDRAM、FLASH等多種外設(shè),基本可以滿(mǎn)足課程實(shí)驗(yàn)的需求。

    2.1.2 Quartus軟件

    STEP-CYC10開(kāi)發(fā)板上集成的FPGA為Altera系列芯片,因此實(shí)驗(yàn)可直接使用其相應(yīng)配套的Quartus作為系統(tǒng)搭建環(huán)境和燒錄工具。此外,Quartus中的Platform Designer還為遵循Avolon總線協(xié)議、AXI總線協(xié)議的IP核提供GUI界面的互連功能。

    2.2 組成原理實(shí)驗(yàn)參考實(shí)現(xiàn)

    將組成原理硬件實(shí)驗(yàn)平臺(tái)搭建完成,給出以picore32 CPU為核心的組成原理實(shí)驗(yàn)參考實(shí)現(xiàn)并敘述CPU外接各外設(shè)接口與模塊的實(shí)現(xiàn)。接下來(lái)分模塊對(duì)組成原理實(shí)驗(yàn)進(jìn)行詳細(xì)闡述。

    2.2.1 硬件實(shí)驗(yàn)?zāi)K化

    實(shí)驗(yàn)設(shè)計(jì)將計(jì)算機(jī)系統(tǒng)的基本部件分為三大模塊,即CPU、存儲(chǔ)器、外部設(shè)備。本實(shí)驗(yàn)將為學(xué)生提供一個(gè)完整的SoC系統(tǒng)作為參考,并讓學(xué)生分別完成3個(gè)基本模塊,然后逐步替換至預(yù)先提供的SoC系統(tǒng)之中,最終完成個(gè)人的SoC系統(tǒng)的設(shè)計(jì)。

    為保證模塊之間互連的可行性,各個(gè)模塊之間的連接需要遵循統(tǒng)一的片上總線協(xié)議。對(duì)于實(shí)現(xiàn)Avolon、AXI總線接口的模塊,可通過(guò)Quartus對(duì)其進(jìn)行連接,在連接完成后由Quartus自行實(shí)現(xiàn)總線類(lèi)型轉(zhuǎn)換。在此實(shí)驗(yàn)設(shè)計(jì)中,總線轉(zhuǎn)接橋?qū)⒆鳛榻M成原理實(shí)驗(yàn)的支持模塊提供給學(xué)生,讓學(xué)生能夠?qū)?shí)驗(yàn)重心置于各模塊的設(shè)計(jì)與實(shí)現(xiàn)上。

    2.2.2 CPU的設(shè)計(jì)與實(shí)現(xiàn)

    CPU的工作原理是計(jì)算機(jī)組成原理課程內(nèi)容的核心,其設(shè)計(jì)與實(shí)現(xiàn)也是本實(shí)驗(yàn)的重中之重。通過(guò)對(duì)數(shù)據(jù)通路和控制通路的構(gòu)建,學(xué)生能夠掌握CPU工作的基本原理,深刻理解控制器和運(yùn)算器的運(yùn)行流程。本實(shí)驗(yàn)提供的CPU參考設(shè)計(jì)是以picorv32 CPU為核心構(gòu)造的AXI總線IP核。picorv32是開(kāi)源的RISC-V軟核,支持多種RISC-V指令集模塊,具有小體積、高頻率與低功率的特點(diǎn)。

    在學(xué)生完成自己CPU的設(shè)計(jì)前,可使用picorv32軟核,通過(guò)Quartus系統(tǒng)集成工具Platform Designer將其封裝為AXI總線接口的IP核模塊以實(shí)現(xiàn)外部模塊的互連。

    2.2.3 存儲(chǔ)器的設(shè)計(jì)與實(shí)現(xiàn)

    存儲(chǔ)器是存儲(chǔ)程序的重要部件,也是計(jì)算機(jī)組成原理中必不可少的一部分。本參考實(shí)驗(yàn)采用片內(nèi)存儲(chǔ)與片外存儲(chǔ)相結(jié)合的方式形成硬件系統(tǒng)的存儲(chǔ)模塊。

    片內(nèi)存儲(chǔ)模塊使用的存儲(chǔ)資源為FPGA內(nèi)部存儲(chǔ)部件,可使用Quartus提供的ROM IP核對(duì)該存儲(chǔ)資源進(jìn)行例化。為使系統(tǒng)正常運(yùn)行,需將上述轉(zhuǎn)換為Intel Hex格式的二進(jìn)制程序隨SoC系統(tǒng)綜合后再下板。

    由于片內(nèi)存儲(chǔ)存儲(chǔ)容量的局限性,軟件系統(tǒng)的功能尤其在操作系統(tǒng)加載時(shí)會(huì)受到一定的影響,為此可在使用片上存儲(chǔ)的基礎(chǔ)上,添加片外存儲(chǔ)資源。STEP-CYC10開(kāi)發(fā)板上集成的SDRAM可提供大小為64 Mb的外部SDRAM存儲(chǔ)資源。SDRAM的啟用、初始化及基本讀寫(xiě)操作可通過(guò)Quartus提供的sdram controller IP核完成。

    實(shí)驗(yàn)過(guò)程中,學(xué)生需要通過(guò)軟件開(kāi)發(fā)工具鏈將程序編譯轉(zhuǎn)換為對(duì)應(yīng)的格式用于初始化片內(nèi)ROM存儲(chǔ)資源,并理解CPU對(duì)于存儲(chǔ)設(shè)備的尋址方式和取數(shù)過(guò)程。

    2.2.4 外部設(shè)備的設(shè)計(jì)與實(shí)現(xiàn)

    外部設(shè)備是計(jì)算機(jī)系統(tǒng)中的重要組成部分,一般分為輸入設(shè)備、輸出設(shè)備和外部存儲(chǔ)設(shè)備,起數(shù)據(jù)傳輸、轉(zhuǎn)入和存儲(chǔ)的作用。STEP-CYC10開(kāi)發(fā)板上集成LED,數(shù)碼管、串口等外部設(shè)備。本實(shí)驗(yàn)設(shè)計(jì)為SoC系統(tǒng)添加GPIO和串口設(shè)備。在SoC上運(yùn)行的程序依賴(lài)于上位機(jī)可實(shí)現(xiàn)簡(jiǎn)易的用戶(hù)交互功能。各外部設(shè)備控制器采用Quartus提供的IP核實(shí)現(xiàn),如串口模塊使用RS-232 IP核、GPIO設(shè)備采用PIO IP核。通過(guò)本模塊的設(shè)計(jì),學(xué)生可以掌握外部設(shè)備與CPU交互的基本原理,外部設(shè)備控制器的工作流程。

    2.2.5 硬件系統(tǒng)的連接

    CPU、存儲(chǔ)器、外部設(shè)備3個(gè)模塊實(shí)現(xiàn)時(shí),若按照預(yù)先規(guī)定的總線接口,則可以直接在Quartus的Platform Designer中通過(guò)GUI連線方式將其連接成為SoC系統(tǒng),極大地簡(jiǎn)化系統(tǒng)連接的實(shí)現(xiàn)流程。在連接硬件系統(tǒng)的過(guò)程中,需要為系統(tǒng)的存儲(chǔ)設(shè)備和外部設(shè)備分配地址空間。本實(shí)驗(yàn)設(shè)計(jì)的SoC系統(tǒng)物理地址空間布局見(jiàn)表1。通過(guò)硬件系統(tǒng)連接實(shí)驗(yàn),學(xué)生可加深對(duì)系統(tǒng)地址空間概念和外部設(shè)備尋址方式的認(rèn)識(shí)。

    表1 物理地址空間布局

    2.3 組成原理實(shí)驗(yàn)建議

    在計(jì)算機(jī)組成原理參考實(shí)現(xiàn)中,封裝后的CPU與各個(gè)外設(shè)模塊IP核均通過(guò)Avalon總線轉(zhuǎn)換器進(jìn)行互連形成完整的組成原理硬件實(shí)驗(yàn)平臺(tái)。為排除運(yùn)行故障需要通過(guò)標(biāo)準(zhǔn)測(cè)試集測(cè)試以驗(yàn)證系統(tǒng)功能,此外也可通過(guò)添加LED與數(shù)碼管模塊檢測(cè)實(shí)驗(yàn)結(jié)果的正確性。

    基于計(jì)算機(jī)組成原理實(shí)驗(yàn)的參考實(shí)現(xiàn),在現(xiàn)有開(kāi)發(fā)環(huán)境Quartus及其自帶編譯工具鏈的基礎(chǔ)上,學(xué)生可用自行設(shè)計(jì)的CPU模塊或其它模塊替換參考實(shí)現(xiàn)中的模塊。實(shí)驗(yàn)平臺(tái)可根據(jù)學(xué)生基礎(chǔ)提供從基本指令集到多種擴(kuò)展的不同難度的實(shí)驗(yàn)。

    3 軟件開(kāi)發(fā)環(huán)境和教學(xué)操作系統(tǒng)rCore

    操作系統(tǒng)實(shí)驗(yàn)是操作系統(tǒng)原理課程的重要組成部分。通過(guò)操作系統(tǒng)實(shí)驗(yàn),學(xué)生可加深對(duì)操作系統(tǒng)運(yùn)行過(guò)程的理解。本操作系統(tǒng)實(shí)驗(yàn)要求學(xué)生在已完成的硬件SoC系統(tǒng)平臺(tái)基礎(chǔ)上設(shè)計(jì)和實(shí)現(xiàn)教學(xué)操作系統(tǒng)rCore核心功能、提供應(yīng)用程序的運(yùn)行環(huán)境。

    3.1 軟件開(kāi)發(fā)工具鏈

    本操作系統(tǒng)實(shí)驗(yàn)使用的實(shí)驗(yàn)環(huán)境為L(zhǎng)inux系統(tǒng)下的開(kāi)發(fā)工具鏈,包括RISC-V編譯工具鏈、Rust編譯工具鏈、qemu模擬器等。實(shí)驗(yàn)依據(jù)現(xiàn)有的RISC-V CPU設(shè)計(jì)實(shí)現(xiàn)小型教學(xué)操作系統(tǒng)rCore,并在qemu模擬器中完成核心功能的驗(yàn)證與調(diào)試,然后根據(jù)硬件系統(tǒng)適應(yīng)性地調(diào)整操作系統(tǒng)的功能,并移植到硬件平臺(tái)。在設(shè)計(jì)實(shí)現(xiàn)操作系統(tǒng)前,實(shí)驗(yàn)將提供RISC-V標(biāo)準(zhǔn)測(cè)試集對(duì)CPU硬件功能進(jìn)行測(cè)試,以減少運(yùn)行操作系統(tǒng)時(shí)硬件可能帶來(lái)的錯(cuò)誤。

    3.2 教學(xué)操作系統(tǒng)rCore實(shí)驗(yàn)的參考實(shí)現(xiàn)

    操作系統(tǒng)實(shí)驗(yàn)設(shè)計(jì)分為3層,分別為引導(dǎo)程序、操作系統(tǒng)內(nèi)核、用戶(hù)程序的設(shè)計(jì)與實(shí)現(xiàn),通過(guò)上述3層結(jié)構(gòu)構(gòu)成完整的軟件系統(tǒng)。

    參考實(shí)現(xiàn)各模塊關(guān)系如圖2所示,引導(dǎo)程序設(shè)計(jì)分為ROM與SDRAM兩段引導(dǎo),包括設(shè)備初始化、解壓縮、內(nèi)核與用戶(hù)程序加載等功能。操作系統(tǒng)內(nèi)核模塊實(shí)現(xiàn)中斷處理、系統(tǒng)調(diào)用、用戶(hù)程序解析等功能。用戶(hù)程序設(shè)計(jì)為如何讓操作系統(tǒng)加載解析ELF用戶(hù)程序,跳轉(zhuǎn)至用戶(hù)空間執(zhí)行用戶(hù)程序。通過(guò)操作系統(tǒng)實(shí)驗(yàn)的3層設(shè)計(jì)實(shí)現(xiàn)可幫助學(xué)生理解操作系統(tǒng)設(shè)計(jì)方法,深化對(duì)操作系統(tǒng)運(yùn)行過(guò)程的理解。具體參考實(shí)現(xiàn)如下。

    圖2 操作系統(tǒng)實(shí)驗(yàn)設(shè)計(jì)結(jié)構(gòu)

    3.2.1 引導(dǎo)程序設(shè)計(jì)與實(shí)現(xiàn)

    引導(dǎo)程序的功能為初始化硬件系統(tǒng)、解析并加載操作系統(tǒng)內(nèi)核至指定地址,并跳轉(zhuǎn)至操作系統(tǒng)運(yùn)行。受FPGA片上資源的限制,本實(shí)驗(yàn)針對(duì)picorv32 CPU設(shè)計(jì)了特定的引導(dǎo)程序。其具體的實(shí)現(xiàn)過(guò)程為:首先,引導(dǎo)程序初始化硬件設(shè)備,提供操作系統(tǒng)內(nèi)核運(yùn)行的基本環(huán)境。其次,引導(dǎo)程序?qū)⒁呀?jīng)放置在引導(dǎo)程序后的內(nèi)核壓縮鏡像解壓至SDRAM后通過(guò)絕對(duì)跳轉(zhuǎn)的方式跳轉(zhuǎn)至SDRAM繼續(xù)完成剩余引導(dǎo)啟動(dòng)工作。最后,引導(dǎo)程序跳轉(zhuǎn)至操作系統(tǒng)入口地址完成內(nèi)核啟動(dòng)。

    為解決片上ROM存儲(chǔ)空間不足導(dǎo)致內(nèi)核鏡像不能加載的問(wèn)題,引導(dǎo)程序中的解壓縮模塊對(duì)內(nèi)核映像進(jìn)行壓縮處理,為操作系統(tǒng)的啟動(dòng)提供支持。實(shí)驗(yàn)將操作系統(tǒng)內(nèi)核鏡像壓縮為gzip格式文件后,轉(zhuǎn)換為數(shù)組嵌入引導(dǎo)程序。引導(dǎo)程序調(diào)用解壓縮庫(kù)tinf[11]將內(nèi)核壓縮鏡像解壓至SDRAM,并通過(guò)絕對(duì)跳轉(zhuǎn)的方式跳轉(zhuǎn)至內(nèi)核入口執(zhí)行操作系統(tǒng)程序。此外,由于直接調(diào)用tinf解壓縮庫(kù)會(huì)占用太多的存儲(chǔ)空間,因此實(shí)驗(yàn)需要對(duì)tinf解壓縮庫(kù)進(jìn)行適應(yīng)性裁剪,最終達(dá)到節(jié)省一半ROM存儲(chǔ)空間的效果。

    3.2.2 操作系統(tǒng)內(nèi)核的設(shè)計(jì)與實(shí)現(xiàn)

    操作系統(tǒng)內(nèi)核的設(shè)計(jì)依賴(lài)于硬件平臺(tái)資源,STEP-CYC10開(kāi)發(fā)板上可用的資源包括48 KB片上存儲(chǔ)資源、UART、GPIO、數(shù)碼管等。其中,操作系統(tǒng)代碼壓縮后存儲(chǔ)至ROM,解壓縮至SDRAM后使系統(tǒng)能夠被CPU正常加載執(zhí)行。SoC中的串口設(shè)備保證了操作系統(tǒng)基本的輸入輸出功能,便于用戶(hù)與實(shí)驗(yàn)平臺(tái)上的操作系統(tǒng)進(jìn)行交互。最后,在SDRAM開(kāi)辟空間保證操作系統(tǒng)在運(yùn)行時(shí)能夠加載數(shù)據(jù)和設(shè)置堆棧等程序運(yùn)行所必須的資源支持。

    (1)rCore教學(xué)操作系統(tǒng)移植

    已有的rCore 操作系統(tǒng) RISC-V版本針對(duì)的硬件開(kāi)發(fā)平臺(tái)為 Sifive 公司發(fā)布的 HiFive Unleashed 開(kāi)發(fā)板。為達(dá)到將 rCore 移植至自行搭建的STEP-CYC10 硬件平臺(tái)的目標(biāo),實(shí)驗(yàn)需修改rCore操作系統(tǒng)的硬件支持,具體內(nèi)容包括修改底層引導(dǎo)程序提供的結(jié)構(gòu)函數(shù),修改依賴(lài)的硬件資源。經(jīng)過(guò)移植后,實(shí)驗(yàn)將選取部分rCore操作系統(tǒng)的功能模塊作為操作系統(tǒng)的實(shí)驗(yàn)提供給學(xué)生。

    (2)最小化內(nèi)核實(shí)驗(yàn)

    操作系統(tǒng)是一個(gè)直接在硬件上執(zhí)行的程序,這使得操作系統(tǒng)的編寫(xiě)過(guò)程與一般直接在系統(tǒng)中運(yùn)行的可執(zhí)行程序不同,其最大特點(diǎn)是無(wú)法使用依賴(lài)于某特定平臺(tái)的函數(shù)庫(kù)。此外,由于目前編譯器沒(méi)有與硬件平臺(tái)一致的目標(biāo)結(jié)構(gòu),其編譯也必須以特殊方式進(jìn)行。最小化內(nèi)核實(shí)驗(yàn)將作為引導(dǎo)實(shí)驗(yàn)使學(xué)生理解操作系統(tǒng)如何運(yùn)行在裸機(jī)環(huán)境之中。實(shí)驗(yàn)參考過(guò)程的步驟如下。

    首先,更改Rust編譯的目標(biāo)架構(gòu),然后使用json文件定義適用于新操作系統(tǒng)的目標(biāo)三元組。在編譯時(shí)通過(guò)--target json文件名指定[12,13]架構(gòu)為riscv,端序?yàn)樾《诵虻刃畔?,同時(shí)指定自定義鏈接腳本對(duì)操作系統(tǒng)進(jìn)行鏈接。

    其次,由于操作系統(tǒng)程序無(wú)法訪問(wèn)標(biāo)準(zhǔn)庫(kù),需要設(shè)置不再鏈接標(biāo)準(zhǔn)庫(kù),不再使用Rust默認(rèn)的函數(shù)入口點(diǎn)[12,13],使得最終編寫(xiě)的程序僅使用Rust語(yǔ)言中不依賴(lài)于特定平臺(tái)的core庫(kù)。

    最后,使用匯編指令完成初始化堆棧功能。完成初始化工作后,通過(guò)call指令跳轉(zhuǎn)到內(nèi)核main函數(shù)執(zhí)行。

    (3)中斷處理實(shí)驗(yàn)

    中斷是保證CPU及時(shí)處理外部設(shè)備請(qǐng)求的關(guān)鍵技術(shù)。中斷處理程序的好壞是操作系統(tǒng)運(yùn)行效率高低的重要影響因素。本實(shí)驗(yàn)的中斷處理參考實(shí)現(xiàn)與picorv32 CPU的功能緊密結(jié)合。在picorv32 CPU中,系統(tǒng)預(yù)設(shè)的中斷信號(hào)類(lèi)型有3類(lèi),分別對(duì)應(yīng)下標(biāo)為0、1、2的中斷掩碼位。中斷掩碼位為0則為時(shí)鐘中斷,中斷掩碼位為1則為異常指令ebreak、ecall與非法指令,中斷掩碼位為3則表示訪存地址不對(duì)齊異常。

    中斷處理函數(shù)的實(shí)現(xiàn)首先需根據(jù)傳入的中斷掩碼判斷中斷類(lèi)型,然后調(diào)用相應(yīng)的處理函數(shù)。不同中斷的處理函數(shù)規(guī)定了統(tǒng)一的參數(shù)接口,第一個(gè)參數(shù)為指向存儲(chǔ)中斷現(xiàn)場(chǎng)通用寄存器的內(nèi)存指針,第二個(gè)參數(shù)為中斷掩碼類(lèi)型,返回值為指向存儲(chǔ)通用寄存器的內(nèi)存指針。處理函數(shù)的具體實(shí)現(xiàn)由學(xué)生根據(jù)實(shí)驗(yàn)要求編寫(xiě)。比如,當(dāng)運(yùn)行遇到ebreak或非法指令時(shí),參考實(shí)現(xiàn)將打印所有寄存器的值作為調(diào)試信息對(duì)軟件進(jìn)行調(diào)試。

    (4)系統(tǒng)調(diào)用實(shí)驗(yàn)

    系統(tǒng)調(diào)用是操作系統(tǒng)保護(hù)系統(tǒng)安全和為用戶(hù)程序提供硬件資源訪問(wèn)的入口的有效手段。為實(shí)現(xiàn)對(duì)上層系統(tǒng)提供調(diào)用接口的功能,本實(shí)驗(yàn)設(shè)計(jì)通過(guò)ecall軟中斷的形式提供系統(tǒng)調(diào)用接口,并定義系統(tǒng)調(diào)用函數(shù)的參數(shù)傳遞規(guī)則。系統(tǒng)調(diào)用函數(shù)的參數(shù)傳遞規(guī)則見(jiàn)表2。

    表2 系統(tǒng)調(diào)用函數(shù)參數(shù)傳遞規(guī)則

    實(shí)驗(yàn)參考設(shè)計(jì)實(shí)現(xiàn)了兩種系統(tǒng)調(diào)用,第一種為SBI_CONSOLE_PUTCHAR系統(tǒng)調(diào)用,即向console打印一個(gè)字符,通過(guò)將第一個(gè)參數(shù)a0傳入的值傳遞給由輸入輸出驅(qū)動(dòng)提供的print_char()函數(shù)實(shí)現(xiàn)功能,返回值為0。第二種為SBI_CONSOLE_GETCHAR系統(tǒng)調(diào)用,即向console打印一個(gè)字符,通過(guò)調(diào)用輸入輸出驅(qū)動(dòng)提供的getchar()函數(shù),對(duì)字符進(jìn)行接收。

    (5)串口驅(qū)動(dòng)實(shí)驗(yàn)

    為了完成操作系統(tǒng)與上位機(jī)的交互,需要實(shí)現(xiàn)串口功能。操作系統(tǒng)通過(guò)串口向上位機(jī)發(fā)送數(shù)據(jù),上位機(jī)接收后,由串口調(diào)試工具進(jìn)行顯示。驅(qū)動(dòng)程序的編寫(xiě)需針對(duì)特定的串口控制器,本實(shí)驗(yàn)參考實(shí)現(xiàn)的硬件平臺(tái)中使用的是RS-232IP核。該硬件需使用的寄存器包括rxdata、txdata、status寄存器。

    串口驅(qū)動(dòng)函數(shù)的實(shí)現(xiàn)為print_char()函數(shù)與get_char()函數(shù)。print_char()函數(shù)的功能為向txdata寄存器發(fā)送數(shù)據(jù),輸入?yún)?shù)為需發(fā)送的字符返回值為0。在發(fā)送數(shù)據(jù)之前,調(diào)用trdy函數(shù)判斷當(dāng)前串口的狀態(tài),若為可發(fā)送狀態(tài),則向txdata寄存器發(fā)送數(shù)據(jù)。getchar()函數(shù)的功能為從rxdata寄存器讀取數(shù)據(jù),無(wú)輸入?yún)?shù),返回值為讀取的寄存器數(shù)據(jù)并將其轉(zhuǎn)換為char類(lèi)型。在讀取數(shù)據(jù)之前,調(diào)用rrdy函數(shù)判斷當(dāng)前串口的狀態(tài),若為可讀取狀態(tài),則從rxdata寄存器讀取數(shù)據(jù)。

    (6)格式化輸出實(shí)驗(yàn)

    格式化輸出是標(biāo)準(zhǔn)函數(shù)調(diào)用庫(kù)中的常見(jiàn)函數(shù),在用戶(hù)交互功能中起到極其重要的作用,也可作為操作系統(tǒng)實(shí)驗(yàn)的一個(gè)調(diào)試手段。本實(shí)驗(yàn)設(shè)計(jì)將依賴(lài)于Rust core庫(kù)實(shí)現(xiàn)println作為格式化輸出函數(shù),其實(shí)現(xiàn)需調(diào)用自行編寫(xiě)的底層函數(shù)。

    實(shí)現(xiàn)格式化輸出時(shí),參考實(shí)現(xiàn)首先編寫(xiě)更為底層的用于輸入輸出的 putchar 和 puts函數(shù),功能分別是輸出單個(gè)字符和輸出字符串,可理解為對(duì)串口驅(qū)動(dòng)函數(shù)的封裝。然后通過(guò)Rust core庫(kù)中帶有用于格式化和打印字符串的庫(kù)fmt實(shí)現(xiàn)println。

    3.2.3 程序鏈接與加載

    由于picorv32 CPU 并未實(shí)現(xiàn)MMU即內(nèi)存管理單元,并且受到內(nèi)存資源限制操作系統(tǒng)無(wú)法實(shí)現(xiàn)內(nèi)存管理功能,所以實(shí)驗(yàn)中所有地址均為物理地址。代碼與數(shù)據(jù)的地址由鏈接腳本指定,對(duì)引導(dǎo)程序的地址空間分配即為對(duì)全局的地址空間進(jìn)行分配管理。比如,在鏈接腳本中使用MEMORY命令設(shè)置內(nèi)存的起始地址與大小并指定內(nèi)存類(lèi)型;指定ROM存儲(chǔ)可執(zhí)行代碼段以及只讀數(shù)據(jù),SDRAM存儲(chǔ)數(shù)據(jù)段以及bss段;使用AT 命令指定數(shù)據(jù)段的加載地址等。

    在將操作系統(tǒng)與用戶(hù)程序鏈接完成后,本實(shí)驗(yàn)軟件系統(tǒng)各部分地址分布如圖3所示。

    圖3 操作系統(tǒng)與用戶(hù)程序地址分布

    在完成操作系統(tǒng)、用戶(hù)程序與引導(dǎo)程序的鏈接后,通過(guò)工具鏈將上述3個(gè)模塊合并為一個(gè)二進(jìn)制文件,并轉(zhuǎn)化為Hex文件作為ROM模塊的初始化數(shù)據(jù)。為確保不會(huì)出現(xiàn)由于功能過(guò)多而導(dǎo)致的片內(nèi)存儲(chǔ)空間無(wú)法放置完整內(nèi)核鏡像的問(wèn)題,實(shí)驗(yàn)將對(duì)操作系統(tǒng)內(nèi)核進(jìn)一步進(jìn)行壓縮處理。

    首先,實(shí)驗(yàn)通過(guò)工具鏈將操作系統(tǒng)內(nèi)核轉(zhuǎn)化為數(shù)據(jù)段與代碼段等不同程序段直接加載至引導(dǎo)程序指定位置,以簡(jiǎn)化操作系統(tǒng)內(nèi)核加載流程。其次,將加載了操作系統(tǒng)內(nèi)核代碼段、數(shù)據(jù)段以及用戶(hù)程序的引導(dǎo)程序編譯鏈接為二進(jìn)制文件,將該二進(jìn)制文件進(jìn)行g(shù)zip格式壓縮得到操作系統(tǒng)壓縮鏡像,通過(guò)文件轉(zhuǎn)換器將該壓縮鏡像轉(zhuǎn)換為數(shù)組。最后,將數(shù)組嵌入解壓縮程序。通過(guò)上述裁剪與壓縮處理后的操作系統(tǒng)內(nèi)核鏡像僅占用一半左右片上存儲(chǔ)空間,為豐富操作系統(tǒng)實(shí)驗(yàn)內(nèi)容提供了可行性。

    3.3 操作系統(tǒng)實(shí)驗(yàn)建議

    本研究提供的操作系統(tǒng)實(shí)驗(yàn)參考實(shí)現(xiàn)在移植的rCore操作系統(tǒng)的基礎(chǔ)上,選取部分核心功能,實(shí)現(xiàn)了中斷處理、系統(tǒng)調(diào)用等模塊,最終適配以picorv32 CPU為核心的SoC系統(tǒng),并在STEP-CYC10開(kāi)發(fā)板上成功運(yùn)行。

    在進(jìn)行操作系統(tǒng)實(shí)驗(yàn)時(shí),建議同學(xué)在教學(xué)提供的picorv32 CPU基礎(chǔ)上,依據(jù)實(shí)驗(yàn)要求結(jié)合CPU的功能,以參考實(shí)現(xiàn)中給出的引導(dǎo)程序、解壓縮模塊等作為實(shí)驗(yàn)支持模塊,在模擬器中調(diào)試,再進(jìn)一步適配到STEP-CYC10硬件平臺(tái)以完成操作系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。

    4 組成原理與操作系統(tǒng)實(shí)驗(yàn)測(cè)試

    為了方便故障檢測(cè),需通過(guò)標(biāo)準(zhǔn)測(cè)試集對(duì)實(shí)驗(yàn)平臺(tái)進(jìn)行測(cè)試。首先,硬件系統(tǒng)通過(guò)由算數(shù)和邏輯運(yùn)算等指令構(gòu)成的測(cè)試指令集對(duì)硬件實(shí)驗(yàn)中的CPU功能進(jìn)行測(cè)試,測(cè)試結(jié)果通過(guò)串口進(jìn)行打印。學(xué)生可通過(guò)打印結(jié)果判斷實(shí)驗(yàn)是否通過(guò)或定位錯(cuò)誤出現(xiàn)位置,也可添加LED與數(shù)碼管作為支持模塊協(xié)助檢測(cè)錯(cuò)誤原因。其次,軟件系統(tǒng)通過(guò)打印中斷信息、實(shí)現(xiàn)函數(shù)追蹤與數(shù)據(jù)打印功能,若出現(xiàn)故障可通過(guò)串口向軟件系統(tǒng)發(fā)送命令打印故障地址及地址對(duì)應(yīng)數(shù)據(jù)深入查找故障。硬件系統(tǒng)與軟件系統(tǒng)測(cè)試示例具體如下。

    (1)組成原理實(shí)驗(yàn)測(cè)試結(jié)果

    圖4所示為基于picorv32 CPU測(cè)試指令集對(duì)搭建的硬件系統(tǒng)實(shí)驗(yàn)平臺(tái)進(jìn)行測(cè)試的部分結(jié)果,測(cè)試結(jié)果通過(guò)串口模塊輸出,打印至上位機(jī)串口調(diào)試工具。其中指令集每測(cè)試一條指令,若通過(guò)則打印“OK”。通過(guò)指令集測(cè)試驗(yàn)證了搭建的參考實(shí)現(xiàn)的硬件系統(tǒng)實(shí)驗(yàn)平臺(tái)可正確運(yùn)行。

    圖4 組成原理實(shí)驗(yàn)測(cè)試

    (2)操作系統(tǒng)實(shí)驗(yàn)測(cè)試結(jié)果

    圖5所示為操作系統(tǒng)實(shí)驗(yàn)參考實(shí)現(xiàn)測(cè)試結(jié)果。操作系統(tǒng)通過(guò)串口與上位機(jī)實(shí)現(xiàn)了數(shù)據(jù)交互,完成了中斷測(cè)試、解壓縮、操作系統(tǒng)啟動(dòng)及用戶(hù)程序解析等功能。同時(shí)通過(guò)串口對(duì)操作系統(tǒng)發(fā)出命令可實(shí)現(xiàn)流水燈、數(shù)碼管顯示、函數(shù)地址跟蹤及數(shù)據(jù)監(jiān)測(cè)等功能,完成了對(duì)自行設(shè)計(jì)的CPU核心功能的測(cè)試。

    圖5 操作系統(tǒng)實(shí)驗(yàn)測(cè)試

    5 結(jié)束語(yǔ)

    本文設(shè)計(jì)了一種計(jì)算機(jī)系統(tǒng)綜合實(shí)驗(yàn)平臺(tái)。該平臺(tái)可根據(jù)教學(xué)需求完成計(jì)算機(jī)組成原理與操作系統(tǒng)實(shí)驗(yàn),在有限的成本下達(dá)到綜合教學(xué)的目的。實(shí)驗(yàn)平臺(tái)以RISC-V CPU為核心在小型FPGA開(kāi)發(fā)板上搭建了可用于計(jì)算機(jī)組成原理實(shí)驗(yàn)的硬件實(shí)驗(yàn)平臺(tái),同時(shí)在硬件平臺(tái)上實(shí)現(xiàn)了rCore操作系統(tǒng)的移植,完成了操作系統(tǒng)實(shí)驗(yàn)的參考實(shí)現(xiàn),最終形成了完整的計(jì)算機(jī)系統(tǒng)教學(xué)實(shí)驗(yàn)平臺(tái),并給出該實(shí)驗(yàn)平臺(tái)的測(cè)試和應(yīng)用方法。但由于受到硬件系統(tǒng)功能的限制,picorv32 CPU未實(shí)現(xiàn)mmu功能,因此操作系統(tǒng)未實(shí)現(xiàn)頁(yè)表、虛擬內(nèi)存等功能。其次由于片上存儲(chǔ)資源不足,并未實(shí)現(xiàn)文件系統(tǒng)。針對(duì)上述問(wèn)題,正在積極探索改進(jìn)更換帶有mmu功能的CPU,同時(shí)嘗試增加片外Flash以求增加更多可用的存儲(chǔ)資源來(lái)完善操作系統(tǒng)實(shí)驗(yàn)的功能。

    猜你喜歡
    開(kāi)發(fā)板內(nèi)核串口
    萬(wàn)物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
    強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
    淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
    基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
    Linux內(nèi)核mmap保護(hù)機(jī)制研究
    Microchip最新推出兩款PIC32 Curiosity開(kāi)發(fā)板
    淺析單片機(jī)開(kāi)發(fā)板的設(shè)計(jì)與制作
    電子制作(2017年22期)2017-02-02 07:10:14
    USB接口的多串口數(shù)據(jù)并行接收方法探索
    基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無(wú)線通信
    Mouser為您呈上開(kāi)發(fā)關(guān)鍵之STMicroelectronics Nucleo開(kāi)發(fā)板
    netflix在线观看网站| 欧美成人性av电影在线观看| 亚洲成人免费电影在线观看| 亚洲人成伊人成综合网2020| 好看av亚洲va欧美ⅴa在| 欧美成人午夜精品| 国产一区二区三区视频了| 国产激情久久老熟女| 亚洲欧美精品综合久久99| 97超级碰碰碰精品色视频在线观看| 两人在一起打扑克的视频| 长腿黑丝高跟| 97碰自拍视频| 日韩大尺度精品在线看网址 | 国产成人欧美| 日韩大尺度精品在线看网址 | 久久久久亚洲av毛片大全| 在线观看免费视频网站a站| 亚洲精品国产精品久久久不卡| 日韩视频一区二区在线观看| 自线自在国产av| 午夜福利影视在线免费观看| 最新在线观看一区二区三区| 成年女人毛片免费观看观看9| 午夜久久久在线观看| 国产极品粉嫩免费观看在线| 欧美黄色淫秽网站| 色老头精品视频在线观看| 亚洲国产欧美网| 久久亚洲真实| 18美女黄网站色大片免费观看| 制服丝袜大香蕉在线| 真人一进一出gif抽搐免费| 国产亚洲欧美98| 国产国语露脸激情在线看| 很黄的视频免费| 精品欧美一区二区三区在线| 国产av又大| www.999成人在线观看| 国产成+人综合+亚洲专区| 亚洲免费av在线视频| 亚洲成国产人片在线观看| 美女 人体艺术 gogo| aaaaa片日本免费| 婷婷丁香在线五月| 精品国内亚洲2022精品成人| 天天一区二区日本电影三级 | 身体一侧抽搐| 九色国产91popny在线| 国产精品野战在线观看| 国产伦一二天堂av在线观看| 午夜免费鲁丝| 亚洲欧美日韩高清在线视频| 午夜福利影视在线免费观看| 不卡一级毛片| 久久人人97超碰香蕉20202| 校园春色视频在线观看| 精品无人区乱码1区二区| 日本在线视频免费播放| 中文字幕最新亚洲高清| svipshipincom国产片| 国产亚洲欧美精品永久| 精品久久久久久成人av| 法律面前人人平等表现在哪些方面| 波多野结衣巨乳人妻| 欧美成人免费av一区二区三区| 国产欧美日韩综合在线一区二区| 91国产中文字幕| 性色av乱码一区二区三区2| 性色av乱码一区二区三区2| 国产精品av久久久久免费| 亚洲七黄色美女视频| 欧美激情高清一区二区三区| 久久天躁狠狠躁夜夜2o2o| 午夜精品国产一区二区电影| 久久精品91蜜桃| 亚洲国产精品合色在线| 欧美激情久久久久久爽电影 | 十八禁网站免费在线| 婷婷六月久久综合丁香| 国产精品久久久久久亚洲av鲁大| 日本精品一区二区三区蜜桃| 国产一区在线观看成人免费| 老司机在亚洲福利影院| 又黄又粗又硬又大视频| 亚洲第一欧美日韩一区二区三区| 十分钟在线观看高清视频www| 最新美女视频免费是黄的| 9色porny在线观看| 午夜福利影视在线免费观看| 亚洲欧美日韩另类电影网站| 亚洲成人久久性| 身体一侧抽搐| 午夜视频精品福利| 亚洲欧美日韩高清在线视频| 国产精品国产高清国产av| 亚洲精品中文字幕在线视频| 一卡2卡三卡四卡精品乱码亚洲| 怎么达到女性高潮| 欧美国产精品va在线观看不卡| 女人被躁到高潮嗷嗷叫费观| 国产蜜桃级精品一区二区三区| 此物有八面人人有两片| 女人被躁到高潮嗷嗷叫费观| 在线观看www视频免费| 亚洲中文字幕一区二区三区有码在线看 | 久久香蕉激情| 两人在一起打扑克的视频| 啦啦啦观看免费观看视频高清 | 一级,二级,三级黄色视频| 操美女的视频在线观看| 久久青草综合色| 国内久久婷婷六月综合欲色啪| 一本综合久久免费| 亚洲欧美激情在线| 搡老岳熟女国产| 制服丝袜大香蕉在线| 色精品久久人妻99蜜桃| 国产精品亚洲av一区麻豆| 国产aⅴ精品一区二区三区波| 女同久久另类99精品国产91| 亚洲熟女毛片儿| 在线观看一区二区三区| 一个人免费在线观看的高清视频| 18美女黄网站色大片免费观看| 在线观看日韩欧美| 人妻久久中文字幕网| 国产在线精品亚洲第一网站| 一二三四在线观看免费中文在| 日本五十路高清| 韩国精品一区二区三区| 国产精品久久久久久亚洲av鲁大| 国产一区二区在线av高清观看| 亚洲五月天丁香| 性欧美人与动物交配| 真人做人爱边吃奶动态| 女同久久另类99精品国产91| 久久狼人影院| 国产精品久久久人人做人人爽| 欧美日本中文国产一区发布| 老鸭窝网址在线观看| 一级,二级,三级黄色视频| 亚洲av电影在线进入| 久久精品91无色码中文字幕| 十八禁人妻一区二区| 亚洲精品中文字幕一二三四区| 国产精品亚洲av一区麻豆| 久久久久久久久中文| 在线观看免费视频日本深夜| 纯流量卡能插随身wifi吗| 嫩草影视91久久| 好男人电影高清在线观看| 亚洲全国av大片| 国产精品亚洲一级av第二区| 精品国产一区二区三区四区第35| 1024香蕉在线观看| av视频在线观看入口| 亚洲性夜色夜夜综合| 高清黄色对白视频在线免费看| 久久香蕉激情| 精品熟女少妇八av免费久了| 狂野欧美激情性xxxx| 精品高清国产在线一区| 女同久久另类99精品国产91| 午夜两性在线视频| 99久久久亚洲精品蜜臀av| 久久久久久人人人人人| 成人av一区二区三区在线看| 国产1区2区3区精品| 成人欧美大片| 欧美精品亚洲一区二区| 国产野战对白在线观看| 日本精品一区二区三区蜜桃| 久久久久九九精品影院| 亚洲欧美精品综合久久99| 岛国在线观看网站| 欧美在线黄色| 免费看美女性在线毛片视频| 在线观看日韩欧美| 人人澡人人妻人| 亚洲中文字幕日韩| 国产精品久久久人人做人人爽| а√天堂www在线а√下载| 欧美色欧美亚洲另类二区 | 欧美黑人欧美精品刺激| 大型av网站在线播放| 制服诱惑二区| 高清在线国产一区| 亚洲午夜理论影院| 国产野战对白在线观看| 免费观看人在逋| 99久久精品国产亚洲精品| 一二三四在线观看免费中文在| 国产不卡一卡二| 一级片免费观看大全| 啦啦啦韩国在线观看视频| 午夜福利18| av网站免费在线观看视频| 人人澡人人妻人| 欧美日本亚洲视频在线播放| 国产av又大| 黑人操中国人逼视频| av欧美777| 高清毛片免费观看视频网站| 热re99久久国产66热| 在线永久观看黄色视频| 女人被狂操c到高潮| 欧美精品啪啪一区二区三区| 黄片小视频在线播放| 99久久精品国产亚洲精品| 又黄又爽又免费观看的视频| 日韩三级视频一区二区三区| 成人18禁在线播放| 日本免费一区二区三区高清不卡 | 麻豆久久精品国产亚洲av| 国产精品精品国产色婷婷| 亚洲国产精品久久男人天堂| 波多野结衣高清无吗| 久久精品成人免费网站| 熟妇人妻久久中文字幕3abv| 国产欧美日韩精品亚洲av| 狂野欧美激情性xxxx| 亚洲国产高清在线一区二区三 | 色精品久久人妻99蜜桃| 国产亚洲精品av在线| 丰满的人妻完整版| 成年女人毛片免费观看观看9| 999久久久精品免费观看国产| 亚洲九九香蕉| 亚洲色图综合在线观看| 国产精品免费一区二区三区在线| 最新在线观看一区二区三区| 女人被躁到高潮嗷嗷叫费观| 亚洲av熟女| 日韩欧美国产在线观看| 亚洲国产精品999在线| 国产成人精品无人区| 国产精品一区二区在线不卡| 99re在线观看精品视频| 免费不卡黄色视频| 欧美亚洲日本最大视频资源| 1024视频免费在线观看| 色综合婷婷激情| 久久中文看片网| 两人在一起打扑克的视频| 一区二区三区激情视频| 一个人观看的视频www高清免费观看 | 自拍欧美九色日韩亚洲蝌蚪91| 9热在线视频观看99| 成人亚洲精品一区在线观看| 淫妇啪啪啪对白视频| 精品久久久久久,| 国产亚洲av嫩草精品影院| 熟妇人妻久久中文字幕3abv| 国产一区二区三区综合在线观看| 久久国产精品人妻蜜桃| 亚洲国产精品999在线| 精品熟女少妇八av免费久了| 久久香蕉精品热| 免费看美女性在线毛片视频| 国产亚洲精品综合一区在线观看 | 女人高潮潮喷娇喘18禁视频| 一区二区三区精品91| 欧美性长视频在线观看| 亚洲性夜色夜夜综合| 国产精品久久电影中文字幕| 亚洲美女黄片视频| 久99久视频精品免费| 国产精品98久久久久久宅男小说| 最近最新中文字幕大全免费视频| 女人爽到高潮嗷嗷叫在线视频| 亚洲成av片中文字幕在线观看| 中出人妻视频一区二区| 久久国产乱子伦精品免费另类| 给我免费播放毛片高清在线观看| 亚洲最大成人中文| 国产成人精品在线电影| 国产日韩一区二区三区精品不卡| 日本 av在线| 极品人妻少妇av视频| 精品少妇一区二区三区视频日本电影| 亚洲av熟女| 亚洲国产欧美网| 男女做爰动态图高潮gif福利片 | 久久久久亚洲av毛片大全| a在线观看视频网站| 亚洲va日本ⅴa欧美va伊人久久| 在线天堂中文资源库| 欧美乱码精品一区二区三区| 国产欧美日韩一区二区三| 99久久精品国产亚洲精品| 亚洲中文字幕日韩| 欧美在线一区亚洲| 黑人操中国人逼视频| 久久久水蜜桃国产精品网| √禁漫天堂资源中文www| 成人国产一区最新在线观看| 午夜精品在线福利| 国产精品亚洲一级av第二区| 一边摸一边抽搐一进一小说| av电影中文网址| 一二三四社区在线视频社区8| 天堂影院成人在线观看| 国产成人系列免费观看| 99精品久久久久人妻精品| 亚洲中文字幕日韩| 一边摸一边抽搐一进一小说| 欧美绝顶高潮抽搐喷水| 黄频高清免费视频| 99精品在免费线老司机午夜| 深夜精品福利| xxx96com| 国产精品久久久久久精品电影 | 欧美乱色亚洲激情| 一区二区日韩欧美中文字幕| 美女扒开内裤让男人捅视频| 丁香欧美五月| 欧美中文日本在线观看视频| 精品人妻1区二区| 在线观看日韩欧美| 欧美精品亚洲一区二区| 亚洲中文av在线| 狂野欧美激情性xxxx| 丝袜在线中文字幕| 麻豆av在线久日| 老熟妇乱子伦视频在线观看| 日日干狠狠操夜夜爽| 成人永久免费在线观看视频| www.999成人在线观看| 校园春色视频在线观看| 欧美黑人精品巨大| 色综合欧美亚洲国产小说| 亚洲国产高清在线一区二区三 | 亚洲人成电影免费在线| 999精品在线视频| 亚洲五月婷婷丁香| 看片在线看免费视频| 精品国产一区二区三区四区第35| 精品欧美一区二区三区在线| 最好的美女福利视频网| 欧美色视频一区免费| 亚洲成人免费电影在线观看| а√天堂www在线а√下载| 91在线观看av| 国内毛片毛片毛片毛片毛片| 日日摸夜夜添夜夜添小说| 两个人免费观看高清视频| 十分钟在线观看高清视频www| 大型黄色视频在线免费观看| 男人操女人黄网站| 国产成人欧美| 中亚洲国语对白在线视频| 咕卡用的链子| 日本免费a在线| 欧美久久黑人一区二区| 精品乱码久久久久久99久播| 亚洲欧美精品综合久久99| 最好的美女福利视频网| 久久久久国产一级毛片高清牌| 亚洲中文字幕日韩| 后天国语完整版免费观看| 久久精品国产综合久久久| 一进一出好大好爽视频| 久99久视频精品免费| 99国产精品一区二区三区| 91成年电影在线观看| 亚洲成国产人片在线观看| 一区在线观看完整版| av超薄肉色丝袜交足视频| 最新在线观看一区二区三区| 午夜激情av网站| 亚洲精品在线美女| 他把我摸到了高潮在线观看| 国产亚洲av嫩草精品影院| 中文字幕av电影在线播放| 国产主播在线观看一区二区| 欧美日韩福利视频一区二区| 欧美色视频一区免费| 亚洲熟女毛片儿| 高清黄色对白视频在线免费看| 色综合婷婷激情| 亚洲视频免费观看视频| 黄色丝袜av网址大全| 亚洲电影在线观看av| 宅男免费午夜| aaaaa片日本免费| 日韩中文字幕欧美一区二区| 99在线人妻在线中文字幕| 中文字幕色久视频| 日韩中文字幕欧美一区二区| 男女之事视频高清在线观看| 啦啦啦观看免费观看视频高清 | 人成视频在线观看免费观看| 中文字幕久久专区| avwww免费| 国产精品美女特级片免费视频播放器 | 精品久久久久久久久久免费视频| 婷婷精品国产亚洲av在线| 久久久久国内视频| 亚洲一区二区三区不卡视频| 黄片小视频在线播放| 两人在一起打扑克的视频| 97人妻天天添夜夜摸| 亚洲中文av在线| 国产片内射在线| 久久久国产欧美日韩av| 亚洲五月婷婷丁香| 欧美乱色亚洲激情| 中文字幕人妻丝袜一区二区| 午夜久久久在线观看| 亚洲伊人色综图| 一区二区三区精品91| 久久精品亚洲熟妇少妇任你| 国产黄a三级三级三级人| 久久草成人影院| 成人av一区二区三区在线看| 性色av乱码一区二区三区2| 精品久久久久久久人妻蜜臀av | 一区二区三区精品91| 搞女人的毛片| 天堂动漫精品| 国产精品久久电影中文字幕| 亚洲av成人不卡在线观看播放网| 午夜福利视频1000在线观看 | 丝袜美腿诱惑在线| 怎么达到女性高潮| 黄色女人牲交| 久久精品国产99精品国产亚洲性色 | 999精品在线视频| 亚洲黑人精品在线| 在线国产一区二区在线| 久久精品影院6| 国产精品永久免费网站| 国产野战对白在线观看| 男人操女人黄网站| 国产精品亚洲一级av第二区| 性色av乱码一区二区三区2| 免费在线观看日本一区| 日韩 欧美 亚洲 中文字幕| 97超级碰碰碰精品色视频在线观看| 国产精品秋霞免费鲁丝片| 午夜久久久久精精品| 欧美av亚洲av综合av国产av| 精品熟女少妇八av免费久了| 少妇 在线观看| 狠狠狠狠99中文字幕| 国产精品一区二区免费欧美| 亚洲精品久久成人aⅴ小说| 性少妇av在线| 亚洲av五月六月丁香网| 国产成人精品在线电影| 亚洲国产精品久久男人天堂| 亚洲av成人不卡在线观看播放网| 大陆偷拍与自拍| 正在播放国产对白刺激| 美女免费视频网站| 国产熟女午夜一区二区三区| 又黄又粗又硬又大视频| 久久精品影院6| 丰满人妻熟妇乱又伦精品不卡| 国产精品久久久久久亚洲av鲁大| 一边摸一边抽搐一进一小说| 亚洲欧美精品综合久久99| 国产精品影院久久| 国产成人影院久久av| 曰老女人黄片| 久久中文字幕一级| 一级毛片精品| 人人妻人人爽人人添夜夜欢视频| 日韩欧美在线二视频| 国产高清激情床上av| 欧美大码av| 亚洲av日韩精品久久久久久密| 美国免费a级毛片| 国产精品久久久久久人妻精品电影| 国产亚洲精品久久久久久毛片| 亚洲一卡2卡3卡4卡5卡精品中文| 99国产极品粉嫩在线观看| 狂野欧美激情性xxxx| 国产精品久久久人人做人人爽| 人妻丰满熟妇av一区二区三区| 国产av精品麻豆| 757午夜福利合集在线观看| 满18在线观看网站| 在线观看www视频免费| 热99re8久久精品国产| 美女免费视频网站| 制服人妻中文乱码| 变态另类丝袜制服| 亚洲自偷自拍图片 自拍| 中国美女看黄片| 老熟妇仑乱视频hdxx| 可以免费在线观看a视频的电影网站| 男女做爰动态图高潮gif福利片 | 他把我摸到了高潮在线观看| 丁香六月欧美| 久久人妻熟女aⅴ| 日韩中文字幕欧美一区二区| 非洲黑人性xxxx精品又粗又长| 午夜a级毛片| 久久久久久久久免费视频了| 国产精品精品国产色婷婷| 变态另类成人亚洲欧美熟女 | 天天躁夜夜躁狠狠躁躁| 99在线视频只有这里精品首页| 亚洲成人免费电影在线观看| 亚洲国产欧美一区二区综合| 一边摸一边抽搐一进一出视频| 亚洲人成77777在线视频| 夜夜躁狠狠躁天天躁| 亚洲av美国av| 亚洲精品久久国产高清桃花| 国产亚洲欧美98| 每晚都被弄得嗷嗷叫到高潮| 99国产精品一区二区蜜桃av| 黄色毛片三级朝国网站| 日韩 欧美 亚洲 中文字幕| 亚洲精品国产一区二区精华液| 欧美不卡视频在线免费观看 | 脱女人内裤的视频| 欧美日本中文国产一区发布| 亚洲av成人一区二区三| 国产三级黄色录像| 一级毛片精品| 亚洲精品美女久久av网站| 级片在线观看| 日韩 欧美 亚洲 中文字幕| www.熟女人妻精品国产| 久久国产精品男人的天堂亚洲| 欧美日韩福利视频一区二区| 变态另类成人亚洲欧美熟女 | 老司机深夜福利视频在线观看| 欧美在线黄色| 成人三级做爰电影| 亚洲国产精品sss在线观看| 久久草成人影院| 好男人电影高清在线观看| 男人的好看免费观看在线视频 | aaaaa片日本免费| 国产野战对白在线观看| 黄色片一级片一级黄色片| 每晚都被弄得嗷嗷叫到高潮| 国产欧美日韩一区二区精品| 亚洲色图av天堂| 91成年电影在线观看| 真人做人爱边吃奶动态| 在线天堂中文资源库| 搡老熟女国产l中国老女人| 精品乱码久久久久久99久播| 精品国产乱子伦一区二区三区| 天堂√8在线中文| 免费一级毛片在线播放高清视频 | 9191精品国产免费久久| 91字幕亚洲| 精品久久久久久成人av| 99在线人妻在线中文字幕| 一区二区三区国产精品乱码| 国产精品自产拍在线观看55亚洲| 国产伦一二天堂av在线观看| 满18在线观看网站| 国产亚洲av高清不卡| 久9热在线精品视频| 国产精品久久久久久亚洲av鲁大| 女人精品久久久久毛片| 色在线成人网| 久久久国产成人精品二区| 午夜福利欧美成人| 国产激情久久老熟女| 亚洲视频免费观看视频| 日韩大尺度精品在线看网址 | 在线国产一区二区在线| 琪琪午夜伦伦电影理论片6080| 99久久99久久久精品蜜桃| 一个人免费在线观看的高清视频| 亚洲av片天天在线观看| 91成年电影在线观看| 9191精品国产免费久久| 色综合婷婷激情| 久久精品aⅴ一区二区三区四区| 美女扒开内裤让男人捅视频| 免费av毛片视频| 高清在线国产一区| 88av欧美| 日日爽夜夜爽网站| 18禁美女被吸乳视频| 免费无遮挡裸体视频| 视频在线观看一区二区三区| 亚洲欧美激情在线| 午夜福利视频1000在线观看 | 欧美色视频一区免费| 999久久久国产精品视频| 日本撒尿小便嘘嘘汇集6| av欧美777| 色av中文字幕| 精品久久久久久,| 国产亚洲欧美精品永久| 在线永久观看黄色视频| 久久久久久亚洲精品国产蜜桃av| 中文字幕人成人乱码亚洲影| 国产av一区在线观看免费| 日本精品一区二区三区蜜桃| 黄色毛片三级朝国网站| 国产一区二区激情短视频| 欧美性长视频在线观看| 亚洲aⅴ乱码一区二区在线播放 | 国产97色在线日韩免费| 亚洲国产看品久久| www.熟女人妻精品国产| 免费高清视频大片| 色综合婷婷激情| 老鸭窝网址在线观看| 久久国产精品影院| 两性夫妻黄色片| 少妇粗大呻吟视频| 欧美日韩一级在线毛片|