我有一张 Sandisk SDHC 4GB Class 2 存储卡,并且我已经使用 Palimpsest 磁盘实用程序、在 Linux 下以及在我的 Acer Travelmate 5720G 笔记本电脑上对其读取速度进行了基准测试。
这些是将其插入我的笔记本电脑的内置读卡器时的速度:
而这些是使用外部 USB 读取器时获得的值(类似于该问题底部图像中的值):
如您所见,与 USB 读取器相比,使用内置读取器时速度基本上减半,这种现象听起来很奇怪。
内置读取器难道不应该更快,或者至少速度相同吗?毕竟,与内置读取器相比,使用外部 USB 读取器至少要多一步。
我以为瓶颈是由 USB 读取器造成的,但显然并非如此。
编辑 以下是 SD 读卡器的规格
产品:符合 PCIxx12 SDA 标准的 SD 主机控制器 [104C:803C]
供应商:德州仪器 [104C]
总线信息:pci@0000:0f:06.3
版本:00
宽度:32 位
时钟:33MHz
功能:电源管理、总线主控、PCI 功能列表
配置:驱动程序:sdhci-pci 延迟:57 最大延迟:4 mingnt:7
资源:irq:22 内存:fc006800-fc0068ff
它连接到这个 PCI 桥
产品:82801 Mobile PCI Bridge [8086:2448]
供应商:Intel Corporation [8086]
总线信息:pci@0000:00:1e.0
版本:f3
宽度:32 位
时钟:33MHz
功能:pci、subtractive_decode、总线主控、PCI 功能列表
资源:ioport:6000(size=4096) 内存:fc000000-fc0fffff ioport:c4000000(size=67108864)
USB 控制器接口应该是这个:
产品:82801H(ICH8 系列)USB2 EHCI 控制器 #1 [8086:2836]
供应商:英特尔公司 [8086]
总线信息:pci@0000:00:1d.7
版本:03
宽度:32 位
时钟:33MHz
功能:电源管理、调试端口、增强型主机控制器接口(USB2)、总线主控、PCI 功能列表
配置:驱动程序:ehci_hcd 延迟:0
资源:irq:23 内存:fc304400-fc3047ff
USB 读卡器示例
答案1
首先我要说明一下,对于您提的这个比较模糊的问题,我们只能进行推测。
乍一看,这个问题的出现是因为内置 SD 卡读卡器只是另一个设备;对你来说,这样的设备可能看起来像是系统的一个组成部分,但只是在某种意义上,它是一部分外壳/塔式机/笔记本电脑。
主板和实际 SD 卡读卡器之间的数据链路可能是罪魁祸首,但 SD 卡读卡器本身也可能是罪魁祸首。这意味着,如果数据链路比 USB 设备之间的数据链路慢,那么您将获得较慢的性能。其他因素可能取决于写入缓存等功能,但基准测试软件通常会绕过这些元素。
答案2
这取决于笔记本电脑的内部结构。内部读卡器可能连接到比外部读卡器 USB 端口速度更慢的 USB 总线。
答案3
问题是你谈论的是两种不同的连接。一个是 USB,另一个是 PCI,尽管 PCI 支持总线控制,但内置 SD 读卡器很可能以标准 pci 速度运行,类似于旧并行硬盘(在成为 DMA 之前)的模式 1-4 设置。问题是笔记本电脑上的大多数内置设备都很差或很标准,通常接线和其他附件都很脆弱(看看笔记本电脑的键盘)。主要原因是重量保持在最低限度。这些速度看起来几乎像 USB 1 外部硬盘和 USB 2 Ext' HDD 的速度。但要注意那个 USB 读卡器,如果它和我用的一样便宜,用绝缘胶带固定在外壳上