《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > NAND型Flash在大容量存儲回放系統中的應用

NAND型Flash在大容量存儲回放系統中的應用

2008-06-18
作者:謝 民, 高梅國, 王 超

  摘 要: 在某些存儲回放系統" title="回放系統">回放系統中,要求在存儲容量大、數據可靠性高的同時,具有較寬的數據帶寬,為此,可采用NAND型Flash實現容量要求和數據的非易失性;采用FPGA進行多片存儲體并行讀取,從而克服了NANDFlash固有的讀取速度慢的缺點,并擴展了存儲深度;同時引入雙主設備的設計,利用FPGA與PC104實現存儲和讀取的功能分離,是存儲方式靈活,控制方便的解決方案。本文介紹的方案降低了此類系統的實現難度,縮短了產品研發周期,已應用于實際系統中并得到好評。
  關鍵詞: NAND Flash FPGA PC104


  閃存(Flash Memory)由于其具有非易失性、電可擦除性、可重復編程以及高密度、低功耗等特點,而被廣泛地應用于U盤、MP3和數碼相機等的數據存儲" title="數據存儲">數據存儲設備中。NAND 和NOR Flash是目前市場上兩種主要的非易失閃存芯片。與NOR型Flash相比,NAND型Flash在容量、功耗、使用壽命等方面的優勢使得它成為高數據存儲密度的理想解決方案。本文以Samsung公司生產的K9F1G08UOM為例,介紹NAND型Flash在板載大容量" title="大容量">大容量數據存儲回放系統中的應用。
1 器件簡介
1.1功能特性
  NAND型Flash芯片是Samsung 公司推出的新一代大容量數據存儲器件,電源電壓范圍為1.7~3.6V,功耗低,TSSOP封裝體積小,目前最大" title="最大">最大單片容量可達8Gb,按頁讀寫,按塊擦除。本次應用開發的是容量為1Gb的K9F1G08UOM,其功能框圖[1]如圖1所示。由圖1可以看出,該器件按功能可以劃分為如下幾個部分:存儲陣列、輸入輸出緩沖、命令寄存器、地址譯碼寄存器和控制邏輯產生。其中,命令寄存器用來確定外部設備對存儲器進行操作的類型,地址譯碼寄存器保存被訪問的地址并產生相應的譯碼選通信號。主設備通過8位的I/O" title="I/O">I/O端口分時復用訪問器件命令、地址和數據寄存器,完成對芯片內存儲體的訪問。


1.2 存儲體的組織結構
  K9F1G08UOM的組織結構框圖[1]如圖2所示。從圖2可知,該K9F1G08UOM存儲體由1024個塊(Block)組成,每個Block含有64個頁(Page),每個Page內有2K+64個字節,其中2KB為主存儲區,用來保存用戶數據;剩余的64個字節為輔助存儲區,用來保存一些狀態信息,如:壞塊標志位、ECC碼等。由圖2中所列的表可知,由于I/O端口的寬度為8位,訪問時需要在前兩個地址訪問周期內給出12位列地址(沒有使用到的地址管腳必須拉至低電平),以及尋址到頁內字節,然后在接下來的兩個地址訪問周期內給出16位的行地址以確定頁號和塊號;對于同等容量16位器件,由于二者的區別僅在于單頁字節容量不同,所以訪問時頁內地址只需要給出11位,并且地址仍按8位經由I/O0~I/O7給出,其余未使用的地址管腳拉至低電平。

?


1.3 選擇器件的參考因素
  選擇NAND器件時,除了根據實際應用選擇合適的容量以外,還需要考慮對NAND型Flash各種操作的速度是否能滿足系統需求。表1給出了1Gb容量兩種位寬類型的器件在讀、寫、擦除三種主要操作的近似速度,具體計算方法和參數可見參考文獻[2]、[3]。需要強調的是:
  (1)位寬加倍對編程速度沒有太大影響,這主要是因為在將一頁數據寫入Flash片內的寄存器后,器件自身將該頁數據寫入存儲單元的時間基數較大。
  (2)位寬加倍使得讀取速度接近翻番。
  (3)由于器件按塊擦除,所以位寬對擦除速度基本沒有影響。
