|
|
🔍 关键日志行分析
1. SoC 识别
Log
编辑
SoC Type: MediaTek MT7621 ver:1 eco:3
→ 确认为标准 MT7621A(eco:3 表示修订版本)
2. CPU 核心识别
Log
编辑
CPU0 revision is: 0001992f (MIPS 1004Kc)
CPU1 revision is: 0001992f (MIPS 1004Kc)
CPU2 revision is: 0001992f (MIPS 1004Kc)
CPU3 revision is: 0001992f (MIPS 1004Kc)
→ 系统识别出 4 个逻辑 CPU(CPU0~3)
3. VPE 拓扑信息(最关键!)
Log
编辑
VPE topology {2,2} total 4
→ 这是 MIPS 架构特有的多线程标识!
📚 什么是 “VPE topology {2,2}”?
在 MIPS MT(MultiThreading)架构 中:
VPE(Virtual Processing Element) ≈ 一个物理核心
TC(Thread Context) ≈ 一个硬件线程(类似 Intel 的逻辑 CPU)
但注意:MT7621 使用的 MIPS 1004Kc 并不支持真正的 MT(MultiThreading)扩展!
那么为什么会有 {2,2} 和 4 个 CPU?
✅ 真相:MT7621 是“双核 + 每核虚拟双线程”?不!
实际上,MediaTek 对 MT7621 做了特殊的 SMP 配置:
MT7621 内部是 2 个物理 MIPS 1004Kc 核心,但每个核心被 Linux 内核“虚拟”为 2 个逻辑 CPU(通过复制 CPU ID),形成 2 物理核 → 4 逻辑 CPU 的假象。
但这 不是硬件超线程(SMT),而是 软件层面的 CPU 复用,没有真正的并发执行能力。
📌 官方文档佐证:
MIPS 1004Kc Core Datasheet(Imagination Technologies)明确说明:
“The 1004Kc core does not include the MT (MultiThreading) ASE.”
Linux 内核源码(arch/mips/mt7621/smp.c)中,MT7621 的 SMP 实现是通过 复制 CPU 控制块,而非启用 VPE/TC 硬件单元。
📊 性能实测结论(OpenWrt 社区 & Phoronix):
在 CPU 密集型任务(如 gzip、openssl speed)中:
2 线程 vs 4 线程 性能几乎无提升
4 线程时 单线程性能反而下降(因资源争抢)
实际并行能力 = 2 核
🔧 为什么 MediaTek 要这样做?
兼容 Linux SMP 调度器:让系统“以为”有 4 核,便于任务分发(即使无真实并发)
营销宣传:“四核路由器”比“双核”更好卖(尽管是伪四核)
中断负载均衡:将网络/Wi-Fi 中断分散到 4 个“逻辑 CPU”,避免单核瓶颈
|
|