计算机组成原理2014-第十五讲_第1页
计算机组成原理2014-第十五讲_第2页
计算机组成原理2014-第十五讲_第3页
计算机组成原理2014-第十五讲_第4页
计算机组成原理2014-第十五讲_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成原理舒燕君计算机科学与技术学院第十五讲5.6DMA方式一、DMA方式的特点1.DMA和程序中断两种方式的数据通路CPU主存ACC中断接口DMA接口I/O设备中断方式数据传送通路输入指令输出指令DMA方式数据传送通路二、DMA接口的功能和组成1.DMA接口功能(1)向CPU申请

DMA传送(2)处理总线控制权的转交(3)管理系统总线、控制数据传送(4)确定数据传送的首地址和长度(5)DMA传送结束时,给出操作完成信号修正传送过程中的数据地址和长度5.6DMA接口主存CPU2.DMA接口组成DMA控制逻辑

中断机构设备HLDAARWCDARHRQ中断请求数据线地址线+1+1溢出信号DREQDACKBR5.6三、DMA的工作过程1.DMA传送过程预处理、数据传送、后处理(1)预处理通过几条输入输出指令预置如下信息通知DMA控制逻辑传送方向(入/出)设备地址DMA的DAR主存地址DMA的AR传送字数DMA的WC5.6BR设备DMA控制逻辑中断机构ARWCDARDMA接口主存CPU+1+1(3)数据传送过程(输入)DREQ②HRQ③HLDA④地址线⑤DACK⑥①数据线⑦溢出信号中断请求ARWC+1+15.6BRBRBRBRBR(5)后处理校验送入主存的数是否正确是否继续用DMA测试传送过程是否正确,错则转诊断程序由中断服务程序完成5.63.DMA方式与程序中断方式的比较(1)数据传送(2)响应时间(3)处理异常情况(4)中断请求(5)优先级中断方式DMA方式程序硬件指令执行结束存取周期结束能不能低高传送数据后处理5.6第6章计算机的运算方法6.1无符号数和有符号数6.3定点运算6.2数的定点表示和浮点表示6.4浮点四则运算6.5算术逻辑单元6.1无符号数和有符号数一、无符号数寄存器的位数反映无符号数的表示范围8位0~25516位0~65535带符号的数符号数字化的数+0.10110

1011小数点的位置+11000

1100小数点的位置–

11001

1100小数点的位置–0.10111

1011小数点的位置真值机器数1.机器数与真值二、有符号数6.12.原码表示法带符号的绝对值表示(1)定义整数x

为真值n

为整数的位数如x=[x]原

=0,1110[x]原

=24+1110=1,1110x=

1110[x]原=0,x2n

x

≥02n

x0≥

x

>2n用逗号将符号位和数值部分隔开6.1小数x

为真值如x=+0.1101[x]原

=0.1101x=0.1101[x]原

=1(0.1101)=1.1101x1>

x

≥0[x]原=1–x0≥

x

>1x=0.1000000[x]原

=1(0.1000000)=1.1000000x=

+0.1000000[x]原

=0.1000000用小数点将符号位和数值部分隔开用小数点将符号位和数值部分隔开6.1(2)举例例6.1已知[x]原=1.0011求x解:例6.2已知[x]原=1,1100求x解:x=1

[x]原=1

1.0011=0.0011x=24

[x]原=100001,1100=1100–

–0.00111100由定义得由定义得6.1例6.4

求x=0的原码解:设x=+

0.0000例6.3已知[x]原=0.1101求x解:∴

x

=+0.1101同理,对于整数[+0

]原=0,0000[+

0.0000]原=0.0000x=

0.0000[

0.0000]原=1.0000[0

]原=1,0000∴[+

0]原

[

0]原

根据定义∵[x]原=0.11016.1原码的特点:简单、直观但是用原码作加法时,会出现如下问题:能否只作加法?

找到一个与负数等价的正数来代替这个负数就可使减加加法正正加加法正负加法负正加法负负减减加

要求

数1数2

实际操作结果符号正可正可负可正可负负6.1-123(1)补的概念时钟逆时针-363顺时针+96153.补码表示法可见3可用+9代替记作3≡+9(mod12)同理4≡+8(mod12)5≡+7(mod12)

时钟以

12为模减法加法6.1称+9是3以12为模的补数结论一个负数加上“模”即得该负数的补数一个正数和一个负数互为补数时它们绝对值之和即为模数计数器(模16)–101110110000+010110111000010110000?可见1011可用+0101代替同理0110.1001自然去掉6.1记作1011(mod24)≡+0101(mod23)≡+101(mod2)≡+1.0111+

0101(mod24)≡1011(mod24)(2)正数的补数即为其本身+10000+10000两个互为补数的数+0101+10101≡分别加上模结果仍互为补数∴+0101≡+0101+010124+1–10111,0101用逗号将符号位和数值部分隔开丢掉10110,1,??1011(mod24)可见?+01010101010110110101+(mod24+1)6.1100000=(3)补码定义整数x

