[JVM]Java工程师要懂的硬件知识-前言

本文介绍了硬件工程师的杰作,包括Memory Unit、ALU、Control Unit和IO系统,强调了Java工程师理解硬件的重要性。文章探讨了CPU的逻辑组成,特别是Memory Unit中的缓存系统,指出其对多线程性能的影响,并提醒程序员注意硬件优化与开发效率的平衡。
摘要由CSDN通过智能技术生成

Mechanical Sympathy这个短语描述了一种车手对汽车天生的感觉,也是Martin Thompson大牛的博客标题。从并发编程网Disruptor的介绍中注意到这个短语,再去品位Martin对它的简短阐述’Hardware and software working together in harmony’的确很有道理。在对任何语言的深入学习研究中,总逃不过对底层硬件的了解与学习,很多语言的特性、行为在硬件的角度去观察就很容易解释了;同时在追求语言的更高性能的过程中,也要更多去了解硬件的知识,让软件更加匹配硬件的特性、更好利用硬件的优化才能获得更高的优化效果。

概述硬件工程师的杰作

今天互联网的繁荣是站在硬件工程师的伟大杰作之上的,使硬件更加高效的一个途径是提高硬件的运行速度,另外一个途径就是让可以任务并行起来,随之而来的就是缓存、并发、同步等一些列设计和优化。现代计算机的步特性加之这些优化使得软件系统在多线程的情况下常常出现背离程序直觉的情况。作为一个高级语言开发者了解硬件就是为去感受Mechanical Sympathy,去了解硬件工程师的用心良苦从而让软件与硬件更加匹配。

讲故事要从开头说,在很早很早以前有一位叫图灵的先生画了一个盒子,这个盒子就一直把人们圈到了现在,这就是图灵机模型。

Turing Machine

这个盒子有一条纸带和一个规则表格还有一个内部状态存储,当然还有一个用来读、写纸带的读写头。整个过程模拟了人类在算草纸进行运算的过程:在纸上写或擦除一个符号;将注意力从一个位置转移到另外一个位置。

言归正传虽然现代计算器体系还在这个圈圈之中,但是整体的结构已经变得极度复杂了。
下图是一个CPU的逻辑组成(物理上并不是都在CPU里),它作为整个计算机系统的大脑,负责着处理所有类型数据的运算工作(其实还有各式各样的协处理器帮忙),这也是软件工程师关注的计算机系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值