Training

Similar documents
1 CPU

P4V88+_BIOS_CN.p65

P4VM800_BIOS_CN.p65

Ps22Pdf

投影片 1

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

Ác Åé å Serial ATA ( Sil3132) S A T A (1) SATA (2) BIOS SATA (3)* RAID BIOS RAID (4) SATA (5) SATA (a) S A T A ( S A T A R A I D ) (b) (c) Windows XP

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot

Abstract arm linux tool-chain root NET-Start! 2

Bus Hound 5

Serial ATA ( nvidia nforce4 Ultra/SLI)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 6 (4) S A T A... 9 (5) S A T A (6) Micro

Chapter #

投影片 1

例 如, 一 个 含 有 2000 个 记 录 的 文 件, 每 个 磁 盘 块 可 容 纳 250 个 记 录, 则 该 文 件 包 含 8 个 磁 盘 块 然 后 对 该 文 件 作 二 路 归 并 的 外 排 序, 每 次 往 内 存 读 入 两 个 磁 盘 块, 排 序 后 再 写 回 磁

MSAC-EX1

目 录

相 关 知 识 1 计 算 机 工 作 原 理 1946 年 2 月, 世 界 上 第 一 台 电 子 计 算 机 ENIAC (Electronic Numerical Integrator And Computer, 电 子 数 字 积 分 计 算 机 ) 诞 生 于 美 国 宾 夕 法 尼 亚

audiogram3 Owners Manual

Microsoft Word - 封面.doc

1 o o o CPU o o o o o SQL Server 2005 o CPU o o o o o SQL Server o Microsoft SQL Server 2005

r_09hr_practical_guide_kor.pdf

K7VT2_QIG_v3

L29

典型自编教材

HighPoint产品的FAQ手册

Guide to Install SATA Hard Disks

Serial ATA ( Nvidia nforce430)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 6 (4) S A T A... 9 (5) S A T A (6) Microsoft Win

untitled

03243AA_CH05.indd

IT (1) IDE... 2 (2) BIOS IDE RAID... 3 (3) RAID BIOS RAID... 5 (4) R A I D (5) ID E RA ID... 15

untitled


<4D F736F F D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6BFBCCAD4B4F3B8D92E646F63>

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

逢甲大學

《计算机应用基础》学习材料(讲义)

. I/O Third Generation Input Output 3GIO PCI Express 3D 10GHz CPU 1Gb Gbps QoS PCI. PCI Express PCI 10 AGP PCI-X HyperTransport PCI 133MB Mu

水晶分析师

(Guangzhou) AIT Co, Ltd V 110V [ ]! 2

Windows 98 / Windows Me! PC!"#$%& 3!"#$% PC! PC!"#$ PC!"!"#$%&'() 1!"#$ PC! 2!"#$%&'()*+ PC!"#$ PC =EPCMCIAF=!"!! PC!"#$%&'()*+,-. 2 =XXXXXXXX XXXXXXX

2005.book

ARM JTAG实时仿真器安装使用指南

C35_RG_E.book

(Quad-Core Intel Xeon 2.0GHz) ()(SAS) (Quad-Core Intel Xeon 2.0GHz) (Windows )(Serial ATA) (Quad-Core Intel Xeon 2.0GHz) (Linux)(Serial ATA)

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20%

Ác Åé å Serial ATA ( nvidia nforce4 SLI) S A T A (1) SATA (2) BIOS SATA (3)* RAID BIOS RAID (4) SATA (5) SATA (a) S A T A ( S A T A R A I D ) (b) (c)

Cube20S small, speedy, safe Eextremely modular Up to 64 modules per bus node Quick reaction time: up to 20 µs Cube20S A new Member of the Cube Family

untitled

CONTENTS Chapter - Introduction Chapter 2 - Hardware Installation Chapter 3 - BIOS Setup Utility Chapter 4 - Supported Software M804

ebook140-9

T1028_Manual_KO_V3 0.pdf

Microsoft PowerPoint - CA_02 Chapter5 Part-I_Single _V2.ppt

Measurement Studio Expands Your Test and Measurement Programming Power

ebook35-14

第五章 重叠、流水和现代处理器技术

<4D F736F F D20CFB5B7D62DCFC2CEE749CAD4CCE22D3037C9CF>

PCM-3386用户手册.doc

投影片 1

ebook20-6

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

ebook140-8

HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD Leica MC170 HD

Ác Åé å Serial ATA ( nvidia nforce4-4x; nvidia nforce3 250/Ultra; nvidia nforce2 MCP RAID) S A T A (1) SATA (2) BIOS SATA (3)* RAID BIOS RAID (4) SATA

RAID RAID 0 RAID 1 RAID 5 RAID * ( -1)* ( /2)* No Yes Yes Yes A. B. BIOS SATA C. RAID BIOS RAID ( ) D. SATA RAID/AHCI ( ) SATA M.2 SSD ( )

工程师培训

untitled

A Preliminary Implementation of Linux Kernel Virus and Process Hiding

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

untitled

员工签到录

Oracle 4

P3B-F Pentium III/II/Celeron TM

CC213

USB解决方案.ppt

提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, / 11

Dell Vostro 14–3459 用户手册

Microsoft Word - 出國報告_BEMAC_.doc.docx

中文手册

Microsoft PowerPoint - C15_LECTURE_NOTE_11

通过动态路由协议实现链路备份

逢 甲 大 學

01

Microsoft Word _TC_Lemel_new.doc

作 業 系 統 簡 介 光 有 電 腦 硬 體, 會 不 容 易 使 用 必 須 要 有 適 當 的 程 式, 才 方 便 操 作 硬 體 衍 生 作 業 系 統 需 求 : 提 供 方 便 使 用 者 執 行 程 式 平 台 有 效 使 用 各 種 電 腦 硬 體 資 源 Jingo C. Lia


技 术 支 持 电 话 传 真 电 子 邮 件 网 址 CONVERGE PRO 880/880T/840T/8i, CON

CH01.indd

经华名家讲堂

实施生成树

Microsoft Word - 移动硬盘 2.5T USB doc

热设计网


目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

2 2 3 DLight CPU I/O DLight Oracle Solaris (DTrace) C/C++ Solaris DLight DTrace DLight DLight DLight C C++ Fortran CPU I/O DLight AM

如 果 此 設 備 對 無 線 電 或 電 視 接 收 造 成 有 害 干 擾 ( 此 干 擾 可 由 開 關 設 備 來 做 確 認 ), 用 戶 可 嘗 試 用 以 下 一 種 或 多 種 方 法 來 消 除 這 個 干 擾 : 重 新 調 整 與 確 定 接 收 天 線 方 向 增 大 此 設

ICD ICD ICD ICD ICD

Transcription:

计算机组织与系统结构 输入 / 输出系统与总线 I/O System and Bus ( 第二十讲 ) 程旭 2012.12.26

本将内容的地位? 本讲主题 : I/O 系统 网络 Processor Control Memory Input Input Memory Processor Control Datapath Output Output Datapath

本讲提纲 I/O 性能与测度 I/O 设备的特性 磁盘 总线引论 总线类型和总线操作 总线仲裁和如何设计总线仲裁器

H I G H D E N S I T Y 个人计算机剖视 Processor Cache/DRAM Controller Cache VRAM DRAM Audio Motion Video Add-in board VRAM DRAM PCI Bus SCSI LAN Base I/O Exp Bus Xface Graphics DRAM VRAM 3M ISA/EISA - MicroChannel Bridge Architecture

动机 : 谁关心 I/O? CPU 性能 : 每年增长 60% I/O 系统的性能受到机械延迟的限制 ( 磁盘 I/O) 每年改进 < 10% ( 每秒的输入输出量或 MB/sec) Amdahl 定律 : 系统加速比受制于最慢的部分! 10% IO & 10x CPU => 性能改进 5 倍 ( 损失 50%) 10% IO & 100x CPU => 性能改进 10 倍 ( 损失 90%) I/O 瓶颈 : 缩小程序执行中 CPU 部分的时间削减快速 CPU 的潜在性能

I/O 系统设计的论题 性能 可扩展性 (Expandability) Processor interrupts 失效时, 可用性 Cache Memory - I/O Bus Main Memory I/O Controller I/O Controller I/O Controller Disk Disk Graphics Network

I/O 系统性能 I/O 系统的性能与系统的许多部分有关 ( 受制于最弱的环节 ): CPU 存储系统 内部和外部 cache 主存 底层互联 ( 总线 ) I/O 控制器 I/O 设备 I/O 软件的速度 ( 操作系统 ) 软件使用 I/O 设备的效率 两种通用的性能指标 : 吞吐率 :I/O 带宽 响应时间 : 时延

