附录 B:术语表

本术语表面向"从 MM 到 HMM"专栏阅读过程中的快速查阅。它不是内核 API 手册,而是把文章中反复出现的概念放到同一张地图上:先给出直观含义,再说明它在 Linux MM/HMM 语境里的作用。

建议阅读方式:

  • 初读专栏时,把它当作"遇到缩写就查一下"的速查表;
  • 读 HMM、迁移、DRM SVM 章节时,重点查 ZONE_DEVICEdev_pagemapmmu_interval_notifierhmm_rangemigrate_vmadevice private entry
  • 做驱动接入时,重点查 dev_private_ownerdrm_gpusvm_rangedrm_pagemapDMA mappinginvalidateretry

1. 地址空间与 VMA

术语 英文/代码 简明解释
虚拟地址 Virtual Address / VA 进程看到的地址,不直接等于物理内存地址。CPU 通过页表把 VA 翻译成 PA。
物理地址 Physical Address / PA CPU 物理地址空间中的地址,通常由内存控制器、平台固件、设备 BAR 等共同定义。
总线地址 Bus Address / DMA Address / IOVA 设备发起 DMA 时使用的地址。可能等于物理地址,也可能是 IOMMU 翻译后的 IOVA。
进程地址空间 Process Address Space 一个进程拥有的用户虚拟地址布局,包括代码、堆、栈、mmap 区域等。
mm_struct struct mm_struct 描述进程用户地址空间的核心结构,保存 VMA、页表、锁和统计信息。
VMA struct vm_area_struct 一段连续虚拟地址范围,带有权限、映射类型和文件/匿名页信息。
vm_flags VMA flags 描述 VMA 权限和属性,如 VM_READVM_WRITEVM_SHAREDVM_HUGETLB
mmap_lock mmap_read_lock() / mmap_write_lock() 保护 VMA 树和地址空间布局的读写锁。
Maple Tree mm->mm_mt 现代 Linux 用于管理 VMA 的树结构,替代旧红黑树方案。
用户态映射 User Mapping 用户进程通过 mmap()、匿名分配、文件映射等建立的 VA 区间。
匿名映射 Anonymous Mapping 没有文件后端的内存,例如 heap、anonymous mmap。
文件映射 File-backed Mapping VMA 背后有文件页缓存作为后端。
COW Copy-On-Write 写时复制。多个映射共享同一页,第一次写入时复制新页。
mprotect() Memory Protection Change 修改 VMA 权限,可能触发页表和 MMU notifier invalidation。
munmap() Unmap User Range 删除用户虚拟地址范围,触发页表拆除和 notifier。
mremap() Remap User Range 移动或扩展已有映射,改变 VA 结构。

2. page、folio 与 PFN

术语 英文/代码 简明解释
Page Linux 内存管理的基本物理单位,常见大小为 4 KiB。
struct page Page Descriptor 内核描述一个物理页帧的元数据结构。
Folio struct folio 一组物理连续、语义上一起管理的页,减少传统 struct page API 的歧义。
PFN Page Frame Number 物理页帧号,通常是物理地址右移 PAGE_SHIFT
pfn_to_page() PFN to page 从 PFN 找到对应 struct page
page_to_pfn() page to PFN struct page 反推 PFN。
memmap vmemmap / memmap array 保存所有 struct page 的线性映射区域。
引用计数 Page Refcount 记录页面被多少对象引用,防止仍在使用时释放。
page flags page->flags 描述页面状态,如 dirty、locked、LRU、zone、device page 类型等。
Page lock Page/Folio Lock 保护单页或 folio 状态转换的锁。
compound page Compound Page 多个 base page 组成的复合页,用于 THP、HugeTLB、较大设备页等。
order Page Order 表示连续页数量为 2^order
zero page Zero Page 只读共享的全零页,常用于未写入的匿名映射。
LRU Least Recently Used Linux 页面回收链表体系,用于决定哪些页可回收。
Dirty page Dirty Page 内容已被修改但尚未写回后端的页面。
Page cache Page Cache 文件数据在内存中的缓存。
GUP get_user_pages() 获取用户页引用的机制,常用于 RDMA、IO、长期 pin。
long-term pin Long-term Page Pin 长时间固定页面,可能阻碍迁移、回收、COW。

3. 页表与 PTE 编码

