计算机体系结构实验-单功能流水线调度机构模拟_第1页
计算机体系结构实验-单功能流水线调度机构模拟_第2页
计算机体系结构实验-单功能流水线调度机构模拟_第3页
计算机体系结构实验-单功能流水线调度机构模拟_第4页
计算机体系结构实验-单功能流水线调度机构模拟_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上CENTRAL SOUTH UNIVERSITY 计算机体系结构实验报告题 目 单功能流水线调度机构模拟 一、实验目的结合数据结构的相关知识,编写流水线调度模拟程序。二、实验环境Eclipse IDE for Java Developers(Version: Kepler Release)Win7三、实验内容程序通过模拟单功能流水线调度过程,掌握流水线技术,学会计算流水线的吞吐率、加速比、效率。 1 流水线的表示法有三种:连接图、时空图、预约表。对于线性流水线,主要考虑前二种。2 流水线的主要特点:在流水线的每一个功能部件的后面都要有一个缓冲器,称为锁存器、闸门寄存器

2、等,它的作用是保存本流水段的执行结果。各流水段的时间应尽量相等,否则回引起阻塞、断流等。只有连续提供同类任务才能充分发挥流水线的效率。在流水线的每一个流水线段中都要设置一个流水锁存器。流水线需要有“装入时间”和“排空时间”。只有流水线完全充满时,整个流水线的效率才能得到充分发挥。四、关键代码/构筑主窗体大小颜色:public void lauchFrame() this.setLayout(null);this.setBounds(100, 100, 600, 500);this.setBackground(Color.cyan);this.setVisible(true);/当输入为3时,显

3、示的是此时的流水线if(Integer.parseInt(timeslice) = 3) new Painting(200, 380, 25, 20, Color.gray, "ED1", true).draw(g);new Painting(225, 380, 25, 20, Color.gray, "ED2", true).draw(g);new Painting(250, 380, 25, 20, Color.gray, "ED3", true).draw(g);new Painting(225, 360, 25, 20, Co

4、lor.gray, "EA1", true).draw(g);new Painting(250, 360, 25, 20, Color.gray, "EA2", true).draw(g);new Painting(250, 340, 25, 20, Color.gray, "MA1", true).draw(g);这个程序运行的流水线的模拟,依靠的是Java对于界面的编写,流水线的时空图并不是由程序得出,而是由预先设计好的时空图通过编程输出为图像。比如这个当输入为3时,时空图中有6块,每块用new Painting输出。五、运行截图

5、及源代码输入为空的时候:输入超出规定范围的时候:输入正常的范围,比如t=8的时候的流水线时空图:源代码:package waterline;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.table.*;public class waterline extends Frame public static void main(String args) waterline lruc = new waterline();lruc.lauchFrame();Graphics g;Labe

6、l jlabel1;/Label jlabel2;TextArea jta1;TextField jtf2;/TextField jtf3;Button jb_input;/Button run;JScrollPane jsp;JTable jt;DefaultTableModel dtm;static String timeslice;public void lauchFrame() this.setLayout(null);this.setBounds(100, 100, 600, 500);this.setBackground(Color.cyan);this.setVisible(tr

7、ue);jlabel1 = new Label("请输入时间t:");/jlabel2 = new Label("请输入设备内容:");jta1 = new TextArea();jtf2 = new TextField();/jtf3 = new TextField();jb_input = new Button("确定"); /run = new Button("运行通道管理器");jlabel1.setBounds(50, 50, 110, 20);/jlabel2.setBounds(230, 50, 90

8、, 20);jta1.setBounds(50, 100, 500, 150);jtf2.setBounds(170, 50, 70, 20);/jtf3.setBounds(330, 50, 90, 20);jb_input.setBounds(450, 50, 60, 20);/run.setBounds(450, 260, 100, 20);this.add(jlabel1);/this.add(jlabel2);this.add(jta1);this.add(jtf2);/this.add(jtf3);this.add(jb_input);/this.add(run);this.add

