计算机组成原理 外设,输入输出系统 (RV$6.9,唐第5章) llxx@ustc.edu.cn 1
1 计算机组成原理 外设,输入输出系统 (RV $6.9,唐第5章) llxx@ustc.edu.cn
1/O:printf(),getchar(),putchar()? #include Processor int main(void) FSB int ch; Graphics North Bridge SDRAM printf("Input a character:"); PCI 33 MHz Slots /read a cD→oO IDE character from USB South Bridge the standard input SA stream * Super ch getchar(); COM1 putchar(ch); COM2 return 0;
I/O:printf(),getchar(),putchar()? #include int main(void) { int ch; printf("Input a character:"); /* read a character from the standard input stream */ ch = getchar(); putchar(ch); return 0; }
KB:位置码 Key Cap d f 8 9 b Spring 哒哒嗌嗒 Mechanical switch 4 5 6 7 Conductor-coated membrane 0 2 Logical arrangement of keys Contacts Membrane switch 编码键盘:字符码(ASCI) 非编码键盘:位置码(POS机)
KB:位置码 编码键盘:字符码(ASCII) 非编码键盘:位置码(POS机)
I/F:Keyboard-to-processor connection Input interface Data Data Address KBD DATA Encoder Keyboard Processor R/W KBD STATUS circuit switches Master-ready Valid Slave-ready keyboard data 15 87 0 interrupt enable bit KBDR 151413 ready bit KBSR interrupt signal to processor
I/F:Keyboard-to-processor connection
Input from Keyboard:步骤 USTC When a character is typed: KB Data:its ASCll code is placed in bits [7:0]of KBDR .(bits [15:8]are always zero) - the“ready bit'”(KBSR[15])is set to1 keyboard is disabled(可屏蔽)-any typed characters will be ignored keyboard data 15 87 0 interrupt enable bit KBDR 151413 0 ready bit KBSR interrupt signal ·When KBDR is read: to processor KBSR[15]is set to 0 keyboard is enabled INTR or轮询 一多任务?
Input from Keyboard:步骤 • When a character is typed: – KB Data:its ASCII code is placed in bits [7:0] of KBDR • (bits [15:8] are always zero) – the “ready bit” (KBSR[15]) is set to 1 – keyboard is disabled(可屏蔽) -- any typed characters will be ignored • When KBDR is read: – KBSR[15] is set to 0 – keyboard is enabled • INTR or 轮询 – 多任务?
本章内容 》 地址总线 ·O系统的工作原理 数据总线 CPU -VO系统的构成 主存储器 Read ·接口,端口,编址 write ready 数据传输:“通信协议 控制总线 。9 物理层、数据链路层:总线 连接其它外围设备 一数据传送方式:串制并,单字节制突发 -收发同步方式 ·应用层:数据传输控制方式(编程模型) -程序查询、中断、DMA 。 /O设备的工作原理 一键健盘、显示器、打印机等 6
6 本章内容 • I/O系统的工作原理 – I/O系统的构成 • 接口,端口,编址 – 数据传输:“通信协议” • 物理层、数据链路层:总线 – 数据传送方式:串/并,单字节/突发 – 收发同步方式 • 应用层:数据传输控制方式(编程模型) – 程序查询、中断、DMA • ... • I/O设备的工作原理 – 键盘、显示器、打印机等
l/O:CPU寄存器或内存与外设间数据交换 现代计算机组成设备 -Von Neumann机组成 Processor Peripheral device ·输入设备:keyboard、mouse、 touchscreen、scanner、digital Graphics PCI bridge Main memory camera、microphone、senser PCI bus ·输出设备:displayer、printer、. acuator Connectivity:Network SATA,SAS Etheret or SCSI USB hub controller data rate keyboard:100 bytes/sec Disk Printer Mouse Keyboard ·disk:30MB/s controller network:1 Mb/s-1 Gb/s Disk 如何访问/O设备? -接口组成 (软件、硬件、接口) -过程控制(查询,中断,DMA) 7
7 I/O:CPU寄存器或内存与外设间数据交换 • 现代计算机组成设备 – Von Neumann机组成 – Peripheral device • 输入设备:keyboard、mouse、 touchscreen、scanner、digital camera、microphone、senser • 输出设备:displayer、printer、 acuator • Connectivity:Network – data rate • keyboard: 100 bytes/sec • disk: 30 MB/s • network: 1 Mb/s - 1 Gb/s • 如何访问I/O设备? – 接口组成(软件、硬件、接口) – 过程控制(查询,中断,DMA)
/O系统组成 。软件: 设置计数、内存首址 一软件的主要任务: 启动外设 ·将数据输入至主机 。 N 将运算结果输出给用户 Ready? 实现/O系统和主机协同工作 一应用软件 传输一个数据 一操作系统 一设备驱动程序 修改计数、内存首址 N 传送完? 。硬件:设备,接口 END 8
8 I/O系统组成 • 软件: – 软件的主要任务: • 将数据输入至主机 • 将运算结果输出给用户 • 实现I/O系统和主机协同工作 – 应用软件 – 操作系统 – 设备驱动程序 • 硬件:设备,接口 Ready? N 传输一个数据 修改计数、内存首址 传送完? N END 设置计数、内存首址 启动外设
User Interface Resource /O接口 re rea 接口:部件之间的交接部分 硬件接口:连接电路 yes 软件接口:逻辑边界(数据结构) I/O接口 -指主机与外设之间设置的硬件电路及相应的软件控制 O接口的功能:模块化、标准化 1.CPU和外设命令转换 2.电平转换 3.设备选择 数据线 数据缓冲 设备选择 I数据线 寄存器DBR 电路 外 4.数据缓冲 控制 地址线 1命令 部 5.设备状态 CPU 命令线! 辑 设 6.错误处理 状态线」 设备状态 命令寄存器 状态 备 标记 和命令译码器
9 I/O接口 • 接口:部件之间的交接部分 – 硬件接口:连接电路 – 软件接口:逻辑边界(数据结构) • I/O接口 – 指主机与外设之间设置的硬件电路及相应的软件控制 • I/O接口的功能:模块化、标准化 1. CPU和外设命令转换 2. 电平转换 3. 设备选择 4. 数据缓冲 5. 设备状态 6. 错误处理
接口的类型 USTC 按数据传送方式分,有并行接口和串行接口。 -并行接口:一个字节或一个字的所有位同时传送,如Intel8255。 串行接口:一位一位传送,如Intel8251。 按功能选择的灵活性分,有可编程接口和不可编程接口。 可编程接口:可用程序来改变或选择接口的功能和操作方式(如Intel 8255、Intel8251). 不可编程接口:不能用程序来改变其功能,但可通过硬连线路逻辑来 实现不同的功能(如并行接口芯片Intel8212) 按通用性分类,有通用接口和专用接口。 -通用接口:可供多种外设使用,如Intel8255、8212。 专用接口:为某类外设或某种用途专门设计的,如Intel8279可编程键 盘/显示器接口;Intel8275可编程CRT控制器接口等。 按数据传送的控制方式分类,有程序型接口和DMA式接口 程序型式接口:用于连接速度较慢的设备,如键盘、打印机等,如 Intel8259。 DMA式接口:用于连接高速/O设备,如磁盘,常用Intel8237. 10
10 接口的类型 • 按数据传送方式分,有并行接口和串行接口。 – 并行接口:一个字节或一个字的所有位同时传送,如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