概念
旧的理念: ISA ->内部组件的策略问题
实际的理念:设计最棒的性能所花费的费用,电力,能量等。其中包含了ISA,Micro- Architecture,Hardware。
延迟(Latency-time)和带宽(Bandwidth-rate)
-
延迟就是从开始到达目的地的时间,涉及Response time,execution time。
-
带宽就是在特定时间里请求/任务完成的速率。提高处理器,内存硬盘等。
-
Throughput : 吞吐量 一秒钟、一分钟或一小时内的throughput
-
延迟和吞吐量是单位时间内成功传输的数量
晶体管和导线的最小尺寸
- 1971年:晶体管或导线的最小尺寸为10微米 (μm)。
- 2017年:这一尺寸缩小到了0.016微米。
- 晶体管二次方缩减
- 晶体管性能线扩展
- 线路延迟么有提高
集成密度的增长
- 集成密度(即单位面积内可容纳的晶体管数量)按平方比例增加。
- 晶体管数量的增长也是按平方比例,这使得从4位到64位微处理器的快速发展成为可能,以及多核处理器、更宽的SIMD(单指令多数据)单元、大缓存和许多ILP(指令级并行)技术的发展。
晶体管性能的增长
- 晶体管性能(如开关速度)按线性比例提高。
导线延迟的问题
- 尽管导线变短,但单位长度的电阻和电容并没有显著改善。
- 这导致导线延迟没有得到相应的改善,尽管理论上导线变短应该减少信号传输时间。
Amdahl’s Law
- 性能提高(加速比)受限于没有提高的部分
- 通过旧执行时间可以算出新的执行时间: Execution time(new) = Execution time(old) * (1 - Fraction(enhanced) + Fractionenhanced/Speedup(enhanced))
1 - Fraction(enhanced):这部分表示性能没有得到提升的部分所占的比例。如果Fraction(enhanced)是0.3,那么1 - 0.3 = 0.7,表示有70%的执行时间不会因为性能提升而改变。 2 - Fraction(enhanced)/Speedup(enhanced):这部分表示性能得到提升的部分所占的比例,并且考虑了提升后的速度。如果性能提升使得速度翻倍(Speedup(enhanced)为2),那么性能提升的部分将减少一半的执行时间。
3 - Speedup(overall): 1/((1-Fractionenhanced) + Fractionenhanced/SpeedUpenhanced)
- 加速比: Performancenew/Performanceold = Execution time(old) / Execution time(new) (完成特定任务所需的总时间)
- 加速比 < 1: 新系统或新算法的执行时间比旧系统或旧算法的执行时间要长,即性能没有提升,反而可能下降了。
- 加速比 = 1: 新系统或新算法的执行时间比旧系统或旧算法的执行时间相同,即性能没有变化。
- 加速比 > 1: 新系统或新算法的执行时间比旧系统或旧算法的执行时间相同,即性能得到提升。
- SpeedUp = 1/(1-f)+f/s (Fraction enhanced) / Speedup(Enhanced)
性能Performance
-
CPUtime = 处理器时钟周期 一个程序* 每个时钟周期的时间
-
CPUtime = 处理器时钟周期 一个程序 /
-
CPI(Cycles per instruction) = 处理器时钟周期 一个程序 / 指令数量
-
CPU(ccfap) = IC * CPI (指令数量*每个指令的周期) IC:反映了CPU在每个时钟周期内能够并行执行的指令数量。
-
CPUtime = IC * CPI * CT(指令数量每个指令的周期1秒钟内时钟周期的数量)
时钟周期(CPU clock cycle)
-
处理速度: 时钟频率越高,CPU每秒钟内可以执行的时钟周期数量越多,理论上速度越快
-
指令执行: 时钟周期长度影响了执行指令所需的时间。较短的时钟周期意味着可以在较短时间内完成更多的指令。
-
数据吞吐量: 较短的时钟周期可以提高数据吞吐率,因为可以在单位时间内处理更多的数据。
-
时钟频率较高的CPU通常消耗更多的能量,并产生更多的热量。因此,时钟周期的长度也影响了CPU的功耗和散热需求。
-
在设计CPU时,需要在性能和功耗之间找到平衡点。较长的时钟周期可以降低功耗,但会牺牲处理速度;而较短的时钟周期可以提高性能,但会增加能耗。
提高CPU时间
- 减少IC指令数量,通过好的代码、算法。
- 减少CPI
- 提高IPC,通过设计能够同时执行多条指令的处理器架构,可以提高每个时钟周期内完成的工作量。这通常涉及到指令级并行性,即在单个时钟周期内执行多条指令的能力。
- 优秀的架构设计, 缓存(Caches):使用多级缓存系统可以减少访问主内存的时间,因为缓存通常比主内存更快。当处理器需要的数据已经在缓存中时,它可以避免访问较慢的内存,从而减少CPI。 分支预测(Branch Prediction):分支预测器可以预测程序中的分支指令(如if语句)的结果,从而提前加载下一条指令,减少因分支指令导致的延迟。 流水线(Pipelining):流水线技术允许处理器将指令执行过程分解为多个阶段,每个阶段可以并行处理不同的指令。这样可以在每个时钟周期内开始新的指令,而不是等待当前指令完成。 超标量(Superscalar):超标量处理器可以在一个时钟周期内发射(dispatch)和执行多条指令。这要求处理器有足够的执行单元来同时处理这些指令。
减少CT
您列出的这些点是提高处理器性能的不同策略,它们涉及到处理器设计的多个方面。以下是这些策略的详细解释:
更深的流水线(Deeper pipelining):
- 通过增加流水线的深度,处理器可以同时处理更多的指令的不同阶段。这意味着在任何给定时刻,处理器都在执行多个指令的不同部分,从而提高了吞吐量。
优秀的电路设计(Really good circuit design):
- 高质量的电路设计可以减少电路中的延迟,提高信号传输速度。这包括使用高速逻辑门、优化电路布局和减少不必要的电路复杂性。
技术缩放(Technology scaling):
- 随着半导体制造技术的进步,晶体管的尺寸可以变得更小,这允许在同样大小的芯片上集成更多的晶体管。技术缩放还可以降低功耗,提高处理器的能效比。
简化的微架构(Simple microarchitecture):
- 简化的微架构可以减少设计复杂性,提高处理器的可靠性和性能。这可能包括简化指令集架构(ISA),减少对指令级并行性(ILP)的激进追求,以及优化处理器的核心功能。
**简化的ISA(Instruction Set Architecture)**:一个简单的ISA可以减少指令的复杂性,使得处理器更容易实现和优化。
**不那么激进的ILP(Instruction Level Parallelism)**:虽然ILP是提高性能的关键,但过于复杂的并行性设计可能会导致设计和调试的困难。适度的ILP可以在性能和设计复杂性之间找到平衡。
算术平均数 (Arithmetic Mean)
- 用途:算术平均数用于组合运行时间。它是将所有时间值相加,然后除以时间值的数量。
- 公式:
- ( \text{Arithmetic Mean} = \frac{\sum_{i=1}^{n} \text{time}_i}{n} )
- 其中 ( \text{time}_i ) 是单个运行时间,( n ) 是时间值的数量。
调和平均数 (Harmonic Mean)
- 用途:调和平均数用于组合速率,例如指令每秒(IPC)。
- 公式:
- ( \text{Harmonic Mean} = \frac{n}{\sum_{i=1}^{n} \frac{1}{\text{rate}_i}} )
- 其中 ( \text{rate}_i ) 是单个速率,( n ) 是速率值的数量。
- 特点:调和平均数首先将速率转换为时间(通过取倒数),然后计算时间的平均数,最后再转换回速率。
调和平均数在处理速率或比率时特别有用,因为它考虑了所有速率值的倒数,这在某些情况下可以更好地反映整体性能。例如,在评估多个处理器的性能时,如果某些处理器的IPC较低,调和平均数可以给出一个更公平的比较。
在实际应用中,选择哪种平均数取决于数据的性质和分析的目的。算术平均数适用于大多数常规的平均值计算,而调和平均数则适用于处理速率或比率的场合。
- 性能比大概遵守对数的正态分布
功耗与电能与电容器
功耗: Energy/second。
电容器充放电: 0.5CV^2。
能效(Power Efficiency): 设备或系统在执行特定任务时消耗能量的效率。在电子设备和计算机系统中,能效是一个重要的考量因素,因为它直接关系到能源消耗、成本和环境影响。
能量损耗: 动态+静态损耗
- Power lost from charging/discharging capacitive loads
- Power lost from leakage
Power Wall
-
Power Consumption Power = Dynamic power + Static power = ACV^2f+Vleak
-
Dynamic Power (电容充放电) Power lost from charging/discharging capacitive loads
-
DynP = ACV^2f
-
Static Power
- Power lost from leakage(漏电)
- StatP = Vlleak
-
Frequency and voltage
- V: transistors supply voltage
- V(th): threshold voltage
- a: 实验得到的常数
-
Leakage current:
- Ileak = Isub+ Iox
减少功耗
空闲时不做无用功(Do nothing well)
DVFS 允许处理器根据当前的工作负载动态调整其工作频率和电压。在负载较低时降低频率和电压可以显著减少功耗,而当需要更多计算能力时,可以提高频率和电压。
DRAM和磁盘的低功耗状态。
关闭核心(Turning off cores):在多核处理器中,可以根据当前的工作负载关闭一些核心。这被称为核心关闭或核心停车。通过减少活跃核心的数量,可以降低处理器的总体功耗。
集成电路成本
Integrated circuit
Cost of integrated circuit = Cost of die + Cost of testing die + Cost of packaging and final test
Cost of die = Cost of wafer / Dies per wafer * Die yield
集成电路设计在流片阶段的成本,即Die per Wafer(每片晶圆的芯片数量),是由多个因素决定的。这些因素包括晶圆的尺寸、工艺节点、芯片设计的复杂性、晶圆厂的生产效率以及流片方式等。以下是这些因素对Die per Wafer的影响:
- 晶圆尺寸
晶圆的直径越大,其面积越大,能够切割出的芯片数量也就越多。例如,300mm(12英寸)晶圆相比200mm(8英寸)晶圆可以产出更多的芯片。但是,大晶圆的生产需要更先进的设备和更高的制造精度,这也会影响成本。
- 工艺节点
工艺节点越小,意味着在相同面积的晶圆上可以集成更多的晶体管,从而在每个Die上制造更多的功能。这样,即使晶圆尺寸不变,每片晶圆上可以产出的芯片数量也会增加。但是,更小的工艺节点通常意味着更高的制造成本和更复杂的生产流程。
- 芯片设计的复杂性
芯片设计的复杂性也会影响Die per Wafer。设计越复杂,单个芯片的面积可能越大,这意味着在同样尺寸的晶圆上能够切割出的芯片数量会减少。相反,简单的设计可以在晶圆上放置更多的芯片。
- 生产效率
晶圆厂的生产效率,包括设备的运行效率和工艺流程的优化,也会影响Die per Wafer。高效的生产可以减少浪费,提高晶圆的利用率,从而增加每片晶圆上的芯片数量。
- 流片方式
流片方式,如Full Mask和MPW(Multi Project Wafer),也会影响Die per Wafer。Full Mask方式通常用于大批量生产,可以优化Die的布局以最大化晶圆的使用效率。而MPW方式则是多个设计共享一个晶圆,可能会牺牲一些效率来适应不同设计的需要。
总结
Die per Wafer是衡量集成电路生产效率和成本效益的一个重要指标。设计公司和晶圆厂需要综合考虑上述因素,通过优化设计、提高生产效率和合理选择工艺节点等方式,来最大化每片晶圆上的芯片数量,从而降低单位芯片的成本。同时,政府的政策支持和补贴也可以帮助降低流片成本,促进集成电路产业的发展。