北邮大三计算机体系结构实验三DLX处理器程序设计

北邮大三计算机体系结构实验三DLX处理器程序设计
北邮大三计算机体系结构实验三DLX处理器程序设计

实验三DLX处理器程序设计

1.实验目的

学习简单编译优化方法,观察采用编译优化方法所带来的性能的提高。

2.实验原理

采用静态调度方法重排指令序列,减少相关,优化程序。

3、实验内容和要求

自编一段汇编代码,完成一维向量加法运算,并输出结果。观察程序中出现的数据/控制/结构相关。(注:使用一维数组表示一维向量。)

4.1向量加法代码清单及注释说明

1、向量加法设计源代码

.data

VectorLength: .word 16

Vector1: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

Vector2: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 ;声明向量长度以及声明向量1、2 Printf1: .asciiz "Vector ="

Printf2: .asciiz " %f"

.align 2

PrintPrompt: .word Printf1

PrintPar: .word Printf2

Result: .space 4 ;存放打印数据的空间申请

.text

main:

addi r14,r0,PrintPrompt

trap 5

lw r20,VectorLength

addi r2,r0,0

Loop:

ld f10,Vector1(r2)

ld f12,Vector2(r2) ;循环体中读入向量

cvti2d f0,f10

cvti2d f2,f12

addd f4,f2,f0;加法运算

Finish:;**** Finish,write result into stdout

sd Result,f4

addi r14,r0,PrintPar

trap 5 ;系统中断,输出结果

addi r2,r2,4

subi r20,r20,1

bnez r20,Loop

;**** End

trap 0

2、运行结果

5.1程序相关性分析结果

(1)观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。

产生34.12%的数据相关。当对当前指令的操作数寄存器进行操作的时候,前几条指令的运算结果还未写回结果寄存器,由此产生数据相关。

没有产生结构相关。

产生3.94%的控制相关。系统按照预测成功来执行指令,执行一条指令后马上将其下一条指令trap读进来。

(2)考察增加浮点运算部件对性能的影响。

1个浮点运算部件3个浮点运算部件

同一段代码执行相同步,但是经过对比发现浮点运算部件的多少对于程序执行效率并没有什么影响,浮点运算部件的多少对统计结果都不造成影响,可能是由于该程序不存在争用浮点运算部件资源的情况 (3)考察增加forward 部件对性能的影响。

不使用forward 部件使用forward 部件

使用forward 部件之后执行相同的代码用的时钟周期比不使用forward 部件少了 大约100个时钟周期,由于没有结构相关,所以使用forward 部件主要使得RAW 相关明显减少了,占总的时钟周期比例也减少了,对控制相关没有什么影响。 总之,使用forward 部件后,总的时钟周期减少,数据相关减少,流水线的性能得到很大的改善。

(4)观察转移指令在转移成功和转移不成功时候的流水线开销。

在本次实验中转移成功的几率比较大,进行16次转移只有一次转移不成功的,因为系统按照预测成功来执行指令,当判断转移不成功时,系统对trap 指令进行的操作被全部作废,转而去执行跳转到的指令。

4.2双精度浮点加法求和代码清单及注释说明

1、双精度浮点加法求和源代码

.data

;初始化两个用于相加的一维向量(双精度浮点数),向量长度为20

a: .double 1.9, 2.1, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2, 9.1, 10.1, 11.2,12.3,13.4,14.5,15.6,16.7,17.8,18.9,19.0,20.2

b: .double 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.8, 10.9, 11.8,12.7,13.6,14.5,15.4,16.3,17.2,18.1,19.9,20.8

PrintfFormat:.asciiz"The result is \n\n%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t\n\n"

.align 2

PrintfPar: .word PrintfFormat

r: .space 200

;r为保存相加结果的向量空间

.text

.global main

main:

addi r1,r0,0 ;r1计数相加的次数

addui r4,r0,8 ;r4为常数8

loop: ;循环计算向量相加结果

subi r2,r1,20 ;r1=20时,跳转到finish

beqz r2,finish

multu r3,r1,r4;r3为当前分量相对于向量基址的偏移(每个分量占8B)

ld f0,a(r3) ;取a中第r1个分量

ld f2,b(r3) ;取b中第r1个分量

addd f4,f0,f2 ;相加结果放在f4中

sd r(r3),f4 ;将相加结果放入结果向量r中

addi r1,r1,1 ;下一分量

j loop

finish: ;输出向量相加的结果

addi r14,r0,PrintfPar

trap 5

2、运行结果:

5.2程序相关性分析结果

(1)观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。

产生了53.78%的数据相关。当对当前指令的操作数寄存器进行操作的时候,前几条指令的运算结果还未写回结果寄存器,由此产生数据相关。产生数据相关的指令主要有:

1) addi r1,r0,0

subi r2,r1,20

2) subi r2,r1,20

beqz r2,finish

3) multu r3,r1,r4

ld f0,a(r3)

4) ld f2,b(r3)

addd f4,f0,f2

无结构相关

产生了4.29%的控制相关。系统按照预测成功来执行指令,执行一条指令后马上将其下一条指令trap读进来。和4.1代码类似。

(2)考察增加浮点运算部件对性能的影响。

1个浮点运算部件3个浮点运算部件

同一段代码执行相同步,但是经过对比发现浮点运算部件的多少对于程序执行效率并没有什么影响,浮点运算部件的多少对统计结果都不造成影响,可能是由于该程序函数中没有连续的浮点运算指令。

(3)考察增加forward 部件对性能的影响。

没有forward部件有forward部件

使用forward 部件之后执行相同的代码用的时钟周期比不使用forward 部件少了 大约122个时钟周期,使用forward 部件使得RAW 相关明显减少了,流水线的性能得到很大的改善。

(4)观察转移指令在转移成功和转移不成功时候的流水线开销。

该转移指令不成功的情况较多,21次预测中只有1次转移成功,所以预测顺序取对流水线的性能是有利的。

6、实验总结

