计组期末复习

这篇具有很好参考价值的文章主要介绍了计组期末复习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

代码

module alu(a,b,aluc,r,z);
	input [31:0] a
	input [31:0] b;
	input [3:0] aluc;
	output [31:0] r;
	output z;
	assign r = cal (a,b,aluc);
    assign z =~|r;

    function [31:0] cal;
	   input [31:0] a,b;
	   input [3:0]  aluc;
	   casex (aluc)
	   //0 4 1 5 2 6 3 7 F
			4'bx000: cal =a + b;
			4'bx100: cal =a - b;
			4'bx001: cal =a & b;
			4'bx101: cal =a | b;
			4'bx010: cal =a ^ b;
			4'bx110: cal ={b[15:0],16'h0};
			4'bx011: cal =b << a[4:0];
			4'b0111: cal =b >> a[4:0];
			4'b1111: cal =$signed(b) >>> a[4:0];
		endcase
	endfunction
endmodule
module shift (d,sa,right,arith,sh); 
    input [31:0] d;
    input [4:0] sa;
    input right,arith;
    output [31:0] sh; 
    reg [31:0] sh;
    always @* begin
        if (right == 0) begin           // shift left
            sh = d << sa;
        end else if (arith == 0) begin  // shift right logical 
            sh = d >> sa;
        end else begin                  // shift right arithmetic 
            sh = $signed(d) >>> sa; 
        end
    end
endmodule
module regfile (rna,rnb,d,wn,we,clk,clrn,qa,qb);
    input [4:0] rna,rnb,wn; 
    input [31:0] d; 
    input we,clk,clrn; 
    output [31:0] qa,qb;  
    reg [31:0] register [1:31];                                         
    assign qa = (rna == 0) ? 0 : register[rna];                       
    assign qb = (rnb == 0) ? 0 : register[rnb];                    

    //posedge:上沿,negedge:下沿
    always @ (posedge clk or negedge clrn) begin
        if (clrn == 0) begin   //初始化寄存器堆                                        
            integer i;  
            for (i=1; i<32; i=i+1)    
                register[i] <= 0;  //<= 非阻塞赋值
        end else begin 
            if ((wn != 0) && (we == 1))   //we:写使能,wn:write number                               
                register[wn] <= d; //<=非阻塞赋值
        end
    end
endmodule

简答题

画出冯诺依曼计算机结构图


在计算机的主存中,通常设置一定的ROM区,并且 ROM与RAM统一编址,请指出设置ROM区的目的。

存放开机引导的存储数据

某计算机字长32b,其中地址码长度22b,若主存按 字编址,主存的最大容量是多少(字)?若主存按 字节编址,主存的最大容量是多少(字节)?

2^22=4M字
32/8 * 2^22=16MB

计算机为什么要采用多级结构的存储系统?

人们总希望存储器具有容量大、速度快和成本低的特性,而实际上速度快的存储器成本高、容量小,容量大、成本低的存储器又比较慢。为了解决存储器容量、速度和价位之间的矛盾,需要构建多层次的存储系统。

多级存储系统的建立基于什么原理?简述这一原理。

程序局部性原理;程序局部性是指程序在执行期间呈现出局部性的规律,即在一段时间内,CPU访问存储器时,无论是存取指令还是存取数据,所访问的单元都趋于集中在一个较小的连续区域中

试描述挥发性存储器和非挥发性存储器各自的特点, 并各举2个实例。

挥发性存储器:断电后信息丢失:SRAM、DRAM
非挥发性存储器:断电后信息不丢失:磁盘、ROM

什么是存储器的带宽?若存储器的数据总线宽度为 32位,存取周期为200ns,则存储器的带宽是多少?

存储器的带宽指单位时间内从存储器进出信息的最大数量。 
存储器带宽 = 1/200ns ×32 位 = 160M 位 / 秒 = 20MB/ 秒 = 5M 字 / 秒 注意 :字长 32 位,不是 16 位。(注: 1ns=10^-9s )

<> 3级存储系统可分为2 个层次:缓存-主存和主存-辅存。请对这2个层 次加以比较

缓存-主存 主存-辅存
目的 解决存储系统速度问题 解决存储系统容量问题
依据的基本原理 程序局部性原理 程序局部性原理
存储容量
读写速度
实现方法 硬件 软件

指令和数据都存于存储器中,计算机如何区分它们

