CPU组合逻辑与指令执行虚拟仿真实验--教学指导书

为顺应立德树人、素质全面的教育方针和南京中医药大学培养新时代复合型人才的教学定位。本实验立足于培养学生的信息化素养和统筹规划能力,要求学生理解和掌握计算机工作方式、指令的运行方式、数据的存储和调用方式、逻辑单元的相互关系和性能指标的影响。通过本实验,达到以下目的: 1、立德树人,培养创新型人才 2、理解存储程序控制原理。 3、加深对各个逻辑单元功能和相互联系方式的理解。 4、掌握组合逻辑设计的方法 5、加深对指令和指令周期的理解,理解伪指令,微指令,指令执行的关联, 6、掌握问题到算法到伪指令实现的结构化过程控制 7、掌握参数设置对于计算机效能的影响,提升综合分析、统筹规划的能力

实验原理

图所示,这是一张Scoot CPU开源模型原理图的左边一半,分割线分割了运算器和控制器,运算器内有6个主要逻辑单元,控制器有9个主要逻辑单元,走线将他们连接起来代表了他们之间的组合逻辑。



如图所示,这是这是一张Scoot CPU开源模型原理图的右边一半,给出了存储器的结构和地址的分布。存储器有2个主要的逻辑单元。整个模型一共是17个逻辑单元


END

实验模型:

伪代码和汇编语言的对应:

下列运算有的可以携带有赋值语句,赋值给其他变量,加一个MOV语句即可

立即数,两种处理方法:作为任务的参考值被直接存入对应的通用寄存器组,二:模拟为通用寄存器

所以,立即数的动画等同寄存器RX,默认为R28-R30

基础运算

a= 属于复制语句

对应的微指令

a=AND(a,b)

AND 

A:RX,[RX]

B:RX,[RX]

a=OR(a,b)

OR 

A:RX,[RX]

B:RX,[RX]

异或

a=XOR (a,b)

XOR

A:RX,[RX]

B:RX,[RX]

a= NOT(a)

NOT

A:RX,[RX]

比较

a>b

CMP

A:RX,[RX]

B:RX,[RX]

通过判断A E两个标志位来决定取值

a<b

标志位A代表a

a>=b

标志位E代表 相等

a<=b

a<>b

a==b

这里给出5种基本逻辑运算的对应,整个模型提供8种基本运算,24种浮点数运算和32种控制命令的指令系统。

2.汇编语言和微指令的对应关系:

这里给出一个加法汇编语言的2种相关代码对应关系,整个模型提供16种运算的所有对应关系。

ADD  R0[R1]

执行步骤1

R1->MAR,[MAR]->MDR

执行步骤2

MDR->TEMP

执行步骤3

R0,TEMP->(ADD)->ACC

执行步骤4

ACC->R0

ADD  [RX][RY]

[RX][RY]

ADD  [R0][R1]

[R0][R1]

执行步骤1

R1->MAR,[MAR]->MDR

执行步骤2

MDR->TEMP

执行步骤3

R0->MAR,[MAR]->MDR

执行步骤4

MDR,TEMP->(ADD)->ACC

执行步骤5

ACC->MDR

执行步骤6

R0->MAR,MDR->[MAR]

3.微指令和逻辑单元的关系:

就是英文的对应关系:比如R代表寄存器,MAR代表地址寄存器,共17个逻辑单元,具体的对应关系在认知里有预习知识单元。

4.案例程序代码和工程师动画版本

学生在完成代码组合后会生成如下图表左侧的代码,工程师动画版本测试右侧的执行代码,模型提供3个案例各自2个版本的动画,可以添加。

学生版本

工程师运行版本

 

BEGIN

 

BEGIN

IN

 

IN

MOV R16[R24]

1次循环

MOV R16[R24]

CMP R16,R4

判定

CMP R16,R4

JMPNAE CODE2

T

ADD R0,1

ADD R0,1

 

ADD R24,1

ADD R24,1

 

 

JMPNEND CODE1

2次循环

MOV R16[R24]

CALL LIST1.ListAVG

判定

CMP R16,R4

MOV R12 , R0

T

ADD R0,1

MOV R13 , R23

 

ADD R24,1

OUT

 

 

END

3次循环

T

 

4次循环

T

 

 

 

 

5次循环

MOV R16[R24]

 

判定

CMP R16,R4

 

F

ADD R24,1

 

 

 

 

6次循环

F

 

 

 

 

7次循环

T

 

8次循环

T

 

9次循环

T

 

10次循环

T

 

 

 

 

 

CALL LIST1.ListAVG

 

 

MOV R12 , R0

根据模型,我们可以将伪代码变成汇编语句,再变成微指令,再联系到CPU和存储器的17个逻辑单元上,做成动画。由于每一环节都是迭代生成的,我们可以将复杂度提高,实现可控的挑战度。

END

实验方案

1

步骤一、数据选择

指令宽度方案选择

积木式代码输入

组装备用逻辑单元

运行指令
END

实验数据及分析

 

目标达成度赋分模型

步骤满分

得分情况

成绩类型

 

 

评价点

得分分值

 

1

预览逻辑结构

0

不积分

预习成绩

2

6个逻辑单元(每个1分)

8个基本运算

14

14

预习成绩

3

9个逻辑单元(共6分)

6

6

预习成绩

4

2个逻辑单元(共2分)

2

2

预习成绩

5

3个机内码、6个算术运算、2组控制指令(每个1/2/1分)

16

16

 

预习成绩

 

预习分值

38

38

 

6

 

0

不积分

操作成绩

7

6个知识评价点

6

6

操作成绩

8

1个知识评价点

6

6

操作成绩

9

9个知识评价点,根据案例代码数量不同,隐含方案也不同,按总分做比例

满分30

9个评价点全对 重复步骤不记扣

操作成绩

10

9个评价点

满分20

9个评价点全对,重复步骤不记扣

操作成绩

 

合计

100

100

实验报告

END

实验总结

本次实验,学生精准的选择了正确和匹配数据,指令,程序伪代码和逻辑单元组合,获得了全面的评价考核点数据,在程序伪代码阶段,重复次数较多,可选评价不计入得分。
END