目录

  • 1 Computer Architecture Course Overview
    • 1.1 Basic Information
    • 1.2 Computer Architecture  Overview
    • 1.3 Learning Resource
  • 2 Basic Concepts of Computer Architecture
    • 2.1 Preview Contents
    • 2.2 计算机系统设计的内容
    • 2.3 定量分析技术
      • 2.3.1 加快经常性事件
      • 2.3.2 Amdahl定律
      • 2.3.3 CPU性能公式
      • 2.3.4 程序局部性原理
    • 2.4 计算机系统的性能评价
    • 2.5 对冯·诺依曼结构的改进
    • 2.6 提高并行性的技术途径
    • 2.7 Test
  • 3 Instruction system architecture
    • 3.1 Preview Contents
    • 3.2 Instruction system structure classification
    • 3.3 Addressing mode
    • 3.4 Functional design of instruction system
    • 3.5 Operand type and size
    • 3.6 Design of instruction format
    • 3.7 MIPS instruction set structure
    • 3.8 Test
  • 4 Pipeline Technology
    • 4.1 Preview Contents
    • 4.2 Basic concepts of pipeline
    • 4.3 Pipeline classification
    • 4.4 Pipeline performance index(1)
    • 4.5 Pipeline performance index(2)
    • 4.6 Nonlinear pipeline scheduling
    • 4.7 Pipeline hazards
    • 4.8 Test(1)
    • 4.9 Pipeline collision(1)
    • 4.10 Pipeline collision(2)
    • 4.11 Pipeline implementation(1,2)
    • 4.12 Test(2)
  • 5 Vector processors
    • 5.1 向量处理方式
    • 5.2 向量处理机的结构
    • 5.3 提高向量处理机性能的主要技术
    • 5.4 向量处理机性能评价
    • 5.5 向量处理机实例
    • 5.6 Test
  • 6 指令级并行(ILP)及开发-硬件方法
    • 6.1 指令级并行的概念
    • 6.2 指令的动态调度
    • 6.3 动态分支预测技术
    • 6.4 多指令流出技术
    • 6.5 Test
  • 7 Storage system
    • 7.1 Preview Contents
    • 7.2 Storage system hierarchy
    • 7.3 Cache基本知识(1)
    • 7.4 Cache基本知识(2)
    • 7.5 Cache基本知识(3)
    • 7.6 Cache性能分析
    • 7.7 Test(1)
    • 7.8 降低Cache不命中率(1)
    • 7.9 降低Cache不命中率(2)
    • 7.10 减少Cache不命中开销
    • 7.11 Test(2)
    • 7.12 减少命中时间
    • 7.13 并行主存系统
    • 7.14 虚拟存储器
    • 7.15 Test(3)
  • 8 Input/output system
    • 8.1 Preview Contents
    • 8.2 Basic concepts of I / O system
    • 8.3 RAID
    • 8.4 Bus
    • 8.5 Test(1)
    • 8.6 Channel processor
    • 8.7 I/O and OS
    • 8.8 Test(2)
  • 9 互连网络
    • 9.1 Preview Contents
    • 9.2 互连网络的基本概念
    • 9.3 互连网络的结构参数与性能指标
    • 9.4 互连函数
    • 9.5 Test(1)
    • 9.6 静态互连网络
    • 9.7 动态互连网络
    • 9.8 消息传递机制
    • 9.9 Test(2)
  • 10 多处理机
    • 10.1 Preview Contents
    • 10.2 多处理机概念
    • 10.3 对称式共享存储器
    • 10.4 分布式共享存储器
    • 10.5 Test(1)
    • 10.6 同步
    • 10.7 同时多线程
    • 10.8 大规模并行处理机
    • 10.9 多处理机实例
    • 10.10 Test(2)
  • 11 Parallel Processing with Multi-core
    • 11.1 PRAM and Parallel Computing
    • 11.2 Test
    • 11.3 Part I: Introduction to Parallel Processing with Multi-core
    • 11.4 Part II: Introduction to Parallel Processing with Multi-core
    • 11.5 Part III: Introduction to Parallel Processing with Multi-core
    • 11.6 Part IV: Introduction to Parallel Processing with Multi-core
    • 11.7 Part V: Sorting
    • 11.8 Exercises
    • 11.9 Lab
    • 11.10 Quizzes
  • 12 计算机系统结构未来发展趋势
    • 12.1 计算机系统结构挑战及趋势
    • 12.2 后摩尔时代处理器芯片体系结构的变化
    • 12.3 计算机系统结构趋势-存储
    • 12.4 计算机系统结构课程总结
    • 12.5 部分习题
    • 12.6 Test
  • 13 课程实验
    • 13.1 实验平台说明
    • 13.2 实验一:MIPS指令系统和MIPS体系结构
    • 13.3 实验二:流水线及流水线中的冲突
    • 13.4 实验三:指令调度和延迟分支
    • 13.5 实验四:Cache性能分析
    • 13.6 实验五:Tomasulo算法
    • 13.7 实验六:再定序缓冲(ROB)工作原理
    • 13.8 实验七:多Cache一致性——监听协议
    • 13.9 实验八:多Cache一致性——目录协议
实验四:Cache性能分析

A.4 实验四  Cache性能分析

A.4.1 实验目的

1.    加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。

2.    掌握Cache容量、相联度、块大小对Cache性能的影响。

3.    掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。

