这些计算机领域的重要定律你都清楚吗?

简介: 这些计算机领域的重要定律你都清楚吗?

0 写在前面

🔥接触人工智能领域,除了要理性地学习各种算法,还要对行业内的基本发展历程和规律有感性的认识和了解,才能对领域有更深刻的理解(和外行科普也有得聊),本文主要罗列计算机领域的几条重要定律。

image.png

1 摩尔定律(Moore’s Law)

Moore’s Law指IT产业的硬件或设备生产商的技术每十八个月翻一番,或者说相关技术涉及的产品每十八个月价格下降一半。与之对应,Reverse Moore’s Law指一个IT公司如果今天和十八个月前卖掉同样多的、同样的产品,它的营业额就要降一半。


Moore’s Law& Reverse Moore’s Law告知所有IT行业:发展速度必须至少与摩尔定律的预测速度持平,否则整个企业就会面临亏损。这也使得IT行业与石油工业、飞机制造业等量变工业不同,IT行业必须在预测周期内寻求革命性和创新性的技术突破,否则优胜劣汰。因此两大定律促成了IT行业科技的不断进步,也避免了垄断的产生,为新兴企业的生存和发展提供了可能。


Moore’s Law& Reverse Moore’s Law是整个人类社会发展速度在IT行业的反映,是指导公司和科研机构制定研究计划和市场策略的重要指导。


目前Moore’s Law& Reverse Moore’s Law仍然有效,考虑如果其预测周期放缓或是失效,那么将对所有依赖于更高级芯片的行业(如AI行业)的发展换代都造成空前影响

2 阿姆达尔定律(Amdahl’s Law)

Amdahl’s Law指出:系统中对某一部件采用更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率,或所占总执行时间的比例。


若系统由若干个单项组成,每项占比 a i a_i a

i


,每个单项可提速 k i k_i k

i


倍(对于不可提速的组件,其 k i = 1 k_i=1 k

i


=1),则整个系统的加速比为:

S = 1 ∑ i a i k i S=\frac{1}{\sum_i{\frac{a_i}{k_i}}}

S=

i


 

k

i


a

i



1



例2.1 根据SPEC CPU2000标准,其包含25% loads、10% stores、11% branches、2% jumps、52% R-type。现对该CPU进行优化,优化前后见例表,问:

(1) CPU优化后的整体提速比为多少;

(2) 优化后的平均CPI为多少。


指令 优化前耗时/时钟周期数 优化后耗时/时钟周期数

beq, j 5 3

R-Type, sw, addi 5 4

lw 5 5

(1) 由Amdahl’s Law知,提速比为:

S = 1 ∑ i a i k i = 1 ( 25 % 5 5 + 10 % 5 4 + 11 % 5 3 + 2 % 5 3 + 52 % 5 4 ) = 1.21359 S=\frac{1}{\sum_i{\frac{a_i}{k_i}}}=\frac{1}{\left( \frac{25\%}{\frac{5}{5}}+\frac{10\%}{\frac{5}{4}}+\frac{11\%}{\frac{5}{3}}+\frac{2\%}{\frac{5}{3}}+\frac{52\%}{\frac{5}{4}} \right)}=1.21359

S=

i


 

k

i


a

i



1


=

(

5

5


25%


+

4

5


10%


+

3

5


11%


+

3

5


2%


+

4

5


52%


)

1


=1.21359


(2) 平均CPI为:

A v r C P I = ( 11 % + 2 % ) × 3 + ( 52 % + 10 % ) × 4 + 25 % × 5 = 4.12 AvrCPI=\left( 11\%+2\% \right) \times 3+\left( 52\%+10\% \right) \times 4+25\%\times 5=4.12

AvrCPI=(11%+2%)×3+(52%+10%)×4+25%×5=4.12

3 软硬件互易性原理

软硬件互易性原理又称为软硬件逻辑功能等效性,是指计算机系统的某功能可以由硬件实现也可以由软件实现。


image.png

如图所示,对任何一个真实的、技术可实现的计算机系统,都需要有最基础的一薄层硬件来实现,这一最基础的硬件实现了图灵机模型的要求。图灵机等价硬件之上大部分都是各种硬件加速手段。图中说明了软硬件之间的关系:


(1) 硬件和软件互相依存


硬件是软件赖以工作的物质基础(图灵机等价硬件部分),软件的正常工作是硬件充分发挥作用的唯一途径。


(2) 硬件和软件无严格界线


随着计算机技术的发展,在许多情况下计算机的某些功能既可以由硬件实现,也可以由软件来实现。硬件就是数字逻辑电路的组合,软件通过编译成机器代码即0-1电平序列作为硬件的输入,使硬件实现特定的功能,而这个过程也可以不借助软件而直接通过数字电路实现。因此,硬件与软件在一定意义上说没有绝对严格的界面,是逻辑等效的。例如MP3既可以用软件的播放器播放,也可用专用的音频解码芯片解码实现播放。


(3) 硬件和软件协同发展


计算机软件随硬件技术的迅速发展而发展,而软件的不断发展与完善又促进硬件的更新,两者密切地交织发展,缺一不可。


对一个具体的计算机系统而言,软硬件的分割线在哪里,主要取决于性能和成本之间的折衷。由于软件实现功能需要经过编译,因此使用软件比硬件效率低,但随着技术发展,软件完全可以通过固化为硬件(如实现特定功能的芯片)来提升系统的性能,这样避免了编译环节,使硬件电路可以直接读取指令。因此如果要求高性能,那么硬件加速的部件可以多些,相应成本也不可避免会增加;如果要求低成本,那么图中曲线可以下移,即用软件完成大部分处理,但性能会有所下降。

