CPU与存储器的连接(74138译码器)

MREQ霸是低电平有效的控制信号

R/W霸是读写命令信号

题目

设CPU共有16根地址线8根数据线,并用MREQ作访存控制信号,R/W作读/写命令信号。

现有这些存储芯片:

  • ROM(2K×8位、4K×4位、8K×8位)

  • RAM(1K×4位、2K×8位、4K×8位)

  • 及74138译码器和其他门电路(门电路自定)。

试从上述规格中选用合适的芯片,画出CPU和存储芯片的连接图.要求如下:

(1)最小4k地址作为系统程序区,4096~16383地址范围为用户地址区。

(2)指出选用的存储芯片类型及数量。

(3)详细画出片选逻辑。

答案

第一问

系统程序区只能用ROM

用户地址区只能用RAM

八根数据线 的作用是计算CPU大小

8位x4k=系统程序区的大小

8位x(16383-4096)=(16K-4K)x8位=12Kx8位=用户地址区的大小

第二问

系统程序区的存储芯片选择:

从题目中给的ROM里面选,优先选择位扩展,所以我们选择两片4Kx4位的ROM芯片

用户地址区的存储芯片选择:

从题目中给的RAM里面选:需要3片4Kx8位的

第三问

之后我们画地址线的示意图,但是这里请注意,如果是位扩展的话,也就是我们上面的两片4Kx4位的ROM芯片,他们不会在这里显示出来,他们公用一段区间的地址线。你可以这样理解,原来可以塞满一半房间的东西,经过位扩展,我们就可以塞满整个房间了

之后就可以画出来前两块的地址线示意图了image-20230613170505830

为什么是从A0写到A15的解释:因为题目说了有16根地址线

为什么从A0写到A11都是1:因为4K是2的12次方,从A0到A11之间全部填1这个区间的大小就是4K

后三块的地址线示意图:image-20230613171318684

ok。下面开始画片选逻辑

初始图片:image-20230613171538132

之后我们连接CBA这三条线

image-20230613172149743

之后进行连接image-20230613172229466

之后连接我们自己的芯片,都连接到4Kimage-20230613172411544

之后连数据线,注意之前我们提到的位扩展,这里就需要显示出来了image-20230613172612348

之后连接RAM芯片,由于他们都是8位,所以全都连上image-20230613172736038

这里需要知道

G1是高电平,也就是1

G2A和G2B是低电平,也就是0

MREQ霸是低电平有效的控制信号,也是0

所以我们连接两个低电平的线image-20230613173154222

之后写解码器的输出位置image-20230613173425336进行连接image-20230613173540092

之后还有R/W接口没进行连接

这里需要注意的是ROM只能读,RAM既可以读又可以写

image-20230613173846427

但是ROM也需要连接东西!!!!虽然连接的这个我也不知道是啥image-20230613173956437

最后总览:image-20230613174012018

设计主存地址与命中率

题目

设主存容量为256KB,Cache容量为2KB,每字块8个字,每个字8位。

(1) 直接映射的方式下设计主存地址

(2) 二路组相联方式下设计主存地址

(3) 全相联方式下设计主存地址

(4)若主存容量为256K×16位,块长不变,在四路组相联映射方式下设计主存地址

(5)设Cache初态为空,CPU依次从主存第0,1,2…,99号单元读出100个字(主存一次读出一个字),并重复此次序读10次,问命中率是多少?有效命中的缓存为t,命中主存(未命中)为5t,系统的效率是多少? 有缓存和没有缓存速度提高的倍数是多少

答案

8bit=1Byte=?个字(不固定)

第一问

比特构成字节构成字构成字块

先看字块内地址,每个字块8个字,一个字等于8bit也就是一个字节,所以说一个字块8Byte=2^3,所以字块内地址填3

再来看Cache字块地址,Cache的容量为2KB=2^11,之后计算里面有多少个字块,也就是2^11/8=2^8,所以Cache字块地址为8