简化的生产者 - 消费者模型 生产者 队列 消费者 吞吐率 : 消费者在单位时间内完成的任务数目 为了达到最高可能的吞吐率 : 消费者从不停顿 队列从不为空 响应时间 : 从某一任务进入队列开始, 到该任务被消费者完成为止 为了最小化响应时间 : 队列应该为空 服务者应该空闲

吞吐率与响应时间 响应时间 (ms) 300 200 100 20% 40% 60% 80% 100% 最大吞吐率的百分比

增大吞吐率 队列 消费者 生产者 队列 消费者 通常, 可以采用以下方法改进吞吐率 : 在瓶颈问题上, 增加硬件 减少负载相关时延 相对而言, 响应时间难以减少 : 最终受制于光速! ( 但目前, 距离光速的限制还很远!)

评价磁盘性能的 I/O 基准程序 超级计算机应用程序 : 大规模科学计算问题 事务处理 例如 : 航空订票系统和银行的 ATM 文件系统 例如,UNIX 文件系统

用途 存贮设备 : 磁盘 长期 非易失的存贮 在存贮层次中, 大容量 廉价 较慢的级别 磁道 (Track) 扇区 (Sector) 特性 传输率 容量 寻道时间 ( 平均 8 ms 左右 ) 定位延迟 (positional latency) 旋转延迟 (rotational latency) 大约每毫秒一个扇区 (5-15 MB/s) 成块 Gigabytes 三年四倍 柱面 (Cylinder) 盘片 (Platter) 磁头 (Head) 7200 RPM = 120 RPS => 8 ms per rev ave rot. latency = 4 ms 128 sectors per track => 0.25 ms per sector 1 KB per sector => 16 MB / s 响应时间 = 排队 + 控制器 + 寻道 + 旋转 + 传输 服务时间

磁盘的组织 盘片 (Platters) 磁道 (Track) 典型数据 ( 依赖于磁盘大小 ): 每面 500 至 2,000 磁道 每道 32 至 128 扇区 扇区是可以读写的最小单位 扇区 (Sector) 通常, 所有磁道包含相同数量的扇区 恒定位密度 : 在外围磁道可以记录更多的扇区

磁盘的响应延迟 外磁道 内磁道 扇区 磁头 盘片 磁盘响应延迟 = 排队时间 + 控制器时间 + 寻道时间 + 旋转时间 + 传输时间 4K 字节数据的传输 : 驱动臂 驱动器 寻道 :8 ms 以下旋转 :4.2 ms @ 7200 rpm 传输 :1 ms @ 7200 rpm

磁盘特性 柱面 : 在给定时刻所有盘面的所有位于磁头下面的磁道所构成的柱面 读 / 写数据过程包括三个阶段 : 寻道时间 : 将盘臂定位到正确的磁道上 旋转时间 : 旋转盘片, 使得所需的扇区位于读 / 写磁头下 ; 传输时间 : 传输读写磁头下的一块位流 ( 扇区 ) 工业界报告的平均寻道时间 : 通常为 :8 ms 至 12 ms ( 所有可能寻道的时间总和 ) / ( 所有可能的寻道情况总数 ) 由于磁盘访问的局部性, 通常实际的寻道时间为 : 仅为广告数值的 25% 至 33% Head Track Sector Cylinder Platter

旋转时间和传输时间 旋转时间 大多数磁盘的转速为 3,600 至 7200 RPM 每转动一周约需要 16 ms 至 8 ms 每转动半周所需时间为 8 ms 至 4 ms 传输时间是下列参数的函数 : 传输大小 ( 通常为一个扇区 ): 1 KB / sector 旋转速度 : 3600 RPM 至 7200 RPM 记录密度 : 一个磁道上每英寸记录的位数 典型数值 : 每秒 2 至 12 MB

存贮技术的驱动力 主流计算模式的驱动 五十年代 : 批处理到在线处理的转变 九十年代 : 集中处理到普及计算的转变 计算机无处不在 : 电话 电子书籍 汽车 摄像机 全球性光纤网络及无线网络 存贮工业的成效 : 嵌入式存贮 更小 更便宜 更可靠 更低功耗 数据使用 高容量 层次式管理存储系统

