计算机体系结构

本文深入探讨了如何通过并行计算、减少工作量、使用缓存、优化及流水线技术来加速处理器运行速度。重点阐述了流水线在改善吞吐量而非延迟方面的优势,以及如何平衡流水线阶段以最大化性能。同时,介绍了RISC架构的基本概念,包括32位固定格式、内存操作、分支预测等,并对比了单周期与多周期CPU设计的区别及其在流水线技术中的应用。此外,文章还讨论了数据缓存的组织方式,如直接映射、多路关联映射和全关联映射,以及它们对缓存性能的影响。最后,提供了关于内存层次结构的四个关键问题,并阐述了如何通过增大块大小、提高关联度、使用虚拟缓存、伪关联和硬件预取等方法来优化缓存性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

course subject: how to make processor fast

  • parallelism
  • do less work
    • cache
    • optimization

pipelining lessons

  • 流水线不改善延迟(一个任务执行完成时间),改善吞吐,stage越多,可能吞吐越大
  • 流水线cycle受最慢stage限制
  • stage不平衡时制约加速(平衡:stage时间近似相等,每个ins时间相等)
  • 每个stage fill和drain的时间也会降低速度

typical RISC

  • 32位固定格式
  • 访存操作仅能load/store
  • 32个32位GPR(而CISC里面ax,bx负责结果相关;cx负责计数;ci,si负责指针)
  • 3address,reg,regarithmetic
  • 直接访存,base+displacement
  • simple branch conditions
  • delayed branch

单周期,多周期,流水线

  • 单周期的CPU会在一个时钟周期内完成所有的工作,既从指令取出,到得到结果,全部在一个时钟之内完成。(控制器一开始就产生所有控制信号发到所有阶段)
  • 多周期CPU的设计是将整个CPU的执行过程分成几个阶段,每个阶段用一个时钟去完成。不仅能提高CPU的工作频率,还为组成指令流水线提供了基础。(控制器只向活动的阶段发信号)
  • 在多周期CPU设计的基础上,利用各阶段电路间可并行执行的特点,让各个阶段的执行在时间上重叠起来,这种技术就是流水线技术。

data plane,control plane(控制器)

双端口ram

hazard

  • structural hazard:增加部件
  • data hazard:增加距离,转发,renaming
  • control hazard:pc计算提前,stall,delay

cpu performance
这里写图片描述

tomasulo

  • dynamic scheduling
  • -

precise interrupt

  • rob

cache
这里写图片描述

  • direct mapped:一组假如大小为8,12mod8得到set位置。相当于1路组相连
  • n-way set associative,将每一组里的路拉宽,在这些路里可以随意选取,路拉宽的,set就变扁了。
  • fully associative,set到最扁的时候,就变成1,即全相连。
  • 每个路称作line,line里面有tag,valid bit,以及block(数据块)
  • 从0开始的memory往n路组相连里面填的时候,block大小的放入set1的line1,接下来是set2line1,后面全填满了再是set1line2
  • 全相连因为没有索引所以速度是最慢的,但二级三级cache为了保证命中率一般采用全相连。

4 questions on memory hierarchy

  • where can a block be placed in the upper layer
  • how is a block found if it’s in the upper layer
  • which block should be replaced on a miss
  • what happens on a write

cache performance

  • 这里写图片描述
  • 这里写图片描述

4c

  • compulsory
  • capacity:即使在全相连的时候也会miss
  • conflict:在Nway set associate的cache中miss
  • coherence:在分布式中,一个cache影响其他cache

2:1cache rule
这里写图片描述

reduce misses rate

  • large block size:block size变大之后,可以减少miss率,因为一个块里面的东西更多了。
  • reduce via higher associativity:关联度变高之后,可以随意调节的也变多了,自然miss率降低
  • via a victim cache:进一步增加容忍度,增加一个buffer
  • via pseudo-associativity:暂时放在其他cache里面,伪关联
  • hardware prefetch:
  • software prefetch
    • binding
    • non-binding
  • compiler opt
    • merge arrays.两个int数组放到一个结构体中
    • loop interchange:改善空间locality
    • loop fusion:相同循环放到一起
    • blocking:数组太大,将其切块
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值