Computer Architecture Readings - Princeton - Review/Superscalar/VLIW

ELE/COS 475 Computer Architecture


计算机架构在不断变化,有同时来自门电路技术改进以及软件需求。计算机体系结构主要研究中间三层:ISA,微架构,RTL。下面开始的门电路/逻辑电路属于更底层的硬件层,而上面则属于软件层。

Pasted-Image-20231225103940.png

ISA和Microarch之间的差别,对于软件开发者只需要关注到ISA这层就行,而MA层则是由芯片设计者来决定如何高效地实现ISA这层语义。

Architecture vs. Microarchitecture “Architecture”/Instruction Set Architecture:

Microarchitecture/Organization:

ISA差异很大的原因有下面这些

Technology Influenced ISA

Application Influenced ISA


顺序处理器的性能变化,RISC出现在1986年,2006年开始放弃在单核上做改进转向多核。

Pasted-Image-20231225103933.png

现代处理器需要考虑的事情非常多:指令/数据/线程级别并行,超长流水,内存和缓存技术

Pasted-Image-20231225104046.png

指令中几种阻碍深流水线的因素:


几种常见/可预测的内存访问模式,可以看到都是满足时间/空间局部性的:获取指令,堆栈访问,向量/标量化数据的访问。

Pasted-Image-20231225104051.png

可视化地观察时间/空间局部性

Pasted-Image-20231225103816.png

Cache几种Missing分类:3C, Compulsory(第一次访问), Capacity(容量不够造成的淘汰), Conflict(冲突造成的淘汰, 实际上容量是足够的)

Pasted-Image-20231225103817.png

Cache设计上的权衡:N-way, Block Cache, Cache Size. Block Cache在64, N-way上越大越好,Cache Size越大越好。

N-way上, 1-way的访问时间是最短的,但是2/4/8时间其实差别不大很大,但是1-way的miss rate却非常高,所以理论上选择8-way是应该是更好的选择。

Pasted-Image-20231225103711.png

Pasted-Image-20231225103708.png

Cache Block Size Pros & Cons: 好处就是一次获取数据更多带宽更大,而坏处就是如果数据没有完全访问的话那么就相当于浪费带宽,而且更大的Block Size会导致更少的cache items, 冲突率更大。从下图可以看到几乎Block Size = 64 是个最优值,不过也不好说是不是软件在优化上就使用了block size = 64这个事实。

Pasted-Image-20231225104356.png

Cache Size有个法则就是:Cache Size翻倍, miss rate降低30%. (1-1/(2^0.5))

Pasted-Image-20231225104403.png


VLIW要求将多条操作打包在一个指令里面,并且操作之间是相互独立的:使用不同的计算/控制单元,不存在数据之间的依赖。从PPT里面来看,每个slot里面还有具体的cycle latency要求,看起来这个对于编译器的要求非常高。

Pasted-Image-20231225103339.png

实际上VLIW问题是比较多的(一些点没有看懂):

VLIW Compiler Responsibilities

Problems with “Classic” VLIW