计算机组成原理算法实现

计算机组成原理算法实现
计算机组成原理算法实现

《计算机组成原理》课程设计说明书(课题二)

信息工程学院

目录

1 课程设计的目的 (1)

2 设计内容与要求 (1)

2.1 题目 (1)

2.2 功能 (1)

2.3 算法原理 (1)

3 主要技术指标及特点 (4)

3.1 登录窗体 (4)

3.2操作界面 (7)

3.3定点小数机器表示窗口界面 (9)

3.4定点小数变形补码加减运算界面 (13)

3.5定点小数的原码乘法界面 (16)

3.6浮点数加减运算界面 (19)

3.7帮助界面 (26)

4 设计小结 (27)

参考文献 (28)

计算机组成原理算法实现(二)

1 课程设计的目的

本课程设计是在学完本课程教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的计算机组成原理课程基本知识,进一步领会计算机组成原理的一些算法,并进行具体实现,提高分析问题、解决问题的综合应用能力

2 设计内容与要求

2.1 题目

计算机组成原理算法实现(二)

2.2 功能

能够实现定点小数的机器数表示、定点小数的变形补码加减运算、定点小数的原码一位乘法运算和浮点数的加减运算。

2.3 算法原理

数据表示方法:

计算机中常用的数据表示格式有两种,一是定点格式,二是浮点格式。

(1)定点表示:约定机器中所有数据的小数点位置是固定的。由于约定在固定的位置,所以小数点就不再使用记号“.”来表示。

(2)浮点表示:定点数表示的数的范围有限,为了扩展数的表示范围,按照科学记数法表示数据的方式,任何一个二进制数N都可以表示成如下的格式:

N=M*2e

M :尾数,是一个纯小数,决定数据的表示精度

e :指数,又称为阶码,是一个整数,决定数据的表示范围

数的机器码表示:

一般书写所表示的数据称为真值,在计算机中为了表示符号位,通常把符号位和数字位一起编码来表示相应的数,形成了各种数据的存储和表示方法,这些编码称为机器码。常用的机器码有原码、反码、补码和移码。

(1)原码:原码的数值部分是该数的绝对值,最高位表示符号位,最高位为0是正数,最高位为1是负数。

(2)反码:正数的反码等于原码,负数的反码等于除符号位外其余二进制数码0变成1,1变成0。

正数: [x]反 = [x]原 = x

负数:符号位不变,其余变反

(3)补码:正数的补码等于原码,负数的补码等于反码加1。

正数: [x]补= [x]原

负数: [x]补= [x]反 +1

定点加、减法运算:

结论:任何两数的补码之和等于两数之和的补码

补码加法

基本公式: [x]补 + [y]补 = [x+y]补

补码减法

基本公式: [x]补 - [y]补=[x]补 + [-y]补

当负数用补码表示后,符号位作为数据的一部分一起参加运算,运算器不用考虑参加加法运算的操作数的正负以及结果的正负,任意数的加法就可以化作正数加法来实现。

溢出:在定点数机器中,数的大小超出了定点数能表示的范围,叫溢出。

(1)在定点小数机中数的表示范围是-1

(2)在定点整数机(8位)中数的表示范围是-128

符号位“01”,上溢出

符号位“10”,下溢出

符号位“00”或者“11”,未溢出

从[y]补求[-y]补的法则是:

对[y]补“包括符号位求反且最末位加1”,即可得到[-y]补

定点乘法运算:

在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。设n位被乘数和乘数用定点小数表示(定点整数也同样适用)

被乘数[x]原=xf .xn-1…x1x0

乘数 [y]原=yf .yn-1…y1y0

则乘积

[z]原=(xf⊕yf)+(0.xn-1…x1x0)(0.yn-1…y1y0)

式中,xf为被乘数符号,yf为乘数符号。

机器算法:机器中一种方法是多次采用“加法-移位”的方法来完成,称为串行乘法器,它的硬件结构简单,但是速度慢,目前广泛使用的是流水式阵列乘法器,称为并行乘法器。无符号数m乘以n会产生m*n个位积,出现m+n个列和,并行乘法器的关键是快速产生m*n个位积,对位积进行相加运算产生m+n个列和。

第一步:位积的产生

观察乘法运算:0*0=0,0*1=0,1*0=0,1*1=1

相当于:a∩b

所以m*n个位积可以由m*n个与门并行产生。

第二步:列和的产生:利用全加器

浮点数的加减法运算:

浮点数的加减法运算分为六个步骤:

(1)0操作数检查

浮点加减运算过程比定点运算过程复杂。如果判知两个操作数x或y中有一个数为0,即可得知运算结果而没有必要再进行后续的一系列操作以节省运算时间。0操作数检查步骤则用来完成这一功能。

参加加法运算的数据都是非零,进入下一步。

(2)比较价码大小并完成对阶

为了便于直观理解,假设两数均以补码表示,阶码采用双符号位,尾数采用单符号位。两浮点数进行加减,首先要看两数的阶码是否相同,若二数阶码不同,表示小数点位置没有对齐,此时必须使两个数阶码相同,这个过程叫作对阶。对阶操作规定使尾数右移,尾数右移后阶码作相应增加,因此对阶时,总是使小阶向大阶看齐。

(3)尾数进行加减运算

对阶结束后,即可进行尾数的求和运算。不论加法运算还是减法运算,都按加法进行操作(减法利用补码减法转换成补码的加法来做),其方法与定点加减法运算完全一样。

(4)结果规格化

a. 采用双符号位表示尾数时,如果两符号位为01或10时,应将结果尾数右移一

位,阶码加1(叫“右规”)。

b. 如果尾数最高数值位与符号位相同,应将尾数左移,阶码减1,直至数值位最

高位与符号位相反(叫“左规”)。

(5)舍入运算

在对阶向右规格化,尾数向右移位,这样被右移的尾数的低位部分会被丢掉,从而造成一定误差,要进行舍入处理。

简单的舍入方法有两种:一种是“0舍1入”法,即如果右移时被丢掉数位的最高位为0则舍去,为1则将尾数的末位做加加1运算。另一种是“恒置1”法,即只要数位被移掉,就在尾数的末尾恒置1。

(6)判断结果是否溢出

根据补码的双符号检测溢出的方法确定阶码是否溢出。

3 主要技术指标及特点

针对题目的各个功能要求,本人将程序分为一个主模块ZuCheng和六个子模块分别为Password、Show、Form3、Form4、Form5、Help。显然这是一个典型的使用模块化结构的程序。所有独立功能的部分都采用子模块结构,因为模块化设计使人一目了然。下面将介绍主模块和各子模块的运用特点和参数说明,并给出他们的流程图和主要Java代码。

3.1 登录窗体

口令输入错误时给出重新输入口令的提示

三次口令输入错误被禁止使用

Password模块流程图

Password模块的主要Java代码

public void actionPerformed(ActionEvent e)

{

String s = new String("123"

if (e.getSource() == button1)

{

while (i == 0 && m <= 3 && (!(text1.getText().equals(""))))

{

if (text1.getText().equals(s))

{

i = 1;

}

else

{

m++;

JOptionPane.showMessageDialog(this, "您输入的密码不正确", "警告对话框",

JOptionPane.W ARNING_MESSAGE);text1.setText(null);}

}

if (m > 3)

{

JOptionPane.showMessageDialog(this, "您已被禁用", "错误对话框",

JOptionPane.ERROR_MESSAGE);}

}

if (e.getSource() == button2)

{

setVisible(false);

}

if (i == 1)

{

ZuCheng s1 = new ZuCheng("操作菜单");

s1.setVisible(true);

setVisible(false);

}

}

3.2操作界面

通过ZuCheng主模块,调用Show、Form3、Form4、Form5、Help子模块。当选择对应子模块的按钮就可以调用各个子模块,而各子模块之间是相互独立的,下面用模块图来表示

程序模块间的调用关系:

(箭头起始处模块调用箭头指向处模块)

Zucheng模块流程图

Zucheng模块的主要Java代码

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==m1)

