《電子技術應用》
您所在的位置:首頁 > 微波|射頻 > 設計應用 > NAND Flash嵌入式存儲系統結構分析
NAND Flash嵌入式存儲系統結構分析
摘要: 目前市場上閃存芯片主要有兩類,即NAND Flash(Not And Flash ROM)和NOR Flash(Not Or Flash ROM)。前者具有容量大、讀寫速度快、芯片面積小、單元密度高、擦除速度快、成本低等特點,更適合于大批量數據存儲的嵌入式系統。如今Windows仍是桌面系統的主流,對FAT文件系統提供了天然的支持。然而就技術而言,FAT文件系統并不適合Flash,因為Flash設備并不是塊設備[1],為了不破壞兼容性,并在NAND型閃存中應用FAT文件系統,國際上提出了閃存轉譯層FTL(Flash Translation Layer)的解決方案。
Abstract:
Key words :

  目前市場上閃存芯片主要有兩類,即NAND Flash(Not And Flash ROM)和NOR Flash(Not Or Flash ROM)。前者具有容量大、讀寫速度快、芯片面積小、單元密度高、擦除速度快、成本低等特點,更適合于大批量數據存儲的嵌入式" title="嵌入式">嵌入式系統。如今Windows仍是桌面系統的主流,對FAT文件系統" title="文件系統">文件系統提供了天然的支持。然而就技術而言,FAT文件系統并不適合Flash,因為Flash設備并不是塊設備[1],為了不破壞兼容性,并在NAND型閃存中應用FAT文件系統,國際上提出了閃存轉譯層FTL(Flash Translation Layer)的解決方案。

  1 NAND Flash嵌入式存儲系統結構

  基于NAND Flash的存儲系統的設計首先要解決壞塊問題。由于NAND Flash自身存在固有壞塊并在擦除和編程中又隨機產生壞塊,因此為了提高設備的可靠性應該將這兩種操作分散在閃存不同的塊中,以避免對某塊的過度操作。

  一般的基于NAND Flash嵌入式存儲系統驅動結構分為三個層次:最底層是硬件操作接口,負責將主控芯片與Flash的控制管腳相連,這方面的固件" title="固件">固件主要實現對NAND Flash的物理操作;中間層是閃存轉譯層NFTL(NAND FTL),是封裝在Flash驅動中的軟件模塊,其作用是將Flash模擬成與磁盤相類似的塊設備,使對上層操作系統而言,NAND Flash就像普通磁盤一樣被訪問。這一層主要是封裝一些特殊的復雜管理控制功能;最上面的層就是文件管理層,功能類似于普通磁盤上的通用文件系統,向上層提供標準的文件操作接口?;贜AND Flash的嵌入式系統存儲結構原理圖如圖1所示。

  

  根據以上兩個方面,既要在驅動中實現壞塊管理,又要進行塊模擬,所以可用的方法有兩種[2]:一是在上層文件系統中解決壞塊問題,驅動層只實現本身的功能,文件系統為驅動層提供不變的接口,為上層應用程序提供可靠透明的服務。這種方法較簡單,開發周期比較短,但只對特定應用的嵌入式系統有很強的適應性;第二種方法是在驅動層的NFTL中解決壞塊問題,將不可靠的NAND Flash虛擬成可靠的存儲設備,為上層文件系統提供可靠透明服務,這種方法較第一種更復雜,但是此法具有較強的可移植性并能徹底斷絕與文件系統的聯系,其他文件系統也同樣適用。

  本文是以Samsung的NAND Flash K9F2808U0C作為存儲芯片,設計了一種在NFTL上實現壞塊管理并且實現連續數據讀取的方法。

  2 設計思想

  2.1 閃存空間劃分

  K9F2808U0C是16 MB×8 bit的NAND Flash,共有1 024個Block,1 Block=16 KB,32 Page/Block,1 Page=528 B=(512 B+16 B),其中16 B為備用區,主要存放NAND Flash出廠壞塊標記、ECC校驗碼以及用戶自定義區。K9F2808U0C地址空間是24 bit,分三個周期依次送入NAND Flash的地址鎖存器。本文使用的地址均為字節地址,數據類型為DWORD(4 B)。

  將K9F2808U0C的存儲空間劃分為四個區:壞塊映射表存放區、交換塊區、壞塊映射區和實際數據存放區。文件系統管理的空間就是實際的數據存放空間,如圖2所示。

  

  2.2 各分區宏定義

  #define FLASH_BLOCK_SIZE 0x40000 //16 KB/Block

  #define FLASH_PAGE_SIZE 0x200 //512 B/Page

  #define FLASH_SECTOR_SIZE 0x200

  //1Page=1Sector(only K9F2808U0C)

  #define FLASH_BLOCKS_TABLE 3//壞塊映射表存放塊數

  #define FLASH_SWAP_BLOCKS 5 //交換區的塊數

  #define FLASH_BAD_BLOCKS_REMAP 50

  //壞簇重映區的塊數

  #define FLASH_MAX_ADDR 0xFFFFFF

  //Flash最大字節地址

  各分區首地址計算公式:

  FLASH_BLOCK_TABLE_ADDR=FLASH_MAX_ADDR+

  1-3*FLASH_BLOCK_SIZE);

  FLASH_SWAP_BLOCK_ADDR=(FLASH_BLOCK_

  TABLE_ADDR-5*FLASH_BLOCK_SIZE);

  FLASH_BAD_BLOCK_REMAP_ADDR=(FLASH_SWAP_

  BLOCK_ADDR-50*FLASH_BLOCK_SIZE);

  FLASH_MAX_SECTOR_ADDR=(FLASH_MAX_ADDR-

  3*FLASH_BLOCK_TABLE_ADDR-5*FLASH_SWAP_

  BLOCK_ADDR-50*FLASH_BAD_BLOCK_REMAP_ADDR);

  文件系統管理的最大字節地址。

  任意地址Addr:

  所在塊地址:Addr&(~(FLASH_BLOCK_SIZE-1));

  塊內偏移地址:Addr&(FLASH_BLOCK_SIZE-1);

  塊中的頁:(Addr&(FLASH_BLOCK_SIZE-1))/FLASH_

  PAGE_SIZE;

  2.3 分區功能設計

  壞塊映射區存放復制3份的壞塊信息BBI(Bad Block Information)表。復制3份是預防系統突然斷電,造成BBI表數據丟失。選擇最后3個塊,主要是出于固件設計。當Flash首次上電,固件程序通過讀取Flash ID,獲得設備的容量等信息,然后從Flash的最后一塊中尋找BBI表,如果最后一塊沒有發現BBI表,則認為此塊為壞塊,繼續前移尋找,依此類推,直到在預留的3個塊中找到,并將其數據讀入到在主控芯片為其開設的RAM中。如果還找不到,則固件認為該片Flash沒有BBI表。

  交換塊區是對NAND Flash進行擦除或寫操作時用來臨時存放數據,共分配5個塊。選取5塊是出于可靠性設計。用一個數組FlashSwapBlockStatus[FLASH_SWAP_BLOCKS]記錄交換塊狀態:有效還是已經損壞。初始化時,固件認為所有的交換塊都是有效塊,在隨后對其進行擦除或寫操作時,通過讀Flash狀態寄存器判斷該交換塊的真實狀態,并記錄在數組中。交換塊的管理圍繞固件請求返回當前可用交換塊地址或當前正在使用的交換塊地址,并判斷標記當前使用的交換塊狀態為壞。

  壞塊映射區是當主機向數據區寫數據時,檢測到當前塊(數據區)為壞塊時,將數據寫到壞塊映射區中的相應好塊中,并且將這兩個塊的塊地址記錄到BBI表中,以后主機若要對當前塊(數據區)訪問時,只需讀BBI表就可以找到相應映射塊,從而代替壞塊的訪問。這樣就使文件系統所見邏輯塊地址LBA(Logical Block Address)變成連續的,但實際上物理塊地址PBA(Physical Block Address)可能并不連續。上述方法就是壞塊管理的精髓。出于保守設計本文共選50塊作為重映塊。用數組FlashRemapBlockStatus[FLASH_BAD_BLOCKS_REMAP]標識壞塊映射區的狀態:未使用、已使用還是已經損壞。初始化時認為壞塊映射區中所有塊都是好塊。

 

  目前市場上閃存芯片主要有兩類,即NAND Flash(Not And Flash ROM)和NOR Flash(Not Or Flash ROM)。前者具有容量大、讀寫速度快、芯片面積小、單元密度高、擦除速度快、成本低等特點,更適合于大批量數據存儲的嵌入式系統。如今Windows仍是桌面系統的主流,對FAT文件系統提供了天然的支持。然而就技術而言,FAT文件系統并不適合Flash,因為Flash設備并不是塊設備[1],為了不破壞兼容性,并在NAND型閃存中應用FAT文件系統,國際上提出了閃存轉譯層FTL(Flash Translation Layer)的解決方案。

  1 NAND Flash嵌入式存儲系統結構

  基于NAND Flash的存儲系統的設計首先要解決壞塊問題。由于NAND Flash自身存在固有壞塊并在擦除和編程中又隨機產生壞塊,因此為了提高設備的可靠性應該將這兩種操作分散在閃存不同的塊中,以避免對某塊的過度操作。

  一般的基于NAND Flash嵌入式存儲系統驅動結構分為三個層次:最底層是硬件操作接口,負責將主控芯片與Flash的控制管腳相連,這方面的固件主要實現對NAND Flash的物理操作;中間層是閃存轉譯層NFTL(NAND FTL),是封裝在Flash驅動中的軟件模塊,其作用是將Flash模擬成與磁盤相類似的塊設備,使對上層操作系統而言,NAND Flash就像普通磁盤一樣被訪問。這一層主要是封裝一些特殊的復雜管理控制功能;最上面的層就是文件管理層,功能類似于普通磁盤上的通用文件系統,向上層提供標準的文件操作接口?;贜AND Flash的嵌入式系統存儲結構原理圖如圖1所示。

  

  根據以上兩個方面,既要在驅動中實現壞塊管理,又要進行塊模擬,所以可用的方法有兩種[2]:一是在上層文件系統中解決壞塊問題,驅動層只實現本身的功能,文件系統為驅動層提供不變的接口,為上層應用程序提供可靠透明的服務。這種方法較簡單,開發周期比較短,但只對特定應用的嵌入式系統有很強的適應性;第二種方法是在驅動層的NFTL中解決壞塊問題,將不可靠的NAND Flash虛擬成可靠的存儲設備,為上層文件系統提供可靠透明服務,這種方法較第一種更復雜,但是此法具有較強的可移植性并能徹底斷絕與文件系統的聯系,其他文件系統也同樣適用。

  本文是以Samsung的NAND Flash K9F2808U0C作為存儲芯片,設計了一種在NFTL上實現壞塊管理并且實現連續數據讀取的方法。

  2 設計思想

  2.1 閃存空間劃分

  K9F2808U0C是16 MB×8 bit的NAND Flash,共有1 024個Block,1 Block=16 KB,32 Page/Block,1 Page=528 B=(512 B+16 B),其中16 B為備用區,主要存放NAND Flash出廠壞塊標記、ECC校驗碼以及用戶自定義區。K9F2808U0C地址空間是24 bit,分三個周期依次送入NAND Flash的地址鎖存器。本文使用的地址均為字節地址,數據類型為DWORD(4 B)。

  將K9F2808U0C的存儲空間劃分為四個區:壞塊映射表存放區、交換塊區、壞塊映射區和實際數據存放區。文件系統管理的空間就是實際的數據存放空間,如圖2所示。

  

  2.2 各分區宏定義

  #define FLASH_BLOCK_SIZE 0x40000 //16 KB/Block

  #define FLASH_PAGE_SIZE 0x200 //512 B/Page

  #define FLASH_SECTOR_SIZE 0x200

  //1Page=1Sector(only K9F2808U0C)

  #define FLASH_BLOCKS_TABLE 3//壞塊映射表存放塊數

  #define FLASH_SWAP_BLOCKS 5 //交換區的塊數

  #define FLASH_BAD_BLOCKS_REMAP 50

  //壞簇重映區的塊數

  #define FLASH_MAX_ADDR 0xFFFFFF

  //Flash最大字節地址

  各分區首地址計算公式:

  FLASH_BLOCK_TABLE_ADDR=FLASH_MAX_ADDR+

  1-3*FLASH_BLOCK_SIZE);

  FLASH_SWAP_BLOCK_ADDR=(FLASH_BLOCK_

  TABLE_ADDR-5*FLASH_BLOCK_SIZE);

  FLASH_BAD_BLOCK_REMAP_ADDR=(FLASH_SWAP_

  BLOCK_ADDR-50*FLASH_BLOCK_SIZE);

  FLASH_MAX_SECTOR_ADDR=(FLASH_MAX_ADDR-

  3*FLASH_BLOCK_TABLE_ADDR-5*FLASH_SWAP_

  BLOCK_ADDR-50*FLASH_BAD_BLOCK_REMAP_ADDR);

  文件系統管理的最大字節地址。

  任意地址Addr:

  所在塊地址:Addr&(~(FLASH_BLOCK_SIZE-1));

  塊內偏移地址:Addr&(FLASH_BLOCK_SIZE-1);

  塊中的頁:(Addr&(FLASH_BLOCK_SIZE-1))/FLASH_

  PAGE_SIZE;

  2.3 分區功能設計

  壞塊映射區存放復制3份的壞塊信息BBI(Bad Block Information)表。復制3份是預防系統突然斷電,造成BBI表數據丟失。選擇最后3個塊,主要是出于固件設計。當Flash首次上電,固件程序通過讀取Flash ID,獲得設備的容量等信息,然后從Flash的最后一塊中尋找BBI表,如果最后一塊沒有發現BBI表,則認為此塊為壞塊,繼續前移尋找,依此類推,直到在預留的3個塊中找到,并將其數據讀入到在主控芯片為其開設的RAM中。如果還找不到,則固件認為該片Flash沒有BBI表。

  交換塊區是對NAND Flash進行擦除或寫操作時用來臨時存放數據,共分配5個塊。選取5塊是出于可靠性設計。用一個數組FlashSwapBlockStatus[FLASH_SWAP_BLOCKS]記錄交換塊狀態:有效還是已經損壞。初始化時,固件認為所有的交換塊都是有效塊,在隨后對其進行擦除或寫操作時,通過讀Flash狀態寄存器判斷該交換塊的真實狀態,并記錄在數組中。交換塊的管理圍繞固件請求返回當前可用交換塊地址或當前正在使用的交換塊地址,并判斷標記當前使用的交換塊狀態為壞。

  壞塊映射區是當主機向數據區寫數據時,檢測到當前塊(數據區)為壞塊時,將數據寫到壞塊映射區中的相應好塊中,并且將這兩個塊的塊地址記錄到BBI表中,以后主機若要對當前塊(數據區)訪問時,只需讀BBI表就可以找到相應映射塊,從而代替壞塊的訪問。這樣就使文件系統所見邏輯塊地址LBA(Logical Block Address)變成連續的,但實際上物理塊地址PBA(Physical Block Address)可能并不連續。上述方法就是壞塊管理的精髓。出于保守設計本文共選50塊作為重映塊。用數組FlashRemapBlockStatus[FLASH_BAD_BLOCKS_REMAP]標識壞塊映射區的狀態:未使用、已使用還是已經損壞。初始化時認為壞塊映射區中所有塊都是好塊。