1956 IBM Ramac ~ 七十年代早期 Winchester 针对大型机开发, 专用接口 在大小上不断缩小 :27 in. 至 14 in. 七十年代 5.25 英寸软盘 出现工业标准磁盘接口 ST506, SASI, SMD, ESDI 历史回顾 八十年代早期 个人计算机和第一代工作站 八十年代中期 Client/server 计算 基于文件服务器的集中存储 加速磁盘的小型化 : 8 英寸至 5.25 英寸 巨大的磁盘驱动器市场成为现实 工业标准 : SCSI IPI IDE 在 PC 市场, 采用 5.25 英寸驱动器, 专用接口寿终正寝

历史回顾 八十年代末 / 九十年代初 : 膝上机 笔记本电脑 ( 掌上机 ) 3.5 英寸 2.5 英寸 (1.8 英寸 ) 大小加上容量驱动市场, 而非性能 目前, 带宽改进 :40%/ 年 来自 DRAM PCMCIA 卡中 flash RAM 的挑战 仍然太贵,Intel 承诺降低成本但还没有兑现 每立方英寸上兆字节, 还不能另人满意 光盘性能尚不理想, 但有小的生存空间 (CD ROM)

磁盘历史 ( 绪 ) 1989: 63 Mbit/sq. in 60,000 MBytes 1997: 1450 Mbit/sq. in 2300 MBytes 1997: 3090 Mbit/sq. in 8100 MBytes source: New York Times, 2/23/98, page C3, Wakers of disk drives crowd even more data into even smaller spaces

处理器接口 处理器接口 中断 存储器映射 I/O I/O 控制结构 轮询 (Polling) 中断 (Interrupts) 直接存储器访问 (DMA) I/O 控制器 I/O 处理器 容量 访问时间 带宽 互联 总线

I/O 接口 独立 I/O 总线 CPU Memory 存储器总线 Interface Peripheral Interface Peripheral 独立的 I/O 指令 (in,out) I/O 和存储器传输的联线不同 公共存储器 & I/O 总线 CPU VME bus Multibus-II 40 Mbytes/sec ( 乐观 ) Memory Interface Interface 10 MIPS 处理器使该总线完全饱和! Peripheral Peripheral

存储器映射 I/O CPU 单存储器 &I/O 总线没有独立的 I/O 指令 ROM Memory Interface Interface RAM CPU Peripheral Peripheral $ I/O L2 $ 存储器总线 I/O 总线 Memory Bus Adaptor

可编程 I/O ( 轮询 ) CPU Memory IOC 数据是否准备好? yes no 若忙就循环等待不能很有效地利用除非设备非常快! device 读数据 但需要不断检测 I/O 存数据 I/O 工作可以分散到计算代码之中 done? yes no

中断驱动数据传输 Memory CPU IOC (1) I/O 中断 (2) 保存 PC add sub and or nop 用户程序 device 用户程序仅在实际传输中才暂停 以每 1ms 一次的速率传输 1000 次 : 1000 次中断 ( 每 2 微秒一次中断 ) 1000 次中断服务 ( 每次 98 微秒 ) = 0.1 CPU 秒 (3) 中断服务地址 (4) read store... rti 存储器 中断服务例程 设备传输率 = 10 MBytes/sec => 0.1 x 10-6 sec/byte => 0.1 sec/byte => 1000 bytes = 100 sec 1000 次传输 x 100 sec = 100 ms = 0.1 CPU seconds 离设备传输率还有很大空间! 中断开销的 1/2

直接存储器访问 (DMA) CPU 向 DMAC 发送开始地址 方向 ; 然后, 发射 开始 命令 CPU 以每毫秒一次的速率完成 1000 次传输的时间 : 1 DMA 建立时间 50 sec 1 次中断 2 sec 1 次中断服务 48 sec 0.0001 秒的 CPU 时间 0 ROM Memory DMAC IOC 存储器映射 I/O RAM device Peripherals DMAC 向外设控制器提供握手信号, 向存储器提供存储地址和握手信号 n DMAC

输入 / 输出处理器 CPU Mem IOP 主存总线 D1 D2... I/O 总线 Dn 目标设备 命令在哪里 (1) CPU IOP (4) (2) 向 IOP 发射指令 完成后中断 OP Device Address 在存储器中查找命令 (3) 存储器 OP Addr Cnt Other 设备与存储器之间的数据传送由 IOP 直接控制 IOP 偷取存储器周期 做什么 数据放在哪里多少 特殊请求