本次实验主要是向量求和运算,在本次实验我设计了两个部分,首先是整数向量的加法,整数向量加法的实验进行成功后才在之前实验的基础上略作修改,进行了的双精度浮点加法求和的实验。本次实验没有输入,是直接对固定在代码中的数据进行运算,运算完毕后直接输出结果。 编程中遇到的一些问题:在由整形改为双精度浮点运算的时候对双精度运算指令

不知道怎么来标识,后来查到所有涉及到double型数据的运算指令,指令代码都要加上d来说明,否则编译是不通过的。

通过本次自己编写汇编程序对浮点数的操作有了更深入的了解,也学会了WINDLX中浮点寄存器和浮点状态寄存器的设置和使用。熟悉了双精度浮点运算的流水线操作过程,以及数据相关,结构相关,控制相关,forward部件对于双精度浮点运算流水线的影响。

北邮信通院数据结构实验报告三哈夫曼编码器之欧阳光明创编

数据结构实验报告 欧阳光明(2021.03.07) 实验名称:实验三树——哈夫曼编/解码器 学生姓名: 班级: 班内序号: 学号: 日期: 2014年12月11日 1.实验要求 利用二叉树结构实现赫夫曼编/解码器。 基本要求: 1、初始化(Init):能够对输入的任意长度的字符串s进行统 计,统计每个字符的频度,并建立赫夫曼树 2、建立编码表(CreateTable):利用已经建好的赫夫曼树进行编 码,并将每个字符的编码输出。 3、编码(Encoding):根据编码表对输入的字符串进行编码,并 将编码后的字符串输出。 4、译码(Decoding):利用已经建好的赫夫曼树对编码后的字符 串进行译码,并输出译码结果。 5、打印(Print):以直观的方式打印赫夫曼树(选作) 6、计算输入的字符串编码前和编码后的长度,并进行分析, 讨论赫夫曼编码的压缩效果。 测试数据: I love data Structure, I love Computer。I will try my best to study

data Structure. 提示: 1、用户界面可以设计为“菜单”方式:能够进行交互。 2、根据输入的字符串中每个字符出现的次数统计频度,对没有 出现的 字符一律不用编码。 2. 程序分析 2.1 存储结构 Huffman树 给定一组具有确定权值的叶子结点,可以构造出不同的二叉树,其中带权路径长度最小的二叉树称为Huffman树,也叫做最优二叉树。

weight lchild rchildparent 2-1-1-1 5-1-1-1 6-1-1-1 7-1-1-1 9-1-1-1 weight lchild rchild parent

吉林大学 计算机系统结构题库 第二章

