答:为了提高DRAM的集成度,减少引脚的数目,DRAM的地址线分成行地址和列地址两部分,在对存储器进行访问时,先由行地址选通信号RAS把行地址送入行地址锁存器,再由列地址选通信号CAS把列地址送入列地址锁存器,并由读写信号控制数据的读出或写入。 4、什么CACHE?作用是什么?处于微处理机中的什么位置?
答:CACHE即高速缓冲存储器,通常由SRAM组成。其作用是:将经常访问的代码和数据保存到由SRAM组成的高速缓冲存储器中,把不经常访问的数据保存到由DRAM组成的主存中,这样使存储器系统的价格降低,同时又降低了接近零等待的性能,大大的提高了系统的性能。CACHE位于CPU和主存储器之间。 7、用1024×1位的RAM芯片组成16K×8位的存储器,需要多少芯片?在地址线中有多少位参与片内寻址?多少位合成片选信号?(设地址总线为16位)
答:需要16×8=128片RAM芯片,其中每8片为一组,总共有16组;地址线中有10位参与片内寻址;由于有16组芯片,余下的6根地址线中至少需要4根合成片选信号,来选中其中的一组芯片。
8、现有一存储器芯片的容量为512×4位,若要用它组成4KB的存储器,需要多少这样的芯片?每块芯片需要多少寻址线?整个存储系统最少需要多少寻址线?
答:需要的芯片的数目为16片,每两片为一组,共有8组;每块芯片需要9根寻址线;由于共有8组芯片,至少需要3根地址线合成片选信号用来选择8组芯片中的一组;整个存储器系统至少需要9+3=12根地址线。 9、利用1024×8位的RAM芯片组成4K×8位的存储器系统,用A15~A12地址线用线性选择法产生片选信号,存储器地址的分配有什么问题?写出各芯片的地址分配。 答:①需要的芯片的数目:4片
②片内寻址需要的地址线的数目:由于每片RAM芯片内部有1024个存储单元,所以需要10根地址线用于选中其中某一个存储单元,占用地址总线的低10位(A9~A0) ③片间寻址需要的地址线的数目:由于需要4片存储器芯片,所以至少需要2根地址线进行译码用于选择4片芯片中的一片,这样占用地址总线的A11和A10。余下的地址总线用线性选择法产生片选信号,这样A15~A12的电平的不同组合就产生了不同的地址空间,使得存储器芯片的地址空间产生重叠。如果A15~A12的电平组合为:A15=1,其余的均为0,则4片存储器芯片的地址范围分别为: A15 A14 A13 A12 A11 A10 A9…A0
1#:1 0 0 0 0 0 0 … 0 =8000H 1 0 0 0 0 0 1 … 1 =83FFH 2#:1 0 0 0 0 1 0 … 0 =8400H
1 0 0 0 0 1 1 … 1 =87FFH 3#:1 0 0 0 1 0 0 … 0 =8800H 1 0 0 0 1 0 1 … 1 =8BFFH 4#:1 0 0 0 1 1 0 … 0 =8C00H
1 0 0 0 1 1 1 … 1 =8FFFH
10、当从存储器偶地址单元读一个字节数据时,写出存储器的控制信号和它们的有效电平(8086工作在最小模式)。答案如下表所示: 信号名称 MN/MX M/IO BHE A0 有效电平 高电平 高电平 高电平 低电平 作用 8086工作在最小模式 8086读写对象为存储器,而不是I/O接口 从偶地址单元读写一个字节 RD 低电平 读数据 11、当要将一个字写入到存储器奇地址开始的单元中,列出存储器的控制信号和他们的有效电平(8086工作在最小模式)。答案如下表所示: 分两次写入: 第一次: 信号名称 MN/MX M/IO BHE A0 WR 第二次: 信号名称 MN/MX M/IO BHE A0 WR 有效电平 高电平 高电平 高电平 低电平 低电平 作用 8086工作在最小模式 8086读写对象为存储器,而不是I/O接口 把这个字的高位字节写入接下来的偶地址单元 写数据 有效电平 高电平 高电平 低电平 高电平 低电平 作用 8086工作在最小模式 8086读写对象为存储器,而不是I/O接口 把这个字的低位字节写入奇地址单元 写数据
12、设计一个64K×8的存储器系统,采用74LS138和EPROM 2764器件,使其寻址空间范围为:40000H~4FFFFH。 解题步骤如下:
①存储器芯片数目的确定:由于每片2764芯片为8K×8位,要组成64K×8的存储器系统,需要8片2764芯片,编号为1#~8#;
②片内寻址地址线的选择:由于每片2764芯片为8K×8位,即有8K(213=8K)个存储单元,所以需要13根地址线(A12~A0)分别接到芯片的13个地址引脚,来选通片内某个存储单元;
③片间寻址地址线的分配:A15、A14和A13分别连接到74LS138的C、B、A端,74LS138的8个输出分别接到8片2764的CS端; 输入 A15 0 0 0 0 1 1 1 1 A14 0 0 1 1 0 0 1 1 A13 0 1 0 1 0 1 0 1 输出 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 选择的芯片号 1# 2# 3# 4# 5# 6# 7# 8# ④余下的地址线的连接:A19~A16和M/IO信号通过逻辑电路接到74LS138的三个控制端G1、G2A和G2B,具体的逻辑电路的设计与题目给定的寻址空间范围有关,如果题目没有给定寻址空间范围,逻辑电路由读者自行设计;
⑤根据寻址空间范围设计控制端的逻辑电路:把最低地址40000H表示成二进制形式为:0100 0000 0000 0000 0000,可知20位地址总线高4位(A19~A16)的电平组合为A19=0,A18=1,A17=0,A16=0,加上M/IO=1,由此可以设计出74LS138的三个控制端G1、G2A和G2B的逻辑电路。
M/IO信号可以同G1端直接相连;A18反向后与A19通过二输入负逻辑与非门(即或门)接到G2A端,A17和A16通过二输入负逻辑与非门(或门)连接到G2B端。
⑥其他控制信号的连接:数据总线D7~D0直接与存储器芯片的8根数据引脚相连接;RD信号直接芯片的允许输出引脚相连。 具体的电路图略。
13、用8K×8的EPROM 2764,8K×8的RAM 6264和74LS138构成一个16K字ROM,16K字RAM的存储器子系统。8086工作在最小模式,系统带有地址锁存器8282,数据收发器8286。画出存储器系统与CPU的连接图,写出各芯片的地址分配。 解题步骤如下:
①存储器芯片数目的确定:需要EPROM芯片4片,每两片组成一组(两片存储器芯片构成一个字存储器,一片为奇地址存储体,另一片为偶地址存储体),共有2组,编号为1#和2#;需要RAM芯片4片,每两片组成一组(两片存储器芯片构成一个字存储器,一片为奇地址存储器,另一片为偶地址存储器),共有2组,编号为3#和4#。
②片内寻址地址线的选择:由于每片2764芯片和6364芯片均为8K×8位,即有8K(213=8K)个存储单元,所以需要13根地址线(A13~A1)分别接到芯片的13个地址引脚,来选通片内某个存储单元。注意:A0不参与片内寻址,用来作为奇偶存储体的选择信号。A0与BHE信号相配合来读/写每一组中的奇偶存储体。
③片间寻址地址线的分配:A16、A15和A14分别连接到74LS138的C、B、A端,74LS138的8个输出中的4个输出端分别选择4组(包括2组EPROM芯片和2组RAM芯片)存储器芯片中的一组。 输入 A16 0 0 0 0 A15 0 0 1 1 A14 0 1 0 1 输出 Y0 Y1 Y2 Y3 选择的芯片组号 1# 2# 3# 4# ④74LS138的三个控制端G1、G2A和G2B的连接:地址信号A19、A18、A17和M/IO通过逻辑电路与三个控制端相连。可以由读者自行设计。如果选择A19=1,A18=0,A17=0,M/IO信号可以同G1端直接相连;A19反向后接到G2A端,A18和A17通过二输入负逻辑与非门(或门)连接到G2B端。
⑤二次译码:由于每一组存储器由两片存储器芯片组成,一片为奇地址存储体,另一片为偶地址存储体,这两个存储体的选择需要A0和BHE信号。因此,74LS138的每个输出(Y0~Y3)还需要同这两个信号进行二次译码产生两个信号分别连到该组存储器的两个存储器芯片的CS端。例如:对于第1组存储器,Y0与A0通过二输入或门连到1#的偶地址存储器芯片的CS端;Y0与BHE通过二输入或门连到1#的奇地址存储器芯片的CS端。其他三组的二次译码电路以此类推。 ⑥各组芯片的地址范围: 1#:80000H~83FFFH 2#:84000H~87FFFH
3#:88000H~8BFFFH 4#:8C000H~8FFFFH
每组的两个存储器芯片分别占用其中的奇地址和偶地址。
14、上题中若从74LS138的Y2开始选择ROM和RAM芯片,写出各块芯片的地址分配。 解答:若从74LS138的Y2开始选择ROM和RAM芯片,那么片间寻址A16、A15和A14组合如下表所示 输入 A16 0 0 1 1 A15 1 1 0 0 A14 0 1 0 1 输出 Y2 Y3 Y4 Y5 选择的芯片组号 1# 2# 3# 4# 则各组芯片的地址范围为: 1#:88000H~8BFFFH 2#:8C000H~8FFFFH 3#:90000H~93FFFH 4#:94000H~97FFFH
第六章(p262) 7、某微机系统中,有8块I/O接口芯片,每个芯片占有8个端口地址,若起始地址为9000H,8块芯片的地址连续分布,用74LS138作译码器,画出译码电路,并说明每块芯片的端口地址范围。 解答:
①片内寻址地址线的分配:由于每个芯片占有8个端口地址,则需要3个地址线用于片内寻址以访问片内8个端口,这样占用地址总线的最低3位,即A2、A1和A0。 ②片间寻址地址线的分配:由于总共有8块I/O接口芯片,则需要8根地址线,并接到74LS138的3个输入端C、B和A,74LS138的8个输出端Y0~Y7分别接8个I/O接口芯片的CS端,以寻址8块芯片中的一块,这样占用地址总线的A5、A4和A3位。
③74LS138的控制端的连接:根据起始地址9000H可知,剩下的地址线A15~A6的组合为A15=1,其余的地址线的电平信号为低电平,加上M/IO=0,据此可以求出74LS138的3个控制端的连线逻辑。 ④各个芯片的地址范围: 1# 9000H~9007H 2# 9008H~900FH 3# 9010H~9017H
4# 9018H~901FH,同理可写出剩下的4块芯片的地址范围。
第七章(p302~303) 1~4题略
5、中断服务子程序中中断指令STI放在不同位置会产生什么不同的结果?中断嵌套时STI指令应如何设置?
解答:在进入中断服务程序时,中断允许标志位IF被清0,以屏蔽其他外部中断,在中断服务程序中可以用STI指令重新开中断,即IF=1。①STI指令放在中断服务程序开头和中间
的某个位置,可以允许中断嵌套,CPU能响应更高级别的中断请求;②STI指令放在中断服务程序结束之前,几乎没什么作用,因为当前的中断服务快要结束了,中断结束后,自动恢复标志位IF,使IF=1,CPU又可以响应中断了。
如果允许中断嵌套,则在中断服务子程序的开头用STI指令开中断。 6、中断结束命令EOI放在程序的不同位置会产生什么不同的结果?
解答:EOI命令能够使中断控制器的ISR(中断服务寄存器)的相应位清0,允许同级别或级别较低的中断请求。在中断服务子程序中,EOI指令可以放在①中断服务程序的开头和中间的某个位置,则在中断处理中提前发出了EOI命令,则清除了正在执行的中断服务,ISR置“1”位被清0,允许响应同级别或低级的中断申请,但是这样会出现重复嵌套,使优先级高的中断不能及时得到服务;②放在中断服务程序返回指令IRET之前,这样当前中断结束之后,同级别或低级的中断申请同样可以得到响应,也不会出现重复嵌套,优先级高的中断也能够得到及时服务。建议在中断返回指令IRET指令前面使用EOI命令。 7、中断向量表的功能是什么?
解答:CPU响应中断后,必须由中断源提供地址信息,引导程序进入中断服务子程序,这些中断服务程序的入口地址存放在中断向量表中。内存中开辟了一个区域,存放中断向量表,也称中断矢量表。
8、假定中断类型号15的中断处理程序的首地址为ROUT15,编写程序建立一个中断向量。 参考代码如下: MOV AX,0 MOV ES,AX MOV DI,15*4 ;中断类型号乘4得到该类型中断的中断服务程序入口地址存入中断向量表的位置
MOV AX,OFFSET ROUT15 ;中断服务程序的偏移地址?AX CLD STOSW ;偏移地址送[60,61]单元 MOV AX,SEG ROUT15 ;中断服务程序的段地址?AX STOSW ;段地址送[62,63]单元 STI ;开中断 9、略
10、给定SP=0100H,SS=0500H,PSW=0240H,在存储单元中已有内容为(00024)=0060H,(00026)=1000H,在段地址为0800H及偏移地址为00A0H的单元中,有一条中断指令INT 9。试问,执行INT 9指令后,SS、SP、IP、PSW的内容是什么?栈顶的三个字是什么? 解答:INT 9指令执行后,SS=0500H(没有变化),SP=00FCH(把三个字压入堆栈,SP的值减6), IP=0060H(从中断向量表的00024单元中取出), PSW=0040H(IF=0,TF=0);栈顶的三个字分别是(地址由低到高)原来的IP=00A2H(INT 9指令的下一条指令的IP值,即INT 9指令的IP值加上INT 9指令的长度,即00A0H+2=00A2H)、原来的CS=0800H、原来的PSW=0240H。 11、略 12、略
13、系统中增加一个中断源,在软件上应增加哪些内容,此中断系统才能正常工作。 解答:①设置中断类型号;②编写中断服务程序;③设定中断优先级 14、
第八章(p324)