与处理器体系结构的关系 I/O 指令已经基本消失了 提高处理器性能增设的 cache 提出新的问题 冲洗 CACHE 非常费时, 而 I/O 可能污染 cache 可以从共享存储多处理器的 监听 (snooping) 策略借鉴解决方案 虚拟存储器对 DMA 提出新问题 一些 Load/store 结构可能要求原子性操作 装入锁定 (load locked) 条件存储 (store conditional) 处理器难以进行上下文切换 (context switch)

I/O 设备的类型和特征 行为 : 一个 I/O 设备如何工作? 输入设备 : 只读 输出设备 : 只写, 不能读 存贮设备 : 可以重读, 通常也可重写 合作对象 : 在 I/O 设备的另一方要么是人, 要么是机器 要么是输入设备传入数据, 要么是输出设备读取数据 数据传输率 数据可以传送的最大速率 在 I/O 设备和主存之间 或者在 I/O 设备与 CPU 之间

I/O 设备实例设备行为合作方数据传输率 (KB/sec) 键盘输入人 0.01 鼠标输入人 0.02 行式打印机输出人 1.00 激光打印机输出人 100.00 图形显示器输出人 30,000.00 LAN 输入或输出机器 200.00 软盘存贮机器 50.00 光盘存贮机器 500.00 磁盘存贮机器 2,000.00

可靠性与可用性 (Reliability and Availability) 常被混淆的两个概念 可靠性 : 是否有部件失效? 可用性 : 是否用户还可以正确使用系统? 可用性可以通过增加硬件来改进 : 例如 : 存储器中增加 ECC 可靠性只能通过下列方法改进 : 改善使用环境状态 建造更加可靠的元器件和部件 减少系统使用的元器件和部件数 可以通过使用低成本 低可靠性的部件来改进可用性

磁盘阵列 一种磁盘存储的新组织 大量容量小 价廉的磁盘构成的阵列 通过使用很多磁盘驱动器来提高潜在吞吐率 : 数据分布在多个磁盘上 对不同磁盘进行多次访问 可靠性比单个磁盘更低 但是可以通过增加冗余磁盘改进可用性, 可以利用冗余信息重建丢失信息 MTTR: 平均修复时间, 小时级别 MTTF: 平均无故障时间, 三年至五年

网络存贮 磁盘大小逐步缩小 14" 10" 8" 5.25" 3.5" 2.5" 1.8" 1.3"... 基于磁盘阵列的高带宽磁盘系统 网络提供了更好的物理和逻辑接口 : 独立的 CPU 和存贮系统! 在高速网络上的高性能存贮服务 网络文件服务 支持远程文件访问的操作系统结构 3 Mb/s 10Mb/s 50 Mb/s 100 Mb/s 1 Gb/s 10 Gb/s 网络的持续高带宽传输能力 网络带宽逐步增加

磁盘阵列的制造上优势 磁盘产品系列 常规 : 4 种磁盘设计 3.5 5.25 10 14 低端 高端 磁盘阵列 : 1 种磁盘设计 3.5

阵列的可靠性 N 个磁盘的可靠性 = 1 个磁盘的可靠性 N 50,000 小时 70 磁盘 = 700 小时 磁盘系统的平均无故障时间 : 从 6 年跌至 1 个月! 没有冗余的阵列在使用中太不可靠! 可与访问过程并行进行重构的热备份 : 可以达到很高的媒体可用性

使用 DRAM 的二级存储 可以按两种方式使用 DRAM 作为第二级存储 : 固态盘 (Solid state disk) 扩展存储 固态盘 : 象磁盘一样进行操作, 但是 更快 成本更高 使用电池来保证系统信息不会丢失 扩展存储 : 允许数据块从主存移进和移出的较大存储器

光盘 缺点 是只读介质 优点 : 可移动 制造成本低 在大型存贮备份方面, 具有与新型磁带技术竞争的潜力

I/O 系统小结 磁盘 I/O 基准程序 : 超级计算机应用程序 : 主要关心数据传输率 事务处理 : 主要关心 I/O 速率 文件系统 : 主要关心文件访问 磁盘访问时间包括以下三部分 : 寻道时间 : 广告数值为 12 -- 20ms, 现实情况可能更低 旋转时间 : 7200RPM:4.2ms;5400 RPM: 5.6 ms 传输时间 : 每秒 2 -- 4 MB