4 抽象与3Y原则

下图给出了一个电子计算机系统的抽象层次,其中每个层次都列举了典型模块。抽象的意义在于便于不同类型的用户,对计算机进行使用和开发。例如普通用户可以通过计算机上网,而不用考虑电子波动;硬件工程师不用关注应用软件设计等。


image.png

最底层的抽象是物理层——电子运动:电子的行为由量子力学和麦克斯韦方程描述;基于电子运动的物理规律,组成晶体管真空管等电子器件,这些器件都有明确定义的称为端子的外部连接点,可以建立每个端子上的电压电流关系模型。


image.png

模拟电路抽象层由器件组成的放大器等组件构成;数字电路则将电压控制在离散的范围内,以便表示0-1二值;通过逻辑门等数字电路可以进行逻辑功能设计,构造更复杂的功能结构,例如加法器或存储器。


image.png

体系结构层描述了程序员观点的计算机抽象,其定义了一套指令系统和寄存器,程序员可以使用这些指令和寄存器;微体系结构将逻辑层的元素组合在一起实现体系结构中定义的指令,其是逻辑和体系结构的沟通桥梁。另外,一个特定的体系结构可以有不同的微结构实现方式,以便取得在价格、性能和功耗等方面的不同折中。例如Intel Core i7、In­tel 80486和AMD Athlon等都是x86体系结构的三种不同的微结构实现。


image.png

除抽象外,设计者还使用三条准则来处理系统复杂性,这些原则对软硬件设计都通用。


①层次化:将系统划分为若干模块,然后更进一步划分每个模块直到这些模块可以很容易理解;


②模块化:所有模块有定义好的功能和接口,以便它们之间可以很容易地相互连接而不会产生意想不到的副作用;


③规整化:在模块之间寻求一致,通用模块可以重复使用多次,以便减少设计不同模块的数量。

5 局部性原理

时间局部性原理:当CPU访问一个存储位置时,大概率在不久的将来会再次访问同一位置。程序的循环结构和过程调用体现了时间局部性。


空间局部性原理:当CPU访问一个存储位置时,大概率在不久的将来会访问该位置附近的存储单元,因为计算机中的数据通常被连续存放于内存。程序的顺序结构体现了空间局部性。



目录
相关文章
|
10月前
|
数据采集 物联网 芯片
RFID运动采集系统实现争分夺秒的精准计时
RFID技术在运动计时中实现精准“争分夺秒”,广泛应用于马拉松、自行车、游泳等赛事,具备高精度、高效、全自动数据采集等特点,极大提升赛事组织效率与成绩准确性。
|
存储 监控 NoSQL
Redis大Key问题如何排查?如何解决?
Redis大Key问题如何排查?如何解决?
862 0
Redis大Key问题如何排查?如何解决?
|
存储 NoSQL 算法
面试官:Redis 大 key 多 key,你要怎么拆分?
本文介绍了在Redis中处理大key和多key的几种策略,包括将大value拆分成多个key-value对、对包含大量元素的数据结构进行分桶处理、通过Hash结构减少key数量,以及如何合理拆分大Bitmap或布隆过滤器以提高效率和减少内存占用。这些方法有助于优化Redis性能,特别是在数据量庞大的场景下。
面试官:Redis 大 key 多 key,你要怎么拆分?
|
Java Spring
在Spring Boot中配置Thymeleaf的模板路径
在Spring Boot中配置Thymeleaf的模板路径
1290 0
|
jenkins 持续交付
使用命令行操作svn
使用命令行操作svn
1322 119
|
存储 分布式计算 运维
钱大妈数据中台建设最佳实践
钱大妈数据中台建设最佳实践
10323 120
钱大妈数据中台建设最佳实践
|
存储 NoSQL Redis
2)Redis 的键值对长什么样子,又是怎么存储的?
2)Redis 的键值对长什么样子,又是怎么存储的?
420 0
|
NoSQL 算法 关系型数据库
Redis宕机了,如何恢复数据
Redis持久化是为了防止服务宕机导致内存中数据丢失。主要有两种策略:RDB(快照)和AOF(仅追加文件)。RDB在指定时间间隔生成数据集快照,保存到磁盘,通过fork子进程实现,避免阻塞主线程,但可能丢失部分数据。AOF记录每次写操作,实时写回磁盘,提供秒级数据丢失保障,可通过不同同步策略平衡性能和安全性。AOF文件可定期重写以优化空间效率。混合使用RDB和AOF能在数据安全性和恢复速度上找到平衡。
473 1
|
SQL 弹性计算 关系型数据库
TiDB的主要特点:深入了解其技术特性
【2月更文挑战第25天】TiDB作为一款高性能、分布式的关系型数据库,其独特的技术特性使其在数据处理领域脱颖而出。本文将深入探讨TiDB的主要特点,包括其分布式架构、MySQL协议兼容性、弹性伸缩能力、强一致性保证以及丰富的SQL功能等,帮助读者更全面地了解这一优秀的数据库产品
1440 6
|
存储 监控 NoSQL
Redis 架构深入:主从复制、哨兵到集群
大家好,我是小康,今天我们来聊下 Redis 的几种架构模式,包括主从复制、哨兵和集群模式。
Redis 架构深入:主从复制、哨兵到集群