读《大话处理器》

处理器(也称CPU)在现实生活中可谓是随处可见,小到我们的手机,MP3,音响,大到冰箱,电视,电脑,空调,都离不开处理器。那么处理器到底是何方神圣,能这么强大?

处理器就好比一个人的大脑,为我们思考各种事情,以应对生活中的各种情况。处理器就是一个电子产品的大脑,为一个产品提供“思考”功能,让产品能够处理它所承担的任务。比如音响,它里面的处理器就是处理音频信号。

计算机和其他电子设备是靠着运行一条条的指令来完成任务的,这些指令就是在处理器中运行的。Inter的Ted Hoff做出了世界上第一款处理器4004,由2300个晶体管组成,运行频率108KHz,位宽4bit,他也因此获得1988年的计算机先驱奖。

人脑不仅可以计算,还可以记忆。但是处理器就不行了,它只能用来做计算,记忆的任务就交给了处理器的好兄弟存储器。当CPU做计算时,它会先把存储器里的数据提取到离自己最近的寄存器里面,只是暂存在里面,方便计算时的使用,寄存器是CPU的组成部分,是一种直接整合到CPU中的有限的高速访问速度的存储器,CPU访问寄存器的速度是最快的。那为什么我们不把数据都存储到寄存器中呢,因为寄存器是一种容量有限的存储器,并且非常小。因此只把一些计算机的指令等一些计算机频繁用到的数据存储在其中,来提高计算机的运行速度。

但是如果频繁的从存储器中提取数据的话,速度又会有所限制,为了提高计算机的运算速度呢,又开发了缓存。缓存其实是内存中高速缓存(cache),它之所以存在,是因为当CPU要频繁访问内存中的一些数据时,如果每次都从内存中去读,花费的时间会更多,因此在寄存器和内存之间有了缓存,把CPU要频繁访问的一些数据存储在缓冲中,这样效率就会更高,但需要注意的是,缓冲的大小也是很小的,不能存放大量的数据,并且缓存中存放的数据会因为CPU的访问而被替代,必须某个数据开始被CPU频繁访问,但后来不再频繁,那这个数据的空间会被其他访问频繁的数据所占据(那些数据会被暂时存储在缓存中是算法问题)。

缓存的大小也间接的决定了计算机的运行速度,所以评价一款CPU的性能除了频率,缓存也是很重要的指标。

说完了处理器和内存,再来说说计算机中同样重要的显卡吧。攒机的朋友都知道显卡对于游戏党的重要性。其实显卡是连接主机和显示器的桥梁,它的基本功能是把主机送来的图像数据处理成显示器认识的格式。在送到显示器形成图像。除了这个功能,现在的显卡主要还有两个功能,一是图像绘制,二是视屏解码。显卡内有一个处理器,叫做GPU(图形处理器),当CPU要画一个圆的时候,就给GPU发送一个命令,告诉这个圆的大小、位置、颜色等信息,GPU就自动把图画出来。图像绘制这是GPU的强项,CPU就放心的把这方面的任务交给了GPU。

关于计算机内部的通信借口,就说一个PCI总线吧。PCI(外部设备互联总线)是Intel提出的一种连接计算机主板和外部设备的总线标准。现在的PCI总线被它的升级版PCI Express取代。在pc中,显卡和网卡都是通过外接板卡接入到PCI-E插槽中,PCI-E是PCI的升级版,速率提高了很多。

CPU执行计算任务时都需要遵从一定的规范,程序在被执行前都需要先翻译为CPU可以理解的语言。这种规范或语言就是指令集(ISA,Instruction Set Architecture)。指令集分为复杂指令集CISC和精简指令集RISC,我们现在还在使用的最有名的CISC就是Intel的x86指令集。RISC阵营包括ARM,MIPS,POWER,DSP,基本上我们现在使用的嵌入式设备都是基于精简指令集的计算机。但是在计算机和服务器方面还是复杂指令集一家独大。

本书后面还有很多关于架构方面和代码优化的内容,关于代码优化方面后面在写,暂时就先记这么多。总结一下,看完这本书还是很有收获的,懂得了很多关于计算机内部的知识,之前就对计算机技术很感兴趣,一直想自己组装个电脑,想自己会修电脑,但是获取知识还是得慢慢努力啊。这些知识很是零碎,得自己慢慢搜集,慢慢积累。

时间: 2024-07-28 17:10:01

读《大话处理器》的相关文章

深入理解Java虚拟机到底是什么

摘自:http://blog.csdn.net/zhangjg_blog/article/details/20380971 什么是Java虚拟机 我们都知道Java程序必须在虚拟机上运行.那么虚拟机到底是什么呢?先看网上搜索到的比较靠谱的解释: 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的.Java虚拟机有自己完善的硬体架构,如处理器.堆栈.寄存器等,还具有相应的指令系统.JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的

(1) 深入理解Java虚拟机到底是什么?

好文转载:http://blog.csdn.net/zhangjg_blog/article/details/20380971 什么是Java虚拟机 作为一个Java程序员,我们每天都在写Java代码,我们写的代码都是在一个叫做Java虚拟机的东西上执行的.但是如果要问什么是虚拟机,恐怕很多人就会模棱两可了.在本文中,我会写下我对虚拟机的理解.因为能力所限,可能有些地方描述的不够欠当.如果你有不同的理解,欢迎交流. 我们都知道Java程序必须在虚拟机上运行.那么虚拟机到底是什么呢?先看网上搜索到