术语 英文/代码 简明解释
页表 Page Table VA 到 PA/PFN 的多级映射结构。
PGD/P4D/PUD/PMD/PTE Page Table Levels Linux 五级页表的各级 entry。
PTE Page Table Entry 最底层页表项,通常映射一个 base page,也可编码特殊非 present entry。
present PTE Present PTE 表示当前 VA 有有效物理页映射。
non-present PTE Non-present PTE PTE present 位不置位,但可能编码 swap、migration、device private 等状态。
writable PTE Writable PTE 页表项允许写入。
young/accessed Accessed Bit 硬件或内核标记页面近期被访问。
dirty bit Dirty Bit 标记页面被写过。
swap entry Swap PTE Encoding 非 present PTE 中编码 swap 类型和 offset 的格式。
migration entry Migration Entry 页面迁移期间临时放入页表的非 present entry,指向正在迁移的页。
device private entry Device Private Entry 表示页面数据在设备私有内存中,CPU 不能直接访问,需要 fault 回迁。
device exclusive entry Device Exclusive Entry 表示设备临时独占访问某个页,CPU PTE 被替换成特殊 entry。
soft-dirty Soft Dirty Linux 追踪用户页写入的一类软件标志/机制。
page table walk Page Walk 遍历页表层级读取或修改 entry 的过程。
walk_page_range() Generic Page Walk API 内核通用页表遍历框架,调用 mm_walk_ops 回调。
mm_walk_ops Page Walk Callbacks 页表遍历回调集合,如 pmd_entrypte_entrypte_hole
PTE hole Page Table Hole 某段 VA 没有页表或没有 PTE 映射。
HugeTLB HugeTLB Pages 显式大页机制,使用 hugetlbfs 或特定 API 分配。
THP Transparent Huge Page 透明大页,内核自动把连续小页合并为 PMD/PUD 级映射。
PMD 映射 PMD-sized Mapping PMD 级别直接映射大页,常见大小 2 MiB。
TLB Translation Lookaside Buffer CPU/GPU 缓存地址翻译结果的硬件结构。
TLB shootdown TLB Invalidation 页表变化后让 CPU/GPU 丢弃旧翻译缓存。

4. 缺页、回收与迁移

术语 英文/代码 简明解释
缺页异常 Page Fault CPU 访问 VA 时页表无法直接满足访问,引发异常进入内核处理。
handle_mm_fault() MM Fault Handler Linux 处理用户态缺页的核心入口。
minor fault Minor Page Fault 不需要从磁盘读取,只需建立页表或分配页面的 fault。
major fault Major Page Fault 需要从存储读取数据的 fault。
remote fault FAULT_FLAG_REMOTE 不是当前 CPU 指令直接访问触发,而是由驱动/HMM 远程请求触发的 fault。
FAULT_FLAG_WRITE Write Fault Flag 表示 fault 需要写权限。
页面回收 Page Reclaim 内存紧张时回收可释放页面。
kswapd Kernel Swap Daemon 后台内存回收线程。
direct reclaim Direct Reclaim 分配内存路径上同步执行回收。
swap out Swap-out 把匿名页写到 swap,释放内存。
swap in Swap-in 缺页时从 swap 读回页面。
页面迁移 Page Migration 把页面内容从一个物理页搬到另一个物理页,同时保持 VA 语义不变。
NUMA migration NUMA Page Migration 为了靠近 CPU 或内存节点而迁移系统内存页。
自动 NUMA 均衡 AutoNUMA 内核自动根据访问模式迁移页面到合适 NUMA 节点。
migrate_pages() Generic Page Migration 通用页面迁移接口,常用于 NUMA、内存规整等。
migrate_vma VMA-based Migration 面向驱动的页面迁移框架,用于 CPU 内存和设备内存之间迁移。
migrate_vma_setup() Migration Phase 1 收集并锁定源页,把 CPU PTE 替换成 migration entry。
migrate_vma_pages() Migration Phase 2 提交页面元数据迁移,决定哪些页迁移成功。
migrate_vma_finalize() Migration Phase 3 恢复或安装最终页表 entry,释放迁移临时状态。
MIGRATE_PFN_* Migration PFN Flags migrate_vma 的 src/dst PFN 数组标志,描述 valid、write、migrate 等状态。
回迁 Migrate Back to RAM 把 device private page 迁回系统内存。
eviction Eviction 从设备内存驱逐数据,通常迁回系统内存以释放设备内存。