通过不同的时间段来区分指令和数据,即在取指令阶段取出的为指令,在执行指令阶段取出的即为数据。 
通过地址来源区分,由PC提供存储单元地址的取出的是指令,由指令地址码部分提供存储单元地址的取出的是操作数。

<>CPU对DMA请求和中断请求的响应时间是否一样?为什么?

不一样,因为两种方式的交换速度相差很大,因此CPU必须以更短的时间间隔查询并响应DMA请求。

什么是多重中断?实现多重中断的必要条件是什么

多重中断是指:当CPU执行某个中断服务程序的过程中,发生了更高级、更紧迫的事件,CPU暂停现行中断服务程序的执行,转去处理该事件的中断,处理完返回现行中断服务程序继续执行的过程。 
实现多重中断的必要条件是:在现行中断服务期间,中断允许触发器为1,即开中断。

<>主存一般有哪两种选址方式?简述其特点

(1一维地址译码方式
只有一个地址译码器。字选线选择某个字的所有位。 存储阵列中每一行的所有位对应一个字,共用一根字选择线;
每一列对应不同字的同一位,且与公用的位线相连接。
地址码只需进行一次译码就可选择存储单元,其地址码位数越长,译码器结构越复杂,成本越高,故该寻址方式适合在速度较快、容量较小的存储芯片中使用。 
(2)二维地址译码方式 
存储体中的存储单元按照阵列方式排列
需要 X 和 Y 两个地址译码器, X 称为行译码器,Y 称 为列译码器。
只有 X 译码器和 Y 译码器同时选中的行、列交叉位 置的存储单元才被选中,主要用于大容量的存储器结构

Cache在存储器的层次结构中能起什么作用?

解决CPU和主存速度不匹配的问题、解决了主存储器速度和价格之间的矛盾

什么是中断优先权?中断嵌套的含义是什么

所谓中断优先级就是指当有两个或以上的中断源同时申请中断,系统会优先响应优先级高的中断源。
中断嵌套是指在中断执行的过程中,如果有一个优先级较高的中断源发送中断请求,系统会打断正在执行的中断转而处理更高优先级中断源的中断事件。

什么是I/O接口?为什么在计算机系统中需要设置I/O接口会起到 什么样的作用

IO接口是指计算机中将主机与外部设备或其他外部系统进行连接的接口逻辑
IO接口时主机与外设链接的桥梁,通过接口可以实现主机和外设之间的信息交换

<>描述中断方式输入输出控制的工作流程

CPU 在发出启动外设的命令后继续执行其他操作,
当外设完成数据准备工作后主动向主机提出中断申请,请求CPU进行数据处理,
CPU 在响应中断后通过执行该设备的中断服务程序完成数据传输工作

简述以下指令的执行过程:lw r24, 100(r15)

根据程序计数器, 从存储器取出指令,并把PC + 4
对指令进行译码,从寄存器堆读出寄存器15中的数据 
计算存储器地址:该数据与立即数100相加
访存:相加的结果作为存储器地址, 从存储器中读出数据
把该数据写入寄存器24

MIPS有哪三种类型指令?各举一指令实例,并说明该指令的功能。

R、I、J
add rd,rs,rt	把寄存器rs和rt内容相加,结果存在寄存器rd中
add rt,rs,imm	把寄存器rs数据和无符号立即数imm相加,结果存放在rt中
--------
ADD $8,$9,$10	-》	$8<=($9)+($10)
ADDI $t8,$s3,100	-》	$8=($9)+100
J address	-》	PC={PC[31:28]+address<<2}

一个较完整的指令系统,应当包括那些类型的指令?

数据处理、数据存储、数据传送、程序控制

<>从以下5个方面比较DMA 方式与程序中断方式。

程序中断方式 DMA方式
数据传送 程序(软件) 硬件
响应时间
处理异常情况 不能
中断请求 传送数据 处理结束
优先级

MIPS CPU指令格式有哪三种,试分别写出它们的指令格式。

R型指令:|Opcode|rs|rt|rd|Shamt|Funct|
I型指令:|Opcode|rs|rt|immediate|
J型指令:|Opcode|JumpAddr|
(比特顺序:31-0)

<>MIPS指令的寻址方式有哪几种?试举例说明。

MIPS处理器大多指令都是顺序寻址方式,程序转移涉及的寻址方式有三种:
1. 相对寻址
BEQ rs,rt,label
BEQ $t1,$t2,label,当$t1=$t2时,指令转移地址是PC=PC+label

2. 寄存器间接寻址
JALR $1,$3将PC+4的值保存到$1中,然后执行PC=$s3

3. 伪直接寻址
J label指令执行时32位的转移地址是将PC的高4位和26位的JumpAddr左移两位拼接构成的,PC={PC[31:28],label<<2}

试说明以下指令的功能,并写出对应的32位MIPS CPU 二进制机器指令代码。
(1)sll r13, r12, 25 ; (2)addi r3, r1, -1 ; (3) lui r29, 0xffff ;

Shamt:Shift Amount

1. sll rd,rt,shamt
r13=r12<<25
000000 00000 01100 01101 11001 000000
2. addi rt,rs,imm
rt<-(rs)+imm
001000 00001 00011 1111111111111
3. lui rt,imm
 rt <- immediate<<16 ;将16位立即数放到目标寄存器高16
         位,目标寄存器的低16位填0
001111 00000 11101 1111111111111111
image-20210107002140439image-20210107002356905

综合题

机器字长32位,主存容量为1MB,16个通用寄存器,共32条指令, 请设计双地址指令格式,要求有立即数、直接、寄存器、寄存器间 接、变址、相对六种寻址方式。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jOVKq3ss-1641558756242)(C:\Users\sun\AppData\Roaming\Typora\typora-user-images\image-20210107003011603.png)]


