计算机系统概论第八章

合集下载

08系统结构练习题

08系统结构练习题

第一章、概论1、在计算机系统的层次结构中,从低层到高层,各层相对顺序正确的是( )。

A .汇编语言机器级——操作系统机器级——高级语言机器级B .微程序机器级——传统机器语言机器级——汇编语言机器级C .传统机器语言机器级——高级语言机器级——汇编语言机器级D .汇编语言机器级——应用语言机器级——高级语言机器级2、直接执行微指令的是( )。

A .汇编程序B .编译程序C .硬件D .微指令程序3、在计算机的系统结构设计中,提高硬件功能实现的比例会( )。

A .提高硬件利用率B .提高系统的运行速度C .减少需要的存储器量D .提高系统的性能价格比4、在计算机的系统结构设计中,提高软件功能实现的比例会( )。

A .提高解题速度B .减少需要的存储器量C .提高系统的灵活性D .提高系统的性能价格比5、在CISC 中,各种指令的使用频度相差悬殊,大致有以下的结果。

大约有 (比例)的指令使用频度较高,占据了 (比例)的处理机时间。

名词解释:CPI 、 Amdahl 定律、局部性原理、透明性1、 计算机系统的Flynn 分类法是按什么来分类的,共分为哪几类,简要说明各类的特征。

2、如有一个经解释实现的计算机,可以按功能划分成4级。

每一级为了执行一条指令需要下一级的N 条指令解释。

若执行第一级的一条指令需K ns 时间,那么执行第2、3、4级的一条指令各需用多少时间。

4、用一台40MHZ 处理机执行标准测试程序,它含的混合指令数和相应所需的时钟周期数如下:求有效CPI 、MIPS 速率和程序的执行时间。

5、假设高速缓存Cache 的工作速度为主存的5倍,且Cache 被访问命中的概率为90%,那么采用Cache 后能使整个存储系统获得多高的加速币?6、如果某计算机系统有3个部件可以改进,则这三个部件经改进后的加速比分别为:S1=30,S2=20,S3=10。

(1)如果部件1和部件2改进前的执行时间占整个系统执行时间的比例都为30%,那么,部件3改进前的执行时间占整个系统执行时间的比例为多少,才能使3个部件都改进后的整个系统的加速比Sn 达到10?36%(2)如果3个部件改进前执行时间占整个系统执行时间的比例分别为30%、30%和20%,那么,3个部件都改进后系统的加速比是多少?未改进部件执行时间在改进后的系统执行时间中占的比例是多少?4.1,0.82指令类型 指令数 时钟周期数 整数运算 45000 1 数据传送 32000 2 浮点 15000 2 控制传送 8000 21、RISC思想的精华是。

计算机组成原理第二章(第三讲)

计算机组成原理第二章(第三讲)

[例16] 参见图2.6,已知两个不带符号的二进制整 数A = 11011,B = 10101,求每一部分乘积项aibj 的值与p9p8……p0的值。 请同学们自己完成。
本讲总结
1. 溢出及其检测方法 2.基本的二进制加/减法器(难点,熟练掌握)
理解并熟练掌握图2.3
3.十进制加法器 4.原码并行乘法(难点,掌握) 理解并掌握图2.6
[x]补=0.1011 , [x ]补 + [y ]补
[ x+y] 补
无进位
[y]补=0.1001 0.1011 0.1001 1.0100
有进位
两正数相加,结果为负,显然错误。
--运算中出现了“上溢”
[又例] x=+0.1011, y=+0.0010, 求x+y。
[解:]
[x]补=0.1011 , [x]补 + [y]补 无进位
计算机组成原理
3
2.2.3 溢出概念与检验方法
两个正数相加,结果为负(即:大于机器
所能表示的最大正数),称为上溢。 两个负数相加,结果为正(即:小于机器 所能表示的最小负数),称为下溢。 运算出现溢出,结果就是错误的。
[例12] x=+0.1011, y=+0.1001,求x+y。
[解:]
计算机组成原理?第一章计算机系统概论?第二章运算方法和运算器?第三章存储系统?第四章指令系统?第五章中央处理器?第六章总线系统?第七章外围设备?第八章输入输出系统?第九章并行组织目录计算机组成原理3?上一讲回顾1
计算机组成原理
目录


