首页 > 其他分享 >Computer Organization Test

Computer Organization Test

时间:2022-11-06 15:26:44浏览次数:50  
标签:load END .. 芯片 Computer address Test Organization out

计算机组成原理练习题

考点: 数进制转换

  • 原码/反码/补码

\((100)_{10}=(01100100)_{2}=(64)_{16}=(144)_{8}\)
​ \((2/32)_{10}=(0.0001000)_{2}\)
​ \((-1)=(10000001)_{原码}=(11111110)_{反码}=(11111111)_{补码}\)
​ \((11100101)_{补码}=(-27)_{真值}\)

  • \(x+y\)/ \(x-y\)

如果用补码计算下面算式?写出计算过程.(数值用8位二进制)

\((00000100)_{补}\)

+\((11110110)_{补}\)

-------------------

\((11111010)_{补}=(-6)_{真值}\)

  • 判断溢出

    \(S_{f1}S_{f2}=00\) 结果为正数, 无溢出
    ​ \(01\) 结果正溢
    ​ \(10\) 结果负溢
    ​ \(11\) 结果位负数, 无溢出

    \(x=+0.1100\), \(y=+0.1000\) , 求\(x+y\).

    \([x]_{补}=00.1100\)

    \([y]_{补}=00.1000\)

    \([x]_{补}\) \(00.1100\)

    +\([y]_{补}\) \(00.1000\)
    --------------------

​ \(01.0100\)

符号位: "\(01\)", 表示已溢出, 正溢, 结果大于\(+1\)

\(x=-0.1100\), \(y=-0.1000\), 求\(x+y\)

\([x]_{补}=11.0100\)

\([y]_{补}=11.1100\)

\([x]_{补}\) \(11.0100\)
+\([y]_{补}\) \(11.1100\)
--------------------

​ \(10.1100\)

符号位: "\(10\)", 表示已溢出, 负溢, 结果大于\(-1\)

采用变形补码进行定点加减运算,已知\(x=0.10101\), \(y=1.10001\)求\(x+y=?\), 并判定是否产生了运算溢出.

\(x=0.10101\), \(y=1.10001\), 求\(x+y\)

\([x]_{补}=00.10101\)

\([y]_{补}=11.10001\)

\([x]_{补}\) \(00.10101\)
+\([y]_{补}\) \(11.10001\)
--------------------

​ \(100.00110\)

符号位: "\(00\)", 表示无溢出

考点: 硬件描述语言

硬件描述语言是电子系统硬件行为描述/结构描述/数据流描述的语言

根据真值表,用HDL语言编写程序,设计出电路芯片,芯片名Xinpian.

a b outc
0 0 0
0 1 1
1 0 0
1 1 1

化简: \(\overline{a}b+ab\)

CHIP Xinpian
{
    IN a, b;
    OUT outc;

    PARTS:
    Not(in=a, out=Nota);
    And(a=Nota, b=b, out=p1);
    And(a=a, b=b, out=p2);
    Or(a=p1, b=p2, out=outc);
}

根据真值表,用HDL语言编写程序,设计出电路芯片,芯片名Circuit。(提示:输入端:x,y ,输出端:z)

a b z
0 0 1
0 1 0
1 0 0
1 1 1

化简: \(\overline{ab}+ab\)

CHIP Circuit
{
 IN a, b;
 OUT z;
 
 PARTS:
 Not(in=a, out=Nota);
 Not(in=b, out=Notb);
 And(a=Nota, b=Notb, out=p1);
 And(a=a, b=b, out=p2);
 Or(a=p1, b=p2, out=z);
}

请根据原理图,写出HDL程序,说出功能

img

CHIP Abs
{
    IN in, sel;
    OUT A, B;

    PARTS
    Not(in=sel, out=Nots);
    And(a=in, b=Nots, out=A);
    And(a=in, b=Nots, out=B);
}

根据组成部件说出芯片名称

CHIP And
{    
 IN a, b;
 OUT out;
 
 PARTS:
 Nand(a = a, b = b, out = x);
 Not(in = x, out = out);
}

请根据门电路,实现或门

