教学课件-计算机体系结构设计_第1页
教学课件-计算机体系结构设计_第2页
教学课件-计算机体系结构设计_第3页
教学课件-计算机体系结构设计_第4页
教学课件-计算机体系结构设计_第5页
已阅读5页,还剩673页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机体系结构设计第1章

论第2章

数的表示与计算体系第3章

指令系统设计第4章

中央处理器体系结构设计第5章

存储器体系结构设计第6章I/O系统设计第7章

并行处理与普适计算第8章生物计算机第9章

光计算机第10章

量子计算机主要参考文献计算机体系结构设计第1章绪论1.1计算机体系结构的基本概念1.2计算机的发展简史1.3计算机体系结构的分类1.4计算机系统的性能指标1.5计算机的应用习

1第1章

绪论1.1计算机体系结构的基本概念

计算机体系结构(ComputerArchitecture):又称为计算机系统结构,指机器语言程序员看到的传统机器级具有的属性结构,包括概念性结构和功能性结构两方面。

计算机组织(ComputerOrganization):也称为计算机组成,指计算机体系结构的逻辑实现或逻辑结构,即物理机器级内各部件的功能及各部件的联系,各事件的控制方式与排序方式,包括物理机器级内数据流和控制流的组成及逻辑设计等。

计算机实现(ComputerImplementation):指计算机组成的物理实现或物理结构,即器件技术(占主导作用)和微组装技术,包括处理机、主存、外设等器件的物理结构与器件集成,信号传输技术,模块、插件、底板的划分与连接,电源、冷却及整机装配技术等。

计算机系统(ComputerSystem)包括硬件和软件两大部分。

计算机硬件(ComputerHardware):或硬件系统,指计算机系统的实体部分,即计算机系统中电子、机械、光电等元件组成的各种物理器件的总称。

计算机软件(ComputerSoftware):或软件系统,指计算机系统中的软体部件,即计算机程序及其文档。计算机软件一般分为系统软件和应用软件两大类。图1.1计算机系统1.2计算机的发展简史1.2.1机械式计算机的发展算盘是人类最早的计算工具帕斯卡的加法机图1.3哈佛Mark-I

Mark-I是一种完全机电式的计算机。它长15米,高2.4米,有15万个元件,还有800千米导线,使用了3000多个继电器,重量达5吨。其核心是72个循环寄存器,每个可存放一个正或负的23bit的数字。数据和指令通过穿孔卡片机输入,输出则由电传打字机实现。其加法速度是300ms,乘法速度是6s,除法速度是11.4s。IBM公司方面把它命名为ASCC(AutomaticSequenceControlledCalculator)。1.2.2电子计算机硬件结构的发展时代年份硬件软件应用一1946~1958电子管机器语言汇编语言科学计算二1959~1965晶体管高级语言数据处理三1965~1971小规模集成电路(Small-ScaleIntegration,SSI),中规模集成电路(Medium-ScaleIntegration,MSI)操作系统工业控制四1971~1990大规模集成电路(Large-ScaleIntegration,LSI)数据库网络商业领域五1990年至今超大规模集成电路(Very-large-scaleintegration,VLSI)人工智能各个领域表1.1电子计算机发展的5代

Colossuscomputer(巨人)是世界上最早的电子数字机器。1936年,年仅23岁的图灵提出了日后被称为“图灵机”的抽象装置,它可以被用来模拟任何计算机算法的逻辑。图灵Colossuscomputer(1)电子管时代(1946

~

1959年)1946年2月14日,美国宾夕法尼亚大学莫尔学院制成的大型的电子数值积分计算机ENIAC(ElectronicNumericalIntegratorAndCalculator)通过验收,这就是人们常常提到的世界上第一台电子计算机。运算速度比继电器计算机快1000倍,功率为150千瓦,18000多只电子管、10000多只电容器、70000只电阻、1500多个继电器,占地160多平方米,重达30吨,5种功能(每秒5000次加法运算、每秒50次乘法运算、能进行平方和立方计算、sin和cos函数数值运算、其他更复杂的计算)。但是,尚未完全具备现代计算机的主要特征,并且采用十进制计算。冯•诺依曼ENIAC(2)晶体管时代(1959年—1964年)IBM7090晶体管(3)中、小规模集成电路时代(1964年—1975年)IBMS/360-20(4)超大规模集成电路时代(1975年—1990年)IBMPCAPPLEII(5)超级规模集成电路时代(1990年—现在)1.2.3微处理器的发展

1971年11月15日,全球第一款微处理器“Intel4004”从Intel公司诞生。

微处理器(Microprocessor,µP或MPU):是由一片或几片大规模集成电路组成的中央处理部件,包括运算器、控制器和一定数量的寄存器。

微型计算机:是指以微处理器为基础,配以内存储器和I/O接口电路和辅助电路构成的一个相对独立的电路系统。

微型计算机系统:是指微型计算机在配以相应的外围设备,安装必要的软件构成的系统。时代年份位数典型处理器一1971~19734位Intel4004,Intel8008,等二1974~19778位Intel8080/8085,Z80,M6800,等三1978~198416位Intel8086,8088,Z8000,M68000,等四1985~199232位Intel80386,80486,等五1993-200564位IntelPentium系列,AMDK6,等六2005年至今多核Intel酷睿(core)系列,AMD速龙,等表1.2微处理器的6代1.2.4从模拟计算机到数字计算机

数字式电子计算机(DigitalElectronicComputer),即数字计算机,是当今世界电子计算机行业中的主流,其内部处理的是一种称为符号信号或数字信号的电信号。在时间上和数量上都是离散的物理量称为数字量,把表示数字量的信号叫数字信号,把工作在数字信号下的电子电路叫数字电路。由于这种处理信号的差异,使得其组成结构和性能优于模拟计算机。表1.3模拟计算机与数字计算机的比较1.2.5计算机软件的发展(1)机器语言阶段(2)汇编语言阶段