{

Show s1=new Show("机器数表示");

s1.setVisible(true);

}

else if(e.getSource()==m2)

{

Form3 f1=new Form3();

f1.setTitle("定点变形补码加减");

f1.setVisible(true);

}

else if(e.getSource()==m3)

{

Form4 f2=new Form4(); f2.setTitle("定点原码乘法"); f2.setVisible(true);

}

else if(e.getSource()==m4)

{

Form5 f5=new Form5("浮点加减");

f5.setVisible(true);

}

else if(e.getSource()==m5)

{

Help h1=new Help("帮助信息");

h1.setVisible(true);

h1.work();

}

}

3.3定点小数机器表示窗口界面

在上面的窗体中按“输入”按扭时,将输入焦点设置为最上面的一个文本框上。输入一个带符号的二进制定点小数(如+0.11010或-0.010101)后,按“原码”、“反码”、“补码”或“移码”按扭中的任一个后,将在第二个文本框中显示对应的机器数,同时要求将第二个标签中“原码”字样改成对应的编码字样。选择“返回”按扭时回到主窗体。

比如,用户输入-0.010101,执行相应的操作会出现相应的结果,如下列各图表示

原码表示:反码表示:

补码表示: 移码表示:

Show 模块流程图

Show模块的主要Java代码

public void actionPerformed(ActionEvent e) {

if (e.getSource() == button1) {

me = 1;

t1.requestFocusInWindow();

} else if (me == 1) {

if (e.getSource() == button2) {

b3.setText("该数对应的原码为:");

String sg = t1.getText();

if (sg.startsWith("+")) {

int index = sg.indexOf("+");

String ss = sg.substring(index + 1);

t2.setText(ss);

} else {

int index = sg.indexOf("-");

String ss = sg.substring(index + 1);

String sf = ss.replaceFirst("0", "1");

t2.setText(sf);

}

} else if (e.getSource() == button3) {

b3.setText("该数对应的反码为:");

String sg = t1.getText();

if (sg.startsWith("+")) {

int index = sg.indexOf("+");

String ss = sg.substring(index + 1);

t2.setText(ss);

} else {

int index = sg.indexOf("-");

String ss = sg.substring(index + 1);

char a[] = ss.toCharArray();

for (int i = 2; i < a.length; i++) {

char m = '1', n = '0';

if (a[i] == m) {

a[i] = n;

} else {

a[i] = m;

}

}String se = new String(a);

String sf = se.replaceFirst("0", "1");

t2.setText(sf);

}

} else if (e.getSource() == button4) {

b3.setText("该数对应的补码为:");

String sg = t1.getText();

if (sg.startsWith("+")) {

int index = sg.indexOf("+");

String ss = sg.substring(index + 1);

t2.setText(ss);

} else {

int index = sg.indexOf("-");

String ss = sg.substring(index + 1);

char a[] = ss.toCharArray();

for (int i = 2; i < a.length; i++) {

char m = '1', n = '0';

if (a[i] == m) {

a[i] = n;

} else {

a[i] = m;

}

}

if (a[a.length - 1] == '0') {

a[a.length - 1] = '1';

} else {

for (int j = a.length - 1; j >= 2; j--) {

if (a[j - 1] == '0') {

a[j - 1] = '1';

a[j] = '0';

break;

} else {

a[j] = '0';

}

}

}String se = new String(a);

String sf = se.replaceFirst("0", "1");

t2.setText(sf);

}

} else if (e.getSource() == button5) {

b3.setText("该数对应的移码为:");

String sg = t1.getText();

if (sg.startsWith("+")) {

int index = sg.indexOf("+");

String ss = sg.substring(index + 1);

String se = ss.replaceFirst("0", "1");

t2.setText(se);

} else {

int index = sg.indexOf("-");

String ss = sg.substring(index + 1);

char a[] = ss.toCharArray();

for (int i = 2; i < a.length; i++) {

char m = '1', n = '0';

if (a[i] == m) {

a[i] = n;

} else {

a[i] = m;

}

}if (a[a.length - 1] == '0') {

a[a.length - 1] = '1';

} else {

for (int j = a.length - 1; j >= 2; j--) {

if (a[j - 1] == '0') {

a[j - 1] = '1';

a[j] = '0';

break;

} else { a[j] = '0';

}

}

}String sf = new String(a);

t2.setText(sf);

}

}

}if (e.getSource() == button6) {

setVisible(false);

}

}

3.4定点小数变形补码加减运算界面

在此窗口用户需要输入两个定点小数来参加运算,同上面一样,用户必需点击输入按钮,才能激活输入框。输入完毕,用户点击各个按钮,则会出现相应的结果,比如,用户输入-0.11010和+0.01101,执行相应的操作会出现相应的结果,如下图表示

Form3模块流程图

Form3模块的主要Java代码

//获得第一个数的补码

public String work1() {

String sg = d1.getText();

System.out.print(" sdf");

if (sg.startsWith("+")) {

int index = sg.indexOf("+");

String ss = sg.substring(index + 1);

ss1 = ss.replaceFirst("0", "00");

} else {

int index = sg.indexOf("-");

String ss = sg.substring(index + 1);

char a[] = ss.toCharArray();

for (int i = 2; i < a.length; i++) {

char m = '1', n = '0';

if (a[i] == m) {

a[i] = n;

} else {

a[i] = m;

}

}

if (a[a.length - 1] == '0') {

a[a.length - 1] = '1';

} else {

for (int j = a.length - 1; j >= 2; j--) {

if (a[j - 1] == '0') {

a[j - 1] = '1';

a[j] = '0';

break;

} else {

a[j] = '0';

}

}

}

String se = new String(a);

ss1 = se.replaceFirst("0", "11");

}

return ss1;

}

//做加法时获得第二个数的补码

public String work2() {

String sa = d2.getText();

if (sa.startsWith("+")) {

int index = sa.indexOf("+");

String ss = sa.substring(index + 1);

ss2 = ss.replaceFirst("0", "00");

} else {

int index = sa.indexOf("-");

String ss = sa.substring(index + 1);

char b[] = ss.toCharArray();

for (int i = 2; i < b.length; i++) {

char m = '1', n = '0';

if (b[i] == m) {

b[i] = n;

} else {

b[i] = m;

}

}

if (b[b.length - 1] == '0') {

b[b.length - 1] = '1';

} else {

for (int j = b.length - 1; j >= 2; j--) {

if (b[j - 1] == '0') {

b[j - 1] = '1';

b[j] = '0';

break;

} else {

b[j] = '0';

}

}

}

String sc = new String(b);

ss2 = sc.replaceFirst("0", "11");

}

return ss2;

}

//做减法时获得第二个数的补码

public String work3() {

String sa = d2.getText();

if (sa.startsWith("-")) {

int index = sa.indexOf("-");

String ss = sa.substring(index + 1);

ss2 = ss.replaceFirst("0", "00");

} else {

int index = sa.indexOf("+");

String ss = sa.substring(index + 1);

char b[] = ss.toCharArray();

for (int i = 2; i < b.length; i++) {

char m = '1', n = '0';

if (b[i] == m) {

b[i] = n;

} else {

b[i] = m;

}

}

if (b[b.length - 1] == '0') {

b[b.length - 1] = '1';

} else {

for (int j = b.length - 1; j >= 2; j--) {

if (b[j - 1] == '0') {

b[j - 1] = '1';

b[j] = '0';

break;

} else {

b[j] = '0';

}

}

}

String sc = new String(b);

ss2 = sc.replaceFirst("0", "11");

}

return ss2;

}

//实现两数补码相加

