《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 其他 > 嵌入式教學——深入理解Aarch64的內存管理

嵌入式教學——深入理解Aarch64的內存管理

2022-08-11
作者: 仲一
來源: 電子技術應用專欄作家 嵌入式與Linux那些事
關鍵詞: Linux 嵌入式

  本文是對learn_the_architecture_-_aarch64_memory_management的部分翻譯和個人注解。個人英文水平有限,若有翻譯不當,歡迎加我私人微信LinuxDriverDev與我交流。

  總覽

  本文介紹了AAR64內存管理中最重要的內容--內存轉換,解釋了虛擬地址是如何翻譯為物理地址的,翻譯表的格式,以及如何管理TLBS。

  什么是內存管理

  內存管理描述了如何控制操作性系統對內存的訪問。每次操作系統或應用程序訪問內存時,硬件都會進行內存管理。內存管理是一種給應用程序動態分配內存區域的方法。

  處理器是用來運行復雜系統的,比如Linux 支持虛擬內存系統。軟件在操作系統上運行只能看到虛擬地址,而處理器負責把虛擬地址轉換為物理地址。這些物理地址最終都會被內存系統轉換為實際的物理位置。

  虛擬地址和物理地址

  使用虛擬地址的好處是它允許對軟件進行管理,比如操作系統可以控制內存以什么樣的方式呈現給應用程序。操作系統可以控制那些內存是可見的,控制該內存可見的虛擬地址以及允許對該內存那些區域進行訪問。這就可以實現操作系統對應用程序的沙箱管理(對另一個應用程序隱藏一個應用程序的資源),并且提供對底層的硬件抽象。

  使用虛擬地址的另一個好處是操作系統可以將多個零散的物理內存區域組織為單個連續的虛擬地址空間呈現給應用程序。

  虛擬地址也有利于軟件開發人員,軟件開發人員編寫應用程序時不需要關心物理內存。應用程序知道,物理內存轉換為虛擬內存由操作系統和硬件共同完成。

  實際上,每個應用程序都可以使用自己的一組虛擬地址。這些虛擬地址將映射到物理系統中的不同位置。當操作系統在不同的應用程序之間切換的時候,它會重新組織物理地址和虛擬地址的映射關系。這就意味著不同的應用程序都會映射到正確的物理位置。

  虛擬地址通過映射關系轉換為物理地址。虛擬地址和物理地址之間的映射關系存儲在轉換表(有時稱為頁表)中,如下圖所示:

  微信圖片_20220811152212.png

  翻譯表在內存中由操作系統或者hypervisor管理,轉換表不是靜態的,它可以隨著軟件變化的需要而更新表。因為不同軟件的物理地址是不同的,所以這就會改變虛擬地址和物理地址之間的映射關系。

  內存管理單元

  內存管理單元(MMU)負責把軟件使用的虛擬地址轉換為內存系統使用的物理地址。MMU組成如下:

  Table wake unit,從內存中讀出翻譯表的邏輯。

  TLBs,近期使用的翻譯表的緩存。

  軟件使用的所有地址都是虛擬地址,這些地址會傳遞給MMU,MMU在TLB中檢查這些地址是否存在。如果在TLB中沒有找到,Table wake unit會從內存中讀取適當的table entry(一個或多個),如下所示:

  微信圖片_20220811152230.png

  在進行內存訪問時,虛擬地址必須被轉換為物理地址。這種轉換需求也適用于緩存數據,因為在 Armv6 和更高版本的處理器上,數據緩存(DCACHE)使用物理地址(物理標記的地址)存儲數據。因此,必須先翻譯地址,然后才能完成高速緩存查找。

  Table entry

  翻譯表的工作原理是把虛擬地址空間劃分為同等大小的塊。并且每個塊在表中提供一個entry。

  表中的entry 0映射到塊0,entry1映射到塊1,依此類推。每個entry都包含對應物理內存塊的地址以及訪問物理地址時要使用的屬性。

  微信圖片_20220811152247.png

  Table lookup

  當虛擬地址轉換為物理地址時,就會去查表,虛擬地址會被分為兩部分:

  下圖展示了一級頁表查找過程。

  微信圖片_20220811152303.png

  圖中標有“which entry”的高位表明要查看那個塊的entry,在表中搜索時被用作索引。此entry是虛擬地址對應的物理地址。圖中標記為“offset in block”的是該塊內的偏移量,虛擬地址與物理地址的offset是一一對應的,不會因為發生轉換而改變。

  Multilevel translation

  在單級lookup中,虛擬地址空間被分成大小相等的塊。而在實際中,使用最多的是多級頁表。

  第一級頁表將虛擬地址劃分為大塊,表中的每個entry都可以指向一個相同大小的物理內存塊,或者指向下一級頁表,下一級頁表中將表將細分更小的塊。我們稱這種類型的表為“多級頁表”。

  下圖是一個三級頁表的例子:

  微信圖片_20220811152332.png

  在 Armv8-A 中,最大級別數為 4,級別編號為 0 到 3。這種多級方法允許使用更大的塊和更小的塊。大塊和小塊的特點如下:

  與小塊相比,大塊在在轉譯時需要的級別更少,在TLB中緩存效率更高。

  小塊為軟件提供了對內存分配的細粒度控制。然而,小塊在 TLB 中的緩存效率較低。緩存效率較低是因為小塊需要通過多級進行多次讀取才能轉譯。

  為了管理這種權衡,操作系統必須平衡使用大塊映射的效率與使用小塊映射的靈活性來獲得最佳性能。處理器在開始查表時不知道轉譯的大小,它通過執行 table walk 計算出正在轉換的塊的大小。

  地址空間

  AArch64 中有幾個獨立的虛擬地址空間。此圖顯示了這些虛擬地址空間:

  Non-secure EL0 and EL1

  Non-secure EL2

  EL3

  微信圖片_20220811152350.png

  這些虛擬地址空間中的每一個都是獨立的,并且有自己的setting和table。我們經常將這些setting和table稱為“translation regimes”。Secure EL0、Secure EL1 和 Secure EL2 也有虛擬地址空間,但圖中未顯示。

  因為有多個虛擬地址空間,所以指定一個地址在哪個地址空間很重要。例如NS.EL2:0x8000指的是Non-secure EL2虛擬地址空間中的地址0x8000。

  該圖還表明NS-EL0 和NS-EL1 的虛擬地址會使用兩組table。這些table支持虛擬化并允許hypervisor將虛擬機看到的物理地址虛擬化。

  Armv9-A 支持上述 Armv8-A 的所有虛擬地址空間。Armv9-A 引入了可選的RME。實現RME時,還存在其他轉譯機制:

  Realm EL1和EL0

  Realm EL2和EL0

  Realm EL2

  在虛擬化中,我們將操作系統控制的翻譯稱之為stage1,stage1將虛擬地址轉換為中間物理地址(IPA)。在stage1,操作系統認為 IPA 是物理地址空間。但是,hypervisor控制第二組轉換,我們稱之為stage2。stage2轉換將 IPA 轉換為物理地址。下圖顯示了兩組翻譯的工作原理:

  微信圖片_20220811152405.png

  雖然table格式有一些細微差別,但 Stage 1 和 Stage 2 翻譯的過程通常是相同的。

  在Arm,我們在許多例子中都使用了0x8000這個地址。0x8000也是 用Arm鏈接器armlink進行鏈接的默認地址。這個地址來自于 早期的微型計算機,BBC Micro Model B,它的ROM的地址為 地址為0x8000。BBC Micro Model B是由一家名為 Acorn的公司,該公司開發了Acorn RISC Machine(ARM),后來成為Arm。

  物理地址

  除了多個虛擬地址空間,AArch64 還有多個物理地址空間(PAS):

  Non-secure PAS0

  Secure PAS

  Realm PAS (Armv9-A only)

  Root PAS (Armv9-A only)

  虛擬地址可以映射到哪一個或哪幾個物理地址空間取決于 處理器的當前安全狀態。下面的列表顯示了安全狀態和其 對應的虛擬地址映射目的地。

  Non-secure state:虛擬地址只能映射到非安全的物理地址

  Secure state:虛擬地址可以映射到安全的/非安全的物理地址

  Realm state:虛擬地址可以映射到Realm 和非安全的物理地址

  Root state:虛擬地址可以映射到任何物理地址

  當處于具有多個物理地址空間可見性的安全狀態時,轉換表entry控制哪個物理地址空間被使用。下圖展示了多個物理地址空間的映射關系:

  微信圖片_20220811152426.png

  地址大小

  AArch64 是 64 位架構,但這并不意味著所有地址都是 64 位的。虛擬地址以 64 位格式存儲。因此,加載指令 (LDR) 和存儲指令 (STR) 中的地址始終在由X 寄存器指定。但是,并非 X 寄存器中的所有地址都有效。下圖顯示了 AArch64 中虛擬地址空間的布局:

  微信圖片_20220811152449.png

  如左圖所示,EL0/EL1的虛擬地址空間有兩個區域:內核空間和用戶空間。內核空間在頂部,用戶空間在底部。內核空間和用戶空間有各自單獨的轉換表。

  如右圖所示,其他所有異常級別的地址空間在底部有一塊單獨的區域。

  每個區域的地址空間的大小最多為52位。然而,每個區域都可以獨立地縮小。TCR_ELx寄存器中的TnSZ字段控制虛擬地址空間的大小。例如,該圖顯示TCR_EL1控制EL0/EL1 虛擬地址空間。

  微信圖片_20220811152505.png

  虛擬地址被設置為264-TCR_ELx.TnSZ。虛擬地址的大小也可以用地址位數來表示:64 - TnSZ。

  因此,如果TCR_EL1.SZ1設置為32,則 EL0/EL1 虛擬地址空間中內核區域的大小為 2的32次方個字節(0xFFFF_FFFF_0000_0000 到 0xFFFF_FFFF_FFFF_FFFF)。當訪問超出超出配置范圍的虛擬地址的空間時,會被當作翻譯錯誤。

  這種配置的好處是我們只需要描述盡可能多的我們想要使用的地址空間,這樣可以節省時間和空間。

  例如,假設操作系統內核需要 1GB 的地址空間(30 位地址大小)作為其內核空間。如果操作系統將 T1SZ 設置為 34,描述 1GB 的轉換表entry被創建,因為64 - 34 = 30。

  物理地址大小

  物理地址的大小是可以自定義的,最大可支持到52位。ID_AA64MMFR0_EL1 寄存器規定了處理器實現的大小。對于 Arm Cortex-A 處理器,這通常是 40 位或 44 位。

  對于Armv8.0-A,物理地址最大為48位。Armv8.2-A中最大為52位。

  中間物理地址(IPA)的大小

  如果你在翻譯表項(translation table entry)中指定的輸出地址大于實際的最大值,內存管理單元(MMU)將產生一個異常,即地址大小錯誤。IPA空間的大小可以用與虛擬地址空間相同的方式進行配置。

  VTCR_EL2.T0SZ寄存器可以設置的最大值與處理器支持的物理地址大小相同。這意味著不能配置比支持的物理地址空間更大的 IPA 空間。

  地址空間標識-標記進程

  許多現代操作系統的應用程序似乎都是在同一個地址區運行的,這就是我們所說的用戶空間。事實上,不同的應用程序需要不同的映射。這意味著虛擬地址0X8000的轉換取決于當前運行的應用程序。

  理想情況下,我們希望不同應用程序的轉譯能在轉譯緩沖區(TLB)內共存。以防止在上下文切換時影響性能。但是處理器如何知道要使用哪個版本的 VA 0x8000 轉換呢?在 Armv8-A 中,答案是地址空間標識符 (ASID)。

  對于EL0/EL1虛擬地址空間,可以使用轉譯表entry屬性字段中的nG位將轉譯標記為全局(G)或非全局(nG)。例如,內核映射是全局轉譯,而應用程序映射是非全局轉譯。全局轉譯適用于當前正在運行的任何應用程序。非全局轉譯只適用于一個特定的應用程序。

  非全局映射在 TLB 中使用 ASID 進行標記。在TLB中搜索時,TLB entry 中的ASID 與當前選擇的 ASID 進行比較。如果它們不匹配,則不使用 TLB 條目。下圖顯示了內核空間中沒有 ASID 標記的全局映射和用戶空間中具有 ASID 標記的非全局映射:

  微信圖片_20220811152536.png

  圖中顯示,多個應用程序的TLB條目被允許在緩存中共存。而ASID決定使用哪個條目。

  ASID被存儲在兩個TTBRn_EL1寄存器中的一個。通常,TTBR0_EL1用于用戶空間。因此,單個寄存器更新可以同時更改 ASID 和它指向的轉換表。

  虛擬機標識-使用擁有的虛擬機來標記翻譯

  EL0/EL1轉換也可以用虛擬機標識符(VMID)進行標記。VMID 允許來自不同 VM 的轉譯在緩存中共存。這類似于 ASID 為來自不同應用程序的在翻譯工作的方式。實際上,這意味著某些轉換將同時使用 VMID 和 ASID 進行標記,并且兩者都必須匹配才能使用 TLB entry。

  當安全狀態支持虛擬化時,EL0/EL1轉換總是被標記為VMID--即使Stage 2轉換沒有被啟用。這意味著,如果你正在編寫初始化代碼,并且沒有使用hypervisor,那么在設置Stage 1 MMU之前設置一個已知的VMID值是很重要的。

  Common not Private

  如果一個系統包括多個處理器,在一個處理器上使用的ASIDs和VMIDs在其他處理器上是否有相同的意義?

  對于 Armv8.0-A,答案是它們的含義不一定相同。軟件不需要在多個處理器上以相同的方式使用給定的 ASID。例如,ASID 5 可能由一個處理器上的計算器和另一個處理器上的 Web 瀏覽器使用。這意味著由一個處理器創建的 TLB entry不能被另一個處理器使用。

  實際上,軟件不太可能在處理器之間以不同的方式使用 ASID。軟件在給定系統中的所有處理器上以相同方式使用 ASID 和 VMID 更為常見。因此,Armv8.2-A 在轉換表基址寄存器 (TTBR) 中引入了 Common not Private (CnP) 位。當設置 CnP 位時,軟件承諾在所有處理器上以相同的方式使用 ASID 和 VMID,這允許由一個處理器創建的 TLB 條目被另一個處理器使用。

  轉換表格式

  在這里,我們可以看到翻譯表entry允許的不同格式。

  微信圖片_20220811152609.png

  每個entry是 64 位,低兩位確定entry的類型。

  請注意,某些table entry僅在特定級別有效。table的最大級別數是四級,這就是為什么沒有level3(或第四級)表的表描述符的原因。同樣地,第0級也沒有塊描述符或頁描述符。因為第0級 entry覆蓋了很大的虛擬地址空間區域,因此在level0允許塊是沒有意義的。

  轉換粒度

  轉換粒度是可以描述的最小的內存塊。AArch64 支持三種不同的粒度大小:4KB、16KB 和 64KB。

  處理器支持的粒度是自定義的并由 ID_AA64MMFR0_EL1 保存。所有Arm Cortex-A處理器都支持4KB和64KB。選擇的粒度是最高level table中描述的大小。

  一個處理器所支持的粒度大小是ID_AA64MMFR0_EL1定義的,所有Arm Cortex-A處理器都支持4KB和64KB。選擇的顆粒是可以在最新級別表中描述的最小塊。也可以描述更大的塊。此表顯示了基于所選粒度的每個級別表的不同塊的尺寸:

  微信圖片_20220811152629.png

  在 Armv9.2-A 和 Armv8.7-A 推出之前,使用 52 位地址是有限制的。當所選顆粒為4KB或16KB時,最大虛擬地址大小為48位。同樣,輸出物理地址限制為 48 位。只有在使用 64KB 顆粒時,才能使用完整的 52 位。

  地址轉換的初始level

  虛擬地址空間的粒度和大小共同控制地址轉換的起始級別。

  上表總結了每個級別表中每個粒度的塊大小(單個entry覆蓋的虛擬地址范圍的大小)。從塊的大小,你可以算出虛擬地址的哪些位是用來索引每一級表的。

  讓我們以4KB的粒度為例。這張圖顯示了用于索引4KB粒度的 不同級別表的索引。

  微信圖片_20220811152648.png

  如圖所示,將TCR_ELx.T0SZ設置為32,以地址為單位的虛擬地址空間的大小計算方式如下:64 - T0SZ = 32-bit

  從之前的4KB配置的粒度圖中可以看出,level0是47:39位索引的。這些在32位地址空間是不存在的。因此,地址翻譯是從level1開始的。

  接著,假設設置T0SZ為34:64 - T0SZ = 30

  這一次,不存在level0 和level1的索引。因此,該配置的轉譯起始級別是level2。

  當虛擬地址空間的大小減少時,您需要更少級別的表來描述它。這些示例基于使用 4KB 粒度。當使用 16KB 和 64KB 顆粒時,同樣的原理也適用,但地址位會發生變化。

  控制地址轉換的寄存器

  地址轉換由系統寄存器組合來控制:

  SCTLR_ELx

  M:使能MMU

  C:使能Dcache

  TTBR0_ELx and TTBR1_ELx

  BADDR:轉譯表物理地址/中間物理地址的起點

  ASID:非全局轉譯的標識符

  TCR_ELx

  PS/IPS:物理地址/中間物理地址的大小。

  TnSZ:轉譯表能表示的地址空間的大小

  TGn:粒度大小

  SH/IRGN/ORGN:緩存能力共享能力的使能

  TBIn:禁止搜索table中的某一行

  MAIR_ELx

  Attr:statge1 的類型和緩存能力控制

  關閉MMU

  當MMU被禁用時,所有的地址都是平行映射的。即物理地址和虛擬地址是一一對應的。

  維護TLB

  Translation Lookaside Buffers (TLB) 緩存最近使用的轉譯項。此緩存允許后續查找重復使用轉譯,而無需重新讀取table。

  如果要更改轉換表entry或控制entry的解釋方式,則需要使 TLB 中受影響的entry無效。如果不使這些entry無效,則處理器可能會繼續使用舊的轉譯。

  處理器不允許導致以下任何故障的翻譯緩存到 TLB:

  翻譯錯誤(未映射的地址)

  地址大小錯誤(超出地址范圍)

  非法訪問

  因此,在第一次映射地址時,你不需要讓TLB 無效。然而,如果要做以下操作,需要讓TLB失效:

  Unmap an address:將有效的地址標記為無效

  改變映射關系:將地址權限從只讀改為讀寫。

  改變table 的轉譯方式:修改粒度大小時,table的轉譯方式也會改變。

  TLB操作的格式

  TLBI 指令用于使 TLB 中的entry無效。該指令的語法是

  TLBI < type >< level >{IS|OS} {, < xt >}

  < type >:指定無效的entries

  All - 所有entries

  VA - Entry matching VA and ASID in Xt

  VAA - Entry matching VA in Xt, for any ASID

  ASID - Any entry matching the ASID in Xt

  < level >: 操作哪一個地址空間

  E1 = EL0/1 virtual address space

  E2 = EL2 virtual address space

  E3 = EL3 virtual address space

  < IS|OS >內部共享還是外部共享

  < Xt >:操作那個地址或者ASID

  例如,一個正在更新其內核轉換表中entry的操作系統 (OS)。典型的 TLB 無效序列如下所示:

  微信圖片_20220811152726.png

  地址翻譯指令

  地址轉換指令(AT)可以查詢特定地址的轉換。地址翻譯的結果,屬性會寫入物理寄存器PAR_EL1。

  AT指令的語法具有優先級。例如,EL2指令可以查詢EL0/EL1的翻譯表,但是EL1指令不能查詢EL2的。

  總結

  下面對本文內容做個簡單總結,以下這些問題是我們要明白的。

  地址翻譯中,statge和level有什么區別?

  statge 指的是把輸入地址轉換為輸出地址的過程。對于stage1,就是從VA到IPA的過程。stage2 從IPA到PA的過程。

  level指的是翻譯給定階段的table,將一個大塊劃分為小塊的過程。

  物理地址最大是多少?

  物理地址大小由IMPLEMENTATION DEFINED定義,在ARMV8.2-A后為52位。

  虛擬地址大小由哪些寄存器控制?

  stage2的TCR_ELx.TnSZ, or VTCR_EL2.T0SZ

  翻譯粒度是什么?支持的大小是多少?

  翻譯粒度指的是內存可以描述的最小的塊。支持4KB, 16KB, and 64KB.

  TLBI ALLE3 作用是什么?

  EL3虛擬地址中使所有的TLB entries無效。

  發生翻譯錯誤時的翻譯表項能緩存在TLB中嗎?

  不能

  當MMU關閉時,地址是如何映射的?

  平行映射,即輸入地址和輸出地址相同。

  什么是ASID?什么時候TLB entry會包含ASID?

  ASID是地址空間標識符,它標識了翻譯與那個應用相關聯。非全局映射(nG=1)在在TLB中被標記為一個ASID。

  


  更多信息可以來這里獲取==>>電子技術應用-AET<<

