亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        影響軟件高效設(shè)計(jì)的硬件因素

        2013-10-10 01:57:14
        關(guān)鍵詞:共享內(nèi)存外設(shè)內(nèi)存

        王 江

        (上海貝爾股份有限公司,上海201206)

        引 言

        一件優(yōu)秀的電子產(chǎn)品往往是軟硬件協(xié)同設(shè)計(jì)的產(chǎn)物。蘋(píng)果公司的成功再一次證明了軟硬件結(jié)合的重要性,他們花費(fèi)了大量時(shí)間和精力來(lái)保證設(shè)備中軟硬件的互補(bǔ)。競(jìng)爭(zhēng)對(duì)手的手機(jī)和平板電腦在測(cè)評(píng)時(shí)會(huì)出現(xiàn)“笨拙”、“不直觀”等描述性詞匯,而蘋(píng)果產(chǎn)品則經(jīng)常會(huì)得到“渾然一體”等褒獎(jiǎng)。

        由于社會(huì)化大分工越來(lái)越細(xì)。在現(xiàn)實(shí)的研發(fā)過(guò)程中,軟件設(shè)計(jì)人員一般偏重于應(yīng)用與用戶界面,不甚了解承載軟件運(yùn)行的硬件設(shè)計(jì),有時(shí)一味地依賴(lài)提升處理器速度,增加內(nèi)存容量,加快總線速度,來(lái)達(dá)到預(yù)期的性能。這不但增大了產(chǎn)品的功耗,而且增加了產(chǎn)品成本,實(shí)為下下之策。

        如果我們?cè)谲浖O(shè)計(jì)時(shí)考慮一下硬件因素,因地制宜,充分發(fā)揮硬件的優(yōu)點(diǎn),克服其缺點(diǎn),揚(yáng)長(zhǎng)避短,那么就有可能做到軟硬件的完美結(jié)合,從而提升產(chǎn)品的整體性能。文章將從處理器、緩存、內(nèi)存、外圍高速總線和外圍低速總線等方面介紹筆者在這方面積累的一些經(jīng)驗(yàn)。

        1 處理器和存儲(chǔ)器

        處理器分為單內(nèi)核處理器和多內(nèi)核處理器兩大類(lèi)。兩類(lèi)處理器影響軟件設(shè)計(jì)的共同點(diǎn),首要因素是主頻,其次是緩存的命中率。軟件無(wú)法改變主頻——除了那些少數(shù)可以動(dòng)態(tài)調(diào)整主頻的處理器,而緩存的命中率是軟件設(shè)計(jì)需要考慮的重要因素。

        一級(jí)緩存是離處理器內(nèi)核最近的存儲(chǔ)器,它的速度基本和處理器的主頻一致。因?yàn)槠鋬r(jià)格昂貴,所以容量不大,一般為幾十KB的數(shù)量級(jí)。一級(jí)緩存之外可能存在二級(jí)緩存和三級(jí)緩存,視處理器架構(gòu)和硬件設(shè)計(jì)而定,它們的速度依次降低,容量依次變大;而外部存儲(chǔ)器,即通常所說(shuō)的內(nèi)存,是最慢但容量最大的存儲(chǔ)器,與一級(jí)緩存相比,其速度慢至少一個(gè)數(shù)量級(jí)以上,但是容量可以高達(dá)幾十GB。

        因此在程序設(shè)計(jì)時(shí),常用的參數(shù)應(yīng)盡量放在一個(gè)數(shù)據(jù)結(jié)構(gòu)中,每個(gè)數(shù)據(jù)結(jié)構(gòu)的大小盡可能控制在一個(gè)緩存行。對(duì)于常用的函數(shù)也一樣,函數(shù)的代碼盡可能短小。這樣,就能增大常用的數(shù)據(jù)結(jié)構(gòu)和函數(shù)駐留在緩存中的概率,程序的執(zhí)行速度自然就快了。

        圖1 內(nèi)存訪問(wèn)時(shí)延比較

        在多核處理器中,每個(gè)內(nèi)核擁有獨(dú)立的一級(jí)緩存,共享二級(jí)緩存和外部存儲(chǔ)器。由于緩存容量有限,軟件運(yùn)行時(shí)不得不頻繁地讀寫(xiě)外部存儲(chǔ)器,引入比較大的時(shí)延。如圖1所示,未涂色部分為時(shí)延,涂色部分為內(nèi)存訪問(wèn)操作。在單核單發(fā)射處理器中(單發(fā)射意味著一次流水線周期只能執(zhí)行一條指令),因?yàn)閮?nèi)核只有一個(gè)指令執(zhí)行單元,所以讀寫(xiě)數(shù)據(jù)引入的時(shí)延比較大。當(dāng)執(zhí)行單元增加到兩個(gè),即雙發(fā)射處理器,兩條指令可以并發(fā)執(zhí)行,讀寫(xiě)數(shù)據(jù)引入的時(shí)延大大減小。當(dāng)執(zhí)行單元再加倍,即4發(fā)射處理器,相比于雙發(fā)射,讀寫(xiě)數(shù)據(jù)的時(shí)延并沒(méi)有明顯的改善。此時(shí),單純依賴(lài)增加執(zhí)行單元,受益不多。而增加處理器數(shù)目(如增至4內(nèi)核),卻能突破瓶頸,通過(guò)多內(nèi)核交叉訪問(wèn)的方式可大幅度降低時(shí)延。

        所以,為了充分利用多內(nèi)核處理器的特點(diǎn),軟件應(yīng)該避免將一個(gè)計(jì)算量大的任務(wù)綁定到一個(gè)內(nèi)核上,盡量使用對(duì)稱(chēng)多處理操作系統(tǒng),將計(jì)算量大的任務(wù)和訪問(wèn)內(nèi)存頻繁的任務(wù)盡可能平均分布到各個(gè)內(nèi)核上。

        同時(shí),建議啟用內(nèi)存的交織(Interleave)模式,幾乎可以使其吞吐量翻番。交織模式允許一路內(nèi)存正在訪問(wèn)的同時(shí),另一路內(nèi)存刷新。實(shí)踐表明,如果所有路內(nèi)存的刷新周期都是交叉排列,將會(huì)產(chǎn)生一種流水線效應(yīng)。否則,處理器必須等待第一個(gè)數(shù)據(jù)處理結(jié)束再刷新內(nèi)存,才能發(fā)起下一次讀寫(xiě)操作。

        針對(duì)大數(shù)據(jù)量搬移、內(nèi)存復(fù)制和內(nèi)存設(shè)置等操作,盡可能選用DMA方式。例如,優(yōu)化常用的內(nèi)存復(fù)制庫(kù)函數(shù)memcpy和內(nèi)存設(shè)置庫(kù)函數(shù)memset,如果操作的數(shù)量大于某個(gè)設(shè)定值時(shí),采用DMA方式可以大大減輕處理器的負(fù)擔(dān)。

        此外,有些體系結(jié)構(gòu)的處理器對(duì)代碼有著特殊的要求。例如MIPS架構(gòu)處理器[1],在其體系結(jié)構(gòu)中,正常的加載和存儲(chǔ)必須地址對(duì)齊:半字只能從雙字節(jié)的邊界加載;字只能從4字節(jié)的邊界加載。一個(gè)非對(duì)齊地址的加載指令會(huì)導(dǎo)致自陷。所以,如果訪問(wèn)地址是依靠程序計(jì)算所得,那么就要格外小心。還有一種情況是,處理器與另一個(gè)智能芯片通過(guò)共享內(nèi)存的方式進(jìn)行通信,也有可能導(dǎo)致非對(duì)齊地址訪問(wèn)。一個(gè)簡(jiǎn)便的解決方法是,程序中增加對(duì)地址合法性的檢測(cè)。

        2 外圍高速總線

        目前,芯片間常用的高速互連總線包括PCI、PCI-X、PCIe、HyperTransport、RapidIO、SPI-4.2、以 太 網(wǎng) (FE/GE/10GE)等。其中,PCIe和以太網(wǎng)是應(yīng)用最廣泛的兩類(lèi)總線,以下將分別介紹它們對(duì)程序設(shè)計(jì)的影響。

        2.1 PCIe

        PCIe總線是一類(lèi)高速串行總線,最新的 PCIe 3.0[2]標(biāo)準(zhǔn)的信號(hào)頻率可達(dá)8.0GHz,PCIe 1.0標(biāo)準(zhǔn)的信號(hào)速率也可達(dá)2.5GHz。PCI的頻率達(dá)到66MHz。雖然PCIe和它的先驅(qū)PCI、PCI-X在硬件上完全不同,但是因?yàn)镻CIe的驅(qū)動(dòng)程序向前兼容,而且具有速度更快、連線更少的優(yōu)勢(shì),所以PCIe快速地取代了PCI和PCI-X。

        PCIe總線對(duì)軟件設(shè)計(jì)的影響主要有三點(diǎn)。

        第一,小 端 (Little-Endian)模 式 是 PCIe/PCI-X/PCI標(biāo)準(zhǔn)規(guī)定的模式,即存儲(chǔ)數(shù)據(jù)時(shí),數(shù)據(jù)的低字節(jié)存放在低地址,傳送數(shù)據(jù)時(shí),數(shù)據(jù)的低字節(jié)先傳送。如果PCIe兩側(cè)器件的模式不同,一側(cè)是大端模式,另一側(cè)是小端模式,那么,就會(huì)引入字節(jié)翻轉(zhuǎn)問(wèn)題。例如,一側(cè)寫(xiě)入“0x11223344”,另一側(cè)讀到的卻是“0x44332211”。從軟件角度,解決這個(gè)問(wèn)題的方法往往是寫(xiě)一個(gè)宏,在一側(cè)把字節(jié)翻轉(zhuǎn)過(guò)來(lái),這樣會(huì)耗費(fèi)大量的CPU周期。其實(shí),目前的大部分PCIe接口芯片都有字節(jié)順序倒換的功能,硬件可以根據(jù)設(shè)置自動(dòng)完成字節(jié)順序倒換,從而極大提升軟件的效率。

        第二,負(fù)荷單元大小。PCIe標(biāo)準(zhǔn)規(guī)定TLP(協(xié)議層)報(bào)文的數(shù)據(jù)有效負(fù)載的最大值為4KB,具體器件定義了“最大負(fù)荷長(zhǎng)度”(Max_Payload_Size)和“能支持的最大負(fù)荷長(zhǎng)度”(Max_Payload_Size_Supported)兩個(gè)參數(shù)。Max_Payload_Size_Supported由PCIe芯片的硬件邏輯決定,一般為只讀;而Max_Payload_Size由軟件設(shè)定(芯片的默認(rèn)值通常是最小值:128字節(jié)),顯然其數(shù)值不能大于 Max_Payload_Size_Supported。

        PCIe器件發(fā)送數(shù)據(jù)報(bào)文時(shí),使用 Max_Payload_Size參數(shù)決定TLP的最大有效負(fù)載。當(dāng)PCIe器件所傳送的數(shù)據(jù)大小超過(guò) Max_Payload_Size參數(shù)時(shí),這段數(shù)據(jù)將被分割為多個(gè)TLP進(jìn)行發(fā)送。在接收側(cè),接收到的TLP的最大有效負(fù)載也不能超過(guò)接收器件的Max_Payload_Size參數(shù)。如果接收的TLP,其長(zhǎng)度字段超過(guò)Max_Payload_Size參數(shù),接收器件將認(rèn)為該TLP非法。因此,Max_Payload_Size越大,PCIe總線的利用效率就越高。但是,收發(fā)兩側(cè)要協(xié)商,設(shè)置一個(gè)兩側(cè)都能夠接受的最大值。

        因?yàn)镻CIe的驅(qū)動(dòng)程序兼容PCI/PCI-X,所以許多PCI/PCI-X的驅(qū)動(dòng)程序在新的PCIe器件上能夠正常運(yùn)行,但是不能充分發(fā)揮PCIe的吞吐能力。合理設(shè)置Max_Payload_Size參數(shù),可以提高PCIe的利用效率,從而提升軟件性能。

        第三,共享內(nèi)存的一致性。在PCIe架構(gòu)中,主從設(shè)備之間大數(shù)據(jù)量的通信一般用共享內(nèi)存的方式。以集成PCIe接口的網(wǎng)絡(luò)芯片為例,它工作于從模式,處理器工作于主模式。處理器在其外部存儲(chǔ)器中開(kāi)辟了一段空間允許從設(shè)備讀寫(xiě),這片空間就是共享內(nèi)存。當(dāng)發(fā)送報(bào)文時(shí),網(wǎng)絡(luò)芯片會(huì)從共享內(nèi)存中讀取數(shù)據(jù),組包后發(fā)送出去。當(dāng)接收?qǐng)?bào)文時(shí),它會(huì)把報(bào)文數(shù)據(jù)寫(xiě)到共享內(nèi)存中。通常把這片共享內(nèi)存的屬性設(shè)置為非緩存模式(Un-Cache),這樣肯定能確保其一致性。然而,有些處理器能夠從硬件層面確保共享內(nèi)存的一致性,例如,博通公司的BCM1250、BCM1480多核處理器。此時(shí)可以將共享內(nèi)存的屬性設(shè)置為緩存模式(Cache),性能將大幅度提高。所以,當(dāng)碰到共享內(nèi)存的一致性問(wèn)題時(shí),需要仔細(xì)閱讀相關(guān)的芯片資料,才能充分發(fā)揮硬件的長(zhǎng)處。

        2.2 以太網(wǎng)

        以太網(wǎng)包含10兆、百兆、千兆、10千兆等接口。因?yàn)橐蕴W(wǎng)是以大端方式傳輸數(shù)據(jù),而本地處理器可能工作于小端模式,為了保證數(shù)據(jù)的一致性,就要把本地的數(shù)據(jù)轉(zhuǎn)換成網(wǎng)絡(luò)上使用的格式,然后發(fā)送出去。接收的時(shí)候也一樣,經(jīng)過(guò)轉(zhuǎn)換后這些數(shù)據(jù)才能使用。一般利用基本的庫(kù)函數(shù),例如htons()、htonl()、ntohs()和ntohl()等進(jìn)行字節(jié)轉(zhuǎn)換。

        所以,如果產(chǎn)品是面向以太網(wǎng)應(yīng)用的,需要頻繁處理以太網(wǎng)報(bào)文,那么選擇處理器工作在大端模式是明智之舉。

        3 外圍低速總線

        相比高速總線,低速總線對(duì)系統(tǒng)性能的影響更加明顯。目前常用的外圍低速總線包括UART(串口)、I2C總線、SMBus、SPI、MDIO等。它們的速度,低則幾kHz,高則幾十MHz。針對(duì)低速及各種協(xié)議的特點(diǎn),軟件設(shè)計(jì)需要考慮以下因素。

        3.1 盡可能少地訪問(wèn)外部器件

        毫無(wú)疑問(wèn),系統(tǒng)越少訪問(wèn)低速外設(shè),性能就越高。那么,如何減少訪問(wèn)低速外設(shè)的次數(shù)呢?方法有三種:一是使用緩存;二是中斷方式;三是充分利用器件特性,推出個(gè)性化服務(wù)。

        ① 使用緩存是一種以空間換時(shí)間的方法。一些板卡信息例如生產(chǎn)日期、序列號(hào)等往往存儲(chǔ)在非易失性介質(zhì)(如EEPROM)中。軟件只要在系統(tǒng)初始化時(shí)讀取這些信息,保存在全局變量中,今后就不用訪問(wèn)低速外設(shè)了,只需訪問(wèn)這些全局變量即可。類(lèi)似的信息還有槽位號(hào)、機(jī)箱號(hào)等,它們的共同特點(diǎn)是其內(nèi)容在使用過(guò)程中保持不變。緩存的另一個(gè)作用是當(dāng)處理器往低速外設(shè)寫(xiě)數(shù)據(jù)時(shí),先寫(xiě)到緩存中,然后由一個(gè)優(yōu)先級(jí)低的任務(wù)把緩存中的數(shù)據(jù)寫(xiě)到外設(shè),這樣就不會(huì)影響高優(yōu)先級(jí)任務(wù)的執(zhí)行。

        ② 中斷方式。眾所周知,中斷方式能夠?qū)⑻幚砥鲝姆敝氐耐庠O(shè)輪詢?nèi)蝿?wù)中解放出來(lái)。例如,溫度告警,常見(jiàn)的溫度監(jiān)測(cè)芯片,如LM75、ADT7411等,都集成I2C總線接口,都可以設(shè)置監(jiān)測(cè)溫度的上下門(mén)限,如果溫度超過(guò)門(mén)限值,那么就觸發(fā)中斷。再如有些I/O擴(kuò)展芯片,如PCA9555,一種具有I2C總線接口和16個(gè)I/O端口的芯片,如果I/O端口電平發(fā)生變化,則會(huì)觸發(fā)中斷。

        ③充分利用器件特性,可以使軟件性能事半功倍。例如,很多具有I2C總線接口的器件,如EEPROM,讀寫(xiě)單個(gè)數(shù)據(jù)和多個(gè)數(shù)據(jù)的操作方法不同。如圖2所示,當(dāng)寫(xiě)單個(gè)數(shù)據(jù)時(shí),處理器先發(fā)送器件地址和寫(xiě)命令,接著發(fā)送寄存器地址,最后發(fā)送待寫(xiě)數(shù)據(jù)。如果寫(xiě)多個(gè)數(shù)據(jù)且它們的地址連續(xù),那么寫(xiě)完第1個(gè)數(shù)據(jù)后,可以緊接著發(fā)送第2個(gè)數(shù)據(jù)、第3個(gè)數(shù)據(jù)……直到全部寫(xiě)完,寄存器地址會(huì)自動(dòng)增加。不了解芯片特性的程序員往往在寫(xiě)單個(gè)數(shù)據(jù)的函數(shù)的基礎(chǔ)上,多次調(diào)用該函數(shù),來(lái)實(shí)現(xiàn)多個(gè)數(shù)據(jù)的寫(xiě)操作,事倍功半。讀操作的情況類(lèi)似,如圖3所示。由此可見(jiàn),用連續(xù)讀寫(xiě)多個(gè)數(shù)據(jù)的方式,效率幾乎可以翻倍。

        圖2 I 2 C總線器件寫(xiě)數(shù)據(jù)操作

        圖3 I 2 C總線器件讀數(shù)據(jù)操作

        3.2 設(shè)置臨界區(qū)

        訪問(wèn)低速總線連接的外設(shè)通常不是原子操作,即一次訪問(wèn)需要耗費(fèi)多條機(jī)器碼,例如SPI總線、SMBus總線、圖2~3所示的I2C總線[3]操作等。它們的特點(diǎn)是每次訪問(wèn)過(guò)程禁止被中斷,或在同一條總線上交叉進(jìn)行另一次操作,有些總線甚至有超時(shí)規(guī)定,例如SMBus有25ms的超時(shí)限制。在多任務(wù)搶占式操作系統(tǒng)中,意外難免發(fā)生,低優(yōu)先級(jí)的任務(wù)可能被高優(yōu)先級(jí)任務(wù)搶占,正在進(jìn)行的讀/寫(xiě)操作可能突然被一個(gè)中斷破壞,然后插入另一個(gè)讀/寫(xiě)操作等。

        為了保證單次讀/寫(xiě)操作的可靠性,必須對(duì)讀/寫(xiě)函數(shù)設(shè)立臨界區(qū)——在任何給定時(shí)間只有一個(gè)線程可以執(zhí)行的代碼,用互斥鎖等機(jī)制保護(hù)起來(lái);同時(shí),避免在中斷服務(wù)程序中訪問(wèn)低速外設(shè),建議采用延后訪問(wèn)或者工作隊(duì)列的方式。

        3.3 建立良好的軟件模型

        對(duì)于低速外設(shè),建立良好的軟件模型可以幫助提升產(chǎn)品整體性能,反之則成為系統(tǒng)前行的絆腳石。特別在事件驅(qū)動(dòng)的系統(tǒng)中,千萬(wàn)記得不能讓處理器停下來(lái)等待事件的發(fā)生。例如,IPMI(智能平臺(tái)管理系統(tǒng))可以運(yùn)行在UART、SMBus等多種總線上。如下代碼是初學(xué)者易犯的錯(cuò)誤之一,編程思路簡(jiǎn)單,但執(zhí)行效率低。它首先等待輸入,根據(jù)輸入執(zhí)行相關(guān)操作,再等待操作的結(jié)果執(zhí)行下一步操作,等待過(guò)程中浪費(fèi)了大量的處理器周期,降低了整個(gè)系統(tǒng)性能。

        根據(jù)低速外設(shè)的特點(diǎn)改進(jìn)軟件模型可以提升產(chǎn)品性能,下面的代碼,建立專(zhuān)門(mén)的線程、任務(wù)或中斷服務(wù)程序來(lái)接收外部數(shù)據(jù),根據(jù)注冊(cè)函數(shù)的不同,調(diào)用對(duì)應(yīng)的數(shù)據(jù)處理程序,再根據(jù)數(shù)據(jù)處理的結(jié)果調(diào)用相應(yīng)的處理函數(shù)。上一個(gè)軟件模型相當(dāng)于硬件中的同步系統(tǒng),而改進(jìn)的模型相當(dāng)于異步系統(tǒng),更符合事件驅(qū)動(dòng)的特點(diǎn)。

        結(jié) 語(yǔ)

        當(dāng)前的電子產(chǎn)品、通信設(shè)備大部分是軟硬件結(jié)合的產(chǎn)物,此乃大勢(shì)所趨。未來(lái)最成功的公司將把優(yōu)秀的軟件鑲嵌在獨(dú)特的硬件上,達(dá)到渾然一體的效果。文章從處理器、存儲(chǔ)器、高速總線、低速總線等方面介紹了筆者在開(kāi)發(fā)過(guò)程中積累的一點(diǎn)經(jīng)驗(yàn),而要真正做到軟硬件的完美結(jié)合,除了經(jīng)驗(yàn)之外,還需投入大量時(shí)間和精力,分析用戶需求,根據(jù)需求選擇最合適的硬件,深刻理解硬件芯片的特性,建立高效的軟件模型,以及編寫(xiě)優(yōu)秀的代碼。

        [1]MIPS Technologies.MIPS Architecture For Programmers Revision 2.50,2005.

        [2]PCISIG.PCI Express Base Specification Revision 3.0,2008.

        [3]PHILIPS.The I2C-Bus Specification Version 2.1,2000.

        猜你喜歡
        共享內(nèi)存外設(shè)內(nèi)存
        通過(guò)QT實(shí)現(xiàn)進(jìn)程間的通信
        “春夏秋冬”的內(nèi)存
        基于PCI總線的多處理器協(xié)同機(jī)制研究
        QNX下PEX8311多路實(shí)時(shí)數(shù)據(jù)采集的驅(qū)動(dòng)設(shè)計(jì)
        電子世界(2014年21期)2014-04-29 06:41:36
        Microchip推出具備雙ADC外設(shè)的全新器件,擴(kuò)展其低成本8位PIC?單片機(jī)產(chǎn)品線
        基于內(nèi)存的地理信息訪問(wèn)技術(shù)
        一種高效RTAI 共享內(nèi)存管理層的研究與實(shí)現(xiàn)*
        貼身呵護(hù) 必不可少的PSP外設(shè)
        外設(shè)天地行情
        外設(shè)天地行情
        国产无线乱码一区二三区| 91精品国产综合久久久密臀九色| 国产精品久久久天天影视 | 日本加勒比精品一区二区视频| 久久精品国产亚洲av果冻传媒| 国产黄色一区二区在线看 | 亚洲综合色视频在线免费观看| 亚洲中文字幕无线乱码va| 最新天堂一区二区三区| 成人偷拍自拍视频在线观看| 999精品无码a片在线1级| 国产真实伦在线观看| 久久九九青青国产精品| 富婆叫鸭一区二区三区| 国产午夜在线视频观看| 精品成在人线av无码免费看| 国产一区二区不卡老阿姨| 亚洲免费天堂| 女同视频网站一区二区| 青青草视频是针对华人| 成人特黄a级毛片免费视频| 九九久久精品国产| 最近亚洲精品中文字幕| 美女视频一区二区三区在线| 亚洲一区二区三区尿失禁| 越南女子杂交内射bbwbbw| 人妻有码中文字幕在线不卡| 在线观看的a站免费完整版 | 男女深夜视频网站入口| 亚洲乱亚洲乱妇无码麻豆| 女人下面毛多水多视频| 啪啪视频一区二区三区入囗| 国产伦精品一区二区三区| 亚洲av成人无码一二三在线观看| 日本亚洲国产一区二区三区| 国产亚洲一区二区三区夜夜骚| 久久精品国产亚洲av蜜点| 人人爽人人爱| 亚洲va欧美va人人爽夜夜嗨| 久久亚洲精品中文字幕蜜潮| 国产成人精品无码片区在线观看 |