2 應用實例
  以一板載大容量數據回放系統為例,其系統結構如圖3所示,主要包括CPU模塊、FPGA、NAND Flash和數模轉換模塊四部分。其中,CPU模塊為一個與IBM-PC/AT兼容的PC/104 CPU模塊,并作為整個系統的主控設備,完成數據接收、存儲、回放參數設置等功能。CPU模塊直接通過標準PC/104接插件固定在母板上;FPGA采用Xilinx公司Spartan3系列XC3S1000[2],主要完成數據的回放功能;數模轉換模塊完成數據從數字域到模擬域的轉換,轉換速率為100MBps;NAND Flash采用8位位寬、單片1Gb容量的K9F1G08UOM,用來存儲回放數據,考慮單片Flash的數據輸出率有限,系統中采用8片并行處理,所以存儲容量是8Gb。


  FPGA模塊是本系統的關鍵,其片內系統結構如圖4所示。設計要點如下:


2.1 功能劃分
  系統中允許兩個主設備即FPGA和CPU模塊訪問Flash;在此將FPGA在邏輯上劃分為Master和Slave兩種模式。Master表示FPGA作為Flash的主設備,占用Flash 的總線,此時CPU模塊只能訪問FPGA內的控制寄存器;Slave則表示FPGA和Flash均作為CPU模塊的從設備接受訪問,Flash和FPGA均映射到CPU模塊的某段I/O地址空間。此時對Flash來講,FPGA只是提供CPU至Flash的數據和控制通路。FPGA片內系統結構如圖4所示。圖中:CPU通過PC/104總線訪問控制寄存器的相應位來控制FPGA的狀態切換,粗黑線只代表數據鏈路(控制鏈路都為單向信號,較數據鏈路簡單,但連接方式與數據通路類似,為簡化框圖已省略)。
  雖然CPU模塊與FPGA均能訪問Flash,但是在具體實現時,如圖4所示,FPGA內只實現對Flash的讀控制,而其他諸如寫操作、擦除以及檢測壞塊(invalid block)等操作則由CPU模塊完成。這樣設計的原因是:
  (1)系統帶寬要求。前面提到了系統要求的輸出數據速率為100MBps,而單片Flash的峰值數據輸出速率僅為16MBps;PC/104總線的時鐘頻率為8MHz,且一個指令周期至少需要6個時鐘,這樣即使多片Flash并片操作也難滿足系統要求。而FPGA實現時,則可以完全根據Flash的訪問時序要求設計狀態機,時間裕量可以很精確地調整,從而盡可能地接近對Flash訪問的最大帶寬。因此用FPGA實現其控制,性能要優于CPU實現的方案。
  (2)簡化系統的設計和調試難度。雖然FPGA實現對Flash的訪問可以達到最大帶寬,但是它的設計以及調試卻遠較CPU實現復雜和困難。在FPGA設計中,設計者必須很精確地以數據流形式描述整個設計,必須很清楚地了解每個時刻信號的變化,而且設計當中的信號很不易觀測,出現錯誤后對問題的定位比較困難。相比之下,CPU模塊通過高級語言,以算法級的方式實現,再輔助以良好的開發調試環境,實現Flash控制要容易得多。本應用中將對Flash的寫、擦除、記錄壞塊表等對時間要求不高的操作轉移至CPU模塊,這樣可以大大降低整個系統的設計和調試難度。