public String add1(char a1[], char a2[]) {

char jg[] = new char[r];

char cf = '0';

while (r > 0) {

if (a1[r - 1] == '0' && a2[r - 1] == '0' && cf == '0') {

jg[r - 1] = '0';

cf = '0';

} else if ((a1[r - 1] == '0' && a2[r - 1] == '0' && cf == '1') ||

(a1[r - 1] == '0' && a2[r - 1] == '1' && cf == '0') ||

(a1[r - 1] == '1' && a2[r - 1] == '0' && cf == '0')) {

jg[r - 1] = '1';

cf = '0';

} else if ((a1[r - 1] == '0' && a2[r - 1] == '1' && cf == '1') ||

(a1[r - 1] == '1' && a2[r - 1] == '0' && cf == '1') ||

(a1[r - 1] == '1' && a2[r - 1] == '1' && cf == '0')) {

jg[r - 1] = '0';

cf = '1';

} else if (a1[r - 1] == '1' && a2[r - 1] == '1' && cf == '1') {

jg[r - 1] = '1';

cf = '1';

} else {

jg[r - 1] = a1[r - 1];

}

r--;

}

String result = new String(jg);

return result;

}

3.5定点小数的原码乘法界面

同样,在此界面用户必需要输入乘数和被乘数后执行乘法操作,输入前,用户必需要点击输入按钮才能接获输入框,如输入乘数为+0.1000,被乘数为+0.1101,执行相应的操作得出相应的结果,如下图

Form4模块流程图

Form4模块的主要Java代码

//被乘数转化为原码形式

public String work1() {

String a1 = t1.getText();

if (a1.startsWith("+")) {

int index = a1.indexOf("+");

s1 = a1.substring(index + 1);

} else {

int index = a1.indexOf("-");

String ss = a1.substring(index + 1);

s1 = ss.replaceFirst("0", "1");

}

return s1;

}

//乘数转化为原码形式

public String work2() {

String a2 = t2.getText();

if (a2.startsWith("+")) {

int index = a2.indexOf("+");

s2 = a2.substring(index + 1);

} else {

int index = a2.indexOf("-");String ss = a2.substring(index + 1);

s2 = ss.replaceFirst("0", "1");

}return s2;

}

//实现两数的相加

public String add1(char a1[], char a2[]) {

int r = a1.length;

char jg[] = new char[r];char cf='0';

while (r > 0) {

if (a1[r - 1] == '0' && a2[r - 1] == '0' && cf == '0') {

jg[r - 1] = '0';

cf = '0';

} else if ((a1[r - 1] == '0' && a2[r - 1] == '0' && cf == '1') ||

(a1[r - 1] == '0' && a2[r - 1] == '1' && cf == '0') ||

(a1[r - 1] == '1' && a2[r - 1] == '0' && cf == '0')) {

jg[r - 1] = '1';

cf = '0';

} else if ((a1[r - 1] == '0' && a2[r - 1] == '1' && cf == '1') ||

(a1[r - 1] == '1' && a2[r - 1] == '0' && cf == '1') ||

(a1[r - 1] == '1' && a2[r - 1] == '1' && cf == '0')) {

jg[r - 1] = '0';

cf = '1';

} else if (a1[r - 1] == '1' && a2[r - 1] == '1' && cf == '1') {

jg[r - 1] = '1';

cf = '1';

} else {jg[r - 1] = '0';

} r--;

}

result = new String(jg);

return result;

}

//实现两数的相乘