汇编程序(Assembler,或汇编器),是将汇编语言编制的程序(称为源程序,如asm文件)翻译成机器语言程序(称为目标程序,如obj文件)的工具,并进一步连接成为可执行程序(比如exe文件)。使用符号语言编程序仍然需要面向一台具体的机器。(3)高级语言阶段包括编译方式和解释方式。(4)操作系统阶段(5)Web服务阶段1.3.1冯▪诺依曼体系结构1.3计算机体系结构的分类冯▪诺依曼思想的基本要点可归纳如下:(1)计算机由输入设备、输出设备、运算器、存储器和控制器五大部件组成。(2)采用二进制形式

表示数据和指令(3)采用存储程序方式输入设备存储器输出设备运算器控制器图1.22典型的冯•诺依曼计算机体系结构图1.3.2哈佛体系结构

在DSP(digitalsignalprocessor)算法中,最大的工作量之一是与存储器交换信息,这其中包括作为输入信号的采样数据、滤波器系数和程序指令。为此,哈佛大学提出了与冯▪诺依曼结构完全不同的另一种计算机结构,人们习惯称之为哈佛结构。使用哈佛结构的处理器有:AVR、ARM9、ARM10、ARM11等。图1.24哈佛结构图1.25哈佛结构指令和数据有不同的数据宽度图1.23冯•诺依曼结构的处理器对存储器进行读写操作1.3.3Flynn计算机体系结构的分类

1966年,美国斯坦福大学教授Michael.J.Flynn提出根据指令流、数据流的多倍性(multiplicity)特征对计算机系统进行分类。(1)单指令流单数据流(SingleInstructionStreamSingleDataStream,SISD)(2)单指令流多数据流(SingleInstructionStreamMultipleDataStream,SIMD)(3)多指令流单数据流(MultipleInstructionStreamSingleDataStream,MISD)(4)多指令流多数据流(MultipleInstructionStreamMultipleDataStream,MIMD)1.3.4冯泽云分类法

1972年,美籍华人冯泽云教授(Tse-yunFeng)提出用最大并行度来对计算机体系结构进行分类。由此得出四种不同的计算机结构:(1)字串行、位串行(简称WSBS)。其中N=1,M=1。(2)字并行、位串行(简称WPBS)。其中N=1,M>1。(3)字串行、位并行(简称WSBP)。其中N>1,M=1。(4)字并行、位并行(简称WPBP)。其中N>1,M>1。1.3.5计算机系统的层次结构图1.26计算机系统的语言层次结构

从语言的角度出发,把计算机系统按功能划分成5个层次级别,每一级以一种不同的语言为特征,每一级都能进行程序设计。1.3.6计算机的总线组织结构图1.27现代计算机总线组织结构

采用总线结构可以大大减少传输线数,减轻发送部件的负载,并可简化硬件结构,灵活地组织、修改与扩充系统。

按其任务,可把总线分为下面几种类型。CPU内部总线:这是一级数据线,是用来连接CPU内部各寄存器和算术逻辑部件的总线。在微型计算机系统中,CPU内部总线就是芯片内的总线。部件内总线:在计算机中,通常按功能模块制作成插件,在插件上也常采用总线结构连接有关芯片。这一级属芯片间的总线。系统总线:这是连接系统内各大部件如CPU、主存、I/O设备等的总线,它是连接整机系统的基础。系统总线包括地址线、数据线、控制/状态信号线。外总线:这是计算机系统之间或计算机系统与其他系统之间的通信总线。

按照总线信息传送方向区分,总线又可分为单向总线和双向总线两种。根据不同的总线组织,可以将计算机的体系结构做如下分类:(1)单总线结构(2)双总线结构(3)通道结构

通道是一种具有处理机功能的专门用来管理I/O操作的控制部件。具有通道的计算机系统通常采用主机、通道、I/O设备控制器、I/O设备四级连接方式,这种结构具有较大的变化和扩展余地。

对于较小的系统来说,可将设备控制器与I/O设备合并在一起,将通道与CPU合并在一起。对较大的系统,则可单独设置通道。对更大的系统,可将通道发展为专门的I/O处理机,甚至功能更强的前端机。[例1.1]图1.32为主机框图,根据要求回答存数指令的信息流程。图1.32某主机框图解:取指令:PC→MAR→M→MDR→IR分析指令:OP(IR)→CU执行指令:Ad(IR)→MAR→M,ACC→MDR→M123567894CU控制单元主存储器MDRMAR存储体CPUPC控制器IR…运算器MQACCALUXI/O设备1.3.7计算机的软件系统[例1.2]环路复杂度用来定量度量程序的逻辑复杂度,常用McCabe方法来表示。一个有e条边和n个节点的流程图F,其环路复杂度为:V(G)=e-n+2 (1.1)图1.33某程序图解:根据图可知,e=8,n=6,根据公式V(G)=e-n+2,有:8-6+2=41.4.1摩尔定律

1964年,英特尔公司创始人戈登·摩尔(GordonMoore)在一篇短论文里提到:每18个月,集成电路的性能将提高一倍,而其价格将降低一半。

摩尔定律有另外一种表述方法,即每过10年计算机系统性能将会增加100倍,通讯带宽也会提高100倍,而花费的资金不会增加。1.4计算机系统的性能指标1.4.2性能测试程序

计算机性能通常用峰值性能(Peakperformance)和持续性能(Sustainedperformance)来评价。

峰值性能是指在理想情况下计算机系统可获得的最高理论性能,它不能反映出系统的实际性能。

实际性能又称持续性能,其值只有峰值性能的5%~35%,这是因为实际程序运行时会受到硬件结构、操作系统、算法设计和编程等因素的影响。

SPEC(SystemPerformanceEvaluationCooperative)一个开放性的非赢利组织,1988年由工作站厂商HP、DEC、MIPS、SUN共同发起,已成为最成功的性能测试标准化组织。基准测试程序SPECCPU2006包括12个整数基准测试程序集,17个浮点数基准测试程序集。