CHIP Or {
    IN a, b;
    OUT out;

    PARTS:
 Not(in = a, out = x);
 Not(in = b, out = y);
 Nand(a = x, b = y, out = out);

img

img

\(x=1\), \(y=2\)当\(x+y\)后,ALU的输出端\(zr\)的值为 \(3\)

\(x=1\), \(y=2\)时, ALU的六个控制端分别为:\(zx=0\), \(nx=0\), \(zy=0\), \(ny=0\), \(f=0\), \(no=0\)时输出端out的值为 \(x \& y\)后的值

\(x=+1\), \(y=+2\)时,当\(x+y\)后,ALU的输出端ng的值为 \(0\)

考点: 时序芯片

我们现在手上有512×16位的RAM512芯片,要求利用已有芯片RAM512、多路输出器和数据选择器构造出一个2K×16位的RAM2K的存储器芯片。

CHIP RAM2K
{
 IN in[16], load, address[11];
 OUT out[16];
 
 PARTS:
 DMux4Way(in=load, sel=address[9..10], a=a0, b=a1, c=a2, d=a3);
 RAM512(in=in, load=a0, address=address[0..8], out=out0);
 RAM512(in=in, load=a1, address=address[0..8], out=out1);
 RAM512(in=in, load=a2, address=address[0..8], out=out2);
 RAM512(in=in, load=a3, address=address[0..8], out=out3);
 Mux4Way16(a=out0, b=out1, c=out2, d=out3, sel=address[9..10], out=out);
}

我们现在手上有2k×16位的RAM512芯片,要求利用已有芯片RAM2K、多路输出器和数据选择器构造出一个8K×16位的RAM8K的存储器芯片。

(1)计算出搭建出RAM8K存储器的地址线有多少根?

(2)搭建时需要用RAM2K这种芯片用多少片?

(3)用HDL语言构造出RAM8K的存储器芯片.

(4)写出每片存储器芯片的地址范围.

解答:

(1)RAM8K有13根地址线

(2)搭建RAM8K需要4片RAM2K芯片

(3)代码如下

CHIP RAM8K
{
 IN in[16], load, address[13];
 OUT out[16];
 
 PARTS:
 DMux4Way(in=in, load=load, address=address[11..12], a=a0, b=a1, c=a2, d=a3);
 RAM2K(in=in, load=a0, address=address[0..10], out=out0);
 RAM2K(in=in, load=a1, address=address[0..10], out=out1);
 RAM2K(in=in, load=a2, address=address[0..10], out=out2);
 RAM2K(in=in, load=a3, address=address[0..10], out=out3);
 Mux4Way16(a=out0, b=out1, c=out2, d=out3, address=address[11..12], out=out);
}

\(2K=2^{11}\), 因为从0开始, 所以要减一.

\(0800H-1\)

\(1000H-1\)

\(1800H-1\)

\(2000H-1\)

(4)第一片: \(0000H-07FFH\), 第二片: \(0800H-0FFFH\), 第三片: \(1000H-17FFH\), 第四片: \(1800H-1FFFH\)

考点: 总线

总线(Bus)是计算机各种功能部件之间传送信息公共通信干线

考点: 寻址

设R0为变址寄存器, R0=1000, PC为程序计数器, PC=2000H, D为形式地址, D=100; 存储器的有关数据如下表

地址 0080H 0100H 0165H 0181H 1000H 1100H 2100H
数据 0040H 0080H 0066H 0100H 0256H 0181H 0165H

根据上述数据和寻址方式写出其有效地址和操作数

寻址方式 有效地址 操作数 寻址方式 有效地址 操作数
直接 0100H 0080H 变址 1100H 0181H
寄存器 1000H 1000H 相对间接 0165H 0066H
变址间接 0181H 0100H 相对 2100H 0165H
寄存器间接 1000H 0256H 间接 0080H 0040H

一个64KB的存储器,地址线和数据线的总和是 16

一个RAM64K*16的存储器,地址线和数据线的总和是 32

考点: Hack机器语言

  • 数据存储器: RAM, 以下用M表示
  • 程序存储器: ROM, 指令在其中
  • 程序计数器: PC
  • 寄存器: D/A
  • 指令集: 只包含两条指令
    • A指令
    • C指令

RAM和ROM的区别?

RAM是随机存取存储器,在程序执行过程中既可以读出又可以写入。

ROM是只读存储器,在程序的执行过程中只能读出信息,不能写入信息

指令 \(@52\)经过汇编后的二进制形式是什么?

0000 0000 0011 0100

A指令是0开头, C指令是1开头

机器语言

机器语言是机器能直接识别的程序语言或指令代码

考点: 冯诺依曼体系结构

冯诺依曼体系结构是什么?

CPU 由哪些部分组成,有什么功能?

运算器的主要功能是完成算数运算和逻辑运算;

控制器的主要功能是对指令译码,并产生相应的控制信号。

指令集

CPU中用来计算和控制计算机系统的一套指令的集合

根据以下程序过程,请计算出 y 对应内存单元的值为多少?(提示:@后面写的数据为十进制数)

@60
D=A
@30
D=D&A
@5
D=D+A
@y
M=D

\(y=60 \& 30+5=00111100 \& 00011110+00000101=00011100+00000101=00100001\)

请简述下列程序功能

@x
D=M
@5
D=D-A
@xiao
D;JLT
@a
M=M+1
@END
0;JMP
(xiao)
@4
D=A
@y
M=M+D
(END)
@END
0;JMP

当\(x<5\)时, \(y=y+4\)

否则 \(a=a+1\)

判断\(x\), \(y\) 存储单元的值, 两个中的大的存储单元的值加100。\((X>Y -----X+100 或 Y>X-------Y+100)\)

@x
D=M
@y
D=M-D

@da
D;JGT

@100
D=A
@x
M=M+D

@END
0;JMP

(da)
@100
D=A
@y
M=M+D

(END)
@END
0;JMP

计算出1+2+...+100

@i
M=1
@sum
M=0

(LOOP)
@i
D=M
@100
D=D-A

@END
D;JGT

@i
D=M
@sum
M=D+M
@i
M=M+1

@LOOP
0;JMP

(END)
@END
0;JMP

写\(x=x+y\)

@y
D=M

@x
M=M+D

写\(x=x+5\)

@5
D=A
@x
M=M+D

用Hack程序语言来写出以下代码:当b<c 时,c=1 ,否则 c=c-1。(提示:b,c 都是存储单元编号)

@b
D=M
@c
D=M-D

@da
D;JGT

@c
M=M-1

@END
0;JMP

(da)
@c
M=1

(END)
@END
0;JMP

用Hack程序语言来写出以下代码:当x>=y 时,z=z+1 ,否则 z=1。(提示:x,y, z 都是存储单元编号)

@y
D=M
@x
D=M-D

@da
D;JGE

@z
M=1

@END
0;JMP

(da)
@z
M=M+1

(END)
@END
0;JMP

考点: CPU(中央处理器)

CPU结构如图所示其中包括寄存器,各部分之间的连线表示数据通路箭头表示信息传送方向.

img

数据缓冲寄存器或MDR 指令寄存器 或IR

主存地址寄存器或MAR 程序计数器 或PC

标签:load,END,..,芯片,Computer,address,Test,Organization,out
From: https://www.cnblogs.com/Ahtelek/p/Computer-Organization-Test.html

相关文章

  • Test
    ##NOIP55###ProblemA:军训(training)$$【问题描述】为了让营员收获更大,本次秋令营增加了军训项目。军训的场地位于一片无限大的二维的台阶。定义从 (x1,y1......
  • 执行Maven的test命令报错
    参考网址:https://blog.csdn.net/weixin_46688566/article/details/126470742解决方案在pom.xml文件中加入以下依赖:<plugin><groupId>org.eclipse.m2e</groupId>......
  • AtCoder Beginner Contest 276
    今天来讲解一下AtCoderBeginnerContest276 C和D传送地址:https://atcoder.jp/contests/abc276一. C-PreviousPermutation题目大意:给你一个有数字1~n组成的序列......
  • Test
    NOIP55ProblemA:军训(training)\[【问题描述】为了让营员收获更大,本次秋令营增加了军训项目。军训的场地位于一片无限大的二维的台阶。定义从(x1,y1)到(x2......
  • AtCoder Beginner Contest 276
    咕咕咕咕。E-RoundTrip如果存在某个点双满足这个点双包含起点且点双大小大于\(4\)则有解。F-DoubleChance考虑不断在之前的基础上在末尾添加一个数,每次更新期......
  • testmd
    goodthingsfuninitData(){intent.run{created_in=intent.getStringExtra("from")?:""pagerPosition=intent.getIntExtra(......
  • AtCoder Beginner Contest 276 A~G 题解
    今天凌晨CFD题差一句判断AC,晚上ABCG题把插板法和快速幂搞混差点AC。事不过三,再这样一次我直接紫砂。太简单的题就不放翻译和代码了。(事实上这场A-E都是大水题......
  • [Theoretical Computer Science] 算法以及复杂性
    我们如何定义一个程序的运行时间?为了排除“不同计算机”的运行速度对时间的影响,我们将一个程序的运行时间定义为“一个固定计算模型上单位操作的次数”,这个固定的计算模型......
  • robotframework自动化测试框架实战教程:测试数据文档工具(Testdoc)
    生成文档的数据源可以是单个文件,单个目录,也可以是多个文件和目录.所有这些情况,最后那个参数都必须是最终文档输出要写入的文件.基本用法python-mrobot.testdoc......
  • the fastest npm package installer All In One
    thefastestnpmpackageinstallerAllInOneTurboIncrementalbundlerandbuildsystemoptimizedforJavaScriptandTypeScript,writteninRust–includingT......