最后来看主存字块标记,主存容量为256KB=2^18,所以主存字块标记=18-8-3=7

主存字块标记 Cache字块地址 字块内地址
7 8 3

第二问

还是先来看字块内地址,不变

组地址的计算方法:Cache字块数量/二路组相联中的2,也就是2^8/2=2^7,所以这里填7

主存字块标记计算方法:18-7-3=8

主存字块标记 组地址 字块内地址
8 7 3

第三问

字块内地址不变

主存字块标记=18-3=15

主存字块标记 字块内地址
15 3

第四问

由题知块长不变,所以字块内地址还是3

缓存也没变,所以组地址为2^8/4=6

只有主存容量改变了,换算一下256Kx16位=512Kx8位,所以是2^19x8位,主存字块标记=19-6-3=10

主存字块标记 组地址 字块内地址
10 6 3

第五问

每个字块有8个字,然后题目说有100个字,就算100/8≈12,然后初态为空 12+1=13

所以命中率h=100x10-13/100x10=0.987

下面计算系统的效率e

tc=t tm=5t

平均访问时间ta=h*tc+(1-h)tm

e=tc/ta=t/(0.987xt+(1-0.987)x5t)=95%

下面计算提高的倍数 b

b=(tm/ta) -1

存储器的校验(海明码)

首先记住奇偶校验小组

image-20230625202724260

第一题

题目

已知收到下面的汉明码,分别写出它们所对应的欲传送代码

1100000(按偶性配置)

0011001(按奇性配置)

答案

首先按照奇偶校验小组来进行计算

image-20230625202854440

所以得到p4,p2,p1,注意这里要倒着写

image-20230625202955517

修改它的第三位

所以我们可以得到需要传送的代码,是除去检测位的组合,就是1000

下面来看按奇性配置

image-20230625203147454

image-20230625203453128

第二题

题目

欲传送的二进制代码为1001101,用奇校验来确定其对应的海明码为

答案

这里有一个公式image-20230625204550709

n的意思是需要传送的代码的个数,这里是七位

之后需要试出来k的值

这里试出来k的值为4,k的含义是检测位的个数,所以我们需要4位检测位,所以是c1,c2,c4,c8

image-20230625205138252

数的表示及加减法运算

题目

image-20230613202821656

答案

第一问

image-20230613203610806

上面的溢出很正常,不是下面的溢出,只是单纯的数字溢出

不过需要进行验算溢出的操作

image-20230613203812515

第二问

image-20230613204209881

这个也需要判断是否溢出

image-20230613204356579

定点数和浮点数表示

IEEE标准:浮点数字长16位,其中阶码5位(含一位阶符),尾数11位(含1位数符)

题目

将十进制数字-58写成二进制定点数浮点数

并分别写出它在定点机浮点机中的机器数形式

答案

需要凑够16位

二进制定点数:-00 0011 1010

二进制浮点数:-0.1110100000 x 2^110^

image-20230613210033063

浮点数的加减运算

题目

image-20230615185526578

答案

加法

首先要做的是要把xy这两个数换成基数形式

这里注意的是要用两位阶符和数符来表示,也就是说正数为00,负数为11

image-20230615190026294

然后计算他们俩的补码,符号位不变,数值位取反+1

之后就要计算了:

  1. 对阶:image-20230615190429302,之后我们要把阶码小的那个向阶码大的数字看齐,也就是把11,101转换成11,110,他们俩差1,说明需要把x补的数值位的小数点向左移动一位,image-20230615190942569
  2. 尾数求和:把x和y的尾数进行相加image-20230615191155647
  3. 规格化:这个up说,考试都是规格化的,所以直接写上已规格化就行了
  4. 舍入(必须右规才有舍入):这里没有
  5. 溢出判断:看阶码,先计算阶码 ,之前已经计算过了:11,110;11.010000,(up主说:如果阶码是10或者01就是溢出了)所以这个没溢出,一般的话都是没溢出的!!无舍入,无溢出!