5. MMU Notifier 与同步协议

术语 英文/代码 简明解释
MMU notifier mmu_notifier 当 CPU 页表变化时通知外部页表拥有者,如 KVM、GPU、RDMA。
interval notifier mmu_interval_notifier 针对某个 VA 区间的 notifier,配合序列号读/重试协议。
invalidate Invalidation CPU 页表变化时,通知外部映射失效。
mmu_notifier_range Invalidation Range 描述失效事件的地址范围、事件类型、owner、是否 blockable 等。
MMU_NOTIFY_UNMAP Unmap Event 表示 VA 被解除映射。GPU/设备映射通常必须销毁。
MMU_NOTIFY_MIGRATE Migration Event 表示页面迁移事件。驱动可通过 owner 判断是否是自己发起。
blockable mmu_notifier_range_blockable() 表示 notifier 回调是否允许阻塞睡眠。
mmu_interval_read_begin() Read Begin 读取 interval notifier 当前序列号,开始一次受保护的页表快照。
mmu_interval_read_retry() Read Retry Check 在驱动锁下检查读取期间是否发生 invalidation。
mmu_interval_set_seq() Set Invalidate Sequence notifier invalidate 回调中更新序列号,使并发 reader 重试。
notifier seq Invalidation Sequence 用于判断 HMM PFN 快照是否过期的序列号。
driver update lock Driver Page Table Lock 驱动保护设备页表更新的锁,和 notifier retry 配合使用。
retry loop Retry Loop 页表变化、迁移、invalidation 竞态下反复重新获取状态的模式。
stale mapping Stale Device Mapping 设备页表或 DMA mapping 指向已经失效的 CPU 页表状态。

6. ZONE_DEVICE 与 dev_pagemap

术语 英文/代码 简明解释
ZONE_DEVICE Device Memory Zone Linux 为设备内存建立 struct page 的内存 zone。
dev_pagemap struct dev_pagemap 描述一段设备内存 PFN 范围、类型、owner 和回调的控制结构。
memremap_pages() Register Device Pages 把设备物理地址范围注册为拥有 struct page 的 ZONE_DEVICE 页面。
pgmap->owner Device Page Owner 标识设备页属于哪个驱动/设备实例。
dev_pagemap_ops Device Page Operations 设备页生命周期回调集合,如 migrate_to_ramfolio_free
migrate_to_ram Device Page Fault Back CPU 访问 device private page 时,把它迁回系统内存的回调。
folio_free Device Folio Free 设备页释放时的回调。
MEMORY_DEVICE_PRIVATE Device Private Memory 设备私有内存,CPU 通常不能直接访问,需要迁移回 RAM。
MEMORY_DEVICE_COHERENT Device Coherent Memory 设备内存与 CPU coherent,CPU 可直接访问,但仍属于 ZONE_DEVICE。
MEMORY_DEVICE_FS_DAX FS DAX Device Memory 文件系统 DAX 使用的设备内存类型。
device page Device-backed struct page 代表设备内存 PFN 的 struct page
system page System RAM Page 普通系统内存页面。
backing page Fake Backing Store test_hmm 用普通系统页模拟设备私有内存内容的技巧。
zone_device_data Device Page Private Data struct page 中供设备页保存私有数据的字段。
device private owner dev_private_owner HMM range 中用于识别"本设备 device private page"的 owner。

7. HMM 核心术语

