计算机原理与设计-CH1-2005
- 格式:ppt
- 大小:466.00 KB
- 文档页数:35
第5章Internet网络应用技术【本章重点】计算机网络的定义与功能;计算机网络的组成与分类;OSI参考模型与TCP/IP参考模型;Internet基础知识;物联网技术。
【本章难点】OSI参考模型与TCP/IP参考模型;计算机网络拓扑结构;IP地址的构成与分类;物联网技术原理与体系结构。
【学习目标】掌握计算机网络的定义与功能;掌握计算机网络的分类与拓扑结构;掌握计算机网络的体系结构;掌握IP地址的构成与分类;熟悉Internet基础知识;掌握IE的使用与设置。
5.1 计算机网络概述在信息化社会中,计算机已经从单一使用发展成集群使用,越来越多的应用领域需要计算机在一定的地域范围内协同工作,从而促进了计算机技术和通信技术紧密地结合,形成了计算机网络这门学科。
随着计算机技术的快速发展,计算机网络的应用也越来越普及和广泛,已渗透到国民经济和人们日常生活的各个领域。
我们可以通过计算机网络来获取所需要的各种信息,也可以通过它向全社会发布各种经济信息、科研情报、技术资料等。
当今的时代就是一个以网络为核心的信息时代,它最主要的特征就是数字化、信息化与网络化。
现在人们的生活、工作、学习都已离不开计算机网络。
没有网络我们无法到银行存钱或者取钱,没有网络我们无法预订火车票、飞机票,没有网络我们无法上网查询自己需要的相关资料,没有网络我们更无法在网上与朋友及时交流信息。
由此可见人们已经越来越依赖于网络,那么计算机网络到底是什么?它由哪些部分组成?为什么我们可以使两台相距那么远的主机进行通信,它的工作原理又是什么呢?接下来,我们一点点来看。
5.1.1 计算机网络的定义及功能什么是计算机网络?计算机网络的精确定义并未统一,最简单的定义就是:一些互相连接的、自治的计算机的集合。
从定义中看出一个计算机网络涉及3个方面的问题。
(1)至少两台计算机互联。
(2)通信设备与线路介质。
(3)包括相应的网络软件,通信协议。
167168按照此定义两台计算机和连接它们的一条链路,就可以构成一个最简单的计算机网络,世界上最大、最复杂的网络就是我们通常所说的因特网Internet。
2
假设有相同指令级的两种不同实现方式:
计算机A的时钟周期为250ps,对某程序的CPI为2.0
计算机B的时钟周期为500ps,对同样程序的CPI为1.2
请问:对于该程序,请问哪台计算机执行的速度更快?快多少?
3
一个编译器设计者试图在两个代码序列之间进行选择,硬件设计者给出了如下数据:
对于某行高级语言语句的实现,两个代码序列所需的指令数量如下:
哪个代码序列执行的指令数更多?哪个执行速度更快?每个代码序列的CPI是多少?
3
解: 序列1 有5条指令; 序列2 有 6条 序列1 需 2×1+1×2+2×3=10 cycles 序列2 需 4×1+1×2+1×3=9 cycles
序列1 的 CPI=10/5=2; 序列2 的CPI=9/6=1.5 虽然序列2的指令条数多,但速度却更快! 一个编译器设计者试图在两个代码序列之间进行选择,硬件设计者给出了如下数据:对于某行高级语言语句的实现,两个代码序列所需的指令数量如下:
哪个代码序列执行的指令数更多?哪个执行速度更快?每个代码序列的CPI是多少?
p☐ 基准测试程序集是专门进行性能评价的一组程序
n⏹ 用户希望基准测试程序能够预测机器在运行实际负载时的性能SPEC INTC2006基准程序在AMD Opteron x4 2356(Barcelona)的运行结果:。
计算机组成原理- CH05 指令系统体系结构5.1 概述计算机指令由操作码和操作数组成。
操作码指定要执行的操作类型,而操作数指出数据所处的寄存器和内存单元。
本章会对上一章的内容做进一步的展开,深入讨论计算机的指令系统体系结构。
将介绍各种不同的指令类型和操作数类型,以及指令如何访问内存中的数据。
5.2 指令格式每条计算机的指令都有一个操作码和0个或多个操作数.每条指令允许使用的操作数的个数不同,指令的类型和指令处理的操作数的类型也可能不同.更具体地说,各种指令集可能在特征上存在如下差别:操作数在CPU中的存储方式(数据可以存储在堆栈结构或寄存器中)指令作用的操作数的数目(最常用的操作数个数为0,1,2和3) 操作数的位置(如果简单地按照指令适用的操作数的组合,则各种指令可以分为寄存器-寄存器类型,寄存器-存储器类型或存储器-存储器类型)操作(不仅包括操作的类型,而且指出指令是否可以访问存储器) 操作数的类型和长度(操作数可能是地址,数字或字符)5.2.1 指令系统的设计指令系统体系结构(ISA)的效能可以用下面几个因素来衡量:(1) 程序执行指令时占用内存空间的大小;(2) 指令系统的复杂程度, 主要指指令执行所需要的译码数量和指令所执行的任务的复杂性;(3) 指令的长度;(4) 指令系统中指令的总数目.设计指令系统时需要考虑的问题包括:指令一般越短越好,因为较短的指令占用较少的内存空间,并且撮指令的速度也会更快.但是采用短指令会限制指令的数量.固定长度的指令的译码相对比较容易, 但却浪费空间.存储器的组成形式会影响指令的格式.固定长度的指令系统并不表示必须使用固定数量的操作数.存在多种不同类型的寻址方法.如果机器的字由多个字节组成,就需要考虑组成的字的字节是按照怎样的次序存储到按字节的机器存储器中设计的体系结构需要多少个寄存器且这些寄存器应该如何进行组织安排,操作数如何存放在CPU中5.2.2小端和大端的位序问题术语----- 位端(endian)指的是计算机体系结构中的"位序" (byte order).位端是指在计算机中存储一个多字节数据元素时, 各个字节的排列方式.将最低位的字节首先存放到低位地址,然后再将最高位的字节存放到高位地址,采用这种方式的机器称为小端(little endian)机器.先将最高位的字节存放到低位地址,然后再存放最低位的字节. 这种类型的机器称为大端(big endian)机器.大部分的UNIX计算机都是大端机器, 而大多数的PC机则是小端机器.大端位序的存储方式更自然些, 而且更便于阅读十六进制编写的程序段.大端位序的机器存储整数和字符串时使用相同的次序, 并且在某些字符串操作时速度会更快一些. 大部分位图映身格式的图像都是采用"最高位在字符串的左边"的变换方法, 也就是说对于像素大于一个字节的数据可以直接按照大端位序机器自身体系结构的安排顺序进行处理.大端位序的存储方式也有缺点,如果计算机要进行从32位整数地址到16位整数地址的转换操作, 则要求大端机器执行加法运算.高精度的算术运算在小端机器上会更快和更方便一些.计算机网络都是采用大端位序的体系结构.5.2.3 CPU的内部存储机制: 堆栈和寄存器CPU的数据存储方式是区分不同指令系统体系结构(ISA)的最基本的方法. 这里有三种不同的体系结构可供选择.1. 堆栈体系结构2. 累加器体系结构3. 通用寄存器(GPR)体系结构堆栈体系结构(stack architecture)的计算机使用一个堆栈来执行各种指令, 而且指令的操作数就隐含地存放在堆栈的顶部. 这种机器通常具有好的编码密度和一个简单的表达式估值模型,但由于不能对堆栈进行随机访问, 使得采用堆栈结构的机器很难产生高效率的编码.累加器体系结构(Accumulator architecture)的计算机, 比如MARIE, 是将其中一个操作数隐含在累加器中.降低了机器的内部复杂性,而且允许使用非常短的指令. 但由于累加器是临时存储, 所以对存储器的访问非常频繁.通用寄存器体系结构(general purpose register architecture)的计算机, 采用多个通用寄存器组, 这是当今计算机体系结构中最广泛接受的模型.寄存器组的访问速度比存储器快得多,通用寄存器体系结构可以根据指令的操作数所处的位置分成三种类型.存储器-存储器(memory-memory)体系结构可以有两个或三个操作数位于存储器内, 允许有一条执行某种操作而不需要有任何操作数的指令存放在某个寄存器中.寄存器-存储器(register-memory)体系结构则是采用混合方式,这其中至少有一个操作数在寄存器中和一个操作数在存储器中.装入-存储(load-store)式体系结构则需要在任何对数据的操作执行之前,先将数据装入寄存器中.5.2.4 操作数的数目和指令的长度在现在的计算机体系结构中, 指令构成的格式有如下的两种方式:固定长度(fixed length)使用这种格式的指令系统会浪费一些存储空间, 但是指令执行的速度快. 在采用指令层次(instruction-level) 的流水线结构时, 固定长度的指令系统的性能会更好些可变长度(variable length)这种指令的译码会变得比较复杂, 但是却可以节省存储空间.最常用的指令格式包括有零个, 一个, 两个, 或三个操作数. 使用一个堆栈结构也可以允许有不带操作数(零操作数)的指令.只有操作码 (0 地址)操作码 + 1个地址 (通常只有一个存储器地址)操作码 + 2个地址 (通常是两个寄存器地址, 或者是一个寄存器地址加上一个存储器地址)操作码 + 3个地址 (通常是三个寄存器地址, 或者是寄存器和存储器的某种组合形式)不带操作数的机器指令必须使用堆栈来执行在逻辑上需要一个或两个操作数的操作随着每条指令所允许的操作数的数目的减少, 完成相同程序功能所需的指令数目将会增加. 这就是一个典型的在空间和时间之间进行平衡折衷.通常,采用较短的指令需要编写较长的程序5.2.5 扩展操作码扩展操作码 (expanding opcode)代表了一种折衷的方案,就是既要求有尽可能多的操作码的数目, 又要求采用尽可能短的操作码, 所设计的指令长度也比较短.其设计的基本思想是: 选用短操作码, 而当有需要时可以有某种方法将操作码加长采用扩展操作码的方法使指令的译码变得更加复杂5.3 指令类型有些指令的操作对象不是数据, 指令归纳为以下几种类型:数据移动算术运算布尔逻辑运算位操作 (移位和循环换位)输入/输出 (I/O)控制转移专门用途数据移动指令是最常用的指令. 人们常常需要将数据从存储器移到寄存器, 从寄存器移到寄存器, 以及从寄存器移到存储器等.算术运算指令包括有整数和浮点运算的各种指令.布尔逻辑指令执行布尔逻辑运算, 与算术指令的运算方式非常类似位操作指令用来在某个特定的数据字中对一些单独数据位(或者是一些位的集合) 进行置位和复位操作.输入/输入(I/O) 指令随着计算机体系结构的不同而有很大区别. 处理输入输出的基本方式有: 程序控制的I/O, 中断驱动的I/O 和直接存储器访问(DMA) 的I/O 三种方式控制指令包括分支转移(branch), 跳过(skip) 和进程调用(procedure call)等.专用指令包括字符串处理的指令, 高级语言支持的指令, 保护和标志位控制指令, 以及高速缓存(cache) 指令等.5.4 寻址与寻址有关的两个最重要的问题是: 可以进行编址的数据类型和各种各样的寻址方式.5.4.1 数据类型如果指令要引用某个特定的数据类型,必须有相应的硬件对该种类型的数据提供支持指针是被认为与整数和浮点数字不同的数据类型.对于使用指针的指令, 操作数本质上就是一个地址, 并且必须被当成一个地址处理.5.4.2 寻址方式寻址方式是指定指令中操作数的位置的方法立即寻址 (immediate addressing)是指在指令中操作代码后面的数值会被立即引用, 12位的操作数域并不是指定一个地址, 而是表示指令所要求的实际操作数. 但由于加载的数值是固定的, 这种方式非常不灵活直接寻址 (direct addressing) 是指在指令中直接指定要引用的数值的存储器地址. 直接寻址方式比立即寻址方式要灵活得多.寄存器寻址 (register addressing) 方式中, 是采用一个寄存器, 而不是存储器来指定操作数. 寄存器寻址方式中被指定的寄存器中的内容将用作指令的操作数.间接寻址 (indirect addressing)是一种非常有效的寻址方式, 使用起来特别灵活,在间接寻址方式中, 地址域中的二进制数用来指定一个存储器地址, 该地址中的内容将被用作一个指针. 操作数的有效地址是通过访问这个存储器地址来获取的作为间接寻址的一种变化形式操作数域的二进制位也可以用来指定一个寄存器,而不是指定某个存储器地址.这种方式称为寄存器间接寻址 (register indirect addressing).在变址寻址方式(indexed addressing)中, 一个变址寄存器(要么显式地指定, 要么隐式指定)用来存储一个偏移量(offset, 或称为位移量(displacement)基址寻址(based addressing)方式与变址寻址方式非常类似.区别是,基址寻址方式使用的是基地址寄存器,而不是变址寄存器.堆栈寻址(stack addressing)方式,则操作数就假定放在堆栈中.5.5 指令的流水线有些CPU会将取指-译码-执行周期分成一些较小的步骤, 其中的某些较小的步骤可以并行执行. 这种时间上的交叠可以加快CPU的执行速度,这种方法称为流水线(pipeline).不同的步骤可以并行完成不同指令的各个部分.这其中的每一个步骤都称为流水线极(pipeline stage).一旦第一条指令的取指任务完成, 第一条指令就会被送去进行了译码操作.与些同时, 可以开始第二条指令的取指. 当第一条指令取操作数时, 第二条指令被送去译码, 同时开始取第三条指令.这些事可以并行发生并不是所有指令都必须经过管道中的每一级流水线. 有些情况会阻碍计算机实现每个时钟周期执行一条指令的目标资源冲突数据关联条件分支语句资源冲突 (resource conflict)是指令级并行执行过程中要考虑的主要问题.例如一个在读一个在写数据关联 (data dependency)是指当一条指令的执行尚未结束时, 后面某条指令却要求该指令的执行结果作为其操作数.分支转移语句来改变程序的执行流程,但是这样会对流水线造成重大问题. 许多计算机体系结构都设计分支预测(branch prediction) 机构, 利用合理的逻辑来对下一条指令做出最优的预测.超标量 (superscalar) 体系结构是利用多条平行的流水线同时执行多个操作超流水线 (superpipelining) 体系结构则是将超标量体系结构和流水线体系结构的概念组合起来, 把流水线的各个级分割成更小的步骤.IA-64 体系结构却是一个超长指令字 (VLIW) 体系结构, 即每条指令可以指定多个标量操作, 也就是编译器可以把多个操作放到一条指令中.。
第1章-计算机设计基本原理CPU 性能公式CPU 时间或者时钟频率时钟周期数一个程序的时间=CPU CPU 性能因子CPI每条指令的平均时钟周期数(clock cycles per instruction).该程序的指令数时钟周期数一个程序的=CPU CPI 计算机设计的量化准则时钟周期长度时钟时间=一个程序的 CPU CPUIC:一个程序的指令数时钟周期的长度时间=⨯⨯CPI IC CPU 或者时钟频率时间=CPI IC CPU ⨯时钟周期每条指令的时钟数数时间=一个任务的指令⨯⨯CPU 时钟周期数秒指令数时钟周期数程序数指令数=⨯⨯程序数秒时间=CPU可以改变其中一项来改善CPU 性能,但涉及另外二项,因为这三个因子是相互有关的:时钟周期的长度:由硬件技术和组成技术决定;CPI :与计算机组成和指令集有关;指令数:与指令集结构和编译技术有关;∑=⨯ni ii CPI IC CPU 1时钟周期数=IC i :指令I 在一个程序中的执行次数CPI i :执行指令I 所需的平均时钟周期数时钟周期长度时间=⨯⎪⎭⎫ ⎝⎛⨯∑=ni i i CPI IC CPU 1总的CPI 也可表示成:i n i i ni i i CPI IC CPI IC CPI ⨯⎪⎭⎫ ⎝⎛⨯∑∑==11总的指令数=总的指令数=CPU 性能可表示成:()CPII f CPI CPU CPU ⨯=⨯指令数时钟频率=时间性能=1例题1.5计算机设计的量化准则例1.5设条件转移指令的实现有两种方案可选:机器A:用两条指令完成。
由比较指令建立条件码,再在转移指令中测试条件码。
机器B:只用一条指令。
比较和转移一起进行。
对于这两种机器来说,条件转移指令用2个时钟,所有其他指令用1个时钟。
在机器A上有20%的执行指令是条件转移指令,每个转移都需要比较,有20%是比较指令。
由于机器A在转移指令中没有比较功能,这样时钟频率比机器B快25%,问:哪个机器快?解答:忽略所有等待和系统时间的影响,可用CPU时间来比较机器的性能。
基于CC2005的“计算机组成原理与结构”课程改革摘要:本文在IEEE/ACM关于计算(Computing)学科本科教学参考计划CC2005(Computing Curricula 2005)指导下,针对我国高校本科计算机专业建设的现状,提出基于CC2005的“计算机组成原理与结构”课程内容体系的改革,采用整体“自顶向下”、细节“自底向上”的方法,从整机到部件、从原理到芯片的方式组织课程内容,并探讨了与课程群内部其他核心课程、选修课程之间的关系。
关键词:计算机组成原理与结构;CC2005;课程改革1引言WTO关于教育服务的条款对高等教育发展将产生直接影响,而经济结构调整与就业结构变化也将对高等教育发展产生更重大的影响。
随着计算机和通信技术近十年来的蓬勃发展,中国开始进入信息化社会,以信息化带动工业化,全面建设小康社会,已经成为我们的基本国策和全国人民共同奋斗的宏伟目标。
在这样的历史背景下,重新审视高等学校本科计算机专业的课程改革具有十分重要的意义。
目前,随着网络化和信息化的发展,计算机的软件领域课程,尤其是网络和网络应用类课程,越来越得到各高校的重视,国内很多高校的计算机专业逐渐转变为“软件工程”和“计算机科学”方向,过分强调软件与应用,而缺乏计算机体系结构、计算机组成与结构等硬件方向的培养。
但是,从就业市场反馈的信息看,计算机软件人才已经供大于求,而熟悉硬件设计的人才则供不应求,年薪也远远高于同等的软件人才。
不熟悉计算机组织与结构、不了解计算机体系结构的软件人才,也尤如建立在空中的楼阁,没有基础,从小而言无法满足人才市场的需求,从大而言无法担负我国科技兴国,在国际信息化竞争中立于不败之地的重任。
“计算机组成原理与结构”课程要求掌握计算机系统各个部件的组成原理,最终达到从系统、整机的角度理解计算机的结构与组成,是国内大多数本科高等学校“计算机科学与技术”专业的专业基础课,是计算机硬件与结构方向非常重要的一门课程,这门课程的建设与改革直接关系到人才培养中计算机硬件与结构方向教育的成败。