☼ ☼ ☼ ☼ ☼ ☼ ☼
第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章
现在我们计算一个n位的行波进位加法器的时间延迟。 假如采用图2.3(a)所示的一位全加器并考虑溢出检测,那么n 位行波进位加法器的延迟时间ta为 ta=n·2T+9T=(2n+9)T (2.24) 9T为最低位上的两极“异或”门再加正溢出“异或”门 的总时间,2T为每级进位链的延迟时间。 当不考虑溢出检测时,有 ta=(n-1)·2T+9T (2.25) ta意味着加法器的输入端输入加数和被加数后,在最坏 情况下加法器输出端得到稳定的求和输出所需的最长时间。 显然这个时间越小越好。注意,加数、被加数、进位与和数 都是用电平来表示的,因此,所谓稳定的求和输出,就是指 稳定的电平输出。

计算机操作系统概述

计算机操作系统概述

计算机操作系统概述计算机系统概论计算机系统电⼦数字计算机,是⼀种能够⾃⾏按照已设定的程序进⾏数据处理的电⼦设备,是软件与硬件相结合、⾯向系统、侧重应⽤的⾃动化求解⼯具,计算机技术迅猛发展,从科学计算、数据处理等应⽤领域,迅速扩展到实时控制、辅助设计、智能模拟等诸多领域,今天计算机⽆所不在,深⼊社会⽣活的各个领域,深深改变了当今⼈类社会的组织⾏为计算机系统的组成计算机系统包括硬件⼦系统和软件⼦系统;硬件是指借助电、磁、光、机械等原理构成的各种物理部件的有机组合,是系统⼯作的实体,硬件系统有 CPU,主存储器,I/O 控制系统,外围设备;软件是指各种程序和⽂件,⽤于指挥计算机系统按指定的要求进⾏协同⼯作,包括系统软件、⽀撑软件和应⽤软件,关键系统软件是指操作系统与语⾔处理程序计算机硬件系统计算机硬件系统的组成:中央处理器运算单元控制单元主存储器外围设备输⼊设备输出设备存储设备⽹络通信设备总线存储程序计算机冯·诺伊曼等⼈在1946年总结并明确提出,被称为冯·诺伊曼计算机模型,存储程序计算机在体系结构上主要特点有:以运算单元为中⼼,控制流由指令流产⽣,采⽤存储程序原理,⾯向主存组织数据流,主存是按地址访问、线性编址的空间,指令由操作码和地址码组成,数据以⼆进制编码当今计算机硬件的经典结构和主流组织⽅式总线及其组成总线(Bus)是计算机各种功能部件之间传送信息的公共通信⼲线,它是CPU、内存、输⼊输出设备传递信息的公⽤通道,计算机的各个部件通过总线相连接,外围设备通过相应的接⼝电路再与总线相连接,从⽽形成了计算机硬件系统,按照所传输的信息种类,总线包括⼀组控制线、⼀组数据线和⼀组地址线总线的类型内部总线:⽤于CPU芯⽚内部连接各元件系统总线:⽤于连接CPU、存储器和各种I/O模块等主要部件通信总线:⽤于计算机系统之间通信中央处理器(CPU)中央处理器是计算机的运算核⼼(Core)和控制单元(ControlUnit),主要包括:运算逻辑部件:⼀个或多个运算器寄存器部件:包括通⽤寄存器、控制与状态寄存器,以及⾼速缓冲存储器(Cache)控制部件:实现各部件间联系的数据、控制及状态的内部总线;负责对指令译码、发出为完成每条指令所要执⾏操作的控制信号、实现数据传输等功能的部件处理器与寄存器存储器的组织层次外围设备及其控制设备类型包括有:输⼊设备,输出设备,存储设备和机机通信设备设备控制⽅式有:轮询⽅式:CPU忙式控制+数据交换中断⽅式:CPU启动/中断+数据交换MA⽅式:CPU启动/中断,DMA数据交换计算机软件系统计算机软件系统的组成系统软件包括:操作系统、实⽤程序、语⾔处理程序、数据库管理系统,其中操作系统实施对各种软硬件资源的管理控制,实⽤程序为⽅便⽤户所设,如⽂本编辑等,语⾔处理程序把⽤汇编语⾔/⾼级语⾔编写的程序,翻译成可执⾏的机器语⾔程序⽀撑软件有接⼝软件、⼯具软件、环境数据库,⽀持⽤户使⽤计算机的环境,提供开发⼯具,⽀撑软件也可认为是系统软件的⼀部分应⽤软件是⽤户按其需要⾃⾏编写的专⽤程序计算机系统视图软件开发的不同层次计算机硬件系统:机器语⾔操作系统之资源管理:机器语⾔+⼴义指令(扩充了硬件资源管理)操作系统之⽂件系统:机器语⾔+系统调⽤(扩充了信息资源管理)数据库管理系统:+数据库语⾔(扩充了功能更强的信息资源管理)语⾔处理程序:⾯向问题的语⾔计算机程序的执⾏过程计算机操作技术的发展计算机的⼿⼯操作问题:⼿⼯操作速度与电⼦计算速度不匹配装⼊程序的引进引⼊卡⽚和纸带描述程序指令与数据引⼊装⼊程序(Loader)⾃动化执⾏程序装⼊,必要时进⾏地址转换通常存放在ROM中引⼊⾼级语⾔后的计算机控制简单批处理系统的操作控制引⼊作业控制语⾔,⽤户编写作业说明书,描述对⼀次计算机求解(作业)的控制,操作员控制计算机成批输⼊作业,成批执⾏作业,这⼀⽅式明显缩短了⼿⼯操作的时间,提⾼了计算机系统利⽤率,这⼀阶段,磁带的出现,使得卡⽚与纸带等机械输⼊⽅式得以进⼀步提⾼操作系统与⾃动化操作控制电⼦计算速度与机械I/O速度的⽭盾:你在输,我在等,在程序执⾏过程中能否同时输⼊作业,重叠时间,需要多道程序同时执⾏,程序切换需要⾼速的外存储设备,磁盘设备出现:计算机操作系统浓墨登场,实现了计算机系统的⾃动化控制计算机操作系统操作系统的概念操作系统(OperatingSystem),简称OS,是计算机系统最基础的系统软件,管理软硬件资源、控制程序执⾏,改善⼈机界⾯,合理组织计算机⼯作流程,为⽤户使⽤计算机提供良好运⾏环境,简⽽⾔之,操作系统是⽅便⽤户、管理和控制计算机软硬件资源的系统程序集合.从⽤户⾓度看,OS管理计算机系统的各种资源,扩充硬件的功能,控制程序的执⾏,从⼈机交互看,OS是⽤户与机器的接⼝,提供良好的⼈机界⾯,⽅便⽤户使⽤计算机,在整个计算机系统中具有承上启下的地位,从系统结构看,OS是⼀个⼤型软件系统,其功能复杂,体系庞⼤,采⽤层次式、模块化的程序结构操作系统的组成进程调度⼦系统进程通信⼦系统内存管理⼦系统设备管理⼦系统⽂件管理⼦系统⽹络通信⼦系统作业控制⼦系统操作系统的类型从操作控制⽅式看多道批处理操作系统,脱机控制⽅式分时操作系统,交互式控制⽅式实时操作系统从应⽤领域看服务器操作系统、并⾏操作系统⽹络操作系统、分布式操作系统个⼈机操作系统、⼿机操作系统嵌⼊式操作系统、传感器操作系统资源管理计算机系统的资源硬件资源:处理器、内存、外设信息资源:数据、程序管理计算机系统的软硬件资源:处理器资源:那个程序占有处理器运⾏?内存资源:程序/数据在内存中如何分布?设备管理:如何分配、去配和使⽤设备?信息资源管理:如何访问⽂件信息?信号量资源:如何管理进程之间的通信?屏蔽资源使⽤的底层细节驱动程序:最底层的、直接控制和监视各类硬件(或⽂件)资源的部分,职责是隐藏底层硬件的具体细节,并向其他部分提供⼀个抽象的、通⽤的接⼝,⽐如说:打印⼀段⽂字或⼀个⽂件,既不需知道⽂件信息存储在硬盘上的细节,也不必知道具体打印机类型和控制细节资源的共享与分配⽅式资源共享⽅式独占使⽤⽅式并发使⽤⽅式资源分配策略静态分配⽅式动态分配⽅式资源抢占⽅式程序控制多道程序同时计算CPU速度与I/O速度不匹配的⽭盾,⾮常突出,只有让多道程序同时进⼊内存争抢CPU运⾏,才可以够使得CPU和外围设备充分并⾏,从⽽提⾼计算机系统的使⽤效率多道程序同时计算的宏观分析甲、⼄两道程序,独占计算机单道运⾏时均需1⼩时,占⽤CPU时间18分钟,CPU利⽤率为30%,按多道程序设计⽅法同时运⾏,CPU利⽤率50%,由于要提供36分钟的CPU时间,⼤约运⾏72分钟。