术语 英文/代码 简明解释
HMM Heterogeneous Memory Management Linux 支持 CPU 与设备共享虚拟地址和页面迁移的一组机制。
SVM Shared Virtual Memory CPU 和设备共享同一虚拟地址语义的编程模型。
mirror Address Space Mirror 设备侧维护一份 CPU 地址空间映射的镜像。
HMM mirror HMM_MIRROR HMM 依赖的配置/能力,用于驱动镜像用户地址空间。
hmm_range struct hmm_range HMM 获取一段 VA 对应 PFN 状态的输入/输出对象。
hmm_range_fault() HMM Range Fault 遍历 CPU 页表并按策略 fault 页面,输出 hmm_pfns[]
hmm_pfns[] HMM PFN Array HMM 输出数组,每项包含 PFN 和 HMM_PFN_* flags。
HMM_PFN_VALID Valid HMM PFN 表示对应 VA 有可用 PFN。
HMM_PFN_WRITE Writable HMM PFN 表示该 PFN 对请求者可写。
HMM_PFN_ERROR Error HMM PFN 表示该地址 fault/解析出错。
HMM_PFN_REQ_FAULT Request Fault 请求 HMM 对无效/未驻留页面触发 fault。
HMM_PFN_REQ_WRITE Request Write 请求 HMM 获取可写权限,必要时触发写 fault/COW。
HMM_PFN_DMA_MAPPED DMA Mapped Flag 表示 PFN 已有 DMA 映射状态的标记。
HMM_PFN_P2PDMA P2PDMA Flag 表示页面可用于 PCI peer-to-peer DMA。
HMM_PFN_P2PDMA_BUS P2PDMA Bus Flag 表示 P2PDMA 使用 bus address 语义。
map_order HMM Mapping Order HMM PFN 中编码的页表映射粒度。
hmm_pfn_to_page() HMM PFN to Page 从 HMM PFN 项取得 struct page
hmm_pfn_to_phys() HMM PFN to Physical Address 从 HMM PFN 项取得物理地址。
hmm_pfn_to_map_order() HMM PFN to Mapping Order 读取 HMM PFN 中的映射阶数。
default_flags HMM Default Request Flags 对整个 range 默认使用的 HMM 请求标志。
pfn_flags_mask HMM PFN Flags Mask 限制 HMM 输出哪些 flag 的掩码。
notifier_seq HMM Range Sequence hmm_range 保存的 interval notifier 序列号。
non-resident Non-resident Page 页面数据不在普通 CPU present PTE 中,可能在 swap、migration、device memory。
fault strategy HMM Fault Policy HMM 遇到 hole、swap、device entry 时是触发 fault、等待、还是返回 invalid。

8. DMA、IOMMU 与 P2P

术语 英文/代码 简明解释
DMA Direct Memory Access 设备不经过 CPU load/store,直接访问内存。
DMA mapping dma_map_page() 把 CPU 侧页面转换成设备可访问 DMA 地址,并处理 cache/IOMMU。
dma_map_page() Map One Page for DMA 把单页或连续页映射给设备访问。
dma_unmap_page() Unmap DMA Page 撤销 DMA mapping,释放 IOMMU/cache 相关状态。
IOMMU I/O Memory Management Unit 为设备 DMA 地址提供地址转换和隔离的硬件。
IOVA I/O Virtual Address IOMMU 暴露给设备的虚拟 DMA 地址。
DMA direction DMA_TO_DEVICE / DMA_BIDIRECTIONAL DMA 方向,影响 cache 同步和权限。
scatter-gather SG List 描述多个不连续内存段的 DMA 列表。
P2PDMA PCI Peer-to-Peer DMA PCIe 设备之间直接访问彼此内存,绕过系统内存路径。
PCI BAR Base Address Register PCI 设备暴露 MMIO 或内存窗口的地址资源。
cache coherence Cache Coherence CPU cache 与设备访问同一内存时的一致性关系。
coherent memory Coherent Device Memory CPU 和设备能保持一致访问的设备内存。
bus address Bus-visible Address 设备在总线上发起事务时使用的地址。

9. DRM、GPU SVM 与驱动接入