某机器字长为32位,主存容量为2M*32位,单字长指令,且存储字长等于指令字长,有168种操作,操作码位数固定,采用寄存器寻址、 寄存器间接寻址、 立即寻址、直接寻址和间接寻址。CPU中有32个 32位通用寄存器。试回答:

  1. 设计三地址指令,画出三地址指令格式并指出各字段的作用;
  2. 该指令直接寻址的最大范围;
  3. 寄存器间接寻址范围;
  4. 立即数(补码表示的有符号机器数)的范围(用十进制数表示)
> 手写,正误不知 <
1. 
|OP	|X	|rs	|rt	|rd	|D	|
|8	|3	|5	|5	|5	|6	|
OP:操作码
X:寻址方式
rs:源寄存器地址
rt:另外一个源寄存器地址
rd:目的寄存器地址
D:为立即数和间接寻址使用

2. 2^6-1

3. 0~2^32-1 , 4GW

4. -32 ~ 31

一个容量为16K×32位的存储器,其地址线和数据线的总和是多少?当 选用下列不同规格的存储芯片时,各需要多少片? 1K×4位,2K×8位, 4K×4位,16K×1位,4K×8位,8K×8位


设某机有五个中断源L0、L1、L2、 L3、L4,按中断响应的优先次序由 高向低排序为L0L1 L2 L3 L4,现要求中断处理次序改为L1L4 L2 L0 L3,根据下面的格式,写出各中断源的屏蔽字

中断源 原屏蔽字(L01234) 新屏蔽字(L01234)
L0 11111 10010
L1 01111 11111
L2 00111 10110
L3 00011 00010
L4 00001 10111

CPU内有32个32位的通用寄存器,设计一种能容纳64种操作的 指令系统。假设指令字长等于机器字长,试回答以下问题。

  1. 如果主存可直接或间接寻址,采用“寄存器—存储器” 型指令,能直接寻址的最大存储空间是多少?画出指令格式并说明各字段的含义。
  2. 在满足(1)的前提下,如果采用通用寄存器作基址寄存器,则上述“寄存器—存储器”型指令的指令格式有何特点? 画出指令格式并指出这类指令可访问多大的存储空间?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VKIHpcMx-1641558756242)(C:\Users\sun\AppData\Roaming\Typora\typora-user-images\image-20210107003246976.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w2ARjqjb-1641558756243)(C:\Users\sun\AppData\Roaming\Typora\typora-user-images\image-20210107003257398.png)]

某微机指令格式如下所示:

image-20210106161343430

格式中 D 为位移量,X为寻址方式特征值:

  1. X=00 , 直接寻址;
  2. X=01, 用变址寄存器R1进行变址
  3. X=10, 用变址寄存器R2进行变址
  4. X=11, 相对寻址

设(PC)=1234H,(R1)=0037H,(R2)=1122H,(H代表十六进制数), 请确定如下指令的有效地址:

(1)4420H (2) 2244H (3)1322H (4)3521H (5)6723H