计算机组成原理课后作业1-8章

计算机组成原理课后作业1-8章

[y]浮= 11 110,11.100010
△E=Ex-Ey=[Ex]补+[-Ey]补=11 101 +00 010=11 111
修改后的x表示为:
[x]浮= 11 110,0.010010 (1) 00. 0 1 0 0 1 0
2)尾数求差
+ 00. 0 1 1 1 1 0
MS= Mx - My =00. 110000 (1)
MS= Mx+My =11 . 1101 00 (1) 3)规格化处理
00. 0 1 0 0 1 0 + 11. 1 0 0 0 1 0
11 . 1 1 0 1 0 0
执行2次左规处理, MS= 11 . 0 1 0 0 1 0 (0), ES= 11 100 4)舍入处理
5)判溢出
采用0舍1入法处理,则舍去0
∴ 规格化数 符号位
1
阶码(8) 0111 1101
尾数(23) 1011 0000 0000 0000 0000 000
2020年12月21日星期一
12
5、已知x和y,用变形补码计算x+y,同 时指出结果是否溢出。
①x=0.11011 y=0.00011
[x]补=00.11011 ,[y]补=00.00011
27/64
27/64 = 0.011011B = 1.1011 * 2-2
e=-2,则E=e+127=125
∴ 规格化数 符号位
0
阶码(8) 0111 1101
尾数(23) 1011 0000 0000 0000 0000 000
-27/64
-27/64 =-0.011011B =-1.1011 * 2-2
示;尾数23位,用补码表示;基数为2。请写出:(1)最大数的