术语 英文/代码 简明解释
DRM Direct Rendering Manager Linux 图形/GPU 驱动子系统。
GPUVM drm_gpuvm DRM 中管理 GPU 虚拟地址空间和 VM bind/unbind 的框架。
GPUSVM drm_gpusvm DRM 中封装 HMM/SVM 页获取、notifier、range、DMA/device mapping 的框架。
drm_gpusvm struct drm_gpusvm 一个 DRM GPU SVM 实例,通常嵌在驱动 VM 对象中。
drm_gpusvm_notifier GPUSVM Notifier 管理一段较大 VA 区间的 interval notifier,并挂载多个 range。
drm_gpusvm_range GPUSVM Range GPU fault 后建立的较小 VA 区间,保存 pages 和映射状态。
drm_gpusvm_pages GPUSVM Pages 保存 dma_addr[]dpagemapnotifier_seq 和 flags 的结构。
drm_gpusvm_ctx GPUSVM Context 一次 GPUSVM 操作的策略参数,如 read-only、allow-mixed、devmem-only。
drm_gpusvm_ops GPUSVM Driver Ops 驱动提供给通用层的回调,如 range 分配和 invalidate。
drm_gpusvm_range_find_or_insert() Find/Create GPUSVM Range GPU fault 时查找或创建 notifier/range。
drm_gpusvm_get_pages() GPUSVM Page Acquisition 封装 HMM PFN 获取与 DMA/device address 映射。
drm_gpusvm_range_get_pages() Range Get Pages 针对一个 GPUSVM range 调用 drm_gpusvm_get_pages()
drm_gpusvm_range_pages_valid() Range Valid Check GPU binding 前检查 range pages 是否仍有效。
drm_gpusvm_range_unmap_pages() Range Unmap Pages notifier invalidate 中撤销 range 的 DMA/device mapping。
drm_gpusvm_range_set_unmapped() Mark Range Unmapped MMU_NOTIFY_UNMAP 时标记 range 已失效,并记录 partial unmap。
drm_gpusvm_range_evict() Evict GPUSVM Range 借助 HMM fault 把 range 中的 device private page 拉回系统内存。
drm_gpusvm_scan_mm() Scan Migration State 观察 range 当前是 system、device、mixed 还是 unpopulated。
drm_pagemap DRM Device Memory Helper DRM 对 dev_pagemap 和设备页映射的辅助封装。
drm_pagemap_addr DRM Page Address DRM 用于表示 system DMA address 或 device interconnect address 的编码。
VM bind GPU VM Bind 把一段内存绑定到 GPU 虚拟地址空间。
GPU page fault GPU Fault GPU 访问缺失或无权限 VA 时产生的 fault。
GPU page table GPU Page Table GPU 自己的虚拟地址翻译结构。
GPU TLB invalidate GPU TLB Flush GPU 页表变化后撤销硬件缓存的翻译。
garbage collector Driver GC 驱动延迟清理 unmapped range、unbind GPU 页表、释放 range 的机制。
userptr User Pointer BO GPU 驱动把用户进程已有内存作为 buffer 使用的机制。
BO Buffer Object DRM/TTM/GEM 中表示 GPU 可用内存对象的抽象。
TTM Translation Table Maps DRM 内存管理框架,常用于 BO、VRAM、GTT 管理。
VRAM Video RAM GPU 本地显存。
GTT Graphics Translation Table GPU 访问系统内存或显存的一类地址转换机制,具体含义依驱动而异。
fault queue GPU Fault Queue GPU/驱动记录 fault 事件并交给内核处理的队列。
fence DMA Fence / GPU Fence 表示 GPU 异步任务完成状态的同步对象。
dma-resv DMA Reservation Object BO 共享同步对象,用于协调 fence 和访问。
PASID Process Address Space ID PCIe/设备侧区分进程地址空间的 ID。
ATS Address Translation Service PCIe 设备向 IOMMU/CPU 地址转换体系请求翻译的能力。
PRI Page Request Interface PCIe 设备请求主机处理缺页的机制。

11. 常见缩写速查

缩写 全称 中文含义
VA Virtual Address 虚拟地址
PA Physical Address 物理地址
PFN Page Frame Number 物理页帧号
PTE Page Table Entry 页表项
PMD Page Middle Directory 页中间目录级页表项
PUD Page Upper Directory 页上级目录级页表项
PGD Page Global Directory 页全局目录级页表项
VMA Virtual Memory Area 虚拟内存区域
MM Memory Management 内存管理子系统
HMM Heterogeneous Memory Management 异构内存管理
SVM Shared Virtual Memory 共享虚拟内存
DMA Direct Memory Access 直接内存访问
IOMMU I/O Memory Management Unit I/O 内存管理单元
IOVA I/O Virtual Address I/O 虚拟地址
DAX Direct Access 持久内存/设备内存直接访问机制
THP Transparent Huge Page 透明大页
TLB Translation Lookaside Buffer 地址翻译缓存
COW Copy-On-Write 写时复制
GUP Get User Pages 获取用户页引用
LRU Least Recently Used 最近最少使用回收链表
DRM Direct Rendering Manager Linux 图形/GPU 驱动子系统
BO Buffer Object 缓冲对象
TTM Translation Table Maps DRM 内存管理框架
VRAM Video RAM 显存
GTT Graphics Translation Table GPU 图形地址转换表
PASID Process Address Space ID 进程地址空间 ID
ATS Address Translation Service 地址转换服务
PRI Page Request Interface 页面请求接口
P2P Peer-to-Peer 设备间点对点访问