减法

直接来到尾数求和这一步

因为之前的都一样,这里是把x-y改成x+(-y)就可以了image-20230615192106080

之后进行左规:image-20230615194428173并且这里左规了2位,需要把阶数-2就行了

总结:

左规:尾数左移,小数点右移,阶码减少

右规:相反

阶符:01发生了上溢,10发生了下溢

中断屏蔽及CPU执行程序轨迹

题目

image-20230615195453326

答案

先来看道题:

image-20230615195910756

并且可以根据3-1-4-2画出这张图!!!

这是我们做这题起步:

image-20230615200505519

image-20230615201310527

输入输出系统方式

题目1

首先进行单位换算

DMA方式是以字块来进行传输的,所以由支持的最大批量为400个字节 知DMA方式每次发送一个字块(里面有400个字节)

DMA方式是每次发送一个字块中断一次,然后中断方式是传输一个字节中断一次

image-20230615201840816

需要注意的是,中断方式不需要管存取周期就可以了,但是DMA需要考虑存储周期

总结:

DMA方式=存取周期+中断时间

中断方式:每一个字符x一次中断所需要的时间

题目2

image-20230615203014359

其中第二步很难理解,注意看题:要计算1秒里面DMA辅助操作时钟周期数,之前我们计算过传送4KB数据需要0.002秒,并且这0.002秒里面包含了(1000+500)个DMA辅助操作时钟周期,那么就好计算1秒里面的时钟周期数量了

HZ的意思就是1秒里面有多少个时钟周期,所以我们直接用辅助操作的时钟周期/CPU的总时钟周期就得到了

3.1

image-20230625132357807

3.2

image-20230625132622706image-20230625132658581

3.3

image-20230625133719867

3.4

image-20230625134024072

这个比特率的公式也是记住就行。。。

习题3.15*

在一个32位的总线系统中,总线的时钟频率为66MHz,假设总线最短传输周期为4个时钟周期,试计算总线的最大数据传输率,若想提高数据传输率,可采取什么措施

1个时钟周期为1/66MHz

总线最短传输周期为4/66MHZ

总线的宽度为32位。也就是4Byte

数据传输率=数据量/数据传输时间=66MBps

习题3.16*

在异步串行传送系统中,字符格式为:1个起始位、8个数据位、1个校验位、2个终止位。若要求每秒传送120个字符,试求传送的波特率和比特率

波特率:(1+8+1+2)*120=1440bps

比特率:1440*8/12=1200bps

4.1

4.2

4.8

image-20230625165620476

这道题需要注意的是

第一问和第二问问到了cache地址和主存地址分别有多少位,直接根据大小就能判断多少位

如果是画表格那个位数是根据字块来判断位数的,也就是第四问

4.9

image-20230625171221574

image-20230625171236829

4.10

image-20230625171446423

4.11

image-20230625173338595

image-20230625174212621

4.12

image-20230625174322992

image-20230625184323041

0.5这个数记住就行

4.13

image-20230625185013731

2^4=16,可以表示16台

2^8=256>203,可以表示磁道号

2^5=32>20,可以表示盘面号

2^4=16 ,可以表示扇段号

5.1

image-20230625185607806

5.3

首先进行单位换算

DMA方式是以字块来进行传输的,所以由支持的最大批量为400个字节 知DMA方式每次发送一个字块(里面有400个字节)

DMA方式是每次发送一个字块中断一次,然后中断方式是传输一个字节中断一次

image-20230615201840816

需要注意的是,中断方式不需要管存取周期就可以了,但是DMA需要考虑存储周期

总结:

DMA方式=存取周期+中断时间

中断方式:每一个字符x一次中断所需要的时间

5.4

image-20230615203014359

