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

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

如图所示,这是这是一张Scoot CPU开源模型原理图的右边一半,给出了存储器的结构和地址的分布。存储器有2个主要的逻辑单元。整个模型一共是17个逻辑单元。
实验模型:
1.伪代码和汇编语言的对应:
| 下列运算有的可以携带有赋值语句,赋值给其他变量,加一个 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 |
|
|
|
标志位 A 代表 a 大 | a>=b |
|
|
|
标志位 E 代表 相等 | a<=b |
|
|
|
| a<>b |
|
|
|
| a==b |
|
|
|
这里给出5种基本逻辑运算的对应,整个模型提供8种基本运算,24种浮点数运算和32种控制命令的指令系统。
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个逻辑单元上,做成动画。由于每一环节都是迭代生成的,我们可以将复杂度提高,实现可控的挑战度。
(1)学生交互性操作步骤,共 10 步
步骤序号 | 步骤目标要求 | 步骤合理用时 | 目标达成度赋分模型 | 步骤满分 | 成绩类型 |
| 度量单位 | 分钟 |
| 分 |
|
1 | 基本认知,CPU与主存储器 | 1 | 预览逻辑结构 | 0 | 预习成绩 |
2 | 运算器:TEMP暂存器,算术逻辑单元,协处理器,ACC累加器,标志寄存器和通用寄存器。算术逻辑单元,逻辑运算和算术运算模块,逻辑门电路。 | 15 | 6个逻辑单元(每个1分) 8个基本运算 | 14 | 预习成绩 |
3 | 控制器,查看Stepper步进器,Clock时钟发生器,MAR地址寄存器,MDR数据寄存器,操作控制器,译码器/E使能器,IR指令寄存器,PC指令计数器 | 9 | 9个逻辑单元(共6分) | 6 | 预习成绩 |
4 | 存储器,查看行列译码器和存储单元 | 2 | 2个逻辑单元(共2分) | 2 | 预习成绩 |
5 | 基本认知-指令系统,机内码,无符号数,带符号数,浮点数;算术运算指令和控制运算指令 | 17 | 3个机内码、6个算术运算、2组控制指令(每个1/2/1分) | 16 | 预习成绩 |
6 | 程序与指令,选择案例和数据 | 1 |
| 0 | 操作成绩 |
7 | 选择任务对应的数据在计算机内的表示方式 | 5 | 6个知识评价点 | 6 | 操作成绩 |
8 | 选择指令宽度的预选方案 | 1 | 1个知识评价点 | 6 | 操作成绩 |
9 | 结构设计,程序伪代码的编写。 | 25 | N个知识评价点,根据案例代码数量不同,隐含方案也不同,按总分做比例 | 30 | 操作成绩 |
10 | 逻辑与结构 | 15 | 同上 | 20 | 操作成绩 |
| 指令执行,提交设计方案,查看小节报告 | 91 | 合计 | 100 | 实验报告 |
(2)交互性步骤详细说明
(一) 预习和理论知识准备:无
(二) 实验环境准备:虚拟仿真实验项目线上运行
(三) 实验开始:可选引导、渲染、全屏
步骤1.点击基本认知,选择CPU与主存储器。

点击查看部件名称,可以预览所有十七个逻辑单元

步骤2.点击运算器,可以通过点击逻辑单元的位置分别选择TEMP暂存器,算术逻辑单元,协处理器,ACC累加器,标志寄存器和通用寄存器。

点击算术逻辑单元,进入逻辑运算和算术运算模块

点击逻辑门电路,查看电路图

点击协处理器,查看浮点数运算

步骤3.点击控制器,查看Stepper步进器,Clock时钟发生器,MAR地址寄存器,MDR数据寄存器,操作控制器,译码器/E使能器,IR指令寄存器,PC指令计数器

步骤4.点击存储器,查看行列译码器和存储单元

步骤5.点击基本认知-指令系统,进入机内码环节,查看无符号数,带符号数,浮点数的知识

点击运算指令,选择一元运算或者二元运算,查看基本运算


点击指令运行,查看指令运行的过程

点击控制指令,查看各种跳转指令和其他控制指令的意义

步骤6.点击程序与指令,选择数据,进入场景

点击桌子上的三种医疗设备,选择案例,领取任务,推进实验进程

步骤7.选择任务对应的数据在计算机内的表示方式

步骤8.选择指令宽度的预选方案

步骤9.点击下一环节进入结构设计环节,将右侧表示式,拖入左侧语句单元中,完成程序伪代码的编写。


点击周期计算标准,根据虚拟的周期代价配合程序代码

提交方案,生成汇编指令,如果错误需要返回。点击获取运行结果,查看计算结果


步骤10. 点击下一环节,进入逻辑与结构

选择设备库,在寄存器,运算器等设备中选择相应的部分放置在正确的位置

步骤11. 点击指令执行,提交设计方案,查看小节报告