public String mul(String ss1, String ss2) {

char a[] = ss1.toCharArray(); char b[] = ss2.toCharArray();

int n1 = ss1.length(); int n2 = ss2.length();

char mul[] = new char[n1 + n2 - 2];

int m = mul.length;

char temp1[] = new char[n1 + n2 - 4];char temp2[] = new char[n1 + n2 - 4];

//实现积的符号位和小数点

if (a[0] == b[0]) {

mul[0] = '0';

} else {

mul[0] = '1';

}

计算机组成原理第一章题目(含答案)

第一章计算机系统概论第一章单元测验 1、计算机硬件能直接执行的是 A、高级语言 B、机器语言 C、汇编语言 D、任何语言 2、下列说法中,错误的是 A、软件与硬件具有逻辑功能的等价性 B、固件功能类似软件,形态类似硬件 C、计算机系统层次结构中,微程序属于硬件级 D、寄存器的数据位对微程序级用户透明 3、完整的计算机系统通常包括 A、运算器、控制器、存储器 B、主机、外部设备 C、主机和应用软件 D、硬件系统与软件系统 4、计算机的字长与下列哪项指标密切相关 A、运算精确度 B、运算速度 C、内存容量 D、存取速度 5、CPU地址线数量与下列哪项指标密切相关 A、运算精确度 B、运算速度 C、内存容量 D、存储数据位 6、下列属于冯?诺依曼计算机的核心思想是 A、存储器按地址访问 B、存储程序和程序控制 C、采用补码 D、采用总线

7、下列关于计算机系统层次结构的描述中,正确的是 A、不同层次面向不同用户,看到计算机的属性不同 B、低层代码执行效率比高层代码执行效率高 C、低层用户对硬件的透明性比高层用户要低 D、指令集架构层是软、硬件间的接口 8、下列关于硬件与软件关系的描述中,正确的是 A、硬件是软件运行的基础 B、硬件的发展推动了软件的发展 C、软件的发展也推动硬件的发展 D、软件能完成的功能及性能与硬件有关 9、下列关于计算机字长的描述中正确的是 A、字长一般与运算器的数据位相同 B、字长一般与通用寄存器的位数相同 C、字长一般与存储器数据位相同 D、字长一般与存储器的地址位相同 10、下列可用于评价计算机系统性能的指标是 A、MIPS B、CPI C、IPC D、字长 11、下列计算机系统性能评价的描述中正确的是 A、程序MIPS值越高,计算机的性能越高 B、程序的CPI值越低,计算机的性能越高 C、主频高的机器性能不一定高 D、同一程序在不同机器上运行时得到的MIPS值不一定相同 12、访问256KB的存储空间,需要的地址线数最少为( )根?(只需要填阿拉伯数字) 13、程序必须存放在哪里才能被CPU访问并执行 14、某计算机指令集中共有A、B、C、D四类指令,它们占指令系统的比例分别为40% 、20%、20%、20%, 各类指令的CPI分别为2、3、4、5;该机器的主频为600MHZ,则该机的CPI 为(保留到小数点后一位) 15、某计算机指令集中共有A、B、C、D四类指令,它们占指令系统的比例分别为40% 、20%、20%、20%, 各类指令的CPI分别为2、3、4、5;该机器的主频为600MHZ,则该机的MIPS为(保留到小数点后一位) 参考答案如下:

计算机组成原理第五版 白中英(详细)第5章习题参考答案

第5章习题参考答案 1.请在括号内填入适当答案。在CPU中: (1)保存当前正在执行的指令的寄存器是(IR ); (2)保存当前正在执行的指令地址的寄存器是(AR ) (3)算术逻辑运算结果通常放在(DR )和(通用寄存器)。 2.参见图5.15的数据通路。画出存数指令“STO Rl,(R2)”的指令周期流程图,其含义是将寄存器Rl的内容传送至(R2)为地址的主存单元中。标出各微操作信号序列。 解: STO R1, (R2)的指令流程图及微操作信号序列如下:

STO R1, (R2) R/W=R DR O, G, IR i R2O, G, AR i R1O, G, DR i R/W=W 3.参见图5.15的数据通路,画出取数指令“LAD (R3),R0”的指令周期流程图,其含义是将(R3)为地址主存单元的内容取至寄存器R2中,标出各微操作控制信号序列。 解: LAD R3, (R0)的指令流程图及为操作信号序列如下:

PC O , G, AR i R/W=R DR O , G, IR i R 3O , G, AR i DR O , G, R 0i R/W=R LAD (R3), R0 4.假设主脉冲源频率为10MHz ,要求产生5个等间隔的节拍脉冲,试画出时序产生器的逻辑图。 解:

5.如果在一个CPU 周期中要产生3个节拍脉冲;T l =200ns ,T 2=400ns ,T 3=200ns ,试画出时序产生器逻辑图。 解:取节拍脉冲T l 、T 2、T 3的宽度为时钟周期或者是时钟周期的倍数即可。所以取时钟源提供的时钟周期为200ns ,即,其频率为5MHz.;由于要输出3个节拍脉冲信号,而T 3的宽度为2个时钟周期,也就是一个节拍电位的时间是4个时钟周期,所以除了C 4外,还需要3个触发器——C l 、C 2、C 3;并令 211C C T *=;321C C T *=;313C C T =,由此可画出逻辑电路图如下:

计算机组成原理

第一章 1.说明计算机系统的层次结构。 第一级是微程序级, 第二级是传统机器级, 第三级是操作系统级, 第四级是汇编语言级, 第五级是高级语言级, 第六级是应用语言级 2.冯诺依曼计算机的特点 计算机由运算器、存储器、控制器、输入输出设备五大部分组成 指令和数据以同等地位存放在存储器,并可按地址寻访 指令和数据均用二进制数表示 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置 指令在存储器内按顺序存放,通常指令是顺序执行的,在特定条件下,可根据运算结果或根据设定条件改变执行顺序 机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成。 3.计算机的工作步骤 (1)上机前的准备:建立数学模型、确定计算方法、编制解题程序 (2)上机运行 4.指令和数据都存储于存储器中,计算机如何区分他们? 计算机区分指令和数据有以下2种方法: 通过不同的时间段来区分指令和数据,即在取指令阶段(或取指微程序)取出的为指令,在执行指令阶段(或相应微程序)取出的即为数据。 通过地址来源区分,由PC提供存储单元地址的取出的是指令,由指令地址码部分提供存储单元地址取出的是操作数。 第三章 1、什么是总线,特点,为了减轻总线的负载,总线上的部件都应具备什么特点 总线是链接多个部件的信息传输线,是各部件共享的传输介质 特点:某一时刻只能有一路信息在总线上传输 总线上的部件应通过三态驱动缓冲电路与总线连通 2、总线的分类:片内总线;系统总线(数据总线,地址总线);控制总线;通信总线 3、总线的特性:机械特性,电气特性,功能特性,时间特性 4、总线的性能指标:总线宽度,总线带宽,时钟同步/异步,总线复用,信号线数,总线控

计算机组成原理第四版课后习题答案完整版

第一章 1.比较数字计算机和模拟计算机的特点 解:模拟计算机的特点:数值由连续量来表示,运算过程是连续的; 数字计算机的特点:数值由数字量(离散量)来表示,运算按位进行。 两者主要区别见P1 表1.1。 2.数字计算机如何分类?分类的依据是什么? 解:分类:数字计算机分为专用计算机和通用计算机。通用计算机又分为巨型机、大型机、 中型机、小型机、微型机和单片机六类。 分类依据:专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。 通用机的分类依据主要是体积、简易性、功率损耗、性能指标、数据存储容量、 指令系统规模和机器价格等因素。

3.数字计算机有那些主要应用? (略) 4.冯. 诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分? 解:冯. 诺依曼型计算机的主要设计思想是:存储程序和程序控制。 存储程序:将解题的程序(指令序列)存放到存储器中; 程序控制:控制器顺序执行存储的程序,按指令功能控制全机协调地完成运算任务。 主要组成部分有:控制器、运算器、存储器、输入设备、输出设备。 5.什么是存储容量?什么是单元地址?什么是数据字?什么是指令字? 解:存储容量:指存储器可以容纳的二进制信息的数量,通常用单位KB、MB、GB来度量,存储容 量越大,表示计算机所能存储的信息量越多,反映了计算机存储空间的大小。 单元地址:单元地址简称地址,在存储器中每个存储单

元都有唯一的地址编号,称为单元地 址。 数据字:若某计算机字是运算操作的对象即代表要处理的数据,则称数据字。 指令字:若某计算机字代表一条指令或指令的一部分,则称指令字。 6.什么是指令?什么是程序? 解:指令:计算机所执行的每一个基本的操作。 程序:解算某一问题的一串指令序列称为该问题的计算程序,简称程序。 7.指令和数据均存放在内存中,计算机如何区分它们是指令还是数据? 解:一般来讲,在取指周期中从存储器读出的信息即指令信息;而在执行周期中从存储器中读出的 信息即为数据信息。 8.什么是内存?什么是外存?什么是CPU?什么是适配器?简述其功能。

计算机组成原理习题答案第九章

1.外部设备有哪些主要功能?可以分为哪些大类?各类中有哪些典型设备? 解:外部设备的主要功能有数据的输入、输出、成批存储以及对信息的加工处理等。外部设备可以分为五大类:输入输出设备、辅助存储器、终端设备、过程控制设备和脱机设备。其典型设备有键盘、打印机、磁盘、智能终端、数/模转换器和键盘-软盘数据站等。2.键盘属于什么设备?它有哪些类型?如何消除键开关的抖动?简述非编码键盘查询键位置码的过程。 解:键盘是计算机系统不可缺少的输入设备。键盘可分为两大类型:编码键盘和非编码键盘。非编码键盘用较为简单的硬件和专门的键盘扫描程序来识别按键的位置。消除键开关抖动的方法分硬件和软件两种。硬件的方法是增设去抖电路;软件的方法是在键盘程序中加入延时子程序,以避开抖动时间。键盘扫描程序查询键位置码的过程为: ①查询是否有键按下。 ②查询已按下键的位置。 ③按行号和列号求键的位置码。 3 .说明针式打印和字模式打印有何不同?各有什么优缺点? 解:针式打印机利用若干根打印针组成的点阵来构成字符;字模式打印机将各种字符塑压或刻制在印字机构的表面上,印字机构如同印章一样,可将其上的字符在打印纸上印出。针式打印机以点阵图拼出所需字形,不需要固定字模,它组字非常灵活,可打印各种字符和图形、表格和汉字等,字形轮廓一般不如字模式清晰;字模式打印机打印的字迹清晰,但字模数量有限,组字不灵活,不能打印汉字和图形。 4 .什么是随机扫描?什么是光栅扫描?各有什么优缺点? 解:扫描方式有两种:光栅扫描和随机扫描。 在光栅扫描方式中,电子束在水平和垂直同步信号的控制下有规律的扫描整个屏幕。这种方式的控制比较简单,画面质量较好且稳定,但对行扫描频率要求较高。在随机扫描方式中,电子束能在屏幕上进行随机运动,其轨迹随显示内容变化而变化,只在需要显示字符和图形的地方扫描,而不必扫描全屏。这种方式显示速度快、画面清晰,尤其是线条的轮廓十分光滑,一般用于高清晰度的专用图形显示器中,但这种方式的控制比较复杂,而且只能用于字符和图形显示,不适于显示随机图像。 5 .什么是分辨率?什么是灰度级?它们各有什么作用? 解:分辨率由每帧画面的像素数决定,而像素具有明暗和色彩属性。黑白图像的明暗程度称为灰度,明暗变化的数量称为灰度级,分辨率和灰度级越高,显示的图像越清晰、逼真。 6 .某字符显示器,采用7×9点阵方式,每行可显示60个字符,缓存容量至少为1260字节,并采用7位标准编码,试问: (1)如改用5×7字符点阵,其缓存容量为多少?(设行距、字距不变———行距为5,字距为1。) (2)如果最多可显示128种字符,上述两种显示方式各需多大容量的字符发生器ROM ? 解:(1)因为显示器原来的缓存为1260B ,每行可显示60个字符,据此可计算出显示器的字符行数:1260÷60=21(行)因为,原字符窗口=8×14=(7+1)×(9+5),现字符窗口=6×12=(5+1)×(7+5)。所以,现显示器每行可显示80个字符,显示器可显示的字符行数为24行。故缓存的容量为80×24=1920B 。 (2)ROM 中为行点阵码 7×9点阵方式:128×9×7=1152×7(位)=1152(字节)5×7点阵方式:128×7×5=896×5(位)=896(字节)注:

计算机组成原理题(附答案)

计算机组成原理题解指南 第一部分:简答题 第一章计算机系统概论 1.说明计算机系统的层次结构。 计算机系统可分为:微程序机器级,一般机器级(或称机器语言级),操作系统级,汇编语言级,高级语言级。 第四章主存储器 1.主存储器的性能指标有哪些?含义是什么? 存储器的性能指标主要是存储容量. 存储时间、存储周期和存储器带宽。 在一个存储器中可以容纳的存储单元总数通常称为该存储器的存储容量。 存取时间又称存储访问时间,是指从启动一次存储器操作到完成该操作所经历的时间。 存储周期是指连续两次独立的存储器操作(如连续两次读操作)所需间隔的最小时间。 存储器带宽是指存储器在单位时间中的数据传输速率。 2.DRAM存储器为什么要刷新?DRAM存储器采用何种方式刷新?有哪几种常用的刷新方式? DRAM存储元是通过栅极电容存储电荷来暂存信息。由于存储的信息电荷终究是有泄漏的,电荷数又不能像SRAM存储元那样由电源经负载管来补充,时间一长,信息就会丢失。为此必须设法由外界按一定规律给栅极充电,按需要补给栅极电容的信息电荷,此过程叫“刷新”。 DRAM采用读出方式进行刷新。因为读出过程中恢复了存储单元的MOS栅极电容电荷,并保持原单元的内容,所以读出过程就是再生过程。 常用的刷新方式由三种:集中式、分散式、异步式。 3.什么是闪速存储器?它有哪些特点? 闪速存储器是高密度、非易失性的读/写半导体存储器。从原理上看,它属于ROM型存储器,但是它又可随机改写信息;从功能上看,它又相当于RAM,所以传统ROM与RAM的定义和划分已失去意义。因而它是一种全新的存储器技术。 闪速存储器的特点:(1)固有的非易失性,(2)廉价的高密度,(3)可直接执行,(4)固态性能。4.请说明SRAM的组成结构,与SRAM相比,DRAM在电路组成上有什么不同之处? SRAM存储器由存储体、读写电路、地址译码电路、控制电路组成,DRAM还需要有动态刷新电路。 第五章指令系统 1.在寄存器—寄存器型,寄存器—存储器型和存储器—存储器型三类指令中,哪类指令的执行时间最长?哪类指令的执行时间最短?为什么? 寄存器-寄存器型执行速度最快,存储器-存储器型执行速度最慢。因为前者操作数在寄存器中,后者操作数在存储器中,而访问一次存储器所需的时间一般比访问一次寄存器所需时间长。 2.一个较完整的指令系统应包括哪几类指令? 包括:数据传送指令、算术运算指令、逻辑运算指令、程序控制指令、输入输出指令、堆栈指令、字符串指令、特权指令等。 3.什么叫指令?什么叫指令系统? 指令就是要计算机执行某种操作的命令 一台计算机中所有机器指令的集合,称为这台计算机的指令系统。 第六章中央处理部件CPU 1.指令和数据均存放在内存中,计算机如何从时间和空间上区分它们是指令还是数据。 时间上讲,取指令事件发生在“取指周期”,取数据事件发生在“执行周期”。从空间上讲,从内存读出的指令流流向控制器(指令寄存器)。从内存读出的数据流流向运算器(通用寄存器)。 2.简述CPU的主要功能。 CPU主要有以下四方面的功能:(1)指令控制程序的顺序控制,称为指令控制。 (2)操作控制 CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应部件,从而 控制这些部件按指令的要求进行动作。 (3)时间控制对各种操作实施时间上的控制,称为时间控制。 (4)数据加工对数据进行算术运算和逻辑运算处理,完成数据的加工处理。 3.举出CPU中6个主要寄存器的名称及功能。 CPU有以下寄存器: (1)指令寄存器(IR):用来保存当前正在执行的一条指令。 (2)程序计数器(PC):用来确定下一条指令的地址。 (3)地址寄存器(AR):用来保存当前CPU所访问的内存单元的地址。

计算机组成原理第1章习题与答案

计算机组成原理第1章习题与答案 一、选择题 1.从器件角度看,计算机经历了五代变化。但从系统结构看,至今绝大多数计算机仍属于()计算机。 A.并行 B.冯·诺依曼 C.智能 D.串行 2.冯·诺依曼机工作的基本方式的特点是()。 A.多指令流单数据流 B.按地址访问并顺序执行指令 C.堆栈操作 D.存贮器按内容选择地址 3.在下面描述的汇编语言基本概念中,不正确的表述是()。 A.对程序员的训练要求来说,需要硬件知识 B.汇编语言对机器的依赖性高 C.用汇编语言编写程序的难度比高级语言小 D.汇编语言编写的程序执行速度比高级语言慢 4.(2009年考研题)冯·诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是()。 A.指令操作码的译码结果 B.指令和数据的寻址方式 C.指令周期的不同阶段 D.指令和数据所在的存储单元 5.(2011年考研题)下列选项中,描述浮点数操作速度指标的是()。 A.MIPS B.CPI C.IPC D.MFLOPS 6.(2012年考研题)基准程序A在某计算机上的运行时间为100秒,其中90秒为CPU时间,其它时间忽略不计。若CPU速度提高50%,I/O速度不变,则基准程序A所耗费的时间是()秒。 A.55 B.60 C.65 D.70 7.(2013年考研题)某计算机主频为1.2 GHz,其指令分为4类,它们在基准程序中所占比例及CPI如下表所示。 该机的MIPS数是()。 A.100 B.200 C.400 D.600

8.(2014年考研题)程序P在机器M上的执行时间是20s,编译优化后,P 执行的指令数减少到原来的70%,而CPI增加到原来的1.2倍,则P在M上的执行时间是()。 A.8.4秒 B.11.7秒 C.14秒 D.16.8秒 9.(2015年考研题)计算机硬件能够直接执行的是()。 Ⅰ.机器语言程序Ⅱ.汇编语言程序Ⅲ.硬件描述语言程序 A.仅Ⅰ B.仅ⅠⅡ C.仅ⅠⅢ D.ⅠⅡⅢ 二、名词解释 1.吞吐量2.响应时间3.利用率 4.处理机字长5.总线宽度6.存储器容量 7.存储器带宽8.主频/时钟周期9.CPU执行时间 10.CPI 11.MIPS 12.FLOPS 三、简答题 1.指令和数据均存放在内存中,计算机如何区分它们是指令还是数据? 2.冯·诺依曼计算机体系结构的基本思想是什么?按此思想设计的计算机硬件系统应由哪些部件组成? 3.计算机系统分为哪几个层次?每层分别用软件还是硬件实现?

计算机组成原理-第7章以后作业答案

第七章指令系统 ?7-1指令,程序 指令:计算机执行某种操作的命令 程序:由有序的指令串构成,程序要解决一个具体的问题 指令系统:一台计算机能执行的全部指令的集合 指令系统的重要性:软件编程的基础,硬件设计的依据,综合考虑计算机的软硬件是计算机设计的关键因素。 ?7-2操作码 操作码用来指明该指令所要完成的操作。通常位数反映了机器的操作种类,即机器允许的指令条数,如7位→2^7=128条指令 固定长度操作码:操作码长度(占二进制位数)固定不变 硬件设计相对简单 指令译码时间开销小 指令空间利用率较低 可变长度操作码:操作码长度随指令地址数目的不同而不同(可平均缩短指令长度) 硬件设计相对复杂 指令译码时间开销较大 指令空间利用率较高 例:某机器采用固定长度指令系统,16位,包括3地址指令15条,双地址指令10条,单地址指令若干,每个地址占4位。问:该指令系统最多容纳多少个单地址指令,并设计该指令系统的操作码编码方案 析:每条指令:一个唯一操作码编码,不同类型指令具有不同标识,用扩展操作码方案 三15条,1111 双10条,6个没用6*16=96个 ? 7.3什么是指令字长、机器字长和存储字长? ? 7.6某指令系统字长为16位,地址码取4位,试提出一种方案,使该指令系统 有8条三地址指令、16条二地址指令、100条一地址指令。 固定操作码为4位。 8条三地址指令操作码为:0000~0111(剩下1000~1111共8个扩展窗口) 16条二地址指令操作码为:1000 0000~1000 1111 (剩下1001 0000~1111 1111共112个扩展窗口)100条一地址指令操作码为:10010000 0000~10010000 1111 10010001 0000~10010001 1111 10010010 0000~10010010 1111 10010011 0000~10010011 1111 10010100 0000~10010100 1111 10010101 0000~10010101 1111 10010110 0000~10010110 0011

计算机组成原理第九章课后部分答案

9.2 控制单元的功能是什么?其输入受什么控制? 答:控制单元的主要功能是发出各种不同的控制信号。其输入受时钟信号、指令寄存器的操作码字段、标志和来自系统总线的控制信号的控制。 9.3 什么是指令周期、机器周期和时钟周期?三者有何关系? 答:CPU每取出并执行一条指令所需的全部时间叫指令周期; 机器周期是在同步控制的机器中,执行指令周期中一步相对完整的操作 (指令步)所需时间,通常安排机器周期长度等于主存周期; 时钟周期是指计算机主时钟的周期时间,它是计算机运行时最基本的时 序单位,对应完成一个微操作所需时间,通常时钟周期等于计算机主频 的倒数。 9.4 能不能说机器的主频越快,机器的速度就越快,为什么? 解:不能说机器的主频越快,机器的速度就越快。因为机器的速度不仅与主频有关,还与数据通路结构、时序分配方案、ALU运算能力、指令功能 强弱等多种因素有关,要看综合效果。 9.6 设某机主频为8MHz,每个机器周期平均含2个时钟周期,每条指令平均有4 个机器周期,试问该机的平均指令执行速度为多少MIPS?若机器主频不变,但每个机器周期平均含4个时钟周期,每条指令平均有4个机器周期,则该机的平均指令执行速度又是多少MIPS?由此可得出什么结论? 解:先通过主频求出时钟周期,再求出机器周期和平均指令周期,最后通过平均指令周期的倒数求出平均指令执行速度。计算如下: 时钟周期=1/8MHz=0.125×10-6s. 机器周期=0.125×10-6s×2=0.25×10-6s 平均指令周期=0.25×10-6s×4=10-6s 平均指令执行速度=1/10-6s=1MIPS 当参数改变后:机器周期= 0.125×10-6s×4=0.5×10-6s 平均指令周期=0.5×10-6s×4=2×10-6s

计算机组成原理第五章单元测试(含答案)

第五章指令系统测试 1、以下四种类型指令中,执行时间最长的是()(单选) A、RR型指令 B、RS型指令 C、SS型指令 D、程序控制类指令 2、程序控制类指令的功能是()(单选) A、进行算术运算和逻辑运算 B、进行主存与CPU之间的数据传送 C、进行CPU和I/O设备之间的数据传送 D、改变程序执行的顺序 3、单地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个常需采用的寻址方式是( )(单选) A、立即数寻址 B、寄存器寻址 C、隐含寻址 D、直接寻址 4、下列属于指令系统中采用不同寻址方式的目的主要是()(单选) A、为了实现软件的兼容和移植 B、缩短指令长度,扩大寻址空间,提高编程灵活性 C、为程序设计者提供更多、更灵活、更强大的指令 D、丰富指令功能并降低指令译码难度 5、寄存器间接寻址方式中,操作数存放在()中(单选) A、通用寄存器 B、主存 C、数据缓冲寄存器MDR D、指令寄存器 6、指令采用跳跃寻址方式的主要作用是() (单选) A、访问更大主存空间 B、实现程序的有条件、无条件转移 C、实现程序浮动 D、实现程序调用 7、下列寻址方式中,有利于缩短指令地址码长度的是()(单选) A、寄存器寻址 B、隐含寻址 C、直接寻址

D、间接寻址 8、假设某条指令的一个操作数采用寄存器间接寻址方式,假定指令中给出的寄存器编号为8,8号寄存器的内容为1200H,地址1200H中的内容为12FCH,地址12FCH中的内容为3888H,地址3888H中的内容为88F9H.则该操作数的有效地址为( ) (单选) A、1200H B、12FCH C、3888H D、88F9H 9、假设某条指令的一个操作数采用寄存器间接寻址方式,假定指令中给出的寄存器编号为8,8号寄存器的内容为1200H,地址1200H中的内容为12FCH,地址12FCH中的内容为3888H,地址3888H中的内容为88F9H.则该操作数为( ) (单选) A、1200H B、12FCH C、3888H D、88F9H 10、某计算机按字节编址,采用大端方式存储信息。其中,某指令的一个操作数的机器数为ABCD 00FFH,该操作数采用基址寻址方式,指令中形式地址(用补码表示)为FF00H,当前基址寄存器的内容为C000 0000H,则该操作数的LSB(即该操作数的最低位FFH)存放的地址是( ) (单选) A、C000 FF00H B、C000 FF03H C、BFFF FF00H D、BFFF FF03H 11、假定指令地址码给出的是操作数所在的寄存器的编号,则该操作数采用的寻址方式是( )(单选) A、直接寻址 B、间接寻址 C、寄存器寻址 D、寄存器间接寻址 12、相对寻址方式中,操作数有效地址通过( )与指令地址字段给出的偏移量相加得到(单选) A、基址寄存器的值 B、变址寄存器的值 C、程序计数器的值 D、段寄存器的值 13、下列关于二地址指令的叙述中,正确的是( ) (单选) A、运算结果通常存放在其中一个地址码所指向的位置 B、地址码字段一定是操作数 C、地址码字段一定是存放操作数的寄存器编号

计算机组成原理论文

合肥学院 课程论文 题目计算机类课程综述类论文 系部计算机科学与技术 专业计算机科学与技术 班级10计本(2)班 学生姓名王仲秋 2012 年 5 月10 日 计算机类课程综述

内容摘要 计算机组成原理是计算机专业人员必须掌握的基础知识。显而易见《计算机组成原理》是计算机科学与技术专业的一门核心的专业必修课程。本课程侧重于讲授计算机基本部件的构造和组织方式、基本运算的操作原理以及部件和单元的设计思想等。但计算机硬件技术的发展十分迅速,各类新器件、新概念和新内容不断涌现,这就要求我们要与时俱进,自主学习新知识。计算机是一门应用广泛、使用面积广、技术含量高的一门学科和技术,生活中的任何一个角落都离不开计算机的应用,生活中的无处不在需要我们了解和清楚计算机的相关知识。本文从《计算机组成原理》基础课程的各个方面对计算机组成原理做了详细的解释。 关键字:构造组织方式基本运算操作原理设计思想 (一)、计算机组成原理课程综述 随着计算机和通信技术的蓬勃发展,中国开始进入信息化时代,计算机及技术的应用更加广泛深入,计算机学科传统的专业优势已经不再存在。社会和应用对学生在计算机领域的知识与能力提出了新的要求。专家们指出,未来10~15 年是我国信息技术发展的窗口期、关键期。 《计算机组成原理》是计算机科学与技术专业必修的一门专业主干课程。课程要求掌握计算机系统各部件的组成和工作原理、相互联系和作用,最终达到从系统、整机的角度理解计算机的结构与组成,并为后续课程的学习奠定基础。因此掌握计算机的组成原理就显得尤为重要,这就要求课程的编写要深入浅出、通俗易懂。本课程在体系结构上改变了自底向上的编写习惯,采用从外部大框架入手,层层细化的叙述方法。这样便更容易形成计算机的整体观念。 该课程总共分为四篇十章,第一篇(第1、2章)主要介绍计算机系统的基本组成、应用与发展。第二篇(第3、4、5章)详细介绍了出CPU外的存储器、输入输出系统以及连接CPU、存储器和I/O之间的通信总线。第三篇(第6、7、8、章)详细介绍了CPU(除控制单元外)的特性、结构和功能,包括计算机的基本运算、指令系统和中断系统等。第四篇(9、10章)专门介绍控制单元的功能,以及采用组合逻辑和微程序方法设计控制单元的设计思想和实现措施。 (二)、课程主要内容和基本原理

计算机组成原理第七章课后部分答案

7.1什么叫机器指令?什么叫指令系统?为什么说指令系统与机器指令的主要功能以 及与硬件结构之间存在着密切的关系? 机器指令:是CPU能直接识别并执行的指令,它的表现形式是二进制编码。机器指令通常由操作码和操作数两部分组成。 指令系统:计算机所能执行的全部指令的集合,它描述了计算机 内全部的控制信息和“逻辑判断”能力。 指令系统是计算机硬件和软件的接口部分,是全部机器指令的集合。 7.2什么叫寻址方式?为什么要学习寻址方式?寻址方式:指确定本条指令的数 据地址以及下一条将要执行的指 令地址的方法,它与硬件结构紧密相关,而且直接影响指 令格式和指令功能。 学习寻址方式,是为了找到指令中参与操作的数据,然后根据指令,得出结果。 7.3什么是指令字长、机器字长和存储字长?指令字长:是指机器指令中二进制 代码的总位数。指令字长取决 于从操作码的长度、操作数地址的长度和操作数地址的个 数。不同的指令的字长是不同的。 机器字长:是指计算机进行一次整数运算所能处理的二进制数据 的位数(整数运算即定点整数运算)。机器字长也就是运 算器进行定点数运算的字长,通常也是CPU内 部数据通路的宽度。即字长越长,数的表示范围也 越大,精度也越高。机器的字长也会影响机器的运算速

度。 存储字长:一个存储单元存储一串二进制代码(存储字),这串 二进制代码的位数称为存储字长,存储字长可以是8 位、 16 位、32 位等。 7.6 某指令系统字长为16位,地址码取 4 位,提出一种方案,使该指令系统有 8 条三地址指令、16 条二地址指令、100 条一地址指令。 解:三地址指令格式如下: 4 4 4 4 OP A1 A2 A3 指令操作码分配方案如下: 4 位OP 0000 , ,, ,A1,A2,A3:8 条三地址指令 0111 , 1000,0000, ,, ,,, ,A2 ,A3:16 条二地址指令 1000,1111, 1001,0000,0000, A3:100 条一地址指令 1001, 0110, 0011, 1001, 0110, 0100,

计算机组成原理课后习题答案(一到九章).doc

作业解答 第一章作业解答 1.1 基本的软件系统包括哪些内容?答:基本的软件系统包括系统软件与应用软件两大类。 系统软件是一组保证计算机系统高效、正确运行的基础软件,通常作为系统资源提供给用户使用。包括:操作系统、语言处理程序、数据库管理系统、分布式软件系统、网络软件系统、各种服务程序等。 1.2 计算机硬件系统由哪些基本部件组成?它们的主要功能是什么?答:计算机的硬件系统通常由输入设备、输出设备、运算器、存储器和控制器等五大部件组成。 输入设备的主要功能是将程序和数据以机器所能识别和接受的信息形式输入到计算机内。输出设备的主要功能是将计算机处理的结果以人们所能接受的信息形式或其它系统所要求的信息形式输出。 存储器的主要功能是存储信息,用于存放程序和数据。运算器的主要功能是对数据进行加工处理,完成算术运算和逻辑运算。控制器的主要功能是按事先安排好的解题步骤,控制计算机各个部件有条不紊地自动工作。 1.3冯?诺依曼计算机的基本思想是什么?什么叫存储程序方式? 答:冯?诺依曼计算机的基本思想包含三个方面: 1)计算机由输入设备、输出设备、运算器、存储器和控制器五大部件组成。 2)采用二进制形式表示数据和指令。 3)采用存储程序方式。 存储程序是指在用计算机解题之前,事先编制好程序,并连同所需的数据预先存入主存储器中。在解题过程(运行程序)中,由控制器按照事先编好并存入存储器中的程序自动地、连续地从存储器中依次取出指令并执行,直到获得所要求的结果为止。 1.4早期计算机组织结构有什么特点?现代计算机结构为什么以存储器为中心?答:早期计算机组织结构的特点是:以运算器为中心的,其它部件都通过运算器完成信息的传递。 随着微电子技术的进步,人们将运算器和控制器两个主要功能部件合二为一,集成到一个芯片里构成了微处理器。同时随着半导体存储器代替磁芯存储器,存储容量成倍地扩大,加上需要计算机处理、加工的信息量与日俱增,以运算器为中心的结构已不能满足计算机发展的需求,甚至会影响计算机的性能。为了适应发展的需要,现代计算机组织结构逐步转变为以存储器为中心。 1.5什么叫总线?总线的主要特点是什么?采用总线有哪些好处?答:总线是一组可为多个功能部件共享的公共信息传送线路。 总线的主要特点是共享总线的各个部件可同时接收总线上的信息,但必须分时使用总线发送信息,以保证总线上信息每时每刻都是唯一的、不至于冲突。 使用总线实现部件互连的好处: ①可以减少各个部件之间的连线数量,降低成本; ②便于系统构建、扩充系统性能、便于产品更新换代。 1.6按其任务分,总线有哪几种类型?它们的主要作用是什么? 答:按总线完成的任务,可把总线分为:CPU 内部总线、部件内总线、系统总线、外总线。 1.7计算机的主要特点是什么? 答:计算机的主要特点有:①能自动连续地工作;② 运算速度快;③运算精度高;④具有很强的存储能力和逻辑判断能力;⑤通用性强。 1.8衡量计算机性能有哪些基本的技术指标?以你所熟悉的计算机系统为例,说明它的型号、主频、字长、主存容量、所接的I/O设备的名称及主要规格。 答:衡量计算机性能的基本的技术指标有: ①基本字长;② 主存容量;③ 运算速度;④ 所配置的外部设备及其性能指标;⑤系统软件的配置。