为真值n

为整数的位数[x]补=0,x2n

x

≥02n+1+x0

x

≥2n(mod2n+1)如x=[x]补=27+1+(1011000)=[x]补=0,1010x=10110001,0101000用逗号将符号位和数值部分隔开6.11011000100000000小数x

为真值x=+0.1110[x]补=x1>

x

≥02+

x

0>

x

≥1(mod2)如[x]补=0.1110x=0.11000001.0100000[x]补=2

+

(0.1100000)=用小数点将符号位和数值部分隔开6.10.110000010.0000000(4)求补码的快捷方式=100000=1,011010101+1=1,0110又[x]原=1,1010则[x]补=24=11111+11010=1111110101010当真值为负时,补码可用原码除符号位外每位取反,末位加1求得6.1+1设x=1010时(5)举例解:x=+0.0001解:由定义得x=[x]补–2=1.0001–10.0000[x]原=1.1111例6.6已知[x]补=1.0001求x[x]补

[x]原

?由定义得6.1例6.5已知[x]补=0.0001求x∴x=0.1111

–=0.1111

–例6.7解:x=[x]补–24+1

=1,1110–100000[x]原=1,0010当真值为负时,原码可用补码除符号位外每位取反,末位加1求得[x]补

[x]原

?∴x=0010=0010求x已知[x]补=1,1110由定义得6.1真值0,10001101,01110100.11101.00100.00000.00001.00000,10001101,10001100.11101.11100.00001.0000不能表示练习求下列真值的补码[1]补=2+x=10.00001.0000=1.0000[+0]补=[0]补由小数补码定义=1000110[x]补[x]原6.1x=+70x=0.1110x=0.0000x=70x=0.1110x=0.0000x=1.0000=1000110[x]补=x

1>

x

≥02+

x0>

x

≥1(mod2)4.反码表示法(1)定义整数[x]反=0,x2n>x≥0(2n+1–1)+x0≥x>2n(mod2n+1

1)如x=[x]反=0,1101=1,0010x=1101[x]反=(24+11)1101=111111101用逗号将符号位和数值部分隔开x

为真值n

为整数的位数6.1小数x

=+0.1101[x]反=

0.1101x=0.1010[x]反=(22-4)

0.1010=1.1111

0.1010=1.0101如[x]反=x1>x≥0(2–2-n)+x0≥x>1(mod22-n)用小数点将符号位和数值部分隔开x

为真值6.1n为小数的位数(2)举例例6.10

求0的反码设x=+

0.0000[+0.0000]反=0.0000解:同理,对于整数[+0]反=0,0000例6.9已知[x]反=1,1110求x例6.8已知[x]反=0,1110求x解:由定义得x=+1110解:6.1=1,111011111=0001由定义得x=[x]反(24+11)x=

0.0000[

0.0000]反=1.1111[0]反=1,1111∴[+0]反≠[0]反

三种机器数的小结

对于正数,原码=补码=反码

对于负数,符号位为1,其数值部分原码除符号位外每位取反末位加1

补码原码除符号位外每位取反反码最高位为符号位,书写上用“,”(整数)或“.”(小数)将数值部分和符号位隔开6.1例6.11000000000000000100000010…011111111000000010000001111111011111111011111111…128129-0-1-128-127-127-126二进制代码无符号数对应的真值原码对应的真值补码对应的真值反码对应的真值012127…253254255…-125-126-127…-3-2-1…-2-1-0…+0+1+2+127…+0+1+2+127…+0+1+2+127…6.1+0设机器数字长为8位(其中1位为符号位)对于整数,当其分别代表无符号数、原码、补码和反码时,对应的真值范围各为多少?例6.12解:已知[y]补求[y]补<Ⅰ>[y]补=0.y1

y2

yn…y

=0.

y1y2

yn…y=0.y1

y2

yn…[y]补=1.y1

y2

yn+2-n…<Ⅱ>[y]补=1.y1

y2

yn…[y]原

=1.y1y2

yn+2-n…

y

=(0.y1y2

yn

+2-n)…

y

=0.y1y2

yn+2-n…[y]补

=0.y1

y2

yn+2-n…设[y]补=y0.y1y2

yn…6.1每位取反,即得[y]补[y]补连同符号位在内,末位加1每位取反,即得[y]补[y]补连同符号位在内,末位加15.移码表示法补码表示很难直接判断其真值大小如十进制x=+21x=–21x=

+31x=–31x+25+100000+10000010101+10000011111+100000大大错错大大正确正确0,101011,010110,111111,00001

10101

11111=110101=001011=111111=000001二进制补码6.1(1)移码定义x

为真值,n

为整数的位数移码在数轴上的表示[x]移码2n+1–12n2n

–1–2n00真值如x=10100[x]移=25+10100用逗号将符号位和数值部分隔开x=–10100[x]移

温馨提示

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

评论

0/150

提交评论