4.    理解LRU与随机法的基本思想以及它们对Cache性能的影响。

A.4.2实验平台

实验平台采用Cache模拟器MyCache

环境的建立:见A.0

A.4.3 实验内容及步骤

首先要掌握MyCache模拟器的使用方法(见A.4.4节)。

A.4.3.1 Cache容量对不命中率的影响

1.        启动MyCache

2.        用鼠标点击“复位”按钮,把各参数设置为默认值。

3.        选择一个地址流文件。方法:选择“访问地址”→“地址流文件”选项,然后点击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。

4.        选择不同的Cache容量,包括:2KB4KB8KB16KB32KB64KB128KB256KB,分别执行模拟器(单击“执行到底”按钮即可执行),然后在表A.4.1中记录各种情况下的不命中率。

A.4.1 不同容量下Cache的不命中率                                   

 

Cache容量(KB

 
 

2

 
 

4

 
 

8

 
 

16

 
 

32

 
 

64

 
 

128

 
 

256

 
 

不命中率

 








 地址流文件名:                    

5.        以容量为横坐标,画出不命中率随Cache容量变化而变化的曲线。并指明地址流文件名。

6.        根据该模拟结果,你能得出什么结论?

A.4.3.2 相联度对不命中率的影响

1.      用鼠标单击“复位”按钮,把各参数设置为默认值。此时的Cache容量为64KB

2.      选择一个地址流文件。方法:选择“访问地址”→“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。

3.      选择不同的Cache相联度,包括:直接映象,2路,4路,8路,16路,32路,分别执行模拟器(单击“执行到底”按钮即可执行),然后在表A.4.2中记录各种情况下的不命中率。

A.4.2 容量为64KB时,不同相联度下Cache的不命中率                           

 

相联度

 
 

1

 
 

2

 
 

4

 
 

8

 
 

16

 
 

32

 
 

不命中率

 






地址流文件名:                    

 4.      Cache的容量设置为256KB,重复(3)的工作,并填写表A.4.3

 A.4.3 容量为256KB时,不同相联度下Cache的不命中率                       

 

相联度

 
 

1

 
 

2

 
 

4

 

 

8

 
 

16

 
 

32

 
 

不命中率

 







 地址流文件名:                    

 5.      以相联度为横坐标,画出在64KB256KB的情况下不命中率随Cache相联度变化而变化的曲线。并指明地址流文件名。

6.      根据该模拟结果,你能得出什么结论?

A.4.3.3 Cache块大小对不命中率的影响

1.      用鼠标单击“复位”按钮,把各参数设置为默认值。

2.      选择一个地址流文件。方法:选择“访问地址”→“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。

3.      选择不同的Cache块大小,包括:16B32B64B128B256B对于Cache的各种容量,包括:2KB8KB32KB128KB512KB,分别执行模拟器(单击“执行到底”按钮即可执行),然后在表A.4.4中记录各种情况下的不命中率。 

A.4.4 各种块大小情况下Cache的不命中率                                                                        

 

块大小

 

B

 
 

Cache容量(KB

 
 

2

 
 

8

 
 

32

 
 

128

 
 

512

 
 

16

 





 

32

 





 

64

 





 

128

 





 

256

 





 

地址流文件名:                    

4.      分析Cache块大小对不命中率的影响。

A.4.3.4 替换算法对不命中率的影响

1.      用鼠标单击“复位”按钮,把各参数设置为默认值。

2.      选择一个地址流文件。方法:选择“访问地址”→“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。

3.      对于不同的替换算法、Cache容量和相联度,分别执行模拟器(单击“执行到底”按钮即可执行),然后在表A.4.5中记录各种情况下的不命中率。

A.4.5  LRU和随机替换法的不命中率的比较                                                                            

 

Cache

 

容量

 
 

   

 
 

2

 
 

4

 
 

8

 
 

LRU

 
 

随机算法

 
 

LRU

 
 

随机算法

 
 

LRU

 
 

随机算法

 
 

16KB

 






 

64KB

 






 

256KB

 






 

1MB

 






 

地址流文件名:                    

4.      分析不同的替换算法对Cache不命中率的影响。    

A.4.4  MyCache模拟器使用方法

1. 启动模拟器:用鼠标双击MyCache.exe

2. 系统会打开一个操作界面。该界面的左边为设置模拟参数区域,右边为模拟结果显示区域。如图A.4.1所示。

3. 可以设置的参数包括:是统一Cache还是分离CacheCache的容量,块大小,相联度,替换算法,预取策略,写策略,写不命中时的调块策略。可以直接从列表里选择。

4. 访问地址可以选择来自地址流文件,也可以选择手动输入。如果是前者,则可以通过点击“浏览”按钮,从模拟器所在文件夹下面的“地址流”文件夹中选取地址流文件(.din文件),然后进行执行。执行的方式可以是步进,也可以是一次执行到底。如果选择手动输入,就可以在“执行控制”区域中输入块地址,然后点击“访问”按钮。系统会在界面的右边显示访问类型、地址、块号以及块内地址。

5. 模拟结果包括:

1)访问总次数,总的不命中次数,总的不命中率;

2)读指令操作的次数,其不命中次数及其不命中率;

3)读数据操作的次数,其不命中次数及其不命中率;

4)写数据操作的次数,其不命中次数及其不命中率;

5)手动输入单次访问的相关信息。

          图A.4.1 MyCache模拟器的操作界面示意图