冯诺依曼体系结构计算机:CPU、ALU、存储器、输入输出设备
总线:
传统PC总线:CPU通过数据总线、地址总线和控制总线与外部设备进行通信,所有的外部设备都将连都这三条总线上,也就是说只有CPU和外部设备两个层次,效率肯定不行
现代PC总线:在intel的设计中,CPU、AGP和存储器接口连在了I/O北桥上,其他的传输速度较慢的设备则连接到I/O南桥上,包括CPU在内的所有硬件都加入了缓冲,缓冲区通常是容量小的、存取速度接近于上一层的,这样整个计算机性能就相对平衡了
I/O端口与访问控制:
端口:即I/O端口地址,CPU通过I/O端口地址来与端口通信
I/O控制器:包含了访问数据的数据端口、输出命令的命令端口和访问控制器执行状态的状态端口
端口编址:
1)统一编址:即存储器印象编址,将I/O控制器中的端口地址归入存储器寻址地址空间范围内,使用访问内存的命令即可访问
2)独立编址:将I/O控制器的寻址空间单独作为一个独立的地址空间(I/O地址空间),每个端口对应一个I/O地址,并使用独立的I/O指令来访问
在Linux下可以在 /proc/ioports 文件里看见各类端口的I/O地址范围