资源描述
计算机系统结构(ComputerArchitecture),计算机系统结构=指令系统体系结构+机器组成+,2020/4/26,1,指令系统体系结构,可编程存储系统的组成数据类型和数据结构:编码和表示指令格式指令(或操作码)集合对数据项和指令进行寻址和访问的模式意外情况,2020/4/26,2,计算机系统结构的定义变化,五十年代六十年代:计算机算逻设计七十年代八十年代:指令系统设计,特别是针对编译的ISA设计九十年代:CPU设计、存储系统、I/O系统、多处理器、网络等2005-:CPU设计、存储系统、I/O系统、多处理器、网络、SoC等,2020/4/26,3,2020/4/26,4,2020/4/26,5,2020/4/26,6,2020/4/26,7,2020/4/26,8,2020/4/26,9,课程目的及特点,目的掌握处理器体系结构设计与实现的基本知识学习计算机工程方法特点深入、具体MIPS与微电子专业紧密结合基础知识要求计算机原理数字电路C语言,2020/4/26,10,计算机系统结构设计基础及性能和成本数据类型和数据表示及指令系统的设计原理和风格流水技术和超标量技术存储体系,课程简介课程内容,2020/4/26,11,计算机的发展历史,1833年,英国数学家CharlesBabbage设计制造的“analyticalengine”,计算机与微处理器的发展历史,著名诗人拜仑的女儿AdaLovelace曾受雇为这台机器编写软件,她应该是世界上最早的程序员。,2020/4/26,12,微处理器的发展,计算机与微处理器的发展历史,2020/4/26,13,微处理器的发展,计算机与微处理器的发展历史,2020/4/26,14,微处理器的发展,VonNeumann曾预言整个美国只需要10台计算机,计算机与微处理器的发展历史,2020/4/26,15,计算机与处理器中的基本概念,前言,2020/4/26,16,二十世纪信息技术领域最重要的两项发明,数字式电子计算机(1946.2.14).计算机开始补充,甚至替代所有其它形式的信息处理工具,晶体管(1946)和集成电路(1957).Moore定律:按每个芯片上的晶体管数量统计,集成电路每年的改进速度为60%。存储容量遵从上述规律改进光传输线路遵从上述规律改进电话线遵从上述规律改进,2020/4/26,17,Moore定律,10G1G100M10M1M100K10K1K0.1K,1970,1980,1990,2000,2010,1965,GordonMoore预测半导体芯片上的晶体管数目每一年半翻两番,2020/4/26,18,处理器每三年速度翻两番;在过去15年,性能改进1000倍存储器DRAM容量:三年速度翻两番;在过去15年,容量增大1000倍每位成本:每年改进25%磁盘容量:每1.5年翻一番每位成本:每年改进60%在过去十年,容量增大120倍最新的台式PC配置处理器频率:1.5GigaHertz存储器容量:1.0GigaBytes磁盘容量:100GigaBytes(0.1TeraBytes)时髦的计量单位:Mega=Giga,Giga=Tera,计算机技术日新月异,2020/4/26,19,基本概念1:,为什么现在是64位处理器时代?处理器硬件的发展遵循MooresLaw软件是处理器得以发展最重要的因数在新的处理器出来之前都要向软件俯首称臣!,2020/4/26,20,基本概念2:软件,二进制:1000-1100-1010-0000汇编程序:AddAB高级语言:A+B编译器(Compile)链接器(Link)操作系统(OS)应用软件,2020/4/26,21,软件分类,软件,2020/4/26,22,计算机的5大组成部分,2020/4/26,23,基本概念-4:体系结构,计算机体系结构:硬件组成软件指令体系结构ComputerArchitecture:HardwareSoftwareInstructionSetArchitecture,2020/4/26,24,计算机组成和体系结构区别,计算机体系结构是指那些能够被程序员所见到的计算机系统的属性,即概念性的结构与功能性,包括指令集、数据类型、存储器寻址技术、I/O机理等等,大都属于抽象的属性。计算机组成是指如何实现计算机体系结构所体现的属性。例如:一台机器是否具备乘法指令的功能,这是一个结构的问题,可是实现乘法指令采用什么方式的问题,则是一个组成问题。因此,两台机器指令系统相同时,只能认为他们具有相同的结构,其组成方式可以完全不同。,2020/4/26,25,计算机组织与系统结构,计算机系统结构:计算机系统结构描述从用户角度看到的计算机。(建筑设计师)指令集寄存器存储器结构中断(异常)处理计算机组成:用户不可见的处理器内部实现方式(建筑工程师)流水线Cache总线,2020/4/26,26,处理器内部总线MemoryIO软件工艺.,计算机性能,2020/4/26,27,计算机的分类,巨型机(SuperComputer)大型机(Mainframe)小型机(MiniComputer)工作站(WorkStation)微机(PC)根据中国计算机学会主编的英汉计算机词典的解释,PC是指“由微处理器芯片装成的,便于搬动而且不需维护的计算机”。,2020/4/26,28,计算机处理器系统结构通常指体系结构ISA(InstructionSetArchitecture,指令集体系结构,简称体系结构)和微体系结构uA(Micro-Architecture),ISA是处理器由程序员观察处理器的属性,也就是处理器的概念结构与功能行为,定义计算机与软件之间的接口,供操作系统、编译程序以及汇编程序等的设计者使用,uA是指处理器内部组织中各功能部件的特性、它们之间的互连方式、信息流性质以及管理这些信息流的逻辑与实现SPARCstation-2和SPARCstation-20的区别:ISA相同,uA不同,2020/4/26,29,通用高性能Pentiums,Alphas,SPARC用于支持通用软件重量级操作系统-UNIX,NT工作站、微机,以及大规模并行系统嵌入式微处理器和处理器核ARM,486SX,Hitachi,NECV800特定应用程序轻量级(通常要求实时)操作系统支持DSP移动电话、消费类电子(例如,STB、CDplayers)微控制器非常注重成本字长小通常为8位是目前使用数量最多的一类微处理器汽车、空调、高级微波炉,.,微处理器分类,2020/4/26,30,处理器技术发展趋势,2020/4/26,31,研究微处理器技术不变的主题:速度(Performance)面积(Cost)功耗(Power)制造(Manufacture),2020/4/26,32,提高速度:流水技术(Pipeline),2020/4/26,33,提高速度:指令并行,SuperScaleOut-of-OrderRegisterRenameVLIWCompilermultiprocessormultithreaded,2020/4/26,34,Summary:每位微电子专家或工程师都要了解计算机的内部机理,2020/4/26,35,计算机体系结构,所有的计算机都包含五个部件处理器:(1)数据通路datapath和(2)控制control(3)存储器Memory(4)输入设备和(5)输出设备并非所有的存储器都平等Cache:快速(昂贵)的存储器处于接近处理器的地方主存:稍价廉的存储器-我们可以大量使用输入输出(I/O)设备的组织比较杂乱速度差异大:图形vs.键盘需求差异大:速度,标准,成本.等等.,2020/4/26,36,计算机系统的设计准则计算机性能计算机成本本章小结,第一章计算机系统结构设计基础,目录,2020/4/26,37,一.几个重要概念1.计算机系统按功能可划分成多层次结构,计算机系统结构的含义,2020/4/26,38,2.软件和硬件两者在实质上是完全不同的,但他们的功能在逻辑上是等价的。两者在实现时,将在性能价格比上以及实现难易程度上反映出不等价。3.具有相同功能的计算机系统,他们的软、硬间的功能分配,可在很宽的范围内变化,因此软、硬件的交界面是含糊,没有明确的界定界线。4.透明性:一种本来存在的有差异的事物或属性,从某种角度来看似乎不存在,称为透明性现象。,计算机系统结构的含义,2020/4/26,39,二.计算机系统结构的外特性,应包括以下几个方面:1.指令系统2.数据表示3.操作数的寻址方式4.寄存器的构成定义5.中断机构和例外条件6.存储体系和管理7.I/O结构,包括I/O设备的连接方式,处理机、存储器与I/O设备间的数据传递方式和格式、传递的数据量及传递操作结束的表示及出错指示等。8.机器工作状态的定义和切换9.信息保护,包括保护方式及有关的硬件支持等。,计算机系统结构的含义,2020/4/26,40,三.计算机系统结构的内特性1.定义计算机系统的外特性是由硬件和固件来加以实现,他们本身也是由电路、逻辑门或寄存器传输级所组成,但这些组成的描述通常过于详细,对他们的抽象便成为计算机系统的内特性,也称为计算机组成,它实际是计算机系统的逻辑实现。,计算机系统结构的含义,2020/4/26,41,2.计算机系统的内特性所涉及的内容计算机系统的内特性所涉及的内容包括机器级内的数据流和控制流的组成和cpu内部及主存等部件的逻辑设计。3.计算机实现计算机实现是指计算机组成的物理实现。包括:(1)处理机、主存等部件的物理结构(2)器件的集成度和速度的确定(3)器件、模块、插件、底板的划分与连结(4)微机组装及整机装配技术(5)专用器件的设计及信号传输、电源、冷却方法等,计算机系统结构的含义,2020/4/26,42,计算机系统结构的含义,四.计算机系统的微系统结构微外特性1.概念它是由微程序编写者看到的计算机的外部特性逻辑结构和功能能力,把它作为一个抽象级,可以定义硬件和固件(微代码)之间的界面。,2020/4/26,43,计算机系统结构的含义,2.计算机内、外特性与微系统结构及寄存器传输级之间的关系,2020/4/26,44,按“流”分类1.概念Flynn教授在1966年提出的按指令流和数据流的多倍性概念进行分类的方法。(1)指令流指机器执行的指令序列,数据流是指指令流所调用的数据序列(2)多倍性是指在机器中最受限制的部件上的处在同一执行阶段的可并行执行的最多指令或数据个数。,计算机系统结构的分类,2020/4/26,45,计算机系统结构的分类,2.分类(1)单指令流单数据流(SISD)(2)单指令流多数据流(SIMD)(3)多指令流单数据流(MISD)(4)多指令流多数据流(MIMD),2020/4/26,46,计算机系统结构的分类,3.Flynn分类法的缺点对于广泛流行的标量及向量流水计算机应该属于哪一类系统,不很明确。有的学者认为:流水机归为SIMD有的学者认为:标量流水机视为SISD类型,而把向量流水视为SIMD类型,2020/4/26,47,计算机系统结构的分类,二.冯氏分类法1.概念冯泽云于1972年提出用最大并行度对计算机系统结构进行分类。最大并行度Pm:计算机系统在单位时间内能处理的最大的二进制位数。字宽:在一个字中同时处理的二进制的位数。位片宽:一个位片中能处理的字数。,2020/4/26,48,计算机系统结构的分类,2.四种不同分类(1)字串位串(第一代计算机发展初期)(2)字并位串(传统并行单处理机)(3)字串位并(4)字并位并,2020/4/26,49,计算机系统结构的分类,三.按“并行级”和“流水线”分类1977年,Handler提出在计算机系统中的三个子系统级别上按并行程度及流水线处理程度进行分类的方法。三个层次为:(1)处理控制器(PCU)(2)算数逻辑部件(ALU)(3)位级电路(BLC),2020/4/26,50,计算机系统的设计准则,2020/4/26,51,计算机系统设计的定量原理,一.计算机系统设计的定量原理1.只加速使用频率高的部件(makethecommoncasefast)2.阿姆达尔(Amdahl)定律定义:阿姆达尔定律是指,系统中对某一部件采用某种更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率,或所占总执行时间的比例。,性能加速比,2020/4/26,52,计算机系统设计的定量原理,3.程序访问的局部性规律(1)定义所谓程序访问局部性是指程序执行中,呈现出频繁重新使用那些最近已被使用过的数据和指令的规律。(2)分类程序访问局部性主要反映在时间和空间局部性两个方面A)时间局部性是指程序中近期被访问的信息项很可能马上被再次访问B)空间局部性是指那些在访问地址上相邻的信息项很可能会被一起访问。,2020/4/26,53,计算机系统设计的定量原理,二.计算机系统设计者的主要任务1.满足用户功能上的要求以及相应的对价格和性能的要求2.在满足功能要求基础上,进行设计的优化3.设计应能适应日后发展趋势,2020/4/26,54,计算机系统设计的定量原理,三.软件的发展趋势1.程序所要求的存储空间增长,大约每年增长1.5-2倍,相应相应要求地址位每年增长0.5-1位2.汇编语言被高级语言所替代,编译技术将起到更大作用,因此系统结构应能更好的支持编译要求。,2020/4/26,55,计算机系统结构的发展,一.计算机系统结构的演变1.冯.诺依曼结构存在以下缺点(1)存在两个主要的瓶颈。一个是物理瓶颈,即在CPU和存储器之间存在频繁的信息交换,二是智能瓶颈,即每次只能顺序的执行一条指令。(2)低级的机器语言和高级的程序设计语言之间存在着巨大的语义差距(3)复杂的数据结构对象无法直接放到一维线性地址空间存储器中,必须经过地址映射,2020/4/26,56,计算机系统结构的发展,2.改进的冯.诺依曼机特点重要的几点:(1)采用虚拟存储器,方便了高级语言编程(2)采用存储器交叉访问技术以及无冲突并行存储器,以加宽存储器带宽(3)采用流水技术(4)采用多功能部件,2020/4/26,57,计算机系统结构的发展,3.RISC介绍RISC技术开创了一种全新的指令系统设计风格,追求平均每个机器周期可处理一条指令,到了80年代中、后期出现了新一代RISC计算机,出现像超标量,超常指令字以及超级流水等机器。,2020/4/26,58,简单指令(RISC):20-80%原则,2020/4/26,59,计算机系统结构的发展,二.软件、应用和器件对系统结构发展的影响1.软件可移植性方法(1)采用模拟和仿真方法模拟方法是指,用软件方法在一台现有的计算机上实现另一台计算机的指令系统仿真方法指,当宿主机本身采用微程序控制时,则对B机指令系统每条指令的解释执行可直接由A机中对应的一段微程序来实现,此时A机称为宿主机,B机称为目标机。(2)采用系列机方法(这是一种通过统一的机器语言来实现软件移植的方法)(3)统一标准的高级语言(应用软件,且是源程序一级的),2020/4/26,60,计算机系统结构的发展,2.应用需求对系统结构发展的影响(1)高的运算速度(2)大的存储容量(3)大的I/O吞吐率3.器件对系统结构的影响器件是促使计算机系统结构不断发展的最活跃因素(TTlCMOS,工艺改变等),2020/4/26,61,软件的表示层次,2020/4/26,62,为什么要评估性能,对于用户,可以对比不同的产品,从而选择适合自己的产品对于设计者,可以评价不同的设计、实现方案的优劣,找出影响性能的主要因素,从而改进设计对于销售计算机的商家,2020/4/26,63,性能的定义,2020/4/26,64,计算机性能的定义,响应时间(ResponseTime):从开始任务到任务结束所需要的时间吞吐率(Throughput):给定时间内所完成的任务量,2020/4/26,65,响应时间与吞吐率的关系,2020/4/26,66,评估性能,衡量计算机性能(速度)最确切、最可信的标准是时间!我们这里所关心的是CPU时间,即完成特定任务所需的CPU执行时间。,2020/4/26,67,时钟周期,对于给定的程序:执行时间=所需的时钟周期数x时钟周期=所需的时钟周期数/时钟频率,设计者经常面临着时钟周期数多少与时钟周期长短的折衷问题。对于指定的处理器体系结构,采用不同的组织,通常减少时钟周期数的方案会导致时钟周期加长,反之亦然。,2020/4/26,68,时钟周期,对于给定的程序:时钟周期数=所需的指令数x平均每条指令的时钟周期数=,不同类型的指令执行所需的时钟周期数不同,例如乘法指令比加法指令所需的周期数多,浮点运算指令比整数运算指令所需的周期数多。平均每条指令的时钟周数,Cyclesperinstruction简称CPI。,2020/4/26,69,CPU执行时间,对于给定的程序:执行时间=所需的指令数xCPIx时钟周期,2020/4/26,70,其它不全面的性能度量方式,机器代码大小,由于精确度量程序执行时间非常困难,人们试图找到不需测量执行时间的性能度量方法,这些方法都只在特定的情况下有意义,并不能全面地、真实地反映计算机的性能。,2020/4/26,71,其它不全面的性能度量方式,MIPS(millioninstructionspersecond),从表面上看,越快的机器MIPS值越大;MIPS使用起来十分直观,易理解,但MIPS并不能全面反映性能,有时甚至与真实情况相反!,2020/4/26,72,基准程序(benchmark),基准程序(benchmark):是挑选出来专门用于评价计算机性能的程序。,好的基准程序应该能涵盖计算机实际应用中各个主要应用领域的程序的特征,使得测试结果能反映实际应用中的计算机的实际性能。(即:1.覆盖面广2.反映实际性能),2020/4/26,73,基准程序(benchmark),2020/4/26,74,基准程序(benchmark),1988年,EETimes与SUN,MIPS,HP,Apollo,DEC联合成立SPEC,寻找一组标准的程序,输入数据,度量方法来公正地衡量不同系统的性能。,2020/4/26,75,SPEC,1989年第一版,10个程序,用一个数值来表示性能(相对于VAX11/780)SPEC92,6个整数,14个浮点程序SPEC95,8个整数,10个浮点程序一般3-5年更新一个版本SPEC2000,2020/4/26,76,SPEC,1989年第一版,2020/4/26,77,性能改进,2020/4/26,78,性能改进,2020/4/26,79,AmdahlsLaw(另一种表述),例:假设一个程序在一台机器上运行需要100秒,其中乘法指令执行占80秒,那么,为了使执行性能提高到原来的4倍,需要将乘法指令性能改进多少倍呢?如果要使执行性能提高到原来的5倍呢?,2020/4/26,80,AmdahlsLaw(另一种表述),Amdahl定律:执行时间改进部分执行时间改进后=-+执行时间未改进部分改进比率加速比受程序中没有改进部分的制约。或者解释为:总的性能提高取决于所改进部分在整体中所占的比例大小。,2020/4/26,81,哈工大微电子中心研制的Lilac,500thousandgatesdiearea4x4mm2329pinsoperatesat133MHz,2020/4/26,82,本章小结,在所有的系统结构的特性中,指令系统的外特性是最关键的,因此计算机系统结构有时就简称为指令集系统结构进行计算机系统设计时,应遵循的定量设计原则有:只加速使用频率高的功能部件;系统受慢速部件约束以及访问具有局部性。衡量计算机性能的最常用标准是时间和速度决定CPU性能的主要参数是时钟(或速率)、每条指令所需平均时钟周期数以及程序的指令数,数据类型及数据表示,$2.1数据类型一、概述1.数据分类(软件的角度)(1)用户定义的数据(2)系统数据(运行时间环境)(3)指令2.数据类型与数据的不同数据类型除了是指一组值的集合外,还定义了可作用于这个集合上的操作集。例如:整数数据类型是指整数值集合与可作用于该整数值集合的算术操作集合的合成。,数据类型及数据表示,二、基本数据类型1.二进制位及其位串2.整数及自然数(正整数)3.实数(浮点数)4.字符和布尔数三、结构数据类型1.定义结构数据类型是一组由相互有关的数据元素复合而成的数据类型。例如:向量和数组、字符串、堆栈、队列和记录等都属于这类结构数据类型。,数据类型及数据表示,$2.2数据表示一、数据表示、数据类型和数据结构的关系1.定义(1)数据表示是指可由硬件直接辨认的数据类型(2)数据结构是指结构数据类型的组织方式,它反映了在应用中所用到的各种数据元素或信息单元间的结构关系。例如:常用的向量、表、树、队列和矩阵等均是数据结构的一种形式,通常计算机硬件是无法直接识别这些数据结构,他们必须变换成数据表示方可为计算机所识别。2.区别数据结构所研究的课题是如何用最少的存储空间来存储这些数据结构以及采用什么样的算法能最快、最简单地存储和访问它们。数据表示要考虑的是正确、可靠、便于机器处理和节省存储空间。,数据类型及数据表示,二、二进制的定点、浮点数据表示1.二进制定点数据表示形式(1)符号数值(2)反码(3)补码(4)带偏移增值码注:其中最常用的是补码形式,数据类型及数据表示,2.二进制浮点表示(1)IEEE754标准介绍IEEE754标准是IEEE于1985年公布并1990年审核的浮点数标准。在此标准公布前,不同计算机公司设计的计算机在浮点数的处理方面均按照各自的规范进行设计,比如在字长、精度、舍入方式等等存在很大的差异。IEEE754的出现在一定程度上规范了计算机浮点运算单元的设计规则。,数据类型及数据表示,(2)浮点数的表示方法(二进制)(-1)S2E(b0.b1b2b3b4bp-1)S:Sign-bit0or1E:Exponentbi:0or1b1b2b3b4bp-1小数部分(fraction),数据类型及数据表示,(2),单精度浮点数存储格式,双精度浮点数存储格式,尾数f=b1b2b3b4bp-1b0为隐含位,那么b0是如何表示的呢?,浮点数的表示方法(续),数据类型及数据表示,(2),浮点数的表示方法(续),指数偏移量BWhybiasedformat?当真值用补码表示时,由于符号位和数值部分一起编码,很难从补码的形式上直接判断其真值的大小。如:X=21,对应的二进制数为+10101,则x补=010101;X=-21,对应的二进制数为-10101,则x补=110101;从形式上看,会得出110101010101,其实恰恰相反。若对每个真值加上一个2(n-1)-1,情况就发生了变化:X=010101加上25-1可得010101+011111=110100;X=110101加上25-1可得110101+011111=010100;比较可得,110100010100。这样,从代码本身就可看出真值得大小。,数据类型及数据表示,指数偏移量BWhy127?127=2(8-1)-1.e=E+B0e2550127255-1270128对双精度而言,偏移量为:2(11-1)-1=1023.,数据类型及数据表示,(2),浮点数的表示方法(续),规格化数(NormalizedNumber):偏移指数e的二进制位不全为0,也不全为1的浮点数为规格化数。E=e-B此时f表示为:f=1.F;IEEE标准规定此时小数点左侧的隐含位b0为1。非规格化数(DenormalizedNumber):偏移指数的二进制位全部为0的浮点数为非规格化数。此时e,f的计算都非常简单:E=1-bias;f=0.F;注:此时小数点左侧的隐含位b0为0。,数据类型及数据表示,(2),浮点数的表示方法(续),为什么E会等于(1-bias)而不是(-bias),这主要是为规格化数值、非规格化数值之间的平滑过渡设计的。有了非规格化形式,我们就可以表示0了。把符号位S值1,其余所有位均置0后,我们得到了-0.0;同理,把所有位均置0,则得到+0.0。非规格化数还有其他用途,比如表示非常接近0的小数,而且这些小数均匀地接近0,称为“逐渐下溢(graduallyunderflow)”属性。,数据类型及数据表示,(2),浮点数的表示方法(续),特殊数值:当e的二进制位全为1时为特殊数值。此时,若F的二进制位全为0,则浮点数表示无穷大,若S为1则为-,若S为0则为+;此时,若F的二进制位不全为0,v称为NaN(NotaNumber),表示这不是一个合法实数或无穷,或者该数未经初始化。,数据类型及数据表示,(2),浮点数的表示方法(续),V为8位的浮点数-7E80e15S1-bite4-bitf3-bit,数据类型及数据表示,(2),浮点数的表示方法(续),Exception:IEEE754规定了5种异常情况:上溢(Overflow),下溢(Underflow),除以零(DivideByZero),无效(Invalid)以及不确定(Inexact)。上溢,下溢异常情况在大多数系统是经常发生的。以单精度为例,它的溢出有四种情况:正数大于(1-2(-24))*2128的情况为正上溢。正数小于0.5*2(-127)的情况为正下溢。负数小于-(1-2(-24))*2128的情况为负上溢。负数大于-0.5*2(-127)的情况为负下溢。无效异常时对应于一定的操作的,如:-1,-,0/0等,这时没有任何浮点数或者这样的自然值可以对结果进行表示。当其发生时,得到的结果是一个NaN。不确定异常是一种特殊的“异常”,是IEEE浮点运算所特有的,它是在运算结果必须舍入或当其上溢时发生,数据类型及数据表示,(2),浮点数的表示方法(续),RoundingmodeIEEE754标准规定了四种舍入模式:就近舍入,零舍入,+舍入,-舍入。1.就近舍入:目标是使舍入结果尽可能接近实际值(0舍1入)。2.零舍入:通过截断实际值的多余位来实现。3.+舍入:结果向正无穷大方向舍入。所有值被舍入到下一个可能值,负数的舍入结果将截去多余位,正数的舍入结果为下一个较大的有效值。4.-舍入:结果向负无穷大方向舍入。负数的舍入结果将为下一个较小的有效值,正数的舍入结果将截去多余位。,数据类型及数据表示,(2),浮点数的表示方法(续),Roundingmodeexample,数据类型及数据表示,(2),浮点数的表示方法(续),实现方法b0bbbbbbbn-1bnRrounding-bitSstick-bitbs=|bbn-1bn就近舍入b+bc,b零舍入舍掉b即bc,b舍入浮点数为“”,b+bc,b浮点数为“”,bc,b舍入浮点数为“”,bc,b浮点数为“”,b+bc,b,数据类型及数据表示,3.向量数据表示(1)对向量数据进行操作的步骤a.把源向量的长度和起始地址设置好b.用一条向量指令对整个向量的所有元素进行运算(2)稀疏向量的处理a.定义含有大量零元素的向量,成为稀疏向量。b.压缩向量的方法第一步先形成一个向量Z,用来指明稀疏中各元素的状况及所在的位置。根据Z向量,形成压缩向量,数据类型及数据表示,A0,A1,A2,A3,A4,A5,A0,A5,0,1,0,1,1,1,压缩向量、稀疏向量和有序向量示意图,数据类型及数据表示,4.自定义数据表示(1)自定义数据表示分类a.带标志符的数据表示b.数据描述符表示(2)带标志符的数据表示的优缺点优点:简化了指令系统,易于对编程进行查错,能自动进行数据类型变换,简化编译,方便程序调试。缺点:数据占用的存储空间增加,指令执行速度减慢,必须用专门的指令完成标志符的初始化。(3)数据描述符,标志符,数据,描述符标志位,特征标记,数据块长度,数据块起始地址,数据类型及数据表示,上图中各部分解释:1)描述符标志位部分指名这是一个数据描述符。2)特征标记部分指名所描述数据的各种特征3)长度部分指名所描述数据的长度。4)起始地址部分指名了所描述的一组数据的首地址。,本节小结,两类数据类型(基本型和结构型)二进制数据表示和浮点数带标志符的数据表示及其优缺点描述符用来描述结构化数据的结构(增加存储时间),指令集InstructionSet,第三章,A.LanTuring,1936年论数字计算在决策问题中的应用:“计算机应有一个带读写头的控制器和一根假设无限长的工作纸带。纸带被分成若干个方格,每一个格里可写上一个字母符号,控制器在纸上左右移动,其内的读写器读出格内的符号或改写符号,最后计算得出结果。”“计算机有三种工作:移动到相邻的方格;改变当前方格的内容;进入到新的状态”-图灵机,一、概论,二、典型指令的执行,三、指令分类(按存放操作数),四、寻址方式,五、基本指令操作,六、操作数大小及选择,七、指令格式,八、编译器,九、指令系统标准,本章小结,受限于AmdahlLaw,SPEC的性能检测结果!如果代码大小至关重要,使用可变长度指令如果性能至关重要,使用固定长度指令瞄准最低限要求的指令系统,实现:硬件实现简单,成本低对编译器支持好机器代码小功耗低,
展开阅读全文