总线 : 将 I/O 与处理器和存储系统连接起来 Processor Control Memory Input Datapath Output 总线是一组共享的通信链路 它使用一组线路将多个子系统连接起来

总线的优点 Processor I/O Device I/O Device I/O Device Memory 多功能性 : 易于增加新设备 外设可在多个使用相同总线标准的计算机系统之间移动 低成本 : 可以以多种方式共享使用单一一组线路

总线的缺点 Processor I/O Device I/O Device I/O Device Memory 可能导致通信瓶颈 总线的带宽制约了最大 I/O 吞吐率 总线最高速度主要受制于 : 总线的长度 总线上设备的数目 需要支持多种设备的范围, 特别是这些设备具有 : 时延差异很大 数据传输率差异很大

总线的典型组织 Control Lines Data Lines 控制线 : 信号请求和应答 指示数据线上的信息类型 数据线在源设备和目的设备之间传递信息 : 数据和地址 复杂命令 一个总线事务包括两部分 : 发送地址 接收或发送数据

主设备与从设备 Bus Master Master send address Data can go either way Bus Slave 一次总线事务包括两部分 : 发送地址 接收或发送数据 主设备 (Master) 是 通过发送地址来启始总线事务的设备 从设备通过下列过程对下述地址产生反应 : 如果主设备请求数据, 就发送数据给主设备 如果主设备要发送数据, 就接收来自主设备的数据

输出操作 这里输出是指处理器发送数据到 I/O 设备 第一步 : 请求存储器 处理器 I/O 设备 ( 磁盘 ) 第二步 : 读存储器 处理器 I/O 设备 ( 磁盘 ) 控制 ( 存储器读请求 ) 数据 ( 存储器地址 ) 控制数据 存储器 存储器 第三步 : 向 I/O 设备发送数据 控制 ( 设备写请求 ) Processor I/O 设备 ( 磁盘 ) 数据 (I/O 设备地址, 后跟数据 ) 存储器

输入操作 这里输入是指处理器从 I/O 设备接收数据 第一步 : 请求存储器 处理器 控制 ( 存储器写请求 ) 数据 ( 存储器地址 ) 存储器 I/O 设备 ( 磁盘 ) 第二步 : 接收数据 处理器 I/O 设备 ( 磁盘 ) 控制 (I/O 读请求 ) 数据 (I/O 设备地址, 后跟数据 ) 存储器

总线类型 处理器 - 存储器总线 ( 面向设计 ) 距离短 速度快 仅需要与存储系统匹配 可达最大存储器到处理器带宽 直接与处理器相连 I/O 总线 ( 工业标准 ) 通常, 更长也更慢 需要与广泛的 I/O 设备匹配 与处理器 - 存储器总线或底板总线相连 单总线, 又称底板总线 ( 工业标准 ) 底板 (Backplane): 底盘 (chassis) 内的互联结构 允许处理器 存储器和 I/O 设备共存 成本优势 : 所有部件共享一条总线

具有单总线的计算机系统 : 底板总线 Processor Backplane Bus Memory I/O Devices 单总线 ( 底板总线 ) 用于 : 处理器与存储器通信 I/O 设备与存储器之间通信 优点 : 简单, 成本低 缺点 : 速度慢, 且总线可能是系统的主要瓶颈 示例 : IBM PC

双总线系统 Processor Processor Memory Bus Memory Bus Adaptor I/O Bus Bus Adaptor I/O Bus Bus Adaptor I/O Bus I/O 总线通过总线适配器接入处理器 - 存储器总线 : 处理器 - 存储器总线 : 主要用于处理器 - 存储器之间的通信 I/O 总线 : 为 I/O 设备提供扩展槽 Apple Macintosh-II NuBus: 处理器 存储器, 以及一些可选 I/O 设备 SCCI Bus: 其他的 I/O 设备

三总线系统 Processor Processor Memory Bus Memory Backplane Bus Bus Adaptor Bus Adaptor Bus Adaptor I/O Bus I/O Bus 少量底板总线接入处理器 - 存储器总线 处理器 - 存储器总线用于处理器 - 存储器之间的通信 I/O 总线连接到底板总线 优点 : 处理器总线上的负载急剧减少