由于Server有不同的服务功能,因此有多类benchmarks:SPECrate—processingrateofamultiprocessor面向Server的处理器吞吐量的benchmarks,SPECCPU2000使用了SPECCPUbenchmarks,通过运行多个CPU基准测试程序副本来获得多处理机的处理速率(SPECrate)。SPECSFS--fileserverbenchmark测试网络文件系统的性能,包括磁盘、IO和处理器的性能。SPECWeb--Webserverbenchmark模拟多个用户请求Server的静态和动态页面。1.4.3基本性能指标(1)处理机字长(机器字长)

处理机运算器中一次能够完成二进制运算的位数;机器字长与系统数据总线宽度有一定相关性(不一定完全一样)。(2)主频/周期时钟周期(ClockCycle,也称为振荡周期)

时钟脉冲的倒数,计算机中最基本的、最小的时间单位。机器周期(MachineCycle,也称为CPU周期)

指的是指令周期中的某一工作阶段所需的时间。一般情况下,一个机器周期由若干个时钟周期(振荡周期)组成。指令周期(InstructionCycle)

指令周期是执行一条指令所需要的时间,一般由若干个机器周期(CPU周期)组成。总线周期(BUSCycle)

一个访存储器或I/O端口操作所用时间。含4个时钟周期。(3)CPU的运算速度

CPU执行时间:CPU执行一般程序所占用的CPU时间;

CPI(CyclePerInstruction):执行一条指令所需的平均时钟周期数;

MIPS(MillionInstructionsPerSecond):每秒百万指令数,即单位时间内执行的指令数;针对标量机(执行一条指令,只得到一个运算结果);

MFLOPS(MillionFloating-pointOperationsPerSecond):每秒百万次浮点操作数,衡量机器浮点操作的性能;针对向量机(执行一条向量指令,通常可得到多个运算结果)。(4)一个程序的CPU时间

指令数(InstructionCount,IC),计算出执行一条指令所需的平均时钟周期数(CPI):(5)吞吐量

表征一台计算机在某一时间间隔内能够处理的信息量。(6)响应时间

从输入有效到系统产生响应之间的时间度量,用时间单位来表示。(7)利用率

在给定的时间间隔内,系统被实际使用的时间所占的比率,用百分比表示。(8)总线宽度

一般指运算器与存储器之间的数据总线宽度。(9)主存储器容量

主存储器所能存储二进制数据的位数,或者说主存储器中所有存储元的总数目,通常以字节数表示。(10)主存储器带宽

单位时间内从主存储器读出的二进制信息量,一般用字节数/秒表示。1.4.4Amdahl定律

加速比的大小与两个因素有关。一个是改进前的系统中,可改进部分的执行时间在总的执行时间中所占的比例,简称为可改进比例,记为Fe。Fe总是小于1的。另一个是可改进部件改进以后性能提高的倍数,简称为部件加速比,记为Se。Se一般大于1。假设改进前的整个任务的执行时间为T0,改进后整个任务的执行时间为Tn,改进后整个系统的加速比Sn为:(1)科学计算(2)数据处理(3)自动控制(4)计算机辅助设计(5)人工智能(6)网络应用

1.5计算机的应用习题11.1,1.2,1.3,1.4,1.5Thankyou!第2章数的表示与计算体系2.1

进位计数制与数制转换2.2

无符号数与文字的表示2.3

带符号数的表示2.4

定点数与定点运算2.5

浮点数与浮点运算2.6BCD码(binarycodeddecimal)2.7

数据校验码2.8

时序逻辑电路2.9

组合逻辑电路2.10阵列逻辑电路习

题2第2章

数的表示与计算体系2.1.1进位计数制(1)十进制数(DecimalSystem)

定义:按“逢十进一,借一当十”的原则进行计数,称为十进制数,即每位上计满10时向高位进一。

特点:每个数的数位上只能是0、1、2、3、4、5、6、7、8、9十个数码;十进制数中最大数字是9,最小数字是0;基数为10;

十进制数的位权表示:N=an-110n-1+an-210n-2+…+a1101+a0100+a-110-1+a-210-2+…+a-m10-m例如,(1234)10=1×103+2×102+3×101+4×1002.1

进位计数制与数制转换(2)二进制数(BinarySystem)

定义:按“逢二进一,借一当二”的原则进行计数,称为二进制数,即每位上计满2时向高位进一。

特点:每个数的数位上只能是0,1两个数字;二进制数中最大数字是1,最小数字是0;基数为2。

二进制数的位权表示:(0010.1011)2=0×23+0×22+1×21+0×20+1×2-1+0×2-2+1×2-3+1×2-4

二进制数的运算规则:

加法运算①0+0=0②0+1=1+0=1③1+1=0(进1)

减法运算①0-0=0②1-1=0③1-0=1④0-1=1(借1)

乘法运算①0×0=0②1×1=1③0×1=1×0=0(3)八进制数(OctalSystem)

定义:按“逢八进一,借一当八”的原则进行计数,称为八进制数,即每位上计满8时向高位进一。

特点:每个数的数位上只能是0、1、2、3、4、5、6、7八个数字。

八进制数的位权表示:(567.012)8=5×82+6×81+7×80+0×8-1+1×8-2+2×8-3(4)十六进制数(HexdecimalSystem)

定义:按“逢十六进一,借一当十六”的原则进行计数,称为十六进制数,即每位上计满16时向高位进一。

特点:每个数的数位上只能是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六个数码。

十六进制数的位权表示:(90AB.CDEF)16=9×163+0×162+10×161+11×160

+12×16-1+13×16-2+14×16-3+15×16-4(5)常用计数制间的对应关系

十进制数使用D(可以省略),二进制数使用B,八进制数使用Q,十六进制使用H。八进制对应二进制十六进制对应二进制十六进制对应二进制0000000008100010011000191001201020010A(10)1010301130011B(11)1011410040100C(12)1100510150101D(13)1101611060110E(14)1110711170111F(15)11112.1.2数制间的转换(1)非十进制数转换成十进制数