计算机概论

计算机概论
应用软件的使用
• 安装与卸载:根据需要安装和卸载应用软件 • 功能与性能:了解应用软件的功能和性能特点,选择合适的应用软件 • 更新与维护:定期更新和维护应用软件,确保其正常运行
04
计算机网络基础
计算机网络的结构与分类
计算机网络的结构
• 星型结构:中心节点连接所有其他节点,适合小型网络 • 总线型结构:所有节点连接到一条总线上,适合大型网络 • 环型结构:节点按环形连接,数据在环中传输,适合需要实时响应的网络
电子计算机的发展
• 20世纪70年代,微型计算机的出现,如苹果II、IBM PC等,使计算机进入家庭和企业 • 20世纪80年代,个人电脑的发展,如IBM PC Jr.、康柏Compaq等,使计算机更加普及 • 20世纪90年代,互联网的出现,如万维网、电子邮件等,使计算机的应用领域得到了极大 的拓展
计算机网络的分类
• 局域网(LAN):覆盖范围小,如家庭、办公室等 • 城域网(MAN):覆盖范围较大,如城市、地区等 • 广域网(WAN):覆盖范围广,如国家、洲际等
互联网的发展与协议
互联网的发展
• 20世纪60年代,美国国防部创立了ARPANET,为互联网的发展奠定了基础 • 20世纪90年代,万维网的出现,使互联网成为信息传播的主要途径 • 21世纪初,移动互联网的发展,使互联网更加便捷和普及
防护措施
• 防火墙:用于阻止未经授权的访问和网络攻击 • 加密技术:用于保护数据的机密性和完整性 • 安全策略:制定网络安全的规章制度和管理措施
05
计算机应用领域
办公自动化的实现与应用
办公自动化的应用
• 文字处理:使用Word、WPS Office等软件进行文字编辑和处理 • 电子表格:使用Excel、WPS Spreadsheets等软件进行数据处理和分析 • 演示文稿:使用PowerPoint、WPS Presentation等软件进行演示和报告

全国计算机等级考试四级网络工程师操作系统原理部分

全国计算机等级考试四级网络工程师操作系统原理部分

操作系统原理第一章操作系统概论1.1操作系统的概念操作系统的特征:并发性,共享性,随机性。

研究操作系统的观点:软件的观点,资源管理的观点,进程的观点,虚拟机的观点,服务提供者的观点。

操作系统的功能:1.进程管理:进程控制,进程同步,进程间通信,调度。

2.存储管理:内存分配与回收,存储保护,内存扩充。

3.文件管理:文件存储空间管理,目录管理,文件系统安全性。

4.设备管理5.用户接口UNIX是一个良好的、通用的、多用户、多任务、分时操作系统。

1969年AT&T公司Kenneth L.Thompson 用汇编语言编写了Unix第一个版本V1,之后Unix用C语言编写,因此事可移植的。