此內容為AET網站原創,未經授權禁止轉載。
热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久久久二8| 亚洲精品中文字| 欧美伊人久久久久久午夜久久久久| 一区在线视频| 亚洲一区二区成人| 激情成人综合网| 欧美色图一区二区三区| 欧美顶级艳妇交换群宴| 激情视频亚洲| 久久久久久综合网天天| 国内外成人免费激情在线视频网站| 亚洲第一级黄色片| 最新中文字幕亚洲| 免费日本视频一区| 久久久久久亚洲精品不卡4k岛国| 国产精品二区在线观看| 久久精彩免费视频| 精品91视频| 亚洲天堂成人| 久久亚洲不卡| 蜜桃av一区二区在线观看| 在线观看欧美精品| 亚洲午夜在线| 欧美刺激午夜性久久久久久久| 国产精品久久久一区二区三区| 亚洲视频一二| 欧美大片一区二区三区| 99国内精品久久久久久久软件| 久久久免费观看视频| 欧美一二三视频| 日韩一区二区免费高清| 亚洲免费中文字幕| 国产精品久久久久久久电影| 9色porny自拍视频一区二区| 欧美成人免费一级人片100| 久久精品99无色码中文字幕| 亚洲欧洲在线免费| 欧美成人午夜剧场免费观看| 在线综合视频| 在线日韩一区二区| 亚洲一区二区三区涩| 国产精品久久国产精品99gif| 欧美福利一区二区三区| 久久影音先锋| a4yy欧美一区二区三区| 国内精品久久久| 国产精品a久久久久| 午夜一区二区三区不卡视频| 欧美日韩综合精品| 久久久999国产| 最新日韩av| 欧美激情在线狂野欧美精品| 欧美日韩妖精视频| 亚洲校园激情| 亚洲主播在线| 国产精品福利影院| 韩日欧美一区二区| 国产日产精品一区二区三区四区的观看方式| 国产精品久久久久久久久久久久| 一区二区三区在线免费观看| 久久久久综合| 亚洲一区国产视频| 羞羞答答国产精品www一本| 影音先锋国产精品| 欧美日韩免费观看一区=区三区| 久久香蕉国产线看观看网| 久久免费一区| 亚洲一区3d动漫同人无遮挡| 欧美日韩四区| 亚洲欧美日韩精品久久亚洲区| 久久精品中文| 欧美日韩另类在线| 国产精品国产三级国产专播品爱网| 久久九九热re6这里有精品| 国产精品成人av性教育| 国产日韩视频一区二区三区| 亚洲日本电影| 国产精品成人一区二区三区吃奶| 一区二区三区 在线观看视| 欧美高清视频在线| 亚洲精品四区| 欧美激情一区二区三级高清视频| 亚洲免费福利视频| 久久午夜羞羞影院免费观看| 亚洲国产裸拍裸体视频在线观看乱了中文| 欧美激情五月| 国产精品丝袜91| 午夜激情综合网| 亚洲视频 欧洲视频| 日韩视频在线一区二区三区| 国内精品亚洲| 男人的天堂亚洲| 欧美在线视频a| 欧美激情 亚洲a∨综合| 欧美午夜片在线观看| 国产欧美精品日韩区二区麻豆天美| 国产欧美一区二区色老头| 国产啪精品视频| 午夜在线电影亚洲一区| 欧美日本在线视频| 国产欧美日韩在线播放| 国产精品久久97| 国产精品美女久久久浪潮软件| 亚洲电影自拍| 亚洲一区二区三区精品视频| 亚洲少妇一区| 国产精品亚洲美女av网站| 欧美日本亚洲视频| 国产乱理伦片在线观看夜一区| 中文无字幕一区二区三区| 欧美成人按摩| 欧美激情视频网站| 久久国产精品毛片| 国产欧美一区二区视频| 久久麻豆一区二区| 欧美主播一区二区三区美女 久久精品人| 国产日产欧美a一级在线| 亚洲人成在线播放| 麻豆av一区二区三区久久| 欧美一区二区三区男人的天堂| 一区二区久久久久| 欧美高清不卡在线| 欧美午夜精品久久久| 一本色道久久综合亚洲91| 欧美日本乱大交xxxxx| 亚洲精品三级| 久久精品国产v日韩v亚洲| 欧美一二三区在线观看| 久久在线精品| 亚洲一区亚洲二区| 日韩亚洲成人av在线| 亚洲高清视频在线观看| 国产精品视频最多的网站| 国产情侣一区| 欧美视频专区一二在线观看| 性色av一区二区三区红粉影视| 国产精品激情av在线播放| 欧美成人精品一区| 韩国欧美一区| 国产主播一区二区三区四区| 99riav1国产精品视频| 久久久综合精品| 噜噜爱69成人精品| 国产日韩亚洲| 久久精品国产99精品国产亚洲性色| 影音先锋久久久| 最近看过的日韩成人| 中文一区二区在线观看| 亚洲国产免费看| 欧美区一区二| 欧美日韩一区在线视频| 在线精品在线| 国产亚洲一区二区在线观看| 欧美国产精品人人做人人爱| 日韩视频免费在线观看| 亚洲人成人一区二区在线观看| 在线日韩成人| 亚洲人成小说网站色在线| 欧美一区二区三区在线观看| 日韩亚洲一区在线播放| 久久久久一本一区二区青青蜜月| 亚洲精品美女在线观看播放| 国产精品男gay被猛男狂揉视频| 欧美视频一区二区三区…| 国产精品福利久久久| 中文日韩在线视频| 午夜精品国产精品大乳美女| 中文国产亚洲喷潮| 欧美午夜电影一区| 亚洲一区视频在线观看视频| 午夜亚洲一区| 一本久久a久久免费精品不卡| 欧美日韩一区二区精品| 国产精品亚洲第一区在线暖暖韩国| 欧美暴力喷水在线| 久久福利毛片| 亚洲第一精品在线| 国内精品久久久久影院优| 亚洲精选一区二区| 国产一区亚洲| 午夜视频一区二区| 国产精品对白刺激久久久| 国产一区二区三区在线观看精品| 国产偷国产偷亚洲高清97cao| 亚洲欧美视频在线| 亚洲女同同性videoxma| 亚洲欧美偷拍卡通变态| 欧美日本三区| 欧美破处大片在线视频| 一区二区日韩欧美| 欧美xart系列高清| 日韩一区二区精品在线观看| 国产一区欧美日韩| 国产美女精品在线| 亚洲天天影视| 一本大道久久精品懂色aⅴ| 欧美在线视频导航| 亚洲一区图片| 亚洲精品视频在线看| 亚洲影院免费观看| 欧美中文字幕在线视频| 欧美区日韩区| 国产婷婷色一区二区三区四区| 欧美高清不卡在线| 亚洲国产一区二区视频| 一区二区三区 在线观看视频| 国产精品狼人久久影院观看方式| 黄色精品一区二区| 亚洲一区二区视频在线| 国产精品白丝av嫩草影院| 国产精品二区二区三区| 欧美激情国产精品| 久久婷婷人人澡人人喊人人爽| 在线观看不卡av| 夜夜爽av福利精品导航| 国产精品久久久久久久电影| 欧美三日本三级少妇三2023| 亚洲精品久久久久久一区二区| 在线观看国产成人av片| 欧美大片在线影院| 欧美视频一二三区| 欧美一区二区三区免费看| 国产亚洲欧美日韩精品| 欧美va天堂va视频va在线| 欧美日韩免费网站| 欧美一区二区三区四区视频| 久久先锋影音av| 亚洲大片精品永久免费| 欧美精品一区二区三区在线播放| 欧美一区二区高清| 在线观看久久av| 99国产欧美久久久精品| 亚洲视频一区二区在线观看| 欧美日韩精品一区二区天天拍小说| 国产日韩精品在线播放| 亚洲无人区一区| 久久久天天操| 欧美日本视频在线| 狠狠色香婷婷久久亚洲精品| 黄色亚洲免费| 国产嫩草一区二区三区在线观看| 亚洲色图综合久久| 一区二区三区导航| 国产精品久久久久国产精品日日| 欧美另类变人与禽xxxxx| 欧美成人免费一级人片100| 国产欧美日韩中文字幕在线| 国产精品私房写真福利视频| 欧美精品在线网站| 中文亚洲视频在线| 欧美激情无毛| 麻豆国产精品va在线观看不卡| 欧美在线视频全部完| 久久婷婷亚洲| 韩国女主播一区二区三区| 欧美国产日韩一区二区三区| 亚洲欧美日韩精品一区二区| 麻豆成人综合网| 国产丝袜一区二区| 欧美久久久久久蜜桃| 国产综合色产在线精品| 欧美在线播放视频| 亚洲人成在线观看一区二区| 亚洲欧美中文另类| 91久久精品www人人做人人爽| 亚洲无线观看| 亚洲自拍啪啪| 一区二区三区国产在线| 久久久精品欧美丰满| 久久香蕉精品| 国产乱肥老妇国产一区二| 国产精品久久久久久久免费软件| 久久国产主播精品| 蘑菇福利视频一区播放| 亚洲最新在线视频| 国产日韩欧美精品在线| 国产精品夜夜夜| 日韩亚洲在线| 欧美精品18videos性欧美| 亚洲综合999| 久久久精品欧美丰满| 亚洲毛片av在线| 久久精品国产免费| 欧美日韩一区精品| 亚洲电影免费观看高清完整版| 黄色成人片子| 国产一级久久| 欧美激情影院| 亚洲女女做受ⅹxx高潮| 久久久国产亚洲精品| 国内精品久久久久影院 日本资源| 欧美特黄一级大片| 国产乱码精品一区二区三区av| 伊人色综合久久天天五月婷| 亚洲午夜激情免费视频| 欧美一区二区三区的| 国产欧美二区| 久久精品国产清高在天天线| 久久国产一区| 国内伊人久久久久久网站视频| 久久精品2019中文字幕| 黄色成人片子| 欧美美女福利视频| 久久精品综合一区| 樱桃视频在线观看一区| 卡通动漫国产精品| 欧美一区在线看| 亚洲免费视频成人| 在线免费观看成人网| 先锋影音国产一区| 一区二区三区视频在线| 久久九九免费视频| 欧美国产一区二区| 久久一综合视频| 中文网丁香综合网| 欧美视频亚洲视频| 亚洲欧美日韩在线观看a三区| 免费观看在线综合| 久久免费精品日本久久中文字幕| 一本大道久久a久久精二百| 在线观看久久av| 久久午夜色播影院免费高清| 久久久久国产一区二区三区四区| 欧美精品三区|