非十进制数转换成十进制数采用“位权法”,即把各非十进制数按位权展开,然后求和。(2)二、八、十六进制数之间转换

把二进制数转换为八进制数时,按“三位并一位”的方法进行。

以小数点为界,将整数部分从右向左每三位一组,最高位不足三位时,添0补足三位;小数部分从左向右,每三位一组,最低有效位不足三位时,添0补足三位。然后,将各组的三位二进制数按权展开后相加,得到一位八进制数。

将八进制数转换成二进数时,采用“一位拆三位”的方法进行。(3)十进制数转换成非十进制数整数部分

十进制整数化为非十进制整数采用“余数法”,即除基数取余数。把十进制整数逐次用任意十制数的基数去除,一直到商是0为止,然后将所得到的余数由下而上排列即可。小数部分

十进制小数转换成非十进制小数采用“进位法”,即乘基数取整数。这种方法称为“乘2取整法”或“乘2法”。

2.2.1无符号数的表示2.2无符号数与文字的表示

计算机进行数据处理时,一次存取、加工和传送的数据长度称为字(word)。计算机的字长越大,其性能越优越。

所谓大端存储就是将多个字节数据依次存放,将高字节数据存放到低地址,将低字节数据存放到高地址。(a)大端存储(b)小端存储图2.1计算机中多字节数据的存储地址数据地址数据100H12H100H78H101H34H101H56H102H56H102H34H103H78H103H12H104H……104H……2.2.2十进制数串的表示

大多数通用性较强的计算机都能直接处理十进制形式表示的数据。主要有两种形式:字符串形式

即一个字节存放一个十进制的数位或符号位。一个十进制数占用连续的多个字节,使用时需要给出该数在主存中的起始地址和位数(串的长度)。主要用在非数值计算领域。压缩的十进制数串形式

即一个字节存放两个十进制的数位。它比前一种形式节省存储空间,又便于直接完成十进制数运算,从而被广泛采用。类似的,它也要给出数据在主存中的首地址和位数(又称位长,不含符号位)。位长为0的数其值为0。十进制数串表示法的优点是位长可变。2.2.3西文字符在计算机中的表示ASCII(American

Standard

Code

for

Information

Interchange)

美国信息交换标准代码ASCII是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC646。ANSI(American

National

Standards

Institute)

美国国家标准码ANSI码是一种字符代码,为使计算机支持更多语言,通常使用0x00~0x7f范围的1个字节来表示1个英文字符。超出此范围的使用0x80~0xFFFF来编码,即扩展的ASCII编码。不同的国家和地区制定了不同的标准,不同ANSI编码标准之间互不兼容。ANSI编码表示英文字符时用一个字节,表示中文用两个或四个字节。EBCDIC(Extended

Binary

Coded

Decimal

Interchange

Code)

EBCDIC为国际商用机器公司(IBM)于1963年间推出的字符编码表,根据早期打孔机式的二进化十进数(BCD,Binary

Coded

Decimal)排列而成。每个字母或数字字符都被表示为一个8位的二进制数,共有256个字符被定义。Unicode(统一码)

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案,为每种语言中的每个字符设定了统一并且唯一的二进制编码。Unicode的实现有UTF-8、UTF-16、UTF-32等编码方案。2.2.4中文字符在计算机中的表示(1)汉字编码标准

常见的汉字编码标准有GB2312-80、BIG5和Unicode等。区位码编码与ASCII一致,编码范围2121H~7E7EH。图2.2区位码

所有的汉字及符号分配在一个94行、94列的表格中,每一行称为一个“区”,编号为01区到94区;每一列称为一个“位”,编号为01位到94位。区位码和国标码关系:一级汉字(3755个)二级汉字(3008个)(扩充使用)字母、数字和各种符号 ………………19423位号…………191655568794区号(按汉语拼音排列)(按偏旁部首排列)国标码=区位码H+2020H(2)机内码国标码和机内码的关系是:机内码=国标码+8080H区位码和机内码的关系是:机内码=区位码+A0A0H(3)汉字字形码

有点阵式汉字和矢量汉字两种表示方法。图2.4点阵式汉字示例2.2.5布尔代数与布尔逻辑(1)布尔代数表2.3A与B的逻辑运算表

计算机中的逻辑运算,主要是指逻辑非、逻辑加、逻辑乘、逻辑异四种基本运算。ABAANDBAORBAXORB00000100110101111110(2)逻辑非及非门

逻辑非运算:逻辑非也称求反。常用变量前方加一~或上方加一横来表示。表2.4“非”运算(NOT)(3)逻辑与及与门

逻辑乘运算:对两数进行逻辑乘,就是按位求它们的“与”(And),所以逻辑乘又称“逻辑与”,常用记号“∧”或“·”来表示。假设有两数x、y,它们表示为:x=x0x1x2…xn,y=y0y1y2…yn,则有:z=x∧y=z0z1z2…zn(i=0,1,2,…,n),zi=xi∧yi(i=0,1,2,…,n)(4)逻辑或及或门

逻辑加运算:对两个数进行逻辑加,就是按位求它们的“或”(Or),所以逻辑加又称逻辑或,常用记号“∨”或“+”来表示。(5)逻辑异或及异或门

逻辑异运算:对两数进行异就是按位求它们的模2和,所以逻辑异又称“按位加”(Xor),常用记号“⊕”或”

”表示。有两数x、y,它们表示为:x=x0x1x2…xn,y=y0y1y2…yn,则有:z=x⊕y=z0z1z2…zn(i=0,1,2,…,n)。2.3.1机器数与真值

采用二进制表示形式的连同数符一起代码化了的数据,在计算机中统称为机器数或机器码。而与机器数对应的用正、负符号加绝对值来表示的实际数值称为真值。机器数可分为无符号数和带符号数两种。2.3带符号数的表示

综上所述,可得机器数的特点为:

数的符号采用二进制代码化,0表“+”,1代表“-”。符号通常放在数据最高位。

小数点本身是隐含的,不占用存储空间。