9、WindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0););jb_input.addActionListener(new InputActionListener();jb_input.addActionListener(new RunActionListener();jta1.addKeyListener(new TextAreaThread();g = this.getGraphics();new Thread(new PaintThread().start();jt

10、a1.append("-Deno the pipline for float point add.-n");jta1.append("-We want to execute 5 float poing instructions-n");jta1.append("Here, we display all the content in the pipline:n");jta1.append("Please input a time slice:n");/jta1.append(" " + NL0 +

11、 " " + NL1 + " " + NL2);class InputActionListener implements ActionListener public void actionPerformed(ActionEvent e) if(jtf2.getText().equals("") Object options = "OK" ;JOptionPane.showOptionDialog(null, "你的输入存在“”,请按提示输入!", "警告", JOptionP

12、ane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,null, options, options0);timeslice = jtf2.getText();jta1.append(jtf2.getText() + "n");jtf2.setText(""); class RunActionListener implements ActionListener public void actionPerformed(ActionEvent e) new Thread(new TextAreaThread().sta

13、rt();class Painting int x, y, width, height;Color color;String s;Boolean flag;public Painting(int x, int y,int width, int height, Color color, String s, Boolean flag) this.x = x;this.y = y;this.width = width;this.height = height;this.color = color;this.s = s;this.flag = flag;public void draw(Graphic

14、s g) Color c = g.getColor();g.setColor(color);if(flag = true) g.fillRect(x, y, width, height);g.setColor(Color.red);g.drawRect(x, y, width, height); else if(flag = false) g.drawLine(x, y, width, height);g.setColor(Color.red);g.drawString(s, x+2, y+15);g.setColor(c);private class PaintThread implemen

15、ts Runnable public void run() while(true) repaint();try Thread.sleep(500); catch (InterruptedException e) e.printStackTrace();public void paint(Graphics g) new Painting(50, 280, 500, 180, Color.orange, "", true).draw(g);new Painting(150, 400, 450, 400, Color.red, "", false).draw(

16、g);new Painting(200, 300, 200, 430, Color.red, "", false).draw(g);if(timeslice != null && Integer.parseInt(timeslice) <= 8) if(Integer.parseInt(timeslice) = 1) new Painting(200, 380, 25, 20, Color.gray, "ED1", true).draw(g);if(Integer.parseInt(timeslice) = 2) new Paint

17、ing(200, 380, 25, 20, Color.gray, "ED1", true).draw(g);new Painting(225, 380, 25, 20, Color.gray, "ED2", true).draw(g);new Painting(225, 360, 25, 20, Color.gray, "EA1", true).draw(g);if(Integer.parseInt(timeslice) = 3) new Painting(200, 380, 25, 20, Color.gray, "ED

18、1", true).draw(g);new Painting(225, 380, 25, 20, Color.gray, "ED2", true).draw(g);new Painting(250, 380, 25, 20, Color.gray, "ED3", true).draw(g);new Painting(225, 360, 25, 20, Color.gray, "EA1", true).draw(g);new Painting(250, 360, 25, 20, Color.gray, "EA2&qu

19、ot;, true).draw(g);new Painting(250, 340, 25, 20, Color.gray, "MA1", true).draw(g);if(Integer.parseInt(timeslice) = 4) new Painting(200, 380, 25, 20, Color.gray, "ED1", true).draw(g);new Painting(225, 380, 25, 20, Color.gray, "ED2", true).draw(g);new Painting(250, 380,

20、25, 20, Color.gray, "ED3", true).draw(g);new Painting(275, 380, 25, 20, Color.gray, "ED4", true).draw(g);new Painting(225, 360, 25, 20, Color.gray, "EA1", true).draw(g);new Painting(250, 360, 25, 20, Color.gray, "EA2", true).draw(g);new Painting(275, 360, 25,

21、20, Color.gray, "EA3", true).draw(g);new Painting(250, 340, 25, 20, Color.gray, "MA1", true).draw(g);new Painting(275, 340, 25, 20, Color.gray, "MA2", true).draw(g);new Painting(275, 320, 25, 20, Color.gray, "NL1", true).draw(g);if(Integer.parseInt(timeslice)

22、= 5) new Painting(200, 380, 25, 20, Color.gray, "ED1", true).draw(g);new Painting(225, 380, 25, 20, Color.gray, "ED2", true).draw(g);new Painting(250, 380, 25, 20, Color.gray, "ED3", true).draw(g);new Painting(275, 380, 25, 20, Color.gray, "ED4", true).draw(g)

23、;new Painting(300, 380, 25, 20, Color.gray, "ED5", true).draw(g);new Painting(225, 360, 25, 20, Color.gray, "EA1", true).draw(g);new Painting(250, 360, 25, 20, Color.gray, "EA2", true).draw(g);new Painting(275, 360, 25, 20, Color.gray, "EA3", true).draw(g);new

24、 Painting(300, 360, 25, 20, Color.gray, "EA4", true).draw(g);new Painting(250, 340, 25, 20, Color.gray, "MA1", true).draw(g);new Painting(275, 340, 25, 20, Color.gray, "MA2", true).draw(g);new Painting(300, 340, 25, 20, Color.gray, "MA3", true).draw(g);new Pai

25、nting(275, 320, 25, 20, Color.gray, "NL1", true).draw(g);new Painting(300, 320, 25, 20, Color.gray, "NL2", true).draw(g);if(Integer.parseInt(timeslice) = 6) new Painting(200, 380, 25, 20, Color.gray, "ED1", true).draw(g);new Painting(225, 380, 25, 20, Color.gray, "

26、ED2", true).draw(g);new Painting(250, 380, 25, 20, Color.gray, "ED3", true).draw(g);new Painting(275, 380, 25, 20, Color.gray, "ED4", true).draw(g);new Painting(300, 380, 25, 20, Color.gray, "ED5", true).draw(g);new Painting(225, 360, 25, 20, Color.gray, "EA1&

27、quot;, true).draw(g);new Painting(250, 360, 25, 20, Color.gray, "EA2", true).draw(g);new Painting(275, 360, 25, 20, Color.gray, "EA3", true).draw(g);new Painting(300, 360, 25, 20, Color.gray, "EA4", true).draw(g);new Painting(325, 360, 25, 20, Color.gray, "EA5"

28、;, true).draw(g);new Painting(250, 340, 25, 20, Color.gray, "MA1", true).draw(g);new Painting(275, 340, 25, 20, Color.gray, "MA2", true).draw(g);new Painting(300, 340, 25, 20, Color.gray, "MA3", true).draw(g);new Painting(325, 340, 25, 20, Color.gray, "MA4", t

29、rue).draw(g);new Painting(275, 320, 25, 20, Color.gray, "NL1", true).draw(g);new Painting(300, 320, 25, 20, Color.gray, "NL2", true).draw(g);new Painting(325, 320, 25, 20, Color.gray, "NL3", true).draw(g);if(Integer.parseInt(timeslice) = 7) new Painting(200, 380, 25, 20

30、, Color.gray, "ED1", true).draw(g);new Painting(225, 380, 25, 20, Color.gray, "ED2", true).draw(g);new Painting(250, 380, 25, 20, Color.gray, "ED3", true).draw(g);new Painting(275, 380, 25, 20, Color.gray, "ED4", true).draw(g);new Painting(300, 380, 25, 20, Co

31、lor.gray, "ED5", true).draw(g);new Painting(225, 360, 25, 20, Color.gray, "EA1", true).draw(g);new Painting(250, 360, 25, 20, Color.gray, "EA2", true).draw(g);new Painting(275, 360, 25, 20, Color.gray, "EA3", true).draw(g);new Painting(300, 360, 25, 20, Color.

32、gray, "EA4", true).draw(g);new Painting(325, 360, 25, 20, Color.gray, "EA5", true).draw(g);new Painting(250, 340, 25, 20, Color.gray, "MA1", true).draw(g);new Painting(275, 340, 25, 20, Color.gray, "MA2", true).draw(g);new Painting(300, 340, 25, 20, Color.gray

33、, "MA3", true).draw(g);new Painting(325, 340, 25, 20, Color.gray, "MA4", true).draw(g);new Painting(350, 340, 25, 20, Color.gray, "MA5", true).draw(g);new Painting(275, 320, 25, 20, Color.gray, "NL1", true).draw(g);new Painting(300, 320, 25, 20, Color.gray, &q

34、uot;NL2", true).draw(g);new Painting(325, 320, 25, 20, Color.gray, "NL3", true).draw(g);new Painting(350, 320, 25, 20, Color.gray, "NL4", true).draw(g);if(Integer.parseInt(timeslice) = 8) new Painting(200, 380, 25, 20, Color.gray, "ED1", true).draw(g);new Painting(

35、225, 380, 25, 20, Color.gray, "ED2", true).draw(g);new Painting(250, 380, 25, 20, Color.gray, "ED3", true).draw(g);new Painting(275, 380, 25, 20, Color.gray, "ED4", true).draw(g);new Painting(300, 380, 25, 20, Color.gray, "ED5", true).draw(g);new Painting(225,

36、 360, 25, 20, Color.gray, "EA1", true).draw(g);new Painting(250, 360, 25, 20, Color.gray, "EA2", true).draw(g);new Painting(275, 360, 25, 20, Color.gray, "EA3", true).draw(g);new Painting(300, 360, 25, 20, Color.gray, "EA4", true).draw(g);new Painting(325, 360

37、, 25, 20, Color.gray, "EA5", true).draw(g);new Painting(250, 340, 25, 20, Color.gray, "MA1", true).draw(g);new Painting(275, 340, 25, 20, Color.gray, "MA2", true).draw(g);new Painting(300, 340, 25, 20, Color.gray, "MA3", true).draw(g);new Painting(325, 340, 25

38、, 20, Color.gray, "MA4", true).draw(g);new Painting(350, 340, 25, 20, Color.gray, "MA5", true).draw(g);new Painting(275, 320, 25, 20, Color.gray, "NL1", true).draw(g);new Painting(300, 320, 25, 20, Color.gray, "NL2", true).draw(g);new Painting(325, 320, 25, 20

39、, Color.gray, "NL3", true).draw(g);new Painting(350, 320, 25, 20, Color.gray, "NL4", true).draw(g);new Painting(375, 320, 25, 20, Color.gray, "NL5", true).draw(g); public void update(Graphics g) this.paint(g); class TextAreaThread implements Runnable, KeyListener public

40、 void run() if(Integer.parseInt(timeslice) <= 8) try Thread.sleep(2000); catch (InterruptedException e) e.printStackTrace();jta1.append("After time slice " + timeslice + "n");try Thread.sleep(1000); catch (InterruptedException e) e.printStackTrace();if(Integer.parseInt(timesli

41、ce) = 1) jta1.append("n");jta1.append("n");jta1.append("n");jta1.append("ED1n");if(Integer.parseInt(timeslice) = 2) jta1.append("n");jta1.append("n");jta1.append(" EA1n");jta1.append("ED1 ED2n");if(Integer.parseInt(times

42、lice) = 3) jta1.append("n");jta1.append(" MA1n");jta1.append(" EA1 EA2n");jta1.append("ED1 ED2 ED3n");if(Integer.parseInt(timeslice) = 4) jta1.append(" NL1n");jta1.append(" MA1 MA2n");jta1.append(" EA1 EA2 EA3n");jta1.append("

43、;ED1 ED2 ED3 ED4n");if(Integer.parseInt(timeslice) = 5) jta1.append(" NL1 NL2n");jta1.append(" MA1 MA2 MA3n");jta1.append(" EA1 EA2 EA3 EA4n");jta1.append("ED1 ED2 ED3 ED4 ED5n");if(Integer.parseInt(timeslice) = 6) jta1.append(" NL1 NL2 NL3n");j

44、ta1.append(" MA1 MA2 MA3 MA4n");jta1.append(" EA1 EA2 EA3 EA4 EA5n");jta1.append("ED1 ED2 ED3 ED4 ED5n");if(Integer.parseInt(timeslice) = 7) jta1.append(" NL1 NL2 NL3 NL4n");jta1.append(" MA1 MA2 MA3 MA4 MA5n");jta1.append(" EA1 EA2 EA3 EA4 EA5n");jta1.append("ED1 ED2 ED3 ED4 ED5n");

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论