-
大小: 161KB文件类型: .rar金币: 1下载: 0 次发布日期: 2021-06-24
- 语言: 其他
- 标签:
资源简介
通过模拟单功能流水线调度过程,掌握流水线技术,学会计算流水线的吞吐率、
加速比、效率。
1 流水线的表示法有三种:
连接图、时空图、预约表。对于线性流水线,主要考虑前二种。
2 流水线的主要特点:
在流水线的每一个功能部件的后面都要有一个缓冲器,称为锁存器、闸门寄存器等,
它的作用是保存本流水段的执行结果。各流水段的时间应尽量相等,否则回引起阻塞、
断流等。只有连续提供同类任务才能充分发挥流水线的效率。在流水线的每一个流水线
段中都要设置一个流水锁存器。流水线需要有“装入时间”和“排空时间”。只有流水线完
全充满时,整个流水线的效率才能得到充分发挥。
代码片段和文件信息
//code by zbs
//单功能流水线模拟
//C++实现
/*如果在VC6.0下运行,请注释掉头文件#include和getch();
而且要加上宏#define for if(0);else for
*/
#include
#include
#include
using namespace std;
const int N = 1001;
int main()
{
int space ;//功能部件数
int inum ;//需要流水处理的指令数目
int length ;//存储不同时间段各个功能部件内指令值
char map[N][N];//时空图
cout << “-------Demo the pipline for float point add.------“ << endl;
cout << “-------Here we display all the content in the pipeline------“ << endl;
cout << “请输入功能部件数目: “ << endl;
cin >> space;
cout << “请输入需要流水处理的指令数目“ << endl;
cin >> inum;
int cnt = 1;
char flag = ‘n‘;
length = inum + space -1;
for(int i=0; i {
int k;
for(k=0; k<(space-i-1)*3; k++)
map[i][k] = ‘ ‘;
--k;
for(int j=0; j {
map[i][++k+j] = (char)(65+i);
map[i][++k+j] = j+1+‘0‘;
}
}
while(cnt <=length && flag == ‘n‘)
{
//output the cnt-th slice
for(int i=0; i {
for(int j=0; j cout << map[i][j];
cout << endl;
}
cnt++;
cout << “Input next time slices (y/n)“ << endl;//如果想要看到完整的流水线过程请一直按’n‘
cin >> flag;
cout << endl;
}
cout << “The task has been finished“ << endl;
cout << endl;
cout << “The Though Put of the pipeline is “ << inum/(length*1.0) << “Δt“ << endl;
cout << “The Speedup is of the pipeline is “ << (inum*space)/(length*1.0) << endl;
cout << “The Efficiency of the pipeline is “ << (inum*space)/(space*length*1.0) << endl;
getch();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1878 2010-12-09 21:05 单功能流水线\pipeline.cpp
文件 262 2010-12-08 20:39 单功能流水线\readme.txt
文件 229376 2011-03-04 00:40 单功能流水线\单功能流水线调度机构模拟.doc
目录 0 2011-03-04 00:42 单功能流水线
----------- --------- ---------- ----- ----
231516 4
- 上一篇:G711编码原理ppt
- 下一篇:网络爬虫爬取网页链接
评论
共有 条评论