所以机器数表示的数值是不连续的。8位二进制带符号数中,00000000~01111111为正整数0~127,11111111~10000000为负数-127~0,其中00000000表示+0,10000000表示-0。2.3.2原码表示(1)原码的定义

设为x为二进制数据,数值部分的位数为n,给出了x为纯小数±0.x1x2…xn和x为纯整数±x1x2…xn时的原码表示的定义。

纯小数原码的定义:

纯整数原码的定义:2.3.3补码表示(1)模的概念

对于任意x,在模M的条件下的补数[x]补,可给出:[x]补=m+x(modM)。可知:1)当x≥0时,m+x大于M,把M丢掉,得[x]补=x,即正数的补数等于其本身。2)当x<0时,[x]补=m+x=M-|x|,即负数的补数等于模与该数绝对值之差。(2)补码的定义

由于计算机中的数据均采用二进制编码表示,因此通常将某数对模的补数称为补码。对于数值部分的位数为n的二进制数据x,给出了x为纯小数±0.x1x2…xn和x为纯整数±x1x2…xn时的补码表示的定义。

纯小数补码的定义:

纯整数补码的定义:2.3.4反码表示(1)反码的定义

2.3.5移码表示(1)移码的定义

纯小数移码的定义:[x]移=1+x,-1≤x<1

纯整数移码的定义:[x]移=2n+x,-1≤x<1(2)移码与补码的关系当0≤x<2n时,[x]补=x,因为[x]移=2n+x,所以[x]移=2n+[x]补。当-2n≤x<0时,[x]补=2n+1+x,因为[x]移=2n+[x]补-2n+1=[x]补-2n。其中,n为数值部分的长度。(3)移码的特点设[x]移=x0x1x2…xn,符号位x0表示真值x的正负。x0=1,x为正;x0=0,x为负。真值0的移码表示只有一种形式:[+0]移=[-0]移=1000。移码与补码的表示范围相同。纯小数的移码可以表示到-1,[-1]移=0.0...0;纯整数的移码可以表示到-2n,n为数值部分的长度,[-2n]移=00...0。真值大时,对应的移码也大;真值小时,对应的移码也小。2.4.1定点表示

定点格式(fixedpointformat)约定所有数据的小数点位置是固定不变的。

浮点格式(floating-pointformat)正好相反,数据的小数点位置是浮动可变的。2.4定点数与定点运算图2.9定点数的两种格式

当小数点位于数符和第一数值位之间时,机器内的数为纯小数;当小数点位于数值位之后时,机器内的数为纯整数。采用定点数的机器称为定点机。2.4.2加法与减法运算(1)补码加减运算的基本公式

补码加法的基本公式为:整数:[A]补+[B]补=[A+B]补(mod2n+1)

小数:[A]补+[B]补=[A+B]补(mod2)对于减法,因A-B=A+(-B),则:[A-B]补=[A+(-B)]补由补码加法基本公式可得:整数:[A-B]补=[A]补+[-B]补(mod2n+1)

小数:[A-B]补=[A]补+[-B]补(mod2)

(2)溢出判断用一位符号位判断溢出

对于加法,只有在正数加正数和负数加负数两种情况下才可能出现溢出,符号不同的两个数相加是不会出现溢出的。对于减法,只有在正数减负数或负数减正数两种情况下才可能出现溢出,符号相同的两个数相减是不会出现溢出的。利用最高位(符号位c0)和次高位(数值部分的最高位c1)的进位状况来判断

两个补码数实现加减运算时,若最高数值位c1向符号位c0的进位值与符号位c0产生的进位输出值不相同,则表明加减运算产生了溢出。采用双符号位补码进行判断。

双符号位补码又称为变形补码或模4补码,即对于任何小于1的正数,双符号位为00;对于任何大于-1的负数,双符号位为11。当两数相加的结果在符号位出现01或10两种组合时,说明出现了溢出。2.4.3原码乘法运算计算机中实现乘除运算通常采用以下三种方式:利用乘除运算子程序

这种方式的基本思想是采用软件实现乘除运算。通常是利用计算机中的加减运算指令、移位指令及控制类指令组成循环程序,得到运算结果。乘除运算逻辑部件

在加法器的基础上增加左、右移位及计数器等逻辑线路构成乘除运算部件,采用硬件实现乘除运算。在这种计算机中,设置有乘除运算指令,用户只需执行乘除指令即可进行乘除运算。设置专用的阵列乘除运算器

由于前一方式在实现乘除运算时,通常是在一个加法器上多次串行地进行运算,所以依然需要较多的运算时间。(1)原码一位乘法

在原码一位乘法中,参加运算的被乘数和乘数均用原码表示;运算时符号位单独处理,被乘数与乘数的绝对值相乘;所得的积也采用原码表示。(2)原码两位乘法

原码两位乘法算法的思想是每次判别乘数的两位,将一位乘法中的两步用一步替代。设乘法判别位为yn-1yn,zi-1为前次部分积,zi为两位乘法的第i位部分积。表2.5原码两位乘法的运算规则2.4.4原码除法运算(1)原码恢复余数法

在原码除法中,参加运算的被除数和除数均采用原码表示,所得的商和余数也采用原码表示。运算时,符号位单独处理,被除数和除数的绝对值相除。为了保证定点除法的运算结果不超过机器所能表示的定点数据范围,在进行除法之前必须判定被除数和除数是否满足定点小数除法或定点整数除法的要求。(2)原码不恢复余数法

在恢复余数法的运算过程中,可以发现将“加除数(恢复余数)→左移→减除数”的操作用“余数左移→加除数”的操作来替代,所得结果是一样的。而且这样做,既节省了恢复余数的时间,又简化了除法控制逻辑(无论余数为正还是为负,余数的操作均为左移、加/减运算两步操作)。2.4.5补码乘法运算(l)补码一位乘法

