Qua*_*fan 3 cpu process computer-architecture
增加每周期指令或增加周期计数都是处理器制造商的有效设计选择。我理解理论,但如果我有一些现实生活中的例子会更清楚。
那么,谁能给我一些可以使这两种设计选择都受益的例子?比如哪种应用程序/类型的应用程序/流程利用了更高的 IPC 计数,以及哪个利用了更高的循环计数。
我实际上已经设计了几个处理器(很多年前)并且在权衡方面有一些经验。
增加每个周期的指令(或者,更可能的是,减少每个指令的周期) 你通常不得不“抛出硬件”来解决这个问题——添加更多的门、锁存器和多路复用器。超过某个点(大约十年前通过),您必须“流水线化”并同时处理多个指令。这种复杂性的增加不仅推高了基本成本(因为芯片的成本与其占用的面积有关),还增加了错误通过初始设计审查并导致必须使用的坏芯片的可能性。被“重播”——一项重大的成本和进度计划。此外,复杂性的增加会增加负载,以至于在没有更多硬件的情况下,周期的长度实际上会增加。您可能会遇到添加硬件会减慢速度的情况。(事实上,我在一个案例中看到了这种情况。)
此外,“流水线”可能会遇到流水线因频繁(和意外)分支和其他此类问题而“中断”的情况,从而导致处理器缓慢爬行。因此,可以有效地完成多少工作是有限的。
要加快单个周期,您需要执行以下三件事之一:
所以这是很多权衡,有点像穿越雷区的踢踏舞。
增加 IPC 需要更多的工程努力,而不是简单地增加时钟频率。例如,流水线、高速缓存、多核——总之被引入以增加 IPC——变得非常复杂并且需要许多晶体管。
尽管最大时钟频率受到给定设计关键路径长度的限制,但如果幸运的话,您可以在不进行任何重构的情况下提高时钟频率。即使您必须减少路径长度,变化也不如上述技术所要求的那么深刻。
然而,对于当前的处理器,时钟频率已经被推到了经济极限。在这里,速度提升完全源于 IPC 的增加。
从程序员的角度来看,到目前为止,这是一个问题,因为他必须根据计算机架构师创建的新系统调整他的编程风格。例如,为了利用高 IPC 值,并发编程将变得越来越不可避免。
归档时间: |
|
查看次数: |
2649 次 |
最近记录: |