Java程序员需要了解的硬件知识

目录

什么是计算机?

CPU - 中央处理器

CPU分类

CPU的组成

CPU指令集

缓存行

缓存一致性协议

存储金字塔

什么是局部性原理?


什么是计算机?

计算机就是一个有着超高计算能力的时分系统计算器;能根据输入的指令对数据进行运算;

计算机最核心的单元部件是CPU,CPU的核心硬件是晶体管;

晶体管的组成元素是硅;硅来自于沙子 - 人类最牛逼的发现之一;

计算机始于冯·诺伊曼,其设计的架构体系如下图:

CPU - 中央处理器

CPU分类

CPU分为单核(1核1线程)、多核(4核4线程)、线程撕裂者(4核8线程);

CPU的组成

  • PC - Program Counter  指令计数器,寄存器的一种,记录当前正在执行的指令在内存中的位置
  • Registers - 寄存器,CPU中存在多个寄存器,用于记录计算时需要用到的数据
  • ALU - 计算&逻辑单元,CPU进行数据运算与逻辑运算的单元
  • CN - Control Unit 控制单元
  • MMU - Memory Management Unit
  • 多级缓存

CPU指令集

CPU指令集是平台相关的,Intel、AMD不同的厂商设计的CPU指令集完全不同;

指令乱序性:相邻的两条指令如果没有逻辑上的相互依赖是允许调换顺序执行的,这就是指令乱序;

那么如何避免指令乱序呢?

  • 内存屏障 - 个别cpu有通过指令原语实现(sfence、rfence、mfence)
  • 锁 - 未实现内存屏障原语的cpu则使用lock指令锁总线实现

缓存行

CPU一次性读取内存数据的基本单位;

工业实践 - 64Byte;

缓存一致性协议

MESI - 参考:https://www.cnblogs.com/z00377750/p/9180644.html

是硬件协议,只有个别cpu实现了

存储金字塔

存储金字塔 - 《深入理解计算机系统》

寄存器的读取速度是主存的100倍。

什么是局部性原理?

时间局部性 - 指令在一段时间内有多次读取同一块数据块的倾向;

空间局部性 - 程序很可能会用到当前正在使用数据的附近的数据;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值