系统结构实验1报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
系统结构实验1报告

青 岛 理 工 大 学 计算机系统结构实验报告 课程名称 计算机系统结构 班级 计算121 实验日期 2015.10.20 姓名 潘洪菊 学号 201207003 实验成绩 实验名称 CPU无流水无cache执行状况软件模拟 实验 目的 及 要 求 用软件实现CPU非流水下指令执行过程模拟, 了解、掌握CPU无流水无cache工作方式。 实验环境 操作系统windows 7, 编译工具VC++6.0 实 验 内 容 含 设 计 思 想 与 过 程 实验内容: 使用C++语言编写一个程序模拟CPU内部的部件以及其工作原理。 程序开始运行时首先输入子过程数量、子过程名称,要执行的指令条数等相关参数。 程序运行时会动态显示模拟CPU的工作过程,以及各个部件正在执行的指令。 该过程模拟的是CPU的非流水下指令执行的过程。 程序设计思想: 1、输入输出 输入:子过程数量p_num、子过程名称p_name[]、指令的条数i_num 输出:流水处理图像 graph[][] 2、数据结构 1一个二维数组graph[][],用于存储流水图像 2一个一维数组proc[],proc[i]表示子过程正在处理第proc[i]条指令 3整数t,表示当前时刻 3、算法: 1输入相关参数 2模拟CPU工作原理,修改proc数组,修改t 3根据proc数组和t,修改graph数组 4输出数组graph表示的图像 5返回2,直到执行完所有指令 流水方式与非流水方式的区别: 非流水下各条指令之间顺序串行(执行完一条指令后才取下一条指令)地进行,每条指令内部的各个微操作也顺序串行地进行。 流水方式下是将一条指令细分成若干个子过程,不同指令的不同子过程之间可以并行执行。 调 试 过 程 及 实 验 结 果 输入相关参数: 非流水处理状态1: 非流水处理状态2: 非流水处理状态3: 总 结 通过此次试验,对CPU非流水线的工作过程更加清楚,CPU非流水线是指模拟过程中调度算法简单,无复杂的预载入,跳转重置算法。非流水线的处理器每次只运行一个指令。防止分支延时(事实上,每个分支都会产生延时)和串行指令被并行运行产生的问题。设计比较简单和较低生产成本。 非流水线处理器有固定指令位宽。流水线处理器的性能更难以预测,并且不同的程序之间的变化可能更大。 在运行相同的指令时,非流水线处理器的指令传输延迟时间比流水线处理器明显较短。这是因为流水线的处理器必须在数据路径中添加额外触发器。 附 录 #includecstdio #includecstring #includecstdlib #includectime #includewindows.h const int maxn = 100; int p_num,i_num;//p_num表示子过程的数量,i_num表示指令的数量 char p_name[maxn][maxn];//p_name[i]表示第i个过程的名称,如取指令,指令译码,取操作数、执行 char graph[maxn][maxn];//graph数组用来存放流水处理图像,graph[i][j]表示第i个过程第j时刻正在执行的指令序号 int proc[maxn];//proc[i]表示子过程i正在处理第proc[i]条指令 int t; void init() //初始化函数,初始化相关数组和变量 { p_num = i_num = t = 0; memset(graph, 0, sizeof(graph)); memset(p_name, 0, sizeof(p_name)); memset(proc, 0, sizeof(proc)); } void input() //输入函数 { printf(请输入子过程的数量:); scanf(%d, p_num); for(int i = 1; i = p_num; i ++) { printf(请输入第%d个子过程的名称:, i); scanf(%s, p_name[i]); } printf(请输入指令的条数:); scanf(%d, i_num); } int get_maxlen() { int max = strlen(子过程); for(int i = 0; i p_num; i ++) { int tmp = strlen(p_name[i]); if(max tmp) max = tmp; } return max; } void print_space(int n)

文档评论(0)

wuailuo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档