1.3操作系统分类1.批处理操作系统:优点是作业流程自动化较高,资源利用率较高,作业吞吐量大,从而提高了整个系统的效率。

缺点是用户不能直接与计算机交互,不适合调试程序。

2.分时系统:特点是多路性,交互性,独占性,及时性。

3.实时操作系统4.嵌入式操作系统5.个人计算机操作系统6.网络操作系统7.分布式操作系统8.智能卡操作系统1.4操作系统结构1.整体式结构2.层次结构3.微内核(客户机/服务器)结构:①可靠,②灵活(便于操作系统增加新的服务功能),③适宜分布式处理的计算机环境第二章操作系统运行机制2.1中央处理器寄存器:用户可见寄存器:数据寄存器(通用寄存器),地址寄存器,条件码寄存器。

控制和状态寄存器:程序计数器,指令寄存器,程序状态字。

目态到管态的转换唯一途径是通过终端和异常。

管态到目态的转换可以通过设置PSW指令(修改程序状态字)实现。

PSW包括:①CPU的工作状态代码②条件码③中断屏蔽码2.2存储体系存储器设计:容量,速度,成本存储保护:①界地址寄存器(界限寄存器):产生程序中断-越界中断或存储保护中断②存储键2.3中断与异常机制分类:中断:时钟中断,输入输出(I/O)中断,控制台中断,硬件故障中断异常:程序性中断,访管指令异常2.4系统调用系统调用程序被看成是一个低级的过程,只能由汇编语言直接访问。

第1章 计算机系统概述

第1章 计算机系统概述

1.4.2 电子 计算机的发展简史
• 第一代 电子管时代 电子管时代(1946-1958) 耗电高,体积大,定点计算,机器语言, 耗电高,体积大,定点计算,机器语言,汇编语言 • 第二代 晶体管时代 晶体管时代(1958-1965) 变集中处理为分级处理,浮点运算、 变集中处理为分级处理,浮点运算、高级语言 • 第三代 中小规模集成电路时代 中小规模集成电路时代(1965-1970) 存储容量大,运算速度快,几十至几百万次 秒 存储容量大,运算速度快,几十至几百万次/秒 • 第四代 大规模集成电路时代 大规模集成电路时代(1971至今 至今) 至今 向大型机和微型机两个方向发展 • 现代计算机发展方向 巨型化,微型化,网络化,智能化,多媒体化 巨型化,微型化,网络化,智能化, 根据摩尔定律集成电路大体上每18个月翻一番,今后可再用 年 根据摩尔定律集成电路大体上每 个月翻一番,今后可再用10年。 个月翻一番
计算机组成与结构
清华大学 王爱英主编 主讲 马洪连
第一பைடு நூலகம்计算机系统概论
1.1 计算机的语言 自然语言:人类相互交流信息所用的语言 自然语言 高级语言:由于当前的计算机还不具备理解自然 高级语言 语言的能力,于是人们希望找到一种和自然语言 接近并能为计算机接受的语言,这种语言被称为 计算机的高级语言 。 机器语言:然而目前的通用计算机不会直接执行 机器语言 用高级语言编写的程序,因而要先将其翻译成机 器能执行的语言,这种语言被称为机器语言(由 二进制代码表示的指令组成)。 汇编语言:符号式程序设计语言。 汇编语言
1.4.3 计算机的六大分类
• 巨型机——世界几家公司生产,最快1.4万亿次,9千个CPU组成 Cray-1,Cray-2,Cray-3,国产银河I, 银河II, 银河III • 小巨型机——功能同巨型机相近,价格相对便宜,发展十分迅速 美国Convex公司的C系列机为其代表产品。 • 大型机——大中型企事业单位作为计算中心的主机使用,统一调 度主机资源,代表产品有IBM360,370,4300等。 • 小型机——它可以满足部门性的需求,供小型企事业单位使用, 典型产品有IBM-AS/400,DEC-VAX系列,国产太级 • 工作站——用于特殊的专业领域,例如图象处理和辅助设计等。 典型产品有HP-APOLLO,SUN工作站等。 • 微型机——个人或家庭使用,PC机/个人计算机,价格低廉

第一章 计算机系统概论