微信圖片_20210517164139.jpg


微信圖片_20220708145705.jpg

電子技術應用專欄作家:嵌入式與Linux那些事

原文鏈接:https://mp.weixin.qq.com/s/4b8sNRyN7QgfM_Nihzm6mQ






本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 日本一本一道 | 国产伦久视频免费观看 视频 | 性网址| 亚洲成av人片在www色猫咪 | 欧美日韩激情网 | 国产精品无码一区二区在线 | 欧美视频你懂的 | 一本之道av | 久久国产热 | 九九九九九九九九九 | 在线看片人成视频免费无遮挡 | 自拍亚洲欧美 | 国产一区在线视频观看 | 国产清纯白嫩初黑人高生在线观看 | 国产成人三级在线视频 | 国产精品视频一区二区免费不卡 | 美女扣逼喷水视频 | 最近中文字幕mv在线资源 | 99热在线播放 | 麻豆国产尤物av尤物在线观看 | 国产黄视频网站 | 男人天堂新地址 | 日本丰满妇人成熟免费中文字幕 | 噼里啪啦在线播放 | 欧美在线观看一区二区三区 | 亚洲人成人7777在线播放 | 欧美乱插 | 波多野结衣大战黑人8k经典 | 射网站 | 欧美一二三四成人免费视频 | 韩国成人在线 | 国产一区二区三区网站 | 国产精品自产拍高潮在线观看 | 国产精品入口麻豆 | 日韩精品一二三四区 | 91视频免费网站 | 伊人网综合 | 国产超碰人人爽人人做人人爱 | 亚洲人成无码www久久久 | 免费视频久久久 | 精品av天堂毛片久久久借种 | 国产精品精品久久久 | 极品少妇被猛得白浆直流草莓视频 | 久久久久久久久国产 | 成年无码av片 | 欧美老妇bbwhd| 五月天激情综合网 | 欧美亚洲精品在线 | 久久久久久在线观看 | 福利一区在线观看 | 成熟妇人a片免费看网站 | 亚洲乱码日产精品bd | 久久久国产99久久国产久灭火器 | 国产精品久久久久久妇女 | 99久久精品久久久久久ai换脸 | 国产日韩不卡 | 久久精品青草社区 | 2020亚洲天堂| 永久免费54看片 | 国产亚洲精品久久久久四川人 | 伊人五月综合 | 亚洲东方av | 欧美xxxx黑人又粗又长密月 | 免费人成再在线观看网站 | 香蕉午夜视频 | 国产69精品久久99卡顿的解决方法 | 久久人人玩人妻潮喷内射人人 | 精品无码国产一区二区三区麻豆 | 四季av中文字幕一区 | 午夜激情影院在线观看 | 蜜桃aaa| 91视频免费看片 | 操大爷影院| 手机看片1024久久 | 国产伦精品一区二区三区免费 | 色综合久久无码五十路人妻 | 7777kkk亚洲综合欧美网站 | 热热久| 91九色国产蝌蚪 | 狠狠人妻久久久久久综合蜜桃 | 国产在线观看免费麻豆 | 国产日本视频 | 国产精品免费一区二区三区都可以 | 国产 麻豆 日韩 欧美 久久 | 狠狠色噜噜狠狠狠狠2021天天 | 欧美成人在线影院 | 国产69精品久久 | 人妻夜夜爽天天爽三区麻豆av网站 | 欧美成一区二区三区 | 四虎免看黄| 国产又大又硬又爽免费视频试 | 五月激情婷婷丁香综合基地 | 国产小视频在线看 | 日日摸夜夜添夜夜添国产2020 | 可以免费看av的网址 | 久久久精品人妻一区二区三区四 | 秋霞欧美一区二区三区视频免费 | 1区2区3区视频 | 夜夜高潮夜夜爽精品av免费的 | 日韩av在线播 | 在办公室被c到呻吟的动态图 | 亚洲成av人片一区二区 | 国产精品一区二区在线 | 天堂…中文在线最新版在线 | 久久午夜伦鲁片免费无码 | 91秘密入口 | 日本熟妇色xxxxx日本免费看 | 黄色国产视频网站 | 偷窥自拍亚洲色图 | 国产三级精品三级男人的天堂 | 久久伊人网视频 | 深夜福利一区 | 影音先锋男人av橹橹色 | 午夜精品一区二区三区免费视频 | 精品香蕉久久久午夜福利 | 免费一级特黄特色毛片久久看 | 美女视频黄8视频大全 | 成人试看120秒体验区 | 久久久久国产精品熟女影院 | 免费的av在线 | 亚洲精品乱码久久久久久蜜桃动漫 | 日韩av免费在线播放 | 欧美激情一区二区三级高清视频 | 欧美噜噜久久久xxx 欧美噜噜噜 | 久久一级黄色片 | 91久久免费| 美女福利视频一区 | 国产精品无码一区二区三区在 | 成 人 网 站国产免费观看 | 国内露脸8mav | 特级黄色毛片 | 国产精品亚洲欧美在线播放 | 在线免费观看黄 | 中文在线а√在线 | www毛片com | 99久热re在线精品99 6热视频 | 欧美一级少妇 | 青青草原亚洲 | 国产hxc132乱人免费视频 | 久久国产成人午夜av浪潮 | 99精品视频播放 | 精品视频免费在线观看 | 一区二区在线免费观看视频 | 永久黄网站色视频免费 | kkkk444成人免费观看 | 色偷偷一区二区无码视频 | 午夜成人鲁丝片午夜精品 | 一级特级毛片 | 农村偷人一级超爽毛片 | 嫩草影院wwwnyz五月天 | 国产精品一区二区三区在线看 | 美女黄色片子 | 一区二区高清视频 | 九草视频在线观看 | 欧美日韩国产精品综合 | 永久免费观看的毛片手机视频 | 九九热在线免费观看 | 亚洲欧洲日产国产 最新 | 成年人色网站 | 久草热在线| 综合天堂av久久久久久久 | 少妇激情网 | 浓精h攵女乱爱av | 91亚色在线观看 | 九色porny丨国产首页注册 | 激情五月中文字幕 | 色八区人妻在线视频 | 精品女同一区二区三区 | 久久精品这里 | 又粗又大内射免费视频小说 | 色婷婷av一区二区三区大白胸 | 成人精品一区二区三区中文字幕 | 色av导航| 少妇系列之白嫩人妻 | 午夜少妇拍拍视频在线观看 | 国产精品夜夜嗨视频免费视频 | 精品国产青草久久久久福利 | 久久久久久久影院 | 天天综合网天天综合色 | 色五月视频| 91精品国产欧美一区二区成人 | 一本久久a久久精品vr综合 | 男女做爰猛烈叫床高潮的书 | 国产欧美日韩综合精品一区二区 | 亚洲精品无码久久久影院相关影片 | 国产av夜夜欢一区二区三区 | 国产精品一线二线 | 男人的天堂一级片 | 十八女人水多三级 | 国产欧美va欧美va香蕉在线 | 欧美多人片高潮野外做片黑人 | 日韩少妇高潮抽搐 | 好吊视频一区二区 | 亚洲第一av网站 | 性久久久久久久久久 | 色哟哟中文字幕 | 一级全黄少妇免费录像片 | 日韩经典一区 | 免费中文字幕在线观看 | 青娱乐在线视频免费观看 | 亚洲色图1| 欧美不卡一区二区三区 | 日韩理论片在线观看 | 欧美a级大胆视频 | 天天干天天舔天天射 | 黄色三级在线 | 婷婷色婷婷开心五月四房播播 | 成人h动漫精品一区二区 | 99久久综合狠狠综合久久 | 老人与老人免费a级毛片 | 乳女教师の诱惑juliamagnet | 夜夜爽爽爽久久久久久魔女 | 7777av| 国产精品久久久福利 | 天堂在线中文资源 | 日韩一区二区三区不卡 | 爱啪啪影视 | 高h肉辣动漫h在线观看 | 成熟亚洲日本毛茸茸凸凹 | 日本人xxxxxxxxx19 | 黄色的网站在线免费观看 | 国产精品永久在线观看 | 国产精品一区二区三乱码 | 一级国产国产一级 | 一区两区小视频 | aaa亚洲精品一二三区 | √8天堂资源地址中文在线 √天堂 | 最新中文无码字字幕在线 | 亚洲成a人片| 日韩精品视频久久 | 性仑少妇av啪啪a毛片 | 中文字幕乱码av | 亚洲视频 欧美视频 | 不卡的av在线播放 | 高h捆绑拘束调教小说 | 中文字幕欧美久久日高清 | 久久这里精品 | 久久精品女人 | 青青草97 | 欧美成人免费一区二区三区视频 | 久久久区 | 岛国一区二区 | 欧美福利一区 | 日本久久免费 | 精品久久在线观看 | 亚洲精品拍拍拍在线观看 | 日韩字幕 | 亚洲午夜18毛片在线看 | 老熟妇仑乱一区二区视頻 | 久久久久成人精品无码中文字幕 | 青青草原在线免费 | 欧美永久免费 | 亚洲一区无码中文字幕 | 热久久免费 | 疯狂做受xxxx高潮视频免费 | 国产69精品麻豆 | 51国偷自产一区二区三区的 | 男女裸体做爰猛烈全过程9制片 | 成人爱爱aa啪啪看片 | 成人性生交7777 | 亚a在线| 欧美黄色视屏 | 国产精品欧美一区喷水 | 亚洲娇小与黑人巨大交 | 99久久久无码国产精品秋霞网 | 亚洲精品一区中文字幕 | 午夜性片| 韩国午夜理论在线观看 | 男人的又粗又长又硬 | 亚洲一二区 | 男女一进一出粗大楱视频 | 热re99久久精品国产99热 | 96精品 | 国产精品无码dvd在线观看 | 中文字幕 欧美日韩 | 91久久亚洲 | 1111111少妇在线观看 | 精品国产av 无码一区二区三区 | 欧洲一级片 | 粉嫩av淫片一区二区三区 | 中文字幕在线播放 | 日韩av在线高清 | 日韩精品网站在线观看 | 色网站免费在线观看 | 旅行的意义3在线观看韩国 绿帽av | 少妇高潮太爽了在线视频 | 国产成人午夜福利在线观看 | 成人激情av | 最新中文字幕在线观看 | 一级黄av | 欧美一区二区影视 | 国产99视频精品免视看9 | 国产91对白叫床清晰播放 | 日韩中文字幕免费观看 | 人妻无码αv中文字幕久久琪琪布 | 国产精品成人va在线观看 | 狠狠色狠狠色综合网 | 红桃av永久久久 | 亚洲人交配 | 激情综合亚洲 | 西西人体44www大胆无码 | 已婚少妇露脸日出白浆 | 国产精品亚洲天堂 | 久久久999| 九九久久精品无码专区 | 国产 欧美 日韩 一区 | 日本伊人色 | 日韩一区视频在线 | 国产精品嫩草55av | 特级毛片在线观看 | 色射色 | 免费人成视频在线 | 全黄一级裸体 | av动漫免费看| 亚洲一区二区乱码 | 中文字幕第一页在线播放 | 免费在线日韩 | 国产婷婷色一区二区三区四区 | 色欧美片视频在线观看 | 久久久午夜精品理论片中文字幕 | 国产欧美视频在线 | 国产福利在线视频观看 | 国产精品-区区久久久狼 | 国产极品视频在线观看 | 另类老妇奶性生bbwbbw | 日韩精品一区二区三区国语自制 | 野花社区在线观看视频 | 亚洲小说另类 | 91制片国产 | 免费精品视频一区二区三区 | 久久成人麻豆午夜电影 | 亚洲精品欧美激情 | 午夜免费1000 | 九九精品热 | 成人免费久久 | 色偷偷888欧美精品久久久 | 亚洲ⅴ国产v天堂a无码二区 | 久久久久无码精品亚洲日韩 | 国产成人无码一区二区在线播放 | 亚洲精品v日韩精品 | 少妇伦子伦精品无吗 | 亚洲最大黄色网址 | 亚洲欧美日韩中文在线制服 | 91精品国产综合久久国产大片 | 国产欧美日 | 欧美老熟妇乱大交xxxxx | 69精品久久久久久久 | 久久毛片网 | 蜜桃综合 | 欧美亚洲国产精品久久高清 | 老司机精品视频一区二区 | 胸大美女又黄的网站 | 久久久综合激的五月天 | 免费性网站 | 2021久久精品国产99国产精品 | 国产一区二区三区在线观看免费 | 把女邻居弄到潮喷的性经历 | 欧美日韩在线免费观看 | 国内视频在线 | 大桥未久女教师在线观看bd22 | 天天躁夜夜躁天干天干2022 | 亚洲人xxx| 强行处破女系列中文字幕 | 国产精品一区二av18款 | 国产91精品精华液一区二区三区 | av在线观 | av拍拍拍| 九九黄色片 | 日本va欧美va精品发布 | 美女又爽又黄网站视频 | 91免费在线观看网站 | 国产精品禁18久久久夂久 | 91一区二区视频 | 欧美视频色 | 亚洲人成人一区二区在线观看 | 亚洲乱妇熟女爽到高潮的片 | 性一交一乱一色一视频麻豆 | 成年人国产视频 | 色哟哟视频 | 国产精品久久99综合免费观看尤物 | 午夜亚洲精品 | 加勒比中文无码久久综合色 | 成人小视频在线观看免费 | 亚洲一二三不卡 | 一区二区免费在线播放 | 亚洲欧美a| 欧美人与zoxxxx另类 | 成人网站www污污污网站 | 一区二区视频在线免费观看 | 国产日韩精品在线观看 | 国精产品一品二品国精在线观看 | 午夜色网站| 77777五月色婷婷丁香视频 | 日本美女黄视频 | 播金莲一级淫片aaaaaaa | 国产亚洲精品久久777777 | 亚洲综合图片网 | 懂色av噜噜一区二区三区av88 | 久久精品国产亚洲一区二区 | 精品国产一区二区三区av爱情岛 | 在线看片不卡 | 中文精品一区二区三区四区 | 加勒比久久久 | 国产精品熟妇视频国产偷人 | 中文字幕永久2021 | 日韩精品你懂的 | 亚洲最大成人综合网720p | 天堂最新资源在线 | 亚洲爆乳精品无码一区二区 | 丰满少妇xbxb毛片日本 | 小早川怜子一区二区的导演 | 国产免费一区二区三区免费视频 | 成人视屏在线观看 | 4455成人免费观看 | 欧美日韩a√ | 一区二区三区黄色片 | 成人影视免费 | 日韩少妇乱码一区二区三区免费 | 日韩欧美极品 | 午夜福利国产成人无码gif动图 | 国产精品蜜 | 久久国产精品99久久人人澡 | 亚洲欧美在线观看视频 | a在线观看免费 | 日韩av网站在线播放 | 亚洲免费在线观看视频 | 男人扒开女人腿桶到爽免费 | 欧美日韩一区三区 | 色国产精品一区在线观看 | 一本色道久久99精品综合蜜臀 | 99热免费在线观看 | 亚洲乱码一区av春药高潮 | 亚洲精品乱码久久久久久蜜桃不卡 | 成人在线视频一区二区三区 | 久久人妖 | 国内自产少妇自拍区免费 | 国产精品久久久久久亚洲色 | 亚洲美女性生活 | 亚洲最新av网站 | 午夜性影院 | 久久香综合精品久久伊人 | 免费的av在线 | 亚洲精品tv久久久久久久久久 | 欧美性折磨bdsm另类 | 久久婷婷五月综合色丁香 | 亚洲精品在线视频免费观看 | 亚洲国产日韩精品二三四区竹菊 | 午夜寡妇啪啪少妇啪啪 | hsck成人网 | 成人黄色动漫在线观看 | 后进极品白嫩翘臀在线播放 | 五级毛片| 九草视频在线 | 激情综合五月天 | 麻豆91精品91久久久的内涵 | 超清 忍不住的亲子伦中文字幕 | 99中文字幕在线观看 | 狠狠色噜噜狠狠狠狠av不卡 | av无毛| 在线欧美中文字幕农村电影 | 中文字幕2019在线 | 乌克兰少妇xxxx做受野外 | 激情久久网站 | 色 综合 欧美 亚洲 国产 | 麻豆视频在线看 | 国产娇小hdxxxx乱 | 精品久久久久久久免费人妻 | 国产成人无码区免费网站 | 国产精品1000 | 天天噜日日噜 | 欧美福利第一页 | 成人性生生活性生交视频 | 伊人久久久久久久久久久 | 久久毛片网 | 大尺度av | 成人做爰高潮片免费视频九九九 | 日韩第一色| 午夜成人无码福利免费视频 | 性色影院 | www.人人草 | 三个男吃我奶头一边一个视频 | 中文字幕av免费专区 | 懂色av粉嫩av色老板 | 久草免费在线色站 | 国产综合在线播放 | 仙踪林毛片 | 黑人精品一区二区三区 | 精品中文在线 | 极品尤物魔鬼身材啪啪仙踪林 | 欧美爱爱视频网站 | 中文字幕精品亚洲无线码一区应用 | 一本色道久久hezyo加勒比 | 好吊视频在线观看 | 又黄又爽又猛1000部a片 | 欧美日韩性生活视频 | 橘梨纱av一区二区三区在线观看 | 亚洲天堂五月天 | 亚洲成a∨人片在线观看无码 | 欧美性折磨bdsm激情另类视频 | 国产精品自在欧美一区 | 天天操天天射天天爱 | 亚洲乱亚洲 | 成人永久aaa | 久久久一级片 | 依人九九 | 亚洲 自拍 都市 欧美 小说 | 国产寡妇一级农村野外战 | 国产sm调教折磨视频 | 直接在线观看的三级网址 | www黄色网址com | av首页在线观看 | 激情av| 国产内射老熟女aaaa∵ | 国产精品久久久影视青草 | 久久精品国产精品青草 | 午夜视频日韩 | 91精品国产自产91精品 | 免费国产裸体美女视频全黄 | 91超碰免费在线 | 国产毛片毛片毛片毛片 | av福利在线播放 | 国产av激情久久无码天堂 | 国产午夜精品一区二区理论影院 | 中文字幕一区二区在线播放 | 视频在线观看网站免费 | 剧情av在线 | 亚洲一区视频在线播放 | 国产成人天天5g影院在线观看 | 欧洲黄色毛片 | 国语对白一区二区 | 在线精品一区二区三区 | 欧美色欧美亚洲高清在线视频 | 免费毛片a | 亚洲精品午夜久久久久久久 | 国产一区二区在线影院 | 国产成人无码aⅴ片在线观看 | 九九热在线视频观看 | 亚洲美女福利视频 | 国产精品三级在线 | 中国xxxxx性按摩店 | 亚洲欧美综合久久 | 亚洲第一区国产精品 | 天天射网站 | 福利小视频在线 | 夜夜躁天天躁很很躁 | 国产精品久久久久久吹潮 | 亚洲最大的成人网 | 就去干成人网 | 日韩欧美综合在线 | 无码人妻久久一区二区三区不卡 | 日韩欧美一区二区在线观看视频 | 中文字幕在线色 | 久久性av | 免费视频a | 国产男女猛烈无遮掩视频免费网站 | 欧美裸体网站 | 久久久精品人妻一区二区三区蜜桃 | 欧美黄色免费网站 | 激情自拍偷拍 | 色噜噜av男人的天堂 | 综合网激情 | av片在线观看 | 青青草免费公开视频 | 日韩在线观看精品 | 国产成人精品一区二区阿娇陈冠希 | 可以免费看污视频的网站 | 欧美成人aaaa | 无码精品国产一区二区三区免费 | 五月天青青草 | 看欧美一级片 | 国产成人a∨激情视频厨房 国产精品无码一区二区三级 | 亚洲一本大道无码av天堂 | 男女啪啪猛烈无遮挡猛进猛出 | 高清在线一区 | 亚洲一级av毛片 | 岛国精品在线观看 | 欧美高潮在线 | 天堂av在线免费观看 | 亚洲精品喷潮一区二区三区 | 曰韩内射六十七十老熟女影视 | 亚洲欧美另类综合 | 国内精品久久久人妻中文字幕 | 国产精品视频偷伦精品视频 | 亚洲欧美日韩一区在线观看 | 人妻熟妇乱又伦精品视频 | 欧美天堂一区二区三区 | 日本饥渴人妻欲求不满 | h狠狠躁死你h出轨高h | 四虎国产精品永久地址99 | 91精品国产毛片 | 毛片最新网址 | 国产精品久久久久久久久免费相片 | 特黄特色特刺激免费播放 | av资源免费| 日本三级理论片 | 久久重口味 | 亚洲国产欧美不卡在线观看 | 特黄老太婆aa毛毛片 | 久久99精品国产自在现线小黄鸭 | 久久九九网站 | 久草在线视频资源站 | 秋霞在线中文字幕 | 3d动漫精品啪啪一区二区中 | 欧美色图首页 | 国产国产成人免费c片 | 国产人妖在线 | 青草一区二区 | 黄色网址在线免费看 | 青娱乐极品在线 | 极品白嫩丰满少妇无套 | 香蕉视频官网 | 国产肉体xxx裸体312大胆 | 国产91精品露脸国语对白 | 日日噜噜噜夜夜爽爽狠狠视频寻花 | 4438xx亚洲最大五色丁香 |