《深入理解Java虚拟机》读书笔记---第一章 走进Java

一.为什么要读此书 <深入理解Java虚拟机>这本书读了很多次,每次读都会有不一样的感受.首先说一下为什么要读这本书,如果把Java比喻成乾坤大挪移,那了解虚拟机的工作原理就是练习九阳神功,java语言是招式,对虚拟机的认识是内功心法,只有内功心法强大,所使的招式才强大,这就是为什么阳顶天只能把乾坤大挪移练到第四层,而张无忌能练到第七层.由于java虚拟机的强大,把很多功能都隐藏了,例如内容管理,垃圾回收机制等,使得很多java程序猿对这一块的知识所有缺失,编码的时候也是似懂非懂的,以至于遇到

jvm--深入理解java虚拟机 精华总结(面试)(转)

深入理解java虚拟机 精华总结(面试)(转) 一.运行时数据区域 3 1.1 程序计数器 3 1.2 Java虚拟机栈 3 1.3 本地方法栈 3 1.4 Java堆 3 1.5 方法区 3 1.6 运行时常量池 4 二. hotspot虚拟机对象 4 2.1 对象的创建 4 检查 4 分配内存 4 Init 4 2.2 对象的内存布局 4 2.3 对象的访问定位 4 使用句柄访问 4 使用直接指针访问 5 三. OutOfMemoryError 异常 5 3.1 Java堆溢出 5 3.2

深入理解Java虚拟机(类文件结构+类加载机制+字节码执行引擎)

周志明的<深入理解Java虚拟机>很好很强大,阅读起来颇有点费劲,尤其是当你跟随作者的思路一直探究下去,开始会让你弄不清方向,难免有些你说的啥子的感觉.但知识不得不学,于是天天看,反复看,就慢慢的理解了.我其实不想说这种硬磨的方法有多好,我甚至不推荐,我建议大家阅读这本书时,由浅入深,有舍有得,先从宏观去理解去阅读,再慢慢深入,有条不紊的看下去.具体来说,当你看书的某一部分时,先看这部分的章节名,了解这部分这一章在讲什么,然后再看某一章,我拿"类文件结构"这一章来说,我必须

读深入理解Java中的String(包括JVM)一文总结和提升

读深入理解Java中的String(包括JVM)一文总结和提升 摘要:String作为Java语言中的字符串模拟类,无论是实际的编程工作还是笔试面试过程,都需要我们都String类非常熟悉,对于String类的大部分字符串操作方法,都必须达到熟练运用的程度才行.但是,笔试和面试过程中,面试官往往喜欢问一些String特性相关的题目,来考察面试者对于String基础知识的掌握是否牢固.(本人尚未研读深入理解JVM这本书,分析JVM都是查看网上资料来分析的,若在接下来的内容有分析不到位的地方请见谅和

《深入理解Java虚拟机》:类加载的过程

<深入理解Java虚拟机>:类加载的过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载.验证.准备.解析.初始化.使用和卸载七个阶段.其中类加载的过程包括了加载.验证.准备.解析.初始化五个阶段. 下面详细讲述类加载过程中每个阶段所做的工作. 加载 加载时类加载过程的第一个阶段,在加载阶段,虚拟机需要完成以下三件事情: 1.通过一个类的全限定名来获取其定义的二进制字节流. 2.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构. 3.在Java堆中生成一

【深入理解Java虚拟机】类加载机制

本文内容来源于<深入理解Java虚拟机>一书,非常推荐大家去看一下这本书. 本系列其他文章: [深入理解Java虚拟机]Java内存区域模型.对象创建过程.常见OOM [深入理解Java虚拟机]垃圾回收机制 1.类加载机制概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 在java中,类型的加载.连接和初始化过程都是在程序运行期间完成的,这种策略虽然会带来一些性能开销,但是却为jav

深入理解java虚拟机笔记(一)-java内存区域与内存溢出

1. 前言 这是深入理解java虚拟机一书的笔记,来自第二章.因为这本书讲的比较深奥,这是第二次看,需要记录一下笔记. 2. 运行时数据区域 java虚拟机所管理的内存分为以下几个区域. ps:图片来自网络 2.1 程序计数器 程序计数器是一块较小的内存空间,他可以看做是当前线程所执行字节码的行号指示器.字节码解释器工作时就是通过改变这个计数器的值来选去下一条要执行的字节码指令,分之.循环.跳转.异常处理.线程恢复等基础功能都需要依赖这个计数器来完成. 这块内存是线程私有的内存. 如果线程在执行

《深入理解java虚拟机》:类的初始化

深入理解java虚拟机>:类的初始化 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载.验证.准备.解析.初始化.使用和卸载七个阶段.其中验证.准备.解析3个部分统称为连接.类加载的过程包括了加载.验证.准备.解析.初始化五个阶段. 加载.验证.准备.初始化和卸载这5个阶段的顺序时确定的,类的加载过程必须按照这种顺序按部就班的开始,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也成为动态绑定或晚期绑定).另外注意这里的