第一章 计算机系统概论
5
1.2.1 计算机硬件 . .
1.运算器 . 用于信息加工的部件,又称执行部件。它对数据信息进行算术运算 和逻辑运算。它由算术逻辑部件 ALU 和一系列寄存器组成。 算术运算指加、减、乘、除和其他复合运算,逻辑运算指与、或、 非、异或、比较、移位。 运算器包含多个寄存器,称为通用寄存器组,使用它们可减少访问 存储器的次数,提高运算速度。寄存器用于存放运行指令和运算操作 数,累加器除了存放运算操作数外,还存放中间结果和最终结果。 计算机采用二进制计数。二进制 二进制的运算规律非常简单,易于用物 二进制 易于用物 理的方式实现。 理的方式实现 二进制数的位数越多,计算精度就越高,但是位数越多,所需的电 子器件也越多。计算机运算器的运算宽度( 机器字长 ) 通常为 8×2n 计算机运算器的运算宽度(机器字长) 计算机运算器的运算宽度 × (n 为自然数,目前最大为 3),即 8 位、16 位、32 位或 64 位。 即
9
1.2.1 计算机硬件 . .
指令和数据均以二进制信息形式存放在内存,按读取时间和存放 空间区分。取指周期中从内存中读出的信息流是指令流,它流向控制 取指周期中从内存中读出的信息流是指令流, 取指周期中从内存中读出的信息流是指令流 执行周期中从内存中读出的信息流是数据流 它流向运算器。 数据流, 器;执行周期中从内存中读出的信息流是数据流,它流向运算器 3.存储器 . 存放程序和数据。分为若干个带地址的存储单元,数据以二进制 方式按地址存储。 读写过程:传送存储单元地址 → 地址译码器译码 → 选中存储单 元 → 从存储单元读出数据或向存储单元写入数据。 主板上的存储器为半导体触发器,每一个存储元(触发器)可存 储一位二进制信息。一个半导体触发器的 Q 输出端有两种电平状态, 输出高电平为 “1”,输出低电平为 “0”,通过输入端电平和时钟的控 制可改变触发器的输出状态,分别输出 “1” 或 “0”。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第八章 输入输出 到目前为止,我们还没有关注过I/O。我们在第四章注意到输入和输出是冯·诺依曼模型的重要组成部分。必须有一种方式让计算机获取信息以便进行处理,还必须有一种方式得到计算机处理信息的结果,从而让人们能使用它。图4.1给出了一些不同的输入和输出的设备。 在第五章我们建议通过执行TRAP指令来完成输入和输出,而TRAP指令是让操作系统为我们实现。图5.17显示了如何执行TRAP指令实现输入(在地址x3002)和输出(在地址x3010)。 在这一章,我们打算自己实现I/O。我们选择键盘和显示器作为输入和输出设备。不仅仅因为它们是最简单的设备,我们对其最为熟悉,还由于它们具有让我们学习到最基本的I/O概念的特征,而不必陷入不必要的细节之中。

8.1 I/O基础

8.1.1 设备寄存器 虽然我们经常把一个I/O设备当作一个单独的实体,但是与一个单独的I/O设备进行交互,往往意味着与一个以上的设备寄存器进行交互。最简单的I/O通常至少包含两个设备寄存器:一个保存在计算机和设备之间进行传输的数据,一个表示设备的状态信息。一个状态信息的例子是设备是处于可用的状态还是正忙于执行最近的I/O任务。

8.1.2 存储映射I/O 对 专门的I/O指令 一个与输入输出设备寄存器相互作用的指令必须能够标识出与之相互作用的特殊的输入输出设备寄存器。在过去,曾经有过两种机制被采用:有些计算机使用专门的输入与输出指令,有些则更愿意使用与传送数据进出存储器时所使用的相同的数据传送指令。 非常老的PDP-8(DEC 公司多年前——1965年生产)就是一个使用专门的输入输出指令的例子。12位的PDP-8指令包含了一个3位的操作码。如果操作码是110,就表示为一条I/O指令。PDP-8指令的其余的9位则指明了I/O设备寄存器,以及所要执行的操作。 大多数的计算机设计者都不愿增加一些额外的指令集来处理输入和输出,他们使用与用于在存储器和通用寄存器之间加载和存储数据的数据传送指令相同的指令。例如,源地址是一个输入设备寄存器的加载指令就是一条输入指令。同样的,目标地址是一个输出设备寄存器的存储指令就是一条输出指令。 正是因为程序员使用了和用于存储器的相同的数据传送指令,所以每一个输入和输出设备寄存器都应该采用与存储器地址被唯一标识的方式,被唯一标识出来。因此,每一个设备寄存器都被分配了一个ISA的存储器地址空间中的地址。也就是说,I/O设备寄存器被映射为存储器中的一系列地址,这些地址被分配给I/O设备寄存器,而不再是存储单元。存储映射的I/O因此得名。 最初的PDP-11 的ISA拥有16位的地址空间,所有的[15:13]位是111的存储器地址都被分配给了I/O设备寄存器。也就是说,在所有的216个地址中,只有57344个地址对应于存储器单元,其余的213个都是存储映射的I/O地址。 LC-3使用的是存储映射的I/O。地址x0000到xFDFF是分配给存储单元的,地址xFE00到xFFFF被保留为输入/输出寄存器。表A.3列出了到目前为止被分配的LC-3设备寄存器的存储映射地址。当新的令人激动的一个应用出现时,LC-3微处理器的将来的使用和销售或许需要扩展设备寄存器地址的分配。