2.2 FPGA與NAND Flash的接口設計
  NAND Flash和通常使用的存儲器最大差別是接口的不同,通常使用的非易失性存儲器如NOR Flash,由于它有一套完整的地址映射即訪問接口,指定的地址總線和數據總線,從而可以很容易地訪問其內部的每一個字節。而NAND Flash沒有專門的地址線;它的接口是一種間接類I/O接口[3],通過8位的總線分別發送命令和地址到命令、地址寄存器來控制。以典型的“讀”命令為例:寫“讀”命令到命令寄存器,寫入4字節的地址到地址寄存器,等待設備將要求的數據放到輸出寄存器,從數據寄存器讀取一頁的數據。NAND Flash這種接口的缺點是一般情況下無法用來引導系統,除非外接專門的狀態機或控制器。其優點是:由于地址寄存器在芯片內部,芯片的管腳隨著芯片容量的增加基本上不變,而且FPGA實現Flash訪問,其接口設計無任何特殊要求,接口信號按通用I/O管腳設計即可(這里說的接口設計是指在Slave模式下,CPU模塊與Flash接口設計)。本設計中采用的接口如圖5所示。


  由圖5可知,設計中通過L_A0、L_A1(在Slave模式下直接映射到PC/104總線對應的低地位地址線;在Master模式下則連接至讀控制的對應輸出端口)直接產生命令寄存器和地址寄存器選通信號,而芯片的Ready/Busy信號直接通過L_GPIO口傳遞給FPGA,然后給CPU模塊。這種設計結構簡單,訪問速度快,唯一的缺點就是要求所使用的NAND型Flash必須具備CEDC(Chip Enable Don′t Care)特性,即不需要/CE(芯片使能信號)在整個操作的周期都一直拉低。


2.3 FPGA實現NAND型Flash讀狀態機的設計
  K9F1G08UOM的讀時序如圖6[2]所示。設計中的關鍵是保證命令、地址、數據以及控制信號在時序上的要求。由圖可知,對Flash的讀、寫操作的最小時鐘周期分別為tWC(45ns)和tRC(50ns)。為了方便設計,狀態機的時鐘選取40MHz(25ns)。當然,在資源足夠的情況下也可以采用更高頻率的時鐘以減小時間裕量,從而提高訪問速度。本設計程序實例如下:
  //cle_o-命令寄存器使能; ce_o-片選使能; we_o-寫使能; ale_o-地址寄存器使能
  //re_o-讀使能; rb_i-等待/忙信號 //start_i-讀啟動信號
  always @ (posedge clk_i )
  if ( rst_i) begin
  MooreState<=S0; //復位狀態
  cle_o<=1′b0;ce_o<=1′b1;we_o<=1′b1;re_o<=1′b1;ale_o<=1′b0;io_o<=8′hxx;
  count_en<=1′b0; end
  else
  case (MooreState)
  S0:begin MooreState<=start_i?S1:S0;re_o<=1′b1;end
  S1: begin MooreState <= S2; //寫命令寄存器
    cle_o<=1′b1;ce_o<=1′b0;we_o<=1′b0;io_o<=8′h00; end
  S2: begin MooreState<=S3;we_o<=1′b1;end
  S3: begin MooreState <=S4; //寫地址寄存器1
    cle_o<=1′b0; we_o<=1′b0;ale_o<=1′b1;io_o<=
    coladr_l; end
  S4: begin MooreState<=S5;we_o<=1′b1;end
  S5: begin MooreState<=S6; //寫地址寄存器2
    we_o<=1′b0;io_o<=coladr_h; end
  S6: begin MooreState<=S7;we_o<=1′b1;end
  S7: begin MooreState<=S8; //寫地址寄存器3
    we_o<=1′b0;io_o<=radr_l; end
  S8: begin MooreState<=S9;we_o<=1′b1;end
  S9: begin MooreState<=S10; //寫地址寄存器4
    we_o<=1′b0;io_o<=radr_h; end
  S10: begin MooreState<=S11;we_o<=1′b1;end
  S11: begin MooreState <= S12; //寫命令寄存器
    cle_o<=1′b1;we_o<=1′b0;ale_o<=1′b0;io_o<=
    8′h30; end
  S12: begin MooreState<=S13;we_o<=1′b1;end
  S13: begin MooreState<= rb_i? //忙等待
  S14: S13;
    cle_o<=1′b0;io_o<=8′hxx; end
  S14: begin MooreState <= S15; //循環讀一頁數據
    re_o<=1′b0;count_en<=1′b1;end
  S15: begin MooreState<= (count_n==4095)?S16:S14;
    re_o<=1′b1; end
  S16: begin MooreState <=S0;   //結束
    ce_o<=1′b1;count_en<=1′b0; end
    endcase
    always @ (posedge clk_i )
  begin if (rst_i) count_n<=1;
  else if (count_en) count_n<=count_n+1;
  else count_n<=1;
  end
  上述程序中,在讀操作時使用了Moore型狀態機,其最大特點就是輸出僅依賴于狀態機的狀態,與它的輸入無關;而描述Moore狀態機的最佳方式之一就是在always語句中使用case語句實現不同狀態間的轉換,且每種狀態的輸出邏輯都在相應的分支中描述。
  狀態進程:本例中將讀操作分成17個狀態,其中狀態S0用來初始化各輸出信號,狀態S1~S2和S12~S13完成對命令寄存器的寫操作,狀態S3~S11完成4次對地址寄存器的寫操作,狀態S14、S15則完成一頁數據的連續讀取。
  組合進程:組合進程是根據當前狀態(現態)給輸出信號賦值,并決定下一狀態(次態)。在本例中,狀態機根據不同的狀態對ce、ale、cle、we、re、io等Flash信號進行賦值,以實現對Flash 的控制功能。
  另外,增加一個always語句實現同步計數,用于對讀取的數據個數計數。
  上述程序只是讀操作部分,具體讀控制還包括地址產生、壞塊表檢測以及其他一些控制部分,由于篇幅有限,此處不贅述。