1. 4420H=010001,00,00100000B
X=00,直接寻址
EA=D=20H

2. 2244H=001000,10,01000100B
X=10,用变址寄存器R2进行变址
EA=(R2)+ D=

3. 1322H=000100,11,00100010B
X=11,相对寻址
EA=(PC)+ D

4. 3521H=001101,01,0100001B
X=01,用变址寄存器R1进行变址
EA=(R1)+ D=

5. 6723H=011001,11,0100011B
X=11,相对寻址
EA=(PC)+D =
sample:
正确答案:(1)5472H; (2)0038H; (3)3549H; (4)679AH。 (1)8341H=(1000001101000001)2。X=11,相对址,D=41H,有效地址E=(PC)+D=5431H+41H=5472H。(2)1438H=(0001010000111000)2X=00,直接寻址,D=38H,有效地址E=D=0038H。(3)8134H=(1000000100110100)2X=01,用变址寄存器RXl寻址,D=34H,有效地址E=(RXl)+D=3515H+34H=3549H。(4)6228H=(0110001000101000)2X=10,用变址寄存器RX2寻址,D=28H,有效地址E=(RX2)+D=6766H+34H=679AH。

某MIPS架构的多周期CPU执行一段程序,指令分布情况如下:

image-20210106161649761

假设该程序由100个指令组成,CPU执行完该程序可实现2KB数据的输出,若CPU的时钟周期T=100ps,求处理器的: (1)平均CPI (2)平均IPS (3)数据输出通路的基本带宽。

CPI:CPU每执行一条指令所需的时钟周期数。

IPS(Instructions per second):每秒执行指令数

ps:皮秒,10^-12s

CPI=4*0.45+5*0.25+4*0.15+3*0.1+2*0.05=4.05

IPS=1/(T*CPI)=

2KB/(100/IPS)

某32位MIPS型计算机,其存储器按字编址,存储片段如下:

存储器地址 (十六进值) 存储内容 (形式化表示) 寄存器地址(二进值) 寄存器内容(十进制)
00000000 add rd, rs, rt 01000 10
00000004 lw rt, offset(rs) 01001 20
00000008 beq rs, rt, label 01010 17
0000000C 00000008H 01011 11
00000010 0000000AH 01100 13
00000014 0000000BH 01101 15

若指令的各段代码对应的十进制数为:

$rs=8, $rt=9, $rd=10, offset=6, label=4

请分析下列3种条件下,相关寄存器的值:

(1)add指令执行后,PC寄存器和rd寄存器中的内容分别是什么?

(2)lw指令执行后,PC寄存器和rt寄存器中的内容是什么?

(3)beq指令执行后,PC寄存器的内容是什么?

1. rd<=(rs)+(rt)=10+20=30
(rd)=30
指令长度为4Byte,PC<=PC+4
(PC)=00000004H
2. rt<=Mem[(rs)+offset]
(rt)=Mem[十进制(10+16)]=0000000AH
(PC)=00000008H
3. 由2,(rt)=AH=10
(rs)==(rt)
所以PC<=(PC)+ 4 + offset<<2
(PC)=1CH

其它

时钟周期

时钟周期也称为振荡周期,定义为时钟脉冲的倒数(时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us),是计算机中的最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。时钟脉冲是计算机的基本工作脉冲,控制着计算机的工作节奏。时钟频率越高,工作速度就越快。
 
8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。

机器周期

计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。8051系列单片机的一个机器周期由6个S周期(状态周期)组成。 一个S周期=2个节拍(P),所以8051单片机的一个机器周期=6个状态周期=12个时钟周期。
 
例如外接24M晶振的单片机,他的一个机器周期=12/24M 秒;

指令周期

执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期也不同
单片机外接晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us),是计算机中的最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。时钟脉冲是计算机的基本工作脉冲,控制着计算机的工作节奏。时钟频率越高,工作速度就越快。

8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。

机器周期

计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。8051系列单片机的一个机器周期由6个S周期(状态周期)组成。 一个S周期=2个节拍(P),所以8051单片机的一个机器周期=6个状态周期=12个时钟周期。
 
例如外接24M晶振的单片机,他的一个机器周期=12/24M 秒;

指令周期

执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期也不同文章来源地址https://www.toymoban.com/news/detail-480602.html

