标签: bus

在没有lspci的情况下在linux上查找硬件信息

我有一个运行 ArchLinux 的 ARM 设备。该设备似乎没有任何 PCI 总线,即使它有 USB。

[root@alarm ~]# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
[root@alarm ~]# lspci
pcilib: Cannot open /proc/bus/pci
lspci: Cannot find any working access method.
[root@alarm ~]# 
Run Code Online (Sandbox Code Playgroud)

我想找到还有哪些其他芯片组。例如,我知道有支持 HDMI 的声卡和视频卡。这样的芯片不会放在 USB 线上。

我在 /proc/config.gz 上查看了当前在设备上运行的内核配置,它列出了以下内容:

#
# Bus support
#
CONFIG_ARM_AMBA=y
# CONFIG_PCI_SYSCALL is not set …
Run Code Online (Sandbox Code Playgroud)

linux graphics-card drivers arm bus

16
推荐指数
1
解决办法
4万
查看次数

设备驱动程序指令如何对 GPU 进行编程?

假设我正在使用计算机,或多或少是任何典型的现代计算机。设备驱动程序负责我在屏幕上看到的所有内容,包括在我键入此内容时更新屏幕(当然,这在操作系统的范围内,例如 Windows)。

让我们将其降低到硬件不关心是否有内核,而只接受指令的级别。

基本上,GPU 是如何“确切地知道”如何做所有事情的?驱动程序是否基本上控制了使用驱动程序提供的特殊指令计算用于显示的二进制数据可能或需要的每个微小的、内在的或硬件电路级功能?

如果是这样,GPU 是否像 CPU 一样使用“特殊”语言或“汇编”来理解发送给它的指令?

我的知识有太多空白,而且 GPU 背后存在这种令人不快的“谜团”,并可以通过硬件直接访问它们。

例如,GPU 和 CPU 必须能够以某种方式连接,因此可以通过 CPU 组件访问 GPU 并实现正确的数据/地址总线。设备供应商不可能让驱动程序之外的 GPU 无法访问,因为驱动程序也是编译代码,而 GPU 作为可编程电路,必须使用二进制指令。

我问过这些类型的问题,但在许多网站上,它们很快就被删除了,为什么没有答案,那么这里的大谜团/秘密是什么?它是主板上的一块硬件,可以像其他任何硬件一样访问。

所以真的......假设这是一个关于软件和硬件的“确定”问题,任何人都可以直接访问GPU而无需供应商特定文件,因为这些文件并不神奇。

那么,GPU 是如何从裸机、直接硬件角度在特定于硬件的层面上“编程”的呢?

cpu gpu graphics-card drivers bus

11
推荐指数
2
解决办法
9865
查看次数

试图理解计算机总线的图片

在这张来自http://en.kioskea.net/contents/pc/bus.php3 的图片中,它解释了计算机中的总线

在此处输入图片说明

  1. 不知CPU到南桥的黑线是不是也是总线?图中没有命名,它的名字是什么?
  2. 那些来自 LAN、SCSI、ISA、USB、IDE 的短黑线也是总线,它们的名字是什么?

    请注意,图中来自二级缓存、AGP 和 RAM 的黑线分别命名为处理器总线、AGP 总线和内存总线。

  3. CPU到南桥的黑线是否与PCI总线和处理器总线都相交?
  4. 数据流如何?

    例如,我的以下理解是否正确?

    从 CPU 到 Level 2 缓存,路线是源自 CPU 和处理器总线的黑线。

    从 CPU 到 AGP 或 RAM,路线是源自 CPU、北桥和 AGP 总线或内存总线的黑线。

    从CPU到LAN或SCSI,黑线是CPU、北桥、PCI总线,黑线是LAN或SCSI。

    从CPU到ISA、USB、IDE中的任何一个,走的路线是黑线是CPU、北桥、南桥,黑线是ISA、USB或IDE。

    非 CPU 组件之间的数据流如何?

谢谢!

bus

10
推荐指数
2
解决办法
3214
查看次数

硬件寄存器和内存映射寄存器有什么区别?