2.4 壞塊表的建立
  由于NAND型Flash存儲容量較大,難免在使用過程中出現存儲單元的損壞,因此有必要記錄每片Flash壞塊的位置。設計中首先由CPU模塊通過PC104總線訪問Flash,檢測器件中的壞塊并建立壞塊表(invalid block table),然后存儲在FPGA內的雙口RAM中。數據回放時,讀狀態機在跨塊時需要將當前塊的塊號和壞塊表中的塊號按遍歷方式進行比較,當確認該塊為壞塊時,將跳至下一可用塊;否則讀取該塊數據。檢測壞塊的程序流程如圖7所示,實現壞塊檢測的C代碼如下:
  RAdr_H=0; RAdr_L=0;
  for(k=0; k<256; k++)
  //遍歷1024個block,檢測壞block
  {
  for(j=0; j<4; j++)
  { //讀取第1頁第2 048個字節
  outportb(ComReg,0x00);
  outportb (AddReg,0x00);
  outportb (AddReg,0x08);
  outportb (AddReg, RAdr_L);
  outportb (AddReg, RAdr_H);
  outportb (ComReg,0x30);
  while( inportb(RB_Adr )!=0x01) { };
  FP2048=inportb (DataReg);
  outportb(ComReg,0x00);
  //讀取第2頁第2 048個字節
  outportb (AddReg,0x00);
  outportb (AddReg,0x08);
  outportb (AddReg,RAdr_L+1);
  outportb (AddReg,RAdr_H);
  outportb (ComReg,0x30);
  while( inportb (RB_Adr)==0x01 ) {};  
  SP2048= inportb (DataReg);
  if((FP2048!=0xff)or(SP2048)!=0xff) )
  //判斷第1、2頁的第2048字節是否為0xff
  {Inv_Add=RAdr_H*256+RAdr_L&0xC0;
  outport(Inv_Add,Inv_Tab_Add);
  Inv_Tab_Add=Inv_Tab_Add+1;}
  RAdr_L=RAdr_L+0x40;
  } /* end of for(..j..) */
  RAdr_H=RAdr_H+1;
  } /* end of for(..k..) */
  上述代碼中,ComReg為命令寄存器地址,AddReg為地址寄存器地址,DataReg為數據端口地址,Inv_Tab_Add為壞塊表地址,RB_Adr則為芯片R/B信號反饋至GPIO口的端口地址。