8.1.3 异步 对 同步 多数的I/O执行时的速度比处理器的速度要慢的多。一个打字员在键盘上打字时,打字员每键入一个字符,输入设备寄存器就被加载进一个ASCII码。每次执行加载指令时,计算机都会去读取设备寄存器中的内容,其操作数的地址就是这个输入设备寄存器的存储器映射地址。 当今的许多微处理器都是在时钟的控制下执行指令,其时钟频率一般大于300MHz。即使其频率只有300MHz,一个时钟周期也只有3.3个十亿分之一秒。假设处理器一次执行一条指令,并且处理器执行读取输入设备寄存器和存储内容的指令需要10个时钟周期。以这样的速率,处理器能每33个十亿分之一秒读一次输入设备寄存器里的内容。不幸的是,人的打字速度不可能快到可以让处理器一直读取字符。问题:为了让处理器以最高速度接收字符,一个人必须以多快的速度打字?假设平均的字长是6个字符(习题8.3)。 我们可以通过设计硬件来调节这样悬殊的速度,这种硬件能以一个较低的固定的速度来接受输入的字符。举个例子,我们可以设计一个每3千万个时钟周期接受一个字符的硬件。这就要求打字速度是每分钟100个单词,这样就可行了。不幸的是,这要求打字员的工作必须和计算机时钟保持一致的步伐,这是不可接受的,因为打字速度(即使是同一个打字员)是随时变化的。 要点是什么?关键是I/O设备经常以不同于微处理器的速度运行,并且不是步伐一致的。后面的这种特征被称作异步。绝大多数处理器和I/O设备之间的交互是异步的。为了控制对异步问题的处理,我们就需要一些协议或握手机制。考虑键盘和显示器:对键盘来说,我们需要一个1位的状态寄存器(我们称作标志),来表明某个人是否输入了一个字符;对显示器来说,我们需要一个1位的状态寄存器来表明,最近被送给显示器的字符是否已被显示。 这些标志是最简单的同步方式。一个1位的标志(被称作就绪位)已经足够使一个每分钟打100个单词的打字员的输出和一个每秒钟接受3亿个字符的处理器的输入保持同步。每当打字员输入一个字符的时候,就绪位就被设为1。每当计算机读取了一个字符的时候,它将清空就绪位。通过在读一个字符前检查就绪位,计算机能知道是否已经读了最后输入的字符。如果就绪位被清空了,那么自从最后一次计算机读入字符后,没有字符被输入,那么就不会有进一步的读操作发生。当计算机检测出就绪位为1时,那只能是由输入了一个新字符引起的,计算机将会知道去再一次读字符。 一个1位的就绪位提供了一个足够的协议来保证微处理器和打字员之间的信息的异步交换能够被正确执行。 如果打字员能以固定的速度打字,并且我们有一个能以精确间隔来接受输入字符的硬件(例如,每3千万个时钟周期一个字符),那么我们就不需要就绪位。计算机将会简单的知道,在做了3千万个其它事情的时钟周期后,打字员已经再输入了一个字符,这样计算机会去读这个字符。在这种前提条件下,打字员将会和处理器保持一致的步伐,不再需要其他的同步机制。我们说这种计算机和打字员的操作是同步的,或者输入活动是同步的。 8.1.4 中断驱动 对 轮询 用来计算的处理器和打字员是两个不同的实体,各自做自己的事。然而它们需要交互,输入的数据必须进入计算机。中断驱动对轮询的问题就是谁控制这个交互的问题。是让处理器是一直做它自己的事直到被从键盘发来的信号打断吗?“嘿,已经打了一个字,其ASCII码位于输入设备寄存器里,你需要读取它“。这就叫做中断驱动的I/O,这是由键盘来控制交互。或者是由处理器控制交互,通过不停地询问(一次又一次的)就绪位直到它(处理器)检测出就绪位被设为1,那样的话,处理器就知道是时候读取设备寄存器里的内容了。第二种交互的方式叫做轮询,因为就绪位被处理器不停询问是否有字符输入。 8.2.2节讲述轮询方式怎样工作的。8.5节更深入的解释了中断驱动的I/O。