12. 容易混淆的概念对照

12.1 PFN、物理地址、DMA 地址

概念 谁使用 是否一定相同 典型转换
PFN 内核 MM 不等于地址,只是页帧编号 page_to_pfn() / pfn_to_page()
物理地址 CPU 物理地址空间 可能和 DMA 地址不同 PFN << PAGE_SHIFT
DMA 地址 设备 DMA 引擎 有 IOMMU 时通常不同于物理地址 dma_map_page()

12.2 system page、device private page、device coherent page

类型 CPU 能否直接访问 是否有 struct page 典型用途
system page 可以 普通系统内存
device private page 通常不可以 有,来自 ZONE_DEVICE GPU VRAM/设备私有内存,CPU fault 时回迁
device coherent page 可以 有,来自 ZONE_DEVICE CXL/一致性设备内存,CPU 与设备共享访问

12.3 mmu_notifiermmu_interval_notifier

机制 粒度 常见使用者 重点
mmu_notifier 整个 mm 或 broad callback KVM、驱动基础同步 接收 CPU 页表变化通知
mmu_interval_notifier 指定 VA interval HMM、device mirror、userptr read begin/retry 序列号协议

12.4 migrate_pages()migrate_vma

机制 面向对象 谁分配目标页 HMM 相关性
migrate_pages() 一组 folio/page 通用 MM/NUMA 路径 是历史基础
migrate_vma 某个 VMA 地址范围 驱动参与分配 device/system 目标页 HMM 设备迁移核心机制

13. 一句话总结

  • VMA 是"这段虚拟地址应该怎么用"。
  • PTE 是"这一个虚拟页现在指向哪里"。
  • PFN 是"物理页帧的编号"。
  • struct page 是"内核认识这个物理页的身份证"。
  • ZONE_DEVICE 是"让设备内存也拿到身份证"。
  • dev_pagemap 是"这段设备内存的户口本和回调表"。
  • device private entry 是"页在设备里,CPU 要访问请先回迁"。
  • device exclusive entry 是"设备暂时独占,CPU 普通 PTE 先撤掉"。
  • MMU notifier 是"CPU 页表变了,外部页表赶紧失效"。
  • mmu_interval_notifier 是"只盯一段 VA,并用序列号判断快照是否过期"。
  • HMM 是"让设备读懂 CPU 地址空间,并能参与页面迁移"。
  • hmm_range_fault() 是"把一段用户 VA 翻译成 HMM PFN 数组"。
  • migrate_vma 是"驱动参与的 CPU 内存和设备内存搬家流程"。
  • DMA mapping 是"把 CPU/内核认识的页转换成设备能访问的地址"。
  • test_hmm 是"HMM 协议的最小可运行样板"。
  • drm_gpusvm 是"DRM 驱动接入 HMM/SVM 的通用骨架"。
相关推荐
DeeplyMind2 个月前
HMM 学习路线目录规划
hmm·hmm_range
DeeplyMind2 个月前
linux中的HMM vs drm_pagemap 对比分析
hmm·drm_gpusvm·drm_pagemap·dev_pagemap·hmm_range
啊阿狸不会拉杆3 个月前
《计算机视觉:模型、学习和推理》第 11 章-链式模型和树模型
人工智能·学习·算法·机器学习·计算机视觉·hmm·链式模型
啊阿狸不会拉杆3 个月前
《机器学习导论》第15章- 隐马尔可夫模型(HMM)
人工智能·python·算法·机器学习·动态规划·hmm·隐马尔可夫模型
DeeplyMind4 个月前
02 - SVM相关的Linux内核基础
hmm·rocm·kfd·共享虚拟内存·amdgpu svm
大千AI助手7 个月前
高斯隐马尔可夫模型:原理与应用详解
人工智能·高斯·hmm·高斯隐马尔可夫模型·ghmm·马尔科夫模型·混合高斯模型
大千AI助手7 个月前
Viterbi解码算法:从理论到实践
算法·动态规划·hmm·隐马尔可夫·viterbi解码·viterbi·卷积码
uncle_ll1 年前
李宏毅NLP-6-seq2seq&HMM
人工智能·自然语言处理·nlp·李宏毅·hmm
Crazy learner2 年前
深入解析语音识别中的关键技术:GMM、HMM、DNN和语言模型
dnn·gmm·hmm