补码乘法有多种,常用的有校正法和布斯乘法。其中布斯乘法是由布斯(A.D.Booth)夫妇提出。以定点小数为例,设参加运算的被乘数x的补码为[x]补=x0.x1x2…xn,乘数y的补码为[y]补=y0.y1y2…yn,乘积为[z]补=[x×y]补。表2.6补码一位乘法的操作(2)补码两位乘法0An+1n+2位加法器控制门0Xn+10Qn

n+1移位和加控制逻辑计数器CGM00,110110右移图2.10补码Booth算法运算器框图2.4.6补码除法运算

以补码一位除法为例,运算规则如表2.8所示,商一般采用末位置1的方法,操作简便,表中i=0~n-1。表2.8补码一位除法

如要提高精度,则按上述规则多求一位,再采用以下规则对商进行处理。两数能除尽,如果除数为正,商不必加2-n;如果除数为负,商加2-n。两数除不尽,如果商为正,商不必加2-n;如果商为负,商加2-n。2.4.7移位运算(1)算术移位

必须注意的是:不论是正数还是负数,移位后其符号位均不变,这是算术移位的重要特点。表2.9不同码制机器数移位后的空位添补规则

分析任意负数的补码可发现,当对其由低位向高位找到第一个“1”时,在此“1”左边的各位均与对应的反码相同,而在此“1”右边的各位(包括此“1”在内)均与对应的原码相同,即添0;右移时因空位出现在高位,则添补的代码应与反码相同,即添1。(2)逻辑移位

无符号数的移位称为逻辑移位。逻辑移位的规则是:逻辑左移时,高位移出,低位添0;逻辑右移时,低位移出,高位添0。图2.11常见的算术移位和逻辑移位7/150CF循环右移7/150CF带进位循环左移←7/150CF带进位循环右移→7/150CF循环左移7/150←0←CF逻辑左移/算术左移7/150CF逻辑右移07/150CF算术右移2.4.8运算器的基本结构(1)半加器

半加器完成两个一位二进制数相加。若只考虑两个加数本身,而不考虑来自相邻低位的进位,称为半加。表2.12半加器真值表图2.12半加器电路图及符号由真值表可得出半加器的逻辑表达式:

(2)一位全加器加法运算:Ai+Bi+Ci=Si(Ci+1)一位全加器真值表如表2.13所示。逻辑方程:Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi表2.13一位全加器真值表图2.13一位全加器逻辑符号与逻辑电路(3)n位的行波进位加减器

n个1位的全加器可级联成一个n位的行波进位加减器(串行进位补码加法/减法器)。图2.14n位的行波进位加减器(4)先行(超前)进位加法器4位先行进位加法器递推公式:(5)运算器的结构设计图2.16单总线结构的运算器图2.17双总线结构的运算器图2.18三总线结构的运算器2.5.1浮点表示(1)浮点数的表示形式

浮点数在机器中的形式如图所示。采用这种数据格式的机器称为浮点机。图2.19浮点数的表示形式2.5浮点数与浮点运算

图2.20浮点数在数轴上的表示范围(3)浮点数的规格化

当基数为2时,尾数最高位为l的数为规格化数。规格化时,尾数左移一位,阶码减1(这种规格化称为向左规格化,简称左规);尾数右移一位,阶码加1(这种规格化称为向右规格化,简称右规)。2.5.2IEEE754浮点数标准

IEEE754标准(1985),每个浮点数均由三部分组成:符号位S、指数部分E和尾数部分M,如图所示。图2.21IEEE754标准(1)IEEE754标准32位单精度浮点数图2.22IEEE754标准32位单精度浮点数表示格式(2)IEE754标准64位双精度浮点数N=图2.23IEEE754标准64位双精度浮点数表示格式64位双精度浮点数所表示的数值N为:

2.5.3浮点加减运算

两浮点数X,Y进行加减运算时,必须按以下几步执行:(1)对阶,(2)尾数运算,(3)结果规格化,(4)舍入处理,(5)溢出判断。

注意:定点数的表示范围是连续的,而浮点数的表示范围可能是不连续的。浮点数表示范围定点数表示范围2.5.4浮点乘除运算

两浮点数进行乘法和除法的运算规则是:x×y=2Ex+Ey(Mx×My)x÷y=2Ex-Ey(Mx÷My)

完成浮点加减运算的操作过程大体分为四步:0操作数的检查。阶码加/减操作:运算时必须检查结果是否溢出。尾数乘/除操作。结果规格化并进行舍入处理。X5Y5Z52.5.5浮点运算流水线图2.26浮点向量加法流水线2.6.1BCD码的格式2.6BCD码(binarycodeddecimal)十进制编码0123456789权8421码00000001001000110100010101100111100010018421余3码00110100010101100111100010011010101111002421码(A)000000010010001101000101011001111110111124212421码(B)00000001001000110100101111001101111011115211码0000000101000101011110001001110011011111余3循环码0010011001110101010011001101111111101010242152112.6.2BCD码加减法

可以在二进制加法器的基础上加上适当的“校正”逻辑来实现,该校正逻辑可将二进制的“和”改变成所要求的十进制格式。2.6.3BCD码乘除法

在BCD码中,乘数的每一位可能为0~9中的任何一个数,因此每次循环迭代最多可能要执行9次加法。因此,在算法中要增加一个内循环来实现多次加法。

二进制数的每一位为1位,而BCD码每一位为4位。因此,在移位时要进行相应的修改。由每次移1位修改为每次移1位BCD码数字,即每次移4位,可以称之为十制移位。另外,BCD乘法中每次循环可能执行多次加法,因此进位可能大于1,因此进位位采用1位BCD码数而不是1位二进制数。2.7.1码距与数据校验码

数据校验码(Error-DetectingCode,ECC)是具有检测错误或自动纠正错误能力的一种数据编码。

编码距离(codedistance)或海明距离(hammingdistance),通常指一组编码中任意两个编码之间不同代码的位数。最小码距(minimumcodedistance)是指在一组编码中任意两个编码之间的最小距离。

码距与校验码的检错和纠错能力的关系是:d≥e+1,可检测e个错。d≥2t

+1,可纠正t个错。d≥e+t

