
图所示,这是一张Scoot CPU开源模型原理图的左边一半,分割线分割了运算器和控制器,运算器内有6个主要逻辑单元,控制器有9个主要逻辑单元,走线将他们连接起来代表了他们之间的组合逻辑。
如图所示,这是这是一张Scoot CPU开源模型原理图的右边一半,给出了存储器的结构和地址的分布。存储器有2个主要的逻辑单元。整个模型一共是17个逻辑单元
下列运算有的可以携带有赋值语句,赋值给其他变量,加一个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个逻辑单元上,做成动画。由于每一环节都是迭代生成的,我们可以将复杂度提高,实现可控的挑战度。
目标达成度赋分模型 | 步骤满分 | 得分情况 | 成绩类型 | |
评价点 | 得分分值 | |||
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 | 实验报告 |