郑大远程教育《计算机组成原理》第10章在线测试

《计算机组成原理》第10章在线测试 剩余时间: 59:56 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、Amdahl 提出的系统结构定义中的程序设计是为________设计者所看到的计算机属性。D A、机器语言 B、C++ C、Java D、机器语言或编译程序设计者 2、Cache ,多模块交叉技术是属于________层次技术。A A、存储器 B、控制器 C、运算器 D、总线 3、________主要表现为时间重叠、资源重复和资源共享。C A、并发性 B、同时性 C、并行性 D、共享性

4、不属于RISC的特点的是________。B A、流水线结构 B、寻址种类多 C、指令长度固定 D、指令格式种类少 5、Intel公司制成的80386使得X86微处理器进入第________代。C A、一 B、二 C、三 D、四 第二题、多项选择题(每题2分,5道题共10分) 1、计算机并行性主要表现为哪些方面?ABC A、时间重叠 B、资源重复 C、资源共享 D、集中控制 2、并行性包含哪些方面的含义?AC A、同时性 B、稳定性 C、并发性 D、高效率

3、计算机系统结构、计算机组成和计算机实现三个概念之间的关系怎样?ABCDE A、系统结构是计算机系统的软、硬件的界面 B、计算机组成是计算机系统结构的逻辑实现 C、计算机实现是计算机组成的物理实现 D、一种计算机系统结构可以有多种组成实现 E、一种组成也可以有多种物理实现 4、按照指令流和数据流的不同组织方式,指令流和数据流的多重性,将计算机系统分为哪些类别?ABCD A、单指令流单数据流(SISD)计算机系统 B、单指令流多数据流(SIMD)计算机系统 C、多指令流单数据流(MISD)计算机系统 D、多指令流多数据流(MIMD)计算机系统 5、计算机更新换代的标志有哪些?AB A、计算机的器件 B、系统结构的特点 C、指令系统的复杂程度 D、CPU执行指令的速度 第三题、判断题(每题1分,5道题共5分) 1、遵循同一标准,具有开放系统特点的计算之间具有良好的“可移植性”和“互操作性”