+1,且e>t,可检测e个错并能纠正t个错。2.7数据校验码2.7.2奇偶校验码奇校验(OddECC):使n+1位的奇偶校验码中有奇数个1。偶校验(EvenECC):使n+1位的奇偶校验码中有偶数个1。(1)奇偶校验码的编码方法图2.29校验位P的形成电路+++++++D7D6D5D4D3D2D1D0p(2)奇偶校验码的校验

采用奇偶校验的编码在传输过程中需要进行奇偶校验,以判断信息传输是否出错。如果接收方接收到一奇校验码中1的个数为偶数,或接收到一偶校验码中1的个数为奇数,则表示接收到的编码中有一位出错。

以前面的9位奇偶校验码为例进行说明。出现偶校验错的标志是:进行奇偶校验时,E=0,表示无错;E=1,表示校验出错。2.7.3循环冗余校验码

循环冗余校验码(CyclicRedundancyCheck,CRC)是在n位有效信息位后拼接k位校验位形成的,又称(n,k)码。(1)CRC码的编码思想

CRC校验采用多项式编码方法。就是将待编码的n位有效信息看做是一个n阶的二进制多项式M(x)。例如一个8位二进制数11010011B可以用信息多项式表示为:

再用另一个约定的多项式G(x)去除M(x),可得到下式所示的关系:

其中,Q(x)为除得的商数,R(x)为除得的余数。

(3)CRC码的编码方法1)把待编的n位有效信息表示为多项式M(x):其中Ci=0或1,对应n位有效信息中第i位的信息。2)选择一个k+1位的生成多项式G(x)作为约定除数:其中

Gi=0或1,对应k+1位的生成多项式中第i位的信息。3)将M(x)左移k位,得到n+k位的M(x)•。然后按模2除法,用M(x)•

除以G(x),得到k位余数R(x),即:4)将M(x)•

与余数R(x)做模2加,得:注意,在模2加的条件下,R(x)+R(x)=0。将k位的R(x)拼接到M(x)•

的后k位,就形成了n+k位循环冗余校验码。(4)循环冗余校验的生成多项式任何一位发生错误都应使余数不为0。不同位发生错误应当使余数不同。对余数做模2除法,应能使余数循环。在数据通信与网络中,通常n相当大,由一千甚至数千个二进制数据位构成一帧,为检测信息传输的正确与否,广泛采用CRC码进行校验。这时所使用的生成多项式的次幂比较高。2.7.4海明校验码(1)海明校验码的编码思想

如果出错代码的位置能够确定,将出错位的内容取反,就能够自动纠正错误。(2)海明校验码的编码方法1)将n位有效信息和k位校验位,构成n+k位的海明校验码。图2.30编码排列位置2)将k个校验位分成k组奇偶校验,每个有效信息位都被2个或2个以上的校验位校验,被校验的位号等于校验它的校验位位号之和。3)根据校验组的分组情况,按奇偶校验原理,由已知的有效信息按奇偶校验规则求出各个校验位,形成海明校验码。(3)海明校验码的校验

分组校验后,校验结果形成k位的指误字EkEk-1...E2E1,若第i组校验结果正确,指误字中相应位Ei之为0;若第i组校验结果错误,指误字中相应位Ei为1。因此若指误字EkEk-1...E2E1为全0,表示接收方接收到的信息无错;若指误字EkEk-1...E2E1不为全0,则表示接收方接收到的信息中有错,并且指误EkEk-1...E2E1代码所对应的十进制值就是出错位的位号。将该位取反,错误码即得到自动纠正。

当然,指误字能够正确指示出错位所在位置的前提是代码中只能有一个错误。(4)扩展的海明校验码

可以设想如果给检一纠一错的海明校验码增加一位奇偶校验位,对其所有代码进行奇偶校验就可以再检查出一位错误,实现检测出两位错误或者纠正一位错误的目标,称为扩展的海明校验码或检二纠一错海明校验码。2.8.1触发器2.8时序逻辑电路

触发器可以处理输入、输出信号和时钟频率之间的相互影响。2.8.2寄存器

在CP脉冲作用下,每个D触发器能够寄存一位二进制码。在D=0时,寄存器储存为0;在D=1时,寄存器储存为1。在低电平为0、高电平为1时,需将信号源与D间连接一反相器,可以完成对数据的储存。按照移位方向可以分为单向移位寄存器和双向移位寄存器。2.8.3计数器

计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能。2.9.1三态电路2.9组合逻辑电路

三态指其输出既可以是一般二值逻辑电路,又可以保持特有的高阻抗状态。高阻态相当于隔断状态(电阻很大,相当于开路)。2.9.2比较器

对两个或多个数据项进行比较,以确定它们是否相等,或确定它们之间的大小关系及排列顺序称为比较。2.9.3加法器

两个二进制数字Ai,Bi和一个进位输入Ci相加,产生一个和输出Si,以及一个进位输出Ci+1。由真值表2.13可得到输出逻辑表达式如式(2.29)所示,进一步可得逻辑电路如图2.13所示。2.9.4编码器表2.2074LS148编码器真值表普通编码器优先编码器输入输出EII0I1I2I3I4I5I6I7A2A1A0GSEO1xxxxxxxx11111011111111111100xxxxxxx0000010xxxxxx01001100xxxxx011010100xxxx0111011100xxx01111100100xx011111101100x011111111010001111111111102.9.5译码器表2.2174LS138译码器真值表

译码是编码的反向过程。2.9.6数据选择器

数据选择器(dataselector)根据给定的输入地址代码,从一组输入信号中选出指定的一个送至输出,也叫多路选择器或多路调制器(multiplexer)或多路开关。图2.42数据选择器

表2.22数据选择器控制表A1A0Y00D001D110D211D3(a)带有缓冲器的双向数据总线

图2.43双向总线

(b)带有锁存器的双向数据总线2.9.7总线

按总线的逻辑结构来说,总线可分为单向传送总线和双向传送总线。图2.44带符号的阵列乘法器2.10.1阵列乘法器(1)原码并行乘法2.10阵列逻辑电路

