接口的类型 USTC 按数据传送方式分,有并行接口和串行接口。 -并行接口:一个字节或一个字的所有位同时传送,如Intel8255。 串行接口:一位一位传送,如Intel8251。 按功能选择的灵活性分,有可编程接口和不可编程接口。 可编程接口:可用程序来改变或选择接口的功能和操作方式(如Intel 8255、Intel8251). 不可编程接口:不能用程序来改变其功能,但可通过硬连线路逻辑来 实现不同的功能(如并行接口芯片Intel8212) 按通用性分类,有通用接口和专用接口。 -通用接口:可供多种外设使用,如Intel8255、8212。 专用接口:为某类外设或某种用途专门设计的,如Intel8279可编程键 盘/显示器接口;Intel8275可编程CRT控制器接口等。 按数据传送的控制方式分类,有程序型接口和DMA式接口 程序型式接口:用于连接速度较慢的设备,如键盘、打印机等,如 Intel8259。 DMA式接口:用于连接高速/O设备,如磁盘,常用Intel8237. 11
11 接口的类型 • 按数据传送方式分,有并行接口和串行接口。 – 并行接口:一个字节或一个字的所有位同时传送,如Intel 8255。 – 串行接口:一位一位传送,如Intel 8251。 • 按功能选择的灵活性分,有可编程接口和不可编程接口。 – 可编程接口:可用程序来改变或选择接口的功能和操作方式(如Intel 8255、Intel 8251)。 – 不可编程接口:不能用程序来改变其功能,但可通过硬连线路逻辑来 实现不同的功能(如并行接口芯片Intel 8212) • 按通用性分类,有通用接口和专用接口。 – 通用接口:可供多种外设使用,如Intel 8255、8212。 – 专用接口:为某类外设或某种用途专门设计的,如Intel 8279可编程键 盘/显示器接口;Intel 8275可编程CRT控制器接口等。 • 按数据传送的控制方式分类,有程序型接口和DMA式接口 – 程序型式接口:用于连接速度较慢的设备,如键盘、打印机等,如 Intel 8259。 – DMA式接口:用于连接高速I/O设备,如磁盘,常用Intel 8237
接口(interface)和端口(port) 。端口=接口寄存器 (数据、控制、状态.…) ·接口=摸块=N个端口+控制逻辑 7 数据线 数据缓冲 设备选择 1数据线 寄存器DBR 电路 地址线 1命令 外部 CPU 命令线 控制逻辑电路 设 状态线 设备状态 命令寄存器 状态 备 标记 和命令译码器 12
12 接口(interface)和端口(port) • 端口=接口寄存器(数据、控制、状态…) • 接口=模块 = N个端口+控制逻辑
/O端口编址方式 》 存储器映射MMIO:统一编址 一在主存储器的地址空间中划出某一区域专门作为外设地址区使用 - 使用通用的MOV或访存指令(load/store) 1 也可以访问/O接口 -Intel MCS-51、MIPS、ARM、RV等采用 0 Protection via page table IO ● 端口映射PMO:独立编址 OXXX班 /O端口和存储器独立编址 存储器 整个地址空间 ISA分别设立访存指令和/O指令 (in/out) FFFFH 由“选择”指示地址类型:MO 80x86采用 地址 地址 内存 0 CPU 地址 选择 0 地址 译码器 IO 地址 内存 选择外设 存储器YYYH CPU 选择 地址 地址外设 XXXXH 选择
13 I/O端口编址方式 • 存储器映射MMIO:统一编址 – 在主存储器的地址空间中划出某一区域专门作为外设地址区使用 – 使用通用的MOV或访存指令(load/store)也可以访问I/O接口 – Intel MCS-51、MIPS、ARM、RV等采用 – Protection via page table • 端口映射PMIO:独立编址 – I/O端口和存储器独立编址 – ISA分别设立访存指令和I/O指令(in/out) – 由“选择”指示地址类型:M/IO – 80x86采用
MMlO例:Keyboard example 》 Oxffffffff 1/0 Ox7fffffff processor Stack Keyboard Dynamic data a888634444 Data register 0xf0000000 Static data Control register R 0f0000004 0x10000000 Text/Program 0x400000 os getchar()月 reads an ASCII byte from keyboard and deposits it in$v0.$s0←0f0000000
MMIO例:Keyboard example