第1-3章计算机组成原理课后习题答案

第1章计算机系统概论 1.1 什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要? 解:计算机系统由硬件和软件两大部分组成。硬件即指计算机的实体部分,它由看得见摸得着的各种电子元器件,各类光、电、机设备的实物组成,如主机、外设等。软件是看不见摸不着的,由人们事先编制成具有各类特殊功能的信息组成,用来充分发挥硬件功能,提高机器工作效率,便于人们使用机器,指挥整个计算机硬件系统工作的程序、资料、数据集合。硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要。 1.2 如何理解计算机系统的层次结构? 解:(1)第一级:实际机器M1 (机器语言机器),机器语言程序直接在M1上执行;(2)第二级:虚拟机器M2(汇编语言机器),将汇编语言程序先翻译成机器语言程序,再在M1-上执行;(3)第三级:虚拟机器M3(高级语言机器),将高级语言程序先翻译成汇编语言程序,再在M2、M1(或直接到M1)上执行;(4)第零级:微程序机器M0(微指令系统),由硬件直接执行微指令。(5)实际上,实际机器M1和虚拟机器M2之间还有一级虚拟机,它是由操作系统软件构成,该级虚拟机用机器语言解释操作系统。(6)虚拟机器M3还可以向上延伸,构成应用语言虚拟系统。 1.3 说明高级语言、汇编语言和机器语言的差别及联系。 解:机器语言由0、1代码组成,是机器能识别的一种语言。用机器语言编写程序时要求程序员对他们所使用的计算机硬件及其指令系统十分熟悉,编写程序难度很大,操作过程也极易出错。 汇编语言是符号式的程序设计语言,汇编语言是面向机器的语言,它由一些特殊的符号表示指令。用汇编语言编写的汇编语言程序必须先被翻译成机器语言程序,才能被机器接受并自动运行。汇编语言的每一条语句都与机器语言的某一条语句(0、1代码)一一对应。 高级语言是面向用户的语言,与具体的计算机指令系统无关、对问题的描述更接近于人们习惯,且易于掌握和书写。它具有较强的通用性,程序员完全不必了解、掌握实际机器M1的机型、内部的具体组成及其指令系统,只要掌握这类高级语言的语法和语义,便可直接用这种高级语言来编程,给程序员带来了极大的方便。但是,用高级语言编写的高级语言程序必须先被翻译成汇编语言程序,然后再将其翻译成机器语言程序或者将高级语言程序直接翻译成机器语言程序才能被机器接受并自动运行。 1.4 如何理解计算机组成和计算机体系结构? 解:计算机组成是指如何实现计算机体系结构所体现的属性,它包含了许多对程序员来说是透明的硬件细节。 计算机体系结构是指那些能够被程序员所见到的计算机系统的属性,即概念性的结构与功能特性,通常是指用机器语言编程的程序员所看到的传统机器的属性,包括指令集、数据类型、存储器寻址技术、I/O机理等等,大都属于抽象的属性。

