Answers:
毫无疑问,可以使用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信号的设备。
通过HDMI或其他物理接口输出实际视频需要做两件事:
与CPU本身无法合理完成的实际硬件端口通信是任务。
考虑到您期望通过HDMI端口的实际输出,这有两个原因,并非仅通过CPU即可完成:
显然,CPU可以执行任务1,但任务2需要完成其他硬件。在现代计算机中,这就是图形适配器。