同步和异步总线 同步总线 : 在控制线中包括一个时钟线 采用与时钟有关的一组固定通信协议 优点 : 使用的逻辑非常少, 可以以非常高的速度运行 缺点 : 异步总线 : 总线上的每个设备都必须以相同的时钟频率运行 为了避免时钟扭斜, 如果这种总线的速度很快, 那么它就不能太长 它没有时钟驱动 可以适用于很广泛的设备 它很容易增长, 而不需考虑时钟扭斜问题 需要握手协议 l

握手协议 ReadReq 1 2 Data Address 2 Ack DataRdy 3 处理器从存储器读数据 Data 4 6 5 4 6 7 三条控制线 ReadReq: 指示对存储器有一次读请求 同时, 地址被放置在数据线上 DataRdy: 指示现在在数据线上的数据已经准备好 同时, 数据被放置在数据线上 Ack: 向另一方应答 ReadReq 或者 DataRdy

增加总线带宽 独立的与多路复用的地址和数据线 如果提供了独立的地址和数据线, 那么就可以在一个总线周期同时传送地址和数据 成本 : (a) 需要更多的总线线路 ; (b) 增加复杂性 数据总线宽度 : 通过增加总线宽度, 传输多个字的信息只需要较少的总线周期 例如 : SPARCstation 20 的存储总线为 128 位宽 成本 : 需要更多的总线线路 成块传输 (Block transfers) 允许总线在连续的多个总线周期传输多个字的信息 仅仅在开始的时候需要提供一次地址 总线在最后一个字传送完毕之前并不释放总线 成本 :(a) 增加了复杂性 (b) 降低了请求的响应时间

获得对总线的访问权 Bus Master Control: Master initiates requests Data can go either way Bus Slave 在总线设计中, 最重要的一个论题 : 需要使用某总线的设备是如何获得并保留对该总线的使用权的? 通过主 - 从安排, 可以避免混乱 : 只有总线主设备才能够控制对总线的访问 : 该主设备发起并控制所有的总线请求 从设备对读和写请求发出响应 最简单的一个系统 : 处理器是唯一的总线主设备 所有的总线请求都必须受到处理器的控制 主要缺陷 : 在每次总线事务中都必须有处理器参与

多个潜在总线主设备 : 需要仲裁 总线仲裁策略 : 希望使用总线的总线主设备发出总线请求 该总线主设备在获得请求许可之前不能使用该总线 该总线主设备在使用总线结束之后必须向仲裁器发出信号 总线仲裁策略通常需要平衡以下两个要素 : 总线优先权 : 最高优先权的设备必须被最先服务 公平 : 即使是最低优先权的设备也不能永远得不到总线服务 总线仲裁策略大致可分为如下四类 : 基于自测的分布式仲裁 : 每个希望使用总线的设备都将代表自身的标志码放置在总线上 ; 基于冲突监测的分布式仲裁 : 以太网使用该策略 ; 菊花链 (Daisy chain) 仲裁 集中 并行仲裁

菊花链总线仲裁策略 Device 1 Highest Priority Device 2 Device N Lowest Priority Bus Arbiter Grant Grant Grant Release Request 优点 : 简单 缺点 : 不能保证公平 : 低优先级的设备可能永远得不到服务 grant 信号会限制总线的速度

使用单一总线仲裁器的集中式仲裁 ReqA ReqB ReqC Clk Arbiter Highest priority: ReqA Lowest Priority: ReqC GrantA GrantB GrantC Clk ReqA ReqB GrA GrB

操作系统的职责 操作系统可以被看为以下两部分的接口 : I/O 硬件与请求 I/O 的程序 I/O 系统的三大特征 : I/O 系统被使用该处理器的多个程序共享 I/O 系统通常使用中断 ( 外部产生的意外事件 ) 来通信有关 I/O 操作的信息 中断必须由操作系统处理, 中断将导致系统进入管态 (supervisor mode) 对 I/O 设备的低级控制非常复杂 : 管理一组并发事件 正确控制设备的需求必须非常详细

对操作系统的需求 对共享 I/O 资源提供保护 保证用户程序只能访问该用户有权访问的那部分 I/O 设备 提供访问设备的一种抽象 : 提供处理低级设备操作的例程 处理 I/O 设备产生的中断 提供公平访问共享 I/O 资源的策略 所有用户程序必须平等访问 I/O 资源 对访问进行调度以求增大系统的吞吐率