《计算机组成原理》第10章在线测试

《计算机组成原理》第10章在线测试 《计算机组成原理》第10章在线测试剩余时间:59:55 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、Amdahl 提出的系统结构定义中的程序设计是为________设计者所看到的计算机属性。 A、机器语言 B、C++ C、Java D、机器语言或编译程序设计者 2、Cache ,多模块交叉技术是属于________层次技术。 A、存储器 B、控制器 C、运算器 D、总线 3、________主要表现为时间重叠、资源重复和资源共享。 A、并发性 B、同时性 C、并行性 D、共享性 4、不属于RISC的特点的是________。 A、流水线结构 B、寻址种类多 C、指令长度固定 D、指令格式种类少 5、Intel公司制成的80386使得X86微处理器进入第________代。 A、一 B、二 C、三 D、四 第二题、多项选择题(每题2分,5道题共10分) 1、计算机并行性主要表现为哪些方面? A、时间重叠 B、资源重复 C、资源共享 D、集中控制

2、并行性包含哪些方面的含义? A、同时性 B、稳定性 C、并发性 D、高效率 3、计算机系统结构、计算机组成和计算机实现三个概念之间的关系怎样? A、系统结构是计算机系统的软、硬件的界面 B、计算机组成是计算机系统结构的逻辑实现 C、计算机实现是计算机组成的物理实现 D、一种计算机系统结构可以有多种组成实现 E、一种组成也可以有多种物理实现 4、按照指令流和数据流的不同组织方式,指令流和数据流的多重性,将计算机系统分为哪些类别? A、单指令流单数据流(SISD)计算机系统 B、单指令流多数据流(SIMD)计算机系统 C、多指令流单数据流(MISD)计算机系统 D、多指令流多数据流(MIMD)计算机系统 5、计算机更新换代的标志有哪些? A、计算机的器件 B、系统结构的特点 C、指令系统的复杂程度 D、CPU执行指令的速度 第三题、判断题(每题1分,5道题共5分) 1、遵循同一标准,具有开放系统特点的计算之间具有良好的“可移植性”和“互操作性” 正确错误 2、只要是开放系统的计算机,其操作系统和应用程序即可互相交换使用,而不必作任何修改。