在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。(2)补码并行乘法图2.455位×5位直接补码操作○2a3b1○0a2b1○a1b1○0a0b1○2a3b2○0a2b2○0a1b2○0a0b20a2b30a1b30a0b32○○○○a3b331a2b41a1b41a0b4○○○○a3b42222○○○○a4b4a4b3a4b2a4b1a4b00a3b00a2b00a1b000P8P7P6P5P4P3P2P1P1a0b00○○○○○○○○○○○○○○○○○○○○2.10.2阵列除法器图2.46可控加法/减法(CAS)单元

实际中常用不恢复余数法,又称加减交替法。其特点是运算过程中如出现不够减,则不必恢复余数,根据余数符号,可以继续往下运算,因此步数固定,控制简单。2.10.3可编程序逻辑阵列(PLA)

逻辑器件可分为两大类:固定逻辑器件和可编程逻辑器件(ProgrammableLogicDevice,PLD)。可程式逻辑阵(Programmablelogicarrays)列简称PLA,又叫做现场可编程逻辑阵列FPLA(field-programmablelogicarray)。[例2.34]用PLA器件实现下列逻辑函数图2.48PLA器件实现逻辑函数2.10.4可编程序阵列逻辑(PAL)

可编程阵列逻辑(ProgrammableArraysLogic,PAL)器件是20世纪70年代末AMD公司推出的可编程逻辑器件。20世纪80年代,Lattice公司首次推出了通用阵列逻辑器件(GenericArrayLogic,GAL)。20世纪80年代中期,出现了复杂可编程逻辑器件(ComplexProgrammableLogicDevice,CPLD)和集成度更高的现场可编程逻辑门阵列(Field-ProgrammableGateArray,FPGA)。2.1,2.2,2.3,2.4,2.5,2.6,2.7习题2Thankyou!第3章

指令系统设计

3.1指令类型与功能3.2数据类型3.3寻址方式3.4指令系统设计方法3.5CISC与RISC指令系统设计3.6

80x86/Pentium指令系统3.7

ARM指令系统3.8

MIPS指令系统设计习

3第3章

指令系统设计指令:控制和指挥计算机执行某种操作(如加、减、传送等)的指示和命令。指令系统:通常是指一台计算机所能执行的全部指令的集合。3.1指令类型与功能裸机软件指令系统

指令集体系结构(Instruction-SetArchitecture,ISA),或称为指令集架构,由指令集和一系列相应的寄存器约定构成。常见种类有:复杂指令集运算(ComplexInstructionSetComputing,CISC);精简指令集运算(ReducedInstructionSetComputing,RISC);显式并行指令集运算(ExplicitlyParallelInstructionComputing,EPIC);超长指令字(VeryLongInstructionWord,VLIW)。操作码:指明操作的性质及功能,操作码长度有固定、可变两种。地址码:指明操作数的地址,特殊情况下也可能直接给出操作数本身。源操作数参照:一个或多个源操作数所在的地址。结果值(目的操作数)参照:产生的结果存放何处。

作为一个合理而有效的指令系统应满足以下基本要求:完备性有效性规整性兼容性操作码地址码图3.1基本指令格式指令的分类:(1)按指令长度是否可变分类

定长指令字结构

变长指令字结构(2)按在CPU中的存储位置分类堆栈型:不能被随机访问,从而很难生成有效代码;累加器型:减小了机器的内部状态,指令短小。由于累加器是唯一的暂存器,这种机器的存储器通信开销最大。寄存器型:是代码生成最一般的模型。(3)通用寄存器型中的进一步分类寄存器至寄存器(R-R:Register-Register)寄存器至存储器(R-S:Register-Storage)/寄存器-存储器(R-M:Register-Memory)存储器至存储器(S-S:Storage-Storage)/存储器-存储器型(M-M:Memory-Memory)

(4)IBM370机指令分类

IBM370机(字长32位)的指令可分为三种不同的长度形式:半字长指令、单字长指令和一个半字长指令。不论指令的长度为多少位,其中操作码字段一律都是8位,8位操作码字段允许容纳256条指令,实际上在IBM370机中仅有183条指令。

操作码第0位和第1位组成4种不同编码,代表不同类型指令:00表示RR型指令,01表示RX型指令,10表示RRE型、RS型、S型及SI型指令,11表示SS型和SSE型指令。3.1.1数据传送指令

计算机中最基本、最常用的指令,主要用于实现一个部件与另一个部件之间的数据传送操作。主存单元之间的传送

MOVmem2,mem1,其含义为(mem1)→mem2从主存单元传送到寄存器

MOVreg,mem,其含义为(mem)→reg

在有些计算机中,该指令用助记符LOAD表示,又称为取数指令。从寄存器传送到主存单元

MOVmem,reg,其含义为(reg)→mem

在有些计算机里,该指令用助记符STORE表示,又称为存数指令。寄存器之间的传送

MOVreg2,reg1,其含义为(reg1)→reg23.1.2算术运算指令

运算类指令的主要功能是进行各类数据信息处理,包括各种算术运算及逻辑运算指令。3.1.3逻辑运算指令

逻辑运算指令主要包括各类布尔量的逻辑运算指令,如与、或、非、异或、测试等指令。按位测(位检查)例如:ANDAL,01H按位清(位清除)例如:ANDAL,FEHXXXXXXXX∧000000010000000XXXXXXXXX∧11111110XXXXXXX0按位置(位设置)例如:ORAL,80H按位修改

利用“异或”指令可以修改目的操作数的某些位,只要源操作数的相应位为“1”,其余位为“0”,异或之后就达到了修改这些位的目的(因为

⊕1=A,A⊕0=A)。例如:XORAL,08HXXXXXXXX∨100000001XXXXXXXXXXXXXXX⊕00001000XXXXXXXX判符合

若两数相符合,其异或之后的结果必定为“0”。清0例如:XORAL,AL3.1.4算术移位指令

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论