OS 和 I/O 系统通信需求 操作系统必须能够防止 : 用户程序与 I/O 设备之间的直接通信 如果用户程序能够直接对 I/O 进行操作, 那么 就不能提供对共享 I/O 资源的保护了 需要三种类型的通信 : OS 必须能够给 I/O 设备提供命令 当 I/O 设备完成操作或遇到错误时, 它必须能够通报 OS 数据必须在存储器和 I/O 设备之间传输

给 I/O 设备发送命令 可以使用两种方式对 I/O 设备寻址 : 专用 I/O 指令 存储器映像 I/O 专用 I/O 指令指明 : 设备号和命令字 设备号 : 处理器通过一组连线 ( 这组连线是 I/O 总线的一部分 ) 与设备进行通信 命令字 : 它通常在总线的数据线上发送 存储器映像 I/O: 地址空间的一部分分配给 I/O 设备 对这些地址进行读和写就被解释为对给 I/O 设备的命令 防止用户程序直接发送 I/O 操作 : I/O 地址空间受到地址变换机制的保护

I/O 设备通报 OS 当发生下列情况时 OS 需要知道 : I/O 设备完成了某一操作 I/O 操作遇到了错误 可以通过两种不同的方式实现 : 轮询 (Polling): I/O 设备将信息放置在状态寄存器中 ; OS 定期检测状态寄存器 I/O 中断 : 每当 I/O 设备需要处理器关注时, 它就中断处理器继续进行正在处理的工作

I/O 中断 I/O 中断就像一般的意外事件, 只是 : I/O 中断是异步的 需要进一步传送信息 相对于指令执行而言, I/O 中断是异步的 : I/O 中断并不与任何指令相关联 I/O 中断并不防止任何指令继续执行 我们可以在我们自己认为合适的时候处理这种中断 I/O 中断比一般意外事件更加复杂 : 需要传达产生中断的设备的身份信息 中断请求具有不同的紧急性 需要对中断请求优先排队

中断逻辑 检测和对中断请求同步 忽略被废止的中断 (masked off) 对未决的中断请求排序 创建中断微序列地址 ( microsequence address) 对中断微序列提供信号 : useq. addr & select logic Interrupt Priority Network : Synchronizer Circuits Async interrupt requests Interrupt Mask Reg Sync. Inputs Q D Q D Async. Inputs Clk Clk

程序中断 / 意外事件硬件 硬件中断服务 : 保存 PC ( 或在流水机器中多个 PC 值 ) 抑制正在被处理的中断 转移到中断服务例程 选项 : 保存状态 保存寄存器 保存中断信息 改变状态 改变操作模式 获取中断信息 I/O 中断的一个有利特点 : 异步性 : 不与指定指令相关联 可以在流水线的最方便的时候来处理它!

从程序员来看 main program Add Div Sub 中断目标地址选项 : 通用 : 转移到所有中断的公共地址, 然后软件对原因进行译码并指出下一步做什么 专用 : 根据中断类型和 / 或级别自动转移到不同的地址 向量化中断 (1) Restore processor status/state interrupts request (e.g., from keyboard) (2) Save PC and branch to interrupt target address Service the (keyboard) interrupt Save processor status/state (3) get PC

把 CPU 从 I/O 处理中解放出来 :DMA CPU sends a starting address, direction, and length count to DMAC. Then issues "start". Direct Memory Access (DMA): External to the CPU Act as a maser on the bus Transfer blocks of data to or from memory without CPU intervention CPU Memory DMAC IOC device DMAC provides handshake signals for Peripheral Controller, and Memory Addresses and handshake signals for Memory.

把 CPU 从 I/O 处理中解放出来 :IOP CPU Mem IOP main memory bus I/O bus D1 D2... Dn target device where cmnds are (1) Issues instruction to IOP CPU IOP (3) Device to/from memory transfers are controlled by the IOP directly. (4) IOP interrupts CPU when done (2) memory IOP steals memory cycles. OP Device Address IOP looks in memory for commands what to do OP Addr Cnt Other where to put data how much special requests

总线小结 三种类型总线 : 处理器 - 存储器总线 I/O 总线 底板总线 总线总裁策略 : 菊花链仲裁 : 不能保证公平性 集中并行仲裁 : 需要中央仲裁器 I/O 设备通报操作系统 : 轮询 : 浪费一些处理器时间 I/O 中断 : 与一些意外事件类似, 只是它是异步的 把 CPU 从 I/O 处理中解放出来 Direct memory access (DMA) I/O processor (IOP)