第二章计算机指令集结构 知识点汇总: 指令集设计、堆栈型机器、累加器型机器、通用寄存器型机器、CISC、RISC、寻址方式、数据表示 简答题 1.增强CISC机器的指令功能主要从哪几方面着手?(CISC) (1) 面向目标程序增强指令功能。 (2) 面向高级语言和编译程序改进指令系统。 (3) 面向操作系统的优化实现改进指令系统。 2.简述CISC存在的主要问题。(知识点:CISC) 答:(1)CISC结构的指令系统中,各种指令的使用频率相差悬殊。 (2)CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。 (3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。 (4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。 (5)在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机系统结构技术来提高系统的性能。 3.简述RISC的优缺点及设计RISC机器的一般原则。(知识点:RISC) 答:(1)选取使用频率最高的指令,并补充一些最有用的指令。 (2)每条指令的功能应尽可能简单,并在一个机器周期内完成。 (3)所有指令长度均相同。 (4)只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行。 (5)以简单、有效的方式支持高级语言。 4.根据CPU内部存储单元类型,可将指令集结构分为哪几类?(知识点:堆栈型机器、累加器型机器、通用寄存器型机器) 答:堆栈型指令集结构、累加器型指令集结构、通用寄存器型指令集结构。 5.常见的三种通用寄存器型指令集结构是什么?(知识点:通用寄存器型机器) 答:(1)寄存器-寄存器型。 (2)寄存器-存储器型。 (3)存储器-存储器型。

第一章 计算机网络体系结构

(答案仅供参考如有不对请自己加以思考) 第一章计算机网络体系结构 一、习题 1.比特的传播时延与链路带宽的关系()。 A.没有关系 B. 反比关系 C. 正比关系 D. 无法确定 2.计算机网络中可以没有的是()。 A. 客服机 B. 操作系统 C. 服务器 D.无法确定 3.在OSI参考模型中,提供流量控制的层是第(1)层;提供建立、维护和拆除端到端连接的层是(2);为数据分组提供在网络中路由功能的是(3);传输层提供(4)的数据传送;为网络层实体提供数据发送和接收功能和过程的是(5)。 (1)A. 1、2、3 B. 2、3、4 C. 3、4、5 D. 4、5、6 (2)A. 物理层 B. 数据链路层 C. 会话层 D. 传输层 (3)A. 物理层 B. 数据链路层 C. 网络层 D.传输层 (4)A. 主机进程之间 B. 网络之间 C. 数据链路层 D. 物理线路层 (5)A. 物理层 B. 数据链路层 C. 会话层 D. 传输层 4.计算机网络的基本分类方法主要有两种:一种是根据网络所使用的传输技术;另一种是根据()。 A. 网络协议 B. 网络操作系统 C. 覆盖范围与规模 D. 网络服务器类型与规模 5.计算机网络从逻辑功能上可分为()。 Ⅰ.资源子网Ⅱ.局域网Ⅲ.通信子网Ⅳ.广域网 A.Ⅱ、Ⅳ B.Ⅰ、Ⅲ B. Ⅰ、Ⅳ D. Ⅲ、Ⅳ 6. 计算机网络最基本的功能是()。 Ⅰ. 流量控制Ⅱ.路由选择 Ⅲ. 分布式处理Ⅳ. 传输控制 A. Ⅰ、Ⅱ、Ⅳ B.Ⅰ、Ⅲ、Ⅳ C. Ⅰ、Ⅳ D. Ⅲ、Ⅳ 7.世界上第一个计算机网络是()。 A.ARPANET B. 因特网 C. NSFnet D. CERNET 8. 物理层、数据链路层、网络层、传输层的传输单位(或PDU)分别是()。 Ⅰ.帧Ⅱ. 比特Ⅲ.报文段Ⅳ.数据报 A.Ⅰ、Ⅱ、Ⅳ、Ⅲ B. Ⅱ、Ⅰ、Ⅳ、Ⅲ C. Ⅰ、Ⅳ、Ⅱ、Ⅲ D. Ⅲ、Ⅳ、Ⅱ、Ⅰ 9.设某段电路的传播时延是10ms,带宽为10Mbit/s,则该段电路的时延带宽积为()。 A.2×105 bit B.4×105 bit C.1×105 bit D. 8×105 bit

数据库实验3答案

实验三:交互式SQL语句的使用 1、实验目的 (1)掌握数据库对象的操作过程,包括创建、修改、删除 (2)熟悉表的各种操作,包括插入、修改、删除、查询 (3)熟练掌握常用SQL语句的基本语法 2、实验平台 使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。 3 实验容及要求 选择如下一个应用背景之一: ●学生选课系统 ●习题3、4、和5中使用的数据库 ●其它你熟悉的应用 (1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。 (2)要求认真进行实验,记录各实验用例及执行结果。 (3)深入了解各个操作的功能。 实验要求包括如下方面的容: 3.1 数据定义 1.基本表的创建、修改及删除 2.索引的创建 3.视图的创建 3.2 数据操作 完成各类更新操作包括: 1.插入数据

2.修改数据 3. 删除数据 3.3 数据查询操作 完成各类查询操作 1.单表查询 2.分组统计 3. 连接查询 4. 嵌套查询 5. 集合查询 3.4 数据操作 1.创建视图 2.视图查询 参考示例: 建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。 一、数据定义 创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表: 表1. Student表结构 表2. Course表结构

表3. SC表结构 1.创建、修改及删除基本表 (1)创建Student表 CREATE TABLE Student (Sno CHAR(8)PRIMARY KEY, Sname CHAR(8), Ssex CHAR(2)NOT NULL, Sage INT, Sdept CHAR(20) ); (2)创建Course表 CREATE TABLE Course (Cno CHAR(4)PRIMARY KEY, Cname CHAR(40)NOT NULL, Cpno CHAR(4), Ccredit SMALLINT, ); (3)创建SC表 CREATE TABLE SC (Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno), Cno CHAR(4), Grade SMALLINT, ); (4)创建员工表Employee

计算机体系结构第二章练习题参考解答

第二章 2.13 在一台单流水线多操作部件的处理机上执行下面的程序,每条指令的取指令、指令译码需要一个时钟周期,MOVE、ADD和MUL操作分别需要2个、3个和4个时钟周期,每个操作都在第一个时钟周期从通用寄存器中读操作数,在最后一个时钟周期把运算结果写到通用寄存器中。 k: MOVE R1,R0 ;R1← (R0) k+1: MUL R0,R2,R1 ;R0← (R2)×(R1) k+2: ADD R0,R2,R3 ;R0← (R2)+(R3) (1)就程序本身而言,可能有哪几种数据相关? (2)在程序实际执行过程中,哪几种数据相关会引起流水线停顿? (3)画出指令执行过程的流水线时空图,并计算完成这3条指令共需要多少个时钟周期? 解:(1)就程序本身而言,可能有三种数据相关。若3条指令顺序流动,则k指令对R1寄存器的写与k+1指令对R1寄存器的读形成的“先写后读”相关。若3条指令异步流动,则k指令对R0寄存器的读与k+1指令对R0寄存器的写形成的“先读后写”相关,k+2指令对R0寄存器的写与k+1指令对R0寄存器的写形成的“写—写”相关。 (2)在程序实际执行过程中,二种数据相关会引起流水线停顿。一是“先写后读”相关,k指令对R1的写在程序执行开始后的第四个时钟;k+1指令对R1的读对指令本身是第三个时钟,但k+1指令比k指令晚一个时钟进入流水线,则在程序执行开始后的第四个时钟要读R1。不能在同一时钟周期内读写同一寄存器,因此k+1指令应推迟一个时钟进入流水线,产生了流水线停顿。二是“写—写”相关,k+1指令对R0的写对指令本身是第六个时钟,而要求该指令进入流水线应在程序执行开始后的第三个时钟,所以对R0的写是在程序执行开始后的第八个时钟。k+2指令对R0的写对指令本身是第五个时钟,而k+2指令比k+1指令晚一个时钟进入流水线,则在程序执行开始后的第四个时钟,所以对R0的写是在程序执行开始后的第八个时钟。不能在同一时钟周期内写写同一寄存器,因此k+2指令应推迟一个时钟进入流水线,产生了流水线停顿。另外,可分析“先读后写”相关不会产生流水线的停顿。 (3)由题意可认位该指令流水线由六个功能段取指、译码、取数、运一、运二和存数等组成,则程序指令执行过程的流水线时空图如下图所示。若3条指令顺序流动,共需要9个 空间 存数 K存数 K+1存数 K+2存数 运二 K+1运二 运一 K+1运一 K+2运一 取数 K取数 K+1取数 K+2取数 译码 K译码 K+1译码 K+2译码 取指 K取指 K+1取指 K+2取指时间 0 1 2 3 4 5 6 7 8 9

计算机系统结构第一章自考练习题答案

第一章计算机系统结构的基本概念 历年真题精选 1. 下列对系统程序员不透明的是()。 A. 乘法器 B. 先行进位链 C. 指令缓冲器 D. 条件码寄存器2.“从中间开始”设计的“中间”目前多数是在( D )。 A. 微程序机器级与汇编语言机器级之间 B. 操作系统机器级与汇编语言机器级之间 C. 传统机器语言机器级与微程序机器级之间 D. 传统机器语言机器级与操作系统机器级之间 3. 开发计算机系统结构并行性的主要技术途径有时间重叠、(资源重复)和(资源 共享)。 4. 计算机系统弗林分类法,把计算机系统分成单指令流单数据流(SISD)、单指令流多数 据流(SIMD)、(多指令流单数据流(MISD))和(多指令流多数据流(MIMD))四大类。 5. 设计指令系统时,以乘法运算为例,简述系统结构设计、计算机组成设计、计算机实现 各应考虑的问题。( P4) 6. 实现软件移植的途径有哪些各受什么限制( P14) 同步强化练习 一.单项选择题。 1. 实现汇编语言源程序变换成机器语言目标程序是由( C )。 A. 编译程序翻译 B. 编译程序解释 C. 汇编程序翻译 D. 汇编程序解释 2. 系列机软件应做到( B ) A. 向前兼容,并向下兼容 B. 向后兼容,力争向上兼容 C. 向前兼容,并向上兼容 D. 向后兼容,力争向下兼容 3. 在计算机系统多级层次结构中,机器级由低到高,相对顺序正确的应当是( B )。 A. 传统机器语言、汇编语言、操作系统 B. 微程序、传统机器语言、高级语言 C. 高级语言、汇编语言、传统机器语言 D. 传统机器语言、应用语言、高级语言 4. 可以直接执行微指令的是( C )。 A. 编译程序 B. 微程序 C. 硬件 D. 汇编程序 5. 计算机系统结构不包括( A )。 A. 主存速度 B. 数据表示 C. 机器工作状态 D. 信息保护 6. 对计算机系统结构透明的是()。 A. 是否使用通道型I/0处理机 B. 虚拟存储器 C. 字符行运算指令 D. VLSI技术 7. 在主存设计上,属计算机系统结构考虑的应是( C )。 A. 频宽的确定 B. 多体交叉还是单体 C. 容量和编址单位 D. 用MOS还是TTL 8. 计算机组成设计不考虑( B )。 A. 缓冲技术 B. 功能部件的集成度 C. 专用部件设置 D. 控制机构的组成

北邮大三数据库实验六数据查询分析实验

实验六数据查询分析实验 实验目的 通过对不同情况下查询语句的执行分析,巩固和加深对查询和查询优化相关理论知识的理解,提高优化数据库系统的实践能力,熟悉了解Sybase中查询分析器的使用,并进一步提高编写复杂查询的SQL 程序的能力。 实验内容 1.索引对查询的影响 (1)对结果集只有一个元组的查询分三种情况进行执行(必如查询一个具体学生的信息):不建立索引,(学号上)建立非聚集索引,(学号上)建立聚集索引。 建立聚集索引: create clustered index student on student(student_id) go 建立非聚集索引: create nonclustered index student_index on student(student_id) go 用查询分析器的执行步骤和结果对执行进行分析比较。 select*from student where student_id='30201' 不建立索引 建立聚集索引

建立非聚集索引 (2)对结果集中有多个元组的查询(例如查看某门成绩的成绩表)分类似(1)的三种情况进行执行比较。 select*from student where student_id>'30401' 不建立索引:

建立聚集索引: 建立非聚集索引: (3)对查询条件为一个连续的范围的查询(例如查看学号在某个范围内的学生的选课情况)分类似(1)的三种情况进行执行比较,注意系统处理的选择。 select*from student where student_id between'31201'and'31415' 不建立索引:

北邮数据结构实验3哈夫曼编码

数据结构实验报告 实验名称:实验3——哈夫曼编码 学生姓名: 班级: 班内序号: 学号: 日期:2013年11月24日 1.实验要求 利用二叉树结构实现赫夫曼编/解码器。 基本要求: 1、初始化(Init):能够对输入的任意长度的字符串s进行统计,统计每个 字符的频度,并建立赫夫曼树 2、建立编码表(CreateTable):利用已经建好的赫夫曼树进行编码,并将每 个字符的编码输出。 3、编码(Encoding):根据编码表对输入的字符串进行编码,并将编码后的 字符串输出。 4、译码(Decoding):利用已经建好的赫夫曼树对编码后的字符串进行译 码,并输出译码结果。 5、打印(Print):以直观的方式打印赫夫曼树(选作) 6、计算输入的字符串编码前和编码后的长度,并进行分析,讨论赫夫曼 编码的压缩效果。 2. 程序分析 2.1存储结构: struct HNode { char c;//存字符内容 int weight; int lchild, rchild, parent; }; struct HCode

{ char data; char code[100]; }; //字符及其编码结构 class Huffman { private: HNode* huffTree; //Huffman树 HCode* HCodeTable; //Huffman编码表 public: Huffman(void); void CreateHTree(int a[], int n); //创建huffman树 void CreateCodeTable(char b[], int n); //创建编码表 void Encode(char *s, string *d); //编码 void Decode(char *s, char *d); //解码 void differ(char *,int n); char str2[100];//数组中不同的字符组成的串 int dif;//str2[]的大小 ~Huffman(void); }; 结点结构为如下所示: 三叉树的节点结构: struct HNode//哈夫曼树结点的结构体 { int weight;//结点权值 int parent;//双亲指针 int lchild;//左孩子指针 int rchild;//右孩子指针 char data;//字符 }; 示意图为: int weight int parent int lchild int rchild Char c 编码表节点结构:

计算机系统结构第二章自考练习题答案

计算机系统结构第二章自考练习题答案

第二章数据表示与指令系统 历年真题精选 1. 计算机中优先使用的操作码编码方法是( C )。 A. BCD码 B. ASCII码 C. 扩展操作码 D. 哈夫曼编码 2.浮点数尾数基值r m=16,除尾符之外的尾数机器位数为8位时,可表示的规格化最大尾数值为( D )。 A. 1/2 B. 15/16 C. 1/256 D. 255/256 3. 自定义数据表示包括(标志符)数据表示和(数据描述符)两类。 4. 引入数据表示的两条基本原则是:一看系统 的效率是否有提高;二看数据表示的(通

用)性和(利用)率是否高。 5. 简述设计RISC的一般原则。 6. 简述程序的动态再定位的思想。 7. 浮点数表示,阶码用二进制表示,除阶符之外 的阶码位数p=3,尾数基值用十进制表示,除尾符外的尾数二进制位数m=8,计算非负阶、规格化、正尾数时, (1)可表示的最小尾数值;(2)可表示的最大值;(3)可表示的尾数个数。 8. (1)要将浮点数尾数下溢处理成K—1位结 果,则ROM表的单元数和字长各是多少? 并简述ROM表各单元所填的内容与其地址之间的规则。 (2)若3位数,其最低位为下溢处理前的附 加位,现将其下溢处理成2位结果,设

计使下溢处理平均误差接近于零的 ROM表,以表明地址单元与其内容的 关系。 同步强化练习 一.单项选择题。 1. 程序员编写程序时使用的地址是( D )。 A.主存地址B.有效地址C.辅存实地址D.逻辑地址 2. 在尾数下溢处理方法中,平均误差最大的是( B )。 A.舍入法B.截断法C.恒置“1”法D.ROM查表法 3. 数据表示指的是( C )。A.应用中要用到的数据元素之间的结构关系

第一章 计算机网络体系结构(题目)

第一章计算机网络体系结构 【例 1.1】计算机网络可以被理解为() A.执行计算机数据处理的软件模块 B.由自主计算机互连起来的集合体 C.多个处理器通过共享内存实现的紧耦合系统 D.用于共同完成一项任务的分布式系统 【例 1.2】广域网中广泛采用的拓扑结构是() A.树型 B.网状 C星型 D.环型 【例 1.3】局域网与广域网之间的差异不仅仅在于它们所能覆盖的地理范围不同,而且还在于() A.所使用的传输介质不同 B.所提供的服务不同 C.所能支持的通信量不同 D.所使用的协议不同 【例 1.4】OSI参考模型中,网络层、数据链路层和物理层传输的协议数据单元(PDU)分别称为() A. 报文(message)、帧(frame)、比特(bit) B. 分组(packet)、报文(message)、比特(bit) C. 分组(packet)、帧(frame)、比特(bit) D. 数据报(datagram)、帧(frame)、比特(bit) 【例 1.5】在TCP/IP协议簇的层次中,解决计算机之间通信问题的是() A.网络接口层 B.网络层 C.运输层 D.应用层 【例 1.6】在OSI参考模型中,服务原语可划分为4类,包括请求、指示、响应和() A.答复 B.确认 C.应答 D.接收 【例 1.7】一个系统的协议结构有N层,应用程序产生M字节长的报文,

网络软件在每层加上h字节的协议头,网络带宽中有多大比率用于协议头信息的传输? 【例 1.8】请描述OSI模型中数据流动的过程。 精选试题练习 【题 1.1】计算机网络可以被看成是自治的计算机系统的集合,其中“自治的计算机”主要指() A.可以独立运行的计算机 B.网络计算机 C.裸机 D.网络终端 【题 1.2】将计算机与计算机之间连接起来实现资源共享和数据通信,属于计算机网络发展的() A.联机系统阶段 B.计算机网络阶段 C.标准化网络阶段 D.网络互连和高速网络阶段 【题 1.3】计算机网络中可以共享的资源包括() A.客户机和服务器 B.硬件、软件和数据 C.主机、CPU、内存和外部设备 D.计算机和传输介质 【题 1.4】一下不属于协议的三要素的是() A.语法 B.语义C.时序 D.异步 【题1.5】通信协议包括了对通信过程的说明,规定了应当发出哪些控制信息,完成哪些动作以及做出哪些应答,并对发布请求、执行动作以及返回应答予以解释。这些说明描述了协议的() A.语法 B.语义C.时序 D.异步 【题 1.6】下列不是网络模型进行分层的目标的是() A.提供标准语言 B.定义标准界面

北邮数据库实验报告

数据库实验报告(四) 姓名:学号:班级: 1.简单查询: (1) 查询“数据库开发技术”课程的学分; SQL语句: select credit from course where course_name='SQL Server数据库开发技术'; 或者模糊查询: select credit from course where course_name like'%数据库开发技术'; 执行结果: (2) 查询选修了课程编号为“dep04_s004”的学生的学号和成绩,并将成绩按降序输出; SQL语句: select student_id,grade from student_course where course_id='dep04_s003' order by grade desc; 执行结果:

(3) 查询学号为“g9940205”的学生选修的课程编号和成绩; SQL语句: select course_id,grade from student_course where student_id='g9940205'; 执行结果: (4) 查询选修了课程编号为“dep04_s001”且成绩高于85分的学生的学号和成绩。 SQL语句: select student_id,grade from student_course where course_id='dep04_s001'and grade>'85'; 执行结果:

2.在多表连接的查询实验中,用Transact SQL语句完成以下查询操作: (1)查询选修了课程编号为“dep04_s002”且成绩高于85分的学生的学号、姓名和成绩; SQL语句: select student.student_id,student_name,grade from student,student_course where student.student_id=student_course.student_id and student_course.course_id='dep04_s002' and student_course.grade>'85'; 执行结果: (2)查询所有学生的学号、姓名、选修的课程名称和成绩; SQL语句: select student.student_id,student_name,course_name,grade from student,course,student_course where student.student_id=student_course.student_id and student_course.course_id=course.course_id; 执行结果:

计算机系统结构-第二章(习题解答)

1. 数据类型、数据表示和数据结构之间是什么关系?在设计一个计算机系统 时,确定数据表示的原则主要有哪几个? 答: 略 2. 假设有A 和B 两种不同类型的处理机,A 处理机中的数据不带标志位,其 指令字长和数据字长均为32位。B 处理机的数据带有标志位,每个数据的字长增加至36位,其中有4位是标志符,它的指令条数由最多256条减少至不到64条。如果每执行一条指令平均要访问两个操作数,每个存放在存储器中的操作数平均要被访问8次。对于一个由1000条指令组成的程序,分别计算这个程序在A 处理机和B 处理机中所占用的存储空间大小(包括指令和数据),从中得到什么启发? 答: 我们可以计算出数据的总数量: ∵ 程序有1000条指令组成,且每条指令平均要访问两个操作数 ∴ 程序访问的数据总数为:1000×2=2000个 ∵ 每个数据平均访问8次 ∴ 程序访问的不同数据个数为:2000÷8=250 对于A 处理机,所用的存储空间的大小为: bit 4000032250321000Mem Mem Mem data n instructio A =?+?=+= 对于B 处理机,指令字长由32位变为了30位(条数由256减少到64),这样,所用的存储空间的大小为: bit 3900036250301000Mem Mem Mem data n instructio B =?+?=+=

由此我们可以看出,由于数据的平均访问次数要大于指令,所以,采用带标志符的数据表示不会增加总的存储空间大小。 3. 对于一个字长为64位的存储器,访问这个存储器的地址按字节编址。假设 存放在这个存储器中的数据中有20%是独立的字节数据(指与这个字节数据相邻的不是一个字节数据),有30%是独立的16位数据,有20%是独立的32位数据,另外30%是独立的64位数据;并且规定只能从一个存储字的起始位置开始存放数据。 ⑴计算这种存储器的存储空间利用率。 ⑵给出提高存储空间利用率的方法,画出新方法的逻辑框图,并计算这种方法 的存储空间利用率。 答: ⑴ 由于全是独立数据,有20%浪费56位(7/8);30%浪费48位(6/8);20%浪费32位(4/8);30%浪费0位(0/8)。 总共浪费:0.2×7/8+0.3×6/8+0.2×4/8+0.3×0/8=0.5 即:存储器的存储空间利用率为50%,浪费率为50%。 ⑵ 方案为:数据从地址整数倍位置开始存储,即,双字地址000结尾,单字地址00结尾,半字地址0结尾,字节地址结尾任意。 可能出现的各种情况如下:

北邮大数据库实验三

实验三完整性及视图、索引 视图是基于某个查询结果的一个虚拟表,只是用来查看数据的窗口而已。索引能够提供一种以一列或多列的值为基础迅速查找数据表(或视图)中行的能力,用来快速访问数据表(或视图)中的数据。触发器是一种特殊的存储过程,它在特定语言事件发生时自动执行,通常用于实现强制业务规则和数据完整性。 【实验目的】 掌握MySQL视图、索引的使用,理解什么是数据库的完整性。 【实验要求】 1、每完成一个任务,截取全屏幕快照1~3作为中间步骤和结果的贴图,粘贴在最后的实验报告中。 2、除了使用我们提供的数据外还要自己向表中添加些新数据,以保证每个查询结果不为空集,或计数结果不为0。 3、思考题可以选做,作为优秀加分的依据。 【实验任务】 1、创建一个视图,该视图为每门课程的平均成绩,视图包括的列有课程号 及平均成绩,并用利用该视图查询所有课程的平均成绩,要求给出课程号、课程名及平均成绩。

2、创建一个视图,该视图为每门课程的平均成绩,视图包括的列有课程号、 课程名及平均成绩,并用利用该视图查询所有课程的平均成绩,要求给出课程号、课程名及平均成绩。

3、为院系代码表(dept_code)创建基于“院系代码”列的索引。 4、为教室信息表(classroom_info)创建基于room_id列的惟一索引并插入一 条room_id列与表中已有的值重复的数据,观察系统的反馈。

5、重新修改表stud_info、lesson_info及stud_grade,修改的容为: ①为三表增加主码约束,stud_info的主码为stud_id,lesson_info的主码为 course_id,stud_grade的主码为stud_id、course_id。

北邮数据结构实验四-链表排序

数据结构实验报告 实验名称:实验四——链表的排序 学生姓名: 班级: 班内序号: 学号: 日期: 1.实验要求 [内容要求] 使用链表实现下面各种排序算法,并进行比较。 排序算法: 1、插入排序 2、冒泡排序 3、快速排序 4、简单选择排序 5、其他 要求: 1、测试数据分成三类:正序、逆序、随机数据 2、对于这三类数据,比较上述排序算法中关键字的比较次数和移动次数(其 中关键字交换计为3次移动)。 3、对于这三类数据,比较上述排序算法中不同算法的执行时间,精确到微秒 (选作) 4、对2和3的结果进行分析,验证上述各种算法的时间复杂度 编写测试main()函数测试线性表的正确性 代码要求 1、必须要有异常处理,比如删除空链表时需要抛出异常; 2、保持良好的编程的风格: 代码段与段之间要有空行和缩近 标识符名称应该与其代表的意义一致 函数名之前应该添加注释说明该函数的功能 关键代码应说明其功能 3、递归程序注意调用的过程,防止栈溢出

2. 程序分析 2.1 存储结构 [内容要求] 存储结构:双链表 2.2 关键算法分析 [内容要求] 定义类: template class LinkList { public: LinkList(){front = new Node ;front->next=rear;front->prior=NULL;rear=new Node;rear->next=NULL;rear->prior=front;} LinkList(T a[],int n); void BackLinkList(T a[]);//恢复原链表 ~LinkList();//析构函数 void PrintList();//打印数列 void InsertSort();//插入排序 void BubbleSort();//冒泡排序 Node * Partion(Node *i,Node *j);//快速排序中寻找轴值的函数 void Qsort(Node *i,Node *j);//快速排序 void SelectSort();//选择排序 Node*front; Node*rear; }; 成员函数包括:构造函数:单链表,打印单链表,插入排序,快速排序,冒泡排序,选择排序,析构函数 公有成员:头指针和尾指针 1、构造函数: LinkList::LinkList(T a[],int n) { front=new Node; rear=new Node; front->prior=NULL;front->next=rear; rear->next=NULL;rear->prior=front; Node *s; for (int i=n-1;i>=0;i--) {

计算机组成与系统结构第二章习题及答案

一、填空题(20每空2分) 1.计数制中使用的数据个数被称为。(基) 2.移码常用来表示浮点数的部分,移码和补码比较,它们除外,其他各位都相同。(阶码,符号位) 3.码值80H: 若表示真值0,则为;若表示-128,则为; 若表示-127,则为;若表示-0,则为。(移码补码反码原码) 4. 在浮点运算过程中,如果运算结果的尾数部分不是形式,则需要进行规格化处理。设尾数采用补码表示形式,当运算结果时,需要进行右规操作;当运算结果时,需要进行左规操作。 (规格化溢出不是规格化数) 二、选择题(20每题2分) 1.以下给出的浮点数,______是规格化浮点数。(B) A.2^-10×0.010101 B.2^-11×0.101010 C.2^-100×1.010100 D.2^-1×0.0010101 2.常规乘除法器乘、除运算过程采用部分积、余数左移的做法,其好处是______。(C) A.提高运算速度 B. 提高运算精度 C. 节省加法器的位数 D. 便于控制 3.逻辑异运算10010011和01011101的结果是。(B) A.01001110 B.11001110

C.11011101 D.10001110 4.浮点数尾数基值rm=8,尾数数值部分长6位,可表示的规格化最小正尾数为。(C) 1.A.0.5 B.0.25 C.0.125 D.1/64 5.当浮点数尾数的基值rm=16,除尾符之外的尾数机器位数为8位时,可表示的规格化最大尾数值是。(D) A.1/2 B.15/16 C.1/256 D.255/256 6.两个补码数相加,采用1位符号位,当时表示结果溢出。(D) A、符号位有进位 B、符号位进位和最高数位进位异或结果为0 C、符号位为1 D、符号位进位和最高数位进位异或结果为1 7.运算器的主要功能时进行。(C) A、逻辑运算 B、算术运算 C、逻辑运算和算术运算 D、只作加法 8.运算器虽有许多部件组成,但核心部件是。(B) A、数据总线 B、算术逻辑运算单元 C、多路开关 D、累加寄存器 9.在定点二进制运算中,减法运算一般通过来实现。(D) A、原码运算的二进制减法器 B、补码运算的二进制减法器 C、补码运算的的十进制加法器 D、补码运算的的二进制加法器 10.ALU属于部件。(A) A、运算器 B、控制器 C、存储器 D、寄存器 三、判断题(10每题2分) 1.计算机表示的数发生溢出的根本原因是计算机的字长有限。(错误)

北邮数据库实验三-实验报告

题目:数据库实验三:嵌入式SQL 完成日期:2014.5.22 操作环境:Microsoft Visual C++ 6.0 SQL server 2008 R2 1 实验目的 1、熟悉在Visual Studio C++环境中通过ODBC实现数据库互连; 2、熟悉通过嵌入式SQL对数据库进行操作; 3、掌握数据库应用程序界面开发基本流程。 2 实验内容及要求 1、在Visual Studio C++环境中通过ODBC实现与实验1建立的数据库StuManagement的互联,进行实验要求的各种操作,关系模式和数据的操作均通过应用程序界面完成; 2、根据以下要求认真进行实验,记录所有的实验用例,填写实验报告。 2.1 数据库连接 2.1.1 通过ODBC实现与实验1数据库互连; 2.2 关系模式定义 2.2.1创建1个基本表,并插入2行数据; 2.2.2修改及删除基本表; 2.3 数据操作 2.3.1 数据查询操作; 2.3.2 数据删除操作;( 2.3.3 界面执行SQL语句操作 2.4 界面要求: 2.4.1 查询结果的多行显示(至少支持5行以上查询结果的显示) ;(2分) 2.4.2 界面美观,操作简单。 3 操作环境 Microsoft Visual C++ 6.0 Sql server 2008 R2 4 实验步骤 (1)ODBC与数据库互联

找到控制面板——管理工具 打开数据源(ODBC) 点击【添加】,选择SQL server

填写名称和描述,选择自己机器的服务器 按照默认就可以

点击【完成】,数据源就创建好了 5 实验内容与完成情况 (1)整体外观 本次实验,完成了记录的查询(按主键、按内容),记录的添加与删除,新建表,删除表,添加数据,修改表;执行SQL语句,并将查询结果显示出来。 (2)添加记录

北邮信通院数据结构实验报告三哈夫曼编码器

数据结构实验报告 实验名称:实验三树——哈夫曼编/解码器 学生姓名: 班级: 班内序号: 学号: 日期:2014年12月11日 1.实验要求 利用二叉树结构实现赫夫曼编/解码器。 基本要求: 1、初始化(Init):能够对输入的任意长度的字符串s进行统计,统计每个 字符的频度,并建立赫夫曼树 2、建立编码表(CreateTable):利用已经建好的赫夫曼树进行编码,并将每 个字符的编码输出。 3、编码(Encoding):根据编码表对输入的字符串进行编码,并将编码后的 字符串输出。 4、译码(Decoding):利用已经建好的赫夫曼树对编码后的字符串进行译 码,并输出译码结果。 5、打印(Print):以直观的方式打印赫夫曼树(选作) 6、计算输入的字符串编码前和编码后的长度,并进行分析,讨论赫夫曼 编码的压缩效果。 测试数据: I love data Structure, I love Computer。I will try my best to study data Structure. 提示: 1、用户界面可以设计为“菜单”方式:能够进行交互。 2、根据输入的字符串中每个字符出现的次数统计频度,对没有出现的 字符一律不用编码。

2. 程序分析 2.1 存储结构 Huffman树 给定一组具有确定权值的叶子结点,可以构造出不同的二叉树,其中带权路径长度最小的二叉树称为Huffman树,也叫做最优二叉树。 weight lchild rchild parent

2-1-1-1 5-1-1-1 6-1-1-1 7-1-1-1 9-1-1-1 weight lchild rchild parent 2-1-15 5-1-15 6-1-16 7-1-16 9-1-17 7017

第2章 计算机体系结构 习题与答案说课讲解

第2章计算机体系结构习题与答案

第二章习题(P69-70) 一、复习题 1.简述冯?诺依曼原理,冯?诺依曼结构计算机包含哪几部分部件,其结构以何部件为中心? 答:冯?诺依曼理论的要点包括:指令像数据那样存放在存储器中,并可以像数据那样进行处理;指令格式使用二进制机器码表示;用程序存储控制方式工作。这3条合称冯?诺依曼原理 冯?诺依曼计算机由五大部分组成:运算器、控制器、存储器、输入设备、输出设备,整个结构一般以运算器为中心,也可以以控制器为中心。 (P51-P54) 2.简述计算机体系结构与组成、实现之间的关系。 答:计算机体系结构通常是指程序设计人员所见到的计算机系统的属性,是硬件子系统的结构概念及其功能特性。计算机组成(computer organization)是依据计算机体系结构确定并且分配了硬件系统的概念结构和功能特性的基础上,设计计算机各部件的具体组成,它们之间的连接关系,实现机器指令级的各种功能和特性。同时,为实现指令的控制功能,还需要设计相应的软件系统来构成一个完整的运算系统。计算机实现,是计算机组成的物理实现, 就是把完成逻辑设计的计算机组成方案转换为真实的计算机。计算机体系结构、计算机组成和计算机实现是三个不同的概念,各自有不同的含义,但是又有着密切的联系,而且随着时间和技术的进步,这些含意也会有所改变。在某些情况下,有时也无须特意地去区分计算机体系结构和计算机组成的不同含义。 (P47-P48) 3.根据指令系统结构划分,现代计算机包含哪两种主要的体系结构? 答:根据指令系统结构划分,现代计算机主要包含:CISC和RISC两种结构。(P55) 4.简述RISC技术的特点? 答:从指令系统结构上看,RISC 体系结构一般具有如下特点: (1) 精简指令系统。可以通过对过去大量的机器语言程序进行指令使用频度的统计,来选取其中常用的基本指令,并根据对操作系统、高级语言和应用环境等的支持增设一些最常用的指令; (2) 减少指令系统可采用的寻址方式种类,一般限制在2或3种; (3) 在指令的功能、格式和编码设计上尽可能地简化和规整,让所有指令尽可能等长; (4) 单机器周期指令,即大多数的指令都可以在一个机器周期内完成,并且允许处理器在同一时间内执行一系列的指令。 (P57-58) 5.有人认为,RISC技术将全面替代CISC,这种观点是否正确,说明理由?答:不正确。与CISC 架构相比较,RISC计算机具备结构简单、易于设计和程序执行效率高的特点,但并不能认为RISC 架构就可以取代CISC 架构。事实上,RISC 和CISC 各有优势,CISC计算机功能丰富,指令执行更加灵活,这些时RISC计算机无法比拟的,当今时代,两者正在逐步融合,成为CPU设计的新趋势。 (P55-59)

计算机系统结构_第一章练习 答案

第一章练习题 一、单项选择题 在下面各题的4个备选答案中,只有一个答案是正确的,请把正确答案的标号(A~D )填入题后面的括号中。 1.在计算机系统层次结构中,从低层到高层,各层相对顺序正确的是( B )。 A . 汇编语言机器级 → 操作系统机器级 → 高级语言机器级 B . 微程序机器级 → 传统机器语言机器级 → 汇编语言机器级 C . 传统机器语言机器级 → 高级语言机器级 → 汇编语言机器级 D . 汇编语言机器级 → 应用语言机器级 → 高级语言机器级 2.直接执行微指令的是( C )。 A .汇编程序 B .编译程序 C .硬件 D .微指令程序 3.对汇编语言程序员透明的是( D )。 A .浮点运算 B .程序性中断 C .存取操作数 D .I/O 方式中的DMA 访问方式 4.从计算机系统结构来看,机器语言程序员看到的机器属性是( A )。 A .编程要用到的硬件组织 B .计算机软件所要完成的功能 C .计算机各部件的硬件实现 D .计算机硬件的全部组成 5.在计算机的系统结构设计中,提高硬件功能实现的比例会( C )。 A .提高硬件的利用率 B .提高系统的性能价格比 C .提高系统的运行速度 D .减少需要的存储器容量 6.在计算机的系统结构设计中,提高软件功能实现的比例会( D )。 A .减少需要的存储器容量 B .提高系统的性能价格比 C .提高系统的解题速度 D .提高系统的灵活性 二、应用题 1. 假设某一计算机系统高速缓存Cache 的工作速度为主存的5倍,而且Cache 被访问 命中的概率为90%,那么,采用Cache 后能够使该计算机的存储系统获得多高的加速比? 解:设CPU 运行程序的访存次数为IC ,CPU 访问主存一次所需要的平均周期数为CPI M , CPU 访问Cache 一次所需要的平均周期数为CPI C 。 若不采用Cache ,所有的访存都是直接访问主存,则CPU 完成IC 次访问所需时间为: 若采用Cache ,并且已知Cache 被访问的命中率为90%,即0.9IC 次访存能够通过访问Cache 完成,另外有0.1IC 次访存需要通过访问主存完成,则CPU 完成IC 次访存所需时间为: 所以采用Cache 后,存储系统的加速比为: 2. 如果某计算机系统有3个部件可以改进,则这3个部件经过改进后达到的加速比分 别是:S 1=30,S 2=20,S 3=10。 (1) 如果部件1和部件2改进前的执行时间占整个系统执行时间的比例都是 M C CPI CPI 5 1 =IC CPI T M ?=0IC CPI IC CPI IC CPI T M M C n ?=?+?=28.01.09.057 .30==n n T T S

相关文档
最新文档