- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机系统结构课程设计 单功能非线性流水线最佳调度程序
福建农林大学计算机与信息学院
计算机类课程设计
课程名称: 计算机系统结构课程设计 设计题目: 单功能非线性流水线最佳调度程序 姓 名: 系: 计算机 专 业: 计算机科学与技术 年 级: 学 号: 指导教师: 职 称:
2012年 11 月 30 日
福建农林大学计算机与信息学院计算机类
课程设计结果评定
评价内容 评价指标 评分权值 评定成绩 工作态度 工作努力,严格按照课程技能训练设计的要求去做,表现好;遵守纪律,工作作风严谨务实。 20 业务水平 能按时优异地完成课程设计任务,能熟练地综合运用所学理论和专业知识,在技能训练中对某些技能、技术有新建议、有小革新、有创见。动手能力强,实干精神强,团结协作能力强,适应能力强。 30 设计报告质量 报告或成果完整、正确,概念清楚,图纸表格齐全,文字通顺,排版打印符合要求。 40 工作量 按期完成规定的任务,工作量饱满,难度较大。 10 成绩: 指导教师签字: 评定日期:
目 录
1设计的目的………………………………………………………………1页
2设计要求…………………………………………………………………1页
3主要仪器设备(软硬件环境)…………………………………………1页
4设计内容…………………………………………………………………1页
4.1设计原理…………………………………………………………1页
4.2总体方案设计……………………………………………………2页
4.3程序设计…………………………………………………………2页
4.4程序的调试和运行结果…………………………………………9页
5总结………………………………………………………………………9页
参考文献……………………………………………………………………9页单功能非线性流水线最佳调度程序
设计的目的
通过课程设计进一步了解计算机系统的设计及工作原理,进一步熟悉和掌握单功能非线性流水线最佳调度.利用所学知识完成相关程序的设计、运行和调试工作。
设计要求
要求设计一个处理程序,输入非线性流水线各个功能段使用的时间(拍),通过程序处理后输出正确的最佳调度方案。
主要仪器设备(软硬件环境)
PC机、windows xp 、VC++ 6.0
设计内容
4.1 设计原理
非线性流水线无冲突调度的目标是找出平均允许启动距离最小的启动循环。按照这样的启动循环向流水线的 输 入 端 输 入 任 务, 所 有 功 能 段 在 任 何 时 刻 都 没 有 冲 突 , 而 且流水线的工作效率最高。在进行这一工作时 , 首先要进行的就是 画 出 无 冲 突 调 度 方 案 的 状 态 图, 求 得 所 有 的 调 度 方 案 , 再 找出平均允许启动距离最小的调度方案。
4.2总体方案设计
4.3 程序设计
#includecstdio
#includecstdlib
#includealgorithm
#includestring
using namespace std;
const int inf=100000;
int mat[20][20];
int tmp_ban[20];
int ban[20];
int int_ban;
int point[105];
int edge[105][105];
int pn;
double opt_dis;
int dis[20];
int dn, pre;
bool has[20];
struct optimal
{
int rn;
int road[20];
}op[20];
int opn;
void search(int id)
{
int i, j, k;
for(i=0; ipn; i++)
if(edge[id][i]inf)
{
if(has[i]==true i!=pre)continue;
dis[dn++]=edge[id][i];
if(has[i]==true)
{
double tmp=0;
for(j=0; jdn; j++)
tmp+=dis[j];
tmp/=dn;
if(tmp=opt_dis)
{
if(tmpopt_dis)opn=0, opt_dis=tmp;
op[opn].rn=dn;
for(j=0; jdn; j++)
op[opn].road[j]=dis[j];
opn++
文档评论(0)