到了这里,关于计组期末复习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux 服务器出现 Input/output error 处理

    今天突然出现 ls、ss 、 lsof 等命令报错 -bash: /bin/ss: Input/output error 其中有一个服务器上出现提示 *** System restart required *** Last login: Thu Sep 15 12:02:09 2022 from 192.168.0.135 .ssh/rc: 12: .ssh/rc: cannot create /var/log/zabbix-agent/ssh.log: Read-only file system reboot 之后,OK 另一个服务器上更严重 $ sudo

    2024年02月06日
    浏览(58)
  • verilog基础语法,wire,reg,input,output,inout

    概述: 输入输出是模块的端口,寄存器是数据存储介质,线用于把各个电路关联起来,形成一个数据流通通道,进行形成具有具体功能的电路模块。线是信息关联与传递的介质,也是可以称为信息流通的管道。在FPGA中的基本定义为wire,reg,input,output,inout。只有正确的认识到

    2024年04月24日
    浏览(44)
  • 【JAVA杂货铺】一文带你走进面向对象编程|构造方法调用 | 代码块分类| 期末复习系列 | (中3)

    🌈个人主页:  Aileen_0v0 🔥系列专栏: Java学习系列专栏 💫个人格言:\\\" 没有罗马,那就自己创造罗马~\\\" 上次,我们学习了关于Java面向对象编程的 构造方法 ,以及 this 在构造方法/实例化对象中的使用,若有遗忘点击👉🔗 本节我们`来学习,代码块,tostring以及继承  那还等什么

    2024年02月04日
    浏览(58)
  • 零基础学习CANoe Panel(8)—— 开关/显示控件(Input/Output Box )

    🍅 我是 蚂蚁小兵 ,专注于车载诊断领域,尤其擅长于对CANoe工具的使用 🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】 🍅 零基础学习CANoe Panel设计目录汇总,点击跳转👉 🍅 Input/Output Box 控件也是一个常用控件,用来作为 单行 输入和输

    2024年02月12日
    浏览(64)
  • 【C语言】编写input()和output()函数输入,输出5个学生的数据记录

    以下代码定义了一个结构体 student ,具有姓名、学号和成绩三个成员,并先声明了一个存放5个学生信息的 struct student 类型的数组 stu 。my_ input() 函数通过循环提醒用户输入每个学生的信息,并将输入的数据存储到 struct student 类型的数组stu中去。my_ output() 函数用来输出这个数组

    2024年02月02日
    浏览(67)
  • Linux 磁盘坏块修复处理(错误:read error: Input/output error)

    当磁盘出现坏块时,你对所关联的文件进行读取时,一般会出现 read error: Input/output error 这样的错误。 反过来讲,当你看到 read error: Input/output error 这种错误时,很大可能就是磁盘出现了坏块问题。 解决步骤: 1、检测磁盘 我这个磁盘就出现了8个坏块,其中 /dev/sda 是你的磁

    2024年01月17日
    浏览(46)
  • 对set_input_delay和set_output_delay的理解

    前言 在FPGA设计中,端口约束分为两种,一种是管脚约束,及时把顶层模块的端口 port 与板卡上的物理引脚进行映射。另一种就是IO端口延时约束,目的是告诉时序分析工具信号在器件之外的延时,让它能够在一个完整的路径上进行分析,此外还要注意端口延时约束并不具有让

    2024年02月16日
    浏览(45)
  • nohup 命令之 nohup: ignoring input and appending output to ‘nohup.out’

    当我在linux中使用nohup 命令的时候,出现了这个错误: nohup  英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。 nohup  命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup

    2023年04月09日
    浏览(39)
  • linux 中的 nohup 命令(设置后台进程): nohup: ignoring input and appending output to ‘nohup.out’

    Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 在程序结尾来让程序自动运行。 比如我们要运行weblogic在后台: ./startWebLogic.sh 但是加入我们很多程序并不象weblogic一样做成守护进程,可能我们的程序只是普通程序而已,一般这种程序使用 结尾。 但是如果终端关

    2024年02月04日
    浏览(46)
  • 【期末复习】微信小程序复习大纲

    前言:         这周开始进入期末复习周,没时间看C/C++、linux等知识了,先把期末考试必考的知识捋一遍。 目录 第一章        微信小程序入门 一、填空题 二、判断题 三、选择题 四、简答题 第二章        微信小程序页面制作 一、填空题 二、判断题 三、选择题

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包