计算机组成原理第八章课后部分答案

计算机组成原理第八章课后部分答案

8.1 CPU有哪些功能?画出其结构框图并简要说明每个部件的作用。 8.2 什么是指令周期?指令周期是否有一个固定值?为什么? 解:指令周期:指取出并执行完一条指令所需的时间。 由于计算机中各种指令执行所需的时间差异很大,因此为了提高CPU 运行效率,即使在同步控制的机器中,不同指令的指令周期长度都是 不一致的,也就是说指令周期对于不同的指令来说不是一个固定值。 8.3 画出指令周期的流程图,分别说明图中每个子周期的作用。 解:

指令周期流程图 取指周期:取指令 间址周期:取有效地址 执行周期:取操作数(当指令为访存指令时) 中断周期:保存程序断点 8.4 设CPU内有这些部件:PC、IR、SP、AC、MAR、MDR、CU。 (1)画出完成简洁寻址的取数指令“LDA@X”(将主存某地址单元的内容取至AC中)的数据流(从取指令开始)。 (2)画出中断周期的数据流。 解:CPU中的数据通路结构方式有直接连线、单总线、双总线、三总线等形式,目前大多采用总线结构,直接连线方式仅适用于结构特别简单 的机器中。 下面采用单总线形式连接各部件,框图如下:

(1)LDA@X指令周期数据流程图: PC→MAR M(MAR)→MDR (MDR)→IR PC+1→PC Ad(IR)→MAR M(MAR)→MDR MDR→Ad(IR) Ad(IR)→MAR M(MAR)→MDR MDR→AC (2)中断周期流程图如下:

8.7 什么叫系统的并行性?粗粒度并行和细粒度并行有什么区别? 解:并行性:包含同时性和并发性。同时性指两个或两个以上的事件在同一时刻发生,并发性指两个或多个事件在同一时间段发生。即 在同一时刻或同一时间段内完成两个或两个以上性质相同或 性质不同的功能,只要在时间上存在相互重叠,就存在并行性。 粗粒度并行是指多个处理机上分别运行多个进程,由多台处理机合作完成一个程序,一般算法实现。 细粒度并行是指在处理机的指令级和操作级的并行性。 8.8 什么是指令流水?画出指令二级流水和四级流水的示意图,它们中哪一个 更 能提高处理器速度,为什么? 解:指令流水:指将一条指令的执行过程分为n个操作时间大致 相等的阶段,每个阶段由一个独立 的功能部件来完成,这样n个部件 可以同时执行n条指令的不同阶段, 从而大大提高CPU的吞吐率。 指令二级流水和四级流水示意图如下:

相关文档
最新文档