• <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ā)板
    久久久久精品国产欧美久久久| 超碰av人人做人人爽久久 | 成年人黄色毛片网站| 最近最新免费中文字幕在线| 久久久久性生活片| 日日夜夜操网爽| 女同久久另类99精品国产91| 色吧在线观看| 国产精品久久视频播放| 成人18禁在线播放| 看片在线看免费视频| 中文在线观看免费www的网站| 99久国产av精品| 欧美日韩亚洲国产一区二区在线观看| 又黄又粗又硬又大视频| 中文字幕av成人在线电影| 日本精品一区二区三区蜜桃| 国模一区二区三区四区视频| 制服人妻中文乱码| 中文亚洲av片在线观看爽| 国产主播在线观看一区二区| 日本 欧美在线| 色综合欧美亚洲国产小说| 欧美日韩国产亚洲二区| 美女大奶头视频| av在线天堂中文字幕| 三级毛片av免费| 国产激情欧美一区二区| 麻豆久久精品国产亚洲av| 国产精品一及| www.www免费av| 精品99又大又爽又粗少妇毛片 | 国产激情偷乱视频一区二区| 久久久久亚洲av毛片大全| 哪里可以看免费的av片| 午夜激情福利司机影院| 无限看片的www在线观看| 亚洲精品在线观看二区| 性色av乱码一区二区三区2| 国产中年淑女户外野战色| 天堂av国产一区二区熟女人妻| 人妻夜夜爽99麻豆av| 97超视频在线观看视频| 一夜夜www| 成年人黄色毛片网站| 欧美丝袜亚洲另类 | 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | 九色成人免费人妻av| 久久久久九九精品影院| 一级毛片女人18水好多| 久久欧美精品欧美久久欧美| 搡老妇女老女人老熟妇| 色尼玛亚洲综合影院| 成年版毛片免费区| 免费电影在线观看免费观看| 一级作爱视频免费观看| 午夜免费男女啪啪视频观看 | 法律面前人人平等表现在哪些方面| 亚洲欧美日韩东京热| 97人妻精品一区二区三区麻豆| 国产一区二区在线观看日韩 | 国产亚洲av嫩草精品影院| 制服人妻中文乱码| 日本黄色视频三级网站网址| 成年女人永久免费观看视频| 精品无人区乱码1区二区| 一区二区三区国产精品乱码| 久久精品人妻少妇| 香蕉丝袜av| 亚洲成人久久爱视频| 亚洲国产色片| 成人无遮挡网站| 青草久久国产| 91久久精品国产一区二区成人 | 欧美日本亚洲视频在线播放| 久久人人精品亚洲av| 国内毛片毛片毛片毛片毛片| 亚洲人成网站在线播| 又黄又粗又硬又大视频| 国产精品一及| 在线免费观看不下载黄p国产 | 啦啦啦观看免费观看视频高清| 免费在线观看影片大全网站| av在线天堂中文字幕| 久久精品国产99精品国产亚洲性色| 久久精品亚洲精品国产色婷小说| 人妻丰满熟妇av一区二区三区| 一区二区三区激情视频| 欧美日韩中文字幕国产精品一区二区三区| 久久草成人影院| 757午夜福利合集在线观看| 最新中文字幕久久久久| 国产成人影院久久av| 亚洲人成网站在线播| 一区二区三区国产精品乱码| 深爱激情五月婷婷| 国产精品女同一区二区软件 | 欧美三级亚洲精品| 淫秽高清视频在线观看| 成人亚洲精品av一区二区| 国产黄片美女视频| 深夜精品福利| 欧美色欧美亚洲另类二区| 国产免费男女视频| 国产精品一及| 日本撒尿小便嘘嘘汇集6| 国产探花极品一区二区| 亚洲av免费在线观看| 国产成人影院久久av| 久久草成人影院| 法律面前人人平等表现在哪些方面| 国产精品98久久久久久宅男小说| 婷婷六月久久综合丁香| 欧美性猛交╳xxx乱大交人| 亚洲七黄色美女视频| 国模一区二区三区四区视频| 99精品在免费线老司机午夜| 亚洲欧美日韩无卡精品| 黄片大片在线免费观看| 成人精品一区二区免费| 久久亚洲精品不卡| 欧美日韩福利视频一区二区| 成人高潮视频无遮挡免费网站| 婷婷六月久久综合丁香| 国产精品嫩草影院av在线观看 | 美女 人体艺术 gogo| 无限看片的www在线观看| 久久精品夜夜夜夜夜久久蜜豆| 中国美女看黄片| 国产色婷婷99| 亚洲欧美日韩无卡精品| 亚洲五月婷婷丁香| 成人永久免费在线观看视频| 国产精品免费一区二区三区在线| 亚洲成a人片在线一区二区| 色老头精品视频在线观看| 香蕉av资源在线| 欧美色视频一区免费| 午夜日韩欧美国产| 色噜噜av男人的天堂激情| 日韩高清综合在线| 久久久久免费精品人妻一区二区| 香蕉av资源在线| 欧美日韩福利视频一区二区| 国产黄片美女视频| 午夜福利免费观看在线| 蜜桃久久精品国产亚洲av| 国产99白浆流出| 露出奶头的视频| 中出人妻视频一区二区| 亚洲一区二区三区色噜噜| 久久久久久国产a免费观看| 欧美3d第一页| 色哟哟哟哟哟哟| 精品久久久久久久毛片微露脸| 在线观看免费午夜福利视频| 又爽又黄无遮挡网站| 少妇高潮的动态图| 亚洲av日韩精品久久久久久密| 又爽又黄无遮挡网站| 小说图片视频综合网站| 黄色视频,在线免费观看| 首页视频小说图片口味搜索| 小说图片视频综合网站| 日韩欧美免费精品| 国产高清videossex| 久久久久久人人人人人| 欧美成人a在线观看| 免费观看精品视频网站| 日本 av在线| 久久九九热精品免费| 欧美高清成人免费视频www| 人人妻,人人澡人人爽秒播| 十八禁网站免费在线| 成人无遮挡网站| www.熟女人妻精品国产| av天堂中文字幕网| 国产高清激情床上av| 69av精品久久久久久| 成人鲁丝片一二三区免费| 色综合婷婷激情| 国产高清视频在线播放一区| 久久中文看片网| 超碰av人人做人人爽久久 | 香蕉久久夜色| 波野结衣二区三区在线 | 亚洲精华国产精华精| 亚洲国产精品久久男人天堂| 国产乱人伦免费视频| 中文字幕人成人乱码亚洲影| 制服丝袜大香蕉在线| 可以在线观看的亚洲视频| 成人欧美大片| 国产精品影院久久| 久久久久久大精品| 国产成人欧美在线观看| 91久久精品电影网| 欧美xxxx黑人xx丫x性爽| 真人做人爱边吃奶动态| 国产私拍福利视频在线观看| 婷婷丁香在线五月| 久久精品人妻少妇| 高清毛片免费观看视频网站| 内射极品少妇av片p| 久久中文看片网| 桃色一区二区三区在线观看| 一进一出抽搐gif免费好疼| 日日干狠狠操夜夜爽| 国内精品久久久久精免费| 亚洲成人精品中文字幕电影| 久久性视频一级片| 一个人看的www免费观看视频| 久久香蕉国产精品| 内地一区二区视频在线| 99视频精品全部免费 在线| 搡女人真爽免费视频火全软件 | 国产亚洲av嫩草精品影院| 国产伦一二天堂av在线观看| 久久精品影院6| 婷婷丁香在线五月| 午夜免费成人在线视频| 怎么达到女性高潮| 日本与韩国留学比较| 一本久久中文字幕| 手机成人av网站| 国产一区二区激情短视频| 熟女少妇亚洲综合色aaa.| 在线观看av片永久免费下载| 亚洲精品影视一区二区三区av| 精品人妻一区二区三区麻豆 | 最近最新中文字幕大全电影3| 日韩中文字幕欧美一区二区| 国产精品一区二区三区四区久久| 91久久精品国产一区二区成人 | www.www免费av| 亚洲成人久久爱视频| 精品日产1卡2卡| 精品一区二区三区视频在线观看免费| avwww免费| 国产精品久久久久久人妻精品电影| 老司机福利观看| 成年版毛片免费区| 99久久精品热视频| 免费大片18禁| 婷婷丁香在线五月| 男女午夜视频在线观看| 麻豆成人午夜福利视频| 国产欧美日韩精品一区二区| 国产精品99久久久久久久久| 蜜桃亚洲精品一区二区三区| 日韩欧美在线乱码| 国产精品久久久久久亚洲av鲁大| 久久香蕉国产精品| 最近在线观看免费完整版| 天堂网av新在线| 美女大奶头视频| 亚洲人成电影免费在线| 国产午夜福利久久久久久| 丝袜美腿在线中文| 免费看光身美女| 亚洲av日韩精品久久久久久密| 国产 一区 欧美 日韩| 在线视频色国产色| 亚洲人成伊人成综合网2020| 大型黄色视频在线免费观看| 男人和女人高潮做爰伦理| 欧美不卡视频在线免费观看| 男女之事视频高清在线观看| 国产伦一二天堂av在线观看| 乱人视频在线观看| 成人精品一区二区免费| 国产一区二区在线av高清观看| 高清在线国产一区| 搡女人真爽免费视频火全软件 | 日本熟妇午夜| 叶爱在线成人免费视频播放| 少妇的逼水好多| 亚洲,欧美精品.| 色av中文字幕| av天堂在线播放| av女优亚洲男人天堂| av天堂中文字幕网| 欧美在线一区亚洲| 免费av观看视频| 男女床上黄色一级片免费看| 一本精品99久久精品77| 日韩欧美一区二区三区在线观看| 亚洲男人的天堂狠狠| 国产男靠女视频免费网站| 国产淫片久久久久久久久 | 97碰自拍视频| 欧美在线一区亚洲| 九色国产91popny在线| 夜夜爽天天搞| 国产综合懂色| 国产91精品成人一区二区三区| 亚洲一区高清亚洲精品| 此物有八面人人有两片| 国产精品嫩草影院av在线观看 | 色av中文字幕| www日本黄色视频网| 非洲黑人性xxxx精品又粗又长| 成年女人看的毛片在线观看| 午夜福利视频1000在线观看| 欧美区成人在线视频| 岛国在线免费视频观看| 欧美乱色亚洲激情| 深爱激情五月婷婷| 欧美日韩国产亚洲二区| 最近视频中文字幕2019在线8| 亚洲久久久久久中文字幕| 日韩精品中文字幕看吧| 国产蜜桃级精品一区二区三区| 男人的好看免费观看在线视频| www日本在线高清视频| 国产一区二区三区在线臀色熟女| 午夜精品一区二区三区免费看| 日韩欧美一区二区三区在线观看| 在线播放国产精品三级| 亚洲美女视频黄频| 亚洲第一电影网av| 欧美bdsm另类| 内地一区二区视频在线| 九九久久精品国产亚洲av麻豆| 欧美一级毛片孕妇| 亚洲真实伦在线观看| 黄色片一级片一级黄色片| 不卡一级毛片| 午夜精品久久久久久毛片777| 一区二区三区激情视频| 亚洲成av人片免费观看| 亚洲一区二区三区色噜噜| 18禁裸乳无遮挡免费网站照片| 国语自产精品视频在线第100页| 日本免费a在线| 在线观看舔阴道视频| 久久久久久国产a免费观看| 一级毛片女人18水好多| 亚洲精品国产精品久久久不卡| 欧美高清成人免费视频www| 九色成人免费人妻av| 亚洲欧美日韩高清在线视频| 一二三四社区在线视频社区8| 国产高清三级在线| www.999成人在线观看| 真实男女啪啪啪动态图| 深夜精品福利| 免费人成在线观看视频色| 久久久久久久久久黄片| 国产 一区 欧美 日韩| 一进一出好大好爽视频| 男女那种视频在线观看| 久久精品影院6| 人妻丰满熟妇av一区二区三区| 国产成年人精品一区二区| 观看免费一级毛片| 男女床上黄色一级片免费看| 黑人欧美特级aaaaaa片| 国产欧美日韩精品亚洲av| 精品久久久久久久久久免费视频| 天堂√8在线中文| 一级毛片女人18水好多| 国产亚洲欧美在线一区二区| 国产亚洲精品av在线| 乱人视频在线观看| 国产探花极品一区二区| 免费搜索国产男女视频| 欧美最新免费一区二区三区 | 一级作爱视频免费观看| 成人国产一区最新在线观看| 国产日本99.免费观看| 国产精品久久久久久亚洲av鲁大| 日本黄色片子视频| www日本黄色视频网| 蜜桃亚洲精品一区二区三区| 一区福利在线观看| 亚洲久久久久久中文字幕| 国产精品香港三级国产av潘金莲| 成人亚洲精品av一区二区| 国产精品香港三级国产av潘金莲| 国产av一区在线观看免费| 他把我摸到了高潮在线观看| 国产成人a区在线观看| 国产成年人精品一区二区| 亚洲av电影不卡..在线观看| 亚洲专区中文字幕在线| 亚洲精品成人久久久久久| av欧美777| 最后的刺客免费高清国语| 香蕉久久夜色| 十八禁网站免费在线| 狂野欧美激情性xxxx| 老汉色∧v一级毛片| 国产成人福利小说| 日本在线视频免费播放| 免费看a级黄色片| tocl精华| 老司机在亚洲福利影院| 中文字幕熟女人妻在线| xxx96com| 99久久精品热视频| 亚洲在线自拍视频| 亚洲无线在线观看| av专区在线播放| 午夜免费观看网址| 色综合欧美亚洲国产小说| 神马国产精品三级电影在线观看| 国产精品嫩草影院av在线观看 | 天堂影院成人在线观看| 亚洲成人免费电影在线观看| 天天添夜夜摸| 757午夜福利合集在线观看| 欧美在线一区亚洲| 亚洲国产高清在线一区二区三| 亚洲成av人片免费观看| 国产三级中文精品| 99久国产av精品| 亚洲欧美日韩无卡精品| 男人和女人高潮做爰伦理| 91九色精品人成在线观看| 黄色女人牲交| 国产真实乱freesex| 麻豆成人av在线观看| 在线免费观看的www视频| 97超级碰碰碰精品色视频在线观看| 色老头精品视频在线观看| 久久久精品欧美日韩精品| 中文字幕久久专区| 色综合亚洲欧美另类图片| 欧美中文日本在线观看视频| 国产乱人视频| 国产亚洲精品久久久com| 国产精品久久久久久久电影 | 精品一区二区三区av网在线观看| 亚洲精品乱码久久久v下载方式 | 宅男免费午夜| 又爽又黄无遮挡网站| 午夜两性在线视频| 亚洲精华国产精华精| 国产激情欧美一区二区| 国产伦精品一区二区三区视频9 | 两性午夜刺激爽爽歪歪视频在线观看| 久久久久久国产a免费观看| 人妻丰满熟妇av一区二区三区| 亚洲精品456在线播放app | 久久伊人香网站| 身体一侧抽搐| 男女之事视频高清在线观看| 真人做人爱边吃奶动态| 中文字幕人妻丝袜一区二区| av黄色大香蕉| 亚洲国产精品sss在线观看| 狂野欧美白嫩少妇大欣赏| 人妻夜夜爽99麻豆av| 亚洲精华国产精华精| 国产精品亚洲一级av第二区| av女优亚洲男人天堂| 2021天堂中文幕一二区在线观| 熟女少妇亚洲综合色aaa.| 99热只有精品国产| 色综合婷婷激情| 成人午夜高清在线视频| 欧美日韩黄片免| x7x7x7水蜜桃| 国产高清激情床上av| 国内精品久久久久精免费| 亚洲av电影在线进入| 在线十欧美十亚洲十日本专区| 中国美女看黄片| 一进一出抽搐gif免费好疼| 中文字幕精品亚洲无线码一区| 久久久久久九九精品二区国产| 欧美成狂野欧美在线观看| 国产伦一二天堂av在线观看| 在线a可以看的网站| 叶爱在线成人免费视频播放| 亚洲av中文字字幕乱码综合| 一二三四社区在线视频社区8| 中文字幕人妻熟人妻熟丝袜美 | 桃红色精品国产亚洲av| 手机成人av网站| 亚洲av熟女| 欧美精品啪啪一区二区三区| 国产伦人伦偷精品视频| 亚洲无线观看免费| 国产精品精品国产色婷婷| 免费一级毛片在线播放高清视频| 淫秽高清视频在线观看| 黄色日韩在线| 男人和女人高潮做爰伦理| 最好的美女福利视频网| 中文字幕人妻熟人妻熟丝袜美 | 国产精品一区二区三区四区免费观看 | 很黄的视频免费| 一区福利在线观看| 可以在线观看毛片的网站| 日韩欧美免费精品| 夜夜看夜夜爽夜夜摸| 非洲黑人性xxxx精品又粗又长| 亚洲精品亚洲一区二区| 久久久久性生活片| 五月伊人婷婷丁香| 中文字幕久久专区| 噜噜噜噜噜久久久久久91| 91在线观看av| 少妇裸体淫交视频免费看高清| 女同久久另类99精品国产91| 老司机午夜十八禁免费视频| 欧美午夜高清在线| 欧美日本视频| 亚洲国产精品成人综合色| 成人av一区二区三区在线看| 午夜福利成人在线免费观看| 床上黄色一级片| 一本综合久久免费| 俺也久久电影网| 国产男靠女视频免费网站| 99久久成人亚洲精品观看| 亚洲精品粉嫩美女一区| 成人国产综合亚洲| 成人性生交大片免费视频hd| 欧美在线黄色| 99热精品在线国产| 亚洲欧美日韩卡通动漫| 午夜福利高清视频| 成人鲁丝片一二三区免费| 午夜福利欧美成人| svipshipincom国产片| 午夜福利18| 91av网一区二区| 非洲黑人性xxxx精品又粗又长| 大型黄色视频在线免费观看| 成人av在线播放网站| ponron亚洲| aaaaa片日本免费| 搡女人真爽免费视频火全软件 | 麻豆久久精品国产亚洲av| 91麻豆av在线| 国产一区二区在线av高清观看| 99久久九九国产精品国产免费| 99精品久久久久人妻精品| 国产精品香港三级国产av潘金莲| a级一级毛片免费在线观看| 母亲3免费完整高清在线观看| 久久精品人妻少妇| 级片在线观看| 我要搜黄色片| 999久久久精品免费观看国产| 99久国产av精品| 变态另类丝袜制服| 一个人看的www免费观看视频| 热99re8久久精品国产| 国产精品久久久久久精品电影| 免费av观看视频| 十八禁人妻一区二区| 日韩成人在线观看一区二区三区| 国产色婷婷99| 少妇裸体淫交视频免费看高清| 国产极品精品免费视频能看的| 99久久综合精品五月天人人| 老汉色av国产亚洲站长工具| 手机成人av网站| 在线免费观看不下载黄p国产 | 欧美bdsm另类| 麻豆一二三区av精品| 国模一区二区三区四区视频| 亚洲成人精品中文字幕电影| 啦啦啦观看免费观看视频高清| 免费人成视频x8x8入口观看| 欧美又色又爽又黄视频| 真实男女啪啪啪动态图| 69人妻影院| 免费在线观看影片大全网站| 日韩欧美在线二视频| 天天添夜夜摸| 身体一侧抽搐| 亚洲国产精品久久男人天堂| 欧美性猛交╳xxx乱大交人| 亚洲中文字幕一区二区三区有码在线看| 婷婷丁香在线五月| 久久精品综合一区二区三区| 九九在线视频观看精品| 中出人妻视频一区二区| 国产一区二区亚洲精品在线观看| 女同久久另类99精品国产91| 蜜桃亚洲精品一区二区三区| 琪琪午夜伦伦电影理论片6080| 在线观看免费视频日本深夜| 久久草成人影院| 久久久久久国产a免费观看| 99视频精品全部免费 在线| 成年女人毛片免费观看观看9| 亚洲精品国产精品久久久不卡| 精品不卡国产一区二区三区| 久久草成人影院| 欧美日韩中文字幕国产精品一区二区三区| 在线观看免费视频日本深夜| 亚洲第一欧美日韩一区二区三区| 国产一区二区亚洲精品在线观看| 欧美日韩综合久久久久久 | 91久久精品国产一区二区成人 | 欧美日韩福利视频一区二区| 久久精品国产清高在天天线| 日韩国内少妇激情av| 国产美女午夜福利| 久久久久久久久大av| 免费看光身美女| 午夜激情欧美在线| 中文字幕人妻丝袜一区二区| 黄色日韩在线| 免费看日本二区| 成年女人永久免费观看视频| 夜夜看夜夜爽夜夜摸| 亚洲久久久久久中文字幕| 俄罗斯特黄特色一大片|