> # ♻️ 资源
> **大小:** 112MB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010674**](https://www.yuque.com/sxbn/ks/100010674)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87425303**](https://download.csdn.net/download/s1t16/87425303)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 1. 实验名称
记分板调度方法仿真
# 2. 实验报告作者
# 3. 实验内容
## 3.1. 定义 NK-CPU 指令流水线记分板仿真的基本数据结构
### 3.1.1 计分板
计分板数据结构是整个实验的核心,而实验要求可视化的计分板流程,所以我把计分板上所有需要用到的数据都存储在面板上,也就是实体可视化的数据结构。
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1714270414982-6c4e3a40-7ef4-4053-9384-57910c57fd06.png#averageHue=%23f1efee&from=url&id=WaPpw&originHeight=728&originWidth=1265&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
如需使用其中数据,则直接从面板获取即可,如果修改了数据也及时更新到面板上。
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1714270415183-868a8ca4-bd7f-4105-bd65-789dff019087.png#averageHue=%23f1efee&from=url&id=W2Sh4&originHeight=743&originWidth=1291&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
另外,跟上一个实验一样,我同样是用了两套计分板,表示开始和结束两个状态,第二个计分板是隐藏的不可见,从设计图中可以看到.读取是从第一个计分板,更改放到第二个计分板上,这样避免了模拟过程中发生数据冒险和结构冒险(人为)。每个周期的最后将第二个计分板的值复制到第一个计分板,以达到目的。
## 3.2. 使用 C 语言实现 NK-CPU 指令流水线记分板仿真程序
### 3.2.1. 四个执行步骤
主要是更改计分板,具体操作均按照书中的提示来实现:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1714270415363-be6282f8-a784-4470-b7c2-614f894eb69d.png#averageHue=%239a958b&from=url&id=Dro9h&originHeight=2096&originWidth=4027&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
《计算机体系结构:量化研究方法(第五版)》 P510
_但是这个表格中判断条件不足,还需要根据指令状态计分板的数据来判断,只有前一个步骤完成之后后面的步骤才能执行。_
### 3.2.1.1. 发射
nkcpuScoreboardDlg.cpp
```
void CnkcpuScoreboardDlg::发射()
{
UpdateData(TRUE);
CString ins = m_instate.GetItemText(m_PC - 6, 1);
if (ins != "")
{
int FU;
CString FUx;
if (op == "载入" || op == "存储" || op == "分支" || op == "整数运算") { FU = 整数单元; FUx = "整数"; }
else if (op == "加" || op == "减") { FU = 浮点加单元; FUx = "加";}
else if (op == "乘") { FU = 浮点乘1单元; FUx = "乘1";if (m_funstate.GetItemText(FU, 0) == "是") { FU++; FUx = "乘2"; } }
else if (op == "除") { FU = 浮点除单元; FUx = "除";}
CString busy = m_funstate.GetItemText(FU, 1);
CString result = m_result.GetItemText(0, rmap[D]+1);
CString resultS1 = m_result.GetItemText(0, rmap[S1] + 1);
CString resultS2 = m_result.GetItemText(0, rmap[S2] + 1);
if (busy == "否"&&result == "")
{
m_instate1.SetItemText(m_PC - 6, 2, _T("√"));
m_funstate1.SetItemText(FU, 1, _T("是"));
m_funstate1.SetItemText(FU, 2, op);
m_funstate1.SetItemText(FU, 3, D);
m_funstate1.SetItemText(FU, 4, S1);
m_funstate1.SetItemText(FU, 5, S2);
m_funstate1.SetItemText(FU, 6, resultS1);
m_funstate1.SetItemText(FU, 7, resultS2);
m_funstate1.SetItemText(FU, 8, resultS1 == "" ? _T("是") : _T("否"));
m_funstate1.SetItemText(FU, 9, resultS2 == "" ? _T("是") : _T("否"));
CString pc;pc.Format(_T("%d"), m_PC);
m_funstate1.SetItemText(FU, 10, pc);
m_PC++;
m_result1.SetItemText(0, rmap[D] + 1, FUx);
UpdateData(FALSE);
}
}
}
```
### 3.2.1.2. 读取操作数
nkcpuScoreboardDlg.cpp
```
void CnkcpuScoreboardDlg::读取操作数()
{
for (int i = 整数单元;i <= 浮点除单元;i++)
{
CString Rj = m_funstate.GetItemText(i, 8);
CString Rk = m_funstate.GetItemText(i, 9);
if (Rj == "是"&&Rj == "是")
{
CString pc = m_funstate.GetItemText(i, 10);
m_instate1.SetItemText(_ttoi(pc) - 6, 3, _T("√"));
m_funstate1.SetItemText(i, 6, _T(""));
m_funstate1.SetItemText(i, 7, _T(""));
m_funstate1.SetItemText(i, 8, _T("否"));
m_funstate1.SetItemText(i, 9, _T("否"));
CString Fj = m_funstate.GetItemText(i, 4);
CString Fk = m_funstate.GetItemText(i, 5);
UpdateData(TRUE);
B[i] = m_fReg[rmap[Fj]];
C[i] = m_fReg[rmap[Fk]];
}
}
}
```
### 3.2.1.3. 执行完成
nkcpuScoreboardDlg.cpp
```
void CnkcpuScoreboardDlg::执行完成()
{
for (int i = 整数单元;i <= 浮点除单元;i++)
{
CString pc = m_funstate.GetItemText(i, 10);
if (m_instate.GetItemText(_ttoi(pc) - 6, 3)=="√")
{
switch (i)
{
case 整数单元:
m_instate1.SetItemText(_ttoi(pc) - 6, 4, 整数());
break;
case 浮点乘1单元:
m_instate1.SetItemText(_ttoi(pc) - 6, 4, 浮点乘1());
break;
case 浮点乘2单元:
m_instate1.SetItemText(_ttoi(pc) - 6, 4, 浮点乘2());
break;
case 浮点加单元:
m_instate1.SetItemText(_ttoi(pc) - 6, 4, 浮点加());
break;
case 浮点除单元:
m_instate1.SetItemText(_ttoi(pc) - 6, 4, 浮点除());
break;
}
}
}
}
```
执行涉及了之后的五个功能单元,因为彼此互相独立,所以均可以单独运行,所以在执行阶段有五个单元,下一步分会具体介绍。
### 3.2.1.4. 写结果
nkcpuScoreboardDlg.cpp
```
void CnkcpuScoreboardDlg::写结果()
{
for (int i = 整数单元;i <= 浮点除单元;i++)
{
CString pc = m_funstate.GetItemText(i, 10);
if (m_instate.GetItemText(_ttoi(pc) - 6, 4) == "√")
{
CString FUx;
switch (i)
{
case 整数单元:FUx = "整数";break;
case 浮点乘1单元:FUx = "乘1";break;
case 浮点乘2单元:FUx = "乘2";break;
case 浮点加单元:FUx = "加";break;
case 浮点除单元:FUx = "除";break;
}
CString FiFU = m_funstate.GetItemText(i, 3);
bool term = 1;
for (int j = 整数单元;j <= 浮点除单元;j++)
{
if (i != j)
{
CString Fjf = m_funstate.GetItemText(j, 4);
CString Fkf = m_funstate.GetItemText(j, 5);
CString Rjf = m_funstate.GetItemText(j, 8);
CString Rkf = m_funstate.GetItemText(j, 9);
term = term && (Fjf != FiFU || Rjf == "否") && (Fkf != FiFU || Rkf == "否");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于C++实现的记分板调度方法仿真【100010674】
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共74个文件
tlog:18个
bmp:6个
obj:6个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 114 浏览量
2023-02-07
16:20:29
上传
评论
收藏 112.63MB ZIP 举报
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100010674 1. 定义 NK-CPU 指令流水线记分板仿真的基本数据结构 2. 使用 C 语言实现 NK-CPU 指令流水线记分板仿真程序 3. 使用 NK-CPU 汇编语言编写记分板仿真程序的测试程序
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/EXE.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PDF.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/BMP.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/BMP.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/BMP.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/BMP.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/BMP.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/BMP.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/EXE.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/TXT.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 74 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/fbed2db386fd4018b8f2474d6651545d_s1t16.jpg!1)
神仙别闹
- 粉丝: 2713
- 资源: 7668
![benefits](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-1.c8e153b4.png)
下载权益
![privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-2.ec46750a.png)
C知道特权
![article](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-3.fc5e5fb6.png)
VIP文章
![course-privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-4.320a6894.png)
课程特权
![rights](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-icon.fe0226a8.png)
开通VIP
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)