8.2 从键盘输入

8.2.1 基本的输入寄存器(KBDR和KBSR) 我们已经注意到为了处理从键盘输入的字符,我们需要两样东西:一个存储输入字符的数据寄存器和一个让处理器知道输入已经发生的同步机制。这个同步机制包含在键盘的状态寄存器中。 这两个寄存器叫做键盘数据寄存器(KBDR)和键盘状态寄存器(KBSR)。它们被分配的地址来自存储器地址空间。正如A.3表中所表示的,KBDR分配到xFE02;KBSR分配到xFE00。 尽管一个字符只需要8位,同步机制只需要1位,但给每一个寄存器分配16位(与所有LC-3的存储器地址一样)会更方便。对于KBDR,[7:0]位用来存放数据,[15:8]位包含x00。对于KBSR,[15]位存放同步机制,就是就绪位。图8.1展示了键盘需要的两个设备寄存器。

8.2.2 基本的输入服务程序 KBSR[15]控制了缓慢的键盘和快速的处理器的同步。当键盘上的一个键被敲击时,这个键的ASCII码被存储在KBDR[7:0],然后与键盘相关的电路便自动的把KBSR[15]设为1。当LC-3读取KBDR时,与键盘相关的电路自动清除KBSR[15]为0,允许另一个字符被输入。若KBSR[15]=1,最后一个被输入的字符所对应的ASCII码还未被读取,那么键盘是不可用的。 若输入-输出被处理器所控制(即轮询),那么由一个程序重复地测试KBSR[15]直到它发现那一位已被设置为1。此时,处理器能读取包含在KBDR中的ASCII码到LC-3寄存器之一。既然处理器仅当KBSR[15]为1加载ASCII码,就不存在多次读取一个被输入的字符的危险。不仅如此,因为直到前一个ASCII码被读取之前键盘是不能用的,也不存在处理器丢失被输入的字符的情况。采用这种方法,KBSR[15]提供了保证每个被输入的字符只被加载一次的机制。 接下来的输入程序加载已通过键盘输入的字符的ASCII码到R0中,然后程序将执行NEXT_TASK。 01 START LDI R1, A ; 测试是否有字符被输入 02 BRzp START 03 LDI R0, B 04 BRnzp NEXT_TASK ; 执行下一个任务 05 A .FILL xFE00 ; KBSR的地址 06 B .FILL xFE02 ; KBDR的地址 只要KBSR[15]为0,就表示自从处理器最后一次读取数据寄存器后,没有字符被键入。01,02行组成一个测试KBSR的[15]位的循环。注意LDI指令,就是读取xFE00中的内容到R1中,xFE00是KBSR的存储映射的地址。若就绪位,即[15]位被清空,BRzp将分支转移到START,开始又一次的循环。当某人键入一个字符,KBDR将被加载那个字符的ASCII码,并且KBSR的就绪位将被设置为1。这将引起分支转移指令的条件不再成立,03行的指令将被执行。再次注意LDI指令的用途,这次是读取xFE02的内容到R0中,xFE02是KBDR的存储映射的地址。输入程序完成,因此程序无条件转移到NEXT_TASK。

8.2.3 存储映射输入的实现 图8.2显示了实现存储映射输入所需的数据通路。你在第五章已经熟悉了实现加载指令的执行阶段所需的数据通路,本质上需要3步: 1、 加载要读取的存储单元的地址到MAR; 2、 读取存储器,结果加载该存储单元中的内容到MDR; 3、 加载MDR的内容到目标寄存器(DR)。 在存储映射输入的情况下,同样的一系列步骤要被执行,不同的是,不是加载要读取的存储单元的地址到MAR,而是加载设备寄存器的地址到MAR;地址控制逻辑也不是使存储器去读,而是选择相应的设备寄存器提供输入给MDR。

相关文档
最新文档