没有Vesa / VGA兼容卡,计算机能否显示输出


2

不久前,我和某人发生了争执,即一台不具有离散或集成图形解决方案的计算机(在这种情况下为Ryzen)是否可以显示主板内置的HDMI连接的输出。

我认为软件渲染是可能的,所以选择了“是”。毫无疑问,可以使用CPU将正确的信号发送到不带VGA卡的HDMI接口。

我已经尝试使用谷歌搜索这个问题,但是不幸的是,大多数问题是针对那些刚接触计算的人的,因此答案并不是我要找的。

Answers:


2

毫无疑问,可以使用CPU将正确的信号发送到不带VGA卡的HDMI接口。

这就是所谓的“位冲击”(Bit-banging)-实际上,CPU不断地在改变I / O寄存器以创建信号。

这是可能的,并且已经通过非常低速的接口(例如串行端口)完成了。旧的Commodore 64通过RS-232和用于与打印机和磁盘驱动器通信的总线的实现,几乎可以做到这一点。RS-232的传输速度不会超过每秒2400比特(2.4Kbit /秒)。

但是HDMI是非常非常快的接口。例如,HDMI 2.0的速度为18Gbps。这意味着每秒180亿次,CPU将不得不做一些事情来调制信号。

假设您最快的CPU约为3GHz,而这意味着指令的周期时间为1 / 3,000,000,000,

  • 几乎所有CPU指令都需要一个以上的周期

  • I / O指令是“序列化”的(因为它们必须按顺序完成),因此高级CPU功能(例如推测)无济于事。

  • 因为必须按照1条管道的顺序进行操作,所以多个CPU并没有帮助。

  • I / O指令不会与内存或寄存器交互,因此缓存/ MMX / SSE / AVX / EVEX不会做任何事情,只能帮助您确定要沿管道发送的内容。

因此,我真的不认为您可以使用现代x86 CPU在18GHz上实现“比特爆炸”,甚至无法做到3Ghz。如果HDMI接口没有最低速度,刷新率可能会非常低。

但是您会看到为什么专用硬件驱动接口。

无论如何,当您的CPU连接到总线时,仍然需要某种最低限度的硬件来进行连接,并且该硬件必须与该总线交换相同的“语言”或协议才能与CPU交互。对于诸如Commodore 64及其类似产品的旧系统,它具有诸如“多功能接口适配器”或“复杂接口适配器”之类的设备-CPU会对该芯片进行读/写操作以获取“端口”的状态(已连接)并出现在CPU总线上),并且该芯片将物理连接到背面物理端口或主板插槽中的引脚。

对于现代x86 CPU,现在最接近的是PCI-E,并且PCI-E控制器现在已内置在CPU中,但属于芯片组。因此,您仍然需要能够接收PCI-E信号并将其至少转换为HDMI信号的设备。

VGA是另一回事


这是一个了不起的答案。非常感谢您清楚地解释它!
温迪勋爵'18

1

不,它不能。如果没有内置图形单元,则与这些端口之间没有物理连接。您需要某种连接到该端口的硬件,才能使该端口真正可用。


1

我认为您的朋友赢了赌注。

通过HDMI或其他物理接口输出实际视频需要做两件事:

  1. 产生连续的视频帧
  2. 通过视频连接器传输帧。

与CPU本身无法合理完成的实际硬件端口通信是任务。

考虑到您期望通过HDMI端口的实际输出,这有两个原因,并非仅通过CPU即可完成:

  1. 渲染视频输出的每一帧都需要重复进行大量的计算。CPU 可以完成这项工作,但是这会大大妨碍其执行“日常工作”的能力,从而导致系统运行缓慢。GPU是专门为此类工作而构建的。
  2. 将视频帧的数字表示转换为将其发送到物理端口所需的信号,需要对该端口进行硬件定制。CPU旨在在许多不同的系统中工作,并且无法控制可能需要使用的物理视频端口。这使得纯CPU无法端到端地处理生成视频帧通过物理端口输出视频帧的任务。甚至包括内置GPU的现代CPU都依赖于主板上提供的其他组件来输出视频,从技术上讲,这两部分一起构成了图形卡。

显然,CPU可以执行任务1,但任务2需要完成其他硬件。在现代计算机中,这就是图形适配器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.