2.5 數據緩沖問題
  如前所述,FPGA內部8個并行運行的讀狀態機獨立完成每片Flash的讀取操作,并片后,必然會導致各片Flash在讀取數據時存在時間上的錯位,特別是當其中一片Flash出現壞塊,讀狀態機需要跨塊讀取時,這個問題會更加嚴重。為了解決這個問題,FPGA的設計中增加了用來緩沖數據的FIFO,以隔離FIFO前后速度非一致的數據流。FIFO的深度由讀狀態機跨塊所需要的時間間隔和FIFO的輸出時鐘100MHz共同決定,以保證FIFO輸出數據流不間斷。
  本文介紹的系統利用FPGA和PC104模塊分別完成對NAND型Flash的讀寫操作,不僅滿足了系統存儲深度8Gb的要求,而且利用FPGA內多個獨立并行狀態機實現了多片Flash的并行讀取操作,滿足了數據回放的帶寬要求,并實際應用于某干擾系統中,效果理想。
參考文獻
1 XILINX. Spartan-3 platform FPGA handbook[EB/OL],http://www.xilinx.com, 2003
2 Samsung. K9F1G08UOM K9F1G16UOM flash memory data-sheet rev.13[EB/OL],http://www.sumsung.com,2003
3 Samsung. NAND flash spare assignment recommendation [EB/OL],http://www.sumsung.com, 2003
4 TOSHIBA,What is NAND flash memory? [EB/OL],http://www.toshiba.com, 2003

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          99这里有精品| 久久久久久久久久看片| 亚洲日本成人在线观看| 亚洲影音先锋| 99亚洲精品| 中国成人亚色综合网站| 国产欧美一区二区精品婷婷| 久久精品五月| 欧美激情一区二区三级高清视频| 欧美一级欧美一级在线播放| 99精品国产福利在线观看免费| 亚洲精品一区二区三区不| 亚洲国产精品一区二区第一页| 欧美主播一区二区三区美女 久久精品人| 国产亚洲精品自拍| 国产麻豆精品theporn| 国产精品五月天| 亚洲视频网站在线观看| 国产精品yjizz| 国产精品爱啪在线线免费观看| 欧美精品自拍偷拍动漫精品| 欧美三级电影大全| 国产欧美精品xxxx另类| 91久久精品一区二区三区| 亚洲精品自在久久| 狠狠色狠色综合曰曰| 免费观看日韩av| 欧美色综合天天久久综合精品| 午夜国产精品影院在线观看| 国产欧美 在线欧美| 欧美制服第一页| 亚洲欧美日本国产专区一区| 欧美国产日本韩| 欧美激情91| 中文在线不卡| 欧美日韩一区二区三区在线看| 久久字幕精品一区| 国产精品久久久久77777| 亚洲国产另类 国产精品国产免费| 欧美14一18处毛片| 午夜视频久久久| 99精品视频免费在线观看| 日韩一级大片在线| 欧美日韩一二区| 国产精品视频1区| 亚洲精品国精品久久99热一| 欧美国产91| 欧美精品www在线观看| 一区二区日本视频| 亚洲黄色尤物视频| 欧美成人有码| 麻豆国产精品va在线观看不卡| 国产精品久久久久婷婷| 9色porny自拍视频一区二区| 国内精品久久久久影院 日本资源| 久久午夜国产精品| 国产视频一区在线观看| 亚洲乱码国产乱码精品精| 午夜精品一区二区三区在线播放| 国产综合色一区二区三区| 玖玖玖免费嫩草在线影院一区| 一本不卡影院| 欧美黄色一级视频| 午夜精品久久久| 久久久激情视频| 免费观看日韩av| 久久久精品欧美丰满| 亚洲线精品一区二区三区八戒| 欧美日韩亚洲一区二区三区| 欧美成人国产一区二区| 一本高清dvd不卡在线观看| 一区在线播放| 欧美日韩国产探花| 1024成人| 国产日韩欧美精品在线| 在线亚洲一区观看| 久久精品国产v日韩v亚洲| 99精品黄色片免费大全| 在线看成人片| 精品999日本| 欧美在线日韩精品| 国产视频一区二区三区在线观看| 国产日韩欧美在线播放| 欧美综合国产精品久久丁香| 欧美电影电视剧在线观看| 国产精品福利在线观看| 亚洲精品一二三区| 欧美精品一区在线播放| 欧美日韩裸体免费视频| 国产亚洲精品一区二区| 欧美一区国产二区| 亚洲欧美日韩国产综合| 国产精品永久免费在线| 欧美视频一区二区三区四区| 一区二区三区久久网| 国产一区二区在线免费观看| 黄色av日韩| 欧美午夜精品伦理| 国产三级欧美三级| 亚洲自拍偷拍网址| 久久男人av资源网站| 久久久xxx| 伊人狠狠色j香婷婷综合| 欧美精品久久久久久久久久| 欧美一级成年大片在线观看| 亚洲小视频在线观看| 久久久久久有精品国产| 久久国产精品一区二区三区| 欧美视频在线观看免费网址| 亚洲福利免费| 亚洲人成在线观看网站高清| 久久人人超碰| 亚洲国产女人aaa毛片在线| 久久国产精品亚洲77777| 国产精品你懂的在线欣赏| 亚洲欧美日本日韩| 国产毛片一区二区| 欧美在线亚洲在线| 国产区欧美区日韩区| 欧美在线亚洲| 亚洲欧洲日本在线| 亚洲摸下面视频| **网站欧美大片在线观看| 亚洲人成77777在线观看网| 亚洲美女精品成人在线视频| 在线成人免费视频| 在线播放视频一区| 性伦欧美刺激片在线观看| 国产精品女人久久久久久| 亚洲尤物视频网| 欧美成人精精品一区二区频| 久久深夜福利免费观看| 久久人人97超碰人人澡爱香蕉| 国产精品国产三级欧美二区| 欧美午夜在线| 亚洲全部视频| 久久精品国产亚洲一区二区| ●精品国产综合乱码久久久久| 亚洲另类黄色| 亚洲欧美一区二区三区久久| 亚洲电影专区| 在线综合亚洲欧美在线视频| 欧美影院成人| 欧美激情综合色综合啪啪| 国产日韩一区二区| 欧美在线观看日本一区| 在线成人免费观看| 日韩性生活视频| 性欧美大战久久久久久久免费观看| 欧美视频在线一区二区三区| 欧美高清视频www夜色资源网| 午夜在线a亚洲v天堂网2018| 99re亚洲国产精品| 亚洲欧洲一区二区天堂久久| 玉米视频成人免费看| 午夜日本精品| 欧美成人免费在线观看| 亚洲第一主播视频| 亚洲丶国产丶欧美一区二区三区| 久久久久综合网| 日韩视频免费看| 欧美亚洲在线| 黄色成人在线网站| 欧美日韩美女一区二区| 久久性天堂网| 亚洲欧美美女| 久久久久久久久久久久久9999| 亚洲午夜av在线| 欧美综合激情网| 国产精品成人午夜| 国产精品天美传媒入口| 伊人久久成人| 亚洲国产精品专区久久| 一区二区三区精品视频| 日韩视频免费大全中文字幕| 在线观看日韩av电影| 激情成人av在线| 伊人成人在线视频| 久久精品成人一区二区三区| 永久91嫩草亚洲精品人人| 欧美日韩免费网站| 欧美日韩成人在线播放| 国产欧美丝祙| 亚洲视频在线免费观看| 欧美国产一区视频在线观看| 欧美日本在线播放| 亚洲欧洲日韩女同| 欧美国产日韩一区| 欧美精品在线网站| 亚洲免费影视| 欧美一区二区三区在| 麻豆国产精品一区二区三区| 99精品国产热久久91蜜凸| 亚洲精品婷婷| 亚洲国产cao| 亚洲欧美日韩人成在线播放| 国产精品福利av| 午夜综合激情| 国产午夜精品一区二区三区欧美| 91久久久一线二线三线品牌| 国产三级欧美三级| 久久精品国产免费看久久精品| 国产伦一区二区三区色一情| 亚洲乱码国产乱码精品精98午夜| 国产欧美一区二区精品婷婷| 亚洲专区在线视频| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲国产精品一区制服丝袜| 在线欧美日韩国产| 欧美性jizz18性欧美| 欧美一区二区在线看| 亚洲精品乱码久久久久久| 国产精品videossex久久发布| 91久久精品日日躁夜夜躁欧美| 国内精品视频在线观看| 国产精品久久久久国产精品日日| 国产精品一区二区三区观看| 99av国产精品欲麻豆| 精品va天堂亚洲国产| 久久精品视频免费观看| 国产欧美韩日| 一区二区三区回区在观看免费视频| 国产真实乱子伦精品视频| 欧美专区一区二区三区| 欧美在线欧美在线| 免费欧美在线视频| 在线亚洲一区二区| 99国产精品久久久| 国产在线高清精品| 亚洲免费观看高清完整版在线观看| 国内精品久久久久影院薰衣草| 午夜伦欧美伦电影理论片| 狠狠色综合播放一区二区| 亚洲欧美变态国产另类| 国产日产精品一区二区三区四区的观看方式| 欧美私人啪啪vps| 黑人操亚洲美女惩罚| 欧美日韩亚洲精品内裤| 亚洲第一网站| 在线日韩欧美视频| 国内外成人免费激情在线视频网站| 亚洲综合999| 免费在线观看成人av| 久久久综合香蕉尹人综合网| 亚洲欧美日本国产专区一区| 午夜精品一区二区三区在线视| 欧美岛国激情| 久久国产福利| 亚洲欧美日韩久久精品| 久久久成人精品| 国产精品蜜臀在线观看| 最新国产乱人伦偷精品免费网站| 亚洲伦理在线观看| 激情综合色丁香一区二区| 国产毛片精品视频| 欧美日韩精品欧美日韩精品一| 亚洲一区视频| 国产拍揄自揄精品视频麻豆| 久久亚洲国产成人| 亚洲精品日韩综合观看成人91| 久久国产免费看| 黄色成人av网站| 国产精品久久久久久久久借妻| 国产亚洲一区精品| 久久精品亚洲一区二区| 亚洲国语精品自产拍在线观看| 中文日韩在线视频| 欧美色视频日本高清在线观看| 国产情侣一区| 狠狠综合久久av一区二区小说| 亚洲欧洲99久久| 亚洲破处大片| 久久www成人_看片免费不卡| 亚洲级视频在线观看免费1级| 亚洲欧美综合另类中字| 欧美成人黄色小视频| 欧美成黄导航| 久久久久这里只有精品| 美女免费视频一区| 国产精品无码专区在线观看| 久久精品国产第一区二区三区| 国产精品福利在线| 欧美在线免费看| 亚洲开发第一视频在线播放| 欧美日韩中文字幕在线| 国产亚洲精品一区二区| 国产欧美日韩亚洲精品| 久久aⅴ国产欧美74aaa| 99一区二区| 一区免费在线| 一区二区三区欧美在线| 欧美在线视频网站| 久久精品夜色噜噜亚洲aⅴ| 欧美午夜电影在线| 国产农村妇女毛片精品久久麻豆| 久久综合网色—综合色88| 久久婷婷激情| 欧美激情国产日韩精品一区18| 国产精品久久久久久久久婷婷| 欧美三日本三级三级在线播放| 亚欧成人在线| 久久香蕉精品| 午夜精品www| 久久综合亚洲社区| 麻豆久久精品| 欧美大尺度在线观看| 久久久久久电影| 狠狠爱综合网| 久久久91精品国产一区二区精品| 一区二区激情| 久久久一区二区三区| 欧美亚洲不卡| 日韩视频免费观看高清在线视频| 国产日韩av一区二区| 欧美日韩一区二区在线观看| 欧美一区二区三区免费视频| 在线日本高清免费不卡| 国产午夜精品久久| 亚洲国产一区二区三区a毛片| 激情成人av在线| 亚洲裸体在线观看| 国产女主播在线一区二区| 国产精品久久久久久久久| 国产精品入口日韩视频大尺度| 欧美日韩三级视频| 欧美三日本三级少妇三2023| 一区二区三区欧美在线观看| 久热国产精品|