这一直令人费解,所以我会把它全部放在这里。显然,通过MMIO,您可以使用某个内存映射地址访问外部设备,然后将其重新路由到该设备本身(通过写入、命令包等)。但是,我一直听到对硬件寄存器(例如 CPU/GPU 寄存器,甚至声音芯片)和可互换使用的内存映射寄存器的混合描述。它们是一样的吗?

当您说“内存映射寄存器”时,您是不是指数据字节重新路由到该设备内的特定地址的地址(例如,理论上:GPU 的 0x500 地址用于寄存器 TEXTURE_BUFFER)。但是,内存映射设备无法映射 RAM 内的物理寄存器。

那么基本上,内存映射寄存器和硬件寄存器之间有什么区别?

memory register data-transfer cpu-architecture bus

9
推荐指数
2
解决办法
1万
查看次数

PCI枚举中的设备是如何确定的?(总线/设备/功能)

我对 PCI 总线/设备/功能枚举感到困惑。查看PCI 配置的 Wikipedia 页面,我看到对于给定的总线,主机将使用函数 0 请求所有设备的供应商 ID 和设备 ID。如果返回所有 0xFF,则没有设备存在,枚举继续进行。如果找到了有效的设备 ID 和供应商 ID,则那里有一个 PCI 单元,并且将对其进行枚举。我不确定 bus.device.function 中的设备是如何确定的。

例如,假设我有一个 CPU,它带有一个 PCI 总线和一个连接到它的 PCI 外围设备。我知道 CPU 将查看总线 0(默认情况下),并将检查查看功能 0 的所有设备编号。如何确定外围设备的设备编号?

pci bus

8
推荐指数
1
解决办法
2万
查看次数

前端总线是 CPU 还是主板的一部分?

我正在做的事情需要一个非常快速/宽的前端总线(FSB)。FSB 属于哪个组件?它是 CPU 还是主板的一部分?它是可以放在板上的东西,还是从根本上说它是主板的一部分,因此无法更换?

computer-architecture bus

7
推荐指数
1
解决办法
2794
查看次数

如何在Windows 10上读取SD卡CID

有没有一种工具/方法可以在Windows 10下读取SD卡的CID?

如果这很重要的话,我的笔记本电脑读卡器似乎插入 USB 总线而不是 PCI 总线。

在此输入图像描述

usb sd-card memory-card bus windows-10

6
推荐指数
1
解决办法
2万
查看次数

当我同时将 4 个 USB 驱动器连接到我的 PC 时,每个插槽的速度是否为 480 Mbit/s?

  1. 当我同时将 4 个 USB 驱动器连接到PC上的 4 个可用插槽时,每个插槽的理论速度是 480 Mbit/s 还是将其分成四等分并且每个端口只有 120 Mbit/s?

  2. 当您在Marvell SoC 中放置 4 个 USB 驱动器时,这是否会发生变化,或者是否存在相同的内部基础架构?

motherboard usb usb-storage usb-flash-drive bus

5
推荐指数
1
解决办法
2525
查看次数

66MHz 的 PCI(不是 PCI-E)总线速度到底意味着什么?

根据这篇文章,总线是连接主板的电路。总线速度越快,数据传输速度就越快。总线速度以MHz(兆赫兹)为单位,66 MHZ 的总线速度意味着每秒 6600 万个周期。赫兹表示每秒 x 的频率

对于CPU来说,66 MHz意味着每秒可以处理6600万条指令

公交车怎么样?每个周期传输多少数据(按 btyes 计算)?

motherboard cpu performance speed bus

5
推荐指数
1
解决办法
1552
查看次数

如何在 Windows 中模拟虚拟 USB 驱动器?

我有一个远程服务器,我应该在其中使用 USB 驱动器测试某些应用程序的工作。不幸的是,无法在那里安装任何 USB 驱动器。所以,我需要在 Windows 中模拟一个虚拟 USB 驱动器。应用程序检查 USB 总线类型的磁盘:

 Get-Disk | Where-Object { ($_.BusType -eq "usb") 
Run Code Online (Sandbox Code Playgroud)

有没有办法在 Windows 中模拟虚拟 USB 驱动器?

windows usb emulation virtual-disk bus

5
推荐指数
1
解决办法
9431
查看次数