其中第二步很难理解,注意看题:要计算1秒里面DMA辅助操作时钟周期数,之前我们计算过传送4KB数据需要0.002秒,并且这0.002秒里面包含了(1000+500)个DMA辅助操作时钟周期,那么就好计算1秒里面的时钟周期数量了

HZ的意思就是1秒里面有多少个时钟周期,所以我们直接用辅助操作的时钟周期/CPU的总时钟周期就得到了

习题5.8*

某计算机的IО设备采用异步串行传送方式传送字符信息,字符信息的格式位1位起始位,7位数据位,1位校验位和1位停止位,若要求每秒钟传送480个字符.那么该设备的数据传输速率为多少?

该计算机的I/O设备采用异步串行传输方式,每秒钟需要传输480个字符,每个字符的格式为1位起始位、7位数据位、1位校验位和1位停止位,因此每个字符的总位数为 1 + 7 + 1 + 1 = 10 位。

传输速率可以用每秒传输的总位数来表示,因此该设备的数据传输速率为:

480个字符/秒 × 10位/字符 = 4800位/秒

即该设备的数据传输速率为 4800 bps(bits per second)。

习题5.10*

什么是IO接口,它与端口有何区别?为什么要设置IO接口?IO接口如何分类?简述IO接口的功能和基本组成

IO接口是指计算机系统中用于连接输入输出设备的接口,它是计算机系统中与外部设备进行数据交换的通道。IO接口通常由一组电路和信号线组成,用于实现数据传输、控制信号传递等功能。与之相对的,端口一般指计算机系统中用于连接外部设备的接口,如串口、并口等。

IO接口的设置是为了实现计算机系统与外部设备之间的数据交换。通过IO接口,计算机系统可以向外部设备发送指令和数据,或者从外部设备读取数据。IO接口的种类很多,包括串口、并口、USB接口、网络接口等。

IO接口可以按照数据传输方式、接口类型、接口速度等进行分类。按照数据传输方式可以分为串行接口和并行接口;按照接口类型可以分为串口、并口、网络接口、存储器接口等;按照接口速度可以分为低速接口、中速接口和高速接口等。

IO接口的主要功能是实现计算机与外部设备之间的数据交换。常见的IO接口一般由三部分组成:数据传输电路、控制电路和接口电路。数据传输电路用于实现计算机和外部设备之间的数据传输;控制电路用于控制数据传输的开始和结束等;接口电路用于实现计算机和外部设备之间的电气和机械连接。

总之,IO接口是计算机系统中与外部设备进行数据交换的重要通道。通过IO接口,计算机系统可以与各种外部设备进行数据交互,从而实现各种应用功能。

习题5.32*

image-20230625210944522

设磁盘存储器转速为3000r/min,分8个扇区,每扇区存储1KB,主存与磁盘存储器数据传送的宽度为16位(即每次传送16位),假设一条指令最长执行时间是25微秒,是否可以采用一条指令执行结束时响应DMA请求的方案,为什么?若不行,应采取什么方案

3000r/min=50r/s

数据的传输速率=磁盘转速*磁道数据量(参考4.13)

50*1KB*8=40KBps

2B/40KBps=5us

故不可行

6.1

image-20230625190652313

6.4

image-20230625190852177

6.12

image-20230625191404018

两操作数符号均为1,结果的符号为0,故溢出了

6.13

image-20230625191617062

6.29

image-20230625192041022

至于为什么向右移动一位,丢掉了1,是因为题目上给的数值位限制是4位,所以超出的需要丢掉

6.30

image-20230625192738031

image-20230625193100910

习题6.5*

image-20230625211933731

习题6.19*

image-20230625211957190

习题6.27*

image-20230625212013790

7.1

image-20230625193212373

7.4

7.6

习题7.6*

image-20230625212037845

习题7.7*

image-20230625212057266

8.1

image-20230625200806778

image-20230625200856465

8.2

image-20230625201343537