8086的系统总线不能直接与外设相连 。虽然系统总线是CPU与外部设备之间通信的重要通道,但外设通常不能直接连接到系统总线上,原因主要有以下几点:
- 信号转换 :CPU产生的信号通常与外设所需的信号格式不兼容。因此,需要一个中间媒介,即I/O接口(可能是一个电路板或一块小芯片),来转换这些信号。这个I/O接口负责把处理器的信号转换成外围设备能接受的另一种信号,同时也把外围设备的信号变换成处理器可以接受的形式。
- 可拓展性 :由于存在大量的外设,且新的外设可能不断出现,因此CPU采用总线技术来将所有外部设备捆绑在一起。这样,当需要添加新设备时,只需将其连接到总线上即可,而无需对CPU进行大量修改。如果直接将所有外设连接到系统总线上,将极大地限制系统的可拓展性。
- 冲突管理 :如果多个外设同时尝试与CPU通信,将会导致冲突。为了解决这个问题,引入了输入输出控制设备集中器(I/O Controller Hub,ICH)芯片。该芯片的作用是连接不同的总线,并协调各个I/O接口对处理器的访问。当处理器想与某个设备通信时,ICH会接到通知,然后提供相应的传输通道和其他辅助支持,并命令所有其他无关设备禁止交互。
- 端口访问 :在Intel的系统中,CPU与外部设备之间的通信是通过端口进行的。这些端口是位于I/O接口上的寄存器,用于存放控制命令、状态和数据。每个I/O接口电路都分配了若干个端口,这些端口通过独立的编号进行区分。CPU通过向特定的端口发送或接收数据来与外部设备进行通信。
综上所述,8086的系统总线不能直接与外设相连,而是通过I/O接口和端口等中间媒介进行通信。这种设计既保证了信号的兼容性,又提高了系统的可拓展性和冲突管理能力。